视频代码转换方法和装置以及运动矢量内插方法

文档序号:7616114阅读:126来源:国知局
专利名称:视频代码转换方法和装置以及运动矢量内插方法
技术领域
本发明涉及运动画面的代码转换,更具体地讲,涉及一种将运动画面数据从一种编码格式转换成另一种编码格式的代码转换方法和装置及其运动矢量内插方法。
背景技术
计算机和通信技术最近的发展已经能够经网络传输大量的多媒体数据。因此,已经建议了对多媒体数据进行编码和通过网络传输多媒体数据的各种方法。由于在其间传输多媒体数据的发送方和接收方很可能处于不同的环境下,那么考虑到发送和接收方的每个的服务质量,需要将多媒体数据从一种编码格式转换成另一种编码格式。这种转换被称为代码转换。视频代码转换方法包括像素域代码转换方法和频域代码转换方法,(例如,离散余弦变换(DCT)域代码转换方法)。
为了对运动画面数据执行像素域代码转换过程,需要对该运动画面数据进行解码并且然后对其编码,在这种情况下,应对运动画面数据的每帧的每个宏块重新执行运动估计。因此,对运动画面数据进行代码转换花费大量时间,并且很难实时传输已转换的运动画面数据。

发明内容
本发明提供一种代码转换方法及装置,其通过将用于运动估计的每块的编码模式和运动矢量正确地转换成数据在其中将被进行代码转换的编码方法中使用的每块的编码模式和运动矢量,和用于该代码转换方法及装置的运动矢量内插方法。
根据本发明的一方面,提供一种代码转换方法。该代码转换方法包括
(a)对以第一编码方法编码的图像进行解码,然后得到该图像的每块的编码模式信息和运动矢量信息;(b)基于已解码的图像的每块的编码模式信息选择第二编码方法的可用编码模式中的至少一种;和(c)以至少一种所选择的编码模式对已解码的图像的每块执行运动估计过程,然后基于运功估计的结果确定用于已解码的图像的每块的最佳编码模式。
该代码转换方法还包括(d)以最佳编码模式对已解码的图像的每块执行运动估计过程,并且输出以用于已解码的图像的第二编码方法编码的数据。
在(b)中,如果已解码的图像的每块的编码模式是帧间16×16模式,那么选择帧间16×16模式、帧间16×8模式、帧间8×16模式、和帧内16×16模式作为用于第二编码方法的编码模式,并且如果已解码的图像的每块的编码模式是帧间8×8模式,那么选择帧间8×8模式、帧间8×4模式、帧间4×8模式、和帧内4×4模式作为用于第二编码方法的编码模式。
在(b)中,如果已解码的图像的每块的编码模式是跳过模式,那么选择跳过模式、帧间16×16模式、和帧内16×16模式作为用于第二编码方法的编码模式,并且如果已解码的图像的每块的编码模式是帧内模式,那么选择帧内16×16模式和帧内8×8模式作为用于第二编码方法的编码模式。
在(c)中,通过以至少一种所选的编码模式对当前块执行运动估计过程,来再次调整已解码的图像的当前帧中的当前块的运动矢量。
第一编码方法是MPEG-4编码方法,而第二编码方法是H.264编码方法。
根据本发明的另一方面,提供一种代码转换方法。该代码转换方法包括(a)通过使用先前帧中与当前块相应的预定块交叠先前帧的块的区域和被该预定块交叠的块的编码模式信息,来计算当前块的运动矢量。
在(a)中,通过将该预定块交叠当前帧的块的区域和被预定块交叠的块的运动矢量相乘,然后将相乘的结果平均,来得到当前块的运动矢量。
在(a)中,如果被预定块交叠的块是16×16块,那么将相应块的运动矢量加权。
在(a)中,如果预定块交叠先前帧的块的区域的每个具有1个像素的长度和1个像素的宽度,那么将被预定块交叠的块从当前块的运动矢量的计算排除。
根据本发明的另一方面,提供一种代码转换装置。该代码转换装置包括解码器,其对以第一编码方法编码的图像进行解码,并且输出该图像的每块的编码模式信息和运动矢量信息;和编码器,其基于已解码的图像的每块的编码模式信息选择第二编码方法的可用编码模式中的至少一种,以至少一种所选择的编码模式对已解码的图像的每块执行运动估计过程,基于运动估计的结果确定用于已解码的图像的每块的最佳编码模式,以最佳编码模式对已解码的图像的每块执行运动估计过程,并且输出以用于已编码的图像的第二编码方法编码的数据。
如果已解码的图像的每块的编码模式是帧间16×16模式,那么该编码器选择帧间16×16模式、帧间16×8模式、帧间8×16模式、和帧内16×16模式作为用于第二编码方法的编码模式,并且如果已解码的图像的每块的编码模式是帧间8×8模式,那么该编码器选择帧间8×8模式、帧间8×4模式、帧间4×8模式、和帧内4×4模式作为用于第二编码方法的编码模式。
如果已解码的图像的每块的编码模式是跳过模式,那么该编码器选择跳过模式、帧间16×16模式、和帧内16×16模式作为用于第二编码方法的编码模式,并且如果已解码的图像的每块的编码模式是帧内模式,那么该编码器选择帧内16×16模式和帧内8×8模式作为用于第二编码方法的编码模式。
该编码器通过使用预定帧交叠先前帧的块的区域和被该预定块交叠的块的编码模式信息,来计算当前块的运动矢量。


通过参照附图对本发明示例性的实施例的详细描述,本发明的上述和其他特点和优点将会变得更加清楚,其中图1A是示出在H.264运动估计方法中使用的块的图解;图1B是示出在MPEG-4运动估计方法中使用的块的图解;图2是示出在H.264标准中通过1/4像素搜索来确定运动矢量的方法的图解;图3是根据本发明示例性的实施例的像素域代码转换装置的方框图;图4A到4D是示出将MPEG-4编码模式转换成H.264编码模式的方法的图解;图5是示出通过使用已跳过的MPEG-4帧的块的运动矢量来内插H.264帧的块的运动矢量的方法的图解;图6A是示出通过二进制内插方法来计算运动矢量的方法的图解;
图6B是示出通过加权二进制内插方法来计算运动矢量的方法的图解;图6C是示出通过约束二进制内插方法来计算运动矢量的方法的图解;图7是根据本发明示例性的实施例的像素域代码转换方法的流程图;图8是示出当应用根据本发明的各种代码转换方法来测试图像时,根据比特率的变化的峰值信噪比(PSNR)的变化的图表;和图9是示出通过使用根据本发明的各种代码转换方法中的每个对测试图像的每个进行代码转换所花费的时间的图表。
具体实施例方式
现在将参照在其中示出本发明示例性的实施例的附图,来充分描述本发明。
根据本发明示例性的实施例的代码转换装置将按MPEG-4简易规范(SP)编码的运动画面格式转换成按H.264基本规范(BP)编码的运动画面。
H.264是没有考虑与现存的运动画面压缩标准如H.261、H.263、MPEG-2、和MPEG-4的兼容性而建立的运动画面压缩标准。H.264也称为ISO/IECMPEG-4标准的第10部分。因此,H.264和MPEG-4具有很多帧间不同的特征。例如,MPEG-4基于逐8×8块执行DCT过程,而H.264基于逐4×4块执行整数-DCT过程。另外,MPEG-4基于逐1/2像素执行运动估计过程,而H.264基于逐1/4像素执行运动估计过程以提高运动估计过程的精度。此外,MPEG-4将交流(AC)/直流(DC)预测过程执行为帧内预测过程,而H.264在空间域执行帧内预测过程。此外,MPEG-4在变长编码过程中使用霍夫曼表格,而H.264在变长编码过程中使用通用的变长码。
为了根据H.264标准对运动画面数据进行编码,将运动画面数据的每帧分为多个宏块,并且对每个宏块以所有的可用于帧间和帧内预测的编码模式进行编码。之后,根据在每种编码模式中用于对运动画面数据的每个宏块进行编码的比特数和通过对已编码的运动画面数据的宏块进行解码而得到的宏块从原始的运动画面数据的宏块失真的程度,来选择一种编码模式作为运动画面数据的最佳编码模式(即,每种编码模式的率失真的代价)。之后,以最佳编码模式对每个宏块进行编码。这个过程被称为率失真优化(RDO)。
比特率(R)表示用于对当前宏块进行编码的比特数,并且失真(D)表示通过对当前宏块进行编码和然后解码而得到的恢复的宏块与当前宏块相差多少。因此,只能在获得已恢复的当前宏块之后,通过使用逆量化器和逆变换器来得到失真(D)。率失真代价(RDcost)可以用下面的方程(1)来表示RDcost=Distortion+λ×Rate....(1)其中,Distortion表示已恢复的宏块与当前宏块相差多少,并且λ是拉格朗日常数。失真可以用下面的方程(2)来表示Distortion=Σk=015Σl=015(B(k,l)-B′(k,l))2...(2)]]>其中,B(k,l)和B′(k,l)表示当前宏块和已恢复的像素(k,l)的值。拉格朗日常数λ使用下面的方程(3)计算λ=0.85×2QP3...(3)]]>其中,QP表示H.264的量化值并且是从0到51之间的整数。
帧间模式(inter mode)是用于帧间预测的编码模式,其中,当对当前帧的当前宏块进行编码时从被参考的至少一个参考帧选择的至少一个宏块的运动矢量信息以及当前帧的当前宏块中的像素值和所选宏块的像素值之间的差别被编码。根据H.264标准,每帧可以具有多达5个参考帧,并且在存储参考帧的帧存储器中搜索参考帧的宏块。参考帧可以是当前帧之前或者之后的帧。
帧内模式(intra mode)是用于帧内预测的编码模式,其中,通过使用相邻宏块中的像素值来预测当前帧的当前宏块中的像素值而不用参考参考帧。然后,对已预测的当前宏块中的像素值和相邻宏块中的像素值之间的差别进行编码,从而能够对当前帧的当前宏块进行编码。
图1示出在H.264运动估计方法中使用的块。参照图1A,根据H.264标准,16×16宏块可以具有7个可变尺寸的块,并且每个块具有一个运动矢量。更具体地讲,16×16宏块可以分成16×16块,16×8块、8×16块、或者8×8块。每个8×8块可以再分成8×8块、8×4块、4×8块、或4×4块。
图1B示出在MPEG-4运动估计方法中使用的块。参照图1B,和提供7种编码模式的H.264标准不同,MPEG-4标准仅提供两种编码模式,即16×16块编码模式和8×8块编码模式。所以,当将MPEG-4图像数据转换成H.264图像数据时,必须将MPEG-4图像数据的每个宏块的编码模式转换成H.264可兼容的编码模式。
图2示出根据H.264标准通过搜索1/4像素来确定运动矢量的方法。参照图2,由矩形包围的A到I表示整个像素(integer pixel),由圆形包围的b到i表示1/2像素,由三角形包围的0到10表示1/4像素。
通过在预定的±16像素搜索范围中对整个像素A到I中的每个执行整个像素运动矢量搜索,来将整个像素A到I中的一个确定为最佳整个像素。假设整个像素A被确定为最佳整个像素,那么通过对1/2像素b到i中的每个执行1/2像素运动矢量搜索,来将与最佳整个像素A相邻的8个1/2像素中的一个,即1/2像素b到i中的一个确定为最佳1/2像素。假设1/2像素b被确定为最佳1/2像素,那么通过对1/4像素2、8、6、7、4、5、3、和1中的每个执行1/4像素运动矢量搜索,来将与1/2像素b相邻的8个1/4像素中的一个,即2、8、6、7、4、5、3、和1中的一个确定为最佳1/4像素。
现在将更详细地描述当将MPEG-4运动画面转换成H.264画面图像时MPEG-4运动估计模式到H.264运动估计模式的转换。
现有的像素域代码转换方法中的一种是级联像素域代码转换方法。级联像素域代码转换方法对MPEG-4比特流的图像数据进行解码,并且然后根据H.264标准对已解码的数据进行编码。然而,在级联像素域代码转换方法中,当将图像数据编码成MPEG-4比特流时就已经执行的运动估计过程应当对已解码的图像数据的每个宏块再执行,以将已解码的图像数据编码成H.264比特流。因此,因为级联像素域代码转换方法对运动画面进行代码转换需要大量的时间和金钱,所以其不适合于运动画面的实时传输。
图3是根据本发明示例性的实施例的像素域代码转换装置的方框图。该素域代码转换装置包括MPEG-4解码器310和H.264编码器320。该素域代码转换装置通过让H.264编码器320使用通过使用对MPEG-4比特流进行解码的MPEG-4解码器310而得到的编码模式信息和运动矢量信息,能够实时传输运动画面数据。另外,该像素域代码转换装置将MPEG-4比特流解码成像素域数据,并且然后将像素域数据转换成H.264比特流。
更具体地讲,可变长解码单元311接收MPEG-4比特流、对MPEG-4比特流进行可变长解码,并且输出帧类型信息、宏块信息、和已被可变长解码的MPEG-4比特流的运动矢量信息。帧类型信息指定已被可变长解码的MPEG-4比特流的每帧是I帧还是预测(P)帧,宏块信息指定当将预定图像数据的每个宏块编码成MPEG-4比特流时在其中执行运动估计过程的编码模式。运动矢量信息不仅被发送到MPEG-4解码器310的运动估计单元314,而且被发送到H.264编码器320的运动估计单元326。宏块信息被发送到H.264编码器320的运动估计单元326。
逆量化和逆离散余弦变换(DCT)单元312对已被可变长解码的MPEG-4比特流进行逆量化和逆DCT,从而将已被可变长解码的MPEG-4比特流转换成像素域数据。将像素域数据输出到H.264编码器320。将像素域数据存储在帧存储器313中,然后将它输入到运动矢量估计单元314中,从而能够在运动估计过程中使用它。运动估计单元314通过使用从可变长解码单元311接收到的动矢量信息来执行运动估计过程。
H.264编码器320通过对像素域数据的每帧进行H.264编码,并且然后使用DCT和量化单元321和可变长编码单元322对已被H.264编码的像素域数据进行量化和DCT,来将像素域数据转换成H.264比特流。H.264编码器320的运动估计单元326通过使用从MPEG-4解码器310接收的运动矢量信息和宏块信息来执行运动估计。运动估计单元326通过使用通过对已被DCT和被量化的比特流进行逆量化和逆DCT而获得的然后经过环路滤波器324被存储到帧存储器325中的帧,来执行运动估计。
如果输入到可变长解码单元311中的MPEG-4帧是P帧,那么H.264编码器320可以使用每个MPEG-4帧的每个宏块的编码模式和运动矢量,从而省略了耗时的运动估计过程。然而,由于H.264基于逐1/4像素执行运动估计和运动补偿过程,并且提供7个可变的块的尺寸和11种编码模式,所以每个MPEG-4帧的每个宏块的编码模式应该被转换成更复杂的H.264编码模式。
图4A到4D是示出将MPEG-4编码模式转换成H.264编码模式的方法的图解。将MPEG-4编码模式转换成H.264编码模式以使H.264编码器使用通过对MPEG-4比特流进行解码而得到的编码模式信息。通常,H.264编码器以所有可用的编码模式执行运动估计过程,并且然后将编码模式中的一种确定为最佳编码模式。因此,如果H.264编码器能够使用从已解码的MPEG-4流得到的编码模式信息,那么其不必以所有可用的编码模式执行运动估计过程。因此,H.264编码器通过仅以一些可用的编码模式执行运动估计过程,能够减少将MPEG-4比特流转换成H.264比特流所需的计算量。
参照图4A,如果MPEG-4帧的每块的编码模式是16×16帧间模式,那么H.264编码器以16×16帧间模式、16×8帧间模式、8×16帧间模式、和16×16帧内模式对MPEG-4帧的每块执行运动估计过程。
参照图4B,如果MPEG-4帧的每块的编码模式是8×8帧间模式,那么H.264编码器以8×8帧间模式、8×4帧间模式、4×8帧间模式、4×4的帧间模式、和4×4帧内模式对MPEG-4帧的每块执行运动估计过程。
参照图4C,如果MPEG-4帧的每块的编码模式是跳过模式,那么H.264编码器以跳过模式、16×16帧内模式、和16×16帧间模式对MPEG-4帧的每块执行运动估计过程。在跳过模式中,仅发送或存储一些将被编码的块的编码模式信息。与图像的背景相应的当前帧的块中的像素很可能具有与参考帧的相应的块中的它们各自的像素相同的值,在这种情况下,仅发送或存储编码模式信息,例如残留误差信号或者运动矢量信息,而无需发送或存储已编码的数据。
参照图4D,如果MPEG-4帧的每块的编码模式是帧内模式,那么H.264编码器以4×4帧内模式和16×16帧内模式对MPEG-4比特流的每块执行运动估计。
由于H.264编码器仅以几种编码模式对MPEG-4帧的每块执行运动估计过程,所以可以大大减少将MPEG-4比特流转换成H.264比特流所需的计算量。在选择4×4帧内编码模式和16×16帧内编码模式并且最终它们中的一种必然被确定为最佳编码模式的情况下,因为率失真优化技术使得整个代码转换装置的结构过于复杂,所以使用率失真优化技术可能不适合。最好但非必要的是,使用均方差(MSE)技术而不是率失真优化技术将提供最低率失真代价的4×4帧内编码模式和16×16帧内编码模式中的一种确定为最佳编码模式。
为了降低计算的复杂性,可以通过在代码转换过程中将量化参数设置到更高的值来调整比特率以和给定的网络带宽相一致。在本发明中,可以通过使用运动矢量内插方法将当前帧速率削减到一半来调整比特率。当将当前帧速率削减到一半以将MPEG-4比特流代码转换成H.264比特流时,需要通过使用被跳过的MPEG-4帧的运动矢量信息来内插H.264帧的块的运动矢量。
图5是示出通过使用已跳过的MPEG-4帧的运动矢量信息来内插H.264帧的块的运动矢量的方法的图解。在当将MPEG-4比特流的代码转换成H.264比特流时将帧速率削减到一半的情况下,第n H.264帧对应第2n MPEG-4帧,并且被跳过的第(2n-1)MPEG-4帧对应第n和第(n-1)H.264帧之间的某处。通过参照第(2n-1)MPEG-4帧来得到第(2n-1)MPEG-4帧的块的运动矢量。能够通过将第2n MPEG-4帧的相应的块的运动矢量和第(2n-1)MPEG-4帧的相应的块的运动矢量相加,来得到参照第(n-1)H.264帧的第n H.264帧的当前块的运动矢量。
现在将描述通过使用被跳过的MPEG-4帧的相应的块的运动矢量来得到H.264帧的当前块的运动矢量的运动矢量内插方法。
图6A是示出通过二进制内插方法来计算运动矢量的方法的图解。MPEG-4标准提供两种不同的编码模式,即16×16块编码模式和8×8块编码模式。由于1个16×16块运动矢量可以分成4个8×8块运动矢量,所以所有MPEG-4帧都可以由8×8块运动矢量来表示。可以通过使用被跳过的MPEG-4帧的8×8运动矢量信息来得到H.264帧的当前块的运动矢量。
参照图6A,由于根据MPEG-4标准,可以以8×8块编码模式表示运动矢量,所以可以用下面的方程(4)定义H.264帧的当前8×8块运动矢量MVMV=Σi=14(wi×hi×MVi)Σi=14(wi×hi)...(4)]]>其中,wi和hi(其中i=1、2、3、和4)分别表示交叠被跳过的MPEG-4帧的块的H.264帧的当前8×8块的第i子块的水平和垂直长度,并且MVi表示第i子块的运动矢量。换言之,可以通过使用被跳过的MPEG-4帧的每个8×8块的编码模式来得到H.264帧的16×16、16×8、8×16、或8×8块的运动矢量。
图6B是示出通过加权二进制内插方法来计算运动矢量的方法的图解。
MPEG-4提供两种编码模式,即16×16编码模式和8×8编码模式。一个16×16MPEG-4块包含四倍的8×8MPEG-4块的像素信息。因此,当使用16×16编码模式执行二进制内插过程时,16×16MPEG-4块的权重比8×8MPEG-4块大四倍。换言之,如果被H.264帧的当前块交叠的被跳过的MPEG-4帧的块是16×16块,那么不考虑被H.264帧的当前块交叠的被跳过的MPEG-4的帧的块的区域而对相应的块的运动矢量进行加权。因此,可以使用下面的方程(5)来计算H.264帧的当前块的最终运动矢量MVMV=4wihi×MV1+w2h2×MV2+w3h3×MV3+4w4h4×MV44wihi+w2h2+w3h3+4w4h4...(5)]]>图6C是示出通过约束二进制内插方法来计算运动矢量的方法的图解。
交叠被跳过的MPEG-4帧的块的H.264帧的当前8×8块的区域取决于被跳过的MPEG-4帧上的当前8×8块的位置而变化。然而,如果将H.264帧的当前8×8块的第i子块的长度和宽度中的至少一个,即wi和hi中的至少一个设置为1,那么可以忽略H.264帧的当前8×8块的第i子块对H.264帧的整个当前8×8块的运动矢量的影响。参照图6C,从H.264帧的当前整个8×8块的运动矢量的计算中排除H.264帧的当前8×8块的第一子块A和第三子块C。在H.264帧的当前8×8块的计算中只考虑8×8块的第二子块B和第四子块D。换言之,如果将wi和hi中的至少一个设置为1,那么从H.264帧的当前8×8块的运动矢量的计算中排除H.264帧的当前8×8块的第i子块。可以通过忽略具有相对小的区域的H.264帧的当前8×8块的子块,来提高H.264帧的当前8×8块的运动矢量的计算精度,并且可以用下面的方程(6)来表示H.264帧的当前8×8块的运动矢量的计算MV=w2h2×MV2+w4h4×MV4w2h2+w4h4...(6)]]>根据本发明的三种运动矢量内插方法使H.264编码器能够重新使用从MPEG-4帧得到的整个像素运动矢量,从而,将搜索范围从±16减小到±2。因此,可以在提高画面质量的同时减小运动估计所需的计算量。换言之,可以不在±16像素域那样宽的搜索区域中搜索而高效地搜索运动矢量。
可以帧间独立地或者共同使用上述的运动矢量内插方法。例如,可以共同使用加权二进制内插方法和约束二进制内插方法。或者,上述的运动矢量内插方法中的每种可以和图4A到4D的将MPEG-4编码模式转换成H.264的编码模式的方法中的一种共同使用。
图7是根据本发明示例性的实施例的像素域代码转换方法的流程图。参照图7,在操作S710中,接收MPEG-4帧的每个宏块的编码模式信息和运动矢量信息。在操作S720中,基于MPEG-4帧的每个宏块的编码模式信息选择所有可用的H.264编码模式中的几个。以上参照图4A到4D已经描述了选择所有可用的H.264编码模式中的几个的方法。在操作S730中,如果需要将帧速率削减到一半,那么可以使用运动矢量内插方法得到运动矢量。以上参照图6A到6C已经描述了运动矢量内插方法。在操作S740中,使用率失真优化技术将所选择的H.264编码模式中的一种确定为最佳编码模式。
通过使用能够对MPEG-4SP图像进行解码的MoMuSys解码器和能够对H.264BP图像进行编码的Joint Model(JM)53编码器评价了本发明的性能。在评价中,使用了Pentium IV 2.66Ghz的处理器、具有1/4普通接口格式(QCIF,176×144个像素)分辨率的4种图像数据,和具有普通接口格式(CIF,352×288个像素)分辨率的3种图像数据。这里,7种图像数据中的每种包含总共300个帧速率为30Hz的帧。JM 42编码器对7种不同尺寸(16×16、16×8、8×16、8×8、8×4、4×8、和4×4)的块执行运动估计和补偿过程,基于±16搜索范围执行整个像素运动矢量的搜索,执行1/4像素运动估计和补偿过程和4×4整数DCT过程,并且采用率失真优化技术。
将7种图像数据的每种的第一帧编码为帧内帧,并且将7种图像数据的每种的其余帧编码为预测帧。通过跳过7种图像数据的每种的每隔一帧从而将7种图像数据的每种的帧速率削减到一半,即15Hz,来评价7种图像数据的每种的300帧。在基于H.264的运动矢量内插过程中,通过使用上述的运动矢量内插方法中的一种,即二进制内插方法、加权二进制内插方法、和约束二进制内插方法中的一种,在MPEG-4图像数据的每帧中的整个像素的运动矢量中搜索候选矢量,在候选矢量的±2的搜索范围中搜索1/2像素运动矢量,并且在与1/2像素运动矢量相邻的8个1/4像素中搜索1/4像素运动矢量。
上述的运动矢量内插方法可以和块编码模式转换方法一起使用,或者独立地削减当前帧速率。
图8示出根据比特率的变化的各种代码转换方法的峰值信噪比(PSNR)的变化。参照图8,‘Casade’表示级联的像素域代码转换方法,‘BI’表示二进制内插方法,‘WBI’表示加权二进制内插方法,‘CBI’表示约束二进制内插方法,‘WBI+CBI’表示加权二进制内插方法和约束二进制内插方法的组合。
结果表明,与级联的像素域代码转换方法相比,根据本发明的各种代码转换方法在低比特率具有约0.2dB的PNSR损失,而在较高比特率具有上至0.7dB的PNSR损失。另外,本发明在比特率约70kps时达到约为33.1dB的PNSR,这表明本发明能够提供适合于各种移动终端应用程序的高质量的画面。如图8的下半部所示,在具有CIF分辨率的移动物体和日历图像数据的情况下,根据本发明的各种代码转换方法几乎达到相同的结果。另外,与级联的像素域代码转换方法相比,根据本发明的各种代码转换方法在高比特率具有约0.2dB的PNSR损失而在较低比特率具有上至0.9dB的PNSR损失。
图9示出当使用级联的像素域代码转换方法和根据本发明的各种代码转换方法中的每个时,对具有QCIF分辨率的新闻图像数据和具有CIF分辨率的移动物体和日历图像数据进行代码转换所花费的时间。参照图9,根据本发明的各种代码转换方法对QCIF图像数据进行代码转换比级联的像素域代码转换方法快三又五分之一到四倍,并且对CIF图像数据进行代码转换比级联的像素域代码转换方法快三又三分之一到四倍。根据本发明的各种代码转换方法对QCIF图像数据和CIF图像数据进行代码转换所花费的时间量几乎相同。在图9中,垂直轴表示将300个MPEG-4帧编码成150个H.264帧所花费的时间量,而水平轴QP表示H.264量化系数。
根据本发明的代码转换方法可以被实施为计算机程序。基于在此提供的描述可以执行该计算机的代码和代码段,并将其存储在计算机可读介质中。当由计算机读取和执行时,可以执行根据本发明的代码转换方法。计算机可读介质可以包括磁存储介质、光学记录介质、和载波介质。
根据如上所述的本发明,可以通过简化整个代码转换过程而不降低画面质量来大大减小将MPEG-4图像数据转换成H.264图像数据的所花费的时间。
尽管参照本发明示例性的实施例已经具体显示和描述了本发明,本领域的普通技术人员还是应该理解,在不脱离由下面的权利要求所限定的本发明的精神和范围的情况下,可以对本发明的形式和细节进行各种变化。
权利要求
1.一种代码转换方法包括(a)对以第一编码方法编码的图像进行解码,然后得到该图像的每块的编码模式信息和运动矢量信息;(b)基于已解码的图像的每块的编码模式信息选择第二编码方法的可用编码模式中的至少一种;和(c)以至少一种所选择的编码模式对已解码的图像的每块执行运动估计过程,然后基于运功估计的结果确定用于已解码的图像的每块的最佳编码模式。
2.根据权利要求1所述的代码转换方法,还包括(d)以最佳编码模式对已解码的图像的每块执行运动估计过程,并且输出以用于已解码的图像的第二编码方法编码的数据。
3.根据权利要求1所述的代码转换方法,其中,在(b)中,如果已解码的图像的每块的编码模式是帧间16×16模式,那么选择帧间16×16模式、帧间16×8模式、帧间8×16模式、和帧内16×16模式作为用于第二编码方法的编码模式,并且如果已解码的图像的每块的编码模式是帧间8×8模式,那么选择帧间8×8模式、帧间8×4模式、帧间4×8模式、和帧内4×4模式作为用于第二编码方法的编码模式。
4.根据权利要求1所述的代码转换方法,其中,在(b)中,如果已解码的图像的每块的编码模式是跳过模式,那么选择跳过模式、帧间16×16模式、和帧内16×16模式作为用于第二编码方法的编码模式,并且如果已解码的图像的每块的编码模式是帧内模式,那么选择帧内16×16模式和帧内8×8模式作为用于第二编码方法的编码模式。
5.根据权利要求1所述的代码转换方法,其中,在(c)中,通过以至少一种所选的编码模式对已解码的图像的当前帧的当前块执行运动估计过程,来再次调整已解码的图像的当前帧的当前块的运动矢量。
6.根据权利要求1所述的代码转换方法,其中,在(c)中,通过使用率失真优化方法来确定已解码的图像的每块的编码模式。
7.根据权利要求6所述的代码转换方法,其中,如果至少一种所选的代码转换模式是帧内16×16模式或者是帧内8×8模式,那么基于计算已解码的图像的当前块的像素值和已解码的图像的先前帧中的相应的块的像素值的均方差的结果,来确定已解码的图像的当前帧中的当前块的编码模式。
8.根据权利要求5所述的代码转换方法,其中,在(c)中,通过使用与当前块相应的先前帧中的预定块交叠先前帧的块的的区域和被预定块交叠的块的运动矢量,以至少一种所选择的编码模式来得到当前块的运动矢量。
9.根据权利要求8所述的代码转换方法,其中,在(c)中,通过将预定块交叠先前帧的块的区域和被预定块交叠的块的运动矢量相乘,并且然后将相乘的结果平均,来得到当前块的运动矢量。
10.根据权利要求8所述的代码转换方法,其中,在(c)中,如果被预定块交叠的块是16×16块,那么将相应块的运动矢量加权。
11.根据权利要求8所述的代码转换方法,其中,在(c)中,如果交叠当前帧的块的预定块的每个区域具有1个像素的长度和1个像素的宽度,那么将被预定块交叠的块从当前块的运动矢量的计算排除。
12.根据权利要求1所述的代码转换方法,其中,第一编码方法是MPEG-4编码方法,而第二编码方法是H.264编码方法。
13.一种代码转换方法,包括(a)通过使用先前帧中与当前块相应的预定块交叠先前帧中的块的区域和被该预定块交叠的块的编码模式信息,来计算当前块的运动矢量。
14.根据权利要求13所述的代码转换方法,其中,在(a)中,通过将该预定块交叠当前帧的块的区域和被预定块交叠的块的运动矢量相乘,然后将相乘的结果平均,来得到当前块的运动矢量。
15.根据权利要求13所述的代码转换方法,其中,在(a)中,如果被预定块交叠的块是16×16块,那么将相应块的运动矢量加权。
16.根据权利要求13所述的代码转换方法,其中,在(a)中,如果预定块交叠先前帧的块的区域的每个具有1个像素的长度和1个像素的宽度,那么将被预定块交叠的块从当前块的运动矢量的计算排除。
17.一种代码转换装置,包括解码器,其对第一编码方法编码的图像进行解码,并且输出该图像的每块的编码模式信息和运动矢量信息;和编码器,其基于已解码的图像的每块的编码模式信息选择第二编码方法的可用编码模式的至少一种,以至少一种所选择的编码模式对已解码的图像的每块执行运动估计过程,基于运动估计的结果确定已解码的图像的每块的最佳编码模式,以最佳编码模式对已解码的图像的每块执行运动估计过程,并且输出以用于已编码的图像的第二编码方法编码的数据。
18.根据权利要求17所述的代码转换装置,其中,如果已解码的图像的每块的编码模式是帧间16×16模式,那么编码器选择帧间16×16模式、帧间16×8模式、帧间8×16模式、和帧内16×16模式作为用于第二编码方法的编码模式,并且如果已解码的图像的每块的编码模式是帧间8×8模式,那么编码器选择帧间8×8模式、帧间8×4模式、帧间4×8模式、和帧内4×4模式作为用于第二编码方法的编码模式。
19.根据权利要求17所述的代码转换装置,其中,如果已解码的图像的每块的编码模式是跳过模式,那么编码器选择跳过模式、帧间16×16模式、和帧内16×16模式作为用于第二编码方法的编码模式,并且如果已解码的图像的每块的编码模式是帧内模式,那么编码器选择帧内16×16模式和帧内8×8模式作为用于第二编码方法的编码模式。
20.根据权利要求17所述的代码转换装置,其中,编码器通过使用预定帧交叠先前帧的块的区域和被该预定块交叠的块的编码模式信息,来计算当前块的运动矢量。
21.根据权利要求20所述的代码转换装置,其中,编码器通过将该预定块交叠当前帧的块的区域和被预定块交叠的块的运动矢量相乘以产生相乘的结果,并且然后将相乘的结果平均,来得到当前块的运动矢量。
22.根据权利要求20所述的代码转换装置,其中,如果被预定块交叠的块是16×16块,那么编码器将相应块的运动矢量加权。
23.根据权利要求20所述的代码转换装置,其中,如果预定块交叠先前帧的块的预定块的区域的每个具有1个像素的长度和1个像素的宽度,那么编码器将被预定块交叠的块从当前块的运动矢量的计算排除。
24.根据权利要求17所述的代码转换装置,其中,第一编码方法是MPEG-4编码方法,而第二编码方法是H.264编码方法。
全文摘要
一种代码转换方法及装置和一种运动矢量内插方法。该代码转换方法及装置将运动画面数据从一种编码格式转换成另一种编码格式。该代码转换方法包括(a)对以第一编码方法编码的图像进行解码,然后得到该图像的每块的编码模式信息和运动矢量信息;(b)基于已解码的图像的每块的编码模式信息选择第二编码方法的可用编码模式中的至少一种;和(c)以至少一种所选择的编码模式对已解码的图像的每块执行运动估计过程,然后基于运功估计的结果确定用于已解码的图像的每块的最佳编码模式。
文档编号H04N7/26GK1691779SQ20051005392
公开日2005年11月2日 申请日期2005年3月14日 优先权日2004年3月12日
发明者李英烈, 李圣善, 有英焕 申请人:学校法人大洋学园, 三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1