视频编码设备和用于自适应插入关键帧的方法

文档序号:7609994阅读:192来源:国知局
专利名称:视频编码设备和用于自适应插入关键帧的方法
技术领域
本发明涉及视频压缩,更具体地讲,涉及一种根据视频内容自适应地插入关键帧以允许用户容易地访问期望的场景的方法。
背景技术
随着包括互联网的信息通信技术的发展,视频通信以及文本和语音通信增加。由于传统的文本通信不能满足用户的各种需求,所以可提供诸如文本、图像和音乐的各种类型的信息的多媒体服务增加。由于多媒体数据量通常较大,所以多媒体数据需要大容量的存储介质和用于传输的宽带宽。例如,分辨率为640*480的24位真彩图像每帧需要640*480*24比特的容量,即,每帧大约7.37M比特的数据。当以每秒30帧的速度传输该图像时,需要每秒221M比特的带宽。当基于这种图像的90分钟的电影被存储时,需要大约1200G比特的存储空间。因此,对于传输包括文本、视频和音频的多媒体数据,需要压缩编码方法。
数据压缩的基本原理是去除数据冗余。可通过去除空间冗余、时间冗余或心理视觉冗余来压缩数据,空间冗余是指同一颜色或对象在图像中重复的情况,时间冗余是指在运动图像中的相邻帧之间几乎没有变化或者在音频中相同的声音重复的情况,心理视觉冗余考虑了人的视觉和高频的有限感知。根据源数据是否丢失,数据压缩可分为有损/无损压缩,根据是否独立地压缩各帧,数据压缩可分为帧内/帧间压缩,根据压缩所需的时间与恢复所需的时间是否相同,数据压缩可分为对称/非对称压缩。当压缩/恢复时间延迟不超过50ms时,数据压缩被定义为实时压缩,当帧具有不同的分辨率时,数据压缩被定义为可分级(scalable)压缩。对于文本或医学数据,通常使用无损压缩。对于多媒体数据,通常使用有损压缩。此外,帧内压缩通常用于去除空间冗余,帧间压缩通常用于去除时间冗余。
帧间压缩,即,时间压缩通常使用这样一种方法,即,在时域中估计连续帧之间的运动,执行运动补偿,并使用帧之间的相似性来去除时间冗余。块匹配算法被广泛应用于运动估计。根据块匹配算法,获取给定块中的所有像素的位移,具有最小位移的搜索点的值被估计为运动矢量。运动估计分为前向估计和后向估计,前向估计是指前一帧被参考,后向估计是指后一帧被参考。应该注意到,在编码器中被用作参考帧的帧不是编码的帧,而是与编码的帧对应的原始帧。然而,可使用闭环方案,而不使用这种开环方案。即,解码的帧可被用作参考帧。由于编码器基本上包括解码器的功能,所以解码的帧可被用作参考帧。
在传统的视频压缩中,根据设置参考帧的方法,存在三种类型的帧帧内编码(I)帧、预测编码(P)帧和双向预测编码(B)帧。I帧指示不使用运动补偿对其进行空间转换的帧,P帧是使用I帧或另一P帧对其执行前向或后向运动补偿的帧,在运动补偿之后剩余的该帧的其余部分被空间转换。B帧是在时域中使用另外的两种帧对其执行前向和后向运动补偿的帧。
对可独立于另一相邻图像帧而被恢复的帧(诸如I帧)的编码被称作原始编码(raw coding)。对参考前一I帧或后一I帧或者另一相邻P帧来估计当前图像的帧(诸如P帧或B帧)的编码被称作差分图像编码。
关键帧是用于有效的图像文件压缩的单个完整的图像。以有规律的间隔从引用图像组(GOP)结构的时间图像流中选择帧,并将这些帧指定为关键帧。关键帧可被独立地恢复,并允许随机访问图像。这样的关键帧指示如图1所示的以有规律的间隔被插入的I帧,其能够以运动图像专家组(MPEG)标准、H.261标准和H.264标准等被独立地再现,但是并不限于此。任何无论采用何种视频压缩方法都可被独立地恢复而无需参考另一帧的帧可被定义为关键帧。

发明内容
技术问题由于通常以有规律的间隔插入传统的关键帧,所以可容易地执行有规律的时间间隔的图像访问,但是难以执行随机访问,诸如场景改变的图像访问。场景改变的图像访问是访问其图像内容(即,情节)改变的图像,诸如与场景过渡、淡入(fade-in)和淡出(fade-out)对应的图像。
用户可能希望在观看视频文件和片段的同时随时准确地进入特定场景或者编辑特定场景的运动图像。然而,使用传统的方法难以准确地访问具有内容改变的部分。
因此,期望一种在所有帧序列中找到具有场景改变的部分的方法和允许随机访问该部分的方法。
技术解决方案本发明的示例性、非限制性实施例克服了以上缺点和以上未描述的其它缺点。此外,本发明不需要克服上述缺点,本发明的示例性、非限制性实施例可不克服上述任何问题。
本发明提供了一种自适应地将关键帧插入到视频流中具有诸如场景过渡或淡入的场景改变的部分中的功能,从而允许在视频播放期间进行随机访问。
本发明还提供了一种检测视频流中具有场景改变的部分的方法。
根据本发明的一方面,提供了一种视频编码器,包括编码模式确定单元,接收关于原始帧的时间残余帧,通过将该时间残余帧与预定的参考进行比较来确定原始帧是否具有场景改变,当确定原始帧不具有场景改变时,确定将对时间残余帧编码,当确定原始帧具有场景改变时,确定将对原始帧编码;和空间变换器,根据编码模式确定单元的确定对时间残余帧和原始帧中的任一个执行空间变换,并获取变换系数。
所述视频编码器还可包括量化器,对所述变换系数进行量化。
此外,所述视频编码器还可包括熵编码器,使用预定的编码方法压缩量化的变换系数和关键帧位置信息,从而产生比特流。
所述编码模式确定单元可包括块模式选择器,对于宏块,将帧间估计成本与帧内估计成本进行比较,并使用帧间估计和帧内估计中需要较少成本的估计来产生多重时间残余帧;和块模式比较器,计算所述多重时间残余帧中帧内估计的宏块的比例,当该比例超过预定的阈值Rc1时,确定将对原始帧编码。
所述编码模式确定单元可包括运动估计器,接收原始帧,并在原始帧和前一帧之间顺序执行运动估计以获取运动矢量;时间滤波器,使用所述运动矢量产生运动补偿帧,并计算原始帧和运动补偿帧之间的差;和平均绝对差(MAD)比较器,计算原始帧和运动补偿帧之间的差的平均值,并将该平均差与预定的阈值Rc2进行比较。
根据本发明的另一方面,提供了一种视频解码器,包括熵解码器,分析输入的比特流,并从编码的帧提取该编码的帧的纹理信息、运动矢量、参考帧号和关键帧位置信息;去量化器,将所述纹理信息去量化为变换系数;逆空间变换器,当基于关键帧位置信息确定当前帧为关键帧时,对所述变换系数执行逆空间变换来恢复视频序列,当当前帧不是关键帧时,通过对所述变换系数执行逆空间变换来产生时间残余帧;和逆时间滤波器,使用所述运动矢量从所述时间残余帧恢复视频序列。
根据本发明的另一方面,提供了一种视频编码方法,包括接收关于原始帧的时间残余帧;通过将时间残余帧与预定的参考进行比较来确定原始帧是否具有场景改变,当确定原始帧不具有场景改变时,确定对时间残余帧编码,当确定原始帧具有场景改变时,确定对原始帧编码;和根据在接收时间残余帧时执行的确定的结果,对时间残余帧和原始帧中的任一个执行空间变换,并获取变换系数。
所述视频编码方法还可包括对所述变换系数进行量化。
此外,所述视频编码方法还可包括通过预定的编码方法压缩量化的变换系数和关键帧位置信息。
所述接收时间残余帧的步骤可包括对每个宏块,将帧间估计成本与帧内估计成本进行比较;选择需要较少成本的估计;产生多重时间残余帧;计算所述多重时间残余帧中帧内估计的宏块的比例;和当所述比例超过预定的阈值Rc1时,确定原始帧而不是多重时间残余帧被使用。
所述帧间估计成本可以是前向估计、后向估计和双向估计中用于当前帧的一种或多种估计的成本中的最小成本。
前向估计成本Cfk可以是Efk和λBfk之和,后向估计成本Cbk是Ebk和λBbk之和,双向估计成本C2k是E2k和λ(Bfk+Bbk)之和,其中,Efk、Ebk和E2k分别是前向估计中的第k宏块的绝对差和(SAD)、后向估计中第k宏块的SAD、和双向估计中第k宏块的SAD,Bfk指示被分配用于对通过前向估计获得的第k宏块的运动矢量进行量化的比特的数量,Bbk指示被分配用于对通过后向估计获得的第k宏块的运动矢量进行量化的比特的数量,λ是用于控制与运动矢量相关的比特的数量和纹理比特的数量之间的平衡的拉格朗日系数。
所述帧内估计成本Cik可以是Eik和λBik之和,其中,Eik指示帧内估计中第k宏块的绝对差和(SAD),Bik指示用于在帧内估计中压缩DC分量的比特的数量,λ是用于控制与运动矢量相关的比特的数量和纹理比特的数量之间的平衡的拉格朗日系数。
所述接收时间残余帧的步骤可包括接收原始帧,并在原始帧和前一帧之间顺序执行运动估计以获取运动矢量;使用运动矢量产生运动补偿帧,计算原始帧和运动补偿帧之间的差;和计算原始帧和运动补偿帧之间的差的平均值,并将该平均差与预定的阈值Rc2进行比较。
优选地,阈值Rc2是通过将预定常数(α)乘以当前视频在预定的时间段内累积的MAD的平均值而获得的值。
根据本发明的另一方面,提供了一种视频解码方法,包括分析输入的比特流,并从编码的帧提取该编码的帧的纹理信息、运动矢量、参考帧号和关键帧位置信息;将所述纹理信息去量化为变换系数;当基于关键帧位置信息确定当前帧为关键帧时,对所述变换系数执行逆空间变换并恢复最终的视频序列,或者当当前帧不是关键帧时,执行逆空间变换并产生时间残余帧;和使用所述运动矢量从输入的时间残余帧恢复最终的视频序列。
所述关键帧位置信息可以是这样的信息,该信息用于当当前帧被认为具有场景改变时使得对原始帧编码,并通知解码器发送到该解码器的编码的帧是关键帧。


通过参考附图详细描述本发明的示例性实施例,本发明的以上和其它方面将变得更清楚,其中图1示出视频序列的示例;图2示出具有场景改变的视频序列的示例;图3是根据本发明的第一示例性实施例的编码器的方框图;图4示出当I帧、P帧和B帧被使用时的运动估计方向的示例;图5示出图3所示的编码器所使用的估计方向的示例;图6是示出四种估计模式的示图;图7示出根据最小成本使用不同的方法对单个帧中的宏块编码的示例;图8示出以多重模式对具有迅速改变的视频序列执行估计的示例;图9示出以多重模式对几乎没有改变的视频序列执行估计的示例;图10是根据本发明的第二示例性实施例的编码器的方框图;
图11是根据本发明的示例性实施例的解码器的方框图;和图12是在其中根据本发明的示例性实施例的编码器和解码器操作的系统的示意性方框图。
具体实施例方式
现在将参考附图更全面地描述本发明的优点和特征以及用于实现这些优点和特征的方法,在附图中显示了本发明的示例性实施例。然而,本发明可以以许多不同的形式来实施,并且不应该被解释为仅限于这里所阐述的示例性实施例;相反,提供这些示例性实施例是为了使本公开充分和完整,并将本发明的构思全面地传达给本领域的技术人员。本发明由权利要求限定,其意在涵盖可落入本发明的精神和范围内的所有这样的修改。在整个说明书中,不同附图中的相同标号表示相同的部件。
参考图2,淡出发生在第五帧和第六帧之间,场景过渡发生在第七帧和第八帧之间。在这样的场景改变之前和之后的两幅图像几乎没有连续性,差异较大。因此,为了增加随机访问的可用性,必须将具有场景改变的图像转换成关键帧。在本发明的示例性实施例中,关键帧以有规律的间隔被插入,附加关键帧被插入到具有场景改变的部分中。
参考图3,根据本发明的第一示例性实施例的编码器100包括运动估计器10、时间滤波器20、编码模式确定单元70、空间变换器30、量化器40、熵编码器50、帧内编码器60。编码模式确定单元70包括块模式选择器71和块模式比较器72。
原始帧被输入到运动估计器10和帧内编码器60。运动估计器10基于预定的参考帧对输入的帧执行运动估计,并获取运动矢量。块匹配算法被广泛应用于运动估计。详细地讲,当前宏块在参考帧的特定搜索区域内以像素为单位移动,误差最小的位移被估计为运动矢量。
确定参考帧的方法随编码模式而改变。编码模式可包括前向估计模式、后向估计模式和双向估计模式,前向估计模式是时间上的前一帧被参考,后向估计模式是时间上的后一帧被参考,双向估计模式是时间上的前一帧和后一帧都被参考。如上所述,参考另一帧估计当前帧的运动并执行时间滤波的模式被定义为帧间估计模式,而不参考另一帧对当前帧编码的模式被定义为帧内估计模式。在帧间估计模式中,即使在前向、后向或双向模式被确定之后,用户也可任意地选择参考帧。
图4和图5示出与参考帧和运动估计方向的确定相关的示例。在图4和图5中,f(0)、f(1)、…、f(9)表示视频序列中的帧号。
图4示出当运动图像专家组(MPEG)所定义的I帧、P帧和B帧被使用时的运动估计方向的示例。I帧是不参考另一帧对其进行编码的关键帧。P帧使用前向估计被编码,B帧使用双向估计被编码。
由于B帧参考前一I帧或P帧和后一I帧或P帧被编码和解码,所以编码或解码序列可不同于时间序列,即,{0,3,1,2,6,4,5,9,7,8}。
图5示出根据第一示例性实施例的编码器100所使用的双向估计的示例。这里,编码或解码序列可为{0,4,2,1,3,8,6,5,7}。如上所述,在第一示例性实施例中,假设对帧间帧执行双向估计,对用于计算随后所述的成本的宏块执行前向、后向和双向估计这三种估计。
当使用图4所示的方法来执行运动估计时,由于P帧仅允许前向估计,所以对P帧的帧间估计仅包括后向估计。换句话说,帧间估计并不总是包括前向、后向和双向估计,而是根据帧的类型,可仅包括这三种估计中的一种或两种。
图6是示出四种估计模式的示图。在前向估计模式①中,在前一帧(该帧不必紧跟在当前帧之前)中找到与当前帧中的特定宏块匹配的宏块,以运动矢量表达这两个宏块的位置之间的位移。
在后向估计模式②中,在后一帧(该帧不必紧跟在当前帧之后)中找到与当前帧中的特定宏块匹配的宏块,以运动矢量表达这两个宏块的位置之间的位移。
在双向估计模式③中,使用或不使用权重来获取在前向估计模式①中找到的宏块和在后向估计模式②中找到的宏块的平均值,以生成虚拟宏块,并计算该虚拟宏块和当前帧中的该特定宏块之间的差,然后对其进行时间滤波。因此,在双向估计模式③中,当前帧中的每个宏块需要两个运动矢量。
当在前向、后向和双向估计模式的每种模式中找到与当前宏块匹配的宏块时,宏块区域在预定搜索区域内以像素为单位移动。每当宏块区域移动时,当前宏块中的像素和该宏块区域中的像素之间的差之和被计算。其后,和最小的宏块区域被选择为与当前宏块匹配的宏块。
运动估计器10确定输入的帧中的每个宏块的运动矢量,并将该运动矢量和帧号发送到熵编码器50和时间滤波器20。对于运动估计,分层可变大小块匹配(HVSBM)可被使用。然而,在本发明的示例性实施例中,简单的固定块大小运动估计被使用。
同时,接收原始帧的帧内编码器60使用帧内估计模式④计算宏块中的原始像素值的每个和该宏块的DC值之间的差。在帧内估计模式④中,基于Y、U和V分量中的每个分量的DC值(即,该宏块中的像素值的平均值)对包括在当前帧中的宏块执行估计。每个原始像素值和DC值之间的差被编码,并且三个DC值之间的差被编码,而运动矢量不被编码。
在一些视频序列中,场景改变非常快。在极端的情况下,可找到与相邻帧相比没有时间冗余的帧。为了处理这种帧,由MC-EZBC实现的编码方法支持“自适应(图像组)GOP大小特征”。根据自适应GOP大小特征,当不连接的像素的数量大于预定的参考值(即,大约为像素总数的30%)时,时间滤波被停止,并且当前帧被编码成L帧。这种方法可用在本发明的示例性实施例中。然而,为了使用更灵活的方法,在标准的混合编码器中使用的通过帧内估计获取的宏块的构思被采用。通常,由于估计偏差导致开环编解码器不能使用相邻宏块信息。然而,混合编解码器可使用帧内估计模式。因此,在本发明的第一示例性实施例中,DC估计被用于帧内估计模式。在帧内估计模式中,可使用一些宏块的Y、U和V分量的DC值来估计这些宏块。
帧内编码器60将宏块的原始像素值和DC值之间的差发送到编码模式确定单元70,并将DC分量发送到熵编码器50。宏块的原始像素值和DC值之间的差可被表示为Eik。这里,E表示原始像素值和DC值之间的差,即,误差,“i”表示帧内估计。当宏块的总数为N时,“k”是指示特定宏块的索引(k=0,1,…,N-1)。因此,Eik表示绝对差和(SAD)(即,在第k宏块的帧内估计中原始亮度值和DC值之间的差之和)。SAD是分别包括在两帧中的两个相应的宏块内的相应的像素值之间的差之和。
时间滤波器20使用从运动估计器10接收的运动矢量和参考帧号来重新排列参考帧中的宏块,以使参考帧中的宏块占据与当前帧中的匹配宏块的位置相同的位置,从而产生运动补偿帧。另外,时间滤波器20获取当前帧和运动补偿帧之间的差,即,时间残余帧。
作为时间滤波的结果,获取关于每种类型的帧间估计模式的差。根据用户的选择,帧间估计模式可包括前向估计模式、后向估计模式和双向估计模式中的至少一种模式。在本发明的第一示例性实施例中,假设帧间估计模式包括这三种模式的所有模式。
获取关于当前帧中的每个宏块在这三种帧间估计模式中的差,并将其发送到编码模式确定单元70。使用Efk、Ebk和E2k表示这三种差。这里,E表示差,即,帧之间的误差,“f”表示前向方向,“b”表示后向方向,“2”表示双向。当当前帧中的宏块的总数为N时,“k”表示指示特定宏块的索引(k=0,1,…,N-1)。
因此,Efk表示前向估计模式中的第k宏块的SAD,Ebk表示后向估计模式中的第k宏块的SAD,E2k表示双向估计模式中的第k宏块的SAD。
熵编码器50使用预定的编码方法压缩从运动估计器10接收的运动矢量和从帧内编码器60接收的DC分量,从而产生比特流。所述预定的编码方法的示例包括预测编码方法、可变长编码方法(如典型的哈夫曼编码)和算术编码方法。
在产生比特流之后,熵编码器50将分别用于根据三种帧间估计模式压缩当前宏块的运动矢量的比特的数量发送到编码模式确定单元70。用在所述三种帧间估计模式中的比特的数量可被分别表示为Bfk、Bbk和B2k。这里,B表示用于压缩运动矢量的比特的数量,“f”表示前向方向,“b”表示后向方向,“2”表示双向。当当前帧中的宏块的总数为N时,“k”表示指示特定宏块的索引(k=0,1,…,N-1)。
换句话说,Bfk指示被分配用于对通过前向估计获得的第k宏块的运动矢量进行量化的比特的数量,Bbk指示被分配用于对通过后向估计获得的第k宏块的运动矢量进行量化的比特的数量,B2k指示被分配用于对通过双向估计获得的第k宏块的运动矢量进行量化的比特的数量。
在产生比特流之后,熵编码器50还将用于压缩当前宏块的DC分量的比特的数量发送到编码模式确定单元70。所述比特的数量可被表示为Bik。这里,B表示用于压缩DC分量的比特的数量,“i”表示帧内估计模式。当当前帧中的宏块的总数为N时,“k”表示指示特定宏块的索引(k=0,1,…,N-1)。
对每个宏块,编码模式确定单元70中的块模式选择器71将帧间估计成本与帧内估计成本进行比较,选择需要较少成本的估计,并产生多重时间残余帧。块模式比较器72计算在多重时间残余帧中帧内估计的宏块的比例,并且当该比例超过预定的阈值Rc1时,确定使用原始帧,而不使用多重时间残余帧。随后将详细描述多重时间残余帧。
块模式选择器71从时间滤波器20接收每个宏块在帧间估计模式中获得的差Efk、Ebk和E2k,并从帧内编码器60接收每个宏块在帧内估计模式中获得的差Eik。另外,块模式选择器71从熵编码器50接收分别用于压缩每个宏块在帧间估计模式中获得的运动矢量的比特的数量Bfk、Bbk和B2k、以及用于压缩帧内估计模式中的DC分量的比特的数量Bik。
帧间估计成本可用方程(1)表示。在方程(1)中,Cfk、Cbk和C2k分别表示在前向、后向和双向估计模式中每个宏块所需的成本。由于B2k是用于压缩通过双向估计获得的运动矢量的比特的数量,所以它是用于前向估计的比特和用于后向估计的比特之和,即,Bfk和Bbk之和。
Cfk=Efk+λBfkCbk=Ebk+λBbk(1)C2k=E2k+λB2k,这里,B2k=Bfk+Bbk这里,λ是用于控制与运动矢量相关的比特的数量和纹理(即,图像)比特的数量之间的平衡的拉格朗日系数。由于在可分级视频编码器中最终的比特率是未知的,所以可根据视频序列的特性和主要用在目标应用中的比特率来选择λ。可基于使用方程(1)获得的最小成本为每个宏块确定最佳帧间估计模式。
当帧内估计成本小于用于最佳帧间估计模式的成本时,帧内估计模式被选择。在这种情况下,原始像素和DC值之间的差被编码,而且三种DC值之间的差被编码,而运动矢量不被编码。帧内估计成本可用方程(2)表示,在方程(2)中,Cik表示用于每个宏块的帧内估计的成本。
Cik=Eik+λBik(2)如果Cik小于最小帧间估计成本,例如,Cfk、Cbk和C2k之间的最小值,则以帧内估计模式执行编码。
图7示出根据最小成本使用不同的方法对单个帧中的宏块编码的示例。该帧包括N=16个宏块,MB表示宏块。F、B、Bi和I分别指示相应的宏块以前向估计模式、后向估计模式、双向估计模式和帧内估计模式被编码。
不同的编码模式被用于各宏块的这种模式被定义为“多重模式”,以多重模式重构的时间残余帧被定义为“多重时间残余帧”。
参考图7,由于将Cfk、Cbk和C2k相互比较的结果的是Cbk被选择为最小值并被确定为小于Cik,所以宏块MB0以后向估计模式被编码。由于帧内估计成本小于帧间估计成本,所以宏块MB15以帧内估计模式被编码。
块模式比较器72计算多重时间残余帧中以帧内估计模式编码的宏块的比例,所述多重时间残余帧是通过以块模式选择器71为各宏块确定的估计模式对各宏块执行时间滤波而获得的。如果该比例没有超过预定的阈值Rc1,则块模式比较器72将多重时间残余帧发送到空间变换器30。如果该比例超过预定的阈值Rc1,则块模式比较器72将原始帧而不是编码的帧发送到空间变换器30。
如上所述,当以帧内估计模式编码的宏块的比例超过预定的阈值时,当前帧被认为具有场景改变。被认为具有场景改变的帧的位置被确定为除有规律地插入的关键帧之外的附加关键帧被插入的帧位置(以下,称作“关键帧位置”)。
在本发明的第一示例性实施例中,原始帧被发送到空间变换器30。然而,可以以帧内估计模式对原始帧整个编码,然后可将编码的帧发送到空间变换器30。由于为每个宏块计算的Eik已被存储在缓冲器(未显示)中,所以可以以帧内估计模式对整个帧编码,而不需另外的操作。
如图7所示,可由块模式选择器71以不同的模式对当前帧编码,块模式比较器72可检测每个编码模式的比例。参考图7,比例为F=1/16=6.25%、B=2/16=12.5%、Bi=3/16=18.75%、I=10/16=62.5%。这里,Bi、F、B和I分别表示以双向估计模式、前向估计模式、后向估计模式和帧内估计模式编码的宏块的比例。然而,不对GOP中的第一帧执行估计。
图8和图9分别示出以多重模式对具有迅速改变的视频序列执行估计的示例、以及以多重模式对几乎没有改变的视频序列执行估计的示例。
参考图8,由于帧f(1)与帧f(0)几乎一样,所以“F”占主要比例78%。由于帧f(2)接近帧f(0)和帧f(4)之间的中间情况,即,帧f(2)对应于可通过使帧f(0)更亮而获得的图像,所以“Bi”占主要比例87%。由于帧f(4)完全不同于其它帧,所以“I”是100%。由于帧f(5)完全不同于帧f(4)而且与帧f(6)相似,所以“B”占94%。
参考图9,所有的帧都类似。事实上,当所有的帧都类似时,双向估计显示最佳的性能。因此,在图9中,Bi总体上较高。
当当前帧包括的以帧间估计模式编码的宏块比以帧内估计模式编码的宏块多时,由于相邻图像之间的高相似性,使得时间补偿有效,并且可推断连续场景是连接的。然而,当当前帧包括的以帧内估计模式编码的宏块比以帧间估计模式编码的宏块多时,可推断相邻图像之间的时间补偿无效或者在帧之间发生了很大的场景改变。
因此,在本发明的第一示例性实施例中,当比例“I”超过预定的阈值Rc1时,对于各宏块,原始帧或仅以帧内估计模式编码的帧被使用,而以不同的估计模式编码的帧不被使用。
回头参考图3,空间变换器30考虑根据编码模式确定单元70确定的成本,从缓冲器(未显示)中读取对各宏块以不同的估计模式编码的帧或者原始帧。然后,空间变换器30对从缓冲器读取的帧执行空间变换以去除空间冗余和产生变换系数。
广泛用在诸如MPEG-2的视频压缩中的离散余弦变换(DCT)或支持可分级性的小波变换可被用作空间变换。变换系数可以是小波变换中的小波系数或DCT中的DCT系数。
量化器40对由空间变换器30产生的变换系数进行量化。换句话说,量化器40将变换系数从实数转换成整数。通过量化,表达图像数据所需的比特的数量可被减小。通常,嵌入式量化技术用在对变换系数进行量化的步骤中。嵌入式量化技术的示例包括嵌入式零树小波(EZW)算法、分层树集合分割(SPIHT)等。
熵编码器50从量化器40接收量化的变换系数,并使用预定的编码方法压缩该变换系数,从而产生比特流。另外,熵编码器50将从运动估计器10接收的运动矢量和从帧内编码器60接收的DC分量压缩到所述比特流中。由于运动矢量和DC分量已被压缩到所述比特流中并且它们的信息已被发送到编码模式确定单元70,所以运动矢量和DC分量已被压缩到其中的比特流可被存储在缓冲器(未显示)中,并且当必要的时候被使用。
此外,熵编码器50使用预定的编码方法压缩从运动估计器10接收的参考帧号和从块模式比较器72接收的关键帧位置信息,从而产生比特流。可通过将关键帧号写入独立视频实体的序列头或GOP的GOP头中,或者通过将当前帧是否是关键帧写入当前帧的帧头中,来发送关键帧位置信息。
预定的编码方法的示例包括预测编码方法、可变长编码方法(如典型的哈夫曼编码)和算术编码方法。
图10是根据本发明的第二示例性实施例的编码器200的方框图。编码器200包括运动估计器110、时间滤波器120、编码模式确定单元170、空间变换器130、量化器140和熵编码器150。编码模式确定单元170可包括运动估计器171、时间滤波器172和平均绝对差(MAD)比较器173。
在第一示例性实施例中,基于当前帧中以帧内估计模式编码的宏块的比例来确定场景改变的发生。然而,在本发明的第二示例性实施例中,相邻帧之间的MAD被计算,并且当MAD超过预定的阈值Rc2时,确定已发生场景改变。通过计算在两帧中占据相同空间位置的相应像素之间的像素值的差之和然后将该和除以包括在每帧中的像素的总数,来获取MAD。
对于这个操作,包括在编码模式确定单元170中的运动估计器171接收原始帧,即,当前帧,并执行运动估计来获取运动矢量。这里,在时域中顺序执行前向估计。例如,第一帧被用作第二帧的参考帧,第二帧被用作第三帧的参考帧。
包括在编码模式确定单元170中的时间滤波器172使用从运动估计器171接收的运动矢量来重构参考帧,以使参考帧中的宏块占据与当前帧中的匹配宏块相同的位置,从而产生运动补偿帧,并计算当前帧和运动补偿帧之间的差。
包括在编码模式确定单元170中的MAD比较器173计算所述差的平均值,即,当前帧和运动补偿帧之间的像素值的差的平均值,并将该平均差与预定的阈值Rc2进行比较。阈值Rc2可被用户任意设置,还可被设置为通过将常数(α)乘以在一定时间段内累积的MAD的平均值而获得的值。例如,阈值Rc2可被设置为通过将2乘以在一定时间段内累积的MAD的平均值而获得的值。
当当前帧的MAD超过预定的阈值时,认为已发生场景改变,并确定除周期性地插入的关键帧之外的附加关键帧被插入的帧位置。当附加帧被插入的帧位置被确定时,原始帧被编码。
当MAD比较器173的比较结果是确定当前帧对应于关键帧位置时,在空间变换器130中执行空间变换。然而,当当前帧不对应于关键帧位置时,在运动估计器110中执行运动估计。
运动估计器110接收原始帧并执行运动估计以获取运动矢量。与包括在编码模式确定单元170中的运动估计器171不同,运动估计器110可使用前向估计、后向估计和双向估计中的任何一种。参考帧不限于紧跟在当前帧之前的帧,而是可从与当前帧相距随机间隔的帧中被选择。
时间滤波器120使用从运动估计器110接收的运动矢量来重构参考帧,以使参考帧中的宏块占据与当前帧中的匹配宏块相同的位置,从而产生运动补偿帧,并计算当前帧和运动补偿帧之间的差。
空间变换器130从MAD比较器173接收关于当前帧是否对应于关键帧位置的信息,并对由时间滤波器120计算的当前帧和运动补偿帧之间的差或者对原始帧执行空间变换。空间变换可以是小波变换或DCT。
量化器140对由空间变换器130产生的变换系数进行量化。
熵编码器150使用预定的编码方法来压缩量化的变换系数、从运动估计器110接收的运动矢量和参考帧号、以及从MAD比较器173接收的关键帧位置信息,从而产生比特流。
图11是根据本发明的示例性实施例的解码器300的方框图。熵解码器210分析输入的比特流,并从编码的帧提取该编码的帧的纹理信息(即,编码的图像信息)、运动矢量、参考帧号和关键帧位置信息。另外,熵解码器210将关键帧位置信息发送到逆空间变换器230。以与编码器中执行熵编码相反的方式执行熵解码。
去量化器220将纹理信息去量化成变换系数。以与编码器中执行量化相反的方式执行去量化。
逆空间转换器230对变换系数执行逆空间变换。逆空间变换与在编码器中执行的空间变换相关。当小波变换已被用于空间变换时,逆小波变换被执行。当DCT被用于空间变换时,逆DCT被执行。
逆空间转换器230可使用从熵解码器210接收的关键帧位置信息来检测当前帧是否是关键帧,即,当前帧是通过以帧内估计模式编码而获得的帧内帧,还是通过以帧间估计模式编码而获得的帧间帧。当当前帧是帧内帧时,视频序列最终通过逆空间变换被恢复。当当前帧是帧间帧时,由时间差构成的帧,即,时间残余帧通过逆空间变换被产生,并被发送到逆时间滤波器240。
逆时间滤波器240使用从熵解码器210接收的运动矢量和参考帧号从时间残余帧恢复视频序列。
图12是在其中根据本发明的示例性实施例的编码器100或200和解码器300操作的系统500的示意性方框图。系统500可以是电视机(TV)、机顶盒、桌上型电脑、膝上型电脑或掌上型电脑、个人数字助理(PDA)、或者视频或图像存储设备(例如,录像机(VCR)或数字影像记录机(DVR))。另外,系统500可以是上述设备的组合,或者是包括它们之中的其它设备的一部分的设备之一。系统500包括至少一个视频/图像源510、至少一个输入/输出单元520、处理器540、存储器550和显示单元530。
视频/图像源510可以是TV接收器、VCR或其它视频/图像存储设备。视频/图像源510可指示用于使用互联网、广域网(WAN)、局域网(LAN)、地面广播系统、有线电视、卫星通信网络、无线网络、电视网络等从服务器接收视频或图像的至少一个网络连接。另外,视频/图像源510可以是这些网络的组合,或者是包括这些网络中的其它网络的一部分的一个网络。
输入/输出单元520、处理器540和存储器550通过通信媒介560相互通信。通信媒介560可以是通信总线、通信网络或至少一个内部连接电路。从视频/图像源510接收的输入视频/图像数据可被处理器540使用存储在存储器550中的至少一个软件程序处理,并可被处理器540执行以产生提供给显示单元530的输出视频/图像。
具体地讲,存储在存储器550中的软件程序包括执行本发明的方法的基于可分级小波的编解码器。所述编解码器可被存储在存储器550中,可从诸如压缩盘-只读存储器(CD-ROM)或软盘的存储介质被读取,或者可通过各种网络从预定的服务器被下载。
产业上的可利用性根据本发明,与基于时间流的传统的关键帧插入相比,根据对基于图像内容的场景的访问,插入关键帧,从而允许访问随机图像帧的功能的可用性增加。
另外,由于与诸如场景过渡、淡入或淡出的场景改变对应的帧被转换成关键帧,所以可在具有场景改变的视频部分获取更清楚的图像。
而且,根据本发明,当在相邻图像之间发生很大改变时,插入关键帧,从而图像可被有效地恢复。
虽然已参考附图显示和描述了本发明的示例性实施例,但是本领域的技术人员应该理解,在不脱离本发明的特征和精神的情况下,可对这些部件进行改变。因此,应该理解,仅从描述意义上提供了上述示例性实施例,而不应该被解释为是对本发明的范围的任何限制。
权利要求
1.一种视频编码器,包括编码模式确定单元,接收关于原始帧的时间残余帧,通过将该时间残余帧与预定的参考进行比较来确定原始帧是否具有场景改变,如果确定原始帧不具有场景改变,则确定将对时间残余帧编码,如果确定原始帧具有场景改变,则确定将对原始帧编码;和空间变换器,根据编码模式确定单元的确定对时间残余帧或原始帧执行空间变换,并产生变换系数。
2.如权利要求1所述的视频编码器,还包括量化器,对所述变换系数进行量化。
3.如权利要求2所述的视频编码器,还包括熵编码器,使用预定的编码方法压缩量化的变换系数和关键帧位置信息,从而产生比特流。
4.如权利要求1所述的视频编码器,其中,所述编码模式确定单元包括块模式选择器,对于宏块,将帧间估计成本与帧内估计成本进行比较,并使用帧间估计和帧内估计中需要较少成本的估计来产生多重时间残余帧;和块模式比较器,计算所述多重时间残余帧中帧内估计的宏块的比例,如果该比例超过预定的阈值Rc1,则确定将对原始帧编码。
5.如权利要求4所述的视频编码器,其中,所述帧间估计成本是前向估计、后向估计和双向估计中用于当前帧的至少一种估计的成本中的最小成本。
6.如权利要求5所述的视频编码器,其中,前向估计成本Cfk是Efk和λBfk之和,后向估计成本Cbk是Ebk和λBbk之和,双向估计成本C2k是E2k和λ(Bfk+Bbk)之和,其中,Efk是前向估计中第k宏块的绝对差和,Ebk是后向估计中第k宏块的绝对差和,E2k是双向估计中第k宏块的绝对差和,Bfk是被分配用于对通过前向估计获得的第k宏块的运动矢量进行量化的比特的数量,Bbk是被分配用于对通过后向估计获得的第k宏块的运动矢量进行量化的比特的数量,λ是用于控制与运动矢量相关的比特的数量和纹理比特的数量之间的平衡的拉格朗日系数。
7.如权利要求4所述的视频编码器,其中,所述帧内估计成本Cik是Eik和λBik之和,其中,Eik是帧内估计中第k宏块的绝对差和,Bik是用于在帧内估计中压缩DC分量的比特的数量,λ是用于控制与运动矢量相关的比特的数量和纹理比特的数量之间的平衡的拉格朗日系数。
8.如权利要求1所述的视频编码器,其中,所述编码模式确定单元包括运动估计器,接收原始帧,并在原始帧和前一帧之间顺序执行运动估计以产生运动矢量;时间滤波器,使用所述运动矢量产生运动补偿帧,并计算原始帧和运动补偿帧之间的差;和平均绝对差比较器,计算原始帧和运动补偿帧之间的差的平均值,并将该平均差与预定的阈值Rc2进行比较。
9.如权利要求8所述的视频编码器,其中,所述预定的阈值Rc2是通过将预定的常数α乘以当前视频在预定的时间段内累积的平均绝对差的平均值而获得的值。
10.一种视频解码器,包括熵解码器,分析输入的比特流,并从编码的帧提取该编码的帧的纹理信息、运动矢量、参考帧号和关键帧位置信息;去量化器,将所述纹理信息去量化为变换系数;逆空间变换器,如果基于关键帧位置信息确定当前帧为关键帧,则通过对所述变换系数执行逆空间变换来恢复视频序列,如果当前帧不是关键帧,则通过对所述变换系数执行逆空间变换来产生时间残余帧;和逆时间滤波器,使用所述运动矢量从所述时间残余帧恢复视频序列。
11.如权利要求10所述的视频解码器,其中,所述关键帧位置信息包括这样的信息,该信息用于当当前帧被认为具有场景改变时使得将对原始帧编码,并通知解码器发送到该解码器的编码的帧是关键帧。
12.一种视频编码方法,包括接收关于原始帧的时间残余帧;通过基于时间残余帧和预定的参考的比较来确定原始帧是否具有场景改变,从而确定是对时间残余帧编码还是对原始帧编码,其中,如果确定原始帧不具有场景改变,则确定将对时间残余帧编码,如果确定原始帧具有场景改变,则确定将对原始帧编码;和根据确定是对时间残余帧编码还是对原始帧编码的结果,对时间残余帧或原始帧执行空间变换,并产生变换系数。
13.如权利要求12所述的视频编码方法,还包括对所述变换系数进行量化。
14.如权利要求13所述的视频编码方法,还包括通过预定的编码方法压缩量化的变换系数和关键帧位置信息。
15.如权利要求12所述的视频编码方法,其中,所述确定是对时间残余帧编码还是对原始帧编码的步骤包括对每个宏块,将帧间估计成本与帧内估计成本进行比较;选择需要较少成本的估计;产生多重时间残余帧;计算所述多重时间残余帧中帧内估计的宏块的比例;和如果所述比例超过预定的阈值Rc1,则确定原始帧而不是所述多重时间残余帧被使用。
16.如权利要求15所述的视频编码方法,其中,所述帧间估计成本是前向估计、后向估计和双向估计中用于当前帧的至少一种估计的成本中的最小成本。
17.如权利要求16所述的视频编码方法,其中,前向估计成本Cfk是Efk和λBfk之和,后向估计成本Cbk是Ebk和λBbk之和,双向估计成本C2k是E2k和λ(Bfk+Bbk)之和,其中,Efk是前向估计中第k宏块的绝对差和,Ebk是后向估计中第k宏块的绝对差和,E2k是双向估计中第k宏块的绝对差和,Bfk是被分配用于对通过前向估计获得的第k宏块的运动矢量进行量化的比特的数量,Bbk是被分配用于对通过后向估计获得的第k宏块的运动矢量进行量化的比特的数量,λ是用于控制与运动矢量相关的比特的数量和纹理比特的数量之间的平衡的拉格朗日系数。
18.如权利要求15所述的视频编码方法,其中,所述帧内估计成本Cik是Eik和λBik之和,其中,Eik是帧内估计中第k宏块的绝对差和,Bik是用于在帧内估计中压缩DC分量的比特的数量,λ是用于控制与运动矢量相关的比特的数量和纹理比特的数量之间的平衡的拉格朗日系数。
19.如权利要求12所述的视频编码方法,其中,所述确定是对时间残余帧编码还是对原始帧编码的步骤包括接收原始帧,并在原始帧和前一帧之间顺序执行运动估计以获取运动矢量;使用所述运动矢量产生运动补偿帧,并计算原始帧和运动补偿帧之间的差;和计算原始帧和运动补偿帧之间的差的平均值,并将该平均差与预定的阈值Rc2进行比较。
20.如权利要求19的视频编码方法,其中,所述阈值Rc2是通过将预定常数α乘以当前视频在预定时间段内累积的平均绝对差的平均值而获得的值。
21.一种视频解码方法,包括分析输入的比特流,并从编码的帧提取该编码的帧的纹理信息、运动矢量、参考帧号和关键帧位置信息;将所述纹理信息去量化为变换系数;如果基于关键帧位置信息确定当前帧为关键帧,则对所述变换系数执行逆空间变换并恢复最终的视频序列,或者如果当前帧不是关键帧,则执行逆空间变换并产生时间残余帧;和使用所述运动矢量从输入的时间残余帧恢复最终的视频序列。
22.如权利要求21所述的视频解码方法,其中,所述关键帧位置信息包括这样的信息,该信息用于如果当前帧被认为具有场景改变则使得将对原始帧编码并通知解码器发送到解码器的编码的帧是关键帧。
23.一种记录有计算机可读程序的记录介质,所述程序使计算机执行视频编码方法,所述视频编码方法包括接收关于原始帧的时间残余帧;通过基于时间残余帧和预定的参考的比较来确定原始帧是否具有场景改变,从而确定是对时间残余帧编码还是对原始帧编码,其中,如果确定原始帧不具有场景改变,则确定将对时间残余帧编码,如果确定原始帧具有场景改变,则确定将对原始帧编码;和根据确定是对时间残余帧编码还是对原始帧编码的结果,对时间残余帧或原始帧执行空间变换,并产生变换系数。
全文摘要
提供了一种根据视频内容自适应地插入关键帧以允许用户容易地访问期望的场景的方法。一种视频编码器包括编码模式确定单元,接收关于原始帧的时间残余帧,通过将该时间残余帧与预定的参考进行比较来确定原始帧是否具有场景改变,当确定原始帧不具有场景改变时,确定将对时间残余帧编码,当确定原始帧具有场景改变,则确定将对原始帧编码;和空间变换器,根据编码模式确定单元的确定对时间残余帧和原始帧中的任一个执行空间变换,并获取变换系数。根据对基于图像内容的场景的访问,插入关键帧,从而允许访问随机图像帧的功能的可用性增加。
文档编号H04N7/50GK1910924SQ200480041187
公开日2007年2月7日 申请日期2004年12月27日 优先权日2004年1月30日
发明者李宰荣, 韩宇镇 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1