CN117203965A - 调色板预测值生成和信号通知 - Google Patents

调色板预测值生成和信号通知 Download PDF

Info

Publication number
CN117203965A
CN117203965A CN202280010652.6A CN202280010652A CN117203965A CN 117203965 A CN117203965 A CN 117203965A CN 202280010652 A CN202280010652 A CN 202280010652A CN 117203965 A CN117203965 A CN 117203965A
Authority
CN
China
Prior art keywords
palette
block
current
video
size
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.)
Pending
Application number
CN202280010652.6A
Other languages
English (en)
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 CN117203965A publication Critical patent/CN117203965A/zh
Pending legal-status Critical Current

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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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/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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

本公开内容一般涉及视频编码,特别地涉及用于基于像素值的调色板在帧内预测模式下生成视频块的调色板预测块并用信号通知视频块的调色板预测块的方法和***。在一些示例实现方式中,从在调色板帧内预测模式下预测的至少一个邻近块继承用于预测当前视频块的调色板的至少一部分。在执行与至少一个邻近块相对应的调色板的任何合并之前,确定当前视频块的调色板的继承部分的大小。

Description

调色板预测值生成和信号通知
通过引用并入
本申请基于并要求于2022年7月20日提交的美国非临时专利申请第17/869,268号的优先权的权益,该美国非临时专利申请基于并要求于2022年1月14日提交的标题为“Palette Predictor Generation and Signaling”的美国临时专利申请第63/299,665号的优先权的权益,这些在先专利申请通过引用整体并入本文中。
技术领域
本公开内容一般涉及视频编码,特别地涉及用于基于像素值的调色板在帧内预测模式下生成视频块的调色板预测块并用信号通知视频块的调色板预测块的方法和***。
背景技术
本文提供的该背景描述是出于总体上呈现本公开内容的上下文的目的。就本背景技术部分中描述的工作的程度而言,目前署名的发明人的工作以及在提交该申请时可以不被另外限定为现有技术的描述的各方面既没有明确地也没有隐式地被承认为本公开内容的现有技术。
可以使用带运动补偿的帧间图片预测执行视频编码和视频解码。未压缩的数字视频可以包括一系列图片,其中每个图片具有例如1920×1080个亮度样本和相关联的全色度样本或子取样色度样本的空间维度。一系列图片可以具有固定或可变的图片速率(替选地被称为帧率),例如每秒60幅图片或每秒60帧。未压缩的视频对于流式传输或数据处理有特定的位率要求。例如,像素分辨率为1920×1080、帧率为60帧/秒以及在每颜色通道每像素8位下色度子取样为4:2:0的视频需要接近1.5Gbit/s的带宽。一小时这样的视频需要超过600GB的存储空间。
视频编码和视频解码的一个目的可以是通过压缩减少未压缩的输入视频信号中的冗余。在一些情况下,压缩可以帮助将上述带宽和/或存储空间需求降低两个数量级或更多。可以采用无损压缩和有损压缩二者以及它们的组合。无损压缩是指可以从压缩的原始信号中经由解码过程重建原始信号的精确副本的技术。有损压缩是指其中原始视频信息在编码期间没有被完全保留并且在解码期间也不能被完全恢复的编码/解码过程。当使用有损压缩时,重建信号可能与原始信号不相同,但是原始信号与重建信号之间的失真足够小,以使得尽管有一些信息损失,重建信号对预期的应用也是有用的。在视频的情况下,在许多应用中广泛采用有损压缩。容许的失真量取决于应用。例如,某些消费者视频流式传输应用的用户可以比电影或电视广播应用的用户容忍更高的失真。可以选择或调整能够由特定编码算法实现的压缩比以反映各种失真容限:较高的可容忍失真通常允许产生较高的损失和较高的压缩比的编码算法。
视频编码器和视频解码器可以利用来自几种广泛类别和步骤的技术,包括例如运动补偿、傅里叶变换、量化和熵编码。
视频编解码器技术可以包括被称为帧内编码的技术。在帧内编码中,在不参考来自先前重建的参考图片的样本或其他数据的情况下表示样本值。在一些视频编解码器中,图片在空间上被细分成样本块。当在帧内模式下对所有样本块进行编码时,该图片可以被称为帧内图片。帧内图片及其派生(例如,独立解码器刷新图片)可以用于重置解码器状态,并且因此可以用作编码视频码流和视频会话中的第一图片或用作静止图像。然后,可以使帧内预测之后的块的样本经受到频域的变换,并且可以在熵编码之前对所生成的变换系数进行量化。帧内预测表示使样本值在预变换域中最小化的技术。在一些情况下,变换后的DC值越小,并且AC系数越小,在给定量化步长下表示熵编码之后的块所需的位就越少。
诸如从例如MPEG-2代编码技术中已知的那些帧内编码的传统的帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括试图基于例如在编码和/或解码期间获得的在空间上邻近并且在解码顺序上先于正被帧内编码或解码的数据块的元数据和/或周围样本数据来对块进行编码/解码的技术。这样的技术此后被称为“帧内预测”技术。注意,在至少一些情况下,帧内预测仅使用来自正在重建的当前图片的参考数据,而不使用来自其他参考图片的参考数据。
可以存在多种不同形式的帧内预测。当在给定的视频编码技术中可以使用多于一种的这样的技术时,使用的技术可以被称为帧内预测模式。可以在特定编解码器中提供一种或更多种帧内预测模式。在某些情况下,模式可以具有子模式以及/或者可以与各种参数相关联,并且视频块的模式/子模式信息以及帧内编码参数可以被单独编码或者被集体包括在模式码字中。针对给定模式、子模式和/或参数组合要使用哪种码字可以通过帧内预测对编码效率增益产生影响,并且因此可以对用于将码字转换成码流的熵编码技术产生影响。
帧内预测的某些模式由H.264引入,在H.265中被细化,并且在诸如联合探索模型(Joint ExplorationModel,JEM)、通用视频编码(Versatile Video Coding,VVC)和基准集(BenchmarkSet,BMS)的较新编码技术中被进一步细化。通常,对于帧内预测,可以使用已经变得可用的邻近样本值来形成预测值块(predictor block)。例如,可以将沿着特定方向和/或线的邻近样本的特定集合的可用值复制到预测值块中。对使用的方向的参考可以被编码在码流中,或者其本身可以被预测。
参照图1A,在右下方描绘的是在H.265的33个可能的帧内预测值方向(对应于H.265中指定的35个帧内模式中的33个角度模式)中指定的9个预测值方向的子集。箭头会聚的点(101)表示正被预测的样本。箭头表示邻近样本被用于预测101处的样本的方向。例如,箭头(102)指示从右上方的与水平方向成45度角的邻近的一个或多个样本对样本(101)进行预测。类似地,箭头(103)指示从样本(101)的左下方的与水平方向成22.5度角的邻近的一个或多个样本对样本(101)进行预测。
仍然参照图1A,在左上方描绘的是4×4个样本的正方形块(104)(由虚粗体线指示)。正方形块(104)包括16个样本,每个样本由“S”、其在Y维度上的位置(例如,行索引)和其在X维度上的位置(例如,列索引)来标记。例如,样本S21是Y维度上(从顶部起)的第二个样本和X维度上(从左侧起)的第一个样本。类似地,样本S44是块(104)中在Y维度和X维度二者上的第四个样本。由于块的大小是4×4个样本,所以S44在右下方。进一步示出了遵循类似的编号方案的示例参考样本。参考样本由R、其相对于块(104)的Y位置(例如,行索引)和X位置(列索引)来标记。在H.264和H.265二者中,使用与重建中的块相邻地邻近的预测样本。
块104的帧内图片预测可以通过根据用信号通知的预测方向从邻近的样本复制参考样本值开始。例如,假设编码视频码流包括以下信令,对于该块104,该信令指示箭头(102)的预测方向——也就是,根据右上方的与水平方向成45度角的一个或多个预测样本来对样本进行预测。在这样的情况下,根据相同的参考样本R05对样本S41、S32、S23和S14进行预测。然后,根据参考样本R08对样本S44进行预测。
在某些情况下,多个参考样本的值可以例如通过插值来组合,以便计算参考样本;尤其是当方向不能被45度整除时。
随着视频编码技术的不断发展,可能的方向的数目也在增加。例如,在H.264(2003年)中,九个不同的方向可用于帧内预测。这在H.265(2013年)中增加到33个,并且在公开时JEM/VVC/BMS可以支持多达65个方向。已经进行了实验研究来帮助识别最合适的帧内预测方向,并且熵编码中的某些技术可以用于以小的位数对那些最合适的方向进行编码,从而接受用于方向的特定位惩罚。此外,有时可以根据在已解码的邻近块的帧内预测中使用的邻近方向来预测方向本身。
图1B示出了根据JEM描绘65个帧内预测方向的示意图(180),以示出随着时间的推移开发的各种编码技术中不断增加的预测方向的数目。
用于将表示帧内预测方向的位映射到编码视频码流中的预测方向的方式可以随着视频编码技术的不同而不同;并且该映射方式的范围例如可以从预测方向到帧内预测模式到码字的简单直接映射变化到复杂自适应方案,复杂自适应方案涉及最可能模式和类似技术。然而,在所有情况下,可能存在与某些其他方向相比在统计上更不可能出现在视频内容中的某些帧内预测方向。由于视频压缩的目标是减少冗余,因此在设计良好的视频编码技术中,那些较不可能的方向与更可能的方向相比可以通过更大的位数来表示。
帧间图片预测或帧间预测可以基于运动补偿。在运动补偿中,来自先前重建的图片或其一部分(参考图片)的样本数据——在沿由运动矢量(此后被称为MV)指示的方向进行空间移位之后——可以用于预测新重建的图片或图片部分(例如,块)。在一些情况下,参考图片可以与当前重建中的图片相同。MV可以具有两个维度X和Y或者三个维度,其中第三维度是对使用中的参考图片的指示(类似于时间维度)。
在一些视频压缩技术中,可以根据其他MV例如根据以下其他MV预测适用于样本数据的特定区域的当前MV,这些其他MV与样本数据的在空间上相邻于重建中的区域的其他区域有关并且在解码顺序上先于该当前MV。这样做可以通过依赖于移除关联的MV中的冗余而显著减少对MV进行编码所需的总的数据量,从而提高压缩效率。MV预测可以有效地发挥作用,例如,这是因为在对从摄像装置导出的输入视频信号(被称为自然视频)进行编码时,存在如下统计上的可能性,即在视频序列中比单个MV所适用的区域大的区域在相似的方向上移动,并且因此在一些情况下可以使用从邻近区域的MV导出的相似运动矢量来进行预测。这导致针对给定区域的实际MV与从周围的MV预测的MV相似或相同。这样的MV又可以在熵编码之后以小于直接对MV进行编码而不是从邻近MV对MV进行预测的情况下使用的位数来表示。在一些情况下,MV预测可以是对从原始信号(即样本流)导出的信号(即MV)进行无损压缩的示例。在其他情况下,例如由于从几个周围MV计算预测值时的舍入误差,MV预测本身可以是有损的。
在H.265/HEVC(ITU-T H.265建议书,“HighEfficiency Video Coding(高效视频编解码)”,2016年12月)中描述了各种MV预测机制。在H.265指定的多种MV预测机制中,以下描述的是此后被称为“空间合并”的技术。
具体地,参照图2,当前块(201)包括在运动搜索过程期间已被编码器发现、根据已产生空间移位的相同大小的先前块可预测所述样本。代替对该MV进行直接编码,可以使用与被表示为A0、A1和B0、B1、B2(分别对应202到206)的五个周围样本中的任一样本相关联的MV,根据与一个或更多个参考图片相关联的元数据,例如根据(按解码顺序)最近的参考图片导出所述MV。在H.265中,MV预测可以使用邻近块也正在使用的相同参考图片的预测值。
发明内容
本公开内容一般涉及视频编码,特别地涉及用于基于像素值的调色板在帧内预测模式下生成视频块的调色板预测块并用信号通知视频块的调色板预测块的方法和***。
在示例实现方式中,公开了一种用于生成视频流中的当前视频块的帧内预测值块的方法。可以以调色板模式对当前视频块被帧内编码。该方法可以包括:根据视频流确定当前视频块基于与至少一个邻近视频块相对应的至少一个参考调色板被编码;在执行至少一个参考调色板的任何合并之前,确定与当前视频块相关联的当前调色板的继承部分的大小cacheN,cacheN是整数;基于cacheN和至少一个参考调色板导出当前调色板的继承部分;从视频流中提取到用于当前视频块的元素的当前调色板中的调色板索引;以及至少基于调色板索引和当前调色板来生成当前视频块的预测值块。
在上述实现方式中,确定cacheN可以包括基于与至少一个参考调色板相对应的至少一个调色板大小来确定当前调色板的继承部分的大小。
在上述任何一种实现方式中,确定cacheN可以包括:确定当前视频块的第一邻近视频块的第一调色板大小;确定当前视频块的第二邻近视频块的第二调色板大小;以及基于第一调色板大小和第二调色板大小来确定cacheN。
在上述任何一种实现方式中,第一邻近视频块和第二邻近视频块可以分别包括当前视频块的紧邻上方的视频块和紧邻左侧的视频块。基于第一调色板大小和第二调色板大小确定cacheN可以包括将当前调色板的继承部分的大小确定为:第一调色板大小与第二调色板大小中的较大者增加N;或者第一调色板大小与第二调色板大小中的较小者增加N;或者预确定的最大继承调色板大小与第一调色板大小和第二调色板大小中的较大者增加N中的较小者;或者预确定的最大继承调色板大小与第一调色板大小和第二调色板大小中的较小者增加N中的较小者。符号N表示预确定的调色板大小增量,N是0至8之间以及包括0和8的整数。
在上述任何一种实现方式中,确定cacheN可以包括独立于至少一个参考调色板为当前调色板的继承部分指定调色板大小,调色板大小是0至8之间以及包括0和8的整数。
在上述任何一种实现方式中,可以在视频流中以语法元素预确定或用信号通知调色板大小。
在上述任何一种实现方式中,语法元素可以包括与当前视频块相关联的视频参数集、序列参数集、图片参数集、自适应参数集、帧报头、切片报头、图片报头、图块报头或编码树单元报头中的一个分量。
在上述任何一种实现方式中,可以从当前视频块或至少一个邻近视频块的编码信息项导出cacheN。
在上述任何一种实现方式中,编码信息项可以包括与当前视频块或至少一个邻近视频块相关联的块大小或预测模式中的至少一者。
在上述任何一种实现方式中,cacheN可以被导出为与至少一个邻近视频块相关联的至少一个参考调色板中的重复调色板条目的数目。
在上述任何一种实现方式中,至少一个邻近视频块可以包括M个邻近视频块,并且M个邻近视频块中的至少K个邻近视频块的公共调色板条目的数目I被确定为cacheN;M是等于或大于2的整数,并且K是等于或小于M的整数。
在上述任何一种实现方式中,可以从当前视频块的三个或更多个邻近视频块中选择与至少一个参考调色板相对应的至少一个邻近视频块。
在上述任何一种实现方式中,三个或更多个邻近视频块可以包括与当前视频块不相邻的至少一个块。
在上述任何一种实现方式中,可以通过以预定义扫描顺序扫描三个或更多个邻近视频块来从三个或更多个邻近视频块中选择至少一个邻近视频块以确定以调色板模式进行帧内编码的第一邻近视频块集;并且可以使用第一邻近视频块集的高速缓存调色板的集合来确定或导出至少一个参考调色板。
在上述任何一种实现方式中,该方法还可以包括将至少一个参考调色板合并到独特(unique)调色板条目数为S的高速缓存调色板。
在上述任何一种实现方式中,当S>cacheN时,该方法还可以包括以下之一:按照预确定扫描顺序从高速缓存调色板中选择前cacheN个调色板条目,以生成调色板条目数为cacheN的当前调色板的继承部分;按照预确定扫描顺序从高速缓存调色板中选择最后高速缓存cacheN个调色板条目,以生成调色板条目数为cacheN的当前调色板的继承部分;按照预确定扫描顺序从至少一个参考调色板中选择重复的调色板条目,并且如果需要,从高速缓存调色板中另外选择前几个非重复的调色板条目,以生成调色板条目数为cacheN的当前调色板的继承部分;或者按照预确定扫描顺序从至少一个参考调色板中选择重复的调色板条目,并且如果需要,从高速缓存调色板中另外选择最后几个非重复的调色板条目,以生成调色板条目数为cacheN的当前调色板的继承部分。
在上述任何一种实现方式中,当S<(cacheN)时,该方法还可以包括:使用高速缓存调色板填充当前调色板的继承部分的前S个调色板条目;根据高速缓存调色板确定(cacheN-S)个目标调色板条目;使(cacheN-S)个目标调色板条目中的每一者偏移以生成经修改的目标调色板条目;以及将经修改的目标调色板条目包括到当前调色板的继承部分的最后(cacheN-S)个条目中。
在上述任何一种实现方式中,当S<cacheN时,该方法还可以包括:使用高速缓存调色板填充当前调色板的继承部分的前S个调色板条目;以及用来自调色板条目列表的前(cacheN-S)个调色板条目填充当前调色板的继承部分的最后(cacheN-S)个调色板条目。
在上述任何一种实现方式中,可以在视频流中以序列参数集、图片参数集、自适应参数集、帧报头、切片报头、图片报头、图块报头或编码树单元报头中的一者来用信号通知调色板条目列表。
本公开内容的各方面还提供了一种视频编码或解码装置或设备,包括被配置成执行上述方法实现中的任何方法实现的电路***。
本公开内容的各方面还提供了存储指令的非暂态计算机可读介质,指令当由计算机执行以进行视频解码和/或编码时使计算机执行用于视频解码和/或编码的方法。
附图说明
根据以下详细描述和附图,所公开的主题的另外的特征、性质和各种优点将更明显,在附图中:
图1A示出了帧内预测方向性模式的示例性子集的示意性图示;
图1B示出了示例性帧内预测方向的图示;
图2示出了在一个示例中用于运动矢量预测的当前块及其周围的空间合并候选的示意性图示;
图3示出了根据示例实施方式的通信***(300)的简化框图的示意性图示;
图4示出了根据示例实施方式的通信***(400)的简化框图的示意性图示;
图5示出了根据示例实施方式的视频解码器的简化框图的示意性图示;
图6示出了根据示例实施方式的视频编码器的简化框图的示意性图示;
图7示出了根据另一示例实施方式的视频编码器的框图;
图8示出了根据另一示例实施方式的视频解码器的框图;
图9示出了根据本公开内容的示例实施方式的编码块分割的方案;
图10示出了根据本公开内容的示例实施方式的编码块分割的另一方案;
图11示出了根据本公开内容的示例实施方式的编码块分割的另一方案;
图12示出了根据示例分割方案将基本块分割成编码块的示例;
图13示出了示例三元分割方案;
图14示出了示例四叉树二叉树编码块分割方案;
图15示出了根据本公开内容的示例实施方式的将编码块分割成多个变换块的方案以及变换块的编码顺序;
图16示出了根据本公开内容的示例实施方式的将编码块分割成多个变换块的另一方案以及变换块的编码顺序;
图17示出了根据本公开内容的示例实施方式的将编码块分割成多个变换块的另一方案;
图18示出了用于对调色板帧内预测模式下预测的编码块的调色板条目进行编码的示例扫描顺序;
图19示出了根据本公开内容的示例实施方式的方法的流程图;以及
图20示出了根据本公开内容的示例实施方式的计算机***的示意性图示。
具体实施方式
在整个说明书和权利要求书中,术语可以具有在上下文中建议或暗示的超出明确陈述的含义的具有细微差别的含义。如本文所使用的短语“在一个实施方式中”或“在一些实施方式中”不一定是指相同的实施方式,并且如本文所使用的短语“在另一实施方式中”或“在其他实施方式中”不一定是指不同的实施方式。同样,如本文所使用的短语“在一个实现方式中”或“在一些实现方式中”不一定指相同的实现方式,并且如本文所使用的短语“在另一实现方式中”或“在其他实现方式中”不一定是指不同的实现方式。例如,目的是所要求保护的主题包括示例性实施方式/实现方式的整体或部分的组合。
通常,术语可以至少部分地从上下文中的用法来理解。例如,如本文所使用的术语诸如“和”、“或”或者“和/或”可以包括各种含义,其可以至少部分地取决于使用这样的术语的上下文。通常,如果“或”用于关联列表例如A、B或C,则“或”旨在表示:A、B和C,此处以包含的意义使用;以及A、B或C,此处以排他的意义使用。另外,至少部分地取决于上下文,如本文所使用的术语“一个或更多个”或“至少一个”可以用于以单数意义描述任何特征、结构或特性,或者可以用于以复数意义描述特征、结构或特性的组合。类似地,术语例如“一”、“一个”或“该”同样可以被理解成传达单数用法或传达复数用法,这至少部分地取决于上下文。此外,术语“基于”或“由......确定”可以被理解为不一定旨在传达排他的因素集合,并且可以替代地允许存在不一定明确描述的附加因素,这同样至少部分地取决于上下文。图3示出了根据本公开内容的实施方式的通信***(300)的简化框图。通信***(300)包括多个终端装置,多个终端装置可以经由例如网络(350)彼此通信。例如,通信***(300)包括经由网络(350)互连的第一对终端装置(310)和终端装置(320)。在图3的示例中,第一对终端装置(310)和终端装置(320)可以执行单向数据传输。例如,终端装置(310)可以对(例如,由终端装置(310)捕获的视频图片流中的)视频数据进行编码以经由网络(350)传输到另一终端装置(320)。已编码视频数据可以以一个或更多个编码视频码流的形式传输。终端装置(320)可以从网络(350)接收已编码视频数据、对已编码视频数据进行解码以恢复视频图片以及根据所恢复的视频数据显示视频图片。单向数据传输可以在媒体服务应用等中实现。
在另一示例中,通信***(300)包括执行已编码视频数据的双向传输的第二对终端装置(330)和终端装置(340),所述双向传输可以例如在视频会议应用期间实现。对于数据的双向传输,在示例中,终端装置(330)和终端装置(340)中的每个终端装置可以对(例如,由终端装置捕获的视频图片流中的)视频数据进行编码,以经由网络(350)传输至终端装置(330)和终端装置(340)中的另一终端装置。终端装置(330)和终端装置(340)中的每个终端装置还可以接收由终端装置(330)和终端装置(340)中的另一终端装置传输的已编码视频数据,并且可以对所述已编码视频数据进行解码以恢复视频图片,并且可以根据所恢复的视频数据在可访问的显示装置处显示视频图片。
在图3的示例中,终端装置(310)、(320)、(330)和(340)可以被实现为服务器、个人计算机和智能电话,但本公开内容的基本原理的适用性可以不限于此。本公开内容的实施方式可以在台式计算机、膝上型计算机、平板计算机、媒体播放器、可穿戴计算机、专用视频会议设备等中实现。网络(350)表示在终端装置(310)、(320)、(330)和(340)之中传送已编码视频数据的任何数目或任何类型的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(350)可以在电路交换、分组交换和/或其他类型的信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本论述的目的,除非本文中明确说明,否则网络(350)的架构和拓扑对于本公开内容的操作来说可能是无关紧要的。
作为所公开的主题的应用的示例,图4示出了视频编码器和视频解码器在视频流式传输环境中的放置。所公开的主题可以同等地适用于其他视频应用,包括例如:视频会议,数字电视广播,游戏,虚拟现实,压缩视频在包括CD、DVD、记忆棒等的数字介质上的存储等。
视频流式传输***可以包括视频捕获子***(413),该视频捕获子***(413)可以包括视频源(401)例如数字摄像装置,用于创建未压缩的视频图片或图像流(402)。在示例中,视频图片流(402)包括由视频源401的数字摄像装置记录的样本。视频图片流(402)——其被描绘为粗线以强调与已编码视频数据(404)(或编码视频码流)相比时的高数据量——可以由耦接至视频源(401)的包括视频编码器(403)的电子装置(420)处理。视频编码器(403)可以包括硬件、软件或其组合以实现或实施如下更详细描述的所公开的主题的各方面。已编码视频数据(404)(或编码视频码流(404))——其被描绘为细线以强调与未压缩视频图片流(402)相比时的较低数据量——可以被存储在流式传输服务器(405)上以供将来使用或被直接存储至下游的视频装置(未示出)。一个或更多个流式传输客户端子***例如图4中的客户端子***(406)和(408)可以访问流式传输服务器(405)以检索已编码视频数据(404)的副本(407)和(409)。客户端子***(406)可以包括例如电子装置(430)中的视频解码器(410)。视频解码器(410)对传入的已编码视频数据的副本(407)进行解码,并且创建未压缩的并且可以在显示器(412)(例如,显示屏幕)或其他呈现装置(未描绘)上呈现的传出视频图片流(411)。视频解码器410可以被配置成执行本公开内容中描述的各种功能中的一些或全部。在一些流式传输***中,可以根据某些视频编码标准/视频压缩标准对已编码视频数据(404)、(407)和(409)(例如,视频码流)进行编码。这些标准的示例包括ITU-TH.265建议书。在示例中,正在开发的视频编码标准被非正式地称为通用视频编码(Versatile Video Coding,VVC)。所公开的主题可以在VVC和其他视频编码标准的上下文中使用。
应当注意,电子装置(420)和(430)可以包括其他部件(未示出)。例如,电子装置(420)可以包括视频解码器(未示出),并且电子装置(430)也可以包括视频编码器(未示出)。
图5示出了根据以下本公开内容的任何实施方式的视频解码器(510)的框图。视频解码器(510)可以被包括在电子装置(530)中。电子装置(530)可以包括接收器(531)(例如,接收电路***)。可以使用视频解码器(510)代替图4的示例中的视频解码器(410)。
接收器(531)可以接收要由视频解码器(510)解码的一个或更多个已编码视频序列。在同一实施方式或另一实施方式中,可以一次对一个已编码视频序列进行解码,其中每个已编码视频序列的解码独立于其他已编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可以从信道(501)接收已编码视频序列,信道(501)可以是至存储已编码视频数据的存储装置或传输已编码视频数据的流式传输源的硬件/软件链路。接收器(531)可以接收已编码视频数据以及其他数据,例如可以被转发至其各自的处理电路***(未描绘)的已编码音频数据和/或辅助数据流。接收器(531)可以将已编码视频序列与其他数据分开。为了防止网络抖动,可以在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间设置缓冲存储器(515)。在某些应用中,缓冲存储器(515)可以被实现为视频解码器(510)的一部分。在其他应用中,缓冲存储器(515)可以在视频解码器(510)外部并与视频解码器(510)分开(未描绘)。在又一些其他应用中,在视频解码器(510)外部可以存在缓冲存储器(未描绘)以用于例如防止网络抖动的目的,并且在视频解码器(510)内部还可以存在另一其他缓冲存储器(515)以例如处理回放时序。当接收器(531)正在从具有足够带宽和可控性的存储/转发装置或从等同步网络接收数据时,可以不需要缓冲存储器(515),或者缓冲存储器(515)可以是小的。为了在诸如因特网的尽力型(best effort)分组网络上使用,可能需要足够大小的缓冲存储器(515),并且缓冲存储器(515)的大小可以相对大。这样的缓冲存储器可以实现为具有自适应大小,并且可以至少部分地在操作***或视频解码器(510)外部的类似元件(未描绘)中实现。
视频解码器(510)可以包括解析器(520)以根据已编码视频序列来重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息以及可能包括用于控制诸如显示器(512)(例如,显示屏)的呈现装置的信息,该呈现装置可能是或可能不是电子装置(530)的组成部分,但可以耦接至电子装置(530),如图5所示。用于呈现装置的控制信息可以呈辅助增强信息(SEI(Supplemental Enhancement Information)消息)或视频可用性信息(Video Usability Information,VUI)参数集片段(未描绘)的形式。解析器(520)可以对由解析器(520)接收到的已编码视频序列进行解析/熵解码。已编码视频序列的熵编码可以根据视频编码技术或视频编码标准进行,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码(Huffmancoding)、具有或不具有上下文灵敏度的算术编码等。解析器(520)可以基于与子组相对应的至少一个参数,从已编码视频序列提取针对视频解码器中的像素子组中的至少一个子组的子组参数集。子组可以包括图片组(Group ofPictures,GOP)、图片、图块、切片、宏块、编码单元(CodingUnit,CU)、块、变换单元(TransformUnit,TU)、预测单元(PredictionUnit,PU)等。解析器(520)还可以从已编码视频序列中提取信息,例如变换系数(例如傅里叶变换系数)、量化器参数值、运动矢量等。
解析器(520)可以对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
取决于已编码视频图片或其部分(诸如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其他因素,符号(521)的重建可以涉及多个不同的处理单元或功能单元。所涉及的单元以及它们如何被涉及可以通过由解析器(520)从已编码视频序列解析的子组控制信息来控制。为了简洁起见,没有描绘这样的子组控制信息在解析器(520)与下面的多个处理单元或功能单元之间的流动。
除了已经提及的功能块之外,视频解码器(510)可以在概念上被细分成如下所述的许多功能单元。在商业约束下运行的实际实现方式中,这些功能单元中的许多功能单元彼此密切交互,并且可以至少部分地彼此集成。然而,出于清楚地描述所公开的主题的各种功能的目的,在下面的本公开内容中采用了在概念上细分成功能单元。
第一单元可以包括缩放器/逆变换单元(551)。缩放器/逆变换单元(551)可以从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括指示使用哪种类型的逆变换、块大小、量化因子/参数、量化缩放矩阵等的信息。缩放器/逆变换单元(551)可以输出包括样本值的块,所述样本值可以被输入到聚合器(555)中。
在一些情况下,缩放器/逆变换(551)的输出样本可以从属于经帧内编码的块,即不使用来自先前重建的图片的预测性信息、而是可以使用来自当前图片的先前重建的部分的预测性信息的块。这样的预测性信息可以由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)可以使用已经被重建并存储在当前图片缓冲器(558)中的周围块信息来生成大小和形状与正在重建的块相同的块。例如,当前图片缓冲器(558)对部分重建的当前图片和/或完全重建的当前图片进行缓冲。在一些实现方式中,聚合器(555)可以在每个样本的基础上将帧内预测单元(552)已经生成的预测信息添加至由缩放器/逆变换单元(551)提供的输出样本信息。
在其他情况下,缩放器/逆变换单元(551)的输出样本可以从属于经帧间编码的且可能经过运动补偿的块。在这样的情况下,运动补偿预测单元(553)可以访问参考图片存储器(557)以获取用于帧间图片预测的样本。在根据从属于所述块的符号(521)对所获取的样本进行运动补偿之后,可以由聚合器(555)将这些样本添加至缩放器/逆变换单元(551)的输出(单元551的输出可以被称作残差样本或残差信号),以生成输出样本信息。运动补偿预测单元(553)从其获取预测样本的参考图片存储器(557)内的地址可以通过运动矢量控制,所述运动矢量可以以可以具有例如X分量、Y分量(移位)和参考图片分量(时间)的符号(521)的形式被运动补偿预测单元(553)获得。运动补偿还可以包括在使用子样本精确运动矢量时对从参考图片存储器(557)获取的样本值的插值,并且还可以与运动矢量预测机制等相关联。
聚合器(555)的输出样本可以经受环路滤波器单元(556)中的各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,环路内滤波器技术由被包括在已编码视频序列(也称为编码视频码流)中并且可以作为来自解析器(520)的符号(521)被环路滤波器单元(556)获得的参数进行控制,但是视频压缩技术也可以对在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息进行响应,以及对先前重建并经环路滤波的样本值进行响应。如下面将进一步详细描述的,几种类型的环路滤波器可以以各种顺序被包括为环路滤波器单元556的一部分。
环路滤波器单元(556)的输出可以是样本流,该样本流可以被输出至呈现装置(512)并且被存储在参考图片存储器(557)中以用于将来的帧间图片预测。
某些已编码图片一旦被完全重建,就可以被用作参考图片以用于将来的帧间图片预测。例如,一旦与当前图片相对应的已编码图片被完全重建并且该已编码图片(通过例如解析器(520))被标识为参考图片,则当前图片缓冲器(558)就可以成为参考图片存储器(557)的一部分,并且可以在开始重建随后的已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可以根据在例如ITU-T H.265建议书的标准中采用的预确定视频压缩技术来执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件二者的意义上,已编码视频序列可以符合由使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。为了合规性,已编码视频序列的复杂度可以在如由视频压缩技术或标准的层级限定的界限内。在一些情况下,层级会限制最大图片大小、最大帧率、最大重建样本率(以例如每秒兆个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可以通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范以及在已编码视频序列中用信号通知的用于HRD缓冲器管理的元数据来进一步限制。
在一些示例实施方式中,接收器(531)可以连同已编码视频一起接收附加(冗余)数据。附加数据可以被包括为已编码视频序列的一部分。视频解码器(510)可以使用附加数据以对数据进行正确解码和/或更精准地对原始视频数据进行重建。附加数据可以呈以下形式:例如时间、空间或信噪比(SNR)增强层、冗余切片、冗余图片、前向纠错码等。
图6示出了根据本公开内容的示例实施方式的视频编码器(603)的框图。视频编码器(603)可以被包括在电子装置(620)中。电子装置(620)还可以包括传输器(640)(例如,传输电路***)。可以使用视频编码器(603)代替图4的示例中的视频编码器(403)。
视频编码器(603)可以从可以捕获要由视频编码器(603)编码的视频图像的视频源(601)(其在图6的示例中不是电子装置(620)的一部分)接收视频样本。在另一示例中,视频源(601)可以被实现为电子装置(620)的一部分。
视频源(601)可以提供要由视频编码器(603)编码的呈数字视频样本流形式的源视频序列,数字视频样本流可以具有任何合适的位深度(例如:8位、10位、12位……)、任何色彩空间(例如,BT.601YCrCb、RGB、XYZ……)以及任何合适的取样结构(例如,YCrCb 4:2:0、YCrCb 4:4:4)。在媒体服务***中,视频源(601)可以是能够存储先前准备好的视频的存储装置。在视频会议***中,视频源(601)可以是捕获本地图像信息作为视频序列的摄像装置。视频数据可以被提供为在顺序观看时被赋予运动的多个单独图片或图像。图片本身可以被组织为空间像素阵列,其中,取决于所用的取样结构、色彩空间等,每个像素可以包括一个或更多个样本。本领域普通技术人员可以容易地理解像素与样本之间的关系。下面的描述集中在样本上。
根据一些示例实施方式,视频编码器(603)可以实时地或在应用所要求的任何其他时间约束下对源视频序列的图片进行编码并将其压缩成已编码视频序列(643)。施行适当的编码速度构成控制器(650)的一个功能。在一些实施方式中,控制器(650)可以在功能上耦接至如下文所描述的其他功能单元并且控制其他功能单元。为了简洁起见,没有描绘耦接。由控制器(650)设置的参数可以包括速率控制相关参数(图片跳过、量化器、速率失真优化技术的λ值……)、图片大小、图片组(GOP)布局、最大运动矢量搜索范围等。控制器(650)可以被配置成具有其他合适的功能,所述其他合适的功能涉及针对特定***设计优化的视频编码器(603)。
在一些示例实施方式中,视频编码器(603)可以被配置成在编码环路中操作。作为极度简化的描述,在示例中,编码环路可以包括:源编码器(630)(例如,负责基于要编码的输入图片和参考图片来创建符号,例如符号流);以及(本地)解码器(633),其被嵌入在视频编码器(603)中。解码器(633)以与(远程)解码器将创建样本数据的方式相似的方式重建符号,以创建样本数据,即使嵌入式解码器633是在没有熵编码的情况下处理源编码器630的编码视频流(因为在所公开的主题中考虑的视频压缩技术中,符号与熵编码中的编码视频码流之间的任何压缩可能是无损的)。重建的样本流(样本数据)被输入至参考图片存储器(634)。由于符号流的解码导致与解码器位置(本地或远程)无关的位精确(bit-exact)结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是位精确的。换言之,编码器的预测部分将与解码器在解码期间使用预测时将“看到”的样本值完全相同的样本值“看”作参考图片样本。参考图片同步性的这种基本原理(以及在例如因信道误差而无法维持同步性的情况下产生漂移)被用于提高编码质量。
“本地”解码器(633)的操作可以与“远程”解码器例如视频解码器(510)的操作相同,在上面已经结合图5对视频解码器(510)进行了详细描述。然而,另外简要地参照图5,当符号可用并且由熵编码器(645)将符号编码成已编码视频序列以及由解析器(520)对符号进行解码可以是无损的时,视频解码器(510)的包括缓冲存储器(515)和解析器(520)的熵解码部分可以不在编码器中的本地解码器(633)中完全实现。
此时可以观察到,除可以仅存在于解码器中的解析/熵解码之外的任何解码器技术,也必定需要以基本上相同的功能形式存在于对应的编码器中。由于这个原因,所公开的主题可能有时集中在解码器操作上,解码器操作与编码器的解码部分关联。由于编码器技术与已全面描述的解码器技术相反,因此可以简化对编码器技术的描述。下面提供仅在某些区域或方面对编码器的更详细的描述。
在一些示例实现方式中,在操作期间,源编码器(630)可以执行运动补偿预测编码,所述运动补偿预测编码参考来自视频序列的被指定为“参考图片”的一个或更多个先前编码的图片对输入图片进行预测性编码。以这种方式,编码引擎(632)对输入图片的像素块与参考图片的像素块之间的颜色通道的差(或残差)进行编码,所述参考图片可以被选作该输入图片的预测参考。术语“残差”及其形容词形式“残差的”可以互换使用。
本地视频解码器(633)可以基于由源编码器(630)创建的符号,对可以被指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可以有利地为有损过程。当已编码视频数据可以在视频解码器(图6中未示出)处被解码时,重建的视频序列通常可以是源视频序列的其中具有一些误差的副本。本地视频解码器(633)复制可以由视频解码器对参考图片执行的解码处理,并且可以使重建的参考图片存储在参考图片高速缓存(634)中。以这种方式,视频编码器(603)可以在本地存储重建的参考图片的副本,所述副本与将通过远端(远程)视频解码器获得的重建的参考图片具有共同内容(不存在传输误差)。
预测器(635)可以针对编码引擎(632)执行预测搜索。也就是说,对于要编码的新图片,预测器(635)可以在参考图片存储器(634)中搜索样本数据(作为候选参考像素块)或特定元数据例如参考图片运动矢量、块形状等,这些数据可以用作针对新图片的合适的预测参考。预测器(635)可以基于样本块逐像素块操作以找到合适的预测参考。在一些情况下,如通过预测器(635)获得的搜索结果所确定的,输入图片可以具有从存储在参考图片存储器(634)中的多个参考图片获取的预测参考。
控制器(650)可以管理源编码器(630)的编码操作,包括例如对用于对视频数据进行编码的参数和子组参数的设置。
可以在熵编码器(645)中使所有上述功能单元的输出经受熵编码。熵编码器(645)通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩来将这些符号转换成已编码视频序列。
传输器(640)可以缓冲由熵编码器(645)创建的已编码视频序列,从而为经由通信信道(660)进行传输做准备,该通信信道可以是至可以存储已编码视频数据的存储装置的硬件/软件链路。传输器(640)可以将来自视频编码器(603)的已编码视频数据与要传输的其他数据例如已编码音频数据和/或辅助数据流(未示出来源)合并。
控制器(650)可以管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图片指定特定的已编码图片类型,这可能影响可以应用于相应图片的编码技术。例如,通常可以向图片指定以下图片类型之一:
帧内图片(I图片),其可以是可以在不将序列中的任何其他图片用作预测源的情况下被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(“Independent Decoder Refresh,IDR”)图片。本领域普通技术人员了解I图片的那些变型及其各自的应用和特征。
预测性图片(P图片)可以是可以使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片)可以是可以使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可以使用多于两个参考图片和相关联的元数据用于单个块的重建。
源图片通常可以在空间上细分成多个样本编码块(例如,分别具有4×4、8×8、4×8或16×16个样本的块)并且逐块进行编码。可以参考通过应用于块的相应的图片的编码指定确定的其他(已经编码的)块对这些块进行预测性地编码。例如,可以对I图片的块进行非预测性地编码,或者可以参考相同图片的已编码块对I图片的块进行预测性地编码(空间预测或帧内预测)。可以参考一个先前编码的参考图片经由空间预测或经由时间预测对P图片的像素块进行预测性地编码。可以参考一个或两个先前编码的参考图片经由空间预测或经由时间预测对B图片的块进行预测性地编码。出于其他目的,源图片或中间处理过的图片可以被细分成其他类型的块。编码块和其他类型的块的划分可以遵循或可以不遵循相同的方式,如下面进一步详细描述的。
视频编码器(603)可以根据诸如ITU-T H.265建议书的预确定视频编码技术或标准来执行编码操作。在其操作中,视频编码器(603)可以执行各种压缩操作,包括利用输入视频序列中的时间冗余和空间冗余的预测性编码操作。因此,已编码视频数据可以符合由正在使用的视频编码技术或标准指定的语法。
在一些示例实施方式中,传输器(640)可以连同编码视频一起传输附加数据。源编码器(630)可以将这样的数据包括为已编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、其他形式的冗余数据,例如冗余图片和切片、SEI消息、VUI参数集片段等。
视频可以被按时间序列捕获为多个源图片(视频图片)。帧内图片预测(通常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的时间相关性或其他相关性。例如,可以将被称为当前图片的正在被编码/解码的特定图片分割成块。在当前图片中的块与视频中先前编码且仍被缓冲的参考图片中的参考块类似时,可以通过被称作运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,该运动矢量可以具有标识参考图片的第三维度。
在一些示例实施方式中,双向预测技术可以用于帧间图片预测。根据这样的双向预测技术,使用两个参考图片,例如按解码顺序均在视频中的当前图片之前(但按显示顺序可能分别在过去或将来)的第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量以及指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来共同预测所述块。
此外,可以在帧间图片预测中使用合并模式技术以提高编码效率。
根据本公开内容的一些示例实施方式,以块为单位执行诸如帧间图片预测和帧内图片预测的预测。例如,将视频图片序列中的图片分割成编码树单元(CTU)以用于压缩,图片中的CTU可以具有相同大小,例如,64×64像素、32×32像素或16×16像素。通常,CTU可以包括三个并行编码树块(coding tree block,CTB):一个亮度CTB和两个色度CTB。可以将每个CTU递归地以四叉树拆分成一个或多个编码单元(coding unit,CU)。例如,可以将64×64像素的CTU拆分成一个64×64像素的CU、或4个32×32像素的CU。32×32块中的一个或更多个中的每一个可以被进一步拆分成4个16×16像素的CU。在一些示例实施方式中,可以在编码期间分析每个CU,以确定各种预测类型中该CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,可以将CU拆分成一个或更多个预测单元(predictionunit,PU)。通常,每个PU包括亮度预测块(PB)和两个色度PB。在实施方式中,以预测块为单位执行编码(编码/解码)中的预测操作。可以以各种空间模式执行将CU拆分成PU(或不同颜色通道的PB)。亮度或色度PB例如可以包含例如8×8像素、16×16像素、8×16像素、16×8像素等的样本的值(例如,亮度值)的矩阵。
图7示出了根据本公开内容的另一示例实施方式的视频编码器(703)的图。视频编码器(703)被配置成接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并且将该处理块编码到作为已编码视频序列的一部分的已编码图片中。可以使用示例视频编码器(703)代替图4示例中的视频编码器(403)。
例如,视频编码器(703)接收用于处理块诸如8×8样本的预测块等的样本值的矩阵。视频编码器(703)然后使用例如速率失真优化(RDO)来确定是使用帧内模式、帧间模式还是双向预测模式来对处理块进行最佳编码。当确定要在帧内模式下对处理块进行编码时,视频编码器(703)可以使用帧内预测技术将处理块编码到已编码图片中;以及当确定要在帧间模式或双向预测模式下对处理块进行编码时,视频编码器(703)可以分别使用帧间预测技术或双向预测技术将处理块编码到已编码图片中。在一些示例实施方式中,可以使用合并模式作为帧间图片预测的子模式,其中,在不借助于预测值外部的编码运动矢量分量的情况下从一个或更多个运动矢量预测值导出运动矢量。在一些其他示例实施方式中,可以存在适用于主题块的运动矢量分量。因此,视频编码器(703)可以包括图7中未明确示出的部件,诸如用于确定处理块的预测模式的模式决策模块。
在图7的示例中,视频编码器(703)包括如图7的示例布置中所示的耦接在一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、通用控制器(721)和熵编码器(725)。
帧间编码器(730)被配置成:接收当前块(例如,处理块)的样本;将所述块与参考图片中的一个或更多个参考块(例如,按显示顺序的先前图片中的块和随后图片中的块)进行比较;生成帧间预测信息(例如,运动矢量、合并模式信息、根据帧间编码技术的冗余信息的描述);以及基于帧间预测信息使用任何合适的技术来计算帧间预测结果(例如,所预测的块)。在一些示例中,参考图片是基于编码视频信息使用嵌入在图6的示例编码器620中的解码单元633(被示出为图7的残差解码器728,如下面进一步详细描述的)来解码的解码参考图片。
帧内编码器(722)被配置成:接收当前块(例如,处理块)的样本;将所述块与同一图片中的已经编码的块进行比较;以及在变换之后生成量化系数;以及在一些情况下还生成帧内预测信息(例如,根据一个或更多个帧内编码技术的帧内预测方向信息)。帧内编码器(722)可以基于帧内预测信息和同一图片中的参考块来计算帧内预测结果(例如,所预测的块)。
通用控制器(721)可以被配置成确定通用控制数据,并且基于通用控制数据来控制视频编码器(703)的其他部件。在示例中,通用控制器(721)确定块的预测模式,并基于预测模式向开关(726)提供控制信号。例如,在预测模式是帧内模式的情况下,通用控制器(721)控制开关(726)选择帧内模式结果以供残差计算器(723)使用,并且控制熵编码器(725)选择帧内预测信息并将该帧内预测信息包括在码流中;以及在块的预测模式是帧间模式的情况下,通用控制器(721)控制开关(726)选择帧间预测结果以供残差计算器(723)使用,并且控制熵编码器(725)选择帧间预测信息并将该帧间预测信息包括在码流中。
残差计算器(723)可以被配置成计算所接收的块与选自帧内编码器(722)或帧间编码器(730)的块的预测结果之间的差(残差数据)。残差编码器(724)可以被配置成对残差数据进行编码以生成变换系数。例如,残差编码器(724)可以被配置成将残差数据从空间域转换到频域以生成变换系数。然后,变换系数经受量化处理以获得经量化的变换系数。在各种示例实施方式中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)被配置成执行逆变换并生成已解码残差数据。已解码残差数据可以被帧内编码器(722)和帧间编码器(730)适当地使用。例如,帧间编码器(730)可以基于已解码残差数据和帧间预测信息生成已解码块,并且帧内编码器(722)可以基于已解码残差数据和帧内预测信息生成已解码块。适当地处理已解码块以生成已解码图片,并且这些已解码图片可以在存储器电路(未示出)中缓冲并用作参考图片。
熵编码器(725)可以被配置成将码流格式化以包括编码块并执行熵编码。熵编码器(725)被配置成将各种信息包括在码流中。例如,熵编码器(725)可以被配置成将通用控制数据、所选择的预测信息(例如,帧内预测信息或帧间预测信息)、残差信息以及其他合适的信息包括在码流中。当在帧间模式或双向预测模式的合并子模式下对块进行编码时,可能不存在残差信息。
图8示出了根据本公开内容的另一实施方式的示例视频解码器(810)的图。视频解码器(810)被配置成接收作为已编码视频序列的一部分的已编码图片,并且对已编码图片进行解码以生成重建的图片。在示例中,可以使用视频解码器(810)代替图4的示例中的视频解码器(410)。
在图8的示例中,视频解码器(810)包括如图8的示例布置中所示的耦接在一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重建模块(874)和帧内解码器(872)。
熵解码器(871)可以被配置成根据已编码图片重建某些符号,这些符号表示构成该已编码图片的语法元素。这样的符号可以包括:例如对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、合并子模式或者另一子模式)、可以标识由帧内解码器(872)或帧间解码器(880)使用以进行预测的元数据或某些样本的预测信息(例如,帧内预测信息或帧间预测信息)、呈例如经量化的变换系数的形式的残差信息等。在示例中,当预测模式是帧间模式或双向预测模式时,帧间预测信息被提供给帧间解码器(880);以及当预测类型是帧内预测类型时,帧内预测信息被提供给帧内解码器(872)。残差信息可以经受逆量化并且被提供给残差解码器(873)。
帧间解码器(880)可以被配置成接收帧间预测信息,并基于帧间预测信息生成帧间预测结果。
帧内解码器(872)可以被配置成接收帧内预测信息,并基于帧内预测信息生成预测结果。
残差解码器(873)可以被配置成执行逆量化以提取去量化的变换系数,并且处理该去量化的变换系数以将残差从频域转换到空间域。残差解码器(873)还可以利用某些控制信息(以包括量化器参数(Quantizer Parameter,QP)),所述某些控制信息可以由熵解码器(871)提供(由于这可能仅是低数据量控制信息,因此未描绘数据路径)。
重建模块(874)可以被配置成在空间域中将由残差解码器(873)输出的残差与预测结果(视情况而定,由帧间预测模块或帧内预测模块输出)进行组合以形成重建的块,所述重建的块形成重建的图片的一部分,所述重建的图片是重建的视频的一部分。应当注意,也可以执行其他合适的操作例如去块操作等来改善视觉质量。
应当注意,可以使用任何合适的技术来实现视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)。在一些示例实施方式中,可以使用一个或更多个集成电路来实现视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)。在另一实施方式中,可以使用执行软件指令的一个或更多个处理器来实现视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)。
转向用于编码和解码的块分割,一般分割可以从基本块开始,并且可以遵循预定义的规则集、特定模式、分割树或任何分割结构或方案。分割可以是分层的和递归的。在遵循以下描述的示例分割过程或其他过程的任一个或其组合对基本块进行划分或分割之后,可以获得分割或编码块的最终集。这些分割中的每一个可以处于分割层级中的各种分割层级中的一个,并且可以具有各种形状。分割中的每一个可以被称为编码块(CB)。对于下面进一步描述的各种示例分割实现方式,每个产生的CB可以具有任何允许的大小和分割层级。这样的分割被称为编码块,因为它们可以形成下述单元,针对这些单元可以做出一些基本编码/解码决策,并且可以优化、确定编码/解码参数并且将编码/解码参数用信号通知在编码视频码流中。最终分割中的最高或最深层级表示编码块分割树结构的深度。编码块可以是亮度编码块或色度编码块。每种颜色的CB树结构可以被称为编码块树(coding blocktree,CBT)。
所有颜色通道的编码块可以统称为编码单元(coding unit,CU)。所有颜色通道的分层结构可以统称为编码树单元(CTU)。CTU中各种颜色通道的分割模式或结构可以相同或者可以不同。
在一些实现方式中,用于亮度通道和色度通道的分割树方案或结构可能不需要相同。换言之,亮度通道和色度通道可以具有单独的编码树结构或模式。此外,亮度通道和色度通道是使用相同的还是不同的编码分割树结构以及要使用的实际编码分割树结构可以取决于正在被编码的切片是P切片、B切片还是I切片。例如,对于I切片,色度通道和亮度通道可以具有单独的编码分割树结构或编码分割树结构模式,而对于P切片或B切片,亮度通道和色度通道可以共享相同的编码分割树方案。当应用单独的编码分割树结构或模式时,亮度通道可以由一个编码分割树结构分割成CB,而色度通道可以由另一编码分割树结构分割成色度CB。
在一些示例实现方式中,可以将预确定的分割模式应用于基本块。如图9所示,示例4路分割树可以从第一预定义层级(例如,64×64块层级或其他大小作为基本块大小)开始,并且基本块可以被分层地向下分割到预定义最低层级(例如,4×4层级)。例如,基本块可以经受由902、904、906和908指示的四个预定义分割选项或模式,其中被指定为R的分割被允许用于递归分割,因为图9中所指示的相同的分割选项可以以较低规模重复,直到最低层级(例如,4×4层级)。在一些实现方式中,可以对图9的分割方案应用附加限制。在图9的实现方式中,可以允许矩形分割(例如,1:2/2:1矩形分割),但是不允许这些矩形分割是递归的,而允许正方形分割是递归的。如果需要,按照图9以递归的方式进行的分割生成编码块的最终集。可以进一步限定编码树深度以指示自根节点或根块的拆分深度。例如,根节点或根块(例如,64×64块)的编码树深度可以被设置为0,并且在根块按照图9被进一步拆分一次之后,编码树深度增加1。对于上述方案,从64×64基本块到4×4的最小分割的最大或最深层级将是4(从层级0开始)。这样的分割方案可以应用于一个或更多个颜色通道。可以按照图9的方案独立地分割每个颜色通道(例如,可以在每个分层层级处针对每个颜色通道独立地确定预定义模式之中的分割模式或选项)。可替选地,两个或更多个颜色通道可以共享图9的相同分层模式树(例如,可以在每个分层层级处针对两个或更多个颜色通道选择预定义模式之中的相同的分割模式或选项)。
图10示出了允许递归分割以形成分割树的另一示例预定义分割模式。如图10所示,可以预定义示例10路分割结构或模式。根块可以在预定义层级(例如,从128×128层级或64×64层级的基本块)开始。图10的示例分割结构包括各种2:1/1:2和4:1/1:4矩形分割。图10的第二行中被指示为1002、1004、1006和1008的具有3个子分割的分割类型可以被称为“T型”分割。“T型”分割1002、1004、1006和1008可以被称为左T型、顶T型、右T型和底T型。在一些示例实现方式中,图10的矩形分割都不允许被进一步细分。还可以定义编码树深度以指示从根节点或根块开始的拆分深度。例如,根节点或根块(例如,128×128块)的编码树深度可以被设置为0,并且在根块按照图10被进一步拆分一次之后,编码树深度增加1。在一些实现方式中,只有1010中的全正方形分割可以被允许按照图10的模式递归分割到分割树的下一层级。换言之,对于T型模式1002、1004、1006和1008内的正方形分割,可能不允许递归分割。如果需要,按照图10以递归的方式进行的分割过程生成编码块的最终集。这样的方案可以应用于颜色通道中的一个或更多个。在一些实现方式中,更多的灵活性可以被添加到对低于8×8层级的分割的使用。例如,在某些情况下可以使用2×2色度帧间预测。
在用于编码块分割的一些其他示例实现方式中,四叉树结构可以用于将基本块或中间块拆分成四叉树分割。这样的四叉树拆分可以被分层地且递归地应用于任何正方形分割。基本块或中间块或分割是否进一步四叉树拆分可以适应于基本块或中间块/分割的各种局部特性。可以进一步调整在图片边界处的四叉树分割。例如,隐式四叉树拆分可以在图片边界处被执行,使得块将保持四叉树拆分,直到大小适合图片边界。
在一些其他示例实现方式中,可以使用来自基本块的分层二元分割。对于这样的方案,基本块或中间层级块可以被分割为两个分割区。二元分割可以是水平的或垂直的。例如,水平二元分割可以将基本块或中间块拆分成相等的右分割区和左分割区。同样,垂直二元分割可以将基本块或中间块拆分成相等的上分割区和下分割区。这样的二元分割可以是分层的和递归的。可以在基本块或中间块中的每一个处决定二元分割方案是否应当继续,并且如果方案确实进一步继续,则决定应当使用水平二元分割还是垂直二元分割。在一些实现方式中,可以在预定义的最低分割大小(在一个维度或两个维度中)处停止进一步的分割。可替选地,一旦达到距基本块的预定义的分割层级或深度,可以停止进一步的分割。在一些实现方式中,分割的纵横比可能受到限制。例如,分割的纵横比可以不小于1:4(或大于4:1)。这样,具有4:1的垂直与水平纵横比的垂直条形分割可以仅进一步被垂直地二元分割为各自具有2:1的垂直与水平纵横比的上分割区和下分割区。
在又一些其他示例中,三元分割方案可以用于对基本块或任何中间块进行分割,如图13所示。三元模式可以如图13的1302所示实现为垂直的,或者如图13的1304所示实现为水平的。虽然图13中的示例拆分比垂直地或水平地被示为1:2:1,但是也可以预定义其他比率。在一些实现方式中,可以预定义两个或更多个不同的比率。这样的三元分割方案可以用于补充四叉树或二元分割结构,因为这样的三叉树分割能够捕获位于一个连续的分割区中的块中心的对象,而四叉树和二叉树总是沿着块中心拆分,并因此将对象拆分成单独的分割区。在一些实现方式中,示例三叉树的分割区的宽度和高度总是2的幂以避免附加变换。
可以在不同的分割层级处以任何方式对上述分割方案进行组合。作为一个示例,上述四叉树和二元分割方案可以被组合以将基本块分割成四叉树-二叉树(quadtree-binary-tree,QTBT)结构。在这样的方案中,基本块或中间块/分割可以是四叉树拆分或二元拆分,如果指定,则服从预定义的条件集。在图14中示出特定的示例。在图14的示例中,基本块首先被四叉树拆分成如1402、1404、1406和1408所示的四个分割区。此后,产生的分割区中的每一个被四叉树分割成四个进一步的分割区(例如1408)或者在下一层级处被二元拆分成两个进一步的分割区(例如,水平或垂直,例如1402或1406,两者都是对称的)或者不被拆分(例如1404)。对于正方形分割,可以递归地允许二元或四叉树拆分,如1410的整体示例分割模式和1420中的对应树结构/表示所示,其中实线表示四叉树拆分,并且虚线表示二元拆分。可以针对每个二元拆分节点(非叶二元分割)使用标志以指示二元拆分是水平还是垂直的。例如,如1420所示,与1410的分割结构一致,标志“0”可以表示水平二元拆分,并且标志“1”可以表示垂直二元拆分。对于四叉树拆分分割区,不需要指示拆分类型,因为四叉树拆分总是水平地和垂直地拆分块或分割区以产生具有相等大小的4个子块/分割区。在一些实现方式中,标志“1”可以表示水平二元拆分,并且标志“0”可以表示垂直二元拆分。
在QTBT的一些示例实现方式中,四叉树和二元拆分规则集可以由以下预定义参数和与其相关联的对应函数表示:
-CTU大小:四叉树的根节点大小(基本块的大小)
-MinQTSize:允许的最小四叉树叶节点大小
-MaxBTSize:允许的最大二叉树根节点大小
-MaxBTDepth:允许的最大二叉树深度
-MinBTSize:允许的最小二叉树叶节点大小在QTBT分割结构的一些示例实现方式中,CTU大小可以被设置为128×128亮度样本,其具有两个对应的64×64色度样本块(当考虑和使用示例色度子取样时),MinQTSize可以被设置为16×16,MaxBTSize可以被设置为64×64,MinBTSize(对于宽度和高度两者)可以被设置为4×4,并且MaxBTDepth可以被设置为4。四叉树分割可以首先应用于CTU以生成四叉树叶节点。四叉树叶节点可以具有从其允许的最小大小16×16(即,MinQTSize)至128×128(即,CTU大小)的大小。如果节点是128×128,则由于大小超过MaxBTSize(即,64×64),因此不会首先按二叉树拆分。否则,不超过MaxBTSize的节点可以按二叉树进行分割。在图14的示例中,基本块是128×128。根据预定义的规则集,基本块只能是四叉树拆分。基本块的分割深度为0。所得到的四个分割中的每一个是64×64,不超过MaxBTSize,可以在层级1处进一步进行四叉树或二叉树拆分。该过程继续。当二叉树深度达到MaxBTDepth(即,4)时,可以不考虑进一步的拆分。当二叉树节点的宽度等于MinBTSize(即,4)时,可以不考虑进一步的水平拆分。类似地,当二叉树节点的高度等于MinBTSize时,不考虑进一步的垂直拆分。
在一些示例实现方式中,上面的QTBT方案可以被配置成支持亮度和色度具有相同QTBT结构或单独QTBT结构的灵活性。例如,对于P切片和B切片,一个CTU中的亮度CTB和色度CTB可以共享相同的QTBT结构。然而,对于I切片,可以通过QTBT结构将亮度CTB分割为CB,而可以通过另一QTBT结构将色度CTB分割为色度CB。这意味着CU可以用于指代I切片中的不同颜色通道,例如,I切片可以由亮度分量的编码块或两个色度分量的编码块组成,而P切片或B切片中的CU可以由所有三种颜色分量的编码块组成。
在一些其他实现方式中,可以用上述三元方案补充QTBT方案。这样的实现方式可以被称为多类型树(multi-type-tree,MTT)结构。例如,除了节点的二元拆分之外,还可以选择图13的三元分割模式之一。在一些实现方式中,仅正方形节点可以经受三元拆分。可以使用附加标志来指示三元分割是水平的还是垂直的。
二级树或多级树的设计诸如QTBT实现方式和由三元拆分补充的QTBT实现方式可以主要由复杂度降低来推动。理论上,遍历树的复杂度是TD,其中T表示拆分类型的数目,并且D是树的深度。可以通过使用多种类型(T)同时减少深度(D)来进行折衷。
在一些实现方式中,CB可以被进一步分割。例如,出于在编码过程和解码过程期间进行帧内或帧间预测的目的,CB可以被进一步分割成多个预测块(PB)。换言之,CB可以被进一步分割成不同的子分割,在所述不同的子分割中可以进行单独的预测决策/配置。并行地,出于划定执行视频数据的变换或逆变换的层级的目的,CB可以被进一步分割成多个变换块(TB)。将CB分割为PB和TB的方案可以相同或者可以不相同。例如,每个分割方案可以基于例如视频数据的各种特性使用其自己的过程被执行。在一些示例实现方式中,PB分割方案和TB分割方案可以是独立的。在一些其他示例实现方式中,PB分割方案和TB分割方案与边界可以是相关的。在一些实现方式中,例如,TB可以在PB分割之后被分割,并且特别地,每个PB在按照编码块的分割确定之后,然后可以被进一步分割成一个或更多个TB。例如,在一些实现方式中,PB可以被拆分成一个、两个、四个或其他数目的TB。
在一些实现方式中,为了将基本块分割成编码块并进一步分割成预测块和/或变换块,可以对亮度通道和色度通道进行不同地处理。例如,在一些实现方式中,将编码块分割成预测块和/或变换块对于亮度通道来说可能是允许的,而这样的将编码块分割成预测块和/或变换块对于色度通道来说可能是不允许的。在这样的实现方式中,亮度块的变换和/或预测因此可以仅在编码块层级执行。对于另一示例,亮度通道和色度通道的最小变换块大小可以不同,例如,与色度通道相比,亮度通道的编码块可以被允许分割成较小的变换块和/或预测块。对于又一示例,将编码块分割成变换块和/或预测块的最大深度在亮度通道与色度通道之间可以不同,例如,与色度通道相比,亮度通道的编码块可以被允许分割成较深的变换块和/或预测块。对于具体示例,亮度编码块可以被分割成多种大小的变换块,这些变换块可以由向下多达2个层级的递归分割来表示,并且可以允许例如正方形、2:1/1:2和4:1/1:4的变换块形状以及从4×4到64×64的变换块大小。然而,对于色度块,可能仅允许针对亮度块指定的最大可能变换块。
在将编码块分割成PB的一些示例实现方式中,PB分割的深度、形状和/或其他特性可能取决于PB是被帧内编码还是被帧间编码。
将编码块(或预测块)分割成变换块可以以各种示例方案实现,所述各种示例方案包括但不限于递归地或非递归地进行四叉树拆分和预定义模式拆分,并另外考虑了编码块或预测块的边界处的变换块。通常,所得的变换块可以处于不同的拆分层级,可以不具有相同的大小,并且可以不需要为正方形形状(例如,所得的变换块可以是具有某些允许的大小和纵横比的矩形)。下面结合图15、图16和图17进一步详细地描述其他示例。
然而,在一些其他实现方式中,通过上述任何分割方案获得的CB可以用作预测和/或变换的基本或最小编码块。换言之,出于执行帧间预测/帧内预测目的和/或出于变换目的,不执行进一步的拆分。例如,从上述QTBT方案获得的CB可以直接用作用于执行预测的单元。具体地,这样的QTBT结构去除了多个分割类型的概念,即,它去除了CU、PU和TU的分离,并支持如上所述的CU/CB分割形状的更大灵活性。在这样的QTBT块结构中,CU/CB可以具有正方形或矩形形状。这样的QTBT的叶节点被用作预测和变换处理的单元,而无需任何进一步的分割。这意味着CU、PU和TU在这样的示例QTBT编码块结构中具有相同的块大小。
上述各种CB分割方案以及将CB进一步分割为PB和/或TB(包括不进行PB/TB分割)可以以任何方式进行组合。提供以下特定实现方式作为非限制性示例。
下文描述了编码块和变换块分割的具体示例实现方式。在这样的示例实现方式中,可以使用上述递归四叉树拆分或预定义拆分模式(例如图9和图10中的那些)将基本块拆分成编码块。在每个层级处,是否应当继续对特定分割区进行进一步的四叉树拆分可以由本地视频数据特性来确定。所得到的CB可以处于不同的四叉树拆分层级,并且可以具有不同的大小。可以在CB层级(或CU层级,对于所有三色通道)处做出关于是使用帧间图片(时间)预测还是帧内图片(空间)预测来对图片区域进行编码的决定。根据预定义的PB拆分类型可以将每个CB进一步拆分成一个、两个、四个或其他数目的PB。在一个PB内,可以应用相同的预测过程,并且可以基于PB将相关信息传输到解码器。在通过应用基于PB拆分类型的预测过程获得残差块之后,可以根据与用于CB的编码树类似的另一四叉树结构将CB分割成TB。在该特定实现方式中,CB或TB可以是正方形形状,但不必限于正方形形状。此外,在该特定示例中,对于帧间预测,PB可以为正方形或矩形形状,但对于帧内预测,PB可以仅为正方形。编码块可以拆分成例如四个正方形形状的TB。每个TB可以被进一步递归地(使用四叉树拆分)拆分成较小的TB,所述较小的TB被称为残差四叉树(Residual Quadtree,RQT)。
下文进一步描述了用于将基本块分割成CB、PB和/或TB的另一示例实现方式。例如,不是使用多分割单元类型诸如图9或图10所示的多分割单元类型,可以利用使用二元和三元拆分分割结构(例如,如上所述的QTBT或具有三元拆分的QTBT)的嵌套多类型树的四叉树。CB、PB和TB的分离(即,将CB分割成PB和/或TB,以及将PB分割成TB)可以被放弃,除非当对于其大小对于最大变换长度来说太大的CB需要时,其中这样的CB可能需要进一步拆分。该示例分割方案可以被设计成支持CB分割形状的更大灵活性,使得预测和变换两者都可以在CB层级上执行,而无需进一步分割。在这样的编码树结构中,CB可以具有正方形形状或矩形形状。具体地,编码树块(CTB)可以首先由四叉树结构分割。然后,四叉树叶节点可以进一步被嵌套多类型树结构分割。使用二元或三元拆分的嵌套多类型树结构的示例在图11中示出。具体地,图11的示例多类型树结构包括四种拆分类型,所述四种拆分类型被称为垂直二元拆分(SPLIT_BT_VER)(1102)、水平二元拆分(SPLIT_BT_HOR)(1104)、垂直三元拆分(SPLIT_TT_VER)(1106)和水平三元拆分(SPLIT_TT_HOR)(1108)。CB然后对应于多类型树的叶。在该示例实现方式中,除非CB对于最大变换长度而言太大,否则该分割用于预测和变换处理二者而无需任何进一步分割。这意味着,在大多数情况下,CB、PB和TB在具有嵌套的多类型树编码块结构的四叉树中具有相同的块大小。在最大支持变换长度小于CB的颜色分量的宽度或高度时,出现例外。在一些实现方式中,除了二元或三元拆分之外,图11的嵌套模式还可以包括四叉树拆分。
图12示出了一个基本块的块分割的具有嵌套的多类型树编码块结构(包括四叉树、二元和三元拆分选项)的四叉树的一个具体示例。更详细地,图12示出了基本块1200被四叉树拆分成四个正方形分割1202、1204、1206和1208。针对四叉树拆分分割中的每一个做出进一步使用图11的多类型树结构和四叉树进行进一步拆分的决定。在图12的示例中,分割1204没有被进一步拆分。分割1202和1208各自采用另一四叉树拆分。对于分割1202,第二层级四叉树拆分左上、右上、左下和右下分割分别采用四叉树的第三层级拆分、图11的水平二元拆分1104、无拆分以及图11的水平三元拆分1108。分割1208采用另一四叉树拆分,并且第二层级四叉树拆分左上、右上、左下和右下分割分别采用图11的垂直三元拆分1106的第三层级拆分、无拆分、无拆分以及图11的水平二元拆分1104。1208的第三层级左上分割的子分割中的两个分别根据图11的水平二元拆分1104和水平三元拆分1108被进一步拆分。分割1206采用遵循图11的垂直二元拆分1102的第二层级拆分模式而分成两个分割,这两个分割根据图11的水平三元拆分1108和垂直二元拆分1102在第三层级上被进一步拆分。根据图11的水平二元拆分1104对它们中的一个进一步应用第四层级拆分。
对于上述具体示例,最大亮度变换大小可以为64×64,并且最大支持色度变换大小可以不同于亮度,例如可以为32×32。即使上面在图12中的示例CB通常不被进一步拆分成更小的PB和/或TB,在亮度编码块或色度编码块的宽度或高度大于最大变换宽度或高度时,可以将亮度编码块或色度编码块在水平方向和/或垂直方向上自动拆分以满足该方向上的变换大小限制。
在上述将基本块分割为CB的具体示例中,并且如上所述,编码树方案可以支持亮度和色度具有单独的块树结构的能力。例如,对于P切片和B切片,一个CTU中的亮度CTB和色度CTB可以共享相同的编码树结构。例如,对于I切片,亮度和色度可以具有单独的编码块树结构。在应用单独的块树结构时,可以通过一个编码树结构将亮度CTB分割成亮度CB,并且通过另一编码树结构将色度CTB分割成色度CB。这意味着I切片中的CU可以包括亮度分量的编码块或两个色度分量的编码块,并且除非视频是单色的,否则P切片或B切片中的CU总是包括所有三种颜色分量的编码块。
当编码块被进一步分割为多个变换块时,其中的变换块可以按照各种顺序或扫描方式在码流中排序。下文进一步详细描述了将编码块或预测块分割为变换块的示例实现方式以及变换块的编码顺序。在一些示例实现方式中,如上所述,变换分割可以支持多种形状的变换块,例如1:1(正方形)、1:2/2:1和1:4/4:1,其中变换块大小的范围从例如4×4至64×64。在一些实现方式中,如果编码块小于或等于64×64,那么变换块分割可以仅应用于亮度分量,使得对于色度块,变换块大小与编码块大小相同。另外,如果编码块宽度或高度大于64,则亮度编码块和色度编码块二者可以分别被隐式地拆分成多个min(W,64)×min(H,64)和min(W,32)×min(H,32)变换块。
在变换块分割的一些示例实现方式中,对于帧内编码块和帧间编码块二者,编码块可以被进一步分割成多个变换块,其中分割深度达到预定义的层级数(例如,2层级)。变换块分割深度和大小可以是相关的。对于一些示例实现方式,下面在表1中示出了从当前深度的变换大小到下一深度的变换大小的映射。
表1:变换分割大小设置
/>
基于表1的示例映射,对于1:1正方形块,下一层级变换拆分可以创建四个1:1正方形子变换块。变换分割可以在例如4×4处停止。因此,当前深度的4×4的变换大小对应于下一深度的4×4的相同大小。在表1的示例中,对于1:2/2:1非正方形块,下一层级变换拆分可以创建两个1:1正方形子变换块,而对于1:4/4:1非正方形块,下一层级变换拆分可以创建两个1:2/2:1子变换块。
在一些示例实现方式中,对于帧内编码块的亮度分量,可以针对变换块分割应用附加限制。例如,对于变换分割的每一层级,所有子变换块可以被限制为具有相同的大小。例如,对于32×16编码块,层级1变换拆分创建两个16×16+子变换块,层级2变换拆分创建八个8×8子变换块。换言之,第二层级拆分必须应用于所有第一层级子块,以保持变换单元大小相等。图15中示出了按照表1进行的帧内编码正方形块的变换块分割的示例、以及由箭头指示的编码顺序。具体地,1502示出了正方形编码块。在1504中示出了根据表1分成4个大小相等的变换块的第一层级拆分、以及由箭头指示的编码顺序。在1506中示出了根据表1将所有第一层级相等大小的块分成16个相等大小的变换块的第二层级拆分、以及由箭头指示的编码顺序。
在一些示例实现方式中,上述针对帧内编码的限制可能不适用于帧间编码块的亮度分量。例如,在第一层级的变换拆分之后,子变换块中的任何一个可以以一个以上的层级被进一步独立地拆分。因此,所得到的变换块可以具有相同的大小,或者可以不具有相同的大小。图16中示出了帧间编码块到变换块的示例拆分以及其编码顺序。在图16的示例中,根据表1以两个层级将帧间编码块1602拆分成变换块。在第一层级处,帧间编码块被拆分成四个大小相等的变换块。然后,四个变换块中的仅一个(不是全部四个变换块)被进一步拆分成四个子变换块,得到由1604所示的具有两种不同大小的总共7个变换块。这7个变换块的示例编码顺序由图16的1604中的箭头示出。
在一些示例实现方式中,针对变换块的一些附加限制可以适用于色度分量。例如,对于色度分量,变换块大小可以与编码块大小一样大,但是不小于预定义大小例如8×8。
在一些其他示例实现方式中,对于其宽度(W)或高度(H)大于64的编码块,亮度编码块和色度编码块二者可以分别被隐式地拆分成多个min(W,64)×min(H,64)和min(W,32)×min(H,32)变换单元。在此,在本公开内容中,“min(a,b)”可以返回a与b之间的较小值。
图17进一步示出了用于将编码块或预测块分割成变换块的另一替选示例方案。如图17所示,不是使用递归变换分割,可以根据编码块的变换类型将预定义的一组分割类型应用于编码块。在图17中所示的特定示例中,可以应用6种示例分割类型中的一种将编码块拆分成各种数目的变换块。这样的生成变换块分割的方案可以应用于编码块或预测块。
更详细地,图17的分割方案为任何给定变换类型(变换类型是指例如初级变换例如ADST和其他的类型)提供了多达6种示例分割类型。在该方案中,可以基于例如速率失真成本为每一编码块或预测块指定变换分割类型。在示例中,指定给编码块或预测块的变换分割类型可以基于编码块或预测块的变换类型来确定。特定变换分割类型可以对应于变换块拆分大小和模式,如图17中所说明的6种变换分割类型所示。可以预先定义各种变换类型与各种变换分割类型之间的对应关系。以下示出了示例,其中大写的标签指示可以基于速率失真成本而指定给编码块或预测块的变换分割类型:
·PARTITION_NONE:指定与块大小相等的变换大小。
·PARTITION_SPLIT:指定为块大小的1/2宽度和块大小的1/2高度的变换大小。
·PARTITION_HORZ:指定具有与块大小相同的宽度和块大小的1/2高度的变换大小。
·PARTITION_VERT:指定具有块大小的1/2宽度和与块大小相同的高度的变换大小。
·PARTITION_HORZ4:指定具有与块大小相同的宽度和块大小的1/4高度的变换大小。
·PARTITION_VERT4:指定具有块大小的1/4宽度和与块大小相同的高度的变换大小。
在上述示例中,图17所示的变换分割类型都包含用于分割的变换块的均匀变换大小。这仅是示例,而不是限制。在一些其他实现方式中,混合的变换块大小可以用于特定分割类型(或模式)的分割的变换块。
然后,从上述分割方案中的任一个获得的像素格式的PB(或CB,当未进一步分割为预测块时,也称为PB)可以成为经由帧内或帧间预测经受编码的各个块。对于当前PB的帧间预测,可以从与对应运动矢量相关联的一个或更多个参考帧中的重建块生成预测值块。对于当前PB的帧内预测,可以替代地基于当前PB的邻近视频样本的重建版本来生成预测值块的像素值。在帧间预测或帧内预测情况下,在编码过程期间获得当前PB与预测值块之间的残差并对其进行编码。然后,残差块可以在编码过程期间按原样被变换,或者以较小的TB单位被变换到频率空间中。然后可以对变换系数进行量化和熵编码。编码变换系数然后可以被包括在已编码码流中。在解码器或编码器中对当前块的重建将相应地基于对残差进行解码并将解码的残差与重建的预测值块进行组合。对于编码器中的重建过程,如上所述,在不必经过熵编码和解码的情况下定向重建当前块的量化残差。
对于帧内预测,可以在特定实现方式中支持各种示例模式。例如,基于邻近样本的帧内预测可以是方向性的或非方向性的。上面关于图1A和图1B描述了方向性帧内预测模式的示例。例如,当前PB的每个像素可以由沿着预测方向在当前PB的紧邻顶行或紧邻左行中的重建样本来预测。在一些其他实现方式中,方向性帧内预测模式还可以涉及当前PB的紧邻顶部样本和紧邻左侧样本之外的邻近样本。对于特定示例,来自沿着特定方向的当前块的第二或第三顶部或左侧邻近线中的一条或更多条的样本可以用于预测当前编码块的像素中的每一个并形成对应的帧内预测值块。
考虑到梯度、样本的空间校正以及亮度和/或色度平面的相干性,可以以各种示例形式实现非方向性帧内预测。例如,非方向性帧内预测模式可以包括但不限于DC、Paeth、平滑(Smooth)、平滑垂直(Smooth Vertical)、平滑水平(Smooth Horizontal)、基于递归的滤波(模式0至4)以及从亮度预测色度(Chroma from Luma,CfL)模式。在一些示例实现方式中,非方向性帧内预测还可以包括可以针对某些类型的图像被特别调用并特别有效的模式。例如,对于屏幕内容(而不是一般运动内容),可以调用帧内块复制(Intra Block Copy,IBC)模式和调色板模式。BC模式特别利用了可以针对当前帧内的重复模式(例如文本模式)可以实现的编码增益。例如,BC模式可以使用与基于运动矢量的帧间预测类似的机制来执行帧内预测。另一方面,调色板帧内预测模式(为简单起见,可替选地称为“调色板模式”)利用了由于屏幕内容在一些编码块中的相对小的像素值可以实现的编码增益。
因此,特别地,调色板帧内预测模式可以被调用以用于使用有限数目的像素值(或颜色值)针对当前PB生成预测值块。例如,PB中的每个像素可以由调色板中的条目集中的一个条目来预测。调色板可以包括有限数目的像素值。这些值可以在调色板中被索引,并且PB中的每个像素可以参考调色板中的索引作为对像素的预测。由于调色板中的值或条目的数目或调色板的大小是有限的,因此索引将由小的位数表示。因此,调色板模式中对每个像素的预测需要比全范围像素值更小的位数来进行编码。
例如,调色板的大小可以限制为8。因此,可以以3位对调色板中的索引进行编码。因此,当前PB的每个像素的预测将采用3位而不是全色深度(例如,8位)。调色板帧内预测模式的以位为单位的开销或成本包括预测值块和在码流中传输调色板时的开销两者。只要将调色板大小限制为特定大小,对于较大的块大小,成本就会降低。因此,尽管调色板模式可以为较大块大小的较大PB提供显著的编码增益,但对于小的块大小的PB,其来自编码效率观点的益处可能减小。这样,在一些示例实现方式中,对于大小小于阈值块大小的PB,可能不允许调色板模式。例如,可以仅针对块大小等于或大于8×8的阈值块大小的PB允许调色板模式。
在调色板模式的一些示例实现方式中,在调色板预测模式下进行帧内编码的PB可能不被允许进一步划分成更小的变换块。换言之,可以仅对变换块(其也是预测块,因为它们不被进一步划分成变换块)执行调色板模式下的帧内预测。这样,在一些示例实现方式中也可以指定PB大小的上限,以避免大的变换块。例如,可以仅在编码块的宽度和高度两者小于或等于阈值(例如,64)时应用调色板模式。
调色板模式可以分别应用于编码块的亮度和色度。在一些示例实现方式中,是否应用调色板模式可以在亮度和色度之间独立确定。因此,对于由亮度预测块和色度预测块两者组成的预测单元,可以针对亮度预测块和色度预测块独立地做出是否应用调色板模式的决策。例如,对于亮度通道,调色板中的每个条目可以是标量值,而对于色度通道,调色板中的每个条目可以是二维元组。在一些其他示例实现方式中,是否对亮度平面和色度平面应用调色板模式是有关联的,因为它们全部在调色板模式下被预测或者它们中没有一个被预测。在调色板模式下使用的调色板可以被替选地称为颜色调色板。术语“颜色”可以表示色度之一或亮度。
如上所述,当块可以由少量独特颜色(或颜色值)近似使得可以构造小尺寸的颜色调色板来提供有效预测时,颜色调色板预测器的使用是有益的。如上所述或暗示的,在用于预测当前帧内编码块的调色板模式下,如由编码器生成的码流结构可以包括表示颜色调色板和结构映射的阵列,其形式例如为填充有颜色调色板中的颜色的索引的2D阵列作为当前编码块的预测块。在一些实现方式中,颜色调色板的大小可以被限制在2至8之间(对应于1位至3位的颜色索引)。编码器可以探索调色板的不同大小和调色板中的不同颜色值,以优化所产生的速率失真成本并最大化编码增益。
在一些示例实现方式中,在当前PB要在DC预测模式下进行帧内编码时,这样的调色板模式可用于对当前PB进行编码。换言之,从信号通知的角度来看,调色板帧内预测模式可以被认为是属于DC帧内预测模式的子模式。这样,当前块是否有可能在调色板模式下被预测可以首先由DC帧内预测的码流语法元素(例如,DC帧内预测标志)来指示。“0”(可替选地,“1”)的DC帧内预测标志可以指示当前编码块既不是DC预测的也不是基于颜色调色板预测的,而“1”(可替选地,“0”)的DC帧内预测标志可以指示当前编码块是DC预测的或基于颜色调色板预测的。在后一种情况下,可以在码流中包括附加的语法元素或标志,以指示当前块是DC预测的还是由颜色调色板预测的。在后一种情况下可能不存在这样的附加语法元素或标志。在一些其他替选实现方式中,可以使用独立于DC预测模式标志和/或与DC预测模式标志并行的标志来用信号通知当前块是否在调色板模式下被预测。
当在调色板模式下预测当前块时,可以明确地包括或以其他方式从码流导出与正在使用的颜色调色板相关联的附加信息(例如,调色板大小和调色板条目)。在一些情况下,用于当前编码块的颜色调色板可以是自包含的并且独立于码流中的其他先前编码块。在一些其他情况下,用于当前编码块的调色板可以取决于其他先前编码块,特别是在当前编码块与在调色板帧内编码模式下预测的先前编码块高度相关的情况下,因为当前编码块和这些邻近块可以具有相同的颜色像素颜色值分布并因此可以在它们的颜色调色板中共享一个或更多个条目。在这样的情况下,当前编码块的颜色调色板的部分或全部可以包括邻近块调色板的条目中的调色板条目。邻近块调色板可以被称为参考调色板。邻近块调色板也可以被称为高速缓存/高速缓存调色板,或者被称为单个集体高速缓存/高速缓存调色板,因为它们可以在编码和解码过程期间可用并被维护在高速缓存中以用于重建当前编码块。基于高速缓存调色板的当前编码块的颜色调色板的部分或全部可以被称为当前颜色调色板的继承部分。因此,颜色调色板的这个继承部分的编码可以基于邻近调色板。
当基于邻近调色板对颜色调色板的继承部分进行编码时,可以实现编码增益。可以在码流中明确地用信号通知当前编码块的除继承部分之外的调色板条目的其余部分(如果有的话)。可以导出或明确地用信号通知当前颜色调色板的继承部分的大小(即,当前颜色调色板的继承部分中的条目的数目)。
因此,在一些示例实现方式中,可以用信号通知几个语法元素,以在启用调色板模式时在码流中提供上面的颜色调色板信息,包括但不限于(1)被称为has_palette_y的第一标志,其指示调色板模式是否要被应用于当前编码块(如上所述,例如,在DC模式标志用信号通知并被应用之后);(2)被称为palette_size_y_minus_2的语法元素,其指定调色板大小;以及(3)被称为use_palette_color_cache_y的第二标志,其指示是否从邻近调色板继承至少一些颜色索引或多个索引,其可以在编码或解码过程期间被组织并维护在调色板高速缓存中。如果继承的调色板条目的数目小于用信号通知的调色板大小,则可以明确地用信号通知其余的颜色索引。在一些示例实现方式中,两个色度颜色分量可以共享has_palette_uv和palette_size_uv_minus_2语法元素(这意味着两个色度分量都包括继承的调色板条目或者不包括继承的调色板条目,以及当它们确实使用继承的调色板条目时,继承的调色板条目的数目相同),但可以针对Cb分量和Cr分量分别用信号通知用于预测当前色度块的调色板中的颜色索引。下面示出用于用信号通知三色分量的调色板的这些示例语法。
表2
/>
/>
/>
/>
/>
/>
在上述示例语法表中,调用函数get_palette_cache(),该函数返回调色板高速缓存的大小,并根据邻近块的颜色调色板构造调色板高速缓存。如上所述,调色板高速缓存是指从由邻近块使用的调色板导出或维护的调色板。为了获得调色板高速缓存的大小——其表示邻近颜色调色板的独特条目的数目并与当前编码块的继承调色板条目的部分的大小相关,邻近块的调色板将需要被检索,使得其条目被去重复。因此,该函数可以等效于对来自例如上方块和左侧块的可用调色板颜色进行排序,然后删除任何重复条目。另外,在当前块的调色板条目全部被确定和/或解析之后,它们需要按升序排序并被高速缓存,以便利于在get_palette_cache()中对后面的块执行计算,因为在假设邻近调色板条目按升序放置的情况下进行一些计算。
下面详述示例get_palette_cache()函数。该示例说明了get_palette_cache()函数可以涉及复杂的计算以生成调色板高速缓存,所述调色板高速缓存包括按升序且没有任何重复的所有邻近调色板条目。该过程可以被称为对来自邻近块(例如上方邻近块和左侧邻近块)的调色板条目进行合并。
/>
/>
一旦建立了当前编码块的颜色调色板(包括继承的调色板条目和未在邻近调色板中使用的明确地用信号通知的调色板条目),当前编码块的颜色调色板可以用作用于预测当前编码块的基础。如图18所示,可以例如以对角线扫描顺序用信号通知和编码在调色板模式下预测的编码块中的每个像素的所选择的调色板索引。图18中的各种阴影对应于不同的调色板索引(或调色板值)。扫描可以遵循从左上开始并在右下结束的对角线方向。在沿着编码块的对角线的所有调色板索引被选择和编码之后,扫描移动到下一对角线的右上样本。在一些示例实现方式中,可以首先使用被称为color_index_map_y的单独语法元素来对当前调色板编码块的第一索引进行编码,并且其余索引可以使用例如它们的顶部、左侧和左上邻近索引作为熵编码的上下文被编码。下面示出了用于用信号通知调色板模式预测值块的调色板索引的相关语法。
表3
/>
/>
/>
/>
因此,在上述示例实现方式中,从解码器的角度来看,可能需要调用并执行get_palette_cache()函数或其等效函数,以确定调色板高速缓存的大小。调色板高速缓存的大小可以被称为cacheN,其也可以表示当前编码块的颜色调色板的继承部分的大小。在调色板模式下get_palette_cache()函数的执行可以涉及用于解析和重建调色板高速缓存中邻近块的调色板条目的复杂计算。没有cacheN,当前编码块的调色板模式参数的解析将无法进行。
视频块的解码过程通常涉及几方面。在第一方面中,解码过程必须解析码流以提取各种语法元素数据元素。在第二方面中,解码过程可以提取编码信息,并基于编码信息和从码流中提取的各种语法元素来重建编码视频块。在对以调色板帧内预测模式编码的当前编码块进行解码的过程中,必须首先获得参数cacheN,以继续解析码流以获得当前编码块的颜色调色板的其他参数。
根据上述实现方式,当前编码块的解析不仅需要等待邻近编码块的解析过程,而且还需要等待直到邻近编码块的重建过程的至少一部分完成,因为get_palette_cache()函数涉及邻近编码块的码流解析和重建(因为需要实际确定邻近块的调色板条目并通过标识重复的调色板条目来合并这些条目)。
可能期望的是,在某些情况下并且为了改进解码过程期间的并行处理和当前编码块的重建速度,一旦邻近块被解析,码流中当前编码块的解析过程就开始,而不等待邻近块的重建过程完成(例如,在处理和合并邻近块调色板条目之前)。
出于这样的目的,并且在本公开内容的一些其他示例实现方式中,可以设计调色板模式下的编码和解码方案,使得可以减少或避免除邻近编码块的解析步骤之外的与确定高速缓存调色板的大小cacheN相关联的复杂度。例如,可以在不必执行邻近块的调色板条目的合并处理的情况下确定参数cacheN。这样,一旦邻近编码块被解析,解码器就可以开始从码流中解析与当前编码块的调色板模式相关的信息。因此,可以与邻近编码块的进一步重建并行地执行从码流中对当前编码块的解析。一旦从码流中解析出当前编码块信息,当前编码块的重建可能需要的与邻近编码块相关联的其他信息可以从邻近编码块的并行重建过程中获得。
在一些示例实现方式中,当前编码块的颜色调色板的继承部分的大小cacheN的导出可以基于当前编码块的邻近块的调色板大小,而不是内容(或调色板条目值)。例如,可以使用当前编码块的两个邻近块(诸如紧邻的上方邻近块和左侧邻近块)来导出cacheN参数。顶部邻近块和左侧邻近块的调色板大小可以表示为paletteA(上方)和paletteL(左侧)。这样的调色板大小参数可以在邻近块的解析过程期间获得,或者可以在用于邻近块的码流中明确地用信号通知(并因此可以仅通过码流解析来提取)。然后,在不知道这些邻近块中的两者的调色板条目的情况下,可以在解析当前编码块之前根据paletteA和/或调色板导出cacheN。以这种方式,调色板参数的解析可以开始而不必等待直到邻近块调色板条目被提取、合并和去重复。cacheN、paletteA和paletteL之间的函数关系的示例可以包括但不限于:
Max(paletteA,paletteL)+N,N是整数,并且N的示例值包括但不
限于0、1、2、3、4、5、6、7、8、……;
Min(paletteA,paletteL)+N,N是整数,并且N的示例值包括但不
限于0、1、2、3、4、5、6、7、8、……;
Min(Max(paletteA,paletteL)+N,T),N是整数,并且N的示例值包括但不限于0、1、2、3、4、5、6、7、8……,T是一个块中允许的调色板的给定最大数;或者
Min(Min(paletteA,paletteL)+N,T),N是整数,并且N的示例值包括但不限于0、1、2、3、4、5、6、7、8……,T是一个块中允许的调色板的给定最大数。
表示颜色调色板的最大允许大小的T值可以应用于包括继承部分和非继承部分两者的整个颜色调色板的大小。
在一些其他示例实现方式中,cacheN的值可以被导出为固定大小。固定大小的示例包括但不限于0、1、2、3、4、5、6、7、8、……。可以预确定这样的固定的cacheN。可替选地,可以在码流中用信号通知cacheN的值。例如,cacheN的值可以以高级语法来用信号通知,包括但不限于作为序列参数集(Sequence Parameter Set,SPS)、视频参数集(Video ParameterSet,VPS)、图片参数集(Picture Parameter Set,PPS)、自适应参数集(AdaptationParameter Set,APS)、帧报头、切片报头、图片报头、图块报头或编码树单元(CTU)报头的一部分来用信号通知。
在一些示例实现方式中,cacheN的值可以由一些已编码信息导出,所述一些已编码信息包括但不限于当前编码块或邻近块的块大小、预测模式等。例如,对于较大的当前编码块大小和/或邻近块的较大块大小,可以导出较大的cacheN值(使得用较大的颜色调色板大小仍可以实现改进的编码效率),对于另一示例,如果以帧内块复制模式对邻近块进行编码,则可以使用较小的cacheN。
在一些示例实现方式中,可以通过邻近块中重复的调色板条目的数目来导出cacheN的大小。具体地,可能邻近块中相同的重复调色板条目可以普遍出现在当前编码块中,并且通过在当前编码块的颜色调色板中仅继承这些条目来实现最大编码增益。因此,可以将继承部分的大小cacheN设置为邻近块中重复的调色板条目的数目。邻近块可以包括紧邻的上方块和左侧块。在一些示例实现方式中,邻近块可以被扩展至其他非紧邻的顶部块/左侧块。例如,邻近块中重复的调色板条目的数目可以在码流中用信号通知,并因此可以仅通过解析来获得。
例如,当使用两个邻近块(例如,紧邻的顶部块和左侧块)导出高速缓存调色板时,在这两个邻近块中使用的调色板条目的数目可以用于导出cacheN的值。换言之,在这两个邻近块中使用的调色板条目的数目可以用作cacheN。
对于另一更一般的示例,当使用M(M是整数)个邻近块来导出高速缓存调色板时,在至少K个邻近块中使用的调色板条目的数目用于导出cacheN的值。K的示例值包括但不限于1、2、3、4、5、……、M。例如,如上所述,M可以是2,并且K可以是2。对于另一示例,M可以是3或更大,并且K可以是从1直至M的任何数目。
在上述任何实现方式中,可以使用多于两个邻近块来导出cacheN参数。例如,一些邻近块可以包括当前编码块的非紧邻(或非相邻)邻近块。当要依赖多个邻近块来确定当前编码块的颜色调色板的继承部分时,可以通过扫描当前编码块的所有邻近块直到遇到以调色板模式进行编码的M个邻近块来识别上述M个邻近块(注意,并非所有邻近块都以调色板模式进行编码,因为它们可以以其他帧内预测模式或甚至帧间预测模式进行编码)。可以预定义扫描的顺序。
基于上述方法,可以在不知道来自邻近块的颜色调色板的调色板条目被合并和去重复之后的实际调色板大小的情况下导出当前块的变量cacheN,以允许无延迟地解析当前编码块的调色板和其他信息。在邻近块调色板条目的这样的合并和去重复之后的调色板高速缓存的实际大小可能与导出的cacheN不同。当这种情况发生时,可以针对编码器和解码器实现规则集,以从合并和去重复的调色板高速缓存中选择调色板条目,以形成cacheN个调色板条目作为当前编码块的颜色调色板的继承部分。
在一些示例实现方式中,如果调色板高速缓存中合并的调色板条目的大小——被称为S——大于cacheN,则可以使用以下规则从调色板高速缓存中选择调色板条目。
例如,可以从调色板高速缓存中选择前cacheN个条目。可以在邻近调色板条目的合并列表中按照预定义扫描顺序来执行这样的选择。对于这样的实现方式,在合并列表或调色板高速缓存中,邻近调色板的调色板条目也可以以预定义方式排序。
对于另一示例,可以从调色板高速缓存中选择最后cacheN个条目。可以在邻近调色板条目的合并列表中按照预定义扫描顺序来执行这样的选择。对于这样的实现方式,在合并列表或调色板高速缓存中,邻近调色板的调色板条目也可以以预定义方式排序。
对于另一示例,应当首先从合并列表中选择来自两个邻近块(例如,左上邻近块或其他邻近块)的重复调色板条目。条目的扫描可以是从左到右或者以任何其他预定义扫描顺序从合并的调色板条目列表中用于为当前编码块的调色板的继承部分选择重复的调色板条目。相应地,重复的条目可以从左到右放置在合并的条目列表中。特别是当重复条目的数目大于cacheN时,这样的扫描将确定哪些重复条目被包括在当前编码块的调色板的继承部分中。此后,如果仍然需要更多的条目来形成当前块的颜色调色板的继承部分的cacheN个条目,例如则可以选择合并列表中的前几个条目,直到满足当前块的颜色调色板的继承部分的cacheN个条目为止。
对于又一示例,应当首先从合并列表中选择来自邻近块(例如,左上邻近块或其他邻近块)的重复条目。条目的扫描可以是从左到右或者以任何其他预定义扫描顺序从合并的调色板条目列表中用于为当前编码块的调色板的继承部分选择重复的调色板条目。相应地,重复的条目可以从左到右放置在合并的条目列表中。特别是当重复条目的数目大于cacheN时,这样的扫描将确定哪些重复条目被包括在当前编码块的调色板的继承部分中。此后,如果仍然需要更多的条目来形成当前块的颜色调色板的继承部分的cacheN个条目,例如则可以选择合并列表中的最后几个条目,直到满足当前块的颜色调色板的继承部分的cacheN个条目为止。
另一方面,在一些其他示例实现方式中,如果合并的调色板条目的大小S小于cacheN,指示调色板高速缓存中的调色板条目不足以填充当前编码块的颜色调色板的继承部分中的cacheN个条目并且需要附加的调色板条目,则可以使用以下规则来用于选择这样的附加调色板条目。
例如,对于所需的每个附加条目,可以确定颜色像素偏移值,并将其加到调色板高速缓存(或当前编码块的颜色调色板的继承部分)中的现有条目中的一者。偏移值可以是正的或负的。所选择的现有调色板条目可以是例如(1)合并列表中的最大条目,(2)合并列表中的最小条目,或(3)合并列表中最频繁使用的条目。不同添加条目的偏移值可以相同或者可以不同。偏移值例如可以从调色板高速缓存中或当前编码块的颜色调色板的继承部分中的现有调色板条目外推或插值。
对于另一示例,预定义的调色板条目值集合可以用作当前编码块的颜色调色板的附加调色板条目。这些预定义的调色板条目值可以例如在序列、图片、帧、切片、超级块和其他层级处作为高级语法在码流中用信号通知。可以根据需要按如用信号通知的或另外指定的预定义的调色板条目集合的顺序从第一个预定义条目开始取用于填充当前编码块的颜色调色板的继承部分的cacheN-S个值直至达到cacheN个条目。
图19示出遵循调色板模式下的帧内预测的上述实现方式的基础原理的示例方法的流程图1900。示例解码方法流程在S1901处开始。在S1910中,根据视频流确定基于与至少一个邻近视频块相对应的至少一个参考调色板对当前视频块进行编码。在S1920中,在执行至少一个参考调色板的任何合并之前,确定与当前视频块相关联的当前调色板的继承部分的大小cacheN,cacheN是整数。在S1930中,基于cacheN和至少一个参考调色板导出当前调色板的继承部分。在S1940中,到用于当前视频块的元素的当前调色板中的调色板索引被从视频流中提取。在S1950中,至少基于调色板索引和当前调色板来生成当前视频块的预测值块。该示例方法在S1999处停止。
在本公开内容的实施方式和实现方式中,任何步骤和/或操作可以根据需要以任何量或顺序进行组合或布置。步骤和/或操作中的两个或更多个可以并行执行。本公开内容中的实施方式和实现方式可以单独使用或以任何顺序组合使用。此外,方法(或实施方式)、编码器和解码器中的每一个均可以通过处理电路***(例如,一个或更多个处理器或一个或更多个集成电路)来实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。本公开内容中的实施方式可以应用于亮度块或色度块。术语块可以被解释为预测块、编码块或编码单元即CU。术语块在此也可以用于指代变换块。在以下项中,当说块大小时,它可以指块宽度或块高度、或宽度和高度的最大值、或宽度和高度的最小值、或面积大小(宽度*高度)、或块的纵横比(宽度:高度,或高度:宽度)。
上述技术可以使用计算机可读指令被实现为计算机软件并且被物理地存储在一个或更多个计算机可读介质中。例如,图20示出了适合于实现所公开的主题的某些实施方式的计算机***(2000)。
计算机软件可以使用任何合适的机器代码或计算机语言来编码,所述机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,指令可以由一个或更多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或者通过解释、微代码执行等来执行。
指令可以在各种类型的计算机或其部件上执行,所述计算机或其部件包括例如个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。
图20中所示的用于计算机***(2000)的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应该被解释为具有与计算机***(2000)的示例性实施方式中所示的部件中的任何一个或部件的组合有关的任何依赖性或要求。
计算机***(2000)可以包括某些人机接口输入装置。这样的人机接口输入装置可以响应于由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未描绘)的输入。人机接口装置还可以用于捕获不一定与人的意识输入直接有关的某些媒体,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静态图像摄像装置获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
输入人机接口装置可以包括以下中的一个或更多个(描绘的每种中的仅一个):键盘(2001)、鼠标(2002)、触控板(2003)、触摸屏(2010)、数据手套(未示出)、操纵杆(2005)、麦克风(2006)、扫描仪(2007)、摄像装置(2008)。
计算机***(2000)还可以包括某些人机接口输出装置。这样的人机接口输出装置可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感觉。这样的人机接口输出装置可以包括:触觉输出装置(例如,通过触摸屏(2010)、数据手套(未示出)或操纵杆(2005)进行的触觉反馈,但是也可以存在不用作输入装置的触觉反馈装置);音频输出装置(例如:扬声器(2009)、头戴式耳机(未描绘));视觉输出装置(例如,屏幕(2010),包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个屏幕具有或不具有触摸屏输入能力,每个具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘);全息显示器和发烟器(未描绘));以及打印机(未描绘)。
计算机***(2000)还可以包括人类可访问存储装置及其相关联的介质,例如包括具有CD/DVD等介质(2021)的CD/DVD ROM/RW(2020)的光学介质、拇指驱动器(2022)、可移除硬盘驱动器或固态驱动器(2023)、传统磁性介质例如磁带和软盘(未描绘)、基于专用ROM/ASIC/PLD的装置例如安全加密狗(未描绘)等。
本领域技术人员还应当理解,结合目前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬态信号。
计算机***(2000)还可以包括到一个或更多个通信网络(2055)的接口(2054)。网络例如可以是无线网络、有线网络、光网络。网络还可以为局域网、广域网、城域网、车载和工业网络、实时网络、延迟容忍网络等。网络的示例包括:局域网(例如以太网、无线LAN),包括GSM、3G、4G、5G、LTE等的蜂窝网络,包括有线电视、***和地面广播电视的电视有线或无线广域数字网络,包括CAN总线的车辆和工业网络等。某些网络通常需要附接至某些通用数据端口或***总线(2049)(例如,计算机***(2000)的USB端口)的外部网络接口适配器;其他的网络通常通过如下所述(例如,至PC计算机***的以太网接口或至智能电话计算机***的蜂窝网络接口)附接至***总线而集成到计算机***(2000)的核心中。使用这些网络中的任何网络,计算机***(2000)可以与其他实体通信。这样的通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,至某些CAN总线装置的CAN总线)、或双向的(例如,使用局域数字网络或广域数字网络至其他计算机***)。可以在如上面所描述的这些网络和网络接口中的每个网络和网络接口上使用某些协议和协议栈。
以上提及的人机接口装置、人类可访问的存储装置和网络接口可以附接至计算机***(2000)的核心(2040)。
核心(2040)可以包括一个或更多个中央处理单元(CPU)(2041)、图形处理单元(GPU)(2042)、呈现场可编程门区域(FPGA)(2043)形式的专用可编程处理单元、用于某些任务的硬件加速器(2044)、图形适配器(2050)等。这些装置连同只读存储器(ROM)(2045)、随机存取存储器(2046)、内部大容量存储装置(例如,内部非用户可访问硬盘驱动器、SSD等)(2047)可以通过***总线(2048)连接。在一些计算机***中,可以以一个或更多个物理插头的形式访问***总线(2048),以允许通过附加的CPU、GPU等进行扩展。***装置可以直接地或者通过***总线(2049)附接至核心的***总线(2048)。在示例中,屏幕(2010)可以连接至图形适配器(2050)。***总线的架构包括PCI、USB等。
CPU(2041)、GPU(2042)、FPGA(2043)和加速器(2044)可以执行某些指令,这些指令组合起来可以构成以上提及的计算机代码。计算机代码可以存储在ROM(2045)或RAM(2046)中。瞬时数据也可以存储在RAM(2046)中,而永久性数据可以存储在例如内部大容量存储装置(2047)中。可以通过使用高速缓存存储器来实现对存储器装置中的任何存储器装置的快速存储和检索,该高速缓存存储器可以与一个或更多个CPU(2041)、GPU(2042)、大容量存储装置(2047)、ROM(2045)、RAM(2046)等紧密相关联。
计算机可读介质可以在其上具有用于执行各种计算机实现的操作的计算机代码。这些介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者他们可以具有计算机软件领域的技术人员公知且可用的类型。
作为非限制性示例,具有架构的计算机***(2000)并且特别是核心(2040)可以提供作为处理器(包括CPU、GPU、FPGA、加速器等)执行在一个或更多个有形计算机可读介质中实现的软件的结果的功能。这样的计算机可读介质可以是与如以上介绍的用户可访问的大容量存储装置相关联的介质,以及核心(2040)的具有非暂态性质的某些存储装置,例如核心内部大容量存储装置(2047)或ROM(2045)。可以将实现本公开内容的各种实施方式的软件存储在这样的装置中并且由核心(2040)执行。根据特定需求,计算机可读介质可以包括一个或更多个存储器装置或芯片。软件可以使核心(2040)并且特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在RAM(2046)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或可替选地,计算机***可以提供作为逻辑硬连线或以其他方式在电路(例如:加速器(2044))中实现的结果的功能,所述电路可以代替软件而操作或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,提及软件可以涵盖逻辑,并且反之提及逻辑也可以涵盖软件。在适当的情况下,对计算机可读介质的提及可以包含存储用于执行的软件的电路(例如,集成电路(IC))、体现用于执行的逻辑的电路或上述两者。本公开内容涵盖硬件与软件的任何合适的组合。
虽然本公开内容已经描述了几个示例性实施方式,但是存在落入本公开内容的范围内的改变、置换和各种替换等同物。因此,应当认识到,本领域技术人员将能够构思许多***和方法,这些***和方法虽然本文中没有被明确示出或描述,但是实施了本公开内容的原理并且因此在本公开内容的精神和范围内。
附录A:首字母缩略词
JEM:联合探索模型
VVC:通用视频编码
BMS:基准集
MV:运动矢量
HEVC:高效视频编码
SEI:补充增强信息
VUI:视频可用性信息
GOP:图片组
TU:变换单元
PU:预测单元
CTU:编码树单元
CTB:编码树块
PB:预测块
HRD:假想参考解码器
SNR:信噪比
CPU:中央处理单元
GPU:图形处理单元
CRT:阴极射线管
LCD:液晶显示器
OLED:有机发光二极管
CD:致密盘
DVD:数字视频光盘
ROM:只读存储器
RAM:随机存取存储器
ASIC:专用集成电路
PLD:可编程逻辑器件
LAN:局域网
GSM:全球移动通信***
LTE:长期演进
CANBus:控制器局域网总线
USB:通用串行总线
PCI:***部件互连
FPGA:现场可编程门区域
SSD:固态驱动器
IC:集成电路
HDR:高动态范围
SDR:标准动态范围
JVET:联合视频探索小组
MPM:最可能模式
WAIP:广角帧内预测
CU:编码单元
PU:预测单元
TU:变换单元
CTU:编码树单元
PDPC:位置相关预测组合
ISP:帧内子划分
SPS:序列参数设置
PPS:图片参数集
APS:自适应参数集
VPS:视频参数集
DPS:解码参数集
ALF:自适应环路滤波器
SAO:样本自适应偏移CC-ALF:交叉分量自适应环路滤波器CDEF:约束方向性增强滤波器
CCSO:交叉分量样本偏移
LSO:本地样本偏移
LR:环路恢复滤波器
AV1:AOMedia视频1
AV2:AOMedia视频2
CfL:从亮度预测色度
SDT:半解耦树
SDP:半解耦分割
SST:半独立树
SB:超级块
IBC(或帧内BC):帧内块复制
CDF:累积密度函数
SCC:屏幕内容编码
GBI:广义双向预测
BCW:具有CU级权重的双向预测
CIIP:组合帧内帧间预测
POC:图片顺序计数
RPS:参考图片集
DPB:解码图片缓冲器

Claims (20)

1.一种用于生成视频流中的当前视频块的帧内预测值块的方法,所述当前视频块以调色板模式被帧内编码,所述方法包括:
根据所述视频流确定所述当前视频块基于与至少一个邻近视频块相对应的至少一个参考调色板被编码;
在执行所述至少一个参考调色板的任何合并之前,确定与所述当前视频块相关联的当前调色板的继承部分的大小cacheN,cacheN是整数;
基于cacheN和所述至少一个参考调色板导出所述当前调色板的继承部分;
从所述视频流中提取到用于所述当前视频块的元素的所述当前调色板中的调色板索引;以及
至少基于所述调色板索引和所述当前调色板来生成所述当前视频块的预测值块。
2.根据权利要求1所述的方法,其中,确定cacheN包括基于与所述至少一个参考调色板相对应的至少一个调色板大小来确定所述当前调色板的继承部分的大小。
3.根据权利要求2所述的方法,其中,确定cacheN包括:
确定所述当前视频块的第一邻近视频块的第一调色板大小;
确定所述当前视频块的第二邻近视频块的第二调色板大小;以及
基于所述第一调色板大小和所述第二调色板大小来确定cacheN。
4.根据权利要求3所述的方法,其中:
所述第一邻近视频块和所述第二邻近视频块分别包括所述当前视频块的紧邻上方的视频块和紧邻左侧的视频块;并且
基于所述第一调色板大小和所述第二调色板大小确定cacheN包括将所述当前调色板的继承部分的大小确定为:
所述第一调色板大小与所述第二调色板大小中的较大者增加N;或者
所述第一调色板大小与所述第二调色板大小中的较小者增加N;或者
预确定的最大继承调色板大小与所述第一调色板大小和所述第二调色板大小中的较大者增加N中的较小者;或者
所述预确定的最大继承调色板大小与所述第一调色板大小和所述第二调色板大小中的较小者增加N中的较小者,
其中,N是预确定的调色板大小增量,N是0至8之间以及包括0和8的整数。
5.根据权利要求1至4中任一项所述的方法,其中,确定cacheN包括独立于所述至少一个参考调色板为所述当前调色板的继承部分指定调色板大小,所述调色板大小是0至8之间以及包括0和8的整数。
6.根据权利要求5所述的方法,其中,在所述视频流中以语法元素预确定或用信号通知所述调色板大小。
7.根据权利要求6所述的方法,其中,所述语法元素包括与所述当前视频块相关联的视频参数集、序列参数集、图片参数集、自适应参数集、帧报头、切片报头、图片报头、图块报头或编码树单元报头中的一个分量。
8.根据权利要求1至4中任一项所述的方法,从所述当前视频块或所述至少一个邻近视频块的编码信息项导出cacheN。
9.根据权利要求8所述的方法,其中,所述编码信息项包括与所述当前视频块或所述至少一个邻近视频块相关联的块大小或预测模式中的至少一者。
10.根据权利要求1至4中任一项所述的方法,其中,cacheN被导出为与所述至少一个邻近视频块相关联的所述至少一个参考调色板中的重复调色板条目的数目。
11.根据权利要求10所述的方法,其中,所述至少一个邻近视频块包括M个邻近视频块,并且M个邻近视频块中的至少K个邻近视频块的公共调色板条目的数目I被确定为cacheN;M是等于或大于2的整数,并且K是等于或小于M的整数。
12.根据权利要求1至4中任一项所述的方法,从所述当前视频块的三个或更多个邻近视频块中选择与所述至少一个参考调色板相对应的所述至少一个邻近视频块。
13.根据权利要求12所述的方法,其中,所述三个或更多个邻近视频块包括与所述当前视频块不相邻的至少一个块。
14.根据权利要求12所述的方法,其中:
通过以预定义扫描顺序扫描所述三个或更多个邻近视频块来从所述三个或更多个邻近视频块中选择所述至少一个邻近视频块以确定以所述调色板模式进行帧内编码的第一邻近视频块集;并且
使用所述第一邻近视频块集的高速缓存调色板的集合来确定或导出所述至少一个参考调色板。
15.根据权利要求1至4中任一项所述的方法,还包括将所述至少一个参考调色板合并到独特调色板条目数为S的高速缓存调色板。
16.根据权利要求15所述的方法,当S>cacheN时,所述方法还包括以下之一:
按照预确定扫描顺序从所述高速缓存调色板中选择前cacheN个调色板条目,以生成调色板条目数为cacheN的所述当前调色板的继承部分;
按照预确定扫描顺序从所述高速缓存调色板中选择最后高速缓存cacheN个调色板条目,以生成调色板条目数为cacheN的所述当前调色板的继承部分;
按照预确定扫描顺序从所述至少一个参考调色板中选择重复的调色板条目,并且如果需要,从所述高速缓存调色板中另外选择前几个非重复的调色板条目,以生成调色板条目数为cacheN的所述当前调色板的继承部分;或者
按照预确定扫描顺序从所述至少一个参考调色板中选择重复的调色板条目,并且如果需要,从所述高速缓存调色板中另外选择最后几个非重复的调色板条目,以生成调色板条目数为cacheN的所述当前调色板的继承部分。
17.根据权利要求15所述的方法,当S<(cacheN)时,所述方法还包括:
使用所述高速缓存调色板填充所述当前调色板的继承部分的前S个调色板条目;
根据所述高速缓存调色板确定(cacheN-S)个目标调色板条目;
使所述(cacheN-S)个目标调色板条目中的每一者偏移以生成经修改的目标调色板条目;以及
将所述经修改的目标调色板条目包括到所述当前调色板的继承部分的最后(cacheN-S)个条目中。
18.根据权利要求15所述的方法,当S<cacheN时,所述方法还包括:
使用所述高速缓存调色板填充所述当前调色板的继承部分的前S个调色板条目;以及
用来自调色板条目列表的前(cacheN-S)个调色板条目填充所述当前调色板的继承部分的最后(cacheN-S)个调色板条目。
19.根据权利要求18所述的方法,其中,在所述视频流中以序列参数集、图片参数集、自适应参数集、帧报头、切片报头、图片报头、图块报头或编码树单元报头中的一者来用信号通知所述调色板条目列表。
20.一种视频装置,包括用于存储计算机指令的存储器以及与所述存储器通信的处理器,所述处理器被配置成执行所述计算机指令以使所述视频装置:
根据视频流确定当前视频块基于与至少一个邻近视频块相对应的至少一个参考调色板被编码;
在执行所述至少一个参考调色板的任何合并之前,确定与所述当前视频块相关联的当前调色板的继承部分的大小cacheN;
基于cacheN和所述至少一个参考调色板导出所述当前调色板的继承部分;
从所述视频流中提取到用于所述当前视频块的元素的所述当前调色板中的调色板索引;以及
至少基于所述调色板索引和所述当前调色板来生成所述当前视频块的预测值块。
CN202280010652.6A 2022-01-14 2022-07-26 调色板预测值生成和信号通知 Pending CN117203965A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263299665P 2022-01-14 2022-01-14
US63/299,665 2022-01-14
US17/869,268 US20230231991A1 (en) 2022-01-14 2022-07-20 Palette Predictor Generation and Signaling
US17/869,268 2022-07-20
PCT/US2022/038347 WO2023136864A1 (en) 2022-01-14 2022-07-26 Palette predictor generation and signaling

Publications (1)

Publication Number Publication Date
CN117203965A true CN117203965A (zh) 2023-12-08

Family

ID=87161491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280010652.6A Pending CN117203965A (zh) 2022-01-14 2022-07-26 调色板预测值生成和信号通知

Country Status (5)

Country Link
US (1) US20230231991A1 (zh)
JP (1) JP2024514116A (zh)
KR (1) KR20230158621A (zh)
CN (1) CN117203965A (zh)
WO (1) WO2023136864A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106464869B (zh) * 2014-03-14 2019-07-19 寰发股份有限公司 调色板表初始化和管理的方法
WO2015140402A2 (en) * 2014-03-17 2015-09-24 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
US9654806B2 (en) * 2014-03-26 2017-05-16 Qualcomm Incorporated Determining palette size, palette entries and filtering of palette coded blocks in video coding
US10291940B2 (en) * 2014-05-23 2019-05-14 Qualcomm Incorporated Coding runs with escape in palette-based video coding
WO2016124158A1 (en) * 2015-02-05 2016-08-11 Mediatek Inc. Methods and apparatus of decoding process for palette syntax

Also Published As

Publication number Publication date
WO2023136864A8 (en) 2023-09-07
JP2024514116A (ja) 2024-03-28
US20230231991A1 (en) 2023-07-20
KR20230158621A (ko) 2023-11-20
WO2023136864A1 (en) 2023-07-20

Similar Documents

Publication Publication Date Title
JP2023162380A (ja) Vvcにおける色変換のための方法及び機器
CN114270836A (zh) 视频编解码的颜色转换
KR20230131258A (ko) 움직임 벡터 차분에 대한 공동 시그널링 방법
KR20230135641A (ko) 적응형 모션 벡터 차이 해상도를 위한 공동 코딩
CN116601955A (zh) 运动矢量差的自适应分辨率
KR20220091602A (ko) 비디오 디코딩 방법 및 장치, 및 컴퓨터 판독가능 저장 매체
CN116584092B (zh) 视频块解码方法、装置和存储介质
CN116325723B (zh) 用于视频解码的方法、计算机设备及介质
JP2023553996A (ja) 成分間変換係数レベル復元におけるオフセットの導出
CN116830581A (zh) 用于运动矢量差的经改进的信令方法和装置
KR20230133351A (ko) 모션 벡터 차이의 적응형 해상도와 모션 벡터-관련파라미터들의 시그널링/도출 사이의 상호의존
KR20230145144A (ko) 모션 벡터 차이에 대한 적응형 해상도를 조정하기 위한 방식
KR20230135670A (ko) 조인트 모션 벡터 차이 코딩
CN115804089A (zh) 零残差标志编解码
KR20220122767A (ko) 비디오 코딩을 위한 방법 및 장치
JP2022520855A (ja) Qt/bt/ttサイズの改善されたヘッダシンタックス
US20230231991A1 (en) Palette Predictor Generation and Signaling
JP7439344B2 (ja) ビデオデコーディングのための方法、デバイス、およびコンピュータプログラム
KR20230136646A (ko) 모션 벡터 후보들을 리파인하기 위한 방법들 및 디바이스들
KR20230136169A (ko) 단일-참조 모션 벡터 차이에 대한 적응적 해상도
KR20230140456A (ko) 적응적 모션 벡터 차이 해상도를 위한 보간 필터들
KR20230159603A (ko) 다중 예측 모드에 기반한 교차 채널 예측
CN116686287A (zh) 用于联合mvd编码的mvd缩放
KR20230117614A (ko) 움직임 벡터 차이 제한 방법 및 디바이스
JP2024516763A (ja) 適応型多重変換セット選択

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: 40098685

Country of ref document: HK