CN118044188A - 交叉分量样本自适应偏移 - Google Patents

交叉分量样本自适应偏移 Download PDF

Info

Publication number
CN118044188A
CN118044188A CN202280064747.6A CN202280064747A CN118044188A CN 118044188 A CN118044188 A CN 118044188A CN 202280064747 A CN202280064747 A CN 202280064747A CN 118044188 A CN118044188 A CN 118044188A
Authority
CN
China
Prior art keywords
component
offset
ccsao
video
level
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
CN202280064747.6A
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN118044188A publication Critical patent/CN118044188A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods 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 pixel
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

提供了用于视频编解码的方法和设备。在该方法中,解码器获得交叉分量样本自适应偏移(CCSAO)量化,所述交叉分量样本自适应偏移量化与在至少一个级别由编码器预定义或指示的量化步长和偏移量化控制语法相关联。此外,解码器基于CCSAO量化获得CCSAO,并将CCSAO与重建样本相加以用于预测。

Description

交叉分量样本自适应偏移
相关申请的交叉引用
本申请基于并且要求2021年11月19日提交的标题为“CROSS-COMPONENT SAMPLEADAPTIVE OFFSET”的美国临时专利申请第63/281,510号的优先权,该申请的内容出于所有目的通过引用整体并入本文。
技术领域
本公开一般地涉及视频编解码和压缩,并且更具体地,涉及提高亮度和色度二者编码效率的方法和装置。
背景技术
数字视频由各种电子设备支持,这些电子设备诸如是数字电视、膝上型或台式计算机、平板计算机、数字相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流式传输设备等。所述电子设备跨通信网络传输、接收或以其他方式传送数字视频数据,和/或在存储设备上存储数字视频数据。由于通信网络有限的带宽容量和存储设备有限的存储器资源,视频编解码可以用于在视频数据被传送或存储之前根据一个或多个视频编解码标准来压缩该视频数据。例如,视频编解码标准包括通用视频编解码(VVC)、联合探测测试模型(JEM)、高效视频编解码(HEVC/H.265)、高级视频编解码(AVC/H.264/),运动图像专家组(MPEG)编解码等。AOMedia Video 1(AV1)被开发作为其先前标准VP9的后承者。音视频编解码(AVS)涉及数字音频和数字视频压缩标准,是另一个视频压缩标准系列。视频编解码通常利用预测方法(例如,帧间预测、帧内预测等),该预测方法利用视频数据中固有的冗余。视频编解码旨在将视频数据压缩为使用较低比特率的形式,同时避免或最小化视频质量的降级。
发明内容
本公开描述了与以下内容相关的实施方式:视频数据编码和解码,并且更具体地,提高亮度和色度分量二者的编码效率(包括通过探索亮度分量和色度分量之间的交叉分量关系来提高编码效率)的方法和装置。
根据本申请的第一方面,提供了一种视频解码的方法。所述方法可以包括:解码器获得交叉分量样本自适应偏移(CCSAO)量化,所述交叉分量样本自适应偏移量化与在至少一个级别由编码器预定义或指示的量化步长和偏移量化控制语法相关联。另外,所述方法可以包括所述解码器基于所述CCSAO量化来获得CCSAO以及将所述CCSAO与重建样本相加以用于预测。
根据本申请的第二方面,提供了一种视频编码的方法。所述方法可以包括:编码器可以预定义或用信令通知在至少一个级别用于CCSAO量化的量化步长,其中所述CCSAO量化可以与偏移量化控制语法和量化步长相关联。另外,所述方法可以包括所述编码器可以基于所述CCSAO量化来确定CCSAO以及将所述CCSAO编码在比特流中。
根据本申请的第三方面,提供了一种用于视频解码的装置。所述装置可以包括:一个或多个处理器;和存储器,耦合到所述一个或多个处理器并被配置为存储可由所述一个或多个处理器执行的指令。所述一个或多个处理器在执行所述指令时被配置为执行根据第一方面所述的方法。
根据本申请的第四方面,提供了一种用于视频编码的装置。所述装置可以包括:一个或多个处理器;和存储器,耦合到所述一个或多个处理器并被配置为存储可由所述一个或多个处理器执行的指令。所述一个或多个处理器在执行所述指令时被配置为执行根据第二方面所述的方法。
根据本申请的第五方面,一种非暂时性计算机可读存储介质存储计算机可执行指令,所述计算机可执行指令在由一个或多个计算机处理器执行时使所述一个或多个计算机处理器接收比特流,并执行根据第一方面所述的方法。
根据本申请的第六方面,一种非暂时性计算机可读存储介质,用于存储计算机可执行指令,所述计算机可执行指令在由一个或多个计算机处理器执行时使所述一个或多个计算机处理器执行根据第二方面所述的方法,并传输比特流。
应当理解,前述的一般描述和以下的详细描述二者都仅是示例,而不是对本公开的限制。
附图说明
并入本说明书并构成本说明书一部分的附图图示了与本公开一致的示例并且与描述一起用于解释本公开的原理。
图1是图示根据本公开的一些实施方式的用于编码和解码视频块的示例性系统的框图。
图2是图示根据本公开的一些实施方式的示例性视频编码器的框图。
图3是图示根据本公开的一些实施方式的示例性视频解码器的框图。
图4A至图4E是图示根据本公开的一些实施方式的如何将帧递归地分区为不同尺寸和形状的多个视频块的框图。
图4F是图示VVC中定义的帧内模式的框图。
图4G是图示用于帧内预测的多个参考线的框图。
图5A是图示根据本公开的一些实施方式的样本自适应偏移(SAO)中使用的四种梯度模式的框图。
图5B是图示根据本公开的一些实施方式的用于与所提出的SAO滤波SAOV和SAOH相结合的去块滤波器(DBF)的解码器的框图。
图6是图示根据本公开的一些实施方式的所提出的双边滤波器(BIF)和SAO两者都使用来自去块阶段的样本作为输入的框图。
图7是图示根据本公开的一些实施方式的围绕中心样本的样本的命名约定的框图。
图8A是图示根据本公开的一些实施方式的应用于色度分量的5x5菱形ALF滤波器的框图。
图8B是图示根据本公开的一些实施方式的应用于亮度分量的7x7菱形ALF滤波器的框图。
图9A-9D图示了根据本公开的一些实施方式的子采样拉普拉斯计算。
图10A是图示根据本公开的一些实施方式的CC-ALF过程相对于SAO、亮度ALF和色度ALF过程的系统级图的框图。
图10B图示了根据本公开的一些实施方式的通过将线性菱形滤波器应用于亮度通道来实现CC-ALF中的滤波。
图11图示了根据本公开的一些实施方式的在虚拟边界处的修改的块分类。
图12图示了根据本公开的一些实施方式的用于虚拟边界处的亮度分量的修改的ALF滤波。
图13A图示了根据本公开的一些实施方式的应用于色度样本并且使用DBF Y作为输入的CCSAO。
图13B图示了根据本公开的一些实施方式的应用于亮度和色度样本并且使用DBFY/Cb/Cr作为输入的CCSAO。
图13C图示了根据本公开的一些实施方式的独立工作的CCSAO。
图13D图示了根据本公开的一些实施方式的递归应用的CCSAO。
图13E图示了根据本公开的一些实施方式的与SAO和BIF并行应用。
图13F图示了根据本公开的一些实施方式的替代SAO并与BIF并行应用。
图14图示了根据本公开的一些实施方式的CCSAO与其他编码工具并行应用。
图15A图示了根据本公开的一些实施方式的CCSAO的位置在SAO之后。
图15B图示了根据本公开的一些实施方式的CCSAO在没有CCALF的情况下独立工作。
图15C图示了根据本公开的一些实施方式的充当重建后滤波器的CCSAO。
图16图示了根据本公开的一些实施方式的与CCALF并行应用的CCSAO。
图17图示了根据本公开的一些实施方式的使用不同的亮度样本位置作为另一分类器来进行C0分类。
图18A-18G图示了根据本公开的一些实施方式的不同的候选形状,其中可以将约束应用于不同的形状。
图19根据本公开的一些实施方式图示了除了亮度之外,其他交叉分量同位和邻近色度样本也可以被馈送到CCSAO分类中。
图20A-20B根据本公开的一些实施方式图示了可以通过对邻近亮度样本进行加权来将同位亮度样本值替代为相位校正值。
图21A-21B根据本公开的一些实施方式图示了可以通过对邻近亮度样本进行加权来将同位亮度样本值替代为相位校正值。
图22A-22B图示了根据本公开的一些实施方式的使用边缘强度来对c进行分类的示例。
图23A-23B根据本公开的一些实施方式图示了如果用于分类的同位和邻近亮度样本中的任何一个在当前图片之外则CCSAO不被应用于当前色度样本上。
图24A-24B根据本公开的一些实施方式图示了如果用于分类的同位和邻近亮度样本中的任一个在当前图片之外则丢失的样本使用重复或镜像填充来创建用于分类的样本。
图25根据本公开的一些实施方式图示了在AVS中,9个亮度候选CCSAO可以增加2个附加的亮度线缓冲器。
图26A根据本公开的一些实施方式图示了在VVC中,9个亮度候选CCSAO可以增加1个附加亮度线缓冲器。
图26B根据本公开的一些实施方式图示了如果同位或邻近色度样本被用于对当前亮度样本进行分类,则所选择的色度候选可能跨越VB并且需要附加的色度线缓冲器。
图27A-27C根据本公开的一些实施方式图示了在AVS和VVC中如果色度样本的任何亮度候选跨越VB(在当前色度样本VB之外)则针对色度样本禁用CCSAO。
图28A-28B图示了根据本公开的一些实施方式的具有9个亮度位置候选的C0的虚拟边界示例。
图29A-29C根据本公开的一些实施方式图示了在AVS和VVC中如果色度样本的任何亮度候选跨越VB(在当前色度样本VB之外)则通过对色度样本使用重复填充来启用CCSAO。
图30A-30C根据本公开的一些实施方式图示了在AVS和VVC中如果色度样本的任何亮度候选跨越VB(在当前色度样本VB之外)则通过对色度样本使用镜像填充来启用CCSAO。
图31A-31B根据本公开的一些实施方式图示了在AVS和VVC中如果一侧在VB之外则使用双侧对称填充来启用CCSAO。
图32A-32B根据本公开的一些实施方式图示了可以将重复或镜面填充应用到虚拟边界之外的亮度样本上。
图33A-33B根据本公开的一些实施方式图示了应用限制以减少CCSAO所需的线缓冲器并简化边界处理条件检查。
图34根据本公开的一些实施方式图示了CCSAO应用区域未对准CTB边界。
图35根据本公开的一些实施方式图示了CCSAO应用区域帧分区可以固定。
图36根据本公开的一些实施方式图示了应用CCSAO的区域分区可以是动态的并且在图片级别中切换。
图37根据本公开的一些实施方式图示了如果在一帧中使用多个分类器,则可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级别中切换应用分类器集合索引的方式。
图38根据本公开的一些实施方式图示了CCSAO应用区域可以是来自帧/条带/CTB级别的BT/QT/TT分割。
图39图示根据本公开的一些实施方式的CCSAO分类器计及当前或交叉分量编码信息。
图40A是图示根据本公开的一些实施方式的本公开中公开的SAO分类方法用作后预测滤波器的框图。
图40B-40D是图示根据本公开的一些实施方式的对于后预测SAO滤波器每个分量可以使用当前和邻近样本进行分类的框图。
图41是图示根据本公开的一些实施方式的与用户接口耦合的计算环境的图。
图42是图示根据本公开的示例的用于视频解码的方法的流程图。
图43是图示根据本公开的示例的用于视频编码的方法的流程图。
具体实施方式
现在将详细参考具体实施方式,具体实施方式的示例在附图中图示。在下面的详细描述中,阐述了许多非限制性具体细节以帮助理解本文呈现的主题。但是对于本领域的普通技术人员来说将显而易见的是,在不脱离权利要求的范围的情况下可以使用各种备选方案并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域的普通技术人员来说将显而易见的是,可以在许多类型的具有数字视频能力的电子设备上实施本文呈现的主题。
本公开中使用的术语仅用于描述具体实施例的目的,并不旨在限制本公开。本公开和所附权利要求中的单数形式的“一/一种”、“所述”和“该”也旨在包括复数形式,除非在整个公开中明确指出其他含义。还应当理解,本公开中使用的术语“和/或”指代并且包括所列出的多个相关项目中的一个或任何或所有可能的组合。
在该整个说明书中对“一个实施例”、“实施例”、“示例”、“一些实施例”、“一些示例”或类似语言的提及意味着所描述的特定特征、结构或特性包括在至少一个实施例或示例中。除非另有明确说明,否则结合一个或一些实施例描述的特征、结构、元件或特性也适用于其它实施例。
在整个公开中,术语“第一”、“第二”、“第三”等都用作专门术语,仅用于参考相关元件,例如,设备、组件、组分、步骤等,除非另有明确说明,否则不暗示任何空间或时间顺序。例如,“第一设备”和“第二设备”可以指代两个单独形成的设备,同一设备的两个部分、组件或操作状态,并且可以任意命名。
术语“模块”、“子模块”、“电路”、“子电路”、“电路系统”、“子电路系统”、“单元”或“子单元”可以包括存储器(共享的、专用的或组),该存储器存储可由一个或多个处理器执行的代码或指令。模块可以包括一个或多个带有或不带有存储的代码或指令的电路。模块或电路可包括直接或间接连接的一个或多个组件。这些组件可能会或可能不会物理附接到彼此或定位成彼此相邻。
如本文所用的,取决于上下文,术语“如果”或“当……时”可被理解为意指“依据”或“响应于”。这些术语如果出现在权利要求中,可能并不指示相关限制或特征是有条件的或可选的。例如,方法可包括以下步骤:i)当条件X存在时或如果条件X存在,执行功能或动作X’,以及ii)当条件Y存在时或如果条件Y存在,执行功能或动作Y’。该方法可以通过执行功能或动作X’的能力以及执行功能或动作Y’的能力这二者来实现。因此,功能X’和Y’二者都可以在方法的多次执行中在不同时间被执行。
单元或模块可以纯由软件、纯由硬件或由硬件和软件的组合来实现。例如,在纯软件实施方式中,单元或模块可以包括直接或间接链接在一起的功能相关的代码块或软件组件,以执行特定功能。
第一代AVS标准包括中国国家标准“信息技术,高级音视频编解码第2部分:视频”(称为AVS1)和“信息技术,高级音视频编解码第16部分:广播电视视频”(称为AVS+)。与MPEG-2标准相比,它可以在相同的感知质量下节省大约50%的比特率。第二代AVS标准包括中国国家标准“信息技术,高效多媒体编解码”系列(简称AVS2),其主要针对超HD TV节目的传输。AVS2的编解码效率是AVS+编解码效率的两倍。同时,AVS2标准视频部分由电气电子工程师协会(IEEE)提交,作为一个国际应用标准。AVS3标准是针对UHD视频应用的新一代视频编解码标准,旨在超越最新的国际标准HEVC的编解码效率,它比HEVC标准提供约30%的比特率节省。2019年3月,在第68届AVS会议上,AVS3-P2基线完成,它比HEVC标准提供约30%的比特率节省。目前,一种称为高性能模型(HPM)的参考软件由AVS小组维护,用于演示AVS3标准的参考实施方式。与HEVC一样,AVS3标准建立在基于块的混合视频编解码框架之上。
图1是图示根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可以包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏控制台、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可以经由链路16接收待解码的编码视频数据。链路16可以包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括使源设备12能够实时地将编码视频数据直接传输到目标设备14的通信介质。编码视频数据可以根据通信标准(例如无线通信协议)被调制,并且被传输到目标设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或更多个物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或诸如互联网的全球网)的一部分。通信介质可以包括路由器、交换机、基站或可以有利于促进从源设备12到目标设备14的通信的任何其它装备。
在其它一些实施方式中,可以将编码视频数据从输出接口22传输到存储设备32。随后,可以由目标设备14经由输入接口28访问存储设备32中的编码视频数据。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、数字万用盘(DVD)、紧凑盘只读存储器(CD-ROM)、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备32可以对应于文件服务器或对应于可以保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可以经由流传输或下载从存储设备32访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括网络服务器(例如,用于网站)、文件传输协议(FTP)服务器、网络附属存储(NAS)设备或本地磁盘驱动器。目标设备14可以通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,无线保真(Wi-Fi)连接)、有线连接(例如,数字订户线(DSL)、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如以下项的源或此类源的组合:视频捕获设备(例如,视频摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可以形成相机电话或视频电话。然而,本申请中所描述的实施方式通常可以适用于视频编解码,并且可以应用于无线和/或有线应用。
可以由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可以经由源设备12的输出接口22将编码视频数据直接传输到目标设备14。还可以(或备选地)将编码视频数据存储到存储设备32上以便稍后被目标设备14或其它设备访问,以用于解码和/或回放。输出接口22可以进一步包括调制解调器和/或发射器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送或在存储设备32上提供的编码视频数据可以包括由视频编码器20生成的各种语法元素以供视频解码器30在对视频数据进行解码时使用。此类语法元素可以被包括在通信介质上传输的、存储在存储介质上的或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可以包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34向用户显示解码视频数据,并且可以包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可以根据专有标准或行业标准(诸如,VVC、HEVC、MPEG-4的第10部分、AVC、AVS)或此类标准的扩展进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可以适用于其它视频编码/解码标准。通常认为源设备12的视频编码器20可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
视频编码器20和视频解码器30可以分别被实现为各种合适的编码器和/或解码器电路中的任何电路,诸如一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑器件、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可以将用于软件的指令存储于合适的非暂态计算机可读介质中,并且使用一个或更多个处理器在硬件中执行所述指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以被包括在一个或更多个编码器或解码器中,编码器或解码器中的任一者可以被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图2是图示了根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以对视频帧内的视频块执行帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或移除视频序列的邻近视频帧或图片内的视频数据中的时间冗余。应当注意,术语“帧”可以用作视频编解码领域中的术语“图像”或“图片”的同义词。
如图2中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41还包括运动估计单元42、运动补偿单元44、分区单元45、帧内预测处理单元46和帧内块复制(BC)单元48。在一些实施方式中,视频编码器20还包括逆量化单元58、逆变换处理单元60和加法器62用于视频块重建。诸如去块滤波器的环路滤波器63可以位于加法器62和DPB 64之间以对块边界进行滤波以从重建的视频中移除块效应伪影。除了去块滤波器之外,还可以使用另一环路滤波器(诸如样本自适应偏移(SAO)滤波器和/或自适应环路滤波器(ALF))来对加法器62的输出进行滤波。在一些示例中,环路滤波器可以省略,并且解码的视频块可以由加法器62直接提供给DPB64。视频编码器20可采用固定或可编程硬件单元的形式,或者可以在所图示的固定或可编程硬件单元中的一个或更多个之间被划分。
视频数据存储器40可以存储将由视频编码器20的组件编码的视频数据。可例如从图1中所示的视频源18获得视频数据存储器40中的视频数据。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据的缓冲器。视频数据存储器40和DPB 64可以由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可以与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的分区单元45将视频数据分区成视频块。该分区还可以包括根据与所述视频数据相关联的诸如四叉树(QT)结构之类的预定义分割结构将视频帧分区成条带、瓦片(例如,视频块的集合)或其他更大的编码单元(CU)。视频帧是或者可以被视为具有样本值的样本的二维阵列或矩阵。阵列中的样本也可以称为像素或像元。阵列或图片的水平和竖直方向(或轴)上的样本数量定义视频帧的尺寸和/或分辨率。可以通过例如使用QT分区将视频帧划分为多个视频块。视频块再次是或可以被视为具有样本值的样本的二维阵列或矩阵,但是其尺寸小于视频帧。该视频块的水平和竖直方向(或轴)上的样本的数量定义了视频块的尺寸。通过例如迭代地使用QT分区、二叉树(BT)分区或三叉树(TT)分区或者其任意组合,视频块还可以被分区为一个或多个块分区或子块(其可以再次形成块)。应当注意,本文所使用的术语“块”或“视频块”可以是帧或图片的一部分,特别是矩形(正方形或非正方形)部分。参考例如HEVC和VVC,块或视频块可以是或对应于编码树单元(CTU)、CU、预测单元(PU)或变换单元(TU)和/或可以是或者对应于对应的块,例如编码树块(CTB)、编码块(CB)、预测块(PB)或变换块(TB)和/或对应于子块。
预测处理单元41可以基于误差结果(例如,编码速率和失真级别)为当前视频块选择多个可能预测编码模式中的一个,诸如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(诸如运动矢量、帧内模式指示符、分区信息和其它此类语法信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以相对于和待编码的当前视频块在同一帧中的一个或更多个邻近块执行当前视频块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或更多个参考帧中的一个或更多个预测块执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可以例如将编码执行多遍,以便为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,该运动矢量估计视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块相对于参考帧内的预测块、相对于当前帧内正被编码的当前块的位移。预定模式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内BC编码的矢量(例如,块矢量),或可以利用运动估计单元42确定块矢量。
在像素差方面,视频块的预测块可以是或可以对应于被认为与待编码视频块紧密匹配的参考帧的块或参考块,像素差可以由绝对差总和(SAD)、平方差总和(SSD)或其它差度量确定。在一些实施方式中,视频编码器20可以计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行内插。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下方式来计算针对帧间预测编码帧中的视频块的运动矢量:将视频块的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个参考帧列表标识DPB 64中存储的一个或更多个参考帧。运动估计单元42将计算出的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量获取或生成预测块。在接收到针对当前视频块的运动矢量之后,运动补偿单元44可以在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度分量差或色度分量差或两者。动补偿单元44还可以生成与视频帧的视频块相关联的语法元素以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于识别预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其它语法信息。应注意,运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而单独图示。
在一些实施方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并获取预测块,但是这些预测块与正被编码的当前块处在相同的帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内BC单元48可以确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且通过速率-失真分析来测试它们的性能。接下来,帧内BC单元48可以在各种测试的帧内预测模式中选择合适的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内BC单元48可以使用速率-失真分析针对各种测试的帧内预测模式计算速率-失真值,并且在测试的模式中选择具有最佳速率-失真特性的帧内预测模式作为合适的帧内预测模式来使用。速率-失真分析大体上确定编码块与被编码以产生编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即,比特数量)。帧内BC单元48可以根据针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳速率-失真值。
在其它示例中,帧内BC单元48可以全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可以由SAD、SSD或其它差度量确定,并且识别预测块可以包括计算针对子整数像素位置的值。
无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可以通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可以对当前视频块进行帧内预测。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可以从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可以将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以将指示选择的帧内预测模式的信息编码到比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或更多个TU中并且被提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(DCT)或概念上类似的变换)将残差视频数据变换为残差变换系数。
变换处理单元52可以将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可以减小与系数中的一些或全部相关联的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54可以随后对包括量化的变换系数的矩阵执行扫描。备选地,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编解码(CAVLC)、上下文自适应二进制算术编解码(CABAC)、基于语法的上下文自适应二进制算术编解码(SBAC)、概率区间分区熵(PIPE)编解码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。然后,可以将编码的比特流传输到如图1中所示的视频解码器30,或存档于如图1中所示的存储设备32中以供稍后传输到视频解码器30或由视频解码器30取回。熵编码单元56还可以对用于正被编码的当前视频帧的运动矢量和其它语法元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以在像素域中重建残差视频块以用于生成用于预测其它视频块的参考块。如上文指出的,运动补偿单元44可以从存储在DPB 64中的帧的一个或更多个参考块生成运动补偿预测块。运动补偿单元44还可以将一个或更多个内插滤波器应用于预测块以计算子整数像素值以供在运动估计时使用。
加法器62将重建的残差块与由运动补偿单元44产生的运动补偿预测块相加来产生参考块以存储在DPB 64中。然后,参考块可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
图3是图示了根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测处理单元84和帧内BC单元85。视频解码器30可以执行与上文结合图2相对于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可以被分派任务以执行本申请的实施方式。此外,在一些示例中,本公开的实施方式可以在视频解码器30的单元中的一个或更多个单元之间被划分。例如,帧内BC单元85可以单独地或与视频解码器30的其它单元(诸如运动补偿单元82、帧内预测单元84和熵解码单元80)组合地执行本申请的实施方式。在一些示例中,视频解码器30可以不包括帧内BC单元85,并且帧内BC单元85的功能可以由预测处理单元81的其它组件(诸如运动补偿单元82)执行。
视频数据存储器79可以存储将由视频解码器30的其它组件进行解码的视频数据,诸如编码视频比特流。可以例如从存储设备32、从本地视频源(诸如相机)、经由视频数据的有线或无线网络通信、或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的DPB 92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测编码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可以由各种存储器设备中的任何存储器设备形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器设备。出于图示的目的,视频数据存储器79和DPB 92在图3中被描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB92可以由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语法元素的编码视频比特流。视频解码器30可以在视频帧级和/或视频块级接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符、以及其它语法元素。然后,熵解码单元80将运动矢量或帧内预测模式指示符以及其它语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其它类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可以基于用信令通知的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其它语法元素产生针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个可以从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可以基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,即,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其它语法元素产生针对当前视频块的预测块。预测块可以与由视频编码器20定义的当前视频块处于相同图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其它语法元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或更多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
类似地,帧内BC单元85可以使用接收到的语法元素中的一些语法元素,例如标志,以确定当前视频块是使用帧内BC模式预测的、帧的哪些视频块在重建区域内且应被存储在DPB 92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
运动补偿单元82还可以使用如由视频编码器20在对视频块进行编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以根据接收到的语法元素确定由视频编码器20使用的内插滤波器,并且使用所述内插滤波器来产生预测块。
逆量化单元86使用由视频编码器20针对视频帧中的每个视频块计算出的用于确定量化程度的相同量化参数,对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行逆量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其它语法元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的对应预测块相加,来重建针对当前视频块的解码视频块。环路滤波器91(诸如去块滤波器、SAO滤波器和ALF)可以位于加法器90与DPB 92之间以进一步处理解码视频块。环路滤波器91可以在重建CU被放入参考图片存储之前被应用于所述重建CU。在一些示例中,环路滤波器91可以省略,并且解码视频块可以由加法器90直接提供给DPB92。然后,将给定帧中的解码视频块存储在DPB 92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB 92分离的存储器设备还可以存储解码视频以用于稍后呈现在显示器设备(诸如,图1的显示器设备34)上。
在典型的视频编解码过程中,视频序列通常包括帧或图片的有序集合。每一帧可以包括三个样本阵列,表示为SL、SCb和SCr。SL是亮度样本的二维阵列。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。在其它实例中,帧可以是单色的,因此仅包括亮度样本的一个二维阵列。
与HEVC一样,AVS3标准建立在基于块的混合视频编解码框架之上。输入视频信号被逐块(称为编码单元(CU))处理。与仅基于四叉树对块进行分区的HEVC不同,在AVS3中,基于四叉树/二叉树/扩展四叉树将一个编码树单元(CTU)分割成多个CU以适应于变化的局部特性。此外,移除了HEVC中多分区单元类型的概念,即AVS3中不存在CU、预测单元(PU)和变换单元(TU)的分离。相反,每个CU始终用作预测和变换这二者的基本单元,无需进一步分区。在AVS3的树分区结构中,首先基于四叉树结构对一个CTU进行分区。然后,可以基于二叉和扩展四叉树结构进一步分区每个四叉树叶节点。
如图4A中所示,视频编码器20(或更具体地,分区单元45)通过首先将帧分区为CTU的集合来生成帧的编码表示。视频帧可以包括以光栅扫描顺序从左到右和从上到下连续排序的整数个CTU。每个CTU是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信令通知CTU的宽度和高度,使得视频序列中的所有CTU具有128×128、64×64、32×32和16×16之一的相同尺寸。但是应当注意,本申请不必限于特定尺寸。如图4B中所示,每个CTU可以包括亮度样本的一个CTB、色度样本的两个对应编码树块、以及用于对编码树块的样本进行编码的语法元素。语法元素描述编码像素块的不同类型的单元的性质以及可以如何在视频解码器30处重建视频序列,包括帧间预测或帧内预测、帧内预测模式、运动矢量和其它参数。在单色图片或具有三个单独颜色平面的图片中,CTU可以包括单个编码树块和用于对该编码树块的样本进行编码的语法元素。编码树块可以是N×N的样本块。
为了实现更好的性能,视频编码器20可以对CTU的编码树块递归地执行树分区,诸如二叉树分区、三叉树分区、四叉树分区或它们的组合,并且将CTU划分为较小的CU。如图4C中所描绘的,首先将64×64的CTU 400划分为四个较小的CU,每个CU具有32×32的块尺寸。在四个较小的CU中,将CU 410和CU 420分别划分为块尺寸为16×16的四个CU。将两个16×16的CU 430和CU 440分别进一步划分为块尺寸为8×8的四个CU。图4D描绘了示出如图4C中所描绘的CTU 400的分区过程的最终结果的四叉树数据结构,四叉树的每个叶节点与范围从32×32到8×8的相应尺寸的一个CU对应。类似于图4B中描绘的CTU,每个CU可以包括相同尺寸的帧的亮度样本的CB和色度样本的两个对应编码块、以及用于对编码块的样本进行编码的语法元素。在单色图片或具有三个单独颜色平面的图片中,CU可以包括单个编码块和用于对编码块的样本进行编码的语法结构。应注意,图4C和图4D中所描绘的四叉树分区仅用于图示目的,并且一个CTU可以基于四叉树分区/三叉树分区/二叉树分区而被分割为多个CU以适应于变化的局部特性。在多类型树结构中,一个CTU按照四叉树结构被分区,并且每个四叉树叶CU可以按照二叉和三叉树结构被进一步分区。如图4E中所示,存在具有宽度W和高度H的编码块的五种可能的分区类型,即四元分区、水平二元分区、竖直二元分区、水平三元分区和竖直三元分区。在AVS3中存在五种可能的分区类型,即四元分区、水平二元分区、竖直二元分区、水平扩展四叉树分区和竖直扩展四叉树分区。
在一些实施方式中,视频编码器20可以进一步将CU的编码块分区为一个或更多个M×N的PB。PB是其上被应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样本块。CU的PU可以包括亮度样本的PB、色度样本的两个对应PB和用于对PB进行预测的语法元素。在单色图片或具有三个单独颜色平面的图片中,PU可以包括单个PB和用于对PB进行预测的语法结构。视频编码器20可以生成针对CU的每个PU的亮度、Cb和Cr PB的预测亮度块、预测Cb块和预测Cr块。
视频编码器20可以使用帧内预测或帧间预测来生成针对PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可以基于与PU相关联的帧的解码样本来生成PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可以基于除与PU相关联的帧之外的一个或更多个帧的解码样本来生成PU的预测块。
在视频编码器20生成针对CU的一个或更多个PU的预测亮度块、预测Cb块和预测Cr块之后,视频编码器20可以通过从CU的原始亮度编码块减去CU的预测亮度块来生成针对CU的亮度残差块,使得CU的亮度残差块中的每个样本指示CU的预测亮度块之一中的亮度样本与CU的原始亮度编码块中的对应样本之差。类似地,视频编码器20可以分别生成针对CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每个样本指示CU的预测Cb块之一中的Cb样本与CU的原始Cb编码块中的对应样本之差,并且CU的Cr残差块中的每个样本可以指示CU的预测Cr块之一中的Cr样本与CU的原始Cr编码块中的对应样本之差。
此外,如图4C中所示,视频编码器20可以使用四叉树分区将CU的亮度残差块、Cb残差块和Cr残差块分别分解成一个或更多个亮度变换块、Cb变换块和Cr变换块。变换块是其上被应用相同变换的矩形(正方形或非正方形)样本块。CU的TU可以包括亮度样本的变换块、色度样本的两个对应变换块和用于对变换块样本进行变换的语法元素。因此,CU的每个TU可以与亮度变换块、Cb变换块和Cr变换块相关联。在一些示例中,与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可以包括单个变换块和用于对该变换块的样本进行变换的语法结构。
视频编码器20可以将一个或更多个变换应用于TU的亮度变换块以生成针对TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或更多个变换应用于TU的Cb变换块以生成针对TU的Cb系数块。视频编码器20可以将一个或更多个变换应用于TU的Cr变换块以生成针对TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常是指变换系数被量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示量化的变换系数的语法元素执行CABAC。最后,视频编码器20可以输出包括形成了编码帧和相关联数据的表示的比特序列的比特流,所述比特流要么被保存在存储设备32中、要么被传输到目的设备14。
在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析比特流以从比特流获得语法元素。视频解码器30可以至少部分地基于从比特流获得的语法元素来对视频数据的帧进行重建。对视频数据进行重建的过程通常与由视频编码器20执行的编码过程互逆。例如,视频解码器30可以对与当前CU的TU相关联的系数块执行逆变换以重建与当前CU的TU相关联的残差块。视频解码器30还通过将针对当前CU的PU的预测块的样本与当前CU的TU的变换块的对应样本相加,来重建当前CU的编码块。在重建针对帧的每个CU的编码块之后,视频解码器30可以重建帧。
如上所述,视频编码主要使用两种模式(即,帧内部预测(或帧内预测)和帧之间预测(或帧间预测))来实现视频压缩。应注意,IBC可以被视为帧内预测或第三模式。在两种模式之间,由于使用运动矢量来根据参考视频块预测当前视频块,所以帧间预测比帧内预测对编码效率的贡献更大。
但是随着不断改进的视频数据捕获技术和用于保留视频数据中的细节的更精细的视频块尺寸,表示用于当前帧的运动矢量所需的数据量也大幅增加。克服此挑战的一种方式受益于以下事实:不仅空间域和时间域两者中的一组邻近CU具有用于预测目的的相似视频数据,而且这些邻近CU之间的运动矢量也是相似的。因此,可以通过以下方式而使用空间邻近CU和/或时间同位CU的运动信息作为当前CU的运动信息(例如,运动矢量)的近似(其也被称为当前CU的“运动矢量预测因子”(MVP)):探索它们的空间和时间相关性。
代替如上文结合图2所描述的将由运动估计单元42确定的当前CU的实际运动矢量编码到视频比特流中,从当前CU的实际运动矢量减去当前CU的运动矢量预测因子以产生针对当前CU的运动矢量差(MVD)。通过这样做,不需要将由运动估计单元42针对帧的每个CU确定的运动矢量编码到视频比特流中,并且可以显著减少用于表示视频比特流中的运动信息的数据量。
类似于在编码块的帧间预测期间选择参考帧中的预测块的过程,视频编码器20和视频解码器30两者需要采用一组规则,以用于使用与当前CU的空间邻近CU和/或时间同位CU相关联的那些潜在候选运动矢量来构建针对当前CU的运动矢量候选列表(也称为“合并列表”),然后从运动矢量候选列表中选择一个成员作为针对当前CU的运动矢量预测因子。通过这样做,不需要从视频编码器20向视频解码器30传输运动矢量候选列表本身,并且运动矢量候选列表内的所选运动矢量预测因子的索引足以使视频编码器20和视频解码器30使用运动矢量候选列表内的相同运动矢量预测因子来对当前CU进行编码和解码。
一般来说,VVC中应用的基本帧内预测方案几乎与HEVC的方案保持相同,除了几个预测工具被进一步扩展、添加和/或改进,例如,具有广角帧内模式的扩展帧内预测、多参考线(MRL)帧内预测、位置相关帧内预测组合(PDPC)、帧内子分区(ISP)预测、跨分量线性模型(CCLM)预测和矩阵加权帧内预测(MIP)。
与HEVC类似,VVC使用与当前CU邻近的一组参考样本(即,在当前CU上方或在当前CU左侧)来预测当前CU的样本。然而,为了捕获自然视频(尤其是对于高分辨率(例如4K)的视频内容)中存在的更精细的边缘方向,角度帧内模式的数量从HEVC中的33个扩展到VVC中的93个。图4F是图示VVC中定义的帧内模式的框图。如图4F中所示,在93个角度帧内模式中,模式2至66是常规角度帧内模式,模式-1至-14和模式67至80是广角帧内模式。除了角度帧内模式之外,HEVC的平面模式(图1中的模式0)和直流(DC)模式(图1中的模式1)也应用于VVC。
如图4E中所示,由于在VVC中应用四叉树/二叉树/三叉树分区结构,所以除了正方形视频块之外,还存在矩形视频块用于VVC中的帧内预测。由于一个给定视频块的宽度和高度不相等,因此可以针对不同的块形状从93个角度帧内模式中选择各种角度帧内模式的集合。更具体地,对于正方形和矩形视频块,除了平面和DC模式之外,每种块形状还支持93种角度帧内模式中的65种角度帧内模式。当视频块的矩形块形状满足特定条件时,视频解码器30可以使用如下表1-0中所示的映射关系根据从视频编码器20接收的常规角度帧内模式的索引自适应地确定视频块的广角帧内模式的索引。即,对于非正方形块,视频编码器20使用常规角度帧内模式的索引来用信令通知广角帧内模式,常规角度帧内模式的索引在被解析之后被视频解码器30映射到广角帧内模式的索引,从而确保帧内模式(即平面模式、DC模式以及93种角度帧内模式中的65种角度帧内模式)的总数(即67)不变,并且帧内预测模式编码方法不变。因此,在跨不同块尺寸提供一致设计的同时,实现了用信令通知帧内预测模式的良好效率。
表1-0示出了VCC中不同块形状的帧内预测的常规角度帧内模式的索引与广角帧内模式的索引之间的映射关系,其中W表示视频块的宽度,并且H表示视频块的高度。
表1-0
与HEVC中的帧内预测类似,VVC中的所有帧内模式(即,平面、DC和角度帧内模式)都利用当前视频块上方和左侧的一组参考样本来进行帧内预测。然而,与仅使用参考样本的最接近行/列(即,图4G中的第零线201)的HEVC不同,在VVC中引入了MRL帧内预测,其中除了参考样本的最接近行/列之外,参考样本的两个附加行/列(即,图4G中的第一线203和第三线205)可以用于帧内预测。所选择的参考样本的行/列的索引从视频编码器20用信令通知视频解码器30。当选择参考样本的非最接近行/列(即,图4G中的第一线203或第三线205)时,平面模式被从可用于预测当前视频块的一组帧内模式中排除。针对当前CTU内的视频块的第一行/列禁用MRL帧内预测,以防止使用当前CTU外部的扩展参考样本。
样本自适应偏移(SAO)
样本自适应偏移(SAO)是一种过程,该过程基于由编码器传输的查找表中的值,通过在应用去块滤波器之后有条件地将偏移值加到每个样本来修改解码样本。基于由语法元素sao-type-idx为每个CTB选择的滤波类型,基于区域执行SAO滤波。sao-type-idx的值为0指示SAO滤波器未应用于CTB,值1和2分别用信令通知使用带偏移和边缘偏移滤波类型。在sao-type-idx等于1指定的带偏移模式中,选择的偏移值直接取决于样本幅度。在这种模式下,整个样本幅度范围被均匀地分割成32个称为带的分段,并且属于这些带中的四个(它们在32个带内是连续的)的样本值通过与表示为带偏移的传输值相加来修改,带偏移可以是正的或负的。使用四个连续带的主要原因是,在可能出现带状伪影的平滑区域中,CTB中的样本幅度往往集中在仅几个带中。此外,使用四个偏移的设计选择与也使用四个偏移值的边缘偏移操作模式是统一的。在由等于2的sao-type-idx指定的边缘偏移模式中,具有从0到3的值的语法元素sao-eo-class用信令通知水平、竖直或两个对角梯度方向之一是否用于CTB中的边缘偏移分类。
图5A是描绘根据本公开的一些实施方式的在SAO中使用的四种梯度模式的框图。四个梯度模式502、504、506和508用于边缘偏移模式中的相应sao-eo-class。标记为“p”的样本指示要考虑的中心样本。标记为“n0”和“n1”的两个样本指定沿(a)水平(sao-eo-class=0)、(b)竖直(sao-eo-class=1)、(c)135°对角线(sao-eo-class=2)、和(d)45°(sao-eo-class=3)梯度模式的两个邻近样本。通过将如图5A中所示的位于某个位置的样本值p与位于邻近位置的两个样本的值n0和n1进行比较,CTB中的每个样本被分类到五个EdgeIdx种类之一中。这种分类基于解码样本值针对每个样本进行,因此EdgeIdx分类不需要附加的信令。根据样本位置处的EdgeIdx种类,对于从1到4的EdgeIdx种类,将来自传输的查找表的偏移值与样本值相加。偏移值对于种类1和2始终为正,并且对于种类3和4始终为负。因此滤波器通常在边缘偏移模式中具有平滑效果。下面的表1-1说明了SAO边缘类别中的样本EdgeIdx种类。
表1-1
对于SAO类型1和2,总共四个幅度偏移值针对每个CTB被传输到解码器。对于类型1,符号也被编码。偏移值和相关语法元素(诸如sao-type-idx和sao-eo-class)由编码器确定——通常使用优化速率-失真性能的准则。可以使用合并标志指示SAO参数从左侧或上方CTB继承,以使信令高效。总之,SAO是一种非线性滤波操作,它允许对重建信号进行附加的细化,并且它可以增强平滑区域中和边缘周围的信号表示。
预样本自适应偏移(Pre-SAO)
在一些示例中,实施预样本自适应偏移(Pre-SAO)。具有低复杂度的pre-SAO的编码性能在未来的视频编解码标准发展中很有前途。在一些示例中,Pre-SAO仅应用于使用用于分类的亮度样本的亮度分量样本。Pre-SAO通过应用两个类似SAO的滤波操作(称为SAOV和SAOH)进行操作,并且在应用现有(传统)SAO之前将它们与去块滤波器(DBF)联合应用。第一类似SAO的滤波器SAOV操作为在应用针对竖直边缘的去块滤波器(DBFV)之后将SAO应用于输入图片Y2
Y3(i)=Clip1(Y2(i)+d1·(f(i)>T?1:0)-d2·(f(i)<-T?1:0))。
其中T是预定的正常数,并且d1和d2是与基于Y1(i)和Y2(i)之间的逐样本差值的两个类别相关联的偏移系数,逐样本差值由下式给出:
f(i)=Y1(i)-Y2(i)。
针对d1的第一类别被给出为:采用所有样本位置i,使得f(i)>T,而针对d2的第二类别由f(i)<-T给出。在编码器处计算偏移系数d1和d2,采用与现有SAO过程相同的方式使SAOV的输出图片Y3与原始图片X之间的均方误差最小化。在应用SAOV之后,第二类似SAO的滤波器SAOH操作为将SAO应用于Y4,在已经应用SAOV之后,基于Y3(i)和Y4(i)之间的逐样本差值进行分类,从而有水平边缘的去块滤波器(DBFH)的输出图片,如图5B中所示。与SAOV相同的程序被应用于SAOH,使用Y3(i)-Y4(i)而不是Y1(i)-Y2(i)用于其分类。SAOH和SAOV中的每一个的两个偏移系数、预定阈值T和启用标志在条带级中用信令通知。对于亮度和两个色度分量,独立地应用SAOH和SAOV。
在一些情况中,SAOV和SAOH这二者仅对受相应去块(DBFV或DBFH)影响的图片样本进行操作。因此,与现有的SAO过程不同,Pre-SAO仅处理给定空间区域(图片或传统SAO情况下的CTU)中所有样本的子集,这将每个图片样本的解码器侧平均操作的结果增加保持在低位(根据初步估计,在最坏的情况下,每个样本进行两次或三次比较和两次加法)。Pre-SAO只需要去块滤波器使用的样本,而不需要在解码器处存储额外的样本。
双边滤波器(BIF)
在一些实施例中,双边滤波器(BIF)被实施以进行超越VVC的压缩效率探索。BIF在样本自适应偏移(SAO)环路滤波器阶段执行。双边滤波器(BIF)和SAO二者都使用来自去块的样本作为输入。每个滤波器为每个样本创建偏移,并且这些偏移被加到输入样本,然后在进入ALF之前被限幅。
详细地,输出样本IOUT获得为
IOUT=clip3(IC+ΔIBIF+ΔISAO),
其中IC是来自去块的输入样本,ΔIBIF是来自双边滤波器的偏移,并且ΔISAO是来自SAO的偏移。
在一些实施例中,该实施方式为编码器提供了在CTU和条带级别启用或禁用滤波的可能性。编码器通过评估速率-失真优化(RDO)成本做出决定。
在PPS中引入了表1-2中的以下语法元素,表1-2示出图片参数集RBSP语法。
表1-2
等于0的pps_bilateral_filter_enabled_flag指定双边环路滤波器对于涉及PPS的条带被禁用。等于1的pps_bilateral_filter_flag指定对引用PPS的条带启用双边环路滤波器。
bilateral_filter_strength指定在双边变换块滤波过程中使用双边环路滤波器强度值。bilateral_filter_strength的值应在0到2的范围内,包括端值。
bilateral_filter_qp_offset指定:对于引用PPS的条带,在双边滤波器查找表LUT(x)的推导中使用偏移。bilateral_filter_qp_offset应在-12到+12的范围内,包括端值。
在表1-3中以及表1-4中引入以下语法元素,表1-3示出条带头部语法,表1-4示出编码树单元语法。
表1-3
表1-4
语义如下:slice_bilateral_filter_all_ctb_enabled_flag等于1指定启用双边滤波器并应用于当前条带中的所有CTB。当slice_bilateral_filter_all_ctb_enabled_flag不存在时,推断它等于0。
slice_bilateral_filter_enabled_flag等于1指定启用双边滤波器并且可以应用于当前条带的CTB。当slice_bilateral_filter_enabled_flag不存在时,推断它等于slice_bilateral_filter_all_ctb_enabled_flag。
bilateral_filter_ctb_flag[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]等于1指定双边滤波器应用于亮度位置(xCtb,yCtb)处的编码树单元的亮度编码树块。bilateral_filter_ctb_flag[cIdx][xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]等于0指定不对亮度位置(xCtb,yCtb)处的编码树单元的亮度编码树块应用双边滤波器。当bilateral_filter_ctb_flag不存在时,推断它等于(slice_bilateral_filter_all_ctb_enabled_flag&slice_bilateral_filter_enabled_flag)。
在一些示例中,对于被滤波的CTU,滤波过程如下进行。在样本不可用的图片分界处,双边滤波器使用扩展(样本重复)来填充不可用的样本。对于虚拟边界,行为动作与对SAO是一样的,即不发生滤波。当跨越水平CTU分界时,双边滤波器可以访问与SAO正在访问的相同样本。图7是描绘根据本公开的一些实施方式的围绕中心样本的样本的命名约定的框图。作为示例,如果中心样本IC位于CTU的顶线,则从CTU上面开始读取INW、IA和INE,就像SAO做的一样,但填充了IAA,因此不需要额外的线缓冲器。中心样本IC周围的样本根据图7被表示,其中A、B、L和R代表上、下、左和右,并且其中NW、NE、SW、SE代表西北等。同样,AA代表上-上,BB代表下-下等。这种菱形形状不同于另一种使用正方形滤波器支持的方法,不使用IAA、IBB、ILL或IRR
每个周围样本IA、IR等将贡献对应的修改量值等。这些值计算方式如下:从右侧样本IR的贡献开始,计算差值为:
ΔIR=(|IR-IC|+4)>>3,
其中|·|表示绝对值。对于不是10位的数据,使用ΔIR=(|IR-IC|+2n-6)>>(n-7)代替,其中针对8位的数据,n=8,以此类推。结果值现在被限幅,使得其小于16:
sIR=min(15,ΔIR)。
修改量值现在计算为
其中LUTROW[]是由qpb=clip(0,25,QP+bilateral_filter_qp_offset-17)的值确定的16个值的阵列:
这些值可以使用每个条目六位来存储,产生26*16*6/8=312字节或300字节(如果排除全为零的第一行的话)。修改量值以相同的方式从IL、IA和IB计算。对于对角线样本INW、INE、ISE、ISW,以及两步骤之外的样本IAA、IBB、IRR和ILL,计算也遵循等式2和3,但使用的值移1位。以对角线样本ISE为例,
并且其它对角线样本和两步骤之外的样本被类似计算。
修改量值被求和在一起
在一些示例中,等于针对先前的样本的同样,等于针对上面样本的并且对于对角线和两步骤之外的修改量值也可以找到类似的对称性。这意味着在硬件实现中,计算 这六个值就足够了,并且其余六个值可以从先前计算的值获得。
msum值现在乘以c=1、2或3,这可以通过以下方式使用单个加法器和逻辑与门来完成:
cv=k1&(msum<<1)+k2&msum
其中&表示逻辑与,并且k1是乘数c的最高有效位,并且k2是最低有效位。要乘以的值是使用最小块尺寸D=min(width,height)获得的,如表1-5中所示,表1-5示出了从块的最小尺寸D=min(width,height)中获得参数c。
表1-5
块类型 D≤4 4<D<16 D≥16
帧内 3 2 1
帧间 2 2 1
最后,计算双边滤波器偏移ΔIBIF。对于全强度滤波,使用以下内容:
ΔIBIF=(cv+16)>>5,
而对于半强度滤波,使用以下内容:
ΔIBIF=(cv+32)>>6。
n位的数据的通用公式是使用
radd=214-n-bilateral_filter_strength
rshift=15-n-bilateal_filter_strength
ΔIBIF=(cv+radd)>>rshhift
其中bilateral_filter_strength可以是0或1,并且被在pps中用信令通知。
自适应环路滤波器(ALF)
在VVC中,应用了具有基于块的滤波器自适应的自适应环路滤波器(ALF)。对于亮度分量,基于局部梯度的方向和活动性,为每个4×4块选择25个滤波器之一。
使用两种菱形滤波器形状(如图8A-8B中所示)。7×7菱形用于亮度分量,并且5×5菱形用于色度分量。
对于亮度分量,每个4×4块被分类为25个类别之一。分类索引C是基于其方向性D和活动性的量化值推导出来的,如下:
为了计算D和首先使用一维(1-D)拉普拉斯算子计算水平、竖直和两个对角线方向的梯度:
其中索引i和j指代4×4块内左上样本的坐标,并且R(i,j)指示坐标(i,j)处的重建样本。
为了降低块分类的复杂性,应用子采样一维拉普拉斯算子计算。如图9A-9D中所示,相同的子采样位置用于所有方向的梯度计算。
则水平方向和竖直方向的梯度的D最大值和最小值设置为:
两个对角方向的梯度的最大值和最小值设置为:
为了推导出方向性D的值,将这些值相互比较并与两个阈值t1和t2进行比较:
步骤1.如果均成立,则D设置为0。
步骤2.如果则继续步骤3;否则继续步骤4。
步骤3.如果则D设置为2;否则D设置为1。
步骤4.如果则D设置为4;否则D设置为3。
活动性值A计算如下:
A进一步被量化为0到4的范围(包括0和4),并且量化值被表示为
对于图片中的色度分量,不应用分类方法。
滤波器系数和限幅值的几何变换
在对每个4×4亮度块进行滤波之前,根据针对那个块计算的梯度值对滤波器系数f(k,l)和对对应的滤波器限幅值C(k,l)应用几何变换,诸如旋转或对角线和竖直翻转。这相当于将这些变换应用于滤波器支持区域中的样本。这个想法是通过对齐不同块的方向性来使被应用ALF的这些不同块更加相似。
介绍了包括对角线、竖直翻转和旋转的三种几何变换:
对角线:fD(k,l)=f(l,k),cD(k,l)=c(l,k),
竖直翻转:fV(k,l)=f(k,K-l-1),cV(k,l)=c(k,K-l-1)
旋转:fR(k,l)=f(K-l-1,k),cR(k,l)=c(K-l-1,k)。
其中K是滤波器的尺寸,并且0≤k,l≤K-1是系数坐标,使得位置(0,0)位于左上角,并且位置(K-1,K-1)位于右下角。根据针对该块计算的梯度值,将这些变换应用于滤波器系数f(k,1)和限幅值c(k,1)。变换与四个方向的四个梯度之间的关系总结在下表1-6中,表1-6示出了针对一个块计算的梯度与变换的映射。
表1-6
梯度值 变换
gd2<gd1和gh<gv 无变换
gd2<gd1和gv<gh 对角线
gd1<gd2和gh<gv 竖直翻转
gd1<gd2和gv<gh 旋转
滤波过程
在解码器侧,当启用ALF用于CTB时,CU内的每个样本R(i,j)都被滤波,得到样本值R′(i,j),如下所示,
其中f(k,l)表示解码的滤波器系数,K(x,y)是限幅函数,并且c(k,l)表示解码的限幅参数。变量k和l在-L/2和L/2之间变化,其中L表示滤波器长度。限幅函数K(x,y)=min(y,max(-y,x))对应于函数Clip3(-y,y,x)。限幅操作引入了非线性,通过减少与当前样本值相差太大的邻近样本值的影响,使ALF更加高效。
交叉分量自适应环路滤波器(CC-ALF)
CC-ALF使用亮度样本值通过以下方式来细化每个色度分量:对亮度通道应用自适应线性滤波器,然后使用此滤波操作的输出进行色度细化。图10A提供了CC-ALF过程相对于SAO、亮度ALF和色度ALF过程的系统级图。
CC-ALF中的滤波是通过将线性菱形滤波器(图10B)应用于亮度通道来实现的。每个色度通道使用一个滤波器,并且操作表示为:
其中(x,y)是正在细化的色度分量i位置,(xY,yY)是基于(x,y)的亮度位置,Si是亮度分量中的滤波器支持区域,ci(x0,y0)表示滤波器系数。
如图10B中所示,亮度滤波器支持是在计及亮度和色度平面之间的空间缩放因子之后与当前色度样本同位的区域。
在VVC参考软件中,CC-ALF滤波器系数是通过最小化每个色度通道相对于原始色度内容的均方误差来计算的。为了实现这一目标,VTM算法使用类似于针对色度ALF所使用的系数推导过程。具体来说,推导出相关矩阵,并使用Cholesky分解求解器来计算系数,以尝试最小化均方误差度量。在设计滤波器时,每张图片最多可以设计和传输8个CC-ALF滤波器。然后,基于CTU为两个色度通道中的每一个通道指示生成的滤波器。
CC-ALF的附加特性包括:
该设计采用3x4菱形形状,带有8个抽头(tap);
APS中传输7个滤波器系数;
每个传输的系数都有6位动态范围,并且限于2的幂值;
在解码器处推导出第八滤波器系数,使得滤波器系数之和等于0;
条带头部中可以引用APS;
CC-ALF滤波器选择在CTU级别针对每个色度分量进行控制;
水平虚拟边界的边界填充使用与亮度ALF相同的存储器访问模式。
作为附加功能,参考编码器可以被配置为通过配置文件启用某个基本主观调整。启用时,VTM会削弱CC-ALF在使用高QP编码且接近中灰色或者包含大量亮度高频的区域中的应用。从算法上讲,这是通过在满足以下任一条件的CTU中禁用CC-ALF的应用来实现的:
条带QP值减1小于等于基础QP值;
局部对比度大于(1<<(bitDepth–2))–1的色度样本的数量超过CTU高度,其中局部对比度是滤波器支持区域内最大和最小亮度样本值之间的差值;
超过四分之一的色度样本位于(1<<(bitDepth–1))–16和(1<<(bitDepth–1))+16之间的范围中。
此功能的动机是提供一定保证,保证CC-ALF不会放大解码路径中较早引入的伪影(这主要是由于以下事实:VTM目前没有明确针对色度主观质量优化)。预计替代的编码器实施方式将不使用此功能或包含适合其编码特性的替代策略。
滤波器参数信号发送
ALF滤波器参数在自适应参数集(APS)中用信令通知。在一个APS中,可以用信令通知多达25组亮度滤波器系数和限幅值索引,以及多达8组色度滤波器系数和限幅值索引。为了减少比特开销,可以合并针对亮度分量的不同分类的滤波器系数。在条带头部中,用信令通知针对当前条带的APS的索引。
从APS解码的限幅值索引允许使用针对亮度和色度分量二者的限幅值表来确定限幅值。这些限幅值取决于内部位深度(bitdepth)。更准确地说,限幅值通过以下公式获得:
AlfClip={round(2B-α*n)for n∈[0..N-1]}
其中B等于内部位深度,α是等于2.35的预定义常数值,并且N等于4,它是VVC中允许的限幅值的数量。然后,AlfClip被舍入到最接近的值,格式为2的幂。
在条带头部中,可以用信令通知多达7个APS索引来指定用于当前条带的亮度滤波器组。滤波过程可以在CTB级别被进一步控制。总是用信令通知标志来指示ALF是否应用于亮度CTB。亮度CTB可以在16个固定滤波器组和来自APS的滤波器组中选择滤波器组。用信令通知针对亮度CTB的滤波器组索引以指示应用哪个滤波器组。16个固定滤波器组是在编码器和解码器二者中预定义和硬编码的。
对于色度分量,在条带头部中用信令通知APS索引以指示用于当前条带的色度滤波器组。在CTB级别,如果APS中存在多于一个色度滤波器组,则用信令通知针对每个色度CTB的滤波器索引。
滤波器系数采用等于128的范数进行量化。为了限制乘法复杂度,应用了比特流一致性,使得非中心位置的系数值应在-27到27-1的范围内(含端值)。中心位置系数未在比特流中用信令通知,并被视为等于128。
用于减少线缓冲器的虚拟边界滤波过程
在VVC中,为了减少ALF的线缓冲器需求,对水平CTU边界附近的样本采用修改的块分类和滤波。为此目的,通过将水平CTU边界移位“N”个样本来将虚拟边界定义为一条线,如图11中所示。其中针对亮度分量的N等于4,针对色度分量的N等于2。
修改的块分类被应用于亮度分量,如图11中所描绘的。对于虚拟边界上方的4x4块的1D拉普拉斯梯度计算,仅使用虚拟边界上方的样本。类似地,对于虚拟边界下方的4x4块的1D拉普拉斯梯度计算,仅使用虚拟边界下方的样本。通过计及1D拉普拉斯梯度计算中使用的样本数量的减少,相应地缩放活动性值A的量化。
对于滤波处理,虚拟边界处的对称填充操作用于亮度和色度分量二者。如图12中所示,当正被滤波的样本位于虚拟边界下方时,位于虚拟边界上方的邻近样本被填充。同时,其他侧的对应样本也被对称填充。
与水平CTU边界处使用的对称填充方法不同,当禁用跨边界的滤波器时,对条带、瓦片和子图片边界应用简单填充过程。图片边界处也应用简单填充过程。被填充样本用于分类和滤波过程。为了补偿在对恰好在虚拟边界上方或下方的样本进行滤波时的极端填充,通过将获得样本值R'(i,j)的等式中的右移增加3来降低针对亮度和色度二者的那些情况的滤波器强度。
对于HEVC、VVC、AVS2和AVS3标准中的现有SAO设计,亮度Y、色度Cb和色度Cr样本偏移值是独立决定的。即,例如,当前色度样本偏移仅由当前和邻近色度样本值决定,而不计及同位或邻近亮度样本。然而,亮度样本比色度样本保留了更多的原始图片细节信息,并且它们可以有利于当前色度样本偏移的决定。此外,由于色度样本在从RGB到YCbCr的颜色转换之后或者在量化和去块滤波器之后通常会丢失高频细节,因此引入保留高频细节的亮度样本用于色度偏移决定可以有利于色度样本重建。因此,通过探索交叉分量相关性(例如通过使用交叉分量样本自适应偏移(CCSAO)的方法和系统)可以预期进一步的益处。在一些实施例中,这里的相关性不仅包括交叉分量样本值,而且包括图片/编码信息,诸如来自交叉分量的预测/残差编码模式、变换类型和量化/去块/SAO/ALF参数。
另一个示例是对于SAO,亮度样本偏移仅由亮度样本决定。然而,例如,具有相同带偏移(BO)分类的亮度样本可以按照其同位的和邻近的色度样本被进一步分类,这可能导致更有效的分类。SAO分类可以作为一种捷径来补偿原始图片和重建图片之间的样本差值。因此,期望一种有效的分类。
交叉分量样本自适应偏移(CCSAO)
在以下描述中使用HEVC、VVC、AVS2和AVS3标准中的现有SAO设计作为基本SAO方法,但是对于视频编解码领域的技术人员来说,本公开中描述的所提出的交叉分量方法也可以应用于具有类似设计精神的其它环路滤波器设计或其它编解码工具。例如,在AVS3标准中,SAO被称为增强型样本自适应偏移(ESAO)的编解码工具所替代。然而,提出的CCSAO也可以与ESAO并行地应用。可以与CCSAO并行应用的另一个示例是AV1标准中的受约束方向增强滤波器(CDEF)。
图13A-13F示出了提出的方法的图。在图13A中,亮度去块滤波器(DBF Y)之后的亮度样本用于确定SAO Cb和SAO Cr之后针对色度Cb和Cr的附加偏移。例如,首先使用同位亮度样本(1304)和邻近亮度样本(1306)来分类当前色度样本(1302),并且对应类别的CCSAO偏移被加到当前色度样本。在图13B中,CCSAO应用于亮度和色度样本,并使用DBF Y/Cb/Cr作为输入。在图13C中,CCSAO可以独立工作。在图13D中,CCSAO可以在同一编解码器阶段中以相同或不同的偏移递归地应用(2次或N次)或在不同阶段中重复。在图13E中,CCSAO与SAO和BIF并行应用。在图13F中,CCSAO替代SAO并与BIF并行应用。
因此,为了对当前亮度样本进行分类,可以使用当前和邻近亮度样本、同位和邻近色度样本(Cb和Cr)的信息。另外,为了对当前色度样本(Cb或Cr)进行分类,可以使用同位和邻近亮度样本、同位和邻近交叉色度样本以及当前和邻近色度样本的信息。
图14示出了CCSAO也可以与其他编解码工具并行应用。例如AVS标准中的ESAO,或者AV1标准中的CDEF。图15A示出了CCSAO的位置可以在SAO之后,即VVC标准中CCALF的位置。在图15B中,CCSAO可以独立工作,无需CCALF。在图15C中,CCSAO可以用作重建后滤波器,即,使用重建样本作为分类的输入,在进入邻近帧内预测之前补偿亮度/色度样本。图16示出CCSAO也可以与CCALF并行应用。在图16中,CCALF和CCSAO的位置可以切换。注意,在图13A至图16或本公开中的其他段落中,SAO Y/Cb/Cr块可以被ESAO Y/Cb/Cr(在AVS3中)或CDEF(在AV1中)替代。注意,Y/Cb/Cr在视频编解码领域也可以表示为Y/U/V。
在一些示例中,如果视频是RGB格式,则还可以通过在下面的段落中简单地将YUV表示法映射到GBR来应用所提出的CCSAO。
注意,本公开中的附图可以与本公开中提到的所有示例相结合。
分类
图13A-13F和图19示出了CCSAO分类的输入。图13A-13F和图19还示出所有同位和邻近的亮度/色度样本都可以被馈入CCSAO分类。请注意,本公开中提到的分类器不仅可以服务于交叉分量分类(例如,使用亮度来分类色度,反之亦然),而且还可以服务于单分量分类(例如,使用亮度来分类亮度或使用色度来分类色度),因为本公开中新提出的分类器也可以有利于原始的SAO分类。
分类器示例(C0)使用同位亮度或色度样本值(图13A中的Y0)(图13B-13C中的Y4/U4/V4)进行分类。令band_num为亮度或色度动态范围的等分频带数量,bit_depth为序列位深度,当前色度样本的类别索引的示例为
Class(C0)=(Y0*band_num)>>bit_depth
下面的表2-2中列出了一些band_num和bit_depth示例。表2-2示出了当针对每个分类示例的频带数量不同时的三个分类示例。
分类可以计及舍入。
Class(C0)=((Y0*band_num)+(1<<bit_depth))>>bit_depth
下面的表2-1列出了一些band_num和bit_depth示例。
在一些示例中,分类器使用不同的亮度(或色度)样本位置用于C0分类。例如,使用邻近的Y7而不是Y0用于C0分类,如图17中所示。可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别切换不同的分类器。例如,在图17中,Y0用于POC0,但Y7用于POC1,如下面的表2-2中所示。
表2-2
POC 分类器 C0band_num 总类别
0 C0使用Y0位置 8 8
1 C0使用Y7位置 8 8
图18A-18G示出了不同形状亮度候选的一些示例。可以对形状应用约束:候选的总数必须是2的幂,如图18B-18D中所示。可以对形状应用约束:亮度候选的数量必须与色度样本水平和竖直对称,如图18A、18C-18E中所示。2的幂约束和对称约束也可以应用于色度候选。在图13B-13C中,U/V部分示出了对称约束的示例。
在一些示例中,不同的颜色格式可以具有不同的分类器“约束”。例如,420使用图13B-13C的亮度/色度候选选择(从3x3形状中选择一个候选),但444使用图18F用于亮度/色度候选选择,422使用图18G用于亮度(2个色度样本共享4个亮度候选),以及图18F用于色度候选。
表2-1
C0位置和C0 band_num可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中组合和切换。不同的组合可以是不同的分类器,如下面的表2-3中所示。
表2-3
POC 分类器 C0band_num 总类别
0 C0使用Y0位置 16 16
1 C0使用Y7位置 8 8
在一些示例中,可以通过对同位和邻近亮度样本进行加权来将同位亮度样本值(Y0)替换为值(Yp)。图20A-20B示出了2个示例。不同的Yp可以是不同的分类器。不同的Yp可以应用于不同的色度格式。例如,图20A的Yp用于420情况。图20B的Yp用于422情况,并且Y0用于444情况。
在一些示例中,另一分类器示例(C1)是同位亮度样本(Y0)和邻近的8个亮度样本的比较得分[-8,8],这总共产生17个类别(class)。
初始Class(C1)=0,在邻近的8个亮度样本(Yi,i=1到8)上循环
如果Y0>Yi class+=1
否则如果Y0<Yi class-=1。
在一些示例中,Cl示例等于以下函数,其中阈值th为0。
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+…+f(C,P8))
如果x-y>th,则f(x,y)=1;如果x-y=th,则f(x,y)=0;如果x-y<th,则f(x,y)=-1
在一些示例中,类似于C4分类器,一个或多个阈值可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中被用信令通知或被预定义(例如,保存在LUT中)以帮助对差值进行分类(量化)。
在一些示例中,变体(C1')仅对比较分数[0,8]进行计数,并且这产生8个类别。(C1,C1')是分类器组,并且PH/SH级别标志可以被用信令通知以在C1和C1'之间切换。
初始Class(C1')=0,在邻近的8个亮度样本(Yi,i=1到8)上循环
如果Y0>Yi class+=1。
在一些示例中,变体(C1)选择性地使用M个邻近样本中的N个邻近样本来对比较分数进行计数。可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别用信令通知M位的位掩码,以指示选择哪些邻近样本来对比较分数进行计数。使用图13B作为亮度分类器的示例:8个邻近亮度样本是候选,并且在PH用信令通知8位的位掩码(01111110),指示选择了Y1到Y6这6个样本,所以比较分数在[-6,6]中,这产生13个偏移。选择性分类器C1为编码器提供了更多选择,以在偏移信令开销和分类粒度之间进行权衡。
在一些示例中,与C1类似,变体(C1')仅对比较分数[0,+N]进行计数,先前的位掩码01111110示例给出了[0,6]中的比较分数,这产生了7个偏移。
在一些示例中,可以组合不同的分类器以产生通用分类器。例如,对于不同的图片,对于不同的图片(不同的POC值),应用不同的分类器,如下表2-4中所示。
表2-4
POC 分类器 C0band_num 总类别
0 组合C0和C1 16 16*17
1 组合C0和C1' 16 16*9
2 组合C0和C1 7 7*17
在一些示例中,另一个分类器示例(C2)使用同位和邻近的亮度样本的差值(Yn)。图21A-21B示出了Yn的示例,当位深度为10时,Yn的动态范围为[-1024,1023]。令C2 band_num为Yn动态范围的等分频带的数量,
Class(C2)=(Yn+(1<<bit_depth)*band_num)>>(bit_depth+1)
C0和C2可以组合起来以产生通用分类器。例如如下表2-5所示:
表2-5
POC 分类器 C0band_num C2band_num 总类别
0 组合C0和C2 16 16 16*17
1 组合C0和C2 8 7 8*7
在一些示例中,另一个分类器示例(C3)使用位掩码用于分类,如表2-6中所示。表2-6示出了使用位掩码进行分类的分类器示例(位掩码位置带有下划线)。10位的位掩码在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信令通知以指示分类器。例如,位掩码1111000000表示对于给定的10位亮度样本值,只有MSB 4位用于分类,并且这总共产生16个类别。另一个示例位掩码1001000001表示仅3位用于分类,并且这总共产生8个类别。位掩码长度(N)可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中固定或切换。例如,对于10位的序列,4位的位掩码1110在图片中在PH中用信令通知,MSB 3位b9、b8、b7用于分类。另一个示例是LSB上的4位的位掩码0011。b0、b1用于分类。位掩码分类器可以应用于亮度或色度分类。位掩码N是使用MSB还是LSB可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中固定或切换。
在一些示例中,亮度位置和C3位掩码可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中组合和切换。不同的组合可以是不同的分类器。
在一些示例中,可以应用位掩码限制的“1的最大数量”来限制偏移的对应数量。例如,在SPS中将位掩码的“1的最大数量”限制为4,并且这将在序列中产生最大偏移为16。不同POC中的位掩码可以不同,但“1的最大数量”不应超过4(总的类别不应超过16)。在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中,“1的最大数量”值可以用信令通知并且切换。
表2-6
POC 分类器 C310位的位掩码 总类别
0 C3(使用Y0位置) 111100 0000 16
亮度样本值 类别索引
000000 1111 0(0000)
1010110011 9(1010)
111100 1001 15(1111)
POC 分类器 C310位的位掩码 总类别
1 C3(使用Y4位置) 10 0100 0001 8
亮度样本值 类别索引
00 0000 1111 1(001)
10 1011 0011 5(101)
11 1100 1001 7(111)
如图19中所示,其它交叉分量色度样本也可以被馈送到CCSAO分类中。交叉分量色度样本的分类器可以与亮度交叉分量分类器相同,或者可以具有其自己的本公开中所提到的分类器。可以将这两个分类器组合以形成联合分类器来对当前色度样本进行分类。例如,组合了交叉分量亮度和色度样本的联合分类器总共产生16个类别,如下表2-7中所示。表2-7示出了使用组合交叉分量亮度和色度样本的联合分类器的分类器示例(位掩码位置有下划线)
表2-7
POC 分类器 类别 总类别
0 组合
C3使用Y4位置 位掩码:1001000001 8
C0使用交叉色度同位位置 C0band_num:2 2
16
所有上述分类器(C0、C1、C1'、C2、C3)都可以组合。例如,见下表2-8。表2-8示出了组合不同分类器。
表2-8
POC 分类器 总类别
0 组合C0、C1和C2 C0band_num:4 C2band_num:4 4*17*4
1 组合C0、C1'和C2 C0band_num:6 C2band_num:4 6*9*4
2 组合C1和C3 C31的数量:4 16*17
在一些示例中,另一分类器示例(C4)使用CCSAO输入和待补偿样本值的差值进行分类。例如,如果在ALF阶段中应用CCSAO,则使用当前分量pre-ALF和post-ALF样本值的差值进行分类。一个或多个阈值可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信令通知或被预定义(例如,被保存在LUT中),以帮助对所述差值进行分类(量化)。C4分类器可以与C0 Y/U/V bandNum组合以形成联合分类器(如表2-9中所示的POC1示例)。表2-9示出了分类器示例使用CCSAO输入值与待补偿样本值的差值进行分类。
表2-9
POC 分类器 差值阈值(Th) bandNum 总类别
0 C4其中diff<-Th?<0?<Th?Else Th=3 4
1 使用Y0组合C4/C0 Th=3 16 48
2 C4其中diff<Th1?<Th2?Else Th1=4,Th2=5 3
3 C4其中diff<-Th?<Th?Else Th=1 3
在一些实施例中,分类器示例(C5)使用“编码信息”来帮助子块分类,因为不同编码模式可能在重建图像中引入不同的失真统计。CCSAO样本按照其样本先前的编码信息被分类,并且编码信息的组合可以形成分类器,例如,如下表2-10中所示。图39示出了C5的编码信息的不同阶段的另一个示例。表2-10示出CCSAO样本按照其样本先前编码信息被分类,并且编码信息的组合可以形成分类器。
表2-10
在一些示例中,分类器示例(C6)使用YUV颜色变换值进行分类。例如,为了对当前Y分量进行分类,选择1/1/1同位或邻近Y/U/V样本进行向RGB的颜色变换,并使用C3 bandNum来量化R值作为当前Y分量分类器。
在一些示例中,分类器示例(C7)可以被视为C0/C3和C6的一般化版本。为了推导出当前分量C0/C3 bandNum分类,使用所有3个颜色分量同位/当前和相邻样本。例如,为了对当前U样本进行分类,如图13B中那样使用同位和邻近的Y/V、当前和邻近的U样本,这可以公式化为
其中S是准备用于C0/C3 bandNum分类的中间样本,Rij是第i个分量的第j个同位/邻近/当前样本,其中第i个分量可以是Y/U/V分量,并且cij是可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中预定义或用信令通知的加权系数。
在一些实施例中,C7的一种特殊子集情况可以仅使用1/1/1同位或邻近的Y/U/V样本来推导出中间样本S,这也可以被视为C6的一种特殊情况(通过使用3个分量的颜色变换)。S可以进一步被馈送到C0/C3 bandNum分类器中。
classIdx=bandS=(S*bandNumS)>>BitDepth;
在一些实施例中,与C0/C3 bandNum分类器一样,C7也可以与其他分类器组合以形成联合分类器。在一些示例中,C7可能与后面的示例不同,后面的示例联合使用同位和邻近的Y/U/V样本进行分类(针对每个Y/U/V分量的3分量联合bandNum分类)。
在一些实施例中,可以应用一个约束:cij之和=1,以减少cij信令开销并将S的值限制在位深度范围内。例如,强制c00=(1–其他cij之和)。可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中预定义或用信令通知哪个cij(在该示例中为c00)被强制(由其他系数推导出)。
在一些实施例中,另一个分类器示例(C8)使用交叉分量/当前分量空间活动性信息作为分类器。与上面的块活动性分类器类似,位于(k,l)的一个样本可以通过以下方式得到样本活动性:
(1)计算N个方向梯度(拉普拉斯或向前/向后)
(2)对N个方向梯度求和以得到活动性A
(3)量化(或映射)A以得到类别索引
在一些实施例中,例如,2方向拉普拉斯梯度得到A和预定义映射{Qn}得到
gv=Vk,l=|2R(k,l)-R(k,l-1)-R(k,l+1)|
gh=Hk,l=|ZR(k,l)-R(K-1,l)-R(k+1,l)|
A=(Vk,l+Hk,l)>>(BD-6)
其中(BD-6)(或表示为B)是与位深度相关联的预定义归一化项。
在一些实施例中,然后A可以进一步映射到[0,4]的范围:
其中B、Qn可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中预定义或用信令通知。
在一些实施例中,另一分类器示例(C9)可以使用交叉分量/当前分量的空间梯度信息作为分类器。与上面的块梯度分类器类似,位于(k,l)的一个样本可以通过以下方式得到样本梯度类别:
(1)计算N个方向梯度(拉普拉斯或向前/向后);
(2)计算M个分组方向(M<=N)的梯度的最大值和最小值;
(3)通过将N个值相互比较并与m个阈值t1至tm进行比较来计算方向性D;
(4)根据相对梯度量值应用几何变换(可选)。
例如,作为ALF块分类器,但在样本级别应用于样本分类,
(1)计算4个方向梯度(拉普拉斯)
(2)计算2个分组方向(H/V和D/A)的梯度的最大值和最小值
(3)通过将N个值相互比较并与两个阈值t1到tm进行比较来计算方向性D:
(4)根据相对梯度量值应用几何变换,如表1-6中所示。
在一些示例中,C8和C9可以组合以形成联合分类器。
在一些示例中,另一分类器示例(C10)可以使用交叉/当前分量的边缘信息来进行当前分量分类。通过扩展原始SAO分类器,C10可以通过以下方式更有效地提取交叉/当前分量边缘信息:
(1)选择一方向计算2个边缘强度,其中1个方向由当前样本与2个邻近样本形成,并且其中1个边缘强度是通过当前样本与1个邻近样本相减计算出的。
(2)通过M-1个阈值Ti将每个边缘强度量化为M段;
(3)使用M*M个类别对当前分量样本进行分类。
图22A-22B图示了根据本公开的一些实施方式的使用交叉/当前分量的边缘信息来进行当前分量分类的示例。当前样本由c表示,并且当前/交叉分量的两个邻近样本由a和b表示。在示例中,
(1)从4个方向候选中选择一个对角线方向。差值(c-a)和(c-b)是2个边缘强度,范围从-1023~1023(例如,对于10b序列);
(2)通过公共阈值[-T,0,T]将每个边缘强度量化为4段;
(3)使用16个类别对当前分量样本进行分类。
如图22A-22B中所示,选择一个对角线方向,并利用阈值[-T,0,T]将差值(c-a)和(c-b)量化为4和4段,这形成16个边缘段。(a,b)位置可以通过用信令通知2个语法edgeDir和edgeStep来指示。
在一些示例中,方向模式可以是0、45、90、135度(方向之间45度),或者扩展到方向之间22.5度,或者预定义的方向集合,或者可以在SPS/APS/PPS/PH/SH/区域(集合)/CTU/CU/子块/样本级别中用信令通知。
在一些示例中,边缘强度也可以定义为(b-a),这简化了计算但牺牲了精度。
在一些示例中,M-1个阈值可以在SPS/APS/PPS/PH/SH/区域(集合)/CTU/CU/子块/样本级别中用信令通知或被预定义。
在一些示例中,M-1个阈值可以是用于边缘强度计算的不同集合,例如,用于(c-a)、(c-b)的不同集合。如果使用不同的集合,则总类别可能会不同。例如,当[-T,0,T]用于计算(c-a)而[-T,T]用于计算(c-b)时,总类别为4*3。
在一些示例中,M-1个阈值可以使用“对称”属性来减少信令开销。例如,可以使用预定义模式[-T,0,T],而不使用需要用信令通知3个阈值的[T0,T1,T2]。另一个示例是[-T,T]。
在一些示例中,阈值可以仅包含2的幂值,这不仅有效地抓住了边缘强度分布,而且降低了比较复杂度(仅需要比较MSB N位)。
在一些示例中,a和b的位置可以通过用信令通知如下2个语法来指示:(1)edgeDir指示所选择的方向,以及(2)edgeStep指示用于计算边缘强度的样本距离,如图22A-22B中那样。
在一些示例中,edgeDir/edgeStep可以在SPS/APS/PPS/PH/SH/区域(集合)/CTU/CU/子块/样本级别中用信令通知或预定义。
在一些示例中,edgeDir/edgeStep可以用固定长度代码(FLC)或其他方法(诸如截断一元(TU)代码、具有k阶的指数哥伦布代码(EGk)、有符号EG0(SVLC),或无符号EG0(UVLC))来编码。
在一些示例中,C10可以与bandNumY/U/V或其他分类器组合以形成联合分类器。例如,将16个边缘强度与最大的4个bandNumY频带相组合会产生64个类别。
在一些实施例中,仅使用当前分量信息进行当前分量分类的其它分类器示例可以被用作交叉分量分类。例如,如图5A和表1-1中所示,亮度样本信息和eo-class被用于推导出EdgeIdx,并对当前色度样本进行分类。也可以用作交叉分量分类器的其它“非交叉分量”分类器包括边缘方向、像素强度、像素变化、像素方差、像素拉普拉斯算子求和、索贝尔(sobel)算子、罗盘(compass)算子、高通滤波值,低通滤波值等。
在一些实施例中,多个分类器被用在相同的POC中。当前帧被按照几个区域划分,并且每个区域使用相同的分类器。例如,在POC0中使用了3个不同的分类器,并且使用哪个分类器(0、1或2)在CTU级别用信令通知,如下面的表2-11中所示,表2-11示出不同的通用分类器被应用于同一图片中的不同区域。
表2-11
POC 分类器 C0band_num 区域
0 C0使用Y0位置 16 0
0 C0使用Y0位置 8 1
0 C0使用Y1位置 8 2
在一些实施例中,复数分类器(复数分类器也可以称为替代偏移集合)的最大数量可以是固定的或在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信令通知。在一个示例中,复数分类器的固定(预定义)最大数量为4。在这种情况下,在POC0中使用4个不同的分类器,并且使用哪个分类器(0、1或2)在CTU级别中用信令通知。截断一元(TU)代码可用于指示用于每个亮度或色度CTB的分类器。例如,如下表2-12所示,当TU代码为0时:不应用CCSAO;当TU代码为10时:应用集合0;当TU代码为110时,应用集合1;当TU代码为1110时:应用集合2;当TU代码为1111时:应用集合3。定长码、golomb-rice码和exponential-golomb码也可以用来指示CTB的分类器(偏移集合索引)。在POC1中使用3种不同的分类器。
表2-12
POC 分类器 C0band_num 区域 TU代码
0 C0使用Y3位置 6 0 10
0 C0使用Y3位置 7 1 110
0 C0使用Y1位置 3 2 1110
0 C0使用Y6位置 6 3 1111
1 C0使用Y0位置 16 0 10
1 C0使用Y0位置 8 1 110
1 C0使用Y1位置 8 2 1110
Cb和Cr CTB偏移集合索引的示例针对1280x720序列POC0给出(如果CTU尺寸为128x128,则帧中CTU数量为10x6)。POC0Cb使用4个偏移集合,并且Cr使用1个偏移集合。如下表2-13中所示,当偏移集合索引为0时:不应用CCSAO;当偏移集合索引为1时:应用集合0;当偏移集合索引为2时:应用集合1;当偏移集合索引为3时:应用集合2;当偏移集合索引为4时:应用集合3。类型(Type)表示所选同位亮度样本(Yi)的位置。不同的偏移集合可以有不同的类型、band_num和对应偏移。表2-13示出了为1280x720序列POC0给出了Cb和Cr CTB偏移集合索引的示例(如果CTU尺寸为128x128,则帧中CTU的数量为10x6)。
表2-13
在一些实施例中,在下面的表2-14中列出了联合使用同位/当前和邻近Y/U/V样本进行分类的示例(每个Y/U/V分量有3分量联合bandNum分类)。表2-14示出了联合使用同位/当前和邻近Y/U/V样本进行分类的示例。在POC0中,{2,4,1}偏移集合分别用于{Y,U,V}。每个偏移集合都可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中自适应切换。不同偏移集合可以具有不同分类器。例如,如图13B和13C中所示的候选位置(candPos),为了对当前Y4亮度样本进行分类,Y set0选择{当前Y4,同位U4,同位V4}作为候选,分别具有不同的bandNum{Y,U,V}={16,1,2}。以{candY,candU,candV}作为选择的{Y,U,V}候选的样本值,总的类别的数量为32,并且类别索引推导出可示出为:
bandY=(candY*bandNumY)>>BitDepth;
bandU=(candU*bandNumU)>>BitDepth;
bandV=(candV*bandNumV)>>BitDepth;
classIdx=bandY*bandNumU*bandNumV
+bandU*bandNumV
+bandV。
在一些实施例中,联合分类器的classIdx推导可以表示为“或-移位(or-shift)”形式以简化推导过程。例如,max bandNum={16,4,4}
classldx=(bandY<<4)|(bandU<<2)|bandV。
另一个示例是在POC1中的分量V set1分类。在该示例中,使用candPos={邻近Y8,邻近U3,邻近V0}和bandNum={4,1,2},这会产生8个类别。
表2-14
POC 当前分量 偏移集合 分类器:candPos(Y,U,V)和bandNum(Y,U,V) 总类别(偏移数量)
0 Y 0 (Y4,U4,V4),(16,1,2) 16*1*2=32
1 (Y4,U0,V2),(15,4,1) 15*4*1=60
U 0 (Y8,U3,V0),(1,1,2) 2
1 (Y4,U1,V0),(15,2,2) 60
2 (Y6,U6,V6),(1,4,1) 16
3 (Y2,U0,V5),(1,1,1) 1
V 0 (Y2,U0,V5),(1,1,1) 1
1 Y 0 (Y4,U1,V0),(15,2,2) 60
U 0 (Y6,U2,V1),(7,1,2) 14
V 0 (Y8,U3,V0),(1,1,2) 2
1 (Y8,U3,V0),(4,1,2) 8
在一些实施例中,列出了联合使用同位和邻近Y/U/V样本用于当前Y/U/V样本分类的示例(每个Y/U/V分量有3个分量联合edgeNum(Cls)和bandNum分类),例如,如下表2-15中所示。edgeCandPos是用于C1分类器的中心位置,edge bitMask是C1邻近样本激活指示符,并且edgeNum是C1类别的对应数量。在此示例中,C1仅应用于Y分类器(因此edgeNum等于edgeNumY),其中,edge candPos始终为Y4(当前/同位样本位置)。然而,C1可以应用于以边缘candPos作为邻近样本位置的Y/U/V分类器。
diff表示Y C1的比较分数,classIdx推导可以是
bandY=(candY*bandNumY)>>BitDepth;
bandU=(candU*bandNumU)>>BitDepth;
bandV=(candV*bandNumV)>>BitDepth;
edgeldx=diff+(edgeNum>>1);
bandldx=bandY*bandNumU*bandNumV+bandU*bandNumV+bandV;
classldx=bandldx*edgeNum+edgeldx;
表2-15(第一部分)
表2-15(第二部分)
表2-15(第三部分)
在一些实施例中,如上所述,对于单分量,可以组合多个C0分类器(不同的位置或权重组合,bandNum)以形成联合分类器。该联合分类器可以与其他分量组合以形成另一个联合分类器,例如,使用2个Y样本(candY/candX和bandNumY/bandNumX)、1个U样本(candU和bandNumU)和1个V样本(candV和bandNumV)来对一个U样本进行分类(Y/V可以具有相同的概念)。类别索引推导可以示出为:
bandY=(candY*bandNumY)>>BitDepth;
bandX=(candX*bandNumX)>>BitDepth;
bandU=(candU*bandNumU)>>BitDepth;
bandV=(candV*bandNumV)>>BitDepth;
classIdx=bandY*bandNumX*bandNumU*bandNumV+bandX*bandNumU*bandNumV+bandU*bandNumV+bandV;
在一些实施例中,如果对一个单分量使用多个C0,则可以应用一些解码器规范约束或编码器一致性约束。这些约束包括(1)所选择的C0候选必须彼此不同(例如,candX!=candY),和/或(2)新添加的bandNum必须小于其他bandNum(例如,bandNumX<=bandNumY)。通过在一个单分量(Y)内应用直观的约束,可以去除冗余情况以节省位成本和复杂性。
在一些实施例中,最大band_num(bandNumY、bandNumU或bandNumV)可以是固定的或在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信令通知。例如,在解码器中固定最大band_num=16,并且对于每个帧,用信令通知4比特以指示帧中的C0 band_num。下面的表2-16中列出了一些其它最大band_num示例。
表2-16
在一些实施例中,每个集合(或添加的所有集合)的类别或偏移的最大数量(联合使用多个分类器的组合,例如,C1 edgeNum*C1 bandNumY*bandNumU*bandNumV)可以是固定的或在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信令通知。例如,对于所有添加的集合,max是固定的class_num=256*4,并且可以使用编码器一致性检查或解码器规范性检查来检查约束。
在一些实施例中,可以对C0分类应用限制,例如,将band_num(bandNumY、bandNumU或bandNumV)限制为仅为2的幂的值。替代显式地用信令通知band_num,改为用信令通知语法band_num_shift。解码器可以使用移位操作来避免乘法。不同的band_num_shift可以用于不同分量。
Class(C0)=(Y0>>band_num_shift)>>bit_depth。
另一个操作示例是将舍入纳入考虑以减少误差。
Class(C0)=((Y0+(1<<(band_mum_shift-1)))>>bandnum_shift)>>bit_depth。
例如,如果band_num_max(Y、U或V)为16,则可能的band_num_shift候选为0、1、2、3、4,对应于band-num=1、2、4、8、16,如在表2-17中所示。
表2-17
POC 分类器 C0 band_num_shift C0 band_num 总类别
0 C0使用Y0位置 4 16 16
1 C0使用Y7位置 3 8 8
用信令通知偏移
在一些实施例中,应用于Cb和Cr的分类器是不同的。所有类别的Cb和Cr偏移都可以单独用信令通知。例如,用信令通知的不同偏移被应用于不同色度分量,如下表2-18中所示。
表2-18
POC 分量 分类器 C0band_num 总类别 用信令通知的偏移
0 Cb C0 16 16 16
0 Cr C0 5 5 5
在一些实施例中,最大偏移值是固定的或在序列参数集(SPS)/适配参数集(APS)/图片参数集(PPS)/图片头部(PH)/条带头部(SH)/区域/CTU/CU/子块/样本级别中用信令通知。例如,最大偏移在[-15,15]之间。不同分量可以具有不同最大偏移值。
在一些实施例中,偏移信令可以使用差分脉冲编码调制(DPCM)。例如,偏移{3,3,2,1,-1}可以作为{3,0,-1,-1,-2}用信令通知。
在一些实施例中,偏移可以存储在APS或存储器缓冲器中以供下一图片/条带重新使用。可以用信令通知索引以指示哪些存储的先前帧偏移用于当前图片。
在一些实施例中,Cb和Cr的分类器是相同的。所有类别的Cb和Cr偏移可以联合用信令通知,例如,如下表2-19中所示。
表2-19
POC 分量 分类器 C0band_num 总的类别 用信令通知的偏移
0 Cb和Cr C0 8 8 8
在一些实施例中,Cb和Cr的分类器可以是相同的。所有类别的Cb和Cr偏移可以与符号标志差异一起联合用信令通知,例如,如下表16中所示。根据表2-20,当Cb偏移为(3,3,2,-1)时,推导出的Cr偏移为(-3,-3,-2,1)。
表2-20
在一些实施例中,可以针对每个类别用信令通知符号标志。例如,如下表2-21中所示。根据表2-21,当Cb偏移为(3,3,2,-1)时,根据相应的带符号标志推导出的Cr偏移为(-3,3,2,1)。
表2-21
在一些实施例中,Cb和Cr的分类器可以相同。所有类别的Cb和Cr偏移可以与权重差异一起联合用信令通知,例如,如下表2-22中所示,表2-22示出了所有类别的Cb和Cr偏移可以与权重差异一起联合用信令通知。权重(w)可以在有限表中选择,例如+-1/4、+-1/2、0、+-1、+-2、+-4……等,其中|w|仅包括2的幂的值。根据表18,当Cb偏移为(3,3,2,-1)时,根据相应的带符号标志推导出的Cr偏移为(-6,-6,-4,2)。
表2-22
在一些实施例中,可以用信令通知每个类别的权重。例如,如下表2-23中所示,表2-23示出所有类别的Cb和Cr偏移可以与为每个类别用信令通知的权重一起联合用信令通知。根据表2-22,当Cb偏移为(3,3,2,-1)时,根据相应的带符号标志推导出的Cr偏移为(-6,12,0,-1)。
表2-22
在一些实施例中,如果在相同POC中使用多个分类器,则单独或联合地用信令通知不同的偏移集合。
在一些实施例中,可以存储先前解码的偏移以供未来帧使用。可以用信令通知索引以指示哪个先前解码的偏移集合用于当前帧,以减少偏移信令开销。例如,POC2可以重新使用POC0偏移,并用信令通知偏移集合idx=0,如下表2-23中所示,表2-23示出可以用信令通知索引以指示哪些先前解码的偏移集合用于当前帧。
表2-23
在一些实施例中,Cb和Cr的重新使用偏移集合idx可以不同,例如,如下表2-24中所示,表2-24示出可以用信令通知索引以指示哪些先前解码的偏移集合用于当前帧,并且该索引对于Cb和Cr分量可以不同。
表2-24
在一些实施例中,偏移信令可以使用包括开始(start)和长度(length)的附加语法,以减少信令开销。例如,当band_num=256时,仅用信令通知band_idx=37~44的偏移。在下表2-25中的示例中,开始(start)和长度(length)的语法都是8位的固定长度编码,应该与band_num位匹配。
表2-25
在一些实施例中,如果将CCSAO应用于所有YUV 3个分量,则同位和邻近YUV样本可以被联合使用以进行分类,并且所有上述用于Cb/Cr的偏移信令方法都可以扩展到Y/Cb/Cr。在一些实施例中,不同分量偏移集合可以被单独存储和使用(每个分量具有其自己的存储集合)或联合存储和使用(每个分量共享/重新使用相同的存储)。下表2-26中示出了单独集合示例,表2-26示出了示出不同分量偏移集合可以单独存储和使用(每个分量具有其自己的存储集合)或联合存储和使用(每个分量共享/重新使用相同的存储集合)的示例。
表2-26
在一些实施例中,如果序列位深度高于10(或特定位深度),则可以在用信令通知之前量化所述偏移。在解码器侧,解码的偏移在应用其之前被去量化,如下表2-27中所示。例如,对于12位的序列,解码的偏移被向左移位2(去量化)。
表2-27
用信令通知的偏移 去量化和应用的偏移
0 0
1 4
2 8
3 12
14 56
15 60
在一些实施例中,偏移可以被计算为CcSaoOffsetVal=(1-2*ccsao_offset_sign_flag)*(ccsao_offset_abs<<(BitDepth-Min(10,BitDepth)))。
在一些实施例中,偏移量化可以是编码器选择性的(可编程的)。是否启用偏移量化(开/关控制)和指示的量化步长可以在SPS/APS/PPS/PH/SH/区域(集合)/CTU/CU/子块/样本级别用信令通知或预定义。例如,根据位深度或分辨率预定义量化步长并在PH中切换。开/关控制标志和量化步长可以存储在APS中以供未来的帧重新使用。该序列中支持的步长范围可以在SPS/APS/PPS/PH/SH/区域(集合)/CTU/CU/子块/样本级别用信令通知或预定义。由于偏移精度,偏移量化机制使编码器能够在位成本和图片质量改进之间进行权衡。
在一些实施例中,偏移二值化方法可以取决于量化步长。偏移二值化方法可以在SPS/APS/PPS/PH/SH/区域(集合)/CTU/CU/子块/样本级别用信令通知或预定义。不同的分量可以具有不同的或共享相同的{开/关控制、量化步长、偏移二值化方法}。例如,U/V使用相同的{开/关控制、量化步长、偏移二值化方法},Y使用不同的{开/关控制、量化步长、偏移二值化方法}。不同的序列位深度可以具有不同的预定义量化步长/偏移二值化方法。例如,对于不同的量化步长使用不同的EGk阶数。
例如,针对{8b,10b,12b,14b,16b}序列预定义步长={0,0,2,4,6},并在不同级别切换步长/二值化方法。
例如,对于8b序列,
·1个SPS标志,用于启用偏移量化,预定义步长=0(偏移=0、+-1、+-2……)
·1个PH语法,用于自适应地将步长更改为2(偏移=0、+-4、+-8……)
·1个区域(集合)级别语法,用于自适应更改针对每个集合(set)的步长(Set0=0、Set1=1…)
1个区域(集合)级别语法,用于在预定义二值化方法之间切换,Set0:TU,Set1:EG1,Set2:……
例如,对于10b序列,
·1个SPS标志,用于启用偏移量化,预定义步长=1(偏移=0、+-2、+-4……)
·预定义量化步长到二值化映射:0->EG0、1->EG1、2->EG2
·1个APS语法,用于存储先前使用的量化步长(q)/相应EGk阶数。新图片可以添加新的APS索引。
Index0:Set0:q=0,Set1:q=2,Set2:q=1,Set3:q=0
Index1:Set0:q=1,Set1:q=0,Set2:q=0,Set3:q=2
……
·一张图片中的每个区域(集合)可以重复使用存储的APS中的量化步长(q)/相应EGk阶数。
例如,针对{<480p,720p,1080p,4K,>=8K}序列预定义步长={0,0,2,4,6},并在不同级别切换步长/二值化方法。
在一些实施例中,本文进一步引入滤波器强度概念。例如,分类器偏移可以在被应用于样本之前进一步加权。可以在2的幂值表中选择权重(w)。例如,+-1/4、+-1/2、0、+-1、+-2、+-4……等,其中|w|仅包括2的幂的值。权重索引可以在SPS/APS/PPS/PH/SH/区域(集合)/CTU/CU/子块/样本级别用信令通知。量化的偏移信令可以作为该权重应用的子集。如果递归的CCSAO如图13D中所示那样被应用,则可以在第一阶段和第二阶段之间应用类似的权重索引机制。
在一些示例中,对不同分类器的加权:可以将复数分类器的偏移与权重组合一起应用于相同样本。可以如上所述那样用信令通知类似的权重索引机制。例如,
offset_final=w*offset_1+(1-w)*offset_2,或
offset_final=w1*offset_1+w2*offset_2+……。
自适应参数集合(APS)
在一些实施例中,代替在PH/SH中直接用信令通知CCSAO参数,先前使用的参数/偏移可以存储在自适应参数集(APS)或存储器缓冲器中以供下一图片/条带重新使用。索引可以在PH/SH中用信令通知,以指示哪些存储的先前帧偏移用于当前图片/条带。可以创建新APS ID来维持CCSAO历史偏移。下表示出了使用图13E、candPos和bandNum{Y,U,V}={16,4,4}的一个示例。在一些示例中,candPos、bandNum、偏移信令方法可以是固定长度代码(FLC)或其它方法,例如截断一元(TU)代码、具有阶数k的exponential-golomb代码(EGk)、带符号的EG0(SVLC)、或无符号EG0(UVLC)。在这种情况下,sao_cc_y_class_num(或cb、cr)等于sao_cc_y_band_num_y*sao_cc_y_band_num_u*sao_cc_y_band_num_v(或cb、cr)。ph_sao_cc_y_aps_id是这个图片/条带中使用的参数索引。注意cb和cr分量可以遵循相同的信令逻辑。
表2-28
aps_adaptation_parameter_set_id提供APS的标识符以供其它语法元素参考。当aps_params_type等于CCSAO_APS时,aps_adaptation_parameter_set_id的值应在0到7的范围内,包括端点(例如)。
ph_sao_cc_y_aps_id指定当前图片中条带的Y颜色分量所引用的CCSAO APS的aps_adaptation_parameter_set_id。当存在ph_sao_cc_y_aps_id时,以下适用:aps_params_type等于CCSAO_APS且aps_adaptation_parameter_set_id等于ph_sao_cc_y_aps_id的APS NAL单元的sao_cc_y_set_signal_flag的值应等于1;aps_params_type等于CCSAO_APS且aps_adaptation_parameter_set_id等于ph_sao_cc_y_aps_id的APS网络抽象层(NAL)单元的TemporalId应小于或等于当前图片的TemporalId。
在一些实施例中,本文描述了APS更新机制。APS偏移集合的最大数量可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信令通知或预定义。不同的分量可以有不同的最大数量限制。如果APS偏移集合已满,则新添加的偏移集合可以用先进先出(FIFO)、后进先出(LIFO)或最近最少使用(LRU)机制来替换一个现有存储的偏移,或者接收指示应替换哪个APS偏移集合的索引值。在一些示例中,如果所选择的分类器由candPos/边缘信息/编码信息……等组成,则所有分类器信息都可以作为APS偏移集合的一部分,并且也可以与其偏移值一起存储在APS偏移集合中。在一些情况下,上述更新机制可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信令通知或预定义。
在一些实施例中,可以应用被称为“修剪”的约束。例如,新接收到的分类器信息和偏移不能与任何存储的APS偏移集合(相同分量的或跨不同分量的APS偏移集合)相同。
在一些示例中,如果使用C0 candPos/bandNum分类器,则每个Y/U/V的APS偏移集合的最大数量是4,并且对于Y/V使用FIFO更新,对于U使用索引(idx)指示更新。表2-29示出了使用FIFO更新CCSAO偏移集合。
表2-29
在一些实施例中,可以放宽修剪准则以给出编码器权衡的更灵活的方式:例如,在应用修剪操作时允许N个偏移不同(例如,N=4);在另一个示例中,在应用修剪操作时允许每个偏移的值(例如,+-2)存在差异(表示为“thr”)。
在一些实施例中,可以同时或单独地应用2个准则。是否应用每个准则是在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中切换的或预定义的。
在一些实施例中,N/thr可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中切换或预定义。
在一些实施例中,FIFO更新可以是(1)从先前留下的集合索引循环更新(如果全部更新,则再次从集合0开始),如上面的示例中那样,(2)每次从集合0更新。在一些示例中,当接收到新的偏移集合时,更新可以在PH(如示例中)或SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中。
对于LRU更新,解码器维持一个计数表,该计数表对“总偏移集合使用计数”进行计数,“总偏移集合使用计数”可以在SPS/APS/每组图片(GOP)结构/PPS/PH/SH/区域/CTU/CU/子块/样本级别中刷新。新接收到的偏移集合替代APS中最近最少使用的偏移集合。如果2个存储的偏移集合具有相同的计数,则可以使用FIFO/LIFO。例如,参见下表2-30中的分量Y。
表2-30
在一些实施例中,不同分量可以具有不同的更新机制。
在一些实施例中,不同分量(例如,U/V)可以共享相同的分类器(相同的candPos/边缘信息/编码信息/偏移量可以附加地具有带有修改量的权重)。
在一些实施例中,由于不同图片/条带使用的偏移集合可能仅具有轻微的偏移值差异,因此在偏移替代机制中可以使用“补丁”实现。在一些实施例中,“补丁”实现是差分脉冲编码调制(DPCM)。例如,当用信令通知新的偏移集合(OffsetNew)时,偏移值可能位于现有的APS存储的偏移集合(OffsetOld)顶部。编码器仅用信令通知增量值(delta value)来更新旧的偏移集合(DPCM:OffsetNew=OffsetOld+delta)。在如表2-31中所示的以下示例中,也可以使用除FIFO更新之外的选择(LRU、LIFO或用信令通知指示要更新哪个集合的索引)。YUV分量可能具有相同的更新机制或使用不同的更新机制。尽管在表2-31中的示例中分类器candPos/bandNum没有改变,但是可以通过用信令通知附加标志(flag=0:仅更新集合偏移,flag=1:更新集合分类器和集合偏移二者)来指示覆盖所述集合分类器。
表2-31
在一些实施例中,DPCM增量偏移值可以在FLC/TU/EGk(阶数=0,1,……)代码中用信令通知。可以针对每个偏移集合用信令通知一个标志来指示是否启用DPCM信令。DPCM增量偏移值或新添加的偏移值(无需DPCM而直接用信令通知,当启用APS时DPCM=0)(ccsao_offset_abs)可以在应用于目标偏移(CcSaoOffsetVal)之前被去量化/映射。偏移量化步长可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信令通知或预定义。例如,一种方法是直接用信令通知量化步长=2的偏移:
CcSaoOffsetVal=(1-2*ccsao_offset_sign_flag)*(ccsao_offset_abs<<1)
另一种方法是用DPCM信令通知量化步长=2的偏移:
CcSaoOffsetVal=CcSaoOffsetVal+(1-2*ccsao_offset_sign_flag)*(ccsao_offseett_abs<<1)
在一些实施例中,可以应用一种约束来减少直接偏移信令开销,例如,更新的偏移值必须具有与旧的偏移值相同的符号。通过使用这样推断的偏移符号,新的更新的偏移不需要再次传输符号标志(ccsao_offset_sign_flag被推断为与旧的偏移相同)。
在一些实施例中,样本处理在下文描述。令R(x,y)为CCSAO之前的输入亮度或色度样本值,R′(x,y)为CCSAO之后的输出亮度或色度样本值:
Offset=ccsao_offset[R(x,y)的class_index]
R’(x,y)=Clip3(0,(1<<bit_depth)–1,R(x,y)+Offset)。
样本处理
根据以上等式,使用当前图片和/或当前偏移集合索引的指示的分类器对每个亮度或色度样本值R(x,y)进行分类。推导出的类别索引的对应偏移被加到每个亮度或色度样本值R(x,y)。将限幅函数Clip 3应用于(R(x,y)+Offset),以使输出亮度或色度样本值R′(x,y)在位深度动态范围(例如范围0到(1<<bit_depth)-1)内。
对于每个亮度或色度样本,首先使用当前图片/当前偏移集合索引(idx)的指示的分类器进行分类;第二是加上推导出的类别索引的对应偏移,并且第三是对位深度动态范围进行限幅。
图6是图示根据本公开的一些实施方式的所提出的双边滤波器(BIF)和SAO两者都使用来自去块阶段的样本作为输入的框图。
在一些实施例中,当CCSAO与其它环路滤波器一起操作时,限幅操作可以是
(1)相加后限幅。以下等式示出了以下情况的示例:(a)CCSAO与SAO和BIF一起操作,或(b)CCSAO替代SAO但仍与BIF一起操作。
(a)IOUT=clip1(IC+ΔISAO+ΔIBIF++ΔICCSAO)
(b)IOUT=clip1(IC+ΔICCSAO+ΔIBIF)
(2)相加前限幅,与BIF一起操作。在一些实施例中,可以切换限幅次序。
(a)IOUT=clip1(IC+ΔISAO)
I′OUT=clip1(IOUT+ΔIBIF)
I″OUT=clip1(I"OUT+ΔICCSAO)
(b)IOUT=clip1(IC+ΔIBIF)
I′OUT=clip1(I′OUT+ΔICCSAO)
(3)部分相加后限幅限幅
在一些实施例中,不同的限幅组合在校正精度和硬件临时缓冲器大小(寄存器或SRAM比特宽度)之间给出不同的权衡。
图6示出SAO/BIF偏移限幅。更具体地,例如,图6示出BIF与SAO交互时的当前BIF设计。来自SAO和BIF的偏移被加到输入样本,然后执行一个位深度限幅。然而,当在SAO阶段也联合CCSAO时,可以选择两种可能的限幅设计:(1)为CCSAO添加一个附加位深度限幅,以及(2)在将SAO/BIF/CCSAO偏移加到输入样本之后执行联合限幅的一种协调设计。在一些实施例中,上述限幅设计仅在亮度样本方面不同,因为BIF仅应用于它们。
边界处理
在一些实施例中,边界处理描述如下。如果用于分类的同位和邻近亮度(色度)样本中的任何一个在当前图片之外则CCSAO不应用于当前色度(亮度)样本。图23A-23B是图示根据本公开的一些实施方式的如果用于分类的任何同位和邻近亮度(色度)样本在当前图片之外则CCSAO不应用于当前色度(亮度)样本的框图。例如,在图23A中,如果使用分类器,则CCSAO不应用于当前图片的左1列色度分量。例如,如果使用C1',则CCSAO不应用于当前图片的左1列和顶1行色度分量,如图23B中所示。
图24A-24B是图示根据本公开的一些实施方式的如果用于分类的同位和邻近亮度或色度样本中的任何一个在当前图片之外则将CCSAO应用于当前亮度或色度样本的框图。在一些实施例中,一种变化是,如果用于分类的同位和邻近亮度或色度样本中的任何一个在当前图片之外,则重复使用缺省样本,如图24A中所示,或者将缺省样本进行镜像填充以创建用于分类的样本,如图24B中所示,并且CCSAO可以应用于当前亮度或色度样本。在一些实施例中,如果用于分类的同位和邻近亮度(色度)样本中的任何一个在当前子图片/条带/瓦片/补丁/CTU/360虚拟边界之外,则本文公开的禁用/重复/镜像图片边界处理方法也可以应用于所述子图片/条带/瓦片/补丁/CTU/360虚拟边界。
例如,图片被划分成一个或多个瓦片行和一个或多个瓦片列。瓦片是覆盖图片的矩形区域的一系列CTU。
条带由整数个完整瓦片或图片的瓦片内的整数个连续完整CTU行组成。
子图片包含共同覆盖图片的矩形区域的一个或多个条带。
在一些实施例中,360度视频是在球体上捕获的并且本质上没有“边界”,在投影域中超出参考图片边界的参考样本总是可以在球域中从邻近样本获得。对于由多个面组成的投影格式,无论使用何种紧凑的拼帧布置,拼帧图片中的两个或更多个邻近面之间会出现不连续性。在VVC中,引入了竖直和/或水平虚拟边界,跨这些边界禁用环路滤波操作,并且这些边界的位置在SPS或图片头部中用信令通知。与使用两个瓦片(连续面的每个集合一个)相比,360虚拟边界的使用更加灵活,因为它不需要面尺寸是CTU尺寸的倍数。在一些实施例中,竖直360虚拟边界的最大数量为3,并且水平360虚拟边界的最大数量也为3。在一些实施例中,两个虚拟边界之间的距离大于或等于CTU尺寸,并且虚拟边界粒度是8个亮度样本,例如8x8样本网格。
图28A-28B是图示根据本公开的一些实施方式的如果用于分类的对应选择的同位或邻近亮度样本在由虚拟边界定义的虚拟空间之外则CCSAO不应用于当前色度样本的框图。在一些实施例中,虚拟边界(VB)是分隔图片帧内的空间的虚拟线。在一些实施例中,如果在当前帧中应用虚拟边界(VB),则CCSAO不应用在已经选择了由虚拟边界定义的虚拟空间之外的对应亮度位置的色度样本上。图28A-28B示出具有9个亮度位置候选的C0分类器的具有虚拟边界的示例。对于每个CTU,CCSAO不应用于这样的色度样本:针对该色度样本,对应所选择的亮度位置在虚拟边界包围的虚拟空间之外。例如,在图28A中,当所选择的Y7亮度样本位置位于水平虚拟边界2806的另一侧上时,CCSAO不应用于色度样本2802,水平虚拟边界2806位于距帧的底部侧4个像素线处。例如,在图28B中,当所选择的Y5亮度样本位置位于竖直虚拟边界2808的另一侧上时,CCSAO不应用于色度样本2804,竖直虚拟边界2808位于距帧的右侧y个像素线处。
图32A-32B根据本公开的一些实施方式示出可以对位于虚拟边界之外的亮度样本应用重复或镜像填充。图32A示出了重复填充的示例。如果选择原始Y7作为位于VB 3202底部侧上的分类器,则使用Y4亮度样本值进行分类(复制到Y7位置),而不是使用原始Y7亮度样本值。图32B示出了镜像填充的示例。如果选择Y7作为位于VB 3204底部侧上的分类器,则使用与Y7值相对于Y0亮度样本对称的Y1亮度样本值进行分类,而不是使用原始Y7亮度样本值。该填充方法给予更多的色度样本应用CCSAO的可能性,因此可以实现更多的编码益处。
在一些实施例中,可以应用限制以减少CCSAO所需的线缓冲器,并简化边界处理条件检查。图26A根据本公开的一些实施方式示出了如果所有9个同位邻近亮度样本都用于分类则可能需要附加的1个亮度线缓冲器,即当前VB 1602之上的线-5的整个线亮度样本。图18A-18G示出仅使用6个亮度候选用于分类的示例,其减少了线缓冲器且不需要图23A-23B和图24A-24B中的任何附加边界检查。
在一些实施例中,使用亮度样本进行CCSAO分类可能会增加亮度线缓冲器,并且因此会增加解码器硬件实现成本。图25示出根据本公开的一些实施方式的AVS中的图示,跨VB1702的9个亮度候选CCSAO可能增加2个附加的亮度线缓冲器。对于虚拟边界(VB)1702以上的亮度和色度样本,在当前CTU行处理DBF/SAO/ALF。对于VB 1702以下的亮度和色度样本,在下一个CTU行处理DBF/SAO/ALF。在AVS解码器硬件设计中,亮度线-4到-1预DBF样本、线-5预SAO样本、和色度线-3到-1预DBF样本、线-4预SAO样本被存储作为线缓冲器用于下一CTU行DBF/SAO/ALF处理。在处理下一CTU行时,不在所述线缓冲器中的亮度和色度样本不可用。然而,例如,在色度线-3(b)位置处,色度样本在下一CTU行被处理,但CCSAO需要预SAO亮度样本线-7、-6和-5用于分类。预SAO亮度样本线-7、-6不在线缓冲器中,因此它们不可用。并且将预SAO亮度样本线-7和-6加到线缓冲器将增加解码器硬件实现成本。在一些示例中,亮度VB(线-4)和色度VB(线-3)可以不同(未对齐)。
类似于图25,图26A示出根据本公开的一些实施方式的VVC中的图示,跨VB 1802的9个亮度候选CCSAO可能增加1个附加的亮度线缓冲器。VB在不同的标准中可能不同。在VVC中,亮度VB是线-4,色度VB是线-2,所以9个候选CCSAO可能会增加1个亮度线缓冲器。
在一些实施例中,在第一解决方案中,如果色度样本的任何亮度候选跨越VB(在当前色度样本VB之外),则针对该色度样本禁用CCSAO。图27A-27C根据本公开的一些实施方式示出:在AVS和VVC中,如果色度样本的任何亮度候选跨越VB 2702(在当前色度样本VB之外),则针对该色度样本禁用CCSAO。图28A-28B还示出了此实施方式的一些示例。
在一些实施例中,在第二解决方案中,对于“跨VB”亮度候选,从靠近VB的另一侧并在VB的另一侧上的亮度线(例如,亮度线-4)开始针对CCSAO使用重复填充。在一些实施例中,针对“跨VB”色度候选实施从VB以下的亮度最近邻居开始的重复填充。图29A-29C根据本公开的一些实施方式示出:在AVS和VVC中,如果色度样本的任何亮度候选跨越VB 2902(在当前色度样本VB之外),则对色度样本使用重复填充来启用CCSAO。图28A也示出此实施方式的一些示例。
在一些实施例中,在第三解决方案中,针对“跨VB”亮度候选,从亮度VB下面开始针对CCSAO使用镜像填充。图30A-30C根据本公开的一些实施方式示出:在AVS和VVC中,如果色度样本的任何亮度候选跨越VB 3002(在当前色度样本VB之外),则对色度样本使用镜像填充来启用CCSAO。图28B和24B也示出了此实施方式的一些示例。在一些实施例中,在第四解决方案中,使用“双侧对称填充”来应用CCSAO。图31A-31B根据本公开的一些实施方式的示出:对不同CCSAO形状的一些示例(例如,9个亮度候选(图31A)和8个亮度候选(图31B))使用双侧对称填充来启用CCSAO。对于具有色度样本的同位居中亮度样本的亮度样本集合,如果亮度样本集合的一侧在VB 3102之外,则对亮度样本集合的两侧应用双侧对称填充。例如,在图31A中,亮度样本Y0、Y1和Y2在VB3102之外,因此Y0、Y1、Y2和Y6、Y7、Y8二者均使用Y3、Y4、Y5进行填充。例如,在图31B中,亮度样本Y0在VB 3102之外,因此使用Y2填充Y0,并且使用Y5填充Y7。
图26B示出了根据本公开的一些实施方式的图示,当同位或邻近色度样本被使用来对当前亮度样本进行分类时,所选择的色度候选可能跨越VB并且需要附加的色度线缓冲器。可以应用与上述类似的解决方案1至4来处理该问题。
解决方案1是当亮度样本的任何色度候选可能跨越VB时,针对亮度样本禁用CCSAO。
解决方案2是针对“跨VB”色度候选从VB以下的色度最近邻居开始使用重复填充。
解决方案3是针对“跨VB”色度候选从色度VB下面开始使用镜像填充。
解决方案4是使用“双侧对称填充”。对于以CCSAO同位色度样本为中心的候选集合,如果候选集合的一侧在VB之外,则对两侧都应用双侧对称填充。
填充方法给予更多的亮度或色度样本应用CCSAO的可能性,因此可以实现更多的编码益处。
在一些实施例中,在底部图片(或条带、瓦片、砖块)边界CTU行处,VB以下的样本在当前CTU行被处理,因此上述特殊处理(解决方案1、2、3、4)不应用于底部图片(或条带、瓦片、砖块)边界CTU行。例如,1920x1080的帧按照128x128的CTU划分。一个帧包含15x9个CTU(取整)。底部CTU行是第15个CTU行。解码过程是逐个CTU行的,并且对应每个CTU行,是逐个CTU的。需要沿着当前和下一CTU行之间的水平CTU边界应用去块。针对每个CTU行应用CTBVB,因为在一个CTU内部,在底部4/2亮度/色度线处,DBF样本(VVC情况)在下一CTU行处被处理,并且不可用于当前CTU行处的CCSAO。然而,在图片帧的底部CTU行处,底部4/2亮度/色度线DBF样本在当前CTU行处可用,因为没有剩下下一个CTU行,并且它们在当前CTU行处被进行DBF处理。
在一些实施例中,在图13到22中显示的VB可以用子图片/条带/瓦片/补丁/CTU/360虚拟边界的边界替代。在一些实施例中,图13到22中的色度样本和亮度样本的位置可以切换。在一些实施例中,图6、23A到32B中的色度样本和亮度样本的位置可以用第一色度样本和第二色度样本的位置替代。在一些实施例中,CTU内部的ALF VB通常可以是水平的。在一些实施例中,子图片/条带/瓦片/补丁/CTU/360虚拟边界的边界可以是水平的或竖直的。
在一些实施例中,可以应用限制来减少CCSAO所需的线缓冲器,并且简化边界处理条件检查。图26A示出了如果所有9个同位的邻近亮度样本都用于分类,则可能需要额外的1个亮度线缓冲器(线:-5的整线亮度样本)。图33A-33B示出了根据本公开的一些实施方式的使用有限数量的亮度候选进行分类的限制。图33A示出了仅使用6个亮度候选进行分类的限制。图33B示出了仅使用4个亮度候选进行分类的限制。
应用的区域
在一些实施例中,实施应用区域。CCSAO应用区域单元可以是基于CTB的。即,开/关控制、CCSAO参数(偏移集合索引、用于分类的偏移、亮度候选位置、band_num、位掩码等)在一个CTB中是相同的。
在一些实施例中,应用区域可以不与CTB边界对齐。例如,应用区域未与色度CTB边界对齐,而是发生了移位。仍然针对每个CTB用信令通知语法(开/关控制、CCSAO参数),但真正应用的区域未与CTB边界对齐。图34根据本公开的一些实施方式示出CCSAO应用区域未与CTB/CTU边界3406对齐。例如,应用区域未与色度CTB/CTU边界3406对齐,而是向左上移位(4,4)个样本至VB 3408。这种未对齐的CTB边界设计有利于去块过程,因为相同的去块参数对每个8x8去块过程区域都使用。
在一些实施例中,CCSAO应用区域单元(掩码尺寸)可以是变化的(大于或小于CTB尺寸),如表2-32中所示。掩码尺寸对于不同的分量可以是不同的。掩码尺寸可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中切换。例如,在PH中,用信令通知一系列掩码开/关标志和偏移集合索引以指示每个CCSAO区域信息。
表2-32
POC 分量 CTB尺寸 掩码尺寸
0 Cb 64x64 128x128
0 Cr 64x64 32x32
1 Cb 64x64 16x16
1 Cr 64x64 256x256
在一些实施例中,CCSAO应用区域帧分区可以是固定的。例如,将帧分区为N个区域。图35根据本公开的一些实施方式示出了CCSAO应用区域帧分区可以用CCSAO参数来固定。
在一些实施例中,每个区域可以具有其自己的区域开/关控制标志和CCSAO参数。此外,如果区域尺寸大于CTB尺寸,则它可以具有CTB开/关控制标志和区域开/关控制标志二者。图35(a)和(b)示出了将帧分区为N个区域的一些示例。图35(a)示出了4个区域的竖直分区。图35(b)示出4个区域的正方形分区。在一些实施例中,类似于图片级CTB全开控制标志(ph_cc_sao_cb_ctb_control_flag/ph_cc_sao_cr_ctb_control_flag),如果区域开/关控制标志为关闭,则CTB开/关标志可被进一步用信令通知。否则,CCSAO将应用于该区域中的所有CTB,而无需进一步用信令通知CTB标志。
在一些实施例中,不同的CCSAO应用区域可以共享相同的区域开/关控制和CCSAO参数。例如,在图35(c)中,区域0~2共享相同参数,并且区域3~15共享相同参数。图35(c)还示出了区域开/关控制标志,并且CCSAO参数可以按照希尔伯特(Hilbert)扫描次序用信令通知。
在一些实施例中,CCSAO应用区域单元可以是来自图片/条带/CTB级别的四叉树/二叉树/三叉树分割。与CTB分割类似,一系列分割标志被用信令通知以指示CCSAO应用区域分区。图36根据本公开的一些实施方式示出了CCSAO应用区域可以是来自帧/条带/CTB级别的二叉树(BT)/四叉树(QT)/三叉树(TT)分割。
图37是图示根据本公开的一些实施方式的在图片帧内在不同级别使用和切换的多个分类器的框图。在一些实施例中,如果在一帧中使用复数个分类器,则可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别切换中如何应用分类器集合索引的方法。例如,四个分类器集合在帧中使用,在PH中切换,如下表2-33中所示。图37(a)和(c)示出默认的固定区域分类器。图37(b)示出分类器集合索引在掩码/CTB级别中用信令通知,其中0表示针对该CTB CCSAO关闭,并且1~4表示集合索引。
表2-33
POC
0 正方形分区4个区域(与帧QT分割到最大深度1相同)(a)
1 CTB级别切换分类器(b)
2 竖直分区4个区域(c)
3 帧QT分割到最大深度2
在一些实施例中,对于默认区域情况,如果该区域中的CTB不使用默认集合索引(例如,区域级别标志为0),但在该帧中使用其它分类器集合,则可以用信令通知区域级别标志。例如,如果使用默认集合索引,则区域级别标志为1。例如,在正方形分区4个区域中,使用以下分类器集合,如下表2-34中所示,表2-34示出了可以用信令通知区域级别标志以示出该区域中的CTB是否不使用默认集合索引。
表2-34
POC 区域 标志 使用默认集合索引
0 1 1 使用默认集合:1
2 1 使用默认集合:2
3 1 使用默认集合:3
4 0 CTB切换集合1到4
图38是图示根据本公开的一些实施方式的CCSAO应用区域分区可以是动态的并且可以在图片级别中切换的框图。例如,图38(a)示出在该POC中使用3个CCSAO偏移集合(set_num=3),因此图片帧被竖直分区为3个区域。图38(b)示出在该POC中使用4个CCSAO偏移集合(set_num=4),因此图片帧被水平分区为4个区域。图38(c)示出在该POC中使用3个CCSAO偏移集合(set_num=3),因此图片帧被光栅分区为3个区域。每个区域均可以具有其自己的区域全开标志,以节省每个CTB的开/关控制位。区域的数量取决于用信令通知的图片set_num。
CCSAO应用区域可以是根据块内的编码信息(样本位置、样本编码模式、环路滤波器参数等)的特定区域。例如,1)CCSAO应用区域只能在样本被跳过模式编码时被应用,或2)CCSAO应用区域仅包含沿CTU边界的N个样本,或3)CCSAO应用区域仅包含帧中8x8网格上的样本,或4)CCSAO应用区域仅包含经DBF滤波的样本,或5)CCSAO应用区域仅包含CU中的顶部M和左侧N行,或(6)CCSAO应用区域仅包含帧内编码样本,或(7)CCSAO应用区域仅包含cbf=0块中的样本,或(8)CCSAO应用区域仅在块QP在[N,M]中的块上,其中(N,M)可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中被用信令通知或被预定义。也可以考虑交叉分量编码信息,(9)CCSAO应用区域在其同位亮度样本在cbf=0块中的色度样本上。
在一些实施例中,是否引入编码信息应用区域限制可以被预定义或者在SPS/APS/PPS/PH/SH/区域(每个备选集合)/CTU/CU/子块/样本级别中单选一个控制标志以指示在CCSAO应用中是否包含/排除指定的编码信息。解码器根据预定义条件或控制标志跳过那些区域的CCSAO处理。例如,YUV使用不同的预定义/标志受控条件,这些受控条件在区域(集合)级别中切换。CCSAO应用判断可以在CU/TU/PU或者样本级别中。表2-35示出YUV使用在区域(集合)级别切换的不同预定义/标志受控条件。
表2-35
另一示例是重新使用全部或部分双边启用约束(预定义)。
在一些实施例中,排除一些特定区域可以有益于CCSAO统计收集。偏移推导可能更精确或适合于那些真正需要校正的区域。例如,cbf=0的块通常表示块被完美预测,其可以不需要进一步校正。排除这些块可以有利于其它区域的偏移推导。
不同应用区域可以使用不同分类器。例如,在CTU中,跳过模式使用C1,8x8网格使用C2,跳过模式和8x8网格使用C3。例如,在CTU中,跳过模式编码样本使用C1,CU中心处的样本使用C2,在CU中心处被跳过模式编码的样本使用C3。图39是图示根据本公开的一些实施方式的CCSAO分类器可以计及当前或交叉分量编码信息的图。例如,不同编码模式/参数/样本位置可以形成不同分类器。可以组合不同编码信息以形成联合分类器。不同区域可以使用不同分类器。图29还示出应用区域的另一示例。
在一些实施例中,预定义或标志控制“编码信息排除区域”机制可用于DBF/Pre-SAO/SAO/BIF/CCSAO/ALF/CCALF/NN环路滤波器(NNLF)或其它环路滤波器中。
语法
在一些实施例中,实施的CCSAO语法在下表2-36中示出。在一些示例中,可以改变每个语法元素的二进制化。在AVS3中,术语补丁类似于条带,补丁头部类似于条带头部。FLC代表固定长度代码。TU代表截断的一元代码。EGk代表k阶exponential-golomb码,其中k可以是固定的。SVLC代表带符号的EG0。UVLC代表无符号的EG0。
表2-36
如果较高级别标志是关闭,则可以从该标志的关闭状态推断出较低级别的标志并且不需要用信令通知该较低级别的标志。例如,如果ph_cc_sao_cb_flag在该图片中是假,则ph_cc_sao_cb_band_num_minus1、 ph_cc_sao_cb_luma_type、cc_sao_cb_offset_sign_flag、cc_sao_cb_offset_abs、ctb_cc_sao_cb_flag、cc_sao_cb_merge_left_flag以及cc_sao_cb_merge_up_flag不存在并且被推断为假。
在一些实施例中,SPS ccsao_enabled_flag以SPS SAO启用标志为条件,如下表2-37中所示。
表2-37
在一些实施例中,ph_cc_sao_cb_ctb_control_flag、ph_cc_sao_cr_ctb_control_flag指示是否启用Cb/Cr CTB开/关控制粒度。如果ph_cc_sao_cb_ctb_control_flag和ph_cc_sao_cr_ctb_control_flag被启用,则可以进一步用信令通知ctb_cc_sao_cb_flag和ctb_cc_sao_cr_flag。否则,是否在当前图片中应用CCSAO取决于ph_cc_sao_cb_flag、ph_cc_sao_cr_flag,而无需在CTB级别进一步用信令通知ctb_cc_sao_cb_flag和ctb_cc_sao_cr_flag。
在一些实施例中,对于ph_cc_sao_cb_type和ph_cc_sao_cr_type,可以进一步用信令通知标志以区分是否使用中心同位亮度位置(图18A-18G中的Y0位置)进行色度样本的分类,以减少比特开销。类似地,如果cc_sao_cb_type和cc_sao_cr_type在CTB级别中用信令通知,则可以利用相同的机制进一步用信令通知标志。例如,如果C0亮度位置候选的数量是9,则进一步用信令通知cc_sao_cb_type0_flag以区分是否使用所述中心同位亮度位置,如下表2-38中所示。如果未使用中心同位亮度位置,则使用cc_sao_cb_type_idc指示使用剩余8个邻近亮度位置中的哪一个。
表2-38
下表2-39示出了AVS中单个(set_num=1)或复数个(set_num>1)分类器在帧中使用的示例。请注意,语法标记法可以映射到上面使用的标记法。
表2-39
如果与其中每个区域都具有其自己的集合的图35或图37结合,语法示例可以包括如下表2-40所示的区域开/关控制标志(picture_ccsao_lcu_control_flag[compIdx][setIdx])。
表2-40
在一些实施例中,对于高级语法,可以添加pps_ccsao_info_in_ph_flag和gci_no_sao_constraint_flag。
在一些实施例中,pps_ccsao_info_in_ph_flag等于1指定CCSAO滤波器信息可以在PH语法结构中存在并且在引用不包含PH语法结构的PPS的条带头部中不存在。pps_ccsao_info_in_ph_flag等于0指定CCSAO滤波器信息在PH语法结构中不存在,并且可以在引用PPS的条带头部中存在。当不存在时,pps_ccsao_info_in_ph_flag的值被推断为等于0。
在一些实施例中,gci_no_ccsao_constraint_flag等于1指定OlsInScope中所有图片的sps_ccsao_enabled_flag应等于0。gci_no_ccsao_constraint_flag等于0不施加这样的约束。在一些实施例中,视频的比特流根据规则包括一个或多个输出层集合(OLS)。在本文的示例中,OlsInScope指代范围内的一个或多个OLS。在一些示例中,profile_tier_level()语法结构提供级别信息,并且可选地提供简档(profile)、层(tier)、子简档(sub-profile)和OlsInScope符合的一般约束信息。当profile_tier_level()语法结构被包括在VPS中时,OlsInScope是由VPS指定的一个或多个OLS。当profile_tier_level()语法结构被包括在SPS中时,OlsInScope是仅包括引用SPS的层中作为最低层的层的OLS,并且该最低层是独立层。
向帧内和帧间后预测SAO滤波器的扩展
在一些实施例中,下文进一步说明向帧内和帧间后预测SAO滤波器的扩展。在一些实施例中,本公开中所公开的SAO分类方法(包括交叉分量样本/编码信息分类)可以作为后预测滤波器,并且预测可以是帧内、帧间或其它预测工具,诸如帧内块复制(Intra BlockCopy)。图40A是图示根据本公开的一些实施方式的本公开中所公开的SAO分类方法用作后预测滤波器的框图。
在一些实施例中,对于每个Y、U和V分量,选择对应的分类器。并且对于每个分量预测样本,首先对其进行分类,并加上对应偏移。例如,每个分量都可以使用当前样本和邻近样本进行分类。Y使用当前Y和邻近Y样本,并且U/V使用当前U/V样本进行分类,如下表2-41中所示。图40B-40D是图示根据本公开的一些实施方式的对于后预测SAO滤波器每个分量可以使用当前样本和邻近样本进行分类的框图。
表2-41
在一些实施例中,细化的预测样本(Ypred'、Upred'、Vpred')通过加上对应类别偏移来更新并且之后用于帧内、帧间或其它预测。
Ypred'=clip3(0,(1<<bit_depth)-1,Ypred+h_Y[i])
Upred'=clip3(0,(1<<bit_depth)-1,Upred+h_U[i])
Vpred'=clip3(0,(1<<bit_depth)-1,Vpred+h_V[i])
在一些实施例中,对于色度U和V分量,除了当前色度分量之外,交叉分量(Y)可以用于进一步的偏移分类。附加的交叉分量偏移(h'_U,h'_V)可以加到当前分量偏移(h_U,h_V)上,例如,如下表2-42中所示。
表2-42
在一些实施例中,细化的预测样本(Upred″、Vpred″)通过加上对应类别偏移来更新并且之后用于帧内、帧间或其它预测。
Upred″=clip3(0,(1<<bit_depth)-1,Upred′+h′_U[i])。
Vpred″=clip3(0,(1<<bit_depth)-1,Vpred′+h′_V[i])。
在一些实施例中,帧内和帧间预测可以使用不同SAO滤波器偏移。
向重建后滤波器的扩展
图15C是根据本公开的一些实施方式图示本公开中公开的SAO分类方法充当重建后滤波器的框图。
在一些实施例中,本文公开的SAO/CCSAO分类方法(包括交叉分量样本/编码信息分类)可以充当应用于树单元(TU)的重建样本的滤波器。如图15C中所示,CCSAO可以充当重建后滤波器,即,使用重建样本(在预测/残差样本相加之后,在去块之前)作为分类的输入,在进入邻近帧内/帧间预测之前补偿亮度/色度样本。CCSAO重建后滤波器可以减少当前TU样本的失真,并且可以针对邻近帧内/帧间块给出更好的预测。通过更精确的预测可以预期更好的压缩效率。
编码算法
在一些实施例中,为了高效地决定一张图片中的最佳CCSAO参数,设计了一种分层率失真(RD)优化算法,包括1)用于搜索最佳单个分类器的渐进方案;2)用于细化一个分类器的偏移值的训练过程;3)鲁棒算法,用于有效地为不同局部区域分配合适的分类器。典型的CCSAO分类器是:
bandY=(Ycol·NY)>>BD
bandU=(Ucol·NU)>>BD
bandV=(Vcol·NV)>>BD
i=bandY·(NU·NV)+bandU·NV+bandV
C′rec=Clip1(CrecCCSAO[i])
其中{Ycol,Ucol,Vcol}是用于对当前样本进行分类的三个同位样本;{NY,NU,NV}是分别应用于Y、U和V分量的频带数量;BD为编码位深度;Crec和C′rec是应用CCSAO之前和之后的重建样本;σCCSAO[i]是应用于第i个种类的CCSAO偏移的值;Clip1(·)是限幅函数,将输入限幅到位深度的范围,即[0,2BD-1];>>表示右移位操作。在所提出的CCSAO中,可以从9个候选位置中选择同位的亮度样本,同时同位的色度样本固定。
渐进搜索方案
在一些实施例中,为了搜索由N个种类(NY·NU·NV)组成的最佳分类器,应用多阶段提前终止方法。当种类较少的分类器不改善RD成本时,种类较多的分类器被跳过。基于不同配置,为N个种类提前终止设置多个断点。例如,AI:每4个种类(Ny·NU·NV<4,8,12……)。RA/LB:每16个种类(NY·NU·NV<16,32,48,64……)
此外,如果NY小于NU或NV,或者总种类N大于阈值,也会跳过分类器。渐进方案不仅调节总体位成本,而且显著减少了编码时间。对9个Ycol位置重复该过程以确定最佳的单个分类器。
偏移值细化
在一些实施例中,对于给定的分类器,首先根据等式(1)对图片中的重建样本进行分类。SAO快速失真估计用于推导出每个种类的初始偏移。它迭代地通过具有较小偏移值的RD成本进行进一步估计,直至所述值为0。然后,禁用没有RD成本改善的CTB,并对剩余的CTB进行重新训练以获得细化的偏移值。重复CTB开关程序,直到图片的RD成本没有改善或达到阈值计数。
ΔD=Nh2-2hE
ΔJ=ΔD+λR
在一些实施例中,对于一个种类,k、s(k)、x(k)是样本位置、原始样本和CCSAO之前的样本,E是s(k)和x(k)之间的差值之和,N是样本计数,ΔD是通过应用偏移h估计的增量失真,ΔJ是RD成本,λ是拉格朗日乘数,R是位成本。
在一些实施例中,原始样本可以是真实原始样本(未经预处理的原始图像样本)或运动补偿时间滤波器(MCTF,一种经典编码算法在编码之前对原始样本进行预处理)原始样本。λ可以与SAO/ALF的相同,或者通过一个因子加权(根据配置/分辨率)。
在一些实施例中,编码器通过权衡所有种类的总RD成本来优化CCSAO。
在一些实施例中,针对每个CTB存储每个种类的统计数据E和N,以用于进一步确定多个区域分类器。
鲁棒多个分类器分配
在一些实施例中,为了调查第二分类器是否有益于整体图片质量,根据失真(或根据RD成本,包括位成本)以升序对启用了CCSAO的CTB进行排序。
在一些实施例中,具有较小失真的一半(或预定义/相关比率,例如(setNum-1)/setNum-1)CTB保持相同的分类器,而另一半CTB用新的第二分类器来训练。同时,在CTB开关偏移细化期间,每个CTB可以选择其最佳分类器,因此良好的分类器可以传播到更多的CTB。秉承洗牌(shuffle)和扩散的精神,该策略为参数决策提供了随机性和鲁棒性。如果当前的分类器数量没有进一步改善RD成本,则跳过更多个分类器。
图41示出了与用户接口4150耦合的计算环境4110。计算环境4110可以是数据处理服务器的一部分。计算环境4110包括处理器4120、存储器4130和输入/输出(I/O)接口4140。
处理器4120通常控制计算环境4110的整体操作,例如与显示、数据采集、数据通信和图像处理相关联的操作。处理器4120可以包括用于执行指令以执行上述方法中的全部或一些步骤的一个或更多个处理器。此外,处理器4120可以包括促进处理器4120与其他组件之间的交互的一个或更多个模块。处理器可以是中央处理单元(CPU)、微处理器、单片机、图形处理单元(GPU)等。
存储器4130被配置为存储各类别型的数据以支持计算环境4110的操作。存储器4130可以包括预定软件4132。这种数据的示例包括用于在计算环境4110上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器4130可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,诸如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存存储器、磁盘或光盘。
I/O接口4140提供处理器4120与外围接口模块(诸如键盘、点击轮、按钮等)之间的接口。按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。I/O接口4140可以与编码器和解码器耦合。
图42是图示根据本公开的示例的用于视频解码的方法的流程图。
在步骤4201中,处理器4120可以从视频解码器侧获得CCSAO量化,CCSAO量化与在至少一个级别由编码器预定义或指示的量化步长和偏移量化控制语法相关联。
在一些示例中,对于12b序列,量化步长可以被预定义为12。在一些示例中,编码器可以通过用信令通知在较低级别改变量化步长。
在一些示例中,所述至少一个级别可以包括以下级别中的至少一个:SPS级别、APS级别、PPS级别、PH级别、序列头(SH)级别、区域级别、CT级别、子块级别或样本级别。
在一些示例中,处理器可以获得根据位深度或分辨率预定义的量化步长。
在一些示例中,处理器可以获得存储在APS中的偏移量化控制语法和量化步长。
在一些示例中,处理器可以接收序列中支持的量化步长的范围,其中支持的量化步长的范围可以是在至少一个级别预定义的或者用信令通知。
在一些示例中,处理器可以获得根据量化步长确定的偏移二值化方法,其中偏移二值化方法可以在所述至少一个级别被预定义或用信令通知。
在一些示例中,处理器可以获得针对不同量化步长预定义的不同偏移二值化方法。
在一些示例中,所述不同量化二值化方法可以包括指数哥伦布(EGk)编码、截断一元(TU)编码和固定长度编码(FLC)。
在一些示例中,可以使用不同的指数哥伦布(EGk)阶数来预定义所述不同量化步长。
在一些示例中,对于8b序列,可以在SPS级别用信令通知启用偏移量化的所述偏移量化控制语法,并且在SPS级别将量化步长预定义为0,可以用信令通知PH语法以将量化步长自适应地更改为2,可以用信令通知第一区域/CTU级别语法以将量化步长自适应地更改为多个集合,并且可以用信令通知第二区域/CTU级别语法以在针对多个集合的不同偏移二值化方法之间切换。
在一些示例中,对于10b序列,可以在SPS级别用信令通知启用偏移量化的偏移量化控制语法,并且在SPS级别可以将量化步长预定义为1,量化步长可以预定义为二值化映射,并且APS语法中存储有先前使用的多个量化步长,并且先前使用的所述多个量化步长是按照EGk阶数存储的。
在一些示例中,针对8b序列、10b序列或其他序列的偏移量化控制语法和量化步长的配置不限于以上配置。
在一些示例中,在一个图片中分类的每个区域可以重新使用在APS语法中存储的所述多个量化步长。
在步骤4202中,处理器4120可以基于CCSAO量化来获得CCSAO。
在用信令通知偏移部分中讨论的8b序列的示例中,量化步长由编码器预定义为0,并且定义1个SPS标志用于启用偏移量化。相应地,基于预定义量化步长,可以将CCSAO的值确定为0、+-1、+-2……。8b序列的量化步长的预定不限于此配置。
在用信令通知偏移部分中讨论的10b序列的示例中,量化步长由编码器预定义为1,并且定义1个SPS标志用于启用偏移量化。相应地,基于预定义量化步长,可以将CCSAO的值确定为0、+-2、+-4……。10b序列的量化步长的预定不限于此配置。
在一些示例中,CCSAO可以应用于基于分别为重建样本的多个分量选择的多个同位样本来分类的种类。
在一些示例中,所述多个分量可以包括第一分量和第二分量,并且第一分量和第二分量可以具有不同的偏移量化控制语法值、不同的量化步长或不同的偏移二值化方法。
在一些示例中,第一分量可以包括Y分量、U分量或V分量之一,第二分量可以包括Y分量、U分量或V分量之一,其中第一分量不同于第二分量。此外,所述多个分量被配置为对第一分量或第二分量进行分类。例如,CCSAO可以使用第一分量对第二分量进行分类,获得类别索引并得到该类别的对应偏移,并将该偏移与第二分量的重建样本相加。
在一些示例中,所述多个分量可以包括第一分量和第二分量,并且第一分量和第二分量可以具有相同的偏移量化控制语法值、相同的量化步长和相同的偏移二值化方法。
在一些示例中,第一分量可以包括U分量,并且第二分量可以包括V分量。
在步骤4203中,处理器4120可以将CCSAO与重建样本相加以用于预测。
图43是图示根据本公开的示例的用于视频编码的方法的流程图。
在步骤4301中,处理器4120可以从编码器侧预定义或用信令通知在至少一个级别用于CCSAO量化的量化步长,其中CCSAO量化可以与偏移量化控制语法和量化步长相关联。
在一些示例中,对于12b序列,量化步长可以被预定义为12。在一些示例中,编码器可以通过用信令通知来更改较低级别的量化步长。
在一些示例中,所述至少一个级别可以包括以下级别中的至少一个:SPS级别、APS级别、PPS级别、PH级别、序列头(SH)级别、区域级别、CT级别、子块级别或样本级别。
在一些示例中,处理器4120可以预定义根据位深度或分辨率预定义的量化步长。
在一些示例中,处理器4120可以用信令通知存储在APS中的偏移量化控制语法和量化步长。
在一些示例中,处理器4120可以确定序列中支持的量化步长的范围,其中支持的量化步长的范围可以在所述至少一个级别预定义或者用信令通知。
在一些示例中,处理器4120可以根据量化步长来确定偏移二值化方法,其中偏移二值化方法可以在所述至少一个级别预定义或者用信号通知。
在一些示例中,处理器4120可以确定针对不同量化步长预定义的不同偏移二值化方法。
在一些示例中,所述不同量化二值化方法可以包括指数哥伦布(EGk)编码、截断一元(TU)编码和固定长度编码(FLC)。
在一些示例中,可以使用不同的指数哥伦布(EGk)阶数来预定义不同量化步长。
在步骤4302中,处理器4120可以基于CCSAO量化来确定CCSAO。在用信令通知偏移部分中讨论的8b序列的示例中,量化步长可以由编码器预定义为0,并且定义1个SPS标志用于启用偏移量化。相应地,基于预定义的量化步长,可以将CCSAO的值确定为0、+-1、+-2……。8b序列的量化步长的预定不限于此配置。
在用信令通知偏移部分中讨论的10b序列的示例中,量化步长由编码器预定义为1,并且定义1个SPS标志用于启用偏移量化。相应地,基于预定义的量化步长,可以将CCSAO的值确定为0、+-2、+-4……。8b序列的量化步长的预定不限于此配置。
在一些示例中,CCSAO可以应用于基于分别为重建样本的多个分量选择的多个同位样本来分类的种类。
在一些示例中,所述多个分量可以包括第一分量和第二分量,并且第一分量和第二分量可以具有不同的偏移量化控制语法值、不同的量化步长或不同的偏移二值化方法。
在一些示例中,第一分量可以包括Y分量、U分量或V分量之一,第二分量可以包括Y分量、U分量或V分量之一,其中第一分量不同于第二分量。此外,所述多个分量被配置为对第一分量或第二分量进行分类。例如,CCSAO可以使用第一分量对第二分量进行分类,获得类别索引并得到该类别的对应偏移,并将该偏移与第二分量的重建样本相加。
在一些示例中,所述多个分量可以包括第一分量和第二分量,并且第一分量和第二分量可以具有相同的偏移量化控制语法值、相同的量化步长和相同的偏移二值化方法。
在一些示例中,第一分量可以包括U分量,并且第二分量可以包括V分量。
在步骤4303中,处理器4120可以将CCSAO编码在比特流中。
在一些示例中,编码器侧的处理器4120可以将编码比特流传输到解码器侧,并且解码器侧可以相应地实现如图42中所描述的步骤。
在一些实施例中,还提供了一种包括例如存储器4130中的多个程序的非暂态计算机可读存储介质,所述多个程序可以由计算环境4110中的处理器4120执行以用于执行上述方法。在一个示例中,所述多个程序可以由计算环境4110中的处理器4120执行以接收(例如,从图2中的视频编码器20)包括编码视频信息(例如,表示编码视频帧的视频块和/或相关联的一个或多个语法元素等)的比特流或数据流,并且还可以由计算环境4110中的处理器4120执行以根据接收到的比特流或数据流来执行上述解码方法。在另一示例中,所述多个程序可以由计算环境4110中的处理器4120执行以执行上述编码方法从而将视频信息(例如,表示视频帧的视频块和/或相关联的一个或多个语法元素等)编码为比特流或数据流,并且还可以由计算环境4110中的处理器4120执行以传输比特流或数据流(例如,到图3中的视频解码器30)。替代地,非暂态计算机可读存储介质中可以存储有由编码器(例如,图2中的视频编码器20)使用例如上述编码方法生成以由解码器在解码视频数据时使用的(例如,表示编码视频帧的视频块和/或关联内容)包括编码的视频信息(例如,包括一个或多个语法元素的视频信息)的比特流或数据流。非暂态计算机可读存储介质可以是例如ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储设备等。
在实施例中,还提供了一种计算设备,该计算设备包括:一个或多个处理器(例如,处理器4120);以及在其中存储了可以由一个或多个处理器执行的多个程序的非暂态计算机可读存储介质或存储器4130,其中一个或多个处理器在执行多个程序时被配置为执行上述方法。
在实施例中,还提供了一种包括例如存储器4130中的多个程序的计算机程序产品,所述多个程序可以由计算环境4110中的处理器4120执行以用于执行上述方法。例如,计算机程序产品可以包括非暂态计算机可读存储介质。
在实施例中,计算环境4110可以由用于执行上述方法的一个或更多个ASIC、DSP、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、FPGA、GPU、控制器、微控制器、微处理器或其他电子组件来实现。
进一步的实施例还包括在各种其它实施例中组合或以其它方式重新布置的上述实施例的各种子集。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过其传输并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,该计算机可读存储介质对应于诸如数据存储介质之类的有形介质或通信介质,通信介质包括有助于例如根据通信协议将计算机程序从一个地方传输到另一个地方的任何介质。以此方式,计算机可读介质一般可对应于(1)非暂时性有形计算机可读存储介质或(2)诸如信号或载波之类的通信介质。数据存储介质可以是如下任何可用介质,该可用介质可以被一个或多个计算机或一个或多个处理器访问以取回指令、代码和/或数据结构以实现本申请中描述的实施方式。计算机程序产品可以包括计算机可读介质。
本公开的描述是为了说明的目的而呈现的,并不旨在穷举或限于本公开。许多修改、变化和替代实施方式对于受益于前述描述和相关附图中呈现的教导的本领域普通技术人员而言将是显而易见的。
除非另有明确说明,否则根据本公开的方法的步骤顺序仅旨在说明,并且根据本公开的方法的步骤不限于上面具体描述的顺序,而是可以根据实际情况进行更改。另外,根据本公开的方法的至少一个步骤可以根据实际需要进行调整、组合或删除。
选择和描述各示例是为了解释本公开的原理,并使本领域的其它技术人员能够理解本公开的各种实施方式,并最好地利用具有适合预期的特定用途的各种修改的基本原理和各种实施方式。因此,应当理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其它实施方式旨在包括在本公开的范围内。

Claims (32)

1.一种用于视频解码的方法,包括:
由解码器获得交叉分量样本自适应偏移(CCSAO)量化,所述交叉分量样本自适应偏移量化与在至少一个级别由编码器预定义或指示的量化步长和偏移量化控制语法相关联;
由所述解码器基于所述CCSAO量化来获得CCSAO;以及
由所述解码器将所述CCSAO与重建样本相加以用于预测。
2.根据权利要求1所述的方法,其中所述至少一个级别包括以下级别中的至少一个:序列参数集合(SPS)级别、自适应参数集合(APS)级别、图片参数集合(PPS)级别、图片头(PH)级别、序列头(SH)级别、区域级别、编码树单元(CTU)级别、子块级别或样本级别。
3.根据权利要求1所述的方法,还包括:
由所述解码器获取根据位深度或分辨率预定义的所述量化步长。
4.根据权利要求1所述的方法,还包括:
由所述解码器获得自适应参数集合(APS)中存储的所述偏移量化控制语法和所述量化步长。
5.根据权利要求1所述的方法,还包括:
由所述解码器接收序列中支持的量化步长的范围,其中所述支持的量化步长的范围在所述至少一个级别被预定义或用信令通知。
6.根据权利要求1所述的方法,还包括:
由所述解码器获得根据所述量化步长确定的偏移二值化方法,其中所述偏移二值化方法在所述至少一个级别被预定义或用信令通知。
7.根据权利要求6所述的方法,其中所述CCSAO应用于基于分别为重建样本的多个分量选择的多个同位样本而分类的种类。
8.根据权利要求7所述的方法,其中所述多个分量包括第一分量和第二分量,并且第一分量和第二分量具有不同的偏移量化控制语法值、不同的量化步长或不同的偏移二值化方法。
9.根据权利要求8所述的方法,其中第一分量包括以下分量之一:Y分量、U分量或V分量,第二分量包括以下分量之一:Y分量、U分量或V分量,并且第一分量不同于第二分量,并且
所述多个分量被配置为对第一分量或第二分量进行分类。
10.根据权利要求7所述的方法,其中所述多个分量包括第一分量和第二分量,并且所述第一分量和所述第二分量具有相同的偏移量化控制语法值、相同的量化步长和相同的偏移二值化方法。
11.根据权利要求10所述的方法,其中所述第一分量包括U分量,并且所述第二分量包括V分量。
12.根据权利要求6所述的方法,还包括:
由所述解码器获得针对不同量化步长预定义的不同偏移二值化方法。
13.根据权利要求12所述的方法,其中所述不同量化二值化方法包括指数哥伦布(EGk)编码、截断一元(TU)编码和固定长度编码(FLC)。
14.根据权利要求12所述的方法,其中使用不同的指数哥伦布(EGk)阶数来预定义所述不同量化步长。
15.一种用于视频编码的方法,包括:
由编码器预定义或用信令通知在至少一个级别用于交叉分量样本自适应偏移(CCSAO)量化的量化步长,其中所述CCSAO量化与偏移量化控制语法和量化步长相关联;
由所述编码器基于所述CCSAO量化来确定CCSAO;以及
由所述编码器将所述CCSAO编码在比特流中。
16.根据权利要求15所述的方法,其中所述至少一个级别包括以下级别中的至少一个:序列参数集合(SPS)级别、自适应参数集合(APS)级别、图片参数集合(PPS)级别、图片头(PH)级别、序列头(SH)级别、区域级别、编码树单元(CTU)级别、子块级别或样本级别。
17.根据权利要求15所述的方法,还包括:
由所述编码器根据位深度或分辨率预定义所述量化步长。
18.根据权利要求15所述的方法,还包括:
由所述编码器用信令通知自适应参数集合(APS)中存储的所述偏移量化控制语法和所述量化步长。
19.根据权利要求15所述的方法,还包括:
由所述编码器确定序列中支持的量化步长的范围,其中所述支持的量化步长的范围在所述至少一个级别被预定义或用信令通知。
20.根据权利要求15所述的方法,还包括:
由所述编码器根据所述量化步长确定偏移二值化方法,其中所述偏移二值化方法在所述至少一个级别被预定义或用信令通知。
21.根据权利要求20所述的方法,其中所述CCSAO应用于基于分别为预测样本的多个分量选择的多个同位样本而分类的种类。
22.根据权利要求21所述的方法,其中所述多个分量包括第一分量和第二分量,并且第一分量和第二分量具有不同的偏移量化控制语法值、不同的量化步长或不同的偏移二值化方法。
23.根据权利要求22所述的方法,其中第一分量包括以下分量之一:Y分量、U分量或V分量,第二分量包括以下分量之一:Y分量、U分量或V分量,并且第一分量不同于第二分量,并且
所述多个分量被配置为对第一分量或第二分量进行分类。
24.根据权利要求21所述的方法,其中所述多个分量包括第一分量和第二分量,并且所述第一分量和所述第二分量具有相同的偏移量化控制语法值、相同的量化步长和相同的偏移二值化方法。
25.根据权利要求24所述的方法,其中所述第一分量包括U分量,并且所述第二分量包括V分量。
26.根据权利要求20所述的方法,还包括:
由所述编码器确定针对不同量化步长预定义的不同偏移二值化方法。
27.根据权利要求26所述的方法,其中所述不同量化二值化方法包括指数哥伦布(EGk)编码、截断一元(TU)编码和固定长度编码(FLC)。
28.根据权利要求26所述的方法,其中使用不同的指数哥伦布(EGk)阶数来预定义所述不同量化步长。
29.一种用于视频解码的装置,包括:
一个或多个处理器;和
存储器,耦合到所述一个或多个处理器并被配置为存储可由所述一个或多个处理器执行的指令,
其中,所述一个或多个处理器在执行所述指令时被配置为执行权利要求1-14中任一项所述的方法。
30.一种用于视频编码的装置,包括:
一个或多个处理器;和
存储器,耦合到所述一个或多个处理器并被配置为存储可由所述一个或多个处理器执行的指令,
其中,所述一个或多个处理器在执行所述指令时被配置为执行权利要求15-28中任一项所述的方法。
31.一种非暂时性计算机可读存储介质,存储计算机可执行指令,所述计算机可执行指令在由一个或多个计算机处理器执行时使所述一个或多个计算机处理器接收比特流,并基于所述比特流执行权利要求1-14中任一项所述的方法。
32.一种非暂时性计算机可读存储介质,用于存储计算机可执行指令,所述计算机可执行指令在由一个或多个计算机处理器执行时使所述一个或多个计算机处理器执行权利要求15-28中任一项所述的方法,并传输比特流。
CN202280064747.6A 2021-11-19 2022-11-18 交叉分量样本自适应偏移 Pending CN118044188A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163281510P 2021-11-19 2021-11-19
US63/281510 2021-11-19
PCT/US2022/050508 WO2023091729A1 (en) 2021-11-19 2022-11-18 Cross-component sample adaptive offset

Publications (1)

Publication Number Publication Date
CN118044188A true CN118044188A (zh) 2024-05-14

Family

ID=86397845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280064747.6A Pending CN118044188A (zh) 2021-11-19 2022-11-18 交叉分量样本自适应偏移

Country Status (7)

Country Link
US (1) US20240259578A1 (zh)
EP (1) EP4434223A1 (zh)
JP (1) JP2024537126A (zh)
KR (1) KR20240052054A (zh)
CN (1) CN118044188A (zh)
MX (1) MX2024004071A (zh)
WO (1) WO2023091729A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3364656A1 (en) * 2017-02-15 2018-08-22 Thomson Licensing Method for sample adaptive offset coding
WO2019001733A1 (en) * 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. ENCODER, DECODER, COMPUTER PROGRAM, AND COMPUTER PROGRAM PRODUCT FOR PROCESSING A FRAME OF A VIDEO SEQUENCE
US11323711B2 (en) * 2019-09-20 2022-05-03 Alibaba Group Holding Limited Method and system for signaling chroma quantization parameter offset
US11265558B2 (en) * 2019-11-22 2022-03-01 Qualcomm Incorporated Cross-component adaptive loop filter

Also Published As

Publication number Publication date
US20240259578A1 (en) 2024-08-01
KR20240052054A (ko) 2024-04-22
WO2023091729A1 (en) 2023-05-25
MX2024004071A (es) 2024-05-06
EP4434223A1 (en) 2024-09-25
JP2024537126A (ja) 2024-10-10

Similar Documents

Publication Publication Date Title
EP4252418A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
WO2022178424A1 (en) Coding enhancement cross-component sample adaptive offset
US20230308652A1 (en) Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary
WO2022251517A1 (en) Coding enhancement in cross-component sample adaptive offset
CN115989675A (zh) 交叉分量样本自适应偏移中的色度编码增强
US20230336785A1 (en) Coding enhancement in cross-component sample adaptive offset
WO2022251433A1 (en) Coding enhancement in cross-component sample adaptive offset
EP4309364A1 (en) Coding enhancement in cross-component sample adaptive offset
EP4285591A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
US20240259578A1 (en) Cross-component sample adaptive offset
US20240314339A1 (en) Cross-component sample adaptive offset
US20240214595A1 (en) Coding enhancement in cross-component sample adaptive offset
WO2024151874A1 (en) Cross-component sample adaptive offset
CN117917074A (zh) 跨分量样点自适应偏移中的编解码增强
JP2024527082A (ja) クロスコンポーネントサンプル適応オフセットにおける符号化復号化強化
EP4388737A1 (en) Coding enhancement in cross-component sample adaptive offset
CN116569551A (zh) 交叉分量样本自适应偏移中的色度编码增强
CN117413516A (zh) 跨分量样本自适应偏移中的编解码增强
CN116965017A (zh) 在跨分量样点自适应偏移中的色度编解码增强

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication