一种视频图象象素插值装置的制作方法

文档序号:7596408阅读:154来源:国知局
专利名称:一种视频图象象素插值装置的制作方法
技术领域
本发明涉及图像编解码技术,具体地说,涉及图象象素插值的装置。
背景技术
二十世纪九十年代以来,国际标准化组织ISO、国际电工技术委员会IEC和国际电信联盟ITU相继制定了一系列多媒体编码的标准和建议,典型的有MPEG系列国际标准、H.26x系列视频压缩标准和联合视频编码标准JVT等。中国也正在制定数字音视频编解码标准AVS。
通常,视频序列是通过对模拟输入信号的采样得到的,其中整象素点是视频图像的有效采样点。在视频编码技术中普遍以宏块为基本编码单元,一个宏块是一个16×16的象素方阵,宏块可以被16×8、8×16、8×8、4×8、8×4、4×4象素块划分。亚象素点处在整象素点之间,是由整象素点插值得到的。现有的各项标准中其插值方法均有不同,但也存在共同点和相似之处。下面以AVS中的插值算法为例,介绍二分之一样本和四分之一样本的插值计算。
图1是整数样本、二分之一样本和四分之一样本的位置示意图,其中大写字母标记的是整数样本的位置,小写字母标记的是二分之一样本和四分之一样本的位置。二分之一样本和四分之一样本是通过滤波实现的,滤波器分别采用的是F1(-1,5,5,-1)和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)。采用水平方向或垂直方向滤波得到的二分之一样本j的值相同。
四分之一样本的插值计算过程如下对于四分之一样本a用滤波器F2在水平方向上对ee’、D’、b’和E’四个值进行滤波,得到中间值a’=(ee’+7D’+7b’+E’),其中ee’和b’是相应位置二分之一样本的中间值,D’和E’是相应位置整数样本放大8倍的值;最终的预测值a=Clip1((a’+64)>>7)。
对于四分之一样本d用滤波器F2在垂直方向上对ff’、D’、h’和H’四个值进行滤波,得到中间值d’=(ff’+7D’+7h’+H’),其中ff’和h’是相应位置二分之一样本的中间值,D’和H’是相应位置整数样本放大8倍的值;最终的预测值d=Clip1((d’+64)>>7)。
四分之一样本n的插值过程与四分之一样本d的插值过程相同。
对于四分之一样本i用滤波器F2在水平方向上对gg’、h”、j’和m”四个值进行滤波,得到中间值I’=(gg’+7h”+7j’+m”),其中gg’和j’是相应位置二分之一样本的中间值,h”和m”是相应位置二分之一样本的中间值放大8倍的值;最终的预测值i=Clip1((I’+512)>>10)。
四分之一样本k的插值过程与四分之一样本i的插值过程相同。
对于四分之一样本f用滤波器F2在垂直方向上对hh’、b”、j’和s”四个值进行滤波,得到中间值f’=(hh’+7b”+7j’+s”),其中hh’和j’是相应位置二分之一样本的中间值,b”和s”是相应位置二分之一样本的中间值放大8倍的值;最终的预测值f=Clip1((f’+512)>>10)。
四分之一样本q的插值过程与四分之一样本f的插值过程相同。
对于四分之一样本e、g、p和r,有e=(D”+j’+64)>>7;g=(E”+j’+64)>>7;p=(H”+j’+64)>>7;r=(I”+j’+64)>>7,其中D”、E”、H”和I”是相应位置整数样本放大64倍的值,j’是相应位置二分之一样本的中间值。
公开号为1125030的中国专利“用于运动补偿插值的方法与装置”给出了一种插值的方法与装置,主要是实现二分之一象素精度的插值运算,无法解决四分之一象素精度的插值。
公开号为1140958的中国专利“接收MPEG2的半象素运动补偿控制器”也是只针对于MPEG-2的半象素插值,由于计算能力输入数据带宽的限制,无法满足四分之一象素插值处理的要求。
目前的视频图象插值可实现二分之一象素插值、四分之一象素插值甚至八分之一象素插值,从象素插值算法的演变过程来看,其计算越来越复杂,计算量也越来越大。在数据的特殊相关性方面,一方面象素块内被处理数据间的相互关联、相互影响需要复杂的流水结构来提高处理速度,另一方面块间数据不相关,对相邻块的处理之间需要数据准备时间,而在这个时间内通常的流水处理装置是无法工作的,因此会影响处理效率。

发明内容
本发明所要解决的技术问题在于提供一种视频图象象素插值装置,可适用于标清视频和高清视频的象素插值,有效地提高处理速度。
本发明所述视频图象象素插值装置,包括输入寄存器组、寄存器阵列和计算单元;所述输入寄存器组包括M个寄存器,用于缓存输入的数据,并将数据输出到所述寄存器阵列;所述寄存器阵列包括N个列寄存器组,每个列寄存器组包括M个寄存器,所述列寄存器组用于保存计算一行或一列插值结果所需的所有数据;所述寄存器阵列中的N×N个寄存器构成寄存器窗口,用于保存计算一个插值结果所需的所有数据,寄存器窗口的行或列都可作为所述计算单元的输入;所述计算单元,用于完成插值滤波运算;其中M的取值与象素数据块的大小有关,N是滤波算法最长的滤波阶数。
采用本发明装置,可较好地实现现有的象素插值,如二分之一象素插值或四分之一象素插值等,可以有效地提高象素插值的处理速度和处理效率。


图1是AVS插值运算中整数样本、二分之一样本、四分之一样本的位置示意图;图2是本发明象素插值装置的结构示意图;图3是象素插值装置进行插值计算的流程图;图4是图2中计算单元的结构示意图;图5是图4中滤波器的结构示意图。
具体实施例方式
下面结合附图和实施例,对本发明的技术方案做进一步的详细介绍。
图1已在背景技术中描述过,此处不再赘述。
如图2所示,本发明装置包括由M个寄存器构成的输入寄存器组、由N个列寄存器组构成的寄存器阵列和计算单元。在寄存器阵列中,每个列寄存器包含M个寄存器,选择N×N个寄存器构成寄存器窗口,寄存器窗口的行和列作为计算单元的输入。在所述装置中,M的取值与该装置可以处理的象素数据块大小相关,可以是数据块的长度,也可以是数据块的宽度;N是插值运算中滤波器的最高阶数。
象素数据通过输入寄存器组经过N个周期后输入到寄存器阵列中,即假设列寄存器组从右向左的编号为1,2,...N,则在第1个周期,输入寄存器组中的M个数据输入到列寄存器组1中;在第2个周期,列寄存器组1中的M个数据输入到列寄存器组2中,并且执行与第1个周期相同的输入操作;在第3个周期中,列寄存器组2中的M个数据输入到列寄存器组3中,并且执行与第2个周期相同的输入操作;以此类推,在第N-1个周期中,列寄存器组N-2中的M个数据输入到列寄存器组N-1中,并且执行与第N-2个周期相同的输入操作;在第N个周期,列寄存器组N-1中的M个数据输入到列寄存组N中,并且执行与第N-1个周期相同的输入操作。随后,每计算完一行数据后,都要经过一个时钟周期通过输入寄存器组输入一行象素数据。
为了使计算一个插值结果所需的所有象素数据在一个时钟周期出现在寄存器窗口中,象素数据需要在寄存器阵列中进行传递,包括三种传递方式向左传递、循环向上传递和循环向下传递。向左传递是指寄存器阵列中的所有寄存器将自己保存的数据向其左边紧邻的寄存器传递。循环向上传递是指寄存器阵列中除最上面一行的所有寄存器将自己的数据向其紧邻的上一行寄存器传递,而最上面一行的寄存器将自己的数据传递给其正下方最下面一行的寄存器。循环向下传递是指寄存器阵列中除最下面一行的所有寄存器将自己的数据向其紧邻的下一行寄存器传递,而最下面一行的寄存器将自己的数据传递给其正上方最上面一行的寄存器。
象素插值装置进行插值计算的流程如图3所示。首先Q行象素数据中的N行经过N个时钟周期的向左传递,输入寄存器阵列中,然后开始对一行数据进行计算,计算一行数据需要(M-N+1)个时钟周期。在计算单数行数据时,其中(M-N)个时钟周期的每一个时钟周期,寄存器阵列中的数据都循环向下传递,(M-N+1)个时钟周期后的一个时钟周期,寄存器阵列中的数据都向左传递,并向寄存器阵列输入Q行数据中下一行未输入的数据;在计算双数行数据时,其中(M-N)个时钟周期的每一个时钟周期,寄存器阵列中的数据都循环向上传递,(M-N+1)个时钟周期后的一个时钟周期,寄存器阵列中的数据都向左传递,并向寄存器阵列输入Q行数据中下一行未输入的数据;直到将Q行的数据全部计算完毕。
下面给出一个实施例。如果待处理的象素数据块最大为13×13的数据块,而插值运算中的滤波器阶数最多是6,则象素插值装置有6个列寄存器组,每个列寄存器组有13个寄存器,因此共有78个寄存器,每个寄存器是8位。寄存器窗口是由6×6个寄存器构成,寄存器窗口内的数据将输出到计算单元进行插值计算。其流程如下
首先,经过6个周期的向左传递,插值运算所需的13行数据中的6行数据输入到寄存器阵列中;计算第一行数据,需要8个时钟周期,其中7个时钟周期的每一个时钟,寄存器阵列中的数据都循环向下传递;8个时钟周期后的一个时钟周期,寄存器阵列中的数据向左传递;计算第二行数据,需要8个时钟周期,其中7个时钟周期的每一个时钟,寄存器阵列中的数据都循环向上传递;8个时钟周期后的一个时钟周期,寄存器阵列中的数据向左传递;计算第三行数据,需要8个时钟周期,其中7个时钟周期的每一个时钟,寄存器阵列中的数据都循环向下传递;8个时钟周期后的一个时钟周期,寄存器阵列中的数据向左传递;以此类推,直到计算第八行数据完毕。
图4是本发明像素插值装置中计算单元的示意图,包括两组滤波器、多路选择器、多路选择输出器、第一延时寄存器组和第二延时寄存器组,每组滤波器可包括多个滤波器,具体的个数由具体的编解码技术确定。第一滤波器组,用于接收寄存器窗口输出的数据,进行滤波,并输出到第二滤波器组和多路选择器;第二滤波器组收到第一滤波器组输出的结果后进行滤波,并输出到多路选择输出器;第一延时寄存器组收到寄存器窗口输出的数据后,进行延时,输出到多路选择器;第二延时寄存器组接收来自多路选择器的输出,经过延时后输出到多路选择输出器;多路选择器接收第一延时寄存器组和第一滤波器组的输出,选择输出到多路选择输出器;多路选择输出器则对来自寄存器窗口、第二滤波器组、第二延时寄存器组和多路选择器输出的数据,选择其中一个数据作为结果输出。
滤波器的结构如图5所示,包括7个加法器和9个延时寄存器。从寄存器窗口输入的数据分别在加法器1、加法器2和加法器3中进行加法运算,结果分别输出到延时寄存器1、延时寄存器2和延时寄存器3中,延时寄存器主要用于缓存一个时钟周期的计算结果。延时寄存器1和延时寄存器3输出的计算结果在加法器4中进行相加后输出到延时寄存器4,而延时寄存器2和延时寄存器3输出的计算结果则在加法器5中进行相加,然后输出到延时寄存器5。加法器6对延时寄存器4和延时寄存器5的输出进行相加,再输出到延时寄存器6。延时寄存器2输出的计算结果经过延时寄存器7和延时寄存器8的两次延时,输出到加法器7中,与延时寄存器6输出的计算结果进行相加,最后通过延时寄存器9输出。
上述滤波器的结构属于流水结构,流水线长度是四个时钟周期,当流水线充分被利用时,该滤波器可以每个时钟周期产生一个结果。虽然是滤波器结构,但并没有乘法单元,所有计算通过加法树实现。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种视频图象象素插值装置,其特征在于,包括输入寄存器组、寄存器阵列和计算单元;所述输入寄存器组包括M个寄存器,用于缓存输入的数据,并将数据输出到所述寄存器阵列;所述寄存器阵列包括N个列寄存器组,每个列寄存器组包括M个寄存器,所述列寄存器组用于保存计算一行或一列插值结果所需的所有数据;所述寄存器阵列中的N×N个寄存器构成寄存器窗口,用于保存计算一个插值结果所需的所有数据,所述寄存器窗口的行或列都可作为所述计算单元的输入;所述计算单元,用于完成插值滤波运算;其中M的取值与象素数据块的大小有关,N是滤波算法最长的滤波阶数。
2.根据权利要求1所述的视频图象象素插值装置,其特征在于,所述M是象素数据块的长度或者是象素数据块的宽度。
3.根据权利要求1所述的视频图象象素插值装置,其特征在于,初始化时所述输入寄存器组将输入的象素数据经过N个周期后输出到寄存器阵列,具体是假设寄存器阵列的列寄存器组从右向左编号为1,2,...N,则在第1个周期,输入寄存器组中的M个数据输入到列寄存器组1中;在第2个周期,列寄存器组1中的M个数据输入到列寄存器组2中,并且执行与第1个周期相同的输入操作;在第3个周期中,列寄存器组2中的M个数据输入到列寄存器组3中,并且执行与第2个周期相同的输入操作;以此类推,在第N-1个周期中,列寄存器组N-2中的M个数据输入到列寄存器组N-1中,并且执行与第N-2个周期相同的输入操作;在第N个周期,列寄存器组N-1中的M个数据输入到列寄存组N中,并且执行与第N-1个周期相同的输入操作。
4.根据权利要求1所述的视频图象象素插值装置,其特征在于,当计算插值结果时,象素数据需在寄存器阵列中传递,其传递方式包括向左传递、循环向上传递和循环向下传递;所述向左传递是指寄存器阵列中的所有寄存器将自己保存的数据向其左边紧邻的寄存器传递;所述循环向上传递是指寄存器阵列中除最上面一行的所有寄存器将自己的数据向其紧邻的上一行寄存器传递,而最上面一行的寄存器将自己的数据传递给其正下方最下面一行的寄存器;所述循环向下传递是指寄存器阵列中除最下面一行的所有寄存器将自己的数据向其紧邻的下一行寄存器传递,而最下面一行的寄存器将自己的数据传递给其正上方最上面一行的寄存器。
5.根据权利要求1所述的视频图象象素插值装置,其特征在于,在进行插值计算时,是对每行数据进行计算;计算每行数据需要(M-N+1)个时钟周期;在计算单数行数据时,其中(M-N)个时钟周期的每一个时钟周期,寄存器阵列中的数据都循环向下传递,(M-N+1)个时钟周期后的一个时钟周期,寄存器阵列中的数据都向左传递;在计算双数行数据时,其中(M-N)个时钟周期的每一个时钟周期,寄存器阵列中的数据都循环向上传递,(M-N+1)个周期后的一个时钟周期,寄存器阵列中的数据都向左传递。
6.根据权利要求1所述的视频图象象素插值装置,其特征在于,所述计算单元包括两组滤波器、多路选择器、多路选择输出器、第一延时寄存器组和第二延时寄存器组,每组滤波器可包括多个滤波器,具体的个数由具体的编解码技术确定;所述第一滤波器组,用于接收寄存器窗口输出的数据,进行滤波,并输出到所述第二滤波器组和所述多路选择器;所述第二滤波器组收到所述第一滤波器组输出的结果后进行滤波,并输出到所述多路选择输出器;所述第一延时寄存器组收到寄存器窗口输出的数据后,进行延时,输出到所述多路选择器;所述第二延时寄存器组接收来自所述多路选择器的输出,经过延时后输出到所述多路选择输出器;所述多路选择器接收所述第一延时寄存器组和所述第一滤波器组的输出,选择输出到所述多路选择输出器;所述多路选择输出器则对来自寄存器窗口、所述第二滤波器组、所述第二延时寄存器组和所述多路选择器输出的数据,选择其中一个数据作为结果输出。
7.根据权利要求1所述的视频图象象素插值装置,其特征在于,所述滤波器包括7个加法器和9个延时寄存器;所述延时寄存器用于缓存一个时钟周期的计算结果;从寄存器窗口输入的数据分别在加法器1、加法器2和加法器3中进行加法运算,结果分别输出到延时寄存器1、延时寄存器2和延时寄存器3中;延时寄存器1和延时寄存器3输出的计算结果在加法器4中进行相加后输出到延时寄存器4;而延时寄存器2和延时寄存器3输出的计算结果则在加法器5中进行相加,然后输出到延时寄存器5;加法器6对延时寄存器4和延时寄存器5的输出进行相加,再输出到延时寄存器6;延时寄存器2输出的计算结果经过延时寄存器7和延时寄存器8的两次延时,输出到加法器7中,与延时寄存器6输出的计算结果进行相加,通过延时寄存器9输出。
全文摘要
一种视频图象象素插值装置,包括输入寄存器组、寄存器阵列和计算单元;所述输入寄存器组包括M个寄存器,用于缓存输入的数据,并将数据输出到所述寄存器阵列;所述寄存器阵列包括N个列寄存器组,每个列寄存器组包括M个寄存器,所述列寄存器组用于保存计算一行或一列插值结果所需的所有数据;所述寄存器阵列中的N×N个寄存器构成寄存器窗口,用于保存计算一个插值结果所需的所有数据,所述寄存器窗口的行或列都可作为所述计算单元的输入;所述计算单元,用于完成插值滤波运算。采用本发明装置,可较好地实现现有的象素插值,如二分之一象素插值或四分之一象素插值等,可以有效地提高象素插值的处理速度和处理效率。
文档编号H04N7/12GK1589005SQ20041007028
公开日2005年3月2日 申请日期2004年8月4日 优先权日2004年8月4日
发明者解晓东, 吴迪, 贾惠柱, 生滨, 郑俊浩, 张鹏, 邓磊, 张力, 张帧睿, 王忠立, 高文 申请人:联合信源数字音视频技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1