H.264及AVS双模视频解码器中帧内预测的硬件设计与实现
2008-07-09
作者:姜 弢,周佩海,MIN Bah
摘 要: 根据H.264/AVC及AVS的特点,设计出一种适合于帧内预测" title="帧内预测">帧内预测解码的硬件实现方式,并根据H.264和AVS帧内预测运算上的相似性提出了基于可重构" title="可重构">可重构的并行结构,有利于提高解码速度,并将该结构配合其他设计好的解码器模块,在FPGA上实现了高准清晰度的H.264及AVS视频的实时解码" title="实时解码">实时解码。
关键词: H.264 AVS 帧内预测 视频解码系统
AVS是中国第一个具有自主知识产权的数字音视频编解码标准,全称是《信息技术先进音视频编码标准》。AVS是基于我国创新技术和部分公开技术的自主标准,是国内惟一的相关行业标准。H.264/AVC标准是由ISO/IEC的运动图像专家组(MPEG)和ITU-T的视频编码专家组(VCEG)共同制定的新一代图像压缩标准。这两种标准在编码效率上较之以往的视频压缩标准都有显著的提高,但与此同时硬件实现解码的复杂度也随之上升,给硬件设计带来挑战。本文针对H.264及AVS高清视频解码芯片帧内预测模块的设计进行论述,在分析H.264和AVS帧内预测值求解算法的基础上,利用其运算上的相似性,提出了一种针对片上系统(SoC)速度较快同时面积较小的基于可重构并行结构的硬件设计方法,从而达到资源的最优化利用。
在设计方法上采用自顶向下的方式,设计了C语言模型验证解码算法并为仿真提供测试向量。在设计的每一步都进行仿真,以保证设计的正确性。最后配合本项目其他设计模块进行FPGA验证,在FPGA上能够实时解码高清晰度视频,并用0.18μm工艺库作了综合,评估了电路面积和性能。
1 算法简介
1.1 H.264帧内预测算法简介
H.264/AVC集成了H.263+帧内预测的经验,通过其左边和上边已经解码后的像素值来预测当前块,这些用作参考的像素值是没有经过去块效应滤波的数据。每个宏块" title="宏块">宏块可以按16×16或4×4两种模式进行预测。如图1,对于4×4块,每个像素都可用17个最接近先前已编码的像素(A~L,Q)的不同加权和来预测,共有9种预测模式,图1示出了8个方向的预测模式。还有一种是DC模式,采用平均值进行预测。除了4×4亮度块预测之外,还有16×16亮度预测模式和8×8色度预测模式。解码时,按照所选的预测模式和参考像素得出预测值,然后与残差相加便得到重建后的图像数据。
若选定MBAFF模式,每个slice由一系列16像素宽32像素高的宏块对组成。每个宏块对按照2个帧宏块或是2个场宏块操作,如图2所示。可以根据图像不同区域的情况选择最优模式进行编码,使其更为灵活。
1.2 AVS帧内预测算法
AVS的帧内预测技术沿袭了MPEG-4 AVC/H.264帧内预测的思路,用相邻块的像素预测当前块,采用代表空间域纹理方向的多种预测模式。但AVS亮度和色度帧内预测都是以8×8块为单位的。亮度块采用5种预测模式,色度块采用4种预测模式,而这4种模式中又有3种和亮度块的预测模式相同。在编码质量相当的前提下,AVS采用较少的预测模式,使方案更加简洁,实现的复杂度大为降低。
1.3 预测模式的判断
H.264和AVS的预测模式选择算法思路相同,区别只是针对不同大小的块,现以H.264的预测模式选择进行说明。
对于H.264,4×4块的帧内预测模式选择必须告知解码器。对帧内模式而言,相邻的4×4块的预测模式之间具有很强的相关性。根据当前4×4块的左边块B和上边块A的预测模式可以预测当前块的最可能模式(Most Probable Mode,MPM)。如果A、B块使用的预测模式都是模式1,则对当前块E的最佳预测模式也可能是模式1。为了利用这种联系,预测编码对4×4的帧内模式进行信号标识。对每个当前块E,编码器和解码器计算最可能的预测模式(A,B的最小预测模式)。如果A、B块不能获得(在条带外或没有使用4×4),则A、B相应的值设为2(DC模式)。编码器为每个4×4块发送一个标志符flag,如果标志符置1,则最可能的预测模式被使用。如果置0,由编码器发送过来的预测模式rem_mode显示模式的变化。如果它的值比当前最可能预测模式的值要小,则预测模式被设为rem_mode;否则,预测模式设为(rem_mode+1)。用这种方法,rem_imode只需要8个值(0~7)就可以标识当前的帧内预测模式(0~8)。利用这种相关性可以减少编码的比特数。
2 总体结构设计
本文所设计总体结构如图3,任务包括两部分:(1)完成对帧内预测模式下的像素值的预测;(2)完成对帧内预测和帧间预测图像像素的重建,将像素的重建值送入下一个模块。
2.1 外部模块结构
其中FIFO是用来对从解码器的其他模块输入当前宏块数据进行缓存,并提供给IPRED。
(1)Firm ware:解码器的软件部分,向IPRED发送32位的cmd命令,命令中包括是否为MBAFF模式及当前宏块邻块是否存在等。
(2)VLD:变字长解码部分,往IPRED发送66位的预测模式mode。在4×4预测模式下有16个亮度小块的预测模式和1个色度模块的预测模式。亮度模式每个占4位色度,色度模式占两位,即16×4+2=66,从高到底,依次为1~16的亮度块预测模式,最低两位为亮度模式。在16×16类型有1个亮度模式和1个色度模式,亮度占66位中的最高4位,色度紧跟后面2位。
(3)IQ:残差的反量化部分,VLD通过IQ向IPRED转发cbp数据,用来判断是否残差。若cbp为0,则当前块无残差;cbp为1时说明当前块有残差。
(4)IT:残差的反变化部分,其将反量化反变化后得到的残差系数传给IPRED。
(5)INT:在帧间预测中的插值运算、加权预测并发送一个宏块的运动补偿数据输出到IPRED模块。
2.2 内部模块结构
Ipred_main and reconstruction模块是实现帧内预测的核心部分。
整个模块的简要工作流程如下:首先针对cmd命令进行解析,若为帧内预测则利用命令对当前宏块的临块可用性进行判断,将参考的像素及参考预测模式从RAM中取出,再将参考预测模式送入模式判断单元,并与VLD输入到该模块mode一起计算出当前块所采用的预测模式。然后计算单元根据预测模式和参考像素值计算出像素预测值。接着利用cbp判断出当前块是否有残差,从而决定是否提取残差系数,完成像素的重建;若为帧间预测,则首先从MC FIFO中提取运动补偿数据,与残差系数相加便得到像素的重建值。预测工作流程图如图4。
3 可重构并行结构设计
考虑到是H.264、AVS两个标准的可复用" title="复用">复用性,若能找到其中可复用的部分,这对减少硬件资源开支将起很大的作用。根据上一节中对各种预测模式的算法介绍,可以分析出H.264中的Intra16x16、色度预测模式以及AVS中的色度预测模式在算法上很相似,可以将三个部分进行复用。
除去可复用部分,现在剩余有18个预测模式,若每一个预测模式都对应一个预测器,则一共需要18个预测器。这虽然能够达到实时解码的要求,但是这种结构明显是以牺牲系统的复杂度以及硬件资源为代价的,这在硬件的实现上也是不可取的。考虑到在解码端,由于预测的模式已经确定,所以每个块中的像素点的预测值只需要计算一次,故在一次预测值的求解中,会有其他17个模块处于空闲状态,这就造成很大的硬件资源浪费。此外还可以发现对于不同的模式,虽然对应着不同的预测值的求解方式,但是实际上多种模式之间可以共享一些运算模块,从而寻求部分硬件资源共享的形式。
通过分析帧内预测解码的特点,提出了一种将所有预测模式的计算都集中到一个运算单元,在不同的模式下分别对各个运算单元的各个模块的参数进行控制,从而实现预测期的可重构。在这样的结构下,每个单元可实现每一时钟处理一个像素的能力。为了提高处理能力和速度,同时采用了8个运算模块进行并行处理,图5为设计框图。
图5 帧内预测可重构并行结构设计框图
由图5可见,该设计包含了5个主要模块和8个运算模块。其中参考像素点存储在RAM中,根据预测需要从其中提取出来。控制模块根据模式的判断,对数据预处理模块进行控制。数据预处理模块是为了一些特定的模式而设立的,进行一些计算前的数据处理,尤其是对Plane模式下的数据处理。数据通过MUX模块的选择后分别送入8个并行的运算模块,计算得到相应的预测值经过Pred模块输出。
4 逻辑仿真与综合
编写测试文件(test_bench),使这些测试向量正确地加载到要测试的模块接口上。Verilog代码在modelsim下解H.264和AVS码流的部分波形图如图6、图7。其中i_clk为时钟信号,mb_type为表明当前宏块是帧内预测还是帧间预测,i_jvt_enable、i_avs_enable表示当前是H.264还是AVS,pred_data为像素的预测值;o_store_fifo_data是像素的重建值,rem_data为软件模拟器得到的像素重建值,o_block_mode为当前块的预测模式。
图6 H.264部分的功能仿真波形
图7 AVS部分的功能仿真波形
用Synopsys的Design Compiler在0.18?滋m CMOS单元库下综合,最高频率能够达到66MHz。
整个帧内预测部分与H.264解码器的其他部分集成在一起,通过了FPGA验证,用Xilinx的Vertex 4000-6型FPGA,能够实现H.264高清晰度视频的实时解码。用CMOS综合,最高频率166MHz,可以实现高清晰度视频的实时解码。
本文提出了一种H.264及AVS帧内预测的硬件结构,采用Verilog语言设计实现,用Xilinx的FPGA Vertex 4000进行了验证,对H.264 baseline及AVS的高清晰度视频码流实现了实时解码,并用0.18μm工艺库作了综合,评估了电路面积和性能。
参考文献
[1] Changsung Kim,Hsuan-Huei Shih and C.C.Jay Kuo.Multistage Mode Decision for Intra Prediction in H.264 Codec.IS&T/SPIE 16th Annual Symposium EI,Visual Communications and Image Processing,Orlando,Florida,2004,1.
[2] Changsung Kim,Hsuan-Huei Shih and C.C.Jay Kuo.Feature-Based Intra-Prediction Mode Decision for H.264.IEEE Proceedings of International Conference Image Processing,submitted,Singapole,2004,10.
[3] 中国音视频标准工作组.信息技术 先进音视频编码 第二部分:视频(Information technology-Advance coding of audio and video-part2:video(报批稿),2005.
[4] Joint Video Team(JVT) of ISO/IEC MPEG & ITU-T VCEG,Proposed Draft Errata List with Revision-Marked Corrections for H.264/AVC[M],2003,12.