英文引用格式: Huang Youwen,Dong Yang. An IDCT transform implementation on FPGA in HEVC[J].Application of Electronic Technique,2017,43(5):38-40.
0 引言
为解决当前主流视频编码标准H.264/AVC无法满足高分辨率视频和图像的问题,视频编码联合开发组(Joint Collaborative Team on Video Coding)于2013年1月正式发布了新一代高效视频编码标准HEVC(High Efficiency Video Coding),HEVC的目标是在H.264/AVC的基础上,在相同码率条件下,提高50%的压缩率[1]。HEVC标准中采用的是整数逆离散余弦变换(Inverse Discrete Cosine Transform),这样就防止了采用浮点数在有限数据精度下编码器与解码器之间的误差。
进行二维IDCT变换的时候需要在两个IDCT变换单元之间使用转置单元对中间结果进行行列转置操作,本文的转置操作过程如图3所示,变换数据块最大为32×32,所以使用32个16 bit的双口RAM作为必要的数据存储单元,为了减少对RAM频繁操作,采用统一的地址写入,列变换得到的数据依次写入不同RAM单元的相同地址,在地址达到指示变换块上限时,经过一个时钟周期的延时后,利用模块内部的有限状态机FSM(Finite State Machine)按RAM0、RAM1、…、RAM31的顺序读取数据,由于采用了双口RAM,定义的输出端口位宽为512 bit,每个周期最多可以读取32个数据,根据不同的变换块指示标志,可以实现不同数据块的转置操作。