CN103124349B - 多级有效图扫描 - Google Patents

多级有效图扫描 Download PDF

Info

Publication number
CN103124349B
CN103124349B CN201210464858.4A CN201210464858A CN103124349B CN 103124349 B CN103124349 B CN 103124349B CN 201210464858 A CN201210464858 A CN 201210464858A CN 103124349 B CN103124349 B CN 103124349B
Authority
CN
China
Prior art keywords
coefficient
group
efficiency
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.)
Expired - Fee Related
Application number
CN201210464858.4A
Other languages
English (en)
Other versions
CN103124349A (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.)
BlackBerry Ltd
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
Publication of CN103124349A publication Critical patent/CN103124349A/zh
Application granted granted Critical
Publication of CN103124349B publication Critical patent/CN103124349B/zh
Expired - Fee Related 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/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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/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/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
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

描述了针对视频数据进行编码和解码的方法,其中在编码和解码过程中使用多级有效图。形成有效图的有效系数标记被归到连续的组,并且有效系数组标记针对每个组表示该组是否不包含非零有效系数标记。可以使用多级扫描顺序,按所述多级扫描顺序逐组对有效系数标记进行扫描。组扫描顺序规定了处理组所依照的顺序,而扫描顺序规定了处理组内的各个有效系数标记所依照的顺序。比特流可以将有效系数组标记和它们对应的有效系数标记(如果存在的话)进行交织。

Description

多级有效图扫描
技术领域
本申请总体涉及数据压缩,具体地涉及使用多级有效图对视频进行编码和解码的方法和设备。
背景技术
数据压缩发生在众多上下文中。在通信和计算机联网中非常普遍地使用数据压缩,以有效地存储、传输和复制信息。其在图形、音频和视频的编码方面得到了具体应用。由于每个视频帧所需的大量数据以及经常需要发生的编码和解码的速度,视频对数据压缩提出相当大的挑战。视频编码的当前最新技术是ITU-T H.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值的有效系数标记。
在又一方面,本申请描述了配置为执行这种编码和解码方法的编码器和解码器。
在又一方面,本申请描述了存储计算机可执行程序指令的非瞬时计算机可读介质,所述计算机可执行程序指令在被执行时将处理器配置为执行所描述的编码和/或解码的方法。
结合附图,通过阅读以下示例的描述,本领域技术人员将理解本申请的其他方面和特征。
附图说明
现在参照附图作为示例,附图示出了本申请的示例实施例,在附图中:
图1以框图形式示出了用于对视频进行编码的编码器;
图2以框图形式示出了用于对视频进行解码的解码器;
图3示出了包含量化后的变换域系数的示例变换单元;
图4示出了包含图3的变换单元的有效系数标记的示例有效图;
图5示出了包含图4的有效图的有效系数组标记的示例L1有效图;
图6以流程图形式示出了对有效系数标记进行编码的示例方法;
图7以流程图形式示出了根据编码数据重构有效图的示例方法;
图8以流程图形式示出了用于解码和重构有效系数组标记的示例过程;
图9以流程图形式示出了用于多级有效图编码的示例比率失真优化的量化过程;
图10示出了在应用L1 RDOQ之后的图4的示例L0有效图;
图11示出了在L1 RDOQ之后与图10的L0有效图对应的L1有效图;
图12示出了编码器的示例实施例的简化框图;
图13示出了解码器的示例实施例的简化框图;以及
图14示出了具有4×4系数组和前向对角线扫描顺序的16×16变换单元;
图15示出了具有4×4系数组和基于组的多级前向对角线扫描顺序的16×16变换单元;
图16以流程图形式示出了用于解码有效图的示例方法;以及
图17以流程图形式示出了利用多级扫描顺序对多级有效图进行RDOQ编码的示例过程。
在不同的附图中已经使用类似的参考标号来标记类似的组份。
具体实施方式
在以下描述中,参考用于视频编码的H.264标准和/或开发中的HEVC标准,描述了一些示例实施例。本领域技术人员应该理解,本申请不限于H.264或HEVC,而是可适用于其他视频编码/解码标准,包括可能的将来的标准、多视图编码标准、可伸缩视频编码标准、以及可重新配置的视频编码标准。
在以下描述中,当参考视频或图像时,在某种程度上可以互换地使用术语帧、图片、片、平铺块(tile)和矩形片组。本领域技术人员将认识到,在H.264标准的情况中,帧可以包含一个或多个片。还将认识到,取决于适用的图像或视频编码标准的特定要求或术语学,某些编码/解码操作是逐帧执行的,一些编码/解码操作是逐片执行的,一些编码/解码操作是逐图片执行的,一些编码/解码操作是逐平铺块执行的,以及一些编码/解码操作是逐矩形片组执行的,视情况而定。在任何特定实施例中,适用的图像或视频编码标准可以确定是否关于帧和/或片和/或图片和/或平铺块和/或矩形片组来执行以下描述的操作。相应地,根据本公开,本领域技术人员将理解,这里描述的特定操作或过程以及对帧、片、图片、平铺块、矩形片组的特定引用对于给定实施例是否适用于帧、片、图片、平铺块、矩形片组、或者其中的一些或全部。这也可应用于变换单元、编码单元、编码单元的组等等,如根据以下描述将变得明显的那样。
本申请描述了用于对有效图进行编码和解码的示例过程和设备。有效图是映射到或对应于变换单元或定义的系数单元(例如,若干变换单元、变换单元的一部分、或者编码单元)的标记的块、矩阵或组。每个标记指示变换单元或指定的单元中的对应位置是否包含非零系数。在现有标准中,这些标记可被称为有效系数标记。在现有标准中,每个系数一个标记,并且如果对应系数为0,则该标记是为0的比特,以及如果对应系数不为0,则该标记被设置为1。本文使用的术语“有效图”旨在指代变换单元的有效系数标记的矩阵或有序集合(如根据下文描述将理解的)或者定义的系数单元(根据本申请的上下文将清楚)。
尽管此处描述的示例涉及有效图,但是多级编码和解码过程可应用于视频编码中的可以表现出组结构的其他语法单元,如系数级别、过滤系数和运动矢量(在二元化之后)。例如,系数级别的局部组有很高的概率可能为全1。类似地,运动矢量的局部组可能在一个方向上为全0(例如水平移动为0),或者过滤系数的集合可能在相邻频带中是全0。
还应该理解,根据以下描述,多级编码和解码结构可以应用在特定情形中,并且那些情形可以根据诸如视频内容类型(正常视频或序列中识别的图形、图片、或者片头)之类的辅助信息来确定。例如,针对正常视频可以使用两个级别,以及针对图形可以使用三个级别(其通常更加稀疏)。另一可能性是在序列、图片或片头之一中提供标记,该标记指示该结构是具有一个、两个还是三个级别,由此允许编码器灵活地选择针对本内容的最合适的结构。
现在参照图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-coded slice)或者片间编码的片(inter-coded slice)。其可以是亮度块或者色度块。片的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个系数位置。因此,基于有效系数标记落入矩阵结构中的这些限定的块,对有效系数标记进行分组。在另一示例中,16×16和32×32的图都被分成4×4的块,每个块包含16个系数位置。
图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块、或其他大小的连续块。在一个实施例中,4×4系数组被用于大小为16×16、4×16、16×4、8×32、32×8以及32×32的变换单元。
尽管为了简单起见,此处给出的示例使用限定为连续正方形块的组,但是本申请不限于正方形组。在一些实施例中,组可被形成为矩形块。在另一些其他实施例中,可以使用其他形状。例如,利用对角线扫描顺序,使用从变换单元的对角线片形成的组可能是有利的,在该情况下一些组的形状在某种程度上可以是梯形的。例如,矩形组可以与水平扫描顺序或垂直扫描顺序一起使用。在一个示例中,在8×8变换单元的情况下,如果采用水平扫描,则可以使用2×8系数组,以及如果采用垂直扫描,则可以使用8×2系数组。本领域技术人员可以理解其他变型。
然后可以生成与组的矩阵相对应的更高级别的有效图。该该更高级别的有效图是有效系数组标记的有序集合。每个包含至少一个有效系数标记的组存在一个有效系数组标记。包含末位有效系数的组不需要被包括在更高级别的有效图中,因为已经知道其包含至少一个非零系数,即末位有效系数。有效图可被称为级别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中,解码器确定这是否是扫描顺序中的倒数第二个组。如果不是,则解码还未完成,因此解码器循环回到操作304-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图片禁用多级有效图。
多级扫描顺序
如前面概述的,当如上述示例中所示那样(即在连续块中)形成系数组时,扫描顺序(垂直的、水平的或对角线的)将导致在扫描有效系数标记时横跨组的边界。从硬件实现角度看,这可能在编码和解码中产生困难,因为可能需要对数据进行相当多的缓存来保持跟踪部分解码的组的有效系数标记,以便实现一次完成的扫描(one-pass scan)。否则,可能需要扫描两次(或更多次):一个扫描顺序完成针对L1图的标记,以及一个扫描顺序完成针对L0图。用于实现一次完成的扫描过程并且避免一些存储器和计算复杂度问题的一种选项是使用基于组的扫描顺序或多级扫描顺序。
现在参考图14,示出了示例16×16的变换单元600。在有效图编码的上下文中,示例16×16的变换单元600包括16个系数组,其中每个系数组是4×4的有效系数标记块。在图14中示出了对角线扫描顺序。该扫描顺序开始于[15,15]处的有效系数标记,并且该对角线扫描在从右下角[15,15]到左上角[0,0]遍历变换单元600的同时,按照从右上向左下的顺序。如上面讨论的一样,有效图编码过程使用从末位有效系数开始的扫描顺序。
应该注意,该扫描顺序穿过系数组边界。例如,考虑[10,12]、[11,11]和[12,10]处的有效系数标记(其分别由参考标号610、612和614指示)。在该扫描顺序中,编码器和解码器首先遇到位置[12,10]处的有效系数标记614。然后该扫描顺序遇到位置[11,11]处的有效系数标记612,它是系数组中的第一个有效系数标记。然后,当该扫描顺序达到位置[10,12]处的有效系数标记610时,它穿到另一系数组中。
在编码器侧,可以理解,这种频繁地穿越系数组边界会导致在扫描过程期间相当多的缓存以便跟踪不同系数组中的有效系数标记的值,并且直到等到在扫描顺序中到达系数组中的最后一个(左上角)有效系数标记才能确定针对该组的有效系数组标记。为了在一次完成的扫描中处理整个变换单元600,编码器可能需要一些复杂的缓存,以避免过多的存储器存取操作。频繁地穿越系数组边界对于比率失真优化量化(RDOQ)(即软判决量化(SDQ))提出了特别的复杂度。在进行RDOQ/SDQ确定时跟踪与编码关联的比率代价变得相当复杂。在解码器侧,当解码器在重构有效系数标记的扫描顺序中遍历各个组时,解码器也需要缓存以跟踪各个组的先前解码出的有效系数组标记。这导致解码器处需要较大的存储器/缓冲器。
因此,在一个实施例中,编码和解码过程可以采用多级扫描顺序。现在参考图15,其示出了按照多级对角线扫描顺序示出的图14的变换单元600。在每个系数组内,在组这一级别应用对角线扫描顺序,而不是横跨整个变换单元600。系数组自身按照某一扫描顺序进行处理,在该示例实现中也是对角线扫描顺序。
可以理解,对角线是一种选择,并且在其他实施例中,可以在系数组内部和/或在组这一级别应用水平的、垂直的、Z字形的或者其他扫描顺序,以便对系数组的处理进行排序。
使用基于组的扫描顺序或多级扫描顺序,按照顺序对每个有效系数标记组进行编码和解码。也即,仅当对当前组的编码/解码已经完成,才开始对下一有效系数标记组进行编码/解码。例如,使用对角线组扫描顺序,在解码器开始对包含位置[10,12]处的有效系数标记610的有效系数标记组进行解码之前,解码了包含位置[12,10]处的有效系数标记614的整个有效系数标记组。类似地,在解码器开始对包含位置[11,11]处的有效系数标记612的组进行解码之前,那两个组都已经被完全解码。这允许编码器/解码器更容易一次完成对多级有效图的处理,因为系数组的全部有效系数标记是按照系数组内的扫描顺序顺序处理的。
有利地,多级扫描顺序或基于组的扫描顺序还有利于在比特流内对有效系数组标记进行交织。当按照扫描顺序对每个系数组进行处理时,如果有效系数组标记不为0,编码器可以将有效系数组标记写入比特流,并且可以***该系数组的有效系数标记。在解码器处,解码器从比特流中解码出有效系数组标记,以及如果非0,则按照组内扫描顺序解码出该组的有效系数标记。如果有效系数组标记为0,则其将该组的所有有效系数标记设为0,并且从比特流读取和解码下一有效系数标记。以这种方式,其按照组扫描顺序逐组地重构有效图。
可以理解,在组内使用的扫描顺序不一定需要与用于逐组处理的组扫描顺序对应。例如,可以在组内使用对角线扫描顺序,同时按照水平组扫描顺序进行对组的处理。
还可以理解,此处描述的多级扫描顺序与用于多级有效图的系数分组相匹配;然而,在更一般性的情况下,多级扫描顺序或基于组的扫描顺序可被组织进不一定与有效系数标记组对应的块。例如,参考图14和15,替代向每个4×4系数组应用对角线扫描顺序,在另一示例实现中,为了扫描顺序的目的进行的分组或分块可以使用8×8的块。换言之,在该示例中,对角线扫描顺序将被应用到四个8×8的块。注意,如果在用于多级扫描顺序的分组与用在多级有效图中的系数组之间存在失配,则编码器/解码器在移动到下一组之前不一定要完全处理了每个组。
现在参考图16,其示出了使用多级扫描顺序来解码多级有效图的示例方法700。方法700是用于根据编码数据的比特流重构有效系数标记的示例过程。编码数据的比特流包括编码的有效系数组标记。每个有效系数组标记与相应的有效系数标记组对应。在比特流中每个非零有效系数组标记之后按照扫描顺序跟着其相应的组中的有效系数标记。
方法700开始于步骤702,在步骤702中从比特流中解码出末位有效系数的位置。如前面提到的,可以用多种方式中的任意一种来发信号通知末位有效系数位置。一旦知道末位有效系数的位置,则在操作704中,解码器从比特流中解码出包含该末位有效系数的系数组内的有效系数的有效系数标记。操作704中的解码是按照系数组内的扫描顺序(其可以是对角线的、垂直的、水平的,等等)执行的,其从末位有效位置的位置之后的有效系数位置开始,并按照扫描顺序向着左上角系数反向工作。
在操作706中,依据组扫描顺序,将当前系数组(索引为CG)设置为在包含末位有效系数的组之后的组。该组扫描顺序是对系数组进行解码的顺序,其从在包含末位有效系数的组之后的组开始,并按照组扫描顺序向着变换单元中的左上角的组(包含位置[0,0]处的DC系数的组)反向工作。该组扫描顺序可以是垂直的、水平的或对角线的,等等。
在操作708中,解码器重构当前系数组(索引为CG)的有效系数组标记。该重构包括:除非特殊情形适用,否则从比特流中解码出有效系数组标记。例如,一个示例性特殊情形是在当前系数组的右方的组和下方的组的有效系数组标记都是非零时。在该情形下,可以默认地将有效系数组标记假设为非零。
如操作710指示的,如果重构的有效系数组标记是0,则在操作712中,对应的系数组的有效系数标记全部设置为0。如果重构的有效系数组标记不为0,则在操作714中,按照组内扫描顺序从比特流中解码出对应系数组的有效系数标记。
一旦在操作712或714中已经重构当前系数组的所有有效系数标记,则在操作716中,CG索引递减,以移动到组扫描顺序中的下一系数组。如果在操作718中,组扫描顺序中的下一系数组是CG>0,即它不是包含[0,0]处的DC系数的左上角的组,则过程返回操作708,以完全重构下一系数组的有效系数。然而,如果CG=0,则方法700前进到操作720,在操作720中,从比特流中解码出左上角系数组的有效系数标记。在该示例实施例中,这些有效系数标记总是被编码在比特流中,因此解码器假设该系数组的有效系数组标记总是有效地为非零。
上下文建模
为了提高编码效率,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。
可以与多级有效图一起使用其他上下文模型和用于确定上下文的过程。
下面给出针对上面讨论的双上下文实施例的示例语法。在该示例中,考虑输入是当前系数组扫描位置(xCG,yCG)以及先前解码的语法单元significant_coeffgroup_flag(有效系数标记)的二进制数。该过程的输出是ctxIdxInc。在该示例中,假设变换单元已经被分成16个连续的块以形成系数组。例如,16×16的TU被分成4×4的块,以及32×32的TU被分成8×8的块。在另一示例中,变换单元可被分成4×4的块或其他大小的块。
变量ctxIdxInc取决于当前位置(xCG,yCG)和先前解码的语法单元significant_coeffgroup_flag的二进制数。对于ctxIdxInc的推导,适用下述规则。
如果xCG等于3,并且yCG等于3,则将ctxIdxInc设置为等于默认的上下文值。在该示例实施例中,默认值是ctxIdxInc=44。在其他实施例中,其可以是包括0在内的另外的值。
如果xCG小于3,并且yCG等于3,则将ctxIdxInc设置为ctxIdxInc=44+significant_subblock_flag[xCG+1][yCG],
如果xCG等于3,并且yCG小于3,则将ctxIdxInc设置为ctxIdxInc=44+significant_subblock_flag[xCG][yCG+1],
如果xSB小于3,并且ySB小于3,则将ctxIdxInc设置为ctxIdxInc=44+max{significant_subblock_flag[xCG+1][yCG],significant_subblock_flag[xCG][yCG+1]}。
上面表达式中的值44是默认索引值的一个示例。在其他实施例中可以使用包括0在内的其他值。
比率失真优化的量化
一些编码过程采用比率失真优化的量化(RDOQ),或者有时称为“软量化”的量化。RDOQ是基于比率失真优化表达来确定最优的量化后的变换域系数的过程。相应地,从RDOQ得到的量化后的变换域系数可以与通过常规变换和量化过程得到的量化后的变换域系数相同,也可以不同。在一些情况下,可以通过RDOQ过程修改系数值,因为确定所得失真具有的代价比所得的传输代价的节省要小。
RDOQ过程通常评估在确定比率分量中的4个代价。该4个比率代价包括末位位置比率、有效比率(L0比率)、系数比率、以及编码块参数(CBP)比率。为了实现多级有效图,修改RDOQ以在RDOQ计算中也包括更高级别的有效比率(例如L1比率)是有利的。
在一个实施例中,RDOQ过程可被修改以关于有效图执行两级RDOQ。首先,应用RDOQ过程来确定最佳末位位置以及系数值,因此确定L1有效系数标记。在第二级中,在末位位置固定的情况下,关于L1比率应用RDOQ过程,以确定是否存在针对将任何系数置零的比率失真(RD)代价调整。
图9以流程图形式示出了用于编码多级有效图的示例RDOQ过程400。过程400使用RDOQ来获得最佳量化后的变换系数,并且确定末位有效系数的位置,即L0 RDOQ。过程400然后固定末位位置,并且调整当前RD代价以考虑有效图的附加级别的影响。然后,其使用贪婪(greedy)方案来进一步优化变换系数。
操作402反映了使用RDOQ获得优化的量化后的变换域系数,其提供末位有效系数位置。操作402基于传输末位位置、与最优系数对应的有效图、系数值以及CBP的比率得到特定RD代价。
在操作404中,末位有效位置是固定的。以及,末位组将包含非零系数,即末位有效系数组标记被固定为1。然后,编码器贪婪地(greedily)确定通过将其他组中的系数置零是否达到代价节省。过程400在一些实施例中可以按照扫描顺序执行,尽管其可以按照其他顺序来处理。
在操作406中,从将倒数第二个组作为当前组开始,编码器确定当前组是否具有有效系数组标记=1。如果不具有,则该组仅包含0,并且编码器跳到下一组。如果有效系数组标记=1,则编码器计算在当前组中的系数都为零的情况下将得到的RD代价。在操作408中,编码器评估新计算的RD代价是否优于(例如,小于)当前RD代价。如果优于,则在操作410中,将当前组中的所有系数都置零,并且更新当前RD代价以反映该改变。在操作412中,编码器评估其是否已经完成L1 RDOQ,例如其是否已经到达刚好在[0,0]组之前的组(如果如上面概述的特殊情况中描述的那样,编码器和解码器配置为假定在该组中存在至少一个非零系数,则[0,0]组不被置零)。如果还有其他组要评估,则过程400在操作414继续,在操作414中编码器移动到下一组(在一些实施例中,使用扫描顺序)。
现在将通过示例描述RDOQ过程。在此参考上面结合图3、4和5给出的示例。在L1 RDOQ之前,但在L0 RDOQ之后,在图3中示出了最优的量化后的变换域系数。在图4中示出了对应的L0有效图,并且图5中示出了L1有效图。
L1 RDOQ过程可以例如得到图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和0来表示)。如果修改后的RDOQ确定2×2是最佳的,则编码器将二进制数1编码到比特流中的significant-coefficient-group标记之前。解码器解码在该significant-coefficient-group标记之前的该二进制数,并且知道当前TU的系数组大小是2×2。
在另一示例中,RDOQ过程利用了多级扫描的好处:在确定末位位置之后,按逐组的方式执行L1/L0 RDOQ。具体地,针对16×16 TU、4×4系数组和在4×4的组上的多级扫描的示例性RDOQ过程如下:
步骤1:令nCG=15(从末位系数组开始)。
步骤2:依照多级扫描指定的组内扫描顺序,针对在组位置nCG处的系数组中的每个系数,执行L0 RDOQ。
步骤3:如果步骤2之后得到的系数组具有非零系数,nCG大于0,并且其右方相邻组和下方相邻组中的任一个具有设置为0的有效系数组标记,则针对该系数组执行L1 RDOQ:1)计算针对当前系数组将L1标记设置为0的RD代价;2)如果该代价小于从步骤2得到的RD代价,则将该系数组中的所有系数都设置为0,以及将当前组的有效系数组标记设置为0。
步骤4:将nCG减1。
步骤5:重复步骤1-4,直到nCG等于0。
步骤6:确定最小化RD代价的末位位置。
图17以流程图形式说明了该示例,示出了利用多级扫描顺序对多级有效图进行RDOQ编程的示例过程450。过程450包括第一操作452,在操作452中基于包含末位有效系数的组来设置系数组nCG的数目。在操作454中,针对当前系数组内的系数执行L0 RDOQ过程;也即,将比率失真优化用于针对当前组内的每个系数所确定的优化系数值。在操作456中,如果存在非零系数,则过程450跳到操作464,以移动到扫描顺序中的下一系数组,并且循环回操作454以针对下一系数组执行L0RDOQ。注意,如果下方和右方的相邻组具有都为非零的有效系数标记,则过程450也跳到操作464。
在操作456中,如果在当前组中存在非零系数,则过程450移动到操作458,在操作458中,针对当前组执行L1 RDOQ。也即,如果L1标记(有效系数组标记)被设置为0,由此在解码器处得到全零系数,则计算RD代价。如果根据操作460中的评估,相对于失真的比率节省导致较低的RD代价,则在操作462中,将系数置零,并且将有效系数组标记设置为0。
示例语法
下面提供用于实现多级有效图的示例语法。该示例语法仅是一个可能实现。
该significant_coeffgroup_flag可被表示和定义如下:
significant_coeffgroup_flag[xCG][yCG]
针对当前16×16或32×32变换块内的系数组位置(xCG,yCG),该标记如下规定位置(xCG,yCG)处的对应系数组是否具有非零值:
如果significant_coeffgroup_flag[xCG][yCG]等于0,则在位置(xCG,yCG)的系数组中的非零系数的数目被设置为等于0;
否则(significant_coeffgroup_flag[xCG][yCG]等于1),则除了下面定义的特殊情况之外,在位置(xCG,yCG)处的系数组中的非零系数的数目不为0。
特殊情况定义如下:
1.将在按照扫描顺序的第一系数组位置(0,0)处的significant_coeffgroup_flag[0][0]指明为等于1。
2.如果significant_coeffgroup_flag[xCG][yCG+1]=1并且significant_coeffgroup_flag[xCG+1][yCG]=1,则将在按照扫描顺序的系数组位置(xCG,yCG)处的significant_coeffgroup_flag[xCG][yCG]指明为等于1。
当significant_coeffgroup_flag[xCG][yCG]不存在时,指明其为0。
在一些实施例中,significant_coeffgroup_flag[xCG][yCG]不应用于4×4和8×8的变换块。
下面的伪码说明了用于重构量化后的变换域系数(残差)的解码过程内的多级有效图的一个示例实现。
应该注意,伪码的第一部分包括对末位有效系数位置进行解码。如果变换单元是16×16或者更大(如通过if(log2TrafoSize>3)所指示的那样),则确定系数组的数目,以及每个系数组中的系数的数目。第二个if-else语句反映了对包含末位有效系数的系数组内的有效系数标记的解码。
主if-else语句内的第二个for-loop(for循环)反映了按照组扫描顺序的逐组处理。在该循环的第一部分内,在if-else语句中处理两个特殊情形:如果系数组是左上角的组(即,nCG=0)或者当前组的右方和下方的组具有都为非零的有效系数组标记,则将有效系数组标记设置为1。如果那两个情形不适应(“else”子句),则从比特流中解码出有效系数组标记(significant_coeffgroup_flag[xCG][yCG])。
在if-else语句之后,又一if-else语句规定:如果有效系数组标记为非零,则按照扫描顺序从比特流中解码出该组的有效系数标记。从比特流中解码出该组中的除最后一个(左上角)有效系数标记之外的所有有效系数标记。解码器然后评估解码出的该组的有效系数标记中的任何一个是否为非零。如果有任一个为非零,则解码出该组的最后一个(左上角)有效系数标记;否则,将其设置为1,因为已知其不可能为零。
跟在后面的“else”语句适用于有效系数组标记是零的情形。在该情形中,该组的所有有效系数标记都被设置为零。
前面的伪码示出了上面结合图16描述的示例方法700的一个示例实现。在该实施例中,有效系数组标记及其对应的有效系数标记(如果存在任何一个的话)被交织。图16的示例方法700与示例伪码之间的区别在于:示例方法700在操作720中处理左上角的组的特殊情形,而伪码通过将该组的有效系数组标记设置为非零、并且因此在操作714中根据比特流解码出该组的有效系数标记来处理操作708内的特殊情形。
在另一实施例中,系数组的大小是固定的。在下面的伪码中展示了使用固定的4×4系数组的示例语法:
在又一实施例中,在比特流中有效系数组标记可以不与有效系数标记进行交织。也即,有效系数组标记被一起编码在比特流中,有效系数标记按照扫描顺序逐组地在比特流中跟在它们后面。在下面的伪码中展示了与非交织的实施例相对应的示例语法:
现在参照图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 (12)

1.一种根据编码数据的比特流重构变换单元的有效系数标记的方法,其中,所述变换单元被划分成非重叠的块,每个块包括相应的有效系数标记组,所述比特流包括编码后的有效系数组标记,其中每个有效系数组标记对应于相应的块以及该块的有效系数标记组,所述方法包括:
在所述变换单元内按照组扫描顺序,针对每个相应的有效系数标记组,执行以下操作,其中所述组扫描顺序是垂直的、水平的、或对角线的:
重构该组的对应有效系数组标记;以及
按照组内扫描顺序,针对该组中的每个有效系数标记,通过下述方式重构该组中的有效系数标记,其中组内扫描顺序是垂直的、水平的、或对角线的:
如果该有效系数标记位于组中的位置(0,0)处,对应有效系数组标记被解码为非零,以及该组中的所有先前有效系数标记都是零,则将该有效系数标记指明为1,
否则
如果该有效系数标记是在对应的有效系数组标记为非零的组中,则从比特流中解码出该有效系数标记;以及
如果该有效系数标记是在对应的有效系数组标记为零的组中,则将有效系数标记设置为0。
2.根据权利要求1所述的方法,其中所述组扫描顺序是用于重构相应的有效系数标记组的规定顺序。
3.根据权利要求2所述的方法,其中仅在重构了按照所述组扫描顺序在先的所有组的所有有效系数标记之后,才重构相应的下一组的有效系数标记。
4.根据权利要求1所述的方法,其中仅在重构了按照所述组扫描顺序在先的所有组的所有有效系数标记之后,才重构相应的下一组的有效系数标记。
5.根据权利要求1到3中任一项所述的方法,其中重构有效系数组标记包括:根据比特流的编码数据,解码至少一些有效系数组标记。
6.根据权利要求1到3中任一项所述的方法,其中重构该组的对应有效系数组标记包括:如果该组包含末位有效系数的有效系数标记,则将该组的有效系数组标记指明为1。
7.根据权利要求1到3中任一项所述的方法,其中重构该组的对应有效系数组标记包括:如果该组包含变换单元内的位置[0,0]处的系数的有效系数标记,则将该组的有效系数组标记指明为1。
8.根据权利要求1到3中任一项所述的方法,其中所述组是相邻的正方形块。
9.根据权利要求1到3中任一项所述的方法,其中每个组是非正方形的矩形块。
10.根据权利要求1到3中任一项所述的方法,其中重构有效系数组标记之一包括:基于针对两个相邻组所重构的有效系数组标记,确定有效系数组标记的上下文,其中所述两个相邻组包括右方相邻组和下方相邻组,以及如果所述两个相邻组的有效系数标记都为0,则上下文是0,否则上下文为1。
11.一种用于解码编码数据的比特流以重构变换单元的有效系数标记的解码器,其中,所述变换单元被划分成非重叠的块,每个块包括相应的有效系数标记组,所述比特流包括编码后的有效系数组标记,其中每个有效系数组标记对应于相应的块以及该块的有效系数标记组,所述解码器包括:
处理器;
存储器;以及
解码应用,存储在存储器中,并且包含用于将处理器配置为执行根据权利要求1到3中任一项所述的方法的指令。
12.一种用于对变换单元的有效系数标记进行编码的方法,其中,所述变换单元被划分成非重叠的块,每个块包括相应的有效系数标记组并且具有相应的有效系数组标记,所述方法包括:
在所述变换单元内按照组扫描顺序,针对每个相应的有效系数标记组执行以下操作,其中所述组扫描顺序是垂直的、水平的、或对角线的:
确定该组的相应有效系数组标记,其中,如果该组包含非零有效系数标记,则将该组的相应有效系数组标记设置为零,但是针对包含该变换单元中的位置[0,0]处的有效系数标记的组,将有效系数组标记设置为1,而不管该组是否具有任何非零有效系数标记,以及
如果该组的对应有效系数组标记不为0,则按照组内扫描顺序对该组中的有效系数标记进行编码,其中组内扫描顺序是垂直的、水平的、或对角线的。
CN201210464858.4A 2011-11-19 2012-11-16 多级有效图扫描 Expired - Fee Related CN103124349B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161561872P 2011-11-19 2011-11-19
US61/561,872 2011-11-19
US13/446,186 US9743098B2 (en) 2011-11-19 2012-04-13 Multi-level significance map scanning
US13/446,186 2012-04-13

Publications (2)

Publication Number Publication Date
CN103124349A CN103124349A (zh) 2013-05-29
CN103124349B true CN103124349B (zh) 2016-09-14

Family

ID=46245802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210464858.4A Expired - Fee Related CN103124349B (zh) 2011-11-19 2012-11-16 多级有效图扫描

Country Status (11)

Country Link
US (3) US9743098B2 (zh)
EP (1) EP2595380B1 (zh)
JP (2) JP5542188B2 (zh)
KR (1) KR101538832B1 (zh)
CN (1) CN103124349B (zh)
AU (1) AU2012245178B2 (zh)
BR (1) BR102012029413B1 (zh)
CA (1) CA2773990C (zh)
HK (1) HK1179451A1 (zh)
SG (1) SG190516A1 (zh)
TW (1) TWI483618B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8964849B2 (en) * 2011-11-01 2015-02-24 Blackberry Limited Multi-level significance maps for encoding and decoding
EP3139609B1 (en) * 2012-01-03 2021-01-06 HFI Innovation Inc. Method and apparatus for block-based significance map and significance group flag context selection
US9253481B2 (en) * 2012-01-13 2016-02-02 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
AU2012200319B2 (en) * 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9106918B2 (en) 2012-01-20 2015-08-11 Sony Corporation Coefficient coding harmonization in HEVC
US9350998B2 (en) 2012-06-29 2016-05-24 Qualcomm Incorporated Coding of significance flags
US9386306B2 (en) 2012-08-15 2016-07-05 Qualcomm Incorporated Enhancement layer scan order derivation for scalable video coding
CN104604225B (zh) 2012-09-10 2018-01-26 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
US9538175B2 (en) 2012-09-26 2017-01-03 Qualcomm Incorporated Context derivation for context-adaptive, multi-level significance coding
KR101502144B1 (ko) * 2013-08-22 2015-03-12 주식회사 에스원 계수 정보를 변환하는 방법 및 장치
US9445132B2 (en) * 2013-09-09 2016-09-13 Qualcomm Incorporated Two level last significant coefficient (LSC) position coding
KR102218196B1 (ko) * 2013-10-28 2021-02-23 삼성전자주식회사 인코더, 이의 동작 방법과, 상기 인코더를 포함하는 장치들
US9781424B2 (en) 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
JP6476900B2 (ja) * 2015-01-21 2019-03-06 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
US11233998B2 (en) * 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
CN115499663A (zh) * 2015-06-08 2022-12-20 上海天荷电子信息有限公司 单编码模式参考不同程度重构像素的图像压缩方法和装置
US10631013B2 (en) 2015-06-11 2020-04-21 Lg Electronics Inc. Method for re-positioning significant coefficient in image encoding/decoding process and device therefor
KR102644185B1 (ko) * 2015-09-30 2024-03-06 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
EP3264763A1 (en) * 2016-06-29 2018-01-03 Thomson Licensing Method and apparatus for improved significance flag coding using simple local predictor
CN117412043A (zh) * 2016-07-13 2024-01-16 韩国电子通信研究院 图像编码/解码方法和装置
MX2019012294A (es) 2017-04-13 2020-01-27 Lg Electronics Inc Metodo de codificacion/decodificacion de imagenes y dispositivo para el mismo.
US10523968B2 (en) 2017-09-18 2019-12-31 Google Llc Coding of last significant coefficient flags
CN110650343B (zh) * 2018-06-27 2024-06-07 中兴通讯股份有限公司 图像的编码、解码方法及装置、电子设备及***
AU2018233042B2 (en) 2018-09-21 2024-06-13 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
AU2019201649A1 (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
CN114979641A (zh) * 2021-02-21 2022-08-30 腾讯科技(深圳)有限公司 视频编解码方法、装置、计算机可读介质及电子设备
CN115623218A (zh) * 2021-07-13 2023-01-17 财团法人工业技术研究院 特征数据编码方法、编码器、特征数据解码方法及解码器

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190840B2 (en) * 2002-01-07 2007-03-13 Hewlett-Packard Development Company, L.P. Transform coefficient compression using multiple scans
KR100667808B1 (ko) * 2005-08-20 2007-01-11 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
US20070071331A1 (en) 2005-09-24 2007-03-29 Xiteng Liu Image compression by economical quaternary reaching method
KR100873636B1 (ko) * 2005-11-14 2008-12-12 삼성전자주식회사 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치
KR101356733B1 (ko) 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
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
TWI482499B (zh) * 2008-10-03 2015-04-21 Ind Tech Res Inst 影像訊號處理裝置和方法
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
US8879632B2 (en) 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
LT3435674T (lt) 2010-04-13 2023-09-25 Ge Video Compression, Llc Reikšmingumo schemų ir transformacijos koeficientų blokų kodavimas
CN103119849B (zh) * 2010-04-13 2017-06-16 弗劳恩霍夫应用研究促进协会 概率区间分割编码器和译码器
US9154801B2 (en) * 2010-09-30 2015-10-06 Texas Instruments Incorporated Method and apparatus for diagonal scan and simplified coding of transform coefficients
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles

Also Published As

Publication number Publication date
CA2773990C (en) 2015-06-30
AU2012245178B2 (en) 2013-11-28
TW201334550A (zh) 2013-08-16
US10116950B2 (en) 2018-10-30
US20130128985A1 (en) 2013-05-23
EP2595380A1 (en) 2013-05-22
SG190516A1 (en) 2013-06-28
JP5542188B2 (ja) 2014-07-09
BR102012029413A2 (pt) 2016-02-16
US20180007376A1 (en) 2018-01-04
KR20130056183A (ko) 2013-05-29
EP2595380B1 (en) 2015-10-21
TWI483618B (zh) 2015-05-01
JP2014195269A (ja) 2014-10-09
KR101538832B1 (ko) 2015-07-22
US9743098B2 (en) 2017-08-22
BR102012029413A8 (pt) 2021-08-24
JP2013110740A (ja) 2013-06-06
AU2012245178A1 (en) 2013-06-06
CA2773990A1 (en) 2013-05-19
CN103124349A (zh) 2013-05-29
BR102012029413B1 (pt) 2022-02-15
US10681362B2 (en) 2020-06-09
HK1179451A1 (zh) 2013-09-27
JP5925830B2 (ja) 2016-05-25
US20190052890A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
CN103124349B (zh) 多级有效图扫描
JP7384736B2 (ja) 適応ツリー選択を使用してバイナリ・セットをビデオ符号化およびビデオ復号する方法および装置
JP7445030B2 (ja) 統一された有意性マップ符号化方法および装置
CN104272735B (zh) 针对视频的上下文自适应二进制熵编码的变换系数编码
CN105959697B (zh) 变换单元内的多符号位隐藏
CN103597838B (zh) 对末位有效系数的位置进行编码和解码的方法和设备
JP7245341B2 (ja) 統合変換タイプ通知および変換タイプ依存変換係数レベルコーディング
CN105872550A (zh) 用于编码和解码的多级有效图
CN104469378A (zh) 用于对系数组中的最后一个非零变换系数的位置数据进行编码
US20110243220A1 (en) Method and apparatus for encoding and decoding image and method and apparatus for decoding image using adaptive coefficient scan order
CN104041038A (zh) 用于编码和解码图像的方法、编码和解码设备以及相应的计算机程序
MX2012011650A (es) Metodo y aparato para codificar y decodificar imagenes y metodo y aparato para decodificar imagenes usando orden de barrido de coeficiente adaptativo.
CN104469384A (zh) 基于帧内预测模式对变换系数块进行转置
CN103067701B (zh) 使用分区选择的重要性图编码和解码
KR101739603B1 (ko) 2진 세트들을 인코딩 및 디코딩하기 위해 트리 구조들을 재이용하는 방법 및 장치
TWI533705B (zh) 用於內容脈絡集選擇之方法及裝置
CA2800119C (en) Methods and systems for pipelining within binary arithmetic coding and decoding
KR102683408B1 (ko) 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치
KR20240112965A (ko) 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치

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
TR01 Transfer of patent right

Effective date of registration: 20181218

Address after: Dublin, Ireland

Patentee after: Velos Media, LLC

Address before: Voight, Ontario, Canada

Patentee before: Blackberry Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181227

Address after: Voight, Ontario, Canada

Patentee after: BlackBerry Ltd.

Address before: Dublin, Ireland

Patentee before: Velos Media, LLC

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160914