CN103096065B - 使用多级有效图进行编码和解码的方法及装置 - Google Patents

使用多级有效图进行编码和解码的方法及装置 Download PDF

Info

Publication number
CN103096065B
CN103096065B CN201210421030.0A CN201210421030A CN103096065B CN 103096065 B CN103096065 B CN 103096065B CN 201210421030 A CN201210421030 A CN 201210421030A CN 103096065 B CN103096065 B CN 103096065B
Authority
CN
China
Prior art keywords
coefficient
efficiency
group
labelling
echo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210421030.0A
Other languages
English (en)
Other versions
CN103096065A (zh
Inventor
阮·阮
计天颖
何大可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Has the media International Limited
Original Assignee
BlackBerry Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BlackBerry Ltd filed Critical BlackBerry Ltd
Priority to CN201610335065.0A priority Critical patent/CN105872550B/zh
Publication of CN103096065A publication Critical patent/CN103096065A/zh
Application granted granted Critical
Publication of CN103096065B publication Critical patent/CN103096065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

描述了针对视频数据进行编码和解码的方法,其中在编码和解码过程中使用多级有效图。形成有效图的有效系数标记被归到连续的组,并且有效系数组标记针对每个组表示该组是否不包含非零有效系数标记。如果在组中不存在非零有效系数标记,则将有效系数组标记设置为0。将有效系数组标记的集合编码在比特流中。将落入有效系数组标记为非零的组内的任何有效系数标记编码在比特流中,然而不将落入有效系数组标记为0的组内的有效系数标记编码在比特流中。

Description

使用多级有效图进行编码和解码的方法及装置
版权声明
本文档和附属材料的公开的一部分包含要求了版权的材料。版权人不反对任何人对如在专利和商标局的文件或记录中发表的专利文档或专利公开的复制,但是无论如何保留所有其他版权权利。
技术领域
本申请总体涉及数据压缩,具体地涉及使用多级有效图对视频进行编码和解码的方法和设备。
背景技术
数据压缩发生在众多上下文中。在通信和计算机联网中非常普遍地使用数据压缩,以有效地存储、传输和复制信息。其在图形、音频和视频的编码方面得到了具体应用。由于每个视频帧所需的大量数据以及经常需要发生的编码和解码的速度,视频对数据压缩提出相当大的挑战。视频编码的当前最新技术是ITU-TH.264/AVC视频编码标准。该标准定义了针对不同应用的多个不同简档,包括主简档、基线简档等等。通过MPEG-ITU的联合发起,当前正在开发的下一代视频编码标准是高效视频编码(HEVC)。
存在用于编码/解码图像和视频的多个标准,包括H.264,其使用基于块的编码过程。在这些过程中,图形或帧被分成块,通常是4×4或8×8,并且块被频谱变换成系数、量化、和熵编码。在许多情况中,被变换的数据不是实际像素数据,而是预测操作之后的残差数据。预测可以是:帧内的,即帧/图像内的块到块;或者帧间的,即在帧之间(也称为运动预测)。期望HEVC(也称为H.265)将也具有这些特征。
当对残差数据进行频谱变换时,这些标准中的多个标准规定了使用离散余弦变换(DCT)或基于它的一些变型。然后使用量化器对所得DCT系数进行量化,以产生量化后的变换域系数或索引。
然后,使用具体的上下文模型对量化后的变换域系数的块或矩阵(有时称为“变换单元”)进行熵编码。在H.264/AVC中和在针对HEVC的当前开发工作中,量化后的变换系数通过下述方式来编码:(a)对指示块中的最后一个非零系数的位置的末位有效系数位置进行编码;(b)对指示块中的包含非零系数的位置(除了末位有效系数位置)的有效图进行编码;(c)对非零系数的幅度进行编码;以及(d)对非零系数的符号进行编码。对量化后的变换系数的编码常常占到比特流中的编码数据的30-80%。
变换单元通常是N×N。常见大小包括4×4、8×8、16×16和32×32,尽管其他大小也是可能的。对有效图中的符号的熵编码基于上下文模型。在4×4的亮度(luma)或色度块或变换单元(TU)的情况下,TU中的每个系数位置与单独的上下文相关联。也即,针对4×4的亮度或色度TU,编码器和解码器跟踪总共30个(不包括右下角位置)单独的上下文。将8×8的TU划分成(出于上下文关联的目的,在概念上进行划分)2×2的块,使得8×8TU中的每个2×2的块与一个不同的上下文相关联。因此,针对8×8的亮度或色度TU,编码器和解码器跟踪总共16+16=32个上下文。这意味着,在对有效图的编码和解码期间,编码器和解码器跟踪和查找62个不同的上下文。当考虑16×16的TU和32×32的TU时,所涉及的不同上下文的总数是88。在附加的26个上下文中,13个针对亮度TU,而13个针对色度TU。如下将这13个上下文分配到16×16的TU或32×32的TU中的系数位置。令(r,c)表示TU中的位置,其中,如果TU的大小是16×16,则0<=r,c<=15,如果TU的大小是32×32,则0<=r,c<=31。然后,将3个不同的上下文分配给包括DC位置(0,0)在内的左上角的三个位置(0,0)、(0,1)、(1,0);将5个不同的上下文分配给区域{(r,c):2<=r+c<5}中的位置;以及将最后5个不同上下文分配给所有剩余位置。除了前三个针对(0,0)、(0,1)、(1,0)的上下文之外,针对区域{(r,c):2<=r+c<5}中的位置的上下文的推导取决于其右下方的邻居。令s(r,c)表示位置(r,c)处的系数的有效标记,即,如果系数不等于0,则s(r,c)=1,否则s(r,c)=1。针对位置(r,c)的上下文等于min(s(r+1,c)+s(r,c+1)+s(r+2,c)+s(r,c+2)+s(r+1,c+1),4),其中min(a,b)返回a和b之间的较小的值。类似地推导剩余区域{(r,c):r+c>=5}中的位置(r,c)的上下文。
针对4×4和8×8的有效图的上下文通过比特位置来确定。针对16×16和32×32有效图的上下文主要通过相邻比特的值来确定。针对16×16和32×32有效图的上下文的确定的计算强度相当大,因为在大多数情况下处理器通过查找相邻有效标记的值来确定上下文,其涉及代价高昂的存储器存取操作。
发明内容
本申请描述了用于以上下文自适应的编码和解码来对有效图进行编码和解码的方法和编码器/解码器。该编码器和解码器使用多级有效图。在至少一种情况下,使用具有较大变换单元(例如16×16和32×32的TU)的多级图。
在一个方面,本申请描述了一种根据编码数据的比特流重构变换单元的有效系数标记的方法。该方法包括:重构有效系数组标记,其中每个有效系数组标记对应于相应的有效系数标记组;以及通过以下操作重构每个有效系数标记:如果该有效系数标记是在对应的有效系数组标记为非零的组中,则从比特流中解码出该有效系数标记,以及如果该有效系数标记是在对应的有效系数组标记为0的组中,则将该有效系数标记设置为0。
在另一方面,本申请描述了一种用于对变换单元的有效系数标记进行编码的方法。该方法包括:对有效系数组标记进行编码,其中每个有效系数组标记对应于相应的有效系数标记组,以及其中将有效系数组标记设置为0以指示对应组不包含非零有效系数标记;以及,针对每个有效系数标记,如果该有效系数标记是在对应的有效系数组标记为非零的组之一中,则对该有效系数标记进行编码,以及如果该有效系数标记是在对应的有效系数组标记为0的组之一中,则不对该有效系数标记进行编码。
在一个方面,对有效系数标记的重构按照规定顺序(诸如前向扫描顺序或者逆扫描顺序)执行。在另一方面,对有效系数组标记的重构按照规定顺序(诸如前向扫描顺序或者逆扫描顺序)执行,该规定顺序可以与对有效系数标记的重构所使用的规定顺序相同。
一方面,如果对应组中的所有有效系数标记都为0,则将有效系数组标记设置为0。另一方面,如果对应组中的至少一个有效系数标记不为0,则有效系数组标记不为零。另一方面,特殊情况可能导致即使对应组中的所有有效系数标记都为0,有效系数组标记也不为0,在该情况下,解码器将从比特流中解码出针对该对应组的所有0值的有效系数标记。
在又一方面,本申请描述了一种根据编码数据的比特流重构变换单元的有效系数标记的方法。该方法包括:从比特流中解码出有效系数组标记,其中每个有效系数组标记对应于相应的有效系数标记组,以及如果该对应组不包含非零有效系数标记,则每个有效系数组标记为0;以及针对每个有效系数组标记,如果该有效系数组标记不为0,则从比特流中解码出针对该对应的有效系数标记组的有效系数标记,否则将对应的有效系数标记组中的所有有效系数标记都设置为0。
在又一方面,本申请描述了一种根据编码数据的比特流重构变换单元的有效系数标记的方法,其中所述变换单元被划分成非重叠的有效系数标记组。该方法包括:通过将至少一个有效系数组标记的值设置为1,重构有效系数组标记,其中每个有效系数组标记对应于相应的有效系数标记组;以及如果每个有效系数标记是在对应的有效系数组标记为非零的组中,则通过从比特流中解码出该有效系数标记来重构该有效系数标记,以及如果该有效系数标记是在对应的有效系数组标记为0的组中,则将该有效系数标记设置为0。
在又一方面,本申请描述了一种用于对变换单元的有效系数标记进行编码的方法,其中所述变换单元被划分成非重叠的有效系数标记组。该方法包括:对有效系数组标记进行编码,其中每个有效系数组标记对应于有效系数标记组中的相应的组,以及将有效系数组标记设置为0以指示对应组不包含非零有效系数标记,以及该编码排除至少一个被指明为1的有效系数组标记,而无论其对应组是否包含非零有效系数标记。该方法还包括:针对每个有效系数标记,如果该有效系数标记是在对应的有效系数组标记为非零的组之一中,则对该有效系数标记进行编码,以及如果该有效系数标记是在对应的有效系数组标记为0的组之一中,则不对该有效系数标记进行编码。
在又一方面,本申请描述了配置为执行这种编码和解码方法的编码器和解码器。
在又一方面,本申请描述了存储计算机可执行程序指令的非瞬时计算机可读介质,所述计算机可执行程序指令在被执行时将处理器配置为执行所描述的编码和/或解码的方法。
结合附图,通过阅读以下示例的描述,本领域技术人员将理解本申请的其他方面和特征。
附图说明
现在参照附图作为示例,附图示出了本申请的示例实施例,在附图中:
图1以框图形式示出了用于对视频进行编码的编码器;
图2以框图形式示出了用于对视频进行解码的解码器;
图3示出了包含量化后的变换域系数的示例变换单元;
图4示出了包含图3的变换单元的有效系数标记的示例有效图;
图5示出了包含图4的有效图的有效系数组标记的示例L1有效图;
图6以流程图形式示出了对有效系数标记进行编码的示例方法;
图7以流程图形式示出了根据编码数据重构有效图的示例方法;
图8以流程图形式示出了用于解码和重构有效系数组标记的示例过程;
图9以流程图形式示出了用于多级有效图编码的示例比率失真优化的量化过程;
图10示出了在应用L1RDOQ之后的图4的示例L0有效图;
图11示出了在L1RDOQ之后与图10的L0有效图对应的L1有效图;
图12示出了编码器的示例实施例的简化框图;以及
图13示出了解码器的示例实施例的简化框图。
在不同的附图中已经使用类似的参考标号来标记类似的组份。
具体实施方式
在以下描述中,参考用于视频编码的H.264标准和/或开发中的HEVC标准,描述了一些示例实施例。本领域技术人员应该理解,本申请不限于H.264或HEVC,而是可适用于其他视频编码/解码标准,包括可能的将来的标准、多视图编码标准、可伸缩视频编码标准、以及可重新配置的视频编码标准。
在以下描述中,当参考视频或图像时,在某种程度上可以互换地使用术语帧、图片、片、平铺块(tile)和矩形片组。本领域技术人员将认识到,在H.264标准的情况中,帧可以包含一个或多个片。还将认识到,取决于适用的图像或视频编码标准的特定要求或术语学,某些编码/解码操作是逐帧执行的,一些编码/解码操作是逐片执行的,一些编码/解码操作是逐图片执行的,一些编码/解码操作是逐平铺块执行的,以及一些编码/解码操作是逐矩形片组执行的,视情况而定。在任何特定实施例中,适用的图像或视频编码标准可以确定是否关于帧和/或片和/或图片和/或平铺块和/或矩形片组来执行以下描述的操作。相应地,根据本公开,本领域技术人员将理解,这里描述的特定操作或过程以及对帧、片、图片、平铺块、矩形片组的特定引用对于给定实施例是否适用于帧、片、图片、平铺块、矩形片组、或者其中的一些或全部。这也可应用于变换单元、编码单元、编码单元的组等等,如根据以下描述将变得明显的那样。
本申请涉及有效图。有效图是映射到或对应于变换单元的标记的块、矩阵或组。每个标记指示变换单元中的对应位置是否包含非零系数。在现有标准中,这些标记可被称为有效系数标记。在现有标准中,每个系数一个标记,并且如果对应系数为0,则该标记是为0的比特,以及如果对应系数不为0,则该标记被设置为1。如根据下文描述将理解的,本文使用的术语“有效图”旨在指代变换单元的有效系数标记的矩阵或有序集合。
现在参照图1,图1以框图形式示出了用于对视频进行编码的编码器10。还参照图2,图2示出了用于对视频进行解码的解码器50的框图。可以认识到,这里描述的编码器10和解码器50均可以在专用或通用计算设备(包含一个或多个处理单元和存储器)上实现。编码器10或解码器50执行的操作可以通过例如专用集成电路或通过通用处理器可执行的存储程序指令来实现,视情况而定。设备可以包括附加软件,包括例如用于控制基本设备功能的操作***。关于以下描述,本领域技术人员可以认识到在其中可以实现编码器10或解码器50的设备和平台的范围。
编码器10接收视频源12并产生编码比特流14。解码器50接收编码比特流14并输出解码视频帧16。编码器10和解码器50可以被配置为符合多个视频压缩标准来操作。例如,编码器10和解码器50可以符合H.264/AVC。在其他实施例中,编码器10和解码器50可以符合其他视频压缩标准,包括类似HEVC之类的H.264/AVC标准的演进。
编码器10包括空间预测器21、编码模式选择器20、变换处理器22、量化器24和熵编码器24。本领域技术人员可以认识到,编码模式选择器20确定视频源的适合编码模式,例如对象帧/片是I、P还是B类型,帧/片内的特定编码单元(例如宏块、编码单元等)是帧间还是帧内编码。变换处理器22对空间域数据执行变换。具体地,变换处理器22应用基于块的变换来将空间域数据转换为频谱分量。例如,在许多实施例中,使用离散余弦变换(DCT)。在一些实施例中,可以使用其他变换,如离散正弦变换等等。取决于宏块或编码单元的大小,该基于块的变换是在编码单元、宏块或者子块的基础上执行的。在H.264标准中,例如,典型的16×16的宏块包含16个4×4的变换块,并且DCT过程是对4×4的块执行。在一些情况中,变换块可以是8×8的,这意味着每个宏块存在4个变换块。在另外的情况中,变换块可以是其他大小。在一些情况中,16×16的宏块可以包括4×4和8×8的变换块的非重叠的组合。
将基于块的变换应用于像素数据块得到变换域系数的集合。在本上下文中,“集合”是有序集合,在该集合中系数具有系数位置。在一些实例中,变换域系数的集合可被认为是系数的“块”或矩阵。在本文的描述中,短语“变换域系数的集合”或“变换域系数的块”被互换地使用,并且用于指示变换域系数的有序集合。
量化器24对变换域系数的集合进行量化。然后,熵编码器26对量化后的系数和关联信息进行编码。
本文中,可以将量化后的变换域系数的块或矩阵称为“变换单元”。
帧内编码的帧/片(即,类型I)不参照其他帧/片进行编码。换言之,它们不采用时间预测。然而,帧内编码的帧依赖于帧/片内的空间预测,如图1中通过空间预测器21进行说明。即,在对特定块编码时,可以将块中的数据与针对该帧/片已经编码的块内邻近像素的数据进行比较。使用预测算法,可以将块的源数据转换为残差数据。然后,变换处理器22对残差数据进行编码。例如,H.264规定了4×4变换块的9种空间预测模式。在一些实施例中,这9种模式中的每一种可以用于独立处理块,然后使用速率失真优化来选择最佳模式。
H.264标准还规定了使用运动预测/补偿来利用时间预测。相应地,编码器10具有反馈环路,反馈环路包括:解量化器28、反变换处理器30和解块处理器32。解块处理器32可以包括解块处理器和过滤处理器。这些单元反映了解码器50实现以再现帧/片的解码过程。帧存储器34用于存储再现帧。按照这种方式,运动预测基于在解码器50处重构帧是什么,而不基于原始帧,由于编码/解码中涉及的有损压缩,原始帧可能不同于重构帧。运动预测器36使用帧存储器34中存储的帧/片作为源帧/片,来与当前帧进行比较,以识别相似块。相应地,对于应用运动预测的宏块或编码单元,变换处理器22编码的“源数据”是出自运动预测过程的残差数据。例如,其可以包括关于参考帧、空间置换或“运动矢量”的信息,并且残差数据是表示参考块与当前块之间的差异(如果存在)的像素数据。关于参考帧和/或运动矢量的信息可以不由变换处理器22和/或量化器24处理,而是可以提供给熵编码器26,作为比特流的一部分与量化后的系数一起编码。
本领域技术人员将认识到用于实现视频编码器的细节和可能变型。
解码器50包括:熵解码器52、解量化器54、反变换处理器56、空间补偿器57和解块处理器60。解块处理器60可以包括解块和过滤处理器。帧缓冲器58提供重构帧以便应用运动补偿的运动补偿器62使用。空间补偿器57表示根据先前解码块来恢复特定帧内编码块的视频数据的操作。
熵解码器52接收并解码比特流14,以恢复量化后的系数。在熵解码过程中,还可以恢复辅助信息,如果适用,一些辅助信息可以提供给运动补偿环路,以用于运动补偿。例如,熵解码器52可以恢复运动矢量和/或针对帧间编码宏块的参考帧信息。
然后,解量化器54对量化后的系数进行解量化,以产生变换域系数,然后,反变换处理器56对变换域系数进行反变换,以重建“视频数据”。可以认识到,在一些情况下,如对于帧内编码的宏块或编码单元,重建的“视频数据”是相对于帧内先前解码块的、用于空间补偿的残差数据。空间补偿器57根据残差数据和来自先前解码块的像素数据来产生视频数据。在其他情况下,如对于帧间编码的宏块或编码单元,来自反变换处理器56的重建“视频数据”是相对于来自不同帧的参考块的、用于运动补偿的残差数据。这里,空间和运动补偿均可以称为“预测操作”。
运动补偿器62在帧缓冲器58内定位专用于特定帧间的编码宏块或编码单元的参考块。运动补偿器62基于专用于帧间编码的宏块或编码单元的参考帧信息和运动矢量来进行该操作。然后,运动补偿器62提供参考块像素数据,以与残差数据组合,得到针对该编码单元/宏块的重构视频数据。
然后,可以对重构帧/片应用解块/过滤过程,如解块处理器60所示。在解块/过滤之后,输出帧/片作为解码视频帧16,例如以在显示设备上显示。可以理解,视频回放机(如计算机、机顶盒、DVD或蓝光播放器和/或移动手持设备)可以在输出设备上显示之前将解码帧缓冲在存储器中。
期望兼容HEVC的编码器和解码器将具有这些相同或类似特征中的多个特征。
有效图编码
如上面注意到的,对量化后的变换域系数的块或集合的熵编码包括对量化后的变换域系数的块或集合的有效图(例如,有效系数标记的集合)进行编码。该有效图是指示非零系数出现在哪些位置(除了末位位置)的块的二进制映射。块可以具有某些与之相关联的特性。例如,其可以是来自片内编码的片(intra-codedslice)或者片间编码的片(inter-codedslice)。其可以是亮度块或者色度块。片的QP值可以逐片发生变化。所有这些因素都可能对有效图的熵编码的最佳方式产生影响。
根据扫描顺序(其可以是垂直的、水平的、对角线的、Z字形的、或者可以是适用的编码标准规定的任何其他扫描顺序)将有效图转换成矢量。该扫描通常按照“逆”顺序完成,该“逆”顺序即:从末位有效系数开始,并且按照逆扫描顺序工作反向穿过有效图,直到到达[0,0]处的标记。然后,使用适用的上下文自适应编码机制对每个有效系数比特进行熵编码。例如,在许多应用中,可以使用上下文自适应二进制算术编码(CABAC)机制。其他实现可以使用其他利用二元化的上下文自适应编解码。示例包括二进制算术编码(BAC)、可变到可变(V2C)编码、以及可变到固定(V2F)长度编码。利用4×4和8×8的图,针对每个比特位置,分配上下文。当对该比特位置的比特(有效系数标记)进行编码时,分配的上下文以及该点的上下文历史确定最小可能符号(LPS)(或者在一些实现中,是最大可能符号(MPS))的估计概率。
在现有的视频编码器中,针对编码器和解码器二者预先确定上下文分配。例如,对于4×4的亮度块,当前草案HEVC标准规定4×4的有效图中的每个比特位置具有唯一的上下文。排除末位位置,这意味着为了对4×4的亮度有效图进行编码,跟踪15个上下文。针对每个比特位置,分配给该位置的上下文确定与该位置的LPS相关联的估计概率。然后,使用估计概率对实际比特值进行编码,最后,基于该实际比特值更新分配给该位置的上下文。在解码器处,使用相同的上下文模型对编码数据进行解码。跟踪每个比特位置的上下文,并且使用其来确定估计概率,以便解码数据以恢复该位置的比特。
利用16×16和32×32的有效图,针对有效(significant)的上下文(主要)基于相邻有效系数标记值。在针对16×16和32×32的有效图所使用的13个上下文中,存在专用于比特位置[0,0]和相邻比特位置的特定上下文,但是有效系数标记中的大多数获得取决于相邻有效系数标记的累积值的5个上下文之一。在这些实例中,对有效系数标记的正确上下文的确定取决于对相邻位置(通常是5个位置,但是在一些实例中可以是更多或更少的位置)处的有效系数标记的值的确定和求和。这涉及多次存储器存取,其在存储器带宽要求方面可能代价高昂。而且,在许多实例中,16×16和32×32的有效图包含较大数量的0。相应地,在对具有很少系数值的大图的编码和传输中涉及相当大的代价。
根据本发明的一方面,编码器和解码器针对特定变换单元使用多级有效图。在以下描述的示例中,多级有效图被用于大小为16×16和32×32的变换单元;然而,可以理解,在一些实施例中,它们可以用于8×8或64×64或者其他大小的变换单元。
对有效系数标记进行分组。每个有效系数标记落入组之一。为了简单起见,在许多实施例中,通过(在概念上)将变换单元结构分割或划分成块来形成组。例如,16×16的图可被划分成4×4的块,每个4×4的块包含16个系数位置。32×32的图可以被划分成8×8的块,每个8×8的块包含64个系数位置。因此,基于有效系数标记落入矩阵结构中的这些限定的块,对有效系数标记进行分组。
图3示出了示例16×16变换单元100(量化后的变换域系数的矩阵)。出于编制索引的目的,可以通过[xC,yC]指定变换单元内的比特位置,其中xC=0,1,2,…15以及yC=0,1,2,…15。使用(例如)对角线扫描顺序,可以注意到,该示例中的末位有效系数是在如参考标号112所指示的[12,10]处。
现在参考图4,其示出了示例有效图102。有效图102包含根据图4中示出的示例变换单元所生成的有效系数标记。可以注意到,有效系数标记出现在按照扫描顺序从[0,0]直到[12,10]处的末位有效系数(但是排除该[12,10]处的末位有效系数)的每个比特位置中。将变换单元100中的存在非零系数的每个比特位置处的有效系数标记设置为1,而将存在0系数的每个比特位置处的每个有效系数标记设置为0。
在一个实施例中,可以基于对变换单元结构到连续块的均匀划分来对有效图102(即有效系数标记的集合)进行分组。变换单元的大小可以确定块的大小。在16×16的变换单元的情况下,在一些实施例中,块可以是4×4。在图4中通过划分4×4块的界线的线示出该分组。较大的变换单元(诸如32×32的变换单元)的有效系数标记可以分组成4×4块、8×8块、或其他大小的连续块。
尽管为了简单起见,此处给出的示例使用限定为连续正方形块的组,但是本申请不限于正方形组。在一些实施例中,组可被形成为矩形块。在另一些其他实施例中,可以使用其他形状。例如,利用对角线扫描顺序,使用从变换单元的对角线片形成的组可能是有利的,在该情况下一些组的形状在某种程度上可以是梯形的。
然后可以生成与组的矩阵相对应的更高级别的有效图。该该更高级别的有效图是有效系数组标记的有序集合。每个包含至少一个有效系数标记的组存在一个有效系数组标记。包含末位有效系数的组不需要被包括在更高级别的有效图中,因为已经知道其包含至少一个非零系数,即末位有效系数。有效图可被称为级别0图或L0图。更高级别的有效图(即包含有效系数组标记)可被称为级别1图或L1图。
图5示出了与图4中示出的示例有效图102相对应的L1高级别有效图104。可以注意到,L1图104针对包含至少一个有效系数标记的每个组包含有效系数组标记。如果组内的任何一个有效系数标记不为0,则将有效系数组标记设置为1。否则,将其设置为0。
可以通过[xCG,yCG]指定组的索引编制,在该示例中xCG=0,1,2,3以及yCG=0,1,2,3。包含末位有效系数的组在[3,2]处。在[3,3]处的组不包含任何有效系数标记,因此不将其包括在L1图中。
在一些实施例中,按照逆扫描顺序将有效系数组标记转换到矢量形式。该扫描顺序可以和通常指定的与变换单元一起使用的扫描顺序相同。在一个实施例中,有效系数组标记可以使用可能与针对变换单元选择的扫描顺序不同的预定义扫描顺序。在一些情况下,L1图可以排除某些组,如[0,0]组或末位有效系数组,如下文进一步描述的,[0,0]组或末位有效系数组将具有推测的标记值。
可以理解,L1图不需要从L0图直接导出,而是可以通过按照扫描顺序扫描变换单元中的系数来导出。
还可以理解,在一些实施例中可以使用其他更高级别的图。例如,如果变换单元是64×64的变换单元,则L1图可以基于将变换单元划分成256个4×4的组。因此,L1图将是包含L1组标记的16×16的图。通过将L1标记进一步分成4×4块的另一集合(每个将对应于来自变换单元的16×16系数的组)可以生成进一步的L2图。在其他实施例中,可以采用另外的抽象或粒度级别。
现在参考图6,图6以流程图形式示出了用于对有效系数标记进行编码的示例过程200。过程200开始于操作202,其中编码器确定有效系数标记和有效系数组标记。在一个实施例中,编码器按照逆扫描顺序扫描变换块,以确定末位有效系数和有效系数标记的集合。可以在同一扫描期间确定有效系数组标记(尽管在实际实现中可能使用一定数量的值缓冲,因为扫描顺序通常将涉及横越多个块;在一些情况下,对有效系数组标记的确定是在编码器确定其已经扫描了该组的末位系数(例如出口(exit)系数)时做出的)。在一些实现中,编码器可以对L0有效图或者对变换单元执行第二扫描,以确定有效系数组标记。
在操作204中,针对每个有效系数组标记,编码器确定要使用的上下文,然后基于所确定的上下文对该有效系数组标记进行熵编码。可以按照规定顺序对有效系数组标记进行处理。在一些实施例中,该规定顺序与用于变换单元的扫描顺序(或逆扫描顺序)相同。可以按照任意合适的方式构成多个上下文及其确定。在下文中稍后描述上下文的示例集合以及用于确定有效系数组标记的上下文的方法。
在已经编码了有效系数组标记的集合之后,编码器然后对有效系数标记进行编码。在操作206中,如果有效系数标记落入有效系数组标记被设置为1的组内,则编码器(按照逆扫描顺序进行)确定每个有效系数标记的上下文并且对每个有效系数标记进行编码。如果对应的有效系数组标记被设置为0,则不对该组中的任何有效系数标记进行编码,即在熵编码过程中跳过它们。
相应地,在过程200之后,编码器已经产生编码数据的比特流,其包含落入具有至少一个非零有效系数标记的组中的编码内的有效系数组标记和编码后的有效系数标记。该比特流不包括来自不具有至少一个非零有效系数标记的组中的任何有效系数标记。
在解码器处,需要根据比特流的编码数据重构有效系数标记。现在参考图7,图7以流程图形式示出了根据编码数据的比特流重构有效系数标记的示例过程300。该比特流可以通过网络连接(即,流式)接收,或者从计算机可读介质读取,该计算机可读介质诸如是存储器(例如,闪存、等)或存储盘(例如,DVD、BluRayTM、CD-ROM等)。在解码器处的重构变换单元的过程中应用过程302。没有示出对报头信息的解码,该报头信息既包括针对序列的报头信息,也包括针对每个片或图片的报头信息(这取决于使用中的视频编码标准的语法)。
在操作302中,从比特流中解码出末位有效系数的位置。该信息可以用任何适用的语法来表示。一些标准规定:末位有效系数要使用矩阵符号来指示,该矩阵符号例如是变换单元内的基于x-和y-的位置;一些标准规定:末位有效系数要使用在末位有效系数位置为1的0矢量来发信号通知,其中按照扫描顺序将该矢量映射到变换单元。可以在操作302中使用用于指定末位有效系数的任何合适的语法。
在操作304中,从比特流中解码出有效系数组标记。该有效系数组标记可能已经使用适用的二进制机制进行熵编码,无论所使用的适用的二进制机制是由标准规定的还是在报头信息中规定的。例如,在一些实例中,可以使用上下文自适应二进制算术编码。通过确定每个标记位置(更高级别的有效图(例如L1有效图)中的比特位置)的上下文来解码有效系数组标记,然后从比特流中解码出标记值,并且基于该标记值更新上下文。因为扫描顺序是已知的,并且在操作302中识别了末位有效系数,所以有效系数组标记的集合的大小是已知的;因此,确定了L1有效图的大小。在非均匀划分的组的情况下,可以在语法中提供对组大小和位置的适当的信令。
如上文提到的,每个有效系数组标记对应于针对变换单元所定义的连续组的相应组。一个或多个有效系数标记落入这些具有有效系数组标记的组中的每个组内。相应地,每个有效系数组标记对应于相应的有效系数标记组。
在解码出有效系数组标记的集合之后,按照规定的扫描顺序执行用于重构有效图(即有效系数标记的集合)的剩余操作。在逆扫描顺序的情况下,处理从末位有效系数开始(但是排除该末位有效系数位置,因为已知其包含非零系数)。在操作305中,针对每个有效系数标记,解码器确定其对应的有效系数组标记是否为0。如果对应的有效系数组标记不为0,则如操作306所示从比特流中解码出有效系数标记。也即,如果关联的或对应的有效系数组标记指示该组可以包含至少一个非零系数,则解码器针对当前位置从比特流中解码出有效系数标记。
如果关联的或对应的有效系数组标记为0,即其指示在该组不包含非零系数,则如操作308所示解码器将当前有效系数标记设置或者重构为0。不从比特流中解码出该有效系数标记。
在操作310中,解码器确定其是否已经到达逆扫描顺序的尽头,即变换单元的左上角处的系数,例如[0,0]。如果到达,则过程300结束;如果没有到达,则解码器在操作312中移动到逆扫描顺序中的下一位置,并且重复操作306和308以重构针对该下一位置的有效系数标记。
可以理解,该扫描顺序在移动到下一组之前通常不会导致重构一个组中的全部有效系数标记。相反,该扫描顺序(取决于扫描顺序和组的几何体系(geometry))常常横越组边界进行扫描,以使得解码器重构来自一个组的一些标记、来自相邻组的一些标记等,以这种方式工作回到逆扫描顺序的中[0,0]位置。
可以考虑在编码和解码过程中的特殊情况以节省比特。例如,如上面提到的,包含末位有效系数的组将总是具有指示非零系数的有效系数组标记,因此不需要编码该有效系数组标记并将其传输给解码器。编码器总是编码该组的有效系数标记,以及解码器被配置为总是解码该组的有效系数标记。
在一些实施例中可能包括的另一特殊情况是总是对第一组进行编码和解码。该组包含在变换单元的[0,0]处的DC系数。该组不包含非零系数的概率是极低的。相应地,替代发送针对该[0,0]组的有效系数组标记,编码器可被配置为总是编码该组的有效系数标记,并且解码器可被配置为总是解码该组的有效系数标记。
在一些实施例中可能实现的另一特殊情况也是基于概率。已经注意到,当特定组的右方的组和下方的组都包含非零系数时,该特定组包含非零系数的概率非常高。因此,在一些实施例中,编码器和解码器可以假定,如果任何组的右方相邻的组和下方相邻的组都包含非零系数,则该组具有非零系数。因此,关于特定组,如果右方的组的有效系数组标记被设置为1,并且如果下方的组的有效系数组标记被设置为1,则编码器不对该特定组的有效系数组标记进行编码,并且总是对该组的有效系数标记进行编码。解码器识别出右方邻居和下方邻居具有指示非零系数的有效系数组标记,则其将自动假定该特定组具有非零系数,并且其将对有效系数标记进行解码。
现在参考图8,图8更详细地示出图7的操作304,以反映上述特殊情况下的处理的示例实施例。操作304包括操作304-1,其中针对包含末位有效系数的组的有效系数组标记被设置为1。末位有效系数的位置是在早先的操作中从比特流中解码出的(未示出)。
然后,解码器按照逆扫描顺序移动通过该组。如在操作304-2中注意到的,解码器从包含末位有效系数的组移动到逆扫描顺序中的下一组。针对该组,解码器评估当前组右方的组的有效系数组标记和当前组下方的组的有效系数组标记是否等于1。初始时,因为刚刚开始,所以解码器将不具有针对右方和下方的标记,但是稍后,按照扫描顺序(无论是水平的、垂直的、或对角线的),解码器有时可能在相对于当前组的这些位置中重构有效系数组标记(针对位于变换单元的底边的组,解码器可能永不具有针对下方的组的标记)。如果那两个相邻组被设置为1,则当前组也被设置为1的概率足够高,以使得编码器和解码器都假定其被设置为1。相应地,在304-6操作中,如果满足特殊条件,则解码器将有效系数组标记设置为1。否则,解码器移动到操作304-4。在另一实施例中,可以基于其他相邻组(或者其他组一起)的有效系数组标记来修改该特殊情况。
在操作304-4中,解码器从比特流中解码出当前组的有效系数组标记。该解码包括确定上下文,然后根据所确定的上下文进行解码。该解码可以基于二进制算术编码(BAC),或者其他二进制编码/解码过程。
在操作304-5中,解码器确定这是否是逆扫描顺序中的倒数第二个组。如果不是,则解码还未完成,因此解码器循环回到操作340-2以前进到逆扫描顺序中的下一个组。如果是逆扫描顺序中的倒数第二个组,则解码器移动到操作304-7,在操作304-7中解码器将最后一个组(即组[0,0])的有效系数组标记设置为1。这是基于下述特殊情况:特定组总被编码器和解码器假定为具有至少一个非零系数,因此有效系数组标记总是预设置为1,以使得总是对该组的有效系数标记进行编码和解码。在该操作之后,解码器继续到操作306或308(图7)。
可以理解,图7和图8中示出的上述示例过程中,对L1有效图(有效系数组标记)的解码和对L0有效图(有效系数标记)的解码是作为两级过程,其中L1有效图被完全解码,然后解码L0有效图。在一些实施例中,可能是这种情况:然而,在一些其他实施例中,解码过程可以是部分缠绕的(interwined)。也即,对L0图的解码可能开始于L1图被完全解码之前。可以理解,在一些实施例中,一旦已经重构出第一有效系数组标记就开始对L0有效图的解码。
在一些实施例中,可以取决于例如图片类型来开启或关闭多级有效图编码。例如,可以针对I图片和P图片启用多级有效图编码,但是对B图片禁用多级有效图。
上下文建模
为了提高编码效率,BAC引擎(或者其他熵编码/解码引擎)使用上下文。本申请提出将4个新的上下文用于对有效系数组标记进行编码。两个上下文用于亮度编码/解码,而两个上下文用于色度编码/解码。
假定使用逆扫描顺序(在其他实施例中可以使用其他规定顺序)。确定两个上下文中的哪个被用于给定有效系数组标记可以如下发生。如果当前组的右方的相邻组的有效系数组标记被设置为0,并且当前组的下方的相邻组的有效系数组标记被设置为0,则用于编码当前组的有效系数组标记的上下文是0。否则,上下文是1。如果不能获得那两个相邻组的标记,则出于上下文确定的目的,假定不能获得的标记等于0。
注意,如果使用前向扫描顺序,则可以将上下文模型改变为使用当前组的左方的相邻组的有效系数组标记以及当前组的上方的相邻组的有效系数组标记来确定上下文。
上下文确定过程也可以包括特殊情况。例如,可以总是给左上方的组分配上下文1。
存在其他可能的上下文模型和用于确定可以使用的上下文的方法。一些示例给出如下:
为了定义标记,令L[i]表示L级别的系数组i的有效标记,以及令N表示L级别的系数组的数目。通常,针对给定L和系数组i,使用i和所有可获得的L[j]的函数c(*)来确定L[i]的上下文C_i。因此,通过下式给出上下文:
C_i=c(i,L[0],L[1],...L[N-1])
其中j!=i。注意,为了使用L[j]来确定L[i]的上下文,L[j]自身必须是可获得的。因此,所选的扫描顺序必须确保前面已经确定在c(*)中使用的任何L[j]。
在类似于上述上下文确定模式的实施例中,可以通过下式给出上下文:
C_i=c(i,L0[0],L0[1],...,L0[15])
=sum{bj*L0[j]}
其中如果系数组j是系数组i的右方邻居或下方邻居,则j=0,1,...,N以及j!=i,bj=1,否则bj等于0。该特定实施例具有3个上下文(如果不同的3个上下文被用于色度,则具有6个)。
通过下式给出c(*)的另一实施例:
C_i=c(i,L[0],L[1],...,L[N-1])
=sum{bj*L[j]}
其中,如果系数组j是已经确定的i的任何相邻系数组,则j=0,1,...,N以及j!=i,bj不等于零,否则bj=0。在该实施例中,加权系数bj可以不一定是常数。
c(*)的另一实施例忽略L的其他系数组的有效系数组标记,并且仅基于当前系数组的位置i来确定上下文。这可以表达如下:
C_i=c(i,L[0],L[1],...,L[N-1])
=i。
可以与多级有效图一起使用其他上下文模型和用于确定上下文的过程。
比率失真优化的量化
一些编码过程采用比率失真优化的量化(RDOQ),或者有时称为“软量化”的量化。RDOQ是基于比率失真优化表达来确定最优的量化后的变换域系数的过程。相应地,从RDOQ得到的量化后的变换域系数可以与通过常规变换和量化过程得到的量化后的变换域系数相同,也可以不同。在一些情况下,可以通过RDOQ过程修改系数值,因为确定所得失真具有的代价比所得的传输代价的节省要小。
RDOQ过程通常评估在确定比率分量中的4个代价。该4个比率代价包括末位位置比率、有效比率(L0比率)、系数比率、以及编码块参数(CBP)比率。为了实现多级有效图,修改RDOQ以在RDOQ计算中也包括更高级别的有效比率(例如L1比率)是有利的。
在一个实施例中,RDOQ过程可被修改以关于有效图执行两级RDOQ。首先,应用RDOQ过程来确定最佳末位位置以及系数值,因此确定L1有效系数标记。在第二级中,在末位位置固定的情况下,关于L1比率应用RDOQ过程,以确定是否存在针对将任何系数置零的比率失真(RD)代价调整。
图9以流程图形式示出了用于编码多级有效图的示例RDOQ过程400。过程400使用RDOQ来获得最佳量化后的变换系数,并且确定末位有效系数的位置,即L0RDOQ。过程400然后固定末位位置,并且调整当前RD代价以考虑有效图的附加级别的影响。然后,其使用贪婪(greedy)方案来进一步优化变换系数。
操作402反映了使用RDOQ获得优化的量化后的变换域系数,其提供末位有效系数位置。操作402基于传输末位位置、与最优系数对应的有效图、系数值以及CBP的比率得到特定RD代价。
在操作404中,末位有效位置是固定的。以及,末位组将包含非零系数,即末位有效系数组标记被固定为1。然后,编码器贪婪地(greedily)确定通过将其他组中的系数置零是否达到代价节省。过程400在一些实施例中可以按照逆扫描顺序执行,尽管其可以按照其他顺序来处理。
在操作406中,从将倒数第二个组作为当前组开始,编码器确定当前组是否具有有效系数组标记=1。如果不具有,则该组仅包含0,并且编码器跳到下一组。如果有效系数组标记=1,则编码器计算在当前组中的系数都为零的情况下将得到的RD代价。在操作408中,编码器评估新计算的RD代价是否优于(例如,小于)当前RD代价。如果优于,则在操作410中,将当前组中的所有系数都置零,并且更新当前RD代价以反映该改变。在操作412中,编码器评估其是否已经完成L1RDOQ,例如其是否已经到达刚好在[0,0]组之前的组(如果如上面概述的特殊情况中描述的那样,编码器和解码器配置为假定在该组中存在至少一个非零系数,则[0,0]组不被置零)。如果还有其他组要评估,则过程400在操作414继续,在操作414中编码器移动到下一组(在一些实施例中,使用逆扫描顺序)。
现在将通过示例描述RDOQ过程。在此参考上面结合图3、4和5给出的示例。在L1RDOQ之前,但在L0RDOQ之后,在图3中示出了最优的量化后的变换域系数。在图4中示出了对应的L0有效图,并且图5中示出了L1有效图。
L1RDOQ过程可以例如得到图10中示出的最优L0有效图500,以及在图11中示出的关联的或者对应的L1有效图502。
可以注意到,末位有效组(即[3,2]组)中的有效系数标记没有改变。然而,[3,0]组、[0,3]组以及[1,3]组都已经被置零。作为结果,如图11中所示,这三个组的对应的有效系数组标记也已经改变为0。该结果是:编码器将不需要编码这三个组。如通过RDOQ评估所确定的那样,在减少编码比特的数目方面的代价节省胜过由将那些组中得到的一些系数置零所造成的失真。
在一些实施例中,可以扩展RDOQ过程以确定当前TU的最佳系数组大小。在该实施例中,针对多个循环重复过程400,其中每个循环假定不同系数组大小,并且修改操作410以使得变换系数实际不设置为0。特别地,在每个循环中,该修改后的RDOQ过程计算针对特定系数组大小的RD代价。在已经完成所有循环之后,RDOQ选择产生最小RD代价的系数组大小,以及最终根据需要将任何变换系数设置为0。编码器将最优系数组大小的值编码到比特流中,以使得其可被解码器获得和使用。
已经测试的系数组大小可以基于变换单元的大小。例如,32×32变换单元可以测试组大小8×8、4×4和2×2。要测试的组可以是可选择的,并且编码器可以指示(例如在序列报头中)针对每个变换单元大小将测试那些组大小。例如假设编码器和解码器已经同意,针对16×16的TU,修改后的RDOQ将测试两个不同的系数组大小:2×2和4×4(分别由1和O来表示)。如果修改后的RDOQ确定2×2是最佳的,则编码器将二进制数1编码到比特流中的significant_coeffgroup_flag(有效系数组标记)之前。解码器解码该在significant_oeffgroup_flag之前的该二进制数,并且知道当前TU的系数组大小是2×2。
示例语法
下面提供用于实现多级有效图的示例语法。该示例语法仅是一个可能实现。
该significant_oeffgroup_lag可被表示和定义如下:
significant_oeffgroup_lag[xCG][yCG]
针对当前16×16或32×32变换块内的系数组位置(xCG,yCG),该标记如下规定位置(xCG,yCG)处的对应系数组是否具有非零值:
如果significant_oeffgroup_lag[xCG][yCG]等于0,则在
位置(xCG,yCG)的系数组中的非零系数的数目被设置为等于0;
否则(significant_oeffgroup_lag[xCG][yCG]等于1),则
除了下面定义的特殊情况之外,在位置(xCG,yCG)处的系数组中的非
零系数的数目不为0。
特殊情况定义如下:
1.将在按照扫描顺序的第一系数组位置(0,0)处的
significant_oeffgroup_lag[0][0]指明为等于1。
2.如果significant_oeffgroup_lag[xCG][yCG+1]=1并且significant_oeffgroup_lag[xCG+1][yCG]=1,则将在按照扫描顺序的系数组位置(xCG,yCG)处的significant_oeffgroup_lag[xCG][yCG]指明为等于1。
当significant_coeffgroup_flag[xCG][yCG]不存在时,指明其为0。
在一些实施例中,significant_coeffgroup_flag[xCG][yCG]不应用于4×4和8×8的变换块。
下面的伪码说明了用于重构量化后的变换域系数(残差)的解码过程内的多级有效图的一个示例实现。
应该注意,伪码的第一部分包括对末位有效系数位置进行解码。如果变换单元是16×16或者更大(如通过if(log2TrafoSize>3)所指示的那样),则确定组的数目。
前面的伪码示出了上面结合图7描述的示例过程300的一个示例实现。
现在参照图12,图12示出了编码器900的示例实施例的简化框图。编码器900包括:处理器902、存储器904和编码应用906。编码应用906可以包括存储在存储器904中并包含指令的计算机程序或应用,所述指令用于将处理器902配置为执行这里描述的操作。例如,编码应用906可以编码并输出根据这里描述的多级有效图过程所编码的比特流。可以理解,编码应用906可以存储在计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等等。
现在还参照图13,图13示出了解码器1000的示例实施例的简化框图。解码器1000包括:处理器1002、存储器1004和解码应用1006。解码应用1006可以包括存储在存储器1004中并包含指令的计算机程序或应用,所述指令用于将处理器1002配置为执行这里描述的操作。解码应用1006可以包括:配置为如本文所描述的基于多级有效图重构残差的熵解码器。可以理解,解码应用1006可以存储在计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等等。
可以认识到,根据本申请的解码器和/或编码器可以在多个计算设备中实现,包括但不限于服务器、合适编程的通用计算机、音频/视频编码和回放设备、电视机顶盒、电视广播设备和移动设备。可以通过包含指令的软件来实现解码器或编码器,所述指令用于将处理器配置为执行这里描述的功能。软件指令可以存储在任何合适的非瞬时计算机可读存储器上,包括CD、RAM、ROM、闪存等等。
可以理解,这里描述的编码器以及实现所描述的用于配置编码器的方法/过程的模块、例程、进程、线程或其他软件组件可以使用标准计算机编程技术和语言来实现。本申请不限于特定处理器、计算机语言、计算机编程惯例、数据结构、其他这种实现细节。本领域技术人员将认识到,可以将所描述的过程实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、专用集成芯片(ASIC)的一部分等。
可以对所描述的实施例进行特定适配和修改。因此,上述实施例被认为是示意性而非限制性。

Claims (18)

1.一种根据编码数据的比特流以逆扫描顺序重构变换单元的有效系数标记集合的方法,所述有效系数标记集合对应于所述变换单元,所述变换单元被划分成非重叠的正方形块,每一块对应于相应的有效系数标记组,所述方法包括:
通过将至少两个有效系数组标记的值指明为1而不是从比特流中解码出所述至少两个有效系数组标记,以及通过从比特流中解码出其他有效系数组标记中的至少一个有效系数组标记,来重构有效系数组标记,其中每个有效系数组标记对应于相应的有效系数标记组之一,所述至少两个有效系数组标记针对包含针对末位有效系数的有效系数标记在内的组,以及针对包含针对DC系数的有效系数标记在内的组;以及
通过以下操作重构每个有效系数标记:
如果有效系数标记位于组中的位置(0,0)处,对应的有效系数组标记非零,相应的组不是DC块,以及该组中的所有先前有效系数标记都是零,
则将位于该组中的位置(0,0)处的有效系数标记指明为1,
否则:
如果该有效系数标记是在对应的有效系数组标记为非零的组中,则从比特流中解码出该有效系数标记,以及
如果该有效系数标记是在对应的有效系数组标记为0的组中,则将该有效系数标记指明为0。
2.根据权利要求1所述的方法,其中重构有效系数组标记还包括:对于按照前向扫描顺序位于包含末位有效系数的组之后的每个有效系数组标记,将该有效系数组标记的值指明为0。
3.根据权利要求1所述的方法,其中从比特流中解码出其他有效系数组标记中的至少一个有效系数组标记包括:对变换单元的尚未指明的所有有效系数组标记进行解码。
4.根据权利要求1所述的方法,其中所述变换单元是16×16,以及每个组是4×4的块。
5.根据权利要求1所述的方法,其中所述变换单元是32×32,以及每个组是8×8的块。
6.根据权利要求1所述的方法,其中所述变换单元是32×32,以及每个组是4×4的块。
7.根据权利要求1至6中任一项所述的方法,其中重构有效系数组标记之一包括:基于针对两个相邻组所重构的有效系数组标记,来确定所述有效系数组标记的上下文。
8.根据权利要求7所述的方法,其中所述两个相邻组包括右侧相邻组和下方相邻组,有效系数组标记的重构是按逆扫描顺序进行的,以及如果所述两个相邻组的有效系数组标记都是0,则上下文是0,否则上下文是1。
9.一种根据编码数据的比特流以逆扫描顺序重构变换单元的有效系数标记集合的装置,所述有效系数标记集合对应于所述变换单元,所述变换单元被划分成非重叠的正方形块,每一块对应于相应的有效系数标记组,所述装置包括:
用于通过将至少两个有效系数组标记的值指明为1而不是从比特流中解码出所述至少两个有效系数组标记,以及通过从比特流中解码出其他有效系数组标记中的至少一个有效系数组标记,来重构有效系数组标记的单元,其中每个有效系数组标记对应于相应的有效系数标记组之一,所述至少两个有效系数组标记针对包含针对末位有效系数的有效系数标记在内的组,以及针对包含针对DC系数的有效系数标记在内的组;以及
用于通过以下操作重构每个有效系数标记的单元:
如果有效系数标记位于组中的位置(0,0)处,对应的有效系数组标记非零,相应的组不是DC块,以及该组中的所有先前有效系数标记都是零,
则将位于该组中的位置(0,0)处的有效系数标记指明为1,
否则:
如果该有效系数标记是在对应的有效系数组标记为非零的组中,则从比特流中解码出该有效系数标记,以及
如果该有效系数标记是在对应的有效系数组标记为0的组中,则将该有效系数标记指明为0。
10.根据权利要求9所述的装置,其中用于重构有效系数组标记的单元还包括:用于对于按照前向扫描顺序位于包含末位有效系数的组之后的每个有效系数组标记,将该有效系数组标记的值指明为0的单元。
11.根据权利要求9所述的装置,其中从比特流中解码出其他有效系数组标记中的至少一个有效系数组标记包括:对变换单元的尚未指明的所有有效系数组标记进行解码。
12.根据权利要求9所述的装置,其中所述变换单元是16×16,以及每个组是4×4的块。
13.根据权利要求9所述的装置,其中所述变换单元是32×32,以及每个组是8×8的块。
14.根据权利要求9所述的装置,其中所述变换单元是32×32,以及每个组是4×4的块。
15.根据权利要求9至14中任一项所述的装置,其中用于重构有效系数组标记之一的单元包括:用于基于针对两个相邻组所重构的有效系数组标记,来确定所述有效系数组标记的上下文的单元。
16.根据权利要求15所述的装置,其中所述两个相邻组包括右侧相邻组和下方相邻组,有效系数组标记的重构是按逆扫描顺序进行的,以及如果所述两个相邻组的有效系数组标记都是0,则上下文是0,否则上下文是1。
17.一种用于以逆扫描顺序对变换单元的有效系数标记集合进行编码的方法,所述有效系数标记集合对应于所述变换单元,所述变换单元被划分成非重叠的正方形块,每一块对应于相应的有效系数标记组,所述方法包括:
对有效系数组标记进行编码,其中每个有效系数组标记对应于相应的有效系数标记组之一,以及将有效系数组标记设置为0以指示对应组不包含非零有效系数标记,所述编码排除了被指明为1的至少两个有效系数组标记,而无论其对应的组是否包含非零有效系数标记,所述至少两个有效系数组标记针对包含针对末位有效系数的有效系数标记在内的组,以及针对包含针对DC系数的有效系数标记在内的组,其中所述编码包括对其他有效系数组标记中的至少一个有效系数组标记进行编码;以及,
通过以下操作编码每个有效系数标记:
如果有效系数标记位于组中的位置(0,0)处,对应的有效系数组标记非零,相应的组不是DC块,以及该组中的所有先前有效系数标记都是零,
则不对位于该组中的位置(0,0)处的有效系数标记进行编码,
否则:
如果该有效系数标记是在对应的有效系数组标记为非零的组之一中,则对该有效系数标记进行编码,以及
如果该有效系数标记是在对应的有效系数组标记为0的组之一中,则不对该有效系数标记进行编码。
18.一种用于以逆扫描顺序对变换单元的有效系数标记集合进行编码的装置,所述有效系数标记集合对应于所述变换单元,所述变换单元被划分成非重叠的正方形块,每一块对应于相应的有效系数标记组,所述装置包括:
用于对有效系数组标记进行编码的单元,其中每个有效系数组标记对应于相应的有效系数标记组之一,以及将有效系数组标记设置为0以指示对应组不包含非零有效系数标记,所述编码排除了被指明为1的至少两个有效系数组标记,而无论其对应的组是否包含非零有效系数标记,所述至少两个有效系数组标记针对包含针对末位有效系数的有效系数标记在内的组,以及针对包含针对DC系数的有效系数标记在内的组,其中所述编码包括对其他有效系数组标记中的至少一个有效系数组标记进行编码;以及,
用于通过以下操作编码每个有效系数标记的单元:
如果有效系数标记位于组中的位置(0,0)处,对应的有效系数组标记非零,相应的组不是DC块,以及该组中的所有先前有效系数标记都是零,
则不对位于该组中的位置(0,0)处的有效系数标记进行编码,
否则:
如果该有效系数标记是在对应的有效系数组标记为非零的组之一中,则对该有效系数标记进行编码,以及
如果该有效系数标记是在对应的有效系数组标记为0的组之一中,则不对该有效系数标记进行编码。
CN201210421030.0A 2011-11-01 2012-10-29 使用多级有效图进行编码和解码的方法及装置 Active CN103096065B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610335065.0A CN105872550B (zh) 2011-11-01 2012-10-29 用于编码和解码的多级有效图

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11187410.3A EP2590409B1 (en) 2011-11-01 2011-11-01 Multi-level significance maps for encoding and decoding
EP11187410.3 2011-11-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610335065.0A Division CN105872550B (zh) 2011-11-01 2012-10-29 用于编码和解码的多级有效图

Publications (2)

Publication Number Publication Date
CN103096065A CN103096065A (zh) 2013-05-08
CN103096065B true CN103096065B (zh) 2016-06-15

Family

ID=45033756

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610335065.0A Active CN105872550B (zh) 2011-11-01 2012-10-29 用于编码和解码的多级有效图
CN201210421030.0A Active CN103096065B (zh) 2011-11-01 2012-10-29 使用多级有效图进行编码和解码的方法及装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610335065.0A Active CN105872550B (zh) 2011-11-01 2012-10-29 用于编码和解码的多级有效图

Country Status (13)

Country Link
EP (4) EP3754989A1 (zh)
JP (1) JP2013098988A (zh)
KR (1) KR101407755B1 (zh)
CN (2) CN105872550B (zh)
AU (1) AU2012244144B2 (zh)
BR (1) BR102012027968B1 (zh)
CA (1) CA2793068C (zh)
ES (1) ES2728529T3 (zh)
HK (2) HK1182243A1 (zh)
HU (1) HUE043461T2 (zh)
PL (1) PL2876883T3 (zh)
SG (1) SG189658A1 (zh)
TW (1) TWI510031B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621894B2 (en) 2012-01-13 2017-04-11 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US9538175B2 (en) * 2012-09-26 2017-01-03 Qualcomm Incorporated Context derivation for context-adaptive, multi-level significance coding
US10171818B2 (en) * 2013-07-24 2019-01-01 Microsoft Technology Licensing, Llc Scanning orders for non-transform coding
JP2020072277A (ja) * 2017-03-03 2020-05-07 シャープ株式会社 動画像符号化装置及び動画像復号装置
AU2019201653A1 (en) * 2019-03-11 2020-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
CN115278256B (zh) * 2020-03-16 2023-09-08 北京达佳互联信息技术有限公司 对视频数据进行解码的方法、装置和介质
US20220239923A1 (en) * 2021-01-26 2022-07-28 Meta Platforms, Inc. Dynamically biasing mode selection in video encoding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101077012A (zh) * 2004-10-13 2007-11-21 诺基亚公司 用于视频比特流熵编码/解码以得到细粒度可缩放性的方法和***
EP2154894A1 (en) * 2008-08-15 2010-02-17 Thomson Licensing Video coding with coding of the locations of significant coefficients in a block of coefficients

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3017745B2 (ja) * 1989-03-14 2000-03-13 ソニー株式会社 データ伝送方法
CN100420308C (zh) * 2002-04-26 2008-09-17 株式会社Ntt都科摩 图象编码装置和图象译码装置
JP4230188B2 (ja) 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
CA2457988A1 (en) * 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US20070071331A1 (en) * 2005-09-24 2007-03-29 Xiteng Liu Image compression by economical quaternary reaching method
KR101356733B1 (ko) * 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
TWI341657B (en) * 2007-04-03 2011-05-01 Nat Univ Tsing Hua Cabac decoding method
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101077012A (zh) * 2004-10-13 2007-11-21 诺基亚公司 用于视频比特流熵编码/解码以得到细粒度可缩放性的方法和***
EP2154894A1 (en) * 2008-08-15 2010-02-17 Thomson Licensing Video coding with coding of the locations of significant coefficients in a block of coefficients
CN102124740A (zh) * 2008-08-15 2011-07-13 汤姆森特许公司 对系数块中有效系数的位置进行编码的视频编码

Also Published As

Publication number Publication date
EP3499892A1 (en) 2019-06-19
SG189658A1 (en) 2013-05-31
EP2590409A1 (en) 2013-05-08
TW201328363A (zh) 2013-07-01
EP2876883B1 (en) 2019-05-01
AU2012244144A1 (en) 2013-05-16
BR102012027968A2 (pt) 2015-09-15
KR101407755B1 (ko) 2014-06-17
PL2876883T3 (pl) 2019-10-31
EP3754989A1 (en) 2020-12-23
CN105872550B (zh) 2020-03-06
HUE043461T2 (hu) 2019-08-28
CA2793068C (en) 2016-07-26
CA2793068A1 (en) 2013-05-01
CN105872550A (zh) 2016-08-17
CN103096065A (zh) 2013-05-08
AU2012244144B2 (en) 2015-05-07
ES2728529T3 (es) 2019-10-25
HK1211155A1 (zh) 2016-05-13
TWI510031B (zh) 2015-11-21
BR102012027968B1 (pt) 2021-12-21
EP2590409B1 (en) 2015-01-07
EP3499892B1 (en) 2020-08-12
KR20130048180A (ko) 2013-05-09
JP2013098988A (ja) 2013-05-20
HK1182243A1 (zh) 2013-11-22
EP2876883A1 (en) 2015-05-27

Similar Documents

Publication Publication Date Title
CN103124349B (zh) 多级有效图扫描
CN103096065B (zh) 使用多级有效图进行编码和解码的方法及装置
US10911758B2 (en) Multi-level significance maps for encoding and decoding
CN103597838B (zh) 对末位有效系数的位置进行编码和解码的方法和设备
CN103220515B (zh) 变换单元内的多符号位隐藏
CN105723714A (zh) 用于在跳过变换的情况下对块的符号编码
CN104272735A (zh) 针对视频的上下文自适应二进制熵编码的变换系数编码
CN104272736A (zh) 用于对游长编码变换系数进行熵编码的上下文确定
US10284851B2 (en) Method of determining binary codewords for transform coefficients
KR20170116253A (ko) 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치
KR20110112171A (ko) 적응적 계수 스캔 순서를 이용한 영상 부호화, 복호화 방법 및 장치
CN104041038A (zh) 用于编码和解码图像的方法、编码和解码设备以及相应的计算机程序
CN104081773A (zh) 实现模块化处理的上下文建模方法和装置
CN112204972A (zh) 变换系数块编码
WO2008035842A1 (en) Apparatus and method for encoding and decoding using alternative converter according to the correlation of residual signal
CN103067701B (zh) 使用分区选择的重要性图编码和解码
CN103220516A (zh) 用于上下文集合选择的方法和设备
US20240129512A1 (en) Encoding and decoding method, encoder, decoder, and storage medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Voight, Ontario, Canada

Applicant after: Blackberry Ltd.

Address before: Voight, Ontario, Canada

Applicant before: Research In Motion Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20181212

Address after: Dublin, Ireland

Patentee after: Has the media International Limited

Address before: Voight, Ontario, Canada

Patentee before: Blackberry Ltd.

TR01 Transfer of patent right