视频解码芯片分数像素滤波系统及其滤波方法

文档序号:7596418阅读:215来源:国知局
专利名称:视频解码芯片分数像素滤波系统及其滤波方法
技术领域
本发明属于数字图像编解码技术和片上系统技术(SOC,system onchip)技术领域,具体地说,是一种基于AVS标准的视频解码芯片分数像素滤波系统及其滤波方法。
背景技术
有效的视频编解码技术是实现多媒体数据存储与传输的关键,而先进的视频编解码技术通常以标准的形式存在。目前典型的视频压缩标准有国际标准化组织(ISO)下设的运动图像专家组(MPEG,MovingPicture Expert Group)推出的MPEG系列国际标准;国际电信联盟(ITU)提出的H.26x系列视频压缩标准,以及我国自己正在制定的视音频编码标准AVS。
运动搜索是视频编码标准中最为重要的一部分,传统的运动搜索都只能搜索到整数像素精度,但是为了提高搜索精度,新的视频标准如mpeg4、h.264均支持分数像素精度的搜索,AVS也支持1/4像素精度的搜索,为了实现分数像素精度的搜索,必须使用低通滤波器以获得分数像素的值。但是,低通滤波器算法很复杂,若用软件实现则需要耗去解码器近三分之一的时间,解码效率较低。同时,数据复用率也较低,浪费了存储器的带宽。

发明内容
针对上述现有技术中存在的问题,本发明提的目的在于提供一种视频解码芯片分数像素滤系统及其滤波方法,以提高低通滤波器进行分数像素精度搜索的效率。
为完成上述发明目的,本发明采用的技术方案是视频解码芯片分数像素滤波系统,包括存储器,带寄存器阵列的数据传输电路、带数据选择器的低通滤波器,低通滤波器是基于流水线的低通滤波器,数据传输电路与外存储器相连接,将从外存控制器接口接收到的整像素矩阵以行的形式存入寄存器阵列,寄存器阵列循环移动由存储器发来的整像素位置,并将循环后的活动整像素送入低通滤波器,低通滤波器进行1/2和1/4滤波,数据选择器根据分数像素的位置控制数据的流动方式,输出分数像素位置。
所述的数据选择器为4个。
所述整像素需要一个13×13的亮度整像素矩阵;所述整像素需要5×5的色度整像素矩阵。
所述寄存器阵列分为两部分,其中上面单元始终是活动单元,为6×13的矩阵。
所述活动整像素是一个6×6的矩阵。
所述低通滤波器为4抽头F1(-1,5,5,-1)滤波器,预测最近像素样本的1/2样本位置。
所述低通滤波器为4抽头F2(1,7,7,1)滤波器,预测最近像素样本的1/4样本位置。
视频解码芯片分数像素滤波方法至少包括以下步骤步骤1、数据传输电路则将从外存储器控制接口接收到的整像素以行的形式存入存储器中;步骤2、数据选择器将存储器中的整像素以矩阵形式移入寄存器阵列;步骤3、寄存器阵列循环移动由存储器发来的整像素矩阵的像素,并将经过循环移动得到的活动整数像素矩阵的像素送入低通滤波器;步骤4、低通滤波器对活动整数像素矩阵的像素进行1/2和1/4滤波,得到分数像素位置;步骤5、将分数像素位置输出。
所述步骤3中的寄存器阵列循环移动包括以下步骤步骤31、在开始6个时钟周期中,每个周期从存储器中取出一行共13个像素,以水平移动方式移入寄存器阵列;步骤32、在接下来7个周期中,阵列将做循环上移,始终保持上面的6×6像素有效;步骤33、在第8周期以倒置的排列顺序水平移入新一行像素,将后面的7个像素挪到前面;步骤34、阵列做循环下移;步骤35、7个周期过后再做水平移动;步骤36、判断输入的整像素是否移完,完则结束移动,否则重复步骤1。
所述步骤4中的滤波具体包括以下步骤步骤411、用F1、F2对水平或垂直方向上最近的4个整数样本滤波,得到中间值;步骤412、中间值经过右移后,所得到的值若大于255,则最终预测值为255,若得到的值小于0,则最终预测值是0,否则最终预测值即为右移所得到的值。
所述滤波具体包括以下步骤步骤421、用F1、F2对斜方向上最近的4个整数或分数样本进行1/2或1/4样本滤波,得到中间值;步骤422、中间值经过右移后,所得到的值若大于255,则最终预测值为255,若得到的值小于0,则最终预测值是0,否则最终预测值即为右移所得到的值。
所述步骤4中的滤波采用乘法变为移位和加法的方法,分2-7个时钟周期完成。
所述步骤4中的滤波是用1个1/2滤波器滤波第1类点,时钟周期为2。
所述步骤4中的滤波是用2个1/2滤波器和1个1/4滤波器滤波第2类点,时钟周期为4。
所述步骤4中的滤波是用5个1/2滤波器和1个加权平均器滤波第3类点,时钟周期为4或5。
所述步骤4中的滤波是用7个1/2滤波器和1个1/4滤波器滤波第4类点,时钟周期为6。
本发明具有明显的优点和积极效果,基于视频编码标准,提出了一种基于流水线复用的滤波系统与滤波方法,用硬件方式实现了分数像素的运动搜索,解决了用软件方式通过低通滤波器进行分数像素精度搜索时所带来的解码器效率低等问题,节省了视频解码器的解码时间,提高了视频解码器的解码效率。适用于视频解码芯片分数精度像素的插值。


图1是图像亮度分量样本矩阵插值示意图;图2是预测样本运动矢量图;图3是色度样本插值示意图;
图4是本发明分数像素滤波系统模块结构图;图5是寄存器阵列循环移位示意图;图6是亮度滤波器1/2滤波示意图;图7是对第1类点滤波器逻辑电路图;图8是对第2类点滤波器逻辑电路图;图9是对第3类点滤波器逻辑电路图;图10是对第4类点滤波器逻辑电路图;图11是色度滤波器样本插值示意图。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步详细的说明。
请参阅图1,该图给出了参考图像亮度分量整数样本、二分之一样本和四分之一样本的位置,其中用大写字母标记的为整数样本位置,用小写字母标记的为二分之一和四分之一样本位置。
二分之一样本位置的预测值通过4抽头滤波器F1(-1,5,5,-1)计算得到。四分之一样本位置的预测值通过4抽头滤波器F2(1,7,7,1)计算得到。
二分之一样本的计算过程如下二分之一样本b首先用F1对水平方向上最近的4个整数样本滤波,得到中间值b’=(-C+5D+5E-F);最终的预测值b=Clip1((b’+4)>>3)。
二分之一样本h首先用F1对垂直方向上最近的4个整数样本滤波,得到中间值h’=(-A+5D+5H-K);最终的预测值h=Clip1((h’+4)>>3)。
二分之一样本j首先用F1在水平或垂直方向上对最近的4个二分之一样本中间值滤波,得到中间值j’=(-bb’+5h’+5m’-cc’),或者j’=(-aa’+5b’+5s’-dd’)。其中aa’,dd’和s’是相应位置二分之一样本中间值,它们用F1在水平方向滤波得到,bb’,cc’和m’是相应位置二分之一样本中间值,它们用F1在垂直方向滤波得到。最终的预测值为j=Clip1((j’+32)>>6)。采用水平方向或垂直方向滤波得到的值相同。
说明上面所使用的clip1是一个裁剪函数,若输入的数大于255,则输出是255,若输入小于0,则输出是0,否则输出等于输入。
四分之一样本的计算过程如下四分之一样本a首先用F2在水平方向上对ee’,D’,b’和E’四个值滤波,得到中间值a’=(ee’+7D’+7b’+E’);最终的预测值a=Clip1((a’+64)>>7)。其中ee’和b’是相应位置二分之一样本中间值,D’和E’是相应位置整数样本放大8倍的值。
四分之一样本d首先用F2在垂直方向上对ff’,D’,h’和H’四个值滤波,得到中间值d’=(ff’+7D’+7h’+H’);最终的预测值d=Clip1((d’+64)>>7)。其中ff’和h’是相应位置二分之一样本中间值,D’和H’是相应位置整数样本放大8倍的值。四分之一样本n的插值过程与d的插值过程相同。
四分之一样本i首先用F2在水平方向上对gg’,h”,j’和m”四个值滤波,得到中间值i’=(gg’+7h”+7j’+m”);最终的预测值i=Clip1((i’+512)>>10)。其中gg’和j’是相应位置二分之一中间值,h”和m”是相应位置二分之一样本中间值放大8倍的值,四分之一样本k的插值过程与i的插值过程相同。
四分之一样本f首先用F2在垂直方向上对hh’,b”,j’和s”四个值滤波,得到中间值f’=(hh’+7b”+7j’+s”);最终的预测值f=Clip1((f’+512)>>10)。其中hh’和j’是相应位置二分之一中间值,b”和s”是相应位置二分之一样本中间值放大8倍的值,四分之一样本q的插值过程与f的插值过程相同。
四分之一样本e,g,p和r
e=(D”+j’+64)>>7g=(E”+j’+64)>>7p=(H”+j’+64)>>7r=(I”+j’+64)>>7其中D”,E”,H”和I”是相应位置整数样本放大64倍的值,j’是相应位置二分之一样本中间值。
参阅图2,该图中当前亮度块E的左上角整像素位置为(x,y),预测样本矩阵predMatrix[x,y]根据表1赋值。
表1 预测样本矩阵像素表

注xFracL等于mvE的水平分量mvE_x & 3,yFracL等于mvE的垂直分量mvE_y & 3设色度样本插值使用与对应亮度块的运动矢量为mvE,mvE的水平分量为mvE_x,垂直分量为mvE_y,对应的运动矢量为mvC。mvC的水平分量为mvC_x,垂直分量为mvC_y,mvC的基本单位为1/8样本。
如图3色度样本插值图所示,A、B、C、D是被插值样本周围的整数样本值,dx与dy分别是预测样本与A的水平和垂直距离,dx等于mvC_x &7,dy等于mvC_y & 7,预测样本矩阵的元素predMatrix[x,y]根据下式计算predMatrix[x,y]=((8-dx)×(8-dy)×A+dx×(8-dy)×B+(8dx)×dy×C+dx×dy×D+32)>>6请参阅图4,视频解码芯片分数像素滤波系统,包括存储器、带一个寄存器阵列的数据传输电路、带四个数据选择器的低通滤波器。存储器属于外围接口,由外界提供。一行十三个整数位置像素经带寄存器阵列的数据传输电路输出6×6整数像素位置矩阵,经带选择器的滤波器电路滤波,输出分数像素位置。本系统中的数据传输电路和低通滤波器的具体功能如下1、数据传输电路数据传输电路与外存储器像连接,将从外存控制器接口接收到的整像素矩阵的像素以行的形式存入存储器。从上面的算法可以看出,要插出整像素位置为(i,j),的所有分数像素位置的点,需要一个6×6的整像素矩阵,该矩阵的左上角位置为(i-2,j-2),右下角位置为(i+3,j+3),故而要插出一个8×8的亮度分像素矩阵,需要一个13×13的亮度整像素矩阵,要插出一个4×4的色度分像素矩阵,需要一个5×5的色度整像素矩阵。
如图5所示,在芯片中,整像素的参考数据将由上游的模块传送过来放到片上的存储器RAM中按行存放,一行有十三个像素,这可以提高硬件的使用率。
这是一个6×13的寄存器阵列,寄存器阵列一端连接数据选择器,循环移动由存储器发来的整像素矩阵,另一端连接低通滤波器。数据从RAM中出来以后将进入这个阵列,这个阵列的单元分为两类,上面的6×6个单元是活动单元,其中存放着当前进行插值所需的6×6的矩阵像素,为了使上面的6×6矩阵始终是当前所需的数据,这个阵列中的数据有三种移动方式,循环上移,循环下移,水平移动。
在启动一个8×8块的插值之后的最初的6个时钟周期即6拍内,每拍从RAM中取出一行13个像素,以水平移动的方式获得最初的6×13行各像素,这时上面的6×6个元素已经有效。在接下来的7拍中阵列将做循环上移,这样始终保持上面的6×6元素有效。在第8拍又要做一次水平移动,将新的一行像素给移进来,但由于此时的阵列由于已经做了7次循环上移,新的一行像素进来的时候排列顺序必须做一次倒置,将后面的7个像素挪到前面,而将前面的6个像素挪到后面。这样在第8拍之后阵列中上面的6×6个元素又是有效的,只不过这次有效的数据是第二行的最后一个分像素插值所需要的,然后阵列将做循环下移,直至7拍过后再做水平移动。然后再做循环上移,这样每拍都能在送出一个6×6个整像素。
对于色度块,可以复用这个结构,阵列也做上述三种动作,只不过插值所需的数据将位于左上角的2×2个元素。
2、基于流水线的滤波器电路低通滤波器接收输入的整像素矩阵像素,对整数像素矩阵像素进行1/2和1/4滤波,得到分数像素位置,其滤波输出端接存储器中的整像素矩阵,将分数像素位置插入整像素矩阵中。滤波器主要有两种(1)亮度滤波器。如图6所示,为了减少关键路径的长度,将一个1/2亮度滤波拆成两拍完成,乘法变成移位和加法,如a×5=a<<2+a,1/4滤波的结构与之类似,但系数不同,h表示1/2滤波,q表示1/4滤波。
为了每一拍流出一个数,本发明采用流水线结构设计,对于不同位置的点采用不同的流水线结构。
对于第1类点,需1个1/2滤波器,得出一个数共需2拍,例如b只需通过一次水平的二分之一像素插值即可得出,i与之类似,由1/2滤波器h0完成。结构如图6所示。
对于第2类点,需2个1/2滤波器和一个1/4滤波器,得出一个数共需4拍,a、c两个水平1/4像素点需通过两次水平的1/2插值得出两个1/2像素点,这由1/2滤波器h0,h1完成,然后利用这两个1/2像素点和两个整像素点进行一次水平的四分之一滤波得出,这由1/4滤波器q0完成,d、n与之类似。结构如图7所示。
对于第3类点,需5个1/2滤波器和(或)一个加权平均器,共需4拍或5拍,j需要先进行四次水平的1/2滤波得到四个1/2像素点,该滤波由1/2滤波器h0、h1、h2、h3完成,再用这四个像素点进行一次垂直的1/2滤波才可得到,即由1/2滤波器h4完成,e、g、p、r四个1/4点需将j与对应的对角线方向的整像素点进行加权平均可得。结构如图8所示。
对于第4类点,对于f、q这两个1/4像素点,需先进行五次水平的1/2插值,由1/2滤波器h0、h1、h2、h3、h4完成,然后利用这五个二分之一像素点进行两次垂直的1/2插值,该步由1/2滤波器h5、h6完成。再利用这两次插值的结果与两个整像素点进行一次四分之一插值得到,由1/4滤波器q0完成,i、k的产生方式与之类似,只不过把水平滤波与竖直滤波的方向互换了一下。需7个1/2滤波器和一个1/4滤波器,共需6拍,结构如图9所示。
实际上,对于前三类点流水线所需的滤波器,均可由第4类点的流水线提供,因此可以用第4种流水线完成全部类型点的运算工作,只是需要依照不同的位置对流水线进行不同的配置而已。配置的全部逻辑均在4个选择器Muxer中体现,其结构如图10所示。
选择器的工作方式是根据dx和dy的不同决定数据的不同的流向,其工作方式描述如下下面的描述中箭头的右端是选择器的输入,左端则是输出。
选择器0h0_i0←A11h0_i1←A12h0_i2←A13h0_i3←A14
h1_i0←A21h1_i1←A22h1_i2←A23h1_i3←A24h2_i0←A31h2_i1←A32h2_i2←A33h2_i3←A34h3_i0←A41h3_i1←A42h3_i2←A43h3_i3←A44如果dx等于1并且dy等于1,那么A0_i←A22<<6否则如果dx等于1并且dy等于3,那么A0_i←A23<<6否则如果dx等于3并且dy等于1,那么A0_i←A323<<6否则如果dx等于3并且dy等于3,那么A0_i←A333<<6如果dx等于1并且dy等于0,那么h4_i0←A20;h4_i1←A21;h4_i2←A22;h4_i3←A23;否则如果dx等于3并且dy等于0,那么h4_i0←A22h4_i1←A23h4_i2←A24h4_i3←A25
否则如果dx等于2并且dy等于1,那么h4_i0←A11h4_i1←A12h4_i2←A13h4_i3←A14否则如果dx等于2并且dy等于3,那么h4_i0←A51h4_i1←A52h4_i2←A53h4_i3←A54选择器1h5_i0←h0_Oh5_i1←h1_Oh5_i2←h2_Oh5_i3←h3_O如果dy等于1,那么h5_i0←h4_Oh5_i1←h0_Oh5_i2←h1_Oh5_i3←h2_O否则h5_i0←h1_Oh5_i1←h2_Oh5_i2←h3_Oh5_i3←h4_O如果dx等于1,那么q0_i0←h4_Oq0_i1←A22′<<3q0_i2←h1_Oq0_i3←h23′<<3否则
q0_0←A22′<<3q0_i1←h1_Oq0_i2←A23′<<3q0_i3←h4_O选择器2如果dy等于1,那么q1_i1←h6;q1_i2←h1′<<3;q1_i3←h5;q1_i4←h2′<<3;否则q1_i1←h1′<<3;q1_i2←h5;q1_i3←h2′<<3;q1_i4=h6;选择器3若该点为整数像素点result←clip1((h1_O+4)>>3);若该点为第1类点result←clip1((q0_O+64)>>7);若该点为第2类点reslut←clip1((h5_O+32)>>6);若该点为第3类点result←clip1((A_O+64)>>7);若该点为第4类点result←clip1((q1_O+512)>>10);(2)色度滤波器。如图11所示。色度滤波器的结构单一,为了缩短关键路径,将一次色度插值分成4拍完成。
以上实施例仅用以说明而非限制本发明的技术方案,本领域的普通技术人员应当理解可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.视频解码芯片分数像素滤波系统,其特征在于,该系统包括存储器,带寄存器阵列的数据传输电路、带数据选择器的低通滤波器,低通滤波器是基于流水线的低通滤波器,数据传输电路与外存储器相连接,将从外存控制器接口接收到的整像素矩阵以行的形式存入寄存器阵列,寄存器阵列循环移动由存储器发来的整像素位置,并将循环后的活动整像素送入低通滤波器,低通滤波器进行1/2和1/4滤波,数据选择器根据分数像素的位置控制数据的流动方式,输出分数像素位置。
2.根据权利要求1所述的视频解码芯片分数像素滤波系统,其特征在于,所述的数据选择器为4个。
3.根据权利要求1所述的视频解码芯片分数像素滤波系统,其特征在于,所述整像素矩阵为一个13×13的亮度整像素矩阵。
4.根据权利要求1所述的视频解码芯片分数像素滤波系统,其特征在于,所述整像素矩阵为5×5的色度整像素矩阵。
5.根据权利要求1所述的视频解码芯片分数像素滤波系统,其特征在于,所述寄存器阵列分为两部分,其中上面单元始终是活动单元,为6×13的矩阵。
6.根据权利要求1所述的视频解码芯片分数像素滤波系统,其特征在于,所述活动整像素是一个6×6的矩阵。
7.根据权利要求1所述的视频解码芯片分数像素滤波系统,其特征在于,所述低通滤波器为4抽头F1(-1,5,5,-1)滤波器,预测最近像素样本的1/2样本位置。
8.根据权利要求1所述的视频解码芯片分数像素滤波系统,其特征在于,所述低通滤波器为4抽头F2(1,7,7,1)滤波器,预测最近像素样本的1/4样本位置。
9.视频解码芯片分数像素滤波方法,其特征在于,该方法至少包括以下步骤步骤1、数据传输电路则将从外存储器控制接口接收到的整像素以行的形式存入存储器中;步骤2、数据选择器将存储器中的整像素以矩阵形式移入寄存器阵列;步骤3、寄存器阵列循环移动由存储器发来的整像素矩阵的像素,并将经过循环移动得到的活动整数像素矩阵的像素送入低通滤波器;步骤4、低通滤波器对活动整数像素矩阵的像素进行1/2和1/4滤波,得到分数像素位置;步骤5、将分数像素位置输出。
10.根据权利要求9所述的视频解码芯片分数像素滤波方法,其特征在于,所述步骤3中的寄存器阵列循环移动包括以下步骤步骤31、在开始6个时钟周期中,每个周期从存储器中取出一行共13个像素,以水平移动方式移入寄存器阵列;步骤32、在接下来7个周期中,阵列将做循环上移,始终保持上面的6×6像素有效;步骤33、在第8周期以倒置的排列顺序水平移入新一行像素,将后面的7个像素挪到前面;步骤34、阵列做循环下移;步骤35、7个周期过后再做水平移动;步骤36、判断输入的整像素是否移完,完则结束移动,否则重复步骤1。
11.根据权利要求9所述的视频解码芯片分数像素滤波方法,其特征在于,所述步骤4中的滤波具体包括以下步骤步骤411、用F1、F2对水平或垂直方向上最近的4个整数样本滤波,得到中间值;步骤412、中间值经过右移后,所得到的值若大于255,则最终预测值为255,若得到的值小于0,则最终预测值是0,否则最终预测值即为右移所得到的值。
12.根据权利要求9所述的视频解码芯片分数像素滤波方法,其特征在于,所述滤波具体包括以下步骤步骤421、用F1、F2对斜方向上最近的4个整数或分数样本进行1/2或1/4样本滤波,得到中间值;步骤422、中间值经过右移后,所得到的值若大于255,则最终预测值为255,若得到的值小于0,则最终预测值是0,否则最终预测值即为右移所得到的值。
13.根据权利要求9所述的视频解码芯片分数像素滤波方法,其特征在于,所述步骤4中的滤波采用乘法变为移位和加法的方法,分2-7个时钟周期完成。
14.根据权利要求9所述的视频解码芯片分数像素滤波方法,其特征在于,所述步骤4中的滤波是用1个1/2滤波器滤波第1类点,时钟周期为2。
15.根据权利要求9所述的视频解码芯片分数像素滤波方法,其特征在于,所述步骤4中的滤波是用2个1/2滤波器和1个1/4滤波器滤波第2类点,时钟周期为4。
16.根据权利要求9所述的视频解码芯片分数像素滤波方法,其特征在于,所述步骤4中的滤波是用5个1/2滤波器和1个加权平均器滤波第3类点,时钟周期为4或5。
17.根据权利要求9所述的视频解码芯片分数像素滤波方法,其特征在于,所述步骤4中的滤波是用7个1/2滤波器和1个1/4滤波器滤波第4类点,时钟周期为6。
全文摘要
本发明是视频解码芯片分数像素滤波系统及其滤波方法。系统包括存储器、带一个寄存器阵列的数据传输电路、带四个数据选择器的低通滤波器,低通滤波器是基于流水线的低通滤波器,数据传输电路与外存储器相连接,将从外存控制器接口接收到的整像素矩阵以行的形式存入存储器,寄存器阵列循环移动由存储器发来的整像素位置,并将循环后的活动整像素送入低通滤波器,低通滤波器中进行1/2和1/4滤波,数据选择器根据分数像素的位置控制数据的流动方式,输出分数像素位置。本发明用硬件方式实现了分数像素运动搜索,提高了解码器效率。适用于视频解码芯片分数精度像素的插值。
文档编号H04N7/26GK1589020SQ20041007036
公开日2005年3月2日 申请日期2004年7月29日 优先权日2004年7月29日
发明者解晓东, 吴迪, 贾惠柱, 生滨, 郑俊浩, 张鹏, 邓磊, 张力, 张帧睿, 王忠立, 朱胜利, 王晓辉, 颜伟成, 高文 申请人:联合信源数字音视频技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1