CN104956674B - 用于最末重要系数位置编解码中的上下文减少的设备和方法 - Google Patents

用于最末重要系数位置编解码中的上下文减少的设备和方法 Download PDF

Info

Publication number
CN104956674B
CN104956674B CN201380014370.4A CN201380014370A CN104956674B CN 104956674 B CN104956674 B CN 104956674B CN 201380014370 A CN201380014370 A CN 201380014370A CN 104956674 B CN104956674 B CN 104956674B
Authority
CN
China
Prior art keywords
block
decoding
context
storehouse
video
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
CN201380014370.4A
Other languages
English (en)
Other versions
CN104956674A (zh
Inventor
K·帕纽索庞
方雪
王利民
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.)
Google Technology Holdings LLC
Original Assignee
Google Technology Holdings 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 Google Technology Holdings LLC filed Critical Google Technology Holdings LLC
Publication of CN104956674A publication Critical patent/CN104956674A/zh
Application granted granted Critical
Publication of CN104956674B publication Critical patent/CN104956674B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Landscapes

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

Abstract

在一个实施例中,一种视频编码的方法,该方法包括:编码视频块内的最末非零系数的位置,其中根据块宽度,最末非零系数的位置被提供在重要性图中;以及分配至少一个上下文模型到重要性图;其中至少一个上下文模型包括至少三个第一上下文,并且其中第一三个上下文中的每个上下文被配置为跨不同宽度的两个或更多个块被共享。

Description

用于最末重要系数位置编解码中的上下文减少的设备和方法
技术领域
本发明总体上涉及视频编解码领域,并且更加具体地涉及用于减少在对最末变换位置进行编解码时使用的上下文的数目的系统、设备和方法。
相关申请的交叉引用
本申请要求于2012年1月20日递交的、名称为“Chroma Context Reduction forLast Coefficient Position Coding in HEVC”的第61/589,216号美国临时专利申请以及于2012年2月2日递交的、名称为“Chroma Context Reduction for Last CoefficientPosition Coding in HEVC”的第61/594,337号美国临时专利申请的权益,上述美国临时专利申请通过引用被整体并入于此。
背景技术
视频压缩使用块处理用于许多操作。在块处理中,邻近像素的块被分组到编解码单元中,并且压缩操作把该像素组当作一个单元对待,以利用编解码单元内的邻近像素之间的相关性。基于块的处理通常包括预测编解码和变换编解码。使用量化的变换编解码是一种类型的数据压缩,其通常是“有损的”,因为取自源图像的变换块的量化通常丢弃与源图像中的变换块关联的数据,由此降低其带宽要求但是也常常导致在来自源图像的原始变换块的重现中的质量损失。
MPEG-4AVC(也被称为H.264)是在块处理中使用变换编解码的已建立的视频压缩标准。在H.264中,图像被划分为16x16像素的宏块(MB)。每个MB通常进一步被划分为更小的块。使用图像内/ 图像间预测来预测大小等于或小于MB的块,并且空间变换连同量化一起被应用到预测残差。量化的残差变换系数通常使用熵编解码方法 (例如可变长度编解码或算术编解码)来编码。上下文自适应二进制算术编解码(CABAC)被引入H.264中用于通过将自适应二进制算术编解码技术与一组上下文模型结合来提供基本上无损的压缩效率。在CABAC中,上下文模型选择在提供一定程度的自适应和冗余减少中起作用。H.264规定了针对2D块的两种扫描模式。Z字形扫描用于使用逐行视频压缩技术编解码的图像,而备选扫描则针对使用隔行视频压缩技术编解码的图像。
被开发用于接替H.264的国际视频编解码标准HEVC(高效率视频编解码)将变换块大小扩展至16x16和32x32像素以有益于高清晰度(HD)视频编解码。HEVC还可以使用包括Z字形在内的各种扫描模式。
在诸如HEVC之类的视频压缩标准内,用于减少空间和时间冗余的编解码机制是期望的。正在进行的努力针对提高分别压缩和解压缩视频数据流的编码器和解码器(编码解码器)的效率。因为编码解码器的目的是要减少数字视频帧的大小,由此促进视频的有效存储和通信,所以在编码解码器硬件和编码/解码处理方面的开发继续进行。
附图说明
本公开内容的细节(既关于其结构又关于其操作)可以通过研究附图来部分地理解,其中同样的附图标记指代同样的部分。附图不必要按比例,反而将重点放在说明公开内容的原理上。
图1A是在其中可以使用本公开内容的各种实施例的视频系统;
图1B是在其上可以实施本公开内容的实施例的计算机系统;
图2A、图2B、图3A和图3B图示了根据本公开内容的实施例的某些视频编码原理;
图4A和图4B示出了根据本公开内容的实施例的用于编码器和解码器的可能架构;
图5A和图5B图示了根据本公开内容的实施例的另外的视频编解码原理;
图6A至图6D是示出了示例常规上下文模型的图;
图7A至图7C是示出了示例常规上下文模型的图;
图8A至图8C是示出了根据本公开内容的实施例的示例上下文模型的图;
图9A至图9C是示出了根据本公开内容的实施例的示例上下文模型的图;
图10是示出了根据本公开内容的实施例的示例上下文模型的图;
图11是根据本公开内容的实施例的上下文减少的最末重要系数位置编解码的流程图;
图12是根据本公开内容的实施例的用于具有带有非零系数的至少一个子块的16x16TU的示例L0重要性图(significance map);
图13是用于图12的示例L0重要性图的示例对应L1重要性图。
图14是根据本公开内容的实施例的用于使用最末重要系数编解码的MxN变换单元(TU)的一般解码过程的示例流程图;以及
图15是根据本公开内容的实施例的用于使用最末子块位置编解码的MxN变换单元(TU)的一般解码过程的示例流程图。
发明内容
因此,本文提供了通过减少在对最末变换位置进行编解码时使用的上下文的数目来提高视频压缩效率的系统和方法。本文描述的方法和系统总体上涉及诸如视频编码器和解码器之类的视频处理。
在第一方面,提供了一种视频编码的方法,该方法包括:编码视频块内的最末非零系数的位置,其中根据块宽度,最末非零系数的位置被提供在重要性图中;以及分配至少一个上下文模型到重要性图;其中至少一个上下文模型包括至少三个第一上下文,并且其中第一三个上下文中的每个上下文被配置为跨不同宽度的两个或更多个块被共享。在第一方面的实施例中,至少三个上下文包括:与块关联的大小;块内系数中的给定系数根据扫描顺序的位置;以及扫描顺序。在第一方面的实施例中,分配具有第一三个上下文的上下文模型包括针对为8的块宽度将上下文的数目减少四个。在第一方面的实施例中,分配具有第一三个上下文的上下文模型包括针对为16的块宽度将上下文的数目减少九个。在第一方面的实施例中,使用的上下文的数目包括针对为16的块宽度的另外的三个上下文。在第一方面的实施例中,分配上下文模型包括针对为16的块宽度将上下文的数目减少六个。在第一方面的实施例中,使用的上下文的数目包括针对为16的块宽度的另外的四个上下文。在第一方面的实施例中,分配上下文模型包括针对为16的块宽度将上下文的数目减少五个。在第一方面的实施例中,编码最末非零系数的位置经由熵编码被实现。在第一方面的实施例中,熵编码包括上下文自适应二进制算术编解码(CABAC)。在第一方面的实施例中,CABAC包括用于最末非零系数的位置的截位码字。在第一方面的实施例中,编码最末非零系数的位置包括通过独立地信令其X坐标和Y坐标来明确地编码最末非零系数的位置。在第一方面的实施例中,在编码其它非零系数的位置之前编码最末非零系数的位置。在第一方面的实施例中,熵编码包括高效率视频编解码(HEVC)。在第一方面的实施例中,重要性图包括两个级别,其中一个级别标识块中非零系数的位置并且一个级别标识非零子块。在第一方面的实施例中,最末非零子块被编码用于标识最末非零系数。在第一方面的实施例中,编码包括解码,并且其中解码标识视频块内的最末非零系数的位置。在第一方面的实施例中,该方法在具有处理器和耦合到所述处理器的存储器的计算机上被实现,其中至少一些步骤使用所述处理器被执行。
在第二方面,提供了一种用于编码视频的装置,该装置包括视频编解码器,视频编解码器被配置为:编码视频块内的最末非零系数的位置,其中根据块宽度,最末非零系数的位置被提供在重要性图中;以及分配至少一个上下文模型到重要性图;其中至少一个上下文模型包括至少三个第一上下文,并且其中第一三个上下文中的每个上下文被配置为跨不同宽度的两个或更多个块被共享。在第二方面的实施例中,至少三个上下文包括:与块关联的大小;块内系数中的给定系数根据扫描顺序的位置;以及扫描顺序。在第二方面的实施例中,分配具有第一三个上下文的上下文模型包括针对为8的块宽度将上下文的数目减少四个。在第二方面的实施例中,分配具有第一三个上下文的上下文模型包括针对为16的块宽度将上下文的数目减少九个。在第二方面的实施例中,使用的上下文的数目包括针对为16的块宽度的另外的三个上下文。在第二方面的实施例中,分配上下文模型包括针对为16的块宽度将上下文的数目减少六个。在第二方面的实施例中,使用的上下文的数目包括针对为16的块宽度的另外的四个上下文。在第二方面的实施例中,分配上下文模型包括针对为16的块宽度将上下文的数目减少五个。在第二方面的实施例中,编码最末非零系数的位置经由熵编码被实现。在第二方面的实施例中,熵编码包括上下文自适应二进制算术编解码(CABAC)。在第二方面的实施例中, CABAC包括用于最末非零系数的位置的截位码字。在第二方面的实施例中,编码最末非零系数的位置包括通过独立地信令其X坐标和Y 坐标来明确地编码最末非零系数的位置。在第二方面的实施例中,在编码其它非零系数的位置之前编码最末非零系数的位置。在第二方面的实施例中,熵编码包括高效率视频编解码(HEVC)。在第二方面的实施例中,重要性图包括两个级别,其中一个级别标识非零系数的位置并且一个级别标识非零子块。在第二方面的实施例中,最末非零子块被编码用于标识最末非零系数。在第二方面的实施例中,视频编码器包括被配置为解码视频块内的最末非零系数的位置的视频解码器。在第二方面的实施例中,该装置包括以下各项中的至少一项:集成电路;微处理器;以及包括视频解码器的无线通信设备。在第二方面的实施例中,该装置包括以下各项中的至少一项:集成电路;微处理器;以及包括视频编码器的无线通信设备。
具体实施方式
在本公开内容中,术语“编解码(coding)”指的是发生在编码器处的编码或者发生在解码器处的解码。相似地,术语编解码器指的是编码器、解码器或者组合的编码器/解码器(CODEC)。术语编解码器、编码器、解码器和CODEC全部指的是被设计用于与本公开内容一致的影像和/或视频数据的编解码(编码和/或解码)的特定机器。影像和视频数据一般由三个分量组成——一个用于表示像素亮度的亮度分量以及两个用于表示像素颜色信息的色度分量。
本讨论以对数字影像压缩领域中已知的一些术语和技术的非常简短的概述来开始。这种概述不是意在详细教导已知领域。本领域技术人员知道如何在教科书中和在相关标准中找到更多的细节。
现在将描述在其中可以使用本公开内容的实施例的视频系统的示例。要理解的是,在图中被描绘为功能块的元件可以被实现为硬件、软件或其组合。此外,本公开内容的实施例还可以被用在其它系统上,诸如在个人计算机、智能电话或平板计算机上。
参照图1A,视频系统(总体上标记为10)可以包括有线电视网络的头端(head end)100。头端100可以被配置为递送视频内容到邻居129、130和131。头端100可以在头端的层次结构内进行操作,其中在层次结构中越高的头端一般具有越大的功能。头端100可以被通信链接到卫星天线(satellite dish)112并且从其接收非本地节目的视频信号。头端100还可以被通信链接到递送本地节目到头端100的本地站114。头端100可以包括解码从卫星天线112接收的视频信号的解码器104、从本地站114接收本地节目的离播接收器(off airreceiver) 106、路由头端100的各种部件之间的数据通信的切换器102、编码视频信号用于递送到客户的编码器116、调制信号用于递送到客户的调制器118以及将各种信号组合到单个多通道传输中的组合器120。
头端100还可以被通信链接到混合光纤电缆(HFC)网络122。 HFC网络122可以被通信链接到多个节点124、126和128。节点124、 126和128均可以通过同轴电缆被链接到邻居129、130和131之一,并且递送电缆电视信号到该邻居。更加详细地示出了图1A的邻居之一130。邻居130可以包括许多住宅,这些住宅包括图1A中示出的家132。在家132内可以是被通信链接到视频显示器136的机顶盒134。机顶盒134可以包括第一解码器138和第二解码器140。第一解码器 138和第二解码器140可以被通信链接到用户接口142和大容量存储设备144。用户接口142可以被通信链接到视频显示器136。
在操作期间,头端100可以从卫星天线112和本地站114接收本地节目视频信号和非本地节目视频信号。非本地节目视频信号可以以数字视频流的形式被接收,而本地节目视频信号则可以被接收为模拟视频流。在一些实施例中,本地节目也可以被接收为数字视频流。数字视频流可以被解码器104解码并且响应于客户请求被发送到切换器 102。头端100还可以包括被通信链接到大容量存储设备110的服务器108。大容量存储设备110可以存储包括视频点播(VOD)在内的各种类型的视频内容,服务器108可以检索这些视频内容并且将其提供给切换器102。切换器102可以将本地节目直接路由给调制本地节目的调制器118,并且将非本地节目(包括任何VOD)路由给编码器 116。编码器116可以数字编码非本地节目。经编码的非本地节目然后可以被发送给调制器118。组合器120可以被配置为接收经调制的模拟视频数据和经调制的数字视频数据,组合视频数据并且经由多个射频(RF)通道将它发送给HFC网络122。
HFC网络122可以将组合的视频数据发送给节点124、126和128,这些节点可以将数据重新发送给它们的相应邻居129、130和131。家 132可以在机顶盒134处(更具体地,在第一解码器138和第二解码器140处)接收该视频数据。第一解码器138和第二解码器140可以解码视频数据的数字部分并且提供经解码的数据给用户接口142,用户接口142然后可以提供经解码的数据给视频显示器136。
图1A的编码器116以及解码器138和解码器140(以及本文描述的所有其它步骤和功能)可以被实现为包括存储在计算机可读存储设备(诸如存储器或另一类型的存储设备)上的计算机可读指令的计算机代码。计算机代码可以在计算机系统上由处理器(诸如专用集成电路(ASIC)或其它类型的电路)来执行。例如,用于实现编码器 116的计算机代码可以在驻留在头端100中的计算机系统(诸如服务器)上被执行。另一方面,用于解码器138和解码器140的计算机代码可以在构成一种类型的计算机系统的机顶盒134上被执行。代码可以作为由源代码、目标代码、可执行代码或者其它格式的程序指令组成的软件程序而存在。应当理解的是,用于图1A中示出的各种部件的计算机代码可以驻留在系统10中的任何地方或者被确定为期望的或有利的其它地方(诸如在云网络中)。此外,假如指令可以被一个或多个部件有效地执行,那么计算机代码可以位于一个或多个部件中。
图1B示出了在其上可以执行用于编码器116以及解码器138和解码器140的计算机代码的计算机系统的示例。计算机系统(总体上标记为400)包括可以实现或执行执行本文描述的一些或所有方法、功能和其它步骤的软件指令的处理器401或者处理电路。来自处理器 401的命令和数据可以通过例如通信总线403被传达。计算机系统400 还可以包括诸如随机存取存储器(RAM)之类的计算机可读存储设备 402,用于处理器401的软件和数据可以在运行期间驻留其中。存储设备402还可以包括非易失性数据存储器。计算机系统400可以包括用于连接到网络的网络接口404。其它已知的电子部件可以被添加或者替换计算机系统400中描绘的部件。计算机系统400可以驻留在头端100中并且执行编码器116,并且还可以被包括在机顶盒134之中用于执行解码器138和解码器140。此外,计算机系统400可以驻留在除头端100和机顶盒134之外的地方,并且可以小型化以便被集成到智能电话或平板计算机中。
视频编码系统可以通过去除视频数据中的冗余(例如通过去除可以被丢弃而不会非常不利地影响重现保真度的那些单元)来实现压缩。因为视频信号发生在时间和空间中,所以大多数视频编码系统利用在这些信号中存在的时间冗余和空间冗余两者。通常,连续帧之间存在高度时间相关性。这在空间域中对于彼此靠近的像素也是如此。因此,通过仔细利用这些时空相关性来实现高压缩增益。
现在将提供在本公开内容的实施例中视频数据如何通过编码器 116以及解码器138和解码器140被编码和解码的高级别描述。在该实施例中,编码器和解码器根据高效率视频编解码(HEVC)方法进行操作。HEVC是基于块的混合空间和时间预测编解码方法。在HEVC 中,如在图2A中示出的,输入图像首先被划分为叫作LCU(最大编解码单元)或CTB(编解码树块)的方形块。不像其它视频编解码标准(其中基本编解码单元是16x16像素的宏块),在HEVC中,LCU 可以大到128x128像素。LCU可以被划分为叫作CU(编解码单元) 的四个方形块,其是LCU大小的四分之一。每个CU可以被进一步拆分成是原始CU大小的四分之一的四个更小的CU。可以重复拆分过程直到满足某些准则。图3A示出了被划分成CU的LCU的示例。一般而言,对于HEVC,使用的最小CU(例如,如下面进一步详细描述的叶节点)被认为是CU。
特定LCU如何被拆分成CU可以通过四叉树来表示。在四叉树的每个节点处,如果节点被进一步拆分成子节点,则标志被设置为“1”。否则,标志被复位在“0”处。例如,图3A的LCU划分可以通过图3B 的四叉树来表示。这些“拆分标志”可以与视频比特流中的其它标志(包括跳跃模式标志、合并模式标志以及预测单元(PU)模式标志等) 一起被联合编解码。在图3B的四叉树的情况下,拆分标志10100可以作为开销(overhead)与其它标志一起被编解码。针对给定CU的语法信息可以被递归地定义,并且可以取决于CU是否被拆分成子 CU。
未拆分的节点(例如对应给定四叉树中的终端或者“叶”节点的节点)可以包括一个或多个预测单元(PU)。一般而言,PU表示对应CU的全部或一部分,并且包括用于出于执行针对CU的预测的目的而针对PU检索参考样本的数据。因此,如在图2B中示出的,在四叉树的每个叶处,2Nx2N的CU可以拥有四种可能的模式(NxN、 Nx2N、2NxN和2Nx2N)之一。虽然针对2Nx2N CU而被示出,但是可以使用具有不同尺寸和对应模式(例如方形或矩形)的其它PU。CU可以在空间上或者在时间上被预测编解码。如果CU以帧内模式被编解码,则CU的每个PU可以有其自己的空间预测方向。如果CU 以帧间模式被编解码,则CU的每个PU可以有其自己的(多个)运动矢量和关联的(多个)参考图像。定义运动矢量的数据例如可以描述运动矢量的水平分量、运动矢量的竖直分量、运动矢量的分辨率(例如四分之一像素精度或八分之一像素精度)、运动矢量所指向的参考帧和/或运动矢量的参考列表(例如列表0或列表1)。此外,运动矢量预测器索引可以被用于标识运动矢量预测器(例如左近邻、同位近邻)。用于CU定义CU的一个或多个PU的数据还可以描述例如将 CU划分成一个或多个PU。划分模式在CU未被编解码、被帧内预测模式编码还是被帧间预测模式编码之间可以不同。
一般而言,在帧内预测编码中,高级别的空间相关性存在于帧内的邻近块之间。因此,块可以根据附近的经编码和经重构的块来预测,从而产生帧内预测。在一些实施例中,预测可以通过经先前编码的样本(位于当前块的上面和左边)的加权平均来形成。编码器可以选择最小化原始与预测之间的差异或代价的模式,并且在控制数据中信令该选择。
一般而言,在帧间预测编码中,视频序列在各帧之间具有高的时间相关性,使得当前帧中的块能够由先前经编解码的帧(被称为参考帧)中的一个区域(或者在双向预测的情况下两个区域)来精确描述。帧间预测利用经先前编码和经重构的参考帧来开发一种使用基于块的运动估计和补偿技术的预测。
紧随用于产生预测数据和残差数据的帧内预测或帧间预测编码,并且紧随用于产生变换系数的任何变换(诸如在H.264/AVC中使用的4x4或8x8整数变换或者离散余弦变换(DCT)),可以执行变换系数的量化。在一些实施例中,使用例如HEVC中的变换跳跃模式可以旁路任何变换操作。量化一般指的是这样的过程,其中例如通过将高精度变换系数转换成有限数目的可能值来对变换系数进行量化,以可能地减少被用于表示系数的数据量。下面将更加详细地讨论这些步骤。
每个CU还可以被划分为变换单元(TU)。在一些实施例中,块变换操作在一个或多个TU上被执行,以解相关块内的像素并且将块能量压缩到变换块的低阶系数中。在一些实施例中,一个8x8或4x4 的变换可以被应用。在其它实施例中,一组不同大小的块变换可以被应用到CU,如在图5A中示出的,其中左边的块是被划分成PU的 CU,而右边的块是关联的一组变换单元(TU)。CU内的每个块变换的大小和位置由单独的四叉树(叫作RQT)来描述。图5B示出了用于图5A的示例中的CU的TU的四叉树表示。在该示例中,11000 作为开销的一部分被编解码并且被发送。如被理解的,CU、PU和TU 可以具有NxN的大小或者MxN(或NxM)的大小,其中N≠M。
任何给定CU的TU和PU可以用于不同的目的。TU通常用于变换、量化和编解码操作,而PU通常用于空间和时间预测。对于给定的CU,PU数目与TU数目之间不一定存在直接联系。
视频块可以包括在像素域中的像素数据的块或者例如在应用变换之后的变换域中的变换系数的块,上述变换诸如对给定视频块的残差数据的离散余弦变换(DCT)、整数变换、小波变换或概念上相似的变换,其中残差数据表示针对块的视频数据和针对块生成的预测数据之间的像素差。在某些情况下,视频块可以包括变换域中经量化的变换系数的块,其中,在对给定视频块的残差数据应用变换之后,产生的变换系数也被量化。在视频编码中,量化是引入损耗的步骤,使得比特率与重构质量之间的平衡可以被建立。下面将进一步讨论这些步骤。
块划分在基于块的视频编解码技术中担任重要用途。使用更小的块来编解码视频数据可以导致对视频帧的包括高级别细节的位置的数据的更好的预测,并且可以因此减少被表示为残差数据的产生的误差(例如预测数据与源视频数据的偏差)。一般而言,预测通过对各种尺寸的样本块之间的相关性进行建模来利用视频序列中的空间或时间冗余,使得仅仅实际信号与预测信号之间的小差值需要被编码。针对当前块的预测根据已经被编码的样本来创建。虽然潜在地减少残差数据,然而,这样的技术可能需要另外的语法信息来指示更小的块如何相对于视频帧被划分,并且可能导致增加的编解码视频比特率。因此,在一些技术中,块划分可以依赖于平衡期望的残差数据的减少与由于另外的语法信息导致的经编解码的视频数据的比特率的增加。
一般而言,块及其各种划分(例如子块)可以被认为是视频块。另外,片段(slice)可以被认为是多个视频块(例如宏块或编解码单元)和/或子块(宏块的划分,或者诸如PU、TU等的子块之类的子编解码单元)。每个片段可以是视频帧的可独立解码的单元。备选地,帧本身可以是可解码单元,或者帧的其它部分可以被定义为可解码单元。此外,GOP(也称为图像组)可以被定义为可解码单元。
根据本公开内容的实施例,编码器116(图1A)可以由如在图 4A中示出的若干功能模块组成。这些模块可以被实现为硬件、软件或者两者的任意组合。给定当前PU(x),预测PU(x')可以首先通过空间预测或者时间预测来获得。该空间或时间预测可以分别由空间预测模块129或时间预测模块130来执行。
存在空间预测模块129可以每PU执行的若干可能的空间预测方向,包括水平的、竖直的、45度对角的、135度对角的、DC、平面的等。一般而言,针对亮度PU和色度PU,空间预测可以被不同地执行。例如,包括亮度帧内模式在内,叫作IntraFromLuma的另外的模式可以用于色度帧内预测模式。语法指示每PU的空间预测方向。
编码器116(图1A)可以通过运动估计操作来执行时间预测。具体地,时间预测模块130(图4A)可以通过参考图像搜索当前PU的最佳匹配预测。最佳匹配预测可以由运动矢量(MV)和关联的参考图像(refIdx)来描述。一般地,B图像中的PU可以具有多达两个 MV。MV和refIdx两者可以是比特流中的语法的一部分。
预测PU然后可以从当前PU中减去,从而产生残差PU(e)。通过分组与CU关联的残差PU(e)而生成的残差CU然后可以通过变换模块117一次一个变换单元(TU)地变换,从而产生变换域中的残差PU(E)。为了完成这一任务,变换模块117可以使用例如方形或非方形块变换。
再次参照图4A,变换系数E然后可以被量化器模块118量化,从而将高精度变换系数转换成有限数目的可能值。量化过程可以减少与一些或所有系数关联的比特深度。例如,在量化期间,n比特值可以被下舍入为m比特值,其中n大于m。在一些实施例中,外部边界条件用于产生修改的一个或多个变换系数。例如,较低的范围或值可以用于确定变换系数是否被赋予非零值或者只是被归零。如应当理解的,量化是有损操作,并且由量化产生的损耗一般不能被恢复。
量化系数然后可以被熵编解码模块120熵编解码,从而产生最终的压缩比特。下面将更加详细地讨论由熵编解码模块120执行的具体步骤。应当注意的是,上面描述的预测、变换和量化可以针对任何视频数据块(例如,对于CU的PU和/或TU,或者对于宏块)根据指定的编解码标准来执行。
为了便于时间和空间预测,编码器116还可以提取量化的变换系数E并且使用解量化器模块122解量化它们,从而产生解量化的变换系数E'。解量化的变换系数然后被逆变换模块124逆变换,从而产生重构的残差PU(e’)。重构的残差PU(e’)然后被加到对应的预测x'(空间的或时间的)以形成重构的PU(x”)。
仍然参照图4A,解块滤波(DBF)操作可以首先在重构的PU(x”) 上执行以减少块效应(blocking artifact)。在完成针对经解码的图像的解块滤波过程之后,可以有条件地执行样本自适应偏移(SAO)过程,其补偿重构像素与原始像素之间的像素值偏移。在一些实施例中, DBF操作和SAO过程两者通过自适应环路滤波器功能来实现,该功能可以由环路滤波器模块126通过重构的PU有条件地来执行。在一些实施例中,自适应环路滤波器功能最小化输入图像与输出图像之间的编解码失真。在一些实施例中,环路滤波器模块126在帧间图像预测环路期间进行操作。如果重构的图像是参考图像,那么它们可以被存储在参考缓冲器128中以用于将来的时间预测。
HEVC指定了以解块滤波(DBF)首先被应用并且样本自适应偏移(SAO)滤波随后被应用的顺序被应用的两个环路滤波器。该DBF 与由H.264/MPEG-4AVC使用的DBF类似,但是具有更加简单的设计以及对并行处理的更好的支持。在HEVC中,DBF仅仅适用于8x8 样本网格,而在H.264/MPEG-4AVC的情况下,DBF适用于4x4样本网格。DBF使用8x8样本网格,是由于其不造成明显的退化,并且因为DBF不再造成与其它操作的级联交互而显著改善了并行处理。另一个改变是,HEVC仅仅允许0至2的三个DBF强度。HEVC还要求,DBF必须首先将针对竖直边缘的水平滤波应用到图像并且仅在那之后其将针对水平边缘的竖直滤波应用到图像。这允许多个并行线程被用于DBF。
SAO滤波过程在DBF之后被应用并且通过使用例如包括基于由编码器做出的直方图分析的一些参数的查找表而使其允许更好地重构原始信号幅度。SAO滤波有两个基本类型,它们是边缘偏移(EO) 类型和带偏移(BO)类型。可以每编解码树块(CTB)应用SAO类型之一。边缘偏移(EO)类型具有四个子类型,它们对应于沿着四个可能的方向(例如,水平的、竖直的、135度的和45度的)处理。对于给定的EO子类型,边缘偏移(EO)处理通过使用四个不同梯度模式之一将像素的值与其近邻中的两个近邻进行比较来操作。偏移在四个梯度模式中的每个梯度模式中被应用到像素。对于不在梯度模式之一中的像素值,不应用偏移。带偏移(BO)处理直接基于被拆分成32个带的样本幅度。偏移被应用到32个带中的16个带中的像素,其中一组16个带对应于BO子类型。SAO滤波过程被设计为通过添加偏移到样本值来减少相比于原始信号的失真。它可以增加边缘锐度并且减少振铃效应(ringing artifact)和脉冲效应(impulse artifact)。
在本公开内容的实施例中,帧内图像(诸如I图像)和帧间图像 (诸如P图像或B图像)被编码器116(图1A)支持。帧内图像可以在不参照其它图像的情况下被编解码。因此,空间预测可以用于帧内图像内的CU/PU。帧内图像提供解码可以开始的可能点。另一方面,帧间图像一般以高压缩为目的。帧间图像支持帧内预测和帧间预测两者。帧间图像中的CU/PU在空间上或者在时间上被预测编解码。时间参考是经先前编解码的帧内图像或帧间图像。
现在将更加详细地描述根据实施例的熵编解码模块120(图4A) 的操作。量化变换域系数块的熵编码可以基于一个或多个上下文模型。例如,熵编解码模块120提取从量化器模块118接收的量化系数矩阵,并且用其生成表示所有量化系数的符号的符号矩阵以及生成重要性图。重要性图可以是矩阵,其中每个元素指定量化系数矩阵内的 (多个)非零量化系数的(多个)位置。具体地,给定经量化的、2D 变换的矩阵,如果在位置(x,y)处的量化系数的值是非零的,则其可以被认为是重要的并且为关联的重要性图中的位置(x,y)分配“1”。否则,将“0”分配给重要性图中的位置(x,y)。一个或多个上下文模型被要求用于不同编解码信息的熵编码。
在一些熵编码标准中,在熵编码器部分内的上下文处理与在其它重要系数的位置之前被编码的最末重要系数的位置一起来执行。最末系数的位置可以通过使用一元代码(例如0或1)信令其X坐标和Y 坐标来明确地进行编码。X坐标和Y坐标信令可以是独立的,亮度和色度信令也可以是独立的。
在一些实施例中,最末重要系数的CABAC编解码被修改。例如,码字结构可以被用于表示最末重要系数的位置。例如,表1示出了关于码字结构如何可以被用于定位或标识大小为8x8的TU中的最末分量的示例性表格。最末位置分量的等级指的是对于每个X方向和Y方向的最末分量的位置。应当理解的是,沿X坐标或方向的位置是沿块的宽度(水平)的位置,而沿Y坐标的位置是沿块的高度(竖直) 的位置。因此,对于大小为8x8的TU,对于每个方向X、Y存在范围从0至7的8个位置。
表1-针对TU8x8的二进制化
截位一元(truncated unary)(上下文模型)还可以被称为前缀或前缀代码。定点二元(fixed binary)(旁路(bypass))还可以被称为后缀或后缀代码。截位一元值描述上下文模型。如本文所使用的,“上下文模型”被用于CABAC引擎中以编解码二进制符号。上下文模型描述编解码符号是“1”而不是“0”的概率。如本文所使用的,“仓位索引”指示在前缀代码内每个仓位的位置。每个仓位由CABAC引擎使用分配的上下文模型来编解码。应当理解的是,对于任何给定的TU,非零值通常(例如,基于概率)位于TU的上半或左上象限中。因此,最末重要系数也可能将位于该区域中(例如对于X和Y两者在位置0 至3中)。因此,在一些实施例中,使用截位或较短码字用于最有可能的位置节省了比特和存储/处理时间。
仍然参照表1,如可以看到的,最短码字被分配至非零值或系数的最有可能的位置。在一些实施例中,用于缩短或截位码字的另一种方式是分配前缀和后缀给较后面的非零值(以及非零值的更加不太可能的位置)。f_值指定后缀值,例如0或1。对于最短码字(例如位置0至3),仅分配前缀。对于较长码字(例如位置4至8),可以分配前缀和后缀。例如,对于位置(4,5)的系数,发送的码字将是 111100111101。作为另一个示例,对于位置(4,6)的系数,发送的码字将是111100111110。因此,可以看到,取决于值(例如,(4 或5)或者(6或7)),前缀保持相同,但是不同的后缀被附加用于区分被分组到一起的值(例如,(4和5)或者(6和7))。
表2、表3和表4表示码字结构如何可以被用于定位或标识大小分别为4x4、16x16和32x32的TU中的最末分量。
表2-针对TU4x4的二进制化
表3-针对TU16x16的二进制化
表4-针对TU32x32的二进制化
图6A至图6D描绘了示出具有仓位的最小重叠或共享的上下文 (例如仓位索引)的模型。通过示例的方式,在上下文被单独地但相似地被用于Y坐标的情况下,上下文仅针对X坐标示出。该示例示出了被选择的上下文的共享,这通过在选择的连续仓位中使用相同的上下文编号来指示。例如,在图6C中,上下文18和19在多个仓位之间被共享,而在图6D中,上下文30、31、32、33、34、35、36 和37在多个仓位之间被另外共享。在其中具有X的仓位标识不需要新上下文的仓位。
在图6的模型中示出的上下文模型的数目包括针对4x4TU的3 个上下文模型(图6A)、针对8x8TU的7个上下文模型(图6B)、针对16x16TU的12个上下文模型(图6C)以及针对32x32TU的 16个上下文模型(图6D)。假设上下文模型示出了用于亮度(Luma) 编解码的X坐标,则该示例总共需要3+7+12+16=38个上下文。对于色度(Chroma)编解码,最大块宽度是16,所以使用该示例,其需要3+7+12=22个上下文。
图7A至图7C描绘了示出具有增加的仓位的重叠量或共享量(或者上下文的减少)的上下文的模型。该示例示出了被选择的上下文的共享,这通过在选择的连续仓位中使用相同的上下文编号来指示。例如,在图7B中,上下文5在多个仓位之间被共享,而在图7C中,上下文9和10在多个仓位之间被共享。一般而言,因为提供了多达 16的块大小或宽度,所以图7图示了用于编解码色度分量的最末位置的上下文分配表。
在图7的模型中示出的上下文模型的数目包括针对4x4TU的3 个上下文模型(图7A)、针对8x8TU的4个上下文模型(图7B) 以及针对16x16TU的5个上下文模型(图7C)。假设上下文模型示出了用于色度(Chroma)编解码的X坐标,最大块宽度是16,所以使用该示例,其需要3+4+5=12个上下文。
如到目前为止所描述的,表1至表4示出了针对最末位置分量的每个可能量级(magnitude)的具体前缀(截位一元模式)和后缀(旁路模式)的组合。前缀代码中的每个仓位索引被分配以如图6至图10 所示的特定上下文模型。应当理解的是,仓位索引0对应于前缀代码的最高比特(最左边的比特)。例如,对于被表示为“0111”的具有 4个仓位的码字“7”,仓位索引“0”的值是0,仓位索引“1”的值是“1”,仓位索引“2”的值是“1”并且仓位索引“4”的值是“1”。
在一些实施例中,对于例如一个或多个亮度TU和色度TU,用于最末重要性系数编解码的上下文的总数目还可以进一步减少。在一些实施例中,可以通过每TU大小给X或Y的几个连续仓位分配相同的上下文来减少上下文的数目。例如,如上面参照图6和图7所描述的,针对TU大小的X或Y的第一仓位和第二仓位可以被分配以相同的上下文。针对不同的TU大小,上下文的减少还可以通过给X或Y 的某些仓位分配相同的上下文来实现。针对不同的TU大小,这某些仓位可以处在相对类似的X或Y的重要比特位置。例如,在4x4TU 和8x8TU中X或Y的第一仓位可以使用相同的上下文。图8、图9 和图10描绘了示出具有增加的仓位重叠量或共享量(或者上下文的减少)的上下文的另外的模型。
在图8中,3个相同的上下文被用于4x4TU(图8A)和8x8TU (图8B)两者,并且4个不同的上下文被用于16x16TU(图8C),由此对于色度编解码,上下文的总数目从12(例如,如在图7的模型中示出的)减少到7。
在图9中,3个相同的上下文被用于4x4TU(图9A)和8x8TU (图9B)两者,并且3个不同的上下文被用于16x16TU(图9C),由此对于色度编解码,上下文的总数目从12(例如,如在图7的模型中示出的)减少到6。
在图10中,3个相同的上下文被用于4x4TU(图10A)、8x8TU (图10B)和16x16(图l0C-l或图l0C-2)TU,由此对于色度编解码,上下文的总数目从12(例如,如在图7的模型中示出的)减少到3。
因此,根据图8至图10的教导,针对每个仓位索引的上下文分配可以被比较以查看上下文的效率或减少,如在表5、表6和表7中示出的,其中表5示出了针对图8的每个仓位索引的上下文分配,表 6示出了针对图9的每个仓位索引的上下文分配,以及表7示出了针对图10的每个仓位索引的上下文分配。关于最末位置分量的仓位的最大长度在表8中被示出并且说明了图7至图10之间的差异。
表5-图8的仓位索引
表6-图9的仓位索引
表7-图10的仓位索引
如图IOC-1所示。对于图IOC-2这将是1。
**如图IOC-1所示。对于图IOC-2这将是2。
表8-关于最末位置分量的仓位的最大长度
根据对表5至表8进行回顾,可以理解的是,用于编解码最末重要系数的上下文的数目可以通过跨TU大小在相似频繁性的位置处重复使用或共享相同的上下文而被减少。使用这一技术,可以假设量化系数的分布是跨不同的TU可缩放的(例如它们的统计是相似的)。
一旦熵编解码模块120创建了重要性图,它就可以编解码重要性图。在一个实施例中,这通过使用基于上下文的自适应二进制算术编解码(CABAC)技术来完成。这样做时,熵编解码模块120沿扫描线扫描重要性图,并且针对重要性图中的每个条目,编解码模块选择用于该条目的上下文模型。熵编解码模块120然后基于选择的上下文模型编解码该条目。也就是说,基于正被使用的上下文模型(数学概率模型),每个条目被分配以概率。这些概率被累积直到整个重要性图已经被编码。
图11图示了上下文减少的最末重要系数变换编解码过程1100的示例实施例。在块1110,(例如根据诸如X方向或Y方向之类的1D 顺序)执行扫描(例如2D矩阵中的)变换系数。在块1120,(例如根据1D顺序)确定最末重要变换系数的位置。在块1130,X坐标和 Y坐标被分配到在块1120中确定的最末重要系数位置。在块1140,每个坐标然后可以(例如基于2D变换的大小)诸如通过一元编解码 (例如截位的)、二元编解码等或其组合而在数学上被表示。在块 1150,连续仓位可以以适当的代码(例如一元、二元等)被划分为连续的子组。最终,在块1160,进行到每个子组中的仓位的一个上下文的分配以用于算术编解码,其中响应于仓位宽度来共享仓位。
换种方式说,给定TU,最末重要系数的位置首先由其在TU内的坐标(x,y)表示,其中x指的是横坐标并且y指的是纵坐标。在一些实施例中,x坐标和y坐标两者皆需要被编解码。为了做到这一点,每个坐标被转换成例如被CABAC编解码的二进制仓位的序列。对于CABAC编解码,每个仓位被分配一个上下文。在一些实施例中,针对仓位的上下文分配是基于在仓位序列中的仓位的重要位置(例如,左边的仓位是最重要仓位而右边的仓位是最不重要仓位)。如在本文中描述的,在不同大小的TU中具有相同重要位置的仓位可以共享相同的上下文。
通过熵编解码模块120输出的值以及经熵编码的符号、重要性图和非零系数可以通过编码器116(图1A)被插入到比特流中。该比特流可以通过HFC网络122被发送到解码器138和解码器140。
在一些实施例中,可以使用针对TU的两级重要性图编解码:级别0(L0)和级别1(L1)。如上面解释的,TU的重要性图指示TU 中非零系数的位置。重要性图的两级结构首先将大的TU(例如为 16x16和32x32的大小)划分为相同大小(例如4x4)的非重叠子块。
在一些实施例中,L1重要性图指示TU内的哪些4x4子块包含至少一个非零系数。例如,如果4x4子块具有至少一个非零系数,则针对子块的语法标志或指示符被设置为1,否则它被设置为0。
在一些实施例中,L0重要性图指示TU内的哪些系数是非零系数。例如,如果系数是非零系数,则针对该系数的语法标志或指示符被设置为1;否则,它被设置为0。
图12示出了针对具有至少一个有非零系数的子块的16x16TU的 L0重要性图的示例。最末重要系数通过用框将其包围来被突出显示,并且其位置语法是12(X坐标)和10(Y坐标)。如所示出的,16x16 TU被划分为16个4x4子块。只包含0系数的4x4子块通过具有包围框或边界来被突出显示。根据本公开内容,这些框中子块具有被设置为0的语法标志。4x4子块的平衡包含至少一个非零系数,并且因此它们的语法标志被设置为1。
针对图12的示例,在图13中示出了对应的L1重要性图,其中1 被分配给具有至少一个非零系数的4x4子块并且0被分配给只具有0 系数的4x4子块。通过用框将其包围来被突出显示的子块是最末被编解码的子块。类似于图11的最末被编解码的系数位置,可以使用针对最末被编解码的子块位置的语法位置或者标志。例如,在图12中,在子块单元中从左边到框中子块的水平位置(X坐标)具有值3。在子块单元中从顶部到框中子块的竖直位置(Y坐标)具有值2。如在图12中示出的,与用于16x16TU的最末被编解码的系数位置的范围 0至16相比,最末被编解码的子块位置的范围减少到0至3。
由于多级重要性图结构的引入,对于MxN TU,除了最末被编解码的系数位置以外或者代替最末被编解码的系数位置,最末被编解码的子块位置可以被编解码。在一些实施例中,两级重要性图结构可以被应用到大小为16x16、16x4、4x16、32x32、32x8和8x32的TU。应当理解的是,这个列表只是示例性的,并且其它大小的TU可以使用两级重要性图结构编解码。
在一些实施例中,与编解码最末被编解码的子块关联的好处可以包括最末被编解码的位置的范围的减少。例如,如果TU被划分为4x4 子块,则对于16xN或Nx16TU,该范围从0至15减少到0至3,并且对于32xN或Nx32TU,该范围从0至31减少到0至7,其中N等于(或者小于少于)另一尺寸大小。另一好处可以包括用于编解码最末被编解码的位置的语法的上下文表格尺寸的减小。具体地,再次参照表8,代替每个类型(I,P,B)的用于16x16的多达7个亮度上下文(例如对于图8的上下文模型)以及用于32x32的多达7个亮度上下文,仅仅该上下文大小的一半(例如3)或者甚至小于该上下文大小的一半被要求用于最末子块位置的编解码。
还有,在一些实施例中,用于4x4TU和8x8TU的上下文可以用于编解码16x16TU和32x32TU的最末被编解码的子块位置。在这种情况下,16x16上下文和32x32上下文可以被完全移除。例如,如果使用最末组位置编解码,则用于4x4TU的相同上下文分配可以用于16x16TU(例如图12和图13中的示例)。相似地,用于8x8TU的相同上下文分配可以用于32x32TU。
在一些实施例中,对于MxN TU(其中M≠N并且max(M,N)≥16),如上面描述的对于方形矩阵在上下文减少方面的相同好处可以是可能的。
如上面描述的,对于图像可以有许多不同大小的TU(例如4x4、 8x8和16x16)。如本领域技术人员已知的,具有至少一个非零量化系数的每个TU具有连同编解码扫描模式一起被定义的最末重要系数。在一些实施例中,TU的重要系数的位置(x,y)被编解码。此后,位置(x,y)的每个分量被转换成仓位序列,其中使用例如CABAC编解码该仓位序列。每个仓位可以使用特定上下文进行CABAC编解码。例如,第一上下文可以被分配给仓位序列的(多个)第一重要仓位,第二上下文可以被分配给仓位序列的(多个)第二重要仓位,以及第三上下文可以被分配给重要仓位的(多个)第三重要仓位。在一些实施例中,第一上下文是0,第二上下文是1,而第三上下文是2。
在一些实施例中,(多个)第一重要仓位可以包括用于4x4TU 的第一重要仓位,用于8x8TU的第一和第二重要仓位,以及用于 16x16TU的第一、第二、第三和第四最重要仓位。(多个)第二重要仓位可以包括用于4x4TU的第二重要仓位,用于8x8TU的第三和第四重要仓位,以及用于16x16TU的第五、第六和第七重要仓位。 (多个)第三重要仓位可以包括用于4x4TU的第三重要仓位以及用于8x8TU的第五重要仓位。
在一些实施例中,第一上下文可以被分配给不同大小TU的最末重要系数的仓位序列的第一重要仓位。第二上下文可以被分配给不同大小TU的最末重要系数的仓位序列的第二重要仓位。第三上下文可以被分配给不同大小TU的最末重要系数的仓位序列的第三重要仓位。
如上面描述的,相对于预定的扫描模式/编解码顺序,最末系数编解码过程可以编解码TU的最末非零变换系数的位置,所以解码器可以跳过在TU的末端的连续数目的零系数。图14和图15示出了根据本公开内容的原理的用于MxN TU的解码过程的示例流程图。
在图14中,示出了使用最末重要系数编解码的用于MxN变换单元(TU)的一般解码过程1400的流程图。在块1410,最末重要系数位置被解码(例如确定X坐标和Y坐标)。在块1420,最末重要系数位置被映射到最末子块位置。换句话说,如在两级重要性映射中描述的,在其中发现最末重要系数的最末子块可以被标识。在块1430,在最末子块位置之前的所有子块被扫描或者循环通过。在块1440,最末子块可以被解码。此后,在块1450,可以发生重要性图解码过程。在块1460,解码过程然后可以被拉平(level)以保存重要系数的值或量级。此外,在一些实施例中,还可以提供或发送量级的(多个)符号。
在图15中,示出了使用最末子块位置编解码的用于MxN变换单元(TU)的一般解码过程的流程图。在块1510,在其中定位最末重要系数位置的子块被解码(例如确定X坐标和Y坐标)。在块1520,在其中定位最末重要系数位置的子块被映射到最末子块位置。在块1530,在最末子块位置之前的所有子块被扫描或者循环通过。在块 1540,最末子块可以被解码。此后,在块1550,可以发生重要性图解码过程。在块1560,解码过程然后可以被拉平以保存重要系数的值或量级。此外,在一些实施例中,还可以提供或发送量级的(多个)符号。
在一些实施例中,使用最末子块位置编解码在两方面简化了TU 块的熵编解码。第一,用于信令较高级别的重要性图的开销减少了一半。第二,较高级别的重要性图所要求的逻辑和上下文表格大小被进一步减少。
在解码器138和解码器140(图1A)接收比特流的时候,它们执行例如图4B中示出的功能。解码器145的熵解码模块146可以解码符号值、重要性图和非零系数,以重建经量化的和经变换的系数。在解码重要性图时,熵解码模块146可以执行结合熵编解码模块120所描述的过程的逆过程——沿由扫描线构成的扫描模式来解码重要性图。熵解码模块146然后可以提供系数给解量化器模块147,解量化器模块147解量化系数矩阵,从而产生E'。解量化器模块147可以提供经解量化的系数给逆变换模块149。逆变换模块149可以对系数执行逆变换操作,从而产生e'。滤波和空间预测可以以结合图4A所描述的方式被应用。
所公开的实施例的上述描述被提供以使得本领域任何技术人员能够完成或者使用本公开内容。对这些实施例的各种修改对于本领域技术人员将是显而易见的,并且在本文中描述的一般原理可以被应用到其它实施例,而不脱离本公开内容的精神或范围。因此,要理解的是,在本文中给出的描述和附图表示本公开内容的示例性实施例,并且因此代表由本公开内容广泛涵盖的主题。还要理解的是,本公开内容的范围完全包含其它实施例,并且因此本公开内容的范围仅受所附权利要求的限制。

Claims (16)

1.一种视频编解码的方法,所述方法包括:
生成至少包括第一上下文、第二上下文和第三上下文的上下文模型,其中所述上下文模型包括:
所述第一上下文,其被分配给用于4x4块的第一重要仓位、用于8x8块的第一和第二重要仓位、以及用于16x16块的第一、第二、第三和第四最重要仓位,
所述第二上下文,其被分配给用于所述4x4块的第二重要仓位、用于所述8x8块的第三和第四重要仓位、以及用于所述16x16块的第五、第六和第七重要仓位,以及
所述第三上下文,其被分配给用于所述4x4块的第三重要仓位以及用于所述8x8块的第五重要仓位;
使用所述上下文模型熵编解码第一视频块的最末非零系数的位置,其中所述第一视频块具有与所述4x4块、所述8x8块或所述16x16块中之一相对应的大小;以及
熵编解码视频块的变换系数。
2.根据权利要求1所述的方法,还包括:
生成用于包括多个非重叠子块的第二块的重要性图,所述第一视频块是所述多个非重叠子块中的一个,所述重要性图识别所述多个非重叠子块中的哪个子块包括至少一个非零变换系数以及识别所述多个非重叠子块中的哪个子块仅包括零变换系数;以及
熵编解码在所述重要性图中仅具有零变换系数的多个非重叠子块的最末块的位置。
3.根据权利要求1所述的方法,其中熵编解码所述最末非零系数的位置包括上下文自适应二进制算术编解码CABAC。
4.根据权利要求3所述的方法,其中CABAC包括用于所述最末非零系数的位置的截位码字。
5.根据权利要求1所述的方法,其中熵编解码所述最末非零系数的位置包括独立地信令所述最末非零系数的位置的X坐标和Y坐标。
6.根据权利要求1所述的方法,其中熵编解码所述变换系数在熵编解码最末非零变换系数的位置之后发生。
7.根据权利要求1所述的方法,其中熵编解码所述变换系数包括高效率视频编解码(HEVC)。
8.根据权利要求1所述的方法,其中熵编解码所述变换系数包括熵解码。
9.根据权利要求1所述的方法,其中熵编解码所述变换系数包括熵编码。
10.根据权利要求1所述的方法,其中所述方法在具有处理器和耦合到所述处理器的存储器的计算机上被实现,其中至少一些步骤使用所述处理器被执行。
11.一种用于编解码视频的装置,所述装置包括视频编解码器,所述视频编解码器被配置为:
生成至少包括第一上下文、第二上下文和第三上下文的上下文模型,其中所述上下文模型包括:
所述第一上下文,其被分配给用于4x4块的第一重要仓位、用于8x8块的第一和第二重要仓位、以及用于16x16块的第一、第二、第三和第四最重要仓位,
所述第二上下文,其被分配给用于所述4x4块的第二重要仓位、用于所述8x8块的第三和第四重要仓位、以及用于所述16x16块的第五、第六和第七重要仓位,以及
所述第三上下文,其被分配给用于所述4x4块的第三重要仓位以及用于所述8x8块的第五重要仓位;
使用所述上下文模型熵编解码第一视频块的最末非零系数的位置,其中所述第一视频块具有与所述4x4块、所述8x8块或所述16x16块中之一相对应的大小;以及
熵编解码视频块的变换系数。
12.根据权利要求11所述的装置,其中所述视频编解码器包括包含以下各项中的至少一项的视频编码器:
集成电路;或
微处理器。
13.根据权利要求11所述的装置,其中所述视频编解码器包括包含以下各项中的至少一项的视频解码器:
集成电路;或
微处理器。
14.根据权利要求11所述的装置,其中所述视频编解码器被配置为:
生成用于包括多个非重叠子块的第二块的重要性图,所述第一视频块是所述多个非重叠子块中的一个,所述重要性图识别所述多个非重叠子块中的哪个子块包括至少一个非零变换系数以及识别所述多个非重叠子块中的哪个子块仅包括零变换系数;以及
熵编解码在所述重要性图中仅具有零变换系数的多个非重叠子块的最末块的位置。
15.根据权利要求11所述的装置,其中熵编解码所述最末非零系数的位置包括上下文自适应二进制算术编解码CABAC,其中CABAC包括用于所述最末非零系数的位置的截位码字。
16.根据权利要求11所述的装置,其中所述视频编解码器被配置为在熵编解码最末非零变换系数的位置之后熵编解码所述变换系数。
CN201380014370.4A 2012-01-20 2013-01-18 用于最末重要系数位置编解码中的上下文减少的设备和方法 Active CN104956674B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261589216P 2012-01-20 2012-01-20
US61/589,216 2012-01-20
US201261594337P 2012-02-02 2012-02-02
US61/594,337 2012-02-02
US13/745,660 US9813701B2 (en) 2012-01-20 2013-01-18 Devices and methods for context reduction in last significant coefficient position coding
US13/745,660 2013-01-18
PCT/US2013/022301 WO2013109990A2 (en) 2012-01-20 2013-01-18 Devices and methods for context reduction in last significant coefficient position coding

Publications (2)

Publication Number Publication Date
CN104956674A CN104956674A (zh) 2015-09-30
CN104956674B true CN104956674B (zh) 2019-02-15

Family

ID=48797176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380014370.4A Active CN104956674B (zh) 2012-01-20 2013-01-18 用于最末重要系数位置编解码中的上下文减少的设备和方法

Country Status (4)

Country Link
US (1) US9813701B2 (zh)
EP (2) EP2805495B1 (zh)
CN (1) CN104956674B (zh)
WO (1) WO2013109990A2 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8446301B2 (en) * 2011-04-15 2013-05-21 Research In Motion Limited Methods and devices for coding and decoding the position of the last significant coefficient
US9445093B2 (en) * 2011-06-29 2016-09-13 Qualcomm Incorporated Multiple zone scanning order for video coding
US9392301B2 (en) 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
JPWO2013046504A1 (ja) * 2011-09-29 2015-03-26 パナソニックIpマネジメント株式会社 算術復号装置、画像復号装置、および算術復号方法
KR20160118365A (ko) * 2012-02-06 2016-10-11 노키아 테크놀로지스 오와이 코딩을 위한 방법 및 장치
US9124872B2 (en) * 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
US9538175B2 (en) 2012-09-26 2017-01-03 Qualcomm Incorporated Context derivation for context-adaptive, multi-level significance coding
KR102250088B1 (ko) * 2013-10-24 2021-05-10 삼성전자주식회사 비디오 스트림을 복호화하는 방법 및 장치
WO2015100522A1 (en) * 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
US9716884B2 (en) * 2014-03-20 2017-07-25 Hfi Innovation Inc. Method of signaling for mode selection in 3D and multi-view video coding
US10405000B2 (en) * 2014-11-21 2019-09-03 Vid Scale, Inc. One-dimensional transform modes and coefficient scan order
CN105812803B (zh) * 2014-12-31 2018-09-28 浙江大华技术股份有限公司 一种针对变换单元tu的残差舍弃方法及装置
EP3306930A4 (en) * 2015-09-10 2018-05-02 Samsung Electronics Co., Ltd. Encoding device, decoding device, and encoding and decoding method thereof
EP3270595A1 (en) * 2016-07-15 2018-01-17 Thomson Licensing Method and apparatus for last coefficient coding for adaptive transform based video compression
KR102558015B1 (ko) * 2017-04-13 2023-07-21 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
US10523968B2 (en) * 2017-09-18 2019-12-31 Google Llc Coding of last significant coefficient flags
BR122021011813A2 (pt) * 2018-11-12 2021-08-10 Lg Electronics Inc. Método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8294603B2 (en) * 2009-06-30 2012-10-23 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
JP5676744B2 (ja) * 2010-04-13 2015-02-25 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
CN102884792B (zh) 2010-05-12 2016-08-17 汤姆森许可贸易公司 用于统一显著图编码的方法和设备
US9161041B2 (en) * 2011-01-09 2015-10-13 Mediatek Inc. Apparatus and method of efficient sample adaptive offset
US8964849B2 (en) * 2011-11-01 2015-02-24 Blackberry Limited Multi-level significance maps for encoding and decoding
US9729890B2 (en) * 2012-01-12 2017-08-08 Hfi Innovation Inc. Method and apparatus for unification of significance map context selection

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
《Context reduction of the last transform position in JCTVC-D262 for CE11.1 》;Cheung Auyeung et al.;《Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH》;20110323;1-6
《Last position coding for CABAC》;Wei-Jung Chien et al.;《Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva》;20111130;1-4
《Multi-level significance maps for Large Transform Units》;Nguyen Nguyen et al.;《Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, 21-30 November, 2011》;20111130;1-14
《Non-CE11: Context reduction for coding transform coefficients》;Shih-Ta Hsiang et al.;《Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH》;20111130;1-7
《WD4: Working Draft 4 of High-Efficiency Video Coding》;Benjamin Bross et al.;《Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: Torino, IT》;20110722;1-230

Also Published As

Publication number Publication date
WO2013109990A2 (en) 2013-07-25
EP2805495A2 (en) 2014-11-26
US20130188688A1 (en) 2013-07-25
CN104956674A (zh) 2015-09-30
EP4236318A3 (en) 2023-11-08
EP4236318A2 (en) 2023-08-30
WO2013109990A3 (en) 2013-10-10
EP2805495B1 (en) 2023-07-19
US9813701B2 (en) 2017-11-07
EP2805495C0 (en) 2023-07-19

Similar Documents

Publication Publication Date Title
CN104956674B (zh) 用于最末重要系数位置编解码中的上下文减少的设备和方法
CN104995919B (zh) 用于最末重要系数位置编码中的上下文减少的设备和方法
CN104685874B (zh) 用于在高效率视频编解码中处理分区模式的设备和方法
JP6906070B2 (ja) イントラ予測における予測ブロックを生成する装置
CN106068648B (zh) 调色板译码模式中视频块的逸出像素的量化
CN104221373B (zh) 用于采样自适应偏移代码化和/或信号通知的设备和方法
CN108464001A (zh) 用于视频译码的多类型树框架
KR101947658B1 (ko) 영상 복호화 방법 및 장치
DK2854398T3 (en) Method of encoding videos that share SAO parameters by color component
CN104620576B (zh) 可缩放视频译码中的替代变换
JP2020529766A (ja) 画像符号化/復号化方法、装置、及びビットストリームを保存した記録媒体
CN103891280B (zh) 用于确定视频数据的上下文模型的方法和系统
CN104604224B (zh) 可缩放视频译码中的变换基底调整
CN108781289A (zh) 针对视频译码工具的受约束块层级优化和用信号发送
EP4175184A1 (en) Methods and apparatus for unified significance map coding
CN109644281A (zh) 用于处理视频信号的方法和设备
CN105379270A (zh) 颜色分量间残余预测
CN103621082A (zh) 视频译码中的量化
KR20180019548A (ko) 영상 코딩 시스템에서 영상 특성에 기반한 적응적 필터링 방법 및 장치
KR20140062704A (ko) 영상 복호화 장치
WO2014055231A1 (en) Devices and methods for using base layer motion vector for enhancement layer motion vector prediction
US11039166B2 (en) Devices and methods for using base layer intra prediction mode for enhancement layer intra mode prediction
KR20150034203A (ko) 영상 복호화 방법 및 이를 이용하는 장치
KR20180064423A (ko) 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
CN110495171A (zh) 提供改进的算术编码的用于处理图像的方法、用于使用该方法对图像进行解码和编码的方法及其设备

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160511

Address after: American California

Applicant after: Technology Holdings Co., Ltd of Google

Address before: Illinois

Applicant before: Motorola Mobility, Inc.

GR01 Patent grant
GR01 Patent grant