视频编码中快速的模式确定方法和装置的制作方法

文档序号:7646580阅读:98来源:国知局
专利名称:视频编码中快速的模式确定方法和装置的制作方法
技术领域
本发明涉及到视频编码系统采用多模式编码时的编码过程,特别是涉及到确定最佳帧间模式的方法和装置。

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


发明内容
本发明的目的在于,提供一种视频编码中快速的模式确定方法和装置。
一种视频编码中快速的模式确定方法,包括以下步骤 步骤1、计算空码模式的成本函数值; 步骤2、若空码模式的成本函数值小于前一幅编码图像中相同位置宏块的最佳模式对应的成本函数值乘某比例因子,相乘结果用TRD表示,则确定空码模式为最佳模式,跳到步骤9,否则继续执行步骤3; 步骤3、对16×16模式进行运动估计,若16×16模式的所有16个4×4参差块均为能量很小的块,则计算16×16模式的成本函数值,在空码模式和16×16模式中确定成本函数值最小者为最佳模式,跳到步骤9,否则对16×8、8×16、8×8模式进行运动估计并计算16×16、16×8、8×16、8×8四种模式的成本函数值; 步骤4、在已编码的所有模式中选择成本函数值最小的模式,若此模式不是8×8模式,则确定此模式为最佳模式,跳到步骤9,否则继续执行步骤5; 步骤5、若8×8模式的所有16个4×4参差块均为能量很小的块,则确定8×8模式为最佳模式,跳到步骤9,否则继续执行步骤6; 步骤6、分别对宏块中的4个8×8块的细划分模式进行运动估计,计算各自的成本函数值并从中选出成本函数值最小的一个模式,确定整个宏块所对应的编码模式P8×8; 步骤7、对各种帧内模式进行预测编码; 步骤8、计算P8×8模式及各种帧内预测模式的成本函数值,确定成本函数值最小的模式为最佳模式; 步骤9、最佳模式确定过程结束。
一种视频编码中快速的模式确定装置,包括 空码模式的运动矢量计算模块,用于计算空码模式的运动矢量; 成本函数值计算模块,接受所述空码模式的运动矢量计算模块、运动矢量估计模块、帧内预测模块以及参考帧存储模块所提供的数据,用于计算不同编码模式的成本函数值; 空码模式的成本函数值与成本函数阈值TRD比较模块,输入端与成本函数值计算模块和空码模式的成本函数阈值计算模块相连,接受已经计算得到的空码模式的成本函数值,并将其与前一幅编码图像中相同位置宏块对应的成本函数阈值TRD进行比较,以决定空码模式是否就是最佳模式,如果是,则不必再进行其他模式的运动估计、预测及RD最优化; 空码模式的成本函数阈值计算模块,其输入端与最佳成本函数值缓存模块相连,用于接受前一幅编码图像中同样位置宏块取最佳模式时的成本函数值后,乘以某比例因子得到最终用于当前编码宏块的成本函数阈值TRD; 最佳成本函数值缓存模块,其输入端与成本函数值比较和最佳模式确定模块相连,存储最佳模式的成本函数值以用于下一幅图像的编码; 参考帧存储模块,用于存储各参考帧,提供参考图像数据给运动矢量估计模块和成本函数值计算模块; 运动矢量估计模块,用于在参考帧内搜索与当前编码块最匹配的块,包括以下单元 一、16×16模式的运动估计单元,用来对16×16的划分方式进行运动估计; 二、16×8、8×16及8×8模式的运动估计单元,用来对16×8、8×16及8×8的划分方式进行运动估计; 三、8×4、4×8及4×4模式的运动估计单元,用来对8×4、4×8及4×4的划分方式进行运动估计; 成本函数值暂存模块,其输入端与成本函数值计算模块相连,接受并暂存所有参与RD优化的各种模式的成本函数值,在需要的时候随时把这些数值提供给成本函数值比较和最佳模式确定模块; 16个4×4的参差块能量大小判别模块,用于1)在空码模式不一定是最佳模式的情况下,判断在16×16模式下参差块能量是否很小;其输入端与16×16模式的运动估计单元相连,在运动估计后判断此模式对应的16个4×4的参差块的能量是否很小,若很小则跳过对其他模式的计算仅在空码模式和16×16模式中选择成本函数值最小的模式为最佳模式,否则继续对16×8、8×16及8×8模式进行运动估计;2)在8×8模式是空码、16×16、16×8、8×16及8×8诸模式中成本函数值为最小的情况下,判断在8×8模式下参差块能量是否很小。因此其输入端也与8×8模式的运动估计单元相连,在运动估计后判断此模式对应的16个4×4的参差块的能量是否很小,若很小则跳过对其余模式的计算,选择8×8模式为最佳模式,否则继续对8×4、4×8及4×4模式进行运动估计并计算其成本函数值; 帧内预测模块,用于在完成P8×8模式的编码后,进行各种帧内模式的预测编码; 成本函数值比较和最佳模式确定模块,其输入端与空码模式的成本函数值与成本函数阈值TRD比较模块、16个4×4的参差块能量大小判别模块和成本函数值暂存模块相连,用于根据这些模块提供的结果,比较各种模式的成本函数值,最终确定每个宏块的最佳编码模式。
一种视频编码中快速的模式确定方法,包括以下步骤 步骤1、计算SKIP模式的成本函数值; 步骤2a、从成本函数值缓存区中取出前一幅图像中与当前编码宏块同样位置宏块的成本函数值TRD(prev); 步骤2b、根据前一幅图像中SKIP模式的成本函数值小于其成本函数阈值TRD的宏块数与图像总宏块个数之比β确定当前编码宏块的成本函数阈值TRD(curr);比较SKIP模式的成本函数值与TRD(curr)的大小,若小于则SKIP模式为最佳模式,跳到步骤9,否则执行步骤3; 步骤3a、对16×16模式进行运动估计; 步骤3b、计算0.95*((2qbits-f)/QE[qrem]
); 步骤3c、根据运动估计中得到的16个4×4参差块中参差数据的绝对值之和

判断16个4×4参差块是否全部满足若满足则计算16×16模式的成本函数值,在SKIP模式和16×16模式中确定成本函数值最小者为最佳模式,跳到步骤9,否则对16×8、8×16、8×8模式进行运动估计并计算16×16、16×8、8×16、8×8四种模式的成本函数值; 步骤4、在已编码的所有模式中选择成本函数值最小的模式,若此模式不是8×8模式,则确定此模式为最佳模式,跳到步骤9,否则继续执行步骤5; 步骤5、根据8×8模式的运动估计中得到的16个4×4参差块中参差数据的绝对值之和

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



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

具体实施例方式 一种视频编码中快速的模式确定方法,如图5所示,包括以下步骤 步骤1、计算空码模式的成本函数值; 步骤2、若空码模式的成本函数值小于前一幅编码图像中相同位置宏块的最佳模式对应的成本函数值乘某比例因子(相乘结果用TRD表示),则确定空码模式为最佳模式,跳到步骤9,否则继续执行步骤3; 步骤3、对16×16模式进行运动估计,若16×16模式的所有16个4×4参差块均为能量很小的块,则计算16×16模式的成本函数值,在空码模式和16×16模式中确定成本函数值最小者为最佳模式,跳到步骤9,否则对16×8、8×16、8×8模式进行运动估计并计算16×16、16×8、8×16、8×8四种模式的成本函数值; 步骤4、在已编码的所有模式中选择成本函数值最小的模式,若此模式不是8×8模式,则确定此模式为最佳模式,跳到步骤9,否则继续执行步骤5; 步骤5、若8×8模式的所有16个4×4参差块均为能量很小的块,则确定8×8模式为最佳模式,跳到步骤9,否则继续执行步骤6; 步骤6、分别对宏块中的4个8×8块的所有细划分模式(8×8、8×4、4×8及4×4)进行运动估计,计算各自的成本函数值并从中选出成本函数值最小的一个模式,从而确定整个宏块所对应的编码模式P8×8; 步骤7、对各种帧内模式进行预测编码; 步骤8、计算P8×8模式及各种帧内预测模式的成本函数值,从中确定成本函数值最小的模式为最佳模式; 步骤9、最佳模式确定过程结束。
一种视频编码中快速的模式确定装置,如图6所示,包括 空码模式的运动矢量计算模块,用于计算空码模式的运动矢量; 成本函数值计算模块,接受所述空码模式的运动矢量计算模块、运动矢量估计模块、帧内预测模块以及参考帧存储模块所提供的数据,用于计算不同编码模式的成本函数值; 空码模式的成本函数值与成本函数阈值TRD比较模块,输入端与成本函数值计算模块和空码模式的成本函数阈值计算模块相连,接受已经计算得到的空码模式的成本函数值,并将其与前一幅编码图像中相同位置宏块对应的成本函数阈值TRD进行比较,以决定空码模式是否就是最佳模式。如果是,则不必再进行其他模式的运动估计、预测及RD最优化; 空码模式的成本函数阈值计算模块,其输入端与最佳成本函数值缓存模块相连,用于接受前一幅编码图像中同样位置宏块取最佳模式时的成本函数值后,乘以某比例因子得到最终用于当前编码宏块的成本函数阈值TRD; 最佳成本函数值缓存模块,其输入端与成本函数值比较和最佳模式确定模块相连,存储最佳模式的成本函数值以用于下一幅图像的编码; 参考帧存储模块,用于存储各参考帧,提供参考图像数据给运动矢量估计模块和成本函数值计算模块; 运动矢量估计模块,用于在参考帧内搜索与当前编码块最匹配的块,包括以下单元 一、16×16模式的运动估计单元,用来对16×16的划分方式进行运动估计; 二、16×8、8×16及8×8模式的运动估计单元,用来对16×8、8×16及8×8的划分方式进行运动估计; 三、8×4、4×8及4×4模式的运动估计单元,用来对8×4、4×8及4×4的划分方式进行运动估计; 成本函数值暂存模块,其输入端与成本函数值计算模块相连,接受并暂存所有参与RD优化的各种模式的成本函数值,在需要的时候随时把这些数值提供给成本函数值比较和最佳模式确定模块; 16个4×4的参差块能量大小判别模块,其作用为1)在空码模式不一定是最佳模式的情况下,判断在16×16模式下参差块能量是否很小。由于在运动估计过程中可得到此模式对应的16个4×4的参差块的能量,因此其输入端与16×16模式的运动估计单元相连,在运动估计后判断此模式对应的16个4×4的参差块的能量是否很小,若很小则跳过对其他模式的计算仅在空码模式和16×16模式中选择成本函数值最小的模式为最佳模式,否则继续对16×8、8×16及8×8模式进行运动估计。2)在8×8模式是空码、16×16、16×8、8×16及8×8诸模式中成本函数值为最小的情况下,判断在8×8模式下参差块能量是否很小。因此其输入端也与8×8模式的运动估计单元相连,在运动估计后判断此模式对应的16个4×4的参差块的能量是否很小,若很小则跳过对其余模式的计算,选择8×8模式为最佳模式,否则继续对8×4、4×8及4×4模式进行运动估计并计算其成本函数值; 帧内预测模块,用于在完成P8×8模式的编码后,进行各种帧内模式的预测编码; 成本函数值比较和最佳模式确定模块,其输入端与空码模式的成本函数值与成本函数阈值TRD比较模块、16个4×4的参差块能量大小判别模块和成本函数值暂存模块相连,用于根据这些模块提供的结果,比较各种模式的成本函数值,最终确定每个宏块的最佳编码模式。
本发明在H.264中快速确定编码模式的实施例 在H.264视频压缩标准中,原始的图像文件经过编码以后的二进制文件称为码流,码流中信息的基本组成单位是条带(slice),每一条带由整数个宏块组成,分别对应一幅图像中的某一区域,条带在图像内的划分如图7所示。这幅图像由3个条带组成。一幅图像也可仅由一个条带组成。
根据编码方式的不同,条带可分为三种I条带、P条带和B条带,对I条带来说,所有宏块只能采用帧内编码方式。对P条带,前面提到的空码模式即为SKIP模式,总的可编码的方式有以下几种SKIP模式、16×16、16×8、8×16、8×8、8×4、4×8、4×4等帧间编码模式以及各种帧内编码模式,每一个帧间预测块(或子块)最多只能使用一个运动矢量。而B条带与P条带的最大不同在于B条带的每一个帧间预测块(或子块)可以使用二个运动矢量。对B条带,前面提到的空码模式即为DIRECT 16×16模式。在本实施例中,我们考虑快速模式确定方法应用于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模式的成本函数值小于前一幅图像中对应位置宏块的成本函数值的宏块数与一幅图像总宏块个数之比来自适应地修改用于下一幅图像的阈值,即, 上式(2)中,如前所述,TRD指最近编码过的图像的前一幅编码图像相同位置宏块的最佳模式对应的成本函数值,N(F(SKIPmode)<TRD)为最近编码过的图像中所有SKIP模式的成本函数值小于各自对应阈值TRD的宏块个数,N(total)指一幅图像包含总宏块数。
根据β值的不同,我们可以适应性的调节下一幅编码图像中的各宏块采用SKIP模式时的阈值TRD 如果β<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模式和划分较大的模式其运动估计和模式选择过程复杂度相对较低,所以快速模式确定方法按照从大划分模式到小划分模式的顺序进行。
对每个4×4的参差块,共有16个参差数据,如图8所示。
若某个4×4参差块的参差数据绝对值之和

小于某个阈值Tx时,我们就认为该4×4参差块的能量近似为0,当前模式所对应的预测块与原始编码块已足够匹配,因此可跳过其他模式的搜索。我们用H.264参考软件作测试平台,通过在失真与码率之间做折中,取 Tx=0.95*(2qbits-f)/QE[qprem]
(5) 在上式(5)中,qbits=15+QP/6,qprem=QP%6,f=2qbits/6,QE[qprem]
如下式所示 式(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、对16×16模式进行运动估计; 步骤3b、计算0.95*((2qbits-f)/QE[qrem]
); 步骤3c、根据运动估计中得到的16个4×4参差块中参差数据的绝对值之和

判断16个4×4参差块是否全部满足若满足则计算16×16模式的成本函数值,在SKIP模式和16×16模式中确定成本函数值最小者为最佳模式,跳到步骤9,否则对16×8、8×16、8×8模式进行运动估计并计算16×16、16×8、8×16、8×8四种模式的成本函数值; 步骤4、在已编码的所有模式中选择成本函数值最小的模式,若此模式不是8×8模式,则确定此模式为最佳模式,跳到步骤9,否则继续执行步骤5; 步骤5、根据8×8模式的运动估计中得到的16个4×4参差块中参差数据的绝对值之和

判断8×8模式的16个4×4的参差块是否全都满足若满足则确定8×8模式为最佳模式,跳到步骤9,否则继续执行步骤6; 步骤6、分别对宏块中的4个8×8块的所有细划分模式(8×8、8×4、4×8及4×4)进行运动估计,计算各自的成本函数值并从中选出成本函数值最小的一个模式,从而确定整个宏块所对应的编码模式P8×8; 步骤7、对各种帧内模式进行预测编码; 步骤8、计算P8×8模式及各种帧内预测模式的成本函数值,从中确定成本函数值最小的模式为最佳模式; 步骤9、最佳模式确定过程结束; 上述模式确定方法所应用的装置示意图如图10所示整个模式确定装置由以下部件组成 SKIP模式的运动矢量计算模块,用于计算SKIP模式的运动矢量。
成本函数值计算模块,接受各运动矢量计算和估计模块、帧内预测模块以及参考帧存储模块所提供的数据,用于计算不同编码模式的成本函数值。
SKIP模式的成本函数值与成本函数阈值TRD比较模块,输入端与成本函数值计算模块和SKIP模式的成本函数阈值计算模块相连,接受已经计算得到的SKIP模式的成本函数值,并将其与前一幅编码图像中相同位置宏块对应的成本函数阈值TRD进行比较,以决定SKIP模式是否就是最佳模式。如果是,则不必再进行其他模式的运动估计、预测及RD最优化。
SKIP模式的成本函数阈值计算模块,计算用于当前编码宏块的成本函数阈值TRD(curr),包括以下两个单元 一、一幅图像中SKIP模式的宏块个数累加单元,其输入端与成本函数值比较和最佳模式确定模块相连,如果最佳模式是SKIP模式,则累加SKIP模式的宏块个数以用于下一幅图像成本函数阈值TRD的计算; 二、成本函数阈值与比例因子相乘单元,其输入端与最佳成本函数值缓存模块与一幅图像中SKIP模式的宏块个数累加单元相连,接受前一幅编码图像中同样位置宏块的最佳模式对应的成本函数值以及前一幅图像中SKIP模式的宏块个数累加单元的结果,按式(3)、(4)计算用于当前编码宏块的成本函数阈值TRD(curr); 最佳成本函数值缓存模块,其输入端与成本函数值比较和最佳模式确定模块相连,存储最佳模式的成本函数值以用于下一幅图像的编码; 参考帧存储模块,用于存储各参考帧,提供参考图像数据给运动矢量估计模块和成本函数值计算模块; 运动矢量估计模块,用于在参考帧内搜索与当前编码块最匹配的块,包括以下单元 一、16×16模式的运动估计单元,用来对16×16的划分方式进行运动估计; 二、16×8、8×16及8×8模式的运动估计单元,用来对16×8、8×16及8×8的划分方式进行运动估计; 三、8×4、4×8及4×4模式的运动估计单元,用来对8×4、4×8及4×4的划分方式进行运动估计; 成本函数值暂存模块,其输入端与成本函数值计算模块相连,接受并暂存所有参与RD优化的各种模式的成本函数值,在需要的时候随时把这些数值提供给成本函数值比较和最佳模式确定模块; 16个4×4的参差块能量大小判别模块,包括以下单元 一、0.95*((2qbits-f)/QE[qrem]
)计算单元,用来计算0.95*((2qbits-f)/QE[qrem]
); 二、16个4×4的参差块是否全部满足判别单元,该单元与运动矢量估计模块相连,用来判断16×16模式及8×8模式的所有16个4×4的参差块是否全部满足以决定是否继续进行其余模式的运动估计和计算; 帧内预测模块,用于在完成P8×8模式的编码后,进行各种帧内模式的预测编码; 成本函数值比较和最佳模式确定模块,其输入端与SKIP模式的成本函数值与成本函数阈值TRD比较模块、16个4×4的参差块能量大小判别模块和成本函数值暂存模块相连,用于根据这些模块提供的结果,比较各种模式的成本函数值,最终确定每个宏块的最佳编码模式。
权利要求
1.一种视频编码中快速的模式确定方法,其特征在于包括以下步骤
步骤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块的细划分模式进行运动估计,计算各自的成本函数值并从中选出成本函数值最小的一个模式,确定整个宏块所对应的编码模式P8x8;
步骤7、对各种帧内模式进行预测编码;
步骤8、计算P8x8模式及各种帧内预测模式的成本函数值,确定成本函数值最小的模式为最佳模式;
步骤9、最佳模式确定过程结束。
2.根据权利要求1所述的视频编码中快速的模式确定方法,其特征在于所述步骤6中所述8x8块的细划分模式包括8x8、8x4、4x8及4x4。
3.一种视频编码中快速的模式确定装置,其特征在于包括
空码模式的运动矢量计算模块,用于计算空码模式的运动矢量;
成本函数值计算模块,接受所述空码模式的运动矢量计算模块、运动矢量估计模块、帧内预测模块以及参考帧存储模块所提供的数据,用于计算不同编码模式的成本函数值;
空码模式的成本函数值与成本函数阈值TRD比较模块,输入端与成本函数值计算模块和空码模式的成本函数阈值计算模块相连,接受已经计算得到的空码模式的成本函数值,并将其与前一幅编码图像中相同位置宏块对应的成本函数阈值TRD进行比较,以决定空码模式是否就是最佳模式,如果是,则不必再进行其他模式的运动估计、预测及RD最优化;
空码模式的成本函数阈值计算模块,其输入端与最佳成本函数值缓存模块相连,用于接受前一幅编码图像中同样位置宏块取最佳模式时的成本函数值后,乘以某比例因子得到最终用于当前编码宏块的成本函数阈值TRD;
最佳成本函数值缓存模块,其输入端与成本函数值比较和最佳模式确定模块相连,存储最佳模式的成本函数值以用于下一幅图像的编码;
参考帧存储模块,用于存储各参考帧,提供参考图像数据给运动矢量估计模块和成本函数值计算模块;
运动矢量估计模块,用于在参考帧内搜索与当前编码块最匹配的块,包括以下单元
一、16x16模式的运动估计单元,用来对16x16的划分方式进行运动估计;
二、16x8、8x16及8x8模式的运动估计单元,用来对16x8、8x16及8x8的划分方式进行运动估计;
三、8x4、4x8及4x4模式的运动估计单元,用来对8x4、4x8及4x4的划分方式进行运动估计;
成本函数值暂存模块,其输入端与成本函数值计算模块相连,接受并暂存所有参与RD优化的各种模式的成本函数值,在需要的时候随时把这些数值提供给成本函数值比较和最佳模式确定模块;
16个4x4的参差块能量大小判别模块,用于1)在空码模式不一定是最佳模式的情况下,判断在16x16模式下参差块能量是否很小;其输入端与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的参差块能量大小判别模块和成本函数值暂存模块相连,用于根据这些模块提供的结果,比较各种模式的成本函数值,最终确定每个宏块的最佳编码模式。
4.一种视频编码中快速的模式确定方法,其特征在于包括以下步骤
步骤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]
);
步骤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块的细划分模式进行运动估计,计算各自的成本函数值并从中选出成本函数值最小的一个模式,从而确定整个宏块所对应的编码模式P8x8;
步骤7、对各种帧内模式进行预测编码;
步骤8、计算P8x8模式及各种帧内预测模式的成本函数值,从中确定成本函数值最小的模式为最佳模式;
步骤9、最佳模式确定过程结束。
5.根据权利要求4所述的视频编码中快速的模式确定方法,其特征在于所述步骤6中所述8x8块的细划分模式包括8x8、8x4、4x8及4x4。
6.一种视频编码中快速的模式确定装置,其特征在于包括
SKIP模式的运动矢量计算模块,用于计算SKIP模式的运动矢量;
成本函数值计算模块,接受各运动矢量计算和估计模块、帧内预测模块以及参考帧存储模块所提供的数据,用于计算不同编码模式的成本函数值;
SKIP模式的成本函数值与成本函数阈值TRD比较模块,输入端与成本函数值计算模块和SKIP模式的成本函数阈值计算模块相连,接受已经计算得到的SKIP模式的成本函数值,并将其与前一幅编码图像中相同位置宏块对应的成本函数阈值TRD进行比较,以决定SKIP模式是否就是最佳模式,如果是,则不再进行其他模式的运动估计、预测及RD最优化;
SKIP模式的成本函数阈值计算模块,计算用于当前编码宏块的成本函数阈值TRD(curr),包括以下两个单元
一、一幅图像中SKIP模式的宏块个数累加单元,其输入端与成本函数值比较和最佳模式确定模块相连,如果最佳模式是SKIP模式,则累加SKIP模式的宏块个数以用于下一幅图像成本函数阈值TRD的计算;
二、成本函数阈值与比例因子相乘单元,其输入端与最佳成本函数值缓存模块与一幅图像中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[qrem]
)计算单元,用来计算0.95*((2qbits-f)/QE[qrem]
);
二、16个4x4的参差块是否全部满足判别单元,该单元与运动矢量估计模块相连,用来判断16x16模式及8x8模式的所有16个4x4的参差块是否全部满足以决定是否继续进行其余模式的运动估计和计算;
帧内预测模块,用于在完成P8x8模式的编码后,进行各种帧内模式的预测编码;
成本函数值比较和最佳模式确定模块,其输入端与SKIP模式的成本函数值与成本函数阈值TRD比较模块、16个4x4的参差块能量大小判别模块和成本函数值暂存模块相连,用于根据这些模块提供的结果,比较各种模式的成本函数值,确定每个宏块的最佳编码模式。
全文摘要
本发明提出一种视频编码中快速的模式确定方法和装置,用于在视频编码中采用多编码模式时快速确定最佳模式,首先计算空码模式,若其成本函数值小于某成本函数阈值TRD,则最佳模式为空码模式。否则判断16×16模式的所有16个4×4参差块是否均为能量很小的块,若是,则在空码模式和16×16模式中选择最佳模式,否则计算16×16、16×8、8×16、8×8四种模式并在已计算的模式中选择一个准最佳模式。若此准最佳模式不是8×8模式,则停止搜索,此准最佳模式就是最终的最佳模式。否则,若8×8模式对应的16个4×4参差块的能量都很小,则8x8模式为最终的最佳模式,否则在其余的模式中继续搜索最佳模式。本发明可有效降低确定最佳模式的过程的复杂度,减少计算量。便于硬件实现。
文档编号H04N7/26GK101150722SQ20071004811
公开日2008年3月26日 申请日期2007年11月13日 优先权日2007年11月13日
发明者王淑慧, 涛 林 申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1