专利名称:视频多帧预测编解码方法和装置的制作方法
技术领域:
本发明涉及视频编解码,尤其涉及一种视频多帧预测编解码方法和装置。
背景技术:
云计算是一种计算资源使用方式的新趋势。视频云计算(VCC,Video Cloud Computing)是多种云计算实现方法之一。一套视频云计算系统(VCCS,Video Cloud Computing System)框架的简略示意图如图1所示,其中,VEE(Video Encoding End)与 VDE(Video Decoding End)配套,实现对前端主机显示画面的编码、解码。目前VEE与VDE 中所用算法一般为国际上通用的视频编解码算法。但国际上通用的视频编解码算法一般是 针对真实场景中的视频画面进行编码的,而云计算中的编码画面为前端主机显示画面,其 中包括真实场景中的视频画面,也包括游戏画面、计算机普通操作画面等等类型,这与纯粹 的真实场景中的视频画面有相当不同。因此通用的视频编解码算法用在这种场合,压缩效 率不是最高的。根据相关视频编解码国际标准,如MPEG4、H. 264等,视频编解码算法大致分为帧 间编码、帧内编码、量化编码、变换编码、熵编码等若干重要部分。其中帧间编码是提高压缩 率的关键,其主要思想是利用相邻帧之间的冗余,用前面的帧预测后面的帧,然后对运动矢 量及残差进行其它后续编码。具体预测的方法是一个搜索匹配的过程使用当前帧中的每 一宏块MBc去与前帧画面进行搜索匹配,找到残差最小的块MBm,即为最佳匹配块,然后用 最佳匹配块MBm预测MBc,所得残差最小,后续压缩率就最高。发明人在实现本发明的过程中发现,帧间编码采用当前帧的前一帧画面预测当前 帧画面的方式,没有充分利用之前若干画面的冗余,更没有利用到计算机使用过程中重复 出现画面(下文简称复现帧)的冗余性,因此压缩效率较低。帧间编码采用当前帧前面相 连若干帧的画面预测当前帧画面的方式,计算增加量与压缩率提高量之比太大,并且也没 有充分利用到计算机使用过程中复现帧的冗余性,因此不够实用。
发明内容
本发明实施例提供一种视频多帧预测编解码方法和装置,以便在运算增加量较少 的条件下,提高视频帧间编码的压缩效率。一方面,本发明实施例提供一种视频多帧预测编码方法,所述方法包括编码初始 化完成后构建可能复现帧列表和参考帧列表,所述可能复现帧列表用于存放待编码视频画 面的缩略图数据及其编码后的完整重构帧数据,所述参考帧列表包含所述可能复现帧列表 和前帧重构画面数据;将采集到的每一个画面组GOP之内的待编码的第一帧视频画面编为 I帧,得到所述I帧的完整重构帧数据;对于采集到的所述GOP之内除所述待编码的第一帧 视频画面以外的其他待编码视频画面,如果编为P帧,则执行以下步骤从所述参考帧列表 中选择最佳参考帧,利用所述最佳参考帧将所述其他待编码视频画面编为P帧,将所述最 佳参考帧的编号放入所述P帧的编码码流中,得到所述P帧的完整重构帧数据;确定所述P帧是否为可能复现帧,如果是,则为所述P帧的原始画面创建缩略图,得到所述P帧的缩略 图数据;将所述P帧的缩略图数据和所述P帧的完整重构帧数据加入所述可能复现帧列表; 编码结束后执行结束化程序,并释放所述可能复现帧列表。另一方面,本发明实施例还提供一种视频多帧预测解码方法,所述方法包括解码 初始化完成后构建可能复现帧列表和参考帧列表,所述可能复现帧列表用于存放待解码视 频画面的压缩码流解码后的全帧数据,所述参考帧列表包含所述可能复现帧列表和前帧重 构画面数据;对获取到的每一个GOP之内的I帧进行解码;解析获取到的所述GOP之内的P 帧,获得最佳参考帧编号;根据所述最佳参考帧编号从所述参考帧列表中找到对应的最佳 参考帧对所述P帧进行解码。一方面,本发明实施例提供一种编码器,所述编码器包括采集单元,所述编码器还 包括构建单元,用于在编码初始化后构建可能复现帧列表和参考帧列表,所述可能复现帧 列表用于存放待解码视频画面的压缩码流解码后的全帧数据,所述参考帧列表包含所述可 能复现帧列表和前帧重构画面数据;第一编码单元,用于将所述采集单元采集到的每一个 GOP之内的待编码的第一帧视频画面编为I帧,获得所述I帧的完整重构帧数据;第二编码 单元,用于对所述采集单元采集到的所述GOP之内除所述待编码的第一帧视频画面以外的 其他待编码视频画面,如果编为P帧,则从所述参考帧列表中选择最佳参考帧,利用所述最 佳参考帧将所述其他待编码视频画面编为P帧,将所述最佳参考帧的编号放入所述P帧的 编码码流中,获得所述P帧的完整重构帧数据;第一处理单元,用于在所述P帧为可能复现 帧时,为所述P帧的原始画面创建缩略图,获得所述P帧的缩略图数据,并将所述P帧的缩 略图数据和所述P帧的完整重构帧数据加入所述可能复现帧列表;第二处理单元,用于在 解码结束后执行结束化程序,并释放所述可能复现帧列表。另一方面,本发明实施例还提供一种解码器,所述解码器包括获取单元,所述解码 器还包括构建单元,用于在解码初始化后构建可能复现帧列表和参考帧列表,所述可能复 现帧列表用于存放待解码视频画面的压缩码流解码后的全帧数据,所述参考帧列表包含所 述可能复现帧列表和前帧重构画面数据;第一解码单元,用于对所述获取单元获取到的每 一个GOP之内的I帧进行解码;第一解析单元,用于解析所述获取单元获取到的所述GOP之 内的P帧,获得最佳参考帧编号;第二解码单元,用于根据所述最佳参考帧编号从所述参考 帧列表中找到对应的最佳参考帧对所述P帧进行解码。通过本发明实施例提供的方法和装置,可以在运算增加量较少的条件下,提高视 频帧间编码的压缩效率。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不 构成对本发明的限定。在附图中图1为视频云计算系统架构示意图;图2为本发明实施例的视频多帧预测编码方法的流程图;图3A和图IBB为本发明实施例中从参考帧列表中选择最佳参考帧的方法流程图;图4为本发明实施例的视频多帧预测解码方法的流程图;图5为本发明实施例的编码器的组成框图6为本发明实施例的解码器的组成框图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附 图,对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本 发明,但并不作为对本发明的限定。图2为本发明实施例提供的一种视频多帧预测编码方法的流程图,请参照图2,该 方法包括步骤201 编码初始化完成后构建可能复现帧列表和参考帧列表,所述可能复现 帧列表用于存放待编码视频画面的缩略图数据及其编码后的完整重构帧数据,所述参考帧 列表包含所述可能复现帧列表和前帧重构画面数据;其中,前帧重构画面数据是指当前待编码视频画面的前一帧视频画面编码后的完 整重构帧数据。步骤202 将采集到的每一个GOP (Group Of Picture,画面组)之内的待编码的第 一帧视频画面编为I帧,得到所述I帧的完整重构帧数据;对于采集到的所述GOP之内除所述待编码的第一帧视频画面以外的其他待编码 视频画面,可以编为B帧,也可以编为P帧。如果要编为B帧,则可以按照现有技术的手段 实现,在此不再赘述;如果要编为P帧,则可以执行以下步骤步骤203 从所述参考帧列表中选择最佳参考帧,利用所述最佳参考帧将所述其 他待编码视频画面编为P帧,将所述最佳参考帧的编号放入所述P帧的编码码流中,得到所 述P帧的完整重构帧数据;步骤204 确定所述P帧是否为可能复现帧,如果是,则为所述P帧的原始画面创 建缩略图,得到所述P帧的缩略图数据;步骤205 将所述P帧的缩略图数据和所述P帧的完整重构帧数据加入所述可能 复现帧列表;步骤206 编码结束后执行普通结束化程序,并释放所述可能复现帧列表。在本实施例的步骤203,从所述参考帧列表中选择最佳参考帧,可以通过图3A或 图3B所示实施例的方法实现,请参照图3A和图3B,该方法包括步骤301 确定待编码视频画面的前一帧视频画面是否在所述可能复现帧列表 中,如果待编码视频画面的前一帧视频画面在所述可能复现帧列表中,则执行步骤302,否 则执行步骤303-307(图3A)或者步骤303,-307,(图;其中,可以通过该前一帧视频画面的编号确定该前一帧视频画面是否在可能复现 帧列表中。步骤302 确定所述前一帧视频画面对应的完整重构帧为最佳参考帧;步骤303 计算所述可能复现帧列表中每一幅缩略图的每一个像素值与待编码视 频画面的缩略图的相应行列的像素值的差的绝对值;步骤304 统计对应每一幅缩略图的所述绝对值中零的个数;步骤305 确定对应所有缩略图的所述绝对值中零的个数与所述缩略图的总象素 数的商中的最大值是否大于第一阈值,如果是,则执行步骤306,否则执行步骤307 ;
其中,该第一阈值可以通过来表示,例如70%或以上。步骤306 确定相应的缩略图对应的完整重构帧为最佳参考帧;步骤307 确定所述参考帧列表中的当前待编码视频画面的前一帧画面对应的完 整重构帧为最佳参考帧。步骤303’ 计算所述可能复现帧列表中每一幅缩略图的每一个像素值与待编码视 频画面的缩略图的相应行列的像素值的差的绝对值的和;步骤304’ 计算所述可能复现帧列表中每一幅缩略图的每一个像素值与待编码视 频画面的缩略图的相应行列的像素值的和;步骤305’ 确定对应所有缩略图的所述前者之和与所述后者之和的比值中的最小 值是否小于第二阈值,如果是,则执行步骤306,,否则执行步骤307’ ;其中,第二阈值可以通过来表示,例如10%或以下。步骤306’ 确定相应的缩略图对应的完整重构帧为最佳参考帧;步骤307’ 确定所述参考帧列表中的当前待编码视频画面的前一帧画面对应的完 整重构帧为最佳参考帧。在本实施例中,所有缩略图的宽高相同,也即,为所述P帧的原始画面创建的缩略 图的宽高,与所述待编码视频画面的缩略图的宽高都相同。在本实施例的步骤205,确定P帧是否为可能复现帧,可以通过P帧中的P块所占 的百分比来确定,如果P帧中P块所占百分比大于等于第三阈值,则确定该P帧为一般参考 帧;如果P帧中P块所占百分比小于第三阈值,则确定该P帧为可能复现帧。其中,第三阈 值可以通过来标识,例如30%或以下。其中,确定了 P帧是否为可能复现帧,就将该P帧是一般参考帧还是可能复现帧的 标志信息放入该P帧的编码码流中。在本实施例中,例如可以通过一个字节来标识,例如可 以通过“0”表示一般参考帧,“ 1,,表示可能复现帧。以上只是举例说明,本实施例并不以此 作为限制。在本实施例中,可能复现帧列表可以具有预设长度,例如为M,加入该可能复现帧 列表中的缩略图数据及其完整重构帧数据可以从预设值值开始编号,例如从m开始编号,m 可以未0或1,如果加入所述可能复现帧列表的缩略图数据及其完整重构帧数据的数量大 于该可能复现帧列表的预设长度,例如大于m+M-1,则去掉编号最小的缩略图数据及其完整 重构帧数据,并根据以上策略对所述可能复现帧列表中的缩略图数据及其完整重构帧数据 进行重新编号。为了使图2所示实施例的方法更加清楚易懂,以下结合具体实施方式
对本实施例 的方法进行详细说明。在本实施方式中,假设原始画面的宽高分别为W和H,则根据本实施 例的方法进行的编码流程包括Sl 按普通视频编码方法,执行相关初始化程序。其中,普通视频编码方法可以是目前常用的编码方法,例如H. 264, MPEG4等,本实 施例并不以此作为限制。其中,可以构建一个空的可能复现帧列表,该可能复现帧列表用于存放待编码视 频画面的原始缩略图数据和该待编码视频画面编码后的完整重构帧数据,以作为最佳参考 帧的选择参考。在本实施例中,假设此列表的最大长度为M。
其中,还可以构建一个参考帧列表,该参考帧列表包含前述可能复现帧列表,还包 含前帧重构画面数据,也即,该参考帧列表还用于存放当前待编码视频画面的前一帧视频 画面编码后的完整重构帧数据。S2 采集一个GOP之内的第一帧待编码的视频画面,在本实施例中称为第一帧视 频画面,按普通视频编码方法将该第一帧视频画面编为I帧。其中,将该第一帧视频画面编为I帧后,获得该I帧的完整重构帧数据。S3 采集该GOP之内的下一帧视频画面,在本实施例中,以将该下一帧视频画面编 为P帧为例,从所述参考帧列表中选择最佳参考帧,利用选择出的最佳参考帧将该下一帧 视频画面编为P帧,并将此最佳参考帧的编号放入编码码流,以便解码时使用。其中,该参考帧列表中还包括当前待编码视频画面的前一帧视频画面编码后的完 整重构帧数据,例如,当当前待编码视频画面为采集到的第二帧视频画面时,则该参考帧列 表中包含第一帧视频画面编码后的完整重构帧数据,也即包括所述I帧的完整重构帧数 据。其中,从参考帧列表中选择最佳参考帧可以通过多种方式实现,具体将在以下的 实施例中加以说明。其中,为了获得更好的参考效果,还要确定该P帧是否为可能复现帧,如果是,则 为该P帧的原始画面创建一个只要灰度值不要色度值的缩略图,为了描述方便,将该缩略 图的宽高记为W、h,由于将该下一幅视频画面编为P帧后得到了该P帧的完整重构帧数据, 这里将该P帧的缩略图数据与该P帧的完整重构帧数据一起放入可能复现帧列表。其中,确定该P帧是否为可能复现帧可以根据该P帧中的宏块中P块所占的百分 比来确定,例如,如果该P帧中的宏块中,P块所占百分比大于等于r%,则记录该P帧为一 般参考帧;如果该P帧中的宏块中P块所占百分比小于r%,也即超过(100-r) %的宏块都 是I块,则记录该P帧为可能复现帧。其中,还可以在该P帧的编码码流中放入该P帧是一 般参考帧还是可能复现帧的标志信息,可以通过一个字节的标识来实现,前述已经说明,在 此不再赘述。其中,加入可能复现帧列表的缩略图及其完整重构帧数据可以从m开始编号,以 后递增,直至该可能复现帧列表的最大值,也即m+M-1,如果可能复现帧列表已满,则去掉编 号最小的记录,该可能复现帧列表中的所有记录从m开始重新编排。S4 对于采集到的该GOP之内除第一帧视频画面以外的其他视频画面,如果要编 为P帧都利用步骤S3的方法进行编码和处理,如果要编为B帧,则可以通过现有技术的手 段实现,在此不再赘述。在本实施例中,对于采集到每一个GOP之内的视频画面,都按照步骤S2-S4进行处理。其中,在编码过程中,如果编到IDR(instantaneous decoding refresh,立即解码 刷新)帧,则清空参考帧列表,也即后续编码不再利用此次GOP之内编码过程中构建的参考 帧列表中的帧。如果没有编到IDR帧,也即仍在此GOP之内,则利用不断更新的可能复现帧 列表中的帧进行后续编码。其中,如果编码过程结束,则退出编码流程。S5 按照普通视频编码方法执行相关普通结束化程序,并释放可能复现帧列表。
在本实施方式的步骤S3中,从参考帧列表中选择最佳参考帧,可以通过如下方法 实现S31 如果待编码视频画面的前一帧视频画面在可能复现帧列表中,则确定该待编 码视频画面的前一帧视频画面即为最佳参考帧,选择结束;否则,执行如下步骤。其中,可以根据该前一帧视频画面的编号确定其是否在可能复现帧列表中,由于 在每一幅视频画面编码时,都有相应的编号,编码后的I帧或P帧也都有相应的编号,因此, 根据该编号,可以确定其是否在可能复现帧列表中。S32 为了描述方便,假设可能复现帧列表中的缩略图的编号为艮至艮+㈣。记视频 画面R第i行第j列像素值为1^_,i取值范围为0至h-1,j取值范围为0至w-1。为待编 码的视频画面进行下采样,创建一个缩略图C,宽、高为w、h。记画面C第i行第j列像素值 为Cu,i取值范围为0至h-1,j取值范围为0至w-1。S33:针对i取值从0至h-1,j取值从0至w-1,分别计算对应每一幅缩略图的 I Cij-Rij I,并统计其中零的个数,计为Zc0S34 记Zc/ (w*h)为L,则比较每一幅缩略图Rm... Rm^1对应的Lm- Lm^1中的最大 值,设该最大值为Lk,m < k < m+M-1,如果Lk大于,则确定Lk对应的&对应的完整重 构帧为最佳参考帧;如果Lk不大于q%,则仍以参考帧列表中的前一帧视频画面对应的完 整重构帧为最佳参考帧。其中,步骤S33和步骤S34可以分别通过步骤S33’和步骤S34’来实现,如下S33,对 I Cij-Rij | 求和,记为 D ;对 CyRij 求和,记为 A,记 D/A 为 J,Rm- Rm^1 分别 对应 Jm... Jm+M-1 οSIM’ 比较JfJlrtw,得其最小值,设结果为Jk,m彡k彡m+M-1,如果Jk小于t%, 则确定&为最佳参考帧;如果Jk不小于t%,则仍以参考帧列表中的前一帧视频画面对应 的完整重构帧为最佳参考帧。以上从参考帧列表中选择最佳参考帧的方式只是举例说明,本实施例并不以此作 为限制。通过本发明实施例的方法,在可接受的运算提高量之内,增加了视频编码的压缩 比,降低了带宽消耗,最终降低了 VCCS(Video Cloud Computing System,视频云计算系统) 的总体成本。与图2所示实施例的视频多帧预测编码方法对应,本发明实施例还提供一种视频 多帧预测解码方法。图4为本发明实施例提供的一种视频多帧预测解码方法的流程图,请参照图4,该 方法包括步骤401 解码初始化完成后构建可能复现帧列表和参考帧列表,所述可能复现 帧列表用于存放待解码视频画面的压缩码流解码后的全帧数据,所述参考帧列表包含所述 可能复现帧列表和前帧重构画面数据;其中,前帧重构画面数据是指当前待解码视频画面的压缩码流的前一帧视频画面 的压缩码流解码后的全帧数据。 步骤402 对获取到的每一个GOP之内的I帧进行解码; 对于获取到的该GOP之内的每一个P帧,按照以下方式进行解码和处理。
步骤403 解析获取到的所述GOP之内的P帧,获得最佳参考帧编号;步骤404 根据所述最佳参考帧编号从所述参考帧列表中找到对应的最佳参考帧 对所述P帧进行解码。在本实施例中,对于获取到的该GOP之内的每一个P帧,还可以执行以下步骤步骤405 解析所述P帧,获得标志信息;步骤406 根据所述标志信息确定所述P帧是否为可能复现帧,如果所述P帧为可 能复现帧,则将所述P帧解码后的全帧数据加入所述可能复现帧列表;步骤407 解码结束后执行普通结束化程序,释放所述可能复现帧列表。其中,本实施例并不限制步骤405和步骤406与步骤403和步骤404的先后顺序, 例如也可以在执行步骤403的同时执行步骤405,在执行步骤404的同时执行步骤406 ;或 者在执行步骤403和步骤404之后再执行步骤405和步骤406 ;或者,在执行步骤405和步 骤406之后再执行步骤403和步骤404。以上只是举例说明,本实施例并不以此作为限制。在本实施例中,与图2所示实施例的方法相似,该可能复现帧列表也具有预设长 度,例如为M,加入所述可能复现帧列表中的可能复现帧解码后的全帧数据从预设值开始编 号,例如从m开始编号,如果加入所述可能复现帧列表的可能复现帧解码后的全帧数据的 数量大于最大值,例如大于m+M-1,则去掉编号最小的可能复现帧解码后的全帧数据,并根 据以上策略对所述可能复现帧列表中的可能复现帧解码后的全帧数据进行重新编号。为了使图4所示实施例的方法更加清楚易懂,以下结合具体实施方式
对本实施例 的方法进行详细说明。在本实施方式中,假设原始画面的宽高分别为W和H,则根据本实施 例的方法进行的编码流程包括Sl 按普通视频解码方法,执行相关初始化程序。其中,普通视频解码方法与图2所示实施例的普通的视频编码方法对应,在此不 再赘述。其中,可以构建一个空的可能复现帧列表,该可能复现帧列表用于存放一幅画面 解码后的全帧数据,以作为最佳参考帧的选择参考。在本实施例中,假设此列表的最大长度 为M。其中,还可以构建一个参考帧列表,该参考帧列表包含前述可能复现帧列表,还包 含前帧重构画面数据,也即,该参考帧列表还用于存放当前待解码视频画面的前一帧视频 画面的压缩码流解码后的全帧数据。S2 获取一个GOP之内的待解码的第一帧视频画面压缩码流,也即前述的I帧,按 普通视频解码方法解码该I帧。S3 获取该GOP之内的待解码的下一帧视频画面压缩码流,如果该下一帧视频画 面被编为了 P帧,则可以解析该P帧得到最佳参考帧编号,利用该最佳参考帧编号从所述参 考帧列表中找出最佳参考帧,利用找出的最佳参考帧对该P帧进行解码。还可以解析该P 帧中的帧类型标志信息,如果根据该帧类型标志信息确定此P帧为可能复现帧,则将此P帧 解码后的全帧数据加入可能复现帧列表。其中,加入可能复现帧列表的数据的编号也可以从预设值m开始,以后递增,至该 可能复现帧列表的最大值m+M-1。如果可能复现帧列表已满,则去掉编号最小的记录,该可 能复现帧列表中的所有记录重新从固定值m开始编号。
S4 对于获取到的该GOP之内除所述I帧之外的其他待解码视频画面压缩码流,如 果该其他待解码视频画面被编为了 B帧,则可以按照现有技术的手段对该视频画面的压缩 码流进行解码,如果该其他待解码视频画面被编为了 P帧,则都利用步骤S3的方法进行相 应解码和处理。在本实施例中,对获取到的每一个GOP内的数据,都可以按照上述步骤S2-S4的方 式进行解码和处理。其中,在解码过程中,如果接收到IDR帧,也即一个GOP结束,则清空参考帧列表。 如果IDR帧没有出现,则可能复现帧列表一直存在,内部数据不断更新。其中,如果解码过程结束,则退出解码流程。S5 按普通视频解码方法执行相关普通结束化程序,并释放可能复现帧列表。以上只是举例说明,本实施例并不以此作为限制。通过本发明实施例的方法,在可接受的运算提高量之内,增加了视频编码的压缩 比,降低了带宽消耗,最终降低了 VCCS的总体成本。图5为本发明实施例提供的一种编码器的组成框图,请参照图5,该编码器除了包 括采集单元51以外,还包括构建单元52,用于在编码初始化后构建可能复现帧列表和参考帧列表,所述可能 复现帧列表用于存放待解码视频画面的压缩码流解码后的全帧数据,所述参考帧列表包含 所述可能复现帧列表和前帧重构画面数据;第一编码单元53,用于将采集单元51采集到的每一个GOP之内的待编码的第一帧 视频画面编为I帧,获得所述I帧的完整重构帧数据;第二编码单元M,用于对采集单元51采集到的所述GOP之内除所述待编码的第一 帧视频画面以外的其他待编码视频画面,如果编为P帧,则从所述参考帧列表中选择最佳 参考帧,利用所述最佳参考帧将所述其他待编码视频画面编为P帧,将所述最佳参考帧的 编号放入所述P帧的编码码流中,获得所述P帧的完整重构帧数据;第一处理单元55,用于在所述P帧为可能复现帧时,为所述P帧的原始画面创建缩 略图,获得所述P帧的缩略图数据,并将所述P帧的缩略图数据和所述P帧的完整重构帧数 据加入所述可能复现帧列表;第二处理单元56,用于在编码结束后执行普通结束化程序,并释放所述可能复现 帧列表。在一个实施例中,第二编码单元M可以包括判断模块M1,用于判断待编码视频画面的前一帧视频画面是否在所述可能复现 帧列表中;确定模块M2,用于在判断模块Ml的判断结果为待编码视频画面的前一帧视频 画面在所述可能复现帧列表中时,确定所述前一帧视频画面对应的完整重构帧为最佳参考 帧;所述确定模块542还用于在判断模块541的判断结果为待编码视频画面的前一帧 视频画面不在所述可能复现帧列表中时,计算所述可能复现帧列表中每一幅缩略图的每一 个像素值与待编码视频画面的缩略图的相应行列的像素值的差的绝对值,统计对应每一幅 缩略图的所述绝对值中零的个数,如果对应所有缩略图的所述绝对值中零的个数与所述缩略图的总象素数的商中的最大值大于q%,则确定相应的缩略图对应的完整重构帧为最佳 参考帧;如果对应所有缩略图的所述绝对值中零的个数与所述缩略图的总象素数的商中的 最大值不大于q%,则确定所述参考帧列表中的当前待编码视频画面的前一帧视频画面对 应的完整重构帧为最佳参考帧;或者所述确定模块542还用于在判断模块541的判断结果为待编码视频画面的前一帧 视频画面不在所述可能复现帧列表中时,计算所述可能复现帧列表中每一幅缩略图的每一 个像素值与待编码视频画面的缩略图的相应行列的像素值的差的绝对值的和,以及计算所 述可能复现帧列表中每一幅缩略图的每一个像素值与待编码视频画面的缩略图的相应行 列的像素值的和,如果对应所有缩略图的前者之和与后者之和的比值中的最小值小于t%, 则确定相应的缩略图对应的完整重构帧为最佳参考帧;如果对应所有缩略图的前者之和与 后者之和的比值中的最小值不小于t%,则确定所述参考帧列表中的当前待编码视频画面 的前一帧视频画面对应的完整重构帧为最佳参考帧。在本实施例中,第一处理单元55为所述P帧的原始画面创建的缩略图的宽高,与 所述待编码视频画面的缩略图的宽高相同。在一个实施例中,第一处理单元55具体用于在所述P帧中P块所占百分比大于等 于时,确定所述P帧为一般参考帧;在所述P帧中P块所占百分比小于时,确定所述 P帧为可能复现帧。该第一处理单元55还用于将所述P帧是一般参考帧或者可能复现帧的 标志信息放入所述P帧的编码码流中。本实施例的编码器的各组成部分分别用于实现图2所示实施例的方法的各步骤, 由于在图2所示实施例中,已经对各步骤进行了详细说明,在此不再赘述。通过本发明实施例的编码器,在可接受的运算提高量之内,增加了视频编码的压 缩比,降低了带宽消耗,最终降低了 VCCS的总体成本。图6为本发明实施例提供的一种解码器的组成框图,请参照图6,该解码器除了包 括获取单元61以外,还包括构建单元62,用于在解码初始化后构建可能复现帧列表和参考帧列表,所述可能 复现帧列表用于存放待解码视频画面的压缩码流解码后的全帧数据,所述参考帧列表包含 所述可能复现帧列表和前帧重构画面数据;第一解码单元63,用于对获取单元61获取到的每一个GOP之内的I帧进行解码;第一解析单元64,用于解析获取单元61获取到的所述GOP之内的P帧,获得最佳 参考帧编号;第二解码单元65,用于根据所述最佳参考帧编号从所述参考帧列表中找到对应的 最佳参考帧对所述P帧进行解码。在一个实施例中,该解码器还包括第二解析单元66,用于解析所述P帧,获得标志信息;判断单元67,用于根据所述标志信息确定所述P帧是否为可能复现帧;第一处理单元68,用于在所述P帧为可能复现帧时,将所述P帧解码后的全帧数据 加入所述可能复现帧列表;第二处理单元69,用于在解码结束化执行普通结束化程序,释放所述可能复现帧 列表。
本实施例的解码器的各组成部分分别用于实现图4所示实施例的方法的各步骤, 由于在图4所示实施例中,已经对各步骤进行了详细说明,在此不再赘述。通过本发明实施例的解码器,在可接受的运算提高量之内,增加了视频编码的压 缩比,降低了带宽消耗,最终降低了 VCCS的总体成本。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执 行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存 储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术 领域内所公知的任意其它形式的存储介质中。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保 护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本 发明的保护范围之内。
权利要求
1.一种视频多帧预测编码方法,其特征在于,所述方法包括编码初始化完成后构建可能复现帧列表和参考帧列表,所述可能复现帧列表用于存放 待编码视频画面的缩略图数据及其编码后的完整重构帧数据,所述参考帧列表包含所述可 能复现帧列表和前帧重构画面数据;将采集到的每一个画面组GOP之内的待编码的第一帧视频画面编为I帧,得到所述I 帧的完整重构帧数据;对于采集到的所述GOP之内除所述待编码的第一帧视频画面以外的其他待编码视频 画面,如果编为P帧,则执行以下步骤从所述参考帧列表中选择最佳参考帧,利用所述最佳参考帧将所述其他待编码视频画 面编为P帧,将所述最佳参考帧的编号放入所述P帧的编码码流中,得到所述P帧的完整重 构帧数据;确定所述P帧是否为可能复现帧,如果是,则为所述P帧的原始画面创建缩略图,得到 所述P帧的缩略图数据;将所述P帧的缩略图数据和所述P帧的完整重构帧数据加入所述可能复现帧列表; 编码结束后执行结束化程序,释放所述可能复现帧列表。
2.根据权利要求1所述的方法,其特征在于,从所述参考帧列表中选择最佳参考帧,包括确定待编码视频画面的前一帧视频画面是否在所述可能复现帧列表中; 如果待编码视频画面的前一帧视频画面在所述可能复现帧列表中,则确定所述前一帧 视频画面对应的完整重构帧为最佳参考帧;如果待编码视频画面的前一帧视频画面不在所述可能复现帧列表中,则计算所述可能 复现帧列表中每一幅缩略图的每一个像素值与待编码视频画面的缩略图的相应行列的像 素值的差的绝对值,统计对应每一幅缩略图的所述绝对值中零的个数,如果对应所有缩略 图的所述绝对值中零的个数与所述缩略图的总象素数的商中的最大值大于第一阈值,则确 定相应的缩略图对应的完整重构帧为最佳参考帧;如果对应所有缩略图的所述绝对值中零 的个数与所述缩略图的总象素数的商中的最大值不大于所述第一阈值,则确定所述参考帧 列表中的当前待编码视频画面的前一帧视频画面对应的完整重构帧为最佳参考帧;或者如果待编码视频画面的前一帧视频画面不在所述可能复现帧列表中,则计算所述可能 复现帧列表中每一幅缩略图的每一个像素值与待编码视频画面的缩略图的相应行列的像 素值的差的绝对值的和,以及计算所述可能复现帧列表中每一幅缩略图的每一个像素值与 待编码视频画面的缩略图的相应行列的像素值的和,如果对应所有缩略图的前者之和与后 者之和的比值中的最小值小于第二阈值,则确定相应的缩略图对应的完整重构帧为最佳参 考帧;如果对应所有缩略图的前者之和与后者之和的比值中的最小值不小于所述第二阈 值,则确定所述参考帧列表中的当前待编码视频画面的前一帧视频画面对应的完整重构帧 为最佳参考帧。
3.根据权利要求2所述的方法,其特征在于,为所述P帧的原始画面创建的缩略图的长 宽,与所述待编码视频画面的缩略图的长宽相同。
4.根据权利要求1所述的方法,其特征在于,确定所述P帧是否为可能复现帧,具体包括如果所述P帧中P块所占百分比大于等于第三阈值,则确定所述P帧为一般参考帧;如果所述P帧中P块所占百分比小于所述第三阈值,则确定所述P帧为可能复现帧。
5.根据权利要求4所述的方法,其特征在于,确定所述P帧是否为可能复现帧之后,所 述方法还包括将所述P帧是一般参考帧或者可能复现帧的标志信息放入所述P帧的编码码流中。
6.根据权利要求1所述的方法,其特征在于,所述可能复现帧列表具有预设长度,加入 所述可能复现帧列表中的缩略图数据及其完整重构帧数据从预设值开始编号,如果加入所 述可能复现帧列表的缩略图数据及其完整重构帧数据的数量大于所述可能复现帧列表的 预设长度,则去掉所述可能复现帧列表中编号最小的缩略图数据及其完整重构帧数据,并 根据以上策略对所述可能复现帧列表中的缩略图数据及其完整重构帧数据进行重新编号。
7.一种视频多帧预测解码方法,其特征在于,所述方法包括解码初始化完成后构建可能复现帧列表和参考帧列表,所述可能复现帧列表用于存放 待解码视频画面的压缩码流解码后的全帧数据,所述参考帧列表包含所述可能复现帧列表 和前帧重构画面数据;对获取到的每一个GOP之内的I帧进行解码;解析获取到的所述GOP之内的P帧,获得最佳参考帧编号;根据所述最佳参考帧编号从所述参考帧列表中找到对应的最佳参考帧对所述P帧进 行解码。
8.根据权利要求7所述的方法,其特征在于,解析获取到的所述GOP之内的P帧,获得 最佳参考帧编号之后,所述方法还包括解析所述P帧,获得标志信息;根据所述标志信息确定所述P帧是否为可能复现帧;如果所述P帧为可能复现帧,则将所述P帧解码后的全帧数据加入所述可能复现帧列表;解码结束后执行结束化程序,释放所述可能复现帧列表。
9.根据权利要求7所述的方法,其特征在于,所述可能复现帧列表具有预设长度,加入 所述可能复现帧列表中的可能复现帧解码后的全帧数据从预设值开始编号,如果加入所述 可能复现帧列表的可能复现帧解码后的全帧数据的数量大于所述可能复现帧列表的预设 长度的最大值,则去掉所述可能复现帧列表中编号最小的可能复现帧解码后的全帧数据, 并根据以上策略对所述可能复现帧列表中的可能复现帧解码后的全帧数据进行重新编号。
10.一种编码器,所述编码器包括采集单元,其特征在于,所述编码器还包括构建单元,用于在编码初始化后构建可能复现帧列表和参考帧列表,所述可能复现帧 列表用于存放待编码视频画面的缩略图数据及其编码后的完整重构帧数据,所述参考帧列 表包含所述可能复现帧列表和前帧重构画面数据;第一编码单元,用于将所述采集单元采集到的每一个GOP之内的待编码的第一帧视频 画面编为I帧,获得所述I帧的完整重构帧数据;第二编码单元,用于对所述采集单元采集到的所述GOP之内除所述待编码的第一帧视 频画面以外的其他待编码视频画面,如果编为P帧,则从所述参考帧列表中选择最佳参考 帧,利用所述最佳参考帧将所述其他待编码视频画面编为P帧,将所述最佳参考帧的编号放入所述P帧的编码码流中,获得所述P帧的完整重构帧数据;第一处理单元,用于在所述P帧为可能复现帧时,为所述P帧的原始画面创建缩略图, 获得所述P帧的缩略图数据,并将所述P帧的缩略图数据和所述P帧的完整重构帧数据加 入所述可能复现帧列表;第二处理单元,用于在编码结束后执行结束化程序,释放所述可能复现帧列表。
11.根据权利要求10所述的编码器,其特征在于,所述第二编码单元包括判断模块,用于判断待编码视频画面的前一帧视频画面是否在所述可能复现帧列表中;确定模块,用于当所述判断模块的判断结果为待编码视频画面的前一帧视频画面在所 述可能复现帧列表中时,确定所述前一帧视频画面对应的完整重构帧为最佳参考帧;其中,所述确定模块还用于当所述判断模块的判断结果为待编码视频画面的前一帧视 频画面不在所述可能复现帧列表中时,计算所述参考帧列表中每一幅缩略图的每一个像素 值与待编码视频画面的缩略图的相应行列的像素值的差的绝对值,统计对应每一幅缩略图 的所述绝对值中零的个数,如果对应所有缩略图的所述绝对值中零的个数与所述缩略图的 总象素数的商中的最大值大于第一阈值,则确定相应的缩略图对应的完整重构帧为最佳参 考帧;如果对应所有缩略图的所述绝对值中零的个数与所述缩略图的总象素数的商中的最 大值不大于所述第一阈值,则确定所述参考帧列表中当前待编码视频画面的前一帧视频画 面对应的完整重构帧为最佳参考帧;或者,所述确定模块还用于当所述判断模块的判断结果为待编码视频画面的前一帧视 频画面不在所述可能复现帧列表中时,计算所述可能复现帧列表中每一幅缩略图的每一个 像素值与待编码视频画面的缩略图的相应行列的像素值的差的绝对值的和,以及计算所述 可能复现帧列表中每一幅缩略图的每一个像素值与待编码视频画面的缩略图的相应行列 的像素值的和,如果对应所有缩略图的前者之和与后者之和的比值中的最小值小于第二阈 值,则确定相应的缩略图对应的完整重构帧为最佳参考帧;如果对应所有缩略图的前者之 和与后者之和的比值中的最小值不小于所述第二阈值,则确定所述参考帧列表中当前待编 码视频画面的前一帧视频画面对应的完整重构帧为最佳参考帧。
12.根据权利要求11所述的编码器,其特征在于,所述第一处理单元为所述P帧的原始 画面创建的缩略图的长宽,与所述待编码视频画面的缩略图的长宽相同。
13.根据权利要求10所述的编码器,其特征在于,所述第一处理单元具体用于在所述P 帧中P块所占百分比大于等于第三阈值时,确定所述P帧为一般参考帧;在所述P帧中P块 所占百分比小于所述第三阈值时,确定所述P帧为可能复现帧。
14.根据权利要求13所述的编码器,其特征在于,所述第一处理单元还用于将所述P帧 是一般参考帧或者可能复现帧的标志信息放入所述P帧的编码码流中。
15.一种解码器,所述解码器包括获取单元,其特征在于,所述解码器还包括构建单元,用于在解码初始化后构建可能复现帧列表和参考帧列表,所述可能复现帧 列表用于存放待解码视频画面的压缩码流解码后的全帧数据,所述参考帧列表包含所述可 能复现帧列表和前帧重构画面数据;第一解码单元,用于对所述获取单元获取到的每一个GOP之内的I帧进行解码;第一解析单元,用于解析所述获取单元获取到的所述GOP之内的P帧,获得最佳参考帧编号;第二解码单元,用于根据所述最佳参考帧编号从所述参考帧列表中找到对应的最佳参 考帧对所述P帧进行解码。
16.根据权利要求15所述的解码器,其特征在于,所述解码器还包括 第二解析单元,用于解析所述P帧,获得标志信息; 判断单元,用于根据所述标志信息确定所述P帧是否为可能复现帧; 第一处理单元,用于在所述P帧为可能复现帧时,将所述P帧解码后的全帧数据加入所 述可能复现帧列表;第二处理单元,用于在解码结束后执行结束化程序,释放所述可能复现帧列表。
全文摘要
一种视频多帧预测编解码方法和装置,该编码方法包括编码初始化后构建可能复现帧列表和参考帧列表;将采集到的每一个GOP之内的待编码的第一帧视频画面编为I帧,得到该I帧的完整重构帧数据;对于采集到的所述GOP之内的其他待编码视频画面,若编为P帧,则执行以下步骤从所述参考帧列表中选择最佳参考帧,利用最佳参考帧将其他待编码视频画面编为P帧,将最佳参考帧的编号放入该P帧的编码码流中,得到该P帧的完整重构帧数据;确定该P帧是否为可能复现帧,若是,为该P帧的原始画面创建缩略图,得到该P帧的缩略图数据;将该P帧的缩略图数据和该P帧的完整重构帧数据加入所述可能复现帧列表;执行编码结束化程序释放可能复现帧列表。
文档编号H04N7/32GK102075756SQ20111003029
公开日2011年5月25日 申请日期2011年1月27日 优先权日2011年1月27日
发明者李闯, 牛长锋 申请人:北京视博云科技有限公司