CN116368800A - 用于具有搜索范围切换的帧内块拷贝模式编码的方法及装置 - Google Patents

用于具有搜索范围切换的帧内块拷贝模式编码的方法及装置 Download PDF

Info

Publication number
CN116368800A
CN116368800A CN202280006720.1A CN202280006720A CN116368800A CN 116368800 A CN116368800 A CN 116368800A CN 202280006720 A CN202280006720 A CN 202280006720A CN 116368800 A CN116368800 A CN 116368800A
Authority
CN
China
Prior art keywords
ibc
block
video
mode
local
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
CN202280006720.1A
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 CN116368800A publication Critical patent/CN116368800A/zh
Pending legal-status Critical Current

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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • 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

Landscapes

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

Abstract

本公开总体上涉及视频编码,以及具体地,涉及帧内块拷贝编码模式。例如,公开了一种用于重建视频流中的视频块的方法。该方法可包括:从视频流中提取至少一个语法元素,至少一个语法元素与视频块的帧内块拷贝IBC预测相关联;确定用于视频块的IBC预测的IBC参考模式,IBC参考模式包括以下之一:无IBC模式、本地参考IBC模式、非本地参考IBC模式、以及本地和非本地参考IBC模式;以及基于IBC参考模式从视频流生成视频块的重建样本。

Description

用于具有搜索范围切换的帧内块拷贝模式编码的方法及装置
援引并入
本申请基于并要求2022年3月25日递交的申请号为17/704,948的美国非临时专利申请的优先权,该美国非临时专利申请基于并要求2021年9月17日递交的标题为“Methodand Apparatus for Intra Block Copy(IntraBC)Mode Coding with Search RangeSwitching”的美国临时申请第63/245,665号的优先权权益。两个在先专利申请的全部内容通过引用整体并入。
技术领域
本公开总体上涉及视频编码,以及具体地涉及帧内块拷贝编码模式。
背景技术
本文所提供的背景描述是出于总体上呈现本公开的内容的目的。按照在该背景技术部分中描述当前署名发明人的工作的程度,署名发明人的工作以及在递交本申请时并不作为现有技术的各个方面从未被明示地或暗示地承认为本公开的现有技术。
可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,每个图片具有例如为1920x1080的亮度样本和相关的全部或子采样的色度样本的空间大小。该一系列图片可以具有例如每秒60幅图片或每秒60帧的固定的或可变的图片速率(或者称为帧率)。未压缩的视频对于流式传输或数据处理具有特定的比特率要求。例如,具有1920x1080像素分辨率、60帧/秒的帧率、色度子采样为每颜色通道每像素8位的4:2:0的视频需要接近1.5Gbit/s带宽。一小时的此类视频需要600GB以上的存储空间。
视频编码和解码的一个目的是通过压缩来减少未压缩的输入视频信号中的冗余。压缩可以有助于减少上述带宽或存储空间需求,在某些情况下可以减小两个数量级或大于两个数量级。可以采用无损压缩和有损压缩、及其组合。无损压缩是指可以通过解码流程从已压缩的原始信号中重建原始信号的精确副本的技术。有损压缩是指在编码过程中原始视频信息不能完全保留并且在解码过程中不能完全恢复的编码/解码过程。当使用有损压缩时,已重建的信号可能与原始信号不同,尽管有一些信息损失,但是原始信号和已重建的信号之间的失真足够小,以使已重建的信号可用于预期的应用。在视频的情况下,有损压缩广泛使用在很多应用中。可容忍的失真量取决于应用。例如,某些消费者视频流应用的用户可以比电影或电视广播应用的用户容忍更高的失真。可以选择或调整特定编码算法可实现的压缩比以反映各种失真容忍度(distortion tolerance):较高的可容忍失真通常使得编码算法能够产生较高损失和较高压缩比。
视频编码器和解码器可利用来自若干广泛类别和步骤的技术,包括例如运动补偿、傅里叶变换、量化和熵编码。
视频编解码器技术可以包括称为帧内编码的技术。在帧内编码中,在没有参考来自先前已重建参考图片的样本或其它数据的情况下表示样本值。在一些视频编解码器中,图片在空间上被细分成样本块。当以帧内模式对所有样本块进行编码时,该图片可以称为帧内图片。帧内图片及其派生物(例如,独立的解码器刷新图片)可用于重置解码器状态,且因此可用作已编码的视频比特流和视频会话中的第一图片,或用作静止图像。然后帧内预测后的块的样本可变换到域,且变换系数可在熵编码之前量化。帧内预测表示最小化预变换域中的样本值的技术。在一些情况下,变换之后的DC值越小且AC系数越小,在给定的量化步长下表示熵编码之后的块所需的比特越少。
传统的帧内编码(例如,从例如MPEG-2代编码技术中已知的帧内编码)不使用帧内预测。然而,一些较新的视频压缩技术包括基于例如周围样本数据和/或元数据尝试块编码/解码的技术,该样本数据和/或元数据在进行空间上相邻的编码/解码期间获得且解码顺序在帧内编码或解码的数据块之前。这种技术此后被称为“帧内预测”技术。需要注意的是,在至少一些情况下,帧内预测仅使用来自正在重建的当前图片的参考数据,而不使用来自其他参考图片的参考数据。
可以有许多不同形式的帧内预测。当在给定的视频编码技术中可使用一种以上这样的技术时,所使用的技术可称为帧内预测模式。可以在特定编解码器中提供一个或多个帧内预测模式。在某些情况下,模式可以具有子模式和/或可以与各种参数相关联,并且模式/子模式信息和用于视频块的帧内编码参数可以被单独地或包括在模式码字中共同地编码。哪个码字用于给定的模式/子模式/参数组合,可能对通过帧内预测的编码效率增益具有影响,且熵编码技术也可以用于将码字转换为比特流。
某些帧内预测模式随着H.264被引入,在H.265中进行改进,并进一步在更新的编码技术(例如,联合探测模型(JEM)、下一代视频编码(VVC)和基准集(BMS))中进行改进。通常,对于帧内预测,可以使用已经可用的相邻样本值来形成预测器块。例如,沿着某些方向和/或线的特定相邻样本集的可用值可以被拷贝到预测器块中。对使用中的方向的参考可被编码在比特流中或者自身可被预测。
参考图1A,在右下方描绘了H.265的33个可能的帧内预测器方向(对应于H.265中规定的35个帧内模式的33个角模式)规定的9个预测器方向的子集。箭头汇聚的点(101)表示被预测的样本。箭头表示在101处使用相邻样本来预测样本的方向。例如,箭头(102)表示从一个或多个相邻样本到与水平方向成45度角的右上方来预测样本(101)。类似地,箭头(103)表示从一个或多个相邻样本到与水平方向成22.5度角的样本(101)的左下方来预测样本(101)。
仍然参考图1A,在左上方描绘了4x4样本的方形块(104)(由虚的粗线表示)。方形块(104)包括16个样本,每个样本用“S”标记其在Y维度中的位置(例如,行索引)和其在X维度中的位置(例如,列索引)。例如,样本S21是Y维度中(从顶部开始)的第二个样本和X维度中(从左边开始)的第一个样本。类似地,样本S44是块(104)中在Y维度和X维度中都是第四个样本。由于块的大小是4x4样本,因此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预测本身可以是有损的。
H.265/HEVC(ITU-T H.265建议书,“高效视频编解码(High Efficiency VideoCoding)”,2016年12月)中描述了各种MV预测机制。在H.265规定的多种MV预测机制外,以下描述的是后面称为“空间合并”的技术。
具体地,仍然参考图2,在空间合并中,当前块(201)包括在运动搜索过程期间已由编码器发现的样本,该样本根据已经空间移位的相同大小的前一个块是可预测的。可以使用与五个周围样本(分别表示为A0,A1,以及B0,B1,B2(分别为从202到206))中的任一个相关联的MV,从与一个或多个参考图片相关联的元数据中导出MV,例如,从最近的(按解码顺序)参考图片中导出MV,而不是直接对该MV进行编码。在H.265中,MV预测能够使用相邻块使用的相同参考图片的预测器。
发明内容
本公开的方面总体上涉及视频编码,以及具体地,涉及帧内块拷贝编码模式。在一些示例实施方式中,TBD。
本公开的方面还提供了一种视频编码或解码设备或装置,包括被配置为执行上述任意方法实现的电路。
本发明的方面还提供了一种非瞬态计算机可读介质,用于存储指令,该指令在由计算机执行以进行视频解码和/或编码时,使计算机执行视频解码和/或编码的方法。
附图说明
通过以下详细描述和附图,所公开主题的其他特征、性质和各种优点将更加明显,在附图中:
图1A示出了帧内预测方向模式的示例性子集的示意图;
图1B示出了示例性帧内预测方向的的示意图;
图2示出了一示例中的当前块及其用于运动矢量预测的周围空间合并候选的示意图;
图3示出了根据示例实施例的通信系统(300)的简化框图的示意图;
图4示出了根据示例实施例的通信系统(400)的简化框图的示意图;
图5示出了根据示例实施例的视频解码器的简化框图的示意图;
图6示出了根据示例实施例的视频编码器的简化框图的示意图;
图7示出了根据另一示例实施例的视频编码器的框图;
图8示出了根据另一示例实施例的视频解码器的框图;
图9示出了根据本公开的示例实施例的编码块分割的方案;
图10示出了根据本公开的示例实施例的编码块分割的另一方案;
图11示出了根据本公开的示例实施例的编码块分割的另一方案;
图12示出了根据示例分割方案将基块分割为编码块的示例;
图13示出了示例三叉分割方案;
图14示出了示例四叉树二叉树编码块分割方案;
图15示出了根据本公开的示例实施例的用于将编码块分割成多个变换块以及变换块的编码顺序的方案;
图16示出了根据本公开的示例实施例的用于将编码块分割成多个变换块以及变换块的编码顺序的另一方案;
图17示出了根据本公开的示例实施例的用于将编码块分割成多个变换块的另一方案;
图18示出了使用在同一帧中的已重建编码块来预测当前编码块的帧内块拷贝(IBC)的概念;
图19示出了可作为IBC的参考样本的示例已重建样本;
图20示出了具有一些示例限制的可用作IBC的参考样本的示例已重建样本;
图21示出了用于IBC的示例片上参考样本存储器(RSM)更新机制;
图22示出了图21的示例片上RSM更新机制的空间视图;
图23示出了另一用于IBC的示例片上RSM更新机制;
图24示出了针对水平分割超级块和垂直分割超级块的IBC的示例RSM更新机制的空间视图的比较;
图25示出了IBC参考块的示例非本地和本地搜索区域;
图26示出了使用本地和非本地参考块搜索区域的IBC的参考块的位置的示例性限制;
图27示出了根据本公开的示例实施例的方法的流程图;以及
图28示出了根据本公开的示例实施例的计算机系统的示意图。
具体实施方式
下面将参考附图详细描述本发明,附图构成本发明的一部分,并且通过图示的方式示出了实施例的具体示例。然而,可以理解的是,本发明可以以各种不同的形式实施,因此,下面阐述的任何实施例旨在解释而不是限制所涵盖或要求保护的主题。还可以理解的是,本发明可以体现为方法、设备、组件或系统。因此,本发明的实施例可以例如采取硬件、软件、固件或其任意组合的形式。
在整个说明书和权利要求书中,术语可以具有在上下文中暗示或隐含的超出明确陈述的含义的细微含义。本文中使用的短语“在一个实施例中”或“在一些实施例中”不一定指相同的实施例,并且本文中使用的短语“在另一个实施例中”或“在其他实施例中”不一定指不同的实施例。同样,本文使用的短语“在一个实现方式中”或“在一些实现方式中”不一定指相同的实现方式,并且这里使用的短语“在另一实现方式中”或“在其他实现方式中”不一定指不同的实现方式。例如,意图在于所要求保护的主题包括全部或部分示例性实施例/实现方式的组合。
一般来说,术语可以至少部分地从上下文中的用法来理解。例如,本文使用的如“和”、“或”或“和/或”的术语可以包括各种含义,这些含义可以至少部分取决于使用这些术语的上下文。通常,“或”如果用于关联如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示出了视频编码器和视频解码器在流式传输环境中的放置方式。所公开的主题可同等地适用于其它视频应用,包括例如视频会议、数字TV广播、游戏、虚拟现实、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
视频流系统可以包括视频采集子系统(413),该视频采集子系统(413)可包括如数码相机的视频源(401),该视频源(401)用于创建未压缩的视频图片或图像流(402)。在示例中,视频图片流(402)包括由视频源401的数码相机录制的样本。相较于已编码视频数据(404)(或已编码视频比特流),被描绘为粗线以强调高数据量的视频图片流(402)可由电子装置(420)处理,该电子装置(420)包括耦接到视频源(401)的视频编码器(403)。视频编码器(403)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开的主题的各方面。相较于未压缩的视频图片流(402),被描绘为细线以强调较低数据量的已编码视频数据(404)(或已编码视频比特流(404))可存储在流式服务器(405)上以供将来使用或直接存储到下游视频设备(未示出)。一个或多个流式客户端子系统,例如,图4中的客户端子系统(406)和客户端子系统(408),可访问流式传输服务器(405)以检索已编码视频数据(404)的副本(407)和副本(409)。客户端子系统(406)可以包括例如在电子设备(430)中的视频解码器(410)。视频解码器(410)对已编码视频数据的传入副本(407)进行解码,且产生未压缩的、可在显示器(412)(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流(411)。视频解码器410可以被配置为执行本公开中描述的各种功能中的一些或全部。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码视频数据(404)、已编码视频数据(407)和已编码视频数据(409)(例如视频比特流)进行编码。这些标准的示例包括ITU-T H.265建议书。在示例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile Video Coding,VVC)。所公开的主题可用于VVC的上下文中以及其他视频编码标准。
可以理解的是,电子设备(420)和电子设备(430)可以包括其他组件(未示出)。例如,电子装置(420)可以包括视频解码器(未示出),以及电子装置(430)可以包括视频编码器(未示出)。
图5示出了根据以下本公开的任意实施例的视频解码器(510)的框图。视频解码器(510)可包括在电子装置(530)中。电子装置(530)可包括接收器(531)(例如接收电路)。视频解码器(510)可用于代替图4的示例中的视频解码器(410)。
接收机(531)可以接收要由视频解码器(510)解码的一个或多个编码视频序列。在相同或另一实施例中,可以一次解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可从信道(501)接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储装置的硬件/软件链路或发送已编码视频数据的流源(streaming source)。接收器(531)可接收可转发到它们各自的处理电路(未描绘)的已编码视频数据以及其它数据,例如,已编码音频数据和/或辅助数据流。接收器(531)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(515)可设置在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)可实施为视频解码器(510)的一部分。在其他应用中,该缓冲存储器(515)可设置在视频解码器(510)(未描绘)外部且与之分离。依然在其他应用中,在视频解码器(510)的外部可设置缓冲存储器(未描绘)以为了例如防止网络抖动的目的,且在视频解码器(510)的内部可以有另一缓冲存储器(515)以例如处理播放定时。当接收器(531)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,可能不需要缓冲存储器(515),或可以将该缓冲存储器做得较小。为了在尽力分组网络(例如,因特网)上使用,可能需要足够大小的缓冲存储器(515),并且其大小可以相对较大。这种缓冲存储器可以用自适应大小来实现,并且可以至少部分地在视频解码器(510)之外的操作系统或类似元件(未示出)中实现。
视频解码器(510)可包括解析器(520),以根据已编码视频序列重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息,以及用以控制如显示器(512)(例如,显示屏)的显示装置的潜在信息,该显示装置可以是或不是电子装置(530)的整体部分,但可耦接到电子装置(530),如图5中所示。用于一个(或多个)显示装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(Video Usability Information,VUI)的参数集片段(未描绘)的形式。解析器(520)可对解析器(520)接收到的已编码视频序列进行解析/熵解码。已编码视频序列的熵编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffmancoding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可基于对应于子群的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、条带、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(PredictionUnit,PU)等等。解析器(520)还可从已编码视频序列提取信息,例如,变换系数(例如,傅里叶变换系数)、量化器参数值、运动矢量等等。
解析器(520)可以对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可以涉及多个不同的处理或功能单元。涉及的单元以及涉及方式可由解析器(520)从已编码视频序列解析的子群控制信息来控制。为了简洁起见,未描绘解析器(520)与下文的多个处理或功能单元之间的此类子群控制信息流。
除已经提及的功能块以外,视频解码器(510)可以在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些功能单元中的许多功能单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于清楚地描述所公开的主题的各种功能的目的,概念上细分成功能单元在下面的公开中采用。
第一单元可以包括缩放器/逆变换单元(551)。缩放器/逆变换单元(551)可以从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括指示使用哪种逆变换类型、块大小、量化因子/参数、量化缩放矩阵等的信息作为符号(521)。缩放器/逆变换单元(551)可输出包括样本值的块,该样本值可输入到聚合器(555)中。
在一些情况下,缩放器/逆变换(551)的输出样本可以属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测信息可以由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)可以使用已重建的周围块信息以及存储在当前图片缓冲器(558)的块信息生成大小和形状与正在重建的块相同的块。例如,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些实施方式中,聚合器(555)可以基于每个样本,将帧内预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
在其他情况下,缩放器/逆变换单元(551)的输出样本可以属于帧间编码的和潜在运动补偿块。在这种情况下,运动补偿预测单元(553)可以访问参考图片存储器(557)以提取用于图片帧间预测的样本。在根据属于块的符号(521)对所提取的样本进行运动补偿之后,这些样本可以由聚合器(555)添加到缩放器/逆变换单元(551)的输出(单元551的输出可以称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图片存储器(557)内的地址获取预测样本可受到运动矢量控制,且该运动矢量以符号(521)的形式而供运动补偿预测单元(553)使用,符号(521)可以具有例如X、Y分量(移位)和参考图片分量(时间)。运动补偿还可以包括当使用子样本精确运动向量时,从参考图片存储器(557)提取的样本值的内插,以及还可以与运动向量预测机制相关联等。
聚合器(555)的输出样本可经受环路滤波器单元(556)中的各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码比特流)中并且作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)的参数,然而,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。几种类型的环路滤波器可以以各种顺序被包括作为环路滤波器单元556的一部分,这将在下面进一步详细描述。
环路滤波器单元(556)的输出可以是样本流,该样本流可输出到渲染装置(512)以及存储在参考图片存储器(557)中,以用于后续的帧间图片预测。
一旦完全重建,某些已编码图片就可用作参考图片以用于将来的图片帧间预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可变为参考图片存储器(557)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可根据例如ITU-T H.265建议书标准中采用的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体来说,配置文件可以从视频压缩技术或标准中的所有可用工具中选择某些工具,作为在该配置文件下可用的唯一工具。对于符合标准,已编码视频序列的复杂度可以处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(HypotheticalReference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
在一些示例实施例中,接收器(531)可连同已编码视频一起接收附加(冗余)数据。该附加数据可以被包括作为已编码视频序列的一部分。该附加数据可由视频解码器(510)使用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余条带、冗余图片、前向纠错码等形式。
图6示出了根据本公开的示例实施例的视频编码器(603)的框图。视频编码器(603)可包括在电子装置(620)中。电子装置(620)可进一步包括传输器(640)(例如传输电路)。视频编码器(603)可用于代替图4的示例中的视频编码器(403)。
视频编码器(603)可从视频源(601)(并非图6的示例中的电子装置(620)的一部分)接收视频样本,该视频源可采集将由视频编码器(603)编码的视频图像。在另一示例中,视频源(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)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值……)、图片大小、图片群组(group of pictures,GOP)布局、最大运动矢量搜索范围等。控制器(650)可被配置为具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(603)。
在一些示例实施例中,视频编码器(603)可以被配置为在编码环路中进行操作。作为简单的描述,在示例中,编码环路可包括源编码器(630)(例如,负责基于待编码的输入图片和一个(或多个)参考图片创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。即使嵌入式解码器633在没有熵编码的情况下处理由源编码器630编码的视频流,解码器(633)也以与(远程)解码器将创建的方式类似的方式重建符号以创建样本数据(因为在所公开主题中考虑的视频压缩技术中,熵编码中的符号和已编码视频比特流之间的任何压缩可以是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性的基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)用于提高编码质量。
“本地”解码器(633)的操作可与例如已在上文结合图5详细描述的视频解码器(510)的“远程”解码器的操作相同。然而,另外简要参考图5,当符号可用且熵编码器(645)和解析器(520)可能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(515)和解析器(520)在内的视频解码器(510)的熵解码部分,可能无法完全在编码器的本地解码器(633)中实施。
此时可以观察到,除可仅存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于这个原因,所公开的主题有时可侧重于解码器操作,其与编码器的解码部分有关。由于编码器技术与全面地描述的解码器技术互逆,因此可简化编码器技术的描述。在下文提供仅在某些区域或方面中更详细的描述。
在操作期间,在一些示例实施方式中,源编码器(630)可执行运动补偿预测编码,参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,该运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的像素块与一个(或多个)参考图片的像素块之间颜色信道的差异(或残差(residue))进行编码,该参考图片可被选作该输入图片的预测参考。术语“残差”及其形容词形式“残差的”可以互换使用。
本地视频解码器(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图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
源图片通常可在空间上细分成多个样本编码块(例如,4x4、8x8、4x8或16x16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测性编码,该其它块由应用于块的相应图片的编码分配来确定。例如,I图片的块可进行非预测性编码,或该块可参考同一图片的已编码块来进行预测性编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时间域预测进行预测性编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测进行预测性编码。为了其他目的,源图片或中间处理的图片可以被细分成其他类型的块。如下面进一步详细描述的,编码块和其他类型的块的划分可以遵循或不遵循相同的方式。
视频编码器(603)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所使用的视频编码技术或标准指定的语法。
在一些示例实施例中,传输器(640)可在传输已编码的视频时传输附加数据。源编码器(630)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和条带等其它形式的冗余数据、SEI消息、VUI参数集片段等。
采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的时间或其它相关性。例如,可以将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。该运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,该运动矢量可具有识别参考图片的第三维度。
在一些示例实施例中,双向预测技术可用于帧间图片预测。根据这种双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可通过第一参考块和第二参考块的组合来联合预测该块。
此外,合并模式技术可用于帧间图片预测中以改善编码效率。
根据本公开的一些示例实施例,例如帧间图片预测和帧内图片预测的预测以块为单位执行。例如,将视频图片序列中的图片分割成编码树单元(coding tree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64x64像素、32x32像素或16x16像素。一般来说,CTU可包括三个编码树块(coding tree block,CTB):一个亮度CTB和两个色度CTB。可将每个CTU递归地以四叉树拆分为一个或多个编码单元(CU)。例如,可将64x64像素的CTU拆分为一个64x64像素的CU,或4个32x32像素的CU。32x32块中的一个或多个中每一个可以被进一步分割成4个16x16像素的CU。在一些示例实施例中,在编码期间可以分析每个CU以在各自预测类型中确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,可将CU分割为一个或多个预测单元(PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。可以以各种空间图案执行将CU分割成PU(或不同颜色通道的PB)。例如,亮度或色度PB可以包括如8x8像素、16x16像素、8x16像素、16x8样本等的样本的值(例如,亮度值)的矩阵。
图7示出了根据本公开的另一示例实施例的视频编码器(703)的图。视频编码器(703)被配置为接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将该处理块编码到作为已编码视频序列的一部分的已编码图片中。示例视频编码器(703)可用于代替图4的示例中的视频编码器(403)。
例如,视频编码器(703)接收用于处理块的样本值的矩阵,该处理块为例如8x8样本的预测块等。然后,视频编码器(703)使用例如率失真优化(rate-distortionoptimization,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)还可以利用某些控制信息(用以包括量化器参数(QP)),该信息可由熵解码器(871)提供(未描绘数据路径,因为这仅仅是低数据量控制信息)。
重建模块(874)可被配置为在空间域中组合由残差解码器(873)输出的残差与预测结果(根据具体情况可由帧间预测模块或帧内预测模块输出)以形成重建的块,该重建的块形成重建的图片的一部分作为重建的视频的一部分。可以注意的是,还可执行例如解块操作等其它合适的操作来改善视觉质量。
可以注意的是,可使用任何合适的技术来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在一些示例实施例中,可使用一个或多个集成电路来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(403)、视频编码器(603)和视频编码器(603)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。
回到用于编码和解码的块分割,一般分割可以从基块(base block)开始,并且可以遵循预定义的规则集、特定模式、分割树或任何分割结构或方案。分割可以是分层的和递归的。在按照下面描述的任何示例分割过程或其他过程或其组合对基块进行划分或分割之后,可以获得最终的分区或编码块组。这些分区中的每个分区可以处于分割层次结构中的各种分区级别之一,且可以是各种形状。每个分区可以称为编码块(CB)。对于下面进一步描述的各种示例分割实施方式,每个产生的CB可以是任意允许的大小和分割级别。因为这样的分割可以形成单元,对于这些单元,可以做出一些基本的编码/解码决策,并且可以优化、确定和在已编码视频比特流中用信号表示编码/解码参数,因此这样的分区被称为编码块。最终分区中的最高或最深级别表示树的编码块分割结构的深度。编码块可以是亮度编码块或色度编码块。每种颜色的CB树结构可以称为编码块树(CBT)。
所有颜色通道的编码块可以统称为编码单元(CU)。所有颜色通道的分层结构可以统称为编码树单元(CTU)。CTU中各种颜色通道的分割图案(pattern)或结构可以相同,也可以不同。
在一些实施方式中,用于亮度和色度通道的分割树方案或结构可以不需要相同。换句话说,亮度和色度通道可以具有单独的编码树结构或模式。此外,亮度和色度通道是否使用相同或不同的编码分割树结构以及要使用的实际编码分割树结构可以取决于被编码的条带是P、B还是I条带。例如,对于I条带,色度通道和亮度通道可以具有单独的编码分割树结构或编码分割树结构模式,而对于P或B条带,亮度和色度通道可以共享相同的编码分割树方案。当应用单独的编码分割树结构或模式时,亮度信道可以通过一个编码分割树结构被分割成CB,色度信道可以通过另一个编码分割树结构被分割成色度CB。
在一些示例实施方式中,预定的分割模式可以应用于基块。如图9所示,示例性4路分割树可以从第一预定义级别(例如,64x64块级别或其他大小,作为基块大小)开始,且基块可以分层地向下分割到预定义的最低级别(例如,4x4级别)。例如,基块可受制于到由902、904、906和908指示的四个预定义的分割选项或模式,其中指定为R的分区被允许进行递归分割,即如图9中指示的相同分割选项可以以较低的规模重复直到最低级别(例如,4x4级别)。在一些实施方式中,额外的限制可应用于图9的分割方案。在图9的实施方式中,可以允许矩形分割(例如,1:2/2:1矩形分割),但是可以不允许他们是递归的,而正方形分割则允许是递归的。如果需要的话,按照图9的分割以及递归生成最终的编码块组。可以进一步定义编码树深度以指示来自根节点或根块的分割深度。例如,根节点或根块(例如,64x64块)的编码树深度可以设置为0,并且在根块根据图9被进一步分割一次之后,编码树深度增加1。对于上述方案,从64x64基块到4x4的最小分区的最大或最深级别将是4(从级别0开始)。这种分割方案可以应用于一个或多个颜色通道。每个颜色通道可以按照图9的方案独立进行分割(例如,对于每个分层级别的每个颜色通道,可以独立地确定预定义图案中的分割图案或选项)。可选地,两个或更多个颜色通道可以共享图9的相同分层图案树(例如,可以为每个分层级别的两个或多个颜色通道选择预定义图案中的相同分割图案或选项)。
图10示出了使得能够递归分割以形成分割树的预定义分割图案的另一示例。如图10所示,可以预定义示例性10路分割结构或图案。根块可以在预定义的级别(例如,从128x128级别或64x64级别的基块)开始。图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的矩形分区中的任一矩形分区。可以进一步定义编码树深度以指示来自根节点或根块的分割深度。例如,根节点或根块(例如,128x128块)的编码树深度可以设置为0,并且在根块根据图10被进一步分割一次之后,编码树深度增加1。在一些实施方式中,只有1010中的全正方形分区可以被允许按照图10的图案进行递归分割到分割树的下一级。换句话说,对于T型图案1002、1004、1006和1008内的正方形分区,可以不允许递归分割。如果需要的话,按照图10的分割过程以及递归生成最终的编码块组。这种分割方案可以应用于一个或多个颜色通道。在一些实施方式中,在使用低于8x8级别的分割时可以增加更多的灵活性。例如,在某些情况下可以使用2x2色度帧间预测。
在针对编码块分割的一些其它示例实施方式中,四叉树结构可用于将基块或中间块分割成四叉树分区。这种四叉树分割可以分层地以及递归地应用于任何正方形分区。是否进一步对基块或中间块或分区进行四叉树分割可根据基块或中间块/分区的各种局部特征进行调整。可以进一步调整在图片边界处的四叉树分割。例如,可以在图片边界处执行隐式四叉树分割,使得块将保持四叉树分割直到大小适合图片边界。
在一些其他示例实施方式中,可以使用来自基块的分层二叉分割。对于这样的方案,基块或中间级块可以被分割成两个分区。二叉分割可以是水平或垂直的。例如,水平二叉分割可以将基块或中间块分割成相等的右分区和左分区。同样,垂直二叉分割可以将基块或中间块分割成相等的上分区和下分区。这种二叉分割可以是分层的和递归的。可以在基块或中间块中的每一个基块或中间块处作出是否应该继续二叉分割方案的决定,以及如果进一步继续该方案,作出应该使用水平还是垂直二叉分割的决定。在一些实施方式中,进一步的分割可以在预定义的最低分区大小(一个维度或两个维度)处停止。可选地,一旦达到来自基块的预定义分区级别或深度,则可以停止进一步的分割。在一些实施方式中,可以限制分区的纵横比。例如,分区的纵横比可以不小于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中的相应树结构/表示所示,其中实线表示四叉树分割,虚线表示二叉树分割。可以针对每个二叉分割节点(非叶二叉分割(non-leaf binary partition))使用标志来指示二叉分割是水平的还是垂直的。例如,如1420所示,与1410的分割结构一致,标志“0”可以表示水平二叉分割,标志“1”可以表示垂直二叉分割。由于四叉树分割总是水平和垂直地分割块或分区以产生大小相等的4个子块/分区,因此对于四叉树分割分区,不需要指示分割类型。在一些实施方式中,标志“1”可以表示水平二叉分割,以及标志“0”可以表示垂直二叉分割。
在QTBT的一些示例实施方式中,四叉树和二叉分割规则集可以由以下预定义参数及其相关联的相应函数来表示:
-CTU大小(CTU size):四叉树的根节点大小(基块的大小)
-MinQTSize:允许的最小四叉树叶节点大小
-MaxBTSize:允许的最大二叉树根节点大小
-MaxBTDepth:允许的最大二叉树深度
-MinBTSize:允许的最小二叉树叶节点大小
在QTBT分割结构的一些示例实施方式中,CTU size可以设置为(当考虑并使用示例色度子样本时)具有两个对应的64x64色度样本块的128x128亮度样本,MinQTSize可以设置为16x 16,MaxBTSize可以设置为64x64,以及MinBTSize(对于宽度和高度)可以设置为4x4,以及MaxBTDepth可以设置为4。四叉树分割可以首先应用于CTU以生成四叉树叶节点。四叉树叶节点的大小可以为从其最小允许大小16x16(即,MinQTSize)到128x128(即CTUsize)。如果节点是128x128,由于大小超过了MaxBTSize(即64x64),因此该节点将不会首先通过二叉树进行分割。否则,不超过MaxBTSize的节点可以通过二叉树来进行分割。在图14的示例中,基块为128x128。根据预定义的规则集,基块只能进行四叉树分割。基块的分割深度为0。得到的四个分区中的每个分区都是64x64,不超过MaxBTSize,可以进一步在级别1处进行四叉树或二叉树分割。继续流程。当二叉树深度达到MaxBTDepth(即4)时,可以不考虑进一步的分割。当二叉树节点的宽度等于MinBTSize(即4),可以不考虑进一步的水平分割。类似地,当二叉树节点的高度等于MinBTSize,不考虑进一步的垂直分割。
在一些示例实施方式中,上述QTBT方案可以被配置为支持亮度和色度具有相同QTBT结构或独立QTBT结构的灵活性。例如,对于P和B条带,一个CTU中的亮度和色度CTB可以共享相同的QTBT结构。然而,对于I条带,亮度CTB可以通过QTBT结构分割成CB,色度CTB可以通过另一QTBT结构分割成色度CB。这意味着CU可以用于指代I条带中的不同颜色通道,例如,I条带可以包括由亮度分量的编码块或两个色度分量的编码块,并且P或B条带中的CU可以包括所有三个颜色分量的编码块。
在一些其他实施方式中,QTBT方案可以用上述三叉方案来进行补充。这种实施方式可以称为多类型树(multi-type-tree,MTT)结构。例如,除了节点的二叉分割之外,可以选择图13的三叉分割图案中的一个。在一些实施方式中,只有正方形节点可以进行三叉分割。可以使用附加标志来指示三叉分割是水平的还是垂直的。
两级或多级树的设计,例如QTBT实施方式和由三叉分割补充的QTBT实施方式,可主要由降低复杂性来驱动。理论上,遍历树的复杂度是TD,其中,T表示分割类型的数目,以及D是树的深度。在减小深度(D)的情况下可以通过使用多种类型(T)来进行全权衡。
在一些实施方式中,CB可以被进一步进行分割。例如,为了在编码和解码过程期间进行帧内或帧间预测,可将CB进一步分割成多个预测块。换句话说,CB可以进一步分割为不同的子分区,在不同的子分区中可以做出单独的预测决策/配置。并行地,为了描述执行视频数据的变换或逆变换的级别,可将CB进一步分割成多个变换块(transform block,TB)。将CB分割为PB和TB的方案可以是相同的,也可以不是相同的。例如,每个分割方案可以基于例如视频数据的各种特征使用其自己的过程来执行。在一些示例实施方式中,PB和TB分割方案可以是独立的。在一些其他示例实施方式中,PB和TB分割方案和边界可以是相关的。在一些实施方式中,例如,TB可以在PB分割之后被分割,并且具体地,每个PB在分割编码块之后被确定,然后可以被进一步分割成一个或多个TB。例如,在一些实施方式中,PB可以被分割成一个、两个、四个或其他数量的TB。
在一些实施方式中,为了将基块分割为编码块并进一步分割为预测块和/或变换块,可以不同地处理亮度通道和色度通道。例如,在一些实施方式中,对于亮度通道,可以允许将编码块分割为预测块和/或变换块,而对于一个(或多个)色度通道,可以不允许将编码块分割为预测块和/或变换块。在这样的实施方式中,因此可以仅在编码块级别执行亮度块的变换和/或预测。再例如,亮度通道和一个(或多个)色度通道的最小变换块大小可以不同,例如,亮度通道的编码块可以分割成比色度通道更小的变换和/或预测块。再例如,将编码块分割为变换块和/或预测块的最大深度在亮度通道和色度通道之间可以不同,例如,可以将针对亮度通道的编码块分割为比一个(或多个)色度通道更深的变换块和/或预测块。对于特定示例,亮度编码块可以被分割成多个大小的变换块,这些变换块可以通过的递归分割来表示,并且可以有如正方形、2:1/1:2和4:1/1:4的变换块形状以及从4x4到64x64的变换块大小。然而,对于色度块,只允许为亮度块指定的最大可能的变换块。
在一些示例实施方式中,对于将编码块分割为PB,PB分割的深度、形状和/或其他特征可取决于PB是帧内编码还是帧间编码。
将编码块(或预测块)分割为变换块可以在各种示例方案中实施,包括但不限于递归地或非递归地四叉树分割和预定图案分割,并额外考虑在编码块或预测块的边界处的变换块。通常,得到的变换块可以处于不同的分割级别,可以具有不同的大小,并不需要是正方形的(例如,可以是一些可能的大小和纵横比的矩形)。下面结合图15、16、17更详细地描述进一步的示例。
然而,在一些其它实施方式中,通过上述任何分割方案获得的CB可用作预测和/或变换的基本或最小编码块。换句话说,针对执行帧间预测/帧内预测目的和/或变换目的,不执行进一步分割。例如,从上述QTBT方案获得的CB可直接用作用于执行预测的单元。具体地,这样的QTBT结构消除了多个分区类型的概念,即,消除了CU、PU和TU的分离,并且支持如上所述的CU/CB分区形状的更大灵活性。在这种QTBT块结构中,CU/CB可以是正方形或矩形形状。这种QTBT的叶节点用作用于预测和变换处理的单元,而无需任何进一步的分割。这意味着在这种示例性QTBT编码块结构中,CU、PU和TU具有相同的块大小。
可以以任何方式将上述各种CB分割方案和将CB进一步分割为PB和/或TB(包括无PB/TB分割)进行组合。提供以下特定实施方式作为非限制性示例。
下面描述编码块和变换块分割的具体示例实施方式。在这样的示例实施方式中,可以使用上述递归四叉树分割或(如图19和图10中的那些)预定义的分割图案将基块分割成编码块。在每个级别处,是否应该继续对特定分区进行进一步的四叉树分割可以通过本地视频数据特征来确定。所产生的CB可以处于各种四叉树分割级别,并具有各种大小。关于是否使用帧间图片(时间)或帧内图片(空间)预测来对图片区域进行编码的决策可以在CB级别(或CU级别,对于所有三色通道)处做出。可以根据预定义的PB分割类型将每个CB进一步分割成一个、两个、四个或其他数量的PB。在一个PB内,可以应用相同的预测处理,并可以基于PB将相关信息发送到解码器。在通过应用基于PB分割类型的预测过程获得残差块之后,可以根据类似于CB的编码树的另一四叉树结构将CB分割成TB。在该特定实施方式中,CB或TB可以是但不限于是正方形。此外,在该特定示例中,对于帧间预测,PB可以是正方形或矩形,以及对于帧内预测,PB可以仅是正方形。编码块可以被分割成例如四个正方形TB。每个TB可以被进一步递归地分割(使用四叉树分割)成更小的TB,称为残差四叉树(ResidualQuadtree,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。分别根据图11的水平二叉分割1104和水平三叉分割1108进一步分割1208的第三级左上分区的两个子分区。分区1206采用按照图11的垂直二叉分割1102的第二级分割模式,分成两个分区,这两个分区根据图11的水平三叉分割1108和垂直二叉分割1102进一步进行第三级分割。根据图11的水平二叉分割1104,第四级分割进一步应用于这两个分区中的一个分区。
对于上面的特定示例,最大亮度变换大小可以是64x64,以及支持的最大色度变换大小可以与亮度不同,例如,32x32。即使图12中的上述示例CB通常不被进一步分割成更小的PB和/或TB,当亮度编码块或色度编码块的宽度或高度大于最大变换宽度或高度时,亮度编码块或色度编码块可以在水平和/或垂直方向上自动进行分割,以符合该方向上的变换尺寸限制。
如上所述,对于将基块分割为CB的具体示例中,编码树方案可以支持亮度和色度具有单独的块树结构的能力。例如,对于P和B条带,一个CTU中的亮度和色度CTB可以具有相同的编码树结构。例如,对于I条带,亮度和色度可以具有单独的编码块树结构。当应用单独的块树结构时,亮度CTB通过一个编码树结构被分割成亮度CB,色度CTB通过另一个编码树结构被分割成色度CB。这意味着I条带中的CU可以包括亮度分量的编码块或两个色度分量的编码块,并且P或B条带中的CU总是包括所有三个颜色分量的编码块,除非视频是单色的。
当编码块被进一步分割为多个变换块时,其中的变换块可以按照各种顺序或扫描方式在比特流中进行排序。下面进一步详细描述将编码块或预测块分割成变换块以及变换块的编码顺序的示例实施方式。在一些示例实施方式中,如上所述,变换分割可以支持多个形状的变换块,例如,1:1(正方形)、1:2/2:1和1:4/4:1,其中变换块大小的范围从例如4x4到64x64。在一些实施方式中,如果编码块小于或等于64x64,那么变换块分割可以仅应用于亮度分量,如此对于色度块,变换块大小与编码块大小相同。否则,如果编码块宽度或高度大于64,那么亮度和色度编码块两者可分别被隐式地分割成min(W,64)x min(H,64)和min(W,32)x min(H,32)变换块的倍数。
在变换块划分的一些示例实施方式中,对于帧内和帧间编码块,编码块可以进一步被分割成多个变换块,划分深度高达预定级别数(例如,2级)。变换块分割深度和大小可以相关联。对于一些示例实施方式,从当前深度的变换大小到下一深度的变换大小的映射如下表1所示。
表1变换分割大小设置
Figure BDA0004153672550000331
/>
基于表1的示例映射,对于1:1正方形块,下一级变换分割可以创建四个1:1正方形子变换块。例如,变换分割可以在4x4处停止。如此,当前深度为4x4的变换大小对应于下一深度的相同大小4x4。在表1的示例中,对于1:2/2:1的非正方形块,下一级变换分割可以创建两个1:1的正方形子变换块,而对于1:4/4:1的非正方形块,下一级变换分割可以创建两个1:2/2:1的子变换块。
在一些示例实施方式中,对于帧内编码块的亮度分量,可以相对于变换块分割应用附加限制。例如,对于变换分割的每一级,所有子变换块可以被限制为具有相等的大小。例如,对于32x16编码块,1级变换分割创建两个16x16子变换块,2级变换分割创建八个8x8子变换块。换句话说,第二级分割必须应用于所有第一级子块,以保持变换单元大小相等。图15示出了根据表1的帧内已编码正方形块的变换块分割的示例,以及通过箭头示出的编码顺序。具体地,1502示出了正方形编码块。在1504中示出了根据表1分成4个大小相等的变换块的第一级分割,其中编码顺序通过箭头指示。在1506中示出了根据表1将所有第一级等大小块分成16个等大小变换块的第二级分割,其中编码顺序通过箭头指示。
在一些示例实施方式中,对于帧间已编码块的亮度分量,可以不应用上述帧内编码的限制。例如,在第一级变换分割之后,子变换块中的任一子变换块可以进一步独立地进行一级以上的分割。因此,产生的变换块可以具有相同的大小,也可以不具有相同的大小。图16示出了将帧间已编码块分割成变换块及其编码顺序的示例。在图16的示例中,帧间已编码块1602根据表1被分割成两级的变换块。在第一级,帧间已编码块被分割成大小相等的四个变换块。然后,如1604所示,仅四个变换块中的一个(不是全部)被进一步分割成四个子变换块,导致具有两种不同大小的总共7个变换块。这7个变换块的示例编码顺序由图16的1604中的箭头示出。
在一些示例实施方式中,对于一个(或多个)色度分量,可以应用针对变换块的一些额外限制。例如,对于一个(或多个)色度分量,变换块大小可以与编码块大小一样,但不小于预定义的大小,例如8x8。
在一些其他示例实施方式中个,对于宽度(W)或高度(H)大于64的编码块,亮度和色度编码块可分别被隐式地分割成min(W,64)x min(H,64)和min(W,32)x min(H,32)倍数的变换单元。这里,在本公开中,“min(a,b)”可以返回a和b之间的较小值。
图17进一步示出了用于将编码块或预测块分割成变换块的另一可选示例方案。如图17所示,可以根据编码块的变换类型将预定义的分割类型集应用于编码块,而不使用递归变换分割。在图17所示的具体示例中,可以应用6个示例分割类型中的一个来将编码块分割成各种数目的变换块。这种生成变换块分割的方案可以应用于编码块或预测块。
更详细地,图17的分割方案为任何给定的变换类型提供多达6个示例分割类型(变换类型是指例如主变换的类型,例如ADST等)。在该方案中,可以基于如率失真成本为每个编码块或预测块分配变换分割类型。在示例中,可基于编码块或预测块的变换类型来确定分配给编码块或预测块的变换分割类型。特定的变换分割类型可以对应于变换块分割大小和模式,如图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)可以以各种方式预测,而不是直接编码,从而利用视频数据中的各种相关性和冗余来提高压缩效率。相应地,这种预测可以以各种模式来执行。例如,可以通过帧内预测或帧间预测来预测视频块。特别是在帧间预测模式中,视频块可以由一个或多个其他参考块或帧间预测器块通过单参考或复合参考帧间预测从一个或多个其他帧中进行预测。为了实现帧间预测,参考块可以通过其帧标识符(参考块的时间位置)和指示被编码或解码的当前块和参考块之间的空间偏移的运动矢量(参考块的空间位置)来指定。参考帧标识和运动矢量可以在比特流中用信号表示。作为空间块偏移的运动矢量可以直接用信号表示,或者可以通过另一参考运动矢量或预测器运动矢量来预测。例如,可以通过参考运动矢量(例如,候选相邻块的)直接预测当前运动矢量,或者通过参考运动矢量和当前运动矢量与参考运动向量之间的运动矢量差(MVD)的结合来预测当前运动矢量。后者可以称为具有运动矢量差的合并模式(MMVD)。参考运动矢量可以在比特流中被识别为指向例如当前块的空间相邻块或临时相邻但空间共位的块的指针。
在一些其他示例实施方式中,可以采用帧内块拷贝(IBC)预测。在IBC中,可以使用当前帧中(而不是时间上不同的帧,因此称为“帧内”)的另一个块结合块矢量(BV)来预测当前帧中的当前块,该块向量用于指示帧内预测器或参考块的位置相对于被预测的块的位置的偏移。编码块的位置可以通过例如相对于当前帧(或条带)的左上角的左上角的像素坐标来表示。因此,IBC模式在当前帧内使用类似帧间预测概念。例如,BV可由其他参考BV直接或结合当前BV和参考BV之间的BV差来预测,这与在帧间预测中使用参考MV和MV差来预测MV是一致的。IBC在提供改进的编码效率方面是有用的,特别是对于具有屏幕内容的视频帧进行编码和解码,该屏幕内容具有例如大量重复模式,例如文本信息,其中相同的文本片段(字母、符号、单词、相位等)出现在同一帧的不同部分中,并可以用于相互预测。
在一些实施方式中,IBC可以被视为除了正常的帧内预测模式和正常的帧间预测模式之外的单独的预测模式。因此,可以在三种不同的预测模式:帧内预测、帧间预测和IBC模式中进行特定块的预测模式的选择并用信号表示。在这些实施方式中,可以在这些模式中的每一种模式中建立灵活性,以优化这些模式中的每一种模式的编码效率。在一些其它实施方式中,可以使用类似的运动矢量确定、参考和编码机制,将IBC视为帧间预测模式内的子模式或分支。在这样的实施方式中(集成帧间预测模式和IBC模式),IBC的灵活性可能受到一些限制以协调一般帧间预测模式和IBC模式。然而,这种实施方式不太复杂,同时仍然可以利用IBC来提高以例如屏幕内容为特征的视频帧的编码效率。在一些示例实施方式中,利用针对单独的帧间预测模式和帧内预测模式的现有预先指定的机制,帧间预测模式可以被扩展以支持IBC。
这些预测模式的选择可以在各种级别进行,包括但不限于序列级别、帧级别、图片级别、条带级别、CTU级别、CT级别、CU级别、CB级别或PB级别。例如,出于IBC的目的,关于是否采用IBC模式的决定可以在CTU级别做出并用信号表示。如果CTU被用信号表示为采用IBC模式,那个整个CTU中的所有编码块可通过IBC进行预测。在一些其它实施方式中,可以在超级块(super block,SB)级别确定IBC预测。每个SB可以以各种方式(例如,四叉树分割)被分割成多个CTU或分区。下面进一步提供示例。
图18示出了从解码器的角度包含多个CTU的当前帧的部分的示例快照。每个正方形块(如1802)表示一个CTU。如上面详细描述的,CTU的大小可以是各种预定义大小中的一种。每个CTU可以包括一个或多个编码块(或预测块,对于特定的颜色通道)。有横线阴影的CTU表示那些已经重建的CTU。CTU 1804表示正在重建的当前CTU。在当前CTU 1804中,有横线阴影的编码块表示在当前CTU中已经重建的那些块,有斜线阴影的编码块1806当前正在被重建,而当前CTU 1804中没有阴影的编码块正在等待重建。其他没有阴影的CTU尚未处理。
用于预测IBC中的当前编码块的参考块(相对于当前块)的位置或偏移可以通过BV指示,如图18中的示例箭头所示。例如,BV可以以矢量形式指示参考块(在图18中标记为“Ref”)和当前块的左上角之间的位置差。而图18是使用CTU作为基本IBC单元来示出的。基本原则适用于将SB用作基本IBC单元的实施方式。在这样的实施方式中,如下面更详细描述的,每个超级块可以被分成多个CTU,且每个CTU可以被进一步分成多个编码块。
如下面进一步更详细公开的,取决于参考CTU/SB相对于IBC的当前CTU/SB的位置,参考CTU/SB可以称为本地CTU/SB或非本地CTU/SB。本地CTU/SB可以指与当前CTU/SB重合的CTU/SB,或者指靠近当前CTU/SB并且已经被重建的CTU/SB(例如,当前CTU/SB的左相邻CTU/SB)。非本地CTU/SB可以指离当前CTU/SB更远的CTU/SB。当执行当前编码块的IBC预测时,对于参考快可以搜索本地CTU/SB和非本地CTU/SB中的任一个或两者。由于对于本地或非本地CTU/SB参考的已重建样本的片上和片外存储管理(例如,片外图片缓冲器(DPB)和/或片上存储器(on-chip memory))可以不同,因此实现IBC的具体方式可以取决于参考CTU/SB是本地的还是非本地的。例如,已重建本地CTU/SB样本可以适合于存储在IBC的编码器或解码器的片上存储器中。例如,已重建非本地CTU/SB样本可以存储在片外DPB存储器中。
在一些实施方式中,可以限制可被用作当前编码块1804的参考块的已重建块的位置。这种限制可以是各种因素的结果,并可以取决于IBC是作为一般帧间预测模式的集成部分、帧间预测模式的特殊扩展还是单独和独立的IBC模式来实现。在一些示例中,可以仅搜索当前已重建的CTU/SB样本以识别IBC参考块。在一些其他示例中,如图18的粗虚线框1808所示,当前已重建的CTU/SB样本和另一相邻已重建的CTU/SB样本(例如,左侧相邻的CTU/SB)可用于参考块搜索和选择。对于这样的实施方式,只有本地已重建CTU/SB样本可以用于IBC参考块搜索和选择。在一些其他示例中,由于各种其他原因,某些CTU/SB可能不可用于IBC参考块搜索和选择。例如,如下文进一步描述的,图18中标记有交叉线的CTU/SB 1810可能用于特殊目的(例如,波前并行处理),因此他们可能不可用于当前块1804的参考块的搜索和选择。
在一些实施方式中,对允许用于提供IBC参考块或参考样本的已经重建的CTU/SB的限制可以是由于采用并行解码,其中多个编码块同时被解码而导致的结果。图19示出了一个示例,其中每个正方形表示一个CTU/SB。如图19中有斜线阴影的CTU/SB所示,可以实施并行解码,其中可以以并行处理的方式对多个连续行以及每隔一列(每两列)中的多个CTU/SB进行重建。其他具有水平线阴影的CTU/SB已经被重建,无阴影的CTU/SB是待重建的CTU/SB。在这样的并行处理中,对于其左上坐标为(x0,y0)的当前并行处理的CTU/SB,只有当垂直坐标y小于y0以及水平坐标x小于x0+2(y0-y)时,才能访问(x,y)处的已重建样本以预测IBC中的当前CTU/SB,因此,具有水平线阴影的已重建CTU/SB可用于并行处理的当前块的参考。
在一些实施方式中,将立即重建的(immediately reconstructed)样本写入片外DPB的回写延迟可能会进一步限制可用于为当前块提供IBC参考样本的CTU/SB,特别是当片外DPB用于保存IBC参考样本时。图19示出了一个示例,其中在图19所示的那些限制的基础上,还可以应用其他限制。具体地,为了允许硬件回写延迟,IBC预测可以不访问立即重建区域来搜索和选择参考块。限制或禁止的立即重建的区域的数量可以是1~n CTU/SB(n为正整数)。因此,在图19的特定并行处理限制的基础上,一个当前CTU/SB的左上位置的坐标是(x0,y0),如果垂直坐标y小于y0以及水平坐标小于x0+2(y0-y)-D,那么可以通过IBC访问位置(x,y)处的预测,其中D表示对限制/禁止我们作为IBC参考的立即重建区域的数量(例如,在当前CTU/SB的左侧)。图20示出了对于D=2,这种额外的CTU/SB被限制出来作为IBC参考样本。这些不能作为IBC参考的额外的CTU/SB由反斜线阴影表示。
在一些实施方式中,也在下面进一步详细描述,本地和非本地CTU/SB搜索区域都可以用于IBC参考块搜索和选择。此外,当使用片上存储器时,对于已经构建的CTU/SB作为IBC参考的可用性,关于写回延迟的一些限制可以放宽或移除。在一些进一步的实施方式中,由于例如使用片上或片外存储器的参考块的缓冲管理的不同,本地CTU/SB和非本地CTU/SB在共存时的使用方式可以不同。在下面的公开中更详细地描述这些实施方式。
在一些实施方式中,IBC可以实现为帧间预测模式的扩展,将当前帧视为帧间预测模式中的参考帧,使得当前帧内的块可以用作预测参考。因此,即使IBC过程仅涉及当前帧,这样的IBC实施方式也可以遵循帧间预测的编码路径。在这样的实施方式中,帧间预测模式的参考结构可以适于IBC,其中使用BV对参考样本的寻址机制的表示可以类似于帧间预测中的运动矢量(MV)。因此,IBC可以实现为特殊的帧间预测模式,依赖于相似或相同的语法结构和解码过程作为基于当前帧作为参考帧的帧间预测模式。
在这样的实施方式中,由于IBC可以被视为帧间预测模式,因此仅帧内预测的条带必须变成允许使用IBC的预测的条带。换句话说,仅帧内预测的条带不会是帧间预测(因为帧内预测模式不会调用任何帧间预测处理路径),因此IBC不能用于这种仅帧内条带中的预测。当IBC适用时,编码器将通过一个指向当前图片的指针的条目来扩展参考图片列表。因此,当前图片可以占用共享解码图片缓冲器(DPB)的多达一个图片大小的缓冲器。使用IBC的信令可以隐含在帧间预测模式中参考帧的选择中。例如,当所选择的参考图片指向当前图片时,如果需要且可用,编码单元将采用具有特殊IBC扩展的类似帧间预测的编码路径的IBC。在一些特定实施方式中,与常规帧间预测相反,IBC过程中的参考样本在用于预测之前可以不进行环路滤波。此外,相应的参考当前图片可以是长期参考帧,因为它将是接近下一个要被编码或解码的帧。在一些实施方式中,为了最小化存储器需求,编码器可以在重建当前图片之后立即释放缓冲器。当已重建图片在真实帧间预测中成为用于后续帧的参考图像时,编码器可以将该已重建图片的已滤波版本填充回DPB中作为短期参考,即使在用于IBC时它可能是未滤波的。
在上面的示例实施方式中,即使IBC可以仅仅是帧间预测模式的扩展,也可以用可能偏离正常帧间预测的几个特殊过程来处理IBC。例如,IBC参考样本也可以是未滤波的。换句话说,环内滤波处理之前的已重建样本可用于IBC预测,环内滤波处理包括去块滤波、样本自适应偏移(Sample Adaptive Offset,SAO)滤波、交叉分量样本偏移(Cross-ComponentSample Offset,CCSO)滤波等,而正常帧间预测模式采用已滤波样本用于预测。再例如,可以不执行针对IBC的无亮度样本插值,并且仅当色度BV在从亮度BV导出时是非整数时色度样本插值才可以是必要的。再例如,当色度BV是非整数,且针对IBC的参考块在IBC参考的可用区域的边界附近时,周围的已重建样本可以在边界之外以执行色度内插。指向单一的邻界线的BV不可能避免这种情况。
在这样的实施方式中,IBC对当前块的预测可以重用帧间预测过程的预测和编码机制,包括使用参考BV来预测当前BV以及例如额外的BV差。然而,在一些具体实施方式中,亮度BV可以以整数分辨率来实现,而不是如常规帧间预测的MV中用分数精度来实现。
在一些实施方式中,除了用于波前并行处理(Wavefront Parallel Processing,WPP)的在当前CTU的右侧和上方的两个CTU(图18中的交叉线指示)(如图18中的1810所示)之外,图18中用水平阴影线指示的所有CTU和SB都可以用于搜索和选择IBC参考块。因此,除了用于并行处理目的的一些例外,几乎是当前图片的整个已经重建的区域。
在一些其它实施方式中,可以从中搜索和选择IBC参考块的区域可以被限制为本地CTU/SB。图18的粗虚线框1808指示一个示例。在该示例中,当前CTU左侧的CTU/SB可以在当前CTU的重建过程开始时用作IBC的参考样本区域。当使用该本地参考区域时,可以分配片上存储器空间以保持本地CTU/SB用于IBC参考,而不是在DPB中分配额外的外部存储器空间。在一些实施方式中,固定的片上存储器可以用于IBC,从而降低在硬件架构中实现IBC的复杂度。因此,独立于正常帧间预测的专用IBC模式可以使用片上存储器来实现,而不是仅仅是作为帧间预测模式的扩展来实现。
例如,对于每个颜色分量,用于存储本地IBC参考样本(例如,左侧CTU或SB)的固定片上存储器大小可以是128x128。在一些实施方式中,最大CTU大小也可以是128x128。在这种情况下,参考样本存储器(RSM)可以保存具有单个CTU大小的样本。在一些其他可选实施方式中,CTU大小可以更小。例如,CTU大小可以是64x64。因此,RSM可以同时保存多个(在该示例情况下为4个)CTU。在一些其它实施方式中,RSM可以保存多个SB,每个SB可以包括一个或多个CTU,并且每个CTU可以包括多个编码块。
在本地片上IBC参考的一些实施方式中,片上RSM保存一个CTU,并可以实现连续更新机制用于用当前CTU的已重建样本替换左相邻CTU的已重建样本。图21示出了在重建过程期间的四个中间时间处的这种连续RSM更新机制的简化示例。在图21的示例中,RSM具有可容纳一个CTU的固定大小。CTU可包括隐含分区。例如,CTU可以被隐式地分割为四个分离的区域(例如,四叉树分割)。每个区域可以包括多个编码块。CTU的大小可以是128x128,而对于示例四叉树分割每个示例区域或分区的大小可以是64x64。在每个中间时间中有水平线阴影的RSM的区域/分区保存左相邻CTU的对应的已重建参考样本,以及有灰色垂直线阴影的区域/分区保存当前CTU的对应的已重建参考样本。有斜线阴影的RSM的编码块表示正在被编码/解码/重建的当前区域内的当前编码块。
在表示当前CTU重建的开始的第一中间时间,如2102所示,针对四个示例区域中的每一个区域RSM可仅包括左相邻CTU的重建参考样本。在其他三个中间时间中,重建过程逐渐用当前CTU的重建样本替换左相邻CTU的重建参考样本。当编码器处理该区域/分区的第一个编码块时,RSM中64x64的区域/分区发生复位。在重置RSM的区域时,该区域被认为是空白的,并被认为没有保存任何用于IBC的已重建参考样本(换句话说,RSM的该区域不准备用作IBC参考样本)。当处理该区域中的相应当前编码块时,RSM中的相应块归入当前CTU的相应块的已重建样本,以用作下一个当前块的IBC的参考样本,如图21的中间时间2104、2106、2108所示。一旦对应于RSM的区域/分区对所有编码块进行了处理,该整个区域就用这些当前编码块的已重建样本填充作为IBC参考样本,如图21中各中间时间中完全用垂直线阴影的区域所示。因此,在中间时间2104和2106中,RSM中的一些区域/分区保存来自相邻CTU的IBC参考样本,一些其他区域/分区完全保存来自当前CTU的参考样本,而一些区域/分区部分地保存来自当前CTU的参考样本以及部分地空白(由于上述复位处理,不用于IBC参考)。当最后一个区域(例如,右下角区域)被处理时,所有其他三个区域将保存当前CTU的重建样本作为IBC的参考样本,而最后一个区域/分区部分地保存当前CTU中的对应编码块的重建样本以及部分地空白,直到CTU的最后编码块被重建,此时整个RSM保存当前CTU的重建样本并且如果还以IBC模式编码,RSM准备用于下一个CTU。
图22示出了空间上RSM在具体中间时间的上述连续更新实现,即,左相邻CTU和具有当前编码块(斜线阴影的块)的当前CTU都被示出。在RSM中且有效地作为当前编码块的IBC参考样本的这两个CTU的对应重建样本由水平和垂直阴影线示出。在该示例中的特定重建时间,在RSM中,处理已经将由左侧相邻CTU中的无阴影区域覆盖的样本替换为由垂直阴影线覆盖的当前CTU的区域。来自相邻CTU的剩余效果样本显示为水平线阴影。
在上面的示例实施方式中,当固定RSM大小与CTU大小相同时,RSM被实现为包含一个CTU。在CTU大小较小的一些其它实施方式中,RSM可以包含多于一个的CTU。例如,CTU的大小可以是32x32,而固定RSM的大小可以是128x128。因此,RSM可以保存16个CTU的样本。遵循上述相同的基础RSM更新原则,RSM在被重建之前可以保存当前128x128补丁(patch)的16个相邻CTU。一旦当前128x128补丁的第一个编码块的处理开始,可以如上述保存单个CTU的RSM更新最初填充有一个相邻CTU的重建样本的RSM的第一个32x32区域。剩余的15个32x32区域包含15个相邻的CTU作为IBC的参考样本。一旦与被解码的当前128x128补丁的第一个32x32区域对应的CTU被重建,用该CTU的重建样本更新RSM的第一个32x32区域。然后,可以对与当前128x128补丁的第二个32x32区域对应的CTU进行处理,并最终用重建的样本来更新。该过程持续到RSM的16个32x32区域包含当前128x128补丁的重建样本(全部15个CTU)。解码过程然后移动到下一个128x128补丁。
在一些其他实施方式中,作为图21和22的扩展,RSM可以保存一组相邻的CTU。一次处理一个当前CTU,以上述方式用已重建的当前CTU更新保存最远相邻CTU的RSM部分。对于下一个当前CTU,同样,更新和替换RSM中最远的相邻CTU。因此,固定大小RSM中保存的多个CTU更新为IBS的相邻CTU的移动窗口。
使用片上RSM的本地IBC的另一具体示例实施方式如图23所示。在该示例中,IBC模式的最大块大小可受到限制。例如,最大IBC块大小可以是64x64。片上RSM可被配置为与超级块(SB)相对应的固定大小,例如128x128。图23的RSM实施方式使用与图21和图22的实施方式类似的基本原理。在图23中,RSM可以保尺码多个相邻和/或当前CTU作为IBC参考样本。在图23的示例中,SB可以是四叉树分割。相应地,RSM可以被四叉树分割成4个区域或单元,每个区域或单元为64x64。这些区域中的每个区域可以保存一个或多个编码块。可选地,这些区域中的每个区域可以保存一个或多个CTU,且每个CTU可以保存一个或多个编码块。四叉树区域的编码顺序可以是预定义的。例如,编码顺序可以是左上、右上、左下、右下。图23的SB的四叉树分割仅是示例。在一些其他可选实施方式中,SB可以按照任何其他方案进行分割。本文描述的针对本地IBC的RSM更新实施方式应用于那些可选的分割方案。
在这种本地SBC实施方式中,可用于SBC预测的本地参考块可被限制。例如,可要求参考块和当前块应该在同一SB行中。具体地,本地参考块可以仅位于当前SB中或当前SB左侧的一个SB中。通过另一允许的编码块在SBC中预测的示例当前块由图23中的虚线箭头示出。当当前SB或左SB用于SBC参考时,RSM中的参考样本更新过程可以遵循上述复位过程。例如,当64x64单元参考样本存储器中的任何一个开始用来自当前SB的重建样本进行更新时,整个64x64单元中先前存储的参考样本(来自左侧SB)被标记为不可用于生成IBC预测样本,并用当前块的重建样本逐渐进行更新。
图23示出了在面板2302中的当前SB的本地IBC解码期间RSM的5个示例状态。同样,在每个示例状态中的水平线阴影的RSM的区域/分区保存对应的左相邻SB的四叉树的对应的参考样本,且灰色垂直线阴影的区域/分区保存当前SB的对应参考样本。斜线阴影的RSM的编码块表示正在被编码/解码的当前区域内的当前编码块。在每个当前SB的编码开始时,RSM存储先前编码的SB的样本(图23的RSM状态(0))。当当前块位于当前SB中的四个64x64四叉树区域中的一个时,RSM中的相应区域被复位并用于存储当前64x64编码区域的样本。这样,RSM的每个64x64四叉树区域中的样本逐渐被当前SB(状态(1)-状态(3))中的样本更新。当当前SB已被完全编码时,整个RSM被当前SB(状态(4))的所有样本填充。
图23的面板2302中的64x64区域中的每一个都用空间编码序列号来标记。序号0-3表示左邻居SB的四个64x64四叉树区域,而序号4-7表示当前SB面板的四个64x64四叉树区域。在图23中,对于图23的面板2302的RSM状态(1)、状态(2)和状态(3),面板2304进一步示出了在128x28 RSM中的参考样本的左相邻和当前SB中的相应空间分布。没有交叉线的阴影区域表示RSM中具有重建样本的区域。具有交叉线的阴影区域表示RSM中左SB的重建样本被重置的区域(因此不可用作本地SBC的参考样本)。
64x64区域的编码顺序和相应的RSM更新顺序可以遵循水平扫描(如上面图23所示)或垂直扫描。水平扫描从左上开始,到右上、左下和右下。垂直扫描从左上开始、到左下、右上和左下。图24的面板2402和2404分别示出了对于水平扫描和垂直扫描的左相邻SB和当前SB参考样本更新过程,用于在重建当前SB的四个64x64区域中的每一个时进行比较。在图24中,用没有交叉线的水平线阴影的64x64区域表示具有可用于SBC的样本的区域。用具有交叉线的水平线阴影的区域表示已经被更新到当前SB的相应重建样本的左侧相邻SB的区域。无阴影区域表示当前SB的未处理区域。斜线阴影的块表示正在处理的当前编码块。
如图24所示,根据当前编码块相对于当前SB的位置,可以应用关于IBC的参考块的以下限制。
如果当前块落入当前SB的左上64x64区域,那么除了当前SB中已重建样本之外,还可以参考左侧SB的右下、左下和右上64x64块中的参考样本,如图24的2412(对于水平扫描)和2422(对于垂直扫描)所示。
如果当前块落入当前SB的右上64x64块中,那么除了当前SB中已重建样本之外,如果相对于当前SB位于(0,64)处的亮度样本还没有被重建,则当前块还可以参考左SB的左下64x64块和右下64x64块中的参考样本(图24的2414)。否则,当前块也可以参考左SB的右下64x64块中的参考样本用于SBC(图24的2426)。
如果当前块落入当前SB的左下64x64块中,那么除了当前SB中已重建样本之外,如果相对于当前SB的亮度位置(64,0)还没有被重建,则当前块还可以参考左SB的右上64x64块和右下64x64块中的参考样本(图24的2424)。否则,当前块也可以参考左SB的右下64x64块中的参考样本用于SBC(图24的2416)。
如果当前块落入当前SB的右下64x64块中,那么当前块只能参考当前SB中已重建的样本用于SBC(图24的2418和2428)。
如上所述,在一些示例实施方式中,本地和基于非本地的CTU/SB之一或两者都可用于IBC参考块搜索和选择。此外,当对于本地参考使用片上RSM时,对于已经构建的CTU/SB作为IBC参考的可用性,关于写回延迟的一些限制可以放宽或移除。无论是否采用并行解码,都可以应用这样的实施方式。
可用于IBC的本地和非本地参考CTU/SB的示例实施方式如图25所示,同样,其中每个正方形表示一个CTU/SB。有斜线阴影的CTU/SB(标记为“0”)表示当前的CTU/SB,而有水平线阴影的CTU/SB(标记为“1”)、有垂直线阴影的CTU/SB(标记为“2”)和有反斜线阴影的CTU/SB表示已经构建的区域。无阴影的CTU/SB表示尚未重建的区域。假设使用类似于图19和图20的并行解码。由于当仅片外存储器用于SBC参考时对DPB的回写延迟(参见图20),因此具有垂直线(“2”)和反斜线(“3”)阴影的CTU/SB表示通常被限制为当前CTU/SB的SBC参考的示例区域。当使用片上RSM时,则图20的一个或多个限制区域可以直接从RSM参考,因此可以不需要被限制出来。现在可通过RSM访问以供IBC参考的限制区域的数量可取决于RSM的大小。在图25的示例中,假设RSM可以保存一个CTU/SB,并采用上述RSM更新机制。如此,图20的有反斜线阴影(标记为“3”)的两组相邻CTU/SB中的一组可用于本地参考。然后,RSM保存来自左CTU/SB和当前CTU/SB的样本。因此,在图25的示例中,可用于非本地SBC参考块的搜索区域包括标记为“1”的CTU/SB(搜索区域1,或SA1),可用于本地SBC参考块的扫描区域包括标记为“2”和“0”的CTU/SB(SA2),以及SBC参考块的限制输出区域包括由于回写延迟而标记为“3”的CTU/SB。在一些其它实施方式中,如果片上RSM大小足够容纳整个限制CTU/SB,那么所有这些潜在限制区域都可包括在RSM中用于本地参考。
图26进一步示出了当本地和非本地参考搜索都被允许和启用时,对可在IBC中用于预测当前编码块的参考编码块的进一步限制。在图26中,同样,每个正方形表示一个CTU/SB。水平线阴影的CTU/SB表示已经构建的CTU/SB。无阴影的CTU/SB表示尚未重建的区域。具有反斜线阴影的CTU/SB是不能作为IBC参考的CTU/SB(这里只显示了当前CTU/SB被允许用于IBC参考,然而,基本原则适用于只有两个具有反斜线阴影的CTU/SB中的第一个是不允许的情况,如图25所示)。具有斜线阴影的编码块是当前编码块。编码块A、B和C是用于当前编码块的IBC的潜在参考块。当前CTU/SB中的其他阴影编码块已经被构建。在该实施方式中,因为编码块B完全位于限制区域之外并且在SA2(本地搜索区域)中,并且已经被重建,因此参考编码块B是允许的。因为编码块C完全位于限制区域之外并且在SA1(非本地搜索区域)中,并且已经被重建,因此编码块C也是允许的。因为编码块A覆盖SA1和SA2,因此编码块A不允许用作预测块。换句话说,由于对于SA1和SA2的IBC的处理可能不同并且也不容易协调,因此覆盖SA1和SA2两者的参考编码块可不被允许。
回到IBC中的块矢量(BV)的编码,在一些示例实施方式中,可以采用类似于为帧间预测指定的那些处理,但是可以使用针对BV预测候选列表构建的更简单的规则。例如,一些帧间预测实施方式的候选列表构建可以由五个空间的、一个时间的和六个基于历史的候选组成。在该帧间预测中,可以对基于历史的候选执行多个候选比较,以避免最终候选列表中的重复条目。另外,列表构建可以包括成对平均的候选。在BV预测的一些示例实施方式中,IBC列表构建过程可以考虑多个(例如,两个)空间相邻的BV和多个(例如,五个)基于历史的BV(HBVP),其中当被添加到候选列表时,只有第一个HBVP可以与空间候选进行比较。虽然常规帧间预测可以使用两个不同的候选列表,一个用于合并模式,另一个用于常规模式,但是IBC中的候选列表可以用于关于BV的两种情况。然而,合并模式最多可以使用列表中的六个候选,而常规模式只使用前两个候选项。在一些示例实施方式中,块矢量差(BVD)编码可以采用运动矢量差(MVD)过程,导致任何幅度的最终BV。已重建BV可以指向参考样本区域之外的区域,需要通过使用对RSM的宽度和高度的模运算去除每个方向的绝对偏移来进行校正。
在使用本地和非本地IBC参考中的一个或两个的上述实施方式中,在某些情况下可以使用环路滤波器。例如,当使用基于非本地的IBC搜索范围(具有或不具有基于本地的IBC搜索范围)时,例如对于一张图片,可以在IBC中对同一图片禁用环路滤波器。另一方面,如果仅使用基于本地的IBC搜索范围(不使用基于非本地的IBC搜索范围),则环路滤波器可用于同一图片。环路滤波器可以包括但不限于去块滤波器、受限方向增强滤波器(Constrained Directional Enhancement Filter,CDEF)、采样自适应偏移(SampleAdaptive Offset,SAO)滤波、交叉分量采样偏移(Cross-Component Sample Offset,CCSO)滤波器和环路恢复滤波器(Loop Restoration filter,LR)。以这种方式,可以避免专用于启用IBC的第二图片缓冲器。
现在回到IBC相关的信令,在一些实施方式中,对于当前块,首先在比特流中发送用于指示针对当前块是否启用IBC的标志。该标志可以在如CTU、CU、序列、条带或图片级别的更高级别上用信号表示。然后,如果当前块处于IBC模式(作为与帧间预测模式分离的模式,或者作为帧间预测模式的整体部分),则可以搜索参考块,并可以通过编码器确定相应的BV。对于BV预测,可以在解码器中通过从当前BV减去预测的BV来导出BV差,然后可以根据BV差的水平和垂直分量将BV差分类为多种类型(例如,4种类型)。可以在比特流中进一步用信号表示BV不同类型信息,并且之后可以用信号表示两个(水平和垂直)分量的BV差值。在一些示例实施方式中,高级语法标志集进一步包括在比特流中,并用于指示IBC预测的可允许的本地和/或非本地参考范围。该标志集可以在各种级别(例如,CTU、CU、序列、条带或图片级别)上用信号表示。
例如,称为global_ibc_flag的语法标志可用于打开/关闭基于非本地的区域,而称为local_ibc_flag的另一语法标志可用于打开/关闭用于IBC预测的基于本地的区域。可以相互独立地控制这两个语法标志。换句话说,这些标志可以具有任意标志值的组合。这些标志中的每个标志都可以在相同的不同级别上用信号表示。在一个示例中,当两个标志都被关闭时,实际上IBC被禁用。在这种情况下,其中在非本地IBC标志和本地IBC标志针对特定级别独立地用信号表示,上述在该级别(例如,图片级别或序列级别)的IBC的启用标志不需要在比特流中用信号表示。
在一些示例实施方式中,非本地IBC语法标志global_ibc_flag和本地IBC语法标志local_ibc_flag可以配置为具有某些依赖性。例如,可以首先用信号表示非本地global_ibc_flag。根据local_ibc_flag的值,可以用信号表示或推断local_ibc_flag。当global_ibc_flag等于0(表示未使用)时,结合IBC用信号(例如,上述高级IBC启用语法)表示为正在被使用,可推断local_ibc_flag为1(表示已使用),而不是用信号表示。在该示例中,本地和非本地标志中的一个或两个仅在启用IBC的标志打开时用信号表示。否则,这两个标志都不需要用信号表示。
在一些示例实施方式中,当使用基于非本地的IBC搜索范围时,例如对于一张图片,将对同一图片禁用环路滤波器。另一方面,如果仅使用基于本地的IBC搜索范围(但是不是基于非本地的IBC搜索范围),则环路滤波器可用于同一图片。因此,在使用IBC而不使用基于非本地的IBC搜索范围的条件下,用信号表示IBC中环路滤波器的启用标志。换句话说,如果上述其它标志指示不使用基于非本地的IBC,则可以用信号表示环路滤波器启用标志。环路滤波器启用标志将指示基于本地的IBC是否应该调用环路过滤器。否则,当不使用IBC或仅使用非本地IBC时,推断环路滤波被禁用,并且不需要用信号表示环路滤波器启用标志。具体地,使用环路滤波器的信令的条件可以是global_ibc_flag的值。当global_ibc_flag为启用(on)(意味着使用非本地IBC参考搜索)时,图片的环路滤波器的启用标志可推断为0(或被关闭)并且不需要用信号表示。
以上面描述的方式,上面的各种标志或语法元素单独地或以各种组合可以指示或用信号表示当前块的IBC参考模式。IBC参考模式表示IBC预测块可如何访问本地搜索区域和非本地搜索区域。例如,这些标志或语法元素的组合可以指示只有本地搜索区域中的CTU或SB可用于IBC参考,因此是本地参考IBC模式。再例如,这些标志或语法元素的组合可以指示只有非本地搜索区域中的CTU或SB可用于IBC参考,因此是非本地IBC参考模式。再例如,这些标志或语法元素的组合可以指示本地和非本地搜索区域中的CTU或SB可用于IBC参考,因此是本地和非本地参考IBC模式。解码器可以独立地或基于如述依赖关系提取这些语法元素,以确定IBC参考模式,从而获得关于确定IBC参考块的搜索区域的信息。
图27示出了遵循上述IBC实现方式的基本原则的示例方法的流程图2700。示例方法流程从2701开始。在2710,从视频流中提取至少一个语法元素,至少一个语法元素与视频块的帧内块拷贝IBC预测相关联。在2720,确定用于视频块的IBC预测的IBC参考模式,IBC参考模式可以包括以下之一:无IBC模式、本地参考IBC模式、非本地参考IBC模式、以及本地和非本地参考IBC模式。在2730,基于IBC参考模式从视频流生成视频块的重建样本。示例方法流程在2799结束。
在本公开的实施例和实施方式中,可以根据需要以任何数量或顺序组合或设置任意步骤和/或操作。步骤和/或操作中的两个或更多个可以并行执行。本公开的实施例和实施方式可以单独使用或以任何顺序组合使用。此外,每个方法(或实施方式)、编码器和解码器可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非瞬态计算机可读介质中的程序。本公开中的实施例可以应用于亮度块或色度块。术语块可以被解释为预测块、编码块或编码单元,即CU。本文的术语块也可以用来指代变换块。在以下项目中,当说到块大小时,可以指块的宽度或高度,或宽度和高度的最大值,或宽度和高度的最小值,或块的面积大小(宽度*高度),或纵横比(宽度:高度,或高度:宽度)。
可以将上述技术实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中。例如,图28示出了适于实施所公开主题的某些实施例的计算机系统(2800)。
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过解释、微代码等执行。
指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。
图28中所示的计算机系统(2800)的组件本质上是示例性的,并且不旨在对实施本公开的实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应被解释为具有与计算机系统(2800)的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖或要求。
计算机系统(2800)可以包括某些人机接口输入装置。此类人机接口输入装置可以响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口装置还可以用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。
输入人机接口设备可以包括下述中的一项或多项(每种中仅示出一个):键盘(2801)、鼠标(2802)、触控板(2803)、触摸屏(2810)、数据手套(未示出)、操纵杆(2805)、麦克风(2806)、扫描仪(2807)、相机(2808)。
计算机系统(2800)可以包括某些人机接口输出装置。这样的人机接口输出装置可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可以包括触觉输出装置(例如触摸屏(2810)的触觉反馈、数据手套(未示出)或操纵杆(2805),但也可以是不作为输入装置的触觉反馈装置)、音频输出装置(例如:扬声器(2809)、耳机(未描绘))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(2810),每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)来输出二维视觉输出或超过三维的输出。
计算机系统(2800)还可以包括人类可访问存储装置及其关联介质,例如,包括具有CD/DVD等介质(2821)的CD/DVD ROM/RW(2820)的光学介质、指状驱动器(2822),可拆卸硬盘驱动器或固态驱动器(2823)、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未描绘)等。
本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其它暂时性信号。
计算机系统(2800)还可以包括到一个或多个通信网络(2855)的接口(2854)。网络可以例如是无线网络、有线网络、光网络。网络还可以是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CAN总线的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(2849)的外部网络接口适配器(例如,计算机系统(2800)的USB端口);如下所述,其它网络接口通常通过连接到系统总线而集成到计算机系统(2800)的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(2800)可以使用这些网络中的任何一个网络与其它实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其它计算机系统。如上所述,可以在那些网络和网络接口中的每个上使用某些协议和协议栈。
上述人机接口装置、人机可访问的存储装置和网络接口可以附接到计算机系统(2800)的内核(2840)。
内核(2840)可以包括一个或多个中央处理单元(CPU)(2841),图形处理单元(GPU)(2842),现场可编程门区域(FPGA)(2843)形式的专用可编程处理单元、用于某些任务的硬件加速器(2844),图形适配器(2850)等。这些装置以及只读存储器(ROM)(2845)、随机存取存储器(2846)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(2847)可以通过系统总线(2848)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(2848),以能够通过附加的CPU、GPU等进行扩展。外围装置可以直接连接到内核的系统总线(2848)或通过外围总线(2849)连接到内核的系统总线(1848)。在一个示例中,屏幕(2810)可以连接到图形适配器(2850)。外围总线的体系结构包括PCI、USB等。
CPU(2841)、GPU(2842)、FPGA(2843)和加速器(2844)可以执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可以存储在ROM(2845)或RAM(2846)中。过渡数据也可以存储在RAM(2846),而永久数据可以例如存储在内部大容量存储器(2847)中。可以通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个CPU(2841)、GPU(2842)、大容量存储器(2847)、ROM(2845)、RAM(2846)等。
计算机可读介质可以在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
作为非限制性示例,可以由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(2800),特别是内核(2840)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性的内核(2840)的存储器,例如内核内部大容量存储器(2847)或ROM(2845)。可以将实施本公开的各实施例的软件存储在此类装置中并由内核(2840)执行。根据特定需要,计算机可读介质可以包括一个或多个存储器装置或芯片。软件可以使得内核(2840),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(2846)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其它方式体现在电路(例如,加速器(2844))中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(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:开放媒体联盟视频1(AOMedia Video 1)
AV2:开放媒体联盟视频2(AOMedia Video 2)
RPS:参考图片集
DPB:解码图片缓冲器
MMVD:具有运动矢量差的合并模式
IntraBC或IBC:帧内块拷贝
BV:块矢量
BVD:块矢量差
RSM:参考样本存储器

Claims (20)

1.一种用于重建视频流中的视频块的方法,包括:
接收所述视频流;
从所述视频流中提取至少一个语法元素,所述至少一个语法元素与所述视频块的帧内块拷贝IBC预测相关联;
确定用于所述视频块的IBC预测的IBC参考模式,所述IBC参考模式包括以下之一:无IBC模式、本地参考IBC模式、非本地参考IBC模式、以及本地和非本地参考IBC模式;以及
基于所述IBC参考模式从所述视频流生成所述视频块的重建样本。
2.根据权利要求1所述的方法,其中,所述视频块属于包括多个视频块的当前IBC预测单元。
3.根据权利要求2所述的方法,其中,对于所述非本地参考IBC模式,用于所述视频块的IBC预测的参考块包括在重建帧内区域中的参考样本,所述重建帧内区域在所述当前IBC预测单元的编码方向上与所述当前IBC预测单元不相邻。
4.根据权利要求1至3中任一项所述的方法,其中,对于所述本地参考IBC模式,用于所述视频块的IBC预测的参考块包括所述当前IBC预测单元的预定义的相邻单元组中的参考样本或在所述当前IBC预测单元中已重建的视频块。
5.根据权利要求4所述的方法,其中,所述预定义的相邻单元组包括所述当前IBC预测单元的单个左相邻单元。
6.根据权利要求4所述的方法,其中,对于所述本地参考IBC模式,用于所述IBC预测的参考样本被维持在固定大小的片上参考样本存储器RSM中。
7.根据权利要求6所述的方法,其中,所述RSM的固定大小对应于一个IBC预测单元的大小。
8.根据权利要求7所述的方法,其中:
所述RSM的第一部分包括在所述当前IBC预测单元中已重建的视频块的相应样本;以及
所述RSM的第二部分包括来自所述预定义的相邻单元组的相应重建样本。
9.根据权利要求8所述的方法,还包括:用所述视频块的所述重建样本替换与所述当前IBC预测单元中的所述视频块对应的所述RSM中的相邻单元的重建样本。
10.根据权利要求6所述的方法,其中:
所述当前IBC预测单元被分割为预定义的分区组;
所述视频块是所述预定义的分区组中的当前分区的要被重建的第一编码块;以及
所述方法还包括:在重建所述视频块之前,将与当前分区对应的RSM的分区重置为不可用于IBC参考。
11.根据权利要求1至2中任一项所述的方法,其中,所述至少一个语法元素包括第一标志和第二标志,所述第一标志用于指示当被设置时启用本地IBC参考,所述第二标志用于指示当被设置时启用非本地参考IBC。
12.根据权利要求11所述的方法,还包括:
响应于所述第一标志被设置而所述第二标志未被设置,确定所述IBC参考模式为所述本地参考IBC模式;
响应于所述第二标志被设置而所述第一标志未被设置,确定所述IBC参考模式为所述非本地参考IBC模式;
响应于所述第一标志和所述第二标志均未被设置,确定所述IBC参考模式为所述本地和非本地参考IBC模式;以及
响应于所述第一标志和所述第二标志均未被设置,确定所述IBC参考模式为所述无IBC模式。
13.根据权利要求11所述的方法,其中,在所述视频流中以编码块级、编码单元级、编码树单元级、条带级、图片级或序列级用信号表示所述第一标志和所述第二标志。
14.根据权利要求1至2中任一项所述的方法,其中,所述至少一个语法元素包括用于指示IBC是否用于所述视频块的第一标志。
15.根据权利要求14所述的方法,还包括:
响应于所述第一标志指示IBC不用于所述视频块,确定所述IBC参考模式为所述无IBC模式。
16.根据权利要求15所述的方法,还包括:
响应于所述第一标志指示IBC用于所述视频块,进一步提取用于指示是否使用非本地IBC参考的第二标志作为所述至少一个语法元素的一部分;
响应于所述第二标志指示未使用非本地IBC参考,推断所述视频块的IBC参考模式是本地参考IBC模式。
17.根据权利要求16所述的方法,还包括:
响应于所述第二标志指示使用非本地IBC参考,进一步提取用于指示是否使用本地IBC参考的第三标志作为所述至少一个语法元素的一部分;
响应于所述第三标志指示使用本地IBC参考,确定所述IBC参考模式为所述本地和非本地参考IBC模式;以及
响应于所述第三标志指示不使用本地IBC参考,确定所述IBC参考模式为所述非本地参考IBC模式。
18.根据权利要求1至3中任一项所述的方法,其中:
当所述IBC参考模式为所述本地参考IBC模式时,启用环路滤波过程;以及
当所述IBC参考模式为所述非本地参考IBC模式或所述本地和非本地参考IBC模式时,禁用所述环路滤波过程。
19.根据权利要求18所述的方法,其中,从用于用信号表示所述IBC参考模式的所述至少一个语法元素中推导出是否启用所述环路滤波器过程。
20.一种用于重建视频流中的视频块的视频处理设备,包括用于存储计算机指令的存储器和处理器,所述处理器用于执行计算机指令以:
从所述视频流中提取至少一个语法元素,所述至少一个语法元素与所述视频块的帧内块拷贝IBC预测相关联;
确定用于所述视频块的IBC预测的IBC参考模式,所述IBC参考模式包括以下之一:无IBC模式、本地参考IBC模式、非本地参考IBC模式、以及本地和非本地参考IBC模式;以及
基于所述IBC参考模式从所述视频流生成所述视频块的重建样本。
CN202280006720.1A 2021-09-17 2022-04-13 用于具有搜索范围切换的帧内块拷贝模式编码的方法及装置 Pending CN116368800A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163245665P 2021-09-17 2021-09-17
US63/245,665 2021-09-17
US17/704,948 US20230093129A1 (en) 2021-09-17 2022-03-25 Method and apparatus for intra block copy mode coding with search range switching
US17/704,948 2022-03-25
PCT/US2022/024630 WO2023043494A1 (en) 2021-09-17 2022-04-13 Method and apparatus for intra block copy mode coding with search range switching

Publications (1)

Publication Number Publication Date
CN116368800A true CN116368800A (zh) 2023-06-30

Family

ID=85571938

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202280006720.1A Pending CN116368800A (zh) 2021-09-17 2022-04-13 用于具有搜索范围切换的帧内块拷贝模式编码的方法及装置
CN202280008009.XA Pending CN116584097A (zh) 2021-09-17 2022-04-15 联合运动矢量差编解码

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202280008009.XA Pending CN116584097A (zh) 2021-09-17 2022-04-15 联合运动矢量差编解码

Country Status (5)

Country Link
US (1) US20230093129A1 (zh)
JP (2) JP2023553921A (zh)
KR (2) KR20230062626A (zh)
CN (2) CN116368800A (zh)
WO (2) WO2023043494A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6396493B2 (ja) * 2013-12-30 2018-09-26 クゥアルコム・インコーポレイテッドQualcomm Incorporated 3dビデオコーディングにおける大型予測ブロックのセグメントごとのdcコーディングの簡易化
KR20180043151A (ko) * 2016-10-19 2018-04-27 에스케이텔레콤 주식회사 영상 부호화 또는 복호화를 위한 장치 및 방법
JP7459069B2 (ja) * 2018-09-21 2024-04-01 オッポ広東移動通信有限公司 映像信号符号化/復号化方法及びその装置
CN110944195B (zh) * 2018-09-23 2023-05-09 北京字节跳动网络技术有限公司 具有自适应运动矢量分辨率的运动矢量的修改
KR102572355B1 (ko) * 2018-11-30 2023-08-30 텐센트 아메리카 엘엘씨 비디오 코딩을 위한 방법 및 장치
US11451826B2 (en) * 2019-04-15 2022-09-20 Tencent America LLC Lossless coding mode and switchable residual coding
US11553197B2 (en) * 2019-08-05 2023-01-10 Tencent America LLC Method and apparatus for intra picture block compensation
US11930208B2 (en) * 2020-01-10 2024-03-12 Tencent America LLC Method and apparatus for signaling skip mode flag

Also Published As

Publication number Publication date
JP2023553921A (ja) 2023-12-26
KR20230062626A (ko) 2023-05-09
WO2023043494A1 (en) 2023-03-23
JP2024506169A (ja) 2024-02-09
US20230093129A1 (en) 2023-03-23
WO2023043495A1 (en) 2023-03-23
CN116584097A (zh) 2023-08-11
KR20230135670A (ko) 2023-09-25

Similar Documents

Publication Publication Date Title
JP7279233B2 (ja) ビデオを符号化して送信する方法およびコンピュータプログラム
CN115398918A (zh) 用于视频编码的方法和装置
US20230103405A1 (en) Method and apparatus for intra block copy prediction with sample padding
CN116325723B (zh) 用于视频解码的方法、计算机设备及介质
CN117356098A (zh) 在跨分量变换系数级别重构中导出偏移
CN116941243A (zh) 自适应运动矢量差分辨率的联合编码
CN116830582A (zh) 运动矢量差的自适应分辨率与运动矢量相关参数的写入/导出之间的依赖关系
CN115176461A (zh) 视频编解码的方法和装置
CN116584092B (zh) 视频块解码方法、装置和存储介质
US20230093129A1 (en) Method and apparatus for intra block copy mode coding with search range switching
US20230086077A1 (en) Method and apparatus for intra block copy (intrabc) mode coding with search range restrictions
CN113395524B (zh) 视频解码方法、装置和电子设备
US20230135166A1 (en) Intrabc using wedgelet partitioning
CN117063464A (zh) 使用楔形波分割的IntraBC
CN116368801A (zh) 交叉分量变换系数水平重构
CN117693934A (zh) 基于合并色度块的亮度色度预测
KR20230159603A (ko) 다중 예측 모드에 기반한 교차 채널 예측
KR20240050431A (ko) 시간적 모션 벡터 예측자 후보들 탐색
CN117203965A (zh) 调色板预测值生成和信号通知
CN117242772A (zh) 使用邻近亮度样本的根据亮度的色度预测
CN116686287A (zh) 用于联合mvd编码的mvd缩放
CN117296320A (zh) 使用映射和不同类型的从亮度到色度预测
CN116783888A (zh) 改进的帧内模式编码
CN116325750A (zh) 用于具有自适应内核选项的二次变换的方法和装置
CN115804089A (zh) 零残差标志编解码

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