CN113228667A - 用于视频编码的方法及装置 - Google Patents

用于视频编码的方法及装置 Download PDF

Info

Publication number
CN113228667A
CN113228667A CN202080005796.3A CN202080005796A CN113228667A CN 113228667 A CN113228667 A CN 113228667A CN 202080005796 A CN202080005796 A CN 202080005796A CN 113228667 A CN113228667 A CN 113228667A
Authority
CN
China
Prior art keywords
block
coefficient sub
syntax elements
transform
maximum number
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
CN202080005796.3A
Other languages
English (en)
Other versions
CN113228667B (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.)
Tencent America LLC
Original Assignee
Tencent America 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 Tencent America LLC filed Critical Tencent America LLC
Publication of CN113228667A publication Critical patent/CN113228667A/zh
Application granted granted Critical
Publication of CN113228667B publication Critical patent/CN113228667B/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
    • 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/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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
    • 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/1887Methods 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 variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开的各方面提供了用于视频编码的方法和装置。在该方法中,接收包括语法元素的比特流。该语法元素对应于已编码图片中的变换块的残差。基于第一系数子块的频率位置确定变换块中的第一系数子块的语法元素的上下文编码容器的第一最大数目。根据上下文模型和所确定的第一最大数目对第一系数子块的语法元素的多个容器中的每一个容器进行编码。基于上下文模型对第一系数子块的语法元素的多个容器的已编码比特进行解码。进一步地,第一最大数目与变换块中的第二系数子块的语法元素的上下文编码容器的第二最大数目不同。

Description

用于视频编码的方法及装置
援引加入
本申请要求于2019年12月31日提交的题为“Method and Apparatus for VideoCoding”的美国专利申请第16/731,763号(其要求了于2019年1月2日提交的题为“Constraints on Context-coded Bins for Transform Coefficients”的美国临时申请第62/704,041号的美国临时申请的优先权权益)的优先权权益。所有在先申请的全部内容通过引用整体并入本文中。
技术领域
本公开描述了总体上涉及视频编码的实施例。
背景技术
本文所提供的背景描述是出于总体上呈现本公开的内容的目的。在该背景部分中描述的范围内,目前命名的发明人的作品以及提交之时不可另行具备现有技术资格的本描述的各方面既未明确、亦未默示地承认为本公开的现有技术。。
可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,每个图片具有例如1920×1080亮度样本和相关色度样本的空间维度。该一系列图片可以具有例如每秒60幅图片或60Hz的固定的或可变的图片速率(非正式地也称为帧率)。未压缩的视频对位速率有很高的要求。例如,每样本8位的1080P60 4:2:0的视频(在60Hz帧率下具有1920×1080亮度样本分辨率)需要接近1.5Gbit/s的带宽。一小时的此类视频需要600GB以上的存储空间。
视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可以有助于减少上述带宽或存储空间需求,在某些情况下可以减小两个数量级或大于两个数量级。可以采用无损压缩和有损压缩,以及它们的组合。无损压缩是指可以从已压缩的原始信号中重建原始信号的精确副本的技术。当使用有损压缩时,已重建的信号可能与原始信号不相同,但原始信号和已重建的信号之间的失真足够小,以使已重建信号可用于预期的应用。对于视频,有损压缩被广泛使用。可容忍的失真量取决于应用。例如,某些消费流式应用的用户相比电视分发应用的用户来说可以容忍更高的失真。可达到的压缩率可以反映出:更高的可允许/容忍的失真可以产生较高的压缩率。
视频编码器和解码器可以利用来自几大类的技术,包括例如运动补偿、变换、量化和熵编码。
视频编解码技术可以包括称为帧内编码的技术。在帧内编码中,不参考来自先前已重建的参考图片的样本或其它数据来表示样本值。在一些视频编解码器中,图片在空间上被细分为样本块。当以帧内模式对所有样本块进行编码时,该图片可以是帧内图片。帧内图片及其派生物(例如,独立的解码器刷新图片)可用于重置解码器状态,并因此可用作已编码的视频比特流和视频会话中的第一图片,或用作静止图像。可以将帧内块的样本进行变换,并且可以在熵编码之前对变换系数进行量化。帧内预测可以是使预变换域中的样本值最小化的技术。在某些情况下,变换后的DC值越小且AC系数越小,在给定的量化步长下表示熵编码后的块所需的比特就越少。
诸如从例如MPEG-2代编码技术中已知的传统的帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括从例如周围样本数据和/或元数据进行尝试的技术,该样本数据和/元数据在进行空间上相邻的编码/解码期间获得且解码顺序在数据块之前。这样的技术此后称为“帧内预测”技术。应注意,在至少一些情况下,帧内预测仅使用来自正在重建的当前图片的参考数据,而不使用来自参考图片的参考数据。
可以有许多不同形式的帧内预测。当在给定视频编码技术中可以使用一个以上这样的技术时,可以以帧内预测模式对所使用的技术进行编码。在某些情况下,模式可以具有子模式和/或参数,并且这些模式可以被单独地编码或包括在模式码字中。给定的模式/子模式/参数组合使用哪个码字,可能会对通过帧内预测的编码效率增益产生影响,而且也可能会对用于将码字转换成比特流的熵编码技术产生影响。
在H.264中引入了帧内预测的某种模式,在H.265中进行了改进,并在诸如联合探索模型(JEM)、通用视频编码(VVC)和基准集(BMS)等较新的编码技术中进一步被改进。可以使用属于已有的可用样本的相邻样本值来形成预测器块。相邻样本的样本值根据方向复制到预测器块中。使用中的方向的参考可以在比特流中编码,或者其本身可以被预测。
运动补偿可以是有损压缩技术,并且可以涉及以下技术:来自先前已重建的图片或其一部分(参考图片)的样本数据块,在沿由运动矢量(此后为MV)所指示的方向进行空间移位之后,被用于新重建的图片或图片部分的预测。在某些情况下,参考图片可以与当前正在重建的图片相同。MVs可以具有X和Y两个维度,或者具有三个维度,第三个维度是使用中的参考图片的指示(间接地,后者可以是时间维度)。
在一些视频压缩技术中,可根据其它MVs(例如根据与在空间上与正在重建的区域相邻的另一个样本数据区域相关的那些MVs)来预测得到适用于某一样本数据区域的MV,该其他MVs的解码顺序在该MV之前。这样做可以大量减少对MV进行编码所需的数据量,从而消除冗余并增加压缩率。MV预测可以有效地工作,例如,因为当对从摄像机导出的输入视频信号(称为自然视频)进行编码时,存在比单个MV适用的区域大的区域朝着类似方向移动的统计可能性,因此,在一些情况下,可以使用从相邻区域的MVs导出的类似运动矢量来预测。这导致为给定区域找到的MV与从周围MVs预测的MV相似或相同,进而可以在熵编码之后,以比直接编码MV时使用的比特数更小的比特数来表示。在一些情况下,MV预测可以是从原始信号(即:样本流)导出的信号(即:MVs)的无损压缩的示例。在其他情况下,MV预测本身可能是有损的,例如由于当根据多个周围MVs计算预测器时会出现舍入误差。
在H.265/HEVC(ITU-T Rec.H.265,“高效视频编码”,2016年12月)中描述了各种MV预测机制。
参考图1,当前块(101)包括在运动搜索过程中已由编码器发现的样本,这些样本可以根据已被空间移位的、相同大小的先前块来预测得到。代替对该MV进行编码,可以使用与五个周围样本中的任一个周围样本相关联的MV,从与一个或多个参考图片相关联的元数据,例如从最近的(根据解码顺序)参考图片导出MV,该五个周围样本分别表示为A0、A1和B0、B1、B2(分别为102至106)。在H.265中,MV预测可以使用来自相邻块正在使用的同一参考图片的预测器。
发明内容
本公开的各方面提供了用于在解码器处进行视频编码的方法和装置。
在本公开的实施例中,提供了一种在解码器处进行视频编码的方法。在该方法中,接收包括语法元素的比特流。该语法元素对应于已编码图片中的变换块的残差。基于变换块中第一系数子块的频率位置,确定变换块中第一系数子块的语法元素的上下文编码容器(context-coded bins)的第一最大数目。根据上下文模型和所确定的第一系数子块的语法元素的上下文编码容器的第一最大数目,对第一系数子块的语法元素的多个容器中的每一个容器进行编码。基于上下文模型对第一系数子块的语法元素的多个容器的已编码比特进行解码。进一步地,第一系数子块的语法元素的上下文编码容器的第一最大数目与变换块中的第二系数子块的语法元素的上下文编码容器的第二最大数目不同。
在本公开的实施例中,第一系数子块的频率位置在变换块的低频区域中,以及第二系数子块的频率位置在变换块的高频区域中。
在本公开的实施例中,变换块的低频区域和变换块的高频区域由变换块中的系数子块的对角线分开。
在本公开的实施例中,第一系数子块的频率位置在变换块的低频区域中,以及第一系数子块的语法元素的上下文编码容器的第一最大数目大于变换块中系数子块的语法元素的上下文编码容器的平均最大数目。
在本公开的实施例中,当第一系数块的频率位置在变换块的两个或更多个系数子块的对角线上时,第一系数子块的语法元素的上下文编码容器的第一最大数目等于变换块中的系数子块的语法元素的上下文编码容器的平均最大数目。
在本公开的实施例中,基于第一系数子块的频率位置和变换块的大小来确定变换块中的第一系数子块的语法元素的上下文编码容器的第一最大数目。
在本公开的实施例中,第二系数子块的频率位置在变换块的高频区域中,以及第二系数子块的语法元素的上下文编码容器的第二最大数目小于变换块中的系数子块的语法元素的上下文编码容器的平均最大数目。
本公开的各方面还提供了一种被配置为执行上述方法中的任何方法的装置。在本公开的实施例中,提供了一种装置。该装置包括处理电路。处理电路接收包括语法元素的比特流。语法元素对应于已编码图片中的变换块的残差。处理电路基于变换块中第一系数子块的频率位置来确定变换块中第一系数子块的语法元素的上下文编码容器的第一最大数目。处理电路根据上下文模型和所确定的第一系数子块的语法元素的上下文编码容器的第一最大数目,对第一系数子块的语法元素的多个容器中的每一个容器进行编码。处理电路基于上下文模型对第一系数子块的语法元素的多个容器的已编码比特进行解码。进一步地,第一系数子块的语法元素的上下文编码容器的第一最大数目与变换块中的第二系数子块的语法元素的上下文编码容器的第二最大数目不同。
本公开的各方面还提供了非暂时性计算机可读存储介质,非暂时性计算机可读存储介质存储有指令,当指令被计算机执行时,使得计算机执行上述任何方法。
附图说明
通过以下详细描述和附图,所公开的主题的其他特征、性质和各种优势将更加明显,在附图中:
图1是一个示例中当前块及其周围空间合并候选的示意图。
图2是根据一个实施例的通信***的简化框图的示意图。
图3是根据一个实施例的通信***的简化框图的示意图。
图4是根据一个实施例的解码器的简化框图的示意图。
图5是根据一个实施例的编码器的简化框图的示意图。
图6示出了根据另一个实施例的编码器的框图。
图7示出了根据另一个实施例的解码器的框图。
图8A示出了根据一个实施例的示例性的基于基于上下文的自适应二进制算术编码(CABAC)的熵编码器。
图8B示出了根据一个实施例的示例性的基于CABAC的熵解码器。
图9示出了根据一个实施例的从子块扫描过程中生成变换系数的不同类型的语法元素的示例。
图10示出了根据一个实施例的用于当前系数的上下文选择的局部模板的示例。
图11示出了根据一个实施例的确定16×16变换块中系数子块的上下文编码容器的最大数目的示例。
图12示出了根据一个实施例的确定8×16变换块中系数子块的上下文编码容器的最大数目的示例。
图13示出了根据一个实施例的系数子块中的当前变换系数的左变换系数的示例。
图14示出了根据一个实施例的概述了熵解码过程的流程图。
图15是根据一个实施例的计算机***的示意图。
具体实施方式
I.视频编码编码器和解码器
图2示出了根据本公开的一个实施例的通信***(200)的简化框图。通信***(200)包括可经由例如网络(250)彼此通信的多个终端设备。例如,通信***(200)包括经由网络(250)互连的第一对终端设备(210)和(220)。在图2的示例中,第一对终端设备(210)和(220)执行数据的单向传输。例如,终端设备(210)可以对视频数据(例如,由终端设备(210)采集的视频图片流)进行编码,以便经由网络(250)传输到另一终端设备(220)。所编码的视频数据可以以一个或多个已编码视频比特流的形式传输。终端设备(220)可以从网络(250)接收已编码的视频数据,解码该已编码的视频数据以恢复视频图片,并根据所恢复的视频数据显示视频图片。单向数据传输在媒体服务应用等中可能是常见的。
在另一个示例中,通信***(200)包括第二对终端设备(230)和(240),其执行例如在视频会议期间可能发生的已编码视频数据的双向传输。对于数据的双向传输,在一个示例中,终端设备(230)和终端设备(240)中的每个终端设备可以对视频数据(例如,由该终端设备采集的视频图片流)进行编码,以便经由网络(250)传输到终端设备(230)和终端设备(240)中的另一个终端设备。终端设备(230)和终端设备(240)中的每个终端设备还可以接收由终端设备(230)和终端设备(240)中的另一个终端设备发送的已编码的视频数据,对该已编码的视频数据进行解码以恢复视频图片,并且可以根据所恢复的视频数据在可访问的显示设备上显示视频图片。
在图2的示例中,终端设备(210)、终端设备(220)、终端设备(230)和终端设备(240)可以被示出为服务器、个人计算机和智能电话,但是本公开的原理可以不限于此。本公开的实施例可以应用到膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备的应用中。网络(250)表示在终端设备(210)、终端设备(220)、终端设备(230)和终端设备(240)之间传送已编码视频数据的任何数量的网络,包括例如有线(有线)和/或无线通信网络。通信网络(250)可以在电路交换信道和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。出于本讨论的目的,除非在下文中另有解释,否则网络(250)的架构和拓扑对于本公开的操作可能是无关紧要的。
作为所公开主题的应用的示例,图3示出了视频编码器和视频解码器在流环境中的放置方式。所公开的主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、记忆棒等的数字媒体上存储压缩视频等等。
流式传输***可以包括采集子***(313),该采集子***可以包括例如数码相机的视频源(301),该视频源创建例如未压缩的视频图片流(302)。在一个示例中,视频图片流(302)包括由数码相机拍摄的样本。相较于已编码视频数据(304)(或已编码的视频比特流),被描绘为粗线以强调高数据量的视频图片流(302)可由电子设备(320)处理,该电子设备包括耦合到视频源(301)的视频编码器(303)。视频编码器(303)可以包括硬件、软件或软硬件组合,以实现或实施如下文更详细描述的所公开的主题的各方面。相较于视频图片流(302),被描绘为细线以强调较低的数据量的已编码的视频数据(304)(或已编码的视频比特流(304))可存储在流式传输服务器(305)上以供将来使用。一个或多个流式传输客户端子***,诸如图3中的客户端子***(306)和客户端子***(308)可以访问流式传输服务器(305)以检索已编码视频数据(304)的副本(307)和副本(309)。客户端子***(306)可以包括例如电子设备(330)中视频解码器(310)。视频解码器(310)对已编码视频数据的传入副本(307)进行解码,并创建可在显示器(312)(例如,显示屏)或其它渲染设备(未示出)上呈现的输出视频图片流(311)。在一些流式传输***中,可根据某些视频编码/压缩标准对已编码的视频数据(304)、已编码的视频数据(307)和已编码的视频数据(309)(例如,视频比特流)进行编码。这些标准的示例包括ITU-T H.265建议书。在一个示例中,正在开发的视频编码标准非正式地称为通用视频编码(VVC)。所公开的主题可以用于VVC的上下文中。
应注意,电子设备(320)和电子设备(330)可以包括其它组件(未示出)。例如,电子设备(320)可以包括视频解码器(未示出),并且电子设备(330)也可以包括视频编码器(未示出)。
图4示出了根据本公开的一个实施例的视频解码器(410)的框图。视频解码器(410)在包括在电子设备(430)中。电子设备(430)可以包括接收器(431)(例如,接收电路)。视频解码器(410)可用于代替图3示例中的视频解码器(310)。
接收器(431)可接收将由视频解码器(410)解码的一个或多个已编码视频序列;在同一实施例或另一个实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列的解码。可从信道(401)接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储设备的硬件/软件链路。接收器(431)可接收可被转发到它们各自的使用实体(未示出)的已编码视频数据和其他数据,例如已编码音频数据和/或辅助数据流。接收器(431)可以将已编码视频序列与其它数据分离。为了防止网络抖动,缓冲存储器(415)可以耦合在接收器(431)和熵解码器/解析器(420)(此后为“解析器(420)”)之间。在某些应用中,缓冲存储器(415)是视频解码器(410)的一部分。在其它情况下,该缓冲存储器可设置在视频解码器(410)(未示出)的外部。在另一些情况下,在视频解码器(410)的外部可设置缓冲存储器(未示出)以例如防止网络抖动,并且在视频解码器(410)的内部可设置另一缓冲存储器(415)以例如处理播放定时。当接收器(431)从具有足够带宽和可控性的存储/转发设备或从等同步网络接收数据时,可以不需要缓冲存储器(415),或者可以将缓冲存储器(415)做的很小。为了在诸如因特网的尽力而为的分组网络上使用,可能需要缓冲存储器(415),缓冲存储器(415)可以相对较大并且可以有利地具有自适应大小,并且可至少部分在视频解码器(410)外部的操作***或类似元件(未示出)中实现。
视频解码器(410)可以包括解析器(420),以根据已编码的视频序列重建符号(421)。这些符号的类别包括用于管理视频解码器(410)的操作的信息,以及潜在地用于控制诸如渲染设备(412)(例如显示屏)的渲染设备的信息,如图4所示,该渲染设备不是电子设备(430)的整体部分,但可以耦合到电子设备(430)。用于渲染设备的控制信息可以是补充增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(Video Usability Information,VUI)的参数集片段(未示出)的形式。解析器(420)可以解析/熵解码所接收到的已编码视频序列。已编码视频序列的编码可以根据视频编码技术或标准进行,并且可以遵循包括可变长度编码、霍夫曼编码、具有或不具有上下文敏感性的算术编码等的各种原则。解析器(420)可基于对应于组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素子组中的至少一个子组的自组参数集。子组可以包括图片组(Group of Pictures,GOPs)、图片、图块、切片、宏块、编码单元(Coding Units,CUs)、块、变换单元(Transform Units TUs)、预测单元(Prediction Units,PUs)等等。解析器(420)还可以从已编码的视频序列中提取诸如变换系数、量化器参数值、运动矢量等信息。
解析器(420)可对从缓冲存储器(415)接收的视频序列执行熵解码/解析操作,以便创建符号(421)。
符号(421)的重建可以涉及多个不同的单元,这取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其他因素。涉及哪些单元以及涉及方式可以由解析器(420)从已编码视频序列解析的子组控制信息来控制。为了清楚起见,未描绘解析器(420)和下文的多个单元之间的这种子组控制信息流。
除了已经提到的功能块之外,视频解码器(410)可以在概念上细分为如下所述的多个功能单元。在商业约束下操作的实际实施方式中,这些单元中的一些单元彼此密切地相互作用,并且可以至少部分地相互集成。然而,出于描述所公开主题的目的,将概念细分为以下功能单元是适当的。
第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为符号(421)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可以输出包括样本值的块,这些样本值可以输入到聚合器(455)中。
在一些情况下,缩放器/逆变换单元(451)的输出样本可以与帧内编码块有关;即:不使用来自先前重建的图片的预测信息,但可以使用来自当前图片的先前重建部分的预测信息的块。这样的预测信息可以由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)使用从当前图片缓冲器(458)提取的周围已经重建的信息,生成与正在重建的块相同大小和形状的块。当前图片缓冲器(458)缓冲例如部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(455)在每个样本的基础上,将帧内预测单元(452)已经生成的预测信息添加至由缩放器/逆变换单元(451)提供的输出样本信息信息中。
在其它情况下,缩放器/逆变换单元(451)的输出样本可以与帧间编码的、潜在的运动补偿块有关。在这种情况下,运动补偿预测单元(453)可以访问参考图片存储器(457)以提取用于预测的样本。在根据属于块的符号(421)对提取的样本进行运动补偿之后,这些样本可以由聚合器(455)添加到缩放器/逆变换单元(451)的输出(在这种情况下称为残差样本或残差信号),以便生成输出样本信息。可以通过运动矢量来控制运动补偿预测单元(453)从其获取预测样本的参考图片存储器(457)内的地址,该运动矢量可以以符号(421)的形式提供给运动补偿预测单元(453),符号(421)可以具有例如X、Y和参考图片分量。运动补偿还可以包括当使用子采样精确运动矢量时从参考图片存储器(457)提取的采样值的插值、运动矢量预测机制等。
聚合器(455)的输出样本可以在环路滤波单元(456)中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频比特流)中并且作为来自解析器(420)的符号(421)可用于环路滤波器单元(456)的参数,然而,视频压缩技术还可以响应于在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于先前重建和环路滤波的样本值。
环路滤波器单元(456)的输出可以是样本流,该样本流可以被输出到渲染设备(412)并且存储在参考图片存储器(457)中以用于将来的帧间图片预测。
一旦完全重建,某些已编码图片就可以作为未来预测的参考图片。例如,一旦与当前图片相对应的已编码图片被完全重建并且已编码图片已经被识别为参考图片(例如通过解析器(420)),则当前图片缓冲器(458)就可以成为参考图片存储器(457)的一部分,并且在开始重建后续已编码图片之前可以重新分配新的当前图片缓冲器。
视频解码器(410)可以根据诸如ITU-T H.265建议书的标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码的视频序列可以符合由正在使用的视频压缩技术或标准指定的语法。具体地说,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的仅有工具。对于合规性,还可要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所界定的范围内。在某些情况下,层级限制最大图片大小、最大帧率、最大重建采样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可以通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
在一个实施例中,接收器(431)可以连同已编码视频一起接收附加(冗余)数据。附加数据可以被包括作为已编码视频序列的一部分。视频解码器(410)可以使用附加数据来适当地解码数据和/或更精确地重建原始视频数据。附加数据可呈例如时间、空间、或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图5示出了根据本公开的一个实施例的视频编码器(503)的框图。视频编码器(503)包括在电子设备(520)中。电子设备(520)包括传输器(540)(例如,传输电路)。可以使用视频编码器(503)代替图3示例中的视频编码器(303)。
视频编码器(503)可以从视频源(501)(其不是图5示例中的电子设备(520)的一部分)接收视频样本,该视频源可以采集将由视频编码器(503)编码的视频图像。在另一示例中,视频源(501)是电子设备(520)的一部分。
视频源(501)可以以数字视频样本流的形式提供将由视频编码器(503)编码的源视频序列,该数字视频样本流可以具有任何合适的位深度(例如:8位、10位、12位……)、任何色彩空间(例如,BT.601Y CrCB、RGB……)和任何合适的采样结构(例如Y CrCb 4:2:0、YCrCb 4:4:4)。在媒体服务***中,视频源(501)可以是存储先前已准备好的视频的存储设备。在视频会议***中,视频源(501)可以是采集作为视频序列的本地图像信息的摄像机。视频数据可以被提供为当按顺序观看时施加运动的多个单独图片。图片本身可构建为空间像素阵列,其中每个像素可以根据使用中的采样结构、色彩空间等包括一个或多个样本。本领域技术人员可以容易地理解像素和样本之间的关系。下面的描述将侧重于样本。
根据一个实施例,视频编码器(503)可以实时地或在应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。在一些实施例中,控制器(550)控制如下描述的其它功能单元,并且控制器(550)在功能上耦合到其它功能单元。为了清楚起见,未描述上述耦合。由控制器(550)设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值……)、图片大小、图片组(GOP)布局、最大运动矢量搜索范围等。控制器(550)可以被配置为具有与针对特定***设计优化的视频编码器(503)有关的其他合适功能。
在一些实施例中,视频编码器(503)被配置为在编码环路中操作。作为过度简化的描述,在一个示例中,编码环路可以包括源编码器(530)(例如,负责基于待编码的输入图片和(多个)参考图片来创建诸如符号流的符号),以及嵌入在视频编码器(503)中的(本地)解码器(533)。解码器(533)重建符号以用类似于(远程)解码器还可创建样本数据的方式创建样本数据(因为在所公开的主题中所考虑的视频压缩技术中,符号和已编码视频比特流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(534)。由于对符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(534)中的内容在本地编码器和远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性的基本原理(以及在例如因信道误差而无法维持同步性的情况下所产生的漂移)也在一些相关技术中使用。
“本地”解码器(533)的操作可以与诸如已在上文结合图4详细描述的视频解码器(410)的“远程”解码器的操作相同。然而,另外简要参考图4,当符号可用且熵编码器(545)和解析器(420)可无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(415)和解析器(420)在内的视频解码器(410)的熵解码部分可能无法在本地解码器(533)中完全实施。
此时可以观察到,除解码器中存在的解析/熵解码之外的任何解码器技术也必然需要以基本相同的功能形式存在于相应的编码器中。为此,所公开的主题侧重解码器操作。因为编码器技术与全面描述的解码器技术互逆,因此本文简写了编码器技术。只有在某些领域需要更详细的描述(在下文提供)。
在操作期间,在一些示例中,源编码器(530)可执行运动补偿预测编码,其参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片对输入图片进行预测性编码。以这种方式,编码引擎(532)对输入图片的像素块与可被选择为输入图片的预测参考的参考图片的像素块之间的差异进行编码。
本地视频解码器(533)可以基于源编码器(530)创建的符号,对可被指定为参考图片的图片的已编码视频数据进行解码。编码引擎(532)的操作有利地可以是有损过程。当已编码的视频数据可以在视频解码器(图5中未示出)中解码时,已重建的视频序列典型地可以是带有一些误差的源视频序列的副本。本地视频解码器(533)复制可由视频解码器对参考图片执行的解码处理,并可使重建的参考图片存储在参考图片高速缓冲存储器(534)中。以这种方式,视频编码器(503)可以在本地存储重建参考图片的副本,该副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
预测器(535)可以执行对编码引擎(532)的预测搜索。也就是说,对于将要编码的新图片,预测器(535)可在参考图片存储器(534)中搜索可作为该新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(535)可基于样本块逐像素块操作,以找到适当的预测参考。在一些情况下,如由预测器(535)获得的搜索结果所确定的那样,输入图片可以具有从存储在参考图片存储器(534)中的多个参考图片中提取的预测参考。
控制器(550)可以管理源编码器(530)的编码操作,包括例如设置用于编码视频数据的参数和子组参数。
可以在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)通过根据诸如霍夫曼编码、可变长度编码、算术编码等技术对符号进行无损压缩,将由各个功能单元产生的符号转换成已编码视频序列。
传输器(540)可以缓冲由熵编码器(545)创建的已编码视频序列,以为通过通信信道(560)进行传输做准备,该通信信道可以是通向将存储已编码视频数据的存储设备的硬件/软件链路。传输器(540)可以将来自视频编码器(503)的已编码视频数据与待传输的其他数据合并,该其他数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
控制器(550)可以管理视频编码器(503)的操作。在编码期间,控制器(550)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可以应用于相应图片的编码技术。例如,图片通常可以分配为下列图片类型之一。
帧内图片(I图片),其可以是可以在不使用序列中的任何其他图片作为预测源的情况下进行编码和解码的图片。一些视频编解码器允许包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片的不同类型的帧内图片。本领域技术人员了解I图片的那些变体及其各自的应用和特征。
预测性图片(P图片),其可以是可以使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可以使用帧内预测或帧间预测来编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可以使用两个以上的参考图片和相关联的元数据来重建单个块。
源图片通常可以在空间上细分为多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。可以参考由应用于块的相应图片的编码分配所确定的其它(已经编码的)块来对这些块进行预测性编码。例如,I图片的块可以是非预测性地编码,或者可以参考相同图片的已经编码的块对其进行预测性编码(空间预测或帧内预测)。可以参考一个先前编码的参考图片,通过空间预测或通过时间预测,对P图片的像素块进行预测性编码。可以参考一个或两个先前编码的参考图片,通过空间预测或通过时间预测,对B图片的块进行预测性编码。
视频编码器(503)可以根据诸如ITU-T H.265建议书的预定的视频编码技术或标准执行编码操作。在其操作中,视频编码器(503)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,经编码的视频数据可以符合由正在使用的视频编码技术或标准指定的语法。
在一个实施例中,传输器(540)可以在传输已编码视频时传输附加数据。源编码器(530)可以包括这样的数据作为编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、诸如冗余图片和切片等其他形式的冗余数据、SEI消息、VUI参数集片段等。
视频可以被采集作为时间序列中的多个源图片(视频图片)。帧内图片预测(通常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在一个示例中,将被称为当前图片的、正在编码/解码的特定图片划分成块。当当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过被称为运动矢量的向量对当前图片中的块进行编码。该运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,该运动矢量可以具有识别参考图片的第三维度。
在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如第一参考图片和第二参考图片,它们在解码顺序上都在视频中的当前图片之前(但在显示顺序上可能分别在过去和将来)。可以通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量来编码当前图片中的块。可以通过第一参考块和第二参考块的组合来预测该块。
此外,在帧间图片预测中可以使用合并模式技术以提高编码效率。
根据本公开的一些实施例,以块为单位执行诸如帧间图片预测和帧内图片预测的预测。例如,根据HEVC标准,将视频图片序列中的图片划分为编码树单元(coding treeunit,CTU)以用于压缩,图片中的CTU具有相同的大小,例如64×64像素、32×32像素或16×16像素。通常,CTU包括三个编码树块(coding tree block,CTB),它们分别是一个亮度CTB和两个色度CTB。可将每个CTU递归地以四叉树拆分为一个或多个编码单元(CU)。例如,可将64×64像素的CTU拆分为一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在一个示例中,分析每个CU以确定用于该CU的预测类型,诸如帧间预测类型或帧内预测类型。根据时间和/或空间可预测性,将CU拆分成一个或多个预测单元(PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在一个实施例中,以预测块为单位执行编码(编码/解码)中的预测操作。使用亮度预测块作为预测块的示例,预测块包括针对像素(诸如8×8像素、16×16像素、8×16像素、16×8像素等)的值(例如亮度值)的矩阵。
图6示出了根据本公开的另一个实施例的视频编码器(603)的图。视频编码器(603)被配置为接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并将该处理块编码到作为已编码视频序列的一部分的编码图片中。在一个示例中,视频编码器(603)用于代替图3示例中的视频编码器(303)。
在HEVC示例中,视频编码器(603)接收用于处理块(诸如8×8样本的预测块等)的样本值的矩阵。视频编码器(603)使用例如率失真(rate-distortion,RD)优化来确定是否使用帧内模式、帧间模式或双向预测模式来对该处理块进行最佳编码。当处理块要以帧内模式编码时,视频编码器(603)可以使用帧内预测技术以将处理块编码到已编码图片中;并且当处理块要以帧间模式或双向预测模式编码时,视频编码器(603)可以分别使用帧间预测或双向预测技术来以将处理块编码到已编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中,在不借助于预测器外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测器导出运动矢量。在某些其他视频编码技术中,可以存在适用于主题块的运动矢量分量。在一个示例中,视频编码器(603)包括其它组件,例如用于确定处理块的模式的模式决策模块(未示出)。
在图6的示例中,视频编码器(603)包括如图6所示的耦合在一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器(621)和熵编码器(625)。
帧间编码器(630)被配置为接收当前块(例如,处理块)的样本,将该块与参考图片中的一个或多个参考块(例如,先前图片和之后图片中的块)进行比较,生成帧间预测信息(例如,根据帧间编码技术的冗余信息的描述、运动矢量、合并模式信息),并使用任何合适的技术基于该帧间预测信息计算帧间预测结果(例如,已预测块)。在一些示例中,参考图片是基于已编码视频信息解码的已解码参考图片。
帧内编码器(622)被配置成接收当前块(例如,处理块)的样本,在一些情况下将该块与在同一图片中已经编码的块进行比较,在变换之后生成量化系数,并且在一些情况下还生成帧内预测信息(例如,根据一个或多个帧内编码技术的帧内预测方向信息)。在一个示例中,帧内编码器(622)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如,已预测块)。
通用控制器(621)被配置为确定通用控制数据并基于该通用控制数据控制视频编码器(603)的其它组件。在一个示例中,通用控制器(621)确定块的模式,并基于该模式向开关(626)提供控制信号。例如,当模式为帧内模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧内模式结果,并控制熵编码器(625)以选择帧内预测信息并将该帧内预测信息包括在比特流中;并且当模式是帧间模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧间预测结果,并控制熵编码器(625)选择帧间预测信息并将该帧间预测信息包括在比特流中。
残差计算器(623)被配置为计算所接收的块与从帧内编码器(622)或帧间编码器(630)中选择的预测结果之间的差(残差数据)。残差编码器(624)被配置为基于残差数据进行操作以对残差数据进行编码以生成变换系数。在一个示例中,残差编码器(624)被配置成将残差数据从空间域转换到频域,并生成变换系数。然后对变换系数进行量化处理以获得量化的变换系数。在各种实施例中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)被配置为执行逆变换,并生成已解码残差数据。已解码后的残差数据可由帧内编码器(622)和帧间编码器(630)适当地使用。例如,帧间编码器(630)可以基于已解码残差数据和帧间预测信息生成已解码块,帧内编码器(622)可以基于已解码残差数据和帧内预测信息生成已解码块。适当地处理已解码块以产生已解码图片,并且已解码图片可以缓冲在存储器电路(未示出)中,并且在一些示例中用作参考图片。
熵编码器(625)被配置为格式化比特流以包括已编码块。熵编码器(625)被配置为根据例如HEVC标准的合适的标准而包括各种信息。在一个示例中,熵编码器(625)被配置为在比特流中包括通用控制数据、所选择的预测信息(例如,帧内预测信息或帧间预测信息)、残差信息和其他合适的信息。应注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。
图7示出了根据本公开的另一个实施例的视频解码器(710)的图。视频解码器(710)被配置为接收作为已编码视频序列的一部分的已编码图片,并对已编码图片进行解码以生成重建图片。在一个示例中,视频解码器(710)用于代替图3示例中的视频解码器(310)。
在图7的示例中,视频解码器(710)包括如图7所示耦合在一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)和帧内解码器(772)。
熵解码器(771)可以被配置为根据已编码图片重建表示构成该已编码图片的语法元素的某些符号。这样的符号可以包括,例如,用于对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、后两者的合并子模式、或另一子模式)、可识别分别供帧内解码器(772)或帧间解码器(780)使用以进行预测的某些样本或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等。在一个示例中,当预测模式是帧间或双向预测模式时,帧间预测信息被提供给帧间解码器(780);并且当预测类型是帧内预测类型时,帧内预测信息被提供给帧内解码器(772)。残差信息可经受逆量化,并被提供给残差解码器(773)。
帧间解码器(780)被配置为接收帧间预测信息,并基于该帧间预测信息生成帧间预测结果。
帧内解码器(772)被配置为接收帧内预测信息,并且基于该帧内预测信息生成预测结果。
残差解码器(773)被配置为执行逆量化以提取去量化的变换系数,并处理该去量化的变换系数以将残差从频域转换到空间域。残差解码器(773)还可以需要某些控制信息以包括量化器参数(QP),并且该信息可以由熵解码器(771)提供(数据路径未示出,因为这可能只是低音量控制信息)。
重建模块(774)被配置为在空间域中组合由残差解码器(773)输出的残差和预测结果(根据情况可能由帧间或帧内预测模块输出的)以形成重建块,该重建块可以是重建图片的一部分,而该重建图片继而可以是重建视频的一部分。应注意,可以执行其它合适的操作,例如去块操作等,以提高视觉质量。
应注意,视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)可以使用任何合适的技术来实现。在一个实施例中,视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)可以使用一个或多个集成电路来实现。在另一个实施例中,视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)可以使用执行软件指令的一个或多个处理器来实现。
II.变换系数编码
在视频信号被简化为一系列语法元素之后,熵编码可以在视频编码的最后阶段(或视频解码的第一阶段)执行。熵编码可以是一种无损压缩方案,它使用统计特性来压缩数据,使得用于表示数据的比特数与数据的概率成对数比例。例如,通过在一组语法元素上执行熵编码,表示该语法元素的比特(称为容器bin)可以被转换为比特流中较少的比特(称为已编码比特)。CABAC是熵编码的一种形式。在CABAC中,可以基于与各个容器相关联的上下文来为容器序列中的每个容器确定提供概率估计的上下文模型。随后,可以使用概率估计执行二进制算术编码过程,以将容器序列编码为比特流中的已编码比特。此外,可以基于已编码容器用新的概率估计来更新上下文模型。
图8A示出了根据一个实施例的基于CABAC的熵编码器(800A)的示例。例如,熵编码器(800A)可以在图5所示的熵编码器(545)或图6所示的熵编码器(625)中实现。熵编码器(800A)可以包括上下文建模器(810)和二进制算术编码器(820)。在一个示例中,提供各种类型的语法元素作为熵编码器(800A)的输入。例如,二进制值语法元素的容器可以被直接输入到上下文建模器(810)中,而非二进制值语法元素可以在容器字符串的容器被输入到上下文建模器(810)之前被二进制化为容器字符串。
在一个示例中,上下文建模器(810)接收语法元素的容器,并执行上下文建模过程以为每个所接收的容器选择上下文模型。例如,接收变换块中的变换系数的二进制语法元素的容器。当不执行变换时,变换块可以是变换跳过块。因此,例如,可以基于语法元素的类型、变换分量的色彩分量类型、变换系数的位置、以及先前处理的相邻变换系数来为该容器确定上下文模型。该上下文模型可以为这个容器提供一个概率估计。
在一个示例中,可以为一种或多种类型的语法元素配置一组上下文模型。这些上下文模型可以布置在存储在如图8所示的存储器(801)中的上下文模型列表(802)中。上下文模型列表(802)中的每个条目可以表示上下文模型。可以为该上下文模型列表中的每个上下文模型分配一个索引,称为上下文模型索引或上下文索引。此外,每个上下文模型可以包括概率估计或指示概率估计的参数。概率估计可以指示容器为0或1的可能性。例如,在上下文建模期间,上下文建模器(810)可以为容器计算上下文索引,并且可以相应地根据上下文索引从上下文模型列表(802)中选择上下文模型并将其分配给容器。
此外,可以在熵编码器(800A)的操作开始时初始化上下文模型列表中的概率估计。在将上下文模型列表(802)中的上下文模型分配给容器并用于对该容器进行编码之后,随后可以根据容器的值用更新的概率估计来更新上下文模型。
在一个示例中,二进制算术编码器(820)接收容器和分配给容器的上下文模型(例如,概率估计),并相应地执行二进制算术编码过程。因此,产生已编码比特并以比特流发送该已编码比特。
图8B示出了根据一个实施例的基于CABAC的熵解码器(800B)的示例。例如,熵解码器(1000B)可以在图4的解析器(420)或图7的熵解码器(771)实现。熵解码器(800B)可以包括二进制算术解码器(830)和上下文建模器(840)。二进制算术解码器(830)从比特流中接收已编码比特,并执行二进制算术解码处理以从已编码比特中恢复容器。上下文建模器(840)可以与上下文建模器(810)类似地操作。例如,上下文建模器(840)可以在存储在存储器(803)中的上下文模型列表(804)中选择上下文模型,并将所选择的这些上下文模型提供给二进制算术解码器(830)。上下文建模器(840)可以基于来自二进制算术解码器(830)的所恢复的容器来确定上下文模型。例如,基于所恢复的容器,上下文建模器(840)可以获知下一个待解码容器的语法元素的类型,以及先前已解码的语法元素的值。该信息可用于确定下一个待解码容器的上下文模型。
在一个实施例中,首先将变换块的残差信号从空间域变换到频域,从而得到变换系数的块。然后,可以执行量化以将变换系数的块量化为变换系数水平的块。在各种实施例中,可以使用不同的技术将残差信号转换成变换系数水平。变换系数水平的块可被进一步处理以产生语法元素,该语法元素可被提供给熵编码器并被编码成比特流的比特。在一个实施例中,从变换系数水平生成语法元素的过程可以以以下方式执行。
变换系数水平的块可以首先被分割成例如具有4×4个位置的大小的子块。可以根据预定义的扫描顺序来处理那些子块。每个子块可以是系数组(coefficient group,CG)。在处理或扫描子块中的位置之前,可以用信号发送标志以指示CG是否包括至少一个非零变换系数水平。当标志指示CG包括至少一个非零变换系数水平时,可以首先处理右下角处的子块,并且可以最后处理左上角处的子块。对于其中变换系数水平全部为零的子块,可以跳过该子块而不进行处理。
对于每个具有至少一个非零变换系数水平的子块,可以在每个子块中执行四次扫描。在每一遍扫描期间,可以以反向对角线扫描顺序扫描相应子块中的16个位置。图9示出了子块扫描过程(900)的示例,从该子块扫描过程可以生成变换系数的不同类型的语法元素。
子块内部的十六个系数位置(910)在图9的底部以一维示出。位置(910)从0到15编号,以反映各自的扫描顺序。在第一遍扫描期间,这些扫描位置(910)被扫描,并且可以在每个扫描位置(910)处生成如下三种类型的语法元素(901-903):
(i)第一类型的二进制语法元素(901)(称为重要标志并由sig_coeff_flag表示),其指示相应变换系数(由absLevel表示)的绝对变换系数水平是零还是大于零。
(ii)第二类型的二进制语法元素(902)(称为奇偶校验标志并由par_level_flag表示),其指示相应变换系数的绝对变换系数水平的奇偶校验。仅当相应变换系数的绝对变换系数水平为非零时才生成奇偶校验标志。
(iii)第三类型的二进制语法元素(903)(称为大于1的标志并由rem_abs_gt1_flag表示),其指示(absLevel-1)>>1对于相应的变换系数是否大于0。仅当相应变换系数的绝对变换系数水平为非零时才可以生成大于1的标志。
在第二遍扫描期间,可以生成第四类型的二进制语法元素(904)。第四类型的语法元素(904)被称为大于2的标志,并由rem_abs_gt2_flag表示。第四类型的语法元素(904)指示相应变换系数的绝对变换系数水平是否大于4。仅当(absLevel-1)>>1对于相应的变换系数大于0时才生成大于2的标志。
在第三遍扫描期间,可以生成第五类型的非二进制语法元素(905)。第五类型的语法元素(905)可以由abs_remainder表示,并且其指示相应变换系数的绝对变换系数水平的大于4的剩余值。仅在相应变换系数的绝对变换系数水平大于4时才可以生成第五类型的语法元素(905)。
在第四遍扫描期间,可以在每个扫描位置(910)处生成第六类型的语法元素(906),其具有指示相应变换系数水平的符号的非零系数水平。
上述各种类型的语法元素可以根据各遍次的顺序和每遍次中的扫描顺序提供给熵编码器。可以采用不同的熵编码方案来编码不同类型的语法元素。例如,在一个实施例中,重要标志、奇偶校验标志、大于1的标志和大于2的标志可以用如图8A所示的基于CABAC的熵编码器进行编码。相反,可以用CABAC旁路熵编码器(例如,对于输入容器具有固定概率估计的二进制算术编码器)来编码在第三和第四遍扫描期间产生的语法元素。
可以执行上下文建模以确定某些类型的变换系数语法元素的容器的上下文模型。在一个实施例中,为了利用变换系数之间的相关性,上下文模型可以根据局部模板和每个当前系数(例如,当前正在处理的系数)的对角线位置(可能结合其它因素)来确定。
图10示出了用于当前系数的上下文选择的局部模板(1030)的示例。局部模板(1030)可以覆盖系数/变换块(1010)中的当前系数(1020)的相邻位置或系数的集合。系数块(1010)的大小可以是8×8个位置,并且包括64个位置中的每一个位置处的系数水平。系数块(1010)被划分为4个子块,每个子块的大小为4×4个位置。每个子块可以是可以包括4×4个系数位置的CG。CG(1040)包括当前系数(1020)。可以用信号通知标志以指示CG(1040)是否仅包括零系数水平。在图10中,局部模板(1030)被定义为覆盖当前系数(1020)右下侧的5个系数水平的5位置模板。当在系数块(1010)内的扫描位置上多次使用反向对角线扫描顺序时,在当前系数(1020)之前处理局部模板(1030)内的相邻位置。在TS模式中,扫描顺序可以与反向对角线扫描顺序相反,并且局部模板可以是覆盖当前系数左上侧的5个系数水平的5位置模板。
在上下文建模期间,可以使用局部模板(1030)内的系数水平的信息来确定上下文模型。为此目的,可使用称为模板大小的度量来测量或指示局部模板(1030)内的变换系数或变换系数水平的幅度。然后,模板大小可以用作选择上下文模型的基础。
在一个示例中,模板大小被定义为局部模板(1030)内部分重建的绝对变换系数水平的和(由sumAbs1表示)。可以根据相应变换系数的语法元素sig_coeff_flag、par_level_flag、和rem_abs_gt1_flag的容器bin来确定部分重建的绝对变换系数水平。可以在熵编码器或熵解码器中对子块的扫描位置进行第一遍扫描之后获得这三种类型的语法元素。此外,扫描位置(x,y)的对角线位置d根据:d=x+y来定义,其中,x和y是各个位置的坐标。可以基于sumAbs1和对角线位置d来选择上下文模型索引。
III.用于变换系数的上下文编码容器Bin的最大数目的约束
在本公开的一些实施例中,可以对语法元素sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag进行上下文编码以增加编码效率。因此,对于每个变换系数,至多可以将四个上下文编码容器用于sig_coeff_flag、par_level_flag、rem_abs_gt1_flag、和rem_abs_gt2_flag,因此当不对系数子块或变换块的上下文编码容器的数目施加约束时,变换块中4×4系数子块的上下文编码容器的最大数目为64。然而,大量上下文编码的容器可能会显著增加实施的复杂度。
因此,已提出了一些方法来减少上下文编码容器的数目。例如,在VVC中所描述的4×4系数子块的上下文编码容器的最大数目可以被限制为32。此外,可以根据色彩分量和系数子块的大小对上下文编码容器施加不同的约束。例如,4×4亮度子块、4×4色度子块、以及2×2色度子块的上下文编码容器的最大数目可以分别被约束为30、16和4。
在本公开的实施例中,为了提高编码效率,如果不是必须对变换块中的所有系数子块进行编码,则可以放宽约束。例如,可以根据已解析出的最后一个重要系数位置,通过增加上下文编码容器的允许的最大数目来修改上下文编码容器的最大数目,具体过程如下所示:
如果(NumToBeCodedSb×4<=NumTotalSb)
ConstraintValue=ConstraintValue×4;
否则如果(NumToBeCodedSb×2<=NumTotalSb)
ConstraintValue=ConstraintValue×2;
否则如果(NumToBeCodedSb×3<=NumTotalSb×2)
ConstraintValue=(ConstraintValue×3)>>1;
否则如果(NumToBeCodedSb×5<=NumTotalSb×4)
ConstraintValue=(ConstraintValue×5)>>2,
其中,NumToBeCodedSb是变换块中待编码的系数子块的数目;NumTotalSb是变换块中总系数子块的数目;约束值ConstraintValue是系数子块的上下文编码容器的最大数目,其根据色彩分量和系数子块大小确定。例如,当NumToBeCodedSb×4<=NumTotalSb时,可以使用公式ConstraintValue=ConstraintValue×4来更新ConstraintValue。
然而,不管上述所提出的方法中4×4系数子块的位置如何,用于变换块中的所有4×4系数子块的上下文编码容器的最大数目均是相同的。通过基于系数子块的频率位置为变换块中的每个系数子块分配最大数目的上下文编码容器,可以进一步提高编码效率。
因此,本公开的方面包括用于基于系数子块在变换块中的频率位置和/或基于变换块的大小来限制用于变换系数熵编码的系数子块的上下文编码容器的数目的方法。本公开的方面还包括用于基于先前编码的系数子块来限制用于变换系数熵编码的系数子块的上下文编码容器的数目的方法。此外,本公开的方面包括使用来自由当前变换系数的局部模板覆盖的系数的信息来确定是否以等概率模式编码当前系数子块的左变换系数。
IV.用于变换系数的上下文编码容器bin的最大数目的修正约束
在本公开的一些实施例中,术语块可以被解释为预测块、编码块、变换块或CU。术语系数子块可以是CG。
一个W×H变换块可以划分为一个或多个M×N(M<=W,N<=H)系数子块,其中W是变换块的宽度,H是变换块的高度。可基于系数子块的频率位置(csbX,csbY)和/或变换块的大小W×h来约束/确定用于对M×N系数子块中的变换系数进行编码的上下文编码容器的最大数目。系数子块的频率位置(csbX,csbY)可以是以系数子块宽度/高度为单位,系数子块相对于变换块中左上角系数子块的坐标。例如,图11中的系数子块(1101)的频率位置(csbX,csbY)可以是(0,0),以及图11中的系数子块(1116)的频率位置(csbX,csbY)可以是(3,3)。
在本公开的实施例中,系数子块的大小M×N可以被预定义、或可在诸如序列参数集(SPS)、图片参数集(PPS)以及切片头中的比特流中用信号表示。
在本公开的实施例中,当系数子块的大小M×N为4×4时,可以不需要用信号通知系数子块大小。
在本公开的实施例中,可以根据系数子块的频率位置,为每个系数子块分配用于W×H变换块的上下文编码容器的最大数目。即,当系数子块的频率位置(csbX,csbY)确定时,系数子块的上下文编码容器的最大数目可以是固定的。具有不同频率位置的不同系数子块可能具有不同的上下文编码容器的最大数目。
在一个实施例中,用于变换块中低频区域中的系数子块的上下文编码容器的最大数目大于用于变换块中高频区域中的系数子块的上下文编码容器的最大数目。例如,具有csbX+csbY<csbDiag的系数子块的上下文编码容器的最大数目大于具有csbX+csbY>csbDiag的系数子块的上下文编码容器的最大数目。在本公开的一些实施例中,csbDiag可以是基于变换块的大小的预定数目。
在一个示例中,当M=4且N=4时,具有csbX+csbY<csbDiag的系数子块的上下文编码容器的最大数目可以是avgMaxCtxBins+Δ;具有csbX+csbY>csbDiag的系数子块的上下文编码容器的最大数目可以是avgMaxCtxBins-Δ;且具有csbX+csbY==csbDiag的系数子块的上下文编码容器的最大数目为avgMaxCtxBins。在一些示例中,可以基于变换块的大小来确定csbDiag。具体地,csbDiag可以设置为小于或等于(((W>>2)-1)+((H>>)-1))>>1,其中,W是变换块的宽度,H是变换块的高度。图11示出了在16×16变换块中具有csbX+csbY==csbDiag的系数子块(1104、1107、1110、1113)。在这种情况下,csbDiag可以是16×16变换块中的系数子块(1104、1107、1110、1113)的对角线,如图11中的阴影区域所示。
在某些示例中,avgMaxCtxBins可以是32或30,Δ可以是2或4。
在本公开的一些实施例中,用于变换系数熵编码的系数子块的上下文编码容器的最大数目基于(i)系数子块在变换块中的频率位置,以及(ii)变换块的大小和系数子块的大小。
在一个实施例中,当M=4、N=4、W=4且H=4时,因为在4×4变换块中只有一个4×4系数子块,因此变换块中的系数子块的上下文编码容器的最大数目可以被设置为4×4变换块的上下文编码容器的最大数目(例如,30个)。
在实施例中,当M=4、N=4、W=8、以及H=8时,对于变换块中具有频率位置(csbX,csbY)的每个系数子块,可以根据如下公式确定上下文编码容器的最大数目(称为MaxCtxBins):
如果csbX+csbY==0,则MaxCtxBins=32;
如果csbX+csbY==1,则MaxCtxBins=30;
否则,MaxCtxBins=28。
换句话说,当系数子块处于变换块的低频区域中时(例如,csbX+csbY==0),系数子块的MaxCtxBins可以是32。当系数子块处于变换块的高频区域中时(例如,csbX+csbY==2),系数子块的MaxCtxBins可以是28。当系数子块既不在变换块的低频区域中也不在变换块的高频区域中时(例如,csbX+csbY==1),系数子块的MaxCtxBins可以是30。
在一个实施例中,当M=4、N=4、W=16且H=16时,具有频率位置(csbX,csbY)的每个系数子块的MaxCtxBins可以根据如下公式确定:
如果csbX+csbY<3,则MaxCtxBins=32;
如果csbX+csbY==3,则MaxCtxBins=30;
否则,MaxCtxBins=28。
如图11所示,变换块的大小为16×16,系数子块的大小为4×4。当系数子块在变换块的低频区域(1101,1102,1103,1105,1106,1109)中时(例如,csbX+csbY<3),系数子块的MaxCtxBins可以是32。当系数子块在变换块的高频区域(1108、1111、1112、1114、1115、1116)中时(例如,csbX+csbY>3),系数子块的MaxCtxBins可以是32。当系数子块既不在变换块的低频区域中也不在变换块的高频区域中时(例如,csbX+csbY==3),系数子块的MaxCtxBins可以是30。在这种情况下,系数子块可以位于图11中的阴影区域(1104、1007、1110、1113)中的其中一个阴影区域中。在本公开的实施例中,变换块中的系数子块的上下文编码容器的平均最大数目可以是30。
在实施例中,当M=4、N=4、W=32且H=32时,变换块中具有频率位置(csbX,csbY)的每个系数子块的MaxCtxBins可以根据如下公式确定:
如果csbX+csbY<thr,则MaxCtxBins=32;
如果csbX+csbY==thr;则MaxCtxBins=30;
否则MaxCtxBins=28,其中thr可以是4、5、6或7。
换句话说,当系数子块处于变换块的低频区域中时(例如,csbX+csbY<thr),系数子块的MaxCtxBins可以是32。当系数子块处于变换块的高频区域中时(例如,csbX+csbY>thr),系数子块的MaxCtxBins可以是28。当系数子块既不在变换块的低频区域中也不在变换块的高频区域中时(例如,csbX+csbY==thr),系数子块的MaxCtxBins可以是30。在本公开的实施例中,thr可以等于csbDiag,并且可以是例如4、5、6或7。
在实施例中,当M=4,N=4且W!=H时,变换块中具有频率位置(csbX,csbY)的每个系数子块的MaxCtxBins可以根据如下公式确定:
如果csbX+csbY<csbDiag,则MaxCtxBins=32;
如果csbX+csbY>csbDiag,则MaxCtxBins=28;
否则MaxCtxBins=30,其中csbDiag可小于或等于(((W>>2)-1)+((H>>)-1))>>1。
就此而言,当系数子块处于变换块的低频区域时(例如,csbX+csbY<csbDiag),系数子块的MaxCtxBins可以是32。当系数子块处于变换块的高频区域时(例如,csbX+csbY>csbDiag),系数子块的MaxCtxBins可以是28。当系数子块既不在变换块的低频区域中也不在变换块的高频区域中时(例如,csbX+csbY==csbDiag),系数子块的MaxCtxBins可以是30。在本公开的实施例中,csbDiag可以小于或等于(((W>>2)-1)+((H>>)-1))>>1。
例如,如图12所示,变换块(1200)的大小为8×16,变换块(1200)中的每个系数子块的大小为4×4。在一个实施例中,可基于公式csbDiag==(((W>>2)-1)+((H>>)-1))>>1将csbDiag确定为2。当系数子块在变换块的低频区域(1201,1202,1203)中时(例如,csbX+csbY<2),系数子块的MaxCtxBins可以是32。当系数子块在变换块的高频区域(1206,1207,1208)中时(例如csbX+csbY>2),系数子块的MaxCtxBins可以是32。当系数子块既不在变换块的高频区域中也不在变换块的低频区域中时(例如,csbX+csbY==2),系数子块的MaxCtxBins可以是30。在这种情况下,系数子块可以位于图12中的阴影区域(1204、1205)的其中一个阴影区域中。在本公开的实施例中,用于系数子块的上下文编码容器的平均最大数目可以是30。
在一个实施例中,可以根据一个或多个先前已编码的系数子块自适应地将用于W×H变换块的上下文编码容器的最大数目分配给每个系数子块。在一个示例中,确定用于整个W×H变换块的上下文编码容器的最大数目。在对系数子块进行编码之后,可以更新左/未编码的系数子块的上下文编码容器的最大数目,并将其用于计算后续系数子块的上下文编码容器的最大数目。例如,在图11中,可以确定用于整个W×H变换块(1100)的上下文编码容器的最大数目。W×H变换块(1100)包括十六个系数子块。在对当前系数子块(例如,1111)进行编码之后,可以基于上下文编码容器的剩余预算来更新未编码系数子块(例如,1101,1102,1103,1105,1106,1109,1113)的上下文编码容器的最大数目,并将其用于计算后续系数子块(例如,1113)的上下文编码容器的最大数目。
在一个实施例中,可使用当前系数子块中的当前变换系数的局部模板所覆盖的系数的信息来确定是否以等概率模式对当前系数子块中的当前变换系数的左变换系数进行编码。局部模板可以不限于图10所示的局部模板。例如,在图13中,当前系数子块(1310)中的当前变换系数(1312)的局部模板(1320)所覆盖的系数的信息可用于确定是否以等概率模式对当前系数子块(1310)中的当前变换系数(1312)的左变换系数(1301、1302、1303、1304、1305、1306、1307、1308、1309、1310、1311、1313、1314、1315)进行编码。
在一个实施例中,通过sig_coeff_flag的上下文推导计算的模板大小(例如,sumAbs1)可用于确定是否以等概率模式对当前系数子块中的当前变换系数的左变换系数进行编码。
在示例中,当sumAbs1大于阈值ThrAbsSum时,当前系数子块中的当前变换系数的左变换系数可以用等概率模式进行编码。阈值ThrAbsSum可以是例如9、10或11。
在另一示例中,当sumAbs1大于阈值ThrAbsSum,并且csbX+csbY大于阈值csbDiag时,可以用等概率模式对当前系数子块中的当前变换系数的左变换系数进行编码。阈值ThrAbsSum可以是例如9、10或11,阈值csbDiag可以是例如2、3或4。
V.示例性解码过程
图14示出了根据本公开的一些实施例的概述了熵解码过程(1400)的流程图。过程(1400)可用于变换系数语法元素的熵解码。在各种实施例中,过程(1400)可以由诸如终端设备(210)、终端设备(220)、终端设备(230)和终端设备(240)中的处理电路、执行视频解码器(310)的功能的处理电路、执行视频解码器(410)的功能的处理电路等的处理电路来执行。在一些实施例中,过程(1400)以软件指令实现,因此,当处理电路执行软件指令时,处理电路执行过程(1400)。该过程从(S1401)开始并进行到(S1410)。
在步骤(S1410)中,接收包括语法元素的比特流。语法元素对应于已编码图片中的变换块的残差。例如,语法元素可以包括重要语法元素、奇偶校验语法元素、大于1的语法元素、和/或大于2的语法元素。重要语法元素(例如,sig_coeff_flag)可以指示当前变换系数(absLevel)的绝对值大于0。奇偶校验语法元素(例如,par_level_flag)可以指示absLevel的奇偶性。大于1的语法元素(例如,rem_abs_gt1_flag)可以指示absLevel-1大于0。大于2的语法元素(例如,rem_abs_gt2_flag)可以指示absLevel-4大于0。
在步骤(S1420)中,基于变换块中的第一系数子块的频率位置,确定变换块中的第一系数子块的语法元素的上下文编码容器的第一最大数目。在一个实施例中,当第一系数子块处于变换块的低频区域中时,第一系数子块的语法元素的上下文编码容器的第一最大数目大于变换块的系数子块的语法元素的上下文编码容器的平均最大数目。例如,第一系数子块的语法元素的上下文编码容器的第一最大数目可以是32,并且变换块的系数子块的语法元素的上下文编码容器的平均最大数目可以是30。变换块可以被划分为几个(例如,3个)频率区域,并且每个频率区域中的系数子块可以具有语法元素的上下文编码容器的不同的最大数目。
在步骤(S1430)中,根据上下文模型和所确定的第一系数子块的语法元素的上下文编码容器的第一最大数目,对第一系数子块的语法元素的多个容器中的每一个容器进行编码。在一个实施例中,可以执行上下文建模以为第一系数子块的语法元素的多个容器中的每一个容器确定上下文模型。第一系数子块的语法元素的容器的数目可以不超过所确定的第一系数子块的语法元素的上下文编码容器的第一最大数目。可以使用计数器来确定第一系数子块的语法元素的容器的数目是否超过所确定的第一系数子块的语法元素的上下文编码容器的第一最大数目。
在步骤(S1440)中,基于上下文模型对第一系数子块的语法元素的多个容器的已编码比特进行解码,其中第一系数子块的语法元素的上下文编码容器的第一最大数目与变换块中的第二系数子块的语法元素的上下文编码容器的第二最大数目不同。在一个实施例中,可以基于等概率模式对第一系数子块的语法元素的其余所有多个容器进行解码。第一系数子块的频率位置可以在变换块的低频区域中,并且第二系数子块的频率位置可以在变换块的高频区域中。变换块的低频区域和变换块的高频区域可以由变换块中的系数子块的对角线分开。在这种情况下,第一系数子块的语法元素的上下文编码容器的第一最大数目可以大于变换块中的第二系数子块的语法元素的上下文编码容器的第二最大数目。
处理(1400)进行到并于(S1499)结束。
VIII.计算机***
可以将上述技术实现为计算机软件,该计算机软件使用计算机可读指令且物理地存储在一个或多个计算机可读介质中。例如,图15示出了适合于实施所公开的主题的某些实施例的计算机***(1500)。
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经汇编、编译、链接或类似机制以创建包含指令的代码,该指令可以由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过解释、微代码等执行。
指令可以在各种类型的计算机或其部件组件上执行,包括例如个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等。
图15所示的组件在本质上是示例性的,并不意在对实施本公开的实施例的计算机软件的使用范围或功能进行任何限制。组件的配置也不应被解释为具有与计算机***(1500)的示例性实施例中所示的组件的任何一个组件或组件的组合有关的任何依赖或要求。
计算机***(1500)可以包括某些人机接口输入设备。这样的人机接口输入设备可以响应于一个或多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未示出)进行的输入。人机接口设备还可用于捕获不一定与人的有意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。
输入人机接口设备可包括下述中的一项或多项(每种中仅示出一个):键盘(1501)、鼠标(1502)、触控板(1503)、触摸屏(1510)、数据手套(未示出)、操纵杆(1505)、麦克风(1506)、扫描仪(1507)、相机(1508)中的一个或多个。
计算机***(1500)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感官。这样的人机接口输出设备可以包括触觉输出设备(例如触摸屏(1510)的触觉反馈、数据手套(未示出)或操纵杆(1505),但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(1509)、耳机(未示出))、视觉输出设备(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(1510),每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中一些屏幕可以通过诸如立体图像输出之类的装置、虚拟现实眼镜(未示出)、全息显示器和烟箱(未示出)以及打印机(未示出)来输出二维视觉输出或超过三维的输出。
计算机***(1500)还可以包括人类可访问的存储设备及其相关联的介质,诸如包括具有CD/DVD等介质(1521)的CD/DVD ROM/RW(1520)的光学介质、指状驱动器(1522)、可移动硬盘驱动器或固态驱动器(1523)、诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全狗之类的基于专用ROM/ASIC/PLD的设备(未示出)等。
本领域技术人员还应当理解,结合本公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它暂时性信号。
计算机***(1500)还可以包括到一个或多个通信网络的接口。一个或多个通信网络可以例如是无线网络、有线网络、光网络。一个或多个通信网络还可以是本地网络、广域网络、城市网络、车辆和工业网络、实时网络、延迟容忍网络等等。一个或多个通信网络的示例包括诸如以太网的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、***和地面广播电视的TV有线或无线广域数字网络、包括CANBus的车辆和工业网络等等。某些网络通常需要附接到某些通用数据端口或***总线(1549)的外部网络接口适配器(例如,计算机***(1500)的USB端口);如下所述,其他网络接口通常通过附接到***总线而集成到计算机***(1500)的内核中(例如,连接到PC计算机***中的以太网接口或连接到智能手机计算机***中的蜂窝网络接口)。计算机***(1500)可以使用这些网络中的任何一个网络与其他实体进行通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus设备的CANbus),或者是双向的,例如使用局域网或广域数字网络连接到其他计算机***。如上所述,这些网络和每一个网络接口都可以使用某些协议和协议栈。
上述人机接口设备、人类可访问的存储设备和网络接口可以附接到计算机***(1500)的内核(1540)。
内核(1540)可以包括一个或多个中央处理单元(CPU)(1541)、图形处理单元(GPU)(1542)、现场可编程门阵列(FPGA)(1543)形式的专用可编程处理单元、用于某些任务的硬件加速器(1544)等。这些设备与只读存储器(ROM)(1545)、随机存取存储器(1546)、诸如内部非用户可访问硬盘驱动器、SSD等的内部大容量存储器(1547)可以通过***总线(1548)连接。在一些计算机***中,***总线(1548)可以以一个或多个物理插头的形式访问,以能够通过附加的CPU、GPU等进行扩展。***设备可以直接或者通过***总线(1549)连接到内核的***总线(1548)。***总线的体系结构包括PCI、USB等。
CPU(1541)、GPU(1542)、FPGA(1543)和加速器(1544)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(1545)或RAM(1546)中。过渡数据也可以存储在RAM(1546)中,而永久数据可以存储在例如内部大容量存储器(1547)中。可以通过使用高速缓冲存储器来实现对任何存储器设备的快速存储和检索,高速缓冲存储器可以与一个或多个CPU(1541)、GPU(1542)、大容量存储器(1547)、ROM(1545)、RAM(1546)等紧密相关。
计算机可读介质可以存储用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是那些为了本公开的目的而专门设计和构造的介质和计算机代码,或者它们可以是计算机软件领域的技术人员公知和可用的类型。
作为非限制性示例,具有架构(1500)的计算机***,特别是内核(1540)可以提供由于处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一个或多个有形的计算机可读介质中的软件而产生的功能。这样的计算机可读介质可以是与如上所述的用户可访问大容量存储器相关联的介质,以及具有非暂时性的内核(1540)的某些存储器,例如内核内部大容量存储器(1547)或ROM(1545)。实施本公开的各种实施例的软件可以存储在这样的设备中并由内核(1540)执行。根据特定需要,计算机可读介质可以包括一个或多个存储器设备或芯片。软件可以使内核(1540),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM(1546)中的数据结构和根据由软件定义的过程来修改这样的数据结构。此外或作为替代,可以由于硬连线或以其他方式体现在电路(例如:加速器(1544))中逻辑而使得计算机***提供功能,其可代替或与软件一起操作以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路,或者包括两者。本公开包括硬件和软件的任何合适组合。
附录A:缩略语
JEM:联合探索模型
VVC:通用视频编码
BMS:基准集
MV:运动矢量
HEVC:高效视频编码
SEI:补充增强信息
VUI:视频可用性信息
GOPS:图片组
TUs:变换单元,
PUs:预测单元
CTUs:编码树单元
CTBs:编码树块
PBs:预测块
HRD:假想参考解码器
SNR:信噪比
CPUs:中央处理单元
GPUs:图形处理单元
CRT:阴极射线管
LCD:液晶显示器
OLED:有机发光二极管
CD:光盘
DVD:数字视频光盘
ROM:只读存储器
RAM:随机存取存储器
ASIC:专用集成电路
PLD:可编程逻辑器件
LAN:局域网
GSM:全球移动通信***
LTE:长期演进
CANBus:控制器局域网总线
USB:通用串行总线
PCI:***组件互连
FPGA:现场可编程门阵列
SSD:固态硬盘
IC:集成电路
CU:编码单元
CG:系数组
虽然本公开已经描述了几个示例性实施例,但是存在落入本公开范围内的修改、置换和各种替代等价物。因此,应理解,本领域技术人员将能够设计出许多***和方法,尽管在此未明确示出或描述,但这些***和方法体现了本公开的原理并因此在本公开的精神和范围内。

Claims (20)

1.一种在视频解码器中执行的视频解码的方法,所述方法包括:
接收包括语法元素的比特流,所述语法元素对应于已编码图片中的变换块的残差;
基于所述变换块中的第一系数子块的频率位置,确定所述变换块中的所述第一系数子块的语法元素的上下文编码容器的第一最大数目;
根据上下文模型和所确定的第一系数子块的语法元素的上下文编码容器的第一最大数目,对所述第一系数子块的所述语法元素的多个容器中的每一个容器进行编码;以及
基于所述上下文模型对所述第一系数子块的所述语法元素的所述多个容器的已编码比特进行解码;
其中,所述第一系数子块的语法元素的上下文编码容器的第一最大数目与所述变换块中的第二系数子块的语法元素的上下文编码容器的第二最大数目不同。
2.根据权利要求1所述的方法,其中,
所述第一系数子块的频率位置在所述变换块的低频区域中,以及
所述第二系数子块的频率位置在所述变换块的高频区域中。
3.根据权利要求2所述的方法,其中,所述变换块的所述低频区域和所述变换块的所述高频区域由所述变换块中的系数子块的对角线分开。
4.根据权利要求1所述的方法,其中,
所述第一系数子块的频率位置在所述变换块的低频区域中,以及
所述第一系数子块的语法元素的上下文编码容器的第一最大数目大于所述变换块中系数子块的语法元素的上下文编码容器的平均最大数目。
5.根据权利要求4所述的方法,其中,当所述第一系数子块的频率位置在所述变换块的两个或多个所述系数子块的对角线上时,所述第一系数子块的所述语法元素的所述上下文编码容器的所述第一最大数目等于所述变换块中的所述系数子块的语法元素的所以上下文编码容器的所述平均最大数目。
6.根据权利要求1所述的方法,其中,所述确定还包括:
基于所述第一系数子块的频率位置和所述变换块的大小,确定所述变换块中所述第一系数子块的所述语法元素的所述上下文编码容器的所述第一最大数目。
7.根据权利要求4所述的方法,其中,
所述第二系数子块的频率位置在所述变换块的高频区域中,以及
所述第二系数子块的语法元素的上下文编码容器的第二最大数目小于所述变换块中系数子块的语法元素的上下文编码容器的所述平均最大数目。
8.一种视频解码装置,包括:
处理电路,配置为:
接收包括语法元素的比特流,所述语法元素对应于已编码图片中的变换块的残差;
基于所述变换块中的第一系数子块的频率位置,确定所述变换块中的所述第一系数子块的语法元素的上下文编码容器的第一最大数目;
根据上下文模型和所确定的第一系数子块的语法元素的上下文编码容器的第一最大数目,对所述第一系数子块的所述语法元素的多个容器中的每一个容器进行编码;以及
基于所述上下文模型对所述第一系数子块的所述语法元素的所述多个容器的已编码比特进行解码;
其中,所述第一系数子块的语法元素的上下文编码容器的第一最大数目与所述变换块中的第二系数子块的语法元素的上下文编码容器的第二最大数目不同。
9.根据权利要求8所述的装置,其中,
所述第一系数子块的频率位置在所述变换块的低频区域中,以及
所述第二系数子块的频率位置在所述变换块的高频区域中。
10.根据权利要求9所述的装置,其中,所述变换块的所述低频区域和所述变换块的所述高频区域由所述变换块中的系数子块的对角线分开。
11.根据权利要求8所述的装置,其中,
所述第一系数子块的频率位置在所述变换块的低频区域中,以及
所述第一系数子块的语法元素的上下文编码容器的第一最大数目大于所述变换块中系数子块的语法元素的上下文编码容器的平均最大数目。
12.根据权利要求11所述的装置,其中,当所述第一系数子块的频率位置在所述变换块的两个或多个所述系数子块的对角线上时,所述第一系数子块的所述语法元素的所述上下文编码容器的所述第一最大数目等于所述变换块中的所述系数子块的所述语法元素的所述上下文编码容器的所述平均最大数目。
13.根据权利要求8所述的装置,所述处理电路进一步被配置为基于所述第一系数子块的频率位置和所述变换块的大小,确定所述变换块中所述第一系数子块的所述语法元素的所述上下文编码容器的所述第一最大数目。
14.根据权利要求11所述的装置,其中,
所述第二系数子块的频率位置在所述变换块的高频区域中,以及
所述第二系数子块的语法元素的上下文编码容器的第二最大数目小于所述变换块中系数子块的语法元素的上下文编码容器的所述平均最大数目。
15.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储有指令,当所述指令被计算机执行时,使得所述计算机执行方法,所述方法包括:
接收包括语法元素的比特流,所述语法元素对应于已编码图片中的变换块的残差;
基于所述变换块中的第一系数子块的频率位置,确定所述变换块中的所述第一系数子块的语法元素的上下文编码容器的第一最大数目;
根据上下文模型和所确定的第一系数子块的语法元素的上下文编码容器的第一最大数目,对所述第一系数子块的语法元素的多个容器中的每一个容器进行编码;以及
基于所述上下文模型对所述第一系数子块的所述语法元素的所述多个容器的已编码比特进行解码;
其中,所述第一系数子块的语法元素的上下文编码容器的第一最大数目与所述变换块中的第二系数子块的语法元素的上下文编码容器的第二最大数目不同。
16.根据权利要求15所述的方法,其中,
所述第一系数子块的频率位置在所述变换块的低频区域中,以及
所述第二系数子块的频率位置在所述变换块的高频区域中。
17.根据权利要求16所述的方法,其中,所述变换块的所述低频区域和所述变换块的所述高频区域由所述变换块中的系数子块的对角线分开。
18.根据权利要求15所述的方法,其中,
所述第一系数子块的频率位置在所述变换块的低频区域中,以及
所述第一系数子块的语法元素的上下文编码容器的第一最大数目大于所述变换块中系数子块的语法元素的上下文编码容器的平均最大数目。
19.根据权利要求18所述的方法,其中,当所述第一系数块的频率位置在所述变换块的两个或多个所述系数子块的对角线上时,所述第一系数子块的所述语法元素的所述上下文编码容器的所述第一最大数目等于所述变换块中的所述系数子块的所述语法元素的所述上下文编码容器的所述平均最大数目。
20.根据权利要求15所述的方法,其中,所述确定还包括:
基于所述第一系数子块的频率位置和所述变换块的大小,确定所述变换块中所述第一系数子块的所述语法元素的所述上下文编码容器的所述第一最大数目。
CN202080005796.3A 2019-01-02 2020-01-02 视频编解码的方法、装置及存储介质 Active CN113228667B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962704041P 2019-01-02 2019-01-02
US62/704,041 2019-01-02
US16/731,763 US10798397B2 (en) 2019-01-02 2019-12-31 Method and apparatus for video coding
US16/731,763 2019-12-31
PCT/US2020/012038 WO2020142596A1 (en) 2019-01-02 2020-01-02 Method and apparatus for video coding

Publications (2)

Publication Number Publication Date
CN113228667A true CN113228667A (zh) 2021-08-06
CN113228667B CN113228667B (zh) 2024-02-23

Family

ID=71123362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080005796.3A Active CN113228667B (zh) 2019-01-02 2020-01-02 视频编解码的方法、装置及存储介质

Country Status (6)

Country Link
US (1) US10798397B2 (zh)
EP (1) EP3769525A4 (zh)
JP (1) JP7221390B2 (zh)
KR (1) KR102589712B1 (zh)
CN (1) CN113228667B (zh)
WO (1) WO2020142596A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477486B2 (en) * 2019-01-02 2022-10-18 Qualcomm Incorporated Escape coding for coefficient levels
CN113316934B (zh) * 2019-01-25 2024-03-08 寰发股份有限公司 带有变换块级别约束的变换系数编码的方法和设备
US20220329810A1 (en) * 2021-04-12 2022-10-13 Tencent America LLC Method and apparatus for intra string copy
CN113079378B (zh) * 2021-04-15 2022-08-16 杭州海康威视数字技术股份有限公司 图像处理方法、装置和电子设备
US20230254489A1 (en) * 2022-02-07 2023-08-10 Tencent America LLC Adaptive context-based adaptive binary arithmetic coding (cabac) initial state selection from coded pictures

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120230419A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US20130114676A1 (en) * 2011-11-08 2013-05-09 Qualcomm Incorporated Context optimization for last significant coefficient position coding
WO2013109357A1 (en) * 2012-01-17 2013-07-25 Qualcomm Incorporated Throughput improvement for cabac coefficient level coding
US20130272377A1 (en) * 2012-04-11 2013-10-17 Qualcomm Incorporated Bypass bins for reference index coding in video coding
US20130307776A1 (en) * 2011-01-31 2013-11-21 Nanotec Solution Three-dimensional man/machine interface
US20180288416A1 (en) * 2015-09-10 2018-10-04 Mediatek Singapore Pte. Ltd. Method and apparatus of context modelling for syntax elements in image and video coding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US10491914B2 (en) * 2018-03-29 2019-11-26 Tencent America LLC Transform information prediction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130307776A1 (en) * 2011-01-31 2013-11-21 Nanotec Solution Three-dimensional man/machine interface
US20120230419A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US20130114676A1 (en) * 2011-11-08 2013-05-09 Qualcomm Incorporated Context optimization for last significant coefficient position coding
WO2013109357A1 (en) * 2012-01-17 2013-07-25 Qualcomm Incorporated Throughput improvement for cabac coefficient level coding
US20130272377A1 (en) * 2012-04-11 2013-10-17 Qualcomm Incorporated Bypass bins for reference index coding in video coding
US20180288416A1 (en) * 2015-09-10 2018-10-04 Mediatek Singapore Pte. Ltd. Method and apparatus of context modelling for syntax elements in image and video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HEIKO SCHWARZ等: "CE7: Transform coefficient coding with reduced number of regular-coded bins(tests 7.1.3a, 7.1.3b(JVET-L0274)", 《JOINT VIDEO EXPERTSTEAM(JVET)OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG1112THMEETING: MACAO, CN, 3–12OCT.2018》 *

Also Published As

Publication number Publication date
KR20210074399A (ko) 2021-06-21
US20200213606A1 (en) 2020-07-02
EP3769525A4 (en) 2021-12-29
JP2022512109A (ja) 2022-02-02
EP3769525A1 (en) 2021-01-27
US10798397B2 (en) 2020-10-06
CN113228667B (zh) 2024-02-23
WO2020142596A1 (en) 2020-07-09
JP7221390B2 (ja) 2023-02-13
KR102589712B1 (ko) 2023-10-13

Similar Documents

Publication Publication Date Title
CN111837390B (zh) 用于视频编码、解码的方法和相关装置
JP7257535B2 (ja) 変換スキップモードとブロック差分パルスコード変調の改善された残差コーディング
JP7405926B2 (ja) 動画の符号化及び復号方法、装置、並びにコンピュータプログラム
JP7436715B2 (ja) ビデオコーディングの方法および装置、ならびにコンピュータプログラム
CN111903126B (zh) 用于视频解码的方法、装置和设备
CN113424541B (zh) 视频编解码的方法和装置
JP2022177269A (ja) 動画を復号する方法、装置、及びコンピュータプログラム
CN112313952A (zh) 用于视频编码的方法和设备
JP2023062099A (ja) ビデオ復号化のための方法、機器、非一時的なコンピュータ可読媒体、及びコンピュータプログラム
CN109996079B (zh) 视频解码方法和装置
CN113396590B (zh) 视频解码的方法和装置、计算机设备及存储介质
CN112753223B (zh) 用于视频解码的方法、装置和计算机可读介质
CN113228667B (zh) 视频编解码的方法、装置及存储介质
KR20200125733A (ko) 비디오 코딩을 위한 방법 및 장치
CN112235573B (zh) 视频编解码的方法、装置、电子设备、存储介质
CN111919440B (zh) 用于视频解码的方法、装置和计算机可读介质
JP7419506B2 (ja) 映像コーディングのための方法及び装置
US20240031605A1 (en) Reducing context models for entropy coding of transform coefficients
CN110830800A (zh) 视频解码方法、装置、计算机设备及存储介质
CN113728649B (zh) 用于视频编解码的方法和装置
CN116076074A (zh) 用于视频编码中的时域滤波的方法和设备
JP2023525668A (ja) 多重変換選択を用いた適応スキャン
JP2024516763A (ja) 適応型多重変換セット選択
CN111988617A (zh) 视频解码方法和装置以及计算机设备和存储介质
CN116897535A (zh) 根据已编码图片自适应地基于上下文的自适应二进制算术编码(cabac)的初始状态选择

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40050985

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant