CN112655209B - 对块的变换系数进行解码或编码的装置和方法 - Google Patents

对块的变换系数进行解码或编码的装置和方法 Download PDF

Info

Publication number
CN112655209B
CN112655209B CN201980057331.XA CN201980057331A CN112655209B CN 112655209 B CN112655209 B CN 112655209B CN 201980057331 A CN201980057331 A CN 201980057331A CN 112655209 B CN112655209 B CN 112655209B
Authority
CN
China
Prior art keywords
transform coefficient
flag
transform
current
quantization
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
CN201980057331.XA
Other languages
English (en)
Other versions
CN112655209A (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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Publication of CN112655209A publication Critical patent/CN112655209A/zh
Application granted granted Critical
Publication of CN112655209B publication Critical patent/CN112655209B/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/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/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/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/124Quantisation
    • 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/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
    • 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/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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请描述了用于变换系数块编码的概念,其实现以适于依赖性量化且就编码效率而言可以通过熵编码有效地实施的方式编码变换块的系数。

Description

对块的变换系数进行解码或编码的装置和方法
技术领域
本申请涉及诸如用于对图像或者视频进行编码的变换系数层级的熵编码。具体地,本发明涉及对块的变换系数进行解码或编码的装置和方法。
背景技术
在设定量化参数时,编码器必须进行综合考虑。粗略呈现量化会降低比特率,但提高量化失真,而较精细呈现量化会降低失真,但提高比特率。即将得出针对可用量化层级的给定域提高编码效率的概念将是有利的。一个此可能性是使用依赖性量化,其中量化取决于先前经量化和经编码的数据而不断地适配,但量化的依赖性也影响待量化和编码的数据项之间的相互关系,且因此影响信息对于上下文自适应性熵编码的可用性。获得实现以适于依赖性量化且就编码效率而言可以通过熵编码有效地实施的方式对变换块的系数进行编码的概念将是有利的。
发明内容
本发明的目的是提供用于对变换系数的块进行编码的这种概念。
此目的是通过如下所述的主题来达成。根据本发明用于对块的变换系数进行解码的装置,所述装置被配置为:在扫描所述变换系数的至少一个第一遍次中;使用上下文自适应性熵解码,对用于所述变换系数的有效位标志进行解码,所述有效位标志中的每一个针对相应变换系数指示所述相应变换系数的量化索引是否为零;对用于所述变换系数的奇偶校验标志进行解码,所述奇偶校验标志中的每一个针对相应变换系数指示所述相应变换系数的奇偶校验;以及确定用于每个变换系数的相应的大小程度标志,每个相应的大小程度标志指示该变换系数的量化索引的绝对值是否大于与所述相应的大小程度标志对应的值,其中确定用于每个变换系数的相应的大小程度标志包括:使用上下文自适应性熵解码来解码其量化索引不为零的每个变换系数的相应第一大小程度标志,并且将其量化索引为零的每个变换系数的相应第一大小程度标志设置为零,以及使用上下文自适应性熵解码对其第一大小程度标志等于一的每个变换系数的相应第二大小程度标志进行解码,并且将其第一大小程度标志为零的每个变换系数的相应第二大小程度标志设置为零;并且在至少一个进一步遍次中,使用等机率熵解码来解码其大小程度标志均等于一的每个变换系数的相应量化索引余数,并将其大小程度标志均不等于一的每个变换系数的相应量化索引余数设置为零;以及针对其量化索引不为零的每个变换系数,使用等机率熵解码来解码该变换系数的量化索引的相应符号。另一方面,根据本发明用于对块的变换系数进行编码的装置,所述装置被配置为在扫描所述变换系数的至少一个第一遍次中,使用上下文自适应性熵编码,对用于变换系数的有效位标志进行编码,所述有效位标志中的每一个针对相应变换系数指示所述相应变换系数的量化索引是否为零,对用于所述变换系数的奇偶校验标志进行编码,所述奇偶校验标志中的每一个针对相应变换系数指示所述相应变换系数的奇偶校验,确定用于每个变换系数的相应的大小程度标志,每个相应的大小程度标志指示该变换系数的量化索引的绝对值是否大于与所述相应的大小程度标志对应的值;使用上下文自适应性熵编码来编码其量化索引不为零的每个变换系数的相应第一大小程度标志,并且将其量化索引为零的每个变换系数的相应第一大小程度标志设置为零,以及使用上下文自适应性熵编码对其第一大小程度标志等于一的每个变换系数的相应第二大小程度标志进行编码,并且将其第一大小程度标志为零的每个变换系数的相应第二大小程度标志设置为零;并且在至少一个进一步遍次中,使用等机率熵编码来编码其大小程度标志均等于一的每个变换系数的相应量化索引余数,并将其大小程度标志均不等于一的每个变换系数的相应量化索引余数设置为零;以及针对其量化索引不为零的每个变换系数,使用等机率熵编码来编码该变换系数的量化索引的相应符号。根据本发明的又一方面,本发明的用于对块的变换系数进行解码的方法包括:在扫描所述变换系数的至少一个第一遍次中,使用上下文自适应性熵解码,对用于所述变换系数的有效位标志进行解码,所述有效位标志中的每一个针对相应变换系数指示所述相应变换系数的量化索引是否为零,对用于所述变换系数的奇偶校验标志进行解码,所述奇偶校验标志中的每一个针对相应变换系数指示所述相应变换系数的奇偶校验;以及确定用于每个变换系数的相应的大小程度标志,每个相应的大小程度标志指示该变换系数的量化索引的绝对值是否大于与所述相应的大小程度标志对应的值,其中确定用于每个变换系数的相应的大小程度标志包括:使用上下文自适应性熵解码来解码其量化索引不为零的每个变换系数的相应第一大小程度标志,并且将其量化索引为零的每个变换系数的相应第一大小程度标志设置为零,以及使用上下文自适应性熵解码对其第一大小程度标志等于一的每个变换系数的相应第二大小程度标志进行解码,并且将其第一大小程度标志为零的每个变换系数的相应第二大小程度标志设置为零;并且在至少一个进一步遍次中,使用等机率熵解码来解码其大小程度标志均等于一的每个变换系数的相应量化索引余数,并将其大小程度标志均不等于一的每个变换系数的相应量化索引余数设置为零;以及针对其量化索引不为零的每个变换系数,使用等机率熵解码来解码该变换系数的量化索引的相应符号。根据本发明的再一方面,本发明的用于对块的变换系数进行编码的方法,所述方法包括:在扫描所述变换系数的至少一个第一遍次中,使用上下文自适应性熵编码,对用于变换系数的有效位标志进行编码,所述有效位标志中的每一个针对相应变换系数指示相应变换系数的量化索引是否为零,对用于所述变换系数的奇偶校验标志进行编码,所述奇偶校验标志中的每一个针对相应变换系数指示所述相应变换系数的奇偶校验,确定用于每个变换系数的相应的大小程度标志,每个相应的大小程度标志指示该变换系数的量化索引的绝对值是否大于与所述相应的大小程度标志对应的值;使用上下文自适应性熵编码来编码其量化索引不为零的每个变换系数的相应第一大小程度标志,并且将其量化索引为零的每个变换系数的相应第一大小程度标志设置为零,以及使用上下文自适应性熵编码对其第一大小程度标志等于一的每个变换系数的相应第二大小程度标志进行编码,并且将其第一大小程度标志为零的每个变换系数的相应第二大小程度标志设置为零;并且在至少一个进一步遍次中,使用等机率熵编码来编码其大小程度标志均等于一的每个变换系数的相应量化索引余数,并将其大小程度标志均不等于一的每个变换系数的相应量化索引余数设置为零;以及针对其量化索引不为零的每个变换系数,使用等机率熵编码来编码该变换系数的量化索引的相应符号。根据本发明的最后一方面,本发明还提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序能在计算机上被执行以实施本发明的方法。
上述主题的有利改进也由本发明给出。具体地,根据本发明用于对块的变换系数进行解码的装置的优选方案,所述的装置,被配置为针对当前变换系数,根据总和计算所述当前变换系数的量化索引的绝对值,所述总和的加数是通过以下形成的:所述当前变换系数的有效位标志,所述当前变换系数的奇偶校验标志,所述当前变换系数的第一大小程度标志,以及所述当前变换系数的量化索引余数与所述当前变换系数的第二大小程度标志的总和的两倍。所述用于对块的变换系数进行解码的装置还可以被配置为在单独遍次中解码所述当前变换系数的所述第一大小程度标志以及所述当前变换系数的所述第二大小程度标志。所述至少一个第一遍次可以是一个第一遍次。所述块的变换系数可以被分割成子块,且所述块的所述变换系数被逐个子块地解码,以至于一子块的每个变换系数是在下一子块的任何变换系数之前被解码的。二进制算术解码可以被用作熵解码,且量化索引余数是通过对量化索引的绝对值的二进制化的二进制位进行解码而解码的。所述用于对块的变换系数进行解码的装置还可以被配置为通过以下操作对量化索引不为零的每个变换系数的量化索引进行解量化: 取决于在沿扫描次序位于相应变换系数之前的变换系数的量化索引的奇偶校验,针对所述相应变换系数从多个重构层级集合中选择重构层级集合,以及 将所述相应变换系数解量化至所述重构层级集合中的由所述相应变换系数的所述量化索引索引的一个层级上。所述用于对块的变换系数进行解码的装置还可以被配置为通过以下操作,利用状态转换来执行针对所述相应变换系数从所述多个重构层级集合中选择所述重构层级集合的操作:唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个重构层级集合中选择所述重构层级集合,以及取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的所述状态。所述用于对块的变换系数进行解码的装置还可以被配置为沿所述扫描次序执行所述至少一个第一遍次,和所述至少一个进一步遍次。所述用于对块的变换系数进行解码的装置还可以被配置为执行四个相异状态之间的所述状态转换的转换。所述的装置还可以被配置为通过量化步长对所述多个重构层级集合进行参数化,且从数据流导出关于量化步长的信息。所述多个重构层级集合中的每一个可以由预定量化步长的倍数组成,所述预定量化步长对于所述多个重构层级集合是恒定的。所述多个重构层级集合中的重构层级集合的数目可以是二,且所述多个重构层级集合可以包括第一重构层级集合,其包括零以及量化步长的偶数倍,以及第二重构层级集合,其包括零以及所述量化步长的奇数倍。所述用于对块的变换系数进行解码的装置可以被配置为针对状态值0和1选择所述第一重构层级集合,且针对状态值2和3选择所述第二重构层级集合。所述用于对块的变换系数进行解码的装置可以被配置为通过取决于以下来选择上下文,使用上下文自适应性熵解码对用于当前变换系数的有效位标志进行解码:所述块内部的所述当前变换系数的系数位置。所述用于对块的变换系数进行解码的装置可以被配置为通过以下操作,使用上下文自适应性熵解码对用于当前变换系数的有效位标志进行解码:针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合,基于在所述当前变换系数的所述有效位标志之前解码的标志的集合,来确定局部活动,以及取决于所述局部活动选择上下文。所述用于对块的变换系数进行解码的装置可以被配置为在一个第一遍次中顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行解码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志和第一大小程度标志。所述用于对块的变换系数进行解码的装置可以被配置为通过以下操作,利用状态转换来执行针对所述相应变换系数从多个重构层级集合中选择所述重构层级集合的操作:唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个重构层级集合中选择所述重构层级集合,以及取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的状态,沿所述扫描次序执行所述至少一个第一遍次,以及通过取决于以下来选择上下文,使用上下文自适应性熵解码对用于当前变换系数的有效位标志进行解码:所述状态转换针对所述当前变换系数假设的状态。所述用于对块的变换系数进行解码的装置可以被配置为通过取决于所述状态转换针对所述当前变换系数假设的状态选择包括所述上下文的上下文集合,使用上下文自适应性熵解码对所述当前变换系数的所述有效位标志进行解码,且取决于围绕所述当前变换系数的局部活动或者所述当前变换系数的系数位置,从所述上下文集合中选择所述上下文。所述用于对块的变换系数进行解码的装置可以被配置为针对状态0和1选择第一上下文集合,针对状态2选择第二上下文集合,且针对状态3选择第三上下文集合。所述用于对块的变换系数进行解码的装置可以被配置为通过取决于以下选择上下文,使用上下文自适应性熵解码对当前变换系数的奇偶校验标志进行解码:所述当前变换系数的系数位置。所述用于对块的变换系数进行解码的装置可以被配置为通过以下操作,使用上下文自适应性熵解码对当前变换系数的奇偶校验标志进行解码:基于针对在围绕所述当前变换系数的局部模板内的相邻变换系数集合而在所述当前变换系数的所述奇偶校验标志之前解码的标志的集合,确定局部活动,和/或确定围绕所述当前变换系数的所述局部模板内的变换系数的数目,所述当前变换系数的重构层级不为零,以及取决于所述局部活动和/或变换系数的所述数目选择上下文。所述用于对块的变换系数进行解码的装置可以被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。所述用于对块的变换系数进行解码的装置可以被配置为在一个第一遍次中顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行解码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。所述用于对块的变换系数进行解码的装置可以被配置为通过取决于以下选择上下文,使用上下文自适应性熵解码对用于当前变换系数的第一大小程度标志进行解码:所述当前变换系数的系数位置。所述用于对块的变换系数进行解码的装置可以被配置为通过以下操作,使用上下文自适应性熵解码,对用于当前变换系数的第一大小程度标志进行解码:基于针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合而在所述当前变换系数的所述第一大小程度标志之前解码的标志的集合,来确定局部活动,和/或确定围绕所述当前变换系数的所述局部模板内的变换系数的数目,所述当前变换系数的重构层级不为零,以及取决于所述局部活动和/或变换系数的所述数目选择上下文。所述用于对块的变换系数进行解码的装置可以被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。所述用于对块的变换系数进行解码的装置可以被配置为在一个第一遍次中顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行解码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。所述用于对块的变换系数进行解码的装置可以被配置为使用哥伦布-莱斯码以及使用莱斯参数,对当前变换系数的量化索引余数进行解码,所述莱斯参数取决于用于围绕所述当前变换系数的局部模板内的相邻变换系数的集合中的每一个相邻变换系数的相应加数的总和,每个加数取决于用于所述相应相邻变换系数的量化索引或者重构层级。另一方面,根据本发明用于对块的变换系数进行编码的装置的优选方案,针对当前变换系数,所述当前变换系数的量化索引是根据总和可获得的,所述总和的加数是通过以下形成的:所述当前变换系数的有效位标志,所述当前变换系数的奇偶校验标志,所述当前变换系数的第一大小程度标志,以及所述当前变换系数的量化索引余数与所述当前变换系数的第二大小程度标志的总和的两倍。所述用于对块的变换系数进行编码的装置可以被配置为在单独遍次中,编码所述当前变换系数的所述第一大小程度标志和所述当前变换系数的所述第二大小程度标志。所述用于对块的变换系数进行编码的装置中,所述至少一个第一遍次可以是一个第一遍次。所述块的所述变换系数可以被分割成子块,且所述块的所述变换系数被逐个子块地编码,以使得一子块的每个变换系数是在下一子块的任何变换系数之前被编码。二进制算术编码可以被用作熵编码,且通过对量化索引的绝对值的二进制化的二进制位进行编码来对量化索引余数进行编码。所述用于对块的变换系数进行编码的装置可以被配置为通过以下操作对每个变换系数进行量化:取决于沿扫描次序在相应变换系数之前的变换系数的量化索引的奇偶校验,从多个量化器中选择相应量化器,以及将所述相应变换系数量化至确定所述相应变换系数的量化索引的相应量化器的一个层级上。所述用于对块的变换系数进行编码的装置可以被配置为通过以下操作,利用状态转换来执行从所述多个量化器中选择所述相应量化器的操作:唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个量化器中选择所述量化器,取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的所述状态。所述用于对块的变换系数进行编码的装置可以被配置为沿所述扫描次序执行所述至少一个第一遍次,和所述至少一个进一步遍次。所述用于对块的变换系数进行编码的装置可以被配置为执行四个相异状态之间的所述状态转换的转换。所述用于对块的变换系数进行编码的装置可以被配置为通过量化步长对所述多个量化器进行参数化,且将关于所述量化步长的信息编码成数据流。所述用于对块的变换系数进行编码的装置中,所述多个量化器中的每一个由量化步长的倍数组成,所述量化步长对于所述多个量化器是恒定的。所述多个量化器中的量化器的数目是二,且所述多个量化器包括第一量化器,其量化为零以及量化步长的偶数倍,以及第二量化器,其量化为零以及所述量化步长的奇数倍。所述用于对块的变换系数进行编码的装置可以被配置为针对状态值0和1选择所述第一量化器,且针对状态值2和3选择所述第二量化器。也可以被配置为通过取决于以下选择上下文,使用上下文自适应性熵编码对用于当前变换系数的有效位标志进行编码:所述块内部的所述当前变换系数的系数位置。或被配置为通过以下操作,使用上下文自适应性熵编码对用于当前变换系数的有效位标志进行编码:针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合,基于在所述当前变换系数的所述有效位标志之前编码的标志的集合,来确定局部活动,以及取决于所述局部活动选择上下文。也可以被配置为在一个第一遍次中,顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行编码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。所述用于对块的变换系数进行编码的装置可以被配置为通过以下操作,利用状态转换来执行从所述多个量化器中选择所述相应量化器的操作:唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个量化器中选择所述相应量化器,取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在扫描次序中居后的变换系数更新所述状态转换的状态,沿所述扫描次序执行所述至少一个第一遍次,以及通过取决于以下选择上下文,使用上下文自适应性熵编码,对用于当前变换系数的有效位标志进行编码:所述状态转换针对所述当前变换系数假设的状态。所述用于对块的变换系数进行编码的装置被配置为通过取决于所述状态转换针对所述当前变换系数假设的状态选择包括所述上下文的上下文集合,使用上下文自适应性熵编码对用于所述当前变换系数的所述有效位标志进行编码,且取决于围绕所述当前变换系数的局部活动或者所述当前变换系数的系数位置,从所述上下文集合中选择所述上下文。所述用于对块的变换系数进行编码的装置被配置为针对状态0和1选择第一上下文集合,针对状态2选择第二上下文集合,以及针对状态3选择第三上下文集合。所述用于对块的变换系数进行编码的装置被配置为通过取决于以下选择上下文,使用上下文自适应性熵编码对用于当前变换系数的奇偶校验标志进行编码:所述当前变换系数的系数位置。所述用于对块的变换系数进行编码的装置被配置为通过以下操作,使用上下文自适应性熵编码,对用于当前变换系数的奇偶校验标志进行编码:基于针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合而在所述当前变换系数的所述奇偶校验标志之前解码的标志的集合,确定局部活动,和/或确定围绕所述当前变换系数的所述局部模板内的变换系数的数目,所述当前变换系数的重构层级不为零,以及取决于所述局部活动和/或变换系数的所述数目选择上下文。所述用于对块的变换系数进行编码的装置被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。所述用于对块的变换系数进行编码的装置被配置为在一个第一遍次中,顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行编码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相应相邻变换系数的集合的每个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。所述用于对块的变换系数进行编码的装置被配置为通过取决于以下选择上下文,使用上下文自适应性熵编码对用于当前变换系数的第一大小程度标志进行编码:所述当前变换系数的系数位置。所述用于对块的变换系数进行编码的装置被配置为通过以下操作,使用上下文自适应性熵编码,对用于当前变换系数的第一大小程度标志进行编码:基于针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合而在所述当前变换系数的所述第一大小程度标志之前经解码的标志的集合,确定局部活动,和/或确定围绕所述当前变换系数的所述局部模板内的变换系数的数目,所述当前变换系数的重构层级不为零,以及取决于所述局部活动和/或变换系数的所述数目选择上下文。所述用于对块的变换系数进行编码的装置被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。所述用于对块的变换系数进行编码的装置被配置为在一个第一遍次中,顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行编码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。所述用于对块的变换系数进行编码的装置被配置为使用哥伦布-莱斯码以及使用莱斯参数,对用于当前变换系数的量化索引余数进行编码,所述莱斯参数取决于用于围绕所述当前变换系数的局部模板内的相邻变换系数的集合中的每一个相邻变换系数的相应加数的总和,每个加数取决于相应相邻变换系数的量化索引或者重构层级。
附图说明
下文中关于诸图描述本申请的优选实施例,在图中:
图1示出可以具体实现为根据下文所描述的实施例中的任一个而操作的作为图像编码器的示例的示例性视频编码器的方块图。
图2示出(a)变换编码器;以及(b)变换解码器的方块图以说明基于块的变换编码的基本方法;
图3示出说明均一重构量化器的分布的直方图。
图4示出(a)细分成子块的变换块以及(b)子块的示意图,以便说明用于变换系数层级的扫描的示例,在此示例性地为用于H.265|MPEG-H HEVC中的一个示例;具体而言,(a)示出16×16变换块分割成4×4子块以及子块的编码次序;(b)示出4×4子块内部的变换系数层级的编码次序。细分可以示例性地用于本申请的实施例,在解码系数的标志以及余数(remainder)时用于系数的遍次且在对所述系数解量化时用于状态转换。
图5示出针对每个变换系数由一个轴线横跨的多维输出空间以及针对以下两个变换系数的简单情形可以容许的重构向量的位置的示意图:(a)非依赖性标量量化;(b)依赖性标量量化的示例。
图6示出使用依赖性标量量化由此形成根据本申请的媒体解码器的实施例的变换解码器的方块图。关于传统变换编码(利用非依赖性标量量化器)的修改可以通过与图2b进行比较而导出。以对应方式,可以同样通过修改图2a的编码器来获得使用依赖性标量量化对变换块进行编码的实施例。
图7为说明完全由单量化步长Δ确定的重构层级的两个依赖性量化集合的实施例的示意图。重构层级的两个可用集合突出显示为集合0(顶线)以及集合1(底线)。指示集合内部的重构层级的量化索引的示例是由圆下方的数字给出。空心圆以及实心圆指示重构层级集合内部的两个不同子集;这些子集可用于确定重构次序中的下一变换系数的重构层级集合。两个集合皆包括等于零的重构层级,但额外不相交;两个集合围绕零对称。
图8示出说明变换系数的重构程序的示例的伪码。k表示指定当前变换系数的重构次序的索引,当前变换系数的量化索引是由level[k]表示,适用于当前变换系数的量化步长Δkt是由quant_step_size[k]表示,且trec[k]表示经重构变换系数t′k的值。变数setId[k]指定适用于当前变换系数的重构层级集合。其是基于重构次序中的在前变换系数来确定;setId[k]的可能值为0和1。变数n指定量化步长的整数因子;其是由重构层级的所选集合(即,setId[k]的值)以及所传输的量化索引level[k]给定。
图9示出说明图8中的伪码的替代实施的伪码。主要变化为使用运用尺度以及移位参数的整数实施来表示与量化步长相乘。通常,移位参数(由shift表示)对于变换块是恒定的,且仅尺度参数(由scale[k]给定)可以取决于变换系数的位置。变量add表示舍入偏移,其通常被设定为等于add=(1<<(shift-1))。其中Δk为变换系数的标称量化步长,参数shift以及scale[k]是以我们获得Δk≈scale[k]·2-shift的方式来选择。
图10示出将重构层级集合分裂成两个子集的示例的示意图。两个所示的量化集合为图7的示例的量化集合。量化集合0的两个子集是使用“A”以及“B”标注,且量化集合1的两个子集是使用“C”以及“D”来标注。
图11示出说明变换块的变换系数的重构程序的示例的伪码。阵列level表示变换块的所传输变换系数层级(量化索引),且阵列trec表示对应的经重构变换系数。2d表state_trans_table指定状态转换表,且表setId指定与状态相关联的量化集合。
图12示出说明作为网格(trellis)结构的依赖性标量量化的状态转换的示意图。存在的水平线表示重构次序中的不同变换系数。垂直轴线表示依赖性量化以及重构程序中的不同可能状态。所示的连接指定不同变换系数的状态之间的可用路径。
图13示出基本网格胞元的示例。
图14示出用于说明以编码次序用信号通知第一非零量化索引的位置的变换块的示意图,所述位置是通过回填(back filling)说明。除了第一非零变换系数的位置之外,仅传输阴影标示的系数的二进制位(bin),白色标记的系数被推断等于0。
图15示出说明用于系数块的变换系数层级的编码的比较示例的伪码,所述块诸如可以易于转移至对未被划分成子块的变换块进行解码以及转移至系数的解码(即,通过以“解码”替换“编码”)的子块。此处,遍次(pass)用以对系数的除符号标志以外的所有标志以及余数进行编码。
图16示出变换块的示意图且说明用于选择机率模型的模板。黑色正方形指定当前扫描位置,且阴影标示的正方形表示用于导出上下文模型的局部邻域。
图17示出可用于确定量化索引的序列(或者块)的示例网格结构的示意图,所述量化索引使成本度量(诸如拉格朗日成本度量D+λ·R)最小化。示出用于8个变换系数(或者量化索引)的网格。第一状态(在极左侧)表示经设定为等于0的初始状态。
图18示出说明用于系数块的变换系数层级的编码的实施例的伪码,所述块诸如可以易于转移至对未被划分成子块的变换块进行解码以及转移至系数的解码(即,通过以“解码”替换“编码”)的子块。此处,遍次用以对系数中除符号标志以外的所有标志以及余数进行编码。此处,图15的共同遍次分裂成三个遍次。
图19示出说明用于系数块的变换系数层级的编码的实施例的伪码,所述块诸如可以易于转移至对未被划分成子块的变换块进行解码以及转移至系数的解码(即,通过以“解码”替换“编码”)的子块。此处,遍次用以对系数中除符号标志以外的所有标志以及余数进行编码。此处,图15的共同遍次分裂成两个遍次,一个遍次用于余数,另一遍次用于除符号标志以外的标志。
图20示出说明用于系数块的变换系数层级的编码的实施例的伪码,所述块诸如可以易于转移至对未被划分成子块的变换块进行解码以及转移至系数的解码(即,通过以“解码”替换“编码”)的子块。此处,遍次用以对系数中除符号标志以外的所有标志以及余数进行编码。此处,图15的共同遍次分裂成若干遍次,且奇偶校验标志分别在绝对层级之前经编码或者在任何其他标志之前经编码。
具体实施方式
根据接下来所描述的实施例,以适于有效实施的方式,连同依赖性量化和诸如上下文自适应性二进制算术编码的上下文自适应性熵编码一起进行变换系数层级的熵编码。所述实施例特别有利于在利用依赖性标量量化的变换编码的上下文中对变换系数层级进行熵编码。然而,所述实施例在连同传统非依赖性标量量化一起使用的情况下也是可用的且有利的。即,这些实施例也适用于在利用传统非依赖性标量量化的变换编码的上下文中对变换系数层级进行熵编码。此外,下文中所描述的实施例适用于支持利用依赖性量化的变换编码与利用传统非依赖性量化的变换编码之间的切换(例如,在序列、图像、切片、图块或者块的层级上)的编解码器。
在下文所描述的实施例中,变换编码用以变换样本集合。可以实施为依赖性标量量化或者替代地实施为非依赖性标量量化的量化用以量化所得变换系数,且进行所获得量化索引的熵编码。在解码器侧,经重构样本的集合是通过量化索引的熵解码、变换系数的依赖重构(或者替代地,非依赖重构)以及逆变换而获得。依赖性标量量化与传统非依赖性标量量化之间的差异在于,对于依赖性标量量化,变换系数的可以容许重构层级集合取决于在重构次序中先于当前变换系数的所传输变换系数层级。此方面是通过使用不同可以容许重构层级集合的不同机率模型集合而用于熵编码中。为了实现高效硬件实施,以多个遍次对与块或者子块的变换系数层级有关的二进制决策(被称作二进制位)进行编码。变换系数层级的二进制化以及二进制决策(也被称作二进制位)在多个遍次上的分布是以在第一遍次中经编码的数据唯一地确定下一扫描位置的可以容许重构层级集合的方式选择。这具有以下优点:可以取决于可以容许重构层级集合(对于对应变换系数)选择第一遍次中的二进制位的一部分的机率模型。
以下实施例的描述主要以图像以及视频编解码器中的预测误差样本的块的有损编码为目的,但实施例也可以应用于有损编码的其他区域。具体而言,不存在对形成矩形块的样本集合的限制,且不存在对表示预测误差样本(即,原始信号与预测信号之间的差)的样本集合的限制。
诸如国际视频编码标准H.264|MPEG-4AVC以及H.265|MPEG-H HEVC的所有目前先进技术视频编解码器皆遵循混合式视频编码的基本方法。将视频图像分割成块,块的样本是使用图像内预测或者帧间预测来预测,且所得预测误差信号(原始样本与预测信号样本之间的差)的样本是使用变换编码进行编码。
图1示出典型现代视频编码器的简化方块图。以某一次序对视频序列的视频图像进行编码,所述次序被称作编码次序。图像的编码次序可以不同于捕捉以及显示次序。对于实际编码,将每个视频图像分割成块。块包括特定色彩分量的矩形区域的样本。对应于相同矩形区域的所有色彩分量的块的实体常常被称作单元。取决于块分割的目的,在H.265|MPEG-H HEVC中,可以区分出编码树型块(CTB)、编码块(CB)、预测块(PB)与变换块(TB)。相关联单元被称作编码树型单元(CTU)、编码单元(CU)、预测单元(PU),以及变换单元(TU)。
通常,视频图像最初被分割成固定大小单元(即,针对所有色彩分量的经对准的固定大小块)。在H.265|MPEG-H HEVC中,这些固定大小单元被称作编码树型单元(CTU)。每个CTU可以进一步分裂成多个编码单元(CU)。编码单元为选定编码模式(例如,图像内或者图像间编码)的实体。在H.265|MPEG-H HEVC中,CTU分解成一个或者多个CU是通过四叉树(QT)语法指定且作为位流的部分而传输。CTU的CU是以所谓的z扫描次序处理。这意味着由分裂生成的四个块是以光栅扫描次序进行处理;且如果块中的任一个进一步经分割,则对应四个块(包括所包括较小块)是在处理较高分裂层级的下一块之前进行处理。
如果CU是在帧内编码模式中编码,则传输用于明亮度信号的帧内预测模式,且如果视频信号包括色度分量,则传输用于色度信号的另一帧内预测模式。在ITU-T H.265|MPEG-H HEVC中,如果CU大小等于最小CU大小(如序列参数集中所信号通知的),则明亮度块也可以分裂成四个大小相等块,在此情形下,对于这些块中的每一个,传输单独明亮度帧内预测模式。实际帧内预测和编码是基于变换块进行。对于经图像内编码CU的每个变换块,使用同一色彩分量的已经重构样本导出预测信号。用于生成变换块的预测信号的算法是通过所传输帧内预测模式而确定的。
在图像间编码模式中编码的CU可以进一步分裂成多个预测单元(PU)。预测单元为明亮度的实体,且对于彩色视频,为使用单一预测参数集的两个相关联色度块(覆盖同一图像区域)。CU可以被编码为单一预测单元,或者其可以分裂成两个非正方形预测单元(支持对称以及不对称分裂)或者四个正方形预测单元。对于每个PU,传输个别运动参数集。每个运动参数集包括数个运动假设(H.265|MPEG-H HEVC中的一个或者两个运动假设),且对于每个运动假设,包括参考图像(经由至参考图像列表中的参考图像索引指示)以及相关联运动向量。另外,H.265|MPEG-H HEVC提供所谓的合并模式,其中运动参数并未明确地传输,而是基于空间或者时间相邻块的运动参数而导出。如果CU或者PU在合并模式中经编码,则仅传输至运动参数候选者列表中的索引(此列表是使用空间以及时间相邻块的运动数据导出)。所述索引完全确定所使用的运动参数集。经帧间编码的PU的预测信号是通过运动补偿的预测形成。对于每个运动假设(通过参考图像以及运动向量指定),预测信号由指定参考图像中的位移块形成,其中相对于当前PU的位移是由运动向量指定。位移通常通过子样本准确度指定(在H.265|MPEG-H HEVC中,运动向量具有四分之一明亮度样本的精确度)。对于非整数运动向量,预测信号是通过内插经重构参考图像(通常使用可以分离FIR滤波器)而生成的。利用多假设预测的PU的最终预测信号是由个别运动假设的预测信号的加权和形成。通常,将同一运动参数集用于PU的明亮度以及色度块。即使目前先进技术视频编码标准使用平移位移向量来指定当前区域(样本的块)相对于参考图像的运动,也有可能采用高阶运动模型(例如,仿射运动模型)。在这种情形下,必须针对运动假设传输额外运动参数。
对于经图像内以及图像间编码的CU二者,预测误差信号(也被称作残差信号)通常经由变换编码传输。在H.265|MPEG-H HEVC中,CU的明亮度残差样本的块以及色度残差样本的块(如果存在)被分割成变换块(TB)。CU分割成变换块是通过四叉树语法指示,所述四叉树语法也被称作残差四叉树(RQT)。所得变换块是使用变换编码来进行编码:将2d变换应用于残差样本的块,使用非依赖性标量量化来量化所得变换系数,且对所得变换系数层级(量化索引)进行熵编码。在P以及B切片中,在CU语法的开头处,传输skip_flag。如果此标志等于1,则其指示对应CU由在合并模式中经编码的单一预测单元组成(即,推断merge_flag等于1)且所有变换系数等于零(即,重构信号等于预测信号)。在这种情形下,除skip_flag之外,仅传输merge_idx。如果skip_flag等于0,则用信号通知预测模式(帧间或者帧内),随后是上文所描述的语法特征。
由于已经编码图像可用于以下图像中的块的运动补偿预测,因此图像必须在编码器中完全经重构。将块的经重构预测误差信号(通过重构给定量化索引的变换系数以及逆变换而获得)添加至对应预测信号且将结果写入至当前图像的缓冲区。在图像的所有块经重构之后,可以应用一个或多个回路内滤波器(例如,解块滤波器以及样本自适应性偏移滤波器)。接着将最终经重构图像存储于经解码图像缓冲区中。
下文所描述的实施例呈现变换编码的概念,诸如预测误差信号的变换编码。所述概念适用于图像内以及图像间编码块二者。其也适用于非矩形样本区的变换编码。与传统变换编码相比,根据下文所描述的实施例,变换系数并非经非依赖地量化。其至少适用于使用依赖性量化来量化。根据依赖性量化,特定变换系数的可用重构层级集合取决于其他变换系数的所选量化索引。下文描述对量化索引的熵编码的修改,此提高了编码效率且维持了与依赖性标量量化组合的能力。
所有主要视频编码标准(包括目前先进技术标准H.265|MPEG-H HEVC)皆利用变换编码的概念以对预测误差样本的块进行编码。块的预测误差样本表示原始信号的样本与块的预测信号的样本之间的差。预测信号是通过图像内预测(在此情形下当前块的预测信号的样本是基于同一图像内部的相邻块的已经重构样本而导出)或者通过图像间预测(在此情形下预测信号的样本是基于已经重构图像的样本而导出)而获得。原始预测误差信号的样本是通过从当前块的原始信号的样本值减去预测信号的样本值而获得。
样本块的变换编码可以由量化索引的线性变换、标量量化以及熵编码组成。在编码器侧(参见图2a),使用线性分析变换A变换原始样本的N×M块。结果为变换系数的N×M块。变换系数tk表示不同信号空间(或者不同坐标是)中的原始预测误差样本。N×M变换系数是使用N×M非依赖性标量量化器来进行量化。每个变换系数tk映射至量化索引qk,所述量化索引也被称作变换系数层级。所获得的量化索引qk经熵编码且写入至位流。
在图2b中所描绘的解码器侧,从所接收的位流解码变换系数层级qk。每个变换系数层级qk映射至经重构变换系数t'k。经重构样本的N×M块是通过使用线性合成变换B变换经重构变换系数的块而获得。
即使视频编码标准仅指定合成变换B,惯例也是将合成变换B的逆变换用作编码器中的分析变换A,即,A=B-1。此外,实际视频编码系统中所使用的变换表示正交变换(B-1=BT)或者接近正交的变换。对于正交变换,信号空间中的均方误差(MSE)失真等于变换域中的MSE失真。正交性具有以下重要优点:可以使用非依赖性标量量化器使原始样本块与经重构样本块之间的MSE失真最小化。即使用于编码器中的实际量化程序考虑了变换系数层级(由以上熵编码描述介绍)之间的依赖性,正交变换的使用也显著简化了量化算法。
对于典型预测误差信号,变换具有以下效应:信号能量集中于若干变换系数中。相比于原始预测误差样本,所得变换系数之间的统计依赖性降低。
在目前先进技术视频编码标准中,使用可以分离离散余弦变换(II型)或者其整数近似。然而,变换可以易于替换而不会修改变换编码系统的其他方面。文献或者标准化文件中已提出的改良的示例包括:
·用于经图像内预测块的离散正弦变换(DST)的使用(有可能取决于帧内预测模式和/或块尺寸)。应注意,H.265|MPEG-H HEVC已包括用于经图像内预测的4×4变换块的DST。
·切换变换:编码器在一组预定义变换之中选择实际上使用的变换。可用变换的集合为编码器以及解码器二者所已知,使得其可以使用至可用变换列表中的索引高效地信号通知。可用变换的集合以及其在列表中的排序可以取决于块的其他编码参数,诸如所选帧内预测模式。在特殊情形下,通过诸如帧内预测模式的编码参数完全确定所使用的变换,使得无需传输用于指定变换的语法元素。
·不可分离变换:编码器以及解码器中所使用的变换表示不可分离变换。应注意,切换变换的概念可以包括一个或多个不可分离变换。归因于复杂度原因,不可分离变换的使用可能受限于某些块尺寸。
·多层级变换:实际变换由两个或者更多个变换阶段构成。第一变换阶段可以由在计算上复杂度低的可以分离变换组成。且在第二阶段中,使用不可分离变换进一步变换所得变换系数的子集。相较于用于整个变换块的不可分离变换,双阶段方法具有以下优点:将较复杂的不可分离变换应用于较少数目的样本。多层级变换的概念可以与切换变换的概念高效地组合。
使用标量量化器来量化变换系数。作为量化的结果,变换系数的容许值的集合减小。换句话说,变换系数映射至所谓的重构层级的可以计数集合(实际上,有限集合)。重构层级集合表示可能变换系数值的集合的恰当子集。为了简化以下熵编码,可以容许重构层级由量化索引(也被称作变换系数层级)表示,这些量化索引作为位流的部分而传输。在解码器侧,量化索引(变换系数层级)映射至经重构变换系数。经重构变换系数的可能值对应于重构层级集合。在编码器侧,标量量化的结果为变换系数层级(量化索引)的块。
在目前先进技术视频编码标准中,使用均一重构量化器(URQ)。其基本设计说明于图3中。URQ具有以下性质:重构层级相等地间隔开。两个相邻重构层级之间的距离Δ被称作量化步长。重构层级中的一个等于0。因此,可用重构层级的完整集合是由量化步长Δ唯一地指定。量化索引q至经重构变换系数t'的解码器映射原则上由以下简单公式给定
t′=q·Δ。
在此上下文中,术语“非依赖性标量量化”是指以下性质:在给定任何变换系数的量化索引q的情况下,可以独立于其他变换系数的所有量化索引而确定相关联经重构变换系数t'。
由于视频解码器通常利用具有标准精确度(例如,32位)的整数算术,因此标准中所使用的实际公式可以略微不同于简单乘法。当忽略对变换系数的所支持动态范围的截割(clipping)时,通过下式获得H.265|MPEG-H HEVC中的经重构变换系数
t′=(scale·q+(1<<(shift-1)))>>shift,
其中运算符“<<”以及“>>”分别表示向左以及向右的位移位。当忽略整数算术时,量化步长Δ对应于以下项:
Δ=scale·2-shift
诸如H.262|MPEG-2Video的早期视频编码标准也指定经修改URQ,由此重构层级零与第一非零重构层级之间的距离相对于标称量化步长增加(例如,增加至标称量化步长Δ的二分之三)。
变换系数的量化步长(或者尺度以及移位参数)是由以下两个因子确定:
·量化参数QP:量化步长可以通常基于块进行修改。出于此目的,视频编码标准提供量化步长的预定义集合。所使用的量化步长(或者等效地,上文介绍的参数“尺度”以及“移位”)是使用至量化步长的预定义列表中的索引来指示。所述索引被称作量化参数(QP)。在H.265|MPEG-H HEVC中,QP与量化步长之间的关系大致由下式给定
切片QP通常在切片标头中传输。一般而言,有可能基于块修改量化参数QP。出于此目的,可以传输差量量化参数(DQP)。所使用量化参数是通过所传输DQP以及经预测QP值确定,所述经预测QP值是使用已经编码(通常相邻)块的QP导出。
·量化加权矩阵:视频编码标准通常提供针对个别变换系数使用不同量化步长的可能性。这是通过指定所谓的量化加权矩阵w来达成,这些量化加权矩阵可以通常在序列或者图像层级上由编码器选择,且作为位流的部分而传输。量化加权矩阵w具有与变换系数的对应块相同的大小。变换系数tik的量化步长Δik由下式给定
Δik=wik·Δblock
其中Δblock表示所考虑块的量化步长(由块量化参数QP指示),i以及k表示指定变换块内部的当前变换系数的坐标,且wik表示量化加权矩阵w中的对应输入项。
量化加权矩阵的主要意图是提供用于以在感知上有意义的方式引入量化噪声的可能性。通过使用适当加权矩阵,可以利用人类视觉的空间对比敏感性来达成比特率与主观重构质量之间的优选权衡。尽管如此,许多编码器使用所谓的平坦量化矩阵(其可以使用高层级语法元素高效地传输)。在此情形下,针对块中的所有变换系数使用相同量化步长Δ。接着通过量化参数QP完全指定量化步长。
变换系数层级(变换系数的量化索引)的块经熵编码(即,其以无损方式作为位流的部分而传输)。由于线性变换仅可以降低线性依赖性,因此通常以可以采用块中变换系数层级之间的剩余非线性依赖性以用于高效编码的方式设计对变换系数层级的熵编码。熟知示例为MPEG-2Video中的运行层级(run-level)编码、H.263以及MPEG-4Visual中的运行层级最末(run-level-last)编码、H.264|MPEG-4AVC中的上下文自适应性可以变长度编码(CAVLC),以及H.264|MPEG-4AVC以及H.265|MPEG-H HEVC中的基于上下文的自适应性二进制算术编码(CABAC)。
目前先进技术视频编码标准H.265|MPEG-H HEVC中指定的CABAC遵循可以应用于各种变换块尺寸的通用概念。大于4×4样本的变换块经分割成4×4子块。图4a以及图4b中说明16×16变换块的示例的分割。图4a中所示的4×4子块的编码次序以及图4b中所示的子块内部的变换系数层级的编码次序大体上通过附图中所示的反向对角线扫描指定。对于某些经图像内预测块,使用水平或者垂直扫描模式(取决于实际帧内预测模式)。编码阶数始终以高频率位置开始。
在H.265|MPEG-H HEVC中,基于4×4子块传输变换系数层级。变换系数层级的无损编码包括以下步骤:
1.传输语法元素coded_block_flag,其用信号通知变换块中是否存在任何非零变换系数层级。如果coded_block_flag等于0,则不进一步针对变换块对数据进行编码。
2.传输编码次序(例如,图4中所说明的逐块反向对角线扫描次序)中的第一非零变换系数层级的x以及y坐标。将坐标的传输分裂成前缀以及后缀部分。标准使用语法元素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix,以及last_sig_coeff_x_suffix。
3.以包含编码次序中的第一非零变换系数层级的4×4子块开始,以编码次序处理4×4子块,其中子块的编码包括以下主要步骤:
a.传输语法元素coded_sub_block_flag,其指示子块是否包含任何非零变换系数层级。对于第一以及最末4×4子块(即,包含第一非零变换系数层级或者DC层级的子块),不传输此标志但推断其等于一。
b.对于coded_sub_block_flag等于一的子块内部的所有变换系数层级,语法元素significant_coeff_flag指示对应变换系数层级是否不等于零。如果无法基于已经传输数据推断此标志的值,则仅传输此标志。具体而言,如果DC系数位于与第一非零系数(以编码次序)不同的子块中且最末子块的所有其他significant_coeff_flag等于零,则不针对第一重要扫描位置(由经传输x以及y坐标指定)传输标志且不针对DC系数传输标志。
c.对于significant_coeff_flag等于一(如果存在)之前八个变换系数层级,传输标志coeff_abs_level_greater1_flag。其指示变换系数层级的绝对值是否大于一。
d.对于coeff_abs_level_greater1_flag等于一(如果存在)的第一变换系数层级,传输标志coeff_abs_level_greater2_flag。其指示变换系数层级的绝对值是否大于二。
e.对于significant_coeff_flag等于一的所有层级(例外情形描述于下文中),传输语法元素coeff_sign_flag,其指定变换系数层级的符号。
f.对于绝对值尚未完全由significant_coeff_flag、coeff_abs_level_greater1_flag以及coeff_abs_level_greater2_flag的值指定(如果经传输标志中的任一个等于零,则绝对值完全经指定)的所有变换系数层级,使用多层级语法元素coeff_abs_level_remaining传输绝对值的余数。
在H.265|MPEG-H HEVC中,所有语法元素均使用基于上下文的自适应性二进制算术编码(CABAC)进行编码。所有非二进制语法元素首先映射至一系列二进制决策上,这些二进制决策也被称作二进制位。所得二进制位序列是使用二进制算术编码进行编码。出于此目的,各二进制位与机率模型(二进制机率质量函数)相关联,所述机率模型也被称作上下文。对于大部分二进制位,上下文表示自适应性机率模型,这意味着相关联二进制机率质量函数是基于实际上经编码的二进制位值而更新。可以通过基于已经传输数据针对某些二进制位切换上下来利用条件机率。CABAC也包括所谓的旁路模式,在旁路模式中使用固定机率质量函数(0.5,0.5)。
针对coded_sub_block_flag的编码选择的上下文取决于已经编码的相邻子块的coded_sub_block_flag的值。significant_coeff_flag的上下文是基于子块内部的扫描位置(x以及y坐标)、变换块的大小,以及相邻子块中coded_sub_block_flag的值而选择。对于标志coeff_abs_level_greater1_flag以及coeff_abs_level_greater2_flag,上下文选择取决于当前子块是否包括DC系数以及是否已经针对相邻子块传输等于一的任何coeff_abs_level_greater1_flag。对于coeff_abs_level_greater1_flag,上下文选择进一步取决于子块的已经编码的coeff_abs_level_greater1_flag's的数目以及值。
符号coeff_sign_flag以及绝对值的余数coeff_abs_level_remaining是在二进制算术编码器的旁路模式中进行编码。为了将coeff_abs_level_remaining映射至二进制位(二进制决策)的序列上,使用自适应性二进制化方案。二进制化由单一参数控制,所述参数是基于子块的已经编码值而适配。
H.265|MPEG-H HEVC也包括所谓的符号数据隐藏模式,在符号数据隐藏模式中(在某些条件下),省略用于子块内部的其最末非零层级的符号的传输。替代地,用于此层级的符号嵌入于对应子块的层级的绝对值的总和的奇偶校验中。应注意,编码器必须在确定适当变换系数层级时考虑此方面。
视频编码标准仅指定位流语法以及重构程序。如果考虑针对原始预测误差样本的给定块以及给定量化步长的变换编码,则编码器具有较高自由度。在给定变换块的量化索引qk的情况下,熵编码必须遵循用于将数据写入至位流(即,建构算术码字)的唯一界定算法。但给定预测误差样本的原始块的用于获得量化索引qk的编码器算法在视频编码标准范畴之外。此外,编码器能够基于块自由选择量化参数QP。对于以下描述,假设给定量化参数QP以及量化加权矩阵。因此,每个变换系数的量化步长是已知的。进一步假设编码器执行分析变换,所述分析变换为用于获得原始变换系数tk的指定合成变换的逆变换(或者逆变换的极接近近似)。即使在这些条件下,编码器也能够针对每个原始变换系数tk自由选择量化器索引qk。由于变换系数层级的选择确定失真(或者重构/近似质量)以及比特率二者,因此所使用的量化算法对所生成的位流的速率-失真效能具有实质影响。
最简单的量化方法将原始变换系数tk舍入至最接近重构层级。对于通常使用的URQ,可以根据下式确定对应量化索引qk
其中sgn()为符号函数,且运算符返回小于或者等于其从变量的最大整数。此量化方法保证MSE失真
经最小化,但其完全忽略了传输所得变换系数层级qk所需的比特率。通常,如果舍入朝向零偏置,则获得优选结果:
其中/>
如果量化程序使拉格朗日函数D+λ·R最小化,则获得速率-失真感测中的最佳结果,其中D表示变换块的失真(例如,MSE失真),R指定传输块的变换系数层级所需的位的数目,且λ为拉格朗日乘数。对于使用QP与量化步长之间的关系式的编解码器(诸如H.264|MPEG-4AVC或者H.265|MPEG-H HEVC),常常使用拉格朗日乘数λ与量化参数QP之间的以下关系式/>
其中c1以及c2表示切片或者图像的常数因子。
旨在使失真以及速率的拉格朗日函数D+λ·R最小化的量化算法也被称作速率-失真优化量化(RDOQ)。如果使用MSE或者加权MSE测量失真,则应以使得以下成本度量最小化的方式确定变换块的量化索引qk
此处,变换系数索引k指定变换系数层级的编码次序(或者扫描次序)。项R(qk|qk-1,qk-2,…)表示传输量化索引qk所需的位的数目(或者其估计值)。条件说明(归因于组合或者条件机率的使用),特定变换系数层级qk的位的数目通常取决于编码次序中的在前变换系数层级qk-1,qk-2等的所选值。上式中的因子αk可用于对个别变换系数的贡献进行加权,例如用于建模人类视觉的对比敏感性。在下文中,通常假设所有加权因子αk皆等于1(但可以以可以考虑不同加权因子的方式直接修改算法)。
对于H.265|MPEG-H HEVC中的变换系数编码,速率项的准确计算非常复杂,这是由于大部分二进制决策是使用自适应性机率模型进行编码。但如果忽略机率模型选择的一些方面且忽略机率模型在变换块内部经适配,则有可能设计复杂度合理的RDOQ算法。以H.265|MPEG-H HEVC的参考软件实施的RDOQ算法由以下基本处理步骤组成:
1.对于每个扫描位置k,通过在层级未被推断为等于零的假设下使拉格朗日成本Dk(qk)+λ·Rk(qk)最小化来选择变换系数层级qk。Dk(qk)表示经加权均方误差Dk(qk)=αk·(tkk·qk)2,且Rk(qk)表示传输qk所需的位的数目的估计值。
2.通过比较以下两个情形的拉格朗日成本来确定4×4子块的标志coded_sub_block_flag:(a)使用在步骤1中所选择的变换系数层级;(b)将语法元素coded_sub_block_flag设定为等于零,且因此将4×4子块的所有变换系数层级皆设定为等于零。
3.通过比较拉格朗日成本来确定第一非零变换系数层级的位置,拉格朗日成本是通过选择非零变换系数层级中的一个(在步骤2之后)作为编码次序中的第一非零变换系数层级而获得(将在前变换系数层级设定为等于零)。
4.通过比较在步骤3以及变换块内部的所有变换系数层级皆设定为等于零的情形之后所获得的变换系数层级的序列的拉格朗日成本来确定coded_block_flag。
在[3]中,提出用于变换编码的经修改概念,其在下文中更详细地描述。相对于传统变换编码的主要改变为变换系数并未经非依赖地量化以及重构。替代地,变换系数的可以容许重构层级取决于针对重构次序中的在前变换系数所选择的量化索引。将依赖性标量量化的概念与经修改熵编码组合,其中变换系数的机率模型选择(或者替代地,码字表选择)取决于可以容许重构层级集合。
变换系数的依赖性量化的优点在于可以容许重构向量更密集地封装于N维信号空间中(其中N表示变换块中样本或者变换系数的数目)。变换块的重构向量是指变换块的经定序重构变换系数(或者替代地,经定序重构样本)。图5a以及图5b中针对两个变换系数的最简单情形说明此效应。图5a示出用于非依赖性标量量化的可以容许重构向量(其表示2d平面中的点)。如可以见,第二变换系数t′1的可以容许值的集合不取决于第一经重构变换系数t′0的所选值。图5b示出依赖性标量量化的示例。应注意,相比于非依赖性标量量化,第二变换系数t′1的可以选择重构值取决于第一变换系数t′0的所选重构层级。在图5b的实施例中,针对第二变换系数t′1存在两个不同可用重构层级集合(由不同色彩说明)。如果第一变换系数t′0的量化索引为偶数(…,-2,0,2,…),则可以针对第二变换系数t′1选择第一集合(蓝色点)的任何重构层级。且如果第一变换系数t′0的量化索引为奇数(…,-3,-1,1,3,…),则可以针对第二变换系数t′1选择第二集合(红色点)的任何重构层级。在示例中,将第一集合以及第二集合的重构层级移位一半量化步长(第二集合的任何重构层级位于第一集合的两个重构层级之间)。
变换系数的依赖性标量量化具有以下效应:对于每个N维单位体积的给定平均数目的重构向量,变换系数的给定输入向量与最接近的可用重构向量之间的距离的预期值减小。因此,对于给定平均数目的位,变换系数的输入向量与重构变换系数的向量之间的平均失真可以减小。在向量量化中,此效应被称作空间填充增益。在针对变换块使用依赖性标量量化的情况下,可以利用高维向量量化的潜在空间填充增益的主要部分。且,相比于向量量化,重构程序(或者解码程序)的实施复杂度与利用非依赖性标量量化器的传统变换编码的复杂度相当。
图6中说明利用依赖性标量量化的变换解码器的方块图。主要改变涉及通向从上而下指向的箭头的依赖性量化。如这些垂直箭头所指示,在重构次序索引k>0的情况下,经重构变换系数t′k不仅取决于相关联量化索引qk,且也取决于重构次序中的先前变换系数的量化索引q0,q1,…,qk-1。应注意,在依赖性量化中,必须唯一地定义变换系数的重构次序。如果在熵编码中也利用关于与量化索引qk相关联的重构层级集合的知识,则可以改良总体变换编解码器的效能。这意味着基于适用于变换系数的重构层级集合而切换上下文(机率模型)或者码字表是有利的。
如在传统变换编码中,除分析变换以外,根据本文中概述的实施例的变换编码也涉以及量化算法以及熵编码。通常使用合成变换的逆变换(或者逆变换的接近近似)作为分析变换,且在给定熵解码程序的情况下通常唯一地指定熵编码。但,类似于在传统变换编码中,在给定原始变换系数的情况下,存在用于选择量化索引的较高自由度。
变换系数的依赖性量化是指以下概念:变换系数的可用重构层级集合取决于针对重构次序中的在前变换系数所选的量化索引(在同一变换块内部)。在重构层级的两个预定义集合中选择当前变换系数的可以容许重构层级集合(基于编码次序中的在前变换系数的量化索引)。
类似于对于传统非依赖性标量量化,基于块的量化参数(QP)确定量化步长Δ(或者如上文所描述的对应尺度以及移位参数),且所有重构层级(在所有重构层级集合中)表示量化步长Δ的整数倍。但每个重构层级集合仅包括量化步长Δ的整数倍的子集。所有重构层级集合的所有可能重构层级表示量化步长的整数倍的依赖性量化的此配置可以被视为均一重构量化器(URQ)的扩展。其基本优点在于经重构变换系数可以通过具有极低计算复杂度的算法计算。
不仅可以通过块量化参数QP确定特定变换系数tk的量化步长Δk(其中k指示重构次序),且也有可能通过量化加权矩阵以及块量化参数确定特定变换系数tk的量化步长Δk。通常,特定变换系数tk的量化步长Δk是由变换系数tk的加权因子wk(由量化加权矩阵指定)与块量化步长Δblock(由块量化参数指定)的乘积给定,
Δk=wk·Δblock
应注意,归因于整数实施或者其他实施方面,经重构变换系数t′k的实际计算(重构层级的实际计算)可以略微偏离理想乘法。使Δk为特定变换系数tk的量化步长且使nk指定量化步长的标称整数因子(例如,由量化索引qk给定)。在理想乘法的情况下,经重构变换系数t′k由下式给定
t′k=nk·Δk
归因于对整数实施的限制,经重构变换系数t′k(或者对应重构层级)实际上可以根据下式
t′k=(nk·scale+(1<<(shift-1)))>>shift,其中scale·2-shift≈Δk
或者相似程序进行确定。如果在以下描述中提及量化步长的整数倍,则对应文本也适用于类似于上文指定的近似值的整数近似值。
[3]中所提出的变换系数的依赖性标量量化使用重构层级的两个不同集合,且变换系数tk的两个集合的所有重构层级表示此变换系数的量化步长Δk的整数倍(其至少部分地由基于块的量化参数确定)。应注意,量化步长Δk仅表示两个集合中的可以容许重构值的比例因子。除了变换块内部的不同变换系数tk的可能个别量化步长Δk(以及因此个别比例因子)之外,相同的两个重构层级集合用于所有变换系数。
在图7中,说明两个重构层级集合t的优选配置。含于第一量化集合(在附图中标注为集合0)中的重构层级表示量化步长的偶整数倍。第二量化集合(在附图中标注为集合1)包含量化步长的所有奇整数倍且额外包含等于零的重构层级。应注意,两个重构集合围绕零对称。两个重构集合中包含等于零的重构层级,否则重构集合不相交。两个重构集合的并集包含量化步长的所有整数倍。
编码器在可以容许重构层级之中选择的重构层级是在位流内部传输。如在传统非依赖性标量量化中,这可以使用所谓的量化索引来达成,量化索引也被称作变换系数层级。量化索引(或者变换系数层级)为唯一地识别量化集合内部(即,重构层级集合内部)的可用重构层级的整数。将量化索引作为位流的部分发送至解码器(使用任何熵编码技术)。在解码器侧,可以基于重构层级的当前集合(其通过编码/重构次序中的在前量化索引确定)以及当前变换系数的所传输量化索引唯一地计算经重构变换系数。
量化索引至重构层级集合(或者量化集合)内部的重构层级的指派可以遵循如在图7中可以见的以下规则:将等于0的量化索引指派至等于0的重构层级。将等于1的量化索引指派至大于0的最小重构层级,将等于2的量化索引指派至大于0的下一重构层级(即,大于0的第二小的重构层级),等。或者,换句话说,将大于0的重构层级以其值的递增次序用大于0的整数(即,1、2、3等)标注。类似地,将量化索引-1指派至小于0的最大重构层级,将量化索引-2指派至小于0的下一个(即,第二大的)重构层级,等。或者,换句话说,将小于0的重构层级以其值的递减次序通过小于0的整数(即,-1、-2、-3等)标注。变换系数的重构程序可以类似于图8的伪码中所指定的算法而实施。
在图8的伪码中,level[k]表示针对变换系数tk所传输的量化索引,且setId[k](等于0或者1)指定当前重构层级集合的识别符(其是基于重构次序中的先前量化索引而确定,如将在下文更详细地描述)。变量n表示由量化索引level[k]以及集合识别符setId[k]给定的量化步长的整数倍。如果使用包含量化步长Δk的偶整数倍的第一重构层级集合对变换系数进行编码(setId[k]==0),则变数n为所传输量化索引的两倍。如果使用第二重构层级集合对变换系数进行编码(setId[k]==1),则存在以下三个情形:(a)如果level[k]等于0,则n也等于0;(b)如果level[k]大于0,则n等于量化索引level[k]的两倍减去1;以及(c)如果level[k]小于0,则n等于量化索引level[k]的两倍加上1。这可以使用以下符号函数来指定:
接着,如果使用第二量化集合,则变量n等于量化索引level[k]的两倍减去量化索引的符号函数sign(level[k])。
一旦确定了变量n(指定量化步长的整数因子),则通过将n与量化步长Δk相乘来获得经重构变换系数t′k
如上文所提及,经重构变换系数t′k可以通过整数近似获得,而非与量化步长Δk精确相乘。此说明于图9中的伪码中。此处,变量移位表示向右的位移位。其值通常仅取决于块的量化参数(但移位参数可以针对块内部的不同变换系数改变也是可能的)。变量scale[k]表示变换系数tk的缩放因子;除块量化参数以外,其也可以例如取决于量化加权矩阵的对应输入项。变量“add”指定舍入偏移,其通常被设定为等于add=(1<<(shift-1))。应注意,除了舍入之外,图9的伪码(最末行)中所的指定的整数算术等效于与由下式给定的量化步长Δk相乘
Δk=scale[k]·2-shift
图9中相对于图8的另一(仅外观)改变为,使用三进位if-then-else运算符(a?b:c)来实施两个重构层级集合之间的切换,此运算符从诸如C程序设计语言之程序设计语言已知。
除上文所论述的重构层级集合的选择以外,变换编码中的依赖性标量量化中的另一任务为用于在经定义量化集合(重构层级集合)之间进行切换的算法。所使用的算法确定可以在变换系数的N维空间中(以及因此,也在经重构样本的N维空间中)达成的“封装密度”。较高封装密度最终致使编码效率提高。
在[3]中所呈现的概念中,基于量化集合的分割而确定下一变换系数的重构层级集合,如图10中所说明。将两个量化集合中的每一个分割成两个子集。将第一量化集合(标注为集合0)分割成两个子集(标注为A以及B),且也将第二量化集合(标注为集合1)分割成两个子集(标注为C以及D)。在图7以及图10中,量化集合分割成子集是由空心圆以及实心圆指示。以下分割规则适用:
·子集A由量化集合0的所有偶数量化索引组成;
·子集B由量化集合0的所有奇数量化索引组成;
·子集C由量化集合1的所有偶数量化索引组成;
·子集D由量化集合1的所有奇数量化索引组成;
所使用的子集未在位流内部明确地指示。替代地,其可以基于所使用的量化集合(例如,集合0或者集合1)以及实际上传输的量化索引而导出。子集可以由所传输量化索引层级与1的逐位“与(and)”运算导出。子集A由(level&1)等于0的集合0的所有量化索引组成,子集B由(level&1)等于1的集合0的所有量化索引组成,子集C由(level&1)等于0的集合1的所有量化索引组成,且子集D由(level&1)等于1的集合1的所有量化索引组成。
量化集合(集合0以及集合1)之间的转换由状态变量表示;所述状态变量具有四个可能值(0、1、2、3)。一方面,状态变量指定用于当前变换系数的量化集合。当且仅当状态变量等于0或者1时,使用量化集合0,且当且仅当状态变量等于2或者3时,使用量化集合1。另一方面,状态变量也指定量化集合之间的可能转换。表1示出所使用的状态转换表。在给定当前状态的情况下,其指定当前变换系数的量化集合(第二行)。其进一步基于与所选量化索引相关联的路径指定状态转换(如果给定量化集合,则路径指定所使用的子集A、B、C或者D)。在重构块的变换系数时,其足以更新状态变量且确定所使用的量化索引的路径。
表1:具有4个状态的配置的状态转换表的优选示例。
路径由量化索引的奇偶校验给定。在level[k]为当前量化索引的情况下,其可以根据下式进行确定
path=(level[k]&1),
其中运算符&表示二补码整数算术中的逐位“与”。
使用状态转换的概念,通过先前状态(以重构次序)以及先前量化索引,诸如其在本示例中的奇偶校验,唯一地确定当前状态以及因此当前量化集合。变换块的第一状态被设定为等于0。
用于依赖性标量量化的状态转换概念允许用于在解码器中重构变换系数的低复杂度实施。单一变换块的变换系数的重构程序的优选示例使用C-样式伪码示出于图11中。
在图7的伪码中,索引k指定变换系数的重构次序。应注意,在示例程序代码中,索引k以重构次序减小。最末变换系数具有等于k=0的索引。第一索引kstart指定第一经重构变换系数的重构索引(或者更准确地,反重构索引)。变量kstart可以设定为等于变换块中变换系数的数目减去1,或者其可以设定为等于编码/重构次序中的第一非零量化索引的索引(例如,如果以所应用的熵编码方法传输第一非零量化索引的位置)。在后一情形下,推断所有在前变换系数(其中索引k>kstart)等于0。各单一变换系数的重构程序与图9的示例中的重构程序相同。对于图9中的示例,量化索引由level[k]表示,且相关联经重构变换由trec[k]表示。状态变量由状态表示。应注意,在图11的示例中,状态在变换块的开头处设定为等于0。1d表格setId[]指定与状态变量的不同值相关联的量化集合,且2d表格state_trans_table[][]指定给定当前状态(第一从变量)以及路径(第二从变量)的状态转换。路径由量化索引的奇偶校验给定(使用逐位以及运算符&)。
可以使用简单算术运算而非表setId[];例如,向右的位移位:
setId[state]=state>>1
类似地,也可以使用简单算术运算来实施表state_trans_table[][]。例如,
state_trans_table[state][path]=
(32040>>((state<<2)+(path<<1)))&3
此处,由16-位值“32040”给出完整状态转换表。应注意,通过用“0”替换值“32040”,可以易于在依赖性量化与非依赖性量化之间进行切换。值“0”表示始终选择状态0且因此选择传统均一重构量化器Q0的状态转换表。
依赖性量化中的状态转换也可以使用网格结构表示,如图12中所说明。此图中所示的网格对应于表1中所指定的状态转换。对于各状态,存在连接当前变换系数的状态与重构次序中的下一变换系数的两个可能状态的两个路径。这些路径用路径0以及路径1标注,此编号对应于上文所介绍的路径变量(对于路径变量等于量化索引的奇偶校验的优选实施例)。应注意,各路径唯一地指定量化索引的子集(A、B、C或者D)。在图12中,在圆括号中指定子集。在给定初始状态(状态0)的情况下,通过所传输的量化索引唯一地指定通过网格的路径。
例如,在图12中,状态(0、1、2以及3)具有以下性质:
·状态0:先前量化索引level[k-1]指定集合0的重构层级,且当前定量索引level[k]指定集合0的重构层级。
·状态1:先前量化索引level[k-1]指定集合1的重构层级,且当前定量索引level[k]指定集合0的重构层级。
·状态2:先前量化索引level[k-1]指定集合0的重构层级,且当前定量索引level[k]指定集合1的重构层级。
·状态0:先前量化索引level[k-1]指定集合1的重构层级,且当前定量索引level[k]指定集合1的重构层级。
网格由一系列所谓的基本网格胞元组成。基本网格胞元示出于图13中。
如上文所概述的依赖性标量量化的方面为,针对变换系数存在不同的可以容许重构层级集合(也被称作量化集合)。基于在前变换系数的量化索引的值而确定当前变换系数的量化集合。如果比较两个量化集合,则显而易见的是,相比于集合1中的情况,在集合0中,等于零的重构层级与相邻重构层级之间的距离更大。因此,如果使用集合0,则量化索引等于0的机率较大,且如果使用集合1,则所述机率较小。对于高效编码,通过基于用于当前量化索引的量化集合(或者状态)切换机率模型而将此方面用于熵编码。
应注意,为了合适地切换机率模型,当对当前量化索引(或者当前量化索引的对应二进制决策)进行熵解码时,所有在前量化索引的路径(与所使用量化集合的子集相关联)必须已知。出于此目的,在[3]中所提出的编解码器中,以重构次序对变换系数进行编码。使用类似于H.264|MPEG-4AVC或者H.265|MPEG-H HEVC的二进制算术编码对量化索引进行编码。非二进制量化索引首先映射至一系列二进制决策(其通常被称作二进制位)上。量化索引作为绝对值传输且在绝对值大于0的情况下作为符号传输。
类似地,对于HEVC,基于子块对变换块的变换系数层级进行编码。首先,传输标志coded_block_flag,其指定变换块是否包含任何非零变换系数层级。如果coded_block_flag等于0(即,块不包含任何非零层级),则不针对变换块传输额外信息。否则(coded_block_flag等于1),以下适用:
·编码次序中的第一非零层级的x以及y坐标。如图14中所说明,第一非零层级的所传输位置指定,推断在编码次序中先于经识别系数的所有变换系数(在图14中经白色标记)等于零。仅针对指定位置处的系数(在图14中经黑色标记)以及编码次序中在此系数之后的系数(在图14中经阴影标示的标记)传输额外数据。图14中的示例示出具有4×4子块的16×16变换块;所使用的编码次序为H.265|MPEG-H HEVC中所指定的逐子块对角线扫描。
·对于先于包含第一非零层级(由所传输的x以及y坐标指示)的彼子块的子块,传输标志coded_subblock_flag,其指定子块是否包含任何非零变换系数层级。作为例外情形,不针对包含DC系数的子块传输coded_subblock_flag。对于此子块,推断coded_subblock_flag等于1。
最后,对于coded_subblock_flag等于1的所有子块以及包含编码次序中的第一非零层级的子块,对变换系数层级的值进行编码,如图15中的伪码所说明。此处,firstScanIdSbb表示子块内部的第一扫描索引。对于包含第一非零层级(由所传输的x以及y坐标指示)的子块,firstScanIdSbb等于对应于所传输的(x,y)坐标的扫描索引firstNonZero。对于其他所传输子块,firstScanIdSbb指定子块内部的第一扫描索引。扫描索引lastScanIdSbb指定子块内部的最末扫描索引。应注意,在对编码次序中的下一子块的任何系数进行编码之前对子块内部的所有系数进行编码。
在两个遍次中对子块的层级进行编码。在第一遍次中传输绝对值,且在第二遍次中针对绝对值不等于零的所有系数传输符号。如下对绝对值进行编码:
·传输标志sig_flag,其指定绝对层级是否大于零。如果可以推断标志等于1,即,
当以下条件中的任一个适用时,不传输此标志:
ο当前扫描索引k等于第一非零层级(如由所传输的x以及y坐标指示)的扫描索引;
ο当前扫描索引为子块内部的最末扫描索引,已针对子块传输等于1的coded_subblock_flag,且子块中的所有先前层级等于0。
·如果sig_flag等于1(即,绝对层级大于0),则传输另一标志gt1_flag,其指定绝对层级是否大于一。
·如果sig_flag以及gt1_flag等于1(即,绝对层级大于1),则传输另一标志gt2_flag,其指定绝对层级是否大于二。
·如果sig_flag、gt1_flag以及gt2_flag等于1(即,绝对层级大于2),则传输另一标志gt3_flag,其指定绝对层级是否大于三。
·如果sig_flag、gt1_flag、gt2_flag以及gt3_flag等于1(即,绝对层级大于3),则传输另一标志gt4_flag,其指定绝对层级是否大于四。
·如果sig_flag、gt1_flag、gt2_flag、gt3_flag以及gt4_flag等于1(即,绝对层级大于4),则传输语法元素gt3_flag,其指定绝对值减去5。
在传输子块的所有层级的绝对值之后,针对绝对层级不等于零的所有系数传输符号位sign_flag。
使用自适应性机率模型(也被称作上下文)对标志sig_flag、gt1_flag、gt2_flag、gt3_flag以及gt4_flag进行编码。对于这些标志,如下选择多个自适应性机率模型中的一个:
使状态为变换系数的状态变量的当前值(状态变量是基于编码次序中已经编码层级的奇偶校验而确定)。使diag指定当前扫描位置的对角线位置(diag=x+y,其中x以及y指定扫描位置的x以及y坐标)。此外,使sumAbsTemplate为16图中所说明的局部邻域中的已经编码绝对值的总和,其中对应邻域是通过对属于系数邻域的彼等系数加阴影标示的来指示,这些系数的二进制位当前经编码,所述二进制位又以黑色绘示。且使numSigTemplate为同一局部邻域中大于0的绝对层级数目。
对于sig_flag,所选择的机率模型取决于:
·当前扫描位置的对角线(由x以及y坐标的总和给定);
·用于当前变换系数的量化器(Q0或者Q1,由state>>1给定);
·由sumAbsTemplate给定的局部邻域中的已经编码绝对层级的总和。
对于gt1_flag,所选择的机率模型取决于:
·当前扫描位置的对角线(由x以及y坐标的总和给定);
·用于当前变换系数的量化器(Q0或者Q1,由state>>1给定);
·值sumAbsTemplate-numSigTemplate(即,局部邻域中的绝对值的总和减去局部邻域中大于0的绝对层级数目)。
对于gt2_flag、gt3_flag以及gt4_flag,使用同一机率模型。其取决于以下每一个来选择:
·当前扫描位置的对角线(由x以及y坐标的总和给定);
·值sumAbsTemplate-numSigTemplate(即,局部邻域中的绝对值的总和减去局部邻域中大于0的绝对层级数目)。
首先使非二进制语法元素二进制化(即,映射至二进制位的序列),且在算术编码引擎的旁路模式中(使用具有pmf{0.5,0.5}的非自适应性机率模型)对二进制位进行编码。对于二进制化,使用莱斯-哥伦布(Rice-Golomb)码,其通过所谓的莱斯参数来参数化。取决于(sumAbsTemplate-numSigTemplate)的值选择莱斯参数。最后,使用算术编码引擎的旁路模式对符号标志进行编码。
为了获得提供失真(重构质量)与比特率之间的极好权衡的位流,应以使得拉格朗日成本度量
最小化的方式选择量化索引。对于非依赖性标量量化,此量化算法(被称作速率-失真优化量化或者RDOQ)论述于前文中。但相比于非依赖性标量量化,具有额外困难。经重构变换系数t′k且因此其失真Dk=(tk-t′k)2不仅取决于相关联量化索引qk,且也取决于编码次序中的先前量化索引的值。
然而,如上文已论述,变换系数之间的依赖性可以使用网格结构表示。对于进一步描述,我们使用图10中给定的优选实施例作为一示例。8个变换系数的块的示例的网格结构示出于图17中。通过网格(从左至右)的路径表示量化索引的可能状态转换。应注意,两个节点之间的各连接表示特定子集(A、B、C、D)的量化索引。如果从子集(A、B、C、D)中的每一个选择量化索引qk且将对应速率-失真成本
Jk=Dk(qk|qk-1,qk-2,…)+λ·Rk(qk|qk-1,qk-2,…)
指派至两个网格节点之间的相关联连接,则确定使总速率-失真成本D+λ·R最小化的量化索引的向量/块的问题等效于找到具有通过网格(在图17中从左至右)的最小成本路径的路径。如果忽略熵编码的一些依赖性(类似于RDOQ),则可以使用熟知维特比(Viterbi)算法来解决此最小化问题。
用于选择变换块的合适量化索引的示例编码算法可以由以下主要步骤组成:
1.将初始状态的速率-失真成本设定为等于0。
2.对于编码次序中的所有变换系数,执行以下操作:
a.对于各子集A、B、C、D,确定使给定原始变换系数的失真最小化的量化索引。
b.对于当前变换系数的所有网格节点(0、1、2、3),执行以下操作:
i.计算连接在前变换系数的状态与当前状态的两个路径的速率-失真成本。成本给定为在前状态的成本与Dk+λ·Rk的总和,其中Dk以及Rk表示用于选择与所考虑连接相关联的子集(A、B、C、D)的量化索引的失真以及速率。
ii.将计算出的成本的最小值指派至当前节点且将连接修剪成并不表示最小成本路径的先前变换系数的状态。
应注意:在此步骤之后,当前变换系数的所有节点皆具有至在前变换系数的任何节点的单一连接。
3.比较4个最终节点(针对编码次序中的最末系数)的成本且选择具有最小成本的节点。应注意,此节点与通过网格的唯一路径相关联(所有其他连接皆在先前步骤中经修剪)。
4.遵循所选路径(由最终节点指定)为反向次序且收集与网格节点之间的连接相关联的量化索引。
现在,描述本申请的实施例。其以独立方式呈现,但有时参考上文所论述的附图。具体而言,以下描述聚焦于与以上示例的差异,且因此,这些差异可用于修改以上描述以得到其他实施例,且反的也然,可以个别地或者组合地使用上文所描述的个别任务,诸如关于上下文选择、量化、解量化、变换、重新变换、熵编码/解码的任务,以修改或者进一步指定随后解释的实施例以得到甚至其他实施例。
相比于利用传统非依赖性标量量化的变换编码,如上文所描述的利用依赖性标量量化[3]的变换编码通常改良编码效率。然而,上图15中所描述的依赖性量化索引(变换系数层级)的熵编码具有两个问题,此使得难以达成高处理量硬件设计:
·在算术编码引擎的常规编码模式中编码的二进制位(sig_flag、gt1_flag、gt2_flag、gt3_flag以及gt4_flag)与在旁路模式中编码的二进制位(语法元素余数的二进制位)交错。算术编码引擎的旁路模式可以相比于常规模式更高效地实施。且此外,当连续地对相当大量数目的旁路二进制位进行编码时,可以特别高效地实施算术编码的旁路模式。常规模式与旁路模式之间的频繁切换不利于硬件实施。
·大多数二进制位的机率模型直接取决于正前方的二进制位的值。例如,用于sig_flag的机率模型取决于先前绝对层级的奇偶校验(其在读取先前层级的最末二进制位之前为未知的)。接着,sig_flag的值确定下一二进制位为gt1_flag抑或者另一sig_flag。如果读取gt1_flag,则其值确定下一二进制位为gt2_flag抑或者sig_flag等。这些直接依赖性防止算术解码程序的高效管线化。将优选的是减少直接依赖性的数目,使得二进制位的算术解码可以在一定程度上管线化。
降低目前先进技术残差编码设计的复杂度的方法为若干扫描遍次中的编码。在各扫描遍次中,传输层级的部分信息,使得完整层级信息仅在最终扫描遍次之后可用。然而,此设计并不与依赖性量化技术兼容。应注意,归因于以下原因,二进制位的重排序对于依赖性量化而言并不简单:
·具体而言,对于标志sig_flag,针对两个支持量化器具有显著不同的机率质量函数。如果不知晓当前变换系数的量化器(Q0或者Q1),则压缩效率将显著降级。但所使用的量化器取决于所有变换系数层级的奇偶校验,这些奇偶校验仅在所有先前变换系数的所有二进制位是在当前变换系数的第一二进制位(sig_flag)之前编码的情况下为已知的。
·二进制位的上下文建模也取决于关于局部邻域中的已经传输绝对层级的知识。通常,关于相邻变换系数层级的较好知识改良编码效率。
坦白来讲,下文进一步描述的实施例通过以下设计方面中的一个或多个克服了所提及问题:
·在遍及所有扫描位置的多个遍次中对与子块(或者块)的变换系数层级相关的二进制位进行编码。
·遍及扫描位置的一个或多个第一遍次包括sig_flag的编码,且如果sig_flag等于1,则包括奇偶校验标志par_flag(指定变换系数层级的奇偶校验)的编码。其可以包括或者可以不包括额外数据。应注意,通过编码专用奇偶校验标志,用于变换系数的量化器是已知的,且此知识可用于sig_flag's的高效上下文建模。
·在单独遍次中对子块(或者块)的语法元素余数的所有旁路二进制位进行编码。这意味着,连续地对子块(或者块)的所有旁路二进制位进行编码。
在下文中,描述了一种设计方法,其首先与需要奇偶校验信息的量化方法兼容,且其次相比于完整绝对层级信息的编码继承较低复杂度。中心概念为传输各绝对层级的奇偶校验信息作为专用语法元素。不奇偶校验置是可能的,例如在有效位标志之前,在有效位标志之后,在任何“是大于……的层级”信息之后。遵循奇偶校验信息的语法元素的语义取决于用于传输奇偶校验语法元素的所选择位置而交替。当奇偶校验信息可用时,剩余绝对层级信息可以除以二,从而生成用于语法元素的不同条件机率。
下文中描述关于二进制位以及相关联上下文建模的编码次序的其他细节。
在实施例中,类似于HEVC,基于子块对变换块的变换系数层级进行编码。首先,传输标志coded_block_flag,其指定变换块是否包含任何非零变换系数层级。如果coded_block_flag等于0(即,块不包含任何非零层级),则不针对变换块传输额外信息。否则(coded_block_flag等于1),以下适用:
·传输编码次序中的第一非零层级的x以及y坐标。如图14中所说明,第一非零层级的所传输位置指定,推断在编码次序中先于经识别系数的所有变换系数(在图14中经白色标记)等于零。
·对于在包含编码次序中的第一非零层级(由所传输的x以及y坐标指示)的彼子块之后的子块,传输标志coded_subblock_flag,其指定子块是否包含任何非零变换系数层级。作为例外情形,不针对包含DC系数的子块传输coded_subblock_flag。对于此子块,推断coded_subblock_flag等于1。
最后,对于coded_subblock_flag等于1的所有子块以及包含编码次序中的第一非零层级的子块,对变换系数层级的值进行编码,如下文将描述。
用于对子块的变换系数层级进行编码的优选实施例由图18中的伪码说明。此处,firstScanIdSbb表示子块内部的第一扫描索引。对于包含第一非零层级(由所传输的x以及y坐标指示)的子块,firstScanIdSbb等于对应于所传输的(x,y)坐标的扫描索引firstNonZero。对于其他所传输子块,firstScanIdSbb指定子块内部的第一扫描索引。扫描索引lastScanIdSbb指定子块内部的最末扫描索引。
使level[k]以及absLevel[k]=abs(level[k])表示扫描位置k处的变换系数层级以及变换系数层级的绝对值。变换系数层级的编码在遍及子块内部的扫描位置的四个遍次中继续进行:
在第一遍次中,传输二进制语法元素sig_flag、par_flag以及gt1_flag:
·二进制语法元素sig_flag[k]指定扫描位置k处的变换系数层级的绝对值是否大于0,即,
sig_flag[k]=(absLevel[k]>0?1:0)。
如果可以推断sig_flag等于1,即,当以下条件中的任一个适用时,则不传输sig_flag:
ο当前扫描索引k等于第一非零层级(如由所传输的x以及y坐标指示)的扫描索引;
ο当前扫描索引为子块内部的最末扫描索引,已针对子块传输等于1的coded_subblock_flag,且子块中的所有先前层级等于0。
·如果sig_flag[k]等于1,则传输二进制语法元素par_flag[k]以及gt1_flag[k]。
par_flag[k]指定变换系数层级的奇偶校验。在本发明的一优选实施例中,par_flag[k]被设定为等于绝对值减去1的奇偶校验(其表示变换系数层级的反向奇偶校验):
par_flag[k]=(absLevel[k]-1)&1。
gt1_flag[k]指定余数(由sig_flag[k]=1以及par_flag[k]的值给定)是否大于零:
gt1_flag[k]=(((absLevel[k]-1)>>1)>0?1:0),
其中运算符“>>”指定向右的位移位(即,由2整除)。
在第二遍次中,传输二进制语法元素gt2_flag:
·仅针对彼等扫描位置k对二进制语法元素gt2_flag[k]进行编码,其中在第一遍次中传输等于1的gt1_flag[k]。gt2_flag[k]指定余数(由sig_flag[k]=1以及par_flag[k]的值给定)是否大于一:
gt2_flag[k]=(((absLevel[k]-1)>>1)>1?1:0)。
在第三遍次中,传输语法元素余数:
·仅针对彼等扫描位置k对语法元素remainder[k]进行编码,其中在第二遍次中传输等于1的gt2_flag[k]。remainder[k]指定绝对值的余数(由sig_flag[k]=1、gt1_flag[k]=1、gt2_flag[k]=1以及par_flag[k]的值给定):
remainder[k]=((absLevel[k]-1)>>1)-2。
最后,在第四遍次中,传输语法元素sign_flag:
·仅针对彼等扫描位置k对语法元素sign_flag[k]进行编码,其中在第一遍次中推断传输等于1的sig_flag[k]。sign_flag[k]指定变换系数层级是否为负:
sign_flag[k]=(level[k]<0?1:0)。
在解码器侧,类似地从位流解码语法元素sig_flag[k]、par_flag[k]、gt1_flag[k]、gt2_flag[k]、remainder[k]以及sign_flag[k]。应注意,推断未传输的语法元素par_flag[k]、gt1_flag[k]、gt2_flag[k]、remainder[k]以及sign_flag[k]的所有值等于0。在不针对coded_subblock_flag等于1的子块传输sig_flag[k]的情形下,推断其值等于1。
在给定经编码以及经推断值的情况下,可以如下重构扫描位置k处的变换系数层级的绝对值:
absLevel[k]=
sig_flag[k]+par_flag[k]+2*(gt1_flag[k]+gt2_flag[k]+remainder[k])。
且在给定绝对层级的sign_flag[k]不等于0的情况下,由下式给定变换系数层级
level[k]=(sign_flag[k]?-absLevel[k]:absLevel[k])。
可以在一个或多个方面中修改上文所描述的特定实施例,例如:
·变换系数层级的编码可以不基于子块。这意味着,可以一次编码变换块的所有变换系数层级,而非将变换系数层级的编码分裂成子块。在此情形下,上文所描述的遍次表示遍及完整变换块内部的所有扫描位置的遍次。此方法可以仍与coded_block_flag的编码组合以及与编码次序中的第一非零层级的扫描位置的指示组合(例如,通过传输x以及y位置或者通过任何其他方式)。此方法也可以与指定大区内部的所有变换系数层级等于0的指示(类似于coded_block_flag's)组合。这些区可以表示变换系数位置的子块、连续扫描位置或者任何其他定义明确的子集。对应指示可以在实际变换系数层级之前经编码,或者其可以与第一遍次的二进制位交错地编码。
·可以改变标志par_flag以及gt1_flag标志的编码次序。应注意,这些标志不取决于彼此,且因此,可以在gt1_flag之前对par_flag进行编码,或者可以在par_flag之前对gt1_flag进行编码。
·可以改变奇偶校验标志par_flag的含义。可以传输绝对层级的奇偶校验(其与绝对层级减去2的奇偶校验相同),而非信号通知绝对层级减去1的奇偶校验。
·可以改变gt1_flag的含义。也可以信号通知(absLevel-1-par_flag)是否大于0,而非信号通知(absLevel-1)>>1是否大于0(参见上文)。或者,如果如上文所指示改变含义par_flag,则gt1_flag可以指示(absLevel-1)是否大于0。在二种情形下,重构式将改变为
absLevel[k]=sig_flag[k]+par_flag[k]+gt1_flag[k]+
2*(gt2_flag[k]+remainder[k])
且gt2_flag以及余数的含义将改变为
gt2_flag[k]=(((absLevel[k]-2)>>1)>0?1:0)
remainder[k]=((absLevel[k]-2)>>1)-1
参见例如图19,其中标志以不同方式分布至遍次上,且量化索引的重构涉以及absQIdx=sig_flag+gt1_flag+par_flag+2*(gt3_flag+remainder),其中在图19中所示的第一遍次之后可以行的部分重构为absQIdx1=sig_flag+
gt1_flag+par_flag+2*gt3_flag。
·第一遍次可以以仅在此遍次中传输sig_flag以及par_flag的方式修改。gt1_flag可以移动至第二遍次,或者其可以在所描述的第一遍次与第二遍次之间的单独遍次中传输。
替代地,可以将额外标志(例如,gt2_flag)编码为第一遍次的部分。
·可以省略第二遍次(具有gt2_flag's),在此情形下,将在第一遍次之后直接编码具有语法元素余数的遍次。在一个实施例中,省略第二遍次,这是因为gt2_flag已经编码为第一遍次的部分(参见上文)。在进一步实施例中,省略第二遍次,这是因为根本不传输gt2_flag。在后一情形下,语法元素余数含义改变为
remainder[k]=((absLevel[k]-1)>>1)-1
且重构式改变为
absLevel[k]=
sig_flag[k]+par_flag[k]+2*(gt1_flag[k]+remainder[k])
或者,当gt1_flag的含义如上文所描述而改变时,重构式改变为
absLevel[k]=
sig_flag[k]+par_flag[k]+gt1_flag[k]+2*remainder[k]
替代地,第二遍次可以包括额外标志。例如,含义如下的额外gt3_flag
gt3_flag[k]=(((absLevel[k]-1)>>1)>2?1:0)
可以经传输。或者,如上文所提及,gt1_flag可以从第一遍次移动至第二遍次。此也可以与gt3_flag组合。
也有可能基于已经编码数据(例如,基于可以基于已经编码数据导出的局部邻域中的绝对值的总和)自适应性地确定针对当前扫描位置传输的gtx_flag的最大数目。
·具有常规经编码二进制位的一个或多个额外遍次可以在第二遍次(具有gt2_flag's)与第三遍次(语法元素余数)之间编码。例如,gt3_flag's可以在额外遍次中传输。
·可以在单一遍次中交错地编码语法元素余数的经旁路编码二进制位以及经旁路编码sign_flag's。
也可以组合上文所列的两个或者更多个点。
简单概述以上实施例,在下文中,同样描述其他实施例。由此,使用指向上文论述的附图的附图标记。
具体而言,以上实施例描述用于对变换系数12的块(10)进行解码的概念,其中变换块10可以或者可以不细分成子块14。
解码是在遍次中进行。在扫描变换系数的一个或多个第一遍次中,进行当前变换系数的指示变换系数的量化索引是否为零的有效位旗目的解码,以及变换系数的指示变换系数的奇偶校验的奇偶校验旗目的解码。由于附图中的伪码类似地示出通过将“编码”变成“解码”的解码程序,故仅提及的任务分别在16以及18处进行。其含于图18中的一个第一遍次20中,但根据替代方案可以分布至两个单独遍次上。使用上下文自适应性熵解码来进行任务16以及8二者,上下文自适应性熵解码可以是上下文自适应性二进制算术解码。
在扫描变换系数的一个或多个第二遍次22中,解码24变换系数的一个或多个大小程度(greatness)标志,所述变换系数的量化索引不为零。在图18中,存在两个此类遍次22'以及22”。一个或多个大小程度标志遍次22无需与一个或多个第一遍次20分离。在图18中,在遍次22'中进行gt1_flag解码24',遍次22'同时为第一遍次20,而在单独遍次22”中进行gt3_flag解码24'。图19示出一个或多个第一遍次20以及一个或多个第二遍次22可以重合。此处,在图19中,在相同遍次中进行解码16、18以及24。在图19中,示例性地存在一个此类遍次,其由指示充当有效位/奇偶校验遍次20以及大小程度标志遍次22的遍次的大括号指示。同样,使用上下文自适应性熵解码来进行任务24,上下文自适应性熵解码可以是上下文自适应性二进制算术解码。在图18以及图19中,示例性地解码两个大小程度标志,但此仅为示例。
在一个或多个第三遍次26、27中,即在图18以及图19的情形下相互分离的与遍次20、22分离的两个遍次,进行变换系数的量化索引的余数的解码28,所述变换系数的一个或多个大小程度标志为正,诸如由一指示,即,大小程度确认/批准大小程度的彼等系数的解码,且进行变换系数的量化索引的符号的解码30,所述变换系数的量化索引并不为零。使用等机率熵解码来进行任务28以及30,等机率熵解码可以是等机率二进制算术解码。具体而言,解码28可以涉以及使用二进制化的二进制位以及变换系数的量化索引的绝对值的余数的二进制化的二进制位的等机率二进制算术解码,所述变换系数的一个或多个大小程度标志为正。
以上述方式中的任一种分离遍次的优点已在上文促成,且也将从执行例如解量化和/或上下文导出方面的以下可能性的描述变得清楚,然而,这些细节被视为不限制后续申请专利范围的范畴。优点在于提供可以使用依赖性量化以及诸如上下文自适应性二进制算术编码的上下文自适应性熵编码有效地编码的变换块描述的基础。
如图18以及图19中所示,在一个第一遍次20中,针对当前经扫描的变换系数,可以使用上下文自适应性熵解码对当前经扫描的变换系数的有效位标志进行解码16,且接着,如果有效位标志指示当前经扫描的变换系数的量化索引不为零,则如在32处所检查,针对当前经扫描的变换系数,使用上下文自适应性熵解码对当前经扫描的变换系数的奇偶校验标志进行解码18。替代地,单独的第一遍次20可能已用于两个标志。在一个或多个第二遍次22中的一个中,即在图18中的22'以及22”以及图19的情形下同时为遍次20的22中,如果当前经扫描的变换系数的量化索引不为零,所述情形是在32处检查,则针对当前经扫描的变换系数,使用上下文自适应性熵解码对当前经扫描的变换系数的大小程度标志进行解码24'、24”。应注意,此第一大小程度标志可以具有如上文所解释的不同定义,且可以是gt1_flag或者gt3_flag。在图19的情形下的解码18,以及在图18以及图19的情形下的解码24”甚至仅在当前经扫描的变换系数的大小程度标志gt1_flag已为正的情形下进行,所述情形是在34处检查。即,对于当前经扫描系数,标志的编码/解码次序为:有效位标志、大小程度标志gt1_flag、奇偶校验标志,以及在图18的情形下的大小程度标志gt2_flag,以及在图19的情形下的大小程度标志gt3_flag。
如上文所提及,从所提及标志,对于预定变换系数,量化索引的计算在图18以及图19的情形下可以涉以及总和,其加数是通过以下形成:一个加数是由预定变换系数的有效位标志形成,一个加数是由预定变换系数的奇偶校验标志形成,且一个加数是由预定变换系数的余数与一个大小程度标志(即,图18的情形下的gt2_flag以及图19的情形下的gt3_flag)的总和的两倍形成。
在一个或多个第二遍次22中的一个中,即在图18中的22”以及图19的情形下同时为遍次20的22中,针对当前经扫描的变换系数进行解码,且如果当前经扫描的变换系数的先前大小程度标志为正,则使用上下文自适应性熵解码对当前经扫描的变换系数的另一大小程度标志,即图18的情形下的gt2_flag以及图19的情形下的gt3_flag,进行解码24”。在图18的情形下,针对预定变换系数,根据总和计算量化索引的绝对值,所述总和的加数是通过以下形成:一个加数为预定变换系数的有效位标志,一个加数为预定变换系数的奇偶校验标志,一个加数为预定变换系数的余数、第一大小程度标志与第二大小程度标志的总和的两倍。然而,使用大小程度标志的不同定义,诸如根据图19,例如但非排他地,其中使用上下文自适应性熵解码对当前经扫描的变换系数的有效位标志进行解码16,且接着,如果有效位标志指示当前经扫描的变换系数的量化索引不为零,则如在32处所检查,针对当前经扫描的变换系数,使用上下文自适应性熵解码对当前经扫描的变换系数的大小程度标志gt1_flag进行解码24',且接着,如果此大小程度标志为正,则如在34处所检查,针对当前经扫描的变换系数,使用上下文自适应性熵解码对奇偶校验标志进行解码18,且针对当前经扫描的变换系数,使用上下文自适应性熵解码对当前经扫描的变换系数的另一大小程度标志gt3_flag进行解码24”,针对预定变换系数,诸如当前预定变换系数,根据总和计算量化索引的绝对值,所述总和的加数是通过以下形成:一个加数为预定变换系数的有效位标志,一个加数为预定变换系数的奇偶校验标志,一个加数为预定变换系数的大小程度标志gt1_flag,且一个加数为预定变换系数的余数与另一大小程度标志gt3_flag的总和的两倍。第一大小程度标志以及第二大小程度标志的解码24'以及24”可以在如图18中所说明的单独第二遍次22'以及22”中或者在如图19中所说明的一个遍次上进行。
作为图12的替代方案,将有可能在一个或多个第一遍次中的一个中,针对当前经扫描的变换系数,使用上下文自适应性熵解码对当前经扫描的变换系数的有效位标志进行解码16,且接着在一个第一遍次之后,在一个或多个第二遍次中,使用上下文自适应性熵解码对变换系数的多于一个大小程度标志的序列进行解码24'、24”,且接着,在一个或多个第二遍次之后,在一个或多个第一遍次中的另一个中,使用等机率熵解码对变换系数的奇偶校验标志进行解码,所述变换系数的量化索引不为零。
如上文已提及,可以在子块中进行编码/解码,使得变换系数经逐子块解码,其中在对下一子块的第一遍次进行解码之前对遍及子块的扫描位置的所有遍次进行解码。
每个系数可以通过以下操作来重构:通过针对相应变换系数从多个重构层级集合,即从以上示例中图7以及图10中的“集合0”以及“集合1”选择一重构层级集合,解量化量化索引不为零的各变换系数的量化索引,各系数的二进制化,即所有有效位、奇偶校验以及大小程度标志以及余数以及符号已经解码。根据“setId[state]”,此操作是通过使用当前状态状态来进行。所述状态转而取决于沿扫描次序先于相应变换系数的变换系数的量化索引的奇偶校验而导出,即,例如通过在图11中的40处由相应变换系数的奇偶校验更新用于先前经解量化系数的状态。在选择之后,将相应变换系数解量化至所选择的重构层级集合的一个层级上,所述层级由setId索引化。此层级为由相应变换系数的量化索引索引化的层级。如所描述,针对相应变换系数,通过以下操作而使用状态转换从重构层级集合选择重构层级集合:唯一地基于一状态从多个重构层级集合选择正确重构层级集合,所述状态转换针对相应变换系数,即在图11中的42处假设所述状态,且取决于相应变换系数的量化索引的奇偶校验,针对扫描次序中在后的变换系数更新40状态转换的状态。因此,扫描次序在此同样用于遍次20、22、27以及30。上文已呈现示例。已在图4中通过箭头44例示。同样,子块细分是任选的,正如系数的逐子块解码一样,即,各遍次可以替代地在下一遍次开始之前继续周游(traverse)子块,而非在前进至下一遍次之前执行针对一个子块执行所有遍次。可以存在用于状态转换的四个相异状态。转换可以使用如表1中所说明的表且在执行查找以生成用于以下系数的状态的45处,或者使用如图12中所说明的网格图来实施,例如,其中状态出现在46处。
如上文所描述,多个重构层级集合可以通过如图7以及图10中所示的预定量化步长Δ而参数化。关于预定量化步长的信息可以在数据流中传达。重构层级集合中的每一个可以由针对如图7以及图10中所说明的使用共同水平轴线t的多个重构层级集合或者在所述多个重构层级集合之中相等的此预定量化步长的倍数组成。重构层级集合的数目可以是二,如图7以及图10中所说明,且第一重构层级集合可以包括零以及预定量化步长的偶数倍,诸如图7以及图10中的集合0,且第二重构层级集合可以包括零以及预定量化步长的奇数倍,如图7以及图10中的集合1。可以针对状态值0和1选择第一重构层级集合,且可以针对状态值2以及3选择第二重构层级集合,如表1所说明。
应注意,如果使用以上依赖性量化方案,则在解码18某一系数的奇偶校验之后,定义下一系数的量化集合的状态变量状态经定义或者可以经确定,且此状态可用于编码下一系数的有效位以及奇偶校验标志。
现在关注用于执行解码16、18以及24的上下文选择,且描述有利上下文建模概念。
在优选实施例中,用于常规编码二进制位的自适应性机率模型是选从多个自适应性机率模型的集合。机率模型也被称作上下文,且机率模型的选择也被称作上下文建模。在优选实施例中,所选择的机率模型取决于以下性质中的一个或多个:
·色彩平面。通常,明亮度变换系数以及色度变换系数具有不同统计性质,且因此,如果针对明亮度以及色度使用不同机率模型集合,则可以通常改良编码效率。也有可能针对各色彩平面(例如,Y、Cb、Cr)使用单独机率模型集合。
·由变换块内部的x以及y坐标的总和给定的对角线位置,diag=x+y。平均而言,变换系数的绝对值随对角线位置diag减小而增大。归因于彼原因,如果对角线位置经分割成两个或者更多个类别且针对各类别使用机率模型的单独集合,则压缩效率可以通常得以提高。
·适用于当前变换系数的状态变量。如上文所提及,两个量化器Q0以及Q1具有不同的可以容许重构层级集合。因此,两个量化器的机率质量函数显著不同。此方面对sig_flag(其指示变换系数层级是否不等于0)的机率具有最大影响。因此,如果中的两个量化器使用不同机率模型集合,则压缩效率可以提高。作为此概念的扩展,可以针对状态变量的不同值(其可以采用4个可能值:0、1、2、3)使用不同机率模型集合。或者可以针对状态变量的经定义函数的不同值使用不同机率模型集合。应注意,针对两个不同量化器使用不同机率模型集合表示后一方法的特殊情形。状态变量的依赖性可能不适于所有二进制位,这是由于其增加机率模型的总数目且因此,降低机率适应速度。因此,状态变量的函数的不同值的不同机率模型集合可以仅用于常规编码二进制位的子集。例如,仅针对sig_flag's。或者仅针对sig_flag's以及par_flag's(或者任何其他子集)。
·围绕当前扫描位置的局部邻域内部的活动度量。通常,当前变换系数的绝对值超出某一阈值的可能性随局部邻域内部的活动增加,其中活动是指例如邻域中的绝对变换系数层级的总和。方面可用于通过针对不同局部活动度量使用不同机率度量来提高压缩效率。然而,应注意,由于在多个遍次中对绝对值进行编码,因此仅可以使用在某一遍次中可用的彼等数据。
在下文中,更详细地描述上下文建模(机率模型的选择)的示例性设置。示例是指在图18中指定的二进制位的编码次序。然而,此概念不限于此特定示例,且可以例如容易地转移至上文所描述的编码次序的修改,诸如,图19所指的编码次序。
为了导出局部活动度量,在优选实施例中可以使用图16中所示的局部模板。也有可能使用不同模板,例如包括较多或者较少相邻扫描位置的模板。通常,优选的是所使用模板确实仅包括在编码次序44中先于当前扫描位置的扫描位置。
使T(k)表示局部模板52中的扫描位置的集合。接着使sumAbs为局部模板中的绝对值的总和,其由下式给定
此外,使numSig为局部模板中大于零的绝对层级数目。
推断指当前变换块外部的位置的absLevel[i]以及sig_flag[i]的值等于0。
度量numSig可能已经基于sig_flag's的值导出。然而,绝对层级sumAbs的总和仅在第三(以及第四)遍次26以及27中可用。在第一遍次20以及第二遍次22”中仅对信息的子集进行编码,且因此,仅此信息子集可用于上下文建模。
根据图18的伪码中所示的优选实施例,在第一遍次20/22'中传输二进制位sig_flag、par_flag以及gt1_flag。基于某一变换系数层级的这些数据,可以得出以下结论:
·如果sig_flag等于0,则变换系数层级等于0:level=0;
·如果sig_flag等于1,par_flag等于0,且gt1_flag等于0,则变换系数层级等于1:level=1;
·如果sig_flag等于1,par_flag等于1,且gt1_flag等于0,则变换系数层级等于2:level=2;
·如果sig_flag等于1,par_flag等于0,且gt1_flag等于1,则变换系数层级大于或者等于3:level>=3;
·如果sig_flag等于1,par_flag等于1,且gt1_flag等于1,则变换系数层级大于或者等于4:level>=4。
因此,可以至少根据下式导出绝对变换系数层级的最小值
minAbs1[k]=sig_flag[k]+par_flag[k]+2*gt1_flag[k]。
在第二遍次中,额外知晓gt2_flag的值且可以因此导出以下最小值:
minAbs2[k]=sig_flag[k]+par_flag[k]+2*(gt1_flag[k]+gt2_flag[k])。
最小绝对值的对应总和由sumAbs1以及sumAbs2表示且由下式给定
以及
推断指当前变换块外部的位置的minAbs1[i]以及minAbs2[i]的值等于0。
在此上下文中,应注意,用于计算minAbs1[k]以及minAbs2[k]的确切方程式(且因此,sumAbs1[k]以及sumAbs2[k]的最终值)取决于哪些二进制位包括于第一遍次中以及包括于这些二进制位的语义(即,含义)上。例如,如果gt2_flag[k]包括于第一遍次中或者如果gt1_flag[k]的含义经修改(上文已描述两个替代方案),则用于计算minAbs1[k]的方程式必须相应地改变。例如,在图19的情形下,在第一遍次20/22期间,此最小值为minAbs1=sig_flag+gt1_flag+par_flag+2*(gt3_flag+余数)。在任何情形下,minAbs1[k]表示可以基于在第一遍次中经编码的二进制位而导出的绝对层级的最小值。
值sumAbs、numSig、sumAbs1以及sumAbs2或者这些值的函数可用作上下文建模的局部活动度量。下文描述详细示例。
在替代实施例中,不基于所传输的变换系数层级,而是基于量化步长的相关联乘法因子(绝对值)而确定值sumAbs、minAbs1以及minAbs2。这些数据可以基于变换系数层级以及相关联状态变量而导出。在给定绝对层级absLevel[k]以及相关联状态变量state[k]的情况下,可以根据下式确定量化步长qIdx[k]的乘法因子
qIdx[k]=2*absLevel[k]-(state[k]>>1)
替换minAbs1以及minAbs2的类似值可以根据下式导出
minQIdx1[k]=2*minAbs1[k]-(state[k]>>1)
minQIdx2[k]=2*minAbs2[k]-(state[k]>>1)
在给定这些值的情况下,代替sumAbs、sumAbs1以及sumAbs2的替代值sumQAbs、sumQAbs1以及sumQAbs2可以根据下式导出:
在以下描述中,使用值sumAbs、sumAbs1以及sumAbs2。但应记住,这些值可用值sumQAbs、sumQAbs1以及sumQAbs2替换。当使用值sumQAbs、sumQAbs1以及sumQAbs2时,在上下文导出中可以优选地使用这些值的不同函数。
用于有效位标志sig_flag的上下文建模
用于编码当前sig_flag的自适应性机率模型是选从机率模型集合。为简单起见,假设可用机率模型是以以下4维阵列组织
probModelSig[cSig][sSig][dSig][aSig],
其中cSig指定取决于当前色彩频道的索引,sSig指定取决于状态变量的索引,dSig指定取决于变换块内部的对角线位置(或者更一般而言,x以及y位置)的索引,且aSig指定取决于局部活动度量的索引。机率模型的实际组织为实际实施的方面。其可以例如组织为1-d阵列,在此情形下,可以基于cSig、sSig、dSig以及aSig的值而导出经组合索引。
在下文中,描述用于导出索引cSig、sSig、dSig以及aSig的示例方法。然而,应注意,导出这些索引(或者索引的一部分)的不同方式是可能的。
色彩频道索引cSig
在优选实施例中,当且仅当当前色彩频道表示明亮度信道(或者,更一般而言第一色彩频道)时,色彩频道索引cSig设定为等于0。且当且仅当当前色彩频道表示色度频道(或者,更一般而言,并非第一色彩频道),cSig被设定为等于1:
cSig=(current channel is luma?0:1)
作为替代方案,cSig可以被设定为针对明亮度频道等于0,针对Cb频道等于1,且针对Cr频道等于2。
状态索引sSig
在优选实施例中,索引sSig被设定为等于
这意味着,一个机率模型集合用于等于0和1的状态变量,第二集合用于等于2的状态变量,且第三集合用于等于3的状态变量。
作为替代方案,索引sSig可以被设定为等于状态变量(sSig=state),在此情形下单独机率模型集合将用于状态变量的各可能值。或者作为另一替代方案,可以根据sSig=state>>1设定索引sSig,在此情形下,单独上下文模型集合将用于两个量化器Q0以及Q1中的每一个(应注意,当状态等于0或者1时,使用量化器Q0,且当状态等于2或者3时,使用量化器Q1)。
位置索引dSig
在优选实施例中,索引dSig被如下设定:
·如果索引cSig等于0(即,当前色彩频道表示明亮度频道),则根据下式设定dSig
·如果索引cSig等于1(即,当前色彩频道表示色度频道),则根据下式设定dSig
此处,diag表示由diag=x+y给定的对角线位置,其中x以及y表示变换块内部的当前扫描位置的x以及y坐标。
替代地,对角线位置的任何其他聚簇皆为可能的。或者,变换块内部的(x,y)位置可以分割成多个类别,且索引dSig可以被设定为等于对应类别索引。
局部活动索引aSig
最后,在本发明的一优选实施例中,根据下式设定索引aSig
aSig=min(5,sumAbs1),
其中sumAbs1是指局部模板中由第一遍次中所传输的数据给定的最小绝对变换系数层级的总和(参见上文)。
作为替代方案,可以使用sumAbs1的不同最大值或者不同函数。
用于奇偶校验标志par_flag的上下文建模
用于编码当前par_flag的自适应性机率模型是选从机率模型集合。类似地,对于有效位标志,假设可用机率模型是以以下4维阵列组织
probModelPar[cPar][sPar][dPar][aPar],
其中cPar指定取决于当前色彩频道的索引,sPar指定取决于状态变量的索引,dPar指定取决于变换块内部的对角线位置(或者更一般而言,x以及y位置)的索引,且aPar指定取决于局部活动度量的索引。
色彩频道索引cPar
类似地,对于有效位标志,在优选实施例中,根据下式设定色彩频道索引cSig:
cPar=(current channel is luma(当前频道是明亮度)?0:1)
替代地,可以使用上文针对cSig所描述的替代方案。
状态索引sPar
在优选实施例中,索引sPar被设定为等于0。这意味着,所选机率模型不取决于状态变量。
替代地,可以使用上文针对sPar所描述的方法中的任一个。
位置索引dPar
在优选实施例中,索引dPar被如下设定:
·如果索引cPar等于0(即,当前色彩频道表示明亮度频道),则根据下式设定dPar
·如果索引cPar等于1(即,当前色彩频道表示色度频道),则根据下式设定dPar
在此,diag表示由diag=x+y给定的对角线位置,其中x以及y表示变换块内部的当前扫描位置的x以及y坐标。布尔变量firstNonZero指定当前扫描位置是否表示编码次序中的第一非零层级的扫描位置(即,由在经编码块标志之后传输的x以及y坐标(或者类似方式)识别的位置)。因此,对于编码次序中的第一非零层级,使用不同机率模型集合(独立于对角线位置)。
替代地,对角线位置的任何其他聚簇皆为可能的。或者,变换块内部的(x,y)位置可以分割成多个类别,且索引dPar可以被设定为等于对应类别索引。
局部活动索引aPar
最后,在本发明的一优选实施例中,根据下式设定索引aPar
aPar=min(4,sumAbs1-numSig),
其中sumAbs1是指局部模板中由第一遍次中所传输的数据给定的最小绝对变换系数层级的总和(参见上文)。且numSig是指局部模板中的非零层级数目(即,等于1的sig_flag's的数目)(参见以上描述)。作为替代方案,可以使用sumAbs1以及numSig的不同最大值或者不同函数。
标志gt1_flag的上下文建模
用于编码当前gt1_flag的自适应性机率模型是选从机率模型集合。类似地,对于有效位标志,假设可用机率模型是以以下4维阵列组织
probModelGt1[cGt1][sGt1][dGt1][aGt1],
其中cGt1指定取决于当前色彩频道的索引,sGt1指定取决于状态变量的索引,dGt1指定取决于变换块内部的对角线位置(或者更一般而言,x以及y位置)的索引,且aGt1指定取决于局部活动度量的索引。
在本发明的一优选实施例中,以与上文所描述的索引cPar、sPar、dPar、aPar相同的方式导出索引cGt1、sGt1、dGt1以及aGt1:
cGt1=cPar
sGt1=sPar
dGt1=dPar
aGt1=aPar
应注意,使用相同上下文索引不同于使用相同机率模型。虽然上下文模型索引的导出对于gt1_flag以及par_flag为相同的,但机率模型的集合不相交。这意味着,针对par_flag使用一个机率模型集合,且针对gt1_flag使用另一机率模型集合。
应注意,gt1_flag的上下文选择不取决于正前方的par_flag的值。
替代地,索引cGt1、sGt1、dGt1以及aGt1可以通过上文关于有效位标志所描述的方法中的任一个导出。
此外,所选择的机率模型可以额外取决于正前方的奇偶校验标志par_flag的值,使得针对两个奇偶校验值中的每一个使用不同机率模型集合。然而,此将在par_flag与gt1_flag之间引入直接依赖性。
标志gt2_flag的上下文建模
用于编码当前gt2_flag的自适应性机率模型是选从机率模型集合。类似地,对于有效位标志,假设可用机率模型是以以下4维阵列组织
probModelGt2[cGt2][sGt2][dGt2][aGt2],
其中cGt2指定取决于当前色彩频道的索引,sGt2指定取决于状态变量的索引,dGt2指定取决于变换块内部的对角线位置(或者更一般而言,x以及y位置)的索引,且aGt2指定取决于局部活动度量的索引。
在优选实施例中,以与上文所描述的索引cGt1、sGt1、dGt1、aGt1相同的方式导出索引cGt2、sGt2、dGt2以及aGt2:
cGt2=cGt1
sGt2=sGt1
dGt2=dGt1
aGt2=aGt1
类似地,对于gt1_flag,应注意,(即使上下文索引对于编码gt2_flag以及gt2_flag为相同的),一般而言,针对gt1_flag以及gt2_flag使用不同机率模型集合。然而,作为特殊情形,也有可能针对此两个标志使用完全相同的机率模型。
替代地,索引cGt2、sGt2、dGt2以及aGt2可以通过上文关于前述标志所描述的方法中的任一个导出。
此外,为了导出局部活动索引aGt2,可以使用局部邻域中的gt2_flag的额外信息(在此情形下,在第二遍次中对gt2_flag进行编码)。例如,可以根据下式设定活动索引:
aGt2=min(4,sumAbs2-numSig),
其中sumAbs2是指由在第一遍次以及第二遍次中传输的数据给定的局部模板中的最小绝对变换系数层级的总和(参见上文)。
作为替代方案,可以使用sumAbs2、sumAbs1以及numSig的不同最大值或者不同函数。
现在转向图18以及图19的论述,换句话说,这意味着以下内容。如所描述,预定变换系数的有效位标志的解码16可以涉以及取决于变换块内部的预定变换系数的系数位置而选择用于执行解码16的上下文。此位置由图18以及图19中的参数k索引化。额外或者替代地,如上文关于图16所说明,预定变换系数50的有效位标志是通过以下操作解码:基于在围绕预定变换系数50或者位于所述预定变换系数的位置处的局部模板52内的相邻变换系数的集合51的预定变换系数的有效位标志之前经解码的标志集合确定局部活动,且取决于局部活动选择上下文。如图18以及图19中所进行,例如有效位标志、奇偶校验标志以及一个或多个大小程度标志中的一个,或者如在图19情形下的所有大小程度标志可以在一个遍次中经编码/解码,使得针对模板52中的系数51解码的标志集合包括如针对模板52中的相邻变换系数51的集合解码的这些标志,且活动可以基于针对相邻变换系数51中的每一个具有加数的总和而计算,加数指示用于各个相邻变换系数51的最低限度地假设的索引或者最低限度地假设的重构层级,所述索引或者重构层级是基于先前针对各个相邻变换系数解码的这些标志而确定。最低限度地假设的值意谓用于量化索引或者重构层级的最小阈值,各个相邻系数基于先前针对各个相邻系数51而导出的标志的分析而最低限度地假设所述量化索引或者重构层级。最小值可以在绝对意义上定义。在图19的情形下,例如,此最小值可以计算为各系数51的sig_flag+gt1_flag+par_flag+2*gt3_flag,因为仅余数可以缺失任何系数。对于先前经编码/解码标志集合由于gt1_flag为零而不包括诸如par_flag以及gt3_flag的某些旗目的系数51,各个标志具有默认值零。可以使用上下文编码/解码预定变换系数的有效位标志,所述上下文甚至额外或者替代地取决于状态转换假设此预定变换系数的状态46而选择。例如,可以针对状态0和1定义以及选择一个上下文集合,针对状态2定义以及选择另一上下文集合,且针对状态3定义以及选择第三上下文集合。在所选择的上下文集合内,可以接着诸如取决于局部活动使用先前提及的依赖性中的任一个执行对最终使用的上下文的选择。可以使用当前所选重构集合,例如setId,而非状态。
对于奇偶校验标志,可以类似地设计上下文选择性。即,可以使用取决于以下每一个中的一个或多个而选择的上下文对预定变换系数的奇偶校验标志进行编码/解码:1)预定变换系数的系数位置,2)局部活动,其是基于在围绕预定变换系数50的局部模板52内的相邻变换系数的集合51的预定变换系数的奇偶校验标志之前经解码的标志集合而确定,3)围绕预定变换系数的局部模板52内的变换系数51的数目,所述变换系数的重构层级不为零,且取决于局部活动和/或变换系数的数目而选择上下文,或者4)局部活动与变换系数的数目之间的差。
对于诸如gt1_flag、gt2_flag以及gt3_flag中的任一个的大小程度标志,可以类似地设计上下文选择性。即,可以使用取决于以下每一个中的一个或多个而选择的上下文对预定变换系数的大小程度标志进行编码/解码:1)预定变换系数的系数位置,2)局部活动,其是基于在围绕预定变换系数或者位于预定变换系数处的局部模板52内的相邻变换系数的集合51的预定变换系数的大小程度标志之前经解码的一标志集合而确定,3)局部模板52内的变换系数51的数目,所述预定变换系数的重构层级不为零,和/或4)局部活动与变换系数的数目之间的差。
关于余数的二进制化,可以使用以下有利概念。
在优选实施例中,在算术编码引擎的旁路模式中对语法元素余数进行编码(参见上文)。压缩效率取决于所使用的二进制化。在HEVC中,使用被称作哥伦布-莱斯码的一类二进制化码对类似语法元素进行编码。此类别的码由所谓的莱斯参数来参数化。在HEVC中,在编码期间调整莱斯参数,使得所使用的二进制化取决于先前语法元素。
在优选实施例中,使用与HEVC中的码类别相同(或者类别极类似)的哥伦布-莱斯码以使语法元素剩余部分二进制化。相比于HEVC,从余数的层级信息除以二以后,必须修改莱斯参数的导出。
在优选配置中,使用由局部模板覆盖的相邻层级的绝对值总和sumAbs来导出莱斯参数(参见上文)。在尤其优选实施例中,根据下式导出莱斯参数RP。
在其他配置中,可以修改用于切换莱斯参数的阈值。或者可以基于局部模板的其他活动度量而导出莱斯参数。此外,可以额外指定在子块内不允许莱斯参数变得较小。
作为替代方案,可以以与HEVC中类似的方式修改莱斯参数。即,可以在解码28余数时执行莱斯参数选择。
在例如上文所描述的图18的实施例中,在有效位信息之后直接传输奇偶校验语法元素。在此配置中,直接二进制位间依赖性仅存在于有效位信息与奇偶校验信息之间。在奇偶校验信息的编码/解码之后,对gt1_flag进行编码,由此停止第一遍次中针对当前扫描位置的层级信息的编码。在结束第一扫描遍次20/22'之后,在第二扫描遍次22'中传输gt2_flags。最后,在扫描遍次26中传输余数。此设计最小化与有效位以及奇偶校验语法元素的直接二进制位间依赖性。此外,可以针对有效位标志的上下文建模评估较多层级信息,由此实现较高压缩效率。奇偶校验标志的上下文建模与gt1以及gt2标志的上下文建模完全相同,从而生成较小逻辑,且因此生成较低复杂度。
在替代实施例中,在绝对层级信息之前首先传输奇偶校验信息,如图20的伪码中所说明。此处,在遍次20'中传输有效位标志,接着在遍次20”中传输奇偶校验标志,接着在遍次22'中传输第一大小程度标志,随后在遍次22”中传输第二大小程度标志。当奇偶校验信息等于0时,仅需要有效位标志,而当奇偶校验标志等于1时,推断有效位标志等于1。此配置的优点为不存在直接二进制位间依赖性。在第一遍次中传输奇偶校验标志之后,状态变量的值以及因此用于个别变换系数的量化器是已知的。
利用sig_flags的遍次与利用经旁通编码的remainder's的遍次之间的遍次数目可以选择为诸如在图19的情形下等于零或者等于大于零的任何值。此外,可以在一遍次内传输多个标志。
以上描述的进一步修改涉及以下每一个。用于奇偶校验标志par_flag的所选择机率模型可以取决于以下参数中的一个或多个:
·色彩频道;
·状态变量;
·围绕当前扫描位置的局部模板中的奇偶校验标志;
·扫描位置(例如,通过聚簇对角线位置)。
用于遵循奇偶校验的语法元素的上下文建模可以基于奇偶校验信息进行调节,使得取决于奇偶校验而采用不同上下文模型集合。另外,这些语法元素可以取决于在奇偶校验标志之前所描述的参数中的任一个。
在此配置中,使用上下文模型的二进制位的数目增加例如至六(最末经上下文编码语法元素接着为GT5)。接着,在旁路模式中传输奇偶校验信息,这是由于条件机率几乎为等机率的。此配置具有如下益处:可以达成针对各扫描位置传输完整信息的设计的压缩效率。
关于在使用非依赖性标量量化的情形下的熵编码,表述以下内容。
即使上文所描述的熵编码对于利用依赖性量化的变换编码特别有利,但其也可以有利地应用于利用传统非依赖性量化的变换编码。需要修改的唯一方面为状态变量的导出。实际上,对于传统非依赖性量化,状态变量可以始终设定为等于0。应注意,量化器Q0表示传统均一重构量化器。
退回至传统标量量化也可以通过将状态转换表修改成下式来达成
state_trans_table[4][2]={{0,0},{0,0},{0,0},{0,0}}
由于状态转换表可以表示为单一16位整数(参见以上描述),可以针对依赖以及非依赖性标量量化使用相同实施。所使用的量化方法可以通过表示状态转换表的16位值配置。因此,用于熵编码的所描述方法也适于支持依赖性量化与非依赖性量化之间的切换(例如,在序列、图像、切片、图块或者块层级上)的编解码器。
其他实施例涉及以下每一个。
1.用于对变换系数的块进行解码的装置,被配置为:a)在扫描所述变换系数的一个或多个第一遍次中,使用上下文自适应性二进制算术解码对所述变换系数的一有效位标志、所述变换系数的一奇偶校验标志以及量化索引不为零的变换系数的一个或多个大小程度标志进行解码,所述有效位标志指示所述变换系数的量化索引是否为零,所述奇偶校验标志指示所述变换系数的一奇偶校验;以及b)在一个或多个第二遍次中,使用等机率二进制算术解码对所述变换系数的所述量化索引的一绝对值的一余数的一二进制化的二进制位以及所述变换系数的所述量化索引的一符号进行解码,所述变换系数的所述一个或多个大小程度标志为正,所述变换系数的所述量化索引不为零。
2.如实施例1的装置,被配置为在一个第一遍次中,针对当前经扫描的变换系数,使用上下文自适应性二进制算术解码对所述当前经扫描的变换系数的有效位标志进行解码,且如果所述有效位标志指示所述当前经扫描的变换系数的量化索引不为零,则针对所述当前经扫描的变换系数,使用上下文自适应性二进制算术解码对所述当前经扫描的变换系数的奇偶校验标志进行解码。
3.如实施例1或者2的装置,被配置为在所述一个或多个第一遍次中,针对一当前经扫描的变换系数,如果所述当前经扫描的变换系数的所述量化索引不为零,则使用上下文自适应性二进制算术解码对所述当前经扫描的变换系数的一第一大小程度标志进行解码。
4.如实施例3的装置,被配置为针对一预定变换系数,根据一总和计算所述量化索引的所述绝对值,所述总和的加数是通过以下形成:所述预定变换系数的有效位标志、所述预定变换系数的奇偶校验标志,以及所述预定变换系数的余数与所述第一大小程度标志的一总和的两倍。
5.如实施例3的装置,被配置为在所述一个或多个第二遍次中,针对当前经扫描的变换系数,如果所述当前经扫描的变换系数的所述第一大小程度标志为正,则使用上下文自适应性二进制算术解码对所述当前经扫描的变换系数的一第二大小程度标志进行解码。
6.如实施例5的装置,被配置为针对一预定变换系数,根据一总和计算所述量化索引的所述绝对值,所述总和的加数是通过以下形成:所述预定变换系数的所述有效位标志、所述预定变换系数的所述奇偶校验标志、所述预定变换系数的所述第一大小程度标志,以及所述预定变换系数的所述余数与所述第二大小程度标志的总和的两倍。
7.如实施例1至6中任一项的装置,被配置为在所述一个或多个第一遍次中的每一个之后执行所述一个或多个第二遍次中的每一个。
8.如前述实施例中任一项的装置,其中一变换块的变换系数被分割成子块,且所述变换系数经逐子块解码,其中遍及一子块的扫描位置的所有遍次是在下一子块的第一遍次经解码之前经解码。
9.如实施例1至8中任一项的装置,被配置为通过以下操作解量化量化索引不为零的各变换系数的所述量化索引:取决于沿扫描次序在相应变换系数之前的变换系数的量化索引的奇偶校验,针对所述相应变换系数从多个重构层级集合中选择重构层级集合,且将所述相应变换系数解量化至所述重构层级集合的一个层级上,所述层级由所述相应变换系数的所述量化索引索引化。
10.如实施例9的装置,被配置为针对所述相应变换系数,通过以下操作而使用一状态转换执行从多个重构层级集合选择所述重构层级集合:唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个重构层级集合中选择所述重构层级集合,且取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的所述状态。
11.如实施例10的装置,被配置为沿所述扫描次序执行所述一个或多个第一遍次和/或所述一个或多个第二遍次。
12.如实施例10或者11的装置,被配置为执行四个相异状态之间的状态转换转换。
13.如实施例9至12中任一项的装置,被配置为通过一预定量化步长使这些多个(50)重构层级集合(52)参数化且从数据流(14)导出关于所述预定量化步长的信息。
14.如实施例9至13中任一项的装置,其中这些多个(50)重构层级集合(52)中的每一个由一预定量化步长的整数倍组成,所述预定量化步长对于这些多个(50)重构层级集合(52)是恒定的。
15.如实施例9至14中任一项的装置,其中这些多个(50)重构层级集合(52)中的重构层级集合(52)的数目为二,且所述多个重构层级集合包括:第一重构层级集合,其包括零以及预定量化步长的偶数倍,以及第二重构层级集合,其包括零以及所述预定量化步长的奇数倍。
16.如实施例15的装置,被配置为针对状态值0和1选择所述第一重构层级集合,且针对状态值2和3选择所述第二重构层级集合。
17.如实施例1至16中任一项的装置,被配置为通过取决于所述变换块内部的所述预定变换系数的系数位置选择一上下文而使用上下文自适应性二进制算术解码对一预定变换系数的有效位标志进行解码。
18.如实施例1至17中任一项的装置,被配置为通过以下操作而使用上下文自适应性二进制算术解码对一预定变换系数的有效位标志进行解码:基于在围绕所述预定变换系数的一局部模板内的相邻变换系数的集合的预定变换系数的有效位标志之前经解码的一标志集合确定一局部活动,且取决于所述局部活动选择上下文。
19.如实施例18的装置,被配置为在一个第一遍次中对所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志进行解码,使得所述标志集合包括针对所述组相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志,且基于所述相邻变换系数中的每一个的一加数的一总和而计算所述局部活动,所述加数指示用于所述相邻变换系数的一最低限度地假设的索引或者一最低限度地假设的重构层级,所述索引或者重构层级是基于针对所述相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志而确定。
20.如实施例1至19中任一项的装置,被配置为:a)针对所述相应变换系数,通过以下操作而使用一状态转换执行从多个重构层级集合选择所述重构层级集合:唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个重构层级集合中选择所述重构层级集合,且取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的所述状态;b)沿所述扫描次序执行所述一个或多个第一遍次;以及c)通过取决于所述状态转换针对预定变换系数(13')假设的状态选择一上下文而使用上下文自适应性二进制算术解码对一预定变换系数的有效位标志进行解码。
21.如实施例20的装置,被配置为通过取决于所述状态选择包括所述上下文的一上下文集合而使用上下文自适应性熵解码对一预定变换系数的有效位标志进行解码,且取决于围绕所述预定变换系数的局部活动或者所述预定变换系数的系数位置,从所述上下文集合中选择所述上下文。
22.如实施例21的装置,其中针对状态0和1选择第一上下文集合,针对状态2选择第二上下文集合,以及针对状态3选择第三上下文集合。
23.如实施例1至22中任一项的装置,被配置为:a)通过以下操作解量化量化索引不为零的各变换系数的所述量化索引:取决于沿扫描次序在相应变换系数之前的变换系数的量化索引的奇偶校验,针对所述相应变换系数从多个重构层级集合中选择重构层级集合,且将所述相应变换系数解量化至所述重构层级集合的一个层级上,所述层级由所述相应变换系数的所述量化索引索引化;b)沿所述扫描次序执行所述一个或多个第一遍次;以及c)通过取决于针对一预定变换系数选择的所述重构层级集合选择一上下文而使用上下文自适应性二进制算术解码对所述预定变换系数的所述有效位标志进行解码。
24.如实施例1至23中任一项的装置,被配置为通过取决于所述变换块内部的所述预定变换系数的系数位置选择一上下文而使用上下文自适应性二进制算术解码对一预定变换系数的奇偶校验标志进行解码。
25.如实施例1至24中任一项的装置,被配置为通过以下操作而使用上下文自适应性二进制算术解码对一预定变换系数的奇偶校验标志进行解码:基于在围绕所述预定变换系数的一局部模板内的相邻变换系数的集合的预定变换系数的奇偶校验标志之前经解码的一标志集合确定一局部活动,和/或确定围绕所述预定变换系数的所述局部模板内的变换系数的数目,所述预定变换系数的重构层级不为零;且取决于所述局部活动和/或变换系数的所述数目选择上下文。
26.如实施例25的装置,被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。
27.如实施例25或者26的装置,被配置为在一个第一遍次中对所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志进行解码,使得所述标志集合包括针对所述组相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志,且基于所述相邻变换系数中的每一个的加数的总和来计算所述活动,所述加数指示用于所述相邻变换系数的一最低限度地假设的索引或者一最低限度地假设的重构层级,所述索引或者重构层级是基于针对所述相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志而确定。
28.如实施例1至27中任一项的装置,被配置为通过取决于所述变换块内部的所述预定变换系数的系数位置选择一上下文而使用上下文自适应性二进制算术解码对一预定变换系数的一个或多个大小程度标志中的一第一大小程度标志进行解码。
29.如实施例1至28中任一项的装置,被配置为通过以下操作而使用上下文自适应性二进制算术解码对一预定变换系数的第一大小程度标志进行解码:基于在围绕所述预定变换系数的一局部模板内的相邻变换系数的集合的预定变换系数的第一大小程度标志之前经解码的一标志集合确定一局部活动,和/或确定围绕所述预定变换系数的所述局部模板内的变换系数的数目,所述预定变换系数的重构层级不为零;且取决于所述局部活动和/或变换系数的所述数目选择上下文。
30.如实施例29的装置,被配置为取决于所述局部活动与所述变换块内部的变换系数的所述数目之间的一差选择所述上下文。
31.如实施例29或者30的装置,被配置为在一个第一遍次中对所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志进行解码,使得所述标志集合包括针对所述组相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志,且基于所述相邻变换系数中的每一个的加数的总和来计算所述活动,所述加数指示用于所述相邻变换系数的一最低限度地假设的索引或者一最低限度地假设的重构层级,所述索引或者重构层级是基于针对所述相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志而确定。
32.如实施例1至31中任一项的装置,被配置为使用一哥伦布-莱斯码且使用一莱斯参数对一预定变换系数的余数进行解码,所述莱斯参数取决于用于围绕所述预定变换系数的局部模板内的相邻变换系数的集合中的每一个相邻变换系数的加数的总和,所述加数取决于用于相应相邻变换系数的量化索引或者重构层级。
33.用于对变换系数的块进行编码的装置,被配置为:a)在扫描所述变换系数的一个或多个第一遍次中,使用上下文自适应性二进制算术编码对当前变换系数的一有效位标志(例如,sig_flag[k])、所述变换系数的一奇偶校验标志(例如,par_flag[k])以及量化索引不为零的变换系数的一个或多个大小程度标志(例如,gt#_flag[k])进行编码,所述有效位标志指示所述当前变换系数的一量化索引(例如,level[k])是否为零,所述奇偶校验标志指示所述变换系数的一奇偶校验;以及b)在一个或多个第三遍次中,使用等机率二进制算术编码对所述变换系数的所述量化索引的一余数(例如,remainder[k])以及所述变换系数的所述量化索引的一符号(例如,sign[k])进行编码,所述变换系数的所述一个或多个大小程度标志为正,所述变换系数的所述量化索引不为零。
34.如实施例33的装置,被配置为在一个第一遍次中,针对当前经扫描的变换系数,a)使用上下文自适应性二进制算术编码对所述当前经扫描的变换系数的有效位标志进行解码,且b)如果所述有效位标志指示所述当前经扫描的变换系数的量化索引不为零,则针对所述当前经扫描的变换系数,使用上下文自适应性二进制算术编码对所述当前经扫描的变换系数的奇偶校验标志进行编码。
35.如实施例33或者34的装置,被配置为在所述一个或多个第二遍次中,针对当前经扫描的变换系数,如果所述当前经扫描的变换系数的所述量化索引不为零,则使用上下文自适应性二进制算术编码对所述当前经扫描的变换系数的一第一大小程度标志进行编码。
36.如实施例35的装置,被配置为使得针对一预定变换系数,可以根据一总和获得所述量化索引,所述总和的加数是由通过以下形成:所述预定变换系数的有效位标志、所述预定变换系数的奇偶校验标志,以及所述预定变换系数的余数与所述第一大小程度标志的一总和的两倍。
37.如实施例36的装置,被配置为在所述一个或多个第二遍次中,针对当前经扫描的变换系数,如果所述当前经扫描的变换系数的所述第一大小程度标志为正,则使用上下文自适应性二进制算术编码对所述当前经扫描的变换系数的一第二大小程度标志进行编码。
38.如实施例37的装置,被配置为针对一预定变换系数,可以根据一总和获得所述量化索引,所述总和的加数是通过以下形成:所述预定变换系数的所述有效位标志、所述预定变换系数的所述奇偶校验标志、所述预定变换系数的所述第一大小程度标志,以及所述预定变换系数的所述余数与所述第二大小程度标志的总和的两倍。
39.如实施例33至38中任一项的装置,被配置为在所述一个或多个第一遍次中的每一个之后执行所述一个或多个第二遍次中的每一个。
40.如前述实施例中任一项的装置,其中一变换块的变换系数被分割成子块,且所述变换系数经逐子块解码,其中遍及一子块的扫描位置的所有遍次是在下一子块的第一遍次经解码之前经解码。
41.如实施例33至40中任一项的装置,被配置为通过以下操作量化量化索引不为零的各变换系数的所述量化索引:取决于沿扫描次序在相应变换系数之前的变换系数的量化索引的奇偶校验,针对所述相应变换系数从多个重构层级集合中选择重构层级集合,以及将所述相应变换系数量化至所述重构层级集合的一个层级上,所述层级由所述相应变换系数的所述量化索引索引化。
42.如实施例47的装置,被配置为针对所述相应变换系数,通过以下操作使用一状态转换执行从多个重构层级集合选择所述重构层级集合:唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个重构层级集合中选择所述重构层级集合,且取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的所述状态。
43.如实施例42的装置,被配置为沿所述扫描次序执行所述一个或多个第一遍次以及所述一个或多个第二遍次。
44.如实施例42或者43的装置,被配置为执行四个相异状态之间的状态转换转换。
45.如实施例40至43中任一项的装置,被配置为通过预定量化步长对所述多个重构层级集合进行参数化,且从数据流导出关于预定量化步长的信息。
46.如实施例40至45中任一项的装置,其中所述多个重构层级集合中的每一个由预定量化步长的倍数组成,所述预定量化步长对于所述多个重构层级集合是恒定的。
47.如实施例40至46中任一项的装置,其中所述多个重构层级集合中的重构层级集合的数目是二,且所述多个重构层级集合包括:第一重构层级集合,其包括零以及预定量化步长的偶数倍,以及第二重构层级集合,其包括零以及所述预定量化步长的奇数倍。
48.如实施例47的装置,被配置为针对状态值0和1选择所述第一重构层级集合,且针对状态值2和3选择所述第二重构层级集合。
49.如实施例33至48中任一项的装置,被配置为通过取决于所述变换块内部的所述预定变换系数的系数位置选择一上下文而使用上下文自适应性二进制算术编码对一预定变换系数的有效位标志进行编码。
50.如实施例33至49中任一项的装置,被配置为通过以下操作而使用上下文自适应性二进制算术编码对一预定变换系数的有效位标志进行编码:基于在围绕所述预定变换系数的一局部模板内的相邻变换系数的集合的预定变换系数的有效位标志之前经解码的一标志集合确定一局部活动,且取决于所述局部活动选择上下文。
51.如实施例50的装置,被配置为在一个第一遍次中对所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志进行编码,使得所述标志集合包括针对所述组相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志,且基于所述相邻变换系数中的每一个的一加数的一总和而计算所述局部活动,所述加数指示用于所述相邻变换系数的一最低限度地假设的索引或者一最低限度地假设的重构层级,所述索引或者重构层级是基于针对所述相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志而确定。
52.如实施例33至51中任一项的装置,被配置为:a)针对所述相应变换系数,通过以下操作而使用一状态转换执行从多个重构层级集合选择所述重构层级集合:唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个重构层级集合中选择所述重构层级集合,取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的所述状态;b)沿所述扫描次序执行所述一个或多个第一遍次;以及c)通过取决于所述状态转换针对预定变换系数(13')假设的状态选择一上下文而使用上下文自适应性二进制算术编码对一预定变换系数的有效位标志进行编码。
53.如实施例52的装置,被配置为通过取决于所述状态选择包括所述上下文的一上下文集合而使用上下文自适应性熵编码对一预定变换系数的有效位标志进行编码,且取决于围绕所述预定变换系数的局部活动或者所述预定变换系数的系数位置,从所述上下文集合中选择所述上下文。
54.如实施例53的装置,其中针对状态0和1选择第一上下文集合,针对状态2选择第二上下文集合,以及针对状态3选择第三上下文集合。
55.如实施例33至54中任一项的装置,被配置为:a)通过以下操作量化量化索引不为零的各变换系数的所述量化索引:取决于沿扫描次序在相应变换系数之前的变换系数的量化索引的奇偶校验,针对所述相应变换系数从多个重构层级集合中选择重构层级集合,且将所述相应变换系数解量化至所述重构层级集合的一个层级上,所述层级由所述相应变换系数的所述量化索引索引化;b)沿所述扫描次序执行所述一个或多个第一遍次;以及c)通过取决于针对所述预定变换系数(13')选择的重构层级集合(48)选择一上下文而使用上下文自适应性二进制算术编码对一预定变换系数的有效位标志进行编码。
56.如实施例33至55中任一项的装置,被配置为通过取决于所述变换块内部的所述预定变换系数的系数位置选择一上下文而使用上下文自适应性二进制算术编码对一预定变换系数的奇偶校验标志进行编码。
57.如实施例33至56中任一项的装置,被配置为通过以下操作而使用上下文自适应性二进制算术编码对一预定变换系数的奇偶校验标志进行编码:基于在围绕所述预定变换系数的一局部模板内的相邻变换系数的集合的预定变换系数的奇偶校验标志之前经解码的一标志集合确定一局部活动,和/或确定围绕所述预定变换系数的所述局部模板内的变换系数的数目,所述预定变换系数的重构层级不为零;且取决于所述局部活动和/或变换系数的所述数目选择上下文。
58.如实施例57的装置,被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。
59.如实施例57或者58的装置,被配置为在一个第一遍次中对所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志进行编码,使得所述标志集合包括针对所述组相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志,且基于所述相邻变换系数中的每一个的加数的总和来计算所述活动,所述加数指示用于所述相邻变换系数的一最低限度地假设的索引或者一最低限度地假设的重构层级,所述索引或者重构层级是基于针对所述相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志而确定。
60.如实施例33至59中任一项的装置,被配置为通过取决于所述变换块内部的所述预定变换系数的系数位置选择一上下文而使用上下文自适应性二进制算术编码对一预定变换系数的一个或多个大小程度标志中的一第一大小程度标志进行编码。
61.如实施例33至60中任一项的装置,被配置为通过以下操作而使用上下文自适应性二进制算术编码对一预定变换系数的第一大小程度标志进行编码:基于在围绕所述预定变换系数的一局部模板内的相邻变换系数的集合的预定变换系数的第一大小程度标志之前经解码的一标志集合确定一局部活动,和/或确定围绕所述预定变换系数的所述局部模板内的变换系数的数目,所述预定变换系数的重构层级不为零;且取决于所述局部活动和/或变换系数的所述数目选择上下文。
62.如实施例61的装置,被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。
63.如实施例61或者62的装置,被配置为在一个第一遍次中顺序地地对所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志进行编码,使得所述标志集合包括针对所述组相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志,且基于所述相邻变换系数中的每一个的加数的总和来计算所述活动,所述加数指示用于所述相邻变换系数的一最低限度地假设的索引或者一最低限度地假设的重构层级,所述索引或者重构层级是基于针对所述相邻变换系数解码的所述有效位标志、所述奇偶校验标志以及所述一个或多个大小程度标志而确定。
64.如实施例33至63中任一项的装置,被配置为使用一哥伦布-莱斯码且使用一莱斯参数对一预定变换系数的余数进行编码,所述莱斯参数取决于用于围绕所述预定变换系数的局部模板内的相邻变换系数的集合中的每一个相邻变换系数的加数的总和,所述加数取决于用于相应相邻变换系数的量化索引或者重构层级。
65.一种方法,其由如以上实施例中任一项的装置执行。
66.计算机程序,用于指示计算机执行所述计算机程序以执行如实施例65的方法。
67.一种数据流,其是由如实施例33至64中任一项的装置生成。
尽管已在装置的上下文中描述一些方面,但显然,这些方面也表示对应方法的描述,其中块或者设备对应于方法步骤或者方法步骤的特征。类似地,方法步骤的上下文中所描述的方面也表示对应块或者项目或者对应装置的特征的描述。可以由(或者使用)硬件装置(比如微处理器、可编程计算机或者电子电路)执行方法步骤中的一些或者全部。在一些实施例中,可以由此装置执行最重要的方法步骤中的一个或多个。
本发明的经编码数据流可以存储于数字存储介质上或者可以在诸如无线传输介质的传输介质或者诸如因特网的有线传输介质上传输。
取决于某些实施要求,本发明的实施例可以以硬件或者以软件实施。可以使用例如软盘、DVD、蓝光、CD、ROM、PROM、EPROM、EEPROM或者闪存的数字存储介质来执行实施,其上存储有与可编程计算机系统协作(或者能够协作)的电子可读控制信号,使得执行各个方法的。因此,数字存储介质可以是计算机可读的。
根据本发明的一些实施例包括具有电子可读控制信号的数据载体,这些控制信号能够与可编程计算机系统协作,使得执行本文中所描述的方法中的一个。
大体而言,本发明的实施例可以实施为具有程序代码的计算机程序产品,当计算机程序产品运行于计算机上时,程序代码操作性地用于执行这些方法中的一个。程序代码可以例如存储于机器可读载体上。
其他实施例包括存储于机器可读载体上,用于执行本文中所描述的方法中的一个的计算机程序。
换句话说,本发明方法的实施例因此为计算机程序,其具有用于在计算机程序于计算机上执行时执行本文中所描述的方法中的一个的程序代码。
因此,本发明方法的进一步实施例为数据载体(或者数字存储介质,或者计算机可读介质),其包括记录于其上的用于执行本文中所描述的方法中的一个的计算机程序。数据载体、数字存储介质或者所记录介质通常是有形的和/或非暂时性的。
因此,本发明的方法的进一步实施例为表示用于执行本文中所描述的方法中的一个的计算机程序的数据流或者信号序列。数据流或者信号序列可以例如被配置为经由数据通讯连接,例如经由因特网而传送。
进一步实施例包括处理装置,例如经配置或者经适配以执行本文中所描述的方法中的一个的计算机或者可编程逻辑器件。
进一步实施例包括上面安装有用于执行本文中所描述的方法中的一个的计算机程序的计算机。
根据本发明的进一步实施例包括被配置为(例如,电子地或者光学地)将用于执行本文中所描述的方法中的一个的计算机程序传送至接收器的设备或者系统。接收器可以例如为计算机、行动设备、内存设备或者类似者。装置或者系统可以例如包括用于将计算机程序传送至接收器的文件服务器。
在一些实施例中,可编程逻辑器件(例如,场可编程门阵列)可用以执行本文中所描述的方法的功能性中的一些或者全部。在一些实施例中,场可编程门阵列可以与微处理器协作,以便执行本文中所描述的方法中的一个。通常,这些方法优选地由任何硬件装置来执行。
本文中所描述的装置可以使用硬件装置或者使用计算机或者使用硬件装置与计算机的组合来实施。
本文中所描述的装置或者本文中所描述的装置的任何组件可以至少部分地以硬件和/或以软件来实施。
本文中所描述的方法可以使用硬件装置或者使用计算机或者使用硬件装置与计算机的组合来进行。
本文中所描述的方法或者本文中所描述的装置的任何组件可以至少部分地由硬件和/或由软件来执行。
上述实施例仅说明本发明的原理。应理解,对本文中所描述的布置以及细节的修改以及变化将对本领域技术人员显而易见。因此,意图为仅受到接下来的申请专利范围的范畴限制,而不受到通过本文中的实施例的描述解释所呈现的特定细节限制。
参考文献
[1]ITU-T and ISO|IEC,“Advanced video coding for audiovisualservices,”ITU-T Rec.H.264 and ISO|IEC 14406-10(AVC),2003.
[2]ITU-T and ISO|IEC,“High efficiency video coding,”ITU-T Rec.H.265and ISO|IEC 23008-10(HEVC),2013.
[3]Abrecht,et.al.,“Description of SDR,HDR,and 360°video codingtechnology proposal by Fraunhofer HHI,”Joint Video Experts Team(JVET),doc.JVET-J0014,Apr.2018.

Claims (61)

1.用于对块(10)的变换系数(12)进行解码的装置,所述装置被配置为
在扫描所述变换系数的至少一个第一遍次(20)中,
使用上下文自适应性熵解码,对用于所述变换系数的有效位标志进行解码,所述有效位标志中的每一个针对相应变换系数指示所述相应变换系数的量化索引是否为零;
对用于所述变换系数的奇偶校验标志进行解码,所述奇偶校验标志中的每一个针对相应变换系数指示所述相应变换系数的奇偶校验;以及
确定用于每个变换系数的相应的大小程度标志,每个相应的大小程度标志指示该变换系数的量化索引的绝对值是否大于与所述相应的大小程度标志对应的值,其中确定用于每个变换系数的相应的大小程度标志包括:
使用上下文自适应性熵解码来解码其量化索引不为零的每个变换系数的相应第一大小程度标志,并且将其量化索引为零的每个变换系数的相应第一大小程度标志设置为零,以及
使用上下文自适应性熵解码对其第一大小程度标志等于一的每个变换系数的相应第二大小程度标志进行解码,并且将其第一大小程度标志为零的每个变换系数的相应第二大小程度标志设置为零;
并且在至少一个进一步遍次(26, 27)中,使用等机率熵解码来解码其大小程度标志均等于一的每个变换系数的相应量化索引余数,并将其大小程度标志均不等于一的每个变换系数的相应量化索引余数设置为零;以及
针对其量化索引不为零的每个变换系数,使用等机率熵解码来解码该变换系数的量化索引的相应符号。
2.根据权利要求1所述的装置,被配置为
针对当前变换系数,根据总和计算所述当前变换系数的量化索引的绝对值,所述总和的加数是通过以下形成的:
所述当前变换系数的有效位标志,
所述当前变换系数的奇偶校验标志,
所述当前变换系数的第一大小程度标志,以及
所述当前变换系数的量化索引余数与所述当前变换系数的第二大小程度标志的总和的两倍。
3.根据权利要求2所述的装置,
被配置为在单独遍次中解码所述当前变换系数的所述第一大小程度标志以及所述当前变换系数的所述第二大小程度标志。
4.根据权利要求1所述的装置,其中所述至少一个第一遍次是一个第一遍次。
5.根据权利要求1所述的装置,其中所述块的变换系数被分割成子块(14),且所述块的所述变换系数被逐个子块地解码,以至于一子块(14)的每个变换系数是在下一子块的任何变换系数之前被解码的。
6.根据权利要求1所述的装置,其中二进制算术解码被用作熵解码,且量化索引余数是通过对量化索引的绝对值的二进制化的二进制位进行解码而解码的。
7.根据权利要求1所述的装置,被配置为
通过以下操作对量化索引不为零的每个变换系数的量化索引进行解量化:
取决于在沿扫描次序位于相应变换系数之前的变换系数的量化索引的奇偶校验,针对所述相应变换系数从多个重构层级集合中选择重构层级集合,以及
将所述相应变换系数解量化至所述重构层级集合中的由所述相应变换系数的所述量化索引索引的一个层级上。
8.根据权利要求7所述的装置,被配置为
通过以下操作,利用状态转换来执行针对所述相应变换系数从所述多个重构层级集合中选择所述重构层级集合的操作:
唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个重构层级集合中选择所述重构层级集合,以及
取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的所述状态。
9.根据权利要求8所述的装置,被配置为沿所述扫描次序执行
所述至少一个第一遍次,和
所述至少一个进一步遍次。
10.根据权利要求8所述的装置,被配置为执行四个相异状态之间的所述状态转换的转换。
11.根据权利要求7所述的装置,被配置为
通过量化步长对所述多个重构层级集合进行参数化,且从数据流导出关于量化步长的信息。
12.根据权利要求8所述的装置,其中所述多个重构层级集合中的每一个由预定量化步长的倍数组成,所述预定量化步长对于所述多个重构层级集合是恒定的。
13.根据权利要求10所述的装置,其中所述多个重构层级集合中的重构层级集合的数目是二,且所述多个重构层级集合包括
第一重构层级集合,其包括零以及量化步长的偶数倍,以及
第二重构层级集合,其包括零以及所述量化步长的奇数倍。
14.根据权利要求13所述的装置,被配置为针对状态值0和1选择所述第一重构层级集合,且针对状态值2和3选择所述第二重构层级集合。
15.根据权利要求1所述的装置,被配置为
通过取决于以下来选择上下文,使用上下文自适应性熵解码对用于当前变换系数的有效位标志进行解码:
所述块内部的所述当前变换系数的系数位置。
16.根据权利要求1所述的装置,被配置为
通过以下操作,使用上下文自适应性熵解码对用于当前变换系数的有效位标志进行解码:
针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合,基于在所述当前变换系数的所述有效位标志之前解码的标志的集合,来确定局部活动,以及
取决于所述局部活动选择上下文。
17.根据权利要求16所述的装置,被配置为
在一个第一遍次中顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行解码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志和第一大小程度标志。
18.根据权利要求7所述的装置,被配置为
通过以下操作,利用状态转换来执行针对所述相应变换系数从多个重构层级集合中选择所述重构层级集合的操作:
唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个重构层级集合中选择所述重构层级集合,以及
取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的状态,
沿所述扫描次序执行所述至少一个第一遍次,以及
通过取决于以下来选择上下文,使用上下文自适应性熵解码对用于当前变换系数的有效位标志进行解码:
所述状态转换针对所述当前变换系数假设的状态。
19.根据权利要求18所述的装置,被配置为
通过取决于所述状态转换针对所述当前变换系数假设的状态选择包括所述上下文的上下文集合,使用上下文自适应性熵解码对所述当前变换系数的所述有效位标志进行解码,且取决于围绕所述当前变换系数的局部活动或者所述当前变换系数的系数位置,从所述上下文集合中选择所述上下文。
20.根据权利要求19所述的装置,被配置为针对状态0和1选择第一上下文集合,针对状态2选择第二上下文集合,且针对状态3选择第三上下文集合。
21.根据权利要求1所述的装置,被配置为
通过取决于以下选择上下文,使用上下文自适应性熵解码对当前变换系数的奇偶校验标志进行解码:
所述当前变换系数的系数位置。
22.根据权利要求1所述的装置,被配置为
通过以下操作,使用上下文自适应性熵解码对当前变换系数的奇偶校验标志进行解码:
基于针对在围绕所述当前变换系数的局部模板内的相邻变换系数集合而在所述当前变换系数的所述奇偶校验标志之前解码的标志的集合,确定局部活动,和/或确定围绕所述当前变换系数的所述局部模板内的变换系数的数目,所述当前变换系数的重构层级不为零,以及
取决于所述局部活动和/或变换系数的所述数目选择上下文。
23.根据权利要求22所述的装置,被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。
24.根据权利要求22所述的装置,被配置为
在一个第一遍次中顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行解码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。
25.根据权利要求1所述的装置,被配置为
通过取决于以下选择上下文,使用上下文自适应性熵解码对用于当前变换系数的第一大小程度标志进行解码:
所述当前变换系数的系数位置。
26.根据权利要求1所述的装置,被配置为
通过以下操作,使用上下文自适应性熵解码,对用于当前变换系数的第一大小程度标志进行解码:
基于针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合而在所述当前变换系数的所述第一大小程度标志之前解码的标志的集合,来确定局部活动,和/或确定围绕所述当前变换系数的所述局部模板内的变换系数的数目,所述当前变换系数的重构层级不为零,以及
取决于所述局部活动和/或变换系数的所述数目选择上下文。
27.根据权利要求26所述的装置,被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。
28.根据权利要求26所述的装置,被配置为
在一个第一遍次中顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行解码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。
29.根据权利要求1所述的装置,被配置为使用哥伦布-莱斯码以及使用莱斯参数,对当前变换系数的量化索引余数进行解码,所述莱斯参数取决于用于围绕所述当前变换系数的局部模板内的相邻变换系数的集合中的每一个相邻变换系数的相应加数的总和,每个加数取决于用于所述相应相邻变换系数的量化索引或者重构层级。
30.用于对块的变换系数进行编码的装置,所述装置被配置为
在扫描所述变换系数的至少一个第一遍次中,
使用上下文自适应性熵编码,对用于变换系数的有效位标志进行编码,所述有效位标志中的每一个针对相应变换系数指示所述相应变换系数的量化索引是否为零,
对用于所述变换系数的奇偶校验标志进行编码,所述奇偶校验标志中的每一个针对相应变换系数指示所述相应变换系数的奇偶校验,
确定用于每个变换系数的相应的大小程度标志,每个相应的大小程度标志指示该变换系数的量化索引的绝对值是否大于与所述相应的大小程度标志对应的值;
使用上下文自适应性熵编码来编码其量化索引不为零的每个变换系数的相应第一大小程度标志,并且将其量化索引为零的每个变换系数的相应第一大小程度标志设置为零,以及
使用上下文自适应性熵编码对其第一大小程度标志等于一的每个变换系数的相应第二大小程度标志进行编码,并且将其第一大小程度标志为零的每个变换系数的相应第二大小程度标志设置为零;
并且在至少一个进一步遍次中,
使用等机率熵编码来编码其大小程度标志均等于一的每个变换系数的相应量化索引余数,并将其大小程度标志均不等于一的每个变换系数的相应量化索引余数设置为零;以及
针对其量化索引不为零的每个变换系数,使用等机率熵编码来编码该变换系数的量化索引的相应符号。
31.根据权利要求30所述的装置,其中
针对当前变换系数,所述当前变换系数的量化索引是根据总和可获得的,所述总和的加数是通过以下形成的:
所述当前变换系数的有效位标志,
所述当前变换系数的奇偶校验标志,
所述当前变换系数的第一大小程度标志,以及
所述当前变换系数的量化索引余数与所述当前变换系数的第二大小程度标志的总和的两倍。
32.根据权利要求31所述的装置,被配置为
在单独遍次中,编码所述当前变换系数的所述第一大小程度标志和所述当前变换系数的所述第二大小程度标志。
33.根据权利要求30所述的装置,其中所述至少一个第一遍次是一个第一遍次。
34.根据权利要求30所述的装置,其中所述块的所述变换系数被分割成子块(14),且所述块的所述变换系数被逐个子块地编码,以使得一子块(14)的每个变换系数是在下一子块的任何变换系数之前被编码。
35.根据权利要求30所述的装置,其中二进制算术编码被用作熵编码,且通过对量化索引的绝对值的二进制化的二进制位进行编码来对量化索引余数进行编码。
36.根据权利要求30所述的装置,被配置为
通过以下操作对每个变换系数进行量化:
取决于沿扫描次序在相应变换系数之前的变换系数的量化索引的奇偶校验,从多个量化器中选择相应量化器,以及
将所述相应变换系数量化至确定所述相应变换系数的量化索引的相应量化器的一个层级上。
37.根据权利要求36所述的装置,被配置为
通过以下操作,利用状态转换来执行从所述多个量化器中选择所述相应量化器的操作:
唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个量化器中选择所述量化器,
取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在所述扫描次序中居后的变换系数更新所述状态转换的所述状态。
38.根据权利要求37所述的装置,被配置为沿所述扫描次序执行
所述至少一个第一遍次,和
所述至少一个进一步遍次。
39.根据权利要求37所述的装置,被配置为执行四个相异状态之间的所述状态转换的转换。
40.根据权利要求36所述的装置,被配置为
通过量化步长对所述多个量化器进行参数化,且将关于所述量化步长的信息编码成数据流。
41.根据权利要求37所述的装置,其中所述多个量化器中的每一个由量化步长的倍数组成,所述量化步长对于所述多个量化器是恒定的。
42.根据权利要求39所述的装置,其中所述多个量化器中的量化器的数目是二,且所述多个量化器包括
第一量化器,其量化为零以及量化步长的偶数倍,以及
第二量化器,其量化为零以及所述量化步长的奇数倍。
43.根据权利要求42所述的装置,被配置为针对状态值0和1选择所述第一量化器,且针对状态值2和3选择所述第二量化器。
44.根据权利要求30所述的装置,被配置为
通过取决于以下选择上下文,使用上下文自适应性熵编码对用于当前变换系数的有效位标志进行编码:
所述块内部的所述当前变换系数的系数位置。
45.根据权利要求30所述的装置,被配置为
通过以下操作,使用上下文自适应性熵编码对用于当前变换系数的有效位标志进行编码:
针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合,基于在所述当前变换系数的所述有效位标志之前编码的标志的集合,来确定局部活动,以及
取决于所述局部活动选择上下文。
46.根据权利要求45所述的装置,被配置为
在一个第一遍次中,顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行编码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。
47.根据权利要求36所述的装置,被配置为
通过以下操作,利用状态转换来执行从所述多个量化器中选择所述相应量化器的操作:
唯一地基于所述状态转换针对所述相应变换系数假设的状态,从所述多个量化器中选择所述相应量化器,
取决于所述相应变换系数的所述量化索引的所述奇偶校验,针对在扫描次序中居后的变换系数更新所述状态转换的状态,
沿所述扫描次序执行所述至少一个第一遍次,以及
通过取决于以下选择上下文,使用上下文自适应性熵编码,对用于当前变换系数的有效位标志进行编码:
所述状态转换针对所述当前变换系数假设的状态。
48.根据权利要求47所述的装置,被配置为
通过取决于所述状态转换针对所述当前变换系数假设的状态选择包括所述上下文的上下文集合,使用上下文自适应性熵编码对用于所述当前变换系数的所述有效位标志进行编码,且取决于围绕所述当前变换系数的局部活动或者所述当前变换系数的系数位置,从所述上下文集合中选择所述上下文。
49.根据权利要求48所述的装置,被配置为针对状态0和1选择第一上下文集合,针对状态2选择第二上下文集合,以及针对状态3选择第三上下文集合。
50.根据权利要求30所述的装置,被配置为
通过取决于以下选择上下文,使用上下文自适应性熵编码对用于当前变换系数的奇偶校验标志进行编码:
所述当前变换系数的系数位置。
51.根据权利要求30所述的装置,被配置为
通过以下操作,使用上下文自适应性熵编码,对用于当前变换系数的奇偶校验标志进行编码:
基于针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合而在所述当前变换系数的所述奇偶校验标志之前解码的标志的集合,确定局部活动,和/或确定围绕所述当前变换系数的所述局部模板内的变换系数的数目,所述当前变换系数的重构层级不为零,以及
取决于所述局部活动和/或变换系数的所述数目选择上下文。
52.根据权利要求51所述的装置,被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。
53.根据权利要求51所述的装置,被配置为
在一个第一遍次中,顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行编码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相应相邻变换系数的集合的每个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。
54.根据权利要求30所述的装置,被配置为
通过取决于以下选择上下文,使用上下文自适应性熵编码对用于当前变换系数的第一大小程度标志进行编码:
所述当前变换系数的系数位置。
55.根据权利要求30所述的装置,被配置为
通过以下操作,使用上下文自适应性熵编码,对用于当前变换系数的第一大小程度标志进行编码:
基于针对在围绕所述当前变换系数的局部模板内的相邻变换系数的集合而在所述当前变换系数的所述第一大小程度标志之前经解码的标志的集合,确定局部活动,和/或确定围绕所述当前变换系数的所述局部模板内的变换系数的数目,所述当前变换系数的重构层级不为零,以及
取决于所述局部活动和/或变换系数的所述数目选择上下文。
56.根据权利要求55所述的装置,被配置为取决于所述局部活动与变换系数的所述数目之间的差来选择所述上下文。
57.根据权利要求55所述的装置,被配置为
在一个第一遍次中,顺序地对有效位标志、奇偶校验标志以及第一大小程度标志进行编码,以使得所述标志的集合包括针对所述相邻变换系数的集合的有效位标志、奇偶校验标志和第一大小程度标志,且被配置为基于所述相邻变换系数的集合的每一个相邻变换系数的相应加数的总和来计算所述局部活动,每个相应加数是基于所述相应相邻变换系数的有效位标志、奇偶校验标志以及第一大小程度标志。
58.根据权利要求30所述的装置,被配置为使用哥伦布-莱斯码以及使用莱斯参数,对用于当前变换系数的量化索引余数进行编码,所述莱斯参数取决于用于围绕所述当前变换系数的局部模板内的相邻变换系数的集合中的每一个相邻变换系数的相应加数的总和,每个加数取决于相应相邻变换系数的量化索引或者重构层级。
59.一种用于对块(10)的变换系数(12)进行解码的方法,所述方法包括:
在扫描所述变换系数的至少一个第一遍次(20)中,
使用上下文自适应性熵解码,对用于所述变换系数的有效位标志进行解码,所述有效位标志中的每一个针对相应变换系数指示所述相应变换系数的量化索引是否为零,
对用于所述变换系数的奇偶校验标志进行解码,所述奇偶校验标志中的每一个针对相应变换系数指示所述相应变换系数的奇偶校验;以及
确定用于每个变换系数的相应的大小程度标志,每个相应的大小程度标志指示该变换系数的量化索引的绝对值是否大于与所述相应的大小程度标志对应的值,其中确定用于每个变换系数的相应的大小程度标志包括:
使用上下文自适应性熵解码来解码其量化索引不为零的每个变换系数的相应第一大小程度标志,并且将其量化索引为零的每个变换系数的相应第一大小程度标志设置为零,以及
使用上下文自适应性熵解码对其第一大小程度标志等于一的每个变换系数的相应第二大小程度标志进行解码,并且将其第一大小程度标志为零的每个变换系数的相应第二大小程度标志设置为零;
并且在至少一个进一步遍次(26, 27)中,
使用等机率熵解码来解码其大小程度标志均等于一的每个变换系数的相应量化索引余数,并将其大小程度标志均不等于一的每个变换系数的相应量化索引余数设置为零;以及
针对其量化索引不为零的每个变换系数,使用等机率熵解码来解码该变换系数的量化索引的相应符号。
60.一种用于对块的变换系数进行编码的方法,所述方法包括:
在扫描所述变换系数的至少一个第一遍次中,
使用上下文自适应性熵编码,对用于变换系数的有效位标志进行编码,所述有效位标志中的每一个针对相应变换系数指示相应变换系数的量化索引是否为零,
对用于所述变换系数的奇偶校验标志进行编码,所述奇偶校验标志中的每一个针对相应变换系数指示所述相应变换系数的奇偶校验,
确定用于每个变换系数的相应的大小程度标志,每个相应的大小程度标志指示该变换系数的量化索引的绝对值是否大于与所述相应的大小程度标志对应的值;
使用上下文自适应性熵编码来编码其量化索引不为零的每个变换系数的相应第一大小程度标志,并且将其量化索引为零的每个变换系数的相应第一大小程度标志设置为零,以及
使用上下文自适应性熵编码对其第一大小程度标志等于一的每个变换系数的相应第二大小程度标志进行编码,并且将其第一大小程度标志为零的每个变换系数的相应第二大小程度标志设置为零;
并且在至少一个进一步遍次中,
使用等机率熵编码来编码其大小程度标志均等于一的每个变换系数的相应量化索引余数,并将其大小程度标志均不等于一的每个变换系数的相应量化索引余数设置为零;以及
针对其量化索引不为零的每个变换系数,使用等机率熵编码来编码该变换系数的量化索引的相应符号。
61.一种计算机可读介质,其上存储有计算机程序,所述计算机程序能在计算机上被执行以实施根据权利要求59或60所述的方法。
CN201980057331.XA 2018-07-02 2019-07-01 对块的变换系数进行解码或编码的装置和方法 Active CN112655209B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18181293 2018-07-02
EP18181293.4 2018-07-02
PCT/EP2019/067575 WO2020007785A1 (en) 2018-07-02 2019-07-01 Entropy coding of transform coefficients suitable for dependent scalar quantization

Publications (2)

Publication Number Publication Date
CN112655209A CN112655209A (zh) 2021-04-13
CN112655209B true CN112655209B (zh) 2024-03-29

Family

ID=62845994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980057331.XA Active CN112655209B (zh) 2018-07-02 2019-07-01 对块的变换系数进行解码或编码的装置和方法

Country Status (7)

Country Link
US (2) US11611750B2 (zh)
EP (1) EP3818703A1 (zh)
JP (2) JP7127160B2 (zh)
KR (1) KR102533654B1 (zh)
CN (1) CN112655209B (zh)
TW (2) TWI810707B (zh)
WO (1) WO2020007785A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405650B2 (en) 2018-08-22 2022-08-02 Hfi Innovation Inc. Method and apparatus of transform coefficient coding
BR122021008876B1 (pt) 2018-09-11 2021-12-21 Lg Electronics Inc Método de codificação residual e dispositivo para o mesmo
KR102448535B1 (ko) * 2018-09-20 2022-09-28 엘지전자 주식회사 변환 계수 레벨 코딩 방법 및 그 장치
CN116320397A (zh) 2018-09-21 2023-06-23 Oppo广东移动通信有限公司 视频信号编码/解码方法以及用于所述方法的设备
CN113366839B (zh) * 2019-01-31 2024-01-12 北京字节跳动网络技术有限公司 视频编解码中的细化量化步骤
US20230019471A1 (en) * 2020-02-25 2023-01-19 Lg Electronics Inc. Image decoding method related to residual coding, and device therefor
CN113497936A (zh) * 2020-04-08 2021-10-12 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器以及存储介质
CN116848842A (zh) * 2021-02-22 2023-10-03 创峰科技 依赖性量化以及残差编码方法
EP4354861A1 (en) * 2021-06-11 2024-04-17 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Video decoding and coding method, device and storage medium
WO2023132660A1 (ko) * 2022-01-05 2023-07-13 주식회사 윌러스표준기술연구소 종속 양자화를 이용한 비디오 신호 처리 방법 및 이를 위한 장치
WO2024013109A1 (en) * 2022-07-11 2024-01-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder and methods for coding a data structure

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4189748A (en) * 1977-08-23 1980-02-19 Northrop Corporation Video bandwidth reduction system using a two-dimensional transformation, and an adaptive filter with error correction
CN104205646A (zh) * 2012-01-20 2014-12-10 弗兰霍菲尔运输应用研究公司 变换系数编码
CN107925763A (zh) * 2015-12-23 2018-04-17 华为技术有限公司 等级分割中的块级别变换选择和隐式信令的编码变换方法和设备
CN108055541A (zh) * 2011-11-07 2018-05-18 杜比国际公司 用于编码和解码图像的方法、编码和解码设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120254B2 (en) 2000-10-30 2006-10-10 Geocodex Llc Cryptographic system and method for geolocking and securing digital information
US20110041148A1 (en) 2009-08-13 2011-02-17 At&T Intellectual Property I, L.P. Blackouts of pay per view multimedia content
US20120230396A1 (en) * 2011-03-11 2012-09-13 Mitsubishi Electric Research Laboratories, Inc. Method for Embedding Decoding Information in Quantized Transform Coefficients
EP2775713B1 (en) 2011-11-04 2021-06-16 Sharp Kabushiki Kaisha Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
US9313498B2 (en) * 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
US9294779B2 (en) * 2012-06-15 2016-03-22 Blackberry Limited Multi-bit information hiding using overlapping subsets
EP2680580B1 (en) * 2012-06-28 2016-06-01 BlackBerry Limited Reduced worst-case context-coded bins in video compression with parity hiding
US9088769B2 (en) * 2012-06-28 2015-07-21 Blackberry Limited Reduced worst-case context-coded bins in video compression with parity hiding
US20140133574A1 (en) * 2012-11-13 2014-05-15 Mediatek Inc. Method and Apparatus for Sign Data Hiding of Video and Image Data
US9014499B2 (en) * 2013-09-25 2015-04-21 Mitsubishi Electric Research Laboratories, Inc. Distributed source coding using prediction modes obtained from side information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4189748A (en) * 1977-08-23 1980-02-19 Northrop Corporation Video bandwidth reduction system using a two-dimensional transformation, and an adaptive filter with error correction
CN108055541A (zh) * 2011-11-07 2018-05-18 杜比国际公司 用于编码和解码图像的方法、编码和解码设备
CN104205646A (zh) * 2012-01-20 2014-12-10 弗兰霍菲尔运输应用研究公司 变换系数编码
CN107925763A (zh) * 2015-12-23 2018-04-17 华为技术有限公司 等级分割中的块级别变换选择和隐式信令的编码变换方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HEVC熵编码算法优化;徐飞等;《计算机与现代化》;20131218(第12期);全文 *

Also Published As

Publication number Publication date
JP2022169656A (ja) 2022-11-09
KR20230070064A (ko) 2023-05-19
EP3818703A1 (en) 2021-05-12
TW202007169A (zh) 2020-02-01
WO2020007785A1 (en) 2020-01-09
TW202234892A (zh) 2022-09-01
TWI748201B (zh) 2021-12-01
CN112655209A (zh) 2021-04-13
KR102533654B1 (ko) 2023-05-18
TWI810707B (zh) 2023-08-01
US20210136385A1 (en) 2021-05-06
US20230199188A1 (en) 2023-06-22
US11611750B2 (en) 2023-03-21
JP2021530155A (ja) 2021-11-04
KR20210025106A (ko) 2021-03-08
JP7127160B2 (ja) 2022-08-29

Similar Documents

Publication Publication Date Title
CN112655209B (zh) 对块的变换系数进行解码或编码的装置和方法
TWI813126B (zh) 相依量化技術
KR102613155B1 (ko) 종속 스칼라 양자화를 사용하거나 이와 조합하는 데에적합한 변환 계수의 효율적인 코딩
KR102662646B1 (ko) 종속 스칼라 양자화에 적합한 변환 계수의 엔트로피 코딩
KR20240059000A (ko) 종속 스칼라 양자화에 적합한 변환 계수의 엔트로피 코딩

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant