CN113965751B - 屏幕内容编码方法、装置、设备及存储介质 - Google Patents
屏幕内容编码方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113965751B CN113965751B CN202111176068.1A CN202111176068A CN113965751B CN 113965751 B CN113965751 B CN 113965751B CN 202111176068 A CN202111176068 A CN 202111176068A CN 113965751 B CN113965751 B CN 113965751B
- Authority
- CN
- China
- Prior art keywords
- screen image
- type
- image frame
- media type
- current 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/127—Prioritisation of hardware or computational resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Abstract
本申请提供了一种屏幕内容编码方法、装置、设备及存储介质,涉及计算机及通信技术领域,该方法包括:从原始屏幕获取当前屏幕图像帧,确定当前屏幕图像帧的媒体类型,当前屏幕图像帧的媒体类型为当前屏幕图像帧中显示的内容对应的媒体类型,根据当前屏幕图像帧的媒体类型获取当前屏幕图像帧的编码参数,根据编码参数对当前屏幕图像帧进行编码。从而,可针对不同媒体类型的屏幕图像帧采用对应的编码参数进行屏幕内容编码,满足对不同类型的应用进行屏幕共享时的需求。
Description
技术领域
本申请实施例涉及计算机及通信技术领域,尤其涉及一种屏幕内容编码方法、装置、设备及存储介质。
背景技术
目前,即时通讯应用、音/视频会议和无线投屏等应用中均支持屏幕共享,且使用频率越来越高。
现有的屏幕分享技术中,通常是将采集到屏幕截图按照固定的分辨率和固定的编码帧率等固定编码参数进行屏幕内容编码,将屏幕内容编码后得到的码流通过网络传输给其它终端设备,其他终端设备对接收到的码流进行视频解码并渲染显示。
然而,在会议屏幕共享时,共享的屏幕当前显示的内容除了常用的PPT、excel、word等文字类型的应用外,云游戏、电影等视频类型的应用也越来越普遍。针对文字类型的应用,在屏幕共享时对清晰度的要求较高,针对视频类型的应用,在屏幕共享时对流畅度的要求较高。上述方法无法满足对不同类型的应用进行屏幕共享时的需求。
发明内容
本申请提供一种屏幕内容编码方法、装置、设备及存储介质,可满足对不同类型的应用进行屏幕共享时的需求,提高屏幕共享的效果。
第一方面,本申请提供一种屏幕内容编码方法,包括:
从原始屏幕获取当前屏幕图像帧;
确定所述当前屏幕图像帧的媒体类型,所述当前屏幕图像帧的媒体类型为所述当前屏幕图像帧中显示的内容对应的媒体类型;
根据所述当前屏幕图像帧的媒体类型获取所述当前屏幕图像帧的编码参数;
根据所述编码参数对所述当前屏幕图像帧进行编码。
第二方面,本申请提供一种屏幕内容编码装置,包括:
第一获取模块,用于从原始屏幕获取当前屏幕图像帧;
确定模块,用于确定所述当前屏幕图像帧的媒体类型,所述当前屏幕图像帧的媒体类型为所述当前屏幕图像帧中显示的内容对应的媒体类型;
第二获取模块,用于根据所述当前屏幕图像帧的媒体类型获取所述当前屏幕图像帧的编码参数;
编码模块,用于根据所述编码参数对所述当前屏幕图像帧进行编码。
第三方面,本申请提供一种终端设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行第一方面的方法。
第四方面,本申请提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行第一方面的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面的方法。
综上,在本申请中,通过从原始屏幕获取当前屏幕图像帧,确定当前屏幕图像帧的媒体类型,根据当前屏幕图像帧的媒体类型获取当前屏幕图像帧的编码参数,根据当前屏幕图像帧的编码参数对当前屏幕图像帧进行编码。其中,当前屏幕图像帧的媒体类型为当前屏幕图像帧中显示的窗口对应的显示的内容对应的媒体类型。从而,可针对不同媒体类型的屏幕图像帧采用对应的编码参数进行屏幕内容编码,满足对不同类型的应用进行屏幕共享时的需求,提高屏幕共享的效果。例如,当前屏幕图像帧中显示的窗口对应的显示的内容对应的媒体类型是文字类型或视频类型,即可提高文字类型的应用在屏幕共享时的清晰度以及视频类型的应用在屏幕分享时的流畅度。
进一步地,在本申请中,在以预设频率获取并更新存储历史屏幕图像帧的媒体类型时,同时还获取每个屏幕图像帧的帧复杂度比率,当已存储的历史屏幕图像帧的媒体类型为预设媒体类型时,再结合当前屏幕图像帧之前的Q个屏幕图像帧中的每个屏幕图像帧的帧复杂度比率来确定当前屏幕图像帧的媒体类型。从而可以提高屏幕图像帧的媒体类型检测的精度,降低将文字类型误判为视频类型的概率,提高用户体验。
更进一步地,若当前屏幕图像帧的媒体类型为第二文字类型,使用软件编码器进行编码的优先级大于使用硬件编码器进行编码的优先级;若当前屏幕图像帧的媒体类型为第二视频类型,使用硬件编码器进行编码的优先级大于使用软件编码器进行编码的优先级。从而可提高编码效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用场景图;
图2为本申请实施例提供的一种屏幕内容编码方法的流程图;
图3为本申请实施例提供的一种屏幕图像帧的媒体类型分类示意图;
图4为一种共享屏幕时视频类型的屏幕图像帧的帧复杂度比率和PPT类型的屏幕图像帧的帧复杂度比率的对比示意图;
图5为一个屏幕图像帧的示意图;
图6为本申请实施例提供的一种屏幕内容编码方法的交互流程图;
图7为本申请实施例提供的一种屏幕内容编码方法的交互流程图;
图8为本申请实施例提供的一种屏幕内容编码方法的交互流程图;
图9为本申请实施例提供的一种屏幕内容编码装置的结构示意图;
图10为本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
相关技术中,在进行屏幕共享时,是将采集到屏幕截图按照固定的分辨率和固定的编码帧率等固定编码参数进行屏幕内容编码,将屏幕内容编码后得到的码流通过网络传输给其它终端设备,但是,针对不同类型的应用如文字类型、视频类型或文字类型与视频类型混合的混合类型等,在屏幕共享时的需求不同,相关技术中无法满足对不同类型的应用进行屏幕共享时的需求。
为了解决上述技术问题,本申请通过在进行屏幕共享时,确定从原始屏幕获取的每个屏幕图像帧的媒体类型,每个屏幕图像帧的媒体类型为每个屏幕图像帧中显示的内容对应的媒体类型,根据每个屏幕图像帧的媒体类型获取每个屏幕图像帧的编码参数,根据该编码参数对每个屏幕图像帧进行编码。其中,每个屏幕图像帧中显示的内容对应的媒体类型可以是与文字类型应用的相似度为100%的文字类型、与视频类型应用的相似度为100%的视频类型、与文字类型应用的相似度为M%的文字类型、与视频类型应用的相似度为N%的视频类型或者与文字类型应用或视频类型应用的相似度为50%的混合类型,M和N均大于50且小于100。从而,可针对不同媒体类型的屏幕图像帧采用对应的编码参数进行屏幕内容编码,因此,可提高文字类型的应用在屏幕共享时的清晰度以及视频类型的应用在屏幕分享时的流畅度,满足对不同类型的应用进行屏幕共享时的需求,提高屏幕共享的效果。下面结合附图将对本申请技术方案进行详细阐述。
请参见图1,示例性地,图1为本申请实施例提供的一种应用场景图,该应用场景中可以涉及终端设备10、服务器20和终端设备30,终端设备10与终端设备30可以是各类终端设备,如手机、个人计算机、平板电脑、便携式设备和学习机等。终端设备10与服务器20之间或者终端设备30与服务器20之间可以通过有线网络或无线网络通信。
可以理解的是,图1中的终端设备和服务器的数量仅仅是示意性的,根据实际中的需要,可以具有任意数量的终端设备和服务器,例如服务器20可以是多个服务器组成的服务器集群等等。
在本申请的一个实施例中,用户可以将终端设备10的屏幕上显示的屏幕内容(屏幕视频)通过服务器20共享到另一终端设备30上,具体地,在将终端设备10的屏幕上显示的屏幕视频共享到终端设备30之前,需要对共享的屏幕视频进行编码,执行编码处理的执行主体可以是客户端,也可以是服务器20。
在本申请的一个实施例中,用户可以通过终端设备10从原始屏幕获取当前屏幕图像帧,对当前屏幕图像帧进行编码后得到码流,将编码后的码流发送至服务器20,服务器20将编码后的码流发送至终端设备30,终端设备30对接收到的码流进行视频解码后渲染显示在终端设备30的屏幕上。
在本申请的一个实施例中,本申请实施例提供的屏幕内容编码方法可由屏幕内容编码装置执行,屏幕内容编码装置可以是具有屏幕共享功能的客户端,该客户端例如可以为即时通讯应用、音/视频会议应用和无线投屏等应用中的任意一种,还可以是其他应用。客户端在接收到屏幕共享指令后(例如用户点击共享屏幕按钮触发屏幕共享指令),可以执行本申请实施例提供的屏幕内容编码方法,具体可以是从原始屏幕获取当前屏幕图像帧,确定当前屏幕图像帧的媒体类型,根据当前屏幕图像帧的媒体类型获取当前屏幕图像帧的编码参数,根据编码参数对当前屏幕图像帧进行编码。后续可以按照共享屏幕的流程将编码后得到的码流通过网络传输至其它终端设备,其他终端设备对接收到的码流进行视频解码并渲染显示。由于本申请实施例中可针对不同媒体类型的屏幕图像帧采用对应的编码参数进行屏幕内容编码,因此,可满足对不同类型的应用进行屏幕共享时的需求,提高屏幕共享的效果。
下面对本申请实施例的技术方案的实现细节进行详细阐述:
图2为本申请实施例提供的一种屏幕内容编码方法的流程图,该屏幕内容编码方法可以由屏幕内容编码装置执行,该屏幕内容编码装置可以通过软件和/或硬件的方式实现。该屏幕内容编码装置可以是终端设备或终端设备的芯片或电路。如图2所示,本实施例的方法可以包括:
S101、从原始屏幕获取当前屏幕图像帧。
具体地,从原始屏幕获取当前屏幕图像帧,可以是通过屏幕录制设备来采集当前屏幕图像帧,也可以是通过安装在屏幕共享端的终端设备上的屏幕录制软件来采集当前屏幕图像帧,每一个屏幕图像帧(也称每一帧屏幕图像)可以是由屏幕录制设备或者屏幕录制软件在每一时间点截取的原始屏幕的图像,其中原始屏幕为待共享的屏幕。
可选的,屏幕录制设备或者屏幕录制软件在截取原始屏幕的图像时,可以是按照预设的周期截取,即每间隔固定时长截取一个屏幕图像帧,具体可以是直接从终端设备的显示单元捕获原始屏幕的屏幕图像帧。
S102、确定当前屏幕图像帧的媒体类型,当前屏幕图像帧的媒体类型为当前屏幕图像帧中显示的内容对应的媒体类型。
具体地,当前屏幕图像帧的媒体类型为当前屏幕图像帧中显示的内容对应的媒体类型,根据通常共享的媒体类型,当前屏幕图像帧中显示的内容对应的媒体类型可以是文字类型、视频类型或文字与视频混合的混合类型,文字类型应用例如可以包括PPT、excel、word和网页等,视频类型应用例如可以包括云游戏、电影和短视频等。在实际使用场景中,用户会同时打开一个或多个应用程序,且存在对每个窗口的拖拽、缩放等操作,因此,当前屏幕图像帧中显示的窗口可以是一个或多个,根据窗口的个数以及每个窗口显示的内容对应的媒体类型和窗口占屏幕的百分比,可以确定出当前屏幕图像帧的媒体类型。
在本申请的一个实施例中,当前屏幕图像帧的媒体类型可以包括五大类,分别是第一文字类型、第一视频类型、第二文字类型、第二视频类型和混合类型,第一文字类型与文字类型应用的相似度为100%,如excel、word,第一视频类型与视频类型应用的相似度为100%,如游戏视频或视频播放平台播放的视频,第二文字类型与文字类型应用的相似度为M%,第二视频类型与视频类型应用的相似度为N%,混合类型与文字类型应用或视频类型应用的相似度为50%,M和N均大于50且小于100,M和N可以是大于50且小于100之间的任意数值。
示例性地,图3为本申请实施例提供的一种屏幕图像帧的媒体类型分类示意图,如图3所示,屏幕图像帧的媒体类型包括五种类型,分别是:与文字类型应用的相似度为100%的文字类型(图中以及下文中简称相似度为100%的文字类型)、与文字类型应用的相似度为80%的文字类型(图中以及下文中简称相似度为80%的文字类型)、与文字类型应用或视频类型应用的相似度为50%的混合类型(图中以及下文中简称相似度为50%的混合类型)、与视频类型应用的相似度为相似度80%的视频类型(图中以及下文中简称相似度为80%的视频类型)和与视频类型应用的相似度为相似度100%的视频类型(图中以及下文中简称相似度为100%的视频类型)。其中,在图3中,相似度为80%的文字类型、相似度为50%的混合类型、相似度为80%的视频类型中均是以屏幕图像帧中显示的窗口数量为2个为例,可以理解的是,屏幕图像帧中显示的窗口还可以是其他数值。
在本申请的一个实施例中,以相似度为80%的文字类型为例,相似度为80%的文字类型可以是屏幕占比为80%的文字类型应用(该文字类型应用的应用分类为100%文字),还可以是屏幕占比为100%的文字类型应用(该文字类型应用的应用分类为80%文字),还可以是多种类型应用的加权结果,例如,当前显示两个窗口,即为当前显示的两个窗口对应的媒体类型的加权结果。
本实施例中,S102中确定当前屏幕图像帧的媒体类型,有三种可实施的方式:
方式一:S102中确定当前屏幕图像帧的媒体类型,具体可以包括:
S1021、在确定未存储历史屏幕图像帧的媒体类型的情况下,根据当前屏幕图像帧中显示的内容获取当前屏幕图像帧的媒体类型,并将当前屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型,历史屏幕图像帧的媒体类型以预设频率获取并更新存储。
S1022、若确定已存储历史屏幕图像帧的媒体类型,将已存储的历史屏幕图像帧的媒体类型确定为当前屏幕图像帧的媒体类型。
具体来说,本申请实施例中屏幕图像帧是按照预设的周期截取,在截取到每个屏幕图像帧时,会确定每个屏幕图像帧的媒体类型,考虑到短时间内多个连续的屏幕图像帧的媒体类型是不会变的,是相同的,因此,在确定当前屏幕图像帧的媒体类型时,可以参照当前屏幕图像帧之前的历史屏幕图像帧的媒体类型,历史屏幕图像帧的媒体类型以预设频率获取并更新存储,可以理解的是,历史屏幕图像帧可以是当前屏幕图像帧之前的第1个或第n个屏幕图像帧,n大于1。
在一种可实施的方式中,历史屏幕图像帧的媒体类型以预设频率获取并更新存储的过程包括:
以预设频率,从原始屏幕获取屏幕图像帧。
根据屏幕图像帧中显示的内容获取屏幕图像帧的媒体类型,将屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型。
若连续预设次数获取的屏幕图像帧的媒体类型相同,且连续预设次数获取的屏幕图像帧的媒体类型与历史屏幕图像帧的媒体类型不同,则将连续预设次数获取的屏幕图像帧的媒体类型更新为历史屏幕图像帧的媒体类型。
例如预设频率为500ms一次,即每500ms进行一次屏幕图像帧的媒体类型的获取,预设次数例如为3次。例如,在确定共享屏幕开始时,从原始屏幕获取第一个屏幕图像帧,根据第一个屏幕图像帧中显示的内容获取第一个屏幕图像帧的媒体类型,如为第一文字类型,将第一个屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型,500ms之后,从原始屏幕获取第二个屏幕图像帧,根据第二个屏幕图像帧中显示的内容获取第二个屏幕图像帧的媒体类型,再间隔500ms(即距离共享屏幕开始1000ms)之后,从原始屏幕获取第三个屏幕图像帧,根据第三个屏幕图像帧中显示的内容获取第三个屏幕图像帧的媒体类型,再间隔500ms(即距离共享屏幕开始1500ms)之后,从原始屏幕获取第四个屏幕图像帧,根据第四个屏幕图像帧中显示的内容获取第四个屏幕图像帧的媒体类型,若第二个屏幕图像帧的媒体类型、第三个屏幕图像帧的媒体类型和第四个屏幕图像帧的媒体类型均相同(例如为相似度为50%的混合类型)且和第一个屏幕图像帧的媒体类型不同,则将相似度为50%的混合类型更新为历史屏幕图像帧的媒体类型存储。
本实施例中,通过设置连续预设次数获取的屏幕图像帧的媒体类型相同,且连续预设次数获取的屏幕图像帧的媒体类型与历史屏幕图像帧的媒体类型不同时,才更新历史屏幕图像帧的媒体类型,可以提高获取屏幕图像帧的准确度,避免窗口抖动(如PPT翻页)时误判。
本实施例中,通过对视频内容的分析可获知,屏幕图像帧的媒体类型为文字类型时,屏幕图像帧纹理简单且运动平坦,屏幕图像帧的媒体类型为视频类型时,屏幕图像帧纹理细节变化较多且运动较为剧烈,因此,可以进一步采用帧复杂度分析方法来确定屏幕图像帧的媒体类型,从而可提高屏幕图像帧的媒体类型检测的精度。下面详细说明S1021结合帧复杂度分析方法,即如下方式二所描述的方法。
方式二:S102中确定当前屏幕图像帧的媒体类型,具体可以包括:
S1021’、在确定未存储历史屏幕图像帧的媒体类型的情况下,根据当前屏幕图像帧中显示的内容获取当前屏幕图像帧的媒体类型,并将当前屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型,历史屏幕图像帧的媒体类型以预设频率获取并更新存储。
S1022’、若确定已存储历史屏幕图像帧的媒体类型,且已存储的历史屏幕图像帧的媒体类型为预设媒体类型,获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q,Q为预设正整数,或者,Q个屏幕图像帧为预设时间内的多个屏幕图像帧。
S1023’、根据q和与预设媒体类型对应的预设阈值确定当前屏幕图像帧的媒体类型,并将当前屏幕图像帧的媒体类型更新存储为历史屏幕图像帧的媒体类型。
具体地,历史屏幕图像帧的媒体类型以预设频率获取并更新存储的过程与方式一中相同,此处不再赘述。
在实际共享屏幕过程中,视频序列抖动以及用户操作过程的不确定性,会造成个别屏幕图像帧的帧复杂度出现很高的跳变,会导致获取的屏幕图像帧的媒体类型也会出现跳变,例如PPT应用在翻页时会出现瞬时帧复杂度跳变,会导致误判(即PPT应用原本是文字类型,在翻页时会被误判为视频类型),或者,在实际共享屏幕的过程中,用户打开的应用在不同时间会发生变化,例如从相似度为80%的文字类型变为100%的文字类型,或者,从相似度为80%的视频类型变为100%的视频类型,或者,从相似度为100%的文字类型变为80%的文字类型,或者,从相似度为100%的视频类型变为80%的视频类型等,为了确保媒体类型变更的准确性或者为解决误判的问题,本实施例的方法在根据屏幕图像帧中显示的内容获取屏幕图像帧的媒体类型方法的基础上,即在以预设频率获取并更新存储历史屏幕图像帧的媒体类型时,同时还获取每个屏幕图像帧的帧复杂度比率,当已存储的历史屏幕图像帧的媒体类型为预设媒体类型时,再结合当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q来确定当前屏幕图像帧的媒体类型。从而可以提高屏幕图像帧的媒体类型检测的精度,降低将文字类型误判为视频类型的概率,提高用户体验。
在方式二中,进一步地,预设媒体类型不同,其对应的预设阈值也不同,相应地,根据q和与预设媒体类型对应的预设阈值确定当前屏幕图像帧的媒体类型也不同,可选的,有如下两种实施方式:
在第一种可实施的方式中,与第一视频类型对应的预设阈值包括平均帧复杂度比率阈值P2,与第二视频类型对应的预设阈值包括平均帧复杂度比率阈值P1,P1大于P2,与第一文字类型对应的预设阈值包括平均帧复杂度比率阈值P4,与第二文字类型对应的预设阈值包括平均帧复杂度比率阈值P3,P3小于P4。此时根据q和与预设媒体类型对应的预设阈值确定当前屏幕图像帧的媒体类型,具体可以为:
预设媒体类型为第二视频类型时,若q大于或等于P1,确定当前屏幕图像帧的媒体类型为第一视频类型;若q小于P1,确定当前屏幕图像帧的媒体类型为第二视频类型;
预设媒体类型为第一视频类型时,若q小于或等于P2,确定当前屏幕图像帧的媒体类型为第二视频类型;若q大于P2,确定当前屏幕图像帧的媒体类型为第一视频类型;
预设媒体类型为第二文字类型时,若q小于或等于P3,确定当前屏幕图像帧的媒体类型为第一文字类型;若q大于P3,确定当前屏幕图像帧的媒体类型为第二文字类型;
预设媒体类型为第一文字类型时,若q大于或等于P4,确定当前屏幕图像帧的媒体类型为第二文字类型;若q小于P4时,确定当前屏幕图像帧的媒体类型为第一文字类型。
在该实施方式中,进一步地,与第二视频类型对应的预设阈值还可以包括连续复杂帧的数量阈值n1,确定当前屏幕图像帧的媒体类型为第一视频类型之前,还可以包括:确定Q个屏幕图像帧中的连续复杂帧的数量K大于或等于n1,复杂帧为帧复杂度比率大于预设帧复杂度比率阈值T1的屏幕图像帧,T1小于或等于P1。
进一步地,与第一视频类型对应的预设阈值还可以包括连续复杂帧的数量阈值n2,n1大于n2,确定当前屏幕图像帧的媒体类型为第二视频类型之前,还可以包括:确定K小于或等于n2。
本实施方式中,通过增加连续复杂帧的数量K的判断,可以进一步提高确定当前屏幕图像帧的媒体类型的准确性。
在该实施方式中,进一步地,与第二文字类型对应的预设阈值还可以包括连续复杂帧的数量阈值n3,确定当前屏幕图像帧的媒体类型为第一文字类型之前,还可以包括:确定Q个屏幕图像帧中的连续复杂帧的数量K小于或等于n3,复杂帧为帧复杂度比率大于预设帧复杂度比率阈值T2的屏幕图像帧,T2小于或等于P3。
在该实施方式中,进一步地,与第一文字类型对应的预设阈值还可以包括连续复杂帧的数量阈值n4,n3小于n4,确定当前屏幕图像帧的媒体类型为第二文字类型之前,还可以包括:确定K大于或等于n4。
本实施方式中,通过增加连续复杂帧的数量K的判断,可以进一步提高确定当前屏幕图像帧的媒体类型的准确性。
在第二种可实施的方式中,获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q之前,本实施例的方法还可以包括:
确定当前屏幕图像帧显示的是一个窗口,且一个窗口的应用是预设应用,预设应用例如可以为PPT应用。
在该实施方式中,与第二文字类型对应的预设阈值包括平均帧复杂度比率阈值P5和连续复杂帧的数量阈值n5,与第二视频类型对应的预设阈值包括平均帧复杂度比率阈值P6和连续复杂帧的数量阈值n6,P5大于P6,n5大于n6,根据q和与预设媒体类型对应的预设阈值确定当前屏幕图像帧的媒体类型,具体可以为:
预设媒体类型为第二文字类型时,若q大于或等于P5,且Q个屏幕图像帧中的连续复杂帧的数量K大于或等于n5,确定当前屏幕图像帧的媒体类型为第二视频类型;
预设媒体类型为第二视频类型时,若q小于或等于P6,且K小于或等于n6,确定当前屏幕图像帧的媒体类型为第二文字类型。
本实施例方式中,例如,第二视频类型为相似度为80%的视频类型,第二文字类型例如为相似度为80%的文字类型,若当前屏幕图像帧显示的是一个窗口,且一个窗口的应用是PPT应用,在PPT的播放画面由运动转为静止时,例如在PPT中播放视频转为在PPT中播放文字,通过上述方法,实现相似度为80%的视频类型先切换到80%文字类型,再由80%文字类型转为100%文字类型;在PPT的播放画面由静止转为运动时,例如在PPT中播放文字转为在PPT中播放视频,通过上述方法,实现相似度为100%的文字类型先切换到80%文字类型,再由80%文字类型转为80%视频类型。避免出现分辨率或帧率的突然变化,而是缓慢的过渡,提高用户体验。
可选的,上述P4小于P6。
在一种可实施的方式中,S102中确定当前屏幕图像帧的媒体类型,还可以采用帧复杂度分析方法,即直接根据当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q来确定当前屏幕图像帧的媒体类型,即如下方式三所描述的方式。在方式三中,媒体类型可以包括第二文字类型和第二视频类型,第二文字类型与文字类型应用的相似度为M%,第二视频类型与视频类型应用的相似度为N%,M和N均大于50且小于100。
方式三、S102中确定当前屏幕图像帧的媒体类型,具体可以包括:
S1021”、获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q。
S1022”、根据q、第一预设阈值P7和第二预设阈值P8确定当前屏幕图像帧的媒体类型,Q为预设正整数,或者,Q个屏幕图像帧为预设时间内的多个屏幕图像帧,P7小于P8。
可选的,作为一种可实施的方式,S1022”中根据q、第一预设阈值P7和第二预设阈值P8确定当前屏幕图像帧的媒体类型,可以为:
若q小于或等于P7,确定当前屏幕图像帧的媒体类型为第二文字类型;
若q大于或等于P8,确定当前屏幕图像帧的媒体类型为第二视频类型。
可选的,作为另一种可实施的方式,S1022”中根据q、第一预设阈值P7和第二预设阈值P8确定当前屏幕图像帧的媒体类型,可以为:
若q小于或等于P7,且Q个屏幕图像帧中的连续复杂帧的数量K小于或等于连续复杂帧的数量阈值n7,确定当前屏幕图像帧的媒体类型为第二文字类型;
若q大于或等于P8,且K大于或等于连续复杂帧的数量阈值n8,确定当前屏幕图像帧的媒体类型为第二视频类型。
上述可实施的方式中,区别在于第二种可实施的方式中增加了连续复杂帧的数量K的判断,可以进一步提高确定当前屏幕图像帧的媒体类型的准确性。
本实施中通过统计连续复杂帧的数量是否大于预设的连续复杂帧的数量阈值,进而进行当前屏幕图像帧的媒体类型的确定,以提高确定当前屏幕图像帧的媒体类型的准确性。图4为一种共享屏幕时视频类型的屏幕图像帧的帧复杂度比率和PPT类型的屏幕图像帧的帧复杂度比率的对比示意图,如图4所示,视频类型时,会持续出现较高的帧复杂度比率的屏幕图像帧,PPT类型时,会出现瞬时较高的帧复杂度比率的屏幕图像帧,但是不是连续的。因此,本实施例中通过统计连续复杂帧的数量是否大于预设的连续复杂帧的数量阈值,来确定当前屏幕图像帧的媒体类型,可以提高确定当前屏幕图像帧的媒体类型的准确性。
在上述方式二和方式三中,作为一种可实施的方式,获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q,具体可以包括:
S201、针对Q个屏幕图像帧中的每个屏幕图像帧,对每个屏幕图像帧进行下采样处理。
为了方便进行帧间运动估计,需要对图像边界区域进行填充拓展,可选的,下采样处理后还可以进行边界填充。
S202、将下采样处理后的每个屏幕图像帧分为多个宏块,对多个宏块中的每个宏块进行帧间运动估计和帧内哈达玛变换绝对值求和(Sum of Absolute TransformedDifference,SATD)计算,得到每个宏块的最小预测代价值。
S203、将多个宏块的最小预测代价值累加,得到每个屏幕图像帧的帧复杂度。
S204、根据每个屏幕图像帧的帧复杂度和预设的帧复杂度阈值的比值,得到每个屏幕图像帧的帧复杂度比率。
S205、根据Q个屏幕图像帧中的每个屏幕图像帧的帧复杂度比率得到q。
需要说明的是,方式三中,仅可以确定出两种屏幕图像帧的媒体类型,即第二文字类型和第二视频类型,而方式一和方式二中可以确定出多种屏幕图像帧的媒体类型,即第一文字类型、第一视频类型、第二文字类型、第二视频类型和混合类型。
本实施例中,作为一种可实施的方式,S1021以及S1021’中根据当前屏幕图像帧中显示的内容获取当前屏幕图像帧的媒体类型,具体可以包括:
S301、获取当前屏幕图像帧中显示的窗口的数量P和P个窗口的应用标识。
具体地,当前屏幕图像帧中显示的窗口的数量可以是一个或多个,由于用户的拖拽或缩放等操作,每个窗口的大小可以不同。在一种可实施的方式中,获取P个窗口的应用标识,可以是通过调用系统应用程序接口(Application Programming Interface,API)获取当前屏幕图像帧中显示的位于屏幕顶层的P个应用的标识,将P个应用的标识确定为P个窗口的应用标识。其中,应用标识可以是应用的名称,应用的名称可以是其类型对应的名称,如word、PPT和excel的名称分别可以是Microsoft Word、Microsoft PowerPoint和Microsoft excel工作表,如图片的名称可以是PNG文件,视频的名称可以是视频文件的后缀名,如avi、rm和rmvb等等。
在该实施实施方式中,通过调用系统API获取到当前屏幕图像帧中显示的位于屏幕顶层的P个应用的标识时,P大于1时,还可以获取该P个应用对应的P个窗口所占屏幕百分比。
S302、若P为1,根据预存的第一对应关系和1个窗口的应用标识确定1个窗口显示的内容对应的媒体类型,将1个窗口显示的内容对应的媒体类型确定为当前屏幕图像帧的媒体类型,第一对应关系包括应用标识与显示的内容对应的媒体类型和窗口属性值的对应关系。
具体地,P为1,即当前屏幕图像帧中显示的窗口为1个,根据预存的第一对应关系和该1个窗口的应用标识即可确定该1个窗口显示的内容对应的媒体类型,该1个窗口显示的内容对应的媒体类型即为当前屏幕图像帧的媒体类型。其中,第一对应关系包括应用标识与显示的内容对应的媒体类型和窗口属性值的对应关系,其中的应用标识即为各类应用的应用标识,显示的内容对应的媒体类型包括可以文字和视频,可选的,窗口属性值可以是0-1之间的数值,窗口的窗口属性值越接近0,则该窗口显示的内容对应的媒体类型是视频类型的概率越大,窗口的窗口属性值越接近1,则该窗口显示的内容对应的媒体类型是文字类型的概率越大。示例性地,如下表一示出了一种第一对应关系:
表一
其中,第一对应关系为预先标注的对应关系,可以是通过人工经验标注,例如,word、PPT和excel这类应用对应的显示的内容对应的媒体类型为文字类型,在标注第一对应关系时,可标注word、PPT和excel的应用标识对应的显示的内容对应的媒体类型均为文字类型。例如,网页的内容可以包括文字和视频,网页这一应用对应的显示的内容对应的媒体类型为80%文字,在标注第一对应关系时,可表述网页的应用标识对应的显示的内容对应的媒体类型为80%文字类型。
S303、若P大于1,根据P个窗口的窗口属性值和P个窗口所占屏幕百分比确定当前屏幕图像帧的媒体类型预测值,P个窗口的窗口属性值根据第一对应关系和P个窗口的应用标识确定。根据当前屏幕图像帧的媒体类型预测值和预存的第二对应关系确定当前屏幕图像帧的媒体类型,第二对应关系包括媒体类型预测值的范围和媒体类型的对应关系。
具体地,第一对应关系包括应用标识与显示的内容对应的媒体类型和窗口属性值的对应关系,可以根据P个窗口的应用标识从第一关系中查找P个窗口的窗口属性值,然后根据P个窗口的窗口属性值和P个窗口所占屏幕百分比确定当前屏幕图像帧的媒体类型预测值。
作为一种可实施的方式,根据P个窗口的窗口属性值和P个窗口所占屏幕百分比确定当前屏幕图像帧的媒体类型预测值,具体可以为:
根据P个窗口的窗口属性值和P个窗口所占屏幕百分比,通过如下公式计算得到当前屏幕图像帧的媒体类型预测值Pn:
Pn=t1*s1+t2*s2+…+tp*sp;
其中,t1、t2、…、tp分别为P个窗口的窗口属性值,s1、s2、…、sp分别为P个窗口所占屏幕百分比。
以图5为例,图5为一个屏幕图像帧的示意图,如图5所示,该屏幕图像帧当前显示2个窗口(左边窗口A和右边窗口B),窗口A显示的内容为一游戏界面(属于视频类型),窗口B显示的内容为一网页(属于文字类型),窗口A的窗口属性值t1=0,窗口A所占屏幕百分比s1为50%,窗口B的窗口属性值t2=0.8,窗口B所占屏幕百分比s2为50%,该屏幕图像帧的媒体类型预测值Pn=t1*s1+t2*s2=0.4。
本实施例中,预存的第二对应关系包括媒体类型预测值的范围和媒体类型的对应关系。以媒体类型包括上述五种类型为例,示例性地,如下表二示出了一种第二对应关系:
表二
得到当前屏幕图像帧的媒体类型预测值后,可以先确定当前屏幕图像帧的媒体类型预测值属于第二对应关系中的哪个媒体类型预测值的范围,根据当前屏幕图像帧所属的媒体类型预测值的范围即可确定当前屏幕图像帧的媒体类型。例如,图5所示的屏幕图像帧的媒体类型预测值Pn=0.4,根据表二所示的第二对应关系,可以确定图5所示的屏幕图像帧的媒体类型为相似度为50%的混合类型。
S103、根据当前屏幕图像帧的媒体类型获取当前屏幕图像帧的编码参数。
具体地,作为一种可实施的方式,S103具体可以为:
根据预存的第三对应关系和当前屏幕图像帧的媒体类型确定当前屏幕图像帧的编码参数,第三对应关系包括屏幕图像帧的媒体类型和编码参数的对应关系。
可选的,编码参数包括分辨率、帧率和码率中的至少一项,第三对应关系中,第一文字类型的分辨率大于第一视频类型的分辨率,第二文字类型的分辨率大于第二视频类型的分辨率,第一文字类型的帧率小于第一视频类型的帧率,第二文字类型的帧率小于第二视频类型的帧率。
通过设置第一文字类型的分辨率大于第一视频类型的分辨率,第二文字类型的分辨率大于第二视频类型的分辨率,可以提高文字类型的应用在屏幕共享时的清晰度,通过设置第一文字类型的帧率小于第一视频类型的帧率,第二文字类型的帧率小于第二视频类型的帧率,可以提高视频类型的应用在屏幕分享时的流畅度。
示例性的,以上述五种屏幕图像帧的媒体类型为例,以编码参数包括分辨率、帧率和码率为例,如下表三示出了一种第三对应关系:
表三
作为另一种可实施的方式,S103具体可以为:
将当前屏幕图像帧的媒体类型发送至服务器,用于服务器根据预存的第三对应关系和当前屏幕图像帧的媒体类型确定当前屏幕图像帧的编码参数,第三对应关系包括屏幕图像帧的媒体类型和编码参数的对应关系,接收服务器发送的屏幕图像帧的编码参数。
进一步地,将当前屏幕图像帧的媒体类型发送至服务器时,本实施例的方法还可以包括:
将客户端所运行的终端设备的中央处理器(CPU)的性能参数评分发送至服务器,用于服务器在根据CPU的性能参数评分确定满足预设阈值时,根据第三对应关系和当前屏幕图像帧的媒体类型确定当前屏幕图像帧的编码参数。
可选的,当前屏幕图像帧的媒体类型和客户端所运行的终端设备的CPU的性能参数评分可以同时发送给服务器,此处的服务器可以是流控服务器,流控服务器可以是云服务器。
S104、根据当前屏幕图像帧的编码参数对当前屏幕图像帧进行编码。
具体地,根据当前屏幕图像帧的编码参数对当前屏幕图像帧进行编码,可以是采用现有的编码方法进行编码。
作为一种可实施的方式,S104可以为:
若当前屏幕图像帧的媒体类型为第一文字类型或第二文字类型,使用软件编码器进行编码的优先级大于使用硬件编码器进行编码的优先级;若当前屏幕图像帧的媒体类型为第一视频类型或第二视频类型,使用硬件编码器进行编码的优先级大于使用软件编码器进行编码的优先级。
本实施例中,通过对软件编码器和硬件编码器在不同媒体类型下性能测试,相对于硬件编码器,软件编码器在屏幕图像帧的媒体类型为文字类型时性能较好,在屏幕图像帧的媒体类型为文字类型时,使用软件编码器编码比使用硬件编码器编码节省编码效率24.9%,使用软件编码器编码的速度是使用硬件编码器编码的0.62倍。在屏幕图像帧的媒体类型为视频类型时,使用硬件编码器编码比使用软件编码器编码节省编码效率1.6%,使用硬件编码器编码的速度是使用软件编码器编码的0.17倍。
因此,在终端设备具有软件编码器和硬件编码器的前提下,若当前屏幕图像帧的媒体类型为第一文字类型或第二文字类型,先使用软件编码器编码。若当前屏幕图像帧的媒体类型为第一视频类型或第二视频类型,先使用硬件编码器进行编码,可提高编码效率。可选的,在编码过程中,屏幕内容编码装置还可以将硬件编码出错信息实时发送给服务器(如流控服务器),服务器在接收到硬件编码出错信息时,可将硬件编码切换为软件编码。
本实施例提供的方法,通过从原始屏幕获取当前屏幕图像帧,确定当前屏幕图像帧的媒体类型,根据当前屏幕图像帧的媒体类型获取当前屏幕图像帧的编码参数,根据当前屏幕图像帧的编码参数对当前屏幕图像帧进行编码。其中,当前屏幕图像帧的媒体类型为当前屏幕图像帧中显示的内容对应的媒体类型。从而,可针对不同媒体类型的屏幕图像帧采用对应的编码参数进行屏幕内容编码,满足对不同类型的应用进行屏幕共享时的需求,提高屏幕共享的效果。例如,当前屏幕图像帧中显示的窗口对应的显示的内容对应的媒体类型是文字类型或视频类型,即可提高文字类型的应用在屏幕共享时的清晰度以及视频类型的应用在屏幕分享时的流畅度。
下面采用三个具体的实施例,对本申请的上述技术方案进行详细说明。
图6为本申请实施例提供的一种屏幕内容编码方法的交互流程图,如图6所示,本实施例的方法可以包括:
S401、客户端接收到共享屏幕指令后,从原始屏幕获取当前屏幕图像帧。
S402、客户端在确定未存储历史屏幕图像帧的媒体类型的情况下,根据当前屏幕图像帧中显示的内容获取当前屏幕图像帧的媒体类型,并将当前屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型。
具体地,根据当前屏幕图像帧中显示的内容获取当前屏幕图像帧的媒体类型,具体可以包括:
S4021、获取当前屏幕图像帧中显示的窗口的数量P和P个窗口的应用标识。
S4022、若P为1,根据预存的第一对应关系和1个窗口的应用标识确定1个窗口显示的内容对应的媒体类型,将1个窗口显示的内容对应的媒体类型确定为当前屏幕图像帧的媒体类型,第一对应关系包括应用标识与显示的内容对应的媒体类型和窗口属性值的对应关系。
S4023、若P大于1,根据P个窗口的窗口属性值和P个窗口所占屏幕百分比确定当前屏幕图像帧的媒体类型预测值,P个窗口的窗口属性值根据第一对应关系和P个窗口的应用标识确定。根据当前屏幕图像帧的媒体类型预测值和预存的第二对应关系确定当前屏幕图像帧的媒体类型,第二对应关系包括媒体类型预测值的范围和媒体类型的对应关系。
本实施例中,屏幕图像帧是按照预设的周期截取,在截取到每个屏幕图像帧时,会确定每个屏幕图像帧的媒体类型,考虑到短时间内多个连续的屏幕图像帧的媒体类型是不会变的,是相同的,因此,在确定当前屏幕图像帧的媒体类型时,可以参照当前屏幕图像帧之前的历史屏幕图像帧的媒体类型,历史屏幕图像帧的媒体类型以预设频率获取并更新存储。例如,在进行屏幕内容编码时,屏幕图像帧是按照预设的周期截取,即每间隔固定时长截取一个屏幕图像帧,例如5ms截取一个屏幕图像帧进行编码,而历史屏幕图像帧的媒体类型以预设频率获取并更新存储时,预设频率例如为500ms一次,在确定共享屏幕开始时,从原始屏幕获取第一个屏幕图像帧,根据第一个屏幕图像帧中显示的内容获取第一个屏幕图像帧的媒体类型,将第一个屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型。此时,从0-500ms内截取的屏幕图像帧的媒体类型的确定都可以参照第一个屏幕图像帧的媒体类型。在截取第二个屏幕图像帧进行编码时(即当前屏幕图像帧为第二个屏幕图像帧时),可以根据已存储历史屏幕图像帧的媒体类型,将已存储的历史屏幕图像帧的媒体类型确定为当前屏幕图像帧的媒体类型。
本实施例中,若连续预设次数获取的屏幕图像帧的媒体类型相同,且连续预设次数获取的屏幕图像帧的媒体类型与历史屏幕图像帧的媒体类型不同,则将连续预设次数获取的屏幕图像帧的媒体类型更新为历史屏幕图像帧的媒体类型。
本实施例中,当前屏幕图像帧的媒体类型可以包括五大类,分别是第一文字类型、第一视频类型、第二文字类型、第二视频类型和混合类型。
S403、客户端将当前屏幕图像帧的媒体类型发送至流控服务器。
S404、流控服务器根据预存的第三对应关系和当前屏幕图像帧的媒体类型确定当前屏幕图像帧的编码参数,第三对应关系包括屏幕图像帧的媒体类型和编码参数的对应关系。
详细的过程描述可参见图2所示实施例中的描述,此处不再赘述。
S405、流控服务器将当前屏幕图像帧的编码参数发送至客户端。
S406、客户端根据当前屏幕图像帧的编码参数对当前屏幕图像帧进行编码。
作为一种可实施的方式,S406可以为:
若当前屏幕图像帧的媒体类型为第一文字类型或第二文字类型,使用软件编码器进行编码的优先级大于使用硬件编码器进行编码的优先级;若当前屏幕图像帧的媒体类型为第一视频类型或第二视频类型,使用硬件编码器进行编码的优先级大于使用软件编码器进行编码的优先级。
本实施例提供的方法,可针对不同媒体类型的屏幕图像帧采用对应的编码参数进行屏幕内容编码,本实施例中当前屏幕图像帧中显示的窗口对应的显示的内容对应的媒体类型可以是第一文字类型、第一视频类型、第二文字类型、第二视频类型或混合类型,因此,可提高文字类型的应用在屏幕共享时的清晰度以及视频类型的应用在屏幕分享时的流畅度,满足对不同类型的应用进行屏幕共享时的需求,提高屏幕共享的效果。
图7为本申请实施例提供的一种屏幕内容编码方法的交互流程图,如图7所示,本实施例的方法可以包括:
S501、客户端接收到共享屏幕指令后,从原始屏幕获取当前屏幕图像帧。
S502、客户端在确定未存储历史屏幕图像帧的媒体类型的情况下,根据当前屏幕图像帧中显示的内容获取当前屏幕图像帧的媒体类型,并将当前屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型,历史屏幕图像帧的媒体类型以预设频率获取并更新存储。
本实施例中,根据当前屏幕图像帧中显示的内容获取当前屏幕图像帧的媒体类型的具体方式可参见S402中具体描述,此处不再赘述。
S503、客户端确定已存储历史屏幕图像帧的媒体类型,且已存储的历史屏幕图像帧的媒体类型为预设媒体类型,获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q。
其中,Q为预设正整数,或者,Q个屏幕图像帧为预设时间内的多个屏幕图像帧。
其中,S503中获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q的具体过程可参见S201-S205的描述,此处不再赘述。
S504、根据q和与预设媒体类型对应的预设阈值确定当前屏幕图像帧的媒体类型,并将当前屏幕图像帧的媒体类型更新存储为历史屏幕图像帧的媒体类型。
具体地,S504中根据q和与预设媒体类型对应的预设阈值确定当前屏幕图像帧的媒体类型,具体可以参见图2所示实施例中方式二中的三种可实施的方式的描述,此处不再赘述。
S505、客户端将当前屏幕图像帧的媒体类型发送至流控服务器。
S506、流控服务器根据预存的第三对应关系和当前屏幕图像帧的媒体类型确定当前屏幕图像帧的编码参数,第三对应关系包括屏幕图像帧的媒体类型和编码参数的对应关系。
详细的过程描述可参见图2所示实施例中的描述,此处不再赘述。
S507、流控服务器将当前屏幕图像帧的编码参数发送至客户端。
S508、客户端根据当前屏幕图像帧的编码参数对当前屏幕图像帧进行编码。
作为一种可实施的方式,S508可以为:
若当前屏幕图像帧的媒体类型为第一文字类型或第二文字类型,使用软件编码器进行编码的优先级大于使用硬件编码器进行编码的优先级;若当前屏幕图像帧的媒体类型为第一视频类型或第二视频类型,使用硬件编码器进行编码的优先级大于使用软件编码器进行编码的优先级。
本实施例提供的方法,可针对不同媒体类型的屏幕图像帧采用对应的编码参数进行屏幕内容编码,本实施例中当前屏幕图像帧中显示的窗口对应的显示的内容对应的媒体类型可以是第一文字类型、第一视频类型、第二文字类型、第二视频类型或混合类型,因此,可提高文字类型的应用在屏幕共享时的清晰度以及视频类型的应用在屏幕分享时的流畅度,满足对不同类型的应用进行屏幕共享时的需求,提高屏幕共享的效果。而且,通过统计连续复杂帧的数量是否大于预设数量,来确定当前屏幕图像帧的媒体类型是否为第一视频类型,可以降低将文字类型误判为视频类型的概率。
图8为本申请实施例提供的一种屏幕内容编码方法的交互流程图,如图8所示,本实施例的方法可以包括:
S601、客户端接收到共享屏幕指令后,从原始屏幕获取当前屏幕图像帧。
S602、客户端获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q,根据q、第一预设阈值P7和第二预设阈值P8确定当前屏幕图像帧的媒体类型。
其中,Q为预设正整数,或者,Q个屏幕图像帧为预设时间内的多个屏幕图像帧,P7小于P8。
具体来说,本实施例中,例如Q为5个,从客户端接收到共享屏幕指令后开始,可以使用现有的使用固定编码参数的方式对前5个屏幕图像帧编码,还可以使用其他编码方式对前5个屏幕图像帧编码,本实施例对此不作限制,从第6个屏幕图像帧开始,使用S602中的获取第6个屏幕图像帧之前的5个屏幕图像帧的平均帧复杂度比率q,根据q、第一预设阈值P7和第二预设阈值P8确定第6个屏幕图像帧的媒体类型。
具体地,在一种可实施的方式中,根据q、第一预设阈值P7和第二预设阈值P8确定当前屏幕图像帧的媒体类型,具体可以为:
若q小于或等于P7,确定当前屏幕图像帧的媒体类型为第二文字类型;若q大于或等于P8,确定当前屏幕图像帧的媒体类型为第二视频类型。
在另一种可实施的方式中,根据q、第一预设阈值P7和第二预设阈值P8确定当前屏幕图像帧的媒体类型,具体可以为:
若q小于或等于P7,且Q个屏幕图像帧中的连续复杂帧的数量K小于或等于连续复杂帧的数量阈值n7,确定当前屏幕图像帧的媒体类型为第二文字类型;
若q大于或等于P8,且K大于或等于连续复杂帧的数量阈值n8,确定当前屏幕图像帧的媒体类型为第二视频类型。
其中,S502中获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q的具体过程可参见S201-S205的描述,此处不再赘述。
S603-S606的过程与上述实施例中S505-S508的过程相同,此处不再赘述。
本实施例提供的方法,可针对不同媒体类型的屏幕图像帧采用对应的编码参数进行屏幕内容编码,本实施例中当前屏幕图像帧中显示的窗口对应的显示的内容对应的媒体类型可以是第二文字类型或第二视频类型,因此,可提高文字类型的应用在屏幕共享时的清晰度以及视频类型的应用在屏幕分享时的流畅度,满足对不同类型的应用进行屏幕共享时的需求,提高屏幕共享的效果。而且,通过统计连续复杂帧的数量是否大于预设数量,来确定当前屏幕图像帧的媒体类型,可以降低将文字类型误判为视频类型的概率。
在一种可实施的方式中,本申请实施例提供的屏幕内容编码方法,可以有效地提高共享屏幕时的用户体验,相比现有技术的方法,可以准确地区分屏幕图像帧的媒体类型是文字类型还是视频类型,或者是混合类型,从而实现提高文字类型的应用在屏幕共享时的清晰度以及视频类型的应用在屏幕分享时的流畅度,例如可以支持文字类型的应用在屏幕共享时2K的分辨率。
以第一文字类型、相似度为80%的文字类型、相似度为50%的混合类型、相似度为80%的视频类型和第一视频类型这五种媒体类型为例,示例性的,选取部分共享屏幕实验数据,在本实施例中,第一文字类型占总实验数据的44%,相似度为80%的文字类型占总实验数据的22%,相似度为50%的混合类型占总实验数据的28%,相似度为80%的视频类型和第一视频类型分别占总实验数据的5%和1%,通过对总实验数据在共享屏幕时使用本申请实施例提供的方法进行编码,得到五种类型的平均码率和平均帧率,如下表四所示:
表四
屏幕图像帧的媒体类型 | 平均码率 | 平均帧率 |
第一文字类型 | 298kpbs | 2.4fps |
相似度为80%的文字类型 | 327kpbs | 4.3fps |
相似度为50%的混合类型 | 531kpbs | 4.9fps |
相似度为80%的视频类型 | 1815kpbs | 22.8fps |
第一视频类型 | 2106kpbs | 23.6fps |
第一文字类型由于运动较少,平均码率仅298kbps,平均帧率2.4fps;8相似度为80%的文字类型的运动比第一文字类型文字稍多,平均码率增大5%左右,为327kbps,平均帧率也从2.4fps增加到4.3fps;相似度为50%的混合类型的运动比相似度为80%的文字类型又多了一些,平均码率相对相似度为80%的文字类型增加到531kbps,平均帧率也从4.3fps增加到4.9fps。相似度为80%的视频类型与前面三种媒体类型明显不同,可以看见平均码率已经达到1815kbps,平均帧率已达到22.8fps;第一视频类型与第一视频类型类似,平均码率会达到2106kbps。以上数据符合设计预期,到达不同媒体类型实现不同的编码参数的效果,同时没有对现有产品带来不利影响。
本申请实施例中主要是针对引擎层对编码参数进行调整,可选的也可以是将本申请实施例中的屏幕图像帧的媒体类型获取的方法应用到编码器内核里面,实现不同媒体类型下的编码参数调节机制。
以下为本申请装置实施例,可以用于执行本申请上述方法实施例。对于本申请装置实施例中未披露的细节,可参考本申请上述方法实施例。
图9为本申请实施例提供的一种屏幕内容编码装置的结构示意图,如图9所示,本实施例的装置可以包括:第一获取模块11、确定模块12、第二获取模块和融合模块13,其中,
第一获取模块11用于从原始屏幕获取当前屏幕图像帧;
确定模块12用于确定当前屏幕图像帧的媒体类型,当前屏幕图像帧的媒体类型为当前屏幕图像帧中显示的内容对应的媒体类型;
第二获取模块13用于根据当前屏幕图像帧的媒体类型获取当前屏幕图像帧的编码参数;
编码模块14用于根据编码参数对当前屏幕图像帧进行编码。
可选的,媒体类型包括第一文字类型、第一视频类型、第二文字类型、第二视频类型和混合类型,第一文字类型与文字类型应用的相似度为100%,第一视频类型与视频类型应用的相似度为100%,第二文字类型与文字类型应用的相似度为M%,第二视频类型与视频类型应用的相似度为N%,混合类型与文字类型应用或视频类型应用的相似度为50%,M和N均大于50且小于100。。
可选的,确定模块12用于:
在确定未存储历史屏幕图像帧的媒体类型的情况下,根据当前屏幕图像帧中显示的内容获取当前屏幕图像帧的媒体类型,并将当前屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型,历史屏幕图像帧的媒体类型以预设频率获取并更新存储;
若确定已存储历史屏幕图像帧的媒体类型,将已存储的历史屏幕图像帧的媒体类型确定为当前屏幕图像帧的媒体类型;或者,
若确定已存储历史屏幕图像帧的媒体类型,且已存储的历史屏幕图像帧的媒体类型为预设媒体类型,获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q,Q为预设正整数,或者,Q个屏幕图像帧为预设时间内的多个屏幕图像帧;
根据q和与预设媒体类型对应的预设阈值确定当前屏幕图像帧的媒体类型,并将当前屏幕图像帧的媒体类型更新存储为历史屏幕图像帧的媒体类型。
可选的,与第一视频类型对应的预设阈值包括平均帧复杂度比率阈值P2,与第二视频类型对应的预设阈值包括平均帧复杂度比率阈值P1,P1大于P2,与第一文字类型对应的预设阈值包括平均帧复杂度比率阈值P4,与第二文字类型对应的预设阈值包括平均帧复杂度比率阈值P3,P3小于P4。
确定模块12用于:预设媒体类型为第二视频类型时,若q大于或等于P1,确定当前屏幕图像帧的媒体类型为第一视频类型;若q小于P1,确定当前屏幕图像帧的媒体类型为第二视频类型;
预设媒体类型为第一视频类型时,若q小于或等于P2,确定当前屏幕图像帧的媒体类型为第二视频类型;若q大于P2,确定当前屏幕图像帧的媒体类型为第一视频类型;
预设媒体类型为第二文字类型时,若q小于或等于P3,确定当前屏幕图像帧的媒体类型为第一文字类型;若q大于P3,确定当前屏幕图像帧的媒体类型为第二文字类型;
预设媒体类型为第一文字类型时,若q大于或等于P4,确定当前屏幕图像帧的媒体类型为第二文字类型;若q小于P4时,确定当前屏幕图像帧的媒体类型为第一文字类型。
可选的,与第二视频类型对应的预设阈值还包括连续复杂帧的数量阈值n1,确定模块12还用于:
确定当前屏幕图像帧的媒体类型为第一文字类型之前,确定Q个屏幕图像帧中的连续复杂帧的数量K大于或等于n1,复杂帧为帧复杂度比率大于预设帧复杂度比率阈值T1的屏幕图像帧,T1小于或等于P1;
与第一视频类型对应的预设阈值还包括连续复杂帧的数量阈值n2,n1大于n2,确定模块12还用于:
确定当前屏幕图像帧的媒体类型为第二视频类型之前,确定K小于或等于n2。
可选的,与第二文字类型对应的预设阈值还包括连续复杂帧的数量阈值n3,确定模块12还用于:
确定当前屏幕图像帧的媒体类型为第一文字类型之前,确定Q个屏幕图像帧中的连续复杂帧的数量K小于或等于n3,复杂帧为帧复杂度比率大于预设帧复杂度比率阈值T2的屏幕图像帧,T2小于或等于P3;
与第一文字类型对应的预设阈值还包括连续复杂帧的数量阈值n4,n3小于n4,确定模块12还用于:
确定当前屏幕图像帧的媒体类型为第二文字类型之前,确定K大于或等于n4。
可选的,确定模块12还用于:
在获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q之前,确定当前屏幕图像帧显示的是一个窗口,且一个窗口的应用是预设应用;
与第二文字类型对应的预设阈值包括平均帧复杂度比率阈值P5和连续复杂帧的数量阈值n5,与第二视频类型对应的预设阈值包括平均帧复杂度比率阈值P6和连续复杂帧的数量阈值n6,P5大于P6,n5大于n6,确定模块12用于:
预设媒体类型为第二文字类型时,若q大于或等于P5,且Q个屏幕图像帧中的连续复杂帧的数量K大于或等于n5,确定当前屏幕图像帧的媒体类型为第二视频类型;
预设媒体类型为第二视频类型时,若q小于或等于P6,且K小于或等于n6,确定当前屏幕图像帧的媒体类型为第二文字类型。
可选的,媒体类型包括第二文字类型和第二视频类型,第二文字类型与文字类型应用的相似度为M%,第二视频类型与视频类型应用的相似度为N%,M和N均大于50且小于100。
可选的,确定模块12用于:
获取当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q;
根据q、第一预设阈值P7和第二预设阈值P8确定当前屏幕图像帧的媒体类型,Q为预设正整数,或者,Q个屏幕图像帧为预设时间内的多个屏幕图像帧,P7小于P8。
可选的,确定模块12具体用于:
若q小于或等于P7,确定当前屏幕图像帧的媒体类型为第二文字类型;
若q大于或等于P8,确定当前屏幕图像帧的媒体类型为第二视频类型;
或者,
若q小于或等于P7,且Q个屏幕图像帧中的连续复杂帧的数量K小于或等于连续复杂帧的数量阈值n7,确定当前屏幕图像帧的媒体类型为第二文字类型;
若q大于或等于P8,且K大于或等于连续复杂帧的数量阈值n8,确定当前屏幕图像帧的媒体类型为第二视频类型。
可选的,确定模块12具体用于:
针对Q个屏幕图像帧中的每个屏幕图像帧,对每个屏幕图像帧进行下采样处理;
将下采样处理后的每个屏幕图像帧分为多个宏块,对多个宏块中的每个宏块进行帧间运动估计和帧内哈达玛变换绝对值求和SATD计算,得到每个宏块的最小预测代价值;
将多个宏块的最小预测代价值累加,得到每个屏幕图像帧的帧复杂度;
根据每个屏幕图像帧的帧复杂度和预设的帧复杂度阈值的比值,得到每个屏幕图像帧的帧复杂度比率;
根据Q个屏幕图像帧中的每个屏幕图像帧的帧复杂度比率得到q。
可选的,确定模块12具体用于:
获取当前屏幕图像帧中显示的窗口的数量P和P个窗口的应用标识;
若P为1,根据预存的第一对应关系和1个窗口的应用标识确定1个窗口显示的内容对应的媒体类型,将1个窗口显示的内容对应的媒体类型确定为当前屏幕图像帧的媒体类型,第一对应关系包括应用标识与显示的内容对应的媒体类型和窗口属性值的对应关系;
若P大于1,根据P个窗口的窗口属性值和P个窗口所占屏幕百分比确定当前屏幕图像帧的媒体类型预测值,P个窗口的窗口属性值根据第一对应关系和P个窗口的应用标识确定;
根据当前屏幕图像帧的媒体类型预测值和预存的第二对应关系确定当前屏幕图像帧的媒体类型,第二对应关系包括媒体类型预测值的范围和媒体类型的对应关系。
可选的,确定模块12具体用于:
根据P个窗口的窗口属性值和P个窗口所占屏幕百分比,通过如下公式计算得到当前屏幕图像帧的媒体类型预测值Pn:
Pn=t1*s1+t2*s2+…+tp*sp;
其中,t1、t2、…、tp分别为P个窗口的窗口属性值,s1、s2、…、sp分别为P个窗口所占屏幕百分比。
可选的,确定模块12具体用于:
通过调用系统应用程序接口API获取当前屏幕图像帧中显示的位于屏幕顶层的P个应用的标识,将P个应用的标识确定为P个窗口的应用标识。
可选的,历史屏幕图像帧的媒体类型以预设频率获取并更新存储的过程包括:
以预设频率,从原始屏幕获取屏幕图像帧;
根据屏幕图像帧中显示的内容获取屏幕图像帧的媒体类型,将屏幕图像帧的媒体类型存储为历史屏幕图像帧的媒体类型;
若连续预设次数获取的屏幕图像帧的媒体类型相同,且连续预设次数获取的屏幕图像帧的媒体类型与历史屏幕图像帧的媒体类型不同,则将连续预设次数获取的屏幕图像帧的媒体类型更新为历史屏幕图像帧的媒体类型。
可选的,第二获取模块13用于:
根据预存的第三对应关系和当前屏幕图像帧的媒体类型确定当前屏幕图像帧的编码参数,第三对应关系包括屏幕图像帧的媒体类型和编码参数的对应关系;或者,
将当前屏幕图像帧的媒体类型发送至服务器,用于服务器根据预存的第三对应关系和当前屏幕图像帧的媒体类型确定当前屏幕图像帧的编码参数,第三对应关系包括屏幕图像帧的媒体类型和编码参数的对应关系;
接收服务器发送的屏幕图像帧的编码参数。
可选的,第二获取模块13还用于:
将客户端所运行的终端设备的中央处理器CPU的性能参数评分发送至服务器,用于服务器在根据CPU的性能参数评分确定满足预设阈值时,根据第三对应关系和当前屏幕图像帧的媒体类型确定当前屏幕图像帧的编码参数。
可选的,编码参数包括分辨率、帧率和码率中的至少一项;
第三对应关系中,第一文字类型的分辨率大于第一视频类型的分辨率,第二文字类型的分辨率大于第二视频类型的分辨率,第一文字类型的帧率小于第一视频类型的帧率,第二文字类型的帧率小于第二视频类型的帧率;其中,第一文字类型与文字类型应用的相似度为100%,第一视频类型与视频类型应用的相似度为100%,第二文字类型与文字类型应用的相似度为M%,第二视频类型与视频类型应用的相似度为N%,M和N均大于50且小于100。
可选的,编码模块14用于:
若当前屏幕图像帧的媒体类型为第一文字类型或第二文字类型,使用软件编码器进行编码的优先级大于使用硬件编码器进行编码的优先级;
若当前屏幕图像帧的媒体类型为第一视频类型或第二视频类型,使用硬件编码器进行编码的优先级大于使用软件编码器进行编码的优先级。
本申请实施例提供的装置,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
图10为本申请实施例提供的一种终端设备的结构示意图,如图10所示,本实施例的终端设备可以包括处理器21和存储器22,
其中,存储器22用于存储处理器21的可执行指令。
处理器21配置为经由执行可执行指令来执行上述方法实施例中的水印嵌入方法。
可选地,存储器22既可以是独立的,也可以跟处理器21集成在一起。
当存储器22是独立于处理器21之外的器件时,本实施例的终端设备还可以包括:
总线23,用于连接存储器22和处理器21。
可选地,本实施例的终端设备还可以包括:通信接口24,该通信接口24可以通过总线23与处理器21连接。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当其在计算机上运行时,使得计算机执行如上述实施例的水印嵌入方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上实施例中的水印嵌入方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (20)
1.一种屏幕内容编码方法,其特征在于,包括:
从原始屏幕获取当前屏幕图像帧,所述当前屏幕图像帧为一帧屏幕图像;
确定所述当前屏幕图像帧的媒体类型,所述当前屏幕图像帧的媒体类型为所述当前屏幕图像帧中显示的内容对应的媒体类型,所述当前屏幕图像帧的媒体类型根据所述当前屏幕图像帧中显示的应用程序窗口的个数、每个应用程序窗口显示的内容对应的媒体类型和每个应用程序窗口占屏幕的百分比确定,所述媒体类型包括文字类型、视频类型和文字与视频混合的混合类型;
根据所述当前屏幕图像帧的媒体类型获取所述当前屏幕图像帧的编码参数,所述编码参数包括分辨率、帧率和码率中的至少一项;
根据所述编码参数对所述当前屏幕图像帧进行编码。
2.根据权利要求1所述的方法,其特征在于,
所述媒体类型包括第一文字类型、第一视频类型、第二文字类型、第二视频类型和混合类型,所述第一文字类型与文字类型应用的相似度为100%,所述第一视频类型与视频类型应用的相似度为100%,所述第二文字类型与文字类型应用的相似度为M%,所述第二视频类型与视频类型应用的相似度为N%,所述混合类型与文字类型应用或视频类型应用的相似度为50%,所述M和所述N均大于50且小于100。
3.根据权利要求2所述的方法,其特征在于,所述确定所述当前屏幕图像帧的媒体类型,包括:
在确定未存储历史屏幕图像帧的媒体类型的情况下,根据所述当前屏幕图像帧中显示的内容获取所述当前屏幕图像帧的媒体类型,并将所述当前屏幕图像帧的媒体类型存储为所述历史屏幕图像帧的媒体类型,所述历史屏幕图像帧的媒体类型以预设频率获取并更新存储;
若确定已存储历史屏幕图像帧的媒体类型,将已存储的历史屏幕图像帧的媒体类型确定为所述当前屏幕图像帧的媒体类型;或者,
若确定已存储历史屏幕图像帧的媒体类型,且已存储的历史屏幕图像帧的媒体类型为预设媒体类型,获取所述当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q,所述Q为预设正整数,或者,所述Q个屏幕图像帧为预设时间内的多个屏幕图像帧;
根据所述平均帧复杂度比率q和与所述预设媒体类型对应的预设阈值确定所述当前屏幕图像帧的媒体类型,并将所述当前屏幕图像帧的媒体类型更新存储为所述历史屏幕图像帧的媒体类型。
4.根据权利要求3所述的方法,其特征在于,与所述第一视频类型对应的预设阈值包括平均帧复杂度比率阈值P2,与所述第二视频类型对应的预设阈值包括平均帧复杂度比率阈值P1,所述P1大于所述P2,与所述第一文字类型对应的预设阈值包括平均帧复杂度比率阈值P4,与所述第二文字类型对应的预设阈值包括平均帧复杂度比率阈值P3,所述P3小于所述P4;
所述根据所述平均帧复杂度比率q和与所述预设媒体类型对应的预设阈值确定所述当前屏幕图像帧的媒体类型,包括:
所述预设媒体类型为所述第二视频类型时,若q大于或等于所述P1,确定所述当前屏幕图像帧的媒体类型为所述第一视频类型;若q小于所述P1,确定所述当前屏幕图像帧的媒体类型为所述第二视频类型;
所述预设媒体类型为所述第一视频类型时,若所述q小于或等于所述P2,确定所述当前屏幕图像帧的媒体类型为第二视频类型;若所述q大于所述P2,确定所述当前屏幕图像帧的媒体类型为所述第一视频类型;
所述预设媒体类型为所述第二文字类型时,若所述q小于或等于所述P3,确定所述当前屏幕图像帧的媒体类型为所述第一文字类型;若所述q大于所述P3,确定所述当前屏幕图像帧的媒体类型为所述第二文字类型;
所述预设媒体类型为所述第一文字类型时,若所述q大于或等于所述P4,确定所述当前屏幕图像帧的媒体类型为所述第二文字类型;若所述q小于所述P4时,确定所述当前屏幕图像帧的媒体类型为所述第一文字类型。
5.根据权利要求4所述的方法,其特征在于,与所述第二视频类型对应的预设阈值还包括连续复杂帧的数量阈值n1,所述确定当前屏幕图像帧的媒体类型为所述第一视频类型之前,还包括:
确定所述Q个屏幕图像帧中的连续复杂帧的数量K大于或等于所述n1,所述复杂帧为帧复杂度比率大于预设帧复杂度比率阈值T1的屏幕图像帧,所述T1小于或等于所述P1;
与所述第一视频类型对应的预设阈值还包括连续复杂帧的数量阈值n2,所述n1大于所述n2,所述确定所述当前屏幕图像帧的媒体类型为所述第二视频类型之前,还包括:
确定所述K小于或等于所述n2;
与所述第二文字类型对应的预设阈值还包括连续复杂帧的数量阈值n3,所述确定所述当前屏幕图像帧的媒体类型为所述第一文字类型之前,还包括:
确定所述Q个屏幕图像帧中的连续复杂帧的数量K小于或等于所述n3,所述复杂帧为帧复杂度比率大于预设帧复杂度比率阈值T2的屏幕图像帧,所述T2小于或等于所述P3;
与所述第一文字类型对应的预设阈值还包括连续复杂帧的数量阈值n4,所述n3小于所述n4,所述确定所述当前屏幕图像帧的媒体类型为所述第二文字类型之前,还包括:
确定所述K大于或等于所述n4。
6.根据权利要求3所述的方法,其特征在于,所述获取所述当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q之前,所述方法还包括:
确定所述当前屏幕图像帧显示的是一个窗口,且所述一个窗口的应用是预设应用;
与所述第二文字类型对应的预设阈值包括平均帧复杂度比率阈值P5和连续复杂帧的数量阈值n5,与所述第二视频类型对应的预设阈值包括平均帧复杂度比率阈值P6和连续复杂帧的数量阈值n6,所述P5大于所述P6,所述n5大于所述n6,所述根据所述q和与所述预设媒体类型对应的预设阈值确定所述当前屏幕图像帧的媒体类型,包括:
所述预设媒体类型为所述第二文字类型时,若所述q大于或等于所述P5,且所述Q个屏幕图像帧中的连续复杂帧的数量K大于或等于所述n5,确定所述当前屏幕图像帧的媒体类型为所述第二视频类型;
所述预设媒体类型为所述第二视频类型时,若所述q小于或等于所述P6,且所述K小于或等于所述n6,确定所述当前屏幕图像帧的媒体类型为所述第二文字类型。
7.根据权利要求1所述的方法,其特征在于,所述媒体类型包括第二文字类型和第二视频类型,所述第二文字类型与文字类型应用的相似度为M%,所述第二视频类型与视频类型应用的相似度为N%,所述M和所述N均大于50且小于100。
8.根据权利要求7所述的方法,其特征在于,所述确定所述当前屏幕图像帧的媒体类型,包括:
获取所述当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q;
根据所述q、第一预设阈值P7和第二预设阈值P8确定所述当前屏幕图像帧的媒体类型,所述Q为预设正整数,或者,所述Q个屏幕图像帧为预设时间内的多个屏幕图像帧,所述P7小于所述P8。
9.根据权利要求8所述的方法,其特征在于,所述根据所述q、第一预设阈值P7和第二预设阈值P8确定所述当前屏幕图像帧的媒体类型,包括:
若所述q小于或等于所述P7,确定所述当前屏幕图像帧的媒体类型为所述第二文字类型;
若所述q大于或等于所述P8,确定所述当前屏幕图像帧的媒体类型为所述第二视频类型;
或者,
若所述q小于或等于所述P7,且所述Q个屏幕图像帧中的连续复杂帧的数量K小于或等于连续复杂帧的数量阈值n7,确定所述当前屏幕图像帧的媒体类型为所述第二文字类型;
若所述q大于或等于所述P8,且所述K大于或等于连续复杂帧的数量阈值n8,确定所述当前屏幕图像帧的媒体类型为所述第二视频类型。
10.根据权利要求3或8所述的方法,其特征在于,所述获取所述当前屏幕图像帧之前的Q个屏幕图像帧的平均帧复杂度比率q,包括:
针对所述Q个屏幕图像帧中的每个屏幕图像帧,对所述每个屏幕图像帧进行下采样处理;
将下采样处理后的每个屏幕图像帧分为多个宏块,对所述多个宏块中的每个宏块进行帧间运动估计和帧内哈达玛变换绝对值求和SATD计算,得到所述每个宏块的最小预测代价值;
将所述多个宏块的最小预测代价值累加,得到所述每个屏幕图像帧的帧复杂度;
根据所述每个屏幕图像帧的帧复杂度和预设的帧复杂度阈值的比值,得到所述每个屏幕图像帧的帧复杂度比率;
根据所述Q个屏幕图像帧中的所述每个屏幕图像帧的帧复杂度比率得到所述q。
11.根据权利要求3所述的方法,其特征在于,所述根据所述当前屏幕图像帧中显示的内容获取所述当前屏幕图像帧的媒体类型,包括:
获取所述当前屏幕图像帧中显示的窗口的数量P和所述P个窗口的应用标识;
若所述P为1,根据预存的第一对应关系和1个窗口的应用标识确定所述1个窗口显示的内容对应的媒体类型,将所述1个窗口显示的内容对应的媒体类型确定为所述当前屏幕图像帧的媒体类型,所述第一对应关系包括应用标识与显示的内容对应的媒体类型和窗口属性值的对应关系;
若所述P大于1,根据所述P个窗口的窗口属性值和所述P个窗口所占屏幕百分比确定所述当前屏幕图像帧的媒体类型预测值,所述P个窗口的窗口属性值根据所述第一对应关系和所述P个窗口的应用标识确定;
根据所述当前屏幕图像帧的媒体类型预测值和预存的第二对应关系确定所述当前屏幕图像帧的媒体类型,所述第二对应关系包括媒体类型预测值的范围和媒体类型的对应关系。
12.根据权利要求11所述的方法,其特征在于,所述根据所述P个窗口的窗口属性值和所述P个窗口所占屏幕百分比确定所述当前屏幕图像帧的媒体类型预测值,包括:
根据所述P个窗口的窗口属性值和所述P个窗口所占屏幕百分比,通过如下公式计算得到所述当前屏幕图像帧的媒体类型预测值Pn:
Pn=t1*s1+t2*s2+…+tp*sp;
其中,t1、t2、…、tp分别为所述P个窗口的窗口属性值,s1、s2、…、sp分别为所述P个窗口所占屏幕百分比。
13.根据权利要求11所述的方法,其特征在于,所述获取所述P个窗口的应用标识,包括:
通过调用系统应用程序接口API获取所述当前屏幕图像帧中显示的位于屏幕顶层的所述P个应用的标识,将所述P个应用的标识确定为所述P个窗口的应用标识。
14.根据权利要求3所述的方法,其特征在于,所述历史屏幕图像帧的媒体类型以预设频率获取并更新存储的过程包括:
以预设频率,从所述原始屏幕获取屏幕图像帧;
根据所述屏幕图像帧中显示的内容获取所述屏幕图像帧的媒体类型,将所述屏幕图像帧的媒体类型存储为所述历史屏幕图像帧的媒体类型;
若连续预设次数获取的屏幕图像帧的媒体类型相同,且所述连续预设次数获取的屏幕图像帧的媒体类型与所述历史屏幕图像帧的媒体类型不同,则将所述连续预设次数获取的屏幕图像帧的媒体类型更新为所述历史屏幕图像帧的媒体类型。
15.根据权利要求1所述的方法,其特征在于,所述根据所述当前屏幕图像帧的媒体类型获取所述当前屏幕图像帧的编码参数,包括:
根据预存的第三对应关系和所述当前屏幕图像帧的媒体类型确定所述当前屏幕图像帧的编码参数,所述第三对应关系包括屏幕图像帧的媒体类型和编码参数的对应关系;
或者,
将所述当前屏幕图像帧的媒体类型发送至服务器,用于所述服务器根据预存的第三对应关系和所述当前屏幕图像帧的媒体类型确定所述当前屏幕图像帧的编码参数,所述第三对应关系包括屏幕图像帧的媒体类型和编码参数的对应关系;
接收所述服务器发送的所述屏幕图像帧的编码参数。
16.根据权利要求15所述的方法,其特征在于,所述编码参数包括分辨率、帧率和码率中的至少一项;
所述第三对应关系中,第一文字类型的分辨率大于第一视频类型的分辨率,第二文字类型的分辨率大于第二视频类型的分辨率,第一文字类型的帧率小于第一视频类型的帧率,第二文字类型的帧率小于第二视频类型的帧率;
其中,所述第一文字类型与文字类型应用的相似度为100%,所述第一视频类型与视频类型应用的相似度为100%,所述第二文字类型与文字类型应用的相似度为M%,所述第二视频类型与视频类型应用的相似度为N%,所述M和所述N均大于50且小于100。
17.根据权利要求2所述的方法,其特征在于,所述根据所述编码参数对所述当前屏幕图像帧进行编码,包括:
若所述当前屏幕图像帧的媒体类型为所述第一文字类型或所述第二文字类型,使用软件编码器进行编码的优先级大于使用硬件编码器进行编码的优先级;
若所述当前屏幕图像帧的媒体类型为所述第一视频类型或所述第二视频类型,使用硬件编码器进行编码的优先级大于使用软件编码器进行编码的优先级。
18.一种屏幕内容编码装置,其特征在于,包括:
第一获取模块,用于从原始屏幕获取当前屏幕图像帧,所述当前屏幕图像帧为一帧屏幕图像;
确定模块,用于确定所述当前屏幕图像帧的媒体类型,所述当前屏幕图像帧的媒体类型为所述当前屏幕图像帧中显示的内容对应的媒体类型,所述当前屏幕图像帧的媒体类型根据所述当前屏幕图像帧中显示的应用程序窗口的个数、每个应用程序窗口显示的内容对应的媒体类型和每个应用程序窗口占屏幕的百分比确定,所述媒体类型包括文字类型、视频类型和文字与视频混合的混合类型;
第二获取模块,用于根据所述当前屏幕图像帧的媒体类型获取所述当前屏幕图像帧的编码参数,所述编码参数包括分辨率、帧率和码率中的至少一项;
编码模块,用于根据所述编码参数对所述当前屏幕图像帧进行编码。
19.一种终端设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至17中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111176068.1A CN113965751B (zh) | 2021-10-09 | 2021-10-09 | 屏幕内容编码方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111176068.1A CN113965751B (zh) | 2021-10-09 | 2021-10-09 | 屏幕内容编码方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113965751A CN113965751A (zh) | 2022-01-21 |
CN113965751B true CN113965751B (zh) | 2023-03-24 |
Family
ID=79463189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111176068.1A Active CN113965751B (zh) | 2021-10-09 | 2021-10-09 | 屏幕内容编码方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965751B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116962696A (zh) * | 2022-04-19 | 2023-10-27 | 华为技术有限公司 | 图像编码方法和装置 |
CN117294683A (zh) * | 2022-06-16 | 2023-12-26 | 中兴通讯股份有限公司 | 视频处理方法、发送端、接收端、存储介质和程序产品 |
WO2024059998A1 (en) * | 2022-09-20 | 2024-03-28 | Qualcomm Incorporated | Variable intra-frame (i-frame) time interval and group of picture (gop) length for video coding |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014157889A1 (en) * | 2013-03-25 | 2014-10-02 | Samsung Electronics Co., Ltd. | Method and apparatus for improving quality of experience in sharing screen among devices, and recording medium thereof |
US9210434B2 (en) * | 2013-06-12 | 2015-12-08 | Microsoft Technology Licensing, Llc | Screen map and standards-based progressive codec for screen content coding |
CN104506870B (zh) * | 2014-11-28 | 2018-02-09 | 北京奇艺世纪科技有限公司 | 一种适用于多码流的视频编码处理方法和装置 |
CN111787322B (zh) * | 2020-08-04 | 2022-05-13 | 北京百度网讯科技有限公司 | 视频编码的方法、装置、电子设备及计算机可读存储介质 |
-
2021
- 2021-10-09 CN CN202111176068.1A patent/CN113965751B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113965751A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113965751B (zh) | 屏幕内容编码方法、装置、设备及存储介质 | |
WO2020248909A1 (zh) | 视频解码方法、装置、计算机设备及存储介质 | |
CN110049336B (zh) | 视频编码方法和视频解码方法 | |
US9609338B2 (en) | Layered video encoding and decoding | |
US10674159B2 (en) | Effective intra encoding for screen data | |
US20200296470A1 (en) | Video playback method, terminal apparatus, and storage medium | |
US9179155B1 (en) | Skipped macroblock video encoding enhancements | |
WO2021057697A1 (zh) | 视频编解码方法和装置、存储介质及电子装置 | |
WO2023142716A1 (zh) | 编码方法、实时通信方法、装置、设备及存储介质 | |
CN111343503B (zh) | 视频的转码方法、装置、电子设备及存储介质 | |
CN111327921A (zh) | 视频数据处理方法及设备 | |
CN113906764A (zh) | 可中断视频转码 | |
CN110572672B (zh) | 视频编解码方法和装置、存储介质及电子装置 | |
EP3443745A1 (en) | Progressive updates with motion | |
US20170249120A1 (en) | Sharing of Multimedia Content | |
CN108989905B (zh) | 媒体流控制方法、装置、计算设备及存储介质 | |
US20220148133A1 (en) | Image display control device, transmitting device, image display control method, and program | |
EP3989566A1 (en) | Motion information list construction method in video encoding and decoding, device, and apparatus | |
WO2023142663A1 (zh) | 编码过程中的运动估计方法、装置、设备、存储介质及程序产品 | |
US20170188035A1 (en) | Transcoding method and electronic apparatus | |
CN116760986B (zh) | 候选运动矢量生成方法、装置、计算机设备和存储介质 | |
CN110572674B (zh) | 视频编解码方法和装置、存储介质及电子装置 | |
WO2023130893A1 (zh) | 流媒体传输方法、装置、电子设备及计算机可读存储介质 | |
CN116419032A (zh) | 一种视频播放方法、装置、设备和计算机可读存储介质 | |
CN116033148A (zh) | 一种视频编码方法、装置、计算机设备及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40065469 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |