基于VHDL的AVS环路滤波器设计
0 引言
我国数字音频编解码技术标准AVS 第二部分主要是针对高清晰度数字电视广播和高密度存储媒体应用,采用了与H.264 类似的技术框架,包括变换、量化、熵编码、帧内预测、帧间预测、环路滤波等技术模块,与H.264 性能相同,当技术简洁,实现复杂度低。但在低码率的情况下,由于不同图像块做了不同的量化处理,有时是量化步长不同,有时是舍入的高频分量不一样,这样就造成图像块之间的相关性被破坏,在块的边界处就出现不连续或整块的块斑现象,称为块效应。
为了减小块效应,AVS 引入了环路滤波器。根据AVS 视频标准可知,环路滤波的复杂度很高,包含了很多的条件跳转运算和数学运算,对存储数据有大量且频繁的读写操作,完成一个16×16 的宏块滤波,对同一个子块需要读写四次。并且运动补偿、帧间插值等运算已经占用很大部分的带宽资源。对整个系统而言,由于总线本身的利用效率的因素,在一定的时钟频率下,系统实际可用的带宽是很有限的。
本文正是基于降低环路滤波的计算复杂度,减少与片外存储器的数据交换,提高滤波速率,实现实时解码的应用需求,对AVS 解码标准进行了研究。依据AVS 环路滤波算法的特点提出以8x8 块为单位进行滤波,适当增加片上存储空间的方式来提高滤波模块的效率,以实现实时解码。
1 环路滤波算法
AVS 环路滤波器放在帧间预测和运动补偿之前,用滤波后的帧做后续帧的参考帧。参考帧性能的提高能提高预测效果,从而提高编码效率。环路滤波去除了虚假的块边界,使得重构图像的主观质量有了明显地提高。
AVS 视频标准中, 变换采用了8×8 的整数DCT 变换, 运动估计的最小块尺寸也是8×8,因此块效应可能会出现在每个8×8 块的边界上。标准中规定,除图像边界及条带的边界之外宏块的所有边界都应进行滤波。这里的宏块边界定义为宏块内部各个8×8 块的边界以及当前宏块与与相邻宏块的上边界和左边界。
环路滤波以宏块为单位, 按照光栅扫描顺序依次处理。每个宏块对亮度和色度分别进行环路滤波, 首先从左到右对垂直边界滤波, 然后从上到下对水平边界滤波。当前宏块的上边或者左边像素值可能在以前的环路滤波过程中被修改,当前宏块的滤波处理的输入为这些可能被修改的像素值,并且当前宏块的环路滤波还可能进一步修改这些像素值。
1.1 滤波算法流程
AVS 标准的去块滤波操作大致可以分为两个步骤:首先,进行边界滤波强度(Bs)的判别;然后根据不同的Bs 取值来进行相应的强滤波(STrONg Filter)、标准滤波(Normal Filter)或者不滤波(Skip)的操作。滤波算法流程如图1 所示。
基于FPGA的AVS的环路滤波器的实现+.pdf
- AVS解码器在DSP平台上的优化(04-13)
- 双ARM7 SoC参考设计实现多电压AVS(12-09)
- DSP HPI口与PC104总线接口的FPGA设计(04-14)
- 基于FPGA的AD7862接口电路设计(01-01)
- 基于VHDL的感应加热电源数字移相触发器设计方案(03-20)
- 单板嵌入式硬件平台SingleBoard RIO(03-19)