CN109743582B - 一种基于h.264的去块滤波器硬件架构 - Google Patents
一种基于h.264的去块滤波器硬件架构 Download PDFInfo
- Publication number
- CN109743582B CN109743582B CN201811637330.6A CN201811637330A CN109743582B CN 109743582 B CN109743582 B CN 109743582B CN 201811637330 A CN201811637330 A CN 201811637330A CN 109743582 B CN109743582 B CN 109743582B
- Authority
- CN
- China
- Prior art keywords
- multiplexer
- memory
- module
- deblocking filter
- output end
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 79
- 238000001914 filtration Methods 0.000 claims description 26
- 230000000903 blocking effect Effects 0.000 claims description 13
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000013139 quantization Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 11
- 238000007906 compression Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开一种基于H.264的去块滤波器硬件架构,包括第一内存器、第二内存器、信息存储控制模块、去块滤波器模块、第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器、第五多路复用器,所述信息存储控制模块与所述去块滤波器模块连接,所述去块滤波器模块的输出端与第一多路复用器的输入端、第二多路复用器的输入端和第三多路复用器的输入端连接,所述第三多路复用器的输出端与第一内存器连接,所述第二多路复用器的输出端与第二内存器连接,区别于现有技术,本发明通过双读写端口内存器和采用新的数据存储方式来存储数据,加快处理速度,降低去块滤波器运算时间,同时降低系统总线的使用。
Description
技术领域
本发明涉及H.264硬件架构技术领域,尤其涉及一种基于H.264的去块滤波器硬件架构。
背景技术
在信息科技蓬勃发展的今日,各类多媒体技术普遍结合因特网应用,例如:视频会议、随选视频、视频监控,等等。如今网络技术已经是宽带,但是在使用人数的增加以及对画面质量的要求下,网络带宽势必很快将达到饱和,所以多媒体影音压缩技术将数据大量压缩,使得在现有的储存空间下,能够容纳更多的多媒体数据,进而减少在因特网上传输数据的时间。
视频压缩发展至目前,由ITU-T(Video Coding Experts Group,VCEG),以及ISO/IEC(Moving Picture Experts Group,MPEG)两大组织合并的(Joint Video Team,JVT),共同订定了H.264/AVC标准。其中,H.264/AVC在画面质量、压缩效率及错误容忍方面的表现,明显优于过去的视频压缩标准,和其它的视频压缩标准相比较,H.264/AVC能在低流量影片时,提供更好的画面质量以及更高的压缩效率。由于在信号的运算复杂度上大幅的提升,使得H.264/AVC在实时系统的实现中衍生很多的问题。过去的视频压缩系统,以方块处理为基础的离散余弦转换(block-based discrete cosine transform,BDCT)以及量化(quantization)是被广泛采用的技术,它们在信号处理方式则是将整张画面分割成为互相不重迭的方块,使用离散余弦转换把每个方块由空间域(space domain)转换至频率域(frequency domain),在作完离散余弦转换后,将所得到的系数除上以量化参数为基础的量化参数表(quantization matrix),在处理完成之后,会把人眼无法察觉的高频信号去除,以便达到数据压缩的目的。但是,若使用较大的量化参数,经过量化后所得到的离散余弦转换系数就会比较小,数据量也将变得较少,由此可知量化参数的大小会直接影响视频系统的压缩质量。
在目前新一代的视频压缩系统H.264/AVC中,去块滤波器(deblocking filter)被整合成为此系统的一部分,称为闭回路滤波器(in-loop filter)。传统的去块滤波器对置于解码端后(post-filtering)的画面作过滤动作,使内建的去块滤波器让过滤后的画面成为参考视频。相较于传统的去块滤波器,H.264/AVC提出的去块滤波器本身提供了高度可调来适应不同画面来源的机制,并且获得较佳的视频质量。去块滤波器是H.264/AVC标准中对于视频质量是一个相当重要的机制,由于在最小的预测区块、转换、量化以及移动补偿区块的大小为4×4,因此造成在画面中,为了达到去除区块效应的目的,去块滤波器必须过滤画面中每个4×4的矩阵,几乎每一个像素都需要经过去块滤波器的处理,使得必须对储存画面信号的内存作很频繁的读取及写入。另外,为了适用于所有画面的高度适应性以及可调性,H.264/AVC利用许多阀值与条件进行各种模式的判断与选择。虽然H.264/AVC对于去块滤波算法已经作优化的处理,但它仍然在解码端占有三分之一的运算复杂度。
在现有的硬件使用传统处理流程,首先将处理巨方块(macro block,MB)中需要的所有的像素信号加载至其硬件中,当处理完后,再传输回到画面内存。虽然能够很顺利的处理水平方向的滤波,但是在垂直方向则必须加入内存转换以解决内存碰撞的问题,而且需要花上近两倍的运算时间。现有其他方案虽然内存的使用量非常少,但是硬件架构中仅对巨方块中的亮度部份进行运算,而且并没有作处理色彩部份,存在着处理不足的问题。因此,现有提出有效的硬件架构都将目标放在节省电路面积、内存成本以及减少运算所需的时间。然而这些架构设计中在内存成本与运算处理速度的处理上还存在很大不足。
发明内容
为此,需要提供一种基于H.264的去块滤波器硬件架构,解决现有H.264硬件架构在内存成本与运算处理速度的处理上还存在很大不足的问题。
为实现上述目的,发明人提供了一种基于H.264的去块滤波器硬件架构,包括第一内存器、第二内存器、信息存储控制模块、去块滤波器模块、第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器、第五多路复用器,所述信息存储控制模块与所述去块滤波器模块连接,所述去块滤波器模块的输出端与第一多路复用器的输入端、第二多路复用器的输入端和第三多路复用器的输入端连接,所述第三多路复用器的输出端与第一内存器连接,所述第二多路复用器的输出端与第二内存器连接,第一内存器与第一多路复用器的输入端、第四多路复用器的输入端和第五多路复用器的输入端连接,所述第二内存器与第一多路复用器的输入端、第四多路复用器的输入端和第五多路复用器的输入端连接,第四多路复用器的输出端与第五多路复用器的输出端与去块滤波器模块的输入端连接;
所述信息存储控制模块用于控制内存器地址、数据流的选择以及数据输入输出,并用于储存着去块滤波器模块所需要用到的参数信息,去块滤波器模块用于去除图像方块效应;
所述第一内存器和第二内存器都为双读写端口内存,所述第一内存器或者第二内存器中的每一行像素点信息的位置向右循环偏移,所述循环偏移的个数与行数相同。
进一步地,所述去块滤波器模块包括一阶模块、二阶模块、三阶模块和旗标运算单元,所述一阶模块包括索引表模块和一阶滤波器,所述二阶模块包括信号选择器、索引表缓存器和二阶滤波器,三阶模块包括滤波裁剪器和三阶滤波器,所述一阶滤波器与第四多路复用器的输出端与第五多路复用器的输出端连接,所述索引表模块与信息存储控制模块连接用于获取参数信息,索引表模块的输出端与索引表缓存器和信号选择器连接,一阶滤波器的输出端与二阶滤波器连接,索引表缓存器的输出端与滤波裁剪器连接,滤波裁剪器的输出端与旗标运算单元连接,二阶滤波器的输出端与三阶滤波器连接,三阶滤波器的输出端与旗标运算单元连接,信号选择器的输出端与旗标运算单元连接。
进一步地,所述第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器和第五多路复用器的总线宽度为32位。
区别于现有技术,上述技术方案通过双读写端口内存器和采用新的数据存储方式来存储数据,实现一个低内存空间且低成本之的去块滤波器架构,同时配合信息存储控制模块,来加快处理速度,降低去块滤波器运算时间,同时降低系统总线的使用。
附图说明
图1为具体实施方式所述图像的光栅扫描方式;
图2为具体实施方式所述垂直边界与水平边界之过滤的像素点示意图;
图3为边界强度的判断指定过程;
图4为本发明实施例的去块滤波器系统架构图;
图5为本发明所提出的去块滤波器信号处理顺序;
图6为本发明与现有内存存取方式的对比示意图;
图7为本发明的第一内存器和第二内存器的架构示意图;
图8为本发明的管线式去块滤波器模块内部架构图。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1到图8,本实施例提供一种基于H.264的去块滤波器硬件架构。接下来首先会先说明H.264/AVC中的去方块滤波器算法,而后在对本发明的硬件架构进行说明,并会在最后给出实验结果。
去块滤波是利用其算法将画面中的方块效应消除,而产生一张较为平滑的画面。以区块为基础的H.264/AVC标准中,方块效应的来源是因为使用以4x4为大小的矩阵转换以及区块移动补偿。因此,它成为了去除方块效应的一个有效的工具。在理论上,去块滤波器可以被独立在系统之外成为后端过滤(post-filtering),且只需要针对显示的画面做过滤。当然,若将它加入编码端的回路之中,便能达到更好的视觉质量,因为被用来作为移动补偿的参考画面,都是之前被过滤且重建后的画面;另外将它加在系统之中,则是有利于视频提供者能指定传输在解码端之后的画面质量。
H.264/AVC标准中,使用的去块滤波器有着较高适应性的特性。许多的阀值(thresholds)用于能根据不同的画面特性及视频特征调整过滤器的强弱,其中的阀值都根据量化参数QP而作调整,因为方块效应所产生的原因都是与量化参数有直接的相关联性。
H.264/AVC使用的去块滤波器是以巨方块为处理单位。巨方块内部有许多以4×4为单位的方块,首先对水平方向相邻区块垂直的边作去块滤波,处理后,再对垂直方向相邻的区块水平的边作去块滤波。当水平与垂直两方向的去块滤波都完成以后,才会处理下一个巨方块。如图1所示,以光栅扫描(raster-scan)的方式,依序按照行数从上到下每一行从左到右的方式对画面中所有的巨方块进行去块滤波,直到整张画面的区块都过滤完成。而每次执行去块滤波处理的动作最多需要八个点的像素值,根据不同的边界强度与量化参数不同,可能不会执行过滤,如可能改变最多六个点的像素值,即是在边界的两旁最多各改变三个像素的数值(p2、p1、p0、q0、q1、q2),如图2所示。
在两相邻的4x4亮度分量区块,在标准中会指定一个介于0到4边界强度(boundarystrength,BS)的参数。以两相邻的方块(一侧命名为区块Q,一侧命名为区块P)来进行判断,根据区块内/区块间预测模式的选择、移动向量误差及是否有对残差进行编码,来指定边界强度的数值。如图3所示,若两个相邻的4x4方块是使用区块内编码,且两相邻边与巨方块的边重迭,则使用最强的滤波模式,并将边界强度设定为4;若两个相邻的4×4方块是使用区块内编码,但不与巨方块的边重迭,则将边界强度设定为3;若还没符合以上的条件,则继续往下判断;若在其中一个区块中使用区块内编码,且其中一个区块有把残差加入编码,就使用中等强度的滤波模式,且将边界强度设定为2;若是两区块的移动补偿是参考不同的画面,或者是两区块移动坐标相差大于或等于1个亮度分量的点,则使用较弱的滤波模式,边界强度也会设定为1;当以上状况都不符合,这个边缘便会保留不做过滤,也将边界强度设定为0。而色彩分量的边界强度并不会重新运算,而是直接把亮度分量在相对应位置的边界强度复制到色彩分量的边,即巨方块色彩分量的边界强度等于与4x4子方块重叠边界的亮度分量的边界强度,如一个巨方块为8x8,则内部可以包含四个4x4子方块。巨方块的一个边界具有两个4x4子方块的边界,巨方块的色彩分量的边界强度为两个4x4子方块的亮度分量的边界强度之和。
接下来说明下阀值α与β定义。上述提到一组会被过滤的样本值,如果仅依照边界强度来选择过滤与否,可能得到一个过于模糊的画面,因此,应该只对发生方块效应的边缘进行去块滤波,而对没方块效应的边缘不执行去块滤波,保留画面原有的锐利度,经过的判断,唯有在下面条件都成立时,样本值会被视为出现了方块效应,才会对样本值启作去块滤波,见公式2.1至2.4所示。
BS=1 or 2 or 3 or 4 (2.1)
|p0-q0|<α(IndexA) (2.2)
|p0-p1|<β(IndexB) (2.3)
|q0-q1|<β(IndexB) (2.4)
阀值α与β随着Q与P两区块的量化参数QP的变大而增加。而α与β被视为判断原始视频中变化是否够大的依据,若量化参数变小,任何在区块边界的变化将会被视为画面中原有的特色,而非因为方块效应所带来的假边界,所以会将α与β设定为较小的数值,尽可能保留原有的画面。若是量化参数增加,则方块效应所带来的失真会变的比较明显,则α与β也会随着增加,画面中就会有更多取样点使用去块滤波处理。
在H.264/AVC片层级(slice level)中定义了两个在编码端进行偏移调整的参数,分别为OffsetA以及OffsetB,在压缩端可以改变这两组偏移参数,进而控制滤波器在相同的量化参数中,采用不同的阀值α与β,如公式2.5,2.6所示。
IndexA=Min(Max(0,QP+OffsetA),51) (2.5)
IndexB=Min(Max(0,QP+OffsetB),51) (2.6)
当边界强度为1到3时,使用基本强度的过滤器。在输入的边界像素中p3、p2、p1、p0、q0、q1、q2、q3经过算法可以得到P1、P0、Q0、Q1。过滤后的P0及Q0需符合式2.1至2.4时才会输出并取代原本的p0以及q0。过滤后的P1需要符合公式2.9,才会输出并取代原来的p1。同样的,Q1也需要符合公式2.10,才会输出并取代原来的q1,计算P1、P0、Q0、Q1的公式分别列在2.11到2.14。其中c1为边界强度以及相关的系数,在亮度分量中,c0为c1在加上公式2.9以及公式2.10为真的个数,若是在色彩分量,c0固定为c1加上1。公式2.9以及公式2.10具体如下:
|p2-p0|<β(IndexB) (2.9)
|q2-q0|<β(IndexB) (2.10)
P1=p1+CLIP(-c1,c1,(p2+((p0+q0+1)>>1)-2p1)>>1) (2.11)
Q1=q1+CLIP(-c1,c1,(q2+((p0+q0+1)>>1)-2q1)>>1) (2.12)
P0=p0+CLIP(-c0,c0,(4(q0-p0)+(p1-q1)+4)>>3) (2.13)
Q0=q0-CLIP(-c0,c0,(4(q0-p0)+(p1-q1)+4)>>3) (2.14)
当边界强度为4时,使用强度最强的去块滤波,输入的像素p3,p2,p1,p0,q0,q1,q2,q3,依照算法可以求得P2,P1,P0,P0f,Q0f,Q0,Q1,Q2。除了必须符合公式2.1到2.4,若在亮度分量方块符合公式2.9及2.15,则过滤后的P2、P1、P0将会输出并取代原有的像素。相同的,Q2、Q1、Q0也需要在亮度分量,且符合公式2.10以及2.15才可以输出。若是在色彩分量,或在亮度分量中的公式2.9和2.15其中一个不为真,则p2到p0之中只有P0f会取代p0并且输出,p2与p1保留不变。相似的处理,若是在色彩分量,或在亮度分量中的公式2.10和2.15其中一个不为真,则q0到q2之中只有Q0f会取代q0并且输出,q1与q2保留不变。计算P2、P1、P0、P0f、Q0f、Q0、Q1、Q2的公式如公式2.16至2.23。
|p0-q0|<((α(IndexA))>>2)+2 (2.15)
P2=(2p3+3p2+p1+p0+q0+4)>>3 (2.16)
P1=(p2+p1+p0+q0+2)>>2 (2.17)
P0=(p2+2p1+2p0+2q0+q1+4)>>3 (2.18)
Q0=(q2+2q1+2q0+2p0+p1+4)>>3 (2.19)
Q1=(q2+q1+q0+p0+2)>>2 (2.20)
Q2=(2q3+3q2+q1+q0+p0+4)>>3 (2.21)
P0f=(2p1+p0+q1+2)>>2 (2.22)
Q0f=(2q1+q0+p1+2)>>2 (2.23)
其中,CLIP表示裁减运算;符号>>表示移位运算。
接下来对本发明进行说明,图4为本发明所提出的去块滤波器系统架构图。在内存方面,本发明使用交错的方式来存放像素,来解决现有设计中所需要转置内存的问题;另外,本发明提出两块多功能的内存并且加以模块化,使得这两块内存器都有二维存取的能力,其中一个内存器的内部为两端口内存,存放着上一个巨方块最右侧的区块数据,后面以第一内存器称之。另一个内存器存放着目前正在处理中的区块数据,后述以第二内存器来称之。在去块滤波器模块中,本发明提出使用多阶管线式滤波器,配合所提出的递归(recursive)控制能够减少内存方面的存取次数。在信息存储控制模块中,除了控制基本的内存器地址、数据流的选择以及数据输入输出之外,还必须储存着去块滤波器模块所需要用到的参数,例如:IndexA,IndexB与边界强度参数。在图4的系统架构图中,除了控制信号线外,所有内部数据总线宽度均为32位。对外的总线输入与输出像素数据异步进行,因此可以共享一个32位的双向信道,很适合应用于单芯片系统(system on a chip,SOC)。
在内存第一内存器储存上一个巨方块中四个4x4的亮度分量区块,以及四个4x4的色彩分量区块。而内部是由八组16Words×8Bits两端口内存所组成,储存空间需求为32×32位,相当于1024位。在另一个内存第二内存器储存着处理目前巨方块中暂时存放的像素数据,根据本发明所提出的去块滤波器处理流程,最大的暂存使用量为十六个4×4区块,第二内存器内部由八组32Words×8Bits双端口内存所组成,储存空间需求大小为64×32位,相当于2048位。
在本发明所提出的去块滤波器架构,处理过滤完一块巨方块仅需要279个运算周期,其中五个周期为加载已经运算完毕的边界强度以及参数IndexA和IndexB,274个运算周期包含像素加载与数据回存所需的时间。如果目前处理的巨方块是处于画面中的最后一个巨方块时,需再额外增加32个周期以便将还残留于第一内存器中的像素数据回存到重建画面内存,此时所需时间为301个运算周期。
本发明的数据处理流程如图5所示,B0到B39均为4×4的像素区块。圆圈编号1到48均需要4个运算周期,椭圆H代表滤波器对垂直边缘作水平过滤,而椭圆V则是对水平边缘作垂直过滤运算。在第一阶段时,从外部接收到B5的数据,以及提取出在第一内存器的B4区块,同时送到去块滤波器模块。在第二阶段时,方块滤波器同步将第一阶段所送入的B4以及B5陆续运算完毕,此时的B5因为马上就需要再次输入去块滤波器,所以不需要在此时将B5写入内存中,只需要将B5以及从外部接收到的B6一并送至去块滤波器模块,同时将B4存到第二内存器暂存。在第五阶段时,从外部接收到B0的数据,同时提取出在第二阶段所存入第二内存器的B5数据,送到去块滤波器模块,同时将在第多阶段运算完后的B7与B8数据一起存入第二内存器。在第八阶段处理完毕后,因为在目前的巨方块处理流程中没有机会再次使用到区块B0到B3,所以在此时将B0到B3提取出来,并且送出至去块滤波器模块外部。在第16、24、32、45、46、47以及48阶段之后,方块B8、B13、B18、B23、B26、B29、B34与B37因为紧邻的下一个巨方块将会再度被使用到,所以存放在第一内存器中,减少在读取与加载阶段所花用的时间,同时减少对着相同区块进行重复加载与写回的无意义动作。
在内存作纵向存取时,会产生内存碰撞使得无法在一个执行周期当中完成存取的动作,所以必须搭配使用转置内存并且造成效能上降低,如图6左侧所示。为了改善此问题,本发明参考所提出的二维内存存取设计,采用交错的方式用于不同的内存器中摆放数据,排除了在以往的设计中会产生碰撞的原因,同时支持横向以及纵向的读取与写入。在二维内存器中,每一行像素点信息的位置向右循环偏移,所述循环偏移的个数与行数相同,如图6右侧所示。因为垂直方向的像素资料被分别放置在不同的模块中,内存碰撞就能够完全避免,于是无论是水平或是垂直方向的操作,都能够在二维内存中顺利加速运算执行且能够避免存取碰撞的问题。
为了达到二维内存存取的目的,在电路上需要可以配合的组件,负责数据分割、地址产生及数据组合,如图7所示。地址产生器要依据此时需要做行或是列运算时,产生行列读取或行列写入内存所需的地址,而数据分割模块负责移位输入的像素,根据不同的输入地址判断需要将数据移位的次数,地址偏移模块存储有移位次数,以产生垂直方向像素信号在不同内存器的效果,数据组合模块收到内存单元输出移位过的数据,负责在此模块中根据输出地址反向移位,让存放在内存器中的像素数据还原成原先没有移位过的像素数据,回归为正确排列,以方便后续所需要的后续处理。
为了提升去块滤波器之处理效能,如图8所示,本发明同时采用平行的管线式电路设计,平行处理数据为八个像素输入以及八个像素输出,与一组递归输入,并且以多阶管线式设计减少关键路径(critical path)的延迟(latency)。像素读取时选择不同的信号作为输入来源,Stage1阶段为针对不同的,以及边界强度从表格中查询α与β以及裁剪(Clip)数值与对输入像素作最初步的处理;Stage2阶段为对Filter Stage 1之输出结果作后续的处理,以及在最后的信号选择器所需要的判断旗标进行预先计算,Stage 3阶段为针对FilterStage 2的边界强度为4的输出部份结果进行最后的运算,Filter Clip针对边界强度为1到3的输出部份结果进行裁减运算,Filter Out阶段会根据先前所计算出来的判断旗标去作选择最后结果的输出。
旗标运算单元根据目前的边界强度以及像素相减的绝对值来判断画面上的边界是由方块效应所产生的假边界或是由实际的画面所带来的真实边界,经过判断之后,分别可得到FLAG1到FLAG6以及FLAG chroma,在不同的边界强度之下,藉由判断旗标来分辨(式3.3到3.5皆为真),若是方块效应所带来的假边界,则输出过滤后的像素来消除方块效应,若是分辨是真实的画面边界(公式3.3到3.5其中一个不为真),或者是边界强度为0,则保留原来的像素不作任何过滤。表格1与2为详细的输出选择表。
FLAG1=|p0-q0|<α(indexA) (3.3)
FLAG2=|p1-p0|<β(indexB) (3.4)
FLAG3=|q1-q0|<β(indexB) (3.5)
FLAG4=|p2-p0|<β(indexB) (3.6)
FLAG5=|q2-q0|<β(indexB) (3.7)
FLAG6=|p0-q0|<(((α(IndexA))>>2)+2) (3.8)
FLAG Chroma=(y=0)or(u or v=1) (3.9)
下列表格1中的True、False以及X分别代表真、伪与以及不影响;以P1作举例,当Flag1、Flag2、Flag3、Flag4为真,且Flag Chroma为假,则P1输出为经过滤波器运算后的数值(bs1p1),否则保持不变。
bs1p1=p1+clip(-c1,c1,((p2+((p0+q0+1)>>1)-2p1)>>1)) (3.10)
bs1p0=p0+clip(-c0,c0,(((q0-p0)<<2)+(p1-q1)+4)>>3)) (3.11)
表1边界强度为1、2、3的输出选择表
边界强度为4时,公式如下,分别表如表2所示
bs4p2=((2p3+3p2+p1+p0+q0+4)>>3) (3.14)
bs4p1=((p2+p1+p0+q0+2)>>2) (3.15)
bs4p0=((p2+2p1+2p0+2q0+q1+4)>>3) (3.16)
bs4p0f=((2p1+p0+q1+2)>>2) (3.17)
表2边界强度为4的输出选择表
在进行管线式滤波器运算分解时,根据H.264/AVC提出的去块滤波器算法,在运算方程式之中有许多共同项目,所以本发明在硬件设计实现过程中,亦可以再进一步作优化的分解,同时也有利于管线式滤波器的分割,以边界强度为4,式3.14至3.21为例,可以替换为以下方程序:
bs4p2=(Sp0q0p1p2+(Sp2p3<<1))>>3; (3.22)
bs4p1=(Sp0q0p1p2)>>2; (3.23)
bs4p0=(Sp0q0p1q1+Sp0q0p1p2)>>3; (3.24)
bs4p0f=(Sp0p1+Sp1q1)>>2; (3.25)
以边界强度为1、2、3,公式3.10到3.13为例,可以整理出以下方程序:
bs1p1=(Sp0q0+{Sd2p1p2[8],Sd2p1p2,1'b0})>>2; (3.30)
bs1p0=((Sq0dp0<<2)+{{Sp1dq1[9]},Sp1dq1}+11'd4)>>3; (3.31)
bs1q1=(Sp0q0+{Sd2q1q2[8],Sd2q1q2,1'b0})>>2; (3.32)
在式3.22到3.32其中有许多共同项,可以再被提出来作化简整理如下:
Sp0q0=p0+q0+1; (3.33)
Sp0p1=p0+p1+1; (3.37)
Sp1p2=p1+p2+1; (3.38)
Sp2p3=p2+p3+1; (3.39)
Sp0q0p1q1=Sp0q0+Sp1q1; (3.40)
Sp0q0p1p2=Sp0q0+Sp1p2; (3.41)
Sp0q0q1q2=Sp0q0+Sq1q2; (3.42)
Sq0dp0=q0-p0; (3.43)
Sp1dq1=p1-q1; (3.44)
Sd2p1p2=(p2-(p1<<1)); (3.45)
Sd2q1q2=(q2-(q1<<1)); (3.46)
其中式3.33至3.39、3.43到3.46可以在Filter1阶段完成,而式3.25、3.26、3.30到3.32、3.40到3.42可以在Filter2阶段完成,式3.22、3.24、3.27、3.29在Filter3阶段完成,式3.8到3.11所需的裁剪功能可以在Filter Clip阶段完成。
本发明将提出的架构以Verilog HDL进行硬件电路设计,并且使用SynopsysDesign Compiler在TSMC CMOS 0.18μm制程下进行合成,工作频率设定为100MHz,合成后的逻辑闸数为19.4K。本发明将所提出的硬件架构与近年文献作比较,改善了去块滤波器的缺点在于使用的内存成本与处理速度。
需要说明的是,尽管在本发明中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本发明所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
Claims (2)
1.一种基于H.264的去块滤波器硬件架构,其特征在于,包括第一内存器、第二内存器、信息存储控制模块、去块滤波器模块、第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器、第五多路复用器,所述信息存储控制模块与所述去块滤波器模块连接,所述去块滤波器模块的输出端与第一多路复用器的输入端、第二多路复用器的输入端和第三多路复用器的输入端连接,所述第三多路复用器的输出端与第一内存器连接,所述第二多路复用器的输出端与第二内存器连接,第一内存器与第一多路复用器的输入端、第四多路复用器的输入端和第五多路复用器的输入端连接,所述第二内存器与第一多路复用器的输入端、第四多路复用器的输入端和第五多路复用器的输入端连接,第四多路复用器的输出端与第五多路复用器的输出端与去块滤波器模块的输入端连接;
所述信息存储控制模块用于控制内存器地址、数据流的选择以及数据输入输出,并用于储存着去块滤波器模块所需要用到的参数信息,去块滤波器模块用于去除图像方块效应;
所述第一内存器和第二内存器都为双读写端口内存,第一内存器存放着上一个巨方块最右侧的区块数据,第二内存器存放着目前正在处理中的区块数据,所述第一内存器或者第二内存器中的每一行像素点信息的位置向右循环偏移,所述循环偏移的个数与行数相同;所述去块滤波器模块包括一阶模块、二阶模块、三阶模块和旗标运算单元,所述一阶模块包括索引表模块和一阶滤波器,所述二阶模块包括信号选择器、索引表缓存器和二阶滤波器,三阶模块包括滤波裁剪器和三阶滤波器,所述一阶滤波器与第四多路复用器的输出端与第五多路复用器的输出端连接,所述索引表模块与信息存储控制模块连接用于获取参数信息,索引表模块的输出端与索引表缓存器和信号选择器连接,一阶滤波器的输出端与二阶滤波器连接,索引表缓存器的输出端与滤波裁剪器连接,滤波裁剪器的输出端与旗标运算单元连接,二阶滤波器的输出端与三阶滤波器连接,三阶滤波器的输出端与旗标运算单元连接,信号选择器的输出端与旗标运算单元连接。
2.根据权利要求1所述的一种基于H.264的去块滤波器硬件架构,其特征在于:所述第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器和第五多路复用器的总线宽度为32位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811637330.6A CN109743582B (zh) | 2018-12-29 | 2018-12-29 | 一种基于h.264的去块滤波器硬件架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811637330.6A CN109743582B (zh) | 2018-12-29 | 2018-12-29 | 一种基于h.264的去块滤波器硬件架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109743582A CN109743582A (zh) | 2019-05-10 |
CN109743582B true CN109743582B (zh) | 2020-12-11 |
Family
ID=66362373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811637330.6A Expired - Fee Related CN109743582B (zh) | 2018-12-29 | 2018-12-29 | 一种基于h.264的去块滤波器硬件架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743582B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110602508A (zh) * | 2019-09-19 | 2019-12-20 | 天津大学 | 一种应用于jpeg2000的图像预处理vlsi结构 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100824287B1 (ko) * | 2007-02-13 | 2008-04-24 | 한국과학기술원 | 저전력 고속 디블록킹 필터 |
CN101242489A (zh) * | 2006-02-09 | 2008-08-13 | 三星电子株式会社 | 根据图像信号的频率分量处理图像信号的后处理电路 |
US7602849B2 (en) * | 2003-11-17 | 2009-10-13 | Lsi Corporation | Adaptive reference picture selection based on inter-picture motion measurement |
CN103731674A (zh) * | 2014-01-17 | 2014-04-16 | 合肥工业大学 | 一种h.264二维并行后处理去块滤波器硬件实现方法 |
CN104253998A (zh) * | 2014-09-25 | 2014-12-31 | 复旦大学 | 一种适用于hevc标准的去方块效应滤波器的硬件片上存储方法 |
CN106464894A (zh) * | 2014-02-12 | 2017-02-22 | 明达半导体股份有限公司 | 视频处理方法及装置 |
-
2018
- 2018-12-29 CN CN201811637330.6A patent/CN109743582B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7602849B2 (en) * | 2003-11-17 | 2009-10-13 | Lsi Corporation | Adaptive reference picture selection based on inter-picture motion measurement |
CN101242489A (zh) * | 2006-02-09 | 2008-08-13 | 三星电子株式会社 | 根据图像信号的频率分量处理图像信号的后处理电路 |
KR100824287B1 (ko) * | 2007-02-13 | 2008-04-24 | 한국과학기술원 | 저전력 고속 디블록킹 필터 |
CN103731674A (zh) * | 2014-01-17 | 2014-04-16 | 合肥工业大学 | 一种h.264二维并行后处理去块滤波器硬件实现方法 |
CN106464894A (zh) * | 2014-02-12 | 2017-02-22 | 明达半导体股份有限公司 | 视频处理方法及装置 |
CN104253998A (zh) * | 2014-09-25 | 2014-12-31 | 复旦大学 | 一种适用于hevc标准的去方块效应滤波器的硬件片上存储方法 |
Non-Patent Citations (2)
Title |
---|
An In-Place Architecture for the Deblocking Filter;Chao-Chung Cheng, Tian-Sheuan Chang;《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS》;20060731;全文 * |
高速AVS 去块滤波器的VLSI 实现;林志将;《计 算 机 工 程》;20120630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109743582A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8369420B2 (en) | Multimode filter for de-blocking and de-ringing | |
US7747088B2 (en) | System and methods for performing deblocking in microprocessor-based video codec applications | |
Sheng et al. | An implemented architecture of deblocking filter for H. 264/AVC | |
US20060133504A1 (en) | Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same | |
US20060115002A1 (en) | Pipelined deblocking filter | |
KR102359415B1 (ko) | 비디오 코딩을 위한 인터 예측 장치 및 방법을 위한 보간 필터 | |
US9060169B2 (en) | Methods and apparatus for providing a scalable deblocking filtering assist function within an array processor | |
KR20050113660A (ko) | 낮은 비트-레이트 비디오의 비디오 품질을 향상시키는 방법및 장치 | |
WO2012094751A1 (en) | Adaptive loop filtering using tables of filter sets for video coding | |
CN113994670A (zh) | 具有虚拟边界的跨分量自适应环路滤波的视频编解码方法及装置 | |
Cheng et al. | An in-place architecture for the deblocking filter in H. 264/AVC | |
CA3105442C (en) | Apparatus and method for filtering in video coding | |
CN109743582B (zh) | 一种基于h.264的去块滤波器硬件架构 | |
Li et al. | De-blocking filter design for HEVC and H. 264/AVC | |
US20090022415A1 (en) | Method and system for filtering image data | |
GB2456227A (en) | Video motion compensation by transposing pixel blocks and selecting interpolated pixels from a vertical filter | |
Lin et al. | Efficient deblocking filter architecture for H. 264 video coders | |
US20060245501A1 (en) | Combined filter processing for video compression | |
KR20050121627A (ko) | 동영상 코덱의 필터링 방법 및 필터링 장치 | |
US20100014597A1 (en) | Efficient apparatus for fast video edge filtering | |
KR101031493B1 (ko) | 에이치 닷 264 표준에 근거한 디코더용 움직임 보상기 및 그 보간 연산 방법 | |
Min et al. | A memory and performance optimized architecture of deblocking filter in H. 264/AVC | |
Chen et al. | Configurable VLSI architecture for deblocking filter in H. 264/AVC | |
Sivanantham | High-throughput deblocking filter architecture using quad parallel edge filter for H. 264 video coding systems | |
WO2010005316A1 (en) | High performance deblocking filter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201211 |