两步量化和编码方法和装置的制造方法_3

文档序号:8386258阅读:来源:国知局
码。在这种实施方式中,期望第二块的经解码的版本而不是原始第二块被用于进一步的处理。这是由于如下事实:变换和量化原始数据的过程是有损的,从而意指经解码的第二块数据可能不等于原始第二块的数据。解码器将使用第二块的经解码的版本,因此在以下步骤中使用第二块的经解码的版本以生成第三块可以保持经编码的块的准确性而无漂移。
[0047]在步骤512处,可以从原始第一块减去经解码的第二块,以产生表示在第二和第一块之间的残值或差值的第三块。下面给出这种减法的示例。在其它实施方式中,原始第二块可用于步骤512处的减法。在步骤514处,对第三或残值块进行编码。由于第三或残值块包含孤立像素,诸如脉码调制(PCM)之类的空间域变换或者完全没有变换可以导致跟随量化和熵编码之后将在比特流中包括很少的比特。在步骤516处,在经编码的视频比特流中包括第三块。
[0048]通过在图片层、区段/片段层、宏块层或块层(其中块小于宏块)中指定若干量化和编码模式之一,这种过程可以实现成比特流语法。一种模式可以指示只有变换域量化和编码,第二模式可以指示只有空间域量化和编码,以及第三模式可以指示跟随变换域量化和编码之后有空间域量化和编码。例如,模式将由报头中的比特表示。
[0049]图6是用于对根据图5编码的块进行解码的过程600的流程图。为了解释简单起见,过程600被描绘和描述为一系列步骤。然而,依照本公开的步骤可以按照各种顺序和/或同时发生。例如,虽然在图6中,在步骤606处对第二块进行解码之前在步骤604处对第一块进行解码,但是应该理解的是,可以按照其它顺序在比特流中包括块,并且保持在本公开的范围内。例如,可以在解码第一块之前或者与解码第一块同时地对第二块进行解码。另夕卜,依照本公开的步骤可以在具有本文中未给出和描述的其它步骤的情况下发生。此外,并非所有图示的步骤可以被要求以实现依照所公开的主题的方法。
[0050]过程600可以由诸如接收站30之类的计算设备实现为软件程序。例如,软件程序可以包括存储在存储器34中的机器可读指令,机器可读指令在由诸如CPU 32之类的处理器执行时,可以使得计算设备对存储在存储器34中的数据进行操作并且执行过程600。过程600还可以全部或部分使用诸如现场可编程门阵列等之类的硬件部件来实现。如上面解释的,一些计算设备可以具有多个存储器和多个处理器,并且在这样的情况下过程600的步骤可以通过使用不同的处理器和存储器而是分布式的。
[0051]在步骤602处,由诸如解码器100之类的解码器接收经编码的视频比特流。可以以任何数量的方式接收经编码的视频比特流,诸如通过网络、通过线缆接收视频数据,或者通过从主存储器或其它存储设备(包括磁盘驱动器或诸如CF卡、SD卡等之类的可移除介质)读取视频数据。在步骤604处,过程600对第一块进行解码。第一块对应于在上面的过程500的步骤506和508中被编码和包括在视频流中的第二块。这一块可以被熵解码和解量化。然后逆变换解量化系数,以将块恢复到空间域。
[0052]在步骤606处,对第二块进行解码,该第二块对应于在过程500的步骤514和516中被编码和包括在编码视频流中的第三块。第二块可以被熵解码、解量化并且然后被解码。由于第二块中的数据已经在空间域中,变换数据可能是不必要的。如果第二数据块已被脉码调制,则通过加上连续条目可以反转PCM。在步骤608处,通过在逐个像素的基础上使块加起来,可以组合经解码的第二块和经解码的第一块。以这种方式组合块可以在由编码和解码算法引入的误差限制内在空间域中重新产生原始块。
[0053]空间域和变换域中的数据的不同块的表示对于示出不同域中的数据性质和图示上述技术的有用性是有用的。这样的表示通过示例的方式示出在图7至图10中。
[0054]图7是示出使用DCT变换将空间域中的像素的8x8块702变换成变换系数的二维矩阵704的图。具有诸如脉冲或阶跃函数之类的空间域中的非常简单的表示的块可以变成DCT变换域中的非常复杂的系数集。图8是使用DCT变换将空间域中的像素的8x8块802变换成变换系数的二维矩阵804的另一示例的图。空间域中的形状是相当简单的,但它变换成变换系数的复杂块。这两个示例说明了如下情况:其中相对简单、紧凑和易于编码的空间域被变换成变换域中的复杂、难以编码的图案。在这种情况下,空间域中的编码可以导致比将由于变换域中的编码所要求的更少的比特被包括在经编码的视频比特流中。
[0055]某些情况可以涉及复杂的空间域表示但简单的变换域表示。图9是使用DCT变换将空间域中的像素的8x8块902变换成变换系数的二维矩阵904的图,其中矩阵904进一步被量化。这说明,具有复杂表示的空间域数据块可以在变换域中被高效地表示,其中数据具有低频分量。跟随将经变换的系数矩阵904量化成经量化的变换系数的二维矩阵906之后,可以使经变换的系数矩阵904的简单性更清楚。在这一示例中量化因子或量化级是10,使得通过使经变换的系数除以10并且切断任何小数值来计算经量化的变换系数。在具有许多零分量的情况下,这一矩阵906相对易于编码。
[0056]在一些情况下,在空间域或变换域中均不能以简单的方式表示数据的块。图10是使用DCT变换将空间域中的像素的8x8块1002变换成变换系数的二维矩阵1004的另一示例的图,其中矩阵1004进一步被量化。块1002和矩阵1004 二者都是复杂的表示。通过使用例如为32的量化因子来量化矩阵1004,以生成经量化的变换系数的二维矩阵1006。矩阵1006是复杂的,并且因此难以编码,即使它已经被严重量化并且在解量化和重构之后很可能导致大量误差。
[0057]图1lA和图1lB是图示图5的过程的图。如上面解释的,空间域中的孤立高值首先用从块的像素值的其余像素值预测的值替换。孤立低值也可以通过这种技术来替换。这被称为使数据块重新成形,因为它形成具有比原始块相对更好的能量分布的数据块或矩阵,使得可以更高效地表示和编码经变换的系数。
[0058]图1lA示出表示图10的块1002、根据步骤504移除孤立数据点而重新成形的第二块1102。在这一示例中,块1002的平均像素值已经被计算为(mean2x 8) =35,其中mean2是块1002中的像素值的二维平均值。70或更小的值被选择作为预定范围以标识将从块中被移除的像素。在这种情况下,具有大于预定范围的值的像素被标识并且用平均值35替换以形成块1102。在其它情况下,预定范围可以包括最小和最大值,其中具有在范围之外的值的像素被标识并且用另一值替换。通过首先应用DCT变换以形成变换系数的矩阵1104并且然后使用为25的量化因子或量化值将矩阵1104量化成矩阵1106,在步骤506中对块1102进行编码。尽管使用更小的量化值(25对32),在重新成形情况下的块或矩阵1106比在没有重新成形情况下的原来变换的矩阵1006明显更简单。此时在过程中(诸如步骤508中示出的),或者以后在过程中,块1106行进通过任何其余编码步骤(例如熵编码),并且根据已知技术与压缩比特流88相加。
[0059]接下来,可以针对块1106执行逆量化(S卩,解量化)和逆变换。图1lB示出块1108,例如块1108是步骤510中的经解码的第二块。更具体地,块1108是通过使用为25的量化值解量化块1106的量化变换系数并且然后针对所得的变换系数执行逆DCT变换而对块1102进行重构的结果。注意,经重构的第二块1108的像素值不完全与第二块1102匹配。如上面提到的,这是由于有损压缩。在步骤512中,从原始块1002逐个像素减去重构块1108,以形成差值块1110,差值块1110对应于第三块。然后通过首先经历使用量化因子(这里通过示例的方式为10)的量化以形成量化系数的矩阵或块1112,在步骤514中对块1110进行编码。块1112在空间域中是紧凑、易于编码的矩阵。根据已知技术,块1112可以被熵编码并且然后被包括在压缩比特流88中。用于对第二块1106和第三块1112进行编码的比特之和少于用于对第一块1002进行编码所要求的比特数量,从而节省了经编码的视频比特流中的比特。
[0060]在上面描述的实施方式中,可以在两步过程中对视频流进行编码,该两步过程标识块中的具有选择空间性质的像素,例如具有超过邻近像素的值多于一定量的值的孤立像素。标识的像素在块中用例如设定为块的平均值的像素替换。然后使用有损变换对块进行变换,并且对经变换的块的副本进行逆变换。公开实施方式所使用的变换是可以将块的像素变换到变换域中的可逆变换,其中块的经变换的像素可以被逆变换以重新形成原始像素。有损变换是这样的可逆变换:当变换/逆变换时,产生具有其值接近于但可能不完全匹配原始像素值的像素的块。
[0061]从原始块的像素减去块的经逆变换的副本的像素,以形成包含被标识为具有预选空间性质的像素的残值或残差块。可以从原始数据减去经逆变换的块,而不是使用重新成形的块,因为这可以更加密切地反映在对块进行解码时解码器可用的像素值,并且从而产生更准确的结果。
[0062]通过量化像素数据以降低用于表示数据的离散状态的数量,可以进一步对残值块和经变换的块进行编码。块可以被熵编码以减少冗余数据,并且然后被包括在经编码的视频比特流中,以用于传输或存储。在这种两步方式下的编码视频数据可以允许两个经编码的块在比特流中由比使用单步过程编码的块更少的比特来表示,
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1