微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > AVS逆扫描反量化和反变换模块的硬件设计

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

时间:12-01 来源:21IC 点击:

1.3 寄存器组复用
    在逆块扫描顺序中,一些后续的系数可能需要在一开始时就准备好,而一些在前面次序的系数则可能在后续的时间使用,所以只有一个块的所有数据都存储完成后,才能进行后续的反变换,故至少要对一个块的变换系数进行存储。为了提高处理速度,后续的反变换模块中将采用并行流水线输入,因此存储模块此时不能采用有时序限制的RAM,本文采用了寄存器组实现。同时为了消除块数据的准备延时,还采用了乒乓结构,即在设计中用了两个寄存器组,这样就可在处理当前一个块系数的同时,用另一个寄存器组来存储下一个块反量化后的数据。
    在反变换中也需要用到转置存储。为了节省资源,本设计采用了寄存器复用技术,即反变换中用到的转置矩阵与逆扫描后用于存储变换系数的矩阵复用,具体复用方法如图3所示。

 

 

以上为一个寄存器组,包含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系统上进行测试,证明该设计能够正确快速实现逆扫描、反量化及反变换功能。
 

参考文献
[1] GB/T 20090.2006.信息技术 先进音视频编码2部分:视频[S].2006.
[2] 张璐,刘佩林.基于FPGA的AVS反变换的设计与实现[J]. 电视技术,2006(7):20-23.
[3] 毛讯.高速视频解码器设计研究[D].杭州:浙江大学,2001.
[4] 赵策,刘佩.AVS游程解码、反扫描、反量化和反变换优化设计[J].信息技术,2007(2):54-57.
[5] 黄友文,陈咏恩.AVS反扫描、反量化和反变换模块的一种优化设计[J].计算机工程与应用,2008,44(19):93.
[6] H.264及AVS视频解码器中 IQ/IDCT的设计与实现[J].电子技术应用,2006,32(7):39-42.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top