CN116982315A - 利用单个参考信令推导运动矢量 - Google Patents

利用单个参考信令推导运动矢量 Download PDF

Info

Publication number
CN116982315A
CN116982315A CN202280016759.1A CN202280016759A CN116982315A CN 116982315 A CN116982315 A CN 116982315A CN 202280016759 A CN202280016759 A CN 202280016759A CN 116982315 A CN116982315 A CN 116982315A
Authority
CN
China
Prior art keywords
motion vector
reference frame
block
video
prediction
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
CN202280016759.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 CN116982315A publication Critical patent/CN116982315A/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/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal 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/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/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/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/423Methods 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 characterised by memory arrangements
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开涉及使用参考信令推导运动矢量差以用于编码和/或解码视频流。可以存在指示特定帧间编码模式的语法标志或值。基于该帧间编码模式,当前参考帧的第一运动矢量用于推导出指向不同参考帧的第二运动矢量。基于所推导出的第二运动矢量对已编码视频流进行解码。

Description

利用单个参考信令推导运动矢量
相关申请的交叉引用
本申请要求于2022年10月26日提交的题为“DERIVED MOTION VECTOR WITHSINGLE REFERENCE SIGNALING(利用单个参考信令推导运动矢量)”的美国申请18/049,914、于2021年11月18日提交的题为“DERIVED MOTION VECTOR WITH SINGLE REFERENCESIGNALING(利用单个参考信令推导运动矢量)”的美国临时申请63/280,978、以及于2021年12月13日提交的题为“DERIVED MOTION VECTOR WITH SINGLE REFERENCE SIGNALING(利用单个参考信令推导运动矢量)”的美国临时申请63/289,008的优先权,这些专利申请的全部内容通过引用并入本文中。
技术领域
本公开描述了一组高级视频编码技术。更具体地,所公开的技术涉及利用单个参考信令推导运动矢量差以用于编码和/或解码。
背景技术
本文所提供的背景描述是出于总体上呈现本申请内容的目的。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本申请提交时作为现有技术,且从未明示或暗示其被承认为本申请的现有技术。
可以使用具有运动补偿的帧间图像预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图像,每个图像具有例如为1920×1080的亮度样本及相关的全采样或子采样的色度样本的空间大小。该一系列图像可以具有例如每秒60幅图像或60帧的固定的或可变的图像速率(替代地,称为帧率)。未压缩的视频对流式传输或数据处理具有特定的比特率要求。例如,具有1920×1080的像素分辨率、60帧/秒的帧率、以及每个颜色通道每个像素8位的4:2:0的色度子采样的视频需要接近1.5Gbit/s的带宽。一小时的此类视频需要600GB以上的存储空间。
视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可以有助于减小上述带宽或存储空间需求,在某些情况下可以减小两个数量级或大于两个数量级。可以采用无损压缩和有损压缩,以及它们的组合。无损压缩是指可以通过解码过程从已压缩的原始信号中重建原始信号的精确副本的技术。有损压缩指的是如下编码/解码过程,在该编码/解码过程中,在编码期间未完全保留原始视频信息,以及在解码期间未完全恢复原始视频信息。当使用有损压缩时,已重建的信号可能与原始信号不同,尽管丢失了一些信息,但是原始信号和重建的信号之间的失真足够小,以使已重建的信号可用于预期的应用。在视频的情况下,在许多应用中广泛使用有损压缩。可容忍的失真量取决于应用,例如某些消费视频流媒体应用的用户相比电影或电视广播应用的用户来说可以容忍更高的失真。可以选择或调整可通过特定的编码算法实现的压缩比,以反映各种失真容忍度:较高的可容忍的失真通常允许编码算法产生较高损耗和较高压缩比。
视频编码器和解码器可以利用来自多种广泛类别和步骤的技术,例如,包括:运动补偿、傅里叶变换、量化和熵编码。
视频编解码器技术可以包括称为帧内编码的技术。在帧内编码中,在不参考来自先前重建的参考图像的样本或其他数据的情况下表示样本值。在某些视频编解码器中,图像在空间上细分为样本块。当所有的样本块都以帧内模式编码时,该图像可以是帧内图像。帧内图像及其派生物(例如独立的解码器刷新图像)可以用于重置解码器状态,因此可以用作已编码视频码流和视频会话中的第一张图像,或者用作静止图片。然后,帧内预测之后的块的样本可进行变换而处于频域中,并且可以在熵编码之前对如此生成的变换系数进行量化。帧内预测表示一种使预变换域中的样本值最小化的技术。在某些情况下,变换后的DC值越小,且AC系数越小,则在给定的量化步长大小下就需要越少的比特来表示熵编码后的块。
诸如从例如MPEG-2代编码技术已知的传统帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括基于例如在空间相邻的编码和/或解码期间获得的、按照解码顺序在帧内编码或解码的数据块之前的周围样本数据和/或元数据来尝试对块进行编码/解码的。此类技术此后称为“帧内预测”技术。应注意,至少在某些情况下,帧内预测仅使用来自正在重建的当前图像的参考数据,而不使用来自其它参考图像的参考数据。
帧内预测可以有许多不同的形式。当在给定的视频编码技术中可以使用不止一种这样的技术时,使用中的技术可称为帧内预测模式。可以在特定的编解码器中提供一种或多种帧内预测模式。在某些情况下,模式可以具有子模式和/或可与各种参数相关联,并且用于视频块的模式/子模式信息和帧内编码参数可以单独编码或包含在模式码字中。对给定的模式、子模式和/或参数组合使用哪个码字可能会通过帧内预测的编码效率增益产生影响,因此用于将码字转换为码流的熵编码技术同样对其也可以产生影响。
使用H.264引入了某种帧内预测模式,并在H.265中对其进行了改进,并在诸如联合探索模型(Joint Exploration Model,JEM)、多功能视频编码(Versatile VideoCoding,VVC)、基准集(Benchmark Set,BMS)等新的编码技术中进一步进行了改进。通常,对于帧内预测,可以使用已经变得可用的相邻样本值来形成预测块。例如,可以沿着一些方向和/或线将特定相邻样本集的可用值复制到预测块中。对使用方向的参考可以编码在码流中,或者可以对其本身进行预测。
参考图1A,右下方描绘的是在H.265的33种可能的预测方向(对应于H.265中指定的35个帧内模式中的33个角模式)中指定的9个预测方向的子集。箭头收敛的点(101)表示正在被预测的样本。箭头表示在101处使用相邻样本来预测样本的方向。例如,箭头(102)指示从与水平方向成45度角的右上方的一个或多个样本预测样本(101)。同样,箭头(103)表示从与水平方向成22.5度角的左下方的一个或多个样本中预测样本(101)。
仍参考图1A,在左上方描绘了一个4×4个样本的正方形块(104)(由粗体虚线表示)。正方形块(104)包含16个样本,每个样本使用“S”及其在Y维度上的位置(例如,行索引)和其在X维度上的位置(例如列索引)来标志。例如,样本S21是Y维度上(从顶部开始)的第二个样本,以及X维度上(从左侧开始)的第一个样本。类似地,样本S44在Y和X维度上都是块(104)中的第四个样本。由于块的大小为4×4个样本,因此S44在右下角。图1A中还示出了参考样本,它们遵循类似的编号方案。参考样本用R及其相对于块(104)的Y位置(例如行索引)和X位置(列索引)来标志。在H.264和H.265二者中,使用与正在重建的块相邻的预测样本。
框104的帧内图像预测可以通过用信号通知的预测方向从相邻样本复制参考样本值来开始。例如,假设已编码视频码流包括信令(signaling),该信令针对该块104指示箭头(102)的预测方向,也就是说,样本是从与水平方向成45度角的右上方的一个或多个预测样本进行预测的。在这种情况下,从同一个参考样本R05预测样本S41、S32、S23和S14。然后,根据参考样本R08预测样本S44。
在某些情况下,可以例如通过插值来组合多个参考样本的值,以便计算参考样本,尤其是当方向不能被45度整除时。
随着视频编码技术的发展,可能的方向的数量已经增加。在H.264(2003年)中,九个不同的方向可用于帧内预测。这一数字在H.265(2013年)增加到了33个,而在本公开时,JEM/VVC/BMS中可支持多达65个方向。已经进行了实验以识别最合适的帧内预测方向,并且熵编码中的某些技术被用来以少量的比特对那些最合适的方向进行编码,对一些方向,接受一定比特的代价。此外,有时可以根据在已经解码的相邻块的帧内预测中使用的相邻方向来预测方向本身。
图1B是示出根据JEM的65个帧内预测方向的示意图(180),从而示出了随着时间的推移开发出来的各种编码技术中预测方向的数量增加。
表示方向的帧内预测方向比特在编码视频码流中的映射可以随视频编码技术的不同而不同,并且,例如,映射的范围可以从预测方向简单直接映射到帧内预测模式,映射到码字,再映射到涉及最可能的模式的复杂自适应方案,以及类似技术。但是,在所有情况下,对于帧内预测,可能存在某些方向,这些方向与某些其他方向相比,在视频内容中统计出现的可能性较小。由于视频压缩的目标是减少冗余,因此,在一种设计良好的视频编码技术中,那些不太可能出现的方向相比可能出现的方向将由更多数量的比特表示。
帧间图像预测或帧间预测可以基于运动补偿。在运动补偿中,来自先前重建的图像或其部分(参考图像)的样本数据在沿由运动矢量(此后称为MV)指示的方向上空间偏移之后,被用于预测新重建的图像或图像的一部分(例如,块)。在一些情况下,参考图像可以与当前正在重建的图像相同。MV可以具有X和Y两个维度,或具有三个维度,第三个维度指示正在使用的参考图像(后者类似于时间维度)。
在一些视频压缩技术中,可以根据其他MV,例如根据样本数据的在空间上与正在重建的区域相邻的其它区域相关的、且解码顺序在当前MV之前的其它MV来预测适用于样本数据的某个区域的MV。这样做可以可通过消除相关MV中的冗余,而大大减少编码MV所需的数据量,从而增加压缩率。MV预测可以有效地工作,例如,由于在对从相机获得的输入视频信号(称为自然视频)进行编码时,存在以下统计可能性:在视频序列中,比适用单个MV的区域更大的区域在相似的方向上移动,因此,在某些情况下,可以使用从相邻区域的MV推导出的相似运动矢量来预测该更大的区域。这使得给定区域的MV与根据周围MV所预测的MV相似或相同,进而在熵编码之后,该给定区域的MV可以用比直接编码MV(而非根据相邻MV来预测MV)时使用的位数更少的位数来表示。在一些情况下,MV预测可以是无损压缩从原始信号(即样本流)中推导出的信号(即MV)的示例。在其他情况下,例如由于根据多个周围MV计算预测值时出现舍入误差,MV预测本身可以是有损的。
H.265/HEVC(ITU-T H.265建议书,“高效视频编解码(High Efficiency VideoCoding)”,2016年12月)中描述了各种MV预测机制。在H.265提供的多种MV预测机制中,本申请描述的是下文称作“空间合并”的技术。
具体地,请参考图2,当前块(201)包括在运动搜索过程期间已由编码器发现的样本,可以根据已产生空间偏移的相同大小的先前块来预测该样本。可从一个或多个参考图像相关联的元数据中推导出该MV,而非对MV直接编码。例如,使用关联于A0、A1和B0、B1、B2(分别对应202到206)五个周围样本中的任一样本的MV,(按解码次序)从最近的参考图像的元数据中推导出该MV。在H.265中,MV预测可使用来自相邻块正在使用的相同参考图像的预测值。
AOMedia Video 1(AV1)是一种开放的视频编码格式,专为通过互联网进行的视频传输而设计。它是作为VP9的继任者开发的,建立在VP9的代码库之上,并结合了附加的技术。AV1码流规范包括参考视频编解码器,例如H.265或高效视频编码(HEVC)标准或通用视频编码(VVC)。
发明内容
本公开的实施例提供了利用单个参考信令推导运动矢量差以用于编码和/或解码视频流的方法和装置。可以存在指示特定帧间编码模式的语法标志/值。基于帧间编码模式,使用当前参考帧的第一运动矢量来推导出指向一不同的参考帧的第二运动矢量。基于推导出的第二运动矢量对已编码的视频流进行解码。
在一个实施例中,用于解码视频流的方法包括:接收所述视频流,所述视频流包括语法标志,所述语法标志指示第一参考帧的第一运动矢量是否用于推导出第二参考帧/不同的参考帧的第二运动矢量;接收所述视频流中当前帧的所述第一参考帧;基于所述语法标志的值,确定所述第一参考帧的所述第一运动矢量是否用于推导出所述第二参考帧的所述第二运动矢量;响应于所述语法标志的所述值指示所述当前参考帧的所述第一运动矢量用于推导出所述第二参考帧的所述第二运动矢量,推导出所述第二参考帧的所述第二运动矢量,其中,所述推导基于所述语法标志的所述值和所述第一参考帧的所述第一运动矢量;以及基于所推导出的第二运动矢量对所述视频流进行解码。所述第一运动矢量指向所述第一参考帧,所述第二运动矢量指向与所述第一参考帧不同的所述第二参考帧,并且运动矢量差(MVD)基于所述第一运动矢量和所述第二运动矢量提供预测。所述推导包括帧间编码模式,其中,所述帧间编码模式包括推导_新运动矢量(DERIVED_NEWMV)模式或推导_附近运动矢量(DERIVED_NEARMV)模式。所述DERIVED_NEWMV模式包括直接从所述第一参考帧推导出所述第二运动矢量。所述DERIVED_NEARMV模式包括从所述第一参考帧的相邻帧推导出所述第二运动矢量。所述方法包括响应于所述语法标志,指示应用所述帧间编码模式中的哪一种帧间编码模式,其中,在指示所述单个参考帧的所述第一运动矢量可以推导出所述第二运动矢量时,从所述第一运动矢量推导所述第二运动矢量。所述方法包括基于所指示的帧间编码模式,使用信号发送运动矢量差(MVD)。所述方法包括使用信号发送参考帧索引,所述参考帧索引指示针对帧间预测模式,当前块使用所述第一参考帧还是所述第二参考帧。当参考帧缓冲器中有至少两个参考帧能用于所述当前帧,并且所述至少两个参考帧中的一个参考帧在显示顺序上在所述当前帧之前,而所述至少两个参考帧中的另一个参考帧在显示顺序上在所述当前帧之后时,使用信号发送所述参考帧索引。参考帧的方向基于所述参考帧在显示顺序上是在所述当前帧之前还是在显示顺序上是在所述当前帧之后。所述单个参考帧的方向不同于所述第二参考帧的方向。当一个运动矢量对的两个参考帧的图像顺序计数(POC)均大于或均小于所述当前参考帧的POC时,所述两个参考帧的方向是相同的。当一对参考帧中的一个参考帧的图像顺序计数(POC)大于所述当前参考帧的POC并且当所述一对参考帧中的另一个参考帧的POC小于所述当前参考帧的POC时,所述一对参考帧的方向不同。所推导出的第二运动矢量所指向的所述不同参考帧的方向不同于使用信号发送的参考帧的方向或所述单个参考帧的方向。
在另一实施例中,一种用于解码视频码流的装置包括:存储器,用于存储指令;以及处理器,所述处理器与所述存储器通信,其中,当所述处理器执行所述指令时,所述处理器配置为使得所述装置:处理所述视频码流,所述视频码流包括指示帧间编码模式的语法标志;从所述视频码流中识别当前帧的第一参考帧,其中,第一运动矢量指向所述第一参考帧;基于所述语法标志的值,确定所述第一参考帧的所述第一运动矢量是否用于推导出第二参考帧的第二运动矢量;响应于确定所述第一参考帧的所述第一运动矢量用于推导出第二参考帧的第二运动矢量,基于所述第一运动矢量推导出所述第二运动矢量;以及基于所推导出的第二运动矢量对所述视频码流进行解码。所述帧间编码模式包括推导_新运动矢量(DERIVED_NEWMV)模式或推导_附近运动矢量(DERIVED_NEARMV)模式,其中,所述DERIVED_NEWMV模式包括从所述第一参考帧推导出所述第二运动矢量,并且所述DERIVED_NEARMV模式包括从所述第一参考帧的相邻帧推导出所述第二运动矢量。所述第一运动矢量指向所述第一参考帧,所述第二运动矢量指向所述第二参考帧,并且运动矢量差(MVD)基于所述第一运动矢量和所述第二运动矢量提供预测。
在另一实施例中,一种非暂时性计算机可读存储介质,其上存储有指令,其中,当所述指令由处理器执行时,所述指令配置为使得所述处理器:处理视频流,所述视频流包括语法指示,所述语法指示包括帧间编码模式;从所述视频流接收当前帧的第一参考帧,其中,第一运动矢量指向所述第一参考帧;基于所述语法指示的值,确定所述第一参考帧的所述第一运动矢量是否用于推导出第二参考帧的第二运动矢量;响应于确定所述第一参考帧的所述第一运动矢量用于推导出第二参考帧的第二运动矢量,基于所述语法指示且基于所述第一运动矢量推导出所述第二运动矢量,其中,所述第二运动矢量指向所述第二参考帧;以及基于所推导出的第二运动矢量对所述视频流进行解码。所述帧间编码模式包括推导_新运动矢量(DERIVED_NEWMV)模式或推导_附近运动矢量(DERIVED_NEARMV)模式,其中,所述DERIVED_NEWMV模式包括从所述第一参考帧推导出所述第二运动矢量,并且所述DERIVED_NEARMV模式包括从所述第一参考帧的相邻帧推导出所述第二运动矢量。
在一些其他实施例中,公开了一种用于处理视频信息的设备。所述设备可以包括配置为执行上述实施方式中的任何一个实施方式的电路。
本公开的实施例还提供非暂时性计算机可读介质,其上存储有指令,当所述指令由计算机执行以用于视频解码和/或编码时,所述指令使得所述计算机执行视频解码和/或编码。
附图说明
通过下面的详细描述和附图,所公开的主题的其它特征、性质和各种优点将更明显,在附图中:
图1A示出了帧内预测方向模式的示例性子集的示意图。
图1B示出了示例性的帧内预测方向的图示。
图2示出了一个示例中用于运动矢量预测的当前块及其周围空间合并的候选块的示意图。
图3示出了根据示例性实施例的通信系统(300)的简化框图的示意图。
图4示出了根据示例性实施例的通信系统(400)的简化框图的示意图。
图5示出了根据一示例性实施例的视频解码器的简化框图的示意图。
图6示出了根据一示例性实施例的视频编码器的简化框图的示意图。
图7示出了根据另一示例性实施例的视频编码器的框图。
图8示出了根据另一示例性实施例的视频解码器的框图。
图9示出了根据本公开的示例性实施例的编码块划分的方案。
图10示出了根据本公开的示例性实施例的编码块划分的另一方案。
图11示出了根据本公开的示例性实施例的编码块划分的另一方案。
图12示出了根据一示例性划分方案将基本块划分成编码块的示例。
图13示出了示例性的三叉划分方案。
图14示出示例性的四叉树二叉树(QTBT)编码块划分方案。
图15示出了根据本公开的示例性实施例的用于将编码块划分成多个变换块以及这些变换块的编码顺序的方案。
图16示出了根据本公开的示例性实施例的用于将编码块划分成多个变换块以及这些变换块的编码顺序的另一方案。
图17示出了根据本公开的示例性实施例的用于将编码块划分成多个变换块的另一方案。
图18示出了用于块划分的示例性划分树。
图19示出了示例性的三叉树划分。
图20a示出了具有运动矢量差的合并模式(MMVD)搜索点的示例。
图20b示出了具有运动矢量差的合并模式(MMVD)搜索点的另一示例。
图21示出了根据本公开的示例性实施例的方法的流程图。
图22示出了根据本公开的示例性实施例的计算机系统的示意图。
具体实施方式
在整个说明书和权利要求书中,术语可以具有在上下文中暗示或隐含的超出明确陈述的含义的细微含义。本文中使用的短语“在一个实施例中”或“在一些实施例中”不一定指相同的实施例,并且本文中使用的短语“在另一个实施例中”或“在其他实施例中”不一定指不同的实施例。同样地,本文中使用的短语“在一个实施方式中”或“在一些实施方式中”不一定指相同的实施方式,本文中使用的短语“在另一个实施方式中”或“在其他实施方式中”不一定指不同的实施方式。例如,所要求保护的主题包括全部或部分示例性实施例/实施方式的组合。
一般来说,术语可以至少部分地从上下文中的用法来理解。例如,这里使用的诸如“和”、“或”或“和/或”的术语可以包括各种含义,这些含义可以至少部分取决于使用这些术语的上下文。通常,“或”如果用于关联诸如A、B或C之类的列表,则意在表示A、B和C(此处用于包含意义)以及A、B或C(此处用于排斥意义)。此外,在此使用的术语“一个或多个”或“至少一个”,至少部分取决于上下文,可用于以单数意义描述任何特征、结构或特性,或可用于以复数意义描述特征、结构或特性的组合。类似地,诸如“一个(a/an)”或“所述”的术语也可以被理解为传达单数用法或传达复数用法,这至少部分取决于上下文。此外,“基于”或“由……确定”一词可被理解为不一定意在传达一组排他性因素,而是可能允许存在不一定明确描述的其他因素,这也至少部分取决于上下文。
图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),该视频采集子系统可包括例如数码相机的视频源(401),该视频源创建未压缩的视频图像或图片的流(402)。在一个示例中,视频相图像流(402)包括由数码相机记录的样本。相较于已编码的视频数据(404)(或已编码的视频码流),视频图像流(402)被描绘为粗线以强调高数据量的视频图像流,视频图像流(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)接收已编码视频序列,该信道可以是硬件/软件链路,其通向存储已编码视频数据的存储设备或者发送已编码视频数据的流式传输源。接收器(531)可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器(531)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(515)可耦接在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)是视频解码器(510)的一部分。在其它应用中,该缓冲存储器(515)可设置在视频解码器(510)外部且与视频解码器(510)分开(未标示)。而在另一些应用中,视频解码器(510)的外部设置缓冲存储器(未标示)以例如防止网络抖动,且在视频解码器(510)的内部可配置另一附加的缓冲存储器(515)以例如处理播出定时。而当接收器(531)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(515),或可以将该缓冲存储器做得较小。为了在互联网等业务分组网络上使用,也可能需要足够大小的缓冲存储器(515),该缓冲存储器可相对。这种缓冲存储器可具有自适应性大小,且可至少部分地在操作系统或视频解码器(510)外部的类似元件(未标示)中实现。
视频解码器(510)可包括解析器(520)以根据已编码视频序列重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息,以及用以控制显示器(512)(例如,显示屏)等显示装置的潜在信息,该显示装置可以是或者不是电子装置(530)的组成部分,但可耦接到电子装置(530),如图5中所示。用于显示装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(VideoUsability Information,VUI)的参数集片段(未标示)。解析器(520)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的熵编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可基于对应于子群的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图像群组(Group of Pictures,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建议书的标准中采用的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的仅有工具。为了符合标准,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图像大小、最大帧率、最大重建取样率(以例如每秒兆(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……)和任何合适的采样结构(例如YCrCb 4:2:0、Y CrCb 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)”及其形容词形式“残差的(residual)”可以互换使用。
本地视频解码器(633)可基于源编码器(630)创建的符号,对可指定为参考图像的图像的已编码视频数据进行解码。编码引擎(632)的操作可为有损过程。当已编码视频数据可在视频解码器(图6中未示出处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,该解码过程可由视频解码器对参考图像执行,且可使重建的参考图像存储在参考图像高速缓存(634)中。以此方式,视频编码器(603)可在本地存储已重建的参考图像的副本,该副本与将由远端(远程)视频解码器获得的已重建参考图像具有共同内容(不存在传输误差)。
预测器(635)可针对编码引擎(632)执行预测搜索。即,对于将要编码的新图像,预测器(635)可在参考图像存储器(634)中搜索可作为该新图像的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图像运动矢量、块形状等。预测器(635)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(635)获得的搜索结果,可确定输入图像可具有从参考图像存储器(634)中存储的多个参考图像取得的预测参考。
控制器(650)可管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
可在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将各种功能单元生成的符号转换成已编码视频序列。
传输器(640)可缓冲由熵编码器(645)创建的已编码视频序列,从而为通过通信信道(660)进行传输做准备,该通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器(640)可将来自视频编码器(603)的已编码视频数据与要传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图像分配某一已编码图像类型,但这可能影响可应用于相应的图像的编码技术。例如,通常可将图像分配为以下任一种图像类型:
帧内图像(I图像),其可以是不将序列中的任何其它图像用作预测源就可被编码和解码的图像。一些视频编解码器容许不同类型的帧内图像,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图像。所属领域的技术人员了解I图像的变体及其相应的应用和特征。
预测性图像(P图像),其可以是可使用帧内预测或帧间预测进行编码和解码的图像,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图像(B图像),其可以是可使用帧内预测或帧间预测进行编码和解码的图像,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图像可使用多于两个参考图像和相关联元数据以用于重建单个块。
源图像通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图像的编码分配来确定该其它块。例如,I图像的块可进行非预测编码,或该块可参考同一图像的已经编码的块来进行预测编码(空间预测或帧内预测)。P图像的像素块可参考一个先前编码的参考图像通过空间预测或通过时域预测进行预测编码。B图像的块可参考一个或两个先前编码的参考图像通过空间预测或通过时域预测进行预测编码。为了其他目的,源图像或中间处理图像可以被细分成其他类型的块。如下文所进一步详细描述的,编码块和其他类型的块的划分可以遵循或可以不遵循相同的方式。
视频编码器(603)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(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)用于接收当前块(例如处理块)的样本、比较该块与参考图像中的一个或多个参考块(例如,按显示次序的先前图像和后来图像中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些示例中,参考图像是基于已编码的视频信息使用解码单元633解码的已解码参考图像,解码单元633嵌入在图6的示例性编码器620中(其示出为图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树结构可以被称为编码块树(Coding Block Tree,CBT)。
所有颜色通道的编码块可以统称为编码单元(Coding Unit,CU)。所有颜色通道的分层结构可以统称为编码树单元(Coding Tree Unit,CTU)。一个CTU中不同颜色通道的划分模式或结构可能相同,也可能不同。
在一些实施方式中,用于亮度通道和色度通道的划分树方案或结构可能不需要相同。换句话说,亮度通道和色度通道可以具有单独的编码树结构或模式。此外,亮度通道和色度通道是否使用相同或不同的编码划分树结构以及要使用的实际编码划分树结构可以取决于被编码的切片是P切片(slice)、B切片还是I切片。例如,对于I切片,色度通道和亮度通道可以具有单独的编码划分树结构或编码划分树结构模式,而对于P切片或B切片,亮度通道和色度通道可以共用相同的编码划分树方案。当应用单独的编码划分树结构或模式时,亮度信道可以通过一个编码划分树结构被划分成CBs,色度信道可以通过另一个编码划分树结构被划分成色度CBs。
在一些示例性实施方式中,可以将预定划分模式应用于基本块。如图9所示,示例性的4路划分树可以从第一预定义级别(例如,64×64块级别或其他大小,作为基本块大小)开始,并且基本块可以向下分层划分到预定义的最低级别(例如,4×4级别)。例如,基本块可以有由902、904、906和908指示的四个预定义的划分选项或模式,其中指定为R的分区被允许用于递归划分,使得如图9中指示的相同划分选项可以以较低的规模重复,直到最低级别(例如,4×4级别)。在一些实施方式中,可以对图9的划分方案应用附加限制。在图9的实现中,可以允许矩形划分(例如,1:2/2:1的矩形划分),但是这些矩形划分不允许是递归的,而正方形划分允许是递归的。如果需要的话,按照图9的递归划分会生成最终的一组编码块。可以进一步定义编码树深度以指示来自根节点或根块的分割深度。例如,根节点或根块(例如64×64个块)的编码树深度可以设置为0,并且在根块按照图9被进一步分割一次之后,编码树深度增加1。对于上述方案,从64×64的基本块到4×4的最小分区的最大或最深级别将是4(从级别0开始)。这种划分方案可以应用于一个或多个颜色通道。可以按照图9的方案独立地划分每个颜色通道(例如,可以针对每个分层级别的每个颜色通道独立地确定预定义模式中的划分模式或选项)。可选地,两个或更多个颜色通道可以共享图9的相同分层模式树(例如,可以在每个分层级别为两个或更多个颜色通道选择预定义模式中的相同划分模式或选项)。
图10示出了允许递归划分形成划分树的另一示例性预定义划分模式。如图10所示,可以预定义一个示例性10路划分结构或模式。根块可以从预定义的级别开始(例如,从128×128级别或64×64级别的基本块开始)。图10的示例划分结构包括各种2:1/1:2和4:1/1:4的矩形划分。图10的第二行中指示的1002、1004、1006和1008的3个子划分的划分类型可以被称为“T型”分区。“T型”分区1002、1004、1006和1008可以分别被称为左T型、上T型、右T型和下T型。在一些示例实现中,不允许进一步细分图10的矩形划分中的任何一个。可以进一步定义编码树深度以指示来自根节点或根块的分割深度。例如,根节点或根块(例如128×128块)的编码树深度可以设置为0,并且在根块按照图10被进一步分割一次之后,编码树深度增加1。在一些实施方式中,只有1010中的全正方形划分可以被允许按照图10的模式递归划分到划分树的下一级。换句话说,对于T型模式1002、1004、1006和1008内的正方形划分,可以不允许递归划分。如果需要的话,按照图10的递归划分过程会生成最终的一组编码块。这种方案可以应用于一个或多个颜色通道。在一些实施方式中,在使用8×8级别以下的分区时,可以增加更多的灵活性。例如,在某些情况下可以使用2×2色度帧间预测。
在用于编码块划分的一些其它示例性实施方式中,四叉树结构可用于将基本块或中间块分割成四叉树分区。这种四叉树分割可以分层地和递归地应用于任何正方形分区。基本块或中间块或分区是否被进一步四叉树分割可适于基本块或中间块/分区的各种局部特征。可以进一步适应在图像边界处的四叉树分区。例如,可以在图像边界处执行隐式四叉树分割,使得块将保持四叉树分割,直到大小适合图像边界。
在一些其他示例实现中,可以使用来自基本块的分层二叉划分。对于这样的方案,基本块或中间级块可以被划分成两个分区。二叉划分可以是水平的,也可以是垂直的。例如,水平二叉划分可以将基本块或中间块分割成相等的右划分和左划分。类似地,垂直二叉划分可以将基本块或中间块分割为相等的上划分和下划分。这种二叉划分可以是分层的和递归的。可以在每个基本块或中间块上决定是否应该继续二叉划分方案,并决定如果该方案继续下去,应该使用水平还是垂直二叉划分。在一些实施方式中,进一步的划分可能会在预定义的最低分区大小(在一个或两个维度中)停止。可选地,一旦达到来自基本块的预定义划分级别或深度,则可以停止进一步的划分。在一些实施方式中,分区的纵横比可能会受到限制。例如,分区的纵横比可以不小于1:4(或大于4:1)。因此,纵横比为4:1的垂直条形分区,只能进一步被垂直二叉划分为上下两个分区,每个分区的纵横比为2:1。
在又一些其它示例中,如图13所示,三叉划分方案可用于划分基本块或任何中间块。三叉图案可以如图13的1302所示以垂直实现,或者如图13的1304所示以水平实现。虽然图13中的示例性分割比(垂直地或水平地)被示出为1:2:1,但也可以预定义其他比例。在一些实施方式中,可以预定义两个或多个不同的比率。这种三叉划分方案可以用于补充四叉树或二叉划分结构,因为这种三叉树划分能够在一个连续分区中捕获位于块中心的对象,而四叉树和二叉树总是沿着块中心划分,因此该对象被划分成单独的分区。在一些实施方式中,示例三叉树划分的宽度和高度始终是2的幂,以避免额外的变换。
上述划分方案可以在不同的划分级别上以任何方式组合。作为一个示例,可以组合上述四叉树和二叉划分方案以将基本块划分为四叉树-二叉树(quadtree-binary-tree,QTBT)结构。在这种方案中,基本块或中间块/划分可以是四叉树分割或二叉分割,如果指定的话,这取决于一组预定义的条件。图14中示出了一个具体的示例。
图14示出了用于四叉树加二叉树(QTBT)结构的示例性分区和树。QTBT结构可能没有类似于多个划分类型的概念,并且QTBT结构可以消除CU、PU和TU概念的分离。针对CU分区形状,QTBT结构可以支持增加的灵活性。在QTBT块结构的一些实施例中,CU可以具有正方形或矩形形状。
在图14的示例中,一个基本块首先被四叉树分成四个分区,如1402、1404、1406和1408所示。此后,每个生成的分区在下一级要么被四叉树分割成四个进一步的分区(例如1408),要么被二叉分割成两个进一步的分区(例如水平地或垂直地,例如1402或1406,两者都是对称的),要么不被分割(例如1404)。对于正方形分区,可以递归地允许二叉或四叉树分割,如1410的整体划分模式示例和1420中的相应树结构/表示所示,其中实线表示四叉树分割,虚线表示二叉树分割。可以将标志用于每个二叉分割节点(非叶二叉分区),以指示二叉分割是水平的还是垂直的。例如,如1420所示,与1410的划分结构一致,标志“0”可以表示水平二叉分割,标志“1”可以表示垂直二叉分割。对于四叉树分割划分,不需要指示分割类型,因为四叉树分割总是水平和垂直地分割块或分区,以产生大小相等的4个子块/分区。在一些实施方式中,标志“1”可以表示水平二叉分割,标志“0”可以表示垂直二叉分割。
如图14所示,首先采用四叉树结构来划分编码树单元(CTU)。四叉树叶节点进一步采用二叉树结构划分。在二叉树分割中,可以有两种分割类型,对称水平分割和对称垂直分割。二叉树叶节点被称为编码单元(CU),并且该分段可以用于预测和变换处理,而无需任何进一步的划分。在QTBT编码块结构中,CU、PU和TU可以具有相同的块大小。在JEM中,CU可以包括不同颜色分量的编码块(CB)(例如,在4:2:0色度格式的P切片和B切片的情况下,一个CU包括一个亮度CB和两个色度CB)。在其他实施例中,CU可以包括单个分量的CB(例如,在I切片的情况下,一个CU包括一个亮度CB或两个色度CB)。
在QTBT的一些示例性实施方式中,四叉树和二叉划分规则集可以由以下预定义参数和与其相关联的相应函数来表示:
-CTU size:四叉树的根节点大小(基本块的大小)
-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可以共用相同的QTBT结构。然而,对于I切片,亮度CTB可以通过QTBT结构划分成CB,色度CTB可以通过另一QTBT结构划分成色度CB。这意味着CU可以用于指代I切片中的不同颜色通道,例如,I切片可以由亮度分量的编码块或两个色度分量的编码块组成,并且P切片或B切片中的CU可以由所有三个颜色分量的编码块组成。
图14示出了通过使用QTBT的块划分的示例(图14的左侧),并且示出了对应的树表示(图14的右侧)。实线表示四叉树分割,虚线表示二叉树分割。在二叉树的每个分割(即,非叶)节点中,将一个标志写入以指示使用哪种分割类型(即,水平或垂直),其中0表示水平分割,1表示垂直分割。对于四叉树分割,不需要指示分割类型,因为四叉树分割水平且垂直地分割块以产生具有相等大小的4个子块。
在一些其他实施方式中,QTBT方案可以用上述三叉方案进行补充。这种实现可以被称为多类型树(multi-type-tree,MTT)结构。例如,除了节点的二叉分割之外,可以选择图13的三叉划分模式之一。在一些实施方式中,只有正方形节点可以进行三叉分割。可以使用附加标志来指示三叉划分是水平的还是垂直的。
两级或多级树的设计,如QTBT实现和通过三叉分割进行补充的QTBT实现,可能主要是为了复杂性降低。理论上,遍历树的复杂度是TD,其中T表示分割类型的数量,D是树的深度。可以通过使用多种类型(T)同时减少深度(D)来进行折衷。
此外,QTBT方案支持亮度和色度具有独立QTBT结构的灵活性。例如,对于P切片和B切片,一个CTU中的亮度CTB和色度CTB共用相同的QTBT结构。然而,对于I切片,亮度CTB采用QTBT结构划分为多个CUs,色度CTB采用另一QTBT结构划分为多个色度CUs。在该示例中,I切片中的一个CU包括亮度分量的编码块或两个色度分量的编码块,并且P切片或B切片中的一个CU包括所有三个颜色分量的编码块。在HEVC中,可以限制小块的帧间预测以减少运动补偿的存储器访问,使得对于4×8和8×4块不支持双向预测,并且对于4×4块不支持帧间预测。在JEM-7.0中实现的QTBT中,可以取消这些限制。
在一些实施方式中,可以对CB进行进一步划分。例如,为了在编码和解码过程期间进行帧内或帧间预测的目的,可将CB进一步划分成多个预测块。换句话说,CB可以进一步划分为不同的子分区,在这些子分区中可以做出单独的预测决策/配置。并行地,为了描绘执行视频数据的变换或逆变换的水平,可将CB进一步划分成多个变换块(transform block,TB)。将CB划分为PBs和TBs的方案可以相同,也可以不相同。例如,每个划分方案可以使用其自己的过程来执行,例如,基于视频数据的各种特征。在一些示例实现中,PB和TB划分方案可能是独立的。在其他一些示例实现中,PB和TB的划分方案和边界可能相互关联。例如,在一些实施方式中,TB可以在PB划分之后进行划分,特别地,每个PB在编码块划分之后确定,然后可以进一步划分为一个或多个TB。例如,在一些实施方式中,一个PB可以分成一个、两个、四个或其他数量的TB。
在一些实施方式中,为了将基本块划分为编码块并进一步划分为预测块和/或变换块,亮度通道和色度通道可以进行不同地处理。例如,在一些实施方式中,对于亮度通道,可以允许将编码块划分为预测块和/或变换块,而对于色度通道,可以不允许将编码块划分为预测块和/或变换块。因此,在这样的实现中,亮度块的变换和/或预测可以仅在编码块级别上执行。对于另一个示例,亮度通道和色度通道的最小变换块大小可以不同,例如,亮度通道的编码块可以被允许划分成比色度通道更小的变换和/或预测块。对于又一示例,将编码块划分成变换块和/或预测块的最大深度在亮度通道和色度通道之间可以不同,例如,可以允许将亮度通道的编码块划分成比色度通道更深的变换块和/或预测块。对于特定示例,亮度编码块可以被划分成多个大小的变换块,这些变换块可以用递归划分表示,递归划分最多可达2级,并且可以允许诸如正方形、2:1/1:2和4:1/1:4的变换块形状以及从4×4到64×64的变换块大小。然而,对于色度块,可以只允许为亮度块指定的最大可能的变换块。
在将编码块划分为PB的一些示例实现中,PB划分的深度、形状和/或其他特征可以取决于PB是帧内编码还是帧间编码。
将编码块(或预测块)划分为变换块可以在各种示例方案中实现,包括但不限于递归地或非递归地四叉树分割和预定模式分割,并且附加考虑在编码块或预测块的边界处的变换块。通常,得到的变换块可以处于不同的分割级别,可以不具有相同的大小,且可以不需要为正方形形状(例如,它们可以是具有一些允许的大小和纵横比的矩形)。下面结合图15、图16和图17更详细地描述其他示例。
然而,在一些其他实现中,经由上述任何划分方案获得的CB可用作用于预测和/或变换的基本或最小编码块。换句话说,为了执行帧间预测/帧内预测目的和/或变换目的,不执行进一步分割。例如,根据上述QTBT方案获得的CB可以直接用作执行预测的单元。具体地,这种QTBT结构消除了多种划分类型的概念,即,它消除了CU、PU和TU的分离,且针对如上所述的CU/CB划分形状提供了更大的灵活性。在这种QTBT块结构中,CU/CB可以具有正方形或矩形形状。这种QTBT的叶节点被用作预测和变换处理的单元,而无需任何进一步的划分。这意味着在这种示例性QTBT编码块结构中,CU、PU和TU具有相同的块大小。
上述各种CB划分方案以及将CB进一步划分为PB和/或TB(不包括PB/TB划分)可以以任何方式组合。以下具体实现作为非限制性示例提供。
下面描述编码块和变换块划分的具体示例实现。在这样的示例实现中,可以使用递归四叉树分割或上述预定义的分割模式(例如图9和图10中的模式)将基本块分割成编码块。在每个级别,是否应该继续对特定分区进行进一步的四叉树分割可以由本地视频数据特征来确定。所得到的CB可以处于各种四叉树分割级别,并且具有各种大小。关于是否使用图像间(时间)或图像内(空间)预测来编码图像区域的决定可以在CB级别(或CU级别,对于所有三色通道)做出。每个CB可以根据预定义的PB分割类型进一步分割成一个、两个、四个或其他数量的PB。在一个PB内,可以应用相同的预测处理,并且可以基于PB将相关信息发送到解码器。在通过应用基于PB分割类型的预测过程获得剩余块之后,可以根据类似于CB的编码树的另一四叉树结构将CB划分成TB。在该特定实现中,CB或TB可以是但不限于正方形。此外,在该特定示例中,对于帧间预测,PB可以是正方形或矩形,而对于帧内预测,PB可以仅是正方形。编码块可以被分成例如四个正方形TB。每个TB可以被进一步递归地分割(使用四叉树分割)成更小的TB,称为剩余四叉树(Residual Quadtree,RQT)。
下文进一步描述用于将基本块划分为CB、PB和/或TB的另一示例实现。例如,可以使用采用二叉和三叉分割结构的内嵌多类型树的四叉树(例如,QTBT或如上所述的具有三叉分割的QTBT),而不是使用诸如图9或图10中示出的多个划分单元类型。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,进一步将第四级分割应用于其中一个。
对于上面的特定示例,最大亮度变换大小可以是64×64,并且支持的最大色度变换大小可以不同于亮度,例如32×32。即使图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,变换块大小范围从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个大小相等的变换块,这4个变换块的编码顺序由箭头指示。在1506中示出了根据表1将所有第一级的大小相等的块进行第二级划分而分成16个大小相等的变换块,这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_SPLI(分割划分):分配一个变换大小,其宽度为块大小宽度的二分之一,高度为块大小高度的二分之一。
·PARTITION_HORZ(水平划分):分配一个变换大小,其宽度与块大小的宽度相同,高度为块大小高度的二分之一。
·PARTITION_VERT(垂直划分):分配一个变换大小,其宽度为块大小宽度的二分之一,高度与块大小的高度相同。
·PARTITION_HORZ4(水平4划分):分配一个变换大小,其宽度与块大小的宽度相同,高度为块大小高度的四分之一。
·PARTITION_VERT4(垂直4划分):分配一个变换大小,其宽度为块大小宽度的四分之一,高度与块大小的高度相同。
在上面的示例中,如图17所示的变换划分类型针对划分的变换块均包含统一的变换大小。这只是一个示例,不具有限制性。在一些其他实现中,可以对特定划分类型(或模式)中的划分的变换块使用混合的变换块大小。
根据上述任何划分方案获得的PB(或CB,当没有被进一步划分成预测块时也称为PB)可以成为用于经由帧内或帧间预测进行编码的单个块。对于当前PB的帧间预测,可以生成当前块和预测块之间的残差,对该残差进行编码,并将其包括在已编码码流中。
可以例如以单参考模式或复合参考模式实现帧间预测。在一些实施方式中,可以首先在当前块(或更高级别)的码流中包含跳过标志(skip flag),用于指示当前块是否被帧间编码并且是否不被跳过。如果当前块被帧间编码,则可以在码流中进一步包含另一个标志作为一个信号,以指示当前块是使用单参考模式还是复合参考模式。对于单参考模式,可以使用一个参考块来生成当前块的预测块。对于复合参考模式,可以使用两个或多个参考块,例如通过加权平均来生成预测块。复合参考模式可以称为不止一个参考模式、两个参考模式或多参考模式。可以使用一个或多个参考帧索引并另外使用指示参考块和当前块之间的位置(例如,水平和垂直像素)偏移的一个或多个对应运动矢量来识别一个或多个参考块。例如,当前块的帧间预测块可以从由参考帧中的一个运动矢量标识为单参考模式中的预测块的单参考块生成,而对于复合参考模式,预测块可以通过对由两个运动矢量指示的两个参考帧中的两个参考块进行加权平均来生成。可以对运动矢量进行编码并以各种方式将其包含在码流中。
在一些实施方式中,编码或解码系统可以具有解码图像缓冲器(decoded picturebuffer,DPB)。一些图片/图像可以被保存在DPB中等待被显示(在解码系统中),并且DPB中的一些图片/图像可以被用作参考帧以实现帧间预测。在一些实施方式中,DPB中的参考帧可以被标记为正在编码或解码的当前图片的短期参考或长期参考。例如,短期参考帧可以包括用于执行如下操作的帧,用于对当前帧中的块进行帧间预测或以解码顺序对当前帧最接近的预定数量(例如,2个)的后续视频帧中的块进行帧间预测。长期参考帧可以包括DPB中的帧,这些帧可以用于预测在解码顺序上远离当前帧的超过预定义数量的帧中的图片块。关于短期参考帧和长期参考帧的这种标签的信息可以被称为参考图像集(ReferencePicture Set,RPS),并且该信息可以被添加到已编码码流中的每个帧的报头。已编码视频流中的每一帧可以由图像顺序计数器(Picture Order Counter,POC)标识,该图像顺序计数器根据播放序列以绝对方式或与从例如I帧开始的图像组相关的顺序进行编号。
在一些示例性实施方式中,可以基于RPS中的信息形成包含用于帧间预测的短期和长期参考帧的标识的一个或多个参考图像列表。例如,可以针对单向帧间预测形成单个图像参考列表,记为L0参考(或参考列表0),双向帧间预测可形成两个图像参考列表,两个预测方向各记为L0(或参考列表0)和L1(或参考列表1)。包括在L0和L1列表中的参考帧可以以各种预定方式排序。L0和L1列表的长度可以被写入视频码流。当复合预测模式中用于通过加权平均生成预测块的多个参考帧位于待预测块的同一侧时,单向帧间预测可以是以单参考模式,或者是以复合参考模式。双向帧间预测可以仅是以复合模式,这是因为双向帧间预测涉及至少两个参考块。
块划分
图18示出了用于块划分的示例性划分树。VP9使用从64×64级到4×4级的4路划分树,对8×8及以下的块有附加的限制。这在图18中示出。指定为R的分区可以如下递归方式划分:相同的划分树以较低的规模重复,直到达到最低的4×4级别。如图所示,虽然AV1将划分树扩展为10路结构,但也将最大大小(在VP9/AV1中称为超级块)增大至从128×128开始。这包括VP9中不存在的4:1/1:4矩形划分。没有一个矩形划分可以被进一步细分。此外,AV1为使用低于8×8级别的划分增加了更多的灵活性。例如,现在在某些情况下2×2色度帧间预测变得可能。
在HEVC中,通过使用表示为编码树的四叉树结构将编码树单元(CTU)分割成多个编码单元(CUs),以适应各种局部特征。CU也可以被认为是块,包括预测块或编码块。关于是使用帧间(时间)预测还是帧内(空间)预测来编码图像区域的决策是在CU级别做出的。根据PU划分类型,每个CU可以进一步划分成一个、两个或四个预测单元(PU)。在一个PU内,应用相同的预测处理,并且基于PU将相关信息发送到解码器。在通过应用基于PU划分类型的预测过程获得残差块之后,可以根据类似于CU的编码树的另一四叉树结构将CU划分成多个变换单元(TUs)。HEVC结构具有包括CU、PU和TU在内的多重划分概念。在HEVC中,对于帧间预测块,CU或TU只能是正方形,而PU可以是正方形或矩形。在HEVC中,一个编码块可以进一步被分割成四个正方形子块,并且对每个子块(即TU)执行变换。每个TU可以被进一步递归地分割(使用四叉树分割)成更小的TU,这被称为残差四叉树(RQT)。在图像边界,HEVC采用隐式四叉树分割,使得块将保持四叉树分割,直到大小适合图像边界。
可以存在使用四叉树(QT)加二叉树(BT)的块定位结构。在HEVC中,可以通过使用表示为编码树的四叉树结构将CTU分割成CU,以适应各种局部特征。关于是使用图像间(时间)预测还是图像内(空间)预测来编码图像区域的决策是在CU级别做出的。在一些实施例中,可以根据PU分割类型将每个CU进一步分割成一个、两个或四个PU。在一个PU内,可以应用相同的预测处理,并且基于PU将相关信息发送到解码器。在通过应用基于PU分割类型的预测过程获得残差块之后,可以根据类似于CU的编码树的另一四叉树结构将CU划分成变换单元(TU)。HEVC结构可以具有多个划分概念,包括CU、PU和TU。
块划分可以使用三叉树(Ternary Tree,TT)结构。图19示出了三叉树划分的示例。在VVC中,多类型树(MTT)结构可以在QTBT的顶部添加水平中心侧三叉树和垂直中心侧三叉树,如图19所示(分别为a和b)。三叉树划分可以对四叉树和二叉树进行补充。当四叉树和二叉树沿着块中心被分割时,三叉树划分可以捕获位于块中心的对象。对于三叉树划分,所提出的三叉树的分区的宽度和高度可以是2的幂,从而不需要附加的变换。两级树的设计的目的是复杂度降低,遍历树的复杂度是TD,其中T表示分割类型的数量,D是树的深度。
具有运动矢量差的合并模式(MMVD)
除了可以将隐式推导出的运动信息直接用于当前CU的预测样本生成的合并模式之外,还可以使用具有运动矢量差的合并模式(Merge Mode with Motion VectorDifference,MMVD)。在发送跳过标志和合并标志之后,立即将MMVD标志写入码流,以指定MMVD模式是否用于CU。在MMVD中,在选择合并候选之后,可以通过写入的MMVD信息进一步细化所选择的合并候选。进一步的信息包括合并候选标志、用于指示运动幅度的索引和用于指示运动方向的索引。在MMVD模式中,选择合并列表中前两个候选者中的一个候选者作为MV基础。将合并候选标志写入码流以指示使用哪一个候选者。
图20a示出了具有运动矢量差的合并模式(MMVD)搜索点的示例。图20b示出了具有具有运动矢量差的合并模式MMVD搜索点的另一示例。距离索引指示运动幅度信息,并指示距离起点的预定义偏移。如图20a和图20b所示,将偏移添加到起始MV的水平分量或垂直分量。距离索引和预定义偏移的关系如表2所示:
表2-距离索引与预定义偏移的关系
方向索引表示MVD相对于起点的方向。如表3所示,方向索引可以表示四个方向。值得注意的是,MVD符号的含义可以根据起始MV的信息而变化。当起始MV是单向预测MV或双向预测MV,其中两个列表都指向当前图像的同一侧(即,两个参考的POC均大于当前图像的POC,或者均小于当前图像的POC)时,表2中的符号指示添加到起始MV的MV偏移的符号。POC可以是可以识别何时显示一图像的值。在一些实施例中,POC越高,在该图像之前显示的帧越多。
当起始MV是双向预测MV,其中两个MV指向当前图像的不同侧(即,一个参考的POC大于当前图像的POC,而另一个参考的POC小于当前图像的POC),并且列表0中的POC的差值大于列表1中的POC的差值时,表3中的符号指示添加到起始MV的列表0MV分量的MV偏移的符号,并且列表1MV的符号具有相反的值。否则,如果列表1中的POC的差值大于列表0的POC差值,则表3中的符号指定添加到起始MV的列表1MV分量的MV偏移的符号,而列表0MV的符号具有相反的值。
方向IDX 00 01 10 11
x-轴 + - N/A N/A
y-轴 N/A N/A + -
表3-方向索引指示的MV偏移的符号
MVD可以根据POC在每个方向上的差值进行缩放调整。如果两个列表中POC的差值相同,则不需要调整。否则,如果参考列表0中的POC差值大于参考列表1中的POC差值,则对参考列表1的MVD进行调整。如果参考列表1的POC差大于列表0中的POC差值,则可以以相同的方式调整列表0的MVD。如果起始MV是单向预测的,则将MVD添加到可用MV。
对称MVD编码
在一个示例中,可以在VVC中使用对称MVD模式。这可以是对正常单向预测模式MVD信令和双向预测模式MVD信令的补充。对称MVD模式可以用于双向MVD信令。在一个实施例中,在对称MVD模式中,不是使用信号发送,而是推导出包括列表-0和列表-1两者的参考图像索引以及列表-1的MVD的运动信息。
对称MVD模式的解码过程可以包括:
1、在切片级,变量BiDirPredFlag、RefIdxSymL0和RefIdxSymL1的推导如下:
-如果mvd_l1_zero_flag为1,则BiDirPredFlag被设置为等于0。
-否则,如果列表-0中最近的参考图像和列表-1中最近的参考图像形成向前和向后的参考图像对或向后和向前的参考图像对,则BiDirPredFlag被设置为1,并且列表-0和列表-1参考图像都是短期参考图像。否则,BiDirPredFlag设置为0。
2、在CU级,如果对CU进行双向预测编码并且BiDirPredFlag等于1,则显式地将指示是否使用对称模式的对称模式标志写入码流。
当对称模式标志为真时,仅显示地将mvp_l0_flag、mvp_l1_flag和MVD写入码流。列表-0和列表-1的参考索引分别被设置为等于参考图像对。MVD1可以被设置为等于(-MVD0)。
CWG-B018中的MVD编码可以是另一个示例。在AV1中,对于帧间的每个已编码块,如果当前块的模式不是跳过模式而是帧间编码模式,则将另一个标志写入码流以指示当前块是使用单个参考模式还是复合参考模式。在单个参考模式下通过一个运动矢量生成预测块,而在复合参考模式下,通过对从两个运动矢量推导出的两个预测块进行加权平均来生成预测块。
对于单个参考的情况,以下模式可以被写入码流:
·NEARMV-使用由DRL(Dynamic Reference List,动态参考列表)索引指示的列表中的运动矢量预测器(Motion Vector Predictor,MVP)之一。
·NEWMV-使用由DRL索引写入的列表中的一个运动矢量预测器(MVP)之一作为参考,并对MVP应用一个增量(例如,使用MVD)。
·GLOBALMV-使用基于帧级全局运动参数的运动矢量。
对于复合参考模式,以下模式可以被写入码流:
·NEAR_NEARMV-使用由DRL索引写入的列表中的运动矢量预测器(MVP)之一。
·NEAR_NEWMV-使用由DRL索引写入的列表中的运动矢量预测器(MVP)中的一个作为参考MV,并为第二个MV发送增量MV。
·NEW_NEARMV-使用由DRL索引写入的列表中的运动矢量预测器(MVP)中的一个作为参考MV,并为第一个MV发送增量MV。
·NEW_NEWMV-使用由DRL索引写入的列表中的运动矢量预测器(MVP)中的一个作为参考MV,并为两个MV发送增量MV。
·GLOBAL_GLOBALMV-根据帧级全局运动参数使用每个参考的MV。
帧间预测模式信令
为了使用信号发送帧间预测模式,首先将标志跳过_模式(skip_mode)写入码流以确定跳过模式是否适用于当前编码块。当启用跳过模式时,使用两个参考帧和平移运动进行复合帧间预测。MV和参考帧都是隐式推导出的(作为DRL中的第一个条目),而不是被写入码流的。当未启用模式时,将参考帧信息写入码流。
当使用信号发送参考帧时,首先将标志复合_模式(comp_mode)写入码流以指示是一个参考帧还是两个参考帧用于帧间预测。只有当编码块宽度和高度均大于或等于8时,才可以将该标志写入码流。在一个示例中,对于宽度或高度小于8的编码块,仅单个参考帧用于帧间预测。当应用复合预测时,进一步将复合_参考_类型(comp_ref_type)语法写入码流以指示复合预测是单向的还是双向的。此外,当应用单向复合预测模式时,将四个预定义参考帧组合中的一个写入码流。当应用双向复合预测模式时,分别将前向参考帧和后向参考帧的参考帧索引写入码流。对于单个参考预测,仅将七个可能参考帧中的一个写入码流。
在使用信号发送参考帧之后,通过多个语法推导出Y模式(YMode)值,以指示哪种模式将被应用于MV预测和信令。下表4列出了YMode和MV预测之间的映射。
表4:YMode和MV预测模式之间的映射
在推导出YMode之后,进一步将动态参考列表_模式(drl_mode)语法写入码流以指示DRL中的哪个候选者将被用于MV预测。之后,当应用NEWMV、NEAREST_NEWMV、NEW_NEARESTMV、NEAR_NEWMV、NEW_NEARMV或NEW_NEWMV中的一个时,进一步将MVD写入码流。当YMode等于NEW_NEARESTMV、NEW_NEARMV或NEW_NEWMV时,针对与第一参考帧相关联的MV,将MVD写入码流。当YMode等于NEAREST_NEWMV、NEAR_NEWMV或NEW_NEWMV时,针对与第二参考帧相关联的MV,将MVD写入码流。
在使用信号发送MV预测模式之后,可以进一步将复合帧间-帧内模式写入码流。在一个示例中,只有当应用单个参考帧帧间预测时,以及当块大小大于或等于8×8但小于或等于32×32时,才可以将复合帧间-帧内模式写入码流。复合帧间-帧内模式的信令包括指示是否应用复合帧间-帧内模式的帧间-帧内(inter-intra)标志。
当应用复合帧间-帧内模式时,进一步将帧内模式索引帧内帧间_模式(interintra_mode)写入码流以指示DC_PRED模式、V_PRED模式、H_PRED模式和SMOOTH模式中的哪一个将被用于执行帧内预测。此后,进一步将楔形_帧间帧内(wedge_interintra)标志写入码流以指示是否要应用基于楔形(Wedge)的帧间-帧内预测模式。当应用基于Wedge的帧间-预测模式时,进一步将楔形_索引(wedge_index)语法写入码流,wedge_index语法指示将在基于Wedge的帧间-帧内预测中应用的Wedge划分模式。在将复合帧间-帧内模式写入码流之后,进一步使用信号发送或隐式地推导出运动_模式(motion_mode),以指示要应用平移的重叠块运动补偿(Overlapped Block Motion Compensation,OBMC)和扭曲运动补偿模式中的哪一个。在使用信号发送motion_mode之后,进一步将复合预测类型写入码流以指示要应用哪种复合预测模式。复合预测模式包括基于Wedge的复合预测、差分调制复合预测和基于距离的复合预测。最后,如果适用,则将插值滤波器索引写入码流,以在应用平移的运动补偿时指示插值滤波器的选择。
当将两个参考索引写入码流时,可以使用名为联合_新运动矢量(JOINT_NEWMV)的帧间预测模式,即复合帧间预测。本文描述的帧间预测模式实施例还可以应用于JOINT_NEWMV模式。将多个参考列表(例如,参考列表0和参考列表1)的增量MVs联合写入码流,并且将针对参考列表0和参考列表1的增量MVs联合写入码流。因此,仅将一个名为联合_增量_运动矢量(joint_delta_mv)的增量MV写入码流,并将该增量MV发送到解码器,并且针对参考列表0和参考列表1的增量MVs是从joint_delta_mv推导出的。然而,当将两个参考索引写入码流时,可以应用帧间预测模式JOINT_NEWMV,这可能限制更高的编码增益。下面描述的实施例描述并示出了具有单个参考索引的应用。
对于复合参考模式,如果一个运动矢量对的两个参考帧的POC均大于或小于当前帧的POC,则两个参考帧的方向可以相同。否则,如果一个参考帧的POC大于当前帧的POC,而另一个参考帧的POC小于当前帧的POC,则两个参考帧的方向不同。
所提出的实施例可以单独使用或以任何顺序组合使用。此外,方法(或实施例)、编码器和解码器中的每一个都可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。在下文中,术语‘块’可以被解释为预测块、编码块或编码单元,即CU。可以通过参考帧在显示顺序上是在当前帧之前还是在显示顺序上是在当前帧之后来确定参考帧的方向。
对于单个参考的示例,仅将一个参考帧写入码流。可以存在示例性的帧间预测模式(例如,DERIVED_NEWMV和/或DERIVED_NEARMV)。应用这些模式以指示是否可以使用针对当前参考帧写入的/预测的运动矢量来推导出指向一不同的参考帧的另一个运动矢量。DERIVED_NEWMV可以是其中将运动矢量差(MVD)写入码流的帧间预测模式。在这个示例中,一个参考帧的信令被用于两个参考帧。DERIVED_NEARMV可以是基于相邻块正在使用的内容来选择运动矢量差(MVD)的帧间预测模式。这可能具有较少的开销,但也可能不太准确。在这个示例中,一个参考帧的相邻块模式用于两个参考帧。
在一个实施例中,可以将指示哪个参考帧被用于当前块的参考帧索引写入码流。所述写入可以在新添加的帧间预测模式之前。在一个实施例中,DERIVED_NEWMV和/或DERIVED_NEARMV可以与NEWMV、NEARMV和/或GLOBALMV一起被写入码流。这些都是使用两个参考帧而不是单个参考帧的帧间预测模式。NEWMV可以将运动矢量写入码流,而NEARMV可以依赖于相邻块。
在一个实施例中,针对MVD的写入(signaling)在DERIVED_NEWMV模式和NEWMV模式之间是相同的。在一个实施例中,针对DERIVED_NEARMV,没有MVD被写入码流。在一个实施例中,仅当参考帧缓冲器中有至少两个参考帧可供当前图像选择,并且至少两个参考帧中的至少一个按显示顺序在当前帧之前,并且至少两个在参考帧中的至少一个按显示顺序在当前帧之后时,才将DERIVED_NEWMV和/或DERIVED_NEARMV写入码流。
下文将进一步描述联合参考案例。NEARMV直接使用由DRL(动态参考列表)索引指示的列表中的运动矢量预测器(MVP)之一,而未使用任何MVD。NEWMV使用由DRL索引写入的列表中的运动矢量预测器(MVP)之一作为参考,并将对MVP(例如,使用MVD)应用增量。GLOBALMV使用基于帧级全局运动参数的运动矢量。上面的术语“NEAR(附近)”可以指使用参考MV而不使用MVD作为一般合并模式的MV预测,而术语“NEW(新)”指涉及使用参考MV并用写入的MVD对其进行偏移作为MMVD模式的MV预测。对于复合帧间预测,上述的基于参考的运动矢量和运动矢量增量两者即使可以相关,通常他们也可以不同或在两个参考之间是独立的,并且可以利用这种相关性来减少写入两个运动矢量增量所需的信息量。上述动态参考列表(dynamic reference list,DRL)可以用于保存一组有索引的运动矢量,这一组运动矢量被动态保存并被认为是候选运动矢量预测器。在一些示例性实施方式中,基于光流的方法可以用于在子块方面细化运动矢量(MV),以用于复合预测。特别地,光流方程可以应用于公式化最小二乘问题,由此可以从复合帧间预测样本的梯度推导出细化的运动。利用这些细化的运动,可以在预测块内细化每个子块的MV,这可以增强帧间预测质量。一些编码特征可以是双向光流(Bi-directional Optical Flow,BDOF)概念的扩展,这是因为当两个参考块到当前块具有任意时间距离时,BDOF支持MV细化。在本公开的各种实施例中,“块”可以指预测块、编码块、变换块或编码单元(CU)。
回到推导参考的示例,在该示例助攻,使用单个参考信号推导出多个参考信号的MVD。在一个实施例中,当一个块使用单个参考帧(即,comp_mode等于信号_参考(SINGLE_REFERENCE))并且帧间预测模式为DERIVED_NEARMV(或DERIVED_NEWMV)时,可以通过镜像预测的或写入的MV来推导出新MV。该推导出的MV可以指向在当前参考帧的方向不同的方向上的另一参考帧。换句话说,可能只存在单个参考帧的信号,但使用该信号来识别另一个参考帧的MV。
在一个实施例中,推导出的MV可以具有与预测的(或写入的)MV相同的幅度但相反的符号。在一个实施例中,推导出的MV所指向的参考帧到当前帧的时间距离可以与写入的参考帧和当前帧之间的时间距离相同。在另一实施例中,推导出的MV可用于生成另一预测块。例如,当存在两个帧(例如,参考帧和推导出的帧)时,可能存在两个预测块。该预测块与原始预测块一起可由预测的(或写入的)MV和写入的参考帧推导出。这可用于使用加权平均来推导出最终预测块。
在一个实施例中,推导出的MV所指向的参考帧可以具有与写入的参考帧不同的方向。到当前帧的时间距离可以不同。可以修改时间距离。在一个实施例中,当写入的参考帧到当前帧的时间距离和与推导出的MV相关联的参考帧到当前帧的时间距离不同时,可以根据时间距离来缩放推导出的MV。
图21示出了根据本公开的示例性实施例的方法的流程图。在框2102中,接收已编码视频流。已编码视频流包括指示特定帧间编码模式的语法标志。帧间编码模式可以包括DERIVED NEWMV和/或DERIVED_NEARMV。在框2104中,接收已编码视频流中的当前帧的单个参考帧。在框2106中,响应于语法标志指示应用具体的帧间编码模式。该具体的帧间编码模式可以包括关于是否使用当前参考帧的第一运动矢量来推导出指向一不同参考帧的第二运动矢量的确定,如框2108中所述。在框2108中,响应于确定使用当前帧的参考帧的第一运动矢量来推导所述不同参考帧的第二运动矢量,基于语法标志和第一运动矢量确定第二运动矢量。在框2110中,基于所推导出的第二运动矢量,对已编码视频流进行解码。
虽然被描述为参考帧,但参考帧也可以包括参考帧对。在一个实施例中,如果多个运动矢量指向一个参考帧或一个参考帧对,则这些运动矢量所参考的差异最小的值可以被标记为一个参考帧或一个参考帧对的分值。在另一实施例中,如果没有指向一个参考帧或一个参考帧对的运动矢量,则该参考帧或参考帧对的分值被标记为最大允许值。在另一实施例中,如果多个参考帧或多个参考帧对的分值相同,则这些参考帧或参考帧对的排序顺序与空间参考运动信息和/或时间参考运动信息的扫描顺序相同。在另一实施例中,如果多个参考帧或多个参考帧对的分值相同,则这些参考帧或参考帧对的排序顺序取决于空间参考运动信息和/或时间参考运动信息中使用的这些参考帧或参考帧对的出现频率。
在一个实施例中,通过使用模板匹配(Template Matching,TM)方法将所有允许的单向复合参考帧对和双向复合参考帧对一起排序,并且以该排序顺序将当前块的参考帧对的索引写入码流。在一个实施例中,通过使用TM方法将所有允许的单个参考帧一起排序,并且以该排序顺序将当前块的参考帧的索引写入码流。
在一个实施例中,用于通过模板匹配(Template Matching,TM)对每个块的参考帧进行重新排序的方法包括将当前块的模板和参考块的模板进行比较,以获得运动信息,其中运动信息包括空间参考运动信息或时间参考运动信息;计算当前块的模板与参考块的模板之间的差;基于所计算的差确定相关联的参考帧的分值;以及基于所确定的分数对参考帧进行重新排序。参考帧还包括参考帧对。TM包括用于细化当前块的运动信息的解码器侧的运动矢量推导。该重新排序方法还包括基于所述参考帧中的每个参考帧的分值对可用参考帧进行排序。当多个参考帧的分值相等时,排序对应于空间参考运动信息或时间参考运动信息的扫描顺序。当多个参考帧的分值相等时,基于在空间参考运动信息或时间参考运动信息中使用的这些参考帧的出现频率进行排序。所计算的差包括绝对差和(Sum ofAbsolute Differences,SAD)、平方差和(Sum of Squared Differences,SSD)、均方误差(Mean Squared Error,MSE)或绝对变换差和(Sum of Absolute Transform differences,SATD)中的至少一个。模板包括顶部相邻块或左侧相邻块。空间参考运动信息包括一个或多个空间运动矢量。时间参考运动信息包括一个或多个时间运动矢量。当多个运动矢量指向其中一个参考帧时,具有最小差值的运动矢量之一用于确定分值。当不存在指向参考帧之一的运动矢量时,将该分值确定为最大允许值。通过使用TM将允许的单向复合参考帧和双向复合参考帧一起排序,其中将当前块的参考帧的索引写入码流。通过使用TM将允许的单个参考帧一起排序,其中将当前块的参考帧的索引写入码流。
本公开中的实施例可以单独使用或以任何顺序组合使用。此外,方法(或实施例)、编码器和解码器中的每一个都可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。术语块可以包括预测块、编码块或编码单元,即CU。本公开中的实施例可以应用于亮度块或色度块
上述技术可以实现为计算机软件,该计算机软件使用计算机可读指令并且物理地存储在一个或多个计算机可读介质中。例如,图22示出了适于实现所公开的主题的某些实施例的计算机系统(2200)。
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过译码、微码等执行。
指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
图22所示的计算机系统(2200)的组件本质上是示例性的,并且不旨在对实施本公开实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应被解释为具有与计算机系统(2200)的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖或要求。
计算机系统(2200)可以包括某些人机接口输入装置。此类人机接口输入装置可以响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘出)。人机接口装置还可以用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图片(例如:扫描的图片、从静止图片相机获取摄影图片)、视频(例如二维视频、包括立体视频的三维视频)等。
输入人机接口装置可以包括下述中的一项或多项(每种中仅示出一个):键盘(2201)、鼠标(2202)、触控板(2203)、触摸屏(2210)、数据手套(未示出)、操纵杆(2205)、麦克风(2206)、扫描仪(2207)、相机(2208)。
计算机系统(2200)也可以包括某些人机接口输出装置。这样的人机接口输出装置可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可以包括触觉输出装置(例如触摸屏(2210)、数据手套(未示出)或操纵杆(2205)的触觉反馈,但也可以是不作为输入装置的触觉反馈装置)、音频输出装置(例如:扬声器(2209)、耳机(未示出))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(2210),每种屏幕有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能,其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘出)、全息显示器和烟箱(未描绘出)以及打印机(未描绘出)来输出二维视觉输出或超过三维的输出。
计算机系统(2200)也可以包括人类可访问存储装置及其关联介质:例如包括具有CD/DVD等介质(2221)的CD/DVD ROM/RW(2220)的光学介质、指状驱动器(2222)、可拆卸硬盘驱动器或固态驱动器(2223)、诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未示出)等。
本领域技术人员还应该理解,结合当前公开的主题使用的所术语“计算机可读介质”不涵盖传输介质、载波或其他暂时性信号。
计算机系统(2200)还可以包括到一个或多个通信网络(2255)的接口(2254)。网络可以例如是无线网络、有线网络、光网络。网络可以进一步地是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(2249)的外部网络接口适配器(例如计算机系统(2200)的USB端口);如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统(2200)的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(2200)可以使用这些网络中的任何一个网络与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络和网络接口的每一个上使用某些协议和协议栈。
上述人机接口装置、人机可访问的存储装置和网络接口可以附接到计算机系统(2200)的内核(2240)。
内核(2240)可以包括一个或多个中央处理单元(CPU)(2241)、图形处理单元(GPU)(2242)、现场可编程门区域(FPGA)(2243)形式的专用可编程处理单元、用于某些任务的硬件加速器(2244)、图形适配器(2250)等。这些装置以及只读存储器(ROM)(2245)、随机存取存储器(2246)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(2247)可以通过系统总线(2248)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(2248),以能够通过附加的CPU、GPU等进行扩展。外围装置可以直接连接到内核的系统总线(2248)或通过外围总线(2249)连接到内核的系统总线(2248)。例如,屏幕(2210)可以连接至图形适配器(2250)。外围总线的体系结构包括PCI、USB等。
CPU(2241)、GPU(2242)、FPGA(2243)和加速器(2244)可以执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可以存储在ROM(2245)或RAM(2246)中。过渡数据也可以存储在RAM(2246)中,而永久数据可以例如存储在内部大容量存储器(2247)中。可以通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个CPU(2241)、GPU(2242)、大容量存储(2247)、ROM(2245)、RAM(2246)等。
计算机可读介质可以在其上具有执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构建的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
作为非限制性示例,可以由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(2200),特别是内核(2240)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性内核(2240)的存储器,例如内核内部大容量存储器(2247)或ROM(2245)。可以将实施本申请的各种实施例的软件存储在此类装置中并由内核(2240)执行。根据特定需要,计算机可读介质可以包括一个或多个存储装置或芯片。软件可以使得内核(2240),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(2246)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器(2244))中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或包括两者。本申请包括硬件和软件的任何合适的组合
尽管本申请已经描述了多个示例性实施例,但是存在落入本申请的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。
附录A:缩略语
ALF:自适应环路滤波器
AMVP:高级运动矢量预测
APS:适配参数集
ASIC:专用集成电路
AV1:开放媒体联盟视频1
AV2:开放媒体联盟视频2
BCW:CU级加权双向预测
BM:双边匹配
BMS:基准集
CANBus:控制器局域网总线
CC-ALF:跨分量自适应环路滤波器
CCSO:跨分量样本偏移
CD:压缩光盘
CDEF:约束方向增强滤波器
CDF:累计密度函数
CfL:从亮度预测色度
CIIP:组合帧内帧间预测
CPUs:多个中央处理器
CRT:阴极射线管
CTB:编码树块
CTU:编码树单元
CTUs:多个编码树单位
CU:编码单位
DMVR:解码器侧运动矢量细化
DPB:已解码图像缓冲器
DPS:解码参数集
DVD:数字视频光盘
FPGA:现场可编程门区域
GBI:广义双向预测
GOPs:多个图像组
GPUs:多个图形处理单元
GSM:全球移动通信系统
HDR:高动态范围
HEVC:高效视频编码
HRD:假想参考解码器
IBC(或IntraBC):帧内块复制
IC:集成电路
ISP:帧内子划分
JEM:联合探索模型
JVET:联合视频探索小组
LAN:局域网
LCD:液晶显示器
LR:环路恢复滤波器
LSO:本地采样偏移
LTE:长期演进
MMVD:具有运动矢量差的合并模式
MPM:最可能模式
MV:运动矢量
MVD:运动矢量差
MVP:运动矢量预测器
OLED:有机发光二极管
PBs:多个预测块
PCI:外围组件互连
PDPC:位置相关预测组合
PLD:可编程逻辑器件
POC:图像顺序计数
PPS:图像参数设置
PU:预测单位
PUs:多个预测单位
ROM:随机存取存储器
ROM:只读存储器
RPS:参考图像集
SAD:绝对差和
SAO:样本自适应偏移
SB:超级块
SCC:屏幕内容编码
SDP:半解耦划分
SDR:标准动态范围
SDT:半解耦树
SEI:补充增强信息
SNR:信噪比
SPS:序列参数设置
SSD:固态硬盘
SST:半分离树
TM:模板匹配
TU:变换单元
TUs:多个变换单位,
USB:通用串行总线
VPS:视频参数设置
VUI:视频可用性信息
VVC:多功能视频编码
WAIP:广角帧内预测

Claims (20)

1.一种用于解码视频流的方法,所述方法包括:
接收所述视频流,所述视频流包括语法标志,所述语法标志指示第一参考帧的第一运动矢量是否用于推导出第二参考帧的第二运动矢量;
接收所述视频流中的当前帧的所述第一参考帧;
基于所述语法标志的值,确定所述第一参考帧的所述第一运动矢量是否用于推导出所述第二参考帧的所述第二运动矢量;
响应于所述语法标志的所述值指示所述当前参考帧的所述第一运动矢量用于推导出所述第二参考帧的所述第二运动矢量,推导出所述第二参考帧的所述第二运动矢量,其中,所述推导基于所述语法标志的所述值和所述第一参考帧的所述第一运动矢量;以及
基于所推导出的第二运动矢量对所述视频流进行解码。
2.根据权利要求01所述的方法,其中,所述第一运动矢量指向所述第一参考帧,所述第二运动矢量指向与所述第一参考帧不同的所述第二参考帧,并且运动矢量差(MVD)基于所述第一运动矢量和所述第二运动矢量提供预测。
3.根据权利要求10所述的方法,其中,所述推导包括帧间编码模式,其中,所述帧间编码模式包括推导_新运动矢量(DERIVED_NEWMV)模式或推导_附近运动矢量(DERIVED_NEARMV)模式。
4.根据权利要求30所述的方法,其中,所述DERIVED_NEWMV模式包括直接从所述第一参考帧推导出所述第二运动矢量。
5.根据权利要求30所述的方法,其中,所述DERIVED_NEARMV模式包括从所述第一参考帧的相邻帧推导出所述第二运动矢量。
6.根据权利要求5所述0的方法,其中,对于所述DERIVED_NEARMV模式,不使用信号发送运动矢量差(MVD)。
7.根据权利要求1所0述的方法,还包括:
响应于所述语法标志,指示应用所述帧间编码模式中的哪一种帧间编码模式,其中,当指示所述第一参考帧的所述第一运动矢量能推导出所述第二运动矢量时,从所述第一运动矢量推导出所述第二运动矢量。
8.根据权利要求3所述的方法,还包括:
基于所指示的帧间编码模式,使用信号发送运动矢量差(MVD)。
9.根据权利要求1所0述的方法,还包括:
使用信号发送参考帧索引,所述参考帧索引指示针对帧间预测模式,当前块使用所述第一参考帧还是所述第二参考帧。
10.根据权利要求01所述的方法,其中,当参考帧缓冲器中有至少两个参考帧能用于所述当前帧,并且所述至少两个参考帧中的一个参考帧在显示顺序上在所述当前帧之前,而所述至少两个参考帧中的另一个参考帧在显示顺序上在所述当前帧之后时,使用信号发送所述参考帧索引。
11.根据权利要0求1所述的方法,其中,参考帧的方向基于所述参考帧在显示顺序上是在所述当前帧之前还是在显示顺序上是在所述当前帧之后。
12.根据权利要求11所述的方法,其中,所述第一参考帧的方向不同于所述第二参考帧的方向。
13.根据权利要求01所述的方法,其中,当一个运动矢量对的两个参考帧的图像顺序计数(POC)均大于或均小于所述当前参考帧的POC时,所述两个参考帧的方向是相同的。
14.根据权利要求01所述的方法,其中,当一对参考帧中的一个参考帧的图像顺序计数(POC)大于所述当前参考帧的POC并且当所述一对参考帧中的另一个参考帧的POC小于所述当前参考帧的POC时,所述一对参考帧的方向不同。
15.根据权利要求01所述的方法,其中,所推导出的第二运动矢量所指向的所述第二参考帧的方向不同于使用信号发送的参考帧的方向或所述第一参考帧的方向。
16.一种用于解码视频码流的装置,所述装置包括:
存储器,用于存储指令;以及
处理器,所述处理器与所述存储器通信,其中,当所述处理器执行所述指令时,所述处理器配置为使得所述装置:
处理所述视频码流,所述视频码流包括指示帧间编码模式的语法标志;
从所述视频码流中识别当前帧的第一参考帧,其中,第一运动矢量指向所述第一参考帧;
基于所述语法标志的值,确定所述第一参考帧的所述第一运动矢量是否用于推导出第二参考帧的第二运动矢量;
响应于确定所述第一参考帧的所述第一运动矢量用于推导出所述第二参考帧的所述第二运动矢量,基于所述第一运动矢量推导出所述第二运动矢量;以及
基于所推导出的第二运动矢量对所述视频码流进行解码。
17.根据权利要求16所述的0装置,其中,所述帧间编码模式包括推导_新运动矢量(DERIVED_NEWMV)模式或推导_附近运动矢量(DERIVED_NEARMV)模式,其中,所述DERIVED_NEWMV模式包括从所述第一参考帧推导出所述第二运动矢量,并且所述DERIVED_NEARMV模式包括从所述第一参考帧的相邻帧推导出所述第二运动矢量。
18.根据权利要求16所0述的装置,其中,所述第一运动矢量指向所述第一参考帧,所述第二运动矢量指向所述第二参考帧,并且运动矢量差(MVD)基于所述第一运动矢量和所述第二运动矢量提供预测。
19.一种非暂时性计算机可读存储介质,其上存储有指令,其中,当所述指令由处理器执行时,所述指令配置为使得所述处理器:
处理视频流,所述视频流包括语法指示,所述语法指示包括帧间编码模式。
从所述视频流接收当前帧的第一参考帧,其中,第一运动矢量指向所述第一参考帧;
基于所述语法指示的值,确定所述第一参考帧的所述第一运动矢量是否用于推导出第二参考帧的第二运动矢量;
响应于确定所述第一参考帧的所述第一运动矢量用于推导出第二参考帧的第二运动矢量,基于所述语法指示且基于所述第一运动矢量推导出所述第二运动矢量,其中,所述第二运动矢量指向所述第二参考帧;以及
基于所推导出的第二运动矢量对所述视频流进行解码。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述帧间编码模式包括推导_新运动矢量(DERIVED_NEWMV)模式或推导_附近运动矢量(DERIVED_NEARMV)模式,其中,所述DERIVED_NEWMV模式包括从所述第一参考帧推导出所述第二运动矢量,并且所述DERIVED_NEARMV模式包括从所述第一参考帧的相邻帧推导出所述第二运动矢量。
CN202280016759.1A 2021-11-18 2022-10-28 利用单个参考信令推导运动矢量 Pending CN116982315A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202163280978P 2021-11-18 2021-11-18
US63/280,978 2021-11-18
US202163289008P 2021-12-13 2021-12-13
US63/289,008 2021-12-13
US18/049,914 US20230156218A1 (en) 2021-11-18 2022-10-26 Derived motion vector with single reference signaling
US18/049,914 2022-10-26
PCT/US2022/048269 WO2023091286A1 (en) 2021-11-18 2022-10-28 Derived motion vector with single reference signaling

Publications (1)

Publication Number Publication Date
CN116982315A true CN116982315A (zh) 2023-10-31

Family

ID=86323236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280016759.1A Pending CN116982315A (zh) 2021-11-18 2022-10-28 利用单个参考信令推导运动矢量

Country Status (4)

Country Link
US (1) US20230156218A1 (zh)
KR (1) KR20230124072A (zh)
CN (1) CN116982315A (zh)
WO (1) WO2023091286A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12022085B2 (en) * 2021-04-12 2024-06-25 Qualcomm Incorporated Template matching refinement in inter-prediction modes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100865034B1 (ko) * 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
US8804816B2 (en) * 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
US9648321B2 (en) * 2011-12-02 2017-05-09 Qualcomm Incorporated Coding picture order count values identifying long-term reference frames
WO2016008161A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Temporal derived bi-directional motion vector predictor
BR112017010468B1 (pt) * 2014-11-18 2024-01-02 Hfi Innovation Inc Método de decodificação de vídeo para blocos codificados no modo de interpredição e método de codificação de vídeo para blocos codificados no modo de interpredição

Also Published As

Publication number Publication date
US20230156218A1 (en) 2023-05-18
WO2023091286A1 (en) 2023-05-25
KR20230124072A (ko) 2023-08-24

Similar Documents

Publication Publication Date Title
CN113259661A (zh) 视频解码的方法和装置
CN117063471A (zh) 用于运动矢量差的联合信令方法
CN115428445A (zh) 用于视频编码的方法和装置
CN116982315A (zh) 利用单个参考信令推导运动矢量
CN116325723B (zh) 用于视频解码的方法、计算机设备及介质
CN116830581A (zh) 用于运动矢量差的经改进的信令方法和装置
CN116941243A (zh) 自适应运动矢量差分辨率的联合编码
CN116830582A (zh) 运动矢量差的自适应分辨率与运动矢量相关参数的写入/导出之间的依赖关系
CN118235404A (zh) 分量相关的帧内和帧间预测信令
CN116686289A (zh) 用于单参考运动矢量差的自适应精度
CN117178552A (zh) 边界外条件的基于子块的双向预测约束
CN116762340A (zh) Mmvd信令改进
CN115516856A (zh) 多参考行帧内预测与变换分区之间的协调设计
CN116235490A (zh) 用于视频编码的方法和设备
CN116076074A (zh) 用于视频编码中的时域滤波的方法和设备
CN116584092B (zh) 视频块解码方法、装置和存储介质
CN117044205A (zh) 改进的运动矢量差分编码上下文推导
CN116601955A (zh) 运动矢量差的自适应分辨率
CN116325735A (zh) 用于针对参考帧进行自适应重新排序的方法和装置
CN116830572A (zh) 调整运动矢量差的自适应分辨率的方案
CN116636210A (zh) 用于自适应运动矢量差分辨率的内插滤波器
CN116584097A (zh) 联合运动矢量差编解码
CN116783892A (zh) 用于修正运动矢量候选的方法和设备
CN118285101A (zh) 时间运动矢量预测器候选搜索
CN116569547A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40099681

Country of ref document: HK