视频代码转换方法和设备的制作方法

文档序号:7649510阅读:173来源:国知局
专利名称:视频代码转换方法和设备的制作方法
技术领域
本发明涉及一种视频代码转换(transcoding)的方法和设备,更具体地讲,涉及一种当将输入视频流转换成具有与输入视频流不同的图像组(GOP)结构的不同格式时从多个参考帧中高速选择合适的参考帧的方法。
背景技术
包括互联网的信息和通信技术(ICT)的发展增加了视频通信以及文本和语音通信。因为传统的面向文本的通信不能满足用户的各种需求,所以多媒体服务已增加,所述多媒体服务可提供各种信息,例如,文本、图像和音乐。由于多媒体数据较大的大小,所以多媒体数据需要大容量的存储介质。另外,需要宽的带宽来发送多媒体数据。因此,压缩编码方法对于发送包括文本、图像和音频的多媒体数据是必需的。
数据压缩的基本原理在于除去数据冗余。即,可通过去除图像中的相同颜色或对象的重复的空间冗余、当运动图像帧中相邻帧之间存在较小的改变时或当音频中重复相同的声音时发生时间冗余、或考虑人眼的感觉迟钝和对高频的感知的心理视觉冗余来压缩数据。在现有技术的视频编码方法中,使用基于运动补偿的时域滤波来去除视频数据的时间冗余,并使用空间变换来去除视频数据的空间冗余。
通过预定的量化处理对经过去除处理的视频数据的结果进行有损编码。然后,量化的结果最后通过熵编码处理被无损编码。
编码的视频数据可被发送到最后的终端,然后由最后的终端解码。然而,在将编码的视频数据发送到最后的终端之前,考虑到网络情况或最后的终端的性能,还可将编码的视频数据进行代码转换。例如,如果编码的视频数据不适合通过当前的网络被传输,则发送服务器修改视频数据的信噪比(SNR)、帧率、分辨率或编码方法(编解码器)。该处理称为“代码转换”。
现有技术的使用H.264算法的将运动图像专家组(MPEG-2)编码的视频数据进行代码转换的方法可分类为频域内的转换方法和像素域内的转换方法。通常,当输入格式和输出格式之间存在高的相似性时在代码转换处理中使用频域内的转换方法,当输入格式和输出格式之间存在低的相似性时使用像素域内的转换方法。具体地讲,像素域内的转换方法重新使用编码处理期间估计的现有的运动矢量。
然而,如果在代码转换处理之后改变了GOP的结构或运动矢量参考方法,则难以使用现有的运动矢量。为此,如果基于在代码转换处理中重构的图像重新计算运动矢量,则可花费大量的时间和资源。如果为了避免这种重新计算而参考隔一定距离的帧,则可比参考紧挨的前一帧产生更多的残余,从而增加比特率并降低图像质量。
即,当对具有不同GOP结构的视频流进行代码转换时,非常难以确定使用哪一帧作为参考帧以在计算复杂度、图像质量和比特率之间获得适当的平衡。

发明内容
本发明提供了一种当将输入视频流代码转换成具有与输入视频流的GOP结构不同的GOP结构的输出视频流时考虑代码转换速度和图像质量来选择适当的参考帧的方法(参考方法)和设备。
根据本发明的一方面,提供了一种将输入视频流代码转换成输出视频流的代码转换器。所述代码转换器包括重构单元,从输入视频流重构变换系数和视频帧;选择单元,基于变换系数的大小选择被视频帧参考的第一帧和位于与第一帧不同位置的第二帧之一;和编码单元,通过参考所选择的帧对重构的视频帧编码。
根据本发明的另一方面,提供了一种将输入视频流代码转换成输出视频流的方法。所述方法包括从输入视频流重构变换系数和视频帧;基于变换系数的大小选择被视频帧参考的第一帧和位于与第一帧不同位置的第二帧之一;和通过参考所选择的帧对重构的视频帧编码。


通过参照附图对本发明示例性实施例的详细描述,本发明的上述和其他方面将变得更加清楚,其中图1A示出MPEG-2视频主类的GOP结构;图1B示出H.264基线类的GOP结构;图2A和图2B示出H.264支持的多重参考的概念;图3A和图3B是解释在代码转换处理中选择参考帧的方法的示图;图4是根据本发明示例性实施例的代码转换器的方框图;图5是在图4的代码转换器中包括的重构单元的方框图;和图6是图4的代码转换器中包括的编码单元的方框图。
具体实施例方式
现在将参照附图更全面地描述本发明,在所述附图中示出本发明的示例性实施例。然而,还可以许多不同的形式来实现本发明,不应该将本发明解释为限于于此阐述的示例性实施例;此外,提供这些示例性实施例,以使本公开将是彻底的和完整的,并将本发明的发明构思全面传达给本领域的技术人员。
图1A示出MPEG-2视频主类(profile)的GOP结构。图1B示出H.264基线类(baseline profile)的GOP结构。参照图1A和图1B,双向(B)帧可参考位于B帧之前或B帧之后的帧内(I)帧或预测(P)帧,但不能参考另一B帧。然而,P帧可参考I帧或另一P帧。通常在一个GOP结构内执行这种参考。
同时,H.264基线类具有如图1B所示帧参考它紧挨的前一帧的GOP结构。通常,H.264基线类具有在单个GOP中可参考多个帧以及单个帧的GOP结构。
图2A和图2B示出H.264支持的多重参考的构思。参照图2A,当前P帧10可同时参考多个帧20和25。由于以宏块而不是帧为单位执行当前帧的运动矢量的估计和当前帧的残余的产生,所以可执行这种多重参考。
图2B示出当前P帧10中的宏块MB1和MB2分别参考不同帧20和25中的不同区域ref1和ref2。这样,由于对每个宏块选择适当的参考帧,所以H.264提供视频编码的多样性和适应性。
为了将图1A所示的输入视频代码转换成如图2B所示的具有与输入视频的GOP结构不同的GOP结构的输出视频,代码转换器必须重新计算输入视频的运动矢量。然而,如果重新计算运动矢量以便输出视频可参考紧挨的前一帧,则花费大量的计算时间。另一方面,如果为了避免这种重新计算而通过使用输入视频的参考方法来参考位于距输出视频大量距离的帧,则产生比参考紧挨的前一帧更多的残余,从而使图像质量降低或增加比特率。因此,在代码转换处理中需要在计算量和图像质量(或比特率)之间寻求适当的平衡。
图3A和图3B是解释在代码转换处理中选择参考帧的方法的示图。具体地讲,图3A示出在代码转换处理之前输入视频的结构。图3B示出在代码转换处理之后输出视频的结构。参照图3A,当前正被处理的帧是B2,运动矢量指示I帧。在MPEG-2结构中,B2帧的所有前向参考矢量指示I帧。另一方面,则如图3B所示的H.264结构中,宏块MB1的前向运动矢量mv1和MB2的前向运动运动矢量mv2指示I帧或P1帧。如果指示I帧的运动矢量mv2(I)没有产生比指示P1帧的运动矢量mv2(P1)所产生的残余显著多的残余,则可有利地选择mv2(I)以增加计算速度。如果运动矢量mv2(I)比运动矢量mv2(P1)产生显著多的残余,则可有利地选择运动矢量mv2(P1)。
根据本发明的示例性实施例,提供了一种为改变了GOP结构的代码转换处理选择适当的参考帧的方法。即,提供了一种当输出视频的规范如H.264的支持多重参考时确定输入视频的参考帧或紧挨的前一帧作为用于代码转换处理的参考帧的方法。如果使用输入视频的参考帧,则可重新使用输入视频的现有运动矢量,从而可实现高速转换。如果使用新的参考帧,则需要大量计算,但可实现较好的图像质量。在这点上,可通过在代码转换速度和图像质量之间寻求适当的平衡来执行最佳代码转换。
图4是根据本发明示例性实施例的代码转换器的方框图。参照图4,代码转换器100将输入视频流转换成输出视频流。为此,代码转换器100可包括重构单元110、选择单元120和编码单元130。
重构单元110从输入视频流重构变换系数和视频帧。选择单元120基于变换系数的大小来选择被视频帧参考的第一帧和位于与第一帧不同位置的第二帧之一。编码单元130通过参考所选择的帧对重构的视频帧编码。
图5是图4示出的重构单元110的方框图。参照图5,重构单元110可包括熵解码器111、去量化单元112、逆变换单元113和逆预测单元114。
熵解码器111通过使用诸如可变长解码(VLD)或算术解码的算法对输入视频流进行无损解码,并重构量化系数和运动矢量。
去量化单元112将重构的量化系数去量化。这种去量化处理是视频编码器执行的量化处理的逆处理。在去量化处理之后,可获得变换系数。将变换系数提供给选择单元120。
逆变换单元113通过使用诸如逆离散余弦变换(IDCT)或逆小波变换的逆空间变换方法对变换系数进行逆变换。
逆预测单元114通过使用熵解码器111重构的运动矢量对当前帧的参考帧执行运动补偿,并产生预测帧。将产生的预测帧添加到逆变换单元113执行的逆变换的结果中。从而,产生重构帧。
再参照图4,选择单元120基于重构单元110提供的变换系数来确定是使用被用作输入视频流中的参考帧的第一帧还是使用第二帧。为此,选择单元120基于变换系数计算阈值,并使用计算的阈值作为确定标准。
在本发明的示例性实施例中,将使用在帧内使用固定阈值的方法和在帧内使用可变阈值的方法作为示例,在所述在帧内使用可变阈值的方法中,阈值适应性地变化以使所述阈值可被实时应用。
使用固定阈值的方法在该示例性实施例中,在单个帧中阈值THg被固定。可以以各种方式来确定阈值THg。例如,可通过等式(1)给出阈值THg。
THg=VctlNΣm=0N-1Σi,j|Cm(i,j)|...(1)]]>其中,N指示帧中的块的数量,Cm(i,j)指示在第m块中坐标(i,j)位置处的变换系数。另外,Vct1指示可控制阈值THg的大小的控制参数(默认值=1.0)。每个块可具有作为DCT变换的单位的DCT块的大小或作为运动估计的单位的宏块的大小。
如果当前块的索引是k,则通过等式2定义用于选择参考帧的标准。

...(2)
其中,∑|Ck(i,j)|表示当前块中包括的变换系数的绝对值的和,Reforig表示第一帧用作在输入视频流中的当前块的参考帧,Ref0表示位于与第一帧不同位置的第二帧。优选地,第二帧可以是当前块所属的帧(当前帧)的紧挨的前一帧。
根据等式(2),选择与当前帧最近的帧作为具有大于平均值的能量(energy)的块的参考帧。因此,具有小于平均值的能量的块使用输入视频流中的运动矢量,反之,具有大于平均值的能量的块使用通过利用与当前帧相对较近的帧作为参考帧计算的新的运动矢量。这样,可在图像质量和代码转换之间寻求到适当的平衡。
考虑如等式(1)中未处理的块以及处理的块计算阈值的方法可能需要大量的计算。因此,如果将被处理的当前块的索引是k,则还可如等式(3)那样仅考虑当前处理的块来计算阈值THg。
THg=VctlkΣm=0kΣi,j|Cm(i,j)|...(3)]]>选择单元120以其为单位选择参考帧的块可具有与向运动矢量实际分配的宏块的大小不同的大小。在这种情况下,可需要对运动矢量合并(integrate)或分解(disintegrate)。
使用可变阈值的方法为了实时应用代码转换器,在时间界限之前代码转换器能否处理帧非常重要。在实时代码转换中,需要通过使用当前可用的计算时间作为因子来可变地调整阈值。即,如等式(4)所示,可通过将固定阈值THg乘以可变系数RTfactor来计算可变阈值THl。
THl=THg*RTfactor ...(4)根据等式(4),当很可能超过用于处理当前帧的时间界限时,可增加阈值THl,从而增加代码转换速度。如果在时间界限之前剩下足够的时间,则可减小阈值THl,从而提高图像质量。
可以以各种方式来确定可变系数RTfactor。如果当前正处理的块的索引和时间界限之前的剩余时间是将被考虑的因素,则可使用等式(5)来确定可变系数RTfactor。

其中,k指示当前处理的块的索引号(0≤k<N),N指示帧中包括的块的总数量。另外,Tdue指示必须完成当前帧的转换的时间,Tcur指示当前时间,帧率指示在图像再现期间每秒的帧数量。帧率是常数,但被乘以(Tdue-Tcur)以使(Tdue-Tcur)标准化。因此,等式(5)中的分子和分母中的每一个都具有0和1之间的值。根据等式(5),当前帧中剩余的将被处理的块的数量越多,可变系数RTfactor越大。因此,代码转换速度可被增加。另外,在时间界限之前剩余的时间越多,可变系数RTfactor越小。因此,代码转换速度可被降低,这导致较好的图像质量。
类似的,还可通过等式(6)来定义可变系数RTfactor。
RTfactor=1+((N-k)/N-(Tdue-Tcur)*帧率) ...(6)选择单元120将上述固定阈值或可变阈值与当前块中包括的变换系数的绝对值的和进行比较,并确定是使用输入视频流的参考帧(第一帧)和运动矢量还是通过参照新的帧(第二帧)来计算运动矢量。对每个块进行这种决定,并将这种决定提供给编码单元130作为参考帧信息。
反相运动矢量(reverse motion vector)近似前向运动矢量的方法已为大家所公知。因此,当不能获得前向运动矢量时,可将反相运动近似于前向运动矢量,可使用前向运动矢量来代替现有的运动矢量和参考帧。例如,如果B帧的宏块参考位于B帧之后的P帧的块,可选择与该块重叠的P帧的宏块之一。即,可选择与该块的最大部分重叠的宏块。然后,可获得P帧之前的I帧的选择的宏块的运动矢量。在这种情况下,可被B帧使用的I帧的运动矢量可以是P帧的块的运动矢量和P帧的最大重叠宏块的运动矢量(I帧的运动矢量)的和。
图6是图4中示出的编码单元130的方框图。参照图6,编码单元130可包括预测单元131、变换单元132、量化单元133和熵编码器134。
预测单元131通过使用参考帧信息和使用第一帧和第二帧之一作为参考帧来获得当前帧的每一块的运动矢量。第一帧指的是在重构单元110重构的帧中用作当前帧的参考帧的帧。第二帧指的是位于与第一帧不同的时间位置的帧。
当当前帧的块使用第一帧作为参考帧时,预测单元131将输入视频流的现有运动矢量分配给该块。如果该块使用第二帧作为参考帧,则预测单元131通过参考第二帧来估计运动矢量,并将估计的运动矢量分配给该块。
另外,预测单元131通过使用分配给当前帧的块的运动矢量对相应参考帧(第一帧或第二帧)执行运动补偿,并从而产生预测帧。然后,预测单元131从当前帧减去预测帧,产生残余。
变换单元132通过使用诸如DCT或小波变换的空间变换方法对产生的残余执行空间变换。在空间变换之后,获得变换系数。当使用DCT作为空间变换方法时,获得DCT系数。当使用小波变换作为空间变换方法时,获得小波系数。
量化单元133对变换单元132获得的变换系数进行量化,并产生量化系数。量化是将实数表示的变换系数划分成离散值表示的部分的处理。量化方法包括标量量化和矢量量化。具体地讲,相对简单的标量量化是将变换系数除以量化表中的相应值并对除的结果取最近的整数的处理。
熵编码器134对量化系数和预测单元131提供的运动矢量进行无损编码,并产生输出视频流。这里所使用的无损编码方法可以是算术编码或可变长编码(VLC)。
可将以上参照图4至图6描述的每个组件实现为软件组件(例如在存储器的预定区域中执行的程序、任务、类、子程序、进程、对象或执行线程)或硬件组件(例如,现场可编程门阵列(FPGA)或专业集成电路(ASIC))。另外,所述组件可由软件和硬件的结合构成。所述组件可以驻留在计算机可读存储介质上,或可分布于多个计算机。
根据本发明的示例性实施例,当将输入视频流代码转换成具有与输入视频流的GOP结构不同的GOP结构的不同格式时,可选择最佳参考帧。因此,可通过使用有限计算能力来实现相对高的图像质量或低的比特率。
尽管参照本发明的示例性实施例具体显示和描述了本发明,但是本领域的普通技术人员应该理解,在不脱离权利要求限定的本发明的精神和范围的情况下,可在形式和细节上进行各种改变。所述示例性实施例应该被认为仅仅为了描述的目的,而不是为了限制的目的。
权利要求
1.一种将输入视频流代码转换成输出视频流的代码转换器,所述代码转换器包括重构单元,从输入视频流重构变换系数和视频帧;选择单元,基于变换系数的大小选择被视频帧参考的第一帧和位于与第一帧不同位置的第二帧之一;和编码单元,通过参考所选择的帧对重构的视频帧编码。
2.如权利要求1所述的代码转换器,其中,第二帧位于紧挨所述视频帧之前。
3.如权利要求1所述的代码转换器,其中,输入视频流是运动图像专家组标准的视频流,输出视频流是H.264标准的视频流。
4.如权利要求1所述的代码转换器,其中,如果块的变换系数的绝对值的和不超过预定阈值,则选择单元选择第一帧作为该块的参考帧,如果块的变换系数的绝对值的和超过所述预定阈值,则选择单元选择第二帧作为该块的参考帧。
5.如权利要求4所述的代码转换器,其中,通过将单个帧中包括的变换系数的绝对值的和除以块的数量来获得所述阈值。
6.如权利要求4所述的代码转换器,其中,通过将单个帧中包括的变换系数中的当前处理的块中包括的变换系数的绝对值的和除以所述当前处理的块的数量来获得所述阈值。
7.如权利要求4所述的代码转换器,其中,通过将单个帧中包括的变换系数的绝对值的和除以块的数量而获得的值乘以预定的可变系数来获得所述阈值,通过所述单个帧中剩余的将被处理的块的数量和时间界限之前的剩余时间来确定所述可变系数。
8.如权利要求7所述的代码转换器,其中,通过将剩余块的数量除以所述单个帧中包括的块的数量而获得的值除以通过将所述剩余时间乘以帧率而获得的值来获得所述可变系数。
9.如权利要求1所述的代码转换器,其中,如果所选择的帧是第一帧,则编码单元使用输入视频流的运动矢量,如果所选择的帧是第二帧,则编码单元通过参照第二帧来估计运动矢量。
10.如权利要求1所述的代码转换器,其中,重构单元包括熵解码器,对输入视频流解码,并重构量化系数和运动矢量;去量化单元,将量化系数去量化以获得变换系数;逆变换单元,对变换系数进行逆变换;和逆预测单元,通过使用运动矢量对参考帧执行运动补偿以产生预测帧,并通过将预测帧加上逆变换的结果来产生重构的视频帧。
11.如权利要求1所述的代码转换器,其中,编码单元包括预测单元,通过使用第一帧和第二帧之一作为参考帧来获得分配给重构的视频帧的块的运动矢量,通过使用运动矢量对参考帧执行运动补偿以产生预测帧,并通过从重构的视频帧中减去预测帧产生残余;变换单元,对所述残余执行空间变换以获得变换系数;量化单元,对变换系数进行量化以产生量化系数;和熵编码器,对量化系数和运动矢量编码以产生输出视频流。
12.一种将输入视频流代码转换成输出视频流的方法,所述方法包括从输入视频流重构变换系数和视频帧;基于变换系数的大小选择被视频帧参考的第一帧和位于与第一帧不同位置的第二帧之一;和通过参考所选择的帧对重构的视频帧编码。
13.如权利要求12所述的方法,其中,第二帧位于紧挨所述视频帧之前。
14.如权利要求12所述的方法,其中,输入视频流是运动图像专家组标准的视频流,输出视频流是H.264标准的视频流。
15.如权利要求12所述的方法,其中,选择第一帧和第二帧之一的步骤包括如果块的变换系数的绝对值的和不超过预定阈值,则选择第一帧作为该块的参考帧;和如果块的变换系数的绝对值的和超过所述预定阈值,则选择第二帧作为该块的参考帧。
16.如权利要求15所述的方法,其中,通过将单个帧中包括的变换系数的绝对值的和除以块的数量来获得所述阈值。
17.如权利要求15所述的方法,其中,通过将单个帧中包括的变换系数中的当前处理的块中包括的变换系数的绝对值的和除以所述当前处理的块的数量来获得所述阈值。
18.如权利要求15所述的方法,其中,通过将单个帧中包括的变换系数的绝对值的和除以块的数量而获得的值乘以预定的可变系数来获得所述阈值,通过所述单个帧中剩余的将被处理的块的数量和时间界限之前的剩余时间来确定所述可变系数。
19.如权利要求18所述的方法,其中,通过将剩余块的数量除以所述单个帧中包括的块的数量而获得的值除以通过将所述剩余时间乘以帧率而获得的值来获得所述可变系数。
20.如权利要求12所述的方法,其中,对视频帧编码的步骤包括如果所选择的帧是第一帧,则使用输入视频流的运动矢量,如果所选择的帧是第二帧,则通过参照第二帧来估计运动矢量。
全文摘要
提供了一种当将输入视频流代码转换成具有与输入视频流的图像组(GOP)结构不同的GOP结构的不同格式时从多个参考帧中高速选择适当的参考帧的方法和设备。将输入视频流代码转换成输出视频流的代码转换器包括重构单元,从输入视频流重构变换系数和视频帧;选择单元,基于变换系数的大小选择被视频帧参考的第一帧和位于与第一帧不同位置的第二帧之一;和编码单元,通过参考所选择的帧对重构的视频帧编码。
文档编号H04N7/32GK101026758SQ20071007918
公开日2007年8月29日 申请日期2007年2月15日 优先权日2006年2月24日
发明者辛圭桓 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1