专利名称:运动向量补偿的内插装置和方法
技术领域:
本发明涉及运动向量的补偿,尤其涉及一种用于改善运动向量补偿精确性的内插方法和装置。
背景技术:
依照诸如MPEG-1、MPEG-2、MPEG-4以及H.264等视频编码标准,使用P-picture编码方法或者B-picture编码方法来对目标画面进行编码,并在编码结果基础上执行运动向量补偿。也就是,通过参照P-picture编码方法中的先前画面以及通过参照P-picture编码方法中的先前画面和未来画面两者,来对目标画面进行编码。特别是,MPEG-4和H.264标准规定以宏块为单位或者以宏块的细分块为单位来执行运动向量补偿。同样,通过在由整数像素组成的块上执行内插以获得二分之一像素、四分之一像素或八分之一像素从而提高了数据精度之后,再现了运动向量补偿。
图1是解释内插过程的图。现参照图1,阴影框1至4表示原始像素,即整数像素,而空白框5至9表示内插像素。该空白框5至8,也就是内插像素5至8,表示二分之一像素,而另一个空白框9表示四分之一像素。二分之一像素可以基于在垂直或水平方向上相邻的整数像素或相邻的二分之一像素来获得。例如,二分之一像素5和8可以分别通过整数像素1和2以及整数像素3和4来获得。同样,二分之一像素6和7可以分别通过整数像素1和3以及整数像素2和4来获得。四分之一像素9既可以通过二分之一像素5和8来获得,也可以通过二分之一像素6和7来获得。在此为方便起见,将整数像素的数目设定为4,但是在内插中使用的像素数目不作限定。例如,二分之一像素5可以从水平方向上邻近于像素1和2的其他整数像素上获得,也可以从整数像素1和2上获得。用与相关原始像素的整数相同范围内的整数来表示内插像素。如果用0和255之间的整数来表示原始像素,那么就同样可以用0和255之间的整数来表示内插像素。
通常来讲,由内插而增加的特定像素块的像素数目越多,运动向量补偿的精确度就越高。然而,这也并非总是对的。由于内插算法使用四舍五入、上舍入或下舍入来获得具有整数值的内插像素,因而用内插算法获得的像素值很有可能包含误差。
因此,需要对内插算法进行设计,以便尽可能地消除误差累积。为此目标,可以通过使用四舍五入、上舍入或下舍入中的任意一种,或者使用上述算法在不同时期的若干结合来计算内插像素,以便消除误差。
此外,内插算法必需具有前后一致性。如果内插像素值根据算法所应用的程序的类型或者根据处理该算法的顺序而变化,则运动向量补偿就需要针对这些不同的数值类型来不同地执行。在这种情况下,可能会增加编码器与解码器之间的失配。失配的增加可能会导致图像质量下降。图5举例说明了用于根据H.264标准(Draft ITU-T Rec.H.264(2002 E))获得四分之一像素9的算法的例子。
发明内容
本发明提供了一种使用内插算法的内插方法和装置,该内插算法一致性地实现了运动向量补偿。
本发明还提供了一种使用内插算法的内插方法和装置,该内插算法增加了运动向量补偿效率。
依照本发明的一方面,提供了一种内插方法,包括(a)通过分别向二分之一像素提供预定权值并将已加权的二分之一像素相加,来计算在水平方向上与预定四分之一像素相邻或相近的多个二分之一像素的值的水平和;(b)通过分别向二分之一像素提供预定权值并将已加权的二分之一像素相加,来计算在垂直方向上与该四分之一像素相邻或相近的多个二分之一像素的值的垂直和;以及(c)使用垂直和与水平和来计算四分之一像素值的整数值。
在此,在(a)和(b)期间,当计算每个垂直和与水平和时所用的二分之一像素的总数是偶数。所给定的权值的和最好为“2n”。
依照本发明的另一方面所提供的内插方法包括通过分别向二分之一像素提供预定权值并将结果相加,来计算在水平方向上与预定四分之一像素相邻的多个二分之一像素的值的水平和;通过使用水平和计算二分之一像素的平均值来计算二分之一像素的水平平均值,并将它们的平均值化为整数;通过分别向二分之一像素提供预定权值并将结果相加,来计算在垂直方向上与该四分之一像素相邻的多个二分之一像素的值的垂直和;通过使用垂直和计算二分之一像素的平均值来计算二分之一像素的垂直平均值,并将它们的平均值化为整数;以及通过计算水平平均值与垂直平均值的平均值并将它们的平均值化为整数,来计算四分之一像素的值。
仍依照本发明的另一方面,提供了一种运动补偿装置,包括内插单元,该单元通过向在水平方向上与预定四分之一像素相邻的多个二分之一像素提供权值并将结果相加来计算水平和,通过向在垂直方向上与该四分之一像素相邻的多个二分之一像素提供权值并将结果相加来计算垂直和,以及使用垂直和与水平和来计算四分之一像素的整数值;和运动补偿器,该运动补偿器在由内插单元进行内插的像素块上执行运动向量补偿。
依照本发明的又一方面,提供了一种运动补偿装置,包括内插单元,该内插单元通过向二分之一像素提供权值并将结果相加,来计算在水平方向上与预定四分之一像素相邻的多个二分之一像素的水平和,使用该水平和计算二分之一像素的水平平均值并将该水平平均值化为整数,通过向二分之一像素提供权值并将结果相加,来计算在垂直方向上与该四分之一像素相邻的多个二分之一像素的垂直和,使用该垂直和计算二分之一像素的垂直平均值并将垂直平均值化为整数,计算水平平均值与垂直平均值的平均值并将它们的平均值化为整数,以及将该整数确定为四分之一像素的值;和运动补偿器,该运动补偿器在由内插单元进行内插的像素块上执行运动向量补偿。
通过参照附图来详细描述本发明的优选实施例,将使本发明上述方面和其它方面、以及有益效果变得更加明显。
图1是解释内插过程的图;图2是包括依照本发明优选实施例的运动补偿器的编码器的结构图;图3是向图2中编码器输入图像数据的例子;
图4是包括依照本发明优选实施例的运动补偿器的解码器的结构图;图5是示出多种参照方法的图;图6是示出作为运动向量补偿的测量单位的运动向量补偿块的图;图7是示出由依照本发明优选实施例的内插单元执行的内插的图;和图8是示出由依照本发明另一实施例的内插单元执行的内插的图;具体实施方式
图2是包括依照本发明优选实施例的运动补偿器的编码器的结构图。现参照图2,该编码器适用于多种参照方法来对图像数据进行编码,并且包括编码控制器100、转换编码器200、转换解码器300、存储器400、运动补偿器500、运动估算器600以及熵编码器700。多种参照方法随后将会说明。
输入数据由从照相机中输入的帧组成,或者由具有预定大小的帧的细分块组成。帧可以是使用顺序扫描方法获得的顺序扫描帧,也可以是使用隔行扫描方法获得的半帧或者隔行扫描帧。在本篇公开内容中,图像数据相当于由顺序扫描帧、隔行扫描帧、半帧以及块组成的画面。
当将图像数据输入到编码控制器100时,编码控制器100基于所输入图像数据的特征或者用户渴望的预定操作对象,来检查该图像数据的编码类型(例如,内部编码或中间编码),从而确定是否会在图像数据上执运动向量补偿行。接着,编码控制器100将与检查结果相对应的控制信号输出到第一开关S1。为了执行运动向量补偿,将第一开关S1打开来获得先前或未来的图像数据。然而,如果确定将不执行运动向量补偿,则由于不需要先前或未来的图像数据而将第一开关S1关闭。当第一开关打开时,将输入图像数据与先前或未来图像数据之间的差别数据,连同输入图像数据一起输入到转换编码器200。否则,仅有输入图像数据输入到转换编码器200。
转换编码器200在输入图像数据上执行转换编码,来获得转换系数,并且依照预定量化步骤来量化转换系数,从而获得由已量化的转换系数组成的2维(2D)数据N×M。在此,可以使用离散余弦变换(DCT)并且依照预定量化步骤来实现量化。
其间,输入到转换编码器并由转换编码器200编码的图像数据,可以用作关于先前或未来输入图像数据的运动向量补偿的参照数据。由此,转换解码器300执行反向量化和反向转换编码,这是由转换编码器200在图像数据上为获得转换系数而执行的量化和转换编码的逆运算。将所获得的系数存储在存储器400中。如果从转换解码器300输出的数据是不同的图像数据,则编码控制器100打开第二开关S2,以便于将不同的图像数据与运动补偿器500的输出相加在一起,并且将相加结果存储在存储器400中。
运动估算器600将输入图像数据与存储于存储器400中的数据进行比较,以便检测出与该输入数据最为相似的数据,将所检测数据与输入数据进行比较,并基于比较结果输出运动向量(MV)。在此,MV是通过参照至少一个画面来获得的。作为选择,MV还可以通过参照多个先前和/或未来画面来获得。当将MV发送到存储器400时,存储器400将与该MV相对应的数据输出到运动补偿器500,并且运动补偿器500基于与将要编码的图像数据相关的输入数据,来产生并输出运动向量补偿值。
熵编码器700接收从转换编码器200输出的已量化的转换系数、接收从运动估算器600输出的与MV相关的数据,并且接收从编码控制器100输出的关于编码类型、量化步骤和解码的信息。对所接收的转换系数和信息进行编码并继而作为比特流输出。
依照本发明优选实施例的运动补偿器500,对关于图像数据的运动向量误差进行补偿,并且该运动补偿器包括内插单元5。该内插单元5在图像数据上执行内插,当由运动补偿器500产生运动向量补偿值时需要执行上述内插操作,以便于提高图像数据的分辨率。由内插单元5执行的内插(或内插算法)将在后面进行描述。
图4是包括依照本发明优选实施例的运动补偿器的解码器的结构图。现参照图4,该解码器是用于对由图2中编码器编码的比特流进行解码的装置。该解码器包括分离比特流的信号分离器110、编码类型信息分析器120、依照本发明分析MV的运动向量(MV)分析器130、转换解码器210、存储器410、运动补偿器510以及熵解码器710。
信号分离器110分离比特流,从而成为转换系数以及诸如关于MV和编码类型的信息,其中上述转换系数和信息被熵编码和量化。熵解码器710对熵编码转换系数进行熵解码,并将其结果作为已量化的转换系数输出。转换解码器210在量化后的转换系数上执行转换解码,也就是由图3中转换编码器执行的转换过程的逆运算。例如,如果转换编码器200执行DCT,则转换解码器210通过在已量化的转换系数上执行反DCT(IDCT)来重建原始图像数据。将重建的图像数据存储在存储器400中以用于运动向量补偿。
编码类型信息分析器120确定图像数据的编码类型,并且当编码类型为需要运动向量补偿的中间类型时,就打开第三开关S30。在这种情况下,将从转换解码器210输出的数据与从运动补偿器510输出的运动向量补偿值相加。上述两者的和就是重建的图像数据。MV分析器130基于有关MV的信息确定由MV表示的位置,并且运动补偿器510使用由MV表示的参照图像数据来产生并输出的运动向量补偿值。
依照本发明优选实施例的运动补偿器510为图像数据的运动进行补偿,并且该运动补偿器包括内插单元5。该内插单元5在图像数据上执行内插,当由运动补偿器510产生运动向量补偿值时需要执行上述内插操作,以便于提高图像数据的分辨率。由内插单元5执行的内插(或内插算法)将在后面进行描述。
图5是举例说明多种参照方法的图。现参照图5,画面I0表示在未参照其它画面的情况下获得的内部画面。画面B2至B7表示双向预测画面,这些画面是通过参照两个或多个不同画面来获得的,而画面P8表示仅参照画面I0来获得的预测画面。在图5中,箭头表明在解码中使用的画面之间的关系。例如,画面B2从属于画面I0和P4,而画面B3从属于画面I0,P4,B1和B2。为此,虽然按照I0,B1,B2,B3和P4的顺序来显示画面,但是画面是按照I0,P4,B1,B2和B3的顺序来传输的。当使用图2的编码器来对图像数据进行编码时,通过参照多个画面来产生画面BX。换言之,在图2的编码器以及图4的解码器中,使用双向预测方法和/或向前预测方法、向后预测方法、以及直接预测方法中的至少一种来产生MV。在双向预测方法中,两个参照画面可以是两个先前的画面、两个未来的画面或者一个先前画面和一个未来画面。
图6举例说明作为运动向量补偿的测量单位的运动向量补偿块的图。现参照图6,一个画面由多个运动向量补偿块组成。该运动向量补偿块有几种类型,包括16×16宏块(MBs)、在水平方向上为16×16MBs的一半的16×8MBs、在垂直方向上为16×16MBs的一半的8×16MBs、在水平方向或垂直方向上为8×16或16×8MBs的一半的8×8MBs、在水平方向或垂直方向上为8×8MBs的一半的8×4MBs或4×8MBs、以及在垂直或水平方向上为8×4或4×8MBs的一半的4×4MBs。
图7是举例说明由依照本发明优选实施例的内插单元执行的内插的图。特别是,图7示出了包括运动向量补偿块的像素。阴影框表示整数像素而空白框表示内插像素。该内插单元使用以下方法之一来测量四分之一像素100的值,这些方法包括方法11-(a)首先,通过分别向所述值提供预定权值并继而将结果相加,来计算在水平方向上与四分之一像素100相邻的多个二分之一像素的值的水平和Sum_h_100。在此,当计算四分之一像素100的值时所使用的多个二分之一像素的范围不作限制,但是二分之一像素的总数必需是偶数。例如,如果二分之一像素的数目是2,则选择二分之一像素11和12,如果二分之一像素的数目是4,则除了二分之一像素11和12之外,还选择二分之一像素13至14,如果二分之一像素的数目是6则另外选择二分之一像素11至16。该权值可以按下述方式来确定(i)提供给靠近四分之一像素100的二分之一像素的权值的绝对值,大于提供给远离四分之一像素100的二分之一像素的权值的绝对值,和(ii)与四分之一像素100距离相同的二分之一像素的绝对值是相同的。提供的所有权值的总和是“2n”。
例如,当使用6个二分之一像素并且提供给上述二分之一像素的权值为a,b,c,d,e和f时,由[(a*二分之一像素15)+(b*二分之一像素13)+(c*二分之一像素11)+(d*二分之一像素12)+(e*二分之一像素14)+(f*二分之一像素16)]来计算水平和Sum_h_100。在此,a+b+c+d+e+f=2n。
1-(b)通过分别向所述值提供预定权值并随后将结果相加,来计算在垂直方向上与四分之一像素100相邻的多个二分之一像素的值的垂直和Sum_v_100。正如计算水平和Sum_h_100时一样,对二分之一像素的范围也不作限制,但是用来计算水平和Sum_h_100的二分之一像素的数目最好等于用来计算垂直和Sum_v_100的二分之一像素的数目。此外,最好与计算水平和Sum_h_100时一样来确定权值。
例如,当选择6个二分之一像素并且提供给上述二分之一像素的权值为a,b,c,d,e和f时,由[(a*二分之一像素25)+(b*二分之一像素23)+(c*二分之一像素21)+(d*二分之一像素22)+(e*二分之一像素24)+(f*二分之一像素26)]来计算垂直和Sum_v_100。
1-(c)其值为整数值的四分之一像素100,它是使用水平和Sum_h_100和垂直和Sum_v_100来计算的。详细来说,四分之一像素100的值是通过将水平和Sum_h_100与垂直和Sum_v_100相加并计算它们的平均值M_hv来获得的,按下式来计算它们的平均值M_hv=(Sum_h_100+Sum_v_100)/[2*(a+b+c+d+e+f)] (1)接下来,通过上舍入、下舍入或者四舍五入将平均值M_hv化为整数。在这种情况下,四舍五入使误差随机化和最小化。该整数就是四分之一像素100的值。如果该整数没能落在与原始像素相同的范围内,那么使用适当的映射算法将该整数映射成具有相同范围的整数。例如,当原始像素以从0到255之间范围的整数来表示时,所获得的四分之一像素的值必须是在相同范围内的整数。
方法22-(a)首先,通过分别为多个二分之一像素提供预定权值并继而将结果相加,来计算在水平方向上与四分之一像素100相邻的多个二分之一像素的值的水平和Sum_h_100。对二分之一像素的范围不作限制。例如,当二分之一像素的数目是2时,选择二分之一像素11和12。当二分之一像素的数目是4时,除了二分之一像素11和12之外,还选择二分之一像素13至14。如果二分之一像素的数目是6,则另外选择二分之一像素11至16。该权值可以按下述方式来确定(i)提供给靠近四分之一像素100的二分之一像素的权值的绝对值,大于提供给远离四分之一像素100的二分之一像素的权值的绝对值,和(ii)与四分之一像素100距离相同的二分之一像素的绝对值是相同的。
例如,当选择6个二分之一像素并且提供给上述二分之一像素的权值为a,b,c,d,e和f时,由[(a*二分之一像素15)+(b*二分之一像素13)+(c*二分之一像素11)+(d*二分之一像素12)+(e*二分之一像素14)+(f*二分之一像素16)]来计算水平和Sum_h_100。
2-(b)通过计算水平和Sum_h_100的平均值M_h并且将该平均值化为整数,来获得二分之一像素的水平平均值integer_M_h。
更具体而言,考虑到提供给多个二分之一像素的权值,水平和Sum_h_100的平均值M_h按如下来计算M_h=(Sum_h_100)/(a+b+c+d+e+f) (2)接下来,通过上舍入、下舍入或四舍五入将平均值M_h化为整数。四舍五入使误差随机化和最小化。该整数就是水平平均值integer_M_h。
2-(c)通过向所述值提供预定权值并继而将结果相加,来计算在垂直方向上与四分之一像素100相邻的多个二分之一像素的值的垂直和Sum_v_100。正如计算水平和Sum_h_100时一样,对二分之一像素的范围不作限制,但是与水平和Sum_h_100相关的二分之一像素的数目最好等于与垂直和Sum_v_100相关的二分之一像素的数目。此外,最好与计算水平和Sum_h_100时一样来确定权值。
例如,当选择6个二分之一像素并且提供给上述二分之一像素的权值为a,b,c,d,e和f时,由[(a*二分之一像素25)+(b*二分之一像素23)+(c*二分之一像素21)+(d*二分之一像素22)+(e*二分之一像素24)+(f*二分之一像素26)]来计算垂直和Sum_v_100。
2-(d)通过计算垂直和Sum_v_100的平均值M_v并且将该平均值M_v化为整数,来获得二分之一像素的垂直平均值integer_M_v。
更具体而言,考虑到提供给多个二分之一像素的权值,平均值M_v按如下来计算M_v=(Sum_v_100)/(a+b+c+d+e+f) ...... (3)接下来,通过上舍入、下舍入或四舍五入来将平均值M_v化为整数。四舍五入使误差随机化和最小化。该整数就是垂直平均值integer_M_v。
2-(e)四分之一像素100的值是通过计算水平和Sum_h_100和垂直和Sum_v_100的平均值并且将该平均值化为整数来计算的,所使用的方程如下四分之一像素100=integer[(integer_M_h+integer_M_v)/2](4)其中,integer[]表示基于由附在括号[]中的公式计算的值来生成整数的操作。在这种情况下,可以使用上舍入、下舍入、四舍五入。四舍五入使误差随机化和最小化。
作为选择,即使按照2-(c),2-(d),2-(a),2-(b),2-(e)的顺序来执行方法2,也能够获得相同的结果。
此外,其它内插像素值,即八分之一像素或十六分之一像素,可以通过上述计算四分之一像素100的方法来计算。
图8是举例说明由依照本发明的另一实施例的内插单元执行的内插的图。具体而言,图8示出了构成预定运动向量补偿块或其部分的像素。在此,阴影框和空白框分别表示整数像素和内插像素。在依照该实施例的内插过程中,使用了多个像素,即6个像素来计算内插像素的值。同样,分别给上述像素提供权值。当给上述像素提供权值时,采用了具有6个分支值的6分支过滤器。分支值是提供给为内插而选出的像素的权值。在该实施例中,将分支值确定为(1,-5,20,20,-5,1)。像素的数目以及权值,即分支值是没有限制的。
二分之一像素b使用在水平方向上与二分之一像素b相邻的6个整数像素E,F,G,H,I和J,来计算二分之一像素b的值。当将整数像素E,F,G,H,I和J输入到上述6分支过滤器中时,从6分支(6-tap)过滤器输出其水平和Sum_h_b。水平和Sum_h_b由以下方程来计算Sum_h_b=(E-5F+20G+20H-5I+J)... (5)接下来,通过给水平和Sum_h_b加上16,将相加的结果除以32,再将除得的结果化为整数并调节该整数的范围,来计算二分之一像素b的值,正如下面方程所示b=Clip1[(Sum_h_b+16)>>5] (6)其中将水平和Sum_h_b加上16,以使得将水平和Sum_h_b四舍五入化为整数。>>5表示将所获得的整数除以32(=25)并且在除得的结果中省略了小数点后面的位的操作。该省略操作的原因是6分支过滤器的分支值的和是32,且平均像素值需要被32除。Clip1()表示映射由公式Sum_h_b+16获得的整数落在原始像素即整数像素范围内的操作。例如,如果整数像素落在0到255之间范围内,那么当该平均值没有落在相同范围内时,Clip1()将所获得的平均值映射到相同范围内的预定值上。
二分之一像素h二分之一像素h的值是使用在垂直方向上与二分之一像素h相邻的6个整数像素A,C,G,M,R和T来计算的。当将整数像素A,C,G,M,R和T输入到上述6分支过滤器中时,从6分支过滤器输出其垂直和Sum_v_h。垂直和Sum_v_h由以下方程来计算Sum_v_h=(A-5C+20G+20M-5R+T)... (7)接下来,通过给垂直和Sum_v_h加上16,将相加的结果除以32,再将除得的结果化为整数并调节该整数的范围,来计算二分之一像素h的值,正如下面方程所示h=Clip1[(Sum_v_h+16)>>5]… (8)
其中将垂直和Sum_v_h加上16,以使得将垂直和Sum_v_h四舍五入化为整数。>>5表示将所获得的整数除以32(=25)并且在除得的结果中省略了小数点后面的位的操作。省略小数点后面的位的原因是因为6分支过滤器的分支值的和是32,也就是说将32个像素值相加,且平均像素值需要被32除。Clip1()表示映射由公式Sum_v_h+16获得的整数落在原始像素即整数像素范围内的操作。例如,如果整数像素落在0到255之间范围内,那么当该平均值没有落在相同范围内时,Clip1()将所获得的平均值映射到相同范围内的预定值上。
二分之一像素s二分之一像素s的值也可以使用计算二分之一像素b的值的方法并按下面所示的方程来计算Sum_h_s=(K-5L+20M+20N-5P+Q)s=Clip1[(Sum_h_s+16)>>5] (9)二分之一像素m二分之一像素m的值也可以使用计算二分之一像素h的值的方法并按下面所示的方程来计算Sum_v_m=(B-5D+20H+20N-5S+U)m=Clip1[(Sum_v_m+16)>>5] (10)四分之一像素j四分之一像素j的值使用下面的方法之一,和在水平方向上与四分之一像素相邻的6个二分之一像素cc,dd,h,m,ee和ff,以及在垂直方向上与四分之一像素相邻的6个二分之一像素aa,bb,b,s,gg和hh来计算。也就是说总共使用12个二分之一像素。
方法3首先,将6个二分之一像素cc,dd,h,m,ee和ff的值输入到上述6分支过滤器中,从该6分支过滤器中输出其水平和Sum_h_j,如在下面方程中所示出的Sum_h_j=(cc-5dd+20h+20m-5ee+ff)... (11)接下来,将6个二分之一像素aa,bb,b,s,gg和hh的值输入到该6分支过滤器中,从该6分支过滤器中输出其垂直和Sum_v_j,如在下面方程中所示出的
Sum_v_j=(aa-5bb+20b+20s-5gg+hh) (12)下一步,使用下面的方程,通过计算水平和Sum_h_j和垂直和Sum_v_j的平均值并将该平均值化为整数,以及调节该整数的范围,来获得四分之一像素j的值,该方程为j=Clip1[(Sum_h_j+Sum_v_j+32)>>6]... (13)其中(Sum_h_j+Sum_v_j+32)>>6是通过将Sum_h_j+Sum_v_j加上32来使得Sum_h_j+Sum_v_j化为整数、将相加的结果除以64并删除该除得结果的小数点后面的位的操作。在此,将Sum_h_j+Sum_v_j加上32以使得将Sum_h_j+Sum_v_j四舍五入为整数。Clip1()是将使用(Sum_h_j+Sum_v_j+32)>>6获得的整数映射到原始像素值的范围内的值。例如,如果原始像素值在0到255之间范围内降低,那么当该整数在相同范围内没有降低时,Clip1()将所获得的整数映射到该相同范围内的预定值上。
方法4首先,将在水平方向上与四分之一像素j相邻的6个二分之一像素cc,dd,h,m,ee和ff的值输入到上述6分支过滤器中,以获得其水平和Sum_h_j。接下来,通过计算水平和Sum_h_j的平均值并将该平均值化为整数,来获得二分之一像素的水平平均值M_h_j,如以下方程所示Sum_h_j=(cc-5dd+20h+20m-5ee+ff)M_h_j=Clip1[(Sum_h_j+16)>>5]... (14)接下来,将在垂直方向上与四分之一像素j相邻的6个二分之一像素aa,bb,b,s,gg和hh的值输入到上述6分支过滤器中,以便获得其垂直和Sum_v_j。下一步,通过计算垂直和Sum_v_j的平均值并将该平均值化为整数,来获得二分之一像素的垂直平均值M_v_j,如以下方程所示Sum_v_j=(aa-5bb+20b+20s-5g+hh)M_v_j=Clip1[(Sum_v_j+16)>>5]... (15)其次,使用下面的方程,通过计算水平平均值M_h_j和垂直平均值M_v_j的平均值并将该平均值化为整数,来获得四分之一像素j的值,该方程为j=Clip1[(M_h_j+M_v_j+1)>>1]... (16)其它四分之一像素、八分之一像素、或者十六分之一像素的值可以使用计算四分之一像素j的方法来计算。
如上所述,依照本发明的内插方法和装置使用了在运动向量补偿中具有一致性的内插算法,由此提高了运动向量补偿的效率。
上述内插算法可以具体化为能够由计算机或处理器执行的计算机程序。构成该计算机程序的代码以及代码段可以由本领域普通技术人员来轻易地生成。当该程序由计算机读取并执行时,实现内插。该程序可以存储在包括软件、固件、硬件的计算机可读介质,以及适用本发明的其他媒体,所述其他媒体包括磁记录媒体、光记录媒体或载波媒体,或者是它们的结合,但是并不仅限于此。
虽然参照本发明的优选实施例已对本发明进行了特定的说明,但是本领域技术人员将会在不脱离由所附权利要求限定的本发明的实质和范围的情况下,从中作出形式和细节上的各种变化。
权利要求
1.一种内插方法,包括通过向第一组多个二分之一像素中的二分之一像素提供预定权值,并将该第一组多个二分之一像素中的已加权二分之一像素相加,来计算在水平方向上与预定四分之一像素相邻或相近的第一组多个二分之一像素的值的水平和;通过向第二组多个二分之一像素中的二分之一像素提供预定权值,并将该第二组多个二分之一像素中的已加权二分之一像素相加,来计算在垂直方向上与该四分之一像素相邻或相近的第二组多个二分之一像素的值的垂直和;基于垂直和与水平和来计算四分之一像素的整数值;以及将该四分之一像素的整数值作为内插值输出。
2.如权利要求1所述的内插方法,其特征在于当计算每个垂直和与水平和时所使用的二分之一像素的总数是偶数。
3.如权利要求1所述的内插方法,其特征在于所提供的预定权值的和是2n,n是所使用的预定权值的数目。
4.如权利要求1所述的内插方法,其特征在于在计算垂直和与水平和时,将该第一组多个二分之一像素和第二组多个二分之一像素各自输入到分支过滤器中,其中该分支过滤器具有作为分支值的预定权值。
5.如权利要求4所述的内插方法,其特征在于预定权值的和是2n,n是所使用的预定权值的数目。
6.如权利要求5所述的内插方法,其特征在于将6个二分之一像素输入6分支过滤器中,其中该6分支过滤器具有分支值(1,-5,20,20,-5,1)。
7.如权利要求1所述的内插方法,其特征在于通过计算垂直和与水平和的平均值,并将该平均值四舍五入化为整数,来获得四分之一像素的整数值。
8.如权利要求7所述的内插方法,其特征在于使用下面的方程来计算四分之一像素的整数值,该方程为平均值=(水平和+垂直和)/[2*(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支过滤器的分支值,该分支值是预定权值。
9.如权利要求7所述的内插方法,其特征在于在计算四分之一像素的整数值时,使用以下的方程四分之一像素=integer[(integer_M_h+integer_M_v)/2]integer_M_h=integer[水平和/(a+b+c+d+e+f)]integer_M_v=integer[垂直和/(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支过滤器的分支值,且integer[]表示将使用在括号[]中表达的公式计算出的值化为整数的操作。
10.一种内插方法,包括通过向第一组多个二分之一像素中的二分之一像素提供预定权值,并将该第一组多个二分之一像素中已加权的二分之一像素相加,来计算在水平方向上与预定四分之一像素相邻或相近的第一组多个二分之一像素的值的水平和;基于该水平和计算第一组多个二分之一像素中的二分之一像素的水平平均值,并将该平均值化为整数;通过向第二组多个二分之一像素中的二分之一像素提供预定权值,并将该第二组多个二分之一像素中已加权的二分之一像素相加,来计算在垂直方向上与该四分之一像素相邻或相近的第二组多个二分之一像素的值的垂直和;基于该垂直和计算第二组多个二分之一像素中的二分之一像素的垂直平均值,并将该平均值化为整数;和通过计算水平平均值与垂直平均值的平均值,并将它们的平均值化为整数,来计算四分之一像素的值。
11.如权利要求10所述的内插方法,其特征在于在计算水平和与垂直和时,将该第一组多个二分之一像素和第二组多个二分之一像素各自输入到分支过滤器中,其中该分支过滤器具有作为分支值的预定权值。
12.如权利要求10所述的内插方法,其特征在于在计算水平和与垂直和时,将6个二分之一像素输入6分支过滤器中,其中该6分支过滤器具有分支值(1,-5,20,20,-5,1)。
13.如权利要求10所述的内插方法,其特征在于在计算四分之一像素的整数值时,使用以下的方程四分之一像素=integer[(integer_M_h+integer_M_v)/2]integer_M_h=integer[水平和/(a+b+c+d+e+f)]integer_M_v=integer[垂直和/(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支过滤器的分支值,且integer[]表示将使用在括号[]中括起来的公式计算出的值化为整数的操作。
14.如权利要求10所述的内插方法,其特征在于在计算四分之一像素的整数值时,使用以下的方程四分之一像素=Clip1[(M_h+M_v+1)>>1]M_h=Clip1[(Sum_h+16)>>5]M_v=Clip1[(Sum_v+16)>>5]其中,Clip1是将所获得的整数映射到与原始整数像素值相同范围内的预定值上的操作,并且>>x是将其前面的项除以2x的操作。
15.一种运动补偿装置,包括内插单元,配置成通过向在水平方向上与预定四分之一像素相邻或相近的多个第一组二分之一像素提供权值并将该第一组多个二分之一像素中已加权的二分之一像素相加来计算水平和,通过向在垂直方向上与四分之一像素相邻或相近的多个第二组二分之一像素提供权值并将该第二组多个二分之一像素中的已加权二分之一像素相加来计算垂直和,并且基于垂直和与水平和来计算四分之一像素的整数值;和运动补偿器,配置成在包含有由内插单元进行内插的四分之一像素的像素块上执行运动向量补偿,并输出运动向量补偿的结果。
16.如权利要求15所述的运动向量补偿装置,其特征在于把内插单元配置成将该第一组多个二分之一像素和第二组多个二分之一像素输入到分支过滤器中,其中该分支过滤器具有作为分支值的预定权值。
17.如权利要求15所述的运动向量补偿装置,其特征在于把内插单元配置成将该第一组多个二分之一像素和第二组多个二分之一像素中至少其中一组的6个二分之一像素输入6分支过滤器中,其中该6分支过滤器具有分支值(1,-5,20,20,-5,1)。
18.如权利要求15所述的运动向量补偿装置,其特征在于把内插单元配置成计算垂直和与水平和的平均值,并将该平均值四舍五入化为整数,来将该整数确定为四分之一像素的值。
19.如权利要求15所述的运动向量补偿装置,其特征在于把内插单元配置成基于以下方程来计算垂直和与水平和的平均值,该方程为平均值=(水平和+垂直和)/[2*(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支过滤器的分支值。
20.如权利要求15所述的运动向量补偿装置,其特征在于把内插单元配置成基于以下方程来计算四分之一像素值,所述方程为四分之一像素=integer[(integer_M_h+integer_M_v)/2]integer_M_h=integer[水平和/(a+b+c+d+e+f)]integer_M_v=integer[垂直和/(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支过滤器的分支值,且integer[]表示将使用在括号[]中括起来的公式计算出的值化为整数的操作。
21.一种运动补偿装置,包括内插单元,配置成通过向第一组多个二分之一像素中的二分之一像素提供权值并将该第一组多个二分之一像素中已加权的二分之一像素相加,来计算在水平方向上与预定四分之一像素相邻或相近的第一组多个二分之一像素的水平和,基于水平和计算第一组多个二分之一像素的水平平均值,并将该水平平均值化为整数,通过向第二组多个二分之一像素中的二分之一像素提供权值并将该第二组多个二分之一像素中已加权的二分之一像素相加,来计算在垂直方向上与该四分之一像素相邻的第二组多个二分之一像素的垂直和,基于垂直和计算第二组多个二分之一像素中的二分之一像素的垂直平均值,并将该垂直平均值化为整数,基于水平平均值与垂直平均值的平均值,来计算四分之一像素平均值,并且将该四分之一像素平均值化为整数,以及将该整数确定为四分之一像素的内插值;和运动补偿器,配置成在包含由内插单元进行内插的四分之一像素的像素块上执行运动向量补偿,并输出运动向量补偿的结果。
22.如权利要求21所述的运动补偿装置,其特征在于把内插单元进一步配置成将该第一组多个二分之一像素和第二组多个二分之一像素输入到分支过滤器中,其中该分支过滤器具有作为分支值的权值。
23.如权利要求21所述的运动向量补偿装置,其特征在于把内插单元进一步配置成计算以下的方程四分之一像素=Clip1[(M_h+M_v+1)>>1]M_h=Clip1[(Sum_h+16)>>5]M_v=Clip1[(Sum_v+16)>>5]其中,Clip1是将所获得的整数映射到与原始整数像素值相同范围内的预定值上的操作,并且>>x是将其前面的项除以2x的操作。
24.一种编码装置,包括内插单元,配置成通过向第一组多个二分之一像素中的二分之一像素提供权值并将该第一组多个二分之一像素中已加权的二分之一像素相加,来计算在水平方向上与预定四分之一像素相邻或相近的第一组多个二分之一像素的水平和,基于水平和计算第一组多个二分之一像素的水平平均值,并将该水平平均值化为整数,通过向第二组多个二分之一像素中的二分之一像素提供权值并将该第二组多个二分之一像素中已加权的二分之一像素相加,来计算在垂直方向上与该四分之一像素相邻或相近的第二组多个二分之一像素的垂直和,基于垂直和计算第二组多个二分之一像素的垂直平均值,并将该垂直平均值化为整数,计算垂直平均值与水平平均值的四分之一像素平均值,并将该四分之一像素平均值化为整数,以及将该整数确定为四分之一像素的内插值;和运动补偿器,配置成在包含由内插单元进行内插的四分之一像素的像素块上执行运动向量补偿,并输出运动向量补偿的结果。
25.如权利要求24所述的编码装置,其特征在于把内插单元配置成将该第一组多个二分之一像素和第二组多个二分之一像素输入到分支过滤器中,其中该分支过滤器具有作为分支值的权值。
26.如权利要求24所述的编码装置,其特征在于内插单元基于以下方程计算四分之一像素,所述方程为四分之一像素=Clip[(M_h+M_v+1)>>1]M_h=Clip1[(Sum_h+16)>>5]M_v=Clip1[(Sum_v+16)>>5]其中,Clip1是将所获得的整数映射到与原始整数像素值相同范围内的预定值上的操作,并且>>x是将其前面的项除以2x的操作。
27.一种解码装置,包括内插单元,配置成通过向第一组多个二分之一像素中的二分之一像素提供权值并将该第一组多个二分之一像素中已加权的二分之一像素相加,来计算在水平方向上与预定四分之一像素相邻或相近的第一组多个二分之一像素的水平和,基于水平和计算第一组多个二分之一像素的水平平均值,并将该水平平均值化为整数,通过向第二组多个二分之一像素中的二分之一像素提供权值并将该第二组多个二分之一像素中已加权的二分之一像素相加,来计算在垂直方向上与该四分之一像素相邻的第二组多个二分之一像素的垂直和,基于垂直和计算第二组多个二分之一像素的垂直平均值,并将该垂直平均值化为整数,计算垂直平均值与水平平均值的四分之一像素平均值,并将该四分之一像素平均值化为整数,以及提供该整数为内插四分之一像素的平均值;和运动补偿器,配置成在包含有由内插单元进行内插的四分之一像素的像素块上执行运动向量补偿,并输出运动向量补偿。
28.如权利要求27所述的解码装置,其特征在于把内插单元进一步配置成将该第一组多个二分之一像素和第二组多个二分之一像素输入到分支过滤器中,其中该分支过滤器具有作为分支值的权值。
29.如权利要求27所述的解码装置,其特征在于内插单元基于以下方程计算四分之一像素,所述方程为四分之一像素=Clip1[(M_h+M_v+1)>>1]M_h=Clip1[(Sum_h+16)>>5]M_v=Clip1[(Sum_v+16)>>5]其中,Clip1是将所获得的整数映射到与原始整数像素值相同范围内的预定值上的操作,并且>>x是将其前面的项除以2x的操作。
全文摘要
提供了用于运动向量补偿的内插方法和装置。该内插方法包括通过向每个二分之一像素提供预定权值并将结果相加,来计算在水平方向上与预定的四分之一像素相邻或相近的多个二分之一像素的值的水平和;通过向每个二分之一像素提供预定权值并将结果相加,来计算在垂直方向上与该四分之一像素相邻或相近的第二组多个二分之一像素的值的垂直和;以及使用垂直和与水平和来计算四分之一像素的整数值。依照本发明的一个方面,可以对运动向量中的误差实现具有更高一致性和可靠性的补偿,由此提高运动向量补偿的效率。
文档编号H04N7/36GK1495674SQ03147030
公开日2004年5月12日 申请日期2003年9月1日 优先权日2002年8月31日
发明者朴正 , 朴正煇, 李英烈, 金容帝 申请人:三星电子株式会社