CN101035276A - H.264解码器去块效应滤波的操作方法 - Google Patents
H.264解码器去块效应滤波的操作方法 Download PDFInfo
- Publication number
- CN101035276A CN101035276A CNA2007100649498A CN200710064949A CN101035276A CN 101035276 A CN101035276 A CN 101035276A CN A2007100649498 A CNA2007100649498 A CN A2007100649498A CN 200710064949 A CN200710064949 A CN 200710064949A CN 101035276 A CN101035276 A CN 101035276A
- Authority
- CN
- China
- Prior art keywords
- data
- boundary
- regp
- filtering operation
- regq
- 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.)
- Pending
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 216
- 230000000694 effects Effects 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000015654 memory Effects 0.000 claims description 110
- 239000004744 fabric Substances 0.000 claims description 22
- 230000008030 elimination Effects 0.000 claims description 12
- 238000003379 elimination reaction Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 2
- 230000007704 transition Effects 0.000 abstract description 6
- 230000008901 benefit Effects 0.000 abstract description 3
- 238000013075 data extraction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
H.264解码器去块效应滤波器操作方法属于视频图像滤波领域,其特征在于,DDR SDRAM作为片外存储器在无片内SRAM条件下,用一个基于ASIC的解码器中的三个寄存器组,分别提取垂直边界左、右侧以及4×4块上侧边界的待滤波数据,依次进行垂直及水平边界的滤波操作,以数据回传以及右侧向左侧转移数据的方法实现垂直边界滤波操作各操作间的过渡;以判断4×4块视频数据的左边界是否为整帧图像的左边界来决定数据提取方式;以判断上侧边界是否为整帧图像的上侧边界来决定是否需要读入上侧边界的数据;并提供了一个解码器的硬件实现。它具有完全复用数据且硬件开销小的优点。
Description
技术领域
本发明涉及视频解码器的去块效应滤波技术及其ASIC硬件实现领域。
背景技术
传统基于块的视频编解码系统中,由于量化和运动补偿中插值运算引入的误差使得编/解码器反变化后的图像会出现方块效应,而这种方块效应又会随着前一个重构帧积累下去,从而极大地影响到图像的质量和压缩效率。H.264中使用去块效应滤波器来消除块效应,并且在编码和解码端均引入去块效应滤波器,可以消除方块效应的传递,从而提高图像质量和压缩效率。
在H.264解码器的ASIC实现中,去块效应滤波器是关键模块之一,其计算复杂度约占解码器总运算量的1/3。H.264/AVC标准中,去块效应滤波器需要对每个4×4块的所有边界进行滤波操作,这就意味着每个4×4块中的数据都会被滤波四次,因此需要大量的存储访问及滤波计算。待滤波的数据来自片外存储,读写需消耗大量时钟周期,如果不能很好的做到数据复用,一方面会消耗大量功耗,另一方面会影响滤波速度。为了达到完全的数据复用(即滤波数据仅从片外存储中读入一次、仅写入片外存储一次),通常的做法是在使用片内SRAM作为缓存,将全部数据逐次读入,做完垂直滤波后,数据存储在片内SRAM中,供下次的水平滤波使用。这种做法存在如下不足:一方面占用的硬件资源较大,另一方面,只是将读写片外存储的一半时间转换为读写片内SRAM的时间,对存储(包括片内和片外)的访问次数的降低不彻底。
H.264/AVC标准中,去块效应滤波是基于4×4块进行的。标准中给出了基本的滤波顺序,如图1所示:先从左向右对块的垂直边界进行水平滤波,然后从上向下对块的水平边界进行垂直滤波。由于水平边界滤波时所用的数据,是垂直滤波后的中间结果数据,所以这种滤波顺序不利于数据的重用。本发明提出了一种新的滤波顺序,可以在无需片内SRAM的情况下,实现数据的完全复用。
另外,为了提高滤波速度,通常使用SRAM作为片外存储。但是片外SRAM价格高、功耗大,在实际应用中有一定的局限性。DDR SDRAM具有价格便宜、功耗较低等优点,是片外存储的良好选择,但因速度稍慢,制约了其在实时滤波处理中的应用。本发明提出一种新的滤波顺序及结构,非常适合片外存储为DDR SDRAM的情况,可有效减少对片外存储的访问次数,提高滤波速度,使DDR SDRAM能够有效的用于实时滤波处理。
发明内容
落后 本发明的目的在于提出一种实现数据完全复用的H.264解码器去块效应滤波方法及一种硬件开销小、滤波速度快且控制简单的无SRAM去块效应滤波器。
本发明所述的H.264解码器去块效应滤波器方法,其特征在于:
用一个基于ASIC的无片内SRAM的去块效应滤波器从作为片外存储器的双数据速率DDR SDRAM中按以下步骤提取H.264标准的4×4视频图像数据块中的待滤波数据进行去块效应滤波;
设:该4×4亮度块的垂直边界从左向右依次为:1-2-3-4,5-6-7-8,13-14-15-16以及21-22-23-24,其水平边界从上向下依次为9-17-25-29,10-18-26-30,11-19-27-31以及12-20-28-32;“-”符号表示上下或左右的连接关系,与该4×4块左垂直边界邻接的4×4亮度块的右垂直边界为b-c-d-e,与该4×4块上水平边界邻接的4×4亮度块的下水平边界为g-h-i-j,a,f分别为空缺且相邻的左垂直边界和上水平边界;
又设:1×4色度块Cr的垂直边界从左向右依次为33-34以及37-38,水平边界从上向下依次为41-45以及42-46,与该1×4色度块Cr左垂直边界邻接的1×4色度块Cr的右垂直边界为l-m,与该1×4色度块Cr上水平边界相邻的1×4色度块Cr的下水平边界为o-p,k,n分别为空缺且相邻的左垂直边界和上水平边界;
还设:1×4色度块Cb的垂直边界从左向右依次为35-36以及39-40,水平边界从上向下依次为43-47以及44-48,与该1×4色度块Cb左垂直边界邻接的1×4色度块Cb右垂直边界为r-s,与该1×4色度块Cb的上水平边界相邻的1×4色度块Cb的下水平边界为u-v,q,t分别为空缺且相邻的左垂直边界和上水平边界;
对4×4亮度块,依次按以下步骤进行滤波操作:
步骤(A1),对1-4边界无需处理,转入步骤(A2);
步骤(A2),在数据通路控制单元控制下,执行5-8和9-12边界的滤波操作:
步骤(A21),通过所述片外存储器接口读入5-8边界左侧数据,存入16×32比特的寄存器组RegP中,再通过该片外存储器接口读入5-8边界右侧数据,存入16×32比特的寄存器组RegQ中;
步骤(A22),对所述RegP和RegQ中的数据按以下步骤执行垂直边界滤波操作:
步骤(A221),从RegP的上端通过一个多路选择器MUX1向边界滤波器提供数据p0~p3,再从RegQ的上端直接向边界滤波器提供数据q0~q3,在提供所述数据的同时,执行垂直边界滤波操作,然后再把寄存器组RegP、RegQ中的数据向上移动一个象素单元,滤波器的中间结果先后分别通过多路选择器MUX2、MUX3回传到寄存器组RegP、RegQ的下端,存储在两个寄存器组的最下面;
步骤(A222),重复步骤(A221)的操作16次,完成一个垂直边界的滤波;
步骤(A223),把RegQ中的数据复制到RegP中,使得每次从片外存储器中读入待滤波数据时,RegP中始终存储垂直边界的左侧数据,RegQ中始终存储垂直边界的右侧数据;
步骤(A224),在执行步骤(A221)中的垂直滤波操作的同时,判断当前亮度块的上侧边界是否为该视频图像4×4块的上侧水平边界,若不是,则通过所述片外存储器接口读入边界9上的数据,存入一个4×32比特的用于存储1/4水平边界上的数据的寄存器组RegT中,否则,便转入步骤(A23);
步骤(A23),对由步骤(A223)中得到的寄存器组RegP、RegQ中的数据按以下步骤执行水平边界滤波操作:
步骤(A231),若当前亮度块的上侧水平边界不是该幅视频图像的上侧边界,则按以下步骤对寄存器组RegP、RegQ中的数据执行9-12的水平边界滤波操作:
步骤(A232),从所述RegT寄存器组的右侧、RegP寄存器组的左侧分别通过所述多路选择器MUX1向边界滤波器提供数据t0~t3和p0,p1’,p2’,p3’,在提供数据的同时,做水平滤波操作,然后,把寄存器组RegT中的数据向右移动一个象素单元,把寄存器组RegP中的数据向左移动一个象素单元,边界滤波器滤波后的中间结果分别通过一个多路选择器MUX4回传到寄存器组RegT的左侧和RegP的右侧,存储于寄存器组RegT、RegP的外侧;
步骤(A233),重复步骤(A232)4次,完成一个水平边界滤波操作;
步骤(A24),通过所述片外存储器接口,把寄存器组RegP、RegT中的全部数据写入片外存储器,把RegQ中的数据复制到RegP中,转入步骤(A3);
步骤(A3),在数据通路控制单元控制下,执行13~16和17~20边界的滤波操作:
步骤(A31),通过所述片外存储器接口读入13~16边界右侧的数据存入到寄存器组RegQ中;
步骤(A32),对所述RegP和RegQ中的数据按步骤(A22)所述的方法执行垂直边界滤波操作;
步骤(A33),对由步骤(A32)得到的寄存器组RegP、RegQ中的数据按步骤(A23)所述的方法执行水平滤波操作;
步骤(A34),按步骤A(24)所述的方法把寄存器组RegP中的全部数据写入片外存储器中,把寄存器组RegQ中的全部数据复制到RegP中,转入步骤(A4);
步骤(A4),执行21~24和25~28、29~32边界的滤波操作:
步骤(A41),通过所述片外存储器接口读入21~24边界右侧的数据存入寄存器组RegQ中;
步骤(A42),按步骤(A32)~步骤(A34)所述的方法执行垂直和水平的边界滤波操作;
步骤(A43),把寄存器组RegQ中的全部数据写入所述片外存储器中;
在执行色度块的滤波操作时,把色度块中的分量Cr、Cb的垂直边界滤波操作合并,按如下步骤依次进行色度块的滤波操作:
步骤(B1),若该色度块的左边界不是该幅视频图像的左边界,则执行下一步骤(B2),否则,无需处理;
步骤(B2),按步骤(A2)所述的方法对37~40边界作垂直边界滤波操作;
步骤(B3),按步骤(A2)所述的方法依次执行41~42,43~44和45~46,47~48的水平边界滤波操作;
所述的数据通路控制单元的各控制信号输出端分别与所述边界滤波器、寄存器组RegP、RegQ、RegT的控制信号输入端相连。
本发明所述的无片内SRAM的去块效应滤波器,其特征在于:
当1~4边界不是一帧图像的左边界时,在对5~8边界执行垂直滤波操作时,只通过片外存储器接口读入5~8边界右侧的数据,存入寄存器组RegQ中。
本发明提出了一种新的滤波顺序,这种滤波顺序可以方便的实现数据的完全复用,并且可以适用于片外存储为DDR SDRAM的情况;同时提出了上述去块效应滤波器的一种新的无片内SRAM的硬件结构,这种新的硬件结构的特征是:片外存储可以使用SRAM,也可以使用双倍数据速率DDR SDRAM;在片内无SRAM做缓存的前提下,实现数据的完全复用;硬件开销小,滤波速度快且控制结构简单。基于上述新的滤波顺序及结构,实现了一个用于H.264Main Profile解码器的去块效应滤波器。
附图说明:
图1.H.264标准中的基本滤波顺序示意图。
图2.本发明提出的滤波顺序示意图。
图3.本发明提出的无SRAM去块效应滤波器的原理框图。
图4.垂直边界滤波操作示意图。
图5.水平边界滤波操作示意图。
图6.去块效应滤波方法的流程图。
具体实施方式
图2给出了本发明提出的滤波顺序的示意图,图中的数字标明滤波的先后顺序。
首先进行亮度分量的滤波操作:
1)如果该宏块的左边界不是该幅图像的左边界,则1~4边界将被首先执行垂直边界滤波操作;若是,则转入步骤2)
2)执行5~8的垂直边界滤波操作;完成后,执行9~12的水平边界滤波操作;
3)执行13~16的垂直边界滤波操作;完成后,执行17~20的水平边界滤波操作;
4)执行21~24的垂直边界滤波操作;完成后,依次执行25~28和29~32的水平边界滤波操作;
至此完成亮度分量的滤波操作,下面进行色度分量的滤波操作:
将色度分量的Cb和Cr分量的垂直边界滤波操作合并,可以降低滤波控制的状态机的状态数。
1)如果该宏块的左边界不是该幅图像的左边界,则33~36边界将被首先执行垂直边界滤波操作;若是,则转入步骤2)
2)执行37~40的垂直边界滤波操作;完成后,依次执行41~42,43~44和45~46,47~48的水平边界滤波操作。
至此完成色度分量的滤波操作,也就完成了一个宏块的滤波操作。
下面介绍这种滤波结构为何适于片外存储为DDR SDRAM的情况及如何实现数据的完全复用:
因为DDR SDRAM的读写需要一定的建立时间,一次读多组数据平均每组数据所需的时钟周期数会远小于一次读一组数据所需的时钟周期数。所以,在片外存储为DDR SDRAM时,需一次读入多组数据。在本发明的这种滤波顺序及滤波结构中,一次需读入一个垂直边界(如1~4垂直边界)左右两侧或一侧的待滤波数据,大大提高DDR SDRAM的读写效率。
滤波操作处理过程如下:若1~4边界不是整帧图像的左侧边界,则滤波操作从1~4边界开始,一次读入1~4边界左右两侧数据(共16×4×2比特),将1~4边界左侧的数据存入RegP,将1~4边界右侧的数据存入RegQ,然后对RegP和RegQ中的数据执行垂直边界滤波操作,滤波的中间结果仍然存放在RegP和RegQ中;当执行垂直边界5~8及水平边界9~12的滤波时,可从RegQ中获得1~4边界右侧的数据,而不必从片内SRAM中读入。其它边界的滤波处理可由此类推,本发明在不增加额外片内SRAM的情况下,仅利用少量寄存器组即可实现数据的完全复用。
本发明的新的滤波顺序,优点如下:
1.可实现完全的数据复用;
2.一次读入一个垂直边界左右两侧或一侧数据,单次读入数据量大(16×32×2比特或16×32比特),适合片外存储为DDR SDRAM的情况。
下面介绍本发明的无SRAM的新电路结构:
1.片内寄存器组定义
为了暂存从片外存储器读入的一个垂直边界左右两侧的数据,定义了两个16×32比特的寄存器组,命名为RegP和RegQ,并约定RegP中始终存放垂直边界左侧数据,RegQ始终存放垂直边界右侧数据;为了暂存从片外存储器读入的1/4水平边界上侧数据(如边界9的上侧4×32比特数据),定义了一个4×32比特的寄存器组,命名为RegT。
2.片外存储接口模块介绍
针对不同的片外存储器,需要设计相应的片外存储接口模块,该模块负责从片外存储中读取待滤波数据,送入片内寄存器组;片内寄存器组中的滤波数据完成所需的全部滤波操作后,通过片外存储接口模块写入片外存储器。
3.垂直边界滤波操作
首先将待滤波垂直边界左右两侧的数据读入RegP和RegQ中,然后对RegP和RegQ中的数据执行16次滤波操作以完成一个垂直边界的滤波,滤波后的中间结果仍然存储在RegP和RegQ中。
具体的滤波过程如附图4所示,从RegP和RegQ寄存器组的上端向边界滤波器提供数据(p0~p3,q0~q3),在提供数据的同时,将寄存器组中的数据向上移动一个象素单元;滤波后的中间结果通过回传路线传到寄存器组的下端,存储在寄存器组的最下面;这个操作重复16次,完成一个垂直边界(如1~4边界)的滤波。通过这里的数据存储组织,将滤波后的中间结果仍然存放在RegP和RegQ中,而不是存储于额外的片内SRAM中,有助于节约片内存储,减少硬件资源开销。
4.水平边界滤波操作
水平边界的待滤波数据一部分来自于垂直边界的滤波中间结果,这部分数据仍然存储在RegP和RegQ中;另一部分来自当前宏块的上侧数据,在做垂直边界滤波的同时,已经将水平边界所需的这部分数据读入RegT中。水平边界滤波操作针对1/4水平边界,譬如对水平边界9进行滤波,需要执行4次滤波运算。
具体的滤波过程如附图5所示,以对水平边界9进行滤波为例说明滤波过程。从RegT寄存器组的右侧和RegP寄存器组的左侧向边界滤波器提供数据(t0~t3,p0’~p3’),在提供数据的同时,将RegT寄存器组中的数据向右移动一个象素单元,将RegP寄存器组中的数据向左移动一个象素单元;滤波后的中间结果通过回传路线分别传到RegT的左侧和RegP的右侧,存储于寄存器组的外侧;这个操作重复4次,完成一个水平边界的滤波操作。整个滤波操作涉及的存储仍然限于RegT和RegP,而无需额外的片内SRAM。
本发明的无SRAM的电路结构,特征如下:
1.使用三个片内寄存器组,RegP、RegQ和RegT,大小分别为16×32比特,16×32比特,4×32比特。所有的待滤波数据及中间结果均存储于这三个片内寄存器组中,片内不使用SRAM做缓存;
2.垂直边界滤波可连续执行16次滤波运算,减少数据及状态切换时间,有助于提高滤波速度(传统的滤波操作只能连续执行4次滤波运算);
3.当前宏块上侧所需数据的读写操作(RegT中的数据)和滤波操作并行执行,有助于提高滤波速度;
4.垂直边界及水平边界滤波的中间结果,可通过本发明提出的回传路线存储于向边界滤波器提供数据的寄存器组,从而实现不占用额外片内存储器(如SRAM)的效果。
图3是本发明的无SRAM去块效应滤波器的顶层结构图,此处结合附图3说明该结构的工作原理。
对亮度部分的处理过程如本节所述:
1.执行1~4边界的滤波操作
准备数据:判断当前宏块的左边界是否为该幅图形的左边界,若是,则1~4边界无需处理,直接跳转到步骤2;若不是,则通过片外存储接口模块读入1~4边界左右两侧数据,分别存放在RegP和RegQ中。
垂直边界滤波:对RegP和RegQ中的数据执行垂直边界滤波操作,滤波结果仍然存储于RegP和RegQ中。
写入片外存储:存储于RegP中的数据已完成当前宏块滤波运算所需的全部滤波操作,可以写入片外存储。
数据转移:将RegQ中的数据复制到RegP中。这样做的目的,是保证每次从片外存储器中读入待滤波数据时,RegP中始终存储垂直边界的左侧数据,RegQ中始终存储垂直边界的右侧数据,而不必反复切换RegP和RegQ以提供相应的数据,降低了控制的复杂度。状态转移到步骤2。
2.执行5~8和9~12边界的滤波操作
准备数据:判断当前宏块的左边界是否为该幅图像的左边界,若是,则通过片外存储接口读入5~8边界左侧数据,存入RegP中,通过片外存储接口读入5~8边界右侧数据,存入RegQ中;若不是,则通过片外存储接口读入5~8边界右侧数据,存入RegQ中。
垂直边界滤波同时准备边界9上侧数据:对RegP和RegQ中的数据执行垂直边界滤波操作。在做垂直边界滤波操作的同时,判断当前宏块的上侧边界是否为该幅图像的上侧边界,若不是,则通过片外存储接口读入边界9上侧的数据,存入RegT中,为接下来的水平边界滤波准备好数据;若是,则不必读入边界9上侧的数据。
水平边界滤波:垂直边界滤波后的中间结果仍然存储在RegP和RegQ中,若当前宏块的上侧边界不是该幅图像的上侧边界,则对RegT和RegP中的数据执行9~12的水平边界滤波操作;若是,则仅对RegP中的数据执行10~12的水平边界滤波操作。滤波后的数据仍然存储在RegT和RegP中,在边界9完成滤波操作后,可以将RegT中的数据通过片外存储接口写入片外存储器,这个操作和余下的10~12边界的水平边界滤波操作并行,可以节约一部分写片外存储器的时间。
写入片外存储:9~12的水平边界滤波操作完成后,RegP中数据已经完成了全部的垂直边界和水平边界滤波操作,可以写入片外存储器。通过片外存储接口,将RegP中的数据写入片外存储器。
转移数据:将RegQ中的数据复制到RegP中。状态转移到步骤3。
3.执行13~16和17~20边界的滤波操作:
准备数据:通过片外存储接口读入13~16边界右侧数据,存入RegQ中;边界13~16的左侧数据已存储在RegP中。
垂直边界滤波同时准备边界17上侧数据:对RegP和RegQ中的数据执行垂直边界滤波操作。在做垂直边界滤波操作的同时,判断当前宏块的上侧边界是否为该幅图像的上侧边界,若不是,则通过片外存储接口读入边界17上侧的数据,存入RegT中,为接下来的水平边界滤波准备好数据;若是,则不必读入边界17上侧的数据。
水平边界滤波:垂直边界滤波后的中间结果仍然存储在RegP和RegQ中,若当前宏块的上侧边界不是该幅图像的上侧边界,则对RegT和RegP中的数据执行17~20的水平边界滤波操作;若是,则仅对RegP中的数据执行18~20的水平边界滤波操作。滤波后的数据仍然存储在RegT和RegP中,在边界17完成滤波操作后,可以将RegT中的数据通过片外存储接口写入片外存储器,这个操作和余下的18~20边界的水平边界滤波操作并行,可以节约一部分写片外存储器的时间。
写入片外存储:17~20的水平边界滤波操作完成后,RegP中数据已经完成了全部的垂直边界和水平边界滤波操作,可以写入片外存储器。通过片外存储接口,将RegP中的数据写入片外存储器。
转移数据:将RegQ中的数据复制到RegP中。状态转移到步骤4。
4.执行21~24和25~28、29~32边界的滤波操作:
准备数据:通过片外存储接口读入21~24边界右侧数据,存入RegQ中;边界21~24的左侧数据已存储在RegP中。
垂直边界滤波同时准备边界25上侧数据:对RegP和RegQ中的数据执行垂直边界滤波操作。在做垂直边界滤波操作的同时,判断当前宏块的上侧边界是否为该幅图像的上侧边界,若不是,则通过片外存储接口读入边界25上侧的数据,存入RegT中,为接下来的水平边界滤波准备好数据;若是,则不必读入边界25上侧的数据。
水平边界滤波(25~28)同时准备边界29上侧数据:垂直边界滤波后的中间结果仍然存储在RegP和RegQ中,若当前宏块的上侧边界不是该幅图像的上侧边界,则对RegT和RegP中的数据执行25~28的水平边界滤波操作;若是,则仅对RegP中的数据执行26~28的水平边界滤波操作。滤波后的数据仍然存储在RegT和RegP中,在边界25完成滤波操作后,可以将RegT中的数据通过片外存储接口写入片外存储器,然后将边界29上侧数据读入并存储于RegT中。
写入片外存储:25~28的水平边界滤波操作完成后,RegP中数据已经完成了全部的垂直边界和水平边界滤波操作,可以写入片外存储器。通过片外存储接口,将RegP中的数据写入片外存储器。
水平边界滤波(29~32):水平边界29~32滤波所需数据均存储在RegT和RegQ中,若当前宏块的上侧边界不是该幅图像的上侧边界,则对RegT和RegQ中的数据执行29~32的水平边界滤波操作;若是,则仅对RegQ中的数据执行30~32的水平边界滤波操作。水平边界29滤波完成后,将RegT中数据写入片外存储。
写入片外存储:29~32的水平边界滤波操作完成后,RegQ中数据已经完成了全部的垂直边界和水平边界滤波操作,可以写入片外存储器。通过片外存储接口,将RegQ中的数据写入片外存储器。至此,完成一个宏块的亮度部分的滤波操作,状态转移到步骤5。
对色度部分的处理过程如本节所述:
5.执行边界33~36的水平滤波操作
准备数据:判断当前宏块的左边界是否为该幅图形的左边界,若是,则33~36边界无需处理,直接跳转到步骤6;若不是,则通过片外存储接口模块读入33~36边界左右两侧数据,分别存放在RegP和RegQ中。
垂直边界滤波:对RegP和RegQ中的数据执行垂直边界滤波操作,滤波结果仍然存储于RegP和RegQ中。
写入片外存储:存储于RegP中的数据已完成当前宏块滤波运算所需的全部滤波操作,可以写入片外存储。
数据转移:将RegQ中的数据复制到RegP中。状态转移到步骤6。
6.执行37~40和41~44、45~48边界的滤波操作:
准备数据:判断当前宏块的左边界是否为该幅图像的左边界,若是,则通过片外存储接口读入37~40边界左侧数据,存入RegP中,通过片外存储接口读入37~40边界右侧数据,存入RegQ中;若不是,则通过片外存储接口读入37~40边界右侧数据,存入RegQ中。
垂直边界滤波同时准备边界41上侧数据:对RegP和RegQ中的数据执行垂直边界滤波操作。在做垂直边界滤波操作的同时,判断当前宏块的上侧边界是否为该幅图像的上侧边界,若不是,则通过片外存储接口读入边界41上侧的数据,存入RegT中,为接下来的水平边界滤波准备好数据;若是,则不必读入边界41上侧的数据。
水平边界滤波(41~42)同时准备边界43上侧数据:垂直边界滤波后的中间结果仍然存储在RegP和RegQ中,若当前宏块的上侧边界不是该幅图像的上侧边界,则对RegT和RegP(上半部分)中的数据执行41~42的水平边界滤波操作;若是,则仅对RegP(上半部分)中的数据执行边界42的滤波操作。滤波后的数据仍然存储在RegT和RegP中,在边界41完成滤波操作后,可以将RegT中的数据通过片外存储接口写入片外存储器,然后将边界43上侧数据读入并存储于RegT中。
水平边界滤波(43~44)同时准备边界45上侧数据:若当前宏块的上侧边界不是该幅图像的上侧边界,则对RegT和RegP(下半部分)中的数据执行43~44的水平边界滤波操作;若是,则仅对RegP(下半部分)中的数据执行边界44的滤波操作。滤波后的数据仍然存储在RegT和RegP中,在边界43完成滤波操作后,可以将RegT中的数据通过片外存储接口写入片外存储器,然后将边界45上侧数据读入并存储于RegT中。
写入片外存储:41~44的水平边界滤波操作完成后,RegP中数据已经完成了全部的垂直边界和水平边界滤波操作,可以写入片外存储器。通过片外存储接口,将RegP中的数据写入片外存储器。
水平边界滤波(45~46)同时准备边界47上侧数据:若当前宏块的上侧边界不是该幅图像的上侧边界,则对RegT和RegQ(上半部分)中的数据执行45~46的水平边界滤波操作;若是,则仅对RegQ(上半部分)中的数据执行边界46的滤波操作。滤波后的数据仍然存储在RegT和RegP中,在边界45完成滤波操作后,可以将RegT中的数据通过片外存储接口写入片外存储器,然后将边界47上侧数据读入并存储于RegT中。
水平边界滤波(47~48):若当前宏块的上侧边界不是该幅图像的上侧边界,则对RegT和RegQ(下半部分)中的数据执行47~48的水平边界滤波操作;若是,则仅对RegQ(下半部分)中的数据执行边界48的滤波操作。滤波后的数据仍然存储在RegT和RegP中,在边界47完成滤波操作后,可以将RegT中的数据通过片外存储接口写入片外存储器。
写入片外存储:45~48的水平边界滤波操作完成后,RegQ中数据已经完成了全部的垂直边界和水平边界滤波操作,可以写入片外存储器。通过片外存储接口,将RegQ中的数据写入片外存储器。
至此一个宏块的滤波操作全部完成。
Claims (2)
1.H.264解码器去块效应滤波器的操作方法其特征在于,
用一个基于ASIC的无片内SRAM的去块效应滤波器从作为片外存储器的双数据速率DDR SDRAM中按以下步骤提取H.264标准的4×4视频图像数据块中的待滤波数据进行去块效应滤波;
设:该4×4亮度块的垂直边界从左向右依次为:1-2-3-4,5-6-7-8,13-14-15-16以及21-22-23-24,其水平边界从上向下依次为9-17-25-29,10-18-26-30,11-19-27-31以及12-20-28-32;“-”符号表示上下或左右的连接关系,与该4×4块左垂直边界邻接的4×4亮度块的右垂直边界为b-c-d-e,与该4×4块上水平边界邻接的4×4亮度块的下水平边界为g-h-i-j,a,f分别为空缺且相邻的左垂直边界和上水平边界;
又设:1×4色度块Cr的垂直边界从左向右依次为33-34以及37-38,水平边界从上向下依次为41-45以及42-46,与该1×4色度块Cr左垂直边界邻接的1×4色度块Cr的右垂直边界为1-m,与该1×4色度块Cr上水平边界相邻的1×4色度块Cr的下水平边界为o-p,k,n分别为空缺且相邻的左垂直边界和上水平边界;
还设:1×4色度块Cb的垂直边界从左向右依次为35-36以及39-40,水平边界从上向下依次为43-47以及44-48,与该1×4色度块Cb左垂直边界邻接的1×4色度块Cb右垂直边界为r-s,与该1×4色度块Cb的上水平边界相邻的1×4色度块Cb的下水平边界为u-v,q,t分别为空缺且相邻的左垂直边界和上水平边界;
对4×4亮度块,依次按以下步骤进行滤波操作:
步骤(A1),对1-4边界无需处理,转入步骤(A2);
步骤(A2),在数据通路控制单元控制下,执行5-8和9-12边界的滤波操作:
步骤(A21),通过所述片外存储器接口读入5-8边界左侧数据,存入16×32比特的寄存器组RegP中,再通过该片外存储器接口读入5-8边界右侧数据,存入16×32比特的寄存器组RegQ中;
步骤(A22),对所述RegP和RegQ中的数据按以下步骤执行垂直边界滤波操作:
步骤(A221),从RegP的上端通过一个多路选择器MUX1向边界滤波器提供数据p0~p3,再从RegQ的上端直接向边界滤波器提供数据q0~q3,在提供所述数据的同时,执行垂直边界滤波操作,然后再把寄存器组RegP、RegQ中的数据向上移动一个象素单元,滤波器的中间结果先后分别通过多路选择器MUX2、MUX3回传到寄存器组RegP、RegQ的下端,存储在两个寄存器组的最下面;
步骤(A222),重复步骤(A221)的操作16次,完成一个垂直边界的滤波;
步骤(A223),把RegQ中的数据复制到RegP中,使得每次从片外存储器中读入待滤波数据时,RegP中始终存储垂直边界的左侧数据,RegQ中始终存储垂直边界的右侧数据;
步骤(A224),在执行步骤(A221)中的垂直滤波操作的同时,判断当前亮度块的上侧边界是否为该视频图像4×4块的上侧水平边界,若不是,则通过所述片外存储器接口读入边界9上的数据,存入一个4×32比特的用于存储1/4水平边界上的数据的寄存器组RegT中,否则,便转入步骤(A23);
步骤(A23),对由步骤(A223)中得到的寄存器组RegP、RegQ中的数据按以下步骤执行水平边界滤波操作:
步骤(A231),若当前亮度块的上侧水平边界不是该幅视频图像的上侧边界,则按以下步骤对寄存器组RegP、RegQ中的数据执行9-12的水平边界滤波操作:
步骤(A232),从所述RegT寄存器组的右侧、RegP寄存器组的左侧分别通过所述多路选择器MUX1向边界滤波器提供数据t0~t3和p0,p1’,p2’,p3’,在提供数据的同时,做水平滤波操作,然后,把寄存器组RegT中的数据向右移动一个象素单元,把寄存器组RegP中的数据向左移动一个象素单元,边界滤波器滤波后的中间结果分别通过一个多路选择器MUX4回传到寄存器组RegT的左侧和RegP的右侧,存储于寄存器组RegT、RegP的外侧;
步骤(A233),重复步骤(A232)4次,完成一个水平边界滤波操作;
步骤(A24),通过所述片外存储器接口,把寄存器组RegP、RegT中的全部数据写入片外存储器,把RegQ中的数据复制到RegP中,转入步骤(A3);
步骤(A3),在数据通路控制单元控制下,执行13~16和17~20边界的滤波操作:
步骤(A31),通过所述片外存储器接口读入13~16边界右侧的数据存入到寄存器组RegQ中;
步骤(A32),对所述RegP和RegQ中的数据按步骤(A22)所述的方法执行垂直边界滤波操作;
步骤(A33),对由步骤(A32)得到的寄存器组RegP、RegQ中的数据按步骤(A23)所述的方法执行水平滤波操作;
步骤(A34),按步骤A(24)所述的方法把寄存器组RegP中的全部数据写入片外存储器中,把寄存器组RegQ中的全部数据复制到RegP中,转入步骤(A4);
步骤(A4),执行21~24和25~28、29~32边界的滤波操作:
步骤(A41),通过所述片外存储器接口读入21~24边界右侧的数据存入寄存器组RegQ中;
步骤(A42),按步骤(A32)~步骤(A34)所述的方法执行垂直和水平的边界滤波操作;
步骤(A43),把寄存器组RegQ中的全部数据写入所述片外存储器中;
在执行色度块的滤波操作时,把色度块中的分量Cr、Cb的垂直边界滤波操作合并,按如下步骤依次进行色度块的滤波操作:
步骤(B1),若该色度块的左边界不是该幅视频图像的左边界,则执行下一步骤(B2),否则,无需处理;
步骤(B2),按步骤(A2)所述的方法对37~40边界作垂直边界滤波操作;
步骤(B3),按步骤(A2)所述的方法依次执行41~42,43~44和45~46,47~48的水平边界滤波操作;
所述的数据通路控制单元的各控制信号输出端分别与所述边界滤波器、寄存器组RegP、RegQ、RegT的控制信号输入端相连。
2.根据权利要求1所述的H.264解码器去块效应滤波器方法,其特征在于:当1~4边界不是一帧图像的左边界时,在对5~8边界执行垂直滤波操作时,只通过片外存储器接口读入5~8边界右侧的数据,存入寄存器组RegQ中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100649498A CN101035276A (zh) | 2007-03-30 | 2007-03-30 | H.264解码器去块效应滤波的操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100649498A CN101035276A (zh) | 2007-03-30 | 2007-03-30 | H.264解码器去块效应滤波的操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101035276A true CN101035276A (zh) | 2007-09-12 |
Family
ID=38731539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100649498A Pending CN101035276A (zh) | 2007-03-30 | 2007-03-30 | H.264解码器去块效应滤波的操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101035276A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101990098A (zh) * | 2009-07-31 | 2011-03-23 | 索尼公司 | 图像处理设备和方法 |
-
2007
- 2007-03-30 CN CNA2007100649498A patent/CN101035276A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101990098A (zh) * | 2009-07-31 | 2011-03-23 | 索尼公司 | 图像处理设备和方法 |
CN101990098B (zh) * | 2009-07-31 | 2013-11-06 | 索尼公司 | 图像处理设备和方法 |
CN103546760A (zh) * | 2009-07-31 | 2014-01-29 | 索尼公司 | 图像编码装置、图像编码方法、照相机和便携式电话 |
CN103546746A (zh) * | 2009-07-31 | 2014-01-29 | 索尼公司 | 图像解码装置、图像解码方法、电视接收机和便携式电话 |
CN103546746B (zh) * | 2009-07-31 | 2017-07-21 | 索尼公司 | 图像解码装置、图像解码方法、电视接收机和便携式电话 |
CN103546760B (zh) * | 2009-07-31 | 2017-09-08 | 索尼公司 | 图像编码装置、图像编码方法、照相机和便携式电话 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1134991C (zh) | 数字视频信号块间内插预测编码/解码装置及高效编码方法 | |
CN101573978B (zh) | 用于并行处理环中去块滤波器的方法和装置 | |
CN1725860A (zh) | 在音频视频编解码器中使用的滤波方法、设备和介质 | |
CN101068364A (zh) | 视频编码器与图形处理单元 | |
CN1220389C (zh) | 解块过滤设备和方法 | |
CN101043621A (zh) | 一种自适应插值处理方法及编解码模块 | |
CN1627824A (zh) | 位流控制的后处理过滤 | |
CN1543220A (zh) | 视频解码装置和方法 | |
CN1812576A (zh) | 同时执行视频数据水平和垂直滤波的解块滤波器及其方法 | |
CN1960495A (zh) | 图像编码装置、方法及程序 | |
CN1791219A (zh) | 用于片上系统的双层总线结构 | |
CN1256849C (zh) | 1/4像素精度插值的方法和装置 | |
CN101032174A (zh) | 用于降低分辨率更新视频编码和解码的方法和装置 | |
CN1832577A (zh) | 具有解码器的信息处理设备 | |
CN1842164A (zh) | 解码视频数据的解码器和系统 | |
CN1969299A (zh) | 图像生成装置及图像生成方法 | |
CN1799492A (zh) | 无线内窥镜系统的准无损图像压缩和解压缩方法 | |
CN101036151A (zh) | 用于图像压缩中的比率控制的方法和系统 | |
CN110337002A (zh) | 一种在多核处理器平台上hevc多层次高效并行解码算法 | |
CN1306826C (zh) | 基于多级并行流水线方式的环路滤波装置 | |
CN100338620C (zh) | 图像压缩装置 | |
CN101043633A (zh) | 一种编码中量化矩阵选择方法、装置及编解码方法及系统 | |
CN1306824C (zh) | 图像边界像素扩展系统及其实现方法 | |
CN1529509A (zh) | 视频图像亚像素插值的方法和装置 | |
CN1664862A (zh) | 图像编码和解码的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20070912 |