APP下载

基于FPGA的AVS帧内预测电路设计

2013-08-13李文军王祖强张贞雷

电子技术应用 2013年8期
关键词:宏块色度编码器

李文军,王祖强,徐 辉,张贞雷

(山东大学 信息科学与工程学院,山东 济南250100)

AVS(Audio Video coding Standard)是由中国数字音视频编解码技术标准工作组制定的标准,是国内第一个针对音视频产业需求而制定的标准。AVS-P2标准面向标清、高清视频编码应用,其采用了与H.264类似的技术框架。AVS标准在获得高编码效率的同时降低了实现的复杂度[1]。

帧内预测编码器包含编码过程和重建过程两个方向的码流分支。编码过程包括帧内预测模式选择、整数DCT变换、量化、熵编码等过程;重建过程则将编码过程中量化后的残差系数进行反量化反变换,最终得到重建像素[2]。图1所示为帧内预测编码器的硬件架构。编码器在预测一个8×8像素块时,需要使用相邻块的重建像素作为参考样本,编码器需要等待相邻子宏块完成最优预测模式选择、变换量化和反量化反变换后才能对当前子宏块进行预测,这种编码方法需要合理设计编码流水结构来保证编码速度。针对上述问题,本文提出一种帧内预测硬件结构,使用重建像素作为参考样本,具有相同预测值求解算法的预测模式共用一个预测器,在进行编码时无需等待参考样本重建过程,其并行处理电路结构提高了数据处理速度并且兼顾了编码图像的质量。

图1 帧内预测硬件电路设计框图

1 帧内预测算法分析

AVS帧内预测亮度块和色度块均采用 8×8块,亮度块共有5种预测模式,色度块有4种预测模式,其中色度预测模式有3种与亮度预测模式算法相同。帧内预测模式如表1所示。

表1 AVS帧内预测模式

预测模式算法如下[1]:

(1)Intra_8×8_Vertical

当 r[i](i=1~8)“可用”时,该模式才被使用,此时:

(2)Intra_8×8_Horizontal

当 c[i](i=1~8)“可用”时,该模式才被使用,此时:

(3)Intra_8×8_DC

①如果 r[i]、c[i](i=0~9)都“可用”,则:

②如果仅 r[i](i=0~9)“可用”,则:

③如果仅 c[i](i=0~9)“可用”,则:

④如果均不可用,则:

(4)Intra_8×8_Down_Left

当 r[i]、c[i](i=1~16)都“可用”时,该模式才被使用,此时:

(5)Intra_8×8_Down_Right

当 r[i]、c[i](i=0~16)都“可用”时,该模式才被使用,此时:

①如果 x等于 y,则:

②如果 x大于 y,则:

③如果 y大于 x,则:

(6)Intra_Chroma_Plane

当 r[i]、c[i](i=1~8)都“可用”时,该模式才被使用,此时:

其中,ia=(r[8]+c[8])<<4,ib=(17×ih+16)>>5,ic=(17×iv+16)>>5,ih=(i+1)×(r[5+i]-r[3-i]),iv=(i+1)×(c[5+i]-c[3-i])。

2 帧内模式预测电路流水线设计

AVS标准中定义宏块为一个16×16的亮度块和相应的两个色度块,4:2:0格式图像中一个宏块划分为 4个 8×8亮度块和 2个 8×8色度块,称为该宏块的子宏块,子宏块在宏块中的编号如图2所示。

[3]提出的帧内预测电路使用原始像素作为预测块的参考样本,在这一预测过程中编码器无需等待相邻块完成重建过程,这种方法虽然提高了编码的速度,但也降低了编码图像的质量[4]。针对上述问题,本文设计了帧内预测的并行流水线结构,在对8×8像素子宏块进行帧内预测时,像素重建过程与像素预测过程同时进行,帧内预测编码器无需等待重建过程,提高了编码效率。具体流水线设计如下文所述。

AVS标准中规定,对一帧图像进行编码时是以宏块为单位进行编码,宏块内编码则是以子宏块编号依次进行,亮度块与色度块分别编码。在对图3所示8×8子宏块F进行帧内预测时,相邻的上边和左边宏块已经完成了重建过程,参考样本存入寄存器中等待使用。当前预测块F为0号子宏块时,帧内预测使用的参考样本均来自相邻宏块的重建像素且参考样本 A、B、C、D、E均可用;当前预测块F为1号子宏块时,来自相邻宏块的参考样本A、B、E和来自0号子宏块的参考样本C可用,其他参考样本均不可用;当前预测块F为2号子宏块时,分别来自0号和1号子宏块的参考样本A、B和来自相邻宏块的参考样本C、E可用,其他参考样本均不可用,对于来自1号子宏块的参考样本,只用到参考样本块B中的第一个样本(即参考样本r[9]),由于相邻像素之间相似度很大,本文使用参考样本r[8]代替r[9],这样只需使用0号子宏块的重建像素;当前预测块F为3号子宏块时,来自0号、1号和2号子宏块的参考样本E、A、C和来自相邻宏块的参考样本B可用,宏块内的依赖性最强。同样可以得出,色度子宏块编码时在宏块中没有依赖性。所以在对子宏块逐块进行编码时,可以在亮度子宏块预测过程之间插入色度子宏块的预测过程。帧内预测器流水线设计如图4所示。由于1号、2号子宏块的参考样本均只来自0号子宏块的重建像素,因此可以依次对这两个子宏块进行预测,再对V色度子宏块进行预测,最后对3号子宏块进行预测。在对色度块进行预测的同时亮度块进行重建,在流水编码时无需等待相邻子宏块的重建像素,提高了工作效率。

图2 宏块划分为8×8 块(4:2:0 格式)

图3 帧内预测参考样本

图4 编码器流水线

3 并行帧内预测电路硬件设计

帧内预测编码器的另一个设计重点是模式预测电路的硬件设计。参考文献[5-6]提出了针对H.264中帧内预测的可重构硬件电路。该电路可根据预测模式的不同对运算模块和数据通路进行重构,从而达到对资源的最优化利用。其缺点是像素块处理速度慢,不利于实现高清实时编码。参考文献[7-8]针对预测值求解算法相同的模式设计了一个共用的预测器,从而优化硬件资源。本文采用第二种方法,通过分析各预测模式之间的关系,设计出一个模式通用的预测器,并采用8路数据并行处理,解决了可重构硬件电路处理速度慢的问题。

分析亮度和色度的预测模式算法,本文将帧内模式预测电路分为两部分,亮度块预测模式通用电路模块和Plane模式预测电路模块。

3.1 亮度预测模式电路设计

本文设计了8像素并行处理结构,即预测电路一个时钟完成8个像素预测,完成一个8×8子宏块所有模式的预测并得到最优预测模式最多需要8×5=40个时钟。分析模式预测算法,Vertical和Horizontal模式直接输出参考样本为预测样本值,即预测值为对应行或列的r[i]或c[i]值,只需要将参考像素RAM中的值直接输出;DC、Down_Left和 Down_Right模式结构中,均有两次(a+2×b+c+2)>>2的运算过程,其中 a、b、c为求取预测值相对应的参考像素,将其转化为两个并行结构的硬件电路,该电路只包含移位和加法器模块,硬件结构简单。该亮度预测模式硬件电路如图5所示。

图5 亮度预测模式通用电路

3.2 Plane预测模式电路设计

Plane预测模式是帧内预测中运算最复杂的模式[9],图6所示是本文设计的Plane预测模式硬件电路。由于参数 ia、ib、ic、ih和 iv均是由已知的参考样本经过运算得到的,因此可以在编码流水中提前在参考像素RAM中取出相应的参考像素并计算出ia、ib和ic的值供预测Plane模式时使用。在Plane预测模式中使用到的乘法运算均用移位来代替,节省了硬件资源。

图6 Plane模式硬件结构

为了简化Plane模式的硬件结构,假设A=ia+(-3)×ib+(-3)×ic+16,可以分析得出 PredMatrix[x,y]=Clip1((A+x×ib+y×ic)>>5), 其中 x×ib 和 y×ic运算可以转化 ib 和ic的移位加和运算。

4 仿真和综合结果

本文根据高清视频实时编码的实际要求,设计实现了AVS帧内预测编码器的硬件电路。该编码器每个时钟周期可处理8个像素,采用并行流水线结构对各个模式进行预测。该设计使用Verilog HDL语言完成硬件的编写,选用Altera公司的Cyclone II系列2C35 FPGA芯片进行了综合和验证,部分仿真结果如图7所示。其中enable_A~enable_E表示为预测块所用参考样本的可用性,valid_mode表示有效模式输出,PE0_out_reg~PE7_out_reg表示8个像素预测输出。从仿真图中可以看出,电路按照本文设计的流水线进行预测,每8个时钟周期完成一个预测模式的预测,预测结果正确。本设计所占用的逻辑资源数量较少,节省了硬件资源;且本设计提出的并行流水线结构能够提高帧内预测电路的工作速度,满足了高清视频实时编码的要求,对AVS高清视频编码芯片设计具有一定的意义。

图7 帧内预测编码器仿真结果

参考文献

[1]AVS工作组.信息技术先进音视频编码:视频[M].北京:中国标准出版社,2006.

[2]陈靖,刘京,曹喜信.深入理解视频编解码技术——基于H.264标准及参考模型[M].北京:北京航空航天大学出版社,2012.

[3]Zhu Xiangkui,Yin Haibin,Gao Wen,et al.An intra prediction pipeline architecture design for AVS encoder[C].Consumer Electronics(ICCE),2010.

[4]Wang Tu-Chih,Huang Yu-Wen,Fang Hung-Chi,et al.Performance analysis of hardware oriented algorithm modifications in H.264[C].Acoustics,Speech,and Signal Processing,2003.

[5]Huang Yu-Wen,Hsieh Bing-Yu,Chen Tung-Chien,et al.Analysis,fast algorithm,and VLSI architecture design for H.264/AVC intra frame coder[C].IEEE Transactions on Circuit and Systems for Video Technology,2005.

[6]刘凌志,路奇,戎蒙,等.一种并行结构的 H.264帧内预测器[J].上海交通大学学报,2006,40(1):54-58.

[7]Huang Yu-Wen,Hsieh Bing-Yu,Chen Tung-Chien,et al.Hardware architecture design for H.264/AVC intra frame coder[C].International Symposium on Circuits and System,2004.

[8]Kao Yu-Chien,Kuo Huang-Chih,Lin Yin-Tzu,et al.A high-performance VLSI architecture for intra prediction and mode decision in H.264/AVC video encoding[C].Asia Pacific Conference on Circuits and Systems,2006.

[9]宋健,王祖强,秦盼.H.264视频解码器中帧内预测模块的硬件设计[J].电子技术应用,2011,37(10):53-59.

猜你喜欢

宏块色度编码器
基于运动估计与补偿的雷达拼图预测分析*
基于FPGA的同步机轴角编码器
基于改进色度模型的非接触式心率检测与估计
应用旋转磁场编码器实现角度测量
景德镇早期青白瓷的器型与色度
如何提高苹果的着色度
JESD204B接口协议中的8B10B编码器设计
基于选择特征宏块的快速视频稳像
多总线式光电编码器的设计与应用
在线色度分析仪的设计应用