首页 » 技术文章 » H.264视频解码芯片中与滤波相关的存储器的设计

H.264视频解码芯片中与滤波相关的存储器的设计

作者:  时间:2011-04-26 19:41  来源:EDN

   4 SRAM 的规划与设计

  在H.264 解码过程中,数据由熵解码经过运动补偿后再通过环路滤波最终送到存储器中,之后显示解码芯片从存储器中不断的提取数据送到显示器上,最终完成数据的解码,如图3 所示。在滤波的过程中,宏块中的数据频繁地被调用。而SRAM 的读写速度快的特点能很好地适用这一要求。因为在H.264 中最小的单元为block,运动矢量等都是以block 为单位来进行传递。因此以block 为单位来进行数据的存取会带来很大的方便。本设计中各个SRAM 每一个地址存放一个block 单元的数据(16 个像素点),即采用128bit SRAM

3 DRAM 与其它模块之间的数据交互

  在H.264 中运动补偿结束后的数据交由环路滤波运算后写入DRAM 我们把写入DRAM 的这一过程称为Store 过程,由Store 模块负责。由图3 可以看出MC Deblock 是一个串联的关系。为了提高解码的速度,我们将运动补偿与环路滤波并行执行,即当前解码的结束并不以环路滤波的结束为标志,而当前宏块的运动补偿一结束我们就可以开始下一个宏块的解码。经过大量的实验发现:MC 的时间远比block的时间大很多,当后一个模块要进行滤波时滤波模块早已准备完毕。最后对存储模块我们也同样的用并行的思想来加快解码的速度。结果当作MBx MC 时,做MBx1)的滤波,同时MBx2)存储。此时需要注意MBx1)的滤波和MBx2)的存储并不是同时开始。因为做MBx1)的滤波时也会影响到MBx2)中的数据。

  因此我们要等MBx1)的第一条垂直边滤波结束后才开始MBx2)的存储。具体的时间关系如图4 所示。

4 各个模块之间的时序关系图

  (1)滤波前数据的存储及滤波结束后数据的存储

  由于设计中采用此种流程,我们需要3 SRAM来存储MC 的运算结果。这3 SRAM 交替地进行MCDeblock Store。我们称这3 SRAM SRAM_MB,滤波结束后的数据也存储在此SRAM 中,在经Store 模块将此数据存储到DRAM 中去。因为滤波结束时,恰好原来SRAM_MB 中的数据也已经成为无效数据。这里需要注意,由于有帧场自适应的情况存在,滤波结束后的数据如果帧场情况不一样,我们还需要根据数据不同的情况进行适当的帧场转化,之后再将数据存入DRAM

  (2)垂直滤波后的数据的存储

  我们都知道滤波过程是一个先垂直后水平的过程,因此我们需要有一片SRAM 来存储水平滤波的结果。这片SRAM 就叫SRAM_BUFFER。因为水平滤波时正在从SRAM_MB 中读取数据,同一时间不能同时向SRAM 中读取、写入数据。因此我们用SRAM_BUFFER 来暂存垂直滤波结束后的数据。水平滤波时则从SRAM_BUFFER 中读取数据, 滤波后存储到SRAM_MB 中。

  5 总结

  本文对H.264 解码芯片中的滤波、存储模块作了深入的分析。并根据各个时间数据的特点作相应的存储器的设计, 这种设计方法经过验证能很好地处理H.264 中滤波及存储时的数据的调度。整个滤波过程约52 个周期就可以完成。在MBAFF 情况时各种数据的转化时钟周期控制在70 个以内。这种设计符合要求,并在FPGA 上验证后能够正常的运行,运行时钟达到60MHz,能实时地完成对高清图像的解码。

相关推荐

H.264视频解码芯片中与滤波相关的存储器的设计

解码  H.26  2011-04-26

ZiiLABS推出1080p蓝光掌上媒体处理器ZMS-08

2009-11-10

基于ATmegal28的LED屏图像数据解码设计

ATmegal28  LED  解码  2009-05-07

基于DSP的脱机视频编/解码系统

DSP  视频  解码  2009-03-01

51单片机红外遥控解码程序

解码  单片机  红外  2008-08-07

能够实时转换任意格式的视频是未来趋势

2008-07-18
在线研讨会
焦点