首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

AVS全I帧视频编码器的FPGA实时实现(2)

AVS全I帧视频编码器的FPGA实时实现(2)

4.2 变换量化模块
            该模块主要包括DCT变换、量化、反量化和反DCT变换[5]4个部分。DCT变换采用蝶形算法,每次处理8×8的一行数据,节省了大量的运算时间,且大量的乘法用移位和加法代替。量化中涉及查表运算,表格存放在ROM中,通过地址即可得到所需数据。残差数据经DCT变换、量化后,量化系数传给熵编码模块;同时将量化后的数据再进行反量化和反DCT变换,得到8×8子宏块的重构数据,重构的数据反馈给帧内预测模块,进行下一个8×8子宏块的预测。
            由于亮度和色度算法相同,因此该模块可以共享,减少了资源的利用。变换量化模块涉及大量的运算,是最耗时的模块,为了提高处理速度,算法使用了适当的并行操作,将量化与反量化、反DCT变换并行执行;同时把数据位数扩展,可同时对8×8矩阵的一行数据赋值,从而节省了读取数据占用的时间,并且提高了数据的利用率。
            用ModelSim进行仿真的结果如图4所示,设定qp为36的情况下,n0_o的输出为量化数据。
       
            在进行熵编码模块的设计时,算法采用一种较少存储空间来存储码表的方法,并将码表查询、码表优化和指数哥伦布编码合并为一个流水线单元并行处理,节省了存储中间结果所需的大量存储空间;将熵编码各任务并行执行,加快了处理速度。
            用ModelSim进行仿真的结果如图6所示,状态机在4、5、6循环判断,并在6状态时输出子宏块编码码流(dataout)。

       


        5 仿真与验证
            本设计使用VHDL硬件描述语言进行设计实现,采用Xilinx ISE进行综合验证、ModelSim 6.2b进行仿真,器件选用Xilinx公司的xc4vsx25-10ff668,最高工作频率达到110 MHz,综合后的资源利用情况如图7所示。
       
继承事业,薪火相传
返回列表