运动图象编码方法和运动图象编码设备的制作方法

文档序号:7551230阅读:158来源:国知局
专利名称:运动图象编码方法和运动图象编码设备的制作方法
技术领域
本发明涉及使用色度或亮度的量化值执行帧间预测的图象序列编码和解码的方法。
背景技术
在图象序列高效编码中,利用前面相邻的帧的相似性的帧间预测(运动补偿)已知作为数据压缩的高效技术。当今最常使用的运动补偿方法是具有半象素精度的数据块匹配,它用于H.263的国际标准MPEG1和MPEG2中。在该种方法中,编码的图象被分段为数据块,并且这些数据块的运动矢量的水平和垂直分量估算为相邻的象素间的距离的一半的整数倍。这个处理过程用下面的方程表示[方程1]P(x,y)=R(x+ui,y+vi(x,y)∈Bi,0≤i<N ...(1)其中,P(x,y)和R(x,y)分别表示为位于在当前帧的预测图象P和参照图象(在当前帧以前已经编码的帧的编码图象)R中的坐标(x,y)内的象素的取样值(亮度或色度的强度)。x和y是整数,并且假定所有的象素位于坐标值是整数的那些点。另外,假定这些象素的取样值量化为非负的整数。N,Bi和(ui,vi)分别表示在该图象中的数据块的号码,包括在该图象的第i块中的象素组和在第i块中的运动矢量。当ui和vi的值不是整数时,需要在参考图象中找到不实际存在任何象素的点上的色强度值。当前用于该处理的最常用的方法是使用相邻的四个象素的双线性内插方法。用下面的方程表示这种内插的方法 R(x+pd,y+qd=((d-q)((d-p)R(x,y)+pR(x+1,y))]]>+q((d-p)R(x,y+1)+pR(x+1,y+1)))//d2---(2)]]>其中,d是正整数,和p和q是小于d但不小于0的数。″∥″表示舍入通常的除法结果(使用实数的除法)成最接近的整数的整除。
在图1中示出了H.263视频编码器的结构的示例。作为编码算法,H.263采用混合编码方法(自适应帧间/帧内编码方法),它是数据块匹配和DCT(离散余弦变换)的结合。减法器102计算输入图象(当前帧基本图象)101和帧间/帧内编码选择器119的输出图象113(相对后者)间的差,并输出误差图象103。这个误差图象在DCT转换器104中被转换成DCT系数以后在量化器105中量化,形成量化的DCT系数106。这些量化的DCT系数通过通信信道被传输,同时在该编码器中用于合成帧间预测图象。下面解释合成预测图象的过程。在通过去量化器108和反向DCT转换器109以后,上述的量化的DCT系数106形成再现误差图象110(在接收端相同的再现误差图象)。这个再现的误差图象和帧间/帧内编码选择器119的输出图象113被加法器111相加,得到当前帧的解码图象112(与在接收端再现的当前帧的解码图象相同的图象)。这个图象存储在帧存储器114中,且被延时的时间等于帧间隔。因此,在当前的时间点,帧存储存储器114输出先前帧的解码图象115。这个先前帧的解码图象和当前帧的原来的图象101输入给数据块匹配部分116,该116在这些图象间执行块匹配。当前帧的原来的图象分段为多个数据块,通过从先前的帧的解码图象抽取最类似这些数据块的部分合成当前帧的预测图象117。在这个过程中,必须计算每个数据块的前帧和当前帧间的运动。在运动估算处理过程中估算的每个块的运动矢量作为运动矢量数据120传送给接收端。在该接收端,使用运动矢量信息和先前帧的解码图象,合成作为在发送端的相同的预测图象。该预测图象117与″0″信号118一起输出给帧间/帧内编码选择器119,这个选择器119通过选择这些输入的任何一个选择帧间编码或帧内编码。当预测图象117被选择时(图2所示情形),执行帧间编码。另一方面,当选择″0″信号时,由于输入图象本身被转换成为DCT系数和输出给通信信道,执行帧内编码。为了接收端正确地再现编码的图象,必须通知接收机是否在发送端执行帧内编码或帧间编码。因此,给通信电路输出识别标志121。最后,通过在多路复用器122中多路化量化的DCT系数,运动矢量,和帧间/帧内识别标志信息,可以得到H.263编码比特流123。
在图2中示出了接收从图1所示的编码器输出的编码的比特流的解码器200的结构。接收的H.263编码的比特流217在信号解多路化器216中被解多路化成量化的DCT系数201,运动矢量数据202,和帧间/帧内识别标志203。在由反向量化器204和反向DCT转换器205处理后,量化的DCT系数201变成解码的误差图象206。在加法器207中解码的误差图象加到帧间/帧内编码选择器214的输出图象215上,该图象的和作为解码图象208被输出。根据帧间/帧内编码选择器的识别标志203,切换帧间/帧内编码选择器的输出。当执行帧间编码时,在预测图象合成器211中合成利用的预测图象212。在这个合成器中,在帧存储器209中存储的前帧的解码图象210中的数据块的位置根据运动矢量202移位。另一方面,对于帧内编码,帧间/帧内编码选择器输出作为帧内编码的″0″信号213。
由H.263编码的图象包括包含亮度信息的亮度平面(Y平面)和包含色度信息的两个色度平面(U平面和V平面)。这时的特点在于当图象在水平方向上有2m个象素和在垂直方向上有2n个象素(m和n是正整数)时,Y平面有2m个水平象素和2n个垂直象素,U和V平面有m个水平象素和n个垂直象素。在色度平面上分辨率低是由于人的视觉系统对于彩色空间中的差异具有比较迟钝的视觉能力。具有输入H.263的图象在称作宏数据块的数据块单元中执行编码和解码。在图3中示出了宏数据块的结构。该宏数据块包括三种数据块Y块,U块和V块。包含亮度信息的Y数据块301的大小是16×16象素,包含彩色信息的U块302和V块303的大小是8×8象素。
在H.263中,半象素精度的数据块匹配应用到每个数据块中。因此,当估算的运动矢量定义为(u,v)时,该u和v二者是象素间的距离一半的整数倍。换言之,1/2用作最小单位。用于强度值(此后″亮度″和″色度″的强度值用一般的术语″强度值″称谓)内插方法的结构示于图4中。当执行方程2所述的内插时,除得的商舍入为最接近的整数,另外,当该商具有一个半整数值时(也就是0.5加上一个整数)执行舍入为在离开0点的方向上的下一个整数。换言之,在图4中,当401,402,403和404的强度分别是La,Lb,Lc和Ld(La,Lb,Lc和Ld是非负整数),在位置405,406,407,和408处的内插强度值Ia,Ib,Ic,和Id(Ia,Ib,Ic,和Id是非负整数由下面的方程表达[方程3]Ia=LaIb=[(La+Lb+1)/2]Ic=[(La+Lc+1)/2] ...(3)Id=[(La+Lb+Lc+Ld+2)/4]这里″[]″表示朝向0方向最接近的整数的舍入(也就是舍弃小数部分)。由这个舍入成为整数所引起的误差的期望值估算如下假设在图4中的位置405,406,407和408的强度值的概率都是25%。当求得位置405的强度值Ia值时,舍入误差将明显是零。当求得位置406的强度值Ib时,当La+Lb是偶数时,误差是零,当是奇数时,误差为1/2。如果La+Lb是偶数和奇数的概率二者是50%,于是误差的期望值将是0×1/2+1/2×1/2=1/4。另外,当求得位置407的强度值Ic时,误差的期望值是作为Ib的1/4。当求得位置408的强度值Id时,当用4除La+Lb+Lc+Ld的残数是0,1,2,和3时,误差分别是0,-1/4,1/2和1/4。如果我们假设残数是0,1,2,和3的概率都是相同时(即25%),误差的期望值是0×1/4-1/4×1/4+1/2×1/4+1/4×1/4=1/8。如上所述,假设在所有位置405-408的强度值的概率全相同,误差的最后的期望值是0×1/4+1/4×1/4+1/4×1/4+1/8×1/4=5/32,这就表明每次用数据块匹配的方式执行运动补偿时,误差5/32就出现在象素强度值中。一般在低速率的编码中,在帧间误差的编码中没有使用足够多的位数,以至DCT系数的量化规模倾向很大。因此,只有当它是很大时才校正由于运动补偿出现的误差。当在没有执行帧内编码的环境下连续执行帧间编码时,势必引起误差的累加并在再现的图象中产生不好的效果。
正如以上所述,在色度平面的垂直和水平方向上象素数大约是一半。因此,对于U块和V块的运动矢量,Y块的运动矢量的一半数值用作垂直和水平分量。由于Y块的运动矢量的水平和垂直分量是1/2的整数倍,如果执行一般的除法,U块和V块的运动矢量分量将表现为1/4的整数倍(1/4象素精度)。然而,由于具有1/4象素精度的运动矢量的强度内插处理的高计算复杂程度,U块和V块的运动矢量舍入成264行中的半象素精度。在H.263中使用的舍入方法如下根据上述的定义,(u,v)表示宏数据块的运动矢量(等于Y数据块中的运动矢量)。假设,r是一个整数,s是小于4的非负整数,u/2可以重写成u/2=r+s/4。当s是0或2时,由于u/2已经是1/2的整数倍,就不需要舍入了。然而,当s等于1或3时,s的值舍入成2。通过使用这种舍入方法增加s取为2的值的概率,运动补偿的过滤效果可以加强。当舍入前s的值是0,1,2和3的概率都是25%时,在舍入后s是0或2的概率分别是25%和75%。有关运动矢量的水平分量u的以上的解释处理过程还应用到垂直分量v。因此,在U块和V块中,使用位置401的强度值的概率是1/4×1/4=1/16,使用位置402和403的强度值的概率都是1/4×3/4=3/16,同时使用位置404的强度的概率是3/4×3/4=9/16。通过使用上述方法,强度值误差的期望值为0×1/16+1/4×3/16+1/4×3/16+1/8×9/16=21/128。如上对Y块的解释,当帧间编码连续地进行时,就出现了累积误差的问题。
如有关前面,对于执行帧间预测的图象序列编码和解码的方法,亮度和色度强度被量化,出现了舍入误差累加所产生的问题。当在产生帧间预测图象期间亮度和色度强度值被量化时,就产生了舍入误差。

发明内容
鉴于上述问题,本发明的目的就是通过防止误差累加来改善再现图象的质量。
为了实现上述目标,通过限制出现误差或执行消除已经出现的误差的操作,以防止误差的累积。
本发明提供一种运动图象编码方法,将输入图像作为P帧或B帧进行编码,包括在输入图像和参照图像之间进行运动推测,检测运动矢量,使用上述运动矢量和上述参照图像,合成上述输入图像的预测图像;求出上述预测图像和上述输入图像之间的差分,获得误差图像;将关于上述误差图像的信息和关于上述运动矢量的信息包含在上述输入图像的编码信息中输出,上述进行预测图像的合成的步骤包括用内插运算求出上述参照图象中不存在象素的点的强度值的步骤;将上述输入图像作为P帧进行编码和作为B帧进行编码的情况下作为P帧进行编码时,可以使用正舍入方法进行上述内插运算,也可以使用负舍入方法进行上述内插运算;当作为B帧进行编码时,仅使用正舍入方法和负舍入方法中被预先固定的一种舍入方法进行上述内插运算。
本发明提供一种计算机可读记录介质,记录运动图象编码方法,该方法将输入图像作为P帧或B帧进行编码,该方法包括在第一帧存储器中存储参照图像的步骤;在第二帧存储器中存储输入图像的步骤;在上述第二存储器中存储的上述输入图像和上述第一存储器中存储的上述参照图像之间进行运动推测,检测运动矢量,使用上述运动矢量和上述参照图像,合成上述输入图像的预测图像的步骤;求出上述预测图像和上述输入图像之间的差分,获得误差图像的步骤;将关于上述误差图像的信息和关于上述运动矢量的信息包含在上述输入图像的编码信息中输出的步骤,上述进行预测图像的合成的步骤包括用内插运算求出上述参照图象中不存在象素的点的强度值的步骤;将上述输入图像作为P帧进行编码和作为B帧进行编码的情况下作为P帧进行编码时,可以使用正舍入方法进行上述内插运算,也可以使用负舍入方法进行上述内插运算;当作为B帧进行编码时,仅使用正舍入方法和负舍入方法中被预先固定的一种舍入方法进行上述内插运算。
本发明提供一种运动矢量编码设备,将输入图像作为P帧或B帧进行编码,其特征在于包括块匹配部分,在输入图像和参照图像之间进行运动推定,检测运动补偿,使用该运动矢量和上述参照图像,合成上述输入图像的预测图像;DCT转换器,将上述预测图像和上述输入图像之间的差分进行DCT转换,获得DCT系数;量化器,将上述DCT系数进行量化,获得量化DCT系数;多路化器,将上述量化系数与关于上述运动矢量的信息进行多路化;上述输入图像在作为P帧进行编码和作为B帧进行编码的情况下被作为P帧进行编码时,上述块匹配部分,在预测图像的合成中对上述参照图像中不存在象素的点的强度值进行内插运算时,可以使用正舍入方法进行上述内插运算,也可以使用负舍入方法进行上述内插运算;当作为B帧进行编码时,仅使用正舍入方法和负舍入方法中被预先固定的一种舍入方法。


图1是表示H.263的图象编码器的方框图;图2是表示H.263的图象解码器的方框图;图3是表示宏数据块的结构;图4是表示具有半象素精度的块匹配的强度值内插处理的示图;图5是表示编码的图象序列的示图;图6是表示软件图象编码装置的方框图;图7是表示软件图象解码装置的方框图;图8是表示在软件图象解码装置中处理示例的流程图;图9是表示决定软件图象解码装置处理的编码方式的示例的流程图;图10是在软件图象解码装置中运动估算和运动补偿处理的示例的流程图;图11是表示软件图象解码装置中的处理的流程图;
图12是表示在软件图象解码装置中运动补偿处理的示例的流程图;图13是表示在其上记录由输出包括I,P+和P-帧的比特流的编码方法产生的编码比特流的存储介质的示例的示图;图14是表示使用同时存在P+和P-帧的编码方法的装置的具体示例的示图;图15是表示在其上记录由输出包括I,B,P+和P-帧的比特流的编码方法产生的编码比特流的存储介质的示例的示图;图16是表示在使用同时存在P+和P-帧的编码方法的装置中包括的预测图象合成器的方框图;图17是表示包括在解码由同时存在P+和P-帧的编码方法编码的比特流的装置中的预测图象合成器的方框图。
具体实施例方式
首先,必须考虑出现作为与现有技术有关的累积舍入误差的环境。由能够执行如在MPEG.1,MPEG.2和H.263中的单向预测和双向预测二者的编码方法所编码的图象序列的示例示于图5中。图象501是由帧内编码装置编码的帧,称为I帧。相反,图象503,505,507和509称为P帧,使用先前的I或P帧作为参考图象进行单向帧间编码来编码这些帧。因此,当例如编码的图象505,图象503用作参考图象并执行帧间预测。图象502,504,506和508称为B帧,利用先前和随后的I和P帧执行双向帧间预测。B帧的特点在于当执行帧间预测时不用作参考图象。由于在I帧中不执行运动补偿,不产生由运动补偿形成的舍入误差。反之,不仅在P帧中执行运动补偿,而且P帧还用作其它的P或B帧的参考图象,以至导致累积舍入误差。另一方面,在B帧中,执行运动补偿,以至在重现的图象中出现累积舍入误差的效果。然而,由于B帧不用作参考图象,B帧不是累积舍入误差的来源。因此,如果防止在P帧有累积误差,则可以在所有图象序列中减轻舍入误差的不好效果。在H.263中存在编码P帧和B帧的帧并称为PB帧(例如,帧503和504可以编码为PB帧)。如果结合的两帧被视为单独的帧,上述的概念可以应用。换言之,在PB帧期间采取对P帧的舍入误差对抗措施,可以防止累积误差。
在亮度值内插期间,当从通常的除法(它的运算结果是实数的除法)得到的值是一个半整数(0.5加上一个整数)时,这个结果于是被舍入到在离开0点的方向上的下一个整数,因此产生舍入误差。例如,当用4去除得到一个内插的强度值时,残数是1和3的情形的舍入误差具有相等的绝对值,但是符号不同。因此,当计算舍入误差的期望值时,由这两种情形产生的舍入误差抵消(用更通俗的语说,当执行用正整数d′去除时,由残数是t和d′-t的情形产生的误差抵消)。然而,残数是2时,换言之,当通常的除法的结果是一个半整数时,舍入误差不能消除,并导致累积误差。为了解决这个问题,可以使用允许用两种舍入方法的方法。在这里使用的两种舍入方法是一种是离开0点进位半个整数,一种是朝向0点舍去半个整数。通过结合使用这两种舍入方法,可以抵消舍入误差。以后,把将通常的除法结果舍入最接近的整数和离开0点进位半个整数的舍入方法称为″正舍入″。另外,把将通常的除法结果舍入最接近的整数和朝向0点舍去半个整数的舍入方法称为″负舍入″。在方程3中示出了用于半象素精度的块匹配的正舍入的处理。当用负舍入替代时,这个方程重写为如下。
Ia=LaIb=[(La+Lb)/2]Ic=[(La+Lc)/2] ...(4)Id=[(La+Lb+Lc+Ld+1)/4]此后,为合成帧间预测图象执行正和负舍入的运动补偿方法被分别称为″使用正舍入的运动补偿″和″使用负舍入的运动补偿″。另外,对于使用具有半象素精度的块匹配作运动补偿的P帧,将正舍入的帧称之为″P+帧″且使用负舍入的帧称之为″P-帧″(在这种定义下,在H.263中的P帧都是P+帧)。P+和P-帧中的舍入误差的期望值具有相同的绝对值,但符号不同。因此,当沿时间轴交替安排P+帧和P-帧时,可以防止出现舍入误差的累积。在图5中的例子中,如果帧503和507设为P+帧且帧505和509设为P-帧,可以实施这种方法。P+帧和P-帧的交替出现导致了在B帧的双向预测上P+帧和P-帧的使用。一般地说,正向预测图象(即当在图5中编码帧504时使用帧503合成的预测图象)和后向预测图象(即当在图5中编码帧504时使用帧505合成的预测图象)的平均经常用于帧B的合成预测图象。这就意味着在B帧的双向预测中使用P+帧(舍入误差的期望值具有正值)和P-帧(舍入误差的期望值具有负值)有效地抵消了舍入的误差作用。前面讨论过,在B帧中的舍入处理不产生误差的累积。因此,即使在所有的B帧中使用相同的舍入方法也没有问题。例如,即使对在图5中所有的B帧502,504,506和508执行运动补偿的正舍入也不会有解码图象的严重恶化。为了简化B帧的解码处理,最好是对B帧执行一种舍入处理。
根据利用多种舍入方法的上述运动补偿方法的一种图象解码器的块匹配部分1600示于图16中。与其它的图中相同的数字表示相同的部分。通过用1600替代图1中的块匹配部分116,可以使用多种舍入方法。在运动估算器1601中执行输入图象101和先前帧的解码图象间的运动估算处理。结果,输出运动信息120。在预测图象合成器1603中合成预测图象时利用这个运动信息。舍入方法确定装置1602确定是否将正还是负舍入方法作为舍入方法用于现时被编码的帧。被确定的有关舍入方法的信息1604输入给预测图象合成器1603。在这个合成器1603中根据由信息装置1604确定的舍入方法合成预测图象117并输出之。在图1的块匹配部分116中,没有与图16中的1602和1604等同的结构,而且只用正舍入合成预测图象。还有,在块匹配部分中确定的舍入方法1605能够输出,且它的信息可被多路化成比特流然后被发送。
图象解码器的预测图象合成器1700示于图17中,图象解码器能够解码由使用多种舍入方法的编码方法产生的比特流。与其它的图中相同的数字表示相同的部分。通过用1700替代图2的预测图象合成器211可以使用多种舍入方法。在舍入方法确定装置1701中,在解码处理中适合预测图象合成的舍入方法被确定。为了正确地完成解码,在这里选择的舍入方法必须与编码中选择的舍入方法相同。例如,在编码器和解码器间可以遵守下面的规则当现时的帧是P帧,且从最近的I帧算起的P帧的帧数(包括现时的帧)是奇数时,这时现时的帧是P+帧。当这个数是偶数时,现时的帧是P-帧。如果在编码端的舍入方法确定装置(例如图16中的1602)和解码端的舍入方法确定装置1701共享这个规则,于是该图象能够被正确地解码。在预测图象合成器1703中使用运动信息202,前帧的解码图象210和前述的有关确定的舍入方法的信息1702合成预测图象。这个预测图象212被输出并然后用于解码图象的合成。作为上述的另一种情形,有关舍入方法的信息被在发送的比特流中多路传输的情形可以被考虑(通过从图16中描述的块匹配部分输出有关舍入方法的信息1605,在编码器可以产生比特流。在这种情况下,不使用舍入方法确定装置1701,从编码的比特流抽取的有关舍入方法的信息1704用于预测图象合成器1703中。
除了利用图1和图2中所示的通常技术的惯用的电路和惯用的芯片的图象编码器和图象解码器外,本发明还可以应用到利用通用目的的处理器的软件图象编码器和软件图象解码器。在图6和7中示出了软件图象编码器600和软件图象解码器700。在软件图象编码器600中输入图象601首先存储在输入帧存储器602中且通用目的处理器603从这里装入信息和执行编码。驱动这个通用目的处理器的程序可以从作为硬盘,软盘等等的存储装置608装入,并在程序存储器604中存储。这个通用目的的处理器还使用处理存储器605执行编码。由通用目的的处理器输出的编码信息暂时存储在输出缓冲器606中,然后作为编码的比特流607输出。
在图8中示出了编码软件(由计算机可读的记录介质)的流程。该处理开始于801,在802中值0赋于变量N。然后,在803和804中,当N的值是100时,0值赋于N。N是帧数的计数器。对于其处理完成的每一个帧加1,当执行编码时,允许值从0至99。当N的值是0值时,现时的帧是I帧。当N是奇数时,现时的帧是P+帧,当是非零的偶数时,现时的帧是P-帧。当N的值的上限是99时,这意昧着在99P帧(P+帧或P-帧)被编码后一个I帧被编码。在一定数目的编码的帧中总是插入一个I帧,可以得到下面的好处(a)可以防止由于在编码器和解码器间的处理不匹配所引起的误差累积(例如,在DCT的计算中的不匹配);和(b)从编码数据得到目标帧的重放图象的处理负载(随机存取)被减小。当编码器的性能或使用的编码器的环境变化时,最佳N值变化。因此,这不意味着N值总是100。为每一帧确定舍入方法和编码方式的处理在805中执行,图9示出了这个操作的详细的流程。首先,在901检查N是否是0。如果N是0,在902中于是输出作为预测方式的区别信息的″I″给输出缓冲器。这意味着被编码的图象将编码成为I帧。这里,″输出给输出缓冲器″意味着在输出缓冲器中存储以后,该信息输出给作为编码的比特流部分的外部装置。当N不是0时,于是在904中识别N是奇数还是偶数。当N是奇数时,在905″+″输出给输出缓冲器作为舍入方法的区别信息,和被编码的图象将编码成为P+帧。另一方面,当N是偶数时,在906″-″输出给输出缓冲器作为舍入方法的区别信息,且被编码的图象将编码成为P-帧。在805中在确定了编码方式以后,处理再次返回到图8,在806中该输入图象存储在帧存储器中。这里涉及的帧存储器A意味着软件编码器的存储区部分(例如,保持在图6的605存储器中的存储区)。在807中,检查编码的现时的帧是否是I帧。当识别不是I帧时,在808中执行运动估算和运动补偿。在图10中示出了在808中执行的操作的细节。首先,在1001中,在存储在帧存储器A和B的图象间执行运动估算(正象在这段最后部分所写,前帧的解码图象存储在帧存储器B中)。每块的运动矢量被找到,且这个运动矢量发送给输出缓冲器。然后,在1002中,检查当前帧是否是P+帧。当现时的帧是P+帧时,在1003中利用正舍入方法合成预测图象,这个预测图象存储在帧存储器C中。另一方面,当当前帧是P-帧时,在1004中利用负舍入方法合成预测图象,这个预测图象存储在帧存储器C中。其次,在1005中,得到帧存储器A和C间的差分图象,存储在帧存储器A中。这里,该处理再次返回到图8。在809中的处理开始前,当当前帧是I帧时,输入帧存储在帧存储器A中,当当前帧是P帧(P+或P-帧)时,输入图象和预测图象间的差分图象存储在帧存储器A中。在809中,DCT应用到存储在帧存储器ZA中,这里计算的DCT系数在量化后发送给输出存储器。在810中,对量化的DCT系数执行反向量化和应用反向的DCT。应用反向的DCT得到的图象存储在帧存储器B中。接着,在811中,再次检查当前帧是否是I帧。当当前帧不是I帧时,存储在存储器B和C中的图象相加,其结果存储在存储器B中。帧的编码处理在这里结束,存储在帧存储器B中的图象在进入813以前是这个帧的再现的图象(这个帧与在解码端得到的相同)。在813中,检查是否刚完成编码的帧是序列中的最后的帧。如果是的话,编码处理结束,如果这帧不是最后帧,在814中将1加到N上,处理再次返回到803,下一帧的编码处理开始。
在图7中示出了软件解码器700。在解码的比特流702暂时地存储在输入缓冲器702中以后,该比特流然后装入通用目的的处理器703。驱动这个通用目的的处理器的程序从可以是硬盘软盘等等的存储装置装入和存储在程序存储器704中。该通用目的处理器还使用处理存储器605执行解码。通过解码处理得到的解码图象暂时存储在输出帧存储器706中,然后作为输出图象707发送。
在图11中示出了图7中的软件解码器700的解码软件的流程图。在1101中操作开始,在1102中检查是否出现输入信息。如果没有输入信息,在1103中停止解码操作。当输入信息出现了,在1104中输入预测方式的区别信息。这里所用的此词″输入″意味着存储在输入缓冲器中的信息(例如图7中的702)已经由通用目的处理器装入。在1105中检查是否解码方式区别信息的信息是″I″,当不是″I″时,舍入方法的区别信息输入且在1107中执行帧间预测图象的合成。在图12中示出了在1107中操作的详细流程图。在1201中,为每个数据块输入运动矢量。于是在1202中,检查是否在1106中装入的舍入方法的区别信息是″+″。当这个信息是″+″,当前被解码的帧是P+帧。在这种情况下,在1203中使用正的舍入方法合成预测图象,在帧存储器D中存储该预测的图象。这里,帧存储器意味着软件解码器的存储区的部分(例如,在图7中的操作存储器705中得到的存储区)。当舍入方法的区别信息不是″+″时,解码的现时的帧是P-帧。在1204中用负舍入方法合成预测图象,这个预测图象存储在帧存储器D中。在这一点,如果由于一些类型的差错P+帧被解码成P-帧,或者相反,如果P-帧被解码成为P+帧,在解码器中没有合成正确的预测图象,解码的图象的质量将恶化。在合成预测图象以后,操作返回到图11且量化的DCT系数在1108中被输入。反向量化和反向DCT于是应用到这些系数且合成图象存储在帧存储器E中。在1109中再次检查是否现时解码的帧是I帧。如果现时的帧不是I帧时,在帧存储器D和E中存储的图象在1110中相加,且在帧存储器E中存储该和图象。在1111中开始操作前存储在帧存储器E中的图象是被再现图象。在111中这个存储在帧存储器E中的图象输出到输出帧存储器(例如图7中的706),然后从该解码器输出再现的图象。在这里完成了帧的解码操作,通过返回到1102以开始下一帧的处理。当基于图8-12的流程图的软件在软件图象编码器或解码器中运行时,利用通常的电路和芯片可以得到相同的效果。
在图13中示出了在存储介质(记录介质)上记录由图6的601的软件解码器产生的比特流。假设在图8-10的流程图中所示的算法在软件编码器中使用。数字信息同心地记录在能够记录数字信息的记录盘1301(例如磁盘,光盘等)。记录在这个数字盘的信息的部分1302包括预测方式区别信息1303,1305,1308,1311,和1314;舍入方法区别信息1306,1309,1312和1315;和运动矢量和DCT系数信息1304,1307,1310,1313和1316。在1303中记录了表示″I″的信息,″P″记录在1305,1308,1311和1314,″+″记录在1306和1312中,和″-″记录在1309和1315中。在这种情况下,″I″和″+″可以由单一位0表示,″P″和″-″可以由单一位1表示。使用这个表示,解码器能够正确地解码记录的信息,和合成正确的再现图象。通过使用上述的方法在存储介质上存储编码的比特流,当该比特流被读出和解码时,防止了舍入误差的累积。
在图15中示出了在记录介质上记录图5中所示的图象序列的编码数据的比特流。该记录比特流包括有关P+,P-和B帧的信息。用在图13中的1301中相同的方法,在能够记录数字信息的记录盘1501上同心地记录数字信息(例如磁盘,光盘等)。在这个数字盘上记录的数字信息的部分1502包括预测方式区别信息1503,1505,1508,1510和1513;舍入方法区别信息1506和1512;和运动矢量和DCT系数信息1504,1507,1509,1511和1514。表示″I″的信息记录在1503中,″P″记录在1505和1510中,″B″记录在1508和1513中,″+″记录在1505中,″-″记录在1511中。在这种情形下,″I″,″P″和″B″可以分别用两位值00,01,和10表示,″+″和″-″可以分别用一位值0和1表示。使用这种表示,解码器能够正确地解码记录的信息和合成正确的再现图象。在图15中,有关帧501(I帧)的信息是1503和1504,有关502(B帧)的信息是1508和1509,有关帧503(P+帧)的信息是1505和1507,有关帧504(B帧)的信息是1513和1514,和有关帧505(P-帧)的信息是1510和1512。当使用B帧解码编码的图象序列时,帧的发送次序和显示次序通常是不同的。这是由于B帧的预测图象合成以前先前和随后的参考图象需要被编码。因此,尽管在帧503前显示帧502,有关帧503的信息在有关帧502的信息以前就传送了。如上所述,由于在B帧中运动补偿不导致舍入误差的累积,对于B帧就不需要多种舍入方法了。因此,如这个示例所示,指明舍入方法(即″+″和″-″)的信息不为B帧传送。因而,例如,即使只有正的舍入应用于B帧,也不发生舍入误差累积的问题。通过用上述的方法在存储介质上存储包括有关B帧的信息的编码的比特流,当这个比特流被读和解码时,可以防止出现舍入误差的累积。
使用在这个说明书中的叙及的编码方法具体的编码器和解码器的示例示于图14中。通过安装图象编码和解码软件于计算机1401中可以利用图象编码和解码的方法。这个软件可以记录在一些种类的存储介质(CD-ROM,软盘,硬盘等)1412上,使用它们装入计算机。另外,通过联接计算机到通信线路上,计算机可以用作图象通信终端。还可以将说明书中叙及的解码方法装入播放装置1403,以便记录在存储介质1402上的编码比特流被读取和解码。在这种情况下,在电视监视器1404上可以显示再现的图象信号。装置1403可以只用作读取编码的比特流,在这种情况下,可以在电视监视器1404上安装解码装置。众所周知,可以通过使用卫星和地波可以实现数字数据的传输。解码装置还可以安装在能够接收如数字发射的电视接收机上。而且解码装置也可以安装在联接卫星/地波天线的前置盒接收机内,或电缆电视系统的电缆1408上,以便在电视监视器1410上显示再现的图象。在这种情况下,解码装置可以与电视监视器相结合,而不是与1404情况的前置盒接收机结合。数字卫星电视广播系统的方案示于1413,1414和1415中。在编码的比特流中的视频信息从广播电台1413发送给通信或广播卫星1414。该卫星接收这个信息,发送它到具有接收卫星广播节目的家庭,和使用电视接收机或前置盒接收机这样的装置在家庭再现和显示该视频信息。由于用很低位率的图象通信成为可能,使用移动终端1406最近引起相当的关注。数字便携式终端可以分为如下三类具有编码器和解码器二者的无线收发机;只具有编码器的发射机;和只具有解码器的接收机。编码装置可以安装在视频摄象机的录相机1407上。摄象机还可以只用获得视频信号,这个信号可以提供给通常的编码器1411。在这个图中所示的所有的装置或系统可以用该说明书中叙及的编码或/和解码方法装备。通过使用在这些装置或系统中的这个编码或/和解码方法,可以得到比用通常的技术得到的图象质量要好的高质量。
下面的变化很清楚包含在本发明的范围内。
(i)上述概念的先决条件是使用块匹配作为运动补偿方法。然而,本发明还可以进一步应用到所有图象序列编码和解码方法,在该方法中通过对垂直和水平象素运动的分量而不是对象素的垂直和水平方向的取样周期的整数倍取值,然后通过内插求得取样值不存在的位置的强度来执行运动补偿。例如,列在日本专利申请No.hei08-060572中的整体运动补偿和列在日本专利申请No.hei08-249601中包括的预测应用到本发明的方法中。
(ii)本发明的说明书仅叙述了对运动矢量的水平和垂直分量取1/2的整数倍的值情形。然而,本发明还一般地应用到运动矢量的水平和垂直允许的1/d的整数倍的方法。然而,当d变大时,在双线性内插中的除法的除数(d的平方,见方程2)也变大,以至于相反地,达到0.5的值的通常除法的结果的概率变小,因此,当只执行正的舍入时,舍入误差的期望值的绝对值变小,由累积误差引起的不好的作用不明显。而且还可应用到本发明的该方法中的是运动补偿方法,例如,d值是个变量,当d小于一个固定的数值时,正舍入和负舍入二者被使用,当d值大于一个固定的数值时,只有正舍入或只有负舍入被使用。
(iii)如现有技术所述,当DCT被用来作为误差编码方法时,当DCT系数的量化步骤的规模大时,来自累积的舍入误差的不利影响显露出来。然而,一种方法可以应用于本发明,其中,当DCT系数的量化的步骤的规模大于一个阈值时,于是正舍入和负舍入和二者被使用。当DCT系数的量化步骤的规模小于一个阈值时,于是只有正舍或负舍入被使用。
(iv)在误差累积出现在亮度平面的情形和误差累积出现在色度平面的情形下,在色度平面上有误差累积的情形下,在再现的图象上的不好的影响总地说就更严重。这是由于这样的事实,与图象稍微黑或亮的情况,相比图象发生的颜色整个的变化所造成的恶化更明显。然而,一种方法可以应用到这个发明,其中正舍入和负舍入二者用于色度信号,和只有正舍入或负舍入用于亮度信号。
如在相关的技术说明中所述,通过二等分1/2象素精度运动矢量得到的1/4象素精度运动矢量舍入到H.263中的1/2象素精度。然而,加入一定的变化给这个方法,舍入误差的绝对值期望值可以减小。在现有技术中叙及的H.263中,是亮度平面的运动矢量的水平或垂直分量的一半的值表示为r+s/4(r是一个整数,s是小于4且不小于0的整数),和当s是1或3,执行舍入操作得到2。这个操作可以如下变化当s是1,执行舍入操作得0,和当s是3,1加到r,使得s是0。通过执行这些操作,在图4中的在位置406-408的强度值的倍数明显地减小(水平和垂直的运动矢量的分量将是整数的概率变高),以至舍入误差的绝对期望值变小。然而,即使在这个方法中的误差出现的大小能够被限制,也不能够完全防止误差的累积。
(v)在这个说明书中叙及的发明可以应用到一种方法中,这种方法通过平均由不同的运动补偿方法得到的预测图象得到最后帧间预测图象。例如,在日本专利申请No.Hei8-2616中叙及的方法中通过下面两种方法使得到的预测图象被平均块匹配,其中运动矢量赋于每一个16×16的象素块;和块匹配,其中运动矢量赋于每一个8×8的象素块。在这种方法中,当计算两个预测图象的平均值时,也执行舍入。当只有正舍入在这个平均运算中连续执行时,累加了新式的舍和误差。通过在这个平均运算中使用多种舍入方法可以解决这个问题。在这个方法中,当在块匹配中执行负舍入时,在平均操作中执行正舍入操作。相反,当在块匹配中执行负舍入时,在平均操作中执行正舍入操作。通过对平均和块匹配使用不同的舍入方法,在相同的帧中来自不同的来源的舍入误差抵消了。
(vi)当利用交替地沿时间轴安排P+帧和P-帧的一种方法时,该编码器或解码器需要确定现时处理的P帧是P+帧或是P-帧。下面是识别方法的一个示例在最近的编码或解码I帧后计数器计算P帧的数,和当数是奇数时,现时P帧是P+帧,和当是偶数时,现时P帧是P-帧(这种方法称作隐含方案)。还有一种方法的例子,在编码的图象信息的标题部分写入识别在编码器现时编码的P帧是P+帧或P-帧的信息(这种方法称作显式方案)。与隐含方案比较,这种方法能很好地经受传输误差,这是由于不需要计算P帧的数目。
另外,显式方法具有下面的优点如在有关技术的说明中所述,过时的编码标准(如MPEG-1或MPEG-2)对运动补偿只使用正的舍入方法。这意味着在市场上的MPEG-1/MPEG-2运动估算/运动补偿装置(例如等同于图1中的106)与使用P+帧和P-帧二者的编码方法不兼容。这里假定,有一个解码器,它能够解码由使用P+帧和P-帧编码的方法产生的比特流。在这种情况下,如果解码器是根据上述隐含方法,于是它将困难地开发产生能够正确地使用上述的解码器使用上述的MPEG-1/MPEG-2运动估算/补偿装置解码的比特流的编码器。然而,如果该解码器是根据上述的显式方法,这个问题可以解决。使用MPEG-1/MPEG-2运动估算/补偿装置的编码器通过在帧信息标题连续写表示正的舍入的舍入方法区别信息,能够连续地发送P+帧。当执行它时,根据显式方法的解码器能够正确地解码由这个编码器产生的比特流。当然,由于只有P+帧出现,它应当更可能是出现舍入误差累积的情形。然而,在编码器只使用小的值作DCT系数的量化步骤的规模的情况下误差累积不是严重的问题(那种编码器的示例是只用于高速率编码的通用编码器)。除了过去标准间的互操作性外,显式方法还有下面的优点(a)高速率的通常编码器的设备成本,由于常常插入I帧,编码器不易于舍入误差的累积和由于只安装正的或负的舍入方法作运动补偿的象素值舍入方法,而得以降低。和(b)上述的编码器不易于舍入误差的累积,还有这样的优点,不需要决定是否编码现时的帧作为P+或P-帧,和该操作被简化。
(vii)在这个说明书中叙及的本发明可应用到将伴随舍入的滤波应用到帧间预测图象的编码和解码方法。例如,在图象序列编码的261行的标准中,低通滤波器(称之为回路滤波器)应用到在帧间预测图象中运动矢量不是0的块信号。而且,在H.263中,滤波器能用以平滑块边缘上的不连续性(分块人工因素)。所有这些滤波器对象素亮度值执行加权平均,然后对平均亮度值执行舍入。甚至是这些情况,选择使用正的和负的舍入有效地防止误差累积。
(viii)除了IP+P-P+P-...外,混合如P+P+P-P-P+P+...或IP+P-P-P+P+的P+帧和P-帧的各种方法可以应用到本发明的方法中。例如,使用输出以50%的概率的0和1二者的随机数发生器,当输出分别为0和1时,编码器能够编码P+和P-帧。在任何情况下,在一定的时间周期出现P+帧和P-帧的概率差越小,易于出现的舍入误差累积就越小。另外,当用任意的方法编码器允许混合P+帧和P-帧时,该编码器和解码器必须根据显式方法和没有上述的隐含式方法操作。因此当从编码器和解码器的允许的适应性的结构的视图看显式方法是优越的。
(ix)在本说明书中叙及的本发明不限定象素值内插方法于双线性内插。强度值内插方法一般地能由下面的方程表示[方程5]R(x+r,y+s)=T(Σj=-∞∞Σj=-∞∞h(r-j,s-k)R(x+j,y+k))---(5)]]>这里,r和s是实数,h(r,s)是内插实数的函数,和T(z)是舍入实数z的函数。R(x,y),x,和y的定义与在方程4中的相同。当T(z)是表示正舍入的函数时,执行利用正舍入的运动补偿,和当T(z)是表示负舍入的函数时,执行利用负舍入的运动补偿。本发明可以应用到使用方程5描述的内插方法。例如,可以用下面所示的h(r,s)的定义描述双线性内插。
h(r,s)=(1-|r|)(1-|s|),0 ≤|r|≤1,0≤|s|≤1,...(6)0,其他然而,如果例如h(r,s)定义如下,[方程7]h(r,s)=1-|r|-|s|,0≤|r|+|s|≤1,rs<0,1-|r|,|r|≥|s|,|r|≤1,rs≥0, ...(7)1-|s|,|s|>|r|,|s|≤1,rs>0,0, 其他于是不同于双线性的内插的内插方法被实施,但本发明仍可应用。
(x)在本说明书中叙及的本发明不限定对DCT(离散余弦变换)的误差图象的编码方法。例如,子波变换(例如M.Antonioni等著的″使用子波变换的图象编码″在IEEEE会刊.1992.4月图象处理第1卷第二期,)和Walsh-Hadamard变换(例A.N.Netravalli和B.G.Haskell的″数字图象″1998年)都可以应用于本发明。
权利要求
1.一种运动图象编码方法,将输入图像作为P帧或B帧进行编码,包括在输入图像和参照图像之间进行运动推测,检测运动矢量,使用上述运动矢量和上述参照图像,合成上述输入图像的预测图像;求出上述预测图像和上述输入图像之间的差分,获得误差图像;将关于上述误差图像的信息和关于上述运动矢量的信息包含在上述输入图像的编码信息中输出,上述进行预测图像的合成的步骤包括用内插运算求出上述参照图象中不存在象素的点的强度值的步骤;将上述输入图像作为P帧进行编码和作为B帧进行编码的情况下作为P帧进行编码时,可以使用正舍入方法进行上述内插运算,也可以使用负舍入方法进行上述内插运算;当作为B帧进行编码时,仅使用正舍入方法和负舍入方法中被预先固定的一种舍入方法进行上述内插运算。
2.按照权利要求1所述的运动图像编码方法,其特征在于上述输入图像作为B帧进行编码时按照正舍入方法进行上述内插运算。
3.按照权利要求1或2所述的运动图像编码方法,其特征在于上述正舍入方法,在从上述参照图象中,从具有强度为La的第一象素、与上述第一象素在水平方向相邻具有强度为Lb的第二象素、与上述第一象素在垂直方向相邻具有强度为Lc的第三象素、与上述第二象素在垂直方向相邻并且与上述第三象素在水平方向相邻具有强度为Ld的第四象素,求出不存在象素的上述第一象素和上述第二象素的中间点的强度Ib,上述第一象素和上述第三象素的中间点的强度Ic,上述第一象素、第二象素、第三象素和第四象素包围的与它们具有等距离的点的强度Id时,有使用如下舍入方法的情况,其中Ib=[(La+Lb+1)/2],Ic=[(La+Lc+1)/2],Id=[(La+Lb+Lc+Ld+2)/4];上述负舍入方法有使用如下舍入方法的情况,其中Ib=[(La+Lb)/2],Ic=[(La+Lc)/2],Id=[(La+Lb+Lc+Ld+1)/4]。
4.一种计算机可读记录介质,记录运动图象编码方法,该方法将输入图像作为P帧或B帧进行编码,该方法包括在第一帧存储器中存储参照图像的步骤;在第二帧存储器中存储输入图像的步骤;在上述第二存储器中存储的上述输入图像和上述第一存储器中存储的上述参照图像之间进行运动推测,检测运动矢量,使用上述运动矢量和上述参照图像,合成上述输入图像的预测图像的步骤;求出上述预测图像和上述输入图像之间的差分,获得误差图像的步骤;将关于上述误差图像的信息和关于上述运动矢量的信息包含在上述输入图像的编码信息中输出的步骤,上述进行预测图像的合成的步骤包括用内插运算求出上述参照图象中不存在象素的点的强度值的步骤;将上述输入图像作为P帧进行编码和作为B帧进行编码的情况下作为P帧进行编码时,可以使用正舍入方法进行上述内插运算,也可以使用负舍入方法进行上述内插运算;当作为B帧进行编码时,仅使用正舍入方法和负舍入方法中被预先固定的一种舍入方法进行上述内插运算。
5.按照权利要求4所述的记录介质,其特征在于上述输入图像作为B帧进行编码时仅按照正舍入方法进行上述内插运算。
6.按照权利要求4或5所述的记录介质,其特征在于上述正舍入方法,在从上述参照图象中,从具有强度为La的第一象素、与上述第一象素在水平方向相邻具有强度为Lb的第二象素、与上述第一象素在垂直方向相邻具有强度为Lc的第三象素、与上述第二象素在垂直方向相邻并且与上述第三象素在水平方向相邻具有强度为Ld的第四象素,求出不存在象素的上述第一象素和上述第二象素的中间点的强度Ib,上述第一象素和上述第三象素的中间点的强度Ic,上述第一象素、第二象素、第三象素和第四象素包围的与它们具有等距离的点的强度Id时,有使用如下舍入方法的情况,其中Ib=[(La+Lb+1)/2],Ic=[(La+Lc+1)/2],Id=[(La+Lb+Lc+Ld+2)/4];上述负舍入方法有使用如下舍入方法的情况,其中Ib=[(La+Lb)/2],Ic=[(La+Lc)/2],Id=[(La+Lb+Lc+Ld+1)/4]。
7.一种运动矢量编码设备,将输入图像作为P帧或B帧进行编码,其特征在于包括块匹配部分,在输入图像和参照图像之间进行运动推定,检测运动补偿,使用该运动矢量和上述参照图像,合成上述输入图像的预测图像;DCT转换器,将上述预测图像和上述输入图像之间的差分进行DCT转换,获得DCT系数;量化器,将上述DCT系数进行量化,获得量化DCT系数;多路化器,将上述量化系数与关于上述运动矢量的信息进行多路化;上述输入图像在作为P帧进行编码和作为B帧进行编码的情况下被作为P帧进行编码时,上述块匹配部分,在预测图像的合成中对上述参照图像中不存在象素的点的强度值进行内插运算时,可以使用正舍入方法进行上述内插运算,也可以使用负舍入方法进行上述内插运算;当作为B帧进行编码时,仅使用正舍入方法和负舍入方法中被预先固定的一种舍入方法。
8.按照权利要求7所述的编码设备,其特征在于上述输入图像作为B帧进行编码时,上述块匹配部分,在预测图像的合成中对上述参照图像中不存在象素的点的强度值进行内插运算时,仅按照正舍入方法进行上述内插运算。
9.按照权利要求7或8所述的编码设备,其特征在于上述正舍入方法,在从上述参照图象中,从具有强度为La的第一象素、与上述第一象素在水平方向相邻具有强度为Lb的第二象素、与上述第一象素在垂直方向相邻具有强度为Lc的第三象素、与上述第二象素在垂直方向相邻并且与上述第三象素在水平方向相邻具有强度为Ld的第四象素,求出不存在象素的上述第一象素和上述第二象素的中间点的强度Ib,上述第一象素和上述第三象素的中间点的强度Ic,上述第一象素、第二象素、第三象素和第四象素包围的与它们具有等距离的点的强度Id时,有使用如下舍入方法的情况,其中Ib=[(La+Lb+1)/2],Ic=[(La+Lc+1)/2],Id=[(La+Lb+Lc+Ld+2)/4];上述负舍入方法有使用如下舍入方法的情况,其中Ib=[(La+Lb)/2],Ic=[(La+Lc)/2],Id=[(La+Lb+Lc+Ld+1)/4]。
全文摘要
本发明提供了运动图象编码方法和运动图象编码设备。包括在输入图像和参照图像之间进行运动推测,检测运动矢量,合成上述输入图像的预测图像;求出上述预测图像和上述输入图像之间的差分,获得误差图像;将关于上述误差图像的信息和关于上述运动矢量的信息包含在上述输入图像的编码信息中输出,用内插运算求出上述参照图象不存在象素的点的强度值;将上述输入图像作为P帧进行编码和作为B帧进行编码的情况下作为P帧进行编码时,可以使用正舍入方法进行上述内插运算,也可以使用负舍入方法进行上述内插运算;当作为B帧进行编码时,仅使用正舍入方法和负舍入方法中被预先固定的一种舍入方法进行上述内插运算。本发明能够抵消舍入误差和防止舍入误差的累积。
文档编号H04N7/26GK1549601SQ20031011382
公开日2004年11月24日 申请日期1998年6月9日 优先权日1997年6月9日
发明者中屋雄一郎 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1