发明内容
有鉴于此,本发明的主要目的在于提供一种SVC的块级别ILIP方法,能够克服SVC的传统ILIP方法及其优化方法在性能上的不足,获得最有效的ILIP结果,从而提高编码效率。
为达到上述目的,本发明的技术方法具体是这样实现的:
一种可分级视频编码的块级别层间帧内预测方法,用于精确计算增强层(Enhancement Layer,EL)当前编码帧的层间帧内预测(Inter-Layer IntraPrediction,ILIP)信号,在编码端,该方法包括:
A、采用H.264SVC标准中的多相滤波器计算EL当前编码帧的ILIP信号,并为EL当前编码帧的每个编码块对应设置滤波器控制标志位,用于指示相应的编码块的ILIP信号是否进行滤波操作;
B、判断所述EL当前编码帧中的每个编码块是否参与维纳滤波器的系数训练;对参与维纳滤波器的系数训练的各个编码块,计算编码块的原始EL信号和ILIP信号间的互相关以及ILIP信号间的自相关;
C、将参与维纳滤波器的系数训练的各个编码块的所述互相关和自相关的计算结果代入Wiener-Hopf方程,确定所述EL当前编码帧的维纳滤波器系数;
D、利用所述维纳滤波器系数,对参与维纳滤波器系数训练的各个编码块的ILIP信号进行滤波,并根据滤波结果判断是否对相应编码块的ILIP信号进行维纳滤波操作;将确定进行滤波操作的各个编码块对应的滤波器控制标志位进行置位,其他滤波标志位不置位,并根据所述滤波器控制标志位确定相应编码块的ILIP结果;
E、对所述EL当前编码帧的各个编码块对应的滤波器控制标志位和所述维纳滤波器系数进行编码并发送。
较佳地,判断所述EL当前编码帧中的任一编码块是否参与维纳滤波器系数训练的方式包括:
若所述任一编码块的图像细节量超过预设门限,则判定该编码块参与维纳滤波器的系数训练,否则,判定该编码块不参与维纳滤波器的系数训练。
较佳地,利用所述任一编码块的方差值代表所述图像细节量,若所述任一编码块的方差值大于预设的阈值T,则确定所述任一编码块的图像细节量超过预设门限,否则确定所述任一编码块的图像细节。
较佳地,T=7。
较佳地,对于基本层图像为QCIF格式的序列,编码块的尺寸为8×8;对于基本层图像为CIF格式的序列,编码块的尺寸为16×16;对于基本层图像为4CIF格式的序列,编码块的尺寸为32×32。
较佳地,在步骤B中进一步包括:将参与维纳滤波器系数训练的各个编码块对应的滤波器控制标志位进行置位,用于表示相应编码块参与维纳滤波器的系数训练。
较佳地,步骤D所述滤波结果判断是否对相应编码块的ILIP信号进行维纳滤波操作的方式为:
若 则确定对相应编码块的ILIP信号进行维纳滤波操作;
若 则确定不对相应编码块的ILIP信号进行维纳滤波操作;
其中,所述n表示编码块在所述当前编码帧中的序号;所述Bn代表编码块n中的像素在EL当前编码帧中以像素为单位的坐标范围;所述i,j分别代表以像素为单位的横坐标和纵坐标值;所述qi,j代表原始EL信号在当前编码帧中坐标为(i,j)处的像素值;所述pi,j代表ILIP信号在当前编码帧中坐标为(i,j)处的像素值;所述q′i,j是经过维纳滤波器滤波后的ILIP信号在当前编码帧中坐标为(i,j)处的像素值。
较佳地,步骤E中对所述维纳滤波器系数进行编码时,仅对所述维纳滤波器系数的时域预测残差采用指数哥伦布编码,所述时域预测残差的计算如下:
dm(k,l)=hm(k,l)-hm-1(k,l)
其中,所述m代表所述EL当前编码帧在EL中的帧号;所述dm(k,l)代表第m帧滤波器系数的滤波窗口中坐标为(k,l)处的时域预测残差值;所述hm(k,l)代表第m帧的滤波器系数组中滤波窗口中坐标为(k,l)处的系数值。
较佳地,所述根据滤波器控制标志位确定相应编码块的ILIP结果为:若滤波器控制标志位被置位,则确定相应编码块的ILIP结果为,对该编码块的所述ILIP信号进行维纳滤波的结果数据;若滤波器控制标志位未被置位,则确定相应编码块的ILIP结果为,该编码块的所述ILIP信号。
一种可分级视频编码的块级别层间帧内预测方法,在解码端,该方法包括:
接收编码端依照权利要求1到9中任一所述方法发送的滤波器控制标志位和所述维纳滤波器系数;
若接收的任一编码块的滤波器控制标志位被置位,则对编码端发送的该任一编码块的基本层信号进行上采样后,利用接收的所述维纳滤波器系数进行滤波,将滤波结果作为相应编码块的ILIP结果。
由上述的技术方法可见,本发明中的块级别ILIP方法在计算EL当前编码帧的ILIP信号时,首先采用传统方法计算ILIP信号,并对应每个编码块设置滤波器控制标志位,用于表示相应编码块是否进行滤波操作;其次确定参与进行维纳滤波器系数训练的EL当前编码帧中的编码块,并利用确定出的编码块的统计结果计算维纳滤波器系数;接着将计算出的维纳滤波器系数用于块级别的滤波优化,通过滤波结果确定是否对相应编码块进行维纳滤波,并将进行维纳滤波的编码块对应的滤波器控制标志位置位;最后将滤波器控制标志位、维纳滤波器系数进行编码传输。在解码端,采用维纳滤波器系数对EL当前帧中滤波器控制标志位为1的块的传统ILIP结果进行滤波。本发明能够克服SVC的ILIP方法及其优化算法在性能上的不足,获得最有效的ILIP结果,从而提高编码效率。
具体实施方式
为解决现有技术中存在的问题,本发明提出一种全新的SVC中块级别ILIP方法,即从块级别对维纳滤波器训练、维纳滤波操作进行控制的ILIP优化方法。首先采用传统方法计算ILIP信号,并对应每个编码块设置滤波器控制标志位,用于表示相应编码块是否进行滤波操作;其次根据EL当前编码帧中每个编码块的图像细节信息,确定是否将该编码块数据用于维纳滤波器系数训练;接着将计算出的维纳滤波器系数用于块级别的滤波优化,并通过滤波结果确定是否对某个编码块进行维纳滤波,并将进行维纳滤波的编码块对应的滤波器控制标志位进行置位;最后将滤波器控制标志位、维纳滤波器系数进行编码传输。在解码端,采用维纳滤波器系数对EL当前帧中滤波器控制标志位为1的块的传统ILIP结果进行滤波。本发明能够克服SVC的ILIP方法及其优化算法在性能上的不足,获得最有效的ILIP结果,从而提高编码效率。
为使本发明的目的、技术方法及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图1为本发明所采用的SVC中的块级别ILIP方法的编码端流程图。在图1所示的编码端ILIP方法中,对所有的EL编码帧,块级别ILIP方法均相同,在下面的实施例中,仅以其中任一帧为例,对本发明的块级别ILIP方法进行描述。如图1所示,该方法包括以下步骤:
步骤100:进行传统SVC的ILIP,即采用H.264SVC标准中的传统多相滤波器对BL重建信号进行上采样,得到EL当前编码帧的预测信号;为EL当前编码帧的每个编码块对应设置滤波器控制标志位,用于指示相应编码块的ILIP信号是否进行滤波操作。
其中,滤波器控制标志位是一个布尔型变量,其值为1表示需要对当前块的ILIP信号进行维纳滤波;否则表示不需要对当前块的ILIP信号进行维纳滤波。本步骤,仅对应编码块设置滤波器控制标志位,关于相应编码块的滤波器控制标志位的取值,通过后续操作确定,这里可以先设置各个滤波器控制标志位全部取0。
接下来,通过一个循环操作,依次对各个编码块判断是否参与维纳滤波器的系数训练,并对参与系数训练的编码块计算统计结果,用于维纳滤波器的系数训练。具体地,
步骤101:令n=1。
步骤102,根据第n个编码块的图像细节信息量判断该编码块是否参与系数训练,若是,则执行步骤103,否则,执行步骤104。
其中,图像细节信息量大于预设门限的编码块,确定参与维纳滤波器的系数训练。具体可以通过编码块的方差表征图像细节信息量的多少,其中,方差指随机变量的取值相对于其数学期望的偏离度,对于图像中的块来说,其计算为现有技术,采用如下公式:
其中,M×M是块的尺寸。M值越小,即每帧图像的分块数越多,维纳滤波器控制也越精确,ILIP的滤波结果也就越好;另一方面,每帧图像的分块数越多,需要用更多的比特数来表示滤波器控制标志位,这样会抵消精确的ILIP结果带来的编码效率提升。在本发明中,为了获得最高的编码效率提升,对于BL为QCIF格式的序列,采用经验值M=8;对于BL为CIF格式的序列,采用经验值M=16;对于4CIF或更高分辨率格式序列,采用经验值M=32。i,j分别代表一个块中以像素为单位的横、纵坐标值;所述qi,j代表坐标为(i,j)处像素值;所述μn代表第n个块的所有像素的平均值。
将上述计算得到的方差值,与预设门限值T进行比较,若方差值大于T,说明当前块拥有较多图像细节信息,应参与维纳滤波器的系数训练。为简化处理,这里借用编码块的滤波器控制标志位表示相应编码块是否参与系数训练,因此,若确定第n个编码块参与系数训练,则设置其滤波器控制标志位为1,否则设置为0。门限值T根据实验经验得到,在本发明实施例中确定其值为7。
步骤103:计算第n个编码块的ILIP信号的自相关以及第n个编码块的原始EL信号与ILIP信号间的互相关。
这里所述的编码块的ILIP信号为步骤101中计算得到的相应编码块的ILIP信号。需要根据滤波器窗口大小来计算自相关与互相关。在本发明中,对于BL为QCIF的序列,滤波窗口采用固定的3×3滤波窗;对于BL为CIF或更大分辨率序列,滤波窗口采用固定的5×5滤波窗。
这里所提到的自相关与互相关的计算为现有技术,在此不再赘述。该步骤的进行是为了建立维纳滤波器系数方程。
步骤104:判断n是否等于EL当前编码帧的总编码块数,若是,则将n自加后返回到步骤101;否则进入步骤105。
步骤105:计算维纳滤波器系数。
将前述循环中步骤103所计算的所有统计特性结果,包括参与维纳滤波器系数训练的各个编码块的自相关和互相关,分别代入如下方程,即Wiener-Hopf方程,并求解出维纳滤波器系数:
Rpph=rpq
Wiener-Hopf方程为现有技术,其中,h为待求解的当前帧维纳滤波器系数,Rpp代表自相关矩阵,rpq代表互相关矩阵。
接下来,再通过一个循环,依次判断当前编码帧中参与维纳滤波器系数训练的各个编码块,是否需要进行维纳滤波。
步骤106:令n=1。
步骤107:判断第n个编码块的滤波器控制标志位是否为1,若为1,进入步骤108;否则进入步骤111。
步骤108:利用步骤105计算出来的维纳滤波器系数,对EL当前编码帧中第n个编码块的ILIP结果进行维纳滤波操作。
其中,编码块的ILIP结果为前述步骤101中计算出的ILIP结果。
步骤109:将步骤108得到的ILIP信号的滤波结果与未滤波前的ILIP信号进行比较,若滤波结果优于未滤波的ILIP信号,则进入步骤111,否则进入步骤110。
这里对第n个编码块的ILIP信号滤波结果与未滤波前的ILIP信号进行比较的方法采用如下准则:
若 维纳滤波后的ILIP信号更好;
若 未滤波前的ILIP信号更好;
其中,所述n表示当前块在当前帧中的序号;所述Bn代表第n个块在EL当前编码帧中的以像素为单位的坐标范围;所述i,j分别代表以像素为单位的横坐标和纵坐标值;所述qi,j代表原始EL帧中坐标为(i,j)处的像素值;所述q′i,j是经过维纳滤波器处理后的ILIP信号中坐标为(i,j)处的像素值;所述pi,j代表原始ILIP信号坐标为(i,j)处的像素值。
步骤110:将第n个编码块的滤波器控制标志位设置为0。
将不进行维纳滤波的编码块对应的滤波器控制标志位取消置位。本实施例中,取值为1表示置位,取值为0表示取消置位。
步骤111:判断n是否等于当前编码帧EL的总编码块数,若是,进入步骤112,否则将n自加后进入步骤107。
步骤112:对各个编码块对应的滤波器控制标志位和步骤105计算得到的维纳滤波器系数进行编码和发送;根据滤波器控制标志位确定相应编码块的最终ILIP结果。
对于某个EL编码帧来说,所有编码块的滤波器控制标志位是一串二进制数据,对该二进制数据的编码,首先进行游程编码,然后对游程编码结果再进行指数哥伦布编码。游程编码和指数哥伦布编码为现有技术,在此不再赘述。
对维纳滤波器系数的编码首先采用时域预测,即采用之前一帧的维纳滤波器系数预测当前帧的维纳滤波器系数,只对预测后的残差数据进行编码。时域预测的残差数据的计算如下:
dm(k,l)=hm(k,l)-hm-1(k,l)
其中,所述m代表当前编码帧为EL中第m帧;所述dm(k,l)代表第m帧滤波器系数的滤波窗口中坐标为(k,l)处的时域预测残差值;所述hm(k,l)代表第m帧的滤波器系数组中滤波窗口中坐标为(k,l)处的系数值。
根据滤波器控制标志位确定相应编码块的最终ILIP结果为:若滤波器控制标志位被置位,则确定相应编码块的最终ILIP结果为,对该编码块的传统ILIP信号进行维纳滤波的结果数据;若滤波器控制标志位未被置位,则确定相应编码块的最终ILIP结果为,该编码块的传统ILIP信号。其中,传统ILIP信号即指步骤100中得到的相应编码块的ILIP信号。
至此,即完成了本发明所述的SVC中的块级别ILIP方法过程。通过上述方式,能够得到更加准确的层间帧内预测结果,编码端再利用该最终ILIP结果计算当前编码帧的残差数据传输到解码端,从而提高编码效率。
解码端接收滤波器控制标志位、维纳滤波器系数和残差数据后,根据滤波器控制标志位中被置位的标志位,确定出需要进行维纳滤波处理的编码块,对这些编码块的基本层信号的上采样信号进行维纳滤波,再利用维纳滤波结果与接收的残差数据,确定相应编码块的EL信号。对于未被置位的标志位,其相应编码块的处理与现有处理方式相同,这里就不再赘述。
需要进一步说明的是,本实施例中所述的SVC中的块级别ILIP方法只适用于H.264的SVC扩展中的ILIP技术。
以SVC相关软件JSVM9.19.9作为平台,分别采用本实施例中的块级别ILIP方法、H.264 SVC标准中的传统ILIP方法与ILIP的帧级别优化算法对序列进行仿真。
仿真中采用Scalable High Intra档次,采用的测试序列为Ice,City,Crew,Soccer与Harbour,分别测试了BL为QCIF格式序列,EL为CIF格式序列的空域分级组合(记为QCIF/CIF)以及BL为CIF格式序列,EL为4CIF格式序列的空域分级组合(记为CIF/4CIF)下的编码结果。对于QCIF/CIF场景,帧率为15fps;在CIF/4CIF场景下,帧率为30fps。
表1和表2分别列出了传统ILIP方法、ILIP帧级别优化方法以及本发明方法所获得的预测结果的峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)。其中,BL的QP值设置为25。从两个表中可以看出,相比于传统ILIP方法和ILIP帧级别优化方法,本发明方法都可以获得较高的PSNR增益;在细节信息相对较少的序列中(例如“Ice”、“Crew”),本发明方法结果明显优于ILIP帧级别优化结果。
表1QCIF/CIF场景下PSNR比较
表2CIF/4CIF场景下PSNR比较
图2所示为“Harbour“序列在CIF/4CIF场景下的ILIP预测结果的主观质量比较。其中(a)为原始EL图像,(b)为传统ILIP图像,(c)为帧级别ILIP优化图像,(d)为本发明方法得到的ILIP图像。从图中可以看出,相比于传统ILIP方法,帧级别ILIP优化方法以及本发明方法可以获得更为清晰的ILIP预测图像,此结果与表2的结果一致。
为了比较算法的率失真性能,采用了BD-BR(Bjontegaard delta bit rate)与BD-PSNR(Bjontegaard delta PSNR)进行衡量。BD-BR以及BD-PSNR利用曲线拟合原理,能够表征原始算法与优化算法的R-D(Rate-Distortion)曲线之间的码率、PSNR平均差异,可用于反映算法的全局编码效率增益。对于5个测试序列,分别测试了(20,22),(25,27),(30,32)以及(35,37)四种QP组合。
表3和表4分别列出了QCIF/CIF以及CIF/4CIF场景下5个序列的测试结果。从两个表中可看出,首先,相比于传统ILIP方法,无论是本发明方法还是帧级别ILIP优化算法都可以获得较高的编码效率提升;其次,本发明方法性能优于ILIP帧级别优化算法。
表3QCIF/CIF场景下编码性能比较
表4CIF/4CIF场景下编码性能比较
为了更为直观地展示不同的ILIP算法对编码效率的影响,图3和图4给出了序列“Crew“在QCIF/CIF场景下以及序列”Ice“在CIF/4CIF场景下的率失真曲线图。可观察到,本发明方法和帧级别ILIP优化算法的R-D点都位于传统ILIP方法的左方。这是因为维纳滤波器的使用减少了预测误差能量,所以需要传输的残差数据量大大减少。另外,与ILIP帧级别优化算法相比,本发明方法采用了精确的滤波器控制,获得了更高的编码效率。
总之,本发明方法在计算EL当前编码帧的ILIP信号时,首先采用传统方法计算ILIP信号,其次计算EL当前编码帧中每个块的方差值,根据方差值确定是否计算将该块数据用于维纳滤波器系数训练;接着将计算出的维纳滤波器系数用于块级别的滤波优化,并通过滤波结果确定是否应该对某个块进行维纳滤波;最后将滤波器控制标志位、维纳滤波器系数进行编码传输。在解码端,采用维纳滤波器系数对EL当前编码帧中滤波器控制标志位被置位的块的传统ILIP结果进行滤波。本发明能够克服SVC的传统ILIP方法及其优化算法在性能上的不足,获得最有效的ILIP结果,从而提高编码效率。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。