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

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

Info

Publication number
CN115088259A
CN115088259A CN202080096139.4A CN202080096139A CN115088259A CN 115088259 A CN115088259 A CN 115088259A CN 202080096139 A CN202080096139 A CN 202080096139A CN 115088259 A CN115088259 A CN 115088259A
Authority
CN
China
Prior art keywords
sub
block
flag
sign bit
coefficients
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
CN202080096139.4A
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 CN115088259A publication Critical patent/CN115088259A/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/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • 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
    • 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/124Quantisation
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种从视频位流中解码变换块的残差系数的子块的系统和方法。该方法包括:确定针对该子块是否使用符号位隐藏,该确定是基于针对该子块确定的变换跳过标志的值以及与该子块相关联的符号位隐藏标志的值;如果不使用符号位隐藏,则解码数量等于该子块中的有效系数的数量的符号位;以及通过使用经解码的符号位重建子块的残差系数来解码子块。

Description

对视频样本块编码和解码的方法、设备和系统
相关申请的交叉引用
本申请根据35U.S.C.§119要求于2020年3月10日提交的澳大利亚专利申请2020201753的申请日的权益,其全部内容通过引用并入本文,如同在本文中完全阐述一样。
技术领域
本发明通常涉及数字视频信号处理,尤其涉及用于对视频样本块进行编码和解码的方法、设备和系统。本发明还涉及包括记录有用于对视频样本块进行编码和解码的计算机程序的计算机可读介质的计算机程序产品。
背景技术
当前存在包括用于传输和存储视频数据的应用的许多视频编码用的应用。还开发了许多视频编码标准并且其它视频编码标准当前正在开发中。视频编码标准化的最新进展已导致形成被称为“联合视频专家组”(JVET)的组。该联合视频专家组(JVET)包括:还已知为“视频编码专家组”(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处理器负荷、内存利用率和带宽方面)提供可接受的折衷。
视频数据包括各自包括一个或多于一个颜色通道的图像数据的帧序列。通常,需要一个主要颜色通道和两个次要颜色通道。主要颜色通道通常被称为“亮度”通道,并且(一个或多于一个)次要颜色通道通常被称为“色度”通道。尽管视频数据通常在RGB(红-绿-蓝)颜色空间中显示,但该颜色空间在三个相应分量之间具有高度相关性。编码器或解码器所看到的视频数据表示通常使用诸如YCbCr等的颜色空间。YCbCr将(根据传递函数映射到“亮度”的)发光亮集中在Y(主要)通道中,并且将色度集中在Cb和Cr(次要)通道中。此外,可以以与亮度通道相比更低的速率(子采样)(例如,在水平方向上为一半且在垂直方向上为一半(被称为“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)。当针对给定区域使用单独的编码树时,使用上述CB以及“预测块”(PB)和“变换块”(TB)。
尽管在“单元”和“块”之间存在上述区别,但是术语“块”可以用作帧的区(area)或区域(region)的通用术语,对于该区或区域,操作被应用于所有颜色通道。
对于各个CU,生成帧数据的相应区域的内容(样本值)的预测单元(PU)(“预测单元”)。如果PU是从先前用信号通知的帧中的样本值生成的,则预测被称为帧间预测。如果PU是从同一帧中的先前样本生成的,则预测被称为帧内预测。此外,形成了预测与在编码器的输入处看到的区域的内容之间的差(或空间域中的“残差”)的表示。各个颜色通道中的差可以被变换和编码为残差系数块,从而形成给定CU的一个或多于一个TU。残差系数可以通过诸如离散余弦变换(DCT)、离散正弦变换(DST)或其它变换等的变换来变换,以产生基本上去相关残差样本的变换系数的最终块。可以通过量化变换系数来实现显著的编码增益。然后以诸如反向对角线扫描等的顺序遍历经量化的变换系数,并且各个系数由熵编码器编码。熵编码包括根据句法元素表达各个系数,各个句法元素被二值化。二值化的句法元素然后可以由上下文自适应二进制算术编码器(CABAC)进一步编码,或者传递到位流(“旁路编码”)。
在一些类别的视频内容(诸如画面内容等)中,避免进行变换可能是有利的。如果要避免变换,则对残差系数进行量化、遍历和编码。由于残差系数的统计信息与变换系数的统计信息不同,因此使用与对变换系数的编码处理不同的处理对残差系数进行编码通常是有利的。用于对残差系数进行编码的典型方法包括“常规残差编码”(RRC)处理和“变换跳过残差编码”(TSRC)处理,其中根据是否进行了变换来为块选择特定的一个处理。
在一些用例中,可能期望无损地压缩视频数据(即,没有编码损失)。可以通过跳过变换步骤和量化步骤这两者来无损地编码CU。在TSRC处理中,可以通过将“量化参数”设置为表示无量化的值来避免量化。然而,如上文所指示,TSRC处理可仅适用于(诸如画面内容等的)视频内容类别。因此,强制视频数据的无损编码以使用TSRC处理可能是次优的。期望无损编码具有根据正被编码的视频数据的统计信息可用的更灵活的选项,同时最小化支持附加灵活性所需的附加逻辑的量。
发明内容
本发明的目的是基本上克服或至少改善现有布置的一个或多于一个缺点。
本发明的一个方面提供一种从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:确定针对所述子块是否使用符号位隐藏,所述确定是基于针对所述子块确定的变换跳过标志的值以及与所述子块相关联的符号位隐藏标志的值;在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
根据另一方面,在所述符号位隐藏标志具有值真、所述变换跳过标志具有值假、并且所述子块的第一有效位置与最后有效位置之间的差大于3的情况下,使用符号位隐藏。
根据另一方面,在所述符号位隐藏标志具有值真并且所述变换跳过标志具有值真的情况下,不使用符号位隐藏。
根据另一方面,该方法还包括:在确定为使用符号位隐藏的情况下,对数量等于所述子块中的有效系数的数量减1的符号位进行解码,并且根据所述子块的有效系数的奇偶性的和来确定附加符号位。
本发明的另一方面提供一种从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:确定针对所述子块是否使用符号位隐藏,所述确定是基于符号位隐藏标志的值和与所述子块相关联的量化参数的值;在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
根据另一方面,在所述符号位隐藏标志具有值真并且所述量化参数等于4的情况下,不使用符号位隐藏。
根据另一方面,在所述符号位隐藏标志具有值真、所述量化参数不等于4、并且所述子块的第一有效位置和最后有效位置之间的差大于3的情况下,使用符号位隐藏。
本发明的另一方面提供一种从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:确定针对所述子块是否使用符号位隐藏,所述确定是基于符号位隐藏标志的值以及TSRC禁用标志的值;在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
根据另一方面,在所述符号位隐藏标志具有值真、所述TSRC禁用标志具有值假、并且所述子块的第一有效位置和最后有效位置之间的差大于3的情况下,使用符号位隐藏。
根据另一方面,在所述符号位隐藏标志具有值真并且所述TSRC禁用标志具有值真的情况下,不使用符号位隐藏。
本发明的另一方面提供一种非暂时性计算机可读介质,其上存储有计算机程序以实现从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:确定针对所述子块是否使用符号位隐藏,所述确定是基于针对所述子块确定的变换跳过标志的值以及与所述子块相关联的符号位隐藏标志的值;在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
本发明的另一方面提供一种系统,其包括:存储器;以及处理器,其中,所述处理器被配置为执行存储在所述存储器上的代码以实现从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:确定针对所述子块是否使用符号位隐藏,所述确定是基于针对所述子块确定的变换跳过标志的值以及与所述子块相关联的符号位隐藏标志的值;在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
本发明的另一方面提供一种视频解码器,其被配置为:接收来自视频位流的变换块的残差系数的子块,确定针对所述子块是否使用符号位隐藏,所述确定是基于针对所述子块确定的变换跳过标志的值以及与所述子块相关联的符号位隐藏标志的值;在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
还描述了其他方面。
附图说明
现在将参考以下的附图和附录来说明本发明的至少一个实施例,其中:
图1是示出视频编码和解码系统的示意框图;
图2A和2B构成可以实践图1的视频编码和解码系统的其中一个或这两者的通用计算机系统的示意框图;
图3是示出视频编码器的功能模块的示意框图;
图4是示出视频解码器的功能模块的示意框图;
图5是示出通用视频编码的树结构中的块向一个或多于一个块的可用分割的示意框图;
图6是用以在通用视频编码的树结构中实现块向一个或多于一个块的许可分割的数据流的示意图;
图7A和7B示出编码树单元(CTU)向多个编码单元(CU)的示例分割;
图8A示出两级反向对角线扫描;
图8B示出两级正向对角线扫描;
图9示出用于对残差系数的变换块进行编码的方法;
图10示出用于对残差系数的变换块进行解码的方法;
图11示出如图9的方法进行的用于量化残差系数的变换块的方法;
图12示出如图10的方法进行的用于缩放量化系数的变换块的方法;
图13示出如图9的方法进行的用于对量化系数的子块进行编码的方法;以及
图14示出如图10的方法进行的用于对量化系数的子块进行解码的方法。
具体实施方式
在任一个或多于一个附图中参考具有相同附图标记的步骤和/或特征的情况下,除非出现相反意图,否则这些步骤和/或特征为了本说明书的目的而具有相同的(一个或多于一个)功能或(一个或多于一个)操作。
如上所述,可能期望利用编解码器的现有构建块来支持无损编码。然而,专门使用TSRC处理进行无损编码可能产生次优的编码性能,因为不能保证以无损方式编码的各种类别的视频数据表现出TSRC处理被设计用于的统计性质。然后,无损编码可以使用的高级构建块的选择的更大灵活性允许在对整体设计的附加复杂度最小的状态下的优异编码性能。
图1是示出视频编码和解码系统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指示的)位流。位流115由发送器116经由通信通道120作为编码视频数据(或“编码视频信息”)进行发送。位流115也可以存储在诸如“闪速”存储器或硬盘驱动器等的非暂时性存储装置122中,直到随后通过通信通道120发送或者作为通过通信通道120的发送的代替为止。
目的地装置130包括接收器132、视频解码器134和显示装置136。接收器132从通信通道120接收编码视频数据并将所接收到的视频数据作为(由箭头133指示的)位流传递至视频解码器134。然后,视频解码器134将(由箭头135指示的)经解码的帧数据输出至显示装置136以再现视频数据。经解码的帧数据135具有与帧数据113相同的色度格式。显示装置136的示例包括阴极射线管、液晶显示器(诸如在智能电话、平板计算机、计算机监视器、或者单机型电视机中等)。也可以将源装置110和目的地装置130各自的功能体现在单个装置中,该单个装置的示例包括移动电话手机和平板计算机。
尽管以上说明了示例装置,但源装置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的ROM 249中。有时将诸如存储有软件的ROM 249等的硬件装置称为固件。POST程序250检查计算机模块201内的硬件以确保适当工作,并且通常检查处理器205、存储器234(209,206)和通常还存储在ROM249中的基本输入-输出系统软件(BIOS)模块251,以进行正确操作。一旦POST程序250成功运行,BIOS 251启动图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。
要说明的图9至图14的方法中的各步骤或子处理与程序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-386,并且视频解码器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的大小可为例如64×64、128×128或256×256个亮度样本。块分区器310还根据亮度编码树和色度编码树将各个CTU分割成一个或多于一个CB。CB具有各种大小,并且可以包括正方形和非正方形纵横比这两者。在VVC标准中,CB、CU、PU和TU总是具有为二的幂的边长。因此,根据CTU的亮度编码树和色度编码树,根据CTU的一个或多于一个块上的迭代行进,从块分区器310输出表示为312的当前CB。下文参考图5和图6进一步描述用于将CTU分区成CB的选项。
可按光栅扫描顺序扫描由帧数据113的第一分割得到的CTU,并且可以将其分组成一个或多于一个“条带”。条带可以是“帧内”(或“I”)条带。帧内条带(I条带)指示条带中的每个CU是帧内预测的。替代地,条带可以是单预测或双预测的(分别为“P”或“B”条带),分别指示条带中单预测和双预测的附加可用性。
对于各个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以及关联的TB336通常例如基于所评估的成本或失真而选自多个可能的候选CB其中之一。
候选编码块(CB)是从视频编码器114针对关联的PB和所得到的残差可用的预测模式其中之一得到的CB。各候选CB得到一个或多于一个相应的TB。TB 336是残差324的量化和变换表示。当与视频解码器114中的预测PB组合时,TB 336以位流中的附加信号通知为代价来减少经解码CB和原始CB 312之间的差。
因而,各候选编码块(CB)(即,与变换块(TB)相结合的预测块(PB))均具有关联的编码成本(或“速率”)和关联的差(或“失真”)。速率通常是以位为单位测量的。CB的失真通常被估计为样本值的差,诸如绝对差和(SAD)或平方差和(SSD)等。模式选择器386使用残差324可以确定从各候选PB得到的估计,以确定预测模式(由箭头388表示)。可以以与残差的熵编码相比明显更低的成本来进行与各候选预测模式相关联的编码成本和相应的残差编码的估计。因此,可以评价多个候选模式,以确定率失真意义上的最佳模式。
就速率-失真方面确定最佳模式通常是使用拉格朗日优化的变形来实现的。选择预测模式388通常涉及确定从应用特定预测模式得到的残差数据的编码成本。可以通过使用“绝对变换差和”(SATD)来近似编码成本,由此使用诸如Hadamard变换等的相对简单的变换来获得估计变换残差成本。在使用相对简单的变换的一些实现中,从简化估计方法得到的成本与否则将从完整评价确定的实际成本单调相关。在具有单调相关估计成本的实现中,可以使用该简化估计方法来作出相同的决定(即,预测模式),其中视频编码器114的复杂度降低。为了允许估计成本和实际成本之间的关系的可能非单调性,可以使用该简化估计方法来生成最佳候选的列表。例如,非单调性可源自可用于编码残差数据的进一步模式决策。最佳候选的列表可以具有任意数量。可以使用最佳候选来进行更完整的搜索,以建立用于对各个候选的残差数据进行编码的最佳模式选择,从而允许最终选择预测模式388以及其它模式决策。
预测模式概括地分为两个类别。第一类别是“帧内预测(intra-frameprediction)”(也称为“帧内预测(intra prediction)”)。在帧内预测中,生成块的预测,并且生成方法可以使用从当前帧获得的其他样本。帧内预测的类型包括帧内平面、帧内DC、帧内角度和矩阵加权帧内预测(MIP)。对于帧内预测的PB,可以将不同的帧内预测模式用于亮度和色度,因此主要就对PB的操作方面来描述帧内预测。另外,色度CB可以通过跨分量线性模型预测从共同定位的亮度样本预测。
第二类别的预测模式是“帧间预测(inter-frame prediction)”(也称为“帧间预测(inter prediction)”)。在帧间预测中,使用来自位流中按编码帧的顺序在当前帧之前的一个或两个帧的样本来产生对块的预测。此外,对于帧间预测,单个编码树通常用于亮度通道和色度通道这两者。位流中的编码帧的顺序可以与捕获或显示时的帧的顺序不同。当一个帧用于预测时,该块被称为“单预测”并且具有一个关联的运动矢量。当两个帧用于预测时,该块被称为“双预测”并且具有两个关联的运动矢量。对于P条带,各个CU可以是帧内预测或单预测。对于B条带,各个CU可以是帧内预测、单预测或双预测。通常使用“图片组”结构对帧进行编码,从而实现帧的时间层级。帧的时间层级允许帧按照显示帧的顺序参考先前和后续图片。以确保满足解码各个帧的依赖性所需的顺序对图像进行编码。
帧间预测的子类别被称为“跳过模式”。帧间预测和跳过模式被描述为两种不同的模式。然而,帧间预测模式和跳过模式这两者都涉及参考来自先前帧的样本块的运动矢量。帧间预测涉及经编码运动矢量增量,其指定相对于运动矢量预测子的运动矢量。从用“合并索引”选择的一个或多于一个候选运动矢量的列表中获得运动矢量预测子。经编码运动矢量增量向所选择的运动矢量预测提供空间偏移。帧间预测还使用位流133中的经编码残差。跳过模式仅使用索引(也称为“合并索引”)来从若干运动矢量候选中选择一个。在没有任何进一步信号通知的情况下使用所选择的候选。此外,跳过模式不支持对任何残差系数的编码。当使用跳过模式时不存在经编码残差系数意味着不需要进行跳过模式的变换。因此,跳过模式通常不会导致流水线处理问题。流水线处理问题可能是帧内预测的CU和帧间预测的CU的情况。由于跳过模式的有限的信号通知,当相对高质量的参考帧可用时,跳过模式对于实现非常高的压缩性能是有用的。随机访问图片组结构的较高时间层中的双预测CU通常具有准确地反映底层运动的高质量参考图片和运动矢量候选。
根据运动矢量和参考图片索引来选择样本。运动矢量和参考图片索引适用于所有颜色通道,因此主要就对PU而不是PB的操作方面来描述帧间预测。在各个类别(即,帧内及帧间预测)内,可应用不同技术以生成PU。例如,帧内预测可以使用来自先前重建样本的邻近行和列的值与方向的组合以根据规定滤波和生成处理来生成PU。替代地,可以使用少量参数来描述PU。帧间预测方法可以在运动参数的数量及其精度方面变化。运动参数通常包括参考帧索引,其指示将使用来自参考帧列表的哪个(哪些)参考帧加上各个参考帧的空间平移,但是可以包括更多帧、特殊帧或复杂仿射参数(诸如缩放和旋转等)。另外,可以应用预定的运动细化处理以基于参考样本块生成密集运动估计。
可以采用拉格朗日或类似的优化处理来进行(利用块分区器310的)CTU向CB的最佳分区的选择以及从多个可能性中的最佳预测模式的选择这两者。通过将候选模式的拉格朗日优化处理应用在模式选择器模块386中,选择成本测量最低的预测模式作为最佳模式。最低成本模式是所选择的预测模式388,并且也由熵编码器338编码在位流115中。通过模式选择器模块386的操作对预测模式388的选择扩展到块分区器310的操作。例如,预测模式388的选择的候选可以包括可应用于给定块的模式和可应用于整体与给定块同位置的多个更小块的附加模式。在包括适用于给定块和较小并置块的模式的情况下,候选的选择的处理隐含地也是用于确定CTU向CB的最佳层级分解的处理。
在视频编码器114的操作的第二阶段(称为“编码”阶段)中,在视频编码器114中进行对所选择的亮度编码树和所选择的色度编码树以及因此对各个所选择的CB的迭代。在迭代中,如本文进一步描述的,CB被编码到位流115中。
熵编码器338支持句法元素的可变长度编码和句法元素的算术编码这两者。使用上下文自适应二进制算术编码(CABAC)处理来支持算术编码。算术编码的句法元素由一个或多于一个“bin(二进制文件)”的序列组成。与位一样,bin的值为“0”或“1”。bin未作为离散位编码在位流115中。bin具有关联预测(或“可能”或“最大概率”)值和关联概率(被称为“上下文”)。当要编码的实际bin与预测值匹配时,对“最大概率符号”(MPS)进行编码。对最大概率符号进行编码在消耗位方面相对便宜。当要编码的实际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。
熵编码器338使用上下文编码的和旁路编码的bin的组合来对预测模式388进行编码。例如,当预测模式388是帧内预测模式时,在视频编码器114中生成“最大概率模式”的列表。最大概率模式的列表通常是诸如三个或六个模式等的固定长度,并且可以包括在早期块中遇到的模式。上下文编码bin对指示预测模式是否是最大概率模式其中之一的标志进行编码。如果帧内预测模式388是最大概率模式其中之一,则使用旁路编码bin对进一步信号通知进行编码。经编码的进一步信号通知例如使用截断一元bin串来指示哪个最大概率模式与帧内预测模式388相对应。否则,将帧内预测模式388编码为“剩余模式”。编码为剩余模式使用诸如固定长度代码等的(也使用旁路编码bin来编码的)替代句法以表示除存在于最大概率模式列表中的帧内预测模式以外的帧内预测模式。
多路复用器模块384根据选自所测试的各个候选CB的预测模式中的所确定的最佳预测模式388来输出PB 320。候选预测模式无需包括视频编码器114所支持的每个可想到的预测模式。
在确定并选择了PB 320、并在减法器322处从原始样本块中减去了PB320的情况下,获得表示为324的编码成本最低的残差并对该残差进行有损压缩。有损压缩处理包括变换、量化和熵编码的步骤。正向主要变换模块326对残差324应用正向变换,从而将残差324从空间域转换到频域并且产生由箭头328表示的主要变换系数。主要变换系数328被传递到正向次要变换模块330,以通过进行不可分离的次要变换(NSST)操作来产生由箭头332表示的变换系数。正向主要变换通常是可分离的,例如水平地针对不超过16个样本的块宽度且垂直地针对不超过16个样本的块高度,通常使用II型离散余弦变换(DCT-2)(但VII型离散正弦变换(DST-7)和VIII型离散余弦变换(DCT-8)可能也是可用的)来变换各个块的一组行然后变换一组列。通过首先对块的各个行应用一维变换以产生中间结果,然后对中间结果的各个列应用一维变换以产生最终结果,来进行各组行和列的变换。正向次要变换通常是不可分离的变换,其仅应用于帧内预测CU的残差,并且尽管如此也可以被绕过。正向次要变换对16个样本(布置为主变换系数328的左上4×4子块)或64个样本(布置为左上8×8系数,布置为主变换系数328的四个4×4子块)进行操作。此外,根据CU的帧内预测模式从多个集合中选择正向次要变换的矩阵系数,使得两个系数集合可供使用。使用矩阵系数集合中的一个或绕过正向次要变换用“nsst_index”句法元素来用信号通知,该句法元素使用截断一元二值化进行编码以表达值零(不应用次要变换)、一(所选择的第一矩阵系数集合)或二(所选择的第二矩阵系数集合)。
视频编码器114还可以选择跳过主要变换和次要变换这两者,称为“变换跳过”模式。跳过变换适合于缺乏足够相关性的残差数据,以经由表示为变换基函数来降低编码成本。某些类型的内容(诸如相对简单的计算机生成的图形)可以表现出类似的行为。当使用变换跳过模式时,变换系数332与残差系数324相同。
变换系数332被传递到量化器模块334。在模块334处,进行根据“量化参数”的量化以产生由箭头336表示的量化系数。量化参数对于给定TB是恒定的,并且因此得到针对TB的残差系数的产生的均匀缩放。通过应用“量化矩阵”也可以实现非均匀缩放,由此应用于各个残差系数的缩放因子从量化参数与大小通常等于TB的大小的缩放矩阵中的相应条目的组合导出。缩放矩阵可以具有小于TB的大小的大小,并且当应用于TB时,最近邻方法用于从大小小于TB大小的缩放矩阵提供针对各个残差系数的缩放值。量化系数336被供给至熵编码器338以在位流115中编码。通常,根据扫描图案,扫描具有至少一个有效量化系数的各个TB的量化系数以产生值的有序列表。扫描图案通常将TB扫描为4×4“子块”的序列,从而以4×4组残差系数的粒度提供常规扫描操作,其中子块的布置取决于TB的大小。另外,预测模式388和相应的块分区也被编码在位流115中。
如上文所描述,视频编码器114需要访问与由视频解码器134看到的帧表示相对应的帧表示。因此,量化系数336也由去量化器模块340逆量化以产生由箭头342表示的重建的变换系数。重建的变换系数342传递通过逆次要变换模块344以产生由箭头346表示的重建的主要变换系数。重建的主要变换系数346被传递到逆主要变换模块348以产生TU的由箭头350表示的重建的残差样本。由逆次要变换模块344进行的逆变换的类型与由正向次要变换模块330进行的正向变换的类型相对应。由逆主要变换模块348进行的逆变换的类型与由主要变换模块326进行的主要变换的类型相对应。求和模块352将重建的残差样本350与PU320相加以产生CU的重建样本(由箭头354指示)。
重建样本354被传递到参考样本高速缓冲存储器356和环内滤波器模块368。通常使用ASIC上的静态RAM实现(因此避免了昂贵的片外存储器访问)的参考样本高速缓冲存储器356提供了满足用于为帧中的后续CU生成帧内PB的依赖关系所需的最小样本存储。最小依赖关系通常包括沿着一行CTU的下方的样本的“线缓冲器”,以供下一行CTU以及范围由CTU的高度设置的列缓冲使用。参考样本高速缓冲存储器356将参考样本(由箭头358表示)供给至参考样本滤波器360。样本滤波器360应用平滑操作以产生滤波参考样本(由箭头362指示)。滤波参考样本362由帧内预测模块364使用以产生由箭头366表示的样本的帧内预测块。对于各候选帧内预测模式,帧内预测模块364产生样本块即366。。
环内滤波器模块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-386的处理阶段。帧数据113(和位流115)也可以从存储器206、硬盘驱动器210、CD-ROM、蓝光盘(Blue-ray diskTM)或其它计算机可读存储介质中读取(或者被写入存储器206、硬盘驱动器210、CD-ROM、蓝光盘或其它计算机可读存储介质)。另外,帧数据113(和位流115)可以从外部源(诸如连接至通信网络220的服务器或者射频接收器等)接收(或者被发送至该外部源)。
在图4中示出视频解码器134。尽管图4的视频解码器134是通用视频编码(VVC)视频解码流水线的示例,但其它视频编解码器也可用于进行本文所述的处理阶段。如图4所示,位流133被输入到视频解码器134。位流133可以从存储器206、硬盘驱动器210、CD-ROM、蓝光盘TM或其它非暂时性计算机可读存储介质中读取。可替代地,位流133可以从外部源(诸如连接至通信网络220的服务器或者射频接收器等)接收。位流133包含表示要解码的所捕获帧数据的编码句法元素。
位流133被输入到熵解码器模块420。熵解码器模块420通过对“bin”序列进行解码来从位流133中提取句法元素,并将句法元素的值传递给视频解码器134中的其他模块。从位流133提取的句法元素的一个示例是量化系数424。熵解码器模块420使用算术解码引擎将各个句法元素解码为一个或多于一个bin的序列。各个bin可以使用一个或多于一个“上下文”,其中上下文描述了要用于编码bin的“一”和“零”值的概率等级。在多个上下文可用于给定bin的情况下,进行“上下文建模”或“上下文选择”步骤以选择可用上下文中的一个对bin进行解码。解码bin的处理形成顺序反馈环路。反馈环路中的操作的数量优选地被最小化,以使熵解码器420能够实现以bin/秒为单位的高吞吐量。上下文建模取决于在选择上下文时视频解码器134已知的位流的其它性质,即当前bin之前的性质。例如,可基于编码树中的当前CU的四叉树深度来选择上下文。依赖性优选地基于在解码bin之前已知的性质,或者在不需要长顺序处理的情况下确定。
量化的系数424被输入到去量化器模块428。去量化器模块428对量化的系数424进行逆量化(或缩放),以根据量化参数生成由箭头432表示的重建中间变换系数。如果在位流133中指示使用非均匀逆量化矩阵,则视频解码器134从位流133读取量化矩阵作为缩放因子序列,并且将缩放因子布置成矩阵。逆缩放将量化矩阵与量化参数组合使用以创建重建中间变换系数432。重建中间变换系数432被传递到逆次要变换模块436,其中可以根据解码的“nsst_index”句法元素应用次要变换。在处理器205的执行下,熵解码器420从位流133解码“nsst_index”。逆次要变换模块436产生重建变换系数440。
重建变换系数440被传递到逆主要变换模块444。模块444将系数从频域变换回空间域。模块444的操作结果是由箭头448表示的残差样本块。残差样本块448在大小上等于相应的CU。逆主要变换的类型可以是II型离散余弦变换(DCT-2)、VII型离散正弦变换(DST-7)、VIII型离散余弦变换(DCT-8)或“变换跳过”模式。变换跳过模式的使用由变换跳过标志用信号通知,该变换跳过标志可以从位流133解码或以其它方式推断。当使用变换跳过模式时,残差样本448与重建变换系数440相同。
残差样本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表示的帧内预测样本的块。
当CB的预测模式在位流133中被指示为帧内预测时,帧内预测样本480经由多路复用器模块484形成解码PB 452。帧内预测产生样本的预测块(PB),即一个颜色分量中的块,其是使用同一颜色分量中的“相邻样本”导出的。相邻样本是与当前块邻近的样本,并且由于在块解码顺序中在前,因此已经被重建。在亮度块和色度块并置的情况下,亮度块和色度块可以使用不同的帧内预测模式。然而,两个色度通道各自共享相同的帧内预测模式。
亮度块的帧内预测由四种类型组成。“DC帧内预测”涉及用表示相邻样本的平均值的单个值填充PB。“平面帧内预测”涉及根据平面利用DC偏移以及从相邻样本导出的垂直和水平梯度用样本填充PB。“角度帧内预测”涉及用在特定方向(或“角度”)上跨PB滤波和传播的相邻样本填充PB。在VVC中,PB可以从多达65个角度中选择,其中矩形块能够利用正方形块不可用的不同角度。“矩阵帧内预测”涉及通过将减少的相邻样本集合乘以视频解码器134可用的多个可用矩阵之一来填充PB。通过对相邻样本进行滤波和子采样来产生减少的相邻样本集合。然后,通过将减少的样本集合乘以矩阵并加上偏移矢量来产生减少的预测样本集合。根据PB的大小从多个可能的矩阵中选择矩阵和关联的偏移矢量,其中矩阵和偏移矢量的特定选择由“MIP模式”句法元素指示。例如,对于大小大于8×8的PB,有11个MIP模式,而对于大小为8×8的PB,有19个MIP模式。最后,通过插值从减少的预测样本集合来填充由矩阵帧内预测产生的PB。
第五种类型的帧内预测可用于色度PB,由此根据“跨分量线性模型”(CCLM)模式从并置亮度重建样本生成PB。三种不同的CCLM模式是可用的,每种CCLM模式使用从相邻亮度和色度样本导出的不同模型。然后,所导出的模型用于从并置亮度样本来生成色度PB的样本块。
当CB的预测模式在位流133中被指示为帧间预测时,运动补偿模块434使用运动矢量和参考帧索引从帧缓冲器496中选择和过滤样本块498,来产生表示为438的帧间预测样本的块。样本块498是从帧缓冲器496中所存储的先前解码帧获得的。为了进行双预测,产生两个样本块并将这两个样本块混合在一起以产生解码PB 452的样本。帧缓冲器496由来自环内滤波模块488的滤波块数据492填充。与视频编码器114的环内滤波模块368一样,环内滤波模块488应用任何的DBF、ALF和SAO滤波操作。一般地,运动矢量应用于亮度和色度通道这两者,但用于子样本插值亮度和色度通道的滤波处理不同。帧缓冲器496输出经解码的视频样本135。
图5是示出通用视频编码的树结构中的区域向一个或多于一个子区域的可用分割或拆分的集合500的示意框图。如参考图3所述,集合500中示出的分割可供编码器114的块分区器310利用以根据如拉格朗日优化确定的编码树将各CTU分割成一个或多于一个CU或CB。
尽管集合500仅示出将正方形区域分割成其它可能非正方形子区域,但应当理解,图500正示出潜在分割、而并不需要包含区域为正方形。如果包含区域为非正方形,则根据包含块的长宽比来对从分割得到的块的尺寸进行缩放。一旦区域未被进一步拆分,即,在编码树的叶节点处,CU就占据该区域。利用块分区器310的CTU向一个或多于一个CU的特定子分割被称为CTU的“编码树”。
当所得子区域达到最小CU大小时,将区域子分割为子区域的处理必须终止。除了约束CU以禁止块区域小于预定最小大小(例如16个样本)之外,CU被约束为具有最小宽度或高度4。就宽度和高度方面或者就宽度或高度方面这两者,其他最小值也是可能的。子分割处理还可以在最深分解层级之前终止,从而得到大于最小CU大小的CU。可能不发生拆分,从而得到占据整个CTU的单个CU。占据整个CTU的单个CU是最大可用编码单元大小。由于使用诸如4:2:0等的子采样色度格式,视频编码器114和视频解码器134的布置可以比在亮度通道中更早地终止色度通道中的区域的拆分。
在不存在进一步子分割的情况下,在编码树的叶节点处存在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大小。可以通过约束拆分选项以消除将得到小于四个样本的块宽度或高度或者将得到不是四个样本的倍数的拆分来降低异常(非正方形)块大小的可能性。通常,约束将在考虑亮度样本时适用。然而,在上述布置中,约束也可单独应用于色度通道的块。将约束应用于色度通道的拆分选项可以针对亮度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对残差块进行正向变换。在视频解码器134中进行等效逆变换处理以从位流133获得TB。
在视频编码器114中,可以通过进行两级反向对角线扫描将量化系数336重新布置成一维列表。类似地,在视频解码器134中,量化系数424可以通过相同的两级反向对角线扫描从一维列表重新布置到二维子块集合。
图8A示出示例8×8TB 800的两级反向对角线扫描810。扫描810被示出为从TB 800的右下残差系数位置前进回到TB 800的左上(DC)残差系数位置。扫描810的路径以4×4区域(称为子块)前进,并且从一个子块前进到下一子块。对于宽度或高度为2的TB,2×2、2×8或8×2的子块大小是可用的。根据“编码的子块标志”,进行特定子块内的扫描或跳过子块。当跳过对子块的扫描时,推断为子块内的所有残差系数具有零值。尽管扫描810被示出为从TB 800的右下残差系数位置开始,但是对于给定的残差系数集合,扫描从“最后有效系数”的位置开始,当系数的顺序被认为是从DC系数而不是扫描顺序前进时,系数是“最后”的。
图8B示出当选择TSRC处理时使用的示例8×8TB 850的替代的两级正向对角线扫描860。当在视频编码器114中使用TSRC处理时,通过扫描860将量化系数336重新布置成一维列表。类似地,如果在视频解码器134中将TSRC处理用于当前TB,则通过扫描860将量化系数424从一维列表重新布置成二维子块集合。扫描860被示出为从TB 850的左上(DC)残差系数位置前进到TB850的右下残差系数位置。与扫描810不同,扫描860不在“最后有效系数”处终止。
图8A和8B示出通常在VVC中使用的扫描图案。本文描述的示例使用扫描图案810对已经由模块326变换的残差系数进行编码,并且扫描图案860用于跳过变换的变换块。然而,在一些实现中,可以使用其他扫描图案。
如上文所描述,当使用变换跳过模式时,变换系数332与残差系数324相同。因此,无论是否选择变换跳过模式,变换系数332有时也可被称作残差系数。当期望无损编码时,视频编码器114针对当前TB选择变换跳过,并且利用值“真”将变换跳过标志用信号通知给位流133。与当前TB相关联的残差系数332被编码到位流133。两种残差编码处理是可用的:“常规残差编码”(RRC)处理和“变换跳过残差编码”(TSRC)处理。在视频编码器114的正常操作中,如果选择了变换跳过(变换跳过标志具有值“真”),则选择TSRC处理,否则(变换跳过标志具有值“假”)选择RRC处理。然而,在无损编码的情况下,通常不期望残差系数332的编码由TSRC专门处理。
在视频编码器114的一个布置中,在位流133中用信号通知TSRC禁用标志。TSRC禁用标志可以以相对高的电平(诸如每个序列一次或每个图片一次)用信号通知,使得用信号通知TSRC禁用标志的相对成本低。高级句法元素通常被分组在参数集中,诸如用于序列级标志的“序列参数集”(SPS)或用于参数级标志的“图片参数集”(PPS)。当视频数据113属于不太可能适合于(在编码损失和特征的再现方面)用TSRC处理编码的类别时,TSRC禁用标志可被设置为“真”。不适合用TSRC编码的视频数据的示例为自然场景内容。当视频数据113属于可能利用TSRC处理很好地编码的类别时,TSRC禁用标志可以被设置为“假”。适合于用TSRC处理编码的视频数据包括人工画面内容。
如果视频编码器114针对当前TB选择变换跳过,并且TSRC禁用标志被设置为“真”,则使用RRC处理将残差系数332编码到位流133。类似地,如果视频解码器134确定为变换跳过用于当前TB,且TSRC禁用标志被设置为“真”,则使用RRC处理从位流133解码残差系数432。
图9示出用于使用RRC处理对残差系数332的变换块进行编码的方法900。方法900可以由诸如配置的FPGA、ASIC或ASSP等的设备来体现。另外,方法900可以由视频编码器114在处理器205的执行下进行。如此,方法900可被实现为存储在计算机可读存储介质上和/或存储器206中的软件233的模块。
在一些布置中,方法900由视频编码器114在量化器334处在接收到残差系数332时、然后由熵编码器338实现。方法900开始于对系数进行量化步骤910。
在对系数进行量化步骤910处,步骤910调用下面关于图11描述的方法1100。方法1100可以由诸如配置的FPGA、ASIC或ASSP等的设备来体现。另外,方法1100可以由视频编码器114在处理器205的执行下进行。如此,方法1100可被实现为存储在计算机可读存储介质上和/或存储器206中的软件233的模块。方法1100对残差系数332进行量化,从而产生量化系数336。方法900在处理器205的控制下从步骤910前进到编码最后位置步骤920。
在编码最后位置步骤920处,视频编码器114找到残差系数332的变换块所用的量化系数336中的最后有效系数的位置。最后有效系数是相对于适当扫描图案的正向方向(例如在两级正向对角线扫描860的方向上)确定的。如果系数具有除零之外的任何值,则量化系数是有效的。最后有效系数的位置被写入位流133。方法900在处理器205的控制下从步骤920前进到初始化状态步骤930。
在初始化状态步骤930处,量化器状态Qstate被设置为值零。另外,在步骤930处选择包含最后有效系数的子块。方法900在处理器205的控制下从步骤930前进到确定经编码子块标志步骤940。
本文中的描述是指一些标志为“真”或“假”。设置为“真”意味着标志值指示选择了模式或满足要求。设置为“假”意味着标志值指示未选择模式或不满足要求。
在确定经编码子块标志步骤940处,视频编码器114确定并设置编码子块标志。如果当前所选子块是在初始化状态步骤930中选择的第一子块,则经编码子块标志被设置为“真”,但不被编码到位流133。如果当前所选子块被识别为最后子块,则如下文关于最后子块测试970所描述,经编码子块标志被设置为“真”,但不被编码到位流133。
否则,如果在属于所选择的子块的4×4量化系数中存在至少一个有效系数,则视频编码器114将经编码子块标志设置为(i)“真”,或者如果不存在有效系数,则设置为(ii)“假”,并且将经编码子块标志编码到位流133。方法900在处理器205的控制下从步骤940前进到经编码子块标志测试步骤950。
在经编码子块标志测试步骤950处,方法900确定经编码子块标志的值。如果经编码子块标志被设置为“真”,则方法900前进到编码子块步骤960。否则,如果编码子块标志被设置为“假”,则方法900前进到最后子块测试步骤970。
在编码子块步骤960处,熵编码器338将所选择的子块中的量化系数编码到位流133。步骤960调用下面关于图13描述的方法1300。方法900在处理器的控制下从步骤960前进到最后子块测试970。
在最后子块测试970处,方法900进行操作以确定所选择的子块是否为当前变换块中的最后子块。如果当前所选子块是变换块的左上子块,则步骤900返回“是”,并且方法900终止。否则,如果当前所选子块不是变换块的左上子块,则步骤970返回“否”,并且方法900前进到选择下一子块步骤980。
在选择下一子块步骤980处,选择变换块中的下一子块。选择反向对角线扫描顺序810中的下一子块。方法900从步骤980前进到确定所选择的子块的经编码子块标志步骤940。
图10示出用于通过RRC处理对残差系数432的变换块进行解码的方法1000。方法1000可以由诸如配置的FPGA、ASIC或ASSP等的设备来体现。另外,方法1000可以由视频解码器134在处理器205的执行下进行。如此,方法1000可被实现为存储在计算机可读存储介质上和/或存储器206中的软件233的模块。
在一些布置中,方法1000由视频编码器134在熵解码器420处在接收到位流133时、以及在去量化器模块428处实现。方法1000开始于解码最后位置步骤1010。
在解码最后位置步骤1010处,从位流133中解码残差系数432的变换块的最后有效系数位置。方法1000在处理器205的控制下从步骤1010前进到初始化状态步骤1020。
在初始化状态步骤1020处,视频解码器134将量化器状态Qstate初始化为值零。另外,在步骤1020处选择包含最后有效系数位置的子块。方法1000在处理器205的控制下从步骤1020前进到确定经编码子块标志步骤1030。
在确定经编码子块标志步骤1030处,视频解码器134确定经编码子块标志。如果当前所选子块是在初始化状态步骤1020中选择的第一子块,则将经编码子块标志设置为“真”(即,推断经编码子块标志为“真”)。如果当前所选子块被识别为最后子块,则如下文在最后子块测试1060中所描述的,经编码子块标志被推断为“真”。否则,视频解码器134从位流133中解码经编码子块标志。方法1000在处理器205的控制下从步骤1030前进到经编码子块标志测试1040。
在经编码子块标志测试1040处,方法1000测试在步骤1030处确定的经编码子块标志的值。如果在步骤1040处确定为经编码子块标志具有值“真”,则方法1000前进到解码子块步骤1050。否则,如果在步骤1040处确定为经编码子块标志具有值“假”,则为当前所选子块中的所有量化系数分配值零,并且方法1000前进到最后子块测试1060。
在解码子块步骤1050处,熵解码器420从位流133中解码所选择的子块的量化系数。步骤1050调用下面关于图14描述的方法1400。方法1000在处理器205的控制下前进到最后子块测试1060。
在最后子块测试1060处,如果当前所选子块是变换块的左上子块,则步骤1060返回“是”,并且方法1000前进到缩放系数步骤1080。否则,步骤1060返回“否”,并且方法1000前进到选择下一子块步骤1070。
在选择下一子块步骤1070处,选择反向对角线扫描顺序810中的下一子块。方法1000在处理器205的控制下从步骤1070前进到确定经编码子块标志步骤1030。
在缩放系数步骤1080处,去量化器模块428对量化系数424应用缩放,从而产生重建的残差系数432。通过使用经解码符号位重建子块的残差系数来解码子块。步骤1080调用下面关于图12描述的方法1200。方法1000在执行步骤1080时终止。
图11示出用于量化变换块的残差系数332从而产生量化系数336的方法1100。在方法900的步骤910处,针对TB实现方法1100。方法1100开始于DQ测试1110。
在DQ测试1110处,视频编码器114确定是否使用相关量化对残差系数332进行量化。视频编码器114检查启用相关量化标志的值,该启用相关量化标志作为高级句法在位流133中用信号通知。启用相关量化标志确定在标志的范围内是否允许相关量化。例如,序列级相关量化标志确定在编码整个视频序列时是否允许相关量化。图片级相关量化标志确定在编码当前图片时是否允许相关量化,并且将优先于序列级相关量化标志的值。如果启用相关量化标志为“假”,则步骤1110返回“否”,并且方法1100前进到标量量化步骤1120。
在DQ测试1110的一个布置中,如果启用相关量化标志为“真”,则视频编码器114还检查当前TB的变换跳过标志的值。如果启用相关量化标志为“真”并且变换跳过标志为“真”,则步骤1110返回“否”,并且方法1100前进到标量量化步骤1120。否则,如果启用相关量化标志为“真”并且变换跳过标志为“假”,则步骤1110返回“是”,并且方法1100前进到相关量化步骤1130。
在DQ测试1110的另一布置中,如果启用相关量化标志为“真”,则视频编码器114还检查TSRC禁用标志的值。如果启用相关量化标志为“真”并且TSRC禁用标志为“真”,则步骤1110返回“否”,并且方法1100前进到标量量化步骤1120。否则,如果启用相关量化标志为“真”并且TSRC禁用标志为“假”,则步骤1110返回“是”,并且方法1100前进到相关量化步骤1130。
在DQ测试1110的又一布置中,如果启用相关量化标志为“真”,则视频编码器114还检查当前TB的量化参数(QP)的值。QP指示将应用于残差系数332的量化程度。根据取决于视频编码器114的位深度BD的初始QPi和偏移将QP确定为QP=QPi+6*(BD-8)。例如,如果QPi为4且位深度为8,则QP被确定为四。如果是QPi为-8且位深度为10,则QP被确定为4。通常,QP为4指示残差系数将不被量化,并且因此无损操作是可能的。然而,QP的较高值仍可实现无损操作。例如,如果视频数据113最初是在位深度8处捕获,但以更高位深度供给至视频编码器114,则无损操作在更高QP下是可能的。例如,如果视频数据113是在位深度8处被捕获但是在位深度10处被供给至视频编码器114,则无损操作在4、10或16的QP处是可能的。可能进行无损操作的QP可由变换跳过块的最小QP指示,所述最小QP在高级句法参数集中用信号通知。如果启用相关量化标志为“真”并且QP为4(或指示无损操作的任何值),则步骤1110返回“否”,并且方法1100前进到标量量化步骤1120。否则,如果启用相关量化标志为“真”并且QP不是4(或指示无损操作的类似值),则步骤1110返回“是”,并且方法1100前进到相关量化步骤1130。
在标量量化步骤1120处,残差系数332表示为r[n]。然后,通过根据下面的式(1)对残差系数r[n]进行量化来产生量化系数q[n]:
q[n]=(k*r[n]+offset)>>qbits (1)
在式(1)中,k是缩放因子,qbits是粗略量化因子,并且offset控制量化阈值的放置。基于当前TB的量化参数的值来确定k、qbits、sffset。例如,如果QP为4,则k=1、qbits=0以及offset=0。然后当QP为4时,q[n]=r[n]并且在标量量化步骤中没有发生损失。方法1100在处理器205的控制下从步骤1120前进到SBH测试1140。
在相关量化步骤1130处,可以通过选择多个标量量化器中的一个来量化各个残差系数r[n]。对于相同的QP,标量量化器具有相同的量化分区大小,但是量化阈值相对于彼此偏移。用于特定残差系数r[n]的标量量化器取决于针对每个系数更新的当前量化器状态Qstate,并且取决于所得到的q[n]的奇偶性(最低有效位)。由于对先前状态的依赖性,不是基于每个系数确定最佳量化结果。确定最佳量化结果的一种有效方法是通过在各个系数位置处构建可能的量化状态的“网格”。可以通过等效地找到通过网格的最佳路径来找到最佳量化结果。可以通过应用维特比(Viterbi)算法来确定最合适的网格路径。方法1100在执行步骤1130时终止。
在SBH测试1140处,视频编码器114在编码TB的系数之前确定是否使用符号位隐藏来修改量化系数q[n]。视频编码器114检查启用符号位隐藏标志的值。启用符号位隐藏标志可以在位流133中作为高级句法用信号通知。例如,可以在图片头部中用信号通知启用符号位隐藏标志。如果启用相关量化标志为“真”,则启用符号位隐藏标志隐含地为“假”。如果启用符号位隐藏标志为“假”,则步骤1140返回“否”,并且方法1100终止。
在SBH测试1140的一个布置中,该确定取决于当前TB的启用符号位隐藏标志的值和变换跳过标志的值。如果启用符号位隐藏标志为“真”,则视频编码器114还检查当前TB的变换跳过标志的值。如果启用符号位隐藏标志为“真”并且变换跳过标志为“真”,则步骤1140返回“否”,并且方法1100终止。否则,如果启用符号位隐藏标志为“真”并且变换跳过标志为“假”,则步骤1140返回“是”,并且方法1100前进到调整奇偶性步骤1150。
在SBH测试1140的另一布置中,该确定取决于启用符号位隐藏标志的值和TSRC禁用标志的值。如果启用符号位隐藏标志为“真”,则视频编码器114还检查TSRC禁用标志的值。如果启用符号位隐藏标志为“真”并且TSRC禁用标志为“真”,则步骤1140返回“否”,并且方法1100终止。否则,如果启用符号位隐藏标志为“真”并且TSRC禁用标志为“假”,则步骤1140返回“是”,并且方法1100前进到调整奇偶性步骤1150。
在SBH测试1140的又一布置中,该确定取决于当前TB的启用符号位隐藏标志的值和量化参数(QP)的值。如果启用符号位隐藏标志为“真”,则视频编码器114还检查当前TB的QP的值。如果启用符号位隐藏标志为“真”且QP为4(或指示无损操作的任何值),则步骤1140返回“否”且方法1100终止。否则,如果启用符号位隐藏标志为“真”且QP不是4(或指示无损操作的类似值),则步骤1140返回“是”,并且方法1100前进到调整奇偶性步骤1150。
在调整奇偶性步骤1150处,视频编码器114检查当前TB中的各个子块的第一和最后有效系数的位置。如果子块的第一有效位置和最后有效位置之间的差大于阈值(通常为3),则符号位隐藏将用于该子块。对于将使用符号位隐藏的各个子块,视频编码器114检查子块中第一有效系数的符号,并相应地调整子块中系数的奇偶性。如果系数为偶数,则系数的奇偶性为零,如果系数为奇数,则为1。如果奇数系数的数量是奇数,则多个系数的奇偶性的和为零,如果奇数系数的数量是偶数,则多个系数的奇偶性的和为1。如果子块中第一有效系数的符号为正,则调整子块中的系数,使得奇偶性的和为零。如果子块中第一有效系数的符号为负,则调整子块中的系数,使得奇偶性的和为1。方法1100在执行步骤1150之后终止。
图12示出用于对量化系数424应用缩放以产生重建的残差系数432的方法1200。方法1200可以由诸如配置的FPGA、ASIC或ASSP等的设备来体现。另外,方法1200可以由视频解码器134在处理器205的执行下进行。如此,方法1200可被实现为存储在计算机可读存储介质上和/或存储器206中的软件233的模块。方法1200在方法1000的步骤1080处实现。方法1200开始于DQ测试1210。
在DQ测试1210处,视频解码器134确定是否使用相关量化对量化系数424进行去量化。视频解码器134检查启用相关量化标志的值,该启用相关量化标志可以从位流133中解码,或者基于其他高级句法标志的值来推断。如果启用相关量化标志为“假”,则步骤1210返回“否”,并且方法1200前进到逆标量量化步骤1220。
在DQ测试1210的一个布置中,如果启用相关量化标志为“真”,则视频解码器134还检查当前TB的变换跳过标志的值。如果启用相关量化标志为“真”并且变换跳过标志为“真”,则步骤1210返回“否”,并且方法1100前进到逆标量量化步骤1220。否则,如果启用相关量化标志为“真”并且变换跳过标志为“假”,则步骤1210返回“是”,并且方法1100前进到逆相关量化步骤1230。
在DQ测试1210的另一布置中,如果启用相关量化标志为“真”,则视频解码器134还检查TSRC禁用标志的值。如果启用相关量化标志为“真”并且TSRC禁用标志为“真”,则步骤1210返回“否”,并且方法1100前进到逆标量量化步骤1220。否则,如果启用相关量化标志为“真”并且TSRC禁用标志为“假”,则步骤1210返回“是”,并且方法1100前进到逆相关量化步骤1230。
在DQ测试1210的又一布置中,如果启用相关量化标志为“真”,则视频解码器134还检查当前TB的量化参数(QP)的值。如果启用相关量化标志为“真”并且QP为4(或指示无损操作的任何值),则步骤1210返回“否”,并且方法1100前进到逆标量量化步骤1220。否则,如果启用相关量化标志为“真”并且QP不是4(或指示无损操作的类似值),则步骤1210返回“是”,并且方法1100前进到逆相关量化步骤1230。
在逆标量量化步骤1220处,视频解码器134对量化系数424进行缩放,从而产生重建的残差系数432。量化系数424表示为q[n]。通过根据以下式(2)缩放量化系数q[n]来产生重建的残差系数r[n]:
Figure BDA0003789641300000391
在式(2)中,s是基于当前TB的QP值所确定的缩放因子。例如,如果QP为4,则s=1并且r[n]=q[n]。方法1200在执行步骤1220时终止。
在逆相关量化步骤1230处,视频解码器134将逆相关量化应用于量化系数424,从而产生重建的残差系数432。量化器状态Qstate最初被重置为零。量化系数424表示为q[n]。以反向对角线扫描顺序810访问各个系数位置n,并且根据式(3)计算各个重建的残差系数r[n]:
Figure BDA0003789641300000392
Figure BDA0003789641300000401
在式(3)中,s是基于当前TB的QP值所确定的缩放因子。
在计算各个重建的残差系数r[n]之后,基于根据表1的q[n]的奇偶性更新量化器状态:
先前Qstate 更新后的Qstate(偶性) 更新后的Qstate(奇性)
0 0 2
1 2 0
2 1 3
3 3 1
表1:Qstate转换
方法1200在执行步骤1230时终止。
为了利用量化系数336的统计特性,量化系数在编码之前由视频编码器114(通常由熵编码器338)二值化为多个句法元素。例如,由于量化系数336通常具有零值,因此一个句法元素是有效性标志,其对于具有零值的量化系数被设置为“假”。如果有效性标志被设置为“假”,则不用信号通知用于关联的量化系数的其它句法元素。有效性标志可以通过使用上下文自适应二进制算术编码(CABAC)熵编码器被编码到位流133。
尽管CABAC编码器相对高效地编码经上下文编码的句法元素,但通常期望限制经上下文编码的句法元素的数量以最小化计算要求和硬件实现的成本。因此,在熵编码器338将量化系数336二值化为多个句法元素之后,一些句法元素被上下文编码到位流133,而其他句法元素被旁路编码到位流133。针对每个变换块限制经上下文编码的句法元素bin的总数。在VVC标准中,将限制设置为每个样本1.75个bin。例如,对于由六十四个样本组成的8×8变换块,经上下文编码bin预算被设置为一百一十二(112)个bin。在将TB编码到位流133的过程中,每当句法元素经上下文编码时,跟踪且递减剩余的经上下文编码bin预算。当剩余的经上下文编码bin预算耗尽时,必须对任何剩余的量化系数和关联的句法元素进行旁路编码。
图13示出用于将当前所选子块的量化系数(336)编码到位流133的方法1300。方法1300在方法900的步骤960处实现。方法1300可以由诸如配置的FPGA、ASIC或ASSP等的设备来体现。另外,方法1300可以由视频编码器114在处理器205的执行下进行。如此,方法1300可被实现为存储在计算机可读存储介质上和/或存储器206中的软件233的模块。方法1300开始于选择第一系数步骤1310。
在选择第一系数步骤1310处,方法1300选择当前子块的量化系数。如果当前子块包含最后有效系数位置,则将当前选择的系数设置为最后有效系数。否则,如果当前子块不包含最后有效系数位置,则将当前选择的系数设置为当前子块的右下系数。方法1300前进到使用上下文编码检查1320。
在使用上下文编码检查1320处,视频编码器114检查剩余的经上下文编码bin预算是否大于或等于4。如果剩余的经上下文编码bin预算大于或等于4,则步骤1320返回“是”,且方法1300前进到编码经上下文编码的句法元素步骤1330。否则,如果当前经上下文编码bin预算小于4,则步骤1320返回“否”,并且方法1300前进到编码剩余通过步骤1370。
在编码经上下文编码的句法元素步骤1330处,视频编码器114可以使用可能包括有效性标志、大于1标志、奇偶性标志和大于3标志的CABAC编码器将多个句法元素编码到位流133。与句法元素相关联的各个bin由CABAC编码器使用“上下文模型”来编码。可以根据量化器状态Qstate的当前值来选择各个bin的上下文模型。另外,每当经上下文编码bin由CABAC编码器编码到位流133时,在步骤1330处将剩余的经上下文编码bin预算减少1。
如果在步骤1330处当前系数是最后有效系数,则有效性标志被设置为“真”,但是不被编码到位流133。如果当前所选子块不是反向扫描顺序810中的第一或最后子块,并且当前选择的系数是(如下文在最终系数检查1350中所述的)最终系数,并且当前所选子块中的先前系数的所有有效性标志都是“假”,则有效性标志被设置为“真”。有效性标志不被编码到位流133。如果当前系数的量值为零,则在步骤1330处,有效性标志被设置为“假”并且被上下文编码到位流133。否则,在步骤1330处,有效性标志被设置为“真”并且被上下文编码到位流133。
如果当前系数的量值为1,则在步骤1330处,大于1标志被设置为“假”并且被上下文编码到位流133。否则,大于1标志被设置为“真”并且被上下文编码到位流133。
如果当前系数具有至少为2的量值,则如果当前系数为偶数,则将奇偶性标志设置为“假”,或者如果当前系数为奇数,则将奇偶性标志设置为“真”。在步骤1330处,奇偶性标志被上下文编码到位流133。如果当前系数具有大于3的量值,则在步骤1330处,大于3标志被设置为“真”并且被上下文编码到位流133。否则,如果当前系数具有2或3的量值,则大于3标志被设置为“假”并且被上下文编码到位流133。
方法1300在处理器205的控制下从步骤1330前进到DQ测试1340。取决于在1310处选择的系数,方法1300在设置(或在一些情况下编码)有效性标志之后前进到步骤1340。否则,方法1300在编码大于1标志、奇偶性标志和大于3标志中的最后一个适当标志之后前进到步骤1340。
在DQ测试1340处,使用与在DQ测试1110中检查的条件相同的条件来确定步骤1340返回“是”还是“否”。如果步骤1340返回“是”,则方法1300前进到更新Qstate步骤1345。否则,如果步骤1340返回“否”,则方法1300前进到最终系数检查1350。
在更新Qstate步骤1345处,根据表1基于当前系数的奇偶性来更新量化器状态Qstate。方法1300从步骤1345前进到最终系数检查1350。
在最终系数检查1350处,视频编码器114检查当前选择的系数是否是当前所选子块的左上系数。如果当前选择的系数是当前所选子块的左上系数,则步骤1350返回“是”,并且方法1300前进到编码剩余通过步骤1370。否则,如果当前系数不是左上系数,则步骤1350返回“否”,并且方法1300前进到选择下一系数步骤1360。
在选择下一系数步骤1360处,选择反向对角线扫描顺序810中的当前所选子块的下一系数。方法1300从步骤1360前进到使用上下文编码检查1320。
在编码剩余通过步骤1370处,例如由熵编码器338将当前所选子块的量化系数的任何剩余量值二值化并旁路编码到位流133。例如,以反向对角线扫描顺序810对量化系数进行编码。如果量化系数由CABAC编码器进行上下文编码(即,使用上下文编码检查1320通过(返回“是”)),则如果大于3标志为“真”,则扫描位置n处的量化系数具有剩余量值r[n]。使用式(4)确定剩余量值:
r[n]=(x[n]-4)>>1, (4)
其中式(4),x[n]是扫描位置n处的量化系数的绝对量值。量值r[n]被二值化并旁路编码到位流133。如果量化系数未被上下文编码(使用上下文编码检查1320未通过/返回“否”),则绝对量值r[n]被二值化并旁路编码到位流133。方法1300从步骤1370前进到SBH测试1380。
在SBH测试1380处,使用与在SBH测试1140中检查的条件相同的条件来确定步骤1380返回“是”还是“否”。如果SBH测试1140将返回“否”,则步骤1380返回“否”,并且方法1300前进到编码N个符号步骤1390。否则,视频编码器114检查当前子块的第一和最后有效系数的位置。如果第一有效位置和最后有效位置之间的差大于3,则步骤1380返回“是”,并且方法1300前进到编码N-1个符号步骤1395。否则,步骤1380返回“否”,并且方法1300前进到编码N个符号步骤1390。
如关于步骤1140所描述的,符号位隐藏测试可以取决于不同实现中的多个替代标志或设置。如果启用符号位隐藏标志被设置(具有“真”值),则不同实现可以基于TB的变换跳过标志、TSRC禁用标志或者TB的QP是否满足与无损编码相关联的阈值而作出确定。因此,步骤1380根据与变换块本身相关联的标志或值或者TSRC禁用标志的更高级值来确定是否启用符号位隐藏。步骤1380为实现无损编码提供了一些灵活性。使用与变换块相关联的标志或值确定是否启用符号但隐藏的实现特别适合于允许使用RRC实现无损编码时的灵活性。
在编码N个符号步骤1390处,当前所选子块的任何有效系数的符号位被旁路编码到位流133。例如,基于反向对角线扫描顺序810将符号位旁路编码到位流133。方法1300在执行步骤1390之后终止。
在编码N-1个符号步骤1395处,基于反向对角线扫描顺序810将当前所选子块的有效系数的符号位旁路编码到位流133。与第一有效系数(其是反向对角线扫描顺序810中最后访问的)相关联的符号位不被编码到位流133。换句话说,如果在当前所选子块中存在N个有效系数,则将N-1个符号位旁路编码到位流133。方法1300在执行步骤1395时终止。
图14示出用于从位流133中解码当前所选子块的量化系数(424)的方法1400。方法1400在方法1000的步骤1050处实现。方法1400可以由诸如配置的FPGA、ASIC或ASSP等的设备来体现。另外,方法1400可以由视频解码器134在处理器205的执行下进行。如此,方法1400可以被实现为存储在计算机可读存储介质上和/或存储器206中的软件233的模块。方法1400开始于选择第一系数步骤1410。
在选择第一系数步骤1410处,方法1400选择当前子块的第一量化系数。如果当前子块包含最后有效系数位置,则将当前选择的系数设置为最后有效系数。否则,将当前选择的系数设置为当前子块的右下系数。方法1400从步骤1410前进到使用上下文编码检查步骤1420。
在使用上下文编码检查1420处,视频解码器134检查剩余的经上下文编码bin预算是否满足阈值,通常用于变换块的剩余的经上下文编码bin预算是否大于或等于4个bin。如果剩余预算大于或等于4,则步骤1420返回“是”,并且方法1400前进到确定经上下文编码的句法元素步骤1430。否则,如果剩余CABAC预算小于阈值(4个bin),则步骤1420返回“否”且方法1400前进到解码剩余通过步骤1470。
在确定经上下文编码的句法元素步骤1430处,视频解码器134可以使用CABAC编码器从位流133中解码多个经上下文编码的句法元素。与句法元素相关联的各个bin由CABAC编码器使用“上下文模型”来解码。可以根据量化器状态Qstate的当前值来选择各个bin的上下文模型。另外,每当经上下文编码bin由CABAC编码器从位流133中解码时,剩余的经上下文编码bin预算减少1。
如果当前系数是最后有效系数,则有效性标志被推断为“真”,而不是从位流133中解码。如果当前所选子块不是反向扫描顺序810中的第一或最后子块,并且当前选择的系数是(如下文在最终系数检查1450中所述的)最终系数,并且当前所选子块中的先前系数的所有有效性标志都是“假”,则有效性标志被推断为“真”。否则,在步骤1430处,从位流133中对有效性标志进行上下文解码。如果有效性标志被设置为“假”,则当前选择的系数被分配零值,并且方法1400前进到DQ测试1440。
如果有效性标志被设置为“真”,则在步骤1430处从位流133中对大于1标志进行上下文解码。如果大于1标志被设置为“假”,则当前选择的系数被分配为1的量值,并且方法1400前进到DQ测试1440。
如果大于1标志被设置为“真”,则从位流133中对奇偶性标志和大于3标志进行上下文解码。方法1400前进到DQ测试1440。
在步骤1430处确定的标志的数量取决于在步骤1410处选择的系数的位置和值。在推断或解码有效性标志之后,或者在解码大于1标志、奇偶性标志或大于3标志中的适当标志之后,可以发生从步骤1430的前进。
在DQ测试1440处,使用与在DQ测试1210中检查的条件相同的条件来确定步骤1440返回“是”还是“否”。如果步骤1440返回“是”,则方法1400前进到更新Qstate步骤1445。否则,如果步骤1440返回“否”,则方法1400前进到最终系数检查1450。
在更新Qstate步骤1445处,根据表1基于当前选择的系数的奇偶性来更新量化器状态Qstate。如果当前选择的系数具有零值,则奇偶性为零。如果当前选择的系数的量值为1,则奇偶性为1。否则,如果奇偶性标志被设置为“假”,则奇偶性为零,或者如果奇偶性标志被设置为“真”,则奇偶性为1。方法1400从步骤1445前进到最终系数检查1450。
在最终系数检查步骤1450处,视频解码器134检查当前选择的系数是否是当前所选子块的左上系数。如果当前选择的系数是当前所选子块的左上系数,则步骤1450返回“是”,并且方法1400前进到解码剩余通过步骤1470。否则,如果当前选择的系数不是左上系数,则步骤1450返回“否”,并且方法1400前进到选择下一系数步骤1460。
在选择下一系数步骤1460处,选择反向对角线扫描顺序810中的当前所选子块的下一系数。方法1400从步骤1460前进到使用上下文编码检查1420。
在解码剩余通过步骤1470处,从位流133中旁路解码当前所选子块的量化系数的任何剩余量值。以反向对角线扫描顺序810处理量化系数。如果量化系数被上下文解码(使用上下文编码检查1420通过或返回“是”),并且大于3标志以值“真”来解码,则从位流133中旁路解码剩余量值r[n],其中n是量化系数的扫描位置。量化系数的绝对量值x[n]被确定为x[n]=4+p[n]+2*r[n],其中p[n]在奇偶性标志被解码为“假”的情况下具有零值,并且在奇偶性标志被解码为“真”的情况下具有1值。
如果量化系数被上下文解码并且大于1标志被解码为“真”,但是大于3标志未被解码或被解码为“假”,则绝对量值被确定为x[n]=2+p[n]。如果量化系数未被上下文解码(使用上下文编码检查1420未通过并返回“否”),则从位流133中旁路解码绝对量值x[n]。方法1400从步骤1470前进到SBH测试1480。
在SBH测试1480处,视频解码器134确定是否使用符号位隐藏,即是否推断出当前所选子块的一个符号位。在步骤1480处使用的测试涉及在步骤1140处在编码器侧使用的测试。视频解码器134检查启用符号位隐藏标志的值,该启用符号位隐藏标志可以在位流133中作为高级句法用信号通知。如果启用相关量化标志为“真”,则推断启用符号位隐藏标志为“假”。如果启用符号位隐藏标志为“假”,则步骤1480返回“否”,并且方法1400前进到解码符号步骤1490。
视频解码器134检查当前所选子块的第一和最后有效系数的位置。如果第一有效位置和最后有效位置之间的差小于或等于3,则步骤1480返回“否”,并且方法1400前进到解码符号步骤1490。
在SBH测试1480的一个布置中,该确定取决于当前TB的启用符号位隐藏标志的值和变换跳过标志的值。如果启用符号位隐藏标志为“真”并且第一有效位置和最后有效位置之间的差大于3,则视频解码器134还检查当前TB的变换跳过标志的值。如果变换跳过标志为“真”,则步骤1480返回“否”,并且方法1400前进到解码符号步骤1490。否则,如果变换跳过标志为“假”,则步骤1480返回“是”,并且方法1400前进到解码和推断符号步骤1495。
在SBH测试1480的另一布置中,该确定取决于启用符号位隐藏标志的值和TSRC禁用标志的值。如果启用符号位隐藏标志为“真”,并且第一有效位置与最后有效位置之间的差大于3,则视频解码器134还检查TSRC禁用标志的值。如果TSRC禁用标志为“真”,则步骤1480返回“否”,并且方法1400前进到解码符号步骤1490。否则,如果TSRC禁用标志为“假”,则步骤1480返回“是”,并且方法1400前进到解码和推断符号步骤1495。
在SBH测试1480的又一布置中,该确定取决于当前TB的启用符号位隐藏标志的值和量化参数(QP)的值、变换块的量化参数QP的第一有效位置和最后有效位置之间的差。如果启用符号位隐藏标志为“真”并且第一有效位置与最后有效位置之间的差大于3,则视频解码器134还检查当前TB的QP的值。如果QP是4(或指示无损操作的任何值),则步骤1480返回“否”,并且方法1400前进到解码符号步骤1490。否则,如果QP不是4(或指示无损操作的类似值),则步骤1480返回“是”,并且方法1400前进到解码和推断符号步骤1495。
在解码符号通过步骤1490处,从位流133中旁路解码当前所选子块的任何有效系数的符号位。以反向对角线扫描顺序810从位流133中旁路解码符号位。如果相关联的符号位的值为1,则将量化系数的值设置为-x[n]。如果相关联的符号位的值为零,则将量化系数的值设置为x[n]。方法1400在执行步骤1490时终止。
在解码和推断符号步骤1495处,以反向对角线扫描顺序810从位流133中旁路解码当前所选子块的有效系数的符号位。不从位流133中解码与第一有效系数(其是反向对角线扫描顺序810中最后访问的)相关联的符号位。换句话说,如果在当前所选子块中存在N个有效系数,则从位流133中旁路解码N-1个符号位。基于有效系数的奇偶性的和来推断与第一有效系数相关联的符号位。如果奇偶性的和为零,则与第一有效系数相关联的符号位被推断为零。如果奇偶性的和是1,则与第一有效系数相关联的符号位被推断为1。如果相关联的符号位的值为1,则将量化系数的值设置为-x[n]。如果相关联的符号位的值为零,则将量化系数的值设置为x[n]。然后,方法1400终止。
方法900和1000中描述的布置允许在使用常规残差编码处理的同时进行视频数据的无损压缩。相关量化和符号位隐藏是在期望无损操作时被灵活地禁用的有损编码工具,但是仍然可用于实现有损编码块中改进的编码性能。
产业上的可利用性
所描述的布置适用于计算机和数据处理工业,尤其适用于对诸如视频和图像信号等的信号进行编码和解码的数字信号处理,从而实现高压缩效率。
前面仅描述了本发明的一些实施例,并且在不脱离本发明的范围和精神的情况下,可以对其进行修改和/或改变,这些实施例是说明性的而不是限制性的。

Claims (13)

1.一种从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:
确定针对所述子块是否使用符号位隐藏,所述确定是基于针对所述子块确定的变换跳过标志的值以及与所述子块相关联的符号位隐藏标志的值;
在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及
通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
2.根据权利要求1所述的方法,其中,在所述符号位隐藏标志具有值真、所述变换跳过标志具有值假、并且所述子块的第一有效位置与最后有效位置之间的差大于3的情况下,使用符号位隐藏。
3.根据权利要求1所述的方法,其中,在所述符号位隐藏标志具有值真并且所述变换跳过标志具有值真的情况下,不使用符号位隐藏。
4.根据权利要求1所述的方法,还包括:在确定为使用符号位隐藏的情况下,对数量等于所述子块中的有效系数的数量减1的符号位进行解码,并且根据所述子块的有效系数的奇偶性的和来确定附加符号位。
5.一种从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:
确定针对所述子块是否使用符号位隐藏,所述确定是基于符号位隐藏标志的值和与所述子块相关联的量化参数的值;
在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及
通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
6.根据权利要求5所述的方法,其中,在所述符号位隐藏标志具有值真并且所述量化参数等于4的情况下,不使用符号位隐藏。
7.根据权利要求5所述的方法,其中,在所述符号位隐藏标志具有值真、所述量化参数不等于4、并且所述子块的第一有效位置和最后有效位置之间的差大于3的情况下,使用符号位隐藏。
8.一种从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:
确定针对所述子块是否使用符号位隐藏,所述确定是基于符号位隐藏标志的值以及TSRC禁用标志的值;
在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及
通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
9.根据权利要求8所述的方法,其中,在所述符号位隐藏标志具有值真、所述TSRC禁用标志具有值假、并且所述子块的第一有效位置和最后有效位置之间的差大于3的情况下,使用符号位隐藏。
10.根据权利要求8所述的方法,其中,在所述符号位隐藏标志具有值真并且所述TSRC禁用标志具有值真的情况下,不使用符号位隐藏。
11.一种非暂时性计算机可读介质,其上存储有计算机程序以实现从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:
确定针对所述子块是否使用符号位隐藏,所述确定是基于针对所述子块确定的变换跳过标志的值以及与所述子块相关联的符号位隐藏标志的值;
在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及
通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
12.一种系统,包括:
存储器;以及
处理器,其中,所述处理器被配置为执行存储在所述存储器上的代码以实现从视频位流中解码变换块的残差系数的子块的方法,所述方法包括:
确定针对所述子块是否使用符号位隐藏,所述确定是基于针对所述子块确定的变换跳过标志的值以及与所述子块相关联的符号位隐藏标志的值;
在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及
通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
13.一种视频解码器,其被配置为:
接收来自视频位流的变换块的残差系数的子块,
确定针对所述子块是否使用符号位隐藏,所述确定是基于针对所述子块确定的变换跳过标志的值以及与所述子块相关联的符号位隐藏标志的值;
在不使用符号位隐藏的情况下,解码数量等于所述子块中的有效系数的数量的符号位;以及
通过使用经解码的符号位重建所述子块的残差系数来解码所述子块。
CN202080096139.4A 2020-03-10 2020-11-23 对视频样本块编码和解码的方法、设备和系统 Pending CN115088259A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2020201753A AU2020201753B2 (en) 2020-03-10 2020-03-10 Method, apparatus and system for encoding and decoding a block of video samples
AU2020201753 2020-03-10
PCT/AU2020/051270 WO2021179034A1 (en) 2020-03-10 2020-11-23 Method, apparatus and system for encoding and decoding a block of video samples

Publications (1)

Publication Number Publication Date
CN115088259A true CN115088259A (zh) 2022-09-20

Family

ID=77670368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080096139.4A Pending CN115088259A (zh) 2020-03-10 2020-11-23 对视频样本块编码和解码的方法、设备和系统

Country Status (9)

Country Link
US (1) US20230140041A1 (zh)
EP (1) EP4118827A4 (zh)
JP (2) JP7441314B2 (zh)
KR (1) KR20220127337A (zh)
CN (1) CN115088259A (zh)
AU (1) AU2020201753B2 (zh)
BR (1) BR112022014652A2 (zh)
TW (1) TWI813922B (zh)
WO (1) WO2021179034A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230164355A1 (en) * 2020-03-31 2023-05-25 Lg Electronics Inc. Image decoding method and device therefor
KR20220164750A (ko) * 2020-03-31 2022-12-13 엘지전자 주식회사 Tsrc 가용 플래그를 포함한 영상 정보를 코딩하는 영상 디코딩 방법 및 그 장치
WO2023236113A1 (zh) * 2022-06-08 2023-12-14 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、系统及存储介质
WO2024008060A1 (en) * 2022-07-05 2024-01-11 Mediatek Inc. Method and apparatus of dependent quantization for video coding
WO2024060099A1 (zh) * 2022-09-21 2024-03-28 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313498B2 (en) * 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
CN104380737B (zh) * 2012-06-22 2018-10-26 夏普株式会社 算术解码装置
US20140286413A1 (en) * 2013-03-25 2014-09-25 Qualcomm Incorporated Disabling sign data hiding in video coding
US9456210B2 (en) * 2013-10-11 2016-09-27 Blackberry Limited Sign coding for blocks with transform skipped
JP7469904B2 (ja) * 2020-02-21 2024-04-17 シャープ株式会社 画像復号装置、画像符号化装置、画像復号方法及び画像符号化方法
WO2021172912A1 (ko) * 2020-02-27 2021-09-02 엘지전자 주식회사 사인 데이터 하이딩 관련 영상 디코딩 방법 및 그 장치

Also Published As

Publication number Publication date
JP2023513414A (ja) 2023-03-31
KR20220127337A (ko) 2022-09-19
TWI813922B (zh) 2023-09-01
BR112022014652A2 (pt) 2022-09-20
AU2020201753B2 (en) 2022-09-08
JP7441314B2 (ja) 2024-02-29
TW202135530A (zh) 2021-09-16
US20230140041A1 (en) 2023-05-04
AU2020201753A1 (en) 2021-09-30
JP2024054338A (ja) 2024-04-16
EP4118827A1 (en) 2023-01-18
WO2021179034A1 (en) 2021-09-16
EP4118827A4 (en) 2024-04-24

Similar Documents

Publication Publication Date Title
KR102579286B1 (ko) 비디오 샘플들의 변환된 블록을 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템
CN112771866A (zh) 对视频样本块的树进行编码和解码的方法、设备和系统
AU2013228045A1 (en) Method, apparatus and system for encoding and decoding video data
AU2020201753B2 (en) Method, apparatus and system for encoding and decoding a block of video samples
JP7495923B2 (ja) ビデオサンプルの変換されたブロックを符号化および復号する方法、装置、およびシステム
US20230037302A1 (en) Method, apparatus and system for encoding and decoding a coding tree unit
US20220394311A1 (en) Method apparatus and system for encoding and decoding a coding tree unit
CN113574874A (zh) 用于编码和解码视频样本的块树的方法、设备和系统
CN113557731A (zh) 用于编码和解码视频样本的块树的方法、设备和系统
US20240073431A1 (en) Method, apparatus and system for encoding and decoding a block of video samples
US20220345718A1 (en) Method, apparatus and system for encoding and decoding a block of video samples
CN114342391A (zh) 用于编码和解码视频样本的块的方法、设备和系统
WO2021127723A1 (en) Method, apparatus and system for encoding and decoding a block of video samples
US20210306679A1 (en) Method, apparatus and system for encoding and decoding a transformed block of video samples
JP7500745B2 (ja) ビデオサンプルのブロックを符号化および復号する方法、装置、およびシステム
AU2019203981A1 (en) Method, apparatus and system for encoding and decoding a block of video samples
AU2020202285A1 (en) Method, apparatus and system for encoding and decoding a block of video samples

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: 40080942

Country of ref document: HK