用于无损视频编码和解码的方法及设备的制作方法

文档序号:7968420阅读:131来源:国知局
专利名称:用于无损视频编码和解码的方法及设备的制作方法
技术领域
本发明涉及对视频数据的编码和解码,更具体地讲,涉及一种用于无损视频编码和解码的方法及设备,其中,对通过计算从帧间预测获得的残余块的像素之间的差产生的差分残余块进行编码,从而提高压缩率。
背景技术
H.264/运动图像专家组(MPEG)-4/高级视频编码(AVC),作为视频压缩标准之一,使用各种技术(比如多参考运动补偿、环路滤波、可变块大小运动补偿、以及基于上下文的自适应二进制算术编码(CABAC))来提高压缩率。
根据H.264标准,为进行视频编码,将图像划分成多个宏块。在用所有帧间预测和帧内预测编码方式对每个宏块进行编码之后,根据对宏块进行编码所需要的比特率以及原始宏块和解码的宏块之间的失真度来选择合适的编码方式。然后,以选择的编码方式对宏块进行编码。帧间预测涉及通过参考邻近帧的宏块来对当前帧的宏块执行预测。帧内预测涉及使用当前帧内的当前宏块的邻近宏块来对当前帧的当前宏块执行预测。
视频编码包括有损编码和无损编码。对于无损编码,不经过离散余弦变换(DCT)而直接对预测块和当前块之间的差,即残余信号进行熵编码。根据现有技术,不对残余信号,即残余块进行单独处理而进行熵编码,或者对使用残余块的邻近块的像素值形成的差分值进行熵编码,从而降低了压缩率并难于进行使用流水线方法(pipeline method)的并行处理(parallel processing)。

发明内容
本发明的一方面提供了一种用于无损编码和解码的方法及设备,其中,通过计算从以预定大小的块为单位进行的帧间预测获得的残余块的像素之间的差而产生差分残余块,并对所述差分残余块进行编码,从而提高压缩率。
根据本发明的一方面,提供了一种无损视频编码方法。所述无损视频编码方法包括以预定大小的块为单位在参考帧和当前帧之间执行帧间预测以产生将被编码的当前块的预测块;产生残余块,所述残余块由与预测块和当前块的像素之间的差相应的残余信号构成;在预定方向上计算残余块的残余信号之间的差,并基于计算出的差来产生差分残余块;以及对差分残余块执行熵编码。
根据本发明的另一方面,提供了一种用于无损视频编码的设备,所述无损视频编码设备包括帧间预测单元、减法单元、差分残余变换单元和熵编码单元。帧间预测单元以预定大小的块为单位在参考帧和当前帧之间执行帧间预测来产生将被编码的当前块的预测块。减法单元产生残余块,所述残余块由与预测块和当前块的像素之间的差相应的残余信号构成。差分残余变换单元在预定方向上计算残余块的残余信号之间的差,并基于计算出的差来产生差分残余块。熵编码单元对差分残余块执行熵编码。
根据本发明的另一方面,提供了一种无损视频解码方法。所述无损视频解码方法包括接收使用差分残余块进行熵编码的比特流,所述差分残余块通过计算残余块的像素之间的差而产生,并且所述残余块由帧间预测块和当前块之间的差构成;对接收的比特流执行熵解码以对差分残余块进行解码;对解码的差分残余块执行逆变换以产生残余块;以及将残余块和使用包括在比特流中的视频数据的帧间预测块相加来重构原始图像。
根据本发明的另一方面,提供了一种用于无损视频解码的设备,所述无损视频解码设备包括熵解码单元、差分残余逆变换单元、帧间预测单元和加法单元。熵解码单元接收使用差分残余块进行熵编码的的比特流,所述差分残余块通过计算残余块的像素之间的差而产生,并且所述残余块由帧间预测块和当前块之间的差构成,并且所述熵解码单元对接收的比特流执行熵解码以输出差分残余块。差分残余逆变换单元对差分残余块执行逆变换以产生残余块。帧间预测单元使用包括在比特流中的视频数据产生帧间预测块。加法单元将残余块和帧间预测块相加来重构原始图像。


通过参照附图,对本发明示例性实施例的详细描述,本发明的上述和其他方面将会更清楚,其中图1是使用根据本发明示例性实施例的用于无损视频编码的设备的视频编码器的框图;图2是用于解释由图1的运动估计单元执行的运动估计的示图;图3表示输入到图1的差分残余变换单元的残余块;图4是用于解释由图1的差分残余变换单元执行的产生水平差分残余块的示图;图5是用于解释由图1的差分残余变换单元执行的产生垂直差分残余块的示图;图6表示由图1的差分残余变换单元产生的差分残余块;图7是表示根据本发明示例性实施例的无损视频编码的方法的流程图;图8表示从根据本发明示例性实施例的视频编码器输出的比特流的格式;图9是应用根据本发明示例性实施例的用于无损视频解码的设备的视频解码器的框图;和图10是表示根据本发明示例性实施例的无损视频解码的方法的流程图。
具体实施例方式
以下,将参照附图详细描述本发明示例性实施例。
图1是使用根据本发明示例性实施例的用于无损视频编码的设备的视频编码器100的框图。
参照图1,视频编码器100包括运动估计单元102、运动补偿单元104、帧间预测单元106、减法单元107、差分残余变换单元108、变换/量化单元110、熵编码单元112、差分残余逆变换单元114、逆变换/逆量化单元116、加法单元117、帧存储器118和滤波器120。
运动估计单元102通过从存储在帧存储器118中的参考帧读取与当前宏块最相似的区域来执行运动估计。更具体地讲,参照图2,运动估计单元102搜索参考帧的预定区域(搜索区域),并选择与当前宏块的区别最小的区域为最相似的区域,其中,图2是用于解释由运动估计单元102执行的运动估计的示图,而所述搜索区域从与当前帧的当前宏块相应的位置延伸。运动估计单元102输出最相似的区域与当前宏块的空间位置之间的差作为运动向量。
运动补偿单元104使用所述运动向量来从存储在帧存储器118中的参考帧读取所述最相似的区域并产生帧间预测块。以这种方式,运动估计单元102和运动补偿单元104彼此相互配合,从而形成了执行帧间预测的帧间预测单元。
帧内预测单元106通过在当前画面中搜索当前块的预定值来执行帧内预测。
不仅可以以16×16的宏块为单位执行帧间预测和帧内预测,而且可以以16×8、8×16、8×8、8×4、4×8或4×4的块为单位来执行帧间预测和帧内预测。
一旦通过帧间预测或者帧内预测形成了将被编码的当前块的预测块,减法单元107就计算当前块和预测块之间的差,并输出残余块Dn。通常,为在视频编码中减少数据量而对残余进行编码。
在有损编码的情况下,残余块Dn在变换/量化单元110中经过离散余弦变换(DCT)和量化,量化的残余块Dn由熵编码单元112进行熵编码,然后作为比特流输出。
在无损编码的情况下,残余块Dn不通过变换/量化单元110而被直接进行熵编码。具体地讲,在根据本发明示例性实施例的视频编码器100中,通过帧间预测获得的残余块Dn被差分残余变换单元108变换为差分残余块,所述差分残余块由熵编码单元112进行熵编码,然后作为比特流输出。
图3表示输入到差分残余变换单元108中的残余块。
如上所述,从当前块减去通过运动估计单元102和运动补偿单元104获得的帧间预测块,从而输出残余块300。在图3中,残余块300是与16×16宏块相应的帧间预测的残余块,残余块300的第x行第y列上的像素被称为rx,y。
差分残余变换单元108接收如图3所示的预定大小的残余块,并在预定方向上计算残余块300的像素之间的差,从而产生差分残余块。换句话说,差分残余变换单元108在水平方向上或者垂直方向上对残余块300的像素执行差分脉冲编码调制,从而产生差分残余块。产生差分残余块的原因是为了通过减小残余块300的像素的大小来提高压缩率。
图4是用于解释由差分残余变换单元108执行的产生水平差分残余块400的示图,图5是用于解释由差分残余变换单元108执行的产生垂直差分残余块500的示图,以及图6表示由差分残余变换单元108产生的差分残余块600。
参照图4,差分残余变换单元108产生水平差分残余块400,所述水平差分残余块400由通过从各个像素减去水平相邻的像素而产生的像素构成。换句话说,当残余块300的第x行第y列上的像素为rx,y时,如下所示来计算水平差分残余块400的第x行第y列上的像素r′x,yr′x,y=rx,y-rx,y-1………………(1)其中水平差分残余块400的第一列上的像素,也就是r′0,0、r′1,0、r′2,0...r′15,0与残余块300的第一列上的相应像素相同。换句话说,r′N,0=rN,0(N=0,1,2,...,15)。
参照图5,差分残余变换单元108产生垂直差分残余块500,所述垂直差分残余块500由通过从各个像素减去垂直相邻的像素而产生的像素构成。换句话说,当残余块300的第x行第y列上的像素为rx,y时,如下所示来计算垂直差分残余块500的第x行第y列上的像素r′x,yr′x,y=rx,y-rx-1,y………………(2)其中垂直差分残余块500的第一行上的像素,也就是r′0,0、r′0,1、r′0,2...r′0,15与残余块300的第一行上的相应像素相同。换句话说,r′0,N=r0,N(N=0,1,2,...,15)。
由差分残余变换单元108产生的水平差分残余块400或者垂直差分残余块500不经过任何变换和量化而被直接输入到熵编码单元112,以通过基于上下文的自适应二进制算术编码(CABAC)来进行无损编码。
由差分残余变换单元108输出的差分残余块被差分残余逆变换单元114逆变换为如图3所示的残余块,并为了重构而被加法单元117加到帧间预测块上。这里,可在差分残余块中针对将被逆变换的当前像素对预定方向上的像素求和来执行差分残余块的逆变换。更具体地讲,当使用水平相邻的像素之间的差已经产生熵编码的差分残余块,并且逆变换的差分残余块的第x行第y列上的像素是r′x,y时,差分残余逆变换单元114如下计算残余块的第x行第y列上的像素rx,yrx,y=Σi=0yr′x,i···(3)]]>当使用垂直相邻的像素之间的差已经产生熵编码的差分残余块时,差分残余逆变换单元114如下计算残余块的第x行第y列上的像素rx,yrx,y=Σi=0xr′i,y]]>由逆变换/逆量化单元116来对根据传统的编码而非本发明示例性实施例的编码进行量化的残余块进行重构。重构的块通过执行解块滤波(deblocking filtering)的滤波器120,然后被存储在帧存储器118中以用于对下一图像进行帧间预测。
图7是表示根据本发明示例性实施例的无损视频编码的方法的流程图。
参照图7,在操作710,包括运动估计单元102和运动补偿单元104的帧间预测单元以预定大小的块为单位在参考帧和当前帧之间执行帧间预测以产生将被编码的当前块的预测块,并输出与预测块和当前块之间的差相应的残余块。
在操作720,通过在预定方向上计算残余块的像素之间的差来产生差分残余块。为产生差分残余块,可使用等式1或者等式2。
在操作730,对差分残余块执行熵编码以输出比特流。
图8表示从根据本发明实施例的视频编码器100输出的比特流800的格式。
参照图8,比特流800包括具有编码方式信息的头810和具有关于变换系数或者运动向量的信息的数据部分820。在压缩率方面,使用差分残余块而进行的熵编码可能会比使用没有经过变换的残余块而进行的传统的熵编码展现的性能差。因此,熵编码单元112将对差分残余块进行熵编码的方式的成本与对残余块进行变换、量化、然后进行熵编码的方式的成本相比较,并且将成本小的方式确定为最终编码方式。熵编码单元112还将指示最终编码方式的1预定比特的810a添加到比特流800的头810,以通知接收比特流800的视频解码器比特流800已被编码的编码方式。
当熵编码单元112对差分残余块执行熵编码时,它可将指示预定方向的信息添加到比特流800的头810上,所述预定方向是指在为产生差分残余块而减去邻近像素时使用的方向。例如,熵编码单元112可将1比特的810b添加到比特流800的头810,其中所述的810b指示水平方向和垂直方向的哪一个用于对残余块的像素进行相减以产生差分残余块。
图9是使用根据本发明实施例的用于无损视频解码的设备的视频解码器900的框图。
参照图9,视频解码器900包括熵解码单元910、差分残余逆变换单元920、逆量化/逆变换单元930、加法单元940、帧内预测单元950和运动补偿单元960。
当熵解码单元910接收到使用根据本发明实施例的无损视频编码方法编码的比特流时,它对所述比特流进行熵解码并输出差分残余块。当熵解码单元910接收到根据现有技术编码的比特流时,它对所述比特流进行熵解码并输出残余块。如上所述,熵解码单元910可从包括在所述比特流的头中的编码方式信息确定将被解码的比特流已被编码的编码方式。
差分残余逆变换单元920对输入的差分残余块执行逆变换以产生残余块。差分残余逆变换单元920与图1的差分残余逆变换单元114的工作方式相同。更具体地讲,当输入在图6中示出的由熵解码单元910解码的差分残余块600时,差分残余逆变换单元920基于对产生差分残余块600的像素相减所使用的预定的方向,利用等式3或者等式4来产生残余块。这里,当已通过在水平相邻的像素之间相减而产生差分残余块600时,使用等式3,而当已通过垂直相邻的像素之间相减而产生差分残余块600时,使用等式4。例如,当已通过在水平相邻的像素之间相减而产生差分残余块600时,可从差分残余块600来如下计算残余块的像素rx,yrN,0=r′N,0(N=0,1,2,...,15)rN,1=r′N,0+r′N,1rN,2=r′N,0+r′N,1+r′N,2.......
rN,15=r′N,0+r′N,1+r′N,2+r′N,3+...+r′N,11+r′N,12+r′N,13+r′N,14+r′N,15同样,当已通过垂直相邻的像素之间相减而产生差分残余块600时,可从差分残余块600来如下计算残余块的像素rx,yr0,N=r′0,N(N=0,1,2,...,15)r1,N=r′0,N+r′1,Nr2,N=r′0,N+r′1,N+r′2,N.......
r15,N=r′0,N+r′1,N+r′2,N+r′3,N+...+r′11,N+r′12,N+r′13,N+r′14,N+r′15,N运动补偿单元960使用包括在比特流中的视频数据产生帧间预测块。加法单元940将所述帧间预测块加到重构的残余块上来重构原始图像。
逆量化/逆变换单元930对通过有损编码而进行编码的比特流执行逆量化/逆变换以产生残余块。帧内预测单元950和运动补偿单元960使用解码的头信息根据编码的图像类型而产生预测块。然后加法单元940将产生的预测块加到残余块上来重构原始图像。
图10是表示根据本发明示例性实施例的无损视频解码的方法的流程图。
参照图10,在操作1010,熵解码单元910接收按根据本发明示例性实施例的无损视频编码方法编码的比特流,并对所述比特流执行熵解码以输出差分残余块。
在操作1020,差分残余逆变换单元920对差分残余块执行逆变换以产生残余块。如上所述,为产生差分残余块,可基于在像素的相减中利用的预定的方向来使用等式3或等式4。
在操作1030,运动补偿单元960使用包括在所述比特流中的视频数据来执行帧间预测以产生预测块。
在操作1040,加法单元940将差分残余逆变换单元920产生的残余块和运动补偿单元960产生的预测块相加来重构原始图像。
表1显示当按根据现有技术的编码以及根据本发明实施例的无损编码对RGB4∶4∶4格式的JVT测试序列进行压缩时的压缩率。在本测试中,以16×16的宏块为单位对水平或者垂直差分残余块进行熵编码。
表1

参照表1,当根据本发明实施例对差分残余块进行编码时,与根据现有技术进行编码相比,压缩率平均增高9.5%。
如上所述,根据本实施例,在对由帧间预测获得的残余块进行无损编码时可提高压缩率。另外,与使用先前块的像素的现有技术不同,使用被熵编码的残余块的像素来形成差分残余块,本示例性实施例在通过使用流水线方法进行并行处理而没有显著改变处理速度的情况下提高了压缩率。
根据本发明示例性实施例的无损视频编码和解码方法也可作为计算机程序实现。形成所述计算机程序的代码及代码段可由本领域的计算机程序员容易地推断出来。另外,所述计算机程序被存储在计算机可读介质中并由计算机读取及执行,从而实现用于检测错误的方法。所述计算机可读介质的示例包括磁带、光学数据存储装置和载波。
尽管已经参照本发明的示例性实施例具体显示并描述了本发明,但是本领域的技术人员应该理解,在不脱离由权利要求限定的本发明精神和范围的情况下可在形式和细节上对本发明进行各种改变。
权利要求
1.一种无损视频编码的方法,所述方法包括产生残余块,所述残余块由与预测块和当前块的像素之间的差相应的残余信号构成;在预定方向上计算残余块的残余信号之间的差,并基于计算出的差来产生差分残余块;对差分残余块执行熵编码。
2.如权利要求1所述的方法,其中,所述预定方向是水平方向和垂直方向中的至少一个。
3.如权利要求1所述的方法,其中,当残余块的第x行第y列上的像素被称为rx,y时,除差分残余块的第1列上的像素外,差分残余块的第x行第y列上的像素r′x,y通过r′x,y=rx,y-rx,y-1来计算。
4.如权利要求1所述的方法,其中,当残余块的第x行第y列上的像素是rx,y时,除差分残余块的第1行上的像素外,差分残余块的第x行第y列上的像素r′x,y通过r′x,y=rx,y-rx-1,y来计算。
5.如权利要求1所述的方法,还包括将对差分残余块进行熵编码的第一方式的第一成本与对残余块进行变换、量化、然后再进行熵编码的第二方式的第二成本相比较,并基于第一成本和第二成本的较小者来确定最终编码方式。
6.如权利要求5所述的方法,还包括将指示最终编码方式的预定比特加到比特流的头上。
7.如权利要求1所述的方法,还包括将指示关于所述预定方向的信息的预定比特加到比特流的头上。
8.如权利要求1所述的方法,还包括以预定大小的块为单位在参考帧和当前帧之间执行帧间预测,以产生将被编码的当前块的预测块。
9.一种用于无损视频编码的设备,所述设备包括减法单元,产生残余块,所述残余块由与预测块和当前块的像素之间的差相应的残余信号构成;差分残余变换单元,在预定方向上计算残余块的残余信号之间的差,并基于计算出的差来产生差分残余块;熵编码单元,对差分残余块执行熵编码。
10.如权利要求9所述的设备,其中,当所述预定方向是水平方向并且残余块的第x行第y列上的像素是rx,y时,除差分残余块的第1列上的像素外,差分残余变换单元使用r′x,y=rx,y-rx,y-1来对差分残余块的第x行第y列上的像素r′x,y进行计算。
11.如权利要求9所述的设备,其中,当所述预定方向是垂直方向并且残余块的第x行第y列上的像素是rx,y时,除差分残余块的第1行上的像素外,差分残余变换单元使用r′x,y=rx,y-rx-1,y来对差分残余块的第x行第y列上的像素r′x,y进行计算。
12.如权利要求9所述的设备,其中,所述熵编码单元将对差分残余块进行熵编码的第一方式的第一成本与对残余块进行变换、量化、然后再进行熵编码的第二方式的第二成本相比较,并基于第一成本和第二成本的较小者来确定最终编码方式。
13.如权利要求12所述的设备,其中,所述熵编码单元将指示最终编码方式的预定比特加到比特流的头上。
14.如权利要求12所述的设备,其中,所述熵编码单元将指示关于所述预定方向的信息的预定比特加到比特流的头上。
15.如权利要求9所述的设备,还包括帧间预测单元,以预定大小的块为单位在参考帧和当前帧之间执行帧间预测,以产生将被编码的当前块的预测块。
16.一种无损视频解码方法,所述方法包括接收包括熵编码的差分残余块的比特流,所述差分残余块通过计算残余块的像素之间的差而产生,并且所述残余块由帧间预测块和当前块之间的差构成;对接收的比特流执行熵解码以对熵编码的差分残余块进行解码来创建解码的差分残余块;对解码的差分残余块执行逆变换以重新产生残余块;和将残余块和使用包括在比特流中的视频数据的帧间预测块相加来重构原始图像。
17.如权利要求16所述的方法,其中,所述对解码的差分残余块进行逆变换的步骤通过在解码的差分残余块中针对将被逆变换的当前像素对预定方向上的像素求和来执行。
18.如权利要求16所述的方法,其中,当通过使用水平相邻的像素之间的差已经产生熵编码的差分残余块并且逆变换的解码的差分残余块的第x行第y列上的像素是r′x,y时,对解码的差分残余块进行逆变换的步骤包括使用rx,y=Σi=0yr′x,i]]>来计算残余块的第x行第y列上的像素rx,y。
19.如权利要求16所述的方法,其中,当通过使用垂直相邻的像素之间的差已经产生熵编码的差分残余块并且逆变换的解码的差分残余块的第x行第y列上的像素是r′x,y时,对解码的差分残余块进行逆变换的步骤包括使用rx,y=Σi=0xr′i,y]]>来计算残余块的第x行第y列上的像素rx,y。
20.一种用于无损视频解码的设备,所述设备包括熵解码单元,接收使用差分残余块进行熵编码的比特流,所述差分残余块通过计算残余块的像素之间的差而产生,并且所述残余块由帧间预测块和当前块之间的差构成,并且所述熵解码单元对接收的比特流执行熵解码以输出差分残余块;差分残余逆变换单元,对差分残余块执行逆变换以重新产生残余块;帧间预测单元,使用包括在比特流中的视频数据产生帧间预测块;和加法单元,将残余块和帧间预测块相加来重构原始图像。
21.如权利要求20所述的设备,其中,所述差分残余逆变换单元在解码的差分残余块中针对将被逆变换的当前像素对预定方向上的像素求和。
22.如权利要求20所述的设备,其中,当通过使用水平相邻的像素之间的差已经产生熵编码的差分残余块并且逆变换的解码的差分残余块的第x行第y列上的像素是r′x,y时,差分残余逆变换单元使用rx,y=Σi=0yr′x,i]]>来计算残余块的第x行第y列上的像素rx,y。
23.如权利要求20所述的设备,其中,当通过使用垂直相邻的像素之间的差已经产生熵编码的差分残余块并且逆变换的解码的差分残余块的第x行第y列上的像素是r′x,y时,差分残余逆变换单元使用rx,y=Σi=0xr′i,y]]>来计算残余块的第x行第y列上的像素rx,y。
全文摘要
提供了一种用于无损视频编码和解码的方法及设备,其中,对通过计算由帧间预测获得的残余块的像素之间的差而产生的差分残余块执行编码,从而提高压缩率。所述无损视频编码方法包括以预定大小的块为单位在参考帧和当前帧之间执行帧间预测以产生将被编码的当前块的预测块;产生残余块,所述残余块由与预测块和当前块的像素之间的差相应的残余信号构成;在预定方向上计算残余块的残余信号之间的差,并基于计算出的差来产生差分残余块;以及对差分残余块执行熵编码。
文档编号H04N7/32GK1933601SQ20061012746
公开日2007年3月21日 申请日期2006年9月15日 优先权日2005年9月16日
发明者李英烈, 金大衍, 韩基勋, 许宰豪 申请人:世宗大学校产学协力团, 三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1