背景技术
随着多媒体技术的发展和多媒体应用的迅速推广,视频图像压缩标准和技术得到了广泛的关注,目前的视频编码标准,H.26x和MPEG-x(MPEG,Motionpicture experts group,运动图像专家组)以及由中国音视频编解码技术标准工作组制定的AVS(Audio video Standard,音视频编码标准)标准中的视频标准都是基于混合编码框架之上的。这种混合编码框架具有如下特点:
1、利用预测编码去除时域冗余度;
2、利用变换编码去除空域冗余度;
3、利用熵编码去除统计冗余度。
其中预测编码是视频编码中的重要环节,预测编码主要是利用运动补偿预测技术来实现减小时间冗余度的。由于物体运动的连续性,在视频运动预测中,通常采用分像素插值技术来提高运动预测补偿的准确性,插值精度可以是1/2、1/4、1/8像素插值等。分像素插值技术大大改善了运动预测的准确程度,进一步减小了当前编码图像和参考图像间的残差图像的能量。
残差图像再经过正交变换和量化后去除视频图像的空间冗余度,其中,量化是一个不可逆的过程,目的是去除人眼不敏感的信息,在视频编码系统中,量化因子QP(Quantization Parameter,量化因子)值对图像的编码效率和重建后的图像质量有着重要的影响。较小的QP值可以更好保持原图像信息,但编码器输出的码率也较大;而较大的QP值可以减小编码器的输出码率,但重建图像质量也会有所下降。QP值的范围是0~63,QP值的大小直接影响了编码器输出码率的大小。
在实际应用中,比如AVS视频编码标准中,QP值一般存在两种情况:
1、固定QP值
固定QP值标准分为两种:一种是对整帧图像中所有宏块根据相同的量化因子QP进行量化,在编码时具体的QP由用户根据当前应用的具体要求设定,这种情况下,编码器输出码流中的图像头中设置相应的标志位(如fixed_picture_qp)并写入当前QP值,以供解码端处理时识别并使用;另一种是对一帧图像中的每一个条带中所有的宏块根据相同的量化因子QP进行量化,在编码时具体的QP仍由用户根据当前应用的具体要求设定,这种情况下,编码器在输出码流中的条带头中设置相应的标志位(如fixed_slice_qp)并写入当前QP值,以供解码端处理时识别并使用。
2、自适应QP值
自适应QP值标准中,一帧图像的每一个宏块的QP值是变化的,根据当前处理的图像内容选择合适的QP值达到最好的量化效果,此时编码端将QP值信息写入每一个宏块头中,以供解码端处理时识别并使用。
在AVS视频编码标准中,每一精度级采用固定的插值滤器进行补偿预测,例如1/4像素精度的运动补偿预测,1/4像素插值过程分为两步进行,首先是对参考图像进行1/2像素精度插值,通过插值滤波器F1将原图像在水平和垂直方向上进行插值,插值后的图像变为原图像的4倍,然后通过插值滤波器F2和F3进行1/4像素插值,得到大小为原图像16倍的1/4插值参考图像。如图1所示,为现有AVS亮度插值标准中,整数样本、二分之一样本和四分之一样本的位置关系示意图,大写字母A-L表示图像中整数像素点的位置,小写字母aa、ff、hh、ee、b、bb、gg、h、j、m、cc、s、dd表示二分之一像素点的位置,小写字母a、c、d、e、f、g、i、k、n、p、q、r表示四分之一像素点的位置。其中,二分之一样本位置的预测值通过4抽头滤波器F1(-1,5,5,-1)/8计算得到,1/2像素插值如:
b=(-C+5D+5E-F)/8;
h=(-A+5D+5H-K)/8;
四分之一样本位置的预测值通过4抽头滤波器F2(1,7,7,1)/16和2抽头滤波器F3(1,1)/2计算得到,1/4像素插值如:
d=(ff+7D+7h+H)/16;
e=(D+j)/2;
g=(E+j)/2;
p=(H+j)/2;
r=(I+j)/2。
H.264标准中的1/4像素插值过程和AVS类似,其1/2像素插值采用一个6抽头滤波器F1(1,-5,20,20,-5,1)/32,1/4像素插值滤波器采用2抽头滤波器F2(1,1)/2。
无论是AVS还是H.264标准,其插值过程中每一精度级插值均采用固定的插值滤波器,没有根据不同的视频内容和编码码率来选择不同的插值滤波器,不能有效的提高视频编码的效率和质量。
除了AVS视频编码标准中采用的插值技术,也有研究人员提出过根据图像内容自适应进行运动补偿插值的方法,过程如下:
1、利用初始插值滤波器进行插值计算初始的运动矢量;
2、在初始运动矢量的基础上进行运动补偿预测,计算预测误差,调整插值滤波器的系数,使得预测误差最小,该步骤可能需要重复多次,才能得到最小预测误差对应的最优插值滤波器的系数;
3、使用头两步计算得到的最优插值滤波器系数进行插值和后继编码,同时将2)步所得的最优插值滤波器系数编码到输出码流中。
这种自适应插值滤波器的调整方法计算复杂度高,不能满足编码的实时性要求。而且还需要在码流中帧级或宏块级添加额外的信息以确保正确解码,这些信息也会在一定程度上降低编码效率。
发明内容
本发明提供一种自适应插值处理方法及编解码模块,以解决现有技术中利用固定插值滤波器插值时,预测图像精度较差的问题。
为解决上述技术问题,本发明提供如下技术方案:
一种自适应分像素插值处理方法,包括如下步骤:
A、基于不同分像素插值滤波器组对设定量化因子图像分别进行的分像素插值图像之间的性能对比,获得各量化因子与最优分像素插值滤波器组之间的匹配关系;
B、编码端在编码过程中,从所述匹配关系中选择与参考图像内容的量化因子信息相对应的最优插值滤波器组对所述参考图像内容进行分像素插值处理。
进一步,所述方法还同时包括:解码端在解码过程中,从所述匹配关系中选择与参考图像内容的量化因子信息相对应的最优插值滤波器组对所述参考图像内容进行分像素插值处理。
根据不同的编码模式,所述方法进一步包括:
当编码端被用户设定为帧级固定量化因子编码模式时,所述的图像内容是指一帧图像,所述的量化因子信息即为该固定量化因子。并且,
编码端在发送给解码端的视频码流中包含的每一个图像的图像头中,设置帧级固定量化因子编码模式标志位,并在每一个图像的各图像块头中,携带该固定量化因子;
解码端接收到所述视频码流后,根据对应设置的标志位确定编码模式帧级固定量化因子,然后从参考图像的图像块头中读取该固定量化因子。
当编码端被用户设定为条带级固定量化因子编码模式时,所述的图像内容是指一帧图像中的一个条带,所述的量化因子信息即为该固定量化因子。并且,
编码端在发送给解码端的视频码流中包含的每一个条带的条带头中,设置条带级固定量化因子编码模式标志位,并在每一个条带的各图像块头中,携带该固定量化因子;
解码端接收到所述视频码流后,根据对应设置的标志位确定编码模式为条带级固定量化因子,然后从参考条带的图像块头中读取该固定量化因子。
当编码端用户设定为帧级/条带级自适应量化因子编码模式时,所述的图像内容是指一帧图像/条带,所述的量化因子信息为参考图像/条带中各图像块量化因子与对应设定的权重值分别相乘后的乘积之和。
编码端在发送给解码端的视频码流中设置帧级/条带级自适应量化因子编码模式标志位或缺省设置其它所有编码模式标志位,并在每一个图像/条带的各图像块头中,对应携带每一个图像块的量化因子。
并且帧级/条带级自适应量化因子编码模式时,解码端通过如下三种方式之一确定最优滤波器组:
解码端根据对应设置的标志位或其它所有模式标志的缺省设置状态确定所述视频码流的模式为帧级/条带级自适应量化因子,然后从参考图像/条带的各图像块头中读取各图像块对应的量化因子;或者
解码端同时将参考图像内容的所述乘积之和对应写入被参考的每一个图像的图像头或条带的条带头中;解码端根据所述乘积之和直接确定该图像/条带的参考图像/条带对应的最优插值滤波器组;或者
解码端同时将参考图像内容的最优插值滤波器组的组别标识信息对应写入被参考的每一个图像的图像头或条带的条带头中;解码端根据所述组别标识信息直接确定该图像/条带的参考图像/条带对应的最优插值滤波器组。
本发明还提供一种编解码模块,包括:
存储子模块,存储基于不同分像素插值滤波器组对设定量化因子图像分别进行的分像素插值图像之间的性能对比而获得的各量化因子与最优分像素插值滤波器组之间的匹配关系;
插值处理子模块,连接所述存储子模块,用于从所述匹配关系中选择与参考图像内容的量化因子信息相对应的最优插值滤波器组,并利用该最优插值滤波器组对所述参考图像内容进行分像素插值处理;
编解码子模块,连接所述插值处理子模块,用于从参考图像内容的各图像块头中读取量化因子信息,并将参考图像编码数据和量化因子信息输出给所述插值处理子模块;或者根据分像素插值处理后的参考图像内容编解码当前图像内容。
本发明的有益效果如下:
本发明利用QP值决定码率的特点,根据QP值选择不同的插值滤波器组,提高了插值后的预测图像精度,减少了残差图像的能量,从而减少了视频码流中的数据,在解码端,由于提高了插值后的预测图像精度,所以提升了解码后的图像质量。
具体实施方式
在视频编码过程中,量化因子的设定直接影响了编码码率的大小,较小的量化因子可以更好的保留图像的信息,重建图像更加精细,从而编码器输出的码流较大,而较大的量化因子舍弃了更多的图像信息,重建图像较为粗糙,从而输出的码流较小。
在高码率时,由于选择了较小的量化因子,因此重建后的图像更加精细;在低码率时,由于选择了较大的量化因子,因此重建后的图像较为粗糙,重建图像的精细程度影响不同滤波器的插值性能。
本发明针对需要参考其它图像(本发明不对参考自身编码的图像处理进行限定)提出了一种根据当前编码的视频图像的量化因子QP值大小,即编码码率来选择运动补偿预测中分像素插值滤波器,以进一步提高视频编码的效率和质量。
具体技术构思如图2所示,包括如下两个步骤:
S1、基于不同分像素插值滤波器组对设定量化因子图像分别进行的分像素插值图像之间的性能对比,获得各量化因子与最优分像素插值滤波器组之间的匹配关系,并将所述匹配关系分别保存到编码端和解码端;
S2、编码端在编码过程中,根据当前编码图像的参考图像内容中各图像块(例如宏块)的量化因子综合值,从所述匹配关系中选择对应的一组最优插值滤波器对参考图像内容进行分像素插值处理;
S3、解码端在解码时,同样根据当前解码图像的参考图像内容中各图像块(例如宏块)的量化因子综合值,从所述匹配关系中选择对应的一组最优插值滤波器对参考图像内容进行分像素插值处理。
步骤S1中,对参考图像进行分像素插值后得到的图像为运动补偿预测图像,该图像的性能是指图像质量和编码数据量的综合性能,由于分像素插值的过程中,需要对图像进行各分像素精度的插值,因此执行各分像素的插值滤波器实际上是一组插值滤波器。
最优插值滤波器组的获得方法参阅图3所示,以获取量化因子QPi对应的最优滤波器组为例,首先给定一个参考图像,一般情况下,该参考图像各图像块(例如宏块)的量化因子相等,都为QPi:
S101、针对每一个分像素精度选择出常用的几个候选滤波器;
例如:在执行1/4像素插值,从常用F1滤波器中,选择F1 1(-1,5,5,-1)/8和F1 2(-1,9,9,-1)/16为候选滤波器;从常用的F2滤波器中,选择F2 1(1,7,7,1)/16和F2 2(1,1)/2为候选滤波器;
S102、给出候选滤波器互相组合形成的所有候选滤波器组;
每一个候选滤波器组中包括一个F1滤波器和一个F2滤波器,例如表1所示:
表1.
组别 |
1/2像素插值滤波器 |
1/4像素插值滤波器 |
第一组 |
F1 1(-1,9,9,-1)/16 |
F2 1(1,7,7,1)/16 |
第二组 |
F1 2(-1,5,5,-1)/8 |
F2 1(1,7,7,1)/16 |
第三组 |
F1 2(-1,9,9,-1)/16 |
F2 2(1,1)/2 |
S103、分别利用每一组滤波器组对参考图像进行模拟插值,产生包含分像素插值的模拟运动补偿预测图像;
S104、对比分析各模拟运动补偿预测图像的综合性能,将其中综合性能最优的运动补偿预测图像对应的滤波器组作为QPi对应的最优滤波器组。
重复上述步骤,可以分别获得取值在0~63范围内、每一个QPi对应的最优滤波器组。
然后整理QPi与最优滤波器组之间的匹配关系,得到类似于表2的匹配关系表:
表2.
量化因子取值范围(包括端值) |
最优滤波器组 |
0~30 |
第一组 |
30~50 |
第二组 |
50~63 |
第三组 |
表2仅是一个示例,该表包含的具体行数根据实际的模拟量化结果确定,或者在可接受的图像性能范围内,将量化因子的各取值范围进行合并,以减少控制复杂度。同样对于1/4像素插值时的F3滤波器或者当需要进行1/8像素精度插值时所需的滤波器及其和1/2及1/4像素精度插值滤波器所组成的滤波器组都可以按照上述原理进行组合选取。
上述最优插值滤波器组的获取方法仅为一种模拟示例,并不用于限定本发明的保护范围。
将表1和表2分别存储到编码端和解码端,编码端和解码端的处理过程为:
编码端对当前编码图像内容的参考图像(参考图像为内容最接近的图像)进行分像素插值时,根据参考图像内容的具体量化因子信息选择对应的最优插值滤波器组对参考图像进行处理后得到上采样图像内容,然后对上采样图像内容与当前编码图像内容之间的残差图像进行编码后,将编码数据写入视频码流中发送;
解码端收到视频码流后,同样根据当前解码图像内容的参考图像(参考图像的标识信息携带在图像头中)内容的具体量化因子,选择对应的最优插值滤波器组对参考图像进行处理后得到上采样图像内容,然后根据上采样图像和残差图像复原当前解码图像。
根据用户设定的编解码方式,当前编码图像内容的参考图像内容可能是一整帧图像,也可能是一帧图像中的某个条带,上述处理过程中,如果是基于帧级或条带级的固定QP编码方式,则直接根据参考图像使用的固定QP所在的取值范围选择对应的最优滤波器组;如果是自适应QP编码方式,可以根据如下公式1计算参考图像内容的综合QP值:
QP=f(QPi) i=0,1,...,N (1)
其中QPi是每一个图像块(例如宏块)的量化因子,
QP是整个帧或条带的综合QP因子,N是整个帧或条带中的图像块数(例如宏块数),f(x)是用于计算综合量化因子的方法,如f(x)可采用如下的加权累加方法计算
QP:
其中wi是每一个图像块(例如宏块)所分配的权重值,在计算得到
QP后,根据
QP所在的分段范围选用对应的最优滤波器组进行插值。
每一个图像块量化因子的权重值与该量化因子对应的最优滤波器组对分像素插值后图像性能的改善量成正比。例如:不同QP值范围所选用最优滤波器组对编码性能改善比例为A∶B∶C,如在表2情况下通过试验得出第一组、第二组、第三组提高性能比例为2∶4∶1,则在计算综合QP以因子
QP时,权重设定关系为对于QP在0~30范围内权重为2/7,30~50范围内权重为4/7,50~63范围内权重为1/7。
下面结合附图说明如何在用户设定的不同编解码工作模式下实施本发明所述技术方案。
解码端的处理流程分为以下三种情况:
一、帧级固定QP值
如图4所示,当用户设置编码端工作模式为帧级固定QP值时,编码端参考其它图像编码一帧当前图像时的处理流程,该流程实际上是图2所示步骤S2的一种具体实现流程,包括如下步骤:
S201、确定与当前图像的内容最接近的参考图像;
S202、依据表1和表2选择用户设定的当前QP值对应的最优插值滤波器组;
S203、利用最优插值滤波器组对该图像的参考图像进行插值,得到运动补偿预测后的上采样图像;
S204、确定该上采样图像与当前图像之间的残差图像;
S205、根据用户设定的当前QP值分别编码上该残差图像中的每一个图像块(例如宏块);
编码端在编码过程中,在每一个图像的图像头中设置帧级固定QP值标志位(如fixed_picture_qp)和参考图像标识信息,并将当前QP值写入每一个图像块(例如宏块)的图像块头(例如宏块头)中,同步将残差图像的编码数据写入视频码流中发送给解码端。
二、条带级固定QP值
在该模式下不同条带的量化因子也是根据条带内容自适应的,同一条带内具有相同的量化因子,不同条带量化因子可以不同。
当用户设置编码端工作模式为条带级固定QP值时,编码端参考其它条带编码当前条带时,编码过程参阅图4所示,先确定与当前条带的内容最接近的参考条带,并依据表1和表2选择用户设定的当前QP值对应的最优插值滤波器组,利用最优插值滤波器组对该条带的参考条带进行插值,得到运动补偿预测后的上采样条带和该上采样条带与当前条带之间的残差条带图像,然后根据用户设定的当前QP值分别编码上该残差条带图像中的每一个图像块(例如宏块);
编码端在编码过程中,在每一个条带的条带头中设置条带级固定QP值编码模式标志位(如fixed_slice_qp)和参考条带标识信息,并将当前QP值写入每一个图像块(例如宏块)的图像块头(例如宏块头)中,同步将残差条带图像的编码数据写入视频码流中发送给解码端,这种模式下,当前码流中各图像头中没有设置帧级固定QP值标志位(如fixed_picture_qp)。
三、自适应帧级(或条带级)QP值
用户设置编码端工作模式为自适应帧级(或条带级)QP值时,编码端利用公式1或2计算参考图像(或条带)的
QP,然后根据
QP的取值范围选择相应的最优插值滤波器组,对参考图像(或条带)进行插值;
这时,当前码流中各图像头中没有设置帧级固定QP值标志位(如fixed_picture_qp),条带头中也没有设置条带级固定QP值编码模式标志位(如fixed_slice_qp)。
解码端的处理流程如图5所示,该流程实际上是图2所示步骤S3的一种具体实现流程,包括如下步骤:
S301、根据当前码流中各图像头中的帧级固定QP值标志位(如fixed_picture_qp)判断当前编码模式是否为帧级固定QP值模式,如果是则继续;否则转入步骤S306;
S302、读取视频码流中当前解码图像的参考图像中任意一个图像块(例如宏块)的图像块头(例如宏块头)中携带的QP值(参考图像根据图像头中的标识信息确定);
S303、依据表1和表2确定该QP值对应的最优插值滤波器组;
S304、利用最优插值滤波器组对该图像的参考图像进行插值,得到运动补偿预测后的上采样图像;
S305、解码残差图像数据并根据上采样图像复原出当前图像后继续处理下一个帧图像;
S306、解码端再根据当前码流中各条带头中的条带级固定QP值标志位(如fixed_slice_qp)判断当前编码模式是否为条带级固定QP值模式,如果是则继续;否则执行步骤S311;
S307、读取视频码流中当前解码条带的参考条带中任意一个图像块(例如宏块)的图像块头(例如宏块头)中携带的QP值(参考条带根据条带头中的标识信息确定);
S308、依据表1和表2确定该QP值对应的最优插值滤波器组;
S309、利用最优插值滤波器组对该条带的参考条带进行插值,得到运动补偿预测后的上采样条带图像;
S310、解码残差条带图像数据并根据上采样条带的图像复原出当前条带图像后继续处理下一个条带;
S311、根据公式1和2计算当前图像(或条带)的参考图像(或条带)的综合量化因子
QP;
S312、依据表1和表2确定该
QP值对应的最优插值滤波器组;
S313、利用最优插值滤波器组对该条带的参考图像(或条带)进行插值,得到运动补偿预测后的上采样图像(或条带图像);
S314、解码残差图像(或条带图像)数据并根据上采样图像(或条带图像)复原出当前图像(或条带)后继续处理下一个条带。
编码端可以将根据参考图像计算的
QP值对应写入被参考图像图像头中的特定比特位,解码端直接从特定比特位中读取编码端的计算结果并依据表1和表2选择对应的最优插值滤波器组,条带级自适应编码模式类似;
编码端还可以将选择出的最优插值滤波器组的组别标识信息对应写入被参考图像图像头中的特定比特位,解码端直接从特定比特位中读取组别信息后依据表1确定对应的最优插值滤波器组,条带级自适应编码模式类似。
如图6所示,实现上述方法的编解码模块,包括:
存储子模块100,存储基于不同分像素插值滤波器组对设定量化因子图像分别进行的分像素插值图像之间的性能对比而获得的各量化因子与最优分像素插值滤波器组之间的匹配关系;
插值处理子模块200,连接所述存储子模块100,用于从所述匹配关系中选择与参考图像内容的量化因子信息相对应的最优插值滤波器组,并利用该最优插值滤波器组对所述参考图像内容进行分像素插值处理。
编解码子模块300,连接所述插值处理子模块200,用于从参考图像内容的各图像块头中读取量化因子信息,并参考图像编码数据和量化因子信息输出给所述插值处理子模块200;或者根据分像素插值处理后的参考图像内容编解码当前图像内容。
本发明技术方案利用QP值决定码率的特点,根据QP值选择不同的插值滤波器组,提高了插值后的预测图像精度,减少了编码端残差图像的能量,从而减少了视频码流中的数据,在解码端,由于提高了插值后的预测图像精度,所以相应提高了解码后图像质量。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。