CN114391256A - 用于视频编解码的变换单元设计 - Google Patents

用于视频编解码的变换单元设计 Download PDF

Info

Publication number
CN114391256A
CN114391256A CN202080063436.9A CN202080063436A CN114391256A CN 114391256 A CN114391256 A CN 114391256A CN 202080063436 A CN202080063436 A CN 202080063436A CN 114391256 A CN114391256 A CN 114391256A
Authority
CN
China
Prior art keywords
samples
coding
ctu
chroma
cbf
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
CN202080063436.9A
Other languages
English (en)
Inventor
A.K.拉马苏布拉莫尼安
G.范德奥韦拉
V.塞雷金
M.卡尔切维茨
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN114391256A publication Critical patent/CN114391256A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

示例设备包括存储器和一个或多个处理器。所述一个或多个处理器被配置成确定是否使用单树编解码第一编解码树单元(CTU),基于所述使用单树编解码的第一CTU,基于第一亮度样本变换块(TB)和第一两个对应的色度样本TB确定第一变换单元(TU)。所述一个或多个处理器还被配置为确定是否使用双树编解码第二CTU,基于所述使用双树编解码的第二CTU,基于(I)第二亮度样本TB或者(II)第二组两个色度样本TB确定第二TU。所述第一TU包括用于变换第一TB样本的句法结构,所述第二TU包括用于变换第二TB样本的句法结构。

Description

用于视频编解码的变换单元设计
本申请要求2020年9月17日提交的美国申请17/024,422号的优先权,该申请要求2019年9月18日提交的美国临时申请62/902,234号的权益,并要求2019年9月25日提交的美国临时申请62/905,721号的优先权,每个申请的全部内容通过引用结合于此。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频功能可以被结合到广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。数字视频设备实现视频编解码技术,例如由运动图像专家组(MPEG)-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、第10部分、高级视频编解码(AVC)、ITU-T H.265/高效视频编解码(HEVC)定义的标准中描述的技术,以及这些标准的扩展。通过实现这种视频编解码技术,视频设备可以更高效地发送、接收、编码、解码和/或存储数字视频信息。
视频编解码技术包括空间(图像内)预测和/或时间(图像间)预测,以减少或消除视频序列中固有的冗余。对于基于块的视频编解码,视频条带(slice)(例如,视频图像或视频图像的一部分)可以被划分成视频块,这些视频块也可以被称为编解码树单元(CTU)、编解码单元(CU)和/或编解码节点。使用相对于同一图像中相邻块中的参考样本的空间预测,对图像的帧内编码(I)条带中的视频块进行编码。图像的帧间编码(P或B)条带中的视频块可以使用关于同一图像中的相邻块中的参考样本的空间预测或者关于其他参考图像中的参考样本的时间预测。图像可以被称为帧,参考图像可以被称为参考帧。
发明内容
通常,本公开描述了用于视频编解码的亮度分量和色度分量的变换单元设计和量化参数(QP)推断的技术。由于视频解码器不能确定变换单元中包括什么或者是使用一些句法元素的实际值还是推断该句法元素的值,所以可能以不能正确解码视频数据的方式配置视频解码器。根据本公开的技术,可以以与视频编码器的配置一致的方式配置视频解码器,使得该视频解码器能够确定变换单元中包括什么,或者是使用句法元素的实际值还是推断句法元素的值。
在一个示例中,一种方法包括由一个或多个处理器确定是否使用单树来编解码第一编解码树单元(CTU);由一个或多个处理器基于使用单树来编解码该第一CTU,基于第一组第一变换块(TB)样本确定第一变换单元(TU),该第一组第一变换块样本包括第一亮度样本TB和第一两个对应色度样本TB;基于该第一TU对该第一CTU的编解码单元(CU)进行编解码;由该一个或多个处理器确定是否使用双树来编解码第二CTU;由一个或多个处理器基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(IIII)第二两个色度样本TB;以及基于该第二TU对该第二CTU的CU进行编解码,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
在另一示例中,一种设备包括:被配置为存储视频数据的存储器,以及在电路中执行的、通信耦合到该存储器的一个或多个处理器,该一个或多个处理器被配置为:确定是否使用单树来编解码第一CTU;基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个对应色度样本TB;基于该第一TU对该第一CTU的CU进行编解码;确定是否使用双树来编解码第二CTU;基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及基于该第二TU对该第二CTU的CU进行编解码,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
在另一示例中,非暂时性计算机可读存储介质在其上存储有指令,当由一个或多个处理器执行时,该指令使得该一个或多个处理器:确定是否使用单树来编解码第一CTU;基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个对应色度样本TB;基于该第一TU对该第一CTU的CU进行编解码;确定是否使用双树来编解码第二CTU;基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及基于该第二TU对该第二CTU的CU进行编解码,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
在另一个例子中,一种设备包括:用于确定是否使用单树来编解码第一CTU的部件;用于基于使用单树来编解码第一CTU、基于第一组TB样本确定第一TU的部件,该第一组TB样本包括第一亮度样本TB和第一两个对应色度样本TB;用于基于该第一TU对该第一CTU的CU进行编解码的部件;用于确定是否使用双树来编解码第二CTU的部件;用于基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU的部件,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及用于基于该第二TU对该第二CTU的CU进行编解码的部件,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
在附图和以下描述中阐述一个或多个示例的细节。从说明书、附图和权利要求中,其他特征、对象和优点将显而易见。
附图说明
图1是示出可以执行本公开的技术的示例视频编码和解码系统的框图;
图2A和2B是示出示例四叉树二叉树(QTBT)结构和对应的编解码树单元(CTU)的概念图;
图3是示出可以执行本公开的技术的示例视频编码器的框图;
图4是示出可以执行本公开的技术的示例视频解码器的框图;
图5是示出根据本公开的技术的用于确定变换单元(TU)的技术的流程图;
图6是示出根据本公开的技术编码视频数据的方法的流程图;和
图7是示出根据本公开的技术解码视频数据的方法的流程图。
具体实施方式
在某些视频解码器实现中,视频解码器可以以在某些情况下不能正确解码视频数据的方式来配置。例如,视频解码器可能无法确定变换单元中包含什么,或者在解析亮度树时是使用变换单元句法元素(例如(现在可能还不可用的)tu_cbf_cb和tu_cbf_cr)的实际值,还是使用推断值。这样,视频解码器可能以视频编码器不希望的方式解码视频数据,并且视频解码器可能不正确地解码视频数据,这可能导致视频数据的视觉呈现上的缺陷。
根据本公开的技术,视频解码器可以以与视频编码器的配置一致的方式来配置,便于视频数据的正确解码。例如,该视频解码器可以正确地确定变换单元中包括什么,并确定在解析亮度树时是使用变换单元句法元素的实际值,例如(可能还不可用的)tu_cbf_cb和tu_cbf_cr,还是使用推断值。以这种方式,视频解码器可以更准确地解码已编码的视频数据,使得视觉呈现更好,缺陷更少。
图1是示出可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常针对编解码(编码和/或解码)视频数据。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未编码的视频、已编码的视频、已解码的(例如,重构的)视频以及视频元数据,例如信令数据。
如图1所示,在该示例中,视频编码和解码系统100包括源设备102,其提供要由目的地设备116解码和显示的已编码视频数据。具体而言,源设备102经由计算机可读介质110向目的地设备116提供视频数据。源设备102和目的地设备116可以包括多种设备、包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、以及诸如智能手机、电视、照相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等电话手机中的任何。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,因此可以被称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目的地设备116的视频解码器300可以被配置为应用用于亮度和色度的变换单元设计和量化参数(QP)推断的技术。因此,源设备102代表视频编码设备的示例,而目的地设备116代表视频解码设备的示例。在其他示例中,源设备和目的地设备可以包括其他组件或布置。例如,源设备102可以从外部视频源(例如外部摄像机)接收视频数据。同样,目的地设备116可以与外部显示设备接口,而不是包括集成显示设备。
图1所示的视频编码和解码系统100仅仅是一个例子。通常,任何数字视频编码和/或解码设备都可以执行用于变换单元设计和亮度和色度的QP推断的技术。源设备102和目的地设备116仅仅是这种编解码设备的例子,其中源设备102生成编码视频数据以传输到目的地设备116。本公开将“编解码”设备称为执行数据编解码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别代表编解码设备的示例,具体而言是视频编码器和视频解码器。在一些示例中,源设备102和目的地设备116可以以基本对称的方式操作,使得源设备102和目的地设备116中的每一个都包括视频编码和解码组件。因此,视频编码和解码系统100可以支持源设备102和目的地设备116之间的单向或双向视频传输,例如用于视频流、视频回放、视频广播或视频电话。
一般来说,视频源104表示视频数据源(即,原始的、未编码的视频数据),并向视频编码器200提供视频数据的连续系列的图像(也称为“帧”),视频编码器200对图像的数据进行编码。源设备102的视频源104可以包括视频捕获设备,例如摄像机、包含先前捕获的原始视频的视频档案和/或从视频内容提供商接收视频的视频馈送接口。作为进一步的替代,视频源104可以生成基于图形计算机的数据作为该源视频,或者实况视频、存档视频和计算机生成视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将该图像从接收顺序(有时称为“显示顺序”)重新排列成用于编解码的编解码顺序。视频编码器200可以生成包括已编码视频数据的比特流。然后源设备102可以经由输出接口108将已编码的视频数据输出到计算机可读介质110上,用于由例如目的地设备116的输入接口122接收和/或检索。
源设备102的存储器106和目的地设备116的存储器120代表通用存储器。在一些示例中,存储器106和存储器120可以存储原始视频数据,例如来自视频源104的原始视频和来自视频解码器300的原始已解码视频数据。附加地或替代地,存储器106和存储器120可以分别存储软件指令,该指令可分别由例如视频编码器200和视频解码器300执行。尽管在该示例中,存储器106和存储器120被示为与视频编码器200和视频解码器300分开,但是应当理解,视频编码器200和视频解码器300也可以包括用于功能相似或等效目的的内部存储器。此外,存储器106和存储器120可以存储已编码的视频数据,例如从视频编码器200输出并输入到视频解码器300的数据。在一些示例中,存储器106和存储器120的部分可以被分配为一个或多个视频缓冲器,例如,用于存储原始的、已解码的和/或已编码的视频数据。
计算机可读介质110可以代表能够将已编码视频数据从源设备102传输到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质,以使源设备102能够例如经由射频网络或基于计算机的网络实时地将已编码的视频数据直接传输到目的地设备116。输出接口108可以调制包括已编码视频数据的传输信号,并且输入接口122可以根据诸如无线通信协议的通信标准解调所接收的传输信号。该通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一条或多条物理传输线。该通信介质可以形成基于分组的网络的一部分,例如局域网、广域网或全球网络,例如因特网。该通信介质可以包括路由器、交换机、基站或有助于从源设备102到目的地设备116的通信的任何其他设施。
在一些示例中,源设备102可以从输出接口108向存储设备112输出已编码数据。类似地,目的地设备116可以经由输入接口122从存储设备112访问已编码数据。存储设备112可以包括各种分布式或本地访问的数据存储介质、例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或者用于存储已编码视频数据的任何其他合适的数字存储介质中的任何一种。
在一些示例中,源设备102可以向文件服务器114或可以存储由源设备102生成的已编码视频的另一中间存储设备输出已编码视频数据。目的地设备116可以经由流式传输或下载从文件服务器114访问存储的视频数据。文件服务器114可以是能够存储已编码视频数据并将该已编码视频数据传输到该目的地设备116的任何类型的服务器设备。文件服务器114可以代表网络服务器(例如,用于网站)、文件传输协议(FTP)服务器、内容传递网络设备或网络附接存储(NAS)设备。目的地设备116可以通过任何标准数据连接,包括互联网连接,从文件服务器114访问已编码视频数据。这可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线路(DSL)、电缆调制解调器等)或者两者的组合,其适于访问存储在文件服务器114上的已编码视频数据。文件服务器114和输入接口122可以被配置成根据流传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以代表无线发送机/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据多种IEEE 802.11标准中的任何一种操作的无线通信组件或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(例如4G、4G-LTE(长期演进)、LTE Advanced、5G等)传输数据,例如已编码的视频数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据其他无线标准(例如IEEE 802.11规范、IEEE802.15规范(例如,ZigBeeTM)、蓝牙TM标准等)传输数据,例如已编码的视频数据。在一些示例中,源设备102和/或目的地设备116可以包括各自的片上系统(SoC)设备。例如,源设备102可以包括执行属于视频编码器200和/或输出接口108的功能的SoC设备,目的地设备116可以包括SoC设备,用于执行属于视频解码器300和/或输入接口122的功能。
本公开的技术可以应用于视频编解码,以支持多种多媒体应用、例如空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输、例如HTTP上的动态自适应流式传输(DASH)、编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码或其他应用中的任何。
目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收已编码的视频比特流。已编码的视频比特流可以包括由视频编码器200定义的信令信息,其也被视频解码器300使用,例如具有描述视频块或其他编解码单元(例如,条带、图像、图像组、序列等)的特性和/或处理的值的句法元素。显示设备118向用户显示已解码视频数据的已解码图像。显示设备118可以代表各种显示设备、例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示设备中的任何一种。
尽管图1中未示出,但是在一些示例中,视频编码器200和视频解码器300可以每个与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或其他硬件和/或软件,以处理包括公共数据流中的音频和视频的多路复用流。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议,或其他协议,如用户数据报协议(UDP)。
视频编码器200和视频解码器300每个可以实现为各种合适的编码器和/或解码器电路、例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任意组合中的任何一种。当这些技术部分地在软件中实现时,设备可以将软件的指令存储在合适的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行该指令,以执行本公开的技术。视频编码器200和视频解码器300中的每一个都可以被包括在一个或多个编码器或解码器中,其中的任何一个都可以被集成为各自设备中的组合编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,例如蜂窝电话。
视频编码器200和视频解码器300可以根据视频编码标准、例如ITU-T H.265,也称为高效视频编码(HEVC)或其扩展,例如多视图和/或可缩放视频编码扩展操作。可选地,视频编码器200和视频解码器300可以根据其他专有或行业标准、例如ITU-T H.266、也称为通用视频编码(VVC)操作。Bross等人的“Versatile Video Coding(Draft 6)”(“多功能视频编码(草案6)”),ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家团队(JVET),第15次会议:2019年7月3日至12日,瑞典哥德堡,JVET-O2001-vE(以下简称“VVC草案6”)中描述了VVC标准的草案。Bross等人的“Versatile Video Coding(Draft 10)”(“多功能视频编码(草案10)”),ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家小组(JVET),第19次会议:通过电话会议,2020年6月22日至7月1日,JVET-S2001-vA(以下简称“VVC草案10”)中描述了VVC标准的最新草案。然而,本公开的技术不限于任何特定的编码标准。
通常,视频编码器200和视频解码器300可以执行图像的基于块的编解码。术语“块”通常指包括要处理的数据(例如,已编码、已解码或在编码和/或解码过程中使用的数据)的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行编解码。也就是说,视频编码器200和视频解码器300可以对亮度分量和色度分量进行编解码,而不是对图像的样本的红色、绿色和蓝色(RGB)数据进行编解码,其中该色度分量可以包括红色色调和蓝色色调色度分量。在一些示例中,视频编码器200在编码之前将接收到的RGB格式的数据转换成YUV表示,并且视频解码器300将YUV表示转换成RGB格式。或者,预处理和后处理单元(未示出)可以执行这些转换。
本公开通常可以指对图像的编解码(例如,编码和解码),以包括对该图像的数据进行编码或解码的过程。类似地,本公开可以指对图像的块进行编解码,以包括对块的数据进行编码或解码的过程,例如预测和/或残差编解码。已编码的视频比特流通常包括表示编解码决策(例如,编解码模式)和将图像划分成块的句法元素的一系列值。因此,对编解码图像或块的引用通常应被理解为形成图像或块的句法元素的编解码值。
HEVC定义了各种块,包括编解码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频编解码器(例如视频编码器200)根据四叉树结构将编解码树单元(CTU)划分为CU。即,该视频编码器将CTU和CU分成四个相等的、不重叠的正方形,该四叉树的每个节点都有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,这种叶节点的CU可以包括一个或多个PU和/或一个或多个TU。该视频编解码器可以进一步划分PU和TU。例如,在HEVC,残差四叉树(RQT)代表了TU的划分。在HEVC,PU代表预测间数据,而TU代表残差数据。帧内预测的CU包括帧内预测信息,例如帧内模式指示。
作为另一个例子,视频编码器200和视频解码器300可以被配置为根据VVC操作。根据VVC,视频编码器(如视频编码器200)将一个图像划分成多个编解码树单元(CTU)。视频编码器200可以根据树结构例如四叉树——二叉树(QTBT)结构或多类型树(MTT)结构来划分CTU。该QTBT结构删除了多个划分类型的概念,例如HEVC的CU、PU和TU之间的分离。QTBT结构包括两个层次:根据四叉树划分而划分的第一级次,以及根据二叉树划分而划分的第二层次。该QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编解码单元(CU)。
在MTT划分结构中,可以使用四叉树(QT)划分、二叉树(BT)划分和一种或多种类型的三叉树(TT)划分来划分块。三叉树划分是一个块分成三个子块的划分。在一些示例中,三叉树划分将块划分为三个子块,而不通过中心划分原始块。MTT中的划分类型(如QT、BT和TT)可以是对称的,也可以是不对称的。
在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT或MTT结构来表示亮度分量和色度分量中的每一个,而在其他示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,例如用于亮度分量的一个QTBT/MTT结构,用于两个色度分量的另一个QTBT/MTT结构(或者用于对应的色度分量的两个QTBT/MTT结构)。
视频编码器200和视频解码器300可以被配置为使用每HEVC四叉树划分、QTBT划分、MTT划分或其他划分结构。出于解释的目的,本公开的技术的描述是关于QTBT划分来呈现的。然而,应当理解,本公开的技术也可以应用于被配置为使用四叉树划分或其他类型的划分的视频编解码器。
这些块(例如,CTU或CU)可以以各种方式分组在一个图像中。作为一个示例,砖块(brick)可以指图像中特定片(tile)内的CTU行的矩形区域。片可以是图像中特定片列和特定片行内的CTU的矩形区域。片列指的是CTU的矩形区域,其高度等于该图像的高度,宽度由句法元素指定(例如,在图像参数集中)。片行指的是具有由句法元素指定的高度(例如,在图像参数集中)和等于该图像宽度的宽度的CTU矩形区域。
在一些示例中,片可以被划分成多个砖块,每个砖块可以包括该片内的一个或多个CTU行。没有被划分成多个砖块的片也可以被称为砖块。然而,作为片的真实子集的砖块不能被称为片。
图像中的砖块也可以按条带(slice)排列。条带可以是图像的整数个砖块,其可以单独地被包含在单个网络抽象层(NAL)单元中。在一些示例中,条带包括多个完整的片或者仅包括一个片的连续序列的完整砖块。
本公开可以互换地使用“N×N”和“N乘N”来指代块(例如CU或其他视频块)在垂直和水平维度方面(例如16×16样本或16乘16样本)的样本维度。一般来说,16×16CU在垂直方向上有16个样本(y=16),在水平方向上有16个样本(x=16)。同样,N×N CU通常在垂直方向上具有N个样本,在水平方向上具有N个样本,其中N表示非负整数值。CU中的样本可以按行和列排列。此外,CU在水平方向上不必具有与垂直方向上相同数量的样本。例如,CU可以包括N×M个样本,其中M不一定等于N。
视频编码器200对代表预测和/或残差信息以及其他信息的CU的视频数据进行编码。该预测信息指示要如何预测CU,以便形成CU的预测块。该残差信息通常表示编码前的CU样本和该预测块之间的逐样本差异。
为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测来形成CU的预测块。帧间预测通常指的是从先前编解码的图像的数据来预测CU,而帧内预测通常指的是从该相同图像的先前编解码的数据来预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成该预测块。视频编码器200通常可以执行运动搜索来识别与CU紧密匹配的参考块,例如,根据该CU和参考块之间的差异。视频编码器200可使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)或其它此类差计算结果来计算差度量,以确定参考块是否与当前CU紧密匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。
VVC的一些例子还提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式下,视频编码器200可以确定表示非平移运动的两个或多个运动矢量,例如放大或缩小、旋转、透视运动或其他不规则运动类型。
为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成该预测块。VVC的一些例子提供了六十七种帧内预测模式,包括各种方向模式,以及平面模式和DC模式。一般而言,视频编码器200选择帧内预测模式,该模式描述当前块(例如,CU的块)的相邻样本,从这些相邻样本预测该当前块的样本。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对CTU和CU进行编解码,这样的样本通常可以在与当前块相同的图像中的当前块的上方、上方和左侧,或者左侧。
视频编码器200编码表示当前块的预测模式的数据。例如,对于帧间预测模式,视频编码器200可以编码表示使用各种可用帧间预测模式中的哪一种的数据,以及对应模式的运动信息。例如,对于单向或双向帧间预测,视频编码器200可以使用高级运动矢量预测(AMVP)或合并模式来编码运动矢量。视频编码器200可以使用类似的模式来编码仿射运动补偿模式的运动矢量。
在预测、例如块的帧内预测或帧间预测之后,视频编码器200可以计算该块的残差数据。该残差数据、例如残差块表示该块和该块的预测块之间的逐样本差异,其使用对应的预测模式形成。视频编码器200可以对该残差块应用一个或多个变换,以在变换域而不是样本域中产生变换数据。例如,视频编码器200可以对该残差视频数据应用离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换。此外,视频编码器200可以在第一变换之后应用第二变换,例如模式相关的不可分离第二变换(MDNSST)、信号相关的变换、卡-洛(Karhunen-Loeve)变换(KLT)等。视频编码器200在应用该一个或多个变换后产生变换系数。
如上所述,在用以产生变换系数的任何变换之后,视频编码器200可以执行变换系数的量化。量化通常是指量化变换系数以尽可能减少用于表示变换系数的数据量,从而提供进一步压缩的过程。通过执行该量化过程,视频编码器200可以减少与一些或所有变换系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值向下舍入到m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以对要量化的值执行按位右移。
量化之后,视频编码器200可以扫描变换系数,从包括量化的变换系数的二维矩阵中产生一维向量。该扫描可以被设计成将较高能量(因此较低频率)的变换系数放置在矢量的前面,并将较低能量(因此较高频率)的变换系数放置在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来扫描量化的变换系数以产生串行化的矢量,然后对该矢量的量化的变换系数进行熵编码。在其他示例中,视频编码器200可以执行自适应扫描。在扫描该量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术编码(CABAC)对一维矢量进行熵编码。视频编码器200还可以对描述与已编码视频数据相关联的元数据的句法元素的值进行熵编码,以供视频解码器300在解码该视频数据时使用。
为了执行CABAC,视频编码器200可以将上下文模型中的上下文分配给要传输的符号。该上下文可以涉及例如该符号的相邻值是否为零值。概率确定可以基于分配给该符号的上下文。
视频编码器200还可以向视频解码器300生成句法数据,例如基于块的句法数据、基于图像的句法数据和基于序列的句法数据,例如在图像头、块头、条带头或其他句法数据、例如序列参数集(SPS)、图像参数集(PPS)或视频参数集(VPS)中。视频解码器300同样可以解码这样的句法数据,以确定如何解码对应的视频数据。
以这种方式,视频编码器200可以生成比特流,该比特流包括编码的已视频数据,例如描述将图像划分成块(例如,CU)的句法元素以及块的预测和/或残差信息。最终,视频解码器300可以接收比特流并解码已编码的视频数据。
通常,视频解码器300执行与视频编码器200执行的过程相反的过程,以解码比特流的已编码视频数据。例如,视频解码器300可以使用CABAC以与视频编码器200的CABAC编码过程基本相似但相反的方式解码比特流的句法元素的值。该句法元素可以将图像的划分信息定义为CTU,并根据对应的划分结构(例如QTBT结构)对每个CTU进行划分,以定义CTU的CU。该句法元素可以进一步定义视频数据的块(例如,CU)的预测和残差信息。
该残差信息可以由例如量化的变换系数来表示。视频解码器300可以对块的量化变换系数进行逆量化和逆变换,以再现该块的残差块。视频解码器300使用信号通知的预测模式(帧内或帧间预测)和相关预测信息(例如,用于帧间预测的运动信息)来形成该块的预测块。然后视频解码器300可以组合该预测块和残差块(在逐样本的基础上)以再现原始块。视频解码器300可执行额外的处理,例如执行去块处理以减少沿着块边界的视觉伪像。
根据本公开的技术,如下文将更详细解释的,一种方法包括由一个或多个处理器确定是否使用单树来编解码第一CTU;由一个或多个处理器基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个对应的色度样本TB;基于该第一TU对该第一CTU的CU进行编解码;由该一个或多个处理器确定是否使用双树来编解码第二CTU;由一个或多个处理器基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及基于该第二TU对该第二CTU的CU进行编解码,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
根据本公开的其他示例技术,一种设备包括被配置为存储该视频数据的存储器,以及在电路中实现并通信耦合到该存储器的一个或多个处理器,该一个或多个处理器被配置为:确定是否使用单树来编解码第一CTU;基于使用单树来编解码第一CTU,确定基于第一组TB样本的第一TU,该第一组TB样本包括第一亮度样本TB和第一两个对应的色度样本TB;基于该第一TU对该第一CTU的CU进行编解码;确定是否使用双树来编解码第二CTU;基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及基于该第二TU对该第二CTU的CU进行编解码,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
根据本公开的其他示例技术,非暂时性计算机可读存储介质在其上存储有指令,当该指令由一个或多个处理器执行时,使得该一个或多个处理器:确定是否使用单树来编解码第一CTU;基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个对应的色度样本TB;基于该第一TU对该第一CTU的CU进行编解码;确定是否使用双树来编解码第二CTU;基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及基于该第二TU对该第二CTU的CU进行编解码,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
根据本公开的其他示例技术,一种设备包括用于确定是否使用单树来编解码第一CTU的部件;用于基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU的部件,该第一组TB样本包括第一亮度样本TB和第一两个对应的色度样本TB;用于基于该第一TU对该第一CTU的CU进行编解码的部件;用于确定是否使用双树来编解码第二CTU的部件;用于基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU的部件,该第二组TB样本包括(I)第二亮度TB样本或(II)第二两个色度样本TB;和
用于基于该第二TU对该第二CTU的CU进行编解码的部件,其中该第一TU包括用于变换该第一组TB样本的句法结构,并且该第二TU包括用于变换该第二组TB样本的句法结构。
本公开通常可以指“发信号通知”某些信息,例如句法元素。该术语“信令”通常可以指用于解码已编码视频数据的句法元素和/或其他数据的值的通信。即,视频编码器200可以用信号通知比特流中句法元素的值。通常,信令指的是在比特流中生成值。如上所述,源设备102可以基本上实时地或者不实时地将比特流传输到目的地设备116,例如当将句法元素存储到存储设备112以供目的地设备116稍后检索时可能发生的情况。
图2A和2B是示出示例四叉树二叉树(QTBT)结构130和对应的编解码树单元(CTU)132的概念图。实线表示四叉树分裂,虚线表示二叉树分裂。在该二叉树的每个分裂(即,非叶)节点中,一个标志被发信号通知以指示使用哪种分裂类型(即,水平或垂直),其中在该示例中,0指示水平分裂,1指示垂直分裂。对于四叉树分裂,不需要指明分裂类型,因为四叉树节点将一个块水平和垂直地划分成大小相等的4个子块。因此,视频编码器200可以编码并且视频解码器300可以解码QTBT结构130的区域树级的句法元素(例如分裂信息)(即实线)和QTBT结构130的预测树级的句法元素(例如分裂信息)(即虚线)。视频编码器200可以对例如预测和变换数据的视频数据进行编码,视频解码器300可以对例如预测和变换数据的视频数据进行解码,该视频数据是由QTBT结构130的终端叶节点表示的CU的视频数据。
通常,图2B的CTU 132可以与定义块的大小的参数相关联,该块的大小对应于第一和第二级的QTBT结构130的节点。这些参数可以包括CTU大小(表示样本中CTU 132的大小)、最小四叉树大小(MinQTSize,表示最小允许的四叉树叶节点大小)、最大二叉树大小(MaxBTSize,表示最大允许的二叉树根节点大小)、最大二叉树深度(MaxBTDepth,表示最大允许的二叉树深度)和最小二叉树大小(MinBTSize,表示最小允许的二叉树叶节点大小)。
对应于CTU的QTBT结构的根节点可以在该QTBT结构的第一级具有四个子节点,每个子节点可以根据四叉树划分来划分。即,第一级的节点要么是叶节点(没有子节点),要么有四个子节点。QTBT结构130的例子将这样的节点表示为包括母节点和具有分支的实线的子节点。如果第一级的节点不大于最大允许的二叉树根节点大小(MaxBTSize),则这些节点可以由各自的二叉树进一步划分。可以迭代一个节点的二叉树分裂,直到分裂产生的节点达到最小允许的二叉树叶节点大小(MinBTSize)或最大允许的二叉树深度(MaxBTDepth)。QTBT结构130的例子将这样的节点表示为具有分支的虚线。该二叉树叶节点被称为编解码单元(CU),其用于预测(例如,图像内或图像间预测)和变换,而无需任何进一步的划分。如上所述,CU也可以被称为“视频块”或“块”。
在该QTBT划分结构的一个示例中,该CTU大小设置为128×128(亮度样本和两个对应的64×64色度样本),该MinQTSize设置为16×16,该MaxBTSize设置为64×64,该MinBTSize(宽度和高度)设置为4,该MaxBTDepth设置为4。首先将四叉树划分应用于该CTU,以生成四叉树叶节点。该四叉树叶节点的大小可以从16×16(即MinQTSize)到128×128(即CTU尺寸)。如果叶四叉树节点是128×128,它将不会被二叉树进一步分裂,因为其大小超过了MaxBTSize(即,在本例中为64×64)。否则,该叶四叉树节点将被该二叉树进一步划分。因此,该四叉树叶节点也是该二叉树的根节点,并且该二叉树深度为0。当该二叉树深度达到MaxBTDepth(在本例中为4)时,不允许进一步分裂。当该二叉树节点的宽度等于MinBTSize(在本例中为4)时,意味着不允许进一步的水平分裂。类似地,高度等于MinBTSize的二叉树节点意味着不允许进一步的垂直分裂该二叉树节点。如上所述,该二叉树的叶节点被称为CU,并且根据预测和变换被进一步处理,而无需进一步划分。
图3是示出可以执行本公开的技术的示例视频编码器200的框图。图3是出于解释的目的而提供的,并且不应被认为是对本公开中广泛示例和描述的技术的限制。出于解释的目的,本公开在视频编解码标准(例如HEVC视频编解码标准和正在开发的H.266视频编解码标准)的背景下描述了视频编码器200。然而,本公开的技术不限于这些视频编解码标准,并且通常适用于视频编码和解码。
在图3的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、已解码图像缓冲器(DPB)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、DPB 218和熵编码单元220中的任何一个或全部可以在一个或多个处理器或处理电路中实现。此外,视频编码器200可以包括附加的或可替代的处理器或处理电路来执行这些和其他功能。
视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB218可以充当参考图像存储器,其存储供视频编码器200对后续视频数据的预测的参考视频数据。视频数据存储器230和DPB 218可以由各种存储器设备(例如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其他类型的存储器设备)中的任何一种形成。视频数据存储器230和DPB 218可以由相同的存储设备或单独的存储设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其他组件在片上、如图所示、或者在相对于这些组件的片外。
在本公开中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器,除非具体描述为这样,或者限于视频编码器200外部的存储器,除非具体描述为这样。相反,对视频数据存储器230的引用应该理解为存储视频编码器200接收用于编码的视频数据(例如,要编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供来自视频编码器200的各个单元的输出的临时存储。
示出了图3的各个单元,以帮助理解视频编码器200执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能的电路,并被预先设置在可执行的操作上。可编程电路是指可被编程以执行各种任务并在可执行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,使得可编程电路以软件或固件的指令定义的方式操作。固定功能电路可以执行软件指令(例如,接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
视频编码器200可以包括算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在使用由该可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的指令(例如,目标代码),或者视频编码器200内的另一个存储器(未示出)可以存储这样的指令。
视频数据存储器230被配置成存储接收到的视频数据。视频编码器200可以从视频数据存储器230检索该视频数据的图像,并将该视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是待编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加功能单元,以根据其他预测模式执行视频预测。作为示例,模式选择单元202可以包括调色板单元、块内再现单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202通常协调多个编码过程,以测试编码参数的组合以及这种组合的最终率失真值。该编码参数可以包括将CTU划分为CU、CU的预测模式、CU的残差数据的变换类型、CU的残差数据的量化参数等。模式选择单元202可以最终选择具有比其他测试组合更好的率失真值的编码参数的组合。
视频编码器200可以将从视频数据存储器230中检索到的图像划分成一系列CTU,并将一个或多个CTU封装在一个片内。模式选择单元202可以根据树结构,例如上述HEVC的QTBT结构或四叉树结构,来划分该图像的CTU。如上所述,视频编码器200可以通过根据该树结构划分CTU来形成一个或多个CU。这种CU也可以通常被称为“视频块”或“块”。
一般来说,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226),以生成当前块(例如,当前CU,或者在HEVC,PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一个或多个参考图像(例如,存储在DPB 218中的一个或多个先前编码的图像)中的一个或多个紧密匹配的参考块。具体而言,运动估计单元222可以例如根据绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块有多相似的值。运动估计单元222通常可以使用该当前块和所考虑的参考块之间的逐样本差异来执行这些计算。运动估计单元222可以识别具有从这些计算得到的最低值的参考块,指示最紧密匹配该当前块的参考块。
运动估计单元222可以形成一个或多个运动矢量(MV),其定义参考图像中的参考块相对于当前图像中的当前块的位置的位置。然后运动估计单元222可以向运动补偿单元224提供运动矢量。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。然后运动补偿单元224可以使用该运动矢量生成预测块。例如,运动补偿单元224可以使用该运动矢量来检索该参考块的数据。作为另一个例子,如果该运动矢量具有分数采样精度,则运动补偿单元224可以根据一个或多个插值滤波器对该预测块的值进行插值。此外,对于双向帧间预测,运动补偿单元224可以检索由对应运动矢量标识的两个参考块的数据,并且例如通过逐个样本平均或加权平均来组合检索到的数据。
作为另一示例,对于帧内预测或帧内预测编解码,帧内预测单元226可以从与该当前块相邻的样本生成该预测块。例如,对于方向模式,帧内预测单元226通常可以在数学上组合相邻样本的值,并在当前块的定义方向上填充这些计算值,以产生该预测块。作为另一个例子,对于DC模式,帧内预测单元226可以计算该当前块的相邻样本的平均值,并且生成该预测块以包括该预测块的每个样本的该最终平均值。
模式选择单元202将该预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收该当前块的原始未编码版本,并从模式选择单元202接收该预测块。残差生成单元204计算该当前块和预测块之间的逐样本差异。最终的逐样本差异定义了该当前块的残差块。在一些示例中,残差生成单元204还可以确定该残差块中的样本值之间的差异,以使用残差差分脉冲编解码调制(RDPCM)生成残差块。在一些示例中,残差生成单元204可以使用执行二进制减法的一个或多个减法器电路来形成。
在模式选择单元202将CU划分成PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的PU。如上所述,CU的大小可以指该CU的亮度编解码块的大小,而PU的大小可以指该PU的亮度预测单元的大小。假设特定CU的大小是2N×2N,视频编码器200可以支持用于帧内预测的2N×2N或N×N的PU大小,以及用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似的对称PU大小。视频编码器200和视频解码器300还可以支持针对帧间预测的2N×nU、2N×nD、nL×2N和nR×2N的PU大小的非对称划分。
在模式选择单元202没有进一步将CU划分为多个PU的例子中,每个CU可以与亮度编解码块和对应的色度编解码块相关联。如上所述,CU的大小可以指该CU的亮度编解码块的大小。该视频编码器200和视频解码器300可以支持2N×2N、2N×N或N×2N的CU大小。
对于其它视频编解码技术,例如块内再现模式编解码、仿射模式编解码和线性模型(LM)模式编解码,作为少数示例,模式选择单元202经由与编解码技术相关联的对应单元,为正被编码的当前块生成预测块。在一些示例中,例如调色板模式编解码,模式选择单元202可以不生成预测块,而是生成指示基于所选调色板来重构块的方式的句法元素。在这种模式下,模式选择单元202可以将这些句法元素提供给熵编码单元220进行编码。
如上所述,残差生成单元204接收当前块和对应预测块的视频数据。然后残差生成单元204为该当前块生成残差块。为了生成该残差块,残差生成单元204计算该预测块和当前块之间的逐样本差异。
变换处理单元206对该残差块应用一个或多个变换,以生成变换系数的块(这里称为“变换系数块”)。变换处理单元206可以对残差块应用各种变换,以形成该变换系数块。例如,变换处理单元206可以对残差块应用离散余弦变换(DCT)、方向变换、卡-洛变换(KLT)或概念上类似的变换。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如主变换和次变换,例如旋转变换。在一些示例中,变换处理单元206不对残差块应用变换。
例如,变换处理单元206可以确定是否使用单树来编解码第一CTU。变换处理单元206可以基于使用单树来编解码第一CTU,基于第一亮度样本TB和第一两个对应的色度样本TB确定第一TU。附加地或可替代地,变换处理单元206可以确定是否使用双树来编解码第二CTU。变换处理单元206可基于使用双树来编解码第二CTU,基于(I)第二亮度样本TB或(II)第二两个色度样本TB确定第二TU。
量化单元208可以量化变换系数块中的变换系数,以产生量化的变换系数块。量化单元208可以根据与该当前块相关联的QP值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与该当前块相关联的变换系数块的量化程度。量化可能引入信息损失,因此,量化的变换系数可能具有比由变换处理单元206产生的原始变换系数更低的精度。
逆量化单元210和逆变换处理单元212可以分别对量化的变换系数块应用逆量化和逆变换,以重构来自该变换系数块的残差块。重构单元214可以基于该重构的残差块和由模式选择单元202生成的预测块来产生对应于该当前块的重构块(尽管可能具有一定程度的失真)。例如,重构单元214可以将该重构的残差块的样本添加到由模式选择单元202生成的预测块的对应样本中,以产生该重构块。
滤波器单元216可以对重构块执行一个或多个滤波操作。例如,滤波器单元216可以执行去块操作以减少沿CU的边缘的块效应伪像。在一些示例中,可以跳过滤波器单元216的操作。
视频编码器200在DPB 218中存储重构块。例如,在不需要滤波器单元216的操作的示例中,重构单元214可以将重构块存储在DPB 218中。在需要滤波器单元216的操作的示例中,滤波器单元216可以将滤波后的重构块存储在DPB 218中。运动估计单元222和运动补偿单元224可以从DPB 218中检索参考图像,该参考图像由重构的(并且可能是被滤波的)块形成,以对随后编码的图像的块进行帧间预测。此外,帧内预测单元226可以使用当前图像的DPB 218中的重构块来对当前图像中的其他块进行帧内预测。
通常,熵编码单元220可以对从视频编码器200的其他功能组件接收的句法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测句法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的句法元素执行一个或多个熵编码操作,以生成已熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应变量长度编解码(CAVLC)操作、CABAC操作、变量到变量(V2V)长度编解码操作、基于句法的上下文自适应二进制算术编解码(SBAC)操作、概率区间划分熵(PIPE)编解码操作、指数-戈伦(Golomb)编码操作或另一种类型的熵编码操作。在一些示例中,熵编码单元220可以在旁路模式下操作,其中句法元素没有被熵编码。
视频编码器200可以输出包括重构片或图像的块所需的已熵编码句法元素的比特流。具体而言,熵编码单元220可以输出该比特流。
上面描述的操作是针对块描述的。这种描述应该理解为亮度编解码块和/或色度编解码块的操作。如上所述,在一些示例中,该亮度编解码块和色度编解码块是CU的亮度分量和色度分量。在一些示例中,该亮度编解码块和色度编解码块是PU的亮度分量和色度分量。
在一些示例中,针对亮度编解码块执行的操作不需要针对该色度编解码块重复。作为一个示例,标识亮度编解码块的运动矢量(MV)和参考图像的操作不需要为了标识该色度块的MV和参考图像而重复。相反,该亮度编解码块的MV可以被缩放以确定该色度块的MV,并且该参考图像可以是相同的。作为另一个例子,对于该亮度编解码块和色度编解码块,帧内预测过程可以是相同的。
视频编码器200表示被配置为编码视频数据的设备的示例,该设备包括被配置为存储视频数据的存储器,以及在电路中实现并被配置为确定是否使用单树来编解码第一CTU的一个或多个处理单元;基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个对应的色度样本TB;基于该第一TU编码该第一CTU的CU;确定是否使用双树来编解码第二CTU;基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及基于该第二TU编码该第二CTU的CU,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
图4是示出可以执行本公开的技术的示例视频解码器300的框图。图4是出于解释的目的而提供的,并且不限制本公开中广泛示例和描述的技术。出于解释的目的,本公开描述了根据VVC和HEVC的技术的视频解码器300。然而,本公开的技术可以由被配置为其他视频编解码标准的视频编解码设备来执行。
在图4的示例中,视频解码器300包括已编码图像缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和已解码图像缓冲器(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任何一个或全部可以在一个或多个处理器或处理电路中实现。此外,视频解码器300可以包括附加的或可替代的处理器或处理电路来执行这些和其他功能。
预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加单元,以根据其他预测模式执行预测。作为示例,预测处理单元304可以包括调色板单元、块内再现单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其他示例中,视频解码器300可以包括更多、更少或不同的功能组件。
CPB存储器320可以存储要由视频解码器300的组件解码的视频数据,例如已编码的视频比特流。存储在CPB存储器320中的视频数据可以例如从计算机可读介质110(图1)获得。CPB存储器320可以包括存储来自已编码视频比特流的已编码视频数据(例如,句法元素)的CPB。此外,CPB存储器320可以存储除已编码图像的句法元素之外的视频数据,例如表示来自视频解码器300的各个单元的输出的临时数据。DPB 314通常存储已解码的图像,当解码已编码视频比特流的后续数据或图像时,视频解码器300可以输出和/或用作参考视频数据。CPB存储器320和DPB存储器314可以由多种存储器设备(例如包括SDRAM、MRAM、RRAM的DRAM或其他类型的存储器设备)中的任何一种形成。CPB存储器320和DPB存储器314可以由相同的存储器设备或单独的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其他组件在片上,或者相对于这些组件在片外。
附加地或可替代地,在一些示例中,视频解码器300可以从存储器120(图1)检索已编码的视频数据。即,存储器120可以如上所述利用CPB存储器320存储数据。类似地,当视频解码器300的一些或全部功能在软件中实现以由视频解码器300的处理电路执行时,存储器120可以存储将由视频解码器300执行的指令。
图4中所示的各种单元被示出以帮助理解视频解码器300执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。类似于图3,固定功能电路指的是提供特定功能的电路,并且被预设在可以被执行的操作上。可编程电路是指可被编程以执行各种任务并在可执行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,使得该可编程电路以软件或固件的指令定义的方式操作。固定功能电路可以执行软件指令(例如,接收参数或输出参数),但是该固定功能电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频解码器300的操作由在该可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收和执行的软件的指令(例如,目标代码)。
熵解码单元302可以从该CPB接收已编码的视频数据,并对视频数据进行熵解码以再现句法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从该比特流提取的句法元素来生成已解码的视频数据。
通常,视频解码器300在逐块的基础上重构图像。视频解码器300可以对每个块单独执行重构操作(其中当前正在重构的块,即已解码的块可以被称为“当前块”)。
熵解码单元302可以熵解码定义量化的变换系数块的量化变换系数的句法元素,以及变换信息,例如QP和/或变换模式指示。逆量化单元306可以使用与该量化的变换系数块相关联的QP来确定量化程度,并且类似地,确定逆量化单元306要应用的逆量化程度。逆量化单元306可以例如执行逐位左移操作来逆量化量化的变换系数。逆量化单元306由此可以形成包括变换系数的变换系数块。
在逆量化单元306形成该变换系数块之后,逆变换处理单元308可以对该变换系数块应用一个或多个逆变换,以生成与该当前块相关联的残差块。例如,逆变换处理单元308可以对该变换系数块应用逆DCT、逆整数变换、逆卡-洛变换(KLT)、逆旋转变换、逆方向变换或另一逆变换。
例如,逆变换处理单元308可以确定是否使用单树来编解码第一CTU。逆变换处理单元308可以基于使用单树来编解码第一CTU,基于第一亮度样本TB和第一两个的对应色度样本TB确定第一TU。附加地或可替代地,逆变换处理单元308可以确定是否使用双树来编解码第二CTU。逆变换处理单元308可以基于使用双树来编解码第二CTU,基于(I)第二亮度样本TB或者(II)第二两个色度样本TB确定第二TU。
此外,预测处理单元304根据由熵解码单元302熵解码的预测信息句法元素来生成预测块。例如,如果该预测信息句法元素指示该当前块是帧间预测的,则运动补偿单元316可以生成该预测块。在这种情况下,该预测信息句法元素可以指示DPB 314中的参考图像(从该参考图像中检索参考块),以及标识该参考图像中的参考块相对于该当前图像中的当前块的位置的运动矢量。运动补偿单元316通常可以以基本上类似于运动补偿单元224(图3)所描述的方式来执行帧间预测过程。
作为另一示例,如果该预测信息句法元素指示该当前块是帧内预测的,则帧内预测单元318可以根据由该预测信息句法元素指示的帧内预测模式来生成该预测块。同样,帧内预测单元318通常可以以基本上类似于帧内预测单元226(图3)描述的方式来执行该帧内预测过程。帧内预测单元318可以从DPB 314检索该当前块的相邻样本的数据。
重构单元310可以使用该预测块和残差块来重构该当前块。例如,重构单元310可以将该残差块的样本添加到该预测块的对应样本,以重构该当前块。
滤波器单元312可以对重构的块执行一个或多个滤波操作。例如,滤波器单元312可以执行去块(deblock)操作以减少沿着该重构的块的边缘的块效应伪像。过滤器单元312的操作不必在所有示例中执行。
视频解码器300可以将该重构的块存储在DPB 314中。例如,在不执行滤波器单元312的操作的示例中,重构单元310可以将重构的块存储到DPB 314中。在执行滤波器单元312的操作的示例中,滤波器单元312可以将滤波后的重构的块存储到DPB 314中。如上所述,DPB 314可以向预测处理单元304提供参考信息,例如用于帧内预测的当前图像的样本和用于后续运动补偿的先前已解码的图像。此外,视频解码器300可以从DPB 314输出已解码的图像(例如,已解码的视频),用于后续在显示设备上呈现,例如图1的显示设备118。
以这种方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括被配置为存储视频数据的存储器,以及在电路中实现并被配置为确定是否使用单树来编解码第一CTU的一个或多个处理器;基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个对应的色度样本TB;基于该第一TU解码该第一CTU的CU;确定是否使用双树来编解码第二CTU;基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及基于该第二TU解码该第二CTU的CU,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
视频编解码标准包括ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual和ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包括其可缩放视频编解码(SVC)和多视角视频编解码(MVC)扩展。2013年4月,HEVC由ITU-T视频编解码专家组(VCEG)和ISO/IEC MPEG的视频编解码联合协作小组(JCT-VC)最终确定。
JVET是由MPEG和ITU-T研究小组16的VCEG组成的合作团队,正在研究一种新的视频编解码标准,称为VVC。VVC的主要目标是在压缩性能方面比现有的HEVC标准有显著提高,帮助部署更高质量的视频服务和新兴应用,如360°全方位沉浸式多媒体和高动态范围(HDR)视频。
视频编解码器(例如,视频编码器200或视频解码器300)使用QP值来确定用于量化/逆量化变换系数的步长。在某些示例中,QP值被指定在-QpBdOffset到63(含)的范围内,其中63是最大QP值。QpBdOffset被指定为特定位深度的固定值,推断出为6*(位深度8)。通过将QpBdOffset与指定的QP值相加计算出的QP素数用于推断实际步长。为了便于描述,在本公开的其余部分中,该QP和QP素数可以互换使用,要理解的是,在大多数QP推断过程中仅使用QP值,而QP素数仅在确定步长之前的最后阶段使用。QP值变化1大致表示步长变化12%;QP值变化6对应于步长变化2倍。量化参数值越高,量化步长越大,被量化的系数的表示越粗糙。
量化组(QG)是图像中可以用信号通知QP偏移参数的区域。当被用信号通知时,该偏移参数用于推断该量化组中的一个或多个编解码块的QP值。该偏移参数通常被称为增量QP值。
视频编码器200可以通过例如来自编解码树块(CTB)级别的最大深度或者使用指示相对于该CTB大小的组的样本数量的变量来发信号通知QG。
注意,在一些示例中,仅针对该QG中具有非零系数的第一块来发信号通知QG的QP值。对于QG中在具有非零系数的第一块之前的块,QP值可以被推断为预测的QP值,如本公开稍后所述。具有零系数的块不需要任何QP值,因为没有要量化/逆量化的系数。相反,视频解码器300可以在确定要应用的去块滤波器的一些参数的去块过程中使用该预测的QP值。通常,QG指的是亮度QG,其中该亮度QG是编解码块具有相同预测QP值的区域。
在VVC草案6中,以下是与由视频编码器200和视频解码器300推断出的亮度和色度的QP参数相关的句法元素。
序列参数集
min_qp_prime_ts_minus4 ue(v)
表1
表1中的句法元素min_qp_prime_ts_minus4用于推断变换跳过模式的最小QP值。
Figure BDA0003540179980000271
表2
表2中的句法元素用于指定映射表,以通过Cb、Cr和联合Cb-Cr分量的亮度QP值推断出色度QP值。
Figure BDA0003540179980000272
表3
表3中与QP值相关的句法元素适用于亮度自适应QP偏移,该偏移将应用于亮度去块过程。
图像参数集
Figure BDA0003540179980000281
表4
表4中的句法元素用于推断出参考PPS的条带的初始QP;并指定亮度和色度的QG以及指示CU色度偏移的偏移值表。
条带头
Figure BDA0003540179980000282
Figure BDA0003540179980000291
表5
表5中的句法元素为亮度分量和色度分量进一步指定了条带的初始QP的增量。
变换单元句法
Figure BDA0003540179980000292
表6
表6的句法元素指定了用于推断出QG的QP值的亮度分量和色度分量的CU级QP偏移。
在VVC草案6中,视频编码器200或视频解码器300可以如下推断出亮度和色度的QP值。对于亮度分量,条带QP可以通过该初始QP(在PPS中用信号通知)和条带中用信号通知的QP偏移推断得出。指定一个QG,并为每个QP推到出一个预测的QP,即QPY_PRED。基于QG在QG砖块和QG的CTB行中的相对位置,QPY_PRED的值可能会有所不同。QPY值是通过QPY_PRED和发信号通知给QG的增量QP推断得出。
应当注意,可以为QG中的所有编解码块推断QPY_PRED。但是,仅仅针对在特定条件下的块而发信号通知增量QP。因此,仅在特定情况下才能推断得出QP值。
该色度QP是通过与色度块的中心并置的样本的亮度QP的映射值和可能适用于编解码块的任何QP偏移而推断得出。与该亮度QP偏移类似,针对色度量化组中具有非零系数的第一个色度编解码块而发信号通知该色度QP偏移。
视频编码器200和视频解码器300可以遵循VVC草案6中的QP值的推断过程,如下所述。该推断过程的输入为:1)亮度位置(xCb,yCb),其指定当前编解码块的左上角亮度样本相对于当前图像的左上角亮度样本的位置;2)变量cbWidth,其指定亮度样本中当前编解码块的宽度;3)变量cbHeight,其指定亮度样本中当前编码块的高度;以及4)变量treeType,其指定是使用单树(SINGLE_TREE)还是双树来划分CTU,以及当使用双树时,当前是处理亮度分量(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA)。
在推断过程中,推断出亮度量化参数Qp′Y和色度量化参数Qp′Cb和Qp′Cr。
亮度位置(xQg,yQg)指定相对于当前图像的左上角亮度样本的当前量化组的左上角亮度样本。水平和垂直位置xQg和yQg分别设置为等于CuQgTopLeftX和CuQgTopLeftY。
应该注意的是,当前的QG是CTB内部的共享相同的qPY_PRED的矩形区域。当前QG的宽度和高度等于编解码树节点的宽度和高度,编解码树节点的左上角的亮度样本位置被分配给变量CuQgTopLeftX和CuQgTopLeftY。
当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,视频解码器300可以通过以下有序步骤推断预测亮度量化参数qPY_PRED。步骤1)变量qPY_PREV推断如下:如果下列条件中的一个或多个为真,则qPY_PREV被设置为等于SliceQpY:a)当前QG是条带中的第一个QG;b)当前的QG是砖块中的第一个QG;c)当前QG是砖块的CTB行中的第一个QG,并且entropy_coding_sync_enabled_flag等于1。否则,qPY_PREV被设置为等于解码顺序中的上一个QG中最后亮度编解码单元的亮度量化参数QpY
步骤2)调用VVC草案6第6.4.4条中规定的相邻块可用性的推断过程,将位置(xCurr,yCurr)设置为等于(xCb,yCb),相邻位置(xNbY,yNbY)设置为等于(xQg–1,yQg),checkPredModeY设置为FALSE,cIdx设置为0作为输入,并将输出分配给availableA。变量qPY_A推断如下:如果下列一个或多个条件为真(true),则qPY_A设置为等于qPY_PREV:availableA等于假(FALSE);或者包含覆盖亮度位置(xQg–1,yQg)的亮度编解码块的CTB不等于包含位于(xCb,yCb)的当前亮度编解码块的CTB,例如,以下所有条件都成立:(xQg–1)>>CtbLog2SizeY不等于(xCb)>>CtbLog2SizeY和(yQg)>>CtbLog2SizeY不等于(yCb)>>CtbLog2SizeY。否则,qPY_A被设置为等于包含亮度编解码块覆盖(xQg–1,yQg)的编解码单元的亮度量化参数QpY
步骤3)调用VVC草案6第6.4.4条中规定的相邻块可用性的推断过程,将位置(xCurr,yCurr)设置为等于(xCb,yCb),相邻位置(xNbY,yNbY)设置为等于(xQg,yQg–1),checkPredModeY设置为FALSE,cIdx设置为0作为输入,并将输出分配给availableB。变量qPY_B推断如下:如果下列一个或多个条件为真,则qPY_B设置为等于qPY_PREV:availableB等于FALSE;或者包含覆盖亮度位置(xQg,yQg–1)的亮度编解码块的CTB不等于包含在(xCb,yCb)处的当前亮度编解码块的CTB,例如,以下所有条件都为真:(xQg)>>CtbLog2SizeY不等于(xCb)>>CtbLog2SizeY和(yQg–1)>>CtbLog2SizeY不等于(yCb)>>CtbLog2SizeY。否则,qPY_B被设置为等于包含亮度编解码块覆盖(xQg,yQg–1)的编解码单元的亮度量化参数QpY
步骤4)预测的亮度量化参数qPY_PRED推断如下:如果以下所有条件都为真,则qPY_PRED被设置为等于包含亮度编解码块覆盖(xQg,yQg–1)的编解码单元的亮度量化参数QpY:availableB等于TRUE;并且当前量化组是砖块内CTB行中的第一个量化组,并且entropy_coding_sync_enabled_flag等于0。否则,qPY_PRED推断如下:
qPY_PRED=(qPY_A+qPY_B+1)>>1 (8-932)
变量QpY推断如下:
QpY
((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))–QpBdOffsetY (8-932)
亮度量化参数Qp′Y推断如下:
Qp′Y=QpY+QpBdOffsetY (8-934)
当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,适用以下情况:当treeType等于DUAL_TREE_CHROMA时,该变量QpY设置为等于覆盖亮度位置(xCb+cbWidth/2,yCb+cbHeight/2)的亮度编解码单元的亮度量化参数。变量qPCb、qPCr和qPCbCr推断如下:
qPiChroma=Clip3(-QpBdOffsetC,63,QpY) (8-935)
qPiCb=ChromaQpTable[0][qPiChroma] (8-936)
qPiCr=ChromaQpTable[1][qPiChroma] (8-937)
qPiCbCr=ChromaQpTable[2][qPiChroma] (8-938)
Cb和Cr分量、Qp′Cb和Qp′Cr以及联合Cb-Cr编解码Qp′CbCr的色度量化参数推断如下:
Qp′Cb=Clip3(-QpBdOffsetC,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffsetC (8-939)
Qp′Cr=Clip3(-QpBdOffsetC,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffsetC (8-940)
Qp′CbCr=Clip3(-QpBdOffsetC,63,qPCbCr+pps_cbcr_qp_offset+slice_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffsetC (8-941)
VVC草案6支持亮度和色度的两种编解码方式:单树和双树。在单树下,视频编码器200和视频解码器300以交织的方式对每个CTU的亮度样本和色度样本进行编解码。在双树下,视频编码器200和视频解码器300对每个CTU的亮度样本和色度样本进行连续的编解码。VVC草案6中变换单元的定义如下:变换单元(TU):图像的一个亮度样本变换块和两个对应的色度样本变换块,以及用于变换该变换块样本的句法结构。
在该定义中,短语“对应的色度变换块”用于指示TU的亮度和色度的变换块(TB)覆盖相同的区域(即使色度TB因色度二次采样而具有不同的大小)。
然而,在双树情况下,不容易将TU定义为一个亮度变换块和两个对应的色度变换块。在双树中分离CTU中亮度样本和色度样本的决定是分开的。因此,以下场景之一可能适用:一个亮度TB可以对应于每个分量的两个色度TB(与定义对齐);一个亮度TB可以对应于每个分量的一个色度TB或两个以上的色度TB;多个亮度TB可以对应于每个分量的一个色度块;或者可能没有这种对应关系。
在这种情况下,诸如视频解码器300的视频解码器可能无法确定变换单元中包括什么,这可能导致视频解码器在句法表的解析和视频数据的解码方面存在潜在问题。目前,在VVC草案6中,一个变换块仅在以下条件下与变换单元相关联:单色图像(仅一个分量);或者separate_color_plane_flag等于1。
下面的例子说明了由于(有时是部分由于)这种模糊性可能出现的问题。请注意,下面的一些示例也适用于单树情况。
在一个示例中,当变换单元中不存在句法元素时,tu_cbf_cr[]和tu_cbf_cb[](这两个句法元素在这里可以被称为色度CBF值)的语义被推断为等于0。如果该TU同时包含亮度样本和色度样本,并且是使用双树模式编解码条带的,则首先对亮度树进行编解码,然后是色度树。在这种情况下,视频解码器300可能无法确定在解析亮度树时是使用句法元素tu_cbf_cb和tu_cbf_cr的实际值(可能还不可用)还是使用推断值。这可能会导致该视频数据解码不当。这些句法元素的值用于解析tu_cbf_luma(注意,在当前TU中不存在tu_cbf_luma时,tu_cbf_luma也有推理规则)。目前,双树仅适用于帧内编解码条带,在这种情况下,色度CBF值不用于解析亮度CBF值。
在另一个例子中,发信号/解析亮度的增量QP值取决于tu_cbf_cb和tu_cbf_cr值。类似于前面的段落,对于双树,视频解码器300可能无法确定是使用tu_cbf_cb和tu_cbf_cr的实际值(当可用时)还是使用推断值。
在又一示例中,在单树编解码的条带中,帧内子划分(ISP)编解码的块可以具有N个子划分。首先对N个亮度TB进行编解码,然后是色度(例如,ISP仅适用于亮度)。与色度块相关联的句法元素用最后一个亮度TB来编解码。换句话说,色度CBF值仅仅是针对最后一个帧内子划分而发信号通知的。
对于非ISP块,当色度CBF值不为零时,针对亮度TB来发信号通知亮度的增量QP值。对于前N-1个亮度子划分,视频解码器300可能无法确定在解码亮度的增量QP的值时是使用色度CBF的实际值还是推断值。这与非ISP块的设计不一致。
本公开描述了用于改进混合的基于变换的视频编解码器(例如实现VVC版本(包括发信号)的视频编解码器)的色度QP推断的几种技术。应当理解,这些技术中的一种或多种可以独立使用,或者与其他技术结合使用。
变换单元的几个潜在定义如下。根据本公开的技术,视频编码器200和视频解码器300可以被配置为根据这些定义中的一个或多个来编解码视频数据,包括TU。
在一个示例中,该变换单元可以被定义如下:变换单元(TU):一个亮度样本的变换块,以及在某些情况下两个对应的色度样本的变换块,以及用于变换该变换块样本的句法结构。
在一个示例中,该变换单元定义如下:变换单元(TU):用于变换以下样本的变换块的一个或多个变换块和句法结构:在单树中,一个亮度样本变换块和两个对应的色度样本变换块;以及在双树中,一个亮度样本变换块或两个对应的色度样本变换块。
在另一个替代方案中,该变换单元定义如下:变换单元(TU):用于变换以下样本的变换块的一个或多个变换块和句法结构:在单树中,当ISP未被应用于包含该样本的编解码块时,一个亮度样本变换块和两个对应的色度样本变换块;在单树中,当ISP被应用于包含该样本的编解码块时,前N–1个亮度变换块的亮度样本变换块,以及一个亮度样本变换块和两个色度样本变换块,其中该色度样本可以对应于该编解码块中的一个以上的变换块;以及在双树中,一个亮度样本变换块或两个对应的色度样本变换块。
在另一个替代方案中,该变换单元定义如下:变换单元(TU):一个亮度样本变换块,或者当使用单树来编解码模式时、图像的一个亮度样本变换块的和两个对应的色度样本变换块,或者当使用双树来编解码模式时、一个亮度样本变换块或者两个色度样本变换块,以及用于变换该变换块样本的句法结构。
例如,视频编码器200或视频解码器300可以确定是否使用单树来编解码第一CTU。基于使用单树来编解码第一CTU,视频编码器200或视频解码器300可基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个对应的色度样本TB,并基于该第一TU编解码该第一CTU的CU。视频编码器200或视频解码器300可以确定是否使用双树来编解码第二CTU。基于使用双树来编解码第二CTU,视频编码器200或视频解码器300可以基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB,并且基于该第二TU编解码该第二CTU的CU。在一些示例中,该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
避免增量QP信号对色度CBF值的依赖可能是有益的。例如,对于双树情况,视频编码器200或视频解码器300可以被配置为确定增量QP值,而不参考色度CBF值。换句话说,该增量QP值可以不依赖于色度CBF值。在一些情况下,对于双树和单树的情况,可以消除信令或解析增量QP对色度CBF值的依赖。在其他示例中,在双树情况下,视频编码器200或视频解码器300可以在亮度树的开始处将色度CBF句法元素的值初始化为零。例如,基于使用双树来编解码的CTU,视频编码器200或视频解码器300可以在亮度树的开始处将色度CBF值初始化为零。
在单树的情况下,视频编码器200可以发信号通知ISP CU中色度的tu_cbf值以及第一亮度子划分,并且发信号通知与色度以及该第一子划分相关联的残差。在一个示例中,尽管在第一个帧内子划分中发信号通知色度的tu_cbf值,但是可以仅在最后一个帧内子划分中发信号通知该残差。在一些示例中,在启用ISP时色度部件会被禁用,其中色度重构依赖于重构的亮度值(例如,交叉分量线性模型(CCLM)预测、整形等)。
在一些示例中,当当前TU中不存在tu_cbf_cr或tu_cbr_cb时,视频解码器300可能无法推断出tu_cbf_cr或tu_cbr_cb等于0。
本公开中公开的一种或多种技术还可以受到应用色度映射表的样本的如下一个或多个特征的约束:例如,块形状、纵横比、所使用的预测模式、相邻块的特征、样本相对于图像的位置(靠近边界或远离边界,包括图像边界、条带边界、条带边界、砖块边界等)。
上述一些技术可以由视频编码器(例如,视频编码器200)或视频解码器(例如,视频解码器300)或两者来应用。尽管所公开的许多技术是针对色度分量的,但是这些技术也可以适用于亮度和可用于表示视频的其他颜色空间中的分量。本文公开的一种或多种技术可以一起应用或独立应用。此外,尽管上文描述的一种或多种技术可以针对特定类型的块进行描述,但是应当理解,这些技术适用于不同类型的块——编解码块、预测块、变换块或指定图像的某些空间划分的其他类型的块。
在一些示例中,视频编码器200和视频解码器300可以被配置为确定亮度增量QP,而不参考色度CBF值。表7中<DELETE>和</DELETE>之间所示的以下删除可能是在VVC草案6的句法和语义中进行的。在本例中,消除了亮度增量QP信号对色度CBF值的依赖性。
表7
Figure BDA0003540179980000361
Figure BDA0003540179980000371
Figure BDA0003540179980000381
在一个示例中,视频解码器300只对单树的情况应用tu_cbf_cb和tu_cbf_cr的解析。例如,视频解码器300可以确定是否使用单树来编解码CTU,并且基于使用单树来编解码的CTU,解析色度CBF值。表8中显示了<ADD>和</ADD>之间的添加。句法结构可能如下:
Figure BDA0003540179980000382
Figure BDA0003540179980000391
Figure BDA0003540179980000401
表8
在另一个例子中,视频编码器200或视频解码器300将TuCbfCb和TuCbfCr的值初始化为0。VVC草案6的句法和语义可能会有以下变化。下面,添加显示在<ADD>和</ADD>之间,删除显示在<DELETE>和</DELETE>之间。此外,在句法表、语义和解码过程中tu_cbf_cb和tu_cbf_cr的一个或多个出现可以被TuCbfCb和TuCbfCr代替。在一些替代方案中,对于图像中的所有样本,变量TuCbfCr和TuCbfCb可以被初始化为0。
7.4.7.1通用条带头语义
当存在条带句法元素时,条带句法元素slice_pic_parameter_set_id、non_reference_picture_flag、color_plane_id、slice_pic_order_cnt_lsb、recovery_poc_cnt、no_output_of_prior_pics_flag、pic_output_flag和slice_temporal_mvp_enabled_flag中的每一个的值在编解码图像的所有条带中都应该相同。
指定包含cu_qp_delta_abs的编解码单元的亮度量化参数与其预测值之间的差值的变量CuQpDeltaVal设置为等于0。变量CuQpOffsetCb、CuQpOffsetCr和CuQpOffsetCbCr都被设置为等于0,其指定了在确定包含cu_chroma_qp_offset_flag的编解码单元的Qp′Cb,Qp′Cr和Qp′CbCr量化参数的各自值时要使用的值。
<ADD>为变换块分别指定Cb和Cr分量的编解码块标志值的变量TuCbfCr和TuCbfCb被设置为等于0。</ADD>
slice_pic_parameter_set_id指定正在使用的PPS的pps_pic_parameter_set_id的值。slice_pic_parameter_set_id的值应在0到63(含)的范围内。
...
7.4.9.10变换单元语义
变换系数级别由数组TransCoeffLevel[x0][y0][cIdx][xC][yC]表示。数组索引x0、y0指定所考虑的变换块的左上角亮度样本相对于图像的左上角亮度样本的位置(x0,y0)。数组索引cIdx为颜色分量指定指示器;Y等于0,Cb等于1,Cr等于2。数组索引xC和yC指定当前变换块内的变换系数位置(xC,yC)。当在条款7.3.8.11中未规定TransCoeffLevel[x0][y0][cIdx][xC][yC]的值时,推断其等于0。
tu_cbf_cb[x0][y0]等于1指定Cb变换块包含不等于0的一个或多个变换系数级别。数组索引x0,y0指定所考虑的变换块的左上角位置(x0,y0)。
<DELETE>当当前TU中不存在tu_cbf_cb[x0][y0]时,其值被推断为等于0。</DELETE>
<ADD>当tu_cbf_cb[x0][y0]存在时,变量TuCbfCb[x0][y0]被设置为等于tu_cbf_cb[x0][y0]。</ADD>
tu_cbf_cr[x0][y0]等于1指定Cr变换块包含不等于0的一个或多个变换系数级别。数组索引x0,y0指定所考虑的变换块的左上角位置(x0,y0)。
<DELETE>当当前TU中不存在tu_cbf_cr[x0][y0]时,其值被推断为等于0。</DELETE>
<ADD>当tu_cbf_cr[x0][y0]存在时,变量TuCbfCr[x0][y0]设置为等于tu_cbf_cr[x0][y0]。</ADD>
tu_cbf_luma[x0][y0]等于1指定亮度变换块包含不等于0的一个或多个变换系数级别。数组索引x0、y0指定所考虑的变换块的左上角亮度样本相对于图像的左上角亮度样本的位置(x0,y0)。
当当前TU中不存在tu_cbf_luma[x0][y0]时,其值推断如下:
...
在另一个例子中,视频编码器200发信号通知第一子划分而不是最后一个子划分中的单树中的ISP块的tu_cbf_cb和tu_cbf_cr的值,并且视频解码器300解析第一子划分而不是最后一个子划分中的单树中的ISP块的tu_cbf_cb和tu_cbf_cr的值。VVC草案6的句法和语义可能会有以下变化。
表9中显示了<ADD>和</ADD>之间的添加。表9中显示了<DELETE>和</DELETE>之间的删除。
Figure BDA0003540179980000421
Figure BDA0003540179980000431
Figure BDA0003540179980000441
Figure BDA0003540179980000451
表9
在一些示例中,视频编码器200可以将诸如tu_joint_cbcr_residual_flag[][]的句法元素的索引设置为xC和yC,而不是x0和y0。这可能反映在上面的句法表(表9)和标准规范中的对应位置。
在其他示例中,可以使用变量TuCbfCb和TuCbfCr,并且仍然可以发信号通知句法元素tu_cbf_cb和tu_cbf_cr与最后一个帧内子划分。
在另一示例中,tu_cbf_cb和tu_cbf_cr句法元素可以与第一帧内子划分一起由视频编码器200发信号通知,但是对应的残差可以在最后的帧内子划分中发信号通知。除了在如下的表10中调用残差编解码结构之外,句法结构可以与上面类似。添加显示在<ADD>和</ADD>之间。删除显示在<DELETE>和</DELETE>之间。
Figure BDA0003540179980000461
表10
在一些示例中,其他句法元素(色度QP偏移、联合Cb-Cr标志等)的信令也可以以chromaResidualParseFlag为条件。
在另一个例子中,上面的一些例子可以组合如下:
Figure BDA0003540179980000471
表11
在另一个示例中,色度残差句法元素的解析仅适用于色度句法元素不依赖于亮度信令或者亮度CBF所依赖的色度CBF可能已经被解析的一些情况。例如,当视频解码器300已经解析了亮度CBF所依赖的色度句法元素时,视频解码器300可以仅解析色度残差句法元素。例如,视频解码器300可以确定色度CBF是否已经被解析,以及基于色度CBF已经被解析以及色度CBF的值,解析色度残差句法元素。在一些示例中,亮度CBF可能取决于色度CBF的值。在一些示例中,视频编码器200或视频解码器300可以确定双树编解码的CTU的TU是否是基于两个色度样本TB,并且基于该TU基于两个色度样本TB,抑制发信号或解析亮度残差。对句法结构和语义的更改在下表12中列出。添加显示在<ADD>和</ADD>之间。删除显示在<DELETE>和</DELETE>之间。
Figure BDA0003540179980000481
Figure BDA0003540179980000491
Figure BDA0003540179980000501
Figure BDA0003540179980000511
Figure BDA0003540179980000521
表12
VVC草案6中的语义的变化如下。删除显示在<DELETE>和</DELETE>之间。
tu_cbf_cb[x0][y0]等于1指定Cb变换块包含不等于0的一个或多个变换系数级别。数组索引x0,y0指定所考虑的变换块的左上角位置(x0,y0)。
当当前TU</DELETE>中不存在<DELETE>tu_cbf_cb[x0][y0]时,推断其值等于0。在一个示例中,当在句法结构transform_unit()的实例中没有用信号通知tu_cbf_cb时,该值可以被推断为0。
tu_cbf_cr[x0][y0]等于1指定Cr变换块包含不等于0的一个或多个变换系数级别。数组索引x0,y0指定所考虑的变换块的左上角位置(x0,y0)。
当当前TU</DELETE>中不存在<DELETE>tu_cbf_cr[x0][y0]时,推断其值等于0。在一个示例中,当在句法结构transform_unit()的实例中没有用信号通知tu_cbf_cr时,该值可以被推断为0。
tu_cbf_luma[x0][y0]等于1指定亮度变换块包含不等于0的一个或多个变换系数级别。数组索引x0、y0指定所考虑的变换块的左上角亮度样本相对于图像的左上角亮度样本的位置(x0,y0)。
当当前TU<DELETE>中不存在tu_cbf_luma[x0][y0]时,其值推断如下:
如果cu_sbt_flag等于1,且下列条件之一为真,则推断tu_cbf_luma[x0][y0]等于0:subTuIndex等于0以及cu_sbt_pos_flag等于1;或者subTuIndex等于1以及cu_sbt_pos_flag等于0。否则,tu_cbf_luma[x0][y0]被推断为等于1。
例如,视频解码器300可以确定CBF是否存在,并且基于CBF不存在,推断CBF为零。在一些示例中,CBF可以是色度CBF,例如tu_cbf_cb[x0][y0]或tu_cbf_cr[x0][y0]。在一些示例中,CBF可以是亮度CBF,例如tu_cbf_luma[x0][y0]。
图5是示出根据本公开的技术的用于确定变换单元(TU)的技术的流程图。视频编码器200或视频解码器300可以确定是否使用单树来编解码第一CTU(330)。例如,视频编码器200可以确定在单树中编解码第一CTU,并且向视频解码器300发信号通知指示在单树中编解码第一CTU的句法元素。视频解码器300可以解析该句法元素,以确定该第一CTU是使用单树编码的。
视频编码器200(例如,变换处理单元206)或视频解码器300(例如,逆变换处理单元308)可以基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU(332),该第一组TB样本包括第一亮度样本TB和第一两个对应的色度样本TB。例如,视频编码器200或视频解码器300可以确定第一TU,该第一TU包括第一亮度样本TB和第一两个的对应色度样本TB。
视频编码器200或视频解码器300可以基于该第一TU对该第一CTU的CU进行编解码(334)。例如,视频编码器200可以基于该第一TU对该第一CTU的CU进行编码,并且视频解码器300可以基于该第一TU对该第一CTU的CU进行解码。
视频编码器200或视频解码器300可以确定是否使用双树来编解码第二CTU(336)。例如,视频编码器200可以确定在双树中编解码第二CTU,并且向视频解码器300发信号通知指示在双树中编解码该第二CTU的句法元素。视频解码器300可以解析句法元素以确定该第二CTU是使用双树来编解码的。
视频编码器200(例如,变换处理单元206)或视频解码器300(例如,逆变换处理单元308)可以基于使用双树来编解码的该第二CTU,基于第二组TB样本确定第二TU(338),该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB。例如,视频编码器200或视频解码器300可以确定包括第二亮度样本TB或第二两个色度样本TB的第二TU。
视频编码器200或视频解码器300可以基于该第二TU编解码该第二CTU的CU(340)。例如,视频编码器200可以基于该第二TU编码该第二CTU的CU,并且视频解码器300可以基于该第二TU解码该第二CTU的CU。
在一些示例中,视频编码器200或视频解码器300可以基于使用双树来编解码第二CTU,在亮度树的开始处将色度CBF值初始化为零。在一些示例中,视频解码器300可以确定CBF是否存在,并且基于CBF不存在,推断CBF为零。在一些例子中,CBF是色度CBF。在某些示例中,CBF是亮度CBF。
在一些示例中,视频解码器300可以确定色度CBF是否已经被解析,以及基于色度CBF已经被解析以及色度CBF的值来解析色度残差句法元素。在一些示例中,亮度CBF取决于色度CBF的值。
在一些示例中,视频编码器200或视频解码器300可以确定该第二TU是否基于第二两个色度样本TB,并且可以基于该第二TU基于第二两个色度样本TB来抑制信令或解析亮度残差。
在一些示例中,视频编码器200或视频解码器300可以确定是否使用单树来编解码第三CTU。视频编码器200或视频解码器300可以确定是否使用帧内子划分编解码该第三CTU。基于使用单树和帧内子划分编解码第三CTU,视频编码器200或视频解码器300可以基于第三组TB样本确定第三TU,该第三组TB样本包括第三亮度样本TB,并且基于第四组TB样本确定第四TU,该第四组TB样本包括第四亮度样本TB和第四两个对应的色度样本TB。视频编码器200或视频解码器300可以基于该第三TU和第四TU对该第三CTU的CU进行编解码。
图6是示出用于编码当前块的示例方法的流程图。当前块可以包括当前CU。尽管对视频编码器200(图1和图3)进行了描述,但是应当理解,其他设备可以被配置为执行类似于图6的方法。
在该示例中,视频编码器200最初预测该当前块(350)。例如,视频编码器200可以形成该当前块的预测块。然后视频编码器200可以计算该当前块的残差块(352)。为了计算该残差块,视频编码器200可以计算原始未编码块和当前块的预测块之间的差。然后视频编码器200可以变换和量化该残差块的系数(354)。在一些示例中,视频编码器200可以确定是否使用单树来编解码第一CTU,并且基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个的对应色度样本TB。附加地或可替代地,视频编码器200可以确定是否使用双树来编解码第二CTU,并且基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB。
接下来,视频编码器200可以扫描该残差块的量化变换系数(356)。在扫描期间或扫描之后,视频编码器200可以对该变换系数进行熵编码(358)。例如,视频编码器200可以使用CAVLC或CABAC对该变换系数进行编码。然后视频编码器200可以输出块的已熵编码数据(360)。
图7是示出用于已解码视频数据的当前块的示例方法的流程图。该当前块可以包括当前CU。尽管对视频解码器300(图1和图4)进行了描述,但是应当理解,其他设备可以被配置为执行类似于图7的方法。
视频解码器300可以接收该当前块的熵编码数据,例如对应于该当前块的残差块的系数的熵编码预测信息和熵编码数据(370)。视频解码器300可以对该熵编码数据进行熵解码,以确定该当前块的预测信息,并再现该残差块的系数(372)。视频解码器300可预测该当前块(374),例如使用由该当前块的预测信息指示的帧内或帧间预测模式,来计算该当前块的预测块。然后视频解码器300可以逆扫描再现的系数(376),以创建量化的变换系数的块。然后视频解码器300可以对该变换系数进行逆量化和逆变换,以产生残差块(378)。在一些示例中,视频解码器300可以确定是否使用单树来编解码第一CTU,并且基于使用单树来编解码第一CTU,基于第一组TB样本确定第一TU,该第一组TB样本包括第一亮度样本TB和第一两个的对应色度样本TB。附加地或可替代地,视频解码器300可以确定是否使用双树来编解码第二CTU,并且基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB。
视频解码器300可以通过组合该预测块和该残差块来最终解码该当前块(380)。
本公开包括以下示例。
例1.一种对视频数据进行编解码的方法,该方法包括:由一个或多个处理器确定是否使用单树来编解码第一编解码树单元(CTU);由一个或多个处理器基于使用单树来编解码第一CTU,基于第一组变换块(TB)样本确定第一变换单元(TU),所述第一组变换块样本包括第一亮度样本TB和第一两个的对应色度样本TB;基于该第一TU编解码该第一CTU的编解码单元(CU);由该一个或多个处理器确定是否使用双树来编解码第二CTU;由一个或多个处理器基于使用双树来编解码第二CTU,基于第二组TB样本确定第二TU,该第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;以及基于该第二TU编解码该第二CTU的CU,其中该第一TU包括用于变换该第一组TB样本的句法结构,该第二TU包括用于变换该第二组TB样本的句法结构。
例2.例1的方法还包括:由一个或多个处理器基于使用双树来编解码第二CTU,在亮度树的开始处将色度编解码块标志(CBF)值初始化为零。
例3.例1-2的任意组合的方法,还包括:由该一个或多个处理器确定CBF是否存在;由该一个或多个处理器基于该CBF不存在,推断该CBF为零。
例4.例3的方法,其中该CBF包括色度CBF。
例5.例3的方法,其中该CBF包括亮度CBF。
例6.例1-5的任意组合的方法,还包括:由该一个或多个处理器确定色度CBF是否已经被解析;以及由该一个或多个处理器基于该色度CBF已经被解析以及该色度CBF的值来解析色度残差句法元素。
例7.例1-6的任意组合的方法,还包括:由该一个或多个处理器确定该第二TU是否基于第二两个色度样本TB;以及由该一个或多个处理器基于第二TU基于第二两个色度样本TB来抑制发信号通知或解析亮度残差。
例8.一种对视频数据进行编解码的方法,该方法包括:确定是使用单树还是双树来对编解码树单元(CTU)进行编解码;如果使用单树来编解码CTU,则基于一个亮度样本变换块(TB)和两个对应的色度样本TB确定变换单元(TU);如果使用双树来编解码CTU,则基于一个亮度样本TB或两个对应的色度样本TB确定TU;以及基于该TU编解码该视频数据。
例9.一种对视频数据进行编解码的方法,该方法包括:确定是否对包含样本的编解码块应用帧内子划分(ISP);确定是使用单树还是双树对该编解码块进行编解码;如果使用单树对该编码块进行编解码,并且没有应用ISP,则基于一个亮度样本TB和两个对应色度样本TB确定TU;如果使用单树对编码块进行编解码并且应用了ISP,则基于第一N-1个亮度TB的一个亮度样本TB、一个亮度TB和两个色度样本TB确定TU,其中该色度样本可以对应于该编解码块中的多于两个TB;如果使用双树对该编解码块进行编解码,则基于一个亮度样本TB或两个对应的色度样本TB确定TU;以及基于该TU编解码该视频数据。
例10.一种对视频数据进行编解码的方法,该方法包括:确定是使用单树还是双树对编解码块进行编解码;如果使用双树对该编码块进行编解码,则发信号通知或解析增量量化参数(QP),而不考虑色度编解码块标志(CBF)值;以及基于该增量QP编解码该视频数据。
例11.例10的方法,还包括:如果使用单树对该编码块进行编解码,则发信号通知或解析该增量QP,而不考虑色度CBF值。
例12.一种对视频数据进行编解码的方法,该方法包括:确定是否使用双树对编码块进行编解码;如果使用双树对该编码块进行编解码,则在亮度树的开始处将色度CBF值初始化为零;以及基于色度CBF值编解码该视频数据。
例13.一种对视频数据进行编解码的方法,该方法包括:确定ISP是否被应用于编解码块;如果ISP被应用于该编解码块,则发信号通知在第一帧内子划分中的色度的tu_cbf值,并发信号通知在该第一帧内子划分中与色度相关联的残差;以及基于该tu_cbf值和该残差来编解码该视频数据。
例14.例13的方法,还包括:将tu_joint_cbcr_residual_flag[]的索引修改为xC和yC,而不是x0和y0。
例15.一种对视频数据进行编解码的方法,该方法包括:
确定ISP是否被应用于编解码块;如果ISP被应用于该编解码块,则发信号通知在第一帧内子划分中的色度的tu_cbf值,并发信号通知在最后一个帧内子划分中与色度相关联的残差;以及基该于tu_cbf值和该残差来编解码该视频数据。
例16.例15的方法,还包括:如果ISP被应用于该编解码块,则发信号通知该第一帧内子划分中的亮度的tu_cbf值,并发信号通知最后一帧内子划分中与亮度相关联的残差。
例17.一种对视频数据进行编解码的方法,该方法包括:确定是否为编解码块启用了ISP;确定色度部件是否依赖于该编解码块的重构亮度值;如果启用了ISP,并且色度部件依赖于重构的亮度值,则为该编解码块禁用色度部件;以及基于该确定编解码该视频块。
例18.一种对视频数据进行编解码的方法,该方法包括:确定当前TU中是否存在tu_cbr_cr和tu_cbr_cb;如果该当前TU中不存在tu_cbr_cr,则不推断tu_cbr_cr为零;如果该当前TU中不存在tu_cbr_cb,则不推断tu_cbr_cb为零;以及基于tu_cbr_cr和tu_cbr_cb对该视频数据进行编解码。
例19.如例18所述的方法,还包括:将TuCfbCb和TuCbfCr初始化为零;如果存在tu_cbr_cr,则将TuCbfCr设置为等于tu_cbr_cr;并且如果tu_cbr_cb存在,则将TuCfbCb设置为等于tu_cbr_cb。
例20.例18或19的方法,还包括:发信号通知在最后一个帧内子划分的tu_cbr_cr和tu_cbr_cb。
例21.一种对视频数据进行编解码的方法,该方法包括:确定是使用单树还是双树对编解码块进行编解码;仅当使用单树对该编解码块进行编解码时,解析tu_cbr_cr和tu_cbr_cb;以及基于tu_cbr_cr和tu_cbr_cb编解码该视频数据。
例22.一种用于对视频数据进行编解码的设备,该设备包括一个或多个用于执行示例1-21中任一个的方法的部件。
例23.例22的设备,其中该一个或多个部件包括在电路中实现的一个或多个处理器。
例24.例22或23的设备,还包括存储视频数据的存储器。
例25.例22-24的任意组合的设备,还包括被配置为显示已解码的视频数据的显示器。
例26.例22-25的任意组合的设备,其中该设备包括照相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
例27.例22-26的任意组合的设备,其中该设备包括视频解码器。
例28.例22-27的任意组合的设备,其中该设备包括视频编码器。
例29.一种其上存储有指令的计算机可读存储介质,所述指令在被执行时使得一个或多个处理器执行例1-21中任一个的方法。
应当认识到,根据示例,这里描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加、合并或全部省略(例如,并非所有描述的动作或事件对于技术的实现都有必要)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器同时执行,而不是顺序执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果以软件实现,这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过其传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者通信介质,包括例如根据通信协议便于计算机程序从一个地方传输到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构来实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储设备、磁盘存储设备或其他磁存储设备、闪存或任何其他可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术(如红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则该同轴电缆、光纤电缆、双绞线、DSL或无线技术(如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解,该计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时介质,而是指向非暂时的有形存储介质。这里使用的盘和碟包括光盘(CD)、激光盘、光碟、数字多功能盘(DVD)、软盘和蓝光光盘,其中盘通常以磁性方式再现数据,而碟用激光以光学方式再现数据。以上的组合也应该被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,这里使用的术语“处理器”和“处理电路”可以指适合于实现这里描述的技术的任何前述结构或任何其他结构。此外,在一些方面,这里描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或者结合在组合编解码器中。同样,这些技术可以完全在一个或多个电路或逻辑元件中实现。
本公开的技术可以在多种设备或装置中实现,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。
已经描述了各种示例。这些和其他示例都在以上权利要求的范围内。

Claims (31)

1.一种编解码视频数据的方法,所述方法包括:
由一个或多个处理器确定是否使用单树来编解码第一编解码树单元(CTU);
由所述一个或多个处理器基于所述使用单树编解码第一CTU,基于第一组变换块(TB)样本确定第一变换单元(TU),所述第一组变换块(TB)样本包括第一亮度样本TB和第一两个对应的色度样本TB;
基于所述第一TU对所述第一CTU的编解码单元(CU)进行编解码;
由所述一个或多个处理器确定是否使用双树编解码第二CTU;
由所述一个或多个处理器基于所述使用双树编解码第二CTU,基于第二组TB样本确定第二TU,所述第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;和
基于所述第二TU对所述第二CTU的CU进行编解码,
其中所述第一TU包括用于变换所述第一组TB样本的句法结构,所述第二TU包括用于变换所述第二组TB样本的句法结构。
2.根据权利要求1所述的方法,进一步包括:
由所述一个或多个处理器基于所述使用双树编解码第二CTU,在亮度树的开始处将色度编解码块标志(CBF)值初始化为零。
3.根据权利要求1所述的方法,进一步包括:
由所述一个或多个处理器确定编解码块标志(CBF)是否存在;和
由所述一个或多个处理器基于所述CBF不存在,推断所述CBF为零。
4.根据权利要求3所述的方法,其中所述CBF包括色度CBF。
5.根据权利要求3所述的方法,其中所述CBF包括亮度CBF。
6.根据权利要求1所述的方法,进一步包括:
由所述一个或多个处理器确定色度编解码块标志(CBF)是否已经被解析;和
由所述一个或多个处理器基于所述色度CBF已经被解析以及所述色度CBF的值来解析色度残差句法元素。
7.根据权利要求1所述的方法,进一步包括:
由所述一个或多个处理器确定所述第二组TB样本是否包括所述第二两个色度样本TB;和
由所述一个或多个处理器基于所述第二组TB样本包括所述第二两个色度样本TB,来抑制对亮度残差的编解码。
8.根据权利要求1所述的方法,其中编解码包括编码。
9.根据权利要求1所述的方法,其中编解码包括解码。
10.根据权利要求1所述的方法,进一步包括:
由所述一个或多个处理器确定是否使用单树编解码第三CTU;
由所述一个或多个处理器确定是否使用帧内子划分编解码所述第三CTU;
由所述一个或多个处理器基于所述使用单树和帧内子划分编解码第三CTU,基于包括第三亮度样本TB的第三组TB样本确定第三TU,以及基于包括第四亮度样本TB和第四两个对应的色度样本TB的第四组TB样本确定第四TU;
基于所述第三TU和所述第四TU对所述第三CTU的CU进行编解码。
11.一种用于编解码视频数据的设备,所述设备包括:
存储器,被配置为存储所述视频数据;和
在电路中执行的、通信耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:
确定是否使用单树编解码第一编解码树单元(CTU);
基于所述使用单树编解码第一CTU,基于第一组变换块(TB)样本确定第一变换单元(TU),所述第一组变换块(TB)样本包括第一亮度样本TB和第一两个对应的色度样本TB;
基于所述第一TU对所述第一CTU的编解码单元(CU)进行编解码;
确定是否使用双树编解码第二CTU;
基于所述使用双树编解码第二CTU,基于第二组TB样本确定第二TU,所述第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;和
基于所述第二TU对所述第二CTU的CU进行编解码,
其中所述第一TU包括用于变换所述第一组TB样本的句法结构,所述第二TU包括用于变换所述第二组TB样本的句法结构。
12.根据权利要求11所述的设备,其中所述一个或多个处理器还被配置为:
基于所述使用双树编解码第二CTU,在亮度树的开始将色度编解码块标志(CBF)值初始化为零。
13.根据权利要求11所述的设备,其中所述一个或多个处理器还被配置为:
确定编解码块标志(CBF)是否存在;和
基于所述CBF不存在,推断所述CBF为零。
14.根据权利要求13所述的设备,其中所述CBF包括色度CBF。
15.根据权利要求13所述的设备,其中所述CBF包括亮度CBF。
16.根据权利要求11所述的设备,其中所述一个或多个处理器还被配置为:
确定色度编解码块标志CBF是否已经被解析;和
基于所述色度CBF已经被解析以及所述色度CBF的值,来解析色度残差句法元素。
17.根据权利要求11所述的设备,其中所述一个或多个处理器还被配置为:
确定所述第二TB样本是否包括所述第二两个色度样本TB;和
基于所述第二TB样本包括所述第二两个色度样本TB,抑制对亮度残差的编解码。
18.根据权利要求11所述的设备,其中所述设备包括视频编码器。
19.根据权利要求11所述的设备,其中所述设备包括视频解码器。
20.根据权利要求11所述的设备,其中所述一个或多个处理器还被配置为:
确定是否使用单树编解码第三CTU;
确定是否使用帧内子划分编解码第三CTU;
基于所述使用单树和帧内子划分编解码第三CTU,基于包括第三亮度样本TB的第三组TB样本确定第三TU,以及基于包括第四亮度样本TB和第四两个对应的色度样本TB的第四组TB样本确定第四TU;和
基于所述第三TU和所述第四TU对所述第三CTU的CU进行编解码。
21.一种存储有指令的非暂时性计算机可读存储介质,当由一个或多个处理器执行时,所述指令使得所述一个或多个处理器:
确定是否使用单树编解码第一编解码树单元(CTU);
基于所述使用单树编解码第一CTU,基于第一组变换块(TB)样本确定第一变换单元(TU),所述第一组变换块(TB)样本包括第一亮度样本TB和第一两个对应色度样本TB;
基于所述第一TU对所述第一CTU的编解码单元(CU)进行编解码;
确定是否使用双树编解码第二CTU;
基于所述使用双树编解码第二CTU,基于第二组TB样本确定第二TU,所述第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;和
基于所述第二TU对所述第二CTU的CU进行编解码,
其中所述第一TU包括用于变换所述第一组TB样本的句法结构,所述第二TU包括用于变换所述第二组TB样本的句法结构。
22.根据权利要求21所述的非暂时性计算机可读存储介质,其中所述指令还使得所述一个或多个处理器:
基于所述使用双树编解码第二CTU,在亮度树的开始处将色度编解码块标志(CBF)值初始化为零。
23.根据权利要求21所述的非暂时性计算机可读存储介质,其中所述指令还使得所述一个或多个处理器:
确定编解码块标志(CBF)是否存在;
基于所述CBF不存在,推断所述CBF为零。
24.根据权利要求23所述的非暂时性计算机可读存储介质,其中所述CBF包括色度CBF。
25.根据权利要求23所述的非暂时性计算机可读存储介质,其中所述CBF包括亮度CBF。
26.根据权利要求21所述的非暂时性计算机可读存储介质,其中所述指令还使得所述一个或多个处理器:
确定色度编解码块标志(CBF)是否已经被解析;和
基于所述色度CBF已经被解析以及所述色度CBF的值,来解析色度残差句法元素。
27.根据权利要求21所述的非暂时性计算机可读存储介质,其中所述指令还使得所述一个或多个处理器:
确定所述第二组TB样本是否包括所述第二两个色度样本TB;和
基于所述第二组TB样本包括所述第二两个色度样本TB,抑制对亮度残差的编解码。
28.根据权利要求21所述的非暂时性计算机可读存储介质,其中编解码包括编码。
29.根据权利要求21所述的非暂时性计算机可读存储介质,其中编解码包括解码。
30.根据权利要求21所述的非暂时性计算机可读存储介质,其中所述指令还使得所述一个或多个处理器:
确定是否使用单树编解码第三CTU;
确定是否使用帧内子划分编解码所述第三CTU;
基于所述使用单树和帧内子划分编解码第三CTU,基于包括第三亮度样本TB的第三组TB样本确定第三TU,以及基于包括第四亮度样本TB和第四两个对应色度样本TB的第四组TB样本确定第四TU;和
基于所述第三TU和所述第四TU对所述第三CTU的CU进行编解码。
31.一种用于编解码视频数据的设备,所述设备包括:
用于确定是否使用单树编解码第一编解码树单元(CTU)的部件;
用于基于所述使用单树编解码第一CTU、基于第一组变换块(TB)样本确定第一变换单元(TU)的部件,所述第一组变换块(TB)样本包括第一亮度样本TB和第一两个对应色度样本TB;
用于基于所述第一TU对所述第一CTU的编解码单元(CU)进行编解码的部件;
用于确定是否使用双树编解码第二CTU的部件;
用于基于所述使用双树编解码第二CTU,基于第二组TB样本确定第二TU的部件,所述第二组TB样本包括(I)第二亮度样本TB或(II)第二两个色度样本TB;和
用于基于所述第二TU对所述第二CTU的CU进行编解码的部件,
其中所述第一TU包括用于变换所述第一组TB样本的句法结构,所述第二TU包括用于变换所述第二组TB样本的句法结构。
CN202080063436.9A 2019-09-18 2020-09-18 用于视频编解码的变换单元设计 Pending CN114391256A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962902234P 2019-09-18 2019-09-18
US62/902,234 2019-09-18
US201962905721P 2019-09-25 2019-09-25
US62/905,721 2019-09-25
US17/024,422 2020-09-17
US17/024,422 US11395014B2 (en) 2019-09-18 2020-09-17 Transform unit design for video coding
PCT/US2020/051490 WO2021055746A1 (en) 2019-09-18 2020-09-18 Transform unit design for video coding

Publications (1)

Publication Number Publication Date
CN114391256A true CN114391256A (zh) 2022-04-22

Family

ID=74869981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080063436.9A Pending CN114391256A (zh) 2019-09-18 2020-09-18 用于视频编解码的变换单元设计

Country Status (5)

Country Link
US (1) US11395014B2 (zh)
EP (1) EP4032270A1 (zh)
KR (1) KR20220061124A (zh)
CN (1) CN114391256A (zh)
WO (1) WO2021055746A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11395014B2 (en) * 2019-09-18 2022-07-19 Qualcomm Incorporated Transform unit design for video coding
NZ786438A (en) * 2019-09-23 2024-03-22 Huawei Tech Co Ltd Method and apparatus for chrominance quantization parameters signalling
US11432018B2 (en) * 2020-05-11 2022-08-30 Tencent America LLC Semi-decoupled partitioning for video coding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021010046A (ja) * 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置
CA3111118A1 (en) * 2018-09-21 2020-03-26 Huawei Technologies Co., Ltd. Apparatus and method for inverse quantization
KR20230174294A (ko) * 2019-01-12 2023-12-27 (주)휴맥스 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치
KR20240000610A (ko) * 2019-01-15 2024-01-02 로즈데일 다이나믹스 엘엘씨 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
US20230179779A1 (en) * 2019-06-12 2023-06-08 Sony Group Corporation Image processing device and method
US11070825B2 (en) * 2019-06-13 2021-07-20 Mediatek Inc. Method and apparatus of encoding or decoding video data with adaptive colour transform
US11395014B2 (en) * 2019-09-18 2022-07-19 Qualcomm Incorporated Transform unit design for video coding

Also Published As

Publication number Publication date
EP4032270A1 (en) 2022-07-27
WO2021055746A1 (en) 2021-03-25
KR20220061124A (ko) 2022-05-12
US20210084343A1 (en) 2021-03-18
US11395014B2 (en) 2022-07-19

Similar Documents

Publication Publication Date Title
US11206400B2 (en) Low-frequency non-separable transform (LFNST) simplifications
CN113940069A (zh) 用于视频译码中的低频不可分离变换的变换和最后有效系数位置信令
CN113812148A (zh) 用于视频译码的参考图片重采样和帧间译码工具
CN113812157A (zh) 用于视频译码的基于置零模式的低频不可分离变换信号通知
CN113748679A (zh) 用于视频编解码的帧内块复制合并数据语法
US20210195223A1 (en) Reference subpicture scaling ratios for subpictures in video coding
US20210235124A1 (en) Decoded picture buffer (dpb) parameter signaling for video coding
CN114128286A (zh) 视频编解码中的环绕运动补偿
CN113728650A (zh) 自适应环路滤波器集合索引信令
US11425420B2 (en) Wraparound offsets for reference picture resampling in video coding
CN114342389A (zh) 视频编解码和变换单元的以高层语法信令通知的最大和最小块大小
US20210029358A1 (en) Delta quantization parameter (qp) signaling in palette mode
US11632540B2 (en) Reference picture scaling ratios for reference picture resampling in video coding
CN114424570B (zh) 用于视频编解码的变换单元设计
US11395014B2 (en) Transform unit design for video coding
CN113632466A (zh) 视频数据的帧间-帧内预测模式
CN116508321A (zh) 视频译码期间基于联合分量神经网络的滤波
CN113875258A (zh) 视频编解码中用于变换跳过模式的系数编解码
US11991387B2 (en) Signaling number of subblock merge candidates in video coding
CN114375575A (zh) 用于视频编解码的高层语法中的子图片信令
CN114731418A (zh) 联合色度残差视频译码
US11457229B2 (en) LFNST signaling for chroma based on chroma transform skip
CN115349255A (zh) 视频译码中的低频不可分离变换索引信令
CN113396583A (zh) 预测性系数编解码
US11863787B2 (en) Maximum allowed block size for BDPCM mode

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