CN115804087A - 用于编码和解码视频样本的块的方法、设备和系统 - Google Patents

用于编码和解码视频样本的块的方法、设备和系统 Download PDF

Info

Publication number
CN115804087A
CN115804087A CN202180036343.1A CN202180036343A CN115804087A CN 115804087 A CN115804087 A CN 115804087A CN 202180036343 A CN202180036343 A CN 202180036343A CN 115804087 A CN115804087 A CN 115804087A
Authority
CN
China
Prior art keywords
bitstream
decoding
decoded
maximum
coding tree
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
CN202180036343.1A
Other languages
English (en)
Inventor
克里斯托弗·詹姆斯·罗斯沃恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Publication of CN115804087A publication Critical patent/CN115804087A/zh
Pending legal-status Critical Current

Links

Images

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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/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/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/177Methods 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 a group of pictures [GOP]
    • 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/18Methods 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 a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

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

Abstract

一种从位流中解码图像帧的系统和方法,图像帧被分割成多个编码树单元。该方法包括:从位流中解码最大变换块大小约束和/或最大编码树单元(CTU)大小约束;以及从位流中解码最大启用变换块大小和/或最大启用CTU大小。经解码的最大启用变换块大小小于或等于经解码的最大变换块大小约束。经解码的最大启用CTU大小小于或等于经解码的最大CTU大小约束。该方法进行操作以根据经解码的最大启用变换块大小、最大启用CTU和从位流中解码的拆分标志来确定多个编码树单元中的各编码树单元的一个或多于一个变换块中的各变换块;以及从位流中解码所确定的一个或多于一个变换块中的各变换块以解码图像帧。

Description

用于编码和解码视频样本的块的方法、设备和系统
相关申请的交叉引用
本申请根据35U.S.C.§119要求于2020年5月21日提交的澳大利亚专利申请2020203330的优先权益,这里出于所有目的将该专利申请的全部内容通过引用合并于此,如同在本文中完全阐述一样。
技术领域
本发明通常涉及数字视频信号处理,尤其涉及用于对视频样本块进行编码和解码的方法、设备和系统。本发明还涉及包括记录有用于对视频样本块进行编码和解码的计算机程序的计算机可读介质的计算机程序产品。
背景技术
当前存在包括用于传输和存储视频数据的应用的许多视频编码用的应用。还开发了许多视频编码标准并且其他视频编码标准当前正在开发中。视频编码标准化的最新进展已导致形成被称为“联合视频专家组”(JVET)的组。该联合视频专家组(JVET)包括两个标准设置组织(SSO)的成员,即:还已知为“视频编码专家组”(VCEG)的国际电信联盟(ITU)的电信标准化部门(ITU-T)的研究组16、问题6(SG16/Q6);以及还已知为“运动图片专家组”(MPEG)的国际标准化组织/国际电工委员会联合技术委员会1/小组委员会29/工作组11(ISO/IEC JTC1/SC29/WG11)。
联合视频专家组(JVET)发布了提案征集(CfP),并在美国圣地亚哥市举行的第10次会议上对答复进行了分析。所提交的答复表明,视频压缩能力明显优于当前最先进的视频压缩标准(即,“高效率视频编码”(HEVC))的视频压缩能力。基于该优异表现,决定开始用以开发命名为“通用视频编码”(VVC)的新视频压缩标准的项目。预计VVC将特别是随着视频格式的能力的增加(例如,具有更高的分辨率和更高的帧频)解决针对甚至更高的压缩性能的持续需求、以及解决针对通过WAN的服务提供(其中,带宽成本相对较高)的日益增长的市场需求。VVC必须可在当代硅工艺中实现,并且在所实现的性能与实现成本之间提供可接受的折衷。例如,在硅面积、CPU处理器负荷、存储器利用率和带宽的一个或多于一个方面可以考虑实现成本。VVC标准的多样化的一部分在于可用于压缩视频数据的工具的广泛选择以及VVC适合的广泛应用。
视频数据包括图像数据的帧序列,各个帧包括一个或多于一个颜色通道。通常,需要一个主要颜色通道和两个次要颜色通道。主要颜色通道通常被称为“亮度”通道,并且(一个或多于一个)次要颜色通道通常被称为“色度”通道。尽管视频数据通常在RGB(红-绿-蓝)颜色空间中显示,但该颜色空间在三个相应分量之间具有高度相关性。编码器或解码器所看到的视频数据表示通常使用诸如YCbCr等的颜色空间。YCbCr将(根据传递函数映射到“亮度”)的光亮度集中在Y(主要)通道中,并且将色度集中在Cb和Cr(次要)通道中。由于使用去相关的YCbCr信号,因此亮度通道的统计与色度通道的统计明显不同。主要差异在于:在量化之后,与相应亮度通道块的系数相比,色度通道针对给定块包含相对较少的有效系数。此外,可以以与亮度通道相比更低的速率(子采样)(例如,在水平方向上为一半且在垂直方向上为一半(被称为“4:2:0色度格式”))对Cb和Cr通道进行空间采样。4:2:0色度格式通常在(诸如互联网视频流式传输、广播电视和Blu-rayTM盘上的存储等的)“消费者”应用中使用。以半速率水平地对Cb和Cr通道进行子采样而不是垂直地进行子采样被称为“4:2:2色度格式”。4:2:2色度格式通常在(包括捕获用于电影制作的脚本等的)专业应用中使用。4:2:2色度格式的较高采样率使得所得到的视频对诸如颜色分级等的编辑操作更具弹性。在分发给消费者之前,4:2:2色度格式材料通常被转换为4:2:0色度格式,然后被编码以分发给消费者。除了色度格式之外,视频还由分辨率和帧频来表征。示例分辨率是分辨率为3840×2160的超高清(UHD)或分辨率为7680×4320的“8K”,并且示例帧频为60或120Hz。亮度采样率的范围可以从每秒大约500兆样本到每秒几千兆样本。对于4:2:0色度格式,各个色度通道的采样率是亮度采样率的四分之一,并且对于4:2:2色度格式,各个色度通道的采样率是亮度采样率的一半。
VVC标准是“基于块”的编解码器,其中帧首先被分割成称为“编码树单元”(CTU)的正方形区域阵列。CTU通常占据相对大的区域,诸如128×128个亮度样本等。然而,各个帧的右侧和下方边缘处的CTU的面积可能较小。与各CTU相关联的是针对亮度通道和色度通道这两者的“编码树”(“共用树”)或者各自针对亮度通道和色度通道的单独树。编码树定义CTU的区域到块(也被称作“编码块”(CB))集合的分解。当使用共用树时,单个编码树指定针对亮度通道和色度通道这两者的块,在这种情况下,并置的编码块的集合被称为“编码单元”(CU),即,各个CU具有用于各个颜色通道的编码块。以特定顺序处理CB以用于编码或解码。由于使用4:2:0色度格式,具有用于128×128个亮度样本区域的亮度编码树的CTU具有用于(与128×128个亮度样本区域并置的)64×64个色度样本区域的相应色度编码树。当单个编码树用于亮度通道和色度通道时,给定区域的并置块的集合通常被称为“单元”,例如上述CU、以及“预测单元”(PU)和“变换单元”(TU)。具有跨越4:2:0色度格式视频数据的颜色通道的CU的单个树产生相应亮度块的宽度和高度的一半的色度块。当针对给定区域使用单独的编码树时,将使用上述CB以及“预测块”(PB)和“变换块”(TB)。
尽管在“单元”和“块”之间存在上述区别,但是术语“块”可以用作帧的区域(area)或区域(region)的通用术语,对于该区域,操作被应用于所有颜色通道。
对于各CU,生成帧数据的相应区域的内容(样本值)的预测单元(PU)(“预测单位”)。此外,形成了在编码器的输入处看到的预测与区域内容之间的差(或空间域的“残差”)的表示。各颜色通道的差可以被变换并编码为残差系数的序列,从而形成给定CU的一个或多于一个TU。所应用的变换可以是应用于残差值的各个块的离散余弦变换(DCT)或其他变换。该变换是分开应用的,即分两遍进行二维变换。首先通过对块中的各行样本应用一维变换来对块进行变换。然后,通过对部分结果的各列应用一维变换来对部分结果进行变换,以产生基本上对残差样本进行去相关的变换系数的最终块。VVC标准支持各种大小的变换,包括矩形块(各边尺寸为2的幂)的变换。量化变换系数以用于将熵编码到位流中。
VVC的特征是帧内预测和帧间预测。帧内预测涉及使用正使用的帧中的先前处理的样本来生成对该帧中的当前样本块的预测。帧间预测涉及使用从先前解码的帧获得的样本块来生成对帧中的当前样本块的预测。从先前解码的帧获得的样本块根据运动矢量从当前块的空间位置偏移,该运动矢量通常已经应用了滤波。帧内预测块可以是(i)均匀样本值(“DC帧内预测”)、(ii)具有偏移以及水平梯度和垂直梯度的平面(“平面帧内预测”)、(iii)具有在特定方向上应用的相邻样本的块的群体(“角度帧内预测”)或者(iv)使用相邻样本和所选择的矩阵系数的矩阵乘法的结果。通过将‘残差’编码到位流中,可以在某种程度上校正预测块与相应输入样本之间的进一步差异。通常将残差从空间域变换到频域以形成残差系数(在“主要变换域”中),可以通过应用“次要变换”进一步变换残差系数(以产生“次要变换域”中的残差系数)。根据量化参数量化残差系数,导致在解码器处产生的样本的重建的精度损失,而位流内的位率也减小。
块内复制(IBC)模式允许使用来自同一帧的样本块来产生块的预测。备选的“矩阵帧内预测”(MIP)模式是可用的,由此使用预定矢量和块相邻样本的矩阵乘法来产生预测块。块可以被调色编码来代替使用变换。块的三个颜色通道可以通过自适应颜色变换(ACT),通常将RGB颜色空间去相关为YCbCr颜色空间。Cb和Cr通道残差可以被联合编码(JCbCr)。主要变换(MTS)的选择是可用的,包括DCT-2、DCT-8和DST-7以及变换跳过(TS)模式。可选的次要变换也是可用的,由此基于帧内预测模式和块大小选择内核集合中的一个内核,并且该内核适用于变换块的低频区域(称为低频不可分离变换(LFNST))。可以利用称为“依赖量化”(DQ)的网格方案对残差进行量化和编码。帧间预测块可以被预测为子块集合,各个子块具有根据仿射运动模型导出的不同运动矢量。可以使用组合(均匀)混合帧内预测操作和帧间预测操作来产生块。还可以使用两个不同的帧间预测块的几何定向混合(CIIP)来产生块。具有色度缩放的亮度映射(LMCS)处理可以作为解码处理的一部分被应用,将亮度样本映射到特定值,并且可以将缩放操作应用于色度样本的值。可以应用自适应环路滤波器(ALF),由此使用在位流中发送的多个滤波器之一对亮度和色度样本进行空间滤波,主要用于平滑目的。根据与变换块的量化参数组合应用的(空间)缩放矩阵(或“缩放列表”),可以以非均匀的方式进行变换块的残差系数的去量化。
发明内容
本发明的目的是基本上克服或至少改善现有布置的一个或多于一个缺点。
本发明的第一方面提供一种从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个变换块,所述方法包括:从所述位流中解码最大变换块大小约束;从所述位流中解码最大启用变换块大小,经解码的最大启用变换块大小小于或等于经解码的最大变换块大小约束;根据经解码的最大启用变换块大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个变换块;以及从所述位流中解码所确定的一个或多于一个变换块中的各变换块以对所述图像帧进行解码。
根据另一方面,所述最大变换块大小约束使用1位的固定长度码字。
根据另一方面,所述最大启用变换块大小约束是从所述位流中的general_constraint_info句法结构解码的。
根据另一方面,所述最大变换块大小约束是从所述位流的视频参数集和序列参数集其中之一解码的。
根据另一方面,所述最大启用变换块大小使用1位的固定长度码字。
根据另一方面,所述最大启用变换块大小是从所述位流中的seq_parameter_set_rbsp()句法结构解码的。
本发明的另一方面提供一种从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码单元,所述方法包括:从所述位流中解码最大编码树单元大小约束;从所述位流中解码最大启用编码树单元大小,经解码的最大启用编码树单元大小小于或等于经解码的最大编码单元大小约束;根据经解码的最大启用编码树大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个编码单元;以及从所述位流中解码所确定的一个或多于一个编码单元中的各编码单元以对所述图像帧进行解码。
根据另一方面,所述最大编码树单元大小约束使用1位的固定长度码字。
根据另一方面,所述最大启用编码树单元大小约束是从所述位流中的general_constraint_info句法结构解码的。
根据另一方面,所述最大编码树单元大小约束是从所述位流的视频参数集和序列参数集其中之一解码的。
根据另一方面,所述最大启用编码树单元大小使用1位的固定长度码字。
根据另一方面,所述最大启用编码树单元大小是从所述位流中的seq_parameter_set_rbsp()句法结构解码的。
本发明的另一方面提供一种非暂时性计算机可读介质,其上存储有计算机程序以实现从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个变换块,所述方法包括:从所述位流中解码最大变换块大小约束;从所述位流中解码最大启用变换块大小,经解码的最大启用变换块大小小于或等于经解码的最大变换块大小约束;根据经解码的最大启用变换块大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个变换块;以及从所述位流中解码所确定的一个或多于一个变换块中的各变换块以对所述图像帧进行解码。
本发明的另一方面提供视频解码器,其被配置为实现从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码单元,所述方法包括:从所述位流中解码最大编码树单元大小约束;从所述位流中解码最大启用编码树单元大小,经解码的最大启用编码树单元大小小于或等于经解码的最大编码单元大小约束;根据经解码的最大启用编码树大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个编码单元;以及从所述位流中解码所确定的一个或多于一个编码单元中的各编码单元以对所述图像帧进行解码。
本发明的另一方面提供系统,其包括:存储器;以及处理器,其中,所述处理器被配置为执行存储在存储器上的用于实现从位流中解码图像帧的方法的代码,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个变换块,所述方法包括:从所述位流中解码最大变换块大小约束;从所述位流中解码最大启用变换块大小,经解码的最大启用变换块大小小于或等于经解码的最大变换块大小约束;根据经解码的最大启用变换块大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个变换块;以及从所述位流中解码所确定的一个或多于一个变换块中的各变换块以对所述图像帧进行解码。
本发明的另一方面提供一种从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码块,所述方法包括:从所述位流中解码指示对缩放列表的使用的约束的第一标志,该标志被包括在一般约束信息句法中;从所述位流中解码指示所述缩放列表的启用的第二标志,所述第二标志受所述第一标志约束;利用根据所述第二标志的值进行的缩放从所述位流中解码所述一个或多于一个编码块;以及使用经解码的一个或多于一个编码单元对所述图像帧进行解码。
本发明的另一方面提供一种用于从位流中解码图像帧的视频解码设备,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个变换块,所述视频解码设备包括:第一解码单元,其被配置为从所述位流中解码最大变换块大小约束;第二解码单元,其被配置为从所述位流中解码最大启用变换块大小,经解码的最大启用变换块大小小于或等于经解码的最大变换块大小约束;确定单元,其被配置为根据经解码的最大启用变换块大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个变换块;以及第三解码单元,其被配置为从所述位流中解码所确定的一个或多于一个变换块中的各变换块以对所述图像帧进行解码。
本发明的另一方面提供一种用于从位流中解码图像帧的视频解码设备,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码单元,所述视频解码设备包括:第一解码单元,其被配置为从所述位流中解码最大编码树单元大小约束;第二解码单元,其被配置为从所述位流中解码最大启用编码树单元大小,经解码的最大启用编码树单元大小小于或等于经解码的最大编码单元大小约束;确定单元,其被配置为根据经解码的最大启用编码树大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个编码单元;以及第三解码单元,其被配置为使用经解码的一个或多于一个编码单元对所述图像帧进行解码。
本发明的另一方面提供一种用于从位流中解码图像帧的视频解码设备,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码块,所述视频解码设备包括:第一解码单元,其被配置为从所述位流中解码指示对缩放列表的使用的约束的第一标志,该标志被包括在一般约束信息句法中;第二解码单元,其被配置为从所述位流中解码指示所述缩放列表的启用的第二标志,所述第二标志受所述第一标志约束;第三解码单元,其被配置为利用根据所述第二标志的值进行的缩放从所述位流中解码所述一个或多于一个编码块;以及第四解码单元,其被配置为使用经解码的一个或多于一个编码单元对所述图像帧进行解码。
本发明的另一方面提供一种非暂时性计算机可读介质,其上存储有计算机程序以实现从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码单元,所述方法包括:从所述位流中解码最大编码树单元大小约束;从所述位流中解码最大启用编码树单元大小,经解码的最大启用编码树单元大小小于或等于经解码的最大编码单元大小约束;根据经解码的最大启用编码树大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个编码单元;以及从所述位流中解码所确定的一个或多于一个编码单元中的各编码单元以对所述图像帧进行解码。
本发明的另一方面提供一种非暂时性计算机可读介质,其上存储有计算机程序以实现从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码块,所述方法包括:从所述位流中解码指示对缩放列表的使用的约束的第一标志,该标志被包括在一般约束信息句法中;从所述位流中解码指示所述缩放列表的启用的第二标志,所述第二标志受所述第一标志约束;利用根据所述第二标志的值进行的缩放从所述位流中解码所述一个或多于一个编码块;以及使用经解码的一个或多于一个编码单元来解码所述图像帧以对所述图像帧进行解码。
还公开了其他方面。
附图说明
现在将参考以下附图和附录描述本发明的至少一个实施例,其中:
图1是示出视频编码和解码系统的示意性框图;
图2A和2B构成可以实践图1的视频编码和解码系统的其中一个或这两者的通用计算机系统的示意框图;
图3是示出视频编码器的功能模块的示意框图;
图4是示出视频解码器的功能模块的示意框图;
图5是示出通用视频编码的树结构中的块向一个或多于一个块的可用分割的示意框图;
图6是用以在通用视频编码的树结构中实现块向一个或多于一个块的许可分割的数据流的示意图;
图7A和7B示出编码树单元(CTU)向多个编码单元(CU)的示例分割;
图8示出具有多个条带的位流的句法结构,各个条带包括多个编码单元;
图9示出具有编码树单元的编码块的位流的句法结构;
图10示出将帧编码在包括一个或多于一个条带作为编码单元序列的位流中的方法;
图11示出从作为布置成条带的编码单元序列的位流中解码帧的方法;以及
附录A示出适于对应于本文公开的方法的VVC标准的工作草案文本的示例。
具体实施方式
在任一个或多于一个附图中参考具有相同附图标记的步骤和/或特征的情况下,除非出现相反意图,否则这些步骤和/或特征为了本说明书的目的而具有相同的(一个或多于一个)功能或(一个或多于一个)操作。
VVC编码器和解码器包括称为“约束”的能力信号通知机制。早期在位流,存在约束集合,其指示在位流中不使用VVC标准的哪些能力。约束与位流的“档次”和“水平”一起被用信号通知。档次广泛地指示需要哪些工具集可用于对位流进行解码。约束还提供了对哪些工具被进一步约束在指定档次中的精细控制粒度。进一步的约束被称为“子分档”。子分档允许即使在档次被定义之后也从档次中有效地移除特定工具,其中实施者同意要部署的公共子档次。例如,如果发现给定工具(尽管SSO的分析努力)难以实现,则稍后可以移除该工具。子分档的一个用途是减少档次的“增殖”,其中一些档次可能永远不会被使用。定义较少的档次有助于避免VVC标准实现的市场细分。档次和子档次还定义了所谓的“互操作性点”。互操作性点是制造商商定由其实现所支持的工具集。在最终确定标准时商定档次,并且能够在稍后的日期商定子档次,从而允许应对特定工具的不可预见的实现复杂性或其他问题,而不需要向标准添加附加档次。特定编码器可以选择进一步限制编码工具的使用,例如出于复杂性降低的目的,而不脱离所得位流的商定档次和子档次定义。可以在位流中早期用信号通知工具选择的任何进一步限制,从而抑制未使用工具的信号通知。可替代地,编码器可以使工具可用,但从不用信号通知工具的使用(在信号通知中保留以控制工具,但总是选择禁用值)。
图1是示出视频编码和解码系统100的功能模块的示意框图。除了对特定编码工具的约束之外,系统100包括对块结构的约束,从而提供子分档的进一步灵活性。
系统100包括源装置110和目的地装置130。通信通道120用于从源装置110向目的地装置130通信编码视频信息。在一些布置中,源装置110和目的地装置130中的一个或两个分别可以包括移动电话手机或“智能电话”,其中在这种情况下,通信通道120是无线通道。在其他布置中,源装置110和目的地装置130可以包括视频会议设备,其中在这种情况下,通信通道120通常是诸如因特网连接等的有线通道。此外,源装置110和目的地装置130可以包括范围广泛的任意装置,其中这些装置包括支持空中电视广播、有线电视应用、因特网视频应用(包括流传输)、以及在一些计算机可读存储介质(诸如文件服务器中的硬盘驱动器等)上捕获编码视频数据的应用的装置。
如图1所示,源装置110包括视频源112、视频编码器114和发送器116。视频源112通常包括所捕获视频帧数据(表示为113)的源,诸如摄像传感器、存储在非暂时性记录介质上的先前捕获到的视频序列、或者来自远程摄像传感器的视频馈送。视频源112也可以是计算机显卡的输出(例如,显示操作系统和在计算装置(例如,平板计算机)上执行的各种应用的视频输出)。可以包括摄像传感器作为视频源112的源装置110的示例包括智能电话、视频摄录机、专业摄像机和网络视频照相机。
如进一步参考图3所述,视频编码器114将来自视频源112的(由箭头113指示的)所捕获帧数据转换(或“编码”)成(由箭头115指示的)位流。视频编码器114使用VVC的编码工具(或‘档次’)的特定集合来编码所捕获的帧数据113。使用嵌入在位流115的“视频参数集”(VPS)或“序列参数集”(SPS)中的“profile_tier_level”句法结构将使用哪个档次的指示编码到位流115中。SPS句法结构也被命名为“seq_parameter_set_rbsp()”,并且VPS句法结构也被命名为“video_parameter_set_rbsp()”。另外,还可以使用作为前述profile_tier_level句法结构的一部分的“general_constraint_info”句法结构将对所使用的编码工具集的进一步约束编码到位流115中。缩放列表、用于ALF的滤波器以及用于LMCS的参数在一个或多于一个“自适应参数集”(APS)中发送。各个APS包括用于由相应APS中的“aps_params_type”句法元素标识的这三个工具之一的参数。
位流115由发送器116经由通信通道120作为编码视频数据(或“编码视频信息”)进行发送。位流115在一些实现中可以存储在诸如“闪速”存储器或硬盘驱动器等的非暂时性存储装置122中,直到随后通过通信通道120发送或者作为通过通信通道120的发送的代替为止。例如,经编码视频数据可以在需要时经由广域网(WAN)供应给顾客以用于视频流式传输应用。
目的地装置130包括接收器132、视频解码器134和显示装置136。接收器132从通信通道120接收编码视频数据并将所接收到的视频数据作为(由箭头133指示的)位流传递至视频解码器134。然后,视频解码器134将(由箭头135指示的)经解码的帧数据输出至显示装置136以供作为视频显示。经解码的帧数据135具有与帧数据113相同的色度格式。显示装置136的示例包括阴极射线管、液晶显示器(诸如在智能电话、平板计算机、计算机监视器、或者单机型电视机中等)。也可以将源装置110和目的地装置130各自的功能体现在单个装置中,该单个装置的示例包括移动电话手机和平板计算机。经解码帧数据可在呈现给用户之前进一步变换。例如,可以使用投影格式从经解码帧数据渲染具有特定纬度和经度的“视口”以表示场景的360°视图。
尽管以上说明了示例装置,但源装置110和目的地装置130各自通常经由硬件组件和软件组件的组合可以配置在通用计算机系统内。图2A示出这种计算机系统200,该计算机系统200包括:计算机模块201;诸如键盘202、鼠标指示器装置203、扫描器226、可被配置为视频源112的照相机227、以及麦克风280等的输入装置;以及包括打印机215、可被配置为显示装置136的显示装置214、以及扬声器217的输出装置。计算机模块201可以使用外部调制器-解调器(调制解调器)收发器装置216来经由接线221与通信网络220进行通信。可以表示通信通道120的通信网络220可以是WAN,诸如因特网、蜂窝电信网络或私有WAN等。在接线221是电话线的情况下,调制解调器216可以是传统的“拨号上网”调制解调器。可替代地,在接线221是高容量(例如,线缆或光学的)接线的情况下,调制解调器216可以是宽带调制解调器。还可以使用无线调制解调器来进行向通信网络220的无线连接。收发器装置216可以提供发送器116和接收器132的功能,并且通信通道120可以体现在接线221中。
计算机模块201通常包括至少一个处理器单元205和存储器单元206。例如,存储器单元206可以具有半导体随机存取存储器(RAM)和半导体只读存储器(ROM)。计算机模块201还包括多个输入/输出(I/O)接口,其中这多个输入/输出(I/O)接口包括:音频-视频接口207,其连接至视频显示器214、扬声器217和麦克风280;I/O接口213,其连接至键盘202、鼠标203、扫描器226、照相机227以及可选的操纵杆或其他人机接口装置(未示出);以及外部调制解调器216和打印机215所用的接口208。从音频-视频接口207向计算机监视器214的信号通常是计算机显卡的输出。在一些实现中,调制解调器216可以内置于计算机模块201内,例如内置于接口208内。计算机模块201还具有本地网络接口211,其中该本地网络接口211允许计算机系统200经由接线223连接至已知为局域网(LAN)的局域通信网络222。如图2A所示,局域通信网络222还可以经由接线224连接至广域网220,其中该局域通信网络222通常包括所谓的“防火墙”装置或具有相似功能的装置。本地网络接口211可以包括以太网(EthernetTM)电路卡、蓝牙(BluetoothTM)无线布置或IEEE 802.11无线布置;然而,对于接口211,可以实践多种其他类型的接口。本地网络接口211还可以提供发送器116和接收器132的功能,并且通信通道120也可以体现在局域通信网络222中。
I/O接口208和213可以提供串行连接和并行连接中的任一个或这两者,其中前者通常根据通用串行总线(USB)标准来实现并且具有相应的USB连接器(未示出)。设置有存储装置209,并且存储装置209通常包括硬盘驱动器(HDD)210。还可以使用诸如软盘驱动器和磁带驱动器等的其他存储装置(未示出)。通常设置有光盘驱动器212以用作数据的非易失性源。可以使用例如光盘(例如,CD-ROM、DVD、蓝光盘(Blu ray DiscTM))、USB-RAM、便携式外部硬盘驱动器和软盘等的便携式存储器装置作为针对计算机系统200的数据的适当源。通常,HDD 210、光盘驱动器212、网络220和222中的任意还可被配置成作为视频源112进行工作、或者作为为了经由显示器214进行再现所要存储的解码视频数据的目的地而进行工作。系统100的源装置110和目的地装置130可以体现在计算机系统200中。
计算机模块201的组件205-213通常经由互连总线204并且以得到相关领域技术人员已知的计算机系统200的传统操作模式的方式进行通信。例如,处理器205使用接线218连接至系统总线204。同样,存储器206和光盘驱动器212通过接线219连接至系统总线204。可以实践所述布置的计算机的示例包括IBM-PC和兼容机、Sun SPARCstation、Apple MacTM或相似的计算机系统。
在适当或期望的情况下,可以使用计算机系统200来实现视频编码器114和视频解码器134以及以下所述的方法。特别地,可以将视频编码器114、视频解码器134和要说明的方法作为在计算机系统200内可执行的一个或多于一个软件应用程序233来实现。特别地,利用软件233中的在计算机系统200内执行的指令231(参见图2B)来实现视频编码器114、视频解码器134和所述方法的步骤。可以将软件指令231形成为各自用于进行一个或多于一个特定任务的一个或多于一个代码模块。还可以将软件分割成两个单独部分,其中第一部分和相应的代码模块进行所述方法,并且第二部分和相应的代码模块管理第一部分和用户之间的用户界面。
例如,可以将软件存储在包括以下所述的存储装置的计算机可读介质中。将软件从计算机可读介质载入计算机系统200,然后由计算机系统200来执行。具有这样的软件的计算机可读介质或者该计算机可读介质上所记录的计算机程序是计算机程序产品。在计算机系统200中使用该计算机程序产品优选地实现了用于实施视频编码器114、视频解码器134和所述方法的有利设备。
通常将软件233存储在HDD 210或存储器206中。将该软件从计算机可读介质载入计算机系统200,并且由计算机系统200来执行。因而,例如,可以将软件233存储在光盘驱动器212所读取的光学可读盘存储介质(例如,CD-ROM)225上。
在一些实例中,将应用程序233以编码在一个或多于一个CD-ROM 225上并且经由相应的驱动器212进行读取的方式供给至用户,或者可替代地,可以由用户从网络220或222读取应用程序233。更进一步地,还可以将软件从其他计算机可读介质载入计算机系统200。计算机可读存储介质是指将所记录的指令和/或数据提供至计算机系统200以供执行和/或处理的任何非暂时性有形存储介质。这种存储介质的示例包括软盘、磁带、CD-ROM、DVD、蓝光盘(Blu-ray DiscTM)、硬盘驱动器、ROM或集成电路、USB存储器、磁光盘、或者诸如PCMCIA卡等的计算机可读卡等,而与这些装置在计算机模块201的内部还是外部无关。还可以参与将软件、应用程序、指令和/或视频数据或编码视频数据提供至计算机模块401的暂时性或非有形计算机可读传输介质的示例包括:无线电或红外线传输通道及向着其他计算机或联网装置的网络接线、以及包括电子邮件发送和网站上所记录的信息等的因特网或内联网。
可以执行上述的应用程序233的第二部分和相应的代码模块来实现要绘制或以其他方式呈现在显示器214上的一个或多于一个图形用户界面(GUI)。通过典型地对键盘202和鼠标203进行操作,计算机系统200的用户和应用可以以在功能上可适用的方式对界面进行操作,以将控制命令和/或输入提供至与这些(一个或多于一个)GUI相关联的应用。还可以实现在功能上可适用的其他形式的用户界面,诸如利用经由扬声器217所输出的语音提示和经由麦克风280所输入的用户声音命令的音频界面等。
图2B是处理器205和“存储器”234的详细示意框图。存储器234表示图2A中的计算机模块201可以访问的(包括HDD 209和半导体存储器206的)所有存储器模块的逻辑聚合。
在初始对计算机模块201通电的情况下,执行上电自检(power-on self-test,POST)程序250。通常将POST程序250存储在图2A的半导体存储器206的ROM249中。有时将诸如存储有软件的ROM 249等的硬件装置称为固件。POST程序250检查计算机模块201内的硬件以确保适当工作,并且通常检查处理器205、存储器234(209,206)和通常还存储在ROM249中的基本输入-输出系统软件(BIOS)模块251,以进行正确操作。一旦POST程序250成功运行,BIOS251启动图2A的硬盘驱动器210。启动硬盘驱动器210使得经由处理器205执行驻留在硬盘驱动器210上的引导装入程序252。这样将操作系统253载入RAM存储器206,其中在该RAM存储器206上,操作系统253开始工作。操作系统253是处理器205可执行的系统级应用,以实现包括处理器管理、存储器管理、装置管理、存储管理、软件应用接口和通用用户界面等的各种高级功能。
操作系统253管理存储器234(209,206),以确保计算机模块201上运行的各处理或应用具有在不会与分配至其他处理的内存冲突的情况下执行的充足内存。此外,必须适当使用图2A的计算机系统200中可用的不同类型的存储器,以使得各处理可以高效地运行。因此,聚合存储器234并不意图例示如何分配存储器的特定分段(除非另外说明),而是提供计算机系统200可访问的存储器的概述图以及如何使用该存储器。
如图2B所示,处理器205包括多个功能模块,其中这多个功能模块包括控制单元239、算术逻辑单元(ALU)240和有时称为高速缓冲存储器的本地或内部存储器248。高速缓冲存储器248在寄存器区段中通常包括多个存储寄存器244-246。一个或多于一个内部总线241从功能上使这些功能模块相互连接。处理器205通常还具有用于使用接线218经由系统总线204与外部装置进行通信的一个或多于一个接口242。存储器234使用接线219连接至总线204。
应用程序233包括可以包含条件分支指令和循环指令的指令序列231。程序233还可以包括执行程序233时所使用的数据232。将指令231和数据232分别存储在存储器位置228、229、230和235、236、237中。根据指令231和存储器位置228-230的相对大小,如存储器位置230中示出的指令所描述的,可以将特定指令存储在单个存储器位置中。可选地,如存储器位置228和229中示出的指令段所描述的,可以将指令分割成各自被存储在单独的存储器位置的多个部分。
通常,向处理器205赋予一组指令,其中在该处理器205内执行该组指令。处理器205等待随后输入,其中处理器205通过执行另一组指令来对该随后输入作出反应。可以从多个源中的一个或多于一个源提供各输入,其中该输入包括输入装置202、203中的一个或多于一个所生成的数据、从外部源经由网络220、202其中之一所接收到的数据、从存储装置206、209其中之一所检索到的数据或者从插入相应的读取器212内的存储介质225所检索到的数据(所有这些均在图2A中示出)。执行一组指令在一些情况下可能会导致输出数据。执行还可能涉及将数据或变量存储至存储器234。
视频编码器114、视频解码器134和所述方法可以使用存储器234内的相应存储器位置255、256、257中所存储的输入变量254。视频编码器114、视频解码器134和所述方法产生存储器234内的相应存储器位置262、263、264中所存储的输出变量261。可以将中间变量258存储在存储器位置259、260、266和267中。
参考图2B的处理器205,寄存器244、245、246、算术逻辑单元(ALU)240和控制单元239一起工作以进行微操作序列,其中这些微操作序列是针对构成程序233的指令集中的各指令进行“提取、解码和执行”周期所需的。各提取、解码和执行周期包括:
提取操作,用于从存储器位置228、229、230提取或读取指令231;
解码操作,其中在该解码操作中,控制单元239判断提取了哪个指令;以及
执行操作,其中在该执行操作中,控制单元239和/或ALU 240执行该指令。
之后,可以执行针对下一指令的进一步提取、解码和执行周期。同样,可以进行存储周期,其中通过该存储周期,控制单元239将值存储至或写入存储器位置232。
要说明的图10和图11的方法中的各步骤或子处理与程序233的一个或多于一个区段相关联,并且通常通过处理器205中的寄存器部244、245、247、ALU 240和控制单元239一起工作以针对程序233的所述分段的指令集中的各指令进行提取、解码和执行周期,来进行该步骤或子处理。
图3是示出视频编码器114的功能模块的示意框图。图4是示出视频解码器134的功能模块的示意框图。通常,数据以样本或系数的组(诸如块向固定大小的子块的分割等)或者作为阵列在视频编码器114和视频解码器134内的功能模块之间传递。如图2A和2B所示,可以使用通用计算机系统200来实现视频编码器114和视频解码器134,其中可以利用计算机系统200内的专用硬件、利用计算机系统200内可执行的软件(诸如驻留在硬盘驱动器205上并且由处理器205控制其执行的软件应用程序233的一个或多于一个软件代码模块等),来实现各种功能模块。可替代地,可以利用在计算机系统200内可执行的专用硬件和软件的组合来实现视频编码器114和视频解码器134。可以可替代地在诸如进行所述方法的功能或子功能的一个或多于一个集成电路等的专用硬件中实现视频编码器114、视频解码器134和所述方法。这种专用硬件可以包括图形处理单元(GPU)、数字信号处理器(DSP)、专用标准产品(ASSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者一个或多于一个微处理器和关联存储器。特别地,视频编码器114包括模块310-390,并且视频解码器134包括模块420-496,其中这些模块各自可被实现为软件应用程序233的一个或多于一个软件代码模块。
尽管图3的视频编码器114是通用视频编码(VVC)视频编码流水线的示例,但也可以使用其他视频编解码器来进行本文描述的处理阶段。视频编码器114接收捕获的帧数据113,诸如一系列帧,各个帧包括一个或多于一个颜色通道。帧数据113可以是任何色度格式,例如4:0:0、4:2:0、4:2:2或4:4:4色度格式。块分区器310首先将帧数据113分割成CTU,CTU通常形状为正方形且被配置使得使用CTU的特定大小。例如,CTU的最大启用大小可以是由“序列参数集”中存在的“sps_log2_ctu_size_minus5”句法元素配置的32×32、64×64或128×128个亮度样本。CTU大小还提供最大CU大小,因为没有进一步拆分的CTU将包含一个CU。块分区器310还根据亮度编码树或色度编码树将各个CTU分割成一个或多于一个CB。亮度通道还可以被称为主要颜色通道。各个色度通道还可以被称为次要颜色通道。CB具有各种大小,并且可以包括正方形和非正方形纵横比这两者的。参考图10进一步描述块分区器310的操作。然而,在VVC标准中,CB、CU、PU和TU总是具有2的幂的边长。因此,根据CTU的亮度编码树和色度编码树,根据CTU的一个或多于一个块上的迭代行进,从块分区器310输出表示为312的当前CB。下文参考图5和图6来进一步说明用于将CTU分区成CB的选项。尽管操作大体上是以CTU为单位描述的,但视频编码器114和视频解码器134可以在较小大小的区域上操作以减少存储器消耗。例如,各个CTU可以被分割成较小的区域,被称为大小为64×64的“虚拟流水线数据单元”(VPDU)。VPDU形成对于硬件架构中的流水线处理而言更适合修正的数据粒度,其中,与对完整CTU的操作相比,存储器占用面积的减少减小了硅面积并且因此减小了成本。当CTU大小为128×128时,对允许的编码树的限制就位,以确保在进行到下一VPDU之前完全完成一个VPDU的处理。例如,在128×128CTU的编码树的根节点处,禁止三元拆分,因为不能以从一个64×64区域到后续64×64区域的所需进展来处理所得到的CU(诸如32×128/128×32或其进一步分解)。当CTU大小为64×64时,无论编码器选择的编码树如何,处理都必须在前进到下一64×64区域之前完成一个64×64区域,即从一个CTU到下一CTU。
可按光栅扫描顺序扫描由帧数据113的第一次分割得到的CTU,并且可以将其分组成一个或多于一个“条带”。条带可以是“帧内”(或“I”)条带。帧内条带(I条带)指示条带中的每个CU是帧内预测的。替代地,条带可以是单预测或双预测的(分别为“P”或“B”条带),分别指示条带中单预测和双预测的附加可用性。
在I条带中,各个CTU的编码树可以在64×64层级以下发散成两个单独的编码树,一个用于亮度而另一个用于色度。使用单独的树允许不同的块结构存在于CTU的亮度64×64区域内的亮度与色度之间。例如,大的色度CB可与许多较小的亮度CB并置,反之亦然。在P或B条带中,CTU的单个编码树定义亮度和色度共同的块结构。单个树的所得块可以是帧内预测或帧间预测的。
对于各个CTU,视频编码器114在两个阶段中操作。在第一阶段(称为“搜索”阶段)中,块分区器310测试编码树的各种潜在配置。编码树的各个潜在配置具有相关联的“候选”CB。第一阶段涉及测试各种候选CB以选择提供相对高的压缩效率和相对低的失真的CB。测试通常涉及拉格朗日优化,由此基于速率(编码成本)和失真(相对于输入帧数据113的误差)的加权组合来评估候选CB。选择“最佳”候选CB(具有最低评估速率/失真的CB)用于随后编码到位流115中。包括在候选CB的评估中是如下选项:针对给定区域使用CB,或者根据各种拆分选项来拆分进一步区域并利用进一步的CB对各个较小的所得区域进行编码,或者甚至进一步拆分区域。因此,在搜索阶段中选择编码树和CB这两者本身。
视频编码器114针对各CB(例如,CB 312)产生由箭头320指示的预测块(PB)。PB320是关联的CB 312的内容的预测。减法器模块322产生PB 320和CB 312之间的表示为324的差(或“残差”,其是指差在空间域中)。差324是PB 320和CB 312中的相应样本之间的块大小差。差324被变换、量化和表示为由箭头336指示的变换块(TB)。PB 320以及关联的TB 336通常例如基于所评估的成本或失真而选自多个可能的候选CB其中之一。
候选编码块(CB)是从视频编码器114针对关联的PB和所得到的残差可用的预测模式其中之一得到的CB。当与视频解码器114中的预测PB组合时,TB 336以位流中的附加信号通知为代价来减少经解码CB和原始CB 312之间的差。
因而,各候选编码块(CB,即与变换块(TB)相结合的预测块(PB))均具有关联的编码成本(或“速率”)和关联的差(或“失真”)。CB的失真通常被估计为样本值的差,诸如绝对差和(SAD)或平方差和(SSD)等。模式选择器386使用差324可以确定从各候选PB得到的估计,以确定预测模式387。预测模式387指示针对当前CB使用特定预测模式(例如,帧内预测或帧间预测)的决定。可以以与残差的熵编码相比明显更低的成本来进行与各候选预测模式相关联的编码成本和相应的残差编码的估计。因此,即使在实时视频编码器中,也可以评估多个候选模式,以确定率失真意义上的最佳模式。
确定率失真方面的最佳模式通常是使用拉格朗日优化的变形来实现的。
可以采用拉格朗日或类似的优化处理来进行(利用块分区器310的)CTU向CB的最佳分区的选择以及从多个可能性中的最佳预测模式的选择这两者。通过将候选模式的拉格朗日优化处理应用在模式选择器模块386中,选择成本测量最低的帧内预测模式作为最佳模式。最低成本模式包括所选择的次要变换索引388,其也由熵编码器338编码到位流115中。
在视频编码器114的操作的第二阶段(称为“编码”阶段)中,在视频编码器114中进行对各个CTU的(一个或多于一个)所确定编码树的迭代。对于使用单独树的CTU,针对CTU的每个64×64亮度区域,首先对亮度编码树进行编码,随后对色度编码树进行编码。在亮度编码树内仅亮度CB被编码,并且在色度编码树内仅色度CB被编码。对于使用共用树的CTU,单个树根据共用树的公共块结构来描述CU,即,亮度CB和色度CB。
熵编码器338支持句法元素的可变长度编码和句法元素的算术编码这两者。诸如“参数集”等的位流的部分(例如,序列参数集(SPS)和图片参数集(PPS))使用固定长度码字和可变长度码字的组合。条带(也称为连续部分)具有使用可变长度编码的条带头部,随后是使用算术编码的条带数据。条带头部限定当前条带特有的参数,诸如条带级量化参数偏移等。条带数据包括条带中的各个CTU的句法元素。使用可变长度编码和算术编码需要在位流的各个部分内的顺序解析。可以用起始码描述这些部分以形成“网络抽象层单元”或“NAL单元”。使用上下文自适应二进制算术编码处理来支持算术编码。算术编码的句法元素由一个或多于一个“bin(二进制文件)”的序列组成。与位一样,bin的值为“0”或“1”。然而,bin未作为离散位编码到位流115中。bin具有关联预测(或“可能”或“最大概率”)值和关联概率(被称为“上下文”)。当要编码的实际bin与预测值匹配时,对“最大概率符号”(MPS)进行编码。对最大概率符号进行编码到位流115中的消耗位(包括总计小于一个离散位的成本)方面相对便宜。当要编码的实际bin与可能值不匹配时,对“最小概率符号”(LPS)进行编码。对最小概率符号进行编码在消耗位方面具有相对高的成本。bin编码技术使得能够使“0”vs“1”的概率歪斜的bin进行高效编码。对于具有两个可能值的句法元素(即,“flag(标志)”),单个bin就足够了。对于具有许多可能值的句法元素,需要bin的序列。
可以基于序列中的较早bin的值来确定序列中较晚bin的存在。另外,各个bin可以与多于一个上下文相关联。特定上下文的选择可以取决于句法元素中的较早bin、相邻句法元素(即,来自相邻块的相邻句法元素)的bin等。每次对上下文编码bin进行编码时,针对bin(如果存在)选择的上下文以反映新bin值的方式来更新。因此,二进制算术编码方案被称为是自适应的。
视频编码器114也支持缺少上下文的bin(“旁路bin”)。假定“0”和“1”之间的等概率分布来对旁路bin进行编码。因此,各个bin占据位流115中的一位的编码成本。不存在上下文节省了内存并降低了复杂度,因而使用特定bin的值的分布未歪斜的旁路bin。采用上下文和自适应的熵编码器的一个示例在本领域中被称为CABAC(上下文自适应二进制算术编码器),并且在视频编码中采用了该编码器的许多变体。
熵编码器338使用上下文编码的bin和旁路编码的bin的组合来编码量化参数392,并且如果用于当前CB,则编码LFNST索引388。量化参数392是使用“增量QP”编码的。在称为“量化组”的各个区域中,最多用信号通知一次增量QP。量化参数392被应用于亮度CB的残差系数。经调整的量化参数被应用于并置的色度CB的残差系数。经调整的量化参数可以包括根据映射表及选自偏移列表的CU层级偏移而从亮度量化参数392进行映射。当与变换块相关联的残差仅在经受通过应用次要变换而变换成主系数的那些系数位置中包括有效残差系数时,用信号通知次要变换索引388。
多路复用器模块384根据选自所测试的各个候选CB的测试预测模式中的所确定的最佳帧内预测模式,从帧内预测模块364输出PB 320。候选预测模式无需包括视频编码器114所支持的每个可设想预测模式。帧内预测分为三种类型。“DC帧内预测”涉及用表示附近重建样本的平均值的单个值来填充PB。“平面帧内预测”涉及用根据平面的样本来填充PB,其中,DC偏移以及垂直和水平梯度从附近的重建的相邻样本导出。附近的重建样本通常包括在当前PB之上的一行重建样本(向PB的右侧延伸一定程度)和在当前PB的左侧的一列重建样本(向PB之外向下延伸一定程度)。“角度帧内预测”涉及利用重建的相邻样本来填充PB,该重建的相邻样本被滤波并且在特定方向(或“角度”)上跨PB传播。在VVC中,支持65个角度,其中矩形块能够利用正方形块所不可用的额外角度来产生总共87个角度。第四类型的帧内预测可用于色度PB,从而根据“跨分量线性模型”(CCLM)模式从并置的亮度重建样本来生成PB。三种不同的CCLM模式是可用的,各个模式使用从相邻的亮度和色度样本导出的不同模型。所导出的模型用以从并置的亮度样本生成用于色度PB的样本块。
在先前重建的样本不可用的情况下(例如,在帧的边缘处),使用样本范围的一半的默认半色调值。例如,对于10位视频,使用512的值。由于没有先前样本可用于位于帧的左上位置处的CB,因此角度和平面帧内预测模式产生与DC预测模式相同的输出,即具有半色调值作为幅度的样本的平坦平面。
对于帧间预测,通过运动补偿模块380使用来自按位流中的编码帧的顺序在当前帧之前的一个或两个帧的样本来产生预测块382并且由多路复用器模块384输出为PB 320。此外,对于帧间预测,单个编码树通常用于亮度通道和色度通道这两者。位流中的编码帧的顺序可以与捕获或显示时的帧的顺序不同。当一个帧用于预测时,该块被称为“单预测”并且具有两个关联的运动矢量。当两个帧用于预测时,该块被称为“双预测”并且具有两个关联的运动矢量。对于P条带,各个CU可以是帧内预测或单预测。对于B条带,各个CU可以是帧内预测、单预测或双预测。通常使用“图片组”结构对帧进行编码,从而实现帧的时间层级。帧可以被分割成多个条带,各个条带编码帧的一部分。帧的时间层级允许帧按照显示帧的顺序参考先前和后续的图片。以确保满足解码各个帧的依赖关系所需的顺序对图像进行编码。
根据运动矢量378和参考图片索引来选择样本。运动矢量378和参考图片索引适用于所有颜色通道,因此主要就对PU而不是PB的操作方面来描述帧间预测,即,使用单个编码树来描述将各个CTU分解成一个或多于一个帧间预测块。帧间预测方法可以在运动参数的数量及其精度方面变化。运动参数通常包括参考帧索引,其指示将使用来自参考帧列表的哪个(哪些)参考帧加上各个参考帧的空间平移,但可以包括更多帧、特殊帧、或复杂仿射参数(诸如缩放和旋转等)。另外,可以应用预定的运动细化处理以基于参考样本块生成密集运动估计。
在确定并选择了PB 320、并在减法器322处从原始样本块中减去了PB 320的情况下,获得表示为324的编码成本最低的残差并对该残差进行有损压缩。有损压缩处理包括变换、量化和熵编码的步骤。正向主要变换模块326对差324应用正向变换,从而将差324从空间阈转换到频率域并且产生由箭头328表示的主要变换系数。一维中的最大主要变换大小是由序列参数集中的“sps_max_luma_transform_size_64_flag”配置的32点DCT-2或64点DCT-2变换。如果正编码的CB大于表示为块大小的最大支持主要变换大小(例如,64×64或32×32),则以区块方式应用主要变换326以变换差324的所有样本。在使用非正方形CB的情况下,还使用CB的各维度中的最大可用变换大小来进行区块化。例如,当使用32的最大变换大小时,64×16CB使用以区块方式布置的两个32×16主要变换。当CB的大小大于最大支持变换大小时,以区块方式用TB填充CB。例如,以2×2布置用四个64×64TB来填充具有64-pt变换最大大小的128×128CB。以2×4布置用八个32×32TB来填充具有32-pt变换最大大小的64×128CB。
变换326的应用得到CB的多个TB。在各个变换应用在比32×32大(例如,64×64)的差324的TB上操作的情况下,在TB的左上32×32区域之外的所有得到的主要变换系数328被设置为零,即丢弃。剩余的主要变换系数328被传递至量化器模块334。根据与CB相关联的量化参数392量化主要变换系数328以产生主要变换系数332。除了量化参数392之外,量化器模块334还可以应用“缩放列表”,以通过根据残差系数在TB内的空间位置进一步缩放残差系数来允许TB内的非均匀量化。量化参数392可以针对亮度CB相对于各个色度CB而不同。通过进行不可分离的次要变换(NSST)操作或绕过次要变换,将主要变换系数332传递到正向次要变换模块330以产生由箭头336表示的变换系数。正向主要变换通常是可分离的,变换各个TB的一组行,然后变换一组列。对于宽度和高度不超过16个样本的亮度TB,正向主要变换模块326在水平和垂直方向上使用II型离散余弦变换(DCT-2),或者在水平和垂直方向上绕过变换,或者在水平或垂直方向上使用VII型离散正弦变换(DST-7)和VIII型离散余弦变换(DCT-8)的组合。DST-7和DCT-8的组合的使用在VVC标准中被称为“多变换选择集合”(MTS)。
模块330的正向次要变换通常为不可分离变换,其仅应用于经帧内预测CU的残差且仍可被绕过。正向次要变换对16个样本(被布置为主要变换系数328的左上4×4子块)或48个样本(被布置为主要变换系数328的左上8×8系数中的三个4×4子块)进行操作以产生次要变换系数集合。次要变换系数集合的数量可以少于导出其的主要变换系数集合的数量。由于次要变换仅应用于彼此相邻并包括DC系数的系数集合,因此次要变换被称为“低频不可分离的次要变换”(LFNST)。此外,当应用LFNST时,TB中的所有剩余系数必须在主要变换域和次要变换域两者中都为零。
量化参数392对于给定TB是恒定的,并且因此得到针对TB的主要变换域的产生的残差系数的均匀缩放。量化参数392可以通过用信号通知的“增量量化参数”定期地变化。对于包含在给定区域内的CU(称为“量化组”),用信号通知增量量化参数(增量QP)一次。如果CU大于量化组大小,则通过CU的TB之一用信号通知增量QP一次。也就是说,针对CU的第一量化组,熵编码器338用信号通知增量QP一次,并且针对CU的任何后续量化组,不用信号通知增量QP。通过应用“量化矩阵”也可以实现非均匀缩放,由此应用于各个残差系数的缩放因子从量化参数392与缩放矩阵中的相应条目的组合导出。缩放矩阵可以具有小于TB的大小的大小,并且当应用于TB时,最近邻方法用于从大小小于TB大小的缩放矩阵提供针对各个残差系数的缩放值。残差系数336供给至熵编码器338以在位流115中编码。通常,根据扫描图案,扫描TU的具有至少一个有效残差系数的各个TB的残差系数以产生值的有序列表。扫描图案通常将TB扫描为4×4“子块”的序列,从而以4×4组残差系数的粒度提供常规扫描操作,其中子块的布置取决于TB的大小。各个子块内的扫描和从一个子块到下一子块的进展通常遵循后向对角线扫描图案。另外,量化参数392使用增量QP句法元素被编码到位流115中,并且次要变换索引388被编码到位流115中。
如上文所描述的,视频编码器114需要访问与在视频解码器134中看到的经编码帧表示相对应的帧表示。因而,残差系数336通过逆次要变换模块344(根据次要变换系数388操作)以产生由箭头342表示的中间逆变换系数。中间逆变换系数346根据量化参数392由去量化模块340逆量化以产生由箭头346表示的残差样本。去量化模块340还可以使用缩放列表进行残差系数的逆非均匀缩放,对应于量化器模块334中进行的正向缩放。中间逆变换系数346被传递到逆主要变换模块348以产生TU的由箭头350表示的残差样本。逆主要变换模块348水平地和垂直地应用受如参考正向主要变换模块326所描述的最大可用变换大小的约束的DCT-2变换。由逆次要变换模块344进行的逆变的换类型与由正向次要变换模块330进行的正向变换的类型相对应。由逆主要变换模块348进行的逆变换的类型与由主要变换模块326进行的主要变换的类型相对应。求和模块352将残差样本350与PU 320相加以产生CU的重建样本(由箭头354指示)。
重建样本354被传递到参考样本高速缓冲存储器356和环内滤波器模块368。通常使用ASIC上的静态RAM实现(因此避免了昂贵的片外存储器访问)的参考样本高速缓冲存储器356提供了满足用于为帧中的后续CU生成帧内PB的依赖关系所需的最小样本存储。最小依赖关系通常包括沿着一行CTU的下方的样本的“线缓冲器”,以供下一行CTU以及范围由CTU的高度设置的列缓冲使用。参考样本高速缓冲存储器356将参考样本(由箭头358表示)供给至参考样本滤波器360。样本滤波器360应用平滑操作以产生滤波参考样本(由箭头362指示)。滤波参考样本362由帧内预测模块364使用以产生由箭头366表示的样本的帧内预测块。对于各候选帧内预测模式,帧内预测模块364产生样本块即366。样本块366由模块364使用诸如DC、平面或角度帧内预测等的技术来生成。
环内滤波器模块368对重建样本354应用数个滤波阶段。滤波阶段包括“去块滤波器”(DBF),该DBF应用与CU边界对齐的平滑化,以减少由不连续而产生的伪影。环内滤波器模块368中存在的另一滤波阶段是“自适应环路滤波器”(ALF),该ALF应用基于Wiener的自适应滤波器以进一步降低失真。环内滤波器模块368中的另一可用滤波阶段是“样本自适应偏移”(SAO)滤波器。SAO滤波器通过首先将重建样本分类为一个或多于一个类别、并且根据所分配的类别在样本水平应用偏移来工作。
从环内滤波器模块368输出由箭头370表示的滤波样本。滤波样本370被存储在帧缓冲器372中。帧缓冲器372通常具有存储数个(例如,多达16个)图片的容量,因而存储在存储器206中。由于所需的大存储器消耗,因此帧缓冲器372通常不使用片上存储器来存储。如此,对帧缓冲器372的访问在存储器带宽方面是昂贵的。帧缓冲器372将参考帧(由箭头374表示)提供至运动估计模块376和运动补偿模块380。
运动估计模块376估计多个“运动矢量”(表示为378),其各自是相对于当前CB的位置的笛卡尔空间偏移,从而参考帧缓冲器372中的参考帧其中之一中的块。针对各运动矢量产生参考样本的滤波块(表示为382)。滤波参考样本382形成可供模式选择器386的潜在选择用的进一步候选模式。此外,对于给定CU,PB 320可以使用一个参考块(“单预测”)形成,或者可以使用两个参考块(“双预测”)形成。对于所选择的运动矢量,运动补偿模块380根据支持运动矢量中的子像素精度的滤波处理来产生PB 320。如此,运动估计模块376(其对许多候选运动矢量进行操作)与运动补偿模块380(其仅对所选择的候选进行操作)相比可以进行简化滤波处理,以实现降低的计算复杂度。当视频编码器114针对CU选择帧间预测时,运动矢量378被编码到位流115中。
尽管参考通用视频编码(VVC)说明了图3的视频编码器114,但其他视频编码标准或实现也可以采用模块310-390的处理阶段。帧数据113(和位流115)也可以从存储器206、硬盘驱动器210、CD-ROM、蓝光盘(Blue-ray diskTM)或其他计算机可读存储介质中读取(或者被写入存储器206、硬盘驱动器210、CD-ROM、蓝光盘或其他计算机可读存储介质)。另外,帧数据113(和位流115)可以从外部源(诸如连接至通信网络220的服务器或者射频接收器等)接收(或者被发送至该外部源)。通信网络220可以提供有限的带宽,从而需要在视频编码器114中使用速率控制以避免在帧数据113难以压缩时使网络饱和。此外,可以从表示帧数据113的空间部分(CTU集合)的一个或多于一个条带构建位流115,这些条带由视频编码器114的一个或多于一个实例产生、在处理器205的控制下以协调方式操作。在本发明的上下文下,条带还可被称为位流的“连续部分”。条带在位流内是连续的,并且(例如如果正使用并行处理)可编码或解码为单独部分。
在图4中示出视频解码器134。尽管图4的视频解码器134是通用视频编码(VVC)视频解码流水线的示例,但其他视频编解码器也可用于进行本文所述的处理阶段。如图4所示,位流133被输入到视频解码器134。位流133可以从存储器206、硬盘驱动器210、CD-ROM、蓝光盘TM或其他非暂时性计算机可读存储介质中读取。可替代地,位流133可以从外部源(诸如连接至通信网络220的服务器或者射频接收器等)接收。位流133包含表示要解码的所捕获帧数据的编码句法元素。
位流133被输入到熵解码器模块420。熵解码器模块420通过解码“bin”序列来从位流133中提取句法元素,并将句法元素的值传递到视频解码器134中的其他模块。熵解码器模块420使用可变长度和固定长度解码来解码SPS、PPS或条带头部,使用算术解码引擎来将条带数据的句法元素解码为一个或多于一个bin的序列。各个bin可以使用一个或多于一个“上下文”,其中上下文描述用于为bin编码“一”和“零”值的概率水平。在多个上下文可用于给定bin的情况下,进行“上下文建模”或“上下文选择”步骤以选择可用上下文之一来解码bin。对bin进行解码的处理形成了一个顺序反馈循环,因此,各个条带的条带整体可以由给定的熵解码器420实例解码。单个(或几个)高执行熵解码器420实例可以从位流115中解码帧的所有条带,多个低执行熵解码器420实例可以同时从位流133中解码帧的条带。
熵解码器模块420应用算术编码算法,例如“上下文自适应二进制算术编码”(CABAC),以从位流133解码句法元素。所解码的句法元素用于重建视频解码器134内的参数。参数包括残差系数(由箭头424表示)、量化参数474、次要变换索引470以及诸如帧内预测模式等的模式选择信息(由箭头458表示)。模式选择信息还包括诸如运动矢量等的信息、以及各CTU向一个或多于一个CB的分区。参数用于通常与来自先前解码的CB的样本数据组合生成PB。
残差系数424被传递到逆次要变换模块436,其中根据次要变换索引应用次要变换或不进行操作(旁路)。逆次要变换模块436从次要变换域系数产生重建变换系数432,即主要变换域系数。重建变换系数432被输入到去量化器模块428。去量化器模块428对残差系数432进行逆量化(或“缩放”),即,在主要变换系数域中,以根据量化参数474创建由箭头440表示的重建中间变换系数。去量化器模块428还可以应用缩放矩阵以提供TB内的非均匀去量化,对应于去量化器模块340的操作。如果在位流133中指示使用非均匀逆量化矩阵,则视频解码器134从位流133读取量化矩阵作为缩放因子序列,并且根据将缩放因子排列成矩阵。逆缩放将量化矩阵与量化参数组合使用以创建重建中间变换系数440。
重建变换系数440被传递到逆主要变换模块444。模块444将系数440从频率域变换回到空间域。逆主要变换模块444水平地和垂直地应用受如参考正向主要变换模块326描述的最大可用变换大小约束的逆DCT-2变换。模块444的操作的结果是由箭头448表示的残差样本的块。残差样本448的块在大小上等于相应的CB。残差样本448的块被供给至求和模块450。在求和模块450处,将残差样本448加到解码PB(表示为452),以产生由箭头456表示的重建样本的块。重建样本456被供给至重建样本高速缓冲存储器460和环内滤波模块488。环内滤波模块488产生表示为492的帧样本的重建块。帧样本492被写入帧缓冲器496。
重建样本高速缓冲存储器460以类似于视频编码器114的重建样本高速缓冲存储器356的方式操作。重建样本高速缓冲存储器460在无存储器206的情况下(例如,通过作为代替使用通常是片上存储器的数据232)为对后续CB进行帧内预测所需的重建样本提供存储。由箭头464表示的参考样本是从重建样本高速缓冲存储器460获得的,并被供给至参考样本滤波器468以产生由箭头472表示的滤波参考样本。滤波参考样本472被供给至帧内预测模块476。模块476根据在位流133中表示的并由熵解码器420解码的帧内预测模式参数458,产生由箭头480表示的帧内预测样本的块。使用诸如DC、平面或角度帧内预测等的模式来生成样本480的块。
当CB的预测模式在位流133中被指示使用帧内预测时,帧内预测样本480经由多路复用器模块484形成解码PB 452。帧内预测产生样本的预测块(PB),即,一个颜色分量中的块,其是使用同一颜色分量中的“相邻样本”导出的。相邻样本是与当前块邻近的样本,并且由于在块解码顺序中在前,因此已经被重建。在亮度块和色度块并置的情况下,亮度块和色度块可以使用不同的帧内预测模式。然而,两个色度CB共享相同的帧内预测模式。
当CB的预测模式在位流133中被指示为帧内预测时,运动补偿模块434使用运动矢量(通过熵解码器420从位流133中解码)和参考帧索引从帧缓冲器496中选择和过滤样本块498,来产生表示为438的帧间预测样本的块。样本块498是从帧缓冲器496中所存储的先前解码帧获得的。为了进行双预测,产生两个样本块并将这两个样本块混合在一起以产生解码PB 452的样本。帧缓冲器496由来自环内滤波模块488的滤波块数据492填充。与视频编码器114的环内滤波模块368一样,环内滤波模块488应用任何的DBF、ALF和SAO滤波操作。一般地,运动矢量应用于亮度和色度通道这两者,但在亮度和色度通道中用于子样本插值的滤波处理是不同的。
图5是示出通用视频编码的树结构中的区域向一个或多于一个子区域的可用分割或拆分的集合500的示意框图。如参考图3所述,集合500中示出的分割可供编码器114的块分区器310利用以根据如拉格朗日优化确定的编码树将各CTU分割成一个或多于一个CU或CB。
尽管集合500仅示出将正方形区域分割成其他可能非正方形子区域,但应当理解,集合500正示出编码树中的父节点到编码树中的子节点的潜在分割,并且未要求父节点对应于正方形区域。如果包含区域为非正方形,则根据包含块的纵横比来对从分割得到的块的尺寸进行缩放。一旦区域未被进一步拆分,即,在编码树的叶节点处,CU占据该区域。
当所得子区域达到最小CU大小(通常为4×4亮度样本)时,将区域子分割成子区域的处理必须终止。除了约束CU以禁止块区域小于预定最小大小(例如16个样本)之外,CU被约束为具有最小宽度或高度4。就宽度和高度方面或者就宽度或高度方面这两,其他最小值也是可能的。子分割处理还可以在最深分解层级之前终止,从而得到大于最小CU大小的CU。可能不发生拆分,从而得到占据整个CTU的单个CU。占据整个CTU的单个CU是最大可用编码单元大小。由于使用(诸如4:2:0等)的子采样色度格式,视频编码器114和视频解码器134的布置可以比亮度通道中更早地终止色度通道中的区域的拆分,包括在定义亮度和色度通道的块结构的共用编码树的情况下。当单独的编码树用于亮度和色度时,对可用拆分操作的约束确保16个样本的最小色度CB区域,即使这种CB与更大的亮度区域(例如,64个亮度样本)并置也是如此。
在不存在进一步子分割的情况下,在编码树的叶节点处存在CU。例如,叶节点510包含一个CU。在编码树的非叶节点处,存在向两个或多于两个其他节点的拆分,其中各节点可以是形成一个CU的叶节点、或者包含向更小区域的进一步拆分的非叶节点。在编码树的各个叶节点处,针对各个颜色通道存在一个编码块。对于亮度和色度这两者在相同深度处终止的拆分得到三个并置CB。在亮度比色度更深的深度处终止的拆分得到与色度通道的CB并置的多个亮度CB。
如图5所示,四叉树拆分512将包含区域分割成四个相等大小的区域。与HEVC相比,通用视频编码(VVC)通过附加拆分(包括水平二元拆分514和垂直二元拆分516)实现了附加的灵活性。拆分514和516各自将包含区域分割成两个相等大小的区域。分割沿着包含块内的水平边界(514)或垂直边界(516)。
在通用视频编码中通过添加三元水平拆分518和三元垂直拆分520实现了进一步的灵活性。三元拆分518和520将块分割成沿着包含区域宽度或高度的1/4和3/4在水平方向(518)或垂直方向(520)上形成界限的三个区域。四叉树、二叉树和三叉树的组合被称为“QTBTTT”。树的根包括零个或多于零个四叉树拆分(树的“QT”部分)。一旦QT部分终止,就可能发生零个或多于零个二元或三元拆分(树的“多树”或“MT”部分),最终在树的叶节点处的CB或CU中结束。在树描述了所有颜色通道的情况下,树叶节点是CU。在树描述了亮度通道或色度通道的情况下,树叶节点是CB。
与仅支持四叉树、因而仅支持正方形块的HEVC相比,QTBTTT特别是考虑到二叉树和/或三叉树拆分的可能递归应用而得到更多可能的CU大小。当仅四叉树拆分可用时,编码树深度的各个增加对应于CU大小减小到父区域的大小的四分之一。在VVC中,二元和三元拆分的可用性意味着编码树深度不再直接对应于CU区域。可以通过约束拆分选项以消除将得到小于四个样本的块宽度或高度或者将得到不是四个样本的倍数的拆分来降低异常(非正方形)块大小的可能性。通常,约束将在考虑亮度样本时适用。然而,在所上述布置中,约束也可单独应用于色度通道的块。将约束应用于色度通道的拆分选项可以针对亮度vs色度(例如,在帧数据采用4:2:0色度格式或4:2:2色度格式时)得到不同的最小块大小。各个拆分产生具有相对于包含区域不变、减半或四等分的边尺寸的子区域。然后,由于CTU大小是2的幂,因此所有CU的边尺寸也是2的幂。
图6是示出在通用视频编码中使用的QTBTTT(或“编码树”)结构的数据流600的示意流程图。将QTBTTT结构用于各CTU以定义CTU向一个或多于一个CU的分割。各CTU的QTBTTT结构由视频编码器114中的块分区器310确定,并被编码到位流115中或者由视频解码器134中的熵解码器420从位流133解码。根据图5所示的分割,数据流600进一步表现可供块分区器310将CTU分割成一个或多于一个CU用的许可组合的特征。
从层级结构的顶层开始、即在CTU处,首先进行零个或更多个四叉树分割。具体地,由块分区器310作出四叉树(QT)拆分决策610。610处的决策返回“1”符号,这表明决定根据四叉树拆分512将当前节点拆分成四个子节点。结果是诸如在620处等生成四个新节点,并且针对各新节点,递归回到QT拆分决策610。各新节点均是按光栅(或Z扫描)顺序考虑的。可替代地,如果QT拆分决策610指示不进行进一步拆分(返回“0”符号),则四叉树分区停止,并且随后考虑多树(MT)拆分。
首先,由块分区器310作出MT拆分决策612。在612处,指示进行MT拆分的决策。在决策612处返回“0”符号,这表明将不进行节点向子节点的进一步拆分。如果将不进行节点的进一步拆分,则节点是编码树的叶节点并且对应于CU。在622处输出叶节点。可替代地,如果MT拆分612指示决定进行MT拆分(返回“1”符号),则块分区器310进入方向决策614。
方向决策614将MT拆分的方向指示为水平(“H”或“0”)或垂直(“V”或“1”)。如果决策614返回指示水平方向的“0”,则块分区器310进入决策616。如果决策614返回指示垂直方向的“1”,则块分区器310进入决策618。
在决策616和618各自中,在BT/TT拆分时将MT拆分的分区数量指示为两个(二元拆分或“BT”节点)或三个(三元拆分或“TT”)。也就是说,当从614指示的方向为水平时,由块分区器310作出BT/TT拆分决策616,并且当从614指示的方向为垂直时,由块分区器310作出BT/TT拆分决策618。
BT/TT拆分决策616指示水平拆分是通过返回“0”所指示的二元拆分514、还是通过返回“1”所指示的三元拆分518。当BT/TT拆分决策616指示二元拆分时,在生成HBT CTU节点的步骤625处,块分区器310根据二元水平拆分514生成两个节点。当BT/TT拆分616指示三元拆分时,在生成HTT CTU节点的步骤626处,块分区器310根据三元水平拆分518生成三个节点。
BT/TT拆分决策618指示垂直拆分是通过返回“0”所指示的二元拆分516、还是通过返回“1”所指示的三元拆分520。当BT/TT拆分618指示二元拆分时,在生成VBT CTU节点的步骤627处,块分区器310根据垂直二元拆分516生成两个节点。当BT/TT拆分618指示三元拆分时,在生成VTT CTU节点的步骤628处,块分区器310根据垂直三元拆分520生成三个节点。对于从步骤625-628得到的各节点,根据方向614按从左到右或从上到下的顺序来应用数据流600返回到MT拆分决策612的递归。结果,可以应用二叉树和三叉树拆分以生成具有各种大小的CU。
图7A和7B提供CTU 710向多个CU或CB的示例分割700。在图7A中示出示例CU 712。图7A示出CTU 710中的CU的空间布置。示例分割700在图7B中也被示出为编码树720。
在图7A的CTU 710中的各非叶节点(例如,节点714、716和718)处,按“Z顺序”扫描或遍历所包含的节点(其可以是进一步分割的或者可以是CU),以创建在编码树720中表示为列的节点列表。对于四叉树拆分,Z顺序扫描得到从左上方到右方之后是从左下方到右方的顺序。对于水平和垂直拆分,Z顺序扫描(遍历)分别简化为从上方到下方的扫描和从左方到右方的扫描。图7B的编码树720根据所应用的扫描顺序列出所有的节点和CU。各拆分在树的下一水平生成二、三或四个新节点的列表,直到到达叶节点(CU)为止。
在如参考图3所述利用块分区器310将图像分解为CTU并进一步分解为CU、并且使用CU生成各残差块(324)的情况下,利用视频编码器114对残差块进行正向变换和量化。随后扫描如此得到的TB 336以形成残差系数的顺序列表,作为熵编码模块338的操作的一部分。在视频解码器134中进行等效处理以从位流133获得TB。
图8示出具有一个或多于一个条带的位流801的句法结构800。各个条带包括多个编码单元。位流801对图像帧数据113进行编码并被分割成多个编码树单元,各个编码树单元被分割成一个或多于一个编码单元,编码单元进而被分割成一个或多于一个变换块。位流801可以由视频编码器114产生(例如作为位流115),或者可以由视频解码器134解析(例如作为位流133)。位流801被分割成多个部分,例如网络抽象层(NAL)单元,其中通过在各个NAL单元之前设置诸如808等的NAL单元头部来实现描绘。NAL单元头部包括标识随后NAL单元的内容的NAL单元类型。视频参数集(VPS)810具有命名为“VPS_NUT”的NAL单元类型,并且包括适用于位流的所有层的参数。VPS 810可以包括profile_tier_level句法结构830。结构830用“general_profile_idc”句法元素指定位流的档次,并且general_constraint_info句法结构832指定所选择的档次的子档次(如果存在)。general_constraint_info句法结构832包括标志no_luma_transform_size_64_constraint_flag 832a和码字max_log2_ctu_size_constraint_idc 832b。标志832a为位流提供最大变换块大小约束(例如,64),从而提供对位流进行编码或解码所需的工具的(在位流的结构的上下文中的)高级指示。64点变换与其他变换的不同之处在于仅扫描和编码前32个残差系数。例如,64×64TB可以仅在左上32×32区域中具有有效(非零)残差系数。标志832a指示最大主要变换大小在水平上和垂直上被限制为32点或左侧无约束的约束,在这种情况下,VVC标准支持的最大主要变换大小在水平上和垂直上为64点。标志832a是固定长度的码字或通常大小为1位的标志。还可以以类似方式实现将最大变换大小附加约束为诸如16点或8点等的较小值。类似地,码字832b为位流提供最大CTU大小约束,从而提供对位流进行编码或解码所需的工具的高级指示。码字832b是通常大小为2位的固定长度码字。结构832定义了与视频编码器114和视频解码器134的实现相关联的特定子档次。句法结构832包括no_scaling_list_constraint_flag832c。标志832c在活跃(值等于1)时指示缩放列表不能在位流中使用。
序列参数集(SPS)812具有命名为“SPS_NUT”的NAL单元类型,并且还可以包括profile_tier_level句法结构830。profile_tier_level句法结构830被包括在VPS 810或SPS 812中,但不被包括在这两者中。序列参数集(SPS)812定义了序列级参数,诸如用于对位流进行编码和解码的档次(工具集)、色度格式、样本位深和帧分辨率等。SPS 812还指定哪些编码工具可以用于特定位流中,该选择是指示为档次和子档次可用的工具的子集。结构834示出了子档次可用的工具的示例。标志sps_max_luma_transform_size64_flag 834a指示是否可以使用64-pt主要变换。如果约束标志832a不禁止使用64-pt主要变换,则标志834a可以仅指示使用64-pt主要变换。Sps_log2_ctu_size_minus5码字834b使用两位固定长度码字指示CTU的大小(即,最大编码单元大小)。码字834b可以具有分别指示32×32、64×64或128×128的CTU大小的值0、1或2。值3在VVC的初始(“版本1”)档次中被保留。码字834b可以不超过832b的值,因此832b对CTU大小施加作为子档次定义的一部分的限制。sps_explicit_scaling_list_enabled_flag 834c指示是否允许在位流中使用缩放列表以供给定TB内的非均匀量化。当标志832c活跃(例如,等于1的值)时,标志834c需要处于非活跃状态(等于0的值)。
标志834a指示位流的最大启用变换块大小。基于对应的约束标志832a来约束标志834a,但不基于约束标志832a来调节(设置)标志834a。在符合的位流中,由标志834a启用的最大变换块大小对应于由约束标志832a设置的约束,例如具有小于或等于约束标志832a的最大值。标志834a是固定长度的码字或通常大小为1位的标志。
类似地,码字834b指示位流的最大启用CTU大小。基于对应的约束码字832b来约束码字834b,但不基于约束码字832b来调节(设置)码字834b。在符合的位流中,由码字834b启用的最大CTU大小对应于由码字832b设置的约束,例如具有小于或等于码字832b的最大值。标志834b是通常大小为2位的固定长度码字。
自适应参数集(APS)813在帧之前使用命名为“PREFIX_APS_NUT”的NAL单元类型进行编码,或者在帧(未示出)之后使用命名为“SUFFIX_APS_NUT”的NAL单元类型进行编码。可以在位流800中的帧之间包括多个APS(未示出)。各个APS(例如813)包括用于配置三个编码工具之一的参数,所述三个编码工具为:缩放列表、ALF滤波器参数以及LMCS模型参数。在给定APS中配置三个编码工具中的哪个由包括在相应APS中的“aps_params_type”码字指定。aps_params_type码字使用三位固定长度码字,其中值0-2用于上述三个工具,并且值3-7被保留以供将来使用。等于0的句法元素aps_params_type被命名为“ALF_APS”并且指示APS包含用于自适应环路滤波器的参数,等于1的aps_params_type被命名为“LMCS_APS”并且指示APS包含用于亮度模型色度缩放工具的参数,并且等于2的aps_params_type被命名为“SCALING_APS”并且指示APS包含用于缩放列表的参数。
形成一个图片的条带序列被称为访问单元(AU),诸如AU 0 814等。AU 0814包括三个条带,诸如条带0至2等。条带1被标记为816。与其他条带一样,条带1(816)包括条带头部818和条带数据820。
图9示出位流801(例如,115或133)的条带数据820的句法结构900。CTU 910包括一个或多于一个CU,示例示出为CU 914。各个CTU的大小由码字834b设置,码字834b的值由约束832b约束。CU 914包括用信号通知的预测模式(未示出),随后是变换树916。如果CU 914的大小不超过最大变换大小(水平上和垂直上的32点或64点),则变换树916包括一个变换单元。如果CU(例如CU 914)的大小确实超过最大变换大小(水平上和垂直上的32点或64点),则变换树916包括以区块方式在空间上布置并且顺次存储在位流中的多个TU,例如示出为TU 918a和918b。
图10示出用于将帧数据113编码到位流115中的方法1000,位流115包括作为编码树单元序列的一个或多于一个条带。方法1000可以由诸如经配置的FPGA、ASIC或ASSP等的设备来体现。另外,方法1000可以在处理器205的执行下由视频编码器114进行。由于对帧进行编码的工作负荷,方法1000的步骤可以在不同的处理器中进行以例如使用当代多核处理器分担工作负荷,使得不同的条带由不同的处理器编码。所生成的位流115可以符合包括对块结构的各方面约束的子档次,包括最大变换大小和最大CTU大小。方法1000可以存储在计算机可读存储介质上和/或存储器206中。
方法1000开始于编码约束参数步骤1010。在步骤1010处,视频编码器114将包含general_constraint_info句法结构832的profile_tier_level句法结构830编码到位流115中的作为固定长度编码参数序列的VPS 810或SPS 812中。对最大变换大小(832a)和最大CTU大小(832b)的约束被编码为general_constraint_info句法结构832的一部分,从而有助于位流115的子档次的定义。对缩放列表的使用的约束被编码为具有标志832c的general_constraint_info句法结构832的部分,这也有助于位流115的子档次的定义。
方法1000从步骤1010进行到编码块结构参数步骤1015。在步骤1015处,视频编码器114将位流的所选最大变换大小作为标志834a编码在SPS 812中,并且将位流115的所选CTU大小作为码字834b编码在SPS 812中。无论相应的约束标志(即,分别为832a和832b)的值如何,都对标志834a和码字834b进行编码。然而,标志834a和码字834b被禁止指示比由标志832a和码字832b约束的能力更高的能力(更大的变换大小或更大的CTU大小)。在步骤1015处,视频编码器114通过对标志834c进行编码来对缩放列表的使用进行编码,无论相应的约束标志832c的值如何,都发生对标志834c的编码。然而,启用标志834c受约束标志832c约束,使得如果约束标志832c禁止缩放列表的使用,则缩放列表可能不被标志834c启用。
方法1000从步骤1015继续到将帧分割成条带的步骤1020。在步骤1020的执行中,处理器205将帧数据113分割成一个或多于一个条带或连续部分。在需要并行性的情况下,视频编码器114的单独实例在某种程度上独立地对各个条带进行编码。单个视频编码器114可以顺序地处理各个条带,或者可以实现一些中间程度的并行性。通常,将帧分割成条带(连续部分)与将帧分割成称为“子图片”或区块等的区域的边界对准。
方法1000从步骤1020继续到编码条带头部的步骤1030。在步骤1030处,熵编码器338将条带头部818编码到位流115中。
方法1000从步骤1030继续到将条带分割成CTU的步骤1040。在步骤1040的执行中,视频编码器114将条带816例如分割成CTU序列。条带边界与CTU边界对准,并且条带中的CTU根据CTU扫描顺序(通常为光栅扫描顺序)排序。将条带分割成CTU确定了帧数据113的哪一部分将由视频编码器113在编码当前条带时处理。
方法1000从步骤1040继续到确定编码树的步骤1050。在步骤1050处,视频编码器114确定条带中当前选择的CTU的编码树。方法1000在步骤1050的第一次调用时从条带816中的第一CTU开始,并且在后续调用时前进到条带816中的后续CTU。在确定CTU的编码树时,由块分区器310生成并测试四叉树、二元和三元拆分的各种组合。
方法1000从步骤1050继续到确定编码单元的步骤1060。在步骤1060处,视频编码器114执行以使用已知方法确定从评估中的各种编码树得到的CU的编码。确定编码涉及例如基于编码成本确定预测模式(例如,具有特定模式的帧内预测或具有运动矢量的帧间预测)和变换选择(主要变换类型和可选的次要变换类型)。如果亮度TB的主要变换类型被确定为DCT-2或者不经受正向次要变换的任何量化的主要变换系数是有效的,则亮度TB的次要变换索引可以指示次要变换的应用。否则,亮度的次要变换索引指示绕过次要变换。对于亮度通道,主要变换类型被确定为色度通道的MTS选项之一、DCT-2或变换跳过,DCT-2是可用的变换类型。在确定各个编码单元时,还以联合方式确定最佳编码树。当使用帧内预测对编码单元进行编码时,确定亮度帧内预测模式和色度帧内预测。
方法1000从步骤1060继续到对编码单元进行编码的步骤1070。在步骤1070处,视频编码器114将步骤1060的所确定的编码单元编码到位流115中。
方法1000从步骤1070继续到最后编码单元测试的步骤1080。在步骤1080处,处理器205测试当前编码单元是否是CTU中的最后编码单元。如果不是(步骤1080为“否”),则处理器205中的控制前进到确定编码单元的步骤1060。否则,如果当前编码单元是最后编码单元(步骤1080为“是”),则处理器205中的控制前进到最后CTU测试的步骤1090。
在最后CTU测试的步骤1090处,处理器205测试当前CTU是否是条带816中的最后CTU。如果不是条带816中的最后CTU(步骤1090为“否”),则处理器205中的控制返回到确定编码树的步骤1050。否则,如果当前CTU是最后的(步骤1090为“是”),则处理器205中的控制前进到最后条带测试的步骤10100。
在最后条带测试的步骤10100处,处理器205测试正在编码的当前条带是否是帧中的最后条带。如果不是最后条带(步骤10100为“否”),则处理器205中的控制前进到编码条带头部的步骤1030。否则,如果当前条带是最后的并且所有条带(连续部分)已经被编码(步骤10100为“是”),则方法1000终止。
图11示出从作为布置成条带的编码单元序列的位流中解码帧的方法1100。方法1100可以由诸如经配置的FPGA、ASIC或ASSP等的设备来体现。另外,方法1100可以在处理器205的执行下由视频解码器134进行。因此,方法1100可以存储在计算机可读存储介质上和/或存储器206中。
方法1100解码如使用方法1000编码的位流,其中位流115的子档次包括关于块大小的约束,诸如最大变换大小和最大CTU大小等。无论视频数据的色度格式如何,最大变换大小都适用于亮度和色度。CTU大小指示由编码树的根节点覆盖的区域,并且编码树的根节点始终适用于亮度通道和色度通道这两者,无论后续拆分成用于亮度和色度的单独编码树(其可更深地出现于CTU的编码树中)都是如此。
方法1100开始于解码约束参数步骤1110。在步骤1110的执行中,视频解码器134从位流133中存在的作为固定长度参数序列的VPS 810或SPS 812中解码general_constraint_info句法结构832,以确定位流133的子档次。对最大变换大小(832a)和最大CTU大小(832b)的约束被解码为general_constraint_info句法结构832的一部分,从而有助于确定位流133的子档次。例如,步骤1110可以从位流中解码最大变换块大小约束和/或最大CTU大小约束。对缩放列表的使用的约束被解码为具有标志832c的general_constraint_info句法结构832的部分,也有助于位流133的子档次的定义。
方法1100从步骤1110前进到解码块结构参数步骤1120。在步骤1120处,视频解码器134将位流的所选最大启用变换大小解码为来自SPS 812的标志834a,并且将位流115的所选最大启用CTU大小解码为来自SPS 812的码字834b。无论相应的约束标志(即,分别为832a和832b)如何,都解码标志834a和码字834b。然而,标志834a和码字834b被禁止(在“符合的”位流中)指示比由标志832a和码字832b约束的能力更高的能力(更大的变换大小或更大的CTU大小)。在步骤1125处,视频解码器134通过解码标志834c来解码缩放列表的使用,其中无论相应的约束标志832c的值如何,都发生标志834c的解码。然而,启用标志834c受约束标志832c约束,使得如果约束标志832c禁止缩放列表的使用,则标志834c可以不启用缩放列表。如果经解码的块结构参数违反了general_constraint_info句法结构832中定义的禁止,则视频解码器134认为位流是“不符合的”,并且可以停止进一步的解码。
方法1100从步骤1120继续到解码条带头部的步骤1130。在步骤1130处,熵解码器420从位流133解码条带头部818。
方法1100从步骤1130继续到将条带分割成CTU的步骤1140。在步骤1140处,视频解码器134将条带816分割成CTU序列。条带边界与CTU边界对准,并且条带中的CTU根据CTU扫描顺序排序。CTU扫描顺序通常是光栅扫描顺序。将条带分割成CTU确定了帧数据113的哪个部分将由视频解码器134在解码当前条带时处理。条带基于经解码的最大启用CTU大小被分割成CTU。
方法1100从步骤1140继续到解码编码树的步骤1150。在步骤1150的执行中,视频解码器133在步骤1150的第一次调用时从条带816中的第一CTU开始,从位流133中解码条带中的当前CTU的编码树。通过根据图6并且基于最大启用CTU大小在熵解码器420处解码拆分标志来解码CTU的编码树。针对CTU在步骤1150的后续迭代中,对条带816中的后续CTU进行解码。
方法1100从步骤1160继续到解码编码单元的步骤1170。在步骤1170处,视频解码器134从位流133解码编码单元。根据相应CTU来解码或确定各编码单元,CTU是根据经解码的最大启用编码树大小和从位流中解码的拆分标志来确定的。
方法1100从步骤1110继续到最后编码单元测试的步骤1180。在步骤1180处,处理器205测试当前编码单元是否是CTU中的最后编码单元。如果不是最后编码单元(步骤1180为“否”),则处理器205中的控制返回到解码编码单元的步骤1170以解码编码树单元的下一编码单元。如果当前编码单元是最后编码单元(步骤1180为“是”),则处理器205中的控制前进到最后CTU测试的步骤1190。
在最后CTU测试的步骤1190处,处理器205测试当前CTU是否是条带816中的最后CTU。如果不是条带中的最后CTU(步骤1190为“否”),则处理器205中的控制返回到解码编码树的步骤1150以解码条带816的下一编码树单元。如果当前CTU是条带816的最后CTU(步骤1190为“是”),则处理器205中的控制前进到最后条带测试的步骤11100。
在最后条带测试步骤11100处,处理器205测试正在解码的当前条带是否是帧中的最后条带。如果不是帧中的最后条带(步骤11100为“否”),则处理器205中的控制返回到解码条带头部的步骤1130,并且步骤1130进行操作以解码帧中的下一条带(例如,图11的“条带2”)的条带头部。如果当前条带是帧中的最后条带(在步骤1100为“是”),则方法1100终止。
步骤1140至11100进行操作1,以通过根据经解码的最大启用变换块大小和/或经解码的最大启用CTU大小以及从位流中解码的拆分标志来确定编码树单元的各个编码单元的变换块,对图像帧进行解码。如关于图1中的装置130所描述的,针对多个编码单元的操作方法1610进行操作以产生图像帧。
使用方法1000的视频编码器114和使用方法1100的视频解码器134的布置能够支持具有包括块结构方面的粒度的子档次定义,块结构方面即:最大变换大小和CTU大小(其对应于最大CU大小)。使用最大变换大小约束和/或最大CTU大小约束的块结构方面的控制意味着子档次提供了对影响所有颜色通道的标准的块结构行为的控制的粒度,而不管所使用的色度格式如何。与序列级工具集相关联地使用一般约束来约束最大变换大小和/或最大CTU大小,这允许解码中的早期知识确定需要哪些工具。约束标志位于相对于VPS 810或SPS 812的开始的固定位置,因此可以确定位流的档次和子档次,而不需要进行可变长度解码。此外,可在不影响实现的其他方面(例如:其他编码工具)且不产生特设或非标准子档次的情况下禁用被发现有问题的实现或工具。因此,实现VVC标准的供应商在实现适合并可适用于现实世界的应用和产品中的实现的视频编码器和解码器方面具有更大的灵活性。
在视频编码器114和视频解码器134的布置中,使用一位标志来约束最大编码单元大小,该一位标志在活跃时将CTU大小限制为64×64并且在不活跃时允许128×128的CTU大小。
在视频编码器114和视频解码器134的另一布置中,“no_scaling_list_constraint_flag”(832c)也存在于general_constraint_info()832中,并且在步骤1010处由视频编码器114编码,并在步骤1110处由视频解码器134解码。视频编码器114将sps_explicit_scaling_list_enabled_flag(834c)编码在SPS 812中,从而指示缩放列表是否将用于量化/逆量化。视频解码器134从SPS 812解析sps_explicit_scaling_list_enabled_flag 834c,以确定在由逆量化器模块428进行的逆量化中逆量化是否应该利用缩放列表。如果no_scaling_list_constraint_flag 832c是活跃的(例如,该值等于1),则在SPS 812中编码的sps_explicit_scaling_list_enabled_flag 834c指示不使用缩放列表(值等于0)。如果no_scaling_list_constraint_flag 832c指示不使用缩放列表(值等于1),则禁止aps_params_type具有值2(“SCALING_APS”)。当在general_constraint_info()832中编码的no_alf_constraint_flag指示自适应环路滤波器未在使用中(值等于1)时,则禁止与位流相关联的任何AP(例如,APS 813)的aps_params_type具有值0(“ALF_APS”)。当在general_constraint_info()832中编码的no_lmcs_constraint_flag指示将不使用亮度模型色度缩放(值等于1)时,则禁止与位流相关联的任何APS(例如,APS 813)的aps_params_type具有值1(“LMCS_APS”)。
产业上的可利用性
所描述的布置适用于计算机和数据处理行业,并且特别地适用于对诸如视频和图像信号等的信号进行编码或解码的数字信号处理,从而实现高压缩效率。提供上述约束标志中的一个或多于一个允许选择给定档次的工具子集(“子档次”)。工具子集的选择提供了诸如VVC的供应商的实现益处等的一些益处,因为供应商能够指定排除不必要的或否则(例如从复杂性的角度来看)有问题的编码工具的档次的子集。
前述仅说明本发明的一些实施例,并且可以在没有背离本发明的范围和精神的情况下对本发明进行修改和/或改变,其中这些实施例仅是示例性而非限制性的。
附录A
VVC标准的工作草案文本的示例适于对应于本文描述的方法。
7.3.3.2一般约束信息句法
Figure BDA0003949947380000451
Figure BDA0003949947380000461
Figure BDA0003949947380000471
7.4.4.2一般约束信息语义
max_log2_ctu_size_constraint_idc指定sps_log2_ctu_size_minus5应在0到max_log2_ctu_size_constraint_idc的范围内(包含)。
等于1的no_luma_transform_size_64_constraint_flag指定sps_max_luma_transform_size_64_flag应等于0。
等于0的no_luma_transform_size_64_constraint_flag不施加这样的约束。
等于1的no_scaling_list_constraint_flag指定sps_explicit_scaling_list_enabled_flag应等于0且aps_params_type不应等于2。等于0的no_scaling_list_constraint_flag不施加这样的约束。
等于1的no_alf_constraint_flag指定sps_alf_enabled_flag应等于0,且aps_params_type不应等于0。
等于0的no_alf_constraint_flag不施加这样的约束。
等于1的no_lmcs_constraint_flag指定sps_lmcs_enabled_flag应等于0,且aps_params_type不应等于0。等于0的no_lmcs_constraint_flag不施加这样的约束。

Claims (19)

1.一种从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个变换块,所述方法包括:
从所述位流中解码最大变换块大小约束;
从所述位流中解码最大启用变换块大小,经解码的最大启用变换块大小小于或等于经解码的最大变换块大小约束;
根据经解码的最大启用变换块大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个变换块;以及
从所述位流中解码所确定的一个或多于一个变换块中的各变换块以对所述图像帧进行解码。
2.根据权利要求1所述的方法,其中,所述最大变换块大小约束使用1位的固定长度码字。
3.根据权利要求1所述的方法,其中,所述最大启用变换块大小约束是从所述位流中的general_constraint_info句法结构解码的。
4.根据权利要求1所述的方法,其中,所述最大变换块大小约束是从所述位流的视频参数集和序列参数集其中之一解码的。
5.根据权利要求1所述的方法,其中,所述最大启用变换块大小使用1位的固定长度码字。
6.根据权利要求1所述的方法,其中,所述最大启用变换块大小是从所述位流中的seq_parameter_set_rbsp()句法结构解码的。
7.一种从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码单元,所述方法包括:
从所述位流中解码最大编码树单元大小约束;
从所述位流中解码最大启用编码树单元大小,经解码的最大启用编码树单元大小小于或等于经解码的最大编码单元大小约束;
根据经解码的最大启用编码树大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个编码单元;以及
从所述位流中解码所确定的一个或多于一个编码单元中的各编码单元以对所述图像帧进行解码。
8.根据权利要求7所述的方法,其中,所述最大编码树单元大小约束使用1位的固定长度码字。
9.根据权利要求7所述的方法,其中,所述最大启用编码树单元大小约束是从所述位流中的general_constraint_info句法结构解码的。
10.根据权利要求7所述的方法,其中,所述最大编码树单元大小约束是从所述位流的视频参数集和序列参数集其中之一解码的。
11.根据权利要求7所述的方法,其中,所述最大启用编码树单元大小使用1位的固定长度码字。
12.根据权利要求7所述的方法,其中,所述最大启用编码树单元大小是从所述位流中的seq_parameter_set_rbsp()句法结构解码的。
13.一种从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码块,所述方法包括:
从所述位流中解码指示对缩放列表的使用的约束的第一标志,该标志被包括在一般约束信息句法中;
从所述位流中解码指示所述缩放列表的启用的第二标志,所述第二标志受所述第一标志约束;
利用根据所述第二标志的值进行的缩放从所述位流中解码所述一个或多于一个编码块;以及
使用经解码的一个或多于一个编码单元对所述图像帧进行解码。
14.一种用于从位流中解码图像帧的视频解码设备,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个变换块,所述视频解码设备包括:
第一解码单元,其被配置为从所述位流中解码最大变换块大小约束;
第二解码单元,其被配置为从所述位流中解码最大启用变换块大小,经解码的最大启用变换块大小小于或等于经解码的最大变换块大小约束;
确定单元,其被配置为根据经解码的最大启用变换块大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个变换块;以及
第三解码单元,其被配置为从所述位流中解码所确定的一个或多于一个变换块中的各变换块以对所述图像帧进行解码。
15.一种用于从位流中解码图像帧的视频解码设备,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码单元,所述视频解码设备包括:
第一解码单元,其被配置为从所述位流中解码最大编码树单元大小约束;
第二解码单元,其被配置为从所述位流中解码最大启用编码树单元大小,经解码的最大启用编码树单元大小小于或等于经解码的最大编码单元大小约束;
确定单元,其被配置为根据经解码的最大启用编码树大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个编码单元;以及
第三解码单元,其被配置为使用经解码的一个或多于一个编码单元对所述图像帧进行解码。
16.一种用于从位流中解码图像帧的视频解码设备,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码块,所述视频解码设备包括:
第一解码单元,其被配置为从所述位流中解码指示对缩放列表的使用的约束的第一标志,该标志被包括在一般约束信息句法中;
第二解码单元,其被配置为从所述位流中解码指示所述缩放列表的启用的第二标志,所述第二标志受所述第一标志约束;
第三解码单元,其被配置为利用根据所述第二标志的值进行的缩放从所述位流中解码所述一个或多于一个编码块;以及
第四解码单元,其被配置为使用经解码的一个或多于一个编码单元对所述图像帧进行解码。
17.一种非暂时性计算机可读介质,其上存储有计算机程序以实现从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个变换块,所述方法包括:
从所述位流中解码最大变换块大小约束;
从所述位流中解码最大启用变换块大小,经解码的最大启用变换块大小小于或等于经解码的最大变换块大小约束;
根据经解码的最大启用变换块大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个变换块;以及
从所述位流中解码所确定的一个或多于一个变换块中的各变换块以对所述图像帧进行解码。
18.一种非暂时性计算机可读介质,其上存储有计算机程序以实现从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码单元,所述方法包括:
从所述位流中解码最大编码树单元大小约束;
从所述位流中解码最大启用编码树单元大小,经解码的最大启用编码树单元大小小于或等于经解码的最大编码单元大小约束;
根据经解码的最大启用编码树大小和从所述位流中解码的拆分标志来确定所述多个编码树单元中的各编码树单元的一个或多于一个编码单元;以及
从所述位流中解码所确定的一个或多于一个编码单元中的各编码单元以对所述图像帧进行解码。
19.一种非暂时性计算机可读介质,其上存储有计算机程序以实现从位流中解码图像帧的方法,所述图像帧被分割成多个编码树单元,所述编码树单元中的各编码树单元被分割成一个或多于一个编码块,所述方法包括:
从所述位流中解码指示对缩放列表的使用的约束的第一标志,该标志被包括在一般约束信息句法中;
从所述位流中解码指示所述缩放列表的启用的第二标志,所述第二标志受所述第一标志约束;
利用根据所述第二标志的值进行的缩放从所述位流中解码所述一个或多于一个编码块;以及
使用经解码的一个或多于一个编码单元来解码所述图像帧以对所述图像帧进行解码。
CN202180036343.1A 2020-05-21 2021-04-16 用于编码和解码视频样本的块的方法、设备和系统 Pending CN115804087A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2020203330A AU2020203330B2 (en) 2020-05-21 2020-05-21 Method, apparatus and system for encoding and decoding a block of video samples
AU2020203330 2020-05-21
PCT/AU2021/050339 WO2021232088A1 (en) 2020-05-21 2021-04-16 Method, apparatus and system for encoding and decoding a block of video samples

Publications (1)

Publication Number Publication Date
CN115804087A true CN115804087A (zh) 2023-03-14

Family

ID=78708797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180036343.1A Pending CN115804087A (zh) 2020-05-21 2021-04-16 用于编码和解码视频样本的块的方法、设备和系统

Country Status (9)

Country Link
US (1) US20230171432A1 (zh)
EP (1) EP4154530A4 (zh)
JP (2) JP7500745B2 (zh)
KR (1) KR20230010707A (zh)
CN (1) CN115804087A (zh)
AU (2) AU2020203330B2 (zh)
BR (1) BR112022020958A2 (zh)
TW (1) TWI836211B (zh)
WO (1) WO2021232088A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230396811A1 (en) * 2022-06-01 2023-12-07 Realtek Semiconductor Corp. Method and electronic device for processing video coding

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
KR101675118B1 (ko) * 2010-01-14 2016-11-10 삼성전자 주식회사 스킵 및 분할 순서를 고려한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
US20140078249A1 (en) * 2012-09-20 2014-03-20 Qualcomm Incorporated Indication of frame-packed stereoscopic 3d video data for video coding
WO2014103606A1 (ja) * 2012-12-26 2014-07-03 シャープ株式会社 画像復号装置
KR20140129607A (ko) * 2013-04-30 2014-11-07 주식회사 칩스앤미디어 동영상 처리 방법 및 장치
JP6287035B2 (ja) * 2013-10-11 2018-03-07 ソニー株式会社 復号装置および復号方法
CN117459724A (zh) 2014-01-08 2024-01-26 索尼公司 解码设备和编码设备
KR20180019510A (ko) * 2015-03-31 2018-02-26 리얼네트웍스 인코포레이티드 비디오 코딩시 오차 변환 및 역 변환 시스템들 및 방법들
MX2018011198A (es) * 2016-03-16 2019-05-20 Mediatek Inc Metodo y aparato de procesamiento de datos de video con tamaño restringido de bloque en codificacion de video.
WO2018123317A1 (ja) 2016-12-26 2018-07-05 日本電気株式会社 映像符号化方法、映像復号方法、映像符号化装置、映像復号装置及びプログラム
CN110603811A (zh) * 2017-02-23 2019-12-20 真实网络公司 视频编码系统和方法中的残差变换和逆向变换
JP2021010046A (ja) * 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置
US11159795B2 (en) * 2019-03-04 2021-10-26 Tencent America LLC Max transform size control
WO2021006630A1 (ko) 2019-07-08 2021-01-14 엘지전자 주식회사 스케일링 리스트 데이터 기반 영상 또는 비디오 코딩
WO2021040480A1 (ko) * 2019-08-29 2021-03-04 엘지전자 주식회사 인루프 필터링 기반 영상 코딩 장치 및 방법
US20210076074A1 (en) * 2019-09-11 2021-03-11 Qualcomm Incorporated Maximum and minimum block sizes signaling at high level syntax for video coding and transform units
TW202114428A (zh) * 2019-09-23 2021-04-01 法商內數位Vc控股法國公司 編碼樹分割
US11606563B2 (en) * 2019-09-24 2023-03-14 Tencent America LLC CTU size signaling
CN115720265B (zh) * 2019-12-18 2024-08-09 腾讯科技(深圳)有限公司 视频编解码方法、装置、设备及存储介质
EP4080885A4 (en) * 2019-12-20 2023-07-05 Wilus Institute of Standards and Technology Inc. VIDEO SIGNAL PROCESSING METHOD AND RELATED DEVICE
CA3163430A1 (en) * 2019-12-31 2021-07-08 Xiang Ma An encoder, a decoder and corresponding methods for temporal alf application to luma and chroma
WO2021139806A1 (en) * 2020-01-12 2021-07-15 Beijing Bytedance Network Technology Co., Ltd. Constraints for video coding and decoding
JP7415027B2 (ja) * 2020-02-29 2024-01-16 北京字節跳動網絡技術有限公司 ハイレベルシンタックス要素のための制約
CN115885511A (zh) 2020-04-13 2023-03-31 抖音视界有限公司 自适应参数集中的色度语法信令通知
TW202209889A (zh) * 2020-05-19 2022-03-01 法商內數位Vc控股法國公司 精細控制影像編碼及解碼程序方法及裝置

Also Published As

Publication number Publication date
AU2020203330A1 (en) 2021-12-09
JP7500745B2 (ja) 2024-06-17
AU2020203330B2 (en) 2022-12-01
US20230171432A1 (en) 2023-06-01
AU2022271385A1 (en) 2022-12-15
TWI836211B (zh) 2024-03-21
BR112022020958A2 (pt) 2022-12-06
EP4154530A4 (en) 2024-04-10
AU2022271385B2 (en) 2024-04-18
JP2024109963A (ja) 2024-08-14
EP4154530A1 (en) 2023-03-29
TW202145788A (zh) 2021-12-01
WO2021232088A1 (en) 2021-11-25
JP2023525619A (ja) 2023-06-19
KR20230010707A (ko) 2023-01-19

Similar Documents

Publication Publication Date Title
CN112771866A (zh) 对视频样本块的树进行编码和解码的方法、设备和系统
US12075058B2 (en) Method, apparatus and system for encoding and decoding a coding tree unit
JP2021530124A (ja) ビデオサンプルの変換されたブロックを符号化および復号するための方法、装置、およびシステム
TWI784345B (zh) 用於將編碼樹單元編碼與解碼的方法、設備及系統
JP2024054338A (ja) 画像を復号する方法、ビットストリームに画像を符号化する方法、復号装置、符号化装置、コンピュータプログラム
JP7564921B2 (ja) ビデオサンプルのブロックを符号化及び復号するための方法、装置、及びシステム
CN113574874A (zh) 用于编码和解码视频样本的块树的方法、设备和系统
JP2024109963A (ja) ビデオサンプルのブロックを符号化および復号する方法、装置、およびシステム
US12088831B2 (en) Method, apparatus and system for encoding and decoding a block of video samples
TW202126050A (zh) 用於編碼及解碼視訊取樣區段的方法, 設備及系統
US20240364901A1 (en) Method, apparatus and system for encoding and decoding a block of video samples
US20240364902A1 (en) Method, apparatus and system for encoding and decoding a block of video samples
US20240364903A1 (en) Method, apparatus and system for encoding and decoding a block of video samples
US20240364900A1 (en) Method, apparatus and system for encoding and decoding a block of video samples
JP2024046650A (ja) ビデオサンプルのブロックを符号化並びに復号するための方法、装置、及びシステム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40085732

Country of ref document: HK