找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] H.264视频解码器中帧内预测模块的硬件设计

[复制链接]
admin 发表于 2013-3-23 02:34:20 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 提出一种能实时处理的H.264/AVC帧内预测硬件结构。通过对H.264/AVC各个预测模式的分析,设计了一个通用运算单元,提高了硬件资源的可重用性。采用4个并行运算单元计算预测值,对运算比较复杂的plane模式预处理,并设计模式预测器,加快了系统处理速度。硬件电路结构已通过RTL级仿真及综合,并在Altera公司的Cyclone II FPGA平台上进行了验证和测试。
关键词: H.264;解码器;帧内预测;硬件
       H.264/AVC是由国际电信联盟(ITU)和国际标准化组织(ISO)共同提出的最新一代数字视频压缩标准,它吸取了以往压缩技术的精华,又引进了其他压缩技术无法比拟的许多新技术,因此,H.264在通信领域得到了广泛应用。H.264/AVC压缩效率很高,但算法的复杂度和运算量同时也大大增加,为了满足视频解码实时性的要求,寻求更有效的解码技术成为重要的研究课题。
     帧内预测是视频编解码中重要的一部分,其主要功能是降低图像的空间冗余。本文根据H.264/AVC 帧内预测的特点并结合对其算法的分析,提出了一种帧内预测硬件电路结构,有效地减少了硬件电路面积,提高了解码的性能。
1 H.264帧内预测算法介绍
     H.264视频解码器中,对于I和SI宏块类型采用帧内预测来解码。帧内预测模块的输入是当前宏块相邻左边块和上边块环路滤波前的像素值及参考预测模式,输出是当前宏块的预测值。预测值与反变换反量化得到的残差值重构,得到宏块的像素值。完成后,当前宏块的部分像素值和预测模式要进行存储,为后面宏块解码提供参考值。
     H.264中亮度预测分两类,一类是针对图像中含有大量细节的部分采用4×4块的预测模式(有9种预测模式);另一类是对图像中比较平缓的区域采用16×16块的预测模式(有4种预测模式)。色度预测是8×8块的预测模式,有4种预测模式,这4种预测模式与亮度16×16的预测模式相似,也有竖直、水平、DC和平面模式。所有的预测模式都是根据左边块和上边块的参考值,计算当前宏块的预测值。
2 硬件实现
     根据帧内预测算法,硬件结构划分为predmode模块、plane模块、prediction模块、reconstruct模块、left_pixels模块、predmode_ram、prediction_ram、sample和prediction_output模块。如图1所示,其中left_pixels、prediction_ram、predmode _ram、sample和prediction_output模块都是存储单元,分别存储的是当前宏块左边块的参考值、当前宏块上边块参考值、当前宏块上边块的参考预测模式、提取的参考像素值和当前宏块预测值输出;predmode模块预测计算出当前块的预测模式;plane模块是对plane预测模式的预处理;prediction模块是帧内预测的核心计算单元,4个PE单元并行运算,一个时钟周期解码出一个4×4的一列4个预测值;reconstruct模块的功能是实现重构。
    20121107051601147082991.gif
   2.1 predmode模块设计
     Intra_16×16和Intra_Chroma的预测模式可通过语法元素解析直接获得,所以本模块的主要任务是解析Intra_4×4的预测模式。
     本模式预测器的输入是当前4×4亮度块的luma_4×4BlkIdx(块索引)、解析的语法元素和当前宏块的信息。输出是当前宏块的16个子块的预测模式mb_predmode。predmode_ram中存储的是当前宏块上边一行4×4块的预测模式,如图2阴影部分所示。左边块的预测模式存储在predmode模块内。对于高清图像(分辨率为1 920×1 080)来说,predmode_ram需要的存储空间为1 080 bit。
    20121107051601193952992.gif
       如图3所示,E是当前块,A是左边块,B是上边块,D是左上边块,C是右上边块。predmode模块的结构如图4所示,图中predmode_B模块的作用是获得当前宏块E的上边块B的预测模式,预测当前宏块E的子块0、1、4、5,需要从predmode_ram中读取上边块的参考预测模式,其他子块的上边块参考预测模式是当前块已解码子块的预测模式。predmode_A模块的作用是获得当前宏块E的左边块A的预测模式,预测当前块E的子块0、2、8、10时,左边块预测模式从reg_A里读取。当宏块E的16个子块预测完成时,把5、7、13、15子块的预测模式存储到reg_A中,为下个宏块模式预测提供左边块参考值。
    20121107051601225202993.gif
    20121107051601240832994.gif
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-24 03:23 , Processed in 0.054862 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表