CN114097209A - 视频译码中的存取单元中的适应性参数集 - Google Patents

视频译码中的存取单元中的适应性参数集 Download PDF

Info

Publication number
CN114097209A
CN114097209A CN202080050106.6A CN202080050106A CN114097209A CN 114097209 A CN114097209 A CN 114097209A CN 202080050106 A CN202080050106 A CN 202080050106A CN 114097209 A CN114097209 A CN 114097209A
Authority
CN
China
Prior art keywords
aps
nal unit
identifier
layer
video
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.)
Granted
Application number
CN202080050106.6A
Other languages
English (en)
Other versions
CN114097209B (zh
Inventor
V.塞雷金
M.Z.科班
A.K.拉马苏布拉莫尼安
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 CN114097209A publication Critical patent/CN114097209A/zh
Application granted granted Critical
Publication of CN114097209B publication Critical patent/CN114097209B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/188Methods 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 video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

一种设备,被配置为获得包括视频数据的编码表示的比特流。另外,该设备被配置为基于适用的亮度映射及色度缩放(LMCS)适应性参数集(APS)网络抽象层(NAL)单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束。适用的LMCS APS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。

Description

视频译码中的存取单元中的适应性参数集
本申请要求于2020年6月4日提交的美国申请第16/893,100号的优先权,其要求于2019年6月6日提交的美国临时专利申请第62/858,250号和于2019年6月21日提交的美国临时专利申请第62/865,044号的权益,它们各自的全部内容通过引用并入本文。
技术领域
本公开涉及视频编码及视频解码。
背景技术
数字视频能力可以被并入到广泛范围的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流式传输设备等。数字视频设备实施视频译码(coding)技术,例如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)、ITU-T H.265/高效率视频译码(HEVC)定义的标准及此类标准的扩展中描述的那些。数字视频设备可以通过实施此类视频译码技术来更高效地发送、接收、编码、解码和/或存储数字视频信息。
视频译码技术包括空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,可以将视频切片(例如,视频图片或视频图片的一部分)分割成视频块,其也可以被称作译码树单元(CTU))、译码单元(CU)和/或译码节点。使用关于相同图片内的相邻块中的参考样本的空间预测来编码图片的帧内译码(I)切片中的视频块。图片的帧间译码(P或B)切片中的视频块可以使用相对于相同图片内的相邻块中的参考样本的空间预测,或相对于其它参考图片内的参考样本的时间预测。图片可以被称作帧,并且参考图片可以被称作参考帧。
发明内容
一般地,本公开描述了用于处理在视频译码中的适应性参数集(APS)的技术。如本公开中所描述的,可以施加约束集,其确保适用于译码切片网络抽象层(NAL)单元的APS在对译码切片NAL单元进行解码时可供使用。例如,约束可要求亮度映射及色度缩放(LMCS)APS NAL单元的层标识符等于译码切片NAL单元的层标识符、或等于被允许用于预测译码切片NAL单元的层的任何层的层标识符。该约束可以防止出现其中LMCS APS NAL单元指定比第二AU的VCLNAL单元的层标识符大的层标识符的情形。如果出现该情形且在子比特流提取过程中移除由LMCS APS NAL单元的层标识符标识的层,则会发生解码错误。
在一个示例中,本公开描述了一种处理视频数据的方法,该方法包括:获得包括视频数据的编码表示的比特流,其中比特流包括用于视频数据的当前层的图片的切片的译码切片NAL单元;以及基于适用的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束,其中,适用的LMCS APS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
在另一个示例中,本公开描述了一种编码视频数据的方法,该方法包括:从视频源获得视频数据;以及执行根据视频译码标准编码视频数据的编码过程,其中执行编码过程包括:生成用于译码切片NAL单元的LMCS APS标识符语法元素,其中:LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符,并且视频译码标准对编码过程施加约束,该约束要求LMCS APS NAL单元的层标识符等于译码切片NAL单元的层标识符、或等于被允许用于预测译码切片NAL单元的层的任何层的层标识符。
在另一个示例中,本公开描述了一种用于处理视频数据的设备,该设备包括:用于存储视频数据的存储器;以及实施在电路中的一个或多个处理器,一个或多个处理器被配置为:获得包括视频数据的编码表示的比特流,其中比特流包括用于视频数据的当前层的图片的切片的译码切片NAL单元;以及基于适用的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束,其中,适用的LMCS APS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
在另一个示例中,本公开描述了一种用于编码视频数据的设备,该设备包括:用于存储视频数据的存储器;以及实施在电路中的一个或多个处理器,一个或多个处理器被配置为:从视频源获得视频数据;以及执行根据视频译码标准编码视频数据的编码过程,其中一个或多个处理器被配置为使得作为执行编码过程的一部分,一个或多个处理器:生成用于译码切片NAL单元的LMCS APS标识符语法元素,其中:LMCS APS标识符语法元素指定LMCSAPS NAL单元的层标识符,以及视频译码标准对编码过程施加约束,该约束要求LMCS APSNAL单元的层标识符等于译码切片NAL单元的层标识符、或等于被允许用于预测译码切片NAL单元的层的任何层的层标识符。
在另一个示例中,本公开描述了一种用于处理视频数据的设备,该设备包括:用于获得包括视频数据的编码表示的比特流的部件,其中比特流包括用于视频数据的当前层的图片的切片的译码切片NAL单元;以及用于基于适用的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束的部件,其中,适用的LMCSAPS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
在另一个示例中,本公开描述了一种用于编码视频数据的设备,该设备包括:用于从视频源获得视频数据的部件;以及用于执行根据视频译码标准编码视频数据的编码过程的部件,其中用于执行编码过程的部件包括:生成用于译码切片NAL单元的LMCS APS标识符语法元素,其中:LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符,并且视频译码标准对编码过程施加约束,该约束要求LMCS APS NAL单元的层标识符等于译码切片NAL单元的层标识符、或等于被允许用于预测译码切片NAL单元的层的任何层的层标识符。
在另一个示例中,本公开描述了一种其上存储有指令的计算机可读数据存储介质,该指令在被执行时致使一个或多个处理器:获得包括视频数据的编码表示的比特流,其中比特流包括用于视频数据的当前层的图片的切片的译码切片NAL单元;以及基于适用的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束,其中,适用的LMCS APS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
在另一个示例中,本公开描述了一种其上存储有指令的计算机可读数据存储介质,该指令在被执行时致使一个或多个处理器:从视频源获得视频数据;以及执行根据视频译码标准编码视频数据的编码过程,其中致使一个或多个处理器执行编码过程的指令包括在被执行时致使一个或多个处理器执行如下步骤的指令:生成用于译码切片NAL单元的LMCS APS标识符语法元素,其中:LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符,并且视频译码标准对编码过程施加约束,该约束要求LMCS APS NAL单元的层标识符等于译码切片NAL单元的层标识符、或等于被允许用于预测译码切片NAL单元的层的任何层的层标识符。
在附图和以下描述中阐述了一个或多个示例的细节。根据说明书、附图和权利要求,其他特征、目的和优点将是显而易见的。
附图说明
图1为示出可执行本公开的技术的示例视频编码及解码系统的框图。
图2A和图2B是示出示例四叉树二叉树(QTBT)结构和对应的译码树单元(CTU)的概念图。
图3为示出可执行本公开的技术的示例视频编码器的框图。
图4为示出可执行本公开的技术的示例视频解码器的框图。
图5为示出用于编码当前块的示例方法的流程图。
图6为示出用于解码视频数据的当前块的示例方法的流程图。
图7为示出根据本公开的一种或多种技术的用于编码视频数据的示例方法的流程图。
图8为示出根据本公开的一种或多种技术的用于处理视频数据的示例方法的流程图。
具体实施方式
视频编码器编码视频数据以生成包括视频数据的编码表示的比特流。视频数据的编码表示包括网络抽象层(NAL)单元集。每个NAL单元可包括指定层标识符的语法元素及指定时间标识符的语法元素。具有相同值的层标识符的NAL单元被视为在相同层中。类似地,具有相同值的时间标识符的NAL单元被视为在相同时间子层中。通常,视频解码器可以在不参考具有比NAL单元高的层标识符、或比NAL单元高的时间子层标识符的任何NAL单元的情况下,从NAL单元解码视频数据。
适应性参数集(APS)是用于携带频繁改变的信息(诸如自适应环路滤波器(ALF)滤波器系数)的参数集。APS NAL单元含有APS。在一些视频译码标准中,例如,目前正在开发的通用视频译码(VVC)标准中,存在多种类型的APS。例如,APS的类型可以包括亮度映射及色度缩放(LMCS)APS。LMCS是被应用作为解码过程的一部分的过程,其将亮度样本映射到特定值并且可以将缩放操作应用于色度样本的值。LMCS APS包括指定用于映射及缩放操作的参数的语法元素。
存取单元(AU)是对应于相同时间实例的图片集。与AU相关联的每个NAL单元具有相同的时间标识符。在VVC中,APS NAL单元被用作AU分界符(delimiter)。AU分界符标记新AU的开始。换句话说,APS NAL单元和按译码次序在APS NAL单元之后到达的NAL单元属于与按译码次序在APS NAL单元之前到达的NAL单元不同的AU。
然而,存在如下情况,例如当APS NAL单元是ALF APS NAL单元或LMCS APS NAL单元时,其中它可能需要在AU的最后一个视频译码层(VCL)NAL单元之后包括APS NAL单元,且使APS NAL单元被视为AU的一部分。术语“VCL NAL单元”是适用于译码切片NAL单元、及视频译码标准如此分类的潜在其它类型NAL单元的集合术语。如果VCL NAL单元指定APS NAL单元的APS标识符,则APS NAL单元被视为适用于VCL NAL单元(或被激活用于VCL NAL单元)。它可能需要在AU的最后一个VCL NAL单元之后包括APS NAL单元,使得APS NAL单元能够包括从AU的VCL NAL单元导出的信息。该APS NAL单元然后可以用于解码后续AU中的VCL NAL单元。
然而,如果在第一AU的最后一个VCL NAL单元之后出现第一AU中的APS NAL单元,且APS NAL单元适用于后续第二AU的VCL NAL单元,则可出现其中APS NAL单元指定比第二AU的VCL NAL单元的层标识符大的层标识符的情形。类似地,如果在第一AU的最后一个VCLNAL单元之后出现第一AU中的APS NAL单元,且APS NAL单元适用于后续第二AU的VCL NAL单元,则可出现其中APS NAL单元指定比第二AU的VCL NAL单元的时间标识符大的时间标识符的情形。在这些情形中,APS NAL单元可能不可用于解码第二AU的VCL NAL单元。这可能导致解码错误,或可能阻碍用于缩放所发送或解码的编码数据的量之目的的、对层或时间子层的选择性移除。
本公开描述了可以解决上文所描述的问题的技术。例如,在一个示例中,视频设备(诸如视频解码器或其它类型的设备)可以获得包括视频数据的编码表示的比特流。附加地,视频设备可以基于适用的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束。在该示例中,适用的LMCS APS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
在另一示例中,视频编码器可以从视频源获得视频数据。附加地,视频编码器可以执行根据视频译码标准编码视频数据的编码过程。执行编码过程可以包括生成用于译码切片NAL单元的LMCS APS标识符语法元素。在该示例中,LMCS APS标识符语法元素指定LMCSAPS NAL单元的层标识符。在该示例中,视频译码标准对编码过程施加约束,该约束要求LMCS APS NAL单元的层标识符等于译码切片NAL单元的层标识符,或等于被允许用于预测译码切片NAL单元的层的任何层的层标识符。
在这些示例中施加约束可以防止译码切片NAL单元参考潜在不可用的LMCS APSNAL单元。这可以防止解码错误和/或可以更好地实现特定层或时间子层的选择性发送和解码。
图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可以被配置为应用用于处理视频译码中的适应性参数集的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其他示例中,源设备和目的地设备可以包括其他组件或布置。例如,源设备102可以从诸如外部照相机的外部视频源接收视频数据。同样,目的地设备116可以与外部显示设备接口,而不是包括集成显示设备。
如图1所示的系统100仅是一个示例。通常,任何数字视频编码和/或解码设备都可以执行用于处理视频译码中的适应性参数集的技术。源设备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的通信的设备。
在一些示例中,计算机可读介质110可以包括存储设备112。源设备102可以从输出接口108向存储设备112输出编码的数据。类似地,目的地设备116可以经由输入接口122从存储设备112存取编码的数据。存储设备112可以包括用于存储编码的视频数据的各种分布式或本地存取的数据存储介质中的任何一种,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或任何其他合适的数字存储介质。
在一些示例中,计算机可读介质110可以包括文件服务器114或可存储由源设备102生成的编码的视频数据的另一中间存储设备。源设备102可以将编码的视频数据输出到文件服务器114或可存储由源设备102生成的编码的视频的另一中间存储设备。目的地设备116可以经由流传输或下载从文件服务器114存取所存储的视频数据。文件服务器114可以是能够存储编码的视频数据并将该编码的视频数据发送到目的地设备116的任何类型的服务器设备。文件服务器114可以表示网络服务器(例如,用于网站)、文件传送协议(FTP)服务器、内容分发网络设备或网络附接存储(NAS)设备。目的地设备116可以通过包括互联网连接的任何标准数据连接来存取来自文件服务器114的编码的视频数据。这可以包括适合访问存储在服务器114上的编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线(DSL)、电缆调制解调器等)或二者的组合。文件服务器114和输入接口122可以被配置为根据流媒体发送协议、下载发送协议或其组合来操作。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如以太网卡)、根据各种IEEE 802.11标准中的任何一种进行操作的无线通信组件或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4G、4G-LTE(长期演进)、LTE高级版、5G等的蜂窝通信标准来传送诸如编码的视频数据的数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、BluetoothTM标准等的其他无线标准来传送诸如编码的视频数据的数据。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上系统(SoC)设备。例如,源设备102可以包括SoC设备以执行归属于视频编码器200和/或输出接口108的功能,并且目的地设备116可以包括SoC设备以执行归属于视频解码器300和/或输入接口122的功能。
本公开的技术可以应用于支持各种多媒体应用中的任何一种的视频译码,各种多媒体应用例如空中电视广播、有线电视发送、卫星电视发送、诸如通过HTTP的动态自适应流(DASH)的互联网流视频发送、被编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频进行的解码或其他应用。
目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收编码的视频比特流。编码的视频比特流可以包括由视频编码器200定义的、也由视频解码器300使用的信令信息,例如具有描述视频块或其他译码单元(例如,切片(slice)、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备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等人的“通用视频译码(VersatileVideo Coding)(草案5)”,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家小组(JVET),第14次会议,瑞士日内瓦,2019年3月19-27日,JVET-N1001-v3(以下简称“VVC草案5”)中描述了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分割来呈现本公开的技术的描述。然而,应当理解,本公开的技术还可应用于被配置为使用四叉树分割或其它类型的分割的视频译码器。
本公开可互换地使用“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可以对待量化的值执行逐比特(bitwise)右移。
在量化之后,视频编码器200可以扫描变换系数,从而从包括量化的变换系数的二维矩阵产生一维矢量。可以将扫描设计为将较高能量(因此较低频率)的系数放在矢量的前面,并将较低能量(因此较高频率)的变换系数放在矢量的后面。在一些示例中,视频编码器200可利用预定义的扫描次序来扫描量化的变换系数以产生序列化的矢量,然后对矢量的量化的变换系数进行熵编码。在其他示例中,视频编码器200可以执行自适应扫描。在扫描量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术译码(CABAC)对一维矢量进行熵编码。视频编码器200还可对语法元素的值进行熵编码,该语法元素描述与编码的视频数据相关联的元数据,以供视频解码器300在解码视频数据时使用。
为了执行CABAC,视频编码器200可以将上下文(context)模型内的上下文分配给要发送的符号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以基于分配给符号的上下文。
视频编码器200可以进一步地,诸如在图片报头、块报头、切片报头或其他中,生成至视频解码器300的语法数据,诸如基于块的语法数据、基于图片的语法数据以及基于序列的语法数据,或其他语法数据,诸如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)。视频解码器300可以类似地解码此类语法数据以确定如何解码对应的视频数据。
以这种方式,视频编码器200可以生成比特流,该比特流包括编码的视频数据,例如,描述将图片分割为块(例如,CU)的语法元素以及该块的预测和/或残差信息。最终,视频解码器300可以接收比特流,并对编码的视频数据进行解码。
通常,视频解码器300执行的是与视频编码器200执行的过程相反的过程,以解码比特流的编码的视频数据。例如,视频解码器300可以以与视频编码器200的CABAC编码过程基本相似的方式(尽管与之相反),使用CABAC来解码比特流的语法元素的值。语法元素可以定义分割信息,该分割信息用于将图片分割为CTU,以及根据诸如QTBT结构的对应分割结构对每一个CTU进行分割,以定义CTU的CU。语法元素可以进一步定义用于视频数据的块(例如,CU)的预测和残差信息。
残差信息可以由例如量化的变换系数表示。视频解码器300可以对块的量化的变换系数进行逆量化和逆变换,以再现该块的残差块。视频解码器300使用信令通知的预测模式(帧内或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成块的预测块。视频解码器300然后可以(在逐个样本的基础上)组合预测块和残差块以再现初始块。视频解码器300可以执行附加的处理,例如执行去块(deblocking)过程以减少沿块的边界的视觉伪影。
LMCS为其中使用变换函数将输入样本转换为输出样本的译码工具。变换函数可以由查找表表示。结果,一个样本值映射到另一个样本值,并且可以更有效地压缩输出样本值。
比特流可以包括网络抽象层(NAL)单元的序列。NAL单元是包含NAL单元中的数据类型的指示及含有该数据的字节的语法结构,该字节呈必要时穿插有仿真预防比特(emulation prevention bit)的原始字节序列有效负载(RBSP)的形式。每个NAL单元可以包括NAL单元报头且可封装RBSP。NAL单元报头可以包括指示NAL单元类型代码的语法元素。由NAL单元的NAL单元报头指定的NAL单元类型代码指示NAL单元的类型。RBSP可以是包含被封装在NAL单元内的整数数目的字节的语法结构。在一些实例中,RBSP包括零比特。
图片的切片可以包括图片的整数数目的块。例如,图片的切片可以包括图片的整数数目的CTU。切片的CTU可以扫描次序(例如光栅扫描次序)被连续地排序。在一些视频译码规范中,切片被定义为被包含在一个独立切片区段及在相同存取单元内的下一独立切片区段(如果存在)之前的所有后续相关切片区段(如果存在)中的整数数目的CTU。此外,在一些视频译码规范中,切片区段被定义为在图块扫描中连续排序、且包含在单个NAL单元中的整数数目的CTU。图块扫描是分割图片的CTB的特定顺序排序,其中CTB在图块中以CTB光栅扫描被连续地排序,而图片中的图块以图片的图块的光栅扫描被连续地排序。图块是图片中的特定图块列和特定图块行内的CTB的矩形区域。帧内切片是包括帧内译码块且不包含帧间译码块的切片。帧间切片可以包括帧间及帧内译码块。
如上所述,比特流可以包括视频数据及相关联数据的编码图片的表示。相关联数据可以包括参数集。NAL单元可以封装用于视频参数集(VPS)、序列参数集(SPS、)和图片参数集(PPS)的RBSP。VPS是包括适用于零个或多个完整译码视频序列(CVS)的语法元素的语法结构。SPS也是包括适用于零个或多个完整CVS的语法元素的语法结构。SPS可以包括标识在SPS有效时也有效的VPS的语法元素。因此,VPS的语法元素可以比SPS的语法元素更普遍地适用。PPS是包括应用于零个或多个译码图片的语法元素的语法结构。PPS可以包括标识在PPS有效时也有效的SPS的语法元素。切片的切片报头可包括指示在切片正被译码时有效的PPS的语法元素。
如上所述,视频编码器200可以生成包括一系列NAL单元的比特流。在多层视频译码中,比特流的不同NAL单元可与比特流的不同层相关联。层可定义为具有相同层标识符的视频译码层(VCL)NAL单元及相关联的非VCL NAL单元的集合。例如,NAL单元可以包括报头(即,NAL单元报头)及有效负载(例如,RBSP)。NAL单元报头可以包括层标识符语法元素。具有指定不同值的层标识符语法元素的NAL单元属于比特流的不同“层”。因此,在多层译码中,NAL单元的层标识符语法元素指定NAL单元的层标识符(即,层ID)。
层可以等效于多视图视频译码中的视图。在多视图视频译码中,层可以包含具有不同时间实例的相同层的所有视图分量。在多层视频译码中,术语“存取单元”可以是指对应于相同时间实例的图片集。例如,存取单元中的所有图片可以具有相同输出时间。因此,“视图分量”可以是单个存取单元中的视图的译码表示。
在一些示例中,视图分量可以包括纹理视图分量(即,纹理图片)或深度视图分量(即,深度图片)。在多视图视频译码的一些示例中,层包含特定视图的译码深度图片或特定视图的译码纹理图片,但不包含深度图片和纹理图片两者。在多视图视频译码的其它示例中,层包含特定视图的纹理视图分量和深度视图分量两者。
在可缩放视频译码的上下文中,层通常对应于具有与其它层中的译码图片不同的视频特性的译码图片。这样的视频特性通常包括空间分辨率和质量水平(例如,信噪比)。
对于比特流的每个相应层,可以在不参考任何较高层中的数据的情况下解码较低层中的数据。在可缩放视频译码中,例如,可以在不参考增强层中的数据的情况下解码基础层中的数据。通常,NAL单元可以仅封装单个层的数据。因此,可以从比特流中移除封装比特流的最高剩余层(例如,与最高层标识符相关联的层)的数据的NAL单元,而不影响比特流的剩余层中的数据的可解码性。在多视图译码中,较高层可以包括附加的视图分量。在可缩放视频译码中,较高层可以包括信噪比(SNR)增强数据、空间增强数据和/或时间增强数据。在多层视频译码中,如果视频解码器可以在不参考任何其它层的数据的情况下解码层中的图片,则该层可以被称作“基础层”。在HEVC及其它视频译码规范中,如果NAL单元是在基础层中,则NAL单元的层标识符等于0。如果NAL单元不涉及多层译码中的基础层,则NAL单元的层标识符可以具有非零值。
在可缩放视频译码中,除基础层以外的层可被称作“增强层”,且可提供增强从比特流解码的视频数据的视觉质量的信息。可缩放视频编码可以增强空间分辨率、信噪比(即,质量)或时间速率。
多层视频译码可以支持层间预测。层间预测类似于HEVC和其它视频译码规范中使用的帧间预测,且可使用相同的语法元素。然而,当视频译码器对当前块执行层间预测时,视频译码器可以使用与当前块在相同存取单元中但在不同层中的图片作为参考图片。相比之下,常规的帧间预测仅使用不同存取单元中的图片作为参考图片。当译码非基础层中的一层中的当前图片时,如果图片与当前图片在不同层中但在相同的时间实例(即,相同存取单元)内,则视频译码器可以将该图片添加到参考图片列表中。
此外,可以在不参考相同层内的其它图片的情况下解码该层内的一些图片。因此,可从比特流中移除封装层的某些图片的数据的NAL单元,而不影响层中的其它图片的可解码性。移除封装这些图片的数据的NAL单元可减小比特流的帧速率。在可在不参考层内的其它图片的情况下被解码的层内的图片子集在本文中可以被称作“子层”、“时间层”或“时间子层”。因此,可以通过将具有特定时间级的图片组定义为子层(即,时间层),来在一个层内实现时间可缩放性。
NAL单元可以包括时间标识符(例如,HEVC中的temporal_id)语法元素。NAL单元的时间标识符语法元素指定NAL单元的时间标识符。NAL单元的时间标识符标识NAL单元与之相关联的时间子层。因此,比特流的层的每个时间子层可以与不同时间标识符相关联。如果第一NAL单元的时间标识符小于第二NAL单元的时间标识符,则可以在不参考由第二NAL单元封装的数据的情况下解码由第一NAL单元封装的数据。
在VVC中,适应性参数集(APS)用于携载频繁改变的信息,例如ALF滤波器系数。此外,在VVC中,比特流被组织在网络抽象层(NAL)单元中。NAL单元在存取单元(AU)中被分组,其包括根据指定分类规则彼此相关联的、在解码次序上是连续的、并且针对存取单元中存在的每个层确切地含有一个译码图片的相应集合NAL单元。NAL单元可以具有不同的类型,例如参数集单元(例如,VPS、SPS、PPS及APS)或视频译码层(VCL)NAL单元。VCL NAL单元携带编码的切片。
以下文本是来自VVC草案5的与存取单元及对NAL单元类型的约束有关的摘录:
在firstVclNalUnitInAu之前、且在firstVclNalUnitInAu之前的最后一个VCLNAL单元之后的以下NAL单元中的任一个中的第一个(如果存在),指定新存取单元的开始:
–存取单元分界符NAL单元(当存在时),
–DPS NAL单元(当存在时),
–VPS NAL单元(当存在时),
–SPS NAL单元(当存在时),
–PPS NAL单元(当存在时),
–APS NAL单元(当存在时),
–前缀SEI NAL单元(当存在时),
–NAL单元,其NalUnitType等于RSV_NVCL_5、RSV_NVCL_6、RSV_NVCL_21或RSV_NVCL_22(当存在时),
–NAL单元,其NalUnitType在UNSPEC28…UNSPEC29范围内(当存在时)。
针对非VCLNAL单元的TemporalId的值被约束如下:
–如果NalUnitType等于SPS_NUT,则TemporalId等于0,且包含NAL单元的层存取单元的TemporalId应等于0。
–否则,如果NalUnitType等于APS_NUT,则TemporalId应等于包含NAL单元的层存取单元的TemporalId。
–否则,当NalUnitType不等于EOS_NUT且不等于EOB_NUT时,TemporalId应大于或等于包含NAL单元的层存取单元的TemporalId。
如VVC草案5中所定义的,层存取单元是VCL NAL单元针对其全部具有特定NuhLayerId值的NAL单元集,其根据指定分类规则彼此相关联,按解码次序是连续的,并且确切地包含一个译码图片。
下面再现VVC草案5中对APS NAL单元的位置的另一个限制。如下文所示,包含在<!>…</!>标签中,与特定图片相关联的APS被禁止按照解码次序跟随图片的最后一个VCLNAL单元。
层存取单元或存取单元内的译码图片及非VCL NAL单元的次序应遵守以下约束:
–当层存取单元中存在存取单元分界符NAL单元时,它应是该层存取单元中的第一NAL单元。在任何层存取单元中应存在至多一个存取单元分界符NAL单元。
–<!>当任何DPS NAL单元,VPS NAL单元,SPS NAL单元,PPSNAL单元,APS NAL单元,前缀SEI NAL单元、具有等于RSV_NVCL_5、RSV_NVCL_6、RSV_NVCL_21或RSV_NVCL_22的NalUnitType的NAL单元,或具有在UNSPEC28…UNSPEC29范围内的NalUnitType的NAL单元存在于层存取单元中时,它们不应跟随该层存取单元的最后一个VCLNAL单元。</!>
–层存取单元中具有等于SUFFIX_SEI_NUT、RSV_NVCL_7或RSV_NVCL_23或在UNSPEC30…UNSPEC31范围内的NalUnitType的NAL单元不应在该层存取单元的第一VCL NAL单元之前。
–当序列NAL单元的末尾存在于存取单元中时,其应是在该存取单元中的除比特流NAL单元(当存在时)的末尾以外的、所有NAL单元当中的最后一个NAL单元。
–当比特流NAL单元的末尾存在于存取单元中时,它应是该存取单元中的最后一个NAL单元。
在VVC草案5中,在某些情况下,APS NAL单元可以用作AU分界符,意味着APS可以指示包括APS的新AU的开始。当在图片的最后一个VCL NAL单元之后信令通知APS时,APS被视为开始新的存取单元。然而,在若干情况下,期望在VCLNAL单元之后用基于VCLNAL单元导出的信息(例如ALF系数)来信令通知APS。在这种情况下,APS不应属于下一个AU。
其次,将APS时间ID分配为等于AU的时间ID;因此,如果APS属于下一个AU,则时间ID应等于下一个AU而不是当前AU的时间ID。如果下一个AU时间ID具有比当前AU时间ID更大的ID值,那么该APS不能用于等于当前AU时间ID的时间ID,即使APS是从该时间ID导出的。否则,可能破坏时间可缩放性。
最后,VVC草案5不允许VCLNAL单元、APS NAL单元及APS NAL单元在当前AU中混合,其中每个VCL NAL单元可以是相同图片的切片,并且APS信令通知从每个切片导出的信息,例如ALF系数。然而,在一些情况下,可能期望VCL、APS、VCL和APS NAL单元在AU中混合。在一个示例中,在编码期间,可以从每个切片导出APS参数。如果允许VCL和APS的混合,则在导出参数之后,可以将APS发出到比特流。然而,如果不允许这种混合,则视频编码器200可能需要缓冲所有APS,并在所有VCL之后发送它们。缓冲APS可能需要附加的存储。缓冲APS还可能引入以下问题:如果在不同VCL NAL单元中使用相同APS,则APS参数将在存储存储器中被覆写,这会在解码比特流时引入不匹配。
本公开的以下编号的各方面可以解决上述问题。这些方面可以被单独应用或以任何组合应用。
在第一方面,视频译码器不使用APS作为AU分界符。在这种情况下,可以移除指定APS可以开始新AU的约束。还可以移除不允许APS跟随相关联图片的最后一个VCL_NCL单元的约束。
在第二方面,从与APS与之关联的AU的时间ID解耦APS时间ID的分配。例如,可以从从中导出APS时间ID的AU来分配APS时间ID。因此,在第二方面,视频编码器200可以在包括视频数据的编码表示的比特流中包括APS NAL单元。附加地,在该示例中,视频编码器200可以在比特流中包括在比特流中跟随APS NAL单元的VCL NAL单元。在该示例中,VCL NAL单元属于与APS NAL单元相同的存取单元。类似地,视频解码器300可以从包括视频数据的编码表示的比特流获得APS NAL单元,并且从比特流获得在比特流中跟随APS NAL单元的VCLNAL单元。在该示例中,视频解码器300可以确定VCL NAL单元属于与APS NAL单元相同的存取单元。附加地,视频解码器300可以基于VCL NAL单元及APS NAL单元解码视频数据的图片的切片。
在第三方面,允许具有相同POC值(即,属于相同图片)的VCL与AU内的APS NAL单元的交错。换句话说,视频编码器200可以在包括视频数据的编码表示的比特流中包括一系列NAL单元,该一系列NAL单元包括与存取单元内的APS NAL单元交错的、具有相同图片次序计数(POC)值的VCL NAL单元。类似地,视频解码器300可以从包括视频数据的编码表示的比特流获得一系列NAL单元,该一系列NAL单元包括与存取单元内的APS NAL单元交错的、具有相同POC值的VCLNAL单元。在该示例中,视频解码器300可以基于VCL NAL单元及APS NAL单元解码存取单元的图片。
在第四方面,如果NalUnitType等于APS_NUT,则TemporalId应小于或等于包含NAL单元的层存取单元的TemporalId。
在第五方面,保持对APS的当前时间Id分配,即,temporalId应等于包含NAL单元的层存取单元的temporalId,但增加了编码器或比特流约束:与存取单元相关联的APS不能具有等于在存取单元中使用的任何APS ID的APS ID。例如,如果AU使用等于2、4及1的APS ID进行ALF滤波,则该存取单元中的所导出的(相关联的)APS不能具有等于1、2及4的APS ID;而是,所导出的APS应使用一些其它APS ID值,例如等于0的ID。所导出的APS可以包括基于存取单元的VCL NAL单元中的信息而导出的信息(例如,ALF滤波器系数)。在这种情况下,APS可以在AU中的VCL NAL单元之前被信令通知,并且将不覆写可用于AU滤波的现有APS。对于以上示例,如果相关联的APS具有等于1的ID,并且在VCL NAL单元之前被信令通知,则相关联的APS用等于1的ID替换旧APS,其被用于对AU中的图片进行滤波;然后,解码图片将存在不匹配,因为滤波器系数在新APS中可能不同。
因此,关于以上示例,视频编码器200可以在包括视频数据的编码表示的比特流中包括与存取单元相关联的APS(例如,在存取单元中的所导出的APS)。在该示例中,约束禁止与存取单元相关联的APS具有等于在存取单元中使用的任何APS标识符的APS标识符。在该示例中,视频编码器200可以基于与存取单元相关联的APS来编码后续存取单元的图片。在该示例中,视频解码器300可以从包括视频数据的编码表示的比特流获得与存取单元相关联的APS,其中约束禁止与存取单元相关联的APS具有等于在存取单元中所使用的任何APS标识符的APS标识符。在该示例中,视频解码器300可以基于与存取单元相关联的APS来解码后续存取单元的图片。基于APS编码和解码图片可以包括基于APS确定ALF参数,以及使用所确定的ALF参数将ALF应用于图片的切片的块。在这些示例中,该约束使得比特流在存取单元的末尾处仍然能够包括所导出的APS,同时防止可能由于所导出的APS具有与相同存取单元中的另一APS相同的APS标识符而出现的歧义。
扩展第五方面的思想,如果用于AU中的所导出的(相关联的)APS的APS ID具有等于在AU中用于滤波的任何APS的ID的ID,则这样的APS应与具有相同ID的现有APS具有相同的内容。换句话说,可以信令通知具有相同ID的新APS,但新APS必须具有相同的内容(例如,滤波器系数)。
因此,根据以上示例,视频编码器200可以在包括视频数据的编码表示的比特流中包括与存取单元相关联的APS。在该示例中,约束禁止与存取单元相关联的APS具有等于在存取单元中使用的任何APS标识符的APS标识符,除非与存取单元相关联的APS与在存取单元中使用的、具有相同APS标识符的现有APS具有相同的内容。在该示例中,视频编码器200可以基于与存取单元相关联的APS来编码后续存取单元的图片。类似地,在一些示例中,视频解码器300可以从包括视频数据的编码表示的比特流获得与存取单元相关联的APS,其中约束禁止与存取单元相关联的APS具有等于在存取单元中所使用的任何APS标识符的APS标识符,除非与存取单元相关联的APS与在存取单元中所使用的、具有相同APS标识符的现有APS具有相同的内容。在该示例中,视频解码器300可以基于与存取单元相关联的APS解码后续存取单元的图片。该约束可以有助于确保参考存取单元内具有相同APS标识符的APS的解码图片的结果不改变,因为这些APS中的一个或多个在子比特流提取过程中被移除。
在一个示例中,可以在AU中的APS中信令通知标志/语法元素(例如,aps_disallowed_for_curr_pic),以指定AU中的被信令通知的APS可不由当前图片使用,且将按解码次序应用于下一个图片。可替代地,这种限制可应用于存取单元层级而非图片层级。在这种情况下,当在当前图片中覆写APS内容并且由当前图片使用要覆写的APS时,可以避免视频编码器200和视频解码器300之间的不匹配,因为必须在图片的第一VCLNAL单元之前信令通知任何APS。
此外,在一些示例中,可以添加比特流约束以不允许当前图片使用当前存取单元中存在的具有等于1的aps_disallowed_for_curr_pic的APS。如果APS在不同存取单元中具有等于1的aps_disallowed_for_curr_pic,则可以允许当前图片使用它。可替代地,可以添加比特流约束,其指定与图片相关联且存在于与该图片相同的AU中的APS不应具有等于1的aps_disallowed_for_curr_pic。
在一些示例中,aps_disallowed_for_curr_pic的值可以延迟APS的激活。在这种情况下,在AU中被信号通知的APS将不被该AU激活,即,APS不能用于该AU解码。
在一些示例中,可以添加约束以指定由外部部件/比特流外部发送的APS应具有等于0的aps_disallowed_for_curr_pic。这样的约束可以被包括在VVC规范中,或者在系统层的其他规范中。
此外,在一些示例中,视频编码器200可以生成包括语法元素(例如,aps_disallowed_for_curr_pic)的APS。在该示例中,APS在视频数据的存取单元中,且语法元素指示APS是否可由存取单元中的当前图片使用。在该示例中,当语法元素指示APS不可由当前图片使用时,APS可由按解码次序的下一个图片使用。在该示例中,视频编码器200可以基于与存取单元相关联的APS来编码视频数据的后续存取单元的图片。类似地,在一些示例中,视频解码器300可以获得包括语法元素(例如,aps_disallowed_for_curr_pic)的APS。在此类示例中,APS在视频数据的存取单元中,且语法元素指示APS是否可由存取单元中的当前图片使用。当语法元素指示APS不可由当前图片使用时,APS可由按解码次序的下一个图片使用。在该示例中,视频解码器300可以基于与存取单元相关联的APS来解码视频数据的后续存取单元的图片。在这些示例中,当语法元素指示APS不可由当前图片使用时,比特流约束可以不允许当前图片使用APS。
此外,在这些示例中,比特流约束可以要求如果APS与当前图片相关联且APS存在于具有当前图片的相同存取单元中,则语法元素不应指示APS不可由当前图片使用。在这些示例中,基于指示APS不可由当前图片使用的语法元素,视频编码器200或视频解码器300可以延迟APS的激活,直到下一个存取单元为止。在一些这样的示例中,视频编码器200可以在包括视频数据的编码表示的比特流中生成APS。类似地,视频解码器300可以从包括视频数据的编码表示的比特流获得APS。在一些示例中,基于已从外部系统或从比特流外部获得APS,约束要求语法元素指定APS不可由当前图片使用。
属于不同APS类型的APS可以包括不同语法元素。例如,APS类型可包括ALF APS、LMCS APS及缩放APS。ALF APS是包括与自适应环路滤波相关联的语法元素的APS。LMCS APS是包括与LMCS相关联的语法元素的APS。APS的APS类型可以由APS参数类型(例如,aps_params_type)语法元素指定。在一些示例中,可以添加存取单元可不(例如,不应)包含超过阈值T数目的APS NAL单元的约束。T的值可以是固定的,或者可以取决于APS类型。因此,在该示例中,视频编码器200可以生成包括视频数据的编码表示的比特流。在该示例中,约束指定视频数据中没有存取单元可包含超过阈值数目的APS NAL单元。在该示例中,视频解码器300可以获得包括视频数据的编码表示的比特流。此外,在该示例中,约束指定视频数据中没有存取单元可包含超过阈值数目的APS NAL单元。在该示例中,视频解码器300可以基于比特流解码图片。例如,视频解码器300可以如关于图4所描述的那样基于比特流解码图片。对AU中使用的APS的数目施加约束限制了存储这些APS所需的总内存。
在一些示例中,可以添加约束以指定存取单元可不包含超过阈值T数目的特定adaptation_parameter_set_id的APS NAL单元,其中阈值T可为adaptation_parameter_set_id、APS类型等的函数。因此,在该示例中,视频编码器200可以生成包括视频数据的编码表示的比特流,其中约束指定视频数据中没有存取单元可包含超过阈值数目的特定APS标识符的APS NAL单元。在该示例中,视频解码器300可以获得包括视频数据的编码表示的比特流,其中约束指定视频数据中没有存取单元可包含超过阈值数目的特定APS标识符的APS NAL单元。在该示例中,视频解码器300可以基于比特流解码图片。例如,视频解码器300可以如关于图4所描述的那样基于比特流解码图片。
在一些示例中,将另一个约束添加到具有不同层ID的APS使用。例如,可以存在多个层,并且在VVC草案5中,即使当层被独立解码时,来自一个层的APS也可以在另一个层中被使用。在这种情况下,如果从比特流移除一个层(子比特流提取),则当也移除具有该层的APS但该APS可用于另一个层中时,子比特流不可解码。
因此,根据本公开的示例,可以添加具有层ID的图片仅可使用对应于该层ID的APS的约束。在另一个示例中,具有层ID的图片仅可使用对应于该层ID的APS及对应于层的层ID的APS,其可用于预测当前层。这样的层可以被称为“直接层”或“依赖层”。
例如,可以存在两个层(即,层0及层1),且层1可以使用层0的图片进行预测。在该示例中,在第一示例约束的情况下,层0仅可使用层0APS,并且层1仅可使用层1APS。在第二示例性约束中,层0仅可使用层0APS,并且层1可以使用层0APS和层1APS。在VVC草案5中,切片报头可以包括slice_alf_aps_id_luma语法元素及slice_alf_aps_id_chroma语法元素以及其它语法元素。以下包含在<C1>…</C1>标签中的文本对应于第一示例约束,而包含在<C2>…</C2>标签中的文本对应于本公开中提出的第二示例约束。
slice_alf_aps_id_luma[i]指定切片参考的第i个ALF APS的adaptation_parameter_set_id。具有等于slice_alf_aps_id_luma[i]的adaptation_parameter_set_id的ALF APS NAL单元的TemporalId应小于或等于译码切片NAL单元的TemporalId。
当具有相同adaptation_parameter_set_id值的多个ALF APS由相同图片的两个或更多个切片参考时,具有相同adaptation_parameter_set_id值的多个ALF APS应具有相同的内容。
<C1>具有等于slice_alf_aps_id_luma[i]的adaptation_parameter_set_id的ALF APS NAL单元的nuh_layer_id应等于译码切片NAL单元的nuh_layer_id</C1><C2>或用于预测当前层的任何层的nuh_layer_id。</C2>
对于帧内切片及IRAP图片中的切片,slice_alf_aps_id_luma[i]不应是指与其它图片而非包含帧内切片的图片或IRAP图片相关联的ALF APS。
slice_alf_aps_id_chroma指定切片的色度分量参考的adaptation_parameter_set_id。当slice_alf_aps_id_chroma不存在时,推断其等于slice_alf_aps_id_luma[0]。具有等于slice_alf_aps_id_chroma的adaptation_parameter_set_id的ALF APS NAL单元的TemporalId应小于或等于译码切片NAL单元的TemporalId。
<C1>具有等于slice_alf_aps_id_chroma的adaptation_parameter_set_id的ALFAPS NAL单元的nuh_layer_id应等于译码切片NAL单元的nuh_layer_id</C1><C2>或用于预测当前层的任何层的nuh_layer_id。</C2>
·<C1>在一个替代方案中,具有等于slice_alf_aps_id_chroma的adaptation_parameter_set_id的ALF APS NAL单元的nuh_layer_id应</C1><C2>小于或</C2><C1>等于译码切片NAL单元的nuh_layer_id。</C1>
对于帧内切片及IRAP图片中的切片,slice_alf_aps_id_chroma不应是指与其它图片而非包含帧内切片的图片或IRAP图片相关联的ALF APS。
还提出包括存在于slice_alf_aps_id_luma至slice_alf_aps_id_chroma中的类似的adaptation_parameter_set_id约束。例如,可以将以下语言添加到slice_alf_aps_id_chroma语义:
<C1>当具有相同adaptation_parameter_set_id值的多个ALF APS由相同图片的两个或更多个切片参考时,具有相同adaptation_parameter_set_id值的多个ALF APS应具有相同的内容。</C1>
在一些示例中,约束可应用于存取单元的两个或更多个切片,而不是图片的两个或更多个切片,如上文示例中所描述的。例如,可以将以下语言添加到slice_alf_aps_id_chroma语义:
<C1>当具有相同adaptation_parameter_set_id值的多个ALF APS由存取单元的两个或更多个切片参考时,具有相同adaptation_parameter_set_id值的多个ALF APS应具有相同的内容。</C1>
在一些示例中,并非在存取单元或图片中的两个或更多个切片参考具有相同adaptation_parameter_set_id值的多个ALF APS时应用约束,而是可以在相同存取单元内仅存在两个或更多个ALF APS时应用约束。也就是说,约束可要求当具有相同adaptation_parameter_set_id值的多于一个ALF APS存在于存取单元中时,ALF APS的内容应相同。
因此,根据本公开的技术,视频编码器200可以确定ALF参数,并且在包括视频数据的编码表示的比特流中包括用于视频数据的当前层的图片的切片的译码切片NAL单元。在该示例中,译码切片NAL单元包括指定切片所参考的ALF APS的标识符的语法元素。在该示例中,应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符的任何ALF APS NAL单元的层标识符,其中ALF APS包括表示ALF参数的数据。此外,在该示例中,视频编码器200可以使用ALF参数将ALF应用于切片的块。在该示例中,切片可以为帧间切片、帧内切片或另一类型的切片。在该示例中,在一些情况下,语法元素可以指定切片的色度分量所参考的ALF APS的标识符(例如,语法元素可为slice_alf_aps_id_chroma语法元素)。在其它情况下,语法元素可为slice_alf_aps_id_luma语法元素。
在本公开的一些示例中,视频编码器200可以确定ALF参数,并且可以在包括视频数据的编码表示的比特流中包括用于视频数据的当前层的图片的切片的译码切片NAL单元。译码切片NAL单元包括指定切片所参考的ALF APS的标识符的语法元素。应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符、或用于预测当前层的层的层标识符的任何ALF APS NAL单元的层标识符。ALF APS包括表示ALF参数的数据。在该示例中,视频编码器200可以使用ALF参数将ALF应用于切片的块。在该示例中,切片可以为帧间切片、帧内切片或另一类型的切片。在该示例中,在一些情况下,语法元素可以指定切片的色度分量所参考的ALF APS的标识符(例如,语法元素可为slice_alf_aps_id_chroma语法元素)。在其它情况下,语法元素可为slice_alf_aps_id_luma语法元素。
此外,在一些示例中,视频解码器300可以从包括视频数据的编码表示的比特流中获得用于视频数据的当前层的图片的切片的译码切片NAL单元,译码切片NAL单元包括指定切片所参考的ALF APS的标识符的语法元素。在该示例中,应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符的任何ALF APS NAL单元的层标识符。视频解码器300可以基于ALF APS确定ALF参数,并且使用所确定的ALF参数将ALF应用于切片的块。在该示例中,视频解码器300可以响应于确定语法元素指定不等于译码切片NAL单元的层标识符的ALF APS NAL单元的层标识符,来确定比特流是不符合的比特流。在该示例中,切片可以为帧间切片、帧内切片或另一类型的切片。在该示例中,在一些情况下,语法元素可以指定切片的色度分量所参考的ALF APS的标识符(例如,语法元素可为slice_alf_aps_id_chroma语法元素)。在其它情况下,语法元素可为slice_alf_aps_id_luma语法元素。
在本公开的一些示例中,视频解码器300可以从包括视频数据的编码表示的比特流中获得用于视频数据的当前层的图片的切片的译码切片NAL单元。译码切片NAL单元包括指定切片所参考的ALF APS的标识符的语法元素。应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符、或用于预测当前层的层的层标识符的任何ALF APS NAL单元的层标识符。视频解码器300可以基于ALF APS确定ALF参数,且可使用所确定的ALF参数将ALF应用于切片的块。在该示例中,视频解码器300可以被配置为响应于确定语法元素指定不等于译码切片NAL单元的层标识符、且不等于用于预测当前层的任何层的层标识符的ALF APS NAL单元的层标识符,来确定比特流是不符合的比特流。切片可以为帧间切片、帧内切片或另一类型的切片。在该示例中,在一些情况下,语法元素可以指定切片的色度分量所参考的ALF APS的标识符(例如,语法元素可为slice_alf_aps_id_chroma语法元素)。在其它情况下,语法元素可为slice_alf_aps_id_luma语法元素。
不允许使用其他层APS的相同想法可以应用于其他APS类型,诸如亮度映射和色度缩放(LMCS)APS类型。VVC草案5指定切片报头可以包括指定适用的LMCS APS的APS ID的slice_lmcs_aps_id语法元素。VVC草案5指定用于slice_lmcs_aps_id语法元素的以下语义。
slice_Imcs_aps_id指定切片参考的LMCS APS的adaptation_parameter_set_id。具有等于slice_lmcs_aps_id的adaptation_parameter_set_id的LMCS APS NAL单元的TemporalId应小于或等于编码的切片NAL单元的TemporalId。
当具有相同adaptation_parameter_set_id值的多个LMCS APS被相同图片的两个或更多个切片参考时,具有相同adaptation_parameter_set_id值的多个LMCS APS应具有相同的内容。
根据本公开的技术,当具有相同adaptation_parameter_set_id值的多个LMCSAPS存在于存取单元中时,LMCS APS应具有相同的内容。因此,视频译码标准可以允许比特流在相同AU内包括具有潜在不同层ID的多个LMCS APS NAL单元。因此,如果从比特流移除包括LMCS APS NAL单元的层,则在存取单元中仍可存在可用的LMCS APS NAL单元,且因为LMCS APS具有相同的内容,所以针对剩余层的基于该LMCS APS的解码过程不受移除相同存取单元中的另一个LMCS APS NAL单元的影响。
在一些示例中,可以添加下面用<C1>…</C1>标记的约束到视频译码标准。在一些示例中,约束可以包括被标记为<C2>…</C2>的附加文本。
<C1>具有等于slice_lmes_aps_id的adaptation_parameter_set_id的LMCS APSNAL单元的nuh_layer_id应等于译码切片NAL单元的nuh_layer_id</C1><C2>或用于预测当前层的任何层的nuh_layer_id。</C2>
该约束的施加可以确保适用于译码切片NAL单元的LMCS APS可用,即使从比特流移除特定层。这可以防止会在适用于译码切片NAL单元的LMCS APS不可用时发生的解码错误。
在一些示例中,可以添加下面用<C1>…</C1>标记的约束到视频译码标准。在一些示例中,约束可以包括被标记为<C2>…</C2>的附加文本。
<C1>具有等于slice_lmes_aps_id的adaptation_parameter_set_id的LMCS APSNAL单元的nuh_layer_id应等于译码切片NAL单元的nuh_layer_id</C1><C2>或可用于预测当前层的任何层的nuh_layer_id。</C2>
该C2约束不同于先前示例的C2约束,因为不需要LMCS APS NAL单元的层在实际用于预测当前层的层之中,而是可以在可用于预测当前层的层之中。允许LMCS APS NAL单元的层在可用于预测当前层的任何层中可以实现视频编码器200在放置LMCS APS NAL单元时的较大灵活性,这可以给初始比特流带来较高的译码效率,但会产生包括否则可被移除的层的所提取的子比特流。
在一些示例中,可以添加下面用<C1>…</C1>标记的约束到视频译码标准。在一些示例中,约束可以包括被标记为<C2>…</C2>的附加文本。
<C1>具有等于slice_lmcs_aps_id的adaptation_parameter_set_id的LMCS APSNAL单元的nuh_layer_id应</C><C2>小于或</C2><C>等于译码切片NAL单元的nuh_layer_id。</C1>
上面的C2约束不同于先前示例的C2约束,因为LMCS APS NAL单元的层不必必须在可用于预测当前层的层之中,而是可以为具有小于当前层的层ID的层ID的任何层。允许LMCS APS NAL单元的层在具有小于当前层的层ID的层ID的任何层中可以实现视频编码器200在放置LMCS APS NAL单元时的较大灵活性,这可以给初始比特流带来较高的译码效率,但会产生包括否则可被移除的层的所提取的子比特流。
因此,根据本公开的技术,视频编码器200可以从视频源获得视频数据。附加地,视频编码器200可以执行根据视频译码标准编码视频数据的编码过程。作为执行编码过程的一部分,视频编码器200可以生成用于译码切片NAL单元的LMCS APS标识符语法元素。用于译码切片NAL单元的LMCS APS标识符语法元素可以被包括在译码切片NAL单元中、在适用于译码切片NAL单元的图片报头中或其它地方。LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符。在该示例中,视频译码标准对编码过程施加约束,该约束要求LMCS APSNAL单元的层标识符等于译码切片NAL单元的层标识符,或等于被允许用于预测译码切片NAL单元的层的任何层的层标识符。
类似地,根据本公开的技术,一设备(例如,目的地设备106、视频解码器300等)可以获得包括视频数据的编码表示的比特流。在该示例中,该设备可以基于适用的LMCS APSNAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束。在该示例中,适用的LMCS APS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
APS中的层ID限制的替代解决方案可以是对子比特流提取过程的修改。子比特流提取过程是从比特流移除与特定层及/或时间子层相关联的NAL单元的过程。比特流中剩余的NAL单元形成所提取的子比特流,其可以参考所移除的NAL单元中的信息来解码。子比特流提取过程可以发生在视频解码器(例如,视频解码器300)、目的地设备(例如,目的地设备116)或获得比特流的另一类型的设备中。
根据本公开的技术,当层提取作为执行子比特流提取过程的一部分而发生时,不从比特流移除APS NAL单元,即,其它层APS存在于所提取的子比特流中,因此可跨层参考APS。在一个示例中,VVC草案5被修改如下,其中<!>…</!>标记该修改:
输出子比特流被如下导出:
–移除具有大于tldTarget的TemporalId的所有NAL单元。
–移除除了具有不等于lIdTarget的NuhLayerId的<!>APS NAL单元之外</!>的所有NAL单元。
以此方式,即使APS NAL单元在原本将在子比特流提取过程中被移除的层中,APSNAL单元也可在所提取的子比特流中保持可用。这可以有助于防止解码错误和/或改进缩放。改进的缩放可以允许设备更好地管理带宽或调整解码设备的能力。
本公开通常可以指“信令通知(signaling)”某些信息,例如语法元素。术语“信令通知”通常可以指语法元素和/或用于解码被编码的视频数据的其他数据的值的通信。也就是说,视频编码器200可以在比特流中信令通知语法元素的值。通常,信令通知是指在比特流中生成值。如上所述,源设备102可以基本上实时地将比特流传输到目的地设备116,或非实时地将比特流传输到目的地设备116,诸如可能发生在将语法元素存储到存储设备112以供稍后由目的地设备116检索时。
图2A和图2B是示出示例四叉树二叉树(QTBT)结构130和对应的译码树单元(CTU)132的概念图。实线表示四叉树拆分,并且虚线指示二叉树拆分。在二叉树的每个拆分(即,非叶)节点中,一个标志被信令通知以指示使用哪种拆分类型(即,水平或垂直),其中在该示例中,0指示水平拆分,并且1指示垂直拆分。对于四叉树拆分,不需要指示拆分类型,因为四叉树节点将块水平和垂直地拆分成4个大小相等的子块。因此,视频编码器200可以编码、并且视频解码器300可以解码用于QTBT结构130的区域树级别(即,第一级别)(即实线)的语法元素(诸如拆分信息)和用于QTBT结构130的预测树级别(即,第二级别)(即虚线)的语法元素(诸如拆分信息)。视频编码器200可以对由QTBT结构130的终端叶节点表示的CU的视频数据(诸如预测和变换数据)进行编码,并且视频解码器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是出于解释的目的而提供的,并且不应被认为是对本公开中广泛示例和描述的技术的限制。出于解释的目的,本公开在视频译码标准(诸如H.265(HEVC)视频译码标准和正在开发的H.266(VCC)视频译码标准)的上下文下描述了视频编码器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中的视频数据。DPB 218可以充当参考图片存储器,其存储参考视频数据,以用于视频编码器200对后续视频数据的预测。视频数据存储器230和DPB 218可以由各种存储器设备中的任何一种形成,诸如包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)的动态随机存取存储器(DRAM)或其他类型的存储器设备。视频数据存储器230和DPB 218可以由相同的存储器设备或单独的存储器设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其他组件一起位于片上(on-chip),如图所示,或者相对于那些组件在片外(off-chip)。
在本公开中,对视频数据存储器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可以包括调色板(palette)单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202通常协调多个编码遍次(encoding pass),以测试编码参数的组合以及所得的针对这些组合的率失真值。编码参数可以包括从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大小的非对称分割。
在模式选择单元不进一步将CU分割为PU的示例中,每个CU可以与亮度译码块和对应的色度译码块相关联。如上所述,CU的大小可以是指CU的亮度译码块的大小。视频编码器200和视频解码器120可以支持2N×2N、2N×N或N×2N的CU大小。
对于其他视频译码技术,诸如作为少数示例的块内复制模式译码、仿射模式译码和线性模型(LM)模式译码,模式选择单元202经由与译码技术相关联的相应单元为正在编码的当前块生成预测块。在一些示例中,诸如调色板模式译码,模式选择单元202可以不生成预测块,而是生成指示将基于所选调色板重构块的方式的语法元素。在这种模式下,模式选择单元202可以将这些语法元素提供给熵编码单元220进行编码。
如上所述,残差生成单元204接收针对当前块和相应预测块的视频数据。残差生成单元204然后为当前块生成残差块。为了生成残差块,残差生成单元204计算预测块和当前块之间的逐样本差。
变换处理单元206对残差块应用一个或多个变换,以生成变换系数的块(本文称为“变换系数块”)。变换处理单元206可以对残差块应用各种变换,以形成变换系数块。例如,变换处理单元206可以对残差块应用离散余弦变换(DCT)、方向变换、卡尔亨-洛夫变换(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可以使用当前图片的DPB218中的重构块来对当前图片中的其他块进行帧内预测。
通常,熵编码单元220可以对从视频编码器200的其他功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的量化的变换系数块进行熵编码。作为另一个示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、变量到变量(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率间隔分割熵(PIPE)译码操作、指数-哥伦布(Exponential-Golomb)编码操作或另一种类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未被熵编码的旁路模式下操作。
视频编码器200可以输出包括对切片或图片的块进行重构所需的熵编码语法元素的比特流。具体地,熵编码单元220可以输出该比特流。
以上描述的操作是关于块描述的。这种描述应该理解为是用于亮度译码块和/或色度译码块的操作。如上所述,在一些示例中,亮度译码块和色度译码块是CU的亮度分量和色度分量。在一些示例中,亮度译码块和色度译码块是PU的亮度分量和色度分量。
在一些示例中,对于色度译码块,不需要重复关于亮度译码块执行的操作。作为一个示例,无需重复用来标识亮度译码块的运动矢量(MV)和参考图片的操作来标识色度块的MV和参考图片。而是,用于亮度译码块的MV可以被缩放以确定用于色度块的MV,并且参考图片可以是相同的。作为另一个示例,对于亮度译码块和色度译码块,帧内预测过程可以是相同的。
视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括:存储器,被配置为存储视频数据;以及一个或多个处理单元,其在电路中实施,且被配置为获得包括视频数据的编码表示的比特流。一个或多个处理器可被进一步配置为基于适用的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束。适用的LMCS APS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
在一些示例中,视频编码器200可以表示被配置为编码视频数据的设备的示例,该设备包括被配置为存储视频数据的存储器,以及在电路中实施且被配置为确定ALF参数的一个或多个处理单元。在该示例中,处理单元可以在包括视频数据的编码表示的比特流中包括用于视频数据的当前层的图片的切片的译码切片NAL单元。在该示例中,译码切片NAL单元包括指定切片所参考的ALF APS的标识符的语法元素。在该示例中,应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符的任何ALF APSNAL单元的层标识符,其中ALF APS包括表示ALF参数的数据。此外,在该示例中,处理单元可以使用ALF参数将ALF应用于切片的块。在该示例中,切片可以为帧间切片、帧内切片或另一类型的切片。在该示例中,在一些情况下,语法元素可以指定切片的色度分量所参考的ALFAPS的标识符(例如,语法元素可为slice_alf_aps_id_chroma语法元素)。在其它情况下,语法元素可为slice_alf_aps_id_luma语法元素。
在本公开的一些示例中,视频编码器200的一个或多个处理单元可以确定ALF参数,且在包括视频数据的编码表示的比特流中包括用于视频数据的当前层的图片的切片的译码切片NAL单元。译码切片NAL单元包括指定切片所参考的ALF APS的标识符的语法元素。应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符、或用于预测当前层的层的层标识符的任何ALF APS NAL单元的层标识符。ALF APS包括表示ALF参数的数据。在该示例中,一个或多个处理单元可以使用ALF参数将ALF应用于切片的块。在该示例中,切片可以为帧间切片、帧内切片或另一类型的切片。在该示例中,在一些情况下,语法元素可以指定切片的色度分量所参考的ALF APS的标识符(例如,语法元素可为slice_alf_aps_id_chroma语法元素)。在其它情况下,语法元素可为slice_alf_aps_id_luma语法元素。
在本公开的一些示例中,视频编码器200的一个或多个处理单元可以在包括视频数据的编码表示的比特流中包括APS NAL单元。附加地,在该示例中,一个或多个处理单元可以在比特流中包括在比特流中跟随APS NAL单元的VCL NAL单元。在该示例中,VCL NAL单元属于与APS NAL单元相同的存取单元。此外,在本公开的一些示例中,视频编码器200的一个或多个处理单元可以在包括视频数据的编码表示的比特流中包含一系列NAL单元,该一系列NAL单元包括与存取单元内的APS NAL单元交错的具有相同POC值的VCL NAL单元。
图4是示出可以执行本公开的技术的示例视频解码器300的框图。图4是出于解释的目的而提供的,并不限制本公开中广泛例示和描述的技术。出于解释的目的,本公开描述了根据H.266(VCC)和H.265(HEVC)的技术的视频解码器300。然而,本公开的技术可以由根据其他视频译码标准配置的视频译码设备来执行。
在图4的示例中,视频解码器300包括测试单元321、译码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲器(DPB)314。测试单元321、CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任何一个或全部可以在一个或多个处理器或处理电路中实施。而且,视频解码器300可以包括附加的或可替代的处理器或处理电路来执行这些和其他功能。
测试单元321可以获得包括视频数据的编码表示(即,编码视频数据)的比特流。测试单元321可以执行比特流符合性测试,其确定比特流是否符合诸如VVC的视频译码标准。根据本公开的技术,作为执行比特流符合性测试的一部分,测试单元321可以基于具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束。
预测处理单元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)、逆旋转变换、逆方向变换或另一逆变换。
此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示从中检索参考块的DPB 314中的参考图片,以及标识相对于当前块在当前图片中的位置的、参考块在参考图片中的位置的运动矢量。运动补偿单元316通常可以以基本上类似于关于运动补偿单元224(图3)所描述的方式来执行帧间预测处理。
作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再者,帧内预测单元318通常可以以基本上类似于关于帧内预测单元226(图3)描述的方式来执行帧内预测过程。帧内预测单元318可以从DPB314检索当前块的相邻样本的数据。
重构单元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可以被包括在一设备(例如,目的地设备116)中,该设备包括被配置为存储视频数据的存储器,以及在电路中实施且被配置为获得包括视频数据的编码表示的比特流的一个或多个处理单元。一个或多个处理单元可以被进一步配置为基于适用的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用以预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束。在这些示例中,适用的LMCS APS NAL单元具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。在一些示例中,图4的视频解码器300可以基于确定比特流满足约束来解码比特流。
此外,在一些示例中,视频解码器300表示视频解码设备的示例,该视频解码设备包括:存储器,被配置为存储视频数据;以及一个或多个处理单元,其在电路中实施,且被配置为从包括视频数据的编码表示的比特流获得用于视频数据的当前层的图片的切片的译码切片NAL单元,译码切片NAL单元包括指定切片所参考的ALF APS的标识符的语法元素。在该示例中,应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符的任何ALF APS NAL单元的层标识符。一个或多个处理单元可以基于ALF APS确定ALF参数,且使用所确定的ALF参数将ALF应用于切片的块。在该示例中,视频解码器300的一个或多个处理单元可以响应于确定语法元素指定不等于译码切片NAL单元的层标识符的ALF APS NAL单元的层标识符,来确定比特流为不符合的比特流。在该示例中,切片可以为帧间切片、帧内切片或另一类型的切片。在该示例中,在一些情况下,语法元素可以指定切片的色度分量所参考的ALF APS的标识符(例如,语法元素可为slice_alf_aps_id_chroma语法元素)。在其它情况下,语法元素可为slice_alf_aps_id_luma语法元素。
在本公开的一些示例中,视频解码器300的一个或多个处理单元被配置为从包括视频数据的编码表示的比特流获得用于视频数据的当前层的图片的切片的译码切片NAL单元。译码切片NAL单元包括指定切片所参考的ALF APS的标识符的语法元素。应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符、或用于预测当前层的层的层标识符的任何ALF APS NAL单元的层标识符。一个或多个处理单元可以基于ALF APS确定ALF参数,且使用所确定的ALF参数将ALF应用于切片的块。在该示例中,处理单元可以被配置为响应于确定语法元素指定不等于译码切片NAL单元的层标识符、且不等于用于预测当前层的任何层的层标识符的ALF APS NAL单元的层标识符,来确定比特流为不符合的比特流。切片可以为帧间切片、帧内切片或另一类型的切片。在该示例中,在一些情况下,语法元素可以指定切片的色度分量所参考的ALF APS的标识符(例如,语法元素可为slice_alf_aps_id_chroma语法元素)。在其它情况下,语法元素可为slice_alf_aps_id_luma语法元素。
在本公开的一些示例中,视频解码器300的一个或多个处理单元可以从包括视频数据的编码表示的比特流获得APS NAL单元,且从比特流获得在比特流中跟随APS NAL单元的VCL NAL单元。在该示例中,处理单元可以确定VCLNAL单元属于与APS NAL单元相同的存取单元。附加地,处理单元可以基于VCL NAL单元及APS NAL单元解码视频数据的图片的切片。
在本公开的一些示例中,视频解码器300的一个或多个处理单元可以从包括视频数据的编码表示的比特流获得一系列NAL单元,该一系列NAL单元包括与存取单元内的APSNAL单元交错的具有相同POC值的VCL NAL单元。在该示例中,处理单元可以基于VCL NAL单元及APS NAL单元解码存取单元的图片。
在一些示例中,视频解码器300的一个或多个处理单元可以基于具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束。
图5是示出对当前块进行编码的示例方法的流程图。提供本公开的流程图作为示例。在其他示例中,根据本公开的技术的方法可以包括更多、更少或不同的动作,或可以不同次序执行的动作。
在图5的示例中,当前块可以包括当前CU。尽管关于视频编码器200(图1和图3)进行了描述,但是应当理解,其他设备可以被配置为执行类似于图5的方法。
在该示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成用于当前块的预测块。然后,视频编码器200可以计算用于当前块的残差块(352)。为了计算残差块,视频编码器200可以计算当前块的初始的未编码块与预测块之间的差值。然后,视频编码器200可以变换和量化残差块的变换系数(354)。接下来,视频编码器200可以扫描残差块的量化的变换系数(356)。在扫描期间或扫描之后,视频编码器200可以对变换系数进行熵编码(358)。例如,视频编码器200可以使用CAVLC或CABAC对变换系数进行编码。然后,视频编码器200可以输出块的熵编码的数据(360)。
图6是示出对视频数据的当前块进行解码的示例方法的流程图。当前块可以包括当前CU。尽管关于视频解码器300(图1和图4)进行了描述,但是应当理解,其他设备可以被配置为执行类似于图6的方法。
视频解码器300可以接收用于当前块的熵编码的数据,诸如针对与当前块相对应的残差块的变换系数的熵编码的预测信息和熵编码的数据(370)。视频解码器300可以对熵编码的数据进行熵解码,以确定用于当前块的预测信息,并再现残差块的变换系数(372)。视频解码器300可以例如使用由当前块的预测信息所指示的帧内或帧间预测模式来预测当前块(374),以计算针对当前块的预测块。然后,视频解码器300可以对再现的变换系数进行逆扫描(376),以创建量化的变换系数的块。然后,视频解码器300可以对变换系数进行逆量化和逆变换,以产生残差块(378)。视频解码器300可以通过组合预测块和残差块来最终解码当前块(380)。
图7为示出根据本公开的一种或多种技术的用于编码视频数据的示例方法的流程图。在图7的示例中,视频编码器200可以从诸如视频源104的视频源获得视频数据(400)。
此外,在图7的示例中,视频编码器200可以执行根据视频译码标准编码视频数据的编码过程(402)。作为执行编码过程的一部分,视频编码器200可以生成用于译码切片NAL单元的LMCS APS标识符语法元素(404)。在本公开中,用于译码切片NAL单元的LMCS APS标识符语法元素可以被包括在译码切片NAL单元中、在适用于译码切片NAL单元的图片报头中、或其它地方。LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符。视频译码标准对编码过程施加约束,该约束要求LMCS APS NAL单元的层标识符等于译码切片NAL单元的层标识符,或等于被允许用于预测译码切片NAL单元的层的任何层的层标识符。因此,当视频编码器200生成用于译码切片NAL单元的LMCS APS标识符语法元素时,用于译码切片NAL单元的LMCS APS标识符语法元素必须等于具有与译码切片NAL单元的层标识符、或被允许用于预测译码切片NAL单元的层的层的层标识符相等的层标识符的LMCS APS NAL单元的LMCS APS标识符。
图8为示出根据本公开的一种或多种技术的用于处理视频数据的示例方法的流程图。图8的示例是关于视频解码器300描述的,但是可以由其他设备执行。在图8的示例中,视频解码器300可以获得包括视频数据的编码表示的比特流(420)。例如,视频解码器300可以从输入接口122(图1)获得比特流。
视频解码器300可以基于具有由用于译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符的LMCS APS NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测译码切片NAL单元的层的任何层的层标识符,来确定比特流不满足由视频译码标准施加的约束(422)。用于译码切片NAL单元的LMCS APS标识符语法元素可以被包括在译码切片NAL单元中、在适用于译码切片NAL单元的图片报头中、或其它地方。作为执行评估比特流是否符合视频译码标准的比特流符合性测试的一部分,视频解码器300可以确定比特流是否满足约束。作为执行确定是否满足由视频译码标准施加的适用约束的一部分,测试单元321可以执行比特流符合性测试。在一些示例中,响应于确定比特流通过比特流符合性测试,视频解码器300可以解码比特流。在一些示例中,响应于确定比特流未通过比特流符合性测试,视频解码器300可以生成指示比特流未通过比特流符合性测试的错误。
以下是根据本公开的一种或多种技术的示例的非限制性列表。
示例1.一种解码视频数据的方法,该方法包括:从包括视频数据的编码表示的比特流获得用于视频数据的当前层的图片的切片的译码切片网络抽象层(NAL)单元,译码切片NAL单元包括指定切片所参考的自适应环路滤波器(ALF)适应性参数集(APS)的标识符的语法元素,其中,应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符的任何ALF APS NAL单元的层标识符;基于ALF APS确定ALF参数;以及使用所确定的ALF参数将ALF应用于切片的块。
示例2.如示例1所述的方法,其中,应用于语法元素的约束要求语法元素指定等于译码切片NAL单元的层标识符的ALF APS NAL单元的层标识符。
示例3.如示例1至2中任意一项所述的方法,还包括响应于确定语法元素指定不等于译码切片NAL单元的层标识符的ALF APS NAL单元的层标识符,来确定比特流为不符合的比特流。
示例4.如示例1至3中任意一项所述的方法,其中,切片是帧间切片。
示例5.如示例1至4中任意一项所述的方法,其中,语法元素指定切片的色度分量所参考的ALF APS的标识符。
示例6.一种解码视频数据的方法,该方法包括:从包括视频数据的编码表示的比特流获得用于视频数据的当前层的图片的切片的译码切片网络抽象层(NAL)单元,译码切片NAL单元包括指定切片所参考的自适应环路滤波器(ALF)适应性参数集(APS)的标识符的语法元素,其中,应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符、或用于预测当前层的层的层标识符的任何ALF APS NAL单元的层标识符;基于ALF APS确定ALF参数;以及使用所确定的ALF参数将ALF应用于切片的块。
示例7.如示例6所述的方法,其中,应用于语法元素的约束要求语法元素指定等于译码切片NAL单元的层标识符、或用于预测当前层的层的层标识符的ALF APS NAL单元的层标识符。
示例8.如示例6至7中任意一项所述的方法,还包括响应于确定语法元素指定不等于译码切片NAL单元的层标识符、并且不等于用于预测当前层的任何层的层标识符的ALFAPS NAL单元的层标识符,来确定比特流为不符合的比特流。
示例9.如示例6至8中任意一项所述的方法,其中,切片是帧间切片。
示例10.如示例6至9中任意一项所述的方法,其中,语法元素指定切片的色度分量所参考的ALF APS的标识符。
示例11.一种解码视频数据的方法,该方法包括:从包括视频数据的编码表示的比特流获得适应性参数集(APS)网络抽象层(NAL)单元;从比特流获得在比特流中跟随APSNAL单元的视频译码层(VCL)NAL单元;确定VCLNAL单元属于与APS NAL单元相同的存取单元;以及基于VCL NAL单元和APS NAL单元解码视频数据的图片的切片。
示例12.一种解码视频数据的方法,该方法包括:从包括视频数据的编码表示的比特流获得一系列网络抽象层(NAL)单元,该一系列NAL单元包括与存取单元内的适应性参数集(APS)NAL单元交错的具有相同图片次序计数(POC)值的视频译码层(VCL)NAL单元;以及基于VCL NAL单元及APS NAL单元解码存取单元的图片。
示例13.一种解码视频数据的方法,该方法包括:从包括视频数据的编码表示的比特流获得与存取单元相关联的适应性参数集(APS),其中,约束禁止与存取单元相关联的APS具有等于在存取单元中使用的任何APS标识符的APS标识符;以及基于与存取单元相关联的APS解码后续存取单元的图片。
示例14.一种解码视频数据的方法,该方法包括:从包括视频数据的编码表示的比特流获得与存取单元相关联的适应性参数集(APS),其中,除非与存取单元相关联的APS与在存取单元中使用的具有相同APS标识符的现有APS具有相同的内容,否则约束禁止与存取单元相关联的APS具有等于在存取单元中使用的任何APS标识符的APS标识符;以及基于与存取单元相关联的APS解码后续存取单元的图片。
示例15.一种解码视频数据的方法,该方法包括:获得包括语法元素的适应性参数集(APS),其中APS在视频数据的存取单元中,并且语法元素指示APS是否可由存取单元中的当前图片使用,其中,当语法元素指示APS不可由当前图片使用时,APS可按解码次序由下一个图片使用;以及基于与存取单元相关联的APS解码视频数据的后续存取单元的图片。
示例16.如示例15所述的方法,其中,当语法元素指示APS不可由当前图片使用时,比特流约束不允许当前图片使用APS。
示例17.如示例15所述的方法,其中,比特流约束要求如果APS与当前图片相关联、且APS存在于具有当前图片的相同存取单元中,则语法元素不应指示APS不可由当前图片使用。
示例18.如示例15至17中任意一项所述的方法,还包括:基于语法元素指示APS不可由当前图像使用,延迟APS的激活,直至下一个存取单元为止。
示例19.如示例15至18中任意一项所述的方法,其中,获得APS包括从包括视频数据的编码表示的比特流获得APS。
示例20.如示例15至18中任意一项所述的方法,其中:获得APS包括从外部系统或从包括视频数据的编码表示的比特流外部获得APS,以及基于已从外部系统或从比特流外部获得APS,约束要求语法元素指定APS不可由当前图片使用。
示例21.一种解码视频数据的方法,该方法包括:获得包括视频数据的编码表示的比特流,其中约束指定视频数据中没有存取单元可包含超过阈值数目的适应性参数集(APS)网络存取层(NAL)单元;以及基于比特流解码图片。
示例22.一种解码视频数据的方法,该方法包括:获得包括视频数据的编码表示的比特流,其中约束指定视频数据中没有存取单元可包含超过阈值数目的特定APS标识符的适应性参数集(APS)网络存取层(NAL)单元;以及基于比特流解码图片。
示例23.一种解码视频数据的方法,该方法包括示例1至22的任何组合的方法。
示例24.一种解码视频数据的方法,包括本公开的示例中的一个或多个的任何组合。
示例25.一种编码视频数据的方法,该方法包括:确定自适应环路滤波器(ALF)参数;在包括视频数据的编码表示的比特流中,包括用于视频数据的当前层的图片的切片的译码切片网络抽象层(NAL)单元,译码切片NAL单元包括指定切片所参考的ALF适应性参数集(APS)的标识符的语法元素,其中,应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符的任何ALF APS NAL单元的层标识符,其中,ALF APS包括表示ALF参数的数据;以及使用ALF参数将ALF应用于切片的块。
示例26.如示例25所述的方法,其中,应用于语法元素的约束要求语法元素指定等于译码切片NAL单元的层标识符的ALF APS NAL单元的层标识符。
示例27.如示例25至26中任意一项所述的方法,其中,切片是帧间切片。
示例28.如示例25至27中任意一项所述的方法,其中,语法元素指定切片的色度分量所参考的ALF APS的标识符。
示例29.一种编码视频数据的方法,该方法包括:确定自适应环路滤波器(ALF)参数;在包括视频数据的编码表示的比特流中,包括用于视频数据的当前层的图片的切片的译码切片网络抽象层(NAL)单元,译码切片NAL单元包括指定切片所参考的ALF适应性参数集(APS)的标识符的语法元素,其中,应用于语法元素的约束禁止语法元素在任何时候指定不等于译码切片NAL单元的层标识符、或用于预测当前层的层的标识符的任何ALF APS NAL单元的层标识符,其中,ALF APS包括表示ALF参数的数据;以及使用ALF参数将ALF应用于切片的块。
示例30.如示例29所述的方法,其中,应用于语法元素的约束要求语法元素指定等于译码切片NAL单元的层标识符、或用于预测当前层的层的层标识符的ALF APS NAL单元的层标识符。
示例31.如示例29至30中任意一项所述的方法,其中,切片是帧间切片。
示例32.如示例29至31中任意一项所述的方法,其中,语法元素指定切片的色度分量所参考的ALF APS的标识符。
示例33.一种编码视频数据的方法,该方法包括:在包括视频数据的编码表示的比特流中包括适应性参数集(APS)网络抽象层(NAL)单元;在比特流中包括在比特流中跟随APS NAL单元的视频译码层(VCL)NAL单元;以及其中,VCL NAL单元属于与APS NAL单元相同的存取单元。
示例34.一种编码视频数据的方法,该方法包括:在包括视频数据的编码表示的比特流中包括一系列网络抽象层(NAL)单元,该一系列NAL单元包括与存取单元内的适应性参数集(APS)NAL单元交错的具有相同图片次序计数(POC值)的视频译码层(VCL)NAL单元。
示例35.一种对视频数据进行编码的方法,该方法包括:在包括视频数据的编码表示的比特流中包括与存取单元相关联的适应性参数集(APS),其中,约束禁止与存取单元相关联的APS具有等于存取单元中使用的任何APS标识符的APS标识符;以及基于与存取单元相关联的APS编码后续存取单元的图片。
示例36.一种对视频数据进行编码的方法,该方法包括:在包括视频数据的编码表示的比特流中包括与存取单元相关联的适应性参数集(APS),其中,除非与存取单元相关联的APS与在存取单元中使用的具有相同APS标识符的现有APS具有相同的内容,否则约束禁止与存取单元相关联的APS具有等于在存取单元中使用的任何APS标识符的APS标识符;以及基于与存取单元相关联的APS编码后续存取单元的图片。
示例37.一种编码视频数据的方法,该方法包括:生成包含语法元素的适应性参数集(APS),其中,APS在视频数据的存取单元中,并且语法元素指示APS是否可由存取单元中的当前图片使用,其中,当语法元素指示APS不可由当前图片使用时,APS可按解码次序由下一个图片使用;以及基于与存取单元相关联的APS编码视频数据的后续存取单元的图片。
示例38.如示例37的方法,其中,当语法元素指示APS不可由当前图片使用时,比特流约束不允许当前图片使用APS。
示例39.如示例37所述的方法,其中,比特流约束要求如果APS与当前图片相关联且APS存在于具有当前图片的相同存取单元中,则语法元素不应指示APS不可由当前图片使用。
示例40.如示例37至39中任意一项所述的方法,还包括:基于语法元素指示APS不可由当前图像使用,延迟APS的激活,直至下一个存取单元为止。
示例41.如示例37至40中任意一项所述的方法,其中,生成APS包括在包括视频数据的编码表示的比特流中生成APS。
示例42.如示例37至41中任意一项所述的方法,其中:生成APS包括作为外部系统或在包括视频数据的编码表示的比特流外部生成APS,以及基于已从外部系统或从比特流外部获得APS,约束要求语法元素指定APS不可由当前图片使用。
示例43.一种编码视频数据的方法,该方法包括:生成包括视频数据的编码表示的比特流,其中,约束指定视频数据中没有存取单元可包含超过阈值数目的适应性参数集(APS)网络存取层(NAL)单元。
示例44.一种编码视频数据的方法,该方法包括:生成包括视频数据的编码表示的比特流,其中,约束指定视频数据中没有存取单元可包含超过阈值数目的特定APS标识符的适应性参数集(APS)网络存取层(NAL)单元。
示例45.一种编码视频数据的方法,该方法包括示例35至44中任意一项的方法。
示例46.一种编码视频数据的方法,包括本公开的示例中的一个或多个的任何组合。
示例47.一种用于译码视频数据的设备,该设备包括用于执行示例1至46中任意一项的方法的一个或多个部件。
示例48.如示例47所述的设备,其中,一个或多个部件包括在电路中实施的一个或多个处理器。
示例49.如示例47和48中任意一项所述的设备,还包括用于存储视频数据的存储器。
示例50.如示例47至49中任意一项所述的设备,还包括被配置为显示解码的视频数据的显示器。
示例51.如示例47至50中任意一项所述的设备,其中,该设备包括照相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
示例52.如示例47至51中任意一项所述的设备,其中,该设备包括视频解码器。
示例53.如示例47至52中任意一项所述的设备,其中,该设备包括视频编码器。
示例54.一种其上存储有指令的计算机可读存储介质,该指令在被执行时使得一个或多个处理器执行示例1至46中任意一项所述的方法。
应认识到,取决于示例,本文中所描述的技术中的任一个的某些动作或事件可以不同序列被执行、可被添加、合并或完全省略(例如,并非所有所描述的动作或事件都是实践技术所必需的)。此外,在某些示例中,可例如通过多线程处理、中断处理或多个处理器同时而非顺序地执行动作或事件。
在一个或多个示例中,所描述的功能可在硬件、软件、固件或其任何组合中来实施。如果在软件中实施,则各功能可作为一个或多个指令或代码被存储在计算机可读介质上或经由计算机可读介质发送,且由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于例如数据存储介质的有形介质,或包括例如根据通信协议来促进将计算机程序从一位置转移到另一位置的任何介质的通信介质。以此方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质,或(2)例如信号或载波的通信介质。数据存储介质可以为可由一个或多个计算机或一个或多个处理器存取以检索用于实施本公开中所描述的技术的指令、代码及/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例,而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储设备、闪存或可以用来以指令或数据结构的形式存储、并且可以由计算机存取的所需的程序代码的任何其它介质。而且,任何连接被恰当地称为计算机可读介质。作为示例,如果使用同轴缆线、光纤电缆、双绞线、数字订户线(DSL)或无线技术(例如红外线、无线电及微波)从网站、服务器或其它远程源发送指令,则同轴缆线、光纤电缆、双绞线、DSL或无线技术(例如红外线、无线电及微波)被包括在介质的定义中。然而,应当理解,计算机可读存储介质及数据存储介质不包括连接、载波、信号或其它暂时性介质,而是指向非暂时性有形存储介质。如本文中所使用的,磁盘及光盘包括紧凑光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘使用激光以光学方式再现数据。以上组合也应被包括在计算机可读介质的范围内。
指令可以由诸如一个或多个DSP、通用微处理器、ASIC、FPGA或其它等效的集成式或离散逻辑电路的一个或多个处理器来执行。因此,如本文中所使用的术语“处理器”和“处理电路”可以指任何前述结构或适合于实施本文中所描述的技术的任何其它结构。另外,在一些方面,本文中所描述的功能可以在被配置用于编码及解码的专用硬件和/或软件模块内提供,或并入组合式编解码器中。此外,所述技术可以被完全实施在一个或多个电路或逻辑元件中。
本公开的技术可以实施在多种设备或装置中,包括无线手持设备、集成电路(IC)或IC集(例如,芯片集)。在本公开中描述了各种组件、模块或单元来强调被配置为执行所公开技术的设备的各功能方面,但未必要求由不同的硬件单元来实现。而是,如上所述,各种单元可被组合在编解码器硬件单元中,或由互操作性硬件单元(包括如上所述的一个或多个处理器)的集合结合合适的软件及/或固件来提供。
已经描述了各种示例。这些及其它示例在以下权利要求的范围内。

Claims (26)

1.一种处理视频数据的方法,所述方法包括:
获得包括所述视频数据的编码表示的比特流,其中所述比特流包括用于所述视频数据的当前层的图片的切片的译码切片网络抽象层(NAL)单元;以及
基于适用的亮度映射及色度缩放(LMCS)适应性参数集(APS)NAL单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测所述译码切片NAL单元的层的任何层的层标识符,来确定所述比特流不满足由视频译码标准施加的约束;
其中,适用的LMCS APS NAL单元具有由用于所述译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
2.如权利要求1所述的方法,其中,所述比特流为第一比特流,所述方法还包括基于确定第二比特流满足所述约束而解码所述第二比特流。
3.如权利要求1所述的方法,其中,确定所述比特流不满足所述约束包括:基于所述适用的LMCS APS NAL单元的层标识符不等于所述译码切片NAL单元的层标识符、且不等于用于预测所述译码切片NAL单元的所述层的任何层的所述层标识符,来确定所述比特流不满足所述约束。
4.如权利要求1所述的方法,其中:
所述约束是第一约束,并且
所述方法还包括:基于所述适用的LMCS APS NAL单元的时间标识符不小于或等于所述译码切片NAL单元的时间标识符,来确定所述比特流不满足由所述视频译码标准施加的第二约束。
5.一种编码视频数据的方法,所述方法包括:
从视频源获得视频数据;以及
执行根据视频译码标准编码所述视频数据的编码过程,其中执行所述编码过程包括:
生成用于译码切片网络抽象层(NAL)单元的亮度映射及色度缩放(LMCS)适应性参数集(APS)标识符语法元素,其中:
LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符,并且
所述视频译码标准对所述编码过程施加约束,所述约束要求所述LMCS APS NAL单元的层标识符等于所述译码切片NAL单元的层标识符,或等于被允许用于预测所述译码切片NAL单元的层的任何层的层标识符。
6.如权利要求5所述的方法,其中,所述约束要求所述适用的LMCS APS NAL单元的层标识符等于所述译码切片NAL单元的层标识符,或等于用于预测所述译码切片NAL单元的所述层的任何层的层标识符。
7.如权利要求5所述的方法,其中:
所述约束是第一约束,并且
所述视频译码标准施加第二约束,所述第二约束要求所述LMCS APS NAL单元的时间标识符小于或等于所述译码切片NAL单元的时间标识符。
8.一种用于处理视频数据的设备,所述设备包括:
存储器,用于存储所述视频数据;以及
在电路中实施的一个或多个处理器,所述一个或多个处理器被配置为:
获得包括所述视频数据的编码表示的比特流,以及
基于适用的亮度映射及色度缩放(LMCS)适应性参数集(APS)网络抽象层(NAL)单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测所述译码切片NAL单元的层的任何层的层标识符,来确定所述比特流不满足由视频译码标准施加的约束;
其中,适用的LMCS APS NAL单元具有由用于所述译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
9.如权利要求8所述的设备,其中所述一个或多个处理器还被配置为基于确定所述比特流满足所述约束来解码所述比特流。
10.如权利要求8所述的设备,还包括被配置为显示解码的视频数据的显示器。
11.如权利要求9所述的设备,所述一个或多个处理器被配置为使得作为确定所述比特流不满足所述约束的一部分,所述一个或多个处理器基于所述适用的LMCS APS NAL单元的层标识符不等于所述译码切片NAL单元的层标识符、且不等于用于预测所述译码切片NAL单元的所述层的任何层的层标识符,来确定所述比特流不满足所述约束。
12.如权利要求8所述的设备,其中:
所述约束是第一约束,并且
所述一个或多个处理器还被配置为基于所述适用的LMCS APS NAL单元的时间标识符不小于或等于所述译码切片NAL单元的时间标识符,来确定所述比特流不满足由所述视频译码标准施加的第二约束。
13.如权利要求8所述的设备,其中,所述设备包括照相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
14.一种用于编码视频数据的设备,所述设备包括:
存储器,用于存储所述视频数据;以及
在电路中实施的一个或多个处理器,所述一个或多个处理器被配置为:
从视频源获得视频数据;以及
执行根据视频译码标准编码所述视频数据的编码过程,其中所述一个或多个处理器被配置为使得作为执行所述编码过程的一部分,所述一个或多个处理器:
生成用于译码切片网络抽象层(NAL)单元的亮度映射及色度缩放(LMCS)适应性参数集(APS)标识符语法元素,其中:
LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符,并且
所述视频译码标准对所述编码过程施加约束,所述约束要求所述LMCS APS NAL单元的层标识符等于所述译码切片NAL单元的层标识符,或等于被允许用于预测所述译码切片NAL单元的层的任何层的层标识符。
15.如权利要求14所述的设备,其中,所述约束要求所述适用的LMCS APS NAL单元的层标识符等于所述译码切片NAL单元的层标识符,或等于用于预测所述译码切片NAL单元的所述层的任何层的层标识符。
16.如权利要求14所述的设备,其中:
所述约束是第一约束,并且
所述视频译码标准施加第二约束,所述第二约束要求所述LMCS APS NAL单元的时间标识符小于或等于所述译码切片NAL单元的时间标识符。
17.如权利要求14所述的设备,其中,所述设备包括照相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
18.一种用于处理视频数据的设备,所述设备包括:
用于获得包括所述视频数据的编码表示的比特流的部件,以及
用于基于适用的亮度映射及色度缩放(LMCS)适应性参数集(APS)网络抽象层(NAL)单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测所述译码切片NAL单元的层的任何层的层标识符,来确定所述比特流不满足由视频译码标准施加的约束的部件;
其中,适用的LMCS APS NAL单元具有由用于所述译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
19.如权利要求18所述的设备,还包括用于基于确定所述比特流满足所述约束来解码所述比特流的部件。
20.如权利要求18所述的设备,其中,所述用于确定所述比特流不满足所述约束的部件包括:用于基于所述适用的LMCS APS NAL单元的层标识符不等于所述译码切片NAL单元的层标识符、且不等于用于预测所述译码切片NAL单元的所述层的任何层的层标识符,来确定所述比特流不满足所述约束的部件。
21.如权利要求18所述的设备,其中:
所述约束是第一约束,并且
所述设备还包括用于基于所述适用的LMCS APS NAL单元的时间标识符不小于或等于所述译码切片NAL单元的时间标识符,来确定所述比特流不满足由所述视频译码标准施加的第二约束的部件。
22.一种用于编码视频数据的设备,所述设备包括:
用于从视频源获得视频数据的部件;以及
用于执行根据视频译码标准编码所述视频数据的编码过程的部件,其中所述用于执行所述编码过程的部件包括:
生成用于译码切片网络抽象层(NAL)单元的亮度映射及色度缩放(LMCS)适应性参数集(APS)标识符语法元素,其中:
LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符,并且
所述视频译码标准对所述编码过程施加约束,所述约束要求所述LMCS APS NAL单元的层标识符等于所述译码切片NAL单元的层标识符,或等于被允许用于预测所述译码切片NAL单元的层的任何层的层标识符。
23.如权利要求22所述的设备,其中,所述约束要求所述适用的LMCS APS NAL单元的层标识符等于所述译码切片NAL单元的层标识符,或等于用于预测所述译码切片NAL单元的所述层的任何层的所述层标识符。
24.如权利要求22所述的设备,
所述约束是第一约束,并且
所述视频译码标准施加第二约束,所述第二约束要求所述LMCS APS NAL单元的时间标识符小于或等于所述译码切片NAL单元的时间标识符。
25.一种其上存储有指令的计算机可读数据存储介质,所述指令在被执行时致使一个或多个处理器:
获得包括所述视频数据的编码表示的比特流;以及
基于适用的亮度映射及色度缩放(LMCS)适应性参数集(APS)网络抽象层(NAL)单元的层标识符不等于译码切片NAL单元的层标识符、且不等于被允许用于预测所述译码切片NAL单元的层的任何层的层标识符,来确定所述比特流不满足由视频译码标准施加的约束,
其中,适用的LMCS APS NAL单元具有由用于所述译码切片NAL单元的LMCS APS标识符语法元素指定的APS标识符。
26.一种其上存储有指令的计算机可读数据存储介质,所述指令在被执行时致使一个或多个处理器:
从视频源获得视频数据;以及
执行根据视频译码标准编码所述视频数据的编码过程,其中致使所述一个或多个处理器执行所述所述编码过程的所述指令包括在被执行时致使所述一个或多个处理器执行如下步骤的指令:
生成用于译码切片网络抽象层(NAL)单元的亮度映射及色度缩放(LMCS)适应性参数集(APS)标识符语法元素,其中:
LMCS APS标识符语法元素指定LMCS APS NAL单元的层标识符,以及
所述视频译码标准对所述编码过程施加约束,所述约束要求所述LMCS APS NAL单元的层标识符等于所述译码切片NAL单元的层标识符,或等于被允许用于预测所述译码切片NAL单元的层的任何层的层标识符。
CN202080050106.6A 2019-06-06 2020-06-05 视频译码中的存取单元中的适应性参数集 Active CN114097209B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962858250P 2019-06-06 2019-06-06
US62/858,250 2019-06-06
US201962865044P 2019-06-21 2019-06-21
US62/865,044 2019-06-21
US16/893,100 US11166033B2 (en) 2019-06-06 2020-06-04 Adaptation parameter set in access unit in video coding
US16/893,100 2020-06-04
PCT/US2020/036264 WO2020247715A1 (en) 2019-06-06 2020-06-05 Adaptation parameter set in access unit in video coding

Publications (2)

Publication Number Publication Date
CN114097209A true CN114097209A (zh) 2022-02-25
CN114097209B CN114097209B (zh) 2023-09-19

Family

ID=73650873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080050106.6A Active CN114097209B (zh) 2019-06-06 2020-06-05 视频译码中的存取单元中的适应性参数集

Country Status (7)

Country Link
US (1) US11166033B2 (zh)
EP (1) EP3981158A1 (zh)
CN (1) CN114097209B (zh)
BR (1) BR112021023716A2 (zh)
SG (1) SG11202112607QA (zh)
TW (1) TW202114421A (zh)
WO (1) WO2020247715A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117395397A (zh) 2019-06-04 2024-01-12 北京字节跳动网络技术有限公司 使用临近块信息的运动候选列表构建
CN114097228B (zh) 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
KR20210158390A (ko) * 2019-06-20 2021-12-30 엘지전자 주식회사 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
CN116600144A (zh) * 2019-06-24 2023-08-15 Lg电子株式会社 图像编解码方法、计算机可读存储介质和数据发送方法
JP7297950B2 (ja) * 2019-06-24 2023-06-26 エルジー エレクトロニクス インコーポレイティド ルママッピング基盤ビデオまたは映像コーディング
JP7305810B2 (ja) 2019-06-24 2023-07-10 エルジー エレクトロニクス インコーポレイティド ルーママッピング及びクロマスケーリングに基づくビデオまたは画像コーディング
CN114175636B (zh) * 2019-07-14 2024-01-12 北京字节跳动网络技术有限公司 自适应参数集中的自适应环路滤波的指示
WO2021061496A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Sei message dependency simplification in video coding
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
US11432016B2 (en) * 2019-12-05 2022-08-30 Hfi Innovation Inc. Methods and apparatuses of syntax signaling constraint for cross-component adaptive loop filter in video coding system
MX2022011426A (es) * 2020-03-20 2022-10-03 Bytedance Inc Restricciones en listas de imagenes de referencia para subimagenes.
US11706428B2 (en) * 2020-04-06 2023-07-18 Tencent America LLC Method for signaling picture header in coded video stream
CN115462070A (zh) 2020-04-20 2022-12-09 字节跳动有限公司 对参考图片列表的约束

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103688547A (zh) * 2011-07-18 2014-03-26 高通股份有限公司 用于视频译码的调适参数集
CN104584557A (zh) * 2012-08-16 2015-04-29 高通股份有限公司 构造用于多视图或3dv视频译码的参考图片列表
CN104604236A (zh) * 2012-07-02 2015-05-06 诺基亚公司 用于视频编码的方法和装置
CN105580373A (zh) * 2013-07-23 2016-05-11 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机程序
CN105706451A (zh) * 2013-10-11 2016-06-22 Vid拓展公司 Hevc扩展的高级句法
CN106464924A (zh) * 2014-06-25 2017-02-22 高通股份有限公司 多层视频译码
CN107079176A (zh) * 2014-10-15 2017-08-18 高通股份有限公司 用于hevc延伸承载的数据流的hrd描述符及缓冲器模型的设计

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020176636A1 (en) * 2019-02-27 2020-09-03 Futurewei Technologies, Inc. Luma mapping with chroma scaling adaptation parameter set in video coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103688547A (zh) * 2011-07-18 2014-03-26 高通股份有限公司 用于视频译码的调适参数集
CN104604236A (zh) * 2012-07-02 2015-05-06 诺基亚公司 用于视频编码的方法和装置
CN104584557A (zh) * 2012-08-16 2015-04-29 高通股份有限公司 构造用于多视图或3dv视频译码的参考图片列表
CN105580373A (zh) * 2013-07-23 2016-05-11 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机程序
CN105706451A (zh) * 2013-10-11 2016-06-22 Vid拓展公司 Hevc扩展的高级句法
CN106464924A (zh) * 2014-06-25 2017-02-22 高通股份有限公司 多层视频译码
CN107079176A (zh) * 2014-10-15 2017-08-18 高通股份有限公司 用于hevc延伸承载的数据流的hrd描述符及缓冲器模型的设计

Also Published As

Publication number Publication date
US11166033B2 (en) 2021-11-02
SG11202112607QA (en) 2021-12-30
TW202114421A (zh) 2021-04-01
WO2020247715A1 (en) 2020-12-10
BR112021023716A2 (pt) 2022-01-04
EP3981158A1 (en) 2022-04-13
US20200389655A1 (en) 2020-12-10
CN114097209B (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
US11706458B2 (en) High-level syntax designs for point cloud coding
CN114097209B (zh) 视频译码中的存取单元中的适应性参数集
US11425422B2 (en) Parameter set syntax elements and variables in video coding
CN114128286A (zh) 视频编解码中的环绕运动补偿
US20210235124A1 (en) Decoded picture buffer (dpb) parameter signaling for video coding
CN114846794A (zh) 视频译码中针对子图的参考子图缩放比率
US11659207B2 (en) General constraints of syntax elements for video coding
US20210368209A1 (en) General constraint information signaling in video coding
CN115486066A (zh) 在视频编解码中的独立子图片信令通知
TW202147847A (zh) 視訊譯碼中的參考圖片清單約束和訊號傳遞
US11825073B2 (en) High level syntax for video with mixed NAL unit types
US11785205B2 (en) Shared decoder picture buffer for multiple layers
TW202107895A (zh) 發訊色度量化參數(qp)映射表
US11153583B2 (en) Spatial scalability support in video encoding and decoding
TW202127882A (zh) 視訊編解碼中的層間參考圖像傳訊
US11546623B2 (en) Coded video sequence start access unit in video coding
US11729381B2 (en) Deblocking filter parameter signaling
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
GR01 Patent grant
GR01 Patent grant