CN119484917A - 投屏方法、装置、终端及存储介质 - Google Patents
投屏方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN119484917A CN119484917A CN202311008573.4A CN202311008573A CN119484917A CN 119484917 A CN119484917 A CN 119484917A CN 202311008573 A CN202311008573 A CN 202311008573A CN 119484917 A CN119484917 A CN 119484917A
- Authority
- CN
- China
- Prior art keywords
- resolution
- target
- determining
- aspect ratio
- screen
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 230000003044 adaptive effect Effects 0.000 claims abstract description 63
- 230000006978 adaptation Effects 0.000 claims description 119
- 238000012545 processing Methods 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 238000005266 casting Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种投屏方法、装置、终端及存储介质,涉及投屏技术领域。包括:在存在投屏需求的情况下,基于目的端的期望分辨率,从应用程序支持的至少两种适配分辨率中确定出目标适配分辨率;基于所述目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,虚拟屏分辨率的宽高比与目标适配分辨率的宽高比一致;基于虚拟屏分辨率、源端编码分辨率以及期望分辨率,确定目标编码分辨率,源端编码分辨率与源端的编码能力相关;通过采用目标编码分辨率的编码器对应用画面进行视频编码,得到投屏数据流;向目的端传输投屏数据流,以便目的端基于投屏数据流进行投屏显示。本申请方案有助于减小目的端显示投屏画面时出现的黑边。
Description
技术领域
本申请实施例涉及投屏技术领域,特别涉及一种投屏方法、装置、终端及存储介质。
背景技术
投屏作为终端中的一种常用功能,方便用户将小尺寸终端中显示的画面重定向至大尺寸终端进行显示。
相关技术中,用户可以通过应用提供的投屏功能将当前显示的应用画面投屏至其他终端。
发明内容
本申请实施例提供了一种投屏方法、装置、终端及存储介质。所述技术方案如下:
一方面,本申请实施例提供了一种投屏方法,所述方法用于源端,所述方法包括:
在存在投屏需求的情况下,基于目的端的期望分辨率,从应用程序支持的至少两种适配分辨率中确定出目标适配分辨率,其中,不同适配分辨率用于适配不同分辨率的屏幕;
基于所述目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,所述虚拟屏幕用于承载所述应用程序的应用画面,且所述虚拟屏分辨率的宽高比与所述目标适配分辨率的宽高比一致;
基于所述虚拟屏分辨率、源端编码分辨率以及所述期望分辨率,确定目标编码分辨率,所述源端编码分辨率与所述源端的编码能力相关;
通过采用所述目标编码分辨率的编码器对所述应用画面进行视频编码,得到投屏数据流;
向所述目的端传输所述投屏数据流,以便所述目的端基于所述投屏数据流进行投屏显示。
另一方面,本申请实施例提供了一种投屏装置,所述装置包括:
处理模块,用于在存在投屏需求的情况下,基于目的端的期望分辨率,从应用程序支持的至少两种适配分辨率中确定出目标适配分辨率,其中,不同适配分辨率用于适配不同分辨率的屏幕;
所述处理模块,用于基于所述目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,所述虚拟屏幕用于承载所述应用程序的应用画面,且所述虚拟屏分辨率的宽高比与所述目标适配分辨率的宽高比一致;
所述处理模块,用于基于所述虚拟屏分辨率、源端编码分辨率以及所述期望分辨率,确定目标编码分辨率,所述源端编码分辨率与所述源端的编码能力相关;
所述处理模块,用于通过采用所述目标编码分辨率的编码器对所述应用画面进行视频编码,得到投屏数据流;
传输模块,用于向所述目的端传输所述投屏数据流,以便所述目的端基于所述投屏数据流进行投屏显示。
传输模块,用于向所述目的端传输所述投屏画面,以便所述目的端基于所述投屏画面进行投屏显示。
另一方面,本申请实施例提供了一种终端,所述终端包括双卡、处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的投屏方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上述方面所述的投屏方法。
另一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述方面提供的投屏方法。
本申请实施例中,源端向目的端进行投屏前,首先根据目的端的期望分辨率,从应用程序支持的多种适配分辨率中,确定出与目的端匹配度最高的目标适配分辨率,并基于该目标适配分辨率确定出承载应用画面的虚拟屏幕的虚拟屏分辨率,提高了虚拟屏分辨率与目的端的期望分辨率的适配度,有助于减小目的端显示投屏画面时出现的黑边;进一步的,源端综合虚拟屏分辨率、表征源端编码能力的源端编码分辨率以及期望分辨率,确定目标编码分辨率,并基于目标编码分辨率通过编码器对虚拟屏幕承载的应用画面进行编码,从而将编码得到的投屏数据流传输至目的端,使得投屏过程符合两端的性能,避免因超出源端或目的端性能导致投屏异常的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的实施环境的示意图;
图2是本申请一个示例性实施例提供的投屏方法的流程图;
图3是本申请一个示例性实施例示出的目标适配分辨率确定过程的实施示意图;
图4是本申请一个示例性实施例示出的虚拟屏分辨率确定过程的流程图;
图5是本申请一个示例性实施例示出的虚拟屏分辨率确定过程的实施示意图;
图6是本申请一个示例性实施例示出的目标编码分辨率确定过程的实施示意图;
图7是本申请一个示例性实施例示出的源端与目的端交互过程的时序图;
图8是本申请一个示例性实施例示出的反向控制指令响应过程的流程图;
图9是本申请一个示例性实施例示出的坐标转换过程的实施示意图;
图10是本申请一个示例性实施例提供的投屏装置的结构框图;
图11是本申请一个示例性实施例提供的终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个示例性实施例提供的实施环境的示意图。该实施环境中可以包括:源端110和目的端120。
源端(source)110是具有投屏功能的电子设备。其中,该投屏功能可以是电子设备提供的原生功能,或者电子设备中安装的应用程序提供的功能。该电子设备可以是智能手机、平板电脑或个人计算机等等(图1中以源端110为智能手机为例进行说明),本申请实施例并不对电子设备的具体类型进行限定。
目的端(sink)120是具有投屏显示功能的电子设备,即目的端120作为源端110传输的投屏画面的接收端,用于展示该投屏画面。其中,该投屏显示功能可以是电子设备提供的原生功能,或者电子设备中安装的应用程序提供的功能。该电子设备可以是智能电视、投影仪、平板电脑、个人计算机、车机等等(图1中以目的端120为智能电视为例进行说明),本申请实施例并不对电子设备的具体类型进行限定。可选的,目的端120的屏幕尺寸大于源端110的屏幕尺寸,从而在投屏过程中达到更好的显示效果。
源端110与目的端120之间建立有线连接或无线连接。其中,源端110与目的端120可以通过数据线建立有线重定向连接,或者,源端110与目的端120可以通过接入同一网络以建立无线重定向连接(通过网络中的无线接入点进行数据交互)。
本申请实施例中,源端110中安装的应用程序具有适配不同屏幕分辨率的电子设备的功能,即应用程序支持至少两种适配分辨率,且能够根据电子设备的屏幕分辨率,采用与该屏幕分辨率匹配度最高的适配分辨率进行应用画面显示。
借助应用程序的适配能力,源端110进行投屏前与目的端120进行分辨率协商。其中,该协商过程中,源端110可以根据目的端设备120的期望分辨率,从多种适配分辨率中选择匹配度最高的目标适配分辨率,并基于该目标适配分辨率创建虚拟屏幕,以此减小后续目的端120显示投屏画面是出现的黑边。
此外,源端110还会综合自身以及目的端120的性能,确定出目标编码分辨率,从而基于该目标编码分辨率对虚拟屏幕承载的应用画面进行编码,并将编码后的投屏数据流传输至目的端120,供目的端120进行解码显示,使编码过程符合源端性能,显示过程符合目的端性能,提高投屏过程的稳定性。
当然,投屏过程中,源端110除了向目的端120传输投屏数据流包括图像数据外,还可以向目的端120传输音频数据,以便目的端120进行解码播放。
在一种可能的实施方式中,源端110与目的端120之间建立有P2P连接,该P2P连接包括RTSP socket连接和RTP socket连接。其中,RTSP socket连接用于源端与目的端进行分辨率协商,RTP socket连接则用于图像数据以及音频数据的传输。
在一些实施例中,目的端120还可以包含输入设备,该输入设备可以为触摸显示屏、触控板、键盘、鼠标、摇杆等等,本实施例对此不作限定。目的端120显示投屏画面过程中,用户可以通过目的端120侧的输入设备对投屏画面中的元素进行控制。目的端120接收到控制操作后,通过连接将输入设备触发的反向控制指令发送至源端110,由源端110基于反向控制指令模拟出用户通过源端110进行控制的效果。
参见图2,图2是本申请一个示例性实施例提供的投屏方法的流程图。本实施例以该方法用于图1所示的源端为例进行说明,该方法可以包括如下步骤。
步骤202,在存在投屏需求的情况下,基于目的端的期望分辨率,从应用程序支持的至少两种适配分辨率中确定出目标适配分辨率,其中,不同适配分辨率用于适配不同分辨率的屏幕。
在一种可能的实施方式中,在接收到投屏指令的情况下,源端与目的端建立连接,源端即通过该连接从目的端处获取期望分辨率。可选的,该期望分辨率可以为目的端显示屏的屏幕分辨率。
本申请实施例中,为了能够在不同屏幕分辨率的设备上达到较好的显示效果,应用程序支持至少两种适配分辨率。源端在运行该应用程序时,应用程序即根据源端的屏幕分辨率,采用与该屏幕分辨率匹配度最高适配分辨率。
不同于相关技术中基于源端的屏幕分辨率创建虚拟屏幕,本实施例中,借助应用程序的适配能力,源端从应用程序支持的至少两种适配分辨率中,确定出与期望分辨率匹配度最高的目标适配分辨率,以便后续基于该目标适配分辨率确定虚拟屏幕的虚拟屏分辨率。
由于目标适配分辨率与期望分辨率的匹配度最高,因此能够最大程度减少目的端显示的投屏画面周侧的黑边。
其中,该目标适配分辨率与应用程序适配源端所采用的适配分辨率可能不同,也可能相同。
在一个示意性的例子中,应用程序指示的适配分辨率包括1920×1080、2560×1600、1200×800、1368×720以及2572×1100,由于源端的屏幕分辨率为1920×1080,因此源端显示应用程序时,应用程序应用1920×1080这一适配分辨率。当目的端的期望分辨率为2560×1488时,源端将2560×1600确定匹配度最高的目标适配分辨率。
步骤204,基于目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,虚拟屏幕用于承载应用程序的应用画面,且虚拟屏分辨率的宽高比与目标适配分辨率的宽高比一致。
进行投屏时,应用程序的应用画面会被绘制在创建的虚拟屏幕(VirtualDisplay)中,该虚拟屏幕对于用户而言并不可见。在确定出目标适配分辨率后,源端进一步基于目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,以便后续基于该虚拟屏分辨率创建虚拟屏幕。
其中,为了最小化黑边,该虚拟屏分辨率的宽高比需要与目标适配分辨率保持一致。可选的,该虚拟屏分辨率可以通过对目标适配分辨率的宽高进行等比例缩放得到。
比如,目标适配分辨率为2560×1600时,确定出的虚拟屏分辨率为2412×2132。
在一些实施例中,该虚拟屏分辨率将被通知应用程序,以便应用程序基于该虚拟屏分辨率生成应用画面。
步骤206,基于虚拟屏分辨率、源端编码分辨率以及期望分辨率,确定目标编码分辨率,源端编码分辨率与源端的编码能力相关。
投屏过程中,源端需要对虚拟屏幕显示的应用画面进行编码,并将编码后的投屏数据流传输至目的端。由于源端的编码能力有限,且目的端的显示能力有限,因此为了避免投屏所需能力超过源端以及目的端的能力,在一种可能的实施方式中,源端在确定编码器采用的编码分辨率时,需要综合考虑源端编码分辨率以及目的端的期望分辨率。
其中,源端编码分辨率为源端输入编码器的画面的最大分辨率,源端的编码性能越强,源端编码分辨率越大,相反的,源端的编码性能越弱,源端编码分辨率越小。
可选的,确定出的目标编码分辨率小于等于源端编码分辨率,且小于等于目的端的期望分辨率。
步骤208,通过采用目标编码分辨率的编码器对应用画面进行视频编码,得到投屏数据流。
对于虚拟屏幕显示的每一帧应用画面,源端通过编码器对该应用画面进行编码,得到连续应用画面对应的投屏数据流。
在一些实施例中,SurfaceFlinger合成后的分辨率即为目标编码分辨率,相应的,输入编码器的应用画面的分辨率即为目标编码分辨率。
在一种可能的实施方式中,源端基于虚拟屏分辨率创建虚拟屏幕,并基于目标编码分辨率设置编码器,后续应用程序生成的应用画面即显示在虚拟屏幕上,并被缩放为目标编码分辨率,源端基于编码器对目标编码分辨率的应用画面进行编码,得到投屏数据流。
步骤210,向目的端传输所述投屏数据流,以便目的端基于投屏数据流进行投屏显示。
最终,源端通过与目的端之间的连接,向目的端传输投屏数据流,由目的端基于接收到的投屏数据流进行投屏显示。
在一些实施例中,目的端进行投屏显示时,可以对投屏画面进行等比例放大,以进一步减小黑边,本实施例对此不作限定。
在一种可能的实施方式中,源端通过连接向目的端发送该目标编码分辨率,以便目的端基于该目标编码分辨率设置解码器,进而利用该解码器对投屏数据流进行解码。
综上所述,本申请实施例中,源端向目的端进行投屏前,首先根据目的端的期望分辨率,从应用程序支持的多种适配分辨率中,确定出与目的端匹配度最高的目标适配分辨率,并基于该目标适配分辨率确定出承载应用画面的虚拟屏幕的虚拟屏分辨率,提高了虚拟屏分辨率与目的端的期望分辨率的适配度,有助于减小目的端显示投屏画面时出现的黑边;进一步的,源端综合虚拟屏分辨率、表征源端编码能力的源端编码分辨率以及期望分辨率,确定目标编码分辨率,并基于目标编码分辨率通过编码器对虚拟屏幕承载的应用画面进行编码,从而将编码得到的投屏画面传输至目的端,使得投屏过程符合两端的性能,避免因超出源端或目的端性能导致投屏异常的问题。
由于目标适配分辨率的宽高比即为最终投屏画面的宽高比,因此投屏画面的分辨率与目的端期望分辨率的差异即为黑边,相应的,黑边的面积可以表示为:(基准边×宽高比差值)×基准边。
横屏状态下,优先考虑油桶模式(黑边位于画面左右两侧),而竖屏状态下,优先考虑信封模式(黑边位于画面上方和下方)。基于上述考虑,应当将基准边应当优先考虑短边;基准边确定后,在适配分辨率的宽高比小于或等于期望分辨率的宽高比且比值最接近时,黑边面积最小。
在一种可能的实施方式中,源端在确定目标适配分辨率时可以包括如下步骤:
1、确定期望分辨率的第一宽高比,以及适配分辨率的第二宽高比。
在一些实施例中,分辨率的宽高比为长边与短边的比值,即宽高比大于或等于1。
在一种可能的实施方式中,源端确定分辨率中的长边和短边,进而基于长边和短边确定宽高比。
示意性的,如图3所示,源端确定期望分辨率的第一宽高比分别为1.72,应用程序支持的六种适配分辨率的第二宽高比分别为1.778、1.6、1.5、1.9、2.5以及1.778。
2、在存在小于或等于第一宽高比的第二宽高比的情况下,将小于或等于第一宽高比的第二宽高比中与第一宽高比最接近的第二宽高比确定为目标宽高比,并将目标宽高比对应的适配分辨率确定为目标适配分辨率。
在一种可能的实施方式中,源端确定是否存在小于第一宽高比的第二宽高比,若存在,则将小于且最接近第一宽高比的第二宽高比确定为目标宽高比,并进一步将该目标宽高比对应的适配分辨率确定为目标适配分辨率。如此,采用该目标适配分辨率后投屏画面两侧黑边的面积最小。
示意性的,如图3所示,存在两个适配分辨率的第二宽高比小于期望分辨率的第一宽高比,且由于第二宽高比1.6最接近第一宽高比1.72,因此源端将2560×1600确定为目标适配分辨率。
3、在不存在小于或等于第一宽高比的第二宽高比的情况下,将与第一宽高比最接近的第二宽高比确定为目标宽高比,并将目标宽高比对应的适配分辨率确定为目标适配分辨率。
在不存在小于第一宽高比的第二宽高比的情况下,源端同样基于最接近原则,将与第一宽高比最接近的第二宽高比确定为目标宽高比。
在一种可能的实施方式中,在基于宽高比确定目标适配分辨率之前,源端基于适配分辨率表征的屏幕状态,以及各个适配分辨率表征的屏幕状态,过滤与适配分辨率所表征屏幕状态不一致的适配分辨率。后续确定目标适配分辨率时,仅在过滤后的适配分辨率中进行查找。
在一些实施例中,在适配分辨率表征的屏幕状态与期望分辨率表征的屏幕状态的不一致的情况下,源端过滤适配分辨率,屏幕状态包括横屏状态和竖屏状态。
可选的,在分辨率的宽大于高的情况下,确定屏幕状态为横屏状态,在分辨率的宽小于高的情况下,确定屏幕状态为竖屏状态。
示意性的,如图3所示,由于期望分辨率表征的屏幕状态为横屏,而1080×1920这一适配分辨率表征的屏幕状态为竖屏,因此源端过滤该适配分辨率。
本实施例中,源端基于分辨率的宽高比,并以选取最接近宽高比为原则确定目标适配分辨率,能够最小化投屏画面两侧的黑面面积,有助于提升投屏显示效果。
在一些实施例中,不同适配分辨率对应各自的像素密度,而源端创建的虚拟屏幕的像素密度与物理屏幕的像素密度一致。若直接将目标适配分辨率确定为虚拟屏幕的虚拟屏分辨率,在两者对应像素密度不一致的情况下,可能会导致画面失真(比如UI布局异常),影响投屏显示效果。因此为了保证投屏效果,在一种可能的实施方式中,如图4所示,源端确定虚拟屏分辨率可以包括如下步骤。
步骤204A,确定目标适配分辨率对应的第一像素密度以及源端屏幕的第二像素密度。
其中,像素密度可以采用DPI(Dots Per Inch,每英寸像素数)表示。
可选的,各个适配分辨率均对应各自的DPI,源端确定目标适配分辨率后,即获取目标适配分辨率对应的DPI。
示意性的,如图5所示,源端确定目标适配分辨率对应的DPI为360(即第一像素密度),源端屏幕的DPI为480(即第二像素密度)。
步骤204B,确定第一像素密度与第二像素密度的像素密度比值。
示意性的,如图5所示,源端确定像素密度比值为480/360=1.33。
步骤204C,基于像素密度比值对目标适配分辨率进行缩放处理,得到虚拟屏幕的虚拟屏分辨率,虚拟屏分辨率的像素密度为第二像素密度。
基于物理尺寸不变原则,源端基于像素密度比值对目标适配分辨率进行缩放处理(等比例缩放,保证宽高比不变),得到虚拟屏幕的虚拟屏分辨率。其中,当第一像素密度大于第二像素密度时,源端设备对目标适配分辨率进行等比例缩小,以此降低像素密度;当第一像素密度小于第二像素密度时,源端设备对目标适配分辨率进行等比例放大,以及提高像素密度。
在一些实施例中,虚拟屏分辨率可以表示为VirtualLong×VirtualShort,其中,VirtualLong=PadLong*SourceDPI/PadDPI,VirtualShort=PadShort*SourceDPI/PadDPI,PadLong为目标适配分辨率的宽,PadShort为目标适配分辨率的高,SourceDPI为源端设备的像素密度,PadDPI为目标适配分辨率对应的像素密度。
示意性的,如图5所示,源端确定虚拟屏分辨率的宽为2560×480÷360=3412,确定虚拟屏分辨率的高为1600×480÷360=2132,保证创建的虚拟屏幕的DPI为480。
本实施例中,源端基于目标适配分辨率以及源端屏幕对应的像素密度,对目标适配分辨率进行缩放处理,得到虚拟屏分辨率,以此保证虚拟屏分辨率与源端屏幕的像素密度一致,且与目标适配分辨率的宽高比一致,避免因像素密度不一致导致的画面失真,有助于提高投屏画面的显示质量。
在综合源端和目的端的性能确定目标编码分辨率时,可能存在如下两种情况:
1、虚拟屏分辨率小于源端编码分辨率,且虚拟屏分辨率小于期望分辨率;
2、虚拟屏分辨率大于源端编码分辨率,和/或,虚拟屏分辨率都大于期望分辨率。
其中,对于第一分辨率和第二分辨率,第一分辨率大于第二分辨率指的是第一分辨率的宽度大于第二分辨率的宽度,且第一分辨率的高度大于第二分辨率的高度。
对于上述第一种情况,直接以虚拟屏幕所承载的应用画面作为投屏画面时,能够同时满足源端和目的端的性能要求,因此在一种可能的实施方式中,在虚拟屏分辨率小于源端编码分辨率,且虚拟屏分辨率小于期望分辨率的情况下,源端将虚拟屏分辨率确定为目标编码分辨率。
对于上述第二种情况,直接以虚拟屏幕所承载的应用画面作为投屏画面时,可能会超出源端和/或目的端的性能要求,因此在另一种可能的实施方式中,在虚拟屏分辨率大于源端编码分辨率,和/或,虚拟屏分辨率大于期望分辨率的情况下,源端基于源端编码分辨率和期望分辨率确定目标编码分辨率。其中,目标编码分辨率小于或等于源端编码分辨率,且小于或等于期望分辨率。
进一步讨论上述第二种情况,为了使确定出的目标编码分辨率能够同时满足源端以及目的端的性能要求,源端以源端编码分辨率和期望分辨率中的较小值为基础,确定目标编码分辨率。
下面采用示例性的实施例,分别对第二种情况下的不同子情况进行说明。
第一种子情况:在源端编码分辨率大于期望分辨率的情况下,源端在期望分辨率的基础上确定目标编码分辨率。
其中,源端编码分辨率大于期望分辨率指的是源端编码分辨率的宽度大于期望分辨率的宽度,且源端编码分辨率的高度大于期望分辨率的高度。
比如,当源端编码分辨率为3800×2160,且期望分辨率为1920×1080时,源端确定源端编码分辨率大于期望分辨率。
在一种可能的实施方式中,源端基于目标适配分辨率的宽高比(即虚拟屏分辨率的宽高比)与期望分辨率的宽高比的大小关系,确定以期望分辨率的高度还是宽度为基准,进而在基准的基础上确定目标编码分辨率。
可选的,在目标适配分辨率的宽高比小于期望分辨率的宽高比的情况下,源端将期望分辨率的高度确定为目标高度,并基于目标高度和目标适配分辨率的宽高比确定目标宽度,从而基于目标宽度和目标高度确定目标编码分辨率。
当目标适配分辨率的宽高比小于期望分辨率的宽高比时,为了使仅投屏画面的左右两侧存在黑边,而上下两侧不存在黑边,源端将期望分辨率的高度确定为目标高度,并以目标高度为基准,确定与目标适配分辨率的宽高比一致的目标编码分辨率。
在一个示意性的例子中,在SourceCodecLong(源端编码分辨率的宽度)和SourceCodecShort(源端编码分辨率的高度)均大于RemoteLong(期望分辨率的宽度)和RemoteShort(期望分辨率的高度)情况下,若RemoteShort*PadLong(目标适配分辨率的宽度)/PadShort(目标适配分辨率的高度)<RemoteLong,则FinalShort(目标高度)=RemoteShort,FinalLong(目标高度)=RemoteShort*PadLong/PadShort。
可选的,在目标适配分辨率的宽高比大于期望分辨率的宽高比的情况下,源端将期望分辨率的宽度确定为目标宽度,并基于目标宽度和目标适配分辨率的宽高比确定目标高度,从而基于目标宽度和目标高度确定目标编码分辨率。
当目标适配分辨率的宽高比大于期望分辨率的宽高比时,为了使仅投屏画面的上下两侧存在黑边,而左右两侧不存在黑边,源端将期望分辨率的宽度确定为目标宽度,并以目标宽度为基准,确定与目标适配分辨率的宽高比一致的目标编码分辨率。
在一个示意性的例子中,在SourceCodecLong和SourceCodecShort均大于RemoteLong和RemoteShort情况下,若RemoteShort*PadLong/PadShort>RemoteLong,则FinalLong=RemoteLong,FinalShort=RemoteLong*PadShort/PadLong。
第二种子情况:在源端编码分辨率小于期望分辨率的情况下,在源端编码分辨率的基础上确定目标编码分辨率。
其中,源端编码分辨率小于期望分辨率指的是源端编码分辨率的宽度小于期望分辨率的宽度,且源端编码分辨率的高度小于期望分辨率的高度。
比如,当源端编码分辨率为1920×1080,且期望分辨率为2550×1600时,源端确定源端编码分辨率小于期望分辨率。
在一种可能的实施方式中,源端基于目标适配分辨率的宽高比(即虚拟屏分辨率的宽高比)与期望分辨率的宽高比的大小关系,确定以源端编码分辨率的高度还是宽度为基准,进而在基准的基础上确定目标编码分辨率。
可选的,在目标适配分辨率的宽高比小于源端编码分辨率的宽高比的情况下,源端将源端编码分辨率的高度确定为目标高度,并基于目标高度和目标适配分辨率的宽高比确定目标宽度,从而基于目标宽度和目标高度确定目标编码分辨率。
当目标适配分辨率的宽高比小于源端编码分辨率的宽高比时,为了尽可能减小投屏画面左右两侧的黑边,源端将源端编码分辨率的高度确定为目标高度,并以目标高度为基准,确定与目标适配分辨率的宽高比一致的目标编码分辨率。
在一个示意性的例子中,在SourceCodecLong和SourceCodecShort均小于RemoteLong和RemoteShort情况下,若SourceCodecShort*PadLong/PadShort<SourceCodecLong,则FinalShort=SourceCodecShort,FinalLong=SourceCodecShort*PadLong/PadShort。
可选的,在目标适配分辨率的宽高比大于源端编码分辨率的宽高比的情况下,源端将源端编码分辨率的宽度确定为目标宽度,并基于目标宽度和目标适配分辨率的宽高比确定目标高度,从而基于目标宽度和目标高度确定目标编码分辨率。
当目标适配分辨率的宽高比大于源端编码分辨率的宽高比时,为了尽可能减小投屏画面上下两侧的黑边,源端将源端编码分辨率的宽度确定为目标宽度,并以目标宽度为基准,确定与目标适配分辨率的宽高比一致的目标编码分辨率。
在一个示意性的例子中,在SourceCodecLong和SourceCodecShort均小于RemoteLong和RemoteShort情况下,若SourceCodecShort*PadLong/PadShort>SourceCodecLong,则FinalLong=SourceCodecLong,FinalShort=SourceCodecLong*PadShort/PadLong。
第三种子情况:在源端编码分辨率部分大于期望分辨率,且部分小于期望分辨率的情况下,基于源端编码分辨率和期望分辨率确定中间分辨率;在中间分辨率的基础上确定目标编码分辨率。
其中,源端编码分辨率部分大于期望分辨率,且部分小于期望分辨率可以包括如下两种情况:1、源端编码分辨率的宽度大于期望分辨率的宽度,且源端编码分辨率的高度小于期望分辨率的高度;2、源端编码分辨率的宽度小于期望分辨率的宽度,且源端编码分辨率的高度大于期望分辨率的高度。
为了保证最终确定出的目标编码分辨率小于或等于源端编码分辨率以及期望分辨率,源端首先需要确定出一个小于源端编码分辨率和期望编码分辨率的中间分辨率,以便在中间分辨率的基础上确定目标编码分辨率。
关于中间分辨率的确定方式,在一种可能的实施方式中,源端将源端编码分辨率的宽度和期望分辨率的宽度中的较小值确定为中间宽度,以及将源端编码分辨率的高度和期望分辨率的高度中的较小值确定为中间高度,从而基于中间宽度和中间高度确定中间分辨率。
比如,当SourceCodecShort>RemoteShort,且SourceCodecLong<RemoteLong时,确定出的中间高度为RemoteShort,中间宽度为SourceCodecLong,中间分辨率即为SourceCodecLong×RemoteShort。
确定出中间分辨率后,与上述第一、二种情况类似的,源端基于目标适配分辨率的宽高比与中间分辨率的宽高比的大小关系,确定以中间分辨率的高度还是宽度为基准,进而在基准的基础上确定目标编码分辨率。
可选的,在目标适配分辨率的宽高比小于中间分辨率的宽高比的情况下,源端将中间分辨率的高度确定为目标高度,并基于目标高度和目标适配分辨率的宽高比确定目标宽度,从而基于目标宽度和目标高度确定目标编码分辨率。
当目标适配分辨率的宽高比小于中间分辨率的宽高比时,为了尽可能减小投屏画面左右两侧的黑边,源端将中间分辨率的高度确定为目标高度,并以目标高度为基准,确定与目标适配分辨率的宽高比一致的目标编码分辨率。
在一个示意性的例子中,若TempShort(中间高度)*PadLong/PadShort<TempLong(中间宽度),则FinalShort=TempShort,FinalLong=TempShort*PadLong/PadShort。
可选的,在目标适配分辨率的宽高比大于中间分辨率的宽高比的情况下,将中间分辨率的宽度确定为目标宽度,并基于目标宽度和目标适配分辨率的宽高比确定目标高度,从而基于目标宽度和目标高度确定目标编码分辨率。
当目标适配分辨率的宽高比大于中间分辨率的宽高比时,为了尽可能减小投屏画面上下两侧的黑边,源端将中间分辨率的宽度确定为目标宽度,并以目标宽度为基准,确定与目标适配分辨率的宽高比一致的目标编码分辨率。
在一个示意性的例子中,若TempShort*PadLong/PadShort>TempLong,则FinalLong=TempLong,FinalShort=TempLong*PadShort/PadLong。
在图3、5所示示例的基础上,如图6所示,由于源端编码分辨率2376×1080小于期望分辨率2560×1488,因此源端以源端编码分辨率为基础确定目标编码分辨率。由于源端编码分辨率的宽高比2.2大于目标适配分辨率的宽高比1.6,因此源端以源端编码分辨率的高度1080为目标高度,并基于宽高比1.6确定目标宽度为1728,即目标编码分辨率为1728×1080。进一步的,源端基于该目标编码分辨率对应用画面进行编码传输,目的端显示投屏画面时,画面左右黑边的宽度为416,而画面上下黑边的宽度为204。当然,目的端可以对投屏画面进行等比例放大,使投屏画面的分辨率变为2380×1488,以此消除画面上下黑边,并减小左右黑边。
本实施例中,源端以源端编码分辨率和期望分辨率中较小的分辨率为基础,或者,以基于源端编码分辨率和期望分辨率确定出的中间分辨率为基准,确定目标编码分辨率,确保最终的投屏分辨率不超过源端以及目的端能力范围,提高投屏过程的稳定性。
请参考图7,其示出了本申请一个示例性实施例提供的源端与目的端交互过程的时序图。
步骤701,目的端与源端建立投屏链路,该投屏链路可以包括协商链路以及数据流传输链路。
步骤702,目的端向源端通知投屏的期望分辨率。
步骤703,源端根据期望分辨率,从至少两种适配分辨率中确定目标适配分辨率。
步骤704,源端根据目标适配分辨率对应的DPI以及物理屏幕的DPI,确定虚拟屏幕的虚拟屏分辨率。
步骤705,源端根据虚拟屏分辨率、源端编码分辨率以及期望分辨率,确定目标编码分辨率。
步骤706,源端向目的端通知目标编码分辨率,以便目的端基于目标编码分辨率设置解码器。
步骤707,源端创建虚拟屏幕,以及配置编码器,以便后续通过编码器对应用画面进行编码,得到投屏数据流。
步骤708,源端向目的端传输投屏数据流。
步骤709,目的端对投屏数据流进行解码,并基于解码结果显示投屏画面。
步骤710,源端和目的端断开投屏链路,结束投屏。
从上述实施例中可以看出,源端最终传输的投屏数据流对应的分辨率(即目标编码分辨率)与创建的虚拟屏幕的虚拟屏分辨率并不一定完全一致。因此,在目的端支持反向控制源端的情况下,为了保证反向控制的准确性,源端需要基于缩放比例对接收到的反向控制指令进行处理。如图8所示,该方法还可以包括如下步骤。
步骤801,基于虚拟屏分辨率和目标编码分辨率确定缩放比例。
由于虚拟屏分辨率和目标编码分辨率的宽高比均与目标适配分辨率对应的宽高比一致,因此源端可以将虚拟屏分辨率和目标编码分辨率各自宽度的比值,或各自高度的比值确定为缩放比例。
示意性的,如图9所示,当虚拟屏分辨率为3412×2132,目标编码分辨率为1728×1080时,源端确定缩放比例为1.974。
步骤802,在接收到目的端发送的反向控制指令的情况下,基于缩放比例对反向控制指令中包含的操作坐标进行坐标转换。
在一些实施例中,目的端接收到反向控制操作时,即根据该反向控制操作的操作类型以及操作坐标生成反向控制指令。其中,该操作类型可以为点击操作、长按操作、滑动操作、按压操作等等,对应的,该操作坐标可以为点击位置坐标、滑动轨迹坐标等等,本实施例对此不作限定。
需要说明的是,由于目的端显示的投屏画面周侧可能会存在黑边,因此目的端需要根据屏幕分辨率和目标编码分辨率确定出黑边区域,并在接收到反向控制操作时,基于黑边区域的坐标,将相对于目的端屏幕的坐标转换到相对于投屏画面的坐标,本实施例在此不作赘述。
源端通过缩放比例对指令中包含操作坐标进行坐标转换,得到虚拟屏幕内的操作坐标。
示意性的,如图9所示,当反向控制指令中的操作坐标为(500,200)时,源端基于缩放比例1.974,确定转换后的坐标为(987,395)。
步骤803,基于转换后的操作坐标进行指令响应。
进一步的,源端基于转换后的操作坐标进行指令响应,并将更新后应用画面对应的投屏数据流实时传输至目的端。比如,源端可以根据转换后的操作坐标以及操作类型在虚拟屏幕的应用画面内进行模拟操作。
本实施例中,源端基于虚拟屏分辨率和目标编码分辨率确定缩放比例,并利用缩放比例对目的端发送的反向控制指令进行坐标转换,即将对目的端的操作转化为对虚拟屏幕的操作,保证反向控制操作的准确性。
参见图10,图10是本申请一个示例性实施例提供的投屏装置的结构框图。该装置包括:
处理模块1010,用于在存在投屏需求的情况下,基于目的端的期望分辨率,从应用程序支持的至少两种适配分辨率中确定出目标适配分辨率,其中,不同适配分辨率用于适配不同分辨率的屏幕;
所述处理模块1010,用于基于所述目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,所述虚拟屏幕用于承载所述应用程序的应用画面,且所述虚拟屏分辨率的宽高比与所述目标适配分辨率的宽高比一致;
所述处理模块1010,用于基于所述虚拟屏分辨率、源端编码分辨率以及所述期望分辨率,确定目标编码分辨率,所述源端编码分辨率与所述源端的编码能力相关;
所述处理模块1010,用于通过采用所述目标编码分辨率的编码器对所述应用画面进行视频编码,得到投屏数据流;
传输模块1020,用于向所述目的端传输所述投屏数据流,以便所述目的端基于所述投屏数据流进行投屏显示。
可选的,所述处理模块1010,包括:
适配分辨率确定单元,用于确定所述期望分辨率的第一宽高比,以及适配分辨率的第二宽高比;
在存在小于或等于所述第一宽高比的第二宽高比的情况下,将小于或等于所述第一宽高比的第二宽高比中与所述第一宽高比最接近的第二宽高比确定为目标宽高比,并将所述目标宽高比对应的适配分辨率确定为所述目标适配分辨率;
在不存在小于或等于所述第一宽高比的第二宽高比的情况下,将与所述第一宽高比最接近的第二宽高比确定为目标宽高比,并将所述目标宽高比对应的适配分辨率确定为所述目标适配分辨率。
可选的,所述适配分辨率确定单元,用于:
在所述适配分辨率表征的屏幕状态与所述期望分辨率表征的屏幕状态的不一致的情况下,过滤所述适配分辨率,所述屏幕状态包括横屏状态和竖屏状态。
可选的,所述处理模块1010,包括:
虚拟屏分辨率确定单元,用于确定所述目标适配分辨率对应的第一像素密度以及源端屏幕的第二像素密度;
确定所述第一像素密度与所述第二像素密度的像素密度比值;
基于所述像素密度比值对所述目标适配分辨率进行缩放处理,得到所述虚拟屏幕的所述虚拟屏分辨率,所述虚拟屏分辨率的像素密度为所述第二像素密度。
可选的,所述处理模块1010,包括:
编码分辨率确定单元,用于在所述虚拟屏分辨率小于所述源端编码分辨率,且所述虚拟屏分辨率小于所述期望分辨率的情况下,将所述虚拟屏分辨率确定为所述目标编码分辨率;
在所述虚拟屏分辨率大于所述源端编码分辨率,和/或,所述虚拟屏分辨率大于所述期望分辨率的情况下,基于所述源端编码分辨率和所述期望分辨率确定所述目标编码分辨率。
可选的,编码分辨率确定单元,用于:
在所述源端编码分辨率大于所述期望分辨率的情况下,在所述期望分辨率的基础上确定所述目标编码分辨率;
在所述源端编码分辨率小于所述期望分辨率的情况下,在所述源端编码分辨率的基础上确定所述目标编码分辨率;
在所述源端编码分辨率部分大于所述期望分辨率,且部分小于所述期望分辨率的情况下,基于所述源端编码分辨率和所述期望分辨率确定中间分辨率;在所述中间分辨率的基础上确定所述目标编码分辨率。
可选的,编码分辨率确定单元,用于:
在所述目标适配分辨率的宽高比小于所述期望分辨率的宽高比的情况下,将所述期望分辨率的高度确定为目标高度;基于所述目标高度和所述目标适配分辨率的宽高比确定目标宽度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率;
在所述目标适配分辨率的宽高比大于所述期望分辨率的宽高比的情况下,将所述期望分辨率的宽度确定为目标宽度;基于所述目标宽度和所述目标适配分辨率的宽高比确定目标高度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率。
可选的,编码分辨率确定单元,用于:
在所述目标适配分辨率的宽高比小于所述源端编码分辨率的宽高比的情况下,将所述源端编码分辨率的高度确定为目标高度;基于所述目标高度和所述目标适配分辨率的宽高比确定目标宽度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率;
在所述目标适配分辨率的宽高比大于所述源端编码分辨率的宽高比的情况下,将所述源端编码分辨率的宽度确定为目标宽度;基于所述目标宽度和所述目标适配分辨率的宽高比确定目标高度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率。
可选的,编码分辨率确定单元,用于:
将所述源端编码分辨率的宽度和所述期望分辨率的宽度中的较小值确定为中间宽度,以及将所述源端编码分辨率的高度和所述期望分辨率的高度中的较小值确定为中间高度;
基于所述中间宽度和所述中间高度确定所述中间分辨率;
在所述目标适配分辨率的宽高比小于所述中间分辨率的宽高比的情况下,将所述中间分辨率的高度确定为目标高度;基于所述目标高度和所述目标适配分辨率的宽高比确定目标宽度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率;
在所述目标适配分辨率的宽高比大于所述中间分辨率的宽高比的情况下,将所述中间分辨率的宽度确定为目标宽度;基于所述目标宽度和所述目标适配分辨率的宽高比确定目标高度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率。
可选的,所述处理模块,还包括:
转换单元,用于基于所述虚拟屏分辨率和所述目标编码分辨率确定缩放比例;
在接收到所述目的端发送的反向控制指令的情况下,基于所述缩放比例对所述反向控制指令中包含的操作坐标进行坐标转换;
基于转换后的操作坐标进行指令响应。
可选的,所述装置还包括:
配置模块,用于基于所述虚拟屏分辨率创建所述虚拟屏幕,并基于所述目标编码分辨率设置所述编码器;
所述传输模块1020,还用于向所述目的端传输所述目标编码分辨率,以便所述目的端基于所述目标编码分辨率设置解码器。
综上所述,本申请实施例中,源端向目的端进行投屏前,首先根据目的端的期望分辨率,从应用程序支持的多种适配分辨率中,确定出与目的端匹配度最高的目标适配分辨率,并基于该目标适配分辨率确定出承载应用画面的虚拟屏幕的虚拟屏分辨率,提高了虚拟屏分辨率与目的端的期望分辨率的适配度,有助于减小目的端显示投屏画面时出现的黑边;进一步的,源端综合虚拟屏分辨率、表征源端编码能力的源端编码分辨率以及期望分辨率,确定目标编码分辨率,并基于目标编码分辨率通过编码器对虚拟屏幕承载的应用画面进行编码,从而将编码得到的投屏数据流传输至目的端,使得投屏过程符合两端的性能,避免因超出源端或目的端性能导致投屏异常的问题。
参见图11,图11是本申请一个示例性实施例提供的终端的结构示意图。该终端可以实现成为上述实施例中的源端。该终端可以是智能手机、平板电脑、智能穿戴设备等。该终端还可以包括一个或多个如下部件:处理器1110和存储器1120。
可选的,处理器1110利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器1120内的指令、程序、代码集或指令集,以及调用存储在存储器1120内的数据,执行电子设备的各种功能和处理数据。可选地,处理器1110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1110可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和基带芯片等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;基带芯片用于处理无线通信。可以理解的是,上述基带芯片也可以不集成到处理器1110中,单独通过一块芯片进行实现。
存储器1120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1120可用于存储指令、程序、代码、代码集或指令集。存储器1120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、电话本)等。
除此之外,本领域技术人员可以理解,上述附图所示出的终端的结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述实施例所述的方法。可选地,该计算机可读存储介质可以包括:ROM、RAM、固态硬盘(SSD,Solid State Drives)或光盘等。其中,RAM可以包括电阻式随机存取记忆体(ReRAM,Resistance Random Access Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的投屏方法。
以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种投屏方法,其特征在于,所述方法用于源端,所述方法包括:
在存在投屏需求的情况下,基于目的端的期望分辨率,从应用程序支持的至少两种适配分辨率中确定出目标适配分辨率,其中,不同适配分辨率用于适配不同分辨率的屏幕;
基于所述目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,所述虚拟屏幕用于承载所述应用程序的应用画面,且所述虚拟屏分辨率的宽高比与所述目标适配分辨率的宽高比一致;
基于所述虚拟屏分辨率、源端编码分辨率以及所述期望分辨率,确定目标编码分辨率,所述源端编码分辨率与所述源端的编码能力相关;
通过采用所述目标编码分辨率的编码器对所述应用画面进行视频编码,得到投屏数据流;
向所述目的端传输所述投屏数据流,以便所述目的端基于所述投屏数据流进行投屏显示。
2.根据权利要求1所述的方法,其特征在于,所述基于目的端的期望分辨率,从应用程序支持的至少两种适配分辨率中确定出目标适配分辨率,包括:
确定所述期望分辨率的第一宽高比,以及适配分辨率的第二宽高比;
在存在小于或等于所述第一宽高比的第二宽高比的情况下,将小于或等于所述第一宽高比的第二宽高比中与所述第一宽高比最接近的第二宽高比确定为目标宽高比,并将所述目标宽高比对应的适配分辨率确定为所述目标适配分辨率;
在不存在小于或等于所述第一宽高比的第二宽高比的情况下,将与所述第一宽高比最接近的第二宽高比确定为目标宽高比,并将所述目标宽高比对应的适配分辨率确定为所述目标适配分辨率。
3.根据权利要求2所述的方法,其特征在于,所述确定所述期望分辨率的第一宽高比,以及各个适配分辨率的第二宽高比之前,还包括:
在所述适配分辨率表征的屏幕状态与所述期望分辨率表征的屏幕状态的不一致的情况下,过滤所述适配分辨率,所述屏幕状态包括横屏状态和竖屏状态。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,包括:
确定所述目标适配分辨率对应的第一像素密度以及源端屏幕的第二像素密度;
确定所述第一像素密度与所述第二像素密度的像素密度比值;
基于所述像素密度比值对所述目标适配分辨率进行缩放处理,得到所述虚拟屏幕的所述虚拟屏分辨率,所述虚拟屏分辨率的像素密度为所述第二像素密度。
5.根据权利要求1所述的方法,其特征在于,所述基于所述虚拟屏分辨率、源端编码分辨率以及所述期望分辨率,确定目标编码分辨率,包括:
在所述虚拟屏分辨率小于所述源端编码分辨率,且所述虚拟屏分辨率小于所述期望分辨率的情况下,将所述虚拟屏分辨率确定为所述目标编码分辨率;
在所述虚拟屏分辨率大于所述源端编码分辨率,和/或,所述虚拟屏分辨率大于所述期望分辨率的情况下,基于所述源端编码分辨率和所述期望分辨率确定所述目标编码分辨率。
6.根据权利要求5所述的方法,其特征在于,所述基于所述源端编码分辨率和所述期望分辨率确定所述目标编码分辨率,包括:
在所述源端编码分辨率大于所述期望分辨率的情况下,在所述期望分辨率的基础上确定所述目标编码分辨率;
在所述源端编码分辨率小于所述期望分辨率的情况下,在所述源端编码分辨率的基础上确定所述目标编码分辨率;
在所述源端编码分辨率部分大于所述期望分辨率,且部分小于所述期望分辨率的情况下,基于所述源端编码分辨率和所述期望分辨率确定中间分辨率;在所述中间分辨率的基础上确定所述目标编码分辨率。
7.根据权利要求6所述的方法,其特征在于,所述在所述期望分辨率的基础上确定所述目标编码分辨率,包括:
在所述目标适配分辨率的宽高比小于所述期望分辨率的宽高比的情况下,将所述期望分辨率的高度确定为目标高度;基于所述目标高度和所述目标适配分辨率的宽高比确定目标宽度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率;
在所述目标适配分辨率的宽高比大于所述期望分辨率的宽高比的情况下,将所述期望分辨率的宽度确定为目标宽度;基于所述目标宽度和所述目标适配分辨率的宽高比确定目标高度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率。
8.根据权利要求6所述的方法,其特征在于,所述在所述源端编码分辨率的基础上确定所述目标编码分辨率,包括:
在所述目标适配分辨率的宽高比小于所述源端编码分辨率的宽高比的情况下,将所述源端编码分辨率的高度确定为目标高度;基于所述目标高度和所述目标适配分辨率的宽高比确定目标宽度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率;
在所述目标适配分辨率的宽高比大于所述源端编码分辨率的宽高比的情况下,将所述源端编码分辨率的宽度确定为目标宽度;基于所述目标宽度和所述目标适配分辨率的宽高比确定目标高度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率。
9.根据权利要求6所述的方法,其特征在于,所述基于所述源端编码分辨率和所述期望分辨率确定中间分辨率,包括:
将所述源端编码分辨率的宽度和所述期望分辨率的宽度中的较小值确定为中间宽度,以及将所述源端编码分辨率的高度和所述期望分辨率的高度中的较小值确定为中间高度;
基于所述中间宽度和所述中间高度确定所述中间分辨率;
所述在所述中间分辨率的基础上确定所述目标编码分辨率,包括:
在所述目标适配分辨率的宽高比小于所述中间分辨率的宽高比的情况下,将所述中间分辨率的高度确定为目标高度;基于所述目标高度和所述目标适配分辨率的宽高比确定目标宽度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率;
在所述目标适配分辨率的宽高比大于所述中间分辨率的宽高比的情况下,将所述中间分辨率的宽度确定为目标宽度;基于所述目标宽度和所述目标适配分辨率的宽高比确定目标高度;基于所述目标宽度和所述目标高度确定所述目标编码分辨率。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述虚拟屏分辨率和所述目标编码分辨率确定缩放比例;
在接收到所述目的端发送的反向控制指令的情况下,基于所述缩放比例对所述反向控制指令中包含的操作坐标进行坐标转换;
基于转换后的操作坐标进行指令响应。
11.根据权利要求1所述的方法,其特征在于,所述通过采用所述目标编码分辨率的编码器对所述应用画面进行视频编码,得到投屏数据流之前,所述方法还包括:
基于所述虚拟屏分辨率创建所述虚拟屏幕,并基于所述目标编码分辨率设置所述编码器;
向所述目的端传输所述目标编码分辨率,以便所述目的端基于所述目标编码分辨率设置解码器。
12.一种投屏装置,其特征在于,所述装置包括:
处理模块,用于在存在投屏需求的情况下,基于目的端的期望分辨率,从应用程序支持的至少两种适配分辨率中确定出目标适配分辨率,其中,不同适配分辨率用于适配不同分辨率的屏幕;
所述处理模块,用于基于所述目标适配分辨率确定虚拟屏幕的虚拟屏分辨率,所述虚拟屏幕用于承载所述应用程序的应用画面,且所述虚拟屏分辨率的宽高比与所述目标适配分辨率的宽高比一致;
所述处理模块,用于基于所述虚拟屏分辨率、源端编码分辨率以及所述期望分辨率,确定目标编码分辨率,所述源端编码分辨率与所述源端的编码能力相关;
所述处理模块,用于通过采用所述目标编码分辨率的编码器对所述应用画面进行视频编码,得到投屏数据流;
传输模块,用于向所述目的端传输所述投屏数据流,以便所述目的端基于所述投屏数据流进行投屏显示。
13.一种终端,其特征在于,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至11任一项所述的投屏方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至11任一项所述的投屏方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述终端实现如权利要求1至11任一所述的投屏方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311008573.4A CN119484917A (zh) | 2023-08-10 | 2023-08-10 | 投屏方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311008573.4A CN119484917A (zh) | 2023-08-10 | 2023-08-10 | 投屏方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN119484917A true CN119484917A (zh) | 2025-02-18 |
Family
ID=94565077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311008573.4A Pending CN119484917A (zh) | 2023-08-10 | 2023-08-10 | 投屏方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119484917A (zh) |
-
2023
- 2023-08-10 CN CN202311008573.4A patent/CN119484917A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113015021B (zh) | 云游戏的实现方法、装置、介质及电子设备 | |
CN112235626B (zh) | 视频渲染方法、装置、电子设备及存储介质 | |
CN109983757B (zh) | 全景视频回放期间的视图相关操作 | |
JP5830496B2 (ja) | ディスプレイコントローラおよび画面転送装置 | |
AU2011317052B2 (en) | Composite video streaming using stateless compression | |
US10574955B2 (en) | Re-projecting flat projections of pictures of panoramic video for rendering by application | |
CN112204993B (zh) | 使用重叠的被分区的分段的自适应全景视频流式传输 | |
CN112087648B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN109640167B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN1578452A (zh) | 远程显示协议、视频显示系统、以及终端设备 | |
US20220182687A1 (en) | Method for providing and method for acquiring immersive media, apparatus, device, and storage medium | |
KR20160131829A (ko) | 클라우드 스트리밍 서비스 시스템, 이미지 타입에 따른 알파 값을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN115941965A (zh) | 云桌面编码方法、重建方法、显示方法和显示系统 | |
CN114466228A (zh) | 一种提高投屏显示流畅度的方法、设备及存储介质 | |
CN112672162A (zh) | 编码方法、装置及存储介质 | |
CN119484917A (zh) | 投屏方法、装置、终端及存储介质 | |
AU2015203292B2 (en) | Composite video streaming using stateless compression | |
CN105745930A (zh) | 用于图像比特流处理的技术 | |
CN115412559B (zh) | 端云资源协同方法、电子设备及可读存储介质 | |
JP6067085B2 (ja) | 画面転送装置 | |
CN117149123A (zh) | 数据处理方法、装置、电子设备 | |
CN118612446A (zh) | 编解码方法、装置、设备、存储介质及计算机程序 | |
CN115396710A (zh) | H5或小程序投短视频的方法以及相关装置 | |
CN102487443A (zh) | 荧幕画面的编码方法及其应用的电子装置 | |
JP5593514B2 (ja) | スクリーンフレームの符号化方法、及び、それを応用した電子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |