AVS逆扫描反量化和反变换模块的硬件设计

来源:电子技术应用 作者:—— 时间:2011-10-25 14:24

       以上为一个寄存器组,包含64个13 bit的寄存器。最后一列为反变换模块输入,即当一个块变换系数根据逆扫描顺序存储完后,连续8个时钟周期读取寄存器组最后一列,在每个时钟周期向反变换模块并行输入8个13 bit的数据。第一列为转置数据输入端。考虑到反变换流水线及复用的问题,在连续2个时钟周期读取寄存器组最后一列输入到反变换模块后,转置数据开始从第一列输入,这样可以满足反变换内部的流水线问题,也可以达到寄存器复用的目的。第一行为转置数据的输出,最后一行在转置数据输出时赋值为零,这样可以使转置输出和寄存器赋零同时进行,从而可以减少不必要的时钟周期和资源。

2 仿真结果及分析

       根据上述思想,采用Verilog HDL语言对算法进行了RTL级电路描述,并采用Altera公司的软件Quartus II 8.0 对此算法进行了实现和仿真验证,并将仿真结果与rm52j软件的输出结果进行了比较。Quartus II仿真结果如图4所示,波形图给出了一个块的反量化和反变换输出结果。rm52j的输出结果如图5所示,比较可见输出结果相同。

       本设计采用的是自顶向下和自下而上的混合设计方法,逆扫描、反量化和反变换过程是AVS系统中的一个模块,局部的测试很难判断出该模块是否可以应用到整个解码系统中去,所以此模块亦在自己搭建的基于SoPC的AVS验证平台上进行了验证。加入此模块前,软件处理一帧码流时间与用此硬件模块代替软件模块后的解码时间如图6所示,通过计算可知解码速度提高约15%。

       变换编码后一个块内的有效系数一般小于25,所以逆扫描、反量化的时钟一般小于25个时钟周期,而反变换的时钟周期为22个,所以处理一个块的时钟周期大约为25个,大大提高了速度。由于寄存器的复用及设计的优化,节省了硬件资源,本设计采用的FPGA为EP2C35F672C6,资源使用情况如图7所示,可见使用的总的LE为3 059个。

 

       本文对AVS逆扫描、反量化和反变换算法进行了研究,并对目前其他学者在这方面取得的成果进行分析验证,实际考虑了AVS解码器整体设计的可行性,提出了一种速度更快、资源占用更少的方法。本设计为了解决RAM读写时序限制的影响,采用了两组寄存器阵列代替RAM实现乒乓操作,同时为了减少硬件资源,采用寄存器组复用技术,即反变换中的转置矩阵与逆扫描后存储寄存器组复用。最后给出了波形仿真结果,并与rm52j的输出结果比较,验证了结果的正确性。通过在基于Nios II的SoPC系统上进行测试,证明该设计能够正确快速实现逆扫描、反量化及反变换功能。

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子