CN111727607A - 基于上下文切换的视频编码和解码的方法和装置 - Google Patents

基于上下文切换的视频编码和解码的方法和装置 Download PDF

Info

Publication number
CN111727607A
CN111727607A CN201880088877.7A CN201880088877A CN111727607A CN 111727607 A CN111727607 A CN 111727607A CN 201880088877 A CN201880088877 A CN 201880088877A CN 111727607 A CN111727607 A CN 111727607A
Authority
CN
China
Prior art keywords
context
block
contexts
bin
syntax element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880088877.7A
Other languages
English (en)
Other versions
CN111727607B (zh
Inventor
F.莱林内克
T.波里尔
Y.陈
E.弗朗索瓦
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.)
InterDigital VC Holdings Inc
Original Assignee
InterDigital VC Holdings Inc
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 InterDigital VC Holdings Inc filed Critical InterDigital VC Holdings Inc
Publication of CN111727607A publication Critical patent/CN111727607A/zh
Application granted granted Critical
Publication of CN111727607B publication Critical patent/CN111727607B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

提供了用于视频编码和解码的方法和装置。视频编码的方法包括:访问(1410)与视频图片中的块相关联的句法元素的二进制位;从与块的块类型相关联的一组上下文中确定(1420)句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的二进制位进行熵编码(1430)。还描述了被格式化为包括编码数据的比特流、计算机可读存储介质和计算机可读程序产品。

Description

基于上下文切换的视频编码和解码的方法和装置
技术领域
本实施例一般涉及视频编码和解码,特别地,涉及基于上下文模型切换(contextmodel switching)的熵编码和解码。
背景技术
本文描述的任何背景信息旨在向读者介绍本领域的各个方面,这些方面可能与下面描述的当前实施例相关。该讨论被认为有助于向读者提供背景信息,以便于更好地理解本公开的各个方面。因此,应该理解的是,应该以这个角度来理解这些陈述。
为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来均衡(leverage)视频内容中的空域(spatial)和时域(temporal)冗余。一般,使用帧内或帧间预测来利用帧内或帧间相关性,然后对原始图像和预测图像之间的差(通常表示为预测误差或预测残差)进行变换、量化和熵编码。为了重构视频,通过与预测、变换、量化和熵编码相对应的逆过程来对压缩数据进行解码。
在高效视频编码(High Efficiency Video Coding,HEVC)标准(“ITU的ITU-TH.265ITU电信标准部(10/2014),系列H:视听和多媒体***,视听服务的基础设施-移动视频的编码,高效视频编码,建议ITU-T H.265”)中,图片被分割(partition)为正方形形状的编码树单元(coding tree unit,CTU),其具有通常为64x64、128x128或256x256的可配置大小。如图1所示,CTU 110是被分割为叶(称为编码单元(Coding Unit,CU))的四叉树的根。对于每个CU,用信号通知(signal)指示CU是使用帧内预测还是帧间预测进行编码的预测模式。如图2所示,连续的一组CTU(例如,CTU 220)可以被分组到条带(slice)210中。CU(例如,CU 230)可以被分割为一个或多个预测单元(Prediction Unit,PU),并且形成被分割为变换单元(Transform Unit,TU)的四叉树(称为变换树)的根。在帧间预测中,将CU非对称地细分为PU也是可能的,即如果CU具有大小NxN,则PU可以具有大小N/4xN、3N/4xN、NxN/4、Nx3N/4。每个PU被分配一些预测信息,例如运动信息、空域帧内预测等。
四叉树加二叉树(Quad-Tree plus binary-Tree,QTBT)编码工具是一种新的视频编码工具,与HEVC标准的CU/PU/TU排列相比,其提供了更灵活的CTU表示和更高的压缩效率。如图3所示,四叉树加二叉树(QTBT)编码工具定义了编码树310,其中编码单元可以以四叉树和二叉树两种方式被划分(split)。图3示出了编码树单元320的示例性编码树表示,其中实线指示四叉树分割,且虚线指示CTU 320内的CU 330的二叉分割,CU 330在空域上嵌入在四叉树叶中。
在编码器侧决定将CTU划分为编码单元,例如通过率失真优化过程,该过程包括以最小率失真成本确定CTU的QTBT表示。在QTBT表示中,CU可以是正方形或矩形。编码单位的大小总是2的幂,通常从4到128。CTU的QTBT分解包括两个阶段:CTU首先以四叉树方式被划分为4个CU,然后可以以二叉方式被进一步细分(divide)为两个CU或者以四叉树方式被分为4个CU,如图3所示。
利用QTBT表示,CU可能不被进一步分割为PU或TU。换句话说,每个CU被认为是单个预测单元和单个变换单元。然而,如图3所示,这种QTBT表示仅允许CU的对称划分。QTBT允许的四种划分模式是:NO_SPLIT(CU不划分)、QT_SPLIT(划分为四个象限)、HOR(水平划分为两个相等大小的CU)和VER(垂直划分为两个相等大小的CU)。
最近,具有新的矩形形状的CU被提出,这是从称为非对称划分模式的新的二叉划分模式产生的,如图4和图5所示。图4示出了QTBT中被称为非对称划分模式的CU二叉划分模式,并描绘了4个示例性划分模式410至440。在图4中,新的矩形形状包括宽度和/或高度等于3·2n的大小。此外,具有宽度或高度为3的倍数的大小的CU可以以二叉方式被进一步水平或垂直划分。
通过所提出的非对称二叉划分模式中的一个(例如HOR_UP(horizontal-up,水平向上)410)划分的、具有大小(w,h)(宽度和高度)的正方形CU产生具有相应矩形大小
Figure BDA0002622847520000021
Figure BDA0002622847520000022
的2个子编码单元。因此,宽度或高度等于3·2n的CU可以由编码器选择。在这种情况下,具有3的倍数的大小的矩形块的帧内预测或帧间预测处理被执行。此外,宽度或高度为3·2n的2D变换,以及随后的变换系数熵编码过程被执行。
如图5所示的其他CU划分模式(称为水平510和垂直520三叉树划分模式),包括将CU分为3个子编码单元(子CU),分别具有与在所考虑的空域划分的方向上的父CU大小的1/4、1/2和1/4相等的相应大小。
发明内容
根据本公开的方面,提供了一种视频编码方法,包括:访问与视频图片中的块相关联的句法元素(syntax element)的二进制位(bin);从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的二进制位进行熵编码。
根据本公开的方面,提供了一种用于视频编码的装置,该装置包括:用于访问与视频图片中的块相关联的句法元素的二进制位的部件;用于从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文的部件,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及用于基于所确定的上下文对句法元素的二进制位进行熵编码的部件。
根据本公开的方面,提供了一种用于视频编码的装置,该装置包括处理器和耦合到该处理器的至少一个存储器,该处理器被配置为:访问与视频图片中的块相关联的句法元素的二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的二进制位进行熵编码。
根据本公开的方面,提供了被格式化为包括表示图片的块的编码数据的比特流,该编码数据通过以下来编码:访问与视频图片中的块相关联的句法元素的二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的二进制位进行熵编码。
根据本公开的方面,提供了包括被格式化为包括表示图片的块的编码数据的比特流的信号,该编码数据通过以下来编码:访问与视频图片中的块相关联的句法元素的二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的二进制位进行熵编码。
根据本公开的方面,提供了一种用于视频解码的方法,包括:访问与编码视频图片中的块相关联的句法元素的编码二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的编码二进制位进行熵解码。
根据本公开的方面,提供了一种用于视频解码的装置,该装置包括:用于访问与编码视频图片中的块相关联的句法元素的编码二进制位的部件;用于从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文的部件,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及用于基于所确定的上下文对句法元素的编码二进制位进行熵解码的部件。
根据本公开的方面,提供了一种用于视频解码的装置,该装置包括处理器和耦合到该处理器的至少一个存储器,该处理器被配置为:访问与编码视频图片中的块相关联的句法元素的编码二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的编码二进制位进行熵解码。
根据本公开的方面,提供了一种包括程序代码指令的计算机可读程序产品,该程序代码指令用于:访问与视频图片中的块相关联的句法元素的二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的二进制位进行熵编码。
根据本公开的方面,提供了一种包括程序代码指令的计算机可读程序产品,该程序代码指令用于:访问与编码视频图片中的块相关联的句法元素的编码二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的编码二进制位进行熵解码。
根据本公开的方面,提供了一种承载软件程序的计算机可读存储介质,该软件程序包括程序代码指令,该程序代码指令用于:访问与视频图片中的块相关联的句法元素的二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的二进制位进行熵编码。
根据本公开的方面,提供了一种承载软件程序的计算机可读存储介质,该软件程序包括程序代码指令,该程序代码指令用于:访问与编码视频图片中的块相关联的句法元素的编码二进制位;从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及基于所确定的上下文对句法元素的编码二进制位进行熵解码。
以上呈现了主题的简化概述,以便提供对主题实施例的一些方面的基本理解。该概述不是主题的广泛概述。该概述并不旨在标识实施例的关键/重要元素或描绘主题的范围。该概述的唯一目的是以简化的形式呈现主题的一些概念,作为稍后呈现的更详细描述的序言。
从下面参考附图对示例性实施例的详细描述中,本公开的额外特征和优点将变得清楚。
附图说明
根据以下简要描述的示例性附图,可以更好地理解本公开:
图1示出了根据HEVC标准将CTU划分为CU;
图2示出了根据HEVC标准将CTU划分为CU、PU和TU;
图3示出了根据QTBT工具的CTU;
图4示出了QTBT中被称为非对称划分模式的CU二叉划分模式;
图5示出了QTBT中的水平(左)和垂直(右)三叉树CU划分模式;
图6示出了根据本公开的实施例的一组示例性CU划分模式;
图7示出了根据本公开的实施例的示例性视频编码器的简化框图;
图8示出了根据HEVC标准和本公开的实施例的变换块的扫描顺序;
图9示出了根据现有技术的基于上下文的熵编码的示例性方法的流程图;
图10示出了根据现有技术的对有效系数标志(significant coefficient flag)进行熵编码的示例性方法的流程图;
图11示出了根据现有技术的用于对句法元素进行熵编码的示例性上下文模板(template);
图12示出了根据现有技术的确定有效系数上下文增量(increment)的示例性方法的流程图;
图13示出了根据本公开的实施例的基于上下文的熵编码的示例性方法的流程图;
图14示出了根据本公开的实施例的编码的示例性方法的流程图;
图15示出了根据本公开的实施例的示例性视频解码器的简化框图;
图16示出了根据本公开的实施例的基于上下文的熵解码的示例性方法的流程图;
图17示出了根据本公开的实施例的解码的示例性方法的流程图;以及
图18示出了其中可以实现和执行本公开的各方面的计算环境的框图。
具体实施方式
应该理解,图中所示的元件可以以各种形式的硬件、软件或其组合实现。优选地,这些元件在一个或多个适当编程的通用设备上以硬件和软件的组合实现,通用设备可以包括处理器、存储器和输入/输出接口。这里,短语“耦合”被定义为直接连接到或通过一个或多个中间组件间接连接。这种中间组件可以包括基于硬件和基于软件的组件。
本说明书说明了本公开的原理。因此,应该理解,本领域技术人员将能够设计各种布置,尽管在此没有明确描述或示出,但是这些布置体现了本公开的原理,并且包括在本公开的范围内。
本文所述的所有示例和条件语言旨在用于教育目的,以帮助读者理解本公开的原理和发明人为推进本领域所贡献的概念,并且应被解释为不限于这些具体列举的示例和条件。
此外,本文所列举本公开的原理、方面和实施例的所有陈述以及其具体示例旨在包含其结构和功能等同物。此外,这种等同物旨在包括当前已知的等同物以及将来开发的等同物,即,无论结构如何,开发的执行相同功能的任何元件。
因此,例如,本领域技术人员将理解,本文所呈现的框图表示具体体现本公开的原理的说明性电路的概念图。类似地,将理解,任何流程图(flow chart)、流程图(flowdiagram)、状态转换图、伪代码等表示可以基本上在计算机可读介质中表示并由计算机或处理器执行的各种过程,无论是否明确示出了这样的计算机或处理器。
图中所示的各种元件的功能可以通过使用专用硬件以及能够执行与适当软件相关联的软件的硬件来提供。当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或多个单独的处理器提供,其中一些处理器可以被共享。此外,术语“处理器”或“控制器”的明确使用不应被解释为专门指能够执行软件的硬件,并且可以隐含地包括但不限于数字信号处理器(digital signal processor,DSP)硬件、用于存储软件的只读存储器(readonly memory,ROM)、随机存取存储器(random access memory,RAM)和非易失性存储器。
也可以包括其他常规和/或定制的硬件。同样,图中所示的任何开关都只是概念性的。它们的功能可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互或者甚至手动实现,具体技术可以由实施者选择,如从上下文中更具体地理解的。
在本发明的权利要求中,表示为用于执行特定功能的装置的任何元件旨在包含执行该功能的任何方式,包括例如a)执行该功能的电路元件的组合,或者b)任何形式的软件,因此包括固件、微码等,与用于执行该软件以执行该功能的适当电路相结合。由这样的权利要求所定义的公开在于这样的事实,即由各种列举的装置提供的功能以权利要求所要求的方式被组合和集合在一起。因此,可以认为能够提供这些功能的任何装置都等同于本文所示的那些装置。
应该理解,附图和描述已经被简化以示出与清楚理解本公开相关的元件,同时为了清楚起见,消除了在典型编码和/或解码设备中发现的许多其他元件。
应该理解,尽管术语第一和第二在本文可以用来描述各种元素,但是这些元件不应该被这些术语所限制。这些术语仅用于区分一个元素和另一元素。上文描述了各种方法,并且每个方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要步骤或动作的特定顺序,否则可以修改或组合特定步骤和/或动作的顺序和/或使用。
应该理解,图片是单色格式的亮度(Luma)样点(sample)阵列,或者是4:2:0、4:2:2和4:4:4色彩格式的亮度样点阵列和两个相应的色度(Chroma)样点阵列。在HEVC中,“块”寻址样点阵列中的特定区域(例如,亮度Y),而“单元”包括与该块相关联的所有编码的色彩分量(亮度Y以及可能的色度Cb和色度Cr)、句法元素和预测数据(例如,运动矢量)的并置(collocate)块。然而,术语“块”在本文更一般地用于指代块(例如,编码块(coding block,CB)、变换块(transform block,TB)、编码组(coding group,CG)等)或单元(例如,CU)。
应该理解的是,像素或变换系数的图片或块是二维阵列或矩阵。水平或x方向(或轴)表示宽度,并且垂直或y方向(或轴)表示高度。索引从0开始。x方向表示列,便给y方向表示行。最大x索引是宽度-1。最大y索引是高度-1。
在以下章节中,词语“重构”和“解码”可以互换使用。通常但不一定,在编码器侧使用“重构”,而在解码器侧使用“解码”。此外,词语“编码(coded)”和“编码(encoded)”可以互换使用。此外,词语“图像”、“图片”和“帧”可以互换使用。此外,词语“编码”、“源编码”和“压缩”可以互换使用。
本公开针对用于视频或图像编码和解码(也称为源编码和解码)的技术,其中在视频编码中可以允许多个形状和划分模式的块(例如,图3、图4和图5中所示的CU划分模式的全部或子集),即,编码器可以选择这些形状和划分模式中的任何一种,并将它们发送给解码器。图6示出了根据本公开的一组示例性CU划分模式。丰富的一组CU拓扑导致编码结构在空域上匹配包含在比特流图像中的结构和不连续性。
提出考虑编码和子编码单元的不同形状的编码策略是感兴趣的。本公开针对用于各种CU划分模式的变换系数的熵编码,以便提供提高的压缩效率(或率失真性能),同时复杂度略有增加。特别地,为熵编码句法元素提供了每个二进制位(bin)的多个上下文和上下文切换。
编码
图7示出了根据本公开的实施例的示例性视频编码器700的简化框图。编码器700可以包括在通信***中的发送机或前端中。为了对具有一个或多个图片的视频序列进行编码,图片可以被分割为具有可配置大小的正方形的CTU。一组连续的CTU可以被分组到一个条带中。CTU是被分割为CU的QTBT的根。在示例性编码器700中,图片由编码器模块编码,如下所述。使用帧内模式或帧间模式对每个块进行编码。当块以帧内模式编码时,编码器700执行帧内预测(模块760)。在帧间模式中,执行运动估计(模块775)和运动补偿(模块770)。编码器决定(模块705)使用帧内模式或帧间模式中的哪一个来对块进行编码,并通过预测模式标志来指示帧内/帧间决定。通过从原始图像块中减去(模块710)预测样点块(也称为预测符)来计算残差。
作为示例,从重构的相邻样点预测帧内模式中的块。通过对存储在参考图片缓冲器780中的参考块执行运动估计(模块775)和运动补偿(模块770)来执行帧间预测。运动估计模块775可以包括运动补偿,因为其目的是确定可以使用迭代搜索的最佳运动矢量,该迭代搜索通常在率失真成本(RD成本)足够低或者已经达到最小值时终止。
对残差进行变换(模块725)和量化(模块730)。变换模块725可以将图像从像素或时域变换到变换或频域。例如,该变换可以是余弦变换、正弦变换、小波(wavelet)变换等。例如,可以根据率失真标准执行量化。对量化的变换系数和运动矢量以及其他句法元素进行熵编码(模块745)以输出比特流。例如,熵编码可以是上下文自适应二进制算术编码(Context Adaptive Binary Arithmetic Coding,CABAC)、上下文自适应可变长度编码(Context Adaptive Variable Length Coding,CAVLC)、霍夫曼(Huffman)编码、算术编码、指数-哥伦布(exp-Golomb)编码等。编码器也可以跳过变换,并将量化直接应用于未变换的残差信号。编码器还可以绕过变换和量化,即,在没有变换或量化过程的应用的情况下直接对残差进行编码。在直接PCM编码中,不应用预测,并且块样点被直接编码到比特流中。
编码器包括解码循环,并且因此对编码块进行解码以提供用于进一步预测的参考。对量化的变换系数进行去量化(模块740)和逆变换(模块750)以对残差进行解码。通过组合(模块755)解码的残差和预测样点块来重构图像块。环路滤波器(765)可以被应用于重构的图片,例如,以执行去块/采样点自适应偏移(Sample Adaptive Offset,SAO)滤波来减少编码伪影。滤波后的图像存储在参考图片缓冲器780中。
视频编码器700的模块可以用软件实现并由处理器执行,或者可以由压缩领域的技术人员通过熟知的电路实现。特别地,视频编码器700可以实现为集成电路(integratedcircuit,IC)。
视频编码器700的模块也可以存在于其他视频编码器(例如,HEVC编码器)中,除了在本公开中描述的差异之外,特别地,将在下面的段落和附图中更详细地描述如图6中的块大小和形状的差异,以及熵编码模块745的差异。对于除熵编码之外的功能(例如,除745之外的模块),视频编码器700可以类似于HEVC视频解码器,并且本文不详细描述这些功能。
熵编码
在HEVC标准和ISO/IEC JTC1/SC29/WG11的联合视频探索小组的JVET-C1001_v3文件中,包含在所谓的变换块(TB)中的量化系数可以根据图8中的示例性模式、使用CABAC进行熵编码和解码,图8示出了示例性8x8 TB。
TB可以是应用了相同变换的矩形样点块。编码块(CB)的可选分割产生了TB。CB可以是包含在同一色彩分量中的一组矩形样点。在CB未被分割的情况下,TB和CB具有相同的大小并且在空域上重合。CU可以由一个亮度样点的CB和两个色度样点的CB组成(在具有三个色彩分量的色彩图片的情况下)。
CABAC基于算术编码,并且已被HEVC标准采用。CABAC可以针对不同的上下文使用多个概率模型。CABAC首先将所有非二进制符号转换为二进制。特别地,对句法元素进行二进制化(即,表示为称为二进制位的二进制符号序列,每个等于‘0’或‘1’)。然后,对于每个二进制位,编码器选择使用哪个概率模型(识别二进制位为“0”或“1”的概率),并且利用来自附近元素(或上下文)的信息来优化概率估计。
图9示出了根据现有技术的基于上下文的熵编码(例如CABAC)的示例性方法的流程图900。在步骤910,句法元素(syntax element,SE)901在还不是二进制值(诸如二进制标志)时,首先被二进制化。然后,在循环920中,对于每个二进制位:
a.在步骤930,基于要编码的句法元素或二进制位的上下文信息来选择上下文CTX。上下文CTX与存储二进制位为“1”或“0”的上下文概率的上下文模型相关联。上下文概率对应于二进制位在知道上下文值CTX的情况下取值“b”的估计的条件概率,即,P(b/CTX)。该选择基于上下文信息,诸如要编码的当前符号(句法元素)的邻域(neighborhood)的已编码符号(句法元素)、CU/PU/TU大小或形状,或者条带类型;
b.在步骤940,根据上下文概率P(b/CTX),使用熵编码器(例如,算术编码器)对二进制位进行编码;
c.在步骤950,一旦二进制位被编码,更新上下文模型,即更新上下文概率P(0/CTX)和P(1/CTX)。例如,该更新可以表示二进制位值(“0”或“1”)的出现(occurrence)的数量的计数更新,并且还可以考虑比特的总数。
d.在步骤925,检查是否要对更多的二进制位进行编码。如果是,则返回到步骤920(例如,通过移动到句法元素的下一个二进制位);否则,在步骤960结束过程。
不失一般性地,步骤940和950可以顺序切换或并行执行。
例如,考虑与正整数值相对应的句法元素SE。以下步骤可能适用:
●二进制化(例如,910):通过如下一元编码将正整数值转换为二进制位字符串。
-SE=0→二进制位字符串=“0”
-SE=1→二进制位字符串=“10”
-SE=2→二进制位字符串=“110”
-…
●上下文选择(例如,930):为二进制位字符串的不同二进制位定义了以下上下文模型
○二进制位0→3个上下文,0、1、2,取决于先前编码的SE、SEPREV的值
■如果(0<=SEPREV<3)→模型0
■如果(3<=SEPREV<33)→模型1
■如果(33<=SEPREV)→模型2
○其他二进制位→模型3
HEVC CABAC编码器(步骤950)有两种主要模式:常规编码和旁路编码。旁路编码模式可以被选择用于与符号信息相关的二进制位或者用于较低有效二进制位,假设这些二进制位均匀分布,并且因此常规二进制算术编码过程被旁路。在常规编码模式下,通过使用常规算术编码过程对每个二进制位值进行编码,其中或不需要任何上下文建模的情况下通过固定选择确定相关联的概率模型,或取决于相关的上下文模型自适应地选择相关联的概率模型。
对于基于上下文的编码,使用条件概率模型来使数据的分布偏态(skew)。不提前估计这些概率,而是随着编码的进行来估计概率。算术编码最终被应用于压缩数据。适当地选择上下文,因此每个比特的概率模型允许提高的压缩效率。上下文模型可以由上下文索引来索引和识别。CABAC和其他基于上下文的编码器和解码器是压缩领域的技术人员所熟知的,在此不再详细描述。
本公开适用于一般基于上下文的熵编码器(例如,CABAC编码器),并且涉及将用于元素(例如,句法元素或句法元素二进制位)的熵压缩的上下文(例如,上下文索引)确定为TB的形状的函数,这可以提供更高的压缩效率,特别是当CU非对称时。具体地,本公开针对应用于对给定句法元素的二进制位进行编码的多个上下文之间的上下文切换,如将在以下段落和附图中更详细地描述的。
图8中的TB被分为称为编码组(CG)的4x4量化系数子块。熵编码/解码由几个扫描道次(pass)组成,这些扫描道次根据从几个可能的扫描模式(例如对角810、水平820和垂直830)中选择的扫描模式扫描TB。
变换系数编码可以包括五个主要步骤:扫描、最后有效系数编码、有效性图编码、系数级别(level)编码和符号数据编码。这五个主要步骤对应于用于对变换块样点进行编码的不同类型的处理。扫描对应于根据给定CG扫描顺序在CG上的循环,以及根据系数扫描顺序在每个CG内的系数上的循环。最后有效系数位置是最后非零变换系数在TB中的位置(X,Y)。
有效性图是允许解码器识别非零系数在TB中的位置的编码信息。该信息包括CG的有效性或有效标志(例如,变换系数的4x4子集)和CG中变换系数的有效性。CG有效标志指示CG是否包含至少一个有效系数。如果CG有效标志等于零,则意味着该CG中不包含有效系数,并且对于包含在该CG中的系数,不用信号通知有效系数标志;否则用信号通知(编码)这些有效系数标志。然后,有效性图编码表示与CG的有效性和系数的有效性相关的所有信息的编码,包括前面提到的两个句法元素:有效编码组标志和有效系数标志。系数级别编码对应于对变换系数的幅度进行编码。符号数据编码对应于对变换系数的符号进行编码。
对于帧间块,可以使用图8左侧的对角扫描,而对于4x4和8x8帧内块,扫描顺序可以取决于对于该块激活(active)的帧内预测模式。
然后,在TB上的扫描道次包括根据扫描顺序中的一个(对角、水平、垂直)顺序地处理每个CG,并且每个CG内的16个系数也根据所考虑的扫描顺序被扫描。扫描道次从TB中的最后有效系数开始,并处理所有系数,直到DC系数(图8的TB中的左上角系数)。
变换系数的熵编码包括多达五次扫描道次,分别针对以下列表中每个句法元素的编码:
●有效系数标志(significant-coeff-flag):系数的有效性(零/非零)
●系数绝对级别大于1标志(coeff-abs-level-greater1-flag):指示系数级别的绝对值是否大于1
●系数绝对级别大于2标志(coeff-abs-level-greater2-flag):指示系数级别的绝对值是否大于2
●系数符号标志(coeff-sign-flag):有效系数的符号(0:正,1:负)
●系数绝对级别剩余(coeff-abs-level-remaining):系数级别的绝对值的剩余值(如果值大于先前道次中编码的值)。要编码/解码的变换系数的幅度总是正整数值。coeff-abs-level-remaining对应于系数的绝对值减3(如果已知系数大于2)。此外,在给定CG中,最多可以对8个coeff-abs-level-greater2-flag进行编码。因此,当未用信号通知coeff-abs-level-greater2-flag时,解码器仅知道系数是否大于1。在这种情况下,coeff-abs-level-remaining对应于系数的绝对值减2(如果已知系数大于1)。
一旦解码器通过对上述四个第一道次的子集进行解码而知道了变换系数的绝对值,则相对于其绝对值,在该系数的剩余道次中就不再对其他句法元素进行编码。对于符号编码也是如此:仅为非零系数发送coeff-sign-flag。
在进入下一个CG之前,对给定CG执行/编码所有扫描道次,直到该CG中的所有量化系数都可以被重构。整个解码TB解析过程由以下主要步骤组成:
1.对最后有效坐标进行解码,包括以下句法元素:x方向或轴上的最后有效系数前缀(last_sig_coeff_x_prefix)、y方向上的最后有效系数前缀(last_sig_coeff_y_prefix)、x方向上的最后有效系数后缀(last_sig_coeff_x_suffix)和y方向上的最后有效系数后缀(last_sig_coeff_y_suffix),这为解码器提供了最后非零系数在整个TB中的空间位置(x-坐标和y-坐标)。y方向或轴可以是垂直方向,并且x方向或轴可以是水平方向。相反的情况也可能成立。
然后,对于从TB中包含最后有效系数的CG到TB中左上角CG的每个连续CG,以下步骤适用。
2.对CG有效性标志进行解码,该CG有效性标志在HEVC规范中被称为编码的子块标志(coded_sub_block_flag)。
3.对所考虑的CG中的每个系数的有效系数标志进行解码,该有效系数标志对应于HEVC标准中的句法元素sig_coeff_flag,指示CG中哪个系数非零。
接下来,解析阶段旨在解析和用信号通知系数级别,对于在所考虑的CG中已知为非零的系数,这包括以下句法元素。
4.对coeff_abs_level_greater1_flag进行解码,其指示当前系数绝对值是否大于1。如果不是,则指示该绝对值是否等于1。
5.对coeff_abs_level_greater2_flag进行解码,其指示当前系数绝对值是否大于2。如果不是,则指示该绝对值是否等于2。
6.对coeff_sign_flag进行解码,其指示非零系数的符号。
7.对coeff_abs_level_remaining进行解码,其对绝对值大于2的系数的绝对值进行编码。
根据本公开的实施例,视频编码器700一般遵循上述熵编码的方法,对最后有效系数坐标的编码(和相应的解码)和/或有效系数标志的编码(和相应的解码)进行修改。将在下面的段落和附图中更详细地描述这些修改。
图10示出了根据现有技术的对有效系数标志进行熵编码的示例性方法的流程图1000。该方法1000类似于在ISO/IEC JTC1/SC29/WG11的联合视频探测小组的文件JVET-C1001_v3中所描述的方法。
过程的输入是要编码的、具有大小(宽度、高度)的TB 1001和所考虑的TB中的当前CG(currCG)1002。该过程的前两个步骤1010、1020旨在初始化用于对有效系数标志进行编码的基本上下文索引的索引的计算。在步骤1010中,如果TB是色度分量,则ctxOffset等于0,并且如果TB不是色度(即,亮度),则ctxOffset等于IndexOnTBSize。如图10所示,计算取决于TB大小,更精确地,取决于TB面积。实际上,以下值被计算,并与IndexOnTBSize相关联:
Figure BDA0002622847520000151
其中
Figure BDA0002622847520000152
是向下取整运算符。
如果当前TB在亮度分量中,则用于对有效系数标志进行编码的一组上下文被设置为该值的函数uiLog2BlkSize。作为结果,采用分离的多组上下文(例如,CABAC上下文)来对具有不同亮度分量面积的有效系数标志TB进行编码。这些不同的多组的上下文由上下文偏移(ctxOffset)表示,其是对于有效系数标志的编码有用的全局的一组上下文中的地址。
步骤1020初始化当前扫描位置(currScanPos)和当前CG中的第一位置(firstPosInCG),即,分别是当前CG中的最后系数索引和第一系数索引,因为扫描从当前CG中的最后系数进行到第一系数,如图8所示。
图10的编码过程的步骤1030-1080包括在当前TB的当前CG中的每个系数上、从最后系数朝向最低频率系数的循环。步骤1030将有效系数标志或有效性(也称为sig_coeff_flag)确定为变量uiSig,如果currScanPos中的系数不为零,则uiSig为1,否则uiSig为0。然后,步骤1040计算有效系数标志上下文增量(ctxIncrement),如将在下面的段落和附图中更详细地描述的,特别是图11-图12。
对于每个系数,在步骤1050,作为上下文偏移(ctxOffset)和上下文增量(ctxIncrement)的函数,计算用于其有效性的编码的上下文索引(currCtxIdx)。该函数可以是如步骤1050中的加法,或者另一线性或非线性函数。一旦获得了当前系数的上下文索引(由currScanPos定义),则在步骤1060中,由变量uiSig表示的上下文索引的有效性二进制位被熵编码(例如,CABAC编码),作为上下文索引的函数。在步骤1070,过程检查CurrScanPos是否大于firstPosInCG。如果步骤1070中的检查为真,则过程在步骤1080中将CurrScanPos减1,并返回到步骤1030。如果步骤1070中的检查为假,则过程在步骤1090结束。一旦循环达到当前CG中具有最低频率的系数(或DC系数),即由firstPosInCG表示的、图8中左上角的系数,该过程结束。
在下文中,将详细描述计算或确定有效系数上下文增量的步骤1040,从ISO/IECJTC1/SC29/WG11的联合视频探测小组的文件JVET-C1001_v3中描述的现有技术方法开始(图10)。
图10的步骤1040中的上下文增量计算取决于由局部模板覆盖的邻域中的先前编码系数的有效系数标志的值。更具体地,基于相邻系数的有效系数标志(每个标志的值为0或1)的和来确定上下文索引。在图11中描绘本地模板(c0,…,c4),示出了示例性8x8 TB1100。为了捕获不同频率下的变换系数的特性,一个TB被划分为最多三个上下文区域(1110、1120和1130),并且划分方法是固定的,而与TB大小无关,如图11所示。上下文模型模板1100包括三个上下文区域。分配给每个区域的上下文增量如下:区域1110为12-17,区域1120为6-11,区域1130为0-5。
与块1100中的任何给定变换系数C 1140相关联的上下文增量计算或确定如下:
1.一组相邻系数(c0,…,c4)中的有效系数1150A-E的数量由下式计算:
Figure BDA0002622847520000161
其中sig(ci)是系数ci的有效性或有效系数标志。
2.系数C所属的对角的索引计算为其坐标的和:
diag=posX(C)+posY(C) (3)
其中posX(C)和posY(C)是根据x和y轴的系数的相对位置。
3.最后,当前系数C的上下文增量计算如下:
ctxIncrement=(diag<2?6:0)+(diag<5?6:0)+numSIG (4)
其中将diag与阈值2和5进行比较,并且根据diag是否小于相应的阈值,将值6或0分配给该比较。
以类似的方式处理亮度和色度分量,但使用分离的多组上下文。
图12示出了根据ISO/IEC JTC1/SC29/WG11的联合视频探测小组的文件JVET-C1001_v3,确定当前变换系数C的有效系数上下文增量的方法的流程图1200,如以上等式2-4中所解释的。在方法1200中,两个diag变量比较由变量region2Offset定义,因为区域2(图11中的1120)被定义在两个阈值(2和5)之间。图12的步骤1210和1220执行等式2。步骤1230执行等式3。步骤1240-1290执行等式4。当前系数C的计算在步骤1295结束。
图11中的上下文模板1100示出了当对系数的有效标志进行编码时,用于将CABAC上下文分配给每个变换系数的三个上下文区域,符合图12中描述的有效系数标志编码。可以理解,根据图12的现有技术方法定义的区域独立于块的宽度和高度中的差。事实上,这三个区域更适合正方形TB。
从图10到图12,用于对有效系数标志进行编码的上下文可以计算如下:
-从已经编码的5个相邻系数的值导出的上下文索引(numSig)取其值为0到4。
-从要编码的系数块中的位置(x,y)导出的区域偏移索引(region2offset)。块1000中的三个区域(1010、1020、1040)被定义(regidx=1到3),并且region2offset取其值为0、6、12。在步骤1290中,numSig和region2offset定义了上下文增量(ctxIncrement)
-从要编码的系数块的大小(log2BlkSize)导出的大小偏移索引(ctxOffset)计算如下:
○ctxOffset=0 如果log2BlkSize≤2
○ctxOffset=18 如果log2BlkSize=3
○ctxOffset=36 如果log2BlkSize≥4
这产生54个上下文,如表1所示。根据现有技术,上下文增量(ctxIncrement)被添加到ctxOffset的值,用于导出位于大小(宽度x高度)(widthxheight)的TB的位置(x,y)处的系数的上下文。
log2BlkSize 区域索引reg<sub>idx</sub> numSig ctxIncrement
≤2 1 0-5 0-5
2 0-5 6-11
3 0-5 12-17
=3 1 0-5 18-23
2 0-5 24-29
3 0-5 30-35
≥4 1 0-5 36-41
2 0-5 42-47
3 0-5 48-53
表1
最近已经提出了采用所考虑的块的形状的图12的变型(包括功能图的变型),并且也可以应用于本公开。
可以观察到,对块大小的依赖包括几种不同的块形状,如下所示
-log2BlkSize≤2对应于块大小:4x4、4x8/8x4
-log2BlkSize=3对应于块大小:4x16/16x4、4x32/32x4、8x8、8x16/16x8
-log2BlkSize≥4对应于块大小:8x32/32x8、16x16、16x32/32x16、32x32
在将多种块形状组合在一起(这加快了上下文模型中概率的学***衡,因此以学习上下文模型中概率的较慢速度为代价获得更专用的上下文组。
根据本公开,可以提出一种变型来处理不同的正方形和矩形块。例如,可以为特定(非正方形)块(例如大小为4x16和8x32的块)形状定义额外的上下文。这可能产生以下表2的示例性上下文,其中也考虑了块形状或类型(作为特定/非特定形状)。
Figure BDA0002622847520000181
表2
在图10-图12、表1和表2中,有效系数标志的编码/解码取决于TB的大小和/或形状。至于要编码的任何其他句法元素,每个二进制位(或几个二进制位)使用一个上下文。
最近,已经提出了用于CABAC熵编码的多参数概率更新。在原始CABAC中,单个概率模型与每个上下文相关联。最近的提案使用两个概率模型,一个比另一个收敛得更快。每次选择上下文时,更新模型。在对使用上下文的二进制位进行编码时,仅使用概率模型中的一个。当上下文的出现或选择仍然很少时,使用快速收敛概率模型。一旦有上下文的出现足够时,使用慢速收敛概率模型。慢速收敛模型为大量样点提供了更准确的概率估计。因此,基于上下文的出现的数量,在两个概率模型之间存在切换。可以建立出现或选择的数量上的级别或阈值以触发切换。
多概率CABAC的简化版本一起更新两个模型,并且最终概率值是这两个模型的概率的平均。在这种方法中,仍然存在当上下文的出现的数量不够多时,两个概率模型的估计可能不可靠或具有低置信度(degree of confidence)的问题,即使对于快速概率模型也是如此。
两个概率估计P0和P1以不同的适应率独立地更新,如下:
Figure BDA0002622847520000191
Figure BDA0002622847520000192
其中
Figure BDA0002622847520000193
Figure BDA0002622847520000194
(j=0,1)分别表示对二进制位进行解码之前和之后的概率。变量Mi(例如,4、5、6、7)是控制索引等于“”的上下文模型的概率更新速度的参数。变量k表示概率表示的精度(例如,15),意味着Pi(i=0或1)取其值从0到(2^k-1):Pi=(2^k-1)对应于1的概率。用于二进制算术编码器中的间隔细分的概率估计P是来自两个假设的估计的平均:
Figure BDA0002622847520000195
根据本公开,提出每个二进制位使用一个以上的上下文,并且基于每个上下文的出现的数量,自适应地选择用于实际熵编码的上下文中的一个。每个二进制位的多个上下文中的上下文与包括至少一种块类型的一组块类型相关联。一组上下文中的不同上下文与不同的多组块类型相关联。多组块类型可以基于块的形状和/或大小来确定。多组块类型也可以基于块的编码模式或者基于块的系数扫描模式来确定。
这一思想可以应用于有效系数标志(significant-coeff-flag)、系数绝对级别大于1标志(coeff-abs-level-greater1-flag)、系数绝对级别大于2标志(coeff-abs-level-greater2-flag)、系数符号标志(coeff-sign-flag)和系数绝对级别剩余(coeff-abs-level-remaining)的编码。该概念可以被一般化于其他句法元素或符号的编码。其他句法元素的示例包括:
-transform_skip_flag,指示是否跳过块的变换
-cbf_luma、cbf_cb、cbf_cr-指示TB(亮度、色度cb或色度cr)是否包含非零系数
-merge_flag,指示CU是否合并
-split_transform_flag,指示TU是否被划分
在现有技术中,对于一个上下文信息实例(例如,numSig=1,regidx=1,log2BlkSize=3),识别一个单独的上下文,用于对符号进行编码,并且一旦符号被编码,更新该单独的上下文。
另一方面,本公开包括以下元素:
i.一组上下文可以与一个上下文信息实例相关联;
ii.多个出现或出现信息(和/或相应的状态信息)被附接到该组上下文的每个上下文。一旦元素被编码,为上下文中的每一个更新出现(和/或状态信息)的数量;
iii.基于出现和/或状态信息的数量,在该组上下文中选择用于对元素进行编码的上下文。
图13示出了根据本公开的实施例的基于上下文的熵编码(例如,CABAC)的示例性方法的流程图1300。图13与图9有相似之处。步骤1310、1320、1340、1325和1360分别类似于步骤910、920、940、925和960。如下所述,步骤1330和1350分别与步骤930和950有重要区别。
在步骤1310,句法元素(SE)1301在还不是二进制值(诸如二进制标志)时,首先被二进制化。然后,在循环1320中,对于每个二进制位:
a.在步骤1330,使用要编码的句法元素的上下文信息来选择一组上下文(步骤1332)。从该组上下文中,基于该组上下文的出现或状态信息的数量选择一个上下文CTX(步骤1334)。上下文CTX与存储二进制位为“1”或“0”的上下文概率的上下文模型相关联。上下文概率对应于二进制位在知道上下文值CTX的情况下取值“b”的估计条件概率,即,P(b/CTX)。该选择基于上下文信息,诸如要编码的当前符号(句法元素)的邻域中的已编码符号(句法元素)、CU/PU/TU大小或形状、CU编码模式、TB系数扫描模式或条带类型。此外,如下所述,该选择是上下文组的出现或状态信息的数量的函数;
b.在步骤1340,根据上下文概率P(b/CTX),使用熵编码器(例如,算术编码器)对二进制位进行编码;
c.在步骤1350,一旦二进制位被编码,更新上下文组,即,属于上下文组的上下文模型的上下文概率被更新(步骤1352),并且上下文组中的上下文中的每一个的出现或状态信息的数量被更新(步骤1354)。例如,该更新可以表示二进制位值(“0”或“1”)出现的数量的计数更新,并且还可以考虑比特的总数。状态信息意味着在相同类型(例如,具有相同的三元组(numSig,区域索引,块大小))的二进制位的编码期间可能存在上下文切换。上下文切换可能取决于上下文的出现的数量。
d.在步骤1325,检查是否有更多的二进制位要编码。如果是,返回到步骤1320(例如,通过移动到句法元素的下一个二进制位);否则,在步骤1360结束过程。
不失一般性,步骤1340和1350可以顺序切换或并行执行。
应该理解,图10可以应用于本公开的实施例,只要步骤1040和1050中的内容是步骤1332、1334中所选上下文CTX的增量。应该理解,如果步骤1290被修改为使得ctxIncrement也是状态信息的函数,则图11和图12可以应用于本公开的实施例。例如,步骤1290可以修改如下:
ctxIncrement=region2offset+numSIG+state (7)
其中状态是状态信息的索引(例如,1到3)。状态的其他线性或非线性函数也可以应用于ctxIncrement。
在根据本公开的一个实施例中,用于对属于大小(宽度、高度)的块的句法元素或句法元素的二进制位进行编码的一组上下文取决于块大小和块的形状或维度。在一个示例性实施例中,对于numSig=C、区域索引regidx=R的每个可能值,以下一组上下文可以被定义为:
-如果块的大小为(宽度x高度)=4x4,则以下一组上下文被定义为:
○CTX1:(numSig=C且regidx=R且块大小=4x4)的1个上下文
○CTX2:(numSig=C且regidx=R且块大小=4x4、4x8或8x4)的1个上下文
■块大小=4x4、4x8或8x4对应于log2BlkSize≤2
○CTX3:(numSig=C且regidx=R且块大小≤8x8)的1个上下文
-如果块的大小为(宽度x高度)=4x8或8x4,则以下一组上下文被定义为:
○CTX4:(numSig=C且regidx=R且块大小=4x8或8x4)的1个上下文
○CTX3:(numSig=C且regidx=R且块大小≤8x8)的1个上下文
-如果块的大小为(宽度x高度)=8x8,则以下一组上下文被定义为:
○CTX5:(numSig=C且regidx=R且块大小=8x8)的1个上下文
○CTX6:(numSig=C且regidx=R且块大小=8x8、16x8或8x16)的1个上下文
在一个实施例中,一个上下文CTXi的状态信息可以与相应上下文的出现的数量NbOcci相关联。NbOcci可以在条带、图片、图片组或视频的开始处被设置为0,并且每次选择上下文CTXi时递增1。例如,每当选择上下文CTX1(numSig=C且regidx=R且块大小=4x4)时,NbOcc1递增1。例如,与状态的阈值相比,可以基于NbOcc1的值建立多个状态。可替代地,NbOcc1可以在条带、图片、图片组或视频的开始处被设置为默认预定义值,在条带、片(tile)、图片或序列级别处,该默认预定义值是针对比特流中的的一组上下文中的每个或部分进行编码的。
在该实施例中可以观察到,来自给定一组上下文的上下文是彼此的超集(superset),或者以顺序包含/包括彼此。例如,对于块大小为4x4的情况,一组上下文是{CTX1,CTX2,CTX3}。CTX2包含CTX1,即定义上下文CTX2的条件(numSig=C且regidx=R且块大小=4x4、4x8或8x4)涉及定义上下文CTX1的条件(numSig=C且regidx=R且块大小=4x4)。类似地,CTX3包含CTX2。因此,对于给定一组上下文,这种情况下出现的数量随着i而增加:NbOcc3>=NbOcc2>=NbOcc1。在不脱离本公开的范围的情况下,上下文不是彼此的超集的其他构造是可能的。
如果定义上下文的条件包括定义其他上下文的条件,则上下文可以被视为比另一上下文更宽或更不严格/具体。例如,CTX3比CTX2更宽。类似地,如果定义上下文的条件包括在定义其他上下文的条件中,则上下文可以被视为比另一上下文更窄或更严格/更具体。例如,CTX2比CTX3更窄。
该组上下文中的上下文选择(步骤1334)包括在当更窄的上下文尚未被选择或出现足够多次时,从该组上下文中选择更宽的上下文。一旦更窄的上下文被选择了足够多次,过程切换到更窄的上下文。原则上,更窄的上下文更准确。该组上下文的状态基于该组上下文中各种上下文的出现的数量来定义或识别术语“足够多次”。
例如,对于块的大小是4x4的情况,以下选择过程可以适用:
-选择CTX3(状态=1);
-否则,如果NbOcc2≥Th2,则选择CTX2(状态=2);
-否则,如果NbOcc1≥Th1,则选择CTX1(状态=3)。
其中Th1和Th2是状态转换的出现的数量的阈值或级别。在一个实施例中,阈值可以在序列、图片或条带级别用信号通知到比特流中。
就状态信息而言,块的大小为4x4的情况可以被可替代地描述为状态序列(1至3):
-从状态=1开始(选择CTX3);
-否则,如果NbOcc2≥Th2,则进入状态=2(选择CTX2);
-否则,如果NbOcc1≥Th1,则进入状态=3(选择CTX1)。
上述示例可以容易地一般化到其他块大小和/或形状。
在一个实施例中,可以为大小AxB/BxA的矩形TB添加特定的上下文,其中A不同于B。
在示例性实施例中,大小AxB/BxA的矩形TB的一组上下文可以包括2个上下文,1个特定于TB大小/形状的上下文,以及一个更一般的收集TB大小加上其他TB大小的上下文。例如,大小AxB/BxA的矩形TB的一组上下文可以包括:
-矩形大小AxB/BxA的TB的1个上下文
-由参数log2BlkSize定义的TB的1个上下文
根据该实施例,矩形TB的一组上下文的示例在表3中列出。
Figure BDA0002622847520000231
Figure BDA0002622847520000241
表3
对于表3中的上下文组中的每一个,上下文组的状态信息与上下文的出现的数量NbOcc相关联。log2BlkSize≤2的块的上下文的出现的数量NbOcc对应于先前处理的TB的出现的数量,使得log2BlkSize≤2。4x8/8x4块的上下文的出现的数量NbOcc对应于大小4x8或8x4的先前处理的TB的出现的数量。
对于表3中的上下文组中的每一个,第二上下文是最初选择的上下文,并且一旦第一上下文的出现足够多(与阈值或级别相比),就切换到第一上下文。
在一个实施例中,可以为大小AxA的TB添加特定的上下文。
在示例性实施例中,大小AxA的正方形TB的一组上下文可以包括2个上下文,1个特定于TB大小/形状的上下文,以及一个更一般的收集TB大小加上其他TB大小的上下文。例如,大小AxA的矩形TB的一组上下文可以包括:
-正方形大小AxA的TB的1个上下文
-由参数log2BlkSize定义的TB的1个上下文
根据该实施例,矩形TB的一组上下文的示例在表4中列出。
Figure BDA0002622847520000242
Figure BDA0002622847520000251
表4
对于表4中的上下文组中的每一个,上下文组的状态信息与上下文的出现的数量NbOcc相关联。log2BlkSize≤2的块的上下文的出现的数量NbOcc对应于先前处理的TB的出现的数量,使得log2BlkSize≤2。4x4块的上下文的出现的数量NbOcc对应于大小4x4的先前处理的TB的出现的数量。
对于表4中的上下文组中的每一个,第二上下文是最初选择的上下文,并且一旦第一上下文的出现足够多(与阈值或级别相比),就切换到第一上下文。
在实施例中,如表5所示,正方形与矩形TB形状是分离的。在这种情况下,一些上下文用在几组上下文中。例如,log2BlkSize≤2的块的上下文用于TB大小4x4的一组上下文,以及TB大小8x4/4x8的一组上下文。因此,在表5中,总共使用了9个上下文,而不是现有技术中的3个:
-log2BlkSize≤2的块 的1个上下文
-log2BlkSize=3的块 的1个上下文
-log2BlkSize≥4的块 的1个上下文
-4x4块 的1个上下文
-4x8/8x4块 的1个上下文
-8x8块 的1个上下文
-4x16/16x4、8x16/16x8、4x32/32x4块 的1个上下文
-16x16、32x32块 的1个上下文
-8x32/32x8、16x32/32x16块 的1个上下文
Figure BDA0002622847520000252
Figure BDA0002622847520000261
表5
图14示出了根据本公开的一个实施例的视频编码的示例性方法的流程图1400。方法1400包括,在步骤1410,访问与视频图片中的块相关联的句法元素的二进制位。然后,在步骤1420,方法1400包括从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联。确定的步骤1420可以根据方法1300(特别是步骤1330)或方法1000(特别是步骤1050)执行。如在步骤1050中,可以通过上下文索引来识别上下文。最后,在步骤1430,方法1400包括基于所确定的上下文对句法元素的二进制位进行熵编码。熵编码步骤1430可以根据方法1300(特别是步骤1340)或者方法1000(特别是步骤1060)执行。
在一个实施例中,该方法还可以包括,在步骤1440,提供句法元素的熵编码的二进制位。提供的步骤可以包括输出或提供给编码器的另一模块。提供的步骤可以是可选的、旁路的或移除的。
例如,步骤1410至1440可以由编码器700执行,特别地,由熵编码块745执行。方法1400可以针对句法元素的多个二进制位、针对多个句法元素(例如,与块中的多个变换系数相关联的句法元素)和/或针对图片中的多个块执行。方法1400可以针对句法元素的每个二进制位、针对块中的每个句法元素和/或针对图片中的每个块执行。
根据该方法的一个实施例,可以基于上下文的多个在先(prior)选择或出现来确定上下文。类似地,可以基于与出现的数量相关联的状态信息来确定上下文。
根据该方法的一个实施例,可以基于与上下文相关联的多个块类型来进一步确定上下文。
根据该方法的一个实施例,第二上下文可以与包括与第一上下文相关联的块类型的块类型相关联。
根据该方法的一个实施例,当第一上下文的先前选择或出现的数量超过一个值时,所确定的上下文可以是第一上下文。
根据该方法的一个实施例,当第一上下文的先前选择的数量不超过(小于或等于)该值(或阈值)时,所确定的上下文可以是第二上下文。
根据该方法的一个实施例,可以为视频的至少一个图片确定先前选择的数量。
根据该方法的一个实施例,块类型可以基于块大小和块形状中的至少一个。
根据该方法的一个实施例,一组上下文可以基于块大小和块形状中的至少一个与块类型相关联。
根据一个实施例,该方法还可以包括确定与块类型相关联的一组上下文。
根据该方法的一个实施例,句法元素可以确定以下至少一个:
-变换系数是否非零(significant-coeff-flag),
-块的所有变换系数是否都非零的(例如,CG有效标志),
-变换系数是否大于1(coeff-abs-level-greater1-flag)。
-变换系数是否大于2(coeff-abs-level-greater2-flag)。
-变换系数的符号(coeff-sign-flag)
-变换系数的绝对值剩余(absolute value remaining)(coeff-abs-level-remaining)
-是否跳过块的变换(transform_skip_flag)
-TB亮度、色度cb或色度cr是否包括非零系数(cbf_luma、cbf_cb、cbf_cr)
-CU是否已合并(merge_flag)
-TU是否被划分(split_transform_flag)
-等。
根据该方法的一个实施例,可以根据离散余弦变换和离散正弦变换中的一个来变换变换系数。
根据该方法的一个实施例,熵编码可以是CABAC熵编码。
根据一个实施例,该方法还可以包括接收图片,将图片分割为包括块的多个块,确定块的预测残差,变换和量化残差以获得多个变换系数,以及对残差进行熵编码。例如,变换和量化的步骤可以由编码器700的模块725和730执行。例如,熵编码的步骤可以由编码器700的模块745执行。接收、变换和量化的步骤可以是可选的、旁路的或移除的,因为它们可能已经由另一设备预先执行和/或结果可能已经存储在存储器中。
应该理解,上述方法1400的任何实施例都可以由编码器700实现。编码器700的块可以由硬件(例如,集成电路)或软件实现,存储在存储器中并由处理器执行。
解码
图15示出了根据本公开的实施例的示例性视频解码器1500的简化框图。视频解码器1500可以包括在通信***的接收器中。如图7所示,视频解码器1500一般执行与视频编码器700执行的编码过程互逆(reciprocal)的解码过程。具体地,解码器1500的输入包括视频比特流,其可以由视频编码器700生成。比特流首先被熵解码(模块1530),以获得变换系数、运动矢量、句法元素和其他编码信息。变换系数被去量化(模块1540)和逆变换(模块1550)以对残差进行解码。然后将解码的残差与预测样点块(也称为预测符)组合(模块1555),以获得解码/重构的图像块。可以从帧内预测(模块1560)或运动补偿预测(即,帧间预测)(模块1575)获得预测样点块(模块1570)。可以对重构图像应用环路滤波器(模块1565)。环路滤波器可以包括去块滤波器和SAO滤波器。滤波后的图像存储在参考图片缓冲器1580中。
视频解码器1500的模块可以用软件实现并由处理器执行,或者可以由压缩领域的技术人员通过熟知的电路实现。具体地,视频编码器1500可以实现为集成电路(IC),单独或者与视频解码器700组合作为编解码器。
视频解码器1500的模块也存在于其他视频解码器(例如,HEVC解码器)中,除了本公开中描述的差异,特别地,将在以下段落和附图中更详细地描述根据本公开的,如图6中的块大小和形状中的差异,以及如图7的模块745的互逆的熵解码模块1530中的差异。对于除熵解码之外的功能(例如,除1530之外的模块),视频解码器1500可以类似于HEVC视频解码器,并且本文不详细描述这些功能。
熵解码
如前所述,在HEVC标准和ISO/IEC JTC1/SC29/WG11的联合视频探索小组的JVET-C1001_v3文件中,包含在所谓的变换块(TB)中的量化系数可以根据图8中的示例性模式使用CABAC进行熵编码和解码,图8示出了示例性8x8 TB。在CABAC解码器处,执行CABAC编码器的一般互逆功能。CABAC和其他基于上下文的编码器和解码器是压缩领域的技术人员所熟知的,在此不再详细描述。本公开适用于一般基于上下文的熵编码器和解码器(例如,CABAC编码器和解码器),并且涉及将用于元素(例如,句法元素)的熵压缩的上下文(例如,上下文索引)确定为TB形状的函数,这可以提供更高的压缩效率,特别是当CU非对称时。
CABAC解码过程的输入包括编码的比特流,通常符合HEVC标准或如ISO/IEC JTC1/SC29/WG11的联合视频探索小组的JVET-C1001_v3文件的进一步的演进。在解码过程的任何一点,解码器都知道接下来要对哪个句法元素进行解码,因为解码器在标准化比特流句法和解码过程中被完全指定。此外,解码器还知道要解码的当前句法元素是如何被二进制化的(即,表示为被称为二进制位的二进制符号序列,每个二进制位等于“1”或“0”),以及二进制位字符串的每个二进制位是如何被编码的。
因此,CABAC解码过程的第一阶段对一系列二进制位进行解码。对于每个二进制位,其知道其是根据旁路模式还是常规模式编码的。旁路模式包括简单地读取比特流中的比特,并将获得的比特值分配给当前二进制位。这种模式的优点是简单明了,因此快速,通常用于具有均匀统计分布的二进制位,即等于“1”或“0”的概率相等。
如果当前二进制位没有在旁路模式下编码,那么它已经在常规模式(即通过基于上下文的算术编码)下编码。在常规模式下,首先,为当前二进制位的解码获得上下文。上下文由与常规模式相关联的上下文建模器模块给出。上下文的目标是在给定一些上下文在先或信息X的情况下,获得当前二进制位具有值“0”的条件概率。在先X是在当前二进制位被解码时,在编码器和解码器侧以同步方式可用的一些已经解码的句法元素的值。
通常,在标准中指定了用于二进制位的解码的在先X,并且选择该在先X是因为其在统计上与要解码的当前二进制位相关。这种上下文信息的使用允许降低对二进制位进行编码的速率成本,因为给定X的二进制位的条件熵随着二进制位和X的相关性的增加而减少,这在信息论中是公知的(H(二进制位|X)<H(二进制位),或者如果二进制位和X在统计上相关,则知道X的二进制位的条件熵低于二进制位的熵)。
因此,上下文信息X被用于获得当前二进制位为“0”或“1”的概率。给定这些条件概率,常规解码模式执行二进制值二进制位的算术解码。然后,在知道当前上下文信息X的情况下,二进制位的值被用于更新与当前二进制位相关联的条件概率的值。这被称为上下文模型更新。只要二进制位被解码(或编码),就更新每个二进制位的上下文模型,允许逐步细化每个二进制元素的上下文建模。因此,CABAC解码器逐步学习每个常规编码的二进制位的统计行为。当前二进制位的常规算术解码或其旁路解码(取决于其被编码的方式)产生一系列解码二进制位。
应该理解,上下文建模器和上下文模型更新步骤在CABAC编码器和解码器侧是严格相同的操作。
CABAC解码的第二阶段包括将这一系列二进制符号转换为更高级别句法元素。句法元素可以采用标志的形式,在这种情况下,句法元素直接采用当前解码二进制位的值。另一方面,如果当前句法元素的二进制化对应于根据所考虑的标准规范的一组几个二进制位,则称为“二进制码字到句法元素(Binary Codeword to Syntax Element)”的转换步骤发生。该转换步骤是由编码器执行的二进制化步骤的互逆。例如,句法元素的标准二进制化产生以下编码元素:last_sig_coeff_x_prefix、lat_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。因此,由解码器执行的逆转换包括基于这些句法元素的相应解码二进制版本来获得这些句法元素的值。
根据现有技术的对有效系数标志进行熵解码的示例性方法与图10相似,除了步骤1060,该步骤随后成为编码的互逆:“对二进制位值进行熵解码”作为上下文索引的函数。
图16示出了根据本公开的实施例的基于上下文的熵解码(例如,CABAC)的示例性方法的流程图1600。图16是图13的互逆。比特流与编码视频一起被接收,包括熵编码的句法元素。步骤1620、1625、1630、1650和1660分别类似于步骤1320、1325、1330、1350和1360,将不再进一步解释。步骤1640是步骤1340的互逆,因为它执行熵解码,而不是熵编码。
不失一般性,步骤1640和1650可以顺序切换或并行执行。
应该理解,用于在一组上下文模型中从一个上下文模型转换或切换到另一上下文模型的阈值或级别可以包括在比特流中,无论编码与否,并且可以在解码器处被获取,以便执行图16的方法。
图17示出了根据本公开的一个实施例的视频解码的示例性方法的流程图1700。方法1700包括,在步骤1710,访问与编码视频的图片中的块相关联的句法元素的编码二进制位。然后,在步骤1717,方法1700包括从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联。确定的步骤1720可以根据方法1600(特别是步骤1630)执行。上下文可以由上下文索引识别。最后,在步骤1730,方法1700包括基于所确定的上下文对句法元素的编码二进制位进行熵解码。熵解码步骤1730可以根据方法1600(特别是步骤1640)执行。
在一个实施例中,该方法还可以包括,在步骤1740,提供句法元素的熵解码的二进制位。提供的步骤可以包括输出或提供给解码器的另一模块。提供的步骤可以是可选的、旁路的或移除的。
例如,步骤1710至1740可以由解码器1500执行,特别是由熵解码模块1530执行。方法1700可以针对句法元素的多个二进制位、针对块中的多个句法元素(例如,与多个变换系数相关联)和/或针对图片中的多个块执行。方法1700可以针对句法元素的每个二进制位、针对块中的每个句法元素和/或针对图片中的每个块执行。
根据该方法的一个实施例,可以基于上下文的在先选择或出现的数量来确定上下文。类似地,可以基于与出现的数量相关联的状态信息来确定上下文。
根据该方法的一个实施例,可以基于与上下文相关联的多个块类型来进一步确定上下文。
根据该方法的一个实施例,第二上下文可以与包括与第一上下文相关联的块类型的块类型相关联。
根据该方法的一个实施例,当第一上下文的先前选择的数量超过一个值时,所确定的上下文可以是第一上下文。
根据该方法的一个实施例,当第一上下文的先前选择的数量不超过(小于或等于)该值(或阈值)时,所确定的上下文可以是第二上下文。
根据该方法的一个实施例,可以为视频的至少一个图片确定先前选择的数量。
根据该方法的一个实施例,块类型可以基于块大小和块形状中的至少一个。
根据该方法的一个实施例,一组上下文可以基于块大小和块形状中的至少一个与块类型相关联。
根据一个实施例,该方法还可以包括确定与块类型相关联的一组上下文。
根据该方法的一个实施例,句法元素可以确定以下至少一个:
-变换系数是否非零(significant-coeff-flag),
-块的所有变换系数是否都非零的(例如,CG有效标志),
-变换系数是否大于1(coeff-abs-level-greater1-flag)。
-变换系数是否大于2(coeff-abs-level-greater2-flag)。
-变换系数的符号(coeff-sign-flag)
-变换系数的绝对值剩余(coeff-abs-level-remaining)
-是否跳过块的变换(transform_skip_flag)
-TB亮度、色度cb或色度cr是否包括非零系数(cbf_luma、cbf_cb、cbf_cr)
-CU是否已合并(merge_flag)
-TU是否被划分(split_transform_flag)
-等。
根据该方法的一个实施例,可以根据离散余弦变换和离散正弦变换中的一个来变换变换系数。
根据该方法的一个实施例,熵解码可以是CABAC熵解码。
根据一个实施例,该方法还可以包括接收编码图片,对块进行熵解码,对块进行逆变换以获得解码的残差,将解码的残差与预测样点块组合以获得解码/重构图像块。变换系数可以在逆变换之前被进一步逆量化。例如,熵解码、逆变换和逆量化的步骤可以分别由解码器1500的模块1530、1550和1540执行。接收、熵解码、逆变换和逆量化以及组合的步骤可以是可选的、旁路的或移除的,因为它们可能已经由另一设备预先执行和/或提供给另一设备,或者结果可能已经从存储器中检索和/或存储在存储器中。
应该理解,上述方法1700的任何实施例都可以由解码器1500实现。解码器1500的框可以由硬件(例如,集成电路)或软件实现,存储在存储器中并由处理器执行。
图18示出了示例性***的框图1800,其中可以实现本公开的示例性实施例的各个方面。***1800可以被具体实施为包括下面描述的各种组件的设备,并且被配置为执行上面所描述的过程。这种设备的示例包括但不限于个人计算机、膝上型计算机、智能手机、智能手表、平板计算机、数字多媒体机顶盒、数字电视接收器、个人视频记录***、联网家电和服务器。***1800可以通信地耦合到其他类似的***,并且经由如图18所示的通信信道耦合到显示器,并且如本领域技术人员所知的,以实现上述示例性视频***。***1800可以独立地或联合地实现编码器700、解码器1500或两者。此外,***1800可以独立地或联合地实现并配置为执行本公开的任何过程,包括方法1000、1300、1400、1600和/或1700。
***1800可以包括被配置为执行加载在其中的指令,用于实现如上所述的各种过程的至少一个处理器1810。处理器1810可以包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。***1800还可以包括至少一个存储器1820(例如,易失性存储器设备(诸如RAM)、非易失性存储器设备(诸如ROM))。***1800可以额外包括存储设备1840,存储设备1840可以包括非易失性存储器,包括但不限于可擦除可编程只读存储器(erasableprogrammable read-only memory,EPROM)、ROM、可编程只读存储器(programmable read-only memory,PROM)、动态RAM(dynamic RAM,DRAM)、静态RAM(static RAM,SRAM)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1840可以包括内部存储设备、附接存储设备和/或网络可访问存储设备。***1800还可以包括被配置为处理数据以提供编码视频或解码视频的编码器/解码器模块1830。
编码器/解码器模块1830表示可以包括在设备中以执行编码和/或解码功能的(多个)模块,例如分别根据图7和图15。如压缩领域中已知的,设备可以包括编码和解码模块中的一个或两个。此外,编码器/解码器模块1830可以实现为***1800的分离元件,或者可以作为本领域技术人员已知的硬件和软件的组合结合在处理器1810内。例如,编码器/解码器模块1830可以实现为一个或两个分离的集成电路和/或现场可编程门阵列(field-programmable gate array,FPGA)。
要加载到处理器1810上以执行上述各种过程的程序代码可以存储在存储设备1840中,并且随后加载到存储器1820上以由处理器1810执行。根据本公开的示例性实施例,(多个)处理器1810、存储器1820、存储设备1840和编码器/解码器模块1830中的一个或多个可以在执行上文讨论的过程期间存储各种项目中的一个或多个,包括但不限于输入视频、解码视频、比特流、等式、公式、矩阵、变量、操作和操作逻辑。
***1800还可以包括能够经由通信信道1860与其他设备通信的通信接口1850。通信接口1850可以包括但不限于被配置为从通信信道1860发送和接收数据的收发器。通信接口可以包括但不限于调制解调器或网卡,并且通信信道可以在有线和/或无线介质中实现。***1800的各种组件可以使用各种合适的连接(包括但不限于内部总线、电线和印刷电路板)来连接或通信耦合在一起。
根据本公开的示例性实施例可以由计算机软件执行,该计算机软件由处理器1810执行或由硬件或者由硬件和软件的组合执行。作为非限制性示例,根据本公开的示例性实施例可以由一个或多个集成电路实现。作为非限制性示例,存储器1820可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术(诸如光学存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器)实现。作为非限制性示例,处理器1810可以是适合于技术环境的任何类型,并且可以包括微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。
例如,本文所描述的实现方式可以以方法或过程、装置、软件程序、数据流或信号实现。即使仅在单一实现方式的形式的上下文中讨论(例如,仅作为方法讨论),所讨论的特征的实现方式也可以以其他形式实现(例如,装置或程序)。例如,装置可以用适当的硬件、软件和固件实现。例如,这些方法可以在装置(诸如,处理器)中实现,装置一般指处理设备,包括,例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如,例如,计算机、蜂窝电话、便携式/个人数字助理(portable/personal digital assistant,PDA),以及促进终端用户之间的信息通信的其他设备。
根据本公开的方面,提供了一种用于视频编码的装置1800,该装置包括处理器1810和耦合到处理器的至少一个存储器1820、1840,处理器1810被配置为执行上述视频编码方法1400的任何实施例。
根据本公开的方面,提供了一种用于视频解码的装置1800,该装置包括处理器1810和耦合到处理器的至少一个存储器1820、1840,处理器1810被配置为执行上述视频解码方法1700的任何实施例。
根据本公开的方面,提供了一种用于视频编码的装置,包括:用于访问与视频图片中的块相关联的句法元素的二进制位的部件;用于从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文的部件,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及用于基于所确定的上下文对句法元素的二进制位进行熵编码的部件。图7和图18的视频编码器可以包括该装置的结构或部件,特别是块745、1810和1830。
根据本公开的方面,提供了一种用于视频解码的装置,包括:用于访问与编码视频的图片中的块相关联的句法元素的编码二进制位的部件;用于从与块的块类型相关联的一组上下文中确定句法元素的二进制位的上下文的部件,该组上下文至少包括第一上下文和第二上下文,与第一上下文相比,第二上下文与更大数量的块类型相关联;以及用于基于所确定的上下文对句法元素的编码二进制位进行熵解码的部件。图15和图18可以包括用于视频解码的装置的结构或部件,特别是块1530、1810和1830。
对于本领域技术人员来说清楚的是,实现方式可以产生各种格式化的信号,以承载例如可以被存储或发送的信息。例如,信息可以包括用于执行方法的指令,或者由所描述的实现方式之一产生的数据。例如,信号可以被格式化以承载所描述的实施例的比特流。例如,这种信号可以被格式化为电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括,例如,对数据流进行编码和用编码数据流调制载波。例如,信号承载的信息可以是模拟信息或数字信息。众所周知,信号可以通过各种不同的有线或无线链路发送。信号可以存储在处理器可读介质上。
根据本公开的方面,信号包括被格式化为包括表示图片的块的编码数据的比特流,该编码数据根据视频编码方法1400的任何实施例被编码。
根据本公开的方面,比特流被格式化为包括表示图片的块的编码数据,该编码数据根据视频编码方法1400的任何实施例被编码。
此外,方法1000、1400、1900和/或1700中的任何一个可以实现为包括可以由处理器执行的计算机可执行指令的计算机程序产品(独立地或联合地)。具有计算机可执行指令的计算机程序产品可以存储在***1800、编码器700和/或解码器1500的相应的暂时或非暂时计算机可读存储介质中。
根据本公开的方面,提供了包括用于执行本公开的方法1000、1300、1400、1600和/或1700(独立地或联合地)的实施例中的任何一个的程序代码指令的计算机可读程序产品。
重要的是要注意,在一些实施例中,过程1000、1300、1400、1600和/或1700中的一个或多个元素可以被组合、以不同的顺序执行或排除,同时仍然实现本公开的各方面。其他步骤可以并行执行,其中处理器在开始另一个步骤之前不等待一个步骤的完全完成。
此外,本公开的各方面可以采取计算机可读存储介质的形式。可以利用一个或多个计算机可读存储介质的任何组合。计算机可读存储介质可以采取在一个或多个计算机可读介质中具体体现,并且具有在其上具体体现的、可由计算机执行的计算机可读程序代码的计算机可读程序产品的形式。本文所使用的计算机可读存储介质被认为是非暂时性存储介质,其具有在其中存储信息的固有能力以及从其中提供信息检索的固有能力。计算机可读存储介质可以是,例如,但不限于,电子的、磁的、光学的、电磁的、红外的或半导体的***、装置或设备,或前述的任何合适的组合。
应该理解,尽管提供了本公开可以应用的计算机可读存储介质的更具体的示例,但是如本领域普通技术人员容易理解的,下面的列表仅是说明性的而非穷举性的列表。示例的列表包括便携式计算机磁盘、硬盘、ROM、EPROM、闪存、便携式光盘只读存储器(compactdisc read-only memory,CD-ROM)、光存储设备、磁存储设备或前述的任何合适的组合。
根据本公开的方面,提供了承载软件程序的计算机可读存储介质,该软件程序包括用于执行本公开的任何方法(包括方法1000、1300、1400、1600和/或1700)的任何实施例的程序代码指令。
应该理解,对本公开的“一个实施例”或“实施例”或“一种实现方式”或“实现方式”及其其他变型的引用意味着结合该实施例描述的特定特征、结构、特性等包括在本公开的至少一个实施例中。因此,出现在说明书各处的短语“在一个实施例中”或“在实施例中”或“在一种实现方式中”或“在实现方式中”以及任何其他变化不一定都指同一实施例。
此外,本公开或其权利要求可以指“确定”各条信息。例如,确定信息可以包括估计信息、计算信息、预测信息、选择信息或从存储器中检索信息中的一个或多个。
此外,本公开或其权利要求可以指“提供”各条信息。例如,提供信息可以包括输出信息、存储信息、传输信息、发送信息、显示信息、示出信息、处理信息或移动信息中的一个或多个。
此外,本公开或其权利要求可以指“访问”各条信息。例如,访问信息可以包括接收信息、检索信息(例如,从存储器)、存储信息、处理信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息中的一个或多个。
此外,本公开或其权利要求可以指“接收”各条信息。与“访问”信息一样,接收是广义的术语。例如,接收信息可以包括访问信息或检索信息(例如,从存储器)中的一个或多个。此外,通常以这样或那样的方式在诸如例如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间涉及“接收”。
应该理解,所示出和描述的各种特征是可互换的。除非另有指示,一个实施例中示出的特征可以结合到另一个实施例中。此外,各种实施例中描述的特征可以组合或分离,除非被另外指示为是不可分离或不可组合的。
如前所述,图中所示的各种元件的功能可以通过使用专用硬件以及能够执行与适当软件相关联的软件的硬件来提供。此外,当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或多个单独的处理器提供,其中一些处理器可以被共享。
还应该理解,因为附图中描绘的构成***组件和方法中的一些优选地以软件实现,所以***组件或过程功能块之间的实际连接可以取决于本公开的过程被编程的方式而不同。给定本文的教导,相关领域的普通技术人员将能够设想本公开的这些和类似的实现方式或配置。
尽管本文已经参考附图描述了说明性实施例,但是应该理解,本公开不限于那些精确的实施例,并且相关领域的普通技术人员可以在不脱离本公开的范围的情况下在其中实现各种改变和修改。此外,在不脱离本公开的范围的情况下,可以组合各个实施例。所有这些变化和修改都旨在包括在如所附权利要求中阐述的本公开的范围内。

Claims (12)

1.一种视频编码方法,包括:
访问(1410)与视频图片中的块相关联的句法元素的二进制位;
基于句法元素的二进制位的上下文的在先选择的数量,从与块的块类型相关联的一组上下文中选择(1420)所述句法元素的二进制位的上下文,所述一组上下文至少包括第一上下文和第二上下文,所述第二上下文与包括与所述第一上下文相关联的块类型的更大数量的块类型相关联;以及
基于所确定的上下文对句法元素的二进制位进行熵编码(1430)。
2.一种用于视频编码的装置,包括:
用于访问与视频图片中的块相关联的句法元素的二进制位的部件;
用于基于句法元素的二进制位的上下文的在先选择的数量,从与块的块类型相关联的一组上下文中选择所述句法元素的二进制位的上下文的部件,所述一组上下文至少包括第一上下文和第二上下文,所述第二上下文与包括与所述第一上下文相关联的块类型的更大数量的块类型相关联;以及
用于基于所确定的上下文对句法元素的二进制位进行熵编码的部件。
3.一种视频解码方法,包括:
访问(1710)与编码视频图片中的块相关联的句法元素的编码二进制位;
基于句法元素的二进制位的上下文的在先选择的数量,从与块的块类型相关联的一组上下文中选择(1720)所述句法元素的二进制位的上下文,所述一组上下文至少包括第一上下文和第二上下文,所述第二上下文与包括与所述第一上下文相关联的块类型的更大数量的块类型相关联;以及
基于所确定的上下文对句法元素的编码二进制位进行熵解码(1730)。
4.一种用于视频解码的装置,包括:
用于访问与编码视频图片中的块相关联的句法元素的编码二进制位的部件;
用于基于句法元素的二进制位的上下文的在先选择的数量,从与块的块类型相关联的一组上下文中选择所述句法元素的二进制位的上下文的部件,所述一组上下文至少包括第一上下文和第二上下文,所述第二上下文与包括与所述第一上下文相关联的块类型的更大数量的块类型相关联;以及
用于基于所确定的上下文对句法元素的编码二进制位进行熵解码的部件。
5.根据权利要求1、3所述的方法或根据权利要求2、4所述的装置,其中,一旦所述第一上下文的在先选择的数量超过一个值,就选择所述第一上下文。
6.根据权利要求1、3和5中任一项所述的方法,或者根据权利要求2、4和5中任一项所述的装置,其中,为所述视频的至少一个图片确定先前选择的数量。
7.根据权利要求1、3和5-6中任一项所述的方法,或者根据权利要求2、4和5-6中任一项所述的装置,其中,块类型基于块大小和块形状中的至少一个。
8.根据权利要求1、3和5-7中任一项所述的方法或根据权利要求2、4和5-7中任一项所述的装置,其中,所述句法元素确定以下各项中的至少一项:所述变换系数是否非零、所述变换系数是否大于1、所述变换系数是否大于2、所述变换系数的符号和所述变换系数的绝对值剩余。
9.根据权利要求1、3和5-8中任一项所述的方法或根据权利要求2、4和5-8中任一项所述的装置,其中,所述熵编码是上下文自适应二进制算术编码CABAC。
10.一种计算机可读程序产品,包括用于执行根据权利要求1、3和5至9中任一项所述的方法的程序代码指令。
11.一种承载软件程序的计算机可读存储介质,所述软件程序包括用于根据权利要求1、3和5至9中任一项所述的方法的程序代码指令。
12.一种比特流,所述比特流被格式化为包括表示图片的块的编码数据,所述编码数据根据权利要求1和5至9中的任一项被编码。
CN201880088877.7A 2017-12-22 2018-12-12 基于上下文切换的视频编码和解码的方法和装置 Active CN111727607B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17306896.6A EP3503557A1 (en) 2017-12-22 2017-12-22 Method and apparatus for video encoding and decoding based on context switching
EP17306896.6 2017-12-22
PCT/US2018/065156 WO2019125859A1 (en) 2017-12-22 2018-12-12 Method and apparatus for video encoding and decoding based on context switching

Publications (2)

Publication Number Publication Date
CN111727607A true CN111727607A (zh) 2020-09-29
CN111727607B CN111727607B (zh) 2023-03-31

Family

ID=60953659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880088877.7A Active CN111727607B (zh) 2017-12-22 2018-12-12 基于上下文切换的视频编码和解码的方法和装置

Country Status (4)

Country Link
US (1) US11483562B2 (zh)
EP (2) EP3503557A1 (zh)
CN (1) CN111727607B (zh)
WO (1) WO2019125859A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929661B (zh) * 2015-10-13 2023-04-21 三星电子株式会社 解码方法和编码方法
US11218737B2 (en) * 2018-07-23 2022-01-04 Google Llc Asymmetric probability model update and entropy coding precision
EP3905202A4 (en) * 2018-12-26 2022-03-16 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING METHOD, THREE-DIMENSIONAL DATA DECODER METHOD, THREE-DIMENSIONAL DATA ENCODING DEVICE AND THREE-DIMENSIONAL DATA DECODER DEVICE
US11202100B2 (en) * 2019-03-11 2021-12-14 Qualcomm Incorporated Coefficient coding for transform skip mode
US11212555B2 (en) * 2019-06-19 2021-12-28 Tencent America LLC Method of reducing context models for entropy coding of transform coefficient significant flag
KR20220152299A (ko) * 2020-03-12 2022-11-15 인터디지털 브이씨 홀딩스 프랑스 비디오 인코딩 및 디코딩을 위한 방법 및 장치
JP2024529313A (ja) * 2021-07-07 2024-08-06 オッポ広東移動通信有限公司 ビデオコーデックにおけるシーケンスレベルおよびスライスレベルの構文表現

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1656817A (zh) * 2002-03-22 2005-08-17 真实网络公司 上下文自适应的vlc视频变换系数编码/解码方法与设备
US20120020408A1 (en) * 2010-07-20 2012-01-26 Wen-Hsiung Chen Video compression using multiple variable length coding methods for multiple types of transform coefficient blocks
CN102939755A (zh) * 2010-04-13 2013-02-20 弗兰霍菲尔运输应用研究公司 显著性图和变换系数块的编码
US20160353111A1 (en) * 2015-05-29 2016-12-01 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (cabac) design
WO2017088170A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Entropy coding the binary tree block partitioning structure
CN107465928A (zh) * 2011-06-16 2017-12-12 Ge视频压缩有限责任公司 熵编码中的上下文初始化

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8913666B2 (en) * 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
US8755620B2 (en) * 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
ES2638093T3 (es) * 2012-01-20 2017-10-18 Ge Video Compression, Llc Codificación y decodificación de coeficiente de transformada
WO2017088810A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Method and apparatus of entropy coding and context modelling for video and image coding
WO2017107074A1 (en) * 2015-12-22 2017-06-29 Realnetworks, Inc. Residual transformation and inverse transformation in video coding systems and methods
US10609414B2 (en) * 2017-05-08 2020-03-31 Qualcomm Incorporated Context modeling for transform coefficient coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1656817A (zh) * 2002-03-22 2005-08-17 真实网络公司 上下文自适应的vlc视频变换系数编码/解码方法与设备
CN102939755A (zh) * 2010-04-13 2013-02-20 弗兰霍菲尔运输应用研究公司 显著性图和变换系数块的编码
US20120020408A1 (en) * 2010-07-20 2012-01-26 Wen-Hsiung Chen Video compression using multiple variable length coding methods for multiple types of transform coefficient blocks
CN103004195A (zh) * 2010-07-20 2013-03-27 思科技术公司 将多种可变长度编码方法用于多种类型的变换系数块的视频压缩
CN107465928A (zh) * 2011-06-16 2017-12-12 Ge视频压缩有限责任公司 熵编码中的上下文初始化
US20160353111A1 (en) * 2015-05-29 2016-12-01 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (cabac) design
WO2017088170A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Entropy coding the binary tree block partitioning structure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李蕊: "上下文感知计算若干关键技术研究", 《中国博士学位论文全文数据库》 *

Also Published As

Publication number Publication date
EP3503557A1 (en) 2019-06-26
WO2019125859A1 (en) 2019-06-27
CN111727607B (zh) 2023-03-31
EP3729813A1 (en) 2020-10-28
US11483562B2 (en) 2022-10-25
US20200322610A1 (en) 2020-10-08
EP3729813B1 (en) 2024-04-17

Similar Documents

Publication Publication Date Title
CN111727607B (zh) 基于上下文切换的视频编码和解码的方法和装置
US11309910B2 (en) Methods and apparatus for unified significance map coding
EP3345394B1 (en) Coefficient level coding in video coding
CN112075082B (zh) 用于基于cabac的神经网络实现方式的视频编码与解码的方法及设备
KR101523452B1 (ko) 비디오 코딩에서 블록에 대한 스캐닝 순서에 기초하여 비디오 블록 내의 마지막 유효 계수의 포지션을 코딩
KR101642629B1 (ko) 비디오 코딩에서의 바이패스 코딩된 구문 엘리먼트들의 그룹화
KR101590237B1 (ko) 변환 계수들에 대한 함수-기반의 스캐닝 순서를 이용한 비디오 코딩
EP2647203B1 (en) Separately coding the position of a last significant coefficient of a video block in video coding
RU2738317C1 (ru) Способ и устройство для энтропийного кодирования и декодирования видеосигнала
KR101641439B1 (ko) 비디오 코딩에서의 비-정사각형 블록들에 대한 컨텍스트 적응적 엔트로피 코딩
KR20210142642A (ko) 비디오 코딩을 위한 확장된 다중 변환 선택
KR102416958B1 (ko) 픽처 데이터와 관련된 신택스 요소를 나타내는 이진 심볼들의 시퀀스를 컨텍스트 적응 이진 산술 코딩하기 위한 방법 및 디바이스
WO2019135930A1 (en) Sign prediction in video coding
KR101539169B1 (ko) 비디오 코딩을 위한 런-모드 기반 계수 코딩
CN103140877A (zh) 使用帧内预测的视频译码
CN112673639B (zh) 用于对变换系数位阶值进行编码的***和方法
KR20180021879A (ko) 디지털 이미지를 인코딩하기 위한 방법, 디코딩 방법, 디바이스들, 및 연관 컴퓨터 프로그램들
EP4128769A1 (en) Low-frequency non-separable transform processing in video coding
US11310505B2 (en) Method and apparatus for adaptive context modeling in video encoding and decoding
WO2019029951A1 (en) METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
EP3788784A1 (en) Encoding and decoding a video

Legal Events

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