CN116918333A - 用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可读介质 - Google Patents

用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可读介质 Download PDF

Info

Publication number
CN116918333A
CN116918333A CN202280014517.9A CN202280014517A CN116918333A CN 116918333 A CN116918333 A CN 116918333A CN 202280014517 A CN202280014517 A CN 202280014517A CN 116918333 A CN116918333 A CN 116918333A
Authority
CN
China
Prior art keywords
index
sample
determining
vertical coordinate
samples
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
CN202280014517.9A
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Publication of CN116918333A publication Critical patent/CN116918333A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/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/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/1883Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)的视频数据处理方法。该方法包括根据图像中色度样本的垂直坐标确定索引;根据所述索引确定亮度样本;根据与所述亮度样本相关的重建值对所述色度样本进行分类;根据所述分类确定偏移量;并将所述偏移量添加到与所述色度样本关联的重建值。

Description

用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可 读介质
相关申请的交叉引用
本公开要求于2021年3月14日提交的第63/160,864号美国临时申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本公开通常涉及视频处理,更具体地,涉及用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可读介质。
背景技术
视频是一组采集视觉信息的静态图像(或“帧”)。为了减少存储内存和传输带宽,视频可以在存储或传输之前进行压缩,并在显示之前解压缩。压缩过程通常称为编码,解压缩过程通常称为解码。有多种视频编码格式使用标准化视频编码技术,最常见的是基于预测、变换、量化、熵编码和环路滤波。视频编码标准,如高效视频编码(HEVC/H.265)标准、通用视频编码(VVC/H.266)标准和AVS标准,规定了特定的视频编码格式,由标准化组织制定。随着视频标准中采用越来越先进的视频编码技术,新视频编码标准的编码效率越来越高。
发明内容
本公开的实施例提供了一种用于跨分量样值偏移补偿的方法。该方法包括根据图像中色度样本的垂直坐标确定索引;根据所述索引确定亮度样本;根据与所述亮度样本相关的重建值对所述色度样本进行分类;根据所述分类确定偏移量;并将所述偏移量添加到与所述色度样本关联的重建值。
本公开的实施例提供了一种用于执行视频数据处理的装置,该装置包括用于存储指令的存储器;以及一个或多个处理器,用于执行指令以使所述装置根据图像中色度样本的垂直坐标执行确定索引;根据所述索引确定亮度样本;根据与所述亮度样本相关的重建值对所述色度样本进行分类;根据所述分类确定偏移量;并将所述偏移量添加到与所述色度样本关联的重建值中。
本公开的实施例提供了一种非暂时性计算机可读介质,其存储一组指令,该指令可由设备的一个或多个处理器执行,以使所述设备启动用于执行视频数据处理的方法。该方法包括根据图像中色度样本的垂直坐标确定索引;根据所述索引确定亮度样本;根据与所述亮度样本相关的重建值对所述色度样本进行分类;根据所述分类确定偏移量;并将所述偏移量添加到与所述色度样本关联的重建值中。
附图说明
在下面的详细描述和附图中说明了本公开的实施例及其各个方面。图中所示的各种特征未按比例绘制。
图1是根据本公开的一些实施例的示例视频序列的结构的示意图。
图2A是与本公开的实施例一致的由混合视频编码系统执行的示例性编码过程的示意图。
图2B是与本公开的实施例一致的由混合视频编码系统执行的另一种示例性编码过程的示意图。
图3A是与本公开的实施例一致的由混合视频编码系统执行的示例性解码过程的示意图。
图3B是与本公开的实施例一致的由混合视频编码系统执行的另一种示例性解码过程的示意图。
图4是根据本公开的一些实施例的用于编码或解码视频数据的示例性装置的框图。
图5示出了根据本公开的一些实施例在样值偏移补偿(SAO)中使用的四种边缘偏移(EO)模式。
图6示出了根据本公开的一些实施例的通用亮度样本及其周围的8个样本。
图7示出了根据本公开的一些实施例的跨分量样值偏移补偿(CCSAO)过程。
图8示出了根据本公开的一些实施例的可以从中选择共址亮度样本的9个候选位置。
图9A示出了根据本公开的一些实施例的CCSAO-QUA的划分方法。
图9B示出了根据本公开的一些实施例的CCSAO-QUA的另一种划分方法。
图10示出了根据本公开的一些实施例的涉及编码树单元(CTU)底部边界去块滤波器的样本。
图11示出了根据本公开的一些实施例的分别用于亮度样本和色度样本的自适应环路滤波器(ALF)的示例性虚拟边界。
图12A-12C示出了根据本公开的一些实施例的相应不同示例的CCSAO中用于色度的共址亮度样本。
图13A-13C示出了根据本公开的一些实施例的相应不同示例的CCSAO中用于色度的亮度样本。
图14示出了根据本公开的一些实施例的跨分量样值偏移补偿(CCSAO)方法的流程图。
具体实施方式
现在将详细参考示例性实施例,其示例在附图中示出。以下描述参考附图。除非另有表示,否则不同附图中的相同数字表示相同或相似的元素。以下示例性实施例描述中阐述的实现并不代表与本发明一致的所有实现。相反,它们仅仅是与所附权利要求中列举的与本发明相关方面相一致的装置和方法的示例。下面将更详细地描述本公开的特定方面。如果与引用并入的术语和/或定义相冲突,则以本文提供的术语和定义为准。
业界正在制定新的视频编码标准。例如,音视频编解码标准(“AVS”)工作组正在开发第三代AVS视频标准,即AVS3。高性能模型(“HPM”)已被工作组选为AVS3的新参考软件平台。AVS3标准的第一阶段能够实现比其前身AVS20超过2%的编码性能提升,AVS3标准的第二阶段仍在开发中。
视频是一组按时间顺序排列的用于存储视觉信息的静态图像(或“帧”)。视频采集设备(例如,相机)可用于以时间序列采集和存储这些图像,并且视频播放设备(例如,电视,计算机,智能手机,平板电脑,视频播放器或任何具有显示功能的最终用户终端)可用于在时间序列中显示此类图像。此外,在某些应用中,视频采集设备可以将采集的视频实时传输到视频播放设备(例如,带有监视器的计算机),例如用于监视、会议或实时广播。
为了减少此类应用所需的存储空间和传输带宽,可以在存储和传输之前对视频进行压缩,并在显示之前解压缩。压缩和解压缩可以通过由处理器(例如,通用计算机的处理器)或专用硬件执行的软件来实现。用于压缩的模块通常称为“编码器”,用于解压缩的模块通常称为“解码器”。编码器和解码器可以统称为“编解码器”。编码器和解码器可以通过各种合适的硬件、软件或其组合中的任何一种实现。例如,编码器和解码器的硬件实现可以包括电路,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑或其任意组合。编码器和解码器的软件实现可以包括程序代码、计算机可执行指令、固件或固定在计算机可读介质中的任何合适的计算机实现算法或过程。视频压缩和解压缩可以通过各种算法或标准来实现,例如MPEG-1,MPEG-2,MPEG-4,H.26x系列等。在某些应用中,编解码器可以从第一个编码标准解压缩视频,并使用第二个编码标准重新压缩解压缩的视频,在这种情况下,编解码器可以称为“转码器”。
视频编码过程可以识别并保留可用于重建图像的有用信息,而忽略重建中不重要的信息。如果被忽略的、不重要的信息不能完全重建,这样的编码过程可以称为“有损”。否则,可以称为“无损”。大多数编码过程都是有损的,这是减少所需存储空间和传输带宽的权衡。
被编码的图像(称为“当前图像”)的有用信息包括相对于参考图像(例如,先前编码和重建的图像)的变化。此类变化可以包括像素的位置变化、亮度变化或颜色变化,其中最关注的是位置变化。表示对象的一组像素的位置变化可以反映对象在参考图像和当前图像之间的运动。
没有参考另一个图像(即,它是自己的参考图像)编码的图像被称为“I图像”。如果图像中的部分或全部块(例如,块通常是指视频图像的部分)使用帧内预测或相对于一参考图像的帧间预测(例如,单向预测)进行预测,则该图像称为“P图像”。如果图像中至少有一个块是用两个参考图像预测的(例如,双向预测),则该图像称为“B图像”。
图1示出了根据本公开的一些实施例的示例视频序列100的结构。视频序列100可以是实时视频或已被采集和存档的视频。视频序列100可以是现实生活中的视频、计算机生成的视频(例如,计算机游戏视频)、或其组合(例如,具有增强现实效果的真实视频)。视频序列100可以从视频采集设备(例如,摄像机)、包含有先前所采集视频的视频档案(例如,存储在存储设备中的视频文件)或从视频内容提供者接收视频的视频馈送接口(例如,视频广播收发器)输入。
如图1所示,视频序列100可以包括沿时间轴的时间排列的一系列图像,包括图像102、104、106和108。图像102-106是连续的,图像106和108之间有更多的图像。在图1中,图像102为I图像,其参考图像为图像102本身。图像104为P图像,其参考图为图像102,如箭头所示。图像106为B图像,其参考图像为图像104和108,如箭头所示。在一些实施例中,图像的参考图像(例如,图像104)可以不紧接在该图像之前或之后。例如,图像104的参考图像可以是图像102之前的图像。应当注意的是,参考图像102-106仅为示例,本公开不限制作为图1的示例的参考图像的实施例。
通常,由于此类编解码任务的计算复杂性,视频编解码器不会一次编码或解码整个图像。相反,它们可以将图像划分为基本段,并逐段对图像进行编码或解码。这些基本段在本公开中被称为基本处理单元(“BPU”)。例如,图1中的结构110示出了视频序列100的一个图像的示例结构(例如,图像102-108中的任何一个)。在结构110中,图像被划分为4×4个基本处理单元,其边界显示为虚线。在一些实施例中,基本处理单元在某些视频编码标准(例如,MPEG系列,H.261,H.263或H.264/AVC)中可称为“宏块”,或在某些其它视频编码标准(例如,H.265/HEVC或H.266/VVC)中称为“编码树单元”(CTU),或在某些其他视频编码标准(例如,AVS)中称为“最大编码单元”(LCU)。基本处理单元在图像中可以具有可变大小,例如128×128、64×64、32×32、16×16、4×8、16×32或任何任意形状和大小的像素。可以根据编码效率和基本处理单元中要保留的细节级别的平衡,为图像选择基本处理单元的大小和形状。
基本处理单元可以是逻辑单元,其可以包括存储在计算机存储器(例如,在视频帧缓冲区中)中的一组不同类型的视频数据。例如,彩色图像的基本处理单元可以包括表示无色差亮度信息的亮度分量(Y)、表示颜色信息的一个或多个色度分量(例如,Cb和Cr)以及相关的语法元素,其中亮度和色度分量可以具有与基本处理单元相同大小。亮度和色度分量在某些视频编码标准(例如H.265/HEVC或H.266/VVC)中可以称为“编码树块”(“CTB”)。对基本处理单元执行的任何操作都可以对其每个亮度和色度分量重复执行。
视频编码具有多个操作阶段,其示例如图2A-2B和图3A-3B所示。对于每个阶段,基本处理单元的尺寸仍然可能太大而无法处理,因此可以进一步划分为在本公开中称为“基本处理子单元”的段。在一些实施例中,基本处理子单元可在某些视频编码标准(例如,MPEG系列、H.261、H.263或H.264/AVC)中称为“块”,或在其它一些视频编码标准(例如,H.265/HEVC或H.266/VVC)中称为“编码单元”(“CU”)。基本处理子单元的尺寸可以与基本处理单元相同或更小。与基本处理单元类似,基本处理子单元也是逻辑单元,其可以包括存储在计算机存储器(例如,在视频帧缓冲区中)中的一组不同类型的视频数据(例如,Y、Cb、Cr和相关的语法元素)。对基本处理子单元执行的任何操作都可以对其每个亮度和色度分量重复执行。应该注意的是,这种划分可以根据处理需要执行到更深的程度。还应该注意的是,不同的阶段可以使用不同的方案来划分基本处理单元。
例如,在模式决策阶段(其示例如图2B所示),编码器可以决定将哪种预测模式(例如,图像内预测或图像间预测)用于基本处理单元,其可能太大而无法做出这样的决定。编码器可以将基本处理单元划分为多个基本处理子单元(例如,H.265/HEVC或H.266/VVC中的CU),并为每个单独的基本处理子单元确定预测类型。
对于另一示例,在预测阶段(其示例如图2A-2B所示),编码器可以在基本处理子单元(例如CUs)的水平上执行预测操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元分成更小的段(例如,在H.265/HEVC或H.266/VVC中称为“预测块”或“PB”),在该级别可以执行预测操作。
对于另一示例,在变换阶段(其示例如图2A-2B所示),编码器可以对残差基本处理子单元(例如CUs)执行变换操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元划分为更小的段(例如,在H.265/HEVC或H.266/VVC中称为“变换块”或“TB”),在该级别可以执行变换操作。需要注意的是,同一基本处理子单元的划分方案在预测阶段和变换阶段可能不同。例如,在H.265/HEVC或H.266/VVC中,同一CU的预测块和变换块可以具有不同的大小和数量。
在图1的结构110中,基本处理单元112还分为3×3个基本处理子单元,其边界用虚线表示。同一图像的不同基本处理单元可以在不同的方案中分为基本处理子单元。
在某些实现中,为了提供视频编码和解码的并行处理和容错能力,可以将图像划分为多个区域进行处理,这样,对于图像的某个区域,编码或解码过程可以不依赖于来自图像的任何其他区域的信息。换句话说,图像的每个区域都可以独立处理。通过这样做,编解码器可以并行处理图像的不同区域,从而提高编码效率。此外,当一个区域的数据在处理过程中损坏或在网络传输中丢失时,编解码器可以正确编码或解码同一图像的其他区域,而不依赖于损坏或丢失的数据,从而提供容错能力。在某些视频编码标准中,一个图像可以分为不同类型的区域。例如,H.265/HEVC和H.266/VVC提供两种类型的区域:“条带(slice)”和“块片(tile)”。还应该注意的是,视频序列100的不同图像可以具有不同的分区方案,用于将图像划分为区域。
例如,在图1中,结构110分为三个区域114、116和118,其边界在结构110内部显示为实线。区域114包括4个基本处理单元。区域116和118中的每一个都包括6个基本处理单元。应当注意的是,图1中的结构110的基本处理单元、基本处理子单元和区域仅为示例,本公开不限制其实施例。
图2A示出了与本公开实施例一致的示例编码过程200A的示意图。例如,编码过程200A可以由编码器执行。如图2A所示,根据过程200A,编码器可以将视频序列202编码为视频位流228。类似于图1中的视频序列100,视频序列202可以包括一组按时间顺序排列的图像(称为“原始图像”)。类似于图中的结构110,视频序列202的每个原始图像可以通过编码器划分为基本处理单元、基本处理子单元或区域进行处理。在一些实施例中,编码器可以在基本处理单元的级别上对视频序列202的每个原始图像执行过程200A。例如,编码器可以以迭代方式执行过程200A,其中编码器可以在过程200A的一次迭代中对基本处理单元进行编码。在一些实施例中,编码器可以对视频序列202的每个原始图像的区域(例如,区域114-118)并行执行过程200A。
在图2A中,编码器可以将视频序列202的原始图像的基本处理单元(称为“原始BPU”)馈送到预测阶段204,以生成预测数据206和预测BPU 208。编码器可以从原始BPU中减去预测BPU 208,以生成残差BPU 210。编码器可以将残差BPU 210馈送到变换阶段212和量化阶段214以生成量化变换系数216。编码器可以将预测数据206和量化变换系数216馈送到二进制编码阶段226以生成视频位流(bitstream,也称为码流)228。组件202、204、206、208、210、212、214、216、226和228可以称为“前向路径”。在过程200A期间,在量化阶段214之后,编码器可以将量化变换系数216馈送到逆量化阶段218和逆变换阶段220,以生成重建残差BPU 222。编码器可以将重建残差BPU 222添加到预测BPU 208中以生成预测参考224,用于过程200A的下一次迭代的预测阶段204。过程200A的组件218、220、222、224可以称为“重建路径”。重建路径可用于确保编码器和解码器使用相同的参考数据进行预测。
编码器可以迭代地执行过程200A以对原始图像的每个原始BPU进行编码(在前向路径中)并生成预测参考224,用于对原始图像的下一个原始BPU进行编码(在重建路径中)。在对原始图像的所有原始BPU进行编码之后,编码器可以继续对视频序列202的下一个图像进行编码。
参照过程200A,编码器可以接收由视频采集设备(例如,摄像机)生成的视频序列202。此处使用的术语“接收”可以指接收、输入、得到、检索、获取、读取、访问或以任何方式输入数据的任何操作。
在预测阶段204,在当前迭代中,编码器可以接收原始BPU和预测参考224,并执行预测操作以生成预测数据206和预测BPU 208。预测参考224可以从过程200A的先前迭代的重建路径生成。预测阶段204的目的是通过从预测数据206和预测参考224中提取可用于将原始BPU重建为预测BPU 208的预测数据206来减少信息冗余。
理想情况下,预测BPU 208可以与原始BPU相同。但是,由于预测和重建操作不理想,预测BPU 208通常与原始BPU略有不同。为了记录这种差异,在生成预测BPU 208之后,编码器可以从原始BPU中减去它以生成残差BPU 210。例如,编码器可以从原始BPU的相应像素的值中减去预测BPU 208的像素值(例如,灰度值或RGB值)。通过在原始BPU的预测BPU 208的相应像素之间相减,残差BPU 210的每个像素都可以具有残差值。与原始BPU相比,预测数据206和残差BPU 210可以具有更少的位,但它们可用于重建原始BPU而不带来显著的质量恶化。因此,原始BPU被压缩。
为了进一步压缩残差BPU 210,在变换阶段212,编码器可以通过将残差BPU 210分解为一组二维“基本图案”来减少残差BPU 210的空间冗余,每个基本图案都与一个“变换系数”相关联。基本图案可以具有相同的大小(例如,残差BPU 210的大小)。每个基本图案可以表示残差BPU 210的频率变化(例如,亮度变化的频率)分量。任何基本图案都不能从任何其他基本图案的任何组合(例如,线性组合)中再生成出来。换句话说,分解可以将残差BPU210的变化分解为频域。这种分解类似于函数的离散傅里叶变换,其中基本图案类似于离散傅里叶变换的基函数(例如三角函数),变换系数类似于与基函数相关的系数。
不同的变换算法可以使用不同的基本图案。可以在变换阶段212使用各种变换算法,例如,离散余弦变换、离散正弦变换等。变换阶段212处的变换是可逆的。也就是说,编码器可以通过变换的逆操作(称为“逆变换”)来恢复残差BPU 210。例如,要恢复残差BPU 210的像素,逆变换可以将基本图案的相应像素的值乘以相应的关联系数,然后将乘积相加以产生加权和。对于视频编码标准,编码器和解码器都可以使用相同的变换算法(因此具有相同的基本图案)。因此,编码器只记录变换系数,解码器可以从中重建残差BPU 210,而无需从编码器接收基本图案。与残差BPU 210相比,变换系数可以具有更少的位,但它们可用于重建残差BPU 210而不会显着降低质量。因此,残差BPU 210被进一步压缩。
编码器可以在量化阶段214进一步压缩变换系数。在变换过程中,不同的基本图案可以表示不同的变化频率(例如,亮度变化频率)。由于人眼通常更善于识别低频变化,因此编码器可以忽略高频变化的信息,而不会在解码中造成明显的质量下降。例如,在量化阶段214,编码器可以通过将每个变换系数除以整数值(称为“量化比例因子”)并将商四舍五入到其最接近的整数来生成量化变换系数216。经过这样的操作,高频基本图案的一些变换系数可以变换为零,低频基本图案的一些变换系数可以变换为较小的整数。编码器可以忽略零值的量化变换系数216,通过该系数进一步压缩变换系数。量化过程也是可逆的,其中量化变换系数216可以在量化的逆运算中重建为变换系数(称为“逆量化”)。
由于编码器在舍入运算中忽略此类除法的余数,因此量化阶段214可能是有损的。通常,量化阶段214可能在过程200A中贡献最大的信息损失。信息损失越大,量化变换系数216需要的位数就越少。为了获得不同级别的信息损失,编码器可以使用量化参数的不同值或量化过程的任何其他参数。
在二进制编码阶段226,编码器可以使用二进制编码技术对预测数据206和量化变换系数216进行编码,例如,熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码、或任何其他无损或有损压缩算法。在一些实施例中,除了预测数据206和量化变换系数216之外,编码器可以在二进制编码阶段226编码其它信息,例如,在预测阶段204使用的预测模式、预测操作的参数、变换阶段212的变换类型,量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。编码器可以使用二进制编码阶段226的输出数据来生成视频位流228。在一些实施例中,视频位流228可以进一步分组用于网络传输。
参考过程200A的重建路径,在逆量化阶段218,编码器可以对量化变换系数216进行逆量化,以生成重建的变换系数。在逆变换阶段220,编码器可以基于重建的变换系数生成重建残差BPU 222。编码器可以将重建残差BPU 222添加到预测BPU 208中,以生成将在过程200A的下一次迭代中使用的预测参考224。
应当注意,过程200A的其它变化可用于对视频序列202进行编码。在一些实施例中,过程200A的各个阶段可以由编码器以不同的顺序执行。在一些实施例中,可以将过程200A的一个或多个阶段组合成单个阶段。在一些实施例中,可以将过程200A的单个阶段分为多个阶段。例如,变换阶段212和量化阶段214可以组合成单个阶段。在一些实施例中,过程200A可以包括额外的阶段。在一些实施例中,过程200A可以省略图2A中的一个或多个阶段。
图2B示出了与本公开的实施例一致的编码过程200B的另一个示例的示意图。过程200B可以修改自过程200A。例如,过程200B可由符合混合视频编码标准(例如H.26x系列)的编码器使用。与过程200A相比,过程200B的前向路径还包括模式决策阶段230,并将预测阶段204划分为空间预测阶段2042和时间预测阶段2044。过程200B的重建路径还另外包括环路滤波器阶段232和缓冲器234。
一般来说,预测技术可以分为两种类型:空间预测和时间预测。空间预测(例如,图内预测或“帧内预测”)可以使用来自同一图像中一个或多个已编码的相邻BPU的像素来预测当前的BPU。也就是说,空间预测中的预测参考224可以包括相邻的BPU。空间预测可以减少图像固有的空间冗余。时间预测(例如,图间预测或“帧间预测”)可以使用来自一个或多个已编码图像的区域来预测当前的BPU。也就是说,预测参考224在时间预测中可以包括编码图像。时间预测可以减少图像固有的时间冗余。
参考过程200B,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。对于正在编码的图像的原始BPU,预测参考224可以包括在同一图像中被编码(在前向路径中)和重建(在重建路径中)的一个或多个相邻BPU。编码器可以通过插值相邻的BPU来生成预测BPU 208。插值技术可以包括,例如,线性外插值或内插值、多项式外插值或内插值等。在一些实施例中,编码器可以在像素级别执行插值,例如通过插值预测BPU 208的每个像素的相应像素的值。用于插值的相邻BPU可以相对于原始BPU从各个方向定位,例如在垂直方向(例如,在原始BPU的顶部),水平方向(例如,在原始BPU的左侧),对角线方向(例如,向原始BPU的左下,右下,左上或右上),或使用的视频编码标准中定义的任何方向。对于帧内预测,预测数据206可以包括例如使用的相邻BPU的位置(例如,坐标)、使用的相邻BPU的大小、插值的参数、所使用的相邻BPU相对于原始BPU的方向等。
对于另一个示例,在时间预测阶段2044,编码器可以执行帧间预测。对于当前图像的原始BPU,预测参考224可以包括一个或多个已被编码(在前向路径中)和重建(在重建路径中)的图像(称为“参考图像”)。在一些实施例中,参考图像可以是通过BPU编码和重建的BPU。例如,编码器可以将重建残差BPU 222添加到预测BPU 208中,以生成重建的BPU。当生成同一图像的所有重建BPU时,编码器可以生成重建的图像作为参考图像。编码器可以执行“运动估计”操作,以在参考图像的范围(称为“搜索窗口”)中搜索匹配区域。搜索窗口在参考图像中的位置可以根据原始BPU在当前图像中的位置来确定。例如,搜索窗口可以在参考图像中与当前图像中的原始BPU具有相同坐标的位置处为中心,并且可以向外延伸预定距离。当编码器在搜索窗口中识别(例如,通过使用像素递归算法、块匹配算法等)类似于原始BPU的区域时,编码器可以确定这样的区域作为匹配区域。匹配区域可以具有与原始BPU不同的尺寸(例如,小于、等于、大于原始BPU或与原始BPU具有不同的形状)。由于参考图像和当前图像在时间轴上是分开的(例如,如图1所示),因此可以认为匹配区域随着时间的推移“移动”到原始BPU的位置。编码器可以将这种运动的方向和距离记录为“运动矢量”。当使用多个参考图像时(例如,如图1中的图像106),编码器可以搜索匹配区域并确定其与每个参考图像相关的运动矢量。在一些实施例中,编码器可以为各个匹配参考图像的匹配区域的像素值分配权重。
运动估计可用于识别各种类型的运动,例如,平移、旋转、缩放等。对于帧间预测,预测数据206可以包括,例如,匹配区域的位置(例如坐标)、与匹配区域相关联的运动矢量、参考图像的数量、与参考图像相关联的权重等。
为了生成预测BPU 208,编码器可以执行“运动补偿”的操作。运动补偿可用于基于预测数据206(例如,运动矢量)和预测参考224重建预测BPU 208。例如,编码器可以根据运动矢量移动参考图像的匹配区域,其中编码器可以预测当前图像的原始BPU。当使用多个参考图像时(例如,如图1中的图像106),编码器可以根据匹配区域的相应运动矢量和平均像素值移动参考图像的匹配区域。在一些实施例中,如果编码器已将权重分配给相应匹配参考图像的匹配区域的像素值,则编码器可以添加所移动的匹配区域的像素值的加权和。
在一些实施例中,帧间预测可以是单向的或双向的。单向帧间预测可以在相对于当前图像的同一时间方向上使用一个或多个参考图像。例如,图1中的图像104,是单向帧间预测的图像,其中参考图像(例如,图像102)在图像104之前。双向帧间预测可以在相对于当前图像的两个时间方向上使用一个或多个参考图像。例如,图1中的图像106是双向帧间预测的图像,其中参考图像(例如,图像104和108)相对于图像104处于两个时间方向。
仍然参考过程200B的前向路径,在空间预测2042和时间预测阶段2044之后,在模式决策阶段230,编码器可以为过程200B的当前迭代选择预测模式(例如,帧内预测或帧间预测之一)。例如,编码器可以执行速率失真优化技术,其中编码器可以根据候选预测模式的比特率和候选预测模式下重建的参考图像的失真来选择预测模式以最小化成本函数的值。根据所选择的预测模式,编码器可以生成相应的预测BPU 208和预测数据206。
在过程200B的重建路径中,如果在前向路径中选择了帧内预测模式,则在生成预测参考224(例如,在当前图像中已编码和重建的当前BPU)之后,编码器可以直接将预测参考224馈送到空间预测阶段2042以供以后使用(例如,用于插值当前图像的下一个BPU)。编码器可以将预测参考224馈送到环路滤波器阶段232,在该阶段,编码器可以将环路滤波器应用于预测参考224,以减少或消除在预测参考224编码期间引入的失真(例如,块效应)。编码器可以在环路滤波器阶段232应用各种环路滤波技术,例如去块、样值偏移补偿(SAO)、自适应环路滤波器(ALF)等。环路滤波处理过的参考图像可以存储在缓冲器234(或“解码图像缓冲区”)中以供以后使用(例如,用作视频序列202的未来图像的帧间预测参考图像)。编码器可以在缓冲区234中存储一个或多个参考图像,以便在时间预测阶段2044使用。在一些实施例中,编码器可以在二进制编码阶段226编码环路滤波器的参数(例如,环路滤波器强度)以及量化变换系数216、预测数据206和其它信息。
图3A示出了与本公开实施例一致的示例解码过程300A的示意图。过程300A可以是对应于图2A中的压缩过程200A的解压过程。在一些实施例中,过程300A可以类似于过程200A的重建路径。解码器可以根据过程300A将视频位流228解码为视频流304。然而,由于在压缩和解压缩过程中的信息丢失(例如,图2A-2B中的量化阶段214),通常,视频流304不等同于视频序列202。类似于图2A-2B中的过程200A和200B,解码器可以在基本处理单元(BPU)级别对视频位流228中编码的每个图像执行过程300A。例如,解码器可以以迭代方式执行过程300A,其中解码器可以在过程300A的一次迭代中解码一个基本处理单元。在一些实施例中,解码器可以对视频位流228中编码的每个图像的区域(例如,区域114-118)并行执行过程300A。
在图3A中,解码器可以将与编码图像的基本处理单元(称为“编码BPU”)相关联的视频位流228的一部分馈送到二进制解码阶段302。在二进制解码阶段302,解码器可以将该部分解码为预测数据206和量化变换系数216。解码器可以将量化变换系数216馈送到逆量化阶段218和逆变换阶段220,以生成重建残差BPU 222。解码器可以将预测数据204馈送到预测阶段206以生成预测BPU 208。解码器可以将重建残差BPU 222添加到预测BPU 208中,以生成预测参考224。在一些实施例中,预测参考224可以存储在缓冲器中(例如,计算机存储器中的解码图像缓冲器)。解码器可以将预测参考224馈送到预测阶段204,以便在过程300A的下一次迭代中执行预测操作。
解码器300A可以迭代地执行过程以解码编码图像的每个编码BPU并生成预测参考224,用于编码图像的下一个编码BPU。在解码编码图像的所有编码BPU之后,解码器可以将图像输出到视频流304进行显示,并继续解码视频位流228中的下一个编码图像。
在二进制解码阶段302,解码器可以执行由编码器使用的二进制编码技术的逆操作(例如,熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码、或任何其他无损压缩算法)。在一些实施例中,除了预测数据206和量化变换系数216之外,解码器可以在二进制解码阶段302解码其它信息,例如,例如,预测模式、预测操作的参数、变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。在一些实施例中,如果视频位流228以分组形式通过网络传输,则解码器可以在将视频位流228送入二进制解码阶段302之前对其进行解包处理。
图3B示出了另一个示例解码过程300B的示意图,与本公开的实施例一致。过程300B可以从过程300A修改。例如,进程300B可以由符合混合视频编码标准(例如H.26x系列)的解码器使用。与过程300A相比,过程300B另外将预测阶段204划分为空间预测阶段2042和时间预测阶段2044,另外还包括环路滤波器阶段232和缓冲器234。
在过程300B中,对于正在解码的编码图像(称为“当前图像”)的编码基本处理单元(称为“当前BPU”),由解码器解码的二进制解码阶段302的预测数据206可以包括各种类型的数据,这取决于编码器使用何种预测模式对当前BPU进行编码。例如,如果帧内预测被编码器用来编码当前BPU,则预测数据206可以包括指示帧内预测的预测模式指示符(例如,标志值)、帧内预测操作的参数等。帧内预测操作的参数可以包括,例如,用作参考的一个或多个相邻BPU的位置(例如,坐标)、相邻BPU的大小、插值参数、相邻BPU相对于原始BPU的方向等。对于另一示例,如果帧间预测是由编码器对当前BPU进行编码的,则预测数据206可以包括指示帧间预测的预测模式指示符(例如,标志值)、帧间预测操作的参数等。帧间预测操作的参数可以包括,例如,与当前BPU相关联的参考图像的数量、分别与参考图像相关联的权重、各个参考图像中一个或多个匹配区域的位置(例如,坐标)、分别与匹配区域相关联的一个或多个运动矢量等。
基于预测模式指示器,解码器可以决定是在空间预测阶段2042进行空间预测(例如,帧内预测),还是在时间预测阶段2044进行时间预测(例如,帧间预测)。执行这种空间预测或时间预测的细节描述在图2B中,以后不再赘述。在执行这样的空间预测或时间预测之后,解码器可以生成预测BPU 208。解码器可以添加预测BPU 208并重建残差BPU 222以生成预测参考224,如图3A所示。
在过程300B中,解码器可以将预测参考224馈送到空间预测阶段2042或时间预测阶段2044,以便在过程300B的下一次迭代中执行预测操作。例如,如果在空间预测阶段2042使用帧内预测对当前BPU进行解码,则在生成预测参考224(例如,解码的当前BPU)之后,解码器可以直接将预测参考224馈送到空间预测阶段2042供以后使用(例如,用于插值当前图像的下一个BPU)。如果在时间预测阶段2044使用帧间预测对当前BPU进行解码,则在生成预测参考224(例如,其中所有BPU都已解码的参考图像)之后,解码器可以将预测参考224馈送到环路滤波器阶段232以减少或消除失真(例如,块效应)。解码器可以向预测参考224应用环路滤波器,其方式如图2B所示。环路滤波处理过的参考图像可以存储在缓冲器234(例如,计算机存储器中的解码图像缓冲器)中以供以后使用(例如,用作未来编码的视频位流图像228的帧间预测参考图像)。解码器可以在缓冲器234中存储一个或多个参考图像,以便在时间预测阶段2044使用。在一些实施例中,预测数据还可以包括环路滤波器的参数(例如,环路滤波器强度)。在一些实施例中,预测数据包括当预测数据206的预测模式指示器指示帧间预测用于编码当前BPU时,预测数据包括环路滤波器的参数。
图4是用于编码或解码视频数据的示例装置400的框图,与本公开的实施例一致。如图4所示,装置400可以包括处理器402。当处理器402执行此处描述的指令时,装置400可以成为用于视频编码或解码的专用机器。处理器402可以是能够操作或处理信息的任何类型的电路。例如,处理器402可以包括任意数量的中央处理单元(或“CPU”)、图形处理单元(或“GPU”)、神经处理单元(“NPU”)、微控制器单元(“MCU”)、光学处理器、可编程逻辑控制器、微控制器、微处理器、数字信号处理器、知识产权(IP)内核、可编程逻辑阵列(PLA)、可编程阵列逻辑(PAL)、通用阵列逻辑(GAL)、复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)、片上系统(SoC)、专用集成电路(ASIC)等。在一些实施例中,处理器402还可以是一组聚集为单个逻辑组件的处理器。例如,如图4所示,处理器402可以包括多个处理器,包括处理器402a、处理器402b和处理器402n。
装置400还可以包括存储器404,用于存储数据(例如,一组指令、计算机代码、中间数据等)。例如,如图4所示,存储的数据可以包括程序指令(例如,用于实现过程200A、200B、300A或300B中的阶段的程序指令)和用于处理的数据(例如,视频序列202、视频位流228或视频流304)。处理器402可以访问程序指令和数据用于处理(例如,通过总线410),并执行程序指令以对数据执行运算或操作以进行处理。存储器404可以包括高速随机存取存储设备或非易失性存储设备。在一些实施例中,存储器404可以包括任意数量的随机存取存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘驱动器、固态驱动器、闪存驱动器、安全数字(SD)卡、记忆棒、紧凑型闪存(CF)卡等的任意组合。存储器404还可以将一组存储器(未在图4中示出)聚集为单个逻辑组件。
总线410可以是通信设备,其在装置400内部的组件之间传输数据,例如内部总线(例如,CPU存储器总线)、外部总线(例如,通用串行总线端口、外围组件互连快速端口)或类似物。
为了便于解释而不引起歧义,处理器402和其它数据处理电路在本公开中统称为“数据处理电路”。数据处理电路可以完全作为硬件实现,也可以作为软件、硬件或固件的组合来实现。此外,数据处理电路可以是单个独立的模块,也可以全部或部分组合成装置400的任何其它组件。
装置400还可以包括网络接口406,以提供与网络(例如,因特网、内联网、局域网、移动通信网络等)的有线或无线通信。在一些实施例中,网络接口406可以包括任意数量的网络接口控制器(NIC)、射频(RF)模块、应答器、收发器、调制解调器、路由器、网关、有线网络适配器、无线网络适配器、蓝牙适配器、红外适配器、近场通信(“NFC”)适配器、蜂窝网络芯片或类似物。
在一些实施例中,可选地,装置400还可以包括外围接口408以提供与一个或多个外围设备的连接。如图4所示,外围设备可以包括但不限于光标控制设备(例如鼠标、触摸板或触摸屏)、键盘、显示器(例如阴极射线管显示器、液晶显示器或发光二极管显示器)、视频输入设备(例如,耦合到视频档案的摄像头或输入接口)或者类似物。
应当注意,视频编解码器(例如,执行过程200A、200B、300A或300B的编解码器)可以实现为装置400中任何软件或硬件模块的任意组合。例如,过程200A、200B、300A或300B的部分或所有阶段可以实现为装置400的一个或多个软件模块,例如可以加载到存储器404中的程序指令。对于另一示例,过程200A、200B、300A或300B的某些或所有阶段可以实现为装置400的一个或多个硬件模块,例如专用数据处理电路(例如,FPGA、ASIC、NPU等)。
视频处理技术(例如AVS3)中样值偏移补偿(SAO)的关键思想是将样本分类为不同的类别,为每个类别获得偏移,然后将偏移添加到每个样本。分类方法的索引和每个类别的偏移量作为指示提供给每个编码树单元(CTU),以便不同的CTU可以使用不同的SAO参数。
有两种类型的分类方法:边缘偏移(EO)和区间偏移(BO)。对于EO,样本分类基于当前样本值与相邻样本值之间的比较。对于BO,样本分类基于样本值的区间。
对于EO,根据当前样本和邻接样本将CTU中的每个样本分类为5种类别之一。图5示出了根据本公开的一些实施例在样值偏移补偿(SAO)中使用的四种边缘偏移(EO)模式。如图5所示,有4种EO模式501-504,其中“c”代表当前样本,“a”和“b”代表两个相邻样本。表1显示了用于确定每个样本的类别和偏移范围的示例分类规则。
表1:SAO中EO的示例分类规则和偏移范围
选择EO模式后,将根据表1中的规则确定类别。参见表1和图5,如果当前样本不属于EO类别1至4,则当前样本被归类为类别0,并且不应用EO。
对于BO,整个样本值范围平均分为32个类别,并为每个类别生成偏移值并表示。BO偏移量的范围为[-7,7]。
在序列参数集(SPS)中,一个标志用于指示是否在当前视频序列中禁用SAO。在条带报头中,携带三个标志信号,指示是否为当前条带中的Y、Cb和Cr启用了SAO。如果在当前条带中启用了SAO,则会提供每个CTU的SAO参数(包括合并信息、模式信息和偏移信息)信号。对于每个CTU,可以重复使用左侧CTU或上方CTU的SAO参数。如果当前CTU未与相邻CTU合并,则为亮度、Cb和Cr依次提供当前CTU的模式和偏移信息。对于每个分量,首先提供SAO模式,以指示选择了EO、BO或OFF中的哪一个。如果选择BO,则提供32个偏移量;如果选择了EO,则提供4个偏移量,伴随四个EO模式之一。根据本公开的一些实施例,当选择BO时,只会提供一些连续的区间的偏移。
此外,AVS3中采用了增强的样值偏移补偿(ESAO)。在SPS中启用ESAO时,SAO设置为禁用。ESAO修改了SAO的分类方法,并对整个帧使用相同的ESAO参数。对于ESAO来说,亮度和色度的分类方法不同。
对于亮度,分类方法基于两个维度。对于第一维度,重建的亮度样本被分为NEO个类别,并具有两种增强的EO方法。图6示出了根据本公开的一些实施例的当前亮度样本和周围的8个亮度样本。如图6所示,将当前亮度样本601的值c与周围的索引从0到7的8个样本进行依次比较。表2显示了通过两种方法对第一维度idx_EO的示例性分类结果,其中Y(i,j)是当前的亮度样本,Y(k1,k2)表示周围的8个亮度样本。
表2:ESAO中第一维度的示例分类结果
如表2所示,对于方法1,idx_EO的范围为0至16;因此,总共有17个类别(即NEO等于17)。对于方法2,idx_EO的范围是从0到8;因此,总共有9个类别(即NEO等于9)。在图像报头(PH)的标志指示使用这两种方法中的哪一种。
对于第二维度,整个亮度样本取值范围平均分为NEO个类别,如公式(1):
idxBO=(Y(i,j)*NBO)>>bitdepth (1)
其中,idx_BO是第二维度的分类结果,允许AVS3中亮度样本的NEO值从1到16之间变化,bitdepth是内部编码位深度。
最终分类结果idx_ESAO可以按公式(2)获得:
idx_ESAO=idx_BO*NEO+idx_EO (2)
对于色度样本,仅使用第二维度,这意味着仅使用BO。并且允许AVS3中的色度样本的NEO值从1到272之间变化。
例如,在AVS3中,如果启用了ESAO,则会进一步发出CTU控制标志的信号,以指示当前图像中的CTU是否可以独立启用/禁用。如果CTU控制标志指示当前图像中的CTU无法独立启用/禁用,例如,该标志为OFF,则ESAO将应用于所有CTU。ESAO偏移量被限制在[-15,15]范围内,并使用截断一元码为PH中的每个类别单独发出信号。
跨分量样值偏移补偿(CCSAO)是一种提高AVS3色度编码效率的编码工具。具体来说,对于给定的色度样本,色度样本首先根据共址的亮度样本进行分类,然后通过在色度样本的重建值之上添加一个在图像报头(PH)中指示的相应偏移来更新色度样本的分类。图7示出了根据本公开的一些实施例的跨分量样值偏移补偿(CCSAO)过程。如图7所示,将去块滤波器(DBF)710输出的亮度样本711用于CCSAO对色度样本的分类,并针对每一类别生成偏移量712、713并添加到自适应色度样本(SAO)或增强型样值偏移补偿(ESAO)720、730输出的重建色度样本721、731中,得到修改后的重建色度样本722,732。然后分别对重建的亮度样本714和修改后的重建色度样本722、732进行ALF。
在CCSAO中,共址亮度样本用于对当前色度样本进行分类。图8示出了根据本公开的一些实施例可以从中选择共址亮度样本的9个候选位置。如图8所示,在一个图像中,一个图像的左上角样本在(0,0),如果当前色度样本在(i,j),则共址亮度样本在(2i,2j),即阴影中的圆(例如801)。位置索引(例如,4)在PH中提供,以指示选择了哪个共址亮度样本。
区间偏移(BO)用于CCSAO分类。具体而言,与共址亮度样本相关的重建值的范围平均分为NL个区间。NL的值允许从1到16之间变化,并在PH中提供。对于每个类别,根据以下公式,偏移量被提供并添加到属于该类别的所有重建色度样本中:
C′rec=Crec+offset[idx] (4)
在公式(3)中,是与用于对当前色度样本进行分类的共址亮度样本关联的重建值,bitdepth是内部编码位深度,idx是当前色度样本的类别索引。在公式(4)中,Crec和C′rec是CCSAO之前和CCSAO之后与色度样本相关的重建值,offset[idx]是应用于第idx类别的CCSAO偏移值。
在AVS3中,CCSAO偏移被约束在[-15,15]范围内,并在PH中用截断一元码单独提供。此外,首先在PH中提供控制标志,以指示是否对当前图像启用了CCSAO。如果该控制标志打开(即,CCSAO对当前图像启用),则会进一步发出第二控制标志的信号,以指示是否启用CTU级别的开/关控制。当前图像中的CTU只能在第二控制标志打开时独立启用/禁用(即CTU控制已启用)。如果第二控制标志关闭(即,CTU关闭控制已启用),则CCSAO将根据第一控制标志应用于所有CTU。
CCSAO四叉树(CCSAO-QUA)的两种改进方法可用于进一步提高色度编码效率。根据本公开的一些实施例,图9A和9B分别说明了CCSAO-QUA的两种划分方法。
如图9A所示,第一种方法根据四叉树将一个框架划分为四个区域。提供标志以指示是否划分帧,每个区域可以提供不同的CCSAO参数(包括是否对当前区域启用CCSAO、是否启用CTU开/关控制、共址亮度样本的位置、NL和每个类别的偏移值)。如图9B所示,第二种方法根据两个递归四叉树将帧划分为多达16个区域。提供一标志以指示是否划分帧;如果该标志打开,则提供另外4个标志以指示是否进一步划分区域,每个区域可以提供不同的CCSAO参数。
此外,根据本公开的一些实施例,CCSAO的多个分类器可以在一个帧中提供以进一步提高色度编码效率。在一些实施例中,一个帧中CCSAO的分类器的数量被扩展到最多4个。当帧级别的CCSAO CTU开/关控制标志启用时,首先提供此帧中使用的分类器数量,然后是每个分类器的参数(包括位于共址亮度样本的位置、区间数NL和每个类别的偏移值)。为了降低解码器的复杂性并为编码器提供更大的灵活性,要使用的分类器在CTU级别显式提供并切换。如果将CCSAO应用于CTU,则会进一步提供截断一元码索引,以指示所选分类器。
在一些实施例中,提出了一种新的CCSAO分类方法。提供标志用以指示是使用原来的CCSAO分类方法还是新的CCSAO分类方法。使用新的分类方法,可以使用BO和EO的组合。
对于新分类方法中的BO,可以使用位于(i,j)的当前重建的色度样本(去块滤波后)或位于(2i,2j)的重建亮度样本(去块滤波后)。整个样本取值范围平均分为NBO个类别。如果使用共址重建的亮度样本,则可以根据公式(5)获得BO类别索引;如果使用重建的色度样本,则可以根据公式(6)获得BO类别索引。
其中idx_BO是当前色度样本的BO类别索引。NBO的值在公式(5)或公式(6)中分别为1或2。例如,如果NBO的值在等式(5)中等于1,则NBO的值可以在等式(6)中从1更改为2。如果NBO的值在等式(5)中等于2,则NBO的值可以在等式(6)中从2更改为1。针对每个CTU指示是否使用BO中使用的共址重建亮度样本或共址色度重建样本。
对于新分类方法中的EO,使用位于(2i,2j)的共址重建亮度样本(去块滤波后)。可以使用图5所示的4种EO模式。对于某种模式,采用以下方法推导EO的分类结果,其中TH为{2,4,6,8,10,12,14,16}范围内的阈值,并在PH中表示,idx_EO是当前色度样本的EO类别索引,可根据公式(7)-公式(9)获得。
idx_EO1=(b-a<0)?(b-a<-TH?0:1):(b-a<TH?2:3) (7)
idx_EO2=(b-c<0)?(b-c<-TH?0:1):(b-c<TH?2:3) (8)
idx_EO=idx_EO1*4+idx_EO2 (9)
其中idx_EO1和idx_EO2是两个中间结果。idx_EO是当前色度样本的EO类别索引。
最终的分类结果可以通过idx_BO和idx_EO的组合得到,公式如下:
idx=idx_BO*16+idx_EO (10)
其中idx是当前色度样本的类别索引。
在AVS3的当前CCSAO设计中观察到以下问题。
在AVS3中,SAO,ESAO和CCSAO在去块滤波器之后执行。去块滤波器用于过滤块的边界,以减少压缩引入的重建图像中的块伪影。待去块过滤的边界包括编码单元的边界、预测单元的边界和变换单元的边界。对于每个CTU,重建后,底部边界因无法经去块滤波作为底部相邻CTU的样本而不会被解码或编码。图10示出了根据本公开的一些实施例涉及CTU底部边界去块滤波的样本。参见图10,由于编码顺序为按照光栅扫描顺序逐个CTU进行,因此当CTU 0重建为CTU k的顶部样本1002时,CTU 0的底部样本1001无法进行去块滤波。因此,底部样本1001需要滤波,而CTU k的顶部样本尚未编码或解码。因此,CTU 0的底部重建样本1001需要在CTU k重建后进行存储和滤波。同一CTU行的CTU 1、CTU 2和其他CTU的底部样本的情况相同。在硬件实现中,一个CTU行的所有底部样本都存储在行缓冲区中。当图像宽度非常大时,行缓冲区可能会很昂贵。由于每个CTU的底部样本的去块滤波是在重建底部相邻CTU后进行的,因此在重建底部相邻CTU之前,SAO,ESAO,CCSAO和ALF也应处于挂起状态。
在AVS3中,对于亮度去块,边界每侧的4个亮度样本用作滤波器的输入,并且仅对边界两侧的3个亮度样本进行滤波。由于每侧使用4个亮度样本,因此4行亮度重建样本存储在行缓冲区中。对于色度去块,边界每侧的3个色度样本用作滤波器的输入,并且仅对边界两侧的2个色度样本进行滤波。由于每侧使用3个色度样本,因此3行色度重建样本存储在行缓冲区中。
对于ALF,在重建底部相邻CTU后,存储在行缓冲区(CTU底部边界上方的4条亮度线)中的样本由ALF过滤。由于CTU底部边界上方第4行以上的样本未存储在行缓冲区中,因此无法使用CTU底部边界上方第4行以上的样本。图11示出了根据本公开的某些实施例的用于亮度样本的ALF的示例性虚拟边界。参见图11,在CTU的水平边界(例如,底部边界)上方的第4行1102和第五行1101之间示出了虚拟边界。在ALF过程中,当对当前样本进行滤波时,不能使用虚拟边界另一侧的相邻样本,只能使用虚拟边界同一侧的相邻样本。在AVS3中,对于亮度分量和色度分量,虚拟边界设置在CTU的水平边界上方的第4行1102和第5行1101之间。在一些实施例中,CTU水平边界上方第3行的色度样本也需要存储在行缓冲器中,并在重建底部相邻CTU后进行滤波。因此,在一些实施例中,4行色度样本被存储在行缓冲区中。
但是,在CCSAO中,可以从9个候选位置中选择共址亮度样本。为了对存储在行缓冲区中的色度样本(即CTU水平边界上方的3行或4行色度样本)应用CCSAO,需要比存储在行缓冲区中的亮度样本(即CTU水平边界上方的4行亮度样本)更多的亮度样本。CTU水平边界可以是CTU的底部边界。根据本公开的一些实施例,图12A-12C示出了CCSAO中用于色度的共址亮度样本的相应不同示例。例如,如图12A所示,对于CTU水平边界上方第2行(表示为第62行)中的色度样本,需要块1201内的9个亮度样本(在第123、124和125行指示的样本),这意味着需要5行亮度样本(从第127行到第123行)。如图12B所示,对于CTU水平边界上方第3行(表示为第61行)上的色度样本,需要块1202内的9个亮度样本(由第121、122和123行表示),这意味着需要7行亮度样本(从第127行到第121行)。如图12C所示,对于CTU水平边界上方第4行的色度样本(表示为第60行),需要块1203内的9个亮度样本(在第119、120和121行中指示的样本),这意味着需要9行亮度样本(从第127行到第119行)。因此,由于CCSAO中BO的色度样本的共址亮度样本位置和EO的相邻亮度样本位置,必须增加行缓冲区。
本公开提供了解决上述问题的方法和系统。可以设想的是,所公开的方法和系统还可以解决公开中未明确指出的其他问题,并且不限于解决上述问题。
与所公开的实施例一致,以下方法可用于减少或避免增加行缓冲区的用量。
在一些实施例中,如果用于CCSAO的BO的色度样本的共址亮度样本或用于CCSAO的EO的色度样本的相邻亮度样本未存储在行缓冲区中,而色度样本存储在行缓冲区中,则共址亮度样本被替换为存储在行缓冲区中的最近的亮度样本。也就是说,如果使用的共址亮度样本或使用的相邻亮度样本位于CTU水平边界上方的第4行上方,而色度样本位于CTU水平边界上方的第4行下方,则仅使用CTU水平边界上方第4行且在同一列中的亮度样本。
根据本公开的一些实施例,图13A-13C示出了用于CCSAO的亮度样本在色度上的相应不同示例。例如,在一些实施例中,如图13A所示,对于CTU水平边界上方第2行(第62行)上的色度样本,用于BO的共址亮度样本可以是亮度样本0到亮度样本8(第123行到125行),用于EO的相邻亮度样本可以是亮度样本0、1、2、3、5、6、7和8(在第123到125行)。在这些亮度样本中,亮度样本0、1和2位于CTU水平边界上方的第4行上方,未存储在行缓冲区中。如果指示亮度样本0用作共址亮度样本或相邻亮度样本,则改用亮度样本3。也就是说,如果在位流中发出的索引指示亮度样本0或亮度样本3用于共址亮度样本或相邻亮度样本,则始终使用亮度样本3。如果指示亮度样本1用作共址亮度样本或相邻亮度样本,则改用亮度样本4。也就是说,如果在位流中发出的索引指示亮度样本1或亮度样本4用于共址亮度样本或相邻亮度样本,则始终使用亮度样本4。如果指示将亮度样本2用作位于共址亮度样本或相邻亮度样本,则改用亮度样本5。也就是说,如果位流中发出的索引指示亮度样本2或亮度样本5用于共址亮度样本或相邻亮度样本,则始终使用亮度样本5。也可以理解为,在CCSAO中,亮度样本3填充到亮度样本0,亮度样本4填充到亮度样本1,亮度样本5填充到亮度样本2。或者,可以理解为将亮度样本0的位置裁剪到亮度样本3的位置,将亮度样本1的位置裁剪到亮度样本4的位置,将亮度样本2的位置裁剪到亮度样本5的位置。
在一些实施例中,如图13B所示,对于CTU水平边界上方第3行(第61行)上的色度样本,用于BO的共址亮度样本可以是亮度样本0到亮度样本8(在第121到123行),用于EO的相邻亮度样本可以是亮度样本0、1、2、3、5、6、7和8(在第121至123行)。所有这些样本都位于CTU水平边界上方的第4行上方,因此不会存储在行缓冲区中。如果指示亮度样本0、3或6用作共址亮度样本或相邻亮度样本,则改用亮度样本a。也就是说,如果在位流中发出的索引指示亮度样本0、亮度样本3或亮度样本6用于位于共址亮度样本或相邻亮度样本,则始终使用亮度样本a。如果指示亮度样本1、4或7用作共址亮度样本或相邻亮度样本,则改用亮度样本b。也就是说,如果位流中发出的索引指示亮度样本1、亮度样本4或亮度样本7用于位于共址亮度样本或相邻亮度样本,则始终使用亮度样本b。如果指示亮度样本2、5或8用作共址亮度样本或相邻亮度样本,则将改用亮度样本c。也就是说,如果位流中发出的索引指示亮度样本2、亮度样本5或亮度样本8用于共址亮度样本或相邻亮度样本,则始终使用亮度样本c。可以理解为,在CCSAO中,亮度样本a填充到亮度样本0、3和6,亮度样本b填充到亮度样本1、4和7,亮度样本c填充到亮度样本2、5和8。或者,可以理解为亮度样本0、3和6的位置被裁剪到亮度样本a的位置,亮度样本1、4和7的位置被裁剪到亮度样本b的位置,亮度样本2、5和8的位置被裁剪到亮度样本c的位置。
例如,在一些实施例中,如图13C所示,对于CTU水平边界上方第4行(第60行)上的色度样本,用于BO的共址亮度样本可以是亮度样本0到亮度样本8(第119到121行),用于EO的相邻亮度样本可以是亮度样本0、1、2、3、5、6、7和8(第119到121行)。所有这些样本都位于CTU水平边界上方的第4行上方,因此不会存储在行缓冲区中。如果指示亮度样本0、3或6用作共址亮度样本或相邻亮度样本,则改用亮度样本a。也就是说,如果在位流中发出的索引指示亮度样本0、亮度样本3或亮度样本6用于共址亮度样本或相邻亮度样本,则始终使用亮度样本a。如果指示亮度样本1、4或7用作共址亮度样本或相邻亮度样本,则改用亮度样本b。也就是说,如果位流中发出的索引指示亮度样本1、亮度样本4或亮度样本7用于共址亮度样本或相邻亮度样本,则始终使用亮度样本b。如果指示亮度样本2、5或8用作共址亮度样本或相邻亮度样本,则将改用亮度样本c。也就是说,如果位流中发出的索引指示亮度样本2、亮度样本5或亮度样本8用于共址亮度样本或相邻亮度样本,则始终使用亮度样本c。可以理解为,在CCSAO中,亮度样本a填充到亮度样本0、3和6,亮度样本b填充到亮度样本1、4和7,亮度样本c填充到亮度样本2、5和8。或者,可以理解为亮度样本0、3和6的位置被裁剪到亮度样本a的位置,亮度样本1、4和7的位置被裁剪到亮度样本b的位置,亮度样本2、5和8的位置被裁剪到亮度样本c的位置。
图14示出了根据本公开的一些实施例的用于跨分量样值偏移补偿(CCSAO)的方法1400的流程图。方法1400可以通过编码器(例如,通过图2A的过程200A或图2B的过程200B)、解码器(例如,通过图3A的过程300A或图3B的过程300B)或由一个或多个软件或硬件组件(例如图4的装置400)来执行。例如,处理器(例如,图4的处理器402)可以执行方法1400。在一些实施例中,方法1400可以通过计算机程序产品来实现,体现在计算机可读介质中,包括计算机可执行指令,例如程序代码,由计算机执行(例如,图4的装置400)。参见图14,方法1400可以包括以下步骤1402-1410。
在步骤1402,基于图像中色度样本的垂直位置确定行索引。当前色度样本的行索引用于指示用于CCSAO的BO中色度样本的一个或多个共址亮度样本或CCSAO的EO中用于色度样本的相邻亮度样本是否未存储在行缓冲区中(例如,一个或多个位于共址亮度样本位于CTU水平边界上方的4行样本上方),而色度样本存储在行缓冲区中(例如,色度样本位于CTU水平边界上方的4行样本内)。在一些实施例中,行索引大于0表示用于CCSAO的BO中的色度样本或CCSAO的EO中用于色度样本的相邻亮度样本中的一个或多个未存储在行缓冲区中,而色度样本存储在行缓冲区中。行索引等于0表示CCSAO的BO中用于色度样本的所有共址亮度样本或CCSAO的EO中用于色度样本的相邻亮度样本都存储在行缓冲区中,而色度样本也存储在行缓冲区中,或者CCSAO的BO中用于色度样本的所有共址亮度样本或用于CCSAO的EO中的色度样本不存储在行缓冲区中,而色度样本也不存储在行缓冲区中。
在步骤1404,基于行索引确定亮度样本。在一些实施例中,亮度样本基于亮度样本的水平位置和垂直位置来确定。在一些实施例中,亮度样本的水平位置和垂直位置基于行索引确定。在一些实施例中,仅根据行索引确定亮度样本的垂直位置,以确保亮度样本和色度样本都存储在行缓冲区中,或者两者都不存储在行缓冲区中。
在一些实施例中,确定与色度样本的垂直位置相关联的三个值之间的第一垂直位置。例如,在BO分类方法中,三个值对应于图8中的三个垂直位置。在EO分类法中,三个值对应于图5中的三个垂直位置。在一些实施例中,分类方法用一标志指示。该标志可以在CTU级别提供。例如,当标志的值为1时,将使用BO分类方法。当标志的值为2时,使用BO和EO分类方法的组合。假设当前图像左上角亮度样本的坐标为(0,0),响应行索引大于0且第一垂直位置大于CTU水平边界上方第4行的第二垂直位置,将亮度样本的垂直位置设置为第二垂直位置。在这种情况下,第一垂直位置不在行缓冲区中存储的位置范围内。第一垂直位置与CTU水平边界之间的距离大于第二垂直位置与CTU水平边界之间的距离。当第一垂直位置小于或等于与CTU水平边界上方的第4行关联的第二垂直位置时,将亮度样本的垂直位置设置为第一垂直位置。在这种情况下,第一垂直位置位于行缓冲区中存储的位置范围内。第一垂直位置与CTU水平边界之间的距离小于或等于第二垂直位置与CTU水平边界之间的距离。
在步骤1406,基于与亮度样本相关联的重建值对色度样本进行分类。在一些实施例中,使用BO分类方法或BO和EO分类方法的组合。
在步骤1408,基于分类结果确定偏移量。在一些实施例中,可以针对PH中的每个类别单独提供偏移量。
在步骤1410,添加偏移量到与色度样本相关联的重建值。在一些实施例中,将偏移量添加到与色度样本相关联的重构值的过程可以参考图7。
在一些实施例中,假设当前图像左上角的色度样本坐标为(0,0),则当前色度样本的坐标为(xC,yC),其中xC是表示当前色度样本与左上色度样本之间水平距离的水平坐标,yC是表示当前色度样本与左上色度样本之间垂直距离的垂直坐标。行索引可以通过色度样本的垂直坐标yC得出:
行索引=(yC%HC)>=HC–n?(HC-yC-1):0(11)其中HC是与CTU关联的高度,n是行缓冲区中存储的行数,在AVS3中等于4。那么,行索引大于0表示CCSAO的BO中用于色度样本的一个或多个共址亮度样本或CCSAO的EO中用于当前色度样本的相邻亮度样本未存储在行缓冲区中。例如,对于CTU水平边界上方第2行(第62行)上的色度样本,行索引等于1;对于CTU水平边界上方第3行(第61行)上的色度样本,行索引等于2;对于CTU水平边界上方第4行(第60行)上的色度样本,行索引等于3;对于其他色度样本,行索引等于0。
在一些实施例中,用于CCSAO的BO中的色度样本的共址亮度样本或用于CCSAO的EO中色度样本的相邻亮度样本由当前色度样本(xC,yC)的坐标表示,两个偏移量为((xC<<1)+offsetx,(yC<<1)+offsety)。例如,对于CTU水平边界上方第一行上的色度样本(例如,如图13A-13C所示的第63行),共址亮度样本0,1,2,3,4,5,6,7和8可以分别用((xC<<1)-1,(yC<<1)-1),((xC<<1)+0,(yC<<1)-1),((xC<<1)+1,(yC<<1)-1),((xC<<1)-1,(yC<<1)+0),((xC<<1)+0,(yC<<1)+0),((xC<<1)+1,(yC<<1)+0),((xC<<1)-1,(yC<<1)+1),((xC<<1)+0,(yC<<1)+1),和((xC<<1)+1,(yC<<1)+1)表示。上面提到的替换方法可以理解为根据行索引修改偏移量。参见图13A,对于CTU水平边界上方第2行(例如第62行)上的色度样本,行索引等于1,则亮度样本0、1、2、3、4、5、6、7和8可以分别是位于((xC<<1)-1,(yC<<1)+0),((xC<<1)+0,(yC<<1)+0),((xC<<1)+1,(yC<<1)+0),((xC<<1)-1,(yC<<1)+0),((xC<<1)+0,(yC<<1)+0),((xC<<1)+1,(yC<<1)+0),((xC<<1)-1,(yC<<1)+1),((xC<<1)+0,(yC<<1)+1)和((xC<<1)+1,(yC<<1)+1)的亮度样本。参见图13B,对于CTU水平边界上方第3行(第61行)上的色度样本,行索引等于2,亮度样本0、1、2、3、4、5、6、7和8可以分别是位于((xC<<1)-1,(yC<<1)+2),((xC<<1)+0,(yC<<1)+2),((xC<<0)+1,(yC<<1)+2),((xC<<1)-1,(yC<<1)+2),((xC<<1)+0,(yC<<1)+2),((xC<<1)+1,(yC<<1)+2),((xC<<1)-1,(yC<<1)+2),((xC<<1)+0,(yC<<1)+2)和((xC<<1)+1,(yC<<1)+2)的亮度样本。参见图13C,对于CTU水平边界上方第4行(第60行)上的色度样本,行索引等于3,亮度样本0、1、2、3、4、5、6、7和8可以分别是位于(xC<<1)-1、(yC<<1)+4)、((xC<<1)+0、(yC<<1)+4),((xC<<1)+1,(yC<<1)+4),((xC<<1)-1,(yC<<1)+4),((xC<<1)+0,(yC<<1)+4),((xC<<1)+1,(yC<<1)+4),((xC<<1)-1,(yC<<1)+4),((xC<<1)+0,(yC<<1)+4),和((xC<<1)+1,(yC<<1)+4)的亮度样本。对于其他色度样本,行索引等于0,因此,亮度样本的位置不会改变。第4行(第124行)上的亮度样本可用于替换CTU水平边界上方的4行上方的行上的亮度样本。
在一些实施例中,如果用于CCSAO的BO中的色度样本的共址亮度样本或用于CCSAO的EO中色度样本的相邻亮度样本未存储在行缓冲区中,而色度样本存储在行缓冲区中,则跳过对该色度样本的CCSAO操作。换句话说,如果需要未存储在行缓冲区中的亮度样本(即亮度样本位于CTU水平边界上方的4行亮度样本上方),而色度样本存储在行缓冲区中(即色度样本位于CTU水平边界上方的4行色度样本内),则CCSAO不适用于色度样本。也就是说,与色度样本关联的重建值的偏移量等于0。在这些实施例中,是否在当前色度样本上应用CCSAO取决于对应的亮度样本。这些对应的亮度样本由在CTU级别提供的语法元素和当前色度样本的位置指定。在一些实施例中,是否对当前色度样本应用CCSAO取决于当前色度样本的行索引。当行索引等于0时,将对当前色度样本应用CCSAO,并根据分类结果确定偏移量。当行索引大于0时,偏移量设置为0,因此,不会对当前色度样本应用CCSAO。
例如,如图13A所示,对于CTU水平边界上方第2行(第62行)上的当前色度样本,用于BO的共址亮度样本可以是亮度样本0到亮度样本8(第123行至125行),用于EO的相邻亮度样本可以是亮度样本0,1,2,3,5,6,7,或8(第123至125行)。在这些亮度样本中,亮度样本0、1和2位于CTU水平边界上方的第4行上方,它们不存储在行缓冲区中。如果指示亮度样本0、1或2用作共址亮度样本或相邻亮度样本,则不会对当前色度样本应用CCSAO操作。也就是说,当位流中发出的索引指示亮度样本0、亮度样本1或亮度样本2用作共址亮度样本或相邻亮度样本时,不会对当前色度样本应用CCSAO。
例如,如图13B所示,对于CTU水平边界上方第3行(第61行)上的当前色度样本,用于BO的共址亮度样本可以是亮度样本0到亮度样本8(第121行到123行),用于EO的相邻亮度样本可以是亮度样本0、1、2、3、5、6、7、或8(第121至123行)。所有这些样本都位于CTU水平边界上方的第4行上方,因此不会存储在行缓冲区中。因此,始终跳过对当前色度样本的CCSAO操作。也就是说,对CTU水平边界上方第3行上的色度样本禁用CCSAO。
例如,如图13C所示,对于CTU水平边界上方第4行(第60行)上的当前色度样本,用于BO的共址亮度样本可以是亮度样本0到亮度样本8(第119行到121行),用于EO的相邻亮度样本可以是亮度样本0、1、2、3、5、6、7、或8(第119至121行)。所有这些样本都位于CTU水平边界上方的第4行上方,这些样本不存储在行缓冲区中。因此,始终跳过对当前色度样本的CCSAO操作。也就是说,对CTU水平边界上方第4行上的色度样本禁用CCSAO。
实施例可进一步使用以下条款进行描述:
1.一种用于跨分量样值偏移补偿的视频数据处理方法,包括:
根据图像中色度样本的垂直坐标确定索引;
根据所述索引确定亮度样本;
根据与所述亮度样本相关的重建值对所述色度样本进行分类;
根据所述分类确定偏移量;和
将所述偏移量添加到与所述色度样本关联的重建值。
2.根据权利要求1所述的方法,其特征在于,所述索引由以下获得:
index=(y%H)>=H–n?(H–y–1):0
其中y是所述图像内所述色度样本的垂直坐标,H是与编码树单元相关联的高度,n是正整数。
3.根据权利要求2所述的方法,其特征在于,所述n等于4。
4.根据权利要求1所述的方法,其特征在于,在根据所述索引确定亮度样本时,该方法还包括:
根据所述色度样本的水平坐标和要使用的分类方法确定所述亮度样本的水平坐标;
根据所述色度样本的垂直坐标、所述要使用的分类方法和所述索引确定所述亮度样本的垂直坐标;以及
根据所述亮度样本的水平坐标和所述亮度样本的垂直坐标确定所述亮度样本。
5.根据权利要求4所述的方法,其特征在于,在确定所述亮度样本的垂直坐标时,该方法还包括:
根据要使用的分类方法,确定与所述色度样本垂直坐标相关的三个值中的第一垂直坐标;
基于所述第一垂直坐标和所述索引确定所述亮度样本的垂直坐标,其中
响应于所述索引等于0,将所述亮度样本的垂直坐标设置为第一垂直坐标;以及
响应于所述索引大于0,确定与编码树单元(CTU)水平边界上方的第4行关联的第二垂直坐标,
当所述第一垂直坐标与所述CTU水平边界之间的距离小于或等于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第一垂直坐标,或者
当所述第一垂直坐标与所述CTU水平边界之间的距离大于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第二垂直坐标。
6.根据权利要求4所述的方法,其中,所述要使用的分类方法通过一个标志指示。
7.根据权利要求1所述的方法,其特征在于,在基于所述分类确定偏移量时,该方法还包括:
基于所述索引确定所述偏移量,其中
响应于所述索引等于0,所述偏移量根据分类确定;以及
响应于所述索引大于0,所述偏移量设置为0。
8.一种用于执行视频数据处理的装置,该装置包括:
存储器,所述存储器用于存储一组指令;和
一个或多个处理器,所述一个或多个处理器被配置为执行所述一组指令以使装置执行:
根据图像中色度样本的垂直坐标确定索引;
根据所述索引确定亮度样本;
根据与所述亮度样本相关的重建值对所述色度样本进行分类;
根据所述分类确定偏移量;和
将所述偏移量添加到与所述色度样本关联的重建值。
9.根据权利要求8所述的装置,其特征在于,所述索引由以下获得:
index=(y%H)>=H–n?(H–y–1):0
其中y是所述图像内所述色度样本的垂直坐标,H是与编码树单元相关联的高度,n是正整数。
10.根据权利要求9所述的装置,其中所述n等于4。
11.根据权利要求8所述的装置,其特征在于,在基于所述索引确定亮度样本时,所述一个或多个处理器还被配置成执行所述一组指令以使所述装置执行:
根据所述色度样本的水平坐标和要使用的分类方法确定所述亮度样本的水平坐标;
根据所述色度样本的垂直坐标、所述要使用的分类方法和所述索引确定亮度样本的垂直坐标;和
根据所述亮度样本的水平坐标和所述亮度样本的垂直坐标确定所述亮度样本。
12.根据权利要求11所述的装置,其中,在确定所述亮度样本的垂直坐标时,所述一个或多个处理器还被配置成执行所述一组指令以使所述装置执行:
根据所述要使用的分类方法,确定与所述色度样本垂直坐标相关的三个值中的第一垂直坐标;
基于所述第一垂直坐标和所述索引确定所述亮度样本的垂直坐标,其中
响应所述索引等于0,将所述亮度样本的垂直坐标设置为第一个垂直坐标;和
响应所述索引大于0,确定与编码树单元(CTU)水平边界上方的第4行关联的第二垂直坐标,
当所述第一垂直坐标与所述CTU水平边界之间的距离小于或等于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第一垂直坐标,并且
当所述第一垂直坐标与所述CTU水平边界之间的距离大于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第二垂直坐标。
13.根据权利要求11所述的装置,其中所述要使用的分类方法通过一个标志指示。
14.根据权利要求8所述的装置,其中,在基于分类确定偏移量时,所述一个或多个处理器还被配置成执行指令以使所述装置执行:
基于所述索引确定所述偏移量,其中
响应于所述索引等于0,所述偏移量根据分类确定;和
响应于所述索引大于0,所述偏移量设置为0。
15.一种非暂时性计算机可读介质,它存储一组指令,所述一组指令可由设备的一个或多个处理器执行,以使设备启动用于执行视频数据处理的方法,该方法包括:
根据图像中色度样本的垂直坐标确定索引;
根据所述索引确定亮度样本;
根据与所述亮度样本相关的重建值对所述色度样本进行分类;
根据所述分类确定偏移量;和
将所述偏移量添加到与色度样本关联的重建值。
16.根据权利要求15所述的非暂时性计算机可读介质,其特征在于,所述索引由以下途径获得:
index=(y%H)>=H–n?(H–y–1):0
其中y是所述图像内所述色度样本的垂直坐标,H是与编码树单元相关联的高度,n是正整数。
17.根据权利要求16所述的非暂时性计算机可读介质,其中所述n等于4。
18.根据权利要求15所述的非暂时性计算机可读介质,其中,所述一组指令集可由设备的一个或多个处理器执行,以引起该设备进一步执行:
根据所述色度样本的水平坐标和要使用的分类方法确定所述亮度样本的水平坐标;
根据所述色度样本的垂直坐标、所述要使用的分类方法和所述索引确定亮度样本的垂直坐标;和
根据所述亮度样本的水平坐标和所述亮度样本的垂直坐标确定所述亮度样本。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,所述一组指令可由设备的一个或多个处理器执行,以引起该设备进一步执行:
根据所述要使用的分类方法,确定与所述色度样本垂直坐标相关的三个值中的第一垂直坐标;
基于所述第一垂直坐标和所述索引确定所述亮度样本的垂直坐标,其中
响应于所述索引等于0,将所述亮度样本的垂直坐标设置为第一垂直坐标;和
响应于所述索引大于0,确定与编码树单元(CTU)水平边界上方的第4行关联的第二垂直坐标,
当所述第一垂直坐标与所述CTU水平边界之间的距离小于或等于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第一垂直坐标,并且
当所述第一垂直坐标与所述CTU水平边界之间的距离大于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第二垂直坐标。
20.根据权利要求15所述的非暂时性计算机可读介质,其中,所述一组指令可由设备的一个或多个处理器执行,以引起该设备进一步执行:
基于所述索引确定偏移量,其中
响应于所述索引等于0,所述偏移量根据所述分类确定;和
响应于所述索引大于0,所述偏移量设置为0。
在一些实施例中,还提供了非暂时性计算机可读存储介质。在一些实施例中,存储介质可以存储视频位流的全部或部分,具有指示BO和EO的组合是否用于CCSAO的标志。在一些实施例中,介质可以存储可由设备(诸如所公开的编码器和解码器)执行的指令,用于执行上述方法。非暂时性介质的常见形式包括,例如,软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何带有孔模式的物理介质、RAM、PROM和EPROM、FLASH-EPROM或任何其他闪存,NVRAM,缓存,寄存器,任何其他内存芯片或盒式磁带,以及相同的网络化版本。该设备可以包括一个或多个处理器(CPU)、输入/输出接口、网络接口和/或存储器。
应该注意的是,此处的关系术语例如“第一”和“第二”仅用于将实体或操作与另一个实体或操作区分开来,并不要求或暗示这些实体或操作之间的任何实际关系或顺序。此外,“包括”、“具有”、“包含”和“含有”以及其它类似的词语在含义上等同,并且是开放式的,因为紧随其中任何一个词语之后的一个或多个条目并不意味着是这个条目或这些条目的详尽清单,或意味着仅限于所列的这个条目或这些条目。
如本文所用,除非另有特别说明,术语“或”包括所有可能的组合,除非在不可行的情况下。例如,如果声明数据库可以包括A或B,那么,除非另有明确说明或不可行,该数据库可以包括A,或B,或A和B。作为另一个例子,如果声明数据库可以包括A、B或C,那么,除非另有明确说明或不可行,否则数据库可以包括A、B、C、A和B、A和C、B和C、A和B和C。
可以理解的是,上述描述的实施例可以通过硬件或软件(程序代码)或硬件和软件的组合来实现。如果通过软件实现,则可以存储在上述计算机可读介质中。该软件在由处理器执行时可以执行所公开的方法。本公开中描述的计算单元和其它功能单元可以通过硬件或软件或硬件和软件的组合来实现。本领域普通技术人员还将理解,上述多个模块/单元可以组合为一个模块/单元,并且上述每个模块/单元可以进一步划分为多个子模块/子单元。
在前述说明书中,已经参考了许多具体细节来描述实施例,这些细节可以因实现而异。可以对所描述的实施例进行某些调整和修改。对于本领域技术人员来说,其它实施例可以从考虑本文公开的本发明的说明书和实践中显而易见。本文旨在将说明书和实施例仅视为示例性,其真正的范围和本质由以下权利要求表示。图中所示的步骤顺序仅用于说明目的,并不限于任何特定的步骤顺序。因此,本领域技术人员可以理解,这些步骤可以在实现相同方法的同时以不同的顺序执行。
在附图和说明书中,已经公开了示例性实施例。然而,可以对这些实施例进行许多变化和修改。因此,虽然使用了特定的术语,但它们仅用于一般和描述性意义,而不是为了限制目的。

Claims (20)

1.一种用于跨分量样值偏移补偿的视频数据处理方法,包括:
根据图像中色度样本的垂直坐标确定索引;
根据所述索引确定亮度样本;
根据与所述亮度样本相关的重建值对所述色度样本进行分类;
根据所述分类确定偏移量;和
将所述偏移量添加到与所述色度样本关联的重建值。
2.根据权利要求1所述的方法,其特征在于,所述索引由以下获得:
index=(y%H)>=H–n?(H–y–1)∶0
其中y是所述图像内所述色度样本的垂直坐标,H是与编码树单元相关联的高度,n是正整数。
3.根据权利要求2所述的方法,其特征在于,所述n等于4。
4.根据权利要求1所述的方法,其特征在于,在根据所述索引确定所述亮度样本时,该方法还包括:
根据所述色度样本的水平坐标和要使用的分类方法确定所述亮度样本的水平坐标;
根据所述色度样本的垂直坐标、所述要使用的分类方法和所述索引确定所述亮度样本的垂直坐标;以及
根据所述亮度样本的水平坐标和所述亮度样本的垂直坐标确定所述亮度样本。
5.根据权利要求4所述的方法,其特征在于,在确定所述亮度样本的垂直坐标时,该方法还包括:
根据所述要使用的分类方法,确定与所述色度样本垂直坐标相关的三个值中的第一垂直坐标;
基于所述第一垂直坐标和所述索引确定所述亮度样本的垂直坐标,其中
响应于所述索引等于0,将所述亮度样本的垂直坐标设置为所述第一垂直坐标;以及
响应于所述索引大于0,确定一第二垂直坐标,所述第二垂直坐标与编码树单元(CTU)水平边界上方的第4行相关联,
当所述第一垂直坐标与所述CTU水平边界之间的距离小于或等于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第一垂直坐标,或者
当所述第一垂直坐标与所述CTU水平边界之间的距离大于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第二垂直坐标。
6.根据权利要求4所述的方法,其中,通过一标志指示所述要使用的分类方法。
7.根据权利要求1所述的方法,其特征在于,在基于所述分类确定偏移量时,该方法还包括:
基于所述索引确定所述偏移量,其中
响应于所述索引等于0,基于所述分类确定所述偏移量;以及
响应于所述索引大于0,所述偏移量设置为0。
8.一种用于执行视频数据处理的装置,该装置包括:
存储器,所述存储器用于存储一组指令;和
一个或多个处理器,所述一个或多个处理器被配置为执行所述一组指令以使装置执行:
根据图像中色度样本的垂直坐标确定索引;
根据所述索引确定亮度样本;
根据与所述亮度样本相关的重建值对所述色度样本进行分类;
根据所述分类确定偏移量;和
将所述偏移量添加到与所述色度样本关联的重建值。
9.根据权利要求8所述的装置,其特征在于,所述索引由以下获得:
index=(y%H)>=H–n?(H–y–1)∶0
其中y是所述图像内所述色度样本的垂直坐标,H是与编码树单元相关联的高度,n是正整数。
10.根据权利要求9所述的装置,其中所述n等于4。
11.根据权利要求8所述的装置,其特征在于,在基于所述索引确定是亮度样本时,所述一个或多个处理器还被配置成执行所述一组指令以使所述装置执行:
根据所述色度样本的水平坐标和要使用的分类方法确定所述亮度样本的水平坐标;
根据所述色度样本的垂直坐标、所述要使用的分类方法和所述索引确定所述亮度样本的垂直坐标;和
根据所述亮度样本的水平坐标和所述亮度样本的垂直坐标确定所述亮度样本。
12.根据权利要求11所述的装置,其中,在确定所述亮度样本的垂直坐标时,所述一个或多个处理器还被配置成执行所述一组指令以使所述装置执行:
根据所述要使用的分类方法,确定与所述色度样本垂直坐标相关的三个值中的第一垂直坐标;
基于所述第一垂直坐标和所述索引确定所述亮度样本的垂直坐标,其中
响应所述索引等于0,将所述亮度样本的垂直坐标设置为所述第一垂直坐标;和
响应所述索引大于0,确定一第二垂直坐标,所述第二垂直坐标与编码树单元(CTU)水平边界上方的第4行相关联,
当所述第一垂直坐标与所述CTU水平边界之间的距离小于或等于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第一垂直坐标,并且
当所述第一垂直坐标与所述CTU水平边界之间的距离大于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第二垂直坐标。
13.根据权利要求11所述的装置,其中通过一标志指示所述要使用的分类方法。
14.根据权利要求8所述的装置,其中,在基于所述分类确定偏移量时,所述一个或多个处理器还被配置成执行所述一组指令以使所述装置执行:
基于所述索引确定所述偏移量,其中
响应于所述索引等于0,基于所述分类确定所述偏移量;和
响应于所述索引大于0,所述偏移量设置为0。
15.一种非暂时性计算机可读介质,其存储一组指令,该一组指令可由设备的一个或多个处理器执行,以使所述设备启动用于执行视频数据处理的方法,该方法包括:
根据图像中色度样本的垂直坐标确定索引;
根据所述索引确定亮度样本;
根据与所述亮度样本相关的重建值对所述色度样本进行分类;
根据所述分类确定偏移量;和
将所述偏移量添加到与所述色度样本关联的重建值。
16.根据权利要求15所述的非暂时性计算机可读介质,其特征在于,所述索引由以下途径获得:
index=(y%H)>=H–n?(H–y–1)∶0
其中y是所述图像内所述色度样本的垂直坐标,H是与编码树单元相关联的高度,n是正整数。
17.根据权利要求16所述的非暂时性计算机可读介质,其中所述n等于4。
18.根据权利要求15所述的非暂时性计算机可读介质,其中,所述一组指令可由设备的一个或多个处理器执行,以引起该设备进一步执行:
根据所述色度样本的水平坐标和要使用的分类方法确定所述亮度样本的水平坐标;
根据所述色度样本的垂直坐标、所述要使用的分类方法和所述索引确定所述亮度样本的垂直坐标;和
根据所述亮度样本的水平坐标和所述亮度样本的垂直坐标确定所述亮度样本。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,所述一组指令可由设备的一个或多个处理器执行,以引起该设备进一步执行:
根据所述要使用的分类方法,确定与所述色度样本垂直坐标相关的三个值中的第一垂直坐标;
基于所述第一垂直坐标和所述索引确定所述亮度样本的垂直坐标,其中
响应于所述索引等于0,将所述亮度样本的垂直坐标设置为所述第一垂直坐标;和
响应于所述索引大于0,确定第二垂直坐标,所述第二垂直坐标与编码树单元(CTU)水平边界上方的第4行相关联,
当所述第一垂直坐标与所述CTU水平边界之间的距离小于或等于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第一垂直坐标,并且
当所述第一垂直坐标与所述CTU水平边界之间的距离大于所述第二垂直坐标与所述CTU水平边界之间的距离时,所述亮度样本的垂直坐标设置为所述第二垂直坐标。
20.根据权利要求15所述的非暂时性计算机可读介质,其中,所述一组指令可由设备的一个或多个处理器执行,以引起该设备进一步执行:
基于所述索引确定所述偏移量,其中
响应于所述索引等于0,根据所述分类确定所述偏移量;和
响应于所述索引大于0,所述偏移量设置为0。
CN202280014517.9A 2021-03-14 2022-02-22 用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可读介质 Pending CN116918333A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163160864P 2021-03-14 2021-03-14
US63/160,864 2021-03-14
US17/651,338 2022-02-16
US17/651,338 US11849117B2 (en) 2021-03-14 2022-02-16 Methods, apparatus, and non-transitory computer readable medium for cross-component sample adaptive offset
PCT/CN2022/077333 WO2022193917A1 (en) 2021-03-14 2022-02-22 Methods, apparatus, and non-transitory computer readable medium for cross-component sample adaptive offset

Publications (1)

Publication Number Publication Date
CN116918333A true CN116918333A (zh) 2023-10-20

Family

ID=83195365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280014517.9A Pending CN116918333A (zh) 2021-03-14 2022-02-22 用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可读介质

Country Status (3)

Country Link
US (2) US11849117B2 (zh)
CN (1) CN116918333A (zh)
WO (1) WO2022193917A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11425405B2 (en) * 2019-11-15 2022-08-23 Qualcomm Incorporated Cross-component adaptive loop filter in video coding
US11849117B2 (en) 2021-03-14 2023-12-19 Alibaba (China) Co., Ltd. Methods, apparatus, and non-transitory computer readable medium for cross-component sample adaptive offset

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103535035B (zh) 2011-05-16 2017-03-15 寰发股份有限公司 用于亮度和色度分量的样本自适应偏移的方法和装置
JP6328759B2 (ja) 2013-07-15 2018-05-23 寰發股▲ふん▼有限公司HFI Innovation Inc. ビデオ符号化のサンプル適応オフセット処理の方法
JP6159225B2 (ja) 2013-10-29 2017-07-05 日本電信電話株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム及び画像復号プログラム
WO2019154817A1 (en) 2018-02-09 2019-08-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Adaptive in-loop filter with multiple feature-based classifications
WO2021025168A1 (en) 2019-08-08 2021-02-11 Panasonic Intellectual Property Corporation Of America System and method for video coding
EP4285591A1 (en) * 2021-02-01 2023-12-06 Beijing Dajia Internet Information Technology Co., Ltd. Chroma coding enhancement in cross-component sample adaptive offset
US11849117B2 (en) 2021-03-14 2023-12-19 Alibaba (China) Co., Ltd. Methods, apparatus, and non-transitory computer readable medium for cross-component sample adaptive offset

Also Published As

Publication number Publication date
US11849117B2 (en) 2023-12-19
WO2022193917A1 (en) 2022-09-22
US20220295069A1 (en) 2022-09-15
US20240080448A1 (en) 2024-03-07

Similar Documents

Publication Publication Date Title
US20240080448A1 (en) Methods, apparatus, and non-transitory computer readable medium for cross-component sample adaptive offset
WO2021138143A1 (en) Methods for signaling virtual boundaries and wrap-around motion compensation
US20230362384A1 (en) Methods and systems for cross-component sample adaptive offset
CN117897952A (zh) 用于执行组合帧间和帧内预测的方法和系统
US11509921B2 (en) High level syntax control of loop filter
CN116405677B (zh) 用于在调色板模式下对视频数据进行编码的方法和装置
CN116506635B (zh) 用于对图像执行逐步解码刷新处理的方法和系统
US20220182617A1 (en) Method for using adaptive loop filter and system thereof
CN118044184A (zh) 用于执行组合帧间预测和帧内预测的方法和系统
CN114902670B (zh) 用信号通知子图像划分信息的方法和装置
CN115552900A (zh) 用信号通知最大变换大小和残差编码的方法
JP2022548204A (ja) 変換スキップモードで映像データを符号化するための方法及び装置
CN115428455A (zh) 调色板预测方法
CN115398897B (zh) 用于导出时间运动信息的方法和装置
US12003751B2 (en) High level syntax control of loop filter
US20210084293A1 (en) Method and apparatus for coding video data
EP4364413A2 (en) Methods and systems for cross-component adaptive loop filter
CN117941351A (zh) 跨分量自适应环路滤波器的方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination