CN117256141A - 用于编解码树划分的边界处理 - Google Patents

用于编解码树划分的边界处理 Download PDF

Info

Publication number
CN117256141A
CN117256141A CN202280028393.XA CN202280028393A CN117256141A CN 117256141 A CN117256141 A CN 117256141A CN 202280028393 A CN202280028393 A CN 202280028393A CN 117256141 A CN117256141 A CN 117256141A
Authority
CN
China
Prior art keywords
video
block
video block
boundary
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280028393.XA
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 CN117256141A publication Critical patent/CN117256141A/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/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/167Position within a video image, e.g. region of interest [ROI]
    • 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/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

描述了用于视频处理的系统、方法和装置。一种视频处理方法包括:基于规则来确定对位于视频单元的边界处的视频块应用分割方案,以及基于对视频块应用分割方案来执行可视媒体数据与比特流之间的转换。

Description

用于编解码树划分的边界处理
相关申请的交叉引用
本专利申请要求Kai Zhang等人于2021年4月13日提交的编号为PCT/CN2021/086867且题为“Boundary Handling for Coding Tree Split”的国际申请的权益,该申请通过引用结合于此。
技术领域
本专利文档涉及文件格式的数字音频和视频媒体信息的生成、存储和消费。
背景技术
数字视频占据了互联网和其他数字通信网络上使用的最大带宽。随着能够接收和显示视频的联网用户设备数量的增加,数字视频使用的带宽需求很可能继续增长。
发明内容
第一方面涉及一种用于处理视频数据的方法,包括:基于规则来确定对位于视频单元的边界处的视频块应用分割方案;以及基于对视频块应用分割方案来执行可视媒体数据与比特流之间的转换。
可选地,在任一前述方面中,该方面的另一实施方式提供了:当对视频单元应用分割方案导致视频块的至少一部分位于视频单元的边界之外时,其中该规则指示将丢弃视频块的位于视频单元的边界之外的部分,并且其中该方法还包括在对视频单元应用分割方案之后丢弃视频块的位于视频单元的边界之外的部分。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该规则基于视频块的位置或边界的位置中的至少一个来指示是否允许在边界处的视频块上使用分割方案。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该规则基于视频块的维度或视频块的子块的维度中的至少一个来指示是否允许在边界处的视频块上使用分割方案,并且其中视频块的子块是从视频块分割而得的。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该规则指示:当对视频块应用分割方案导致多个子块时,允许使用分割方案来分割视频块,其中,多个子块的第一子集在视频单元的边界之外,该规则指示:当边界是视频单元的底部边界或拐角边界中的至少一个时,并且当对视频块应用水平分割方案导致多个子块时,允许使用水平分割方案来分割视频块,其中,视频单元的边界之内的多个子块的第二子集的高度之和等于视频单元的高度与视频块的y坐标之间的差,该规则指示:当边界是视频单元的右侧边界或拐角边界中的至少一个时,并且当对视频块应用垂直分割方案导致多个子块时,允许使用垂直分割方案来分割视频块,其中,视频单元的边界之内的多个子块的第二子集的宽度之和等于视频单元的宽度和视频块的x坐标之间的差,该规则指示:当视频块处于视频单元的拐角边界处时,并且当对视频块应用水平分割方案导致多个子块时,允许使用水平分割方案来分割视频块,其中,视频单元的边界之内的多个子块的第二子集的高度之和等于视频单元的高度与视频块的y坐标之间的差,并且该规则指示:当视频块处于视频单元的拐角边界处时,并且当对视频块应用垂直分割方案导致多个子块时,允许使用垂直分割方案来分割视频块,其中,视频单元的边界之内的多个子块的第二子集的宽度之和等于视频单元的宽度与视频块的x坐标之间的差。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该规则指示:当视频块位于视频单元的边界处时,不允许使用分割方案来分割视频块,并且其中,当不允许使用分割方案来分割视频块时,比特流排除对分割方案的指示。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该规则基于视频块的宽度、视频块的高度或视频块的深度中的至少一个来指示是否允许在边界处的视频块上使用分割方案。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该规则基于阈值与视频块的宽度、视频块的高度或视频块的深度中的至少一个之间的比较来指示是否允许在边界处的视频块上使用分割方案。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该阈值基于视频块的颜色分量、视频块的条带类型、视频块的图片类型、视频块的亮度编解码树或视频块的色度编解码树中的至少一个。
可选地,在任一前述方面中,该方面的另一实施方式提供了:比特流包括对阈值的指示。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该规则基于视频块的编解码信息。
可选地,在任一前述方面中,该方面的另一实施方式提供了:编解码信息包括视频块的颜色格式或视频块的颜色分量中的至少一个,并且其中,该规则还基于视频块的亮度编解码树和色度编解码树是否分离。
可选地,在任一前述方面中,该方面的另一实施方式提供了:比特流包括对是否允许在视频块上使用分割方案的指示。
可选地,在任一前述方面中,该方面的另一实施方式提供了:比特流包括对允许在视频块上使用的分割方案的指示。
可选地,在任一前述方面中,该方面的另一实施方式提供了:该规则基于视频块的图片类型、视频块的条带类型、视频块的帧内编解码条带(I条带)、视频块的单向帧间预测条带(P条带)、视频块的帧间预测条带(B条带)、视频块的时域层、视频块的颜色分量或视频块的颜色格式中的至少一个来指示是否允许在边界处的视频块上使用分割方案。
可选地,在任一前述方面中,该方面的另一实施方式提供了:当不允许使用分割方案来分割视频块时,比特流排除指示是否允许在视频块上使用分割方案的语法元素。
可选地,在任一前述方面中,该方面的另一实施方式提供了:当仅允许在视频块上使用一种分割方案时,比特流排除关于任何分割方案的信息。
可选地,在任一前述方面中,该方面的另一实施方式提供了:与分割方案相关的语法元素的二进制化是基于是否允许使用一种或多种分割方案来分割视频块。
第二方面涉及一种包括供视频编解码设备使用的计算机程序产品的非暂时性计算机可读介质,该计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可执行指令,使得该计算机可执行指令在由处理器执行时,致使视频编码设备执行根据任一前述方面所述的方法。
第三方面涉及一种用于处理视频数据的装置,包括:处理器;以及其上具有指令的非暂时性存储器,其中,该指令在由处理器执行时,致使处理器执行根据任一前述方面所述的方法。
第四方面涉及一种存储通过由视频处理装置执行的方法而生成的视频的比特流的非暂时性计算机可读记录介质,其中,该方法包括:基于规则来确定对位于视频单元的边界处的视频块应用分割方案;以及基于对位于视频单元的边界处的视频块应用分割方案的确定来生成比特流。
第五方面涉及一种用于存储视频的比特流的方法,包括:基于规则来确定对位于视频单元的边界处的视频块应用分割方案,基于对位于视频单元的边界处的视频块应用分割方案来生成比特流,以及将比特流存储在非暂时性计算机可读记录介质中。
为了清楚起见,前述实施例中的任何一个可以与其他前述实施例中的任何一个或多个相结合,以在本公开的范围内创建新的实施例。
从下面结合附图和权利要求的详细描述中,这些和其他特征将会被更清楚地理解。
附图说明
为了更完整地理解本公开,现在结合附图和详细描述参考以下简要描述,其中相同的附图标记表示相同的部件。
图1是视频编解码的示例编码和解码(编解码器)的示意图。
图2是示例宏块分割的示意图。
图3是用于例如根据高效视频编解码(HEVC)来分割编解码块的示例模式的示意图。
图4是用于分割图片以对残差进行编解码的示例方法的示意图。
图5是用于例如根据四叉树二叉树(QTBT)结构来分割图片的示例方法的示意图。
图6是通用视频编解码(VVC)中使用的示例分割结构的示意图。
图7是示例扩展四叉树(EQT)分割结构的示意图。
图8是示例灵活树(FT)分割结构的示意图。
图9是示例广义三叉树(GTT)分割结构的示意图。
图10是示例边界分割树的示意图。
图11是在音视频编解码标准(AVS)第三部分(AVS-3.0)中使用的示例分割结构的示意图。
图12是示例非对称四叉树(UQT)分割结构的示意图。
图13是示例扩展三叉树(ETT)分割结构的示意图。
图14是示例1/4非对称二叉树(UBT)分割结构的示意图。
图15是已经根据分割方案被分割成包括视频块的示例视频单元的示意图。
图16是示出示例视频处理系统的框图。
图17是示例视频处理装置的框图。
图18是视频处理的示例方法的流程图。
图19是图示示例视频编解码系统的框图。
图20是图示视频编码器的示例的框图。
图21是图示视频解码器的示例的框图。
图22是示例编码器的示意图。
具体实施方式
在开始时就应理解,尽管下面提供了一个或多个实施例的说明性实施方式,但是所公开的系统和/或方法可以使用任何数量的技术来实施,无论是当前已知的还是有待开发的。本公开不应以任何方式限于以下图示的说明性实施方式、附图和技术,包括本文图示和描述的示例性设计和实施方式,而是可以在所附权利要求及其等同物的完全范围内进行修改。
术语通用视频编解码(Versatile Video Coding,VVC)(也称为H.266)在一些描述中使用仅是为了易于理解,而不是为了限制所公开的技术的范围。这样,本文描述的技术也适用于其他视频编解码器协议和设计。在本文档中,关于VVC规范或国际标准化组织(International Organization for Standardization,ISO)基本媒体文件格式(ISO basemedia file format,ISOBMFF)文件格式规范,通过粗体斜体指示取消的文本以及粗体下划线指示添加的文本,示出了对文本的编辑更改。
本文档涉及图像/视频编解码,更具体地,涉及对一些特殊种类的块的变换。所公开的机制可以应用于诸如高效视频编解码(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可以是编解码树单元(coding tree unit,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然后可以被分成编解码块(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 L(左)块、M/4×M R(右)块、M×M/4U(上)块和/或M×M/4D(下)块。应当注意,用于将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方案支持亮度CTB和色度CTB具有分离的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)分割。
在示例实施方式中,采用两种级别的树,包括区域树(四叉树)和预测树(二叉树或三叉树)。CTU首先被区域树(region tree,RT)分割。RT叶可以用预测树(prediction tree,PT)进一步划分。PT叶还可以用PT进一步划分,直到达到最大PT深度。PT叶是基本编解码单位。为方便起见,PT也可以称为CU。在示例实施方式中,CU不能被进一步划分。预测和变换都以与JEM相同的方式应用于CU。整个分割结构名为多类型树。
现在讨论扩展四叉树。图7是示例扩展四叉树(extended quad-tree,EQT)分割结构的示意图700。与块分割过程相对应的EQT分割结构包括针对视频数据块的扩展四叉树分割过程。扩展四叉树分割结构表示将视频数据块分割成最终子块。当扩展四叉树分割过程决定对一个块应用扩展四叉树分割时,该块总是被划分成四个子块。最终子块的解码基于视频比特流。视频数据块的解码是基于根据推导出的EQT结构而解码的最终子块。
EQT分割过程可以递归地应用于块,以生成EQT叶节点。替代地,当EQT应用于某个块时,从EQT划分得到的每个子块可以进一步划分成BT和/或QT和/或TT和/或EQT和/或其他种类的分割树。在一个示例中,EQT和QT可以共享相同的深度递增过程和相同的叶节点尺寸约束。在这种情况下,当一个节点的尺寸达到最小允许四叉树叶节点尺寸或EQT深度时,或者当该节点达到最大允许四叉树深度时,可以隐式地终止该节点的分割。替代地,EQT和QT可以共享不同的深度递增过程和/或叶节点尺寸约束。当一个节点的尺寸达到最小允许EQT叶节点尺寸,或者与该节点相关联的EQT深度达到最大允许EQT深度时,可以隐式地终止EQT对该节点的分割。在一个示例中,可以在序列参数集(sequences parameter set,SPS)、图片参数集(picture parameter set,PPS)、条带报头、CTU、区域、片和/或CU中用信令通知EQT深度和/或最小允许EQT叶节点尺寸。
EQT可以不使用应用于正方形块的四叉树分割,例如,在块的尺寸为M×N的情况下,其中M和N是相等或不相等的非零正整数值。相反,EQT将一个块均等地划分成四个分区,诸如M/4×N划分703或M×N/4划分701。划分727和划分729分别示出了划分701和703的一般示例。例如,划分727被划分成M×N1、M×N2、M×N3和M×N4,其中N1+N2+N3+N4=N。此外,划分729被划分成M1×N、M2×N、M3×N和M4×N,其中M1+M2+M3+M4=M。
在另一示例中,EQT可以将形状均等地划分成四个分区,其中分区尺寸取决于M和N的最大值和最小值。在一个示例中,一个4×32块可以被划分成四个4×8子块,而一个32×4块可以被划分成四个8×4子块。
在另一示例中,EQT将一个块均等地划分成四个分区,诸如两个分区的尺寸等于(M*w0/w)x(N*h0/h),而另外两个分区的尺寸等于(M*(w-w0)/w)x(N*(h-h0)/h),如划分705、划分707、划分709和划分711所示。例如,w0和w可以分别等于1和2,使得宽度减半,而高度可以使用其他比率而不是2:1,从而获得子块。在另一示例中,h0和h可以分别等于1和2,使得高度减半,而宽度可以使用其他比率而不是2:1。例如,划分705包括固定为M/2的子块宽度,其高度等于N/4或3N/4,其中较小的高度选择针对顶部两个分区。例如,划分707包括固定为N/2的子块高度,其宽度等于M/4或3M/4,其中较小的宽度选择针对左侧两个分区。例如,划分709包括固定为M/2的子块宽度,其高度等于N/4或3N/4,其中较小的高度选择针对底部两个分区。例如,划分711包括固定为N/2的子块高度,其宽度等于M/4或3M/4,其中较小的宽度选择针对右侧两个分区。
划分713、划分715、划分717、划分719、划分721和划分723示出了四叉树分割的其他示例。例如,划分713、划分715和划分717示出了形状被M×N/4和M/2×N/2划分的选项。例如,划分719、划分721和划分723示出了形状被N×M/4和N/2×M/2划分的选项。
划分725示出了具有不同分割形状的四叉树分割的更一般情况。在这种情况下,划分725被划分成使得M1×N1、(M-M1)×N1、M1×(N-N1)和(M-M1)×(N-N1)。
图8是示例灵活树(flexible tree,FT)分割结构的示意图800。FT分割结构对应于包括针对视频数据块的FT分割过程的块分割过程。FT分割结构表示将视频数据块分割成最终子块。当FT分割过程决定对一个块应用FT分割时,该块被划分成K个子块,其中K可以大于4。可以基于视频比特流对最终子块进行编解码。此外,可以基于根据推导出的FT结构而解码的最终子块来对视频数据块进行解码。FT分割过程可以递归地应用于给定的块以生成FT树叶节点。当一个节点达到最小允许FT叶节点尺寸或相关联的FT深度时,或者当该节点达到最大允许FT深度时,隐式地终止该节点的分割。此外,当FT应用于某个块时,可以创建多个子块。由FT创建的每个子块可以被进一步划分成BT、QT、EQT、TT和/或其他类型的分割树。在示例中,可以在SPS、PPS、条带报头、CTU、区域、片和/或CU中用信令通知FT的FT深度或最小允许FT叶节点尺寸或最小允许FT分割尺寸。类似于EQT,由FT分割创建的所有子块可以是相同或不同的尺寸。
示意图800包括示例FT分割结构,其中被表示为K的子块的数量被设置为等于6或8。划分801是K=8、M/4*N/2的分割结构。划分803是K=8、M/2*N/4的分割结构。划分805是K=6、M/2*N/2和M/4*N/2的分割结构。划分807是K=6、M/2*N/2和M/2*N/4的分割结构。
图9是示例广义TT(generalized TT,GTT)分割结构的示意图900。对于TT分割结构,可以去除对沿着水平或垂直方向进行划分的约束。GTT分割样式可以被定义为针对水平和垂直两者的划分。划分901采用根据垂直TT划分的左侧划分以及对剩余区域的水平BT划分。划分903采用根据水平TT划分的底部划分以及对剩余区域的垂直BT划分。在一些示例中,在某些条件下,可以应用分割EQT、FT和/或GTT分割方法。换句话说,当不满足(多个)条件时,不需要用信令通知分割类型。在另一示例中,EQT、FT和/或GTT分割方法可以用来替换其他分割树类型。在另一示例中,在EQT、FT和/或GTT分割方法可以仅用作某些条件下的其他分割树类型的替换。在一个示例中,该条件可以基于图片、条带类型、块尺寸、编解码模式,和/或块是否位于图片、条带和/或片边界处。在一个示例中,可以用与QT相同的方式对待EQT。在这种情况下,当选择QT分割树类型时,可以进一步用信令通知详细四叉树分割样式的更多标志/指示。在一些示例中,EQT可以被视为附加的分割样式。在一个示例中,用信令通知EQT、FT和/或GTT的分割方法可以是有条件的。例如,在一些情况下,可以不使用一种或多种EQP、FT和/或GTT分割方法,并且不用信令通知与用信令通知这些分割方法相对应的比特。
图10是也被称为通用边界分割的示例边界分割树1000的示意图。边界分割树1000是用于VVC和/或音视频编解码标准工作组第三部分(AVS-3.0)的示例边界处理方法。由于VVC中的强制四叉树边界分割解决方案没有被优化,因此边界分割树1000使用常规的块分割语法来保持与CABAC引擎的连续性以及匹配图片边界。通用边界分割获得以下规则(编码器和解码器两者)。由于边界分割树1000对边界使用与普通块(非边界)完全相同的分割语法,所以语法没有改变。如果针对边界CU解析出无划分模式,则使用强制边界分割(forcedboundary partition,FBP)来匹配图片边界。在使用强制边界分割(非信令通知的边界分割)之后,不再执行进一步的分割。强制边界分割描述如下。如果普通块的尺寸大于最大允许BT尺寸,则使用强制QT在当前强制分割级别执行FBP。否则,如果当前CU的右下样点位于底部图片边界之下并且没有延伸到右侧边界,则使用强制水平B在当前强制分割级别执行FBP。否则,如果当前CU的右下样点位于右侧图片边界的右侧而不在底部边界之下,则使用强制垂直BT在当前强制分割级别执行FBP。否则,如果当前CU的右下样点位于右侧图片边界的右侧并且在底部边界之下,则使用强制QT在当前强制分割级别执行FBP。
图11是在音视频编解码标准(AVS)第三部分(AVS-3.0)中使用的示例分割结构的示意图1100。现在讨论AVS-3.0中的分割。中国音视频编解码标准(AVS)工作组由中华人民共和国原工业和信息化部科技司批准建立。为了满足快速增长的信息行业需求,AVS致力于为数字音视频的压缩、解压缩、处理和表示制定高质量的技术标准,从而为数字音视频设备和系统提供高效且经济的编解码/解码技术。AVS可以应用于各种各样的重要信息领域,包括高分辨率数字广播、高密度激光数字存储介质、无线宽带多媒体通信和互联网宽带流媒体。AVS是第二代信源编解码/解码标准之一,并且拥有中国自主知识产权。信源编解码技术主要解决根据初始数据和原始信源对音视频海量数据进行编解码和压缩的问题。因此,AVS被称为数字音视频编解码技术,并且是随后的数字传输、存储和广播的前提。此外,AVS用作数字音视频行业的公共标准。
AVS-3.0采用QT分割1101、垂直BT分割1105、水平BT分割1103、水平扩展四叉树(EQT)分割1107和垂直EQT分割1109以将最大编解码单元(largest coding unit,LCU)划分成多个CU。QT分割、BT分割和EQT分割都可以用于分割树的根、内部节点或叶节点。然而,在任何BT和/或EQT分割之后,禁止QT分割。
图12是示例非对称四叉树(Unsymmetrical Quad-Tree,UQT)分割结构的示意图1200。UQT分割使用维度为W×H的块,该块被划分成四个维度为W1×H1、W2×H2、W3×H3和W4×H4的分区,其中W1、W2、W3、W4、H1、H2、H3、H4都是整数。在一个示例中,至少一个分区与其他分区相比具有不同的块尺寸。在一个示例中,四个分区中只有两个可以具有相等的尺寸,而其他两个分区彼此不同并且不同于具有相等尺寸的两个分区。在一个示例中,所有参数都是2的幂的形式。例如,W1=2N1,W2=2N2,W3=2N3,W4=2N4,H1=2M1,H2=2M2,H3=2M3,H4=2M4。在一个示例中,UQT仅在垂直方向上划分一个分区,例如,H1=H2=H3=H4=H。在一个示例中,在划分1201中,W1=W/8,W2=W/2,W3=W/8,W4=W/4,H1=H2=H3=H4=H。这种UQT是垂直划分,并且称为UQT1-V。在一个示例中,在划分1203中,W1=W/8,W2=W/2,W3=W/4,W4=W/8,H1=H2=H3=H4=H。这种UQT是垂直划分,并且称为UQT2-V。在一个示例中,在划分1205中,W1=W/4,W2=W/8,W3=W/3,W4=W/8,H1=H2=H3=H4=H。这种UQT是垂直划分,并且称为UQT3-V。在一个示例中,在划分1207中,W1=W/8,W2=W/4,W3=W/2,W4=W/8,H1=H2=H3=H4=H。这种UQT是垂直划分,并且称为UQT4-V。
在一个示例中,UQT仅在水平方向上划分一个分区,例如,W1=W2=W3=W4=W。在一个示例中,在划分1209中,H1=H/8,H2=H/2,H3=H/8,H4=H/4,W1=W2=W3=W4=W。这种UQT是水平划分,并且称为UQT1-H。在一个示例中,在划分1211中,H1=H/8,H2=H/2,H3=H/4,H4=H/8,W1=W2=W3=W4=W。这种UQT是水平划分,并且称为UQT2-H。在一个示例中,在划分1213中,H1=H/4,H2=H/8,H3=H/2,H4=H/8,W1=W2=W3=W4=W。这种UQT是水平划分,并且称为UQT3-H。在一个示例中,在划分1215中,H1=H/8,H2=H/4,H3=H/2,H4=H/8,W1=W2=W3=W4=W。这种UQT是水平划分,并且称为UQT4-H。
图13是示例ETT分割结构的示意图1300,包括ETT-V划分1301和ETT-H划分1303。当采用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划分1301,其中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划分1303,其中H1=H/8,H2=3*H/4,H3=H/8,并且W1=W2=W3=W。
图14是示例1/4UBT分割结构的示意图1400,其包括垂直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,其示例被示为划分1401。在一个示例中,a可以大于1/2,诸如3/4、7/8、15/16、31/32、63/64等。在这种情况下,分割被称为类型1UBT-V,其示例被示为划分1403。在一个示例中,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,其示例被示为划分1405。在一个示例中,a可以大于1/2,诸如3/4、7/8、15/16、31/32、63/64等。在这种情况下,分割可以称为类型1UBT-H,其示例被示为划分1407。
图15是已经根据分割方案被分割成包括视频块的示例视频单元1503的示意图1500,导致了视频单元1503的多个视频块1518、1521和1524。视频单元1503可以是视频序列、视频图片、视频子图片、视频条带或虚拟流水线数据单元(virtual pipeline dataunit,VPDU)。视频块1518、1521和1524可以是编解码块(CB)、变换块(TB)、预测块(PB)、CU或CTU。例如,视频块1518、1521和1524可以是视频单元1503的子块或子代块。
视频单元1503可以包括边界1506、1509、1512、1514和1515。视频单元1503的边界1506、1509、1512、1514或1515可以是视频单元1503的边缘或外部界限。边界1506可以是顶部边界1506,边界1509可以是右侧边界1509,边界1512可以是底部边界1512,边界1514可以是左侧边界1514,并且边界1515可以是拐角边界1515。顶部边界1506可以是视频单元1503在X轴上的第一边缘处的边界,而底部边界1512可以是与视频单元1503在X轴上的第一边缘相对的边缘处的边界。左侧边界1514可以是视频单元1503在Y轴上的第一边缘处的边界,而底边界1509可以是与视频单元1503在Y轴上的第一边缘相对的边缘处的边界。视频单元1503可以包括在视频单元1503的左上角、右上角、左下角和右下角处的拐角边界1515。
在已经应用分割方案来分割视频单元1503之后,视频块1518、1521和1524可以是视频单元1503的子块或子代块。分割方案可以是UBT、ETT、UQT、EQT或任何其他分割方案。在一些情况下,下文中提到的“分割方案”可以不包括QT、BT和TT分割方案。如图15所示,视频块1518、1521和1524中的一个或多个可以在视频单元1503的边界1506、1509、1512、1514或1515处,使得一个或多个视频块1518、1521和1524的至少一部分延伸到边界1506、1509、1512、1514和1515中的一个或多个之外。
如图15所示,位于边界1509、1512和1515处的视频块1518、1521和1524可以包括位于视频单元1503的边界1509、1512和1515之内的至少一个部分以及位于边界1509、1512和1515之外的至少一个部分。块1518包括位于视频单元1503内部的底部边界1512之内的部分1527以及位于视频单元1503外部的底部边界1512之外的部分1530。块1521包括位于视频单元1503内部的右侧边界1509之内的部分1533以及位于视频单元1503外部的右侧边界1509之外的部分1536。最后,块1524包括位于视频单元1503内部的底部边界1512和右侧边界1509之内的部分1539、位于视频单元1503外部的底部边界1512之外的部分1542、位于视频单元1503外部的右侧边界1509之外的部分1545、以及位于视频单元1503外部的拐角1515之外(即,1509和1512两者之外)的部分1548。虽然图15示出了位于边界1509、1512和1515处的所有视频块1518、1521和1524,但是应当理解,一些视频块可能不一定位于视频单元1503的边界1506、1509、1512、1514和1515处。
如上所述,存在多种不同的可能分割方案(例如,QT、BT、TT、UQT、EQT、UBT和/或ETT)用来将视频单元1503分割成多个视频块1518、1521和1524。编码器可以从多个不同的可能分割方案中确定一种或多种分割方案用来分割视频单元1503。在一些情况下,视频单元1503的分割可以导致一个或多个视频块1518、1521和1524具有延伸到视频单元1503的边界1506、1509、1512、1514或1515之外的至少一部分。因此,可以选择最佳分割方案来尽可能避免将视频单元1503分割成延伸到视频单元1503的边界1506、1509、1512、1514或1515之外的视频块1518、1521和1524。然而,在确定用来分割视频单元1503(或视频块1518、1521和1524)的最佳分割方案之前,可能存在用来测试视频单元1503的分割的不同分割方案的太多组合。此外,对视频块1518、1521或1524的不同分割方案的测试可能需要大量计算资源,并且将所有可能的分割方案编码成比特流也可能需要大量计算资源和网络资源。
本文公开了针对前述技术问题的技术解决方案的实施例。根据各种实施例,编码器可以基于规则来确定对位于视频单元1503的边界1506、1509、1512、1514和1515处的视频块1518、1521或1524应用分割方案,然后基于对视频块1518、1521或1524应用分割方案来转换可视媒体数据和比特流。对视频单元1503应用分割方案可以导致多个视频块1518、1521和1524,其中视频块1518、1521和1524中的一个或多个可以具有位于视频单元的边界1506、1509、1512、1514或1515之外的至少一部分1530、1536、1542、1545和1548。在实施例中,该规则可以指示将丢弃视频块1518、1521和1524的位于视频单元1503的边界1506、1509、1512、1514和1515之外的部分1530、1536、1542、1545和1548。在对视频单元1503应用分割方案之后,编码器可以丢弃视频块1518、1521和1524的位于视频单元1503的边界1506、1509、1512、1514和1515之外的部分1530、1536、1542、1545和1548。在实施例中,该规则可以基于视频块1518、1521和1524的位置(例如,坐标)或者顶部边界1506、右侧边界1509、底部边界1512和左侧边界的位置(例如,坐标)来指示是否允许在边界1506、1509、1512、1514和1515处的视频块1518、1521和1524上使用分割方案。在实施例中,该规则可以基于视频块1518、1521或1524的维度、视频块1518、1521或1524的子块的维度、视频块1518、1521或1524的宽度、视频块1518、1521或1524的高度、视频块1518、1521或1524的深度、和/或各种其他因素中的至少一个来指示是否允许在边界1506、1509、1512、1514和1515处的视频块1518、1521和1524上使用分割方案。在实施例中,该规则可以指示当视频块1518、1521或1524位于视频单元1503的边界1506、1509、1512、1514或1515处时不允许使用分割方案来分割视频块1518、1521或1524。
如本文所使用的,术语“视频块”可以是CTU、CU、PU、TU、CB、TB、PB或包含多个样点/像素的区域。术语“视频块”在本文中也可简称为“块”。术语“分割方案”也可以是指当前块的“分割类型”、“划分类型”或“划分方法”,并且本文参考图2-图14描述了各种分割方案的不同示例。分割方案QT、BT、TT、UQT、EQT、UBT和ETT在本文也可以分别称为“QT划分”、“BT划分”、“TT划分”、“UQT划分”、“EQT划分”、“UBT划分”和“ETT划分”。一个划分或分割可以用于指示划分样式,如QT/BT/TT/EQT/UQT/UBT/ETT,或者一个划分或分割可用于指示划分样式的特定划分方法,例如水平UQT或1/4UBT。如本文所使用的,如果块的宽度和高度都是形式为2N的二进制数,其中N是正整数,则该块是“二进制块”。相比之下,如果宽度和高度中的至少一个是不能以2N形式表示的非二进制数,其中N是正整数,则该块是“非二进制块”。在一个实施例中,术语“分割方案”可以包括UBT、ETT、UQT、EQT或其他分割方案,但是可以排除QT、BT和TT分割方案。如本文所使用的,分割块“在视频单元的边界处划分块”可以是指至少一个边界可以穿过该块(即,该块的第一部分在视频单元内部,该块的第二部分在视频单元外部,并且该块将通过分割方案划分)。例如,术语“在视频单元的边界处”可以是指具有在视频单元的边界之外的至少一部分的块,或者可以是指毗邻视频单元的边界的块的边缘或边界。
示例1
在实施例中,一种或多种分割方案可以用于视频单元的边界处的块,视频单元例如可以是图片、子图片、条带、片或图块。在一个示例中,如果在视频单元的边界处使用分割方案,则丢弃由于分割而从视频单元划分而得的位于视频单元之外的至少一个部分。在图15所示的示例中,可以丢弃视频块1518、1521和1524的位于视频单元1503的边界1506、1509、1512、1514和1515之外的部分1530、1536、1542、1545和1548,因为部分1530、1536、1542、1545和1548在图片或视频块1503的边界之外。
在实施例中,指示是否允许分割方案用于边界处的块的规则可以取决于块和/或边界的位置。例如,当块在底部边界处时(例如,图15中的块1518),排除垂直分割方案(例如,UBT-V或UQT-V或ETT-V)。例如,当块在右侧边界处时(例如,图15中的块1521),排除水平分割方案(例如,UBT-H或UQT-H或ETT-H)。例如,当块在拐角边界处时(例如,图15中的块1524),排除垂直分割方案(例如,UBT-V或UQT-V或ETT-V)。例如,当块在拐角边界处时(例如,图15中的块1524),排除水平分割方案(例如,UBT-H或UQT-H或ETT-H)。例如,当块在拐角边界处时,排除水平分割方案和垂直分割方案两者(例如,UBT-V或UQT-V或ETT-V、UBT-H或UQT-H或ETT-H)。
在实施例中,指示是否允许分割方案用于边界处的第一块的规则可以取决于第一块的维度和/或从第一块划分或分割而得的第二块的维度。在一个示例中,当分割方案将第一块划分成K个子块并且没有子块在边界处时,则可以允许使用分割方案来分割该块。在另一示例中,当分割方案将第一块划分成L+P=K个子块时,其中L个子块都在视频单元之内,P个子块都完全在视频单元之外,则可以允许使用分割方案。在另一示例中,当边界是底部边界和/或拐角边界时,并且当水平分割方案将第一块分割成L+P=K个子块时,其中L个子块的高度之和等于PH-By,并且其中PH是视频单元的高度,By是第一块的y坐标,则可以允许使用水平分割方案。在另一示例中,当边界是右侧边界和/或拐角边界时,并且当垂直分割方案将第一块划分成L+P=K个子块时,其中L个子块的宽度之和等于PW-Bx,并且其中PW是视频单元的宽度,Bx是第一块的x坐标,则可以允许使用垂直分割方案。在另一示例中,当第一块在拐角处时(例如,图15中的块1524),并且当水平分割方案将第一块划分成L+P=K个子块时,其中L个子块的高度之和等于PH-By,并且其中PH是视频单元的高度,By是第一块的y坐标,则可以允许使用水平分割方案。在一个示例中,当边界在拐角处时(例如,图15中的块1524),并且当垂直分割方案将第一块划分成L+P=K个子块时,其中L个子块的宽度之和等于PW-Bx,并且其中PW是视频单元的宽度,Bx是第一块的x坐标,则可以允许使用垂直分割方案。例如,分割方案可以是UBT,并且L=P=1。在实施例中,针对底部边界和/或右侧边界和/或拐角边界处的块,可以总是不允许分割方案。
示例2
在实施例中,可以不允许通过分割方案从边界处的父块划分而得的块被进一步划分成任何子块。在实施例中,可以不再为该块用信令通知对分割方案或划分方法的指示。在实施例中,该块被视为叶节点。
示例3
在实施例中,指示是否和/或如何对边界处的块应用分割方案的规则可以取决于当前块的宽度/高度/深度。例如,当当前块的宽度/高度满足一个或多个条件时,可以不允许分割方案。假设当前块的宽度和高度是W和H,并且阈值T1、T2和T是整数。例如,当W>=T1且H>=T2时可以不允许分割方案,当W>=T1或H>=T2时可以不允许分割方案,当W<=T1且H<=T2时可以不允许分割方案,当W<=T1或H<=T2时可以不允许分割方案,当W×H<=T时可以不允许分割方案,当W×H>=T时可以不允许分割方案,当H<=T(例如,T=16)时可以不允许水平分割方案,当H>=T(例如,T=128)时,可以不允许水平分割方案,当W<=T(例如,T=16)时可以不允许垂直分割方案,和/或当W>=T(例如,T=128)时可以不允许垂直分割方案。在实施例中,T1、T2和T可以在比特流的视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、图片报头、条带报头、片组报头或片报头中的至少一个中从编码器用信令通知给解码器。在实施例中,T1、T2和T可以取决于颜色分量。例如,对于亮度分量和色度分量,T1、T2和T可以不同。T1、T2和T可以取决于条带类型。例如,对于帧内编解码条带(I条带)、预测条带(P条带)或双向预测条带(B条带),T1、T2和T可以不同。在实施例中,T1、T2和T可以取决于亮度编解码树和色度编解码树是否分离。例如,当亮度编解码树和色度编解码树分离时,对于亮度分量和色度分量,T1、T2和T可以不同。在实施例中,当针对由于分割方案而导致的至少一个子块不支持变换时,可以不允许分割方案。在实施例中,当一个块的深度超过分割方案的允许深度时,可以不允许分割方案。在实施例中,当任何子块尺寸超过由于分割方案而导致的允许块尺寸时,可以不允许分割方案。
在实施例中,当当前块的宽度/高度满足一些条件时,可以允许分割方案。假设当前块的宽度和高度是W和H,并且阈值T1、T2和T是整数。例如,当W>=T1且H>=T2时可以允许分割方案,当W>=T1或H>=T2时可以允许分割方案,当W<=T1且H<=T2时可以允许分割方案,当W<=T1或H<=T2时可以允许分割方案,当W×H<=T时可以允许分割方案,当W×H>=T时可以允许分割方案,当H<=T(例如,T=64)时可以允许水平分割方案,当H>=T(例如,T=32)时可以允许水平分割方案,当W<=T(例如,T=64)时可以允许垂直分割方案,当W>=T(例如,T=32)时可以允许垂直分割方案。在实施例中,T1、T2和T可以在比特流的VPS、SPS、PPS、图片报头、条带报头、片组报头或片报头中的至少一个中从编码器用信令通知给解码器。在实施例中,T1、T2和T可以取决于颜色分量。例如,对于亮度分量和色度分量,T1、T2和T可以不同。在实施例中,T1、T2和T可以取决于亮度编解码树和色度编解码树是否分离。例如,当亮度编解码树和色度编解码树分离时,对于亮度分量和色度分量,T1、T2和T可以不同。在一个示例中,T1、T2和T可以取决于图片类型或条带类型。例如,在P条带/P图片或B条带/B图片上,当TP1<=H<=TP2时允许水平分割方案,和/或当TP1<=W<=TP2时允许垂直分割方案;以及在I条带/I图片上,当TI1<=H<=TI2时允许水平分割方案,和/或当TI1<=W<=TI2时允许垂直分割方案。在一个示例中,TP1大于TI1。例如,TI1=32,TP1=64,TI2=TP2=64。在另一示例中,TP2小于TI2。例如,TI2=64,TP2=32,TI1=TP1=32。
在实施例中,当当前块的深度满足一个或多个条件时,可以不允许分割方案。当前块的深度可以是指QT深度、BT深度、TT深度、XT深度或MTT深度。例如,当划分深度<=T时可以不允许分割方案,当划分深度>=T时可以不允许分割方案,当QT划分深度<=T时不允许分割方案,当QT划分深度>=T时可以不允许分割方案,当BT划分深度>=T时可以不允许分割方案,当BT划分深度<=T时可以不允许分割方案,当TT划分深度>=T时可以不允许分割方案,当TT划分深度>=T时可以不允许分割方案,当分割方案划分深度<=T时可以不允许分割方案,当分割方案划分深度>=T时可以不允许分割方案,当MTT划分深度<=T时可以不允许分割方案,当MTT划分深度>=T时可以不允许分割方案。在实施例中,T1、T2和T可以在比特流的VPS、SPS、PPS、图片报头、条带报头、片组报头或片报头中的至少一个中从编码器用信令通知给解码器。在实施例中,T1、T2和T可以取决于颜色分量。例如,对于亮度分量和色度分量,T1、T2和T可以不同。在实施例中,T1、T2和T可以取决于条带类型。例如,对于I条带、P条带或B条带,T1、T2和T可以不同。T1、T2和T可以取决于亮度编解码树和色度编解码树是否分离。例如,当亮度编解码树和色度编解码树分离时,对于亮度分量和色度分量,T1、T2和T可以不同。
在实施例中,当当前块的深度满足一个或多个条件时,可以允许分割方案。当前块的深度可以是指QT深度、BT深度、TT深度、分割方案深度或MTT深度。例如,当划分深度<=T时可以允许分割方案,当划分深度>=T时可以允许分割方案,当QT划分深度<=T时可以允许分割方案,当QT划分深度>=T时可以允许分割方案,当BT划分深度>=T时可以允许分割方案,当BT划分深度<=T时可以允许分割方案,当TT划分深度>=T时可以允许分割方案,当TT划分深度>=T时可以允许分割方案,当分割方案划分深度<=T时可以允许分割方案,当分割方案划分深度>=T时可以允许分割方案,当MTT划分深度<=T时可以允许分割方案,当MTT划分深度>=T时可以允许分割方案。在实施例中,T1,T2和T可以在比特流的VPS、SPS、PPS、图片报头、条带报头、片组报头或片报头中的至少一个中从编码器用信令通知给解码器。在实施例中,T1、T2和T可以取决于颜色分量。例如,对于亮度分量和色度分量,T1、T2和T可以不同。在实施例中,T1、T2和T可以取决于条带类型。例如,对于I条带、P条带或B条带,T1、T2和T可以不同。在实施例中,T1、T2和T可以取决于亮度编解码树和色度编解码树是否分离。例如,当亮度编解码树和色度编解码树分离时,对于亮度分量和色度分量,T1、T2和T可以不同。
示例4
在实施例中,指示是否和/或如何对边界处的块应用分割方案的规则可以取决于不同级别(诸如序列级别、时域层级别、图片级别、条带级别、块级别等)的编解码信息。在实施例中,指示是否和/或如何对边界处的块应用分割方案的规则可以取决于视频单元或视频块的颜色格式(诸如4:4:4或4:2:0)和/或颜色分量。在实施例中,指示是否和/或如何对边界处的块应用分割方案的规则可以取决于亮度编解码树和色度编解码树针对视频单元或视频块是否分离。例如,当亮度编解码树和色度编解码树分离时,分割方案可以仅在亮度分量上应用。
在实施例中,指示是否和/或如何对边界处的块应用分割方案的规则可以从编码器用信令通知给解码器。在实施例中,对分割方案和/或规则的指示可以在比特流的VPS、SPS、PPS、图片报头、条带报头、片组报头或片报头中用信令通知,以指示是否允许在视频单元或视频单元上使用分割方案。在实施例中,比特流的VPS、SPS、PPS、图片报头、条带报头、片组报头或片报头可以指示允许在视频单元或视频单元上使用哪些种类或类型的分割方案。在实施例中,是否和/或如何对边界处的块应用分割方案可以取决于条带或图片的时域层。在实施例中,是否和/或如何对边界处的块应用分割方案可以取决于图片类型或条带类型,诸如I条带或P/B条带。在实施例中,是否和/或如何对边界处的块应用分割方案可以取决于颜色分量/颜色格式。例如,针对亮度分量的边界处的块,可以允许分割方案,但是针对色度分量的边界处的块,不允许分割方案。
示例5
在实施例中,针对边界处的块的包括本文定义的分割方案和规则的分割信息(或划分信息)可以被包括在比特流中,并且例如由编码器以一个或多个语法元素添加到比特流中。例如,语法元素可以被包括在比特流的VPS、SPS、PPS、图片报头、条带报头、片组报头或片报头中。在实施例中,比特流中针对边界处的块的分割信息的信令可以取决于针对该块是否允许使用分割方案。例如,当针对块不允许分割方案时,可以不用信令通知指示是否使用分割方案的语法元素。例如,当针对块不允许水平分割方案时,可以不用信令通知指示是否使用水平分割方案的语法元素。例如,当针对块不允许垂直分割方案时,可以不用信令通知指示是否使用垂直分割方案的语法元素。例如,当针对块不允许使用除了某一分割方法之外的所有划分方法时,针对该块可以不用信令通知分割信息。在这种情况下,解码器可以推断该块的分割方案。例如,当仅允许在视频块上使用一种分割方案时,比特流可排除关于任何分割方案的分割信息。解码器可以相应地推断这一种分割方案。
示例6
与语法元素的分割信息和/或上下文选择相关的语法元素二进制化(即,将比特流编码成二进制格式)可以取决于针对块是否允许使用一种或多种分割方案。针对边界处的块的语法元素的二进制化和/或语法元素的上下文选择可以取决于针对该块是否允许一种或多种分割方案。针对不在边界处的块的语法元素的二进制化和/或那些语法元素的上下文选择可以取决于针对该块是否允许一种或多种分割方案。
图16是示出其中可以实施本文公开的各种技术的示例视频处理系统1600的框图。各种实施方式可以包括系统1600的一些或所有组件。系统1600可以包括用于接收视频内容的输入1602。视频内容可以以原始或未压缩的格式接收,例如8或10比特多分量像素值,或者可以是压缩或编码格式。输入1602可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光学网络(passive optical network,PON)等)以及无线接口(诸如无线保真(Wi-Fi)或蜂窝接口)。
系统1600可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件1604。编解码组件1604可以降低从输入1602到编解码组件1604的输出的视频平均比特率以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1604的输出可以被存储,或者经由连接的通信(如组件1606所表示的)被传输。组件1608可以使用在输入1602处接收的视频的存储或传送的比特流(或编解码)表示来生成发送到显示接口1610的像素值或可显示视频。从比特流表示生成用户可观看视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且与编解码结果相反的相应解码工具或操作将由解码器执行。
外围总线接口或显示器接口的示例可以包括通用串行总线(universal serialbus,USB)或高清多媒体接口(high definition multimedia interface,HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
图17是示例视频处理装置1700的框图。装置1700可以用于实施本文描述的一种或多种方法。装置1700可以具体实现在智能手机、平板电脑、计算机、物联网(Internet ofThings,IoT)接收器等中。装置1700可以包括一个或多个处理器1702、一个或多个存储器1704和视频处理电路1706。(多个)处理器1702可以被配置为实施本文档中描述的一种或多种方法。(多个)存储器1704可以用于存储用于实施本文描绘的方法和技术的数据和代码。视频处理电路1706可以用于在硬件电路中实施本文档中描述的一些技术。在一些实施例中,视频处理电路1706可以至少部分被包括在处理器1702(诸如图形协处理器)中。
图18是视频处理的示例方法1800的流程图。方法1800包括:在步骤1802,基于规则来确定对位于视频单元的边界处的视频块应用分割方案。在步骤1804,基于对视频块应用分割方案来执行可视媒体数据与比特流之间的转换。例如,步骤1802可以包括应用本文描述的规则或约束来确定对视频块应用分割方案。步骤1804然后可以包括(例如,通过采用由等式和/或算法确定的结果)在编码器处执行视频编码或者在解码器处执行视频解码。
在实施例中,一种视频处理方法包括:基于规则来确定对位于视频单元的边界处的视频块应用分割方案;以及基于对视频块应用分割方案来执行可视媒体数据与比特流之间的转换。在实施例中,当对视频单元应用分割方案导致视频块的至少一部分位于视频单元的边界之外时,其中该规则指示将丢弃视频块的位于视频单元的边界之外的部分,并且其中该方法还包括在对视频单元应用分割方案之后丢弃视频块的位于视频单元的边界之外的部分。在实施例中,该规则基于视频块的位置或边界的位置中的至少一个来指示是否允许在边界处的视频块上使用分割方案。在实施例中,该规则基于视频块的维度或视频块的子块的维度中的至少一个来指示是否允许在边界处的视频块上使用分割方案,并且其中,视频块的子块是从视频块分割而得的。在实施例中,该规则指示:当对视频块应用分割方案导致多个子块时,允许使用分割方案来分割视频块,其中,多个子块的第一子集在视频单元的边界之外;该规则指示:当边界是视频单元的底部边界或拐角边界中的至少一个时,并且当对视频块应用水平分割方案导致多个子块时,允许使用水平分割方案来分割视频块,其中,视频单元的边界之内的多个子块的第二子集的高度之和等于视频单元的高度与视频块的y坐标之间的差;该规则指示:当边界是视频单元的右侧边界或拐角边界中的至少一个时,并且当对视频块应用垂直分割方案导致多个子块时,允许使用垂直分割方案来分割视频块,其中,视频单元的边界之内的多个子块的第二子集的宽度之和等于视频单元的宽度与视频块的x坐标之间的差;该规则指示:当视频块处于视频单元的拐角边界处时,并且当对视频块应用水平分割方案导致多个子块时,允许使用水平分割方案来分割视频块,其中,视频单元的边界之内的多个子块的第二子集的高度之和等于视频单元的高度与视频块的y坐标之间的差;并且该规则指示:当视频块处于视频单元的拐角边界处时,并且当对视频块应用垂直分割方案导致多个子块时,允许使用垂直分割方案来分割视频块,其中,视频单元的边界之内的多个子块的第二子集的宽度之和等于视频单元的宽度与视频块的x坐标之间的差。在实施例中,该规则指示:当视频块位于视频单元的边界处时,不允许使用分割方案来分割视频块,并且其中,当不允许使用分割方案来分割视频块时,比特流排除对分割方案的指示。在实施例中,该规则基于视频块的宽度、视频块的高度或视频块的深度中的至少一个来指示是否允许在边界处的视频块上使用分割方案。在实施例中,该规则基于阈值与视频块的宽度、视频块的高度或视频块的深度中的至少一个之间的比较来指示是否允许在边界处的视频块上使用分割方案。该阈值可以基于视频块的颜色分量、视频块的条带类型、视频块的图片类型、视频块的亮度编解码树或视频块的色度编解码树中的至少一个。比特流可以包括对阈值的指示。在实施例中,该规则基于视频块的编解码信息。在实施例中,编解码信息包括视频块的颜色格式或视频块的颜色分量中的至少一个,并且其中,该规则还基于视频块的亮度编解码树和色度编解码树是否分离。在实施例中,比特流包括对是否允许在视频块上使用分割方案的指示。在实施例中,比特流包括对允许在视频块上使用的分割方案的指示。在实施例中,该规则基于视频块的图片类型、视频块的条带类型、视频块的帧内编解码条带(I条带)、视频块的预测条带(P条带)、视频块的双向预测条带(B条带)、视频块的时域层、视频块的颜色分量或视频块的颜色格式中的至少一个来指示是否允许在边界处的视频块上使用分割方案。在实施例中,当不允许使用分割方案来分割视频块时,比特流排除指示是否允许在视频块上使用分割方案的语法元素。在实施例中,当仅允许在视频块上使用一种分割方案时,比特流排除关于任何分割方案的信息。在实施例中,与分割方案相关的语法元素的二进制化是基于是否允许使用一种或多种分割方案来分割视频块。
应当注意,方法1800可以在用于处理视频数据的装置中实施,该装置包括处理器和其上具有指令的非暂时性存储器,该装置诸如是视频编码器2000、视频解码器2100和/或编码器2200,如图20、21和22所示。在这种情况下,该指令在由处理器执行时致使处理器执行方法1800。此外,方法1800可以由包括供视频编解码设备使用的计算机程序产品的非暂时性计算机可读介质来执行。该计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可执行指令,使得该计算机可执行指令在由处理器执行时致使视频编解码设备执行方法1800。
图19是图示可以利用本公开的技术的示例视频编解码系统1900的框图。如图19所示,视频编解码系统1900可以包括源设备1910和目的地设备1920。源设备1910生成编码视频数据,其可以称为视频编解码设备。目的地设备1920可以解码由源设备1910生成的编码视频数据,其可以称为视频解码设备。
源设备1910可以包括视频源1912、视频编码器1914和输入/输出(I/O)接口1916。视频源1912可以包括诸如视频捕获设备、用以从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统之类的源,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器1914对来自视频源1912的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关数据。编解码图片是图片的编解码表示。相关数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口1916可以包括调制器/解调器(调制解调器)和/或发送器。编码视频数据可以经由I/O接口1916通过网络1930直接传输到目的地设备1920。编码视频数据还可以被存储在存储介质/服务器1940上以供目的地设备1920访问。
目的地设备1920可以包括I/O接口1926、视频解码器1924和显示设备1922。I/O接口1926可以包括接收器和/或调制解调器。I/O接口1926可以从源设备1910或存储介质/服务器1940获取编码视频数据。视频解码器1924可以对编码视频数据进行解码。显示设备1922可以向用户显示解码视频数据。显示设备1922可以与目的地设备1920集成在一起,或者可以在目的地设备1920的外部,目的地设备1920可以被配置为与外部显示设备对接。
视频编码器1914和视频解码器1924可以根据视频压缩标准进行操作,诸如高效视频编解码(HEVC)标准、通用视频编解码(VVM)标准和其他当前的和/或进一步的标准。
图20是示出视频编码器2000的示例的框图,视频编码器2000可以是图19所示的视频编解码系统1900中的视频编码器1914。视频编码器2000可以被配置为执行本公开的任何或所有技术。在图20的示例中,视频编码器2000包括多个功能组件。本公开中描述的技术可以在视频编码器2000的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
视频编码器2000的功能组件可以包括分割单元2001、预测单元2002、残差生成单元2007、变换单元2008、量化单元2009、逆量化单元2010、逆变换单元2011、重构单元2012、缓冲器2013和熵编码单元2014,预测单元2002可以包括模式选择单元2003、运动估计单元2004、运动补偿单元2005、帧内预测单元2006。
在其他示例中,视频编码器2000可以包括更多、更少或不同的功能组件。在示例中,预测单元2002可以包括帧内块复制(intra block copy,IBC)单元。IBC单元可以在IBC模式下执行预测,在IBC模式下,至少一个参考图片是当前视频块所位于的图片。
此外,诸如运动估计单元2004和运动补偿单元2005之类的一些组件可以被高度集成,但是为了解释目的而在图20的示例中被分开表示。
分割单元2001可以将图片分割成一个或多个视频块。视频编码器2000和视频解码器2100(图21)可以支持各种视频块尺寸。
模式选择单元2003可以基于误差结果来选择编解码模式之一(例如,帧内或帧间),并且将所得的帧内或帧间编解码块提供给残差生成单元2007以生成残差块数据,以及提供给重构单元2012以重构编码块以用作参考图片。在一些示例中,模式选择单元2003可以选择帧内和帧间预测的组合(combination of intra and inter prediction,CIIP)模式,在CIIP模式下,预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元2003还可以选择块的运动矢量的分辨率(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元2004可以通过将来自缓冲器2013的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元2005可以基于来自缓冲器2013的除了与当前视频块相关联的图片之外的图片的运动信息和解码样点来确定当前视频块的预测视频块。
运动估计单元2004和运动补偿单元2005可以对当前视频块执行不同的操作,例如,这取决于当前视频块是在I条带、P条带还是B条带中。
在一些示例中,运动估计单元2004可以对当前视频块执行单向预测,并且运动估计单元2004可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元2004然后可以生成指示列表0或列表1中的包含参考视频块的参考图片的参考索引,以及指示当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元2004可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元2005可以基于由当前视频块的运动信息所指示的参考视频块来生成当前块的预测视频块。
在其他示例中,运动估计单元2004可以对当前视频块执行双向预测,运动估计单元2004可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。运动估计单元2004然后可以生成指示列表0和列表1中的包含参考视频块的参考图片的参考索引,以及指示参考视频块与当前视频块之间的空域位移的运动矢量。运动估计单元2004可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元2005可以基于由当前视频块的运动信息所指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元2004可以输出用于解码器的解码处理的完整运动信息集合。在一些示例中,运动估计单元2004可以不输出当前视频块的完整运动信息集合。相反,运动估计单元2004可以参考另一视频块的运动信息来用信令通知当前视频块的运动信息。例如,运动估计单元2004可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
在一个示例中,运动估计单元2004可以在与当前视频块相关联的语法结构中指示一个值,该值向视频解码器2100(图21)指示当前视频块具有与另一视频块相同的运动信息。
在另一示例中,运动估计单元2004可以在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(motion vector difference,MVD)。运动矢量差指示当前视频块的运动矢量与所指示的视频块的运动矢量之间的差异。图21的视频解码器2100可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上所述,视频编码器2000可以预测性地用信令通知运动矢量。可以由视频编码器2000实施的预测信令技术的两个示例包括高级运动矢量预测(advanced motion vectorprediction,AMVP)和Merge模式信令。
帧内预测单元2006可以对当前视频块执行帧内预测。当帧内预测单元2006对当前视频块执行帧内预测时,帧内预测单元2006可以基于同一图片中的其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差生成单元2007可以通过从当前视频块中减去当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中样点的不同样点分量相对应的残差视频块。
在其他示例中,对于当前视频块可能不存在当前视频块的残差数据,例如在跳过模式下,并且残差生成单元2007可以不执行减法操作。
变换单元2008可以通过对与当前视频块相关联的残差视频块应用一个或多个变换来生成当前视频块的一个或多个变换系数视频块。
在变换单元2008生成与当前视频块相关联的变换系数视频块之后,量化单元2009可以基于与当前视频块相关联的一个或多个量化参数(quantization parameter,QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元2010和逆变换单元2011可分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元2012可以将重构残差视频块添加到来自预测单元2002所生成的一个或多个预测视频块的相应样点,以产生与当前块相关联的重构视频块以供存储在缓冲器2013中。
在重构单元2012重构视频块之后,可以执行环路滤波操作以减少视频块中的视频方块伪影。
熵编码单元2014可以从视频编码器2000的其他功能组件接收数据。当熵编码单元2014接收到数据时,熵编码单元2014可以执行一个或多个熵编码操作,以生成熵编码数据并输出包括熵编码数据的比特流。
图21是图示视频解码器2100的示例的框图,视频解码器2100可以是图19所示的视频编解码系统1900中的视频解码器1924。
视频解码器2100可以被配置为执行本公开的任何或所有技术。在图21的示例中,视频解码器2100包括多个功能组件。本公开中描述的技术可以在视频解码器2100的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
在图21的示例中,视频解码器2100包括熵解码单元2101、运动补偿单元2102、帧内预测单元2103、逆量化单元2104、逆变换单元2105、重构单元2106和缓冲器2107。在一些示例中,视频解码器2100可以执行通常与针对视频编码器2000(图20)描述的编码步骤相反的解码步骤。
熵解码单元2101可以检索编码比特流。编码比特流可以包括熵编解码视频数据(例如,编码的视频数据块)。熵解码单元2101可以对熵编解码视频数据进行解码,并且根据熵解码视频数据,运动补偿单元2102可以确定运动信息,包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息。运动补偿单元2102可以例如通过执行AMVP和Merge模式来确定这种信息。
运动补偿单元2102可以产生运动补偿块,以可能基于插值滤波器执行插值。可以在语法元素中包括要以子像素精度使用的插值滤波器的标识符。
运动补偿单元2102可以使用如视频编码器2000在视频块的编码期间所使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元2102可以根据接收的语法信息来确定视频编码器2000(图20)所使用的插值滤波器,并且使用插值滤波器来产生预测块。
运动补偿单元2102可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述如何对编码视频序列的图片的每个宏块进行分割的分割信息、指示如何对每个分区进行编码的模式、每个帧间编解码块的一个或多个参考帧(和参考帧列表)以及用以对编码视频序列进行解码的其他信息。
帧内预测单元2103可以使用例如在比特流中接收的帧内预测模式以从空域邻接块形成预测块。逆量化单元2104对比特流中提供的并且由熵解码单元2101解码的量化视频块系数进行逆量化(即,去量化)。逆变换单元2105应用逆变换。
重构单元2106可以将残差块与由运动补偿单元2102或帧内预测单元2103生成的相应预测块相加,以形成解码块。如果需要的话,还可以应用去方块滤波器来对解码块进行滤波,以便去除块效应伪像。然后解码视频块被存储在缓冲器2107中,缓冲器2107为随后的运动补偿/帧内预测提供参考块,并且还产生解码视频以供在显示设备上呈现。
图22是示例编码器2200的示意图。编码器2200适合于实施VVC的技术。编码器2200包括三个环路滤波器,即去方块滤波器(deblocking filter,DF)2202、样点自适应偏移(sample adaptive offset,SAO)滤波器2204和自适应环路滤波器(adaptive loopfilter,ALF)2206。与使用预定义滤波器的DF 2202不同,SAO滤波器2204和ALF 2206利用当前图片的原始样点,通过分别利用编解码辅助信息用信令通知偏移和滤波器系数来添加偏移和应用有限脉冲响应(finite impulse response,FIR)滤波器,从而减少原始样点与重构样点之间的均方误差。ALF 2206位于每个图片的最后一个处理级,并且可以被视为尝试捕捉和修复由先前的级产生的伪像的工具。
编码器2200还包括被配置为接收输入视频的帧内预测组件2208和运动估计/补偿(ME/MC)组件2210。帧内预测组件2208被配置为执行帧内预测,而ME/MC组件2210被配置为利用从参考图片缓冲器2212获得的参考图片来执行帧间预测。来自帧间预测或帧内预测的残差块被馈送到变换(T)组件2214和量化(Q)组件2216中以生成量化残差变换系数,该量化残差变换系数被馈送到熵编解码组件2218。熵编解码组件2218对预测结果和量化变换系数进行熵编解码,并且将其发送给视频解码器(未示出)。从量化(Q)组件2216输出的量化分量可以被馈送到逆量化(IQ)组件2220、逆变换(IT)组件2222和重构(REC)组件2224中。REC组件2224能够将图像输出到DF 2202、SAO 2204和ALF 2206,以便在这些图像被存储在参考图片缓冲器2212中之前进行滤波。
接下来提供一些实施例优选的解决方案列举。
以下解决方案示出了前一章节中讨论的技术的示例实施例。
1.一种视频处理方法,包括:对于视频的视频块与视频的比特流之间的转换,确定是否或者如何根据规则对视频块应用分割方案(XT);以及基于该确定执行该转换;其中,视频块的位置在视频单元的边界处;并且其中,XT不同于四叉树(QT)或二叉树(BT)或三叉树(TT)分割方案。
2.根据解决方案1所述的方法,其中,XT包括非对称二叉树(UBT)分割方案或扩展三叉树(ETT)分割方案或非对称四叉树(UQT)分割方案或扩展四叉树(EQT)分割方案。
3.根据解决方案1-2中任一项所述的方法,其中,该规则规定:针对由于使用XT分割视频块而导致的转换,丢弃视频块在边界之外的部分。
4.根据解决方案1所述的方法,其中,该规则基于视频块或边界的位置。
5.根据解决方案1-4中任一项所述的方法,其中,该规则取决于视频块的维度或通过根据XT分割视频块而获得的块的维度。
6.根据解决方案1所述的方法,其中,该规则规定在视频块处于视频单元的底部或右侧或拐角的情况下不允许XT。
以下解决方案示出了前一章节中讨论的技术的示例实施例。
7.根据解决方案1-6中任一项所述的方法,其中,该规则规定在使用XT在边界处从父块划分视频块的情况下不允许使用XT分割视频块。
8.根据解决方案7所述的方法,其中,由于不允许XT,该规则规定从比特流中省略对如何划分视频块的指示。
9.根据解决方案7所述的方法,其中,由于不允许XT,该规则规定将视频块视为包括视频块的分割树的叶节点。
以下解决方案示出了前一章节中讨论的技术的示例实施例。
10.根据解决方案1-9中任一项所述的方法,其中,该规则还响应于视频块的高度H或宽度W或分割深度D。
11.根据解决方案10所述的方法,其中,该规则在H或W满足与阈值T1或阈值T2相关的条件的情况下不允许XT。
12.根据解决方案10所述的方法,其中,该规则在H或W满足与阈值T1或阈值T2相关的条件的情况下允许XT。
13.根据解决方案10所述的方法,其中,该规则在D满足与阈值t相关的条件的情况下允许XT
以下解决方案示出了前一章节中讨论的技术的示例实施例。
14.根据解决方案1-13中任一项所述的方法,其中,该规则响应于视频块的编解码信息。
15.根据解决方案14所述的方法,其中,编解码信息包括视频的颜色格式。
16.根据解决方案14所述的方法,其中,编解码信息对应于序列级别或条带级别或时域层级别或图片级别或块级别的编解码信息。
17.根据解决方案14所述的方法,其中,编解码条件涉及用于对包括视频块的条带或图片进行编解码的预测编解码的类型。
以下解决方案示出了前一章节中讨论的技术的示例实施例。
18.一种视频处理方法,包括:根据规则来执行在视频的视频单元的边界处的视频块与视频的比特流之间的转换,其中,该规则定义是否或者如何取决于是否针对视频块启用被称为XT的分割方案来指示视频块的划分信息,其中,XT不同于四叉树(QT)或者二叉树(BT)或者三叉树(TT)分割方案。
19.根据解决方案18所述的方法,其中,XT包括非对称二叉树(UBT)分割方案或扩展三叉树(ETT)分割方案或非对称四叉树(UQT)分割方案或扩展四叉树(EQT)分割方案。
20.根据解决方案18-19中任一项所述的方法,其中,该规则规定在针对视频块不启用XT的情况下省略指示是否启用XT的语法元素。
以下解决方案示出了前一章节中讨论的技术的示例实施例。
21.根据解决方案1-20中任一项所述的方法,其中,该规则该规定使用取决于针对视频块是否启用一种或多种XT的语法元素来指示关于视频块的分割方案的信息。
22.根据解决方案1所述的方法,其中,该规则定义:语法元素的二进制化取决于针对视频块是否启用一种或多种XT。
23.根据解决方案1-22中任一项所述的方法,其中,视频块包括编解码块或变换块或预测块或编解码树单元。
24.根据解决方案1-23中任一项所述的方法,其中,视频单元包括视频序列、视频图片、视频子图片、视频条带或虚拟流水线数据单元。
25.根据解决方案1-24中任一项所述的方法,其中,该规则是基于与视频块相关联的编解码条件来实施的。
26.根据解决方案1-25中任一项所述的方法,其中,该转换包括从比特流生成视频。
27.根据解决方案1-25中任一项所述的方法,其中,该转换包括从视频生成比特流。
28.一种在计算机可读介质上存储比特流的方法,包括:根据解决方案1-26中任一项或多项所述的方法生成比特流,以及将比特流存储在计算机可读介质上。
29.一种其上存储有视频的比特流的计算机可读介质,该比特流在由视频解码器的处理器处理时致使视频解码器生成视频,其中,该比特流是根据解决方案1-27中一项或多项所述的方法生成的。
30.一种视频解码装置,包括被配置为实施根据解决方案1至27中一项或多项所述的方法的处理器。
31.一种视频编码装置,包括被配置为实施根据解决方案1至27中一项或多项所述的方法的处理器。
32.一种其上存储有计算机代码的计算机程序产品,该计算机代码在由处理器执行时致使处理器实施根据解决方案1至27中任一项所述的方法。
33.一种计算机可读介质,其上记录有遵循根据解决方案1至27中任一项所述生成的比特流格式的比特流。
30.一种方法、一种装置、一种根据本文档中描述的公开方法或系统生成的比特流。
在本文描述的解决方案中,编码器可以通过根据格式规则产生编解码表示来遵循格式规则。在本文描述的解决方案中,解码器可以使用该格式规则来解析编解码表示中的语法元素,其中,根据该格式规则而获知语法元素的存在与否以产生解码视频。
在本文档中,术语“视频处理”可以是指视频编码、视频解码、视频压缩或视频解压缩。例如,在从视频的像素表示到相应的比特流表示的转换期间,可以应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可以例如对应于并置或散布在比特流内不同位置的比特。例如,可以根据经变换和编解码的误差残差值并且还使用比特流中的报头和其他字段中的比特来对宏块进行编码。此外,如上述解决方案中所描述的,在转换期间,解码器可以基于该确定在获知一些字段可能存在与否的情况下解析比特流。类似地,编码器可以确定包括或不包括某些语法字段,并且通过将语法字段包括在内或者从编解码表示中排除语法字段来相应地生成编解码表示。
本文档中描述的公开的和其他的解决方案、示例、实施例、模块和功能操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件(包括本文中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。公开的和其他的实施例可以被实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储衬底、存储器设备、实现机器可读传播信号的合成物、或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,举例来说包括可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,该装置可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分(例如,标记语言文档中存储的一个或多个脚本)中,被存储在专用于所讨论的程序的单个文件中,或者被存储在多个协作文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一台计算机上执行,或者在位于一个地点或分布在多个地点并通过通信网络互连的多台计算机上执行。
本文档中描述的过程和逻辑流程可以由一个或多个可编程处理器来执行,这些可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且该装置也可以被实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),以从其接收数据,或向其传递数据,或两者兼有。然而,计算机不需要具有这种设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说包括:半导体存储器设备,例如可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及光盘只读存储器(CDROM)和数字通用光盘只读存储器(DVD-ROM)盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
虽然本专利文档包含许多细节,但是这些细节不应被解释为对任何主题或所要求保护的内容的范围的限制,而是对特定技术的特定实施例所特有的特征的描述。本专利文档中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施,或者以任何合适的子组合来实施。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中以特定的次序描述了操作,但是这不应被理解为要求这些操作以所示的特定次序或顺序次序执行,或者要求所有示出的操作都被执行,以获得期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容进行其他实施方式、增强和变化。
当在第一组件与第二组件之间除了线、迹线或另一介质之外不存在中间组件时,第一组件直接耦合到第二组件。当在第一组件与第二组件之间除了线、迹线或另一介质之外还存在中间组件时,第一组件间接耦合到第二组件。术语“耦合”及其变体包括直接耦合和间接耦合。术语“大约”的使用意味着包括随后的数值的±10%的范围,除非另有说明。
虽然在本公开中已经提供了几个实施例,但是应当理解,在不脱离本公开的精神或范围的情况下,公开的系统和方法可以以许多其他具体形式来体现。当前的示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者可以省略或不实施某些特征。
此外,在不脱离本公开的范围的情况下,在各种实施例中被描述和图示为分立或分开的技术、系统、子系统和方法可以与其他系统、模块、技术或方法组合或集成。被示出或讨论为耦合的其他项目可以直接连接,或者可以通过一些接口、设备或中间组件间接耦合或通信,不管是以电气方式、机械方式还是其他方式。改变、替换和更改的其他示例可以由本领域技术人员确定,并且可以在不脱离本文公开的精神和范围的情况下进行。

Claims (22)

1.一种视频处理方法,包括:
基于规则来确定对位于视频单元的边界处的视频块应用分割方案;以及
基于对所述视频块应用所述分割方案来执行可视媒体数据与比特流之间的转换。
2.根据权利要求1所述的方法,其中,当对所述视频单元应用所述分割方案导致所述视频块的至少一部分位于所述视频单元的边界之外时,其中所述规则指示将丢弃所述视频块的位于所述视频单元的边界之外的部分,并且其中所述方法还包括在对所述视频单元应用所述分割方案之后丢弃所述视频块的位于所述视频单元的边界之外的部分。
3.根据权利要求1-2中任一项所述的方法,其中,所述规则基于所述视频块的位置或所述边界的位置中的至少一个来指示是否允许在所述边界处的所述视频块上使用所述分割方案。
4.根据权利要求1-3中任一项所述的方法,其中,所述规则基于所述视频块的维度或所述视频块的子块的维度中的至少一个来指示是否允许在所述边界处的所述视频块上使用所述分割方案,并且其中,所述视频块的子块是从所述视频块分割而得的。
5.根据权利要求1-4中任一项所述的方法,其中:
所述规则指示:当对所述视频块应用所述分割方案导致多个子块时,允许使用所述分割方案来分割所述视频块,其中,所述多个子块的第一子集在所述视频单元的边界之外,
所述规则指示:当所述边界是所述视频单元的底部边界或拐角边界中的至少一个时,并且当对所述视频块应用水平分割方案导致多个子块时,允许使用所述水平分割方案来分割所述视频块,其中,所述视频单元的边界之内的所述多个子块的第二子集的高度之和等于所述视频单元的高度与所述视频块的y坐标之间的差,
所述规则指示:当所述边界是所述视频单元的右侧边界或拐角边界中的至少一个时,并且当对所述视频块应用垂直分割方案导致多个子块时,允许使用所述垂直分割方案来分割所述视频块,其中,所述视频单元的边界之内的所述多个子块的第二子集的宽度之和等于所述视频单元的宽度与所述视频块的x坐标之间的差,
所述规则指示:当所述视频块处于所述视频单元的拐角边界处时,并且当对所述视频块应用水平分割方案导致多个子块时,允许使用所述水平分割方案来分割所述视频块,其中,所述视频单元的边界之内的所述多个子块的第二子集的高度之和等于所述视频单元的高度与所述视频块的y坐标之间的差,或者
所述规则指示:当所述视频块处于所述视频单元的拐角边界处时,并且当对所述视频块应用垂直分割方案导致多个子块时,允许使用所述垂直分割方案来分割所述视频块,其中,所述视频单元的边界之内的所述多个子块的第二子集的宽度之和等于所述视频单元的宽度与所述视频块的x坐标之间的差。
6.根据权利要求1-5中任一项所述的方法,其中,所述规则指示:当所述视频块位于所述视频单元的边界处时,不允许使用所述分割方案来分割所述视频块,并且其中,当不允许使用所述分割方案来分割所述视频块时,所述比特流排除对所述分割方案的指示。
7.根据权利要求1-6中任一项所述的方法,其中,所述规则基于所述视频块的宽度、所述视频块的高度或所述视频块的深度中的至少一个来指示是否允许在所述边界处的所述视频块上使用所述分割方案。
8.根据权利要求1-7中任一项所述的方法,其中,所述规则基于阈值与所述视频块的宽度、所述视频块的高度或所述视频块的深度中的至少一个之间的比较来指示是否允许在所述边界处的所述视频块上使用所述分割方案。
9.根据权利要求8所述的方法,其中,所述阈值基于所述视频块的颜色分量、所述视频块的条带类型、所述视频块的图片类型、所述视频块的亮度编解码树或所述视频块的色度编解码树中的至少一个。
10.根据权利要求8所述的方法,其中,所述比特流包括对所述阈值的指示。
11.根据权利要求1-10中任一项所述的方法,其中,所述规则基于所述视频块的编解码信息。
12.根据权利要求11所述的方法,其中,所述编解码信息包括所述视频块的颜色格式或所述视频块的颜色分量中的至少一个,并且其中,所述规则还基于所述视频块的亮度编解码树和色度编解码树是否分离。
13.根据权利要求1-12中任一项所述的方法,其中,所述比特流包括对是否允许在所述视频块上使用所述分割方案的指示。
14.根据权利要求1-13中任一项所述的方法,其中,所述比特流包括对允许在所述视频块上使用的分割方案的指示。
15.根据权利要求1-14中任一项所述的方法,其中,所述规则基于所述视频块的图片类型、所述视频块的条带类型、所述视频块的帧内编解码条带(I条带)、所述视频块的预测条带(P条带)、所述视频块的双向预测条带(B条带)、所述视频块的时域层、所述视频块的颜色分量或所述视频块的颜色格式中的至少一个来指示是否允许在所述边界处的所述视频块上使用所述分割方案。
16.根据权利要求1-15中任一项所述的方法,其中,当不允许使用所述分割方案来分割所述视频块时,所述比特流排除指示是否允许在所述视频块上使用所述分割方案的语法元素。
17.根据权利要求1-16中任一项所述的方法,其中,当仅允许在所述视频块上使用一种分割方案时,所述比特流排除关于任何分割方案的信息。
18.根据权利要求1-17中任一项所述的方法,其中,与分割方案相关的语法元素的二进制化是基于是否允许使用一种或多种分割方案来分割所述视频块。
19.一种包括供视频编解码设备使用的计算机程序产品的非暂时性计算机可读介质,所述计算机程序产品包括存储在所述非暂时性计算机可读介质上的计算机可执行指令,使得所述计算机可执行指令在由处理器执行时,致使所述视频编解码设备执行根据权利要求1-18所述的方法。
20.一种用于处理视频数据的装置,包括:处理器;以及其上具有指令的非暂时性存储器,其中,所述指令在由所述处理器执行时,致使所述处理器执行根据权利要求1-18所述的方法。
21.一种存储由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中,所述方法包括:
基于规则来确定对位于视频单元的边界处的视频块应用分割方案;以及
基于确定对位于视频单元的边界处的视频块应用分割方案来生成所述比特流。
22.一种用于存储视频比特流的方法,包括:
基于规则来确定对位于视频单元的边界处的视频块应用分割方案;
基于对位于视频单元的边界处的视频块应用分割方案来生成所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中。
CN202280028393.XA 2021-04-13 2022-04-13 用于编解码树划分的边界处理 Pending CN117256141A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2021086867 2021-04-13
CNPCT/CN2021/086867 2021-04-13
PCT/CN2022/086519 WO2022218322A1 (en) 2021-04-13 2022-04-13 Boundary handling for coding tree split

Publications (1)

Publication Number Publication Date
CN117256141A true CN117256141A (zh) 2023-12-19

Family

ID=83639493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280028393.XA Pending CN117256141A (zh) 2021-04-13 2022-04-13 用于编解码树划分的边界处理

Country Status (3)

Country Link
US (1) US20240048701A1 (zh)
CN (1) CN117256141A (zh)
WO (1) WO2022218322A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452713B1 (ko) * 2009-10-30 2014-10-21 삼성전자주식회사 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치
WO2019007493A1 (en) * 2017-07-04 2019-01-10 Huawei Technologies Co., Ltd. ENHANCEMENT OF FORCED LIMIT PARTITION
EP3662666A4 (en) * 2017-09-08 2021-03-03 Mediatek Inc. METHODS AND DEVICES FOR PROCESSING IMAGES IN AN IMAGE OR VIDEO ENCODING SYSTEM
EP4192010A1 (en) * 2018-03-29 2023-06-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding a picture using picture boundary handling
TWI725456B (zh) * 2018-06-21 2021-04-21 大陸商北京字節跳動網絡技術有限公司 交錯區塊的自動劃分
CN110839160B (zh) * 2018-08-19 2023-01-20 北京字节跳动网络技术有限公司 扩展四叉树分割的强制边界分割

Also Published As

Publication number Publication date
US20240048701A1 (en) 2024-02-08
WO2022218322A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
US11805269B2 (en) Pruning in multi-motion model based skip and direct mode coded video blocks
JP2023169300A (ja) イントラコーディングモードにおけるマトリクスの導出
CN110839160B (zh) 扩展四叉树分割的强制边界分割
US20240031565A1 (en) Intra-Prediction on Non-dyadic Blocks
CN110730349B (zh) 用于微块的约束
CN118120232A (zh) 视频编解码中的双边滤波
TWI722486B (zh) 取決於形狀的插值順序
KR20230004797A (ko) 파티션 신택스를 위한 엔트로피 코딩
US20240048701A1 (en) Boundary Handling for Coding Tree Split
US20240040119A1 (en) Interaction of multiple partitions
WO2022171071A1 (en) Video decoder initialization information signaling
WO2022174769A1 (en) Unsymmetric binary tree partitioning and non-dyadic blocks
US20240022721A1 (en) Constraints on partitioning of video blocks
US20240022722A1 (en) Neighbor based partitioning constraints
US20240031613A1 (en) Duplicate partitioning prevention
US20240022723A1 (en) Partition Signaling In Video Coding
WO2023020569A1 (en) Intra-prediction on non-dyadic blocks
WO2022179404A1 (en) Residual coding on non-dyadic blocks
WO2023082484A1 (en) Array based residual coding on non-dyadic blocks
CN117044213A (zh) 对非二元块的变换与量化
CN118266216A (zh) 非二进分数块的基于数组的残差编解码
CN116965035A (zh) 非二元块上的变换
CN117296316A (zh) 变换和符号预测
CN117716692A (zh) 递归预测单元在视频编解码中的应用
CN117716690A (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