CN107517384B - 解码器、编码器、解码方法、编码方法以及存储介质 - Google Patents

解码器、编码器、解码方法、编码方法以及存储介质 Download PDF

Info

Publication number
CN107517384B
CN107517384B CN201710977462.2A CN201710977462A CN107517384B CN 107517384 B CN107517384 B CN 107517384B CN 201710977462 A CN201710977462 A CN 201710977462A CN 107517384 B CN107517384 B CN 107517384B
Authority
CN
China
Prior art keywords
bit
symbol
binary
sequence
buffer
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
CN201710977462.2A
Other languages
English (en)
Other versions
CN107517384A (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.)
GE Video Compression LLC
Original Assignee
GE Video Compression LLC
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46319135&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN107517384(B) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by GE Video Compression LLC filed Critical GE Video Compression LLC
Publication of CN107517384A publication Critical patent/CN107517384A/zh
Application granted granted Critical
Publication of CN107517384B publication Critical patent/CN107517384B/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • H03M7/4075Golomb codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [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/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/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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

本发明涉及解码器、编码器、解码方法、编码方法以及存储介质。描述了一种解码器,用于解码由媒体数据编码而成的数据流。解码器包括:模式开关,被配置为根据数据流来激活低复杂度模式或高效率模式;熵解码引擎,被配置为使用多个熵解码方案中所选择的一个,通过熵解码从数据流中检索符号序列中的每个符号;去符号化器,被配置为将该符号序列去符号化,以便获得语法元素序列;重构器,被配置为根据该语法元素序列,重构媒体数据,其中,根据所述低复杂度模式和所述高效率模式中激活的一个,来进行上述选择。

Description

解码器、编码器、解码方法、编码方法以及存储介质
本申请国际申请号为PCT/EP2012/061615、进入国家阶段日为2014年2月14日、发明名称为“支持模式切换的熵编码”的国际申请的中国国家阶段申请的分案申请,该中国国家阶段申请的申请号为201280039922.2、申请日为2012年6月18日、发明名称为“支持模式切换的熵编码”。
技术领域
本发明涉及一种熵编码概念,用于对诸如视频或音频数据这样的媒体内容进行编码。
背景技术
在本技术领域中已知很多音频和视频音频编解码器。通常,这些编解码器减少所需要的数据量,以便表示媒体内容,例如,视频或音频,即,这些编解码器压缩数据。然而,在这些编解码器上强加的要求不限于实现高压缩效率。确切地说,编解码器常常专用于某些应用任务。因此,在音频领域中,具有专用于语音编码的音频编解码器,同时具有专用于编码音乐的其他编解码器。而且,在某些应用中,编码延迟至关重要,因此,一些编解码器专用于低延迟。除此之外,大部分这些编解码器可用于不同等级的复杂度/有效性。即,这些水平中的一些水平用于更低的编码复杂度,以更低的编码效率为代价。例如,H.264视频编码标准提供基线规范和主要规范。首先,在激活/去激活某些编码选项/小工具时,这些编码规范彼此不同,例如,在音频编码领域中可用/没有SBR以及在视频编码领域中可用/没有B帧。除此之外,这些媒体编解码器的很大一部分复杂性与语法元素的熵编码有关。通常,VLC熵编码方案常常不如算法编码方案复杂,而算法编码方案现实了更好的编码效率。因此,在H.264标准中,仅仅在主要规范中(而非在基线规范中),可利用上下文自适应二元算法编码(CABAC)。明显,符合基线规范的解码器可被配置为不如符合主要规范的解码器复杂。这同样适用于编码器。由于包括这种解码器和/或编码器的手持式装置具有有限的能量可用性,所以关于更低的复杂度方面,基线规范优于主要规范。不仅由于算法编码方案更复杂,而且由于这些符合主要规范的解码器/编码器必须与符合基线规范的数据流向后兼容,所以符合主要规范的解码器/编码器更复杂。换言之,由于算法编码方案使得复杂度更低的可变长度编码方案增加复杂度,所以复杂度增大。
鉴于以上情况,如果具有允许在一方面的编码复杂度与另一方面的编码效率之间的编解码器的比率具有更有效的可扩展性的编码概念,那么这会较为有利。
发明内容
因此,本发明的一个目标在于,提供这种编码概念。
根据一个实施方式,一种用于解码由媒体数据编码而成的数据流的解码器包括:模式开关,被配置为根据数据流来激活低复杂度模式或高效率模式;熵解码引擎,被配置为使用多个熵解码方案中所选择的一个,通过熵解码从数据流中检索符号序列中的每个符号;去符号化器,被配置为将该符号序列去符号化,以便获得语法元素序列;重构器,被配置为根据该语法元素序列,重构媒体数据,其中,根据低复杂度模式和高效率模式中被激活的一个,来进行选择。
根据另一个实施方式,一种用于解码由媒体数据编码而成的数据流的解码器包括:模式开关,被配置为根据数据流来激活低复杂度模式或高效率模式;去符号化器,被配置为使用可由控制参数控制的映射函数,来将从数据流中获得的符号序列去符号化,以获得具有整数值的语法元素,该映射函数用于将符号序列字的域映射到具有整数值的语法元素的上域(co-domain)中;以及重构器,被配置为根据具有整数值的语法元素,重构媒体数据,其中,该去符号化器被配置为进行去符号化,以在激活高效率模式的情况下,使得控制参数以第一速率根据数据流而变化,并且在激活低复杂度模式的情况下该控制参数恒定而与数据流无关,或者以比第一速率更低的第二速率根据数据流而改变。
附图说明
下面参照示图,描述本申请的优选的实施方式,在这些示图中,
图1示出了根据一个实施方式的编码器的方框图;
图2A到2C示意性示出了样品阵列的不同细分,例如,将图片细分成块;
图3示出了根据一个实施方式的解码器的方框图;
图4更详细地示出了根据一个实施方式的编码器的方框图;
图5更详细地示出了根据一个实施方式的解码器的方框图;
图6示意性示出了从空间域到谱域的块变换、所产生的变换块及其再变换;
图7示出了根据一个实施方式的编码器的方框图;
图8示出了根据一个实施方式的适用于解码由图7的编码器生成的比特流的解码器的方框图;
图9示出了根据一个实施方式示出带有多路复用局部比特流的数据包的示意图;
图10示出了根据另一个实施方式示出带有使用尺寸固定的分段的可选分区的数据包的示意图,该示意图;
图11示出了根据使用局部比特流交错的一个实施方式的编码器的方框图;
图12示出了根据一个实施方式说明在图11的编码器侧的码字缓冲器的状态的实例的示意图;
图13示出了根据使用局部比特流交错的一个实施方式的解码器的方框图;
图14示出了根据使用利用单组码字的码字交错的一个实施方式的解码器的方框图;
图15示出了根据使用长度固定的比特序列的交错的一个实施方式的编码器的方框图;
图16示出了根据一个实施方式说明在图15的编码器侧的全局比特缓冲器的状态的实例的示意图;
图17示出了根据使用长度固定的比特序列的交错的一个实施方式的解码器的方框图;
图18示出了根据一个实施方式的支持模式切换的解码器;
图19示出了根据另一个实施方式的支持模式切换的解码器;
图20示出了根据一个实施方式的适合图18的解码器的编码器;
图21示出了根据一个实施方式的适合图19的解码器的编码器;以及
图22示出了pStateCtx和fullCtxState/256的映射。
要注意的是,在描述示图期间,在这些示图的几幅图中出现的部件在这些示图的每幅图中使用相同的参考符号表示,并且避免在功能上重复描述这些部件,以便避免不必要的重复。然而,在一幅示图中提供的功能和描述也适用于其他示图,除非明确表示相反。
具体实施方式
下面,首先相对于图1到17描述通用视频编码概念的实施方式。图1到6涉及在语法水平上进行操作的视频编解码器的一部分。以下图8到17涉及代码部分的实施方式,该代码部分涉及将语法元素流转换成数据流,反之亦然。然后,通过在图1到17中概述的一般概念的可能实现方式的形式,描述本发明的特定方面和实施方式。然而,应提前注意的是,本发明的实施方式的大部分方面不限于视频编码。在下述很多细节上,这同样适用。
图1示出了可实现本申请的方面的编码器10的一个实例。
编码器将信息样本阵列20编码成数据流。该信息样本阵列可表示任何类型的空间取样的信息信号。例如,信息样本20可为静止图片或视频图片。因此,信息样本可与亮度值、颜色值、照度值、色度值等对应。然而,在样品阵列20为由例如光传感器的时间等生成的深度图的情况下,信息样品还可为深度值。
编码器10为基于块的编码器。即,编码器10以块40为单位,将样品阵列20编码成数据流30。以块40为单位进行编码不一定表示编码器10完全独立于彼此编码这些块40。确切地说,编码器10可使用先前编码的块的重构,以便外插或帧内预测剩余的块,并且可使用块的粒度,用于设置编码参数,即,用于设置与各个块对应的每个阵列区域编码的方式。
而且,编码器10为变换编码器。即,编码器10使用变换来将块40编码,以便将在每个块40内的信息样本从空间域传递到谱域内。可使用二维变换(例如,FFT的DCT等)。优选地,块40具有二次形状或矩形。
如图1中所示,将样品阵列20细分成块40,仅仅用于说明的目的。图1示出了细分成正方形或矩形块40的规则二维设置的样品阵列20,这些正方形或矩形块通过非重叠的方式彼此邻接。可预先确定块40的尺寸。即,编码器10可不将有关在数据流30内的块40的块尺寸的信息传递给解码侧。例如,解码器可预期预定的块尺寸。
然而,能够具有几种备选方案。例如,块可彼此重叠。然而,可在一种种程度上限制重叠,以使得每个块具有与任何相邻的块不重叠的部分,或者以使得块的每个样品最多与在相邻的块之中沿着预定的方向与当前块并列设置的一个块重叠。后一种情况表示左右相邻的块可与当前块重叠,以便完全覆盖(cover)当前块,但是不彼此叠加(overlay),并且这同样适用于在垂直和对角线方向的相邻的块。
作为另一个备选方案,样品阵列20细分成块40,编码器10可使细分适合于样品阵列20的内容,通过比特流30将与所使用的细分相关的细分信息传递给解码器。
图2A到2C示出了样品阵列20细分成块40的不同实例。图2A示出了样品阵列20基于四叉树细分成不同尺寸的块40,代表性块由尺寸增大的40a、40b、40c以及40d表示。根据图2A的细分,首先将样品阵列20分成树块40d的规则的二维设置,反过来,树块具有与其相关的单独细分信息,根据该信息,可根据四叉树结构进一步细分或不细分某个树块40d。根据四叉树结构,位于块40d左边的树块作为例证细分成更小的块。编码器10可为在图2A中由实线和虚线表示的每个块进行一个二维变换。换言之,编码器10能够以块细分为单位变换阵列20。
可使用更普通的基于多树的细分,代替基于四叉树的细分,并且每个层次等级的子节点的数量在不同的层次等级之间可不同。
图2B示出了细分的另一个实例。根据图2B,首先将样品阵列20分成宏块40b,这些宏块通过非重叠的相互邻接的方式设置在规则的二维设置中,其中,每个宏块40b使细分信息与其相关,根据该细分信息,可不细分宏块,或者如果进行了细分,那么通过规则的二维方式将宏块细分成尺寸相等的子块,以便为不同的宏块实现不同的细分粒度。结果,在不同尺寸的块40内细分样品阵列20,不同尺寸的代表由40a、40b以及40a’表示。与在图2A中一样,编码器10在每个块上进行二维变换,这些块在图2B中由实线和虚线表示。稍后讨论图2C。
图3示出了能够将由编码器10生成的数据流30解码的解码器50,以重构样品阵列20的经重构的版本60。解码器50从数据流30中为每个块40提取变换系数块,并且通过在每个变换系数块上执行逆变换,来重构经重构的版本60。
编码器10和解码器50可被配置为执行熵编码/解码,以便分别将有关变换系数块的信息插入数据流内并且从该数据流中提取该信息。稍后描述在这方面的细节。应注意的是,数据流30不一定包括用于样品阵列20的所有块40的有关变换系数块的信息。确切地说,块40的子集可通过另一种方式编码成比特流30。例如,编码器10可决定抑制插入用于块40中的某个块的变换系数块,而是在比特流30内插入替换的编码参数,这些编码参数能够允许解码器50预测或在经重构的版本60内填充相应的块。例如,编码器10可进行纹理分析,以便在样品阵列20内定位由解码器通过纹理合成的方式在解码器侧填充的样品阵列并且在比特流内表明这一点。
如以下示图中所述,变换系数块不一定表示样品阵列20的相应块40的最初信息样品的谱域表征。确切地说,这种变换系数块可表示各个块40的预测残差的谱域表征。图4示出了这种编码器的一个实施方式。图4的编码器包括变换级100、熵编码器102、逆变换级104、预测器106、减法器108以及加法器110。减法器108、变换级100以及熵编码器102在图4的编码器的输入112和输出114之间按照提及的顺序串联连接。逆变换级104、加法器110以及预测器106在变换级100的输出与减法器108的反相输入之间按照提及的顺序连接,预测器106的输出还与加法器110的另一个输入连接。
图4的编码器为预测性基于变换的块编码器。即,根据相同样品阵列20的先前编码并且重构的部分中或者从显示时间内在当前样品阵列20之前或之后的先前编码和重构的其他样品阵列,来预测进入输入112的样品阵列20的块。由预测器106进行该预测。减法器108从这种最初的块中减去预测,并且变换级100在预测残差上进行二维变换。二维变换本身或在变换级100内部的后续措施可造成在变换系数块内量化变换系数。量化的变换系数块例如由熵编码在熵编码器102内进行无损编码,在输出114处输出所产生的数据流。逆变换级104重构量化残差,并且加法器110反过来使经重构的残差与相应的预测相结合,以便获得经重构的信息样品,根据这些信息样品,预测器106可预测上述当前编码的预测块。预测器106可使用不同的预测模式,例如,帧内预测模式以及帧间预测模式,来预测块,并且将预测参数转发给熵编码器102,用于插入数据流内。对于每个帧间预测的预测块,通过熵编码器102将各个运动数据插入比特流内,以便能够允许解码侧重新进行预测。用于图片的预测块的运动数据可涉及包括语法元素的语法部分,该语法元素表示相对于运动向量预测器差分地(differentially)地编码用于当前的预测块的运动向量的运动向量差值,例如,通过规定的方法从相邻的已经编码的预测块的运动向量中获得该预测器。
即,根据图4的实施方式,变换系数块表示样品阵列的残差的频谱表征,而非其实际的信息样品。即,根据图4的实施方式,语法元素序列可进入熵编码器102内,以被熵编码成数据流114。这语法元素序列可包括用于帧间预测块的运动向量差值语法元素、涉及表示重要变换系数水平的位置的重要图(significance map)的语法元素以及为变换块定义重要变换系数水平本身的语法元素。
应注意的是,图4的实施方式具有几个可选方式,在说明书的介绍部分内已经描述了其中的一些可选方式,该描述以此并入图4的描述中。
图5示出了能够将由图4的编码器生成的数据流解码的解码器。图5的解码器包括熵解码器150、逆变换级152、加法器154以及预测器156。熵解码器150、逆变换级152以及加法器154按照上述顺序在图5的解码器的输入158与输出160之间串联连接。熵解码器150的另一个输出与预测器156连接,该预测器反过来在加法器154的输出与其另一个的输入之间连接。熵解码器150从在输入158处进入图5的解码器的数据流中提取变换系数块,其中,在级152中,将逆变换应用于变换系数块中,以便获得残差信号。残差信号在加法器154处与预测器156进行的预测相结合,以便在输出160处获得样品阵列的经重构的版本的重构块。根据经重构的版本,预测器156生成预测,从而在编码器侧重建由预测器106进行的预测。为了获得与在编码器侧使用的预测相同的预测,预测器156使用预测参数,熵解码器150还在输入158处从数据流中获得这些预测参数。
应注意的是,在上述实施方式中,用于进行残差预测和变换的空间粒度不必彼此相等,这在图2C中进行了显示。该示图示出了细分由实线表示的预测粒度以及由虚线表示的残差粒度的预测块。可见,可由编码器选择彼此独立的细分。更确切地说,数据流语法可允许定义与预测细分独立的残差细分。或者,残差细分可为预测细分的拓展,以便每个残差块等同于预测块或者为预测块的合适的子集。这在图2A和图2B中进行了显示,例如,在这些图中,再次显示了由实线表示的预测粒度以及由虚线表示的残差粒度。即,在图2A-2C中,具有与其相关的参考符号的所有块为残差块,对这些残差块进行一次二维变换,而包含虚线块40a的更大的实线块例如为预测块,为这些预测块单独地进行预测参数设置。
以上实施方式的共同之处在于,(残余或最初)样品的块要在编码器侧变换成变换系数块,该变换系数块反过来要在解码器侧逆变换成样品的重构块。这在图6中进行了显示。图6示出了样品块200。在图6的情况下,该块200例如为方形,并且在尺寸上为4x4样品202。样品202沿着水平方向x和垂直方向y均匀地设置。通过上述二维变换T,块200变换成谱域,即,变换成变换系数206的块204,变换块204与块200的尺寸相同。即,变换块204在水平方向和垂直方向具有的变换系数206与块200具有的样品一样多。然而,由于变换T为谱变换,所以变换系数206在变换块204内的位置不与空间位置对应,而是与块200的内容的光谱分量对应。具体地,变换块204的水平轴与一个轴(光谱频率在水平方向沿着该轴单调递增)对应,而垂直轴与一个轴(光谱频率在垂直方向沿着该轴单调递增)对应,其中,DC分量变换系数位于块204的角落内(在此处例如,为左上角),以便在右下角定位在水平和垂直方向与最高频率对应的变换系数206。忽略空间方向,某个变换系数206所属的空间频率通常从左上角向右下角增大。通过逆变换T-1,变换块204从谱域中重新传递到空间域中,以便重新获得块200的副本208。在变换期间未造成量化/损失的情况下,重构较为完美。
如上所述,从图6中可见,块200的更大块尺寸增大所产生的谱表示204的频谱分辨率。另一方面,量化噪声常常散布在整个块208上,因此,由于量化噪声,所以在块200内的突出的并且非常部分化的对象常常造成重新变换的块偏离最初块200。然而,使用更大块的主要优点在于,与更小的块相比,在一方面的重要(即,非零(量化))变换系数的数量(即,等级)与另一反面的不重要变换系数的数量之间的比率在更大的块内可减小,从而能够具有更好的编码效率。换言之,通常在变换块204上稀疏地分布重要的变换系数水平,即,未量化为零的变换系数。由于这一点,根据下面更详细地描述的实施方式,通过重要图的方式,在数据流内用信号表示重要变换系数水平的位置。与其分开地,在量化变换系数的情况下,在数据流内传输重要变换系数的值(即,变换系数水平)。
因此,上述所有编码器和解码器被配置为处理语法元素的某个语法。即,假设通过规定的方式在数据流内依次设置上述语法元素(例如,变换系数水平)、涉及变换块的重要图的语法元素、涉及帧间预测块的运动数据语法元素等。例如,可通过伪代码的形式表示这种规定的方式,与在H.264标准或其他音频/视频编解码器中进行的一样。
换言之,根据规定某些语法元素类型、其语义学以及在其间的顺序的预先定义的语法结构,以上描述主要处理媒体数据(在此处作为例证为音频数据)到语法元素序列的转换。如下所述,图4和5的熵编码器和解码器可被配置为进行操作并且可构成。熵编码器和解码器负责在语法元素序列和数据流(即,符号或比特流)之间进行转换。
在图7中示出了根据一个实施方式的熵编码器。编码器将一连串语法元素301无损地转换成由两个或多个局部比特流312构成的组。
在本发明的一个优选的实施方式中,每个语法元素301与由一个或多个类别构成的组中的一个类别相关,即,语法元素类型。例如,类别可规定语法元素的类型。在混合视频编码的背景下,单独的类别可与宏块编码方式、块编码方式、参考图片索引、运动向量差值、细分标记、编码块标记、量化参数、变换系数水平等相关。在其他应用领域(例如,音频、语音、文本、文档或通用数据编码)中,语法元素能够具有不同的分类。
通常,每个语法元素可采用一组有限或可数无限的值中的一个值,其中,对于不同的语法元素类别,这组可能的语法元素值可不同。例如,具有二元语法元素以及具有整数值的语法元素。
为了降低编码和解码算法的复杂度,并且为了允许不同的语法元素和语法元素类别具有通用的编码和解码设计,语法元素301转换成二元判定的有序集合,并且然后,这些二元判定由简单的二元编码算法处理。因此,二值化器302通过双射(bijectively)的方式将每个语法元素301的值映射到一系列(或串或字)二进制位(bin)303中。这系列二进制位303表示一组有序的二元判定。每个二进制位303或二元判定可采用由两个值构成的组中的一个值,例如,值0和1中的一个。对于不同的语法元素类别,二值化方案可不同。一个特定的语法元素类别的二值化方案可取决于这组可能的语法元素值和/或特定类别的语法元素的其他性能。
表1示出了可数无限集的三个实例二值化方案。可数无限集的二值化方案还可用于语法元素值的有限集。尤其对于语法元素值的大有限集,可忽略(由未使用的二进制位序列造成)无效率性,但是这种二值化方案的普遍性在复杂度与存储要求方面提供优点。对于语法元素值的小有限集,通常优选地使二值化方案适应于可能的符号值的数量(在编码效率方面)。
表2示出了8个值的有限集的三个实例二值化方案。通过以二进制位序列的有限集表示无冗余码的方式来修改一些二进制位序列(以及潜在地将二进制位序列重新排序),从可数无限集的通用二值化方案中可获得有限集的二值化方案。例如,通过修改通用一元二值化的语法元素7的二进制位序列(见表1),在表2中产生缩短的一元二值化方案。通过修改通用的指数哥伦布(Exp-Golomb)0阶二值化(见表1)并且通过将二进制位序列重新排序(将符号7的缩短的二进制位序列分配给符号1),在表2中产生0阶的缩短的并且重新排序的指数哥伦布二值化。对于语法元素的有限集,还能够使用非系统化的/非通用的二值化方案,如在表2的最后一列中所例证。
表1:可数无限集(或大有限集)的二值化实例
Figure GDA0002398175490000111
Figure GDA0002398175490000121
表2:有限集的二值化实例
Figure GDA0002398175490000122
按照先后顺序,将由二值化器302产生的二进制位序列的每个二进制位303馈送到参数分配器304内。参数分配器将由一个或多个参数构成的一组分配给每个二进制位303,并且输出带有相关的一组参数305的二进制位。在编码器和解码器处通过完全相同的方式确定这组参数。这组参数可由一个或多个以下参数构成。
具体的,参数分配器304可被配置为将上下文(context)模型分配给当前的二进制位303。例如,参数分配器304可为当前的二进制位303选择一个可用的上下文索引。当前的二进制位303的可用的一组上下文可取决于二进制位的类型,该类型反过来可由语法元素301的类型/类别以及当前的二进制位303在后面的二值化内的位置限定,当前的二进制位303为该类型/类别的二值化的一部分。在可用的上下文组之中的上下文选择可取决于先前的二进制位以及与这些二进制位相关的语法元素。这些上下文中的每个具有与其相关的概率模型,即,为当前的二进制位的两个可能的二进制位值中的一个概率的估计值的测量。概率模型可尤其为当前的二进制位的小概率或大概率二进制位值的概率的估计值的测量,概率模型另外由规定估计这两个可能的二进制位值中的哪一个表示当前的二进制位303的小概率或大概率二进制位值的标识符限定。在仅仅一个上下文可用于当前的二进制位的情况下,可省略(be left away)上下文选择。如下面更详细地所述,参数分配器304还可执行概率模型适应,以便使与各种上下文相关的概率模型适合于属于各个上下文的各个二进制位的实际二进制位统计。
还如下面更详细地所述,参数分配器304可根据激活的高效率(HE)模式或低复杂度(LC)模式不同地进行操作。如下所述,在这两种模式中,概率模型使当前的二进制位303与二进制位编码器310中的任一个相关,但是参数分配器304的操作模式常常在LC模式中不太复杂,然而,由于参数分配器304促使单独的二进制位303与单独的编码器310的相关性更精确地适合于二进制位统计,所以编码效率在高效率模式中增大,从而相对于LC模式优化熵。
将具有一组相关的参数305的每个二进制位馈送到二进制位缓冲选择器306中,每个二进制位为参数分配器304的输出。二进制位缓冲选择器306根据输入二进制位值以及相关参数305潜在地修改输入二进制位305的值,并且将(带有潜在修改的值的)的输出二进制位307馈送到两个或多个二进制位缓冲器308中的一个内。根据输入二进制位305的值和/或相关参数305的值,确定二进制位缓冲器308,将输出二进制位307发送给该缓冲器。
在本发明的一个优选的实施方式中,二进制位缓冲选择器306未修改二进制位的值,即,输出二进制位307始终具有与输入二进制位305相同的值。在本发明的另一个优选的实施方式中,二进制位缓冲选择器306根据输入二进制位值305和对当前二进制位的两个可能的二进制位值中的一个的概率估计值的相关测量来确定输出二进制位值307。在本发明的一个优选的实施方式中,如果对当前二进制位的两个可能的二进制位值中的一个的概率的测量值小于(或小于或等于)特定的阈值,那么将输出二进制位值307设为等于输入二进制位值305;如果对当前二进制位的两个可能的二进制位值中的一个的概率的测量值大于或等于(或大于)特定的阈值,那么修改输出二进制位值307(即,设为与输入二进制位值相反)。在本发明的另一个优选的实施方式中,如果对当前二进制位的两个可能的二进制位值中的一个的概率的测量值大于(或大于或等于)特定的阈值,那么将输出二进制位值307设为等于输入二进制位值305;如果对当前二进制位的两个可能的二进制位值中的一个的概率的测量值小于或等于(或小于)特定的阈值,那么修改输出二进制位值307(即,设为与输入二进制位值相反)。在本发明的一个优选的实施方式中,阈值与用于两个可能的二进制位值的估计的概率的值0.5对应。
在本发明的另一个优选的实施方式中,二进制位缓冲选择器306根据输入二进制位值305和规定估计这两个可能的二进制位值中的哪一个表示当前的二进制位的小概率或大概率二进制位值的相关标识符来确定输出二进制位值307。在本发明的一个优选的实施方式中,如果标识符规定这两个可能的二进制位值中的第一个表示当前二进制位的小概率(或大概率)二进制位值,那么将输出二进制位值307设为等于输入二进制位值305,并且如果标识符规定这两个可能的二进制位值中的第二个表示当前二进制位的小概率(或大概率)二进制位值,那么修改输出二进制位值307(即,设为与输入二进制位值相反)。
在本发明的一个优选的实施方式中,二进制位缓冲选择器306根据对当前二进制位的两个可能的二进制位值中的一个的概率估计值的相关测量来确定二进制位缓冲器308,将输出二进制位307发送给该二进制位缓冲器。在本发明的一个优选的实施方式中,对这两个可能的二进制位值中的一个的概率估计值的测量的这组可能值是有限的,并且二进制位缓冲选择器306包含一个表格,该表格使恰好一个二进制位缓冲器308与用于这两个可能的二进制位值中的一个的概率估计值的每个可能值相关,其中,对这两个可能的二进制位值中的一个的概率估计值的测量的不同值可与相同的二进制位缓冲器308相关。在本发明的另一个优选的实施方式中,将对这两个可能的二进制位值中的一个的概率估计值的测量的可能值的范围划分成多个间隔,二进制位缓冲选择器306为对这两个可能的二进制位值中的一个的概率估计值的当前测量确定间隔指数,并且二进制位缓冲选择器306包含一个表格,该表格使恰好一个二进制位缓冲器308与用于间隔指数的每个可能值相关,其中,用于间隔指数的不同值可与相同的二进制位缓冲器308相关。在本发明的一个优选的实施方式中,将输入二进制位305与对这两个可能的二进制位值中的一个的概率估计值的相反测量(相反测量表示概率估计值P和1-P)馈送到相同的二进制位缓冲器308内。在本发明的另一个优选的实施方式中,对当前二进制位的这两个可能的二进制位值中的一个的概率估计值的测量与特定二进制位缓冲器的相关性随着时间适应,例如,以便确保所产生的局部比特流具有相似的比特率。而且,在下面,间隔指数还称为管道指数,而管道指数与细化指数以及表示大概率二进制位值的标记一起表明实际概率模型,即,概率估计值。
在本发明的另一个优选的实施方式中,二进制位缓冲选择器306根据对当前二进制位的小概率或大概率二进制位值的概率估计值的相关测量来确定二进制位缓冲器308,将输出二进制位307发送给该二进制位缓冲器。在本发明的一个优选的实施方式中,对小概率或大概率二进制位值的概率估计值的测量的这组可能值是有限的,并且二进制位缓冲选择器306包含一个表格,该表格使恰好一个二进制位缓冲器308与用于小概率或大概率二进制位值的概率估计值的每个可能值相关,其中对小概率或大概率二进制位值的概率估计值的测量的不同值可与相同的二进制位缓冲器308相关。在本发明的另一个优选的实施方式中,将对小概率或大概率二进制位值的概率估计值的测量的可能值的范围划分成多个间隔,二进制位缓冲选择器306为对小概率或大概率二进制位值的概率估计值的当前测量确定间隔指数,并且二进制位缓冲选择器306包含一个表格,该表格使恰好一个二进制位缓冲器308与用于间隔指数的每个可能值相关,其中,用于间隔指数的不同值可与相同的二进制位缓冲器308相关。在本发明的另一个优选的实施方式中,对当前二进制位的小概率或大概率二进制位值的概率估计值的测量与特定二进制位缓冲器的相关性随着时间适应,例如,以便确保所产生的局部比特流具有相似的比特率。
两个或多个二进制位缓冲器308中的每个与恰好一个二进制位编码器310连接,并且每个二进制位编码器仅仅与一个二进制位缓冲器308连接。每个二进制位编码器310从相关的二进制位缓冲器308中读取二进制位,并且将一系列二进制位309转换成表示一系列二进制位的码字311。二进制位缓冲器308表示先进先出缓冲器;稍后(按照先后顺序)馈送到二进制位缓冲器308内的二进制位在先前(按照先后顺序)馈送到二进制位缓冲器内的二进制位之前未进行编码。将作为特定的二进制位编码器310的输出的码字311写入特定的局部比特流312中。总体编码算法将语法元素301转换成两个或多个局部比特流312,其中,局部比特流的数量等于二进制位缓冲器和二进制位编码器的数量。在本发明的一个优选的实施方式中,二进制位编码器310将可变数量的二进制位309转换成可变数量的位的码字311。本发明的上述和下述实施方式的一个优点在于,二进制位可进行并行编码(例如,对不同组的概率测量),这减少了几个实现方式的处理时间。
本发明的实施方式的另一个优点在于,由二进制位编码器310进行的二进制位编码可特别设计为用于不同的参数305组。具体地,可为不同组的估计概率优化二进制位编码和编码(在编码效率和/或复杂度方面)。另一方面,这允许减少编码/解码复杂度,另一方面,允许提高编码效率。在本发明的一个优选的实施方式中,二进制位编码器310为对当前二进制位的两个可能的二进制位值305中的一个的概率估计值的不同组的测量实现不同的编码算法(即,将二进制位序列映射到码字上)。在本发明的另一个优选的实施方式中,二进制位编码器310为对当前二进制位的小概率或大概率二进制位值的概率估计值的不同组的测量实行不同的编码算法。
在本发明的一个优选的实施方式中,二进制位编码器310或一个或多个二进制位编码器表示在码字311上直接映射输入二进制位309的序列的熵编码器。这种映射可有效地实现,并且不需要复杂的算法编码引擎。码字在二进制位序列上的逆映射(与在解码器中一样)应是唯一的,以便确保将输入序列完美地解码,但是二进制位序列309在码字310上的映射不必是唯一,即,在一个以上的码字序列上可能映射二进制位的一个特定序列。在本发明的一个优选的实施方式中,输入二进制位309的序列在码字310上的映射为双射。在本发明的另一个优选的实施方式中,二进制位编码器310或一个或多个二进制位编码器表示在长度可变的码字310上直接映射输入二进制位309的长度可变的序列的熵编码器。在本发明的一个优选的实施方式中,输出码字表示无冗余码,例如,通用霍夫曼编码或范式哈夫曼编码。
在表3中示出了二进制位序列到无冗余码的双射映射的两个实例。在本发明的另一个优选的实施方式中,输出码字表示适合于错误检测和错误恢复的冗余码。在本发明的另一个优选的实施方式中,输出码字表示适合于将语法元素加密的加密代码。
表3:在二进制位序列与码字之间的映射的实例
Figure GDA0002398175490000171
Figure GDA0002398175490000172
Figure GDA0002398175490000181
在本发明的一个优选的实施方式中,二进制位编码器310或一个或多个二进制位编码器表示在长度固定的码字310上直接映射输入二进制位309的长度可变的序列的熵编码器。在本发明的一个优选的实施方式中,二进制位编码器310或一个或多个二进制位编码器表示在长度可变的码字310上直接映射输入二进制位309的长度固定的序列的熵编码器。
在图8中示出了根据本发明的一个实施方式的解码器。该解码器基本上执行编码器的逆运算,以便从由两个或多个局部比特流324构成的一组中解码语法元素327的(先前编码的)序列。解码器包括两个不同的工序流程:复制编码器的数据流程的数据请求的流程以及表示颠倒编码器数据流程的数据流程。在图8的示图中,虚线箭头表示数据请求流程,而实线箭头表示数据流程。解码器的构件基本上复制编码器的构件,但是实现逆运算。
由发送给二值化器314的新解码的语法元素313触发语法元素的解码。在本发明的一个优选的实施方式中,新解码的语法元素313的每个请求与由一个或多个类别构成的组中的一个类别相关。与语法元素的请求相关的类别与在编码期间与相应的语法元素相关的类别相同。
二值化器314将对语法元素313的请求映射成对发送给参数分配器316的对二进制位的一个或多个请求。作为对由二值化器314发送给参数分配器316的对二进制位的请求的最终响应,二值化器314从二进制位缓冲选择器318中接收经解码的二进制位326。二值化器314比较所接收的经解码的二进制位326的序列与用于请求的语法元素的一个特定二值化方案的二进制位序列,并且如果所接收的经解码的二进制位326的序列与语法元素的二值化匹配,那么二值化器清空其二值化缓冲器并且输出经解码的语法元素,作为对新解码的符号的请求的最终响应。如果已经接收的经解码的二进制位326的序列与用于请求的语法元素的二值化方案的任何二进制位序列都不匹配,那么二值化器将对二进制位的另一个请求发送给参数分配器,直到经解码的二进制位的序列与用于请求的语法元素的二值化方案的一个二进制位序列匹配。对于语法元素的每个请求,解码器使用的二值化方案与用于解码相应的语法元素的二值化方案相同。对于不同的语法元素类别,二值化方案可不同。用于一个特定的语法元素类别的二值化方案可取决于这组可能的语法元素值和/或用于该特定类别的语法元素的其他性能。
参数分配器316将由一个或多个参数构成的组分配给对二进制位的每个请求,并且将具有一组相关的参数的对二进制位的请求发送给二进制位缓冲选择器。由参数分配器分配给请求的二进制位的这组参数与在编码期间分配给相应的二进制位的参数组相同。这组参数可由在图7的编码器描述中提及的一个或多个参数构成。
在本发明的一个优选的实施方式中,与分配器304一样,参数分配器316使对二进制位的每个请求与相同的参数相关,即,上下文以及其对当前请求的二进制位的两个可能的二进制位值中的一个的概率估计值的相关测量,例如,对当前请求的二进制位的小概率或大概率二进制位值的概率估计值的测量以及规定估计这两个可能的二进制位值中的哪一个表示当前请求的二进制位的小概率或大概率二进制位值的标识符。
参数分配器316可根据由一个或多个已经解码的符号构成的组来确定一个或多个上述概率测量(对当前请求的二进制位的两个可能的二进制位值中的一个的概率估计值的测量、对当前请求的二进制位的小概率或大概率二进制位值的概率估计值的测量、规定估计这两个可能的二进制位值中的哪一个表示当前请求的二进制位的小概率或大概率二进制位值的标识符)。对二进制位的特定请求的概率测量的确定重复在用于相应的二进制位的编码器处的工序。用于确定概率测量的经解码的符号可包括相同符号类别的一个或多个已经解码的符号、与相邻的空间和/或时间位置的数据组(例如,块或样品组)(相对于与语法元素的当前请求相关的数据组)对应的相同符号类别的一个或多个已经解码的符号、或者与相同和/或相邻的空间和/或时间位置的数据组(相对于与语法元素的当前请求相关的数据组)对应的不同符号类别的一个或多个已经解码的符号。
将具有一组相关的参数317的对二进制位的每个请求馈送到二进制位缓冲选择器318中,每个请求为参数分配器316的输出。根据这组相关的参数317,二进制位缓冲选择器318将对二进制位的请求319发送给两个或多个二进制位缓冲器320中的一个,并且从所选择的二进制位缓冲器320中接收经解码的二进制位325。潜在地修改经解码的输入二进制位325,并且将具有潜在地修改的值的经解码的输出二进制位326发送给二值化器314,作为对具有一组相关的参数317的对二进制位请求的最终响应。
通过与向其发送在解码器侧的二进制位缓冲选择器的输出二进制位的二进制位缓冲器相同的方式,选择向其转发对二进制位的请求的二进制位缓冲器320。
在本发明的一个优选的实施方式中,二进制位缓冲选择器318根据对当前请求的二进制位的两个可能的二进制位值中的一个的概率估计值的相关测量来确定二进制位缓冲器320,将对二进制位的请求319发送给该二进制位缓冲器。在本发明的一个优选的实施方式中,对这两个可能的二进制位值中的一个的概率估计值的测量的这组可能值是有限的,并且二进制位缓冲选择器318包含一个表格,该表格使恰好一个二进制位缓冲器320与对这两个可能的二进制位值中的一个的概率估计值的每个可能值相关,其中,对这两个可能的二进制位值中的一个的概率估计值的测量的不同值可与相同的二进制位缓冲器320相关。在本发明的另一个优选的实施方式中,将对这两个可能的二进制位值中的一个的概率估计值的测量的可能值的范围划分成多个间隔,二进制位缓冲选择器318为对这两个可能的二进制位值中的一个的概率估计值的当前测量确定间隔指数,并且二进制位缓冲选择器318包含一个表格,该表格使恰好一个二进制位缓冲器320与用于间隔指数的每个可能值相关,其中,用于间隔指数的不同值可与相同的二进制位缓冲器320相关。在本发明的一个优选的实施方式中,将对二进制位的请求与对这两个可能的二进制位值中的一个的概率估计值的相反测量(相反测量表示概率估计值P和1-P)馈送到相同的二进制位缓冲器320内。在本发明的另一个优选的实施方式中,对当前二进制位请求的这两个可能的二进制位值中的一个的概率估计值的测量与特定二进制位缓冲器的相关性随着时间适应。
在本发明的另一个优选的实施方式中,二进制位缓冲选择器318根据对当前请求的二进制位的小概率或大概率二进制位值的概率估计值的相关测量来确定二进制位缓冲器320,将对二进制位的请求319发送给该二进制位缓冲器。在本发明的一个优选的实施方式中,对小概率或大概率二进制位值的概率估计值的测量的这组可能值是有限的,并且二进制位缓冲选择器318包含一个表格,该表格使恰好一个二进制位缓冲器320与小概率或大概率二进制位值的概率估计值的每个可能值相关,其中,对小概率或大概率二进制位值的概率估计值的测量的不同值可与相同的二进制位缓冲器320相关。在本发明的另一个优选的实施方式中,将对小概率或大概率二进制位值的概率估计值的测量的可能值的范围划分成多个间隔,二进制位缓冲选择器318为对小概率或大概率二进制位值的概率估计值的当前测量确定间隔指数,并且二进制位缓冲选择器318包含一个表格,该表格使恰好一个二进制位缓冲器320与用于间隔指数的每个可能值相关,其中,用于间隔指数的不同值可与相同的二进制位缓冲器320相关。在本发明的另一个优选的实施方式中,对当前二进制位请求的小概率或大概率二进制位值的概率估计值的测量与特定二进制位缓冲器的相关性随着时间适应。
在从所选择的二进制位缓冲器320中接收经解码的二进制位325之后,二进制位缓冲选择器318潜在地修改输入二进制位325并且将带有潜在修改的值的输出二进制位326发送给二值化器314。二进制位缓冲选择器318的输入/输出二进制位映射为在编码器侧的二进制位缓冲选择器的输入/输出二进制位映射的反映射(inverse)。
在本发明的一个优选的实施方式中,二进制位缓冲选择器318未修改二进制位的值,即,输出二进制位326始终具有与输入二进制位325相同的值。在本发明的另一个优选的实施方式中,二进制位缓冲选择器318根据输入二进制位值325和用于与对二进制位的请求相关的当前请求的二进制位的两个可能的二进制位值中的一个的概率估计值的测量来确定输出二进制位值326。在本发明的一个优选的实施方式中,如果用于当前二进制位请求的两个可能的二进制位值中的一个的概率的测量小于(或小于或等于)特定的阈值,那么将输出二进制位值326设为等于输入二进制位值325;如果用于当前二进制位请求的两个可能的二进制位值中的一个的概率的测量值大于或等于(或大于)特定的阈值,那么修改输出二进制位值326(即,设为与输入二进制位值相反)。在本发明的另一个优选的实施方式中,如果对当前二进制位请求的两个可能的二进制位值中的一个的概率的测量值大于(或大于或等于)特定的阈值,那么将输出二进制位值326设为等于输入二进制位值325;如果对当前二进制位请求的两个可能的二进制位值中的一个的概率的测量值小于或等于(或小于)特定的阈值,那么修改输出二进制位值326(即,设为与输入二进制位值相反)。在本发明的一个优选的实施方式中,阈值与用于两个可能的二进制位值的估计的概率的值0.5对应。
在本发明的另一个优选的实施方式中,二进制位缓冲选择器318根据输入二进制位值325和规定这两个可能的二进制位值中的哪一个表示与对二进制位的请求相关的当前的二进制位请求的小概率或大概率二进制位值的估计的标识符来确定输出二进制位值326。在本发明的一个优选的实施方式中,如果标识符规定这两个可能的二进制位值中的第一个表示当前二进制位请求的小概率(或大概率)二进制位值,那么将输出二进制位值326设为等于输入二进制位值325,并且如果标识符规定这两个可能的二进制位值中的第二个表示当前二进制位请求的小概率(或大概率)二进制位值,那么修改输出二进制位值326(即,设为与输入二进制位值相反)。
如上所述,二进制位缓冲选择器将对二进制位的请求319发送给两个或多个二进制位缓冲器320中的一个。二进制位缓冲器320表示先进先出缓冲器,从连接的二进制位解码器322中为这些缓冲器供应经解码的二进制位321的序列。作为对从二进制位缓冲选择器318中发送给二进制位缓冲器320的对二进制位的请求319的响应,二进制位缓冲器320去除其内容中首先馈送到二进制位缓冲器320内的二进制位,并且将该二进制位发送给二进制位缓冲选择器318。越早发送给二进制位缓冲器320的二进制位被越早地去除并且将这些二进制位发送给二进制位缓冲选择器318。
两个或多个二进制位缓冲器320中的每个与恰好一个二进制位解码器322连接,并且每个二进制位解码器仅仅与一个二进制位缓冲器320连接。每个二进制位解码器322从单独的局部比特流324中读取表示比特序列的码字323。二进制位解码器将码字323转换成发送给连接的二进制位缓冲器320的二进制位321序列。总体解码算法将两个或多个局部比特流324转换成多个经解码的语法元素,其中,局部比特流的数量等于二进制位缓冲器和二进制位解码器的数量,并且由对新语法元素的请求触发解码语法元素。在本发明的一个优选的实施方式中,二进制位解码器322将可变数量的比特的码字323转换成一系列可变数量的二进制位321。本发明的实施方式的一个优点在于,二进制位可从两个或多个局部比特流中进行并行解码(例如,用于不同组的概率测量),这减少了几个实现方式的处理时间。
本发明的实施方式的另一个优点在于,由二进制位解码器322进行的二进制位解码可特别设计为用于不同组的参数317。具体地,可为不同组的估计概率优化二进制位编码和编码(在编码效率和/或复杂度方面)。另一方面,这允许相对于先有技术的熵编码算法减少编码/解码复杂度,具有相似的编码效率。另一方面,允许相对于先有技术的熵编码算法提高编码效率,具有相似的编码/解码复杂度。在本发明的一个优选的实施方式中,二进制位解码器322为对当前二进制位请求的两个可能的二进制位值307中的一个的概率估计值的不同组的测量实现不同的解码算法(即,将二进制位序列映射到码字上)。在本发明的另一个优选的实施方式中,二进制位解码器322为对当前请求的二进制位的小概率或大概率二进制位值的概率估计值的不同组的测量实现不同的解码算法。
二进制位解码器322进行相应的在编码器侧的二进制位编码器的逆映射。
在本发明的一个优选的实施方式中,二进制位解码器322或一个或多个二进制位解码器表示在二进制位序列321上直接映射码字323的熵解码器。这种映射可有效地实现,并且不需要复杂的算法编码引擎。码字在二进制位序列上的映射必须是唯一的。在本发明的一个优选的实施方式中,码字323在二进制位321的序列上的映射为双射。在本发明的另一个优选的实施方式中,二进制位解码器322或一个或多个二进制位编码器表示在二进制位321的长度可变的序列内直接映射长度可变的码字323的熵解码器。在本发明的一个优选的实施方式中,输入码字表示无冗余码,例如,通用霍夫曼编码或范式哈夫曼编码。在表3中示出了无冗余码到二进制位序列的双射映射的两个实例。
在本发明的另一个优选的实施方式中,二进制位解码器322或一个或多个二进制位解码器表示在长度可变的二进制位321序列上直接映射长度固定的码字323的熵解码器。在本发明的另一个优选的实施方式中,二进制位解码器322或一个或多个二进制位解码器表示在长度固定的二进制位321序列上直接映射长度可变的码字323的熵解码器。
因此,图7和8示出了用于编码符号序列的编码器和用于重构这符号序列的解码器的一个实施方式。解码器包括分配器304,该分配器被配置为将多个参数305分配给这符号序列中的每个符号。根据包含在该符号序列的先前符号内的信息(例如,语法元素1的类别)来进行这种分配,当前符号属于该类别的表征(例如,二值化),并且目前根据语法元素1的语法结构来预期该表征,反过来从先前的语法元素1和符号的历史中可推断该预期。而且,编码器包括多个熵编码器10和一个选择器306,每个熵编码器被配置为将转发给各个熵编码器的符号转换成各个比特流312,并且选择器306被配置为将每个符号转发给多个熵编码器10中所选择的一个,根据分配给各个符号的参数305的数量,进行这种选择。可将分配器304视为整合到选择器306内,以便产生各自的选择器502。
用于重构符号序列的解码器包括:多个熵解码器322,每个熵解码器被配置为将各个比特流323转换成符号321;分配器316,被配置为根据包含在要重构的符号序列中先前重构的符号内的信息,将多个参数317分配给这符号序列中的每个符号315(见图8中的326和327);以及选择器318,被配置为从多个熵解码器322中所选择的一个中检索要重构的这符号序列中的每个符号,根据为各个符号定义的参数的数量进行该选择。分配器316可被配置为使分配给每个符号的参数的数量包括或者为在各个符号可采用的可能符号值之中的分布的概率估计值的测量。而且,分配器316和选择器318可被视为整合在一个模块(选择器402)内。要重构的这符号序列可具有二进制位字母表,并且分配器316可被配置为使概率分布的估计值由对二进制位字母表的两个可能的二进制位值的小概率或大概率二进制位值的概率估计值的测量以及规定两个可能的二进制位值中的哪个表示小概率或大概率二进制位值的估计值的标识符构成。分配器316可进一步被配置为根据包含在要重构的这符号序列中先前重构的符号内的信息,在内部将上下文分配给要重构的这符号序列315中的每个符号,每个上下文具有与其相关的各个概率分布估计,并且该分配器被配置为根据分配各个上下文的先前重构的符号的符号值,使每个上下文的概率分布估计适合于实际的符号统计。上下文可考虑语法元素所属的位置的空间关系或相邻性,例如,在音频或图片编码内,或者在金融应用的情况下,甚至在表格中。然后,根据与分配给各个符号的上下文相关的概率分布估计,例如,通过量化或作为输入各个表格内的指数,使用与由各个符号(在以下实施方式中,由管道指数以及细化指数指示)分配给多个概率分布估计代表(省略细化指数)中的一个的上下文相关的概率分布估计,可确定用于每个符号的概率分布的估计值的测量,以便获得用于概率分布的估计值的测量(管道指数指示局部比特流312)。选择器可被配置为使在多个熵编码器和多个概率分布估计代表之间限定双射相关性。选择器318可被配置为根据这符号序列中先前重构的符号,通过预定的确定方式,随着时间改变从一系列概率分布估计到多个概率分布估计代表的量化映射。即,选择器318可改变量化步长,即,在与单独的熵解码器双射相关的单独概率指数上映射的概率分布的间隔。多个熵解码器322反过来可被配置为响应于量化映射的变化,调整其将符号转换成比特流的方式。例如,每个熵解码器322可优化(即,可具有最佳的压缩率),用于在各个概率分布估计量化间隔内的某个概率分布估计,并且可改变其码字/符号序列映射,以便在改变各个概率分布估计量化间隔时,在各个概率分布估计量化间隔内调整该某种概率分布估计的位置,以便优化。选择器可被配置为改变量化映射,以使从多个熵解码器中检索符号的速率不太分散。至于二值化器314,要注意的是,如果语法元素已经为二元,那么可省略该二值化器。而且,根据解码器322的类型,不一定具有缓冲器320。而且,缓冲器可整合在解码器内。
有限语法元素序列的终止
在本发明的一个优选的实施方式中,为一组有限的语法元素进行编码和解码。通常,将一定数量的数据编码,例如,静止图像、视频序列的帧或场、图像片段、视频序列的帧或场的片段、或一组连续的音频样品等。对于有限的语法元素组,通常,必须终止在编码器侧产生的局部比特流,即,必须确保所有语法元素可从传输的或储存的局部比特流中解码。在最后的二进制位插入相应的二进制位缓冲器308内之后,二进制位编码器310必须确保将整个码字写入局部比特流312中。如果二进制位编码器310表示在码字上实现二进制位序列的直接映射的熵编码器,那么在将最后的二进制位写入二进制位缓冲器中之后,储存在二进制位缓冲器内的二进制位序列可能不表示与码字相关的二进制位序列(即,可能表示与码字相关的两个或多个二进制位序列的前缀)。在这种情况下,与包含在二进制位缓冲器内的作为前缀的二进制位序列的二进制位序列相关的任何码字必须写入局部比特流中(二进制位缓冲器必须刷新(flush))。通过将具有特定的或任意的值的二进制位插入二进制位缓冲器内,直到写入码字,可完成该任务。在本发明的一个优选的实施方式中,二进制位编码器选择具有最小长度的一个码字(除了相关的二进制位序列必须在二进制位缓冲器内包含二进制位序列作为前缀的性能以外)。在解码器侧,二进制位解码器322可将比在局部比特流中的最后码字所需要的二进制位更多的二进制位进行解码;二进制位缓冲选择器318并不请求这些二进制位,这些二进制位被丢弃和忽略。有限的符号组的解码由对经解码的语法元素的请求控制;如果大量数据未请求进一步的语法元素,那么终止解码。
局部比特流的传输与多路复用
可单独地传输由编码器产生的局部比特流312,或者可将这些局部比特流多路传输到单个比特流内,或者局部比特流的码字可在单个比特流内交错。
在本发明的一个实施方式中,将大量数据的每个局部比特流写入一个数据包中。大量数据可为任意一组语法元素,例如,静止图片、视频序列的场或帧、静止图片的片段、视频序列的场或帧的片段、或音频样品的帧等。
在本发明的另一个优选的实施方式中,用于大量数据的两个或多个局部比特流或者用于大量数据的所有局部比特流多路复用(multiplex)成一个数据包。在图9示出了包含多路复用的局部比特流的数据包的结构。
数据包1400由报头和每个局部比特流(用于所考虑的大量数据)的数据的一个分区(partition)构成。数据包的报头1401包含将数据包(的剩余部分)分成比特流数据1402的区段的指示。除了分区指示以外,报头还可包含额外的信息。在本发明的一个优选的实施方式中,分区数据包的指示位于以比特或字节或多个比特或多个字节为单位的数据段的开始的位置。在本发明的一个优选的实施方式中,相对于数据包的开始或者相对于报头的结尾或者相对于先前数据包的开始,在数据包的报头内将数据段的开始的位置编码,作为绝对值。在本发明的另一个优选的实施方式中,差分地编码数据段的开始的位置,即,仅仅编码在数据段的实际开始和数据段的开始的预测之间的差值。可根据已经了解的或传输的信息,例如,数据包的总体尺寸、报头的尺寸、在数据包内的数据段的数量、先前的数据段的开始的位置,获得预测。在本发明的一个优选的实施方式中,第一数据包的开始的位置未编码,但是根据数据包报头的尺寸推断该位置。在解码器侧,传输的分区指示用于获得数据段的开头。然后,该数据段用作局部比特流,并且将包含在数据段内的数据按照先后顺序馈送到相应的二进制位解码器内。
存在用于将局部比特流多路复用成一个数据包的几种可选方式。在图10中示出了一个可选方式,该可选方式可减少所需要的边信息,尤其对于局部比特流的尺寸非常相似的情况。通过预先定义的方式,将数据包的有效负荷(即,没有报头411的数据包410)划分成区段412。例如,可将数据包的有效负荷划分成相同尺寸的区段。然后,每个区段与局部比特流或者与局部比特流413的第一部分相关。如果局部比特流大于相关的数据段,那么在其他数据段的结尾处,将其剩余部分414放入未使用的空间内。通过以颠倒的顺序(从数据段的结尾开始)插入比特流的剩余部分的方式,可完成该任务,这减少了边信息。必须在比特流内部(例如,在数据包报头内)用信号指示局部比特流的剩余部分与数据段的相关性以及在将一个以上的剩余部分加入数据段中时,还要信号指示一个或多个剩余部分的起始点。
长度可变的码字的交错
对于某些应用,(用于大量语法元素)局部比特流在一个数据包内的上述多路复用可具有下缺点:一方面,对于小数据包,用信号表示分区所需要的边信息的比特数量可相对于在局部比特流中的实际数据变得明显,这最终减小了编码效率。另一方面,多路复用不适合于需要低延迟的应用(例如,用于视频会议应用)。通过所描述的多路复用,由于先前不了解开始分区的位置,所以在完全产生局部比特流之前,编码器不能开始传输数据包。而且,通常,解码器必须等待,直到在可开始解码数据包之前,接收最后的数据段的开始。对于作为视频会议系统的应用,这些延迟可加入几个视频图片的系统的额外总体延迟中(尤其对于接近传输比特率的比特率以及对于需要在用于编码/解码图片的两个图片之间的相近时间间隔的编码器/解码器),这对于这种应用较为关键。为了克服某些应用的缺点,可通过将由两个或多个二进制位编码器生成的码字交错到单个比特流内的方式,配置本发明的一个优选的实施方式的编码器。可将具有交错的码字的比特流直接发送给解码器(在忽略小缓冲延迟时,见下文)。在解码器侧,两个或多个二进制位解码器按照解码顺序直接从比特流中读取码字;可从首先接收的比特开始解码。此外,对于用信号表示局部比特流的多路复用(或交错),不需要任何边信息。
在图11中示出了进行码字交错的编码器的基本结构。二进制位编码器310未将码字直接写入局部比特流中,而是与单个码字缓冲器329连接,根据编码顺序,将码字从该码字缓冲器中写入比特流334中。二进制位编码器310将一个或多个对新码字缓冲器条目328的请求发送给码字缓冲器329,随后将码字330发送给码字缓冲器329,这些码字储存在预留的缓冲器条目中。码字缓冲器329的(通常,长度可变的)码字331由码字写入器332获取,该写入器将相应的比特333写入所产生的比特流334中。码字缓冲器329作为先进先出缓冲器进行操作;越早预留的码字条目越早写入比特流中。
在进一步的概括中,能够具有多个码字缓冲器和局部比特流,其中,码字缓冲器的数量小于二进制位编码器的数量。二进制位编码器310预留在码字缓冲器329内一个或多个码字,据此,由连接的二进制位缓冲器308中的某些事件触发在码字缓冲器内预留一个或多个码字。在本发明的一个优选的实施方式中,码字缓冲器329通过解码器可立即解码比特流的方式进行操作。将码字写入比特流中的编码顺序与在码字缓冲器内预留相应的码字的顺序相同。在本发明的一个优选的实施方式中,每个二进制位编码器310预留一个码字,由连接的二进制位缓冲器内的某些事件触发该预留。在本发明的另一个优选的实施方式中,每个二进制位编码器310预留多于一个的码字,由连接的二进制位缓冲器内的某些事件触发该预留。在本发明的另一个优选的实施方式中,二进制位编码器310预留不同的码字量,其中,由一个特定的二进制位编码器预留的码字量可取决于该特定的二进制位编码器和/或该特定的二进制位编码器/二进制位缓冲器的其他性能(例如,相关的概率测量、已经写入的比特的数量等)。
在本发明的一个优选的实施方式中,码字缓冲器如下进行操作。如果将一个新二进制位307发送给一个特定的二进制位缓冲器308,在二进制位缓冲器内已经储存的二进制位的数量为零,并且目前在码字缓冲内未给与特定的二进制位缓冲器连接的二进制位编码器预留任何码字,那么连接的二进制位编码器310将请求发送给码字缓冲器,通过该码字缓冲器,在码字缓冲器329内为特定的二进制位编码器预留一个或多个码字条目。码字条目可具有可变数量的比特;通常由相应的二进制位编码器的最大码字尺寸提供在缓冲器条目中的比特数的上限阈值。在码字缓冲器的这个或这些预留的条目中,储存由二进制位编码器(已经为该二进制位编码器预留这个或这些码字条目)产生的接下来的一个或一些码字。如果在用于特定的二进制位编码器中的所有预留的缓冲器条目装有码字,并且将下一个二进制位发送给与特定的二进制位编码器连接的二进制位缓冲器,那么在用于特定的二进制位编码器的码字缓冲器内保留一个或多个新码字等。码字缓冲器329通过某种方式表示先进先出缓冲器。按照先后顺序保留缓冲器条目。越早为这些码字保留相应的缓冲器条目,越早将码字写入比特流中。码字写入器332连续地或在将码字330写入码字缓冲器329中之后检查码字缓冲器329的状态。如果第一缓冲器条目包含完整的码字(即,未预留缓冲器条目,但是该条目包括码字),那么从码字缓冲器320中去除相应的码字331和相应的缓冲器条目,并且将码字333的比特写入比特流中。重复该工序,直到第一缓冲器条目不包含码字(即,预留或没有(free))。在解码工序的结尾,即,如果已经处理所考虑的大量数据的所有语法元素,那么必须刷新码字缓冲器。对于该刷新工序,将以下内容作为第一步骤应用于每个二进制位缓冲器/二进制位编码器中:如果二进制位缓冲器不包含二进制位,那么添加具有特定的或任意值的二进制位,直到所产生的二进制位序列表示与码字相关的二进制位序列(如上所述,添加二进制位的一种优选的方式在于,添加产生尽可能最短的码字的这种二进制位值,或者其中的一个,该码字与包含二进制位缓冲的最初内容作为前缀的二进制位序列相关),然后,将码字写入用于相应的二进制位编码器的下一个预留的缓冲器条目中,并且清空(相应的)二进制位缓冲器。如果已经为一个或多个二进制位编码器预留一个以上的缓冲器条目,那么码字缓冲器可依然包含预留的码字条目。在这种情况下,这些码字条目装有任意但是有效的码字,用于相应的二进制位编码器。在本发明的一个优选的实施方式中,插入该最短的有效码字或一个最短的有效码字(如果有多个的话)。最后,将在码字缓冲器中的所有剩余码字写入比特流中。
在图12中示出了码字缓冲器的状态的两个实例。在实例(a)中,码字缓冲器包含装有码字的2个条目以及5个预留条目。此外,标记下一个可用缓冲器。第一条目装有码字(即,二进制位编码器2仅仅将码字写入先前预留的条目中)。在下一个步骤中,从码字缓冲器中去除该码字,并且将该码字写入比特流中。然后,二进制位编码器3的第一预留码字为第一缓冲器条目,但是由于仅仅预留该条目,所以不能从码字缓冲器中去除该条目,但是未在该条目中写入任何码字。在实例(b)中,码字缓冲器包含装有码字的3个条目以及4个预留条目。第一条目作为预留进行标记,因此,码字写入器不能将码字写入比特流中。虽然在码字缓冲器中包含3个码字,但是码字写入器必须等待,直到将码字写入二进制位编码器3的第一预留的缓冲器条目中。要注意的是,必须按照预留的顺序写入这些码字,以便能够在解码器侧颠倒该工序(见下文)。
在图13中示出了进行码字交错的解码器的基本结构。二进制位解码器310未直接从单独的局部比特流中读取码字,而是与码字缓冲器338连接,根据编码顺序,从该码字缓冲器中读取码字337。应注意的是,由于还可直接从比特流中读取码字,所以不一定需要比特缓冲器338。在说明处理链的明显分离的不同方面时,主要包含比特缓冲器338。具有交错的码字的比特流340的比特339依次插入比特缓冲器338内,该比特缓冲器表示先进先出缓冲器。如果特定的二进制位解码器322接收一个或多个对二进制位序列的请求335,那么二进制位解码器322通过对比特的请求336从比特缓冲器338中读取一个或多个码字337。解码器可立即解码语法元素。要注意的是,编码器(如上所述)通过适当地操作码字缓冲器,必须确保通过相同的顺序将码字写入比特流中,其中,由二进制位解码器请求这些码字。在解码器处,由语法元素的请求触发整个解码工序。作为在编码器侧由特定的二进制位编码器保留的码字的数量以及由相应的二进制位解码器读取的码字的数量的参数必须相同。
在进一步的概括中,能够具有多个码字缓冲器和局部比特流,其中,码字缓冲器的数量小于二进制位解码器的数量。二进制位解码器322在一个时隙(time instant)从比特缓冲器338中读取一个或多个码字,据此,在连接的二进制位缓冲器320内由某些事件触发从比特缓冲器中读取一个或多个码字。在本发明的一个优选的实施方式中,在将对二进制位的请求319发送给特定的二进制位缓冲器320并且二进制位缓冲器不包含任何二进制位时,解码器通过读取一个或多个码字的方式进行操作。但是,还能够由其他事件触发读取码字,例如,如果在二进制位缓冲器内的二进制位的数量低于预定的阈值。在本发明的一个优选的实施方式中,每个二进制位解码器322读取一个码字,在连接的二进制位缓冲器内由某些事件触发该读取。在本发明的另一个优选的实施方式中,每个二进制位解码器322读取一个以上的码字,在连接的二进制位缓冲器内由某些事件触发该读取。在本发明的另一个优选的实施方式中,二进制位解码器322读取不同的码字量,其中,由一个特定的二进制位解码器读取的码字量可取决于该特定的二进制位解码器和/或该特定的二进制位解码器/二进制位缓冲器的其他性能(例如,相关的概率测量、已经读取的比特的数量等)。
在本发明的一个优选的实施方式中,从比特缓冲器中读取码字,该读取如下进行操作。如果将一个新二进制位请求319从二进制位缓冲选择器318中发送给一个特定的二进制位缓冲器320,并且在二进制位缓冲器内的二进制位的数量为零,那么连接的二进制位解码器322通过到比特缓冲器338的比特请求336从比特缓冲器338中读取一个或多个码字337。二进制位解码器322将读取的码字337转换成二进制位序列321,并且将这些二进制位序列储存在连接的二进制位缓冲器320内。作为对二进制位的请求319的最终响应,从二进制位缓冲器320中去除首先插入的二进制位,并且将该二进制位发送给二进制位缓冲选择器318。作为对进一步的二进制位请求的响应,去除在二进制位缓冲器内的剩余二进制位,直到二进制位缓冲器清空。一个额外的二进制位请求触发二进制位解码器从比特缓冲器等中读取一个或多个新码字。比特缓冲器338表示具有预定尺寸的先进先出缓冲器,并且从比特流340中连续地装有比特339。为了确保通过与由解码工序请求码字的方式相同的方式将码字写入比特流中,在编码器侧的码字缓冲器可通过上述方式进行操作。
因此,多个熵解码器中的每个可为长度可变的解码器,该解码器被配置为将长度固定的码字映射到长度可变的符号序列中,并且可提供码字条目,例如,码字缓冲器343的输出,用于接收单个交错的码字流。多个熵解码器322可被配置为根据要重构的符号序列中的符号在选择器318从多个熵解码器中检索时产生的从相应的熵解码器处的新码字映射的一个新符号序列的顺序,通过先后顺序从码字条目中检索码字。
具有低延迟约束的长度可变的码字的交错
所描述的码字交错不要求将任何分区信息作为边信息发送。并且由于码字在比特流中交错,所以延迟通常较小。然而,未保证遵守特定的延迟约束(例如,由储存在码字缓冲器内的最大数量的比特规定)。而且,码字缓冲器所需要的缓冲器尺寸在理论上可变得非常大。在考虑在图12(b)中的实例时,可能不将进一步的二进制位发送给二进制位缓冲器3,因此,二进制位编码器3将不任何新码字发送给码字缓冲器,直到在数据包的结尾应用刷新工序。然后,在可写入比特流中之前,二进制位编码器1和2的所有码字必须等待,直到数据包结束。通过将进一步的机制加入编码工序中(并且还如后文中所述,加入解码工序中),可避开该缺点。该额外机构的基本概念在于,如果与延迟或延迟的上限相关的测量值(见下文)超过规定的阈值,那么通过刷新相应的二进制位缓冲器(使用与在数据包的结尾处相似的机构),填充第一预留的缓冲器条目。通过这种机构,减少等待的缓冲器条目的数量,直到相关的延迟测量值小于规定的阈值。在解码器侧,必须丢弃已经在编码器侧插入的二进制位,以便遵守延迟约束。对于二进制位的这种丢弃,基本上可使用与在编码器侧相同的机构。在下文中,描述了用于这种延迟控制的两个优选的实施方式。
在一个优选的实施方式中,延迟(或延迟的上限)的测量值是在码字缓冲器中的有效(active)缓冲器条目的数量,其中,有效缓冲器条目的数量为预留的缓冲器条目的数量加上包含码字的缓冲器条目的数量。要注意的是,由于如果第一缓冲器条目包含码字,那么该码字写入比特流中,所以第一缓冲器条目始终为预留的缓冲器条目或可用的缓冲器条目。如果例如,最大允许的缓冲延迟(由应用决定)为D个比特,并且所有二进制位编码器的最大码字尺寸为L,那么可通过N=D/L计算可包含在码字缓冲器内而不违背延迟约束的最大数量的码字的下限。该系统不需要以比特为单位的延迟测量值D,但是必须了解编码器和解码器的最大数量的码字N。在本发明的一个优选的实施方式中,最大数量的码字缓冲器条目N由应用固定。在本发明的另一个优选的实施方式中,在比特流内部,例如,在数据包的报头(或片段(slice)报头)内或者在包含在比特流中的参数组内,用信号表示最大数量的码字缓冲器条目N。如果二进制位编码器310将一个或多个新缓冲器条目的预留请求发送给码字缓冲器329,那么在预留一个新的码字缓冲器条目之前,执行以下工序(即,如果一个请求预留多个码字缓冲器条目,那么执行多次):如果当前有效缓冲器条目的数量加上1(考虑接下来预留的缓冲器条目)大于最大数量的码字缓冲器条目N,那么(预留的)第一缓冲器条目由在下文中描述的工序刷新,直到当前有效缓冲器条目的数量加上1小于或等于最大数量的码字缓冲器条目N。预留的缓冲器条目的刷新与在数据包的结尾处的刷新相似:通过将具有特定或任意值的二进制位加入连接的二进制位缓冲器308中,刷新已经预留相应的第一缓冲器条目的二进制位编码器310,直到所产生的二进制位序列表示与码字相关的二进制位序列,然后,将码字写入预留的缓冲器条目中,并且最终将该码字加入比特流中(同时清空二进制位缓冲器并且去除预先预留的缓冲器条目)。如上所述,用于将二进制位加入二进制位缓冲器中的一种优选的方法在于,加入产生可能最短的码字的那些二进制位。在解码器侧,执行相似的工序,用于丢弃已经添加的二进制位,以遵守延迟约束。因此,解码器保持计算已经从比特缓冲器中读取的码字的计数器C(可在比特缓冲器中保持该计数器)。在开始解码数据包时,初始化计数器C(例如,通过零),并且在读取一个码字之后,该计数器增加1。此外,每个二进制位解码器322包含计数器Cx,在由相应的二进制位解码器322读取最后的码字之前,该计数器储存码字计数器C的值。即,在特定的二进制位解码器322读取一个新码字时,作为第一步骤,将其计数器Cx设置为等于C,然后,从比特缓冲器中读取码字。在将对二进制位的请求319发送给特定的二进制位缓冲器320并且在连接的二进制位解码器322的整体码字计数器C和计数器Cx之间的差值(C-Cx)大于最大数量的码字缓冲器条目N时,丢弃并且忽略目前储存在特定的二进制位缓冲器320内的所有二进制位。除了该额外的步骤以外,还如上所述,进行解码。如果发送对二进制位的请求319的二进制位缓冲器320清空(在已经接收二进制位请求之后,在第一步骤中,由于已经去除所有二进制位或者由于低延迟机构确实丢弃所有二进制位),那么连接的二进制位解码器322从比特缓冲器338中读取一个或多个新码字等。
在本发明的另一个优选的实施方式中,延迟(或延迟的上限)的测量值为在码字缓冲器中的有效缓冲器条目的最大码字长度的总和,其中,特定缓冲器条目的最大码字长度取决于与该缓冲器条目相关的二进制位解码器。如图所示,在实例中用6表示缓冲器条目的最大码字长度。还要注意的是,由于如果第一缓冲器条目包含码字,那么该码字写入比特流中,所以第一缓冲器条目始终为预留的缓冲器条目或可用的缓冲器条目。假设最大允许的缓冲延迟(由应用决定)为D个比特。必须了解编码器和解码器的该最大缓冲延迟D。在本发明的一个优选的实施方式中,最大缓冲延迟D由应用固定。在本发明的另一个优选的实施方式中,在比特流内部,例如,在数据包的报头(或片段报头)内或者在包含在比特流中的参数组内,用信号表示最大缓冲延迟D。可以比特或字节或多个比特或多个字节为单元,用信号表示最大缓冲延迟D。如果二进制位编码器310将一个或多个新缓冲器条目的预留请求发送给码字缓冲器329,那么在预留一个新的码字缓冲器条目之前,执行以下工序(即,如果一个请求预留多个码字缓冲器条目,那么执行多次)。
如果所有当前有效的缓冲器条目的最大码字长度加上预留的缓冲器条目的最大码字长度的总和大于最大缓冲延迟D,那么(预留的)第一缓冲器条目由上述工序刷新,直到所有有效缓冲器条目的最大码字长度加上预留的缓冲器条目的最大码字长度的总和小于或等于最大缓冲延迟D。例如,考虑在图12(b)中的实例。所有当前有效缓冲器条目的最大码字长度的总和为29。假设将最大缓冲延迟D设置为等于32。由于29+3不大于32,所以如果下一个缓冲器条目由最大码字长度等于3的二进制位编码器2预留,那么不刷新第一缓冲器条目。但是由于29+7大于32,所以如果下一个缓冲器条目由最大码字长度等于7的二进制位编码器1预留,那么刷新第一缓冲器条目。如上所述,刷新预留的缓冲器条目(通过将具有特定或任意值的二进制位加入相应的二进制位缓冲器中)。
在解码器侧,执行一种相似的工序,用于丢弃已经添加的二进制位,以遵守延迟约束。因此,解码器具有计算已经从比特缓冲器中读取的码字的最大码字长度的计数器C(可在比特缓冲器中具有该计数器)。要注意的是,与不同的二进制位编码器相关的最大码字长度可不同。在开始解码数据包时,初始化计数器C(例如,通过零),并且在读取一个码字之后,该计数器增大。该计数器并不按所读取的码字的实际长度增大,而是按其最大长度增大。即,如果由特定的二进制位解码器读取码字并且与由特定的二进制位解码器使用的码字表相关的最大码字长度为Lx(一个不同的二进制位解码器可与一个不同的最大码字长度相关),那么计数器C增大Lx。除了整体计数器C以外,每个二进制位解码器322还包含计数器Cx,在由相应的二进制位解码器322读取最后的码字之前,该计数器储存码字计数器C的值。即,在特定的二进制位解码器322读取一个新码字时,作为第一步骤,将其计数器Cx设置为等于C,然后,从比特缓冲器中读取码字。在将对二进制位的请求319发送给特定的二进制位缓冲器320并且在连接的二进制位解码器322的整体计数器C和计数器Cx之间的差值(C-Cx)大于最大缓冲延迟D时,丢弃并且忽略目前储存在特定的二进制位缓冲器320内的所有二进制位。除了该额外的步骤以外,还如上所述,运行解码。如果发送对二进制位的请求319的二进制位缓冲器320清空(在已经接收二进制位请求之后,在第一步骤中,由于已经去除所有二进制位或者由于低延迟机构确实丢弃所有二进制位),那么连接的二进制位解码器322从比特缓冲器338中读取一个或多个新码字等。
因此,多个熵解码器322和选择器318可被配置为间断地丢弃符号序列的后缀,以便不参与形成要重构的符号序列。在已经由相应的熵解码器从码字条目中的两个连续的码字检索之间,在多个熵解码器从码字条目中检索的多个码字满足预定的标准时,可执行间断丢弃。多个熵编码器和码字缓冲器反过来可被配置为,通过具有作为前缀的目前转发的但是还未映射的符号的随意符号,将目前转发的但是还未映射的符号扩展到有效符号序列,将这样扩展的符号序列映射到码字内,将这样获得的码字输入预留的码字条目内,并且刷新码字条目。在预留的码字条目的数量加上在其内输入码字的码字条目的数量满足预定标准时,发生间断扩展、输入以及刷新。预定的标准可考虑多个编码器/解码器对的码字的最大长度。
对于一些架构,码字交错的上述优选的实施方式可能在解码复杂度方面造成缺点。如图13中所示,所有二进制位解码器322从单个比特缓冲器338中读取码字(在通常情况下,长度可变的码字)。由于必须按照正确的顺序读取码字,所以不能并行读取码字。这表示,特定的二进制位解码器必须等待,直到其他二进制位解码器完成码字的读取。并且在长度可变的码字的读取的复杂性相对于(部分平行的)解码工序的剩余部分很大时,长度可变的码字的这种获取可为整个解码工序的瓶颈。本发明的所描述的实施方式具有某些变化,这些变化可用于减少从单个比特缓冲器中访问的复杂性,在下文中描述其中的一些变化。在本发明的一个优选的实施方式中,具有单组码字(例如,表示无冗余前缀码),并且用于每个二进制位解码器322的这组码字为单个码字组的子集。要注意的是,不同的二进制位解码器322可使用单个码字组的不同子集。即使由一些二进制位解码器322使用的码字组相同,对于不同的二进制位解码器322,其与二进制位序列的相关性也不同。在本发明的一个特定的实施方式中,相同的码字组用于所有二进制位解码器322。如果具有包括所有二进制位解码器的码字组作为子集的单个码字组,那么在二进制位解码器外面可进行码字解析,这可降低码字获取的复杂性。编码工序相对于上述工序未改变。在图14中示出了经修改的解码工序。从比特流340中为单个码字读取器345提供比特346,并且该读取器解析(通常为可变长度)码字。将所读取的码字344插入码字缓冲器343内,该缓冲器表示先进先出缓冲器。二进制位解码器322将一个或多个码字341的请求发送给码字缓冲器343,并且作为对该请求的响应,从码字缓冲器中去除一个或多个码字342(按照先后顺序),并且将这些码字发送给相应的二进制位解码器322。要注意的是,通过本发明的该实施方式,在背景工序中可进行潜在复杂的码字解析,并且不需要等待二进制位解码器。二进制位解码器获取已经解析的码字,潜在复杂的码字解析不再是对整体缓冲器的请求的一部分。相反,将已经解析的码字发送给二进制位解码器,还可通过仅仅将码字指数发送给二进制位解码器的方式,来实现这些二进制位解码器。
长度固定的比特序列的交错
在二进制位解码器322未从全局比特缓冲器338中读取长度可变的码字时,可实现减小解码器复杂性的另一种方法,但是相反,二进制位解码器始终从全局比特缓冲器338中读取长度固定的比特序列,并且将这些长度固定的比特序列加入本地比特缓冲器中,其中,每个二进制位解码器322与单独的本地比特缓冲器连接。然后,从本地比特缓冲器中读取长度可变的码字。因此,可并行解析长度可变的码字,仅仅必须通过同步的方式获取长度固定的比特序列,但是长度固定的比特序列的这种获取通常非常快速,以便对于某些架构,可减小总体解码的复杂性。对于不同的本地比特缓冲器,发送给特定的本地比特缓冲器的二进制位的固定数量可不同,并且根据在二进制位解码器、二进制位缓冲器或比特缓冲器中作为事件的某些参数,该数量还可随着时间变化。然而,由特定访问读取的比特的数量不取决于在特定访问期间读取的实际比特,这是与读取长度可变的码字的重要区别。在二进制位缓冲器、二进制位解码器或本地比特缓冲器中,由某些事件触发读取长度固定的比特序列。例如,在存在于连接的比特缓冲器内的比特数低于预定的阈值时,能够请求读取新的长度固定的比特序列,其中,不同的阈值可用于不同的比特缓冲器。在编码器处,必须确保按照相同的顺序将长度固定的二进制位序列插入比特流内,其中,在解码器侧从比特流中读取这些二进制位序列。还能够使固定长度的序列的这种交错与低延迟控制相结合,与上述情况相似。在下文中,描述了用于交错长度固定的比特序列的一个优选的实施方式。
图15示出了用于本发明的实施方式的基本编码器结构的示图,该结构为两个或多个二进制位编码器交错长度固定的比特序列。与在图11中所描述的实施方式相比,二进制位编码器310未与单个码字缓冲器连接。相反,每个二进制位编码器310与单独的比特缓冲器348连接,该缓冲器为相应的局部比特流储存比特。所有比特缓冲器348连接至全局比特缓冲器351。全局比特缓冲器351连接至比特写入器353,该写入器从全局比特缓冲器中按照编码/解码顺序去除比特352,并且将去除的比特354写入比特流355中。在特定的比特缓冲器348或连接的二进制位编码器310或二进制位缓冲器308内发生某些事件时,比特缓冲器348将请求349发送给全局比特缓冲器351,通过该请求,在全局比特缓冲器351内预留某些数量的比特。按照先后顺序处理用于预留长度固定的比特序列349的请求。全局比特缓冲器351通过某种方式表示先进先出缓冲器;提前将早先预留的比特写入比特流中。应注意的是,不同的比特缓冲器348可预留不同的比特量,根据已经编码的符号,该比特量也可随着时间变化;但是在将特定的请求发送给全局比特缓冲器时,已知由该请求预留的比特的数量。
在本发明的一个特定的实施方式中,比特缓冲器348和全局比特缓冲器351如下所述进行操作。由特定的比特缓冲器348预留的比特量由Nx表示。对于不同的比特缓冲器348,该比特数量Nx可不同,并且还可随着时间变化。在本发明的一个优选的实施方式中,由特定的比特缓冲器348预留的比特数量Nx随着时间固定。根据在比特缓冲器348内的比特数量Nx、预留请求的比特数量Nx以及相关的最大码字长度Lx,触发预留固定数量Nx的比特349。要注意的是,每个二进制位编码器310可与一个不同的码字长度Lx相关。如果将二进制位307发送给一个特定的二进制位缓冲器308,该特定的二进制位缓冲器308清空,在全局比特缓冲器内为与特定的二进制位缓冲器连接(通过二进制位编码器)的比特缓冲器348预留不超过一个序列的Nx比特,并且在由与特定的二进制位缓冲器308连接(通过二进制位编码器)的比特缓冲器348的预留请求预留的比特数量Nx与目前存在于该比特缓冲器348内的比特数量Mx之间的差值Nx–Mx小于与相应的二进制位编码器310相关的最大码字长度Lx,那么连接的比特缓冲器349将Nx比特的预留请求349发送给全局比特缓冲器351。全局比特缓冲器351为特定的比特缓冲器348预留Nx比特,并且增大其指示器,用于下一次预留。在全局比特缓冲器内已经预留Nx比特之后,在二进制位缓冲器308内储存二进制位307。如果该单个二进制位确实已经表示与码字相关的二进制位序列,那么二进制位编码器310从二进制位缓冲器308中去除该二进制位,并且将相应的码字347写入连接的比特缓冲器348中。否则(该单个二进制位确实已经表示与码字相关的二进制位序列),由特定的二进制位缓冲器308接受其他二进制位307,直到二进制位缓冲器308包含与码字相关的二进制位序列。在这种情况下,连接的二进制位编码器310从二进制位缓冲器308中去除二进制位序列309,并且将相应的码字347写入连接的比特缓冲器348中。如果在比特缓冲器348内产生的比特数量Mx大于或等于预留的比特数量Nx,那么将首先写入比特缓冲器348中的Nx比特如标号350所示地插入在全局比特缓冲器351中的先前预留的空间内。对于发送给特定的二进制位缓冲器308的下一个二进制位307,执行如上规定的相同工序;即,首先检查是否必须在全局比特缓冲器中预留Nx比特的新数量(如果Nx-Mx小于Lx),然后,将二进制位插入二进制位缓冲器308内等。比特写入器按照已经预留长度固定的比特序列的顺序,写入全局比特缓冲器的长度固定的比特序列。如果在全局比特缓冲器351中的第一长度固定的条目包含实际上已经插入全局比特缓冲器中的长度固定的比特序列(即,不仅仅预留),那么比特写入器353从全局比特缓冲器351中去除该比特序列352的比特,并且将比特354写入比特流中。重复该工序,直到在全局比特缓冲器中的第一长度固定的条目表示预留或可用的条目。如果在全局比特缓冲器中的第一长度固定的条目表示预留的条目,那么在将进一步的比特354写入比特流355中之前,比特写入器353等待,直到该条目装有实际的比特。
在数据包的结尾处,如上所述,刷新二进制位缓冲器。此外,必须通过为比特增加特定的或任意值,来刷新比特缓冲器,直到在全局比特缓冲器中的所有预留的缓冲器条目装入并且写入比特流中。
在图16中,示出了全局比特缓冲器351的可能的状态的两个实例。在实例(a)中,示出了不同的比特缓冲器/二进制位编码器预留不同数量的比特的情况。全局比特缓冲器包含具有实际写入的长度固定的比特序列的3个条目以及具有预留的长度固定的比特序列的4个条目。第一长度固定的条目已经包含实际比特(这些实际比特必须仅仅由比特缓冲器/二进制位编码器2插入);可去除该条目(即,相应的8比特),并且将该条目写入比特流中。下一个条目为二进制位编码器3预留10个比特,但是还未插入实际的比特。不能将该条目写入比特流中;必须等待,直到插入实际的比特。在第二实例(b)中,所有比特缓冲器/二进制位编码器预留相同数量的比特(8比特)。全局比特缓冲器包含4个预留,用于8比特序列,并且包含3个预留,用于实际写入的8比特序列。第一条目包含二进制位编码器3的8比特的预留。在可将任何新比特写入比特流中之前,比特写入器必须等待,直到比特缓冲器/二进制位编码器将8比特的实际值写入该预留的条目内。
图17示出了本发明的实施方式的基本解码器结构的示图,该结构交错固定长度的比特序列。与在图13中所描述的实施方式相比,二进制位解码器322未与单个比特缓冲器连接。相反,每个二进制位解码器322与单独的比特缓冲器358连接,该缓冲器为相应的局部比特流储存比特。所有比特缓冲器358连接至全局比特缓冲器361。将比特流363的比特362插入全局比特缓冲器361内。在特定的比特缓冲器358或连接的二进制位解码器322或二进制位缓冲器320内发生某些事件时,比特缓冲器358将请求359发送给全局比特缓冲器361,通过该请求,从全局比特缓冲器361中去除长度固定的比特序列360,并且将这些比特序列插入特定的比特缓冲器358内。按照先后顺序处理用于长度固定的比特序列359的请求。全局比特缓冲器361表示先进先出缓冲器;提前去除早先插入全局比特缓冲器内的比特。应注意的是,不同的比特缓冲器358可请求不同的比特量,根据已经解码的符号,该比特量也可随着时间变化;但是在将特定的请求发送给全局比特缓冲器时,已知由该请求要求的比特的数量。应注意的是,由于还可直接从比特流中读取码字,所以不一定需要全局比特缓冲器361。在说明处理链的明显分离的不同方面时,主要包含全局比特缓冲器361。
在本发明的一个特定的实施方式中,比特缓冲器358和全局比特缓冲器361如下所述进行操作。由特定的比特缓冲器358请求并读取的比特量由Nx表示,该比特量等于在编码器侧由相应的比特缓冲器写入全局比特缓冲器中的比特量。对于不同的比特缓冲器358,该比特数量Nx可不同,并且还可随着时间变化。在本发明的一个优选的实施方式中,由特定的比特缓冲器358请求并读取的比特数量Nx随着时间固定。根据在比特缓冲器358内的比特数量Mx以及相关的最大码字长度Lx,触发读取固定数量Nx的比特360。要注意的是,每个二进制位解码器322可与一个不同的码字长度Lx相关。如果将对二进制位的请求319发送给一个特定的二进制位缓冲器320,该特定的二进制位缓冲器320清空,并且与特定的二进制位缓冲器320连接(通过二进制位解码器)的比特缓冲器358内的比特数量Mx小于与相应的二进制位解码器322相关的最大码字长度Lx,那么连接的比特缓冲器358将Nx比特的新序列的请求359发送给全局比特缓冲器361。作为对该请求的响应,从全局比特缓冲器361中去除第一Nx比特,并且将Nx比特360的该序列发送给比特缓冲器358,从该比特缓冲器中发送请求。最后,将Nx比特的该序列加入相应的比特缓冲器中。然后,从该比特缓冲器中通过对比特的请求356读取下一个码字357,并且连接的二进制位解码器322将相关的二进制位序列321插入连接的二进制位缓冲器320内。作为对二进制位319的最初请求的最终响应,从二进制位缓冲器320中去除第一二进制位,并且将该经解码的二进制位325发送给二进制位缓冲选择器318。在将下一个二进制位请求319发送给特定的二进制位缓冲器320并且二进制位缓冲器未清空时,从二进制位缓冲器320中去除下一个比特。如果二进制位缓冲器清空,但是在连接的比特缓冲器358内的比特数Mx大于或等于相关的最大码字长度Lx,那么从比特缓冲器中读取下一个码字,并且将新的二进制位序列插入二进制位缓冲器内,从该二进制位缓冲器中去除第一比特,并且将第一比特发送给二进制位缓冲选择器。如果二进制位缓冲器清空,并且在连接的比特缓冲器358内的比特数Mx小于相关的最大码字长度Lx,那么从全局比特缓冲器361中读取下一个序列的Nx比特,并且将该序列插入连接的比特缓冲器358内,从比特缓冲器中读取下一个码字,将一个新二进制位序列插入二进制位缓冲器内,去除该序列的第一二进制位,并且将第一二进制位发送给二进制位缓冲选择器。重复该工序,直到所有语法元素解码。
在数据包的结尾处,可能将比解码所请求的语法元素所需要的二进制位和/或比特更多的二进制位和/或比特插入二进制位缓冲器和/或比特缓冲器内。丢弃并且忽略在二进制位缓冲器中的剩余二进制位以及在比特缓冲器中的剩余比特。
具有低延迟约束的长度固定的比特序列的交错
如上所述,交错长度固定的比特序列的熵编码器和解码器的所描述的实施方式还可与控制编码器缓冲延迟的方案相结合。基本概念与在具有上述延迟控制的实施方式中一样。如果与延迟或延迟的上限相关的测量值(见下文)超过规定的阈值,那么通过刷新相应的二进制位缓冲器(使用与在数据包的结尾处相似的机构),并且潜在地写入额外的比特,用于填充预留的长度固定的缓冲条目的所有比特,来填充第一预留的缓冲器条目。通过这种机构,减少等待的缓冲器条目的数量,直到相关的延迟测量值小于规定的阈值。在解码器侧,必须丢弃已经在编码器侧插入的二进制位和比特,以便遵守延迟约束。对于二进制位和比特的这种丢弃,基本上可使用与在编码器侧相同的机构。
在本发明的一个优选的实施方式中,延迟(或延迟的上限)的测量值为在全局比特缓冲器中的有效缓冲器条目内的比特数量,其中,有效缓冲器条目的数量为预留的长度固定的缓冲器条目的数量加上包含已经写入的比特的长度固定的缓冲器条目的数量。要注意的是,由于如果第一缓冲器条目包含写入的比特,那么将这些写入的比特写入比特流中,所以第一缓冲器条目始终为预留的长度固定的缓冲器条目或可用的缓冲器条目。假设最大允许的缓冲延迟(由应用决定)为D个比特。必须了解编码器和解码器的这个最大缓冲延迟D。在本发明的一个优选的实施方式中,最大缓冲延迟D由应用固定。在本发明的另一个优选的实施方式中,在比特流内部,例如,在数据包的报头(或片段报头)内或者在包含在比特流中的参数组内,用信号表示最大缓冲延迟D。可以比特或字节或多个比特或多个字节为单位,用信号表示最大缓冲延迟D。如果二进制位编码器310将新的长度固定的比特序列的预留请求发送给全局比特缓冲器351,那么在预留一个新的长度固定的缓冲器条目之前,执行以下工序。
如果在全局比特缓冲器中的有效缓冲器条目内的比特数量加上由当前的预留请求预留的比特的数量大于最大缓冲延迟D,那么(预留的)第一缓冲器条目由在下文中描述的工序刷新,直到在全局比特缓冲器中的有效缓冲器条目内的比特数量加上由当前的预留请求预留的比特的数量小于或等于最大缓冲延迟D。预留的长度固定的缓冲器条目的刷新与在数据包的结尾处的刷新相似:通过将具有特定或任意值的二进制位加入连接的二进制位缓冲器308中,刷新与已经预留相应的第一缓冲器条目的比特缓冲器348连接的二进制位编码器310,直到所产生的二进制位序列表示与码字相关的二进制位序列,然后,将码字插入相应的比特缓冲器348内。如上所述,用于将二进制位加入二进制位缓冲器中的一种优选的方法在于,加入产生可能最短的码字的那些二进制位。如果在将码字写入连接的比特缓冲器中并且将长度固定的比特序列潜在地插入全局比特缓冲器内之后,在比特缓冲器内依然具有比特(即,写入的码字没有完全填充预留的长度固定的比特序列),那么将具有特定或任意值的其他比特加入比特缓冲器中,直到从比特缓冲器中去除所有比特,并且将所有比特写入预留的缓冲器条目中。最后,在该工序结束时,从全局比特缓冲器中去除整个缓冲器条目(在全局比特缓冲器内的第一长度固定的条目),并且将该条目写入比特流中。
在解码器侧,执行一种相似的工序,用于丢弃已经添加的二进制位和比特,以遵守延迟约束。因此,解码器保持计算已经从全局比特缓冲器中读取的比特的计数器C(可在全局比特缓冲器中保持该计数器)。在开始解码数据包时,初始化计数器C(例如,通过零),并且在读取长度固定的比特序列之后,该计数器增大。如果从全局比特缓冲器361中读取长度固定的Nx比特序列,那么计数器C增大Nx。除了整体计数器C以外,每个比特缓冲器358还包含计数器Cx,在将最后的长度固定的比特序列读入相应的比特缓冲器358内之前,该计数器储存比特计数器C的值。在特定的比特缓冲器358读取一个新的长度固定的比特序列时,作为第一步骤,将其计数器Cx设置为等于C,然后,从全局比特缓冲器361中读取长度固定的比特序列。在将对二进制位的请求319发送给特定的二进制位缓冲器320并且在连接的比特缓冲器358的整体计数器C和计数器Cx之间的差值(C-Cx)大于最大缓冲延迟D时,丢弃并且忽略目前储存在特定的二进制位缓冲器320内的所有二进制位以及储存在连接的比特缓冲器358内的所有比特。除了该额外的步骤以外,还如上所述,运行解码。如果发送对二进制位的请求319的二进制位缓冲器320清空(在已经接收二进制位请求之后,在第一步骤中,由于已经去除所有二进制位或者由于低延迟机构确实丢弃所有二进制位),那么连接的二进制位解码器322试图从连接的比特缓冲器358中读取一个新码字。如果在比特缓冲器358内的比特数量小于最大码字长度,那么在读取码字之前,从全局比特缓冲器361中读取一个新的长度固定的比特序列等。
在已经描述实施方式(根据这些实施方式,甚至先前的编码用于压缩视频数据)之后,描述一个更进一步的实施方式,用于实现本发明的实施方式,根据在一方面的压缩率和另一方面的查找表和计算开销之间的良好权衡,该实施方式使该实现方式尤其有效。具体地,以下实施方式能够使用在计算上不太复杂的长度可变的代码,以便使单独的比特流进行熵编码,并且有效地覆盖一部分概率估计值。在下面所描述的实施方式中,符号具有二进制位的性质,并且在下面提出的VLC代码有效地包括由例如RLPS表示的概率估计值,该估计值在[0;0.5]内延伸。
具体地,下述实施方式分别描述了在图7到17中的单独熵编码器310和解码器322的可能的实现方式。由于发生在图像或视频压缩应用中,所以这些实施方式适合于将二进制位(即,二进制位符号)编码。因此,这些实施方式还可适用于图像或视频编码,其中,将这种二进制位符号分别分区成要编码的二进制位307的一个或多个流以及要解码的比特流324,其中,每个这样的二进制位流可被视为实现伯努利过程。下述实施方式使用在下文中解释的各种所谓的变量到变量代码(v2v代码)的一个或多个,以将二进制位流编码。可将v2v代码视为具有相同数量的码字的两个无前缀代码:主要和次要无前缀代码。主要无前缀代码的每个码字与次要无前缀代码的一个码字相关。根据下述实施方式,至少一个编码器310和解码器322如下进行操作:为了将特定的二进制位307序列编码,每当从缓冲器308中读取主要无前缀代码的码字时,将次要无前缀代码的相应码字写入比特流312中。相同的程序用于将这种比特流324解码,但是主要和次要无前缀代码互换。即,为了将比特流324解码,每当从各个比特流324中读取次要无前缀代码的码字时,将主要无前缀代码的相应码字写入缓冲器320中。
有利地,下面描述的代码不需要查找表。通过有限状态机的形式,可实现代码。通过简单的构造规则,可生成在此处提出的v2v代码,以便不需要为码字储存大型表格。相反,简单的算法可用于执行编码或解码。下面描述了三个构造规则,其中,其中的两个规则可参数化。这些构造规则包括上述概率间距的不同的或者甚至分离的部分,并且因此如果共同使用(例如,所有并列的三个代码(每个代码用于编码器/解码器中的不同的编码器/解码器)或其中的两个),那么特别有利。通过下面描述的构造规则,能够设计一组v2v代码,以便对于具有任意概率p的伯努利过程,一个代码在余码长度方面运转良好。
如上所述,可为每个流或通过交错的方式分别独立地执行流312和324的编码和解码。然而,这并非专门用于所提出的类别的v2v代码,因此,在下文中,仅仅为这三个构造规则中的每个描述特定码字的编码和解码。然而,要强调的是,涉及交错解决方案的所有上述实施方式还可分别与目前描述的代码或编码器和解码器310和322相结合。
构造规则1:‘一元二进制位管(pipe)’代码或编码器/解码器310和322:
一元二进制位管代码(PIPE=概率间隔分区熵)为特别版本的所谓的‘二进制位管’代码,即,适合于将任何单独的比特流12和24编码的代码,二进制位符号统计的每个传递数据属于上述概率范围[0;0.5]的某个概率子间隔。首先描述二进制位管代码的构造。二进制位管代码可由具有至少三个码字的任何无前缀代码构成。为了形成v2v代码,将无前缀代码用作主要和次要代码,但是次要无前缀代码的两个码字互换。这表示,除了两个码字以外,将二进制位写入未改变的比特流中。通过这种技术,仅仅需要与信息一起储存一个无前缀代码,两个码字互换,从而减少内存消耗。要注意的是,仅仅在不同长度的码字互换时,具有意义,这是因为另外,比特流与二进制位流具有相同的长度(忽略在二进制位流的结尾可发生的效应)。
由于该构造规则,二进制位管代码的一个突出性能在于,如果主要和次要无前缀代码互换(同时保持码字映射),那么所产生的v2v代码与最初的v2v代码相同。因此,对于二进制位管代码,编码算法和解码算法相同。
一元二进制位管代码由特别的无前缀代码构成。如下构造该特别的无前缀代码。首先,生成由n个一元码字构成的无前缀代码,从'01'、'001'、'0001'...开始,直到产生n个码字。n为一元二进制位管代码的参数。从最长的码字中去除末尾1。这与缩短的一元代码对应(但是没有码字'0')。然后,生成n–1一元码字,从'10'、'110'、'1110'...开始,直到产生n–1个码字。从这些码字中最长的一个中去除末尾0。这两个无前缀代码的并集用作输入,以生成一元二进制位管代码。互换的两个码字为仅仅由0构成的码字和仅仅由1构成的码字。
n=4的实例:
Figure GDA0002398175490000481
构造规则2:‘一元到莱斯(rice)’代码以及一元到莱斯编码器/解码器10和22:
一元到莱斯代码将缩短的一元代码用作主要代码。即,生成一元码字,从'1'、'01'、'001'...开始,直到生成2n+1码字,并且从最长的码字中去除末尾1。n为一元到莱斯代码的参数。次要无前缀代码如下由主要无前缀代码的码字构成。将码字‘1’分配给仅仅由0构成的主要码字。所有其他码字由码字‘0’的级联以及主要无前缀代码的相应码字0的数量的n比特二元表示构成。
n=3的实例:
Figure GDA0002398175490000491
要注意的是,这与将无限的一元代码映射到莱斯参数为2n的莱斯代码中相同。
构造规则3:‘三个二进制位’代码
三个二进制位代码显示为:
Figure GDA0002398175490000492
具有以下性能:主要代码(符号序列)具有固定的长度(始终为三个二进制位),并且通过使1的数量递增,将码字分类。
接下来,描述三个二进制位代码的一个有效实现方式。无需通过以下方式将表格分类,可实现三个二进制位代码的编码器和解码器。
在编码器(10中的任一个)中,从二进制位流中读取三个二进制位。如果这三个二进制位刚好包含一个1,那么将码字‘1’写入比特流中,然后是由1的位置的二元表示构成的两个二进制位(从右边的00开始)。如果这三个二进制位刚好包含一个0,那么将码字‘111’写入比特流中,然后是由0的位置的二元表示构成的两个二进制位(从右边的00开始)。分别将剩余码字‘000’和‘111’映射到‘0’和‘11111’中。
在解码器(322中的任一个)中,从各个比特流324中读取一个二进制位或比特。如果等于‘0’,那么将码字‘000’解码成二进制位流21。如果等于‘1’,那么从比特流324中读取两个以上的二进制位。如果这两个比特不等于‘11’,那么解释为数量的二元表示,并且将两个0和一个1解码成比特流,以便1的位置由该数量决定。如果两个比特等于‘11’,那么读取两个更多的比特,并且这两个更多的比特解释为数量的二元表示,如果该数量小于3,那么解码两个1和一个0,并且该数量决定0的位置。如果等于3,那么将‘111’解码成二进制位流。
接下来描述一元二进制位管代码的一个有效实现方式。使用计数器可有效地实现一元二进制位管代码的编码器和解码器。由于二进制位管代码的结构,所以容易实现二进制位管代码的编码和解码:
在编码器(10中的任一个)中,如果码字的第一二进制位等于‘0’,那么处理二进制位,直到发生‘1’或者直到读取n个0(包括码字的第一‘0’)。如果发生‘1’,那么将所读取的二进制位写入未改变的比特流中。否则(即,读取n个0),将n–1个1写入比特流中。如果码字的第一二进制位等于‘1’,那么处理二进制位,直到发生‘0’,或者直到读取n–1个1(包括码字的第一个‘1’)。如果发生‘0’,那么将所读取的二进制位写入未改变的比特流中。否则(即,读n–1个1),将n个0写入比特流中。
在解码器(322中的任一个)中,就编码器而言,使用相同的算法,这是因为这同样适用于上述二进制位管代码。
接下来描述一元到莱斯代码的一个有效实现方式。使用现在要描述的计数器,可有效地实现一元到莱斯代码的编码器和解码器。
在编码器(310中的任一个)中,从二进制位流中读取二进制位,直到发生一个1或者读取2n个0。计算0的数量。如果所计算的数量等于2n,那么将码字‘1’写入比特流中。否则,写入‘0’,随后是使用n个比特写入的所计算的数量的二元表示。
在解码器(322中的任一个)中,读取一个比特。如果等于‘1’,那么将2n个0解码成二进制位串。如果等于‘0’,那么读取n个更多的比特,并且将这些比特解释为数量的二元表示。将该数量的0解码成二进制位流,然后是‘1’。
换言之,刚刚描述的实施方式描述了一种编码器,用于将符号序列303进行编码,包括:分配器316,被配置为根据包含在这符号序列的先前符号内的信息,将多个参数305分配给这符号序列中的每个符号;多个熵编码器310,每个熵编码器被配置为将转发给各个熵编码器310的符号307转换成各个比特流312;以及选择器,被配置为将每个符号303转发给多个熵编码器10中所选择的一个,根据分配给各个符号303的参数305的数量,来进行选择。根据刚刚描述的实施方式,熵编码器的至少第一子集可为长度可变的编码器,该编码器被配置为分别将在这串符号307内的长度可变的符号序列映射到要插入比特流312内的长度可变的码字中,第一子集的每个熵编码器310使用双射映射规则,根据该规则,将具有(2n-1)≥3个码字的主要无前缀代码的码字映射到与主要前缀代码相同的次要无前缀代码的码字中,以便将主要无前缀代码的仅有两个码字映射到次要无前缀代码的相同码字中,而主要和次要无前缀代码的这两个码字具有不同的长度并且通过互换的方式被映射到彼此之上,其中,熵编码器可使用不同的n,以便包括上述概率间隔的一个间隔的不同部分。可构成第一无前缀代码,使第一无前缀代码的码字为(a,b)2、(a,a,b)3,…、(a,…,a,b)n、(a,…,a)n、(b,a)2、(b,b,a)3,…、(b,…,b,a)n-1、(b,…,b)n-1,并且通过互换的方式被映射到彼此之上的两个码字为(a,…,a)n和(b,…,b)n-1,b≠a,并且a,b∈{0,1}。然而,能够具有可选方式。
换言之,第一子集的熵编码器中的每个可被配置为在将转发给各个熵编码器的符号转换成各个比特流时,检查转发给各个熵编码器的第一符号,以确定:(1)第一符号等于{0,1},在这种情况下,各个熵编码器被配置为检查转发给各个熵编码器的以下符号,以确定:(1.1)在位于第一符号之后的随后的n-1个符号内发生b,b≠a,并且b∈{0,1},在这种情况下,各个熵编码器被配置为将码字写入各个比特流中,该比特流等于第一符号,转发给各个熵编码器的以下符号位于第一符号之后,直到符号b;还是(1.2)在位于第一符号之后的随后的n-1个符号内未发生b,在这种情况下,各个熵编码器被配置为将码字写入各个比特流中,该比特流等于(b,…,b)n-1;还是(2)第一符号等于b,在这种情况下,各个熵编码器被配置为检查转发给各个熵编码器的以下符号,以确定:(2.1)在位于第一符号之后的随后的n-2个符号内发生a,在这种情况下,各个熵编码器被配置为将码字写入各个比特流中,该比特流等于第一符号,转发给各个熵编码器的以下符号位于第一符号之后,直到符号a;还是(2.2)在位于第一符号之后的随后的n-2个符号内未发生a,在这种情况下,各个熵编码器被配置为将码字写入各个比特流中,该比特流等于(a,…,a)n
此外或或者,第二子集的熵编码器10可为长度可变的编码器,该编码器被配置为分别将长度可变的符号序列映射到长度固定的码字中,第二子集的每个熵编码器使用双射映射规则,根据该规则,将具有类型{(a),(ba),(bba),…,(b…ba),(bb…b)}(b≠a并且a,b∈{0,1})的2n+1个码字的主要缩短的一元代码的码字映射到次要无前缀代码的码字中,以便将主要缩短的一元代码的码字(bb…b)映射到次要无前缀代码的码字(c)上,并且将主要缩短的一元代码的所有其他码字{(a),(ba),(bba),…,(b…ba)}映射到以(d)(c≠d并且c,d∈{0,1})为前缀并且以n比特字为后缀的码字上,其中,熵编码器使用不同的n。第二子集的熵编码器中的每个可被配置为使n比特字为在主要缩短的一元代码的各个码字内的b的数量的n比特表示。然而,能够具有可选方式。
而且,从各个编码器10的操作模式的角度来看,第二子集的熵编码器中的每个可被配置为在将转发给各个熵编码器的符号转换成各个比特流时,在转发给各个熵编码器的符号序列内计算b的数量,直到发生a,或者直到转发给各个熵编码器的这符号序列的数量达到2n,该序列的所有2n符号为b,并且(1)如果b的数量等于2n,那么将c作为次要无前缀代码的码字写入各个比特流中,c∈{0,1},并且(2)如果b的数量小于2n,那么将次要无前缀代码的码字写入各个比特流中,该码字具有作为前缀的(d)(c≠d并且d∈{0,1})以及根据作为后缀的b的数量决定的n比特字。
而且,此外或可选地,熵编码器10中预定的一个可为长度可变的编码器,该编码器被配置为分别将长度固定的符号序列映射到长度可变的码字中,预定的熵编码器使用双射映射规则,根据该规则,将主要代码的长度3的23个码字映射到次要无前缀代码的码字中,以便将主要代码的码字(aaa)3(a∈{0,1})映射到码字(c)(c∈{0,1})上,具有恰好一个b(b≠a并且b∈{0,1})的主要代码的所有三个码字映射到具有作为前缀的(d)(c≠d并且d∈{0,1})以及作为后缀的在第一组2比特字中的各个第一2比特字的码字上,恰好具有一个a的主要代码的所有三个码字映射到具有作为前缀的(d)以及并非第一组的元素的第一2比特字和在第二组2比特字中的第二2比特字的作为后缀的级联的码字上,并且其中,将码字(bbb)3映射到一个码字上,该码字具有作为前缀的(d)以及并非第一组的元素的第一2比特字和并非第二组的元素的第二2比特字的作为后缀的级联。恰好具有一个b的主要代码的码字的第一2比特字可为在主要代码的各个码字内的b的位置的2比特表示,并且恰好具有一个a的主要代码的码字的第二2比特字可为在主要代码的各个码字内的a的位置的2比特表示。然而,能够具有可选方式。
而且,熵编码器中预定的一个可被配置为在将转发给预定的熵编码器的符号转换成各个比特流时,在三联体内检查进入预定的熵编码器中的符号,(1)该三联体由a构成,在这种情况下,预定的熵编码器被配置为将码字(c)写入各个比特流中,(2)该三联体恰好包括一个b,在这种情况下,预定的熵编码器被配置为将码字写入各个比特流中,该码字具有作为前缀的(d)以及作为后缀的在三联体内的b的位置的2比特表示;(3)该三联体恰好包括一个a,在这种情况下,预定的熵编码器被配置为将码字写入各个比特流中,该码字具有作为前缀的(d)以及并非第一组的元素的第一2比特字和在三联体中的a的位置的2比特表示的作为后缀的级联;还是(4)该三联体由b构成,在这种情况下,预定的熵编码器被配置为将码字写入各个比特流中,该码字具有作为前缀的(d)以及并非第一组的元素的第一2比特字和并非第二组的元素的第一2比特字的作为后缀的级联。
关于解码侧,刚刚描述的实施方式公开了一种解码器,用于重构符号序列326,包括:多个熵解码器322,每个熵解码器被配置为将各个比特流324转换成符号321;分配器316,被配置为根据包含在这符号序列的先前重构的符号内的信息,将多个参数分配给符号序列中的每个符号326;以及选择器318,被配置为从多个熵解码器中所选择的一个中检索要重构的这符号序列的每个符号325,根据为各个符号限定的参数的数量,来进行选择。根据刚刚描述的实施方式,熵解码器322的至少第一子集是长度可变的解码器,该解码器被配置为分别将长度可变的码字映射到长度可变的符号序列中,第一子集的每个熵解码器322使用双射映射规则,根据该规则,将具有(2n-1)≥3个码字的主要无前缀代码的码字映射到与主要前缀代码相同的次要无前缀代码的码字中,以便将主要无前缀代码的仅有两个码字映射到次要无前缀代码的相同码字中,而主要和次要无前缀代码的这两个码字具有不同的长度并且通过互换的方式被映射到彼此之上,其中,熵编码器使用不同的n。可构成第一无前缀代码,使第一无前缀代码的码字为(a,b)2、(a,a,b)3,…、(a,…,a,b)n、(a,…,a)n、(b,a)2、(b,b,a)3,…、(b,…,b,a)n-1、(b,…,b)n-1,并且通过互换的方式被映射到彼此之上的两个码字可为(a,…,a)n和(b,…,b)n-1,b≠a,并且a,b∈{0,1}。然而,能够具有可选方式。
第一子集的熵编码器中的每个可被配置为在将各个比特流转换成符号时,检查各个比特流的第一比特,以确定:(1)第一比特等于a 0{0,1},在这种情况下,各个熵编码器被配置为检查各个比特流的以下比特,以确定:(1.1)在位于第一比特之后的随后的n-1个符号内发生b,b≠a,并且b0{0,1},在这种情况下,各个熵解码器被配置为重构符号序列,该符号序列等于第一比特,各个比特流的以下比特位于第一比特之后,直到比特b;还是(1.2)在位于第一比特之后的随后的n-1个符号内未发生b,在这种情况下,各个熵解码器被配置为重构符号序列,该符号序列等于(b,…,b)n-1;还是(2)第一比特等于b,在这种情况下,各个熵解码器被配置为检查各个比特流的以下比特,以确定:(2.1)在位于第一比特之后的随后的n-2个符号内发生a,在这种情况下,各个熵解码器被配置为重构符号序列,该符号序列等于第一比特,各个比特流的以下比特位于第一比特之后,直到符号a;还是(2.2)在位于第一比特之后的随后的n-2个符号内未发生a,在这种情况下,各个熵解码器被配置为重构符号序列,该符号序列等于(a,…,a)n
此外或可选地,至少第二子集的熵解码器322可为长度可变的解码器,该解码器被配置为分别将长度固定的码字映射到长度可变的符号序列中,第二子集的每个熵解码器使用双射映射规则,根据该规则,将次要无前缀代码的码字映射到具有类型{(a),(ba),(bba),…,(b…ba),(bb…b)}(b≠a并且a,b∈{0,1})的2n+1个码字的主要缩短的一元代码的码字上,以便将次要无前缀代码的码字(c)映射到主要缩短的一元代码的码字(bb…b)上,并且将以(d)(c≠d并且c,d∈{0,1})为前缀并且以n比特字为后缀的码字映射到主要缩短的一元代码的其他码字{(a),(ba),(bba),…,(b…ba)}的各个上,其中,熵解码器使用不同的n。第二子集的熵解码器中的每个可被配置为使n比特字为在主要缩短的一元代码的各个码字内的b的数量的n比特表示。然而,能够具有可选方式。
第二子集的熵解码器中的每个可为长度可变的解码器,该解码器被配置为分别将长度固定的码字映射到长度可变的符号序列中,并且被配置为在将各个熵解码器的比特流转换成符号时,检查各个比特流的第一比特,以确定:(1)第一比特等于c(c∈{0,1}),在这种情况下,各个熵解码器被配置为重构等于(bb…b)2 n(b∈{0,1})的符号序列;还是(2)第一比特等于d(c≠d并且c,d∈{0,1}),在这种情况下,各个熵解码器被配置为从在第一比特之后的各个比特流的n个其他比特中确定n比特字,并且从中重构符号序列,该符号序列为{(a),(ba),(bba),…,(b…ba),(bb…b)}类型(b≠a并且b∈{0,1}),b的数量取决于n比特字。
此外或可选地,熵解码器322中预定的一个可为长度可变的解码器,该解码器被配置为分别将长度可变的码字映射到长度固定的符号序列中,预定的熵解码器使用双射映射规则,根据该规则,将次要无前缀代码的码字映射到主要代码的长度3的23个码字中,以便将码字(c)(c∈{0,1})映射到主要代码的码字(aaa)3(a∈{0,1})上,具有作为前缀的(d)(c≠d并且d∈{0,1})以及作为后缀的在第一组的三个2比特字中的各个第一2比特字的码字映射到具有恰好一个b(b≠a并且b∈{0,1})的主要代码的所有三个码字上,将具有作为前缀的(d)以及并非第一组的元素的第一2比特字和在第二组的三个2比特字中的第二2比特字的作为后缀的级联的码字映射到恰好具有一个a的主要代码的所有三个码字上,并且将具有作为前缀的(d)以及并非第一组的元素的第一2比特字和并非第二组的元素的第二2比特字的作为后缀的级联的码字映射到码字(bbb)3上。恰好具有一个b的主要代码的码字的第一2比特字可为在主要代码的各个码字内的b的位置的2比特表示,并且恰好具有一个a的主要代码的码字的第二2比特字可为在主要代码的各个码字内的a的位置的2比特表示。然而,能够具有可选方式。
熵解码器中预定的一个可为长度可变的解码器,该解码器被配置为分别将长度可变的码字映射到三个符号的符号序列中,并且被配置为在将各个熵解码器的比特流转换成符号时,检查各个比特流的第一比特,以确定:(1)各个比特流的第一比特等于c(c∈{0,1}),在这种情况下,预定的熵解码器被配置为重构等于(aaa)3(a为0{0,1})的符号序列;还是(2)各个比特流的第一比特等于d(c≠d并且c,d∈{0,1}),在这种情况下,预定的熵解码器被配置为从在第一比特之后的各个比特流的2个其他比特中确定第一2比特字,并且检查第一2比特字,以确定:(2.1)第一2比特字并非第一组的三个2比特字的元素,在这种情况下,预定的熵解码器被配置为重构具有恰好一个b(b≠a并且b为0{0,1})的符号序列,在各个符号序列内的b的位置取决于第一2比特字,还是(2.2)第一2比特字是第一组的元素,在这种情况下,预定的熵解码器被配置为从在两个比特之后的各个比特流的另外2个比特中确定第二2比特字,从所述两个比特中已经确定第一2比特字,并且该预定的熵解码器被配置为检查第二2比特字,以确定(3.1)第二2比特字并非第二组的三个2比特字的元素,在这种情况下,预定的熵解码器被配置为重构具有恰好一个a的符号序列,在各个符号序列内的a的位置取决于第二2比特字,还是(3.2)第二2比特字是第二组的三个2比特字的元素,在这种情况下,预定的熵解码器被配置为重构等于(bbb)3的符号序列。
现在,在已经描述视频编码方案的一般概念之后,相对于以上实施方式描述本发明的实施方式。换言之,通过使用以上方案,可实现下述实施方式,反之亦然,使用并且利用下述实施方式,可实现以上编码方案。
在相对于图7到图9描述的以上实施方式中,根据PIPE概念,实现图1到6的熵编码器和解码器。一个特别的实施方式使用算法单概率装置状态编码器/解码器310和322。如下所述,根据一个替换的实施方式,实体306-310和相应的实体318到322可由共同的算术编码引擎代替,该引擎仅仅管理一个共同的状态R和L,并且将所有符号编码到共同的比特流内,从而丧失有关并行处理的本PIPE概念的有利方面,但是不需要交错局部比特流,下面进一步进行讨论。这样,通过更新(表格查找)来估计上下文概率的概率状态的数量可高于进行概率间隔细分的概率状态的数量。即,与在表格Rtab内编入索引之前量化概率间隔宽度值相似,还可量化概率状态指数。因此,可扩展单个编码器/解码器310和322的可能的实现方式的以上描述,用于熵编码器/解码器318到322/306到310的实现方式的一个实例,作为上下文自适应二进制位算术编码/解码引擎。
更确切地说,根据一个实施方式,连接至在此处用作上下文分配器的参数分配器的输出的熵编码器通过以下方式进行操作:
0、分配器304转发二进制位值以及概率参数。概率为pState_current[bin]。
1、因此,熵编码引擎接收:1)valLPS,2)二进制位以及3)概率分布估计值pState_current[bin]。pState_current[bin]可具有比Rtab的可识别的概率状态指数的数量更多的状态。如果这样的话,例如,通过忽视LSB,可量化pState_current[bin],m大于或等于1并且优选地为2或3,以便获得p_state,即,然后用于访问表格Rtab的指数。然而,可省略量化,即,p_state可为pState_current[bin]。
2、然后,量化R(如上所述,使用/管理一个R(以及具有一个共同的比特流的相应的L),用于p_state的所有可识别的值,或者每个p_state的可识别的值具有一个R(以及每个R/L对具有相关的局部比特流的相应的L),后一种情况与每个这样的值具有一个二进制位编码器310对应)。
q_index=Qtab[R>>q](或者某种其他形式的量化)
3、然后,确定RLPS和R:
RLPS=Rtab[p_state][q_index];在Rtab内储存了预先计算的值,用于p[p_state]·Q[q_index]
R=R–RLPS【即,初步预先更新R,犹如“二进制位”为MPS】
4、计算新的部分间隔:
如果(二进制位=1–valMPS),那么
L←L+R
R←RLPS
5、重正化(renomalization)L和R,写入比特
同样,连接至参数分配器(在此处用作上下文分配器)的输出的熵编码器通过以下方式进行操作:
0、分配器304转发二进制位值以及概率参数。概率为pState_current[bin]。
1、因此,熵解码引擎接收对二进制位的请求以及:1)valLPS,以及2)概率分布估计值pState_current[bin]。pState_current[bin]可具有比Rtab的可识别的概率状态指数的数量更多的状态。如果这样的话,例如,通过忽视LSB,可量化pState_current[bin],m大于或等于1并且优选地为2或3,以便获得p_state,即,然后用于访问表格Rtab的指数。然而,可省略量化,即,p_state可为pState_current[bin]。
2、然后,量化R(如上所述,使用/管理一个R(以及具有一个共同的比特流的相应的V),用于p_state的所有可识别的值,或者每个p_state的可识别的值具有一个R(以及每个R/L对具有相关的局部比特流的相应的V),后一种情况与每个这样的值具有一个二进制位编码器310对应)。
q_index=Qtab[R>>q](或者某种其他形式的量化)
3、然后,确定RLPS和R:
RLPS=Rtab[p_state][q_index];在Rtab内储存了预先计算的值,用于p[p_state]·Q[q_index]
R=R–RLPS【即,初步预先更新R,犹如“二进制位”为MPS】
4、根据部分间隔的位置,确定二进制位:
如果(V≥R),那么
bin←1–valMPS(将二进制位解码为LPS;二进制位缓冲选择器18通过使用该二进制位信息和valMPS获得实际的二进制位值)
V←V-R
R←RLPS
否则
bin←valMPS(将二进制位解码为MPS;通过使用该二进制位信息和valMPS获得实际的二进制位值)
5、重正化R,读出一个比特并且更新V
如上所述,分配器4将pState_current[bin]分配给每个二进制位。根据上下文选择,可进行相关联。即,分配器4可使用上下文索引ctxIdx来选择上下文,该上下文反过来具有与其相关的各个pState_current。每当已经将概率pState_current[bin]用于当前的二进制位中时,可进行一次概率更新。根据解码的比特的值,进行概率状态pState_current[bin]的更新:
如果(比特=bit=1–valMPS),那么
pState_current←Next_State_LPS[pState_current]
如果(pState_current=0),那么valMPS←1–valMPS
否则
pState_current←Next_State_MPS[pState_current]
如果提供一个以上的上下文,那么在上下文方面(context-wise)进行调整,即,pState_current[ctxIdx]用于进行编码,然后,使用(分别被编码的或解码的)当前的二进制位值来更新。
如下面更详细地概述,根据现在描述的实施方式,可选地实现编码器和解码器,以在不同的模式中进行操作,即,低复杂度(LC)和高效率(HE)模式。在下文中,在PIPE编码方面对此进行了说明(然后提及LC和HEPIPE模式),但是复杂度可扩展细节的描述可容易地传递给熵编码/解码引擎的其他实现方式,例如,使用一个共同的上下文自适应的算术编码器/解码器的实施方式。
根据下述实施方式,这两种熵编码模式可分享
·相同的语法和语义(分别用于语法元素序列301和327)
·相同的二值化方案,用于所有语法元素(目前规定用于CABAC)(即,无论是否激活该模式,二值化器都可进行操作)
·使用相同的PIPE代码(即,无论是否激活该模式,二进制位编码器/解码器都可进行操作)
·使用8比特概率模型初始化值(代替目前规定用于CABAC的16比特初始化值)
一般而言,LC-PIPE与HE-PIPE在处理复杂性上不同,例如,为每个二进制位选择PIPE路径312的复杂性。
例如,LC模式可在以下约束条件下进行操作:对于每个二进制位(binIdx),可具有恰好一个概率模型,即,一个ctxIdx。即,在LC PIPE内未提供上下文选择/适应。然而,使用上下文,可将特定的语法元素(例如,用于剩余编码的那些语法元素)编码,下面进一步进行概述。而且,所有概率模型可具有非适应性,即,在具有适当的模型概率的每个片段开始时,可初始化所有模型(根据片段类型和片段QP的选择),并且在处理片段的整个过程中,所有模型可保持固定。例如,可仅仅支持与8个不同的PIPE代码310/322对应的8个不同的模型概率,均用于上下文建模和编码。可将用于剩余编码的特定的语法元素(即,significance_coeff_flag和coeff_abs_level_greaterX(X=1,2))分配给概率模型,下面更详细地概述这些语法元素的语义,以便通过相同的模型概率,编码/解码由例如4个语法元素构成的(至少)组。与CAVLC相比,LC-PIPE模式大致实现相同的R-D性能和相同的吞吐量。
HE-PIPE可被配置为与H.264的CABAC在概念上相似,具有以下差异:二进制位算术编码(BAC)由PIPE编码代替(与在LC-PIPE情况中一样)。每个概率模型(即,每个ctxIdx)可由pipeIdx和refineIdx表示,其中,其值在从0到7的范围内的pipeIdx表示8个不同的PIPE代码的模型概率。该变化仅仅影响了状态的内部表示,并不影响状态机(即,概率估计)本身的性能。如下面更详细地所述,概率模型的初始化可如上所述使用8比特初始化值。沿着与正向扫描(例如,用于重要图编码中)相同的扫描路径,可执行语法元素coeff_abs_level_greaterX(X=1,2)、coeff_abs_level_minus3以及coeff_sign_flag(从以下讨论中,其语义显而易见)的反向扫描。还可简化用于将coeff_abs_level_greaterX(X=1,2)编码的上下文推导。与CABAC相比,所提出的HE-PIPE以更好的吞吐量大致实现了相同的R-D性能。
显而易见,例如,通过显示上述上下文自适应二进制位算法编码/解码引擎,以便该引擎在不同的模式中进行操作,容易生成上述模式。
因此,根据按照本发明的一个方面的一个实施方式,如图18中所示,可构成用于将数据流解码的解码器。解码器用于将数据流401(例如,交错的数据流340)进行解码,媒体数据(例如,视频数据)编码成该数据流。解码器包括模式开关400,其被配置为根据数据流401激活低复杂度模式或高效率模式。为此,数据流401可包括语法元素(例如,二元语法元素),在激活低复杂度模式的情况下,该语法元素具有二进制位值1,在激活高效率模式的情况下,该语法元素具有二进制位值0。显然,可切换在二进制位值和编码模式之间的相关性,并且还可使用具有两个以上可能值的非二进制位语法元素。由于在接收各个语法元素之前,在这两种模式之间的实际选择还不明显,所以例如,该语法元素可包含在使用固定的概率估计值或概率模式编码的数据流401的某个主要报头内,或者该语法元素可照原样写入数据流401内,即,使用旁路(bypass)模式。
而且,图18的解码器包括多个熵解码器322,每个熵解码器被配置为将在数据流401内的码字转换成部分符号序列321。如上所述,在一方面的熵解码器322的输入和另一方面的应用数据流401的图18的解码器的输入之间,可连接解交错器404。而且,已经如上所述,每个熵解码器322可与各个概率间隔相关联,在熵解码器322处理MPS和LPS(而非绝对符号值)的情况下,各种熵解码器的概率间隔共同包括从0到1或者从0到0.5的整个概率间隔。上面已经描述了有关该问题的详情。随后,假设解码器322的数量为8,将PIPE指数分配给每个解码器,但是任何其他数量也可行。而且,优化这些编码器中的一个(在下文中,作为例证,该编码器为具有pipe_id 0的编码器),用于具有等概率统计的二进制位,即,其二进制位值同样可能采用1和0。即,解码器可仅仅传递二进制位。各个编码器310同样进行操作。甚至可省略分别由选择器402和502根据最大概率的二进制位值valMPS的值进行的任何二进制位操纵。换言之,各个部分流的熵已经优化。
而且,图18的解码器包括选择器402,其被配置为从多个熵解码器322中所选择的一个中检索符号序列326的每个符号。如上所述,选择器402可分成参数分配器316和选择器318。去符号化器314被配置为将这序列326符号去符号化,以便获得一语法元素序列327。重构器404被配置为根据这语法元素序列327重构媒体数据405。选择器402被配置为根据低复杂度模式和高效率模式中激活的一个(由箭头406表示)来进行选择。
如上所述,重构器404可为基于预测块的视频解码器的一部分,该解码器在语法元素的固定语法和语义上进行操作,即,由模式开关400相对于模式选择来固定。即,重构器404的构成没有模式可切换性。更确切地说,由于由模式开关400提供的模式可切换性,所以重构器404未增加实现费用,并且无论开关400选择哪种模式,至少残留数据和预测数据的功能都保持不变。然而,这同样适用于熵解码器322。在这两种模式中使用所有这些解码器322,因此,虽然图18的解码器与这两种模式(低复杂度和高效率模式)可兼容,但是没有额外的实现费用。
一方面,应注意的是,图18的解码器不仅能够在一种模式或另一种模式中在独立的数据流上进行操作。确切地说,图18的解码器以及数据流401可被配置为使在一个媒体数据片段期间(例如,在视频或某个音频片段期间),甚至能够在这两种模式之间进行切换,以便例如,使用从解码器到编码器的反馈通道,根据外部或环境条件(例如,电池状态等),在解码侧控制编码复杂度,以便相应地对模式选择进行锁相环控制。
因此,图18的解码器在这两种情况(在选择LC模式或选择HE模式的情况下)相似地进行操作。重构器404使用语法元素来进行重构,并且通过处理或遵守某个语法结构规定,要求预定语法元素类型的当前语法元素。去符号化器314要求多个二进制位,以便为由重构器404要求的语法元素产生有效的二值化。显然,在二进制位字母表的情况下,按照二进制位语法元素目前的要求,由去符号化器314进行的二值化减少到仅仅将各个二进制位/符号326传递给重构器404。
然而,选择器402在由模式开关400选择的模式上独立运行。选择器402的操作模式往往在高效率模式的情况下更复杂,并且在低复杂度模式的情况下不太复杂。而且,以下讨论显示了选择器402在不太复杂的模式中的操作模式还往往减小速率,在从熵解码器322中检索连续的符号时,选择器402通过该速率改变在熵解码器322之中的选择。换言之,在低复杂度模式中,从在多个熵解码器322之中的相同的熵解码器中检索直接连续的符号的概率增大。反过来,这允许从熵解码器322中更快速地检索符号。反过来,在高效率模式中,选择器402的操作模式往往导致在熵解码器322之中进行选择,其中,与各个所选择的熵解码器322相关的概率间隔更密切地适合目前由选择器402检索的符号的实际符号统计,从而在根据高效率模式生成各个数据流时,在编码侧产生更好的压缩率。
例如,可如下实现在这两种模式中的选择器402的不同性能。例如,选择器402可被配置为在激活高效率模式的情况下,根据符号序列326中先前检索的符号,并且在激活低复杂度模式的情况下,独立于这符号序列中任何先前检索的符号,在多个熵解码器322之中为预定的符号进行选择。上下文自适应性和/或概率自适应性可造成对符号序列326中先前检索的符号的依赖性。在低复杂度模式中,在选择器402内可关闭这两种自适应性。
根据另一个实施方式,数据流401可由连续部分构成,例如,片段、帧、图片组、帧序列等,并且这符号序列中的每个符号可与多个符号类型中的各个相关。在这种情况下,选择器402可被配置为对于在当前部分内的预定符号类型的符号,在激活高效率模式的情况下,根据在当前部分内的预定符号类型的这符号序列中先前检索的符号,改变选择,并且在激活低复杂度模式的情况下,在当前部分内,使所述选择保持恒定。即,可允许选择器402在熵解码器322之中为预定符号类型改变选择,但是局限于在连续部分之间的过渡之间发生这些变化。通过该措施,实际符号统计的估计局限于很少发生的时隙(time instance),同时在大部分时间内降低编码复杂性。
而且这符号序列326中的每个符号可与多个符号类型中的各个相关,并且选择器402可被配置为对于预定符号类型的预定符号,在激活高效率模式的情况下,根据这系列326符号中先前检索的符号选择多个上下文中的一个,并且根据与所选择的上下文相关的概率模型,在熵解码器322之中进行选择,同时根据预定符号,更新与所选择的上下文相关的概率模型;以及在激活低复杂度模式的情况下,根据这系列326符号中先前检索的符号选择多个上下文中的一个,并且根据与所选择的上下文相关的概率模型,在熵解码器322之中进行选择,同时使与所选择的上下文相关的概率模型恒定。即,选择器402在这两种模式中可使用某种语法元素类型的上下文自适应性,同时在LC模式的情况下抑制概率适应。
可选地,并未完全抑制概率适应,选择器402可仅仅相对于HE模式减小LC模式的概率适应的更新速率。
而且,换言之,可如下描述可能的LC-PIPE-特定的方面,即,LC模式的方面。具体地,在LC模式中可使用非自适应概率模型。非自适应概率模型可具有硬编码(即,总体上恒定的)概率,或者在仅仅处理片段的整个过程中,其概率保持固定,因此可根据片段类型和QP(即,量化参数),设置该概率,例如,在数据流401内将该量化参数用信号发送给每个片段。通过假设被分配给相同的上下文的连续二进制位遵循固定的概率模型,能够在一个步骤中将这些二进制位中的几个二进制位解码,与使用相同的管代码(即,使用相同的熵解码器)进行编码一样,并且忽略在每个经解码的二进制位之后的概率更新。在编码和解码工序中,忽略概率更新,节省了操作,从而还造成复杂性降低并且明显简化了硬件设计。
可通过这种方式为所有或一些选择的概率模型减少自适应约束,以便在已经使用该模型将某个数量的二进制位编码/解码之后,允许进行概率更新。适当的更新间隔允许具有概率适应,同时能够一次将几个二进制位解码。
在下文中,提出了LC管和HE管的可能共同的并且复杂度可扩展的方面的更详细的描述。具体地,在下文中,描述可通过相同的方式或通过复杂度可扩展的方式用于LC管模式和HE管模式的方面。复杂度可扩展表示通过去除特定的部分或使用不太复杂的部分代替这些部分,从HE情况中获取LC情况。然而,在继续进行之前,应提及的是,在上述上下文自适应二进制位算法编码/解码实施方式上可容易地传送图18的实施方式:选择器402和熵解码器322压缩成熵解码器608,该熵解码器会直接接收数据流401并且为目前从数据流中获取的二进制位选择上下文。对于上下文自适应性和/或概率自适应性,尤其如此。在低复杂度模式中,可关闭或更轻松地设计功能/自适应性。即,熵解码引擎608通常被配置为使用多个熵解码方案中所选择的一个,由熵解码从数据流401中检索一序列326符号中的每个符号,并且例如可被配置为使多个熵解码方案中的每个方案涉及符号(已经为其选择相应的熵解码方案)的算术解码,在算术解码期间使用一个不同的概率估计值时,多个熵解码方案彼此不同。结合上述CABAC概念进行描述,熵解码引擎可被配置为使多个熵解码方案以一个共同的概率间隔(即,一个共同的比特流,而非局部比特流)细分其概率。换言之,并且更广泛地说,熵解码器608可被配置为根据数据流401的先前经解码的部分,通过在不同的上下文中选择一个上下文并且更新与不同的上下文相关的概率状态,使用二进制位熵解码,来从数据流中获得二值化的多个二进制位326。更确切地说,如上所述,熵解码器608可被配置为使用二进制位熵解码(例如,上述CABAC方案)或二进制位PIPE解码(即,使用涉及几个并行操作的熵解码器322以及各自的选择器/分配器的构造),来从数据流401中获得二值化的二进制位326数量。就上下文选择而言,如上所述,可体现其对数据流401的先前解码部分的依赖性。即,熵解码器608可被配置为根据在目前要获得的二进制位所属的二值化内的目前要获得的二进制位的二进制位位置、语法元素的语法元素类型(通过去二值化,获得该语法元素的整数值)、目前要获得的二进制位所属的二值化、或先前源自数据流401的一个或多个二进制位或先前去二值化的语法元素的整数值,为目前要获得的二进制位进行上下文选择。例如,所选择的上下文在某个语法元素的二值化的第一和第二二进制位之间可不同。而且,可为不同的语法元素类型(例如,变换系数水平、运动向量差值、编码模式参数等),提供不同的上下文组。就概率状态更新而言,熵解码器608可被配置为根据目前获取的二进制位,通过从与为目前获取的二进制位选择的上下文相关的当前概率状态过渡到一个新的概率状态,同样为目前获取的二进制位进行上下文选择。如上所述,熵解码器409可例如使用当前状态以及目前获取的二进制位的值来获取表条目,所获取的表条目显示了新概率状态。参照以上表格Next_State_LPS和Next_State_MPS,除了上述其他步骤0到5,还由熵解码器608相对于这些表格进行表格查找。在以上描述中,概率状态有时表示为pState_current[bin]。还如上所述,熵解码器608可被配置为通过量化表示当前概率间隔的当前概率间隔比特值(R),以获得概率间隔指数q_index,并且使用该概率间隔指数以及基于与为目前要获得的二进制位选择的上下文相关的当前概率状态的概率状态指数p_state,来在表条目(Rtab)之中索引一个表条目,从而进行间隔细分,以将当前概率间隔细分成两个部分间隔,从而对目前要获得的二进制位进行二进制位算法解码。如上所述,熵解码器608可使用8比特表示,用于当前的概率间隔宽度值R。为了量化当前的概率宽度值,熵解码器608可例如抓取8比特表示的两个或三个最重要的比特。然后,熵解码器608可根据偏置状态值,从当前概率间隔的内部在两个部分间隔之中进行选择,更新概率间隔宽度值和偏置状态值,使用所选择的部分间隔来推断目前要获得的二进制位的值,并且对更新的概率宽度值和偏置状态值(即,在以上描述中为V)进行重正化,包括继续从数据流401中读取比特。如上所述,根据偏置状态值V在两个部分间隔之中进行的选择可包括在R和V之间进行比较,同时根据目前要获得的二进制位的值,可更新概率间隔宽度值和偏置状态值。
在使用PIPE实现图18的实施方式时,涉及熵解码器322的管熵编码阶段可使用8个系统的变量到变量代码,即,每个熵解码器322可为上面已经描述的v2v类型。通过限制v2v代码的数量,来简化使用系统的v2v代码的PIPE编码概念。在上下文自适应二进制位算法解码器的情况下,该解码器可为不同的上下文管理相同的概率状态,并且使用相同的概率状态(或其量化版本),进行概率细分。如在表格A中所述,可将CABAC或概率模型状态(即,用于概率更新的状态)映射到PIPE ids或概率指数中,用于在Rtab内进行查找。
Figure GDA0002398175490000681
Figure GDA0002398175490000691
表A:将CABAC状态映射到PIPE指数中
该经修改的编码方案可用作复杂度可扩展的视频编码方法的基础。在执行概率模式适应时,选择器402或上下文自适应二进制位算法解码器分别根据与目前要解码的符号(例如,通过上下文)相关的概率状态指数(在此处作为例证,范围从0到62),使用在表A中所示的映射,来选择要使用的PIPE解码器322(即,获得管指数)以及在Rtab内的概率指数,并且使用例如分别在MPS和LPS的情况下指向要访问的下一个概率状态指数的特定的表移动过渡值,根据目前解码的符号,来更新该概率状态指数。在LC模式的情况下,可省略后面的更新。在总体固定的概率模型的情况下,甚至可省略映射。
然而,可使用任意熵编码设置,并且还可使用在该文档中的技术,更改较小。
确切地说,图12的以上描述通常表示语法元素和语法元素类型。在下文中,描述变换系数水平的复杂度可配置的编码。
在用于CABAC的高效率视频编码(HEVC)项目的当前测试模型(HM)中,规定变换系数水平的目前设想的编码技术。首先,使用两个语法元素last_significant_pos_x和last_significant_pos_y,将最后一个重要的扫描位置编码。语法元素last_significant_pos_x规定最后一个重要的扫描位置的列,并且第二语法元素last_significant_pos_y规定最后一个重要的扫描位置的行。
随后,使用正向扫描顺序,将重要图编码,该重要图规定大于0的绝对变换系数水平的位置。所谓的重要图扫描顺序为从在变换块内部的二维位置映射到一维向量上,并且根据预测模式和变换块尺寸可不同。在先有技术中,使用三个不同的扫描顺序,即,锯齿扫描、水平扫描以及垂直扫描。对于每个扫描位置(除了最后的扫描位置以外,通过规定最后的扫描位置,已经将最后的扫描位置视为重要位置),编码二进制位语法元素coeff_significant_flag。
接下来,在编码重要图之后,语法元素coeff_abs_greater1、coeff_abs_greater2以及coeff_abs_minus3表示剩余绝对水平,并且coeff_sign_flag表示编码标记信息。为了编码剩余的绝对变换水平和标记,将变换块分成4x4子块,并且在这种子块内部的位置形成子集。按照正向锯齿扫描顺序扫描子集,并且依次编码每个子集。这表示在编码一个4x4子块或子集的绝对变换水平的所有剩余信息以及标记信息之后,按照正向锯齿顺序处理下一个子集。对于子集本身,使用反向锯齿扫描顺序。在子集的第一编码阶段,为子集的所有重要的扫描位置编码规定绝对变换系数水平是否大于1的二进制位语法元素coeff_abs_greater1。接下来,在重置扫描顺序并且该扫描顺序再次从子集的第一扫描位置开始之后,对于绝对水平大于1的所有扫描位置,例如,coeff_abs_greater1等于1,编码二进制位语法元素coeff_abs_greater2,规定特定的扫描位置的绝对变换水平是否大于2。然后,在再次重置扫描顺序之后,对于绝对变换水平大于2的所有扫描位置,编码规定绝对变换水平的剩余值的具有非负整数值的语法元素coeff_abs_minus3。在最后一个步骤中,再次在重置扫描顺序之后,在旁路模式中编码语法元素coeff_sign_flag,即,编码等于0.5的概率模式。分成子集的原因在于,在更高的编码效率中具有更好的上下文建模,在下文中进行描述。要注意的是,在语法元素之间具有依赖性。还能够与在H.264/AVC中一样编码语法元素。在那种情况下,对于扫描位置,在编码等于1的coeff_significant_flag之后,直接编码coeff_abs_greater1,并且在编码coeff_abs_greater1之后,直接编码coeff_abs_greater2,以此类推。然而,编码语法元素的这种交错模式对于硬件实现方式无效。因此,描述了完全为变换块或为子集编码每个语法元素进行的分离。
与绝对变换水平的编码相关的每个语法元素的上下文建模如下所述。coeff_significant_flag的上下文模型选择使用本地模板。规定在当前扫描位置周围的区域,并且覆盖已经编码的扫描位置。通过估计位于本地模板内的已经编码的重要扫描位置的数量,为coeff_significant_flag获得上下文模型。
对于子集的第一重要扫描位置,选择与coeff_abs_greater1相关的上下文模型组的第二上下文模型,以便编码子集的第一coeff_abs_greater1语法元素。如果刚刚编码的coeff_abs_greater1语法元素等于1,那么选择第一上下文模型,用于在该子集内部的语法元素coeff_abs_greater1的所有剩余的编码阶段。否则,选择语法元素coeff_abs_greater1的上下文模型组的下一个上下文模型,同时将最大上下文模型限制为5。
对于coeff_abs_greater2,选择第一上下文模型,并且在编码每个coeff_abs_greater2语法元素之后,第一上下文模型增加,而最大上下文还限制为5。要注意的是,不同的上下文模型用于与不同的语法元素相关的二进制位,例如,不同的上下文模型组用于coeff_abs_greater1和coeff_abs_greater2语法元素。绝对变换水平的剩余非负整数值由coeff_abs_minus3语法元素表示。为每个扫描位置进行编码,coeff_abs_greater2等于1。对于coeff_abs_minus3,参数化莱斯和0阶指数哥伦布可变长度代码(VLC)的组合用作二值化,并且在低复杂度旁路模式中,编码从二值化中产生的二进制位串的所有二进制位,固定的概率为0.5。用于abs_coeff_minus3的二值化的莱斯部分需要控制参数,在每个子集的开头,该参数为零,并且在编码每个coeff_abs_minus3语法元素之后,自适应地更新该参数。控制参数的新值取决于由coeff_abs_minus表示的刚刚编码的剩余值。要注意的是,为每个子集重置上下文建模规则,以便对于位于子集内部的第一位置,用于coeff_abs_greater1的第二上下文模型、用于coeff_abs_greater2的第一上下文模型以及用于coeff_abs_minus3的二值化控制参数始终为零,其中,编码各个语法元素。对于coeff_abs_greater1和coeff_abs_greater2语法元素,一个额外的上下文建模阶段取决于先前编码的子集进行的统计。该额外步骤获取上下文偏置或上下文组。如下获取这两个语法元素的偏置或上下文组。在每个子集的开头,在包含至少一个重要位置的先前子集内,根据大于1的绝对水平的数量,选择上下文设置或偏置。如果没有这种子集,那么该组为5(对于包含变换块的重要扫描位置的第一子集)。对于4x4变换块,在仅仅一个子集包括整个变换块时,将上下文组设为0。否则,上下文组的范围可从1到5。在编码剩余的绝对变换水平之后,在旁路模式中由coeff_sign_flag语法元素编码标记信息,例如,通过使用固定概率为0.5的上下文模型。
变换系数水平的以上编码技术实现良好的编码性能。然而,由于自适应性高,所以包含某种复杂性。这不允许同时编码多个二进制位(除了在旁路模式中编码的二进制位),这是因为两个原因。首先,表示概率模型本身的上下文模型具有自适应性,并且在编码每个二进制位之后,更新该上下文模型。因此,即使为连续的二进制位选择相同的上下文模型,对于每个二进制位,概率模型也不同,其次,通常根据对于每个扫描位置不同的先前编码的语法元素,进行上下文模型选择。因此,先有技术的概念不允许编码的多个二进制位在熵编码阶段降低复杂度,并且也不利用PIPE熵编码器的优点,其中,多个二进制位的编码允许具有低复杂度实现方式。
根据一个实施方式,描述了用于变换系数水平的一种经修改的编码技术,该技术可被配置到不同的适应等级中,从而允许在低复杂度模式中利用PIPE的多二进制位解码能力,同时能够在高效率模式中从高适应性中受益。由于这两个复杂度等级具有统一的扫描顺序,但是上下文推导具有不同的模式,所以实现可扩展性。用于编码变换系数水平的语法元素与在上面所描述的语法元素完全相同。但是与其相比,区别在于剩余的绝对变换水平的扫描顺序以及形成子集的方式。而且,在将PIPE用作熵编码器时,由变换块的coeff_sign_flag表示的标记信息可直接解码,例如,可在一个循环(one pass)中写入或者从比特流中直接读取。
并未使用4x4子集,而是通过锯齿扫描来单独进行扫描,同时按照反向锯齿扫描顺序来扫描子集,所描述的实施方式现在使用与用于重要图的扫描顺序相同的扫描顺序。沿着特定数量的扫描位置,产生子集。据此,首先使用特定的扫描顺序来编码重要图,其中,扫描方向可相反。如在上面技术中所述,根据预测模式和变换块尺寸,扫描顺序可不同。对于剩余的绝对变换系数水平,使用与用于重要图的扫描顺序相同的扫描顺序,而与重要图的扫描相比,该扫描顺序可相反。
如前所述,沿着连续的扫描位置,产生子集,而非将变换块分成4x4子块。沿着特定数量的连续扫描位置产生子集,在本实施方式中用于所有配置中。
如前所述,通过适应度,可配置复杂度。下面,描述三个配置。第一个配置适合于实现高编码性能,第二个配置用于低复杂度处理,第三个配置为在复杂度和编码性能之间的权衡配置。这三个配置实例显示了可配置上下文适应的方式,而具有解码器322的形式的熵编码引擎例如对于所有配置相同。
对于第一配置,上下文建模阶段(stage)与在以上技术中的阶段相同。唯一的区别在于,分成子集。并未将4x4空间位置分成子块或子集,如上所述,在此处提出的实施方式将几个连续的扫描位置分成子集。与上述技术相比,未修改上下文偏置或上下文组推导,并且还为每个子集重置语法元素的上下文建模参数。在低复杂度配置的情况下,概率固定的相同的上下文模型用于整个子集。该概念允许在将PIPE用作熵编码器时,编码多个二进制位。对于该配置,上下文模型选择的自适应性仅仅取决于扫描位置,而非取决于先前编码的语法元素,并且上下文模型未更新其内部概率模型表示。并未使用本地模板来为重要图的每个扫描位置获得上下文模型,特定数量的连续扫描位置也共同分成子集,并且使用相同的上下文模型,来编码每个子集,同时固定该上下文模型的概率。要注意的是,还具有重要图的子集,但是允许本地模板估计位于其他子集内的扫描位置。在规定重要图之后,编码剩余的绝对变换水平。与重要图的概念相同的概念用于剩余绝对等级。因此,连续数量的重要图位置作为子集共同分组,并且使用用于coeff_abs_greater1语法元素的相同的上下文模型,来编码每个子集。接下来,为语法元素coeff_abs_greater2进行分组机制。已知连续数量的扫描位置大于1,共同分成一组,并且使用概率固定的上下文模型,编码该组。与在上述比较技术中一样,编码剩余的绝对变换系数水平和标记,而沿着特定数量的扫描位置,在每个子集的开头,重置莱斯参数,并且在一个步骤中编码标记信息。最后的配置是在复杂度和编码性能之间进行权衡。在该配置中,用于每个语法元素的子集的产生与变换系数水平的编码有关,这种变换系数水平具有与在低复杂度的情况下相同的上下文模型。但是与低复杂度配置相比,在已经编码与该语法元素以及该子集相关的所有二进制位之后,更新子集的上下文模型。无论选择哪种配置,PIPE概念都允许直接编码转换块的标记信息(由coeff_sign_flag表示)(例如,可在一个循环中写入或者从比特流中直接读取)。
在该优选的实施方式中,按照正向扫描顺序,编码重要图,而按照反向扫描顺序,编码剩余的绝对变换系数水平。正向扫描顺序通常可从DC值延伸到最高频率分量,如在图6中作为例证所示,例如,沿着一维路径274,而反向顺序沿着相同的路径但是在相反的方向运行。在另一个优选的实施方式中,按照反向扫描顺序,编码重要图和剩余的绝对等级。在另一个优选的实施方式中,按照正向扫描顺序编码与绝对变换水平的编码有关的所有语法元素。
在一个优选的实施方式中,子集的尺寸固定为16,并且沿着变换块的扫描位置延伸。在另一个优选的实施方式中,子集的尺寸固定为4,并且也沿着变换块的扫描位置延伸。在另一个优选的实施方式中,子集的尺寸根据变换块的空间位置可变。在该优选的实施方式中,对于变换块的低频率区域,例如,对于变换块的第一扫描位置,子集的尺寸更小,并且对于变换块的更高的扫描位置,子集的尺寸变得更大。在另一个优选的实施方式中,子集的尺寸等于变换块的宽度。在另一个优选的实施方式中,每个子集包括沿着变换块的对角线的扫描位置。在该优选的实施方式中,从变换块的右上角到左下角,定义对角线。
在一个优选的实施方式中,沿着特定数量的连续扫描位置,产生子集,必须为特定数量的连续扫描位置编码特定的语法元素。在这种情况下,如下产生子集。用于coeff_significant_flag的子集沿着变换块的扫描位置延伸,而子集的尺寸可固定或可变。接下来,对于coeff_abs_greater1语法元素,子集的尺寸取决于配置,并且仅仅coeff_significant_flag等于1的扫描位置形成一个子集。例如,在固定的情况下,扫描位置0-4形成coeff_significant_flag以及与剩余的绝对等级相关的语法元素的子集。与该优选的实施方式相比,如果对于coeff_significant_flag语法元素和与剩余的绝对水平有关的语法元素,子集尺寸为4,那么对于coeff_significant_flag,扫描位置0-4形成第一子集,并且4-8形成第二子集。但是仅仅coeff_significant_flag等于1的扫描位置形成用于coeff_abs_greater1的子集。因此,用于coeff_abs_greater1的子集与用于coeff_significant_flag的子集具有相同的尺寸,但是如果在该范围内刚好具有4个等于1的coeff_significant_flag的语法元素(第一个语法元素位于扫描位置0并且第四个语法元素位于扫描位置6),那么该子集可从0延伸到6。这就造成可变的子集范围。在另一个优选的实施方式中,具有规定的子集尺寸的可变伸展长度用于coeff_abs_greater2语法元素。在另一个优选的实施方式中,该概念还用于coeff_abs_minus3语法元素。
在一个优选的实施方式中,coeff_significant_flag的上下文建模使用本地模板,并且对于剩余的绝对变换水平,上下文建模与在先有技术中的建模相同。该优选的实施方式造成高效率配置。在另一个优选的实施方式中,用于所有语法元素的上下文建模仅仅取决于子集。在该优选的实施方式中,由子集的数量获得上下文建模。例如,变换块尺寸为8x8,子集尺寸固定为16,并且沿着变换块的扫描位置延伸。在这种情况下,变换块具有4个子集,并且每个子集使用一个不同的上下文模型。如果子集沿着编码语法元素的扫描位置延伸,那么对于coeff_siginificant_flag,具有至少4个子集,而用于coeff_abs_greater1语法元素的子集的数量取决于重要位置的数量。假设具有24个重要扫描位置。因此,前面16个扫描位置形成第一子集,并且剩下的8个扫描位置形成第二子集。而且,对于每个子集,根据子集的数量,选择特定的上下文模型。
在另一个优选的实施方式中,子集的上下文建模(例如,用于coeff_abs_greater1和coeff_abs_greater2的上下文模型组或上下文模型偏置)取决于先前解码的子集。在另一个优选的实施方式中,子集的上下文建模取决于最后n个解码的二进制位,其中,n为在单个步骤中可编码的二进制位的数量。在另一个优选的实施方式中,子集的上下文建模阶段取决于子集的尺寸。该优选的实施方式适合于可变的子集尺寸的情况。
例如,重构器404可被配置为独立于激活的高效率模式或低复杂度模式,根据该语法元素序列的一部分,重构变换系数水平202的变换块200,这语法元素序列327的这部分通过非交错的方式包括:重要图语法元素,其在变换块200内限定表示非零变换系数水平的位置的重要图;以及(随后)等级语法元素,其限定非零变换系数水平。具体地,可涉及以下元素:端位置语法元素(last_significant_pos_x、last_significant_pos_y),其表示在变换块内的最后一个非零变换系数水平的位置;第一语法元素(coeff_significant_flag),其共同限定重要图并且对于在变换块(200)内沿着从DC位置引向最后一个非零变换系数水平的位置的一维路径(274)的每个位置,表示在各个位置的变换系数水平是否为非零;第二语法元素(coeff_abs_greater1),其对于根据第一二元语法元素定位非零变换系数水平的一维路径(274)的每个位置,表示在各个位置的变换系数水平是否大于1;第三语法元素(coeff_abs_greater2、coeff_abs_minus3),其对于根据第一二元语法元素定位大于1的变换系数水平的一维路径的每个位置,显示了在各个位置的各个变换系数水平超过1的量。
在端位置语法元素以及第一、第二和第三语法元素之间的顺序对于高效率模式和低复杂度模式可相同,并且选择器402可被配置为根据激活的低复杂度模式或高效率模式,对于去符号化器314从中获得端位置语法元素以及第一语法元素、第二语法元素和/或第三语法元素的符号,在熵解码器322之中不同地进行选择。
具体地,选择器402可被配置为对于在去符号化器314从中获得第一语法元素和第二语法元素的符号的子序列之中的预定符号类型的符号,为预定符号类型的每个符号,根据在符号的子序列之中的预定符号类型的先前检索的符号,选择多个上下文中的一个,并且在激活高效率模式的情况下,根据与所选择的上下文相关的概率模型,进行选择,以及在激活低复杂度模式的情况下,通过分段恒定的方式进行选择,以便在子序列的连续持续的子部分之上,该选择恒定。如上所述,可在多个位置内测量子部分,在沿着一维路径274测量时,各个子部分在这些位置之上延伸,或者可在已经由当前的上下文编码的各个类型的多个语法元素内测量子部分。即,根据在HE模式中所选择的上下文的概率模型,通过选择解码器322,二进制位语法元素(例如,coeff_significant_flag、coeff_abs_greater1以及coeff_abs_greater2)可进行上下文自适应编码。还使用概率适应。在LC模式中,还具有不同的上下文,用于每个二进制位语法元素coeff_significant_flag、coeff_abs_greater1以及coeff_abs_greater2。然而,对于这些语法元素中的每一个,上下文沿着路径274对于第一部分保持静态,仅仅在沿着路径274过渡到下一个紧随的部分中时改变该上下文。例如,每个部分在长度上可限定为块200的4、8、16位置,与是否具有各个语法元素的各个位置无关。例如,coeff_abs_greater1和coeff_abs_greater2仅仅用于重要位置,即,coeff_significant_flag为1的位置(或者coeff_significant_flag对于这个位置为1)。或者,每个部分在长度上可限定为4、8、16个语法元素,与这样产生的各个部分是否在更大数量的模式位置之上延伸无关。例如,coeff_abs_greater1和coeff_abs_greater2仅仅用于重要位置,因此,由沿着路径274在其间的位置造成四个语法元素的部分均可在4个以上的块位置之上延伸,由于在该位置的各个水平为0,所以未传输这种语法元素(例如,没有传输coeff_abs_greater1和coeff_abs_greater2)。
选择器402可被配置为对于在去符号化器从中获得第一语法元素和第二语法元素的符号的子序列之中的预定符号类型的符号,为预定符号类型的每个符号,根据在具有预定符号值并且属于相同的子部分的符号的子序列内的预定符号类型的多个先前检索的符号,或者根据在属于相同的子部分的符号序列内的预定符号类型的多个先前检索的符号,选择多个上下文中的一个。根据以上特定的实施方式,对于coeff_abs_greater1,第一可选方式也是如此(true),并且对于coeff_abs_greater2,第二可选方式也是如此。
而且,对于根据第一二元语法元素定位大于1的变换系数水平的一维路径的每个位置,第三语法元素显示了在各个位置的各个变换系数水平超过1的量,可包括具有整数值的语法元素(即,coeff_abs_minus3),并且去符号化器314可被配置为使用由控制参数可控制的映射函数,来将符号序列字的域映射到具有整数值的语法元素的上域中,如果激活高效率模式,那么根据先前的第三语法元素中具有整数值的语法元素,设置每个具有整数值的语法元素的控制参数,并且在激活低复杂度模式的情况下以分段恒定的方式进行设置,以便在子序列的连续持续的子部分之上,该设置恒定,其中,选择器402可被配置为在高效率模式和低复杂度模式中,选择熵解码器(322)中与等概率分布相关的预定的一个,用于映射到具有整数值的语法元素上的符号序列字的符号。即,去符号化器甚至可根据开关400所选择的模式进行操作,如虚线407所示。控制参数并没有分段恒定的设置,例如,去符号化器314可在当前的片段中,将控制参数保持恒定,或者在时间上总体保持恒定。
接下来,描述复杂度可扩展上下文建模。
估计左上角相邻物的相同语法元素,用于推导上下文模型指数,这是一种常见的方法,并且通常用于HE情况中,例如,用于运动向量差值语法元素。然而,该估计需要更多的缓冲存储器,并且禁止直接编码语法元素。而且,为了实现更高的编码性能,可估计更多可用的相邻物。
在一个优选的实施方式中,相邻的方形或矩形块或预测单元的所有上下文建模阶段估计语法元素固定到一个上下文模型中。这等于在上下文模型选择阶段禁止具有自适应性。对于该优选的实施方式,与CABAC的当前设计相比,在未修改二值化之后,根据二进制位串的二进制位指数进行上下文模型选择。在另一个优选的实施方式中,除了用于语法元素的固定的上下文模型采用相邻物的估计,还固定不同的二进制位指数的上下文模型。要注意的是,该描述不包括二值化以及对与变换系数水平的编码相关的运动向量差值与语法元素进行的上下文模型选择。
在一个优选的实施方式中,仅仅允许估计左相邻物。由于不再储存最后的块或编码单元线,所以这造成在处理链中减少缓冲。在另一个优选的实施方式中,仅仅估计位于相同的编码单元内的相邻物。
在一个优选的实施方式中,估计所有可用的相邻物。例如,除了左上角相邻物以外,还估计左上角、右上角以及左下角相邻物的可用性。
即,图18的选择器402可被配置为对于与媒体数据的预定块相关的预定符号,在激活高效率模式的情况下,使用与媒体数据的更大数量的不同相邻块相关的符号序列中先前检索的符号,以便选择多个上下文中的一个,并且根据与所选择的上下文相关的概率模型,在熵解码器322之中进行选择。即,相邻的块可在时间和/或空间域上相邻。例如,在图1到3中可见在空间上相邻的块。然后,选择器402可响应于由模式开关400进行的模式选择,以与LC模式相比,在HE模式的情况下,根据与更大数量的相邻块相关的先前检索的符号或语法元素,进行接触适应,从而如上所述,减少储存费用。
接下来,描述了根据一个实施方式的运动向量差值的复杂度降低的编码。
在H.264/AVC视频编解码器标准中,通过用信号表示在当前宏块的运动向量和中间运动向量预测器之间的差值(运动向量差值-mvd),传输与宏块相关的运动向量。在CABAC用作熵编码器时,如下解码mvd。将具有整数值的mvd分成绝对和标记(sign)部分。使用缩短的一元和3阶指数哥伦布的组合(称为所产生的二进制位串的前缀和后缀),来将绝对部分二值化。使用上下文模型,来编码与缩短的一元二值化相关的二进制位,而在旁路模式中编码与指数哥伦布二值化相关的二进制位,即,通过具有CABAC的固定概率0.5。一元二值化如下进行。假设mvd的绝对整数值为n,那么所产生的二进制位串由n乘以‘1’以及一个尾数‘0’构成。例如,假设n=4,那么二进制位串为‘11110’。在缩短的一元码中,存在限制,并且如果该值超过该限制,那么二进制位串由n+1乘以‘1’构成。对于mvd的情况,该限制等于9。这表示,如果编码等于或大于9的绝对值mvd,造成9乘以‘1’,那么二进制位串通过指数哥伦布二值化由前缀和后缀构成。如下对缩短的一元部分进行上下文建模。对于二进制位串的第一二进制位,如果可用的话,那么采用左上角相邻的宏块的绝对mvd值(如果不可用的话,那么推断该值为0)。如果特定分量的总和(水平或垂直方向)大于2,那么选择第二上下文模型,如果绝对值总和大于32,那么选择第三上下文模型,否则(绝对值总和小于3),选择第一上下文模型。而且,对于每个分量,上下文模型不同。对于二进制位串的第二二进制位,使用第四上下文模型,并且第五上下文模型用于一元部分的剩余二进制位。在绝对值mvd等于或大于9时(例如,缩短的一元部分的所有二进制位等于‘1’),使用3阶指数哥伦布二值化,通过旁路模式编码在绝对mvd值和9之间的差值。在最后一个阶段,通过旁路模式编码mvd的标记。
在将CABAC用作熵编码器时,用于mvd的最新编码技术专门用于高效率视频编码(HEVC)项目的当前测试模型(HM)中。在HEVC中,块尺寸可变,并且由运动向量规定的形状称为预测单元(PU)。左上角相邻物的PU尺寸可具有与当前PU不同的其他形状和尺寸。因此,每当相关时,左上角相邻物的定义现在称为当前PU的左上角的左上角相邻物。对于编码本身,根据一个实施方式,仅仅可改变第一二进制位的推导工序。并未估计相邻物的MV的绝对值总和,可分别估计每个相邻物。如果一个相邻物的绝对值MV可用并且大于16,那么上下文模型指数可增大,所产生的上下文模型与用于第一二进制位的上下文模型在数量上相同,而剩余的绝对MVD水平和符号的编码与在H.264/AVC中完全相同。
在编码mvd的上述技术中,必须通过上下文模型编码高达9个二进制位,而可通过低复杂度旁路块与标记信息一起编码mvd的剩余值。本实施方式描述了一种技术,用于减少通过上下文模型编码的二进制位的数量,造成旁路数量增大,并且减少编码mvd所需要的上下文模型的数量。对此,截止值从9减小为1或2。这仅仅表示,使用上下文模型编码指定绝对值mvd是否大于0的第一二进制位或者使用上下文模型编码指定绝对值mvd是否大于0和1的第一和第二二进制位,同时通过旁路模式和/或使用VLC代码,编码剩余值。使用低复杂度旁路模式,编码由使用VLC代码(而非使用一元或缩短的一元码)的二值化产生的所有二进制位。在PIPE的情况下,能够直接插入比特流内并且从比特流中直接插入。而且,如果有过的话,那么可使用左上角相邻物的不同定义,为第一二进制位获得更好的上下文模型选择。
在一个优选的实施方式中,指数哥伦布代码用于将绝对MVD分量的剩余部分二值化。对此,指数哥伦布代码的阶数可变。如下获得指数哥伦布代码的阶数。在获得和编码用于第一二进制位的上下文模型以及因此获得和编码该上下文模型的指数之后,该指数用作指数哥伦布二值化部分的阶数。在该优选的实施方式中,用于第一二进制位的上下文模型的范围从1到3,产生指数0到2,用作指数哥伦布代码的阶数。该优选的实施方式可用于HE情况。
还可使用14个上下文模型(每个元素具有7个),代替在编码绝对值MVD时使用2乘以5(two times five)的上下文的上述技术,以便将9个一元码二值化二进制位编码。例如,虽然如上所述,可使用4个不同的上下文将一元部分的第一和第二二进制位编码,但是第五上下文可用于第三二进制位,并且第六上下文可用于第四二进制位,而使用第七上下文编码第五到第九二进制位。因此,在这种情况下,甚至需要14个上下文,通过低复杂度旁路模式,仅仅可编码剩余值。一种技术用于减少通过上下文模型编码的二进制位的数量,造成旁路数量增大,并且用于减少编码MVD所需要的上下文模型的数量,该技术用于减小截止值,例如,从9减小为1或2。这仅仅表示,使用上下文模型编码指定绝对值MVD是否大于0的第一二进制位或者使用各个上下文模型编码指定绝对值MVD是否大于0和1的第一和第二二进制位。同时使用VLC代码,编码剩余值。使用低复杂度旁路模式,编码由使用VLC代码的二值化产生的所有二进制位。在PIPE的情况下,能够直接插入比特流内并且从比特流中直接插入。而且,所提出的实施方式使用左上角相邻物的另一个定义,为第一二进制位获得更好的上下文模型选择。除此之外,通过一种方式修改上下文建模,以便第一或第一和第二二进制位所需要的上下文模型的数量减小,造成进一步减少内存。而且,不能估计相邻物,例如,以上相邻物,从而节省储存相邻物的mvd值所需要的线路缓冲器/内存。最后,通过允许在编码旁路二进制位之后,为两个分量编码前缀二进制位(即,使用上下文模型编码的二进制位)的方式,可分离分量的编码顺序。
在一个优选的实施方式中,指数哥伦布代码用于将绝对mvd分量的剩余部分二值化。对此,指数哥伦布代码的阶数可变。可如下获得指数哥伦布代码的阶数。在获得用于第一二进制位的上下文模型以及因此获得该上下文模型的指数之后,该指数用作指数哥伦布二值化的阶数。在该优选的实施方式中,用于第一二进制位的上下文模型的范围从1到3,产生指数0到2,用作指数哥伦布代码的阶数。该优选的实施方式可用于HE情况,并且上下文模型的数量减少为6。为了再次减少上下文模型的数量,并且因此节省内存,在另一个优选的实施方式中,水平和垂直分量可共享相同的上下文模型。在这种情况下,仅仅需要3个上下文模型。而且,在本发明的另一个优选的实施方式中,仅仅考虑左边的相邻物,用于进行估计。在该优选的实施方式中,阈值可不修改(例如,仅仅具有单个阈值16,产生指数哥伦布参数0或1,或者具有单个阈值32,产生指数哥伦布参数0或2)。该优选的实施方式节省了储存mvd所需要的线路缓冲器。在另一个优选的实施方式中,修改阈值,并且该阈值等于2和16。对于该优选的实施方式,总共需要3个上下文模型,用于编码mvd,并且可能的指数哥伦布参数的范围从0到2。在另一个优选的实施方式中,阈值等于16和32。而且,所描述的实施方式适合于HE情况。
在本发明的另一个优选的实施方式中,截止值从9减小为2。在该优选的实施方式中,使用上下文模型,可编码第一二进制位和第二二进制位。可与在先有技术中一样,进行第一二进制位的上下文模型选择,或者可通过在以上优选的实施方式中所描述的方式,修改该选择。对于第二二进制位,与在先有技术中一样,选择单独的上下文模型。在另一个优选的实施方式中,通过估计左边相邻物的mvd,选择第二二进制位的上下文模型。对于那种情况,该上下文模型指数与用于第一二进制位的指数相同,而可用的上下文模型与用于第一二进制位的模型不同。总共需要6个上下文模型(要注意的是,这些分量共享上下文模型)。而且,指数哥伦布参数可取决于第一二进制位的所选择的上下文模型指数。在本发明的另一个优选的实施方式中,指数哥伦布参数取决于第二二进制位的上下文模型指数。本发明的所描述的实施方式可用于HE情况。
在本发明的另一个优选的实施方式中,通过估计左边或以上相邻物,固定并且未获得用于这两个二进制位的上下文模型。对于该优选的实施方式,上下文模型的总数等于2。在本发明的另一个优选的实施方式中,第一二进制位和第二二进制位共享相同的上下文模型。结果,在编码mvd时,仅仅需要一个上下文模型。在本发明的这两个优选的实施方式中,指数哥伦布参数可固定并且等于1。本发明的所描述的优选的实施方式适合于HE和LC配置。
在另一个优选的实施方式中,独立于第一二进制位的上下文模型指数,获得指数哥伦布部分的阶数。在这种情况下,H.264/AVC的普通上下文模型选择的绝对值总和用于获得指数哥伦布部分的阶数。该优选的实施方式可用于HE情况。
在另一个优选的实施方式中,指数哥伦布代码的阶数固定并且设为0。在另一个优选的实施方式中,指数哥伦布代码的阶数固定并且设为1。在一个优选的实施方式中,指数哥伦布代码的阶数固定为2。在另一个实施方式中,指数哥伦布代码的阶数固定为3。在另一个优选的实施方式中,根据当前PU的形状和尺寸,固定指数哥伦布代码的阶数。所提出的优选的实施方式可用于LC情况。要注意的是,考虑指数哥伦布部分的固定阶数,减少通过上下文模型编码的二进制位的数量。
在一个优选的实施方式中,如下定义相邻物。对于以上PU,所有PU包括考虑当前PU以及使用具有最大的MV的PU。左边相邻物也这样做。所有PU包括估计当前PU以及使用具有最大的MV的PU。在另一个优选的实施方式中,所有PU的平均绝对运动向量值包括左上角边框,当前PU用于获得第一二进制位。
对于上面所提出的优选的实施方式,能够如下改变编码顺序。必须规定将mvd相继用于水平和垂直方向(或者反之亦然)。因此,必须编码两个二进制位串。为了尽可能减小用于熵编码引擎的模式切换的数量(即,在旁路和规则模式之间进行切换),能够在第一步骤中为这两个分量编码使用上下文模型编码的二进制位,然后在第二步骤中编码通过旁路模式编码的二进制位。要注意的是,这仅仅是重新排序。
要注意的是,由一元或缩短的一元二值化产生的二进制位还可由每个二进制位指数具有的一个标记的等效的长度固定的二值化表示,该二进制位指数规定该值是否大于当前二进制位指数。例如,将用于mvd的缩短的一元二值化的截止值设为2,产生码字0、10、11,用于值0、1、2。在每个二进制位指数具有一个标记的相应的长度固定的二值化中,用于二进制位指数0的一个标记(即,第一标记)规定绝对mvd值是否大于0,并且用于具有二进制位指数1的第二二进制位的一个标记规定绝对mvd值是否大于1。在第一标记等于1时,仅仅编码第二标记,这时,产生相同的码字0、10、11。
接下来,描述根据一个实施方式的概率模型的内部状态的复杂度可扩展的表示。
在HE-PIPE设置中,在使用其编码二进制位之后,更新概率模型的内部状态。由状态转换表查找使用老状态和编码的二进制位的值来获取更新的状态。在CABAC的情况下,概率模型可采用63种不同的状态,其中,每个状态与在间隔(0.0、0.5)中的模型概率对应。这些状态中的每个用于实现两个模型概率。除了分配给该状态的概率,还可使用1.0减去概率,并且称为valMps的标记储存使用该概率还是1.0减去该概率的信息。这就总共产生了126个状态。为了通过PIPE编码概念使用这种概率模型,126个状态中的每个需要映射到一个可用的PIPE编码器中。在PIPE编码器的当前实现方式中,这通过使用查找表来进行。在表A中描述了这种映射的一个实例。
在下文中,描述了一个实施方式,该实施方式关于可表示概率模型的内部状态的方式,以避免使用查找表来将内部状态转换成PIPE指数。仅仅需要一些简单的位屏蔽操作,以从概率模型的内部状态变量中提取PIPE指数。通过两级方式,设计概率模型的内部状态的该新型复杂度可扩展的表示。对于低复杂度操作具有强制性的应用,仅仅需要第一等级。仅仅描述了管指数以及用于编码或解码相关的二进制位的标记valMps。在所描述的PIPE熵编码方案的情况下,第一等级可用于在8个不同的模型概率之间进行区分。因此,第一等级需要3比特,用于pipeIdx,并且需要另一个比特,用于valMps标记。通过第二等级,第一等级的每个粗调概率范围细化成几个更小的间隔,这些间隔以更高的分辨率支持概率的介绍。这个更详细的介绍能够更精确地操作概率估计器。通常,适合于以高RD性能为目标的编码应用。例如,如下说明使用PIPE的概率模型的内部状态的该复杂度放大的表征:
Figure GDA0002398175490000851
第一和第二等级储存在单个8比特存储器内。需要4比特来储存第一等级(在最重要的比特上使用MPS的值来定义PIPE指数的指数),并且另外4比特用于储存第二级。为了实现CABAC概率估计器的性能,根据在PIPE指数上映射的CABAC状态的数量,每个PIPE指数具有特定数量的允许的细化指数。例如,对于在表A中的映射,在表B中描述了每个PIPE指数的CABAC状态的数量。
Figure GDA0002398175490000861
表B:对于表A的实例,每个PIPE指数的CABAC状态的数量
在二进制位的编码或解码工序中,通过使用简单的位屏蔽或位移位操作,可直接访问PIPE指数和valMps。低复杂度编码工序仅仅需要第一等级的4比特,并且高效率编码工序可另外利用第二等级的4比特,以执行CABAC概率估计器的概率模型更新。为了执行该更新,可设计状态转换查找表,该查找表与最初的表格进行相同的状态转换,但是使用状态的复杂度可扩展的两级表示。最初的状态转换表由2乘以63的元素构成。对于每个输入状态,包含两个输出状态。在使用复杂度可扩展的表示时,状态转换表的尺寸不超过2乘以128的元素,这是表格尺寸可接受的增量。该增量取决于用于表示细化指数以及用于精确地模仿CABAC概率估计器的性能的比特的数量,需要四比特。然而,可使用一个不同的概率估计器,该估计器可在一组减少的CABAC状态上进行操作,以便对于每个管指数,允许具有不超过8个状态。因此,通过调整用于表示细化指数的比特的数量,内存消耗可与编码工序的规定的复杂等级匹配。与具有CABAC的模型概率的内部状态相比(其中,具有64个概率状态指数),避免使用表格查找来使模型概率映射到特定的PIPE代码中,并且不需要进一步的转换。
接下来,描述根据一个实施方式更新的复杂度可扩展的上下文模型。
为了更新上下文模型,可根据一个或多个先前编码的二进制位,可更新其概率状态指数。在HE-PIPE设置中,在编码或解码每个二进制位之后,进行这种更新。相反,在LC-PIPE设置中,绝不进行这种更新。
然而,能够通过复杂度可扩展的方式更新上下文模型。即,根据各个方面,可决定是否更新上下文模型。例如,编码器设置可不仅仅更新特定的上下文模型(例如,语法元素coeff_significant_flag的上下文模型)并且始终更新所有其他上下文模型。
换言之,选择器402可被配置为对于多个预定符号类型中的每个的符号,根据与各个预定的符号相关的各个概率模型,在熵解码器322之中进行选择,以便与高效率模式相比,预定符号类型的数量在低复杂度模式中更低。
而且,用于控制是否更新上下文模型的标准可例如为比特流数据包的尺寸以及目前解码的二进制位的数量,或者仅仅在为上下文模型编码特定的固定或可变数量的二进制位之后,进行更新。
通过该方案来决定是否更新上下文模型,可实现低复杂度可扩展上下文模型更新。允许在比特流中增大或减小二进制位部分,为该比特流进行上下文模型更新。上下文模型更新的数量越大,编码效率就越好,并且计算复杂度就越高。因此,通过所描述的方案,可实现复杂度可扩展的上下文模型更新。
在一个优选的实施方式中,为所有语法元素的二进制位进行上下文模型更新,除了语法元素coeff_significant_flag、coeff_abs_greater1以及coeff_abs_greater2以外。
在另一个优选的实施方式中,仅仅为语法元素coeff_significant_flag、coeff_abs_greater1以及coeff_abs_greater2的二进制位进行上下文模型更新。
在另一个优选的实施方式中,在开始编码或解码片段时,为所有上下文模型进行上下文模型更新。在处理特定的预定数量的转换块之后,不能对所有上下文模型进行上下文模型更新,直到到达片段的末端。
例如,选择器402可被配置为对于预定符号类型的符号,根据与预定符号类型相关的概率模型,在熵解码器322之中进行选择,同时更新或不更新相关的概率模型,以便与高效率模式相比,这符号序列的学习阶段的长度在低复杂度模式中更短,在这学习阶段上,选择预定符号类型的符号,同时进行更新。
另一个优选的实施方式与先前描述的优选的实施方式相同,但是该实施方式通过一种方式使用上下文模型的内部状态的复杂度可扩展的表示,以便一个表格储存所有上下文模型的“第一部分”(valMps和pipeIdx)并且第二表格储存所有上下文模型的“第二部分”(refineIdx)。在这一点上,在不能对所有上下文模型进行上下文模型更新时(如在先前描述的优选的实施方式中所述),不再需要并且可丢弃储存“第二部分”的表格。
接下来,描述根据一个实施方式的一系列二进制位的上下文模型更新。
在LC-PIPE配置中,将coeff_significant_flag、coeff_abs_greater1以及coeff_abs_greater2类型的语法元素的二进制位分成子集。对于每个子集,单个上下文模型用于编码其二进制位。在这种情况下,在编码该序列的固定数量的二进制位之后,可进行上下文模型更新。这在下文中由多二进制位更新表示。然而,该更新与仅仅使用最后编码的二进制位以及上下文模型的内部状态的更新不同。例如,对于编码的每个二进制位,实施一个上下文模型更新步骤。
在下文中,提供用于编码由8个二进制位构成的一个示例性子集的实例。字母‘b’表示二进制位的解码,并且字母‘u’表示更新上下文模型。在LC-PIPE情况下,仅仅进行二进制位解码,而不进行上下文模型更新:
b b b b b b b b
在HE-PIPE情况下,在解码每个二进制位之后,进行上下文模型更新:
b u b u b u b u b u b u b u b u
为了稍微减小复杂度,在一序列二进制位之后,可进行上下文模型更新,(在该实例中,在每四个二进制位之后,更新这4个二进制位)。
b b b b u u u u b b b b u u u u
即,选择器402可被配置为对于预定符号类型的符号,根据与预定符号类型相关的概率模型,在熵解码器322之中进行选择,同时更新或不更新相关的概率模型,以便与高效率模式相比,在选择预定符号类型的符号的同时进行更新的频率在低复杂度模式中更低。
在这种情况下,在解码4个二进制位之后,根据刚刚解码的4个二进制位,具有4个更新步骤。要注意的是,通过使用特别的查找表,在单个步骤中,可实施这四个更新步骤。在四个传统的更新步骤之后,该查找表为4个二进制位的每个可能的组合以及上下文模型的每个可能的内部状态储存所产生的新状态。
在某种模式中,多二进制位更新用于语法元素coeff_significant_flag。对于所有其他语法元素的二进制位,不使用任何上下文模型更新。在进行多二进制位更新步骤之前解码的二进制位的数量设为n。在该组二进制位的数量不能被n整除时,在最后的多二进制位更新之后,在子集的末端依然具有1到n-1个二进制位。对于这些二进制位中的每个,在编码所有这些二进制位之后,进行传统的单二进制位更新。数量n可为大于1的任何正数。另一种模式可与先前的模式相同,除了为coeff_significant_flag、coeff_abs_greater1以及coeff_abs_greater2(而非仅仅coeff_significant_flag)的任意组合进行多二进制位更新以外。因此,该模式比另一个模式更复杂。所有其他语法元素(其中,未使用多二进制位更新)可分成两个分离的子集,其中,对于一个子集,使用单二进制位更新,并且对于另一个子集,未使用任何上下文模型更新。任何可能的分离的子集有效(包括空子集)。
在一个替换的实施方式中,可仅仅根据最后m个二进制位,进行多二进制位更新,直接在多二进制位更新步骤之前编码最后m个二进制位。m可为小于n的任何自然数。因此,可同样进行解码:
b b b b u u b b b b u u b b b b u u b b b b…
n=4,并且m=2。
即,选择器402可被配置为对于预定符号类型的符号,根据与预定符号类型相关的概率模型,在熵解码器322之中进行选择,同时根据预定符号类型的m个最近符号,为预定类型的每n个符号更新相关的概率模型,以便与高效率模式相比,比率n/m在低复杂度模式中更高。
在另一个优选的实施方式中,对于语法元素coeff_significant_flag,将上述本地模板用于HE-PIPE配置的上下文建模方案可用于将上下文模型分配给该语法元素的二进制位。然而,对于这些二进制位,未使用任何上下文模型更新。
而且,选择器402可被配置为对于预定符号类型的符号,根据这符号序列中先前检索的多个符号,选择多个上下文中的一个,并且根据与所选择的上下文相关的概率模型,在熵解码器322之中进行选择,以便与高效率模式相比,上下文的数量和/或先前检索的符号的数量在低复杂度模式中更低。
使用8比特初始化值的概率模型初始化
该部分描述了使用所谓的8比特初始化值(而非两个8比特值)的概率模型的复杂度可扩展的内部状态的初始化工序,与在先有技术的视频编码标准H.264/AVC中的情况一样。由两个部分构成,这两部分可与在H.264/AVC的CABAC中用于概率模型的初始化值对相比。这两部分表示线性方程的两个参数,用于计算概率模型的初始状态,表示QP的特定概率(例如,具有PIPE指数的形式):
·第一部分描述了斜率,并且利用内部状态关于在编码或解码期间使用的量化参数(QP)的依赖性。
·第二部分以规定的QP限定PIPE指数以及valMps。
两个不同的模式可用于使用规定的初始化值来初始化概率模型。第一模式由与QP无关的初始化表示。第一模式仅仅使用在用于所有QP的初始化值的第二部分中限定的PIPE指数和valMps。这与斜率等于0的情况相同。第二模式由依赖于QP的初始化表示,并且另外使用初始化值的第一部分的斜率,来改变PIPE指数并且限定细化指数。如下说明8比特初始化值的这两个部分:
Figure GDA0002398175490000901
由两个4比特部分构成。第一部分包含指向在16个不同的预定斜率中的1个的指数,这些斜率储存在一个阵列中。预定的斜率由7个负斜率(斜率指数为0到6)、一个等于0的斜率(斜率指数7)以及8个正斜率(斜率指数为8到15)构成。在表C中描述了这些斜率。
斜率指数 0 1 2 3 4 5 6 7
斜率值 -239 -143 -85 -51 -31 -19 -11 0
斜率指数 8 9 10 11 12 13 14 15
斜率值 11 19 31 51 85 143 239 399
表C:
所有值放大256倍,以免使用浮点操作。第二部分为PIPE指数,该指数体现在概率间隔p=0和p=1之间的valMps=1的上升概率。换言之,PIPE编码器n必须以比PIPE编码器n-1更高的模型概率进行操作。对于每个概率模型,可使用一个PIPE概率指数,并且该指数识别PIPE编码器,对于QP=26,该编码器的概率间隔包含pvalMPs=1的概率。
PIPE概率指数 0 1 2 3 4 5 6 7
PIPE编码器 UR5 UR4 UR3 UR2 TB BP2 BP3 EP
MPS 0 0 0 0 0 0 0 0
PIPE概率指数 8 9 10 11 12 13 14 15
PIPE编码器 EP BP3 BP2 TB UR2 UR3 UR4 UR5
MPS 1 1 1 1 1 1 1 1
表D:将初始化值的第二部分映射到PIPE编码器和valMps中:UR=一元到莱斯代码,TB=三二进制位代码,BP=二进制位管代码,EP=等概率(未解码的)。
需要QP和8比特初始化值,来通过计算具有y=m*(QP–QPref)+256*b形式的简单线性方程,计算概率模型的内部状态的初始化。要注意的是,通过使用斜率指数(8比特初始化值的第一部分),m限定了从表c中获取的斜率,并且b表示PIPE编码器,QPref=26(8比特初始化值的第二部分:“PIPE概率指数”)。然后,如果y大于2047,那么valMPS为1,并且pipeIdx等于(y-2048)>>8。否则,valMPS为0,并且pipeIdx等于(2047-y)>>8。如果valMPS等于1,那么细化指数等于(((y-2048)&255)*numStates)>>8。否则,细化指数等于(((2047-y)&255)*numStates)>>8。在这两种情况下,如在表B中所示,numStates等于pipeIdx的CABAC状态的数量。
以上方案不仅可用于与PIPE编码器相结合,而是可与上述CABAC方案相关。在没有PIPE时,然后,每个PIPE Idx(即,pState_current[bin]的各个最重要的比特)的CABAC状态(即,概率状态,在这些概率状态之间,在概率更新中进行状态转换(pState_current[bin]))的数量仅仅为一组参数,这组参数实际上根据QP实现CABAC状态的分段线性插值。而且,在参数numStates对于所有PIPE Idx使用相同值的情况下,实际上还可禁止该分段线性插值。例如,在所有情况下将numStates设为8,总共产生16*8个状态,并且细化指数的计算对于等于1的valMPS简化为((y-2048)&255)>>5,或者对于等于0的valMPS简化为((2047-y)&255)>>5。对于这种情况下,将使用valMPS、PIPE idx以及细化idx的表示映射回由H.264/AVC的最初CABAC使用的表示中,这非常简单。CABAC状态表示为(PIPE Idx<<3)+细化Idx。下面参照图17,进一步描述该方面。
除非8比特初始化值的斜率等于0,或者除非QP等于26,否则,需要利用具有编码或解码工序的QP的线性方程,来计算内部状态。在斜率等于0或者当前编码工序的QP等于26的情况下,8比特初始化值的第二部分可直接用于初始化概率模型的内部状态。否则,所产生的内部状态的小数部分可进一步用于在高效率编码应用中由在特定的PIPE编码器的限制之间的线性插值来确定细化指数。在该优选的实施方式中,通过使小数部分简单地乘以可用于当前PIPE编码器的细化指数的总数,并且将结果映射到最接近的整数细化参数中,来执行该线性插值。
概率模型的内部状态的初始化工序可相对于PIPE概率指数状态的数量改变。具体地,使用PIPE编码器E1(即,使用两个不同的PIPE指数)来在作为1或0的MPS之间进行区分,可如下避免重复发生等概率模式。而且,在开始解析片段数据时,可调用该工序,并且如在表E中所示,该工序的输入可为8比特初始化值,例如,对于要初始化的每个上下文模型,在比特流内传输该值。
表格E:为概率模型设置8比特的初始化值
Figure GDA0002398175490000931
最初的4比特限定斜率指数,并且通过屏蔽b4到b7,检索最初的4比特。对于每个斜率指数,在表F中规定并且显示斜率(m)。
表F:用于斜率指数的变量m的值
Figure GDA0002398175490000932
比特b0–b3(8比特初始化值的最后4比特)识别probIdx,并且在预定的QP处描述概率。probIdx 0表示值为0的符号的最高概率,并且probIdx 14表示值为1的符号的最高概率。表G示出了用于每个probIdx的相应的pipeCoder及其valMps。
表G:将初始化值的最后4比特部分映射到PIPE编码器和valMps中:UR=一元到莱斯代码,TB=三二进制位代码,BP=二进制位管代码,EP=等概率(未解码的)
probIdx 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
pipeCoder UR5 UR4 UR3 UR2 TBC BP2 BP3 EP BP3 BP2 TBC UR2 UR3 UR4 UR5
valMps 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
通过这两个值,可使用线性方程(例如,y=m*x+256*b),来计算内部状态,其中,m表示斜率,x表示当前片段的QP,并且b源自probIdx,如在以下描述中所示。在该工序中的所有值放大256倍,以避免使用浮点操作。该工序的输出(y)表示在当前QP处的概率模型的内部状态,并且储存在8比特存储器内。如G中所示,内部状态由valMPs、pipeIdx以及refineIdx构成。
表H:概率模型的内部状态的设置
Figure GDA0002398175490000941
refineIdx和pipeIdx的分配与CABAC概率模型(pStateCtx)的内部状态相似,并且在H中显示。
表I:分配pipeIdx、refineIdx以及pStateCtx
Figure GDA0002398175490000942
在一个优选的实施方式中,在QP26处限定probIdx。根据8比特初始化值,如在以下伪代码中所述,处理概率模型的内部状态(valMps、pipeIdx以及refineIdx):
Figure GDA0002398175490000943
Figure GDA0002398175490000951
如在伪代码中所示,通过在pipeIdx的间隔之间进行线性插入,并且将结果量化为相应的refineIdx,来计算refineIdx。偏置规定每个pipeIdx的refineIdx总数。将fullCtxState/256的间隔[7,8)分成两半。将间隔[7,7.5)映射到pipeIdx=0和valMps=0中,并且将间隔[7.5,8)映射到pipeIdx=0和valMps=1中。图22描述了获取内部状态的工序,并且显示了将fullCtxState/256映射到pStateCtx中。
要注意的是,斜率表示probIdx和QP的依赖性。如果8比特初始化值的slopeIdx等于7,那么概率模型的所产生的内部状态对于所有片段QP相同,因此,内部状态的初始化工序独立于片段的当前QP。
即,选择器402可使用语法元素,来初始化在解码数据流(例如,整个流或下一个片段)的以下部分时使用的管指数,该语法元素表示所使用的量化步长QP,以便将该语法元素用作输入由这两个模式(LC和HE)共有的表格内的指数,来量化该部分的数据(例如,包含在其内的变换系数水平)。对于各个参考QPref,该表格(例如,表格D)可包括用于每个符号类型的管指数以及用于每个符号类型的其他数据。根据当前部分的实际QP,选择器可使用由实际的QP和QP本身索引的各个表条目a来计算管指数值,例如,通过使a乘以(QP-QPref)。LC和HE模式的唯一区别在于:与HE模式相比,在LC的情况下,选择器仅仅以更低的精度计算结果。选择器例如可仅仅使用计算结果的整数部分。在HE模式中,精度更高的余数(例如,小数部分)用于为各个管指数选择一个可用的细化指数,由更低的精度或整数部分表示。在HE模式中(潜在地更少地还在LC模式中),使用细化指数,以便进行概率适应,例如,通过使用上述表格移动(table walk)。在使当前管指数的可用指数处于上限时,然后,接下来选择更高的管指数,尽可能减小细化指数。在使当前管指数的可用指数处于下限时,然后,选择下一个更低的管指数,将细化指数尽可能增大为可用于新管指数的最大值。管指数以及细化指数限定概率状态,但是对于在部分流之中进行选择,选择器仅仅使用管指数。细化指数仅仅用于更紧密地或者更精确地跟踪概率。
然而,以上讨论也显示了,可使用如图19中所示的解码器,独立于图7到17的PIPE或CABAC编码概念,实现复杂度可扩展性。图19的解码器用于解码编码媒体数据的数据流601,并且包括:模式开关600,被配置为根据数据流601来激活低复杂度模式或高效率模式;以及去符号化器602,被配置为使用由控制参数可控制的映射函数,来将从数据流601中(例如,直接或通过熵解码)获得的一系列603符号去符号化,以获得具有整数值的语法元素604,用于将符号序列字的域映射到具有整数值的语法元素的上域中。重构器605被配置为根据具有整数值的语法元素,重构媒体数据606。去符号化器602被配置为去符号化,以便在激活高效率模式的情况下,控制参数以第一速率根据数据流变化,并且在激活低复杂度模式的情况下,控制参数恒定,与数据流无关,或者根据数据流改变,但是以比第一速率更低的第二速率变化,如箭头607所示。例如,控制参数可根据先前去符号化后的符号变化。
以上一些实施方式利用图19的方面。例如,如407所示,根据所选择的模式,在去符号化器314内,将在序列327内的语法元素coeff_abs_minus3和MVD二值化,并且重构器605使用这些语法元素进行重构。显然,图18和19的两个方面可容易地相结合,但是图19的方面还可与其他编码环境相结合。
例如,参照上述运动向量差值编码。去符号化器602可被配置为使映射函数使用缩短的一元代码,来在小于截止值的具有整数值的语法元素的域的第一间隔内进行映射,并且在等于和大于截止值的具有整数值的语法元素的域的第二间隔内组合具有截止值的缩短的一元代码的形式的前缀和具有VLC码字的形式的后缀,其中,解码器可包括熵解码器608,其被配置为通过变化的概率估算,使用熵解码,从数据流601中获取缩短的一元代码的多个第一二进制位,并且使用恒定的等概率旁路模式来获取VLC码字的多个第二二进制位。在HE模式中,熵编码可比在LC编码中更复杂,如箭头609所示。即,在HE模式中可应用并且在LC模式中可抑制上下文自适应性和/或概率适应,或者可在其他方面增大复杂性,如上面在各种实施方式中所述。
在图20中示出了适合图18的解码器的编码器,用于将媒体数据编码成数据流。该编码器可包括:插入器500,被配置为在数据流501内用信号通知激活低复杂度模式或高效率模式;构造器504,被配置为将媒体数据505预先编码成一系列506语法元素;符号化器507,被配置为将这系列506语法元素符号化成一系列508符号;多个熵编码器310,每个熵编码器被配置为将部分符号序列转换成数据流的码字;以及选择器502,被配置为将这系列508符号中的每个符号转发给所述多个熵编码器310的所选择的一个,其中,选择器502被配置为根据低复杂度模式和高效率中激活的一个,进行选择,如箭头511所示。可选地提供交错器510,用于使编码器310的码字交错。
在图21中示出了适合图19的解码器的编码器,用于将媒体数据编码成数据流,该编码器包括:插入器700,被配置为在数据流701内用信号通知激活低复杂度模式或高效率模式;构造器704,被配置为将媒体数据705预先编码成包括具有整数值的语法元素的一系列706语法元素;以及符号化器707,被配置为使用由控制参数可控制的映射函数,来符号化具有整数值的语法元素,用于将具有整数值的语法元素的域映射到符号序列字的上域中,其中,符号化器707被配置为进行符号化,以便在激活高效率模式的情况下,控制参数以第一速率根据数据流变化,并且在激活低复杂度模式的情况下,控制参数恒定,与数据流无关,或者根据数据流改变,但是以比第一速率更低的第二速率变化,如箭头708所示。将符号化结果编码到数据流701内。
而且,应提及的是,在上述上下文自适应二进制位算法编码/解码实施方式上可容易地传送图18的实施方式:选择器509和熵编码器310压缩成熵编码器710,该熵编码器会直接输出数据流401并且为目前从数据流中获取的二进制位选择上下文。对于上下文自适应和/或概率自适应,尤其如此。在低复杂度模式中,可关闭或更轻松地设计功能/自适应性。
要注意的是,在视频编码或其他数据的编码上,可容易地传送以上实施方式的以上很多方面。具体地,特定类型的重构器并不重要。
虽然在设备的上下文中描述了一些方面,但是这些方面显然还表示相应方法的描述,其中,一个块或装置与一个方法步骤或方法步骤的一个特征对应。相似地,在方法步骤的上下文中描述的方面还表示相应设备的相应块或物品或特征的描述。可由(使用)硬件设备等(例如,微处理器、可编程计算机或电子电路)执行一些或所有方法步骤。在一些实施方式中,某一个或多个最重要的方法步骤可由这种设备执行。
本发明的编码信号可储存在数字储存介质上或者可在传输介质(例如,无线传输介质或有线传输介质,例如,因特网)上传输。
根据某些实现要求,本发明的实施方式可在硬件内或在软件内实现。使用在其上储存了电子可读控制信号的数字储存介质,(例如软盘、DVD、蓝光光盘、CD、ROM、PROM、EPROM、EEPROM或闪速存储器),可执行实现方式,这些控制信号与(或者能够与)可编程计算机系统配合,以便执行各个方法。因此,数字储存介质可为计算机可读介质。
根据本发明的一些实施方式包括具有电子可读控制信号的数据载体,这些控制信号能够与可编程计算机系统配合,以便执行在本文中描述的一种方法。
通常,本发明的实施方式可作为具有程序代码的计算机程序产品来实现,在计算机程序产品在计算机上允许时,该程序代码有效,用于执行一种方法。程序代码可例如储存在机器可读载体上。
其他实施方式包括储存在机器可读载体上的计算机程序,用于执行在本文中描述的一种方法。
换言之,因此,本发明方法的一个实施方式为具有程序代码的计算机程序,在计算机程序在计算机上允许时,该程序代码用于执行在本文中描述的一种方法。
因此,本发明方法的另一个实施方式是数据载体(或数字储存介质或计算机可读介质),该数据载体包括记录在其上的计算机程序,用于执行在本文中描述的一种方法。数据载体、数字储存介质或记录介质通常为有形和/或具有永久性。
因此,本发明方法的另一个实施方式是数据流或一系列信号,表示用于执行在本文中描述的一种方法的计算机程序。该数据流或这系列信号可例如被配置为通过数据通信连接(例如,通过互联网)传送。
另一个实施方式包括处理装置(例如,计算机或可编程逻辑装置),该装置被配置为或适合于执行在本文中描述的一种方法。
另一个实施方式包括在其上安装了计算机程序的计算机,该计算机程序用于执行在本文中描述的一种方法。
根据本发明的另一个实施方式包括一种设备或一种系统,该设备或系统被配置为将用于执行在本文中描述的一种方法的计算机程序传送(例如,电子地或光学地)给接收器。例如,接收器可为计算机、移动装置、存储装置等。该设备或系统可例如包括文件服务器,用于将计算机程序传送给接收器。
在一些实施方式中,可编程逻辑装置(例如,现场可编程门阵列)可用于执行在本文中所描述的方法的一些或所有功能。在一些实施方式中,现场可编程门阵列可与微处理器配合,以便执行在本文中所描述的一种方法。通常,这些方法优选地由任何硬件设备执行。
上述实施方式仅仅说明了本发明的原理。要理解的是,对于本领域的技术人员,在本文中所描述的设置与细节的修改和变化显而易见。因此,其目的在于,仅仅受到未决专利权利要求的范围的限制,而不受到在本文中用描述和解释实施方式的方式提出的具体细节的限制。
因此,具体地,以上描述显示了一种用于解码编码媒体数据的数据流401的解码器,包括:模式开关400,被配置为根据所述数据流来激活低复杂度模式或高效率模式;多个熵编码器322,每个熵编码器被配置为将在数据流中的码字转换成部分符号序列321;选择器402,被配置为从多个熵解码器322的所选择的一个中检索符号序列326中的每个符号;去符号化器314,被配置为将这序列符号326去符号化,以便获得语法元素序列327;重构器404,被配置为根据这语法元素序列,重构媒体数据;其中,选择器402被配置为根据低复杂度模式和高效率模式中激活的一个进行选择。选择器402可被配置为对于预定的符号,在激活高效率模式的情况下,根据这符号序列326中先前检索的符号,并且在激活低复杂度模式的情况下,独立于这符号序列中先前检索的任何符号,在多个熵解码器322之中进行选择。数据流可由连续部分构成,并且这符号序列中的每个符号可与多个符号类型中的相应一个相关,其中,选择器402可被配置为对于在当前部分内的预定符号类型的符号,在激活高效率模式的情况下,根据在当前部分内的预定符号类型的这符号序列中先前检索的符号,改变选择,并且在激活低复杂度模式的情况下,在当前部分内,使所述选择保持恒定。还可行的是,这符号序列326中的每个符号与多个符号类型中的相应一个相关,其中,选择器402被配置为对于预定符号类型的预定符号,根据这符号序列中先前检索的符号选择多个上下文中的一个,并且在激活高效率模式的情况下,根据与所选择的上下文相关的概率模型,在熵解码器322之中进行选择,同时根据预定符号,更新与所选择的上下文相关的概率模型,根据这符号序列中先前检索的符号选择多个上下文中的一个,并且在激活低复杂度模式的情况下,根据与所选择的上下文相关的概率模型,在熵解码器322之中进行选择,同时使与所选择的上下文相关的概率模型恒定。可选地或此外,这符号序列326中的每个符号可与多个符号类型中的各个相关,其中,选择器402可被配置为对于预定符号类型的每个符号,在激活高效率模式的情况下,根据与预定符号类型相关的概率模型,在熵解码器322之中进行选择,同时根据预定符号类型的符号,以第一更新速率更新概率模型,以及对于预定符号类型的每个符号,在激活低复杂度模式的情况下,根据所述概率模型在熵解码器322之中进行选择,根据预定符号类型的符号,以低于第一更新速率的第二更新速率,间断地更新概率模型。还可行的是,选择器402被配置为对于预定符号类型的符号,在激活高效率模式的情况下,使用以第一概率状态精度限定的概率状态指数,来进行概率模型适应,并且根据以第一概率状态精度限定的概率状态指数,在熵解码器322之中进行所述选择,以及在激活低复杂度模式的情况下,使用以低于第一概率状态精度的第二概率状态精度限定的概率状态指数,不进行概率模型适应或进行概率模型适应,并且根据以第二概率状态精度限定的概率状态指数,在熵解码器之中进行所述选择。还可行的是,重构器404被配置为独立于激活的高效率模式或低复杂度模式进行操作。重构器404可被配置为根据独立于激活的高效率模式或低复杂度模式的这语法元素序列的一部分来重构变换系数水平202的变换块200,这语法元素序列的这部分通过非交错的方式包括:重要图语法元素,其限定表示在变换块200内的非零变换系数水平的位置的重要图;以及水平语法元素,其限定非零变换系数水平。重构器404可被配置为根据独立于激活的高效率模式或低复杂度模式的这语法元素序列的一部分来重构变换系数水平202的变换块200,这语法元素序列的这部分通过非交错的方式包括:端位置语法元素(last_significant_pos_x、last_significant_pos_y),其表示在变换块内的最后一个非零变换系数水平的位置;第一语法元素(coeff_significant_flag),其共同限定重要图并且对于在变换块200内沿着从DC位置引向最后一个非零变换系数水平的位置的一维路径274的每个位置,表示在各个位置的变换系数水平是否为非零;第二语法元素(coeff_abs_greater1),其对于根据第一二元语法元素定位非零变换系数水平的一维路径(274)的每个位置,表示在各个位置的变换系数水平是否大于1;第三语法元素(coeff_abs_greater2、coeff_abs_minus3),其对于根据第一二元语法元素定位大于1的变换系数水平的一维路径的每个位置,显示了在各个位置的各个变换系数水平超过1的量,其中,在端位置语法元素以及第一、第二和第三语法元素之间的顺序对于高效率模式和低复杂度模式相同,以及其中,选择器402被配置为根据激活的低复杂度模式或高效率模式,对于去符号化器从中获得端位置语法元素以及第一语法元素、第二语法元素和/或第三语法元素的符号,在熵解码器322之中不同地进行选择。在这方面,选择器402可被配置为在激活高效率模式的情况下,对于在去符号化器从中获得第一语法元素和第二语法元素的符号的子序列之中的预定符号类型的符号,为预定符号类型的每个符号,根据在符号的子序列之中的预定符号类型的先前检索的符号,选择多个上下文中的一个,并且根据与所选择的上下文相关的概率模型,进行选择,以及在激活低复杂度模式的情况下,通过分段恒定的方式进行选择,以便在子序列的连续持续的子部分之上,该选择恒定。选择器402被配置为对于在去符号化器从中获得第一语法元素和第二语法元素的符号的子序列之中的预定符号类型的符号,为预定符号类型的每个符号,根据在具有预定符号值并且属于相同的子部分的符号的子序列内的预定符号类型的多个先前检索的符号,或者根据在属于相同的子部分的符号序列内的预定符号类型的多个先前检索的符号,选择多个上下文中的一个。对于根据第一二元语法元素定位大于1的变换系数水平的一维路径的每个位置,第三语法元素显示了在各个位置的各个变换系数水平超过1的量,其可包括具有整数值的语法元素(coeff_abs_minus3),并且去符号化器314可被配置为使用由控制参数可控制的映射函数,来将符号序列字的域映射到具有整数值的语法元素的上域中,如果激活高效率模式,那么根据先前的第三语法元素中具有整数值的语法元素,设置每个具有整数值的语法元素的控制参数,并且在激活低复杂度模式的情况下,以分段恒定的方式进行设置,以便在子序列的连续持续的子部分之上,该设置恒定,其中,选择器402被配置为在高效率模式和低复杂度模式中,选择熵解码器322中与等概率分布相关的预定的一个,用于映射到具有整数值的语法元素上的符号序列字的符号。这符号序列326的每个符号可与多个符号类型中的相应一个相关,其中,选择器402可被配置为对于多个预定符号类型中的每个符号类型的符号,根据与各个预定符号相关的相应概率模型,在熵解码器322之中进行选择,以便与高效率模式相比,预定符号类型的数量在低复杂度模式中更低。这符号序列326的每个符号可与多个符号类型中的相应一个相关,其中,选择器402可被配置为对于预定符号类型的符号,根据与预定符号类型相关的概率模型,在熵解码器322之中进行选择,同时更新或不更新相关的概率模型,以便与高效率模式相比,这符号序列的学习阶段的长度在低复杂度模式中更短,在这学习阶段上,选择预定符号类型的符号,同时进行更新。这符号序列326的每个符号可与多个符号类型中的相应一个相关,其中,选择器402可被配置为对于预定符号类型的符号,根据与预定符号类型相关的概率模型,在熵解码器322之中进行选择,同时更新或不更新相关的概率模型,以便与高效率模式相比,在选择预定符号类型的符号的同时进行更新的频率在低复杂度模式中更低。这符号序列326的每个符号可与多个符号类型中的各个相关,其中,选择器402可被配置为对于预定符号类型的符号,根据这符号序列中多个先前检索的符号,选择多个上下文中的一个,并且根据与所选择的上下文相关的概率模型,在熵解码器322之中进行选择,以便与高效率模式相比,上下文的数量和/或先前检索的符号的数量在低复杂度模式中更低。这符号序列326的每个符号可与多个符号类型中的各个相关,其中,选择器402可被配置为对于预定符号类型的符号,根据与预定符号类型相关的概率模型,在熵解码器322之中进行选择,同时根据预定符号类型的y个最近符号,在预定类型的每第x个(x-th)符号更新相关的概率模型,以便与高效率模式相比,比率x/y在低复杂度模式中更高。这符号序列326的每个符号可与多个符号类型中的相应一个相关,其中,选择器402可被配置为在数据流中使用语法元素,根据计算,初始化与符号类型相关的概率模型,该计算与语法元素在低复杂度模式和高效率模式中分别相同,然而,计算结果的分辨率(resolution)在低复杂度模式比高效率模式中更低。

Claims (21)

1.一种用于解码包括视频的编码数据的数据流的解码器,所述解码器包括:
熵解码引擎,被配置为基于算术解码方案解码来自所述数据流的数据以获得符号序列,其中,相对于所述符号序列中的至少一个符号,所述熵解码引擎被配置为:
选择对应于所述至少一个符号的上下文,以及
基于所述算术解码方案使用所选择的上下文熵解码所述至少一个符号,其包括在熵解码的高效率模式下周期性地更新与所选择的上下文相关的概率模型以及在熵解码的低复杂度模式下不更新所述概率模型;以及
重构器,被配置为基于使用所述符号序列的一部分解码的变换系数水平的变换块重构所述视频的至少一部分,其包括:
端位置语法元素,指示在所述变换块内的最后一个非零变换系数水平的位置,
第一语法元素,限定有效图并且对于所述变换块内的每个位置,指示在相应位置处的所述变换系数水平是否为非零,以及
第二语法元素,对于由所述第一语法元素指示的非零变换系数水平所位于的每个位置,指示在所述相应位置处的所述变换系数水平是否大于特定非零值。
2.根据权利要求1所述的解码器,其中,基于所述符号序列的先前解码符号选择所述高效率模式。
3.根据权利要求1所述的解码器,其中,所述数据流被构成为连续部分,并且所述符号序列中的每个符号与多个符号类型中的相应的一个相关,其中,对于当前部分内的所述多个符号类型中的特定符号类型的符号,基于所述当前部分内的所述特定符号类型的所述符号序列的先前解码符号选择所述高效率模式。
4.根据权利要求1所述的解码器,其中,所述至少一个符号与多个符号类型中的一个相关,并且所述熵解码引擎被配置为基于与所述至少一个符号相关的符号类型的先前解码符号选择所述上下文。
5.根据权利要求1所述的解码器,其中,对于所述高效率模式,所述概率模型与具有第一概率状态精度的概率状态指数相关,而对于所述低复杂度模式所述概率模型与具有第二概率状态精度,所述第二概率状态精度低于所述第一概率状态精度。
6.根据权利要求1所述的解码器,其中,所述数据流包括与所述视频的颜色样本相关的信息。
7.根据权利要求1所述的解码器,其中,所述数据流包括与所述视频的深度图相关的信息。
8.一种用于将视频的数据编码至数据流的编码器,所述编码器包括:
熵编码引擎,被配置为基于算术编码方案编码符号序列,其中,相对于所述符号序列中的至少一个符号,所述熵编码引擎被配置为:
选择对应于所述至少一个符号的上下文,以及
基于所述算术编码方案使用所选择的上下文熵编码所述至少一个符号,其包括在熵解码的高效率模式下周期性地更新与所选择的上下文相关的概率模型以及在熵解码的低复杂度模式下不更新所述概率模型;以及
数据插入器,被配置为将所编码的符号序列插入至所述数据流,其中,所述符号序列的一部分涉及:
端位置语法元素,指示在变换系数水平的变换块内的最后一个非零变换系数水平的位置,
第一语法元素,限定有效图并且对于所述变换块内的每个位置,指示在相应位置处的所述变换系数水平是否为非零,以及
第二语法元素,对于由所述第一语法元素指示的非零变换系数水平所位于的每个位置,指示在所述相应位置的所述变换系数水平是否大于特定非零值。
9.根据权利要求8所述的编码器,其中,基于所述符号序列的先前编码符号选择所述高效率模式,并且独立于所述符号序列的任意先前编码符号选择所述低复杂度模式。
10.根据权利要求8所述的编码器,其中,所述数据流被构成为连续部分,并且所述符号序列中的每个符号与多个符号类型中的相应的一个相关,其中,对于当前部分内的所述多个符号类型的特定符号类型的符号,基于所述当前部分内的所述特定符号类型的所述符号序列的先前编码符号选择所述高效率模式。
11.根据权利要求8所述的编码器,其中,所述至少一个符号与多个符号类型中的一个相关,并且所述熵编码引擎被配置为基于与所述至少一个符号相关的符号类型的先前编码符号选择所述上下文。
12.根据权利要求8所述的编码器,其中,对于所述高效率模式,所述概率模型与具有第一概率状态精度的概率状态指数相关,而对于所述低复杂度模式,所述概率模型与具有第二概率状态精度的概率状态指数相关,所述第二概率状态精度低于所述第一概率状态精度。
13.根据权利要求8所述的编码器,其中,所述数据流包括与所述视频的颜色样本相关的信息。
14.根据权利要求8所述的编码器,其中,所述数据流包括与所述视频的深度图相关的信息。
15.一种用于解码包括视频的编码数据的数据流的方法,所述方法包括:
基于算术解码方案解码来自所述数据流的数据以获得符号序列,其中,相对于所述符号序列中的至少一个符号,熵解码包括:
选择对应于所述至少一个符号的上下文,以及
基于所述算术解码方案使用所选择的上下文熵解码所述至少一个符号,其包括在熵解码的高效率模式下周期性地更新与所选择的上下文相关的概率模型以及在熵解码的低复杂度模式下不更新所述概率模型;以及
基于使用所述符号序列的一部分解码的变换系数水平的变换块重构所述视频的至少一部分,其涉及:
端位置语法元素,指示在所述变换块内的最后一个非零变换系数水平的位置,
第一语法元素,限定有效图并且对于所述变换块内的每个位置,指示在相应位置为的所述变换系数水平是否为非零,以及
第二语法元素,对于由所述第一语法元素指示的非零变换系数水平所位于的每个位置,指示在所述相应位置处的所述变换系数水平是否大于特定非零值。
16.一种用于将视频的数据编码至数据流的方法,所述方法包括:
基于算术编码方案编码符号序列,其中,相对于所述符号序列中的至少一个符号,所述编码包括:
选择对应于所述至少一个符号的上下文,以及
基于所述算术编码方案使用所选择的上下文熵编码所述至少一个符号,其包括在熵解码的高效率模式下周期性地更新与所选择的上下文相关的概率模型以及在熵解码的低复杂度模式下不更新所述概率模型;以及
将所编码的符号序列插入至所述数据流,其中,所述符号序列的一部分涉及:
端位置语法元素,指示在变换系数水平的变换块内的最后一个非零变换系数水平的位置,
第一语法元素,限定有效图并且对于所述变换块内的每个位置,指示在相应位置处的所述变换系数水平是否为非零,以及
第二语法元素,对于由所述第一语法元素指示的非零变换系数水平所位于的每个位置,指示在所述相应位置处的所述变换系数水平是否大于特定非零值。
17.一种存储计算机程序的非易失性计算机可读存储介质,当在计算机上运行时,所述计算机程序用于执行根据权利要求15所述的方法。
18.一种存储计算机程序的非易失性计算机可读存储介质,当在计算机上运行时,所述计算机程序用于执行根据权利要求16所述的方法。
19.一种用于解码视频的方法,其特征在于,所述方法包括:
接收并解码包括视频的编码符号序列的数据流,其中,所述符号序列基于如下多个操作被编码至所述数据流,所述多个操作包括:
基于算术编码方案编码符号序列,其中,相对于所述符号序列中的至少一个符号,所述编码包括:
选择对应于所述至少一个符号的上下文,以及
基于所述算术编码方案使用所选择的上下文熵编码所述至少一个符号,其包括在熵解码的高效率模式下周期性地更新与所选择的上下文相关的概率模型以及在熵解码的低复杂度模式下不更新所述概率模型;以及
将所述编码符号序列插入至所述数据流,其中,所述符号序列的一部分涉及:
端位置语法元素,指示在变换系数水平的变换块内的最后一个非零变换系数水平的位置,
第一语法元素,限定有效图并且对于所述变换块内的每个位置,指示在相应位置处的所述变换系数水平是否为非零,以及
第二语法元素,对于由所述第一语法元素指示的非零变换系数水平所位于的每个位置,指示在所述相应位置处的所述变换系数水平是否大于特定非零值。
20.一种用于解码视频的方法,其中,所述方法包括:
接收并解码与所述视频相关的数据,并且如果经受解码器解码,则指示所述解码器通过执行根据权利要求15所述的方法解码来自所述数据的所述视频。
21.根据权利要求19至20中任一项所述的方法,其中,所述数据包括深度图。
CN201710977462.2A 2011-06-16 2012-06-18 解码器、编码器、解码方法、编码方法以及存储介质 Active CN107517384B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161497794P 2011-06-16 2011-06-16
US61/497,794 2011-06-16
US201161508506P 2011-07-15 2011-07-15
US61/508,506 2011-07-15
CN201280039922.2A CN103748886B (zh) 2011-06-16 2012-06-18 支持模式切换的熵编码

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280039922.2A Division CN103748886B (zh) 2011-06-16 2012-06-18 支持模式切换的熵编码

Publications (2)

Publication Number Publication Date
CN107517384A CN107517384A (zh) 2017-12-26
CN107517384B true CN107517384B (zh) 2020-06-30

Family

ID=46319135

Family Applications (26)

Application Number Title Priority Date Filing Date
CN201280039896.3A Active CN103931194B (zh) 2011-06-16 2012-06-18 运动矢量差的熵编码
CN201280039832.3A Active CN103733622B (zh) 2011-06-16 2012-06-18 熵编码中的上下文初始化
CN201710694354.4A Active CN107529704B (zh) 2011-06-16 2012-06-18 解码器、解码和编码视频的方法
CN201280039922.2A Active CN103748886B (zh) 2011-06-16 2012-06-18 支持模式切换的熵编码
CN201710477823.7A Active CN107465926B (zh) 2011-06-16 2012-06-18 基于上下文初始化的解码器、编解码方法、计算机介质
CN201710694424.6A Active CN107529708B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710477937.1A Active CN107333140B (zh) 2011-06-16 2012-06-18 视频编解码方法及编解码器
CN201710694423.1A Active CN107529707B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法
CN201710965903.7A Active CN107613307B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码方法、编码方法及存储介质
CN201710491640.0A Active CN107333142B (zh) 2011-06-16 2012-06-18 解码器、编码器及其解码方法和编码方法
CN201710694425.0A Active CN107529709B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710962467.8A Active CN107770559B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码方法、编码方法、介质和存储方法
CN201710694799.2A Active CN107529710B (zh) 2011-06-16 2012-06-18 解码器、解码和编码视频的方法
CN201710477936.7A Active CN107465928B (zh) 2011-06-16 2012-06-18 将视频编码到数据流中的编码器和从数据流中解码视频的解码器及其编码、解码方法
CN201710695327.9A Active CN107360423B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710977462.2A Active CN107517384B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码方法、编码方法以及存储介质
CN201710694392.XA Active CN107529705B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710694292.7A Active CN107801025B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法
CN201710694391.5A Active CN107347161B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710478537.2A Active CN107333141B (zh) 2011-06-16 2012-06-18 解码器及解码方法、编码器及编码方法
CN201710694395.3A Active CN107529706B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710962381.5A Active CN107517383B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码方法、编码方法以及存储介质
CN201710694930.5A Active CN107360434B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710694268.3A Active CN107801041B (zh) 2011-06-16 2012-06-18 解码器、解码和编码视频的方法
CN201710694312.0A Active CN107801042B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法
CN201710477825.6A Active CN107465927B (zh) 2011-06-16 2012-06-18 一种从数据流中解码视频的解码器和解码方法,以及将视频编码到数据流中的编码器和编码方法

Family Applications Before (15)

Application Number Title Priority Date Filing Date
CN201280039896.3A Active CN103931194B (zh) 2011-06-16 2012-06-18 运动矢量差的熵编码
CN201280039832.3A Active CN103733622B (zh) 2011-06-16 2012-06-18 熵编码中的上下文初始化
CN201710694354.4A Active CN107529704B (zh) 2011-06-16 2012-06-18 解码器、解码和编码视频的方法
CN201280039922.2A Active CN103748886B (zh) 2011-06-16 2012-06-18 支持模式切换的熵编码
CN201710477823.7A Active CN107465926B (zh) 2011-06-16 2012-06-18 基于上下文初始化的解码器、编解码方法、计算机介质
CN201710694424.6A Active CN107529708B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710477937.1A Active CN107333140B (zh) 2011-06-16 2012-06-18 视频编解码方法及编解码器
CN201710694423.1A Active CN107529707B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法
CN201710965903.7A Active CN107613307B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码方法、编码方法及存储介质
CN201710491640.0A Active CN107333142B (zh) 2011-06-16 2012-06-18 解码器、编码器及其解码方法和编码方法
CN201710694425.0A Active CN107529709B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710962467.8A Active CN107770559B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码方法、编码方法、介质和存储方法
CN201710694799.2A Active CN107529710B (zh) 2011-06-16 2012-06-18 解码器、解码和编码视频的方法
CN201710477936.7A Active CN107465928B (zh) 2011-06-16 2012-06-18 将视频编码到数据流中的编码器和从数据流中解码视频的解码器及其编码、解码方法
CN201710695327.9A Active CN107360423B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质

Family Applications After (10)

Application Number Title Priority Date Filing Date
CN201710694392.XA Active CN107529705B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710694292.7A Active CN107801025B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法
CN201710694391.5A Active CN107347161B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710478537.2A Active CN107333141B (zh) 2011-06-16 2012-06-18 解码器及解码方法、编码器及编码方法
CN201710694395.3A Active CN107529706B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710962381.5A Active CN107517383B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码方法、编码方法以及存储介质
CN201710694930.5A Active CN107360434B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法及存储介质
CN201710694268.3A Active CN107801041B (zh) 2011-06-16 2012-06-18 解码器、解码和编码视频的方法
CN201710694312.0A Active CN107801042B (zh) 2011-06-16 2012-06-18 解码器、编码器、解码和编码视频的方法
CN201710477825.6A Active CN107465927B (zh) 2011-06-16 2012-06-18 一种从数据流中解码视频的解码器和解码方法,以及将视频编码到数据流中的编码器和编码方法

Country Status (31)

Country Link
US (36) US9473170B2 (zh)
EP (9) EP2721822B1 (zh)
JP (12) JP6059212B2 (zh)
KR (13) KR102437504B1 (zh)
CN (26) CN103931194B (zh)
AP (3) AP4072A (zh)
AU (11) AU2012268951B2 (zh)
BR (4) BR122020024986B1 (zh)
CA (2) CA2839569C (zh)
CL (2) CL2013003603A1 (zh)
CO (2) CO6852031A2 (zh)
CY (1) CY1124687T1 (zh)
DK (5) DK3471415T3 (zh)
ES (5) ES2906869T3 (zh)
FI (2) FI2721819T3 (zh)
HK (17) HK1197128A1 (zh)
HR (1) HRP20220272T1 (zh)
HU (5) HUE057958T2 (zh)
IL (15) IL309379A (zh)
LT (4) LT3343781T (zh)
MX (7) MX2013014868A (zh)
MY (2) MY184473A (zh)
PH (15) PH12018500328B1 (zh)
PL (5) PL3343781T3 (zh)
PT (5) PT3343781T (zh)
RS (4) RS64604B1 (zh)
RU (7) RU2595934C2 (zh)
SI (4) SI2721819T1 (zh)
UA (2) UA123987C2 (zh)
WO (3) WO2012172115A1 (zh)
ZA (2) ZA201400029B (zh)

Families Citing this family (215)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE025960T2 (en) 2010-04-13 2016-04-28 Ge Video Compression Llc Video coding using multi-tree subdivisions of images
KR101529842B1 (ko) 2010-04-13 2015-06-17 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 샘플 배열 멀티트리 세부분할에서 계승
CN106067983B (zh) 2010-04-13 2019-07-12 Ge视频压缩有限责任公司 解码数据流的方法、生成数据流的方法及解码器
TWI713356B (zh) 2010-04-13 2020-12-11 美商Ge影像壓縮有限公司 樣本區域合併技術
US9288089B2 (en) 2010-04-30 2016-03-15 Ecole Polytechnique Federale De Lausanne (Epfl) Orthogonal differential vector signaling
US9288082B1 (en) 2010-05-20 2016-03-15 Kandou Labs, S.A. Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences
US8593305B1 (en) 2011-07-05 2013-11-26 Kandou Labs, S.A. Efficient processing and detection of balanced codes
US9077386B1 (en) 2010-05-20 2015-07-07 Kandou Labs, S.A. Methods and systems for selection of unions of vector signaling codes for power and pin efficient chip-to-chip communication
US9246713B2 (en) 2010-05-20 2016-01-26 Kandou Labs, S.A. Vector signaling with reduced receiver complexity
US9124557B2 (en) 2010-05-20 2015-09-01 Kandou Labs, S.A. Methods and systems for chip-to-chip communication with reduced simultaneous switching noise
US9985634B2 (en) 2010-05-20 2018-05-29 Kandou Labs, S.A. Data-driven voltage regulator
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9667379B2 (en) 2010-06-04 2017-05-30 Ecole Polytechnique Federale De Lausanne (Epfl) Error control coding for orthogonal differential vector signaling
US20120182388A1 (en) * 2011-01-18 2012-07-19 Samsung Electronics Co., Ltd. Apparatus and method for processing depth image
RS64604B1 (sr) * 2011-06-16 2023-10-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
EP4220966A1 (en) 2011-06-24 2023-08-02 Sun Patent Trust Image decoding device,
CN105554510B (zh) 2011-06-28 2019-06-28 三星电子株式会社 对视频进行解码的方法和设备
US11647197B2 (en) * 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
AU2012285851B2 (en) 2011-07-15 2015-11-12 Ge Video Compression, Llc Sample array coding for low-delay
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
EP2988511A1 (en) 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
EP2740263B1 (en) * 2011-09-16 2019-02-27 HFI Innovation Inc. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
JP6130839B2 (ja) * 2011-10-06 2017-05-17 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US20130101047A1 (en) * 2011-10-19 2013-04-25 Sony Corporation Context reduction of significance map coding of 4x4 and 8x8 transform coefficient in hm4.0
US9871537B2 (en) * 2011-10-27 2018-01-16 Qualcomm Incorporated Mapping states in binary arithmetic coder for video coding
US9484952B2 (en) 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
MY167316A (en) * 2011-11-04 2018-08-16 Sharp Kk Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
KR20130050403A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
WO2013106987A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
US20130188698A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US11039138B1 (en) * 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
JP6156723B2 (ja) * 2012-03-08 2017-07-05 サン パテント トラスト 画像符号化方法、画像復号化方法、画像符号化装置および画像復号化装置
US9237344B2 (en) * 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US9621921B2 (en) 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
WO2013175698A1 (ja) 2012-05-25 2013-11-28 パナソニック株式会社 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置および画像符号化復号装置
EP2858354B1 (en) 2012-05-25 2022-12-21 Sun Patent Trust Video image coding method, video image decoding method, video image coding device, video image decoding device, and video image coding-decoding device
WO2013175736A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
JP6288423B2 (ja) 2012-06-04 2018-03-07 サン パテント トラスト 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置
DE102012224060A1 (de) * 2012-12-20 2014-06-26 Robert Bosch Gmbh Verfahren zur Datenübertragung für ein Batteriemanagementsystem
WO2014124450A1 (en) 2013-02-11 2014-08-14 Kandou Labs, S.A. Methods and systems for high bandwidth chip-to-chip communications interface
CN104053007B (zh) * 2013-03-15 2019-05-07 乐金电子(中国)研究开发中心有限公司 深度图像帧内编码模式索引值配置方法及装置
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
KR102241045B1 (ko) 2013-04-16 2021-04-19 칸도우 랩스 에스에이 고 대역폭 통신 인터페이스를 위한 방법 및 시스템
KR20160024975A (ko) 2013-06-25 2016-03-07 뉴메리 엘티디. 비디오의 멀티-레벨 공간적-시간적 레졸루션 증가
WO2014210074A1 (en) 2013-06-25 2014-12-31 Kandou Labs SA Vector signaling with reduced receiver complexity
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US20150098504A1 (en) * 2013-10-09 2015-04-09 Qualcomm Incorporated Block vector coding for intra block copying
WO2015089623A1 (en) * 2013-12-16 2015-06-25 Mcafee, Inc. Process efficient preprocessing for an encryption standard
GB2521828A (en) 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
WO2015100522A1 (en) * 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
US9806761B1 (en) 2014-01-31 2017-10-31 Kandou Labs, S.A. Methods and systems for reduction of nearest-neighbor crosstalk
EP3100424B1 (en) 2014-02-02 2023-06-07 Kandou Labs S.A. Method and apparatus for low power chip-to-chip communications with constrained isi ratio
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
US10885104B2 (en) * 2014-02-27 2021-01-05 Dropbox, Inc. Systems and methods for selecting content items to store and present locally on a user device
EP3672176B1 (en) 2014-02-28 2022-05-11 Kandou Labs, S.A. Clock-embedded vector signaling codes
US9509437B2 (en) 2014-05-13 2016-11-29 Kandou Labs, S.A. Vector signaling code with improved noise margin
US20150334425A1 (en) * 2014-05-14 2015-11-19 Blackberry Limited Adaptive context initialization
US9148087B1 (en) 2014-05-16 2015-09-29 Kandou Labs, S.A. Symmetric is linear equalization circuit with increased gain
CA2950180C (en) 2014-05-28 2020-04-21 Arris Enterprises Llc Acceleration of context adaptive binary arithmetic coding (cabac) in video codecs
US9337862B2 (en) * 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US9852806B2 (en) 2014-06-20 2017-12-26 Kandou Labs, S.A. System for generating a test pattern to detect and isolate stuck faults for an interface using transition coding
US9930341B2 (en) * 2014-06-20 2018-03-27 Qualcomm Incorporated Block vector coding for intra block copying
US9112550B1 (en) 2014-06-25 2015-08-18 Kandou Labs, SA Multilevel driver for high speed chip-to-chip communications
US9854253B2 (en) * 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
CN106797352B (zh) 2014-07-10 2020-04-07 康杜实验室公司 高信噪特性向量信令码
US9432082B2 (en) 2014-07-17 2016-08-30 Kandou Labs, S.A. Bus reversable orthogonal differential vector signaling codes
WO2016014423A1 (en) 2014-07-21 2016-01-28 Kandou Labs S.A. Multidrop data transfer
KR101949964B1 (ko) 2014-08-01 2019-02-20 칸도우 랩스 에스에이 임베딩된 클록을 갖는 직교 차동 벡터 시그널링 코드
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN105578180B (zh) * 2014-10-16 2019-01-15 联想(北京)有限公司 一种编码方法及装置
US9674014B2 (en) 2014-10-22 2017-06-06 Kandou Labs, S.A. Method and apparatus for high speed chip-to-chip communications
CN104392725A (zh) * 2014-12-02 2015-03-04 中科开元信息技术(北京)有限公司 多声道无损音频混合编解码方法及装置
US10097833B2 (en) * 2014-12-26 2018-10-09 Intel Corporation Method and system of entropy coding using look-up table based probability updating for video coding
US10057580B2 (en) * 2015-01-30 2018-08-21 Mediatek Inc. Method and apparatus for entropy coding of source samples with large alphabet
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding
EP3254465A1 (en) * 2015-02-05 2017-12-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-view video codec supporting residual prediction
US9930378B2 (en) * 2015-02-11 2018-03-27 Qualcomm Incorporated Signaling of operation points for carriage of HEVC extensions
US10200711B2 (en) 2015-03-27 2019-02-05 Qualcomm Incorporated Motion vector derivation in video coding
CN112235575B (zh) 2015-04-08 2024-01-12 寰发股份有限公司 编码方法、编码装置和相应地计算机可读存储介质
WO2016178880A1 (en) * 2015-05-06 2016-11-10 NGCodec Inc. Intra prediction processor with reduced cost block partitioning and refined intra mode selection
EP3269141B1 (en) * 2015-05-19 2021-06-23 MediaTek Inc. Method and apparatus for multi-table based context adaptive binary arithmetic coding
KR102372931B1 (ko) 2015-06-26 2022-03-11 칸도우 랩스 에스에이 고속 통신 시스템
WO2017034113A1 (ko) * 2015-08-24 2017-03-02 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017041271A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
ES2844525B1 (es) * 2015-09-11 2022-07-05 Kt Corp Metodo para decodificar un video
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
US10198355B2 (en) 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
US10055372B2 (en) 2015-11-25 2018-08-21 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
US10003315B2 (en) 2016-01-25 2018-06-19 Kandou Labs S.A. Voltage sampler driver with enhanced high-frequency gain
FR3047379A1 (fr) * 2016-01-29 2017-08-04 Orange Procede de codage et decodage de donnees, dispositif de codage et decodage de donnees et programmes d'ordinateur correspondants
US10791097B2 (en) 2016-04-14 2020-09-29 Sophos Limited Portable encryption format
US10573324B2 (en) 2016-02-24 2020-02-25 Dolby International Ab Method and system for bit reservoir control in case of varying metadata
US10003454B2 (en) 2016-04-22 2018-06-19 Kandou Labs, S.A. Sampler with low input kickback
CN115085727A (zh) 2016-04-22 2022-09-20 康杜实验室公司 高性能锁相环
US10153591B2 (en) 2016-04-28 2018-12-11 Kandou Labs, S.A. Skew-resistant multi-wire channel
EP3449606A4 (en) 2016-04-28 2019-11-27 Kandou Labs S.A. LOW POWER MULTILAYER ATTACK CIRCUIT
WO2017189931A1 (en) 2016-04-28 2017-11-02 Kandou Labs, S.A. Vector signaling codes for densely-routed wire groups
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
US10142652B2 (en) * 2016-05-05 2018-11-27 Google Llc Entropy coding motion vector residuals obtained using reference motion vectors
FR3054764B1 (fr) * 2016-07-28 2018-07-27 B<>Com Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
WO2018030293A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US9906358B1 (en) 2016-08-31 2018-02-27 Kandou Labs, S.A. Lock detector for phase lock loop
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
US10419781B2 (en) * 2016-09-20 2019-09-17 Qualcomm Incorporated Storing and retrieving high bit depth image data
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
US11356693B2 (en) 2016-09-29 2022-06-07 Qualcomm Incorporated Motion vector coding for video coding
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
CN106231318B (zh) * 2016-09-30 2020-04-28 浙江宇视科技有限公司 一种基于量化变换系数的视频加扰方法及装置
BR112019007359A2 (pt) * 2016-10-11 2019-07-16 Genomsys Sa método e sistema para acesso seletivo dos dados bioinformáticos armazenados ou transmitidos
US10200188B2 (en) 2016-10-21 2019-02-05 Kandou Labs, S.A. Quadrature and duty cycle error correction in matrix phase lock loop
US10200218B2 (en) 2016-10-24 2019-02-05 Kandou Labs, S.A. Multi-stage sampler with increased gain
US10372665B2 (en) 2016-10-24 2019-08-06 Kandou Labs, S.A. Multiphase data receiver with distributed DFE
US10805608B2 (en) * 2016-12-22 2020-10-13 Kt Corporation Method and apparatus for processing video signal
US11240526B2 (en) 2017-01-02 2022-02-01 Industry-University Cooperation Foundation Hanyang University Method and apparatus for decoding image using interpicture prediction
WO2018128222A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
US10757412B2 (en) * 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
KR20180087771A (ko) * 2017-01-25 2018-08-02 삼성전자주식회사 엔트로피 인코더 및 이를 포함하는 비디오 인코더
US10595033B2 (en) 2017-02-15 2020-03-17 Sony Corporation Variable length coding of header data for image compression
KR102450863B1 (ko) * 2017-03-22 2022-10-05 에스케이텔레콤 주식회사 움직임벡터를 부호화 또는 복호화하기 위한 장치 및 방법
US10554988B2 (en) * 2017-03-22 2020-02-04 Qualcomm Incorporated Binary arithmetic coding with parameterized probability estimation finite state machines
US11240536B2 (en) * 2017-04-13 2022-02-01 Lg Electronics Inc. Method and device for entropy encoding, decoding video signal
WO2018191749A1 (en) 2017-04-14 2018-10-18 Kandou Labs, S.A. Pipelined forward error correction for vector signaling code channel
US10116468B1 (en) 2017-06-28 2018-10-30 Kandou Labs, S.A. Low power chip-to-chip bidirectional communications
US10686583B2 (en) 2017-07-04 2020-06-16 Kandou Labs, S.A. Method for measuring and correcting multi-wire skew
US10693587B2 (en) 2017-07-10 2020-06-23 Kandou Labs, S.A. Multi-wire permuted forward error correction
US11477492B2 (en) * 2017-08-04 2022-10-18 Google Inc. Adaptation for entropy coding of blocks of image data
US10203226B1 (en) 2017-08-11 2019-02-12 Kandou Labs, S.A. Phase interpolation circuit
US10791341B2 (en) * 2017-10-10 2020-09-29 Qualcomm Incorporated Binary arithmetic coding with progressive modification of adaptation parameters
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US11039143B2 (en) * 2017-11-20 2021-06-15 Qualcomm Incorporated Memory reduction for context initialization with temporal prediction
US11575922B2 (en) * 2017-12-06 2023-02-07 V-Nova International Limited Methods and apparatuses for hierarchically encoding and decoding a bytestream
US10609421B2 (en) * 2018-07-12 2020-03-31 Google Llc Context derivation for coefficient coding
US10326623B1 (en) 2017-12-08 2019-06-18 Kandou Labs, S.A. Methods and systems for providing multi-stage distributed decision feedback equalization
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
US10602178B1 (en) * 2017-12-21 2020-03-24 Mozilla Corporation Systems and methods for frame context selection
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
WO2019147403A1 (en) 2018-01-29 2019-08-01 Interdigital Vc Holdings, Inc. Encoding and decoding with refinement of the reconstructed picture
TWI799785B (zh) * 2018-03-29 2023-04-21 弗勞恩霍夫爾協會 視訊解碼器、視訊編碼器、用以解碼視訊內容之方法、用以編碼視訊內容之方法、電腦程式及視訊位元串流
CN117294838A (zh) * 2018-03-29 2023-12-26 弗劳恩霍夫应用研究促进协会 用于增强并行编码能力的构思
US10986354B2 (en) * 2018-04-16 2021-04-20 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US10630990B1 (en) * 2018-05-01 2020-04-21 Amazon Technologies, Inc. Encoder output responsive to quality metric information
CN108810553B (zh) * 2018-05-02 2021-01-12 上海大学 一种基于稀疏化处理的移动节点监测数据序列压缩方法
TWI675441B (zh) * 2018-05-14 2019-10-21 欣興電子股份有限公司 封裝載板結構及其製造方法
KR102559966B1 (ko) * 2018-05-25 2023-07-26 라인플러스 주식회사 복수의 채널을 이용하여 동적 비트레이트의 비디오를 송출 및 재생하는 방법 및 시스템
US10986340B2 (en) * 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding
US10939115B2 (en) * 2018-06-19 2021-03-02 Qualcomm Incorporated Efficient weighted probability estimation for binary arithmetic coding
CN108848380B (zh) * 2018-06-20 2021-11-30 腾讯科技(深圳)有限公司 视频编码和解码方法、装置、计算机设备及存储介质
WO2020008330A1 (en) * 2018-07-01 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Priority-based non-adjacent merge design
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
CN108989825B (zh) * 2018-07-18 2021-05-07 北京奇艺世纪科技有限公司 一种算术编码方法、装置及电子设备
US11218737B2 (en) 2018-07-23 2022-01-04 Google Llc Asymmetric probability model update and entropy coding precision
US10743029B2 (en) * 2018-07-30 2020-08-11 Tencent America LLC Constraints on coding unit partition
CN116095312A (zh) 2018-08-04 2023-05-09 北京字节跳动网络技术有限公司 视频处理方法、装置和计算机可读介质
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN117676165A (zh) * 2018-09-10 2024-03-08 华为技术有限公司 视频解码方法及视频解码器
CN114143554B (zh) * 2018-09-13 2024-04-12 华为技术有限公司 一种预测运动信息的解码方法及装置
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
KR102473571B1 (ko) * 2018-10-05 2022-12-06 타이사 리서치 엘엘씨 변환 계수 코딩 방법 및 그 장치
WO2020070612A1 (en) 2018-10-06 2020-04-09 Beijing Bytedance Network Technology Co., Ltd. Improvement for temporal gradient calculating in bio
US20200143226A1 (en) * 2018-11-05 2020-05-07 Samsung Electronics Co., Ltd. Lossy compression of neural network activation maps
US10983677B2 (en) 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria
US10841595B2 (en) * 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for transform coefficient encoding and decoding
US10917636B2 (en) * 2018-12-03 2021-02-09 Tencent America LLC Method and apparatus for video coding
US10904548B2 (en) * 2018-12-06 2021-01-26 Qualcomm Incorporated Coefficient processing for video encoding and decoding
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
CN111355958B (zh) * 2018-12-21 2022-07-29 华为技术有限公司 视频解码方法及装置
CA3114341C (en) * 2018-12-29 2023-10-17 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using compact mv storage
US11252431B2 (en) 2019-01-02 2022-02-15 Telefonaktiebolaget Lm Ericsson (Publ) Side motion refinement in video encoding/decoding systems
US11032560B2 (en) * 2019-01-17 2021-06-08 Tencent America LLC Method and apparatus for video coding without updating the HMVP table
CN111475424B (zh) * 2019-01-23 2023-07-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读存储介质
US11134273B2 (en) 2019-02-14 2021-09-28 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN109946229A (zh) * 2019-02-25 2019-06-28 南京文易特电子科技有限公司 一种香烟条包智能数字双拉线检测系统及检测方法
US10652581B1 (en) * 2019-02-27 2020-05-12 Google Llc Entropy coding in image and video compression using machine learning
US10939107B2 (en) * 2019-03-01 2021-03-02 Sony Corporation Embedded codec circuitry for sub-block based allocation of refinement bits
WO2020180153A1 (ko) * 2019-03-06 2020-09-10 엘지전자 주식회사 인터 예측을 위한 비디오 신호의 처리 방법 및 장치
US11202100B2 (en) * 2019-03-11 2021-12-14 Qualcomm Incorporated Coefficient coding for transform skip mode
US11178399B2 (en) * 2019-03-12 2021-11-16 Qualcomm Incorporated Probability initialization for video coding
KR102223790B1 (ko) * 2019-03-15 2021-03-05 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
CN109947398B (zh) * 2019-03-25 2020-12-25 武汉轻工大学 三重积分求解方法、装置、终端设备及可读存储介质
KR102647470B1 (ko) 2019-04-15 2024-03-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비선형 적응형 루프 필터링에서 파라미터의 시간적 예측
WO2020231140A1 (ko) 2019-05-14 2020-11-19 엘지전자 주식회사 적응적 루프 필터 기반 비디오 또는 영상 코딩
CN112135149B (zh) * 2019-06-24 2023-07-18 华为技术有限公司 语法元素的熵编码/解码方法、装置以及编解码器
US11184642B2 (en) 2019-08-02 2021-11-23 Mediatek Inc. Methods and apparatus for simplification of coding residual blocks
WO2021040492A1 (ko) * 2019-08-31 2021-03-04 엘지전자 주식회사 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치
WO2021058593A1 (en) * 2019-09-24 2021-04-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding concept for a sequence of information values
CN115361561B (zh) * 2019-10-01 2023-08-01 北京达佳互联信息技术有限公司 残差和系数编解码的方法和装置
CN112866181B (zh) * 2019-11-28 2023-05-26 上海商汤智能科技有限公司 数据解码装置、加速器、以及片上系统
US11468601B2 (en) 2020-01-13 2022-10-11 Samsung Display Co., Ltd. Systems and methods for scalable throughput entropy coder
US11822902B2 (en) * 2020-01-21 2023-11-21 California Institute Of Technology Systems and methods for performing lossless source coding
US20230042018A1 (en) * 2020-02-12 2023-02-09 Google Llc Multi-context entropy coding for compression of graphs
CN116018647A (zh) * 2020-07-10 2023-04-25 皇家飞利浦有限公司 通过基于可配置机器学习的算术编码进行的基因组信息压缩
US11362681B2 (en) 2020-08-21 2022-06-14 Seagate Technology Llc One-shot state transition probability encoder and decoder
CN112260699A (zh) * 2020-09-15 2021-01-22 深圳拓邦股份有限公司 属性通讯编解码方法、编码装置、解码装置及系统
FR3114717B1 (fr) * 2020-09-30 2023-10-13 Fond B Com Procédé et dispositif électronique de décodage d’un flux de données, programme d’ordinateur et flux de données associés
US11722672B2 (en) 2020-10-06 2023-08-08 Qualcomm Incorporated Adaptively deriving rice parameter values for high bit-depth video coding
CN114501036A (zh) * 2020-11-13 2022-05-13 联发科技股份有限公司 熵解码装置及相关熵解码方法
CN114727109B (zh) * 2021-01-05 2023-03-24 腾讯科技(深圳)有限公司 多媒体的量化处理方法、装置及编码、解码设备
US11356197B1 (en) 2021-03-19 2022-06-07 Kandou Labs SA Error-tolerant forward error correction ordered set message decoder
CN113079377B (zh) * 2021-04-01 2022-09-30 中国科学技术大学 一种深度图像/视频压缩网络的训练方法
WO2022217245A1 (en) * 2021-04-07 2022-10-13 Innopeak Technology, Inc. Remaining level binarization for video coding
CN113489979A (zh) * 2021-05-28 2021-10-08 杭州博雅鸿图视频技术有限公司 熵编码方法、装置、电子设备及存储介质
CN113422964A (zh) * 2021-06-04 2021-09-21 绍兴市北大信息技术科创中心 一种串长度参数编解码方法和装置
KR20240044497A (ko) * 2021-08-17 2024-04-04 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 블록 기반 비디오 코딩을 위한 부호 예측
US11871038B2 (en) * 2021-09-29 2024-01-09 Tencent America LLC Techniques for constraint flag signaling for range extension with residual rice coding extension
WO2023114468A1 (en) * 2021-12-16 2023-06-22 Beijing Dajia Internet Information Technology Co., Ltd. Sign prediction for block-based video coding
US20230291935A1 (en) * 2022-03-11 2023-09-14 Tencent America LLC Systems and methods for division-free probability regularization for arithmetic coding
US20230308651A1 (en) * 2022-03-22 2023-09-28 Tencent America LLC Systems and methods for regularization-free multi-hypothesis arithmetic coding
WO2023195643A1 (ko) * 2022-04-05 2023-10-12 삼성전자 주식회사 엔트로피 부호화 및 복호화 장치 및 그 방법
WO2024007090A1 (zh) * 2022-07-04 2024-01-11 嘉兴尚坤科技有限公司 一种超高清视频数据编码/解码处理方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1589023A (zh) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于上下文的多码表变长编解码方法及编解码装置
CN1741616A (zh) * 2005-09-23 2006-03-01 联合信源数字音视频技术(北京)有限公司 一种基于上下文的自适应熵编/解码方法
WO2006112642A1 (en) * 2005-04-19 2006-10-26 Samsung Electronics Co., Ltd. Method and apparatus for adaptively selecting context model for entropy coding
CN101198051A (zh) * 2006-12-07 2008-06-11 深圳艾科创新微电子有限公司 基于h.264的熵解码器的实现方法及装置
WO2008136828A1 (en) * 2007-05-04 2008-11-13 Qualcomm Incorporated Video coding mode selection using estimated coding costs
WO2009004985A1 (ja) * 2007-06-29 2009-01-08 Sharp Kabushiki Kaisha 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、プログラム、および記録媒体
CN101938654A (zh) * 2010-08-17 2011-01-05 浙江大学 一种变换系数的优化量化方法及装置

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5925884B2 (ja) * 1980-12-24 1984-06-22 住友ゴム工業株式会社 ゴムロ−ラ
JPS5916569A (ja) * 1982-07-17 1984-01-27 Yoshida Kogyo Kk <Ykk> 金属部材のコ−ナ−部にストライプ模様を形成する方法
US6885864B2 (en) 1992-03-06 2005-04-26 Aircell, Inc. Virtual private network for cellular communications
US5717394A (en) 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5381145A (en) 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
JPH06334993A (ja) * 1993-03-26 1994-12-02 Sony Corp 動画像符号化又は復号化装置、並びに動きベクトルの可変長符号化及び復号化方法
KR970003102B1 (ko) * 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
US5847776A (en) 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
JP2866616B2 (ja) 1996-06-24 1999-03-08 昇 大串 健康ベッド
JPH10151789A (ja) 1996-11-22 1998-06-09 Eiji Shiozaki 粉体飛翔式印字制御方法および印字装置
WO1998044479A1 (fr) * 1997-03-31 1998-10-08 Matsushita Electric Industrial Co., Ltd. Procede de visualisation du premier plan d'images et dispositif connexe
KR100255754B1 (ko) * 1997-08-30 2000-05-01 전주범 이진 형상 신호 부호화 방법
CN1146245C (zh) * 1997-12-22 2004-04-14 株式会社大宇电子 隔行二进制形状编码方法和装置
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US6865298B2 (en) * 2001-03-30 2005-03-08 Sharp Laboratories Of America, Inc. Compound document compression based upon neighboring pixels
JP4125565B2 (ja) * 2001-08-31 2008-07-30 松下電器産業株式会社 画像符号化方法、画像復号化方法及びその装置
US20030048808A1 (en) * 2001-09-12 2003-03-13 Stahl Thomas Anthony Method and apparatus for changing received streaming content channels
KR100765060B1 (ko) 2001-11-09 2007-10-09 주식회사 포스코 침전조의 워터배출 조정장치
US7435543B2 (en) * 2001-11-27 2008-10-14 Animal Technology Institute Of Taiwan Genetic markers for pig backfat thickness
KR100925968B1 (ko) * 2001-12-17 2009-11-09 마이크로소프트 코포레이션 컴퓨터 시스템에서 비디오 시퀀스의 복수의 비디오 화상을 처리하는 방법, 시스템 및 컴퓨터 판독가능 매체
US7003035B2 (en) * 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
CN1225904C (zh) * 2002-04-12 2005-11-02 精工爱普生株式会社 在压缩域视频处理中降低存储器要求和实施有效的逆运动补偿的方法和设备
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
ATE421802T1 (de) * 2002-05-02 2009-02-15 Fraunhofer Ges Forschung Verfahren und anordnung zur arithmetischen enkodierung und dekodierung von binären zuständen sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium
DK1487113T3 (da) * 2002-05-02 2006-11-20 Fraunhofer Ges Forschung Kodning og afkodning af transformationskoefficienter i billede- eller videokodere
JP4230188B2 (ja) * 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
US6919105B2 (en) 2003-01-06 2005-07-19 Philip Morris Usa Inc. Continuous process for retaining solid adsorbent particles on shaped micro-cavity fibers
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7233622B2 (en) * 2003-08-12 2007-06-19 Lsi Corporation Reduced complexity efficient binarization method and/or circuit for motion vector residuals
EP1513350A1 (en) * 2003-09-03 2005-03-09 Thomson Licensing S.A. Process and arrangement for encoding video pictures
US6771197B1 (en) 2003-09-26 2004-08-03 Mitsubishi Electric Research Laboratories, Inc. Quantizing signals using sparse generator factor graph codes
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
JP4408766B2 (ja) 2004-07-30 2010-02-03 Ntn株式会社 Icタグ付き車輪用軸受装置
US7609947B2 (en) 2004-09-10 2009-10-27 Panasonic Corporation Method and apparatus for coordinating playback from multiple video sources
CN101052972A (zh) * 2004-09-22 2007-10-10 液滴技术有限公司 多技术熵编码系统和方法
DE102004049156B4 (de) * 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom
KR20060038189A (ko) * 2004-10-29 2006-05-03 삼성전자주식회사 컨텍스트 기반 적응형 이진 산술 복부호화 방법 및 장치
KR100636229B1 (ko) * 2005-01-14 2006-10-19 학교법인 성균관대학 신축형 부호화를 위한 적응적 엔트로피 부호화 및 복호화방법과 그 장치
KR100703760B1 (ko) 2005-03-18 2007-04-06 삼성전자주식회사 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치
RU2336661C2 (ru) * 2005-04-19 2008-10-20 Самсунг Электроникс Ко., Лтд. Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
EP1727371A1 (en) * 2005-05-27 2006-11-29 Thomson Licensing Method for controlling the encoder output bit rate in a block-based video encoder, and corresponding video encoder apparatus
JP4856954B2 (ja) * 2005-06-08 2012-01-18 パナソニック株式会社 画像符号化装置
CN1878309A (zh) * 2005-06-08 2006-12-13 松下电器产业株式会社 视频编码装置
KR100683788B1 (ko) 2005-06-25 2007-02-20 삼성에스디아이 주식회사 복수의 층들의 전극 라인들이 형성된 교류형 방전디스플레이 패널
RU2371881C1 (ru) * 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
CN101223780A (zh) * 2005-07-18 2008-07-16 三星电子株式会社 减少编码器和解码器之间的不匹配的视频编码方法和设备
CN100461863C (zh) * 2005-08-05 2009-02-11 上海富瀚微电子有限公司 基于上下文自适应二进制算术解码器
EP1755341A1 (en) * 2005-08-19 2007-02-21 Texas Instruments Incorporated Method of quantization of transform coefficients
US7221296B2 (en) * 2005-08-22 2007-05-22 Streaming Networks (Pvt.) Ltd. Method and system for fast context based adaptive binary arithmetic coding
KR100813963B1 (ko) * 2005-09-16 2008-03-14 세종대학교산학협력단 동영상의 무손실 부호화, 복호화 방법 및 장치
CN100466739C (zh) 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
JP2009513290A (ja) 2005-10-31 2009-04-02 生立生物科技股▲分▼有限公司 強膜バックリングバンドとその製造方法
KR100873636B1 (ko) * 2005-11-14 2008-12-12 삼성전자주식회사 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치
EA013890B1 (ru) 2005-11-25 2010-08-30 Грегор Зебиц Домашняя сеть, использующая проводные и беспроводные защищённые каналы связи
US7245242B2 (en) * 2005-11-28 2007-07-17 Conexant Systems, Inc. Decoding systems and methods
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
JP4318050B2 (ja) 2006-01-24 2009-08-19 ソニー株式会社 ワイヤレスチャンネル決定選択方法およびアクセスポイント装置
KR100750165B1 (ko) * 2006-02-22 2007-08-17 삼성전자주식회사 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
US20070217702A1 (en) * 2006-03-14 2007-09-20 Sung Chih-Ta S Method and apparatus for decoding digital video stream
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US7929608B2 (en) * 2006-03-28 2011-04-19 Sony Corporation Method of reducing computations in intra-prediction and mode decision processes in a digital video encoder
JP2007300455A (ja) * 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
JP2007306370A (ja) * 2006-05-12 2007-11-22 Victor Co Of Japan Ltd 画像符号化記録装置
US8472527B2 (en) * 2006-09-13 2013-06-25 Texas Instruments Incorporated Hierarchical motion estimation using original frame for sub-sampled reference
US7573405B2 (en) 2006-12-29 2009-08-11 Texas Instruments Incorporated System updating accumulated statistics coding variable values after multiple encodings
US20080162432A1 (en) * 2006-12-29 2008-07-03 Wen-Shan Wang Search table for unary k-th order exp-golomb decoder
CN101005287A (zh) * 2007-01-26 2007-07-25 北京中星微电子有限公司 提高算术编码速度的方法、系统及编码装置
US20080225947A1 (en) * 2007-03-13 2008-09-18 Matthias Narroschke Quantization for hybrid video coding
CN101115200B (zh) * 2007-04-20 2010-05-19 西安交通大学 一种有效的运动矢量可伸缩编码方法
JP2008300455A (ja) 2007-05-29 2008-12-11 Sumitomo Electric Ind Ltd パワーモジュール
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
KR101408698B1 (ko) 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치
US7839311B2 (en) * 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
US7535387B1 (en) * 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
CN101478672B (zh) * 2008-01-04 2012-12-19 华为技术有限公司 视频编码、解码方法及装置和视频处理系统
EP2077550B8 (en) * 2008-01-04 2012-03-14 Dolby International AB Audio encoder and decoder
JP4915350B2 (ja) * 2008-01-16 2012-04-11 日本電気株式会社 エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム
EP2245857B1 (en) 2008-01-22 2015-06-03 Dolby Laboratories Licensing Corporation Adaptive motion information cost estimation with dynamic look-up table updating
US20090201983A1 (en) 2008-02-07 2009-08-13 Motorola, Inc. Method and apparatus for estimating high-band energy in a bandwidth extension system
JP4479829B2 (ja) 2008-04-03 2010-06-09 ソニー株式会社 撮像装置及び撮像方法
US7656320B2 (en) 2008-04-10 2010-02-02 Red Hat, Inc. Difference coding adaptive context model using counting
JP4962400B2 (ja) 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US8179974B2 (en) * 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
CN101267559A (zh) * 2008-05-08 2008-09-17 上海交通大学 视频解码器的通用熵解码方法及装置
US20090304071A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Adaptive application of entropy coding methods
CN101304522A (zh) * 2008-06-20 2008-11-12 中国民航大学 一种以jpeg2000压缩图像为载体的大容量信息隐藏方法
US8699562B2 (en) * 2008-10-06 2014-04-15 Lg Electronics Inc. Method and an apparatus for processing a video signal with blocks in direct or skip mode
US9973739B2 (en) * 2008-10-17 2018-05-15 Nokia Technologies Oy Sharing of motion vector in 3D video coding
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
EP2182732A1 (en) * 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
US20100127904A1 (en) 2008-11-26 2010-05-27 Horizon Semiconductors Ltd. Implementation of a rapid arithmetic binary decoding system of a suffix length
KR101196792B1 (ko) * 2008-12-03 2012-11-05 노키아 코포레이션 Dct 계수 부호화 모드들 간의 전환
JP2010268094A (ja) * 2009-05-13 2010-11-25 Sony Corp 画像復号化装置および画像復号化方法
JP2010278668A (ja) 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
US9479812B2 (en) * 2009-06-05 2016-10-25 Time Warner Cable Enterprises Llc User selection of software components in a television set-top box
KR101678968B1 (ko) * 2009-08-21 2016-11-25 에스케이텔레콤 주식회사 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101441874B1 (ko) * 2009-08-21 2014-09-25 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
CN102055483B (zh) * 2009-10-29 2013-05-08 鸿富锦精密工业(深圳)有限公司 熵解码装置
JP5409268B2 (ja) * 2009-10-30 2014-02-05 株式会社日立ソリューションズ 情報提示装置及び携帯端末
KR20110071047A (ko) * 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
US9237355B2 (en) 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
US9973768B2 (en) 2010-03-16 2018-05-15 Texas Instruments Incorporated CABAC decoder with decoupled arithmetic decoding and inverse binarization
CN101841707B (zh) * 2010-03-19 2012-01-04 西安电子科技大学 基于jpeg2000标准的高速实时处理算术熵编码方法
JP5676744B2 (ja) * 2010-04-13 2015-02-25 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US20120014429A1 (en) * 2010-07-15 2012-01-19 Jie Zhao Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
CN101951516B (zh) * 2010-09-25 2013-06-05 清华大学 基于h.264/avc中cabac的并行编码实现电路及编码方法
US8902988B2 (en) 2010-10-01 2014-12-02 Qualcomm Incorporated Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
US10327008B2 (en) * 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
JP5570437B2 (ja) * 2011-01-12 2014-08-13 三菱電機株式会社 エントロピー符号化装置、エントロピー復号装置、エントロピー符号化方法及びエントロピー復号方法
US9008181B2 (en) 2011-01-24 2015-04-14 Qualcomm Incorporated Single reference picture list utilization for interprediction video coding
ITTO20110414A1 (it) * 2011-05-11 2012-11-12 St Microelectronics Pvt Ltd Procedimento ed apparecchiatura per elaborare segnali video, prodotto informatico e segnale codificato relativi
RS64604B1 (sr) 2011-06-16 2023-10-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
US9654772B2 (en) 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US10856009B2 (en) * 2014-09-04 2020-12-01 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1589023A (zh) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于上下文的多码表变长编解码方法及编解码装置
WO2006112642A1 (en) * 2005-04-19 2006-10-26 Samsung Electronics Co., Ltd. Method and apparatus for adaptively selecting context model for entropy coding
CN1741616A (zh) * 2005-09-23 2006-03-01 联合信源数字音视频技术(北京)有限公司 一种基于上下文的自适应熵编/解码方法
CN101198051A (zh) * 2006-12-07 2008-06-11 深圳艾科创新微电子有限公司 基于h.264的熵解码器的实现方法及装置
WO2008136828A1 (en) * 2007-05-04 2008-11-13 Qualcomm Incorporated Video coding mode selection using estimated coding costs
WO2009004985A1 (ja) * 2007-06-29 2009-01-08 Sharp Kabushiki Kaisha 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、プログラム、および記録媒体
CN101938654A (zh) * 2010-08-17 2011-01-05 浙江大学 一种变换系数的优化量化方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Description of video coding technology proposal by Fraunhofer HHI;WINKEN Martin et al;《Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTCl/SC29/WG11》;20100423;第2.6,4.16,4.17部分、图7 *

Also Published As

Publication number Publication date
CN107517384A (zh) 2017-12-26
PH12018500353A1 (en) 2018-08-13
CN107333141B (zh) 2020-04-07
PH12018500352B1 (en) 2018-08-13
AU2012268951B2 (en) 2015-07-30
AP2014007361A0 (en) 2014-01-31
AU2021209284A1 (en) 2021-08-19
AU2018200699A1 (en) 2018-02-22
KR101619333B1 (ko) 2016-05-18
JP2022123096A (ja) 2022-08-23
BR122021000264B1 (pt) 2022-02-22
AP4072A (en) 2017-03-16
BR112013032333B1 (pt) 2022-07-26
RU2615681C2 (ru) 2017-04-06
US9743090B2 (en) 2017-08-22
JP6492047B2 (ja) 2019-03-27
PL3930330T3 (pl) 2023-10-23
JP2021108479A (ja) 2021-07-29
HUE063990T2 (hu) 2024-02-28
US20170302969A1 (en) 2017-10-19
AU2023203785A1 (en) 2023-07-13
RU2658883C1 (ru) 2018-06-25
JP2019050610A (ja) 2019-03-28
DK3930330T3 (da) 2023-08-28
AU2018200699B2 (en) 2018-10-25
US9686568B2 (en) 2017-06-20
RU2755020C2 (ru) 2021-09-09
US20180152708A1 (en) 2018-05-31
PH12018500350A1 (en) 2018-08-13
KR20190079689A (ko) 2019-07-05
JP2023075109A (ja) 2023-05-30
EP3471415B1 (en) 2021-08-04
IL265636A (en) 2019-05-30
RS64867B1 (sr) 2023-12-29
CN107333140B (zh) 2020-09-22
WO2012172113A1 (en) 2012-12-20
US20170302968A1 (en) 2017-10-19
JP6867334B2 (ja) 2021-04-28
KR20220122800A (ko) 2022-09-02
US20180152707A1 (en) 2018-05-31
KR20200138444A (ko) 2020-12-09
MX2023005265A (es) 2023-05-23
JP6560393B2 (ja) 2019-08-14
FI3930330T3 (fi) 2023-09-07
IL283649B (en) 2022-03-01
CN107347161A (zh) 2017-11-14
IL283649A (en) 2021-07-29
US20180109813A1 (en) 2018-04-19
AU2019203792A1 (en) 2019-06-20
US10425644B2 (en) 2019-09-24
PH12018500355A1 (en) 2018-08-13
IL297827B1 (en) 2023-09-01
CN107529704B (zh) 2019-08-09
IL252388B (en) 2022-08-01
PH12018500356B1 (en) 2018-08-13
US20230078680A1 (en) 2023-03-16
CO6852030A2 (es) 2014-01-30
CN107801025A (zh) 2018-03-13
HUE057958T2 (hu) 2022-06-28
IL230415A (en) 2017-01-31
KR20180006510A (ko) 2018-01-17
SI2721819T1 (sl) 2023-12-29
IL252388A0 (en) 2017-07-31
IL305221A (en) 2023-10-01
BR112013032333A2 (pt) 2016-12-20
JP6356723B2 (ja) 2018-07-11
AU2021209284B2 (en) 2022-06-23
DK3471415T3 (da) 2021-11-01
CN107333140A (zh) 2017-11-07
PH12018500351A1 (en) 2018-08-13
CN107465928B (zh) 2020-10-30
CN107360434B (zh) 2020-05-12
CN107360423A (zh) 2017-11-17
LT3471415T (lt) 2021-12-10
PH12019500790A1 (en) 2019-11-11
IL299953B1 (en) 2023-09-01
EP3930330B1 (en) 2023-06-07
JP5952900B2 (ja) 2016-07-13
AP2014007360A0 (en) 2014-01-31
WO2012172114A1 (en) 2012-12-20
US10057603B2 (en) 2018-08-21
KR102160647B1 (ko) 2020-09-28
US20240048708A1 (en) 2024-02-08
IL249644A0 (en) 2017-02-28
IL297827B2 (en) 2024-01-01
CA2839560A1 (en) 2012-12-20
CN107770559A (zh) 2018-03-06
HK1246541A1 (zh) 2018-09-07
RU2699677C2 (ru) 2019-09-09
US20200267389A1 (en) 2020-08-20
BR112013032332B1 (pt) 2022-08-16
US9918104B2 (en) 2018-03-13
CN103748886A (zh) 2014-04-23
CA2839569A1 (en) 2012-12-20
AP3686A (en) 2016-04-23
AU2016202638B2 (en) 2017-06-15
AU2017228613B2 (en) 2017-11-02
LT3930330T (lt) 2023-09-11
CL2013003603A1 (es) 2014-08-01
US20190191165A1 (en) 2019-06-20
US10298964B2 (en) 2019-05-21
AU2017228613A1 (en) 2017-10-05
CN107529709A (zh) 2018-01-02
EP3930330A1 (en) 2021-12-29
PH12018500349B1 (en) 2018-08-13
US20140140400A1 (en) 2014-05-22
HK1246543A1 (zh) 2018-09-07
SI3471415T1 (sl) 2021-12-31
EP2721822A1 (en) 2014-04-23
CN107360423B (zh) 2020-05-12
CN107333142B (zh) 2020-06-02
PH12018500331A1 (en) 2018-07-09
IL259768A (en) 2018-07-31
IL294454A (en) 2022-09-01
US10230954B2 (en) 2019-03-12
JP5925884B2 (ja) 2016-05-25
UA115186C2 (uk) 2017-09-25
US10148962B2 (en) 2018-12-04
EP3471415A1 (en) 2019-04-17
LT2721819T (lt) 2023-11-27
JP2018186527A (ja) 2018-11-22
MX336735B (es) 2016-01-29
KR20190136116A (ko) 2019-12-09
US9973761B2 (en) 2018-05-15
US20160360204A1 (en) 2016-12-08
CN107465927A (zh) 2017-12-12
US10432940B2 (en) 2019-10-01
US20160366447A1 (en) 2016-12-15
KR20140022957A (ko) 2014-02-25
CN103931194A (zh) 2014-07-16
AU2012268950A1 (en) 2014-01-30
KR20170047406A (ko) 2017-05-04
PL3343781T3 (pl) 2022-03-28
EP4033672A1 (en) 2022-07-27
US20140198841A1 (en) 2014-07-17
EP2721819A1 (en) 2014-04-23
US9936227B2 (en) 2018-04-03
CN103733622A (zh) 2014-04-16
PH12018500354A1 (en) 2018-08-13
US20160360238A1 (en) 2016-12-08
US20180295387A1 (en) 2018-10-11
RU2014101164A (ru) 2015-07-27
PT3343781T (pt) 2022-03-07
CN107529704A (zh) 2018-01-02
HUE042350T2 (hu) 2019-06-28
IL304856B1 (en) 2024-04-01
US20170302954A1 (en) 2017-10-19
PH12018500329A1 (en) 2018-07-09
PH12018500330A1 (en) 2018-07-09
US20170302953A1 (en) 2017-10-19
CN107465927B (zh) 2020-05-12
DK2721819T3 (da) 2023-11-13
ES2704627T3 (es) 2019-03-19
MX364201B (es) 2019-04-16
AU2016202638A1 (en) 2016-05-19
US11277614B2 (en) 2022-03-15
PH12018500352A1 (en) 2018-08-13
US20190158840A1 (en) 2019-05-23
JP7231594B2 (ja) 2023-03-01
US20180332290A1 (en) 2018-11-15
US20190141329A1 (en) 2019-05-09
HUE056273T2 (hu) 2022-02-28
US10630988B2 (en) 2020-04-21
CN107529709B (zh) 2019-05-07
CN107801041A (zh) 2018-03-13
KR101882848B1 (ko) 2018-07-27
CN107613307A (zh) 2018-01-19
RU2595934C2 (ru) 2016-08-27
AU2022235513B2 (en) 2023-04-13
AU2023203785B2 (en) 2023-12-21
AU2019203792B2 (en) 2021-04-29
PL3471415T3 (pl) 2022-01-03
KR101662136B1 (ko) 2016-10-04
RU2642373C1 (ru) 2018-01-24
US20180205953A1 (en) 2018-07-19
EP3343781B1 (en) 2021-12-01
CN107529706A (zh) 2018-01-02
DK3343781T3 (da) 2022-03-07
US20200169733A1 (en) 2020-05-28
PH12018500348A1 (en) 2018-08-13
HK1248434B (zh) 2020-04-24
JP2014518473A (ja) 2014-07-28
JP2014520451A (ja) 2014-08-21
IL299953B2 (en) 2024-01-01
US20170366810A1 (en) 2017-12-21
US11533485B2 (en) 2022-12-20
PH12018500354B1 (en) 2018-08-13
US10432939B2 (en) 2019-10-01
IL299953A (en) 2023-03-01
MX2013014868A (es) 2014-05-28
US10630987B2 (en) 2020-04-21
PH12018500356A1 (en) 2018-08-13
CN107529705A (zh) 2018-01-02
CN107465926B (zh) 2021-06-08
IL309379A (en) 2024-02-01
JP2014522613A (ja) 2014-09-04
HK1246545A1 (zh) 2018-09-07
JP7100836B2 (ja) 2022-07-14
IL265636B (en) 2021-06-30
JP6814780B2 (ja) 2021-01-20
RU2018100106A3 (zh) 2019-07-17
CN107465926A (zh) 2017-12-12
AU2019200328B2 (en) 2019-03-07
JP2021044809A (ja) 2021-03-18
CN107529707B (zh) 2019-10-01
CN107333141A (zh) 2017-11-07
US20170302952A1 (en) 2017-10-19
PH12018500329B1 (en) 2018-07-09
FI2721819T3 (fi) 2023-11-16
AU2019200328A1 (en) 2019-02-07
MX2023005264A (es) 2023-05-23
ES2953667T3 (es) 2023-11-15
US9930371B2 (en) 2018-03-27
JP2017085602A (ja) 2017-05-18
AU2022235513A1 (en) 2022-10-13
EP3703367A1 (en) 2020-09-02
CL2013003601A1 (es) 2014-07-25
CO6852031A2 (es) 2014-01-30
AP2016009618A0 (en) 2016-12-31
MX2013014867A (es) 2014-05-21
PH12018500330B1 (en) 2018-07-09
EP2721822B1 (en) 2018-10-31
CN103748886B (zh) 2017-11-10
PH12018500355B1 (en) 2018-08-13
US9729883B2 (en) 2017-08-08
US9628827B2 (en) 2017-04-18
CN107801041B (zh) 2019-08-13
US10440364B2 (en) 2019-10-08
US20140177707A1 (en) 2014-06-26
US9473170B2 (en) 2016-10-18
EP4277276A1 (en) 2023-11-15
HK1248951A1 (zh) 2018-10-19
HK1248948B (zh) 2020-02-21
IL230023A (en) 2017-06-29
ZA201400029B (en) 2015-04-29
RU2018120845A (ru) 2019-12-09
EP2721820A1 (en) 2014-04-23
DK2721822T3 (en) 2019-02-18
CN103931194B (zh) 2017-09-05
LT3343781T (lt) 2022-03-10
US10313672B2 (en) 2019-06-04
CA2839560C (en) 2016-10-04
MX2019004403A (es) 2021-10-07
KR102437504B1 (ko) 2022-08-29
AU2012268950B2 (en) 2016-02-04
EP2721819B1 (en) 2023-08-16
HK1197128A1 (zh) 2015-01-02
JP2016174378A (ja) 2016-09-29
JP2018139415A (ja) 2018-09-06
KR20200064171A (ko) 2020-06-05
MY170940A (en) 2019-09-19
US10306232B2 (en) 2019-05-28
PT2721822T (pt) 2019-01-23
US20230188719A1 (en) 2023-06-15
US20190320178A1 (en) 2019-10-17
HK1246542A1 (zh) 2018-09-07
HK1247488A1 (zh) 2018-09-21
HK1248947A1 (zh) 2018-10-19
HRP20220272T1 (hr) 2022-05-13
PH12018500328A1 (en) 2018-07-09
SI3343781T1 (sl) 2022-04-29
ES2961663T3 (es) 2024-03-13
CN107517383A (zh) 2017-12-26
KR101730587B1 (ko) 2017-04-26
KR102187981B1 (ko) 2020-12-07
ES2906869T3 (es) 2022-04-20
CN107333142A (zh) 2017-11-07
RU2019127048A3 (zh) 2021-03-01
RU2014101166A (ru) 2015-07-27
US9596475B2 (en) 2017-03-14
US20200092560A1 (en) 2020-03-19
CN107770559B (zh) 2020-06-26
US9918090B2 (en) 2018-03-13
PT2721819T (pt) 2023-11-22
CA2839569C (en) 2017-01-03
IL254274A0 (en) 2017-10-31
RS62714B1 (sr) 2022-01-31
RU2019127048A (ru) 2021-03-01
US20190327474A1 (en) 2019-10-24
US20220224904A1 (en) 2022-07-14
IL290229B (en) 2022-12-01
US20170250709A1 (en) 2017-08-31
CN107801042A (zh) 2018-03-13
CN107360434A (zh) 2017-11-17
RU2018100106A (ru) 2019-07-09
US20180359476A1 (en) 2018-12-13
CN107529710A (zh) 2018-01-02
US9455744B2 (en) 2016-09-27
US11838511B2 (en) 2023-12-05
MX345195B (es) 2017-01-20
MY184473A (en) 2021-04-01
UA123987C2 (uk) 2021-07-07
JP6059212B2 (ja) 2017-01-11
US9930370B2 (en) 2018-03-27
CN107517383B (zh) 2020-07-14
WO2012172115A1 (en) 2012-12-20
US10819982B2 (en) 2020-10-27
US20170142416A1 (en) 2017-05-18
PH12018500351B1 (en) 2018-08-13
CN107529706B (zh) 2020-11-17
RU2018120845A3 (zh) 2021-04-05
AU2012268951A1 (en) 2014-01-16
HK1247487A1 (zh) 2018-09-21
CN107613307B (zh) 2021-04-06
HUE062605T2 (hu) 2023-11-28
PH12018500328B1 (en) 2018-07-09
CN107529705B (zh) 2021-02-12
CN107529708A (zh) 2018-01-02
PH12018500349A1 (en) 2018-08-13
BR112013032332A2 (pt) 2016-12-20
IL254274B (en) 2018-06-28
KR102052471B1 (ko) 2019-12-05
CN107465928A (zh) 2017-12-12
HK1247489A1 (zh) 2018-09-21
KR102254000B1 (ko) 2021-05-20
CN103733622B (zh) 2017-06-30
CN107529707A (zh) 2018-01-02
HK1248436A1 (zh) 2018-10-12
CN107347161B (zh) 2020-06-12
US10063858B2 (en) 2018-08-28
PT3930330T (pt) 2023-08-31
KR20140028106A (ko) 2014-03-07
KR20240017975A (ko) 2024-02-08
ES2897209T3 (es) 2022-02-28
CN107529708B (zh) 2019-05-07
RS64604B1 (sr) 2023-10-31
HK1248949A1 (zh) 2018-10-19
ES2704627T8 (es) 2021-01-25
PH12019500792A1 (en) 2020-12-02
RU2758981C2 (ru) 2021-11-03
HK1247490A1 (zh) 2018-09-21
CN107801042B (zh) 2020-06-19
PH12018500353B1 (en) 2018-08-13
EP3343781A1 (en) 2018-07-04
PH12018500348B1 (en) 2018-08-13
SI3930330T1 (sl) 2023-10-30
CN107529710B (zh) 2020-04-07
KR101818978B1 (ko) 2018-01-16
US9762913B2 (en) 2017-09-12
ZA201400030B (en) 2015-04-29
IL290229A (en) 2022-03-01
PT3471415T (pt) 2021-11-04
US20180324435A1 (en) 2018-11-08
AU2024201731A1 (en) 2024-04-04
JP7464768B2 (ja) 2024-04-09
HK1246540A1 (zh) 2018-09-07
US10021393B2 (en) 2018-07-10
PL2721819T3 (pl) 2024-02-19
PH12018500350B1 (en) 2018-08-13
KR20160018879A (ko) 2016-02-17
KR20180086522A (ko) 2018-07-31
IL297827A (en) 2023-01-01
IL294454B2 (en) 2023-06-01
BR122020024986B1 (pt) 2022-02-22
IL249644A (en) 2017-09-28
IL290229B2 (en) 2023-04-01
KR20160119254A (ko) 2016-10-12
US20160360223A1 (en) 2016-12-08
IL304856A (en) 2023-09-01
CY1124687T1 (el) 2022-07-22
PL2721822T3 (pl) 2019-04-30
US9768804B1 (en) 2017-09-19
KR101994869B1 (ko) 2019-07-01
US20170180733A1 (en) 2017-06-22
HK1249313B (zh) 2020-04-24
RS63053B1 (sr) 2022-04-29
KR102631388B1 (ko) 2024-01-31
CN107801025B (zh) 2020-07-14

Similar Documents

Publication Publication Date Title
CN107517384B (zh) 解码器、编码器、解码方法、编码方法以及存储介质
US20210243446A1 (en) Context initialization in entropy coding

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1247488

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant