H.264 baseline解码器中运动补偿模块的硬件设计

技术分类: EDA工具与服务  | 2008-04-24
来源:电子技术应用 | 清华大学 俞 尧 杨华中

  2.3 亚像素插值模块

  为尽可能减少片内存储器的数量并兼顾速度,亚像素模块对亮度采用4×4块串行处理的工作方式。即在一段时间内集中处理一个4×4 亮度块的数据。如果当前单元大于4×4,则必定将其划分为多个4×4块,并且这些4×4块之间享有相同的运动向量。类似的,对于色度数据则采用2×2块串行处理的工作方式,即在一段时间内集中处理一个2×2亮度块的数据。在同一个4×4或2×2块内,则采用逐行计算的顺序。

  对于亮度部分,需采用6抽头的滤波器来实现整像素到半像素的插值。考虑到6个抽头的加权系数为[1,-5,20,20,-5,1],如果直接采用乘法器实现乘系数的运算,则必然导致较高的硬件开销。因此采用两种基于加法器的设计来分别实现横向和纵向的半像素插值。这两种滤波器的结构分别如图4(a)和图4(b)所示。

滤波器的结构

  在图4所示滤波器中,Sx表示将输入数据向左移x位,而L表示将输入数据延迟一个时钟。在图4(a) 中,N×5用N+(N>>2)实现,N×20用(N>>4)+(N>>2)实现。图4(b)采用类似的方法。经过合理的设计,仅采用一个加法器就实现了对6个抽头的乘系数操作。

  同理,对色度像素也作了基于加法器的设计,整个操作全部采用加法器和移位器实现,大大节省了硬件开销。

  2.4 周边模块简介

  图像重建模块负责将像素残差和像素的估计值求和,并将结果回写入外存。H.264解码器包含运动补偿模块和帧内补偿模块,像素的估计值可能来自两者,不同来源地的数据都在该模块内处理。因此图像重建模块被独立为一个模块,而不从属于运动补偿模块。

  另一方面,参考帧数据在外存中按照某种结构存储,对外存的读写需要提交存储器对应地址,而解码过程中产生的像素位置值是其在图像中的坐标。地址转换模块的作用是完成两者的转化,并将转换结果输送给DRAM接口。

  上述周边模块的设计也已完成。

  3 功能验证与综合

  本运动补偿模块已通过利用Modelsim XE 5.7c进行的功能仿真。在功能验证时,采用与H.264标准配套的jm86生成测试向量。将Verilog模型计算结果与jm86本身运算结果比对,两者完全一致。

  本模块利用synplify pro 8.1针对XILINX sparten3 的FPGA开发板进行综合,结果显示共使用了6157个LUT。利用Synopsys的design vision针对smic18工艺进行综合,通过了本运动补偿模块的可综合性验证。

  参考文献

[1] Draft ITU-T Recommendation and pre-publish draft international standard of jointVid sopecification(ITU-T Rec.H.264ISO/IEC 14496-10:2005(E)) Joint Video Team(JVT), Mar.2005.
[2] Iain G.Richardson.International electrotechnical commission video coding for next-generation multimedia,0-470-84837-5,2003.
[3] HE Wei feng,MAO Zhi gaig,WANG Jin riang,et al.Design and implementation of motion compensation for MPEG-4 AS profile streaming video decoding,0-7803-7889-x/03,IEEE,2003.
[4] CHIEN Chih Da,CHEN Ho Chun,HUANG Lin-Chieh,et  al.A low-power motion compensation IP core design for  MPEG-1/2/4 video decoding,0-7803-8834-8/05,IEEE, 2005.

0
0
(请您对文章做出评价)
1】【2
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会