H.264解码器中一种新颖的去块效应滤波器设计
时间:10-21
来源:EDN
点击:
直接计算α,β是非常困难,而且消耗了很多硬件资源,因此通过查找表(LUT)获取α,β的操作。像素的计算可以被分成下述两种类型:
(1)Bs=4
如果以下的两个条件成立,一个非常强的4抽头或5抽头滤波器将被用来对邻近像素进行滤波,修改像素p0,p1,p2。
否则,若式(2)中有一个不成立,将不会对p1与p2进行滤波,只会对p0进行弱强度的滤波。对于色度部分边界的滤波,如果式(2)成立,只会对p0与q0进行滤波。
(2)Bs=1~3
亮度像素p0与q0的计算如下:
而d_0是在裁减操作中被定义的:
式中:c0来自于c1,而c1是通过查找两维的LUT表获取的。
像素p1仅在式(3)成立的时候进行修改,同p0与q0修改的方式相同;而像素p2与q2对于滤波强度Bs不为4的情况下,不进行滤波。在色度分量进行滤波时,只有对p0与q0进行滤波,滤波的方式与亮度滤波的方式相同。
3 流水线滤波架构
3.1 流水线分析
流水线技术适合于连续的批处理任务,当一个N阶流水线被灌满以后,系统在一个周期内可以并行处理N个任务,由此提高了整组任务的处理速度并增大了系统吞吐能力。如果相邻的滤波操作没有数据竞争,并且所有的阶段都被很好地进行了平衡,则滤波过程能够被进行流水线操作化并可将速度提高N倍数。然而,如若存在竞争与冒险问题,则无法实现。此时的主要任务是如何均衡流水线的各个阶段,如何把总的操作尽可能平均的分配给不同的流水线阶段,如何避免或消除竞争与冒险,以便获得一个比较平衡畅顺的流水线架构。按照去块效应滤波器模块的实现算法,大多数的关键路径位于以下操作中。
(1)查找表操作:取得α,β,c1参数。α,β参数均需在查找表操作之前进行基于量化参数与片级偏移参数的计算中使用。当Bs=1,2,3时,为获取c1进行LUT操作,该操作比获取α,β的LUT操作大3倍。
(2)当Bs=4时,需用4或5抽头的滤波器进行滤波,原来的p,q像素值需要进行移位、相加等操作,以得到最后的结果。
3.2 流水线架构
基于上述分析,这里提出了5阶流水线以提高吞吐量,见图3。由于整个任务被分配到不同的阶段实现,降低滤波的平均时间。
4 阶流水线每个阶段的任务
阶流水线每个阶段的任务为:获取像素与滤波强度;阈值判断;预滤波;二次滤波;回写。操作类型转换与可重新配置路径设计:首先进行操作类型的变换,使用加法与移位操作硬件替换了原来所有的乘法与除法硬件。当Bs=4时,滤波被3,4,5抽头的滤波器执行,尽管应用不同抽头数目的滤波器,仍考虑硬件复用以及输入数据路径重新配置。由于设计中的表达式采用两输入加法,因而可以公用加法的中间结果。此外,通过重新配置在不同滤波抽头系数时的加法器的输入,达到共享资源的目的。同理,当Bs=1,2,3时,通过输入路径的重新配置,同样达到共享加法与减法器,达到共享资源的目的,资源使用前后对比见表1。
5 流水线竞争与混合滤波顺序
5.1 流水线竞争的原因
(1)数据竞争:当目的结果需要用作源操作数时;
(2)结构竞争:由于有限的存储器带宽,大量而频繁的像素访问需要以及存储器的低效率管理而引起;
(3)控制竞争:相邻边界的滤波是相对独立的,当一条边界进入它的流水线阶段时,它不能够停止,直到它的第5阶段新像素值回写存储器操作结束。控制竞争,由于分支语句或延迟等待引起的。
5.2 一种新颖的混合滤波顺序
传统的设计按照H.264/AVC标准使用了基本的顺序滤波,没有考虑到相邻滤波边界的数据重用与数据相互依赖性以及存储器的读与写访问延时,因此这里提出了新颖的滤波方法。新颖的滤波顺序仍然遵守先左后右,先上后下的原则,但是考虑了相邻边界的数据依赖性与重用性,解决了数据冒险与结构冒险问题,避免了流水线的延迟。滤波包括亮度部分与色度部分,共48条边界,滤波顺序按照如图4所示的从小到大的数字进行。
- 新一代视频编码标准H.264/AVC的关键技术研究(09-04)
- Cortex-A8和H.264的无线视频监控系统设计(10-16)
- 解析H.264视频编解码DSP实现与优化(10-26)
- 视频解码器SAA7111在图像采集中的应用(06-21)
- 基于CPLD和VS1011E解码器的电梯语音系统设计(11-26)
- 基于ARM核的音频解码器单芯片系统(01-05)