本发明涉及电子技术应用领域,具体而言,涉及一种帧编解码的方法、装置、系统、存储介质。
背景技术:
随着科技的发展,便携设备如笔记本电脑、平板电脑、智能手机等已经成为个人办公及娱乐的必备设备,深入到每个人生活的各个方面。当用户与用户之间进行信息共享时,常常需要通过上述便携设备以及一些显示设备如显示器、投影仪等来实现。而这种类型的信息共享方式的实现依赖的关键技术就是实时屏幕共享技术。实时屏幕共享技术又依赖于桌面视频的高效编解码的实现。桌面视频是一种特殊的视频,视频中的每帧都是对计算机屏幕图像截取得到的,常常包含一些自然图像、图形、文本、应用程序界面等。
现有的屏幕视频图像常常采用标准的视频压缩标准H.264,该视频压缩标准认为每帧都是一个普通自然图像,采用统一的方式对每帧中的每个块进行压缩,进行帧内预测编码或者帧间运动估计编码,该视频压缩标准并没有考虑屏幕视频图像为复合图像,且视频帧之间的运动常常为背景不变,某些应用窗口移动的特性。
针对上述相关技术中由于对屏幕视频图像采用每帧中的每个块都进行压缩,导致的编解码算法复杂度高的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种帧编解码的方法、装置、系统、存储介质,以至少解决相关技术中由于对屏幕视频图像采用每帧中的每个块都进行压缩,导致的编解码算法复杂度高的技术问题。
根据本发明实施例的一个方面,提供了一种帧编码的方法,包括:采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像;判断待匹配帧图像中的每个块是否与预设参考帧图像中相同位置的块相同;依据判断结果对待匹配帧图像中的每个块进行分类;对分类后的块进行编码。
可选的,采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像包括:获取待传输视频中的任一帧图像;判断帧图像的类型是否为预设的帧间模式;在判断结果为是的情况下,将帧图像分为M×N的块,并将M×N的块确定为待匹配帧图像,其中,M和N为自然数。
进一步地,可选的,依据判断结果对待匹配帧图像中对应的块进行分类包括:在待匹配帧图像中的块与预设参考帧图像中的相同位置的块相同的情况下,标记与预设参考帧图像中的相同位置的块相同的为运动匹配块,并记录与预设参考帧图像中的相同位置的块相同的运动向量;在待匹配帧图像中的块与预设参考帧图像中的块的相似性大于预设门限T的情况下,标记块为预测块;在待匹配帧图像中的块分别被标记为运动匹配块和预测块之后,标记待匹配帧图像中的剩余块标记为帧内块。
进一步地,可选的,对分类后的块进行编码包括:在块为运动匹配块的情况下,对每个运动匹配块中的运动向量进行编码,得到运动匹配块编码码流。
可选的,对分类后的块进行编码包括:在块为预测块的情况下,判断每个预测块的像素值是否与预测参考帧图像中对应的块的像素值是否相同;在判断结果为是的情况下,对像素值相同的块标记预设标识;在判断结果为否的情况下,每个预测块的像素值不变;其中,对每个预测块依据预设标识对应的分量进行编码,得到预测块编码码流。
可选的,对分类后的块进行编码包括:在块为帧内块的情况下,对帧内块依据帧内编码进行编码,得到帧内块编码码流。
可选的,本申请提供的帧编码方法还包括:向解码端发送编码后的待匹配帧图像;其中,向解码端发送编码后的待匹配帧图像包括:将运动匹配块、预测块和帧内块的类型信息与运动匹配块编码码流、预测块编码码流和帧内块编码码流进行组合,得到复合码流;向解码端发送复合码流。
根据本发明实施例的另一个方面,提供了一种帧解码的方法,包括:接收编码端发送的复合码流;对复合码流进行解码,得到对应各个类型块的块码流;依据块码流合成图像。
可选的,在复合码流包括各个类型块的类型信息和对应的块编码码流的情况下,对复合码流进行解码,得到对应各个类型块的块码流包括:解析复合码流,得到对应各个类型块的类型信息和对应各个类型块的块编码码流;依据预设解码规则分别对各个类型块的块编码码流进行解码,得到各个类型块;其中,各个类型块的类型信息包括以下至少之一:运动匹配块、预测块和帧内块;各个类型块的块编码码流包括以下至少之一:运动匹配块编码码流、预测块编码码流和帧内块编码码流。
根据本发明实施例的又一个方面,提供了一种帧编码的装置,包括:采集模块,用于采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像;判断模块,用于判断待匹配帧图像中的每个块是否与预设参考帧图像中相同位置的块相同;分类模块,用于依据判断结果对待匹配帧图像中的每个块进行分类;编码模块,用于对分类后的块进行编码。
可选的,采集模块包括:提取单元,用于获取待传输视频中的任一帧图像;判断单元,用于判断帧图像的类型是否为预设的帧间模式;划分单元,用于在判断结果为是的情况下,将帧图像分为M×N的块,并将M×N的块确定为待匹配帧图像,其中,M和N为自然数。
进一步地,可选的,分类模块包括:第一分类单元,用于在待匹配帧图像中的块与预设参考帧图像中的相同位置的块相同的情况下,标记与预设参考帧图像中的相同位置的块相同的为运动匹配块,并记录与预设参考帧图像中的相同位置的块相同的运动向量;第二分类单元,用于在待匹配帧图像中的块与预设参考帧图像中的块的相似性大于预设门限T的情况下,标记块为预测块;第三分类单元,用于在待匹配帧图像中的块分别被标记为运动匹配块和预测块之后,标记待匹配帧图像中的剩余块标记为帧内块。
可选的,编码模块包括:第一编码单元,用于在块为运动匹配块的情况下,对每个运动匹配块中的运动向量进行编码,得到运动匹配块编码码流。
可选的,编码模块包括:第一判断单元,用于在块为预测块的情况下,判断每个预测块的像素值是否与预测参考帧图像中对应的块的像素值是否相同;第二编码单元,用于在判断结果为是的情况下,对像素值相同的块标记预设标识;第三编码单元,用于在判断结果为否的情况下,每个预测块的像素值不变;其中,对每个预测块依据预设标识对应的分量进行编码,得到预测块编码码流。
可选的,编码模块包括:第四编码单元,用于在块为帧内块的情况下,对帧内块依据帧内编码进行编码,得到帧内块编码码流。
可选的,本申请提供的帧编码的装置还包括:发送模块,用于向解码端发送编码后的待匹配帧图像;其中,向解码端发送编码后的待匹配帧图像包括:将运动匹配块、预测块和帧内块的类型信息与运动匹配块编码码流、预测块编码码流和帧内块编码码流进行组合,得到复合码流。
根据本发明实施例的再一个方面,提供了一种帧解码的装置,包括:接收模块,用于接收编码端发送的复合码流;解码模块,用于对复合码流进行解码,得到对应各个类型块的块码流;图像合成模块,用于依据块码流合成图像。
可选的,解码模块包括:解析单元,用于在复合码流包括各个类型块的类型信息和对应的块编码码流的情况下,解析复合码流,得到对应各个类型块的类型信息和对应各个类型块的块编码码流;解码单元,用于依据预设解码规则分别对各个类型块的块编码码流进行解码,得到各个类型块;其中,各个类型块的类型信息包括以下至少之一:运动匹配块、预测块和帧内块;各个类型块的块编码码流包括以下至少之一:运动匹配块编码码流、预测块编码码流和帧内块编码码流。
根据本发明实施例的一个方面,提供了一种帧编解码的系统,包括:编码设备和解码设备,编码设备和解码设备连接,其中,编码设备,用于对待传输视频中的任一帧图像中的每个块进行分类,依据分类对帧图像中各个类型块进行对应编码,并将编码后的块码流发送至解码设备;解码设备,用于接收块码流,解析块码流得到各个类型块的类型信息和码流信息,依据类型信息和码流信息进行解码,并依据解码后的块码流合成图像;其中,编码设备包括上述又一个方面提供的帧编码的装置;解码设备包括上述再一个方面提供的帧解码的装置。
根据本发明另一实施例的一个方面,提供了一种存储介质,包括:存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的帧编、解码的方法。
在本发明实施例中,通过采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像;判断待匹配帧图像中的每个块是否与预设参考帧图像中相同位置的块相同;依据判断结果对待匹配帧图像中的每个块进行分类;对分类后的块进行编码,达到了针对不同类型的块进行编码的目的,从而实现了降低编解码算法复杂度的技术效果,进而解决了相关技术中由于对屏幕视频图像帧中的每个块都进行同一方式编解码,导致的编解码算法复杂度高、码率高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的帧编码的方法的流程示意图;
图2是根据本发明实施例的帧编码的方法中待传输视频中待匹配帧图像的示意图;
图3是根据本发明实施例的帧编码的方法中待传输视频中参考帧图像的示意图;
图4是根据本发明实施例的一种帧解码的方法的流程示意图;
图5是根据本发明实施例的帧解码的方法的流程示意图;
图6是根据本发明实施例的帧编码的装置的结构示意图;
图7是根据本发明实施例的帧解码的装置的结构示意图;
图8是根据本发明实施例的帧编解码的系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
根据本发明实施例,提供了一种帧编码的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的帧编码的方法的流程示意图,如图1所示,在编码设备侧,该方法包括如下步骤:
步骤S102,采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像;
步骤S104,判断待匹配帧图像中的每个块是否与预设参考帧图像中相同位置的块相同;
步骤S106,依据判断结果对待匹配帧图像中的每个块进行分类;
步骤S108,对分类后的块进行编码。
具体的,结合步骤S102至步骤S108,本申请实施例提供的帧编码的方法可以适用于当用户与用户之间进行信息共享时,通过便携设备以及一些显示设备如显示器、投影仪等来实现信息共享,其中,本申请实施例提供的帧编码的方法,可以适用于图像传输或视频传输过程中,对于帧图像的编码处理,其中,本申请实施例提供的便携设备可以包括以下至少之一:智能手机、笔记本电脑、平板电脑、掌上商务或智能穿戴设备中的一种或至少两种的组合。
这里在对帧图像进行编码的过程中,首先需要从待传输视频中采集该待传输视频中的任一帧图像,并确定该帧图像为待匹配帧图像,进而判断该待匹配帧图像中的每个块是否与预设参考帧图像中相同位置的块相同,依据上述判断结果对待匹配图像中的每个块进行分类,并对分类后的块分别进行编码,从而区别于现有技术中基于H.264需要对每帧图像都采用统一的压缩并进行编码,而本申请实施例提供的帧编码的方法中可以依据不同类型的块进行编码,降低了现有编码的复杂度,实现了帧间编码技术,从而实现实时屏幕共享。
本发明实施例中的帧编码的方法中,通过采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像;判断待匹配帧图像中的每个块是否与预设参考帧图像中相同位置的块相同;依据判断结果对待匹配帧图像中的每个块进行分类;对分类后的块进行编码,达到了针对不同类型的块进行编码的目的,从而实现了降低编解码算法复杂度的技术效果,进而解决了相关技术中由于对屏幕视频图像帧中的每个块都进行同一方式编解码,导致的编解码算法复杂度高、码率高的技术问题。
可选的,步骤S102中采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像包括:
Step1,获取待传输视频中的任一帧图像;
Step2,判断帧图像的类型是否为预设的帧间模式;
Step3,在判断结果为是的情况下,将帧图像分为M×N的块,并将M×N的块确定为待匹配帧图像,其中,M和N为自然数。
具体的,在本申请实施例中待传输视频可以是桌面视频,其中,桌面视频中的帧图像可以包括:计算机屏幕当前显示的画面,因此在获取待传输视频中的任一帧图像中,即,获取该计算机屏幕当前显示的画面的帧图像,并判断该帧图像的类型是否为帧间模块(即,本申请实施例中的预设的帧间模式),在判断结果为是的情况下,将该帧图像分为M×N的块,其中,这里M×N可以为帧图像的像素。
例如,参照图2所示,图2是根据本发明实施例的帧编码的方法中待传输视频中待匹配帧图像的示意图,如图2所示,图2中为获取桌面视频中的一帧B,如大小为32×32,如果该帧B为帧间模式,则将该帧B分为8×8的块,如图2所示,图像共分为16个块,从B1到B16,其中,本申请实施例中将帧图像分为M×N的块可以为图2中将帧B分为8×8的块,这里M为8,N为8。
进一步地,可选的,步骤S106中依据判断结果对待匹配帧图像中对应的块进行分类包括:
Step1,在待匹配帧图像中的块与预设参考帧图像中的相同位置的块相同的情况下,标记与预设参考帧图像中的相同位置的块相同的为运动匹配块,并记录与预设参考帧图像中的相同位置的块相同的运动向量;
Step2,在待匹配帧图像中的块与预设参考帧图像中的块的相似性大于预设门限T的情况下,标记块为预测块;
Step3,在待匹配帧图像中的块分别被标记为运动匹配块和预测块之后,标记待匹配帧图像中的剩余块标记为帧内块。
具体的,图3是根据本发明实施例的帧编码的方法中待传输视频中参考帧图像的示意图,如图3所示,在判断待匹配帧图像中的每个块与预设参考帧图像中对应的块相同的情况下,将在待匹配帧图像中与预设参考帧图像块相同的块分类为运动匹配块;将不匹配的块,判断该待匹配帧图像中的块与预设参考帧图像块的相似度是否大于预设门限T,将相似度大于预设门限T的待匹配帧图像中的块分类为预测块;将分为运动匹配块和预测块之后剩下的待匹配帧图像中的块分类为预测块。
例如,参照图2和图3所示,图2为待匹配帧图像帧B,图3为预设参考帧图像帧A,依据判断结果对待匹配帧图像中对应的块进行分类具体如下:
(1)将块分为运动匹配块:
当前帧B的每个块和参考帧A中的块进行比较,如果可以找到完全匹配的块,记录该块的运动向量,并标记该块为运动匹配块,如图2和图3所示,在图2和图3中,B1和A1匹配,B2和A2匹配,B3和A3匹配,B5和A5匹配,B9和A9匹配,B13和A13匹配。将B1、B2、B3、B5、B9和B13标记为运动匹配块;
(2)将块分为预测块:
同理,基于(1)中完全匹配的块,判断待匹配图像中剩余的块与预设参考帧中同位置块的相似度是否大于预设门限T,将大于预设门限T的块分类为预测块,其中,如图2和图3所示,块B8、B14、B15和B16为预测块;
(3)将块分为帧内块:
基于上述(1)和(2),待匹配图像中剩余的块为帧内块,其中,如图2和图3所示,块B6、B7、B10、B11和B12为帧内块。
具体的,基于上述,本申请实施例中在标记块为运动匹配块的过程中,还需要记录每个块的运动向量,其中,如图2所示,将在B1、B2、B3、B5、B9和B13标记为运动匹配块的同时,记录该B1、B2、B3、B5、B9和B13的运动向量。
综上,对于桌面视频中的每一帧,当每帧的帧图像为帧间模式时,分成M×N的块,利用当前帧和参考帧的特性,分为运动匹配块、预测块和帧内块,对于三种块图像采用不同的编码方式,从而实现桌面视频较好的压缩编码。其中,对于三种块图像采用不同的编码方式具体如下:
编码方式一:对运动匹配块编码。
进一步地,可选的,步骤S108中对分类后的块进行编码包括:
Step1,在块为运动匹配块的情况下,对每个运动匹配块中的运动向量进行编码,得到运动匹配块编码码流。
具体的,对应步骤S106中Step1,在对每个运动匹配块进行编码的过程中,仅需对每个运动匹配块对应运动向量进行编码,即,对B1、B2、B3、B5、B9和B13的运动向量进行编码,从而得到运动匹配块编码码流。
编码方式二:对预测块编码。
可选的,步骤S108中对分类后的块进行编码包括:
Step1,在块为预测块的情况下,判断每个预测块的像素值是否与预测参考帧图像中对应的块的像素值是否相同;
Step2,在判断结果为是的情况下,对像素值相同的块标记预设标识;
Step3,在判断结果为否的情况下,每个预测块的像素值不变;其中,对每个预测块依据预设标识对应的分量进行编码,得到预测块编码码流。
具体的,对应待匹配图像中标记为预测块的块,对每个预测块的像素值中的三个分量的值分别和预设参考帧图像中对应的块的像素值中的三个分量的值进行比较,将分量值相同的标记为S,若分量值不同,则每个预测块各分量的像素值保持不变。相应的生成三个分量各自的预测块,且主颜色分量S占有较大比例,其中,对每个预测块采用基于主颜色分量的编码,由于预测块中主颜色分量S占用较大比例,可以充分利用该特性得到较好的压缩性能。
例如,参照图2,图2中的预测块为B8、B14、B15和B16,对上述块B8、B14、B15和B16中每个块的三个分量的值与参考帧A中同位置块A8、A14、A15和A16的三个分量的值进行比较,值相同则标记S。这里每个块的三个分量可以为YUV,其中,Y用于表示块亮度,U和V用于表示块色度。这里本申请实施例提供的分类仅以上述YUV为例,以实现本申请实施例提供的帧编码方法为准,具体不做限定,除此之外,三个分类还可以为RGB分量。
编码方式三:对帧内块编码。
可选的,步骤S108中对分类后的块进行编码包括:
Step1,在块为帧内块的情况下,对帧内块依据帧内编码进行编码,得到帧内块编码码流。
具体的,对于帧内块采用帧内编码方式进行编码,即,参照图2,对块B6、B7、B10、B11和B12进行帧内编码。
可选的,本申请实施例提供的帧编码方法还包括:
步骤S110,向解码端发送编码后的待匹配帧图像。
其中,向解码端发送编码后的待匹配帧图像包括:
Step1,将运动匹配块、预测块和帧内块的类型信息与运动匹配块编码码流、预测块编码码流和帧内块编码码流进行组合,得到复合码流;
Step2,向解码端发送复合码流。
综上,结合图2和图3,图4是根据本发明实施例的一种帧解码的方法的流程示意图,如图4所示,本申请实施例提供的帧解码的方法具体如下:
(1)获取桌面视频中的一帧B,如大小为32×32如果其为帧间模式则将其分成8*8的块,如图2所示,图像共分为16个块,B1到B16。
(2)当前帧B的每个块和参考帧A中的块进行比较,如果可以找到完全相同的块,记录此块的运动向量,并标记此块为运动匹配块,如B1和A1匹配,B2和A2匹配,B3和A3匹配,B4和A4匹配,B5和A5匹配,B9和A9匹配,B13和A13匹配。
(3)对于未匹配的块,判断当前块和参考帧中同位置块的相似性,当相似性大于门限T时,记录当前块为预测块,如块B8、B14、B15、B16。
(4)剩下的所有块标记为帧内块,如块B6、B7、B10、B11、B12。
(5)对于每个运动匹配块,如块B1、B2、B3、B4、B5、B9、B13只需编码其运动向量。
(6)对于每个预测块,如块B8、B14、B15、B16,将当前块的三个分量的值分别和参考帧中同位置块三个分量的值进行比较,值相同时特殊标记为S,否则当前块各个分量的像素值保持不变。相应的生成三个分量各自的预测块,且主颜色分量S占有较大的比例。
(7)对每个预测块,如块B8、B14、B15、B16,采用基于主颜色分量的编码,由于预测块中的主颜色分量S占有较大的比例,可充分利用该特性得到较好的压缩性能。
(8)对于帧内块,如块B6、B7、B10、B11、B12采用帧内编码方式。
(9)将块类型的辅助信息和三种块的编码码流组合为复合码流,传输到接收端。
(10)解码端对每个块的码流进行解码并合并解码图像。
本发明就是针对桌面视频压缩中的特性,设计了一种帧间压缩装置,较好的利用桌面视频帧间的特性,构造预测块,对此类型的块实现了较好的压缩编码,从而保证整个桌面视频系统具有较好的压缩性能。
实施例二
图5是根据本发明实施例的帧解码的方法的流程示意图,如图5所示,在解码设备侧,该方法包括如下步骤:
步骤S502,接收编码端发送的复合码流;
步骤S504,对复合码流进行解码,得到对应各个类型块的块码流;
步骤S506,依据块码流合成图像。
具体的,在解码设备侧,解码设备可以与编码设备为同一类设备,也可以为在接收端的显示设备,其中,对应实施例一中的编码过程,在解码设备对符合码流解码的过程中,得到对应各个类型块的块码流,最后依据各个块的块码流合成图像,即,在解码设备侧,最终合成的图像与图2将应该是相同的帧图像B,其中,依据解码后的各个块,由各个块合成图像。
本发明实施例中的帧解码的方法中,通过接收编码端发送的复合码流;对复合码流进行解码,得到对应各个类型块的块码流;依据块码流合成图像,达到了针对不同类型的块进行编码的目的,从而实现了降低编解码算法复杂度的技术效果,进而解决了相关技术中由于对屏幕视频图像采用每帧中的每个块都进行压缩,导致的编解码算法复杂度高的技术问题。
可选的,在复合码流包括各个类型块的类型信息和对应的块编码码流的情况下,步骤S504中对复合码流进行解码,得到对应各个类型块的块码流包括:
Step1,解析复合码流,得到对应各个类型块的类型信息和对应各个类型块的块编码码流;
Step2,依据预设解码规则分别对各个类型块的块编码码流进行解码,得到各个类型块;其中,各个类型块的类型信息包括以下至少之一:运动匹配块、预测块和帧内块;各个类型块的块编码码流包括以下至少之一:运动匹配块编码码流、预测块编码码流和帧内块编码码流。
实施例三
图6是根据本发明实施例的帧编码的装置的结构示意图,如图6所示,该装置包括:采集模块62、判断模块64、分类模块66和编码模块68,其中,
采集模块62,用于采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像;
判断模块64,用于判断待匹配帧图像中的每个块是否与预设参考帧图像中相同位置的块相同;
分类模块66,用于依据判断结果对待匹配帧图像中的每个块进行分类;
编码模块68,用于对分类后的块进行编码。
本发明实施例中的帧编码的装置中,通过采集待传输视频中的任一帧图像,并确定帧图像为待匹配帧图像;判断待匹配帧图像中的每个块是否与预设参考帧图像中相同位置的块相同;依据判断结果对待匹配帧图像中的每个块进行分类;对分类后的块进行编码,达到了针对不同类型的块进行编码的目的,从而实现了降低编解码算法复杂度的技术效果,进而解决了相关技术中由于对屏幕视频图像采用每帧中的每个块都进行压缩,导致的编解码算法复杂度高的技术问题。
可选的,采集模块62包括:提取单元,用于获取待传输视频中的任一帧图像;判断单元,用于判断帧图像的类型是否为预设的帧间模式;划分单元,用于在判断结果为是的情况下,将帧图像分为M×N的块,并将M×N的块确定为待匹配帧图像,其中,M和N为自然数。
进一步地,可选的,分类模块66包括:第一分类单元,用于在待匹配帧图像中的块与预设参考帧图像中的相同位置的块相同的情况下,标记与预设参考帧图像中的相同位置的块相同的为运动匹配块,并记录与预设参考帧图像中的相同位置的块相同的运动向量;第二分类单元,用于在待匹配帧图像中的块与预设参考帧图像中的块的相似性大于预设门限T的情况下,标记块为预测块;第三分类单元,用于在待匹配帧图像中的块分别被标记为运动匹配块和预测块之后,标记待匹配帧图像中的剩余块标记为帧内块。
可选的,编码模块68包括:第一编码单元,用于在块为运动匹配块的情况下,对每个运动匹配块中的运动向量进行编码,得到运动匹配块编码码流。
可选的,编码模块68包括:第一判断单元,用于在块为预测块的情况下,判断每个预测块的像素值是否与预测参考帧图像中对应的块的像素值是否相同;第二编码单元,用于在判断结果为是的情况下,对像素值相同的块标记预设标识;第三编码单元,用于在判断结果为否的情况下,每个预测块的像素值不变;其中,对每个预测块依据预设标识对应的分量进行编码,得到预测块编码码流。
可选的,编码模块68包括:第四编码单元,用于在块为帧内块的情况下,对帧内块依据帧内编码进行编码,得到帧内块编码码流。
可选的,本申请提供的帧编码的装置还包括:发送模块,用于向解码端发送编码后的待匹配帧图像;其中,向解码端发送编码后的待匹配帧图像包括:将运动匹配块、预测块和帧内块的类型信息与运动匹配块编码码流、预测块编码码流和帧内块编码码流进行组合,得到复合码流。
实施例四
图7是根据本发明实施例的帧解码的装置的结构示意图,如图7所示,该装置包括:接收模块72、解码模块74和图像合成模块76,其中,
接收模块72,用于接收编码端发送的复合码流;
解码模块74,用于对复合码流进行解码,得到对应各个类型块的块码流;
图像合成模块76,用于依据块码流合成图像。
本发明实施例中的帧解码的装置中,通过接收编码端发送的复合码流;对复合码流进行解码,得到对应各个类型块的块码流;依据块码流合成图像,达到了针对不同类型的块进行编码的目的,从而实现了降低编解码算法复杂度的技术效果,进而解决了相关技术中由于对屏幕视频图像采用每帧中的每个块都进行压缩,导致的编解码算法复杂度高的技术问题。
可选的,解码模块74包括:解析单元,用于在复合码流包括各个类型块的类型信息和对应的块编码码流的情况下,解析复合码流,得到对应各个类型块的类型信息和对应各个类型块的块编码码流;解码单元,用于依据预设解码规则分别对各个类型块的块编码码流进行解码,得到各个类型块;其中,各个类型块的类型信息包括以下至少之一:运动匹配块、预测块和帧内块;各个类型块的块编码码流包括以下至少之一:运动匹配块编码码流、预测块编码码流和帧内块编码码流。
实施例五
图8是根据本发明实施例的帧编解码的系统的结构示意图,如图8所示,该系统包括:编码设备82和解码设备84,编码设备82和解码设备84连接,其中,
编码设备,用于对待传输视频中的任一帧图像中的每个块进行分类,依据分类对帧图像中各个类型块进行对应编码,并将编码后的块码流发送至解码设备;解码设备,用于接收块码流,解析块码流得到各个类型块的类型信息和码流信息,依据类型信息和码流信息进行解码,并依据解码后的块码流合成图像;其中,编码设备包括上述又一个方面提供的帧编码的装置;解码设备包括上述再一个方面提供的帧解码的装置;
其中,编码设备82包括上述图6所示的帧编码的装置;解码设备84包括上述图7所示的帧解码的装置。
综上,本申请实施例提供的帧编解码的方法、装置和系统的目的是提供一种桌面视频压缩中的帧间编解码技术,针对传统桌面视频编解码器的局限和缺陷,实现较好的帧间编解码技术,无需特殊设备支持,对所有需要对桌面视频进行压缩的场合都适用。
其中,本申请实施例提供的帧编解码的方法、装置和系统,兼容性好,算法为软件实现可支持多类型移动终端,包括手机、pad等设备;其次,适应性广,算法为桌面视频帧间编码器,凡是屏幕共享系统都可应用;第三,性能好,构造出的预测块更好的利用了帧间的特性可得到更好的压缩性能。
实施例六
根据本发明另一实施例的一个方面,提供了一种存储介质,包括:存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行实施例一或实施例二中的帧编、解码的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。