艾巴生活网

您现在的位置是:主页>科技 >内容

科技

输出域覆盖法,基于通过阈值预判方法进行宏块选择

2023-12-25 09:17:01科技帅气的蚂蚁
1导言在H 264文章编码中,一个1616的宏块(MB)可以分为1616、168、816和88进行运动估计,88可以进一步分为84、48和44子块。这样,每个细分模

输出域覆盖法,基于通过阈值预判方法进行宏块选择

1导言

在H.264文章编码中,一个1616的宏块(MB)可以分为1616、168、816和88进行运动估计,88可以进一步分为84、48和44子块。这样,每个细分模块寻找更精确的匹配块,可以增加预测精度,提高压缩率。然而,由于每个分类都必须执行运动估计,因此其直接成本是巨大的计算量。

针对多模式预测导致计算量增加的问题,近年来出现的帧间模式选择算法得到了深入研究,其中采用阈值提前截止的模式选择思想得到了广泛应用,可以以较少的性能损失为代价降低计算量。例如,文献建议,如果发现1616模式适用,应直接跳过168和816模式检查,否则,应进行整个搜索。文献提出了使用多级阈值和根据QP等改变阈值的方法。本文的研究也是基于宏块选择的阈值预测方法。

快速帧间模式选择算法

2.1使用自适应阈值的帧间模式选择算法

在文章质量可以忽略不计的情况下,使用阈值进行预测确实可以尽可能地降低编码复杂度,但上述方法都有一定的局限性。文献中提出的算法只考虑了三种模式,很多情况下仍然采用全搜索。虽然文献提出了可变阈值,但其阈值只随着QP的变化而变化,没有考虑不同文章的特点。因为不同的文章序列有不同的特征,即使是同一文章序列内的不同帧也有不同的特征,影响阈值的因素有很多。基于上述观点,本文提出一种统计分类方法,对帧间预测模式进行分类,并选择自适应阈值来选择宏块模式。

一般1616模式利用率最高,会计算其SAD(绝对差和)值,所以可以建立1616模式的SAD值(简称sad16)与最终选择的模式之间的关系,这是一个标准的模式分类问题。通过文章中相邻帧之间的时间相关性和上一帧模式对应的sad16的分布来训练下一帧的阈值,从而可以选择下一帧的宏块模式。具体方法如下:

1)分类

首先,H.264的帧间模式分为两类:BSM(BigSize Mode),包括1616、168和816模式;SSM(small size Mode),包括88、84、48和44模式。根据对一些CIF格式的测试文章序列的统计,可以发现BSM出现的概率总体上要高于SSM(见表1)。如上所述,SSM需要更多的计算,因此可以在BSM和SSM之间设置一个阈值T,它表示模型预测准确度的可接受程度。如果小于阈值T,则宏块仅选择BSM,如果大于阈值T,则宏块计算两种模式。

2)统计

分别计算了两种模式下的sad16值,通过测试发现sad16值一般小于8 000。为了便于统计,将计算出的sad16值左移7位,即除以128,分布在64个值区间。根据原有的模式选择算法,选择一帧中每个宏块的模式,并记录其对应的sad16值,从而统计出该帧中每个模式对应的不同sad16区间的宏块个数的分布。由于SSM的值相对较小,为了便于观察,统计结果乘以10。公式如下

其中:k为sad16的64个值区间,取值为[0,63];Sad16k表示Sad16值在区间k内;如果宏块被判断为BSM模式,则NBSM=1,NSSM=0;如果宏块被判断为SSM模式,则nSSM=1,nBSM=0。图1和图2分别示出了两个代表性CIF序列(foot-ball和foreman)的两个相邻帧的统计分布。

从图1和图2的统计结果可以看出,BSM模式下的宏块占大多数,对应的sad16主要分布在小值区,大值区也有,但较少;而SSM模式的宏块数量较少,对应的sad16主要分布在较大的区域,但数量较少(SSM模式在图1和图2中已经乘以10)。通过其他测试序列可以得到相同的结论。因此,通过取阈值T,可以判断当仅计算sad16时,宏块是否可以被直接判定为BSM模式。当sad16T时,计算BSM模式和SSM模式。从图1和图2中也可以看出,无论是运动强烈的足球序列,还是运动平缓的福尔曼序列,任意两个相邻帧的分布都非常相似。因此,基于序列中两个相邻帧之间的时间相关性,可以使用前一帧的分布来预测下一帧的阈值。

3)误判率

这种算法节省了大量的计算量,而且文章质量几乎没有下降。代价是一些SSM模式宏块被判断为BSM,损失了一些压缩率。如图3,当阈值为T时,阴影部分应该是SSM,但是因为sad16在阈值T的左侧,所以判断为BSM,虽然阴影部分属于误判部分,但是阴影部分在阈值的左侧,属于sad16的一个相对较小的区域,所以最终sad变化小,压缩率损失小。那么选择阈值的标准是:使BSM模式尽可能在阈值T的左边,以减少判决时间;使SSM模式尽可能在阈值的右边,以减少压缩比的损失。

2.2 4自适应阈值选择方法

基于上面分析的阈值选择标准,根据上一帧的统计结果来设置下一帧的阈值有很多种方法。本文初步提出了四种阈值计算方法:

1)最小值阈值(MVT)

这种方法取BSM曲线的最大sad16和SSM曲线的最小sad16,然后取其中较小的一个作为阈值,如图4所示。

阈值计算公式为

MIN(sad16,SSM)一般是SSM sad 16的最小值,但为了避免某些帧没有SSM,选择MAX(sad16,BSM)进行比较,取两者的最小值。由于MIN(sad16,SSM)总是在增加,而MAX(sad16,BSM)本身的值就很大,所以我们可以将它们乘以一个小于1的比例因子来控制其大小。修改后的阈值计算公式为

其中:1, 2 (0,1)为修正系数,可以是 1=1/2, 2=3/4。

2)面积百分比阈值(APT)

该方法计算BSM曲线的总面积,以总面积的%面积对应的sad16为阈值,如图5所示。

阈值计算公式为

其中: (0,100)为面积百分比因子,取=75更好。

3)最高点脱粒(HPT)

这种方法以BSM曲线最高点对应的sad16为阈值,如图6所示。

阈值计算公式为

4)衰减系数脱粒(AFT)

该方法取BSM曲线中的最高点,越过最高点后,取高度的(1-)高度对应的sad16作为阈值,如图7所示。

阈值计算公式为

其中: (0,1)为衰减因子,=0.75的值更好,TAFT>THPT更可取。

本文只实验了四种阈值计算方法,利用本文2.1中得到的统计图和模式分类思想,可以用其他计算方法得到可用的阈值。

2.3算法流程

根据前一帧的步骤4中记录的每个宏块的信息宏块级,根据本文介绍的几种方法,计算本帧帧间模式选择所需的阈值T,用T对本帧中的每个宏块进行分类。具体步骤如下:

1)取1616、168、816作为备选模式,计算sad(1616)、sad(168)、sad(816),将最小值设为sadmin;

2)如果萨德明

3)以1616,168,816,88(其中88包括子块8 4,48,44)作为备选模式,计算sad(88),并与之前计算的sad(1616),SAD (16 4)进行比较

4)结束宏块模式选择,记录宏块的相关信息,用于计算下一帧阈值。

3模拟结果

仿真条件:首先对mobile、football、bus、news、table、foreman六个CIF(352288)序列的前100帧进行MPEG-2编码器编码,通过设置参数N=12,M=3,比特率6 Mbit/s得到源文章,转码过程参照MPEG-2解码器和T264编码器实现。帧率为30 f/s,OP为30,GoP为200。实验平台是英特尔P4 2.0 GHz,内存512兆字节,操作系统是Windows XP。采用自适应阈值算法,阈值为最小阈值法,缩写为ATH_MVT,其他缩写类似。通过实验得出最佳经验因子:ATH APT算法中=75,ATH AFT算法中=0.75。仿真结果如表2所示(给出了三种典型序列:细节较多的移动、运动较激烈的足球、结果较稳定的新闻、结果较少的其他序列)。

仿真结果表明:

ATH-MVT方法在减少搜索时间和编码时间方面具有平均性能。除了运动激烈的足球序列,其搜索时间大多减少38%以上,编码时间大多减少26%以上。该方法PSNR降低在0.01dB以内,码率增加在0.39%以内,性能损失小。

ATH_APT方法在减少搜索时间和编码时间方面有很好的表现,其搜索时间大多减少45%以上,编码时间大多减少30%以上。值得一提的是,对于动作相对激烈的足球序列,它具有比其他方法更好的省时效果。在这种方法中,PSNR降低在0.01 dB以内,比特率增加在1.1%以内,性能损失稍大。

ATH_HPT方法在搜索时间和编码时间的减少方面是所有序列中最差的,搜索时间的最低减少约为7%,编码时间的最低减少约为5%。该方法的文章质量最好,PSNR值不低于原算法,码率上升在0.47%以内,性能损失小。

ATH_AFT方法在减少搜索时间和编码时间方面具有最好的性能。除足球序列外,其搜索时间大多减少50%以上,编码时间大多减少30%以上。该方法文章质量好,PSNR值与原算法基本相当,码率上升在0.15%以内,性能损失小。

图3中阴影部分是SSM被误判的部分。使用公式

通过比较由自适应阈值算法确定的SSM数和由原始算法确定的SSM数获得的误判率如表3所示(仍然只列出三个典型序列)。其中TH_HPT(原算法采用最高点阈值法)误判率相对较小,其他三种方法误判率略大,但最大不超过30%。

综合考虑:TH_MVT各方面表现一般;TH_HPT的误判率较小,但搜索时间和编码时间都很小,不实用。TH_APT更适合文章运动剧烈,性能损失不严格的情况;总的来说,TH_AFT方法得到的阈值效果最好,可以在保持良好性能的同时节省编码时间。在这四种方法中,TH _ AFT方法对于一般序列是一种较好的方法。

4摘要

基于相邻帧之间的时间相关性和模式识别中的分类统计方法,提出了一种H.264编码中的帧间模式选择算法,并给出了该算法阈值的四种计算方法。在几个测试序列上的实验表明,与原算法相比,本文提出的算法可以在性能损失可以忽略的情况下显著节省编码时间,对于一般序列,TH_AFT的阈值选择方法是最好的。该算法还可以进一步扩展,如增加多级阈值和设计更好的阈值计算方法。