CN109743582A - 一种基于h.264的去块滤波器硬件架构 - Google Patents

一种基于h.264的去块滤波器硬件架构 Download PDF

Info

Publication number
CN109743582A
CN109743582A CN201811637330.6A CN201811637330A CN109743582A CN 109743582 A CN109743582 A CN 109743582A CN 201811637330 A CN201811637330 A CN 201811637330A CN 109743582 A CN109743582 A CN 109743582A
Authority
CN
China
Prior art keywords
multiplexer
module
internal memory
output end
connect
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.)
Granted
Application number
CN201811637330.6A
Other languages
English (en)
Other versions
CN109743582B (zh
Inventor
曾宪威
庄明学
夏至贤
张凌
卢盛荣
谢秀珍
李永文
吴柏翰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Longyan University
Original Assignee
Longyan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Longyan University filed Critical Longyan University
Priority to CN201811637330.6A priority Critical patent/CN109743582B/zh
Publication of CN109743582A publication Critical patent/CN109743582A/zh
Application granted granted Critical
Publication of CN109743582B publication Critical patent/CN109743582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开一种基于H.264的去块滤波器硬件架构,包括第一内存器、第二内存器、信息存储控制模块、去块滤波器模块、第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器、第五多路复用器,所述信息存储控制模块与所述去块滤波器模块连接,所述去块滤波器模块的输出端与第一多路复用器的输入端、第二多路复用器的输入端和第三多路复用器的输入端连接,所述第三多路复用器的输出端与第一内存器连接,所述第二多路复用器的输出端与第二内存器连接,区别于现有技术,本发明通过双读写端口内存器和采用新的数据存储方式来存储数据,加快处理速度,降低去块滤波器运算时间,同时降低系统总线的使用。

Description

一种基于H.264的去块滤波器硬件架构
技术领域
本发明涉及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边界强 度(boundary strength,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 2or 3or 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)控制能够减少内存方面的存取次数。在信息存储控制模块中,除 了控制基本的内存器地址、数据流的选择以及数据输入输出之外,还必须储 存着去块滤波器模块所需要用到的参数,例如:In d e x A,In d e x B与 边界强度参数。在图4的系统架构图中,除了控制信号线外,所有内部数据 总线宽度均为32位。对外的总线输入与输出像素数据异步进行,因此可以共 享一个32位的双向信道,很适合应用于单芯片系统(system on a chip,SOC)。
在内存第一内存器储存上一个巨方块中四个4x4的亮度分量区块,以及 四个4x4的色彩分量区块。而内部是由八组16Words×8Bits两端口内存所 组成,储存空间需求为32×32位,相当于1024位。在另一个内存第二内存 器储存着处理目前巨方块中暂时存放的像素数据,根据本发明所提出的去块 滤波器处理流程,最大的暂存使用量为十六个4×4区块,第二内存器内部由 八组32Words×8Bits双端口内存所组成,储存空间需求大小为64×32位, 相当于2048位。
在本发明所提出的去块滤波器架构,处理过滤完一块巨方块仅需要279 个运算周期,其中五个周期为加载已经运算完毕的边界强度以及参数 In d e x A和In d e x B,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阶段为针 对Filter Stage 2的边界强度为4的输出部份结果进行最后的运算,Filter Clip针对边界强度为1到3的输出部份结果进行裁减运算,Filter Out阶段 会根据先前所计算出来的判断旗标去作选择最后结果的输出。
旗标运算单元根据目前的边界强度以及像素相减的绝对值来判断画面上 的边界是由方块效应所产生的假边界或是由实际的画面所带来的真实边界, 经过判断之后,分别可得到FLAG1到FLAG6以及FLAG chroma,在不同的边界 强度之下,藉由判断旗标来分辨(式3.3到3.5皆为真),若是方块效应所带 来的假边界,则输出过滤后的像素来消除方块效应,若是分辨是真实的画面 边界(公式3.3到3.5其中一个不为真),或者是边界强度为0,则保留原来的 像素不作任何过滤。表格1与2为详细的输出选择表。
FLAG 1=|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为真,且FlagChroma为假,则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)
b s4p 1=(S p 0q 0p 1p 2)>>2; (3.23)
bs4p0=(Sp0q0p1q1+Sp0q0p1p2)>>3; (3.24)
bs4p0f=(Sp0p 1+Sp 1q1)>>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 (3)

1.一种基于H.264的去块滤波器硬件架构,其特征在于,包括第一内存器、第二内存器、信息存储控制模块、去块滤波器模块、第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器、第五多路复用器,所述信息存储控制模块与所述去块滤波器模块连接,所述去块滤波器模块的输出端与第一多路复用器的输入端、第二多路复用器的输入端和第三多路复用器的输入端连接,所述第三多路复用器的输出端与第一内存器连接,所述第二多路复用器的输出端与第二内存器连接,第一内存器与第一多路复用器的输入端、第四多路复用器的输入端和第五多路复用器的输入端连接,所述第二内存器与第一多路复用器的输入端、第四多路复用器的输入端和第五多路复用器的输入端连接,第四多路复用器的输出端与第五多路复用器的输出端与去块滤波器模块的输入端连接;
所述信息存储控制模块用于控制内存器地址、数据流的选择以及数据输入输出,并用于储存着去块滤波器模块所需要用到的参数信息,去块滤波器模块用于去除图像方块效应;
所述第一内存器和第二内存器都为双读写端口内存,所述第一内存器或者第二内存器中的每一行像素点信息的位置向右循环偏移,所述循环偏移的个数与行数相同。
2.根据权利要求1所述的一种基于H.264的去块滤波器硬件架构,其特征在于:所述去块滤波器模块包括一阶模块、二阶模块、三阶模块和旗标运算单元,所述一阶模块包括索引表模块和一阶滤波器,所述二阶模块包括信号选择器、索引表缓存器和二阶滤波器,三阶模块包括滤波裁剪器和三阶滤波器,所述一阶滤波器与第四多路复用器的输出端与第五多路复用器的输出端连接,所述索引表模块与信息存储控制模块连接用于获取参数信息,索引表模块的输出端与索引表缓存器和信号选择器连接,一阶滤波器的输出端与二阶滤波器连接,索引表缓存器的输出端与滤波裁剪器连接,滤波裁剪器的输出端与旗标运算单元连接,二阶滤波器的输出端与三阶滤波器连接,三阶滤波器的输出端与旗标运算单元连接,信号选择器的输出端与旗标运算单元连接。
3.根据权利要求1所述的一种基于H.264的去块滤波器硬件架构,其特征在于:所述第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器和第五多路复用器的总线宽度为32位。
CN201811637330.6A 2018-12-29 2018-12-29 一种基于h.264的去块滤波器硬件架构 Active CN109743582B (zh)

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 true CN109743582A (zh) 2019-05-10
CN109743582B CN109743582B (zh) 2020-12-11

Family

ID=66362373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811637330.6A Active CN109743582B (zh) 2018-12-29 2018-12-29 一种基于h.264的去块滤波器硬件架构

Country Status (1)

Country Link
CN (1) CN109743582B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110602508A (zh) * 2019-09-19 2019-12-20 天津大学 一种应用于jpeg2000的图像预处理vlsi结构

Citations (6)

* Cited by examiner, † Cited by third party
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 明达半导体股份有限公司 视频处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
CHAO-CHUNG CHENG, TIAN-SHEUAN CHANG: "An In-Place Architecture for the Deblocking Filter", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS》 *
林志将: "高速AVS 去块滤波器的VLSI 实现", 《计 算 机 工 程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110602508A (zh) * 2019-09-19 2019-12-20 天津大学 一种应用于jpeg2000的图像预处理vlsi结构

Also Published As

Publication number Publication date
CN109743582B (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
CN105898335B (zh) 提升硬件效率的环路滤波方法以及环路滤波装置
KR100843196B1 (ko) H.264/avc 비디오 디코더의 디블록킹 필터
Sheng et al. An implemented architecture of deblocking filter for H. 264/AVC
CN103947208B (zh) 减少解块滤波器的方法及装置
US20170118480A1 (en) Sample adaptive offset (sao) filtering in video coding
EP2664149B1 (en) Deblocking filtering
KR20060060919A (ko) H.264/mpeg-4 에서의 블록킹 효과를 제거하기 위한디블록 필터 및 필터링 방법
MX2014012311A (es) Dispositivo de codificacion de imagen, dispositvo de decodificacion de imagen, metodo de codificacion de imagen, y metodo de decodificacion de imagen.
EP2708027A1 (en) Method and apparatus for reduction of in-loop filter buffer
US20050281339A1 (en) Filtering method of audio-visual codec and filtering apparatus
WO2008075247A1 (en) Image compression and decompression
KR20050113660A (ko) 낮은 비트-레이트 비디오의 비디오 품질을 향상시키는 방법및 장치
CN110337002B (zh) 一种在多核处理器平台上hevc多层次并行解码方法
KR20080076817A (ko) 디지털 동영상 처리 시스템의 디블록 필터링 장치 및 방법
US20090279611A1 (en) Video edge filtering
CN107040778A (zh) 环路滤波方法以及环路滤波装置
CN109743582A (zh) 一种基于h.264的去块滤波器硬件架构
Lin et al. Efficient deblocking filter architecture for H. 264 video coders
KR100359208B1 (ko) 고속 디블럭킹 필터 장치
CN110381321A (zh) 一种用于运动补偿的插值计算并行实现方法
Du et al. A parallel and area-efficient architecture for deblocking filter and Adaptive Loop Filter
KR20050121627A (ko) 동영상 코덱의 필터링 방법 및 필터링 장치
CN105245905A (zh) 一种用于并行结构的多视点视频编码强滤波实现方法
Lakhani et al. Optimal filling of FG/BG layers of compound document images
Nadeem et al. A high-throughput, area-efficient hardware accelerator for adaptive deblocking filter in H. 264/AVC

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