新闻中心

EEPW首页 > EDA/PCB > 设计应用 > H.264中二进制化编码器的FPGA实现

H.264中二进制化编码器的FPGA实现

作者:时间:2009-10-20来源:网络收藏

第2级流水线包含6个模块,分别代表6种化方法。其中U编码、mb_type/sub_mb_type语法元素编码模块较易实现。因为输入语法元素的位宽为6位,数据量不大,分别按照其编码方法制成码表,且此码表所耗资源不多,在硬件实现时以RAM的方式实现,速度较快。对于UEGK0和UEGK3 编码模块的实现,则需采用U编码和EGK编码相结合的硬件方式完成,具体基本结构如图4所示。

本文引用地址:http://www.eepw.com.cn/article/191909.htm

图4中,首先由预处理器判断目前比特所进行的编码,在EGK编码中,主要采用首一检测及桶形移位技术实现,最后将两种编码相加输出。
对于UEGK0和UEGK3编码模块,只需选取不同阈值可实现。对于语法元素mb_qp_delta,采用有正负符号的EGK编码,正负号由语法元素值的奇偶性决定。对于语法元素coded_block_patterm,则采用FL与TU相结合的编码方式,因FL与TU编码的数据量均不大,故采用查表方式实现,这样可提高速度,其中FL编码的界限值为15,TU编码的界限值为2。
第3级流水线的主要功能是选择。第2级输出包括已编元素(binary_value)和上下文模型参量(ctxOffset0、ctxOff-set),在第3级中,通过选择信号(selector)对不同输出作以选择。第4级流水线为32位先进先出(FIFO)存储器。对结果进行缓存,有利于下一级处理。
第5级为串行化器,主要对化的数据进行处理,使其按位输出,并将化后的每一位加入其对应的上下文模型,以便后续处理。整个系统的输出即为二进制化后的每位数据(sda)及其偏移(ctxIdxl)。

5 电路仿真及性能分析
该算法经VC++仿真验证,可对H.标准中的主要档次视频码流进行编码,其结果与H.标准程序JM8.6相同。电路结构采用Verilog语言进行RTL级描述,并用mod-elsim6.0软件仿真,后仿真波形如图5所示。

由图5可看出,每个周期中,在使能信号有效的情况下,在时钟的上升沿,可产生1 bit数据sda及相应的偏移量ctx-Idx1,满足设计时序要求。电路在Spartan3 上综合、布局布线,使用Synplify丁具进行综合,最高时钟频率为100 MHz,影响时钟频率的关键路径为先进先出存储器模块。将综合好的edif电路网表文件输入到后端厂商Xilinx的Foundation软件进行布局布线,生成二进制流文件,逻辑单元为171,占总资源的4%。使用设计的电路对H.标准中一些标准视频序列进行测试,序列质量为QP=28,并与H.264标准程序JM8.6中二进制化部分的编码时间比较,结果如表2所示。

综上,本文对H.264二进制化部分的优化使其在速度上较软件实现有较大提升,资源占用率也较少。二进制化部分的硬件设计不仅能完成H.264标准中基本档次的编码,还有望应用于更大尺寸更高质量的实时视频压缩编码。

6 结论
在对H.264标准中二进制化部分研究和分析的基础上,提出其电路结构,采用并行结构及流水线方式设计电路。该结构经Spartan3 FPGA实现,其吞吐量为每周期1 bit,最大时钟频率为100 MHz,能够满足H.264中第3级及其以上档次实时视频编码的要求。


上一页 1 2 3 4 下一页

关键词: FPGA 264 二进制 编码器

评论


相关推荐

技术专区

关闭