掌桥专利:专业的专利平台
掌桥专利
首页

编解码方法、设备及系统

文献发布时间:2023-06-19 11:21:00


编解码方法、设备及系统

技术领域

本公开涉及图像技术领域,尤其涉及编解码方法、设备及系统。

背景技术

现有计算机画面的编解码原理是:每一帧都参考其前一帧或者前面最近的I帧(Iframe,又称为内部画面)进行编码。

相关技术中,当用户切换应用场景时,编码端设备会将当前帧视为场景切换,即上一帧或者I帧不能作为当前帧的参考帧,需要将当前帧作为新的I帧进行编码。

但在云办公场景下,桌面应用切换是经常能够遇到的,当用户不断切换回某一个应用程序时,编码端设备就会不断重新编码I帧,解码端设备也需要不断对I帧进行解码,从而增加了解码端设备的算力消耗,降低了解码端设备的解码效率。

发明内容

本公开实施例提供一种编解码方法、设备及系统,能够解决现有技术中增加了解码端设备的算力消耗,降低了解码端设备的解码效率的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种编解码方法,应用于解码端设备,所述方法包括:

获取当前最前端显示的目标应用程序;

在确定所述目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像;

根据所述非任务栏区域图像确定应用程序是否发生切换;

在确定应用程序发生切换时,确定当前是否为可简化编码场景;

在确定当前为所述可简化编码场景时,获取所述目标应用程序的目标编号,并对所述任务栏区域图像进行编码,得到第一编码数据;

向解码端设备发送当前码流数据;所述当前码流数据包括所述目标应用程序的目标编号和所述第一编码数据,使得所述解码端设备获取所述目标应用程序对应的目标帧图像,并将所述目标帧图像确定为非任务栏区域图像的解码图像。

本公开实施例提供一种编解码方法,编码端设备在确定目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像;在确定应用程序发生切换时,确定当前是否为可简化编码场景,在确定当前为可简化编码场景时,获取目标应用程序的目标编号,并对任务栏区域图像进行编码,得到第一编码数据,并将目标编号和第一编码数据添加至当前码流数据中发送给解码端设备,使得解码端设备在接收到编码端设备发送的当前码流数据时,确定当前码流数据是否只包含目标应用程序的目标编号和第一编码数据,在确定当前码流数据只包含目标应用程序的目标编号和第一编码数据时,获取目标应用程序的非任务栏区域的最新一帧图像,即获取目标帧图像,进而将目标帧图像确定为非任务栏区域的解码图像,并将目标帧图像与第一编码数据对应的解码数据合并后显示。可知,本公开解码端设备可以直接将之前存储的非任务栏区域的最新一帧图像确定为当前帧图像的非任务栏区域的解码图像进行显示,无需执行当前帧图像的非任务栏区域图像的解码操作,从而节省了解码端设备的算力消耗,提高了解码端设备的解码效率。

根据本公开实施例的第二方面,提供一种编解码方法,应用于编码端设备,所述方法包括:

接收编码端设备发送的当前码流数据;

确定所述当前码流数据是否只包含目标应用程序的目标编号和第一编码数据;所述第一编码数据为所述目标应用程序的当前帧图像的任务栏区域的编码数据;

在确定所述当前码流数据只包含所述目标编号和所述第一编码数据时,获取所述目标应用程序对应的目标帧图像;所述目标帧图像为之前存储的所述目标应用程序的非任务栏区域的最新一帧图像;

将所述第一编码数据对应的解码数据与所述目标帧图像合并后显示。

本公开实施例提供一种编解码方法,解码端设备在接收到编码端设备发送的当前码流数据时,确定当前码流数据是否只包含目标应用程序的目标编号和第一编码数据,在确定当前码流数据只包含目标应用程序的目标编号和第一编码数据时,获取目标应用程序的非任务栏区域的最新一帧图像,即获取目标帧图像,进而将目标帧图像确定为非任务栏区域的解码图像,并将目标帧图像与第一编码数据对应的解码数据合并后显示。可知,本公开解码端设备可以直接将之前存储的非任务栏区域的最新一帧图像确定为当前帧图像的非任务栏区域的解码图像进行显示,无需执行当前帧图像的非任务栏区域图像的解码操作,从而节省了解码端设备的算力消耗,提高了解码端设备的解码效率。

根据本公开实施例的第三方面,提供一种编码端设备,包括:

第一获取模块,用于获取当前最前端显示的目标应用程序;

划分模块,用于在确定所述目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像;

第一确定模块,用于根据所述非任务栏区域图像确定应用程序是否发生切换;

第二确定模块,用于在确定应用程序发生切换时,确定当前是否为可简化编码场景;

第一编码模块,用于在确定当前为所述可简化编码场景时,获取所述目标应用程序的目标编号,并对所述任务栏区域图像进行编码,得到第一编码数据;

第一发送模块,用于向解码端设备发送当前码流数据;所述当前码流数据包括所述目标应用程序的目标编号和所述第一编码数据,使得所述解码端设备获取所述目标应用程序对应的目标帧图像,并将所述目标帧图像确定为非任务栏区域图像的解码图像。

根据本公开实施例的第四方面,提供一种解码端设备,包括:

接收模块,用于接收编码端设备发送的当前码流数据;

第三确定模块,用于确定所述当前码流数据是否只包含目标应用程序的目标编号和第一编码数据;所述第一编码数据为所述目标应用程序的当前帧图像的任务栏区域的编码数据;

第二获取模块,用于在确定所述当前码流数据只包含所述目标编号和所述第一编码数据时,获取所述目标应用程序对应的目标帧图像;所述目标帧图像为之前存储的所述目标应用程序的非任务栏区域的最新一帧图像;

第一显示模块,用于将所述第一编码数据对应的解码数据与所述目标帧图像合并后显示。

根据本公开实施例的第五方面,提供一种编解码系统,包括上述任一实施例所述的解码端设备和上述任一实施例所述的编码端设备。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种编解码方法的流程图;

图2是本公开实施例提供的一种桌面界面的示意图;

图3是本公开实施例提供的一种编解码方法的流程图;

图4是本公开实施例提供的一种编解码方法的流程图;

图5是本公开实施例提供的一种编解码方法的流程图;

图6是本公开实施例提供的一种编解码方法的流程图;

图7是本公开实施例提供的一种编解码方法的交互图;

图8a是本公开实施例提供的一种编码端设备的结构示意图;

图8b是本公开实施例提供的一种编码端设备的结构示意图;

图8c是本公开实施例提供的一种编码端设备的结构示意图;

图8d是本公开实施例提供的一种编码端设备的结构示意图;

图8e是本公开实施例提供的一种编码端设备的结构示意图;

图8f是本公开实施例提供的一种编码端设备的结构示意图;

图8g是本公开实施例提供的一种编码端设备的结构示意图;

图8h是本公开实施例提供的一种编码端设备的结构示意图;

图8i是本公开实施例提供的一种编码端设备的结构示意图;

图9a是本公开实施例提供的一种解码端设备的结构示意图;

图9b是本公开实施例提供的一种解码端设备的结构示意图;

图9c是本公开实施例提供的一种解码端设备的结构示意图;

图9d是本公开实施例提供的一种解码端设备的结构示意图;

图9e是本公开实施例提供的一种解码端设备的结构示意图;

图9f是本公开实施例提供的一种解码端设备的结构示意图;

图10是本公开实施例提供的一种编解码系统的框架图;

图11是本公开实施例提供的一种编解码系统的框架图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开实施例提供一种编解码方法,应用于编码端设备,如图1所示,该方法包括以下步骤:

步骤101、获取当前最前端显示的目标应用程序。

示例的,编码端设备获取当前最前端显示的应用程序,即为目标应用程序,然后判定目标应用程序为低频动态应用还是高频动态应用,其中,低频动态应用为图像变化比较慢,或者只有在用户操作应用时才发生图像变化的应用,例如word、浏览器、即时通讯软件等均为低频动态应用;高频动态应用为图像画面随着时间发生较快变化的应用,例如,视频播放应用、游戏应用等均为高频动态应用。

需要说明的是,当前最前端显示的应用程序即为桌面上显示的最上层应用程序,也是用户当前选中的应用程序。

进一步的,在执行步骤101之前,检测当前运行的所有应用程序;从所述所有应用程序中确定出至少一个低频动态应用程序;对每个所述低频动态应用程序进行编号,形成编号列表,并将编号列表进行存储。

其中,所述编号列表中存储有每个低频动态应用程序的标识信息与编号的映射关系。

具体从所述所有应用程序中确定出至少一个低频动态应用程序的方法如下:

根据预先存储的应用列表确定出所述所有应用程序中的至少一个低频动态应用程序。

其中,所述应用列表中存储有每个低频动态应用程序的标识信息。

示例的,用户可以事先对每个应用程序的类型进行判定,确定出所有的低频动态应用程序,然后将所有低频动态应用程序的标识信息进行存储,形成应用列表,在编码端设备检测到当前运行的所有应用程序时,从应用列表中查找所有应用程序中的低频动态应用程序,得到至少一个低频动态应用程序,然后对确定出的每个低频动态应用程序进行编号,形成编号列表,并将编号列表进行保存,便于后续查找。具体可以直接根据预设编号规则对每个低频动态应用程序进行编号生成编号列表,例如,预设编号规则为按照字母排序顺序对每个低频动态应用程序进行编号,假设有三个低频动态应用程序,则分别编号为低频动态应用程序a、低频动态应用程序b和低频动态应用程序c;或者,事先确定出所有常用的或者可用的低频动态应用,并为每个低频动态应用固定分配一个编号,将每个低频动态应用的编号与标识信息对应存储,生成编号列表。例如,表1所示,其为编号列表的示意图,表1中包括应用程序Excel的编号为s1,应用程序Word的编号为s2,应用程序PPT的编号为s3,依次类推,应用程序MV的编号为sn,其中,n为大于1的整数。

表1

需要说明的是,上述中的预设编号规则还可以为其他规则,例如,预设编号规则为按照数字从小到大顺序对每个应用程序进行编号,或者按照随机生成的不同数字对每个应用程序进行编号等,本公开对此不作限定。

需要说明的是,有的应用程序可以同时打开多个文件,例如word应用程序可以同时打开多个文档,针对这种类型的应用程序,在编号时,不仅要给出应用程序的编号,还需要给出每个文件的编号,例如,针对word软件打开两个文档的情况,针对两个文档的显示界面分别编号为s2-01和s2-02。在这种情况下,这两个编号也是不同的编号。

步骤102、在确定所述目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像。

获取当前帧图像的分辨率;根据所述分辨率确定任务栏区域的显示比例;根据所述显示比例确定所述非任务栏区域图像和所述任务栏区域图像。

其中,任务栏区域为桌面最下方的长条,任务栏区域图像为桌面最下方的长条中显示的图像,如图2所示,最下面的黑色长条状区域即为任务栏区域,其余部分则为非任务栏区域。

示例的,编码端设备在确定目标应用程序为低频动态应用时,采集目标应用程序的当前帧图像,并获取当前帧图像的分辨率,由于当前帧图像的分辨率是确定的,所以在分辨率确定的情况下任务栏区域的显示比例也是一定的,因此可以直接根据任务栏区域的显示比例计算出任务栏区域图像的显示位置,进而根据任务栏区域图像的显示位置确定出任务栏区域图像;将当前帧图像位置区域减去任务栏区域图像的显示位置即可得到非任务栏区域图像的显示位置,进而根据非任务栏区域图像的显示位置确定为非任务栏区域图像。

需要说明的是,之所以在编码时对任务栏区域和非任务栏区域进行划分,是因为任务栏区域的图像变化比较频繁,即使其他显示项目不变,右下角的时间显示也会频繁变化,因此,需要将任务栏区域和非任务栏区域分别考虑。

步骤103、根据所述非任务栏区域图像确定应用程序是否发生切换。

可选的,获取上一帧图像的非任务栏区域图像;将所述上一帧图像的非任务栏区域图像与所述当前帧图像的非任务栏区域图像相比确定应用程序是否发生切换。

步骤104、在确定应用程序发生切换时,确定当前是否为可简化编码场景。

可选的,获取目标帧图像;确定所述非任务栏区域图像与所述目标帧图像是否相同;在确定所述非任务栏区域图像与所述目标帧图像相同时,确定当前为所述可简化编码场景。

其中,所述目标帧图像为之前存储的所述目标应用程序的非任务栏区域的最新一帧图像;在编码端设备中预先存储有图像列表,图像列表中存储有应用程序的标识信息与应用程序的目标帧图像的映射关系,具体图像列表的创建可参考解码端设备中图像列表的创建方法,在此不再赘述。

示例的,编码端设备在确定应用程序发生切换时,根据目标应用程序的标识信息从预先存储的图像列表中获取对应的目标帧图像,并将当前帧图像的非任务栏区域图像与目标帧图像进行比较,确定当前帧图像的非任务栏区域图像与目标帧图像是否相同,在确定当前帧图像的非任务栏区域图像与目标帧图像相同时,则确定当前为可简化编码场景;在确定当前帧图像的非任务栏区域图像与目标帧图像不相同时,说明目标应用程序此时为非全屏显示,而位于目标应用程序底层的其他应用程序的显示部分发生了变化,则确定当前为不可简化编码场景。

具体的,确定非任务栏区域图像与目标帧图像是否相同可通过以下方式实现:

确定非任务栏区域图像的第一哈希指纹;确定目标帧图像的第二哈希指纹;比对对应位置上的第一哈希指纹与第二哈希指纹是否相同;在确定对应位置上的第一哈希指纹和第二哈希指纹相同时,确定非任务栏区域图像与目标帧图像相同。

具体的,确定非任务栏区域图像的第一哈希指纹可通过以下方式实现:

将所述非任务栏区域图像进行缩小处理,得到新的非任务栏区域图像;将所述新的非任务栏区域图像转换为灰度图像;计算所述灰度图像中每一行像素中相邻两个像素之间的差异值;确定每一行差异值中相邻两个差异值的大小;根据相邻两个差异值的大小确定所述第一哈希指纹。

示例的,采用降采样方式对非任务栏区域图像进行缩小处理,例如,将非任务栏区域图像划分为特定大小(8*8)的宏块,对每一宏块求像素平均值,然后由这些像素平均值组成新的非任务栏区域图像,然后采用公式IMG

表2

表3

需要说明的是,第二哈希指纹的计算方法与第一哈希指纹的计算方法相同,具体可参考第一哈希指纹的计算方法,本公开在此不再赘述。

需要说明的是,确定非任务栏区域图像与目标帧图像是否相同还可以是将非任务栏区域图像的每个像素和目标帧图像的每个像素逐个进行对比,如果非任务栏区域图像的每个像素与目标帧图像的对应位置上的每个像素完全相同,则确定非任务栏区域图像与目标帧图像相同;如果非任务栏区域图像的每个像素与目标帧图像的对应位置上的每个像素不完全相同,则确定非任务栏区域图像与目标帧图像不相同。

步骤105、在确定当前为所述可简化编码场景时,获取所述目标应用程序的目标编号,并对所述任务栏区域图像进行编码,得到第一编码数据。

示例的,编码端设备在确定当前为可简化编码场景时,直接从预先存储的编号列表中查找到目标应用程序对应的目标编号,假设目标应用程序为Word,则目标编号为s2,并采用现有技术中的任一种编码方法对任务栏区域图像进行编码,得到第一编码数据。

步骤106、向解码端设备发送当前码流数据;使得所述解码端设备获取所述目标应用程序对应的目标帧图像,并将所述目标帧图像确定为非任务栏区域图像的解码图像。

其中,所述当前码流数据包括所述目标应用程序的目标编号和所述第一编码数据。

示例的,编码端设备在确定应用程序发生切换时,向解码端设备发送只包括目标应用程序的目标编号和第一编码数据的当前码流数据,使得解码端设备在确定当前码流数据中只包含目标应用程序的目标编号和第一编码数据时,确定应用程序发生了切换,此时获取目标应用程序对应的目标帧图像,并将目标帧图像确定为当前帧图像的非任务栏区域图像的解码图像进行显示。

进一步的,如图3所示,所述方法还包括以下步骤107:

步骤107、在确定应用程序未发生切换,或者在确定当前未为所述可简化编码场景时,对所述非任务栏区域图像进行编码,得到第二编码数据;所述当前码流数据还包括第二编码数据,使得所述解码端设备在确定所述当前码流数据包括所述目标编号、所述第一编码数据和所述第二编码数据时,对所述第一编码数据和所述第二编码数据均进行解码后显示。

示例的,编码端设备在确定应用程序未发生切换,或者在确定当前未为所述可简化编码场景时,还对非任务栏区域图像采用现有技术中的任何一种编码方式对非任务栏区域图像进行编码,得到第二编码数据,并将第二编码数据、第一编码数据和目标编号一起打包生成当前码流数据,使得解码端设备在得到第二编码数据时,对第一编码数据和第二编码数据均进行解码,并将得到的解码数据进行显示。

进一步的,如图4所示,所述方法还包括以下步骤108和步骤109:

步骤108、在确定应用程序发生切换时,在参考帧图像的编码数据中添加标记信息,得到参考帧图像编码数据。

其中,所述标记信息用于指示所述参考帧图像为切换之前的应用程序的非任务栏区域的最后一帧图像。

示例的,编码端设备在每次检测到应用程序发生切换时,在参考帧图像的编码数据中添加标记信息,也就是在切换之前的应用程序的非任务栏区域的最后一帧图像的编码数据中添加标记信息,该标记信息用于指示参考帧图像为切换之前的应用程序的非任务栏区域的最后一帧图像,得到参考帧图像编码数据。

步骤109、向解码端设备发送所述参考帧图像编码数据,使得所述解码端设备将所述参考帧图像对应的解码图像与切换之前的应用程序的标识信息对应保存在图像列表中。

示例的,编码端设备在得到参考帧图像编码数据时,向解码端设备发送参考帧图像编码数据,使得解码端设备在接收到参考帧图像编码数据时,对参考帧图像编码数据进行解析,得到添加标记信息的编码数据,进而根据标记信息的指示将参考帧图像对应的解码图像作为切换之前的应用程序的非任务栏区域的最新一帧图像进行保存。

本公开实施例提供一种编解码方法,编码端设备在确定目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像;在确定应用程序发生切换时,确定当前是否为可简化编码场景,在确定当前为可简化编码场景时,获取目标应用程序的目标编号,并对任务栏区域图像进行编码,得到第一编码数据,并将目标编号和第一编码数据添加至当前码流数据中发送给解码端设备,使得解码端设备在接收到编码端设备发送的当前码流数据时,确定当前码流数据是否只包含目标应用程序的目标编号和第一编码数据,在确定当前码流数据只包含目标应用程序的目标编号和第一编码数据时,获取目标应用程序的非任务栏区域的最新一帧图像,即获取目标帧图像,进而将目标帧图像确定为非任务栏区域的解码图像,并将目标帧图像与第一编码数据对应的解码数据合并后显示。可知,本公开解码端设备可以直接将之前存储的非任务栏区域的最新一帧图像确定为当前帧图像的非任务栏区域的解码图像进行显示,无需执行当前帧图像的非任务栏区域图像的解码操作,从而节省了解码端设备的算力消耗,提高了解码端设备的解码效率。另外,对当前是否为可简化编码场景的判断是为了提高简化编码的准确性,避免在目标应用程序为非全屏显示,而其他程序图像发生变化时,采用可简化编码造成的错误编解码。

本公开实施例提供一种编解码方法,应用于解码端设备,如图5所示,该方法包括以下步骤:

步骤501、接收编码端设备发送的当前码流数据。

步骤502、确定所述当前码流数据是否只包含目标应用程序的目标编号和第一编码数据。

其中,所述第一编码数据为所述目标应用程序的当前帧图像的任务栏区域的编码数据。

示例的,解码端设备在接收到当前码流数据时,对当前码流数据进行解析,确定解析得到的数据是否只包含目标应用程序的目标编号和第一编码数据。

需要说明的是,根据对当前码流数据解析结果的不同,下述执行的步骤也不同,在确定所述当前码流数据只包含所述目标编号和第一编码数据时,则执行步骤503和步骤504;在确定所述当前码流数据包含所述目标编号、所述第一编码数据和所述第二编码数据时,则执行步骤505。

步骤503、在确定所述当前码流数据只包含所述目标编号和所述第一编码数据时,获取所述目标应用程序对应的目标帧图像。

其中,所述目标帧图像为之前存储的所述目标应用程序的非任务栏区域的最新一帧图像。

可选的,从预先存储的图像列表中获取与所述目标应用程序对应的目标帧图像;所述图像列表中存储有应用程序的标识信息与最新一帧图像的映射关系。

示例的,解码端设备在确定解析得到的只有目标应用程序的目标编号和第一编码数据时,说明此时应用程序发生了切换,从预先存储的图像列表中直接查找与目标应用程序对应的帧图像,并将该帧图像确定为目标帧图像,该目标帧图像为之前存储的目标应用程序的非任务栏区域的最新一帧图像,从而获取到目标应用程序对应的目标帧图像。

具体的,图像列表可通过以下方法创建:

确定每个应用程序的非任务栏区域的最新一帧图像;建立每个应用程序的非任务栏区域的最新一帧图像与应用程序的标识信息的对应关系,得到所述图像列表。

示例的,确定每个应用程序的非任务栏区域的最新一帧图像可通过以下两种方法实现:

第一种方法、接收编码端设备发送的参考帧图像编码数据;所述参考帧图像编码数据为在参考帧图像的编码数据中添加标记信息后的数据;将所述参考帧图像对应的解码图像确定为切换之前的应用程序的非任务栏区域的最新一帧图像。

其中,所述标记信息用于指示所述参考帧图像为切换之前的应用程序的非任务栏区域的最后一帧图像。

示例的,编码端设备将采集的上一帧图像的非任务栏区域的内容与当前帧图像的非任务栏区域的内容进行比较,以此来确定应用程序是否发生切换,在确定应用程序发生切换时,在参考帧图像的编码数据中添加标记信息,得到参考帧图像编码数据,并向解码端设备发送参考帧图像编码数据,解码端设备在接收到参考帧图像编码数据时,对参考帧图像编码数据进行解析,得到添加标记信息的编码数据,进而根据标记信息的指示将参考帧图像对应的解码图像作为切换之前的应用程序的非任务栏区域的最新一帧图像,并将切换之前的应用程序的非任务栏区域的最新一帧图像与切换之前的应用程序的标识信息对应保存,形成图像列表。

第二种方法、获取上一编码帧信息对应的应用程序的编号;将所述上一编码帧信息对应的应用程序的编号与所述目标编号进行比对;在确定所述上一编码帧信息对应的应用程序的编号与所述目标编号未相同时,将上一编码帧信息对应的解码图像确定为对应应用程序的非任务栏区域的最新一帧图像。

示例的,解码端设备还可以根据接收到的上一码流数据对应的应用程序的编号和目标应用程序的目标编号的比较来判断应用程序是否发生切换,在确定上一码流数据对应的应用程序的编号与目标编号不相同时,则说明应用程序发生了切换,此时将上一码流数据对应的非任务栏区域的解码图像确定为切换之前的应用程序的非任务栏区域的最新一帧图像,并将上一码流数据对应的应用程序的非任务栏区域的最新一帧图像与上一码流数据对应的应用程序的标识信息对应保存,形成图像列表。

步骤504、将所述第一编码数据对应的解码数据与所述目标帧图像合并后显示。

示例的,解码端设备在获取到目标帧图像时,将目标帧图像确定为当前帧图像的非任务栏区域图像对应的解码图像,并将目标帧图像与第一编码数据对应的解码数据进行合并,生成完整的当前帧图像的显示图像并进行显示,无需对当前帧图像的非任务栏区域图像的编码数据进行解码,直接显示目标帧图像。在这种编码模式下,如果用户不断在多个应用程序之间来回进行切换,则在发生切换时,针对当前帧图像的非任务栏区域图像,解码端设备不需要再进行解码,而是直接将之前存储的该应用程序的非任务栏区域的最后显示画面(最新一帧图像)直接作为解码图像进行显示,可见,这种方式能够节约解码端设备的算力消耗,提高解码端设备的解码效率。

进一步的,如图6所示,所述方法还包括以下步骤505:

步骤505、在确定所述当前码流数据包括所述目标编号、所述第一编码数据和所述第二编码数据时,对所述第一编码数据和所述第二编码数据均进行解码并显示。

示例的,解码端设备在对当前码流数据进行解析得到目标编号、第一编码数据和第二编码数据时,说明应用程序未发生切换,此时对接收到的第一编码数据和第二编码均进行解码后进行显示。

本公开实施例提供一种编解码方法,解码端设备在接收到编码端设备发送的当前码流数据时,确定当前码流数据是否只包含目标应用程序的目标编号和第一编码数据,在确定当前码流数据只包含目标应用程序的目标编号和第一编码数据时,获取目标应用程序的非任务栏区域的最新一帧图像,即获取目标帧图像,进而将目标帧图像确定为非任务栏区域的解码图像,并将目标帧图像与第一编码数据对应的解码数据合并后显示。可知,本公开解码端设备可以直接将之前存储的非任务栏区域的最新一帧图像确定为当前帧图像的非任务栏区域的解码图像进行显示,无需执行当前帧图像的非任务栏区域图像的解码操作,从而节省了解码端设备的算力消耗,提高了解码端设备的解码效率。

本公开实施例提供一种编解码方法,应用于编码端设备和解码端设备,如图7所示,该方法包括以下步骤:

步骤701、获取当前最前端显示的目标应用程序。

步骤702、在确定所述目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像。

步骤703、根据所述非任务栏区域图像确定应用程序是否发生切换。

步骤704、在确定应用程序发生切换时,确定当前是否为可简化编码场景。

步骤705、在确定当前为所述可简化编码场景时,获取所述目标应用程序的目标编号,并对所述任务栏区域图像进行编码,得到第一编码数据。

步骤706、向解码端设备发送当前码流数据。

其中,所述当前码流数据包括所述目标应用程序的目标编号和所述第一编码数据。

需要说明的是,根据当前码流数据包含的信息不同,下述执行步骤也不同,在确定当前码流数据只包含所述目标编号和第一编码数据时,则执行步骤707和步骤709;在在确定所述当前码流数据包括所述目标编号、所述第一编码数据和所述第二编码数据时,则执行步骤710。

步骤707、确定所述当前码流数据是否只包含目标应用程序的目标编号和第一编码数据。

步骤708、在确定所述当前码流数据只包含所述目标编号和所述第一编码数据时,获取所述目标应用程序对应的目标帧图像。

其中,所述目标帧图像为之前存储的所述目标应用程序的非任务栏区域的最新一帧图像。

步骤709、将所述第一编码数据对应的解码数据与所述目标帧图像合并后显示。

步骤710、在确定所述当前码流数据包括所述目标编号、所述第一编码数据和所述第二编码数据时,对所述第一编码数据和所述第二编码数据均进行解码并显示。

本公开实施例提供一种编解码方法,编码端设备在确定目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像;在确定应用程序发生切换时,确定当前是否为可简化编码场景,在确定当前为可简化编码场景时,获取目标应用程序的目标编号,并对任务栏区域图像进行编码,得到第一编码数据,并将目标编号和第一编码数据添加至当前码流数据中发送给解码端设备,使得解码端设备在接收到编码端设备发送的当前码流数据时,确定当前码流数据是否只包含目标应用程序的目标编号和第一编码数据,在确定当前码流数据只包含目标应用程序的目标编号和第一编码数据时,获取目标应用程序的非任务栏区域的最新一帧图像,即获取目标帧图像,进而将目标帧图像确定为非任务栏区域的解码图像,并将目标帧图像与第一编码数据对应的解码数据合并后显示。可知,本公开解码端设备可以直接将之前存储的非任务栏区域的最新一帧图像确定为当前帧图像的非任务栏区域的解码图像进行显示,无需执行当前帧图像的非任务栏区域图像的解码操作,从而节省了解码端设备的算力消耗,提高了解码端设备的解码效率。

基于上述实施例中所描述的编解码方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。

本公开实施例提供一种编码端备,如图8a所示,该编码端设备80包括:第一获取模块801、划分模块802、第一确定模块803、第二确定模块804、第一编码模块805和第一发送模块806。

其中,第一获取模块801,用于获取当前最前端显示的目标应用程序。

划分模块802,用于在确定所述目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像。

第一确定模块803,用于根据所述非任务栏区域图像确定应用程序是否发生切换。

第二确定模块804,用于在确定应用程序发生切换时,确定当前是否为可简化编码场景。

第一编码模块805,用于在确定当前为所述可简化编码场景时,获取所述目标应用程序的目标编号,并对所述任务栏区域图像进行编码,得到第一编码数据。

第一发送模块806,用于向解码端设备发送当前码流数据;所述当前码流数据包括所述目标应用程序的目标编号和所述第一编码数据,使得所述解码端设备获取所述目标应用程序对应的目标帧图像,并将所述目标帧图像确定为非任务栏区域图像的解码图像。

在一个实施例中,如图8b所示,所述设备还包括第二编码模块807。

其中,所述第二编码模块807,用于在确定应用程序未发生切换,或者在确定当前未为所述可简化编码场景时,对所述非任务栏区域图像进行编码,得到第二编码数据;所述当前码流数据还包括第二编码数据,使得所述解码端设备在确定所述当前码流数据包括所述目标编号、所述第一编码数据和所述第二编码数据时,对所述第一编码数据和所述第二编码数据均进行解码后显示。

在一个实施例中,如图8c所示,所述第二确定模块804包括第一获取子模块8041、第一确定子模块8042和第二确定子模块8043。

其中,所述第一获取子模块8041,用于获取目标帧图像;所述目标帧图像为之前存储的所述目标应用程序的非任务栏区域的最新一帧图像。

所述第一确定子模块8042,用于确定所述非任务栏区域图像与所述目标帧图像是否相同。

所述第二确定子模块8043,用于在确定所述非任务栏区域图像与所述目标帧图像相同时,确定当前为所述可简化编码场景。

在一个实施例中,如图8d所示,所述第一确定子模块8042包括第一确定单元80421、第二确定单元80422、比对单元80423和第三确定单元80424。

其中,所述第一确定单元80421,用于确定所述非任务栏区域图像的第一哈希指纹。

所述第二确定单元80422,用于确定所述目标帧图像的第二哈希指纹。

所述比对单元80423,用于比对对应位置上的所述第一哈希指纹与所述第二哈希指纹是否相同。

所述第三确定单元80424,用于在确定对应位置上的所述第一哈希指纹和所述第二哈希指纹相同时,确定所述非任务栏区域图像与所述目标帧图像相同。

在一个实施例中,如图8e所示,所述第一确定模块803包括第二获取子模块8031和第三确定子模块8032。

其中,所述第二获取子模块8031,用于获取上一帧图像的非任务栏区域图像。

所述第三确定子模块8032,用于将所述上一帧图像的非任务栏区域图像与所述当前帧图像的非任务栏区域图像相比确定应用程序是否发生切换。

在一个实施例中,如图8f所示,设备还包括添加模块808和第二发送模块809。

其中,所述添加模块808,用于在确定应用程序发生切换时,在参考帧图像的编码数据中添加标记信息,得到参考帧图像编码数据;所述标记信息用于指示所述参考帧图像为切换之前的应用程序的非任务栏区域的最后一帧图像。

所述第二发送模块809,用于向解码端设备发送所述参考帧图像编码数据,使得所述解码端设备将所述参考帧图像对应的解码图像与切换之前的应用程序的标识信息对应保存在图像列表中。

在一个实施例中,如图8g所示,所述设备还包括检测模块810、第三确定模块811和编号模块812,所述第一编码模块805包括第三获取子模块8051。

其中,所述检测模块810,用于检测当前运行的所有应用程序。

所述第三确定模块811,用于从所有应用程序中确定出至少一个低频动态应用程序。

所述编号模块812,用于对每个所述低频动态应用程序进行编号,形成编号列表;所述编号列表中存储有每个低频动态应用程序的标识信息与编号的映射关系。

所述第三获取子模块8051,用于在预先存储的所述编号列表中获取所述目标应用程序的目标编号。

在一个实施例中,如图8h所示,第三确定模块811包括第四确定子模块8111。

其中,所述第四确定子模块8111,用于根据预先存储的应用列表确定出所述所有应用程序中的至少一个低频动态应用程序;所述应用列表中存储有每个低频动态应用程序的标识信息。

在一个实施例中,如图8i所示,所述划分模块802包括第四获取子模块8021、第五确定子模块8022和第六确定子模块8023。

其中,所述第四获取子模块8021,用于获取当前帧图像的分辨率。

所述第五确定子模块8022,用于根据所述分辨率确定任务栏区域的显示比例。

所述第六确定子模块8023,用于根据所述显示比例确定所述非任务栏区域图像和所述任务栏区域图像。

本公开实施例提供一种编码端设备,编码端设备在确定目标应用程序为低频动态应用时,将当前帧图像划分为任务栏区域图像和非任务栏区域图像;在确定应用程序发生切换时,确定当前是否为可简化编码场景,在确定当前为可简化编码场景时,获取目标应用程序的目标编号,并对任务栏区域图像进行编码,得到第一编码数据,并将目标编号和第一编码数据添加至当前码流数据中发送给解码端设备,使得解码端设备在接收到编码端设备发送的当前码流数据时,确定当前码流数据是否只包含目标应用程序的目标编号和第一编码数据,在确定当前码流数据只包含目标应用程序的目标编号和第一编码数据时,获取目标应用程序的非任务栏区域的最新一帧图像,即获取目标帧图像,进而将目标帧图像确定为非任务栏区域的解码图像,并将目标帧图像与第一编码数据对应的解码数据合并后显示。可知,本公开解码端设备可以直接将之前存储的非任务栏区域的最新一帧图像确定为当前帧图像的非任务栏区域的解码图像进行显示,无需执行当前帧图像的非任务栏区域图像的解码操作,从而节省了解码端设备的算力消耗,提高了解码端设备的解码效率。

本公开实施例提供一种解码端设备,如图9a所示,该解码端设备90包括:接收模块901、第三确定模块902、第二获取模块903和第一显示模块904。

其中,接收模块901,用于接收编码端设备发送的当前码流数据。

第三确定模块902,用于确定所述当前码流数据是否只包含目标应用程序的目标编号和第一编码数据;所述第一编码数据为所述目标应用程序的当前帧图像的任务栏区域的编码数据。

第二获取模块903,用于在确定所述当前码流数据只包含所述目标编号和所述第一编码数据时,获取所述目标应用程序对应的目标帧图像;所述目标帧图像为之前存储的所述目标应用程序的非任务栏区域的最新一帧图像。

第一显示模块904,用于将所述第一编码数据对应的解码数据与所述目标帧图像合并后显示。

在一个实施例中,如图9b所示,所述设备还包括第二显示模块905。

其中,所述第二显示模块905,用于在确定所述当前码流数据包括所述目标编号、所述第一编码数据和所述第二编码数据时,对所述第一编码数据和所述第二编码数据均进行解码并显示。

在一个实施例中,如图9c所示,第二获取模块903包括第五获取子模块9031。

其中,所述第五获取子模块9031,用于从预先存储的图像列表中获取与所述目标应用程序对应的目标帧图像;所述图像列表中存储有应用程序的标识信息与最新一帧图像的映射关系。

在一个实施例中,如图9d所示,设备还包括第四确定模块906和建立模块907。

其中,所述第四确定模块906,用于确定每个应用程序的非任务栏区域的最新一帧图像。

所述建立模块907,用于建立每个应用程序的非任务栏区域的最新一帧图像与应用程序的标识信息的对应关系,得到所述图像列表。

在一个实施例中,如图9e所示,所述第四确定模块906包括接收子模块9061和第七确定子模块9062。

其中,所述接收子模块9061,用于接收编码端设备发送的参考帧图像编码数据;所述参考帧图像编码数据为在参考帧图像的编码数据中添加标记信息后的数据;所述标记信息用于指示所述参考帧图像为切换之前的应用程序的非任务栏区域的最后一帧图像。

所述第七确定子模块9062,用于将所述参考帧图像对应的解码图像确定为切换之前的应用程序的非任务栏区域的最新一帧图像。

在一个实施例中,如图9f所示,所述第四确定模块906包括第六获取子模块9063、比对子模块9064和第八确定子模块9065。

其中,第六获取子模块9063,用于获取上一编码帧信息对应的应用程序的编号。

所述比对子模块9064,用于将所述上一编码帧信息对应的应用程序的编号与所述目标编号进行比对。

所述第八确定子模块9065,用于在确定所述上一编码帧信息对应的应用程序的编号与所述目标编号未相同时,将上一编码帧信息对应的解码图像确定为对应应用程序的非任务栏区域的最新一帧图像。

本公开实施例提供一种解码端设备,解码端设备在接收到编码端设备发送的当前码流数据时,确定当前码流数据是否只包含目标应用程序的目标编号和第一编码数据,在确定当前码流数据只包含目标应用程序的目标编号和第一编码数据时,获取目标应用程序的非任务栏区域的最新一帧图像,即获取目标帧图像,进而将目标帧图像确定为非任务栏区域的解码图像,并将目标帧图像与第一编码数据对应的解码数据合并后显示。可知,本公开解码端设备可以直接将之前存储的非任务栏区域的最新一帧图像确定为当前帧图像的非任务栏区域的解码图像进行显示,无需执行当前帧图像的非任务栏区域图像的解码操作,从而节省了解码端设备的算力消耗,提高了解码端设备的解码效率。

图10是本公开实施例提供的一种编解码系统的框架图,如图10所示的编解码系统包括上述任一实施例所述的编码端设备1001和上述任一实施例所述的解码端设备1002。

其中,编码端设备1001为云计算机、零终端等客户端设备,客户端设备上设有解码模块,解码端设备1002为云服务器上运行的与客户端设备对应的虚拟机,虚拟机上设有编码模块,虚拟机与客户端设备对应连接。本公开应用于云办公场景,基于VDI(VirtualDesktop Infrastructure,虚拟桌面基础架构)技术,VDI架构如图11所示,包括云服务器和至少一个客户端设备,客户端设备上运行至少一个虚拟机,通过在数据中心的云服务器运行操作系统,从而将用户的桌面进行虚拟化。用户通过客户端设备访问对应的虚拟机,从而获取桌面图像,通过反向控制方式对获取到的桌面图像进行控制。

基于上述图1对应的实施例中所描述的编解码方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的编解码方法,此处不再赘述。

基于上述图3对应的实施例中所描述的编解码方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器、随机存取存储器、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图3对应的实施例中所描述的编解码方法,此处不再赘述。

相关技术
  • 音频编解码器 、编解码方法、 集线器、 发送接收器、 发送接收方法、通信系统、 播放设备
  • 图像编解码方法、图像编解码设备及网络系统
技术分类

06120112895270