专利名称:一种基于选择器的双线性插值方法和装置的制作方法
技术领域:
本发明涉及数字视频编解码技术领域,具体的说,涉及数字视频编解码运动补偿的亚像素双线性插值方法和装置。
背景技术:
视频是指由一系列时间上相关的图像组成的图像序列,其中的每幅图像称为 “帧”(本申请中对帧模式和场模式的图像都统一适用,所以不区分帧和场,统一称为帧),每帧图像又可以划分为若干个“块”,通常块为正方形或矩形,视频编解码以块为基础单位进行编码,视频编码中常用的块有16X16,8X16,16X8,8X8,4X4等,都是以像素为单位。 “像素”则是指构成图像的点。对视频进行编码的目的是对视频数据进行压缩,以便存储传输,而视频编码方法就是实现上述功能的方法。一个好的视频编码方法,可以在保持视频尽量好的视觉质量的同时,把数据量压缩到尽可能低。而视频解码方法则是把压缩后的数据恢复到可直接观看的视频的方法,从压缩数据得到解码后的图像的过程称为图像重建。视频编解码方法由若干功能模块组成,其中“运动补偿(Motion Compensation, MC)模块”是视频编解码中的一个重要模块。运动补偿模块的功能是,针对当前需要重建的块,根据已经重建的图像计算出用于参考的图像块,把解码所得残差图像块和该参考图像块相加,得到重建的图像块。由于重建图像不只在解码过程中需要,在编码过程中也需要, 因此运动补偿模块在编码方法和解码方法中都存在。运动补偿模块所实现的功能,如图1所示,该图包括了 一个wXh的残差图像块 (在图像处理中,一个图像是wXh,是指“宽X高”,单位为像素),该块在编码或解码过程中经过反量化、反变换等处理得到;一个WXH的已重建帧,将在后续编解码过程中作为参考用,也称为参考帧。参考帧中,有一个JXK的区域,该区域是参考范围,对这个参考范围内的像素插值,可以得到wXh的块作为参考图像块;用于和残差图像块相加,得到一个wXh 的重建图像块。上述提及的插值过程,有多种插值方法,其中一种插值方法是双线性插值方法。如图2所示,通过双线性插值方法计算得到wXh的参考图像块中的一个像素P的值;A、B、C、 D是已重建帧中JXK的参考范围内的4个相邻的像素值;dx、dy分别是水平法方向和垂直方向的亚像素位置参数,其中dx表示了 P对于A所在亚像素位置在水平方向的偏移量,dy 表示了 P对于A所在亚像素位置在垂直方向的偏移量,上述两个参数在编码过程中由其他阶段的功能模块计算得到,如果亚像素P的dx和dy均为0,这时亚像素P就是整像素A ;Dx 和Dy是两个固定不变的常数,值是2的指数次方(例如2、4、8、16等)。dx和dy的值满足关系0彡dx < Dx,0彡dy < Dy,且dx和dy只能为整数。因此亚像素P的偏移量步长为 1。Dx和Dy可以认为A、B、C、D这4个整像素在水平方向和垂直方向以亚像素偏移量步长为单位表示的距离。在双线性插值方法中,P的值通过以下算法计算得到ρ = ((Dx-dx) X (Dy-dy) X A+dx X (Dy-dy) X B+ (Dx_dx) XdyX C+dx XdyXD)/ (DxXDy);
P = int (ρ+0· 5);其中,int (p+0. 5)表示取(p+0. 5)的整数部分,丢掉小数部分。在传统的视频编解码方法中,该双线性插值都直接实现。用直接实现的方法,每个像素需要8个乘法,3个加法。对于视频编解码过程中一次需要处理的wXh的参考图像块, 共需要SXwXh的乘法,3XwXh的加法。对于采用硬件逻辑(如FPGA、ASIC等)实现的情况下,乘法需要用到乘法器比加法用到的加法器需要消耗更多的资源,同时速度性能也更差,传统的直接实现方法具有资源消耗大,工作速度低等缺点。
发明内容
本发明的目的是为克服已有方法的不足之处,提出一种视频编解码中基于选择器实现双线性插值的装置和方法。根据本发明的基于选择器实现双线性插值的装置和方法具有垂直和水平分离,按权重选择相加的特点,这种方法在如FPGA、ASIC等硬件平台上实现时,具有资源占用少,工作速度快等优点。一种视频编解码中实现双线性插值的方法,该方法通过双线性插值计算得到wXh 的参考图像块的一个像素P的值;如图3所示,其特征在于包括以下步骤第一步计算Pl、P2的值Pl = ((Dx-dx) XA+dxXB) /Dx ;P2 = ((Dx-dx) X C+dx X D) /Dx ;第二步计算ρ的值ρ = ((Dy-dy) XPl+dy XP2) /Dy ;第三步计算P的值P = int (p+0. 5);其中A、B、C、D是wXh参考图像块中4个相邻的像素值;dx、dy分别是水平法方向和垂直方向的位置参数,其中dx表示了 P对于A所在位置在水平方向的偏移量,dy表示了 P对于A所在位置在垂直方向的偏移量,上述两个参数在编码过程中由其他阶段的功能模块计算得到;Dx和Dy是两个固定不变的常数,值是2的指数次方(例如2、4、8、16等), 分别表示了 A、B、C、D这4个像素在水平方向和垂直方向的距离。dx和dy的值满足关系 0^dx<Dx,0^dy< Dy。Pl点是像素A点水平偏移dx的像素点,P2点是像素C点水平偏移dx的像素点。P1、P2和P点处于同一水平位置,P可以看作Pl垂直偏移dy的像素点。根据本发明的一个方面,提供一种线性插值模块,该线性插值模块包括第一和第二输入端,用于分别输入第一值和第二值;第三输入端,用于输入η位二进制数dX[Xn_lXn_2. · · X2X1X0JjO ^ dx < 2η,η为大于 1的整数;η个二选一选择器,来自插值模块第三输入端的所述η位输入(Xlri,χη_2,. . .,χ2, X1, X0)中的第i位输入Xi提供给第i 二选一选择器的控制端,插值模块的第一输入端和第二输入端分别与每一二选一选择器的第一输入端和第二输入端连接,使得当所述控制端的输入Xi为0时,第i 二选一选择器输出第一值,当所述控制端的输入Xi为1时,第i 二选一选择器输出第二值,i = 0,1,...,n-1 ;加法模块,用于将n+1个输入(aQ, ,···,an_i;an)求和得到和信号,所述n+1个输入之一为第一值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;以及输出端,用于将所述加法模块的和信号舍去η个最低有效位得到所述第一值和第二值之间的线性插值并输出该线性插值。优选地,所述η为2,3,4,5,6或7。优选地,该线性插值模块进一步包括多个补位数据线,用于实现对各二选一选择器的输出补0。优选地,所述加法模块包括级联的η个加法器。优选地,所述输出端进一步包括取整模块,该取整模块用于将所述加法模块的和信号舍去η个最低有效位后构成的数据与所述加法模块的和信号中从右侧数第η位的值求和得到线性插值。根据本发明的另一方面,提供一种基于选择器计算线性插值的方法,该方法包括以下步骤将第一值分别输入η个二选一选择器中的每一二选一选择器的第一输入端,将第二值分别输入所述每一二选一选择器的第二输入端;将η位二进制数dX[Xn_lXn_2. . . X2X1X0]中的第i位输入Xi分别输入所述η个二选一选择器中的第i 二选一选择器的控制端,使得当第i 二选一选择器的控制端输入Xi为0 时,第i 二选一选择器输出所述第一值,当控制端输入Xi为1时,第i 二选一选择器输出所述第二值,0彡dx< 2n,n为大于1的整数,i = 0,1,...,η-1 ;将η+1个输入求和得到和信号,所述η+1个输入之一为第一值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;将所述和信号舍去η个最低有效位得到所述第一值和第二值之间的线性插值;以及输出所述线性插值。优选地,将所述和信号舍去η个最低有效位第二所述第一值和第二值之间的线性插值的步骤进一步包括,将所述和信号舍去η个最低有效位后构成的数据与所述加法模块的和信号中从右侧数第η位的值求和得到线性插值。根据本发明的又一方面,提供一种双线性插值模块,该双线性插值模块包括第一插值模块、第二插值模块和第三插值模块以及输出端,第一插值模块,包括第一和第二输入端,用于分别输入第一值和第二值;第三输入端,用于输入η位2进制数dX[Xn_lXn_2. · · X2X1X0JjO ^ dx < 2η,η为大于 1的整数;第一 η个二选一选择器,来自第一插值模块第三输入端的所述η位输入中的第i 位输入Xi提供给第i 二选一选择器的控制端,第一插值模块的第一输入端和第二输入端分别与每一二选一选择器的第一输入端和第二输入端连接,使得当所述控制端的输入Xi为0 时,第i 二选一选择器输出第一值,当所述控制端的输入Xi为1时,第i 二选一选择器输出第二值,i =0,1,..., n-1 ;第一加法模块,用于将η+1个输入求和得到第一和信号,所述η+1个输入之一为第一值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;第二插值模块,包括第四和第五输入端,用于分别输入第三值和第四值;第六输入端,用于输入所述η位2进制数dX[Xn_lXn_2. . . X2X1X0];第二 η个二选一选择器,来自第二插值模块第六输入端的所述输入中的第i位输入Xi提供给第i 二选一选择器的控制端,第二插值模块的第四输入端和第五输入端分别与每一二选一选择器的第一输入端和第二输入端连接,使得当所述控制端的输入Xi为0时, 第i 二选一选择器输出第三值,当所述控制端的输入Xi为1时,第i 二选一选择器输出第四值,i = 0,1,. . .,n-1 ;第二加法模块,用于将n+1个输入求和得到第二和信号,所述n+1个输入之一为第三值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;第三插值模块,包括第七和第八输入端,用于分别输入所述第一和信号和所述第二和信号;第九输入端,用于输入m位二进制数dy [ym_iym_2. . . γ2γιΥο],0彡dy < 2m,m为大于 1的整数;m个二选一选择器,来自第三插值模块第九输入端的所述m位输入Ynri,ym_2,..., I2, I1, Yo中的第j位输入提供给第j 二选一选择器的控制端,第三插值模块的第七输入端和第八输入端分别与每一二选一选择器的第一输入端和第二输入端连接,使得当所述控制端的输入1、为0时,第j 二选一选择器输出第一和信号,当所述控制端的输入Yj为1时,第 j 二选一选择器输出第二和信号,j = 0,1,. . .,m-1 ;第三加法模块,用于将m+1个输入求和得到第三和信号,所述m+1个输入之一为第一和信号且其它m个输入为第j 二选一选择器的输出从右侧补j位0后构成的数据;以及输出端,用于将所述第三和信号(p3)中舍去n+m位最低有效位得到所述第一值、 第二值、第三值和第四值之间的双线性插值并输出该双线性插值。优选地,所述η为2,3,4,5,6或7。优选地,所述m为2,3,4,5,6或7。优选地,该每一插值模块分别包括多个补位数据线,用于实现对二选一选择器的输出补0。优选地,所述第一加法模块和所述第二加法模块分别包括η个加法器,所述第三加法模块包括m个加法器。优选地,所述输出端进一步包括取整模块,该取整模块用于将所述第三和信号舍去n+m个最低有效位后构成的数据与所述第三和信号从右侧数第n+m位的值求和得到双线性插值。根据本发明的再一方面,提供一种视频编解码器,该视频编解码器包括如上所述的双线性插值模块。根据本发明的再一方面,提供一种基于选择器计算双线性插值的方法,该方法包括以下步骤将第一值分别输入第一 η个二选一选择器中的每一二选一选择器的第一输入端, 将第二值分别输入所述每一二选一选择器的第二输入端,
将η位二进制数dx [Xn_lXn_2. . . X2X1X0]中的第i位输入Xi分别输入所述第一 η个二选一选择器中的第i 二选一选择器的控制端,使得当该第i 二选一选择器的控制端输入Xi 为0时,第i 二选一选择器输出所述第一值,当第i 二选一选择器的控制端输入Xi为1时, 第i 二选一选择器输出所述第二值,0 ^ dx < 2η,η为大于1的整数,i = 0,1,. . .,η-1 ;将第一 η+1个输入求和得到第一和信号,所述η+1个输入之一为第一值且其它η 个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;将第三值分别输入第二 η个二选一选择器中的每一二选一选择器的第一输入端, 将第四值分别输入所述每一二选一选择器的第二输入端;所述将η位二进制数dx [Xn_lXn_2. . . X2X1X0]中第i位输入Xi分别输入所述第二 η个二选一选择器中的第i 二选一选择器的控制端,使得当该第i 二选一选择器的控制端输入 Xi为0时,第i 二选一选择器输出所述第三值,当该第i 二选一选择器的控制端输入Xi为1 时,第i 二选一选择器输出所述第四值,1=0,1,..., η-1;将第二 η+1个输入求和得到第二和信号,所述η+1个输入之一为第三值且其它η 个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;将第一和信号分别输入m个二选一选择器中的每一二选一选择器的第一输入端, 将第二和信号分别输入每一二选一选择器的第二输入端;将m位二进制数dy [ym_iym_2. . . γ2γιΥο]中的第j位输入y」分别输入m个二选一选择器中的第j 二选一选择器的控制端,使得当该第j 二选一选择器的控制端输入&为0时,第 j 二选一选择器输出所述第一和信号,当该第j 二选一选择器的控制端输入Yj为1时,第j 二选一选择器输出所述第二和信号,0 ^dy < 2m,m为大于1的整数,j = 0,1,. . .,m_l ;将m+1个输入求和得到第三和信号,所述m+1个输入之一为第一和信号且其他m 个输入为第j 二选一选择器的输出从右侧补j位0后构成的数据;以及将所述第三和信号舍去m+n个最低有效位后得到所述第一值、第二值、第三值和第四值之间的双线性插值;以及输出所述双线性插值。优选地,将所述第三和信号舍去m+n个最低有效位后构成的数据作为双线性插值的步骤进一步包括,将第三和信号舍去m+n个最低有效位后构成的数据与所述第三和信号中从右侧数第n+m位的值求和得到双线性插值。优选地,该双线性插值的方法用于视频编码,视频解码或视频编解码中。根据本发明的基于选择器实现线性插值的方法和实现双线性插值的方法,不使用乘法,而是按照表示水平或垂直偏移量的位权重累加的方法,不但消除了乘法,还减少了加法器的数量。根据本发明的基于选择器实现线性插值的装置和实现双线性插值的装置,不使用加法器,通过使用选择器,按照表示水平或垂直偏移量的位权重对已知值累加的方法,不但消除了乘法,还减少了加法器的数量。根据本发明的实现双线性插值的方法和装置,在提高运算速度的同时速度改善了硬件装置的性能,降低了资源消耗,改善了装置的工作速度。
图1是运动补偿的实现原理示意图。图2是本发明采用的双线性插值方法的示意图。图3是另一种双线性插值的方法示意图。图4是根据本发明实施例1的线性插值模块的实现结构图。图5是根据本发明实施例1的线性插值模块中的加法模块的一种实现结构图。图6是根据本发明实施例2用线性插值模块实现的双线性插值结构图。图7是根据本发明实施例2的双线性插值实施例结构图。
具体实施例方式下面结合附图及实施例对本发明作进一步说明。图3示出了一种视频编解码中实现双线性插值的方法。该方法通过双线性插值计算得到WXh的参考图像块的一个像素P的值。A、B、C、D是WXh参考图像块中4个相邻的像素值;dx、dy分别是水平法方向和垂直方向的位置参数,其中dx表示了 P对于A所在位置在水平方向的偏移量,dy表示了 P对于A所在位置在垂直方向的偏移量,上述两个参数在编码过程中由其他阶段的功能模块计算得到;Dx和Dy是两个固定不变的常数,值是2的指数次方(例如2、4、8、16等),分别表示了 A、B、C、D这4个像素在水平方向和垂直方向的距离。dx和dy的值满足关系0彡dx < Dx,0彡dy < Dy。Pl点是像素A点水平偏移dx的像素点,P2点是像素C点水平偏移dx的像素点。PI、P2和P点处于同一水平位置,P可以看作Pl垂直偏移dy的像素点。本发明提出计算P的方法按如下步骤进行第一步计算P1、P2的值Pl = ((Dx-dx) XA+dxXB) /Dx ;P2 = ((Dx-dx) X C+dx X D) /Dx ;第二步计算ρ的值ρ = ((Dy-dy) XPl+dy XP2)/Dy ;第三步计算P的值P = int (P+0. 5);为了实现上述计算像素Pl、P2、p的步骤,本发明的优选实施例提供了一种不使用乘法实现的方法和装置。图4示出根据本发明实施例1的线性插值模块的结构图。参见图3,以由A和B获得插值Pl为例对图4的线性插值模块的工作原理进行说明。图3中A、B是参考范围两个水平相邻的像素点的像素值,Pl是像素值A、B的像素连线上的一个亚像素的像素值,它是像素值A的像素在水平方向上偏移dx的亚像素。当Dx为2的η次幂,dx可以用η位2进制数表示,即dx = [Wn_2. · · X2X1X0],0彡dx < Dx,η为大于1的整数。根据本发明的线性插值模块包括η个选择器MUX,优选为二选一选择器,和加法模块。偏移量dx = [Xn_lXn_2. . . X2X1X0] 的每一位作为对应的一个二选一选择器的控制端的输入,如位^为MUX0的控制端的输入, 位X1 SMUX1的控制端的输入,……,位Xlri为MUXlri的控制端输入。数值A和B分别输入给每个选择器的输入端,以使对于每个选择器,如果控制端为1则选择值B作为输出,否则选择值A作为输出。对于加法模块的各个输入,输入如为值A直接输入,输入 为MUX0的输出,输入ει2、输入 、……、ειη分别为MUX1JUX2……MUXlri的输出左移1、2、……、n_l位后的值。通过将选择器输出从右侧补相应个数的0来实现所述输出的左移。例如通过选择器的输出和加法模块的输入之间增加数据线,可实现所述输出的左移。加法模块将输入%、 、 、 、……、ειη求和得到总和W。注意,在这里总和w的值为像素值Pl的Dx倍,没有被截位。将该总和w舍去η位,即将总和w从右侧截去η位得到像素值Ρ1,即为以距数据A的偏移量dx对间距为Dx的数据A和B进行线性插值得到的插值数据。线性插值模块中加法模块有多种实现方式,典型实现结构图如图5,采用级联方式实现,即每2个输入使用一个加法器得到一个输出,两个输出再使用一个加法器得到下一个输出,这样级联下去,最后得到总和ι这样要使用η个加法器实现加法模块。图6示出根据本发明实现双线性插值的方法的示意图。线性插值模块1的输入为 η位2进制数dx、数据A、数据B,产生输出信号pi ;线性插值模块2的输入为同一 η位2进制数dx、数据C、数据D,产生输出信号p2 ;线性插值模块3的输入为m位2进制数dy、信号 pi、信号p2,产生输出信号ρ。由于信号pi和p2没有截位,因此其数值分别为像素值P1、P2 的Dx = 2n倍。同样,因为信号ρ也没有截位,因此其数值为实际插值的DxXDy倍,Dy = 2m。 因为Dx为2的η次幂,Dy为2的m次幂,计算插值P的值时需要将ρ截去右边的n+m位得到pint。进一步,可以判断η+m-l位的值,如果为1,则取P = pint+Ι,否则取P = pint。下面参照图7以具体实例说明根据本发明实施例2的双线性插值装置和方法。实施例2的双线性插值模块包括插值模块1、插值模块2、插值模块3和输出端。插值模块1 以数据A和数据B作为输入,分别输入给η个二选一选择器每一个选择器的第一输入端和第二输入端,以η位二进制数dx的每一位分别作为η个二选一选择器中一个选择器的控制端输入;插值模块2以数据C和数据D作为输入,分别输入给η个二选一选择器每一个选择器的第一输入端和第二输入端,以η位二进制数dx的每一位分别作为η个二选一选择器中一个选择器的控制端输入;插值模块3以第一插值模块的输出和第二插值模块的输出作为输入,分别输入给m个二选一选择器每一个选择器的第一输入端和第二输入端,以m位二进制数dy的每一位分别作为m个二选一选择器中一个选择器的控制端输入。该双线性插值模块的输出端对插值模块3中的加法模块的和舍m+n个最低有效位得到数据A、B、C和D的双线性插值。本实例中,Dx= 8 = 23, Dy = 8 = 23,dx = 3, dy = 5。数据 A、B、C、D 的值例如为8位16进制无符号数,它们分别是A = 0x23, B = 0x17, C = 0x85, D = 0x97,其中Ox表示16进制数。图中数据线上的斜杠短线及右边的数值表示数据线的宽度,如/8表示数据线宽度为8位。图中dx = [X2X1X0]是以3位2进制数表示的dx。本例中dx = 3 = ObOll, 式中Ob表示2进制表示。由于 dx = [X2X1X0] = ObOll,因此得到 & = 0, X1 = 1, =1。所以对于图7中的插值模块LMUi^MUXpMUXc1分别选通数据A、B、B。所以对于第一插值模块1中的加法器,4个输入分别为a0 = A = 0x23 ;B1 = B = 0x17 ;a2 = B << 1 = = 0x17 << 1 = 0x2E ;a3 = A << 2 = 0x23 << 2 = 0x8C ;经力口禾口得至Ij pi = ao+a^a^ag = 0x23+0xl7+0x2E+0x8C = 0xF4 ;
所以对于图7中的线性插值模块2,MUi^MUXpMUXtl分别选通数据C、D、D。所以对于第二插值模块2中的加法器,4个输入分别为b0 = C = 0x85 ;bi = D = 0x97 ;b2 = D << 1 = = 0x97 << 1 = 0xl2E ;b3 = C << 2 = 0x85 << 2 = 0x214 ;经加和得到,p2= b0+b1+b2+b3 = 0x85+0x97+0xl2E+0x214 = 0x45E ;由于dy= [y2yiyo] = OblOl,因此得到 y2 = Ly1 = OjY0 = 1。所以对于图7线性插值模块3中,MTOpMUXpMUh分别选通p2、pl、p2。所以对于第三插值模块1中的加法器,4个输入分别为c0 = pi = 0xF4 ;C1 = p2 = 0x45E ;c2 = pi << 1 = = 0xF4 << 1 = 0xlE8 ;C3 = p2 << 2 = 0x45E << 2 = 0x1178 ;经加和得到ρ = c0+ci+c2+c3 = 0xF4+0x45E+0xlE8+0xl 178 = 0xl8B2 ;由于 ρ = [P13P12P11PltlP9P8P7P6P5P4P3P2P1P0] = 0xl8B2 = ObOllOOOlOllOOlO,因此对输出ρ从右侧截去3+3 = 6位后剩余位构成的数据P作为A、B、C和D的双线性插值,P= [P13P12P11PltlP9P8P7P6] =0b01100010。例如,为对输出P进行四舍五入的取整,可对上述数据P作进一步处理。输出P的第6位数据p5 = Obl,P = [P13P12P11P10P9P8P7P6]+p5 = ObOl 100010+0bl = 0x62+1 = 0x63。由此,本例中得到经取整的双线性插值,P = 0x63。本发明采用选择器和加法器实现了现有技术中以多个加法器和乘法器实现的插值运算,在提高运算速度的同时速度改善了硬件装置的性能,降低了资源消耗,改善了装置的工作速度。如上所述,根据本发明的双线性插值装置可用于视频编码装置中,可应用于视频解码装置中,可应用于视频编解码装置中。应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。本发明的保护范围仅由随附权利要求书限定。
权利要求
1.一种线性插值模块,其特征在于,该线性插值模块包括第一和第二输入端,用于分别输入第一值和第二值;第三输入端,用于输入η位二进制数dX([Xn_lXn_2. · · X2X1X0DjO彡dx < 2η,η为大于1 的整数;η个二选一选择器,来自插值模块第三输入端的所述η位输入Ulri,χη_2,...,x2,X1, X0)中的第i位输入Ui)提供给第i 二选一选择器的控制端,插值模块的第一输入端和第二输入端分别与每一二选一选择器的第一输入端和第二输入端连接,使得当其控制端的输入(Xi)为0时,第i 二选一选择器输出第一值,当其控制端的输入(Xi)为1时,第i 二选一选择器输出第二值,i = 0,1,. . .,n-1 加法模块,用于将n+1个输入( , B1,... , an_i;an)求和得到和信号(w),所述n+1个输入之一为第一值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;以及输出端,用于将所述加法模块的和信号(w)舍去η个最低有效位得到所述第一值和第二值之间的线性插值(Pl)并输出该线性插值。
2.如权利要求1所述的线性插值模块,其特征在于,所述η为2,3,4,5,6或7。
3.如权利要求1所述的线性插值模块,其特征在于,该线性插值模块进一步包括多个补位数据线,用于实现对各二选一选择器的输出补0。
4.如权利要求1所述的线性插值模块,其特征在于,所述加法模块包括级联的η个加法ο
5.如权利要求1所述的线性插值模块,其特征在于,所述输出端进一步包括取整模块, 该取整模块用于将所述加法模块的和信号(w)舍去η个最低有效位后构成的数据与所述加法模块的和信号(w)中从右侧数第η位的值求和得到所述线性插值(Pl)。
6.一种基于选择器计算线性插值的方法,其特征在于,该方法包括以下步骤将第一值分别输入η个二选一选择器中的每一二选一选择器的第一输入端,将第二值分别输入所述每一二选一选择器的第二输入端;将η位二进制数dX([Xn_lXn_2. · · X2X1X0])中的第i位输入(Xi)分别输入所述η个二选一选择器中第i 二选一选择器的控制端,使得当第i 二选一选择器的控制端输入(Xi)为0 时,第i 二选一选择器输出所述第一值,当其控制端输入(Xi)为1时,第i 二选一选择器输出所述第二值,0彡dx< 2n,n为大于1的整数,i = 0,1,...,η-1 ;将n+1个输入(aQ,ai; ... , ^v1,an)求和得到和信号(w),所述n+1个输入之一为第一值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;将所述和信号(w)舍去η个最低有效位得到所述第一值和第二值之间的线性插值 (Pl);以及输出所述线性插值(Pl)。
7.如权利要求6所述的基于选择器计算线性插值的方法,其特征在于,将所述和信号(w)舍去η个最低有效位得到所述第一值和第二值之间的线性插值(Pl) 的步骤进一步包括,将所述和信号(w)舍去η个最低有效位后构成的数据与所述加法模块的和信号(w)中从右侧数第η位的值求和得到所述线性插值(Pl)。
8.—种双线性插值模块,其特征在于,该双线性插值模块包括第一插值模块、第二插值模块和第三插值模块以及输出端,第一插值模块,包括第一和第二输入端,用于分别输入第一值和第二值;第三输入端,用于输入η位2进制数dX([Xn_lXn_2. · · X2X1X0DjO彡dx < 2η,η为大于1 的整数;第一 η个二选一选择器,来自第一插值模块第三输入端的所述η位输入(Xlri,xn_2,..., x2,X1,X0)中的第i位输入Ui)提供给第i 二选一选择器的控制端,第一插值模块的第一输入端和第二输入端分别与每一二选一选择器的第一输入端和第二输入端连接,使得当所述控制端的输入(Xi)为0时,第i 二选一选择器输出第一值,当所述控制端的输入(Xi)为1 时,第i 二选一选择器输出第二值,i = 0,1, ... ,n-1 ;第一加法模块,用于将n+1个输入( , ai; ... , Bn^1, an)求和得到第一和信号(pi),所述n+1个输入之一为第一值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位 0后构成的信号;第二插值模块,包括第四和第五输入端,用于分别输入第三值和第四值; 第六输入端,用于输入所述η位2进制数dX([Xn_lXn_2. · · X2X1X0]); 第二 η个二选一选择器,来自第二插值模块第六输入端的所述输入Ulri,xn_2,...,x2, X1, X0)中的第i位输入Ui)提供给第i 二选一选择器的控制端,第二插值模块的第四输入端和第五输入端分别与每一二选一选择器的第一输入端和第二输入端连接,使得当所述控制端的输入(Xi)为0时,第i 二选一选择器输出第三值,当所述控制端的输入(Xi)为1时, 第i 二选一选择器输出第四值,1=0,1,..., n-1;第二加法模块,用于将n+1个输入Ov bi; ... , Iv1,bn)求和得到第二和信号(p2),所述n+1个输入之一为第三值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位 0后构成的信号;第三插值模块,包括第七和第八输入端,用于分别输入第一和信号(Pl)和第二和信号(P2); 第九输入端,用于输入m位二进制数dy ([ym_iym_2. · · Y2Y1Y0] ),0彡dy < 2m,m为大于1 的整数;m个二选一选择器,来自第三插值模块第九输入端的所述m位输入Gnrl,ym_2,. . .,y2, Y1, y0)中的第j位输入提供给第j 二选一选择器的控制端,第三插值模块的第七输入端和第八输入端分别与每一二选一选择器的第一输入端和第二输入端连接,使得当所述控制端的输入(yP为0时,第j 二选一选择器输出第一和信号(pi),当所述控制端的输入(yj) 为1时,第j 二选一选择器输出第二和信号(P2),j = 0,1,...,m-1 ;第三加法模块,用于将m+1个输入(C(l,C1,..., Cffl^1, cffl)求和得到第三和信号(p3),所述m+1个输入之一为第一和信号(pi)且其它m个输入为第j 二选一选择器的输出从右侧补j位0后构成的数据;以及输出端,用于将所述第三和信号(P; )中舍去n+m位最低有效位得到所述第一值、第二值、第三值和第四值之间的双线性插值(P)并输出该双线性插值。
9.如权利要求8所述的双线性插值模块,其特征在于,所述η为2,3,4,5,6或7。
10.如权利要求8所述的双线性插值模块,其特征在于,所述m为2,3,4,5,6或7。
11.如权利要求8所述的双线性插值模块,其特征在于,该每一插值模块分别包括多个补位数据线,用于实现对各二选一选择器的输出补0。
12.如权利要求8所述的双线性插值模块,其特征在于,所述第一加法模块和所述第二加法模块分别包括η个级联的加法器,所述第三加法模块包括m个级联的加法器。
13.如权利要求8所述的双线性插值模块,其特征在于,所述输出端进一步包括取整模块,该取整模块用于将所述第三和信号(P; )舍去n+m个最低有效位后构成的数据与所述第三和信号(P; )从右侧数第n+m位的值求和得到双线性插值(P)。
14.一种视频编解码器,包括如权利要求8所述的双线性插值模块。
15.一种基于选择器计算双线性插值的方法,其特征在于,该方法包括以下步骤将第一值分别输入第一 η个二选一选择器中的每一二选一选择器的第一输入端,将第二值分别输入所述每一二选一选择器的第二输入端,将η位二进制数dX([Xn_lXn_2. · · X2X1X0])中的第i位输入(Xi)分别输入所述第一 η个二选一选择器中的第i 二选一选择器的控制端,使得当该第i 二选一选择器的控制端输入 (Xi)为0时,第i 二选一选择器输出所述第一值,当第i 二选一选择器的控制端输入(Xi)为 1时,第i 二选一选择器输出所述第二值,0彡dx < 2η, η为大于1的整数,i = 0,1,..., n-1 ;将第一 n+1个输入( ,ai; ... , an_i; an)求和得到第一和信号(pi),所述n+1个输入之一为第一值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;将第三值分别输入第二 η个二选一选择器中的每一二选一选择器的第一输入端,将第四值分别输入所述每一二选一选择器的第二输入端;所述将η位二进制数dx ([Xn_lXn_2. . . X2X1X0])中第i位输入(Xi)分别输入所述第二 η个二选一选择器中的第i 二选一选择器的控制端,使得当该第i 二选一选择器的控制端输入 (Xi)为0时,第i 二选一选择器输出所述第三值,当该第i 二选一选择器的控制端输入(Xi) 为1时,第i 二选一选择器输出所述第四值,1=0,1,..., n-1;将第二 n+1个输入Ov bi; ... , Iv1,bn)求和得到第二和信号(p2),所述n+1个输入之一为第三值且其它η个输入分别为第i 二选一选择器的输出从右侧补i位0后构成的信号;将第一和信号(Pl)分别输入m个二选一选择器中的每一二选一选择器的第一输入端, 将第二和信号(P》分别输入每一二选一选择器的第二输入端;将m位二进制数(^([Υω_ιΥω_2...Υ2ΥιΥ。])中的第j位输入(y」)分别输入m个二选一选择器中的第j 二选一选择器的控制端,使得当该第j 二选一选择器的控制端输入为0 时,第j 二选一选择器输出所述第一和信号(Pl),当该第j 二选一选择器的控制端输入(y」) 为1时,第j 二选一选择器输出所述第二和信号(p2),0 < dy < 2m,m为大于1的整数,j = 0,1,…,m-1 ;将m+1个输入(C(l,Cl,...,Cn^Cm)求和得到第三和信号(p3),所述m+1个输入之一为第一和信号(Pl)且其他m个输入为第j 二选一选择器的输出从右侧补j位0后构成的数据;以及将所述第三和信号(P; )舍去m+n个最低有效位得到所述第一值、第二值、第三值和第四值之间的双线性插值(P);以及输出所述双线性插值(P)。
16.如权利要求15所述的基于选择器计算双线性插值的方法,其特征在于,将所述第三和信号(P3)舍去m+n个最低有效位后构成的数据作为双线性插值(P)的步骤进一步包括,将第三和信号(P; )舍去m+n个最低有效位后构成的数据与所述第三和信号(P3)中从右侧数第n+m位的值求和得到双线性插值(P)。
17.如权利要求15所述的基于选择器计算双线性插值的方法,其特征在于,该双线性插值的方法用于视频编码,视频解码或视频编解码中。
全文摘要
本发明提供一种基于选择器的双线性插值方法和装置。本发明的双线性插值装置包括第一、第二和第三插值模块。每一插值模块包括多个二选一选择器,第i选择器的控制端输入多位二进制数dx[xn-1xn-2...x2x1x0]中的第i位;当所述控制端的输入为0时,第i二选一选择器输出第一输入,当所述控制端的输入为1时,第i二选一选择器输出第二输入;和加法模块,用于所述第一输入和n个选择器的输出求和。所述第三插值模块以第一和第二插值模块的输出作为输入。根据本发明的实现双线性插值的方法和装置,在提高运算速度的同时速度改善了硬件装置的性能,降低了资源消耗,改善了装置的工作速度。
文档编号H04N7/26GK102497549SQ20111039662
公开日2012年6月13日 申请日期2011年12月2日 优先权日2011年12月2日
发明者于天歌, 呼大明, 徐昕, 王万亭, 邵冬英, 郑海鸥 申请人:北京瀚景锦河科技有限公司