CN117643056A - 视频编解码中的递归预测单元 - Google Patents

视频编解码中的递归预测单元 Download PDF

Info

Publication number
CN117643056A
CN117643056A CN202280047221.7A CN202280047221A CN117643056A CN 117643056 A CN117643056 A CN 117643056A CN 202280047221 A CN202280047221 A CN 202280047221A CN 117643056 A CN117643056 A CN 117643056A
Authority
CN
China
Prior art keywords
pus
block
video
prediction
ptu
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
CN202280047221.7A
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.)
Douyin Vision Co Ltd
ByteDance Inc
Original Assignee
Douyin Vision Co Ltd
ByteDance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Douyin Vision Co Ltd, ByteDance Inc filed Critical Douyin Vision Co Ltd
Publication of CN117643056A publication Critical patent/CN117643056A/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

公开了一种由视频编解码装置实施的用于处理视频数据的机制。该机制确定将编解码树单元(CTU)划分为一个或多个编解码单元(CU)。CU中的一个或多个可以是一个或多个预测树单元(PTU)。该机制进一步确定将CU递归地划分为预测单元(PU)。该方法基于PU来执行可视媒体数据和比特流之间的转换。

Description

视频编解码中的递归预测单元
相关申请的交叉引用
本专利申请要求北京字节跳动网络技术有限公司等于2021年6月30日提交的题为“Recursive Prediction Unit in Video Coding(视频编解码中的递归预测单元)”的国际申请No.PCT/CN2021/103527的权益,其通过引用合并于此。
技术领域
本专利文档涉及文件格式的数字音频视频媒体信息的生成、存储和消费。
背景技术
数字视频占了互联网和其他数字通信网络上使用的最大带宽。随着能够接收和显示视频的连接用户设备的数量增加,对数字视频使用的带宽需求可能继续增长。
发明内容
第一方面涉及一种用于处理视频数据的方法,包括:确定将编解码树单元(CTU)划分为一个或多个编解码单元(CU);确定将CU递归地划分为预测单元(PU),其中CU中的一个或多个是一个或多个预测树单元(PTU);以及基于PU来执行可视媒体数据和比特流之间的转换。
可选地,在任一前述方面,该方面的另一实施方式提供了至少一个PTU是叶PU,并且其中叶PU不被进一步划分。
可选地,在任一前述方面,该方面的另一实施方式提供了至少一个PTU被进一步划分为多个PU。
可选地,在任一前述方面,该方面的另一实施方式提供了PU中的至少一个被进一步划分为多个PU。
可选地,在任一前述方面,该方面的另一实施方式提供了叶PU不被进一步划分,并且来自共同PTU的不同叶PU具有不同的预测模式。
可选地,在任一前述方面,该方面的另一实施方式提供了来自多个PU的残差在单个变换单元(TU)中被变换编解码。
可选地,在任一前述方面,该方面的另一实施方式提供了PTU被划分为:通过四叉树(QT)划分的四个PU、通过垂直二叉树(BT)划分的两个PU、通过水平BT划分的两个PU、通过垂直三叉树(TT)划分的三个PU、通过水平TT划分的三个PU、通过垂直非对称四叉树(UQT)划分的四个PU、通过水平UQT划分的四个PU、通过垂直非对称二叉树(UBT)划分的两个PU、通过水平UBT划分的两个PU、通过垂直扩展四叉树(EQT)划分的四个PU、通过水平EQT划分的四个PU、或者其组合。
可选地,在任一前述方面,该方面的另一实施方式提供了一个或多个PU被划分为:通过四叉树(QT)划分的四个PU、通过垂直二叉树(BT)划分的两个PU、通过水平BT划分的两个PU、通过垂直三叉树(TT)划分的三个PU、通过水平TT划分的三个PU、通过垂直非对称四叉树(UQT)划分的四个PU、通过水平UQT划分的四个PU、通过垂直非对称二叉树(UBT)划分的两个PU、通过水平UBT划分的两个PU、通过垂直扩展四叉树(EQT)划分的四个PU、通过水平EQT划分的四个PU、或者其组合。
可选地,在任一前述方面,该方面的另一实施方式提供了比特流包括指示应用于PU和PTU的划分的语法。
可选地,在任一前述方面,该方面的另一实施方式提供了比特流包括指示对应的PTU是否被进一步划分为多个PU的语法元素。
可选地,在任一前述方面,该方面的另一实施方式提供了比特流包括指示对应的PU是否被进一步划分为多个PU的语法元素。
可选地,在任一前述方面,该方面的另一实施方式提供了比特流包括指示PTU或PU的划分模式和划分方向的语法。
可选地,在任一前述方面,该方面的另一实施方式提供了指示划分模式和划分方向的语法在PTU或PU被进一步划分时仅针对PTU或PU而被信令通知。
可选地,在任一前述方面,该方面的另一实施方式提供了深度针对PU或PTU而被计算。
可选地,在任一前述方面,该方面的另一实施方式提供了深度是指示祖先视频单元通过QT被划分的次数的QT深度。
可选地,在任一前述方面,该方面的另一实施方式提供了深度是指示祖先视频单元通过任何划分类型被划分的次数的多类型树(MTT)深度。
可选地,在任一前述方面,该方面的另一实施方式提供了深度被初始化为与PTU或PU相对应的CU的深度。
可选地,在任一前述方面,该方面的另一实施方式提供了当前视频单元的划分不包括在比特流中,并且由解码器推断,并且其中当前视频单元是PU或PTU。
可选地,在任一前述方面,该方面的另一实施方式提供了划分根据以下而被推断:当前视频单元维度、当前视频单元深度、相对于图片边界的当前视频单元位置、相对于子图片边界的当前视频单元位置、当前视频单元是否可以被进一步划分、相对于深度阈值的当前视频单元深度、相对于高度阈值的当前视频单元高度、相对于宽度阈值的当前视频单元宽度、或者其组合。
可选地,在任一前述方面,该方面的另一实施方式提供了划分通过以下的比较而不被允许:相对于高度阈值的当前视频单元高度、相对于宽度阈值的当前视频单元宽度、相对于尺寸阈值的当前视频高度和当前视频宽度、相对于深度阈值的当前视频单元深度、相对于尺寸阈值的当前视频单元尺寸、或者其组合。
可选地,在任一前述方面,该方面的另一实施方式提供了转换包括将可视媒体数据编码为比特流。
可选地,在任一前述方面,该方面的另一实施方式提供了转换包括解码比特流以获得可视媒体数据。
第二方面涉及一种用于处理视频数据的装置,包括:处理器;以及非暂时性存储器,其上具有指令,其中该指令在由处理器执行时使得处理器执行任一前述方面的方法。
第三方面提供了一种非暂时性计算机可读介质,包括供视频编解码设备使用的计算机程序产品,该计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可执行指令,使得当由处理器执行时,使视频编解码设备执行任一前述方面的方法。
第四方面涉及一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中该方法包括:确定将一个或多个编解码单元(CU)递归地划分为预测单元(PU);以及基于该确定来生成比特流。
第五方面涉及一种用于存储视频的比特流的方法,包括:确定将一个或多个编解码单元(CU)递归地划分为预测单元(PU);基于该确定来生成比特流;以及将比特流存储在非暂时性计算机可读记录介质中。
为了清楚的目的,任何一个前述实施例可以与任何一个或多个其他前述实施例组合,以在本公开的范围内创建新的实施例。
从结合附图的以下详细描述以及权利要求中,将更清楚地理解这些和其他特征。
附图说明
为了更完整地理解本公开,现在结合附图和详细描述参考以下简要描述,其中相同的附图标记表示相同的部分。
图1是视频编解码的示例编码和解码(编解码器)的示意图。
图2是示例宏块分区的示意图。
图3是用于例如根据高效视频编解码(HEVC)来分割编解码块的示例模式的示意图。
图4是用于分割图片以对残差进行编解码的示例方法的示意图。
图5是用于例如根据四叉树二叉树(QTBT)结构来分割图片的示例方法的示意图。
图6是通用视频编解码(VVC)中使用的示例分割结构的示意图。
图7是示例扩展三叉树(ETT)分割结构的示意图。
图8是示例1/4非对称二叉树(UBT)分割结构的示意图。
图9是用于在用于根据帧间预测的视频编解码的Merge模式中推导候选列表的示例过程的示意图。
图10是图示在Merge模式中使用的空域Merge候选的示例位置的示意图。
图11是图示考虑用于Merge模式中使用的空域Merge候选的冗余检查的示例候选对的示意图。
图12是图示当采用Merge模式时推导当前PU的空域Merge候选时使用的第二预测单元(PU)的示例位置的示意图。
图13是图示当采用Merge模式时时域Merge候选的运动矢量缩放的示意图。
图14是图示当采用Merge模式时时域Merge候选的候选位置的示意图。
图15是图示组合双向预测Merge候选列表的示例的示意图。
图16是图示在高级运动矢量预测(AMVP)中推导运动矢量预测候选的方法的流程图。
图17是图示空域运动矢量候选的运动矢量缩放的示例的示意图。
图18是图示编解码单元(CU)的替代时域运动矢量预测(ATMVP)运动预测的示例的示意图。
图19是图示子CU的空时运动矢量预测的示例的示意图。
图20是图示将重叠块运动补偿(OBMC)应用于子块的示例的示意图。
图21是图示用于推导照明补偿参数的邻近样点的示例的示意图。
图22是图示仿射运动补偿预测的仿射模型的示例的示意图。
图23是图示仿射帧间预测的运动矢量预测的示例的示意图。
图24是图示仿射帧间预测的候选的示例的示意图。
图25是图示双向帧间预测中使用的双向匹配的示例的示意图。
图26是图示帧间预测中使用的模板匹配的示例的示意图。
图27是图示帧速率上转换(FRUC)中的单边运动估计的示例的示意图。
图28是图示双向光流轨迹的示例的示意图。
图29是图示没有块扩展的双向光流(BIO)的示例的示意图。
图30是图示BIO中使用的插值样点的示例的示意图。
图31是图示基于双边模板匹配的解码器侧运动矢量细化(DMVR)的示例的示意图。
图32是图示用于计算模板匹配中的绝对差和(SAD)的邻近样点的示例的示意图。
图33是图示用于计算模板匹配中子编解码单元(CU)级别运动信息的SAD的邻近样点的示例的示意图。
图34是图示在更新Merge候选列表中使用的排序过程的示例的示意图。
图35是由递归PU划分的示例编解码树单元(CTU)的示意图。
图36是图示由递归PU划分的示例CTU的流程图。
图37是示出示例视频处理系统的框图。
图38是示例视频处理装置的框图。
图39是视频处理的示例方法的流程图。
图40是图示示例视频编解码系统的框图。
图41是图示示例编码器的框图。
图42是图示示例解码器的框图。
图43是示例编码器的示意图。
具体实施方式
在开始时就应理解,尽管下面提供了一个或多个实施例的说明性实施方式,但是所公开的系统和/或方法可以使用任何数量的技术来实施,无论是当前已知的还是有待开发的。本公开不应以任何方式限于以下图示的说明性实施方式、附图和技术,包括本文图示和描述的示例性设计和实施方式,而是可以在所附权利要求及其等同物的完全范围内进行修改。
本文档涉及图像/视频编解码,更具体地,涉及图片的分割。所公开的机制可以应用于诸如高效视频编解码(High Efficiency Video Coding,HEVC)和/或通用视频编解码(VVC)之类的视频编解码标准。这种机制也可以适用于其他视频编解码标准和/或视频编解码器。
视频编解码标准主要通过国际电信联盟(International TelecommunicationUnion,ITU)电信标准化部门(ITU Telecommunication Standardization Sector,ITU-T)和国际标准化组织(ISO)/国际电工委员会(International ElectrotechnicalCommission,IEC)标准的发展而演进。ITU-T制定了H.261标准和H.263标准,ISO/IEC制定了运动图片专家组(Motion Picture Experts Group,MPEG)第一阶段(MPEG phase one,MPEG-1)和MPEG第四阶段(MPEG phase four,MPEG-4)视频标准,并且这两个组织联合制定了H.262/MPEG第二阶段(MPEG phase two,MPEG-2)视频标准、H.264/MPEG-4高级视频编解码(Advanced Video Coding,AVC)标准和H.265/高效视频编解码(HEVC)标准。自H.262以来,视频编解码标准基于利用时域预测加上变换编解码的混合视频编解码结构。
图1是例如根据HEVC的视频编解码的示例编码和解码(编解码器)的示意图。例如,编解码器100提供支持通过对图片进行编码和/或解码而将视频文件转换成比特流的功能。编解码器100被概括为描绘在编码器和解码器两者中部署的组件。编解码器100接收图片流作为视频信号101,并且分割图片。然后,编解码器100在充当编码器时将视频信号101中的图片压缩成编解码的比特流。当充当解码器时,编解码器100从比特流中生成输出视频信号。编解码器100包括通用编解码器控制组件111、变换缩放和量化组件113、帧内图片估计组件115、帧内图片预测组件117、运动补偿组件119、运动估计组件121、缩放和逆变换组件129、滤波器控制分析组件127、环路滤波器组件125、解码图片缓冲区组件123以及标头格式化和上下文自适应二进制算术编解码(context adaptive binary arithmetic coding,CABAC)组件131。这些组件如图所示耦合。在图1中,实线指示要编码/解码的数据的移动,而虚线指示控制其他组件操作的控制数据的移动。编解码器100的组件可以都存在于编码器中。解码器可以包括编解码器100的组件子集。例如,解码器可以包括帧内图片预测组件117、运动补偿组件119、缩放和逆变换组件129、环路滤波器组件125和解码图片缓冲区组件123。现在描述这些组件。
视频信号101是已经通过编解码树分割成像素块的所捕获的视频序列。编解码树采用各种划分模式将像素块细分成更小的像素块。然后,这些块可以被进一步细分成更小的块。这些块可以称为编解码树上的节点。较大的父节点被划分成较小的子节点。节点被细分的次数称为节点/编解码树的深度。在一些情况下,分割的块可以被包括在编解码单元(coding unit,CU)中。例如,CU可以是CTU的子部分,其包含亮度块、(多个)红色差异色度(Cr)块和(多个)蓝色差异色度(Cb)块以及CU的相应语法指令。划分模式可以包括二叉树(binary tree,BT)、三叉树(triple tree,TT)和四叉树(quad tree,QT),用于依赖于所采用的划分模式将一个节点分别分割成两个、三个或四个不同形状的子节点。视频信号101被转发到通用编解码器控制组件111、变换缩放和量化组件113、帧内图片估计组件115、滤波器控制分析组件127和运动估计组件121以进行压缩。
通用编解码器控制组件111被配置为根据应用约束做出与将视频序列的图像编解码成比特流相关的决策。例如,通用编解码器控制组件111管理比特率/比特流尺寸相对于重构质量的优化。可以基于存储空间/带宽可用性和图像分辨率请求来做出这种决策。通用编解码器控制组件111还鉴于传输速度来管理缓冲区利用,以减轻缓冲区欠载运行和过载运行问题。为了管理这些问题,通用编解码器控制组件111管理其他组件的分割、预测和滤波。例如,通用编解码器控制组件111可以增加压缩复杂度以增加分辨率并增加带宽使用,或者降低压缩复杂度以降低分辨率和带宽使用。因此,通用编解码器控制组件111控制编解码器100的其他组件,以平衡视频信号重构质量与比特率的关系。通用编解码器控制组件111创建控制数据,控制数据控制其他组件的操作。控制数据还被转发到标头格式化和CABAC组件131以编码在比特流中,从而用信令通知用于在解码器处解码的参数。
视频信号101也被发送到运动估计组件121和运动补偿组件119以进行帧间预测。视频信号101的视频单元(例如,图片、条带、CTU等)可以被分成多个块。运动估计组件121和运动补偿组件119相对于一个或多个参考图片中的一个或多个块对接收的视频块执行帧间预测编解码,以提供时域预测。编解码器100可以执行多遍编解码,以例如为每个视频数据块选择适当的编解码模式。
运动估计组件121和运动补偿组件119可以被高度集成,但是出于概念目的而分开图示。由运动估计组件121执行的运动估计是生成运动矢量的过程,运动矢量估计视频块的运动。例如,运动矢量可以指示当前块中的编解码对象相对于参考块的位移。参考块是被发现在像素差异方面与要编解码的块紧密匹配的块。这种像素差异可以通过绝对差之和(sumof absolute difference,SAD)、平方差之和(sum of square difference,SSD)或其他差异度量来确定。HEVC采用几种编解码对象,包括CTU、编解码树块(coding tree block,CTB)和CU。例如,CTU可以被分成CTB,CTB然后可以被分成编解码块(coding block,CB),以包括在CU中。CU可以被编码为包含预测数据的预测单元(prediction unit,PU)和/或包含CU的变换残差数据的变换单元(transform unit,TU)。运动估计组件121通过使用率失真分析作为率失真优化过程的一部分来生成运动矢量、PU和TU。例如,运动估计组件121可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡了视频重构质量(例如,压缩造成的数据丢失量)与编解码效率(例如,最终编码的尺寸)两者。
在一些示例中,编解码器100可以计算存储在解码图片缓冲组件123中的参考图片的子整数像素位置的值。例如,视频编解码器,诸如编解码器100,可以对参考图片的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行插值。因此,运动估计组件121可以相对于完全像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精度的运动矢量。运动估计组件121通过将PU的位置与参考图片的参考块的位置进行比较来计算帧间编解码条带中的视频块的PU的运动矢量。运动估计组件121将计算的运动矢量作为运动数据输出到标头格式化和CABAC组件131以进行编码,并且输出到运动补偿组件119。
由运动补偿组件119执行的运动补偿可以涉及基于由运动估计组件121确定的运动矢量来获取或生成参考块。在一些示例中,运动估计组件121和运动补偿组件119可以在功能上集成。在接收到当前视频块的PU的运动矢量后,运动补偿组件119可以定位运动矢量所指向的参考块。然后,通过从正被编解码的当前块的像素值中减去参考块的像素值以形成像素差值来形成残差视频块。一般来说,针对色度分量和亮度分量两者,运动估计组件121相对于亮度分量执行运动估计,而运动补偿组件119使用基于亮度分量而计算的运动矢量。参考块和残差块被转发到变换缩放和量化组件113。
视频信号101也被发送到帧内图片估计组件115和帧内图片预测组件117。如同运动估计组件121和运动补偿组件119一样,帧内图片估计组件115和帧内图片预测组件117可以被高度集成,但是出于概念目的而分开图示。如上所述,作为运动估计组件121和运动补偿组件119在图片之间执行的帧间预测的替代,帧内图片估计组件115和帧内图片预测组件117对相对于当前图片中的块的当前块进行帧内预测。具体地,帧内图片估计组件115确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内图片估计组件115从多个被测试的帧内预测模式中选择适当的帧内预测模式来对当前块进行编码。然后,所选择的帧内预测模式被转发到标头格式化和CABAC组件131进行编码。
例如,帧内图片估计组件115使用针对各种被测试的帧内预测模式的率失真分析来计算率失真值,并且在被测试的模式当中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块与被编码以产生编码块的原始未编码块之间的失真(或误差)量以及用于产生编码块的比特率(例如,比特数)。帧内图片估计组件115根据各种编码块的失真和速率来计算比率,以确定哪种帧内预测模式展示出该块的最佳率失真值。此外,帧内图片估计组件115可以被配置为使用基于率失真优化(depth modeling mode,RDO)的深度建模模式(rate-distortion optimization,DMM)来对深度图的深度块进行编解码。
当在编码器上实施时,帧内图片预测组件117可以基于由帧内图片估计组件115确定的所选择的帧内预测模式而从参考块生成残差块,或者当在解码器上实施时,从比特流读取残差块。残差块包括被表示为矩阵的、参考块与原始块之间的差异。然后,残差块被转发到变换缩放和量化组件113。帧内图片估计组件115和帧内图片预测组件117可以对亮度分量和色度分量都进行操作。
变换缩放和量化组件113被配置为进一步压缩残差块。变换缩放和量化组件113对残差块应用变换,诸如离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discrete sine transform,DST)或概念上类似的变换,从而产生包括残差变换系数值的视频块。也可以使用小波变换、整数变换、子带变换或其他类型的变换。该变换可以将残差信息从像素值域转换到变换域,诸如频域。变换缩放和量化组件113还被配置为(例如,基于频率)对变换残差信息进行缩放。这种缩放涉及将缩放因子应用于残差信息,使得以不同的粒度来量化不同的频率信息,这可能影响重构视频的最终视觉质量。变换缩放和量化组件113还被配置为量化变换系数以进一步降低比特率。量化过程可以降低与一些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件113然后可以执行对包括量化变换系数的矩阵的扫描。量化变换系数被转发到标头格式化和CABAC组件131以编码在比特流中。
缩放和逆变换组件129应用变换缩放和量化组件113的逆操作来支持运动估计。缩放和逆变换组件129应用逆缩放、逆变换和/或逆量化来重构像素域中的残差块,以例如稍后用作另一当前块的参考块。运动估计组件121和/或运动补偿组件119可以通过将残差块加回先前的参考块来计算另一参考块,以用于后面的块/帧的运动估计。将滤波器应用于重构参考块,以减轻在缩放、量化和变换期间产生的伪像。否则,当预测后续块时,这些伪像会导致不准确的预测(并且产生另外的伪像)。
滤波器控制分析组件127和环路滤波器组件125将滤波器应用于残差块和/或重构图片块。例如,来自缩放和逆变换组件129的变换残差块可以与来自帧内图片预测组件117和/或运动补偿组件119的相应参考块进行组合以重构原始图像块。然后,可以将滤波器应用于重构图像块。在一些示例中,可以改为将滤波器应用于残差块。如同图1中的其他组件一样,滤波器控制分析组件127和环路滤波器组件125被高度集成并且可以一起实施,但是出于概念目的而分开描述。应用于重构参考块的滤波器被应用于特定的空域区域,并且包括多个参数来调整如何应用这种滤波器。滤波器控制分析组件127分析重构参考块以确定应当在哪里应用这种滤波器,并且设置相应的参数。这种数据被转发到标头格式化和CABAC组件131以作为用于编码的滤波器控制数据。环路滤波器组件125基于滤波器控制数据来应用这种滤波器。滤波器可以包括去方块滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。这种滤波器可以应用于空域/像素域(例如,在重构像素块上)或频域,这依赖于示例。
当作为编码器进行操作时,经滤波的重构图像块、残差块和/或预测块被存储在解码图片缓冲区组件123中,以供稍后在如上所述的运动估计中使用。当作为解码器进行操作时,解码图片缓冲区组件123存储经重构和滤波的块并且将其作为输出视频信号的一部分转发到显示器。解码图片缓冲区组件123可以是能够存储预测块、残差块和/或重构图像块的任何存储器设备。
标头格式化和CABAC组件131从编解码器100的各种组件接收数据,并且将这种数据编码成编解码比特流以用于向解码器传输。具体地,标头格式化和CABAC组件131生成各种标头来对控制数据(诸如通用控制数据和滤波器控制数据)进行编码。此外,包括帧内预测和运动数据的预测数据以及量化变换系数数据形式的残差数据都被编码在比特流中。最终比特流包括解码器重构原始分割的视频信号101所需的所有信息。这种信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的指示、分割信息的指示等。这种数据可以通过采用熵编解码来编码。例如,可以通过采用上下文自适应可变长度编解码(context adaptive variable length coding,CAVLC)、CABAC、基于语法的上下文自适应二进制算术编解码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probability intervalpartitioning entropy,PIPE)编解码或另一熵编解码技术来对信息进行编码。在熵编解码之后,编解码比特流可以被传输到另一设备(例如,视频解码器)或者被存档以用于以后的传输或检索。
为了如上所述对图片进行编码和/或解码,首先对图片进行分割。图2是可以由符合H.264/AVC的分割树结构创建的示例宏块分区200的示意图。这种标准中的编解码层的核心是宏块,包含16×16的亮度样点块,并且在4:2:0色彩采样的情况下包含两个相应的8×8色度样点块。帧内编解码块使用空域预测来利用像素之间的空域相关性。为帧内编解码块定义了两种分区,即16×16子块和4×4子块。帧间编解码块通过估计图片之间的运动来使用时域预测而不是空域预测。可以为16×16宏块分区或任何子宏块分区独立地估计运动。帧间编解码块可以被分割成16×8子块、8×16子块、8×8子块、8×4子块、4×8子块和/或4×4子块。所有这种值都是用样点数量度量的。样点是像素的亮度(光)值或色度(色彩)值。
图3是用于例如根据HEVC分割编解码块的示例模式300的示意图。在HEVC中,将图片分割成CTU。通过使用被表示为编解码树的四叉树结构将CTU划分成CU,以适应各种局部特性。关于是使用帧间图片(时域)预测还是帧内图片(空域)预测来对图片区域进行编解码的决策是在CU级别进行的。可以根据PU划分类型将每个CU进一步分割成一个、两个或四个PU。在一个PU内,应用相同的预测过程,并且基于PU将相关信息传输到解码器。在通过应用基于PU划分类型的预测过程而获得残差块之后,可以根据与CU的编解码树类似的另一四叉树结构将CU分割成变换单元(TU)。HEVC结构的一个特征在于HEVC具有多种分区概念,包括CU、PU和TU。
使用HEVC的混合视频编解码中涉及的各种特征强调如下。HEVC包括CTU,CTU类似于AVC中的宏块。CTU具有由编码器选择的尺寸,并且可以大于宏块。CTU包括亮度编解码树块(CTB)、相应的色度CTB和语法元素。亮度CTB的尺寸被表示为L×L,可以被选择为L=16、32或64个样点,其中尺寸越大,所得到的压缩越好。然后,HEVC支持使用树结构和类似四叉树的信令将CTB分割成更小的块。
CTU的四叉树语法规定了相应的亮度CB和色度CB的尺寸和位置。四叉树的根与CTU相关联。因此,亮度CTB的尺寸是亮度CB的最大支持尺寸。将CTU划分成亮度CB和色度CB是联合地用信令通知的。一个亮度CB和两个色度CB连同相关联的语法一起形成编解码单元(CU)。一个CTB可以仅包含一个CU,或者可以被划分以形成多个CU。每个CU具有相关联的分成预测单元(PU)和变换单元(TU)树的分割。在CU级别进行关于是使用帧间图片预测还是帧内图片预测来对图片区域进行编解码的决策。PU分割结构在CU级别具有根。依赖于基本预测类型决策,亮度CB和色度CB然后可以在尺寸上进一步分割,并且根据模式300从亮度和色度预测块(prediction block,PB)进行预测。HEVC支持从64×64样点下至4×4样点的可变PB尺寸。如图所示,模式300可以将尺寸为M个像素乘M个像素的CB划分成M×M块、M/2×M块、M×M/2块、M/2×M/2块、M/4×M(左)块、M/4×M(右)块、M×M/4(上)块和/或M×M/4(下)块。应当注意,用于将CB划分成PB的模式300受到尺寸约束。此外,对于帧内图片预测的CB,仅支持M×M和M/2×M/2。
图4是用于例如根据HEVC分割图片以对残差进行编解码的示例方法400的示意图。如上所述,通过参考参考块对块进行编解码。当前块和参考块的值之间的差异被称为残差。方法400用于压缩残差。例如,使用块变换对预测残差进行编解码。方法400采用TU树结构403来分割CTB 401和所包括的CB以应用变换块(transform block,TB)。方法400示出了将CTB 401分成CB和TB的细分。实线指示CB边界,而虚线指示TB边界。TU树结构403是分割CTB401的示例四叉树。对每个TB应用诸如离散余弦变换(DCT)之类的变换。该变换将残差转换成可以使用比未压缩残差更少的数据来表示的变换系数。TU树结构403在CU级别具有根。亮度CB残差区域可以与亮度TB区域相同,或者可以被进一步分割成更小的亮度TB。这同样适用于色度TB。类似于DCT的整数基变换函数被定义用于4×4、8×8、16×16和32×32的正方形TB尺寸。对于亮度帧内图片预测残差的4×4变换,可替代地,规定从DST形式推导的整数变换。
下面讨论联合探索模型(Joint Exploration Model,JEM)中具有较大CTU的四叉树加二叉树块结构。视频编解码专家组(Video Coding Experts group,VCEG)和MPEG成立了联合视频探索小组(Joint Video Exploration Team,JVET)以探索HEVC以外的视频编解码技术。JVET采用了许多改进,并将这些改进包括到名为联合探索模型(JEM)的参考软件中。
图5是用于例如根据四叉树二叉树(quad tree binary tree,QTBT)结构501分割图片的示例方法500的示意图。还示出了QTBT结构501的树表示503。与HEVC中的分割结构不同,QTBT结构501去除了多种分割类型的概念。例如,QTBT结构501去除了CU、PU和TU概念的分离,并且支持CU分区形状的更大灵活性。在QTBT结构501中,CU可以具有正方形或矩形形状。在方法500中,CTU首先被四叉树结构分割。四叉树叶节点被二叉树结构进一步分割。对称水平划分和对称垂直划分是二叉树中使用的两种划分类型。二叉树叶节点被称为CU,并且这种分割用于在不进行进一步分割的情况下的预测和变换处理。这致使CU、PU和TU在QTBT结构501中具有相同的块尺寸。在JEM中,CU有时包括不同色彩分量的CB。例如,在4:2:0色度格式的单向帧间预测(P)和双向帧间预测(B)条带的情况下,一个CU可以包含一个亮度CB和两个色度CB。此外,CU有时包括单一分量的CB。例如,在帧内预测(I)条带的情况下,一个CU可仅包含一个亮度CB,或者刚好包含两个色度CB。
以下参数是为QTBT分割方案定义的。CTU尺寸是四叉树的根节点尺寸,这与HEVC中的概念相同。最小四叉树尺寸(MinQTSize)是最小允许四叉树叶节点尺寸。最大二叉树尺寸(MaxBTSize)是最大允许二叉树根节点尺寸。最大二叉树深度(MaxBTDepth)是最大允许二叉树深度。最小二叉树尺寸(MinBTSize)是最小允许二叉树叶节点尺寸。
在QTBT结构501的一个示例中,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)。否则,该叶四叉树节点可以被二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为0。当二叉树深度达到MaxBTDepth(例如,4)时,不再考虑进一步分割。当二叉树节点的宽度等于MinBTSize(例如,4)时,不考虑进一步的水平划分。类似地,当二叉树节点的高度等于MinBTSize时,不考虑进一步的垂直划分。二叉树的叶节点通过在不进行任何进一步的分割的情况下的预测和变换处理来进一步处理。在JEM中,最大CTU尺寸是256×256个亮度样点。
方法500示出了通过使用QTBT结构501进行块分割的示例,并且树表示503图示了相应的树表示。实线指示四叉树划分,而虚线指示二叉树划分。在二叉树的每个划分(例如,非叶)节点中,用信令通知一个标志来指示使用哪种划分类型(例如,水平或垂直),其中0指示水平划分,而1指示垂直划分。对于四叉树划分,不需要指示划分类型,因为四叉树划分总是水平地且垂直地对块进行划分以产生4个尺寸相等的子块。
此外,QTBT方案支持亮度和色度具有分离的QTBT结构501的能力。例如,在P条带和B条带中,一个CTU中的亮度CTB和色度CTB共享相同QTBT结构501。然而,在I条带中,亮度CTB被QTBT结构501分割成CU,并且色度CTB被另一QTBT结构501分割成色度CU。相应地,I条带中的CU可以包括亮度分量的编解码块或两个色度分量的编解码块。此外,P条带或B条带中的CU包括所有三种色彩分量的编解码块。在HEVC中,对针对小块的帧间预测进行约束,以减少运动补偿的存储器访问,使得对于4×8和8×4块而言不支持双向预测,并且对于4×4块不支持帧间预测。在JEM的QTBT中,去除了这些约束。
现在讨论VVC的三元树分割。图6是VVC中使用的示例分割结构的示意图600。如图所示,VVC中支持除四叉树和二叉树之外的划分类型。例如,示意图600包括四叉树分割601、垂直二叉树分割603、水平二叉树分割605、垂直三叉树分割607和水平三叉树分割609。除了四叉树和二叉树之外,该方法还引入了两种三叉树(TT)分割。应当注意,在一些示例中,三叉树也可以被称为三元树。
在示例实施方式中,VVC通过QT将CTU分割为编解码单元。然后,CTU通过BT或TT被进一步分割。叶CU是基本编解码单元。为方便起见,叶CU也可以称为CU。在示例实施方式中,叶CU不能被进一步划分。预测和变换都以与JEM相同的方式应用于CU。整个分割结构名为多类型树(MTT)。
图7是示例ETT分割结构的示意图700,包括ETT-V划分701和ETT-H划分703。当采用ETT时,维度为宽度×高度(W×H)的块被划分成三个维度为W1×H1、W2×H2和W3×H3的分区。W1、W2、W3、H1、H2、H3都是整数。在一个示例中,至少一个参数不是2的幂的形式。W1、W2和W3是所得子块的宽度。H1、H2和H3是所得子块的高度。在一个示例中,W2不能是W2=2N2的形式,其中N2是任一正整数。在另一示例中,H2不能是H2=2N2的形式,其中N2是任一正整数。在一个示例中,至少一个参数是2的幂的形式。在一个示例中,W1是W1=2N1的形式,其中N1是正整数。在另一示例中,H1是H1=2N1的形式,其中N1是正整数。
在一个示例中,ETT仅在垂直方向上划分一个分区,例如,其中W1=a1*W,W2=a2*W,W3=a3*W,其中a1+a2+a3=1,并且其中H1=H2=H3=H。这种ETT是垂直划分,并且可以称为ETT-V。在一个示例中,可以使用ETT-V划分701,其中W1=W/8,W2=3*W/4,W3=W/8,并且H1=H2=H3=H。在一个示例中,ETT仅在水平方向上划分一个分区,例如,其中H1=a1*H,H2=a2*H,H3=a3*H,其中a1+a2+a3=1,并且其中W1=W2=W3=W。这种ETT是水平划分,并且可以称为ETT-H。在一个示例中,可以使用ETT-H划分703,其中H1=H/8,H2=3*H/4,H3=H/8,并且W1=W2=W3=W。
图8是示例1/4UBT分割结构的示意图800,其包括垂直UBT(vertical UBT,UBT-V)分割和水平UBT(horizontal UBT,UBT-H)分割。维度为W×H的块可以被划分成两个维度为W1×H1和W2×H2的子块,其中一个子块是二进制块,而另一子块是非二进制块。这种划分被称为非对称二叉树(Unsymmetric Binary Tree,UBT)划分。在一个示例中,W1=a×W,W2=(1-a)×W,H1=H2=H。在这种情况下,分割可以称为垂直UBT(UBT-V)。在一个示例中,a可以小于1/2,诸如1/4、1/8、1/16、1/32、1/64等。在这种情况下,分割可以称为类型0UBT-V,其示例被示为划分801。在一个示例中,a可以大于1/2,诸如3/4、7/8、15/16、31/32、63/64等。在这种情况下,分割被称为类型1UBT-V,其示例被示为划分803。在一个示例中,H1=a×H,H2=(1-a)×H,W1=W2=W。在这种情况下,分割可以称为水平UBT(UBT-H)。在一个示例中,a可以小于1/2,诸如1/4、1/8、1/16、1/32、1/64等。在这种情况下,分割被称为类型0UBT-H,其示例被示为划分805。在一个示例中,a可以大于1/2,诸如3/4、7/8、15/16、31/32、63/64等。在这种情况下,分割可以称为类型1UBT-H,其示例被示为划分807。
现在讨论帧间预测,例如在HEVC中使用的帧间预测。帧间预测是基于称为参考图片的不同图片中的参考块对当前图片中的块进行编解码的过程。帧间预测依赖于以下事实:在大多数视频流中,相同的对象往往出现在多个图片中。帧间预测将具有一组样点的当前块与具有相似样点的另一图片中的参考块进行匹配(例如,通常描绘视频序列中不同时间的相同对象)。不是对每个样点进行编码,而是将当前块编码为指向参考块的运动矢量(MV)。当前块和参考块之间的任何差都被编码为残差。因此,通过参考参考块对当前块进行编解码。在解码器侧,只要参考块已经被解码,就可以仅使用MV和残差来解码当前块。根据帧间预测编解码的块明显比根据帧内预测编解码的块压缩得更多。帧间预测可以作为单向帧间预测或双向帧间预测来执行。单向帧间预测使用指向单个参考图片中的单个块的MV,而双向帧间预测使用指向两个不同参考图片中的两个不同参考块的两个MV。根据单向帧间预测编解码的图片的条带被称为P条带,而根据双向帧间预测编解码的图片的条带被称为B条带。可从参考块预测的当前块的部分被称为预测单元(PU)。因此,PU加上对应的残差导致编解码块的CU中的实际样点值。
每个帧间预测PU具有用于一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。两个参考图片列表之一的使用也可以使用帧间预测标识(ID)代码(inter_pred_idc)来信令通知。运动矢量可以被显式地编解码为相对于预测值的增量(差)。下面描述了用于编码运动参数的各种机制。
当使用跳过模式对CU进行编解码时,一个PU与CU相关联,并且没有显著的残差系数,不使用编解码的运动矢量增量或参考图片索引。还可以规定Merge模式,由此从邻近PU获得当前PU的运动参数,包括空域和时域候选。然后,可以通过采用对应于所选择的一个或多个候选的索引来信令通知该参数。Merge模式可以应用于任何帧间预测的PU,并且不限于跳过模式。Merge模式的替代方案是运动参数的显式传输。在这种情况下,对于每个PU,运动矢量(被编解码为与运动矢量预测值相比的运动矢量差)、每个参考图片列表的对应参考图片索引以及参考图片列表使用被显式地信令通知。这种信令通知模式被称为AMVP。
当信令通知指示要使用两个参考图片列表中的一个时,PU由一个样点块产生。这被称为单向预测。单向预测可用于P条带和B条带两者。当信令通知指示要使用两个参考图片列表时,PU从两个样点块中产生。这被称为“双向预测”。双向预测仅适用于B条带。
以下文本提供了HEVC中的帧间预测模式的细节。现在讨论Merge模式。Merge模式生成候选MV列表。编码器选择候选MV作为块的MV。编码器然后信令通知对应于所选候选的索引。这允许MV作为单个索引值被信令通知。解码器以与编码器相同的方式生成候选列表,并使用信令通知的索引来确定指示的MV。
图9是用于在用于根据帧间预测的视频编解码的Merge模式中推导候选列表的示例过程900的示意图。因此,现在讨论Merge模式的候选的推导。当使用Merge模式预测PU时,从比特流中解析指向Merge候选列表中的条目的索引,并将其用于检索运动信息。该列表的构建可以根据过程900中所示的以下步骤序列来概括。步骤1包括初始候选推导。步骤1.1包括空域候选推导。步骤1.2包括对空域候选的冗余检查。步骤1.3包括时域候选推导。步骤2包括附加候选插入。步骤2.1包括创建双向预测候选。步骤2.2包括零运动候选的插入,这导致最终的Merge候选列表,如过程900所示。
对于空域Merge候选推导,从位于五个不同位置的候选中选择最多四个Merge候选。对于时域Merge候选推导,在两个候选中最多选择一个Merge候选。由于在解码器处假设每个PU的候选数量是恒定的,所以当从步骤1获得的候选数量没有达到Merge候选的最大数量(MaxNumMergeCand)时,生成附加候选,Merge候选的最大数量在条带标头中被信令通知。因为候选的数量是恒定的,所以使用截断一元二进制化(TU)对最佳Merge候选的索引进行编码。如果CU的尺寸等于8,则当前CU的所有PU共享单个Merge候选列表,其与2N×2N预测单元的Merge候选列表相同。
图10是图示在Merge模式中使用的空域Merge候选的示例位置1000的示意图,其用于空域候选推导。在空域Merge候选的推导中,在位于位置1000的候选中选择最多四个Merge候选。推导顺序为A1、B1、B0、A0、B2。仅当位置A1、B1、B0和A0的任何PU不可用(例如,因为该位置是另一个条带或片的一部分)或被帧内编解码时,才考虑位置B2。在添加位置A1处的候选后,对剩余候选的添加进行冗余检查,确保具有相同运动信息的候选被排除在列表之外,从而提高编解码效率。
图11是图示考虑用于Merge模式中使用的空域Merge候选的冗余检查的示例候选对1100的示意图。为了降低计算复杂度,在所提到的冗余检查中,没有考虑所有可能的候选对1100。相反,仅考虑用箭头链接的对1100。仅当用于冗余检查的对应候选不包括相同的运动信息时,候选才被添加到列表中。
图12是图示当采用Merge模式时推导当前PU的空域Merge候选时使用的第二PU的示例位置的示意图。位置包括N×2N的分割1201和2N×N的分割1203。重复运动信息的另一源是与不同于2Nx2N的分割相关联的第二PU。当如分割1201所示当前PU被分割为N×2N时,如图10所示的位置A1处的候选不被考虑用于列表构建。在位置A1处添加候选导致两个预测单元具有相同的运动信息,这是冗余的。类似地,当如分割1203所示当前PU被分割为2N×N时,不考虑如图10所示的位置B1
图13是图示当采用Merge模式时时域Merge候选的运动矢量缩放1300的示意图。现在讨论Merge模式中的时域候选推导。在此步骤中,只有一个候选被添加到Merge候选列表中。在该时域Merge候选的推导中,基于与给定参考图片列表内的当前图片具有最小图片顺序计数(POC)差的图片中的并置PU,推导缩放的运动矢量。在条带标头中显式地信令通知将被用于推导并置PU的参考图片列表。如图13中的虚线所示,获得时域Merge候选的缩放运动矢量。使用POC距离tb和td从并置PU的运动矢量缩放时域Merge候选。tb被定义为当前图片的参考图片和当前图片之间的POC差。td被定义为并置图片的参考图片和并置图片之间的POC差。时域Merge候选的参考图片索引被设置为零。对于B条带,获得两个运动矢量并将其组合以形成双向预测Merge候选。一个运动矢量用于参考图片列表0,而另一个用于参考图片列表1。
图14是图示当采用Merge模式时时域Merge候选的候选位置的示意图1400。在参考帧中表示为Y的并置PU中,在候选C0和C1之间选择时域候选的位置,如图1400所描绘。如果位置C0处的PU不可用,则是帧内编解码的,或者在当前CTU行之外,则使用位置C1。否则,在时域Merge候选的推导中使用位置C0
图15是图示组合双向预测Merge候选列表的示例的示意图1500。现在讨论附加候选插入。除了空域和时域Merge候选,还可以采用组合双向预测Merge候选和零Merge候选。通过利用空域和时域Merge候选来生成组合双向预测Merge候选。组合双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一个的第二参考图片列表运动参数相组合,来生成组合双向预测候选。如果这两个元组提供不同的运动假设,则它们形成新的双向预测候选。作为示例,图1500描绘了当包括mvL0和refIdxL0或mvL1和refIdxL1的原始Merge候选列表列表零(L0)和列表一(L1)中的两个候选被用于创建具有组合候选的组合双向预测Merge候选列表的情况。关于被认为生成这些附加Merge候选的组合,有许多规则。
插入零运动候选,以填充Merge候选列表中的剩余条目,因此达到MaxNumMergeCand容量。这些候选具有零空域位移和参考图片索引,该索引从零开始,并且每当新的零运动候选被添加到列表中时就增加。对于单向和双向预测,这些候选使用的参考帧的数量分别是一个和两个。最后,不对这些候选执行冗余检查。
现在讨论用于并行处理的运动估计区域。为了加速编码过程,可以并行执行运动估计,从而同时推导规定区域内所有预测单元的运动矢量。从空域邻近中推导Merge候选可能会干扰并行处理。这是因为在相邻PU的相关运动估计完成之前,一个预测单元不能从相邻PU推导运动参数。为了减轻编解码效率和处理等待时间之间的折衷,HEVC定义了运动估计区域(MER),其尺寸使用log2_parallel_merge_level_minus2语法元素在图片参数集中被信令通知。当MER被定义时,落在相同区域中的Merge候选被标记为不可用,因此在列表构建中不被考虑。
图16是图示在AMVP中推导运动矢量预测候选的方法1600的流程图。AMVP利用运动矢量与邻近PU的空时相关性,其用于运动参数的显式传输。对于每个参考图片列表,通过检查左和上时域上邻近的PU位置的可用性来构建运动矢量候选列表。然后移除多余的候选。添加零矢量以将候选列表设置为恒定长度。编码器可以从候选列表中选择最佳预测值,并发送指示所选候选的对应索引。类似地,利用Merge索引信令通知,最佳运动矢量候选的索引使用截断一元码来编码。如方法1600所示,在这种情况下要编码的最大值是2。
在运动矢量预测中,考虑空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,基于位于五个不同位置的每个PU的运动矢量,最终推导两个运动矢量候选,如图10所示。对于时域运动矢量候选推导,从基于两个不同的并置位置推导的两个候选中选择一个运动矢量候选。在制作第一个空时候选列表之后,列表中的重复运动矢量候选被移除。如果潜在候选的数量大于2,则从列表中移除其在相关参考图片列表内的参考图片索引大于1的运动矢量候选。如果空时运动矢量候选的数量小于2,则附加零运动矢量候选被添加到列表中。
现在讨论空域运动矢量候选。在空域运动矢量候选的推导中,在从位于如图10所示位置的PU推导的五个潜在候选中,最多考虑两个候选。这些位置与运动Merge的位置相同。当前PU的左侧的推导顺序为A0、A1、缩放A0和缩放A1。当前PU的上侧的推导顺序是B0、B1、B2、缩放B0、缩放B1和缩放B2。因此,对于每一侧,有四种情况可以用作运动矢量候选。这包括不需要使用空域缩放的两种情况,以及使用空域缩放的两种情况。这四种不同的情况概述如下。没有空域缩放的情况包括(1)相同的参考图片列表和相同的参考图片索引(相同的POC);以及(2)不同的参考图片列表,但是相同的参考图片(相同的POC)。空域缩放包括(3)相同的参考图片列表,但是不同的参考图片(不同的POC);以及(4)不同的参考图片列表和不同的参考图片(不同的POC)。
首先检查无空域缩放的情况,然后检查空域缩放。当邻近PU的参考图片和当前PU的参考图片之间的POC不同时,考虑空域缩放,而不管参考图片列表。如果左候选的所有PU都不可用或被帧内编解码,则允许对上述运动矢量进行缩放,以帮助并行推导左和上MV候选。否则,不允许对上述运动矢量进行空域缩放。
图17是图示空域运动矢量候选的运动矢量缩放的示例的示意图1700。在空域缩放过程中,以与图1700中所描绘的时域缩放类似的方式来缩放邻近PU的运动矢量。主要区别在于当前PU的参考图片列表和索引作为输入给出。实际的缩放过程与时域缩放过程相同。
现在讨论时域运动矢量候选。除了参考图片索引推导之外,用于推导时域Merge候选的所有过程与用于推导空域运动矢量候选的过程相同,如图14所示。参考图片索引被信令通知给解码器。
现在讨论HEVC之外的帧间预测方法。这包括基于子CU的运动矢量预测。在具有QTBT的JEM中,对于每个预测方向,每个CU最多可以具有一组运动参数。在编码器中考虑了两个子CU级别运动矢量预测方法,通过将大CU划分成子CU并推导大CU的所有子CU的运动信息。ATMVP方法允许每个CU从比并置参考图片中的当前CU小的多个块中取回多组运动信息。在空时运动矢量预测(STMVP)方法中,通过使用时域运动矢量预测值和空域邻近运动矢量递归地推导子CU的运动矢量。为了保存用于子CU运动预测的更精确的运动场,参考帧的运动压缩目前被禁用。
图18是图示CU的ATMVP运动预测的示例的示意图1800。在ATMVP方法中,通过从小于当前CU的块中取回多组运动信息来修改运动矢量时域运动矢量预测(TMVP)。这包括运动矢量和参考索引。如示图1800所示,子CU是正方形N×N块(N默认设置为4)。ATMVP分两步预测CU内的子CU的运动矢量。第一步骤是用时域矢量标识参考图片中的对应块。参考图片被称为运动源图片。第二步是将当前CU划分成子CU,并从对应于每个子CU的块中获得每个子CU的运动矢量以及参考索引,如示图1800所示。
在第一步骤中,参考图片和对应块由当前CU的空域邻近块的运动信息确定。为了避免邻近块的重复扫描过程,使用当前CU的Merge候选列表中的第一个Merge候选。第一个可用的运动矢量以及相关联的参考索引被设置为运动源图片的时域矢量和索引。这样,当与TMVP相比时,在ATMVP中可以更准确地标识对应块。对应块(有时称为并置块)位于相对于当前CU的右底角或中间位置。
在第二步骤中,通过将当前CU的坐标与时域矢量相加,由运动源图片中的时域矢量标识子CU的对应块。对于每个子CU,使用对应块(覆盖中心样点的最小运动网格)的运动信息来推导子CU的运动信息。在对应N×N块的运动信息被标识之后,运动信息以与TMVP相同的方式被转换为当前子CU的运动矢量和参考索引。运动缩放和其他程序也适用。例如,解码器检查是否满足低延迟条件。这发生在当前图片的所有参考图片的POC小于当前图片的POC时。解码器还可以使用运动矢量MVx来预测每个子CU的运动矢量MVy。MVx是对应于参考图片列表X的运动矢量,而MVy是图片Y的运动矢量,其中X等于0或1,并且Y等于1-X。
图19是图示子CU的空时运动矢量预测的示例的示意图1900。在空时运动矢量预测中,如示图1900所示,遵循光栅扫描顺序递归地推导子CU的运动矢量。作为示例,8×8CU可包含四个4×4子CU,表示为A、B、C和d。当前帧中的邻近4×4块标记为a、b、c和d。子CU A的运动推导从标识A的两个空域邻居开始。第一个邻居是子CU A上方的N×N块,包括块c。当块c不可用或被帧内编解码时,从块c开始从左到右检查子CU A上方的其他N×N块。第二个邻居是子CU A的左边的块,包括块b。当块b不可用或被帧内编解码时,从块b开始从顶到底检查子CU A的左边的其它块。从每个列表的邻近块获得的运动信息被缩放到给定列表的第一参考帧。接下来,推导子块A的TMVP。位置D处的并置块的运动信息被取回并相应地被缩放。最后,在检索和缩放运动信息之后,对每个参考列表分别平均所有可用的运动矢量(最多三个)。平均运动矢量被指定为当前子CU的运动矢量。
现在讨论子CU运动预测模式信令通知。子CU模式被启用作为附加Merge候选,并且没有用于信令通知模式的附加语法元素。两个附加Merge候选被添加到每个CU的Merge候选列表中,以表示ATMVP模式和STMVP模式。当序列参数集指示ATMVP和STMVP被启用时,最多使用七个Merge候选。附加Merge候选的编码逻辑与上述Merge候选的编码逻辑相同。因此,对于P或B条带中的每个CU,对两个附加的Merge候选采用两个以上的RD检查。在JEM中,Merge索引的所有二进制位都由CABAC进行上下文编解码。在HEVC,只有第一个二进制位是上下文编解码的,其余的二进制是上下文旁路编解码的。
现在讨论自适应运动矢量差分辨率。在HEVC中,当条带标头中的use_integer_mv_flag等于0时,PU的运动矢量与预测运动矢量之间的运动矢量差(MVD)以四分之一亮度样点为单位被信令通知。在JEM中,采用了局部自适应运动矢量分辨率(LAMVR)。在JEM中,MVD可以以四分之一亮度样点、整数亮度样点和/或四个亮度样点为单位进行编解码。MVD分辨率在CU级别被控制,并且对于具有至少一个非零MVD分量的每个CU,MVD分辨率标志被有条件地信令通知。对于具有至少一个非零MVD分量的CU,信令通知第一标志以指示CU中是否使用四分之一亮度样点MV精度。当第一标志指示不使用四分之一亮度样点MV精度(例如,第一标志等于1)时,信令通知另一标志以指示使用整数亮度样点MV精度还是四亮度样点MV精度。当CU的第一MVD分辨率标志为零或未针对CU进行编解码时(例如,CU中的所有MVD均为零),四分之一亮度样点MV分辨率用于CU。当CU使用整数亮度样点MV精度或四亮度样点MV精度时,CU的AMVP候选列表中的MVP被取整到对应的精度。
在编码器中,CU级别率失真(RD)检查被用来确定哪个MVD分辨率应当用于CU。对于每个MVD分辨率,CU级别RD检查被执行三次。为了加速编码器速度,在JEM中应用了以下编码方案。在具有正常四分之一亮度样点MVD分辨率的CU的RD检查期间,存储当前CU的运动信息(整数亮度样点精度)。所存储的运动信息(取整后)用作在具有整数亮度样点和4亮度样点MVD分辨率的相同CU的RD检查期间进一步小范围运动矢量细化的起始点,使得耗时的运动估计过程不会重复三次。有条件地调用具有4个亮度样点MVD分辨率的CU的RD检查。对于CU,当RD成本整数亮度样点MVD分辨率远大于四分之一亮度样点MVD分辨率时,跳过CU的4亮度样点MVD分辨率的RD检查。
现在讨论更高的运动矢量存储精度。在HEVC中,运动矢量精度为四分之一像素(对于4:2:0视频,四分之一亮度样点和八分之一色度样点)。在JEM中,内部运动矢量存储和Merge候选的精度增加到1/16像素。较高的运动矢量精度(1/16像素)用于以跳过/Merge模式编解码的CU的运动补偿帧间预测。对于用正常AMVP模式编解码的CU,使用整数像素或四分之一像素运动。具有与HEVC运动补偿插值滤波器相同的滤波器长度和归一化因子的SHVC上采样插值滤波器被用作附加分数像素位置的运动补偿插值滤波器。在JEM中,色度分量运动矢量的精度是1/32样点。通过使用两个邻近1/16像素分数位置的滤波器的平均值,推导1/32像素分数位置的附加插值滤波器。
图20是图示将OBMC应用于子块的示例的示意图。CU 2001图示了针对CU/PU边界处的子块的OMBC的应用。CU 2003图示了OBMC在ATMVP模式下对子PU的应用。在JEM中,可以使用CU级别处的语法打开和关闭OBMC。当OBMC应用时,CU 2001中对角散列示出子块。因此,当在JEM中使用OBMC时,对除CU的右边界和底边界之外的所有运动补偿(MC)块边界执行OBMC。OBMC应用于亮度和色度分量两者。在JEM中,MC块对应于编解码块。当CU用子CU模式(包括子CU Merge、仿射和FRUC模式)编解码时,CU的每个子块都是MC块。为了以统一的方式处理CU边界,在子块级别处对所有MC块边界执行OBMC,其中子块尺寸设置为等于4×4,如CU 2001所示。
当OBMC应用于当前子块时,除了当前运动矢量之外,还使用最多四个连接的邻近子块的运动矢量来推导当前子块的预测块。当四个连接的邻近子块可用并且与当前运动矢量不相同时,使用这四个连接的邻近子块。四个连接的邻近子块在CU 2001中由垂直散列图示。基于多个运动矢量的这些多个预测块被组合以生成当前子块的最终预测信令。
基于邻近子块的运动矢量的预测块表示为PN,其中N指示邻近上、下、左和/或右子块的索引。在所示的示例中,在PN1的OBMC中使用上邻近子块的运动矢量,在PN2的OBMC中使用左邻近子块的运动矢量,并且在PN3的OBMC中使用上邻近子块和左邻近子块的运动矢量。
基于当前子块的运动矢量的预测块被表示为PC。当PN基于包含与当前子块相同的运动信息的邻近子块的运动信息时,不从PN执行OBMC。否则,PN的每个样点被添加到PC中的相同样点。例如,PN的四行/列被添加到PC。加权因子{1/4,1/8,1/16,1/32}用于PN,并且加权因子{3/4,7/8,15/16,31/32}用于PC。例外情况是编解码块的高度或宽度等于4或CU是用子CU模式编解码的小MC块。在这种情况下,只有PN的两行/列被添加到PC。在这种情况下,加权因子{1/4,1/8}用于PN,并且加权因子{3/4,7/8}用于PC。对于基于垂直(水平)邻近子块的运动矢量生成的PN,PN的相同行(列)中的样点以相同的加权因子被添加到PC。如CU 2003中所示,子块PN与四个邻近子块相邻,这四个邻近子块在没有散列的情况下被图示。对于子块PN,在OBMC中使用四个邻近子块的运动矢量。
在JEM中,当当前CU的尺寸小于或等于256个亮度样点时,信令通知CU级别标志,以指示是否对当前CU应用OBMC。对于尺寸大于256个亮度样点或未用AMVP模式编解码的CU,默认情况下会应用OBMC。在编码器处,当OBMC应用于CU时,在运动估计阶段期间考虑OBMC的影响。使用顶邻近块和左邻近块的运动信息通过OBMC形成的预测信令被用于补偿当前CU的原始信令的顶和左边界。然后应用正常的运动估计过程。
图21是图示用于推导照明补偿参数的邻近样点的示例的示意图。使用缩放因子a和偏移b基于用于照明变化的线性模型来执行局部照明补偿(LIC)。针对每个帧间模式编解码的CU自适应地启用或禁用LIC。当LIC应用于CU时,通过使用当前CU的邻近样点和它们对应的参考样点,采用最小平方误差方法来推导参数a和b。如示图2100中所示,使用参考图片中CU的子采样(2∶1子采样)邻近样点和对应样点(由当前CU或子CU的运动信息标识)。照明补偿(IC)参数被推导并分别应用于每个预测方向。
当用Merge模式对CU进行编解码时,以类似于Merge模式中的运动信息复制的方式,从邻近块中复制LIC标志。否则,向CU信令通知LIC标志,以指示LIC是否适用。当对图片启用LIC时,使用附加CU级别RD检查来确定是否对CU应用LIC。当对CU启用LIC时,对于整数像素运动搜索和分数像素运动搜索,分别使用绝对差的平均移除和(MR-SAD)和绝对哈达玛变换差的平均移除和(MR-SATD)来代替SAD和绝对变换差的和(SATD)。为了降低编码复杂度,在JEM中应用以下编码方案。当当前图片和对应的参考图片之间没有明显的照明变化时,对整个图片禁用LIC。为了标识这种情况,在编码器处计算当前图片和当前图片的每个参考图片的直方图。如果当前图片和当前图片的每个参考图片之间的直方图差小于规定阈值,则对于当前图片禁用LIC。否则,对于当前图片启用LIC。
图22是图示仿射运动补偿预测的仿射模型的示例的示意图。模型2201是四参数仿射模型,而模型2203是六参数仿射模型。在HEVC中,只有平移运动模型被应用于运动补偿预测(MCP)。在真实视频中,会发生多种运动,例如放大/缩小、旋转、透视运动以及其他不规则运动。在VVC中,应用简化的仿射变换运动补偿预测。如图22所示,块的仿射运动场由模型2201(4参数仿射模型)的两个控制点运动矢量或模型2203(6参数仿射模型)的三个控制点运动矢量来描述。
块的运动矢量场(MVF)由以下等式分别用4参数仿射模型和6参数仿射模型来描述:
其中(mvh0,mvh0)是左顶角控制点的运动矢量,(mvh1,mvh1)是右顶角控制点的运动矢量,(mvh2,mvh2)是左底角控制点的运动矢量,并且(x,y)表示当前块内代表点相对于左顶样点的坐标。控制点(CP)运动矢量可以被信令通知(像在仿射AMVP模式中)或者即时推导(像在仿射Merge模式中)。w和h是当前块的宽度和高度。实际上,除法是通过右移位和取整运算实现的。在VVC测试模型(VTM)中,代表点被定义为子块的中心位置。例如,当子块的左顶角相对于当前块内的左顶样点的坐标是(xs,ys)时,代表点的坐标被定义为(xs+2,ys+2)。
在无除法设计中,(1)和(2)实现为
对于(1)中所示的4参数仿射模型:
对于(2)中所示的6参数仿射模型:
最后,
其中S表示计算精度。在VVC中,S=7。在VVC中,对于具有在(xs,ys)处的左顶样点的子块,MC中使用的MV通过(6)计算,其中x=xs+2,y=ys+2。
图23是图示仿射帧间预测的运动矢量预测的示例的示意图2300。为了推导每个4×4子块的运动矢量,如示图2300所示,根据等式(1)或(2)计算每个子块的中心样点的运动矢量,并取整为1/16分数精度。然后,应用运动补偿插值滤波器,以用推导的运动矢量生成每个子块的预测。该块被划分成多个子块,并且基于当前块的推导CP MV推导每个块的运动信息。
图24是图示仿射帧间预测的候选的示例的示意图2400。当在仿射Merge(AF_MERGE)模式下应用CU时,第一块使用来自有效邻近重建块的仿射模式进行编解码。如块2401所示,候选块的选择顺序是从左、上、右上、左底和左上。如果如块2403所示,以仿射模式对邻近左底块A进行编解码,则推导包含块A的CU的左顶角、右顶角和左底角的运动矢量v2、v3和v4。根据v2、v3和v4计算当前CU上的左顶角的运动矢量v0。计算当前CU的右上方的运动矢量v1
在推导当前CU的控制点MV(CPMV)v0和v1之后,根据简化的仿射运动模型等式1,生成当前CU的MVF。为了标识当前CU是否用AF_MERGE模式编解码,当存在至少一个以仿射模式编解码的邻近块时,在比特流中信令通知仿射标志。
模式匹配运动矢量推导(PMMVD)模式是一种基于帧速率上转换(FRUC)技术的特殊Merge模式。在这种模式下,块的运动信息是在解码器侧推导的,而不是由编解码器信令通知。当CU的Merge标志为真时,针对CU信令通知FRUC标志。当FRUC标志为假时,信令通知Merge索引,并使用常规Merge模式。当FRUC标志为真时,信令通知附加FRUC模式标志,以指示将使用哪种方法(双边匹配或模板匹配)来推导块的运动信息。
在编码器侧,关于是否对CU使用FRUC Merge模式的决定是以与正常Merge候选相似的方式基于RD成本选择。通过使用RD成本选择来检查CU的两种匹配模式(双边匹配和模板匹配)。将导致最小成本的模式与其他CU模式进行进一步比较。如果FRUC匹配模式是最有效的模式,则将CU的FRUC标志设置为真,并使用相关的匹配模式。
FRUC Merge模式中的运动推导过程有两个步骤。首先执行CU级别运动搜索,然后执行子CU级别运动细化。在CU级别,基于双边匹配或模板匹配为整个CU推导初始运动矢量。生成MV候选列表,并且选择导致最小匹配成本的候选作为进一步CU级别细化的起始点。然后在起始点周围执行基于双边匹配或模板匹配的局部搜索。导致最小匹配成本的MV被视为整个CU的MV。随后,以推导的CU运动矢量作为起始点,在子CU级别进一步细化运动信息。
例如,对于宽度(W)乘以高度(H)CU运动信息推导,执行以下推导过程。在第一阶段,推导整个W×H个CU的MV。在第二阶段,CU被进一步划分成M×M个子CU。计算M的值。D是预定义的划分深度,在JEM中默认设置为3。然后推导每个子CU的MV。
图25是图示双向帧间预测中使用的双向匹配的示例的示意图2500。如示图2500所示,双边匹配用于通过在两个不同的参考图片之间通过时沿着遍历当前CU的运动轨迹找到两个块之间的最接近匹配,来推导当前图片中的当前CU的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0和MV1具有与当前图片和两个参考图片之间的时域距离成比例的长度,时域距离表示为TD0和TD1。当当前图片在时域上位于两个参考图片之间,并且从当前图片到两个参考图片的时域距离相等时,双向匹配变成基于镜像的双向MV。
图26是图示帧间预测中使用的模板匹配的示例的示意图2600,在此情况下为单向帧间预测。如示图2600所示,模板匹配用于通过找到当前图片中的模板(当前CU的顶和/或左邻近块)与参考图片中的块(与模板尺寸相同)之间的最接近匹配来推导当前CU的运动信息。模板匹配适用于AMVP模式和FRUC Merge模式。在JEM和HEVC中,AMVP具有两个候选。候选可以通过模板匹配来推导。当通过模板匹配推导的候选不同于第一个现有的AMVP候选时,通过模板匹配推导的候选被插入到AMVP候选列表的最开始。则列表尺寸被设置为二(例如,移除第二个现有的AMVP候选)。当应用于AMVP模式时,仅应用CU级别搜索。
现在讨论CU级别MV候选集。在CU级别处的MV候选集包括:当当前CU处于AMVP模式时的原始AMVP候选;所有Merge候选;插值MV场中的几个MV;和左和顶邻近运动矢量。当使用双边匹配时,Merge候选的每个有效MV被用作输入,以生成假设双边匹配的MV对。例如,Merge候选的一个有效MV在参考列表A处是(MVa,refa)。然后,在另一个参考列表B中找到成对的双边MV的参考图片refb,使得refa和refb在时域上位于当前图片的不同侧处。当这样的refb在参考列表B中不可用时,refb被确定为不同于refa的参考图片,并且与当前图片的时域距离等于列表B中的最小时域距离。在确定refb之后,通过基于当前图片和refa、refb之间的时域距离缩放MVa来推导MVb。来自插值MV场的四个MV也被添加到CU级别候选列表。更具体地,将当前CU的位置(0,0)、(W/2,0)、(0,H/2)和(W/2,H/2)处的插值MV相加。当在AMVP模式中应用FRUC时,原始AMVP候选也被添加到CU级别MV候选集中。在CU级别处,AMVPCU的最多15个MV和Merge CU的最多13个MV被添加到候选列表中。
现在讨论子CU级别MV候选集。子CU级别处的MV候选集包括:从CU级别搜索确定的MV;顶、左、左顶和右顶邻近MV;来自参考图片的并置MV的缩放版本;最多4个ATMVP候选和最多4个STMVP候选。来自参考图片的缩放MV如下推导。遍历两个列表中的所有参考图片。参考图片中子CU的并置位置处的MV被缩放到起始CU级MV的参考。ATMVP和STMVP候选限于由ATMVP和STMVP推导的前四个候选。在子CU级别处,最多17个MV被添加到候选列表中。
图27是图示FRUC中的单边运动估计(ME)的示例的示意图2700。现在讨论插值MV场的生成。在对图片进行编解码之前,如示图2700所示,基于单向ME为整个图片生成插值运动场。则该运动场稍后可以用作CU级别或子CU级别MV候选。
两个参考列表中的每个参考图片的运动场以4×4块级别被遍历。对于参考图片中的每个4×4块,当与参考块相关联的运动穿过当前图片中的4×4当前块时(如图2700所示),并且当参考块没有被分配任何插值运动时,根据时域距离TD0和TD1将参考块的运动缩放到当前图片(与TMVP的MV缩放的方式相同)。缩放的运动被分配给当前帧中的当前块。如果没有缩放的MV被分配给4×4块,则该块的运动在插值运动场中被标记为不可用。
现在讨论插值和匹配成本。当运动矢量指向分数样点位置时,采用运动补偿插值。为了降低复杂度,对于双边匹配和模板匹配,使用双线性插值而不是常规的8抽头HEVC插值。匹配成本的计算在不同的步骤会有一点不同。当在CU级别从候选集中选择候选时,匹配成本是双边匹配或模板匹配的绝对差之和(SAD)。在确定了起始MV之后,子CU级别搜索的双边匹配的匹配成本C计算如下:
其中w是根据经验设置为4的加权因子,MV和MVs分别指示当前MV和起始MV。SAD作为子CU级别搜索的模板匹配的匹配成本。在FRUC模式下,MV仅通过使用亮度样点获得。推导的运动用于MC帧间预测的亮度和色度两者。决定MV后,使用8抽头插值滤波器对亮度执行最终运动补偿,并且使用4抽头插值滤波器对色度执行最终运动补偿。
现在讨论MV细化。MV细化是基于模式的MV搜索,以双边匹配成本或模板匹配成本为准则。在JEM中支持无限制的中心偏置菱形搜索(UCBDS)搜索模式和用于CU级别和子CU级别的MV细化的自适应跨搜索模式。对于CU和子CU级别MV细化两者,MV以四分之一亮度样点MV精度直接搜索。随后是八分之一亮度样点MV细化。CU和子CU步长的MV细化的搜索范围设置为等于8个亮度样点。
现在讨论模板匹配FRUC Merge模式中预测方向的选择。在双边匹配Merge模式中,总是应用双向预测。这是因为CU的运动信息是基于两个不同参考图片中沿着当前CU的运动轨迹的两个块之间的最接近匹配而推导的。模板匹配Merge模式没有这样的限制。在模板匹配Merge模式中,编码器可以在来自列表0的单向帧间预测、来自列表1的单向帧间预测和用于CU的双向帧间预测中进行选择。选择基于模板匹配成本,如下所示:
如果costBi<=factor*min(cost0,cost1)
使用双向预测;
否则,如果cost0<=cost1
使用来自列表0的单向预测;
否则,
使用来自列表1的单向预测;
其中,cost0是列表0模板匹配的SAD,cost1是列表1模板匹配的SAD,costBi是双向预测模板匹配的SAD。因子的值等于1.25,这使选择过程偏向双向预测。帧间预测方向选择仅应用于CU级别模板匹配过程。
在VTM版本3(VTM-3.0)和基准集版本2.1(BMS2.1)中采用了广义双向预测改进(GBi)。在双向预测模式中,GBi可以对来自L0和L1的预测值应用不相等的权重。在帧间预测模式中,基于率失真优化(RDO)来评估包括相等权重对(1/2,1/2)的多个权重对。将所选权重对的GBi索引信令通知给解码器。在Merge模式下,GBi索引继承自邻近CU。在BMS2.1 GBi中,双向预测模式下的预测值生成如等式(9)所示。
PGBi=(w0*PL0+w1*PL1+RoundingOffsetGBi)>>shiftNumGBi, (9)
其中PGBi是GBi的最终预测值。w0和w1是选定的GBi权重对,并分别应用于列表L0和L1的预测值。RoundingOffsetGBi和shiftNumGBi用于规范化GBi中的最终预测值。支持的w1权重集为{-1/4,3/8,1/2,5/8,5/4},其中五个权重对应一个等权重对和四个不等权重对。混合增益是w1和w0之和,并且固定为1.0。因此,对应的w0权重集是{5/4,5/8,1/2,3/8,-1/4}。权重对选择是在CU级别。
对于非低延迟图片,权重集尺寸从五减少到三,其中w1权重集为{3/8,1/2,5/8},并且w0权重集为{5/8,1/2,3/8}。非低延迟图片的权重集尺寸减小被应用于本公开中的BMS2.1 GBi和所有GBi测试。
现在描述示例GBi编码器错误修复。为了减少GBi编码时间,编码器可以存储从等于4/8的GBi权重估计的单向帧间预测(单向预测)运动矢量。然后,编解码器可以将运动矢量重新用于其他GBi权重的单向预测搜索。这种快速编码方法可以应用于平移运动模型和仿射运动模型两者。在VTM版本2(VTM-2.0)中,采用了6参数仿射模型和4参数仿射模型。当编码器存储单向预测仿射MV并且当GBi权重等于4/8时,BMS2.1编码器可以不区分4参数仿射模型和6参数仿射模型。因此,在用GBi权重4/8编码之后,4参数仿射MV可能被6参数仿射MV覆盖。存储的6参数仿射MV可以用于其他GBi权重的4参数仿射ME,或者存储的4参数仿射MV可以用于6参数仿射ME。GBi编码器错误修复是将4参数和6参数仿射MV存储分开。当GBi权重等于4/8时,编码器基于仿射模型类型存储那些仿射MV。然后,编码器基于其他GBi权重的仿射模型类型重新使用对应的仿射MV。
现在描述GBi编码器加速机制。提出了五种示例编码器加速方法,以在启用GBi时减少编码时间。第一种方法包括对于一些GBi权重有条件地跳过仿射运动估计。在BMS2.1中,对所有GBi权重执行包括4参数和6参数仿射ME的仿射ME。在示例中,对于不相等的GBi权重(例如,权重不等于4/8),可以有条件地跳过仿射ME。例如,当且仅当仿射模式被选择为当前最佳模式并且在评估4/8的GBi权重之后该模式不是仿射Merge模式时,可以针对其他GBi权重执行仿射ME。当当前图片是非低延迟图片时,当执行仿射ME时,对于不相等的GBi权重,跳过用于平移模型的双向预测ME。当仿射模式未被选择为当前最佳模式时,或者当仿射Merge被选择为当前最佳模式时,对于所有其他GBi权重,仿射ME被跳过。
第二种方法包括减少1像素和4像素MVD精度的编码中低延迟图片的RD成本检查的权重数量。对于低延迟图片,对于包括1/4像素、1像素和4像素的所有MVD精度,有五个用于RD成本检查的权重。编码器首先检查1/4像素MVD精度的RD成本。对于1像素和4像素MVD精度的RD成本检查,可以跳过一部分GBi权重。可以根据1/4像素MVD精度中的它们的RD成本对不等权重进行排序。在1像素和4像素MVD精度的编码期间,仅评估具有最小RD成本的前两个权重以及GBi权重4/8。因此,对于低延迟图片,对于1像素和4像素MVD精度,最多评估三个权重。
第三种方法包括当L0和L1参考图片相同时,有条件地跳过双向预测搜索。对于随机访问(RA)中的一些图片,相同的图片可能出现在两个参考图片列表(L0和L1)中。例如,对于公共测试条件(CTC)中的随机访问编解码配置,第一组图片(GOP)的参考图片结构如下所列。
POC:16,TL:0,[L0:0][L1:0]
POC:8,TL:1,[L0:0 16][L1:16 0]
POC:4,TL:2,[L0:0 8] [L1:8 16]
POC:2,TL:3,[L0:0 4] [L1:4 8]
POC:1,TL:4,[L0:0 2] [L1:2 4]
POC:3,TL:4,[L0:2 0] [L1:4 8]
POC:6,TL:3,[L0:4 0][L1:8 16]
POC:5,TL:4,[L0:4 0][L1:6 8]
POC:7,TL:4,[L0:6 4][L1:8 16]
POC:12,TL:2,[L0:8 0][L1:16 8]
POC:10,TL:3,[L0:8 0][L1:12 16]
POC:9,TL:4,[L0:8 0][L1:10 12]
POC:11,TL:4,[L0:10 8][L1:12 16]
POC:14,TL:3,[L0:12 8][L1:12 16]
POC:13,TL:4,[L0:12 8][L1:14 16]
POC:15,TL:4,[L0:14 12][L1:16 14]
在这个示例中,图片16、8、4、2、1、12、14和15在两个列表中具有(多个)相同的参考图片。对于这些图片的双向预测,L0和L1参考图片可以是相同的。因此,当双向预测中的两个参考图片相同时,当时域层大于1时,以及当MVD精度为1/4像素时,编码器可以跳过用于不相等GBi权重的双向预测ME。对于仿射双向预测ME,这种快速跳过方法仅适用于4参数仿射ME。
第四种方法包括基于时域层和参考图片与当前图片之间的POC距离,跳过对不相等GBi权重的RD成本检查。当时域层等于4(例如,RA中的最高时域层)时,或者当参考图片(L0或L1)之间的POC距离、当前图片等于1并且编解码QP大于32时,可以跳过对那些不相等GBi权重的RD成本评估。
第五种方法包括在ME期间针对不相等的GBi权重将浮点计算改变为定点计算。对于双向预测搜索,编码器可以固定一个列表的MV,并细化另一个列表中的MV。目标在ME之前被修改以降低计算复杂度。例如,如果L1的MV是固定的,并且编码器要细化L0的MV,则L0 MV细化的目标可以用等式10来修改。O是原始信令,并且P1是L1的预测信号。w是L1的GBi权重。
T=((O<<3)-w*P1)*(1/(8-w)) (10)
项(1/(8-w))以浮点精度存储,这增加了计算复杂性。第五种方法将等式10变为等式11中的定点值。
T=(O*a1-P1*a2+round)>>N (11)
在等式11中,a1和a2是缩放因子,并且它们的计算方式为:
γ=(1<<N)/(8-w);a1=γ<<3;a2=γ*w;round=1<<(N-1)
现在讨论GBi的CU尺寸限制。在该示例中,对小CU禁用GBi。在帧间预测模式下,如果使用双向预测且CU区域小于128个亮度样点,则禁用GBi,无任何信令通知。
图28是图示双向光流轨迹的示例的示意图2800。双向光流(BIO)也可以被称为BDOF。在BIO中,首先执行运动补偿,以在每个预测方向上生成当前块的第一预测。第一预测用于推导块内每个子块/像素的空域梯度、时域梯度和光流。然后,这些项被用于生成第二预测,该第二预测充当子块/像素的最终预测。具体描述如下。BIO是基于样点级运动细化,它是在双向帧间预测(双向预测)的块级运动补偿之外执行的。样点级别运动细化可以不使用信令通知。
I(k)可以是块运动补偿后来自参考k(k=0,1)的亮度值,并且 分别是I(k)梯度的水平和垂直分量。假设光流有效,运动矢量场(vx,vy)由下式给出
将该光流等式与针对每个样点的运动轨迹的埃尔米特插值相结合,产生了唯一的三阶多项式,该多项式在末端匹配函数值I(k)和导数两者。t=0时该多项式的值是BIO预测值:
这里,τ0和τ1表示到参考帧的距离,如示图2800所示。距离τ0和τ1是基于Ref0和Ref1的POC而计算的:t0=POC(current)-POC(Ref0),t1=POC(Ref1)-POC(current)。当两个预测来自相同的时域方向时(或者都来自先前的图片,或者都来自随后的图片),则符号不同(τ0·τ1<0)。在这种情况下,仅当预测不是来自同一时刻(例如,τ0≠τ1),当两个参考区域都具有非零运动(MVx0,MVy0,MVx1,MVy1≠0),并且当块运动矢量与时域距离成比例时(MVx0/MVx1=MVy0/MVy1=-τ01),才应用BIO。
运动矢量场(vx,vy)通过最小化点A和B(示图2800上运动轨迹和参考帧平面的交点)中的值之间的差Δ来确定。该模型仅使用Δ的局部泰勒展开的第一个线性项:
等式(14)中的所有值取决于样点位置(i′,j′),这在符号中被省略了。假设运动在局部周围区域中是一致的,则在以当前预测点(i,j)为中心的(2M+1)×(2M+1)正方形窗口Ω内最小化,其中M等于2:
对于这个优化问题,JEM可以使用简化的方法,首先在垂直方向上最小化,然后在水平方向上最小化。这导致
其中,
为了避免除以零或非常小的值,在等式(19)和(20)中引入正则化参数r和m。
r=500·4d-8 (19)
m=700·4d-8 (20)
这里d是视频样点的位深度。
图29是图示没有块扩展的BIO的示例的示意图。为了保持BIO的存储器访问类似于双向预测运动补偿,仅对当前块内的位置计算所有预测和梯度值,在等式(18)中,以预测块的边界上的当前预测点为中心的(2M+1)×(2M+1)正方形窗口Ω应该访问块外部的位置,如块2901所示。在JEM中,块外部的的值被设置为等于块内最近的可用值。例如,这可以实现为填充,如块2903所示。在块2903中,使用填充以避免额外的存储器访问和计算。
使用BIO,可以针对每个样点细化运动场。为了降低计算复杂度,在JEM中使用了基于块的BIO设计。基于4×4块计算运动细化。在基于块的BIO中,4×4块中所有样点的等式(18)中的sn值被聚合。然后,sn的聚合值被用于推导4×4块的BIO运动矢量偏移。更具体地,以下等式用于基于块的BIO推导:
其中bk表示预测块的第k个4×4块中的样点集。等式(16)和(17)中的sn被替换为((sn,bk)>>4)以推导相关联的运动矢量偏移。
在一些示例中,由于噪声或不规则运动,BIO的MV团可能不可靠。因此,在BIO中,MV团的幅度被限幅到阈值thBIO。基于当前图片的参考图片是否都来自一个方向来确定阈值。如果当前图片的所有参考图片都来自一个方向,则将阈值设置为12×214-d;否则,阈值被设置为12×213-d
使用与HEVC运动补偿过程一致的操作,可以在运动补偿插值的同时计算BIO的梯度。这可以包括使用二维(2D)可分有限脉冲响应(FIR)滤波器。该2D可分FIR的输入是与运动补偿过程相同的参考帧样点,具有根据块运动矢量的分数部分的分数位置(fracX,fracY)。在水平梯度的情况下,用于预测信令的插值BIO滤波器(BIOfilterS)被应用在对应于具有去缩放移位d-8的分数位置fracY的垂直方向上。然后,在对应于去缩放移位为18-d的分数位置fracX的水平方向上应用梯度BIO滤波器(BIOfilterG)。在垂直梯度的情况下,使用对应于去缩放移位为d-8的分数位置fracY的BIO滤波器垂直应用第一梯度滤波器。然后,使用BIO滤波器在对应于去缩放移位为18-d的分数位置fracX的水平方向上执行信令位移。用于梯度计算的插值滤波器BIOfilterG和BIO信令位移(BIOfilterF)的长度较短(6抽头),以便维持合理的复杂度。表1示出了用于BIO中块的运动矢量的不同分数位置的梯度计算的滤波器。
表1
分数像素位置 梯度的插值滤波器(BIOfilterG)
0 {8,-39,-3,46,-17,5}
1/16 {8,-32,-13,50,-18,5}
1/8 {7,-27,-20,54,-19,5}
3/16 {6,-21,-29,57,-18,5}
1/4 {4,-17,-36,60,-15,4}
5/16 {3,-9,-44,61,-15,4}
3/8 {1,-4,-48,61,-13,3}
7/16 {0,1,-54,60,-9,2}
1/2 {-1,4,-57,57,-4,1}
表2示出了用于BIO中预测信令生成的插值滤波器。
表2
分数像素位置 预测信令的插值滤波器(BIOfilterS)
0 {0,0,64,0,0,0}
1/16 {1,-3,64,4,-2,0}
1/8 {1,-6,62,9,-3,1}
3/16 {2,-8,60,14,-5,1}
1/4 {2,-9,57,19,-7,2}
5/16 {3,-10,53,24,-8,2}
3/8 {3,-11,50,29,-9,2}
7/16 {3,-11,44,35,-10,3}
1/2 {3,-10,35,44,-11,3}
在JEM中,当两个预测来自不同的参考图片时,BIO被应用于所有双向预测的块。当为CU启用LIC时,BIO被禁用。在JEM,OBMC在MC过程后应用于块。为了降低计算复杂度,在OBMC过程期间没有应用BIO。这意味着,仅当使用块自己的MV时,BIO才应用于该块的MC过程,而当在OBMC过程期间使用邻近块的MV时,BIO不应用于MC过程。
图30是图示BIO中使用的插值样点的示例的示意图3000,例如在VTM-3.0中使用的插值样点。在示例中,BIO采用第一步骤来判断BIO是否适用。W和H分别是当前块的宽度和高度。当当前块被仿射编解码时,当当前块被ATMVP编解码时,当(iPOC-iPOC0)*(iPOC-iPOC1)>=0时,当H==4或(W==4且H==8)时,当当前块使用加权预测时,以及当GBi权重不是(1,1)时,BIO不适用。当两个参考块之间的总SAD(表示为R0和R1)小于阈值时,也不使用B0。
SAD=∑(x,y)|R0(x,y)-R1(x,y)|
在示例中,BIO采用包括数据准备的第二步骤。对于WxH块,插值(W+2)x(H+2)个样点。内部WxH样点使用8抽头插值滤波器进行插值,与运动补偿一样。在图3000中以黑色圆圈图示的样点的四条外侧线是用双线性滤波器插值的。对于每个位置,在两个参考块(表示为R0和R1)上计算梯度。
Gx0(x,y)=(R0(x+1,y)-R0(x-1,y))>>4
Gy0(x,y)=(R0(x,y+1)-R0(x,y-1))>>4
Gx1(x,y)=(R1(x+1,y)-R1(x-1,y))>>4
Gy1(x,y)=(R1(x,y+1)-R1(x,y-1))>>4
对于每个位置,内部值被计算为:
T1=(R0(x,y)>>6)-(R1(x,y)>>6),T2=(Gx0(x,y)+Gx1(x,y))>>3,T3=(Gy0(x,y)+Gy1(x,y))>>3
B1(x,y)=T2*T2,B2(x,y)=T2*T3,B3(x,y)=-T1*T2,B5(x,y)=T3*T3,B6(x,y)=-T1*T3
在示例中,BIO采用第二步骤,该步骤包括计算每个块的预测。如果两个4×4参考块之间的SAD小于阈值,则跳过4×4块的BIO。计算Vx和Vy。还计算4×4块中每个位置的最终预测。
b(x,y)=(Vx(Gx0(x,y)-Gx1(x,y))+Vy(Gy0(x,y)-Gy1(x,y))+1)>>1
P(x,y)=(R0(x,y)+R1(x,y)+b(x,y)+offset)>>shift
b(x,y)被称为校正项。
VTM版本四(VTM-4.0)中的BIO根据位深度对BDOF中的计算结果进行取整。VTM-4.0还移除了双线性滤波,并取回参考块的最近的整数像素来填充样点的四条外侧线(图3000中的黑色圆圈)。
图31是图示基于双边模板匹配的解码器侧运动矢量细化(DMVR)的示例的示意图3100。DMVR是一种解码器侧运动矢量推导(DMVD)类型。在用于预测一个块区域的双向预测操作中,分别使用列表0的MV和列表1的MV形成的两个预测块被组合以形成单个预测信令。在DMVR,双向预测的两个运动矢量通过双边模板匹配过程进一步细化。在解码器中应用双边模板匹配,以在双边模板和参考图片中的重建样点之间执行基于失真的搜索,以便在不传输附加运动信息的情况下获得细化的MV。
在DMVR,双边模板被生成为分别来自列表0的初始MV0和列表1的MV1的两个预测块的加权组合(例如,平均),如示图3100所示。模板匹配操作包括计算生成的模板和参考图片中初始预测块周围的样点区域之间的成本度量。对于两个参考图片中的每一个,产生最小模板成本的MV被认为是该列表的更新MV,以替换原始MV。在JEM中,为每个列表搜索九个MV候选。九个MV候选包括原始MV和八个MV,其中一个亮度样点在水平方向、垂直方向或两个方向上偏移原始MV。如图3100中所示,表示为MV0’和MV1’的两个新MV用于生成最终的双向预测结果。SAD被用作成本度量。当计算由一个周围MV生成的预测块的成本时,取整的MV(到整数像素)实际上用于获得预测块,而不是真实MV。
DMVR应用于双向预测的Merge模式,其中一个MV来自前一参考图片,而另一个MV来自后一参考图片,无需传输附加的语法元素。在JEM中,当针对CU启用LIC候选、仿射运动候选、FRUC候选和/或子CU Merge候选时,不应用DMVR。
现在讨论基于模板匹配的自适应Merge候选重新排序。为了提高编解码效率,在构建Merge候选列表之后,根据模板匹配成本来调整每个Merge候选的顺序。Merge候选根据模板匹配成本的升序排列在列表中。相关操作以子组的形式执行。
图32是图示用于计算模板匹配中的SAD的邻近样点的示例的示意图3200。模板匹配成本通过当前CU的邻近样点和它们对应的参考样点之间的SAD来测量。当Merge候选包含双向预测运动信息时,对应的参考样点是参考列表0中的对应参考样点和参考列表1中的对应参考样点的平均值,如示图3200中所说明。
图33是图示用于计算模板匹配中子CU级别运动信息的SAD的邻近样点的示例的示意图3300。如果Merge候选包括子CU级别运动信息,则对应的参考样点包括对应的参考子块的邻近样点,如示图3300所示。
图34是图示在更新Merge候选列表中使用的排序过程的示例的示意图3400。如示图3400所示,排序过程以子组的形式操作。前三个Merge候选被排序在一起。以下三个Merge候选被排序在一起。模板尺寸(左模板的宽度或上模板的高度)为1。子组尺寸为3。
以下是通过所公开的技术解决方案解决的示例技术问题。在HEVC中,CU可以被划分为至多四个PU。然而,对于一些应用,PU的划分可能不够灵活。
本文公开了解决以上列出的一个或多个问题的机制。例如,可以将CTU划分为多个CU。每个CU可以包括预测树单元(PTU)。PTU然后被递归地划分为PU。以这种方式,编解码树被应用于划分CTU,并且预测树被应用于编解码树中的每个叶节点。这也允许根据划分规则集合以一致的递归方式生成PU。每个PU然后可以包含不同的预测信息。例如,一些PTU可能没有被划分,这导致尺寸与CU相同的PU。在一些示例中,通过四叉树(QT)划分、垂直二叉树(BT)划分、水平BT划分、垂直三叉树(TT)划分、水平TT划分、垂直非对称四叉树(UQT)划分、水平UQT划分、垂直非对称二叉树(UBT)划分、水平UBT划分、垂直扩展四叉树(EQT)划分或水平EQT划分中的一个或多个来划分PTU。TU仍然可以在CU级别被应用,因此TU可以被应用于来自多个PU的残差。比特流可以包含描述用于分割PTU和/或PU的划分模式和/或划分深度的语法。在一些示例中,可以基于位置、尺寸、深度和/或各种阈值来允许或不允许PTU和/或PU划分。在这种情况下,划分信息可以从比特流中省略,并由解码器推断。
图35是通过递归PU 3505的示例CTU 3501划分的示意图3500。图片可以被划分为CTU的行和列。在示意图3500中,CTU由实线描绘。CTU 3501是亮度样点(表示为Y个样点)和对应的色度样点的块。色度样点包括蓝色差(Cb)样点和红色差(Cr)样点。样点的类型也可以被称为分量,诸如亮度分量、Cr分量、Cb分量等。CTU 3501是预定尺寸的块。例如,根据示例,CTU 3501可以在16×16个像素和64×64个像素之间。当分割图片时,可以在第一遍次(pass)中创建CTU 3501,因此CTU 3501可以被称为图片中的最大编解码单元。
CTU 3501可以被进一步细分为CU。例如,编解码树可以被应用于将CTU 3501分割为CU。编解码树是将一个或多个划分模式的有序列表应用于视频单元的分层数据结构。编解码树可以用最大视频单元作为根节点,以通过父节点中的划分而创建的逐渐更小的节点来可视化。不能再划分的节点被称为叶节点。通过将编解码树应用于CTU而创建的叶节点是CU。CU包含亮度分量和色度分量两者。
在本示例中,每个CU也是PTU 3503。因此,CU和PTU 3503在示意图3500中由虚线共同描绘。PTU 3503是包含亮度分量和色度分量两者并且可以通过应用预测编解码树而被细分为PU 3505的结构。预测编解码树是应用一个或多个划分模式的有序列表来创建PU 3505的分层数据结构。PU 3505是通过相同预测模式而编码的一组样点。PU 3505在示意图3500中由虚线描绘。将编解码树应用于PTU 3503允许PU 3505基于不同的划分模式而被递归地生成。例如,可以通过QT划分、垂直BT划分、水平BT划分、垂直TT划分、水平TT划分、垂直UQT划分、水平UQT划分、垂直UBT划分、水平UBT划分、垂直EQT划分、水平EQT划分或者其组合来划分PTU 3503。
参考图6,示例QT划分由四叉树分区601示出,并导致从父块创建的四个相等尺寸的PU。示例垂直BT划分和水平BT划分分别由垂直二叉树分区603和水平二叉树分区605示出,并且导致从父块创建的两个相等尺寸的PU。示例垂直TT划分和水平TT划分分别由垂直三叉树分区607和水平三叉树分区609示出。TT导致从父块创建的三个PU,其中中间PU的尺寸为父块的一半,并且剩余两个PU的尺寸相等,总体尺寸为父块的一半。UQT划分创建四个PU的非对称组。例如,水平UQT可以生成具有相等宽度和不同高度的四个PU,诸如父块高度的一半、四分之一、八分之一和八分之一。例如,垂直UQT可以生成具有相等高度和不同宽度的四个PU,诸如父块宽度的一半、四分之一、八分之一和八分之一。参考图8,划分801和803描绘了垂直UBT,并且划分805和807描绘了水平UBT。UBT创建不相等尺寸的两个PU,诸如父块尺寸的四分之一和四分之三。EQT可以将父块划分为不同尺寸的四个PU。例如,EQT应用可以为水平或垂直并以任何顺序被应用的三个划分。利用两个或更多个水平划分的EQT是水平EQT,并且利用两个或更多个垂直划分的EQT是垂直EQT。
这样的划分可以根据编解码树以划分模式排序。这导致不同尺寸的PU 3505的高度可定制的模式。这也允许编码器生成与其他块匹配良好的PU 3505,并且因此可以通过具有更少残差的参考块来预测,这减小了编码尺寸。
图36是示出通过递归PU的示例CTU划分的流程图3600。如图所示,CTU首先被划分为CU。这可以通过根据编解码树应用各种划分来实现。编解码树上的叶不能被进一步划分,因此编解码树叶成为CU。产生的CU然后被分类为PTU。然后将预测编解码树应用于每个PTU以生成PU。不被进一步划分的PTU成为PU。PTU可以被划分为PU,其可以被进一步划分为多个PU。作为预测编解码树上的叶节点的PU是PU。预测编解码树是应用于PTU的编解码树。在一些示例中,基于PTU和/或PU相对于图片或子图片分界的位置,可以允许或不允许PTU和/或PU的划分。在一些示例中,基于尺寸和/或树深度相对于各种阈值的比较,可以允许或不允许PTU和/或PU的划分。此外,根据示例,用于分割PTU的所选划分模式可以通过对应的语法在比特流中被编解码,或者从比特流中省略并由解码器推断。
下面的详细实施例应该被认为是解释一般概念的示例。这些实施例不应该以狭义的方式解释。此外,这些实施例可以以任何方式组合。在以下讨论中,QT、BT、TT、UQT和ETT可以分别指QT划分、BT划分、TT划分、UQT划分和ETT划分。在以下讨论中,如果宽度和高度都是二价(dyadic)数,则块是二价块,其形式为2N,其中N是正整数。术语“块”代表与一色、两色或三色分量相关联的一组样点,诸如CU、PU、TU、CB、PB或TB。在以下讨论中,如果宽度和高度中的至少一个是非二价数,则块是非二价块,其不能以2N的形式表示,其中N是正整数。在以下讨论中,划分和分割具有相同的含义。
VVC支持的示例定义如下。对于M和N的一些值,编解码块是样点的M×N块,使得将CTB分为编解码块是分割。对于N的一些值,编解码树块(CTB)是样点的N×N块,使得将分量分为CTB是分割。编解码树单元(CTU)是亮度样点的CTB、具有三个样点阵列的图片的色度样点的两个对应CTB、或者单色图片的样点的CTB、以及用于对样点进行编解码的语法结构。编解码单元(CU)是亮度样点的编解码块、单树模式下具有三个样点阵列的图片的色度样点的两个对应编解码块、或双树模式下具有三个样点阵列的图片的亮度样点的编解码块、或双树模式下具有三个样点阵列的图片的色度样点的两个编解码块、或单色图片的样点的编解码块、以及用于对样点进行编解码的语法结构。
为了方便起见,在以下描述中,CU也可以指CB,CTU也可以指CTB。CTU或CU可以被进一步划分为CU或叶CU。叶CU不能被进一步划分为CU或叶CU,作为基本编解码单元。预测树单元(PTU)与叶CU相关联,覆盖与叶CU相同的区域。PTU或预测单元(PU)可以被进一步划分为PU或叶PU。叶PU不能被进一步划分为PU或叶CU,作为基本预测单元。
示例1
在一个示例中,可以以递归方式将编解码单元划分为多个PU。例如,可以通过如图35所示的CU和PU划分模式和/或如图36所示的划分树结构来递归地划分CTU。在一个示例中,CU可以与预测树单元(PTU)相关联。PTU可以作为叶PU,其不被允许进一步划分。PTU可以被划分为多个PU。PU可以被划分为多个PU。PU可以作为叶PU。从PTU划分的不同叶PU可以具有不同的预测模式。从PTU划分的不同叶PU可以具有相同的预测模式。从PTU划分的多个PU产生的残差可以在单个变换单元(TU)中被变换编解码。
示例2
在一个示例中,可以以不同的方式将PTU或PU划分为多个PU。例如,可以通过QT划分将PTU或PU划分为四个PU。例如,可以通过垂直BT划分将PTU或PU划分为两个PU。例如,可以通过水平BT划分将PTU或PU划分为两个PU。例如,可以通过垂直TT划分将PTU或PU划分为三个PU。例如,可以通过水平TT划分将PTU或PU划分为三个PU。例如,可以通过垂直UQT划分将PTU或PU划分为四个PU。例如,可以通过水平非对称四叉树(UQT)划分将PTU或PU划分为四个PU。例如,可以通过垂直UBT划分将PTU或PU划分为两个PU。例如,可以通过水平UBT划分将PTU或PU划分为两个PU。例如,可以通过垂直扩展四叉树(EQT)划分将PTU或PU划分为四个PU。例如,可以通过水平EQT划分将PTU或PU划分为四个PU。
示例3
在一个示例中,可以从编码器向解码器信令通知是否和/或如何划分PTU或PU。在一个示例中,可以信令通知语法元素(诸如标志),以指示与CU相关联的PTU是被进一步划分为多个PU,还是不被划分并作为叶PU。在一个示例中,可以信令通知语法元素(诸如标志),以指示PU是被进一步划分为多个PU,还是不被划分并作为叶PU。在一个示例中,可以信令通知一个或多个语法元素,以指示划分机制,其可以包括PTU或PU的划分模式(例如,QT、BT、TT、UBT、UQT和/或EQT)和/或划分方向(例如,水平或垂直)。在一个示例中,仅当解码器不能推断PTU或PU是否被进一步划分时,才可以有条件地信令通知指示PTU或PU的划分机制的语法元素。在一个示例中,可以用基于上下文的算术编解码对指示是否和/或如何划分PTU或PU的语法元素进行编解码。在一个示例中,可以用旁路编解码对指示是否和/或如何划分PTU或PU的语法元素进行编解码。在一个示例中,可以与指示是否和/或如何划分CTU或CU的信息一起信令通知指示是否和/或如何划分PTU或PU的信息的全部或一部分。
示例4
在一个示例中,可以针对PTU和/或PU计算深度。在一个示例中,深度可以是QT深度。对于通过QT划分的当前PTU和/或PU的每个祖先PTU或PU,可以将QT深度增加K(例如,K=1)。在一个示例中,深度可以是MTT深度。对于通过任何划分方法划分的当前PTU和/或PU的每个祖先PTU或PU,可以将MTT深度增加K(例如,K=1)。在一个示例中,可以将PTU的深度初始化为固定数,诸如零。在一个示例中,可以将PTU的深度初始化为与PTU相关联的CU的对应深度。
示例5
在一个示例中,可以由解码器推断是否和/或如何划分PTU或PU。在一个示例中,该推断可以依赖于当前CU、PTU和/或PU的维度。在一个示例中,该推断可以依赖于当前CU、PTU和/或PU的编解码树深度(诸如QT深度或MTT深度)。在一个示例中,该推断可以依赖于当前CU、PTU和/或PU的编解码/预测模式。在一个示例中,该推断可以依赖于当前CU、PTU和/或PU是否在图片、子图片和/或CTU边界处。在一个示例中,如果解码器可以推断PTU和/或PU不能被进一步划分,则指示PTU和/或PU是否应该被划分的语法元素不被信令通知。在一个示例中,如果解码器可以推断PTU和/或PU不能用特定的划分方法来划分,则指示用于PTU和/或PU的划分方法的语法元素应该相应地被信令通知,排除特定的划分方法。
在一个示例中,如果PTU/PU的深度大于/小于T,则不允许进一步划分PTU和/或PU,其中T可以是固定数,或者从编码器信令通知给解码器,或者在解码器处推导。在一个示例中,如果PTU和/或PU的尺寸和/或面积大于或小于T,则不允许进一步划分PTU和/或PU,其中T可以是固定数,或者从编码器信令通知给解码器,或者在解码器处推导。在一个示例中,如果PTU或PU的宽度大于或小于T1,和/或PTU和/或PU的高度大于或小于T2,则不允许进一步划分PTU和/或PU,其中T1或T2可以是固定数,或者从编码器信令通知给解码器,或者在解码器处推导。
在一个示例中,如果PTU和/或PU的宽度和PTU和/或PU的高度的最大值、最小值或平均值大于或小于T,则不允许进一步划分PTU/PU,其中T可以是固定数,或者从编码器信令通知给解码器,或者在解码器处推导。在一个示例中,如果PTU和/或PU的深度大于或小于T,则对于PTU和/或PU不允许特定的划分方法,其中T可以是固定数,或者从编码器信令通知给解码器,或者在解码器处推导。在一个示例中,如果PTU和/或PU的尺寸和/或面积大于或小于T,则对于PTU和/或PU不允许特定的划分方法,其中T可以是固定数,从编码器信令通知给解码器,或者在解码器处推导。在一个示例中,如果PTU和/或PU的宽度大于或小于T1,和/或PTU和/或PU的高度大于或小于T2,则对于PTU和/或PU不允许特定的划分方法,其中T1或T2可以是固定数,从编码器信令通知给解码器,或者在解码器处推导。在一个示例中,如果PTU和/或PU的宽度和PTU和/或PU的高度的最大值、最小值或平均值大于或小于T,则对于PTU和/或PU不允许特定的划分方法,其中T可以是固定数,从编码器信令通知给解码器,或者在解码器处推导。
图37是示出可以在其中实施本文公开的各种技术的示例视频处理系统4000的框图。各种实施方式可以包括系统4000的一些或所有组件。系统4000可以包括用于接收视频内容的输入4002。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式被接收,或者可以是压缩或编码格式。输入4002可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
系统4000可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件4004。编解码组件4004可以将来自输入4002的视频的平均比特率减小到编解码组件4004的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件4004的输出可以被存储,或者经由如组件4006所表示的通信连接来发送。在输入4002处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件4008用于生成像素值或传送到显示接口4010的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编解码结果的对应的解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)、或高清晰度多媒体接口(HDMI)、或显示端口(Displayport)等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
图38是示例视频处理装置4100的框图。装置4100可以用于实施本文描述的一种或多种方法。装置4100可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置4100可以包括一个或多个处理器4102、一个或多个存储器4104和视频处理电路4106。(多个)处理器4102可以被配置为实施本文档中描述的一种或多种方法。存储器(多个存储器)4104可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理电路4106可以用于在硬件电路系统中实施本文档中描述的一些技术。在一些实施例中,视频处理电路4106可以至少部分被包括在处理器4102(例如,图形协处理器)中。
图39是视频处理的示例方法4200的流程图,例如在诸如编码器和/或解码器的视频编解码装置上实施。方法4200可以用于将CTU递归地划分为PU,例如如图35-图36所示。在步骤4202,视频编解码装置确定将CTU划分为一个或多个CU。在步骤4204,视频编解码装置确定将CU递归地划分为PU。例如,这可以通过将CU中的每一个分类为PTU来实现。例如,这可以通过将CU中的一个或多个分类为一个或多个PTU来实现。视频编解码装置然后可以将预测编解码树应用于PTU以创建PU。在一些示例中,PTU可以是叶PU,其是预测编解码树上的叶节点。在这种情况下,叶PU,并因此PTU,不被进一步划分。在一些示例中,可以通过预测编解码树将PTU进一步划分为多个PU。此外,PU可以是预测编解码树上的叶节点。因此,PU可以被进一步划分为多个PU。这可以继续,直到PU是叶PU,在这种情况下PU不再被划分。来自共同PTU的不同叶PU可以具有不同的预测模式,诸如帧内预测模式和/或帧间预测运动矢量。然而,TU可以包括多个PU,因此来自相同PTU的多个PU的残差可以通过单个TU被变换编解码。
可以将PTU和/或PU递归地划分为:通过QT划分的四个PU、通过垂直BT划分的两个PU、通过水平BT划分的两个PU、通过垂直TT划分的三个PU、通过水平TT划分的三个PU、通过垂直UQT划分的四个PU、通过水平UQT划分的四个PU、通过垂直UBT划分的两个PU、通过水平UBT划分的两个PU、通过垂直EQT划分的四个PU、通过水平EQT划分的四个PU、或者其组合。为了讨论清楚起见,在一些情况下,PU的PTU和/或PU可以被统称为视频单元。
在一些示例中,针对PU和/或PTU计算预测编解码树的深度。深度可以用于指示预测编解码树中出现的划分数量。可以信令通知深度和/或可以将深度与一个或多个阈值进行比较,以确定何时对于叶节点不再允许划分。在一些示例中,深度是指示祖先视频单元(例如,PTU)通过QT被划分的次数的QT深度。在一些示例中,深度是指示祖先视频单元(例如,PTU)通过任何划分类型被划分的次数的多类型树(MTT)深度。在一些示例中,深度被初始化为与PTU或PU相对应的CU的深度。这导致作为应用于CTU的编解码树深度和应用于当前PTU和/或PU的预测编解码深度之和的总深度。
在步骤4204,视频编解码设备基于PU来执行可视媒体数据和比特流之间的转换。在一些示例中,转换包括将可视媒体数据编码为比特流。在一些示例中,转换包括解码比特流以获得可视媒体数据。比特流可以包括指示应用于PU和PTU的划分的语法。例如,比特流可以包括指示对应的PTU和/或PU是否被进一步划分为多个PU的语法元素。在一个示例中,比特流可以包括指示应用于PTU和/或PU的划分模式(例如,QT、BT、TT等)和划分方向(例如,水平或垂直)的语法。在一些示例中,划分模式可以包括划分类型和划分方向的有序列表。在一些示例中,指示划分模式和划分方向的语法被有条件地信令通知,并且因此仅在PTU和/或PU被进一步划分时针对PTU和/或PU被信令通知。如果没有应用划分,则可以从比特流中省略对应的语法。在一些示例中,当前视频单元的划分(PTU和/或PU)不包括在比特流中,并且由解码器推断。
在一些示例中,根据以下来推断划分:当前视频单元维度(例如,高度、深度和/或尺寸)、当前视频单元深度、相对于图片边界的当前视频单元位置、相对于子图片边界的当前视频单元位置、当前视频单元是否可以被进一步划分、相对于深度阈值的当前视频单元深度、相对于高度阈值的当前视频单元高度、相对于宽度阈值的当前视频单元宽度、或者其组合。在一些示例中,通过以下的比较而不允许划分:相对于高度阈值(例如,最小和/或最大高度)的当前视频单元高度、相对于宽度阈值(例如,最小和/或最大宽度)的当前视频单元宽度、相对于尺寸阈值(例如,最小和/或最大尺寸)的当前视频高度和当前视频宽度、相对于深度阈值的当前视频单元深度、相对于尺寸阈值的当前视频单元尺寸(例如,最大和/或最小宽度和/或高度)、或者其组合。
应当注意,方法4200可以在用于处理视频数据的装置中实施,该装置包括处理器和其上具有指令的非暂时性存储器,诸如视频编码器4400、视频解码器4500和/或编码器4600。在这种情况下,该指令在由处理器执行时使得处理器执行方法4200。此外,方法4200可以由包括供视频编解码设备使用的计算机程序产品的非暂时性计算机可读介质执行。该计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可执行指令,使得当由处理器执行时,使视频编解码设备执行方法4200。
图40是示出可以利用本公开的技术的示例视频编解码系统4300的框图。视频编解码系统4300可以包括源设备4310和目标设备4320。源设备4310生成编码视频数据,其中该源设备4310可以被称为视频编码设备。目标设备4320可以解码由源设备4310生成的编码视频数据,其中该目标设备4320可以被称为视频解码设备。
源设备4310可以包括视频源4312、视频编码器4314和输入/输出(I/O)接口4316。视频源4312可以包括源,诸如视频捕捉设备、从视频内容提供器接收视频数据的接口、和/或用于生成视频数据的计算机图形系统、或这些源的组合。视频数据可以包括一个或多个图片。视频编码器4314对来自视频源4312的视频数据进行编码,以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关数据。编解码图片是图片的编解码表示。相关数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口4316可以包括调制器/解调器(调制解调器)和/或发送器。编码视频数据可以通过网络4330经由I/O接口4316直接发送到目标设备4320。编码视频数据也可以存储在存储介质/服务器4340上,以供目标设备4320访问。
目标设备4320可以包括I/O接口4326、视频解码器4324和显示设备4322。I/O接口4326可以包括接收器和/或调制解调器。I/O接口4326可以从源设备4310或存储介质/服务器4340获取编码视频数据。视频解码器4324可以对编码视频数据进行解码。显示设备4322可以向用户显示解码视频数据。显示设备4322可以与目标设备4320集成,或者可以在可以被配置为与外部显示设备接口的目标设备4320的外部。
视频编码器4314和视频解码器4324可以根据视频压缩标准进行操作,例如高效视频编解码(HEVC)标准、多功能视频编解码(VVM)标准和其他当前和/或另外的标准。
图41是示出视频编码器4400的示例的框图,该视频编码器4400可以是在图40中示出的系统4300中的视频编码器4314。视频编码器4400可以被配置为执行本公开的任何或所有技术。视频编码器4400包括多个功能组件。本公开中描述的技术可以在视频编码器4400的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
视频编码器4400的功能组件可以包括分割单元4401、预测单元4402(其可以包括模式选择单元4403、运动估计单元4404、运动补偿单元4405和帧内预测单元4406)、残差生成单元4407、变换处理单元4408、量化单元4409、逆量化单元4410、逆变换单元4411、重构单元4412、缓冲区4413和熵编解码单元4414。
在其他示例中,视频编码器4400可以包括更多、更少或不同的功能组件。在示例中,预测单元4402可以包括帧内块复制(IBC)单元。IBC单元可以执行IBC模式下的预测,其中至少一个参考图片是当前视频块所在的图片。
此外,诸如运动估计单元4404和运动补偿单元4405的一些组件可以高度集成,但是出于解释的目的,在视频编码器4400的示例中被单独表示。
分割单元4401可以将图片分割为一个或多个视频块。视频编码器4400和视频解码器4500可以支持各种视频块尺寸。
模式选择单元4403可以基于误差结果选择编解码模式(例如,帧内或帧间)之一,并且将作为结果的帧内编解码块或帧间编解码块提供给残差生成单元4407以生成残差块数据,以及提供给重构单元4412以重构编码块以用作参考图片。在一些示例中,模式选择单元4403可以选择帧内和帧间预测模式的组合(CIIP),其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元4403还可以选择块的运动矢量的分辨率(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元4404可以通过将来自缓冲区4413的一个或多个参考帧与当前视频块进行比较,来生成当前视频块的运动信息。运动补偿单元4405可以基于运动信息和来自缓冲区4413的除了与当前视频块相关联的图片之外的图片的解码样点,来确定当前视频块的预测视频块。
运动估计单元4404和运动补偿单元4405可以对当前视频块执行不同的操作,例如,依赖于当前视频块是在I条带、P条带还是B条带中。
在一些示例中,运动估计单元4404可以对当前视频块执行单向预测,并且运动估计单元4404可以为当前视频块的参考视频块搜索列表0或列表1的参考图片。运动估计单元4404然后可以生成指示列表0或列表1中的参考图片的参考索引,该参考索引包含参考视频块和指示当前视频块和参考视频块之间的空域位移的运动矢量。运动估计单元4404可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元4405可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其他示例中,运动估计单元4404可以对当前视频块执行双向预测,运动估计单元4404可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中搜索当前视频块的另一个参考视频块。运动估计单元4404然后可以生成参考索引,该参考索引指示包含参考视频块的列表0和列表1中的参考图片以及指示参考视频块和当前视频块之间的空域位移的运动矢量。运动估计单元4404可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元4405可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元4404可以输出完整的运动信息集,以用于解码器的解码处理。在一些示例中,运动估计单元4404可以不输出当前视频的完整的运动信息集合。相反,运动估计单元4404可以参考另一个视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元4404可以确定当前视频块的运动信息与邻近视频块的运动信息足够相似。
在一个示例中,运动估计单元4404可以在与当前视频块相关联的语法结构中指示值,该值向视频解码器4500指示当前视频块具有与另一个视频块相同的运动信息。
在另一个示例中,运动估计单元4404可以在与当前视频块相关联的语法结构中标识另一视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量和所指示的视频块的运动矢量之间的差。视频解码器4500可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上所讨论的,视频编码器4400可以预测性地信令通知运动矢量。可以由视频编码器4400实施的预测信令通知技术的两个示例包括高级运动矢量预测(AMVP)和Merge模式信令通知。
帧内预测单元4406可以对当前视频块执行帧内预测。当帧内预测单元4406对当前视频块执行帧内预测时,帧内预测单元4406可以基于相同图片中的其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差生成单元4407可以通过从当前视频块中减去当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中样点的不同样点分量相对应的残差视频块。
在其他示例中,例如在跳过模式下,对于当前视频块可能没有残差数据,并且残差生成单元4407可能不执行减去操作。
变换处理单元4408可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来为当前视频块生成一个或多个变换系数视频块。
在变换处理单元4408生成与当前视频块相关联的变换系数视频块之后,量化单元4409可以基于与当前视频块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元4410和逆变换单元4411可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元4412可以将重构后的残差视频块添加到来自预测单元4402生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重构视频块,用于存储在缓冲区4413中。
在重构单元4412重构视频块之后,可以执行环路滤波操作,以减少视频块中的视频块效应。
熵编解码单元4414可以从视频编码器4400的其他功能组件接收数据。当熵编解码单元4414接收到数据时,熵编解码单元4414可以执行一个或多个熵编码操作,以生成熵编码数据,并输出包括该熵编码数据的比特流。
图42是示出视频解码器4500的示例的框图,该视频解码器4500可以是在图40中示出的系统4300中的视频解码器4324。视频解码器4500可以被配置为执行本公开的任何或所有技术。在示出的示例中,视频解码器4500包括多个功能组件。本公开中描述的技术可以在视频解码器4500的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
在示出的示例中,视频解码器4500包括熵解码单元4501、运动补偿单元4502、帧内预测单元4503、逆量化单元4504、逆变换单元4505、重构单元4506和缓冲区4507。在一些示例中,视频解码器4500可以执行通常与针对视频编码器4400描述的编码遍次相反的解码过程。
熵解码单元4501可以检索编码比特流。编码比特流可以包括熵编解码的视频数据(例如,视频数据的编码块)。熵解码单元4501可以对熵编解码的视频数据进行解码,并且从熵解码的视频数据中,运动补偿单元4502可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元4502可以例如通过执行AMVP和Merge模式来确定这样的信息。
运动补偿单元4502可以产生运动补偿块,可以基于插值滤波器执行插值。要以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
运动补偿单元4502可以使用如视频编码器4400在视频块的编码期间所使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元4502可以根据所接收的语法信息确定视频编码器4400使用的插值滤波器,并使用该插值滤波器来产生预测块。
运动补偿单元4502可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述编码视频序列的图片的每个宏块如何被分割的分割信息、指示每个分割如何被编码的模式、每个帧间编解码块的一个或多个参考帧(和参考帧列表)、以及用于对编码视频序列进行解码的其他信息。
帧内预测单元4503可以使用例如在比特流中接收的帧内预测模式来从空域上相邻的块形成预测块。逆量化单元4504对在比特流中提供并由熵解码单元4501解码的量化后的视频块系数进行逆量化,即,反量化。逆变换单元4505应用逆变换。
重构单元4506可以将残差块与由运动补偿单元4502或帧内预测单元4503生成的对应预测块相加,以形成解码块。如果需要,还可以应用去块滤波器对解码块进行滤波,以便移除块效应。解码视频块然后被存储在缓冲区4507中,为随后的运动补偿/帧内预测提供参考块,并且还产生解码视频以在显示设备上呈现。
图43是示例编码器4600的示意图。编码器4600适合于实施VVC的技术。编码器4600包括三个环路滤波器,即去块滤波器(DF)4602、样点自适应偏移(SAO)4604和自适应环路滤波器(ALF)4606。与使用预定义滤波器的DF 4602不同,SAO 4604和ALF 4606利用当前图片的原始样点,通过分别利用编解码辅助信息用信令通知偏移和滤波器系数来添加偏移和应用有限脉冲响应(FIR)滤波器,从而减少原始样点与重构样点之间的均方误差。ALF 4606位于每个图片的最后一个处理级,并且可以被视为尝试捕捉和修复由先前的级产生的伪像的工具。
编码器4600还包括被配置为接收输入视频的帧内预测组件4608和运动估计/补偿(ME/MC)组件4610。帧内预测组件4608被配置为执行帧内预测,而ME/MC组件4610被配置为利用从参考图片缓冲区4612获得的参考图片来执行帧间预测。来自帧间预测或帧内预测的残差块被馈送到变换(T)组件4614和量化(Q)组件4616中以生成量化残差变换系数,该量化残差变换系数被馈送到熵编解码组件4618。熵编解码组件4618对预测结果和量化变换系数进行熵编解码,并且将其发送给视频解码器(未示出)。从量化组件4616输出的量化分量可以被馈送到逆量化(IQ)组件4620、逆变换组件4622和重构(REC)组件4624中。REC组件4624能够将图像输出到DF 4602、SAO 4604和ALF 4606,以便在这些图像被存储在参考图片缓冲区4612中之前进行滤波。
接下来提供了一些示例优选的解决方案列表。
以下解决方案示出了本文讨论的技术的示例。
1.一种视频处理方法(例如,图39中描绘的方法4200),包括:根据规则来确定视频块是否或如何被划分为多个分区;以及基于该确定来执行视频块和视频的比特流之间的转换。
2.根据解决方案1所述的方法,其中,视频块是与预测树单元PTU相关联的编解码单元CU。
3.根据解决方案1-2所述的方法,其中,该规则指定视频块被划分为多个预测单元PU。
4.根据解决方案2-3所述的方法,其中,该规则指定在视频块是作为叶PU的预测树单元的情况下,对视频块的进一步分割被禁用。
5.根据解决方案1所述的方法,其中,视频块是预测树单元(PTU)或预测单元(PU)。
6.根据解决方案5所述的方法,其中,该规则指定使用四叉树划分将视频块划分为四个PU,或者使用垂直二叉树划分将视频块划分为两个PU。
7.根据上述解决方案中任一项所述的方法,其中,多个分区使用一个或多个语法元素在比特流中被指示。
8.根据解决方案7所述的方法,其中,一个或多个语法元素包括指示与视频块相关联的PTU是否被进一步划分或者与视频块相关联的PTU是否是叶PU的语法元素。
9.根据上述解决方案中任一项所述的方法,其中,该转换包括计算视频块的深度。
10.根据解决方案9所述的方法,其中,深度包括四叉树深度,其中该四叉树深度的值根据祖先PTU或PU的数量而增加。
11.根据解决方案9所述的方法,其中,深度包括多类型树(MTT)深度。
12.根据解决方案1-6中任一项所述的方法,其中,多个分区不在比特流中被编解码,并且根据推断规则在解码器处被推断。
13.根据解决方案12所述的方法,其中,推断规则基于视频块的维度或视频块的编解码树深度。
14.根据解决方案12所述的方法,其中,推断规则基于视频块的编解码模式。
15.根据上述解决方案中任一项所述的方法,其中,在比特流中的语法元素从比特流中省略的情况下,该语法元素被推断为具有默认值。
16.根据解决方案1-15中任一项所述的方法,其中,该转换包括从视频生成比特流。
17.根据解决方案1-15中任一项所述的方法,其中,该转换包括从比特流生成视频。
18.一种在计算机可读介质上存储比特流的方法,包括根据解决方案1-15中任一项或多项所述的方法来生成比特流,以及将比特流存储在计算机可读介质上。
19.一种存储有视频的比特流的计算机可读介质,该比特流在由视频解码器的处理器处理时使得视频解码器生成视频,其中该比特流是根据解决方案1-18中的一项或多项所述的方法来生成的。
20.一种视频解码装置,包括被配置为实施根据解决方案1至18中的一项或多项所述的方法的处理器。
21.一种视频编码装置,包括被配置为实施根据解决方案1至18中的一项或多项所述的方法的处理器。
22.一种存储有计算机代码的计算机程序产品,该代码在由处理器执行时使得所述处理器实施根据解决方案1至18中任一项所述的方法。
23.一种计算机可读介质,其上有符合根据解决方案1至18中任一项生成的比特流格式的比特流。
24.一种在本文档中描述的方法、装置、根据所公开的方法而生成的比特流、或系统。
在本文描述的解决方案中,编码器可以通过根据格式规则产生编解码表示来符合格式规则。在本文描述的解决方案中,解码器可以在根据格式规则知道语法元素的存在和不存在的情况下,使用格式规则来解析编解码表示中的语法元素,以产生解码视频。
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,在从视频的像素表示到对应的比特流表示的转换期间,可以应用视频压缩算法,反之亦然。如语法所定义的,当前视频块的比特流表示可以例如对应于并置或者散布在比特流内的不同地方的比特。例如,可以按照变换和编解码的误差残差值并且还使用比特流中的标头和其他字段中的比特对宏块进行编码。此外,在转换期间,解码器可以基于确定,在知道一些字段可能存在或不存在的情况下解析比特流,如以上解决方案中所述。类似地,编码器可以确定包括或不包括某些语法字段,并通过包括或排除来自编解码表示的语法字段来相应地生成编解码表示。
本文档中描述的所公开的以及其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中、或者在计算机软件、固件或硬件(包括本文档中公开的结构及其结构等同物)中、或者在它们中的一个或多个的组合中被实施。所公开的以及其他实施例可以被实施为一个或多个计算机程序产品,即在计算机可读介质上编码的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。传播信号是被生成以对信息进行编码以用于发送到合适的接收器装置的人工生成的信号,例如机器生成的电信号、光学信号或电磁信号。
计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
本文档书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存设备;磁盘,例如内部硬盘或可换式盘;磁光盘;以及光盘只读存储器(CD ROM)和数字通用磁盘只读存储器(DVD-ROM)盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可能要求保护的范围的限制,而是作为指定于特定技术的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以单独在多个实施例中或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。
当在第一组件与第二组件之间除了线、迹线或另一介质之外不存在中间组件时,第一组件直接耦合到第二组件。当在第一组件与第二组件之间除了线、迹线或另一介质之外还存在中间组件时,第一组件间接耦合到第二组件。术语“耦合”及其变体包括直接耦合和间接耦合。术语“大约”的使用意味着包括随后的数值的±10%的范围,除非另有说明。
虽然在本公开中已经提供了几个实施例,但是应当理解,在不脱离本公开的精神或范围的情况下,公开的系统和方法可以以许多其他具体形式来体现。当前的示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者可以省略或不实施某些特征。
此外,在不脱离本公开的范围的情况下,在各种实施例中被描述和图示为分立或分开的技术、系统、子系统和方法可以与其他系统、模块、技术或方法组合或集成。被示出或讨论为耦合的其他项目可以直接连接,或者可以通过一些接口、设备或中间组件间接耦合或通信,不管是以电气方式、机械方式还是其他方式。改变、替换和更改的其他示例可以由本领域技术人员确定,并且可以在不脱离本文公开的精神和范围的情况下进行。

Claims (26)

1.一种用于处理视频数据的方法,包括:
确定将编解码树单元(CTU)划分为一个或多个编解码单元(CU);
确定将所述CU递归地划分为预测单元(PU),其中所述CU中的一个或多个是一个或多个预测树单元(PTU);以及
基于所述PU来执行可视媒体数据和比特流之间的转换。
2.根据权利要求1所述的方法,其中,至少一个PTU是叶PU,并且其中,叶PU不被进一步划分。
3.根据权利要求1-2中任一项所述的方法,其中,至少一个PTU被进一步划分为多个PU。
4.根据权利要求1-3中任一项所述的方法,其中,所述PU中的至少一个被进一步划分为多个PU。
5.根据权利要求1-4中任一项所述的方法,其中,叶PU不被进一步划分,并且其中,来自共同PTU的不同叶PU具有不同的预测模式。
6.根据权利要求1-5中任一项所述的方法,其中,来自多个PU的残差在单个变换单元(TU)中被变换编解码。
7.根据权利要求1-6中任一项所述的方法,其中,所述PTU被划分为:通过四叉树(QT)划分的四个PU、通过垂直二叉树(BT)划分的两个PU、通过水平BT划分的两个PU、通过垂直三叉树(TT)划分的三个PU、通过水平TT划分的三个PU、通过垂直非对称四叉树(UQT)划分的四个PU、通过水平UQT划分的四个PU、通过垂直非对称二叉树(UBT)划分的两个PU、通过水平UBT划分的两个PU、通过垂直扩展四叉树(EQT)划分的四个PU、通过水平EQT划分的四个PU、或者其组合。
8.根据权利要求1-7中任一项所述的方法,其中,一个或多个PU被划分为:通过四叉树(QT)划分的四个PU、通过垂直二叉树(BT)划分的两个PU、通过水平BT划分的两个PU、通过垂直三叉树(TT)划分的三个PU、通过水平TT划分的三个PU、通过垂直非对称四叉树(UQT)划分的四个PU、通过水平UQT划分的四个PU、通过垂直非对称二叉树(UBT)划分的两个PU、通过水平UBT划分的两个PU、通过垂直扩展四叉树(EQT)划分的四个PU、通过水平EQT划分的四个PU、或者其组合。
9.根据权利要求1-8中任一项所述的方法,其中,所述比特流包括指示应用于所述PU和PTU的划分的语法。
10.根据权利要求1-9中任一项所述的方法,其中,所述比特流包括指示对应的PTU是否被进一步划分为多个PU的语法元素。
11.根据权利要求1-10中任一项所述的方法,其中,所述比特流包括指示对应的PU是否被进一步划分为多个PU的语法元素。
12.根据权利要求1-11中任一项所述的方法,其中,所述比特流包括指示PTU或PU的划分模式和划分方向的语法。
13.根据权利要求1-12中任一项所述的方法,其中,指示划分模式和划分方向的语法在PTU或PU被进一步划分时仅针对PTU或PU而被信令通知。
14.根据权利要求1-13中任一项所述的方法,其中,深度针对PU或PTU而被计算。
15.根据权利要求1-14中任一项所述的方法,其中,所述深度是指示祖先视频单元通过QT被划分的次数的QT深度。
16.根据权利要求1-15中任一项所述的方法,其中,所述深度是指示祖先视频单元通过任何划分类型被划分的次数的多类型树(MTT)深度。
17.根据权利要求1-16中任一项所述的方法,其中,所述深度被初始化为与所述PTU或PU相对应的CU的深度。
18.根据权利要求1-17中任一项所述的方法,其中,当前视频单元的划分不包括在所述比特流中,并且由解码器推断,并且其中,所述当前视频单元是PU或PTU。
19.根据权利要求1-18中任一项所述的方法,其中,所述划分根据以下而被推断:当前视频单元维度、当前视频单元深度、相对于图片边界的当前视频单元位置、相对于子图片边界的当前视频单元位置、当前视频单元是否可以被进一步划分、相对于深度阈值的当前视频单元深度、相对于高度阈值的当前视频单元高度、相对于宽度阈值的当前视频单元宽度、或者其组合。
20.根据权利要求1-19中任一项所述的方法,其中,所述划分通过以下的比较而不被允许:相对于高度阈值的当前视频单元高度、相对于宽度阈值的当前视频单元宽度、相对于尺寸阈值的当前视频高度和当前视频宽度、相对于深度阈值的当前视频单元深度、相对于尺寸阈值的当前视频单元尺寸、或者其组合。
21.根据权利要求1-20中任一项所述的方法,其中,所述转换包括将所述可视媒体数据编码为所述比特流。
22.根据权利要求1-20中任一项所述的方法,其中,所述转换包括解码所述比特流以获得所述可视媒体数据。
23.一种用于处理视频数据的装置,包括:处理器;以及非暂时性存储器,其上具有指令,其中所述指令在由处理器执行时使得所述处理器执行根据权利要求1-22中任一项所述的方法。
24.一种非暂时性计算机可读介质,包括供视频编解码设备使用的计算机程序产品,所述计算机程序产品包括存储在所述非暂时性计算机可读介质上的计算机可执行指令,使得当由处理器执行时,使所述视频编解码设备执行根据权利要求1-22中任一项所述的方法。
25.一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:
确定将一个或多个编解码单元(CU)递归地划分为预测单元(PU),其中所述CU中的一个或多个是一个或多个预测树单元(PTU);以及
基于所述确定来生成比特流。
26.一种用于存储视频的比特流的方法,包括:
确定将一个或多个编解码单元(CU)递归地划分为预测单元(PU),其中所述CU中的一个或多个是一个或多个预测树单元(PTU);
基于所述确定来生成比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中。
CN202280047221.7A 2021-06-30 2022-06-29 视频编解码中的递归预测单元 Pending CN117643056A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2021103527 2021-06-30
CNPCT/CN2021/103527 2021-06-30
PCT/CN2022/102393 WO2023274302A1 (en) 2021-06-30 2022-06-29 Recursive prediction unit in video coding

Publications (1)

Publication Number Publication Date
CN117643056A true CN117643056A (zh) 2024-03-01

Family

ID=84691454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280047221.7A Pending CN117643056A (zh) 2021-06-30 2022-06-29 视频编解码中的递归预测单元

Country Status (3)

Country Link
US (1) US20240236318A9 (zh)
CN (1) CN117643056A (zh)
WO (1) WO2023274302A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120114034A1 (en) * 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding
US10616604B2 (en) * 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
US11223852B2 (en) * 2016-03-21 2022-01-11 Qualcomm Incorporated Coding video data using a two-level multi-type-tree framework
JP2021010046A (ja) * 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置

Also Published As

Publication number Publication date
US20240236318A9 (en) 2024-07-11
WO2023274302A1 (en) 2023-01-05
US20240137510A1 (en) 2024-04-25

Similar Documents

Publication Publication Date Title
CN112970263B (zh) 基于条件的具有几何分割的帧间预测
CN110944193B (zh) 视频编码和解码中的加权双向预测
CN110677666B (zh) Lamvr中取整和修剪的顺序
CN113906738B (zh) 仿射模式的自适应运动矢量差分辨率
CN110677658B (zh) 基于优先级的非相邻Merge设计
CN118573856A (zh) 一种帧间预测方法和装置
CN113412623A (zh) 记录仿射模式自适应运动矢量分辨率的上下文
CN113170166B (zh) 具有几何分割的帧间预测在视频处理中有条件的应用
CN110719476B (zh) 用时间信息扩展基于查找表的运动矢量预测
US20240137498A1 (en) Utilization of Recursive Prediction Unit in Video Coding
CN113661709B (zh) 仿射高级运动矢量预测中的运动信息精度对齐
CN113170139B (zh) 上下文自适应二进制算数编码的简化上下文建模
CN113366839B (zh) 视频编解码中的细化量化步骤
TWI722486B (zh) 取決於形狀的插值順序
WO2023274302A1 (en) Recursive prediction unit in video coding
CN110677650A (zh) 降低非相邻Merge设计的复杂度
WO2022184052A1 (en) Inter-prediction on non-dyadic blocks
JP2024536200A (ja) ビデオ符号化における境界外条件を考慮した動き補償
CN118830241A (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