微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > AVS I帧视频编码器的FPGA实时实现

AVS I帧视频编码器的FPGA实时实现

时间:12-06 来源:互联网 点击:

2. 实现该功能的状态转移图如下:

  Idle为空闲状态,streceive状态完成数据接收(当前8x8块64个数据,33个边界参考数据),当接受完数据后状态机进入stcalculate状态,将相邻的三个数进行低通滤波((a+2b+c+2)>>2),而后进入stm4状态,保存各个模式下的预测数据,预测完成后进入stcompare状态,比较各种模式下的代价值,并且选出最佳预测模式。sttrans为输出最佳模式和预测数据的过程。

  仿真结果如图所示:

  datain为输入的宏块数据,datain_edge为宏块边界数据,dataout为输出的预测数据。

  综合后资源占用如下图所示:

  3.2 RDQIIR模块

  功能描述

  本设计中将残差—DCT变换—量化—反量化—逆DCT变换—重构(简称为RDQIIR模块)作为一个整体实现。残差数据经DCT变换、量化后,数据送到熵编码模块;同时将量化后的数据再进行反量化和反DCT,得到8x8子宏块的重构数据,重构的数据反馈给帧内预测模块,进行下一个8x8子宏块的预测。

  2.整个模块由一个状态机实现,状态转移图如下所示:

 stidle为复位时的空闲状态,等待使能信号有效。streceive是数据接收状态,当使能信号有效时接收8*8块的残差数据。stread、stline和stdefer状态时,读取8*8块的一行数据,进行DCT水平变换,并将变换后的数据存入ram中。stread1、stvertical和stdefer1状态读取8*8块的一列数据,进行DCT垂直变换,并将变换后数据存入ram。stread2、stquant和stdefer2状态开始对数据量化,量化后的数据通过dataout信号输出。stread3、stvertical1和stdefer3状态对数据进行反DCT垂直变换的状态。sttransmit状态下输出量化后的数据。

  仿真结果如下图所示:

  图3-9中是xAVS算法中某一8×8子块的重构数据,图3-10是在ModelSim SE 6.2b环境下RDQIIR模块的仿真结果,重构数据从端口dina_sun_top_o输出。二者结果完全一致,说明RDQIIR模块符合算法要求。

  综合后资源占用如下图所示:

  3.3 熵编码模块

  1. 功能描述

  熵编码主要分为zig-zag扫描、游程编码、码字计算、码表切换、指数哥伦布编码和码流输出共6个子模块。整个熵编码部分需要3块RAM,2块ROM存储器。RAM1接收量化系数矩阵,经zig-zag扫描后的(run,level)对存储在RAM2中,RAM3暂存指数哥伦布编码后数据;ROM1用于存放优化后的码表,ROM2用于存放逃逸事件中用到的RefAbsLevel_T。

  stidle表示状态机处于空闲状态。streceive状态按照zig_zag扫描顺序接收8×8块亮度系数。strle完成游程编码得到( run , level )对。sttable状态利用run和level联合查表得到码字,并完成指数哥伦布编码。ststream对码字进行整理并输出。

 对一个8×8子宏块熵编码进行验证,图3-14内存1中自地址0x00E90068起存放的是由参考软件xAVS编码得到的码流,图3-15 ModelSim SE 6.2b仿真得到的码流由端口dataout输出。经过比较,二者输出结果一致,说明本设计功能符合标准算法要求。

   通过输入不同的量化系数矩阵观察仿真波形,输出的码流信息与AVS参考软件输出的结果一致。经仿真验证,本设计正确且资源利用效率高。时钟最高频率达到130MHz,可用于高分辨率实时AVS编码器中。

  第四节 综合验证

  本设计使用VHDL 硬件描述语言进行实现,Xilinx ISE 进行综合,Modelsim仿真,器件选用Xilinx 公司的xc2vp30-6ff896,最高工作频率110MHZ 情况下,使用的资源如下图所示。

  利用编解码软件截取一个宏块的数据作为参考数据输入,使用ISE综合,Modelsim进行仿真, 对一个宏块的验证如下图所示:

  datain_mb为输入的一个宏块数据, datain_u5_top_o的输出是一个宏块编码后的码流。从图中数据可以看出,输出结果一致,说明本设计符合编码器标准要求。

  CIF分辨率,4:2:0图像格式,若达到25帧/s实时图像播放的要求,100MHz的频率下,处理一个宏块所需要的周期限定在N==10101内,本设计在100MHz的频率下,用Modelsim仿真一个宏块的周期大约为7000,完全满足实时要求。

  第五节 展望

  本设计实现了AVS全I帧的编码器,CIF分辨率,4:2:0图像格式下能达到实时处理的要求。进一步的工作可以对程序优化,提高处理速度,同时还可以加入P帧和B帧的编码,从而进一步提高编码效率。

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

网站地图

Top