综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章EDA/PLD正文
 
H.264中高吞吐量算术编码器的FPGA实现
发布日期:2008-06-12 作者:王琨 陈新 来源:微计算机信息

摘要:H.264是国际上最新、最有前途的视频压缩标准,基于上下文的二进制算术编码器(CABAC)是H.264中一种高效的熵编码器,但其算法比较复杂,吞吐量不高。为此,提出了一种高吞吐量算术编码器的电路结构。在递归过程中,通过对两个符号的同时处理而提高吞吐量,从而提高编码速度。整体的电路采用流水线结构,该结构在spartan3 FPGA上实现,编码速度达到2bits/cycle,最高的时钟频率可达67.5MHz。
关键字:H.264;算术编码;FPGA;流水线

1 引言

H.264是由ITU-T和ISO/IEC的联合开发组共同开发的最新国际视频编码标准[1]。基于上下文的自适应二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)是H.264/AVC标准中的关键技术之一[2],它充分考虑了视频流的相关性,能适应信号统计特性的变化,容易达到渐进性能,是一种高效的熵编码方法。它的主要不足就是复杂度大[6],这造成了单纯用软件编码难以达到很高的性能,特别是对于实时应用,对于高清晰度视频不能实现实时编码,这样就需要硬件加速或者设计专门的硬件编码电路。

目前,对于CABAC中的算术编码单元主要采用Q和M系列编码器来实现。QM编码器设计较早,其算法较复杂且速度也较慢;MQ编码器是基于QM编码器的新设计,速度有所提高,但算法依然较复杂。

频繁的区间重整和复杂的字节输出是实现MQ编码器的难点。本文根据MQ编码器自身的特点,提出了区间重整的硬件加速算法,即每个周期同时处理两个符号,设计了基于FIFO的高吞吐率输出模块,并对流水线进行合理调配,使其在FPGA上以较优的速度和资源实现了流水线结构并提高了吞吐量。

2 MQ编码器的原理

MQ编码器的结构分为概率估计、区间分割与重整以及进位输出三部分,如图1。


 

图1 MQ编码器的基本结构图

 


系统以待编码比特(Bin)以及上下文编号(CtxIdx)为输入,其概率模型包括低概率符号(LPS)和高概率符号(MPS)的概率状态(StateIdx)。概率估计部分根据CtxIdx读取概率模型,查找状态转移表得到更新的概率模型并写入上下文存储器,概率区间以宽度R和下界L表示,在区间分割过程中按表1进行修正,其中rlps代表LPS的概率。

表1 MQ编码器区间分割基本流程表

 

    在重整过程中,必须满足R在[0x100,0x1FF]的范围内,每次递归运算后,R可能会变得更小,所以要保持上述的要求,就需要对寄存器进行由低位向高位的移位,同时空出来的低位补零,直到第一个非零位在寄存器允许的取值范围移到最高位。当然L也要通过移位与R保持一致的精度。采用MQ编码器,其区间重整过程较复杂,且吞吐量不高,一个周期最多处理一个符号。MQ编码器具体的区间重整过程可参见文献[3]

3 高吞吐量算术编码器的原理

为了达到更高的吞吐量,提出了基于MQ编码器的双符号算法。在区间重整和分割时,采用在一个周期内同时处理两个符号的方法,这样可以使吞吐量变为原来的两倍。

在CABAC编码器中,待编码比特分为低概率符号(LPS)、高概率符号(MPS)和等概率符号(EQ)。等概率符号不存在概率模型,而三种概率符号均要进行区间分割与重整。双符号算法的要点就是把一个EQ和一个MPS或LPS同时处理或者是把两个EQ同时处理。即一个EQ可以和MPS、LPS、EQ中的任何一个符号同时处理。R和L在区间分割与重整过程中的具体流程如表2。也可以用这种方法把三个或更多的符号同时处理,但这会增加一个周期的时间。

 
表2 高吞吐量编码器区间分割基本流程表

 


4 硬件结构

   由于算术编码的递归性,数据的延迟可能给流水线结构造成困难。但是从表2可以看出,L的重整要依赖于R,而R却不依赖于L,因此两个参数的重整可以分开进行。硬件设计采用两级流水线结构,这样可以提高处理速度。具体结构如图2所示。


 

  

图2 高吞吐量编码器基本结构图


                   

图3 R更新图

图4 L预估计图


 

如图2所示,从输入到并行的六个寄存器为第一级流水线,以后为第二级流水线。在第一级流水线中,使用两个R更新模块同时对两个输入符号的区间宽度R进行更新和重整。R更新模块的结构如图3所示,对于MPS,选择减法器输出的结果进行重整并作为最后输出;对于LPS,选择rlps进行重整,由于要使R在[0x100,0x1FF]的范围内,因此采用和文献[4]相似的首一检测器(LOD)和移位电路,并作为最后输出;对于EQ,在R更新模块中不采取任何措施。对于L的重整,除了移位之外还包括减法和乘法运算,因此要进行L预估计,其结构如图4所示。它的结构流程如表2的最后一行所示,以待编符号1和待编符号2的移位值对L分别进行移位。当计算出L预估计和L的值后,将两者相加作为输出并将低十位再赋给L。由图2可知,第一级流水线的关键路径是R更新模块,因而同时处理两个符号并不会影响关键路径。

5 试验结果

    本文的算法经过VC++仿真验证,可对H.264标准中的主要档次视频码流进行编码,其结果与H.264标准程序JM8.6相同。电路结构采用Verilog语言进行RTL级描述,并用modelsim6.0软件仿真通过,使用spartan3 FPGA进行综合、布局布线,面积和时间结果如表3。其中逻辑单元298(占16%),存储单元24(占13%),最高的时钟频率可达67.5MHz。

模块 

面积/单元数

周期/ns

R更新模块

168

14.8

L更新模块

154

9.1

总计

322

14.8

表3 高吞吐量算术编码器硬件实现资源表

 

本文对MQ编码器的最大改进是同时处理两个符号,和文献[5]H.264中的MQ编码器以及文献[4]JPEG2000中MQ编码器作比较,得出如表4所示的结果。

类别

速度(Mhz)

吞吐量(bit/circle)

延迟

面积

本文

67.5

2

3

322

常规

30

0.2

5

478

JPEG2000

50

2

4

898

表4 不同算术编码器硬件实现的资源对比

 

通过上表可以看出,与H.264中的常规MQ编码器以及JPEG2000中MQ编码器相比,本文设计的算术编码器无论在速度、吞吐量、延迟和面积上均有所的提高,因而不仅能完成H.264标准中基本档次,还有望应用于更大尺寸更高质量的实时视频压缩编码。

6 结论

本文在对H.264视频压缩标准所采用的MQ编码器进行研究和分析的基础上,提出了一种高吞吐量的电路结构,采用流水线方式实现了电路。本结构经spartan3 FPGA实现,吞吐量为每周期2bits,最大时钟频率为67.5Mhz,能够适应H.264中level3乃至其上档次实时视频编码的要求。

 

参考文献

[1]   Joint video team (JVT) of ISO/IEC MPEG and ITU-T VCEG draft ITU-T recommendation and final draft international standard of joint video specification[S]. Pattaya, Thailand: Final Committee Draft, Document  JVT-G050,7th Meeting, 2003. 7-14.

[2]   R. Osorio, J. Bruguera, “Arithmetic coding architecture for H.264/AVC CABAC  compression system,” in Proc. Euromicro Symposium on Digital System Design, 2004, pp. 62–69.

[3]   Detlev Marpe, Heiko Schwarz, Thomas Wiegand. Context-based adaptive binary arithmetic coding in the H.264/avc video compression standard [J].IEEE Circuits and Systems for Video Tech, 2003,13(7):620-635.

[4]   华林,朱珂,张倩苓等,一种适用于JPEG2000的高速MQ编码器的VLSI实现,固体电子学研究与进展,Vol:23, No.4, 2002

[5]   V. H. Ha, W.-S. Shim, and J.-W. Kim, “Real-time MPEG-4 AVC/H.264 CABAC entropy coder,” in Proc. Int. Conf. Comsumer Electron. (ICCE), vol. 2005, pp. 255–256.

[6]   纪永昌,孙军温.H.264/AVC的复杂度分析以及实时实现[J] .微计算机信息,2007,    

      1-3 :P269-270


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
H.264视频编码技术研究与应用 (08-27)
针对硬件实现的H.264视频编码算法改进 (03-23)
基于Blackfin533的H.264编码 (09-07)
基于DSP TMS320DM642的H.264视频编码的实现和优化 (09-30)
使用异类处理器实现H.264算法 (11-11)
嵌入式设备的静止图像编码 (12-12)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号