新闻中心

EEPW首页>嵌入式系统>设计应用> 基于SoC的MPEG-4视频解码加速器

基于SoC的MPEG-4视频解码加速器

作者: 时间:2012-12-13 来源:网络 收藏

对于Halfzero 的情况, 可简化图1 和图2 中的F(4)、F (5)、F (6)、F (7) 的相关路径, 得到Halfzero 的算法流程(如图3)。此时时乘法总数为10 次。

图3 Halfzero 的算法流程 其中Ci = 2cos( iπ/16)

对于一般的情况, 根据图1 和图2 的流程计算,取C i = 2cos( iπ/16) 。乘法总数22 次。

2 硬件结构和设计技巧

2.1 整体结构的选择

的的整体框图如图4 所示。其中slave 模块负责模式配置, 接收数据, 反量化并判断OnlyDC 和Halfzero。写向slave 的数据经过反量化操作后进入Xmem。的Cont rol模块控制整个流程。Idct8x1从Xmem 中读出原数据做一维IDCT 并写回Xmem。

由于Xmem 的带宽限制IDCT 8x1只使用两个乘法器, 把乘法排列紧凑后, 普通情况一维IDCT 需要20个周期, Halfzero 需要14个周期。Master 负责取运动补偿图像数据, 并在完成IDCT 变换和叠加后将结果放回显存。每次数据写回显存后, Control 模块会将Xmem 清零, 这样下次操作只需将非零数据写入Xmem , 减少了数据的写入时间。

双端口片上存储器Xmem 负责存放IDCT 的中间数据和计算结果, 其中数据通过A端口进行IDCT 变换, IDCT 结果通过B 端口进行叠加, IDCT 计算和运动补偿叠加可以通过A、B 两个端口并行处理。单端口Ymem 负责存放MA STER取回的运动补偿数据。Xmem 和Ymem 是零等待的片上存储器, 而且在外部总线上是可见的, 所以在不使用时, 它们还可以作为整个芯片高速的缓冲区使用。

图4 M PEG-4 加速器的整体框图

2.2 OnlyDC 情况的处理

在进行二维IDCT 的行变换时, 一般情况和Halfzero情况都会向Xmem 写回8个计算结果; 如果是OnlyDC 则不对Xm em 做任何读写, 所以在做列IDCT时必须对idct8x1 发出的地址进行重新映射, 使其指向这一行的第一个数据。如图5 所示,IDCT发出的地址指向当前要进行IDCT变换的列中的数据, Control 模块中的Address Remap 逻辑会根据On lyDC 状态将地址转换为指向第一列的有效数据。对于列IDCT 我们直接按照一般情况计算。

图5 地址重映射



评论


相关推荐

技术专区

关闭