基于FPGA的AVS的环路滤波器的实现
扫描二维码
随时随地手机看文章
精彩无限,尽在维库技术资料www.dzsc.com/data
摘要:AVS 视频标准中,自适应环路器在实现时存在许多条件运算(如滤波强度的计算、边界阈值和跳转等的计算)及其对于数据的访问比较繁琐,使得滤波器的算法复杂度很高。并且块效应可能会出现在每个8x8 块的边界上。而该滤波器以8x8 块为单位进行滤波,减少对存储器的访问,加快了处理速度,大大节省了算法的硬件实现面积。并且适当增加片上存储空间来缓解外存的压力来提高滤波模块的效率,采用VHDL 语言进行设计、仿真,通过FPGA验证。综合仿真结果表明,该设计占用资源较少。最高频率可达170MHz,可实时解码D1 分辨率序列的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 所示。
维库PDF下载:基于FPGA的AVS的环路滤波器的实现 .rar
参考文献:[1].D1 datasheethttp://www.dzsc.com/datasheet/D1+_2060593.html.