CN115462073A - 视频译码中的参数集语法元素和变量 - Google Patents
视频译码中的参数集语法元素和变量 Download PDFInfo
- Publication number
- CN115462073A CN115462073A CN202180028751.2A CN202180028751A CN115462073A CN 115462073 A CN115462073 A CN 115462073A CN 202180028751 A CN202180028751 A CN 202180028751A CN 115462073 A CN115462073 A CN 115462073A
- Authority
- CN
- China
- Prior art keywords
- picture
- constraint
- syntax element
- value
- pictures
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/162—User input
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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 picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了用于对视频数据进行译码的示例方法和设备。用于对视频数据进行译码的示例设备包括被配置为存储视频数据的存储器、以及在电路中实现的并且可通信地耦合到存储器的一个或多个处理器。一个或多个处理器被配置为:确定对第一约束是否是适用的进行指示的第一语法元素的值,第一约束为:矩形条带不被用于多个图片。一个或多个处理器还被配置为:根据第一语法元素的值来对视频数据的多个图片进行解码。
Description
本申请要求享受于2021年5月12日提交的美国申请17/318,77、于2020年5月13日提交的美国临时专利申请63/024,331、于2020年5月18日提交的美国临时专利申请63/026,609、和于2020年5月21日提交的美国临时专利申请63/028,341的优先权,每项申请的全部内容通过引用并入本文。于2021年5月12日提交的美国申请17/318,77要求享受于2020年5月13日提交的美国临时专利申请63/024,331、于2020年5月18日提交的美国临时专利申请63/026,609、和于2020年5月21日提交的美国临时专利申请63/028,341的利益。
技术领域
本公开内容涉及视频编码和视频解码。
背景技术
数字视频能力可以被合并到各种各样的设备,包括数字电视机、数字直播***、无线广播***、个人数字助理(PDA)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话(所谓的“智能电话”)、视频电话会议设备、视频流设备等。数字视频设备实现视频译码技术,例如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4Part10、高级视频译码(AVC)、ITU-T H.265/高效视频译码(HEVC)定义的标准、以及对这些标准的扩展中描述的那些视频译码技术。视频设备可以通过实现这样的视频译码技术来较有效地对数字视频信息进行发送、接收、编码、解码和/或存储。
视频译码技术包括空间(图片内)预测和/或时间(图片间)预测,用以减少或移除视频序列中固有的冗余。对于基于块的视频编码,视频条带(例如,视频图片或视频图片的一部分)可被划分成视频块,其也可被称为译码树单元(CTU)、译码单元(CU)和/或译码结点。一图片的经帧内编码的(I)条带中的视频块是使用相对于相同图片中的相邻块中的参考样本的空间预测来被编码的。图片的经帧间编码的(P或B)条带中的视频块可以使用相对于相同图片中的相邻块中的参考样本的空间预测、或者相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
发明内容
一般来说,本公开内容描述了用于在视频译码中对参数集语法元素和变量进行译码的技术。具体地说,本公开内容描述了指示是否可以应用对视频译码的约束的译码语法元素和变量,包括类型I比特流中的图片报头、推导过程、约束和其它视频译码技术。
在一个示例中,一种方法包括:确定对第一约束是否是适用的进行指示的第一语法元素的值,所述第一约束为:矩形条带不被用于第一多个图片;以及根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
在一个示例中,一种设备包括被配置为存储视频数据的存储器、以及在电路中实现并可通信地耦合到存储器的一个或多个处理器,所述一个或多个处理器被配置为:确定对第一约束是否是适用的进行指示的第一语法元素的值,所述第一约束为:矩形条带不被用于第一多个图片;以及根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
在一个示例中,一种包括指令的非暂时性计算机可读介质,所述指令在被执行时使得一个或多个处理器:确定对第一约束是否是适用的进行指示的第一语法元素的值,所述第一约束为:矩形条带不被用于第一多个图片;以及根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
在另一示例中,一种设备包括:用于确定对第一约束是否是适用的进行指示的第一语法元素的值的单元,所述第一约束为:矩形条带不被用于第一多个图片;以及用于根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码的单元。
一个或多个示例的细节在附图和以下描述中阐述。根据说明书、附图以及权利要求书,其它特征、目标和优点将是显而易见的。
附图说明
图1是示出可以执行本公开内容的技术的示例视频编码和解码***的框图。
图2A和2B是示出示例四叉树二叉树(QTBT)结构和对应的译码树单元(CTU)的概念图。
图3是示出针对逐渐解码刷新(GDR)图片的预测示例的概念图。
图4A-4B是示出被用于层间参考预测的示例子层的概念图。
图5是示出可以执行本公开内容的技术的示例视频编码器的框图。
图6是示出可以执行本公开内容的技术的示例视频解码器的框图。
图7是示出根据本公开内容的示例通用约束技术的流程图。
图8是示出用于编码当前块的示例方法的流程图。
图9是示出用于解码视频数据的当前块的示例方法的流程图。
具体实施方式
一些视频译码标准和草案标准包括对经译码比特流的约束。必须满足这些约束,以确保比特流符合特定的标准或标准草案。在一些示例中,可以应用或不应用约束(例如,打开或关闭)。在一些示例中,约束可能不存在于视频译码标准或标准草案中。另外,在一些视频译码标准或草案标准中,定义了特定的比特流,诸如,类型I比特流。例如,类型I比特流可被定义为仅包括视频译码层(VCL)网络抽象层(NAL)单元。然而,为解码比特流所需的所有元素可能不存在于这样的比特流中。在这种情况下,可能存在不必要的解码延迟,或者可能发生不必要的解码错误,这是因为视频解码器可能无法准确地解码不具有丢失元素的比特流。
根据本公开内容的技术,公开了指示是否要应用约束的约束标志。这些约束标志可以从视频编码器向视频解码器传达哪些特征被禁用。以这种方式,视频解码器可以基于约束标志来推断其它语法元素的值,而不解析可能处于较低级别的其它语法元素(并因此,如果解析的话,则较频繁地需要以信号发送处于较低级别的其它语法元素)。以这种方式,可以节省信号发送带宽,并且可以分别由于较少的信号发送以及解析而降低视频编码器和视频解码器上的处理功率。
根据本公开内容的技术,除了VCL NAL单元之外,类型I比特流可以被定义为包括图片头部(PH)网络抽象层(NAL)单元。通过在类型I比特流中另外包括PH NAL单元,可以改进解码延迟和/或准确度,这是因为视频解码器可能需要PH NAL单元以解码类型I比特流内的视频译码层(VCL)NAL单元。
图1是示出可以执行本公开内容的技术的示例视频编码和解码***100的框图。本公开内容的技术通常针对对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未经编码的视频、经编码的视频、经解码的(例如,经重构的)视频以及视频元数据(诸如信令数据)。
如图1所示,在本示例中,***100包括源设备102,该源设备102提供要由目的地设备116解码并显示的经编码的视频数据。具体地,源设备102经由计算机可读介质110向目的地设备116提供视频数据。源设备102和目的地设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本(即,膝上型)计算机、移动设备、平板计算机、机顶盒、诸如智能手机的电话手持设备、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、广播接收机设备等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,并从而可以被称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开内容,源设备102的视频编码器200和目的设备116的视频解码器300可以被配置为应用用于改进VVC中的参数集语法元素和变量的技术。从而,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备102可以从外部视频源(诸如外部相机)接收视频数据。同样,目的地设备116可以与外部显示设备以接口进行连接,而不是包括集成显示设备。
如图1所示的***100仅仅是一个示例。通常,任何数字视频编码和/或解码设备都可以执行用于改进VVC中的参数集语法元素和变量的技术。源设备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可以表示web服务器(例如,对于网站)、文件传输协议(FTP)服务器、内容递送网络设备或网络附属储存(NAS)设备。目的地设备116可以通过包括因特网连接的任何标准数据连接来从文件服务器114访问经编码的视频数据。这可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线(DSL)、电缆调制解调器等)或两者的组合,其适于访问储存在文件服务器114上的经编码的视频数据。文件服务器114和输入接口122可以被配置为根据流传送传输协议、下载传输协议或其组合进行操作。
输出接口108和输入接口122可以表示无线发射机/接收机、调制解调器、有线网络组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何一种进行操作的无线通信组件、或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如4G、4G-LTE(长期演进)、LTEAdvanced、5G等)传送数据,诸如经编码的视频数据。在输出接口108包括无线发射机的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如ZigBeeTM)、BluetoothTM标准等)传送数据,诸如经编码的视频数据。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上***(SoC)设备。例如,源设备102可以包括用于执行归因于视频编码器200和/或输出接口108的功能的SoC设备,并且目的地设备116可以包括用于执行归因于视频解码器300和/或输入接口122的功能的SoC设备。
本公开内容的技术可以应用于视频译码,以支持各种多媒体应用中的任何一种,诸如,空中电视广播、有线电视传输、***传输、因特网流传送视频传输(例如HTTP上的动态自适应流(DASH))、编码到数据储存介质上的数字视频、对储存在数据储存介质上的数字视频的解码、或其它应用。
目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码的视频比特流。经编码的视频比特流可以包括由视频编码器200定义的信令信息(其也由视频解码器300使用),例如具有用于描述视频块或其它经译码的单元(例如,条带、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示经解码的视频数据的经解码的图片。显示设备118可以表示各种显示设备中的任何一种,诸如,液晶显示器(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-TH.266,也称为通用视频译码(VVC))进行操作。VVC标准的最新草案在Bross等人的“Versatile Video Coding(Draft 9)”(其提出于ITU-T SG 16WP 3和ISO/IEC JTC 1/SC29/WG11的联合视频专家组(JVET)的第18次会议:电话会议,2020年4月15-24日,JVET-P2001-v8(以下简称“VVC草案9”))中进行了描述。然而,本公开内容的技术不限于任何特定的译码标准。
通常,视频编码器200和视频解码器300可以执行对图片的基于块的译码。术语“块”通常指包括要经处理的(例如,经编码的、经解码的或在编码和/或解码过程中以其它方式使用的)数据的结构。例如,块可以包括亮度(luminance)数据和/或色度(chrominance)数据的样本的二维矩阵。通常,视频编码器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)(也称为三叉树(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包括亮度样本的译码树块(CTB)、具有三个样本阵列的图片的色度样本的两个对应的CTB、或者使用三个分别的颜色平面来译码的图片或单色图片的样本的CTB、和被用于对样本进行译码的语法结构。CTB可以是N为某个值的NxN块的样本,使得将分量分为CTB是进行划分。分量是数组或来自三个数组(亮度和两个色度)中的一个数组的单个样本,其中三个数组组成4:2:0、4:2:2或4:4:4颜色格式的图片,或分量是组成单色格式的图片的数组或数组的单个样本。在一些示例中,译码块是M和N为某些值的MxN块的样本,使得将CTB分为译码块是进行划分。
块(例如,CTU或CU)可在图片中以各种方式来分组。作为一个示例,砖块(brick)可以指图片中的特定的片(tile)内的CTU行的矩形区域。片可以是图片中的特定的片列和特定的片行内的CTU的矩形区域。片列指CTU的矩形区域,其高度等于图片的高度,宽度由语法元素(诸如在图片参数集中)指定。片行指CTU的矩形区域,其高度由语法元素指定(诸如在图片参数集中),宽度等于图片的宽度。
在一些示例中,片可以被划分成多个砖块,每个砖块可以包含片内的一个或多个CTU行。未被划分成多个砖块的片也可以被称为砖块。然而,作为片的真正子集的砖块可能不被称为片。
图片中的砖块也可以按条带(slice)来布置。条带可以是图片的整数个砖块,其可以排他地包含在单个网络抽象层(NAL)单元中。在一些示例中,条带包括数个完整的片、或一个片的连续序列的完整块。
本公开内容可以互换地使用“NxN”和“N×N”来表示块(诸如CU或其它视频块)的在垂直维度和水平维度上的样本尺寸,例如,16x16样本或16×16样本。通常,16x16 CU将在垂直方向上有16个样本(y=16),在水平方向上有16个样本(x=16)。同样,NxN CU通常在垂直方向上有N个样本,在水平方向上有N个样本,其中,N表示非负整数值。CU中的样本可以按行和列来布置。此外,CU在水平方向上不必有与在垂直方向上相同数量的样本。例如,CU可以包括NxM个样本,其中,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的一些例子提供了67种帧内预测模式,包括各种方向模式、以及平面模式和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还可以例如在图片头、块头、条带头或其它语法数据(诸如,序列参数集(SPS)、图片参数集(PPS)、或视频参数集(VPS))中,生成去往视频解码器300的语法数据,诸如,基于块的语法数据、基于图片的语法数据和基于序列的语法数据。视频解码器300同样可以解码这样的语法数据,以确定如何解码对应的视频数据。
以这种方式,视频编码器200可以生成比特流,该比特流包括经编码的视频数据,例如,用于描述将图片划分成块(例如,CU)的划分以及针对块的预测信息和/或残差信息的语法元素。最终,视频解码器300可以接收比特流并解码经编码的视频数据。
通常,视频解码器300执行与视频编码器200执行的过程互易的过程,以解码比特流的经编码的视频数据。例如,视频解码器300可以使用CABAC以与视频编码器200的CABAC编码过程基本类似的(尽管互易的)方式,来解码针对比特流的语法元素的值。语法元素可以定义:用于将图片划分成CTU的划分信息、以及根据对应的划分结构(诸如QTBT结构)对每个CTU进行划分以定义CTU的CU。语法元素还可以定义针对视频数据的块(例如,CU)的预测和残差信息。
残差信息可以由例如经量化的变换系数来表示。视频解码器300可以将块的经量化的变换系数逆量化(inverse quantize)和逆变换(inverse transform),以再生针对该块的残差块。视频解码器300使用以信令发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)以形成针对该块的预测块。然后,视频解码器300可以(在逐样本的基础上)合并预测块和残差块以再生原始块。视频解码器300可以执行另外的处理,诸如执行去块过程以减少沿块的边界的视觉伪影(visual artifacts)。
本公开内容通常可以提及“以信号发送”特定信息,例如语法元素。术语“以信号发送”通常可以指对针对被用于解码经编码的视频数据的语法元素和/或其它数据的值的传送。即,视频编码器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大小被设为128x128(亮度样本和两个对应的64x64色度样本),MinQTSize被设为16x16,MaxBTSize被设为64x64,MinBTSize(对于宽度和高度两者)被设为4,MaxBTDepth被设为4。首先对CTU应用四叉树划分,以生成四叉树叶结点。四叉树叶结点可以具有从16x16(即MinQTSize)到128x128(即CTU大小)的大小。如果四叉树叶结点是128x128,则四叉树叶结点将不通过二叉树被进一步拆分,这是因为其大小超过了MaxBTSize(在本例中为64x64)。否则,四叉树叶结点将通过二叉树被进一步划分。因此,四叉树叶结点也是二叉树的根结点,并且具有为0的二叉树深度。当二叉树深度达到MaxBTDepth(本例中为4)时,不允许进行进一步拆分。当二叉树结点的宽度等于MinBTSize(本例中为4)时,这意味着不允许进行进一步的水平拆分。类似地,二叉树结点的高度等于MinBTSize意味着不允许针对该二叉树结点执行进一步的垂直拆分。如上所述,二叉树的叶结点被称为CU,并且根据预测和变换进行进一步处理而无需进一步划分。
如上所述,一些视频译码标准和草案标准包括对经译码比特流的约束。约束是可以置于比特流上的限制。一个这样的视频译码标准是VVC。VVC是已由ITU-T和ISO/IEC的联合视频专家组(JVET)开发的,用以实现对于更广泛的在HEVC之外的压缩能力。VVC草案9规定了规范的比特流和图片格式、高级语法(HLS)和语义以及解析和解码过程。VVC草案9在附录中还规定了配置档次/层/级别(PTL)限制、字节流格式、假设参考解码器和补充增强信息(SEI)。
VVC草案9继承了HEVC的许多高级功能,诸如,网络抽象层(NAL)单元和参数集概念、片和波前并行处理、分层译码以及使用SEI消息作为补充数据信号发送。例如,参数集可以包括适用于序列、图片、视频等的信息,这些信息可以由视频编码器200以信号发送或者由视频解码器300接收和解析,并且由视频解码器300用于解码经编码的比特流中的视频数据。在VVC中引入了额外的高级功能,包括矩形条带和子图片概念、图片分辨率自适应、混合NAL单元类型、图片头(PH)、逐渐解码刷新(GDR)图片、虚拟边界以及用于参考图片管理的参考图片列表(RPL)。
在VVC草案9中,对参数集语法元素、以及视频解码器300可从在解码过程中使用的语法元素导出的变量规定了许多信号发送条件或语义约束。
如下标识出在VVC草案9中涉及语法元素和变量的多个问题:
1.VVC草案9规定“当sps_gdr_enabled_flag等于1且当前图片的PicOrderCntVal大于或等于相关联的GDR图片的recoveryPointPocVal时,输出顺序中的当前经解码图片和后续经解码图片是对与通过从先前的IRAP图片(当存在时,在解码顺序中在相关联的GDR图片之前)开始解码过程而产生的对应图片的精确匹配。”然而,没有规定RPL约束,以保证精确匹配。sps_grd_enabled_flag是SPS中的语法元素,用于指示GDR图片是否可以出现在引用SPS的经译码层视频序列(CLVS)中。图片的PicOrderCntVal表示图片的POC值。
2.VVC草案9中对变量NumSubLayersInLayerInOLS的推导是对于子比特流提取而言有问题的。本公开内容包括经更新的推导过程。在VVC草案9中,变量NumSubLayersInLayerInOLS指示输出层集中的层中的子层的数量。
3.在本公开内容中描述了通用约束标志的许多语义,以解决各种问题。
4.在本公开内容中引入了许多新的通用约束标志,以解决各种问题。
5.在本公开内容中,针对语法元素sps_max_sublayers_minus1规定了语义约束。在VVC草案9中,sps_max_sublayers_minus1是SPS中的语法元素。sps_max_sublayers_minus1加1规定了可以在每个引用SPS的CLVS中存在的时间子层的最大数量。VVC草案9规定了sps_max_sublayers_minus1的值应在0到vps_max_sublayers_minus1(含端值)的范围内。
6.可以在参数集中显式地以信号发送诸如sps_num_subpics_minus1、pps_num_exp_tile_columns_minus1、pps_num_exp_tile_rows_minus1和pps_tile_idx_delta_present_flag的多个语法元素,并且在特定条件下可以推断它们的值。sps_num_subpics_minus1加1规定了CLVS中的每个图片中的子图片的数量。
7.PH NAL应出现在VVC附录C-假设参考解码器中的比特流中。
8.参数集中的多个语法元素应以一种方式来规定,例如,以一致的方式来规定。
本公开内容的技术可以解决这些问题中的一个或多个。可以单独地使用或以任何组合来使用在本公开内容中提供的示例。
现在讨论针对GDR图片的参考列表约束。在一些情况下,GDR图片之后的图片可以参考GDR图片之前的图片。当GDR图片是视频序列的第一图片时,可能无法正确解码所有恢复图片。如VVC草案9所规定,与当前GDR图片相关联的并且具有小于recoveryPointPocVal的PicOrderCntVal的图片被称为GDR图片的恢复图片。正恢复图片在本文中也可以称为恢复点图片。在VVC草案9中,recovery_poc_cnt语法元素规定了在输出顺序中的经解码图片的恢复点。在当前图片是GDR图片时,视频译码器(例如,视频编码器200或视频解码器300)可以如下导出变量recoveryPointPocVal:
recoveryPointPocVal=PicOrderCntVal+recovery_poc_cnt
此外,如VVC草案9所指示,
如果当前图片是GDR图片,并且存在在CLVS中在解码顺序中在当前GDR图片后面的具有等于recoveryPointPocVal的PicOrderCntVal的图片picA,那么,图片picA被称为恢复点图片。否则,在CLVS中的具有大于recoveryPointPocVal的PicOrderCntVal的在输出顺序中的第一图片被称为恢复点图片。恢复点图片不应在解码顺序中在当前GDR
图片之前。
图3是示出针对逐渐解码刷新(GDR)图片的预测示例的概念图。图3示出针对GDR图片140的预测关系的示例。在图3中,图片具有指向另一图片的箭头表明:另一图片可以使用具有箭头的起源的该图片作为参考图片。例如,图片144可以使用图片142作为参考图片。根据本公开内容的一个或多个技术,为了保证在恢复点图片之后的图片能够被正确解码,应不允许参考GDR图片140之前的图片或者在具有等于恢复POC值的POC值的图片之前的图片。例如,具有为4的POC值的图片146应能够参考POC为3的正恢复图片144,但是不能参考POC为2的正恢复图片142(由带有x的向外箭头表示),这是因为POC 2在POC 3之前,并且正恢复图片144是正恢复图片。在一个示例中,预测约束被规定如下:
在当前图片在解码顺序和输出顺序中都跟在具有相同的nuh_layer_id值的恢复点图片后面时,不应存在在输出顺序或解码顺序中在恢复点图片之前的由RefPicList[0]或RefPicList[1]中的活动条目所引用的图片。
在另一示例中,预测约束可以被规定如下:
在当前图片在解码顺序和输出顺序中都跟在具有相同的nuh_layer_id值的恢复点图片后面时,不应存在在输出顺序或解码顺序中在恢复点图片之前的由RefPicList[0]或RefPicList[1]中的条目所引用的图片。
在图3的示例中,具有POC 4的图片146不应参考在正恢复图片144之前的任何图片,这是因为当在GDR图片处发生随机访问时,这些恢复图片可能无法被正确解码。
如下规定了用于进一步确保层间参考图片是可解码的附加约束:
在当前图片在解码顺序和输出顺序中都跟在具有相同的nuh_layer_id
值的恢复点图片后面时,不应存在在具有等于refPicLayerId的nuh_layer_id的相关联的GDR图片的输出顺序或解码顺序中在恢复点图片之前的、由RefPicList[0]或RefPicList[1]中的ILRP活动条目所引用的图片。
因此,在一些示例中,设备(例如,目的地设备116或另一设备)可以获得包括对视频数据的经编码表示的比特流,并且可以基于比特流违反有如下要求的约束来确定比特流不符合视频译码标准:在当前图片在解码顺序和输出顺序中都跟在具有相同的NAL单元报头层标识符(例如,nuh_layer_id)的值的恢复点图片后面时,不应存在在具有等于参考图片层标识符(例如,refPicLayerId)的NAL单元报头层标识符的相关联的逐渐解码刷新(GDR)图片的输出顺序或解码顺序中在恢复点图片之前的、由在第一参考图片列表(例如,RefPicList[0])或第二参考图片列表(例如,RefPicList[1])中的层间参考预测(ILRP)活动条目所引用的图片。
类似地,在一些示例中,视频编码器200可以获得视频数据,并且可以对视频数据进行编码以生成比特流,使得比特流不违反有如下要求的约束:在当前图片在解码顺序和输出顺序中都跟在具有相同的NAL单元报头层标识符的值的恢复点图片后面时,不应存在在具有等于参考图片层标识符的NAL单元报头层标识符的相关联的GDR图片的输出顺序或解码顺序中在恢复点图片之前的、由在第一参考图片列表或第二参考图片列表中的ILRP活动条目所引用的图片。
可以如下规定组合式约束:
在当前图片在解码顺序和输出顺序中都跟在具有相同的nuh_layer_id
值的恢复点图片后面时,不应存在在层中的具有等于参考图片的nuh_layer_id的nuh_layer_id的相关联的GDR图片的输出顺序或解码顺序中在恢复点图片之前的、由RefPicList[0]或RefPicList[1]中的活动条目所引用的图片。
相应地,在一些示例中,设备(例如,目的地设备116或另一设备)可以获得包括对视频数据的经编码表示的比特流,并且可以基于比特流违反有如下要求的约束来确定比特流不符合视频译码标准:在当前图片在解码顺序和输出顺序中都跟在具有相同的NAL单元报头层标识符(例如,nuh_layer_id)的值的恢复点图片后面时,不应存在在层中的具有等于参考图片的NAL单元报头层标识符的NAL单元报头层标识符的相关联的GDR图片的输出顺序或解码顺序中在恢复点图片之前的、由第一参考图片列表(例如RefPicList[0])或第二参考图片列表(例如,RefPicList[1])中的活动条目所引用的参考图片。
类似地,在一些示例中,视频编码器200可以获得视频数据,并且可以对视频数据进行编码以生成比特流,使得比特流不违反有如下要求的约束:在当前图片在解码顺序和输出顺序中都跟在具有相同的NAL单元报头层标识符(例如,nuh_layer_id)的值的恢复点图片后面时,不应存在在层中的具有等于参考图片的NAL单元报头层标识符的NAL单元报头层标识符的相关联的GDR图片的输出顺序或解码顺序中在恢复点图片之前的、由第一参考图片列表(例如RefPicList[0])或第二参考图片列表(例如,RefPicList[1])中的活动条目所引用的参考图片。
现在讨论对NumSubLayersInLayerInOLS的推导。在VVC草案9中,当第k层是第i层的直接依赖层时,第k层的被用作用于解码第i层的ILRP的子层的数量是由max_tid_il_ref_pics_plus1[i][k]表示的。当第k层不是第i层的直接依赖层,但两个层都包括在相同的输出层集(OLS)中时,第k层是第i层的输出层或间接依赖层。当第k层是输出层时,变量NumSubLayersInLayerInOLS将被推导为等于vps_max_sub_layers_minus1加1。否则,NumSubLayersInLayerInOLS的值是根据OLS模式和层依赖关系来推导的。例如,视频编码器200或视频解码器300可以推导变量NumSubLayersInLayerInOLS。
图4A-4B是示出被用于层间参考预测的示例子层的概念图。图4A-4B显示了被用于在OLS中的不同的层之间的ILRP的子层的数量的几个示例,其中,第2层为输出层。例如,图4A描绘第0层154、第1层152和第2层150。图4B描绘了第0层160、第1层158和第2层156。根据VVC草案9,当第k层是第m层的直接依赖层时,其中m小于或等于i,但大于k,视频译码器(例如,视频编码器200或视频解码器300)将NumSubLayersInLayerInOLS[i][k]推导为NumSubLayersInLayerInOLS[i][m]和NumSubLayersInLayerInOLS[m][k]中的最小子层。
在图4A所示的情况下,当NumSubLayersInLayerInOLS[2][1]和NumSubLayersInLayerInOLS[1][0]中的最小值被推导等于4时,NumSubLayersInLayerInOLS[2][0]的值被推导等于4。然而,在图4B中,NumSubLayersInLayerInOLS[2][0]的值被推导等于5,并且第0层160的5个子层不足以解码被用于解码用于输出的第2层156的第1层158。
根据本公开内容的技术,建议的推导过程推导:当第k层是第m层的直接依赖层时,其中m小于或等于i,但大于k,NumSubLayersInLayerInOLS[i][k]具有NumSubLayersInLayerInOLS[m][k]的最大数量个子层。
根据本公开内容的技术,可以如下更新对NumSubLayersInLayerInOLS的推导过程。删除的文本用记号<d>...</d>来标记,***的文本用记号<i>...</i>来标记。
现在讨论对通用约束标志的语义约束。通用约束标志被用于表明特定的译码特征或工具是在比特流中被限制或被禁用的,以及一个特定约束标志的值可以由其它约束标志的值来确定。以下语义约束适用于通用约束信息语法元素(例如,通用约束标志)。视频编码器200或视频解码器300可以应用这样的约束。
–当intra_only_constraint_flag为1时,no_ref_pic_resampling_constraint_flag、all_layers_independent_constraint_flag和no_mixed_nalu_types_in_pic_constraint_flag的值应等于1。
–当no_ref_pic_resampling_constraint_flag为1时,no_res_change_in_clvs_constraint_flag的值应等于1。
–当one_subpic_per_pic_constraint_flag为1时,no_mixed_nalu_types_in_pic_constraint_flag的值应等于1。
–当no_cra_constraint_flag为1时,no_rasl_constraint_flag的值应等于1。
–no_idr_constraint_flag、no_cra_constraint_flag以及no_gdr_constraint_flag的值不应全都等于1。
在另一个示例中,以下语义约束适用于通用约束信息语法元素(例如,通用约束标志)。
–当intra_only_constraint_flag为1时,no_ref_pic_resampling_constraint_flag、all_layers_independent_constraint_flag、no_mixed_nalu_types_in_pic_constraint_flag、no_trail_constraint_flag、no_stsa_constraint_flag、no_rasl_constraint_flag、no_radl_constraint_flag and no_gdr_constraint_flag的值应等于1。
–当no_ref_pic_resampling_constraint_flag为1时,no_res_change_in_clvs_constraint_flag的值应等于1。
–当one_subpic_per_pic_constraint_flag为1时,no_mixed_nalu_types_in_pic_constraint_flag的值应等于1
–当no_cra_constraint_flag为1时,no_rasl_constraint_flag的值应等于1。
–no_idr_constraint_flag、no_cra_constraint_flag以及no_gdr_constraint_flag的值不应全都等于1。
–当no_affine_motion_constraint_flag等于1时,no_prof_constraint_flag的值应等于1。
–当max_chroma_format_constraint_idc等于0时,no_chroma_qp_offset_contraint_flag的值应等于1。
–当intra_only_constraint_flag等于1时,no_sbt_constraint_flag的值应等于1。
–当no_transform_skip_constraint_flag等于1时,no_bdpcm_constraint_flag的值应等于1。
–当one_subpic_per_pic_constraint_flag等于1时,sps_num_subpics_minus1应等于0。
–当one_tile_per_pic_constraint_flag和one_slice_per_pic_constraint_flag都等于1时,pps_no_pic_partition_flag应为1。
现在讨论其它通用约束标志。根据本公开内容的一个或多个技术,可以定义多个附加的通用约束标志。可以如下定义以下附加的通用约束标志中的任意一个或任意组合:
–general_non_HRD_constraint_flag等于1规定:在OlsInScope的比特流中不应存在任何与假设参考解码器(HRD)相关的SEI消息(BP、PT、DU信息SEI消息)。
general_non_HRD_constraint_flag等于0不实行此种约束。
–general_non_dependent_RAP_constraint_flag等于1规定:在OlsInScope的比特流中不应存在任何依赖随机访问点指示SEI消息。general_non_dependent_RAP_constraint_flag等于0不实行此种约束。
–general_non_omnidirectional_video_constraint_flag等于1规定:在OlsInScope的比特流中不应存在任何全向视频特定的SEI消息。general_non_omnidirectional_video_constraint_flag等于0时不实行此种约束。
–no_VUI_constraint_flag等于1规定sps_vui_parameters_present_flag等于0,no_VUI_constraint_flag equal等于0不实行此种约束。在VVC草案9中,sps_vui_parameters_present_flag(或SPS中的vui_parameters_present_flag)等于1规定了语法结构vui_parameters()是在SPS RBSP语法结构中存在的。vui_parameters_present_flag等于0规定了语法结构vui_parameters()是在SPS RBSP语法结构中不存在的。
–max_layers_constraint_idc规定了vps_max_layers_minus1应在0到max_layers_idc-1(含端点值)的范围内。在VVC草案9中,vps_max_layers_minus1加1规定了引用VPS的每个CVS中的被允许的最大层数。此外,在一些示例中,当single_layer_constraint_flag等于1时,max_layers_constraint_idc应等于0。
–max_sublayers_constraint_idc规定了vps_max_sublayers_minus1应在0到max_sublayers_idc-1(含端点值)的范围内。在VVC草案9中,vps_max_sublayers_minus1加1规定了在引用VPS的每个CVS中的层中可以存在的时间子层的最大数量。在VVC草案9中,vps_max_sublayers_minus1的值应在0到6(含端点值)的范围内。
–max_subpics_constraint_idc规定了sps_num_subpics_minus1应在0到max_subpics_idc-1(含端点值)的范围内。在VVC草案9中,sps_num_subpics_minus1加1规定了CLV中的每个图片中的子图片的数量。sps_num_subpics_minus1的值应在0到Ceil(pic_width_max_in_luma_samples÷CtbSizeY)*Ceil(pic_height_max_in_luma_samples÷CtbSizeY)-1(含端点值)的范围内。当不存在时,sps_num_subpics_minus1的值被推断等于0。在一些示例中,当one_subpic_per_pic_constraint_flag等于1时,max_subpics_constraint_idc应等于0。
–no_pic_partition_constraint_flag等于1规定了pps_no_pic_partition_flag应等于1。no_pic_partition_constraint_flag等于0不实行此种约束。当no_pic_partition_constraint_flag等于1时,one_tile_per_pic_constraint_flag、one_slice_per_pic_constraint_flag和one_subpic_per_pic_constraint_flag的值应等于1。在VVC草案9中,pps_no_pic_partition_flag等于1规定了不向引用pps的每个图片应用图片划分。pps_no_pic_partition_flag等于0规定了引用pps的每个图片可以被划分成多个片或条带。
–no_rectangular_slice_constraint_flag等于1规定了pps_rect_slice_flag应等于0,no_rectangular_slice_constraint_flag等于0不实行此种约束。
–no_raster_scan_slice_constraint_flag等于1规定了pps_rect_slice_flag应等于1,no_raster_scan_slice_constraint_flag等于0不实行此种约束。当one_tile_per_pic_constraint_flag为1或one_subpic_per_pic_constraint_flag为1时,no_raster_scan_slice_constraint_flag的值应等于1。
–one_slice_per_subpicture_constraint_flag等于1规定了pps_single_slice_per_subpic_flag的值应等于1,one_slice_per_subpicture_constraint_flag等于0不实行此种约束。
例如,视频编码器200或视频解码器300可以确定指示对于第一约束是否是适用的进行指示的第一语法元素(例如,no_rectangular_slice_constraint_flag)的值,第一约束为:矩形条带不被用于第一多个图片(例如,不允许矩形条带)。视频编码器200或视频解码器300可以根据第一语法元素的值对视频数据的第一多个图片进行译码,根据第一语法元素的值对图片进行译码。例如,视频编码器200可以根据第一语法元素的值对第一多个图片进行编码,或者视频解码器300可以根据第一语法元素的值对第一多个图片进行解码。在一些示例中,第一语法元素的值指示第一约束是适用的,并且视频编码器200或视频解码器300可以基于对第一约束是适用的进行指示的第一语法元素的值来确定与针对多个图片的第二语法元素(例如,pps_rect_slice_flag)相关联的值等于0,其中,第二语法元素的值0指示:矩形条带不被用于图片参数集适用于的、在多个图片当中的每个图片。
例如,视频编码器200或视频解码器300可以确定对于第二约束是否是适用的进行指示的第三语法元素(例如,one_slice_per_subpicture_constraint_flag)的值,第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带。视频编码器200或视频解码器300可以根据第三语法元素的值来对第二多个图片当中的每个子图片进行译码。例如,视频编码器200可以根据第三语法元素的值对第二多个图片中的每个子图片进行编码,或者视频解码器300可以根据第三语法元素的值对第二多个图片中的每个子图片进行解码。在一些示例中,第三语法元素的值指示第二约束是适用的,并且视频编码器200或视频解码器300可以基于对第二约束是适用的进行指示的第三语法元素的值,来确定与第四语法元素相关联的值指示在第二多个图片当中的图片参数集适用于的每个子图片仅包含一个条带。在一些示例中,第三语法元素的值等于1,第四语法元素的值等于1。
在另一个示例中,通用约束信息标志可以被分类为若干语法子结构,并且每个子结构可以通过对应的存在标志来调节。因此,相关的标志可以被分组在一起。档次、层和级别可以规定每个通用约束标志的默认值,并且符合档次、层和级别的比特流可能不必携带一些或全部通用约束标志,从而节省信号发送带宽和处理电力。
例如,对于通用约束信息可以有三类:general_capability_constraint_info()、general_coding_tool_constraint_info()和general_nal_unit_type_constraint_info()。general_capability_constraint_info()包含用于规定解码能力约束的那些标志,general_coding_tool_constraint_info()包含用于规定译码工具约束的标志,general_nal_unit_type_constraint_info()包含用于规定NAL单元类型在比特流约束中的可用性的标志。
每个子结构信号发送可以通过表1所示的存在标志来调节。当对应的存在标志为1时,存在通用约束子结构;否则,当对应的存在标志为0时,子结构中的通用约束标志的值被推断等于默认值(例如,0或其它值)。
表1通用约束信息语法
表2、表3和表4显示了针对现有通用约束标志的约束子结构语法。
表2通用能力约束信息
表3通用译码工具约束信息
表4通用nal单元类型(NUT)约束语法
在上述示例中,OlsInScope指的是覆盖范围(scope)内的一个或多个OLS。在VVC草案9中,当语法结构profile_tier_level()包含在VPS中时,OlsInScope是由VPS规定的一个或多个OLS。当语法结构profile_tier_level()包含在SPS中时,OlsInScope是仅包括作为引用SPS的层当中的最低层的层的OLS,并且这个最低层是独立的层。
现在讨论语义约束。视频编码器200可以在VPS和SPS中以信号发送子层最大数量。然而,当所有层具有相同数量的子层时,在VPS和SPS中以信号发送的子层最大数量可能不同,这可能对视频解码器300在确定正确的子层数量时产生问题。为了避免这种模糊性,可以添加约束,以要求在VPS和SPS中以信号发送的子层数量相同。在一个示例中,如下实行语法元素sps_max_sublayers_minus1的语义约束:
当vps_video_parameter_set_id大于0且vps_all_layers_same_num_sublayers_flag等于1时,sps_max_sublayers_minus1的值应等于vps_max_sublayers_minus1的值。
当sps_video_parameter_set_id大于0且vps_all_layers_same_num_sublayers_flag等于1时,sps_max_sublayers_minus1的值应等于vps_max_sublayers_minus1的值。
当对应的PPS中不存在pps_single_slice_per_subpic_fla时,pps_single_slice_per_subpic_flag的值被推断等于1。当pps_rect_slice_flag等于1时,pps_single_slice_per_subpic_flag不存在。然而,当没有可用的子图片时,推断pps_single_slice_per_subpic_flag的值等于1是没有意义的。根据本公开内容的技术,pps_single_slice_per_subpic_flag的语义约束可以被更新如下:
pps_single_slice_per_subpic_flag等于1规定了每个子图片由一个且仅一个矩形条带组成。
pps_single_slice_per_subpic_flag等于0规定了每个子图片可以由一个或多个矩形条带组成。
不存在时,pps_single_slice_per_subpic_flag的值被推断等于pps_no_pic_partition_flag的值。
现在讨论语法元素信号发送条件。当图片宽度和高度小于CtbSizeY时,可以不显式地以信号发送SPS语法元素sps_num_subpics_minus1,如下表5所示。sps_num_subpics_minus1的值可以被推断等于0。
在另一个例子中,可以实行如下比特流符合要求:当最大图片宽度(sps_pic_width_max_in_luma_samples)和/或最大图片高度(sps_pic_height_max_in_luma_samples)小于或等于CtbSizeY时,sps_num_subpics_minus1的值应等于0。
下一个语法表中显示了一个实现示例,其添加了用记号<!>...</!>指示的条件。
表5建议的SPS RBSP
sps_pic_width_max_in_luma_samples是用于指示引用SPS的每个经解码图片的以亮度样本为单位的最大宽度的语法元素。pic_height_max_in_luma_samples规定了引用SPS的每个经解码图片的以亮度样本为单位的最大高度。
当图片宽度或高度小于CtbSizeY时,可以不显式地以信号发送pps_num_exp_tile_columns_minus1和pps_num_exp_tile_rows_minus1,如下表6所示。例如,视频编码器200可以避免以信号发送pps_num_exp_tile_columns_minus1和pps_num_exp_tile_rows_minus1。语法元素pps_num_exp_tile_columns_minus1加1规定了显式地提供的片列宽度的数量。语法元素pps_num_exp_tile_rows_minus1加1规定了显式地提供的片行高度的数量。在另一个示例中,可以实行如下语义约束:比特流符合要求是当pps_pic_width_in_luma_samples的值小于或等于CtbSizeY时,pps_num_exp_tile_columns_minus1的值应等于0。此外,在该示例中,比特流符合要求是:当pps_pic_height_in_luma_sample的值小于或等于CtbSizeY时,pps_num_exp_tile_rows_minus1的值应等于0。
表6建议的PPS RBSP
在另一示例中,语法元素pps_tile_column_width_minus1[i]和pps_tile_row_height_minus1[i]也可以如下面的表7所示来调节。当图片宽度小于或等于CTB大小时,片列宽度pps_tile_column_width_minus1[0]等于PicWidthInCtbsY–1。当图片高度小于或等于CTB大小时,片行高度pps_tile_row_height_minus1[0]等于PicHeightInCtbsY–1。
表7建议的PPS RBSP
当图片中只有一个CTB时,图片不能被划分成多个片或条带,因此应不允许以信号发送语法元素,或应不允许语法元素指示图片划分,这样在这种情况下可以节省信号发送带宽和处理电力。
为确保没有图片划分,在一个示例中,语法元素pps_no_pic_partition_flag可以按如下被实行语义约束:
比特流符合要求是:当pps_pic_width_in_luma_samples和pps_pic_height_in_luma_samples的值都小于或等于CtbSizeY时,pps_no_pic_partition_flag的值应等于1。
当图片中只有一个片时,可以不显式地以信号发送PPS语法元素pps_tile_idx_delta_present_flag,如下表8所示。在VVC草案9中,tile_idx_delta_present_flag等于0规定了:在PPS中不存在语法元素tile_idx_delta[i],所有引用PPS的图片按条带光栅顺序被划分成矩形条带行和矩形条带列。tile_idx_delta_present_flag等于1规定了:语法元素tile_idx_delta[i]可以存在于PPS中,引用PPS的图片中的所有矩形条带是按由tile_idx_delta[i]的值按照增加的i值所指示的顺序来规定的。如果不存在,则推断tile_idx_delta_present_flag的值等于0。
在另一示例中,可以向pps_tile_idx_delta_present_flag实行语义约束,如下所示:
比特流符合要求是:当图片中只有一个片时,pps_tile_idx_delta_present_flag的值应等于0。
表8建议的PPS RBSP
在VVC草案9中,语法元素pps_num_slices_in_pic_minus1(也可以被标记为num_slices_in_pic_minus1或其它形式)加1规定了:引用PPS的每个图片中的矩形条带的数量。NumTilesInPic等于图片中的条带的数量(例如,条带列数*条带行数)。
在另一个例子中,当图片宽度小于或等于CtbSizeY时,所有片共享相同的宽度,可以不显式地以信号发送语法元素pps_tile_idx_delta_val[i],并且可以推导包含条带中的第一CTU的片的片索引。例如,视频解码器300可以推导包含条带中的第一CTU的片的片索引。当图片高度小于或等于CtbSizeY时,所有条带共享相同的高度,可以不显式地以信号发送语法元素pps_tile_idx_delta_val[i],并且可以推导包含条带中的第一CTU的片的片索引。
关于pps_tile_idx_delta_present_flag的信号发送条件如表9所示。
表9 PPS RBSP
可以在pps_tile_idx_delta_present_flag上实行语义约束,如下所示。
当NumTilesInPic等于1,或pps_pic_width_in_luma_samples的值小于或等于CtbSizeY,或pps_pic_height_in_luma_samples的值小于或等于CtbSizeY时,pps_tile_idx_delta_present_flag的值应等于0。
现在讨论假设参考解码器(HRD)。在VVC草案9中,在类型I比特流中不存在图片头部(PH)NAL单元类型,并且类型I比特流仅包含视频译码层(VCL)NAL单元。PH对于VCL-NAL解析和解码可能是必需的,因此PH NAL单元应该与VCL NAL一起被包括到类型I比特流中。例如,视频解码器300可以要求PH NAL单元以解析和解码VCL NAL单元。
例如,PH NAL应包括在HRD过程中。在一个示例中,当如下文所述,如用记号<!>和</!>指示那样而存在时,PH NAL可以包括在类型I比特流中:
称为类型I比特流的第一类型是包含如下内容的NAL单元流:仅VCL NAL单元<!>(当VCL NAL单元具有等于1的sh_picture_header_in_slice_header_flag时)、或者PH NAL单元和跟在PH NAL单元后面的VCL NAL单元</!>、以及对于比特流中的所有AU的具有等于FD_NUT的nal_unit_type的NAL单元(填充数据NAL单元)。
在VVC草案9中,sh_picture_header_in_slice_header_flag等于1规定了PH语法结构存在于条带报头中。sh_picture_header_in_slice_header_flag等于0规定了PH语法结构不存在于条带报头中。
在另一个例子中,当用记号<!>…</!>在下面指示而存在时,PH NAL单元应被传达给HDR:
可用时的所有DCI NAL单元、在VCL NAL单元中引用的所有VPS、SPS、PPS、<!>PH</!>和APS、以及适当的BP、PT和DU信息SEI消息应在比特流中(通过非VCL NAL单元)或通过未在本规范中规定的其它方式,及时地传送给HRD。
在附录C和D中,当如下情况时,也满足对于包含DCI NAL单元、VPS、SPS、PPS、APS、<!>PH</!>BP SEI消息、PT SEI消息、或DU信息SEI消息的非VCL NAL单元的“存在”的规定:那些NAL单元(或仅仅其中的一些)通过未在本规范中规定的其它方式被传送给解码器(或给HRD)时。
现在讨论对VVC草案9的语义变化。许多语法元素的语义应以一种方式而不是两种方式来规定(例如,跨语法元素一致地),如下用记号<d>...</d>标记建议的删除,并用记号<i>...</i>标记***:
vps_max_tid_ref_present_flag[i]等于1规定了语法元素vps_max_tid_il_ref_pics_plus1[i][j]<d>是</d><i>可以是</i>存在的。vps_max_tid_ref_present_flag[i]等于0规定了语法元素vps_max_tid_il_ref_pics_plus1[i][j]。
sps_idr_rpl_present_flag等于1规定了参考图片列表语法元素<d>是</d><i>可以是</i>存在于IDR图片(或者,在一些示例中的IDR VCL NAL单元)的条带报头中。sps_idr_rpl_present_flag等于0规定了参考图片列表语法元素不存在于IDR图片(或者,在一些示例中的IDR VCL NAL单元)的条带报头中。
sps_bdof_control_present_in_ph_flag等于1规定了ph_bdof_disabled_flag<d>是</d><i>可以是</i>存在于引用SPS的PH中的。sps_bdof_control_present_in_ph_flag等于0规定了ph_bdof_disabled_flag不存在于引用SPS的PH中。当sps_bdof_control_present_in_ph_flag不存在时,sps_bdof_control_present_in_ph_flag的值被推断等于0。
sps_dmvr_control_present_in_ph_flag等于1规定了ph_dmvr_disabled_flag<d>是</d><i>可以是</i>存在于引用SPS的PH中的。sps_dmvr_control_present_in_ph_flag等于0规定了ph_dmvr_disabled_flag不存在于引用SPS的PH中。当sps_dmvr_control_present_in_ph_flag不存在时,sps_dmvr_control_present_in_ph_flag的值被推断等于0。
sps_prof_control_present_in_ph_flag等于1规定了ph_prof_disabled_flag<d>是</d><i>可以是</i>存在于引用SPS的PH中的。sps_prof_control_present_in_ph_flag等于0规定了ph_prof_disabled_flag不存在于引用SPS的PH中。当sps_prof_control_present_in_ph_flag不存在时,sps_prof_control_present_in_ph_flag的值被推断等于0。
pps_sao_info_in_ph_flag等于1规定了SAO过滤器信息<d>是</d><i>可以是</i>存在于PH语法结构中,但不存在于不包含PH语法结构的引用PPS的条带报头中的。pps_sao_info_in_ph_flag等于0规定了SAO过滤器信息不存在于PH语法结构中,并且可以存在于引用PPS的条带报头中。当不存在时,pps_sao_info_in_ph_flag的值被推断等于0。
pps_alf_info_in_ph_flag等于1规定了ALF信息<d>是</d><i>可以是</i>存在于PH语法结构中,但不存在于不包含PH语法结构的引用PPS的条带报头中的。pps_alf_info_in_ph_flag等于0规定了ALF信息不存在于PH语法结构中,并且可以存在于引用PPS的条带报头中。当不存在时,pps_alf_info_in_ph_flag的值被推断等于0。
pps_output_flag_present_flag等于1规定了语法元素ph_pic_output_flag<d>是</d><i>可以是</i>存在于引用PPS的PH中的。pps_output_flag_present_flag等于0规定了语法元素ph_pic_output_flag不存在于引用PPS的PH中。
pps_cu_qp_delta_enabled_flag等于1规定了语法元素ph_cu_qp_delta_subdiv_intra_slice和ph_cu_qp_delta_subdiv_inter_slice<i>中的至少一个</i>存在于引用PPS的PH中,并且语法元素cu_qp_delta_abs和cu_qp_delta_sign_flag可以存在于变换单元语法和调色板译码语法中。pps_cu_qp_delta_enabled_flag等于0规定了语法元素ph_cu_qp_delta_subdiv_intra_slice和ph_cu_qp_delta_subdiv_inter_slice不存在于引用PPS的PH中,并且语法元素cu_qp_delta_abs和cu_qp_delta_sign_flag不存在于变换单元语法和调色板译码语法中。
图5是示出可以执行本公开内容的技术的示例视频编码器200的框图。图5是为了解释的目的而提供的,并且不应被认为是对本公开内容中广泛例示和描述的技术的限制。为了解释的目的,本公开内容描述了根据VVC(正在开发的ITU-T H.266)和HEVC(ITU-TH.265)的技术的视频编码器200。然而,本公开内容的技术可以由被配置符合其它视频译码标准的视频译码设备来执行。
在图5的示例中,视频编码器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的单元可以被实现为一个或多个电路或逻辑元件,其作为硬件电路的一部分、或者作为FPGA的处理器ASIC的一部分。此外,视频编码器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的各个单元的输出的临时储存。
图5的各个单元被示出以帮助理解由视频编码器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通常协调多个编码通路(pass)以测试编码参数的组合以及针对这种组合的结果率失真值(resulting rate-distortion value)。编码参数可以包括将CTU划分为CU、针对CU的预测模式、针对CU的残差数据的变换类型、针对CU的残差数据的量化参数等。模式选择单元202可以最终选择具有与其它经测试的组合相比较好的率失真值的编码参数的组合。在一些示例中,模式选择单元202可以确定应用关于不允许矩形条带的约束。模式选择单元202可以确定对于第一约束是否是适用的进行指示的第一语法元素(例如,no_rectangular_slice_constraint_flag)的值,第一约束为:不允许任何矩形的条带。
视频编码器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可以使用运动向量来获取参考块的数据。作为另一示例,如果运动向量具有分数样本精度(fractional sampleprecision),则运动补偿单元224可以根据一个或多个内插滤波器来对针对预测块的值进行内插。此外,对于双向帧间预测,运动补偿单元224可以获取由相应的运动向量标识的针对两个参考块的数据,并且例如通过逐样本平均或加权平均来合并获取的数据。
作为另一示例,对于帧内预测或帧内预测编码,帧内预测单元226可以根据与当前块相邻的样本来生成预测块。例如,对于方向模式,帧内预测单元226通常可以在数学上合并相邻样本的值,并在当前块上在所定义的方向上填充这些计算值,以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算当前块的相邻样本的平均值,并且生成预测块以针对预测块的每个样本包括得到的此平均值。
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的未经编码的原始版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样本差异。得到的逐样本差异定义了针对当前块的残差块。在一些示例中,残差生成单元204还可以确定残差块中的采样值之间的差异,以使用残差差分脉冲编码调制(RDPCM)生成残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
在模式选择单元202将CU划分成PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的PU。如上所述,CU的大小可以指CU的luma(亮度)译码块的大小,PU的大小可以指PU的luma预测单元的大小。假设特定CU的大小是2Nx2N,视频编码器200可以支持针对帧内预测的2Nx2N或NxN的PU大小,以及针对帧间预测的2Nx2N、2NxN、Nx2N、NxN或类似的对称PU大小。视频编码器200和视频解码器300还可以支持对于针对帧间预测的2NxnU、2NxnD、nLx2N和nRx2N的PU大小的非对称划分。
在模式选择单元202不将CU进一步划分成PU的示例中,每个CU可以与luma译码块和对应的chroma(色度)译码块相关联。如上所述,CU的大小可以指CU的luma译码块的大小。视频编码器200和视频解码器300可以支持2Nx2N、2NxN或Nx2N的CU大小。
对于其它视频译码技术(诸如,块内复制模式译码、仿射模式译码和线性模型(LM)模式译码,作为少数示例),模式选择单元202经由与译码技术相关联的相应单元来生成正被编码的当前块的预测块。在一些示例中,例如调色板模式译码,模式选择单元202可以不生成预测块,而是生成指示用于基于被选择的调色板来重构块的方式的语法元素。在这种模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
如上所述,残差生成单元204接收针对当前块和对应的预测块的视频数据。残差生成单元204随后生成针对当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差异。
变换处理单元206将一个或多个变换应用于残差块,以生成变换系数块(本文称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、Karhunen-Loeve变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如,主变换和辅变换,诸如旋转变换。在一些示例中,变换处理单元206不对残差块应用变换。
量化单元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可以输出比特流。
以上描述的操作是关于块来描述的。这种描述应被理解为是用于luma译码块和/或chroma译码块的操作。如上所述,在一些示例中,luma译码块和chroma译码块是CU的luma分量和chroma分量。在一些示例中,luma译码块和chroma译码块是PU的luma分量和chroma分量。
在一些示例中,对于chroma译码块,不需要重复相对于luma译码块执行的操作。作为一个示例,对于识别针对chroma块的运动向量(MV)和参考图片,不需要重复用于识别针对luma译码块的运动向量(MV)和参考图片的操作。而是,可以放缩针对luma译码块的MV,以确定针对chroma块的MV,并且参考图片可以相同。作为另一示例,对于luma译码块和chroma译码块,帧内预测过程可以是相同的。
视频编码器200表示被配置为编码视频数据的示例设备,其包括:被配置为储存视频数据的存储器;以及一个或多个处理器,其在电路中实现并通信地耦合到存储器,该一个或多个处理器被配置为:确定对于第一约束是否是适用的进行指示的第一语法元素的值,第一约束为:矩形条带不被用于第一多个图片;以及根据第一语法元素的值来对视频数据的第一多个图片进行编码。
视频编码器200还表示被配置为编码视频数据的设备的示例,所述设备包括被配置为存储视频数据的存储器、在电路中实现并被配置为执行本公开中描述的任何方法或技术的一个或多个处理单元。
图6是示出可以执行本公开内容的技术的示例视频解码器300的框图。图6是为了解释的目的而提供的,并且不限制在本公开内容中泛泛例示和描述的技术。为了解释的目的,本公开内容描述了根据VVC(正在开发的ITU-T H.266)和HEVC(ITU-T H.265)的技术的视频解码器300。然而,本公开内容的技术可以由被配置符合其它视频译码标准的视频译码设备来执行。
在图6的示例中,视频解码器300包括经译码图片缓存(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和经解码图片缓存(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任何一个或全部可以在一个或多个处理器中或在处理电路中实现。例如,视频解码器300的单元可以被实现为一个或多个电路或逻辑元件,其作为硬件电路的一部分、或者作为FPGA的处理器ASIC的一部分。此外,视频解码器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可以由各种存储器设备中的任何一种(诸如,DRAM(包括SDRAM)、MRAM、RRAM或其它类型的存储器设备)形成。CPB存储器320和DPB314可以由相同的存储器设备或分别的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其它组件在芯片上,或者相对于这些组件在芯片外。
另外或替代地,在一些示例中,视频解码器300可以从存储器120(图1)获取经译码的视频数据。即,存储器120可以如上所述与CPB存储器320一起储存数据。同样,当视频解码器300的部分或全部功能实现在要由视频解码器300的处理电路执行的软件中时,存储器120可以储存要由视频解码器300执行的指令。
图6所示的各种单元被示出以帮助理解由视频解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。类似于图5,固定功能电路是指提供特定功能的电路,并被预设在可以执行的操作上。可编程电路是指可以被编程以执行各种任务,并在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令所定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,这些单元中的一个或多个单元可以是集成电路。
视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核。在当视频解码器300的操作由在可编程电路上执行的软件执行时的示例中,片上或片外存储器可以储存视频解码器300接收和执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB接收经编码的视频数据,并且对视频数据进行熵解码以再生语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流提取的语法元素生成经解码的视频数据。
通常,视频解码器300逐块地重构图片。视频解码器300可以单独地对每个块执行重构操作(其中,当前正经重构的即经解码的块可以被称为“当前块”)。
熵解码单元302可以对语法元素进行熵解码,其中,语法元素定义经量化的变换系数块的经量化的变换系数、以及变换信息(诸如量化参数(QP)和/或变换模式指示)。在一些示例中,熵解码单元302可以对对于约束是否要被应用进行指示的语法元素的值进行熵解码。熵解码单元302可以确定对于第一约束是否是适用的进行指示的第一语法元素的值,第一约束为:不允许任何矩形的条带。
逆量化单元306可以使用与经量化的变换系数块相关联的QP以确定量化的程度,并且同样地,确定供逆量化单元306要应用的逆量化的程度。逆量化单元306可以例如执行逐比特左移操作以对经量化的变换系数进行逆量化。逆量化单元306由此可以形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以对变换系数块应用一个或多个逆变换,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对变换系数块应用逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或另一逆变换。
此外,预测处理单元304根据由熵解码单元302熵解码了的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是相互预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示DPB 314中要从其获取参考块的参考图片、以及标识相对于当前图片中的当前块的位置的参考图片中的参考块的位置的运动向量。运动补偿单元316通常可以以基本上类似于关于运动补偿单元224(图5)所描述的方式的方式来执行帧间预测过程。在一些示例中,预测处理单元可以基于第一语法元素指示不允许矩形条带,来应用关于不允许矩形条带的第一约束。
作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。同样,帧内预测单元318可以以与关于帧内预测单元226(图5)所描述的方式基本上类似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314获取当前块的相邻样本的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本添加到预测块的对应样本中,以重构当前块。
滤波单元312可以对经重构的块执行一个或多个滤波操作。例如,滤波器单元312可以执行去块操作以减少沿经重构的块的边缘的块性伪影。并非在所有示例中都必须执行滤波单元312的操作。
视频解码器300可以将经重构的块储存在DPB 314中。例如,在当不执行滤波单元312的操作时的示例中,重构单元310可以将经重构的块储存到DPB 314。在当执行滤波单元312的操作时的示例中,滤波单元312可以将经滤波的经重构的块储存到DPB 314。如上所述,DPB 314可以向预测处理单元304提供参考信息,诸如,针对帧内预测的当前图片的样本和针对后续运动补偿的经先前解码的图片的样本。此外,视频解码器300可以从DPB 314输出经解码的图片(例如,经解码的视频),以便随后在诸如图1的显示设备118的显示设备上呈现。
视频解码器300可以表示被配置为视频解码数据的示例,其包括:被配置为储存视频数据的存储器;以及一个或多个处理器,其在电路中实现并通信地耦合到存储器,该一个或多个处理器被配置为:确定对于第一约束是否是适用的进行指示的第一语法元素的值,第一约束为:矩形条带不被用于第一多个图片;以及根据第一语法元素的值来对视频数据的第一多个图片进行解码。
视频解码器300还可以表示视频解码设备的示例,该视频解码设备包括被配置为存储视频数据的存储器和一个或多个处理单元,所述一个或多个处理单元在电路中实现并被配置为执行在本公开内容中描述的任何方法或技术。
图7是示出根据本公开内容的示例通用约束技术的流程图。视频编码器200或视频解码器300可以确定对于第一约束是否是适用的进行指示的第一语法元素的值,第一约束为:矩形条带不被用于第一多个图片(330)。例如,视频编码器200可以执行多个编码过程以测试编码参数的组合以及针对这些组合的结果率失真值。视频编码器200可以基于结果率失真值来确定第一约束是应被应用的。在这种情况下,视频编码器200可以确定第一语法元素的值,以指示第一约束是被应用的。或者,视频编码器200可以基于结果率失真值来确定第一约束是不应被应用的。在这种情况下,视频编码器200可以确定第一语法元素的值,以指示第一约束是未被应用的。视频编码器200可以在经编码的视频数据的比特流中以信号发送第一语法元素。
例如,视频解码器300可以在经编码的视频数据的比特流中接收第一语法元素。视频解码器300可以通过解析第一语法元素来确定第一语法元素的值。
视频解码器300可以根据第一语法元素的值来对视频数据的第一多个图片进行解码(332)。例如,视频编码器200可以根据第一语法元素的值来对视频数据的第一多个图片进行编码。例如,如果视频编码器200确定了应用第一约束,则视频编码器200可以在(例如,根据对于第一约束是适用的进行指示的第一语法元素的值)应用了第一约束的情况下,对视频数据的第一多个图片进行编码。或者,如果视频编码器200确定了不应用第一约束,则视频编码器200可以在(例如,根据对于第一约束是不适用的进行指示的第一语法元素的值)不应用第一约束的情况下,对视频数据的第一多个图片进行编码。
例如,视频解码器300可以根据第一语法元素的值来对第一多个图片进行解码。例如,如果第一语法元素的值指示第一约束是适用的,则视频解码器300可以根据对于第一约束是适用的进行指示的第一语法元素的值来解码第一多个图片。例如,视频解码器300可以在应用第一约束的同时解码第一多个图片。或者,如果第一语法元素的值指示第一约束是不适用的,则视频解码器300可以根据对于第一约束是不适用的进行指示的第一语法元素的值来解码第一多个图片。例如,视频解码器300可以在不应用第一约束的情况下解码第一多个图片。
在一些示例中,第一语法元素的值指示第一约束是适用的,并且视频编码器200或视频解码器300可以基于对于第一约束是适用的进行指示的第一语法元素的值,来确定与用于第一多个图片的第二语法元素相关联的值等于0,其中,针对第二语法元素的值0指示矩形条带不被用于图片参数集适用于的在第一多个图片当中的每个图片。在一些示例中,第一语法元素是no_rectangular_slice_constraint_flag,第二语法元素是pps_rect_slice_flag。
在一些示例中,视频编码器200或视频解码器300可以确定对于第二约束是否是适用的进行指示的第三语法元素的值,第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及根据第三语法元素的值来对第二多个图片进行译码。例如,视频编码器200可以根据第三语法元素的值来对第二多个图片进行编码,或者视频解码器300可以根据第三语法元素的值来对第二多个图片进行解码。
在一些示例中,第三语法元素的值指示第二约束是适用的,并且视频编码器200或视频解码器300可以基于第三语法元素的值指示第二约束是适用,来确定与第四语法元素相关联的值指示图片参数集适用于的在第二多个图片当中的每个子图片仅包含一个条带。在一些示例中,第三语法元素包括one_slice_per_subpicture_constraint_flag,第四语法元素包括pps_single_slice_per_subpic_flag。
在一些示例中,视频解码器300可以接收类型I比特流,类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及对至少一个PH NAL单元和至少一个VCL NAL单元进行解码。
在一些示例中,视频编码器200可以对至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元进行编码,以及发送类型I比特流,类型I比特流包括至少一个PH NAL单元和至少一个VCL NAL单元。
图8是示出用于编码当前块的示例方法的流程图。当前块可以包括当前CU。尽管关于视频编码器200(图1和5)进行了描述,但是应理解,其它设备可以被配置为执行类似于图8的方法的方法。在一些示例中,在编码当前块的同时,视频编码器200还可以采用图7的技术。
在此示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成针对当前块的预测块。在一些示例中,在预测当前块时,视频编码器200可以确定应用约束,诸如用于禁止矩形条带的约束。然后,视频编码器200可以计算针对当前块的残差块(352)。为了计算残差块,视频编码器200可以计算原始的未经编码的块与针对当前块的预测块之间的差异。视频编码器200随后可以变换残差块并量化残差块的变换系数(354)。接下来,视频编码器200可以扫描残差块的经量化的变换系数(356)。在扫描期间或在扫描之后,视频编码器200可以对变换系数进行熵编码(358)。例如,视频编码器200可以使用CAVLC或CABAC对变换系数进行编码。视频编码器200然后可以输出块的经熵编码的数据(360)。在一些示例中,在编码当前块的同时,视频编码器200还可以采用图7的技术。
图9是示出用于解码视频数据的当前块的示例方法的流程图。当前块可以包括当前CU。尽管关于视频解码器300(图1和6)进行了描述,应理解,其它设备可以被配置为执行类似于图9的方法的方法。
视频解码器300可以接收针对当前块的经熵编码的数据,诸如,经熵编码的预测信息和针对对应于当前块的残差块的系数的经熵编码的数据(370)。视频解码器300可以对经熵编码的数据进行熵解码,以确定针对当前块的预测信息并再生残差块的系数(372)。例如,熵解码器可以确定对于约束(诸如,矩形条带是不被允许的)是否要被应用进行指示的语法元素的值。视频解码器300可以例如使用由针对当前块的预测信息指示的帧内或帧间预测模式来预测当前块(374),以计算针对当前块的预测块。然后,视频解码器300可以逆扫描再生的系数(376),以创建经量化的变换系数的块。视频解码器300随后可以对变换系数进行逆量化和逆变换以产生残差块(378)。视频解码器300可以通过合并预测块和残差块来最终解码当前块(380)。
通过利用对于约束是否是要被应用的进行指示的通用约束标志,并基于通用约束标志来推断其它语法元素的值,而不以信号发送以及解析可能处于较低级别的其它语法元素,本公开内容的技术可以节省视频编码器200和视频解码器300上的信号发送带宽和处理电力。此外,通过将PH NAL单元包括在类型I比特流中,可以改进解码延迟和/或准确性,这是由于视频解码器可能需要PH NAL单元以解码类型I比特流中的VCL NAL单元。
以下编号的条款示出了在本公开内容中描述的设备和技术的一个或多个方面。
第1A条、一种处理视频数据的方法,该方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及
基于所述比特流包括参考在逐渐解码刷新(GDR)图片之前的图片的、或参考在图片顺序计数(POC)值等于适用的恢复POC值的图片之前的任何图片的当前图片,来确定所述比特流不符合视频译码标准。
第2A条、根据第1A条所述的方法,其中,确定所述比特流不符合所述视频译码标准包括,基于关于如下情况的确定来确定所述比特流不符合所述视频译码标准:在所述当前图片在解码顺序和输出顺序中都跟在具有相同的nuh_layer_id值的恢复点图片后面时,存在在输出顺序或解码顺序中在那个恢复点图片之前的由RefPicList[0]或RefPicList[1]中的活动条目所引用的图片。
第3A条、根据第1A-2A条中的任何一条所述的方法,其中,所述比特流是第一比特流,并且所述方法还包括:获得包括对第二视频数据的经编码表示的第二比特流;以及基于确定所述比特流符合所述视频译码标准来对所述第二视频数据进行解码。
第4A条、一种对视频数据进行编码的方法,所述方法包括:
获得视频数据;以及在受制于约束的情况下对所述视频数据进行编码,所述约束不允许当前图片参考在逐渐解码刷新(GDR)图片之前的图片、或参考在图片顺序计数(POC)值等于适用的恢复POC值的图片之前的图片。
第5A条、根据第4A条所述的方法,其中,所述约束要求:在所述当前图片在解码顺序和输出顺序中都跟在具有相同的nuh_layer_id值的恢复点图片后面时,不应存在在输出顺序或解码顺序中在那个恢复点图片之前的由RefPicList[0]或RefPicList[1]中的活动条目所引用的图片。
第1B条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及
基于关于如下约束中的一个或多个未被满足的确定来确定所述比特流不符合所述视频译码标准:当intra_only_constraint_flag为1时,no_ref_pic_resampling_constraint_flag、all_layers_independent_constraint_flag和no_mixed_nalu_types_in_pic_constraint_flag的值应等于1;当no_ref_pic_resampling_constraint_flag为1时,no_res_change_in_clvs_constraint_flag的值应等于1;当one_subpic_per_pic_constraint_flag为1时,no_mixed_nalu_types_in_pic_constraint_flag的值应等于1;当no_cra_constraint_flag为1时,no_rasl_constraint_flag的值应等于1;no_idr_constraint_flag、no_cra_constraint_flag以及no_gdr_constraint_flag的值不应全都等于1。
第2B条、根据第1B条所述的方法,其中,所述比特流是第一比特流,并且所述方法还包括:获得包括对第二视频数据的经编码表示的第二比特流;以及基于确定所述比特流符合所述视频译码标准来对所述第二视频数据进行解码。
第3B条、一种对视频数据进行编码的方法,所述方法包括:获得视频数据;以及在受制于如下约束中的一个或多个约束的情况下对所述视频数据进行编码:当intra_only_constraint_flag为1时,no_ref_pic_resampling_constraint_flag、all_layers_independent_constraint_flag和no_mixed_nalu_types_in_pic_constraint_flag的值应等于1;当no_ref_pic_resampling_constraint_flag为1时,no_res_change_in_clvs_constraint_flag的值应等于1;当one_subpic_per_pic_constraint_flag为1时,no_mixed_nalu_types_in_pic_constraint_flag的值应等于1;当no_cra_constraint_flag为1时,no_rasl_constraint_flag的值应等于1;no_idr_constraint_flag、no_cra_constraint_flag以及no_gdr_constraint_flag的值不应全都等于1。
第1C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流,所述比特流是针对覆盖范围内的一个或多个输出层集的;以及基于所述比特流中的语法元素,来确定约束是否适用,所述约束规定:在所述比特流中不应存在任何假设参考解码器(HRD)相关的补充增强信息(SEI)消息。
第2C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流,所述比特流是针对覆盖范围内的一个或多个输出层集的;以及基于所述比特流中的语法元素,来确定约束是否适用,所述约束规定:在比特流中不应存在任何依赖随机访问点指示补充增强信息(SEI)消息。
第3C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流,所述比特流是针对覆盖范围内的一个或多个输出层集的;以及基于所述比特流中的语法元素,来确定约束是否适用,所述约束规定:在所述比特流中不应存在任何全向视频特定的补充增强信息(SEI)消息。
第4C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及基于所述比特流中的语法元素,来确定约束是否适用,所述约束规定:在所述比特流中不应存在任何全向视频特定的补充增强信息(SEI)消息。
第5C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及基于所述比特流中的第一语法元素,来确定约束是否适用,所述约束规定:所述比特流中的第二语法元素指示视频可用性信息语法结构是不存在于序列参数集(SPS)原始字节序列有效载荷(RBSP)语法结构中的。
第6C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及基于所述比特流中的第一语法元素,来确定约束是否适用,所述约束规定:所述比特流中的第二语法元素应处在0到最大层语法元素-1的范围内,其中,所述第二语法元素规定了引用视频参数集的每个经译码视频序列中的允许的层的最大数量。
第7C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及基于所述比特流中的第一语法元素,来确定约束是否适用,所述约束规定:所述比特流中的第二语法元素应处在0到最大子层语法元素-1的范围内,其中,所述第二语法元素规定了引用视频参数集的每个经译码视频序列中的允许的子层的最大数量。
第8C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及基于所述比特流中的第一语法元素,来确定约束是否适用,所述约束规定:所述比特流中的第二语法元素应处在0到最大子图片语法元素-1的范围内,其中,所述第二语法元素规定了经译码层视频序列中的每个图片中的允许的子图片的最大数量。
第9C条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及基于所述比特流中的第一语法元素,来确定约束是否适用,所述约束规定:所述比特流中的第二语法元素应指示不向引用图片参数集的每个图片应用图片划分。
第10C条、根据第1C-9C条中任一条所述的方法,还包括对所述比特流进行解码。
第11C条、一种对视频数据进行编码的方法,所述方法包括:
获得视频数据;以及对所述视频数据进行编码,使得比特流包括以下中的一个或多个:第一语法元素,其指示第一约束是否适用,所述第一约束规定了在所述比特流中不应存在任何假设参考解码器(HRD)相关的补充增强信息(SEI)消息;第二语法元素,其指示第二约束是否适用,所述第二约束规定了在所述比特流中不应存在任何依赖随机访问点指示SEI消息;第三语法元素,其指示第三约束是否适用,所述第三约束规定了在所述比特流中不应存在任何全向视频特定的SEI消息;第四语法元素,其指示第四约束是否适用,所述第四约束规定了第五语法元素指示在序列参数集(SPS)原始字节序列有效载荷(RBSP)语法结构中是不存在视频可用性信息语法结构的;第六语法元素,其指示第五约束是否适用,所述第五约束规定了第七语法元素应处在0到最大层语法元素-1的范围内,其中,所述第七语法元素规定了引用视频参数集的每个经译码视频序列中的允许的层的最大数量;第八语法元素,其指示第六约束是否适用,所述第六约束规定了所述比特流中的第九语法元素应处在0到最大子层语法元素-1的范围内,其中,所述第九语法元素规定了引用视频参数集的每个经译码视频序列中的允许的子层的最大数量;第十语法元素,其指示第七约束是否适用,所述第七约束规定了第十一语法元素应处在0到最大子画面语法元素-1的范围内,其中,所述第十一语法元素规定了经译码层视频序列中的每个图片中的允许的子图片的最大数量;或者第十二语法元素,其指示第八约束是否适用,所述第八约束规定了第十三语法元素应指示不向引用图片参数集的每个图片应用图片划分。
第1D条、一种处理视频数据的方法,所述方法包括:
获得包括对所述视频数据的经编码表示的比特流;以及基于违反用于规定如下情况的约束来确定所述比特流不符合所述视频译码标准:当vps_video_parameter_set_id大于0且vps_all_layers_same_num_sublayers_flag等于1时,sps_max_sublayers_minus1的值应等于vps_max_sublayers_minus1的值。
第2D条、根据第1D条所述的方法,其中,所述比特流是第一比特流,所述方法包括基于第二比特流符合所述视频译码标准来对所述第二比特流进行解码,所述第二比特流包括对所述视频数据的第二经编码表示。
第3D条、一种对视频数据进行编码的方法,所述方法包括:
获得所述视频数据;以及对所述视频数据进行编码,以符合用于规定如下情况的约束:当vps_video_parameter_set_id大于0且vps_all_layers_same_num_sublayers_flag等于1时,sps_max_sublayers_minus1的值应等于vps_max_sublayers_minus1的值。
第1E条、一种对视频数据进行解码的方法,所述方法包括:
基于引用序列参数集(SPS)的每个经解码图片的最大宽度大于译码树块的大小,或者引用所述SPS的每个经解码图片的最大高度大于所述译码树块的所述大小,来确定比特流包括语法元素,所述语法元素指示经译码层视频序列中的每个图片中的子图片的数量;以及基于所述比特流包括所述语法元素,来部分地基于所述语法元素来对所述比特流进行解码。
第2E条、一种对视频数据进行编码的方法,所述方法包括:
基于引用序列参数集(SPS)的每个经解码图片的最大宽度大于译码树块的大小,或者引用所述SPS的每个经解码图片的最大高度大于所述译码树块的所述大小,来以信号发送比特流中的语法元素,所述比特流包括对所述视频数据的经编码表示,所述语法元素指示经译码层视频序列中的每个图片中的子图片的数量。
第1F条、一种用于处理视频数据的方法,所述方法包括:
进行如下中的至少一个:基于引用图片参数集(PPS)的每个图片的以亮度样本为单位的宽度大于引用所述PPS的图片的亮度译码树块的大小,来确定比特流包括第一语法元素,所述第一语法元素指示在所述PPS中显式地提供的片列宽度的数量,或者基于引用图片参数集(PPS)的每个图片的以亮度样本为单位的高度大于引用所述PPS的图片的亮度译码树块的大小,来确定比特流包括第二语法元素,所述第二语法元素指示在所述PPS中显式地提供的片列高度的数量;以及基于所述片列宽度和所述片列高度来对引用所述PPS的图片进行解码。
第2F条、一种用于对视频数据进行编码的方法,所述方法包括:基于引用图片参数集(PPS)的每个图片的以亮度样本为单位的宽度大于引用所述PPS的图片的亮度译码树块的大小,来在比特流中,以信号发送第一语法元素,所述第一语法元素指示在所述PPS中显式地提供的片列宽度的数量;或者基于引用图片参数集(PPS)的每个图片的以亮度样本为单位的高度大于引用所述PPS的图片的亮度译码树块的大小,来在比特流中,以信号发送第二语法元素,所述第二语法元素指示在所述PPS中显式地提供的片列高度的数量;以及基于所述片列宽度和所述片列高度来对引用所述PPS的图片进行编码。
第1G条、一种用于处理视频数据的方法,所述方法包括:
基于如下条件中的每个条件为真来确定比特流包括第一语法元素:(i)引用图片参数集(PPS)的每个图片中的矩形条带中的条带的数量减1大于1,(ii)引用所述PPS的每个图片中的片的数量大于1,(iii)引用所述PPS的每个图片的以亮度样本为单位的宽度大于引用所述PPS的图片的亮度译码树块的大小,以及(iv)引用所述PPS的每个图片的以亮度样本为单位的高度大于引用所述PPS的图片的亮度译码树块的大小,其中,所述第一语法元素指示第二语法元素是否存在于所述PPS中,以及引用所述PPS的所有图片是按条带光栅顺序被划分成矩形条带行和矩形条带列的;以及基于所述第一语法元素指示所述第二语法元素存在于所述PPS中:来从所述比特流解析所述第二语法元素;以及使用所述第二语法元素以解码引用所述PPS的图片。
第2G条、根据第1G条所述的方法,还包括:基于如下约束被违反来确定所述比特流不符合视频译码标准:当引用所述PPS的每个图片中的片的数量等于1,或者引用所述PPS的每个图片的以亮度为单位的宽度小于或等于引用所述PPS的图片的亮度译码树块的大小,或者引用所述PPS的每个图片的以亮度为单位的高度小于或等于引用所述PPS的图片的亮度译码树块的大小时,所述第一语法元素应指示所述第二语法元素是不存在于所述PPS中的,以及引用所述PPS的所有图片是按条带光栅顺序被划分为矩形条带行和矩形条带列的。
第3G条、一种用于对视频数据进行编码的方法,所述方法包括:基于如下条件中的每个条件为真,来在包括第一语法元素的比特流中进行信号发送:(i)引用图片参数集(PPS)的每个图片中的矩形条带中的条带的数量减1大于1,(ii)引用所述PPS的每个图片中的片的数量大于1,(iii)引用所述PPS的每个图片的以亮度样本为单位的宽度大于引用所述PPS的图片的亮度译码树块的大小,以及(iv)引用所述PPS的每个图片的以亮度样本为单位的高度大于引用所述PPS的图片的亮度译码树块的大小,其中,所述第一语法元素指示第二语法元素是否存在于所述PPS中,以及引用所述PPS的所有图片是按条带光栅顺序被划分成矩形条带行和矩形条带列的;以及基于所述第一语法元素指示所述第二语法元素是存在于所述PPS中的,来从所述比特流以信号发送所述第二语法元素。
第4G条、根据第3G条所述的方法,基于如下约束被违反,来生成所述比特流以符合视频译码标准:当引用所述PPS的每个图片中的片的数量等于1,或者引用所述PPS的每个图片的以亮度为单位的宽度小于或等于引用所述PPS的图片的亮度译码树块的大小,或者引用所述PPS的每个图片的以亮度为单位的高度小于或等于引用所述PPS的图片的亮度译码树块的大小时,所述第一语法元素应指示所述第二语法元素是不存在于所述PPS中的,以及引用所述PPS的所有图片是按条带光栅顺序被划分为矩形条带行和矩形条带列的。
第1H条、一种处理视频数据的方法,所述方法包括:
获得包括对视频数据的经编码表示的比特流;以及
基于所述比特流违反有如下要求的约束,来确定所述比特流不符合视频译码标准:在当前图片在解码顺序和输出顺序中都跟在具有相同的网络抽象层(NAL)单元报头层标识符的值的恢复点图片后面时,不应存在在具有等于参考图片层标识符的NAL单元报头层标识符的相关联的逐渐解码刷新(GDR)图片的输出顺序或解码顺序中在恢复点图片之前的、由在第一参考图片列表或第二参考图片列表中的层间参考预测(ILRP)活动条目所引用的图片。
第2H条、一种对视频数据进行编码的方法,所述方法包括:获得视频数据;以及对所述视频数据进行编码以生成比特流,使得所述比特流不违反有如下要求的约束:在当前图片在解码顺序和输出顺序中都跟在具有相同的网络抽象层(NAL)单元报头层标识符的值的恢复点图片后面时,不应存在在具有等于参考图片层标识符的NAL单元报头层标识符的相关联的逐渐解码刷新(GDR)图片的输出顺序或解码顺序中在恢复点图片之前的、由在第一参考图片列表或第二参考图片列表中的层间参考预测(ILRP)活动条目所引用的图片。
第1条、一种处理视频数据的方法,所述方法包括:
获得包括对视频数据的经编码表示的比特流;以及
基于所述比特流违反有如下要求的约束,来确定所述比特流不符合视频译码标准:在当前图片在解码顺序和输出顺序中都跟在具有相同的网络抽象层(NAL)单元报头层标识符的值的恢复点图片后面时,不应存在在层中的具有与参考图片的NAL单元报头层标识符相等的NAL单元报头层标识符的相关联的逐渐解码刷新(GDR)图片的输出顺序或解码顺序中在所述恢复点图片之前的、由在第一参考图片列表或第二参考图片列表中的活动条目所引用的参考图片。
第2I条、一种对视频数据进行编码的方法,所述方法包括:
获得视频数据;以及对所述视频数据进行编码以生成比特流,使得所述比特流不违反有如下要求的约束:在当前图片在解码顺序和输出顺序中都跟在具有相同的网络抽象层(NAL)单元报头层标识符的值的恢复点图片后面时,不应存在在层中的具有与参考图片的NAL单元报头层标识符相等的NAL单元报头层标识符的相关联的逐渐解码刷新(GDR)图片的输出顺序或解码顺序中在所述恢复点图片之前的、由在第一参考图片列表或第二参考图片列表中的活动条目所引用的参考图片。
第1J条、一种处理视频数据的方法,所述方法包括:
获得包括对视频数据的经编码表示的比特流;以及
基于所述比特流违反在本公开内容中阐述的任何约束,来确定所述比特流不符合视频译码标准。
第2J条、一种对视频数据进行编码的方法,所述方法包括:
获得视频数据;以及对所述视频数据进行编码以生成比特流,使得所述比特流不违反在本公开内容中阐述的任何约束。
第1K条、一种用于处理或编码视频数据的设备,所述设备包括用于执行根据第1A-2J条中的任何一条所述的方法的一个或多个单元。
第2K条、根据第1K条所述的设备,其中,所述一个或多个单元包括在电路中实现的一个或多个处理器。
第3K条、根据第1K和2K条中的任何一条所述的设备,还包括用于储存所述视频数据的存储器。
第4K条、根据第1K-3K条中的任何一条所述的设备,还包括:被配置为显示经解码的视频数据的显示器。
第5K条、根据第1K-4K条中的任何一条所述的设备,其中,所述设备包括相机、计算机、移动设备、广播接收机设备或机顶盒中的一个或多个。
第6K条、根据第1K-5K条中的任何一条所述的设备,其中,所述设备包括视频解码器。
第7K条、根据第1K-6K条中的任何一条所述的设备,其中,所述设备包括视频编码器。
第8K条、一种其上存储有指令的计算机可读存储介质,所述指令在被执行时使得一个或多个处理器执行根据第1A-2J条中的任何一条所述的方法。
第1L条、一种对视频数据进行解码的方法,所述方法包括:
确定对第一约束是否是适用的进行指示的第一语法元素的值,第一约束为:矩形条带不被用于第一多个图片;以及根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
第2L条、根据第1L条所述的方法,还包括:基于所述第一语法元素的值指示所述第一约束是适用的,来确定与用于所述第一多个图片的第二语法元素相关联的值等于0,其中,针对所述第二语法元素的值0指示矩形条带不被用于图片参数集适用于的在所述第一多个图片当中的每个图片。
第3L条、根据第1L条所述的方法,还包括:确定对于第二约束是否是适用的进行指示的第三语法元素的值,所述第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及根据所述第三语法元素的值来对所述第二多个图片当中的每个子图片进行解码。
第4L条、根据第3L条所述的方法,还包括:基于所述第三语法元素的值指示所述第二约束是适用的,来确定与第四语法元素相关联的值指示图片参数集适用于的在所述第二多个图片当中的每个子图片仅包含一个条带。
第5L条、根据第1L-4L条中任何一条所述的方法,还包括:接收类型I比特流,所述类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及对所述至少一个PH NAL单元和所述至少一个VCL NAL单元进行解码。
第6L条、一种用于解码视频数据的设备,所述设备包括:
存储器,其被配置为存储所述视频数据,以及在电路中实现并通信地耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:确定对第一约束是否是适用的进行指示的第一语法元素的值,所述第一约束为:矩形条带不被用于第一多个图片;以及根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
第7L条、根据第6L条所述的设备,其中,所述一个或多个处理器还被配置为:基于所述第一语法元素的值指示所述第一约束是适用的,来确定与用于所述第一多个图片的第二语法元素相关联的值等于0,其中,针对所述第二语法元素的值0指示矩形条带不被用于图片参数集适用于的在所述第一多个图片当中的每个图片。
第8L条、根据第6L条所述的设备,其中,所述一个或多个处理器还被配置为:确定对于第二约束是否是适用的进行指示的第三语法元素的值,所述第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及根据所述第三语法元素的值来对所述第二多个图片当中的每个子图片进行解码。
第9L条、根据第8L条所述的设备,其中,所述一个或多个处理器还被配置为:基于所述第三语法元素的值指示所述第二约束是适用的,来确定与第四语法元素相关联的值指示图片参数集适用于的在所述第二多个图片当中的每个子图片仅包含一个条带。
第10L条、根据第6L-9L条中的任何一条所述的设备,其中,所述一个或多个处理器还被配置为:接收类型I比特流,所述类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及对所述至少一个PH NAL单元和所述至少一个VCL NAL单元进行解码。
第11L条、一种存储指令的非暂时性计算机可读介质,所述指令在被执行时使得一个或多个处理器:确定对第一约束是否是适用的进行指示的第一语法元素的值,第一约束为:矩形条带不被用于第一多个图片;以及根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
第12L条、根据第11L条所述的非暂时性计算机可读介质,其中,所述指令还使得所述一个或多个处理器:基于所述第一语法元素的值指示所述第一约束是适用的,来确定与用于所述第一多个图片的第二语法元素相关联的值等于0,其中,针对所述第二语法元素的值0指示矩形条带不被用于图片参数集适用于的在所述第一多个图片当中的每个图片。
第13L条、根据第11L条所述的非暂时性计算机可读介质,其中,所述指令还使得所述一个或多个处理器:确定对于第二约束是否是适用的进行指示的第三语法元素的值,所述第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及根据所述第三语法元素的值来对所述第二多个图片当中的每个子图片进行解码。
第14L条、根据第13L条所述的非暂时性计算机可读介质,其中,所述指令还使得所述一个或多个处理器:基于所述第三语法元素的值指示所述第二约束是适用的,来确定与第四语法元素相关联的值指示图片参数集适用于的在所述第二多个图片当中的每个子图片仅包含一个条带。
第15L条、根据第11L-14L条中的任何一条所述的非暂时性计算机可读介质,其中,所述指令还使得所述一个或多个处理器:接收类型I比特流,所述类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及对所述至少一个PH NAL单元和所述至少一个VCL NAL单元进行解码。
第16L条、一种用于对视频数据进行解码的设备,所述设备包括:用于确定对第一约束是否是适用的进行指示的第一语法元素的值的单元,所述第一约束为:矩形条带不被用于第一多个图片;以及用于根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码的单元。
第17L条、根据第16L条所述的设备,还包括:用于基于所述第一语法元素的值指示所述第一约束是适用的,来确定与用于所述第一多个图片的第二语法元素相关联的值等于0的单元,其中,针对所述第二语法元素的值0指示矩形条带不被用于图片参数集适用于的、在所述第一多个图片当中的每个图片。
第18L条、根据第16L条所述的设备,还包括:用于确定对于第二约束是否是适用的进行指示的第三语法元素的值的单元,所述第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及用于根据所述第三语法元素的值来对所述第二多个图片当中的每个子图片进行解码的单元。
第19L条、根据第18L条所述的设备,还包括:用于基于所述第三语法元素的值指示所述第二约束是适用的,来确定与第四语法元素相关联的值指示图片参数集适用于的、在所述第二多个图片当中的每个子图片仅包含一个条带的单元。
第20L条、根据第16L-19L条中的任何一条所述的设备,还包括:用于接收类型I比特流的单元,所述类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及用于对所述至少一个PH NAL单元和所述至少一个VCLNAL单元进行解码的单元。
应当认识到,根据示例,在本文描述的任何技术的特定行为或事件可以以不同的顺序执行,可以一起添加、合并或省略(例如,并非所有描述的行为或事件对于技术的实践都是必需的)。此外,在特定的示例中,动作或事件可以并发地执行,例如,通过多线程处理、中断处理或多个处理器,而不是顺序地执行。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以软件实现,则这些功能可以作为计算机可读介质上的一个或多个指令或代码储存在计算机可读介质上或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读储存介质,其对应于诸如数据储存介质之类的有形介质,或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读储存介质或(2)诸如信号或载波的通信介质。数据储存介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以获取用于实现在本公开内容中描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或任何其它可用于以指令或数据结构的形式存储所需程序代码并可由计算机访问的介质。此外,任何连接都恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(诸如红外、无线电和微波)从网站、服务器或其它远程源发送指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外、无线电和微波)都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是指向非暂时性有形储存介质。本文所使用的磁盘和光盘包括光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘则以激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器(诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效集成或分立逻辑电路)执行。因此,如本文所使用的术语“处理器”和“处理电路”可以指上述结构或适于实现本文所描述的技术的任何其它结构中的任何一个。另外,在一些方面中,本文所描述的功能性可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或并入组合式codec中。此外,这些技术可以完全实现在一个或多个电路或逻辑元件中。
本公开内容的技术可以实现在多种设备或装置(包括无线手持设备、集成电路(IC)或一组IC(例如,芯片组))中。在本公开内容中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元实现。而是,如上所述,各种单元可以组合在codec硬件单元中,或者由互操作硬件单元的集合(包括如上所述的一个或多个处理器)结合适合的软件和/或固件来提供。
已描述了各种示例。这些和其它示例在以下权利要求的范围内。
Claims (20)
1.一种对视频数据进行解码的方法,所述方法包括:
确定对第一约束是否是适用的进行指示的第一语法元素的值,所述第一约束为:矩形条带不被用于第一多个图片;以及
根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
2.根据权利要求1所述的方法,还包括:
基于所述第一语法元素的值指示所述第一约束是适用的,来确定与用于所述第一多个图片的第二语法元素相关联的值等于0,其中,针对所述第二语法元素的值0指示矩形条带是不被用于图片参数集适用于的、在所述第一多个图片当中的每个图片的。
3.根据权利要求1所述的方法,还包括:
确定对于第二约束是否是适用的进行指示的第三语法元素的值,所述第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及
根据所述第三语法元素的值来对所述第二多个图片当中的每个子图片进行解码。
4.根据权利要求3所述的方法,还包括:
基于所述第三语法元素的值指示所述第二约束是适用的,来确定与第四语法元素相关联的值指示图片参数集适用于的、在所述第二多个图片当中的每个子图片仅包含一个条带。
5.根据权利要求1的方法,还包括:
接收类型I比特流,所述类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及
对所述至少一个PH NAL单元和所述至少一个VCL NAL单元进行解码。
6.一种用于对视频数据进行解码的设备,所述设备包括:
存储器,其被配置为存储所述视频数据,以及
在电路中实现并通信地耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:
确定对第一约束是否是适用的进行指示的第一语法元素的值,所述第一约束为:矩形条带不被用于第一多个图片;以及
根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
7.根据权利要求6所述的设备,其中,所述一个或多个处理器还被配置为:
基于所述第一语法元素的值指示所述第一约束是适用的,来确定与用于所述第一多个图片的第二语法元素相关联的值等于0,其中,针对所述第二语法元素的值0指示矩形条带是不被用于图片参数集适用于的、在所述第一多个图片当中的每个图片的。
8.根据权利要求6所述的设备,其中,所述一个或多个处理器还被配置为:
确定对于第二约束是否是适用的进行指示的第三语法元素的值,所述第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及
根据所述第三语法元素的值来对所述第二多个图片当中的每个子图片进行解码。
9.根据权利要求8所述的设备,其中,所述一个或多个处理器还被配置为:
基于所述第三语法元素的值指示所述第二约束是适用的,来确定与第四语法元素相关联的值指示图片参数集适用于的、在所述第二多个图片当中的每个子图片仅包含一个条带。
10.根据权利要求6所述的设备,其中,所述一个或多个处理器还被配置为:
接收类型I比特流,所述类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及
对所述至少一个PH NAL单元和所述至少一个VCL NAL单元进行解码。
11.一种存储指令的非暂时性计算机可读介质,所述指令在被执行时使得一个或多个处理器:
确定对第一约束是否是适用的进行指示的第一语法元素的值,所述第一约束为:矩形条带不被用于第一多个图片;以及
根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码。
12.根据权利要求11所述的非暂时性计算机可读介质,其中,所述指令还使得所述一个或多个处理器:
基于所述第一语法元素的值指示所述第一约束是适用的,来确定与用于所述第一多个图片的第二语法元素相关联的值等于0,其中,针对所述第二语法元素的值0指示矩形条带不被用于图片参数集适用于的、在所述第一多个图片当中的每个图片。
13.根据权利要求11所述的非暂时性计算机可读介质,其中,所述指令还使得所述一个或多个处理器:
确定对于第二约束是否是适用的进行指示的第三语法元素的值,所述第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及
根据所述第三语法元素的值来对所述第二多个图片当中的每个子图片进行解码。
14.根据权利要求13所述的非暂时性计算机可读介质,其中,所述指令还使得所述一个或多个处理器:
基于所述第三语法元素的值指示所述第二约束是适用的,来确定与第四语法元素相关联的值指示图片参数集适用于的、在所述第二多个图片当中的每个子图片仅包含一个条带。
15.根据权利要求11所述的非暂时性计算机可读介质,其中,所述指令还使得所述一个或多个处理器:
接收类型I比特流,所述类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及
对所述至少一个PH NAL单元和所述至少一个VCL NAL单元进行解码。
16.一种用于对视频数据进行解码的设备,所述设备包括:
用于确定对第一约束是否是适用的进行指示的第一语法元素的值的单元,所述第一约束为:矩形条带不被用于第一多个图片;以及
用于根据所述第一语法元素的值来对所述视频数据的所述第一多个图片进行解码的单元。
17.根据权利要求16所述的设备,还包括:
用于基于所述第一语法元素的值指示所述第一约束是适用的,来确定与用于所述第一多个图片的第二语法元素相关联的值等于0的单元,其中,针对所述第二语法元素的值0指示矩形条带不被用于图片参数集适用于的、在所述第一多个图片当中的每个图片。
18.根据权利要求16所述的设备,还包括:
用于确定对于第二约束是否是适用的进行指示的第三语法元素的值的单元,所述第二约束为:第二多个图片当中的每个子图片必须仅包含一个条带;以及
用于根据所述第三语法元素的值来对所述第二多个图片当中的每个子图片进行解码的单元。
19.根据权利要求18所述的设备,还包括:
用于基于所述第三语法元素的值指示所述第二约束是适用的,来确定与第四语法元素相关联的值指示图片参数集适用于的、在所述第二多个图片当中的每个子图片仅包含一个条带的单元。
20.根据权利要求16所述的设备,还包括:
用于接收类型I比特流的单元,所述类型I比特流包括至少一个图片报头(PH)网络抽象层(NAL)单元和至少一个视频译码层(VCL)NAL单元;以及
用于对所述至少一个PH NAL单元和所述至少一个VCL NAL单元进行解码的单元。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063024331P | 2020-05-13 | 2020-05-13 | |
US63/024,331 | 2020-05-13 | ||
US202063026609P | 2020-05-18 | 2020-05-18 | |
US63/026,609 | 2020-05-18 | ||
US202063028341P | 2020-05-21 | 2020-05-21 | |
US63/028,341 | 2020-05-21 | ||
US17/318,775 | 2021-05-12 | ||
US17/318,775 US11425422B2 (en) | 2020-05-13 | 2021-05-12 | Parameter set syntax elements and variables in video coding |
PCT/US2021/032219 WO2021231707A1 (en) | 2020-05-13 | 2021-05-13 | Parameter set syntax elements and variables in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115462073A true CN115462073A (zh) | 2022-12-09 |
Family
ID=78512179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180028751.2A Pending CN115462073A (zh) | 2020-05-13 | 2021-05-13 | 视频译码中的参数集语法元素和变量 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11425422B2 (zh) |
EP (1) | EP4150908A1 (zh) |
KR (1) | KR20230008733A (zh) |
CN (1) | CN115462073A (zh) |
BR (1) | BR112022022058A2 (zh) |
TW (1) | TW202145796A (zh) |
WO (1) | WO2021231707A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11509920B2 (en) * | 2020-03-27 | 2022-11-22 | Tencent America LLC | Indication of max sublayer numbers in multilayered video stream |
WO2021198309A1 (en) * | 2020-04-02 | 2021-10-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Virtual boundary signaling |
US11563963B2 (en) | 2020-05-19 | 2023-01-24 | Qualcomm Incorporated | Determining whether to code picture header data of pictures of video data in slice headers |
US11611778B2 (en) * | 2020-05-20 | 2023-03-21 | Sharp Kabushiki Kaisha | Systems and methods for signaling general constraint information in video coding |
CN115699733A (zh) * | 2020-05-21 | 2023-02-03 | 字节跳动有限公司 | 在视频编解码中信令通知层间参考图片 |
EP4140141A4 (en) * | 2020-05-22 | 2023-12-27 | Beijing Bytedance Network Technology Co., Ltd. | NUMBER LIMIT FOR LOWER CLASSES |
US11431998B2 (en) * | 2020-05-22 | 2022-08-30 | Tencent America LLC | Systems and methods for decoding based on inferred video parameter sets |
WO2021251746A1 (ko) * | 2020-06-09 | 2021-12-16 | 엘지전자 주식회사 | 픽처 출력 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체 |
US11503342B2 (en) * | 2020-06-10 | 2022-11-15 | Sharp Kabushiki Kaisha | Systems and methods for signaling sequence parameter information in video coding |
WO2024140793A1 (en) * | 2022-12-27 | 2024-07-04 | Mediatek Inc. | Method for reducing signaling overhead in video coding |
-
2021
- 2021-05-12 US US17/318,775 patent/US11425422B2/en active Active
- 2021-05-13 TW TW110117366A patent/TW202145796A/zh unknown
- 2021-05-13 CN CN202180028751.2A patent/CN115462073A/zh active Pending
- 2021-05-13 EP EP21730388.2A patent/EP4150908A1/en active Pending
- 2021-05-13 KR KR1020227039030A patent/KR20230008733A/ko active Search and Examination
- 2021-05-13 WO PCT/US2021/032219 patent/WO2021231707A1/en unknown
- 2021-05-13 BR BR112022022058A patent/BR112022022058A2/pt unknown
Also Published As
Publication number | Publication date |
---|---|
US11425422B2 (en) | 2022-08-23 |
WO2021231707A1 (en) | 2021-11-18 |
KR20230008733A (ko) | 2023-01-16 |
TW202145796A (zh) | 2021-12-01 |
BR112022022058A2 (pt) | 2022-12-13 |
EP4150908A1 (en) | 2023-03-22 |
US20210360289A1 (en) | 2021-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114097209B (zh) | 视频译码中的存取单元中的适应性参数集 | |
US11425422B2 (en) | Parameter set syntax elements and variables in video coding | |
CN113940069A (zh) | 用于视频译码中的低频不可分离变换的变换和最后有效系数位置信令 | |
CN114009026A (zh) | 视频译码中的色度量化参数偏移的块级信令 | |
EP4082207B1 (en) | Picture header intra random access picture and gradual decoder refresh signaling in video coding | |
CN115336279A (zh) | 视频译码中的一般约束信息语法 | |
CN114128286A (zh) | 视频编解码中的环绕运动补偿 | |
CN114846794A (zh) | 视频译码中针对子图的参考子图缩放比率 | |
US20210058620A1 (en) | Chroma quantization parameter (qp) derivation for video coding | |
CN114830648A (zh) | 用于视频译码的图像报头信令 | |
CN114868387B (zh) | 在进行视频译码时对块的色度变换跳过和联合色度译码启用 | |
CN115486066A (zh) | 在视频编解码中的独立子图片信令通知 | |
CN115398896A (zh) | 视频译码中的参考图片列表约束和信令 | |
US11825073B2 (en) | High level syntax for video with mixed NAL unit types | |
CN114128274A (zh) | 推导译码***操作配置 | |
CN114846796A (zh) | 用于视频译码中的参考图片重采样的环绕偏移 | |
TWI771693B (zh) | 視訊編碼及解碼中之空間延展性支援 | |
CN114731418A (zh) | 联合色度残差视频译码 | |
CN115398921A (zh) | 确定是否对在切片报头中的视频数据的图片的图片报头数据进行译码 | |
CN114830673A (zh) | 用于多个层的共享解码器图片缓冲器 | |
CN115280776A (zh) | 视频译码中的译码视频序列开始接入单元 | |
US11356685B2 (en) | Signaling number of sub-pictures in high-level syntax for video coding | |
CN113994675A (zh) | 用于bdpcm模式的最大允许块大小 | |
CN114503590A (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 |