CN112534814B - 视频编码中的系数上下文建模方法和设备 - Google Patents

视频编码中的系数上下文建模方法和设备 Download PDF

Info

Publication number
CN112534814B
CN112534814B CN201980051851.XA CN201980051851A CN112534814B CN 112534814 B CN112534814 B CN 112534814B CN 201980051851 A CN201980051851 A CN 201980051851A CN 112534814 B CN112534814 B CN 112534814B
Authority
CN
China
Prior art keywords
bin
value
context
bins
class
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980051851.XA
Other languages
English (en)
Other versions
CN112534814A (zh
Inventor
张文豪
傅德良
马俊铖
刘辰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hulu LLC
Original Assignee
Hulu LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hulu LLC filed Critical Hulu LLC
Publication of CN112534814A publication Critical patent/CN112534814A/zh
Application granted granted Critical
Publication of CN112534814B publication Critical patent/CN112534814B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3071Prediction
    • H03M7/3075Space
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3079Context modeling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

在一些实施方式中,一种方法确定多个二进数类,这些二进数类被用于确定用于视频中的当前块的熵编码的上下文模型。该方法计算多个二进数类中的第一二进数类的第一值,并且计算多个二进数类中的第二二进数类的第二值。通过第一权重对第一二进数类的第一值进行加权以生成加权的第一值,并且通过第二权重对第二二进数类的第二值进行加权以生成加权的第二值。方法然后基于第一加权值和第二加权值选择上下文模型。

Description

视频编码中的系数上下文建模方法和设备
【相关申请的交叉引用】
本公开要求2019年8月29日提交的标题为“Coeffecient Context Modeling InVideo Coding”的美国非临时申请号16/555,895的优先权,该非临时申请要求2018年8月31日提交的标题为“Coeffecient Context Modeling In Video Coding”的美国临时申请号62/726,113的优先权。此处为了所有目的以引证的方式将这些申请的全部内容全文并入。
【背景技术】
在视频编码框架中,转码器经由一组过程对视频内容进行转码:预测、变换、量化和熵编码。在熵编码中,对从变换和量化块接收的经变换系数应用上下文建模(a contextmodeling)过程。熵编码使用上下文模型(a context model)来预测经变换系数(transformed coefficients)的特性的概率。现有方法使用固定的局部模式(a fixedlocal pattern)来计算正被编码的当前块的上下文模型。例如,使用来自当前块附近的其它块的系数的固定模式,这无法实现最有效的压缩。
【附图说明】
图1描绘了根据一些实施方式的用于执行熵编码的简化系统。
图2A描绘了根据一些实施方式的转码器熵编码块的示例。
图2B描绘了根据一些实施方式的解码器熵编码块的示例。
图3描绘了4×4系数块的示例以例示根据一些实施方式的对经变换系数进行熵编码的过程。
图4描绘了根据一些实施方式的处理经变换系数块的流程图。
图5描绘了8×8块示例以例示根据一些实施方式的模板。
图6A和图6B描绘了根据一些实施方式的两个局部模板将具有相同的上下文(即使局部模板中的系数不同)的示例。
图7A和图7B描绘了根据一些实施方式的改变多个上下文模型可能有用的示例。
图8描绘了根据一些实施方式的使用二进数(bin)类的上下文建模过程的系数块。
图9描绘了根据一些实施方式的用于使用基于位置的上下文建模来确定上下文模型的方法的简化流程图。
图10描绘了根据一些实施方式的用于基于位置的上下文建模的伪代码。
图11描绘了根据一些实施方式的用于跨平面上下文建模的简化流程图。
图12描绘了根据一些实施方式的用于跨平面上下文建模的伪代码。
图13描绘了根据一些实施方式的使用自适应数量的二进数类的上下文建模过程的系数块。
图14描绘了根据一些实施方式的转码系统的示例。
图15描绘了根据一些实施方式的解码系统的示例。
【具体实施方式】
本文描述了用于视频编码系统的技术。在以下描述中,为了说明的目的,阐述了大量示例和具体细节,以便提供一些实施方式的彻底理解。由权利要求限定的一些实施方式可以单独地或与下面描述的其它特征组合地包括这些示例中的一些或全部特征,并且还可以包括本文所述的特征和概念的修改和等同物。
与使用固定模式来计算上下文模型的现有方法相比,一些实施方式自适应地生成更灵活的上下文模型以反映预测经变换系数的特性的概率。改进包括:1)在确定上下文模型时考虑距正被编码的当前块的距离;2)在导出上下文模型时使用跨二进数依赖性(cross-bin dependency);和/或3)使用局部模板尺寸和所使用的上下文模型的数量的灵活控制。
利用增强的上下文建模方法,可以提高对经变换系数进行的熵编码的准确性,这导致在呈现经变换系数时使用更少的位。这是因为视频编码器中的熵编码块高度依赖于输入语法值/串的概率分布。上下文模型表示概率,并且上下文建模的过程被用于实时地导出概率。如果上下文建模被适当设计且所导出的概率接近实际概率,则熵编码模型可以生成语法值的高效位表示。否则,如果所估计的概率不同于实际概率,则熵编码可以工作,但不是最高效的位表示,并且所得到的位流可能使用比最优模型更多的位。由此,上下文模型的准确性可以允许转码器使用更少的位来表示视频流。使用更少的位来编码经变换系数也提高了转码器的压缩性能。
系统
图1描绘了根据一些实施方式的用于执行熵编码的简化系统100。系统100对源视频资产进行转码,该源视频资产可以是任何类型的视频,诸如用于电视节目、影片或视频剪辑。源视频可能需要被转码成一种或多种格式,诸如以一个或多个位率的格式。在一些实施方式中,服务器系统102向客户端104发送经编码位流。例如,服务器系统102可以向客户端104发送视频以供回放。
服务器系统102包括将视频转码成经编码位流的转码器106。转码器106可以是配置在中央处理单元(CPU)上的软件视频处理器/转码器、具有图形处理单元(GPU)的硬件加速视频处理器/转码器、现场可编程门阵列(FPGA)和/或在专用集成电路(ASIC)中实施的硬件处理器/转码器。转码可以是从一种数字格式到另一种数字格式的转换。转码可以涉及对源格式进行解码并将源视频编码为另一数字格式,或者将源内容转换为具有特定分辨率、帧速率、位率、编解码器等的视频。而且,编码可以是将模拟源内容转换为数字格式。如所使用的,术语转码可以包括编码。
在转码过程期间,转码器熵编码块108对当前帧的当前块执行熵编码。熵编码可以用于压缩编码过程的不同方面;然而,一些实施方式集中于经变换系数的熵编码和量化块,该熵编码是由变换处理的预测残差。预测残差对应于输入预测单元(PU)与预测的预测单元之间的差。对该差进行变换和量化,然后执行熵编码。
转码器106通过网络或其它类型的介质将所得到的经编码位流(encodedbitstream)发送到解码器112。解码器112接收经编码的位流,并且将其输入到解码器熵编码块110中以恢复解码过程所需的信息。
图2A描绘了根据一些实施方式的转码器熵编码块108的示例。熵编码引擎204-1将二进制串(例如,被称为二进数(bins)的二进制数)压缩成经压缩位(compressed bits)。理论上,熵编码可以基于如上所述的预测未压缩二进数(uncompressed bins)的值的概率来实现有效压缩。上下文是预测二进数的值的概率,并且确定概率的过程在上下文建模引擎202-1中执行。上下文建模引擎202-1可以确定上下文模型,该过程与背景技术中的过程相比被细化,如以下将描述的。上下文模型包括是不同概率的离散表示的上下文索引。上下文模型是用于二值化符号的一个或多个二进数的概率模型。上下文建模引擎202-1根据最近编码的数据符号的统计数据从可用模型的选择中选择上下文模型。上下文模型存储各个二进数是“1”或“0”的概率。一旦被选择,上下文模型就被输入到熵编码引擎204-1中,该引擎使用上下文模型来对位进行转码。
图2B描绘了根据一些实施方式的解码器熵编码块110的示例。熵编码引擎204-2接收经压缩二进制串(a compressed string of binaries),并且从经压缩位(compressedbits)确定二进制串(例如,被称为二进数的二进制数)。上下文建模引擎202-2可以与以上关于上下文建模引擎202-1描述类似地确定上下文模型。上下文建模引擎202-2根据最近解码的数据符号的统计数据从可用模型的选择中选择上下文模型。上下文模型存储各个二进数是“1”或“0”的概率。一旦被选择,上下文模型就被输入到熵编码引擎204-2中,该引擎使用上下文模型来将经压缩位解码成二进数。
熵编码
图3提供了4×4系数块302的示例以例示根据一些实施方式的对经变换系数进行熵编码的过程。尽管描述了4×4系数块,但是也可以使用其它尺寸的块。系数的一个分布包括集中到左上角的较高系数值,而零系数大部分位于右下角。上下文建模引擎202在304处执行二值化过程,以在306处将二维(2D)数据中的系数转换成一维(1D)阵列。一维数据可以是二进制数,二维数据可以是表示二进制数的数字。例如,二维数据可以是数字“2”,并且该数字的一维阵列可以是二进制数“1010”。
上下文建模引擎202根据从块的右下角开始到左上角的固定模式来扫描系数。最后一步是将系数值转换成二进数串。表306示出了系数的二值化的可能结果。第一列308-1列出了来自扫描的系数值。上下文建模引擎202基于各个系数的值来确定列308-2到308-6中的值。表306包括以下特性:
1.系数的符号由列308-3中称为符号二进数的二进数传送。符号二进数对于正系数被设置为0值,或者对于负系数被设置为1值。
2.系数的容量总是被分为多个二进数平面,诸如非零二进数、符号二进数、bin0、bin1和剩余二进数。
a.列308-2中的非零二进数指示当前系数是否具有非零容量。
b.对于非零系数,列308-3中的符号二进数等于0或1,并且分别指示系数是正的还是负的。
c.列308-4中的bin0,也称为大于一的二进数(the greater-than-one bin),在系数的容量大于1时等于1。否则,上下文建模引擎202将bin0设置为0,并且对于当前系数不需要更多的二进数。
d.类似地,列308-5中的二进数l指示系数的容量是否大于2。
e.最后,列308-6中的剩余二进数用于表示最后系数的值(例如,系数容量>2),它们应该是唯一二进数串。
如310所示,在表306中,系数“2”的一维值是“1010”。表306还存储其它系数的一维值。在不同编码标准的实施方案中,生成图3中的表的处理细节可以变化,但是在不同视频编码标准中共享一般概念。
为了描述经变换系数的熵编码的过程,图4描绘了根据一些实施方式的处理经变换系数块(a block of transformed coefficients)的流程图400。在402处,上下文建模引擎202开始编码系数块(a block of coefficients)。在404处,上下文建模引擎202创建非零二进数(non-zero bin),导出当前非零二进数的上下文模型,并且对当前非零二进数进行熵编码。之后,上下文建模引擎202确定是否需要更多的非零二进数。如果是,则过程重复以创建另一非零二进数,并且执行对另一非零二进数进行熵编码的相同过程。当不再有非零二进数时,过程进行到符号二进数。
在406处,上下文建模引擎202创建符号二进数,导出当前符号二进数的上下文模型,并且对当前符号二进数进行熵编码。之后,上下文建模引擎202确定是否需要更多的符号二进数。如果是,则过程重复以创建另一符号二进数,并且执行对另一符号二进数进行熵编码的相同过程。当不再有符号二进数时,过程进行到bin0二进数。
在408处,上下文建模引擎202创建bin0二进数,导出当前bin0二进数的上下文模型,并且对当前bin0二进数进行熵编码。之后,上下文建模引擎202确定是否需要更多的bin0二进数。如果是,则过程重复以创建另一bin0二进数,并且执行对另一bin0二进数进行熵编码的相同过程。当不再有bin0二进数时,过程进行到bin1二进数。
上下文建模引擎202在410处对bin1二进数和在412处对任何剩余二进数执行上述过程。在414处,上下文建模引擎202完成对系数块的熵编码。
被熵编码的各个二进数需要执行上下文建模过程以在二进数正被编码时(例如,实时地)从上下文模型接收概率状态。不同的上下文建模方法可以用于不同的二进数。例如,模板可以用于确定上下文模型。图5描绘了8×8块示例302以例示根据一些实施方式的模板。上下文建模引擎202可以处理系数块500。对于在502处呈现为当前块c的当前处理二进数,上下文建模引擎202使用已经处理的多个相邻二进数来计算当前处理二进数的上下文模型。例如,局部上下文模板504包括系数块500中的五个相邻框(boxes),表示已被处理的相邻二进数。
可以使用用于扫描经变换系数的不同方法。对于在图3中在304处示出的第一方法,经变换系数扫描被分成多遍扫描(multiple scan passes)。在第一遍中,编码旗标bin0(指示系数的量值是否大于0;1意味着是,0意味着否)。在接下来的两遍中,编码两个旗标binl和bin2(分别指示系数的量值是否大于1和2;1意味着是,0意味着否)。在最后的两遍中,编码剩余值。在第二方法中,在单遍扫描(a single scan pass)中编码变换系数。在传输用于下一扫描位置的任何数据之前,对扫描位置的所有旗标(bin0、bin1、bin2和剩余值)进行编码。在第一方法中,为了对当前系数进行编码,使用来自由局部上下文模板覆盖的系数的信息来导出上下文模型。即,为了编码bin0,使用局部上下文模板中的用于bin0的值的和来导出上下文模型;为了编码bin1,使用局部上下文模板中的用于bin1的值的和来导出上下文模型。对于第二方法,也使用来自由局部上下文模板覆盖的系数的信息来导出上下文模型,但是处理的一些细节是不同的。例如,为了编码bin0,使用局部上下文模板中的系数的量值的和来导出上下文模型。用于上下文建模的伪代码如下:
Figure GDA0003887911800000071
简言之,对局部上下文模板内的非零二进数进行计数并将其输出作为当前二进数c的上下文模型索引。在先前的方法中存在一些缺点:
1.将局部模板中覆盖的相邻二进数以相等的权重混合在一起,这意味着这些相邻二进数与当前二进数具有相同的相关性。一些实施方式可以区分它们,因为更靠近当前二进数的二进数可以具有与当前二进数更强的相关性。图6A和图6B示出了根据一些实施方式的两个局部模板在不区分时具有相同的上下文模型(即使局部模板中的系数不同)的示例。图6A描绘了第一系数块600,且图6B描绘了第二系数块602。第一系数块包括局部模板604-1,第二系数块602包括第二局部模板604-2。在606-1处,局部模板604-1具有与局部模板604-2中606-2处的位“1”相比更靠近当前系数的位“1”。更靠近当前系数的系数可具有与当前系数的更强相关性,因为这些系数可能来自更靠近当前系数内容的内容。更靠近的系数具有更强相关性的一个原因是因为自然视频包括纹理的逐渐过渡,该过渡将被表示为一组彼此接近的残差系数。
2.局部上下文模板不使用来自先前串二进数平面的信息。例如,当编码binl时,仅使用来自局部模板的处理后的binl来导出当前binl的上下文模型。整个bin0平面已经被处理,但是bin0信息未被bin1平面使用。
3.在不考虑输入视频特性(诸如所使用的量化参数、非零系数值的数量等)的情况下,编码过程中使用的上下文模型的数量是固定的。图7A和图7B示出了根据一些实施方式的其中改变上下文模型的数量可以有用的示例。先前,即使系数值不同,上下文模型的数量对于图7A和图7B所示的系数块700和702也是相同的。例如,系数块702中的局部模板704-2主要包括零值,并且系数块700中的局部模板704-1包括所有非零值。在局部模板704-1中使用更多上下文模型且在局部模板704-2中使用更少上下文模型可以更好,因为更多上下文模型可以准确地捕获具有更多非零系数的变换系数块的统计数据。而且,使用更少上下文模型可避免具有更少非零系数的块的上下文稀释问题,因为当大多数系数为零时可能不需要更多上下文模型。
基于位置的上下文建模
考虑到上述问题,先前的方法无法为经变换系数生成高度准确的上下文模型,这导致较低的压缩效率。为了克服不区分局部模板中的二进数,图8描绘了根据一些实施方式的使用二进数类的上下文建模过程的系数块800。上下文建模引擎202在计算上下文模型时分析当前二进数c与局部上下文模板802中的相邻二进数之间的距离。基于与当前二进数c801有关的二进数的位置,上下文建模引擎202将局部上下文模板中的二进数分类成不同的类,诸如被称为line1、line2的行等。804-1处的line1类可以包含相邻二进数的最近子集,该子集在二进数c的上下文模型的导出期间可以被给予更多的权重。例如,linel类包括具有与当前二进数c相邻的边的两个二进数。804-2处的line2类位于离linel类中的二进数更远的位置,并且可以在计算中被给予更少的权重,因为二进数可能不那么类似于当前二进数c 801。例如,line2类包括具有与line1中的两个二进数相邻的边的三个二进数。line2类中的二进数不具有与当前二进数c 801相邻的边。在一些实施方式中,可以从二进数中的点,诸如各个二进数的中心点到当前二进数c的中心点,测量距当前二进数c的距离。
图9描绘了根据一些实施方式的用于使用基于位置的上下文建模来确定上下文模型的方法的简化流程图900。在902处,上下文建模引擎202选择用于类的加权因子。在一些实施方式中,类可以是行,但是类可以以其他方式确定。
在904处,上下文建模引擎202确定类中的二进数。例如,上下文建模引擎202选择在对应于如图8所示的行linel和行line2的位置中的二进数。上下文建模引擎202可以使用当前二进数的位置来设置行的位置。在一些实施方式中,对于(x,y)处的给定位置C,上下文建模引擎202可以使用坐标计算来计算a、b、c、d和e的五个相邻位置。例如,位置a是(x+1,y),位置b是(x,y+1),位置c是(x+2,y),位置d是(x+1,y+1),并且位置e是(x,y+2)。于是,位置a和b将在line1类中,而位置c、d和e在line2类中。
在906处,上下文建模引擎202确定各个类的系数的系数值。例如,上下文建模引擎202计算具有各行的非零系数的二进数的聚合(例如,和)。然而,可以使用其他计算,诸如系数的平均值。
在908处,上下文建模引擎202将权重“a”应用于line1的系数值,并将权重“b”应用于line2的系数值。例如,上下文建模引擎202可以将权重乘以系数的和。在910处,上下文建模引擎202基于加权的聚合值确定上下文索引。例如,内容索引是line1和line2的加权和的组合。用于特定二进数的上下文模型可以是整数列表。整数值可以被转化成上下文建模引擎202内部的概率。在912处,上下文建模引擎202将上下文索引发送到熵编码引擎204,该熵编码引擎使用上下文索引来确定在熵编码中使用的上下文模型。
图10示出了根据一些实施方式的用于基于位置的上下文建模过程的伪代码1000。在1002和1004处,变量a和b分别是用于line1和line2中的二进数的和的加权因子。在一些实施方式中,到当前二进数的距离较小的二进数的类可以使用较大的加权因子,因为这些二进数可以与当前二进数更相似。而且,上下文建模引擎202可以分析二进数以确定与当前二进数最相似的二进数。当使用两行的定位时,在1006处,上下文建模引擎202组合用于line1中的块的非零系数的和。例如,当二进数具有非零系数时,“sum+=1”将值“1”加到和。然后,在1008处,上下文建模引擎202组合用于line2中的块的非零系数的和。在1010处,上下文建模引擎202将权重“a”应用于line1的和,并将权重“b”应用于line2的和。上下文索引是line1和line2的加权和的组合。如果给予line1中的块更高的权重,那么这些块可能对上下文索引有更大的影响。因此,如果linel中的块更类似于当前系数,那么与不使用权重时相比,内容模型可以更准确。
跨平面上下文建模
为了使用来自先前二进数平面的信息,上下文建模引擎202可以使用跨平面上下文建模过程。例如,当处理当前bin1时,上下文建模引擎202可以将先前处理的bin1值用于局部上下文模板中的二进数,但是也可以将先前处理的bin0值用于局部上下文模板中的二进数以导出上下文模型。图11描绘了根据一些实施方式的用于跨平面上下文建模的简化流程图1100。在1102处,上下文建模引擎202确定binl的值。例如,上下文建模引擎202确定binl的行linel和line2的系数值。
在1104处,上下文建模引擎202确定是否应当使用bin0值。例如,上下文建模引擎202确定具有用于bin1的line1和line2的非零值的二进数的和。然后,上下文建模引擎202确定该和是否满足阈值。例如,如果line1和line2的值的和为零,那么上下文建模引擎202查核在bin0中具有非零值的二进数。在其它示例中,如果具有line1和line2的非零值的二进数的和低于阈值,则上下文建模引擎202查核bin0的值。如果具有用于bin1的line1和line2的非零值的二进数低于阈值(或零),那么无法从系数推断出太多信息来确定上下文模型。然而,具有用于另一二进数(诸如bin0)的非零值的二进数可用于推断上下文模型的一些信息。在一些情况下,使用来自bin0的信息可以生成binl的上下文模型的更准确估计。因此,在1106处,当bin0的值将被用于确定上下文模型时,上下文建模引擎202计算这些值。
在1108处,上下文建模引擎202计算内容索引。例如,如果来自bin0的值未被使用,那么上下文建模引擎202仅使用bin1值来计算内容索引。如果使用来自bin0的值,那么上下文建模引擎202使用bin1值和bin0值来计算内容索引。
上述过程也可用于剩余的二进数,这可以使用来自bin1和/或bin0的值。
图12描绘了根据一些实施方式的用于跨平面上下文建模的伪代码1200。在1202处,上下文建模引擎202对于bin0和binl将linel和line2的值的和设置为零。在1204处,上下文建模引擎202计算具有在行line0和line1中的每一行中的bin1的非零值的二进数的和。在1212处,如果binl的值不为零,则上下文建模引擎202基于用于binl的line1和line2的值的和来计算内容索引。
如果具有用于binl的linel和line2的非零值的二进数的和为零,那么无法从来自binl的信息中推断出除了所有值为零之外的太多信息。然而,用于bin0的值可以用于推断用于上下文模型的一些信息。在1206处,如果具有用于bin1的line1和line2行中的非零值的二进数的和为零,那么上下文建模引擎202查核bin0的值。在1208处,上下文建模引擎202基于来自binl的linel和line2的值计算上下文模型。在这种情况下,上下文建模引擎202计算具有用于bin0的linel和line2的非零值的二进数的和。然后,在1210处,上下文建模引擎202基于用于bin0的line1和line2的值的和计算内容索引。由于binl的值都是零,因此使用bin0的值可以生成binl的上下文索引的更准确估计。
自适应上下文建模过程
在基于位置的上下文建模过程和跨平面上下文建模过程中,上下文建模引擎202可以动态地确定模板尺寸和/或上下文模型的数量。使用自适应模板尺寸和/或自适应数量的上下文模型提供了复杂度与压缩增益之间的折衷。例如,局部上下文模板的更多行和更大数量的上下文模型最终可以导致更准确的上下文模型和更高的压缩效率,但是具有更高的计算复杂度。由于使用了更大范围的上下文模型,因此更大数量的上下文模型能够以更大的粒度预测系数的值。然而,在局部上下文模板中使用更多的行需要更多的计算。过程提供了一种灵活的方式,该方式基于视频的不同特性,诸如视频分辨率、量化参数(QP)、当前系数的位置以及当前局部模板中的非零系数的数量,来选择适当的模板尺寸和上下文模型的数量。
例如,当输入视频具有低分辨率、量化参数大、和/或先前帧中的非零系数的数量小时,上下文建模引擎202可以针对较少数量的上下文模型使用较少数量的上下文索引。最简单的情况是对于两个上下文模型仅有两个上下文索引。即,内容索引可以是一个或两个值,诸如“0”或“1”。对于零值,上下文模型指示模板中的所有二进数可以是零,并且对于一值,上下文模型指示模板包括所有非零二进数。另一示例是上下文索引的数量等于模板中非零二进数的数量,诸如上下文索引=模板中非零二进数的数量。另一示例可以使用多于两个的上下文索引,诸如“0”、“1”和“2”的值。对于零值,上下文模型指示模板中的所有二进数为零,对于一值,上下文模型指示模板中有一个或两个非零二进数,而对于二值,上下文模型指示模板中有三个或四个非零二进数。也可以使用其它数量的上下文索引和上下文模型。
在另一示例中,当视频是高分辨率、量化参数小和/或局部模板中的非零系数的数量大时,可以使用更多上下文模型来提高熵编码的准确度。例如,视频中的条件,诸如高分辨率、小量化参数等,可以生成更多的非零系数。
较多上下文模型可以准确地捕获具有较多非零系数的块中的变换系数的统计数据,而较少上下文模型可避免具有较少非零系数的块的上下文稀释问题。图13描绘了根据一些实施方式的使用自适应数量的二进数类的上下文建模过程的系数块1300。增加行数增加了上下文模型的数量,因为更多的相邻块意味着更多可能的上下文模型。
上下文建模引擎202考虑视频的特性来确定要使用的上下文模型的数量。基于上下文模型的数量,上下文建模引擎202可以基于当前二进数c与局部上下文模板1302中的相邻二进数之间的距离来确定要使用的类的数量。基于与当前二进数c 1301有关的二进数的位置,上下文建模引擎202将局部上下文模板中的二进数分类成不同的类,诸如被称为line1、line2、line3的行等。1304-1处的line1类可以包含相邻二进数的最近子集,该子集在二进数c的上下文模型的导出期间可以被给予更多的权重。例如,linel类包括与当前二进数c 1301相邻的两个二进数。1304-2处的line2类位于离linel类中的二进数更远的位置,并且可以在计算中被给予更少的权重,因为二进数可能不那么类似于当前二进数c。例如,line2包括与line1中的三个二进数相邻的三个二进数。1304-3处的line3类位于离linel类和line2类中的二进数更远的位置,并且可以在计算中被给予更少的权重,因为二进数可能不那么类似于当前二进数c。例如,line3包括与line1中的三个二进数相邻的四个二进数。
系统
图14描绘了根据一些实施方式的转码系统的示例。一种视频编解码器框架包括一组基本部件:块分割、帧间和帧内预测、变换和量化以及熵编码。
转码器106接收视频帧,该视频帧首先被分成非重叠编码块以用于进一步处理。为了应对不同的视频内容特性,复杂区域将被具有较小尺寸的分区覆盖,而简单区域将被较大的分区覆盖。多个块模式和形状可以一起使用,例如四叉树模式、三叉树模式和二叉树模式可以一起使用,而正方形块和矩形块也可以一起使用。
预测被用于去除视频信号的冗余。通过从正被处理的像素中减去预测像素值,可以显著地减小残差信号的振幅,由此可以减小所得到的位流尺寸。使用当前帧中的参考像素的帧内预测块1410旨在减少帧内的空间冗余。使用来自相邻帧的参考像素的帧间预测块1412试图去除帧之间的时间冗余。运动估计和补偿块1416可以是在转码器侧的帧间预测的子模块,该子模块捕获相邻帧之间的对象的运动轨迹,并且生成用于帧间预测的参考像素。
变换和量化块1404在帧内或帧间预测之后使用剩余像素。变换和量化块1404执行在频域中表示残差信号的变换操作。考虑到人类视觉系统对视频信号的低频分量比高频分量更敏感,量化被设计为通过降低高频信号的精度来进一步压缩残差信号。
为了避免转码器106与解码器112之间的不同步问题,转码器106包含解码模块,以确保转码器106和解码器112都使用相同的数学处理。由此,逆变换和逆量化块1408类似于解码器侧的相同块。逆变换和逆量化块1408使用帧内和帧间预测来重建像素。
环内滤波器1414去除由上述过程引入的任何视觉伪影。以级联方式对重建帧(reconstructed frame)应用各种滤波方法以减少不同的伪影,包括但不限于块伪影、蚊式伪影、色带效应等。
熵编码模块1406可以进一步使用基于模型的方法压缩位流。转码器106通过网络或其它类型的介质将所得到的经编码位流发送到解码器112。
图15描绘了根据一些实施方式的解码系统的示例。解码器112接收经编码的位流,并且将其输入到熵解码块1502中以恢复解码过程所需的信息。如上所述,可以通过以与构建解码帧(decoded frame)相同的方式使用逆变换和逆量化块1504、帧内预测块1506或帧间预测块1508、运动补偿块1510和环内滤波块1512来对解码帧进行解码。
一些实施方式可以在非暂时性计算机可读存储介质中实施,以供指令执行系统、设备、系统或机器使用或与其结合使用。计算机可读存储介质包含用于控制计算机系统执行由一些实施方式描述的方法的指令。计算机系统可以包括一个或多个计算装置。当由一个或多个计算机处理器执行时,指令可以被配置为或可操作为执行在一些实施方式中描述的操作。
如在本文的描述中以及贯穿所附权利要求书所使用的,“一”、“一个”和“该”包括复数引用,除非上下文明确另外规定。而且,如在本文的描述中以及贯穿所附权利要求书所使用的,“中”的含义包括“中”和“上”,除非上下文明确另外规定。
以上描述例示了各种实施方式以及可以如何实施一些实施方式的方面的示例。上述示例和实施方式不应被认为是仅有的实施方式,并且被呈现以例示如由所附权利要求限定的一些实施方式的灵活性和优点。基于以上公开内容和所附权利要求,在不背离由权利要求限定的本发明的范围的情况下,可以采用其它布置、实施方式、实施方案和等同物。

Claims (20)

1.一种用于视频编码中的系数上下文建模的方法,所述方法包括:
由计算装置确定多个二进数类,所述多个二进数类被用于确定用于视频中的当前块的熵编码的上下文模型;
由所述计算装置计算用于第一二进数平面的所述多个二进数类中的第一二进数类的第一值;
由所述计算装置计算用于第一二进数平面的所述多个二进数类中的第二二进数类的第二值;
由所述计算装置通过第一权重对所述第一二进数类的所述第一值进行加权以生成第一加权值,并且通过第二权重对所述第二二进数类的所述第二值进行加权以生成第二加权值;
由所述计算装置确定是否使用来自第二二进数平面的第三值;
当确定不使用所述第三值时,由所述计算装置基于所述第一加权值和所述第二加权值选择上下文模型;以及
当确定使用所述第三值时,由所述计算装置基于所述第一加权值、所述第二加权值和所述第三值选择上下文模型。
2.根据权利要求1所述的方法,其中,所述第一二进数类中的第一二进数中的第一中心点与所述第二二进数类中的第二二进数中的第二中心点相比在距离上更靠近所述当前块。
3.根据权利要求1所述的方法,其中,所述第一二进数类中的二进数中的中心点与所述第二二进数类中的二进数中的中心点相比在距离上更靠近所述当前块。
4.根据权利要求1所述的方法,其中,所述第一二进数类中的二进数被定位在第一行中,并且所述第二二进数类中的二进数被定位在第二行中。
5.根据权利要求1所述的方法,其中,所述第一二进数类和所述第二二进数类处于所述当前块的局部模板中。
6.根据权利要求1所述的方法,其中,所述第一权重对所述第一二进数类的加权高于所述第二权重对所述第二二进数类的加权。
7.根据权利要求1所述的方法,其中,当确定不使用所述第三值时,选择所述上下文模型包括:
基于所述第一加权值和所述第二加权值选择内容索引,其中,所述内容索引指向所述上下文模型。
8.根据权利要求1所述的方法,其中,
计算所述多个二进数类中的第一二进数类的所述第一值包括:基于所述第一二进数类中的二进数的系数值来计算第一和;并且
计算所述多个二进数类中的所述第二二进数类的所述第二值包括:基于所述第二二进数类中的二进数的系数值来计算第二和。
9.根据权利要求8所述的方法,其中,
所述第一和是所述第一二进数类中具有非零系数值的二进数的第一数量;并且
所述第二和是所述第二二进数类中具有非零系数值的二进数的第二数量。
10.根据权利要求8所述的方法,其中,
对所述第一二进数类的所述第一值进行加权包括:通过所述第一权重对所述第一和进行加权以生成第一加权和;并且
对所述第二二进数类的所述第二值进行加权包括:通过所述第二权重对所述第二和进行加权以生成第二加权和。
11.根据权利要求10所述的方法,其中,当确定不使用所述第三值时,选择所述上下文模型包括:使用所述第一加权和以及所述第二加权和来确定所述上下文模型。
12.根据权利要求1所述的方法,其中,确定所述多个二进数类包括:基于所述视频的特性自适应地确定所述多个类的数量。
13.根据权利要求12所述的方法,其中,所述特性包括所述视频的分辨率、量化参数和所述当前块的二进数模板中的非零系数的数量中的一个或多个。
14.根据权利要求1所述的方法,其中,确定所述多个二进数类包括:基于所述视频的特性自适应地确定所述上下文模型的数量。
15.一种非暂时性计算机可读存储介质,其包含指令,这些指令在被执行时控制计算机系统可操作为:
确定多个二进数类,所述多个二进数类被用于确定用于视频中的当前块的熵编码的上下文模型;
计算用于第一二进数平面的所述多个二进数类中的第一二进数类的第一值;
计算用于第一二进数平面的所述多个二进数类中的第二二进数类的第二值;
通过第一权重对所述第一二进数类的所述第一值进行加权以生成第一加权值,并且通过第二权重对所述第二二进数类的所述第二值进行加权以生成第二加权值;
确定是否使用来自第二二进数平面的第三值;
当确定不使用所述第三值时,基于所述第一加权值和所述第二加权值选择上下文模型;并且
当确定使用所述第三值时,基于所述第一加权值、所述第二加权值和所述第三值选择上下文模型。
16.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所述第一二进数类中的第一二进数中的第一中心点与所述第二二进数类中的第二二进数中的第二中心点相比在距离上更靠近所述当前块。
17.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所述第一二进数类中的二进数中的中心点与所述第二二进数类中的二进数中的中心点相比在距离上更靠近所述当前块。
18.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所述第一二进数类中的二进数被定位在第一行中,并且所述第二二进数类中的二进数被定位在第二行中。
19.根据权利要求15所述的非暂时性计算机可读存储介质,其中,
计算所述多个二进数类中的第一二进数类的所述第一值包括:基于所述第一二进数类中的二进数的系数值来计算第一和;并且
计算所述多个二进数类中的所述第二二进数类的第二值包括:基于所述第二二进数类中的二进数的系数值来计算第二和。
20.一种用于视频编码中的系数上下文建模的设备,所述设备包括:
一个或多个计算机处理器;和
包括指令的非暂时性计算机可读存储介质,这些指令在被执行时控制所述一个或多个计算机处理器可操作为:
确定多个二进数类,所述多个二进数类被用于确定用于视频中的当前块的熵编码的上下文模型;
计算用于第一二进数平面的所述多个二进数类中的第一二进数类的第一值;
计算用于第一二进数平面的所述多个二进数类中的第二二进数类的第二值;
通过第一权重对所述第一二进数类的所述第一值进行加权以生成第一加权值,并且通过第二权重对所述第二二进数类的所述第二值进行加权以生成第二加权值;
确定是否使用来自第二二进数平面的第三值;
当确定不使用所述第三值时,基于所述第一加权值和所述第二加权值选择上下文模型;并且
当确定使用所述第三值时,基于所述第一加权值、所述第二加权值和所述第三值选择上下文模型。
CN201980051851.XA 2018-08-31 2019-08-30 视频编码中的系数上下文建模方法和设备 Active CN112534814B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862726113P 2018-08-31 2018-08-31
US62/726113 2018-08-31
US16/555,895 US11113846B2 (en) 2018-08-31 2019-08-29 Coefficient context modeling in video coding
US16/555895 2019-08-29
PCT/US2019/049095 WO2020047430A1 (en) 2018-08-31 2019-08-30 Coefficient context modeling in video coding

Publications (2)

Publication Number Publication Date
CN112534814A CN112534814A (zh) 2021-03-19
CN112534814B true CN112534814B (zh) 2023-03-24

Family

ID=69640009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980051851.XA Active CN112534814B (zh) 2018-08-31 2019-08-30 视频编码中的系数上下文建模方法和设备

Country Status (4)

Country Link
US (2) US11113846B2 (zh)
EP (1) EP3844961A4 (zh)
CN (1) CN112534814B (zh)
WO (1) WO2020047430A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11113846B2 (en) 2018-08-31 2021-09-07 Hulu, LLC Coefficient context modeling in video coding
KR20240068680A (ko) * 2018-10-05 2024-05-17 로즈데일 다이나믹스 엘엘씨 변환 계수 코딩 방법 및 그 장치

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7656319B2 (en) * 2004-07-14 2010-02-02 Agency For Science, Technology And Research Context-based encoding and decoding of signals
US7245241B2 (en) * 2005-11-25 2007-07-17 Microsoft Corporation Image coding with scalable context quantization
US9591320B2 (en) * 2010-07-15 2017-03-07 Texas Instruments Incorporated Context and bypass encoding video
US20120230418A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
BR112013018850B1 (pt) * 2011-12-21 2022-09-27 Sun Patent Trust Método e aparelho de decodificação de imagem, e método e aparelho de codificação de imagem
US20130177070A1 (en) * 2012-01-11 2013-07-11 Qualcomm Incorporated Significance map support for parallel transform coefficient processing in video coding
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US9363510B2 (en) 2012-03-02 2016-06-07 Qualcomm Incorporated Scan-based sliding window in context derivation for transform coefficient coding
JP5884761B2 (ja) 2012-03-26 2016-03-15 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
US10291912B2 (en) 2013-01-16 2019-05-14 Blackberry Limited Context determination for entropy coding of run-length encoded transform coefficients
US9179151B2 (en) * 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
WO2017041271A1 (en) 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
US10523949B2 (en) * 2016-05-25 2019-12-31 Arris Enterprises Llc Weighted angular prediction for intra coding
US10721489B2 (en) * 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
US10484695B2 (en) * 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
EP3490253A1 (en) * 2017-11-23 2019-05-29 Thomson Licensing Encoding and decoding methods and corresponding devices
US10506242B2 (en) * 2018-01-30 2019-12-10 Google Llc Efficient context model computation design in transform coefficient coding
KR102523750B1 (ko) * 2018-03-29 2023-04-20 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림
US11451840B2 (en) * 2018-06-18 2022-09-20 Qualcomm Incorporated Trellis coded quantization coefficient coding
US11113846B2 (en) 2018-08-31 2021-09-07 Hulu, LLC Coefficient context modeling in video coding

Also Published As

Publication number Publication date
EP3844961A4 (en) 2022-05-18
WO2020047430A1 (en) 2020-03-05
US11113846B2 (en) 2021-09-07
US20210383578A1 (en) 2021-12-09
EP3844961A1 (en) 2021-07-07
US11593968B2 (en) 2023-02-28
US20200074689A1 (en) 2020-03-05
CN112534814A (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
JP6931690B2 (ja) コンテンツをエンコードする方法及び計算装置
RU2673011C1 (ru) Усовершенствованное кодирование с внутрикадровым предсказанием с использованием планарных представлений
AU2009338306B2 (en) Device, method and program for image prediction encoding, device, method and program for image prediction decoding, and encoding/decoding system and method
JP5545783B2 (ja) 画像シーケンスを表す符号化されたデータのストリームを復号する方法および画像シーケンスを符号化する方法
US11805262B2 (en) Image encoding device, image decoding device, and image processing method
CN107925763A (zh) 等级分割中的块级别变换选择和隐式信令的编码变换方法和设备
KR20110047697A (ko) 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치
US20230247220A1 (en) Image encoding device, image decoding device and program
WO2012035640A1 (ja) 動画像符号化方法及び動画像復号化方法
US11593968B2 (en) Coefficient context modeling in video coding
JP2016134860A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2016213615A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
WO2020057359A1 (en) Methods and apparatuses of quantization scaling of transform coefficients in video coding system
JP2018074491A (ja) 動画像符号化装置、動画像符号化方法、および動画像符号化プログラム
JP7364936B2 (ja) 符号化方法、符号化装置、及びプログラム
US20230269385A1 (en) Systems and methods for improving object tracking in compressed feature data in coding of multi-dimensional data
US11218705B2 (en) Information processing device and video encoding method
JP2017073602A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
US11647228B2 (en) Method and apparatus for encoding and decoding video signal using transform domain prediction for prediction unit partition
Ding et al. Context-based adaptive zigzag scanning for image coding
CN105049846A (zh) 图像和视频编解码的方法和设备
WO2020066307A1 (ja) 画像復号装置、画像符号化装置、画像処理システム及びプログラム
Hwang Enhanced Coding Tools and Algorithms for Screen Content Video: A Review: A Review
JPWO2015141116A1 (ja) 映像符号化装置、映像符号化方法および映像符号化プログラム
US20200329232A1 (en) Method and device for encoding or decoding video signal by using correlation of respective frequency components in original block and prediction block

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: HULU LLC

Address before: California, USA

Applicant before: HULU, LLC

GR01 Patent grant
GR01 Patent grant