环路滤波器及环路滤波方法

文档序号:7854982阅读:229来源:国知局
专利名称:环路滤波器及环路滤波方法
技术领域
本发明涉及数字视频解码技术领域,特别涉及一种环路滤波器及环路滤波方法。
背景技术
H. 264/MPEG-4AVC是由Joint Video Team(JVT)制定的最新的视频标准,这个新标准对于消除块之间的虚拟边界作了重大改进,大幅度提高了图像的质量。但在该标准中,编解码器反变换量化后图像会出现方块效应。产生的原因有两个,其中最主要的原因是基于、块的帧内和帧间预测残差的离散余弦变换(DCT),由于其变换系数的量化过程相对粗糙,因而反量化过程恢复的变换系数带有误差,会造成在图像块边界上的视觉不连续。第二个原因是来自运动补偿预测,运动补偿块可能是从不同帧的不同位置上的内插样点数据中复制而来的。由于运动补偿块的匹配不可能是绝对准确的,所以就会在复制块的边界上产生数据不连续。为了克服这个问题,H. 264标准在视频编解码器中采用了环路滤波(也称块滤波)。根据H. 264标准,在进行环路滤波时,几乎每个像素点都要參与滤波计算,因此环路滤波具有很高的计算复杂度,通常在整个编解码器中占据三分之一以上的计算复杂度,从而对运算速度和系统资源尤其是存储器都提出了很高的要求。现有技术中,主要通过两类方案实现环路滤波第一类方案需要片内SRAM支持,在该类方案中,由于需要用到片内SRAM,设计复杂度及硬件成本较高,同时由于需要大量读写SRAM,也产生了一定的时延,降低了运算速度。该类环路滤波的实现方式请參考图1,其为基于SRAM的环路滤波器的模块示意图。如图I所示,基于片内SRAM的方案中,环路滤波器主要包括对整个环路滤波器中各単元进行控制的控制单元;计算阈值以决定滤波强度的阈值计算单元;分别进行水平滤波和垂直滤波的水平边界滤波单元和垂直边界滤波单元;以及进行数据存储的数据存储单元(SRAM、片内SRAM),所述片内SRAM—般由上部数据存储単元、宏块数据存储単元、左边数据存储単元及中间数据存储单元组成。当进行环路滤波吋,片内SRAM通过外部存储器接ロ从外部存储器中读取所需数据;垂直边界滤波単元从片内SRAM中读取数据,进行边界滤波;产生的数据一部分是已完成滤波,则写到上部数据存储単元、宏块数据存储単元或者左边数据存储单元,然后通过外部存储器接ロ写到片外部存储器,另一部分是没有滤波完成的中间结果,写到中间数据存储单元,以便继续进行下次滤波。完成一个边界的滤波之后,继续从片内SRAM读取新的数据进行下ー边界的滤波,直到所有的边界滤波完成(包括垂直边界及水平边界,其中,水平边界的滤波通过水平边界滤波単元实现)。根据H. 264标准,每个4X4子块数据最多要參与4次滤波运算,而滤波过程中会有很多中间结果,所以需要多次反复读写SRAM,从而造成整个环路滤波性能的下降。第二类方案
无需片内SRAM支持,在该类方案中,虽然无需片内SRAM,但是至少需要两组16*32以及ー组4*32的片内寄存器,这样对资源的消耗同样非常大。同时,在该类方案中,选用了与H. 264标准不同的滤波边界顺序。具体的,请參考图2及图3,其中,图2为无SRAM的环路滤波器的模块示意图;图3为利用图2所示的环路滤波器执行环路滤波的顺序示意图。如图2及图3所示,具体的,寄存器RegP中始终存放垂直边界左侧数据,寄存器RegQ中始终存放垂直边界右侧数据,寄存器RegT中存放水平边界上侧数据;通过外部存储器借ロ将环路滤波所需的数据分别放入上述三个寄存器中,接着,通过滤波控制单元、边界滤波、MUXl 4以及寄存器RegP、寄存器RegQ、寄存器RegT按照图3所示的滤波顺序进行环路滤波。在现有的两种环路滤波方案中,均存在资源消耗大、复杂度高的问题
发明内容
本发明的目的在于提供一种环路滤波器及环路滤波方法,以解决现有技术中环路滤波器资源消耗大的问题。为解决上述技术问题,本发明提供ー种环路滤波器,包括外部存储器接ロ,用以从外部存储器读取数据或者向外部存储器写入数据;至少7组寄存器阵列,用以存储滤波数据,每个寄存器阵列至少由4*4个寄存器组成;滤波计算单元,用以执行边界滤波;边界顺序控制单元,选择读取及存储滤波数据的寄存器阵列。可选的,在所述的环路滤波器中,还包括控制状态机,用以控制待滤波边界的顺序。可选的,在所述的环路滤波器中,还包括滤波边界强度计算模块,用以提供待滤波边界强度及滤波使能。可选的,在所述的环路滤波器中,还包括第一阵列选择器,用以根据边界顺序控制单元输出的信号读取存储滤波数据的寄存器阵列。可选的,在所述的环路滤波器中,还包括第二阵列选择器,用以根据边界顺序控制单元输出的信号向寄存器阵列存储滤波数据。可选的,在所述的环路滤波器中,所述寄存器阵列的数量为7组或者8组。可选的,在所述的环路滤波器中,每个寄存器为8比特寄存器。本发明还提供ー种环路滤波方法,包括当进行第一待滤波边界滤波时,读取待滤波边界两侧的4*4块数据;根据读取的待滤波边界两侧的4*4块数据进行边界滤波。可选的,在所述的环路滤波方法中,当读取的4*4块数据有多个待滤波边界使用吋,则存储该4*4块数据,直到用到该4*4块数据的待滤波边界均完成滤波。可选的,在所述的环路滤波方法中,对于待滤波边界ー侧或者两侧的4*4块数据已存储的,优先执行该待滤波边界的滤波。在本发明提供的环路滤波器中,利用每个寄存器阵列至少由4*4个寄存器组成的至少7组寄存器阵列存储滤波数据,从而相对于现有的无SRAM的环路滤波器至少需要两组16*32以及ー组4*32的片内寄存器而言,大大降低了环路滤波器的资源消耗。此外,在本发明提供的环路滤波方法中,当进行第一待滤波边界滤波时,仅需读取待滤波边界两侧的4*4块数据即可,相对于现有技术中需要读取待滤波边界两侧的一列或者多列的4*4块数据而言,突破了常规模式,从而大大减少了所需要的资源及简化了滤波复杂度。


图I是基于SRAM的环路滤波器的模块示意图;图2是无SRAM的环路滤波器的模块示意图;图3是利用图2所示的环路滤波器执行环路滤波的顺序示意图;图4是本发明实施例一的环路滤波器的框结构示意图;图5是本发明实施例一的寄存器阵列的结构示意图;图6是本发明实施例ニ的环路滤波方法中滤波边界的顺序示意图;图7是本发明实施例三的环路滤波方法中滤波边界的顺序示意图;图8是本发明实施例四的环路滤波方法中滤波边界的顺序示意图。
具体实施例方式以下结合附图和具体实施例对本发明提供的环路滤波器及环路滤波方法作进ー步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式,仅用以方便、明晰地辅助说明本发明实施例的目的。实施例一请參考图4,其为本发明实施例一的环路滤波器的框结构示意图。如图4所示,在本实施例中,所述环路滤波器4包括外部存储器接ロ 40,用以从外部存储器读取数据或者向外部存储器写入数据;寄存器阵列组41,包括至少7组寄存器阵列,用以存储滤波数据,每个寄存器阵列至少由4*4个寄存器组成;滤波计算单元42,用以执行边界滤波;边界顺序控制单元43,选择读取及存储滤波数据的寄存器阵列;控制状态机44,用以控制待滤波边界的顺序;滤波边界强度计算模块45,用以提供待滤波边界强度及滤波使能;第一阵列选择器46,用以根据边界顺序控制单元输出的信号读取存储滤波数据的寄存器阵列;第二阵列选择器47,用以根据边界顺序控制单元输出的信号向寄存器阵列存储滤波数据。在本实施例中,通过利用包括至少7组寄存器阵列的寄存器阵列组41实现滤波数据的存储,而每个寄存器阵列至少只需4*4个寄存器组成,由此,相对于现有的无SRAM的环路滤波器至少需要两组16*32以及ー组4*32的片内寄存器而言,大大降低了环路滤波器的资源消耗。易知,所需的寄存器越大,其资源的消耗及成本越高,因此,虽然在本实施例中所需的寄存器数量较多,相对于现有技术中所需的大寄存器而言,仍大大的降低了资源的消耗。请參考图5,其为本发明实施例一的寄存器阵列的结构示意图。如图5所示,16个寄存器按4行4列的矩阵方式排布,每个寄存器用以存储一个像素点的数据。优选的,每个寄存器为8比特寄存器。
在本实施例中,当利用环路滤波器4进行环路滤波时,首先,根据滤波边界强度计算模块45及控制状态机44获取待滤波边界强度及滤波使能,并获取待滤波边界的顺序;接着,利用外部存储器接ロ 40从外部存储器读取数据,并将读取的数据根据边界顺序控制単元43的选择存放入寄存器阵列组41中;接着,第一阵列选择器46根据边界顺序控制单元输出的信号读取存储滤波数据的寄存器阵列,并将数据传输给滤波计算单元42 ;滤波计算单元42执行边界滤波,并将滤波结果通过第二阵列选择器47根据边界顺序控制单元输出的信号选择寄存器阵列组存储。本发明的重点在干,如何通过至少7组寄存器阵列,每个寄存器阵列至少由4*4个寄存器组成的寄存器阵列组41实现环路滤波所产生的大量数据的存储。因此,在本发明接下去的描述中,将重点介绍其实现的方法。为了说明的清楚,当下文中提到选取某一寄存器阵列时,不再强调是通过第一阵列选择器46还是第二阵列选择器47予以实现。根据本发明所公开的内容,本领域技术人员可很方便地予以实现。此外,易知的,所述滤波计算单元42能够实现水平滤波或者垂直滤波,而具体如何实现,则为现有技术,本申请对此不再赘述。接下去,将介绍本发明提供的环路滤波方法,特别的,该环路滤波方法至少仅需7组寄存器阵列,每个寄存器阵列至少由4*4个寄存器组成即可实现。根据下面的实施例可知,本发明提供的环路滤波方法通过如下方法予以实现当进行第一待滤波边界滤波时,读取待滤波边界两侧的4*4块数据;根据读取的待滤波边界两侧的4*4块数据进行边界滤波。当读取的4*4块数据有多个待滤波边界使用吋,则存储该4*4块数据,直到用到该4*4块数据的待滤波边界均完成滤波。对于待滤波边界ー侧或者两侧的4*4块数据已存储的,优先执行该待滤波边界的滤波。根据接下去的具体实施例,将更清楚的体现本发明所提供的环路滤波方法。实施例ニ在本实施例中,选取Y Cb Cr=4 2 O的格式,ー个完整的宏块数据包括一个16*16的亮度像素阵列以及两个8*8的色度阵列。在本实施例中设定每次滤波边界长度都为4个像素点,这样根据H. 264的规范,总的滤波边界条数为48。为了完成所有边界的滤波,那么边界两边的4*4块数据被加载更新的次数为96次,所以在滤波过程中会有大量的中间数据需要缓存,为了解决这ー问题,本实施例提出了对这48条边界采用了一种交错的滤波顺序。请參考图6,其为本发明实施例ニ环路滤波方法中滤波边界的顺序示意图。其中,图6中所标示的数字I 48即为48条边界的边界滤波顺序,其中,首先对标记“I”的垂直边界执行垂直滤波,接着对标记“2”的垂直边界执行垂直滤波,再接着对标记“3”的水平边界执行水平滤波,依此类推,本实施例不再赘述。

请继续參考图6,其中,Un(η = 0,I. · · 7)为宏块上方4*4块数据,Ln(η = 0,I. · · 7) 为宏块左边4*4块数据,Cn(η = 0,I. . . 23)为当前宏块的4*4块数据,两个4*4块之间的
数值为滤波顺序编号/滤波顺序。接下去,将利用7组寄存器阵列实现 环路滤波的数据存储,每ー组寄存器阵列的数据存储方式可通过如下表I 表6示出,其中,表I 4列出了对亮度像素阵列进行滤波时,所有寄存器阵列的分配情況,寄存器阵列用RegArrN(Ν=0,I. . . 6)表示。表5 6描述了两个色度像素阵列的滤波过程,由于色度分量的数据量较少,所以只用到了五组寄存器阵列。另外,各表中P表示该阵列是当前边界的左边或上边的数据,q表示该阵列是当前边界的右边或下边的数据,out表示该阵列可以写入到外部存储器。

边界 "|l「2 [34l' 5 「67 I 8
RegArrO LO (p) LO (out) -- ' C2(q) " C2C2 (p) C2(q) ' C2
RegArrl C0(q) C0(p) C0(q) COCOCOCO ' CO
RegArr2 --Cl(q) Cl ' Cl(p) " Cl(q) ClCl ' Cl
RegArr3 ----UO (p) ' UO (out) " --C3(q) C3 ' C3(q)
RegArr4 --------Ul (p) Ul (out) ----
RegArr5 ------------U2 (p) U2 (out)
RegArr6 --------------U3 (p)表I第一组边界中寄存器阵列和4*4块数据对应关系(亮度)

边界 "I 9「10「11"[ 12Γ13「1415I16
RegArrO C2C2C2C2"C2C2C2 (p)'C2(out)
RegArrlCOCOC0(p) ' CO (out)"--C7(q)C7'C7(q)
RegArr2ClClClCl"Cl(p)Cl(out)--'--
RegArr3 C3C3C3C3"C3C3C3'C3(p)
RegArr4 LI (p) LI(out) --' C6(q)"C6C6(p)C6(q)'C权利要求
1.ー种环路滤波器,其特征在于,包括 外部存储器接ロ,用以从外部存储器读取数据或者向外部存储器写入数据; 至少7组寄存器阵列,用以存储滤波数据,每个寄存器阵列至少由4*4个寄存器组成; 滤波计算单元,用以执行边界滤波; 边界顺序控制单元,选择读取及存储滤波数据的寄存器阵列。
2.如权利要求I所述的环路滤波器,其特征在于,还包括 控制状态机,用以控制待滤波边界的顺序。
3.如权利要求2所述的环路滤波器,其特征在于,还包括 滤波边界强度计算模块,用以提供待滤波边界强度及滤波使能。
4.如权利要求3所述的环路滤波器,其特征在于,还包括 第一阵列选择器,用以根据边界顺序控制单元输出的信号读取存储滤波数据的寄存器阵列。
5.如权利要求4所述的环路滤波器,其特征在于,还包括 第二阵列选择器,用以根据边界顺序控制单元输出的信号向寄存器阵列存储滤波数据。
6.如权利要求I至5中的任一项所述的环路滤波器,其特征在于,所述寄存器阵列的数量为 组或者8组。
7.如权利要求I至5中的任一项所述的环路滤波器,其特征在干,每个寄存器为8比特寄存器。
8.—种环路滤波方法,其特征在于,包括 当进行第一待滤波边界滤波吋, 读取待滤波边界两侧的4*4块数据; 根据读取的待滤波边界两侧的4*4块数据进行边界滤波。
9.如权利要求8所述的环路滤波方法,其特征在干,当读取的4*4块数据有多个待滤波边界使用吋,则存储该4*4块数据,直到用到该4*4块数据的待滤波边界均完成滤波。
10.如权利要求9所述的环路滤波方法,其特征在于,对于待滤波边界ー侧或者两侧的4*4块数据已存储的,优先执行该待滤波边界的滤波。
全文摘要
本发明提供了一种环路滤波器及环路滤波方法,其中,在本发明提供的环路滤波器中,利用每个寄存器阵列至少由4*4个寄存器组成的至少7组寄存器阵列存储滤波数据,从而相对于现有的无SRAM的环路滤波器至少需要两组16*32以及一组4*32的片内寄存器而言,大大降低了环路滤波器的资源消耗。在本发明提供的环路滤波方法中,当进行第一待滤波边界滤波时,仅需读取待滤波边界两侧的4*4块数据即可,相对于现有技术中需要读取待滤波边界两侧的一列或者多列的4*4块数据而言,突破了常规模式,从而大大减少了所需要的资源及简化了滤波复杂度。
文档编号H04N7/50GK102724512SQ201210224420
公开日2012年10月10日 申请日期2012年6月29日 优先权日2012年6月29日
发明者王远, 郑宇驰 申请人:豪威科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1