CN111083476A - 编码和解码视频数据的方法及视频数据编码器和解码器 - Google Patents

编码和解码视频数据的方法及视频数据编码器和解码器 Download PDF

Info

Publication number
CN111083476A
CN111083476A CN201911136342.5A CN201911136342A CN111083476A CN 111083476 A CN111083476 A CN 111083476A CN 201911136342 A CN201911136342 A CN 201911136342A CN 111083476 A CN111083476 A CN 111083476A
Authority
CN
China
Prior art keywords
prefix
value
length
encoded
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911136342.5A
Other languages
English (en)
Other versions
CN111083476B (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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN111083476A publication Critical patent/CN111083476A/zh
Application granted granted Critical
Publication of CN111083476B publication Critical patent/CN111083476B/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

本公开提供了编码和解码视频数据的方法及视频数据编码器和解码器,该编码视频数据的方法包括:编码表示语法元素的值的视频编码参数以便通过选自一组编码方案的指数Golomb编码方案来编码;通过如下步骤将表示视频编码参数的语法元素的值由指数Golomb编码方案编码成的位的长度限制为32位:将位分配给前缀部分和后缀部分,后缀部分的位长度取决于由前缀部分编码的值,限制通过计算最大前缀长度而在电路中执行。

Description

编码和解码视频数据的方法及视频数据编码器和解码器
本申请为国际申请日为2014年11月7日、国际申请号为PCT/GB2014/053326、发明名称为“数据编码和解码”的中国国家阶段申请的分案申请,该中国国家阶段申请的进入国家阶段日为2016年6月23日、申请号为201480070778.8、发明名称为“数据编码和解码”。
相关申请交叉引用
本申请要求分别于2014年3月5日和2013年12月23日向英国知识产权局提交的GB1403854.1和GB1322947.1的在先申请日的权利,将其这两个申请的全部内容通过引证结合于此。
技术领域
本公开涉及数据编码和解码。
背景技术
在本文中提供的“背景”描述是为了总体上呈现本公开的上下文。就其在此背景部分描述的程度而言,目前署名的发明人的工作以及申请时未另有资格作为现有技术的描述的方面,既没有明确地也没有隐含地承认作为与本公开的相对的现有技术。
存在若干种视频数据压缩和解压缩系统,其涉及将视频数据变换成频域表示,量化频域系数,然后对量化的系数施加某种形式的熵编码。
在本上下文中,可以认为熵表示数据符号或者符号序列的信息内容。熵编码的目的是使用(理想地)表示数据符号序列的信息内容所必需的最小数目的编码数据位以无损方式编码数据符号序列。实际上,熵编码用于编码量化系数,使得经编码的数据(在其位数方面)小于原始量化系数的数据大小。更高效的熵编码过程对于相同的输入数据大小给出较小的输出数据大小。
一种用于熵编码视频数据的技术是所谓的CABAC(上下文自适应二进制算术编码)技术。
发明内容
本公开提供了数据解码装置,包括:解码器,被配置为将输入编码数据值解码为具有位深的解码数据值,输入编码数据值被编码为数据集,和用于未由数据集编码的值的转义码,转义码包括前缀部分和非一元编码后缀部分,前缀部分具有以最大前缀长度封顶的前缀长度,该最大前缀长度取决于数据值的位深,非一元编码后缀部分具有按位计的长度,根据对于至少一些由前缀部分编码的值,使得非一元编码后缀部分的长度大于前缀部分的按位计的长度的关系,非一元编码后缀部分的长度由前缀部分编码的值。
本公开提供了一种编码视频数据的方法,包括:编码表示语法元素的值的视频编码参数以便通过选自一组编码方案的指数Golomb编码方案来编码;通过如下步骤将表示视频编码参数的语法元素的值由指数Golomb编码方案编码成的位的长度限制为32位:将位分配给前缀部分和后缀部分,后缀部分的位长度取决于由前缀部分编码的值,限制通过计算最大前缀长度而在电路中执行。
本公开提供了一种解码视频数据的方法,该视频数据已通过上述的方法编码。
本公开提供了一种一种视频数据编码器,包括电路,电路被配置为:编码表示语法元素的值的视频编码参数以便通过选自一组编码方案的指数Golomb编码方案来编码;通过计算最大前缀长度并且将位分配给前缀部分和后缀部分,将表示视频编码参数的语法元素的值由指数Golomb编码方案编码成的位的长度限制为32位,后缀部分的位长度取决于由前缀部分编码的值。
本公开提供了一种解码视频数据的方法,该视频数据已通过上述的视频数据编码器编码。
本公开提供了一种视频数据解码器,被配置为解码已通过如下步骤编码的视频数据:编码表示语法元素的值的视频编码参数以便通过选自一组编码方案的指数Golomb编码方案来编码;通过如下步骤将表示视频编码参数的语法元素的值由指数Golomb编码方案编码成的位的长度限制为32位:将位分配为前缀部分和后缀部分,后缀部分的位长度取决于由前缀部分编码的值,限制通过计算最大前缀长度而在电路中执行。
本公开提供了一种非临时性机器可读存储介质,该存储介质存储软件,当由计算机执行软件时,使计算机执行上述方法。
本公开提供了一种一种视频数据捕捉、传输、显示和/或存储装置,包括上述视频数据编码器。
一种视频数据显示和/或接收装置,包括上述视频数据解码器。
应理解,前述的一般描述及之后的详细描述为示例性的,而非限制本公开。
附图说明
将容易获得本发明的更全面理解以及本发明伴随的许多优点,因为这些在结合附图进行考虑时参照实施例的以下描述将变得更好理解,其中:
图1示意性地示出了使用视频数据压缩和解压缩的音频/视频(A/V)数据传输和接收系统;
图2示意性地示出了利用视频数据解压缩的视频显示系统;
图3示意性地示出了利用视频数据压缩和解压缩的音频/视频存储系统;
图4示意性地示出了使用视频数据压缩的摄影机;
图5提供视频数据压缩和解压缩装置的示意图;
图6示意性地示出了预测图像的生成;
图7示意性地示出了最大编码单元(LCU);
图8示意性地示出了四个编码单元(CU)的组;
图9和图10示意性地示出了细分为更小编码单元的图8的编码单元;
图11示意性地示出了预测单元(PU)的阵列;
图12示意性地示出了变换单元(TU)的阵列;
图13示意性地示出了部分编码的图像;
图14示意性地示出了可能的预测方向的组;
图15示意性地示出了预测模式的组;
图16示意性地示出了之字形扫描;
图17示意性地示出了CABAC熵编码器;
图18是示意性地示出编码技术的流程图;
图19是示出编码技术的示意性流程图;
图20是示出编码技术的示意性流程图;以及
图21是示出编码技术的示意性流程图。
具体实施方式
现在参考附图,提供图1-4以给出将在下文结合实施方式描述的利用压缩及/或解压缩装置的装置或系统的示意图。
下文将描述的所有数据压缩和/或解压缩装置可以以硬件、在诸如通用计算机、如专用集成电路(ASIC)或者现场可编程门阵列(FPGA)的可编程硬件或其组合的通用数据处理装置上运行的软件实施。在由软件和/或固件实施实施方式的情况下,应当理解,这样的软件和/或固件,以及通过其存储,或以其他方式提供这种软件和/或固件的非易失性机器可读数据存储介质被认为是实施方式。
图1示意性地示出了利用视频数据压缩和/或解压缩的音频/视频数据传输和接收系统。
将输入音频/视频信号10提供给视频数据压缩装置20,视频数据压缩装置2压缩音频/视频信号10的至少视频分量,以用于沿着诸如、、如电缆、光纤、无线连接等的传输路径30传输。解压缩装置40处理经压缩的信号以提供输出音频/视频信号50。对于返回路径,压缩装置60压缩音频/视频信号,用于沿着传输路径30传输到解压缩装置70。
因此压缩装置20和解压缩装置70可以形成传输链路的一个节点。解压缩装置40和解压缩装置60可以形成传输链路的另一节点。当然,在传输链路为单向的情况下,仅节点中的一个需要压缩装置而另一节点仅需要解压缩装置。
图2示意性地示出了使用视频数据解压缩的视频显示系统。具体地,经压缩的音频/视频信号100由解压缩装置110处理以提供经解压缩的信号,经解压缩的信号可以在显示器120上显示。解压缩装置110可以实施为显示器120的组成部分,例如,与显示设备设置在同一壳体内。替换地,解压缩装置110可以配置为(例如)所谓的机顶盒(STB),注意,表达“机顶”并非表示该盒需要位于相对于显示器120的任何特定方位或位置;其仅为本领域中使用的术语,以指示作为外围设备可连接至显示器的设备。
图3示意性地示出了使用视频数据压缩和解压缩的音频/视频存储系统。将输入音频/视频信号130提供给压缩装置140,压缩装置140生成经压缩的信号,该经压缩的信号由诸如磁盘设备、光盘设备、磁带设备、诸如半导体存储器的固态存储设备或者其他存储器设备的存储设备150存储。对于重放,从存储设备150读取经压缩的数据并且将该数据传送到用于解压缩的解压缩装置160以提供输出音频/视频信号170。
应当理解,经压缩的或者编码的信号,以及存储介质或者存储该信号的数据载体被认为是实施方式。
图4示意性地示出了使用视频数据解压缩的摄影机。在图4中,图像获取设备180,如电荷耦合装置(CCD)图像传感器和相关的控制与读出电子设备,生成视频信号,该视频信号被传送至压缩装置190。一个扩音器(或多个扩音器)200生成传送至压缩装置190的音频信号。压缩装置190生成待存储和/或传输(通常示出为示意性阶段220)的经压缩的音频/视频信号210。
下文描述的技术主要涉及视频数据压缩。应当理解,许多现有技术可与即将描述的视频数据压缩技术相结合用于音频数据压缩,以生成经压缩的音频/视频信号。因此,将不提供对音频数据压缩的单独讨论。还应理解,与视频数据相关联的数据速率,尤其是广播质量的视频数据,通常比与(无论是压缩或者未压缩)音频数据相联的数据速率高很多。因此,应当理解,未经压缩的音频数据可伴随经压缩的视频数据形成经压缩的音频/视频信号。应进一步理解,虽然本实例(图1-图4中示出的)涉及音频/视频数据,但下文将描述的技术可以在仅处理(也就是说,压缩、解压缩、储存、显示及/或传输)视频数据的系统中获得使用。也就是说,实施方式能够应用于视频数据压缩,而完全不必具有任何相关的音频数据处理。
图5提供了在控制器345的控制下操作的视频数据压缩和解压缩装置的示意图。
输入视频信号的连续图像被提供至加法器310和图像预测器320。将在下文参考图6更详细地描述图像预测器320。事实上,加法器310执行减法(负加法)操作,因为其在“+”输入端接收输入视频信号300并且在“-”输入端接收图像预测器320的输出,因而从输入图像中减去预测图像。结果是生成表示实际图像与投影图像之间差的所谓残差图像信号330。
生成残差图像信号的原因之一如下。将描述数据编码技术,也就是说将应用于残差图像信号的技术,在待编码的图像中存在较少“能量”时趋向于更高效地工作。此处,术语“高效地”指少量经编码的数据的生成;对于特定的图像质量水平,期望生成实际上尽可能少的数据(并且认为“高效地”)。提及的残差图像中的“能量”指残差图像中含有的信息量。如果预测图像与实际图像一致,两者之间的差(也就是残差图像)将含有零信息(零能量)并且非常容易编码成少量的编码数据。通常,如果可以使预测过程相当好地工作,预期残差图像数据将含有比输入图像少的信息(少的能量)并且因而更容易编码成少量的经编码的数据。
残差图像数据330被提供给变换单元340,变换单元340生成残差图像数据的离散余弦变换(DCT)表示。DCT技术本身是公知的并且此处将不详细描述。然而,下文将更详细地描述在本装置中使用的技术的方面,具体地,涉及施加DCT运算的不同数据块的选择。下文将参考图7-图12讨论这些。
应注意在一些实施方式中,使用离散正弦变换(DST)而非DCT。在其他实施方式中,可以不使用变换。其可以选择性地进行,因而实际上例如在“跳过变换”的命令或模式的控制下,绕过了变换阶段。
变换单元340的输出,也就是说每个经变换的图像数据块的一组变换系数,被提供给量化器350。从简单地乘以量化比例因数,到在量化参数的控制下的复杂查找表的应用范围内,各种量化技术在视频数据压缩的领域中是已知的。总的目标是双重的。首先,量化过程减少了变换数据的可能值的数目。其次,量化过程可以增加变换数据的值为零的可能性。这两者可以使将在下文描述的熵编码过程更有高效地作用于产生少量经压缩的视频数据。
通过扫描单元360施加数据扫描处理。扫描出的目的是对量化变换的数据重新排序,从而将尽可能多的非零量化变换系数收集在一起,并且当然,由此将尽可能多的零值系数收集在一起。这些特征可以使得所谓的行程长度编码(run-length coding)或类似的技术高效地应用。所以,扫描处理涉及从经量化的变换数据选择系数,并且具体地,根据“扫描顺序”从对应于已经变换和量化的图像数据的块的系数块中选择系数,使得(a)一次选择所有系数作为扫描的一部分;并且(b)扫描趋向于提供期望的重新排序。下文将描述用于选择扫描顺序的技术。可以倾向于给出有用结果的一个扫描顺序实例是所谓的之字形扫描顺序。
然后,将扫描的系数传送至熵编码器(EE)370。再次,可使用各种类型的熵编码。下文将描述的两种实例是所谓的CABAC(上下文自适应二进制算术编码)系统和所谓的CAVLC(上下文自适应可变长度编码)系统的变形。总体而言,认为CABAC提供更佳的效率,并且在一些研究中已经显示,与CAVLC相比,对于相当的图像质量,提供编码输出数据的量减少10-20%。然而,认为CAVLC表现出(在其实施方面)比CABAC低得多的复杂水平。将参考下文的图17讨论CABAC技术。
应注意,扫描过程和熵编码过程示出为单独的过程,但事实上,可以组合或者一起处理。也就是说,将数据读入熵编码器,可以以扫描顺序进行。相应的考虑适于下文将描述的相应的反向程序。
熵编码器370的输出,连同例如限定预测器320产生预测图像的方式的另外的数据(上述的和/或下文讨论的),提供经压缩的输出视频信号380。
然而,因为预测器320自身的操作取决于经压缩的输出数据的解压缩的版本,还提供了返回路径。
该特征的原因如下。在解压缩处理(下文将描述)中的适当阶段中,产生残差数据的经解压缩的版本。该经解压缩的残差数据必须被加入预测图像中以生成输出图像(因为原始残差数据为输入图像与预测图像之间的差)。为了使该处理在压缩侧与解压缩侧之间是相当的,在压缩处理期间和在解压缩处理期间由预测器320生成的预测图像应相同。当然,在解压缩时,该装置并不访问原始输入图像,而仅访问经解压缩的图像。因此,在压缩时,预测器320基于其对压缩图像的解压缩版本(至少,对图像间编码)的预测。
由熵编码器370进行的熵编码过程认为是“无损的”,也就是说其可以逆转以达到与开始提供给熵编码器370的恰好相同的数据。所以,在熵编码阶段之前可以实施返回路径。实际上,由扫描单元360进行的扫描过程也认为是无损的,但是在本实施方式中,返回路径390为从量化器350的输出至互补逆量化器420的输入。
总体而言,熵解码器410、反向扫描单元400、逆量化器420和逆变换单元430提供熵编码器370、扫描单元360、量化器350和变换单元340的相应的逆功能。目前,将通过压缩过程继续讨论;将在下文分开讨论解压缩输入压缩视频信号的过程。
在压缩过程中,通过返回路径390将扫描系数从量化器350传送至逆量化器420,逆量化器420进行扫描单元360的逆运算。由单元420、430进行逆量化和逆变换处理以生成经压缩的-解压缩残差图像信号440。
在加法器450处,将图像信号440加入预测器320的输出以生成重构的输出图像460。如将在下文描述的,其形成图像预测器320的一个输入。
现在转向施加给所接收的压缩视频信号470的处理,信号被提供至熵解码器410,并在由加法器450加入图像预测器320的输出之前,从此提供至反向扫描单元400、逆量化器420和逆变换单元430的链。实际上,可以在输出信号之前施加另外的滤波。
虽然已经在编码器的上下文中描述图5,应注意,返回解码路径(400、410、420、430、450、320,均在控制器345的控制下操作)形成解码器的实例。上文描述的和在下文中讨论的操作提供了涉及(可应用的)编码和解码操作的方法步骤的实例。
图6示意性地示出了预测图像的生成,并且具体地,图像预测器320的操作。
存在两种基本预测模式:所谓的图像内预测和所谓的图像间或者运动补偿(MC)预测。
图像内预测基于对来自同一图像内的数据的图像块的内容的预测。这对应于其他视频压缩技术中的所谓I帧编码。与其中内编码整个图像的I帧编码不同,在本实施方式中,可以在逐块的基础上进行内编码与间编码之间的选择,虽然在其他实施例中仍然在逐图像的基础上进行选择。
运动补偿预测利用试图限定在另一相邻的或附近的图像中,将在当前图像中编码的图像细节的来源的运动信息。因此,在理想的实例中,预测图像中的图像数据块的内容可以非常简单地编码为,指向相邻的图像中位于相同的或略微不同的位置的相应块的参照(运动矢量)。
回到图6,示出了两种图像预测设置(对应于图像内和图像间预测),其结果由模式信号510的控制下的多路转换器500选择,以提供用于提供至加法器310和450的预测图像的块。根据哪个选项给出最低“能量”(如上所述,其认为是需要编码的信息内容)做出选择,并且将该选择发信至编码输出数据流内的编码器。例如,通过进行来自输入图像的两个版本的预测图像的区域的试验减法,对差值图像的每个像素值求平方,对平方值求和,并且确定两个版本中的哪一个产生了有关该图像区域的差值图像的较低均方值,来检测关于这点的图像能量。
内编码系统中的实际预测是基于接收为信号460的部分的图像块做出的,也就是说,预测基于经编码的-解码图像块,以在解压缩装置处能够做出恰好相同的预测。然而,可以通过内模式选择器520控制图像内预测器的操作,由输入视频信号300得出数据。
对于图像间预测,运动补偿(MC)预测器540使用诸如由运动估测器550从输入视频信号300得出的运动矢量的运动信息。那些运动矢量由运动补偿预测器540应用于重构图像460的处理版本以生成图像间预测的块。
现将描述应用于信号460的处理。首先,由滤波器单元560对信号滤波。这涉及应用“解块”滤波器以去除或者至少趋向于减少由变换单元340和后续操作进行的基于块处理的效果。此外,使用通过处理重构信号460和输入视频信号300得到的系数来应用自适应环路滤波器。自适应环路滤波器是使用已知技术将自适应滤波器系数应用于待过滤的数据的滤波器类型。也就是说,滤波器系数可根据各种因素而变化。定义使用哪个滤波器系数的数据包括为编码输出数据流的一部分。
事实上,来自滤波器单元560的滤波输出形成输出视频信号480。其还缓存在一个或多个图像存储器570中;运动补偿预测处理特别是运动矢量生成需要连续图像的存储。为了节省存储需求,图像存储器570中的存储图像可以以压缩形式保存,然后解压缩用于生成运动矢量。对于这个特定的目的,可使用任何已知的压缩/解压缩系统。将存储图像传送至内插滤波器580,内插滤波器生成存储图像的较高分辨率版本;在此实例中,生成中间样本(子样本),从而使由内插滤波器580输出的内插图像的分辨率为存储在图像存储器570中的图像的8倍(在每个维度上)。内插图像作为输入传送至运动估测器550以及运动补偿预测器540。
在实施方式中,提供另外的可选阶段,其使用乘法器600将输入视频信号的数据值乘以因子四(效果上恰好将数据值向左移两位);并且使用除法器或右移器610在装置的输出处施加相应的除法运算(右移两位)。所以,左移和右移仅用于装置的内部运算而改变数据。因为降低了任何数据取整误差的影响,该措施可以提供装置内更高的计算精度。
现将描述将图像分割以用于压缩处理的方式。在基本水平,待压缩的图像被认为是样本块的阵列。出于本讨论的目的,考虑的最大的这种块是所谓的最大编码单元(LCU)700(图7),其代表64×64样本的方阵。此处,本讨论涉及亮度样本。取决于色度模式,如4:4:4、4:2:2、4:2:0或者4:4:4:4(GBR加关键数据(key data)),将存在对应于亮度块的不同数目的相应色度样本。
将描述三种基本类型的块:编码单元、预测单元以及变换单元。总体而言,LCU的递归细分(recursive subdividing)使得以这样的方式分割输入图像:可以根据待编码的图像的具体特征设置块大小和块编码参数(如预测或者残差编码模式)。
LCU可以被细分为所谓的编码单元(CU)。编码单元始终是正方形并且具有8×8样本与LCU 700的整个大小之间的大小。可以将编码单元排列为树结构的种类,从而可以以如在图8中所示的进行第一细分,给出32×32样本的编码单元710;然后可以在选择的基础上进行随后的细分,以给出一些16×16样本的编码单元720(图9),和潜在的,一些8×8样本的编码单元730(图10)。总之,该处理可以提供CU块的内容适应的编码树结构,每个CU块可以与LCU一样大或与8×8样本一样小。基于编码单元结构进行输出视频数据的编码。
图11示意性地示出了预测单元(PU)的阵列。预测单元是用于携带涉及图像预测处理的信息的基本单元,或者换言之,将附加数据添加到熵编码残差图像数据以从图5中的装置形成输出视频信号。通常,预测单元并不局限于正方形形状。只要编码单元大于最小(8×8)大小,预测单元可以采取其他形状,具体地,形成一个正方形编码单元的一半的矩形形状。目的是使得相邻预测单元的边界与图片中真实物体的边界(尽可能密切地)匹配,从而不同的预测参数可以应用于不同的真实物体。每个编码单元可含有一个或者多个预测单元。
图12示意性地示出了变换单元(TU)的阵列。变换单元是变换和量化处理的基本单元。变换单元始终是正方形并且可以采取从4×4到32×32样本的大小。每个编码单元可含有一个或者多个变换单元。图12中的缩写SDIP-P表示所谓的短距离内预测分区(shortdistance intra-prediction partition)。在该布置中,仅使用一维变换,所以将4×N块通过N个变换,其中至变换的输入数据基于当前SDIP-P中的先前解码的邻近块和先前解码的邻近线。
现在将讨论内预测处理。一般而言,内预测涉及由相同图像中的先前编码和解码的样本产生样本的当前块的预测(预测单元)。图13示意性地示出部分编码的图像800。此处,图像基于LCU从左上至右下编码。部分通过完整图像的处理而编码的LCU实例示出为块810。块810上方和左侧的阴影区820已被编码。块810的内容的图像内预测可利用阴影区820的任何部分但不能利用其下方非阴影的区域。
块810表示LCU;如上所述,对于图像内预测处理的目的,其可以细分为较小的预测单元的组。LCU 810内示出了预测单元830的实例。
图像内预测考虑了当前LCU 810上方和/或左侧的样本。由其预测所需样本的源样本相对于LCU 810内的当前预测单元可位于不同的位置或方向。为了确定哪一方向适用于当前预测单元,比较基于每个候选方向的试验预测结果,以查看哪一候选方向给出最接近输入图像相应块的结果。给出最接近结果的候选方向选为用于该预测单元的预测方向。
还可以以“片(slice)”为基础编码图片。在一个实例中,片是水平相邻的LCU的组。但是更一般而言,整个残留图像可以形成片,或者片可以是单个LCU,或片可以是一列LCU等。因为它们编码为独立单元,片可以提供对错误的一些恢复性。在片的边界编码器和解码器状态完全重置。例如内预测不越过片的边界进行;为此目的将片的边界当作图像边界。
图14示意性地示出可能的(候选)预测方向的组。整组34个候选方向可用于8×8、16×16、32×32样本的预测单元。4×4及64×64样本的预测单元大小的特殊情况具有减少的可用于它们的候选方向的组(分别为17个候选方向及5个候选方向)。该方向是通过相对于当前块位置的水平及垂直位移确定的,但被编码为预测“模式”,其组在图15中示出。应注意,所谓的DC模式表示周围的上部和左手侧样本的简单算术平均。
图16示意性地示出了之字形扫描,其是可以由扫描单元360施加的扫描图案。在图16中,示出对于8×8变换系数的实例块的图案,其中DC系数被置于该块的左上位置840处,并且增加水平和垂直空间频率由向下增加的距离并且在左上位置840右侧的系数所表示。
应注意,在一些实施方式中,可以以反向顺序(使用图16中的顺序标记自右下至左上)扫描系数。还应注意,在一种实施方式中,扫描可从左至右越过几个(例如一个和三个之间)最上端的水平行,然后进行剩余系数的之字形。
图17示意性地示出了CABAC熵编码器的操作。
在该性质的基于上下文的自适应编码中,根据实施方式,可相对于表示数据位多大可能为一或零的预期或预测的概率模型或上下文来编码数据位。为做到这点,将输入数据位赋值为,从两个(或更多,通常多个)码值范围的补子范围选定的一个之内的码值,其中子范围的相应大小(在实施方式中,子范围相对于码值的组的相应比例)由上下文定义(因而其由与输入值相关联或与以其他方式与输入值相关的上下文变量定义)。下一步骤是响应于赋值的码值和选择的子范围的当前大小修改整个范围,也就是码值的组(用于在涉及下一个输入数据位或值中使用)。如果然后修改的范围小于代表预定最小尺寸的阈值(例如原始范围尺寸的二分之一),则其尺寸增加,例如,通过使修改的范围加倍(左移),如果需要的话可连续进行该加倍过程(一次以上),直至范围具有至少预定最小尺寸。在此刻,生成输出编码的数据位以指示(或者如果一次以上的话,每个)加倍或增大操作发生。另外的步骤是关于或就下一个输入数据位或值而言(或在一些实施方式中,就下一个待编码的数据位或值的组而言),修改上下文(即,在实施方式中,修改上下文变量)使用。这可以通过使用当前上下文和当前“最可能符号”(一或者零,无论哪个被上下文指示,当前具有大于0.5的概率)的标识作为到新上下文值的查找表中的索引或作为从其可得出新上下文变量的适当的数学公式的输入来执行。在实施方式中,上下文变量的修改可增加码值的组在选择用于当前数据值的子范围内的比例。
CABAC编码器就二进制数据,也就是说仅由两个符号0和1表示的数据进行操作。编码器利用所谓的上下文建模过程,上下文建模过程基于先前编码的数据以选择后续数据的“上下文”或概率模型。以确定性的方式实现上下文的选择,使得在解码器基于先前解码的数据进行相同判定而不需要将另外的数据(指定上下文)加至传送至该解码器的编码数据流。
参考图17,待编码的输入数据如果尚未处于二进制形式,则可以被传送至二进制转换器900,如果该数据已经处于二进制形式,则绕开变换器900(通过示意性的开关910)。在本实施方式中,向二进制形式的转换实际是通过将量化的变换系数数据表示为二进制“映射”串来进行的,下面将进一步描述。
然后二进制数据可以由两种处理路径“常规”和“旁路”(其示意性地示出为单独的路径,但在下文讨论的实施方式中,其实际上可以由相同的处理阶段来实施,仅使用稍微不同的参数)之一处理。旁路路径采用所谓的旁路编码器920,其不必以与常规路径同样形式利用上下文建模。在CABAC编码的一些实例中,如果需要对于一批数据进行特别快速的处理,可以选择该旁路路径,但是在本实施方式中,注意所谓“旁路”数据的两个特征:首先,旁路数据是由CABAC编码器(950、960)处理的,仅使用表示50%概率的固定上下文模型;其次,旁路数据涉及特定种类的数据,一个具体实例是系数标志数据。另外,由示意性的开关930、940选择常规路径。这涉及数据由上下文建模器950处理,随后由编码引擎960处理。
如果整个数据块由零值数据构成,则图17所示的熵编码器将该数据块(即,例如,对应于与残差图像的块有关的系数的块的数据)编码为单个值。对于没有落入此类别的每个块,也就是说含有至少某些非零数据的块,准备“有效映图(significance map)”。有效映图表示,对于待编码的数据块中的每个位置,块中相应的系数是否是非零的(并且所以也是指示出非零最高有效数据部分相对于数据值的阵列的位置的有效映图的实例)。有效映图可以包括指示,根据预定排序的数据值阵列,最后一个的具有非零值的最高有效数据部分的位置的数据标志(data flag)。
为二进制形式的有效映图数据被自CABAC编码。有效映图的使用辅助压缩,因为对于具有有效映图指示为零的量值的系数,没有数据需要编码。另外,有效映图可包括指示块中的最终非零系数的特殊码,从而所有的最终高频/拖尾零(trailing zero)系数可以从编码中省去。在编码位流中,有效映图继之以由有效映图指定的,定义非零系数的值的数据。
还准备另外水平的映图数据并进行CABAC编码。实例为映图作为二进制值(1=是,0=否)定义位于有效映图指示为“非零”的映图位置的系数数据是否实际上具有“一”的值。另一映图指定位于有效映图指示为“非零”的映图位置上的系数数据是否实际上具有“二”的值。另外的映图指定,对于位于有效映图指示系数数据为“非零”的那些映图位置,该数据是否实际上具有“大于二”的值。再次对于确定为“非零”的数据,另一映图指示数据值的符号(使用预定的二进制记数,如1为+、0为-,或当然反之亦然)。
在实施方式中,有效映图和其他映图通过例如扫描单元360由经量化的变换系数生成,并且在经受CABAC编码之前经受之字形扫描处理(或者根据内预测模式,选自之字形、水平光栅以及垂直光栅扫描的扫描处理)。
在一些实施方式中,HEVC CABAC熵编码器使用以下过程编码语法元素:
TU中最后的有效系数(按扫描顺序)的位置被编码。
对于每个4×4系数组(以相反的扫描顺序处理组),编码有效系数组标记,指示该组是否含有非零系数。这对于含有最后有效系数的组是不需要的,并且对于左上的组(含有DC系数)假定为1。如果标记为1,则紧随其编码随后的关于该组的语法元素;
有效映图:
对于组中的每个系数,标记被编码指示该系数是否是有效的(具有非零值)。对于由最后的有效位置指示的系数不需要标记。
大于一映图:
对于至多八个具有有效映图值1的系数(从组的末尾向后计),这指示量值是否大于1。
大于二标记:
对于至多一个具有大于一映图值1的系数(最接近组的末尾的一个),这指示量值是否大于2。
符号位:
对于所有的非零系数,将符号位编码为等概率的CABAC二进数(bin),其中当使用符号位隐藏时,可以代替由奇偶性推断最后的符号位(以相反扫描顺序)。
转义码:
对于其量值没有完全由先前的语法元素描述的任意系数,将剩余的编码为转义码。
一般而言,CABAC编码涉及,对于待编码的下一位,基于其他先前编码的数据,预测上下文或概率模型。假如下一位与由概率模型确定为“最可能”的位相同,则可以用高效率编码“符合概率模型的下一位”的信息的编码。编码“不符合概率模型的下一位”效率较低,所以上下文数据的得出对于编码器的良好操作是重要的。术语“自适应的”意指在编码过程中适配或改变上下文或概率模式,以尝试提供与(仍未编码的)下一数据的良好匹配。
使用简单类比,在书面的英文语言中,字母“U”是相对不常用的。但是处于紧接在字母“Q”(其确实是非常常用的)之后的字母位置。所以,概率模型可以将“U”的概率设为非常低的值,但是如果当前字母为“Q”,可以将作为下一个字母的“U”的概率模型设为非常高的概率值。
虽然可以不对于每个系数编码这些语法元素的每一个,对于至少有效映图和指示非零值是否是一或二的映图,在本设置中使用CABAC编码。旁路处理,其在这些实施方式中除将概率模型固定为1和0相等的(0.5:0.5)概率分布的事实之外与CABAC编码相同,用于至少符号数据和没有由先前的语法元素描述的系数量值的部分。对于那些指示为具有它们的系数量值没有完全描述的部分的数据位置,可以将单独的所谓的转义数据编码用于编码数据的实际剩余值,其中实际量值是剩余的量值加上由相应的编码语法元素得出的偏移量。这可以包括Golomb-Rice编码技术。
WD4:Working Draft 4of High-Efficiency Video Coding,JCTVC-F803_d5,Draft ISO/IEC 23008-HEVC;201x(E)2011-10-28中更详细地描述了CABAC上下文建模和编码过程。
将参考图18讨论另外的关于转义位编码或相关技术的技术。
然而,首先将讨论用于编码转义码的技术。
在当前的HEVC标准中(在本申请的优先权日),使用两种机制编码转义码:
1/具有最大前缀长度2的Golomb-Rice码。
2/如果编码值不能完全由Golomb-Rice码描述,使用指数-Golomb-k阶(exponential-Golomb-order-k)编码“转义-转义”码。
所谓的Golomb-Rice编码将值v编码为一元编码前缀(可变数目的1继之以0,或反之亦然)继之以k(另外称作rParam)位的后缀。
将代码空间分为区间,其尺寸由Rice参数rParam确定为:
区间尺寸=1<<rParam
如通常的,标记“<<n”表示左移等于值n的位位置数。类似的标记>>n表示右移n位位置。所以,例如当rParam是0时,代码区间尺寸是1。当rParam是3时,区间尺寸是8,等等。
将rParam的值分别由编码器和解码器维持并在预定的条件下修改。
前缀使用一元码编码以指示最终值落入哪个编码区间。
例如前缀值=2、rParam=2、区间尺寸=4并且值落在包括8-11的范围内。可以将其认为是值的“粗略”部分。
使用二进制代码编码后缀(后缀长度等于rParam)。后缀值指示最终值位于指定的区间中的哪里。
例如,前缀值=2、rParam=2、后缀值=3;这表示最终值位于区间8-11内。后缀值0表示8的最终值;后缀值3(如在本实例中)表示最终值11。
因此可以将后缀认为是值的“精细”部分。
在一元编码前缀中使prefix_length为1的总数。使K为最不重要的rParam位的值。
最终值=(prefix_length<<rParam)+K
如上所述,在当前的HEVC标准(在本申请的优先权日)中,在Golomb-Rice编码的最大前缀长度上强加了(2的)限制(因此存在不大于3的区间)。如果发送更长的前缀,将其值减3(前缀的值等于其长度)并且将前缀代替视为k阶指数Golomb码(rParam用作k的值)。可以将该k阶指数Golomb码认为是根据正常转义-编码机制的转义,“转义-转义”码。
应理解的是,具有最大长度2继之以k阶指数Golomb的Golomb-Rice前缀也相当于具有最大长度3继之以k+1阶指数Golomb的Golomb-Rice前缀。
此外,最终值还通过加(在解码器中)或减去(在编码器中)不能使用Golomb-Rice编码编码的最小值来修改,因为由于使用转义-转义编码,已知最终值至少为那么大。
现在将讨论k阶指数Golomb码。在这种码中,待编码的数字被分成可变长度的一元编码前缀和可变长度的后缀。后缀位数=prefix_length+k。此处,prefix_length再次是一元码中1的数目。
如在Golomb-Rice编码中,将编码空间被分为区间。然而,该间隔不是等大小的;反而它们指数地增加大小,例如(区间0=0、区间1=1-2、区间2=3-6)等。
前缀使用一元编码编码以指示最终值落入哪个编码间隔。
虽然此处后缀长度等于前缀长度,后缀使用二进制编码进行编码。后缀值指示最终值位于指定的间隔中的哪里。
等于k的若干额外的位使用二进制编码进行编码,这些位用作最终值的另外的LSB。
码中位的总数=prefix_length+1+prefix_length+k。
使K为最后的k位的值。
当prefix_length为0时,v将等于K。
当prefix_length为1时,v将在(1<<k)+K和(3<<k)+K之间(排他)。
当prefix_length为2时,v将在(3<<k)+K和(7<<k)+K之间(排他)。
当prefix_length为3时,v将在(7<<k)+K和(15<<k)+K之间(排他)。
因此v=((2^prefix_length)-1)<<k)+后缀。
例如:最终二进制码=110011。
在此实例中,rParam=1;前缀长度=2(第一个0之前两个1)、编码区间=3-6;后缀=0b01=1,k之前的值=4=0b100;额外位=0b1=1、最终值=0b1001=9(0b代表二进制表示法)。
在HEVC中,如上所述,使用Golomb-Rice和指数Golomb码两者。如果前缀长度小于三,将码编译为Golomb-Rice码。然而,如果prefix_length大于或等于3,将码编译为k阶指数Golomb码,其中将上述的rParam值用作k值。
(任一系统中的)前缀是一元码的实例。后缀是非一元码的实例。两种系统是两部分的可变长度码的实例。
在这种情况下,用于解码指数Golomb码的prefix_length值减少3,并且从解码运算得到的值增加(3<<k),因为这是不能使用Golomb-Rice码表示的最小值。
用于HEVC转义的值“k”和转义-转义码不同。对于16个系数的每组,k值由0开始,并且不论系数值的量值合适大于3<<k,是增加的。响应于该状态,k增长至最大值4。应注意,该讨论涉及系数量值,因为表示系数的符号的符号位是单独发送的。还可以应用其他用于设定初值和调整k的方案。
图18是示出生成如上文讨论的转义码的方法的流程图。
该方法是可用数据值的组操作的,该数据值的组包括(例如)频率变换的图像系数的序列,或该序列的非零组分或其中每个数据值已经减少了1的该序列的非零组分(在此最后的情形中,可以首先生成有效映图,从而在进一步处理之前每个系数减少1,因为有效映图会导致1的值)。
在步骤2000,在每组的开始设置k的初始值。虽然可以存在用于延伸HEVC标准的替代方案,在正常的HEVC版本1系统中,k最初设置为0。在步骤2010,CABAC编码器检查当前的组是否是含有相当于DC系数的左上组或含有由先前的过程标记为最后的有效系数的组。如果是,控制传至步骤2030。如果不是,在步骤2020,CABAC编码器检查当前的组是否含有非零系数。如果不是,过程结束,将相应的有效组标记编码为0。如果是,则控制传至步骤2030,将相应的有效组标记编码为1。在步骤2030针对组中的每个系数生成有效映图(虽然对于含有最后的有效系数的组,一些系数不需要有效映图入口,因为这些是可以推断的)。在步骤2040,生成>1映图,其指示对于至多8个具有有效映图值1的系数,从组的末尾向后数,量值是否大于1。在步骤2050生成>2映图。对于至多1个具有>1映图值1的系数(最接近组的末尾的一个),这指示量值是否大于2。在步骤2060,对所有有效系数生成符号位(虽然称为符号位隐藏的方案可以用于推断另外由组中的编码值的偶数和奇数奇偶性编码的最后的符号位),并且在步骤1570,对于任何其量值没有完全由先前的语法元素描述的系数(也就是说,在步骤2030-2060中的任一个生成的数据)生成转义码。应注意,在图18中,在某些HEVC的实施方式实例中,不需要对每个系数生成所有的映图。例如,在(比方说)16个系数的组中,可以存在不对其生成一些映图的一个或多个系数。
这些映图是指示大于1的最高有效数据部分相对于数据值阵列的位置的大于一映图的实例;以及指示大于2的最高有效数据部分相对于数据值阵列的位置的大于二映图的实例。
在步骤2070,如果需要转义码,其基于当前的k值使用刚才描述的技术生成。具体地,首先使用有效映图以及可选的一个或多个其他映图处理需要使用转义码的系数。应注意,在系数需要转义编码的情况下,任何使用的有效、>1和>2映图将标记为“1”。这是因为任何需要转义编码的系数,根据定义是大于可以使用任一关于该系数可用的映图编码的值的。
如果当前数据值没有被完全编码,则需要转义码。此处,术语“完全”编码意指数据值减去已经(例如由映图,或映图加上固定的位)编码的值为零。换言之,数据值由已经生成的分量完全编码,如果将那些分量考虑在内数据值的残差量为零的话。
所以,假设对于实例的系数,有效映图和>1及>2映图可用,相对于该系数将这些各自标记为“有效的”、“>1”和“>2”。
(在这个实施例中)这意味着该系数必须至少为3。
因此,可以在转义编码之前从系数中减去3的值,而没有信息损失。在解码中恢复3的值(或通常更多,变量base_level,其表示由应用于该系数的映图定义的数值范围)。
以十进制15(二进制1111)的系数值举例,有效映图是“1”,>1映图是“1”并且>2映图是“1”。值的base_level是3。从系数值中减去base_level以给出十进制12(二进制1100)的值,将其传送用于转义编码。
现在k值(见上文)定义后缀位的数目。后缀位取自减去base_level之后的系数值的最低有效位。如果(例如)k=2,则将剩余值1100的两个最低有效位视为后缀位,也就是说在这个实施例中后缀位是00。将剩余的位(在这个实施例中,11)作为前缀编码处理。
所以总起来说,有关于转义码的处理包括:
生成定义一个或多个系数的最低有效位的一个或多个映图,从而(如果需要转义码)该系数必须具有至少base_level的值;
从系数中减去base_level;
将系数剩余部分的最低有效的k位编码为后缀位;以及
将系数剩余部分的剩余最高有效位编码为前缀。
本公开的实施方式涉及识别在编码用于系数的转义码时会出现的最坏情况码长。
当对16位视频使用扩展精度处理时,熵编码器中的系数范围maxTrDynamicRange是22位的,因此可以示出,用此方案,其中可以对于系数编码的转义码位的最大数是给定的,当rParam是0时,系数量值处于其(1<<22)的最大值,为:
最大指数-Golomb编码值=
(1<<22)(初始系数量值)
-1(由于该值已经由有效映图编码,扣除1)
-3(如上文讨论的,由于其不是Golomb-Rice码,扣除3)
=4194300
在HEVC指数-Golomb编码中,该值需要21位的后缀(并且因此21位的前缀)以及1位的分隔符(separator)和3个额外的前缀位以发送器不是Golomb-Rice码的信号。这导致总计46位的最坏情况,其对解码器会是过重的负担。
本公开的实施方式提供转义编码的指数-Golomb部分的一种或多种替代方案,其可以将最坏情况转义码长度减少至32,其与HEVC版本1中的最坏情况转义码长度是相同的。虽然其成为码长和编码效率之间的权衡,但潜在地可以进一步减少码长。由于版本2解码器必须支持版本1,不存在对于减少低于版本1标准的最大码长的,在延伸的版本2解码器配置中的最大码长的需要。
如上所述,在当前的HEVC标准中(在本申请的优先权日),使用两部分Golomb-Rice/指数-Golomb方法编码转义码(系数的量值的任何部分没有由CABAC编码的语法元素描述)。当使用扩展精度编码16位视频时,该方法导致,如以上得出的46位的最大转义码长度可以对解码单个系数是相当大的负荷。
在一些实施方式中,通过修改转义码方案的指数-Golomb部分中的前缀和后缀长度之间的映射,可以将最坏情况减少至例如32位,而对编码效率或处理效率没有显著的不良影响。在其他实施方式中,还可以调整,乃至移除整个Golomb-Rice。
当使用所谓的扩展精度编码16位视频时,变换和量化器的动态范围和因此的进入熵编码器(maxTrDynamicRange)的系数等于16+6=22。这导致222=4194304的最大系数量值。当通过对有效映图入口减去1并对Golomb-Rice码减去3(在最坏情况中Rice参数rParam为0)来调节时,可以使用指数-Golomb编码来编码的最大值是4194300。
可以示出,为在HEVC中使用指数-Golomb编码该值,除了一位的分隔符和三个额外的前缀位以发送该指数-Golomb代码在使用中的信号,需要21位的后缀(和因此的21位前缀)。这导致46的最坏情况总码长。
然而,在此处通过各种的替代方案而非简单地直接将前缀长度映射到后缀长度上(作为1:1映射)。
在一些实施方式中,后缀长度可以是前缀长度的函数(诸如指数函数)。指数函数的实例是suffixLength=(1<<prefixLength)>>1。这样,例如仅需要发送5前缀位以发送16后缀位的信号;还需要分隔符“0”,取决于使用一元编码还是具有最大值5的截断一元编码。设置的实例是,其中由前缀部分编码的值与非一元编码后缀部分的长度相关联,使得非一元编码后缀部分的长度是由前缀部分编码的值的指数函数。
在一些实施方式中,前缀本身可以是指数-Golomb码而不是一元编码。
在一些实施方式中,可以通过使用表将前缀长度映射至后缀长度。该方法使得区间尺寸的设置适合于数据。该表可以是预定的(也就是说,在编码器和解码器中预先提供的),或在经编码的数据流的中发送或者与经编码的数据流相关联(从而前缀部分的长度与后缀部分的长度之间的关系由待编码的数据关联传送的信息定义),或得出自先前编码的系数或其他数据,或这些或其他技术的组合(如选自使用在流中传送的数据的预定的表的组)。在一些实施方式中,由前缀部分编码的值和非一元编码后缀部分的长度是由一个或多个表关联的。一些实施方式包括,根据以下组成的组中的一个或多个,选择关联由前缀部分编码的值与非一元编码后缀部分的长度的表中的一个:(i)与经编码的数据值相关联的数据标志;和(ii)得出自一个或多个先前经编码的数据值的参数。
可以如以下操作其它的实施方式。当使用所谓的扩展精度编码16位视频时,变换和量化器的动态范围和因此的进入熵编码器(maxTrDynamicRange)的系数等于16+6=22。如上所述,这导致222=4194304的最大系数量值。如上文讨论的,当通过对有效映图入口减去1并对Golomb-Rice码减去3(在最坏情况中Rice参数rParam为0)来调节时,可以使用指数-Golomb编码来编码的最大值是4194300,以及46的最坏情况总码长。
然而,当启用扩展精度处理,其限制需要放松最坏情况信号的前缀位数时,可以使用替代方案而非简单地使前缀长度无限地扩展。最大前缀长度由以下给出:
maximumPrefixLength=32–(3+MAX_TR_DYNAMIC_RANGE)
当达到该前缀长度时,则由以下给出相应的后缀长度:
suffixLength=MAX_TR_DYNAMIC_RANGE–rParam
此外,由于在开始编码/解码时最大前缀长度是已知的,如果达到最大前缀长度,可以使用省略分隔符的截断一元编码来编码该前缀。
因此最坏情况转义码长度减少至:
(32–(3+MAX_TR_DYNAMIC_RANGE))(前缀)
+(MAX_TR_DYNAMIC_RANGE-rParam)(后缀)
+rParam(固定的位)
+3(非Golomb-Rice码位)
=32
这使得转义码适合单个32位整数并呈现于HEVC版本1中相同的最大转义码长度。应注意,支持高位深操作的HEVC解码器(如16位视频的使用)在至少一些实施方式中仍需要支持使用HEVC版本1编码的数据的使用,所以该在HEVC版本1下最大允许的转义码的位数的限制意味着在此设置中转义码长度不大于已经支持的最大值。
这些实施方式可以提供与上文讨论的映射表设置类似的优点,但是本实例可以实现相同的最坏情况码长缓解和相同的编码性能,而不需要查表。然而,将前缀长度封顶至取决于数据值(待编码的或如解码的)位深的最大长度的主要原理还可以与一种或多种如上所述的表或与前缀长度和后缀长度之间的关系的另外的表达式结合使用。
因此这些实施方式提供其中将前缀长度封顶为最大前缀长度值的技术的实例。例如,最大前缀长度值可以取决于maxTrDynamicRange值,其是用于编码的数据值的动态范围。在一些实例中,最大前缀长度等于29-maxTrDynamicRange。在其他实例中,最大前缀长度等于28-maxTrDynamicRange。
应注意,另一种表达这些技术中的一些的方式是,视频数据具有位深(如16位,各个通道中每样本的位数的表达)。该位深应用于原始视频数据的样本(即用于由编码器编码的样本),以及相应地应用于如由解码器解码的解码样本。位深可以隐含自如提供至编码器或解码器的数据结构,或可以由一种或多种指示符,如标记或参数标记或另外指示至编码器或解码器。在一些实例中,将maxTrDynamicRange设置为等于位深加上偏移量,如6位的偏移量(所以在其中位深为例如16位的情况下,变量maxTrDynamicRange可以等于16+6=22位),并且因此将前缀长度封顶在取决于用于编码的数据值或经解码的数据值(视情况而定)的位深最大前缀长度。更具体地,在一些实例中因此将前缀长度封顶在取决于用于编码的数据值或解码的数据值(视情况而定)的位深的最大前缀长度,加上六位。
因此这种设置可以提供编码或解码系统和方法的实例,其中最大前缀长度等于预定常数减去等于用于编码的数据值的动态范围的值。例如,预定的常数可以等于29,或预定常数等于28。
可以使用将在下文讨论的技术和/或这些技术的组合。
可以操作控制器345(在解码器或编码器之一的情况下,或在相应的方法的情况下)检测前缀长度和/或前缀长度与后缀长度之间的关系所依据的任何参数,并且设置或另外实施最大前缀长度以及前缀长度与后缀长度之间的关系。
这些方案均是技术的实施方式,其中数据编码装置的操作方法包括,数据编码装置,将数据值的阵列编码为数据集和用于未由数据集编码的值的转义码,该转义码包括前缀部分和非一元编码后缀部分,非一元编码后缀部分具有按位计的长度,根据对于至少一些由前缀部分编码的值,使得非一元编码后缀部分的长度大于前缀部分的按位计的长度的关系,非一元编码后缀部分的长度取决于由前缀部分编码的值。这里描述的实例提供技术的实施方式,其中前缀长度以最大前缀长度封顶,最大前缀长度取决于备编码的数据值或解码数据值的位深。
在相应的解码操作(在解码器或在编码器的解码路径中)方面,这些方案均是技术的实施方式,其中数据解码装置的操作方法包括,数据解码装置将输入编码数据值编码为数据集和用于未由数据集编码的值的转义码,该转义码包括前缀部分和非一元编码后缀部分,非一元编码后缀部分具有按位计的长度,根据对于至少一些由前缀部分编码的值,使得非一元编码后缀部分的长度大于以位计的前缀部分的长度的关系,非一元编码后缀部分的长度取决于由前缀部分编码的值。
实施方式包括进行这种方法的编码和/或解码装置,由其发起这种方法的软件,该方法由运行这种软件的计算机进行,由其提供这种软件的非临时性机器可读存储介质(如磁盘或光盘),以及包括这种装置的视频数据捕捉、传输,显示和/或存储装置。
如讨论的,前缀部分可以包含一元编码的值。
在一些实施方式中,可以在启用扩展精度处理时使用映射,其可以用于限制发送最坏情况信号所需的前缀位的数目。在下表中显示这种映射,其将后缀长度映射至前缀长度用于扩展精度处理。
Figure BDA0002279697700000271
方案(i)重复正常的指数-Golomb编码的行为。
方案(ii)模拟后缀长度,其如上文讨论的,是前缀长度的指数函数。
可以注意到,方案(ii)可以减少从46位(使用一元编码的方案i)至31位(如果一元代码用于前缀)或30位(如果截断一元代码用于前缀)的16位视频代码的最坏情况(其中MAX_TR_DYNAMIC_RANGE为22位),具有最大5前缀位,尽管由于对较小的值损失了区间精确度,这导致比方案(iii)更大的编码效率损失。然而,如果还采用GB1320775.8(通过引证结合其内容)中公开的Golomb-Rice参数调节方法,可以减少这些方案的损失。
使用方案(iii),维持较小值的细粒度(fine-grained)代码区间,同时需要不多于7个前缀位(而非21个)以发送可能最大的后缀信号。此外,由于在编码/解码开始时最大前缀长度是已知的,如果达到最大前缀长度,可以使用截位的一元代码作为省略分隔符的截位的一元编码值编码该前缀。最大后缀长度是maxTrDynamicRange,虽然当rParam是非0时,最大后缀长度是maxTrDynamicRange-rParam,具有后缀随后的另外的rParam位。因此在该方案一些实施方式中,表中的一些或所有的值是rParam的函数。
可以配置控制器345以使用表的组中的一种或多种(如上文的表(i)至(iii))以查出前缀长度和后缀长度之间适当的关系。
因此将最坏情况转义码长度减少至7(前缀)+22(最大后缀)+3(非Golomb-Rice码位)=32,应注意,不存在用于截断一元前缀的分隔符,使得任何转义码可以适配为单个32位整数。
一些实施方式的更多特征如下:
由于最大后缀长度是已知的,可以使用截断一元编码代替简单的一元编码传送前缀(也就是说,如果达到前缀位的最大数目,不需要通常设置在前缀和后缀之间的分隔符)。
在可以将前缀长度映射至大于需要的后缀长度(例如大于maxTrDynamicRange)的方案中,作为替代其可以附带在该值上,从而将任何大于maxTrDynamicRange的,由前缀长度和后缀长度之间的关系提供的值设置为等于maxTrDynamicRange。通常在实施方式中,由前缀部分编码的值和非一元编码后缀部分的长度之间的关系,使得非一元编码后缀部分的最大长度不大于每个待编码的数据值的的最大位数。
在maxTrDynamicRange小于16位的配置中,可以,例如通过将上述关系中的最大后缀长度设置为15来去除16的值。例如,其可以用于编译值为4的指数前缀,其另外意味着16位的后缀。
现在将讨论第一工作实施例。
输入该过程的是基于表的语法元素的二进制化的请求,该语法元素具有无符号的值synVal、Rice参数riceParam和显示当前语法元素是否涉及色度系数的标记isChroma。
该过程的输出是基于表的语法元素synVal的二进制化。
变量maxTrDynamicRange得出如下:
如果isChroma等于0,则maxTrDynamicRange=extended_precision_processing_flag?Max(15,BitDepthY+6):15
否则,maxTrDynamicRange=extended_precision_processing_flag?Max(15,BitDepthC+6):15
此处使用的标记如下。“A=flag?B:C”表示取决于二进制值“flag”的状态为真或假,分别将A分配为值B或值C。Max(D,E)返回值D和E中较大的。BitDepthY是亮度或绿色通道的位深;BitDepthC是色度或蓝色和红色通道的位深。值extended_precision_processing_flag是指示是否启用扩展精度处理的标记。
指示如上所述的转义-转义码的最小值的值,变量suffixLength[x]和minimumUncodeableValue[x]得出自下表(作为实例):
Figure BDA0002279697700000291
基于表的语法元素synVal的二进制化过程的二进制字符串指定如下,其中每次调用函数put(X)(其中X等于0或1)会在二进制字符串的末尾添加二进制值X:
suffix=synVal>>riceParam
prefixLength=0
while((prefixLength<7)&&(suffix>=minimumUncodeableValue[prefixLength]))
{
prefixLength++
put(1)
}
put((prefixLength==7)?1:0)
if(prefixLength>0)
{
synVal–=minimumUncodeableValue[prefixLength–1]<<riceParam
}
totalSuffixLength=suffixLength[prefixLength]+riceParam
while((totalSuffixLength––)>0)
{
put((synVal>>totalSuffixLength)&1)
}
coeff_abs_level_remaining的二进制化过程
变量cMax得自cRiceParam,其相当于上文使用的rParam,为:
cMax=43<<cRiceParam
语法元素coeff_abs_level_remaining[n]的二进制化是前缀二进制字符串和后缀二进制字符串(当存在时)的级联。
对于前缀二进制字符串的得出,应用以下:
Cu_qp_delta_abs的前缀值,prefixVal得出如下:
prefixVal=Min(cMax,coeff_abs_level_remaining[n])
通过引起其中变量cMax和cRiceParam作为输入的,用于prefixVal的TR二进制化过程来指定前缀二进制字符串。
当前缀二进制字符串等于长度43的位串且所有的位等于1时,存在后缀二进制字符串并且其得出如下:
Cu_qp_delta_abs的后缀值,suffixVal得出如下:
suffixVal=coeff_abs_level_remaining[n]–cMax
当extended_precision_processing_flag等于1时,通过调用用于suffixVal的基于表的二进制化过程来指定后缀二进制字符串,其中,如果cIdx大于0,设置变量isChroma等于1,否则为0。
否则(extended_precision_processing_flag等于0),通过调用用于suffixVal的EGk二进制化过程来指定后缀二进制字符串,其中设置k阶指数-Golomb等于cRiceParam。
现在将描述涉及其中前缀长度封顶的实施方式的另外的工作实例。该过程的输入是用于语法元素的受限指数-Golomb二进制化的请求,带有无符号的值synVal、Rice参数riceParam和指示当前语法元素是否涉及色度系数的标记isChroma。该过程的输出是语法元素synVal的受限指数-Golomb-k阶二进制化。
变量maxTrDynamicRange得出如下:
如果isChroma等于0,maxTrDynamicRange=extended_precision_processing_flag?Max(15,BitDepthY+6):15
否则,maxTrDynamicRange=extended_precision_processing_flag?Max(15,BitDepthC+6):15
设置变量maximumPrefixLength等于(29-maxTrDynamicRange)。
语法元素synVal的受限k阶指数-Golomb二进制化过程的二进制字符串指定如下,其中每次调用函数put(X)(其中X等于0或1)会在二进制字符串的末尾添加二进制值X:
Figure BDA0002279697700000311
Figure BDA0002279697700000321
在正常的指数-Golomb代码中,如上所述,通过减去不能由来自待编码的值的更小的后缀长度编码的最小值形成后缀。例如,用k=0(或不应用k)编码9(0b1001)(0b前缀表示二进制表示法),应注意:
0位的前缀/后缀至多编码值0
1位的前缀/后缀至多编码值2
2位的前缀/后缀至多编码值6
因此需要3位的前缀/后缀(编码至多值14)。不能用2位前缀/后缀编码的最小值是7(6+1),所以后缀形成为9–7=2(0b010)为3位,使得最终编码的值为111-0-010。
在本公开下,与最大前缀长度关联的后缀长度是(必须)足够大的,从而不需要该减法,所以可以简单地使后缀等于待编码的值。
例如,最大前缀长度=3,相关的后缀长度=4。
则编码的值等于截位的一元前缀,继之以等于带编码的值的后缀。例如,可以将十进制的9编码为111-1001。
在另外的工作实例中,用于发送“非Golomb-Rice码”信号的1的数目是4,但是然后将该码编译为指数Golomb码的(k+1)阶。上述技术的最大前缀长度得出为:
maximumPrefixLength=32(期望的最大码长)-(发送“非Golomb-rice码”信号的位数)-maxTrDynamicRange
=28–maxTrDynamicRange
考虑下列的码:
(i)110X…
(ii)1110X…
(iii)111X…
(其中X表示“不论该位的值为何”)
在码(i)中,其中前导的1的数目等于2,上文的设置均不会将其编译为指数-Golomb码。
在码(ii)中,其中前导的1的数目等于3,首先在上文描述的系统会将其编译为指数-Golomb码,然而第二种设置不会。然而,由于恰好存在3个前导的1,指数-Golomb码的前缀长度是0(第一个0之前不存在1)。但是当前缀长度为0时,第k阶指数-Golomb码的编译与第k阶Golomb-Rice码的编译是相同的。
在码(iii)中,其中前导的1的数目是4,两种技术均会将其编译为指数-Golomb码。在第一种系统中,其将被编译为具有至少1的前缀长度的第k阶码。在第二中系统中,其将被编译为具有至少0的前缀长度的第(k+1)阶码。在两种情况中,前缀长度取决于继该码的开头之后另外的1的数目。但是由于在指数-Golomb代码中前缀位实际加上k的值,可以看出两种编译是等同的。因此其相当于将“非Golomb-Rice码”的阈值提高了(不多于)1,条件是k的值在解码指数-Golomb码时也增加1。
图19是示出编码技术的示意性流程图。在步骤2200,由上述的任一技术限定前缀长度和/或最大前缀长度(例如由控制器345响应于一个或多个参数,如数据位深)。在步骤2210,根据如此限定的前缀长度编码一个或多个数据值。
图20是示出编码技术的示意性流程图。在步骤2220,将前缀编码为一元编码值(实例是截断一元编码值)。在步骤2230编码相应的后缀。
图21是示出编码技术的示意性流程图。在步骤2240,参考以上所讨论的表,以(在步骤2250)获得后缀长度。
将相应的技术应用于各个解码阶段。
在以下的编号项中限定本公开各个进一步的方面和特征:
1.一种数据编码装置的操作方法,该方法包括:
数据编码装置将数据值的阵列编码为数据集,和用于未由数据集编码的转义码,转义码包括前缀部分和非一元编码后缀部分,非一元编码后缀部分具有按位计的长度,非一元编码后缀部分的长度,根据对于至少一些由前缀部分编码的值,非一元编码后缀部分的长度大于前缀部分的按位计的长度的关系,取决于由前缀部分编码的值。
2.根据项1所述的方法,其中,所述前缀部分包括一元编码值。
3.根据项2所述的方法,其中,所述前缀部分包括截断一元编码值。
4.根据前述项中任一项所述的方法,其中,所述前缀部分的长度与所述后缀部分的长度之间的关系是由与待编码的所述数据相关联传送的信息限定的。
5.根据前述项中任一项所述的方法,其中,由所述前缀部分编码的值和所述非一元编码的后缀部分的长度是由一个或多个表关联的。
6.根据项5所述的方法,包括,根据选自以下所组成的组中的一个或多个,选择关联所述由前缀部分编码的值与所述非一元编码的后缀部分的长度的所述表中的一个的步骤:(i)与所述编码的数据值相关联的数据标志;和(ii)得自一个或多个先前编码的数据值的参数。
7.根据前述项中任一项所述的方法,其中,所述由前缀部分编码的值与所述非一元编码的后缀部分的长度相关联,使得所述非一元编码的后缀部分的长度是所述由前缀部分编码的值的指数函数。
8.根据前述项中任一项所述的方法,其中,所述由前缀部分编码的值和所述非一元编码的后缀部分的长度之间的关系是,使得所述非一元编码的后缀部分的最大长度不大于选自由以下组成的列表的最大值:每个所述待编码的数据值的最大位数;和预定最大值。
9.根据前述项中任一项所述的方法,其中,所述前缀部分被自身编码为指数Golomb码。
10.根据前述项中任一项所述的方法,其中,将所述前缀长度被封顶为最大前缀长度值。
11.根据项10所述的方法,其中,所述最大前缀长度值取决于值maxTrDynamicRange,其是所述用于编码的数据值的动态范围。
12.根据项11所述的方法,其中,所述最大前缀长度等于29-maxTrDynamicRange。
13.根据前述项中任一项所述的方法,其中,所述数据集之一是指示非零最高有效数据部分相对于数据值的阵列的位置的有效映图。
14.根据项13所述的方法,其中,所述有效映图包括指示,根据预定的所述数据值阵列的排序,具有非零值的所述最高有效的数据部分的最后一个的位置的数据标志。
15.根据项13所述的方法,其中,所述数据集包括:
指示大于1的最高有效数据部分相对于所述数据值的阵列的位置的大于一映图,和
指示大于2的最高有效数据部分相对于所述数据值的阵列的位置的大于二映图。
16.一种数据解码装置的操作方法,所述方法包括:
数据解码装置将输入编码数据值编码为数据集,和用于未由所述数据集编码的值的转义码,该转义码包括前缀部分和具有按位计的长度的非一元编码后缀部分,根据对于至少一些由所述前缀部分编码的值,使得所述非一元编码后缀部分的长度大于所述前缀部分的按位计的长度的关系,非一元编码后缀部分的长度取决于由所述前缀部分编码的值。
17.一种计算机软件,当通过计算机执行时,使所述计算机进行根据前述项中任一项所述的方法。
18.一种数据编码装置,包括:
编码器,配置为将数据值的阵列编码为数据集,和用于未由所述数据集编码的值的转义码,转义码包括前缀部分和非一元编码后缀部分,非一元编码后缀部分具有按位计的长度,根据对于至少一些由所述前缀部分编码的值使得所述非一元编码后缀部分的长度大于所述前缀部分的按位计的长度的关系,该长度取决于由所述前缀部分编码的值。
19.一种数据解码装置,包括:
解码器,被配置为将输入编码数据值解码为数据集和用于未由所述数据集编码的值的转义码,转义码包括前缀部分和非一元编码后缀部分,非一元编码后缀部分具有以位计的长度,根据对于至少一些由所述前缀部分编码的值使得所述非一元编码后缀部分的长度大于以位计的所述前缀部分的长度的关系,所述长度取决于由所述前缀部分编码的值。
20.一种视频数据捕捉、传输、显示和/或存储装置,包括根据项18或权利要求19所述的装置。
在以下的编号项中限定本公开各个进一步的方面和特征:
1.一种数据解码装置,包括:
解码器,被配置为将输入编码数据值解码为具有位深的解码数据值,输入编码数据值被编码为数据集和用于未由所述数据集编码的值的转义码,转义码包括前缀部分和非一元编码后缀部分,前缀部分具有以最大前缀长度封顶的前缀长度,所述最大前缀长度取决于所述数据值的位深,以及非一元编码后缀部分具有按位计的长度,根据对于至少一些所述由前缀部分编码的值,使得所述非一元编码后缀部分的长度大于以位计的所述前缀部分的长度的关系,非一元编码后缀部分的长度取决于由所述前缀部分编码的值。
2.根据项1所述的装置,其中,所述前缀部分包括一元编码值。
3.根据项2所述的装置,其中,所述前缀部分包括截断一元编码的值。
4.根据项1至3中任一项所述的装置,包括控制器,该控制器被配置为访问一个或多个表,在表中,所述由前缀部分编码的值和所述非一元编码的后缀部分的长度是关联的。
5.根据项4所述的装置,其中,所述控制器配置为,根据选自以下所组成的组中的一个或多个,选择关联所述由前缀部分编码的值与所述非一元编码的后缀部分的长度的所述表中的一个:(i)与所述编码的数据值相关联的数据标志;和(ii)得自一个或多个先前编码的数据值的参数。
6.根据项1至3中任一项所述的装置,其中,由前缀部分编码的值所述非一元编码后缀部分的长度相关联,使得所述非一元编码的后缀部分的长度是由前缀部分编码的值的指数函数。
7.根据项1至3中任一项所述的装置,其中,由所述前缀部分编码的值和所述非一元编码的后缀部分的长度之间的关系是,使得所述非一元编码后缀部分的最大长度不大于选自由以下组成的列表的最大值:每个所述待编码的数据值的最大位数;和预定的最大值。
8.根据前述项中任一项所述的装置,其中,所述前缀部分被自身编码为指数Golomb码。
9.根据前述项中任一项所述的装置,其中,所述前缀长度被封顶为取决于所述数据值的位深加六的最大前缀长度。
10.根据前述项中任一项所述的装置,其中,所述最大前缀长度等于预定常数减去等于用于编码的所述数据值的动态范围的值。
11.根据项10所述的装置,其中,所述预定常数等于29。
12.根据项10所述的装置,其中,所述预定常数等于28。
13.根据前述项中任一项所述的装置,其中,所述数据集之一是指示非零最高有效数据部分相对于数据值的阵列的位置的有效映图。
14.根据项13所述的装置,其中,所述有效映图包括指示,根据预定的所述数据值阵列的排序,具有非零值的所述最高有效的数据部分的最后一个的位置的数据标志。
15.一种数据解码装置的操作方法,所述方法包括:
数据解码装置将输入编码数据值解码为具有位深的解码数据值,所述输入编码数据值编码为数据集,和用于未由所述数据集编码的值的转义码,该转义码包括前缀部分和非一元编码后缀部分,所述前缀部分具有以最大前缀长度封顶的前缀长度,所述最大前缀长度取决于所述数据值的位深,非一元编码后缀部分具有按位计的长度,根据对于至少一些所述由前缀部分编码的值,使得所述非一元编码后缀部分的长度大于所述前缀部分的按位计的长度的关系,非一元编码后缀部分的长度由所述前缀部分编码的值。
16.一种计算机软件,当由计算机执行时,使所述计算机进行根据项15所述的方法。
17.一种非临时性机器可读存储介质,其存储根据项16所述的计算机软件。
18.一种数据编码装置,包括:
编码器,被配置为将具有位深的数据值的阵列编码为数据集,和用于未由所述数据集编码的值的转义码,该转义码包括前缀部分和非一元编码后缀部分,所述前缀部分具有以最大前缀长度封顶的前缀长度,所述最大前缀长度取决于所述数据值的位深,所述非一元编码后缀部分具有按位计的长度,根据对于至少一些所述由前缀部分编码的值使得所述非一元编码后缀部分的长度大于所述前缀部分的按位计的长度的关系,所述非一元编码后缀部分的长度取决于由所述前缀部分编码的值。
19.根据项18所述的装置,其中,所述前缀部分包括一元编码值。
20.根据项19所述的装置,其中,所述前缀部分包括截位的断一元编码值。
21.根据项18至20中任一项所述的装置,包括控制器,所述控制器被配置为访问一个或多个表,在所述表中,由所述前缀部分编码的值和所述非一元编码的后缀部分的长度是关联的。
22.根据项21所述的装置,其中,所述控制器配置为,根据选自以下所组成的组中的一个或多个,选择关联所述由前缀部分编码的值与所述非一元编码的后缀部分的长度的所述表中的一个:(i)与所述编码的数据值相关联的数据标志;和(ii)得自一个或多个先前编码的数据值的参数。
23.根据项18至20中任一项所述的装置,其中,由所述前缀部分编码的值与所述非一元编码的后缀部分的长度相关联,使得所述非一元编码后缀部分的长度是由所述前缀部分编码的值的指数函数。
24.根据项18至20中任一项所述的装置,其中,由所述前缀部分编码的值和所述非一元编码的后缀部分的长度之间的关系是,使得所述非一元编码的后缀部分的最大长度不大于选自由以下组成的列表的最大值:每个所述待编码的数据值的最大位数;和预定的最大值。
25.根据项18至24中任一项所述的装置,其中,所述前缀部分自编码为指数Golomb码。
26.根据项18至25中任一项所述的装置,其中,所述最大前缀长度等于预定常数减去等于用于编码的所述数据值的动态范围的值。
27.根据项26所述的装置,其中,所述预定常数等于29。
28.根据项26所述的装置,其中,所述预定常数等于28。
29.根据项18至28中任一项所述的装置,其中,所述数据集之一是指示非零最高有效数据部分相对于数据值的阵列的位置的有效映图。
30.根据项29所述的装置,其中,所述有效映图包括指示,根据预定的所述数据值阵列的排序,具有非零值的所述最高有效数据部分的最后一个的位置的数据标志。
31.根据项29或权利要求30所述的装置,其中,所述数据集包括:
指示大于1的最高有效数据部分相对于所述数据值的阵列的位置的大于一映图,和
指示大于2的最高有效数据部分相对于所述数据值的阵列的位置的大于二映图。
32.一种数据编码装置的操作方法,所述方法包括:
数据编码装置将数据值的阵列编码为具有位深的数据集和用于未由所述数据集编码的值的转义码,转义码包括具有封顶于最大前缀长度的前缀长度的前缀部分,所述最大前缀长度取决于所述数据值的位深,以及具有以位计的长度的非一元编码后缀部分,根据对于至少一些所述由前缀部分编码的值所述非一元编码后缀部分的长度大于所述前缀部分的按位计的长度的关系,所述非一元编码后缀部分的长度取决于由所述前缀部分编码的值。
33.一种计算机软件,当由计算机执行时,使所述计算机进行根据项32所述的方法。
34.一种非临时性机器可读存储介质,其存储根据项33所述的计算机软件。
35.一种视频数据捕捉、传输、显示和/或存储装置,包括根据项1至14和18至31中任一项所述的装置。
应注意,为选择或另外建立前缀长度和后缀长度之间的关系,和/或选择或另外建立最大前缀长度的解码器或编码器的功能,或解码方法或编码方法的功能性步骤,可以由控制器等进行,如(在上述的一些实施例中)控制器345。
如先前讨论的,应注意,以上项的装置特征可以由如先前讨论的编码器或解码器的相应特征实现。

Claims (22)

1.一种编码视频数据的方法,包括:
-编码表示语法元素的值的视频编码参数以便通过选自一组编码方案的指数Golomb编码方案来编码;
-通过如下步骤将表示所述视频编码参数的语法元素的值由所述指数Golomb编码方案编码成的位的长度限制为32位:
-将位分配给前缀部分和后缀部分,所述后缀部分的位长度取决于由所述前缀部分编码的值,所述限制通过计算最大前缀长度而在电路中执行。
2.根据权利要求1所述的方法,其中,所述前缀部分包括一元编码部分。
3.根据权利要求2所述的方法,其中,所述前缀部分包括截断一元编码值。
4.根据前述任一项权利要求所述的方法,其中,所述后缀部分包括非一元编码值。
5.根据权利要求4所述的方法,其中,由所述前缀部分编码的值与非一元后缀部分的长度相关联,使得非一元编码后缀部分的长度是由所述前缀部分编码的值的指数函数。
6.根据权利要求1至3中任一项所述的方法,其中,前缀长度被封顶为取决于要被编码的数据值的位深加六的最大前缀长度。
7.根据权利要求1至3中任一项所述的方法,其中,所述前缀部分的最大长度等于常数减去等于要被编码的数据值的动态范围的值。
8.一种解码视频数据的方法,所述视频数据已通过根据权利要求1所述的方法编码。
9.一种视频数据编码器,包括电路,所述电路被配置为:
-编码表示语法元素的值的视频编码参数以便通过选自一组编码方案的指数Golomb编码方案来编码;
-通过计算最大前缀长度并且将位分配给前缀部分和后缀部分,将表示所述视频编码参数的语法元素的值由所述指数Golomb编码方案编码成的位的长度限制为32位,所述后缀部分的位长度取决于由所述前缀部分编码的值。
10.根据权利要求9所述的视频数据编码器,其中,所述前缀部分包括一元编码部分。
11.根据权利要求10所述的视频数据编码器,其中,所述前缀部分包括截断一元编码值。
12.根据权利要求9至11中任一项所述的视频数据编码器,其中,所述后缀部分包括非一元编码值。
13.根据权利要求12所述的视频数据编码器,其中,由所述前缀部分编码的值与非一元后缀部分的长度相关联,使得非一元编码后缀部分的长度是由所述前缀部分编码的值的指数函数。
14.根据权利要求9至11中任一项所述的视频数据编码器,其中,前缀长度被封顶为取决于要被编码的数据值的位深加六的最大前缀长度。
15.根据权利要求9至11中任一项所述的视频数据编码器,其中,所述前缀部分的最大长度等于常数减去等于要被编码的数据值的动态范围的值。
16.一种解码视频数据的方法,所述视频数据已通过根据权利要求9所述的视频数据编码器编码。
17.一种视频数据解码器,被配置为解码已通过如下步骤编码的视频数据:
-编码表示语法元素的值的视频编码参数以便通过选自一组编码方案的指数Golomb编码方案来编码;
-通过如下步骤将表示所述视频编码参数的语法元素的值由所述指数Golomb编码方案编码成的位的长度限制为32位:
-将位分配为前缀部分和后缀部分,所述后缀部分的位长度取决于由所述前缀部分编码的值,所述限制通过计算最大前缀长度而在电路中执行。
18.根据权利要求17所述的视频数据解码器,其中,前缀长度被封顶为取决于要被编码的数据值的位深加六的最大前缀长度。
19.根据权利要求17至18中任一项所述的视频数据解码器,其中,所述前缀部分的最大长度等于常数减去等于要被编码的数据值的动态范围的值。
20.一种非临时性机器可读存储介质,所述存储介质存储软件,当由计算机执行所述软件时,使所述计算机执行根据权利要求1或16所述的方法。
21.一种视频数据捕捉、传输、显示和/或存储装置,包括根据权利要求9所述的视频数据编码器。
22.一种视频数据显示和/或接收装置,包括根据权利要求17所述的视频数据解码器。
CN201911136342.5A 2013-12-23 2014-11-07 编码和解码视频数据的方法及视频数据编码器和解码器 Active CN111083476B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1322947.1A GB2521828A (en) 2013-12-23 2013-12-23 Data encoding and decoding
GB1322947.1 2013-12-23
GB1403854.1A GB2521685A (en) 2013-12-23 2014-03-05 Data encoding and decoding
GB1403854.1 2014-03-05
CN201480070778.8A CN105850125B (zh) 2013-12-23 2014-11-07 数据编码和解码

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480070778.8A Division CN105850125B (zh) 2013-12-23 2014-11-07 数据编码和解码

Publications (2)

Publication Number Publication Date
CN111083476A true CN111083476A (zh) 2020-04-28
CN111083476B CN111083476B (zh) 2022-02-08

Family

ID=50114704

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480070778.8A Active CN105850125B (zh) 2013-12-23 2014-11-07 数据编码和解码
CN201911136342.5A Active CN111083476B (zh) 2013-12-23 2014-11-07 编码和解码视频数据的方法及视频数据编码器和解码器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201480070778.8A Active CN105850125B (zh) 2013-12-23 2014-11-07 数据编码和解码

Country Status (12)

Country Link
US (2) US10237556B2 (zh)
EP (1) EP3087739B1 (zh)
JP (1) JP6730187B2 (zh)
KR (2) KR102343621B1 (zh)
CN (2) CN105850125B (zh)
AU (1) AU2014372362B2 (zh)
CA (2) CA3114216C (zh)
GB (2) GB2521828A (zh)
MX (1) MX367071B (zh)
RU (1) RU2679784C2 (zh)
TW (1) TWI662830B (zh)
WO (1) WO2015097425A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2513111A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US10425659B2 (en) 2015-01-30 2019-09-24 Qualcomm Incorporated Coding escape pixels for palette coding
EP4300968A1 (en) * 2016-05-13 2024-01-03 Sony Group Corporation Image processing device and method
EP3264763A1 (en) 2016-06-29 2018-01-03 Thomson Licensing Method and apparatus for improved significance flag coding using simple local predictor
AU2018251489B2 (en) 2017-04-13 2021-05-27 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and device for entropy encoding, decoding video signal
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US20180316938A1 (en) * 2017-04-26 2018-11-01 Canon Kabushiki Kaisha Method and apparatus for k-th order exp-golomb binarization
GB2567427B (en) * 2017-10-06 2020-10-07 Imagination Tech Ltd Data compression
GB2567861A (en) * 2017-10-27 2019-05-01 Sony Corp Image data encoding and decoding
GB2570711B (en) * 2018-02-05 2023-04-05 Sony Corp Data encoding and decoding
US11477486B2 (en) 2019-01-02 2022-10-18 Qualcomm Incorporated Escape coding for coefficient levels
US11012701B2 (en) * 2019-02-22 2021-05-18 Tencent America LLC Residual coding for transform skip mode and block differential pulse-code modulation
CN111865487B (zh) 2019-04-29 2022-07-29 华为技术有限公司 一种编码方法及通信设备
US11496745B2 (en) * 2019-06-24 2022-11-08 Qualcomm Incorporated Binarization in transform skip residual coding
CN114731407A (zh) * 2019-09-24 2022-07-08 弗劳恩霍夫应用研究促进协会 算术编码器和解码器、视频编码器和解码器、用于编码或解码符号的方法以及用于编码或解码视频内容的方法
GB2590723A (en) * 2019-12-31 2021-07-07 Sony Corp Data encoding and decoding
US11637685B2 (en) 2021-08-31 2023-04-25 Samsung Display Co., Ltd. System and method for transition encoding with flexible word-size

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070171985A1 (en) * 2005-07-21 2007-07-26 Samsung Electronics Co., Ltd. Method, medium, and system encoding/decoding video data using bitrate adaptive binary arithmetic coding
US20070217703A1 (en) * 2006-03-17 2007-09-20 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus and control method therefor
CN102238387A (zh) * 2011-05-25 2011-11-09 深圳市融创天下科技股份有限公司 一种视频熵编码、熵解码方法、装置及介质
WO2012172113A1 (en) * 2011-06-16 2012-12-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy coding of motion vector differences
US20130114738A1 (en) * 2011-11-08 2013-05-09 Qualcomm Incorporated Progressive coding of position of last significant coefficient
US20130272389A1 (en) * 2012-04-13 2013-10-17 Texas Instruments Incorporated Reducing Context Coded and Bypass Coded Bins to Improve Context Adaptive Binary Arithmetic Coding (CABAC) Throughput

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455577A (en) * 1993-03-12 1995-10-03 Microsoft Corporation Method and system for data compression
EP1802136A3 (en) * 1995-03-15 2008-11-12 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems
US7099881B2 (en) * 2002-12-06 2006-08-29 Stmicroelectronics, Inc. Method for increasing average storage capacity in a bit-mapped tree-based storage engine by using remappable prefix representations and a run-length encoding scheme that defines multi-length fields to compactly store IP prefixes
WO2005013493A1 (en) * 2003-07-29 2005-02-10 Zakrytoe Aktsionernoe Obschestvo Intel A method for efficient variable length decoding
US7660355B2 (en) * 2003-12-18 2010-02-09 Lsi Corporation Low complexity transcoding between video streams using different entropy coding
FR2875042B1 (fr) * 2004-09-03 2006-11-24 Canon Kk Procede et dispositif d'acces aleatoire a une zone d'une image codee en vue de la decoder et procede et dispositif de codage d'une image
US20060198322A1 (en) * 2005-03-03 2006-09-07 Susan Hares Method and apparatus for BGP peer prefix limits exchange with multi-level control
US7540430B2 (en) * 2005-09-27 2009-06-02 The Boeing Company System and method for string distance measurement for alphanumeric indicia
RU2477576C2 (ru) * 2008-04-10 2013-03-10 Квэлкомм Инкорпорейтед Поддержка интерполяционного фильтра для субпиксельного разрешения в видеокодировании
EP2112764A1 (en) * 2008-04-25 2009-10-28 Thomson Licensing Method for encoding a sequence of integers, storage device and signal carrying an encoded integer sequence and method for decoding a sequence of integers
US8737499B2 (en) * 2011-10-17 2014-05-27 Qualcomm Incorporated Advanced interference cancellation for precoded GSM edge radio access network (GERAN)
LT3849198T (lt) * 2011-11-07 2023-01-25 Tagivan Ii Llc Vaizdo dekodavimo būdas ir vaizdo dekodavimo įrenginys
CN107197284B (zh) * 2011-11-07 2020-03-27 太阳专利托管公司 图像编码解码装置
KR101843087B1 (ko) 2012-03-05 2018-03-28 삼성전자주식회사 디코딩 장치 및 방법
US20130336386A1 (en) * 2012-06-18 2013-12-19 Qualcomm Incorporated Sample adaptive offset (sao) coding
WO2014107029A1 (ko) * 2013-01-02 2014-07-10 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US9930348B2 (en) * 2014-03-14 2018-03-27 Qualcomm Incorporated Coefficient level coding in a video coding process
KR101943805B1 (ko) * 2014-06-20 2019-01-29 에이치에프아이 이노베이션 인크. 비디오 코딩에서의 신택스에 대한 이진화 및 컨텍스트 적응 코딩의 방법 및 장치
US10142629B2 (en) * 2015-12-28 2018-11-27 Mediatek Inc. Method and apparatus for entropy coding in image compression
US10110931B2 (en) * 2016-04-27 2018-10-23 Aspeed Technology Inc. Variable length coding and decoding methods and devices for grouped pixels
AU2016231584A1 (en) * 2016-09-22 2018-04-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US10484695B2 (en) * 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070171985A1 (en) * 2005-07-21 2007-07-26 Samsung Electronics Co., Ltd. Method, medium, and system encoding/decoding video data using bitrate adaptive binary arithmetic coding
US20070217703A1 (en) * 2006-03-17 2007-09-20 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus and control method therefor
CN102238387A (zh) * 2011-05-25 2011-11-09 深圳市融创天下科技股份有限公司 一种视频熵编码、熵解码方法、装置及介质
WO2012172113A1 (en) * 2011-06-16 2012-12-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy coding of motion vector differences
US20130114738A1 (en) * 2011-11-08 2013-05-09 Qualcomm Incorporated Progressive coding of position of last significant coefficient
US20130272389A1 (en) * 2012-04-13 2013-10-17 Texas Instruments Incorporated Reducing Context Coded and Bypass Coded Bins to Improve Context Adaptive Binary Arithmetic Coding (CABAC) Throughput

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
K. SHARMAN, N. SAUNDERS, J. GAMEI: "RCE2 – C2: Entropy Coding Compression Efficiency for High Bit Depths", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC)》 *
MADHUKAR BUDAGAVI: "coeff_abs_level_remaining maximum codeword length reduction", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC)》 *
常淑娟: "图像压缩中的小波变换", 《科技创新论坛》 *

Also Published As

Publication number Publication date
US10893273B2 (en) 2021-01-12
GB201322947D0 (en) 2014-02-12
CN111083476B (zh) 2022-02-08
RU2016130271A3 (zh) 2018-07-10
CA2933395C (en) 2023-06-27
MX367071B (es) 2019-08-05
GB2521828A (en) 2015-07-08
GB201403854D0 (en) 2014-04-16
GB2521685A (en) 2015-07-01
MX2016007334A (es) 2016-08-19
JP6730187B2 (ja) 2020-07-29
RU2679784C2 (ru) 2019-02-12
CA3114216A1 (en) 2015-07-02
WO2015097425A1 (en) 2015-07-02
TWI662830B (zh) 2019-06-11
TW201540049A (zh) 2015-10-16
US20160295214A1 (en) 2016-10-06
KR20210158427A (ko) 2021-12-30
RU2016130271A (ru) 2018-01-30
KR20160101925A (ko) 2016-08-26
EP3087739A1 (en) 2016-11-02
CN105850125A (zh) 2016-08-10
US10237556B2 (en) 2019-03-19
KR102343621B1 (ko) 2021-12-28
AU2014372362A1 (en) 2016-05-05
JP2017507519A (ja) 2017-03-16
AU2014372362B2 (en) 2018-12-20
CA3114216C (en) 2023-09-05
US20190253714A1 (en) 2019-08-15
CN105850125B (zh) 2019-11-05
CA2933395A1 (en) 2015-07-02
EP3087739B1 (en) 2023-08-02
KR102462386B1 (ko) 2022-11-03

Similar Documents

Publication Publication Date Title
CN111083476B (zh) 编码和解码视频数据的方法及视频数据编码器和解码器
US11671599B2 (en) Data encoding and decoding
US11463698B2 (en) Selection of the maximum dynamic range of transformed data and the data precision of transform matrices according to the bit depth of input data
JP6400092B2 (ja) データ符号化及び復号化
WO2013153820A1 (en) Golomb-rice/eg coding technique for cabac in hevc
US9544599B2 (en) Context adaptive data encoding

Legal Events

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