视频编码中快速的模式确定方法和装置转让专利

申请号 : CN200710048114.3

文献号 : CN100591132C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王淑慧林涛

申请人 : 同济大学

摘要 :

本发明提出一种视频编码中快速的模式确定方法和装置,用于在视频编码中采用多编码模式时快速确定最佳模式,首先计算空码模式,若其成本函数值小于某成本函数阈值TRD,则最佳模式为空码模式。否则判断16x16模式的所有16个4x4参差块是否均为能量很小的块,若是,则在空码模式和16x16模式中选择最佳模式,否则计算16x16、16x8、8x16、8x8四种模式并在已计算的模式中选择一个准最佳模式。若此准最佳模式不是8x8模式,则停止搜索,此准最佳模式就是最终的最佳模式。否则,若8x8模式对应的16个4x4参差块的能量都很小,则8x8模式为最终的最佳模式,否则在其余的模式中继续搜索最佳模式。本发明可有效降低确定最佳模式的过程的复杂度,减少计算量。便于硬件实现。

权利要求 :

1、一种视频编码中快速的模式确定方法,其特征在于包括以下步骤:

步骤1、计算SKIP模式的成本函数值;

步骤2、从成本函数值缓存区中取出前一幅图像中与当前编码宏块同样位置宏块的最佳模 式的成本函数值TRD(prev);

步骤3、根据最近编码过的图像中所有SKIP模式的成本函数值小于各自对应阈值TRD的宏 块个数与一幅图像包含总宏块数之比β与所述TRD(prev)确定TRD(curr),TRD指最近编码过的 图像的前一幅图像中与当前编码宏块同样位置宏块的最佳模式的成本函数值,TRD(curr)指当 前编码图像中宏块采用SKIP模式时的成本函数的阈值;比较步骤1所得SKIP模式的成本函 数值与TRD(curr)的大小,若步骤1所得SKIP模式的成本函数值小于TRD(curr),则SKIP 模式为最佳模式,跳到步骤12,否则执行步骤4;

步骤4、对16x16模式进行运动估计;

步骤5、计算0.95*((2qbits-f)/QE[qprem][0][0]),其中qbits=15+QP/6,qprem=QP%6,f =2qbits/6, QE [ qp rem ] [ 0 ] [ 0 ] = 2 qbits - 2 Qstep , QP是量化参数,取0~51内的任何一个整数,Qstep 是量化步长;

步骤6、根据运动估计中得到的16个4x4参差块中参差数据的绝对值之和 判断16个4x4参差块是否全部满足 Σ i = 0 3 Σ j = 0 3 | x ( i , j ) | < 0.95 * ( ( 2 qbits - f ) / QE [ qp rem ] [ 0 ] [ 0 ] ) , 若满足则 计算16x16模式的成本函数值,在SKIP模式和16x16模式中确定成本函数值最小者为最佳模 式,跳到步骤12,否则对16x8、8x16、8x8模式进行运动估计并计算16x16、16x8、8x16、 8x8四种模式的成本函数值,然后继续执行步骤7;

步骤7、在已编码的所有模式中选择成本函数值最小的模式,若此模式不是8x8模式,则 确定此模式为最佳模式,跳到步骤12,否则继续执行步骤8;

步骤8、根据8x8模式的运动估计中得到的16个4x4参差块中参差数据的绝对值之和 判断8x8模式的16个4x4的参差块是否全都满足 Σ i = 0 3 Σ j = 0 3 | x ( i , j ) | < 0.95 * ( ( 2 qbits - f ) / QE [ qp rem ] [ 0 ] [ 0 ] ) , 若满足则确定8x8模式为最佳模式,跳到 步骤12,否则继续执行步骤9;

步骤9、分别对宏块中的4个8x8块的细划分模式进行运动估计,所述8x8块的细划分模 式包括8x8、8x4、4x8及4x4,计算各自的成本函数值并从中选出成本函数值最小的一个模式, 从而确定整个宏块所对应的编码模式P8x8;

步骤10、对各种帧内模式进行预测编码;

步骤11、计算P8x8模式及各种帧内预测模式的成本函数值,从中确定成本函数值最小的 模式为最佳模式;

步骤12、最佳模式确定过程结束。

2、一种视频编码中快速的模式确定装置,该装置采用如权利要求1所述的视频编码中快 速的模式确定方法,其特征在于包括:

SKIP模式的运动矢量计算模块,用于计算SKIP模式的运动矢量;

成本函数值计算模块,接受各运动矢量计算和估计模块、帧内预测模块以及参考帧存储 模块所提供的数据,用于计算不同编码模式的成本函数值;

SKIP模式的成本函数值与成本函数阈值比较模块,输入端与成本函数值计算模块和SKIP 模式的成本函数阈值计算模块相连,接受已经计算得到的SKIP模式的成本函数值,并将其与 成本函数阈值TRD(curr)进行比较,以决定SKIP模式是否就是最佳模式,如果是,则不再进 行其他模式的运动估计、预测及RD最优化;

SKIP模式的成本函数阈值计算模块,计算用于当前编码宏块的SKIP模式的成本函数阈 值TRD(curr),包括以下两个单元:

一、一幅图像中SKIP模式的宏块个数累加单元,其输入端与成本函数值比较和最佳模式 确定模块相连,如果最佳模式是SKIP模式,则累加SKIP模式的宏块个数;

二、成本函数阈值与比例因子相乘单元,其输入端与最佳成本函数值缓存模块与一幅图 像中SKIP模式的宏块个数累加单元相连,接受前一幅编码图像中同样位置宏块的最佳模式对 应的成本函数值以及前一幅图像中SKIP模式的宏块个数累加单元的结果,计算用于当前编码 宏块的SKIP模式的成本函数阈值TRD(curr);

最佳成本函数值缓存模块,其输入端与成本函数值比较和最佳模式确定模块相连,存储 最佳模式的成本函数值;

参考帧存储模块,用于存储各参考帧,提供参考图像数据给运动矢量估计模块和成本函 数值计算模块;

运动矢量估计模块,用于在参考帧内搜索与当前编码块最匹配的块,包括以下单元:

一、16x16模式的运动估计单元,用来对16x16的划分方式进行运动估计;

二、16x8、8x16及8x8模式的运动估计单元,用来对16x8、8x16及8x8的划分方式进行 运动估计;

三、8x4、4x8及4x4模式的运动估计单元,用来对8x4、4x8及4x4的划分方式进行运动 估计;

成本函数值暂存模块,其输入端与成本函数值计算模块相连,接受并暂存所有参与RD优 化的各种模式的成本函数值,在需要的时候随时把这些数值提供给成本函数值比较和最佳模 式确定模块;

用于判别16个4x4的参差块的能量大小判别模块,包括以下单元:

一、0.95*((2qbits-f)/QE[qprem][0][0])计算单元,用来计算0.95*((2qbits-f)/QE[qprem][0][0]);

二、16个4x4的参差块是否全部满足 Σ i = 0 3 Σ j = 0 3 | x ( i , j ) | < 0.95 * ( ( 2 qbits - f ) / QE [ qp rem ] [ 0 ] [ 0 ] ) 判别 单元,该单元与运动矢量估计模块相连,用来判断16x16模式及8x8模式的所有16个4x4的 参差块是否全部满足 Σ i = 0 3 Σ j = 0 3 | x ( i , j ) | < 0.95 * ( ( 2 qbits - f ) / QE [ qp rem ] [ 0 ] [ 0 ] ) , 以决定是否继续进行其余 模式的运动估计和计算;

帧内预测模块,用于在完成P8x8模式的编码后,进行各种帧内模式的预测编码;

成本函数值比较和最佳模式确定模块,其输入端与SKIP模式的成本函数值与成本函数阈 值比较模块、用于判别16个4x4的参差块的能量大小判别模块和成本函数值暂存模块相连, 用于根据这些模块提供的结果,比较各种模式的成本函数值,确定每个宏块的最佳编码模式。

说明书 :

技术领域

本发明涉及到视频编码系统采用多模式编码时的编码过程,特别是涉及到确定最佳帧间 模式的方法和装置。

背景技术

在许多视频压缩标准(如H.264)中,为了获得更好的压缩效果,广泛采用了多模式 (multi-mode)的编码方法。如H.264中采用了帧内(intra)编码和帧间(inter)编码方 法,而帧内编码和帧间编码又进一步细分为各种不同的编码子模式。在众多模式中选择最佳 模式的准则是码率-失真最优化,简写为RD最优化(RD optimization),其中R代表码率 (bit-rate),即编码所用的位数(比特数),D代表编码失真(Distortion)。RD最优化 是通过一个RD成本函数(或简称成本函数)实现的。对应每种编码模式都有相应的成本函数 值,而取得最小成本函数值的模式即为最佳模式。通过采用RD最优化的方法,可在复原图像 质量和压缩效率之间做一个最好的折中,但在多种编码模式中搜索最佳模式的过程明显增加 了编码器的复杂性和计算量。
图像按宏块编码的方式:
在视频压缩标准中,一幅图像被分成宏块(macroblock)组,宏块是16x16(像素)大小 的正方形区域。如图1所示,以176x144大小的图像为例,一幅图像共包含99个宏块。
编码模式介绍:
视频压缩的可行性主要基于视频序列本身的特点。对视频序列来说,同一幅图像的邻近 像素之间具有很强的空间相关性,而相继图像之间则具有很强的时间相关性,于是可采用合 适的方法去除这种相关性,达到压缩数据的目的。在视频压缩标准中广泛采用的方法为预测 编码,即用以前已编码过的像素来预测当前编码块的像素值,得到预测块,然后算出由当前 编码块与预测块的差值构成的预测误差块,接下来对预测误差块进行后续的编码过程,即变 换编码和量化以及熵编码。在此作以下三个定义:
1、原始编码块中的像素与对应预测块中相应位置像素的差值称为参差。
2、原始编码块与对应预测块的差值构成的预测误差块称参差块。
3、参差块包含的各个数值称为参差数据。
相比原始编码块而言,参差块具有较小的相关性和较低的能量,因此对其编码所用的比 特数比对原始编码块直接编码明显减少。预测编码的分类从大的方面讲有两种,即帧内 (intra)预测及帧间(inter)预测。帧内预测用同一幅图像内已编过码的邻近块内的像素 来预测当前编码块的内容,而帧间预测则是用时间上邻近的其他编码过的图像(称为参考图 像)内的像素块来预测当前编码块的内容,在此我们称通过帧间预测得到的预测块为帧间预 测块,而通过帧内预测得到的预测块为帧内预测块。对帧间预测来说,在已编码过的图像中 搜索与当前块最匹配的块的过程称为运动估计,运动估计主要是为了得到当前块在参考图像 内的最匹配的位置,指示其相对位置的矢量称为运动矢量。在运动估计过程中,每个宏块还 可进一步划分为更小的子块,对每个子块都要搜索最匹配块,所以划分子块的个数越多,搜 索的过程越复杂。每一种划分方法称为一种编码模式,可以有图2所示的划分方法。
图2中,16x16大小的宏块进一步划分为不同大小的子块,图2(b)中对应两个16x8的 划分,而图2(c)中对应两个8x16的划分,而图2(d)中对应四个8x8的划分,其中每个 8x8的模式可以继续细划分为两个8x4,两个4x8,四个4x4的块,分别如图2(e),(f)和 (g)所示,在此所有的图2(d)、(e)、(f)和(g)我们统称为P8x8模式。对每个子块都要 进行运动估计,对每种模式(划分方式)都要计算其成本函数的值,而具有最小成本函数值 的模式即为最佳模式,所以对于划分模式和参考图像数相对较多的编码标准来说,模式选择 是一个非常复杂和计算量很大的过程。
另外,在视频压缩标准(如H.264)中,为了简化有全局运动或近似静止区域的视频的编 码,提出了复杂度相对较低的帧间模式,如空码模式,这种模式采用的是16x16大小的宏块, 其最匹配块所用的参考图像为时间上最邻接的图像,运动矢量则是由当前宏块的邻近宏块的 运动矢量或参考图像内对应位置宏块的运动矢量经过某种计算后得到的。因此,对空码模式, 码流中不需要消耗任何比特数来表示此宏块的信息,如参考图像、运动矢量、参差数据等。 这种模式不需要运动估计,也不需要编码运动信息,所以是一种相对简单的编码模式。H.264 中P类型编码图像的SKIP模式和B类型编码图像的DIRECT16x16模式,以及MPEG4中的NOT CODED模式等都属于空码模式。
目前已公开的H.264参考软件中对P类型编码图像模式确定方法的步骤如下:
步骤1,对宏块的不同划分方式(模式),进行运动估计,得到最匹配参考图像和运动矢 量;
步骤2,对SKIP模式计算运动矢量;
步骤3,对所有的编码模式进行RD优化,即选择RD成本函数最小的模式为最佳模式;
上述模式确定方法的流程图如图3所示。
上述模式确定方法所应用的装置示意图如图4所示,整个装置由以下6个模块组成:
运动估计模块,接受输入的要编码的宏块数据,对应每种编码模式,在参考图像内搜索 当前编码块的最匹配的块;
参考帧和运动矢量存储模块,用于存储每种编码模式所对应的最匹配的参考图像和运动 矢量;
SKIP模式的运动矢量计算模块,用于计算SKIP模式的运动矢量;
成本函数计算模块,用于计算不同编码模式的成本函数值;
成本函数比较模块,用于比较各种模式的成本函数值;
最佳模式确定模块,在所有参与RD优化的模式中确定具有最小成本函数值的模式为最佳 模式。
这些现有技术的相关资料有:ITU-T(国际电信联盟)的视频编码专家组VCEG(video coding experts group)和ISO/IEC(国际标准化组织)的运动图像专家组MPEG(moving picture experts group)共同组建的联合视频组(Joint Video Team)参考软件JM85版本。
对这些现有技术,在帧间预测过程中,除空码模式外,所有其他划分模式都要进行运动 估计,以选择最匹配参考图像和对应的运动矢量,对空码模式,运动矢量要经过相应的运算, 然后对所有的编码模式进行RD最优化,其中R代表码率(bit-rate),即编码参差数据及其 他相关辅助信息所用的位数(比特数),D代表失真(Distortion),是当前编码块与解码后 的复原块对应像素的差值的平方和,由此可见,当编码模式相对较多时,对所有模式遍历一 遍以确定最佳模式的过程具有相当的复杂度,需要庞大的计算量。

发明内容

本发明的目的在于,提供一种视频编码中快速的模式确定方法和装置。
一种视频编码中快速的模式确定方法,其特征在于包括以下步骤:
步骤1、计算SKIP模式的成本函数值;
步骤2、从成本函数值缓存区中取出前一幅图像中与当前编码宏块同样位置宏块的最佳模 式的成本函数值TRD(prev);
步骤3、根据最近编码过的图像中所有SKIP模式的成本函数值小于各自对应阈值TRD的宏 块个数与一幅图像包含总宏块数之比β与所述TRD(prev)确定TRD(curr),TRD指最近编码过的 图像的前一幅图像中与当前编码宏块同样位置宏块的最佳模式的成本函数值,TRD(curr)指当 前编码图像中宏块采用SKIP模式时的成本函数的阈值;比较步骤1所得SKIP模式的成本函 数值与TRD(curr)的大小,若步骤1所得SKIP模式的成本函数值小于TRD(curr),则SKIP 模式为最佳模式,跳到步骤12,否则执行步骤4;
步骤4、对16x16模式进行运动估计;
步骤5、计算0.95*((2qbits-f)/QE[qprem][0][0]),其中qbits=15+QP/6,qprem=QP%6,f =2qbits/6,QP是量化参数,取0~51内的任何一个整数,Qstep 是量化步长;
步骤6、根据运动估计中得到的16个4x4参差块中参差数据的绝对值之和 判断16个4x4参差块是否全部满足若满足则 计算16x16模式的成本函数值,在SKIP模式和16x16模式中确定成本函数值最小者为最佳模 式,跳到步骤12,否则对16x8、8x16、8x8模式进行运动估计并计算16x16、16x8、8x16、 8x8四种模式的成本函数值,然后继续执行步骤7;
步骤7、在已编码的所有模式中选择成本函数值最小的模式,若此模式不是8x8模式,则 确定此模式为最佳模式,跳到步骤12,否则继续执行步骤8;
步骤8、根据8x8模式的运动估计中得到的16个4x4参差块中参差数据的绝对值之和 判断8x8模式的16个4x4的参差块是否全都满足 若满足则确定8x8模式为最佳模式,跳到 步骤12,否则继续执行步骤9;
步骤9、分别对宏块中的4个8x8块的细划分模式进行运动估计,所述8x8块的细划分模 式包括8x8、8x4、4x8及4x4,计算各自的成本函数值并从中选出成本函数值最小的一个模式, 从而确定整个宏块所对应的编码模式P8x8;
步骤10、对各种帧内模式进行预测编码;
步骤11、计算P8x8模式及各种帧内预测模式的成本函数值,从中确定成本函数值最小的 模式为最佳模式;
步骤12、最佳模式确定过程结束。
一种视频编码中快速的模式确定装置,该装置采用如权利要求1所述的视频编码中快速 的模式确定方法,其特征在于包括:
SKIP模式的运动矢量计算模块,用于计算SKIP模式的运动矢量;
成本函数值计算模块,接受各运动矢量计算和估计模块、帧内预测模块以及参考帧存储 模块所提供的数据,用于计算不同编码模式的成本函数值;
SKIP模式的成本函数值与成本函数阈值比较模块,输入端与成本函数值计算模块和SKIP 模式的成本函数阈值计算模块相连,接受已经计算得到的SKIP模式的成本函数值,并将其与 成本函数阈值TRD(curr)进行比较,以决定SKIP模式是否就是最佳模式,如果是,则不再进 行其他模式的运动估计、预测及RD最优化;
SKIP模式的成本函数阈值计算模块,计算用于当前编码宏块的SKIP模式的成本函数阈 值TRD(curr),包括以下两个单元:
一、一幅图像中SKIP模式的宏块个数累加单元,其输入端与成本函数值比较和最佳模式 确定模块相连,如果最佳模式是SKIP模式,则累加SKIP模式的宏块个数;
二、成本函数阈值与比例因子相乘单元,其输入端与最佳成本函数值缓存模块与一幅图 像中SKIP模式的宏块个数累加单元相连,接受前一幅编码图像中同样位置宏块的最佳模式对 应的成本函数值以及前一幅图像中SKIP模式的宏块个数累加单元的结果,计算用于当前编码 宏块的SKIP模式的成本函数阈值TRD(curr);
最佳成本函数值缓存模块,其输入端与成本函数值比较和最佳模式确定模块相连,存储 最佳模式的成本函数值;
参考帧存储模块,用于存储各参考帧,提供参考图像数据给运动矢量估计模块和成本函 数值计算模块;
运动矢量估计模块,用于在参考帧内搜索与当前编码块最匹配的块,包括以下单元:
一、16x16模式的运动估计单元,用来对16x16的划分方式进行运动估计;
二、16x8、8x16及8x8模式的运动估计单元,用来对16x8、8x16及8x8的划分方式进行 运动估计;
三、8x4、4x8及4x4模式的运动估计单元,用来对8x4、4x8及4x4的划分方式进行运动 估计;
成本函数值暂存模块,其输入端与成本函数值计算模块相连,接受并暂存所有参与RD优 化的各种模式的成本函数值,在需要的时候随时把这些数值提供给成本函数值比较和最佳模 式确定模块;
用于判别16个4x4的参差块的能量大小判别模块,包括以下单元:
一、0.95*((2qbits-f)/QE[qprem][0][0])计算单元,用来计算0.95*((2qbits-f)/QE[qprem][0][0]);
二、16个4x4的参差块是否全部满足判别 单元,该单元与运动矢量估计模块相连,用来判断16x16模式及8x8模式的所有16个4x4的 参差块是否全部满足以决定是否继续进行其余 模式的运动估计和计算;
帧内预测模块,用于在完成P8x8模式的编码后,进行各种帧内模式的预测编码;
成本函数值比较和最佳模式确定模块,其输入端与SKIP模式的成本函数值与成本函数阈 值比较模块、用于判别16个4x4的参差块的能量大小判别模块和成本函数值暂存模块相连, 用于根据这些模块提供的结果,比较各种模式的成本函数值,确定每个宏块的最佳编码模式。
本发明可有效降低确定最佳模式的过程的复杂度,减少计算量。便于硬件实现。

附图说明

图1为现有176x144大小的图像及其16x16大小的宏块和光栅扫描顺序示意图;
图2为宏块及8x8块划分方式示意图;
图3为现有H.264参考软件中对P类型编码图像模式确定方法流程图;
图4为现有H.264参考软件中对P类型编码图像模式确定方法所应用的装置示意图;
图5为本发明视频编码中快速的模式确定方法实施例流程示意图;
图6为本发明视频编码中快速的模式确定装置实施例结构示意图;
图7为图像内条带的划分示意图;
图8为4x4参差块对应系数示意图;
图9为本发明实施例中多编码模式的快速模式确定方法流程图;
图10为本发明实施例中多编码模式的快速模式确定装置示意图。

具体实施方式

一种视频编码中快速的模式确定方法,如图5所示,包括以下步骤:
步骤1、计算空码模式的成本函数值;
步骤2、若空码模式的成本函数值小于前一幅编码图像中相同位置宏块的最佳模式对应的 成本函数值乘某比例因子(相乘结果用TRD表示),则确定空码模式为最佳模式,跳到步骤9, 否则继续执行步骤3;
步骤3、对16x16模式进行运动估计,若16x16模式的所有16个4x4参差块均为能量很小 的块,则计算16x16模式的成本函数值,在空码模式和16x16模式中确定成本函数值最小者 为最佳模式,跳到步骤9,否则对16x8、8x16、8x8模式进行运动估计并计算16x16、16x8、 8x16、8x8四种模式的成本函数值;
步骤4、在已编码的所有模式中选择成本函数值最小的模式,若此模式不是8x8模式,则 确定此模式为最佳模式,跳到步骤9,否则继续执行步骤5;
步骤5、若8x8模式的所有16个4x4参差块均为能量很小的块,则确定8x8模式为最佳 模式,跳到步骤9,否则继续执行步骤6;
步骤6、分别对宏块中的4个8x8块的所有细划分模式(8x8、8x4、4x8及4x4)进行运 动估计,计算各自的成本函数值并从中选出成本函数值最小的一个模式,从而确定整个宏块 所对应的编码模式P8x8;
步骤7、对各种帧内模式进行预测编码;
步骤8、计算P8x8模式及各种帧内预测模式的成本函数值,从中确定成本函数值最小的 模式为最佳模式;
步骤9、最佳模式确定过程结束。
一种视频编码中快速的模式确定装置,如图6所示,包括:
空码模式的运动矢量计算模块,用于计算空码模式的运动矢量;
成本函数值计算模块,接受所述空码模式的运动矢量计算模块、运动矢量估计模块、帧 内预测模块以及参考帧存储模块所提供的数据,用于计算不同编码模式的成本函数值;
空码模式的成本函数值与成本函数阈值TRD比较模块,输入端与成本函数值计算模块和 空码模式的成本函数阈值计算模块相连,接受已经计算得到的空码模式的成本函数值,并将 其与前一幅编码图像中相同位置宏块对应的成本函数阈值TRD进行比较,以决定空码模式是 否就是最佳模式。如果是,则不必再进行其他模式的运动估计、预测及RD最优化;
空码模式的成本函数阈值计算模块,其输入端与最佳成本函数值缓存模块相连,用于接 受前一幅编码图像中同样位置宏块取最佳模式时的成本函数值后,乘以某比例因子得到最终 用于当前编码宏块的成本函数阈值TRD;
最佳成本函数值缓存模块,其输入端与成本函数值比较和最佳模式确定模块相连,存储 最佳模式的成本函数值以用于下一幅图像的编码;
参考帧存储模块,用于存储各参考帧,提供参考图像数据给运动矢量估计模块和成本函 数值计算模块;
运动矢量估计模块,用于在参考帧内搜索与当前编码块最匹配的块,包括以下单元:
一、16x16模式的运动估计单元,用来对16x16的划分方式进行运动估计;
二、16x8、8x16及8x8模式的运动估计单元,用来对16x8、8x16及8x8的划分方式进行 运动估计;
三、8x4、4x8及4x4模式的运动估计单元,用来对8x4、4x8及4x4的划分方式进行运动 估计;
成本函数值暂存模块,其输入端与成本函数值计算模块相连,接受并暂存所有参与RD优 化的各种模式的成本函数值,在需要的时候随时把这些数值提供给成本函数值比较和最佳模 式确定模块;
16个4x4的参差块能量大小判别模块,其作用为:1)在空码模式不一定是最佳模式的情 况下,判断在16x16模式下参差块能量是否很小。由于在运动估计过程中可得到此模式对应 的16个4x4的参差块的能量,因此其输入端与16x16模式的运动估计单元相连,在运动估计 后判断此模式对应的16个4x4的参差块的能量是否很小,若很小则跳过对其他模式的计算仅 在空码模式和16x16模式中选择成本函数值最小的模式为最佳模式,否则继续对16x8、8x16 及8x8模式进行运动估计。2)在8x8模式是空码、16x16、16x8、8x16及8x8诸模式中成本 函数值为最小的情况下,判断在8x8模式下参差块能量是否很小。因此其输入端也与8x8模 式的运动估计单元相连,在运动估计后判断此模式对应的16个4x4的参差块的能量是否很小, 若很小则跳过对其余模式的计算,选择8x8模式为最佳模式,否则继续对8x4、4x8及4x4模 式进行运动估计并计算其成本函数值;
帧内预测模块,用于在完成P8x8模式的编码后,进行各种帧内模式的预测编码;
成本函数值比较和最佳模式确定模块,其输入端与空码模式的成本函数值与成本函数阈 值TRD比较模块、16个4x4的参差块能量大小判别模块和成本函数值暂存模块相连,用于根据 这些模块提供的结果,比较各种模式的成本函数值,最终确定每个宏块的最佳编码模式。
本发明在H.264中快速确定编码模式的实施例:
在H.264视频压缩标准中,原始的图像文件经过编码以后的二进制文件称为码流,码流 中信息的基本组成单位是条带(slice),每一条带由整数个宏块组成,分别对应一幅图像中 的某一区域,条带在图像内的划分如图7所示。这幅图像由3个条带组成。一幅图像也可仅 由一个条带组成。
根据编码方式的不同,条带可分为三种:I条带、P条带和B条带,对I条带来说,所有 宏块只能采用帧内编码方式。对P条带,前面提到的空码模式即为SKIP模式,总的可编码的 方式有以下几种:SKIP模式、16x16、16x8、8x16、8x8、8x4、4x8、4x4等帧间编码模式以 及各种帧内编码模式,每一个帧间预测块(或子块)最多只能使用一个运动矢量。而B条带 与P条带的最大不同在于B条带的每一个帧间预测块(或子块)可以使用二个运动矢量。对B 条带,前面提到的空码模式即为DIRECT 16x16模式。在本实施例中,我们考虑快速模式确定 方法应用于P条带的模式选择的例子。
对于模式选择的准则来说,本实施例中成本函数值的计算如下式所示:
F(s,c,mode,QP)=D(s,c,mode,QP)+λ×R(s,c,mode,QP)
                                                                    (1)
上式(1)中,F为成本函数,D为原始图像块s中像素与复原图像块c中对应像素之差 的平方和。mode为任一种编码模式,QP是量化参数,是对变换后的参差数据进行量化时用到 的参数。R是对应某种编码模式及某个量化参数所产生的编码位数,包括宏块头,运动及参差 信息。λ称为拉格朗目因子,是与量化参数有关的值,上述方法称为拉格朗日乘子法。这种 方法综合考虑了复原图像质量(与失真项即distortion有关)和编码比特(与码率即bit-rate 项有关)的关系。
由于视频序列固有的时间相关性,可以假设当前编码宏块的最佳模式对应的成本函数值与 前一幅图像中相同位置宏块的最佳模式对应的成本函数值会有很大的相关性,通过实验可验 证这一假定。于是可以用前一幅图像中对应位置宏块的最佳模式的成本函数值经过适应性的 修改后作为SKIP模式的阈值。也就是,在当前帧的所有宏块编码结束后,可以利用当前图像 中SKIP模式的成本函数值小于前一幅图像中对应位置宏块的成本函数值的宏块数与一幅图像 总宏块个数之比来自适应地修改用于下一幅图像的阈值,即,
β = N ( F ( SKIP mode ) < T RD ) N ( total ) × 100 % - - - ( 2 )
上式(2)中,如前所述,TRD指最近编码过的图像的前一幅编码图像相同位置宏块的最佳 模式对应的成本函数值,N(F(SKIPmode)<TRD)为最近编码过的图像中所有SKIP模式的成 本函数值小于各自对应阈值TRD的宏块个数,N(total)指一幅图像包含总宏块数。
根据β值的不同,我们可以适应性的调节下一幅编码图像中的各宏块采用SKIP模式时的 阈值:
如果β<40%,则
TRD(curr)=0.8*TRD(prev)×(1+n1)                          (3)
否则
TRD(curr)=0.8*TRD(prev)×(1-n2)                          (4)
上式(3)和(4)中,TRD(curr)指当前编码图像中宏块采用SKIP模式时的成本函数的 阈值,TRD(prev)指邻近的前一编码图像中相同位置宏块的最佳模式对应的成本函数值,而 n1、n2为调节因子,当β值较小时,说明TRD(prev)相对较小,所以应当乘一个大于1的因子, 当β值较大时,说明TRD(prev)相对较大,所以应当乘一个小于1的因子,根据仿真结果, 在此取n1=0.06,n2=0.1。
由于SKIP模式和划分较大的模式其运动估计和模式选择过程复杂度相对较低,所以快速 模式确定方法按照从大划分模式到小划分模式的顺序进行。
对每个4x4的参差块,共有16个参差数据,如图8所示。
若某个4x4参差块的参差数据绝对值之和小于某个阈值Tx时,我们就认为该 4x4参差块的能量近似为0,当前模式所对应的预测块与原始编码块已足够匹配,因此可跳过 其他模式的搜索。我们用H.264参考软件作测试平台,通过在失真与码率之间做折中,取
Tx=0.95*(2qbits-f)/QE[qprem][0][0]              (5)
在上式(5)中,qbits=15+QP/6,qprem=QP%6,f=2qbits/6,QE[qprem][0][0]如 下式所示:
QE [ qp rem ] [ 0 ] [ 0 ] = 2 qbits - 2 Qstep - - - ( 6 )
式(6)中qbits与式(5)相同,Qstep是量化步长。在H.264中,量化步长共有52种取 值,由量化参数QP检索,而QP取0~51内的任何一个整数。对应QP的值每增加6,Qstep 的值就加倍。
本视频编码的实施例中多编码模式的快速模式确定方法如图9所示,包括以下步骤:
步骤1、计算SKIP模式的成本函数值;
步骤2a、从成本函数值缓存区中取出前一幅图像中与当前编码宏块同样位置宏块的成本 函数值TRD(prev);
步骤2b、根据前一幅图像中SKIP模式的成本函数值小于其成本函数阈值TRD的宏块数与 图像总宏块个数之比β确定当前编码宏块的成本函数阈值TRD(curr)。比较SKIP模式的成本 函数值与TRD(curr)的大小,若小于则SKIP模式为最佳模式,跳到步骤9,否则执行步骤3;
步骤3a、对16x16模式进行运动估计;
步骤3b、计算0.95*((2qbits-f)/QE[qrem][0][0]);
步骤3c、根据运动估计中得到的16个4x4参差块中参差数据的绝对值之和 判断16个4x4参差块是否全部满足若满足则计 算16x16模式的成本函数值,在SKIP模式和16x16模式中确定成本函数值最小者为最佳模式, 跳到步骤9,否则对16x8、8x16、8x8模式进行运动估计并计算16x16、16x8、8x16、8x8四 种模式的成本函数值;
步骤4、在已编码的所有模式中选择成本函数值最小的模式,若此模式不是8x8模式,则 确定此模式为最佳模式,跳到步骤9,否则继续执行步骤5;
步骤5、根据8x8模式的运动估计中得到的16个4x4参差块中参差数据的绝对值之和 判断8x8模式的16个4x4的参差块是否全都满足 若满足则确定8x8模式为最佳模式,跳到步骤 9,否则继续执行步骤6;
步骤6、分别对宏块中的4个8x8块的所有细划分模式(8x8、8x4、4x8及4x4)进行运 动估计,计算各自的成本函数值并从中选出成本函数值最小的一个模式,从而确定整个宏块 所对应的编码模式P8x8;
步骤7、对各种帧内模式进行预测编码;
步骤8、计算P8x8模式及各种帧内预测模式的成本函数值,从中确定成本函数值最小的 模式为最佳模式;
步骤9、最佳模式确定过程结束;
上述模式确定方法所应用的装置示意图如图10所示:整个模式确定装置由以下部件组成:
SKIP模式的运动矢量计算模块,用于计算SKIP模式的运动矢量。
成本函数值计算模块,接受各运动矢量计算和估计模块、帧内预测模块以及参考帧存储 模块所提供的数据,用于计算不同编码模式的成本函数值。
SKIP模式的成本函数值与成本函数阈值比较模块,输入端与成本函数值计算模块和SKIP 模式的成本函数阈值计算模块相连,接受已经计算得到的SKIP模式的成本函数值,并将其与 成本函数阈值TRD(curr)进行比较,以决定SKIP模式是否就是最佳模式。如果是,则不必再 进行其他模式的运动估计、预测及RD最优化。
SKIP模式的成本函数阈值计算模块,计算用于当前编码宏块的SKIP模式的成本函数阈值 TRD(curr),包括以下两个单元:
一、一幅图像中SKIP模式的宏块个数累加单元,其输入端与成本函数值比较和最佳模式 确定模块相连,如果最佳模式是SKIP模式,则累加SKIP模式的宏块个数以用于下一幅图像 成本函数阈值TRD的计算;
二、成本函数阈值与比例因子相乘单元,其输入端与最佳成本函数值缓存模块与一幅图 像中SKIP模式的宏块个数累加单元相连,接受前一幅编码图像中同样位置宏块的最佳模式对 应的成本函数值以及前一幅图像中SKIP模式的宏块个数累加单元的结果,按式(3)、(4)计 算用于当前编码宏块的SKIP模式的成本函数阈值TRD(curr);
最佳成本函数值缓存模块,其输入端与成本函数值比较和最佳模式确定模块相连,存储 最佳模式的成本函数值;
参考帧存储模块,用于存储各参考帧,提供参考图像数据给运动矢量估计模块和成本函 数值计算模块;
运动矢量估计模块,用于在参考帧内搜索与当前编码块最匹配的块,包括以下单元:
一、16x16模式的运动估计单元,用来对16x16的划分方式进行运动估计;
二、16x8、8x16及8x8模式的运动估计单元,用来对16x8、8x16及8x8的划分方式进行 运动估计;
三、8x4、4x8及4x4模式的运动估计单元,用来对8x4、4x8及4x4的划分方式进行运动 估计;
成本函数值暂存模块,其输入端与成本函数值计算模块相连,接受并暂存所有参与RD优 化的各种模式的成本函数值,在需要的时候随时把这些数值提供给成本函数值比较和最佳模 式确定模块;
用于判别16个4x4的参差块的能量大小判别模块,包括以下单元:
一、0.95*((2qbits-f)/QE[qrem][0][0])计算单元,用来计算0.95*((2qbits-f)/QE[qrem][0][0]);
二、16个4x4的参差块是否全部满足判别单 元,该单元与运动矢量估计模块相连,用来判断16x16模式及8x8模式的所有16个4x4的参 差块是否全部满足以决定是否继续进行其余模 式的运动估计和计算;
帧内预测模块,用于在完成P8x8模式的编码后,进行各种帧内模式的预测编码;
成本函数值比较和最佳模式确定模块,其输入端与SKIP模式的成本函数值与成本函数阈 值比较模块、用于判别16个4x4的参差块的能量大小判别模块和成本函数值暂存模块相连, 用于根据这些模块提供的结果,比较各种模式的成本函数值,最终确定每个宏块的最佳编码 模式。