CN116636210A - 用于自适应运动矢量差分辨率的内插滤波器 - Google Patents
用于自适应运动矢量差分辨率的内插滤波器 Download PDFInfo
- Publication number
- CN116636210A CN116636210A CN202280008452.7A CN202280008452A CN116636210A CN 116636210 A CN116636210 A CN 116636210A CN 202280008452 A CN202280008452 A CN 202280008452A CN 116636210 A CN116636210 A CN 116636210A
- Authority
- CN
- China
- Prior art keywords
- mvd
- interpolation filter
- video
- block
- predefined
- 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
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 155
- 239000013598 vector Substances 0.000 title claims abstract description 139
- 230000003044 adaptive effect Effects 0.000 title claims description 35
- 238000000034 method Methods 0.000 claims abstract description 107
- 238000012545 processing Methods 0.000 claims abstract description 34
- 239000000872 buffer Substances 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 10
- 238000005192 partition Methods 0.000 description 94
- 238000000638 solvent extraction Methods 0.000 description 62
- 230000000875 corresponding effect Effects 0.000 description 45
- 239000000523 sample Substances 0.000 description 45
- 230000011218 segmentation Effects 0.000 description 40
- 230000006835 compression Effects 0.000 description 30
- 238000007906 compression Methods 0.000 description 30
- 230000011664 signaling Effects 0.000 description 28
- 241000023320 Luma <angiosperm> Species 0.000 description 25
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 25
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 13
- 230000002123 temporal effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000009466 transformation Effects 0.000 description 11
- 239000002131 composite material Substances 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000001419 dependent effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 238000013139 quantization Methods 0.000 description 7
- 230000007774 longterm Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 150000001875 compounds Chemical class 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 239000013074 reference sample Substances 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013403 standard screening design Methods 0.000 description 3
- 101100025317 Candida albicans (strain SC5314 / ATCC MYA-2876) MVD gene Proteins 0.000 description 2
- 101150079299 MVD1 gene Proteins 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- IESVDEZGAHUQJU-ZLBXKVHBSA-N 1-hexadecanoyl-2-(4Z,7Z,10Z,13Z,16Z,19Z-docosahexaenoyl)-sn-glycero-3-phosphocholine Chemical group CCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CC\C=C/C\C=C/C\C=C/C\C=C/C\C=C/C\C=C/CC IESVDEZGAHUQJU-ZLBXKVHBSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 101150114515 CTBS gene Proteins 0.000 description 1
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开内容总体上涉及视频编码,并且特别地涉及用于基于运动矢量幅值和/或运动矢量像素分辨率来选择用于生成帧间预测块的内插滤波器的方法和系统。例如,公开了一种用于对视频流的视频块进行处理的方法。该方法可以包括:接收该视频流中的标志;基于所接收的标志确定要根据运动矢量(MV)通过参考帧对该视频块进行帧间预测;根据该视频块的参考MV和MVD(MV差)导出该MV;导出指示内插滤波器的信号,其中,该信号至少基于该MVD的幅值和分辨率中的一者;根据该信号选择内插滤波器;以及根据该MV和所选内插滤波器通过该参考帧针对该视频块执行帧间预测。
Description
相关申请的交叉引用
本申请基于并要求于2022年9月29日提交的美国非临时专利申请第17/956,559号的优先权的权益,该美国非临时专利申请基于并要求于2021年12月6日提交的美国临时专利申请第63/286,327号的优先权的权益,上述美国非临时专利申请和美国临时专利申请的标题均为“Interpolation Filters for Adaptive Motion Vector DifferenceResolution”,这些在先专利申请通过引用整体并入本文。
技术领域
本公开内容总体上涉及视频编码,并且特别地涉及用于基于运动矢量幅值和/或运动矢量像素分辨率来选择用于生成帧间预测块的内插滤波器的方法和系统。
背景技术
本文提供的该背景技术描述是出于总体上呈现本公开内容的上下文的目的。就在该背景技术部分中描述的工作的程度而言,目前署名的发明人的工作以及在提交本申请时可能未被另外限定作为现有技术的各方面既没有明确地也没有隐含地被承认为是针对本公开内容的现有技术。
可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,其中每个图片的空间维度为例如1920×1080亮度样本和全部相关联或子采样的色度样本。该系列图片可以具有固定的或可变的图片速率(可替选地被称为帧速率),例如每秒60个图片或者每秒60帧。未压缩的视频对于流式传输或数据处理具有特定的比特率要求。例如,具有1920×1080的像素分辨率、60帧/秒的帧速率、以及在每像素每颜色通道8位下的4:2:0的色度子采样的视频需要接近1.5Gbit/s的带宽。一小时的这样的视频需要超过600千兆字节的存储空间。
视频编码和解码的一个目的可以是通过压缩来减少未经压缩的输入视频信号中的冗余。压缩可以有助于降低以上提及的带宽和/或存储空间的要求,在一些情况下可以降低两个数量级或更多。可以采用无损压缩和有损压缩二者以及它们的组合。无损压缩是指可以经由解码处理根据经压缩的原始信号来重建原始信号的准确副本的技术。有损压缩是指原始视频信息在编码期间未被完全保留并且在解码期间未完全恢复的编码/解码处理。当使用有损压缩时,重建的信号可能与原始信号不同,但是原始信号与重建的信号之间的失真被变得足够小,以使得即使有一些信息损失重建的信号也对预期应用有用。在视频的情况下,在许多应用中广泛地采用有损压缩。可容忍的失真量取决于应用。例如,某些消费者视频流式传输应用的用户可能比电影或电视广播应用的用户容忍更高的失真。可以选择或调整可由特定编码算法实现的压缩比以反映各种失真容限:更高的可容忍失真通常允许使更高损失和更高压缩比产生的编码算法。
视频编码器和解码器可以利用来自例如包括运动补偿、傅里叶变换、量化和熵编码的若干宽泛类别和步骤的技术。
视频编解码器技术可以包括被称为帧内编码的技术。在帧内编码中,在不参考来自先前重建的参考图片的样本或其他数据的情况下表示样本值。在一些视频编解码器中,图片在空间上被细分为样本块。当所有的样本块都以帧内模式编码时,该图片可以被称为帧内图片。帧内图片及其派生诸如独立解码器刷新图片可以用于重置解码器状态,并且因此可以用作已编码视频比特流和视频会话中的第一图片或者用作静止图像。然后可以使帧内预测后的块的样本经受变换至频域中,并且可以在熵编码之前对如此生成的变换系数进行量化。帧内预测表示在预变换域中使样本值最小化的技术。在一些情况下,变换之后的DC值越小并且AC系数越小,在给定量化步长下表示熵编码之后的块所需的比特就越少。
传统的帧内编码诸如从例如MPEG(Moving Picture Experts Group,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个角模式)中指定的九个预测器方向的子集。箭头会聚的点(101)表示正被预测的样本。箭头表示使用邻近样本预测101处的样本的方向。例如,箭头(102)指示根据右上方的与水平方向成45度角的一个或多个邻近样本对样本(101)进行预测。类似地,箭头(103)指示根据样本(101)左下方的与水平方向成22.5度角的一个或多个邻近样本对样本(101)进行预测。
仍然参照图1A,左上方描绘的是4×4样本的正方形块(104)(由黑体虚线指示)。正方形块(104)包括16个样本,每个样本均用“S”、其在Y维度上的位置(例如,行索引)以及其在X维度上的位置(例如,列索引)来标记。例如,样本S21是Y维度上(从顶部起)的第二样本并且是X维度上(从左侧起)的第一样本。类似地,样本S44是块(104)中在Y维度和X维度两者上的第四样本。由于块的大小是4×4样本,因此S44在右下方处。另外示出的是示例参考样本,其遵循类似的编号方案。参考样本用R、其相对于块(104)的Y位置(例如,行索引)和X位置(列索引)来标记。在H.264和H.265两者中,使用与重建中的块相邻地邻近的预测样本。
块104的帧内图片预测可以通过根据用信号通知的预测方向从邻近样本复制参考样本值开始。例如,假设已编码视频比特流包括信令,针对该块104,该信令指示箭头(102)的预测方向——即,根据右上方的与水平方向成45度角的一个或多个预测样本对样本进行预测。在这样的情况下,根据同一参考样本R05对样本S41、S32、S23和S14进行预测。然后,根据参考样本R08对样本S44进行预测。
在某些情况下,可以例如通过内插将多个参考样本的值进行组合以便计算参考样本;尤其是在方向不能以45度均匀划分的情况下。
随着视频编码技术继续发展,可能的方向的数目也在增加。例如,在H.264(2003年)中,有九个不同的方向可用于帧内预测。在H.265(2013年)中增加到33个,并且在本公开内容的时候,JEM/VVC/BMS可以支持多至65个方向。已经进行了实验研究以帮助识别最合适的帧内预测方向,并且熵编码中的某些技术可以用于以少量的比特来编码那些最合适的方向,从而接受对方向的特定比特惩罚。此外,有时可以根据在已解码的邻近块的帧内预测中使用的邻近方向来预测方向本身。
图1B示出了描绘根据JEM的65个帧内预测方向以示出预测方向的数目在随时间发展的各种编码技术中增加的示意图(180)。
用于将表示帧内预测方向的比特映射至已编码视频比特流中的预测方向的方式可以随着视频编码技术的不同而不同;并且该方式的范围例如可以从预测方向的简单直接映射到帧内预测模式,到码字,再到涉及最可能模式的复杂自适应方案以及类似技术。然而,在所有情况下,可能存在用于前导预测的统计上与某些其他方向相比较更不可能出现在视频内容中的某些方向。由于视频压缩的目标是减少冗余,因此在设计良好的视频编码技术中,那些不太可能的方向与更可能的方向相比较可能通过更大的比特数来表示。
帧间图片预测或帧间预测可以基于运动补偿。在运动补偿中,来自先前重建的图片或其一部分(参考图片)的样本数据,在沿由运动矢量(在下文中被称为MV)指示的方向进行空间移位之后,可以用于预测新重建的图片或图片部分(例如,块)。在一些情况下,参考图片可以与当前重建中的图片相同。MV可以具有两个维度X和Y或者具有三个维度,其中,第三维度是使用的参考图片的指示(类似于时间维度)。
在一些视频压缩技术中,可以根据其他MV来预测适用于样本数据的特定区域的当前MV,例如根据与样本数据的在空间上与重建中的区域相邻的其他区域相关并且在解码顺序中先于当前MV的那些其他MV来预测该当前MV。这样做可以通过依靠消除相关MV中的冗余来显著减少编码MV所需的数据总量,从而提高压缩效率。MV预测可以有效地工作,例如,这是因为在对从摄像装置得到的输入视频信号(被称为自然视频)进行编码时,存在比单个MV所适用的区域更大的区域在视频序列中在相似方向上移动的统计可能性,并且因此在一些情况下可以使用从邻近区域的MV得出的相似运动矢量来预测所述更大的区域。这致使针对给定区域的实际MV与根据周围MV预测的MV类似或相同。在熵编码之后,这样的MV进而可以以比直接对MV进行编码而不是根据邻近MV进行预测的情况下将使用的比特数少的比特数来表示。在一些情况下,MV预测可以是从原始信号(即:样本流)得出的信号(即:MV)的无损压缩的示例。在其他情况下,MV预测本身可能是有损的,例如由于根据若干周围MV计算预测器时的舍入误差而是有损的。
在H.265/HEVC(High Efficiency Video Coding,HEVC)(ITU-T(InternationalTelecommunication Union-Telecommunication Standardization Sector,ITU-T)H.265建议书,“高效视频编码(High Efficiency Video Coding)”,2016年12月)中描述了各种MV预测机制。在H.265指定的多种MV预测机制中,下面描述的是在下文中被称为“空间合并”的技术。
具体地,参照图2,当前块(201)包括在运动搜索过程期间由编码器发现的能够根据已经空间移位的相同大小的先前块预测的样本。代替直接对该MV进行编码,可以使用与用A0、A1和B0、B1、B2(分别对应202至206)表示的五个周围样本中的任一样本相关联的MV,从与一个或更多个参考图片相关联的元数据得出MV,例如,从最近(按解码顺序)的参考图片得出MV。在H.265中,MV预测可以使用来自邻近块使用的相同参考图片的预测器。
发明内容
本公开内容总体上涉及视频编码,并且特别地涉及用于基于运动矢量幅值和/或运动矢量像素分辨率来选择用于生成帧间预测块的内插滤波器的方法和系统。
在示例实现方式中,公开了一种用于对视频流的视频块进行处理的方法。该方法可以包括:接收该视频流中的标志;基于所接收的标志确定要根据运动矢量(MV)通过参考帧对该视频块进行帧间预测;根据该视频块的参考MV和MVD(MV差)导出该MV;导出指示内插滤波器的信号,其中,该信号至少基于该MVD的幅值和分辨率中的一者;根据该信号选择内插滤波器;以及根据该MV和所选内插滤波器通过该参考帧针对该视频块执行帧间预测。
在上面的实现方式中,导出信号可以包括:基于与该视频块相关联的MV等级索引来确定该MVD的幅值,该MV等级索引从该视频流中提取;以及当该MV等级索引不低于MV等级索引阈值时,导出用于默认使用预定义内插滤波器的信号。
在上面的实现方式中的任何一个中,该预定义内插滤波器在下述多个内插滤波器中,所述多个内插滤波器形成用于具有低于该MV等级索引阈值的MV等级索引的视频块的候选内插滤波器的池。
在上面的实现方式中的任何一个中,该预定义内插滤波器包括REGULAR内插滤波器、SMOOTH内插滤波器、SHARP内插滤波器或BILINEAR内插滤波器。
在上面的实现方式中的任何一个中,导出信号可以包括:确定自适应像素分辨率被应用于该MVD;在多个自适应MVD像素分辨率中确定该MVD的像素分辨率;以及响应于该MVD的像素分辨率处于一个或更多个预定义水平下,导出用于默认使用预定义内插滤波器的信号。
在上面的实现方式中的任何一个中,所述一个或更多个预定义水平包括不高于预定义的MVD像素分辨率阈值的MVD分辨率水平。
在上面的实现方式中的任何一个中,该MVD的像素分辨率基于从该视频流中提取的该视频块的MV等级索引来确定。
在上面的实现方式中的任何一个中,该预定义的MVD像素分辨率阈值对应于该MV等级索引阈值。
在上面的实现方式中的任何一个中,该预定义内插滤波器在下述多个内插滤波器中,所述多个内插滤波器形成用于具有不同于所述一个或更多个预定义水平的自适应MVD像素分辨率的视频块的候选内插滤波器的池。
在上面的实现方式中的任何一个中,该预定义内插滤波器包括REGULAR内插滤波器、SMOOTH内插滤波器、SHARP内插滤波器或BILINEAR内插滤波器中的一个。
在上面的实现方式中的任何一个中,导出信号可以包括:从视频流中确定与该MVD的幅值对应的MV等级索引;当该MV的MV等级索引不低于预定义的MV等级索引阈值时,默认使用内插滤波器集中的预定义内插滤波器子集;以及从该视频流中提取选择指示符作为用于从该预定义内插滤波器子集中选择内插滤波器的信号。
在上面的实现方式中的任何一个中,导出信号可以包括:确定自适应像素分辨率被应用于该MVD;在多个自适应MVD像素分辨率中确定该MVD的像素分辨率;响应于该MVD的像素分辨率不大于预定义的MVD像素分辨率阈值,默认使用内插滤波器集中的预定义内插滤波器子集;以及从该视频流中提取选择指示符作为用于从该预定义内插滤波器子集中选择内插滤波器的信号。
在上面的实现方式中的任何一个中,导出信号可以包括:确定自适应像素分辨率被应用于该视频块的MVD;在多个自适应MVD像素分辨率中确定该MVD的像素分辨率,或者在多个MV等级索引中确定该MV的MV等级索引;基于该MVD的像素分辨率或该MV等级索引来识别用于对内插滤波器选择指示符进行编码的上下文集;以及根据所述上下文集对该视频流进行解码,以获得该内插滤波器选择指示符作为所述信号。
在上面的实现方式中的任何一个中,导出信号可以包括:确定自适应像素分辨率被应用于该MVD;在多个MV等级索引中确定该视频块的MV等级索引;当该MV等级索引不小于MV等级索引阈值时,使用第一上下文集对该视频流进行解码,以获得内插滤波器选择指示符作为所述信号;以及当该MV等级索引小于该MV等级索引阈值时,使用不同于第一上下文集的第二上下文集对该视频流进行解码,以获得该内插滤波选择指示符作为所述信号。
在上面的实现方式中的任何一个中,导出信号可以包括:响应于确定该MVD的MVD像素分辨率是非分数的,默认使用内插滤波器。
在上面的实现方式中的任何一个中,导出信号可以包括:响应于确定该MVD的MVD像素分辨率是非分数的,默认使用内插滤波器集中的预定义内插滤波器子集;以及从该视频流中提取选择指示符作为用于从该预定义内插滤波器子集中选择内插滤波器的信号。
本公开内容的各方面还提供了一种视频编码或解码设备或装置,其包括被配置成执行上面的方法实现方式中的任何一个的电路系统。
本公开内容的各方面还提供了一种非暂态计算机可读介质,其存储有指令,所述指令在由计算机执行用于视频解码和/或编码时使所述计算机执行用于视频解码和/或编码的方法。
附图说明
根据以下详细描述和附图,所公开的主题的另外的特征、性质和各种优点将更加明显,在附图中:
图1A示出了帧内预测方向模式的示例性子集的示意性图示;
图1B示出了示例性帧内预测方向的图示;
图2示出了一个示例中用于运动矢量预测的当前块及其周围的空间合并候选的示意性图示;
图3示出了根据示例实施方式的通信系统(300)的简化框图的示意性图示;
图4示出了根据示例实施方式的通信系统(400)的简化框图的示意性图示;
图5示出了根据示例实施方式的视频解码器的简化框图的示意性图示;
图6示出了根据示例实施方式的视频编码器的简化框图的示意性图示;
图7示出了根据另一示例实施方式的视频编码器的框图;
图8示出了根据另一示例实施方式的视频解码器的框图;
图9示出了根据本公开内容的示例实施方式的编码块分割的方案;
图10示出了根据本公开内容的示例实施方式的编码块分割的另一方案;
图11示出了根据本公开内容的示例实施方式的编码块分割的另一方案;
图12示出了根据示例分割方案将基本块分割为编码块的示例;
图13示出了示例三元分割方案;
图14示出了示例四叉树二叉树编码块分割方案;
图15示出了根据本公开内容的示例实施方式的用于将编码块分割为多个变换块以及变换块的编码顺序的方案;
图16示出了根据本公开内容的示例实施方式的用于将编码块分割为多个变换块以及变换块的编码顺序的另一方案;
图17示出了根据本公开内容的示例实施方式的用于将编码块分割为多个变换块的另一方案;
图18示出了根据本公开内容的示例实施方式的方法的流程图;
图19示出了根据本公开内容的示例实施方式的计算机系统的示意性图示。
具体实施方式
贯穿说明书和权利要求书,术语可以具有超出明确陈述的含义的上下文中提出或暗示的细微含义。如本文所使用的短语“在一个实施方式中”或“在一些实施方式中”不一定是指相同的实施方式,并且如本文所使用的短语“在另一实施方式中”或“在其他实施方式中”不一定是指不同的实施方式。同样,如本文所使用的短语“在一个实现方式中”或“在一些实现方式中”不一定指相同的实现方式,并且如本文所使用的短语“在另一实现方式中”或“在其他实现方式中”不一定是指不同的实现方式。例如,目的是所要求保护的主题包括示例性实施方式/实现方式的整体或部分的组合。
通常,术语可以至少部分地根据上下文中的用法来理解。例如,如本文所使用的术语,诸如“和”、“或”或者“和/或”可以至少部分地取决于使用这样的术语的上下文而包括各种各样的含义。通常,如果“或”用于关联列表例如A、B或C,则“或”旨在表示A、B和C,此处以包含的意义使用,以及A、B或C,此处以排他的意义使用。另外,至少部分地取决于上下文,如本文所使用的术语“一个或更多个”或“至少一个”可以用于以单数意义描述任何特征、结构或特性,或者可以用于以复数意义描述特征、结构或特性的组合。类似地,术语,例如“一”、“一个”或“该”,同样可以被理解成传达单数用法或传达复数用法,这至少部分地取决于上下文。此外,术语“基于”或“由......确定”可以被理解为不一定旨在传达排他的因素集合,并且可以替代地允许存在不一定明确描述的附加因素,这同样至少部分地取决于上下文。图3示出了根据本公开内容的实施方式的通信系统(300)的简化框图。通信系统(300)包括可以经由例如网络(350)彼此通信的多个终端设备。例如,通信系统(300)包括经由网络(350)互连的第一对终端设备(310)和(320)。在图3示例中,第一对终端设备(310)和(320)可以执行数据的单向传输。例如,终端设备(310)可以对视频数据(例如,由终端设备(310)捕获的视频图片流的视频数据)进行编码,以用于经由网络(350)传输至另一终端设备(320)。已编码视频数据可以以一个或更多个已编码视频比特流的形式传输。终端设备(320)可以从网络(350)接收已编码视频数据,对已编码视频数据进行解码以恢复视频图片,并且根据恢复的视频数据显示视频图片。单向数据传输可能在媒体服务应用等中实现。
在另一示例中,通信系统(300)包括执行已编码视频数据的双向传输的第二对终端设备(330)和(340),该双向传输可能例如在视频会议应用期间实现。对于数据的双向传输,在示例中,终端设备(330)和(340)中的每个终端设备可以对视频数据(例如,由终端设备捕获的视频图片流的视频数据)进行编码,以用于经由网络(350)传输至终端设备(330)和(340)中的另一终端设备。终端设备(330)和(340)中的每个终端设备还可以接收由终端设备(330)和(340)中的另一终端设备传输的已编码视频数据,并且可以对已编码视频数据进行解码以恢复视频图片,并且可以根据恢复的视频数据在可访问的显示设备处显示视频图片。
在图3示例中,终端设备(310)、(320)、(330)和(340)可以被实现为服务器、个人计算机和智能电话,但是本公开内容的基本原理的适用性可以不被这样限制。本公开内容的实施方式可以在台式计算机、膝上型计算机、平板计算机、媒体播放器、可穿戴计算机、专用视频会议装备等中实现。网络(350)表示在终端设备(310)、(320)、(330)和(340)之间传送已编码视频数据的任何数目或类型的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(350)可以在电路交换信道、分组交换信道和/或其他类型的信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。出于本论述的目的,除非在本文中明确说明,否则网络(350)的架构和拓扑对于本公开内容的操作而言可能是无关紧要的。
作为用于所公开的主题的应用的示例,图4示出了视频编码器和视频解码器在视频流式传输环境中的放置。所公开的主题可以同样地适用于其他视频应用,包括例如视频会议、数字TV、广播、游戏、虚拟现实、在包括CD(Compact Disc,CD)、DVD(DigitalVersatile Disc,DVD)、存储棒等的数字介质上存储压缩视频。
视频流式传输系统可以包括视频捕获子系统(413),该视频捕获子系统(413)可以包括用于创建未压缩的视频图片或图像流(402)的视频源(401),例如数字摄像装置。在示例中,视频图片流(402)包括由视频源401的数字摄像装置记录的样本。视频图片流(402)被描绘为粗线以强调当与已编码视频数据(404)(或已编码视频比特流)比较时的高数据量,该视频图片流(402)可以由耦接至视频源(401)的包括视频编码器(403)的电子设备(420)来处理。视频编码器(403)可以包括硬件、软件或其组合,以实现或实施如下面更详细地描述的所公开的主题的各方面。已编码视频数据(404)(或已编码视频比特流(404))被描绘为细线以强调当与未经压缩的视频图片流(402)比较时的较低数据量,该已编码视频数据(404)可以被存储在流式传输服务器(405)上以供将来使用或者直接存储至下游视频装置(未示出)。一个或更多个流式传输客户端子系统例如图4中的客户端子系统(406)和(408)可以访问流式传输服务器(405)以检索已编码视频数据(404)的副本(407)和(409)。客户端子系统(406)可以包括例如电子设备(430)中的视频解码器(410)。视频解码器(410)对传入的已编码视频数据的副本(407)进行解码,并且创建未经压缩并且可以在显示器(412)(例如,显示屏)或另一呈现设备(未描绘)上呈现的输出视频图片流(411)。视频解码器410可以被配置成执行本公开内容中描述的各种功能中的一些或全部。在一些流式传输系统中,可以根据某些视频编码/压缩标准对已编码视频数据(404)、(407)和(409)(例如,视频比特流)进行编码。这些标准的示例包括ITU-T H.265建议书。在示例中,开发中的视频编码标准被非正式地称为通用视频编码(VVC)。所公开主题可以在VVC的上下文以及其他视频编码标准中使用。
注意,电子设备(420)和(430)可以包括其他部件(未示出)。例如,电子设备(420)可以包括视频解码器(未示出),并且电子设备(430)也可以包括视频编码器(未示出)。
图5示出了根据以下本公开内容的任何实施方式的视频解码器(510)的框图。视频解码器(510)可以包括在电子设备(530)中。电子设备(530)可以包括接收器(531)(例如,接收电路系统)。视频解码器(510)可以用于代替图4示例中的视频解码器(410)。
接收器(531)可以接收要由视频解码器(510)解码的一个或更多个已编码视频序列。在同一实施方式或另一实施方式中,一次可以解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可以从信道(501)接收已编码视频序列,该信道(501)可以是到存储已编码视频数据的存储设备或到传输已编码视频数据的流式传输源的硬件/软件链路。接收器(531)可以接收已编码视频数据以及其他数据,例如已编码音频数据和/或辅助数据流,它们可以被转发至它们各自的处理电路系统(未描绘)。接收器(531)可以将已编码视频序列与其他数据分开。为了防止网络抖动,可以在接收器(531)与熵解码器/解析器(520)(在下文中被称为“解析器(520)”)之间设置缓冲存储器(515)。在某些应用中,缓冲存储器(515)可以实现为视频解码器(510)的一部分。在其他应用中,缓冲存储器(515)可以在视频解码器(510)外部并且与视频解码器(510)分开(未描绘)。在又一些其他应用中,出于例如防止网络抖动的目的,在视频解码器(510)的外部可以存在缓冲存储器(未描绘),并且在视频解码器(510)的内部可以存在另一附加的缓冲存储器(515)以例如处理回放定时。当接收器(531)从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,可以不需要缓冲存储器(515),或者缓冲存储器(515)可以较小。为了在诸如因特网的最优分组网络上使用,可能需要具有足够大小的缓冲存储器(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 ofPictures,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)内的地址,所述MV以符号(521)的形式可以用于运动补偿预测单元(553),所述符号(521)可以具有例如X分量、Y分量(移位)和参考图片分量(时间)。运动补偿还可以包括当使用子样本精确运动矢量时如从参考图片存储器(557)中获取的样本值的内插,并且还可以与运动矢量预测机制相关联等。
聚合器(555)的输出样本可以在环路滤波器单元(556)中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,该环路内滤波器技术由包括在已编码视频序列(也被称为已编码视频比特流)中并且作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)的参数来控制,但是视频压缩技术还可以响应于在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于先前重建和环路滤波的样本值。若干种类型的环路滤波器可以以各种顺序被包括为环路滤波器单元556的一部分,这将在下面进一步详细地描述。
环路滤波器单元(556)的输出可以是样本流,该样本流可以被输出至呈现设备(512)以及存储在参考图片存储器(557)中,以用于将来的帧间图片预测。
一旦完全重建,某些已编码图片就可以用作参考图片以用于将来的帧间图片预测。例如,一旦与当前图片对应的已编码图片被完全重建,并且该已编码图片(通过例如解析器(520))已经被识别为参考图片,当前图片缓冲器(558)就可以变为参考图片存储器(557)的一部分,并且可以在开始重建随后的已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可以根据诸如ITU-T H.265建议书的标准中采用的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件两者的意义上,已编码视频序列可以符合由所使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为仅在所述配置文件下可使用的工具。为了符合标准,已编码视频序列的复杂度可以处于由视频压缩技术或标准的层级限定的范围内。在一些情况下,层级限制最大图片大小、最大帧速率、最大重建采样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设置的限制可以通过假设参考解码器(Hypothetical Reference Decoder,HRD)规范以及用于在已编码视频序列中用信号通知的HRD缓冲器管理的元数据来进一步限定。
在一些示例实施方式中,接收器(531)可以随着已编码视频一起接收附加(冗余)数据。附加数据可以被包括作为已编码视频序列的一部分。视频解码器(510)可以使用附加数据对数据进行适当解码以及/或者更准确地重建原始视频数据。附加数据可以是例如时间、空间或信噪比(Signal Noise Ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图6示出了根据本公开内容的示例实施方式的视频编码器(603)的框图。视频编码器(603)可以包括在电子设备(620)中。电子设备(620)还可以包括传输器(640)(例如,传输电路系统)。视频编码器(603)可以用于代替图4示例中的视频编码器(403)。
视频编码器(603)可以从可以捕获要由视频编码器(603)编码的视频图像的视频源(601)(并非图6示例中的电子设备(620)的一部分)接收视频样本。在另一示例中,视频源(601)可以实现为电子设备(620)的一部分。
视频源(601)可以提供要由视频编码器(603)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的比特深度(例如:8比特、10比特、12比特、……)、任何色彩空间(例如,BT.601YCrCb、RGB、XYZ、……)和任何合适的采样结构(例如YCrCb 4:2:0、YCrCb 4:4:4)。在媒体服务系统中,视频源(601)可以是能够存储先前准备的视频的存储设备。在视频会议系统中,视频源(601)可以是捕获本地图像信息作为视频序列的摄像装置。可以将视频数据提供为当按顺序观看时被赋予运动的多个单独的图片或图像。图片自身可以被组织为空间像素阵列,其中,取决于所用的采样结构、颜色空间等,每个像素可以包括一个或更多个样本。本领域普通技术人员可以容易地理解像素与样本之间的关系。以下描述侧重于样本。
根据一些示例实施方式,视频编码器(603)可以实时地或者在由应用要求的任何其他时间约束下将源视频序列的图片编码并压缩成已编码视频序列(643)。施行适当的编码速度构成控制器(650)的一个功能。在一些实施方式中,控制器(650)可以在功能上耦接至如下所述的其他功能单元并且控制所述其他功能单元。为了简单起见,未描绘耦接。由控制器(650)设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值、……)、图片大小、图片群组(Group of Picture,GOP)布局、最大运动矢量搜索范围等。控制器(650)可以被配置成具有属于针对特定系统设计优化的视频编码器(603)的其他合适的功能。
在一些示例实施方式中,视频编码器(603)可以被配置成在编码环路中进行操作。作为简化描述,在示例中,编码环路可以包括源编码器(630)(例如,负责基于要被编码的输入图片及参考图片创建符号例如符号流)和嵌入在视频编码器(603)中的(本地)解码器(633)。解码器(633)以与(远程)解码器也将创建样本数据的方式类似的方式重建符号以创建样本数据,即使嵌入式解码器633在没有熵编码的情况下处理源编码器630的已编码视频流也是如此(因为在所公开主题考虑的视频压缩技术中,在熵编码中符号与已编码视频比特流之间的任何压缩可以是无损的)。将重建的样本流(样本数据)输入至参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的比特精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是比特精确的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时将“看到”的样本值完全相同。参考图片同步性(以及在例如由于信道误差而无法维持同步性的情况下产生的漂移)的基本原理被用于提高编码质量。
“本地”解码器(633)的操作可以与“远程”解码器例如已经在上面结合图5详细描述的视频解码器(510)的操作相同。然而,还简要地参照图5,由于符号可用并且由熵编码器(645)将符号编码成编码视频序列以及由解析器(520)对符号进行解码可以是无损的,因此可以不在编码器中的本地解码器(633)中完全实现视频解码器(510)的包括缓冲存储器(515)和解析器(520)的熵解码部分。
此时可以观察到,除了可能仅存在于解码器中的解析/熵解码之外的任何解码器技术也可能必然需要以基本上相同的功能形式存在于对应的编码器中。出于该原因,所公开的主题有时可能侧重于与编码器的解码部分相关的解码器操作。因此可以简化对编码器技术的描述,因为编码器技术与全面描述的解码器技术相反。下面仅在某些区域或方面中提供对编码器的更详细描述。
在一些示例实现方式中,在操作期间,源编码器(630)可以执行运动补偿预测编码,该运动补偿预测编码参考来自视频序列的被指定为“参考图片”的一个或更多个先前已编码图片来对输入图片进行预测性编码。以这样的方式,编码引擎(632)对输入图片的像素块与参考图片的像素块之间的颜色通道中的差异(或残差)进行编码,所述参考图片可以被选择为所述输入图片的预测参考。术语“残差”及其形容词形式“残差的”可以互换使用。
本地视频解码器(633)可以基于由源编码器(630)创建的符号对可以被指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可以有利地为有损处理。当已编码视频数据可以在视频解码器(图6中未示出)处被解码时,重建的视频序列通常可以是具有一些误差的源视频序列的副本。本地视频解码器(633)复制可以由视频解码器对参考图片执行的解码处理,并且可以使重建的参考图片存储在参考图片缓存(634)中。以这样的方式,视频编码器(603)可以在本地存储重建的参考图片的副本,所述副本与将由远端(远程)视频解码器获得的重建的参考图片具有共同内容(不存在传输误差)。
预测器(635)可以针对编码引擎(632)执行预测搜索。也就是说,对于要被编码的新图片,预测器(635)可以在参考图片存储器(634)中搜索可以用作针对新图片的适当预测参考的样本数据(作为候选参考像素块)或特定元数据例如参考图片运动矢量、块形状等。预测器(635)可以基于样本块逐像素块进行操作,以找到适当的预测参考。在一些情况下,如由预测器(635)获得的搜索结果所确定的,输入图片可以具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
控制器(650)可以管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群组参数。
对所有以上提及的功能单元的输出可以在熵编码器(645)中经受熵编码。熵编码器(645)通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩来将这些符号转换为已编码视频序列。
传输器(640)可以缓冲由熵编码器(645)创建的已编码视频序列,以为经由通信信道(560)进行传输做准备,该通信信道(660)可以是到将存储已编码视频数据的存储设备的硬件/软件链路。传输器(640)可以将来自视频编码器(603)的已编码视频数据与要传输的其他数据例如已编码音频数据和/或辅助数据流(未示出源)合并。
控制器(650)可以管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个编码图片分配某一编码图片类型,这可能影响可以应用于相应的图片的编码技术。例如,通常可以将图片分配为以下图片类型中之一:
帧内图片(I图片),其可以是可以在不将序列中的任何其他图片用作预测源的情况下编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。本领域普通技术人员了解I图片的那些变型及其相应的应用和特征。
预测性图片(P图片),其可以是可以使用利用至多一个运动矢量和参考索引来预测每个块的样本值的帧间预测或帧内预测进行编码和解码的图片。
双向预测性图片(B图片),其可以是可以使用利用至多两个运动矢量和参考索引来预测每个块的样本值的帧间预测或帧内预测进行编码和解码的图片。类似地,多预测性图片可以使用多于两个参考图片和相关联的元数据以用于重建单个块。
源图片通常可以在空间上细分为多个样本编码块(例如,分别为4×4、8×8、4×8或16×16样本的块),并且逐块进行编码。可以参考其他(已编码)块对这些块进行预测性编码,所述其他块通过应用于块的相应图片的编码分配来确定。例如,可以对I图片的块进行非预测性编码,或者可以参考同一图片的已编码块对I图片的块进行预测性编码(空间预测或帧内预测)。可以参考一个先前已编码参考图片经由空间预测或经由时间预测对P图片的像素块进行预测性编码。可以参考一个或两个先前已编码参考图片经由空间预测或经由时间预测对B图片的块进行预测性编码。源图片或中间处理的图片可以被细分成其他类型的块以用于其他目的。编码块和其他类型的块的划分可以遵循或可以不遵循相同的方式,如下面进一步详细描述的。
视频编码器(603)可以根据诸如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在视频编码器(603)的操作中,视频编码器(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拆分为一个或更多个预测单元(PU)。通常,每个PU包括亮度预测块(Prediction Block,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树结构可以被称为编码块树(Coding Block Tree,CBT)。
所有颜色通道的编码块可以被统称为编码单元(CU)。所有颜色通道的分层结构可以被统称为编码树单元(CTU)。CTU中针对各种颜色通道的分割模式或结构可以相同或不同。
在一些实现方式中,用于亮度通道和色度通道的分割树方案或结构可以不需要相同。换句话说,亮度通道和色度通道可以具有单独的编码树结构或模式。此外,亮度通道和色度通道使用相同的还是不同的编码分割树结构以及要使用的实际编码分割树结构可以取决于正在被编码的切片是P切片、B切片还是I切片。例如,对于I切片,色度通道和亮度通道可以具有单独的编码分割树结构或编码分割树结构模式,而对于P切或B切片,亮度通道和色度通道可以共享相同的编码分割树方案。当应用单独的编码分割树结构或模式时,可以通过一个编码分割树结构将亮度通道分割为CB,并且可以通过另一编码分割树结构将色度通道分割为色度CB。
在一些示例实现方式中,可以将预定分割模式应用于基本块。如图9所示,示例4路分割树可以从第一预定义级别(例如,64×64块级别或其他大小作为基本块大小)开始,并且基本块可以被分层地向下分割到预定义的最低级别(例如,4×4级别)。例如,基本块可以经受由902、904、906和908指示的四个预定义分割选项或模式,其中,指定为R的分区被允许用于递归分割,因为可以在较低的等级下重复如图9指示的相同分割选项直到最低级别(例如,4×4级别)。在一些实现方式中,可以对图9的分割方案应用附加限制。在图9的实现方式中,可以允许矩形分割(例如,1:2/2:1矩形分割),但是可以不允许矩形分割是递归的,而允许正方形分割是递归的。如果需要,遵循图9的递归情况下的分割生成最终的一组编码块。可以进一步限定编码树深度以指示从根节点或根块的拆分深度。例如,针对根节点或根块例如64×64块的编码树深度可以设置为0,并且在根块遵循图9被进一步拆分一次之后,编码树深度增加1。对于上述方案,从64×64基本块到4×4的最小分割的最大或最深级别将是4(从级别0开始)。这样的分割方案可以应用于一个或更多个颜色通道。可以遵循图9的方案独立地分割每个颜色通道(例如,针对每个分层级别处的颜色通道中的每一个可以独立地确定预定义模式中的分割模式或选项)。可替选地,颜色通道中的两个或更多个颜色通道可以共享图9的相同的分层模式树(例如,针对每个分层级别处的两个或更多个颜色通道可以选择预定义模式中的相同分割模式或选项)。
图10示出了允许递归分割以形成分割树的另一示例预定义分割模式。如图10所示,可以预定义示例10路分割结构或模式。根块可以在预定义级别处(例如,从128×128级别或64×64级别处的基本块)开始。图10的示例分割结构包括各种2:1/1:2和4:1/1:4矩形分割。图10的第二行中指示为1002、1004、1006和1008的具有3个子分区的分割类型可以被称为“T型”分割。“T型”分割1002、1004、1006和1008可以被称为左T型、顶T型、右T型和底T型。在一些示例实现方式中,图10的矩形分割不允许被进一步细分。可以进一步限定编码树深度以指示从根节点或根块的拆分深度。例如,针对根节点或根块例如128×128块的编码树深度可以设置为0,并且在根块遵循图10被进一步拆分一次之后,编码树深度增加1。在一些实现方式中,仅1010中的全正方形分割可以被允许遵循图10的模式递归分割到分割树的下一级别。换句话说,对于具有T型模式1002、1004、1006和1008的正方形分割,可以不允许递归分割。如果需要,遵循图10的递归情况下的分割生成最终的一组编码块。这样的方案可以应用于一个或更多个颜色通道。在一些实现方式中,可以为低于8×8级别的分割的使用添加更多的灵活性。例如,在某些情况下可以使用2×2色度帧间预测。
在用于编码块分割的一些其他示例实现方式中,四叉树结构可以用于将基本块或中间块拆分为四叉树分区。这样的四叉树拆分可以被分层和递归地应用于任何正方形形状的分区。基本块或中间块或分区是否被进一步四叉树拆分可以适于基本块或中间块/分区的各种局部特性。可以进一步调整图像边界处的四叉树分割。例如,可以在图片边界处执行隐式四叉树拆分,使得块将保持四叉树拆分直到大小适合图片边界。
在一些其他示例实现方式中,可以使用来自基本块的分层二元分割。对于这样的方案,可以将基本块或中间级别块分割为两个分区。二元分割可以是水平的或垂直的。例如,水平二元分割可以将基本块或中间块分割为相等的右分区和左分区。同样地,垂直二元分割可以将基本块或中间块拆分为相等的上分区和下分区。这样的二元分割可以是分层的和递归的。可以在基本块或中间块的每一者处作出下述决策:二元分割方案是否应当继续,并且如果该方案确实进一步继续进行,则应当使用水平二元分割还是垂直二元分割。在一些实现方式中,进一步分割可以在预定义的最低分割大小处(一个或两个维度中)结束。可替选地,一旦到达距基本块的预定义分割级别或深度就可以结束进一步分割。在一些实现方式中,可以限制分区的纵横比。例如,分区的纵横比可以不小于1:4(或大于4:1)。因此,具有4:1的垂直与水平纵横比的垂直条带分区可以仅被进一步垂直二元分割为均具有2:1的垂直与水平纵横比的上分区和下分区。
在又一些其他示例中,三元分割方案可以用于分割基本块或任何中间块,如图13所示。三元模式可以垂直地实施,如图13的1302所示,或者水平地实施,如图13的1304所示。虽然图13中的示例拆分比被垂直地或水平地示出为1:2:1,但是也可以预定义其他比率。在一些实现方式中,可以预定义两个或更多个不同的比率。这样的三元分割方案可以用于补充四叉树分割结构或二元分割结构,因为这样的三叉树分割能够在一个连续分区中捕获位于块中心的对象,而四叉树和二元树总是沿着块中心进行拆分并且因此将对象拆分为分离的分区。在一些实现方式中,示例三叉树的分区的宽度和高度总是2的幂以避免额外的变换。
上面的分割方案可以在不同的分割级别处以任何方式进行组合。作为一个示例,上述四叉树分割方案和二元分割方案可以进行组合以将基本块分割为四叉树-二叉树(Quadtree-Binary-Tree,QTBT)结构。在这样的方案中,根据一组预定义条件(如果指定),可以对基本块或中间块/分区进行四叉树拆分或二元拆分。在图14中示出了特定示例。在图14的示例中,基本块首先通过四叉树拆分为四个分区,如1402、1404、1406和1408所示。此后,所产生的分区中的每一个在下一级别处通过四叉树分割为四个另外的分区(例如1408),或者被二元拆分为两个另外的分区(例如,水平地或垂直地,例如1402或1406,两者都是对称的),或者不进行拆分(例如1404)。对于正方形形状的分区,可以递归地允许二元拆分或四叉树拆分,如1410的整个示例分区模式和1420中的对应的树结构/表示所示,其中,实线表示四叉树拆分并且虚线表示二元拆分。针对每个二元拆分节点(非叶二元分区)可以使用标志以指示二元拆分是水平的还是垂直的。例如,如1420所示,与1410的分割结构一致,标志“0”可以表示水平二元拆分并且标志“1”可以表示垂直二元拆分。对于四叉树拆分分区,不需要指示拆分类型,因为四叉树拆分总是水平地且竖直地对块或分区进行拆分以产生具有相等大小的4个子块/分区。在一些实现方式中,标志“1”可以表示水平二元拆分并且标志“0”可以表示垂直二元拆分。
在QTBT的一些示例实现方式中,四叉树和二元拆分规则集可以由以下预定义参数和与其相关联的对应函数来表示:
–CTU大小:四叉树的根节点大小(基本块的大小)
–MinQTSize:允许的最小四叉树叶节点大小
–MaxBTSize:允许的最大二叉树根节点大小
–MaxBTDepth:允许的最大二叉树深度
–MinBTSize:允许的最小二叉树叶节点大小
在QTBT分割结构的一些示例实现方式中,CTU大小可以被设置为128×128亮度样本与两个对应的64×64的色度样本块(当考虑并使用示例色度子采样时),MinQTSize可以被设置为16×16,MaxBTSize可以被设置为64×64,MinBTSize(针对宽度和高度两者)可以被设置为4×4,并且MaxBTDepth可以被设置为4。四叉树分割可以首先应用于CTU以生成四叉树叶节点。四叉树叶节点可以具有从其允许的16×16的最小大小(即,MinQTSize)至128×128(即,CTU大小)的大小。如果节点为128×128,则由于大小超过了MaxBTSize(即64×64)而不会首先通过二叉树对该节点进行拆分。否则,不超过MaxBTSize的节点可以通过二叉树进行分割。在图14的示例中,基本块为128×128。根据预定义的规则集,基本块可以仅进行四叉树拆分。基本块具有为0的分割深度。所产生的四个分区中的每一个为64×64,没有超过MaxBTSize,可以在级别1处被进一步四叉树或二叉树拆分。继续进行该处理。当二叉树深度达到MaxBTDepth(即,4)时,可以考虑不进行进一步拆分。当二叉树节点具有等于MinBTSize(即,4)的宽度时,可以考虑不进行进一步的水平拆分。类似地,当二叉树节点具有等于MinBTSize的高度时,不考虑进一步的垂直拆分。
在一些示例实现方式中,上述QTBT方案可以被配置成支持亮度和色度具有相同的QTBT结构或单独的QTBT结构的灵活性。例如,针对P切片和B切片,一个CTU中的亮度CTB和色度CTB可以共享相同的QTBT结构。然而,对于I切片,亮度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结构去除了多个分割类型的构思,即,这样的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级别,对于所有三色通道)下做出关于是使用帧间图片(时间)预测还是帧内图片(空间)预测来编码图片区域的决策。可以根据预定义的PB拆分类型将每个CB进一步拆分为一个、两个、四个或其他数目个PB。在一个PB内部,可以应用相同的预测处理,并且可以以PB为基础将相关信息发送至解码器。在通过应用基于PB拆分类型的预测处理获得残差块之后,可以根据与用于CB的编码树类似的另一四叉树结构将CB分割为TB。在该特定实现方式中,CB或TB可以但不必限于正方形形状。此外,在该特定示例中,针对帧间预测PB可以为正方形或矩形形状,而针对帧内预测PB可以仅为正方形。编码块可以被拆分为例如四个正方形形状的TB。每个TB可以被进一步递归地拆分(使用四叉树拆分)为更小的TB,这被称为残差四叉树(Residual Quad-Tree,RQT)。
下面进一步描述用于将基本块分割为CB、PB和/或TB的另一示例实施方式。例如,不是使用诸如图9或图10所示的那些分割单元类型的多个分割单元类型,而是可以使用具有使用二元和三元拆分分区结构(例如,QTBT或具有如上所述的三元拆分的QTBT)的嵌套多类型树的四叉树。可以放弃CB、PB和TB的分离(即,将CB分割为PB和/或TB,以及将PB分割为TB),除了在下述情况下:需要具有对于最大变换长度而言太大的大小的CB,其中,这样的CB可能需要进一步拆分。该示例分割方案可以被设计成支持针对CB分区形状的更多灵活性,使得预测和变换都可以在CB级别上执行而无需进一步划分。在这样的编码树结构中,CB可以具有正方形或矩形形状。具体地,可以首先通过四叉树结构分割编码树块(CTB)。然后,可以通过嵌套多类型树结构进一步分割四叉树叶节点。图11中示出了使用二元或三元拆分的嵌套多类型树结构的示例。具体地,图11的示例多类型树结构包括四种拆分类型,被称为垂直二元拆分(SPLIT_BT_VER)(1102)、水平二元拆分(SPLIT_BT_HOR)(1104)、垂直三元拆分(SPLIT_TT_VER)(1106)和水平三元拆分(SPLIT_TT_HOR)(1108)。然后,CB对应于多类型树的叶。在该示例实现方式中,除非CB对于最大变换长度而言太大,否则该分区被用于预测和变换处理两者,而无需任何进一步分割。这意味着,在大多数情况下,CB、PB和TB在具有嵌套的多类型树编码块结构的四叉树中具有相同的块大小。例外发生在最大支持变换长度小于CB的颜色分量的宽度或高度的情况下。在一些实现方式中,除了二元或三元拆分之外,图11的嵌套模式还可以包括四叉树拆分。
图12中示出了具有用于一个基本块的块分割的嵌套多类型树编码块结构(包括四叉树、二元和三元拆分选项)的四叉树的一个具体示例。更详细地,图12示出了基本块1200通过四叉树拆分为四个正方形分区1202、1204、1206和1208。针对四叉树拆分分区中的每一个做出进一步使用图11的多类型树结构和四叉树进行进一步拆分的决策。在图12的示例中,分区1204未被进一步拆分。分区1202和1208均采用另一四叉树拆分。对于分区1202,第二级别四叉树拆分的左上、右上、左下和右下分区分别采用第三级别的四叉树拆分、图11的水平二元拆分1104、非拆分和图11的水平三元拆分1108。分区1208采用另一四叉树拆分,并且第二级别四叉树拆分的左上、右上、左下和右下分区分别采用第三级别的图11的垂直三元拆分1106拆分、非拆分、非拆分和图11的水平二元拆分1104。1208的第三级别左上分区的子分区中的两个子分区分别根据图11的水平二元拆分1104和水平三元拆分1108被进一步拆分。分区1206采用遵循图11的垂直二元拆分1102的第二级别拆分模式而形成两个分区,所述两个分区在第三级别中根据图11的水平三元拆分1108和垂直二元拆分1102被进一步拆分。根据图11的水平二元拆分1104,对所述分区中的一个分区进一步应用第四级别拆分。
对于上面的具体示例,最大亮度变换大小可以为64×64,并且最大支持的色度变换大小可以不同于亮度例如32×32。虽然图12中的上述示例CB通常不被进一步拆分为较小的PB和/或TB,但是当亮度编码块或色度编码块的宽度或高度大于最大变换宽度或高度时,亮度编码块或色度编码块可以在水平和/或垂直方向上被自动拆分以满足该方向上的变换大小限制。
在用于将基本块分割为上述CB的具体示例中,并且如上所述,编码树方案可以支持亮度和色度具有单独的块树结构的能力。例如,对于P切片和B切片,一个CTU中的亮度CTB和色度CTB可以共享相同的编码树结构。例如,对于I切片,亮度和色度可以具有单独的编码块树结构。当应用单独的块树结构时,可以通过一个编码树结构将亮度CTB分割为亮度CB,并且通过另一编码树结构将色度CTB分割为色度CB。这意味着I切片中的CU可以包括亮度分量的编码块或两个色度分量的编码块,而P切片或B切片中的CU总是包括所有三个颜色分量的编码块,除非视频是单色的。
当编码块被进一步分割为多个变换块时,该编码块中的变换块可以遵循各种顺序或扫描方式在比特流中排序。下面进一步详细描述用于将编码块或预测块分割为变换块以及变换块的编码顺序的示例实现方式。在一些示例实现方式中,如上所述,变换分割可以支持多种形状例如1:1(正方形)、1:2/2:1和1:4/4:1的变换块,其中,变换块大小范围从例如4×4到64×64。在一些实现方式中,如果编码块小于或等于64×64,则变换块分割可以仅应用于亮度分量,使得对于色度块,变换块大小与编码块大小相同。否则,如果编码块宽度或高度大于64,则亮度编码块和色度编码块两者都可以分别隐式地拆分为多个min(W,64)×min(H,64)变换块和min(W,32)×min(H,32)变换块。
在变换块分割的一些示例实现方式中,对于帧内编码块和帧间编码块两者,可以将编码块进一步分割为具有多至预定义数目个级别(例如,2个级别)的分割深度的多个变换块。变换块分割深度和大小可以是相关的。对于一些示例实现方式,下面在表1中示出了从当前深度的变换大小到下一深度的变换大小的映射。
表1:变换分割大小设置
基于表1的示例映射,对于1:1正方形块,下一级别变换拆分可以创建四个1:1正方形子变换块。变换分割可以例如在4×4处停止。因此,当前深度4×4的变换大小对应于下一深度的4×4的相同大小。在表1的示例中,对于1:2/2:1非正方形块,下一级别变换拆分可以创建两个1:1正方形子变换块,而对于1:4/4:1非正方形块,下一级别变换拆分可以创建两个1:2/2:1子变换块。
在一些示例实现方式中,对于帧内编码块的亮度分量,可以关于变换块分割应用附加限制。例如,对于每个级别的变换分割,可以将所有子变换块限制为具有相等的大小。例如,对于32×16编码块,级别1变换拆分创建两个16×16子变换块,级别2变换拆分创建八个8×8子变换块。换句话说,第二级别拆分必须应用于所有第一级别子块,以将变换单元保持为相等大小。图15中示出了遵循表1的针对帧内编码正方形块的变换块分割以及由箭头示出的编码顺序的示例。具体地,1502示出了正方形编码块。在1504中示出了根据表1的到4个大小相等的变换块的第一级别拆分,其中,编码顺序由箭头指示。在1506中示出了根据表1的所有第一级别大小相等的块到16个大小相等的变换块的第二级别的拆分,其中,编码顺序由箭头指示。
在一些示例实现方式中,对于帧间编码块的亮度分量,可以不应用对帧内编码的以上限制。例如,在第一级别的变换拆分之后,可以将子变换块中的任何一个进一步独立地拆分为更高一个级别。因此,所产生的变换块可以具有或可以不具有相同的大小。图16中示出了将帧间编码块拆分为变换块以及变换块的编码顺序的示例。在图16的示例中,根据表1,帧间编码块1602被拆分为两个级别的变换块。在第一级别处,帧间编码块被拆分为四个大小相等的变换块。然后,四个变换块中仅一个变换块(而非所有的变换块)被进一步拆分为四个子变换块,从而产生具有两种不同大小的总共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的分割方案为任何给定变换类型(变换类型是指例如主变换的类型,例如ADST及其他)提供多至6个示例分割类型。在该方案中,可以基于例如率失真成本向每个编码块或预测块分配变换分割类型。在示例中,可以基于编码块或预测块的变换类型来确定分配给编码块或预测块的变换分割类型。特定变换分割类型可以对应于变换块拆分大小和模式(或分割类型),如图17所示的6个变换分割类型所示出的。可以预定义各种变换类型与各种变换分割类型之间的对应关系。下面示出了示例,其中,大写标记指示可以基于率失真成本分配给编码块或预测块的变换分割类型:
·PARTITION_NONE:分配等于块大小的变换大小
·PARTITION_SPLIT:分配为块大小的1/2宽度和块大小的1\2高度的变换大小。
·PARTITION_HORZ:分配具有与块大小相同的宽度和块大小的1\2高度的变换大小。
·PARTITION_VERT:分配具有块大小的1\2宽度和与块大小相同的高度的变换大小。
·PARTITION_HORZ4:分配具有与块大小相同的宽度和块大小的1\4高度的变换大小。
·PARTITION_VERT4:分配具有块大小的1\4宽度和与块大小相同的高度的变换大小。
在上面的示例中,如图17所示的变换分割类型针对经分割的变换块全部包含均匀的变换大小。这仅是示例而不是限制。在一些其他实现方式中,针对特定分割类型(或模式)下的经分割的变换块,可以使用混合变换块大小。
根据以上任何分割方案获得的PB(或CB,当未被进一步分割为预测块时也称为PB)然后可以变成用于经由帧内预测或帧间预测进行编码的单独的块。对于用于当前PB的帧间预测,可以生成当前块与预测块之间的残差、对所述残差进行编码以及将所述残差包括在编码比特流中。
帧间预测可以例如以单参考模式或复合参考模式来实现。在一些实现方式中,可以首先在针对当前块的比特流中(或在较高级别处)包括跳过标志以指示当前块是否被帧间编码并且不跳过当前块。如果当前块被帧间编码,则可以在比特流中进一步包括另一标志作为用于指示使用单参考模式还是复合参考模式来进行当前块的预测的信号。对于单参考模式,可以使用一个参考块来生成针对当前块的预测块。对于复合参考模式,可以使用两个或更多个参考块以例如通过加权平均来生成预测块。复合参考模式可以称为不止一个参考模式、两个参考模式或多个参考模式。可以使用参考帧索引或多个参考帧索引以及另外使用指示参考块与当前块之间在位置上例如在水平像素和垂直像素中的移位的相应的运动矢量或多个运动矢量来识别一个或多个参考块。例如,在单参考模式下,针对当前块的帧间预测块可以根据被参考帧中的一个运动矢量识别的单个参考块被生成预测块,而对于复合参考模式,预测块可以通过两个参考帧中的由两个参考帧索引和两个对应的运动矢量指示的两个参考块的加权平均来生成。可以以各种方式将运动矢量编码并包括在比特流中。
在一些实现方式中,编码或解码系统可以维护解码图片缓冲器(Decoded PictureBuffer,DPB)。一些图像/图片可以保持在DPB中以等待显示(在解码系统中),并且DPB中的一些图像/图片可以用作参考帧以使得能够进行帧间预测(在解码系统或编码系统中)。在一些实现方式中,DPB中的参考帧可以被标记为用于正在编码或解码的当前图像的短期参考或长期参考。例如,短期参考帧可以包括下述帧,所述帧用于按照解码顺序对当前帧中的块或与当前帧最接近的预定义数目(例如,2)个后续视频帧中的块进行帧间预测。长期参考帧可以包括DPB中的下述帧,所述帧可以用于按照解码顺序对与当前帧相距多于预定义数目个帧的帧中的图像块进行预测。关于用于短期参考帧和长期参考帧的这种标签的信息可以被称为参考图片集(Reference Picture Set,RPS),并且可以被添加到已编码比特流中的每个帧的报头。可以通过图片顺序计数器(Picture Order Counter,POC)来识别已编码视频流中的每个帧,所述帧根据回放顺序以绝对方式进行编号或者与例如从I帧开始的图片组相关。
在一些示例实现方式中,可以基于RPS中的信息来形成包含用于帧间预测的短期参考帧和长期参考帧的标识的一个或更多个参考图片列表。例如,针对单向帧间预测可以形成单个图片参考列表,表示为L0参考(或参考列表0),而针对双向帧间预测可以形成两个图片参考列表,表示为L0(或参考列表0)和L1(或参考列表1)以用于两个预测方向中的相应方向。包括在L0列表和L1列表中的参考帧可以以各种预定方式进行排序。L0列表和L1列表的长度可以用信号通知在视频比特流中。单向帧间预测可以在单参考模式下进行,或者当在复合预测模式下用于通过加权平均生成预测块的多个参考在要预测的块的同一侧时在复合参考模式下进行。双向帧间预测可以仅在复合模式下进行,因为双向帧间预测涉及至少两个参考块。
在一些实现方式中,可以实现用于帧间预测的合并模式(Merge Mode,MM)。通常,对于合并模式,用于当前PB的单参考预测中的运动矢量或复合参考预测中的运动矢量中的一个或更多个运动矢量可以从其他运动矢量导出,而不是单独地计算并且用信号通知这些运动矢量。例如,在编码系统中,用于当前PB的当前运动矢量可以由该当前运动矢量与其他一个或更多个已经编码的运动矢量(被称为参考运动矢量)之间的差来表示。这样的运动矢量差而不是当前运动矢量的整体可以被编码并且包括在比特流中,并且可以与参考运动矢量关联。相应地,在解码系统中,可以基于已解码运动矢量差和与该已解码运动矢量差关联的已解码参考运动矢量导出与当前PB对应的运动矢量。作为一般合并模式(MM)帧间预测的具体形式,这种基于运动矢量差的帧间预测可以被称为利用运动矢量差的合并模式(MergeMode with Motion Vector Difference,MMVD)。因此,可以实现MM(一般地)或者MMVD(特别地)以利用与不同PB相关联的运动矢量之间的相关性来提高编码效率。例如,邻近的PB可能具有类似的运动矢量,并且因此MVD可能小并且可以被有效地编码。对于另一示例,对于在空间中被类似地确定位置/定位的块,运动矢量可以在时间上(在帧之间)相关。
在一些示例实现方式中,在编码处理期间可以在比特流中包括MM标志,以用于指示当前PB是否处于合并模式下。附加地或替选地,在编码处理期间可以在比特流中包括MMVD标志并且用信号通知该MMVD标志,以指示当前PB是否处于MMVD模式下。MM标志和/或MMVD标志或指示符可以设置在PB级别、CB级别、CU级别、CTB级别、CTU级别、切片级别、图片级别等处。对于特定示例,针对当前CU可以包括MM标志和MMVD标志两者,并且可以在跳过标志和MM标志之后立即用信号通知该MMVD标志,以指定针对当前CU是否使用MMVD模式。
在MMVD的一些示例实现方式中,可以针对正在被预测的块形成用于运动矢量预测的参考运动矢量(Reference Motion Vector,RMV)候选或MV预测器候选的列表。RMV候选列表可以包含预定数目(例如,2)个MV预测器候选块,所述MV预测器候选块的运动矢量可以用于预测当前运动矢量。RMV候选块可以包括选自同一帧中的邻近块以及/或者时间块(例如,在当前帧的前一帧或后续帧中的相同定位的块)的块。这些选项表示在相对于当前块的空间位置或时间位置处、可能具有与当前块相似或相同的运动矢量的块。可以预确定MV预测器候选列表的大小。例如,列表可以包含两个或更多个候选。为了成为RMV候选列表的成员,候选块例如可能需要:具有与当前块相同的一个或多个参考帧;必须存在(例如,在当前块靠近帧的边缘时,需要执行边界检查);以及在编码处理期间必须已经被编码和/或在解码处理期间必须已经被解码。在一些实现方式中,如果空间上邻近的块可用并且满足上面的条件,则可以首先用所述空间上邻近的块(以特定的预定义顺序进行扫描)来填充合并候选列表;并且然后如果该列表中仍然有可用空间,则用时间块来填充该合并候选列表。例如,邻近的RMV候选块可以选自当前块的左侧块和顶部块。可以在各种级别(序列、图片、帧、切片、超块等)处动态地形成RMV预测器候选列表作为动态参考列表(Dynamic ReferenceList,DRL)。可以将DRL用信号通知在比特流中。
在一些实现方式中,可以用信号通知被用作用于预测当前块的运动矢量的参考运动矢量的实际MV预测器候选。在RMV候选列表包含两个候选的情况下,可以使用一比特标志(被称为合并候选标志)来指示对参考合并候选的选择。对于正在复合模式下预测的当前块,使用MV预测器预测的多个运动矢量中的每一个可以与来自合并候选列表的参考运动矢量相关联。编码器可以确定RMV候选中的哪一个更接近地预测了当前编码块的MV,并且将该选择作为索引用信号通知到DRL中。
在MMVD的一些示例实现方式中,在选择了RMV候选并且将其用作用于要预测的运动矢量的基本运动矢量预测器之后,可以在编码系统中计算运动矢量差(Motion VectorDifference,MVD或增量MV,其表示要预测的运动矢量与参考候选运动矢量之间的差)。这样的MVD可以包括表示MV差的幅值和MV差的方向的信息,所述MV差的幅值和MV差的方向两者可以用信号通知在比特流中。可以以各种方式用信号通知运动差的幅值和运动差的方向。
在MMVD的一些示例实现方式中,距离索引可以用于指定运动矢量差的幅值信息以及指示一组预定义偏移中的一个预定义偏移,所述预定义偏移表示距起始点(参考运动矢量)的预定义运动矢量差。然后,可以将根据用信号通知的索引的MV偏移添加至起始(参考)运动矢量的水平分量或垂直分量。可以通过MVD的方向信息来确定参考运动矢量的水平分量或垂直分量是否应当偏移。表2中指定了距离索引与预定义偏移之间的示例预定义关系。
表2—距离索引与预定义MV偏移的示例关系
在MMVD的一些示例实现方式中,还可以用信号通知方向索引,并且方向索引用于表示MVD相对于参考运动矢量的方向。在一些实现方式中,方向可以被限制为水平方向和垂直方向中的任一者。表3中示出了示例2比特方向索引。在表3的示例中,对MVD的解释可以根据起始/参考MV的信息而变化。例如,当起始/参考MV对应于单向预测块或者对应于其中两个参考帧列表指向当前图片的同一侧(即,两个参考图片的POC都大于当前图片的POC,或者都小于当前图片的POC)的双向预测块时,表3中的符号可以指定被添加至起始/参考MV的MV偏移的符号(方向)。在起始/参考MV对应于其中两个参考图片在当前图片的不同侧(即,一个参考图片的POC大于当前图片的POC,而另一参考图片的POC小于当前图片的POC)处的双向预测块并且图片参考列表0中的参考POC与当前帧之间的差比图片参考列表1中的参考POC与当前帧的之间差大时,表3中的符号可以指定被添加至与图片参考列表0中的参考图片对应的参考MV的MV偏移的符号,并且与图片参考列表1中的参考图片对应的MV的偏移的符号可以具有相反值(相反的偏移的符号)。否则,如果图片参考列表1中的参考POC与当前帧之间的差比图片参考列表0中的参考POC与当前帧之间的差大,那么表3中的符号可以指定被添加至与图片参考列表1相关联的参考MV的MV偏移的符号,并且与图片参考列表0相关联的参考MV的偏移的符号具有相反的值。
表3—由方向索引指定的MV偏移的符号的示例实现方式
方向索引 | 00 | 01 | 10 | 11 |
x轴(水平) | + | – | 不适用 | 不适用 |
y轴(垂直) | 不适用 | 不适用 | + | – |
在一些示例实现方式中,MVD可以根据POC在每个方向上的差来缩放。如果两个列表中的POC的差相同,则不需要缩放。否则,如果参考列表0中的POC的差大于参考列表1中的POC的差,则对参考列表1的MVD进行缩放。如果参考列表1的POC的差大于列表0,则可以以相同的方式对列表0的MVD进行缩放。如果起始MV是单向预测的,则将MVD添加至可用MV或参考MV。
在用于双向复合预测的MVD编码和信令的一些示例实现方式中,除了单独编码并且用信号通知两个MVD之外或者作为单独编码并且用信号通知两个MVD的替代,可以实现对称MVD编码,使得仅一个MVD需要用信号通知而另一个MVD可以从用信号通知的MVD导出。在这样的实现方式中,用信号通知包括列表0和列表1两者的参考图片索引的运动信息。然而,仅用信号通知与例如参考列表0相关联的MVD,并且不用信号通知而是导出与参考列表1相关联的MVD。具体地,在切片级别上,比特流中可以包括被称为“mvd_l1_zero_flag”的标志,用于指示是否不在比特流中用信号通知参考列表1。如果该标志为1,指示参考列表1等于零(并且因此不用信号通知),则双向预测标志(被称为“BiDirPredFlag”)可以设置为0,意味着不存在双向预测。否则,如果mvd_l1_zero_flag为0,在列表0中的最近的参考图片和列表1中的最近的参考图片形成前向和后向的一对参考图片或者后向和前向的一对参考图片的情况下,BiDirPredFlag可以设置为1,并且列表0参考图片和列表1参考图片两者都是短期参考图片。否则,BiDirPredFlag设置为0。BiDirPredFlag为1可以指示在比特流中附加地用信号通知对称模式标志。当BiDirPredFlag为1时,解码器可以从比特流中提取对称模式标志。对称模式标志例如可以在CU级别上用信号通知(如果需要),并且该对称模式标志可以指示对称MVD编码模式是否正被用于相应的CU。当对称模式标志为1时,其指示使用对称MVD编码模式,并且用信号通知列表0和列表1两者的仅参考图片索引(被称为“mvp_l0_flag”和“mvp_l1_flag”)以及与列表0相关联的MVD(被称为“MVD0”),而另一运动矢量差“MVD1”将被导出而不是用信号通知。例如,MVD1可以导出为-MVD0。因此,在示例对称MVD模式中,仅用信号通知一个MVD。在MV预测的一些其他示例实现方式中,对于单参考模式和复合参考模式的MV预测两者,可以使用协调方案来实现一般合并模式、MMVD以及一些其他类型的MV预测。可以使用各种语法元素来用信号通知预测当前块的MV的方式。
例如,对于单参考模式,可以用信号通知以下MV预测模式:
NEARMV-直接使用由DRL(动态参考列表)索引指示的列表中的运动矢量预测器(Motion Vector Predictor,MVP)中的一个运动矢量预测器,而不使用任何MVD。
NEWMV-使用通过DRL索引用信号通知的列表中的运动矢量预测器(MVP)中的一个运动矢量预测器作为参考,并且向该MVP施加增量(例如,使用MVD)。
GLOBALMV-使用基于帧级别全局运动参数的运动矢量。
同样地,对于使用与要预测的两个MV对应的两个参考帧的复合参考帧间预测模式,可以用信号通知以下MV预测模式:
NEAR_NEARMV-针对要预测的MV中的两个MV中的每一个,使用通过DRL索引用信号通知的列表中的运动矢量预测器(MVP)中的一个运动矢量预测器,而不使用MVD。
NEAR_NEWMV-对于预测两个运动矢量中的第一运动矢量,使用通过DRL索引用信号通知的列表中的运动矢量预测器(MVP)中的一个运动矢量预测器作为参考MV,而不使用MVD;对于预测两个运动矢量中的第二运动矢量,使用通过DRL索引用信号通知的列表中的运动矢量预测器(MVP)中的一个运动矢量预测器作为参考MV并结合附加地用信号通知的增量MV(MVD)。
NEW_NEARMV-对于预测两个运动矢量中的第二运动矢量,使用通过DRL索引用信号通知的列表中的运动矢量预测器(MVP)中的一个运动矢量预测器作为参考MV,而不使用MVD;对于预测两个运动矢量中的第一运动矢量,使用通过DRL索引用信号通知的列表中的运动矢量预测器(MVP)中的一个运动矢量预测器作为参考MV并结合附加地用信号通知的增量MV(MVD)。
NEW_NEWMV-针对两个MV中的每个MV,使用通过DRL索引用信号通知的列表中的运动矢量预测器(MVP)中的一个运动矢量预测器作为参考MV并且将其与附加地用信号通知的增量MV结合使用以进行预测。
GLOBAL_GLOBALMV-使用基于其帧级别全局运动参数的来自每个参考的MV。
因此,上面的术语“NEAR”是指如一般合并模式一样使用参考MV而不是MVD进行的MV预测;而术语“NEW”是指涉及使用参考MV并且如在MMVD模式中那样使用用信号通知的MVD对该参考MV进行偏移的MV预测。对于复合帧间预测,上面的参考基本运动矢量和运动矢量增量在两个参考之间通常可以是不同的或独立的,即使所述两个参考可能是相关的也是如此,并且可以利用这种相关性来减少用信号通知两个运动矢量增量所需的信息量。在这种情况下,可以在比特流中实现并指示两个MVD的联合信令。
上面的动态参考列表(DRL)可以用于保存一组带索引的运动矢量,所述运动矢量被动态地保持并且被视为候选运动矢量预测器。
在一些示例实现方式中,可以允许预定义MVD的像素分辨率。例如,可以允许1/8像素的运动矢量精度(或准确度)。在各种MV预测模式中上面描述的MVD可以以各种方式来构建并且用信号通知。在一些实现方式中,可以使用各种语法元素来用信号通知上面参考帧列表0或列表1中的运动矢量差。
例如,被称为“mv_joint”的语法元素可以指定与其相关联的运动矢量差中的哪个分量是非零的。对于MVD,针对所有非零分量联合地用信号通知mv_joint。例如:
mv_joint的值为0可以指示沿水平方向或垂直方向不存在非零MVD;
mv_joint的值为1可以指示仅沿水平方向存在非零MVD;
mv_joint的值为2可以指示仅沿垂直方向存在非零MVD;
mv_joint的值为3可以指示沿水平方向和垂直方向两者存在非零MVD。
当MVD的“mv_joint”语法元素表示不存在非零MVD分量时,接下来不用信号通知另外的MVD信息。然而,如果“mv_joint”语法表示存在一个或两个非零分量,接下来可以针对非零MVD分量中的每一个进一步用信号通知附加的语法元素,如下面描述的。
例如,被称为“mv_sign”的语法元素可以用于附加地指定相应的运动矢量差分量是正的还是负的。
对于另一示例,被称为“mv_class”的语法元素可以用于在预定义的一组等级中指定相应的非零MVD分量的运动矢量差的等级。预定义的运动矢量差等级例如可以用于将连续的运动矢量差幅值空间划分为不重叠的范围,其中,每个范围对应于一个MVD等级。因此,用信号通知的MVD等级指示对应的MVD分量的幅值范围。在下面表4所示的示例实现方式中,较高的等级对应于具有较大幅值范围的运动矢量差。在表4中,符号(n,m]用于表示大于n个像素并且小于或等于m个像素的运动矢量差范围。
表4:运动矢量差的幅值等级
MV等级 | MVD的幅值 |
MV_CLASS_0 | (0,2] |
MV_CLASS_1 | (2,4] |
MV_CLASS_2 | (4,8] |
MV_CLASS_3 | (8,16] |
MV_CLASS_4 | (16,32] |
MV_CLASS_5 | (32,64] |
MV_CLASS_6 | (64,128] |
MV_CLASS_7 | (128,256] |
MV_CLASS_8 | (256,512] |
MV_CLASS_9 | (512,1024] |
MV_CLASS_10 | (1024,2048] |
在一些其他示例中,被称为“mv_bit”的语法元素可以进一步用于指定非零运动矢量差分量与相应地用信号通知的MV等级幅值范围的起始幅值之间的偏移的整数部分。因此,mv_bit可以指示MVD的幅值或振幅。“my_bit”中的用信号通知每个MVD等级的全范围所需的比特数可以根据MV等级而不同。对于该示例,表4的实现方式中的MV_CLASS 0和MV_CLASS 1可以仅需要单个比特来指示从为0的起始MVD起整数像素偏移1或2;表4的示例实现方式中的每个较高的MV_CLASS可能需要与前一个MV_CLASS相比较递增地多一个比特的“mv_bit”。
在一些其他示例中,被称为“mv_fr”的语法元素可以进一步用于指定相应的非零MVD分量的运动矢量差的前2个分数比特,而被称为“mv_hp”的语法元素可以用于指定相应的非零MVD的运动矢量差的第三分数比特(高分辨率比特)。两比特“mv_fr”基本上提供了1/4像素的MVD分辨率,而“mv_hp”比特可以进一步提供1/8像素的分辨率。在一些其他实现方式中,多于一个的“mv_hp”比特可以用于提供比1/8像素精细的MVD像素分辨率。在一些示例实现方式中,可以在各种级别中的一个或更多个级别处用信号通知附加标志,以指示是否支持1/8像素或更高的MVD分辨率。如果MVD分辨率没有被应用于特定的编码单元,则可以不用信号通知针对相应的不支持的MVD分辨率的上述语法元素。
在上面的一些示例实现方式中,分数分辨率可以独立于不同等级的MVD。换句话说,无论运动矢量差的幅值如何,都可以使用预定义数目个“mv_fr”比特和“mv_hp”比特来提供针对运动矢量分辨率的类似选项,以用信号通知非零MVD分量的分数MVD。
然而,在一些其他示例实现方式中,在各种MVD幅值等级中运动矢量差的分辨率可以有所不同。具体地,针对较高MVD等级的大的MVD幅值的高分辨率MVD可能不提供压缩效率的统计学上的显著改善。因此,对于与较高的MVD幅值等级对应的较大的MVD幅值范围,可以用减小的分辨率(整数像素分辨率或分数像素分辨率)对MVD进行编码。同样地,通常对于较大的MVD值,可以用减小的分辨率(整数像素分辨率或分数像素分辨率)对MVD进行编码。这种MVD等级相关或MVD幅值相关的MVD分辨率通常可以被称为自适应MVD分辨率、幅值相关自适应MVD分辨率或幅值相关MVD分辨率。术语“分辨率”还可以被称为“像素分辨率”。可以以如下面通过示例实现方式描述的各种方式来实现自适应MVD分辨率,以实现总体更好的压缩效率。特别地,由于以非自适应的方式以与低幅值或低等级MVD的MVD分辨率类似的水平对大幅值或高级别MVD的MVD分辨率进行处理可能不会显著地增加具有大幅值或高级别MVD的块的帧间预测残差编码效率的统计学观察,因此通过以不太精确的MVD为目标而减少的信令比特数可能大于由于这种不太精确的MVD导致的对帧间预测残差进行编码所需的附加比特。换句话说,针对大幅值或高级别MVD使用较高的MVD分辨率相对于使用较低的MVD分辨率可能不会产生很高的编码增益。
在一些一般示例实现方式中,MVD的像素分辨率或精度可以随着MVD等级的增加而降低或者可以不增加。降低的MVD的像素分辨率对应于更粗糙的MVD(或从一个MVD水平至下一MVD水平的较大步长)。在一些实现方式中,可以指定、预定义或预配置MVD像素分辨率与MVD等级之间的对应关系,并且因此可以不需要将该对应关系用信号通知在编码比特流中。
在一些示例实现方式中,表3的MV等级可以各自与不同的MVD像素分辨率相关联。
在一些示例实现方式中,每个MVD等级可以与单个允许的分辨率相关联。在一些其他实现方式中,一个或更多个MVD等级可以与两个或更多个可选的MVD像素分辨率相关联。因此,比特流中针对具有这种MVD等级的当前MVD分量的信号之后可以是用于指示针对当前MVD分量选择的可选像素分辨率的附加信令。
在一些示例实现方式中,自适应允许的MVD像素分辨率可以包括但不限于1/64像素(pel)、1/32像素、1/16像素、1/8像素、1-4像素、1/2像素、1像素、2像素、4像素……(按分辨率的降序)。因此,升序的MVD等级中的每一个可以以非升序的方式与这些MVD像素分辨率中的一个MVD像素分辨率相关联。在一些实现方式中,MVD等级可以与上面的两个或更多个分辨率相关联,并且较高分辨率可以低于或等于前一MVD等级的较低分辨率。例如,如果表4的MV_CLASS_3与可选的1像素分辨率和2像素分辨率相关联,则可以与表4的MV_CLASS_4相关联的最高分辨率可以是2像素。在一些其他实现方式中,MV等级的最高可允许分辨率可以高于前一(较低)MV等级的最低可允许分辨率。然而,升序的MV等级的允许分辨率的一般情况可能只能是非升序的。
在一些实现方式中,当允许高于1/8像素的分数像素分辨率时,“mv_fr”和“mv_hp”信令可以相应地扩展为多于总共3个分数比特。
在一些实现方式中,分数像素分辨率仅允许用于低于或等于MVD等级阈值的MVD等级。例如,分数像素分辨率可以仅允许用于表4的MVD_CLASS 0而不允许用于所有其他MV等级。同样地,分数像素分辨率可以仅允许用于低于或等于表4的其他MV等级中的任一者的MVD等级。对于高于MVD等级阈值的其他MVD等级,针对MVD仅允许整数像素分辨率。以这样的方式,对于用信号通知的具有高于或等于MVD等级阈值的MVD等级的MVD,可以不需要用信号通知分数分辨率信令例如“mv_fr”比特和/或“mv_hp”比特中的一个或更多个。对于分辨率低于1像素的MVD等级,“mv-bit”信令中的比特数可以进一步减少。例如,对于表4中的MV_CLASS_5,MVD像素偏移的范围是(32,64],因此在1像素分辨率情况下需要5个比特来用信号通知整个范围。然而,如果MV_CLASS_5与2像素MVD分辨率(低于1像素分辨率)相关联,则“mv-bit”可能需要4比特而不是5比特,并且在将“mv_class”用信号通知为MV-CLASS_5之后,不需要用信号通知“mv-fr”和“mv-hp”。
在一些示例实现方式中,分数像素分辨率可以仅允许用于具有低于整数像素值阈值的整数值的MVD。例如,分数像素分辨率可以仅允许用于小于5像素的MVD。与该示例对应地,分数分辨率可以允许用于表4的MV_CLASS_0和MV_CLASS_1而不允许用于所有其他MV等级。对于另一示例,分数像素分辨率可以仅允许用于小于7像素的MVD。与该示例对应地,分数分辨率可以允许用于表4的MV_CLASS_0和MV_CLASS_1(具有低于5像素的范围)而不允许用于MV_CLASS_3和更高的等级(具有高于5像素的范围)。对于属于其像素范围包括5像素的MV_CLASS_2的MVD,取决于“mv-bit”值,可以允许或者可以不允许MVD的分数像素分辨率。如果“mv-bit”值被信号通知为1或2(使得用信号通知的MVD的整数部分为5或6——被计算为MV_CLASS_2的像素范围的起始并且具有如由“mv-bit”所指示的偏移1或2),则可以允许分数像素分辨率。否则,如果“mv-bit”值被信号通知为3或4(使得用信号通知的MVD的整数部分为7或8),则可以不允许分数像素分辨率。
在一些其他实现方式中,对于等于或高于MV等级阈值的MV等级,可以仅允许单个MVD值。例如,这样的MV等级阈值可以是MV_CLASS_2。因此,可以仅允许MV_CLASS_2及以上具有单个MVD值并且不具有分数像素分辨率。可以预定义这些MV等级的单个允许MVD值。在一些示例中,允许的单个值可以是表4中的这些MV等级的相应范围的较高端值。例如,MV_CLASS_2至MV_CLASS_10可以高于或等于MV_CLASS 2的等级阈值,并且这些等级的单个允许MVD值可以被分别预定义为8、16、32、64、128、256、512、1024和2048。在一些其他示例中,允许的单个值可以是表4中的这些MV等级的相应范围的中间值。例如,MV_CLASS_2至MV_CLASS_10可以高于等级阈值,并且这些等级的单个允许的MVD值可以被分别预定义为3、6、12、24、48、96、192、384、768和1536。该范围内的任何其他值也可以被限定为相应MVD等级的单个允许的分辨率。
在上面的实现方式中,当用信号通知的“mv_class”等于或高于预定义的MVD等级阈值时,仅“mv_class”信令就足以确定MVD值。然后,将使用“mv_class”和“mv_sign”来确定MVD的幅值和方向。
因此,当针对仅一个参考帧(来自参考帧列表0或参考帧列表1,但不是来自两者)用信号通知MVD或者针对两个参考帧联合地用信号通知MVD时,MVD的精度(或分辨率)可以取决于表3中的相关联的运动矢量差等级以及/或者MVD的幅值。
在一些其他实现方式中,MVD的像素分辨率或精度可以随着MVD幅值的增加而减小或者可以不增加。例如,像素分辨率可以取决于MVD幅值的整数部分。在一些实现方式中,分数像素分辨率可以仅允许用于小于或等于振幅阈值的MVD幅值。对于解码器,可以首先从比特流中提取MVD幅值的整数部分。然后,可以确定像素分辨率,并且然后可以作出关于下述的决定:比特流中是否存在任何分数MVD以及是否需要对该分数MVD进行解析(例如,如果分数像素分辨率不允许用于特定的所提取的MVD整数幅值,那么需要提取的比特流中可以不包括分数MVD比特)。上面与MVD等级相关自适应MVD像素分辨率有关的示例实现方式适用于MVD幅值相关自适应MVD像素分辨率。对于特定示例,可以允许高于或包括幅值阈值的MVD等级具有仅一个预定义的值。
对于当前编码块,在单帧间预测模式或复合帧间预测模式下并且无论用于帧间预测的一个或多个运动矢量是否基于MVD,一旦确定了当前编码块相对于参考帧的运动矢量,就可以根据该参考帧生成预测器块(在编码器或解码器中)。在一些实现方式中,可以经由基于相应运动矢量对预测帧中的样本进行内插来生成或导出相应预测帧中的预测器块。例如,在一些情况下,与用于当前编码块的参考帧对应的运动矢量可以是分数的。具体地,被指示为是运动矢量参考列表中的多个参考运动矢量之一的运动矢量在水平维度或垂直维度中的一者或两者上可以是分数的。对于另一示例,MVD在水平维度或垂直维度中的一者或两者上可以是分数的。在这种情况下,如由相应参考帧中的运动矢量指示的预测器块可能不直接与该参考帧中的特定样本块重合,而是需要在样本块之间进行内插。
例如,这样的内插可以通过应用被称为内插滤波器的滤波器来实现。应用于特定的当前编码块的内插滤波器可以选自一组预定的或预配置的内插滤波器。可以在两个维度(水平维度和垂直维度)中的每一者上单独地实现内插滤波。因此,内插滤波器可以实现为可以在水平维度或垂直维度上应用的一维滤波器。在一些实现方式中,这些内插滤波器中的一些内插滤波器可以包括预定义的有限脉冲响应(Finite Impulse Response,FIR)滤波器。例如,预定的或预配置的内插滤波器可以包括但不限于6抽头常规FIR滤波器(REGULAR)、6抽头FIR滤波器(SMOOTH)、8抽头FIR滤波器(SHARP)和2抽头BILINEAR滤波器等。
在一些实现方式中,当启用双滤波器模式时,可以独立地实现水平维度和垂直维度上的内插滤波器。可以在各种级别处(例如,在序列报头、图片报头、帧报头、切片报头、编码树级别、宏块级别、块级别中)用信号通知是否启用双滤波器模式。对于双滤波器模式,可以在上面的各种级别处另外单独地用信号通知在两个维度中的每一者上所使用的内插滤波器。否则,当未启用双滤波器模式时,可以用信号通知选择仅一个内插滤波器,以供编码块在水平维度和垂直维度两者上使用/共享。可以在上面的各种级别处另外用信号通知所使用的内插滤波器。可以单独指定可供在双滤波器模式下和单滤波器模式下进行选择的两组内插滤波器。所述两组内插滤波器可以是同一组的滤波器或不同组的滤波器。
统计研究表明,当使用运动矢量差(MVD)和参考运动矢量(MV)来导出编码块的实际MV时,取决于该MVD的幅值和/或像素分辨率,某些类型的内插滤波器在用于生成预测块时可以有助于提供比其他类型的内插滤波器好的编码增益。因此,对于某些MVD幅值或者像素分辨率值或值范围,可以将一组缩减的内插滤波器预定义为候选内插滤波器,以在保持可忽略的编码增益降低的同时提高信令效率。
同样地,统计研究还表明,取决于块的实际MV的幅值和/或像素分辨率,某些类型的内插滤波器在用于生成预测块时可以有助于提供比其他类型的内插滤波器好的编码增益。因此,对于某些MV幅值或者像素分辨率值或值范围,可以将一组缩减的内插滤波器预定义为候选内插滤波器,以在保持可忽略的编码增益降低的同时提高信令效率。实际的MV可以是在视频流中直接用信号通知的MV,或者可以作为参考运动矢量用信号通知在上面描述的DRL中,或者可以是DRL中的参考运动矢量与MVD的组合。
在一些实现方式中,MV幅值或MVD幅值可以用作选择内插滤波器的基础。例如,可以预定义MV幅值或MVD幅值的一个或更多个值或值范围。MV幅值或MVD幅值的值或值范围中的每一者可以与整个候选内插滤波器集中的预定的内插滤波器子集预先相关联。因此,可以预定义MV幅值或MVD幅值的值或值范围与内插滤波器子集之间的映射并且因此为编码器和解码器所知。然后,与特定的MV幅值或MVD幅值的值或值范围对应的内插滤波器子集可以在编码处理期间由编码器确定,并且还可以由解码器基于对应的MV幅值或MVD幅值的值或值范围导出,而无需依靠比特流中的任何附加信令。
同样地,MV像素分辨率或MVD像素分辨率可以用于选择内插滤波器。例如,可以预定义MV像素分辨率或MVD像素分辨率的一个或更多个值或值范围。MV像素分辨率或MVD像素分辨率的值或值范围中的每一者可以与整个候选内插滤波器集中的预定的内插滤波器子集相关联。因此,可以预定义MV像素分辨率或MVD像素分辨率的值或值范围与内插滤波器子集之间的映射并且因此为编码器和解码器所知。然后,与特定的MV像素分辨率或MVD像素分辨率的值或值范围对应的内插滤波器子集可以在编码处理期间由编码器确定,并且还可以由解码器基于对应的MV像素分辨率或MVD像素分辨率的值或值范围导出,而无需依靠比特流中的任何附加信令。
用于不同MV幅值或像素分辨率或者MVD幅值或像素分辨率的上面的内插滤波器子集中的每个子集中的内插滤波器数目可以不同。在一些实现方式中,上面的特定内插滤波器子集可以包括两个或更多个候选内插滤波器。在这种情况下,对于相应的MV幅值或像素分辨率或者MVD幅值或像素分辨率的值或值范围,编码器还可以在各种级别(例如,块级别、切片级别、帧级别、图片级别、序列级别等)处从内插滤波器子集中选择特定的滤波器(例如,通过选择提供更好的编码增益的滤波器),并且可以将相应的信令(被称为内插滤波器选择指示符)包括在比特流中,以指示从通过MV幅值或像素分辨率或者MVD幅值或像素分辨率的值或值范围预定义的内插滤波器子集中选择了特定滤波器。因为内插滤波器子集包括与整个候选内插滤波器集相比较的更少的可能数目的滤波器,因此在子集内选择特定滤波器的信令需要较少的比特,从而致使信令效率提高。
在一些其他实现方式中,上面特定的内插滤波器子集可以仅包括单个默认内插滤波器。在这种情况下,相应MVD幅值的值或值范围被直接映射至默认的预定义内插滤波器。因此,不需要在比特流中包括用于选择特定的预定义内插滤波器的附加信令。可以直接根据MVD幅值的值或值范围来识别预定义的默认内插滤波器。
在一些示例实现方式中,可以预定义MV幅值或像素分辨率或者MVD幅值或像素分辨率的阈值水平,以描绘上面各种幅值或像素分辨率的值范围。在一些特定的实现方式中,可以预定义单个阈值水平以将MV幅值或像素分辨或者MVD幅值或像素分辨率描绘为两个范围,一个范围高于阈值水平而另一个范围不高于阈值水平,两个范围各自对应于预定义的内插滤波器子集。
例如,可以预定义MV幅值或MVD幅值的阈值水平。对于具有高于阈值水平的MV幅值或MVD幅值的块,可以将第一预定义子集的内插滤波器用作候选内插滤波器,而对于具有不高于阈值水平的MV幅值或MVD幅值的块,可以将第二预定义子集的内插滤波器用作候选内插滤波器。可以在比特流中附加地用信号通知对滤波器子集内的特定内插滤波器的选择。对于特定示例,与高于阈值水平的MV幅值或MVD幅值对应的第一内插滤波器子集可以包括单个默认内插滤波器,而与不高于阈值水平的MV幅值或MVD幅值对应的第二内插滤波器子集可以包括整个(或较小的)候选内插滤波器集。在这样的实现方式中,如果MV幅值或MVD幅值高于阈值水平,则不需要用于内插滤波器选择的附加信令。
对于另一示例,可以预定义MV像素分辨率或MVD像素分辨率的阈值水平。对于具有低于阈值水平的MV像素分辨率或MVD像素分辨率的块,可以将第一预定义子集的内插滤波器用作候选内插滤波器,而对于具有不低于阈值水平的MV像素分辨率或MVD像素分辨率的块,可以将第二预定义子集的内插滤波器用作候选内插滤波器。可以在比特流中附加地用信号通知对滤波器子集内的特定内插滤波器的选择。对于特定示例,与低于阈值水平的MV像素分辨率或MVD像素分辨率对应的第一内插滤波器子集可以包括单个默认内插滤波器,而与不低于阈值水平的MV像素分辨率或MVD像素分辨率对应的第二内插滤波器子集可以包括整个(或较小的)候选内插滤波器集。在这样的实现方式中,如果MV像素分辨率或MVD像素分辨率低于阈值水平,则不需要用于内插滤波器选择的附加信令。
在一些示例实现方式中,MVD幅值水平可以由上面关于表4描述的MV等级索引来表示。因此,表4中示例性示出的各个MV等级可以使用一组MV阈值等级而被描绘为另外两个等级范围。每个MV等级范围可以对应于默认的预定义内插滤波器子集。对于特定示例,可以预定义单个MV等级阈值以提供两个MV等级范围。具体地,MV等级阈值可以设置为MV_CLASS_0。替选地,MV等级阈值可以设置为MV_CLASS_1或其他MV等级。以MV等级阈值MV_CLASS_1为例,高于MV_CLASS_1的MV等级(包括MV_CLASS_2至MV_CLASS_10)的等级范围可以与第一预定义默认内插滤波器子集相关联,而MV等级MV_CLASS_0和MV_CLASS_1可以与第二预定义默认内插滤波器子集相关联。例如,与MV_CLASS_2至MV_CLASS_10对应的第一内插滤波器子集可以包括单个默认的内插滤波器。例如,与MV_CLASS_0和MV_CLASS_1对应的第二内插滤波器子集可以包括整个(或较小的)候选内插滤波器集。
在一些示例实现方式中,MVD像素分辨率级别可以被划分为各种预定义范围,所述各种预定义范围各自对应于预定义的内插滤波器子集。在如上所述的自适应MVD实现方式中,特定块的MVD像素分辨率可以是整个候选像素分辨率集中的一个候选像素分辨率,包括但不限于1/64、1/32、1/16、1/8、1/4、1/2、1、2、4、……。虽然可以预定义对像素分辨率范围的任何类型的划分,但是在一些特定的实现方式中,可以将可用的MVD像素分辨率划分为两个范围,第一范围是1像素及以下的MVD像素分辨率(较低的像素分辨率对应于较高的像素值,因此第一范围包括1、2、4、……像素分辨率),而第二范围是高于1像素的MVD像素分辨率(包括上面所有分数像素分辨率)。第一范围可以与第一默认的内插滤波器子集相关联,而第二范围可以与第二默认的内插滤波器子集相关联。第一子集例如可以包括单个默认内插滤波器,而第二子集例如可以包括整个(或较小的)候选内插滤波器集。
在一些特定示例实现方式中,当不允许分数MVD用于编码块时,内插滤波器子集可以不是整个候选内插滤波器集。换句话说,在这样的实现方式中,仅允许内插滤波器子集而不是整个候选内插滤波器集。具体地,当不允许分数MVD时,可以仅存在单个内插滤波器子集以供选择。单个内插滤波器子集可以是整个可允许候选内插滤波器集的一部分。例如,内插滤波器子集可以包括REGULAR滤波器和SMOOTH滤波器。在一些其他示例实现方式中,单个内插滤波器子集可以包括单个默认内插滤波器。换句话说,对于其中不允许分数MVD的MVD实现方式,可以预定义单个默认内插滤波器。在这样的实现方式中,当在自适应MVD实现方式中不允许分数MVD时,在比特流中可以不需要用于内插滤波器选择的信令。单个默认内插滤波器例如可以是REGULAR滤波器、SMOOTH滤波器、SHARP滤波器或BILINEAR滤波器中的一个。
在一些其他实现方式中,如上所述,可以预定义MVD振幅(由表4的MV等级索引表示)与自适应MVD像素分辨率之间的对应关系或映射。在这种情况下,出于映射至不同的内插滤波器子集的目的而将MV等级预定义划分为不同的范围可以等同于将MVD像素分辨率划分为不同的像素分辨率范围或者与将MVD像素分辨率划分为不同的像素分辨率范围相协调。
上面的示例实施方式认识到统计研究表明:在较高的MVD幅值或较低的MVD像素分辨率下,与使用较小的候选内插滤波器集或者甚至单个默认内插滤波器相比较,使用整个可用候选内插滤波器集来进行选择不能提供很高的编码增益,同时需要较高的信令开销。
在上面各种示例实现方式中,整个候选内插滤波器集可以包括但不限于6抽头常规FIR滤波器(REGULAR)、6抽头FIR滤波器(SMOOTH)、8抽头FIR滤波器(SHARP)和2抽头BILINEAR滤波器等中的一个或更多个。内插滤波器子集可以是整个候选内插滤波器集内的滤波器的任何组合。内插滤波器子集的特定示例可以包括REGULAR滤波器和SMOOTH滤波器。当滤波器子集包括单个默认内插滤波器时,这样的默认内插滤波器可以是整个候选内插滤波器集内的任何滤波器。特别地,单个默认滤波器可以被预定义为REGULAR滤波器和SMOOTH滤波器中的一个。
在上面的实现方式中的一些实现方式中,选择内插滤波器(例如在内插滤波器的子集或整个内插滤波器集中)的信令可以在根据MV幅值或像素分辨率或者MVD幅值或像素分辨率的上下文下被熵编码。对于特定示例,熵编码上下文可以基于是否应用自适应MVD分辨率以及/或者基于MVD像素分辨率或MVD的MV等级来确定。例如,当应用了自适应MVD分辨率时,MVD像素分辨率或MV等级可以被划分成与多个内插滤波器子集相关联的多个范围。选择每个子集内的内插滤波器的信令可以使用特定的上下文集来编码。因此,每个MVD像素分辨率范围或MV等级范围或内插滤波器子集将对应于编码上下文集。这些编码上下文集可以单独确定,以使编码效率最大化。
在一些示例实现方式中,这些MVD像素分辨率范围或MV等级范围可以由多个阈值描绘。在一个示例实现方式中,可以预定义由单个阈值描绘的两个范围。该阈值(MVD像素分辨率阈值或MV等级索引阈值)用于确定所述两个范围和对应的预定义内插滤波器子集。第一内插滤波器子集内的信令可以在第一上下文集下来编码,而第二内插滤波器子集的信令可以在第二上下文集下来编码。这样的实现方式可以提供进一步的编码增益,因为每个子集内的滤波器的数目是不同的并且每个子集内的滤波器选择统计相对于许多编码块也可以是不同的。
图18示出了遵循上面的实现方式的基本原理的用于选择和用信号通知内插滤波器的示例方法的流程图1800。该示例方法流在1801处开始。在S1810中,接收视频流中的标志。在S1820中,基于所接收的标志确定要根据运动矢量(MV)通过参考帧对视频块进行帧间预测。在S1830中,根据该视频块的参考MV和MVD(MV差)导出该MV。在S1840中,导出指示内插滤波器的信号,其中,该信号至少基于该MVD的幅值和分辨率中的一者。在S1850中,根据该信号选择内插滤波器。在S1860中,根据该MV和所选内插滤波器通过该参考帧针对该视频块执行帧间预测。该示例方法在S1899处结束。
在本公开内容的实施方式和实现方式中,任何步骤和/或操作可以根据需要以任何量或顺序进行组合或布置。所述步骤和/或操作中的两个或更多个步骤和/或操作可以并行执行。本公开内容中的实施方式和实现方式可以单独使用或以任何顺序组合使用。此外,方法(或实施方式)、编码器和解码器中的每一者可以通过处理电路系统(例如,一个或更多个处理器或者一个或更多个集成电路)来实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。本公开内容中的实施方式可以应用于亮度块或色度块。术语块可以被解释为预测块、编码块或编码单元即CU。术语块此处也可以用于指代变换块。在以下项中,当指明块的大小时,可以指的是块的宽度或高度、或者块的宽度和高度的最大值、或者块的宽度和高度的最小值、或者块的面积大小(宽度*高度)、或者块的纵横比(宽度:高度或高度:宽度)。
上面描述的技术可以实现为使用计算机可读指令的计算机软件并且物理地存储在一个或更多个计算机可读介质中。例如,图19示出了适合于实现所公开的主题的某些实施方式的计算机系统(1900)。
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,所述指令可以由一个或更多个计算机中央处理单元(Central Processing Unit,CPU)、图形处理单元(GraphicsProcessing Unit,GPU)等直接执行或者通过解译、微代码执行等来执行。
指令可以在各种类型的计算机或其部件上执行,包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
图19中示出的用于计算机系统(1900)的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应当被解释为具有与计算机系统(1900)的示例性实施方式中示出的部件中的任何一个部件或部件的组合有关的任何依赖性或要求。
计算机系统(1900)可以包括某些人机接口输入设备。这样的人机接口输入设备可以对由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未描绘)进行的输入作出响应。人机接口设备还可以用于捕获不一定与人类的意识输入直接相关的某些媒体,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静态图像摄像装置获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
输入人机接口设备可以包括下述中的一个或更多个(描绘了每者中的仅一个):键盘(1901)、鼠标(1902)、触控板(1903)、触摸屏(1910)、数据手套(未示出)、操纵杆(1905)、麦克风(1906)、扫描仪(1907)和摄像装置(1908)。
计算机系统(1900)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括:触觉输出设备(例如,通过触摸屏(1910)、数据手套(未示出)或操纵杆(1905)进行的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备);音频输出设备(例如:扬声器(1909)、头戴式耳机(未描绘));视觉输出设备(例如,屏幕(1910),包括CRT(Cathode Ray Tube,CRT)屏幕、LCD(Liquid Crystal Display,LCD)屏幕、等离子屏幕、OLED(Organic Light Emitting Diode,OLED)屏幕,每者均具有或不具有触摸屏输入能力,每者均具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘);全息显示器和烟罐(未描绘));以及打印机(未描绘)。
计算机系统(1900)还可以包括人类可以访问的存储设备及其相关联的介质,例如,包括具有CD/DVD等介质(1921)的CD/DVD ROM(Read Only Memory,ROM)/RW(1920)的光学介质、拇指驱动器(1922)、可移除硬盘驱动器或固态驱动器(1923)、诸如磁带和软盘(未描绘)的遗留磁性介质、基于专用ROM/ASIC(Application Specific Integrated Circuit,ASIC)/PLD(Programmable Logic Device,PLD)的设备例如安全加密狗(未描绘)等。
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其他瞬态信号。
计算机系统(1900)还可以包括到一个或更多个通信网络(1955)的接口(1954)。网络可以例如是无线的、有线的、光学的。网络还可以是局域的、广域的、城域的、车载和工业的、实时的、延时容忍的等。网络的示例包括:局域网例如以太网;无线LAN(Local AreaNetwork,LAN);包括GSM(Global System for Mobile Communications,GSM)、3G(theThird Generation,3G)、4G(the Fourth Generation,4G)、5G(the Fifth Generation,5G)、LTE(Long Term Evolution,LTE)等的蜂窝网络;包括线缆TV、卫星TV和地面广播TV的TV有线或无线广域数字网络;包括CAN总线的车辆和工业网络等。某些网络通常需要附接至某些通用数据端口或外围总线(1949)(诸如,例如计算机系统(1900)的USB端口)的外部网络接口适配器;其他网络通常通过附接至如下所述的系统总线(例如,到PC计算机系统中的以太网接口或者到智能电话计算机系统中的蜂窝网络接口)集成到计算机系统(1900)的核中。使用这些网络中的任何网络,计算机系统(1900)可以与其他实体进行通信。这样的通信可以是仅单向接收的(例如,广播TV)、仅单向发送的(例如,至某些CAN总线设备的CAN总线)、或双向的,例如,到使用局域数字网络或广域数字网络至其他计算机系统。可以在如上所述的这些网络和网络接口中的每一个上使用某些协议和协议栈。
上面提及的人机接口设备、人类可访问的存储设备和网络接口可以附接至计算机系统(1900)的核(1940)。
核(1940)可以包括一个或更多个中央处理单元(CPU)(1941)、图形处理单元(GPU)(1942)、现场可编程门区域(Field Programmable Gate Area,FPGA)形式的专用可编程处理单元(1943)、用于某些任务的硬件加速器(1944)、图形适配器(1950)等。这些设备连同只读存储器(ROM)(1945)、随机存取存储器(1946)、内部大容量存储装置(1947)例如内部非用户可访问的硬盘驱动器、SSD(Solid State Drive,SSD)等可以通过系统总线(1948)连接。在一些计算机系统中,系统总线(1948)可以以一个或更多个物理插头的形式访问,以使得能够通过附加的CPU、GPU等进行扩展。外围设备可以直接地或通过外围总线(1949)附接至核的系统总线(1948)。在示例中,屏幕(1910)可以连接至图形适配器(1950)。外围总线的架构包括PCI(Peripheral Component Interconnect/Interface,PCI)、USB(UniversalSerial Bus,USB)等。
CPU(1941)、GPU(1942)、FPGA(1943)和加速器(1944)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(1945)或RAM(RandomAccess Memory,RAM)(1946)中。暂态数据也可以存储在RAM(1946)中,而永久数据可以存储在例如内部大容量存储装置(1947)中。可以通过使用缓存存储器来实现对存储设备中的任何存储设备的快速存储和检索,该缓存存储器可以与一个或更多个CPU(1941)、GPU(1942)、大容量存储装置(1947)、ROM(1945)、RAM(1946)等紧密相关联。
计算机可读介质在其上可以具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以具有计算机软件领域的技术人员公知且可用的类型。
作为非限制示例,具有架构的计算机系统(1900)并且特别是核(1940)可以由于处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一个或更多个有形计算机可读介质中的软件而提供功能。这样的计算机可读介质可以是与如以上所介绍的用户可访问的大容量存储装置相关联的介质,以及具有非暂态性的核(1940)的某些存储装置,例如,核内部大容量存储装置(1947)或ROM(1945)。实现本公开内容的各种实施方式的软件可以存储在这样的设备中并且由核(1940)执行。根据特定需要,计算机可读介质可以包括一个或更多个存储器设备或者芯片。软件可以使核(1940)并且特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在RAM(1946)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或作为替选方案,计算机系统可以提供由于逻辑硬连线而提供或以其他方式体现在电路(例如:加速器(1944))中的结果的功能,所述逻辑硬连线或电路可以代替软件或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,对软件的引用可以包含逻辑,并且对逻辑的引用也可以包含软件。在适当的情况下,对计算机可读介质的引用可以包含存储用于执行的软件的电路(例如集成电路(IC))、实施用于执行的逻辑的电路或上述两者。本公开内容包含硬件和软件的任何合适的组合。
虽然本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的变更、置换和各种替代等同方案。因此将认识到,本领域技术人员将能够设想出许多系统和方法,虽然这些系统和方法未在本文中明确示出或描述,但是体现了本公开内容的原理并因此在本公开内容的精神和范围内。
附录A:首字母缩略词
JEM:联合开发模型
VVC:通用视频编码
BMS:基准集
MV:运动矢量
HEVC:高效视频编码
SEI:辅助增强信息
VUI:视频可用性信息
GOP:图片群组
TU:变换单元
PU:预测单元
CTU:编码树单元
CTB:编码树块
PB:预测块
HRD:假设参考解码器
SNR:信噪比
CPU:中央处理单元
GPU:图形处理单元
CRT:阴极射线管
LCD:液晶显示器
OLED:有机发光二极管
CD:致密盘
DVD:数字视频盘
ROM:只读存储器
RAM:随机存取存储器
ASIC:专用集成电路
PLD:可编程逻辑器件
LAN:局域网
GSM:全球移动通信系统
LTE:长期演进
CANBus:控制器区域网络总线
USB:通用串行总线
PCI:外围元件互连
FPGA:现场可编程门区域
SSD:固态硬盘
IC:集成电路
HDR:高动态范围
SDR:标准动态范围
JVET:联合视频探索组
MPM:最可能模式
WAIP:广角帧内预测
CU:编码单元
PU:预测单元
TU:变换单元
CTU:编码树单元
PDPC:位置相关预测组合
ISP:帧内子划分
SPS:序列参数设置
PPS:图片参数集
APS:自适应参数集
VPS:视频参数集
DPS:解码参数集
ALF:自适应环路滤波器
SAO:样本自适应偏移
CC-ALF:交叉分量自适应环路滤波器
CDEF:约束定向增强滤波器
CCSO:交叉分量样本偏移
LSO:局部样本偏移
LR:环路恢复滤波器
AV1:开放媒体联盟视频1
AV2:开放媒体联盟视频2
MVD:运动矢量差
CfL:根据亮度预测色度
SDT:半解耦树
SDP:半解耦分割
SST:半分离树
SB:超级块
IBC(或IntraBC):帧内块复制
CDF:累积密度函数
SCC:屏幕内容编码
GBI:广义双向预测
BCW:具有CU级权重的双向预测
CIIP:组合帧内-帧间预测
POC:图片顺序计数
RPS:参考图片集
DPB:解码图片缓冲器
MMVD:具有运动矢量差的合并模式。
Claims (20)
1.一种用于对视频流的视频块进行处理的方法,包括:
接收所述视频流中的标志;
基于所接收的标志确定要根据运动矢量(MV)通过参考帧对所述视频块进行帧间预测;
根据所述视频块的参考MV和MVD(MV差)导出所述MV;
导出指示内插滤波器的信号,其中,所述信号至少基于所述MVD的幅值和分辨率中的一者;
根据所述信号选择所述内插滤波器;以及
根据所述MV和所选内插滤波器通过所述参考帧对所述视频块执行帧间预测。
2.根据权利要求1所述的方法,其中,导出所述信号包括:
基于与所述视频块相关联的MV等级索引来确定所述MVD的幅值,所述MV等级索引从所述视频流中提取;以及
当所述MV等级索引不低于MV等级索引阈值时,导出用于默认使用预定义内插滤波器的信号。
3.根据权利要求2所述的方法,其中,所述预定义内插滤波器包括在下述多个内插滤波器中,所述多个内插滤波器形成用于具有低于所述MV等级索引阈值的MV等级索引的视频块的候选内插滤波器的池。
4.根据权利要求2所述的方法,其中,所述预定义内插滤波器包括REGULAR内插滤波器、SMOOTH内插滤波器、SHARP内插滤波器或BILINEAR内插滤波器。
5.根据权利要求1所述的方法,其中,导出所述信号包括:
确定将自适应像素分辨率应用于所述MVD;
在多个自适应MVD像素分辨率中确定所述MVD的像素分辨率;以及
响应于所述MVD的像素分辨率处于一个或更多个预定义水平,导出用于默认使用预定义内插滤波器的信号。
6.根据权利要求5所述的方法,其中,所述一个或更多个预定义水平包括不高于预定义的MVD像素分辨率阈值的MVD分辨率水平。
7.根据权利要求6所述的方法,其中,基于从所述视频流中提取的所述视频块的MV等级索引来确定所述MVD的像素分辨率。
8.根据权利要求7所述的方法,其中,所述预定义的MVD像素分辨率阈值对应于MV等级索引阈值。
9.根据权利要求5所述的方法,其中,所述预定义内插滤波器包括在下述多个内插滤波器中,所述多个内插滤波器形成用于具有不同于所述一个或更多个预定义水平的自适应MVD像素分辨率的视频块的候选内插滤波器的池。
10.根据权利要求5所述的方法,其中,所述预定义内插滤波器包括REGULAR内插滤波器、SMOOTH内插滤波器、SHARP内插滤波器或BILINEAR内插滤波器中的一个。
11.根据权利要求1至10中任一项所述的方法,其中,导出所述信号包括:
从所述视频流中确定与所述MVD的幅值对应的MV等级索引;
当所述MV的MV等级索引不低于预定义的MV等级索引阈值时,默认使用内插滤波器集中的预定义内插滤波器子集;以及
从所述视频流中提取选择指示符作为用于从所述预定义内插滤波器子集中选择所述内插滤波器的信号。
12.根据权利要求11所述的方法,其中,所述预定义内插滤波器子集包括REGULAR内插滤波器和SMOOTH内插滤波器。
13.根据权利要求1至10中任一项所述的方法,其中,导出所述信号包括:
确定将自适应像素分辨率应用于所述MVD;
在多个自适应MVD像素分辨率中确定所述MVD的像素分辨率;
响应于所述MVD的像素分辨率不大于预定义的MVD像素分辨率阈值,默认使用内插滤波器集中的预定义内插滤波器子集;以及
从所述视频流中提取选择指示符作为用于从所述预定义内插滤波器子集中选择所述内插滤波器的信号。
14.根据权利要求13所述的方法,其中,所述预定义内插滤波器子集包括REGULAR内插滤波器和SMOOTH内插滤波器。
15.根据权利要求1至10中任一项所述的方法,其中,导出所述信号包括:
确定将自适应像素分辨率应用于所述视频块的所述MVD;
在多个自适应MVD像素分辨率中确定所述MVD的像素分辨率,或者在多个MV等级索引中确定所述MV的MV等级索引;
基于所述MVD的像素分辨率或所述MV等级索引来识别用于对内插滤波器选择指示符进行编码的上下文集;以及
根据所述上下文集对所述视频流进行解码,以获得所述内插滤波器选择指示符作为所述信号。
16.根据权利要求1至10中任一项所述的方法,其中,导出所述信号包括:
确定将自适应像素分辨率应用于所述MVD;
在多个MV等级索引中确定所述视频块的MV等级索引;
当所述MV等级索引不小于MV等级索引阈值时,使用第一上下文集对所述视频流进行解码,以获得内插滤波器选择指示符作为所述信号;以及
当所述MV等级索引小于所述MV等级索引阈值时,使用不同于所述第一上下文集的第二上下文集对所述视频流进行解码,以获得所述内插滤波选择指示符作为所述信号。
17.根据权利要求1至10中任一项所述的方法,其中,导出所述信号包括:响应于确定所述MVD的MVD像素分辨率是非分数的,导出用于默认使用所述内插滤波器的所述信号。
18.根据权利要求1至10中任一项所述的方法,其中,导出所述信号包括:
响应于确定所述MVD的MVD像素分辨率是非分数的,默认使用内插滤波器集中的预定义内插滤波器子集;以及
从所述视频流中提取选择指示符作为用于从所述预定义内插滤波器子集中选择所述内插滤波器的所述信号。
19.根据权利要求18所述的方法,其中,所述预定义内插滤波器子集包括REGULAR内插滤波器和SMOOTH内插滤波器。
20.一种用于对视频流的视频块进行处理的装置,包括缓冲存储器和处理电路,所述处理电路被配置成:
接收所述视频流中的标志,并且将所述视频流存储在所述缓冲存储器中;
基于所接收的标志确定要根据运动矢量(MV)通过参考帧对所述视频块进行帧间预测;
根据所述视频块的参考MV和MVD(MV差)导出所述MV;
导出指示内插滤波器的信号,其中,所述信号至少基于所述MVD的幅值和分辨率中的一者;
根据所述信号选择所述内插滤波器;以及
根据所述MV和所选内插滤波器通过所述参考帧针对所述视频块执行帧间预测。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163286327P | 2021-12-06 | 2021-12-06 | |
US63/286,327 | 2021-12-06 | ||
US17/956,559 US20230179763A1 (en) | 2021-12-06 | 2022-09-29 | Interpolation Filters for Adaptive Motion Vector Difference Resolution |
US17/956,559 | 2022-09-29 | ||
PCT/US2022/046011 WO2023107187A1 (en) | 2021-12-06 | 2022-10-07 | Interpolation filters for adaptive motion vector difference resolution |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116636210A true CN116636210A (zh) | 2023-08-22 |
Family
ID=86607145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280008452.7A Pending CN116636210A (zh) | 2021-12-06 | 2022-10-07 | 用于自适应运动矢量差分辨率的内插滤波器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230179763A1 (zh) |
EP (1) | EP4445612A1 (zh) |
KR (1) | KR20230140456A (zh) |
CN (1) | CN116636210A (zh) |
WO (1) | WO2023107187A1 (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107925772A (zh) * | 2015-09-25 | 2018-04-17 | 华为技术有限公司 | 利用可选插值滤波器进行视频运动补偿的装置和方法 |
US20200359045A1 (en) * | 2018-09-23 | 2020-11-12 | Beijing Bytedance Network Technology Co., Ltd. | Modification of motion vector with adaptive motion vector resolution |
WO2021000883A1 (en) * | 2019-07-04 | 2021-01-07 | Beijing Bytedance Network Technology Co., Ltd. | Storage of motion information in history-based motion vector prediction table |
US20210044824A1 (en) * | 2019-08-05 | 2021-02-11 | Tencent America LLC | Method and apparatus for video coding |
WO2021030502A1 (en) * | 2019-08-12 | 2021-02-18 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and apparatuses for adaptive motion vector resolution in video coding |
WO2021032143A1 (en) * | 2019-08-20 | 2021-02-25 | Beijing Bytedance Network Technology Co., Ltd. | Selective use of alternative interpolation filters in video processing |
US20210274217A1 (en) * | 2018-06-29 | 2021-09-02 | Electronics And Telecommunications Research Institute | Image encoding/decoding method and apparatus for throughput enhancement, and recording medium storing bitstream |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RS56176B1 (sr) * | 2010-09-30 | 2017-11-30 | Samsung Electronics Co Ltd | Postupak za interpolaciju slika pomoću filtera za interpolaciju i uglačavanje |
US20120230407A1 (en) * | 2011-03-11 | 2012-09-13 | General Instrument Corporation | Interpolation Filter Selection Using Prediction Index |
US10531116B2 (en) * | 2014-01-09 | 2020-01-07 | Qualcomm Incorporated | Adaptive motion vector resolution signaling for video coding |
US10419755B2 (en) * | 2016-05-16 | 2019-09-17 | Qualcomm Incorporated | Confusion of multiple filters in adaptive loop filtering in video coding |
EP3264768A1 (en) * | 2016-06-30 | 2018-01-03 | Thomson Licensing | Method and apparatus for video coding with adaptive motion information refinement |
US11356693B2 (en) * | 2016-09-29 | 2022-06-07 | Qualcomm Incorporated | Motion vector coding for video coding |
CN116320495A (zh) * | 2016-11-28 | 2023-06-23 | 韩国电子通信研究院 | 用于滤波的方法和装置 |
EP4018652A4 (en) * | 2019-09-22 | 2022-11-02 | Beijing Bytedance Network Technology Co., Ltd. | FILLING METHOD IN AN ADAPTIVE LOOP FILTER |
JP7326600B2 (ja) * | 2019-09-27 | 2023-08-15 | 北京字節跳動網絡技術有限公司 | 異なるビデオユニット間の適応ループフィルタリング |
CN114556923B (zh) * | 2019-10-03 | 2023-03-10 | 华为技术有限公司 | 编码器、解码器和使用插值滤波的对应方法 |
EP4029263A4 (en) * | 2019-10-10 | 2022-12-07 | Beijing Bytedance Network Technology Co., Ltd. | FILLING PROCEDURE AT UNAVAILABLE SAMPLING POINTS IN AN ADAPTIVE LOOP FILTERING |
US11418792B2 (en) * | 2020-03-27 | 2022-08-16 | Tencent America LLC | Estimating attributes for the classification of adaptive loop filtering based on projection-slice theorem |
US11463691B2 (en) * | 2020-06-03 | 2022-10-04 | Tencent America LLC | Region adaptive loop filter for video coding |
US20230051066A1 (en) * | 2021-07-27 | 2023-02-16 | Lemon Inc. | Partitioning Information In Neural Network-Based Video Coding |
-
2022
- 2022-09-29 US US17/956,559 patent/US20230179763A1/en active Pending
- 2022-10-07 CN CN202280008452.7A patent/CN116636210A/zh active Pending
- 2022-10-07 EP EP22904869.9A patent/EP4445612A1/en active Pending
- 2022-10-07 WO PCT/US2022/046011 patent/WO2023107187A1/en active Application Filing
- 2022-10-07 KR KR1020237028985A patent/KR20230140456A/ko unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107925772A (zh) * | 2015-09-25 | 2018-04-17 | 华为技术有限公司 | 利用可选插值滤波器进行视频运动补偿的装置和方法 |
US20210274217A1 (en) * | 2018-06-29 | 2021-09-02 | Electronics And Telecommunications Research Institute | Image encoding/decoding method and apparatus for throughput enhancement, and recording medium storing bitstream |
US20200359045A1 (en) * | 2018-09-23 | 2020-11-12 | Beijing Bytedance Network Technology Co., Ltd. | Modification of motion vector with adaptive motion vector resolution |
WO2021000883A1 (en) * | 2019-07-04 | 2021-01-07 | Beijing Bytedance Network Technology Co., Ltd. | Storage of motion information in history-based motion vector prediction table |
US20210044824A1 (en) * | 2019-08-05 | 2021-02-11 | Tencent America LLC | Method and apparatus for video coding |
WO2021030502A1 (en) * | 2019-08-12 | 2021-02-18 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and apparatuses for adaptive motion vector resolution in video coding |
WO2021032143A1 (en) * | 2019-08-20 | 2021-02-25 | Beijing Bytedance Network Technology Co., Ltd. | Selective use of alternative interpolation filters in video processing |
Also Published As
Publication number | Publication date |
---|---|
EP4445612A1 (en) | 2024-10-16 |
KR20230140456A (ko) | 2023-10-06 |
WO2023107187A1 (en) | 2023-06-15 |
US20230179763A1 (en) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116584092B (zh) | 视频块解码方法、装置和存储介质 | |
CN117063471A (zh) | 用于运动矢量差的联合信令方法 | |
CN116830581A (zh) | 用于运动矢量差的经改进的信令方法和装置 | |
CN116941243A (zh) | 自适应运动矢量差分辨率的联合编码 | |
CN116686289A (zh) | 用于单参考运动矢量差的自适应精度 | |
CN116686287A (zh) | 用于联合mvd编码的mvd缩放 | |
CN116982315A (zh) | 利用单个参考信令推导运动矢量 | |
CN116601955A (zh) | 运动矢量差的自适应分辨率 | |
CN116325723B (zh) | 用于视频解码的方法、计算机设备及介质 | |
CN118285101A (zh) | 时间运动矢量预测器候选搜索 | |
CN116830572A (zh) | 调整运动矢量差的自适应分辨率的方案 | |
CN117356098A (zh) | 在跨分量变换系数级别重构中导出偏移 | |
CN116888963A (zh) | 广义样本偏移的自适应应用 | |
CN116830582A (zh) | 运动矢量差的自适应分辨率与运动矢量相关参数的写入/导出之间的依赖关系 | |
CN116584097A (zh) | 联合运动矢量差编解码 | |
CN116783892B (zh) | 视频编解码方法、装置及存储介质 | |
CN116636210A (zh) | 用于自适应运动矢量差分辨率的内插滤波器 | |
CN117044205A (zh) | 改进的运动矢量差分编码上下文推导 | |
CN116569547A (zh) | 用于限制运动矢量差的方法和设备 | |
CN116325735A (zh) | 用于针对参考帧进行自适应重新排序的方法和装置 | |
KR20230136169A (ko) | 단일-참조 모션 벡터 차이에 대한 적응적 해상도 | |
CN117203965A (zh) | 调色板预测值生成和信号通知 | |
CN118476225A (zh) | 用于隐式地指示运动矢量预测值精度的方法和装置 | |
KR20240068697A (ko) | 서브블록 모션 벡터에 기초한 모션 벡터 예측을 위한 방법 및 장치 | |
CN117296320A (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: 40091322 Country of ref document: HK |