H.264标准二进制算术编码IP核设计:H的二进制
摘要:设计了一款基于H.264二进制算术编码算法IP核。针对该算法硬件实现特点,对其算法结构进行特别优化,并在Verilog HDL实现过程中,以JM86源代码为模型进行功能验证。在TSMC 0.18μm工艺下,达到频率200 MHz,面积0.027 mm2,能够满足实际应用要求。
关键词:IP核 二进制算术编码 H.264
中图分类号:TN43
esign of Binary Arithmetic Coding IP Core for H.264
CHEN Chuan-dongHE Ming-huaWANG Ren-ping
(Department of Microelectronics, Fuzhou University, Fuzhou, Fujian, 350002,China )
Abstract: This paper presents the binary arithmetic coding IP core based on H.264.Depending on the characteristic of hardware accelerator,this paper presents the optimized architecture for binary arithmetic coding.The architecture is described by Verilog HDL and tested byJM86.The whole system is up to 200 MHZ frequency by adopting TSMC 0.18μm cell library,and is able to achieve the requirement of practical application.
Key Word:IP core,binary arithmetic coding,H.264
EEACC:1205
1引言
H.264是新一代视频压缩编码标准[1],目前业界关于H.264的解决方案,达成了一个共识:在编解码系统中,速度瓶颈部分通过硬件加速器解决。CABAC中的二进制算术编码算法复杂,软件实现占用较多CPU资源,是整个编码器的速度瓶颈之一。因此对二进制算术编码IP核进行研究具有比较重要的意义。
本文基于H.264的二进制算术编码算法,针对硬件实现特点,对算法进行特别优化,对输出数据进行重整,采用Verilog HDL进行电路描述,以H.264官方JM86源代码为功能验证模型,设计了一款IP核。
使用TSMC 0.18μm工艺库,在时钟频率约束为200 MHz情况下,占用面积为0.027 mm2,能够满足实际应用要求,可以作为SOC的IP软核,被嵌入到整个H.264编码芯片中。
2算法介绍
2.1 算术编码原理
设信源字符集 X ={X1,X2,X3,……Xn-1},每个符号的概率分布为P={P1,P2,P3,……Pn-1},其中Pi =1。
把[0,1] 区间划分为互不重叠的子区间,区间长度用变量R表示,区间上限用变量H表示,区间下限用变量L表示,编码第一个符号,R初始值为1,H初始值为1,L初始值为0。依据下列公式得到新的区间:
LNEW=L+R×P1;
HNEW=L+R×(P+P1);
公式中,LNEW为新区间的下限,HNEW为新区间的上限,P表示当前符号的概率,P1表示当前符号以前的所有符号的概率和[2]。算术编码器对整个消息只产生一个码字,这个码字是间隔为[0,1)中的一个实数,只要解码器预先知道这个实数值,经过反推算,便可以唯一地解出编码前的字符串。
二进制算术编码的原理与上述算术编码类似,所不同的是:在二进制算术编码中编码序列只有“0”和“1”两种符号,所涉及的概率也只有P(0)和P(1)。在编码过程中,输入数据流中的信源符号被分为大概率符号(MPS)和小概率符号(LPS)。若MPS为“0”,则LPS为“1”;反之,若MPS为“1”,则LPS为“0”,概率区间分成两份,一份是MPS的编码区间,一份是LPS的编码区间。
2.2H.264中二进制算术编码算法
鉴于算术编码的迭代过程中含有整数的乘除运算,为便于实际应用,H.264中的二进制算术编码区间长度R取值范围为28≤R 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 根据H.264标准,L的重整次数和R的重整次数相等,L的重整可以采用移位电路实现。由上文所述可知,iter的最大值为7,所以可以组合7级移位电路,然后根据iter的值来选择其中一个作为最后的L值。L每重整一次都要根据新的L的最高两位即第10位和第9位的值来确定是否有编码数据可以输出,若无数据输出,则outstanding的值加1。
为了提高速度,第二级流水线只用来计算L更新后的最新值,第三级流水线用来计算outstanding的值,第四级流水线用来整合L重整后输出的0、1及outstanding的值,第五级流水线用来对齐数据。
4功能验证及逻辑综合
4.1 功能验证
根据上述设计,编写各模块代码,并用modelsim进行仿真验证,时序波形如图4所示。因为一次区间重整产生的编码输出位数是不确定的,通过数据整合去掉数据中的无效位,所以输出数据的周期性也是不确定的,当有效数据满32位可以输出时,同时输出使能信号en。
为了验证二进制算术编码功能的正确性,本文以H.264官方源代码JM86为参考模型及数据源,用c语言编写二进制算术编码程序,在输入测试数据一致的情况下,上述仿真结果与c程序结果完全一致。
4.2 逻辑综合
本文采用TSMC提供的0.18μm标准单元库,使用Synopsys公司的Design Compiler进行逻辑综合,综合关键约束如表1所示:
综合结果表明,在没有插入扫描链,时钟频率为200 MHz情况下,关键路径slack为0.06 ns,DC面积报告为 0.027 mm2。
4结论
本文结合电路硬件实现的特点,采用五级流水线实现H.264二进制算术编码IP核,作为SOC平台的IP软核,若被嵌入到整个H.264编码芯片中,在满足H.264各种档次的编码速度要求的情况下,可以适当降低逻辑综合的时钟频率以减小面积。
参考文献
[1]毕厚杰.新一代视频压缩编码标准――H.264/AVC[M].北京:人民邮电出版社,2003.
[2] Thomas W, Gary J.S, Gisle B, etc. Overview of the H.264/AVC Video Coding Standard. IEEE TRANSAC- TIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, JULY 2003.
[3] Marpe D., Heising G., Blattermann G., and Wiegand T., “Fast arithmetic coding for CABAC,” in Joint Video Team of ISO/IEC JTC1/SC29/WG11 & ITU-T SG16/Q.6 Doc.JVT-C061, Fairfax, VA, Mar. 2002.
[4] 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.
[5] Draft ITU-TU Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264/ISO/IEC 14496-10AVC) [S].Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, JVT-G050, 2003:179-232.
作者简介
陈传东,硕士,助教,主要研究方向为数字集成电路设计。
何明华,教授,博士生导师,主要研究方向为集成电路与嵌入式系统设计。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文
