CN118235406A - 针对根据亮度预测色度的预测选择下采样滤波器 - Google Patents

针对根据亮度预测色度的预测选择下采样滤波器 Download PDF

Info

Publication number
CN118235406A
CN118235406A CN202280075374.2A CN202280075374A CN118235406A CN 118235406 A CN118235406 A CN 118235406A CN 202280075374 A CN202280075374 A CN 202280075374A CN 118235406 A CN118235406 A CN 118235406A
Authority
CN
China
Prior art keywords
block
prediction
downsampling
video
blocks
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
CN202280075374.2A
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 CN118235406A publication Critical patent/CN118235406A/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/172Methods 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 picture, frame or field
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

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

Abstract

本公开内容涉及视频处理,该视频处理包括:基于来自多个下采样滤波器下采样的经下采样的亮度样本在根据亮度预测色度(CfL)预测模式下迭代地预测色度块,以及从多个下采样滤波器中选择与针对迭代预测所确定的误差分数对应的目标下采样滤波器。

Description

针对根据亮度预测色度的预测选择下采样滤波器
交叉引用
本申请基于2022年11月22日提交的题为“SELECTING DOWNSAMPLING FILTERS FORCHROMA FROM LUMA PREDICTION”的美国非临时申请第17/992,282号和2022年9月2日提交的题为“SELECTING DOWNSAMPLING FILTERS FOR CHROMA FROM LUMA INTRA PREDICTIONMODE”的美国临时申请第63/403,635号并且要求这两个美国申请的优先权的权益,上述美国非临时申请和美国临时专利申请通过引用其整体并入本文。
技术领域
本公开内容描述了一组先进的视频编码技术。更具体地,所公开的技术涉及针对根据亮度预测色度的预测的下采样滤波器选择。
背景技术
本文中提供的该背景技术描述是出于总体上呈现本公开内容的上下文的目的。就该背景技术部分中描述的工作的程度而言,本发明人的工作以及可以不被另外算作为提交本申请时的现有技术的描述的各方面既没有明确地也没有隐含地被承认为是针对本公开内容的现有技术。
可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,其中,每个图片具有例如1920×1080亮度样本以及相关联的全采样或子采样色度样本的空间维度。所述一系列图片可以具有例如每秒60个图片或每秒60帧的固定的或可变的图片速率(可替选地称为帧速率)。未压缩的视频对于流式传输或数据处理具有特定的比特率要求。例如,具有1920×1080的像素分辨率、60帧/秒的帧速率、以及在每像素每颜色通道8位下的4:2:0的色度子采样的视频需要接近1.5Gbit/s的带宽。一小时这样的视频需要超过600千兆字节的存储空间。
视频编码和解码的一个目的可以是通过压缩来减少未压缩输入视频信号中的冗余。压缩可以帮助减少以上提及的带宽和/或存储空间要求,在一些情况下减少两个数量级或更多。可以采用无损压缩和有损压缩两者以及其组合。无损压缩是指可以经由解码处理根据压缩的原始信号重建原始信号的精确副本的技术。有损压缩是指原始视频信息在编码期间未完全保留并且在解码期间不可完全恢复的编码/解码处理。在使用有损压缩的情况下,重建的信号可能与原始信号不同,但是原始信号与重建的信号之间的失真足够小,以使重建的信号对于预期应用有用,尽管有一些信息损失。在视频的情况下,有损压缩被广泛应用于许多应用中。可容忍的失真量取决于应用。例如,某些消费者视频流式传输应用的用户可能比电影或电视广播应用的用户容忍更高的失真。可以选择或调整可由特定编码算法实现的压缩比以反映各种失真容限:更高的可容忍失真通常允许产生更高损失和更高压缩比的编码算法。
视频编码器和解码器可以利用来自若干广泛类别和步骤的技术,包括例如运动补偿、傅里叶变换、量化和熵编码。
视频编解码器技术可以包括称为帧内编码的技术。在帧内编码中,在不参考来自先前重建的参考图片的样本或其他数据的情况下表示样本值。在一些视频编解码器中,图片在空间上被细分为样本块。在以帧内模式对所有样本块进行编码的情况下,该图片可以被称为帧内图片。帧内图片及其派生例如独立解码器刷新图片可以用于重置解码器状态,并且因此可以用作编码视频比特流和视频会话中的第一图片或者用作静止图像。然后,可以对帧内预测之后的块的样本进行到频域的变换,并且可以在熵编码之前对这样生成的变换系数进行量化。帧内预测表示使预变换域中的样本值最小化的技术。在一些情况下,变换之后的DC值越小并且AC系数越小,则在给定量化步长下表示熵编码之后的块所需的位就越少。
诸如从例如MPEG-2代编码技术中已知的传统帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括如下技术,其尝试基于例如在空间上邻近并且在解码顺序中先于正在进行帧内编码或解码的数据块的编码和/或解码期间获得的元数据和/或周围样本数据对块进行编码/解码。这样的技术在下文中称为“帧内预测”技术。注意,在至少一些情况下,帧内预测仅使用来自正在重建的当前图片的参考数据,而不使用来自其他参考图片的参考数据。
可以存在许多不同形式的帧内预测。当在给定的视频编码技术中可能够使用多于一种这样的技术时,所使用的技术可以称为帧内预测模式。可以在特定编解码器中提供一种或更多种帧内预测模式。在某些情况下,模式可以具有子模式和/或可以与各种参数相关联,并且针对视频块的模式/子模式信息和帧内编码参数可以单独编码或共同包括在模式码字中。针对给定模式、子模式和/或参数组合使用哪个码字可以对通过帧内预测的编码效率增益产生影响,并且因此用于将码字转换成比特流的熵编码技术也是如此。
特定模式的帧内预测由H.264引入,在H.265中被细化,并且在诸如联合开发模型(joint exploration model,JEM)、通用视频编码(versatile video coding,VVC)和基准集(benchmark set,BMS)的较新编码技术中被进一步细化。通常,对于帧内预测,可以使用已经变得可用的邻近样本值来形成预测器块。例如,可以将沿特定方向和/或线的特定邻近样本集合的可用值复制到预测器块中。对使用的方向的参考可以被编码在比特流中,或者其本身可以被预测。
参照图1A,在右下方描绘了在H.265的33个可能的帧内预测器方向(对应于H.265中指定的35个帧内模式的33个角度模式)中指定的九个预测器(predictor)方向的子集。箭头会聚的点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(motion vector))指示的方向进行空间移位之后,可以用于预测新重建的图片或图片部分(例如,块)。在一些情况下,参考图片可以与当前正在重建的图片相同。MV可以具有两个维度X和Y、或者三个维度,其中第三维度是对使用中的参考图片的指示(类似于时间维度)。
在一些视频压缩技术中,可以根据其他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建议书,“高效视频编码(High Efficiency VideoCoding)”,2016年12月)中描述了各种MV预测机制。在H.265指定的多种MV预测机制中,下面描述的是此后称为“空间合并”的技术。
具体地,参照图2,当前块(201)包括在运动搜索处理期间已经由编码器发现的根据已经经空间移位的相同大小的先前块可预测的样本。代替直接对该MV进行编码,可以使用与用A0、A1和B0、B1、B2(分别对应202至206)表示的五个周围样本中的任一样本相关联的MV,根据与一个或更多个参考图片相关联的元数据例如根据最近(在解码顺序上)的参考图片得出MV。在H.265中,MV预测可以使用来自邻近块使用的同一参考图片的预测器。
发明内容
本公开内容的各方面提供了用于针对根据亮度预测色度(chroma from luma,CfL)的预测的下采样滤波器选择的方法和装置。
在一些实现方式中,一种用于视频处理的方法包括:从视频序列中接收输入色度块;确定输入色度块要在根据亮度预测色度(Chroma from Luma,CfL)预测模式下被预测;应用多个下采样滤波器以分别获得对应于输入色度块的多组经下采样的亮度样本;基于多个经下采样的亮度样本中的每组经下采样的亮度样本,在CfL预测模式下迭代预测输入色度块;计算迭代预测的多个误差分数,所述多个误差分数中的每个误差分数对应于多个下采样滤波器中的相应一个下采样滤波器;基于多个误差分数从多个下采样滤波器中选择目标下采样滤波器;以及通过应用所选择的目标下采样滤波器在CfL预测模式下对输入色度块进行编码。
在一些其他实现方式中,一种用于视频处理的方法包括:使用多个下采样滤波器对视频序列执行第一次编码;基于第一次编码从多个下采样滤波器中确定目标下采样滤波器;以及在执行第一次编码之后使用目标下采样滤波器对视频序列执行第二次编码。
在一些其他实现方式中,公开了一种用于处理视频信息的装置。该装置可以包括被配置成执行上面的方法实现方式中的任何一个方法实现方式的电路***。
本公开内容的各方面还提供存储指令的非暂态计算机可读介质,所述指令在由计算机执行以用于视频解码和/或编码时使得计算机执行用于视频解码或编码的方法,例如上面的方法实现方式中的任何方法实现方式。
附图说明
根据以下详细描述和附图,所公开主题的其他特征、性质和各种优点将更加明显,在附图中:
图1A示出了帧内预测方向模式的示例性子集的示意性图示。
图1B示出了示例性帧内预测方向的图示。
图2示出了在一个示例中用于运动矢量预测的当前块及其周围的空间合并候选的示意性图示。
图3示出了根据示例实施方式的通信***300的简化框图的示意性图示。
图4示出了根据示例实施方式的通信***400的简化框图的示意性图示。
图5示出了根据示例实施方式的视频解码器的简化框图的示意性图示。
图6示出了根据示例实施方式的视频编码器的简化框图的示意性图示。
图7示出了根据另一示例实施方式的视频编码器的框图。
图8示出了根据另一示例实施方式的视频解码器的框图。
图9示出了根据本公开内容的示例实施方式的编码块划分的方案;
图10示出了根据本公开内容的示例实施方式的编码块划分的另一方案;
图11示出了根据本公开内容的示例实施方式的编码块划分的另一方案;
图12示出了根据示例划分方案将基本块划分成编码块的示例;
图13示出了示例三元划分方案;
图14示出了示例四叉树二叉树编码块划分方案;
图15示出了根据本公开内容的示例实施方式的用于将编码块划分成多个变换块的方案和变换块的编码顺序;
图16示出了根据本公开内容的示例实施方式的用于将编码块划分成多个变换块的另一方案和变换块的编码顺序;
图17示出了根据本公开内容的示例实施方式的用于将编码块划分成多个变换块的另一方案;
图18示出了方向帧内预测中的示例精细角度。
图19示出了方向帧内预测中的标称角度。
图20示出了用于块的PAETH模式的顶位置、左位置和左上位置。
图21示出了示例递归帧内滤波模式。
图22示出了被配置成基于输入亮度样本生成色度块的预测样本的根据亮度预测色度(chroma from luma,CfL)预测单元的框图。
图23A示出了示例CfL预测处理的流程图。
图23B示出了另一示例CfL预测处理的流程图。
图24示出了图片边界的内部和外部的亮度样本的框图。
图25示出了不同的色度下采样格式的图。
图26示出了AVI CfL下采样滤波器的图。
图27示出了示例性6抽头滤波器的图。
图28示出了示例性4抽头滤波器的图。
图29示出了视频处理的示例方法的流程图。
图30示出了视频处理的另一示例方法的流程图。
图31示出了亮度块的邻近亮度样本的示意图。
图32示出了视频处理的另一示例方法的流程图。
图33示出了根据本公开内容的示例实施方式的计算机***的示意图。
具体实施方式
图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的数字摄像装置记录的样本。视频图片流402被描绘为粗线以强调当与经编码的视频数据404(或编码视频比特流)进行比较时的高数据量,视频图片流402可以由耦接至视频源401的包括视频编码器403的电子设备420进行处理。视频编码器403可以包括硬件、软件或其组合以实现或实施如下文更详细地描述的所公开主题的各方面。经编码的视频数据404(或经编码的视频比特流404)被描绘为细线以强调当与未压缩的视频图片流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接收编码视频序列,信道501可以是到存储经编码的视频数据的存储设备或传输经编码的视频数据的流式传输源的硬件/软件链路。接收器531可以接收经编码的视频数据以及其他数据,例如可以被转发至其各自的处理电路***(未描绘)的编码音频数据和/或辅助数据流。接收器531可以将编码视频序列与其他数据分开。为了防止网络抖动,可以将缓冲存储器515设置在接收器531与熵解码器/解析器520(此后称为“解析器520”)之间。在某些应用中,缓冲存储器515可以实现为视频解码器510的一部分。在其他应用中,缓冲存储器515可以在视频解码器510外部并且与视频解码器510分开(未描绘)。在又一些其他应用中,出于例如防止网络抖动的目的,在视频解码器510外部可以有缓冲存储器(未描绘),并且在视频解码器510内部可以有另一附加的缓冲存储器515例如以处理回放定时。当接收器531从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,可以不需要缓冲存储器515,或者缓冲存储器515可以较小。为了在诸如因特网的最优分组网络上使用,可能需要具有足够大小的缓冲存储器515,并且其大小可以相对大。这样的缓冲存储器可以用自适应大小来实现,并且可以至少部分地在操作***或视频解码器510外部的类似元件(未描绘)中实现。
视频解码器510可以包括解析器520以根据编码视频序列重建符号521。这些符号的类别包括:用于管理视频解码器510的操作的信息;以及可能包括用于控制诸如显示器512(例如,显示屏)的呈现设备的信息,该显示器512可能是或可能不是电子设备530的组成部分但是可以耦接至电子设备530,如图5所示。用于呈现设备的控制信息可以是辅助增强信息(SEI(Supplemental Enhancement Information,SEI)消息)或视频可用性信息(VUI(Video Usability Information,VUI))参数集片段(未描绘)的形式。解析器520可以对由解析器520接收到的编码视频序列进行解析/熵解码。编码视频序列的熵编码可以根据视频编码技术或视频编码标准进行,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等。解析器520可以基于与子群组对应的至少一个参数,从编码视频序列提取用于视频解码器中的像素的子群组中的至少之一的子群组参数集。子群组可以包括图片群组(Group of Picture,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,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内的地址可以由运动矢量控制,运动矢量以符号521的形式供运动补偿预测单元553使用,符号521可以具有例如X、Y分量(移位)和参考图片分量(时间)。运动补偿还可以包括在使用子样本精确运动矢量时从参考图片存储器557获取的样本值的插值,并且还可以与运动矢量预测机制等相关联。
聚合器555的输出样本可以在环路滤波器单元556中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,环路内滤波器技术受控于编码视频序列(也称为已编码视频比特流)中包括的参数,所述参数作为来自解析器520的符号521可用于环路滤波器单元556,但是视频压缩技术也可以响应于在对编码图片或编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于先前重建并且经环路滤波的样本值。若干种类型的环路滤波器可以以各种顺序被包括为环路滤波器单元556的一部分,这将在下面更详细地描述。
环路滤波器单元556的输出可以是样本流,该样本流可以输出至呈现设备512以及存储在参考图片存储器557中,以用于将来的帧间图片预测。
一旦完全重建,某些编码图片就可以被用作参考图片以用于将来的帧间图片预测。例如,一旦与当前图片对应的编码图片被完全重建,并且编码图片(通过例如解析器520)被识别为参考图片,则当前图片缓冲器558可以变为参考图片存储器557的一部分,并且可以在开始重建随后的编码图片之前重新分配新的当前图片缓冲器。
视频解码器510可以根据诸如ITU-T H.265建议书的标准中采用的预定视频压缩技术执行解码操作。在编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件两者的意义上,编码视频序列可以符合所使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为仅在所述配置文件下可使用的工具。为了符合标准,编码视频序列的复杂度可以处于由视频压缩技术或标准的级别限定的范围内。在一些情况下,级别限制最大图片大小、最大帧速率、最大重建样本速率(以例如每秒兆个样本为单位进行计量)、最大参考图片大小等。在一些情况下,由级别设置的限制可以通过假设参考解码器(HypotheticalReference Decoder,HRD)规范以及在编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
在一些示例实施方式中,接收器531可以连同经编码的视频一起接收附加(冗余)数据。附加数据可以被包括为编码视频序列的一部分。附加数据可以被视频解码器510用于对数据进行适当解码以及/或者更准确地重建原始视频数据。附加数据可以是例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图6示出了根据本公开内容的示例实施方式的视频编码器603的框图。视频编码器603可以被包括在电子设备620中。电子设备620还可以包括传输器640(例如,传输电路***)。视频编码器603可以用于代替图4的示例中的视频编码器403。
视频编码器603可以从视频源601(其并非图6的示例中的电子设备620的一部分)接收视频样本,视频源601可以捕获要由视频编码器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 picture,GOP)布局、最大运动矢量搜索范围等。控制器650可以被配置成具有其他合适的功能,这些功能属于针对某一***设计优化的视频编码器603。
在一些示例实施方式中,视频编码器603可以被配置成在编码环路中操作。作为过于简化的描述,在示例中,编码环路可以包括源编码器630(例如,负责基于要编码的输入图片以及参考图片创建诸如符号流的符号)以及嵌入在视频编码器603中的(本地)解码器633。解码器633以类似于(远程)解码器将创建样本数据的方式重建符号以创建样本数据,即使嵌入式解码器633在没有熵编码的情况下处理源编码器630的编码视频流也是如此(因为在所公开的主题中考虑的视频压缩技术中,熵编码中的编码视频比特流与符号之间的任何压缩都可以是无损的)。重建的样本流(样本数据)被输入至参考图片存储器634。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器634中的内容在本地编码器与远程编码器之间也是位精确的。换言之,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时将“看到”的样本值完全相同。该参考图片同步性基本原理(以及在例如由于信道误差而无法维持同步性的情况下产生的漂移)用于提高编码质量。
“本地”解码器633的操作可以与已经在上面结合图5详细描述的“远程”解码器如视频解码器510的操作相同。然而,还简要参照图5,当符号可用并且熵编码器645和解析器520将符号编码/解码为编码视频序列可以为无损的时,可能无法完全在编码器的本地解码器633中实现包括缓冲存储器515和解析器520的视频解码器510的熵解码部分。
此时可以观察到,除了可能仅存在于解码器中的解析/熵解码之外的任何解码器技术,也可能必定需要以基本上相同的功能形式存在于对应的编码器中。出于该原因,所公开的主题有时可能侧重于与编码器的解码部分相关的解码器操作。由于编码器技术与已全面描述的解码器技术互逆,因此可以简化对编码器技术的描述。仅在某些区域或方面中,下面提供了对编码器的更详细描述。
在操作期间,在一些示例实现方式中,源编码器630可以执行运动补偿预测性编码,该运动补偿预测性编码参考来自视频序列的被指定为“参考图片”的一个或更多个先前编码图片来对输入图片进行预测性编码。以此方式,编码引擎632对输入图片的像素块与可以被选作输入图片的预测参考的参考图片的像素块之间的颜色通道中的差异(或残差)进行编码。术语“残差”及其形容词形式“残余”可以互换使用。
本地视频解码器633可以基于由源编码器630创建的符号,对可以被指定为参考图片的图片的编码视频数据进行解码。编码引擎632的操作可以有利地为有损处理。当编码视频数据可以在视频解码器(图6中未示出)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器633复制可以由视频解码器对参考图片执行的解码处理,并且可以使重建的参考图片存储在参考图片高速缓存634中。以此方式,视频编码器603可以在本地存储重建的参考图片的副本,所述副本与将由远端(远程)视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
预测器635可以针对编码引擎632执行预测搜索。即,对于要编码的新图片,预测器635可以在参考图片存储器634中搜索可以用作新图片的适当的预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器635可以基于样本块逐像素块进行操作,以找到适当的预测参考。在一些情况下,如由通过预测器635获得的搜索结果所确定的,输入图片可以具有从参考图片存储器634中存储的多个参考图片取得的预测参考。
控制器650可以管理源编码器630的编码操作,包括例如设置用于对视频数据进行编码的参数和子群组参数。
可以在熵编码器645中对所有以上提及的功能单元的输出进行熵编码。熵编码器645通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩,将符号转换成编码视频序列。
传输器640可以缓冲由熵编码器645创建的编码视频序列,从而为经由通信信道660进行传输做准备,通信信道660可以是到存储经编码的视频数据的存储设备的硬件/软件链路。传输器640可以将来自视频编码器603的编码视频数据与要传输的其他数据合并,所述其他数据例如是编码音频数据和/或辅助数据流(未示出源)。
控制器650可以管理视频编码器603的操作。在编码期间,控制器650可以向每个编码图片分配某一编码图片类型,这可能影响可以应用于相应的图片的编码技术。例如,通常可以将图片分配为以下图片类型中的一种:
帧内图片(I图片),其可以是在不将序列中的任何其他图片用作预测源的情况下就可以被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(“IDR(Independent Decoder Refresh)”)图片。本领域普通技术人员了解I图片的那些变型及其相应的应用和特征。
预测性图片(P图片),其可以是可以使用下述帧间预测或帧内预测进行编码和解码的图片,所述帧间预测或帧内预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可以使用下述帧间预测或帧内预测进行编码和解码的图片,所述帧间预测或帧内预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可以将多于两个参考图片和相关联元数据用于单个块的重建。
源图片通常可以在空间上细分成多个样本编码块(例如,分别为4×4、8×8、4×8或16×16样本的块),并且逐块进行编码。可以参考其他(已经编码的)块对这些块进行预测性编码,所述其他块是通过应用于块的相应图片的编码分配而确定的。例如,可以对I图片的块进行非预测性编码,或者可以参考同一图片的已经编码的块对I图片的块进行预测性编码(空间预测或帧内预测)。P图片的像素块可以参考一个先前编码的参考图片经由空间预测或经由时间预测进行预测性编码。B图片的块可以参考一个或两个先前编码的参考图片经由空间预测或经由时间预测进行预测性编码。源图片或中间处理的图片可以被细分成其他类型的块以用于其他目的。编码块和其他类型的块的划分可以遵循或可以不遵循相同的方式,如下面进一步详细描述的。
视频编码器603可以根据诸如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在视频编码器603的操作中,视频编码器603可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,编码视频数据可以符合由所使用的视频编码技术或标准指定的语法。
在一些示例实施方式中,传输器640可以连同经编码的视频一起传输附加数据。源编码器630可以包括这样的数据作为编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、其他形式的冗余数据例如冗余图片以及切片、SEI消息、VUI参数集片段等。
可以按时间序列将视频捕获为多个源图片(视频图片)。帧内图片预测(通常简写为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的时间或其他相关性。例如,正处于编码/解码的具体图片——其被称为当前图片——可以被划分成块。当前图片中的块在类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可以通过被称作运动矢量的矢量进行编码。运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,运动矢量可以具有标识参考图片的第三维度。
在一些示例实施方式中,可以将双向预测技术用于帧间图片预测。根据这样的双向预测技术,使用两个参考图片,诸如按解码顺序均在视频中的当前图片之前(但按显示顺序可能分别是过去或将来)的第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来联合预测该块。
此外,可以将合并模式技术用于帧间图片预测以提高编码效率。
根据本公开内容的一些示例实施方式,以块为单位执行诸如帧间图片预测和帧内图片预测的预测。例如,将视频图片序列中的图片划分成编码树单元(coding tree unit,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分割成一个或更多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(predictionblock,PB)和两个色度PB。在实施方式中,以预测块为单位执行译码(编码/解码)中的预测操作。可以以各种空间模式执行将CU分割成PU(或不同颜色通道的PB)。例如,亮度或色度PB可以包括用于样本例如8×8像素、16×16像素、8×16像素、16×8样本等的值(例如,亮度值)的矩阵。
图7示出了根据本公开内容的另一示例实施方式的视频编码器703的图。视频编码器703被配置成接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并且将处理块编码到作为编码视频序列的一部分的编码图片中。示例视频编码器703可以用于代替图4示例中的视频编码器(403)。
例如,视频编码器703接收用于处理块例如8×8样本的预测块等的样本值的矩阵。然后,视频编码器703使用例如率失真优化(rate-distortion optimization,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和603以及视频解码器410、510和810。
转到用于编码和解码的块划分,一般划分可以从基本块开始,并且可以遵循预定义的规则集、特定模式、划分树或任何划分结构或方案。划分可以是分层的和递归的。在遵循任何示例划分过程或以下描述的其他过程或其组合来分割或划分基本块之后,可以获得最终的一组分区或编码块。这些分区中的每一个可以处于划分分层中的各种划分级别中之一,并且可以具有各种形状。分区中的每一个可以称为编码块(coding block,CB)。对于以下进一步描述的各种示例划分实现方式,每个所得到的CB可以具有任何允许的大小和划分级别。这样的分区称为编码块,因为它们可以形成这样的单元:可以针对所述单元作出一些基本编码/解码决策,并且可以优化、确定编码/解码参数并在经编码的视频比特流中用信号表示该编码/解码参数。最终分区中的最高或最深级别表示树的编码块划分结构的深度。编码块可以是亮度编码块或色度编码块。每种颜色的CB树结构可以称为编码块树(codingblock tree,CBT)。
所有颜色通道的编码块可以统称为编码单元(coding unit,CU)。所有颜色通道的分层结构可以统称为编码树单元(coding tree unit,CTU)。CTU中的各种颜色通道的划分模式或结构可以相同或不同。
在一些实现方式中,用于亮度和色度通道的划分树方案或结构可以不必相同。换言之,亮度通道和色度通道可以具有各自的编码树结构或模式。此外,亮度通道和色度通道是使用相同还是不同的编码划分树结构以及要使用的实际编码划分树结构可以取决于正被编码的切片是P、B还是I切片。例如,对于I切片,色度通道和亮度通道可以具有各自的编码划分树结构或编码划分树结构模式,而对于P或B切片,亮度和色度通道可以共享相同的编码划分树方案。当应用各自的编码划分树结构或模式时,可以通过一个编码划分树结构将亮度通道划分成CB,并且可以通过另一编码划分树结构将色度通道划分成色度CB。
在一些示例实现方式中,可以将预定划分模式应用于基本块。如图9所示,示例性4方式划分树(4-way partition tree)可以从第一预定义级别(例如,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切片,可以将亮度CTB通过QTBT结构划分成CB,并且可以将色度CTB通过另一QTBT结构划分成色度CB。这意味着CU可以用于指代I切片中的不同颜色通道,例如,I切片可以由亮度分量的编码块或两个色度分量的编码块组成,并且P或B切片中的CU可以由所有三个颜色分量的编码块组成。
在一些其他实现方式中,QTBT方案可以用上述三元方案来补充。这样的实现方式可以称为多类型树(multi-type-tree,MTT)结构。例如,除了节点的二元分割之外,还可以选择图13的三元划分模式中之一。在一些实现方式中,仅正方形节点可以经受三元分割。可以使用附加标志来指示三元划分是水平的还是垂直的。
诸如QTBT实现方式和由三元分割补充的QTBT实现方式的两级或多级树的设计主要是为了降低复杂度。理论上,遍历树的复杂度是TD,其中T表示分割类型的数目,以及D是树的深度。可以通过使用多种类型(T)同时减小深度(D)来进行折衷。
在一些实现方式中,可以将CB进一步划分。例如,出于编码和解码过程期间进行帧内或帧间预测的目的,还可以将CB划分成多个预测块(prediction block,PB)。换言之,可以将CB进一步分割成不同的子分区,可以在子分区中进行各预测决策/配置。并行地,出于描绘执行视频数据的变换或逆变换的级别的目的,可以将CB进一步划分成多个变换块(transform block,TB)。CB到PB和TB的划分方案可以相同或者可以不同。例如,每个划分方案可以基于例如视频数据的各种特性使用其自己的过程被执行。在一些示例实现方式中,PB划分方案和TB划分方案可以是独立的。在一些其他示例实现方式中,PB划分方案和TB划分方案与边界可以是相关的。在一些实现方式中,例如,可以在PB划分之后对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可以具有正方形或矩形形状。具体地,可以首先通过四叉树结构划分编码树块(coding tree block,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分割成变换块。在第一级别处,将帧间编码块分割成四个大小相等的变换块。然后,将四个变换块中的仅一个变换块(而非所有的变换块)进一步分割成四个子变换块,从而得到具有两种不同大小的总共7个变换块,如1604所示。这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的划分方案提供了任何给定变换类型的多达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)。可以在比特流中将参考运动矢量标识为指向例如当前块的空间邻近块或时间邻近但空间共位的块的指针。
返回到帧内预测处理,在帧内预测处理中,通过邻近的、下一邻近的、或其它一条或多个线的样本或其组合来预测块(例如,亮度或色度预测块,或者在没有进一步划分成预测块的情况下的编码块)中的样本以生成预测块。然后,可以经由变换接着是量化来处理正在被编码的实际块与预测块之间的残差。可以使各种帧内预测模式可用,并且可以在比特流中用信号表示与帧内模式选择相关的参数和其他参数。例如,各种帧内预测模式可以涉及用于预测样本的一个或多个线位置、沿着其从一条或多条预测线中选择预测样本的方向,以及其他特殊的帧内预测模式。
例如,帧内预测模式(可互换地被称为“帧内模式”)集可以包括预定义数目的方向帧内预测模式。如上面关于图1的示例实现方式所描述的,这些帧内预测模式可以对应于预定义数目的方向,沿着这些方向,块外样本被选择为在特定块中被预测的样本的预测。在另一特定示例实现方式中,可以支持并预定义与水平轴成45度至207度的角度对应的八(8)个主方向模式。
在帧内预测的一些其他实现方式中,为了进一步利用方向纹理中更多种类的空间冗余,可以将方向帧内模式进一步扩展到具有更精细粒度的角度集。例如,如图19中所示,上面的8角度实现方式可以被配置成提供被称为V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED,D157_PRED、D203_PRED和D67_PRED的八个标称角度,并且对于每个标称角度,可以添加预定义数目(例如,7个)的更精细角度。利用这样的扩展,与相同数目的预定义方向帧内模式对应的更大总数(例如,在该示例中为56个)的方向角度可以用于帧内预测。预测角度可以由标称帧内角度加上角度增量来表示。对于上面的每个标称角度具有7个更精细的角度方向的特定示例,角度增量可以是-3~3乘以3度的步长。如具有65个不同的预测角度的图18所示,可以使用一些作为角度方案。
在一些实现方式中,作为上面的方向帧内模式的替选或者除了上面的方向帧内模式之外,还可以对预定义数目的非方向帧内预测模式进行预定义并使预定义数目的非方向帧内预测模式可用。例如,可以指定被称为平滑帧内预测模式的5个非方向帧内模式。这些非方向帧内模式预测模式可以具体地被称为DC帧内模式、PAETH帧内模式、SMOOTH帧内模式、SMOOTH_V帧内模式和SMOOTH_H帧内模式。图20中示出了在这些示例非方向模式下对特定块的样本的预测。作为示例,图20示出了通过来自顶邻近线和/或左邻近线的样本来预测的4×4块2002。块2002中的特定样本2010可以与块2002的顶邻近线中的样本2010的正顶样本2004、作为顶邻近线和左邻近线的交叉点的样本2010的左上样本2006、以及块2002的左邻近线中的样本2010的直接左侧样本2008对应。对于示例DC帧内预测模式,左侧邻近样本2008和上方邻近样本2004的平均值可以用作样本2010的预测器。对于示例PAETH帧内预测模式,可以获取顶参考样本2004、左参考样本2008和左上参考样本2006,并且然后可以将这三个参考样本中最接近(顶+左-左上)的任一值设置为样本2010的预测器。对于示例SMOOTH_V帧内预测模式,可以通过左上邻近样本2006和左邻近样本2008的在垂直方向上的二次插值来预测样本2010。对于示例SMOOTH_H帧内预测模式,可以通过左上邻近样本2006和顶邻近样本2004的在水平方向上的二次插值来预测样本2010。对于示例SMOOTH帧内预测模式,可以通过垂直方向和水平方向上的二次插值的平均值来预测样本2010。上面的非方向帧内模式实现方式仅作为非限制性示例示出。还设想了其他邻近线、样本的其他非方向选择以及对样本进行组合预测以用于对预测块中的特定样本进行预测的方式。
可以在比特流中用信号表示编码器在各种编码级别(图片、切片、块、单元等)处从上面的方向模式或非方向模式中对特定帧内预测模式的选择。在一些示例实现方式中,可以首先用信号表示示例性的8个标称方向模式以及5个非角度平滑模式(总共13个选项)。然后,如果用信号表示的模式是8个标称角度帧内模式之一,则进一步用信号表示索引以将选择的角度增量指示给对应的用信号表示的标称角度。在一些其他示例实现方式中,所有帧内预测模式可以一起被编制索引(例如,56个方向模式加上5个非方向模式以产生61个帧内预测模式)以用信号表示。
在一些示例实现方式中,示例性的56个或其他数目的方向帧内预测模式可以使用统一的方向预测器来实现,所述统一的方向预测器将块的每个样本投影到参考子样本位置并且通过2抽头双线性滤波器对参考样本进行插值。
在一些实现方式中,为了捕获与边缘上的参考的衰减空间相关性,可以设计被称为FILTER INTRA模式的附加滤波器模式。对于这些模式,除了块外样本之外的块内的预测样本可以用作块内的一些小块(patches)的帧内预测参考样本。例如,可以预定义这些模式并且使其可用于至少亮度块(或仅亮度块)的帧内预测。可以预先设计预定义数目(例如,五个)的滤波器帧内模式,每个滤波器帧内模式由一组n抽头滤波器(例如,7抽头滤波器)表示,n抽头滤波器反映例如4×2小块中的样本和与其邻近的n个邻近者之间的相关性。换言之,n抽头滤波器的权重因子可以是位置相关的。以8×8块、4×2小块和7抽头滤波为示例,如图21中所示,8×8块2002可以被分割成8个4×2小块。这些小块由图21中的B0、Bl、B1、B3、B4、B5、B6和B7表示。对于每个小块,图21中由R0~R6指示的其7个邻近者可以用于预测当前小块中的样本。对于小块B0,所有邻近者可能已经被重建。但是对于其他小块,邻近者中的一些邻近者在当前块中,并且因此可能尚未被重建,则使用紧接的邻近者的预测值作为参考。例如,不重建如图21所指示的小块B7的所有邻近者,因此替代地使用邻近者的预测样本。
在帧内预测的一些实现方式中,可以使用一个或更多个其他颜色分量来预测一个颜色分量。颜色分量可以是YCrCb、RGB、XYZ颜色空间等中的分量中的任何一个分量。
使用一个或更多个其他颜色分量来预测一个颜色分量的一种类型的帧内预测是根据亮度预测色度(CfL)预测。在CfL预测中,基于亮度分量来预测色度分量。被预测的色度分量可以包括色度块,该色度块可以包括样本或色度样本。被预测的样本被称为预测样本。此外,被预测的色度块可以对应于亮度块。在本文中,除非另有指定,否则亮度块与色度块之间的对应关系是指色度块与亮度块共位。
此外,如本文中所使用的以及如下面进一步详细描述的,用于预测色度分量的亮度分量可以包括亮度样本。亮度样本可以包括对应的或共位的色度块本身的亮度样本,并且/或者可以包括邻近亮度样本,邻近亮度样本是与对应于正被预测的色度块的共位亮度块邻近或相邻的一个或更多个邻近亮度块的亮度样本。另外,对于至少一些实现方式,CfL预测处理中使用的亮度样本是重建的亮度样本,其可以是使用解码处理从原始亮度样本的压缩版本得出或重建的原始亮度样本的副本。
在一些实施方式中,编码器(例如,编码器403、603、703中的任一个)和/或解码器(例如,解码器410、510、810中的任一个)可以被配置成经由CfL预测处理来执行CfL预测。此外,在这些实现方式中的至少一些实现方式中,编码器和/或解码器可以在CfL预测模式下被配置成执行CfL预测处理。如下面进一步详细描述的,编码器和/或解码器可以在多个不同的CfL预测模式中的至少一个CfL预测模式下操作。在不同的CfL预测模式下,编码器和/或解码器可以执行不同的相应CfL处理以生成色度预测样本。
参照图22,编码器和/或解码器可以包括被配置成执行CfL预测处理的CfL预测单元2202。在各种实现方式中,CfL预测单元2202可以是独立单元,或者可以是编码器或解码器的另一单元的部件或子单元。例如,在各种实现方式中的任一实现方式中,CfL预测单元2202可以是帧内预测单元552、帧内编码器722或帧内解码器872的部件或子单元。此外,CfL预测单元2202可以被配置成执行各种或多个操作或功能以执行或实施CfL处理。为了简单起见,CfL预测单元2202被描述为执行这些操作或功能中的每一个操作或功能的编码器和/或解码器的部件。然而,在各种实现方式中的任一实现方式中,CfL预测单元2202还可以被配置或组织成多个子单元,每个子单元被配置成执行CfL预测处理的操作或功能中的一个或更多个操作或功能,或者与CfL预测单元2202分开的一个或更多个单元可以被配置成执行CfL预测处理的一种或更多个操作。此外,在各种实现方式中的任一实现方式中,CfL预测单元2202可以以硬件或组合或者硬件或软件来实现,以执行和/或实现CfL处理的操作或功能。例如,CfL预测单元可以实现为集成电路,或者被配置成执行存储在存储器中的软件或固件的处理器或其组合。此外,在各种实现方式中的任一实现方式中,非暂态计算机可读存储介质可以存储可由处理器执行以执行CfL预测单元2202的功能或操作的计算机指令。
对于CfL预测,编码器和/或解码器例如经由CfL预测单元2202可以确定CfL预测模式要应用于接收到的视频序列和/或比特流中的至少一个亮度块。进而,CfL预测单元2202可以根据被确定为要应用以生成至少一个预测色度块的CfL预测模式对至少一个亮度块执行CfL预测。对应地,编码器和/或解码器例如经由CfL预测单元2202可以通过至少部分地应用CfL预测模式来对与至少一个亮度块对应或共位的至少一个色度块进行编码或重建。
另外,通常,CfL预测单元2202可以在CfL预测模式下操作。参照图22,在CfL预测模式下,CfL预测单元2202可以被配置成生成与至少一个原始亮度块或输入亮度块对应或共位的至少一个原始色度块或输入色度块的多个预测样本。CfL预测单元2202可以基于与原始/输入色度块共位的原始/输入亮度块以及/或者基于与共位的原始/输入亮度块邻近的邻近亮度样本生成原始/输入色度块的预测色度块。此外,构成色度块或作为色度块的一部分的色度预测样本被称为预测色度块。另外,如本文中所使用的,与颜色(例如,亮度和色度)分量例如像素、样本和块一起使用的术语“原始”是指未通过例如预测处理预测的分量,以及/或者可以被用作预测处理的输入以生成预测样本的分量。
图31示出了示例亮度块3102和亮度块3102的邻近亮度样本的示意图。通常,给定亮度块的邻近亮度样本是相邻或邻近亮度块的亮度样本或在相邻或邻近亮度块中的亮度样本,所述相邻或邻近亮度块与给定亮度块相邻和/或邻近。每个邻近亮度样本可以具有或有多个类型的邻近亮度样本中的特定类型。每个类型可以对应于与给定亮度块的相对空间关系。类似地,每个相邻或邻近亮度块可以具有与其中包括的特定类型的邻近亮度样本匹配的特定类型。对于至少一些实现方式,邻近亮度样本和/或块的多个类型可以包括:左、左上、上、右上、右、右下、下和左下。图31示出了邻近亮度样本可以相对于给定亮度块3102在空间上定位的位置,包括:左邻近亮度块中的左邻近亮度样本3104、左上邻近亮度块中的左上邻近亮度样本3106、上邻近亮度块中的上邻近亮度样本3108、右上邻近亮度块中的右上邻近亮度样本3110、右邻近亮度块中的右邻近亮度样本3112、右下邻近亮度块中的右下邻近亮度样本3114、下邻近亮度块中的下邻近亮度样本3116以及左下邻近亮度块中的左下邻近亮度样本3118。此外,左上、右上、左下和右下邻近亮度样本和块可以分别被一般地和/或共同地称为拐角邻近亮度样本或块。在一些实现方式中,CfL预测单元2202在执行CfL预测时可以使用所有类型的邻近亮度样本,或者使用至少一个但少于所有类型的邻近亮度样本。色度块也可以在邻近色度块中具有邻近色度样本,类似于图31中的亮度块及其邻近亮度样本。
图23A示出了CfL预测单元2202可以在第一CfL预测模式下执行的CfL预测处理的示例方法2300的流程图。在一些实现方式中,CfL预测处理例如图23中所示出的CfL预测处理基于亮度样本的交流(alternating current,AC)贡献和色度样本的直流(directcurrent,DC)贡献来生成多个色度预测样本。AC贡献和DC贡献中的每一个可以是对色度分量的预测,并且进而还被称为AC贡献预测和DC贡献预测。特别是在这些实现方式中,例如根据以下数学公式,色度预测样本被建模为亮度样本的线性函数:
CfL(α)=α×LAC+DC (1)
其中,LAC表示亮度分量(亮度样本)的AC贡献,α表示线性模型的缩放参数,DC表示色度分量的DC贡献。此外,对于至少一些实现方式,针对块的样本中的每个样本获得AC贡献,而针对整个块获得DC贡献。此外,缩放参数α和亮度分量LAC的AC贡献的乘积可以被视为色度预测的AC贡献。
特别是在如图23A中所示出的这些实现方式中,在块2302A处,与要预测的色度块共位的亮度块的多个原始亮度样本可以被下采样(或子采样)为色度分辨率(例如,4:2:0、4:2:2或4:4:4)。如下面进一步详细描述的,可以使用或利用下采样滤波器对亮度样本进行下采样。在块2304A处,可以对经下采样的亮度样本求平均以生成亮度平均值。在块2306A处,可以从原始亮度块的亮度样本中减去亮度平均值以生成亮度分量的AC贡献。如图23A中所示,可以从经下采样的亮度样本中减去亮度平均值。在块2308A处,可以将亮度分量的AC贡献乘以缩放参数α以生成亮度分量的经缩放的AC贡献。亮度分量的经缩放的AC贡献还可以是色度分量的色度AC贡献预测。在块2310A处,色度分量的DC贡献预测可以被添加至色度分量的AC贡献预测以根据线性模型生成预测色度块的色度预测样本。对于至少一些实现方式,缩放参数α可以基于原始色度样本并且在比特流中被用信号表示。这可以降低解码器复杂性并产生更精确的预测。另外地或可替选地,在一些示例实现方式中,可以使用色度分量内的帧内DC模式来计算色度分量的DC贡献。
另外,在方法2300A或第一CfL模式的一些实现方式中,在共位的亮度块的一些亮度样本在图片边界外部时,这些亮度样本可以被填充,并且填充的亮度样本可以用于例如在块2304A处计算亮度平均值。图24示出了由图片边界限定的图片内部和外部的亮度样本的示意图。对于至少一些实现方式,可以通过复制当前块内的最近可用样本的值来填充外部图片亮度样本。
另外地或可替选地,在一些实现方式中,在执行CfL预测时,在块2302处执行的下采样可以与在块2304A处执行的求平均和或在块2306处执行的减法组合。这进而可以简化线性建模的式子,同时去除下采样除法和舍入误差。被简化为式(3)的下面的式(2)对应于两个步骤的组合。式(2)和式(3)两者使用整数除法。此外M×N是亮度平面中的像素矩阵。
基于色度子采样,Sx×Sy∈{1,2,4}。此外,M和N两者都可以是二的幂,并且进而,M×N也是二的幂。例如,在4:2:0色度子采样的情况下,代替应用箱式滤波器,可以使用与色度像素一致的四个重建的亮度像素之和。作为示例,四抽头{1/4,1/4,1/4,1/4}滤波器用于对共位的亮度样本进行下采样以对准色度分辨率。对应地,CfL预测可以按二缩放。
图23B示出了CfL预测单元2202可以在CfL预测模式下执行的CfL预测处理的另一示例方法2300B的流程图。CfL预测处理2300B可以类似于图23A中的CfL预测处理2300A,不同之处在于,代替对与要预测的色度块共位的亮度块的亮度样本求平均,CfL预测处理2300B可以对共位的亮度块的邻近亮度样本求平均以生成邻近亮度平均值。因此,AC贡献以及进而预测的色度样本基于共位的亮度块的原始亮度样本和与共位的亮度块邻近的邻近亮度样本两者。
更详细地,在块2302B处,与要预测的原始色度块共位的原始共位亮度块的多个亮度样本可以被下采样(或子采样)为色度分辨率。在块2304B处,邻近原始共位亮度块的多个邻近亮度样本可以被下采样为色度分辨率。另外,对于至少一些实现方式,相同的下采样(或子采样)方法或滤波器用于对共位的亮度块的原始亮度样本和邻近亮度样本进行子采样(即,在块2302B和2304B两者处应用相同的下采样方法或滤波器)。例如,如果根据4:2:0格式执行子采样,则对上方邻近区域(例如,图31中的区域3108)中的两行,左侧邻近区域(例如,图31中的区域3104)中的两列和/或左上方区域(例如,图31中的区域3106)中的四个像素进行下采样(或子采样)。对应地,如图23B中所示和下面进一步描述的,在CfL预测单元2202确定AC贡献时(例如,下面的块2306B和2308B),可以对邻近亮度样本求平均并从经下采样的亮度样本值中减去邻近亮度样本。
更详细地,在块2306B处,可以对经下采样的邻近亮度样本求平均以生成邻近亮度平均值。在块2808B处,可以从经下采样的亮度样本中减去邻近亮度平均值以生成亮度分量的AC贡献。在块2810B处,可以将亮度分量的AC贡献乘以缩放参数α以生成亮度分量的缩放AC贡献。亮度分量的经缩放的AC贡献还可以是色度分量的AC贡献预测,或预测的色度样本的AC贡献。在块2812B处,例如根据上面在式(1)中描绘的线性模型,可以将色度分量的DC贡献预测添加至色度分量的AC贡献预测以生成色度预测样本。对于至少一些实现方式,缩放参数α可以基于原始色度样本并且在比特流中被用信号表示。这可以降低解码器复杂性并产生更精确的预测。另外地或可替选地,在一些示例实现方式中,可以在色度分量内使用帧内DC模式来计算色度分量的DC贡献。
另外,根据不同的色度下采样相位,可以存在不同的YUV格式。例如,图25示出了不同的色度下采样格式。不同的色度格式可以限定不同颜色分量的不同下采样网格(相位)。如图25所示,对于4:2:0格式,可以存在包括4:2:0MPEG1或4:2:0MPEG 2的两个不同的下采样格式。
在一些实现方式中,对于AV1中的亮度下采样滤波器,应用下面的式(4)来得出亮度重建样本。
如下面图26中所示,AV1中的下采样滤波器可以采用对应于4:2:0MPEG1下采样格式的色度下采样格式。在一些实现方式中,可以支持多个下采样滤波器。对于这些实现方式中的至少一些实现方式,可以例如以高级语法用信号表示滤波器类型。另外地或可替选地,多个滤波器可以包括AVI中的一个或更多个4抽头滤波器、一个或更多个6抽头滤波器以及另一4抽头滤波器。图27和图28分别示出了示例性6抽头滤波器和示例性4抽头滤波器。
下面的式(5)是用于确定6抽头滤波器(例如,图27中所示的6抽头滤波器)的下采样值的数学式。
下面的式(6)是用于确定4抽头滤波器(例如,图28中所示的4抽头滤波器)的下采样值的数学式。
另外,在一些实现方式中,可以执行隐式CfL预测方法。隐式CfL预测与AV1之间的区别在于,不用信号表示缩放因子α,例如不在比特流或序列中显式地用信号表示缩放因子α,而是隐式地得出缩放因子α。邻近的重建色度样本及其对应的(下采样的)亮度样本被用于得出缩放因子α。可以应用针对Sum(RecC-α·RecY)2的最小二乘误差。此外,可以用乘法和查找表操作来代替推导处理中涉及的除法操作,并且使用翘曲运动处理(warped-motionprocess)中的相同的查找表。
此外,在一些实现方式中,在CfL预测应用于块时,可以用信号表示附加标志以指示使用哪个CfL模式。在一个CfL模式下,基于邻近的Y(下采样的)重建亮度样本来计算式(1)中的DC以匹配用于计算DC的色度样本位置。这不同于第二CfL模式,其中,将当前C(下采样的)重建亮度块的平均值分配给DC。
另外,在涉及CfL预测的一些实现方式中,仅支持一个下采样滤波器。然而,对于某些内容或不同的色度下采样格式,该仅一个下采样滤波器可能不是最佳滤波器。此外,即使支持多个下采样滤波器,编码器或解码器也可能不具有针对给定视频序列选择最佳或最优下采样滤波器的能力。以下提供涉及从多个下采样滤波器中确定目标下采样滤波器的视频处理方式。
图29是涉及确定目标下采样滤波器的视频处理的示例方法2900的流程图。在各种实现方式中,为确定下采样滤波器而执行的动作通常可以被称为从多个下采样滤波器中检测或确定目标下采样滤波器的检测处理或检测算法。对于至少一些实现方式,目标下采样滤波器是编码器或解码器可用的或由编码器或解码器支持的提供原始颜色分量(例如,原始色度分量)与对应的预测颜色分量(例如,预测色度分量)之间的最小或最佳误差的下采样滤波器。另外,方法2900被描述为由CfL预测单元2200实现,但是例如编码器和/或解码器的其他部件或子部件可以用于执行方法2900的功能和/或动作中的一个或更多个功能和/或动作。
在块2902处,CfL预测单元2202可以从视频序列接收至少一个输入色度块。在块2904处,CfL预测单元2202可以确定至少一个输入色度块要在CfL预测模式下被预测。在块2906处,CfL预测单元2202可以应用多个下采样滤波器以分别获得与至少一个输入色度块对应的多组经下采样的亮度样本。在块2908处,CfL预测单元2202可以基于多组经下采样的亮度样本在CfL预测模式下迭代地预测输入色度块。在块2910处,CfL预测单元2202可以计算迭代预测的多个误差分数或成本,其中,每个误差分数与多个下采样滤波器中的相应一个下采样滤波器对应。在块2912处,CfL预测单元2202可以基于多个误差分数从多个下采样滤波器中选择目标下采样滤波器。在块2914处,CfL预测单元2202可以通过应用所选择的目标下采样滤波器在CfL预测模式下对至少一个原始输入色度块进行编码。
图30是包括选择目标下采样滤波器的视频处理的示例方法3000的流程图。类似于方法2900,方法3000被描述为由CfL预测单元2200执行,但是在其它实现方式中,可以由编码器和/或解码器的另一部件或子部件来执行方法3000的功能或动作中的一些或全部功能或动作。此外,在一些实现方式中,可以结合方法2900来执行方法3000的动作或功能中的一些或全部动作或功能。例如,在方法3000中执行的动作中的一个或更多个动作可以作为方法2900的块2904处的目标下采样滤波器选择的一部分或为了选择目标下采样滤波器而执行。
更详细地,在块3002处,CfL预测单元2202可以将视频序列的多个原始亮度样本或输入亮度样本分割或组织成多个输入亮度块。对于至少一些实现方式,输入亮度样本可以彼此在视频序列的同一帧中,并且对应地,原始亮度样本被分割成的输入亮度块可以是视频序列的相同帧的一部分。在块3004处,CfL预测单元2202可以利用多个下采样滤波器对多个输入亮度块各自进行下采样以生成多组经下采样的亮度块,其中,多组经下采样的亮度块中的每组经下采样的亮度块与多个下采样滤波器中的相应一个下采样滤波器对应。例如,CfL预测单元2202可以利用第一下采样滤波器对多个输入亮度块进行下采样以生成第一组经下采样的亮度块,并且可以利用第N下采样滤波器对多个输出亮度块进行下采样以生成第N组经下采样的亮度块。对于至少一些实现方式,例如图23A、图23B中所描述的,块3004处的下采样可以作为CfL预测处理的一部分来执行,或者与CfL预测处理一致地执行。例如,在块3004处执行的下采样可以是在图23A的块2302A和/或图23B的块2302B处执行的下采样的一部分。
在块3006处,CfL预测单元2202可以根据CfL预测模式并基于多组经下采样的亮度块来生成多组预测色度块,其中,每组预测色度块与多个下采样滤波器中的相应一个下采样滤波器对应。例如,CfL预测单元2202可以使用利用第一下采样滤波器生成的第一组经下采样的亮度块来生成第一组预测色度块,并且可以使用利用第N下采样滤波器生成的第N组经下采样的亮度块来生成第N组预测色度块。此外,在至少一些实现方式中,CfL预测单元可以根据图23A和/或图23B的CfL预测处理来生成多组预测色度块。例如,在块3006处,对于生成的每个预测色度块,CfL预测单元2202可以从经下采样的亮度样本中减去邻近亮度平均值(例如,在图23A中的块2304A处根据共位的亮度样本生成,或者例如,在图23B中的块2306B处根据邻近亮度样本生成),例如在块2306A或块2308B处执行以生成亮度AC贡献;将亮度AC贡献乘以缩放因子α以生成预测色度块的AC贡献(例如,在图23A中的块2308A或图23B中的块2310B处执行);并且将预测色度块的AC贡献与预测色度块的DC贡献相加(例如,在图23A中的块2310A或图23B中的块2312B处执行)以生成预测色度块。
另外地或可替选地,在一些实现方式中,CfL预测单元2202可以通过在块3006处执行动作中的一些或全部动作来在块2908处在CfL预测模式下执行迭代预测。例如,由CfL预测单元2202在块2908处执行的迭代预测可以包括生成与要在CfL预测模式下预测的输入色度块对应的多个预测色度块,其中,多个预测色度块中的每个预测色度块对应于多个下采样滤波器中的相应一个下采样滤波器。在这些实现方式中的一些实现方式中,CfL预测单元2202可以例如根据图23A和/或图23B中的CfL预测通过将预测色度块的AC贡献和DC贡献相加在一起来生成多个预测色度块中的每个预测色度块。例如先前参照图23A和/或图23B所描述的,为了生成AC贡献,CfL预测单元2202可以从从多个下采样滤波器之一下采样的经下采样的输入亮度块中减去邻近亮度平均值来生成亮度AC贡献,并且将亮度AC贡献乘以缩放因子α。CfL预测单元2202可以针对多个下采样滤波器中的每个下采样滤波器迭代该处理以生成多个预测色度块。
在块3008处,CfL预测单元2202可以确定或计算多个误差分数或成本,其中,每个误差分数或成本对应于相应的预测色度块组和/或多个下采样滤波器中的相应一个下采样滤波器。在至少一些实现方式中,CfL预测单元2202可以根据在图23的方法3000中的块3008处执行的动作在图29中的方法2900的块2910处计算多个误差分数。另外地或可替选地,对于至少一些实现方式,CfL预测单元2202可以基于或根据绝对差之和(sum of absolutedifferences,SAD)算法的数学公式或平方差之和(sum of squared differences,SSD)算法的数学公式中的至少一个来确定或计算多个误差分数或成本。下面的式(1)和式(2)分别是示例SAD算法和SSD算法,所述SAD算法和SSD算法可以用于在块3008和/或块2910处确定多个误差分数或成本:
成本=∑αbs(Cp-Co)÷(宽度×高度) (7)
成本=∑(αbs(Cp-Co)×αbs(Cp-Co))÷(宽度×高度) (8)
对于至少一些实现方式,例如使用式(7)和/或式(8)的实现方式,可以针对每个预测色度块和对应的原始/输入色度块确定误差分数或成本。例如,在式(7)和式(8)中,Cp表示预测色度块的预测样本,并且Co表示对应的原始/输入色度块的对应的原始/输入样本。针对每个色度样本确定SAD的绝对差(abs(Cp-Co))或绝对平方差(abs(Cp-Co)×abs(Cp-Co)),并且将预测色度块和原始色度块的色度样本的绝对差或绝对平方差加在一起,并且然后使用色度块的(宽度和高度)对其进行归一化以确定或生成特别针对预测色度块或特定于预测色度块的成本或误差分数。进而,在块3008处生成的多个误差分数中的每个误差分数可以是基于从特定的下采样滤波器生成的预测色度块的特定成本或误差分数的特定下采样滤波器的总成本或总误差分数。可以使用一个或更多个数学操作基于多个特定成本或误差分数来生成总成本。例如,可以将特定成本或误差分数加在一起以生成总成本或总误差分数,尽管其他数学运算也是可能的。
为了说明,假设原始/输入亮度样本被划分成使用第一下采样滤波器进行下采样以生成第一组经下采样的亮度块的多个输入亮度块,并且进而根据例如图23A和/或图23B中的CfL预测处理生成第一组预测色度块。例如使用式(7)、式(8)或另一SAD算法或SSD算法来确定多个特定成本或误差分数,每个特定成本或误差分数针对第一组中的预测色度块之一。然后可以基于多个特定成本或误差分数来确定第一下采样滤波器的总误差或成本。例如,可以将多个特定成本或误差分数加在一起以生成第一下采样滤波器的总成本或误差分数。可以对下采样滤波器中的每个下采样滤波器重复该处理以生成多个总成本或误差分数,在块3008处每个总成本或误差分数对应于下采样滤波器中的相应一个下采样滤波器。
此外,在一些实现方式中,可以针对蓝色差色度分量(blue-difference chromacomponent)Cb或红色差色度分量(red-difference chroma component)Cr中的至少一个确定下采样滤波器的误差分数或成本。在特定实现方式中,针对Cb和Cr两者确定误差分数或成本。例如,多组预测色度块中的每组预测色度块可以包括蓝色差预测色度块组(blue-difference predicted chroma blocks)和红色差预测色度块组(red-differencepredicted chroma blocks)。对应地,可以针对Cb色度块确定第一成本或误差分数,并且可以针对对应的Cr色度块确定第二成本或误差分数。可以基于第一成本/误差分数和第二成本/误差分数的组合针对对应的Cb色度块和Cr色度块来确定组合成本。例如,可以对第一成本/误差分数和第二成本/误差分数执行一个或更多个数学操作,例如作为非限制性示例,求和操作或求平均操作。对应地,确定多组Cb预测色度块和Cr预测色度块的多个组合成本/误差分数。进而,可以基于多个组合成本/误差分数来确定特定下采样滤波器的总成本/误差分数。例如,作为非限制性示例,在块3008处,可以将多个组合成本/误差分数加在一起以生成特定下采样滤波器的总成本或误差分数。
在块3010处,CfL预测单元2202可以从在块3008处确定的多个误差分数中识别误差分数。在至少一些实现方式中,CfL预测单元2202在块3010出识别的误差分数是指示一个或更多个输入色度块与一个或更多个对应的预测色度块之间的最小误差的最佳误差分数或值。在块3012处,CfL预测单元2202可以从多个下采样滤波器中选择目标下采样滤波器。所选择的目标下采样滤波器对应于在块3010处识别的误差分数。也就是说,目标下采样滤波器是在原始/输入色度块与预测色度块之间提供最小误差或成本的下采样滤波器。
在一些实现方式中,CfL预测单元2202可以仅使用单个块大小来确定目标下采样滤波器。例如,在块3002处,CfL预测单元2202可以将原始亮度样本分割成多个亮度块,其中每个亮度块具有相同的预定块大小,例如NxN,其中N的非限制性值可以包括8、16、32、64。对于这样的实现方式,CfL预测单元2202可以确定针对该单个块大小的最优下采样滤波器。在其他实现方式中,CfL预测单元2202可以在若干次迭代中改变亮度块的块大小,并且确定针对不同块大小中的每个块大小的误差分数/成本。例如,可以针对一个亮度块大小确定第一多个误差分数,可以针对第二亮度块大小来确定第二多个误差分数等。这样做时,CfL预测单元2202可以从多个下采样滤波器中确定目标下采样滤波器或最优下采样滤波器,以及确定针对视频序列提供原始色度块与预测色度块之间的最小或最低成本或误差的用于亮度块的最优块大小。
另外地或可替选地,在生成预测色度块时,可以以例如先前参照图23A、图23B所描述的或者使用上述隐式CfL方法的各种方式中的任何方式来确定用于与亮度AC贡献相乘的缩放因子α。
另外地或可替选地,在生成预测色度块时,对于对应于原始/输入色度块的给定预测色度块,在各种实现方式中的任何实现方式中,预测DC贡献可以是原始/输入色度块的样本的平均值、邻近色度块的样本的平均值或其组合。
另外地或可替选地,在一些实现方式中,CfL预测单元2202可以被配置成在CfL预测单元2202可用的多个下采样滤波器中优选一个或更多个下采样滤波器而不是其它下采样滤波器。例如,CfL预测单元2202可以被配置成对下采样滤波器中的一个或更多个下采样滤波器的成本或误差分数中的一个或更多个成本或误差分数进行偏置,以增加CfL预测单元2202选择这些一个或更多个下采样滤波器之一作为目标下采样滤波器的可能性。例如,CfL预测单元2202可以将小于1的缩放因子乘以误差或成本。作为另一示例,CfL预测单元2202可以从成本中减去诸如正值的值。在其他实现方式中,可以不执行偏置。
另外地或可替选地,可以基于针对视频序列的至少一帧的块的CfL预测来选择目标下采样滤波器。例如,CfL预测单元2202可以使用视频序列的第一帧来确定目标下采样滤波器。作为另一示例,该至少一帧可以不包括第一帧,或者可以包括不同于第一帧或者除了第一帧之外的一个或更多个帧。例如,CfL预测单元2202可以从视频序列中选择针对其选择目标下采样滤波器的一个或更多个帧。另外地或可替选地,CfL预测单元2202可以被配置成选择针对其确定目标下采样滤波器的视频序列的特定一个或更多个关键图片帧或仅帧内图片帧。在一些实现方式中,CfL预测单元2202可以针对视频序列的每个帧或每一帧从多个下采样滤波器中选择目标下采样滤波器。另外地或可替选地,在一些实现方式中,CfL预测单元2202可以针对视频序列的每个帧内帧或每一帧内帧从多个下采样滤波器中选择目标下采样滤波器。此外,对于至少一些实现方式,在CfL预测单元2202确定目标下采样滤波器时,CfL预测单元2202可以将目标下采样滤波用于比特流中的后续帧中的色度预测,直到CfL预测单元2202识别要针对其确定目标下采样滤波器的下一帧(例如,下一关键帧)。
另外,尽管参照CfL预测描述了检测算法的以上实现方式,但是其他实现方式可以利用不同于CfL预测模式或除了CfL预测模式之外的一个或更多个其他预测模式来执行检测算法,其他预测模式的非限制性示例包括DC模式和平滑模式。例如,编码器和/或解码器可以包括预测单元,该预测单元接收一个或更多个颜色分量的原始样本并且基于原始/输入样本来生成一个或更多个颜色分量的预测样本。预测单元可以使用下采样滤波器作为预测处理的一部分。对应地,预测单元可以执行检测处理以从多个下采样滤波器中确定目标下采样滤波器。作为检测处理的一部分,预测单元可以使用诸如SAD算法(例如,根据式(7))和/或SSD算法(例如,根据式(8))的算法来确定原始样本与预测样本之间的成本或误差分数以确定多个成本或误差分数,每个成本或误差分数对应于相应的下采样滤波器,并且进而确定对应于最佳成本或误差或最低成本或误差的目标下采样滤波器。
图32是包括多次编码方法的视频处理的示例方法3200的流程图。在块3202处,编码器可以对视频序列执行第一次编码。在块3204处,编码器可以在对视频序列执行第一次编码之后对视频序列执行第二次编码。在至少一些实现方式中,在块3202处,编码器可以使用多个下采样滤波器例如可用于编码器或由编码器支持的下采样滤波器在色度平面上应用第一次编码。另外地或可替选地,可以对原始/输入亮度样本使用仅帧内编码以用于执行预测(例如,CfL预测)。另外地或可替选地,在第一次编码期间仅可以使用一些有限的帧内预测模式,例如,CfL模式、DC模式或平滑模式。在块3202处的第一次期间确定的目标下采样滤波器可以用作在第一次编码之后应用于视频序列的第二次编码的下采样滤波器。此外,在各种实现方式中的任何实现方式中,第一次编码和/或第二次编码可以包括分区、帧内和/或帧间预测、量化、变换或熵编码估计中的一个或更多个。
本公开内容中的实施方式可以单独地使用或以任何顺序组合地使用。此外,方法(或实施方式)、编码器和解码器中的每一个可以通过处理电路***(例如,一个或更多个处理器或者一个或更多个集成电路)实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。本公开内容中的实施方式可以应用于亮度块或色度块。
上述技术可以被实现为使用计算机可读指令并物理地存储在一个或更多个计算机可读介质中的计算机软件。例如,图33示出了适合于实现所公开的主题的某些实施方式的计算机***3300。
计算机软件可以使用任何合适的机器代码或计算机语言来编码,所述机器代码或计算机语言可以经过汇编、编译、链接等机制以创建包括指令的代码,所述指令可以由一个或更多个计算机中央处理单元(central processing unit,CPU)、图形处理单元(GraphicsProcessing Unit,GPU)等直接执行或者通过解释、微代码执行等来执行。
指令可以在各种类型的计算机或其部件(包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等)上执行。
图33中示出的用于计算机***3300的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应被解释为具有与计算机***3300的示例性实施方式中所示的部件中的任何一个或其组合相关的任何依赖性或要求。
计算机***3300可以包括某些人机接口输入设备。这样的人机接口输入设备可以对由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:手势)、嗅觉输入(未描绘)的输入作出响应。人机接口设备还可以用于捕获不一定与人的有意识输入直接相关的某些媒体,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静态图像摄像装置获得的摄影图像)、视频(例如二维视频,包括立体视频的三维视频)。
输入人机接口设备可以包括以下各项中的一个或更多个(每项仅描绘一个):键盘3301、鼠标3302、触控板3303、触摸屏3310、数据手套(未示出)、操纵杆3305、麦克风3306、扫描仪3307、摄像装置3308。
计算机***3300还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括:触觉输出设备(例如,通过触摸屏3310、数据手套(未示出)或操纵杆3305进行的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备);音频输出设备(例如:扬声器3309、头戴式耳机(未描绘));视觉输出设备(例如,屏幕3310,包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个屏幕具有或不具有触摸屏输入能力,每个屏幕具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘);全息显示器和发烟器(未描绘));以及打印机(未描绘)。
计算机***3300还可以包括人类可访问存储设备及其相关联的介质,例如包括具有CD/DVD等介质3321的CD/DVD ROM/RW 3320的光学介质、拇指驱动器3322、可移除硬盘驱动器或固态驱动器3323、传统磁性介质例如磁带和软盘(未描绘)、基于专用ROM/ASIC/PLD的设备例如安全加密狗(未描绘)等。
本领域技术人员还应当理解,结合目前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬态信号。
计算机***3300还可以包括到一个或更多个通信网络3355的接口3354。网络可以例如是无线网络、有线网络、光网络。网络还可以为局域网、广域网、城域网、车载和工业网络、实时网络、延迟容忍网络等。网络的示例包括:局域网例如以太网;无线LAN(Local AreaNetwork,LAN);包括GSM、3G、4G、5G、LTE等的蜂窝网络;包括线缆TV、卫星TV和地面广播TV的TV有线或无线广域数字网络;包括CAN总线的车辆和工业网络等。某些网络通常需要附接至某些通用数据端口或***总线3349(例如,计算机***3300的USB(Universal Serial Bus,USB)端口)的外部网络接口适配器;其他的网络通常通过如下所述(例如,到PC计算机***的以太网接口或到智能电话计算机***的蜂窝网络接口)附接至***总线而集成到计算机***3300的核中。计算机***3300可以使用这些网络中的任何网络与其他实体进行通信。这样的通信可以是仅单向接收的(例如,广播TV)、仅单向发送的(例如,至某些CAN总线设备的CAN总线)、或双向的,例如,到使用局域数字网络或广域数字网络至其他计算机***。可以在如上所述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
上述人机接口设备、人可访问的存储设备和网络接口可以附接至计算机***3300的核3340。
核3340可以包括一个或更多个中央处理单元(CPU)3341、图形处理单元(GPU)3342、呈现场可编程门阵列(Field Programmable Gate Areas,FPGA)3343形式的专用可编程处理单元、用于某些任务的硬件加速器3344、图形适配器3350等。这些设备以及只读存储器(random-access memory,ROM)3345、随机存取存储器3346、内部大容量存储装置(例如,内部非用户可访问硬盘驱动器、SSD等)3347可以通过***总线3348连接。在一些计算机***中,***总线3348可以以一个或更多个物理插头的形式访问,以使得能够通过额外的CPU、GPU等实现扩展。***设备可以直接地或通过***总线3349附接至核的***总线3348。在示例中,屏幕3310可以连接至图形适配器3350。***总线的架构包括PCI(PeripheralComponent Interconnect/Interface,PCI)、USB等。
CPU 3341、GPU 3342、FPGA 3343和加速器3344可以执行某些指令,这些指令组合起来可以构成之前提及的计算机代码。该计算机代码可以存储在ROM 3345或RAM(RandomAccess Memory,RAM)3346中。过渡数据也可以存储在RAM 3346中,而永久数据可以存储在例如内部大容量存储装置3347中。可以通过使用高速缓冲器存储器来实现对存储器设备中的任何存储器设备的快速存储和检索,该高速缓冲器存储器可以与一个或更多个CPU3341、GPU 3342、大容量存储装置3347、ROM 3345、RAM 3346等紧密相关联。
计算机可读介质在其上可以具有用于执行各种计算机实现的操作的计算机代码。这些介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者他们可以具有计算机软件领域的技术人员公知且可用的类型。
作为非限制示例,具有架构的计算机***3300——特别是核3340——可以提供由于处理器(包括CPU、GPU、FPGA、加速器等)执行在一个或更多个有形计算机可读介质中实现的软件而提供的功能。这样的计算机可读介质可以是如下介质,所述介质与如上所介绍的用户可访问大容量存储装置、以及具有非暂态性质的核3340的某些存储装置例如核内部大容量存储装置3347或ROM 3345相关联。实现本公开内容的各种实施方式的软件可以存储在这样的设备中并由核3340执行。根据特定需要,计算机可读介质可以包括一个或更多个存储器设备或芯片。软件可以使核3340并且特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文描述的特定过程或特定过程的特定部分,包括定义存储在RAM 3346中的数据结构,并根据软件定义的过程修改这样的数据结构。此外或作为替选方案,计算机***可以由于逻辑硬连线或以其他方式体现在电路中而提供功能(例如:加速器3344),其可以代替软件或与软件一起操作以执行本文中描述的特定过程或特定过程的特定部分。在适当的情况下,提及的软件可以包括逻辑,反之,提及的逻辑也可以包括软件。在适当的情况下,对计算机可读介质的引用可以包括存储用于执行的软件的电路(例如,集成电路(integratedcircuit,IC))、实施用于执行的逻辑的电路或上述两者。本公开内容包括硬件和软件的任何合适的组合。
本公开内容的主题还可以涉及或包括以下方面以及其他方面:
在第一方面中,用于视频处理的方法包括:从视频序列中接收输入色度块;确定所述输入色度块要在针对视频序列的根据亮度预测色度(Chroma from Luma,CfL)预测模式下被预测;应用多个下采样滤波器以分别获得对应于输入色度块的多组经下采样的亮度样本;基于多组经下采样的亮度样本中的每组经下采样的亮度样本,在CfL预测模式下迭代预测输入色度块;计算迭代预测的多个误差分数,所述多个误差分数中的每个误差分数对应于多个下采样滤波器中的相应一个下采样滤波器;基于多个误差分数从多个下采样滤波器中选择目标下采样滤波器;以及通过应用所选择的目标下采样滤波器在CfL预测模式下对输入色度块进行编码。
第二方面包括第一方面,并且还包括从多个误差分数中识别最佳误差分数。
第三方面包括第二方面,并且还包括:其中选择目标下采样滤波器包括从多个下采样滤波器中选择对应于最佳误差分数的下采样滤波器作为目标下采样滤波器。
第四方面包括第一方面至第三方面中的任一方面,并且还包括:将视频序列的帧的多个输入亮度样本分割成多个输入亮度块;利用多个下采样滤波器中的每个下采样滤波器对多个亮度块进行下采样以生成多组经下采样的亮度块,每组经下采样的亮度块对应于多个下采样滤波器中的相应一个下采样滤波器;以及根据CfL预测模式并基于多组经下采样的亮度块生成多组预测色度块,每组预测色度块对应于多个下采样滤波器中的相应一个下采样滤波器,其中,计算多个误差分数包括基于多组预测色度块和多个输入色度块来计算多个误差分数。
第五方面包括第四方面,并且还包括:改变多个输入亮度块的块大小以计算多个误差分数。
第六方面包括第五方面,并且还包括:基于改变块大小来确定多个输入亮度块的最佳块大小。
第七方面包括第四方面至第六方面中的任一方面,并且还包括:其中,多组预测色度块中的每组预测色度块包括蓝色差预测色度块组和红色差预测色度块组,并且其中,多个误差分数中的每个误差分数基于对应于相应的蓝色差预测色度块组的第一误差和对应于相应的红色差预测色度块组的第二误差。
第八方面包括第一方面至第七方面中的任一方面,并且还包括:其中,计算多个误差包括基于绝对差之和(SAD)算法或平方差之和(SSD)算法来计算多个误差。
第九方面包括第一方面至第八方面中的任一方面,并且还包括:对多个误差分数中的一个误差分数进行偏置以增加选择与多个误差分数中的所述一个误差分数对应的下采样滤波器的可能性。
第十方面包括第一方面至第九方面中的任一方面,并且还包括:其中,输入色度块是视频序列的第一图片帧的一部分。
第十一方面包括第一方面至第十方面中的任一方面,并且还包括:其中,输入色度块是视频序列中的所选择的图片帧的一部分。
第十二方面包括第一方面至第十一方面中的任一方面,并且还包括:选择针对其从多个下采样滤波器中选择对应的目标下采样滤波器的视频序列的一个或更多个预定关键帧。
第十三方面包括第一方面至第十二方面中的任一方面,并且还包括:针对视频序列的每一帧从多个下采样滤波器中选择对应的目标下采样滤波器。
第十四方面包括第一方面至第十三方面中的任一方面,并且还包括:针对视频序列的每一帧内帧选择对应的目标下采样滤波器。
在第十五方面中,用于视频处理的方法包括:使用多个下采样滤波器对视频序列执行第一次编码;基于第一次编码从多个下采样滤波器中确定目标下采样滤波器;以及在执行第一次编码之后使用目标下采样滤波器对视频序列执行第二次编码。
第十六方面包括第十五方面,并且还包括:从与多个下采样滤波器对应的多个误差分数中确定最佳误差分数,其中,确定目标下采样滤波器包括确定与最佳误差分数对应的目标下采样滤波器。
第十七方面包括第十五方面或第十六方面中的任一方面,并且还包括:其中,执行第一次编码包括使用多个下采样滤波器对视频序列执行CfL预测。
第十八方面包括一种装置,该装置包括:存储多个指令的存储器,以及处理器,该处理器被配置成执行多个指令,并且在执行多个指令时被配置成实现第一方面至第十七方面中的任一方面。
第十九方面包括非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储可由处理器执行的多个指令,其中,所述多个指令在由处理器执行时被配置成使处理器执行第一方面至第十七方面中的任一方面。
除了在上面列举的每个独立方面中提及的特征之外,一些示例可以单独地或组合地示出在从属方面中提及的和/或如在上面的描述中公开的和在附图中示出的可选特征。
虽然本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容范围内的改变、置换和各种替换等同物。因此将认识到,本领域技术人员将能够设想许多***和方法,这些***和方法尽管未在本文中明确示出或描述,但是体现了本公开内容的原理并且因此在本公开内容的精神和范围内。
附录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
LFNST:低频不可分离变换
IST:帧内二次变换

Claims (20)

1.一种用于视频处理的方法,所述方法包括:
从视频序列中接收输入色度块;
确定所述输入色度块要在针对所述视频序列的根据亮度预测色度(CfL)预测模式下被预测;
应用多个下采样滤波器以分别获得对应于所述输入色度块的多组经下采样的亮度样本;
基于所述多组经下采样的亮度样本中的每组经下采样的亮度样本,在所述CfL预测模式下迭代预测所述输入色度块;
计算所述迭代预测的多个误差分数,所述多个误差分数中的每个误差分数对应于所述多个下采样滤波器中的相应一个下采样滤波器;
基于所述多个误差分数从所述多个下采样滤波器中选择目标下采样滤波器;以及
通过应用所选择的目标下采样滤波器在所述CfL预测模式下对所述输入色度块进行编码。
2.根据权利要求1所述的方法,还包括从所述多个误差分数中识别最佳误差分数。
3.根据权利要求2所述的方法,其中,选择所述目标下采样滤波器包括:从所述多个下采样滤波器中选择对应于所述最佳误差分数的下采样滤波器作为所述目标下采样滤波器。
4.根据权利要求1至3中任一项所述的方法,还包括:
将所述序列帧的帧的多个输入亮度样本分割成多个输入亮度块;
利用所述多个下采样滤波器中的每个下采样滤波器对所述多个亮度块进行下采样以生成多组经下采样的亮度块,每组经下采样的亮度块对应于所述多个下采样滤波器中的相应一个下采样滤波器;以及
根据所述CfL预测模式并基于所述多组经下采样的亮度块生成多组预测色度块,每组预测色度块对应于所述多个下采样滤波器中的相应一个下采样滤波器,
其中,计算所述多个误差分数包括:基于所述多组预测色度块和所述多个输入色度块来计算所述多个误差分数。
5.根据权利要求4所述的方法,还包括:改变所述多个输入亮度块的块大小以计算所述多个误差分数。
6.根据权利要求5所述的方法,还包括:基于改变所述块大小来确定所述多个输入亮度块的最佳块大小。
7.根据权利要求4至6中任一项所述的方法,其中,所述多组预测色度块中的每组预测色度块包括蓝色差预测色度块组和红色差预测色度块组,并且其中,所述多个误差分数中的每个误差分数基于对应于相应的蓝色差预测色度块组的第一误差和对应于相应的红色差预测色度块组的第二误差。
8.根据权利要求1至7中任一项所述的方法,其中,计算所述多个误差包括:基于绝对差之和(SAD)算法或平方差之和(SSD)算法来计算所述多个误差。
9.根据权利要求1至8所述的方法,还包括:对所述多个误差分数中的一个误差分数进行偏置以增加选择与所述多个误差分数中的所述一个误差分数对应的下采样滤波器的可能性。
10.根据权利要求1至9中任一项所述的方法,其中,所述输入色度块是所述视频序列的第一图片帧的一部分。
11.根据权利要求1至10中任一项所述的方法,其中,所述输入色度块是所述视频序列中的所选择的图片帧的一部分。
12.根据权利要求1至11中任一项所述的方法,还包括:选择针对其从所述多个下采样滤波器中选择对应的目标下采样滤波器的所述视频序列的一个或更多个预定关键帧。
13.根据权利要求1至12中任一项所述的方法,还包括:针对所述视频序列的每一帧从所述多个下采样滤波器中选择对应的目标下采样滤波器。
14.根据权利要求1至13中任一项所述的方法,还包括:针对所述视频序列的每一帧内帧从所述多个滤波器中选择对应的目标下采样滤波器。
15.一种用于视频处理的方法,所述方法包括:
使用多个下采样滤波器对视频序列执行第一次编码;
基于所述第一次编码从所述多个下采样滤波器中确定目标下采样滤波器;以及
在执行所述第一次编码之后使用所述目标下采样滤波器对所述视频序列执行第二次编码。
16.根据权利要求15所述的方法,还包括:从与所述多个下采样滤波器对应的多个误差分数中确定最佳误差分数,其中,确定所述目标下采样滤波器包括确定与所述最佳误差分数对应的目标下采样滤波器。
17.根据权利要求15或16中任一项所述的方法,其中,执行所述第一次编码包括使用所述多个下采样滤波器对所述视频序列执行CfL预测。
18.一种装置,包括:
存储多个指令的存储器;以及
处理器,其被配置成执行所述多个指令,并且在执行所述多个指令时被配置成:
从视频比特流中接收输入色度块;
确定所述输入色度块要在根据亮度预测色度(CfL)预测模式下被预测;
应用多个下采样滤波器以分别获得对应于所述输入色度块的多组经下采样的亮度样本;
基于所述多组经下采样的亮度样本中的每组经下采样的亮度样本,在所述CfL预测模式下迭代预测所述输入色度块;
计算所述迭代预测的多个误差分数,所述多个误差分数中的每个误差分数对应于所述多个下采样滤波器中的相应一个下采样滤波器;
基于所述多个误差分数从所述多个下采样滤波器中选择目标下采样滤波器;以及
通过应用所述目标下采样滤波器在所述CfL预测模式下对所述输入色度块进行编码。
19.根据权利要求18所述的装置,其中,所述处理器在执行所述多个指令时还被配置成从所述多个误差分数中识别最佳误差分数。
20.根据权利要求19所述的装置,其中,为了选择所述目标下采样滤波器,所述处理器在执行所述多个指令时被配置成从所述多个下采样滤波器中选择对应于所述最佳误差分数的下采样滤波器作为所述下采样滤波器。
CN202280075374.2A 2022-09-02 2022-11-30 针对根据亮度预测色度的预测选择下采样滤波器 Pending CN118235406A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263403635P 2022-09-02 2022-09-02
US63/403,635 2022-09-02
US17/992,282 US20240080443A1 (en) 2022-09-02 2022-11-22 Selecting downsampling filters for chroma from luma prediction
US17/992,282 2022-11-22
PCT/US2022/080623 WO2024049489A1 (en) 2022-09-02 2022-11-30 Selecting downsampling filters for chroma from luma prediction

Publications (1)

Publication Number Publication Date
CN118235406A true CN118235406A (zh) 2024-06-21

Family

ID=90061722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280075374.2A Pending CN118235406A (zh) 2022-09-02 2022-11-30 针对根据亮度预测色度的预测选择下采样滤波器

Country Status (4)

Country Link
US (1) US20240080443A1 (zh)
KR (1) KR20240051259A (zh)
CN (1) CN118235406A (zh)
WO (1) WO2024049489A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953152B1 (en) * 2004-06-28 2011-05-31 Google Inc. Video compression and encoding method
GB2460069A (en) * 2008-05-15 2009-11-18 Snell & Wilcox Ltd Sampling conversion between formats in digital image processing
US9693070B2 (en) * 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
CN109218730B (zh) * 2012-01-19 2023-07-28 华为技术有限公司 用于lm帧内预测的参考像素缩减
US10715816B2 (en) * 2015-11-11 2020-07-14 Apple Inc. Adaptive chroma downsampling and color space conversion techniques

Also Published As

Publication number Publication date
US20240080443A1 (en) 2024-03-07
WO2024049489A1 (en) 2024-03-07
KR20240051259A (ko) 2024-04-19

Similar Documents

Publication Publication Date Title
CN111955007A (zh) 视频解码的方法和装置
CN113557527A (zh) 通用视频编解码中色彩变换的方法和装置
CN114270836A (zh) 视频编解码的颜色转换
CN117063471A (zh) 用于运动矢量差的联合信令方法
CN116325723B (zh) 用于视频解码的方法、计算机设备及介质
CN116830581A (zh) 用于运动矢量差的经改进的信令方法和装置
CN117356098A (zh) 在跨分量变换系数级别重构中导出偏移
WO2022211877A1 (en) Harmonized design between multiple reference line intra prediction and transform partitioning
EP4179727A1 (en) Entropy coding for intra prediction modes
CN115486077A (zh) 针对变换系数的符号图的改进熵编码
CN115398918A (zh) 用于视频编码的方法和装置
US20240080443A1 (en) Selecting downsampling filters for chroma from luma prediction
JP7508705B2 (ja) イントラ予測モード向けのエントロピーコーディングのための方法、装置、及びコンピュータプログラム
CN116584092B (zh) 视频块解码方法、装置和存储介质
US20230345015A1 (en) Chroma from luma prediction using neighbor luma samples
US20230224465A1 (en) Cross-Channel Prediction based on Multiple Prediction Modes
US20230370601A1 (en) Chroma from luma prediction based on merged chroma blocks
US20230336748A1 (en) Chroma from luma prediction using mapping and different types
CN117242772A (zh) 使用邻近亮度样本的根据亮度的色度预测
CN116325750A (zh) 用于具有自适应内核选项的二次变换的方法和装置
CN116472711A (zh) 用于帧内模式编码的硬件友好设计
CN116783888A (zh) 改进的帧内模式编码
AU2022442102A1 (en) Chroma from luma prediction using neighbor luma samples
EP4393153A1 (en) Hardware friendly design for intra mode coding
KR20230135670A (ko) 조인트 모션 벡터 차이 코딩

Legal Events

Date Code Title Description
PB01 Publication