CN103067701A - 使用分区选择的有效图编码和解码 - Google Patents

使用分区选择的有效图编码和解码 Download PDF

Info

Publication number
CN103067701A
CN103067701A CN2012104115630A CN201210411563A CN103067701A CN 103067701 A CN103067701 A CN 103067701A CN 2012104115630 A CN2012104115630 A CN 2012104115630A CN 201210411563 A CN201210411563 A CN 201210411563A CN 103067701 A CN103067701 A CN 103067701A
Authority
CN
China
Prior art keywords
context
effective
bit
subregion
bit position
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.)
Granted
Application number
CN2012104115630A
Other languages
English (en)
Other versions
CN103067701B (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
Research in Motion 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 Research in Motion Ltd filed Critical Research in Motion Ltd
Priority to CN201610313043.4A priority Critical patent/CN105791847B/zh
Publication of CN103067701A publication Critical patent/CN103067701A/zh
Application granted granted Critical
Publication of CN103067701B publication Critical patent/CN103067701B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/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/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/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/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/186Methods 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 colour or a chrominance component
    • 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/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
    • H04N19/197Methods 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 including determination of the initial value of an encoding parameter
    • 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

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)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

描述了针对视频数据的编码和解码方法,在所述方法中使用图到部分的非空间均匀分区来编码和解码有效图,其中每个部分内的比特位置与给定的上下文相关联。描述了示例分区集合和从中选择预定分区集合以及将所述选择传达给解码器的过程。

Description

使用分区选择的有效图编码和解码
版权声明
本文档和附属材料的公开的一部分包含要求了版权的材料。版权人不反对任何人对如在专利和商标局的文件或记录中发表的专利文档或专利公开的复制,但是无论如何保留其他版权权利。
技术领域
本申请总体涉及数据压缩,具体地涉及使用分区(partition)选择来编码和解码视频的有效图(significance map)的方法和设备。
背景技术
数据压缩发生在众多上下文中。在通信和计算机联网中非常普遍地使用数据压缩,以有效地存储、传输和复制信息。其在图形、音频和视频的编码方面得到了具体应用。由于每个视频帧所需的大量数据以及经常需要发生的编码和解码的速度,视频对数据压缩提出相当大的挑战。视频编码的当前最新技术是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%。
对有效图中的符号的熵编码基于上下文模型。在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。还旨在以高的计算速度来执行该操作。
发明内容
本申请描述了用于以上下文自适应的编码和解码来对有效图进行编码和解码的方法和编码器/解码器。该编码器和解码器的特征在于将图非空间均匀地划分成部分,其中每个部分内的比特位置与给定的上下文相关联。下面描述示例分区集合和用于从中选择预定分区集合以及将所述选择传达给解码器的过程。
在一个方面,本申请描述了一种用于对编码数据的比特流进行解码以重构变换单元的有效图的方法。该方法包括:针对有效图中的每个比特位置,基于分区集合确定该比特位置的上下文;基于所确定的上下文对编码数据进行解码以重构比特值;以及基于重构的比特值更新上下文,其中重构的比特值形成解码后的有效图。
在另一方面,本申请描述了一种对变换单元的有效图进行编码的方法。该方法包括:针对有效图中的每个比特位置,基于分区集合确定该比特位置的上下文;基于所确定的上下文对该比特位置处的比特值进行编码以生成编码数据;以及基于该比特值更新上下文,其中该编码数据形成编码后的有效图。
在一些示例实施例中,变换单元是4×4。在一些示例实施例中,变换单元是8×8。在一个示例中,分区集合通过下述给出的基于块的映射向比特位置分配上下文:
Figure BDA00002299150500031
上面的整数表示分配给4×4的块有效图中的比特位置的上下文。
在另一示例中,分区集合通过下述给出的基于块的映射向比特位置分配上下文:
Figure BDA00002299150500032
本文描述了其他示例分区集合。
在又一方面,本申请描述了配置为实现这种编码和解码的方法的编码器和解码器。
在又一方面,本申请描述了一种存储计算机可执行程序指令的非瞬时计算机可读介质,所述计算机可执行程序指令在被执行时将处理器配置为执行所描述的编码和/或解码的方法。
结合附图,通过阅读以下示例的描述,本领域技术人员将理解本申请的其他方面和特征。
附图说明
现在参照附图作为示例,附图示出了本申请的示例实施例,在附图中:
图1以框图形式示出了用于对视频进行编码的编码器;
图2以框图形式示出了用于对视频进行解码的解码器;
图3以图解方式示出了将4×4的块划分成6个部分,其中每个部分中的比特位置被映射到上下文;
图4示出了对图3的划分(partitioning)的细化,得到9个部分;
图5以图解方式示出了将8×8的块划分成4个部分,其中每个部分中的比特位置被映射到上下文;
图6示出了对图5的划分的细化,得到12个部分;
图7以流程图形式示出了用于对编码数据进行解码以重构有效图的示例方法;
图8示出了说明粗划分和细划分的相对压缩效率以及其对编码片大小的依赖关系的图表;
图9示出了编码器的示例实施例的简化框图;以及
图10示出了解码器的示例实施例的简化框图。
在不同的附图中已经使用类似的参考标号来标记类似的组份。
具体实施方式
在以下描述中,参考用于视频编码的H.264标准和/或开发中的HEVC标准,描述了一些示例实施例。本领域技术人员应该理解,本申请不限于H.264或HEVC,而是可适用于其他视频编码/解码标准,包括可能的将来的标准、多视图编码标准、可伸缩视频编码标准、以及可重新配置的视频编码标准。
在以下描述中,当参考视频或图像时,在某种程度上可以互换地使用术语帧、图片、片、平铺块(tile)和矩形片组。本领域技术人员将认识到,在H.264标准的情况中,帧可以包含一个或多个片。还将认识到,取决于适用的图像或视频编码标准的特定要求或术语学,某些编码/解码操作是逐帧执行的,一些编码/解码操作是逐片执行的,一些编码/解码操作是逐图片执行的,一些编码/解码操作是逐平铺块执行的,以及一些编码/解码操作是逐矩形片组执行的,视情况而定。在任何特定实施例中,适用的图像或视频编码标准可以确定是否关于帧和/或片和/或图片和/或平铺块和/或矩形片组来执行以下描述的操作。相应地,根据本公开,本领域技术人员将理解,这里描述的特定操作或过程以及对帧、片、图片、平铺块、矩形片组的特定引用对于给定实施例是否适用于帧、片、图片、平铺块、矩形片组、或者其中的一些或全部。这也可应用于变换单元、编码单元、编码单元的组等等,如根据以下描述将变得明显的那样。
现在参照图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,作为比特流的一部分与量化后的系数一起编码。
本领域技术人员将认识到用于实现H.264编码器的细节和可能变型。
解码器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字形的、或者可以是适用的编码标准规定的任何其他扫描顺序)将有效图转换成矢量。然后,使用适用的上下文自适应编码机制对每个有效比特进行熵编码。例如,在许多应用中,可以使用上下文自适应二进制算术编码(CABAC)机制。其他实现可以使用其他利用二元化的上下文自适应编解码。示例包括二进制算术编码(BAC)、可变到可变(V2C)编码、以及可变到固定(V2F)长度编码。针对每个比特位置,分配上下文。当对该比特位置的比特进行编码时,分配的上下文以及该点的上下文历史确定最小可能符号(LPS)(或者在一些实现中,是最大可能符号(MPS))的估计概率。
在现有的视频编码器中,针对编码器和解码器二者预先确定上下文分配。例如,对于4×4的亮度块,当前草案HEVC标准规定4×4的有效图中的每个比特位置具有唯一的上下文。排除末位位置,这意味着为了对4×4的亮度有效图进行编码,跟踪15个上下文。针对每个比特位置,分配给该位置的上下文确定与该位置的LPS相关联的估计概率。然后,使用估计概率对实际比特值进行编码,最后,基于该实际比特值更新分配给该位置的上下文。在解码器处,使用相同的上下文模型对编码数据进行解码。跟踪每个比特位置的上下文,并且使用其来确定估计概率,以便解码数据以恢复该位置的比特。
上下文分配可被视为划分数据块并且将不同上下文分配给每个部分。算术上,可以使用P:{0,...,n-1}×{0,...,n-1}→{0,...,m-1}作为分区集合来定义该映射。给比特位置编制索引{0,...,n-1}×{0,...,n-1}。编号0,…,m-1标识不同的分区。每个分区具有与之相关联的一个指定上下文。可以针对该分区排他地使用该上下文(在一些情况中,可以针对亮度和色度两种类型的块使用上下文)。
针对两个分区集合P和Q,如果存在映射T使得对于所有i和j,T(P(i,j))=Q(i,j),则称Q是P的子集,或者P是对Q的细化。
编码工作如下:给大小为n×n的TU分配分区集合P。可以考虑有效图为矩阵M(i,j)。矩阵M按水平扫描顺序读取可以表示为M(0,0),M(0,1),…,M(0,n-1),M(1,0),M(1,1),...,M(1,n-1),...M(n-1,n-1)。该扫描顺序定义了从矩阵表示到矢量表示的一对一的映射。在矢量形式中,该扫描顺序与数字0,1,…,n2-2的置换相对应。在实际实现中,索引编制可以基于单值矢量索引编制或者矩阵类型的双索引编制,无论哪一种都会更为便利。在与P(i,j)对应的BAC上下文中对M(i,j)进行编码,并且使用M(i,j)更新该上下文。从编码过程直接导出解码过程。
该架构可以用于描述当前针对HEVC提出的有效图编码机制。4×4和8×8的TU中的每一种与单独的分区集合相关联,分别称为P4和P8。这些给出如下:
P4(i,j)=4*i+j    i,j=0,1,2,3[总共15个上下文]
P8(i,j)=4*[i/2]+[j/2]i,j=0,1,2,3,4,5,6,7[总共16个上下文]
针对亮度和色度使用相同的映射,但是亮度和色度的上下文是分开的。因此,针对这些TU使用的上下文的总数是15+15+16+16=62。
应该注意,对有效图的划分是均匀分布的。也即,分配给右下象限的比特位置的上下文与分配给左上象限的上下文的数目同样多。对于许多实施例而言,上下文的均匀分布可能不是最佳的。与右下象限中的上下文相比,与左上象限相关联的上下文被更多的使用(因为有效图经常在到达这些右下比特位置之前结束)。相应地,这些上下文存在较少的可用数据,使得它们不太快地自适应调整,更一般地讲,不太有效。
如以下描述的,细化的划分和映射将达到精确性的目标(其倾向于每个上下文较少的比特位置)和自适应性的目标(其倾向于每个上下文较多的比特位置,以提供更多的数据并且更快地收敛到最佳概率估计)之间的平衡。好的分区集合将在压缩效率与分区数目m之间权衡。当在这两个约束下最优化分区集合时,理论上应该评估针对给定TU的P的所有可能实例。
为了理解该任务的复杂性,可以计算针对任意给定TU大小n×n和分区计数m的基本上唯一的分区集合的数目。应该注意,分区的矩阵布置是任意的,并且使用例如水平扫描顺序,矢量形式的等价表示是可用的。通过下式表示得到的映射:Pv:{0,...,N-1}→{0,...,m-1},其中N=n2-1(即,排除右下比特位置)。令C(N,m)是这种满射映射的数目,意味着Pv的范围是{0,...,m-1},忽略作为已经计算在内的映射的简单置换的那些映射(也即,可能被重新标记以得到另一个已经计算在内的映射的分区)。注意,对于任何N≥1,C(N,1)=1和C(N,N)=1。对于m>1,所有Pv映射可被分成两类。在第一类中,令
Figure BDA00002299150500101
Figure BDA00002299150500102
因为值1,...,N-1现在被映射到{1,...,Pv(0)-1,Pv(0)+1,...,m-1},所以这种映射的数目是C(N-1,m-1)。在第二类中,Pv(0)∈{Pv(1),...,Pv(N-1)};值1,...,N-1被映射到0,...,m-1,其可以按C(N-1,m)种方式完成,并且可以在m个分区中的任意分区中插入Pv(0),得到m*C(N-1,m)种可能性。因此,已经获得循环C(N,m)=C(N-1,m-1)+m*C(N-1,m)。注意,因此C(N,m)数目与第二种类的Stirling数目一致。
使用该公式,可以计算出针对4×4的TU(即15个系数或比特位置)的分区集合的总数是382958545;刚好具有5个部分的分区集合的数目是210766920,并且刚好具有10个部分的分区集合的数目是12662650。针对8×8个TU(63个系数)的对应数目以指数形式表达较佳:不同分区集合的总数是8.2507717*1063,具有不大于16个部分的集合的数目是3.5599620*1062,刚好具有5个部分的集合的数目是9.0349827*1041,以及刚好具有10个部分的集合的数目是2.7197285*1056。因为这些分区集合中的任意分区集合形成用于视频压缩的合理的分区集合,从那么多的候选中选出最佳分区集合是相当重要的且困难的任务。
示例分区集合
通过实验测试和分析,以下示例分区集合和上下文映射似乎得到计算速度与压缩效率之间的有利平衡。
现在参考图3,图3以图解方式示出了将4×4的块划分成6个部分,分别表示为P1,P2,…,P6。这可被例如用于4×4的块情况下的有效图。在块100中示出了与每个比特位置相关联的上下文(C0,C1,…,C5)。相同部分内的比特位置均共享相同的上下文。应该注意,部分P4包括2个不连续的区域。P4中的4个比特位置均被分配给上下文C3。图3中示出的划分可被标为P4-6,以指示该划分涉及4×4的块并且特征为6个部分。
图4以图解方式示出了对P4-6的细化,其中进一步的划分将P2分成三个单独的部分;那些单独的部分被标记为P2、P5和P6。还应该注意,部分P4已经被分成两半,使得两个不连续的区域现在是分开的部分,在该示例说明中被标记为P4和P9。该划分结构可被标为P4-9,以表示其向4×4的块中的9个不同部分分配9个上下文。
图5示出了将8×8的块划分成4个单独的部分,标为P1到P4。如所示出的,向每个部分分配上下文C0到C3中的对应上下文。该划分可以被标为P84。
图6示出了对P8-4的作为P8-12的细化。在该情况下,对P8-4进一步子划分,使得如图所示四个部分被子划分成总共12个部分。因此,在该划分中,存在12个上下文C0,…,C11
在所有的前述示例中,应该注意,该划分以及因此的上下文分配/分派不是在块上均匀分布的。也即,该划分中的较小的部分趋向于向左上象限聚集,而该划分中的较大的部分趋向于位于块的右下侧。结果,分派给左上象限的上下文趋向于具有与之关联的较少的比特位置(通常如此,但是不总是如此),以及分派给右或下侧的上下文趋向于具有与之相关联的较多的比特位置。在时间上,这将趋向于得到对上下文的较均匀的使用。也即,该非均匀空间分配趋向于得到比特到每个上下文的更均匀的分配。
还应该注意,P4-6划分是P4-9划分的子集,以及P8-4划分是P8-12划分的子集。该特性对于一些分区集合选择过程而言具有相关性,下面将解释说明。
在一个应用中,可以通过表查找来获得针对4×4和8×8分区集合的上下文索引推导。在另一应用中,可以通过逻辑操作确定上下文索引。例如,针对P4-6集合,可以如下获得上下文索引推导:
(x & 2)?((y & 2)?5:x):
((y & 2)?(y & 1?3:4):
(x|y));
应该理解,上面描述的4个示例分区集合是示例。在下面描述的选择过程中可以使用其他(或附加的)分区集合。
分区集合选-择静态分配
本申请详细描述4个示例选择过程。第一示例选择过程是静态分配。在该示例过程中,编码器和解码器被预配置为:针对具有特定特性的有效图,使用特定分区集合。例如,该分配可以基于TU大小、文本类型(亮度或色度)、和/或基于QP值。该分配可以由编码器在视频数据之前的报头中指定,或者可以预配置在编码器和解码器二者中。
在一些实现中,该分配可以(部分地)基于色度子采样。对于4:2:0和4:1:1子采样,色度分量包含比亮度分量少得多的信息,其暗示针对色度使用比针对亮度使用的分区集合粗的分区集合。例如,可以针对4×4亮度,使用P4-9;针对4×4色度,使用P4-6;针对8×8亮度,使用P8-12;以及针对8×8色度,使用P8-4。这将得到31个上下文。
针对4:4:4子采样的情况,色度值具有相比而言提高的重要性,其推动针对色度使用更细化的分区集合。相应地,在一个示例中,可以针对4×4亮度和色度都使用P4-9,以及针对8×8亮度和色度都使用P8-12。这将得到42个上下文。
然而注意,在一些实现中,可以在文本类型之间共享上下文。例如,4×4亮度和4×4色度可以都使用P4-9分区集合,但是该集合中的上下文被用于亮度和色度二者。在另一实施例中,4×4亮度和4×4色度可以都使用P4-9分区集合,但是它们使用不同的上下文。
现在参照图7,图7以流程图形式示出了用于对编码数据的比特流进行解码以重构有效图的方法100。方法100开始于在操作102中确定有效图的大小。该确定基于末位有效系数,该末位有效系数是在比特流中指定的。在一些实施例中,该末位有效系数可以使用在末位有效系数之前的所有比特位置(按扫描顺序)为0和在末位有效系数的比特位置处为1的字符串,以二进制来发信号通知。备选地,可以使用指示比特位置的索引对(x,y)来发信号通知。在另外的实施例中,可以使用指示按扫描顺序的比特位置的单个索引来发信号通知。还可以使用发信号通知末位有效系数的其他机制。在任何事件中,末位有效系数向解码器通知有效图的大小。
按照编码器中编码比特位置所依据的相同顺序,针对有效图中的每个比特位置,执行操作104、106和108。在一些实施例中,这可能意味着扫描顺序。在一些实施例中,这可能意味着逆扫描顺序。倘若编码器和解码器使用相同顺序,则其可以是任何任意顺序。
在操作104中,根据所存储的分区集合确定当前比特位置的上下文。在该示例方法的情况中,可以使用分区集合的静态分配。因此,文本类型和变换单元大小确定了所存储的指定针对该比特位置分配的上下文的分区集合。作为示例,所存储的分区集合可以是本文描述的P46、P49、P8-4和P8-12分区集合。
在操作106中,基于所确定的上下文,对编码数据进行解码以重构该比特位置的比特值。例如,上下文可以提供LPS的估计概率,根据LPS的估计概率CABAC引擎从编码数据中产生比特值。于是,在操作108中,基于该比特值更新所确定的上下文。
在操作110中,解码器评估在有效图中是否剩余其他比特位置,如果剩余,则针对下一比特位置重复操作104、106和108。
分区集合选择-序列特定的分配
第二示例选择过程是序列特定的分配。在该示例过程中,编码器基于例如TU大小、文本类型、QP值、或者其他特性来确定针对特定TU种类要使用哪个分区集合。该确定应用到整个视频序列。在序列报头中指定所选择的分区集合。相应地,解码器读出序列报头,然后知道在特定环境下要使用哪些分区集合对有效图进行解码。如果相同的分区集合与不止一种文本类型(例如针对4×4亮度和4×4色度)一起使用,则编码器还可以指定是否共享上下文或者两种文本类型是否使用不同的上下文。
在一个示例语法中,编码器可以列出要使用的每个分区集合的标识符,其中如果分区集合的分区结构应用在不止一个情形中,并且如果该不止一个情形的上下文将是不同的,则可以不止一次地列出相同的分区集合。然后,编码器以预定的顺序向有效图的每个“种类”(例如,4×4亮度,4×4色度,8×8亮度,8×8色度,等等)分配列出的分区集合之一。在一些实施例中,QP值也可以是在确定有效图的“种类”中的因素。
为了示出该示例语法,考虑4个分区集合,诸如上面给出的P4-6、P4-9、P8-4和P8-12示例。可以使用4个比特对这4个集合编制索引,诸如00、01、10、11,分别对应于P4-6、P4-9、P8-4和P8-12。
如果编码器确定应该针对4×4亮度和4×4色度二者使用P4-9且具有不同的上下文,以及针对8×8亮度和8×8色度都使用P8-12但是共享上下文,则编码器生成包括二进制指示符01011100011010的序列报头。
解码器在从该序列报头中读取该指示符时,将识别出将要使用集合P4-9(01)、P4-9(01)和P8-12(11)。解码器还将识别出:以这种方式列出它们,它们现在将称为,针对第一P4-9集合是“00”,针对第二P4-9集合是“01”,以及针对P8-12集合是“10”。
于是,解码器读取“00011010”,其中每两个比特位置指定针对4×4亮度、4×4色度、8×8亮度和8×8色度中的每一个要使用的分区集合。该比特通过其在先前刚读取的列表中的顺序对分区集合进行索引。相应地,解码器读取00并且知道这指向第一P4-9集合。然后,其读取01,其指向第二P4-9集合。最后4个比特“10”和“10”告诉解码器:针对8×8亮度和8×8色度二者,将使用相同P8-12集合,具有共享的上下文。
应该理解,可以使用其他语法在序列报头中发信号通知分区集合选择,并且前述仅是一个示例实现。
编码器可以使用表、恒等函数、或者其他机制来选择分区集合。该函数和/或表可以考虑TU大小、文本类型(亮度或色度)、QP值、片/序列中的像素的数目、或者其他因素。
分区集合选择-片特定的分配
第三示例选择过程是片特定的分配。
已经注意到,当编码片的大小相对小时,自适应性与精确性之间的平衡偏向于粗的分区,以及当编码片的大小相对大时,偏向于细的分区。相应地,要编码的比特的数目,或者更具体地讲,从编码过程得到的编码比特的数目可以是在确定最合适的分区集合中的相当重要的因素。
现在参考图8,图8示出了针对各种编码片大小的粗划分对细划分的相对效率的示例图表200。沿着横轴的每个编码片大小示出了两个柱,一个针对粗分区集合202,以及一个针对细分区集合204。柱高度基于:针对测试片,给定分区集合得到比备选集合更好的压缩效率的次数除以测试片的总数。应该注意,对于小尺寸的片,粗分区集合202性能优于细分区集合204,以及对于大尺寸的片,细分区集合204性能优于粗分区集合202。
相应地,可以设置用于从较粗分区集合切换到下一较细分区集合的一个或多个阈值。在上面描述的示例集合内,针对每个TU大小,仅存在两个分区集合(一个粗,一个细),因此例如阈值可以设置在64k或者其附近。在针对给定TU大小预定义了更多分区集合的情况下,可以建立另外的或其他阈值。
在片特定的分配过程中,编码器针对每个片的TU选择分区集合。可以在片报头中将该选择传达给解码器。可以使用诸如上面概述的语法传达针对特定TU种类所选择的分区集合。以这种方式,编码器可以使得对分区集合的选择适合特定片的特性。然而,为了实现此,编码器将需要使用默认分区选择对片进行编码,分析片特性(如编码片大小),然后用新的分区选择进行重新编码(如果新的分区选择不同于默认分区选择的话)。在一些实现中,编码器上的这种额外的计算负担可能是可接受的,诸如在下述情况下:编码发生一次(即,在对视频进行编码以供存储在诸如DVD/蓝光之类的分发介质上)以及稍后发生非实时回放(可能多次)。在其他实现中,如视频会议或手持视频记录,编码器上的双通编码负担可能是不可接受的。
一个选择是让分区集合选择基于先前编码的具有相同QP值和片类型(帧内或帧间)的片的统计特性。如果针对视频存在这样的先前的片,则编码器可以基于该先前的类似片的统计特性(例如编码大小)来向TU分配分区集合。如果不存在先前的片,则编码器可以使用默认的分区集合选择。
分区集合选择-动态分配
第四示例选择过程针对每个TU使用分区集合的序列,其中该序列中的每个相继的分区集合是其前面分区集合的更细化的版本。每个TU从其列表上的第一分区集合开始,然后在每个LCU边界上,其检查编码大小迄今为止是否已经超出特定限制。当这发生时,向TU分配来自列表的下一分区集合。关于何时切换的判决基于当前片,因此其可以由解码器按照编码器所执行的相同方式来确定,并且不需要在视频序列中规定另外的信息。
在该示例过程中,从一个分区集合Q到另一集合P的切换利用了Q是P的子集这个事实。将与每个部分P(i,j)相关联的BAC上下文初始化为来自Q的T(P(i,j));并且子集属性表明该初始化是良好定义的。如果针对两个比特位置(i1,j1)和(i2,j2),P(i1,j1)≠P(i2,j2)但是T(P(i1,j1)=T(P(i2,j2)),则部分(i1,j1)和(i2,j2)被初始化到相同的BAC状态,但是从与这两个分区相对应的两个上下文的角度看,其独立工作,并且可以是分离的。
为了给出示例,假定分区P4-6和P4-9都被用于对4×4亮度有效图进行编码,以及分区P8-4和P8-12都被用于对8×8亮度有效图进行编码。假设在该示例下,色度分区是固定的。注意,P4-9是P4-6的细化,以及P8-12是P8-4的细化。该切换准则是对二进制算术编码器迄今为止在当前片中已经编码的二进制数(bin)的数目的两个阈值,一个针对4×4,一个针对8×8。分别地,分区P4-6被初始化并且用于亮度4×4有效图,以及分区P8-4被初始化并且用于亮度8×8有效图。在已经编码每个LCU之后,检查BAC已经编码的二进制数的数目,并且将之与4×4阈值和8×8阈值进行比较。对于后续的所有LCU,如果超出4×4阈值,则针对亮度4×4有效图,使用分区集合P4-9;类似地,如果超出8×8阈值,则针对亮度8×8有效图,使用分区P8-12。P4-9分区的初始化值(如下面示出的定义为C4-9[i])将从P4-6的值(如下所示,定义为C4-6[i])进行复制,示出如下:
C4-9:{C4-6[0],C4-6[1],C4-6[2],C4-6[3],C4-6[1],C4-6[1],
C4-6[4],C4-6[5],C4-6[3]}
P8-12分区的初始化值(如下面示出的定义为C8-12[i])将从P8-4的值(如下所示,定义为C8-4[i])进行复制,示出如下:
C8-12:[C8-4[0],C8-4[0],C8-4[1],C8-4[2],C8-4[3],C8-4[1],C8-4[1],C8-4[2],C8-4[2],C8-4[2],C8-4[3],C8-4[3]}
从下一LCU开始,P4-9和P8-12中的每个分区/上下文独立于任意其他上下文进行操作和更新。
因为解码器能够以相同方式计算解码出的二进制数的数目,所以可以在没有来自编码片报头的显示信令的情况下在解码器处侧重复上述过程。
分区初始化
因为分区集合内的每个部分对应一个BAC状态(BAC状态被用于对该分区中的比特进行编码和解码),所以在每个片的开始时,需要确定该状态的初始值。初始值是这样的BAC状态,其在当前HEVC术语学中是在间隔(interval){1,...,126}中的整数值。该值的末位有效比特指定了MPS,并且剩余6个比特标识LPS的概率。由值64标识具有MPS=1和p(LPS)=0.5的均匀状态。
已经选择上面描述的分区集合,使得在一些实施例中可以在无严重的压缩性能损失的情况下执行状态初始化。由此,无论何时需要初始化分区时,其可被设为均匀状态。
在另一实施例中,可以提供初始化值。在一个实现中,提供的初始化值是针对片间的。然而,不同于针对每个部分、片类型(I,P,B)和文本类型(亮度,色度)指定QP的线性函数,在一个实施例中,本申请针对每个分区提出单个值。
作为示例,可以针对上面描述的分区使用以下初始化值。注意,为了视觉清楚,这些是以矩阵符号示出的,其中针对在特定分区集合中使用了上下文的每个位置,示出上下文的初始化值;然而,在实际实现中,矢量符号可以更加紧凑,在矢量符号中,(按已知顺序)针对每个上下文而非每个比特位置示出初始化值。
针对P4-9的帧内(intra)初始化值:
Figure BDA00002299150500181
针对P4-6的帧内初始化值:
Figure BDA00002299150500182
针对P8-12的帧内初始化值:
Figure BDA00002299150500183
Figure BDA00002299150500191
针对P8-4的帧内初始化值:
Figure BDA00002299150500192
针对P4-9的帧间(B)初始化值:
Figure BDA00002299150500193
针对P4-6的帧间(inter)(B)初始化值:
针对P8-12的帧间(B)初始化值:
Figure BDA00002299150500202
针对P8-4的帧间(B)初始化值:
Figure BDA00002299150500203
针对P4-9的帧间(P)初始化值:
Figure BDA00002299150500204
针对P4-6的帧间(P)初始化值:
Figure BDA00002299150500211
针对P8-12的帧间(P)初始化值:
Figure BDA00002299150500212
针对P8-4的帧间(P)初始化值:
Figure BDA00002299150500213
扫描顺序
如上面解释说明的,末位有效系数(LSC)的位置是使用扫描顺序确定的。示例定义的扫描顺序包括水平的、垂直的、对角线的和Z字形的。对有效图的编码和解码以逆着指定的扫描顺序从LSC开始反向进行。
在一些实现中,例如,在硬件中完成的实现中,使得编码器或解码器必须加载新上下文的次数最小化可能是有利的。因为分区集合的给定部分中的每个位置使用相同的上下文,这意味着在前进到下一部分之前对一个部分中的全部位置的处理可以更加有效。相应地,在一些实施例中,对有效图的编码可以使用与确定LSC所使用的扫描顺序不同的扫描顺序。
在n×n的TU中,编码扫描顺序是对数字0,1,...,n2-2的任意置换。该置换应用于按水平扫描顺序列出的矩阵位置。可以使用任意置换,只要编码器和解码器对每个分区集合的相同置换达成一致。可以设计该置换,例如使得其可以最小化上下文之间的切换次数。
为了使用示例,回忆通过下式给出的针对P4-6的分区集合:
如果使用对角线扫描,则通过下式给出置换:
0,4,1,8,5,2,12,9,6,3,13,10,7,14,11      (1)
其中,数字0,1,…14指按水平顺序的4×4的比特位置。在该对角线扫描置换中,因此根据以下顺序使用上下文:
0,1,1,4,1,2,3,4,2,3,3,5,3,5,5           (2)
为了对有效图进行编码和解码,按从LSC之前的位置开始反向读取的顺序来使用这些上下文。这导致比以下扫描顺序或置换更多的上下文改变:
0,4,1,5,2,6,3,7,12,13,8,9,10,11,14      (3)
其导致按以下顺序使用上下文:
0,1,1,1,2,2,3,3,3,3,4,4,5,5,5           (4)
相应地,可以预先定义在处理有效图时与P4-6一起使用扫描顺序(3)而不是对角线扫描(1),其得到上下文序列(4)而不是(2),从而导致系数之间的上下文改变较少。
在一些硬件实现中,为了最小化上下文改变的针对有效图的重排的扫描顺序可以是有利的。尽管有可能在单个时钟周期中处理来自两个不同上下文的比特,但是实现在单个时钟周期中处理来自相同上下文的比特更加容易。通过重排二进制数以按上下文将它们分组,更容易在每个时钟周期中处理多个二进制数。如果在单个时钟周期中处理的两个上下文是不同的,则编码器/解码器必须读取两个不同的上下文以及更新两个不同的上下文。与读取和更新两个上下文相比,可能更容易产生在一个时钟周期中更新单个上下文两次的硬件实现。
详细的语法示例-静态分配实施例
在HEVC中当前处于开发的语法基础上,在一些示例实施例中,可以做出对语法的以下修改和/或添加以促进对静态分配的使用。在以下示例中,语法基于一实现,在该实现中存储和分配了上面描述的4个示例分区集合P4-6、P4-9、P8-4和P8-12,其分别与4×4色度、4×4亮度、8×8色度、8×8亮度一起使用。
针对该过程的输入是颜色分量索引cIdx、当前系数扫描位置(xC,yC),即比特位置,以及变化块大小log2TrafoSize。该过程的输出是ctxIdxInc。可变sigCtx取决于当前位置(xC,yC)、颜色分量索引cIdx、变换块大小和先前解码的语法单元的二进制数significant_coeff_flag。为了导出sigCtx,应用以下过程:
如果log2TrafoSize等于2,则如下推导sigCtx:
sigCtx=CTX_IND MAP_4×4[cIdx][(yC<<2)+xC]
否则如果log2TrafoSize等于3,则如下推导sigCtx:
sigCtx=CTX_IND_MAP_8×8[cIdx][(yC<<3)+xC]
常量CTX_IND_MAP_4×4和CTX_IND_MAP_8×8可以针对亮度和色度定义如下:
Figure BDA00002299150500241
Figure BDA00002299150500251
使用颜色分量索引cIdx、变换块大小log2TrafoSize、sigCtx和分区集合,如下导出上下文索引增量:
ctxOffset[max(log2TrafoSize-2,2)][cIdx]的值定义在下表中:
Figure BDA00002299150500252
例如,如果针对亮度4×4的块使用分区集合P4-9,针对色度4×4的块使用P4-6,针对亮度8×8的块使用P8-12,以及针对色度8×8的块使用P8-4,则上表取以下值:
  max(log2TrafoSize-2,2)  cIdx=0   cIdx=1
  0  0   0
  1  9   6
  2  21   10
应该注意,ctxIdxInc指向分量cIdx的4×4的块的开始位置。值ctxIdxInc推导如下:
ctxIdxInc=ctxOffset[max(log2TrafoSize-2,2)][cIdx]+sigCtx
根据对上下文变量的初始化,可以通过下表指定针对每个片类型的在ctxIdx与语法单元之间的关联:
Figure BDA00002299150500261
假定均匀初始化实施例,则参考上文的针对语法单元significant_coeff_flag的ctxIdxTable可以如下给出:
Figure BDA00002299150500262
然而,如果实现恒量初始化而不是均匀初始化,则可以如下所示那样修改在语法单元与ctxIdx之间的关联:
Figure BDA00002299150500263
Figure BDA00002299150500271
于是,参考上文的针对语法单元significant_coeff_flag(I)的ctxIdxTable表I可以如下给出:
Figure BDA00002299150500272
于是,参考上文的针对语法单元significant_coeff_flag(B)的ctxIdxTable表B可以如下给出:
Figure BDA00002299150500273
于是,参考上文的针对语法单元significant_coeff_flag(P)的ctxIdxTable表P可以如下给出::
转向算法的软件实现,可以定义作为任意4×4集合中的分区的最大数目的另一恒量:
Const UInt NUM_SIG_FLAG_CTX_4×4=9;
使用该恒量和上面定义的分区集合恒量,对TComTrQuant::getSigCtxInc函数的修改可以示出如下:
getSigCtxInc(pcCoeff,uiPosX,uiPosY,uiLog2BlkSize,uiStride,eTType){
eTType=eTType==TEXT_LUMA?TEXT_LUMA:eTType==TEXT_NONE?
              TEXT_NONE:TEXT_CHROMA
    L_C=eTType!=TEXT_LUMA
uiScanIdx=((uiLog2BlkSize-2)<<1)|L_C
    if(uiLog2BlkSize==2){
       return CTX_IND_MAP_4x4[L_C][(uiPosY<<2)+uiPosX]
    }
    if(uiLog2BlkSize==3){
       return NUM_SIG_FLAG_CTX_4x4+CTX_IND_MAP_8x8[L_C][(uiPosY<<3)+uiPosX]
    }
    //The rest of the function is unchanged
}
现在参照图9,图9示出了编码器900的示例实施例的简化框图。编码器900包括:处理器902、存储器904和编码应用906。编码应用906可以包括存储在存储器904中并包含指令的计算机程序或应用,所述指令用于将处理器902配置为执行这里描述的步骤或操作。例如,编码应用906可以编码并输出根据这里描述的自适应重构级别过程所编码的比特流。输入数据点可以涉及可能经历有损数据压缩机制的音频、图像、视频或者其他数据。编码应用906可以包括量化模块908,其被配置为针对分区结构的每个索引确定自适应重构级别。编码应用906可以包括:熵编码器,被配置为对自适应重构级别或RSP数据或其他数据进行熵编码。可以理解,编码应用906可以存储在计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等等。
现在还参照图10,图10示出了解码器1000的示例实施例的简化框图。解码器1000包括:处理器1002、存储器1004和解码应用1006。解码应用1006可以包括存储在存储器1004中并包含指令的计算机程序或应用,所述指令用于将处理器1002配置为执行这里描述的步骤或操作。解码应用1006可以包括:熵解码器和解量化模块1010,配置为获得RSP数据或自适应重构级别,以及使用所获取的数据来重构变换域系数或其他这种数据点。可以理解,解码应用1006可以存储在计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等等。
可以认识到,根据本申请的解码器和/或编码器可以在多个计算设备中实现,包括但不限于服务器、合适编程的通用计算机、音频/视频编码和回放设备、电视机顶盒、电视广播设备和移动设备。可以通过包含指令的软件来实现解码器或编码器,所述指令用于将处理器配置为执行这里描述的功能。软件指令可以存储在任何合适的非瞬时计算机可读存储器上,包括CD、RAM、ROM、闪存等等。
可以理解,这里描述的编码器以及实现所描述的用于配置编码器的方法/过程的模块、例程、进程、线程或其他软件组件可以使用标准计算机编程技术和语言来实现。本申请不限于特定处理器、计算机语言、计算机编程惯例、数据结构、其他这种实现细节。本领域技术人员将认识到,可以将所描述的过程实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、专用集成芯片(ASIC)的一部分等。
可以对所描述的实施例进行特定适配和修改。因此,上述实施例被认为是示意性而非限制性。

Claims (13)

1.一种用于对编码数据的比特流进行解码以重构变换单元的有效图的方法,所述方法包括:
针对有效图中的每个比特位置,
基于分区集合确定所述比特位置的上下文,
基于所确定的上下文对编码数据进行解码以重构比特值,以及
基于重构的比特值更新上下文,
其中重构的比特值形成解码后的有效图,所述变换单元的大小是4×4,以及所述分区集合根据如下给出的基于块的映射向比特位置分配上下文:
Figure FDA00002299150400011
上述整数表示给4×4的块的有效图的比特位置分配的上下文。
2.根据权利要求1所述的方法,其中确定包括:基于文本类型和变换单元大小从多个分区集合中选择所述分区集合,以及所述文本类型是亮度,以及所述变换单元的大小是4×4。
3.一种用于对编码数据的比特流进行解码以重构变换单元的有效图的方法,所述方法包括:
针对有效图中的每个比特位置,
基于分区集合确定所述比特位置的上下文,
基于所确定的上下文对编码数据进行解码以重构比特值,以及
基于重构的比特值更新上下文,其中重构的比特值形成解码后的有效图,所述变换单元的大小是8×8,以及所述分区集合根据如下给出的基于块的映射向比特位置分配上下文:
Figure FDA00002299150400012
Figure FDA00002299150400021
上述整数表示给8×8的块的有效图的比特位置分配的上下文。
4.根据权利要求3所述的方法,其中确定包括:基于文本类型和变换单元大小从多个分区集合中选择所述分区集合,以及所述文本类型是亮度,以及所述变换单元的大小是8×8。
5.一种用于对编码数据的比特流进行解码以重构变换单元的有效图的方法,所述方法包括:
针对有效图中的每个比特位置,
基于分区集合确定所述比特位置的上下文,
基于所确定的上下文对编码数据进行解码以重构比特值,以及
基于重构的比特值更新上下文,其中重构的比特值形成解码后的有效图,所述变换单元的大小是4×4,以及所述分区集合根据如下给出的基于块的映射向比特位置分配上下文:
Figure FDA00002299150400022
上述整数表示给4×4的块的有效图的比特位置分配的上下文。
6.一种用于对编码数据的比特流进行解码以重构变换单元的有效图的方法,所述方法包括:
针对有效图中的每个比特位置,
基于分区集合确定所述比特位置的上下文,
基于所确定的上下文对编码数据进行解码以重构比特值,以及
基于重构的比特值更新上下文,其中重构的比特值形成解码出的有效图,所述变换单元的大小是8×8,以及所述分区集合根据如下给出的基于块的映射向比特位置分配上下文:
Figure FDA00002299150400031
上述整数表示给8×8的块的有效图的比特位置分配的上下文。
7.一种用于对编码数据的比特流进行解码以重构变换单元的有效图的解码器,所述解码器包括:
处理器;
存储器;以及
解码应用,存储在存储器中,并且包含用于配置执行根据权利要求1到6中任一项所述的方法的指令。
8.一种用于对变换单元的有效图进行编码的方法,所述方法包括:
针对有效图中的每个比特位置,
基于分区集合确定所述比特位置的上下文,
基于所确定的上下文对所述比特位置处的比特值进行编码以生成编码数据,以及
基于所述比特值更新上下文,
其中所述编码数据形成编码后的有效图,所述变换单元的大小是4×4,以及所述分区集合根据如下给出的基于块的映射向比特位置分配上下文:
Figure FDA00002299150400032
上述整数表示给4×4的块的有效图的比特位置分配的上下文。
9.一种用于对变换单元的有效图进行编码的方法,所述方法包括:
针对有效图中的每个比特位置,
基于分区集合确定所述比特位置的上下文,
基于所确定的上下文对所述比特位置处的比特值进行编码以生成编码数据,以及
基于所述比特值更新上下文,
其中所述编码数据形成编码后的有效图,所述变换单元的大小是8×8,以及所述分区集合根据如下给出的基于块的映射向比特位置分配上下文:
Figure FDA00002299150400041
上述整数表示给8×8的块的有效图的比特位置分配的上下文。
10.一种用于对变换单元的有效图进行编码的方法,所述方法包括:针对有效图中的每个比特位置,
基于分区集合确定所述比特位置的上下文,
基于所确定的上下文对所述比特位置处的比特值进行编码以生成编码数据,以及
基于所述比特值更新上下文,
其中所述编码数据形成编码后的有效图,所述变换单元的大小是4×4,以及所述分区集合根据如下给出的基于块的映射向比特位置分配上下文:
上述整数表示给4×4的块的有效图的比特位置分配的上下文。
11.一种用于对变换单元的有效图进行编码的方法,所述方法包括:
针对有效图中的每个比特位置,
基于分区集合确定所述比特位置的上下文,
基于所确定的上下文对所述比特位置处的比特值进行编码以生成编码数据,以及
基于所述比特值更新上下文,
其中所述编码数据形成编码有效图,所述变换单元的大小是8×8,以及所述分区集合根据如下给出的基于块的映射向比特位置分配上下文:
Figure FDA00002299150400051
上述整数表示给8×8的块的有效图的比特位置分配的上下文。
12.一种用于对变换单元的有效图进行编码的编码器,所述编码器包括:
处理器;
存储器,存储所述有效图;以及
编码应用,存储在存储器中,并且包含用于将处理器配置为执行根据权利要求8到11中任一项所述的方法的指令。
13.一种存储处理器可执行指令的非瞬时处理器可读介质,所述处理器可执行指令在被执行时将一个或多个处理器配置为执行根据权利要求1到6和8到11中任一项所述的方法。
CN201210411563.0A 2011-10-24 2012-10-24 使用分区选择的重要性图编码和解码 Active CN103067701B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610313043.4A CN105791847B (zh) 2011-10-24 2012-10-24 使用分区选择的重要性图编码和解码

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11186392.4 2011-10-24
EP11186392.4A EP2587802B1 (en) 2011-10-24 2011-10-24 Significance map encoding and decoding using partition selection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610313043.4A Division CN105791847B (zh) 2011-10-24 2012-10-24 使用分区选择的重要性图编码和解码

Publications (2)

Publication Number Publication Date
CN103067701A true CN103067701A (zh) 2013-04-24
CN103067701B CN103067701B (zh) 2016-06-08

Family

ID=44883121

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201210411563.0A Active CN103067701B (zh) 2011-10-24 2012-10-24 使用分区选择的重要性图编码和解码
CN201610313043.4A Active CN105791847B (zh) 2011-10-24 2012-10-24 使用分区选择的重要性图编码和解码

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201610313043.4A Active CN105791847B (zh) 2011-10-24 2012-10-24 使用分区选择的重要性图编码和解码

Country Status (11)

Country Link
EP (3) EP2773047A3 (zh)
JP (1) JP5529236B2 (zh)
KR (1) KR101418649B1 (zh)
CN (2) CN103067701B (zh)
AU (1) AU2012244143B2 (zh)
BR (1) BR102012027259B1 (zh)
CA (1) CA2795414C (zh)
ES (1) ES2496365T3 (zh)
HK (1) HK1201646A1 (zh)
SG (1) SG189659A1 (zh)
TW (1) TWI493945B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847827A (zh) * 2012-01-20 2016-08-10 索尼公司 有效度图编码的复杂度降低
CN111684802A (zh) * 2017-12-06 2020-09-18 V-诺瓦国际有限公司 用于对字节流进行分级编码和解码的方法和设备
CN111699681A (zh) * 2019-06-25 2020-09-22 北京大学 一种视频图像处理方法、设备及存储介质
US11871004B2 (en) 2019-06-25 2024-01-09 SZ DJI Technology Co., Ltd. Video image processing method and device, and storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10448058B2 (en) 2015-05-21 2019-10-15 Qualcomm Incorporated Grouping palette index at the end and index coding using palette size and run value
KR20180045530A (ko) 2016-10-26 2018-05-04 디지털인사이트 주식회사 임의의 블록 분할을 사용하는 비디오 코딩 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1640146A (zh) * 2002-03-05 2005-07-13 皇家飞利浦电子股份有限公司 用于分层视频编码的方法和系统
CN101609547A (zh) * 2009-07-16 2009-12-23 复旦大学 基于累积能量的无缝拼接图像处理方法
CN102063258A (zh) * 2010-12-31 2011-05-18 山东大学 一种针对不同尺寸显示终端的图像自适应显示方法
CN102129698A (zh) * 2011-03-08 2011-07-20 华中科技大学 一种基于感兴趣区域的图像编码方法
WO2011128303A2 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding of significance maps and transform coefficient blocks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR9910270A (pt) * 1998-05-07 2001-10-02 Sarnoff Corp Método e aparelho para aumentar a utilização de recurso de memória em um decodificador de fluxo de informação
US8213484B2 (en) * 2005-06-16 2012-07-03 Qualcomm Incorporated Wireless communication network with extended coverage range
US7535972B2 (en) * 2005-06-24 2009-05-19 Broadcom Corporation Programmable transmitter
CN101132529A (zh) * 2006-08-22 2008-02-27 中兴通讯股份有限公司 基于快速逐次逼近量化的小波图像压缩方法
RU2406222C1 (ru) * 2006-11-14 2010-12-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ кодирования и способ декодирования сигнала изображения, способ кодирования и декодирования источника информации, устройства для них и носители информации, на которых сохранены программы для них
US7378994B1 (en) * 2007-01-08 2008-05-27 Mediatek, Inc. EFM/EFM+ encoder and method thereof
KR101356733B1 (ko) * 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
EP2569944A1 (en) * 2010-05-12 2013-03-20 Thomson Licensing Methods and apparatus for unified significance map coding
US8687904B2 (en) * 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
CN103129698A (zh) * 2011-11-29 2013-06-05 刘增勇 一种全回转拖船

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1640146A (zh) * 2002-03-05 2005-07-13 皇家飞利浦电子股份有限公司 用于分层视频编码的方法和系统
CN101609547A (zh) * 2009-07-16 2009-12-23 复旦大学 基于累积能量的无缝拼接图像处理方法
WO2011128303A2 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding of significance maps and transform coefficient blocks
CN102063258A (zh) * 2010-12-31 2011-05-18 山东大学 一种针对不同尺寸显示终端的图像自适应显示方法
CN102129698A (zh) * 2011-03-08 2011-07-20 华中科技大学 一种基于感兴趣区域的图像编码方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHENGJIE TU: "context-based entropy coding of block transfrom coefficients for image compression", 《IEEE TRANSACTIONS ON IMAGE PROCESSING》 *
JUNGHYE MIN: "Adaptive significance map coding for large transform", 《SAMSUNG ELECTRONICS CO.》 *
MARPE D: "Context-based adaptive binary arithmetic coding in the H.264/avc video compression standard", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847827A (zh) * 2012-01-20 2016-08-10 索尼公司 有效度图编码的复杂度降低
CN103460701B (zh) * 2012-01-20 2017-06-09 索尼公司 有效度图编码的复杂度降低
CN107333138A (zh) * 2012-01-20 2017-11-07 索尼公司 有效度图编码的复杂度降低
CN105847827B (zh) * 2012-01-20 2019-03-08 索尼公司 有效度图编码的复杂度降低
CN107333138B (zh) * 2012-01-20 2020-06-16 索尼公司 有效图编码的复杂度降低的解码装置及其执行的方法
US11025938B2 (en) 2012-01-20 2021-06-01 Sony Corporation Complexity reduction of significance map coding
CN111684802A (zh) * 2017-12-06 2020-09-18 V-诺瓦国际有限公司 用于对字节流进行分级编码和解码的方法和设备
CN111684802B (zh) * 2017-12-06 2023-12-22 V-诺瓦国际有限公司 用于对字节流进行分级编码和解码的方法和设备
CN111699681A (zh) * 2019-06-25 2020-09-22 北京大学 一种视频图像处理方法、设备及存储介质
CN111699681B (zh) * 2019-06-25 2023-11-14 北京大学 一种视频图像处理方法、设备及存储介质
US11871004B2 (en) 2019-06-25 2024-01-09 SZ DJI Technology Co., Ltd. Video image processing method and device, and storage medium

Also Published As

Publication number Publication date
CA2795414A1 (en) 2013-04-24
KR101418649B1 (ko) 2014-07-30
AU2012244143B2 (en) 2014-11-13
TW201325241A (zh) 2013-06-16
EP2773047A3 (en) 2015-01-14
CN105791847B (zh) 2018-12-11
EP2587802B1 (en) 2014-07-16
AU2012244143A1 (en) 2013-05-09
EP2587802A1 (en) 2013-05-01
CN103067701B (zh) 2016-06-08
JP2013093848A (ja) 2013-05-16
CA2795414C (en) 2015-07-14
EP2773047A2 (en) 2014-09-03
JP5529236B2 (ja) 2014-06-25
EP2587802A9 (en) 2013-07-03
CN105791847A (zh) 2016-07-20
KR20130048153A (ko) 2013-05-09
BR102012027259A2 (pt) 2014-09-16
EP3621206A1 (en) 2020-03-11
ES2496365T3 (es) 2014-09-18
SG189659A1 (en) 2013-05-31
TWI493945B (zh) 2015-07-21
HK1201646A1 (zh) 2015-09-04
BR102012027259B1 (pt) 2022-04-12

Similar Documents

Publication Publication Date Title
US11627338B2 (en) Significance map encoding and decoding using partition selection
CN104094601B (zh) 用于采样自适应偏移编码和/或信令的装置和方法
CN108353167A (zh) 译码视频数据的正负号信息
CN103124349A (zh) 多级有效图扫描
WO2013109914A1 (en) Coding of coefficients in video coding
CN103067701B (zh) 使用分区选择的重要性图编码和解码
CN104247421A (zh) 用于系数扫描的系数群及系数译码
KR20050052523A (ko) 적응 블록 변환을 위한 콘텍스트-기반 적응 가변장 부호화
CN104081773A (zh) 实现模块化处理的上下文建模方法和装置
JP2023174795A (ja) 境界の強制的な区分けの改善
CN103096065B (zh) 使用多级有效图进行编码和解码的方法及装置
CN103220516B (zh) 用于上下文集合选择的方法和设备
TW202044835A (zh) 在視訊編碼之餘數編碼中常規二進位字元之彈性分配

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: 20181226

Address after: Dublin, Ireland

Patentee after: Has the media International Limited

Address before: Voight, Ontario, Canada

Patentee before: Blackberry Ltd.