用于对视频信号进行解码的方法和设备与流程

文档序号:13095984阅读:128来源:国知局
本申请是申请日为2011年5月16日,申请号为“201180034696.4”,标题为“用于对视频信号进行编码的方法和设备以及用于对视频信号进行解码的方法和设备”的发明专利申请的分案申请。技术领域与示例性实施例一致的设备和方法涉及对视频信号进行编码和解码。

背景技术:
随着能够再现和存储高分辨率或高清(HD)视频内容的硬件的发展和普及,对于用于对高分辨率或HD视频内容进行有效编码或解码的编解码器的需求有所增加。在现有技术的视频编解码器中,基于具有预定大小的宏块,根据有限的编码方法对视频信号进行编码。将被显示的图像的质量可能受表现图像数据值的比特数量的影响。具体地讲,随着指示图像数据的精确度的比特深度(即,表现图像数据值的比特数量)增加,可以以更多种级别来表现数据。然而,当比特深度过度增加以增加图像数据的精确度时,在对图像数据进行处理的处理期间可能发生溢出,或者由于定点运算而可能发生舍入误差。

技术实现要素:
技术问题当比特深度过度增加以增加图像数据的精确度时,在对图像数据进行处理的处理期间可能发生溢出,或者由于定点运算而可能发生舍入误差。解决方案本发明提供了一种用于对视频信号进行编码的方法和设备以及一种用于对视频信号进行解码的方法和设备,所述方法和设备可在视频信号的变换和反变换期间增加视频信号的比特深度以提高计算精确度,并且可对视频信号进行处理,以尽管比特深度增加,但在计算操作期间防止发生超出允许的比特深度的溢出。有益效果根据示例性实施例,在不超出编解码器中允许的比特深度的范围内,可在视频信号的处理期间提高计算精确度,而不造成溢出。附图说明图1是根据示例性实施例的用于对视频信号进行编码的设备的框图;图2是图1的变换器的详细构造的框图;图3是根据第二示例性实施例的编码设备的构造的框图;图4是根据第三示例性实施例的编码设备的构造的框图;图5是根据第四示例性实施例的编码设备的构造的框图;图6是根据第五示例性实施例的编码设备的构造的框图;图7是根据示例性实施例的对视频信号进行变换的处理的参考示图;图8是根据另一示例性实施例的缩放操作的参考示图;图9是示出根据示例性实施例的对视频信号进行编码的方法的流程图;图10是根据示例性实施例的用于对视频信号进行解码的设备的流程图;图11是根据另一示例性实施例的用于对视频信号进行解码的设备的构造的框图;图12是示出根据示例性实施例的对视频信号进行解码的方法的流程图;图13是根据另一示例性实施例的对视频信号进行解码的方法的流程图。实现本发明的最优模式根据示例性实施例的一方面,提供了一种对视频信号进行编码的方法,所述方法包括:考虑在视频信号的变换期间获得的中间值的最大比特数量和视频信号的最大比特精确度,确定最优缩放比特深度;根据与确定的最优缩放比特深度和视频信号的原始比特深度之间的差对应的局部移位值,对视频信号进行缩放;以及对经过缩放的视频信号进行变换。根据另一示例性实施例的一方面,提供了一种用于对视频信号进行解码的方法,所述方法包括:对接收的比特流进行解析以提取视频信号的经过编码的数据;对提取的经过编码的数据进行熵解码以恢复熵解码的数据;考虑在熵解码的数据的反变换期间获得的中间值的最大比特数量和熵解码的数据的最大比特精确度来确定熵解码的数据的最优缩放比特深度;根据与确定的最优缩放比特深度和熵解码的数据的原始比特深度之间的差对应的局部移位值来对熵解码的数据进行缩放;以及对经过缩放的熵解码的数据进行反量化和反变换。根据另一示例性实施例的一方面,提供了一种用于对视频信号进行解码的方法,所述方法包括:接收根据局部移位值缩放和编码的视频信号,其中,所述局部移位值与最优缩放比特深度和视频信号的原始比特深度之间的差对应,其中,考虑在视频信号的变换期间获得的中间值的最大比特数量和视频信号的最大比特精确度来确定所述最优缩放比特深度;对接收的视频信号进行熵解码、反量化和反变换,以产生解码的视频信号;确定用于对解码的视频信号进行去缩放的局部移位值;以及根据确定的局部移位值对解码的视频信号进行去缩放。根据另一示例性实施例的一方面,提供了一种用于对视频信号进行编码的设备,所述设备包括:缩放单元,被配置为考虑在视频信号的变换期间获得的中间值的最大比特数量和视频信号的最大比特精确度,确定视频信号的最优缩放比特深度,并且根据与确定的最优缩放比特深度和视频信号的原始比特深度之间的差对应的局部移位值,对视频信号进行缩放;以及变换单元,被配置为对经过缩放的视频信号进行变换。根据另一示例性实施例的一方面,提供了一种用于对视频信号进行解码的设备,所述设备包括:解析单元,被配置为对接收的比特流进行解析并提取视频信号的经过编码的数据;熵解码单元,被配置为对提取的经过编码的数据进行熵解码并恢复熵解码的数据;缩放单元,被配置为考虑在熵解码的数据的反变换期间获得的中间值的最大比特数量和熵解码的数据的最大比特精确度来确定熵解码的数据的最优缩放比特深度,并且根据与确定的最优缩放比特深度和熵解码的数据的原始比特深度之间的差对应的局部移位值来对熵解码的数据进行缩放;以及反变换单元,被配置为对经过缩放的熵解码的数据进行反变换。根据另一示例性实施例的一方面,提供了一种用于对视频信号进行解码的设备,所述设备包括:解码单元,被配置为对根据局部移位值缩放和编码的视频信号进行熵解码、反量化和反变换并产生解码的视频数据,其中,所述局部移位值与最优缩放比特深度和视频信号的原始比特深度之间的差对应,其中,考虑在视频信号的变换期间获得的中间值的最大比特数量和视频信号的最大比特精确度来确定所述最优缩放比特深度;去缩放单元,被配置为确定用于对解码的视频信号进行去缩放所需的局部移位值,并根据确定的局部移位值对解码的视频信号进行去缩放。具体实施方式在下文中,应理解,当诸如“……中的至少一个”的表述在一列元素之后时,所述表述修饰整列元素而不是修饰所述列中的单个元素。图1是根据示例性实施例的用于对视频信号进行编码的设备100的框图。根据示例性实施例的视频信号编码设备100可包括预测单元110、缩放单元120、变换单元130、去缩放单元140、量化单元150和熵编码单元160。预测单元110可将输入的视频信号划分为具有预定大小的块,并对所述块中的每一个执行帧间预测或帧内预测,以产生预测块。具体地讲,预测单元110可执行产生运动矢量的帧间预测,并可执行使用关于与当前块邻近地布置的外围块的数据产生预测块的帧内预测,其中,所述运动矢量指示在参考画面被编码之后恢复的参考画面的预定搜索范围内与当前块相似的区域,并且预测单元110可产生并输出与预测块和原始输入块之间的差对应的残差信号。缩放单元120可执行改变残差信号的比特深度的缩放操作。变换单元130可执行将具有改变后的比特深度的残差信号变换到频率范围的频率变换操作。去缩放单元140可执行恢复变换到频率范围的残差信号的经过改变的比特深度的去缩放操作。量化单元150可量化去缩放的经过变换的信号。尽管没有示出,但是根据示例性实施例的视频信号编码设备100可包括反量化单元和反变换单元,其中,所述反量化单元和反变换单元被配置为对将被预测单元110用作参考数据的量化的信号进行反量化和反变换。熵编码单元160可执行量化的变换信号的变长编码并产生比特流。在下文中,将详细描述根据示例性实施例的对视频信号进行缩放和去缩放的操作。根据示例性实施例的用于对视频信号进行编码的设备100可将输入视频信号划分为二维的块,变换单元130可执行用于空频分析的线性变换运算,以将划分的块变换到频率范围。所述线性变换运算的示例可包括Karhuhen-Loeve变换(KLT)运算、奇异值分解(SVD)运算、离散余弦变换(DCT)运算和离散小波变换(DWT)运算。可通过输入块与包括预定系数的变换矩阵的矩阵乘法来表现所述线性变换运算。尽管现在将使用DCT运算作为线性变换运算的典型示例来描述示例性实施例,但将理解,一个或多个其他示例性实施例可应用于除DCT运算以外的其他线性变换运算。图7是根据示例性实施例的视频变换处理的参考示图。如上所述,根据示例性实施例的变换单元130可将视频信号变换到频率范围。例如,变换单元130可对N×N的输入块(其中,N是整数)执行列式变换和行式变换,并产生N×N的变换系数块。假设“Input”表示N×N的输入块,“Transform_hor”表示行式DCT变换矩阵,“transform_ver”表示列式DCT变换矩阵,并且“Output”表示变换结果的输出值,如图7中所示,可通过矩阵乘法来表现变换处理,如等式:Output=Transform_hor×Input×Transform_ver。这里,首次的矩阵乘法Transform_hor×Input可与对N×N的输入块Input中的每行执行的一维DCT运算对应,并且Transform_hor×Input与Transform_ver的乘法运算可与对Transform_hor×Input中的每列执行的一维DCT运算对应。行式DCT变换矩阵Transform_hor与列式DCT变换矩阵Transform_ver可具有转置矩阵的关系。位于行式变换矩阵Transform_hor的像素位置(i,k)(其中,i和k是整数)的系数可被定义为Hik,位于输入块Input的位置(i,k)的值可被定义为Iik,并且位于列式变换矩阵Transform_ver的像素位置(i,k)的系数可被定义为Vik。行式DCT变换矩阵Transform_hor的第(i,k)个元素Hik可由等式1定义:数学计算1[数学计算1]Hik=αicosπ(2k+1)i2N]]>其中,i和k每个=0,…,N-1,α0=1N,]]>αi=2N.]]>如作为转置矩阵的行式DCT变换矩阵的元素Hik,可使用利用余弦函数的值来表现列式DCT变换矩阵Transform_ver的第(i,k)个元素Vik。一般而言,在变换处理期间变换矩阵的系数可不被原样使用,而是,通过将所述系数乘以预定缩放系数而获得的值可被用于执行使用加法和移位运算的变换处理。尽管等式1示出使用浮点数的DCT运算,但DCT运算可使用浮点变换之外的定点变换。示例性实施例可被应用于所有的变换矩阵,并且不受变换类型的限制。当对输入块730执行行式一维DCT运算时(即,当计算首次的矩阵乘法Transform_hor×Input时),可通过相加乘积值(诸如Hab×Icd(a、b、c和d中的每一个是范围从1到4的任意整数))来获得通过计算首次的矩阵乘法Transform_hor×Input而获得的中间值矩阵的每一元素。在一个实施例中,从首次的矩阵乘法Transform_hor×Input的运算结果获得的中间值矩阵的第(1,1)个元素可以是H11×I11+H12×I21+H13×I31+H14×I41。假设当前变换的输入块的输入值的比特深度是m(其中,m是整数),则输入值Icd的绝对值可以是2^m或更小(即,Icd≤2m)。此外,假设变换块的每个元素Hab的绝对值是2p或更小(其中,p是整数),则从行式一维变换Transform_hor×Input的运算结果获得的矩阵中的每一个可以是4×2m×2p(或2m+p+2)或更小。在另一方面,通过执行行式一维DCT,可理解输入比特深度m可增加多达p+2。也就是说,在变换处理期间,使用乘法和加法,可按照与当输入值乘以预定值时相同的方式来增加比特深度。类似地,当列式一维DCT被执行时,由于乘法和加法,运算处理的中间值可比输入值更高,从而增加比特深度。因此,在变换处理期间获得的中间值可具有等于或小于在编码和解码设备中可用的最大比特精确度的值。因此,示例性实施例提供了一种缩放方法,其中,所述方法可防止在运算处理期间溢出,并在变换处理期间考虑比特深度的增加来增加视频信号的比特深度,从而提高计算精确度。假设在一维变换处理期间引起的比特深度的增量为TransformBitIncreasement,输入到变换单元110的输入视频信号的比特深度是m,去缩放单元140引起的比特深度的减量是de_scaling_bits,并且通过图7中示出的两个一维变换处理(行式一维变换处理和列式一维变换处理),比特深度增加了多达TransformBitIncreasement,则通过去缩放单元140输出的信号的比特深度的最大值可以是m+2×TransformBitIncreasement-de_scaling_bits。也就是说,去缩放单元140输出的信号的绝对值可以是2^(m+2×TransformBitIncreasement-de_scaling_bits)或更小。因此,为了防止溢出,在运算处理期间获得的中间值的最大可能值2^(m+2×TransformBitIncreasement-de_scaling_bits)可以是视频信号编码设备100可使用的最大值或更小。也就是说,比特深度的中间值的最大比特数量m+2×TransformBitIncreasement-de_scaling_bits可以是视频信号编码设备100可使用的最大比特精确度或更小。因此,缩放单元120可考虑所述中间值的最大值来确定预测单元110输出的残差信号的最优缩放比特深度。具体地讲,假设被缩放单元120改变并被输入到变换单元130的残差信号的比特深度是最优缩放比特深度mopt,由于被变换单元130和去缩放单元140变换和去缩放的中间值是2^(mopt+2×TransformBitIncreasement-de_scaling_bits),因此比特深度的中间值可以是mopt+2×TransformBitIncreasement-de_scaling_bits。当通过Maxbit来定义视频信号编码设备100可使用的最大比特精确度时,等式2的条件被满足以防止溢出:数学运算2[数学运算2]mopt+2×TransformBitIncreasement-de_scaling_bits≤Maxbit缩放单元120可确定可满足等式2的最大值mopt,并可将所述最大值mopt确定为最优缩放比特深度mopt。缩放单元120可将确定的最优缩放比特深度mopt与预测单元110输入的残差信号的比特深度m进行比较,并确定作为所述最优缩放比特深度mopt与残差信号的比特深度m之间的差的局部移位值local_shift,如等式3中所表示的:数学运算3[数学运算3]local_shift=mopt-m当局部移位值local_shift大于0时(即,当确定的最优缩放比特深度mopt大于残差信号的比特深度m时),缩放单元120可将残差信号向左移位(“<<”)多达局部移位值local_shift以增加残差信号的比特深度m,从而增加残差信号的比特精确度。也就是说,假设原始残差信号是“Input”并且具有改变的比特深度的残差信号是“Adjusted_Input”,缩放单元120可如等式4改变残差信号的比特深度:数学运算4[数学运算4]Adjusted_Input=Input<<local_shift例如,当残差信号的比特深度是5且最优缩放比特深度mopt是8时,残差信号可被向左移位多达3比特,从而残差信号的比特深度可增加到8。另外,当局部移位值local_shift小于0时(即,当确定的最优缩放比特深度mopt小于残差信号的比特深度m时),缩放单元120可将残差信号向右移位(“>>”)多达局部移位值local_shift的绝对值以减小残差信号的比特深度m。也就是说,缩放单元120可如等式5中所示改变残差信号的比特深度:数学运算5[数学运算5]Adjusted_Input=(Input+Offset)>>|local_shift|(当Input≥0时)Adjusted_Input=-(-Input+Offset)>>|local_shift|(当Input<0时)在等式5中,Offset=(1<<(|local_shift|-1))。当局部移位值local_shift小于0时,缩放单元120可考虑如等式5中示出的凑整和符号信息来执行向左移位运算,以减小比特深度。当局部移位值local_shift为0时,缩放单元120可跳过缩放操作。去缩放单元140可执行将缩放单元120改变的比特深度恢复为原始比特深度的去缩放操作。具体地讲,当局部移位值local_shift大于0时(即,当确定的最优缩放比特深度mopt大于残差信号的比特深度m时),去缩放单元140可将通过将预定偏移量加到经过变换的视频信号而获得的值向右移位,以减小经过变换的视频信号的比特精确度。当局部移位值local_shift小于0(即,当确定的最优缩放比特深度mopt小于残差信号的比特深度m时),去缩放单元140可将经过变换的视频信号向左移位,以增加经过变换的视频信号的比特精确度。假设由变换单元130输出的经过缩放、变换的信号是“adjusted_Output”并且被去缩放单元140恢复为原始标度的视频信号是“Output”,则去缩放算法可如下:{If(local_shift>0){If(Adjusted_output≥0)Output=(Adjusted_output+Offset)>>local_shiftelseOutput=-(-Adjusted_output+Offset)>>local_shift
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1