CN116783888A - 改进的帧内模式编码 - Google Patents

改进的帧内模式编码 Download PDF

Info

Publication number
CN116783888A
CN116783888A CN202280008349.2A CN202280008349A CN116783888A CN 116783888 A CN116783888 A CN 116783888A CN 202280008349 A CN202280008349 A CN 202280008349A CN 116783888 A CN116783888 A CN 116783888A
Authority
CN
China
Prior art keywords
intra
prediction
prediction modes
mode
video
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
CN202280008349.2A
Other languages
English (en)
Inventor
赵亮
刘杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent America LLC
Original Assignee
Tencent America LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/573,306 external-priority patent/US12081742B2/en
Application filed by Tencent America LLC filed Critical Tencent America LLC
Publication of CN116783888A publication Critical patent/CN116783888A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details 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

本公开提供了用于视频的帧内模式编码和解码的各种方案。例如,公开了一种用于对编码视频流的当前块执行帧内预测的方法。该方法可以包括:接收编码视频流,该编码视频流包括集合索引和位置索引,集合索引和位置索引用于当前块的帧内预测;将与视频流中的当前块的至少一个相邻块对应的帧内预测模式确定为参考模式;基于参考模式确定将P个预定义的帧内预测模式划分为M个帧内预测模式集合的方式,每个帧内预测模式集合包括Ni个位置索引的帧内预测模式,P和M是大于1的整数,Ni是第i个帧内预测模式集合中的预测模式的数量,i是表示M个帧内预测模式集合中的帧内预测模式集合索引的整数;基于接收的集合索引和位置索引以及划分的方式,在P个预定义的帧内预测模式中识别目标帧内预测模式;以及至少基于根据当前块的集合索引和位置索引识别的目标帧内预测模式来解码编码视频流的当前块。

Description

改进的帧内模式编码
相关申请的交叉引用
本申请基于并要求2022年1月11日提交的美国非临时专利申请号17/573,306的优先权,该申请要求2021年6月11日提交的题为“改进的帧内模式编码”的美国临时申请号63/209,806的优先权。这两个申请的全部内容通过引用结合于此。
技术领域
本公开描述了一组高级视频编码技术。更具体地,所公开的技术涉及用于帧内模式编码的各种方案。
背景技术
本文提供的背景描述是为了总体呈现本公开的上下文。在该背景技术部分中描述的程度上,目前署名的发明人的工作以及该描述的在提交本申请时可能不符合现有技术的方面既不明确也不隐含地被认为是本公开的现有技术。
可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,每个图片具有例如1920×1080的亮度样本和相关的全采样或二次采样色度样本的空间维度。该系列图片可以具有固定或可变的图片速率(或者称为帧速率),例如,每秒60个图片或每秒60帧。未压缩视频对流或数据处理有特定的比特率要求。例如,像素分辨率为1920x1080、帧速率为60帧/秒、色度二次采样为4:2:0、每颜色信道每像素8位的视频需要接近1.5Gbit/s的带宽。一小时这样的视频需要超过600GBytes的存储空间。
视频编码和解码的一个目的是通过压缩减少未压缩的输入视频信号中的冗余。在某些情况下,压缩有助于将上述带宽和/或存储空间需求降低两个数量级或更多。可以采用无损压缩和有损压缩及其组合。无损压缩是指这样的技术,其中,可以经由解码过程从压缩的原始信号中重构原始信号的精确副本。有损压缩是指编码/解码过程,其中,原始视频信息在编码期间没有完全保留,并且在解码期间不能完全恢复。当使用有损压缩时,重构信号可能与原始信号不同,但是原始信号和重构信号之间的失真足够小,使得重构信号对预期应用有用,尽管有一些信息损失。在视频的情况下,在许多应用中广泛采用有损压缩。容许的失真量取决于应用。例如,某些消费者视频流应用的用户可能比电影或电视广播应用的用户容忍更高的失真。可以选择或调整特定编码算法可实现的压缩比,以反映各种失真容限:较高的可容忍失真通常允许产生较高损失和较高压缩比的编码算法。
视频编码器和解码器可以利用几大类和步骤的技术,包括例如运动补偿、傅立叶变换、量化和熵编码。
视频编解码器技术可以包括称为帧内编码的技术。在帧内编码中,样本值是在不参考来自先前重构的参考图片的样本或其他数据的情况下表示的。在某些视频编解码器中,图片在空间上被细分为样本块。当所有样本块都以帧内模式编码时,该图片可以被称为帧内图片。帧内图片及其派生图片(例如,独立的解码器刷新图片)可以用于重置解码器状态,因此可以用作编码视频比特流和视频会话中的第一图片,或者用作静止图像。在帧内预测之后,块的样本然后可以进行到频域的变换,并且如此生成的变换系数可以在熵编码之前量化。帧内预测表示一种在预变换域中最小化样本值的技术。在一些情况下,变换后的DC值越小,AC系数越小,在给定量化步长下表示熵编码后的块所需的比特就越少。
例如,从MPEG-2代编码技术中已知的传统帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括尝试基于例如周围样本数据和/或元数据对块进行编码/解码的技术,周围样本数据和/或元数据是在对空间上相邻的块进行编码和/或解码期间获得的,并且在解码顺序上在被帧内编码或解码的数据块之前。这种技术此后被称为“帧内预测”技术。注意,至少在一些情况下,帧内预测仅使用来自重构中的当前图片的参考数据,而不使用来自其他参考图片的参考数据。
可以有许多不同形式的帧内预测。当在给定的视频编码技术中有一种以上这样的技术可用时,所使用的技术可以被称为帧内预测模式。在特定编解码器中可以提供一种或多种帧内预测模式。在某些情况下,模式可具有子模式和/或可与各种参数相关联,并且视频块的模式/子模式信息和帧内编码参数可被单独编码或集体编码,包括在模式码字中。对于给定的模式、子模式和/或参数组合,使用哪个码字会对通过帧内预测获得的编码效率产生影响,并且用于将码字转换成比特流的熵编码技术也会产生影响。
H.264引入了特定的帧内预测模式,在H.265中进行了改进,并在更新的编码技术中进一步改进,例如,联合探索模型(JEM)、通用视频编码(VVC)和基准集(BMS)。通常,对于帧内预测,可以使用已经变得可用的相邻样本值来形成预测块。例如,沿着特定方向和/或线的特定相邻样本集的可用值可以被复制到预测器块中。对使用中的方向的参考可以在比特流中编码,或者本身可以预测。
参考图1A,右下方描绘了H.265的33个可能的帧内预测方向(对应于H.265中指定的35个帧内模式的33个角度模式)中指定的9个预测方向的子集。箭头会聚的点(101)表示被预测的样本。箭头表示相邻样本用于预测101处的样本的方向。例如,箭头(102)指示样本(101)是从与水平方向成45°角的右上方的一个或多个相邻样本预测的。类似地,箭头(103)指示样本(101)是从与水平方向成22.5°角的样本(101)左下方的一个或多个相邻样本预测的。
仍然参考图1A,在左上方描绘了4×4样本的正方形块(104)(由粗虚线表示)。正方形块(104)包括16个样本,每个样本标有“S”,其在Y维度上的位置(例如,行索引)和其在X维度上的位置(例如,列索引)。例如,样本S21是Y维度中的第二个样本(从顶部算起)和X维度中的第一个样本(从左侧算起)。类似地,样本S44在Y和X维度上都是块(104)中的第四个样本。由于该块的大小为4×4个样本,所以S44位于右下角。还示出了遵循类似编号方案的参考样本。参考样本用R、其相对于块的Y位置(例如,行索引)和X位置(列索引)来标记(104)。在H.264和H.265中,使用与重构中的块相邻的预测样本。
块104的帧内图片预测可以从信令的预测方向指示的相邻样本中复制参考样本值来开始。例如,假设经编码的视频比特流包含信令,其针对此块104指示箭头(102)的预测方向——即,从与水平方向成45°角的右上方的样本来预测一个或多个预测样本。在这种情况下,从相同的参考样本R05预测样本S41、S32、S23和S14。然后从参考样本R08预测样本S44。
在某些情况下,多个参考样本的值可以组合,例如,通过插值,以便计算参考样本;尤其是当方向不能被45o整除时。
随着视频编码技术的持续发展,可能的方向的数量已经增加。例如,在H.264(2003年)中,九个不同方向可用于帧内预测。这在H.265(2013年)中增加到33个,并且在本公开时,JEM/VVC/BMS可以支持多达65个方向。已经进行了实验研究,来帮助识别最合适的帧内预测方向,并且熵编码中的某些技术可以用于以少量比特对那些最合适的方向进行编码,接受方向的某个比特损失。此外,有时可以根据已经解码的相邻块的帧内预测中使用的相邻方向来预测方向本身。
图1B示出了示意图(180),描绘了根据JEM的65个帧内预测方向,以说明随着时间发展的各种编码技术中预测方向的数量增加。
将表示帧内预测方向的比特映射到编码视频比特流中的预测方向的方式可以根据视频编码技术的不同而不同;并且范围可以从例如预测方向到帧内预测模式的简单直接映射到码字,到涉及最可能模式的复杂自适应方案,以及类似的技术。然而,在所有情况下,与某些其他方向相比,帧内预测的某些方向在统计上不太可能出现在视频内容中。由于视频压缩的目标是减少冗余,在设计良好的视频编码技术中,那些不太可能的方向将由比更可能的方向更多的比特来表示。
帧间图片预测或帧间预测可以基于运动补偿。在运动补偿中,来自先前重构的图片或其一部分(参考图片)的样本数据在由运动矢量(此后称为MV)指示的方向上进行空间移位之后,可以用于预测新重构的图片或图片部分(例如,块)。在某些情况下,参考图片可以与当前正在重构的图片相同。MV可以具有两个维度X和Y,或者三个维度,第三个维度是使用中的参考图片的指示(类似于时间维度)。
在一些视频压缩技术中,可应用于样本数据的某一区域的当前MV可从其它MV中预测,例如,从与样本数据的其它区域相关的那些其它MV中预测,其它区域在空间上与重构中的区域相邻并且在解码顺序上在当前MV之前。这样做可以通过去除相关MV中的冗余来显著减少编码MV所需的数据总量,从而提高压缩效率。MV预测可以有效地工作,例如,因为当对从相机导出的输入视频信号(称为自然视频)进行编码时,存在统计可能性,即比单个MV可应用的区域大的区域在视频序列中的相似方向上移动,因此,在某些情况下,可以使用从相邻区域的MV导出的相似运动矢量来预测。这导致对于给定区域发现的MV与从周围MV预测的MV相似或相同。在熵编码之后,这种MV又可以用比直接编码MV而不是从相邻MV预测的更少的比特数来表示。在某些情况下,MV预测可以是从原始信号(即:样本流)导出的信号(即:MV)的无损压缩的示例。在其他情况下,MV预测本身可能是有损耗的,例如,当从几个周围的MV计算预测值时,由于舍入误差。
在H.265/HEVC(ITU-TRec.H.265,“High Efficiency Video Coding”,2016年12月)中描述各种MV预测机制。在H.265指定的许多MV预测机制中,下面描述一种此后被称为“空间合并”的技术。
具体地,参考图2,当前块(201)包括编码器在运动搜索过程中发现的样本,以便可从已经空间移位的相同大小的先前块中预测。并非直接编码该MV,可以使用与五个周围样本(表示为A0、A1和B0、B1、B2(分别为202至206))中的任一个相关联的MV,从与一个或多个参考图片相关联的元数据中导出该MV,例如,从最近的(按照解码顺序)参考图片中导出。在H.265中,MV预测可以使用来自相邻块正在使用的相同参考图片的预测器。
发明内容
本公开的各方面提供了用于视频编码和解码的方法和装置,包括用于帧内模式编码的各种方案。
在一些示例实现方式中,公开了一种用于对编码视频流的当前块执行帧内预测的方法。该方法可以包括:接收编码视频流,该编码视频流包括集合索引和位置索引,集合索引和位置索引用于当前块的帧内预测;将与视频流中的当前块的至少一个相邻块对应的帧内预测模式确定为参考模式;基于参考模式确定将P个预定义的帧内预测模式划分为M个帧内预测模式集合的方式,每个帧内预测模式集合包括Ni个位置索引的帧内预测模式,P和M是大于1的整数,Ni是第i个帧内预测模式集合中的预测模式的数量,i是表示M个帧内预测模式集合中的帧内预测模式集合索引的整数;基于接收的集合索引和位置索引以及划分的方式,在P个预定义的帧内预测模式中识别目标帧内预测模式;以及至少基于根据当前块的集合索引和位置索引识别的目标帧内预测模式来解码编码视频流的当前块。
在上面的实现方式中,Nmax是2的幂,Nmax是Ni中的最大值。在一些实现方式中,当M大于2时,Ni选自第一数量和第二数量。在一些实现方式中,Ni对于所有M个帧内预测模式集合是相同的值。在一些实现方式中,M个帧内预测模式集合中的一个帧内预测模式集合包括第二数量的帧内预测模式,M个帧内预测模式集合中的所有其他帧内预测模式集合包括第一数量的帧内预测模式。在一些实现方式中,M=4,并且Nmax=16。在一些实现方式中,P=61,第一数量是16,第二数量是13。
在上面的一些示例实现方式中,P个预定义的帧内预测模式可以包括非定向帧内预测模式的子集;以及M个帧内预测模式集合中的非定向帧内预测模式的子集的相对顺序是固定的,与参考模式无关。
在上面的一些示例实现方式中,非定向帧内预测模式的子集都在M个帧内预测模式集合中位于第一位置的帧内预测模式集合内,与参考模式无关。
在上面的一些示例实现方式中,非定向帧内预测模式的子集包括DC预测模式,DC预测模式总是被放置为位于第一位置的帧内预测模式集合中的第一个,与参考模式无关。
在上面的一些示例实现方式中,基于递归滤波(recursive-filtering-based)的帧内预测模式被表示为DC预测模式的子模式。此外,非定向帧内预测模式的子集包括SMOOTH预测模式,SMOOTH预测模式总是被定位为位于第一位置的帧内预测模式集合中的第二个,与参考模式无关。在一些实现方式中,非定向帧内预测模式的子集包括SMOOTH_V预测模式,SMOOTH_V预测模式总是被定位为位于第一位置的帧内预测模式集合中的第三个,与参考模式无关。
在上面的一些示例实现方式中,非定向帧内预测模式的子集包括SMOOTH_H预测模式,SMOOTH_H预测模式总是被定位为位于第一位置的帧内预测模式集合中的第四个,与参考模式无关。
在上面的一些示例实现方式中,非定向帧内预测模式的子集包括PAETH预测模式,PAETH预测模式总是被定位为位于第一位置的帧内预测模式集合中的第五个,与参考模式无关。
在上面的一些示例实现方式中,P个预定义的帧内预测模式可以包括基于递归滤波的帧内预测模式;将基于递归滤波的帧内预测模式按顺序放置为M个帧内预测模式集合中的位于第一位置的帧内预测模式集合,与参考模式无关;以及基于递归滤波的帧内预测模式被表示为独立于任何DC帧内预测模式。
在上面的一些示例实现方式中,当为当前块所识别的目标帧内预测模式是基于递归滤波的帧内预测模式时,该方法还可以包括确定分别基于集合索引和位置索引选择一组基于递归滤波的帧内预测模式中的一个。
在上面的一些示例实现方式中,基于递归滤波的帧内预测模式总是被放置在位于第一位置帧内的预测模式集合内的第六个,与参考模式无关。在上面的一些示例实现方式中,P个预定义的帧内预测模式包括至少一个定向帧内预测模式、至少一个非定向帧内预测模式和至少一个亮度对色度帧内预测模式。
本公开的方面还提供了一种包括处理电路的设备,该处理电路被配置为执行上述用于视频解码和/或编码的方法实现方式中的任一种。本公开的方面还提供了存储指令的非暂时性计算机可读介质,当由计算机执行指令以进行视频解码和/或编码时,这些指令使得计算机执行以上用于视频解码和/或编码的方法实现方式中的任何一种。
附图说明
从以下详细描述和附图中,所公开主题的进一步特征、性质和各种优点将变得更加明显,其中:
图1A示出了帧内预测定向模式的示示例集的示意图。
图1B示出了示例性帧内预测方向的图示;
图2示出了一个示例中的用于运动矢量预测的当前块及其周围空间合并候选的示意图;
图3示出了根据示例实施例的通信系统(300)的简化框图的示意图;
图4示出了根据示例实施例的通信系统(400)的简化框图的示意图;
图5示出了根据示例实施例的视频解码器的简化框图的示意图;
图6示出了根据示例实施例的视频编码器的简化框图的示意图;
图7示出了根据另一示例实施例的视频编码器的框图;
图8示出了根据另一示例实施例的视频解码器的框图;
图9示出了根据本公开的示例实施例的定向帧内预测模式;
图10示出了根据本公开的示例实施例的非定向帧内预测模式;
图11示出了根据本公开的示例实施例的递归帧内预测模式;
图12展示根据本公开的示例实施例的帧内预测块的变换块划分和扫描;
图13展示根据本公开的示例实施例的帧间预测块的变换块划分和扫描;
图14示出了根据本公开的示例实施例的流程图;
图15示出了根据本公开的示例实施例的计算机系统的示意图;
具体实施方式
图3示出了根据本公开的实施例的通信系统(300)的简化框图。通信系统(300)包括能够经由例如网络(350)相互通信的多个终端设备。例如,通信系统(300)包括经由网络(350)互连的第一对终端设备(310)和(320)。在图3的示例中,第一对终端设备(310)和(320)可以执行数据的单向传输。例如,终端设备(310)可以对视频数据(例如,由终端设备(310)捕捉的视频图片流)进行编码,以便经由网络(350)传输到另一个终端设备(320)。编码视频数据可以以一个或多个编码视频比特流的形式传输。终端设备(320)可以从网络(350)接收编码的视频数据,解码经编码的视频数据,以恢复视频图片,并根据恢复的视频数据显示视频图片。单向数据传输可以在媒体服务应用等中实现。
在另一示例中,通信系统(300)包括第二对终端设备(330)和(340),其执行可以例如在视频会议应用期间实现的编码视频数据的双向传输。对于数据的双向传输,在一个示例中,终端设备(330)和(340)的每个终端设备可以对视频数据(例如,由终端设备捕捉的视频图片流)进行编码,以便经由网络(350)传输到终端设备(330)和(340)的另一个终端设备。终端设备(330)和(340)的每个终端设备还可以接收由终端设备(330)和(340)的另一个终端设备传输的编码视频数据,并且可以解码经编码的视频数据,以恢复视频图片,并且可以根据恢复的视频数据在可访问的显示设备上显示视频图片。
在图3的示例中,终端设备(310)、(320)、(330)和(340)可以被实现为服务器、个人计算机和智能电话,但是本公开的基础原理的应用可以不限于此。本公开的实施例可以在台式计算机、膝上型计算机、平板计算机、媒体播放器、穿戴式计算机、专用视频会议设备等中实现。网络(350)表示在终端设备(310)、(320)、(330)和(340)之间传送编码视频数据的任意数量或类型的网络,包括例如线路(有线)和/或无线通信网络。通信网络(350)可以在电路交换、分组交换和/或其他类型的信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。出于当前讨论的目的,网络(350)的架构和拓扑对于本公开的操作可能是不重要的,除非在在本文中明确解释。
作为所公开的主题的应用的示例,图4示出了视频编码器和视频解码器放置在视频流环境中。所公开的主题同样可应用于其他视频应用,包括例如视频会议、数字电视、广播、游戏、虚拟现实、在包括CD、DVD、记忆棒等的数字媒体上存储压缩视频等。
视频流系统可以包括:视频捕捉子系统(413),其可以包括视频源(401),例如,数码相机;创建未压缩的视频图片或图像流(402)。在一个示例中,视频图片流(402)包括由视频源401的数码相机记录的样本。当与编码视频数据(404)(或编码视频比特流)相比时,视频图片流(402)被描绘为强调高数据量的粗线,可以由包括耦合到视频源(401)的视频编码器(403)的电子设备(420)来处理。视频编码器(403)可以包括硬件、软件或其组合,以实现或实施如下面更详细描述的所公开的主题的各方面。编码的视频数据(404)(或编码的视频比特流(404))被描绘为细线,以强调当与未压缩的视频图片流(402)相比时较低的数据量,可以存储在流服务器(405)上,以供将来使用,或者直接存储到下游视频设备(未示出)。一个或多个流客户端子系统(例如,图4中的客户端子系统(406)和(408))可以访问流服务器(405),以检索编码视频数据(404)的副本(407)和(409)。客户端子系统(406)可以包括例如电子设备(430)中的视频解码器(410)。视频解码器(410)对编码视频数据的输入副本(407)进行解码,并创建未压缩的并且可以在显示器(412)(例如,显示屏)或其他呈现设备(未示出)上呈现的输出视频图片流(411)。视频解码器410可以被配置为执行本公开中描述的各种功能中的一些或全部。在一些流系统中,编码的视频数据(404)、(407)和(409)(例如,视频比特流)可以根据某些视频编码/压缩标准来编码。这些标准的示例包括ITU-T建议H.265。在一个示例中,正在开发的视频编码标准被非正式地称为通用视频编码(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)的一部分。在其他应用中,可以在视频解码器(510)之外以及与视频解码器分离(未示出)。在其他应用中,在视频解码器(510)之外可以有缓冲存储器(未示出),例如,用于对抗网络抖动的目的,并且在视频解码器(510)内部可以有另一个额外的缓冲存储器(515),例如,用于处理播放定时。当接收机(531)从具有足够带宽和可控性的存储/转发设备或者从等同步网络接收数据时,缓冲存储器(515)可以是不需要的,或者可以是小的。为了在诸如因特网之类的尽力而为的分组网络上使用,可能需要足够大小的缓冲存储器(515),其大小可以相对较大。这种缓冲存储器可以实现有自适应大小,并且可以至少部分地在视频解码器(510)外部的操作系统或类似元件(未示出)中实现。
视频解码器(510)可以包括解析器(520),以从编码的视频序列中重构符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息以及潜在地控制诸如显示器(512)(例如,显示屏)等呈现设备的信息,该呈现设备可以是或可以不是电子设备(530)的组成部分,但是可以耦合到电子设备(530),如图5所示。用于呈现设备的控制信息可以是补充增强信息(SEI消息)或视频可用性信息(VUI)参数集片段(未示出)的形式。解析器(520)可以对解析器(520)接收到的编码视频序列进行解析/熵解码。编码视频序列的熵编码可以根据视频编码技术或标准,并且可以遵循各种原理,包括可变长度编码、Huffman编码、具有或不具有上下文敏感性的算术编码等。解析器(520)可以基于对应于子组的至少一个参数,从编码视频序列中提取视频解码器中的至少一个像素子组的一组子组参数。子组可以包括图片组(GOP)、图片、图块、切片、宏块、编码单元(Cu)、块、变换单元(TU)、预测单元(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)内的地址可以由运动矢量来控制,运动补偿预测单元(553)可以符号(521)的形式获得这些地址,这些符号可以具有例如X、Y分量(偏移)和参考图片组件(时间)。当使用子采样精确运动矢量时,运动补偿还可以包括从参考图片存储器(557)获取的采样值的插值,并且还与运动矢量预测机制等相关联。
聚集器(555)的输出样本可以在环路滤波器单元(556)中经受各种环路滤波技术。视频压缩技术可以包括环路滤波技术,这些技术由编码视频序列(也称为编码视频比特流)中包含的参数控制,并且作为来自解析器(520)的符号(521)可用于环路滤波单元(556),但是也可以响应于在编码图像或编码视频序列的先前(按照解码顺序)部分的解码期间获得的元信息以及响应于先前重构的和环路滤波的样本值。可以以各种顺序包括几种类型的环路滤波器,作为环路滤波器单元556的一部分,这将在下面进一步详细描述。
环路滤波器单元(556)的输出可以是样本流,该样本流可以输出到呈现设备(512)以及存储在参考图片存储器(557)中,以用于将来的帧间图片预测。
一旦完全重构,某些编码图像可以用作未来帧间图片预测的参考图片。例如,一旦完全重构对应于当前图片的编码图像,并且该编码的图片已经被识别为参考图片(例如,通过解析器(520)),则当前图片缓冲器(558)可以成为参考图片存储器(557)的一部分,并且在开始下一个编码图像的重构之前,可以重新分配新的当前图片缓冲器。
视频解码器(510)可以根据诸如ITU-T Rec.H.265等标准中采用的预定视频压缩技术来执行解码操作。在编码视频序列符合视频压缩技术或标准的语法以及视频压缩技术或标准中记载的简档的意义上,编码视频序列可以符合由所使用的视频压缩技术或标准规定的语法。具体地,简档可以从视频压缩技术或标准中可用的所有工具中选择某些工具,作为在该简档下可用的唯一工具。为了符合标准,编码视频序列的复杂度可以在视频压缩技术或标准的水平所定义的范围内。在某些情况下,级别限制了最大图片大小、最大帧速率、最大重构采样率(例如,以每秒兆样本为单位测量)、最大参考图片大小等。在某些情况下,由级别设置的限制可以通过假设参考解码器(HRD)规范和编码视频序列中信令的HRD缓冲管理的元数据来进一步限制。
在一些示例实施例中,接收机(531)可以接收具有编码视频的额外(冗余)数据。可以包括额外数据,作为编码视频序列的一部分。视频解码器(510)可以使用额外数据来正确解码数据和/或更准确地重构原始视频数据。额外数据可以是例如时间、空间或信噪比(SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图6示出了根据本公开的示例实施例的视频编码器(603)的框图。视频编码器(603)可以包括在电子设备(620)中。电子设备(620)还可以包括发射机(640)(例如,发射电路)。视频编码器(603)可以用来代替图4示例中的视频编码器(403)。
视频编码器(603)可以从视频源(601)(其不是图6示例中的电子设备(620)的一部分)接收视频样本,该视频源可以捕捉要由视频编码器(603)编码的视频图片。在另一示例中,视频源(601)可以被实现为电子设备(620)的一部分。
视频源(601)可以以数字视频样本流的形式提供要由视频编码器(603)编码的源视频序列,该数字视频样本流可以具有任何合适的比特深度(例如:8比特、10比特、12比特、…)、任何颜色空间(例如,BT.601Y CrCB、RGB、…)和任何合适的采样结构(例如,Y CrCb4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(601)可以是能够存储先前准备的视频的存储设备。在视频会议系统中,视频源(601)可以是捕捉本地图像信息作为视频序列的相机。可以提供视频数据,作为多个单独的图片或图像,当按顺序观看时,这些图片或图像赋予运动。图片本身可以被组织为像素的空间阵列,其中,每个像素可以包括一个或多个样本,这取决于使用中的采样结构、颜色空间等。本领域技术人员可以容易地理解像素和样本之间的关系。下面的描述集中在样本上。
根据一些示例实施例,视频编码器(603)可以实时地或者在应用所需的任何其他时间约束下,将源视频序列的图片编码和压缩成编码的视频序列(643)。实施适当的编码速度构成控制器(650)的一个功能。在一些实施例中,控制器(650)可以在功能上耦合到并且控制如下所述的其他功能单元。为了简单起见,没有描述耦合。控制器(650)设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值、…)、图片大小、图片组(GOP)布局、最大运动矢量搜索范围等。控制器(650)可以被配置为具有针对特定系统设计而优化的与视频编码器(603)相关的其他合适的功能。
在一些示例实施例中,视频编码器(603)被配置为在编码循环中操作。作为过于简化的描述,在一个示例中,编码环路可以包括源编码器(630)(例如,负责基于要编码的输入图片和参考图片来创建符号,例如,符号流)以及嵌入在视频编码器(603)中的(本地)解码器(633)。解码器(633)以类似于(远程)解码器也将创建的方式重构符号,以创建样本数据,即使嵌入解码器633在没有熵编码的情况下处理由源编码器630编码的视频流(因为熵编码中符号和编码的视频比特流之间的任何压缩在所公开的主题中考虑的视频压缩技术中可能是无损的)。重构的样本流(样本数据)被输入到参考图片存储器(634)。由于符号流的解码导致独立于解码器位置(本地或远程)的位精确结果,所以参考图片存储器(634)中的内容在本地编码器和远程编码器之间也是位精确的。换言之,当在解码期间使用预测时,编码器的预测部分作为参考图片样本“看到”与解码器“看到”的样本值完全相同的样本值。参考图片同步性(以及由此产生的漂移,如果不能保持同步性,例如,由于信道误差)的该基本原理用于提高编码质量。
“本地”解码器(633)的操作可以与诸如视频解码器(510)之类的“远程”解码器的操作相同,上面已经结合图5对其进行了详细描述。然而,简要地参考图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)通过根据诸如Huffman编码、可变长度编码、算术编码等技术的符号的无损压缩,将由各种功能单元生成的符号转换成编码的视频序列。
发射机(640)可以缓冲由熵编码器(645)创建的编码视频序列,以准备经由通信信道(660)传输,通信信道可以是到将存储编码视频数据的存储设备的硬件/软件链接。发射机(640)可以将来自视频编码器(603)的编码视频数据与要传输的其他数据合并,例如,编码音频数据和/或辅助数据流(源未示出)。
控制器(650)可以管理视频编码器(603)的操作。在编码期间,控制器(650)可以向每个编码图片分配特定的编码图片类型,这可以影响可以应用于相应图片的编码技术。例如,图片通常可以被指定为以下图片类型之一:
帧内图片(I图片)可以是不使用序列中的任何其他图片作为预测源而被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(“IDR”)图片。本领域技术人员知道I图片的那些变体以及其相应的应用和特征。
预测图片(P图片)可以是使用最多一个运动矢量和参考索引来预测每个块的样本值,使用帧内预测或帧间预测来编码和解码的图片。
双向预测图片(B图片)可以是使用最多两个运动矢量和参考索引来预测每个块的样本值,使用帧内预测或帧间预测来编码和解码的图片。类似地,多预测图片可以使用两个以上的参考图片和相关元数据来重构单个块。
源图片通常可以在空间上被细分成多个样本块(例如,每个样本块为4×4、8×8、4×8或16×16个样本块),并且在分块的基础上编码。可以参考由应用于块的相应图片的编码分配所确定的其他(已经编码的)块来预测性地编码块。例如,I图片的块可以被非预测性地编码,或者可以参考同一图片的已经编码的块被预测性地编码(空间预测或帧内预测)。参考一个先前编码的参考图片,经由空间预测或经由时间预测,P图片的像素块可以预测性地编码。参考一个或两个先前编码的参考图片,经由空间预测或经由时间预测,可以预测性地编码B图片的块。出于其他目的,源图片或中间处理的图片可以被细分成其他类型的块。编码块和其他类型的块的划分可以遵循或不遵循相同的方式,如下面进一步详细描述的。
视频编码器(603)可以根据预定的视频编码技术或标准(例如,ITU-T Rec.H.265)来执行编码操作。在其操作中,视频编码器(603)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,编码的视频数据可以符合由正在使用的视频编码技术或标准指定的语法。
在一些示例实施例中,发射机(640)可以与编码视频一起传输额外数据。源编码器(630)可以包括这样的数据,作为编码视频序列的一部分。额外数据可以包括时间/空间/SNR增强层、其他形式的冗余数据(例如,冗余图片和切片)、SEI消息、VUI参数集片段等。
可以捕捉视频,作为时间序列中的多个源图片(视频图片)。帧内图片预测(通常缩写为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的时间或其他相关性。在一个示例中,被称为当前图片的编码/解码中的特定图片被划分成块。在当前图片中的块类似于视频中先前编码且仍被缓冲的参考图片中的参考块时,当前图片中的块可以通过称为运动矢量的矢量来编码。在使用多个参考图片的情况下,运动矢量指向参考图片中的参考块,并且可以具有识别参考图片的第三维。
在一些示例实施例中,可以在帧间图片预测中使用双向预测技术。根据双向预测技术,使用两个参考图片,例如,第一参考图片和第二参考图片,这两个参考图片在解码顺序上都在视频中的当前图片之前(但是在显示顺序上可以分别在过去或未来)。当前图片中的块可由指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量来编码。可以通过第一参考块和第二参考块的组合来联合预测该块。
此外,可以在帧间图片预测中使用合并模式技术来提高编码效率。
根据本公开的一些示例实施例,以块为单位执行预测,例如,帧间图片预测和帧内图片预测。例如,视频图片序列中的图片被划分成编码树单元(CTU),用于压缩,图片中的CTU具有相同的大小,例如,64×64像素、32×32像素或16×16像素。通常,CTU可以包括三个平行的编码树块(CTB):一个亮度CTB和两个色度CTB。每个CTU可以被递归地四叉树划分成一个或多个编码单元(CU)。例如,64×64像素的CTU可以被划分成一个64×64像素的CU或者4个32×32像素的CU。32×32块中的一个或多个中的每一个开业进一步划分为16×16像素的的4个CU。在一些示例实施例中,可以在编码器期间分析每个CU,以在各种预测类型中确定CU的预测类型,例如,帧间预测类型或帧内预测类型。根据时间和/或空间可预测性,CU被分成一个或多个预测单元(PU)。通常,每个PU包括一个亮度预测块(PB)和两个色度PB。在实施例中,以预测块为单位执行编码(编码/解码)中的预测操作。可以以各种空间模式将CU划分成PU(或不同颜色信道PB)。例如,亮度或色度PB可包含样本的值(例如,亮度值)的矩阵,例如,8×8像素、16×16像素、8×16像素、16×8样本等。
图7示出了根据本公开的另一个示例实施例的视频编码器(703)的示图。视频编码器(703)被配置为接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并将该处理块编码成作为编码视频序列的一部分的编码图像。示例视频编码器(703)可用于代替图4示例中的视频编码器(403)。
例如,视频编码器(703)接收处理块的样本值矩阵,例如,8×8样本的预测块等。视频编码器(703)然后确定使用帧内模式、帧间模式还是使用例如率失真优化(RDO)的双向预测模式对处理块进行最佳编码。当确定要以帧内模式对处理块进行编码时,视频编码器(703)可以使用帧内预测技术将处理块编码成编码图片;并且当确定要以帧间模式或双向预测模式对处理块进行编码时,视频编码器(703)可以分别使用帧间预测或双向预测技术来将处理块编码成编码图片。在一些示例实施例中,合并模式可以用作帧间图片预测的子模式,其中,从一个或多个运动矢量预测器中导出运动矢量,而不受益于预测器之外的编码运动矢量组件。在一些示例实施例中,可能存在适用于物体块的运动矢量组件。因此,视频编码器(703)可以包括在图7中未明确示出的组件,例如,用于确定处理块的预测模式的模式判定模块。
在图7的示例中,视频编码器(703)包括如图7中的示例布置所示耦合在一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、交换机(726)、残差编码器(724)、通用控制器(721)和熵编码器(725)。
帧间编码器(730)被配置为接收当前块(例如,处理块)的样本,将该块与参考图片中的一个或多个参考块(例如,按照显示顺序的先前图片和后续图片中的块)进行比较,生成帧间预测信息(例如,根据帧间编码技术的冗余信息的描述、运动矢量、合并模式信息),并且使用任何合适的技术基于帧间预测信息来计算帧间预测结果(例如,预测块)。在一些示例中,参考图片是基于编码视频信息解码的解码参考图片,使用嵌入在图6的示例编码器620中的解码单元633(被示为图7的残差解码器728,如下面进一步详细描述的)。
帧内编码器(722)被配置为接收当前块(例如,处理块)的样本,将该块与已经在同一图片中编码的块进行比较,在变换后生成量化系数,并且在一些情况下,还生成帧内预测信息(例如,根据一种或多种帧内编码技术的帧内预测方向信息)。帧内编码器(722)可以基于同一图片中的帧内预测信息和参考块来计算帧内预测结果(例如,预测块)。
通用控制器(721)可以被配置为确定通用控制数据并基于通用控制数据控制视频编码器(703)的其他组件。在一个示例中,通用控制器(721)确定块的预测模式,并基于该预测模式向交换机(726)提供控制信号。例如,当预测模式是帧内模式时,通用控制器(721)控制交换机(726)选择帧内模式结果供残差计算器(723)使用,并控制熵编码器(725)选择帧内预测信息并将帧内预测信息包括在比特流中;当该块的预测模式是帧间模式时,通用控制器(721)控制交换机(726)选择帧间预测结果供残差计算器(723)使用,并控制熵编码器(725)选择帧间预测信息并将帧间预测信息包括在比特流中。
残差计算器(723)可以被配置为计算接收的块和从帧内编码器(722)或帧间编码器(730)选择的该块的预测结果之间的差(残差数据)。残差编码器(724)可以被配置为编码残差数据,来生成变换系数。在一个示例中,残差编码器(724)可以被配置为将残差数据从空间域转换到频域,以生成变换系数。然后对变换系数进行量化处理,以获得量化的变换系数。在各种示例实施例中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)被配置为执行逆变换,并生成解码后的残差数据。解码的残差数据可以被帧内编码器(722)和帧间编码器(730)适当地使用。例如,帧间编码器(730)可以基于解码的残差数据和帧间预测信息生成解码的块,帧内编码器(722)可以基于解码的残差数据和帧内预测信息生成解码的块。适当地处理经解码的块,以生成经解码的图片,并且经解码的图片可以缓存在存储器电路(未示出)中,并且用作参考图片。
熵编码器(725)可以被配置为格式化比特流,以包括编码块,并且执行熵编码。熵编码器(725)被配置为在比特流中包括各种信息。例如,熵编码器(725)可以被配置为包括通用控制数据、所选预测信息(例如,帧内预测信息或帧间预测信息)、残差信息和比特流中的其他合适的信息。当在帧间模式或双向预测模式的合并子模式中对块进行编码时,可以没有残差信息。
图8示出了根据本公开的另一个实施例的示例视频解码器(810)的示图。视频解码器(810)被配置为接收作为编码视频序列的一部分的编码图片,并对编码图片进行解码,以生成重构图片。在一个示例中,视频解码器(810)可以用于代替图4示例中的视频解码器(410)。
在图8的示例中,视频解码器(810)包括如图8的示例布置中所示耦合在一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重构模块(874)和帧内解码器(872)。
熵解码器(871)可以被配置为从编码图像中重构表示组成编码图像的语法元素的某些符号。这种符号可以包括例如对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、合并子模式或另一子模式)、可以识别由帧内解码器(872)或帧间解码器(880)用于预测的特定样本或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、例如量化变换系数形式的残差信息等。在一个示例中,当预测模式是帧间或双向预测模式时,帧间预测信息被提供给帧间解码器(880);并且当预测类型是帧内预测类型时,帧内预测信息被提供给帧内解码器(872)。残差信息可以经历逆量化,并被提供给残差解码器(873)。
帧间解码器(880)可以被配置为接收帧间预测信息,并基于帧间预测信息生成帧间预测结果。
帧内解码器(872)可以被配置为接收帧内预测信息,并基于帧内预测信息生成预测结果。
残差解码器(873)可以被配置为执行逆量化,以提取去量化的变换系数,并处理去量化的变换系数,以将残差从频域转换到空间域。残差解码器(873)还可能利用某些控制信息(以包括量化器参数(QP)),该信息可以由熵解码器(871)提供(数据路径未示出,因为这可能只是低数据体积控制信息)。
重构模块(874)可以被配置为在空间域中组合由残差解码器(873)输出的残差和预测结果(由帧间或帧内预测模块输出,视情况而定),以形成重构块,该重构块形成重构图片的一部分,作为重构视频的一部分。注意,还可以执行诸如去块操作等其他合适的操作来提高视觉质量。
注意,视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)可以使用任何合适的技术来实现。在一些示例实施例中,视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)可以使用一个或多个集成电路来实现。在另一个实施例中,视频编码器(403)、(603)和(603)以及视频解码器(410)、(510)和(810)可以使用执行软件指令的一个或多个处理器来实现。
返回到帧内预测过程,在该过程中,块(例如,亮度或色度预测块,或者编码块,如果没有进一步划分成预测块的话)中的样本由相邻的、下一个相邻的或其他一行或多行的样本或者其组合来预测,以生成预测块。正被编码的实际块和预测块之间的残差然后可以经由变换以及随后的量化来处理。可以使各种帧内预测模式可用,并且可以在比特流中信令与帧内模式选择相关的参数和其他参数。例如,各种帧内预测模式可以涉及用于预测样本的一个或多个行位置、从一个或多个预测行中选择预测样本所沿的方向以及其他特殊的帧内预测模式。
例如,一组帧内预测模式(可互换地称为“帧内模式”)可以包括预定数量的定向帧内预测模式。如上文关于图1的示例实现方式所述,这些帧内预测模式可对应于预定数量的方向,沿着这些方向选择块外样本,作为对特定块中正被预测的样本的预测。在另一特定示例实现方式中,可以支持和预定义对应于与水平轴成45°至207°的角度的八(8)个主定向模式。
在帧内预测的一些其他实现方式中,为了进一步利用方向纹理中更多种类的空间冗余,定向帧内模式可以进一步扩展到具有更精细粒度的角度集合。例如,上面的8-角度实现方式可以被配置为提供八个标称角度,称为V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED和D67_PRED,如图9所示,并且对于每个标称角度,可以添加预定数量(例如,7个)的更精细角度。通过这种扩展,对应于相同数量的预定义的定向帧内模式,更大总数(例如,在该示例中为56)的方向角可用于帧内预测。预测角度可以由标称帧内角度加上角度增量来表示。对于每个标称角度具有7个更精细的角度方向的上述特定示例,角度增量可以是-3~3乘以3°的步长。
在一些实现方式中,作为上述定向帧内模式的替代或补充,也可以预定义预定数量的非定向帧内预测模式并使其可用。例如,可以指定被称为平滑帧内预测模式的5种非定向帧内模式。这些非定向帧内模式预测模式可以具体称为DC、PAETH、SMOOTH、SMOOTH_V和SMOOTH_H帧内模式。图10中示出了在这些示例非定向模式下对特定块的样本的预测。作为示例,图10示出了由来自顶部相邻行和/或左侧相邻行的样本预测的4×4块1002。块1002中的特定样本1010可以直接对应于块1002的顶部相邻行中的样本1010的顶部样本1004、作为顶部和左侧相邻行的交叉点的样本1010的左上样本1006、以及块1002的左侧相邻行中的样本1010的直接左样本1008。对于示例DC帧内预测模式,左侧和上方相邻样本1008和1004的平均值可以用作样本1010的预测值。对于示例PAETH帧内预测模式,可以获取顶部、左侧和左上参考样本1004、1008和1006,然后可以将这三个参考样本中最接近(顶部+左侧-左上)的值设置为样本1010的预测值。对于示例SMOOTH_V帧内预测模式,可以通过左上相邻样本1006和左相邻样本1008的垂直方向上的二次插值来预测样本1010。对于示例SMOOTH_H帧内预测模式,可以通过左上相邻样本1006和顶部相邻样本1004的水平方向上的二次插值来预测样本1010。对于示例SMOOTH帧内预测模式,可以通过垂直和水平方向上的二次插值的平均值来预测样本1010。上述非定向帧内模式实现仅作为非限制性示例来说明。也考虑了其它相邻行、其它非定向样本选择以及组合预测样本以预测预测块中的特定样本的方式。
编码器在各种编码级别(图片、切片、块、单元等)从上述定向或非定向模式中选择特定的帧内预测模式可以在比特流中信令。在一些示例实现方式中,可以首先信令示例性的8个标称定向模式以及5个非角度平滑模式(总共13个选项)。然后,如果信令的模式是8个标称角度帧内模式中的一个,则进一步信令索引,以指示相对于相应的信令的标称角度的所选角度增量。在一些其他示例实现方式中,所有帧内预测模式可以一起索引(例如,56个定向模式加上5个非定向模式,以产生61个帧内预测模式),用于信令。
在一些示例实现方式中,示例56个或其他数量的定向帧内预测模式可以用统一的方向预测器来实现,该统一的方向预测器将块的每个样本投影到参考子样本位置,并通过2抽头双线性滤波器对参考样本进行插值。
在一些实现方式中,为了捕捉与边缘上的参考的衰减空间相关性,可设计称为滤波器帧内模式的额外滤波器模式。对于这些模式,除了块外样本之外,块内的预测样本也可以用作块内一些贴片的帧内预测参考样本。例如,这些模式可以预定义,并且可用于至少亮度块(或仅亮度块)的帧内预测。可以预先设计预定数量(例如,五个)的滤波器帧内模式,每个模式由一组n抽头滤波器(例如,7抽头滤波器)表示,反映了例如4×2贴片中的样本和与其相邻的n个相邻样本之间的相关性。换言之,n抽头滤波器的加权因子可以是位置相关的。以8×8块、4×2贴片和7抽头滤波为例,如图11所示,8×8块1102可以被分成八个4×2贴片。在图11中,这些贴片由B0、B1、B1、B3、B4、B5、B6和B7表示。对于每个贴片,其7个邻居(在图11中由R0~R7表示)可用于预测当前贴片中的样本。对于贴片B0,所有的邻居可能已经重构。但是对于其他贴片,一些邻居在当前块中,因此可能没有重构,则直接邻居的预测值用作参考。例如,如图11所示的贴片B7的所有邻居都没有重构,因此使用邻居的预测样本来代替。
在帧内预测的一些实现方式中,可以使用一个或多个其他颜色分量来预测一个颜色分量。颜色分量可以是YCrCb、RGB、XYZ颜色空间等中的任何一种分量。例如,可以实现从亮度分量(例如,亮度参考样本)预测色度分量(例如,色度块),称为从亮度预测色度,或CfL。在一些示例实现方式中,可以仅允许从亮度到色度的跨色预测。例如,色度块中的色度样本可以被建模为重合的重构亮度样本的线性函数。CfL预测可以如下实现:
CfL(α)=α×LAC+DC (1)
其中,LAC表示亮度分量的AC贡献,α表示线性模型的参数,DC表示色度分量的DC贡献。例如,针对块的每个样本获得AC分量,而针对整个块获得DC分量。具体而言,可以将重构的亮度样本二次采样成色度分辨率,然后可以从每个亮度值中减去平均亮度值(亮度的DC),以形成亮度中的AC贡献。然后,亮度的AC贡献用于等式(1)的线性模式,以预测色度分量的AC值。为了从亮度AC贡献中近似或预测色度AC分量,而非要求解码器计算缩放参数,示例CfL实现方式可以基于原始色度样本来确定参数α,并在比特流中信令。这降低了解码器的复杂度,并产生更精确的预测。至于色度分量的DC贡献,在一些示例实现方式中,可以使用色度分量内的帧内DC模式来计算。
然后,可以对帧内预测块或帧间预测块的残差进行变换,随后对变换系数进行量化。出于执行变换的目的,可在变换之前将帧内和帧间编码块进一步划分成多个变换块(有时可互换地用作“变换单元”,即使术语“单元”通常用于表示三色信道的集合,例如,“编码单元”将包括亮度编码块和色度编码块)。在一些实现方式中,可以指定编码块(或预测块)的最大划分深度(术语“编码块”可以与“编码块”互换使用)。例如,这种划分可能不超过2级。可以在帧内预测块和帧间预测块之间不同地处理将预测块划分成变换块。然而,在一些实现方式中,这种划分在帧内预测块和帧间预测块之间可以是相似的。
在一些示例实现方式中,对于帧内编码块,可以以所有变换块具有相同大小的方式进行变换划分,并且以光栅扫描顺序对变换块进行编码。图12中示出帧内编码块的此类变换块划分的示例。具体地,图12示出了编码块1202经由中间级四叉树分裂1204被划分成16个相同块大小的变换块,如1206所示。用于编码的示例光栅扫描顺序由图12中的有序箭头示出。
在一些示例实现方式中,对于帧间编码块,变换单元划分可以以递归方式进行,划分深度达到预定义的级别数(例如,2级)。如图13所示,对于任何子分区和任何级别,划分可以递归地停止或继续。具体地,图13示出了一个示例,其中,块1302被分成四个四叉树子块1304,并且其中一个子块被进一步分成四个第二级变换块,而其他子块的划分在第一级之后停止,产生两种不同大小的总共7个变换块。用于编码的示例光栅扫描顺序由图13中的有序箭头进一步示出。虽然图13示出了多达两级的正方形变换块的四叉树划分的示例实现方式,但是在一些生成实现方式中,变换划分可以支持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)变换块的倍数。
上面的每个变换块然后可以经受初级变换。主变换实质上是将变换块中的残差从空间域移动到频域。在实际主变换的一些实现方式中,为了支持上面的示例扩展编码块分区,可以允许多个变换大小(对于两个维度中的每个维度,范围从4点到64点)和变换形状(正方形;宽度/高度比为2:1/1:2和4:1/1:4的矩形)。
特别转向帧内模式编码,并且对于帧内编码的特定编码块、编码单元、预测块或预测单元,其帧内模式需要由比特流中的一个或多个语法元素来信令。如上所述,可能的帧内预测模式的数量可能很大。例如,在上文描述的一些实现方式中,可用帧内预测模式的数量可包含62种不同模式,包含例如56种定向帧内预测模式(例如,8种标称方向,在每一标称方向中具有7个精细角度)、5种非定向模式和一种色度源自亮度模式(仅针对色度分量)。一旦在特定编码块、编码单元、预测块或预测的编码过程期间选择了帧内模式,则对应于所选帧内模式的信令需要包括在比特流中。信令语法必须能够以某种方式区分所有这62种模式。例如,这62种模式可以使用62个索引的单个语法来信令,每个索引对应于一种模式。在一些其他示例实现方式中,可以信令一种语法来指示哪个标称角度或非定向模式用作当前块中的标称模式,然后,如果当前块的标称模式是定向模式,则可以另外信令另一种语法来指示为当前块选择哪个增量角度。
由于与帧内编码相关的各种语法通常占据比特流的大部分,并且帧内模式选择必须非常频繁信令,例如,在各种编码级别,因此减少用于帧内模式信令的比特数对于提高视频编码效率变得至关重要。在实践中,各种帧内预测模式的使用可以遵循某些统计模式,并且这种使用模式可以用于设计帧内模式和信令语法的索引,从而可以增强信令效率。此外,平均而言,在块与块之间的帧内模式选择之间可能存在一些相关性。这种相关性可以在统计的基础上离线获得,并且在用于选择帧内模式的信令的语法设计中考虑。目标是平均减少编码比特流中信令语法元素的比特数。例如,一些一般统计可指示在当前块及其相邻块的最佳帧内预测模式之间可能存在强相关性。当设计帧内模式编码的语法时,可以利用这种相关性。
以下各种示例实现方式可以单独使用或者以任何顺序组合使用。此外,这些实现方式中的每一个都可以被实现为编码器和/或解码器的一部分,并且可以用硬件或软件来实现。例如,可以在专用处理电路(例如,一个或多个集成电路)中硬编码。在另一个示例中,可以通过一个或多个处理器执行存储在非暂时性计算机可读介质中的程序来实现。
在一些示例实现方式中,正被编码的当前块的可用帧内预测模式或模式选项可被分成多个帧内预测模式集合。每个集合可以被分配一个模式集合索引。每个集合可以包含多个帧内模式预测模式。基于块之间的帧内预测模式之间的相关性,可以至少部分地根据其相邻块所使用的帧内预测模式来确定对可用帧内预测模式进行划分和排序以及对每个模式集合中的帧内预测模式进行排序的方式。相邻块使用的帧内预测模式可被称为“参考帧内预测模式”或“参考模式”。可以确定和选择特定单元的帧内预测模式。可以信令帧内预测模式的选择。首先,可以信令模式集合索引,以指示包含所选帧内预测模式的帧内预测模式集合的模式集合索引。其次,可以信令模式索引(或者称为集合内的模式位置索引),以指示模式集合内的所选帧内预测模式的索引。
上面的帧内预测模式划分和排序的一般实现方式以及下面的具体示例利用统计效应和相邻相关性来动态地索引这些模式,使得用于在编码的视频比特流中信令其选择的语法的设计可以被优化,以提高编码效率。例如,这些实现方式可以有助于减少信令的语法数量,并且有助于熵编码的更高效的上下文生成。
在一些示例实施例中,编码器可用的预定义的帧内预测模式的集合可以包括P模式。例如,P可以是62(例如,56个定向模式、5个非定向模式和1个亮度用于色度模式),或者任何其他预定义的数字。帧内预测模式集合的数量可以由M来指示,并且每个模式集合的帧内预测模式的数量由Ni来指示,其中,i用于指示模式集合索引,范围例如从1到M,或者从0到M-1。不同Ni中的最大值表示为Nmax
在一些示例实现方式中,Nmax可以被限制为等于2的幂的数。例如,Nmax可以被限制为8或16或32。这种设计可以帮助有效地使用信令语法中的信令比特。
在一些示例实现方式中,当M大于2时,所有M个模式集合的Ni可以被限制为仅具有最多两个不同的值。以这种方式,可以简化和精简每个模式集合内的信令模式索引的语法。
在一些示例实现方式中,如果当前块的可用帧内预测模式的数量等于Nmax的倍数,则每个模式集合中的模式数量相等并被设置为Nmax。换言之,如果P可被Nmax整除,则M个模式集合中的每个将包含相同的Nmax个帧内预测模式。例如,如果P=64且M=4,则每个模式集合可包含16个(Nmax=16,或2的4次方)帧内预测模式。以这种方式,Ni在所有M个模式集合中是相同的数,这进一步优化了针对所选帧内预测模式的M个模式集合内的信令模式索引的语法设计。
在一些示例实现方式中,如果当前块(P)的可用帧内预测模式的数量不等于Nmax的倍数,则一个集合中的帧内模式的数量可以小于Nmax,但是所有其他模式集合中的帧内模式的数量等于Nmax。换言之,在所有M个模式集合中,Ni具有两个可能的值。其中一个值可以是Nmax。另一个值可以小于Nmax。M个模式集合中除了一个具有较少模式数的模式集合之外,都具有Nmax个帧内预测模式。例如,P可以是62,M可以是4,Nmax可以是16,4个模式组中的3个均可以包含16个模式,另一个模式集合可以包含14个模式。再如,亮度分量的可用帧内预测模式的总数可以是61,M被设置为4,N0是13,N1、N2和N3都等于16。此外,此类实现方式可有助于简化针对所选帧内预测模式的M个模式集合中的信令模式索引的语法设计。
在一些示例实现方式中,所有非定向模式的(相对)位置是预先确定和固定的,与相邻块的帧内预测模式无关。换言之,将非定向模式放置和布置到模式集合中和所有可用模式中的模式集合内可以独立于相邻块的帧内预测模式(或参考模式),而将其他帧内预测模式布置到模式集合中或模式集合内可以取决于参考模式。以这种方式,模式集合的动态确定可以简化,利用了非定向模式在相邻块之间可能不是如此相关的统计。
在一些示例实现方式中,P个可用模式中的所有非定向模式可被放置在第一帧内模式集合(具有最低模式集合索引),与相邻块的帧内预测模式无关。
在一些示例实现方式中,DC预测模式(非定向模式)可以总是被放置在第一帧内模式集合(具有最低索引的模式集合)的第一相对位置(模式集合内的最低位置索引),与相邻块的帧内预测模式无关。
在一些示例实现方式中,一个或多个基于递归滤波的帧内预测模式可以作为DC预测模式的子模式来信令。因此,仅当模式集合索引和位置索引指示选择了DC模式时(例如,模式索引和位置索引都是最低的,例如,在先前的示例实现方式中两者都等于0),才可以另外信令基于递归滤波的帧内预测模式。
在一些示例实现方式中,如上所述的SMOOTH预测模式可以总是被放置在第一帧内模式集合(具有最低模式集合索引的模式集合)的第二位置(第二最低位置索引),与相邻块的帧内预测模式无关。
在一些示例实现方式中,如上所述的SMOOTH_V预测模式可以总是被放置在第一帧内模式集合(具有最低模式集合索引的模式集合)的第三位置(第三最低位置索引),与相邻块的帧内预测模式无关。
在一些示例实现方式中,如上所述的SMOOTH_H预测模式可以总是被放置在第一帧内模式集合(具有最低模式集合索引的模式集合)的第四位置(第四最低位置索引),与相邻块的帧内预测模式无关。
在一些示例实现方式中,如上所述的PAETH预测模式可以总是被放置在第一帧内模式集合(具有最低模式集合索引的模式集合)的第五位置(第五最低位置索引),与相邻块的帧内预测模式无关。
在一些其他或进一步的示例实现方式中,基于递归滤波的帧内预测模式可以与DC帧内预测模式独立地信令,并且可以是P模式之一,而不是子模式,并且可以被放置在第一帧内模式集合(具有最低模式集合索引的模式集合),与相邻块的帧内预测模式无关。
在一些进一步的示例实现方式中,可以有一组基于递归滤波的帧内预测模式,并且选择其中之一,并且可以使用额外信令来指示在当前块的基于递归滤波的帧内预测模式集合中选择哪个基于递归滤波的帧内预测模式。
在一些示例实现方式中,当独立于DC帧内预测模式信令时,基于递归滤波的帧内预测模式可以总是被放置在第一帧内模式集合(具有最低模式集合索引的模式集合)的第六位置,与相邻块的帧内预测模式无关。在这种情况下,DC帧内预测模式可以被放置在最低索引模式集合中的最低索引位置。
图14示出了遵循上述用于帧内模式编码的实现方式的基本原理的示例方法的流程图1400。示例方法流程开始于1401。在S1410,接收编码的视频流,编码的视频流包括集合索引和位置索引,集合索引和位置索引用于当前块的帧内预测。在S1420,与视频流中的当前块的至少一个相邻块对应的帧内预测模式被确定为参考模式。在S1430中,基于参考模式确定将P个预定义的帧内预测模式划分为M个帧内预测模式集合的方式,每个帧内预测模式集合包括Ni个位置索引的帧内预测模式,P和M是大于1的整数,Ni是第i个帧内预测模式集合中的预测模式的数量,i是表示M个帧内预测模式集合中的帧内预测模式集合索引的整数。在S1440中,基于接收的集合索引和位置索引以及划分的方式,在P个预定义的帧内预测模式中识别目标帧内预测模式。在S1450中,至少基于根据当前块的集合索引和位置索引识别的目标帧内预测模式来解码编码视频流的当前块。示例方法流程在S1499结束。上述方法流程也应用编码。
本公开的实施例可单独使用或以任何顺序组合使用。此外,方法(或实施例)、编码器和解码器中的每一个可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。本发明中的实施例可应用于亮度块或色度块。
上述技术可以被实现为使用计算机可读指令的计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图15示出了适于实现所公开主题的某些实施例的计算机系统(1500)。
计算机软件可以使用任何合适的机器代码或计算机语言来编码,其可以经受汇编、编译、链接或类似机制来创建包括指令的代码,这些指令可以由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行,或者通过解释、微代码执行等来执行。
指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等。
图15中所示的计算机系统(1500)的组件本质上是示例性的,并且不旨在对实现本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为对计算机系统(1500)的示例性实施例中所示的任何一个组件或组件组合有任何依赖性或要求。
计算机系统(1500)可以包括某些人机接口输入设备。这种人机接口输入设备可以响应一个或多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、鼓掌)、视觉输入(例如:手势)、嗅觉输入(未示出)进行的输入。人机接口设备还可以用于捕捉不一定与人的有意识输入直接相关的某些媒体,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止图像相机获得的照片图像)、视频(例如,二维视频、包括立体视频的三维视频)。
输入人机接口设备可以包括以下一个或多个(每个仅描绘了一个):键盘(1501)、鼠标(1502)、轨迹板(1503)、触摸屏(1510)、数据手套(未示出)、操纵杆(1505)、麦克风(1506)、扫描仪(1507)、相机(1508)。
计算机系统(1500)还可以包括某些人机接口输出设备。这种人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感觉。这种人机接口输出设备可以包括触觉输出设备(例如,通过触摸屏(1510)、数据手套(未示出)或操纵杆(1505)的触觉反馈,但是也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(1509)、耳机(未示出))、视觉输出设备(例如,屏幕(1510),包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个都具有或不具有触摸屏输入能力,每个都具有或不具有触觉反馈能力——其中一些能够通过诸如立体输出之类的方式输出二维视觉输出或多于三维的输出;虚拟现实眼镜(未示出)、全息显示器和烟雾箱(未示出))以及打印机(未示出)。
计算机系统(1500)还可以包括人类可访问的存储设备及其相关联的介质,例如,包括具有CD/DVD或类似介质(1520)的CD/DVD ROM/RW(1520)的光学介质、拇指驱动器(1522)、可移动硬盘驱动器或固态驱动器(1523)、诸如磁带和软盘(未示出)之类的传统磁介质、诸如安全加密狗(未示出)之类的专用ROM/ASIC/PLD设备等。
本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其他瞬时信号。
计算机系统(1500)还可以包括到一个或多个通信网络(1555)的接口(1554)。网络例如可以是无线的、有线的、光学的。网络还可以是局域的、广域的、大都市的、车辆的和工业的、实时的、延迟容忍的等。网络的示例包括诸如以太网、无线LAN之类的局域网、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业网络等。某些网络通常需要连接到某些通用数据端口或外围总线(1549)(例如,计算机系统(1500)的USB端口)的外部网络接口适配器;其他的通常通过连接到如下所述的系统总线而集成到计算机系统(1500)的核心中(例如,PC计算机系统中的以太网接口或智能电话计算机系统中的蜂窝网络接口)。使用这些网络中的任何一个,计算机系统(1500)可以与其他实体通信。这种通信可以是单向的、只接收的(例如,广播电视)、单向的、只发送的(例如,到某些CANbus设备的CANbus),或者是双向的,例如,到使用局域或广域数字网络的其他计算机系统。如上所述,某些协议和协议栈可以用在这些网络和网络接口的每一个上。
前述人机接口设备、人类可访问的存储设备和网络接口可以附接到计算机系统(1500)的核心(1540)。
核心(1540)可以包括一个或多个中央处理单元(CPU)(1541)、图形处理单元(GPU)(1542)、现场可编程门区域(FPGA)(1543)形式的专用可编程处理单元、用于特定任务的硬件加速器(1544)、图形适配器(1550)等。这些设备连同只读存储器(ROM)(1545)、随机存取存储器(1546)、诸如内部非用户可访问硬盘驱动器、SSD之类的内部大容量存储器(1547)可以通过系统总线(1548)连接。在一些计算机系统中,系统总线(1548)可以以一个或多个物理插头的形式访问,以允许额外CPU、GPU等的扩展。外围设备可以直接或者通过外围总线(1549)连接到核心的系统总线(1548)。在一个示例中,屏幕(1510)可以连接到图形适配器(1550)。外围总线的架构包括PCI、USB等。
CPU(1541)、GPU(1542)、FPGA(1543)和加速器(1544)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(1545)或RAM(1546)中。过渡数据可以存储在RAM(1546)中,而永久数据可以存储在例如内部大容量存储器(1547)中。可以通过使用高速缓冲存储器来实现对任何存储设备的快速存储和检索,高速缓冲存储器可以与一个或多个CPU(1541)、GPU(1542)、大容量存储器(1547)、ROM(1545)、RAM(1546)等紧密关联。
计算机可读介质上可以具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是为了本公开的目的而专门设计和构造的,或者可以是计算机软件领域的技术人员公知和可获得的类型。
作为非限制性示例,具有架构(1500)的计算机系统,特别是核心(1540)可以提供作为处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一个或多个有形的计算机可读介质中的软件的结果的功能。这种计算机可读介质可以是与如上所述的用户可访问的大容量存储器相关联的介质以及具有非暂时性的核心(1540)的某些存储器,例如,核心内部大容量存储器(1547)或ROM(1545)。实现本公开的各种实施例的软件可以存储在这样的设备中并由核心执行(1540)。根据特定需要,计算机可读介质可以包括一个或多个存储设备或芯片。该软件可以使核心(1540)并且特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文描述的特定过程或特定过程的特定部分,包括定义存储在RAM(1546)中的数据结构并且根据软件定义的过程修改这样的数据结构。此外或作为替代,计算机系统可以作为硬连线或以其他方式包含在电路中的逻辑(例如:加速器(1544))的结果来提供功能,其可以代替软件或与软件一起操作来执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可以包括存储用于执行的软件的电路(例如,集成电路(IC))、包含用于执行的逻辑的电路或者这两者。本公开包含硬件和软件的任何合适的组合。
虽然本公开已经描述了几个示例性实施例,但是存在落入本公开范围内的变更、置换和各种替代等同物。在上述实现方式和实施例中,过程的任何操作可以根据需要以任何数量或顺序来组合或排列。此外,上述过程的两个或多个操作可以并行执行。因此,应当理解,本领域技术人员将能够设计出许多系统和方法,尽管在此没有明确示出或描述,但是这些系统和方法体现了本公开的原理,并且因此在本公开的精神和范围内。
附录A:缩略语
JEM:共同探索模式
VVC:多功能视频编码
BMS:基准集
MV:运动矢量
HEVC:高效视频编码
SEI:补充增强信息
VUI:视频可用性信息
GOP:图片组
TU:变换单元
PU:预测单元
CTU:编码树单元
CTB:编码树块
PB:预测块
HRD:假设参考解码器
SNR:信噪比
CPU:中央处理器
GPU:图形处理单元
CRT:阴极射线管
LCD:液晶显示器
OLED:有机发光二极管
CD:光盘
DVD:数字视频光盘
ROM:只读存储器
RAM:随机存取存储器
ASIC:专用集成电路
PLD:可编程逻辑器件
LAN:局域网
GSM:全球移动通信系统
LTE:长期演进
CANBus:控制器局域网总线
USB:通用串行总线
PCI:外围组件互连
FPGA:现场可编程门区域
SSD:固态硬盘
IC:集成电路
HDR:高动态范围
SDR:标准动态范围
JVET:联合视频探索小组
MPM:最可能模式
WAIP:广角帧内预测
CU:编码单元
PU:预测单元
TU:变换单元
CTU:编码树单元
PDPC:位置相关预测组合
ISP:帧内子分区
SPS:序列参数设置
PPS:图片参数集
APS:自适应参数集
VPS:视频参数集
DPS:解码参数集
ALF:自适应环路滤波器
SAO:样本自适应偏移
CC-ALF:交叉分量自适应环路滤波器
CDEF:约束方向增强滤波器
CCSO:交叉分量样本偏移
LSO:本地样本偏移
LR:环路恢复滤波器
AV1:AOMedia视频1
AV2:AOMedia视频2

Claims (26)

1.一种用于对编码视频流的当前块执行帧内预测的方法,其特征在于,包括:
接收所述编码视频流,所述编码视频流包括集合索引和位置索引,所述集合索引和所述位置索引用于所述当前块的帧内预测;
将与所述视频流中的所述当前块的至少一个相邻块对应的帧内预测模式确定为参考模式;
基于所述参考模式确定将P个预定义的帧内预测模式划分为M个帧内预测模式集合的方式,每个帧内预测模式集合包括Ni个位置索引的帧内预测模式,P和M是大于1的整数,Ni是第i个帧内预测模式集合中的预测模式的数量,i是表示所述M个帧内预测模式集合中的帧内预测模式集合索引的整数;
基于接收的所述集合索引和所述位置索引以及划分的所述方式,在所述P个预定义的帧内预测模式中识别目标帧内预测模式;以及
至少基于根据所述当前块的所述集合索引和所述位置索引识别的所述目标帧内预测模式来解码所述编码视频流的所述当前块。
2.根据权利要求1所述的方法,其特征在于,Nmax是2的幂,Nmax是Ni中的最大值。
3.根据权利要求2所述的方法,其特征在于,当M大于2时,Ni选自第一数量和第二数量。
4.根据权利要求3所述的方法,其特征在于,Ni对于所有M个帧内预测模式集合是相同的值。
5.根据权利要求3所述的方法,其特征在于,所述M个帧内预测模式集合中的一个帧内预测模式集合包括所述第二数量的帧内预测模式,所述M个帧内预测模式集合中的所有其他帧内预测模式集合包括所述第一数量的帧内预测模式。
6.根据权利要求3所述的方法,其特征在于,M=4,并且Nmax=16。
7.根据权利要求6所述的方法,其特征在于,P=61,所述第一数量是16,所述第二数量是13。
8.根据权利要求7所述的方法,其特征在于:
所述P个预定义的帧内预测模式包括非定向帧内预测模式的子集;以及
所述M个帧内预测模式集合中的所述非定向帧内预测模式的子集的相对顺序是固定的,与所述参考模式无关。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述非定向帧内预测模式的子集都在所述M个帧内预测模式集合中位于第一位置的帧内预测模式集合内,与所述参考模式无关。
10.根据权利要求9所述的方法,其特征在于,所述非定向帧内预测模式的子集包括DC预测模式,所述DC预测模式总是被放置为位于所述第一位置的帧内预测模式集合中的第一个,与所述参考模式无关。
11.根据权利要求10所述的方法,其特征在于,基于递归滤波的帧内预测模式被表示为所述DC预测模式的子模式。
12.根据权利要求9所述的方法,其特征在于,所述非定向帧内预测模式的子集包括SMOOTH预测模式,所述SMOOTH预测模式总是被定位为位于所述第一位置的帧内预测模式集合中的第二个,与所述参考模式无关。
13.根据权利要求9所述的方法,其特征在于,所述非定向帧内预测模式的子集包括SMOOTH_V预测模式,所述SMOOTH_V预测模式总是被定位为位于所述第一位置的帧内预测模式集合中的第三个,与所述参考模式无关。
14.根据权利要求9所述的方法,其特征在于,所述非定向帧内预测模式的子集包括SMOOTH_H预测模式,所述SMOOTH_H预测模式总是被定位为位于所述第一位置的帧内预测模式集合中的第四个,与所述参考模式无关。
15.根据权利要求9所述的方法,其特征在于,所述非定向帧内预测模式的子集包括PAETH预测模式,所述PAETH预测模式总是被定位为位于所述第一位置的帧内预测模式集合中的第五个,与所述参考模式无关。
16.根据权利要求1-8中任一项所述的方法,其特征在于:
所述P个预定义的帧内预测模式包括基于递归滤波的帧内预测模式;
将所述基于递归滤波的帧内预测模式按顺序放置为所述M个帧内预测模式集合中的位于第一位置的帧内预测模式集合,与所述参考模式无关;以及
所述基于递归滤波的帧内预测模式被表示为独立于任何DC帧内预测模式。
17.根据权利要求16所述的方法,其特征在于,当为所述当前块所识别的所述目标帧内预测模式是所述基于递归滤波的帧内预测模式时,所述方法还包括确定分别基于所述集合索引和所述位置索引选择一组基于递归滤波的帧内预测模式中的一个。
18.根据权利要求16所述的方法,其特征在于,所述基于递归滤波的帧内预测模式总是被放置在位于所述第一位置的帧内预测模式集合中的第六个,与所述参考模式无关。
19.根据权利要求16所述的方法,其特征在于,所述P个预定义的帧内预测模式包括至少一个定向帧内预测模式、至少一个非定向帧内预测模式和至少一个亮度对色度帧内预测模式。
20.一种用于对编码视频流的当前块执行帧内预测的设备,其特征在于,包括处理电路,所述处理电路被配置为:
接收所述编码视频流,所述编码视频流包括集合索引和位置索引,所述集合索引和所述位置索引用于所述当前块的帧内预测;
将与所述视频流中的所述当前块的至少一个相邻块对应的帧内预测模式确定为参考模式;
基于所述参考模式确定将P个预定义的帧内预测模式划分为M个帧内预测模式集合的方式,每个帧内预测模式集合包括Ni个位置索引的帧内预测模式,P和M是大于1的整数,Ni是第i个帧内预测模式集合中的预测模式的数量,i是表示所述M个帧内预测模式集合中的帧内预测模式集合索引的整数;
基于接收的所述集合索引和所述位置索引以及划分的所述方式,在所述P个预定义的帧内预测模式中识别目标帧内预测模式;以及
至少基于根据所述当前块的所述集合索引和所述位置索引识别的所述目标帧内预测模式来解码所述编码视频流的所述当前块。
21.一种用于对编码视频流的当前块执行帧内预测的设备,其特征在于,包括被配置为执行根据权利要求2-8中任一项所述的方法的处理电路。
22.一种用于对编码视频流的当前块执行帧内预测的设备,其特征在于,包括被配置为执行权利要求9的处理电路。
23.一种用于对编码视频流的当前块执行帧内预测的设备,其特征在于,包括被配置为执行权利要求16的处理电路。
24.一种用于存储计算机指令的非暂时性计算机可读介质,其特征在于,当由处理器执行时,所述计算机指令使处理器执行权利要求1-8中的任一项。
25.一种用于存储计算机指令的非暂时性计算机可读介质,其特征在于,当由处理器执行时,所述计算机指令使处理器执行权利要求9。
26.一种用于存储计算机指令的非暂时性计算机可读介质,其特征在于,当由处理器执行时,所述计算机指令使处理器执行权利要求16。
CN202280008349.2A 2021-06-11 2022-01-28 改进的帧内模式编码 Pending CN116783888A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163209806P 2021-06-11 2021-06-11
US63/209,806 2021-06-11
US17/573,306 US12081742B2 (en) 2022-01-11 Intra mode coding
US17/573,306 2022-01-11
PCT/US2022/014284 WO2022260722A1 (en) 2021-06-11 2022-01-28 Improved intra mode coding

Publications (1)

Publication Number Publication Date
CN116783888A true CN116783888A (zh) 2023-09-19

Family

ID=84390729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280008349.2A Pending CN116783888A (zh) 2021-06-11 2022-01-28 改进的帧内模式编码

Country Status (5)

Country Link
EP (1) EP4128751A4 (zh)
JP (1) JP2023543983A (zh)
KR (1) KR20230152747A (zh)
CN (1) CN116783888A (zh)
WO (1) WO2022260722A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109863749A (zh) * 2016-10-19 2019-06-07 Sk电信有限公司 用于对图像进行编码或解码的设备和方法
US20190182482A1 (en) * 2016-04-22 2019-06-13 Vid Scale, Inc. Prediction systems and methods for video coding based on filtering nearest neighboring pixels
US20190306499A1 (en) * 2018-03-30 2019-10-03 Hulu, LLC Intra Prediction Mode Signaling For Video Coding
WO2020048463A1 (en) * 2018-09-03 2020-03-12 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction
US20210160519A1 (en) * 2019-11-27 2021-05-27 Tencent America LLC Method and apparatus for video coding

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438478B (zh) * 2016-04-06 2024-08-16 株式会社Kt 对视频进行编码、解码的方法及存储压缩视频数据的设备
KR20180040319A (ko) * 2016-10-12 2018-04-20 가온미디어 주식회사 영상 처리 방법, 그를 이용한 영상 복호화 및 부호화 방법
BR112020026381A2 (pt) * 2018-06-25 2021-03-23 Guangdong Oppo Mobile Telecommunications Corp., Ltd. método de intrapredição
US11159806B2 (en) * 2018-06-28 2021-10-26 Qualcomm Incorporated Position dependent intra prediction combination with multiple reference lines for intra prediction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190182482A1 (en) * 2016-04-22 2019-06-13 Vid Scale, Inc. Prediction systems and methods for video coding based on filtering nearest neighboring pixels
CN109863749A (zh) * 2016-10-19 2019-06-07 Sk电信有限公司 用于对图像进行编码或解码的设备和方法
US20190306499A1 (en) * 2018-03-30 2019-10-03 Hulu, LLC Intra Prediction Mode Signaling For Video Coding
WO2020048463A1 (en) * 2018-09-03 2020-03-12 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction
CN112640467A (zh) * 2018-09-03 2021-04-09 华为技术有限公司 用于帧内预测的方法和装置
US20210160519A1 (en) * 2019-11-27 2021-05-27 Tencent America LLC Method and apparatus for video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. CHEN等: "THE Joint Exploration Mode(JEM) for video compression with capability beyond hevc", 《 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》, 7 October 2019 (2019-10-07), pages 2 *

Also Published As

Publication number Publication date
KR20230152747A (ko) 2023-11-03
EP4128751A1 (en) 2023-02-08
EP4128751A4 (en) 2023-10-04
JP2023543983A (ja) 2023-10-19
WO2022260722A1 (en) 2022-12-15
US20220400255A1 (en) 2022-12-15

Similar Documents

Publication Publication Date Title
CN116723315B (zh) 视频解码的方法和装置、视频编码的方法和装置及存储介质
CN112534812B (zh) 用于视频解码的方法和相关装置
JP7508705B2 (ja) イントラ予測モード向けのエントロピーコーディングのための方法、装置、及びコンピュータプログラム
JP2023520594A (ja) ビデオ・コーディングのための方法及び装置
JP7513743B2 (ja) 多重参照ライン・イントラ予測のための方法、装置及びコンピュータ・プログラム
CN115486077A (zh) 针对变换系数的符号图的改进熵编码
CN115804089A (zh) 零残差标志编解码
JP7540082B2 (ja) オフセット・ベースのリファインメント及び複数参照ライン選択の調和的設計
JP7544433B2 (ja) イントラ双方向予測及び複数参照ライン選択のための調和設計
CN115699738B (zh) 视频编解码方法设备、装置以及计算机可读存储介质
US12081742B2 (en) Intra mode coding
US20230069984A1 (en) Hardware friendly design for intra mode coding
US20220400255A1 (en) Intra Mode Coding
JP2024116385A (ja) イントラ予測モード向けのエントロピーコーディングのための方法、装置、及びコンピュータプログラム
CN117693934A (zh) 基于合并色度块的亮度色度预测
KR20240000570A (ko) 인트라 양예측 및 다중 참조 라인 선택을 위한 조화로운 설계
CN116806427A (zh) 用于基于偏移的修正和多参考行选择的协调设计
JP2023546674A (ja) イントラモードコーディングのための改良
CN117296320A (zh) 使用映射和不同类型的从亮度到色度预测
CN116472711A (zh) 用于帧内模式编码的硬件友好设计
CN116998153A (zh) 基于多个预测模式的交叉通道预测
JP2024123248A (ja) 多重参照ライン・イントラ予測のための方法、装置及びコンピュータ・プログラム
CN117242772A (zh) 使用邻近亮度样本的根据亮度的色度预测
CN116636205A (zh) 次级变换系数的扫描顺序
CN116368801A (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: 40094805

Country of ref document: HK