代码转换器和代码转换方法 本申请要求于2001年12月18日在韩国工业产权局申请的韩国专利申请2001-80812的优先权,该申请援引在这里供参考。
【技术领域】
本发明涉及代码转换器和代码转换方法,尤其涉及在代码转换模式中用于判定模式和运动矢量的代码转换器和代码转换模式中判定运动矢量的方法。
背景技术
运动图象信号具有非常大的数据量,因此在压缩编码运动图象信号并变换运动图象信号为比特流后,发送或记录数据。作为一种压缩编码方法,通常使用国际标准化组织(ISO)11172运动图象专家组(MPEG)方法。
图1是常规代码转换器的框图。参照图1,常规代码转换器包括VLD(可变长度解码器)101、IQ(反量化器)103a和103b、IDCT(反离散余弦变换器)105a和105b、加法器107a和107b、MC(运动补偿器)109a和109b、减法器111、DCT(离散余弦变换器)113、量化器115、VLC(可变长度编码器)117、和运动矢量信息变换器119。
VLD 101通过标记常产生的数据为短符号和不常产生的数据为相对长符号,以减少整个数据流量。作为一个图象,VLD 101减少了仅由DCT系数构成的图象中相当多的比特量。VLD 101执行霍夫曼(Huffman)编码以便进一步减少比特量。
IQ 103a反量化由VLD 101编码的DCT系数。IQ 103a将反量化的DCT系数发送到IDCT 105a。IDCT 105a将通过反DCT变换反量化的DCT系数得到的估算误差信号提供到加法器107a。加法器107a将输入到加法器107a地估算误差信号和由MC 109a提供的MC估算误差信号相加。‘估算’意味着计算帧和字段之间的象素数据差。换言之,搜索当前帧和字段中具有最佳匹配数据的宏块和先前帧和字段中的宏块,并且对宏块的搜索的运动方向由运动矢量检测。
从输入运动矢量来说,MC 109a通过编码的次序从先前帧或多个先前帧估算运动补偿,并发送MC估算信号到加法器107a。加法器107a相加输入估算误差信号和MC估算误差信号,并经整数换算器110发送相加的信号到减法器111。减法器111从换算的估算误差信号中减去第二MC估算信号,并提供结果估算误差信号作为到DCT 113的输入。DCT 113DCT变换输入估算误差信号,并将得到的DCT系数提供到量化器115。量化器115量化输入的DCT系数。量化器115将量化的DCT系数提供到VLC 117并同时到IQ103b。IQ 103b反量化输入的DCT系数。IQ 103b将反量化的DCT系数提供到IDCT 105b。IDCT 105b反DCT变换输入的DCT系数,并提供估算误差信号作为到加法器107b的输入。加法器107b相加输入的估算误差信号和估算信号,并将得到的信号提供到MC 109b。从输入的运动矢量来说,MC 109b通过编码的次序从前帧或多个前帧估算运动补偿。即,MC 109b计算相对于各连续输入图象的输入运动矢量,即各个帧,并根据计算的运动矢量估算运动补偿。编码的次序意味着由MC 109b处理的输入图象信号的次序。MC 109b将得到的估算信号提供到减法器111,并同时到加法器107b。VLC 117可变长度编码输入图象编码类型、运动矢量、和量化的DCT系数,并输出得到的比特流。运动矢量信息发送器119变换由VLD 101提供的值(运动矢量信息)为由编码器可用的适当形式。
但是,常规代码转换器仅支持2N倍数或整数倍数的换算比例来重新使用来自输入比特流的运动矢量。因此,因为按图2所示常规代码转换器无法考虑非整数倍数的换算,所以存在常规代码转换器不适合支持各种解的代码转换器的应用的缺点。另外,如图3所示,常规代码转换器仅考虑在运动估算中的运动矢量,以减少计算的复杂性,但不能考虑对判定宏块模式的计算要求,因此常规代码转换器的应用受到限制。
【发明内容】
本发明已克服上述现有技术的问题。因此,本发明的目的是提供一种改进的代码转换器和代码转换方法,该方法换算类似运动图象专家组MPEG-2的块单元中具有运动估算的输入比特流,并根据考虑运动矢量和宏块模式的确定结果,以减少计算要求,并且保持图象质量不降低。
本发明的另外的目的和优点将在如下的说明书部分描述,并且从说明书中可以看出,或通过本发明的实践可以学习到。
本发明的上述和/或其它目的是通过一种代码转换器实现的,该代码转换器包括:模式判定单元,根据与输入的宏块中的参考帧重叠的宏块的区和重叠宏块的模式判定输出比特流的宏块模式;和运动矢量判定单元,根据与重叠相关的各宏块的运动矢量判定输出宏块的参考运动矢量。
模式判定单元将重叠的各宏块区与对应于各自重叠宏块的加权值相乘,并判定输出宏块的模式为帧内(intra),在这种情况下通过将各区与加权值相乘获得的结果之和的帧内比例超过一个预定值,并且加权值是重叠宏块区与对应输入宏块的整个区的比。
模式判定单元包括运动类型判定单元,该单元根据输入宏块的运动类型判定输出宏块的运动类型。运动类型判定单元判定输出宏块的运动类型为字段,在该字段中重叠宏块的运动类型都是字段的并且对应于相应字段的运动矢量的值都是相同的。
运动矢量判定单元根据与各输入宏块中的参考帧重叠的宏块区和运动矢量的比,通过如下数学表达式判定输出宏块的参考运动矢量:BMVi=Σm=0MMVmwm×sf]]>
其中BMVi是输出宏块的第I参考运动矢量,
i=0、1、...、MB-水平尺寸×MB_垂直尺寸-1,
MVm是与重叠宏块相关的第m运动矢量,
Wm是相对于第m运动矢量的加权值,
sf(0<sf<1)是用于判定输出比特流的图象的尺寸的值,及
MB是重叠宏块的区。
如果输出宏块的运动类型被判定为字段,运动矢量判定单元给偶数字段运动矢量加+1(象素单元),其中输出宏块的偶数字段运动矢量是根据参考帧的奇数字段运动矢量。
如果输出宏块的运动类型被判定为字段,运动矢量判定单元从重叠的奇数字段运动矢量中减-1(象素单元),其中输出宏块的奇数字段运动矢量是根据参考帧的偶数字段运动矢量。
本发明的上述和其它目的还通过提供一种代码转换方法实现,其包括根据各输入宏块中的与参考帧重叠的宏块区和重叠宏块的模式,判定输出比特流的宏块模式;和根据与重叠宏块相关的运动矢量,判定输出宏块的参考运动矢量。
【附图说明】
通过下面结合示例性地示出一例的附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1是常规代码转换器的框图;
图2A是表示根据其中换算非整数倍的图1的代码转换器的代码转换的问题的图;
图2B是表示根据常规方法的另一个代码转换的问题;
图3是用于解释使用在本发明的描述中的术语的图;
图4是示意性表示根据本发明的代码转换器的图;
图5是表示用图4的代码转换器执行运动估算的框图;
图6是表示利用图5的代码转换器的代码转换方法的流程图;
图7A到7D是表示补偿宏块的运动矢量的例子的图;
图8表示相对于换算的足球图象的结果Y单元的平均PSNR;及
图9是表示根据本发明的方法和常规重复编码或代码转换方法的平均峰值信号对噪声比的比较结果。
【具体实施方式】
现详细描述附图中所示的本发明的实施例,图中全部相同标号指示相同的部件。
在本发明中,利用相邻帧(字段)之间的相关,运动估算获得相邻帧(字段)之间的象素数据差。即,通过比较当前帧与先前帧,搜索对应于当前帧的预定宏块的先前帧的宏块,检测搜索的先前帧的宏块的运动矢量并根据这些检测的运动矢量估算下一帧的宏块的运动,运动估算估算下一帧的宏块的运动。在这里使用的参考帧是指与当前帧进行比较的先前帧。
现参照图3,原始分辨率的参考帧150具有一些相关的非换算宏块B1到B16。当前输入帧的换算宏块155由叠加在正方形B1到B16上的虚线表示。对应于非换算宏块的至少一部分的换算宏块155的区域被认为重叠非换算宏块。因此,换算的宏块155完全重叠在非换算宏块B6、B7、B10和B11上,并且部分重叠在非换算宏块B1、B2、B3、B4、B5、B8、B9、B12、B13、B14、B15和B16上。
图4是表示根据本发明的代码转换器的示意图。图5是描述用图4的代码转换器执行运动估算的框图。
参照图4和5,代码转换器包括:VLD 201、IQ 203a和203b、IDCT 205a和205b、加法器207a和207b、MC 209a和209b、换算单元210、减法器211、DCT 213、量化器215、VLC217、和BMV(基本运动矢量)219。VLD 201、IQ 203a和203b、IDCT 205a和205b、加法器207a和207b、MC 209a和209b、减法器211、DCT 213、量化器215、VLC217的结构和操作是分别与对应的常规VLD 101、IQ 103a和103b、IDCT 105a和105b、加法器107a和107b、MC 109a和109b、减法器111、DCT 113、量化器115、VLC 117的结构和操作相同,因此上述部件的结构和操作将不再重复了。
根据本发明的代码转换器中,如图5所示,换算单元210包括:模式判定单元501、运动类型判定单元501a、换算器502a、运动矢量判定单元503、图象质量优选模式选择单元505、和运动矢量补偿单元507。
模式判定单元501根据与参考帧的非换算宏块相重叠的换算宏块的区域和重叠宏块的模式,判定输出比特流的宏块的模式。此刻,宏块的模式是指比特流中图象信号输入的模式,即,帧内编码模式、预测编码模式、和双向预测编码模式。另外,宏块的模式包括:当运动矢量估算为帧矢量或者字段矢量时,是否有图象信号输入,和如果输入图象是帧矢量,该字段是顶(top)字段还是底(bottom)字段的信息。
模式判定单元501将重叠宏块的区域和对应的重叠宏块的加权值相乘。当从相乘的结果值之和中帧内的比例高于预定值(例如,在0.5换算的情况下帧内的比例大于25%)时,模式判定单元501判定输出宏块的模式为帧内编码模式。这里,加权值为各非换算宏块对应的区与参考帧的换算宏块的整个区之比。
运动类型判定单元501a根据输入宏块的运动类型,判定输出宏块的运动类型。运动类型判定单元501a判定输出宏块的运动类型为字段,其中各重叠宏块的运动类型所有都是字段并且对应于相应字段的运动矢量的值是相同的。
运动矢量判定单元503根据相对于重叠宏块的运动矢量,判定输出宏块的参考运动矢量。图象质量优选模式选择单元505从用户接收图象质量优选命令。在图象质量优选命令是通过图象质量优选模式选择单元505发送的情况下,运动矢量补偿单元507根据判定的参考运动矢量补偿输出宏块的运动矢量。判定的运动矢量被发送到运动矢量补偿单元507。运动矢量补偿单元507通过运动矢量判定单元503接收判定的运动矢量并执行±2或±1搜索(象素单元)和半象素单元的细化。
换算器502换算输入图象。即,换算器502在尺寸上将解码图象信号改变为要求的比例。BMV 219从输入比特流的宏块中检测参考运动矢量并提供参考运动矢量到MC 209a和209b和VLC 217。由BMV 219检测的参考运动矢量被用作由MC 209b和VLC 217执行信号处理的参考点。
图6是表示根据图5的代码转换方法的流程图。参照图6将描述根据本发明的代码转换器的操作。
当输入比特流要进行代码转换时,模式判定单元501将输入比特流的换算的宏块与非换算的宏块进行比较,并根据各自重叠宏块区和各自重叠宏块模式,判定输出比特流的宏块模式。见图3及其有关重叠宏块术语的含义的描述。这里,模式判定单元501将各自重叠宏块区与对应于重叠宏块的加权值相乘(S601)。参照图3,对应于重叠宏块的加权值意味着对应于由虚线指示的区域155内每个宏块的加权值。模式判定单元501相加相乘的结果,并当相乘的结果值之和中帧内的比例大于预定阈值时判定输出宏块的模式为帧内(S603)。输出宏块可能有帧内模式或帧间(inter)模式。结果值之和中帧内的比例是指对现存于图3的区域155中重叠宏块的帧内的比例。当相乘的结果值之和中帧内的比例低于预定值时,模式判定单元501判定输出宏块的模式为帧间(S603)。此时,加权值意味着每个重叠宏块的区域相对于输入宏块的整个区的比率。通过如下数学表达式(1)、(2)和(3)可以得到加权值。
S=宏块的宽度×宏块的高度 ...(1)S=Σm=0MSm···(2)]]>W=Σm=0MWm=Σm=0MSmS=1···(3)]]>
其中,‘S’是宏块的区域,‘Sm’是重叠宏块的区域,‘M’是换算宏块的数,‘Wm’是对应于重叠宏块的区域的加权值,和‘W’是加权值之和。
运动类型判定单元501a根据输入比特流的宏块的运动类型判定输出宏块的运动类型(S605)。这里,当与输入比特流的参考帧相重叠的宏块的运动类型是字段模式并且对应于各字段的每个的运动矢量值都相同时,运动类型判定单元501a实现判定输出宏块的运动类型为字段。另外,除了利用上述方法将宏块的运动类型判定为字段的情况下,运动类型判定单元501a判定输出宏块的运动类型为帧。
运动矢量判定单元503根据相对于重叠的宏块的运动矢量,判定输出宏块的参考运动矢量。运动矢量判定单元503根据区域和各输入宏块中与参考帧重叠的相应宏块的运动矢量的比,通过数学表达式(4)判定输出宏块的参考运动矢量。BMVi=Σm=0MMVmwm×sf···(4)]]>
其中,‘BMVi’是输出宏块的第i参考运动矢量,‘i’是0、1、...、MB水平尺寸×MB垂直尺寸-1;MVm是与重叠宏块相关的第m运动矢量;Wm是相对于第m运动矢量的加权值;‘sf(0<sf<1)是用于判定输出比特流的图象尺寸的值的值;和MB是重叠宏块的区。
图象质量优选模式选择单元505从用户接收图象质量优选命令。其中图象质量优选命令是通过图象质量优选模式选择单元505发送的(S600),运动矢量补偿单元507根据判定的参考运动矢量补偿输出宏块的运动矢量(S611)。在这种情况下,运动矢量补偿单元507根据由运动矢量判定单元501判定的参考运动矢量,通过数学表达式(5a)和(5b)计算补偿输出宏块的运动矢量的运动矢量初始值。
init_mvx=BMV[r][s][0]/2 ...(5a)
init_mvy=BMV[r][s][1]/2 ...(5b) 0 1 r MB中的第一矢量 MB中的第二矢量 s 向前运动 向后运动 t 水平 垂直
表1
BMV[r][s][t]中各指数的含义
表达式(5a)中,‘init_mvx’是运动矢量初始值的x值,和表达式(5b)中,‘init_mvy’是运动矢量初始值的y值,和‘BMV’是参考运动矢量。
因为运动矢量是半象素单元,当参考运动矢量用2除时,运动矢量初始值是象素。在这种情况下,运动矢量初始值意味着满足数学表达式(6a)、(6b)、(6c)和(6d)的条件的运动搜索区的中心值。
sx=sy=2(±2或±1像素) ...(6a)
sx+init_mvx>sxdec,sx=sxdec-init_mvx ...(6b)
sy+init_mvy>sydec,sy=sydec-init_mvy ...(6c)
sxdec init_mvx,sydec init_mvy ...(6d)
其中‘sx’‘sy’是编码中的运动矢量搜索区,‘sxdec’和‘sydec’是来自输入到解码器的比特流的‘f_code[s][t]’的判定值。在这种情况下,‘f_code’是在‘MPEG-1’和‘MPEG-2’中定义的参数,‘f_code’的值在‘MPEG-1’下具有1到7的范围,和在‘MPEG-2’下具有1到9的范围。
在隔行视频中,有时,当前判定的宏块模式和输出和在对应区中输入宏块的运动矢量的运动矢量的信息不一致。为克服上述现象,运动矢量判定单元503补偿输出运动矢量。补偿宏块运动矢量的方法以例子的方式表示在图7A到7D中。图7A到7D的右侧表示宏块的每个字段,并且左侧表示参考帧的每个字段。例如,当判定输出宏块的运动类型是字段时,在输出宏块的偶数字段运动矢量是根据参考帧的奇数字段运动矢量的情况下,运动矢量判定单元503给输出宏块的偶数字段运动矢量加+2(半象素单元)(图7B)。另外,当判定输出宏块的运动类型是字段时,在输出宏块的奇数字段运动矢量是根据参考帧的偶数字段运动矢量的情况下,运动矢量判定单元503给输出宏块的奇数字段运动矢量加-2(半象素单元)(图7C)。这里,+2和-2值是由参考帧的偶数/奇数字段和输出宏块的奇数/偶数字段之间的总相位差值设定的。补偿的运动矢量被发送到运动矢量补偿单元507。在运动矢量补偿单元507接收由运动矢量判定单元503补偿的运动矢量后,运动矢量补偿单元507执行±2或±1搜索(象素单元)或半象素单元细化。运动矢量补偿单元507可以执行与运动矢量补偿单元507利用较宽的搜索区的执行细化程度一样的更精确的细化。
除了根据参考帧的偶数字段输出宏块的奇数字段,或根据参考帧的奇数字段输出宏块的偶数字段外,不需要由运动矢量判定单元503补偿。在0.5换算处理的情况下,尚未被换算处理的输入宏块的帧运动矢量可以利用数学表达式(7)计算。
dec_MV[0][s][t]=(dec_MV[0][s][t]+dec_MV[1][s][t])/2+0.5 ...(7)
其中dec_MV是未被换算的运动矢量。当输入图象质量优选命令时,由于运动矢量判定单元501通过数学表达式(7)替代数学表达式(4)计算的值,运动矢量判定单元501可以计算最后参考运动矢量。
在基于块的运动估算中,数学表达式(8a)和(8b)用于计算第k宏块的运动矢量(MVx、MVy)。
(MVx,MVy)=arg min(m,n)∈S SADk(m,n) ...(8a)SADk(m,n)=Σi=015Σj=015|Fij-Fi+m,j+nR|···(8b)]]>
其中m和n分别是运动矢量的水平分量和垂直分量,
运动矢量(MVx、MVy)的值在搜索区S内,
Fij是i行和j列的亮度值,
FRi+m,j+n是参考帧/字段的亮度值,和
SAD是绝对差之和。
当运动矢量的搜索区在水平方向是±sx并在垂直方向是±sy、并且数学表达式8a和8b是代价函数时,一个宏块的运动计算要求是(2sx+1)×(2sy+1)。
根据本发明的代码转换器,在输入比特流是隔行视频和帧图象时,判定一帧/字段中宏块的模式需要的值不需要像常规计算方法那样,对所有参考帧和当前帧、参考帧的偶数字段和当前帧、参考帧的奇数字段和当前帧、参考帧的偶数字段和当前帧的奇数字段以及参考帧的奇数字段和当前帧的偶数字段进行计算。换言之,根据本发明的代码转换器不必须重复计算处理来判定宏块的模式和运动矢量,并且计算要求明显地减少。 参考区 计算要求 帧到帧 (2sx+1)×(2sy+1)×h×v 字段顶到字段顶 [(2sx+1)×(2sy+1)×h×v]/2 字段顶到字段底 [(2sx+1)×(2sy+1)×h×v]/2 字段底到字段顶 [(2sx+1)×(2sy+1)×h×v]/2 字段底到字段底 [(2sx+1)×(2sy+1)×h×v]/2
表1
表1表示根据参考区对计算运动矢量的计算要求,其中h是图象的水平尺寸,v是图象的垂直尺寸。
常规“全搜索”方法的水平sx和垂直sy和本发明的水平sx′和垂直sy′的搜索区的关系是sx=axsx′和sy=aysy′,其中ax和ay是常数。要求的获得运动矢量的计算量可以按数学表达式(9)表示。
(2sx+1)×(2sy+1)×h×v+4×1/2×(2sx+1)×(2sy+1)×h×v ...(9)
重排数学表达式(9)得到数学表达式(10),
3×(2sx+1)×(2sy+1)×h×v ...(10)
为识别常规“全搜索”方法要求的计算量与本发明要求的计算量之间的差别,可以假设sx=sy并且sx由axsx′替代。然后,给出3×(4axsx′2)作为按“全搜索”方法的计算要求。即,作为最高阶项从表达式10得到3×(4axsx′2)被认为是有效值。另一方面,本发明的代码转换器的计算要求变为(4sx′2),其作为最高阶项根据表达式8从(2sx+1)×(2sy+1)的计算要求得到,被认为是有效值。
为了比较本发明和常规方法的能力,使用一般用于图象处理的乒乓球(450帧)、移动(mobile)和日历(135帧)、和足球(60帧)的CCIR 6 MPEG-2测试图象标准。乒乓球图象用于估算较简单的运动,移动的和日历用于估算复杂的运动,并且足球用于估算快速的运动。图象被编码为704×480象素帧图象和6Mbps MPEG-2比特流。表2和3表示重新编码模式方法、全搜索模式方法和根据本发明的快速模式方法的比较数据。表2表示对运动估算要求的CPU时间(秒)并且表3表示PSNR(峰信号对噪声比)。包含模式和全搜索MV方法的结果来比较宏块的模式判定和常规重新-编码方法。通过用于重新-编码方法的全搜索方法计算运动矢量。 换算 CPU时间 重新-编码 模式和全搜 索MV 快速模式乒乓球 0.75 86.85 35.74 10.11 0.5 33.98 14.54 4.67 0.375 17.66 7.6 2.61移动和日历 0.75 75.45 29.83 9.96 0.5 31.07 12.52 4.32 0.375 15.48 6.47 2.52足球 0.75 88.69 38.44 9.55 0.5 38.78 17.08 4.29 0.375 21.58 9.61 2.74
表2 换算 PSNR 重新-编码 模式和全搜 索MV 快速模式乒乓球 0.75 38.143 38.041 37.761 差 0 -0.129 -0.382 0.5 36.554 36.421 36.191 差 0 -0.133 -0.363 0.375 37.735 37.485 37.356 差 0 -0.25 -0.379移动和日历 0.75 33.502 33.22 33.244 差 0 -0.282 -0.258 0.5 31.2 30.927 30.974 差 0 -0.273 -0.226 0.375 33.009 32.826 32.861 差 0 -0.183 -0.148足球 0.75 34.894 34.582 34.578 差 0 -0.312 -0.316 0.5 32.24 32.02 31.919 差 0 -0.203 -0.304 0.375 32.38 32.131 31.963 差 0 -0.249 -0.417
表3
图8是表示相对于足球图象的以分贝为单元的平均PSNR的表。比较对于重新编码方法、快速模式(本发明)方法和重新使用方法的每种的0.75、0.5和0.375换算的值。表示出对各种换算的每种的不同值。一组对于每种换算的差值比较快速模式方法和重新编码方法,和另一组对于每种换算的差值比较每种换算的重新使用方法和重新编码方法。相对于已用0.75、0.5和0.375换算率换算的足球图象结果的Y单元确定表示在图8的PSNR值,并且从6Mbps代码转换为1.5Mbps。Y单元表示用作MPEG方法中的一个参数的亮度。另外,在图9表示出本发明的方法与常规重新编码方法之间的平均PSNR的比较结果。
如上所述,按照本发明的代码转换器,可以编码几乎和输入帧相同的图象质量并且与常规运动估算方法相比显著地减少计算要求。
本发明不限于上述实施例,在不脱离本发明范围的情况下,可以进行各种变形和修改。