+

HK1218595B - Rice parameter initialization for coefficient level coding in video coding process - Google Patents

Rice parameter initialization for coefficient level coding in video coding process Download PDF

Info

Publication number
HK1218595B
HK1218595B HK16106553.8A HK16106553A HK1218595B HK 1218595 B HK1218595 B HK 1218595B HK 16106553 A HK16106553 A HK 16106553A HK 1218595 B HK1218595 B HK 1218595B
Authority
HK
Hong Kong
Prior art keywords
coefficients
value
coefficient
statistics
statistic
Prior art date
Application number
HK16106553.8A
Other languages
Chinese (zh)
Other versions
HK1218595A1 (en
Inventor
马尔塔‧卡切维奇
霍埃尔‧索赖‧罗哈斯
瑞珍‧雷克斯曼‧乔许
郭立威
Original Assignee
高通股份有限公司
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
Priority claimed from US14/327,398 external-priority patent/US10021419B2/en
Application filed by 高通股份有限公司 filed Critical 高通股份有限公司
Publication of HK1218595A1 publication Critical patent/HK1218595A1/en
Publication of HK1218595B publication Critical patent/HK1218595B/en

Links

Description

视频译码过程中用于系数层级译码的莱斯(RICE)参数初始化Initialization of Rice parameters for coefficient-level decoding during video decoding

本申请案主张2013年7月12日申请的美国临时专利申请案第61/845,850号、2013年7月15日申请的美国临时专利申请案第61/846,512号、2013年9月25日申请的美国临时专利申请案第61/882,536号、2013年11月1日申请的美国临时专利申请案第61/898,968号、2013年11月22日申请的美国临时专利申请案第61/907,693号,及2013年12月12日申请的美国临时专利申请案第61/915,337号的权利,所述专利申请案中的每一者的全部内容以引用的方式并入本文中。This application claims the benefit of U.S. Provisional Patent Application No. 61/845,850, filed on July 12, 2013, U.S. Provisional Patent Application No. 61/846,512, filed on July 15, 2013, U.S. Provisional Patent Application No. 61/882,536, filed on September 25, 2013, U.S. Provisional Patent Application No. 61/898,968, filed on November 1, 2013, U.S. Provisional Patent Application No. 61/907,693, filed on November 22, 2013, and U.S. Provisional Patent Application No. 61/915,337, filed on December 12, 2013, each of which is incorporated herein by reference in its entirety.

技术领域Technical Field

本发明是关于视频译码,且更特定来说是关于用于译码变换系数的技术。This disclosure relates to video coding, and more particularly to techniques for coding transform coefficients.

背景技术Background Art

数字视频能力可并入到广泛范围的装置中,所述装置包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌面计算机、数字摄影机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电传会议装置及其类似者。数字视频装置实施视频压缩技术(例如,在由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4第10部分(进阶视频译码(AVC))、当前在开发过程中的高效率视频译码(HEVC)标准定义的标准及这些标准的扩展中所描述的那些视频压缩技术)以更有效率地发射、接收及存储数字视频信息。Digital video capabilities may be incorporated into a wide range of devices, including digital televisions, digital live broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, digital cameras, digital recording devices, digital media players, video game devices, video game consoles, cellular or satellite radio telephones, video teleconferencing devices, and the like. Digital video devices implement video compression techniques (e.g., those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4 Part 10 (Advanced Video Coding (AVC)), the High Efficiency Video Coding (HEVC) standard currently under development, and extensions of these standards) to more efficiently transmit, receive, and store digital video information.

视频压缩技术包含空间预测及/或时间预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(即,视频帧或视频帧的一部分)分割成块。使用相对于同一图片中的相邻块中的参考样本的空间预测来编码图片的经帧内译码(I)切片中的视频块。经帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。Video compression techniques include spatial prediction and/or temporal prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video slice (i.e., a video frame or portion of a video frame) may be partitioned into blocks. Video blocks in an intra-coded (I) slice of a picture are encoded using spatial prediction with respect to reference samples in neighboring blocks in the same picture. Video blocks in an inter-coded (P or B) slice may use spatial prediction with respect to reference samples in neighboring blocks in the same picture or temporal prediction with respect to reference samples in other reference pictures. Pictures may be referred to as frames, and reference pictures may be referred to as reference frames.

空间预测或时间预测导致译码用于块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本的块的运动向量,及指示经译码块与预测性块之间的差异的残余数据来编码经帧间译码块。根据帧内译码模式及残余数据来编码经帧内译码块。为进行进一步压缩,可将残余数据从像素域变换到变换域,从而产生可接着进行量化的残余变换系数。可以特定次序扫描最初布置成二维阵列的经量化的变换系数,以产生变换系数的一维向量,且可应用熵译码以达成甚至更多的压缩。Spatial prediction or temporal prediction results in coding a predictive block for the block. Residual data represents the pixel differences between the original block to be coded and the predictive block. Inter-coded blocks are encoded based on a motion vector pointing to a block of reference samples forming the predictive block, and residual data indicating the difference between the coded block and the predictive block. Intra-coded blocks are encoded based on an intra-coding mode and the residual data. For further compression, the residual data can be transformed from the pixel domain to the transform domain, generating residual transform coefficients that can then be quantized. The quantized transform coefficients, initially arranged in a two-dimensional array, can be scanned in a particular order to generate a one-dimensional vector of transform coefficients, and entropy coding can be applied to achieve even greater compression.

发明内容Summary of the Invention

一般来说,本发明描述用于初始化莱斯参数的技术,所述莱斯参数用于定义用于在视频译码过程中进行系数层级译码的码。特定来说,本发明描述用于确定用于定义码(例如,哥伦布莱斯(Colomb-Rice)码或指数哥伦布码)的所述莱斯参数的初始值的技术,所述码用于译码系数的系数层级的剩余绝对值,其中上下文自适应性二进制算术译码(CABAC)用于译码有效系数、大于1的系数层级及大于2的系数层级的指示。在一些实例中,可在高效率视频译码(HEVC)标准的范围扩展中,将所述技术应用于用于系数层级译码的莱斯参数初始化。In general, this disclosure describes techniques for initializing Rice parameters used to define codes for coefficient-level coding in a video coding process. In particular, this disclosure describes techniques for determining initial values of the Rice parameters used to define codes (e.g., Colomb-Rice codes or Exponential-Golomb codes) used to code residual absolute values of coefficient levels of coefficients, where context-adaptive binary arithmetic coding (CABAC) is used to code significant coefficients, coefficient levels greater than 1, and indications of coefficient levels greater than 2. In some examples, the techniques may be applied to Rice parameter initialization for coefficient-level coding in a range extension of the High Efficiency Video Coding (HEVC) standard.

本发明中所描述的所述技术基于针对视频数据的先前经译码系数所收集的系数层级的统计,确定用于所述视频数据的变换块中的当前系数群组(CG)(即,系数块)的所述莱斯参数的初始值。在有损译码的状况下,所述CG可包含变换系数,或在无损译码或以变换跳过模式有损译码的状况下,所述CG可包含并未应用变换的系数。所述统计可为先前经译码系数的系数层级的绝对值或系数层级的剩余绝对值的统计。可在视频数据的每一切片的开始处将所述统计的值初始化为零,且可基于所述切片的每一CG中所译码的一或多个系数层级,更新所述统计。在实例中,在于所述CG中译码第一系数层级时,可按每一CG更新一次所述统计。在一些状况下,可针对基于包含所述CG的变换块的特性而定义的多个不同类别的CG中的每一者,分别收集统计。根据本发明的所述技术,在变换块中的当前CG的开始处,将所述统计的值映射为用于所述当前CG的所述莱斯参数的初始值。The techniques described in the present invention determine the initial values of the Rice parameters for the current coefficient group (CG) (i.e., coefficient block) in the transform block of the video data based on statistics of coefficient levels collected for previously decoded coefficients of the video data. In the case of lossy decoding, the CG may include transform coefficients, or in the case of lossless decoding or lossy decoding in transform skip mode, the CG may include coefficients to which the transform is not applied. The statistics may be statistics of the absolute values of the coefficient levels of the previously decoded coefficients or the residual absolute values of the coefficient levels. The values of the statistics may be initialized to zero at the beginning of each slice of the video data, and the statistics may be updated based on one or more coefficient levels decoded in each CG of the slice. In an example, when the first coefficient level is decoded in the CG, the statistics may be updated once for each CG. In some cases, statistics may be collected separately for each of multiple different categories of CGs defined based on the characteristics of the transform block containing the CG. According to the technology of the present invention, at the beginning of the current CG in the transform block, the value of the statistic is mapped to the initial value of the Rice parameter for the current CG.

在实例中,本发明是关于一种在视频解码过程中解码系数的方法,所述方法包括确定残余视频数据的先前经解码系数的系数层级的统计;基于所述统计,确定用于所述残余视频数据的变换块中的当前系数群组的莱斯参数的初始值;及使用由所述莱斯参数定义的码,解码所述当前系数群组中的至少一系数的系数层级的剩余绝对值。In an example, the present invention relates to a method for decoding coefficients in a video decoding process, the method comprising determining statistics of coefficient levels of previously decoded coefficients of residual video data; determining initial values of Rice parameters for a current coefficient group in a transform block of the residual video data based on the statistics; and decoding the residual absolute value of the coefficient level of at least one coefficient in the current coefficient group using a code defined by the Rice parameters.

在另一实例中,本发明是关于一种在视频编码过程中编码系数的方法,所述方法包括确定残余视频数据的先前经编码系数的系数层级的统计;基于所述统计,确定用于所述残余视频数据的一变换块中的当前系数群组的莱斯参数的初始值;及使用由所述莱斯参数定义的码,编码所述当前系数群组中的至少一系数的系数层级的剩余绝对值。In another example, the present invention relates to a method for encoding coefficients in a video encoding process, the method comprising determining statistics of coefficient levels of previously encoded coefficients of residual video data; determining initial values of Rice parameters for a current coefficient group in a transform block of the residual video data based on the statistics; and encoding the residual absolute value of the coefficient level of at least one coefficient in the current coefficient group using a code defined by the Rice parameters.

在又一实例中,本发明是关于一种视频译码装置,其包括经配置以存储视频数据的存储器,及经配置以进行如下操作的一或多个处理器:确定残余视频数据的先前经译码系数的系数层级的统计;基于所述统计,确定用于所述残余视频数据的变换块中的当前系数群组的莱斯参数的初始值;及使用由所述莱斯参数定义的码,译码所述当前系数群组中的至少一系数的系数层级的剩余绝对值。In another example, the present invention relates to a video decoding device comprising a memory configured to store video data, and one or more processors configured to: determine statistics of coefficient levels of previously decoded coefficients of residual video data; determine initial values of Rice parameters for a current coefficient group in a transform block of the residual video data based on the statistics; and decode the residual absolute value of the coefficient level of at least one coefficient in the current coefficient group using a code defined by the Rice parameters.

在另一实例中,本发明是关于一种视频译码装置,其包括:用于确定残余视频数据的先前经译码系数的系数层级的统计的装置;用于基于所述统计,确定用于所述残余视频数据的变换块中的当前系数群组的莱斯参数的初始值的装置;及用于使用由所述莱斯参数的所述初始值定义的码,译码所述当前系数群组中的至少一系数的系数层级的剩余绝对值的装置。In another example, the present invention relates to a video decoding device comprising: a device for determining statistics of coefficient levels of previously decoded coefficients of residual video data; a device for determining initial values of Rice parameters for a current coefficient group in a transform block of the residual video data based on the statistics; and a device for decoding residual absolute values of the coefficient levels of at least one coefficient in the current coefficient group using a code defined by the initial values of the Rice parameters.

在又一实例中,本发明是关于一种包括指令的计算机可读存储媒体,所述指令在由视频译码装置的一或多个处理器执行时使得所述处理器进行以下操作:确定残余视频数据的先前经译码系数的系数层级的统计;基于所述统计,确定用于所述残余视频数据的变换块中的当前系数群组的莱斯参数的初始值;及使用由所述莱斯参数定义的码,译码所述当前系数群组中的至少一系数的系数层级的剩余绝对值。In another example, the present invention relates to a computer-readable storage medium comprising instructions that, when executed by one or more processors of a video decoding device, cause the processors to perform the following operations: determine statistics of coefficient levels of previously decoded coefficients of residual video data; determine initial values of Rice parameters for a current coefficient group in a transform block of the residual video data based on the statistics; and decode the residual absolute value of the coefficient level of at least one coefficient in the current coefficient group using a code defined by the Rice parameters.

一或多个实例的细节阐述于随附图式及以下描述中。从所述描述及所述图式以及从权利要求书将显而易见其它特征、目标及优势。The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1为说明可利用本发明中所描述的用于译码系数层级的技术的实例视频编码及解码系统的框图。1 is a block diagram illustrating an example video encoding and decoding system that may utilize the techniques for coding coefficient levels described in this disclosure.

图2为展示用于系数层级译码的实例反扫描次序的概念图。2 is a conceptual diagram showing an example inverse scan order for coefficient-level coding.

图3为展示用于系数群组(CG)的系数层级译码的实例基于子块的反对角线扫描次序的概念图。3 is a conceptual diagram showing an example of coefficient-level coding for coefficient groups (CGs) based on inverse diagonal scan order for sub-blocks.

图4为展示用于CG的译码系数层级的实例反对角线扫描次序的概念图。Figure 4 is a conceptual diagram showing an example anti-diagonal scan order for decoding coefficient levels for CG.

图5为说明可实施本发明中所描述的用于编码系数层级的技术的实例视频编码器的框图。5 is a block diagram illustrating an example video encoder that may implement the techniques described in this disclosure for encoding coefficient levels.

图6为说明可实施本发明中所描述的用于解码系数层级的技术的实例视频解码器的框图。6 is a block diagram illustrating an example video decoder that may implement the techniques for decoding coefficient levels described in this disclosure.

图7为说明根据本发明中所描述的技术的在系数层级的熵编码期间确定莱斯参数的初始值的实例操作的流程图。7 is a flowchart illustrating an example operation of determining initial values of Rice parameters during entropy encoding at the coefficient level according to the techniques described in this disclosure.

图8为说明根据本发明中所描述的技术的在系数层级的熵解码期间确定莱斯参数的初始值的实例操作的流程图。8 is a flowchart illustrating an example operation of determining initial values of Rice parameters during entropy decoding at the coefficient level according to the techniques described in this disclosure.

图9为说明根据本发明中所描述的技术的在系数层级的熵译码期间确定先前经译码系数的系数层级的统计的实例操作的流程图。9 is a flowchart illustrating an example operation of determining statistics for a coefficient level of previously coded coefficients during entropy coding of the coefficient level according to the techniques described in this disclosure.

图10为说明根据本发明中所描述的技术的基于所确定统计,确定用于当前系数群组的莱斯参数的初始值的实例操作的流程图。10 is a flowchart illustrating example operations for determining initial values of Rice parameters for a current group of coefficients based on determined statistics according to the techniques described in this disclosure.

具体实施方式DETAILED DESCRIPTION

本发明描述用于在视频译码过程中译码与残余数据相关联的系数的技术。所述技术经配置以用于初始化用于定义用于视频译码过程中的系数层级译码的码的莱斯参数。特定来说,本发明描述用于确定用于定义码(例如,哥伦布莱斯码或指数哥伦布码)的莱斯参数的初始值的技术,所述码用于译码系数块的系数层级的剩余绝对值,其中上下文自适应性二进制算术译码(CABAC)用于译码有效系数、大于1的系数层级及大于2的系数层级的指示。在有损译码的状况下,系数层级可为变换系数的层级,或在无损译码或以变换跳过模式有损译码的状况下,系数层级可为并未应用变换的系数的层级(即,残余像素值)。在一些实例中,可在高效率视频译码(HEVC)标准的范围扩展中,将所述技术应用于用于系数层级译码的莱斯参数初始化。This disclosure describes techniques for coding coefficients associated with residual data in a video coding process. The techniques are configured for initializing Rice parameters used to define codes for coefficient-level coding in the video coding process. In particular, this disclosure describes techniques for determining initial values for Rice parameters used to define codes (e.g., Golomblais codes or Exponential Golomb codes) used to code residual absolute values of coefficient levels of a coefficient block, where context-adaptive binary arithmetic coding (CABAC) is used to code significant coefficients, coefficient levels greater than 1, and indications of coefficient levels greater than 2. In the case of lossy coding, the coefficient levels may be levels of transform coefficients, or in the case of lossless coding or lossy coding in transform skip mode, the coefficient levels may be levels of coefficients to which a transform is not applied (i.e., residual pixel values). In some examples, the techniques may be applied to Rice parameter initialization for coefficient-level coding in a range extension of the High Efficiency Video Coding (HEVC) standard.

莱斯参数为用于从哥伦布码(例如,哥伦布莱斯码或指数哥伦布码)的同族选择码字集的可调值。由莱斯参数定义的码可用于译码系数群组(CG)(即,系数块)中的至少一系数的系数层级的剩余绝对值。在HEVC的实例中,CG中的每一者可包括视频数据的4×4变换块,或变换块的4×4子块。在有损译码的状况下,CG可包含变换系数,或在无损译码或以变换跳过模式有损译码的状况下,CG可包含并未应用变换的系数。在一些过程中,在每一CG的开始处将莱斯参数的初始值设定为等于零,并在译码CG中的系数层级的剩余绝对值之后有条件地进行更新。在译码屏幕内容的系数层级的状况下,或在无损译码或以变换跳过模式有损译码的状况下,针对每一CG,将莱斯参数的值初始化为零可能并非最佳的。The Rice parameter is an adjustable value for selecting a set of codewords from the same family of Golomb codes (e.g., Golombrite codes or exponential Golomb codes). The code defined by the Rice parameter can be used to decode the residual absolute value of the coefficient level of at least one coefficient in a coefficient group (CG) (i.e., a coefficient block). In the example of HEVC, each of the CGs may include a 4×4 transform block of video data, or a 4×4 sub-block of a transform block. In the case of lossy decoding, the CG may include transform coefficients, or in the case of lossless decoding or lossy decoding in transform skip mode, the CG may include coefficients to which the transform is not applied. In some processes, the initial value of the Rice parameter is set to zero at the beginning of each CG and is conditionally updated after the residual absolute value of the coefficient level in the decoding CG. In the case of decoding the coefficient level of screen content, or in the case of lossless decoding or lossy decoding in transform skip mode, it may not be optimal to initialize the value of the Rice parameter to zero for each CG.

本发明中所描述的技术可适应性地设定莱斯参数的初始值,以译码(例如,编码或解码)每一CG,而非针对所有状况将莱斯参数的初始值设定为零。特定来说,本发明描述用于基于针对先前经译码系数所收集的系数层级的统计,确定用于当前CG的莱斯参数的初始值的技术。本发明也描述用于确定用于视频数据的先前经译码系数的系数层级的统计的技术。The techniques described in this disclosure may adaptively set initial values of Rice parameters for coding (e.g., encoding or decoding) each CG, rather than setting the initial values of the Rice parameters to zero for all situations. In particular, this disclosure describes techniques for determining initial values of Rice parameters for the current CG based on statistics collected at the coefficient level for previously coded coefficients. This disclosure also describes techniques for determining statistics at the coefficient level for previously coded coefficients of video data.

统计可为先前经译码系数的系数层级的绝对值或系数层级的剩余绝对值的统计。可在视频数据的每一切片的开始处将统计值初始化为零,且可基于切片的每一CG中所译码的一或多个系数层级,更新统计。在一些状况下,当CG中正译码系数层级的第一绝对值或系数层级的第一剩余绝对值时,可按每一CG更新一次统计。在其它状况下,(例如)当CG中正译码系数层级的最后绝对值或系数层级的最后剩余绝对值时,可较频繁地或基于不同系数层级地收集统计。The statistics may be statistics of the absolute values of a coefficient level or the remaining absolute values of a coefficient level for previously coded coefficients. The statistics may be initialized to zero at the beginning of each slice of video data and may be updated based on one or more coefficient levels coded in each CG of the slice. In some cases, the statistics may be updated once per CG when the first absolute value of a coefficient level or the first remaining absolute value of a coefficient level is being coded in the CG. In other cases, statistics may be collected more frequently or based on different coefficient levels, such as when the last absolute value of a coefficient level or the last remaining absolute value of a coefficient level is being coded in the CG.

作为一实例,可通过将给定先前经译码系数的系数层级与统计的预定义函数进行比较,且接着基于比较确定是增加抑或降低统计值而确定统计。用于更新统计的统计的预定义函数可基于左移位除以第二常数值的统计值的第一常数值。在其它实例中,可根据不同技术确定统计。As one example, the statistic may be determined by comparing the coefficient level of a given previously coded coefficient to a predefined function of the statistic, and then determining whether to increase or decrease the statistic value based on the comparison. The predefined function of the statistic used to update the statistic may be based on a first constant value of the statistic value that is left-shifted and divided by a second constant value. In other examples, the statistic may be determined according to different techniques.

在一些状况下,可针对基于包含CG的变换块的特性而定义的多个不同类别的CG中的每一者,分别收集统计。在此状况下,可基于变换块的特性,确定变换块中的当前CG的类别,且可基于用于所确定类别的统计,初始化用于当前CG的莱斯参数。在一实例中,可基于变换块是否为明度块,及变换块是否为变换跳过块,而针对四个不同类别中的每一者收集单独统计。在其它实例中,可将统计分割成基于不同类型的变换块特性而定义的不同数目的类别。In some cases, statistics may be collected separately for each of a plurality of different categories of CGs defined based on characteristics of the transform block that includes the CG. In this case, the category of the current CG in the transform block may be determined based on the characteristics of the transform block, and the Rice parameters for the current CG may be initialized based on the statistics for the determined category. In one example, separate statistics may be collected for each of four different categories based on whether the transform block is a luma block, and whether the transform block is a transform skip block. In other examples, the statistics may be split into different numbers of categories defined based on different types of transform block characteristics.

根据本发明的技术,在当前CG的开始处,将统计值映射为用于当前CG的莱斯参数的初始值。在一些实例中,可根据统计的函数,将统计值映像为初始莱斯参数值。用于初始化莱斯参数的统计的函数可基于莱斯参数的最大值抑或除以常数值的统计值中的最小者的选择。在其它实例中,可根据不同函数或根据存储表,将统计值映像为莱斯参数的初始值。用于当前CG的莱斯参数的初始值用于定义码(例如,哥伦布莱斯码或指数哥伦布码),所述码用于译码当前CG中的至少一系数的系数层级的剩余绝对值。According to the technology of the present invention, at the beginning of the current CG, the statistical value is mapped to the initial value of the Rice parameter for the current CG. In some instances, the statistical value can be mapped to the initial Rice parameter value according to a statistical function. The statistical function for initializing the Rice parameter can be based on the selection of the minimum of the maximum value of the Rice parameter or the statistical value divided by a constant value. In other instances, the statistical value can be mapped to the initial value of the Rice parameter according to different functions or according to a storage table. The initial value of the Rice parameter for the current CG is used to define a code (e.g., a Golomblais code or an exponential Golomb code), which is used to decode the residual absolute value of the coefficient level of at least one coefficient in the current CG.

在一些实例中,视频编码器可将与残余视频数据相关联的系数的系数层级编码成用于发射到视频解码器或存储装置的位流。在接收到经编码位流之后,视频解码器可以与视频编码器互逆的方式解码残余视频数据的系数层级。在有损视频译码的状况下,系数可为经量化的变换系数。在此状况下,可(例如)通过将变换(例如,离散余弦变换(DCT))应用于残余视频数据,且接着将量化应用于变换系数而产生经量化的变换系数。在无损视频译码或具有变换跳过或绕过的有损视频译码的状况下,系数可为残余视频数据的像素值,且具有具大绝对值的系数层级(即,像素值)。当系数表示屏幕内容(其可包含图形及文本区域)时,可并未良好地预测内容,从而产生系数的系数层级的大绝对值。In some examples, a video encoder may encode coefficient levels of coefficients associated with the residual video data into a bitstream for transmission to a video decoder or storage device. After receiving the encoded bitstream, the video decoder may decode the coefficient levels of the residual video data in a manner reciprocal to that of the video encoder. In the case of lossy video coding, the coefficients may be quantized transform coefficients. In this case, the quantized transform coefficients may be generated, for example, by applying a transform (e.g., a discrete cosine transform (DCT)) to the residual video data and then applying quantization to the transform coefficients. In the case of lossless video coding or lossy video coding with transform skipping or bypassing, the coefficients may be pixel values of the residual video data and have coefficient levels (i.e., pixel values) with large absolute values. When the coefficients represent screen content (which may include graphics and text areas), the content may not be well predicted, resulting in large absolute values of the coefficient levels of the coefficients.

本发明中所描述的莱斯参数初始化方案允许在当前CG的开始处,将莱斯参数的初始值设定为非零值,以便莱斯参数快速且有效地适应于大系数值,如果当前CG包含屏幕内容或经译码有变换跳过或绕过,则可发生此情况。根据技术,可基于先前经译码系数的系数层级的统计,确定莱斯参数的初始值。以此方式,可将莱斯参数初始化为非零值,以便适应尚未经变换或经量化的屏幕内容及/或系数的切片或译码单元,但在自然内容的切片或译码单元的状况下,仍可将其初始化为零。举例来说,当先前经译码系数的大系数层级带来大统计值时,可根据大统计值,将莱斯参数的初始值设定为等于非零值,以便较快速地适应于当前CG中将很可能发生的大系数值。The Rice parameter initialization scheme described in the present invention allows the initial values of the Rice parameters to be set to non-zero values at the beginning of the current CG so that the Rice parameters can adapt to large coefficient values quickly and efficiently, which may occur if the current CG contains screen content or is decoded with a transform skip or bypass. According to the technology, the initial values of the Rice parameters can be determined based on the statistics of the coefficient levels of the previously decoded coefficients. In this way, the Rice parameters can be initialized to non-zero values in order to adapt to slices or decoding units of screen content and/or coefficients that have not yet been transformed or quantized, but in the case of slices or decoding units of natural content, they can still be initialized to zero. For example, when a large coefficient level of the previously decoded coefficients brings about a large statistical value, the initial value of the Rice parameter can be set to a non-zero value based on the large statistical value in order to adapt more quickly to the large coefficient values that are likely to occur in the current CG.

图1为说明可利用本发明中所描述的用于译码系数层级的技术的实例视频编码及解码系统10的框图。如图1中所展示,系统10包含将经编码视频经由通信信道16发射到目的地装置14的源装置12。按需要,经编码视频数据也可存储于存储媒体34或文件服务器36上,且可由目的地装置14接入。当存储到存储媒体或文件服务器时,视频编码器20可将经译码视频数据提供到另一装置(例如,网络接口、光盘(CD)、Blu-ray或数字视频光盘(DVD)刻录机或压印设施装置,或其它装置),以用于将经译码视频数据存储到存储媒体。同样地,与视频解码器30分离的装置(例如,网络接口、CD或DVD读取器,或类似者)可从存储媒体检索经译码视频数据并将所检索数据提供到视频解码器30。FIG1 is a block diagram illustrating an example video encoding and decoding system 10 that may utilize the techniques for coding coefficient levels described in this disclosure. As shown in FIG1 , system 10 includes a source device 12 that transmits encoded video to a destination device 14 via a communication channel 16. As desired, the encoded video data may also be stored on a storage medium 34 or a file server 36 and accessed by the destination device 14. When stored on the storage medium or file server, video encoder 20 may provide the coded video data to another device (e.g., a network interface, a compact disc (CD), Blu-ray or digital video disc (DVD) recorder or imprint facility device, or other device) for storing the coded video data to the storage medium. Similarly, a device separate from video decoder 30 (e.g., a network interface, a CD or DVD reader, or the like) may retrieve the coded video data from the storage medium and provide the retrieved data to video decoder 30.

源装置12及目的地装置14可包括广泛范围的装置中的任一者,所述装置包含桌面计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、例如所谓的智能电话的电话手机、电视、摄影机、显示装置、数字媒体播放器、视频游戏控制台或其类似者。在许多状况下,这些装置可经装备以用于无线通信。因此,通信信道16可包括无线信道、有线信道或适于发射经编码视频数据的无线及有线信道的组合。类似地,可由目的地装置14经由任何标准数据连接(包含因特网连接)接入文件服务器36。此数据连接可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适于接入存储于文件服务器上的经编码视频数据的所述两者的组合。Source device 12 and destination device 14 may comprise any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets such as so-called smartphones, televisions, cameras, display devices, digital media players, video game consoles, or the like. In many cases, these devices may be equipped for wireless communication. Thus, communication channel 16 may comprise a wireless channel, a wired channel, or a combination of wireless and wired channels suitable for transmitting encoded video data. Similarly, file server 36 may be accessed by destination device 14 via any standard data connection, including an Internet connection. This data connection may include a wireless channel (e.g., a Wi-Fi connection), a wired connection (e.g., DSL, cable modem, etc.), or a combination of the two suitable for accessing encoded video data stored on the file server.

根据本发明的实例,用于译码系数层级的技术可应用于视频译码,以支持多种多媒体应用中的任一者,例如,空中电视广播、有线电视发射、卫星电视发射、(例如)经由因特网的串流视频发射、数字视频的编码以供存储于数据存储媒体上、存储于数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射,以支持例如视频串流、视频播放、视频广播及/或视频电话的应用。According to examples of this disclosure, techniques for coding coefficient levels may be applied to video coding to support any of a variety of multimedia applications, such as over-the-air television broadcasting, cable television transmission, satellite television transmission, streaming video transmission, for example, over the Internet, encoding of digital video for storage on a data storage medium, decoding of digital video stored on a data storage medium, or other applications. In some examples, system 10 may be configured to support one-way or two-way video transmission to support applications such as video streaming, video playback, video broadcasting, and/or video telephony.

在图1的实例中,源装置12包含视频源18、视频编码器20、调变器/解调器22及发射器24。在源装置12中,视频源18可包含例如视频俘获装置(例如,视频摄影机)、含有先前所俘获视频的视频封存盘、用以从视频内容提供商接收视频的视频馈入接口,及/或用于将计算机图形数据产生为源视频的计算机图形系统的源,或这些源的组合。作为一实例,如果视频源18为视频摄影机,则源装置12及目的地装置14可形成所谓的摄影机电话或视频电话,所述电话可提供于(例如)智能电话或平板计算机内。然而,一般来说,本发明中所描述的技术可适用于视频译码,且可应用于无线及/或有线应用,或经编码视频数据存储于本端磁盘上的应用。1 , source device 12 includes a video source 18, a video encoder 20, a modulator/demodulator 22, and a transmitter 24. In source device 12, video source 18 may include, for example, a video capture device (e.g., a video camera), a video archive disk containing previously captured video, a video feed interface for receiving video from a video content provider, and/or a computer graphics system for generating computer graphics data as source video, or a combination of these sources. As an example, if video source 18 is a video camera, source device 12 and destination device 14 may form so-called camera phones or video phones, which may be provided within, for example, a smartphone or tablet computer. However, the techniques described in this disclosure may be applicable to video coding in general and may be applied to wireless and/or wired applications, or applications in which the encoded video data is stored locally on disk.

可由视频编码器20编码所俘获视频、预俘获的视频或计算机产生的视频。可由调制解调器22根据通信标准(例如,有线或无线通信协议)调变经编码视频信息,并经由发射器24将其发射到目的地装置14。调制解调器22可包含各种混合器、滤波器、放大器或经设计以用于信号调变的其它组件。发射器24可包含经设计以用于发射数据的电路,包含放大器、滤波器且在无线通信的状况下,包含一或多个天线。The captured video, pre-captured video, or computer-generated video may be encoded by video encoder 20. The encoded video information may be modulated by modem 22 according to a communication standard (e.g., a wired or wireless communication protocol) and transmitted to destination device 14 via transmitter 24. Modem 22 may include various mixers, filters, amplifiers, or other components designed for signal modulation. Transmitter 24 may include circuits designed for transmitting data, including amplifiers, filters, and, in the case of wireless communication, one or more antennas.

由视频编码器20所编码的所俘获视频、预俘获的视频或计算机产生的视频也可存储到存储媒体34或文件服务器36上,以用于稍后消耗。存储媒体34可包含Blu-ray光盘、DVD、CD-ROM、闪存或用于存储经编码视频的任何其它合适的数字存储媒体。存储于存储媒体34上的经编码视频可接着由目的地装置14接入以用于解码及播放。尽管图1中未展示,但在一些实例中,存储媒体34及/或文件服务器36可存储发射器24的输出。The captured video, pre-captured video, or computer-generated video encoded by video encoder 20 may also be stored on storage medium 34 or file server 36 for later consumption. Storage medium 34 may include a Blu-ray disc, a DVD, a CD-ROM, a flash memory, or any other suitable digital storage medium for storing encoded video. The encoded video stored on storage medium 34 may then be accessed by destination device 14 for decoding and playback. Although not shown in FIG1 , in some examples, storage medium 34 and/or file server 36 may store the output of transmitter 24.

文件服务器36可为能够存储经编码视频,并将所述经编码视频发射到目的地装置14的任何类型的服务器。实例文件服务器包含网页服务器(例如,用于网站)、FTP服务器、网络附接存储(NAS)装置、本端磁盘驱动器,或能够存储经编码视频数据,并将其发射到目的地装置的任何其它类型的装置。来自文件服务器36的经编码视频数据的发射可为串流发射、下载发射或两者的组合。可由目的地装置14经由任何标准数据连接(包含因特网连接)接入文件服务器36。此标准数据连接可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器、以太网络、USB等),或适于接入存储于文件服务器上的经编码视频数据的所述两者的组合。File server 36 may be any type of server capable of storing encoded video and transmitting it to destination device 14. Example file servers include a web server (e.g., for a website), an FTP server, a network attached storage (NAS) device, a local disk drive, or any other type of device capable of storing encoded video data and transmitting it to a destination device. The transmission of encoded video data from file server 36 may be a streaming transmission, a download transmission, or a combination of both. File server 36 may be accessed by destination device 14 via any standard data connection, including an Internet connection. This standard data connection may include a wireless channel (e.g., a Wi-Fi connection), a wired connection (e.g., DSL, cable modem, Ethernet, USB, etc.), or a combination of the two suitable for accessing encoded video data stored on the file server.

在图1的实例中,目的地装置14包含接收器26、调制解调器28、视频解码器30及显示装置32。目的地装置14的接收器26经由信道16接收信息,且调制解调器28解调信息以产生用于视频解码器30的经解调位流。经由信道16所传达的信息可包含由视频编码器20所产生,以用于由视频解码器30在解码视频数据时使用的多种语法信息。此语法也可包含于存储于存储媒体34或文件服务器36上的经编码视频数据中。视频编码器20及视频解码器30中的每一者可形成能够编码或解码视频数据的相应编码器-解码器(编解码器(CODEC))的部分。1 , destination device 14 includes a receiver 26, a modem 28, a video decoder 30, and a display device 32. Receiver 26 of destination device 14 receives information via channel 16, and modem 28 demodulates the information to produce a demodulated bitstream for video decoder 30. The information communicated via channel 16 may include a variety of syntax information generated by video encoder 20 for use by video decoder 30 in decoding the video data. This syntax may also be included in the encoded video data stored on storage medium 34 or file server 36. Each of video encoder 20 and video decoder 30 may form part of a respective encoder-decoder (CODEC) capable of encoding or decoding video data.

显示装置32可与目的地装置14整合在一起,或在目的地装置外部。在一些实例中,目的地装置14可包含整合式显示装置,且也经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一般来说,显示装置32向用户显示经解码视频数据,且可包括多种显示装置中的任一者,例如,液晶显示器(LCD)、电浆显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。Display device 32 may be integrated with destination device 14 or external to the destination device. In some examples, destination device 14 may include an integrated display device and also be configured to interface with an external display device. In other examples, destination device 14 may be a display device. Generally, display device 32 displays decoded video data to a user and may include any of a variety of display devices, such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or another type of display device.

在图1的实例中,通信信道16可包括任何无线或有线通信媒体,例如,射频(RF)频谱或一或多个实体发射线、或无线及有线媒体的任何组合。通信信道16可形成基于封包的网络(例如,局域网络、广域网或例如因特网的全球网络)的部分。通信信道16大体上表示用于将视频数据从源装置12发射到目的地装置14的任何合适通信媒体或不同通信媒体的集合,包含有线或无线媒体的任何合适组合。通信信道16可包含路由器、交换器、基站或可用于促进从源装置12到目的装置14的通信的任何其它设备。1 , communication channel 16 may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines, or any combination of wireless and wired media. Communication channel 16 may form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. Communication channel 16 generally represents any suitable communication medium, or collection of different communication media, for transmitting video data from source device 12 to destination device 14, including any suitable combination of wired or wireless media. Communication channel 16 may include routers, switches, base stations, or any other equipment that can be used to facilitate communication from source device 12 to destination device 14.

视频编码器20及视频解码器30可根据视频压缩标准(例如,由ITU-T视频译码专家群组(VCEG)及ISO/IEC运动图片专家群组(MPEG)的视频译码联合合作小组(JCT-VC))开发的高效率视频译码(HEVC)标准)而操作。文件JCTVC-L1003v34中的HEVC标准的草案(Bross等人的“高效率视频译码(HEVC)文本规范草案10(High Efficiency Video Coding(HEVC)Text Specification Draft 10)”,ITU-T SG16WP3及ISO/IEC JTC1/SC29/WG11的视频译码联合合作小组(JCT-VC),第12次会议,日内瓦,瑞士,2013年1月14日至23日)获得于http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip中。Video encoder 20 and video decoder 30 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard developed by the Joint Collaboration Team on Video Coding (JCT-VC) of the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG). A draft of the HEVC standard in document JCTVC-L1003v34 (Bross et al., “High Efficiency Video Coding (HEVC) Text Specification Draft 10,” Joint Collaboration Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 12th Meeting, Geneva, Switzerland, January 14-23, 2013) is available at http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip.

尽管图1中未展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器整合,且可包含适当MUX-DEMUX单元或其它硬件及软件,以处理共同数据流或单独数据流中的音频及视频两者的编码。如果适用,则在一些实例中,MUX-DEMUX单元可符合ITU H.223多任务器协议,或例如用户数据报协议(UDP)的其它协议。Although not shown in FIG1 , in some aspects, video encoder 20 and video decoder 30 may each be integrated with an audio encoder and decoder and may include appropriate MUX-DEMUX units or other hardware and software to handle the encoding of both audio and video in a common data stream or in separate data streams. If applicable, in some examples, the MUX-DEMUX units may conform to the ITU H.223 multiplexer protocol, or other protocols such as the User Datagram Protocol (UDP).

视频编码器20及视频解码器30可各自实施为多种合适编码器电路系统中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、特殊应用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当在软件中部分地实施技术时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,其中任一者可整合为相应装置中的组合编码器/解码器(编解码器(CODEC))的部分。Video encoder 20 and video decoder 30 may each be implemented as any of a variety of suitable encoder circuitry, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the techniques are partially implemented in software, a device may store instructions for the software in a suitable, non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Each of video encoder 20 and video decoder 30 may be included in one or more encoders or decoders, either of which may be integrated as part of a combined encoder/decoder (CODEC) in the respective device.

视频编码器20可实施本发明的技术中的任一者或所有,以用于编码视频编码过程中的系数层级。同样地,视频解码器30可实施这些技术中的任一者或所有,以用于在视频解码过程中解码系数层级。如本发明中所描述,视频译码器可指视频编码器或视频解码器。类似地,视频译码单元可指视频编码器或视频解码器。同样地,视频译码可指视频编码或视频解码。Video encoder 20 may implement any or all of the techniques of this disclosure for encoding coefficient levels during video encoding. Similarly, video decoder 30 may implement any or all of these techniques for decoding coefficient levels during video decoding. As described in this disclosure, a video decoder may refer to a video encoder or a video decoder. Similarly, a video decoding unit may refer to a video encoder or a video decoder. Likewise, video decoding may refer to video encoding or video decoding.

数字视频装置实施视频压缩技术以更有效率地编码及解码数字视频信息。视频压缩可应用空间(帧内)预测及/或时间(帧间)预测技术,以减少或移除视频序列中所固有的冗余。上文所描述的HEVC标准是基于视频译码装置的演进模型,其被称作HEVC测试模型(HM)。HM假设视频译码装置相对于根据(例如)ITU-T H.264/AVC的现有装置的若干额外能力。举例来说,H.264提供九个帧内预测编码模式,而HEVC HM可提供多达三十三个帧内预测编码模式。以下章节将较详细地论述HM的某些方面。Digital video devices implement video compression techniques to more efficiently encode and decode digital video information. Video compression may apply spatial (intra-frame) prediction and/or temporal (inter-frame) prediction techniques to reduce or remove redundancy inherent in video sequences. The HEVC standard described above is based on an evolved model of a video coding device, referred to as the HEVC Test Model (HM). The HM assumes several additional capabilities of video coding devices relative to existing devices according to, for example, ITU-T H.264/AVC. For example, H.264 provides nine intra-frame prediction coding modes, while the HEVC HM can provide up to thirty-three intra-frame prediction coding modes. The following sections discuss certain aspects of the HM in more detail.

对于根据HEVC标准的视频译码,可将视频帧分割成译码单元。译码单元(CU)大体上指充当各种译码工具应用至的,以用于视频压缩的基本单元的影像区域。CU通常具有表示为Y的亮度分量,及表示为U及V的两个色度分量。取决于视频取样格式,U及V分量的大小可依据样本的数目而与Y分量的大小相同或不同。For video coding according to the HEVC standard, video frames can be divided into coding units. A coding unit (CU) generally refers to an image region that serves as the basic unit for video compression to which various coding tools are applied. A CU typically has a luma component, denoted as Y, and two chroma components, denoted as U and V. Depending on the video sampling format, the sizes of the U and V components can be the same as or different from the size of the Y component, depending on the number of samples.

CU通常为正方形,且可认为其类似于(例如)其它视频译码标准(例如,ITU-TH.264)下的所谓的宏块。出于说明的目的,根据正开发的HEVC标准的目前建议方面中的一些的译码将描述于本申请案中。然而,本发明中所描述的技术可用于其它视频译码过程,例如根据H.264或其它标准或专属视频译码过程定义的那些过程。A CU is typically square and can be considered similar to, for example, so-called macroblocks under other video coding standards, such as ITU-T H.264. For purposes of illustration, coding according to some of the currently proposed aspects of the developing HEVC standard will be described in this application. However, the techniques described in this disclosure may be used for other video coding processes, such as those defined according to H.264 or other standards or proprietary video coding processes.

根据HM,CU可包含一或多个预测单元(PU)及/或一或多个转换单元(TU)。位流内的语法数据可定义最大译码单元(LCU),最大译码单元为在像素数目方面最大的CU。一般来说,除CU不具有大小区分之外,CU具有与H.264的宏块相似的用途。因而,可将CU分裂成子CU。一般来说,本发明中对CU的参考可指图片的最大译码单元或LCU的子CU。LCU可分裂为多个子CU,且每一子CU可进一步分裂为多个子CU。用于位流的语法数据可定义可分裂LCU的最大次数(称为CU深度)。因此,位流也可定义最小译码单元(SCU)。本发明也使用术语“块”或“部分”来指CU、PU或TU中的任一者。一般来说,“部分”可指视频帧的任何子集。According to the HM, a CU may include one or more prediction units (PUs) and/or one or more transform units (TUs). Syntax data within the bitstream may define a largest coding unit (LCU), which is the largest CU in terms of the number of pixels. Generally speaking, a CU has a similar purpose to a macroblock in H.264, except that CUs do not have a size distinction. Thus, a CU may be split into sub-CUs. Generally speaking, references to a CU in this disclosure may refer to a largest coding unit of a picture or a sub-CU of an LCU. An LCU may be split into multiple sub-CUs, and each sub-CU may be further split into multiple sub-CUs. Syntax data for the bitstream may define the maximum number of times an LCU may be split (referred to as the CU depth). Thus, the bitstream may also define a smallest coding unit (SCU). This disclosure also uses the terms "block" or "portion" to refer to any of a CU, PU, or TU. Generally speaking, a "portion" may refer to any subset of a video frame.

LCU可与四元树数据结构相关联。一般来说,四元树数据结构针对每CU包含一节点,其中根节点对应于LCU。如果将CU分裂成四个子CU,则对应于所述CU的节点包含四个叶节点,所述叶节点中的每一者对应于所述子CU中的一者。四元树数据结构中的每一节点可提供用于对应CU的语法数据。举例来说,四元树中的节点可包含分裂旗标,从而指示是否将对应于所述节点的CU分裂成子CU。可递归地定义用于CU的语法元素,且所述语法元素可取决于是否将CU分裂成子CU。如果CU未进一步分裂,则所述CU被称作叶CU。在本发明中,尽管不存在原始叶CU的显式分裂,但叶CU的四个子CU也被称作叶CU。举例来说,如果处于16×16大小的CU未进一步分裂,则尽管16×16CU从未分裂,但四个8×8子CU也将被称作叶CU。An LCU may be associated with a quadtree data structure. Generally speaking, the quadtree data structure includes a node for each CU, where the root node corresponds to the LCU. If a CU is split into four sub-CUs, the node corresponding to the CU includes four leaf nodes, each of which corresponds to one of the sub-CUs. Each node in the quadtree data structure may provide syntax data for the corresponding CU. For example, a node in the quadtree may include a split flag, indicating whether the CU corresponding to the node is split into sub-CUs. Syntax elements for a CU may be defined recursively and may depend on whether the CU is split into sub-CUs. If a CU is not further split, the CU is referred to as a leaf-CU. In the present invention, the four sub-CUs of a leaf-CU are also referred to as leaf-CUs even though there is no explicit splitting of the original leaf-CU. For example, if a CU in size 16×16 is not further split, the four 8×8 sub-CUs will also be referred to as leaf-CUs even though the 16×16 CU has never been split.

叶CU可包含一或多个预测单元(PU)。一般来说,PU表示对应CU的所有或一部分,且可包含用于检索PU的参考样本的数据。举例来说,当PU经帧间模式编码时,PU可包含定义用于PU的运动向量的数据。定义运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分的一像素精度或八分的一像素精度)、运动向量所指向的参考帧,及/或运动向量的参考列表(例如,列表0或列表1)。定义PU的叶CU的数据也可描述(例如)将CU分割成一或多个PU。取决于CU未经译码、经帧内预测模式编码抑或经帧间预测模式编码,分割模式可不同。对于帧内译码,可与下文所描述的叶变换单元相同地对待PU。A leaf-CU may include one or more prediction units (PUs). In general, a PU represents all or a portion of the corresponding CU and may include data used to retrieve reference samples for the PU. For example, when the PU is inter-mode encoded, the PU may include data defining a motion vector for the PU. The data defining the motion vector may describe, for example, the horizontal component of the motion vector, the vertical component of the motion vector, the resolution of the motion vector (e.g., quarter-pixel precision or eighth-pixel precision), the reference frame to which the motion vector points, and/or the reference list for the motion vector (e.g., list 0 or list 1). The data defining the leaf-CU of the PU may also describe, for example, the partitioning of the CU into one or more PUs. The partitioning mode may be different depending on whether the CU is uncoded, intra-prediction mode encoded, or inter-prediction mode encoded. For intra-coding, PUs may be treated the same as leaf transform units described below.

新出现的HEVC标准允许根据变换单元(TU)进行变换,对于不同CU,TU可不同。通常基于针对经分割LCU定义的给定CU内的PU的大小来设定TU大小,但可并非总是此状况。TU通常相同于PU的大小,或小于PU的大小。在一些实例中,可使用已知为“残余四元树”(RQT)的四元树结构,将对应于CU的残余样本再分成较小单元。可将RQT的叶节点称作变换单元(TU)。可变换与TU相关联的像素差值以产生可量化的变换系数。TU包含明度变换块及两个色度变换块。因而,应用于TU的下文所论述的任何译码过程可实际上应用于明度及色度变换块。The emerging HEVC standard allows transforms to be performed in terms of transform units (TUs), which can be different for different CUs. The TU size is typically set based on the size of the PU within a given CU defined for a partitioned LCU, but this may not always be the case. The TU is typically the same size as the PU, or smaller than the PU. In some examples, a quadtree structure known as a "residual quadtree" (RQT) can be used to subdivide the residual samples corresponding to a CU into smaller units. The leaf nodes of the RQT can be referred to as transform units (TUs). Pixel difference values associated with a TU can be transformed to produce quantizable transform coefficients. A TU includes a luma transform block and two chroma transform blocks. Thus, any decoding process discussed below that applies to a TU can actually be applied to the luma and chroma transform blocks.

一般来说,PU是指相关于预测过程的数据。举例来说,当帧内模式编码PU时,PU可包含描述所述PU的帧内预测模式的数据。作为另一实例,当帧间模式编码PU时,PU可包含定义所述PU的运动向量的数据。Generally speaking, a PU refers to data related to the prediction process. For example, when the PU is intra-coded, the PU may include data describing the intra-prediction mode of the PU. As another example, when the PU is inter-coded, the PU may include data defining the motion vector of the PU.

一般来说,TU用于变换过程及量化过程。具有一或多个PU的给定CU也可包含一或多个变换单元(TU)。在预测之后,视频编码器20可根据PU,自由译码节点所识别的视频块计算残余值。接着,更新译码节点以参考残余值而非原始视频块。残余值包括像素差值,可使用TU中所指定的变换及其它变换信息将所述像素差值变换成变换系数,将其量化及扫描,以产生串行化变换系数以供熵译码。可再次更新译码节点,以指这些串行化变换系数。本发明通常使用术语“视频块”来指CU的译码节点。在一些特定状况下,本发明也可使用术语“视频块”来指包含译码节点及PU及TU的树型块(即,LCU或CU)。In general, TUs are used for the transform and quantization processes. A given CU with one or more PUs may also include one or more transform units (TUs). After prediction, the video encoder 20 may calculate residual values based on the PUs, the video blocks identified by the free coding nodes. The coding nodes are then updated to reference the residual values instead of the original video blocks. The residual values include pixel difference values, which can be transformed into transform coefficients using the transform and other transform information specified in the TU, quantized and scanned to produce serialized transform coefficients for entropy coding. The coding nodes can be updated again to refer to these serialized transform coefficients. This disclosure generally uses the term "video block" to refer to the coding nodes of a CU. In some specific cases, this disclosure may also use the term "video block" to refer to a tree block (i.e., LCU or CU) that includes the coding nodes, PUs, and TUs.

视频序列通常包含一系列视频帧或图片。图片群组(GOP)通常包括一系列视频图片中的一或多者。GOP可包含GOP的标头、图片中的一或多者的标头或别处的语法数据,所述语法数据描述包含于GOP中的图片的数目。图片的每一切片可包含描述相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作,以便编码视频数据。视频块可对应于CU内的译码节点。视频块可具有固定或变化的大小,且可根据指定译码标准而在大小方面不同。A video sequence typically includes a series of video frames or pictures. A group of pictures (GOP) typically includes one or more of a series of video pictures. A GOP may include a header for the GOP, a header for one or more of the pictures, or syntax data elsewhere that describes the number of pictures included in the GOP. Each slice of a picture may include slice syntax data that describes the coding mode of the corresponding slice. Video encoder 20 typically operates on video blocks within individual video slices to encode the video data. A video block may correspond to a coding node within a CU. A video block may have a fixed or varying size and may differ in size according to a specified coding standard.

为译码块(例如,视频数据的预测单元),首先导出用于块的预测子。可经由帧内(I)预测(即,空间预测)抑或帧间(P或B)预测(即,时间预测)导出预测子(也称作预测性块)。因此,可使用相对于同一帧(或切片)中的相邻参考块中的参考样本的空间预测帧内译码(I)一些预测单元,且可相对于其它先前经译码帧(或切片)中的参考样本的块单向帧间译码(P)或双向帧间译码(B)其它预测单元。在每一状况下,参考样本可用以形成用于待译码块的预测性块。To code a block (e.g., a prediction unit of video data), a predictor for the block is first derived. The predictor (also called a predictive block) can be derived via either intra (I) prediction (i.e., spatial prediction) or inter (P or B) prediction (i.e., temporal prediction). Thus, some prediction units may be intra-coded (I) using spatial prediction relative to reference samples in neighboring reference blocks in the same frame (or slice), and other prediction units may be unidirectionally inter-coded (P) or bidirectionally inter-coded (B) relative to blocks of reference samples in other, previously coded frames (or slices). In each case, the reference samples may be used to form a predictive block for the block to be coded.

在识别预测性块之后,确定原始视频数据块中的像素与预测性块中的像素之间的差。此差可被称作预测残余数据,且指示待译码块中的像素值与所选择以表示经译码块的预测性块中的像素值之间的像素差。为达成较好压缩,可(例如)使用离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、K-L变换或另一变换对预测残余数据进行变换,以产生变换系数。After identifying the predictive block, the difference between the pixels in the original video data block and the pixels in the predictive block is determined. This difference may be referred to as prediction residual data and indicates the pixel differences between the pixel values in the block to be coded and the pixel values in the predictive block selected to represent the coded block. To achieve better compression, the prediction residual data may be transformed, for example, using a discrete cosine transform (DCT), a discrete sine transform (DST), an integer transform, a K-L transform, or another transform to produce transform coefficients.

可以驻留于空间像素域中的像素差值的二维(2D)阵列布置变换块(例如,TU)中的残余数据。变换将残余像素值转换为变换域(例如,频域)中的变换系数的二维阵列。为了进一步压缩,可在熵译码之前量化变换系数。在一些实例中(例如无损译码或具有变换跳过或绕过的有损译码),可跳过系数的变换过程及量化过程两者。The residual data in a transform block (e.g., a TU) can be arranged as a two-dimensional (2D) array of pixel difference values residing in the spatial pixel domain. The transform converts the residual pixel values into a two-dimensional array of transform coefficients in a transform domain (e.g., the frequency domain). For further compression, the transform coefficients can be quantized before entropy coding. In some examples (e.g., lossless coding or lossy coding with transform skipping or bypassing), both the transform process and the quantization process of the coefficients can be skipped.

接着,熵译码器将熵译码应用于系数,例如上下文自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)、机率区间分割熵译码(PIPE)或类似者。在一些实例中,视频编码器20可利用预定义扫描次序来扫描系数,以产生可经熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应性扫描。在扫描系数以形成一维向量之后,视频编码器20可熵编码一维向量,视频编码器20也可熵编码与由视频解码器30在解码视频数据时所使用的经编码视频数据相关联的语法元素。Then, an entropy coder applies entropy coding to the coefficients, such as context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), probability interval partitioning entropy coding (PIPE), or the like. In some examples, video encoder 20 may scan the coefficients using a predefined scan order to generate a serialized vector that can be entropy encoded. In other examples, video encoder 20 may perform an adaptive scan. After scanning the coefficients to form a one-dimensional vector, video encoder 20 may entropy encode the one-dimensional vector. Video encoder 20 may also entropy encode syntax elements associated with the encoded video data used by video decoder 30 when decoding the video data.

本发明是关于用于结合上下文自适应性二进制算术译码(CABAC)熵译码器或其它熵译码器(例如,机率区间分割熵译码(PIPE)或相关译码器)的绕过译码的技术。算术译码为用于具有较高译码效率的许多压缩算法中的一种形式的熵译码,此是因为其能够将符号映像为非整数长度的码字。算术译码算法的实例为基于上下文的二进制算术译码(CABAC)。This disclosure relates to techniques for bypassing coding in conjunction with a context-adaptive binary arithmetic coding (CABAC) entropy coder or other entropy coders, such as probability interval partitioning entropy coding (PIPE) or correlation coders. Arithmetic coding is a form of entropy coding used in many compression algorithms with higher coding efficiency because it can map symbols to codewords of non-integer length. An example of an arithmetic coding algorithm is context-based binary arithmetic coding (CABAC).

一般来说,使用CABAC的熵译码数据符号涉及以下步骤中的一或多者:In general, entropy coding data symbols using CABAC involves one or more of the following steps:

(1)二进制化:如果待译码的符号为非二进制值,则将其映射为一序列所谓的“位子”。每一位子可具有“0”或“1”的值。(1) Binarization: If the symbol to be decoded is a non-binary value, it is mapped into a sequence of so-called "bits". Each bit can have a value of "0" or "1".

(2)上下文指派:向每一位子(常规模式中)指派上下文。上下文模型确定如何基于可用于位子的信息(例如,先前经编码符号的值或位子数目),来计算用于给定位子的上下文。(2) Context assignment: Assign a context to each bit (in normal mode). The context model determines how to calculate the context for a given bit based on information available for the bit (e.g., the value of the previously encoded symbol or the number of bits).

(3)位子编码:通过算术编码器编码位子。为编码位子,算术编码器要求将位子的值的机率作为输入,即,位子的值等于“0”的机率及位子的值等于“1”的机率。由称为“上下文状态”的整数值表示每一上下文的所估计机率。每一上下文具有状态,且因此对于指派到一上下文的位子来说,状态(即,所估计机率)是相同的,且在上下文之间不同。(3) Bit encoding: Bits are encoded by an arithmetic encoder. To encode a bit, the arithmetic encoder requires as input the probability of the value of the bit, i.e., the probability that the value of the bit is equal to "0" and the probability that the value of the bit is equal to "1". The estimated probability for each context is represented by an integer value called "context state". Each context has a state, and therefore, for a bit assigned to a context, the state (i.e., the estimated probability) is the same and different between contexts.

(4)状态更新:基于位子的实际经译码值更新所选定上下文的机率状态(例如,如果位子值为“1”,则增加“1's”的机率)。(4) State update: Update the probability state of the selected context based on the actual coded value of the bit (eg, if the bit value is "1," increase the probability of "1's").

在于绕过模式中使用CABAC熵译码数据符号的状况下,将待译码的符号二进制化为一序列位子,并通过固定相等机率模型(例如,通过指数哥伦布码或哥伦布莱斯码)以算数方式对其进行译码。绕过模式并不要求上下文指派或机率状态更新。举例来说,本发明描述用于使用由莱斯参数定义的哥伦布码来绕过译码系数的系数层级的剩余绝对值的技术。应注意,机率区间分割熵译码(PIPE)使用类似于算术译码的那些原理的原理,且因此其也可利用本发明的技术。In the case of CABAC entropy coding of data symbols in bypass mode, the symbols to be coded are binarized into a sequence of bits and arithmetically coded using a fixed equal probability model (e.g., using an exponential Golomb or Golombrite code). Bypass mode does not require context assignment or probability state updates. For example, this disclosure describes techniques for bypassing the residual absolute values of coefficient levels of coded coefficients using a Golomb code defined by Rice parameters. It should be noted that probability interval partitioning entropy coding (PIPE) uses principles similar to those of arithmetic coding and, therefore, can also utilize the techniques of this disclosure.

H.264/AVC及HEVC中的CABAC使用状态,且每一状态隐含地涉及机率。存在CABAC的变化形式,其中直接使用符号的机率(“0”或“1”),即,机率或机率的整数版本为状态。举例来说,CABAC的这些变化形式描述于“由法国电信、NTT、NTT DOCOMO、松下和特艺提议的视频译码技术的描述(Description of video coding technology proposal by FranceTelecom,NTT,NTT DOCOMO,Panasonic and Technicolor)”(JCTVC-A114,第一次JCT-VC会议,德国德雷斯顿,2010年4月,在下文中被称作“JCTVC-A114”)中,及A.Alshin andE.Alshina的“用于CABAC的多参数机率更新(Multi-parameter probability update forCABAC)”(JCTVC-F254,第六次JCT-VC会议,意大利都灵,2011年7月,在下文中被称作“JCTVC-F254”)中。CABAC in H.264/AVC and HEVC uses states, and each state implicitly involves a probability. There are variations of CABAC where the probability of a symbol ("0" or "1") is used directly, i.e., the probability or an integer version of the probability is the state. For example, these variations of CABAC are described in “Description of video coding technology proposal by France Telecom, NTT, NTT DOCOMO, Panasonic and Technicolor” (JCTVC-A114, 1st JCT-VC meeting, Dresden, Germany, April 2010, hereinafter referred to as “JCTVC-A114”) and in A. Alshin and E. Alshina, “Multi-parameter probability update for CABAC” (JCTVC-F254, 6th JCT-VC meeting, Torino, Italy, July 2011, hereinafter referred to as “JCTVC-F254”).

为熵译码系数的块(无论经变换且经量化或既未经变换也未经量化),通常执行扫描过程,使得根据特定扫描次序将块中的系数的二维(2D)阵列重排成系数的有序一维(1D)阵列,即,向量。接着,将熵译码应用于系数的向量。扫描变换单元中的系数串行化用于熵译码器的系数的2D阵列。可产生有效性映射以指示有效(即,非零)系数的位置。扫描可应用于有效(即,非零)系数的扫描层级,及/或有效系数的码正负号。To entropy code a block of coefficients (whether transformed and quantized or neither transformed nor quantized), a scanning process is typically performed such that the two-dimensional (2D) array of coefficients in the block is rearranged into an ordered one-dimensional (1D) array of coefficients, i.e., a vector, according to a particular scan order. Entropy coding is then applied to the vector of coefficients. Scanning the coefficients in the transform unit serializes the 2D array of coefficients for the entropy coder. A significance map may be generated to indicate the locations of significant (i.e., non-zero) coefficients. Scanning may be applied to the scan level of significant (i.e., non-zero) coefficients and/or the code sign of the significant coefficients.

在HEVC标准中,首先针对变换块译码有效变换系数(例如,有效性映像)的位置信息,以指示非零系数及最后非零系数在扫描次序中的位置。针对反扫描次序中的每一系数,译码有效性映像及层级信息(即,系数的绝对值及正负号)。In the HEVC standard, position information for significant transform coefficients (e.g., a significance map) is first coded for a transform block to indicate the position of the non-zero coefficients and the last non-zero coefficient in the scan order. For each coefficient in the reverse scan order, the significance map and level information (i.e., the absolute value and sign of the coefficient) are coded.

图2为展示用于系数层级译码的实例反扫描次序的概念图。H.264标准定义Z形扫描。HEVC标准定义三种不同扫描:子块对角线扫描、子块水平扫描及子块垂直扫描。图2说明各自应用于变换块的8×8子块的反曲折扫描型样29、反垂直扫描型样31、反水平扫描型样33及反对角线扫描型样35。应注意,反对角线扫描型样35、反曲折扫描型样29、反垂直扫描型样31及反水平扫描型样33中的每一者从变换块的右下角的较高频率系数到变换块的左上角的较低频率系数进行。FIG2 is a conceptual diagram showing an example inverse scan order for coefficient-level coding. The H.264 standard defines zigzag scanning. The HEVC standard defines three different scan types: sub-block diagonal scanning, sub-block horizontal scanning, and sub-block vertical scanning. FIG2 illustrates inverse zigzag scanning pattern 29, inverse vertical scanning pattern 31, inverse horizontal scanning pattern 33, and inverse diagonal scanning pattern 35, each applied to an 8×8 sub-block of a transform block. Note that each of inverse diagonal scanning pattern 35, inverse zigzag scanning pattern 29, inverse vertical scanning pattern 31, and inverse horizontal scanning pattern 33 proceeds from the higher-frequency coefficients at the lower-right corner of the transform block to the lower-frequency coefficients at the upper-left corner of the transform block.

在HEVC标准中,子块对角线扫描型样35、子块水平扫描型样33及子块垂直扫描型样31可应用于4×4及8×8变换块。在HEVC标准中,子块对角线扫描型样35也可应用于16×16及32×32变换块。在一些实例中,子块对角线扫描型样35也可应用于8×8TU。在基于子块的扫描中,在进行到较大变换块内的另一4×4子块之前,扫描较大变换块的一4×4子块。在其它实例中,“子块”可由根据所使用的扫描次序的数个经连续扫描系数组成。举例来说,“子块”可由沿着对角线扫描次序的16个经连续扫描系数组成。In the HEVC standard, the sub-block diagonal scan pattern 35, the sub-block horizontal scan pattern 33, and the sub-block vertical scan pattern 31 are applicable to 4×4 and 8×8 transform blocks. In the HEVC standard, the sub-block diagonal scan pattern 35 is also applicable to 16×16 and 32×32 transform blocks. In some examples, the sub-block diagonal scan pattern 35 is also applicable to 8×8 TUs. In sub-block based scanning, a 4×4 sub-block of a larger transform block is scanned before proceeding to another 4×4 sub-block within the larger transform block. In other examples, a "sub-block" may consist of a number of consecutively scanned coefficients according to the scan order used. For example, a "sub-block" may consist of 16 consecutively scanned coefficients along a diagonal scan order.

图3为展示用于系数群组(CG)的系数层级译码的实例基于子块的反对角线扫描次序的概念图。图3说明由四个4×4子块(37A、37B、37C、37D)组成的8×8变换块38。如图3中所展示,在扫描子块37C中的系数之前扫描子块37D中的系数。接着,从子块37C到子块37B且最后到子块37A地进行扫描。图3描绘每一子块中的反对角线扫描次序。在其它实例中,可使用任何扫描次序(例如,水平、垂直、曲折等)。在一些实例中,可在每一子块内使用前向扫描次序。FIG3 is a conceptual diagram showing an example of coefficient-level coding for coefficient groups (CGs) based on an anti-diagonal scan order for subblocks. FIG3 illustrates an 8×8 transform block 38 composed of four 4×4 subblocks (37A, 37B, 37C, 37D). As shown in FIG3, the coefficients in subblock 37D are scanned before the coefficients in subblock 37C. The scan then proceeds from subblock 37C to subblock 37B and finally to subblock 37A. FIG3 depicts an anti-diagonal scan order within each subblock. In other examples, any scan order (e.g., horizontal, vertical, zigzag, etc.) may be used. In some examples, a forward scan order may be used within each subblock.

在HEVC标准中,可将系数分组成碎块或子集。针对每一子集,译码系数的有效性映像及层级信息(即,绝对值及正负号)。在本发明中,系数的子集可被称作系数群组(CG)。CG可经定义为变换块在扫描次序上的n个(例如,n=16)连续系数,其可对应于4×4子块。在一实例中,子集由4×4变换块及8×8变换块沿着扫描次序(例如,前向或反对角线、水平或垂直扫描次序)的16个连续系数组成。对于16×16及32×32变换块,将较大变换块内的系数的4×4子块对待为子集。在图3的实例中,子块37中的每一者可为CG。In the HEVC standard, coefficients may be grouped into fragments or subsets. For each subset, the significance map and level information (i.e., absolute value and sign) of the coefficients are coded. In this disclosure, a subset of coefficients may be referred to as a coefficient group (CG). A CG may be defined as n (e.g., n=16) consecutive coefficients of a transform block in scan order, which may correspond to a 4x4 sub-block. In one example, a subset consists of 16 consecutive coefficients along a scan order (e.g., forward or anti-diagonal, horizontal or vertical scan order) for a 4x4 transform block and an 8x8 transform block. For 16x16 and 32x32 transform blocks, a 4x4 sub-block of coefficients within the larger transform block is treated as a subset. In the example of FIG. 3 , each of the sub-blocks 37 may be a CG.

译码以下所描述的符号以表示CG内的系数层级信息。在一个实例中,以反扫描次序译码所有符号。可根据反扫描次序,在CG的单独扫描中译码符号中的每一者。以下符号可被称作“旗标”。应注意,本发明中所论述的“旗标”中的任一者无需限于二进制符号,而是也可实施为多位语法元素。The symbols described below are coded to represent coefficient level information within the CG. In one example, all symbols are coded in reverse scan order. Each of the symbols can be coded in a separate scan of the CG according to the reverse scan order. The following symbols may be referred to as "flags." It should be noted that any of the "flags" discussed in this disclosure need not be limited to binary symbols, but may also be implemented as multi-bit syntax elements.

significant_coeff_flag(也被称作sigMapFlag)指示子集中的每一系数的有效性。具有大于零的绝对值的系数认为是有效的。作为一个实例,0的sigMapFlag值(即,并不大于零)指示系数并非有效的,而1的值(即,大于零)指示系数是有效的。此旗标可大体上被称作有效性旗标。coeff_sign_flag(也被称作signFlag)指示任何非零系数(即,具有为1的sigMapFlag的系数)的正负号信息。举例来说,零的此旗标指示正号,而1指示负号。The significant_coeff_flag (also referred to as sigMapFlag) indicates the significance of each coefficient in the subset. Coefficients with an absolute value greater than zero are considered significant. As an example, a sigMapFlag value of 0 (i.e., not greater than zero) indicates that the coefficient is not significant, while a value of 1 (i.e., greater than zero) indicates that the coefficient is significant. This flag can generally be referred to as a significance flag. The coeff_sign_flag (also referred to as signFlag) indicates the sign information of any non-zero coefficient (i.e., a coefficient with a sigMapFlag of 1). For example, a value of zero for this flag indicates a positive sign, while a value of 1 indicates a negative sign.

coeff_abs_level_greater1_flag(也被称作gr1Flag)指示对于任何非零系数(即,具有为1的sigMapFlag的系数或其中将sigMapFlag隐含地导出为1),系数的绝对值是否超过1。作为一个实例,0的gr1Flag值指示系数并不具有大于1的绝对值,而gr1Flag的1值指示系数确实具有大于1的绝对值。此旗标可大体上被称作大于1旗标。coeff_abs_level_greater1_flag (also referred to as gr1Flag) indicates, for any non-zero coefficient (i.e., a coefficient with a sigMapFlag of 1 or where sigMapFlag is implicitly derived to be 1), whether the absolute value of the coefficient exceeds 1. As an example, a gr1Flag value of 0 indicates that the coefficient does not have an absolute value greater than 1, while a gr1Flag value of 1 indicates that the coefficient does have an absolute value greater than 1. This flag may generally be referred to as a greater than 1 flag.

coeff_abs_level_greater2_flag(也被称作gr2Flag)指示对于具有超过1的绝对值的任何系数(即,具有为1的gr1Flag的系数),系数的绝对值是否超过2。作为一个实例,0的gr2Flag值指示系数并不具有大于2的绝对值,而gr2Flag的1值指示系数确实具有大于2的绝对值。此旗标可大体上被称作大于2旗标。可各自使用CABAC译码sigMapFlag、gr1Flag及gr2Flag。coeff_abs_level_greater2_flag (also referred to as gr2Flag) indicates whether the absolute value of any coefficient with an absolute value greater than 1 (i.e., a coefficient with a gr1Flag of 1) exceeds 2. As an example, a gr2Flag value of 0 indicates that the coefficient does not have an absolute value greater than 2, while a gr2Flag value of 1 indicates that the coefficient does have an absolute value greater than 2. This flag can generally be referred to as a greater than 2 flag. sigMapFlag, gr1Flag, and gr2Flag can each be coded using CABAC.

coeff_abs_level_remaining语法元素(也被称作levelRem语法元素)指示绝对值大于由先前旗标所译码的值的任何系数的系数层级的剩余绝对值。一般来说,对于levelRem语法元素,译码具有超过2的绝对值的每一系数(即,具有为1的gr2Flag的系数)的系数层级的绝对值减去三(即,abs(层级)-3)。在一些实例中,当达到当前CG的gr1Flag及/或gr2Flag的最大数目时,levelRem语法元素可用于译码具有小于或等于二的绝对值的系数层级。可使用由莱斯参数的值定义的码(例如,哥伦布莱斯码或指数哥伦布码)来译码levelRem语法元素。The coeff_abs_level_remaining syntax element (also referred to as the levelRem syntax element) indicates the remaining absolute values of the coefficient level for any coefficient whose absolute value is greater than the value coded by the previous flag. In general, for the levelRem syntax element, the absolute value of the coefficient level minus three (i.e., abs(level)-3) is coded for each coefficient with an absolute value greater than 2 (i.e., a coefficient with a gr2Flag of 1). In some examples, when the maximum number of gr1Flags and/or gr2Flags for the current CG is reached, the levelRem syntax element may be used to code coefficient levels with an absolute value less than or equal to two. The levelRem syntax element may be coded using a code defined by the value of the Rice parameter (e.g., a Golomblais code or an Exponential Golomb code).

图4为展示用于译码CG 39的系数层级的实例反对角线扫描次序的概念图。CG 39可为4×4变换块或可为8×8、16×16或32×32变换块中的4×4子块。表1中概述以反扫描次序扫描的用于图4中展示的系数的经编码符号。在表1中,scan_pos是指系数沿着图4中展示的CG 39的反对角线扫描型样的位置。Scan_pos 15为所扫描的第一系数,且位于CG 39的右下角处。scan_pos 15处的系数具有0的绝对值。Scan_pos 0为所扫描的最后系数,且位于CG39的左上角处。scan_pos 0处的经量化的系数具有10的绝对值。在4×4变换块或较大变换块中的最后4×4子块的状况下,并不需要译码前四个sigMapFlags,此是由于已知最后非零系数的位置。即,sigMapFlag的译码可开始于最后非零系数处(在此实例中,为scan_pos 11处的系数)。Figure 4 is a conceptual diagram showing an example inverse diagonal scan order of coefficient levels for coding CG 39. CG 39 can be a 4x4 transform block or can be a 4x4 sub-block in an 8x8, 16x16, or 32x32 transform block. The encoded symbols for the coefficients shown in Figure 4 scanned in inverse scan order are summarized in Table 1. In Table 1, scan_pos refers to the position of the coefficient along the inverse diagonal scan pattern of CG 39 shown in Figure 4. Scan_pos 15 is the first coefficient scanned and is located at the lower right corner of CG 39. The coefficient at scan_pos 15 has an absolute value of 0. Scan_pos 0 is the last coefficient scanned and is located at the upper left corner of CG 39. The quantized coefficient at scan_pos 0 has an absolute value of 10. In the case of the last 4x4 sub-block in a 4x4 transform block or a larger transform block, the first four sigMapFlags do not need to be coded because the position of the last non-zero coefficient is known. That is, coding of sigMapFlag may begin at the last non-zero coefficient (in this example, the coefficient at scan_pos 11).

表1.用于系数群组的系数的经译码符号Table 1. Coded symbols for coefficients of a coefficient group

在这些符号中,通过自适应性上下文模型(例如,使用CABAC)编码sigMapFlag、gr1Flag及gr2Flag的位子。经由通过固定相等机率模型(例如,通过指数哥伦布码或哥伦布莱斯码)的绕过模式编码signFlag及levelRem的二进制化位子。Among these symbols, the bits of sigMapFlag, gr1Flag, and gr2Flag are coded by an adaptive context model (e.g., using CABAC). The binarized bits of signFlag and levelRem are coded via a bypass mode with a fixed equal probability model (e.g., by exponential Golomb or Golomb-Blaise codes).

如上文所论述,HEVC标准中的语法元素coeff_abs_level_remaining(即,levelRem)指示系数(如果值超过用于系数译码的先前扫描遍次中所译码的所述值)的系数层级的剩余绝对值。在绕过模式中译码此语法元素以便增加吞吐量。对于小值,HEVC标准利用哥伦布莱斯译码,且对于较大值,其切换到指数哥伦布(Exp-Golomb)译码。哥伦布莱斯码与Exp-Golomb码之间的转变点为一元码长度等于4时。莱斯参数为用以从哥伦布码的同族选择码字集的可调值。As discussed above, the syntax element coeff_abs_level_remaining (i.e., levelRem) in the HEVC standard indicates the remaining absolute value of a coefficient level for a coefficient if the value exceeds the value coded in the previous scan pass for coefficient coding. This syntax element is coded in bypass mode to increase throughput. For small values, the HEVC standard utilizes Golomb coding, and for larger values, it switches to Exponential Golomb (Exp-Golomb) coding. The transition point between Golomb and Exp-Golomb codes is when the unary code length is equal to 4. The Rice parameter is an adjustable value used to select a codeword set from the family of Golomb codes.

举例来说,哥伦布莱斯码为哥伦布码的子集,且在给出可调莱斯参数m的情况下,将值n>=0表示为商q=底限(n/m)且余数r=n-q×m,其中m为2的幂。商q为前缀且具有一元码表示。余数r为后缀且具有固定长度表示。在Exp-Golomb码中,通过一元前缀接着固定长度后缀而类似地形成码结构,但在一元码中的每一位之后,加倍后缀部分中的码字的数目。因此,Exp-Golomb码的码字长度较慢地增长。一般来说,莱斯参数的较大值导致码较慢增长,当译码大系数值时,此情况允许较大效率。关于莱斯参数的额外细节可发现于J.Sole、R.Joshi、M.Karczewicz、N.Nguyen、T.Ji、G.Clare、F.Henry、A.Duenas的“HEVC中的变换系数译码”(IEEE用于视频发射的电路及系统汇刊(关于HEVC的特刊),2012年12月)中。For example, Golomb codes are a subset of Golomb codes and, given an adjustable Rice parameter m, represent values n >= 0 as the quotient q = floor (n/m) and the remainder r = n-q × m, where m is a power of 2. The quotient q is a prefix and has a unary code representation. The remainder r is a suffix and has a fixed-length representation. In Exp-Golomb codes, the code structure is similarly formed by a unary prefix followed by a fixed-length suffix, but after each bit in the unary code, the number of codewords in the suffix portion is doubled. Therefore, the codeword length of Exp-Golomb codes grows more slowly. Generally speaking, larger values of the Rice parameter result in slower code growth, which allows for greater efficiency when decoding large coefficient values. Additional details on Ricean parameters can be found in J. Sole, R. Joshi, M. Karczewicz, N. Nguyen, T. Ji, G. Clare, F. Henry, A. Duenas, “Transform Coefficient Coding in HEVC,” IEEE Transactions on Circuits and Systems for Video Transmission (Special Issue on HEVC), December 2012.

在HEVC标准中,在每一系数群组(CG)的开始处将莱斯参数设定为等于零的初始值,且在译码CG期间,取决于莱斯参数的值及如下所译码的当前系数的系数层级的绝对值,有条件地更新所述参数:In the HEVC standard, the Rice parameter is set to an initial value equal to zero at the beginning of each coefficient group (CG), and during coding of the CG, the parameter is conditionally updated depending on the value of the Rice parameter and the absolute value of the coefficient level of the current coefficient being coded as follows:

如果absCoeffLevel>3*2cRiceParam,则cRiceParam=min(cRiceParam+1,4)If absCoeffLevel>3*2 cRiceParam , then cRiceParam=min(cRiceParam+1,4)

否则,cRiceParam=cRiceParam,Otherwise, cRiceParam = cRiceParam,

其中cRiceParam为莱斯参数,absCoeffLevel为当前系数的系数层级的绝对值,且min()为选择最小值的函数。当在分配中观察到大绝对值时,HEVC莱斯参数更新方案允许二进制化过程逐渐适应系数统计。Where cRiceParam is the Rice parameter, absCoeffLevel is the absolute value of the coefficient level of the current coefficient, and min() is a function that selects the minimum value. The HEVC Rice parameter update scheme allows the binarization process to gradually adapt to the coefficient statistics when large absolute values are observed in the distribution.

如上文所提及,在HEVC标准中,在译码先前CG中的系数的剩余绝对值之后,针对视频数据的变换块中的当前CG,将莱斯参数重置为零的初始值。在译码屏幕内容的系数层级的状况下或在无损译码或以变换跳过模式有损译码的状况下,将莱斯参数的值初始化为零可并非是最佳的。本发明的技术在每一CG的开始处可适应性地设定莱斯参数的初始值,而非始终将莱斯参数重置为零。根据技术,可将用于当前CG的莱斯参数的初始值设定为等于非零值。在一些实例中,可基于视频数据的统计,确定莱斯参数的初始值,以便提供较好的译码性能,尤其是对于屏幕内容及无损译码来说。As mentioned above, in the HEVC standard, after decoding the residual absolute values of the coefficients in the previous CG, the Rice parameters are reset to initial values of zero for the current CG in the transform block of the video data. Initializing the values of the Rice parameters to zero may not be optimal in the case of coefficient levels of decoding screen content or in the case of lossless decoding or lossy decoding in transform skip mode. The technology of the present invention can adaptively set the initial values of the Rice parameters at the beginning of each CG instead of always resetting the Rice parameters to zero. According to the technology, the initial values of the Rice parameters for the current CG can be set to be equal to non-zero values. In some instances, the initial values of the Rice parameters can be determined based on the statistics of the video data in order to provide better decoding performance, especially for screen content and lossless decoding.

在莱斯参数初始化方案的一实例中,在译码先前CG之后可并不重置莱斯参数。实际上,可将用于当前CG的莱斯参数的初始值设定为相同于在译码先前CG的末端处获得的莱斯参数的值。如在HEVC初始化方案中,可在当前CG的开始处将初始值设定为等于0。然而,不同于HEVC方案,并不要求将莱斯参数的初始值设定为0。In one example of the Rice parameter initialization scheme, the Rice parameters may not be reset after decoding the previous CG. In fact, the initial values of the Rice parameters for the current CG may be set to the same values as the Rice parameters obtained at the end of decoding the previous CG. As in the HEVC initialization scheme, the initial values may be set to 0 at the beginning of the current CG. However, unlike the HEVC scheme, it is not required to set the initial values of the Rice parameters to 0.

在莱斯参数初始化方案的另一实例中,可将用于当前CG的莱斯参数的初始值设定为基于译码先前CG之后的莱斯参数的值的值。在特定实例中,可如下初始化每一CG的开始处的莱斯参数。In another example of the Rice parameter initialization scheme, the initial value of the Rice parameter for the current CG can be set to a value based on the value of the Rice parameter after decoding the previous CG. In a specific example, the Rice parameter at the beginning of each CG can be initialized as follows.

cRiceParam=max(0,cRiceParam-1)cRiceParam=max(0,cRiceParam-1)

在上文的实例中,基于零抑或译码先前CG之后莱斯参数的值的降低中的最大者的选择而针对当前CG初始化莱斯参数的值。在一些其它实例中,可如下文实例地设定莱斯参数的初始值的上限。In the above example, the value of the Rice parameter is initialized for the current CG based on the selection of the largest of zero or the decrease in the value of the Rice parameter after decoding the previous CG. In some other examples, the upper limit of the initial value of the Rice parameter can be set as in the following example.

cRiceParam=min(2,max(0,cRiceParam-1))cRiceParam=min(2,max(0,cRiceParam-1))

在此实例中,将莱斯参数的初始值设定上限为不大于2。In this example, the initial value of the Rice parameter is set to an upper limit of no more than 2.

在一些实例中,除了1的值可用于减少莱斯参数的先前值(例如,值n),包含从莱斯参数的先前值减去2(即,n等于2)而非1。举例来说,可基于当前CG是否包含于应用变换的变换块中,而变化用于初始化莱斯参数的降低值。如下可为实例公式。In some examples, a value other than 1 may be used to reduce the previous value of the Rice parameter (e.g., value n), including subtracting 2 from the previous value of the Rice parameter (i.e., n is equal to 2) instead of 1. For example, the reduction value used to initialize the Rice parameter may vary based on whether the current CG is included in a transform block to which a transform is applied. An example formula may be as follows.

在上文的实例中,如果变换块为变换跳过块(即,transform_skip_flag=1),则基于零抑或译码先前CG之后莱斯参数的值降低1中的最大者的选择而针对当前CG初始化莱斯参数的值。另一方面,如果变换块为变换跳过块(即,transform_skip_flag=0),则基于零抑或译码先前CG之后莱斯参数的值降低2中的最大者的选择而针对当前CG初始化莱斯参数的值。In the above example, if the transform block is a transform skip block (i.e., transform_skip_flag=1), the value of the Rice parameter is initialized for the current CG based on the selection of the maximum of zero or the value of the Rice parameter after decoding the previous CG is reduced by 1. On the other hand, if the transform block is a transform skip block (i.e., transform_skip_flag=0), the value of the Rice parameter is initialized for the current CG based on the selection of the maximum of zero or the value of the Rice parameter after decoding the previous CG is reduced by 2.

基于变换是否应用于变换块,本发明中所描述的莱斯参数初始化方案的实例状况可应用于包含于所有变换块中的CG,或可应用于CG。举例来说,在具有变换跳过或变换绕过的变换块的状况下,可并不将用于变换块中的当前CG的莱斯参数值重置为0,但对于已应用变换的变换块,可将用于变换块中的当前CG的莱斯参数重置为0。Based on whether the transform is applied to the transform block, the example case of the Rice parameter initialization scheme described in the present invention may be applied to CGs included in all transform blocks, or may be applied to CGs. For example, in the case of a transform block with transform skipping or transform bypassing, the Rice parameter value for the current CG in the transform block may not be reset to 0, but for the transform block to which the transform has been applied, the Rice parameter for the current CG in the transform block may be reset to 0.

举例来说,在以变换跳过模式有损译码的状况下,降低针对当前CG所初始化的莱斯参数的值可仅应用于变换跳过块中的CG。如下可为实例公式。For example, in the case of lossy decoding in transform skip mode, reducing the value of the Rice parameter initialized for the current CG can be applied only to the CG in the transform skip block. The following may be an example formula.

在上文的实例中,如果变换块为变换跳过块(即,transform_skip_flag=1),则基于零抑或译码先前CG之后莱斯参数的值降低1中的最大者的选择而针对当前CG初始化莱斯参数的值。另一方面,如果变换块为变换跳过块(即,transform_skip_flag=0),则针对当前CG,将莱斯参数的值初始化为零,如在HEVC初始化方案中。In the above example, if the transform block is a transform skip block (i.e., transform_skip_flag=1), the value of the Rice parameter is initialized for the current CG based on the selection of the maximum of zero or the value of the Rice parameter decreased by 1 after decoding the previous CG. On the other hand, if the transform block is a transform skip block (i.e., transform_skip_flag=0), the value of the Rice parameter is initialized to zero for the current CG, as in the HEVC initialization scheme.

在莱斯参数初始化方案的另一实例中,可基于先前经解码系数的系数层级的统计,确定用于当前CG的莱斯参数的初始值。系数层级的统计可包含先前经译码系数的系数层级的绝对值统计或系数层级的剩余绝对值统计。初始化方案可取决于包含于相同于当前CG的变换块中的CG中的先前经译码系数,及/或包含于在包含当前CG的变换块之前的不同变换块中的CG中的先前经译码系数。In another example of a Rice parameter initialization scheme, initial values of Rice parameters for a current CG may be determined based on coefficient-level statistics of previously decoded coefficients. The coefficient-level statistics may include absolute value statistics of the coefficient-level of previously coded coefficients or residual absolute value statistics of the coefficient-level. The initialization scheme may depend on previously coded coefficients in CGs included in the same transform block as the current CG and/or previously coded coefficients in CGs in different transform blocks preceding the transform block including the current CG.

在一些状况下,基于统计的莱斯参数初始化方案可取决于变换块类型、变换块大小、变换块中的CG的位置、变换块是否具有帧内预测或帧间预测切片类型、变换块的色彩分量及变换块的位深度中的一或多者。另外,基于统计的莱斯参数初始化方案可取决于先前及当前变换块中的先前经译码系数的剩余绝对层级。举例来说,莱斯参数初始化方案可取决于先前CG中的系数层级的最后经译码绝对值,或系数层级的最后经译码剩余绝对值、取决于先前CG中的先前经译码系数的系数层级的和或其它统计,或较简单地取决于先前CG中所译码的第一系数的系数层级。In some cases, the statistics-based Rice parameter initialization scheme may depend on one or more of the transform block type, the transform block size, the position of the CG in the transform block, whether the transform block has an intra-frame prediction or inter-frame prediction slice type, the color components of the transform block, and the bit depth of the transform block. In addition, the statistics-based Rice parameter initialization scheme may depend on the residual absolute levels of previously decoded coefficients in the previous and current transform blocks. For example, the Rice parameter initialization scheme may depend on the last decoded absolute value of the coefficient level in the previous CG, or the last decoded residual absolute value of the coefficient level, on the sum or other statistics of the coefficient levels of the previously decoded coefficients in the previous CG, or more simply on the coefficient level of the first coefficient decoded in the previous CG.

下文描述用于基于统计的莱斯参数初始化方案的统计收集的若干实例。在本发明中,术语“statCoeff”及术语“m_sumCoeff”可互换使用以表示统计,且术语“uiLevel”用于表示先前经译码系数的系数层级的绝对值或剩余绝对值。Several examples of statistics collection for a statistics-based Rice parameter initialization scheme are described below. In this disclosure, the terms "statCoeff" and "m_sumCoeff" are used interchangeably to represent statistics, and the term "uiLevel" is used to represent the absolute value or residual absolute value of the coefficient level of a previously coded coefficient.

在一实例中,可通过遍及视频数据的切片或译码单元(CU),计算先前经译码系数的系数层级的绝对值或剩余绝对值的平均值或流动平均值或类似统计,确定统计。以类似于上下文自适应性二进制算术译码(CABAC)上下文的方式,可在视频数据的切片的开始处初始化此平均值或流动平均值,并基于CG中的当前经译码系数层级,在切片的每一CG处进行更新。应理解,使用由莱斯参数定义的码(例如,哥伦布莱斯码或指数哥伦布码)绕过译码系数层级的剩余绝对值(即,coeff_abs_level_remaining值)。提供CABAC的描述及与CABAC上下文的初始化的比较,以仅帮助理解。In one example, a statistic may be determined by computing an average or running average, or similar statistic, of the absolute values or remaining absolute values of coefficient levels of previously coded coefficients across a slice or coding unit (CU) of video data. This average or running average may be initialized at the beginning of a slice of video data in a manner similar to a context-adaptive binary arithmetic coding (CABAC) context and updated at each CG of the slice based on the current coded coefficient level in the CG. It should be understood that the use of a code defined by Rice parameters (e.g., a Golomblais code or an Exponential Golomb code) bypasses the remaining absolute values of the coded coefficient levels (i.e., the coeff_abs_level_remaining value). The description of CABAC and comparison with the initialization of the CABAC context is provided to aid understanding only.

在另一实例中,可通过将给定先前经译码系数的系数层级与统计值直接比较,且接着基于比较确定是增加/降低抑或维持统计值而确定统计。举例来说,可根据以下条件性等式确定统计。In another example, the statistic may be determined by directly comparing the coefficient level of a given previously coded coefficient to the statistic value, and then determining whether to increase/decrease or maintain the statistic value based on the comparison. For example, the statistic may be determined according to the following conditional equation.

statCoeff+=(uiLevel==statCoeff)?0:((uiLevel<statCoeff)?-1:1);statCoeff+=(uiLevel==statCoeff)? 0:((uiLevel<statCoeff)?-1:1);

在上文的等式中,如果当前系数层级(uiLevel)超过先前统计(statCoeff),则增加statCoeff的值,且如果当前系数层级小于statCoeff,则降低statCoeff的值,或如果当前系数层级等于先前statCoeff,则statCoeff的值维持不变。可在译码过程中初始化CABAC上下文的相同点处,即,正经译码视频数据的每一切片的开始处,将statCoeff的值初始化为0。In the above equation, if the current coefficient level (uiLevel) exceeds the previous statistic (statCoeff), the value of statCoeff is increased, and if the current coefficient level is less than statCoeff, the value of statCoeff is decreased, or if the current coefficient level is equal to the previous statCoeff, the value of statCoeff remains unchanged. The value of statCoeff may be initialized to 0 at the same point in the coding process where the CABAC context is initialized, i.e., at the beginning of each slice of video data being coded.

在另一实例中,可通过将给定先前经译码系数的系数层级与统计的预定义函数进行比较,且接着基于比较确定是增加抑或降低统计值而确定统计。此外,在此实例中,可在视频数据的每一切片的开始处将统计值(m_sumCoeff)重置为零。统计的预定义函数可基于左移位除以第二常数值的统计值的第一常数值。如下给出统计(m_sumCoeff)的函数的一实例。In another example, the statistic can be determined by comparing the coefficient level of a given previously coded coefficient to a predefined function of the statistic, and then determining whether to increase or decrease the statistic based on the comparison. Furthermore, in this example, the statistic value (m_sumCoeff) can be reset to zero at the beginning of each slice of the video data. The predefined function of the statistic can be based on a first constant value of the statistic that is left-shifted and divided by a second constant value. An example of a function of the statistic (m_sumCoeff) is given below.

在上文的伪码中,a、b、c、d、e、f、g及h为参数,且<<表示左移位运算。In the above pseudocode, a, b, c, d, e, f, g, and h are parameters, and << represents a left shift operation.

以下为使用参数a、b、c、d、e、f、g及h的实例值的上文等式的若干实例。在a=3、d=2、第一常数值(h)等于1且第二常数值(f)等于4,且将剩余参数设定为等于0的状况下,如下给出统计(m_sumCoeff)的函数。Below are some examples of the above equation using example values for the parameters a, b, c, d, e, f, g, and h. With a=3, d=2, a first constant value (h) equal to 1, a second constant value (f) equal to 4, and the remaining parameters set to 0, the function for the statistic (m_sumCoeff) is given below.

在a=1、d=1、第一常数值(h)等于1且第二常数值(f)等于4,且将剩余参数设定为等于0的状况下,如下给出统计(m_sumCoeff)的函数。Under the condition that a=1, d=1, the first constant value (h) is equal to 1 and the second constant value (f) is equal to 4, and the remaining parameters are set equal to 0, the function of statistics (m_sumCoeff) is given as follows.

在一些实例中,系数层级的统计的函数可包含相关于自从在切片的开始处将统计初始化为零以来,应用于统计的更新的总数目的变量。如下给出包含总计数变量(m_total_counter)的统计(m_sumCoeff)的函数的一实例。In some examples, the function of coefficient-level statistics may include a variable related to the total number of updates applied to the statistics since the statistics were initialized to zero at the beginning of the slice. An example of a function of statistics (m_sumCoeff) including a total count variable (m_total_counter) is given below.

在上文的伪码中,a、b、c、d、e、f、g及h为参数,<<表示左移位运算,且不管统计是增加还是降低,m_total_counter在每一统计更新(m_sumCoeff)之后增加。In the pseudocode above, a, b, c, d, e, f, g, and h are parameters, << represents a left shift operation, and m_total_counter is incremented after each statistic update (m_sumCoeff) regardless of whether the statistic is increasing or decreasing.

可根据预定义频率,针对基于统计的莱斯参数初始化方案执行上文所描述的统计收集。在一实例中,可在译码CG中的系数层级的每一绝对值之后,或在译码CG中的系数层级的每一剩余绝对值之后,更新统计。在另一实例中,为了限制复杂性的增加,可按每一CG或每一变换块仅更新一次统计。通过此方法,可无需针对每一经译码系数层级更新统计,而实际上,可按每一变换块或每一CG更新一次统计(在HEVC中为按每16系数更新一次)。The statistics collection described above may be performed for a statistics-based Rice parameter initialization scheme according to a predefined frequency. In one example, the statistics may be updated after each absolute value of a coefficient level in the coded CG, or after each remaining absolute value of a coefficient level in the coded CG. In another example, to limit the increase in complexity, the statistics may be updated only once per CG or per transform block. With this approach, there may be no need to update the statistics for each coded coefficient level, and in fact, the statistics may be updated once per transform block or per CG (in HEVC, once per 16 coefficients).

在一些状况下,可仅当译码CG中的系数层级的第一绝对值时,更新统计。在其它状况下,可仅当译码CG中的系数层级的第一剩余绝对值时,更新统计。以下伪码说明关于上文所描述的统计收集等式的此限制,其中将第一经译码系数层级的值(uiLevel)与统计(statCoeff)的值直接比较。In some cases, statistics may be updated only when the first absolute value of a coefficient level in the CG is coded. In other cases, statistics may be updated only when the first remaining absolute value of a coefficient level in the CG is coded. The following pseudo-code illustrates this restriction with respect to the statistics collection equations described above, where the value of the first coded coefficient level (uiLevel) is directly compared to the value of the statistic (statCoeff).

在上文的等式中,术语“firstGolombCoeffinCG”用于表示当前经译码系数层级是否为CG中的第一剩余绝对值,术语“statCoeff”用于表示统计,且术语“uiLevel”用于表示先前经译码系数的系数层级的第一绝对值或第一剩余绝对值。In the above equations, the term "firstGolombCoeffinCG" is used to indicate whether the current decoded coefficient level is the first residual absolute value in the CG, the term "statCoeff" is used to indicate statistics, and the term "uiLevel" is used to indicate the first absolute value or the first residual absolute value of the coefficient level of the previously decoded coefficient.

可将频率限制类似地应用于上文所描述的统计收集等式,其中将第一经译码系数层级的值(uiLevel)与统计(statCoeff)的预定义函数进行比较,如以下伪码中所展示。Frequency limiting may be similarly applied to the statistics collection equations described above, where the value of the first coded coefficient level (uiLevel) is compared to a predefined function of statistics (statCoeff), as shown in the following pseudo-code.

在一些状况下,可针对基于包含CG的变换块的特性定义的多个不同类别的CG中的每一者,分别执行上文所描述的统计收集。在此状况下,可基于变换块的特性,确定变换块中的当前CG的类别,且可基于用于所确定类别的统计,初始化用于当前CG的莱斯参数。下文描述分割用于基于统计的莱斯参数初始化方案的统计的若干实例。In some cases, the statistics collection described above may be performed separately for each of a plurality of different categories of CGs defined based on the characteristics of the transform block containing the CG. In this case, the category of the current CG in the transform block may be determined based on the characteristics of the transform block, and the Rice parameters for the current CG may be initialized based on the statistics for the determined category. Several examples of segmenting statistics for a statistics-based Rice parameter initialization scheme are described below.

用于分割或分类统计的变换块的特性可包含变换块是为明度块类型还是色度块类型、变换块是否具有帧内预测或帧间预测切片类型、变换块的大小及变换块内的CG的位置中的一或多者。变换块内的CG的位置特性可指示当前CG是否为变换块中的左上方4×4子块。另外,特性可包含变换块是否经译码为变换跳过块,或变换块是否经译码为变换量化绕过块。因此,取决于上文特性中的一或多者,可分别保存统计。可针对每一类型或类别的CG或变换块,确定单独统计。单独统计可为基于统计的莱斯参数初始化方案提供较准确的估计,但也要求较多存储资源。The characteristics of the transform block used for segmentation or classification statistics may include one or more of whether the transform block is a luma block type or a chroma block type, whether the transform block has an intra-frame prediction or inter-frame prediction slice type, the size of the transform block, and the position of the CG within the transform block. The position characteristic of the CG within the transform block may indicate whether the current CG is the upper left 4×4 sub-block in the transform block. In addition, the characteristics may include whether the transform block is decoded as a transform skip block, or whether the transform block is decoded as a transform quantization bypass block. Therefore, depending on one or more of the above characteristics, statistics can be saved separately. Separate statistics can be determined for each type or category of CG or transform block. Separate statistics can provide more accurate estimates for the statistics-based Rice parameter initialization scheme, but also require more storage resources.

作为第一实例,以下函数可用于基于取决于变换块是否为明度块,及CG是否为变换块中的左上方子块的变量TYPE,确定统计的分割或类别。As a first example, the following function may be used to determine the partition or category of a statistic based on a variable TYPE that depends on whether the transform block is a luma block, and whether the CG is the top left sub-block in the transform block.

TYPE=2*isLuma+(iSubSet>0);TYPE=2*isLuma+(iSubSet>0);

根据上文的函数,取决于变换块为明度块(isLuma=1)或色度块(isLuma=0),及CG为左上方子块(iSubSet==0)或并非为左上方子块(iSubSet>0),变量TYPE可具有4个值。According to the above function, the variable TYPE can have 4 values depending on whether the transform block is a luma block (isLuma=1) or a chroma block (isLuma=0), and whether the CG is the upper left sub-block (iSubSet==0) or not (iSubSet>0).

在另一实例中,统计的分割或类别取决于变换块是否为明度块,及是否以变换跳过模式译码变换块。In another example, the partitioning or classification of the statistics depends on whether the transform block is a luma block and whether the transform block is coded in transform skip mode.

TYPE=2*isLuma+(isTransformSkip?0:1);TYPE=2*isLuma+(isTransformSkip? 0:1);

根据此函数,取决于变换块为明度块(isLuma=1)或色度块(isLuma=0),及以变换跳过模式译码变换块(isTransformSkip=1)或未以所述模式进行译码(isTransformSkip=0),变量TYPE可具有4个值。According to this function, the variable TYPE can have 4 values depending on whether the transform block is a luma block (isLuma=1) or a chroma block (isLuma=0), and whether the transform block is coded in transform skip mode (isTransformSkip=1) or not (isTransformSkip=0).

在另一实例中,统计的分割或类别取决于变换块是否为明度块、CG是否为变换块中的左上方子块,及是否以变换跳过模式译码变换块。In another example, the partitioning or classification of the statistics depends on whether the transform block is a luma block, whether the CG is the top left sub-block in the transform block, and whether the transform block is decoded in transform skip mode.

TYPE=4*isLuma+2*(isTransformSkip?0:1)+(iSubSet>0);TYPE=4*isLuma+2*(isTransformSkip?0:1)+(iSubSet>0);

根据此函数,取决于变换块为明度块(isLuma=1)或色度块(isLuma=0)、以变换跳过模式译码变换块(isTransformSkip=1)或未以所述模式进行译码(isTransformSkip=0),及CG为左上方子块(iSubSet==0)或并非左上方子块(iSubSet>0),变量TYPE可具有8个值。According to this function, the variable TYPE can have 8 values depending on whether the transform block is a luma block (isLuma=1) or a chroma block (isLuma=0), whether the transform block is coded in transform skip mode (isTransformSkip=1) or not coded in the said mode (isTransformSkip=0), and whether the CG is the upper left sub-block (iSubSet==0) or not the upper left sub-block (iSubSet>0).

在另一实例中,统计的分割或类别取决于变换块是否经译码为变换量化绕过(即,为无损译码,绕过变换及量化过程两者)。In another example, the partitioning or category of the statistics depends on whether the transform block is coded as transform-quantization bypass (ie, is losslessly coded, bypassing both the transform and quantization processes).

使用根据上文所描述的若干实例中的一者定义的TYPE变量,并将其与上文所描述的统计收集等式(其中将第一经译码系数层级的值(uiLevel)与统计(statCoeff)的值直接比较),及上文所描述的统计收集频率限制(其中仅当译码CG中的第一系数层级(firstGolombCoeffinCG)时更新统计)组合,组合式方法将为如下。Using the TYPE variable defined according to one of the several examples described above, and combining it with the statistics collection equation described above (where the value of the first coded coefficient level (uiLevel) is directly compared to the value of the statistics (statCoeff)), and the statistics collection frequency restriction described above (where statistics are only updated when the first coefficient level in the coded CG (firstGolombCoeffinCG) is coded), the combined method will be as follows.

在上文的伪码中,术语“statCoeff[TYPE]”表示针对由变量TYPE所指示的CG类别所收集的统计。In the pseudo-code above, the term "statCoeff[TYPE]" represents the statistics collected for the CG category indicated by the variable TYPE.

如下将为使用上文所描述的统计收集等式(其中将第一经译码系数层级的值(uiLevel)与统计(statCoeff)的预定义函数进行比较)的组合式方法的另一实例。Another example of a combined approach using the statistics collection equation described above, where the value of the first coded coefficient level (uiLevel) is compared to a predefined function of statistics (statCoeff), is as follows.

此外,在上文的伪码中,术语“statCoeff[TYPE]”表示针对由变量TYPE所指示的CG类别所收集的统计。Furthermore, in the pseudo-code above, the term "statCoeff[TYPE]" represents statistics collected for the CG category indicated by the variable TYPE.

在一些实例中,编解码器(即,视频编码器/解码器)可支持多个方法,以针对CG确定TYPE变数。举例来说,编解码器可支持用于TYPE变量的上文所描述的实例函数中的两者或两者以上。在此状况下,编解码器可选择所述方法中的一者,以基于经译码或经导出指示,确定分割用于基于统计的莱斯参数初始化方案的统计的方式。下文给出用于多个方法状况的实例伪码。In some examples, a codec (i.e., a video encoder/decoder) may support multiple methods for determining the TYPE variable for a CG. For example, the codec may support two or more of the example functions described above for the TYPE variable. In this case, the codec may select one of the methods to determine how to partition the statistics for the statistics-based Rice parameter initialization scheme based on a decoded or derived indication. Example pseudocode for multiple method cases is given below.

方法1:Method 1:

TYPE=2*isLuma+(isTransformSkip?0:1);TYPE=2*isLuma+(isTransformSkip? 0:1);

方法2:Method 2:

TYPE=(isTransformSkip?0:1);TYPE=(isTransformSkip?0:1);

在一状况下,可在经译码位流中用信号发出语法元素,以指示变换块的哪个特性用于定义不同类别的CG。语法元素可包括包含于用于残余视频数据的序列参数集(SPS)或图片参数集(PPS)中的一者中的旗标。作为一实例,视频编码器20可在经译码位流中以高阶语法用信号发出旗标(例如,method_flag),且视频解码器30可解析经译码位流以接收method_flag。在此实例中,method_flag=0指示方法1用于基于变换块是否为明度块,及是否以变换跳过模式译码变换块,确定统计的类别。method_flag=1指示方法2用于仅基于是否以变换跳过模式译码变换块,确定统计的类别。如果存在由编解码器支持的两个以上方法,则语法元素可包括用以指示所选择方法的索引值而非二进制旗标。In one case, a syntax element may be signaled in the coded bitstream to indicate which characteristic of a transform block is used to define different categories of CGs. The syntax element may include a flag included in one of a sequence parameter set (SPS) or a picture parameter set (PPS) for the residual video data. As an example, video encoder 20 may signal a flag (e.g., method_flag) in high-level syntax in the coded bitstream, and video decoder 30 may parse the coded bitstream to receive the method_flag. In this example, method_flag=0 indicates that method 1 is used to determine the category of statistics based on whether the transform block is a luma block and whether the transform block is coded in transform skip mode. method_flag=1 indicates that method 2 is used to determine the category of statistics based only on whether the transform block is coded in transform skip mode. If there are more than two methods supported by the codec, the syntax element may include an index value to indicate the selected method instead of a binary flag.

在另一状况下,编解码器可基于视频数据的色彩格式,选择用于定义不同类别的CG的方法中的一者,在此情况下无需在位流中用信号发出额外语法元素以指示所述方法。举例来说,可基于YUV色彩格式或RGB色彩格式是否用于译码视频数据,选择用于确定用于视频数据的CG的TYPE变量的方法。作为一实例,当经译码视频数据为YUV色彩格式时,使用基于变换块是否为明度块,及是否以变换跳过模式译码变换块,确定统计的类别的方法1。当经译码视频数据为RGB色彩格式时,使用仅基于是否以变换跳过模式译码变换块,确定统计的类别的方法2。在视频编码器20及视频解码器30能够检测视频数据的色彩格式的状况下,并不在位流中用信号发出指示所选择方法的语法元素(例如,方法旗标或方法索引)。In another case, the codec may select one of the methods for defining different categories of CG based on the color format of the video data, in which case no additional syntax elements need to be signaled in the bitstream to indicate the method. For example, a method for determining the TYPE variable for the CG of the video data may be selected based on whether the YUV color format or the RGB color format is used to decode the video data. As an example, when the decoded video data is in the YUV color format, method 1 is used, which determines the category of statistics based on whether the transform block is a luma block and whether the transform block is decoded in a transform skip mode. When the decoded video data is in the RGB color format, method 2 is used, which determines the category of statistics based only on whether the transform block is decoded in a transform skip mode. In the case where video encoder 20 and video decoder 30 are capable of detecting the color format of the video data, a syntax element (e.g., a method flag or a method index) indicating the selected method is not signaled in the bitstream.

根据本发明中所描述的技术,基于统计的莱斯参数初始化方案基于根据上文所描述的实例的任何组合而针对先前经译码系数所收集的系数层级统计,确定用于当前CG的莱斯参数的初始值。下文描述将所收集统计的值映射为用于当前CG的莱斯参数的初始值的若干实例技术。可针对每一CG(例如,4×4变换块或变换块的4×4子块)执行统计到莱斯参数的初始值的映射,或可针对每一TU仅执行一次映像(例如,在TU的开始处)。According to the techniques described in the present invention, a statistics-based Rice parameter initialization scheme determines initial values of Rice parameters for the current CG based on coefficient-level statistics collected for previously coded coefficients according to any combination of the examples described above. Several example techniques for mapping the values of the collected statistics to initial values of Rice parameters for the current CG are described below. The mapping of statistics to initial values of Rice parameters can be performed for each CG (e.g., a 4×4 transform block or a 4×4 sub-block of a transform block), or can be performed only once for each TU (e.g., at the beginning of the TU).

在一实例中,可根据存储表将统计值映像为初始莱斯参数。映射表的输入可为统计值,且所述表的输出可为莱斯参数的初始值。在一些状况下,可将统计的经削减版本用作到映像表的输入。举例来说,如果最大莱斯参数为5,且统计经削减为介于0与31之间,则可如下给出映射表。In one example, the statistical values can be mapped to initial Rice parameters according to a storage table. The input of the mapping table can be the statistical values, and the output of the table can be the initial values of the Rice parameters. In some cases, a reduced version of the statistics can be used as input to the mapping table. For example, if the maximum Rice parameter is 5 and the statistics are reduced to between 0 and 31, the mapping table can be given as follows.

g_golombTab[32]={0,0,0,0,1,1,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5};g_golombTab[32]={0,0,0,0,1,1,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5};

在每一CG的开始处,上文的表可用于基于所收集统计,确定莱斯参数的初始值。在其它实例中,不同的映射表可用于基于所收集统计,确定莱斯参数的初始值。At the beginning of each CG, the above table can be used to determine the initial values of the Rice parameters based on the collected statistics. In other instances, different mapping tables can be used to determine the initial values of the Rice parameters based on the collected statistics.

上文描述统计收集的三个主要实例方法,其中记法“statCoeff”及“m_sumCoeff”可互换使用以表示统计:(1)将经译码系数层级的值(uiLevel)与统计值(statCoeff)直接比较的统计收集,(2)将经译码系数层级的值(uiLevel)与统计的预定义函数(m_sumCoeff)比较的统计收集,及(3)将经译码系数层级的值(uiLevel)与包含总计数变量(m_total_counter)的统计(m_sumCoeff)的预定义函数比较的统计收集。Three main example methods of statistics collection are described above, where the notations "statCoeff" and "m_sumCoeff" are used interchangeably to represent statistics: (1) statistics collection that compares the value of the decoded coefficient level (uiLevel) directly with the statistic value (statCoeff), (2) statistics collection that compares the value of the decoded coefficient level (uiLevel) with a predefined function of the statistics (m_sumCoeff), and (3) statistics collection that compares the value of the decoded coefficient level (uiLevel) with a predefined function of the statistics (m_sumCoeff) that includes a total count variable (m_total_counter).

使用统计收集的特定实例方法中的一者及上文所描述的映射表,可如下执行基于针对由变量TYPE所指示的CG类别所收集的统计的莱斯参数初始化。Using one of the specific example methods of statistics collection and the mapping table described above, Rice parameter initialization based on statistics collected for the CG category indicated by the variable TYPE can be performed as follows.

cRiceParam=g_golombTab[min(statCoeff[TYPE],31)];cRiceParam=g_golombTab[min(statCoeff[TYPE],31)];

在其它实例中,可根据执行映像的函数,将统计值映像为莱斯参数的初始值。在一些状况下,映像函数可为所收集统计的函数。使用映像函数可避免映像表的额外存储消耗。In other examples, the statistical values can be mapped to the initial values of the Rice parameters according to the function that executes the mapping. In some cases, the mapping function can be a function of the collected statistics. Using the mapping function can avoid the additional storage consumption of the mapping table.

作为一实例,可基于右移位常数值的所收集统计,初始化莱斯参数,如下文中给出。As an example, the Rice parameters may be initialized based on collected statistics of right-shifted constant values, as given below.

cRiceParam=(statCoeff[TYPE]>>R);cRiceParam=(statCoeff[TYPE]>>R);

在上文的等式中,“>>“表示右移位运算且R为参数。在一些状况下,可能需要将莱斯参数的最大值限制为MAX_RICE,其可为大于或等于4的整数值。在此状况下,可如下给出函数。In the above equation, ">>" represents a right shift operation and R is a parameter. In some cases, it may be necessary to limit the maximum value of the Rice parameter to MAX_RICE, which may be an integer value greater than or equal to 4. In this case, the function may be given as follows.

cRiceParam=min(statCoeff[TYPE]>>R,MAX_RICE)cRiceParam=min(statCoeff[TYPE]>>R,MAX_RICE)

作为另一实例,可基于所收集统计的线性函数初始化莱斯参数,如下文中给出。As another example, Rice parameters can be initialized based on a linear function of the collected statistics, as given below.

cRiceParam=a*(statCoeff[TYPE]+b)/c+dcRiceParam=a*(statCoeff[TYPE]+b)/c+d

在上文的等式中,a、b、c及d为参数值。In the above equations, a, b, c, and d are parameter values.

作为另一实例,可基于所收集统计的分段线性函数初始化莱斯参数。如下给出分段线性函数的两个特定实例。As another example, the Rice parameters can be initialized based on a piecewise linear function of the collected statistics. Two specific examples of piecewise linear functions are given below.

cRiceParam=statCoeff[TYPE]<16?(statCoeff[TYPE]+1)/4:cRiceParam=statCoeff[TYPE]<16? (statCoeff[TYPE]+1)/4:

(4+(statCoeff[TYPE]+40)/64);(4+(statCoeff[TYPE]+40)/64);

cRiceParam=statCoeff[TYPE]<16?(statCoeff[TYPE])/4:cRiceParam=statCoeff[TYPE]<16? (statCoeff[TYPE])/4:

(4+(statCoeff[TYPE]+40)/64);(4+(statCoeff[TYPE]+40)/64);

在另一实例中,可基于上文所描述的统计收集方法初始化莱斯参数,其中将经译码系数层级的值(uiLevel)与统计(m_sumCoeff)的预定义函数比较。在此状况下,根据统计的函数,将所收集统计的值映射为莱斯参数的初始值。在一实例中,用于初始化莱斯参数的统计的函数可基于莱斯参数的最大值抑或除以常数值的统计值中的最小者的选择。In another example, the Rice parameters may be initialized based on the statistics collection method described above, where the value of the coded coefficient level (uiLevel) is compared to a predefined function of statistics (m_sumCoeff). In this case, the values of the collected statistics are mapped to initial values of the Rice parameters according to the function of the statistics. In one example, the function of the statistics used to initialize the Rice parameters may be based on the selection of the minimum of the maximum value of the Rice parameters or the statistical value divided by a constant value.

如下给出映像函数的实例。An example of a mapping function is given below.

uiGoRiceParam=min(m_sumCoeff/DELAY,MAX_RICE_PARAM_INIT);uiGoRiceParam=min(m_sumCoeff/DELAY,MAX_RICE_PARAM_INIT);

在上文的等式中,DELAY为常数值,且MAX_RICE_PARAM_INIT为莱斯参数的最大值。在一些状况下,莱斯参数的最大值可大于或等于4。常数值可为用户定义参数。如下给出其中DELAY=4的映像函数的实例。In the equation above, DELAY is a constant value, and MAX_RICE_PARAM_INIT is the maximum value of the Rice parameter. In some cases, the maximum value of the Rice parameter may be greater than or equal to 4. The constant value may be a user-defined parameter. An example of a mapping function with DELAY=4 is given below.

cRiceParam=Min(maxRicePara,statCoeff/4)。cRiceParam=Min(maxRicePara,statCoeff/4).

在上文的实例中,术语“statCoeff”而非“m_sumCoeff”用于表示统计值,且maxRicePara而非MAX_RICE_PARAM_INIT用于表示莱斯参数的最大值。In the above examples, the term "statCoeff" rather than "m_sumCoeff" is used to represent the statistical value, and maxRicePara rather than MAX_RICE_PARAM_INIT is used to represent the maximum value of the Rice parameter.

在另一实例中,可基于上文所描述的统计收集方法初始化莱斯参数,其中将经译码系数层级的值(uiLevel)与包含总计数变量(m_total_counter)的统计(m_sumCoeff)的预定义函数比较。在此状况下,根据统计的函数,将所收集统计的值映射为莱斯参数的初始值。如下给出映像函数的实例。In another example, the Rice parameters can be initialized based on the statistics collection method described above, where the value of the decoded coefficient level (uiLevel) is compared with a predefined function of statistics (m_sumCoeff) including a total count variable (m_total_counter). In this case, the values of the collected statistics are mapped to the initial values of the Rice parameters according to the function of the statistics. An example of a mapping function is given below.

If m_sumCoeff/m_total_counter>thres0,cRiceParam+=k0If m_sumCoeff/m_total_counter>thres0,cRiceParam+=k0

Elseif m_sumCoeff/m_total_counter<thres1,cRiceParam+=k1Elseif m_sumCoeff/m_total_counter<thres1,cRiceParam+=k1

在上文的等式中,术语“thres0”表示第一临限值,且“thres1”表示第二临限值,且k0及k1为参数。根据所述函数,如果除以统计更新的总数目的统计值大于thres0,则将莱斯参数的初始值设定为等于递增k0的莱斯参数的先前值。如果除以统计更新的总数目的统计值小于thres1,则将莱斯参数的初始值设定为等于递增k1的莱斯参数的先前值。In the above equation, the term "thres0" represents a first threshold value, and "thres1" represents a second threshold value, and k0 and k1 are parameters. According to the function, if the statistical value divided by the total number of statistical updates is greater than thres0, the initial value of the Rice parameter is set to be equal to the previous value of the Rice parameter incremented by k0. If the statistical value divided by the total number of statistical updates is less than thres1, the initial value of the Rice parameter is set to be equal to the previous value of the Rice parameter incremented by k1.

在一些实例中,可将初始莱斯参数削减为介于最小值与最大值之间。在此状况下,将额外削减函数加至用于初始化莱斯参数的映像函数。如下给出经削减映像函数的实例。In some instances, the initial Rice parameters can be reduced to between a minimum and a maximum value. In this case, an additional reduction function is added to the mapping function for initializing the Rice parameters. An example of a reduced mapping function is given below.

cRiceParam=Clip(MIN_RICE,cRiceParam,MAX_RICE)cRiceParam=Clip(MIN_RICE,cRiceParam,MAX_RICE)

在上文的等式中,MIN_RICE为莱斯参数的最小值,且MAX_RICE为莱斯参数的最大值。在一实例中,MIN_RICE的值可等于0,且MAX_RICE的值可为大于或等于4的整数值。MIN_RICE及MAX_RICE的值可取决于旁侧信息,例如位深度、布置文件、色彩格式、译码模式(即,无损译码或有损译码)及其它类型的旁侧信息中的一或多者。In the above equation, MIN_RICE is the minimum value of the Rice parameter, and MAX_RICE is the maximum value of the Rice parameter. In one example, the value of MIN_RICE may be equal to 0, and the value of MAX_RICE may be an integer value greater than or equal to 4. The values of MIN_RICE and MAX_RICE may depend on side information, such as one or more of bit depth, layout file, color format, coding mode (i.e., lossless coding or lossy coding), and other types of side information.

如上文所描述,在HEVC中,可在译码CG中的系数层级的每一剩余绝对值之后,更新莱斯参数的值。在一些实例中,可将类似削减应用于莱斯参数的经更新值。相比于初始化过程,用于更新过程的范围(即,最小值及最大值)可不同,或范围可与用于初始化的范围相同。类似地,范围可取决于位深度、布置文件、色彩格式、译码模式(即,无损译码或有损译码)及其它旁侧信息中的一或多者。As described above, in HEVC, the value of the Rice parameter may be updated after coding each residual absolute value of the coefficient level in the CG. In some examples, similar clipping may be applied to the updated value of the Rice parameter. The range (i.e., minimum and maximum values) used for the update process may be different than that used for the initialization process, or the range may be the same as that used for the initialization process. Similarly, the range may depend on one or more of the bit depth, layout file, color format, coding mode (i.e., lossless coding or lossy coding), and other side information.

下文中给出将统计映射为莱斯参数的初始值的四个额外实例。Four additional examples of mapping statistics to initial values of Ricean parameters are given below.

在第一实例中,使用被称作m_sumCoeff及m_sumCoeff2的两个统计。可如下使用上文所描述的统计收集方法导出m_sumCoeff的值,其中将经译码系数层级的值(uiLevel)与统计(m_sumCoeff)的预定义函数比较。In a first example, two statistics called m_sumCoeff and m_sumCoeff2 are used.The value of m_sumCoeff may be derived using the statistics collection method described above as follows, where the value of a coded coefficient level (uiLevel) is compared to a predefined function of the statistic (m_sumCoeff).

可如下使用上文所描述的统计收集方法导出m_sumCoeff2的值,其中将经译码系数层级的值(uiLevel)与统计值(m_sumCoeff2)直接比较。The value of m_sumCoeff2 may be derived using the statistics collection method described above as follows, where the value of the coded coefficient level (uiLevel) is directly compared to the statistical value (m_sumCoeff2).

m_sumCoeff2+=(uiLevel==m_sumCoeff2)?0:m_sumCoeff2+=(uiLevel==m_sumCoeff2)? 0:

(uiLevel<m_sumCoeff2?-1:1);(uiLevel<m_sumCoeff2?-1:1);

在此第一实例中,相比于变换跳过块,用于变换经译码块的统计到莱斯参数的初始值的映射可不同。在变换跳过块的状况下,可如下给出初始化函数。In this first example, the mapping of statistics for transform coded blocks to initial values of Rice parameters may be different compared to transform skip blocks. In the case of transform skip blocks, the initialization function may be given as follows.

uiGoRiceParam=min(m_sumCoeff/DELAY,MAX_RICE_PARAM_INIT);uiGoRiceParam=min(m_sumCoeff/DELAY,MAX_RICE_PARAM_INIT);

在变换经译码块的状况下,可如下给出初始化函数。In the case of transforming a coded block, the initialization function may be given as follows.

在上文的伪码中,“Th”为临限值。Th的实例值可为(1<<uiGoRiceParam)。In the pseudo code above, "Th" is a threshold value. An example value of Th may be (1<<uiGoRiceParam).

在第二实例中,可使用上文所描述的统计收集方法导出被称作m_sumCoeff的统计,其中将经译码系数层级的值(uiLevel)与统计(m_sumCoeff)的预定义函数比较。在此第二实例中,相比于变换跳过块来说,对于变换经译码块,统计到莱斯参数的初始值的映射可不同。在变换跳过块的状况下,可如下给出初始化函数。In a second example, a statistic called m_sumCoeff can be derived using the statistics collection method described above, where the value of the coded coefficient level (uiLevel) is compared to a predefined function of the statistic (m_sumCoeff). In this second example, the mapping of statistics to initial values of Rice parameters may be different for transform-coded blocks compared to transform-skip blocks. In the case of transform-skip blocks, the initialization function may be given as follows.

uiGoRiceParam=min(m_sumCoeff/DELAY,MAX_RICE_PARAM_INIT);uiGoRiceParam=min(m_sumCoeff/DELAY,MAX_RICE_PARAM_INIT);

在变换经译码块的状况下,可如下给出初始化函数。In the case of transforming a coded block, the initialization function may be given as follows.

在上文的伪码中,“Th”为临限值。Th的实例值可为MAX_RICE_PARAM_INIT/2-2。In the pseudo code above, "Th" is a threshold value. An example value of Th may be MAX_RICE_PARAM_INIT/2-2.

在第三实例中,可使用上文所描述的统计收集方法导出被称作m_sumCoeff的统计,其中将经译码系数层级的值(uiLevel)与统计(m_sumCoeff)的预定义函数比较。在此第三实例中,可如下给出统计到莱斯参数的初始值的映射。In a third example, a statistic called m_sumCoeff can be derived using the statistics collection method described above, where the value of the coded coefficient level (uiLevel) is compared with a predefined function of the statistic (m_sumCoeff). In this third example, the mapping of the statistics to the initial values of the Rice parameters can be given as follows.

在上文的伪码中,“Th”为临限值且“d”为参数。In the pseudo code above, "Th" is a threshold value and "d" is a parameter.

在第四实例中,可使用上文所描述的统计收集方法导出被称作m_sumCoeff的统计,其中将经译码系数层级的值(uiLevel)与统计(m_sumCoeff)的预定义函数比较。在此第四实例中,可如下给出统计到莱斯参数的初始值的映射。In a fourth example, a statistic called m_sumCoeff can be derived using the statistics collection method described above, where the value of the coded coefficient level (uiLevel) is compared with a predefined function of the statistic (m_sumCoeff). In this fourth example, the mapping of the statistics to the initial values of the Rice parameters can be given as follows.

在上文的伪码中,“Th”为临限值且“d”、DELAY0及DELAY1为参数。在此第四实例中,当统计值等于临限值(Th)时,使用上文等式中的任一者导出的莱斯参数的初始值(uiGoRiceParam)相同。In the pseudo code above, "Th" is the threshold value and "d", DELAY0 and DELAY1 are parameters. In this fourth example, when the statistical value is equal to the threshold value (Th), the initial value of the Rice parameter (uiGoRiceParam) derived using any of the above equations is the same.

在一些实例中,用于确定莱斯参数的初始值及临限值的映像函数可为固定的,且为视频编码器20及视频解码器30两者所已知。在其它实例中,可基于旁侧信息,可适应性地决定用于确定莱斯参数的初始值及临限值的映像函数。可由视频编码器20及视频解码器30中的每一者独立地导出旁侧信息,或可使用高阶语法在SPS或PPS中将旁侧信息从视频编码器20用信号发出到视频解码器30,或可使用推导及发信号的一些组合来确定旁侧信息。举例来说,旁侧信息可包含以下各者中的一或多者:帧大小、帧类型、CU大小、TU大小、TU类型(例如,变换跳过模式或变换模式)、色彩分量、帧内或帧间预测模式、量化参数(QP)、位深度、色彩格式(例如,444/422/420)、有效系数旗标(数目及分布两者)、大于1(即,超过1)的旗标(数目及分布两者),及大于2(即,超过2)的旗标(数目及分布两者)。也可显式地用信号发出所述信息。In some examples, the mapping functions for determining the initial values and threshold values of the Rice parameters may be fixed and known to both the video encoder 20 and the video decoder 30. In other examples, the mapping functions for determining the initial values and threshold values of the Rice parameters may be adaptively determined based on side information. The side information may be independently derived by each of the video encoder 20 and the video decoder 30, or the side information may be signaled from the video encoder 20 to the video decoder 30 in an SPS or PPS using high-level syntax, or some combination of derivation and signaling may be used to determine the side information. For example, the side information may include one or more of the following: frame size, frame type, CU size, TU size, TU type (e.g., transform skip mode or transform mode), color component, intra or inter prediction mode, quantization parameter (QP), bit depth, color format (e.g., 444/422/420), significant coefficient flag (both number and distribution), flag greater than 1 (i.e., more than 1) (both number and distribution), and flag greater than 2 (i.e., more than 2) (both number and distribution). The information may also be explicitly signaled.

在初始化用于当前CG的莱斯参数之后,可在译码当前CG中的至少一系数的系数层级的剩余绝对值之后,使用由莱斯参数定义的码(例如,哥伦布莱斯码或指数哥伦布码)更新莱斯参数的初始值。可在更新莱斯参数的值之前或之后,基于当前CG中的一或多个系数层级,确定用于基于统计的莱斯参数初始化方案的统计。After initializing the Rice parameters for the current CG, the initial values of the Rice parameters may be updated using a code (e.g., a Golomblais code or an exponential Golomb code) defined by the Rice parameters after coding the remaining absolute values of the coefficient levels of at least one coefficient in the current CG. Statistics for a statistics-based Rice parameter initialization scheme may be determined based on one or more coefficient levels in the current CG before or after updating the values of the Rice parameters.

在一些实例中,统计可基于当前CG中的经译码系数层级及用于当前CG的莱斯参数的当前值的比较或计算。如下给出基于系数层级及莱斯参数值的统计的一实例。In some examples, statistics may be based on a comparison or calculation of the coded coefficient levels in the current CG and the current values of the Rice parameters used for the current CG. An example of statistics based on coefficient levels and Rice parameter values is given below.

在上文的伪码中,“UndershootCnt”、“OvershootCnt”及“TotalCnt”表示将用于初始化莱斯参数的统计。另外,“uiGoRiceParam”表示莱斯参数的值,“s”为参数,且absCoeff[idx]为索引idx处的系数的系数层级的绝对值。In the pseudo code above, "UndershootCnt", "OvershootCnt" and "TotalCnt" represent the statistics that will be used to initialize the Rice parameters. In addition, "uiGoRiceParam" represents the value of the Rice parameter, "s" is the parameter, and absCoeff[idx] is the absolute value of the coefficient level of the coefficient at index idx.

在一些实例中,可在更新莱斯参数的值之前确定统计。在此状况下,在用于确定统计的比较或计算中使用莱斯参数的未经更新值。如下给出基于系数层级及莱斯参数的未经更新值确定统计,且接着更新莱斯参数的值的实例组合。In some examples, statistics can be determined before the value of the Rice parameter is updated. In this case, the unupdated value of the Rice parameter is used in the comparison or calculation for determining the statistics. An example combination of determining statistics based on the coefficient level and the unupdated value of the Rice parameter, and then updating the value of the Rice parameter is given below.

在上文的伪码中,“MAX_RICE_PARAM”表示莱斯参数的最大值,且min<UInt>()为选择最小值的函数。在一些实例中,莱斯参数的最大值可等于至少4的整数值。在其它实例中,可在更新莱斯参数的值之后确定统计。在此状况下,在用于确定统计的比较或计算中使用莱斯参数的经更新值。In the pseudo code above, "MAX_RICE_PARAM" represents the maximum value of the Rice parameter, and min<UInt>() is a function that selects the minimum value. In some instances, the maximum value of the Rice parameter may be equal to an integer value of at least 4. In other instances, statistics may be determined after updating the value of the Rice parameter. In this case, the updated value of the Rice parameter is used in the comparison or calculation for determining the statistics.

在一些实例中,可将对用于上文所描述的基于统计的莱斯参数初始化方案的统计的更新与莱斯参数的更新整合在一起。如上文所论述,在HEVC中,可基于莱斯参数的初始值及当前CG中正经译码的系数的系数层级的绝对值,有条件地更新莱斯参数的初始值。在译码当前CG中的系数的每一剩余绝对层级之后,可继续有条件地更新莱斯参数的值。如下给出HEVC条件性更新方案。In some examples, the update of the statistics used for the statistics-based Rice parameter initialization scheme described above can be integrated with the update of the Rice parameters. As discussed above, in HEVC, the initial values of the Rice parameters can be conditionally updated based on the initial values of the Rice parameters and the absolute values of the coefficient levels of the coefficients being decoded in the current CG. After decoding each remaining absolute level of the coefficients in the current CG, the values of the Rice parameters can continue to be conditionally updated. The HEVC conditional update scheme is given as follows.

在上文的伪码中,“uiGoRiceParam”表示莱斯参数的值,absCoeff[idx]为索引idx处的系数的系数层级的绝对值,“MAX_RICE_PARAM”表示莱斯参数的最大值,且min<UInt>()为选择最小值的函数。In the above pseudocode, "uiGoRiceParam" represents the value of the Rice parameter, absCoeff[idx] is the absolute value of the coefficient level of the coefficient at index idx, "MAX_RICE_PARAM" represents the maximum value of the Rice parameter, and min<UInt>() is a function that selects the minimum value.

在一些实例中,可将对用于在后续CG的开始处初始化莱斯参数的值的统计的更新与基于当前CG的系数层级的莱斯参数更新整合在一起。如下为统计及莱斯参数值的整合式更新的实例。In some examples, the update of the statistics used to initialize the values of Rice parameters at the beginning of the subsequent CG can be integrated with the update of the Rice parameters based on the coefficient level of the current CG. The following is an example of the integrated update of statistics and Rice parameter values.

在上文的伪码中,“UndershootCnt++”表示统计的更新。In the pseudo code above, "UndershootCnt++" indicates the update of statistics.

在一些实例中,基于用于统计的参数中的部分或所有,计算用于下一译码单元(例如,4×4CG、TU或CU)的莱斯参数的经更新值(或相比于预测值(例如,莱斯参数的当前值)的德耳塔(delta)值)。举例来说,在一实例中,OvershootCnt的值愈高,经更新莱斯参数的值愈小。在另一实例中,UndershootCnt的值愈高,经更新莱斯参数的值愈大。In some examples, based on some or all of the parameters used for statistics, an updated value of a Rice parameter for the next decoding unit (e.g., a 4×4 CG, TU, or CU) (or a delta value compared to a predicted value (e.g., a current value of a Rice parameter)) is calculated. For example, in one example, the higher the value of OvershootCnt, the smaller the value of the updated Rice parameter. In another example, the higher the value of UndershootCnt, the larger the value of the updated Rice parameter.

下文描述基于视频数据的位深度或另一特性,初始化用于每一CG的莱斯参数的若干实例。在这些实例中,对用于每一CG的莱斯参数的初始化并不取决于所收集统计。如在上文所描述的基于统计的莱斯参数初始化方案中,可针对每一CG(例如,4×4变换块或变换块的4×4子块)执行莱斯参数初始化,或可针对每一TU仅执行一次初始化(例如,在TU的开始处)。The following describes several examples of initializing the Rice parameters for each CG based on the bit depth or another characteristic of the video data. In these examples, the initialization of the Rice parameters for each CG does not depend on the collected statistics. As in the statistics-based Rice parameter initialization scheme described above, Rice parameter initialization can be performed for each CG (e.g., a 4×4 transform block or a 4×4 sub-block of a transform block), or can be performed only once for each TU (e.g., at the beginning of the TU).

在一个实例中,莱斯参数的初始值可改为基于视频数据的位深度。以下为用于每一CG的莱斯参数的初始值cRiceParam为CG的当前分量(例如,亮度分量或色度分量中的一者)的位深度的函数的实例。In one example, the initial value of the Rice parameter may be based on the bit depth of the video data instead. The following is an example where the initial value cRiceParam of the Rice parameter for each CG is a function of the bit depth of the current component of the CG (e.g., one of the luminance component or the chrominance component).

cRiceParam=max(0,bitDepth-n)cRiceParam=max(0,bitDepth-n)

在上文的等式中,bitDepth为当前分量的位深度,且n为参数。在一个实例中,可将参数n设定为等于9。In the above equation, bitDepth is the bit depth of the current component, and n is a parameter. In one example, the parameter n can be set to 9.

在另一实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于CG的分量类型(例如,明度或色度)。在另一实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于是否以变换量化绕过模式(其中,跳过变换及量化两者)译码当前块。在另一实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于是否以变换跳过模式(其中跳过变换但可应用量化)译码当前块。在另一实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于用于TU的量化参数(QP)。在另一实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于视频数据的色彩分量及/或色彩空间。In another example, the initial value cRiceParam of the Rice parameter for each CG may depend on the component type of the CG (e.g., luma or chroma). In another example, the initial value cRiceParam of the Rice parameter for each CG may depend on whether the current block is coded in transform quantization bypass mode (in which both transform and quantization are skipped). In another example, the initial value cRiceParam of the Rice parameter for each CG may depend on whether the current block is coded in transform skip mode (in which transform is skipped but quantization may be applied). In another example, the initial value cRiceParam of the Rice parameter for each CG may depend on the quantization parameter (QP) used for the TU. In another example, the initial value cRiceParam of the Rice parameter for each CG may depend on the color component and/or color space of the video data.

在另一实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于CU大小、TU大小、帧分辨率、帧速率、预测模式(例如,帧内、帧间、帧内BC(帧内块复制))、帧类型及横向分量残余预测的模式及权重中的一或多者。横向分量残余预测的模式及权重的实例描述于2013年7月15日申请的美国临时申请案第61/846,581号、2013年7月18日申请的美国临时申请案第61/847,839号、2013年5月22日申请的美国临时申请案第61/826,396号,及2013年6月21日申请的美国临时申请案第61/838,152号中。In another example, the initial value cRiceParam of the Rice parameter for each CG may depend on one or more of the CU size, the TU size, the frame resolution, the frame rate, the prediction mode (e.g., intra, inter, intra BC (intra block copy)), the frame type, and the mode and weight of the horizontal component residual prediction. Examples of the mode and weight of the horizontal component residual prediction are described in U.S. Provisional Application No. 61/846,581, filed on July 15, 2013, U.S. Provisional Application No. 61/847,839, filed on July 18, 2013, U.S. Provisional Application No. 61/826,396, filed on May 22, 2013, and U.S. Provisional Application No. 61/838,152, filed on June 21, 2013.

以下将HEVC用作实例,提供关于coeff_abs_level_greater1旗标及coeff_abs_level_greater2旗标的一些背景信息。在HEVC中,对于CG(例如,4×4子块),首先译码有效性映射以指示具有非零系数层级的系数的位置。接着,对于具有有效系数的位置,可编码coeff_abs_level_greater1旗标以指示系数的绝对值是否超过1。对于coeff_abs_level_greater1=1的位置,可编码coeff_abs_level_greater2旗标以指示系数的绝对值是否超过2。The following uses HEVC as an example to provide some background information about the coeff_abs_level_greater1 flag and the coeff_abs_level_greater2 flag. In HEVC, for a CG (e.g., a 4x4 sub-block), a significance map is first coded to indicate the positions of coefficients with non-zero coefficient levels. Then, for positions with significant coefficients, the coeff_abs_level_greater1 flag may be coded to indicate whether the absolute value of the coefficient exceeds 1. For positions where coeff_abs_level_greater1=1, the coeff_abs_level_greater2 flag may be coded to indicate whether the absolute value of the coefficient exceeds 2.

在一些实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于具有有效(即非零)值的先前经译码系数层级的数目(可通过等于0抑或1的coeff_abs_level_greater1旗目标译码指示所述数目),及/或具有大于1的值的先前经译码系数层级的数目(可通过等于0抑或1的coeff_abs_level_greater2旗目标译码指示所述数目)。在其它实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于具有大于1的值的先前经译码系数层级的数目(通过译码coeff_abs_level_greater1=1指示所述数目),及/或具有大于2的值的先前经译码系数层级的数目(通过译码coeff_abs_level_greater2=1指示所述数目)。In some examples, the initial value cRiceParam of the Rice parameter for each CG may depend on the number of previously coded coefficient levels with valid (i.e., non-zero) values (the number may be indicated by coding the coeff_abs_level_greater1 flag equal to 0 or 1), and/or the number of previously coded coefficient levels with values greater than 1 (the number may be indicated by coding the coeff_abs_level_greater2 flag equal to 0 or 1). In other examples, the initial value cRiceParam of the Rice parameter for each CG may depend on the number of previously coded coefficient levels with values greater than 1 (the number may be indicated by coding coeff_abs_level_greater1=1), and/or the number of previously coded coefficient levels with values greater than 2 (the number may be indicated by coding coeff_abs_level_greater2=1).

在另一实例中,用于每一CG的莱斯参数的初始值cRiceParam可取决于上文实例的任何组合。下文给出基于视频数据的位深度确定莱斯参数的初始值的两个详细实例。In another example, the initial value cRiceParam of the Rice parameter for each CG may depend on any combination of the above examples. Two detailed examples of determining the initial value of the Rice parameter based on the bit depth of the video data are given below.

实例1:Example 1:

offset=(iQP+6*(BD-12)+12)/6offset=(iQP+6*(BD-12)+12)/6

在上文的伪码中,iQP为QP值,且BD为视频数据的位深度。在此第一实例中,当CG包含于以变换跳过模式抑或变换量化绕过模式译码的变换块中时,基于第一等式设定莱斯参数的初始值,且当CG包含于经变换译码块中时,基于第二等式设定莱斯参数的初始值。在任一状况下,基于视频数据的位深度(BD)确定初始值。In the pseudo code above, iQP is the QP value, and BD is the bit depth of the video data. In this first example, when the CG is included in a transform block coded in either transform skip mode or transform quantization bypass mode, the initial value of the Rice parameter is set based on the first equation, and when the CG is included in a transform-coded block, the initial value of the Rice parameter is set based on the second equation. In either case, the initial value is determined based on the bit depth (BD) of the video data.

实例2:Example 2:

offset=8-Gr1offset=8-Gr1

在上文的伪码中,Gr1为经译码的coeff_abs_level_greater1旗目标数目,且BD为视频数据的位深度。在此第二实例中,当CG包含于以变换跳过模式抑或变换量化绕过模式译码的变换块中时,基于第一等式设定莱斯参数的初始值,且当CG包含于经变换译码块中时,基于第二等式设定莱斯参数的初始值。在任一状况下,基于视频数据的位深度(BD)确定初始值。In the pseudo code above, Gr1 is the target number of coded coeff_abs_level_greater1 flags, and BD is the bit depth of the video data. In this second example, when CG is included in a transform block coded in either transform skip mode or transform quantization bypass mode, the initial value of the Rice parameter is set based on the first equation, and when CG is included in a transform-coded block, the initial value of the Rice parameter is set based on the second equation. In either case, the initial value is determined based on the bit depth (BD) of the video data.

下文描述将根据上文所描述的实例的任何组合的针对每一CG的莱斯参数初始化与偏移值的显式发信号组合的混合方案的实例。举例来说,可将用于在CG的开始处初始化莱斯参数的偏移分解成两个部分的和:(1)常数偏移及(2)适应性偏移。可使用本发明中所描述的实例技术中的一或多者导出适应性偏移。可在位流中将常数偏移从视频编码器20用信号发出到视频解码器30。The following describes an example of a hybrid scheme that combines Rice parameter initialization for each CG according to any combination of the examples described above with explicit signaling of offset values. For example, the offset used to initialize the Rice parameters at the beginning of the CG can be decomposed into the sum of two parts: (1) a constant offset and (2) an adaptive offset. The adaptive offset can be derived using one or more of the example techniques described in this disclosure. The constant offset can be signaled from the video encoder 20 to the video decoder 30 in the bitstream.

作为另一实例,为将显式莱斯参数发信号与本发明中所描述的初始莱斯参数推导过程组合,是否用信号发出莱斯参数的确定可取决于在视频编码器20处所导出的初始莱斯参数值。举例来说,如果所导出的初始莱斯参数值类似于预定义值(例如,导出值与临限值之间的差小于临限值),则可能并不将莱斯参数用信号发出到视频解码器30,但实际上可如上文所描述地导出莱斯参数。在此状况下,可将导出值抑或预定义值用作莱斯参数的初始值。否则,可用信号发出莱斯参数的初始值,或可用信号发出莱斯参数的初始值与预定义值之间的差。发信号技术的一些额外实例可发现于2013年8月26日申请的美国临时申请案第61/870,120号、2013年9月20日申请的美国临时申请案第61/880,616号,及2013年10月11日申请的美国临时申请案第61/889,654号中。As another example, to combine explicit Rice parameter signaling with the initial Rice parameter derivation process described in this disclosure, the determination of whether to signal a Rice parameter may depend on the initial Rice parameter value derived at the video encoder 20. For example, if the derived initial Rice parameter value is similar to a predefined value (e.g., the difference between the derived value and the threshold value is less than the threshold value), the Rice parameter may not be signaled to the video decoder 30, but the Rice parameter may actually be derived as described above. In this case, either the derived value or the predefined value may be used as the initial value of the Rice parameter. Otherwise, the initial value of the Rice parameter may be signaled, or the difference between the initial value and the predefined value of the Rice parameter may be signaled. Some additional examples of signaling techniques can be found in U.S. Provisional Application No. 61/870,120, filed August 26, 2013, U.S. Provisional Application No. 61/880,616, filed September 20, 2013, and U.S. Provisional Application No. 61/889,654, filed October 11, 2013.

下文描述关于莱斯参数初始化方案的上文所描述实例的若干额外实例及考虑因素。尽管可基本上个别地描述本发明的技术及/或将其描述为与其它技术的特定组合的部分,但本发明中所描述的技术中的任何两者或两者以上可所述此组合。另外,分别实施本发明中所描述的技术中的任一者可为有可能的。The following describes several additional examples and considerations for the above-described examples of Rice parameter initialization schemes. Although the techniques of this disclosure may be described essentially individually and/or as part of a specific combination with other techniques, any two or more of the techniques described in this disclosure may describe such a combination. Additionally, it may be possible to implement any of the techniques described in this disclosure separately.

对于有损译码状况,可仅将基于统计的莱斯参数初始化方案应用于变换跳过块,如以下条件性等式中所展示。另一方面,当变换已应用于变换块时,根据HEVC初始化方案将莱斯参数初始化为零。For lossy decoding conditions, the statistics-based Rice parameter initialization scheme can be applied only to transform skip blocks, as shown in the following conditional equation. On the other hand, when the transform has been applied to the transform block, the Rice parameters are initialized to zero according to the HEVC initialization scheme.

cRiceParam=isTransformSkip?0:g_golombTab[min(statCoeff[TYPE],31)];cRiceParam=isTransformSkip? 0:g_golombTab[min(statCoeff[TYPE],31)];

在其它实例中,可仅将基于统计的莱斯参数初始化方案应用于变换跳过块,但当变换已应用于块时,可不必要将莱斯参数自动地初始化为零,如以下等式中所展示。In other examples, the statistics-based Rice parameter initialization scheme may be applied only to transform skip blocks, but when the transform has been applied to the block, it may not be necessary to automatically initialize the Rice parameters to zero, as shown in the following equation.

cRiceParam=isTransformSkip?max(cRiceParam-1,0):cRiceParam=isTransformSkip? max(cRiceParam-1,0):

g_golombTab[min(statCoeff[TYPE],31)];g_golombTab[min(statCoeff[TYPE],31)];

在一些实例中,可停用执行于CG内的HEVC莱斯参数更新方案。实际上,可根据上文所描述的实例技术中的任何组合确定莱斯参数的初始值,且接着可在整个块中使用莱斯参数的所述初始值。在其它实例中,可在CG内执行不同的莱斯参数更新方案。在一些状况下,可在整个块中,根据给定次序或作为整合式方法而使用上文所描述的实例技术中的一或多者,以执行莱斯参数更新及统计更新。又,在一些状况下,可在整个块中使用上文所描述的实例技术中的一或多者,以执行莱斯参数的位深度相依性初始化。In some examples, the HEVC Rice parameter update scheme executed in the CG may be disabled. In fact, the initial value of the Rice parameter may be determined according to any combination of the example techniques described above, and then the initial value of the Rice parameter may be used in the entire block. In other examples, different Rice parameter update schemes may be executed in the CG. In some cases, one or more of the example techniques described above may be used in the entire block in a given order or as an integrated method to perform Rice parameter updates and statistical updates. Again, in some cases, one or more of the example techniques described above may be used in the entire block to perform bit depth dependency initialization of Rice parameters.

尽管上文分别描述确定莱斯参数的初始值的实例方法,但本发明的技术并不限于此情况。一般来说,上文所描述的实例技术的各种组合可为有可能的。也可分别实施上文所描述的实例方法。另外,上文所描述的方法中的所有或其组合可应用于所有变换块内的CG,或仅应用于跳过或绕过变换的变换块。Although the example methods for determining the initial values of the Rice parameters are described above separately, the technology of the present invention is not limited to this case. In general, various combinations of the example techniques described above may be possible. The example methods described above may also be implemented separately. In addition, all or a combination of the methods described above may be applied to CGs within all transform blocks, or only to transform blocks that skip or bypass transforms.

图5为说明可实施本发明中所描述的用于编码系数层级的技术的视频编码器20的实例的框图。出于说明的目的,将在HEVC译码的上下文中描述视频编码器20,但本发明关于可要求扫描变换系数的其它译码标准或方法不受限制。视频编码器20可执行视频帧内的CU的帧内译码及帧间译码。帧内译码依赖于空间预测,以减少或移除给定视频帧内的视频数据中的空间冗余。帧间译码依赖于时间预测,以减少或移除在视频序列的当前帧与先前经译码帧之间的时间冗余。帧内模式(I模式)可指若干基于空间的视频压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指若干基于时间的视频压缩模式中的任一者。FIG5 is a block diagram illustrating an example of a video encoder 20 that may implement the techniques for encoding coefficient levels described in this disclosure. For illustrative purposes, the video encoder 20 will be described in the context of HEVC coding, but this disclosure is not limited with respect to other coding standards or methods that may require scan transform coefficients. The video encoder 20 may perform intra-coding and inter-coding of CUs within a video frame. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy in video data within a given video frame. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy between a current frame and a previously coded frame of a video sequence. Intra-mode (I-mode) may refer to any of several spatially-based video compression modes. Inter-mode, such as unidirectional prediction (P-mode) or bidirectional prediction (B-mode), may refer to any of several temporally-based video compression modes.

如图5中所展示,视频编码器20接收待编码的视频帧内的当前视频块。在图5的实例中,视频编码器20包含模式选择单元40、视频数据存储器41、运动补偿单元44、运动估计单元42、帧内预测处理单元46、经解码图片缓冲器(DPB)64、求和器50、变换处理单元52、量化单元54及熵编码单元56。图5中所说明的变换处理单元52为将实际变换或变换的组合应用于残余数据的块的单元,且不应与变换系数的块(其也可被称作CU的变换单元(TU))混淆。为了进行视频块重建构,视频编码器20也包含反量化单元58、反变换处理单元60及求和器62。也可包含解块滤波器(图5中未展示),以滤波块边界来自经重建构的视频移除成块效应假影。如果需要,则解块滤波器将通常对求和器62的输出进行滤波。As shown in FIG5 , video encoder 20 receives a current video block within a video frame to be encoded. In the example of FIG5 , video encoder 20 includes a mode select unit 40, a video data memory 41, a motion compensation unit 44, a motion estimation unit 42, an intra-prediction processing unit 46, a decoded picture buffer (DPB) 64, a summer 50, a transform processing unit 52, a quantization unit 54, and an entropy encoding unit 56. The transform processing unit 52 illustrated in FIG5 is a unit that applies an actual transform or a combination of transforms to a block of residual data and should not be confused with a block of transform coefficients (which may also be referred to as a transform unit (TU) for a CU). To perform video block reconstruction, video encoder 20 also includes an inverse quantization unit 58, an inverse transform processing unit 60, and a summer 62. A deblocking filter (not shown in FIG5 ) may also be included to filter block boundaries to remove blockiness artifacts from the reconstructed video. If necessary, the deblocking filter will typically filter the output of summer 62.

视频数据存储器41可存储待由视频编码器20的组件编码的视频数据。可(例如)从视频源18获得存储于视频数据存储器41中的视频数据。经解码图片缓冲器64可为存储用于由视频编码器20在编码视频数据(例如,以帧内或帧间译码模式)时使用的参考视频数据的参考图片存储器。视频数据存储器41及经解码图片缓冲器64可由多种存储器装置中的任一者形成,例如动态随机接入存储器(DRAM),包含同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。可由同一存储器装置或单独存储器装置提供视频数据存储器41及经解码图片缓冲器64。在各种实例中,视频数据存储器41可与视频编码器20的其它组件一起在芯片上,或相对于那些组件芯片外。Video data memory 41 may store video data to be encoded by components of video encoder 20. The video data stored in video data memory 41 may be obtained, for example, from video source 18. Decoded picture buffer 64 may be a reference picture memory that stores reference video data for use by video encoder 20 when encoding video data (e.g., in intra- or inter-coding modes). Video data memory 41 and decoded picture buffer 64 may be formed from any of a variety of memory devices, such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. Video data memory 41 and decoded picture buffer 64 may be provided by the same memory device or separate memory devices. In various examples, video data memory 41 may be on-chip with other components of video encoder 20, or off-chip relative to those components.

在编码过程期间,视频编码器20接收待译码的视频帧或切片。可将帧或切片划分成多个视频块,例如最大译码单元(LCU)。运动估计单元42及运动补偿单元44相对于一或多个参考帧中的一或多个块,来执行所接收视频块的帧间预测译码以提供时间压缩。帧内预测处理单元46可相对于与待译码块相同的帧或切片中的一或多个相邻块,执行所接收视频块的帧内预测译码以提供空间压缩。During the encoding process, video encoder 20 receives a video frame or slice to be coded. The frame or slice may be divided into multiple video blocks, such as largest coding units (LCUs). Motion estimation unit 42 and motion compensation unit 44 perform inter-predictive coding of the received video block relative to one or more blocks in one or more reference frames to provide temporal compression. Intra-prediction processing unit 46 may perform intra-predictive coding of the received video block relative to one or more neighboring blocks in the same frame or slice as the block to be coded to provide spatial compression.

模式选择单元40可选择译码模式(帧内或帧间)中的一者(例如,基于每一模式的误差(即,失真)结果),并将所得的经帧内或帧间预测块(例如,预测单元(PU))提供到求和器50以产生残余块数据,及提供到求和器62以重建构经编码块以用于参考图片。求和器62组合经预测块与针对所述块的来自反变换单元60的经反量化、经反变换数据,以重建构经编码块,如下文所较详细描述。可将一些视频帧指定为I帧,其中以帧内预测模式编码I帧中的全部块。在一些状况下,(例如)当由运动估计单元42执行的运动搜寻并未带来对块的充分预测时,帧内预测处理单元46可执行P或B帧中的块的帧内预测编码。Mode select unit 40 may select one of the coding modes (intra or inter) (e.g., based on the error (i.e., distortion) results of each mode) and provide the resulting intra- or inter-predicted block (e.g., prediction unit (PU)) to summer 50 to generate residual block data and to summer 62 to reconstruct the encoded block for the reference picture. Summer 62 combines the predicted block with the inverse quantized, inverse transformed data for that block from inverse transform unit 60 to reconstruct the encoded block, as described in more detail below. Some video frames may be designated as I-frames, in which all blocks in the I-frame are encoded in intra-prediction mode. In some cases, intra-prediction processing unit 46 may perform intra-prediction encoding of a block in a P or B frame, e.g., when a motion search performed by motion estimation unit 42 does not result in a sufficient prediction for the block.

运动估计单元42及运动补偿单元44可高度整合,但出于概念目的而单独说明。运动估计(或运动搜寻)为产生运动向量的过程,所述运动向量估计视频块的运动。举例来说,运动向量可指示当前帧中的预测单元相对于参考帧的参考样本的移位。运动估计单元42通过比较预测单元与存储于经解码图片缓冲器64中的参考图片的参考样本,而计算经帧间译码帧的预测单元的运动向量。参考样本可为发现紧密匹配包含依据像素差而译码的PU的CU的部分的块,可通过绝对差总和(SAD)、平方差总和(SSD)或其它差异度量确定像素差。参考样本可出现于参考帧或参考切片内的任何处,且未必出现于参考帧或切片的块(例如,译码单元)边界处。在一些实例中,参考样本可出现于分率像素位置处。Motion estimation unit 42 and motion compensation unit 44 may be highly integrated but are described separately for conceptual purposes. Motion estimation (or motion search) is the process of generating motion vectors, which estimate the motion of video blocks. For example, a motion vector may indicate the displacement of a prediction unit in a current frame relative to a reference sample of a reference frame. Motion estimation unit 42 calculates the motion vector for a prediction unit in an inter-coded frame by comparing the prediction unit with reference samples of a reference picture stored in decoded picture buffer 64. The reference sample may be a block found to closely match a portion of a CU including a PU coded based on pixel differences, which may be determined by sum of absolute differences (SAD), sum of squared differences (SSD), or other disparity metrics. The reference sample may occur anywhere within a reference frame or reference slice and does not necessarily occur at block (e.g., coding unit) boundaries of the reference frame or slice. In some examples, the reference sample may occur at a fractional pixel location.

运动估计单元42将经计算运动向量发送到熵编码单元56及运动补偿单元44。由运动向量所识别的参考帧的部分可称作参考样本。运动补偿单元44可(例如)通过检索由PU的运动向量所识别的参考样本来计算用于当前CU的预测单元的预测值。Motion estimation unit 42 sends the calculated motion vector to entropy encoding unit 56 and motion compensation unit 44. The portion of the reference frame identified by the motion vector may be referred to as a reference sample. Motion compensation unit 44 may calculate prediction values for the prediction unit of the current CU, for example, by retrieving the reference samples identified by the motion vector of the PU.

作为对由运动估计单元42及运动补偿单元44执行的帧间预测的替代方案,帧内预测处理单元46可对所接收块进行帧内预测。帧内预测处理单元46可相对于相邻的先前经译码块(例如,当前块上方、右上方、左上方或左方的块)预测所接收块,从而假定用于块的由左到右、由顶到底的编码次序。帧内预测处理单元46可经配置具有多种不同帧内预测模式。举例来说,基于正经编码的CU的大小,帧内预测处理单元46可经配置具有一定数目的方向预测模式,例如,三十三个方向预测模式。As an alternative to the inter-prediction performed by motion estimation unit 42 and motion compensation unit 44, intra-prediction processing unit 46 may perform intra-prediction on the received block. Intra-prediction processing unit 46 may predict the received block relative to neighboring, previously coded blocks (e.g., blocks above, to the right, above, to the left, or to the left of the current block), assuming a left-to-right, top-to-bottom coding order for the blocks. Intra-prediction processing unit 46 may be configured with a variety of different intra-prediction modes. For example, based on the size of the CU being encoded, intra-prediction processing unit 46 may be configured with a number of directional prediction modes, e.g., thirty-three directional prediction modes.

帧内预测处理单元46可通过(例如)计算各种帧内预测模式的误差值,及选择产生最低误差值的模式来选择帧内预测模式。方向预测模式可包含用于组合空间相邻像素的值,并将组合值应用于PU中的一或多个像素位置的功能。一旦已计算PU中的所有像素位置的值,帧内预测处理单元46可基于PU与待编码的所接收块之间的像素差而计算预测模式的误差值。帧内预测处理单元46可继续测试帧内预测模式,直至发现产生可接受的误差值的帧内预测模式。接着,帧内预测处理单元46可将PU发送到求和器50。Intra-prediction processing unit 46 may select an intra-prediction mode by, for example, calculating error values for various intra-prediction modes and selecting the mode that produces the lowest error value. Directional prediction modes may include functionality for combining values of spatially neighboring pixels and applying the combined value to one or more pixel positions in a PU. Once values for all pixel positions in a PU have been calculated, intra-prediction processing unit 46 may calculate an error value for the prediction mode based on pixel differences between the PU and the received block to be encoded. Intra-prediction processing unit 46 may continue testing intra-prediction modes until an intra-prediction mode that produces an acceptable error value is found. Intra-prediction processing unit 46 may then send the PU to summer 50.

视频编码器20通过从正经译码的原始视频块,减去由运动补偿单元44或帧内预测处理单元46所计算的预测数据而形成残余块。求和器50表示执行此减法运算的(多个)组件。残余块可对应于像素差值的二维矩阵,其中残余块中的值的数目与对应于残余块的PU中的像素的数目相同。残余块中的值可对应于PU中与待译码原始块中的协同定位的像素的值之间的差(即,误差)。取决于经译码块的类型,所述差可为色度差或明度差。Video encoder 20 forms a residual block by subtracting the prediction data calculated by motion compensation unit 44 or intra-prediction processing unit 46 from the original video block being coded. Summer 50 represents the component(s) that perform this subtraction operation. The residual block may correspond to a two-dimensional matrix of pixel difference values, where the number of values in the residual block is the same as the number of pixels in the PU corresponding to the residual block. The values in the residual block may correspond to the differences (i.e., errors) between the values of the co-located pixels in the PU and the original block to be coded. The differences may be chrominance differences or luma differences, depending on the type of block being coded.

变换处理单元52可从残余块形成一或多个变换单元(TU)。变换处理单元52从多个变换选择变换。举例来说,变换处理单元52可选择离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、K-L变换或另一变换中的一者,以产生变换系数。可基于一或多个译码特性(例如,块大小、译码模式或类似者)选择变换。接着,变换处理单元52将所选定变换应用于TU,从而产生包括变换系数的二维阵列的视频块。变换处理单元52可将所得的变换系数发送到量化单元54。接着,量化单元54可量化变换系数。Transform processing unit 52 may form one or more transform units (TUs) from the residual block. Transform processing unit 52 selects a transform from a plurality of transforms. For example, transform processing unit 52 may select one of a discrete cosine transform (DCT), a discrete sine transform (DST), an integer transform, a K-L transform, or another transform to generate transform coefficients. The transform may be selected based on one or more coding characteristics, such as block size, coding mode, or the like. Transform processing unit 52 then applies the selected transform to the TU, generating a video block comprising a two-dimensional array of transform coefficients. Transform processing unit 52 may send the resulting transform coefficients to quantization unit 54. Quantization unit 54 then quantizes the transform coefficients.

接着,熵编码单元56可根据扫描模式对矩阵中的系数执行扫描。在有损译码的状况下,系数可为经量化的变换系数。在无损译码或具有变换跳过或绕过的有损译码的状况下,系数可为尚未经变换或经量化的系数。本发明将熵编码单元56描述为执行扫描。然而,应理解,在其它实例中,例如量化单元54的其它处理单元可执行扫描。Next, entropy encoding unit 56 may perform a scan on the coefficients in the matrix according to a scan pattern. In the case of lossy coding, the coefficients may be quantized transform coefficients. In the case of lossless coding or lossy coding with transform skipping or bypassing, the coefficients may be coefficients that have not yet been transformed or quantized. This disclosure describes entropy encoding unit 56 as performing a scan. However, it should be understood that in other examples, other processing units, such as quantization unit 54, may perform the scan.

一旦将变换系数扫描到一维阵列中,熵编码单元56可将熵译码(例如CABAC、基于语法的上下文自适应性二进制算术译码(SBAC)、机率区间分割熵(PIPE)或另一熵译码方法)应用于系数。熵编码单元56可经配置以根据本发明的技术译码系数。在CABAC的实例中,熵编码单元56可使用常规译码模式抑或绕过模式编码系数。为执行CABAC,熵编码单元56可选择用以应用一定上下文的上下文模型,以编码待发射的符号。举例来说,所述上下文可关于相邻值是否为非零。熵编码单元56可基于(例如)帧内预测模式的帧内预测方向、对应于语法元素的系数的扫描位置、块类型及/或变换类型,以及用于上下文模型选择的其它因素,选择用于编码这些符号的上下文模型。Once the transform coefficients are scanned into a one-dimensional array, entropy encoding unit 56 may apply entropy coding (e.g., CABAC, syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE), or another entropy coding method) to the coefficients. Entropy encoding unit 56 may be configured to code the coefficients according to the techniques of this disclosure. In the example of CABAC, entropy encoding unit 56 may encode the coefficients using either a normal coding mode or a bypass mode. To perform CABAC, entropy encoding unit 56 may select a context model to apply a certain context to encode the symbols to be transmitted. For example, the context may relate to whether neighboring values are non-zero. Entropy encoding unit 56 may select a context model for encoding these symbols based on, for example, the intra-prediction direction for the intra-prediction mode, the scan position of the coefficients corresponding to the syntax element, the block type and/or transform type, and other factors used for context model selection.

熵编码单元56将残余视频数据的系数层级编码成位流,以用于发射到视频解码器或存储装置。在无损视频译码或具有变换跳过或绕过的有损视频译码的状况下,待编码的系数可具有具大绝对值的系数层级。当系数表示屏幕内容(其可包含图形及文本区域)时,可并未良好地预测内容,从而产生待编码的系数的系数层级的大绝对值。Entropy encoding unit 56 encodes the coefficient levels of the residual video data into a bitstream for transmission to a video decoder or storage device. In the case of lossless video coding or lossy video coding with transform skip or bypass, the coefficients to be encoded may have coefficient levels with large absolute values. When the coefficients represent screen content (which may include graphics and text areas), the content may not be well predicted, resulting in large absolute values of the coefficient levels of the coefficients to be encoded.

熵编码单元56使用由莱斯参数定义的码,以CABAC的绕过模式或另一熵译码引擎编码当前系数群组(CG)中的至少一系数的系数层级的剩余绝对值(例如,coeff_abs_level_remaining或levelRem)。根据本发明的技术,熵编码单元56经配置以基于先前经编码系数的系数层级的统计,确定用于当前CG的莱斯参数的初始值。统计可为先前经译码系数的系数层级的绝对值或系数层级的剩余绝对值的统计。本发明中所描述的基于统计的莱斯参数初始化方案允许莱斯参数快速且有效地适应于大系数值,此情况可发生于屏幕内容的块及具有变换跳过或绕过的块中。The entropy coding unit 56 encodes the residual absolute value of the coefficient level (e.g., coeff_abs_level_remaining or levelRem) of at least one coefficient in the current coefficient group (CG) in a bypass mode of CABAC or another entropy decoding engine using a code defined by the Rice parameter. According to the technology of the present invention, the entropy coding unit 56 is configured to determine the initial value of the Rice parameter for the current CG based on the statistics of the coefficient level of the previously encoded coefficient. The statistics may be the statistics of the absolute value of the coefficient level or the residual absolute value of the coefficient level of the previously decoded coefficient. The statistics-based Rice parameter initialization scheme described in this invention allows the Rice parameter to adapt quickly and efficiently to large coefficient values, which may occur in blocks of screen content and blocks with transform skipping or bypassing.

在一实例中,熵编码单元56可经配置以通过比较用于给定先前经编码系数的系数层级与统计的函数,且接着基于比较确定是增加抑或降低统计值而确定统计。可在视频数据的每一切片的开始处将统计值初始化为零,且熵编码单元56可按切片的每一CG更新一次统计。在一些实例中,熵编码单元56可经配置以针对多个不同类别的CG中的每一者,确定单独统计。可基于包含CG的变换块的特性(例如,变换块是否为明度块,及变换块是否为变换跳过块)定义类别。In one example, entropy encoding unit 56 may be configured to determine the statistic by comparing the coefficient level for a given previously encoded coefficient to a function of the statistic, and then determining whether to increase or decrease the statistic value based on the comparison. The statistic value may be initialized to zero at the beginning of each slice of video data, and entropy encoding unit 56 may update the statistic once for each CG of the slice. In some examples, entropy encoding unit 56 may be configured to determine a separate statistic for each of a plurality of different categories of CGs. The categories may be defined based on characteristics of the transform block that includes the CG, such as whether the transform block is a luma block and whether the transform block is a transform skip block.

在当前CG的开始处,熵编码单元56经配置以将统计值映射为用于当前CG的莱斯参数的初始值。在一实例中,熵编码单元56可根据基于莱斯参数的最大值或除以常数值的统计值中的最小者的选择的统计的函数,将统计值映像为初始莱斯参数值。上文较详细地描述用于莱斯参数初始化方案的表示统计收集、统计分割及统计映像过程的实例等式。At the beginning of the current CG, the entropy coding unit 56 is configured to map the statistical value to the initial value of the Rice parameter for the current CG. In one example, the entropy coding unit 56 may map the statistical value to the initial Rice parameter value according to a function of a statistic selected based on the minimum of the maximum value of the Rice parameter or the statistical value divided by a constant value. Example equations representing the statistical collection, statistical segmentation, and statistical mapping processes for the Rice parameter initialization scheme are described in more detail above.

在由熵编码单元56进行熵译码之后,可将所得的经编码视频发射到另一装置(例如,视频解码器30),或将所得的经编码视频封存以供稍后发射或检索。在一些状况下,除熵译码之外,熵编码单元56或视频编码器20的另一单元也可经配置以执行其它译码功能。Following entropy coding by entropy encoding unit 56, the resulting encoded video may be transmitted to another device, such as video decoder 30, or archived for later transmission or retrieval. In some cases, entropy encoding unit 56 or another unit of video encoder 20 may be configured to perform other coding functions in addition to entropy coding.

反量化单元58及反变换处理单元60分别应用反量化及反变换,以在像素域中重建构残余块(例如)以供稍后用作参考块。运动补偿单元44可通过将残余块加至经解码图片缓冲器64的参考图片中的一者的预测性块而计算参考块。运动补偿单元44也可将一或多个内插滤波器应用于经重建构的残余块,以计算用于运动估计的子整数像素值。求和器62将经重建构的残余块加至由运动补偿单元44产生的经运动补偿的预测块,以产生用于存储于经解码图片缓冲器64中的经重建构的视频块。可由运动估计单元42及运动补偿单元44将经重建构的视频块用作用以帧间译码后续视频帧中的块的参考块。Inverse quantization unit 58 and inverse transform processing unit 60 apply inverse quantization and inverse transform, respectively, to reconstruct the residual block in the pixel domain, e.g., for later use as a reference block. Motion compensation unit 44 may calculate a reference block by adding the residual block to a predictive block of one of the reference pictures in decoded picture buffer 64. Motion compensation unit 44 may also apply one or more interpolation filters to the reconstructed residual block to calculate sub-integer pixel values for motion estimation. Summer 62 adds the reconstructed residual block to the motion compensated prediction block produced by motion compensation unit 44 to produce a reconstructed video block for storage in decoded picture buffer 64. The reconstructed video block may be used by motion estimation unit 42 and motion compensation unit 44 as a reference block for inter-coding a block in a subsequent video frame.

图6为说明可实施本发明中所描述的用于解码系数层级的技术的视频解码器30的实例的框图。在图6的实例中,视频解码器30包含熵解码单元70、视频数据存储器71、运动补偿单元72、帧内预测处理单元74、反量化单元76、反变换处理单元78、经解码图片缓冲器(DPB)82及求和器80。在一些实例中,视频解码器30可执行大体上与关于视频编码器20(参见图5)所描述的编码遍次互逆的解码遍次。FIG6 is a block diagram illustrating an example of a video decoder 30 that may implement the techniques for decoding coefficient layers described in this disclosure. In the example of FIG6 , video decoder 30 includes an entropy decoding unit 70, a video data memory 71, a motion compensation unit 72, an intra-prediction processing unit 74, an inverse quantization unit 76, an inverse transform processing unit 78, a decoded picture buffer (DPB) 82, and a summer 80. In some examples, video decoder 30 may perform a decoding pass that is generally reciprocal to the encoding pass described with respect to video encoder 20 (see FIG5 ).

视频数据存储器71可存储待由视频解码器30的组件解码的视频数据,例如经编码视频位流。可(例如)经由视频数据的有线或无线网络通信从计算机可读媒体16(例如,从本端视频源,例如摄影机)或通过接入实体数据存储媒体而获得存储于视频数据存储器71中的视频数据。视频数据存储器71可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(CPB)。经解码图片缓冲器82可为存储用于由视频解码器30在解码视频数据(例如,以帧内或帧间译码模式)时使用的参考视频数据的参考图片存储器。视频数据存储器71及经解码图片缓冲器82可由多种存储器装置中的任一者形成,例如动态随机接入存储器(DRAM),包含同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。可由相同存储器装置或单独存储器装置提供视频数据存储器71及经解码图片缓冲器82。在各种实例中,视频数据存储器71可与视频解码器30的其它组件一起在芯片上,或相对于那些组件来说在芯片外。Video data memory 71 may store video data, such as an encoded video bitstream, to be decoded by components of video decoder 30. The video data stored in video data memory 71 may be obtained, for example, from computer-readable medium 16 (e.g., from a local video source, such as a camera) via wired or wireless network communication of video data, or by accessing physical data storage media. Video data memory 71 may form a coded picture buffer (CPB) that stores encoded video data from the encoded video bitstream. Decoded picture buffer 82 may be a reference picture memory that stores reference video data for use by video decoder 30 when decoding video data (e.g., in intra- or inter-coding modes). Video data memory 71 and decoded picture buffer 82 may be formed from any of a variety of memory devices, such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. Video data memory 71 and decoded picture buffer 82 may be provided by the same memory device or separate memory devices. In various examples, video data memory 71 may be on-chip with other components of video decoder 30 , or off-chip relative to those components.

熵解码单元70对经编码位流执行熵解码过程,以检索残余视频数据系数的一维阵列。所使用的熵解码过程取决于由视频编码器20使用的熵译码(例如,CABAC)。可在经编码位流中用信号发出由编码器使用的熵译码过程,或熵译码过程可为预定过程。熵解码单元70可经配置以根据本发明的技术解码系数。在CABAC的实例中,熵解码单元70可使用常规译码模式或绕过模式解码系数。Entropy decoding unit 70 performs an entropy decoding process on the encoded bitstream to retrieve a one-dimensional array of residual video data coefficients. The entropy decoding process used depends on the entropy coding (e.g., CABAC) used by video encoder 20. The entropy coding process used by the encoder may be signaled in the encoded bitstream, or the entropy coding process may be a predetermined process. Entropy decoding unit 70 may be configured to decode the coefficients according to the techniques of this disclosure. In the example of CABAC, entropy decoding unit 70 may decode the coefficients using either a normal coding mode or a bypass mode.

在一些实例中,熵解码单元70可使用镜射由视频编码器20的熵编码单元56使用的扫描模式的扫描,扫描所接收值。尽管可在反量化单元76中执行系数扫描,但出于说明的目的,将描述由熵解码单元70执行扫描。另外,尽管为易于说明而展示为单独功能单元,但熵解码单元70、反量化单元76及视频解码器30的其它单元的结构及功能性可所述此高度整合。In some examples, entropy decoding unit 70 may scan the received values using a scan that mirrors the scan pattern used by entropy encoding unit 56 of video encoder 20. Although the coefficient scanning may be performed in inverse quantization unit 76, for purposes of illustration, the scanning will be described as being performed by entropy decoding unit 70. Additionally, although shown as separate functional units for ease of illustration, the structure and functionality of entropy decoding unit 70, inverse quantization unit 76, and other units of video decoder 30 may depict such a high degree of integration.

熵解码单元70以与视频编码器20互逆的方式解码来自位流的残余视频数据系数的系数层级。在有损视频译码的状况下,待解码的系数可为经量化的变换系数。在无损视频译码或具有变换跳过或绕过的有损视频译码的状况下,待解码系数可为经编码像素值,并具有具大绝对值的系数层级(即,像素值)。当系数表示屏幕内容(其可包含图形及文本区域)时,可并未良好地预测内容,从而产生待解码的系数的系数层级的大绝对值。Entropy decoding unit 70 decodes coefficient levels of residual video data coefficients from the bitstream in a reciprocal manner to video encoder 20. In the case of lossy video coding, the coefficients to be decoded may be quantized transform coefficients. In the case of lossless video coding or lossy video coding with transform skipping or bypassing, the coefficients to be decoded may be encoded pixel values and have coefficient levels (i.e., pixel values) with large absolute values. When the coefficients represent screen content (which may include graphics and text areas), the content may not be well predicted, resulting in large absolute values of the coefficient levels of the coefficients to be decoded.

熵解码单元70使用由莱斯参数定义的码,解码系数群组(CG)中的至少一系数的系数层级的剩余绝对值。根据本发明的技术,熵解码单元70经配置以基于先前经解码系数的系数层级的统计,确定用于当前CG的莱斯参数的初始值。统计可为先前经解码系数的系数层级的绝对值或系数层级的剩余绝对值的统计。本发明中所描述的基于统计的莱斯参数初始化方案允许莱斯参数快速且有效地适应于大系数值,此情况可发生于屏幕内容的块及具有变换跳过或绕过的块中。The entropy decoding unit 70 decodes the residual absolute value of the coefficient level of at least one coefficient in a coefficient group (CG) using a code defined by a Rice parameter. According to the technology of the present invention, the entropy decoding unit 70 is configured to determine the initial value of the Rice parameter for the current CG based on the statistics of the coefficient level of the previously decoded coefficients. The statistics can be the absolute value of the coefficient level of the previously decoded coefficients or the statistics of the residual absolute value of the coefficient level. The statistics-based Rice parameter initialization scheme described in this invention allows the Rice parameters to adapt quickly and efficiently to large coefficient values, which may occur in blocks of screen content and blocks with transform skipping or bypassing.

在一实例中,熵解码单元70可经配置以通过比较用于给定先前经解码系数的系数层级与统计的函数,且接着基于比较确定是增加抑或降低统计值而确定统计。可在视频数据的每一切片的开始处将统计值初始化为零,且熵解码单元70可按每一切片的CG更新一次统计。在一些实例中,熵解码单元70可经配置以针对多个不同类别的CG中的每一者,确定单独统计。可基于包含CG的变换块的特性(例如,变换块是否为明度块,及变换块是否为变换跳过块)定义类别。In one example, entropy decoding unit 70 may be configured to determine the statistic by comparing the coefficient level for a given previously decoded coefficient to a function of the statistic, and then determining whether to increase or decrease the statistic value based on the comparison. The statistic value may be initialized to zero at the beginning of each slice of video data, and entropy decoding unit 70 may update the statistic once per CG of each slice. In some examples, entropy decoding unit 70 may be configured to determine a separate statistic for each of a plurality of different categories of CGs. The categories may be defined based on characteristics of the transform block that includes the CG, such as whether the transform block is a luma block and whether the transform block is a transform skip block.

在当前CG的开始处,熵解码单元70经配置以将统计值映射为用于当前CG的莱斯参数的初始值。在一实例中,熵解码单元70可根据基于莱斯参数的最大值抑或除以常数值的统计值中的最小者的选择的统计的函数,将统计值映像为初始莱斯参数值。上文较详细地描述用于莱斯参数初始化方案的表示统计收集、统计分割及统计映像过程的实例等式。At the beginning of the current CG, the entropy decoding unit 70 is configured to map the statistical value to the initial value of the Rice parameter for the current CG. In one example, the entropy decoding unit 70 may map the statistical value to the initial Rice parameter value according to a function of statistics based on the minimum of the selected maximum value of the Rice parameter or the statistical value divided by a constant value. Example equations representing the statistical collection, statistical segmentation, and statistical mapping processes for the Rice parameter initialization scheme are described in more detail above.

反量化单元76反量化(即,解量化)位流中所提供,并由熵解码单元70解码的经量化的变换系数。反量化过程可包含常规过程,例如类似于针对HEVC所提议的过程,或由H.264解码标准定义的过程。反量化过程可包含使用由视频编码器20针对CU所计算的量化参数QP以确定量化的程度,且同样地,确定应应用的反量化的程度。反量化单元76可在将系数从一维阵列转换为二维阵列之前抑或之后,反量化变换系数。Inverse quantization unit 76 inverse quantizes (i.e., dequantizes) the quantized transform coefficients provided in the bitstream and decoded by entropy decoding unit 70. The inverse quantization process may include a conventional process, such as a process similar to that proposed for HEVC or a process defined by the H.264 decoding standard. The inverse quantization process may include using a quantization parameter QP calculated by video encoder 20 for a CU to determine the degree of quantization and, likewise, the degree of inverse quantization that should be applied. Inverse quantization unit 76 may inverse quantize the transform coefficients either before or after converting the coefficients from a one-dimensional array to a two-dimensional array.

反变换处理单元78将反变换应用于经反量化变换系数。举例来说,反变换处理单元78可应用离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、K-L变换或另一变换中的一者,以产生残余数据。在一些实例中,反变换处理单元78可基于来自视频编码器20的发信号确定反变换,或通过从一或多个译码特性(例如块大小、译码模式或类似者)推断变换来确定反变换。在一些实例中,反变换处理单元78可基于包含当前块的LCU的四元树的根节点处的用信号发出的变换,确定用以应用于当前块的变换。替代性地,可在LCU四元树中的叶节点CU的TU四元树的根部处用信号发出变换。在一些实例中,反变换处理单元78可应用级联反变换,其中反变换处理单元78将两个或两个以上反变换应用于正经解码的当前块的变换系数。Inverse transform processing unit 78 applies an inverse transform to the inverse quantized transform coefficients. For example, inverse transform processing unit 78 may apply one of a discrete cosine transform (DCT), a discrete sine transform (DST), an integer transform, a K-L transform, or another transform to produce residual data. In some examples, inverse transform processing unit 78 may determine the inverse transform based on signaling from video encoder 20, or by inferring the transform from one or more coding characteristics, such as block size, coding mode, or the like. In some examples, inverse transform processing unit 78 may determine the transform to apply to the current block based on a signaled transform at the root node of the quadtree for the LCU that includes the current block. Alternatively, the transform may be signaled at the root of the TU quadtree for a leaf node CU in the LCU quadtree. In some examples, inverse transform processing unit 78 may apply a cascaded inverse transform, in which inverse transform processing unit 78 applies two or more inverse transforms to the transform coefficients of the current block being decoded.

帧内预测处理单元74可基于用信号发出的帧内预测模式及来自当前帧的先前经解码块的数据,产生用于当前帧的当前块的预测数据。Intra-prediction processing unit 74 may generate prediction data for a current block of a current frame based on a signaled intra-prediction mode and data from previously decoded blocks of the current frame.

运动补偿单元72可从经编码位流检索运动向量、运动预测方向及参考索引。参考预测方向指示帧间预测模式为单向(例如,P帧)抑或双向(B帧)。参考索引指示候选运动向量是基于哪个参考帧。基于所检索的运动预测方向、参考帧索引及运动向量,运动补偿单元72产生用于当前部分的运动补偿块。这些运动补偿块本质上重新产生用以产生残余数据的预测性块。Motion compensation unit 72 may retrieve a motion vector, a motion prediction direction, and a reference index from the encoded bitstream. The reference prediction direction indicates whether the inter-prediction mode is unidirectional (e.g., P-frames) or bidirectional (B-frames). The reference index indicates which reference frame the candidate motion vector is based on. Based on the retrieved motion prediction direction, reference frame index, and motion vector, motion compensation unit 72 generates motion compensated blocks for the current portion. These motion compensated blocks essentially recreate the predictive blocks used to generate the residual data.

运动补偿单元72可产生运动补偿块,可能基于内插滤波器执行内插。用于具有次像素精度的运动估计的内插滤波器的识别符可包含于语法元素中。运动补偿单元72可在视频块的编码期间使用如由视频编码器20所使用的内插滤波器,以计算参考块的次整数像素的内插值。运动补偿单元72可根据经接收语法信息来确定由视频编码器20所使用的内插滤波器,并使用所述内插滤波器来产生预测性块。Motion compensation unit 72 may generate motion compensated blocks, possibly performing interpolation based on interpolation filters. Identifiers of interpolation filters used for motion estimation with sub-pixel precision may be included in syntax elements. Motion compensation unit 72 may use interpolation filters, such as those used by video encoder 20, during encoding of a video block to calculate interpolated values for sub-integer pixels of a reference block. Motion compensation unit 72 may determine the interpolation filters used by video encoder 20 based on received syntax information and use the interpolation filters to generate predictive blocks.

另外,在HEVC实例中,运动补偿单元72及帧内预测处理单元74可使用语法信息中的一些(例如,由四元树所提供),以确定用于编码经编码视频序列的帧的LCU的大小。运动补偿单元72及帧内预测处理单元74也可使用语法信息,以确定描述经编码视频序列的帧的每一CU如何分裂(且同样地,子CU如何分裂)的分裂信息。语法信息也可包含指示每一分裂经编码的方式的模式(例如,帧内预测或帧间预测,及用于帧内预测及帧内预测编码模式)、用于每一经帧间编码PU的一或多个参考帧(及/或含有用于参考帧的识别符的参考列表),及用以解码经编码视频序列的其它信息。In addition, in the HEVC example, motion compensation unit 72 and intra-prediction processing unit 74 may use some of the syntax information (e.g., provided by the quadtree) to determine the size of the LCU used to encode the frames of the encoded video sequence. Motion compensation unit 72 and intra-prediction processing unit 74 may also use the syntax information to determine split information that describes how each CU of the frames of the encoded video sequence is split (and similarly, how sub-CUs are split). The syntax information may also include a mode indicating how each split is encoded (e.g., intra-prediction or inter-prediction, and encoding modes for intra-prediction and intra-prediction), one or more reference frames for each inter-coded PU (and/or a reference list containing identifiers for reference frames), and other information used to decode the encoded video sequence.

求和器80组合残余块与由运动补偿单元72或帧内预测处理单元74所产生的对应预测块,以形成经解码块。如果需要,也可应用解块滤波器来对经解码块进行滤波,以便移除成块效应假影。接着,将经解码视频块存储于经解码图片缓冲器82中,所述缓冲器提供用于后续运动补偿的参考块,且也产生用于呈现于显示装置(例如图1的显示装置32)上的经解码视频。Summer 80 combines the residual block with the corresponding prediction block produced by motion compensation unit 72 or intra-prediction processing unit 74 to form a decoded block. If desired, a deblocking filter may also be applied to the decoded block to remove blockiness artifacts. The decoded video block is then stored in decoded picture buffer 82, which provides reference blocks for subsequent motion compensation and also produces decoded video for presentation on a display device, such as display device 32 of FIG. 1 .

图7为说明根据本发明中所描述的技术的在系数层级的熵编码期间确定莱斯参数的初始值的实例操作的流程图。关于包含来自图5的熵编码单元56的视频编码器20描述实例操作。7 is a flowchart illustrating an example operation of determining initial values of Rice parameters during entropy encoding of coefficient levels according to the techniques described in this disclosure. The example operation is described with respect to video encoder 20 including entropy encoding unit 56 from FIG.

熵编码单元56接收待编码成位流的残余视频数据的系数,以用于发射到视频解码器30或用于存储于存储媒体34或文件服务器36上。残余视频数据系数可包含于系数群组(CG)中,所述系数群组中的每一者为变换块一子块(例如,如图4中所说明的4×4子块)。在编码CG中的系数期间,熵编码单元56确定先前经编码系数的系数层级的统计(100)。在下文关于图9较详细地描述的实例中,确定先前经编码系数的系数层级的统计可包括基于比较先前经编码系数中的一或多者的系数层级与统计的函数,确定是增加抑或降低统计值。可在残余视频数据的每一切片的开始处将统计值初始化为零。Entropy encoding unit 56 receives coefficients of residual video data to be encoded into a bitstream for transmission to video decoder 30 or for storage on storage medium 34 or file server 36. The residual video data coefficients may be included in coefficient groups (CGs), each of which is a subblock of a transform block (e.g., a 4x4 subblock as illustrated in FIG. 4). During encoding of the coefficients in the CGs, entropy encoding unit 56 determines statistics of coefficient levels of previously encoded coefficients (100). In the example described in more detail below with respect to FIG. 9, determining statistics of coefficient levels of previously encoded coefficients may include determining whether to increase or decrease a statistical value based on a function that compares the coefficient levels of one or more of the previously encoded coefficients to the statistics. The statistical value may be initialized to zero at the beginning of each slice of the residual video data.

在一些实例中,确定先前经编码系数的系数层级的统计可包括遍及残余视频数据的切片或译码单元(CU),计算系数层级的平均值或流动平均值。在其它实例中,确定先前经编码系数的系数层级的统计可包括基于先前经编码系数中的一者的系数层级与统计值的比较,确定是增加、降低抑或维持统计值。In some examples, determining statistics for the coefficient levels of previously encoded coefficients may include calculating an average or a running average of the coefficient levels across a slice or coding unit (CU) of the residual video data. In other examples, determining statistics for the coefficient levels of previously encoded coefficients may include determining whether to increase, decrease, or maintain the statistical value based on a comparison of the coefficient level of one of the previously encoded coefficients with the statistical value.

系数层级的统计可包含先前经编码系数的系数层级的绝对值统计或系数层级的剩余绝对值统计。可针对皆包含于相同变换块中的CG中的先前经编码系数,或针对包含于两个或两个以上不同变换块中的CG中的先前经编码系数,收集系数层级的统计。The coefficient-level statistics may include coefficient-level absolute value statistics of previously coded coefficients or coefficient-level residual absolute value statistics. The coefficient-level statistics may be collected for previously coded coefficients in CGs that are all included in the same transform block, or for previously coded coefficients in CGs that are included in two or more different transform blocks.

在一些实例中,熵编码单元56可按每一系数群组确定一次先前经编码系数的系数层级的统计。下文关于图9较详细地描述统计收集的频率。举例来说,在于先前CG中的每一者中编码系数层级的第一绝对值时,熵编码单元56可确定统计。替代性地,在于先前CG中的每一者中编码系数层级的第一剩余绝对值时,熵编码单元56可确定统计。在其它实例中,熵编码单元56可在编码系数中的每一者之后,确定先前经编码系数的系数层级的统计。In some examples, entropy encoding unit 56 may determine statistics for the coefficient levels of previously encoded coefficients once per coefficient group. The frequency of statistics collection is described in more detail below with respect to FIG. 9. For example, entropy encoding unit 56 may determine statistics when the first absolute value of the coefficient level is encoded in each of the previous CGs. Alternatively, entropy encoding unit 56 may determine statistics when the first residual absolute value of the coefficient level is encoded in each of the previous CGs. In other examples, entropy encoding unit 56 may determine statistics for the coefficient levels of previously encoded coefficients after encoding each of the coefficients.

另外,如下文关于图9较详细地描述,熵编码单元56可针对多个不同类别的CG中的每一者确定单独统计。可基于包含CG的变换块的特性定义类别。举例来说,变换块的特性可包含变换块是否为明度或色度块类型、变换块是否经编码为变换跳过块或变换量化绕过块、变换块是否具有帧内预测或帧间预测切片类型、变换块的大小,及/或变换块内的CG的位置。9 , entropy encoding unit 56 may determine separate statistics for each of a plurality of different categories of CGs. The categories may be defined based on characteristics of the transform block that includes the CGs. For example, the characteristics of the transform block may include whether the transform block is a luma or chroma block type, whether the transform block is encoded as a transform skip block or a transform quantization bypass block, whether the transform block has an intra-prediction or inter-prediction slice type, the size of the transform block, and/or the location of the CG within the transform block.

对于待编码残余视频数据的变换块中的当前CG,熵编码单元56基于所收集的先前经编码系数的系数层级的统计,确定莱斯参数的初始值(102)。常规地,在每一CG的开始处将莱斯参数的值初始化为零,且在编码CG中的系数层级的剩余绝对值之后有条件地进行更新。在译码屏幕内容的系数层级的状况下,或在无损译码或以变换跳过模式有损译码的状况下,针对每一CG,将莱斯参数的值初始化为零可能并非最佳的。本发明的技术描述在每一CG的开始处基于所收集统计来设定莱斯参数的值,而非自动地将莱斯参数的值重置为零。For the current CG in the transform block of the residual video data to be encoded, the entropy encoding unit 56 determines the initial value of the Rice parameter based on the collected statistics of the coefficient level of the previously encoded coefficient (102). Conventionally, the value of the Rice parameter is initialized to zero at the beginning of each CG and is conditionally updated after the remaining absolute value of the coefficient level in the encoded CG. In the case of coefficient levels of decoded screen content, or in the case of lossless decoding or lossy decoding in transform skip mode, it may not be optimal to initialize the value of the Rice parameter to zero for each CG. The technical description of the present invention sets the value of the Rice parameter based on the collected statistics at the beginning of each CG, rather than automatically resetting the value of the Rice parameter to zero.

在下文关于图10较详细地描述的一实例中,熵编码单元56通过根据统计的函数,将所收集统计值映射为莱斯参数的初始值,而确定用于当前CG的莱斯参数的初始值。在其它实例中,熵编码单元56可根据存储表,将所收集统计值映像为莱斯参数的初始值。In one example described in more detail below with respect to FIG10 , the entropy coding unit 56 determines initial values of Rice parameters for the current CG by mapping the collected statistical values to initial values of the Rice parameters according to a statistical function. In other examples, the entropy coding unit 56 may map the collected statistical values to initial values of the Rice parameters according to a stored table.

如上文所较详细地描述,熵编码单元56可根据反扫描次序,对当前CG执行一或多个扫描,以编码当前CG中的系数的系数层级。举例来说,熵编码单元56可使用上下文模型以常规译码模式编码旗标或语法元素,以指示系数的系数层级是否具有大于1或大于2的绝对值。接着,熵编码单元56使用由莱斯参数定义的码编码旗标或语法元素,以指示当前CG中的系数中的至少一者的系数层级的剩余绝对值(104)。举例来说,熵编码单元56可以绕过模式编码语法元素,所述语法元素指示具有大于2的系数层级的系数中的任一者的系数层级的剩余绝对值。在一些实例中,在编码当前CG中的系数层级的第一剩余绝对值之后,熵编码单元56可基于经编码系数的系数层级更新统计。As described in more detail above, entropy encoding unit 56 may perform one or more scans on the current CG according to an inverse scan order to encode coefficient levels of coefficients in the current CG. For example, entropy encoding unit 56 may encode a flag or syntax element in a conventional coding mode using a context model to indicate whether the coefficient level of the coefficient has an absolute value greater than 1 or greater than 2. Next, entropy encoding unit 56 encodes a flag or syntax element using a code defined by Rice parameters to indicate the remaining absolute value of the coefficient level of at least one of the coefficients in the current CG (104). For example, entropy encoding unit 56 may bypass mode encoding syntax elements that indicate the remaining absolute value of the coefficient level of any of the coefficients having a coefficient level greater than 2. In some examples, after encoding the first remaining absolute value of the coefficient level in the current CG, entropy encoding unit 56 may update statistics based on the coefficient level of the encoded coefficient.

在一些状况下,熵编码单元56可基于莱斯参数的初始值及当前CG中正经编码的系数的系数层级的绝对值,有条件地更新莱斯参数的初始值。在编码当前CG中的系数的每一剩余绝对层级之后,熵编码单元56可继续有条件地更新莱斯参数的值。在当前CG的末端处,熵编码单元56可基于先前经编码系数(包含包含于当前CG中的最近经编码系数)的系数层级的统计,确定用于后续CG的莱斯参数的初始值。In some cases, the entropy encoding unit 56 may conditionally update the initial value of the Rice parameter based on the initial value of the Rice parameter and the absolute value of the coefficient level of the coefficient being encoded in the current CG. After encoding each remaining absolute level of the coefficient in the current CG, the entropy encoding unit 56 may continue to conditionally update the value of the Rice parameter. At the end of the current CG, the entropy encoding unit 56 may determine the initial value of the Rice parameter for the subsequent CG based on statistics of the coefficient level of the previously encoded coefficients (including the most recently encoded coefficient included in the current CG).

图8为说明根据本发明中所描述的技术的在系数层级的熵解码期间确定莱斯参数的初始值的实例操作的流程图。关于包含来自图6的熵解码单元70的视频解码器30描述实例操作。8 is a flowchart illustrating an example operation of determining initial values of Rice parameters during entropy decoding of a coefficient level according to the techniques described in this disclosure. The example operation is described with respect to video decoder 30 including entropy decoding unit 70 from FIG.

视频解码器30从视频编码器20,或从例如存储媒体34或文件服务器36的存储装置接收经编码视频位流。所接收视频位流表示待解码的残余视频数据的系数。残余视频数据系数可包含于系数群组(CG)中,所述系数群组中的每一者为变换块一子块(例如,如图4中所说明的4×4子块)。在解码CG中的系数期间,熵解码单元70确定先前经解码系数的系数层级的统计(110)。在下文关于图9较详细地描述的实例中,确定先前经解码系数的系数层级的统计可包括基于比较先前经解码系数中的一或多者的系数层级与统计的函数,确定是增加抑或降低统计值。可在残余视频数据的每一切片的开始处将统计值初始化为零。Video decoder 30 receives an encoded video bitstream from video encoder 20, or from a storage device such as storage medium 34 or file server 36. The received video bitstream represents coefficients of residual video data to be decoded. The residual video data coefficients may be included in coefficient groups (CGs), each of which is a transform block subblock (e.g., a 4x4 subblock as illustrated in FIG. 4). During decoding of the coefficients in the CGs, entropy decoding unit 70 determines statistics of coefficient levels of previously decoded coefficients (110). In the example described in more detail below with respect to FIG. 9, determining statistics of coefficient levels of previously decoded coefficients may include determining whether to increase or decrease a statistical value based on a function that compares the coefficient levels of one or more of the previously decoded coefficients to the statistics. The statistical value may be initialized to zero at the beginning of each slice of the residual video data.

在一些实例中,确定先前经解码系数的系数层级的统计可包括遍及残余视频数据的切片、译码单元(CU)或变换单元(TU),计算系数层级的平均值或流动平均值。在其它实例中,确定先前经解码系数的系数层级的统计可包括基于先前经编码系数中的一者的系数层级与统计值的比较,确定是增加、降低抑或维持统计值。In some examples, determining statistics for the coefficient level of previously decoded coefficients may include computing an average or a running average of the coefficient level across a slice, coding unit (CU), or transform unit (TU) of the residual video data. In other examples, determining statistics for the coefficient level of previously decoded coefficients may include determining whether to increase, decrease, or maintain the statistical value based on a comparison of the coefficient level of one of the previously encoded coefficients with the statistical value.

系数层级的统计可包含先前经解码系数的系数层级的绝对值统计或系数层级的剩余绝对值统计。可针对皆包含于相同变换块中的CG中的先前经解码系数,或针对包含于两个或两个以上不同变换块中的CG中的先前经解码系数,收集系数层级的统计。The coefficient-level statistics may include coefficient-level absolute value statistics of previously decoded coefficients or coefficient-level residual absolute value statistics. The coefficient-level statistics may be collected for previously decoded coefficients in CGs that are all included in the same transform block, or for previously decoded coefficients in CGs that are included in two or more different transform blocks.

在一些实例中,熵解码单元70可按每一系数群组确定一次先前经解码系数的系数层级的统计。下文关于图9较详细地描述统计收集的频率。举例来说,在于先前CG中的每一者中解码系数层级的第一绝对值时,熵解码单元70可确定统计。替代性地,在于先前CG中的每一者中解码系数层级的第一剩余绝对值时,熵解码单元70可确定统计。在其它实例中,熵解码单元70可在解码系数中的每一者之后,确定先前经解码系数的系数层级的统计。In some examples, entropy decoding unit 70 may determine statistics for the coefficient levels of previously decoded coefficients once per coefficient group. The frequency of statistics collection is described in more detail below with respect to FIG. 9. For example, entropy decoding unit 70 may determine statistics upon decoding the first absolute value of the coefficient level in each of the previous CGs. Alternatively, entropy decoding unit 70 may determine statistics upon decoding the first remaining absolute value of the coefficient level in each of the previous CGs. In other examples, entropy decoding unit 70 may determine statistics for the coefficient levels of previously decoded coefficients after decoding each of the coefficients.

另外,如下文关于图9较详细地描述,熵解码单元70可针对多个不同类别的CG中的每一者确定单独统计。可基于包含CG的变换块的特性定义类别。举例来说,变换块的特性可包含变换块是否为明度或色度块类型、变换块是否经解码为变换跳过块或变换量化绕过块、变换块是否具有帧内预测或帧间预测切片类型、变换块的大小,及/或变换块内的CG的位置。9 , entropy decoding unit 70 may determine separate statistics for each of a plurality of different categories of CGs. The categories may be defined based on characteristics of the transform block that includes the CGs. For example, the characteristics of the transform block may include whether the transform block is a luma or chroma block type, whether the transform block is decoded as a transform skip block or a transform quantization bypass block, whether the transform block has an intra-prediction or inter-prediction slice type, the size of the transform block, and/or the location of the CG within the transform block.

对于待解码残余视频数据的变换块中的当前CG,熵解码单元70基于所收集的先前经解码系数的系数层级的统计,确定莱斯参数的初始值(112)。在一些过程中,在每一CG的开始处将莱斯参数的值初始化为零,且在解码CG中的系数层级的剩余绝对值之后有条件地进行更新。在译码屏幕内容的系数层级的状况下,或在无损译码或以变换跳过模式有损译码的状况下,针对每一CG,将莱斯参数的值初始化为零可能并非最佳的。本发明的技术描述在每一CG的开始处基于所收集统计来设定莱斯参数的值,而非自动地将莱斯参数的值重置为零。For the current CG in the transform block of the residual video data to be decoded, the entropy decoding unit 70 determines the initial value of the Rice parameter based on the collected statistics of the coefficient level of the previously decoded coefficients (112). In some processes, the value of the Rice parameter is initialized to zero at the beginning of each CG and is conditionally updated after the remaining absolute value of the coefficient level in the decoded CG. In the case of coefficient levels of decoded screen content, or in the case of lossless decoding or lossy decoding in transform skip mode, it may not be optimal to initialize the value of the Rice parameter to zero for each CG. The technical description of the present invention sets the value of the Rice parameter based on the collected statistics at the beginning of each CG, rather than automatically resetting the value of the Rice parameter to zero.

在下文关于图10较详细地描述的一实例中,熵解码单元70通过根据统计的函数,将所收集统计值映射为莱斯参数的初始值,而确定用于当前CG的莱斯参数的初始值。在其它实例中,熵解码单元70可根据存储表,将所收集统计值映像为莱斯参数的初始值。In one example described in more detail below with respect to FIG10 , the entropy decoding unit 70 determines the initial values of the Rice parameters for the current CG by mapping the collected statistical values to the initial values of the Rice parameters according to a statistical function. In other examples, the entropy decoding unit 70 may map the collected statistical values to the initial values of the Rice parameters according to a stored table.

如上文所较详细地描述,熵解码单元70可根据反扫描次序,对当前CG执行一或多个扫描,以解码当前CG中的系数的系数层级。举例来说,熵解码单元70可使用上下文模型以常规译码模式解码旗标或语法元素,以指示系数的系数层级是否具有大于1或大于2的绝对值。接着,熵解码单元70使用由莱斯参数定义的码解码旗标或语法元素,以指示当前CG中的系数中的至少一者的系数层级的剩余绝对值(114)。举例来说,熵解码单元70可以绕过模式解码语法元素,所述语法元素指示具有大于2的系数层级的系数中的任一者的系数层级的剩余绝对值。在一些实例中,在解码当前CG中的系数层级的第一剩余绝对值之后,熵解码单元70可基于经解码系数的系数层级更新统计。As described in more detail above, the entropy decoding unit 70 may perform one or more scans on the current CG according to an inverse scan order to decode the coefficient levels of the coefficients in the current CG. For example, the entropy decoding unit 70 may decode a flag or syntax element in a conventional coding mode using a context model to indicate whether the coefficient level of the coefficient has an absolute value greater than 1 or greater than 2. Next, the entropy decoding unit 70 decodes a flag or syntax element using a code defined by the Rice parameter to indicate the remaining absolute value of the coefficient level of at least one of the coefficients in the current CG (114). For example, the entropy decoding unit 70 may bypass the mode decoding syntax element that indicates the remaining absolute value of the coefficient level of any of the coefficients having a coefficient level greater than 2. In some examples, after decoding the first remaining absolute value of the coefficient level in the current CG, the entropy decoding unit 70 may update statistics based on the coefficient level of the decoded coefficient.

在一些状况下,熵解码单元70可基于莱斯参数的初始值及当前CG中正经解码的系数的系数层级的绝对值,有条件地更新莱斯参数的初始值。在解码当前CG中的系数的每一剩余绝对层级之后,熵解码单元70可继续有条件地更新莱斯参数的值。在当前CG的末端处,熵解码单元70可基于先前经解码系数(包含包含于当前CG中的最近经解码系数)的系数层级的统计,确定用于后续CG的莱斯参数的初始值。In some cases, the entropy decoding unit 70 may conditionally update the initial value of the Rice parameter based on the initial value of the Rice parameter and the absolute value of the coefficient level of the coefficient being decoded in the current CG. After decoding each remaining absolute level of the coefficient in the current CG, the entropy decoding unit 70 may continue to conditionally update the value of the Rice parameter. At the end of the current CG, the entropy decoding unit 70 may determine the initial value of the Rice parameter for the subsequent CG based on statistics of the coefficient level of the previously decoded coefficients (including the most recently decoded coefficient included in the current CG).

图9为说明根据本发明中所描述的技术的在系数层级的熵译码期间确定先前经译码系数的系数层级的统计的实例操作的流程图。所说明操作可为来自图7的步骤100或来自图8的步骤110的一实例。关于包含来自图6的熵解码单元70的视频解码器30描述实例操作。在其它实例中,可由来自图5的视频编码器20的熵编码单元56执行操作。FIG9 is a flowchart illustrating an example operation of determining statistics for a coefficient level of previously coded coefficients during entropy coding of the coefficient level according to the techniques described in this disclosure. The illustrated operation may be an example of step 100 from FIG7 or step 110 from FIG8. The example operation is described with respect to video decoder 30 including entropy decoding unit 70 from FIG6. In other examples, the operation may be performed by entropy encoding unit 56 of video encoder 20 from FIG5.

熵解码单元70解码包含于变换块中的CG中的系数的系数层级(120)。系数层级可包括系数层级的绝对值抑或系数层级的剩余绝对值。如果经解码系数层级并非CG中的第一系数层级(122的否分支),则熵解码单元70并不基于经解码系数层级更新统计(124)。在此实例中,在于CG中的每一者中译码系数层级的第一绝对值或系数层级的第一剩余绝对值时,按每一CG仅更新一次统计。在其它实例中,可较频繁地或基于不同系数层级的译码更新统计。Entropy decoding unit 70 decodes coefficient levels for coefficients in the CGs included in the transform block (120). The coefficient levels may include either absolute values of the coefficient levels or residual absolute values of the coefficient levels. If the decoded coefficient level is not the first coefficient level in the CG (NO branch of 122), entropy decoding unit 70 does not update statistics based on the decoded coefficient level (124). In this example, statistics are updated only once per CG when the first absolute value of the coefficient level or the first residual absolute value of the coefficient level is coded in each of the CGs. In other examples, statistics may be updated more frequently or based on coding of different coefficient levels.

如果经解码系数层级为CG中的第一系数层级(122的是分支),则熵解码单元70基于变换块的特性确定CG的类别(126)。在一实例中,用于确定CG的类别的变换块的特性包含变换块是否为明度块,及变换块是否为变换跳过块。在其它实例中,用于确定CG的类别的特性可不同,例如,变换块是否为变换量化绕过块、变换块是否具有帧内预测或帧间预测切片类型、变换块的大小及/或变换块内的当前CG的位置。在一些实例中,视频解码器30可接收指示变换块的哪个特性用于定义不同类别的CG的语法元素。If the decoded coefficient level is the first coefficient level in the CG (yes branch of 122), entropy decoding unit 70 determines the category of the CG based on the characteristics of the transform block (126). In one example, the characteristics of the transform block used to determine the category of the CG include whether the transform block is a luma block, and whether the transform block is a transform skip block. In other examples, the characteristics used to determine the category of the CG may be different, such as whether the transform block is a transform quantization bypass block, whether the transform block has an intra-frame prediction or inter-frame prediction slice type, the size of the transform block, and/or the position of the current CG within the transform block. In some examples, video decoder 30 may receive a syntax element indicating which characteristic of the transform block is used to define different categories of CGs.

接着,熵解码单元70针对所确定类别,将CG中的第一系数层级与统计的函数进行比较(128)。在一实例中,用于更新统计的统计的函数是基于左移位除以第二常数值的统计值的第一常数值。在其它实例中,可根据不同技术确定统计,例如遍及视频数据的切片或译码单元(CU),计算系数层级的平均值或流动平均值,或将CG中的系数层级直接与统计值比较。Next, entropy decoding unit 70 compares the first coefficient level in the CG to a function of the statistic for the determined category (128). In one example, the function of the statistic used to update the statistics is a first constant value based on the statistic value that is left-shifted and divided by a second constant value. In other examples, the statistics may be determined according to different techniques, such as calculating an average or running average of the coefficient level across a slice or coding unit (CU) of the video data, or comparing the coefficient level in the CG directly to the statistic value.

如果CG中的第一系数层级大于或等于统计的函数的结果(130的是分支),则熵解码单元70增加所确定类别的统计值(132)。如果CG中的第一系数层级小于统计的函数的结果(130的否分支),则熵解码单元70降低所确定类别的统计值(134)。在任一状况下,熵解码单元70可使用经更新统计,以确定用于所确定类别之后续CG的莱斯参数的初始值,如下文关于图10较详细地描述。If the first coefficient level in the CG is greater than or equal to the result of the function of the statistics (the yes branch of 130), entropy decoding unit 70 increases the statistic for the determined class (132). If the first coefficient level in the CG is less than the result of the function of the statistics (the no branch of 130), entropy decoding unit 70 decreases the statistic for the determined class (134). In either case, entropy decoding unit 70 may use the updated statistics to determine initial values of Rice parameters for subsequent CGs of the determined class, as described in more detail below with respect to FIG. 10.

在图9的实例中,用于确定统计的操作按每一CG仅更新一次统计,并针对多个不同类别的CG收集单独统计。在其它实例中,用于确定统计的操作可在译码CG中的系数层级的剩余绝对值之后更新统计。在额外实例中,用于确定统计的操作可仅收集一类别的统计。In the example of FIG9 , the operation for determining statistics updates the statistics only once per CG and collects separate statistics for multiple different categories of CGs. In other examples, the operation for determining statistics may update the statistics after coding the remaining absolute values of the coefficient levels in the CGs. In additional examples, the operation for determining statistics may collect statistics for only one category.

图10为说明根据本发明中所描述的技术的基于所确定统计,确定用于当前系数群组的莱斯参数的初始值的实例操作的流程图。所说明操作可为来自图7的步骤102或来自图8的步骤112的一实例。关于包含来自图6的熵解码单元70的视频解码器30描述实例操作。在其它实例中,可由来自图5的视频编码器20的熵编码单元56执行操作。FIG10 is a flowchart illustrating an example operation of determining initial values of Rice parameters for a current coefficient group based on determined statistics according to the techniques described in this disclosure. The illustrated operation may be an example of step 102 from FIG7 or step 112 from FIG8. The example operation is described with respect to a video decoder 30 including the entropy decoding unit 70 from FIG6. In other examples, the operation may be performed by the entropy encoding unit 56 of the video encoder 20 from FIG5.

在变换块中的当前CG的开始处(140),熵解码单元70基于包含当前CG的变换块的特性,确定当前CG的类别(142)。在一实例中,用于确定当前CG的类别的变换块的特性包含变换块是否为明度块,及变换块是否为变换跳过块。在其它实例中,用于确定当前CG的类别的特性可不同,例如,变换块是否为变换量化绕过块、变换块是否具有帧内预测或帧间预测切片类型、变换块的大小及/或变换块内的当前CG的位置。在一些实例中,视频解码器30可接收指示变换块的哪个特性用于定义不同类别的CG的语法元素。At the beginning of the current CG in the transform block (140), the entropy decoding unit 70 determines the category of the current CG (142) based on the characteristics of the transform block that includes the current CG. In one example, the characteristics of the transform block used to determine the category of the current CG include whether the transform block is a luma block, and whether the transform block is a transform skip block. In other examples, the characteristics used to determine the category of the current CG may be different, for example, whether the transform block is a transform quantization bypass block, whether the transform block has an intra-frame prediction or inter-frame prediction slice type, the size of the transform block, and/or the position of the current CG within the transform block. In some examples, the video decoder 30 may receive a syntax element indicating which characteristic of the transform block is used to define different categories of CGs.

接着,熵解码单元70根据统计的函数,将所确定类别的统计值映射为用于当前CG的莱斯参数的初始值(144)。在一实例中,用于初始化莱斯参数的统计的函数是基于莱斯参数的最大值抑或除以常数值的统计值中的最小者的选择。在其它实例中,可根据不同技术从统计确定莱斯参数的初始值,例如将统计值右移位常数值,或应用统计的线性或分段线性函数。在再其它实例中,熵解码单元70可根据存储表,将统计值映像为莱斯参数的初始值,其中将预定义范围内的每一统计值映像为至多莱斯参数的最大值的莱斯参数的值。Then, the entropy decoding unit 70 maps the statistical values of the determined categories to the initial values of the Rice parameters for the current CG according to the statistical function (144). In one instance, the statistical function for initializing the Rice parameters is based on the selection of the minimum of the maximum value of the Rice parameters or the statistical value divided by the constant value. In other instances, the initial values of the Rice parameters can be determined from the statistics according to different techniques, such as right-shifting the statistical values by a constant value, or applying a linear or piecewise linear function of the statistics. In yet other instances, the entropy decoding unit 70 can map the statistical values to the initial values of the Rice parameters according to a storage table, wherein each statistical value within a predefined range is mapped to the value of the Rice parameter up to the maximum value of the Rice parameter.

在一或多个实例中,所描述的功能可在硬件、软件、固件或其任何结合中实施。如果在软件中实施,则功能可作为一或多个指令或程序代码而存储于计算机可读媒体上,或经由计算机可读媒体而发射,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体)或通信媒体,通信媒体包含(例如)根据通信协议而促进计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体大体上可对应于(1)为非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器接入以检索指令、程序代码及/或数据结构,以用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted via a computer-readable medium as one or more instructions or program codes and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media (which corresponds to tangible media such as data storage media) or communication media, which includes, for example, any media that facilitates the transfer of a computer program from one place to another according to a communication protocol. In this manner, computer-readable media may generally correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) communication media such as a signal or carrier wave. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, program codes, and/or data structures for implementing the techniques described in this disclosure. A computer program product may include a computer-readable medium.

作为实例而非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,闪存,或可用以存储呈指令或数据结构的形式的所要程序代码且可由计算机接入的任何其它媒体。又,将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字用户线(DSL)或无线技术(例如,红外线、无线电及微波)而从网站、服务器或其它远程源发射指令,则同轴缆线、光纤缆线、双绞线、DSL或无线技术(例如,红外线、无线电及微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而是有关非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光盘(CD)、雷射光盘、光学光盘、数字激光视盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过雷射以光学方式再现数据。以上各者的组合也应包含于计算机可读媒体的范围内。By way of example, and not limitation, these computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies (such as infrared, radio, and microwave), the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies (such as infrared, radio, and microwave) are included in the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, but rather refer to non-transitory, tangible storage media. As used herein, disk and disc include compact disc (CD), laser disc, optical disc, digital laser video disc (DVD), floppy disk, and Blu-ray disc. Disks typically reproduce data magnetically, while discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.

可由例如一或多个数字信号处理器(DSP)、一般用途微处理器、特殊应用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效整合式或离散逻辑电路系统的一或多个处理器来执行指令。因此,本文中所使用的术语“处理器”可指上述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文所描述的功能性提供于经配置以用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编解码器中。又,所述技术可完全实施于一或多个电路或逻辑组件中。Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Thus, the term "processor," as used herein, may refer to any of the aforementioned structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or incorporated into a combined codec. Furthermore, the techniques may be fully implemented in one or more circuits or logic components.

本发明的技术可以广泛多种装置或设备实施,所述装置或设备包含无线手机、集成电路(IC)或IC集合(例如,芯片组)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必要求通过不同硬件单元实现。实际上,如上文所描述,可将各种单元组合于编解码器硬件单元中,或通过互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合而结合合适软件及/或固件来提供所述单元。The techniques of this disclosure can be implemented in a wide variety of devices or apparatuses, including wireless handsets, integrated circuits (ICs), or sets of ICs (e.g., chipsets). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. In fact, as described above, the various units can be combined in a codec hardware unit, or provided by a collection of interoperable hardware units (including one or more processors as described above) in conjunction with appropriate software and/or firmware.

已描述各种实例。这些及其它实例属于以下权利要求书的范围内。Various embodiments have been described. These and other embodiments are within the scope of the following claims.

Claims (59)

1.一种在视频解码过程中解码系数的方法,所述方法包括:1. A method for decoding coefficients in a video decoding process, the method comprising: 确定残余视频数据的先前经解码系数的系数层级的统计,所述先前经解码系数在所述残余视频数据的变换块中的当前系数群组之前经解码;determining statistics of a coefficient level of previously decoded coefficients of residual video data, the previously decoded coefficients being decoded prior to a current coefficient group in a transform block of the residual video data; 基于所述统计,在解码所述当前系数群组中的任何系数之前在所述当前系数群组的开始处确定莱斯参数的初始值;及determining, based on the statistics, initial values of Rice parameters at the beginning of the current coefficient group before decoding any coefficients in the current coefficient group; and 使用由所述莱斯参数的所述初始值定义的码,解码所述当前系数群组中的所述系数中的至少一者的系数层级的剩余绝对值。Using a code defined by the initial value of the Rice parameter, the residual absolute value of the coefficient level of at least one of the coefficients in the current coefficient group is decoded. 2.根据权利要求1所述的方法,其中所述统计包括所述先前经解码系数的所述系数层级的绝对值或所述系数层级的剩余绝对值中的一者的统计。2 . The method of claim 1 , wherein the statistics comprise statistics of one of absolute values of the coefficient level or residual absolute values of the coefficient level of the previously decoded coefficients. 3.根据权利要求1所述的方法,其中所述统计包括包含于与所述当前系数群组相同的变换块或与所述当前系数群组不同的变换块中的一或多者中的先前系数群组中的所述先前经解码系数的所述系数层级的统计。3. The method of claim 1 , wherein the statistics comprise statistics of the coefficient levels of the previously decoded coefficients in a previous coefficient group included in one or more of the same transform block as the current coefficient group or a transform block different from the current coefficient group. 4.根据权利要求1所述的方法,其中确定所述统计包括:4. The method of claim 1 , wherein determining the statistics comprises: 将所述先前经解码系数中的至少一者的系数层级与所述统计的函数进行比较;及comparing a coefficient level of at least one of the previously decoded coefficients to a function of the statistic; and 基于所述比较,确定是增加抑或降低所述统计的值。Based on the comparison, a determination is made as to whether to increase or decrease the value of the statistic. 5.根据权利要求4所述的方法,其中所述统计的所述函数包括左移位除以第二常数值的所述统计的值的第一常数值。5 . The method of claim 4 , wherein the function of the statistic comprises a first constant value that is left-shifted and divided by a second constant value. 6.根据权利要求1所述的方法,其进一步包括在所述残余视频数据的每一切片的开始处,将所述统计的值初始化为零。6 . The method of claim 1 , further comprising initializing a value of the statistic to zero at the beginning of each slice of the residual video data. 7.根据权利要求1所述的方法,其中确定所述统计包括按每一系数群组确定一次所述统计。The method of claim 1 , wherein determining the statistic comprises determining the statistic once per group of coefficients. 8.根据权利要求7所述的方法,其中按每一系数群组确定一次所述统计包括在于多个先前系数群组中的每一者中解码系数层级的绝对值或系数层级的剩余绝对值中的一者时,确定所述统计。8. The method of claim 7, wherein determining the statistic once per coefficient group comprises determining the statistic upon decoding one of an absolute value of a coefficient level or a residual absolute value of a coefficient level in each of a plurality of previous coefficient groups. 9.根据权利要求1所述的方法,其中确定所述统计包括针对多个不同类别的系数群组中的每一者确定单独统计,其中所述不同类别是基于包含所述系数群组的变换块的特性来定义。9. The method of claim 1, wherein determining the statistics comprises determining a separate statistic for each of a plurality of different categories of coefficient groups, wherein the different categories are defined based on characteristics of a transform block that includes the coefficient groups. 10.根据权利要求9所述的方法,其中所述变换块的所述特性至少包含所述变换块是否为明度块,及所述变换块是否为变换跳过块。10. The method of claim 9, wherein the characteristics of the transform block include at least whether the transform block is a luma block, and whether the transform block is a transform skip block. 11.根据权利要求9所述的方法,其进一步包括接收指示所述变换块的哪些特性用于定义所述不同类别的系数群组的语法元素,其中所述语法元素是在所述残余视频数据的序列参数集SPS或图片参数集PPS中的一者中接收。11. The method of claim 9, further comprising receiving a syntax element indicating which characteristics of the transform block are used to define the different categories of coefficient groups, wherein the syntax element is received in one of a sequence parameter set (SPS) or a picture parameter set (PPS) of the residual video data. 12.根据权利要求9所述的方法,其进一步包括基于包含所述当前系数群组的所述变换块的特性,确定所述当前系数群组的类别,其中确定所述莱斯参数的所述初始值包括基于用于所述所确定类别的所述统计,确定用于所述变换块中的所述当前系数群组的所述莱斯参数的所述初始值。12. The method according to claim 9 further includes determining a category of the current coefficient group based on characteristics of the transform block including the current coefficient group, wherein determining the initial value of the Rice parameter includes determining the initial value of the Rice parameter for the current coefficient group in the transform block based on the statistics for the determined category. 13.根据权利要求1所述的方法,其中确定用于所述当前系数群组的所述莱斯参数的所述初始值包括根据所述统计的函数,将所述统计的值映射为所述莱斯参数的所述初始值。13. The method according to claim 1, wherein determining the initial value of the Rice parameter for the current coefficient group includes mapping the value of the statistic to the initial value of the Rice parameter according to a function of the statistic. 14.根据权利要求13所述的方法,其中所述统计的所述函数包括所述莱斯参数的最大值或除以常数值的所述统计的所述值中的最小者的选择。14. A method according to claim 13, wherein the function of the statistic includes selection of the minimum of the maximum value of the Rice parameter or the value of the statistic divided by a constant value. 15.根据权利要求1所述的方法,其进一步包括:15. The method of claim 1, further comprising: 在解码所述当前系数群组中的所述系数中的所述至少一者的所述系数层级的所述剩余绝对值之后,基于所述莱斯参数的所述初始值,及所述当前系数群组中的所述系数中的所述至少一者的所述系数层级的绝对值,更新所述莱斯参数的所述初始值;及After decoding the remaining absolute value of the coefficient level of the at least one of the coefficients in the current coefficient group, updating the initial value of the Rice parameter based on the initial value of the Rice parameter and the absolute value of the coefficient level of the at least one of the coefficients in the current coefficient group; and 使用由所述莱斯参数的所述经更新值定义的码,解码所述当前系数群组中的所述系数中的另一者的系数层级的剩余绝对值。Using a code defined by the updated value of the Rice parameter, the remaining absolute value of the coefficient level of another one of the coefficients in the current coefficient group is decoded. 16.根据权利要求1所述的方法,其中由所述莱斯参数的所述初始值定义的所述码包括哥伦布莱斯码或指数哥伦布码中的一者。16. The method of claim 1, wherein the code defined by the initial value of the Rice parameter comprises one of a Golomblais code or an Exponential Golomb code. 17.根据权利要求1所述的方法,其中所述当前系数群组包括变换系数或并未应用变换的系数。17. The method of claim 1, wherein the current coefficient group comprises transform coefficients or coefficients to which no transform is applied. 18.一种在视频编码过程中编码系数的方法,所述方法包括:18. A method for encoding coefficients in a video encoding process, the method comprising: 确定残余视频数据的先前经编码系数的系数层级的统计,所述先前经编码系数在所述残余视频数据的变换块中的当前系数群组之前经编码;determining statistics of coefficient levels of previously encoded coefficients of residual video data that were encoded before a current group of coefficients in a transform block of the residual video data; 基于所述统计,在编码所述当前系数群组中的任何系数之前在所述当前系数群组的开始处确定莱斯参数的初始值;及determining, based on the statistics, initial values of Rice parameters at the beginning of the current coefficient group before encoding any coefficients in the current coefficient group; and 使用由所述莱斯参数的所述初始值定义的码,编码所述当前系数群组中的所述系数中的至少一者的系数层级的剩余绝对值。The residual absolute value of the coefficient level of at least one of the coefficients in the current coefficient group is encoded using a code defined by the initial value of the Rice parameter. 19.根据权利要求18所述的方法,其中所述统计包括所述先前经编码系数的所述系数层级的绝对值或所述系数层级的剩余绝对值中的一者的统计。19. The method of claim 18, wherein the statistics comprise statistics of one of absolute values of the coefficient level or residual absolute values of the coefficient level of the previously encoded coefficients. 20.根据权利要求18所述的方法,其中所述统计包括包含于与所述当前系数群组相同的变换块或与所述当前系数群组不同的变换块中的一或多者中的先前系数群组中的所述先前经编码系数的所述系数层级的统计。20. The method of claim 18, wherein the statistics comprise statistics of the coefficient levels of the previously encoded coefficients in a previous coefficient group included in one or more of the same transform block as the current coefficient group or a different transform block than the current coefficient group. 21.根据权利要求18所述的方法,其中确定所述统计包括:21. The method of claim 18, wherein determining the statistics comprises: 将所述先前经编码系数中的至少一者的系数层级与所述统计的函数进行比较;及comparing a coefficient level of at least one of the previously encoded coefficients to a function of the statistic; and 基于所述比较,确定是增加抑或降低所述统计的值。Based on the comparison, a determination is made as to whether to increase or decrease the value of the statistic. 22.根据权利要求21所述的方法,其中所述统计的所述函数包括左移位除以第二常数值的所述统计的值的第一常数值。22. The method of claim 21, wherein the function of the statistic comprises a first constant value left-shifted divided by a second constant value. 23.根据权利要求18所述的方法,其进一步包括在所述残余视频数据的每一切片的开始处,将所述统计的值初始化为零。23. The method of claim 18, further comprising initializing a value of the statistic to zero at the beginning of each slice of the residual video data. 24.根据权利要求18所述的方法,其中确定所述统计包括按每一系数群组确定一次所述统计。24. The method of claim 18, wherein determining the statistics comprises determining the statistics once per group of coefficients. 25.根据权利要求24所述的方法,其中按每一系数群组确定一次所述统计包括在于多个先前系数群组中的每一者中编码系数层级的绝对值或系数层级的剩余绝对值中的一者时,确定所述统计。25. The method of claim 24, wherein determining the statistic once per coefficient group comprises determining the statistic when one of an absolute value of a coefficient level or a residual absolute value of a coefficient level is encoded in each of a plurality of previous coefficient groups. 26.根据权利要求18所述的方法,其中确定所述统计包括针对多个不同类别的系数群组中的每一者确定单独统计,其中所述不同类别是基于包含所述系数群组的变换块的特性来定义。26. The method of claim 18, wherein determining the statistics comprises determining a separate statistic for each of a plurality of different categories of coefficient groups, wherein the different categories are defined based on characteristics of a transform block that includes the coefficient groups. 27.根据权利要求26所述的方法,其中所述变换块的所述特性至少包含所述变换块是否为明度块,及所述变换块是否为变换跳过块。27. The method of claim 26, wherein the characteristics of the transform block include at least whether the transform block is a luma block, and whether the transform block is a transform skip block. 28.根据权利要求26所述的方法,其进一步包括产生指示所述变换块的哪些特性用于定义所述不同类别的系数群组的语法元素,其中所述语法元素是在所述残余视频数据的序列参数集SPS或图片参数集PPS中的一者中产生。28. The method of claim 26, further comprising generating a syntax element that indicates which characteristics of the transform block are used to define the different categories of coefficient groups, wherein the syntax element is generated in one of a sequence parameter set (SPS) or a picture parameter set (PPS) of the residual video data. 29.根据权利要求26所述的方法,其进一步包括基于包含所述当前系数群组的所述变换块的特性,确定所述当前系数群组的类别,其中确定所述莱斯参数的所述初始值包括基于用于所述所确定类别的所述统计,确定用于所述变换块中的所述当前系数群组的所述莱斯参数的所述初始值。29. The method according to claim 26 further includes determining a category of the current coefficient group based on characteristics of the transform block including the current coefficient group, wherein determining the initial value of the Rice parameter includes determining the initial value of the Rice parameter for the current coefficient group in the transform block based on the statistics for the determined category. 30.根据权利要求18所述的方法,其中确定用于所述当前系数群组的所述莱斯参数的所述初始值包括根据所述统计的函数,将所述统计的值映射为所述莱斯参数的所述初始值。30. The method of claim 18, wherein determining the initial value of the Rice parameter for the current coefficient group comprises mapping the value of the statistic to the initial value of the Rice parameter according to a function of the statistic. 31.根据权利要求30所述的方法,其中所述统计的所述函数包括所述莱斯参数的最大值或除以常数值的所述统计的所述值中的最小者的选择。31. A method according to claim 30, wherein the function of the statistic includes a selection of the minimum of the maximum value of the Rice parameter or the value of the statistic divided by a constant value. 32.根据权利要求18所述的方法,其进一步包括:32. The method of claim 18, further comprising: 在编码所述当前系数群组中的所述系数中的所述至少一者的所述系数层级的所述剩余绝对值之后,基于所述莱斯参数的所述初始值及所述当前系数群组中的所述系数中的所述至少一者的所述系数层级的绝对值,更新所述莱斯参数的所述初始值;及After encoding the remaining absolute value of the coefficient level of the at least one of the coefficients in the current coefficient group, updating the initial value of the Rice parameter based on the initial value of the Rice parameter and the absolute value of the coefficient level of the at least one of the coefficients in the current coefficient group; and 使用由所述莱斯参数的所述经更新值定义的码,编码所述当前系数群组中的所述系数中的另一者的系数层级的剩余绝对值。The remaining absolute value of the coefficient level of another one of the coefficients in the current coefficient group is encoded using a code defined by the updated value of the Rice parameter. 33.根据权利要求18所述的方法,其中由所述莱斯参数的所述初始值定义的所述码包括哥伦布莱斯码或指数哥伦布码中的一者。33. The method of claim 18, wherein the code defined by the initial value of the Rice parameter comprises one of a Golomblais code or an Exponential Golomb code. 34.根据权利要求18所述的方法,其中所述当前系数群组包括变换系数或并未应用变换的系数。34. The method of claim 18, wherein the current coefficient group comprises transform coefficients or coefficients to which no transform is applied. 35.一种视频译码装置,其包括:35. A video decoding device, comprising: 存储器,其经配置以存储视频数据;及a memory configured to store video data; and 一或多个处理器,其经配置以:One or more processors configured to: 确定残余视频数据的先前经译码系数的系数层级的统计,所述先前经译码系数在所述残余视频数据的变换块中的当前系数群组之前经译码;determining statistics of a coefficient level of previously coded coefficients of residual video data that were coded before a current coefficient group in a transform block of the residual video data; 基于所述统计,在译码所述当前系数群组中的任何系数之前在所述当前系数群组的开始处确定莱斯参数的初始值;及determining, based on the statistics, initial values of Rice parameters at the beginning of the current coefficient group before decoding any coefficients in the current coefficient group; and 使用由所述莱斯参数的所述初始值定义的码,译码所述当前系数群组中的所述系数中的至少一者的系数层级的剩余绝对值。Using a code defined by the initial value of the Rice parameter, the residual absolute value of the coefficient level of at least one of the coefficients in the current coefficient group is decoded. 36.根据权利要求35所述的装置,其中所述统计包括所述先前经译码系数的所述系数层级的绝对值或所述系数层级的剩余绝对值中的一者的统计。36. The device of claim 35, wherein the statistics comprise statistics of one of absolute values of the coefficient level or residual absolute values of the coefficient level of the previously coded coefficients. 37.根据权利要求35所述的装置,其中所述统计包括包含于与所述当前系数群组相同的变换块或与所述当前系数群组不同的变换块中的一或多者中的先前系数群组中的所述先前经译码系数的所述系数层级的统计。37. The device of claim 35, wherein the statistics comprise statistics of the coefficient levels of the previously coded coefficients in a previous coefficient group included in one or more of the same transform block as the current coefficient group or a transform block different from the current coefficient group. 38.根据权利要求35所述的装置,其中所述处理器经配置以:38. The device of claim 35, wherein the processor is configured to: 将所述先前经译码系数中的至少一者的系数层级与所述统计的函数进行比较;及comparing a coefficient level of at least one of the previously coded coefficients to a function of the statistic; and 基于所述比较,确定是增加抑或降低所述统计的值。Based on the comparison, a determination is made as to whether to increase or decrease the value of the statistic. 39.根据权利要求38所述的装置,其中所述统计的所述函数包括左移位除以第二常数值的所述统计的值的第一常数值。39. The apparatus of claim 38, wherein the function of the statistic comprises a first constant value that is left-shifted and divided by a second constant value. 40.根据权利要求35所述的装置,其中在所述残余视频数据的每一切片的开始处,将所述统计的值初始化为零。40. The device of claim 35, wherein the value of the statistic is initialized to zero at the beginning of each slice of the residual video data. 41.根据权利要求35所述的装置,其中确定所述统计包括按每一系数群组确定一次所述统计。41. The device of claim 35, wherein determining the statistic comprises determining the statistic once per group of coefficients. 42.根据权利要求41所述的装置,其中所述处理器经配置以在于多个先前系数群组中的每一者中译码系数层级的绝对值或系数层级的剩余绝对值中的一者时,确定所述统计。42. The device of claim 41, wherein the processor is configured to determine the statistic when coding one of an absolute value of a coefficient level or a residual absolute value of a coefficient level in each of a plurality of previous coefficient groups. 43.根据权利要求35所述的装置,其中所述处理器经配置以针对多个不同类别的系数群组中的每一者确定单独统计,其中所述不同类别是基于包含所述系数群组的变换块的特性来定义。43. The device of claim 35, wherein the processor is configured to determine separate statistics for each of a plurality of different categories of coefficient groups, wherein the different categories are defined based on characteristics of a transform block that includes the coefficient groups. 44.根据权利要求43所述的装置,其中所述变换块的所述特性至少包含所述变换块是否为明度块,及所述变换块是否为变换跳过块。44. The device of claim 43, wherein the characteristics of the transform block include at least whether the transform block is a luma block, and whether the transform block is a transform skip block. 45.根据权利要求43所述的装置,其中所述处理器经配置以确定指示所述变换块的哪些特性用于定义所述不同类别的系数群组的语法元素,其中所述语法元素包含于所述残余视频数据的序列参数集SPS或图片参数集PPS中的一者中。45. The device of claim 43, wherein the processor is configured to determine a syntax element indicating which characteristics of the transform block are used to define the different categories of coefficient groups, wherein the syntax element is included in one of a sequence parameter set (SPS) or a picture parameter set (PPS) of the residual video data. 46.根据权利要求43所述的装置,其中所述处理器经配置以基于包含所述当前系数群组的所述变换块的特性,确定所述当前系数群组的类别,并基于用于所述所确定类别的所述统计,确定用于所述变换块中的所述当前系数群组的所述莱斯参数的所述初始值。46. A device according to claim 43, wherein the processor is configured to determine the category of the current coefficient group based on characteristics of the transform block that includes the current coefficient group, and determine the initial value of the Rice parameter for the current coefficient group in the transform block based on the statistics for the determined category. 47.根据权利要求35所述的装置,其中所述处理器经配置以根据所述统计的函数,将所述统计的值映射为用于所述当前系数群组的所述莱斯参数的所述初始值。47. A device according to claim 35, wherein the processor is configured to map the value of the statistic to the initial value of the Rice parameter for the current coefficient group according to a function of the statistic. 48.根据权利要求47所述的装置,其中所述统计的所述函数包括所述莱斯参数的最大值或除以常数值的所述统计的所述值中的最小者的选择。48. An apparatus according to claim 47, wherein the function of the statistic comprises a selection of a maximum of the Rice parameter or a minimum of the value of the statistic divided by a constant value. 49.根据权利要求35所述的装置,其中所述处理器经配置以:49. The device of claim 35, wherein the processor is configured to: 在译码所述当前系数群组中的所述系数中的所述至少一者的所述系数层级的所述剩余绝对值之后,基于所述莱斯参数的所述初始值及所述当前系数群组中的所述系数中的所述至少一者的所述系数层级的绝对值,更新所述莱斯参数的所述初始值;及After coding the remaining absolute value of the coefficient level of the at least one of the coefficients in the current coefficient group, updating the initial value of the Rice parameter based on the initial value of the Rice parameter and the absolute value of the coefficient level of the at least one of the coefficients in the current coefficient group; and 使用由所述莱斯参数的所述经更新值定义的码,译码所述当前系数群组中的所述系数中的另一者的系数层级的剩余绝对值。Using a code defined by the updated value of the Rice parameter, the remaining absolute value of the coefficient level of another one of the coefficients in the current coefficient group is decoded. 50.根据权利要求35所述的装置,其中所述视频译码装置包括视频解码装置,且其中所述视频解码装置的所述处理器经配置以使用由所述莱斯参数定义的码,解码所述当前系数群组中的所述系数中的所述至少一者的所述系数层级的所述剩余绝对值。50. A device according to claim 35, wherein the video decoding device includes a video decoding device, and wherein the processor of the video decoding device is configured to decode the residual absolute value of the coefficient level of at least one of the coefficients in the current coefficient group using a code defined by the Rice parameters. 51.根据权利要求35所述的装置,其中所述视频译码装置包括视频编码装置,且其中所述视频编码装置的所述处理器经配置以使用由所述莱斯参数定义的码,编码所述当前系数群组中的所述系数中的所述至少一者的所述系数层级的所述剩余绝对值。51. A device according to claim 35, wherein the video decoding device comprises a video encoding device, and wherein the processor of the video encoding device is configured to encode the residual absolute value of the coefficient level of at least one of the coefficients in the current coefficient group using a code defined by the Rice parameters. 52.根据权利要求35所述的装置,其中由所述莱斯参数的所述初始值定义的所述码包括哥伦布莱斯码或指数哥伦布码中的一者。52. The apparatus of claim 35, wherein the code defined by the initial value of the Rice parameter comprises one of a Golomblais code or an Exponential Golomb code. 53.根据权利要求35所述的装置,其中所述当前系数群组包括变换系数或并未应用变换的系数。53. The device of claim 35, wherein the current coefficient group comprises transform coefficients or coefficients to which no transform is applied. 54.一种视频译码装置,其包括:54. A video decoding device comprising: 用于确定残余视频数据的先前经译码系数的系数层级的统计的装置,所述先前经译码系数在所述残余视频数据的变换块中的当前系数群组之前经译码;means for determining statistics of coefficient levels of previously coded coefficients of residual video data, the previously coded coefficients being coded before a current coefficient group in a transform block of the residual video data; 用于基于所述统计,在译码所述当前系数群组中的任何系数之前在所述当前系数群组的开始处确定莱斯参数的初始值的装置;及means for determining, based on the statistics, initial values of Rice parameters at the beginning of the current group of coefficients before decoding any coefficients in the current group of coefficients; and 用于使用由所述莱斯参数的所述初始值定义的码,译码所述当前系数群组中的所述系数中的至少一者的系数层级的剩余绝对值的装置。A device for decoding the residual absolute value of the coefficient level of at least one of the coefficients in the current coefficient group using a code defined by the initial value of the Rice parameter. 55.根据权利要求54所述的装置,其中用于确定所述统计的装置包括:55. The apparatus of claim 54, wherein the means for determining the statistic comprises: 用于将所述先前经译码系数中的至少一者的系数层级与所述统计的函数进行比较的装置,其中所述统计的所述函数包括左移位除以第二常数值的所述统计的值的第一常数值;及means for comparing a coefficient level of at least one of the previously coded coefficients to a function of the statistic, wherein the function of the statistic comprises a first constant value left-shifted from a value of the statistic divided by a second constant value; and 用于基于所述比较确定是增加抑或降低所述统计的所述值的装置。Means for determining whether to increase or decrease the value of the statistic based on the comparison. 56.根据权利要求54所述的装置,其中所述用于确定所述统计的装置包括用于在于多个先前系数群组中的每一者中译码系数层级的绝对值或系数层级的剩余绝对值中的一者时,按每一系数群组确定一次所述统计的装置。56. The device of claim 54, wherein the means for determining the statistic comprises means for determining the statistic once per coefficient group when coding one of an absolute value of a coefficient level or a residual absolute value of a coefficient level in each of a plurality of previous coefficient groups. 57.根据权利要求54所述的装置,其中所述用于确定所述统计的装置包括用于针对多个不同类别的系数群组中的每一者确定单独统计的装置,其中所述不同类别是基于包含所述系数群组的变换块的特性来定义,且其中所述变换块的所述特性至少包含所述变换块是否为明度块,及所述变换块是否为变换跳过块。57. The device of claim 54, wherein the means for determining the statistics comprises means for determining a separate statistic for each of a plurality of different categories of coefficient groups, wherein the different categories are defined based on characteristics of a transform block that includes the coefficient groups, and wherein the characteristics of the transform block include at least whether the transform block is a luma block and whether the transform block is a transform skip block. 58.根据权利要求54所述的装置,其中所述用于确定用于所述当前系数群组的所述莱斯参数的所述初始值的装置包括用于根据所述统计的函数,将所述统计的值映射为所述莱斯参数的所述初始值的装置,其中所述统计的所述函数包括所述莱斯参数的最大值或除以常数值的所述统计的所述值中的最小者的选择。58. A device according to claim 54, wherein the device for determining the initial value of the Rice parameter for the current coefficient group includes a device for mapping the value of the statistic to the initial value of the Rice parameter according to a function of the statistic, wherein the function of the statistic includes a selection of the minimum of the maximum value of the Rice parameter or the value of the statistic divided by a constant value. 59.一种包括指令的计算机可读存储媒体,所述指令在由视频译码装置的一或多个处理器执行时使得所述处理器进行以下操作:59. A computer-readable storage medium comprising instructions that, when executed by one or more processors of a video coding device, cause the processors to: 确定残余视频数据的先前经译码系数的系数层级的统计,所述先前经译码系数在所述残余视频数据的变换块中的当前系数群组之前经译码;determining statistics of a coefficient level of previously coded coefficients of residual video data that were coded before a current coefficient group in a transform block of the residual video data; 基于所述统计,在译码所述当前系数群组中的任何系数之前在所述当前系数群组的开始处确定莱斯参数的初始值;及determining, based on the statistics, initial values of Rice parameters at the beginning of the current coefficient group before decoding any coefficients in the current coefficient group; and 使用由所述莱斯参数的所述初始值定义的码,译码所述当前系数群组中的所述系数中的至少一者的系数层级的剩余绝对值。Using a code defined by the initial value of the Rice parameter, the residual absolute value of the coefficient level of at least one of the coefficients in the current coefficient group is decoded.
HK16106553.8A 2013-07-12 2014-07-10 Rice parameter initialization for coefficient level coding in video coding process HK1218595B (en)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201361845850P 2013-07-12 2013-07-12
US61/845,850 2013-07-12
US201361846512P 2013-07-15 2013-07-15
US61/846,512 2013-07-15
US201361882536P 2013-09-25 2013-09-25
US61/882,536 2013-09-25
US201361898968P 2013-11-01 2013-11-01
US61/898,968 2013-11-01
US201361907693P 2013-11-22 2013-11-22
US61/907,693 2013-11-22
US201361915337P 2013-12-12 2013-12-12
US61/915,337 2013-12-12
US14/327,398 2014-07-09
US14/327,398 US10021419B2 (en) 2013-07-12 2014-07-09 Rice parameter initialization for coefficient level coding in video coding process
PCT/US2014/046218 WO2015006602A2 (en) 2013-07-12 2014-07-10 Rice parameter initialization for coefficient level coding in video coding process

Publications (2)

Publication Number Publication Date
HK1218595A1 HK1218595A1 (en) 2017-02-24
HK1218595B true HK1218595B (en) 2019-08-30

Family

ID=

Similar Documents

Publication Publication Date Title
EP3020187B1 (en) Rice parameter initialization for coefficient level coding in video coding process
US9313498B2 (en) Sign hiding techniques for quantized transform coefficients in video coding
DK2805487T3 (en) Throughput improvement of cabac weighted level coding
KR102283307B1 (en) Rice parameter update for coefficient level coding in video coding process
US9930348B2 (en) Coefficient level coding in a video coding process
US9491463B2 (en) Group flag in transform coefficient coding for video coding
US20140003530A1 (en) Sign hiding techniques for quantized transform coefficients in video coding
CN104205835B (en) Export last position decoded context for video decoding
WO2013056097A1 (en) Coding non-symmetric distributions of data
KR20140028121A (en) Contexts for coefficient level coding in video compression
HK1218595B (en) Rice parameter initialization for coefficient level coding in video coding process
HK1198233B (en) Throughput improvement for cabac coefficient level coding
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载