CN115552897A - 采用变换跳过模式编码视频数据的方法和设备 - Google Patents

采用变换跳过模式编码视频数据的方法和设备 Download PDF

Info

Publication number
CN115552897A
CN115552897A CN202080064527.4A CN202080064527A CN115552897A CN 115552897 A CN115552897 A CN 115552897A CN 202080064527 A CN202080064527 A CN 202080064527A CN 115552897 A CN115552897 A CN 115552897A
Authority
CN
China
Prior art keywords
transform
prediction
size
value
maximum
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
CN202080064527.4A
Other languages
English (en)
Inventor
穆罕默德·G·萨维尔
廖如伶
罗健聪
叶琰
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 Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN115552897A publication Critical patent/CN115552897A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

一种用于视频处理的方法和装置,包括:基于预测块的最大变换大小,确定跳过对预测残差的变换过程;并在序列参数集(SPS)中用信号表示所述最大变换大小。

Description

采用变换跳过模式编码视频数据的方法和设备
相关应用的交叉引用
本申请要求于2019年9月12日提交的申请号为62/899,738的美国临时申请和2019年9月24日提交的申请号为62/904,880的美国临时申请的优先权,该两份申请均以引用方式并入本申请。
背景技术
视频是捕捉视觉信息的一组静态图片(或“帧”)。为了减少存储内存和传输带宽,可以在存储或传输之前对视频进行压缩,并在显示之前解压缩。压缩过程通常称为编码,解压缩过程通常称为解码。目前有多种采用标准化视频编码技术的视频编码格式,最常见的是基于预测、变换、量化、熵编码和环路内滤波的视频编码格式。规定了具体的视频编码格式的视频编码标准,如高效视频编码(HEVC/H.265)标准、通用视频编码(VVC/H.266)标准、AVS标准等,是由标准化组织制定。随着越来越多的先进视频编码技术在视频标准中被采用,新的视频编码标准的编码效率也越来越高。
发明内容
本申请实施例提供了一种视频处理方法和装置。在一个示例实施例中,一种方法包括:基于预测块的最大变换大小,确定跳过预测残差的变换过程;以及在序列参数集(SPS)中用信号表示所述最大变换大小。
在另一个实施例中,一种装置包括被配置为存储指令的存储器和被配置为以使该装置执行如下指令的处理器:基于预测块的最大变换大小,确定跳过预测残差的变换过程;以及在序列参数集(SPS)中用信号表示所述最大变换大小。
在另一示例实施例中,一种非暂时性计算机可读介质存储一组指令,该指令集可由装置的至少一个处理器执行,以使该装置执行一种方法。所述方法包括:基于预测块的最大变换大小,确定跳过预测残差的变换过程;以及在序列参数集(SPS)中用信号表示所述最大变换大小。
在另一示例实施例中,一种方法包括:接收视频序列的码流;基于所述视频序列的序列参数集(SPS)确定预测块的最大变换大小;基于所述最大变换大小,确定跳过对所述预测块的预测残差的变换过程。
在另一个实施例中,一种装置包括被配置为存储指令的存储器和被配置为以使该装置执行如下指令的处理器:接收视频序列的码流;基于所述视频序列的序列参数集(SPS),确定预测块的最大变换大小;基于所述最大变换大小,确定跳过对所述预测块的预测残差的变换过程。
在另一个示例实施例中,一种非暂时性计算机可读介质存储一组指令,该指令集可由装置的至少一个处理器执行,以使该装置执行一种方法。所述方法包括:接收视频序列的码流;基于所述视频序列的序列参数集(SPS),确定预测块的最大变换大小;基于所述最大变换大小,确定跳过对所述预测块的预测残差的变换过程。
附图说明
本申请的实施例和各个方面在以下详细描述和附图中示出。图中所示的各种特征未按比例绘制。
图1是根据本申请的一些实施例的示例视频序列结构的示意图。
图2A示出了与本申请的实施例一致的混合视频编码系统的示例编码过程的示意图。
图2B示出了与本申请实施例一致的混合视频编码系统的另一示例编码过程的示意图。
图3A示出了与本申请实施例一致的混合视频编码系统的示例解码过程的示意图。
图3B示出了与本申请实施例一致的混合视频编码系统的另一示例解码过程的示意图。
图4示出了根据本申请的一些实施例的用于对视频进行编码或解码的示例装置的框图。
图5示出了根据本申请的一些实施例的序列参数集(SPS)的示例语法结构的表1。
图6示出了根据本申请的一些实施例的序列参数集(SPS)的示例语法结构的表2。
图7示出了根据本申请的一些实施例的变换单元的示例句法结构的表3。
图8示出了根据本申请的一些实施例的与发送分组差分脉冲编码调制(BDPCM)模式有关的示例句法结构图。
图9示出了根据本申请的一些实施例的SPS的另一示例语法结构的表5。
图10示出了根据本申请的一些实施例的示出变换单元的另一示例语法结构的表6。
图11是根据本申请的一些实施例的64×64变换块(TB)的示例对角线扫描的示意图。
图12A-12D示出了根据本申请的一些实施例的示例残余单元(RU)。
图13是示出根据本申请的一些实施例的64×64TB的对角线扫描示例的示意图,其中TB被划分为四个32×32RU。
图14A-14D示出了根据一些实施例的表7,其示出了当TB被划分为RU时用于残差编码的示例语法结构图
图15A-15D示出了根据本申请的一些实施例的表8,其示出用于残差译码的另一示例语法结构。
图16示出了根据本申请的一些实施例的表9,其示出从色度格式导出的示例参数值的表9。
图17示出了根据本申请的一些实施例的表10,其示出了用于执行逆电平映射的残差编码的示例语法结构通用视频编码草案6。
图18是根据本申请的一些实施例的示例解码方法的流程图。
图19示出了根据本申请的一些实施例的表11,其示出了在不执行逆电平映射的情况下用于残差译码的示例语法结构图。
图20示出了根据本申请的一些实施例的表12,其示出了用于选择赖斯参数的示例查找表。
图21示出了根据本申请的一些实施例的用于视频处理的示例过程的流程图。
图22图示了根据本申请的一些实施例的用于视频处理的另一个示例过程的流程图。
具体实施方式
现在可以详细参考示例实施例,其示例如附图所示。以下描述参考附图,其中不同附图中相同的数字表示相同或相似的元件,除非另有说明。以下示例实施例的描述中阐述的实施方式并不代表与本申请一致的所有实施方式。相反,它们仅仅是与所附权利要求中所述的与本申请相关的方面一致的装置和方法的示例。下文更详细地描述了本申请的特定方面。如果与通过引用并入的术语和/或定义相冲突,则以本文提供的术语和定义为准。
ITU-T视频编码专家组(ITU-T VCEG)和ISO/IEC运动图像专家组(ISO/IEC MPEG)的联合视频专家组(JVET)目前正在开发通用视频编码(VVC/H.266)标准。VVC标准旨在将其前身高效视频编码(HEVC/H.265)标准的压缩效率提高一倍。换句话说,VVC的目标是使用一半的带宽实现与HEVC/H.265相同的主观质量。
为了使用一半带宽实现与HEVC/H.265相同的主观质量,JVET一直在使用联合探索模型(JEM)参考软件开发HEVC之外的技术。随着编码技术被纳入JEM,JEM实现了比HEVC更高的编码性能。
VVC标准是最近开发的,并且继续包括提供更好压缩性能的更多编码技术。VVC基于与现代视频压缩标准(如HEVC、H.264/AVC、MPEG2、H.263等)中使用的相同的混合视频编码系统。
视频是按时间序列排列以存储视觉信息的一组静态图片(或“帧”)。视频捕获设备(例如,相机)可用于按时间顺序捕获和存储这些图片,并且视频播放设备(例如,电视、计算机、智能手机、平板电脑、视频播放器或任何具有显示功能的终端用户终端)可用于按时间顺序显示此类图片。此外,在一些应用中,视频捕获设备可以实时地将捕获的视频传输到视频播放设备(例如,具有监视器的计算机),例如用于监控、会议或直播。
为了减少此类应用所需的存储空间和传输带宽,可以在存储和传输之前对视频进行压缩,并在显示之前对其进行解压缩。压缩和解压缩可以通过处理器(例如,通用计算机的处理器)或专用硬件执行的软件来实现。用于压缩的模块通常称为“编码器”,用于解压的模块通常称为“解码器”。编码器和解码器可以统称为“编解码器”。编码器和解码器可以被实现为多种合适的硬件、软件或其组合中的任何一种。例如,编码器和解码器的硬件实现可以包括电路,例如一个或多个微处理器、数字信号处理器(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”)。图片中的基本处理单元可以有不同的尺寸,例如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”)。基本处理子单元可以具有与基本处理单元相同或更小的尺寸。与基本处理单元类似,基本处理子单元也是逻辑单元,其可以包括存储在计算机存储器(例如,在视频帧缓冲区中)。对基本处理子单元执行的任何操作都可以对其每个亮度和色度分量重复执行。应该注意的是,可以根据处理需要将这种划分执行到更进一步的层级。还需要注意的是,不同的阶段可以使用不同的方案来划分基本处理单元。
例如,在模式决定阶段(其示例在图2B中示出),编码器可以决定为一个基本处理单元使用何种预测模式(例如,图片内预测或图片间预测),而该基本处理单元可能太大而无法做出这样的决策。编码器可以将基本处理单元拆分为多个基本处理子单元(例如,H.265/HEVC或H.266/VVC中的CU),并为每个单独的基本处理子单元确定预测类型。
对于另一示例,在预测阶段(其示例在图2A-2B中示出),编码器可以在基本处理子单元(例如,CU)的层级执行预测操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元拆分为更小的片段(例如,在H.265/HEVC或H.266/VVC中称为“预测块”或“PB”),在该段的层级上可以执行预测操作。
对于另一示例,在变换阶段(其示例在图2A-2B中示出),编码器可以对残差基本处理子单元(例如,CU)执行变换操作。但是,在某些情况下,这些基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元分割成更小的片段(例如,在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提供了两种类型的区域;“切片”和“拼贴”。还应注意,视频序列100的不同图片可以具有用于将图片划分为区域的不同划分方案。
例如,在图1中,结构110被划分为三个区域114、116和118,其边界在结构110内部显示为实线。区域114包括四个基本处理单元。区域116和118中的每一个都包括六个基本处理单元。应当注意的是,图1中的结构110的基本处理单元、基本处理子单元和区域仅是示例,并且本申请不限制其实施。
图2A示出了与本申的实施例一致的示例编码过程200A的示意图。例如,编码过程200A可以由编码器执行。如图2A所示,编码器可以根据编码过程200A将视频序列202编码成视频码流228。类似于图1中的视频序列100,视频序列202可以包括按时间顺序排列的一组图片(称为“原始图片”)。类似于图1中的结构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,以生成视频码流228。组件202、204、206、208、210、212、214、216、226和228可以称为“前向路径”。在过程200A期间,在量化阶段214之后,编码器可以将量化变换系数216输入到逆量化阶段218和逆变换阶段220,以生成重构残差BPU 222。编码器可以将重构残差BPU 222添加到预测BPU 208,以生成预测参考224,其在预测阶段204中用于过程200A的下一次迭代。过程200A的组件218、220、222和224可以被称为“重构路径”。重构路径可用于确保编码器和解码器都使用相同的参考数据进行预测。
编码器可以迭代地执行过程200A,以对原始图片的每个原始BPU(在前向路径中)进行编码,并且生成用于编码原始图片的下一个原始BPU(在重构路径中)的预测参考224。在对原始图片的所有原始BPU进行编码之后,编码器可以继续对视频序列202中的下一张图片进行编码。
参考过程200A,编码器可以接收由视频捕获设备(例如,相机)生成的视频序列202。此处使用的术语“接收”可以指接收、输入、获取、检索、获取、读取、访问或以任何方式用于输入数据的任何动作。
在预测阶段204,在当前迭代中,编码器可以接收原始BPU和预测参考224,并且执行预测操作以生成预测数据206和预测BPU 208。可以从过程200A的上一次迭代的重构路径生成预测参考224。预测阶段204的目的是通过从预测数据206和预测参考224提取可用于将原始BPU重构为预测BPU 208的预测数据206来减少信息冗余。
理想情况下,预测的BPU 208可以与原始BPU相同。然而,由于非理想的预测和重构操作,预测的BPU 208通常与原始BPU略有不同。为了记录这种差异,在生成预测的BPU 208之后,编码器可以从原始BPU中减去它,以生成残差BPU 210。例如,编码器可以从预测的BPU208对应的像素的值(例如,灰度值或RGB值)中减去原始BPU对应像素的值。残差BPU 210的每个像素可以具有作为原始BPU和预测BPU 208的对应像素之间的这种相减结果的残差值。与原始BPU相比,预测数据206和残差BPU 210可以具有更少的比特,但是它们可用于重构原始BPU而不会显着降低质量,从而对原始BPU进行压缩。
为了进一步压缩残余BPU 210,在变换阶段212中,编码器可以通过将残余BPU 210分解为一组二维“基本模式”来减少其空间冗余,每个基本模式与“变换系数”相关联。基本模式可以具有相同的大小(例如,剩余BPU 210的大小)。每个基本模式可以表示残差BPU210的变化频率(例如,亮度变化的频率)分量。任何基本模式都不能从任何其他基本模式的任何组合(例如,线性组合)中再现。换言之,所述分解可以将残差BPU 210的变化分解成频域。这种分解类似于函数的离散傅里叶变换,其中基本模式类似于离散傅里叶变换的基函数(例如,三角函数),并且变换系数类似于与基函数相关的系数。
不同的变换算法可以使用不同的基本模式。在变换阶段212中,可以使用各种变换算法,例如离散余弦变换、离散正弦变换等。在变换阶段212的变换是可逆的。也就是说,编码器可以通过变换的逆运算(称为“逆变换”)来恢复残差BPU 210。例如,为了恢复残差BPU210的像素,逆变换可以是将基本模式的对应像素的值乘以相应的相关系数,并且将乘积相加以产生加权和。对于视频编码标准,编码器和解码器都可以使用相同的变换算法(因此基本模式相同)。因此,编码器可以仅记录变换系数,解码器可以从变换系数重构残差BPU210,而无需从编码器接收基本模式。与残差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的示意图。可以从过程200A修改过程200B。例如,过程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 222添加到预测的BPU 208以生成重构的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(例如,其中所有BPU已被编码和重构的当前图片)之后,编码器可以将预测参考224输入到环路滤波器阶段232,此时,编码器可以将环路滤波器应用于预测参考224,以减少或消除由帧间预测引入的失真(例如,块效应)。编码器可以在环路滤波器阶段232应用各种环路滤波器技术,例如去块、采样自适应偏移、自适应环路滤波器等。环路滤波的参考图片可以存储在缓冲器234(或“解码的图片缓冲器”)中以供以后使用(例如,用作视频序列202的未来图片的帧间预测参考图片)。编码器可以将一个或多个参考图片存储在缓冲器234中以在时间预测阶段2044使用。在一些实施例中,编码器可以在二进制编码阶段226编码环路滤波器的参数(例如,环路滤波器强度),以及量化变换系数216、预测数据206和其他信息。
图3A示出了与本申请的实施例一致的示例解码过程300A的示意图。过程300A可以是对应于图2中的压缩过程200A的解压缩过程。在一些实施例中,过程300A可以类似于过程200A的重构路径。解码器可以根据过程300A将视频码流228解码成视频流304。视频流304可以与视频序列202非常相似。然而,由于压缩和解压缩过程中的信息丢失(例如,图2A-2B中的量化阶段214),通常,视频流304与视频序列202不同。类似于图2A-2B中的过程200A和200B,解码器可以在基本处理单元(BPU)层级对视频码流228中编码的每个图片执行过程300A。例如,解码器可以以迭代方式执行过程300A,其中解码器可以在解码过程300A的一次迭代中解码基本处理单元。在一些实施例中,解码器可以对视频码流228中编码的每个图片的区域(例如,区域114-118)并行执行过程300A。
在图A中,所述解码器可以将与编码图片的基本处理单元(称为“编码BPU”)相关联的视频码流228的一部分输入到二进制解码阶段302。在二进制解码阶段302,解码器可以将该部分解码为预测数据206和量化变换系数216。所述解码器可以将量化变换系数216输入到逆量化阶段218和逆变换阶段220以生成重构的残差BPU 222。解码器可以将预测数据206输入到预测阶段204以生成预测的BPU 208.解码器可以将重构的残差BPU 222添加到预测的BPU 208以生成预测的参考224。在一些实施例中,可以将预测的参考224存储在缓冲器中(例如,计算机存储器中的解码图片缓冲器)。解码器可以将预测参考224输入到预测阶段204,用于在过程300A的下一次迭代中执行预测操作。
解码器可以迭代地执行过程300A,以解码编码图片的每个编码BPU,并且生成用于对编码图片的下一个编码BPU进行编码的预测参考224。在对编码图片的所有编码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)。如果当前BPU在时间预测阶段2044使用帧间预测被解码,则在生成预测参考224(例如,其中所有BPU已被解码的参考图片)之后,编码器可以将预测参考224输入到环路滤波器阶段232,以减少或消除失真(例如,块状伪影)。解码器可以以图2B中描述的方式将环路滤波器应用于预测参考224。环路滤波的参考图片可以存储在缓冲器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等)。
在量化和逆量化功能块(例如,图2A或图2B的量化214和逆量化218,图3A或图3B的逆量化218)中,使用量化参数(QP)确定应用于预测残差的量化(和逆量化)量。例如,使用图片参数集(PPS)中的init_QP_minus26语法元素和切片头中的slice_QP_delta语法元素,可以在高层级上发送用于图片编码或切片编码的初始QP值。此外,可以使用以量化组的粒度发送的增量QP值,在本地层级为每个CU调整QP值。
在通用视频编码草案6(“VVC 6”)中,视频数据的变换块(TB)的残差可以用跳过变换阶段的变换跳过(TS)模式来编码。例如,解码器可以通过对视频数据进行解码,以获得残差,从而使用TS模式对视频数据进行解码,然后在不进行逆变换的情况下进行逆量化和重构。VVC 6通过最大块的大小来限制TS模式的适用性,其中TS模式仅适用于TB的宽度和高度最多为32像素的TB。这种应用TS模式的最大块的大小可以被指定为图片参数集(PPS)级语法,log2_transform_skip_max_size_minus2(变换跳过参数),其取值范围为0到3。当不存在时,推断log2_transform_skip_max_size_minus2(变换跳过参数)的值为0。限制TS模式的最大块的宽度或高度的最大值MaxTsSize(最大变换大小)可根据公式(1)确定:
MaxTsSize = 1 << ( log2_transform_skip_max_size_minus2 + 2 ) 公式1
换言之,当log2_transform_skip_max_size_minus2(变换跳过参数)为0时,如果TB宽度和高度最多为4,则可以允许TS模式。在VVC 6的当前设计中,MaxTsSize的最大允许值为32,因为log2_transform_skip_max_size_minus2(变换跳过参数)的最大允许值为3。如果TB的宽度和高度最大为MaxTsSize,则可以发送一个参数transform_skip_flag(变换跳过标识),用于指定是否选择TS模式。如果TB的宽度或高度大于32,则该TB不允许使用TS模式。
在VVC 6中,使用大小为4×4的非重叠系数组(CG)对TS模式的残留量进行编码。CG的变换跳跃系数层级在扫描位置上的三次遍历中进行编码。
第一次遍历可以由以下伪代码表示:
for(n=0;n<=numSbCoeff-1;n++)
if(remainingCtxBin>0)decode sig_coeff_flag(context)
else by-pass decoding of sig_coeff_flag(by-pass)
if(remainingCtxBin>0)decode coeff_sign_flag(context)
else by-pass decoding of coeff_sign_flag(by-pass)
if(remainingCtxBin>0)decode abs_level_gtx_flag[0](context)
else by-pass decoding of abs_level_gtx_flag[0](by-pass)
if(remainingCtxBin>0)decode par_level_flag(context)
else by-pass decoding of par_level_flag(by-pass)
第二次遍历可以由以下伪代码表示:
for(n=0;n<=numSbCoeff-1;n++)
if(remainingCtxBin>0)decode abs_level_gtx_flag[1](context)
else by-pass decoding of abs_level_gtx_flag[1](by-pass)
if(remainingCtxBin>0)decode abs_level_gtx_flag[2](context)
else by-pass decoding of abs_level_gtx_flag[2](by-pass)
if(remainingCtxBin>0)decode abs_level_gtx_flag[3](context)
if(remainingCtxBin>0)decode abs_level_gtx_flag[4](context)
else by-pass decoding of abs_level_gtx_flag[4](by-pass)
第三次遍历可以由以下伪代码表示:
for(n=0;n<=numSbCoeff-1;n++)
rice=cctx.templateAbsSumTS(n,coeff);
decode abs_remainder_using_RG_Coding
在以上描述中,用于残差编码的TS模式中的语法元素(称为“TS残差编码”)可以使用上下文编码(标记为“上下文”)或旁路编码(标记为“旁路”)。
在一些实施例中,可以采用称为“层级映射”的编码工具进行TS残差编码。绝对系数层级参数absCoeffLevel可以映射到一个修改后的层级,该层级要根据量化剩余样本的值进行编码,量化剩余样本位于当前剩余样本左侧和上方。令X0表示当前系数左侧的绝对系数层级,令X1表示当前系数上方的绝对系数层级。为了用绝对系数层级(“absCoeff”)表示系数,可以对映射参数absCoeffMod进行编码。absCoeffMod可以通过以下伪代码表示的方式导出:
pred=max(X0,X1);
if(absCoeff==pred)
{
absCoeffMod=1;
}
else
{
absCoeffMod=(absCoeff<pred)?absCoeff+1:absCoeff;
}
TS模式的当前设计中存在若干挑战。在VVC 6中,TS模式是一种编码工具,可以在选择适当的量化参数值和关闭环路滤波器阶段这两种条件下实现对块的数学无损压缩。由于VVC 6不允许宽度或高度大于32的TB使用TS模式,因此VVC 6中的当前设计无法在TB宽度或高度大于32时实现块的数学无损压缩。
此外,新采用的层级映射过程显着影响上下文自适应二进制算术编码(CABAC)的吞吐量,因为对于每个系数层级,解码器需要从顶部和左侧计算预测值。由于Rice参数的推导过程取决于实际层级,因此涉及逆映射的实际层级的计算需要在CABAC解析循环中实现。这种解析和层级解码的交错方式是不可取的,因为它会降低解码器硬件实现的吞吐量。
在VVC 6中,除了如上所述的log2_transform_skip_max_size_minus2(变换跳过参数)之外,另一个序列参数集(SPS)层级标识sps_max_luma_transform_size_64_flag可以指定亮度样本中的最大TB大小。当sps_max_luma_transform_size_64_flag等于1时,亮度样本中最大TB大小等于64。当sps_max_luma_transform_size_64_flag等于0时,亮度样本中最大TB大小等于32。当一个编码树单元的亮度编码树块大小(CTU)小于64,sps_max_luma_transform_size_64_flag的值等于0。根据sps_max_luma_transform_size_64_flag,可以基于公式(2)和(3)推导出参数MaxTbLog2SizeY和最大TB大小MaxTbSizeY:
MaxTbLog2SizeY=sps_max_luma_transform_size_64_flag?6∶5 公式2
MaxTbSizeY=1<<MaxTbLog2SizeY 公式3
基于公式(2)到(3),PPS层级语法的最大值log2_transform_skip_max_size_minus2(变换跳过参数)可以取决于SPS层级标识sps_max_luma_transform_size_64_flag。log2_transform_skip_max_size_minus2指定TS模式使用的最大块的大小,其值可以在0到(3+sps_max_luma_transform_size_64_flag)的范围内。可以配置编码器以确保log2_transform_skip_max_size_minus2的值在允许的范围内。当不存在时,log2_transform_skip_max_size_minus2的值可以推断为0。可以使用公(1)式确定允许的最大MaxTsSize。如果TB的宽度和高度小于MaxTsSize,则可以允许TS模式对TB进行编码。
从以上描述可以看出,在VVC 6中,只有当sps_transform_skip_enabled_flag为1时,才会发出log2_transform_skip_max_size_Mins2信号。sps_transform_skip_enabled_flag等于0表示transform_skip_flag不存在于transform unit(变换单元)语法中。因此,当sps_transform_skip_enabled_flag为0时,不需要发送log2_transform_skip_max_size_minus2信号。目前VVC 6中的这种信令存在解析SPS和PPS依赖关系的问题。上述实施例同样存在解析PPS语法log2_transform_skip_max_size_minus2和SPS语法sps_max_luma_transform_size_64_flag之间的依赖关系的问题。这种解析依赖通常是不可取的。
本申请实施例针对上述技术问题提供了技术方案。为了实现对大TB使用TS模式的无损压缩,本申请提供了TS模式可以被扩展以应用于TB大小,直到编码视频序列所允许的最大TB大小的实施例。对于TS残差编码,也提供了不同的系数扫描方法。
与本申请的一些实施例一致,为了去除SPS和PPS之间的解析依赖关系,可以将log2_transform_skip_max_size_minus2从PPS移动到SPS。举例来说,图5示出了表1,其示出了根据本公开的一些实施例的序列参数集(SPS)的示例语法结构。图6示出了表2,其示出了根据本申请的一些实施例的图片参数集(SPS)的示例语法结构。表1和表2显示,log2_transform_skip_max_size_minus2从PPS移动到SPS,如表1的第502行和表2中的第602-604行所示。
与本申请的一些实施例一致,应用TS模式的块的最大块的大小可以被设置为最大TB大小(MaxTbSizeY),在这种情况下,log2_transform_skip_max_size_minus2不发信号通知。这样做,如果TB的宽度和高度小于或等于MaxTbSizeY,则可以允许TS模式。在一些实施例中,MaxTbSizeY可以基于公式(2)至(3)进行确定。
作为示例,图7示出了表3,该表显示了根据本公开的一些实施例的变换单元的示例语法结构。表3显示,根据变换单元的示例语法结构,TB的宽度和高度可以小于或等于最大值MaxTbSizeY(即,32),如第706行所示。通过这样做,因为应用TS模式的最大块的大小与MaxTbSizeY相同,所以所有TB都可以允许TS模式,不需要额外检查判断一个TB的宽度和高度是否小于等于MaxTbSizeY,如第702-704行所示。应该注意的是,VVC 6还使用多重变换选择(MTS)方案对帧间和帧内编码块进行残差编码。MTS使用来自DCT8/DST7的多个选定变换。但是,在MTS编码期间,需要进行额外的检查,因为当tbWidth和tbHeight都小于或等于32时,MTS是允许的。
VVC 6提供了另一种编码工具,称为块差分脉冲编码调制(BDPCM)。在BDPCM模式中,水平和垂直差分脉冲编码调制(DPCM)应用于残差域,并跳过变换阶段。应用BDPCM模式的最大允许块宽度或高度与TS模式相同。
根据本申请的一些实施例,应用BDPCM模式的最大块的大小也可以扩展为应用TS模式的最大块的大小。通过这样做,如果编码单元(CU)的宽度和高度小于或等于MaxTbSizeY,则可以允许BDPCM模式。举例来说,图8示出了根据本申请的一些实施例的表4,其示出了与用信号发送块差分脉冲编码调制(BDPCM)模式有关的示例句法结构。表4显示了应用BDPCM模式的最大块的大小可以扩展为应用TS模式的最大块的大小,如第802行所示。
在一些情况下,log2_transform_skip_max_size_minus2(变换跳过参数)的允许值可以取决于编解码器的配置文件。例如,主配置文件可以指定log2_transform_skip_max_size_minus2的值可以与最大TB大小相同。任何表示log2_transform_skip_max_size_minus2值与最大TB大小不同的码流都可以被编解码器视为不合格码流。如果扩展配置文件超出了主配置文件的范围,log2_transform_skip_max_size_minus2的值可能与最大TB大小不同。
与本申请的一些实施例一致,本文提供了一些方法和语法结构,以确保log2_transform_skip_max_size_minus2的值始终与最大TB大小相同,例如通过不发信号通知log2_transform_skip_max_size_minus2并推断它与最大TB大小,或通过配置文件约束配置。通过这样做,可以减少解码器实现的负担,因为要测试的语法元素值的组合更少。
在一些实施例中,可以发信号通知SPS标识,以指示用于应用TS模式的最大块的大小是32或64。例如,发送SPS标识可以与发送最大TB大小信号的方式相同。举例来说,可以将sps_max_transform_skip_size_64_flag设置为0,以指定应用TS模式的最大块的大小为32。又例如,可以将sps_max_transform_skip_size_64_flag设置为1,以指定应用TS模式的最大块的大小为64。在一些实施例中,当没有发送sps_max_transform_skip_size_64_flag信号时,它的值可以被推断为0。
在一些实施例中,应用TS模式的最大块的大小可以基于公式4来确定:
Figure BDA0003545974230000221
在一些实施例中,如果sps_max_luma_transform_size_64_flag和sps_transform_skip_enabled_flag都等于1,则可以发送sps_max_transform_skip_size_64_flag信号。
作为示例,图9示出了表5,其示出了根据本申请的一些实施例的用于发送sps_max_transform_skip_size_64_flag信号的SPS的示例语法结构。图10示出了表6,其示出了根据本申请的一些实施例的用于发送sps_max_transform_skip_size_64_flag信号的变换单元的示例语法结构。表5和表6显示了信令sps_max_transform_skip_size_64_flag的实现,如表5的第902行和表6的第1002-1006行所示。
与本申请的一些实施例一致,因为应用TS模式或BDPCM模式的最大块的大小可以扩展为最大TB大小,所以TS模式或BDPCM模式下的残差编码也可以扩展为允许在其中编码最大TB大小。根据一些申请的实施例,可以直接扩展残差编码以允许高达最大TB大小,而不修改任何扫描模式。
在一些实施例中,类似于VVC草案6,可以将变换块划分为系数组(CG),并且可以执行对角线扫描。举例来说,图11是根据本申请的一些实施例的64×64变换块(TB)的示例对角线扫描的示意图。图11示出了64×64TB(例如,MaxTbSizeY=64)的对角线扫描模式(由锯齿形箭头线表示)。图11中的每个单元格可以表示4×4CG。应该注意的是,虽然图11示出了一个64×64的TB,以说明对角线扫描过程,但TB可以是任何大小或任何形状,并且不限于如本文所说明的示例。例如,当TB是矩形而不是正方形时,它只有一个尺寸等于64。
在残差编码中扫描整个TB(例如,图11的64×64TB)的一个挑战是,需要修改当前VVC残差编码以支持上述扩展,因为当前残差VVC中的编码仅支持最大32×32的块大小。在当前的VVC设计中,即使将变换应用于64×64TB(例如,在非跳过模式下),解码器仍可能需要仅将残差编码应用于表示64×64TB的左上32×32块的32×32系数块。在这种情况下,所有剩余的高频系数都被强制为零(因此不需要对剩余系数进行编码)。例如,对于M×N TB(M为块宽度,N为块高度),当M等于64时,只能对左边32列变换系数进行编码。类似地,当N等于64时,只能对变换系数的前32行进行编码。
与本申请的一些实施例一致,为了重用现有的VVC 6残差编码技术,可以将大的TB划分为小的残差单元(RU)。例如,如果TB的宽度大于32,则可以将TB水平拆分为2个分区。再例如,如果TB的高度大于32,则可以将TB垂直分割成2个分区。在另一示例中,如果TB的两个尺寸都大于32,则TB可以水平和垂直地分成四个RU。拆分后,可以对32×32RU进行编码。
作为示例,图12A-12D示出了根据本申请的一些实施例的示例残余单元(RU)。在图12A中,一个64×64TB被分成四个32×32RU(由虚线表示)。在图12B中,一个64×16TB被水平分成两个32×16Rus(由虚线表示)。在图12C中,一个32×64TB被垂直分成两个32×32Rus(用虚线表示)。在图12D中,由于高度和宽度均不大于32,因此不执行分割,RU大小与TB大小相同。在一些实施例中,最大允许的RU大小是32×32。
作为示例,图13是根据本申请的一些实施例的64×64TB的对角线扫描示例的示意图,其中TB被划分为四个32×32RU。在图13中,64×64TB被分成四个RU(由TB内的粗实线表示),并且按照与32×32TB的扫描模式相同的顺序在RU内单独(例如,独立)扫描每个RU的系数。如图13所示,一个RU的上下文模型和Rice参数推导可以独立于另一个RU。在一些实施例中,还可以为每个RU独立地分配上下文编码容器的最大数量。这种方案与VVC 6是不同的,VVC 6中上下文编码容器的最大数量是在TB层级定义的。
作为示例,图14A-14D示出了根据本申请的一些实施例的表7,其示出了当TB被划分为RU时,用于残差编码的示例语法结构。
在VVC 6中,对于TS模式块的每个系数组(CG),发送信号coded_sub_block_flag。coded_sub_block_flag=0表示CG的所有系数都为零。coded_sub_block_flag=1表示CG内至少有一个系数不为零。然而,最后一个CG的coded_sub_block_flag未用信号通知,并且如果所有先前编码的CG(即,最后一个CG之前)的coded_sub_block_flag为零,则推断为1。这意味着对TB的最后一个CG的解析取决于所有先前解码的CG。为了消除RU之间的依赖关系,可以为RU的所有CG(包括最后一个CG)发送coded_sub_block_flag。
与本申请的一些实施例一致,可以引入额外的语法coded_RU_flag。在一些实施例中,当TB内的RU的数量大于1时,可以发出coded_RU_flag信号。在一些实施例中,如果coded_RU_flag不存在,则可以将其推断为1。coded_RU_flag=0可以指定RU的所有系数都为零。coded_RU_flag=1可以指定RU的系数至少有一个是非零的。在一些实施例中,如果除了最后一个RU之外的所有coded_RU_flag为零,则不需要发出最后一个RU的coded_RU_flag信号,并且可以将其推断为1。作为示例,以下伪代码显示了coded_RU_flag的示例信令:
Figure BDA0003545974230000251
作为示例,图15A-15D示出了根据本申请的一些实施例的表8,其示出了当发送coded_RU_flag信号时用于残差编码的另一示例语法结构。在一些实施例中,如果coded_RU_flag信号被发送,那么最后的CG标识可以以与VVC 6中相同的方式保持。也就是说,如果coded_sub_block_flag在相同RU中为0,那么coded_sub_block_flag可以被推断为1。
联合视频专家组(JVET)AHG无损和近无损编码工具AHG18发布了基于VTM-6.0的无损软件。无损软件引入了一个名为cu_transquant_bypass_flag的CU层级标识。cu_transquant_bypass_flag=1意味着跳过该CU的变换和量化,并且CU以无损模式编码。在当前版本的无损软件中,sps_max_luma_transform_size_64_flag设置为0,这意味着亮度样本中的最大TB大小限制为32×32。对于色度样本,最大TB大小根据YUV颜色格式进行调整(例如,对于YUV 420,最大16×16)。在一些实施例中,当cu_transquant_bypass_flag=1时,可以将亮度变换块大小增加到64×64,并且当cu_transquant_bypass_flag=1时,可以使用上述残差编码技术。
在一些实施例中,色度分量的最大TB大小可以使用公式(2)和(3)来确定。基于公式(2)和(3),最大TB宽度maxTbWidth和高度maxTbHeight可以根据公式(5)和(6)确定:
maxTbWidth=(cIdx= 公式
=0)?MaxTbSizeY:MaxTbSizeY/SubWidthC (5)
maxTbHeight=(cIdx= 公式
=0)?MaxTbSizeY:MaxTbSizeY/SubHeightC (6)
在公式(5)和(6)中,cIdx=0表示亮度分量。cIdx=1和cIdx=2表示两个色度分量。例如,SubWidthC和SubHeightC的值可以从色度格式导出。与本申请的一些实施例一致,图16示出了根据本申请的一些实施例的从色度格式导出的示例参数值的表9。
在VVC 6中,逆向层级映射被嵌入到CABAC模块中。图17示出了根据本申请的一些实施例的表10,其示出了用于执行逆向层级映射的残差编码的VVC 6中的示例语法结构。
与本申请的一些实施例一致,为了提高变换跳过残差解析的CABAC吞吐量,可以基于映射的层级值而不是基于实际层级值来推导Rice参数。在一些实施例中,上下文模型和Rice参数都可以依赖于映射的值,并且在残差解析过程中可以不执行逆映射操作。通过这样做,可以将逆映射与残差解析过程解耦。整个TB的残差解析完成后,即可执行逆映射。在一些实施例中,逆映射和残差解析可以在一次遍历中同时执行,这允许基于实际情况决定是交错解析和映射还是将它们分离为两个过程。
作为示例,图18是根据本申请的一些实施例的示例解码方法1400的流程图。方法1800可以在解析和逆映射分离的情况下执行。由图18可知,反映射是在整个TB的残差解析完成后,反量化之前执行的,与残差解析解耦。
与本申请的一些实施例一致,图19示出了表10,其示出了根据本申请的一些实施例的在不执行逆层级映射的情况下用于残差编码的示例语法结构。在一些实施例中,可以将逆层级映射移至解码过程,下面将描述该解码过程。
与本申请的一些实施例一致,以下伪代码示出了可以在残差解析之后和逆量化之前执行的逆层级映射过程(如图18所示)。以下伪代码中,TransCoeffLevel[xC][yC]表示残差解析后(xC,yC)位置的系数值,TransCoeffLevelInvMapped[xC][yC]表示逆映射后(xC,yC)位置的系数值:
Figure BDA0003545974230000261
Figure BDA0003545974230000271
根据本申请的一些实施例,Rice参数可以基于映射值导出,这与VVC 6中Rice参数基于实际层级值导出不同。假设数组TransCoeffLevel[xC][yC]是位置(xC,yC)处给定颜色分量的TB的映射层级值,可以根据以下伪代码导出变量locSumAbs:
locSumAbs=0
AbsLevel[xC][yC]=abs(TransCoeffLevel[xC][yC])
if(xC>0)
locSumAbs+=AbsLevel[xC-1][yC]
if(yC>0)
locSumAbs+=AbsLevel[xC][yC-1]
locSumAbs=Clip3(0,31,locSumAbs)
与本申请的一些实施例一致,图20示出了根据本申请的一些实施例的表12,其示出了用于选择Rice参数的示例查找表。在一些申请的实施例中,可以基于预定义的偏移值来调整locSumAbs的值。在一些实施例中,偏移值是根据离线训练计算的。以下示例伪代码显示偏移值为2。
locSumAbs=0
offset=2;
AbsLevel[xC][yC]=abs(TransCoeffLevel[xC][yC])
if(xC>0)
locSumAbs+=AbsLevel[xC-1][yC]
if(yC>0)
locSumAbs+=AbsLevel[xC][yC-1]
locSumAbs-=offsetlocSumAbs=Clip3(0,31,locSumAbs)
与本申请的一些实施例一致,图21-22示出了根据本申请的一些实施例的用于视频处理的示例过程2100-2200的流程图。在一些实施例中,过程2100-2200可以由编解码器(例如,图2A-2B中的编码器或图3A-3B中的解码器)执行。例如,编解码器可以实现为用于视频处理的装置(例如,装置400)的一个或多个软件或硬件组件。
举例来说,图21示出了根据本申请的一些实施例的用于视频处理的示例过程2100的流程图。在步骤2102,编解码器(例如,图2A-2B中的编码器)可以基于预测块的亮度样本的尺寸的最大值或预测块的尺寸值最大值之一,来确定跳过预测残差的变换过程。变换过程可以是图2A-2B中的变换阶段212。预测残差可以是2A-2B中的残差BPU 210。预测块可以是包括在图2A-2B中的预测数据206中的块。例如变换块(例如,图11-13中所示的任何变换块)。预测块的尺寸可以包括高度或宽度。
在一些实施例中,编解码器可以基于预测块的尺寸数不大于阈值的确定结果,来决定跳过变换过程,从而确定跳过对预测残差的变换过程。在一些实施例中,阈值可以是MaxTbSizeY,如结合公式(2)至(3)所示和描述的,阈值的最大值可以等于亮度样本尺寸的最大值(例如32、64或任何数字)或预测块尺寸的最大值(例如32、64或任何数字)之一。在一些实施例中,亮度样本的尺寸的最大值或预测块的尺寸的最大值可以是动态值(例如,不是常数)。
在一些实施例中,阈值等于指示预测块的亮度信息的亮度样本的尺寸的最大值。在一些实施例中,阈值的最大值是64。在一些实施例中,阈值的最大值是32。在一些实施例中,阈值的最小值是4。在一些实施例中,阈值可以等于允许执行变换过程的预测块的尺寸的最大值(例如,如公式(1)中所示和描述的MaxTsSize)。
仍然参考图21,在步骤2104,编解码器可以生成残差系数。在一些实施例中,阈值的最大值至少基于第一参数集中的第一参数来确定。例如,第一参数集可以是序列参数集(SPS)。在一些实施例中,第一参数的值是0或1。例如,第一参数可以是sps_max_luma_transform_size_64_flag,如图9中的表5所示和描述的。在一些实施例中,阈值可以基于第一参数的值来确定。例如,如果第一个参数可以是sps_max_luma_transform_size_64_flag,并且如果阈值为MaxTbSizeY,则当sps_max_luma_transform_size_64_flag等于1时,MaxTbSizeY可以等于64。当sps_max_luma_transform_size_64_flag等于0时,MaxTbSizeY等于32。
在一些实施例中,可以至少基于第一参数集中的第一参数来确定阈值的最大值。在一些实施例中,可以基于第二参数集中的第二参数的值来确定阈值。在一些实施例中,第二参数集是序列参数集(SPS)。在一些实施例中,第二参数集是图片参数集(PPS)。第二参数可以是log2_transform_skip_max_size_minus2(例如,如结合图5中的表1所示和描述的)。第二参数的值可以根据第一参数的值来确定。在一些实施例中,第二参数的值(例如,log2_transform_skip_max_size_minus2)具有最小值0和等于3和第一参数的值(例如,sps_max_luma_transform_size_64_flag)的和的最大值。例如,log2_transform_skip_max_size_minus2可以在0到(3+sps_max_luma_transform_size_64_flag)的范围内。在一些实施例中,第二参数可以具有编码器的第一配置文件(例如,主配置文件)中的第一值和编码器的第二配置文件(例如,扩展配置文件)中的第二值、第一值和第二个值不同。
仍然参考图21,在第2104步,编解码器通过对预测残差执行至少一种无损压缩过程或量化过程,可以为预测残差生成残差系数。如本文所述,残差系数可以是与残差编码过程相关联的系数。量化过程可以是图2A-2B中的量化阶段214。无损压缩过程可以包括使用系数组(CG)生成残差系数。例如,系数组可以是不重叠的。在一些实施例中,系数组具有4×4的大小。
在一些实施例中,编解码器可以使用多重变换选择(MTS)方案来生成残差系数。例如,编解码器可以确定预测块的尺寸是否大于32。如果预测块的尺寸不大于32,编解码器可以使用MTS方案生成残差系数。
在一些实施例中,编解码器可以使用上下文编码技术或旁路编码技术之一,来进一步确定系数组的变换跳过系数层级。编解码器还可以基于变换跳过系数层级确定Rice参数。编解码器还可以通过对系数组、变换跳过系数层级或Rice参数中的至少一项进行熵编码来生成码流。
在一些实施例中,编解码器还可以基于预测块左侧的第一预测块的第一残差系数的第一值和预测块顶部的第二预测块的第二残差系数的第二值,将变换跳跃系数层级映射到修改后的变换跳跃系数层级。
在一些实施例中,编解码器可以使用上下文编码技术或旁路编码技术之一来确定系数组的变换跳过系数层级,基于预测块左侧的第一预测块的第一残余系数的第一值和预测块顶部的第二预测块的第二残余系数的第二值,将变换跳跃系数层级映射到修改后的变换跳跃系数层级,基于修改后的变换跳跃系数层级生成上下文编码技术的上下文模型,基于修改后的变换跳跃系数层级确定Rice参数,使用系数组生成剩余系数,并通过对系数组中的至少一个进行熵编码来生成码流、转换跳过系数层级或Rice参数。
仍然参考图21,在步骤2106,编解码器可以通过对至少残差系数进行熵编码来生成码流。码流可以是图2A-2B中的视频码流228。
图22示出了根据本申请的一些实施例的用于视频处理的另一个示例过程2200的流程图。例如,过程2200可以由图3A-3B中的解码器来执行。
如图22所示,在步骤2202,解码器接收包括视频序列的编码信息的码流。码流包括视频序列的序列参数集(SPS)。
在步骤2204,解码器基于视频序列的序列参数集(SPS)中的参数确定预测块的最大变换大小。预测块可以是包括在图2A-2B中的预测数据206中的块,例如变换块(例如,图11-13中所示的任何变换块)。在一些实施例中,最大变换大小可以对应于预测块的亮度样本的尺寸的最大值,或者预测块的尺寸的最大值。预测块的尺寸可以包括高度或宽度。上述结合图5-10对基于SPS中的参数确定最大变换大小的详细方法进行了描述。
在步骤2206,解码器基于最大变换大小确定跳过对预测块的预测残差的变换过程。变换过程可以是图2A-2B中的变换阶段212。
在一些实施例中,还提供了一种包括指令的非暂时性计算机可读存储介质,并且这些指令可以由用于执行上述方法的设备(例如本申请公开的编码器和解码器)执行。非暂时性介质的常见形式包括例如软盘、软盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何具有孔洞图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM或任何其他闪存、NVRAM、高速缓存、寄存器、任何其他存储芯片或盒式存储器,以及相同的网络版本。该设备可以包括一个或多个处理器(CPU)、输入/输出接口、网络接口和/或存储器。
可以使用以下条款进一步描述上述实施例:
1.一种视频处理方法,包括:
基于预测块的最大变换大小,确定跳过对预测残差的变换过程;和
在序列参数集(SPS)中用信号表示所述最大变换大小。
2.根据条款1所述的方法,其中确定跳过对所述预测残差的所述变换过程包括:
基于预测块的尺寸不大于阈值,确定跳过变换过程,所述阈值等于以下之一的最大值:
预测块的亮度样本的尺寸的最大值,或
预测块的尺寸的最大值。
3.根据条款2所述的方法,其中,所述亮度样本的尺寸的最大值或所述预测块的尺寸的最大值之一是动态值。-
4.根据前述条款中任一项所述的方法,还包括:
进一步基于指示变换跳过模式的参数确定跳过变换过程。
5.根据条款2所述的方法,其中,所述预测块的尺寸包括高度或宽度。
6.根据条款2所述的方法,其中,所述阈值的最大值是基于第一参数集中的至少一个第一参数确定的。
7.根据条款6所述的方法,其中,所述第一参数集是序列参数集(SPS)。
8.根据条款6-7中任一项所述的方法,其中,所述第一参数的值是0或1。
9.根据条款2-8中任一项所述的方法,其中,所述阈值的最大值是64。
10.根据条款2-8中任一项所述的方法,其中,所述阈值的最大值是32。
11.根据条款2-10中任一项所述的方法,其中,所述阈值的最大值至少基于所述第一参数集中的第一参数和所述第一参数集中的第三参数来确定。
12.根据条款2-11中任一项所述的方法,其中,所述阈值的最小值是4。
13.根据条款2-12中任一项所述的方法,其中,所述阈值等于表征所述预测块的亮度信息的所述亮度样本的尺寸的最大值。
14.根据条款6-13中任一项所述的方法,其中,所述阈值的最大值基于第二参数集中的第二参数的值确定,并且所述第二参数的值基于所述第一参数的值确定。
15.根据条款14所述的方法,其中,所述第二参数的值最小为0,最大等于3和所述第一参数的值之和。。
16.根据条款14所述的方法,其中,所述第二参数在编码器的第一配置文件中具有第一值,在所述编码器的第二配置文件中具有第二值,所述第一值和所述第二值不同。
17.根据条款14-16中任一项所述的方法,其中所述第二参数集是SPS。
18.根据条款14-16中任一项所述的方法,其中所述第二参数集是图片参数集(PPS)。
19.根据条款2-12中任一项所述的方法,其中所述阈值等于允许执行所述变换过程的所述预测块的尺寸的最大值。
20.根据条款19所述的方法,其中,所述阈值是基于所述第一参数的值来确定的。
21.根据前述条款中任一项所述的方法,还包括:
使用多重变换选择(MTS)方案为所述预测块生成残差系数。
22.根据条款21所述的方法,进一步包括:
判断预测块的尺寸是否不大于32;和
基于确定预测块的尺寸没有大于32,使用MTS方案生成残差系数。
23.根据条款2-22中任一项所述的方法,进一步包括:
判断预测块的尺寸是否未大于所述阈值;和
基于预测块的尺寸未大于所述阈值的判断结果,在为所述预测块生成残差系数之前,对所述预测残差进行块差分脉冲编码调制(BDPCM)。
24.根据前述条款中任一项所述的方法,还包括:
通过执行无损压缩过程或对预测残差生成用于预测残差的残差系数,其中,无损压缩过程包括使用系数组生成残差系数,所述系数组是不重叠的。
25.根据条款24所述的方法,其中所述系数组的大小为4×4。
26.根据条款24-25中任一项所述的方法,进一步包括:
使用上下文编码技术或旁路编码技术之一,确定所述系数组的变换跳过系数层级;
基于变换跳跃系数层级确定Rice参数;和
通过对系数组、变换跳过系数层级或Rice参数中的至少一个进行熵编码,以生成码流。
27.根据条款24-26中任一项所述的方法,进一步包括:
基于预测块左侧的第一预测块的第一残差系数的第一值和预测快顶部的第二预测块的第二残差系数的第二值,将变换跳过系数层级映射到修改后的变换跳过系数层级。
28.根据条款24-26所述的方法,进一步包括:
使用上下文编码技术或旁路编码技术之一确定系数组的变换跳过系数层级;
基于预测块左侧的第一预测块的第一残差系数的第一值和预测块顶部的第二预测块的第二残余系数的第二值,将变换跳过系数层级映射到修改后的变换跳过系数层级;
基于所述修改后的变换跳跃系数层级生成上下文编码技术的上下文模型;
基于修改后的变换跳跃系数层级确定Rice参数;
使用所述系数组生成所述残差系数;和
通过对所述系数组、所述变换跳过系数层级或所述Rice参数中的至少一个进行熵编码,以生成所述码流。
29.根据条款28所述的方法,进一步包括:
在执行量化过程之后以及在生成所述残差系数期间,将所述变换跳过系数层级映射到所述修改后的变换跳过系数层级。
30.根据条款28所述的方法,进一步包括:
在执行量化过程之后和生成残差系数之前,将所述变换跳过系数层级映射到所述修改后的变换跳过系数层级。
31.根据条款28-30中任一项所述的方法,其中,确定所述赖斯参数包括:
基于所述预测块的颜色分量的修改后的变换跳跃系数层级来确定所述Rice参数。
32.根据条款31所述的方法,其中,所述颜色分量的修改后的变换跳跃系数层级被偏移预定偏移值。
33.根据条款32所述的方法,其中,所述预定偏移值是在离线训练过程中使用机器学习模型来确定的。
34.根据条款23-33中任一项所述的方法,其中,生成所述残差系数包括:
使用对角线扫描对预测残差执行无损压缩处理或BDPCM中的至少一种,其中,用于进行对角线扫描的预测块的最大大小为64。
35.根据条款23-33中任一项所述的方法,其中,生成所述残差系数包括:
基于预测块的尺寸大于32,将预测块在尺寸上划分为多个子块;和
对于多个子块中的每个特定子块,使用对角扫描对与特定子块相关联的预测残差执行无损压缩处理或BDPCM中的至少一个,其中,与多个子块相关联的无损压缩过程或BDPCM的相应参数和输出结果是独立的。
36.根据条款35所述的方法,进一步包括:
在确定预测块的两个尺寸大于32的基础上,将预测块划分为两个尺寸上的多个子块。
37.根据条款35-36中任一项所述的方法,其中,与所述多个子块相关联的无损压缩过程或BDPCM的相应参数和输出结果包括如下中的至少一种:与所述上下文编码技术相关联的上下文模型、Rice参数或与上下文编码技术相关联的上下文编码箱的最大数量。
38.根据条款34-37中任一项所述的方法,其中,对角线扫描的单元是所述系数组。
39.根据条款38所述的方法,还包括:
为特定子块的每个系数组设置指示系数组中的系数值的第一指示参数。
40.根据条款38所述的方法,进一步包括:
为多个子块中的每个特定子块设置第二指示参数,该第二指示参数用于指示特定子块中所有系数组的值。
41.根据条款40所述的方法,进一步包括:
为所述特定子块的每个系数组设置用于指示所述系数组中的系数值的第一指示参数;和
基于确定特定子块的最后一个系数组之前的所有系数组的第一指示参数为零,将所述最后一个系数组的第一指示参数设置为1。
42.根据条款24-41中任一项所述的方法,其中,生成所述残差系数包括:
基于指示无损编码模式的参数,通过对预测残差进行无损压缩处理,以生成所述残差系数,其中,亮度样本的尺寸的最大值为64。
43.根据前述条款中任一项所述的方法,还包括:
接收视频图片;
将视频图片分割成多个块;
通过对块执行帧内预测或帧间预测中的一种,以生成预测块;和
通过从所述块中减去所述预测块,以生成预测残差。
44.一种装置,包括:
存储器,被配置为存储指令;和
处理器,被配置为执行以下指令:
基于预测块的最大变换大小,确定跳过对预测残差的变换过程;和
在序列参数集(SPS)中用信号表示所述最大变换大小。
45.一种存储指令集的非暂时性计算机可读介质,所述指令集可由装置的至少一个处理器执行以使所述装置执行方法,所述方法包括:
基于预测块的最大变换大小,确定跳过对预测残差的变换过程;和
在序列参数集(SPS)中用信号表示所述最大变换大小。
46.一种视频处理方法,包括:
接收视频序列的码流;
基于视频序列的序列参数集(SPS),确定预测块的最大变换大小;和
基于所述最大变换大小,确定跳过对所述预测块的预测残差的变换过程。
47.根据条款46所述的方法,其中,确定跳过所述预测残差的变换过程包括:
响应于确定预测块的尺寸未大于阈值,确定跳过所述变换过程,所述阈值具有等于以下之一的最大值:
预测块的亮度样本的尺寸的最大值,或
预测块的尺寸的最大值。
48.根据条款47所述的方法,其中,所述预测块的尺寸包括高度或宽度。
49.根据条款47所述的方法,其中,所述阈值的最大值至少基于所述SPS中的第一参数来确定。
50.根据条款49所述的方法,其中,所述第一参数的值是0或1。
51.根据条款47-50中任一项所述的方法,其中,所述阈值的最大值是64。
52.根据条款47-50中任一项所述的方法,其中,所述阈值的最大值是32。
53.根据条款47-52中任一项所述的方法,其中,所述阈值的最大值至少基于所述SPS中的第一参数和所述SPS中的第三参数来确定。
54.根据条款47-53中任一项所述的方法,其中,所述阈值的最小值是4。
55.根据条款47-54中任一项所述的方法,其中,所述阈值等于用于指示所述预测块的亮度信息的所述亮度样本的尺寸的最大值。
56.根据条款49-54中任一项所述的方法,其中,所述阈值的最大值是基于第二参数集中的第二参数的值来确定的,并且所述第二参数的值基于所述第一参数的值来确定。
57.根据条款56所述的方法,其中,所述第二参数的值最小为0,最大等于3和所述第一参数的值之和。
58.根据条款56所述的方法,其中,所述第二参数在编码器的第一配置文件中具有第一值,在所述编码器的第二配置文件中具有第二值,所述第一值和所述第二值不同。
59.根据条款56-58中任一项所述的方法,其中,所述第二参数集是SPS。
60.根据条款56-58中任一项所述的方法,其中,所述第二参数集是图片参数集(PPS)。
61.一种装置,包括:
存储器,用于存储指令;和
处理器,被配置为执行如下指令:
接收视频序列的码流;
基于视频序列的序列参数集(SPS),确定预测块的最大变换大小;和
基于所述最大变换大小,确定跳过对所述预测块的预测残差的变换过程。
62.一种存储指令集的非暂时性计算机可读介质,所述指令集可由装置的至少一个处理器执行以使所述装置执行方法,所述方法包括:
接收视频序列的码流;
基于视频序列的序列参数集(SPS)确定预测块的最大变换大小;和
基于所述最大变换大小,确定跳过对所述预测块的预测残差的变换过程。
需要说明的是,本文中的“第一”和“第二”等关系术语仅用于区分一个实体或操作与另一个实体或操作,并不要求或暗示这些实体或操作之间有任何实际关系或顺序。此外,“包含”、“具有”、“包含”和“包括”等词语以及其他类似形式具有相同的含义,并且是开放式的,因为这些词语中的任何一个之后的一个或多个项目都不是旨在详尽列出此类项目,或仅限于列出的项目。
如本文所用,除非另有明确说明,否则术语“或”涵盖所有可能的组合,除非不可行。例如,如果声明一个组件可以包括A或B,那么除非另有明确说明或不可行,否则该组件可以包括A,或B,或A和B。作为第二个示例,如果声明一个组件可以包括A、B或C,则除非另有明确说明或不可行,否则该组件可以包括A、或B、或C、或A和B、或A和C、或B和C、或A和B和C。
可以理解,上述实施例可以通过硬件或软件(程序代码)或硬件和软件的组合来实现。如果通过软件实现,则可以存储在上述计算机可读介质中。在由处理器执行时,该软件可以执行所公开的方法。本发明中描述的计算单元和其他功能单元可以通过硬件实现,也可以通过软件实现,也可以通过硬件和软件的结合来实现。本领域普通技术人员也可以理解,上述多个模块/单元可以组合为一个模块/单元,并且上述每个模块/单元还可以进一步划分为多个子模块/子单元。
在前述说明书中,已经参照许多具体细节描述了实施例,这些具体细节可以随不同的实施方式而变化。可以对所描述的实施例进行某些调整和修改。对于本领域技术人员来说,考虑了本文公开的本发明的规范和实践的其他实施例是显而易见的。上述说明书和实施例仅被视为示例,本发明的真实范围和精神由权利要求指示。图中所示的步骤顺序也意在仅用于说明目的,并不意在限制于任何特定的步骤顺序。因此,本领域的技术人员可以理解,在实现相同方法的同时,可以以不同的顺序执行这些步骤。
在附图和说明书中,已经公开了示例性实施例。然而,可以对这些实施例进行诸多变化和修改。因此,虽然使用了特定的术语,但它们仅用于一般和描述性意义,而不是出于限制目的。

Claims (20)

1.一种视频处理方法,包括:
基于预测块的最大变换大小,确定跳过对预测残差的变换过程;和
在序列参数集(SPS)中用信号表示所述最大变换大小。
2.根据权利要求1所述的方法,还包括:
进一步基于指示变换跳过模式的参数,确定跳过所述变换过程。
3.根据权利要求1所述的方法,其中确定跳过对所述预测残差的变换过程包括:
基于所述预测块的尺寸未大于阈值,确定跳过变换过程,所述阈值等于以下之一的最大值:
所述预测块的亮度样本的尺寸的最大值,或
所述预测块的尺寸的最大值。
4.根据权利要求3所述的方法,其中,所述亮度样本的尺寸的最大值或所述预测块的尺寸的最大值中的一个是动态值。
5.根据权利要求3所述的方法,其中,所述预测块的尺寸包括高度或宽度。
6.根据权利要求3所述的方法,其特征在于,所述阈值的最大值是64。
7.根据权利要求3所述的方法,其特征在于,所述阈值的最大值是32。
8.根据权利要求3所述的方法,其中,所述阈值的最小值是4。
9.根据权利要求3所述的方法,其中,所述阈值等于所述亮度样本的尺寸的最大值,所述亮度样本用于指示所述预测块的亮度信息。
10.根据权利要求3所述的方法,其中,所述阈值的最大值至少基于第一参数集中的第一参数进行确定。
11.根据权利要求10所述的方法,其特征在于,所述第一参数集是序列参数集(SPS)。
12.根据权利要求10所述的方法,其中,所述第一参数的值为0或1。
13.根据权利要求10所述的方法,其中,所述阈值的最大值至少基于所述第一参数集中的第一参数和所述第一参数集中的第三参数来确定。
14.根据权利要求10所述的方法,其中,所述阈值的最大值基于第二参数集中的第二参数的值确定,并且所述第二参数的值基于所述第一参数的值确定。
15.根据权利要求14所述的方法,其中,所述第二参数的值最小为0,最大等于3和所述第一参数的值之和。
16.根据权利要求14所述的方法,其中,所述第二参数在编码器的第一配置文件中具有第一值,在所述编码器的第二配置文件中具有第二值,所述第一值和所述第二值不同。
17.根据权利要求14所述的方法,其特征在于,所述第二参数集是SPS。
18.根据权利要求14所述的方法,其中,所述第二参数集是图片参数集(PPS)。
19.一种装置,包括:
存储器,用于存储指令;和
处理器,被配置为执行指令,以使所述装置执行:
基于预测块的最大变换大小,确定跳过对预测残差的变换过程;和
在序列参数集(SPS)中用信号表示所述最大变换大小。
20.一种存储指令集的非暂时性计算机可读介质,所述指令集可由装置的至少一个处理器执行,以使所述装置执行一种方法,所述方法包括:
基于预测块的最大变换大小确定跳过预测残差的变换过程;和
在序列参数集(SPS)中用信号表示所述最大变换大小。
CN202080064527.4A 2019-09-12 2020-08-13 采用变换跳过模式编码视频数据的方法和设备 Pending CN115552897A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962899738P 2019-09-12 2019-09-12
US62/899,738 2019-09-12
US201962904880P 2019-09-24 2019-09-24
US62/904,880 2019-09-24
PCT/US2020/046112 WO2021050198A1 (en) 2019-09-12 2020-08-13 Method and apparatus for coding video data in transform-skip mode

Publications (1)

Publication Number Publication Date
CN115552897A true CN115552897A (zh) 2022-12-30

Family

ID=74866012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080064527.4A Pending CN115552897A (zh) 2019-09-12 2020-08-13 采用变换跳过模式编码视频数据的方法和设备

Country Status (6)

Country Link
US (2) US20210084303A1 (zh)
EP (1) EP4029257A4 (zh)
JP (1) JP2022548204A (zh)
KR (1) KR20220057620A (zh)
CN (1) CN115552897A (zh)
WO (1) WO2021050198A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7201873B2 (ja) * 2019-09-24 2023-01-10 ベイジン ダジア インターネット インフォメーション テクノロジー カンパニー リミテッド 残差及び係数符号化の方法、プログラム並びに装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101709775B1 (ko) * 2013-07-23 2017-02-23 인텔렉추얼디스커버리 주식회사 영상 부호화/복호화 방법 및 장치
AU2015231883B2 (en) * 2014-03-16 2019-05-16 Vid Scale, Inc. Method and apparatus for the signaling of lossless video coding
US10681379B2 (en) * 2015-09-29 2020-06-09 Qualcomm Incorporated Non-separable secondary transform for video coding with reorganizing
JP2020504973A (ja) * 2017-01-03 2020-02-13 エルジー エレクトロニクス インコーポレイティド 画像処理方法及びそのための装置
US11166045B2 (en) * 2017-10-11 2021-11-02 Lg Electronics Inc. Method for image coding on basis of separable transform and apparatus therefor
WO2019141012A1 (en) * 2018-01-18 2019-07-25 Mediatek Inc. Video processing methods and apparatuses for processing video data coded in large size coding units
US10812797B2 (en) * 2018-02-05 2020-10-20 Tencent America LLC Method, apparatus and medium for decoding or encoding using a low-complexity transform
US10841577B2 (en) * 2018-02-08 2020-11-17 Electronics And Telecommunications Research Institute Method and apparatus for video encoding and video decoding based on neural network

Also Published As

Publication number Publication date
KR20220057620A (ko) 2022-05-09
EP4029257A1 (en) 2022-07-20
US20210084303A1 (en) 2021-03-18
US20220329801A1 (en) 2022-10-13
JP2022548204A (ja) 2022-11-17
EP4029257A4 (en) 2023-11-15
WO2021050198A1 (en) 2021-03-18

Similar Documents

Publication Publication Date Title
JP2022548825A (ja) 映像処理における量子化パラメータのシグナリング
CN114830662B (zh) 用于对图像执行逐步解码刷新处理的方法和系统
US20210092388A1 (en) Lossless coding of video data
US20230362384A1 (en) Methods and systems for cross-component sample adaptive offset
CN114830669A (zh) 用于在图像边界划分块的方法和装置
CN115152236A (zh) 处理色度信号的方法
WO2022193917A1 (en) Methods, apparatus, and non-transitory computer readable medium for cross-component sample adaptive offset
CN114788284B (zh) 用于在调色板模式下对视频数据进行编码的方法和装置
CN114902670B (zh) 用信号通知子图像划分信息的方法和装置
CN115349228A (zh) 视频记录的符号数据隐藏
CN115398905A (zh) 环路滤波器的高级语法控制
CN114762332A (zh) 构建合并候选列表的方法
US20220329801A1 (en) Method and apparatus for coding video data in transform-skip mode
CN115552900A (zh) 用信号通知最大变换大小和残差编码的方法
CN115428455A (zh) 调色板预测方法
US11451801B2 (en) Methods for coding video data in palette mode
WO2021050193A1 (en) Method and apparatus for coding video data
CN115398897A (zh) 用于导出时间运动信息的方法和装置
CN115443655A (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