H.264视频解码芯片中与滤波相关的存储器的设计
H.264 作为新一代的视频编码标准有着优异的性能,广泛应用于视频会议、视频点播、数字电视广播、数字视频存储以及消费电子等多个领域。与H.263或MPEG-4 相比,同等图像质量下,码率能降低一半左右,但是算法复杂度高。
H.264 标准在低码率的情况下能产生高质量的画面,主要就是采用了自适应的环路滤波。H.264 采用了基于树状结构的块的运动补偿,基于块的运动补偿能很好地降低码率, 但这同时也引起了方块效应。
由此H.264 采用了一种自适应的滤波算法,能够很好地降低方块效应, 但同时也带来了极大的运算复杂度。在H.264 中,滤波后的数据将作为下一帧的参考帧,因此又称为环路滤波。研究表明:在H.264 解码过程中其中运动补偿(MC)约占30%,环路滤波(DF)约占20%的解码时间,因此很好的设计MC 与DF 对解码器的性能至关重要。
1 滤波过程用到的数据
H.264 中, 在MBAFF 情况下的解码中宏块都是以宏块对的形式出现。因此在存储数据的时候也考虑到以一个宏块对的数据为单位进行存储。在一个宏块对中, 滤波时整个过程中需要操作的数据如图1 所示。其中每一个小方块表示一个4×4 像素的block,在滤mb_up 宏块时需要用到up 所指的数据,本次设计支持MBAFF,在滤波过程中需要进行帧与场的转化,因此要用到上面二行的block。在滤波最左边的block时需要用到图中left 所指示的一列数据。
图1 滤波中的数据
2 DRAM 的规划与设计
DRAM 是一种成本低、容量大、应用广泛的存储介质, 对大规模数据的操作十分迅速。然而由于DRAM 中有一个Row 的概念。在操作不同的Row 的情况下DRAM 要先关闭当前的Row, 同时再激活所需的Row,这样就造成了很多的overhead。试想读取同一Row 的10 个数据与分别处于10 个Row 的10个数据,后者的时间耗费将会是前者的5~6 倍。因此DRAM 不适合对随机的分散的数据存取。
由于Row 的存在, 对DRAM 中的数据结构的设计就显得尤为重要。要尽量减少不同Row 之间的访问,这样才能提高数据的存取效率。本次设计中采用位宽为64 位的DRAM, 恰好可以存放8 个点的像素值。一幅图像亮度Y、色度UV 分别存放在一个连续的空间中。
H.264 解码后的最后图像存入DRAM 中,显示模块不断的从DRAM 中取出数据送到显示器, 运动补偿单元也要从DRAM 中取出参考帧的数据。因此DRAM 的带宽尤为紧张。合理地分配DRAM 的带宽是设计中要考虑的一个重要方面。由于很多模块都要求对DRAM 进行操作, 为了有效地对DRAM 进行管理,设置了DRAMCONtrol 模块来对DRAM 进行控制。
相关文章
- 2023-11-01利用小型后坐冲击模拟试验装置进行重锤加速度的测量与分析
- 2024-09-30基于特征点位置及速度的空间非合作目标质心位置测量方法
- 2023-04-20激光三角测量中图像传感器参量自适应控制
- 2023-06-02基于模板匹配和神经网络的车牌字符识别方法
- 2024-05-24利用ADuC834构成二次仪表系统
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。