CN115720266A - 使用标识符指示的视频译码码流提取 - Google Patents

使用标识符指示的视频译码码流提取 Download PDF

Info

Publication number
CN115720266A
CN115720266A CN202211290464.1A CN202211290464A CN115720266A CN 115720266 A CN115720266 A CN 115720266A CN 202211290464 A CN202211290464 A CN 202211290464A CN 115720266 A CN115720266 A CN 115720266A
Authority
CN
China
Prior art keywords
sub
image
code stream
codestream
picture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211290464.1A
Other languages
English (en)
Inventor
王业奎
弗努·亨德里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN115720266A publication Critical patent/CN115720266A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • 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/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/172Methods 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
    • 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/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/547Motion estimation performed in a transform domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

使用标识符指示的视频译码码流提取,本发明公开了一种视频译码机制。所述机制包括接收提取的码流,所述提取的码流是通过子码流提取过程从包含子图像集的输入码流中提取的码流。所述提取的码流仅包含用于所述子码流提取过程的所述输入码流的所述子图像的子集。设置所述提取的码流中的标志,以表示所述提取的码流中存在与所述子图像的所述子集相关的子图像信息。根据所述标志获取所述子图像的所述子集的一个或多个子图像标识符(identifier,ID)。根据所述子图像ID对所述子图像的所述子集进行解码。

Description

使用标识符指示的视频译码码流提取
本申请是分案申请,原申请的申请号是202080045816.X,原申请日是2020年06月15日,原申请的全部内容通过引用结合在本申请中。
技术领域
本发明大体上涉及视频译码,具体涉及视频译码中的码流提取。
背景技术
即使视频较短,也需要大量的视频数据来描述,当数据要在带宽容量受限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源有限,当在存储设备中存储视频时,需要考虑该视频的大小。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后传输或存储视频数据,从而减少表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
在一个实施例中,本发明包括一种在解码器中实现的方法,所述方法包括:解码器的接收器接收提取的码流,所述提取的码流是通过子码流提取过程从包含子图像集的输入码流提取的码流,所述提取的码流仅包含用于所述子码流提取过程的所述输入码流的所述子图像的子集;所述解码器的处理器确定所述提取的码流中的标志,所述标志被设置来表示在所述提取的码流中存在与所述子图像的所述子集相关的子图像信息;所述处理器根据所述标志获取所述子图像的所述子集的一个或多个子图像标识符(identifier,ID);所述处理器根据所述子图像ID对所述子图像的所述子集进行解码。
一些视频译码序列可以包括编码为子图像集的图像。子图像可以与可用于表示子图像相对于图像的位置的子图像ID相关联。在一些情况下,可以推断出这种子图像信息。在这种情况下,可以从码流中排除这种子图像信息,以提高译码效率。一些过程可以从码流中提取子码流,以用于独立传输到最终用户。在这种情况下,子码流仅包含原始码流中包含的子图像的子集。虽然当所有子图像都存在时可以推断出子图像信息,但当仅存在子图像的子集时,解码器不能进行这种推断。本示例包括防止子码流提取期间出现译码错误的机制。具体地,如果从码流中提取子码流,则编码器和/或条带器(splicer)包括子码流中至少子图像的子集的子图像信息。此外,编码器/条带器包括表示子图像信息包括在子码流中的标志。解码器可以读取该标志,获取正确的子图像信息,并对子码流进行解码。因此,所公开的机制使得编码器和/或解码器具有附加的功能,从而避免错误。此外,所公开的机制可以通过支持子码流提取而不是发送整个码流来提高译码效率。这可以降低编码器和/或解码器处的处理器、存储器和/或网络资源的使用率。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,还包括:所述处理器获取包含所述一个或多个子图像ID的语法元素的位长度。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志、所述子图像ID和所述长度从所述提取的码流中的序列参数集(sequence parameter set,SPS)中获取。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志是子图像信息存在标志(subpic_info_present_flag)。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,子图像ID包含在SPS子图像标识符(sps_subpic_id[i])语法结构中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述长度包含在SPS子图像ID长度减一加一(sps_subpic_id_len_minus1+1)语法结构中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述提取的码流是通过所述子码流提取过程从所述输入码流提取的码流时,所述标志需要设置为1,以表示编码层视频序列(coded layer video sequence,CLVS)存在所述子图像信息,并且所述CLVS的每个图像包含多个子图像。
在一个实施例中,本发明包括一种在编码器中实现的方法,所述方法包括:所述编码器的处理器对包含子图像集的输入码流进行编码;所述处理器对所述输入码流执行子码流提取过程,以创建提取的码流,所述提取的码流仅包含所述输入码流的所述子图像的子集;所述处理器将所述提取的码流中的所述子图像的所述子集的一个或多个子图像ID编码到所述提取的码流中;所述处理器设置所述提取的码流中的标志,以表示所述提取的码流中存在与所述子图像的所述子集相关的子图像信息;耦合到所述处理器的存储器存储所述码流,以用于与解码器通信。
一些视频译码序列可以包括编码为子图像集的图像。子图像可以与可用于表示子图像相对于图像的位置的子图像ID相关联。在一些情况下,可以推断出这种子图像信息。在这种情况下,可以从码流中排除这种子图像信息,以提高译码效率。一些过程可以从码流中提取子码流,以用于独立传输到最终用户。在这种情况下,子码流仅包含原始码流中包含的子图像的子集。虽然当所有子图像都存在时可以推断出子图像信息,但当仅存在子图像的子集时,解码器不能进行这种推断。本示例包括防止子码流提取期间出现译码错误的机制。具体地,如果从码流中提取子码流,则编码器和/或条带器(splicer)包括子码流中至少子图像的子集的子图像信息。此外,编码器/条带器包括表示子图像信息包括在子码流中的标志。解码器可以读取该标志,获取正确的子图像信息,并对子码流进行解码。因此,所公开的机制使得编码器和/或解码器具有附加的功能,从而避免错误。此外,所公开的机制可以通过支持子码流提取而不是发送整个码流来提高译码效率。这可以降低编码器和/或解码器处的处理器、存储器和/或网络资源的使用率。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,还包括处理器将包含所述一个或多个子图像ID的语法元素的位长度编码到所述提取的码流中。
可选地,在上述任一方面中,在所述方面的另一种实现方式中,所述标志、所述子图像ID和所述长度被编码到所述提取的码流中的SPS中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志是subpic_info_present_flag。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,子图像ID包含在sps_subpic_id[i]语法结构中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述长度包含在sps_subpic_id_len_minus1+1语法结构中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述提取的码流是通过所述子码流提取过程从所述输入码流提取的码流时,所述标志需要设置为1,以表示CLVS存在所述子图像信息,并且所述CLVS的每个图像包含多个子图像。
在一个实施例中,本发明包括视频译码设备,所述视频译码设备包括:处理器、耦合到所述处理器的接收器、耦合到所述处理器的存储器和耦合到所述处理器的发送器,其中,所述处理器、所述接收器、所述存储器和所述发送器用于执行上述任一方面所述的方法。
在一个实施例中,本发明包括一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质包括供视频译码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当所述计算机可执行指令由处理器执行时,使得所述视频译码设备执行根据上述任一方面所述的方法。
在一个实施例中,本发明包括一种解码器,所述解码器包括:接收模块,用于接收提取的码流,所述提取的码流是通过子码流提取过程从包含子图像集的输入码流提取的码流,所述提取的码流仅包含用于所述子码流提取过程的所述输入码流的所述子图像的子集;确定模块,用于确定所述提取的码流中的标志,所述标志被设置来表示在所述提取的码流中存在与所述子图像的所述子集相关的子图像信息;获取模块,用于根据所述标志获取所述子图像的所述子集的一个或多个子图像ID;解码模块,用于根据所述子图像ID对所述子图像的所述子集进行解码;转发模块,用于转发所述子图像的所述子集,以便作为解码视频序列的一部分显示。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述解码器还用于执行根据上述任一方面所述的方法。
在一个实施例中,本发明包括编码器,所述编码器包括:第一编码模块,用于对包含子图像集的输入码流进行编码;码流提取模块,用于对所述输入码流执行子码流提取过程,以创建提取的码流,所述提取的码流仅包含所述输入码流的所述子图像的子集;第二编码模块,用于将所述提取的码流中的所述子图像的所述子集的一个或多个子图像ID编码到所述提取的码流中;设置模块,用于设置所述提取的码流中的标志,以表示所述提取的码流中存在与所述子图像的所述子集相关的子图像信息;存储模块,用于存储所述码流,以用于与解码器通信。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述编码器还用于执行根据上述任一方面所述的方法。
为了清楚起见,上述任一实施例可以与上述其它实施例中任何一个或多个组合以创建本发明范围内的新实施例。
从结合附图和权利要求书的以下详细描述中,将更清楚地理解这些和其它特征。
附图说明
为了更完整地理解本发明,结合附图和具体实施方式,参考以下简要描述,其中,相同的附图标记表示相同的部件。
图1为对视频信号进行译码的示例性方法的流程图。
图2为用于视频译码的示例性编码和解码(编解码)系统的示意图。
图3为示例性视频编码器的示意图。
图4为示例性视频解码器的示意图。
图5为从图像视频流提取的多个子图像视频流的示意图。
图6为被划分为子码流的示例性码流的示意图。
图7为示例性视频译码设备的示意图。
图8为将视频序列编码到码流中并提取子码流同时减少ID错误的示例性方法的流程图。
图9为从提取自码流的子码流解码视频序列的示例性方法的流程图。
图10为用于对码流中的图像的视频序列进行译码、提取子码流,同时减少ID错误的示例性系统的示意图。
具体实施方式
首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任何数量的技术来实现,无论该技术是当前已知的技术还是现有的技术。本发明不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明和描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效部分的完整范围内修改。
以下术语的定义如下所述,除非在本文相反的上下文中使用。具体地,以下定义旨在更加清晰地描述本发明。但是,术语在不同的上下文中可能会有不同的描述。因此,以下定义应当视为补充信息,不应当视为对此处为这些术语提供的描述的任何其它定义进行限制。
码流是包括视频数据的位序列,这些视频数据被压缩以在编码器和解码器之间传输。编码器是一种采用编码过程将视频数据压缩到码流中的设备。解码器是一种采用解码过程从码流中重建视频数据进行显示的设备。图像是创建帧或其场的亮度样本和/或色度样本组成的阵列。为了清楚讨论,正在编码或解码的图像可以称为当前图像。子图像是图像中一个或多个条带组成的矩形区域。子码流提取过程是一种指定的机制,它从码流中删除不是目标集一部分的网络抽象层(Network Abstraction Layer,NAL)单元,从而产生包括目标集中包括的NAL单元的输出子码流。NAL单元是一种语法结构,包含数据字节和其中包含的数据类型的表示。NAL单元包括包含视频数据的视频译码层(video coding layer,VCL)NAL单元和包含支持语法数据的非VCL NAL单元。输入码流是在应用子码流提取过程之前包含完整的NAL单元集的码流。提取的码流,也称为子码流,是从码流提取过程输出的码流,并且包括来自输入码流的NAL单元的子集。集是不同项目的集合。子集是项目的集合,使得子集中的每个项目都包括在集中,并且集中的至少一个项目从子集中排除。子图像信息是描述子图像的任何数据。标志是一种数据结构,包含可设置来表示对应数据的位序列。子图像标识符(identifier,ID)是唯一地标识对应子图像的数据项。数据结构的长度是数据结构中包含的位数。编码层视频序列(coded layer video sequence,CLVS)是包含一层或多层图像的编码视频数据的序列。当CLVS包含单层或当CLVS在层特定上下文之外讨论时,CLVS可以被称为编码视频序列(coded video sequence,CVS)。序列参数集(sequenceparameter set,SPS)是包含与图像序列相关的数据的参数集。解码视频序列是由解码器重建的准备向用户显示的图像序列。
本文使用以下缩略语:编码树块(Coding Tree Block,CTB)、编码树单元(CodingTree Unit,CTU)、编码单元(Coding Unit,CU)、编码视频序列(Coded Video Sequence,CVS)、联合视频专家组(Joint Video Experts Team,JVET)、运动约束分块集(Motion-Constrained Tile Set,MCTS)、最大传输单元(Maximum Transfer Unit,MTU)、网络抽象层(Network Abstraction Layer,NAL)、图像顺序编号(Picture Order Count,POC)、原始字节序列载荷(Raw Byte Sequence Payload,RBSP)、序列参数集(Sequence Parameter Set,SPS)、子图像单元(Sub-Picture unit,SPU)通用视频编码(Versatile Video Coding,VVC)和工作草案(Working Draft,WD)。
许多视频压缩技术可以用来减小视频文件的大小,同时尽量减少数据丢失。例如,视频压缩技术可以包括执行空间(例如,帧内)预测和/或时间(例如,帧间)预测以减少或去除视频序列中的数据冗余。对于基于块的视频译码,可以将视频条带(例如,视频图像或视频图像的一部分)分割为视频块,视频块也可以称为树块、编码树块(coding tree block,CTB)、编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)和/或编码节点。图像的帧内编码(I)条带中的视频块针对同一图像中邻块中的参考样本、使用空间预测进行编码。图像的帧间单向预测(P)条带或双向预测(B)条带中的视频块可以针对同一图像中邻块中的参考样本使用空间预测,或者针对其它参考图像中的参考样本使用时间预测。图像可以称为帧,参考图像可以称为参考帧。空间或时间预测产生表示图像块的预测块。残差数据表示原始图像块与预测块之间的像素差。因此,根据指向构成预测块的参考样本的块的运动矢量和表示编码块与预测块之间的差的残差数据,对帧间编码块进行编码。根据帧内编码模式和残差数据对帧内编码块进行编码。为了进一步压缩,残差数据可以从像素域变换到变换域,从而产生残差变换系数,该残差变换系数可以量化。量化变换系数最初以二维阵列排列。量化变换系数可以扫描,以生成变换系数的一维矢量。可以应用熵译码以实现进一步压缩。下面详细描述这种视频压缩技术。
为了确保编码视频能够正确解码,视频根据对应的视频编码标准进行编码和解码。视频编码标准包括国际电信联盟(International Telecommunication Union,ITU)标准化部门(ITU-T)H.261、国际标准化组织/国际电工委员会(international organizationfor standardization/international electrotechnical commission,ISO/IEC)运动图像专家组(motion picture experts group,MPEG)-1第2部分、ITU-T H.262或ISO/IECMPEG-2第2部分、ITU-T H.263、ISO/IEC MPEG-4第2部分、高级视频编码(advanced videocoding,AVC)(也称为ITU-T H.264或ISO/IEC MPEG-4第10部分),以及高效视频编码(highefficiency video coding,HEVC)(也称为ITU-T H.265或MPEG-H第2部分)。AVC包括可分级视频编码(scalable video coding,SVC)、多视点视频编码(multiview video coding,MVC)和多视点视频编码加深度(multiview video coding plus depth,MVC+D),以及三维(three dimensional,3D)AVC(three dimensional AVC,3D-AVC)等扩展版。HEVC包括可分级HEVC(scalable HEVC,SHVC)、多视点HEVC(multiview HEVC,MV-HEVC)和3D HEVC(3D-HEVC)等扩展版。ITU-T和ISO/IEC的联合视频专家组(joint video experts team,JVET)已开始开发一种称为通用视频编码(versatile video coding,VVC)的视频编码标准。工作草案(working draft,WD)中包括VVC,该WD包括JVET-N1001-v8。
视频译码序列包括图像序列。在一些情况下,这类图像可以进一步分割为子图像集,其中,每个子图像包括图像的不同区域。子图像可以支持图像的不同空间部分在解码器中不同地处理。例如,在虚拟现实(virtual reality,VR)上下文中,仅向用户显示整个图像的一部分。因此,子图像可用于以不同分辨率将图像的不同部分发送到解码器和/或甚至省略图像的某些部分。这可以提高译码效率。在另一个示例中,电话会议应用程序可以动态增加正在主动发言的与会者的图像的大小和/或分辨率,并在该与会者停止发言时降低该与会者的图像的大小/分辨率。将每个与会者包括在不同的子图像中支持与一个与会者相关的这种动态变化,而不会影响与其它与会者相关的图像。子图像可以与子图像ID相关联。子图像ID唯一地标识对应的子图像。因此,子图像ID可用于表示子图像相对于图像的位置和/或进行子图像级译码过程改变。在一些情况下,可以推断出子图像信息,例如子图像ID。例如,当图像包括9个子图像时,解码器可以推断出子图像ID为0到8的索引。在这种情况下,可以从码流中排除这种子图像信息,以提高译码效率。
但是,一些过程可以用于从码流中提取子码流,以用于独立传输到最终用户。在这种情况下,子码流仅包含原始码流中包含的子图像的子集。虽然当所有子图像都存在时可以推断出子图像信息,但当仅存在子图像的子集时,解码器不能进行这种推断。例如,编码器可以仅将9个子图像中的子图像3和9个子图像中的子图像4发送到解码器。如果省略子图像信息,则解码器可能无法确定正在接收哪些子图像以及应如何显示这些子图像。在这种情况下,认为码流是一致的码流,因为可以推断出与码流有关的缺失数据。但是,提取的子码流不一致,因为无法推断出与子码流有关的一些缺失数据。
本文公开了防止子码流提取期间出现译码错误的机制。具体地,当从码流中提取子码流时,编码器和/或条带器将子码流中至少子图像的子集的子图像信息编码到子码流中的参数集中。此外,编码器/条带器包括表示子图像信息包括在子码流中的标志。解码器可以读取该标志,获取正确的子图像信息,并对子码流进行解码。这种子图像信息可以包括语法元素中的子图像ID和表示子图像ID语法元素的位长度的长度数据元素。因此,所公开的机制使得编码器和/或解码器具有附加的功能,从而避免子图像相关的译码错误。此外,所公开的机制可以通过支持子码流提取而不是发送整个码流来提高译码效率。这可以降低编码器和/或解码器处的处理器、存储器和/或网络资源的使用率。
图1为对视频信号进行译码的示例性操作方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过使用各种机制对视频信号进行压缩,以减小视频文件大小。较小的文件大小有利于在减少相关的带宽开销的同时,将压缩的视频文件发送给用户。然后,解码器对压缩的视频文件进行解码,以重建原始视频信号,用于向终端用户显示。解码过程通常与编码过程对应,便于解码器一致地重建视频信号。
在步骤101中,将视频信号输入编码器。例如,视频信号可以是存储在存储器中的未压缩的视频文件。在另一示例中,视频文件可以由视频捕获设备(例如摄像机)捕获,并进行编码以支持视频的直播。视频文件可以包括音频分量和视频分量。视频分量包含一系列图像帧,当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包含根据光(本文称为亮度分量(或亮度样本))和颜色(称为色度分量(或色度样本))表示的像素。在一些示例中,这些帧还可以包含深度值以支持三维观看。
在步骤103中,将视频分割为块。分割包括将每个帧中的像素细分为方块和/或矩形块,用于进行压缩。例如,在高效视频编码(high efficiency video coding,HEVC)(也称为H.265和MPEG-H第2部分)中,可以首先将帧划分为编码树单元(coding tree unit,CTU),这些编码树单元是预定义大小(例如,64×64像素)的块。CTU包含亮度样本和色度样本。可以使用编码树将CTU划分为块,然后递归细分这些块,直到获得支持进一步编码的配置。例如,帧的亮度分量可以细分,直到各个块包含相对均匀的亮度值。此外,帧的色度分量可以细分,直到各个块包含相对均匀的颜色值。因此,分割机制根据视频帧的内容而不同。
在步骤105中,使用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以使用帧间预测和/或帧内预测。帧间预测旨在利用公共场景中的对象往往出现在连续帧中这一事实。因此,无需在相邻帧中重复描述参考帧中描绘对象的块。具体地,一个对象(如一张桌子)可以在多个帧中保持在恒定的位置。因此,只描述一次桌子,相邻帧可以重新参考参考帧。模式匹配机制可以用于匹配多个帧中的对象。此外,由于对象移动或摄像机移动等原因,移动对象可以跨多个帧表示。在一个具体的示例中,视频可以通过多个帧显示在屏幕上移动的汽车。运动矢量可以用于描述这种移动。运动矢量是一个二维矢量,提供从帧中对象的坐标到参考帧中该对象的坐标的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集,表示相对于参考帧中对应块的偏移。
帧内预测对公共帧中的块进行编码。帧内预测利用亮度分量和色度分量往往在帧中聚集这一事实。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测使用多种方向预测模式(例如,HEVC中有33种模式)、平面模式和直流(direct current,DC)模式。方向模式表示当前块与对应方向的邻块的样本类似/相同。平面模式表示可以根据行边缘处的邻块对行/列(例如平面)上的一系列块进行插值。实际上,平面模式通过使用变化值的相对恒定的斜率来表示光/颜色在行/列上的平滑转变。DC模式用于边界平滑,表示块和与所有邻块的样本相关联的平均值类似/相同,所述邻块与方向预测模式的角方向相关联。因此,帧内预测块可以将图像块表示为各种关系预测模式值而非实际值。此外,帧间预测块可以将图像块表示为运动矢量值而非实际值。在任一种情况下,预测块在一些情况下可能无法精确地表示图像块。所有差值都存储在残差块中。可以对残差块进行变换以进一步压缩文件。
在步骤107中,可以应用各种滤波技术。在HEVC中,根据环内滤波方案应用滤波器。上文描述的基于块的预测可能使得在解码器侧创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建编码块,以供以后用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和样本自适应偏移(sample adaptiveoffset,SAO)滤波器用于块/帧。这些滤波器减少了此类块伪影,从而可以准确地重建编码文件。此外,这些滤波器减少了重建参考块中的伪影,使得伪影不太可能在根据重建参考块编码的后续块中产生其它伪影。
在步骤109中,一旦对视频信号进行了分割、压缩和滤波,则将所得数据编码到码流中。所述码流包括上述数据以及支持在解码器侧进行适当的视频信号重建所需要的任何指示(signal)数据。例如,此类数据可以包括分割数据、预测数据、残差块和向解码器提供译码指令的各种标志。码流可以存储在存储器中,以便在请求时向解码器发送。还可以向多个解码器广播和/或组播所述码流。创建码流是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块中连续和/或同时执行。图1所示的顺序是为了清楚和便于描述而呈现的,并非旨在将视频译码过程限制于特定顺序。
在步骤111中,解码器接收码流并开始解码过程。具体地,解码器使用熵解码方案将码流转换为对应的语法数据和视频数据。在步骤111中,解码器使用码流中的语法数据来确定帧的分割部分。分割应与步骤103中的块分割结果匹配。这里描述了步骤111中使用的熵编码/熵解码。编码器在压缩过程中进行许多选择,例如根据一个或多个输入图像中值的空间定位从多个可能选择中选择块分割方案。指示确切的选择可能会使用大量的位元。本文所使用的位元是被视为变量的二进制值(例如,可以根据上下文变化的位值)。熵译码使得编码器可以丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配码字。码字的长度取决于可使用的选项的数量(例如,一个位元对应两个选项,两个位元对应三个或四个选项等)。然后,编码器对所选选项的码字进行编码。该方案减小了码字的大小,因为码字的大小与唯一表示从可使用的选项的小子集中的一个选项,而非唯一表示从所有可能选项的潜在大集中的选项所需要的码字一样大。然后,解码器通过以与编码器类似的方式确定可使用的选项集来对该选择进行解码。通过确定可使用的选项集,解码器可以读取码字并确定编码器做出的选择。
在步骤113中,解码器执行块解码。具体地,解码器进行逆变换来生成残差块。然后,解码器使用残差块和对应的预测块,根据分割重建图像块。预测块可以包括在步骤105中编码器侧生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块定位到重建视频信号的帧中。步骤113的语法还可以通过上文描述的熵译码在码流中指示。
在步骤115中,以类似于步骤107的方式在编码器侧对重建视频信号的帧进行滤波。例如,可以对帧应用噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和SAO滤波器以去除块伪影。一旦对帧进行滤波,在步骤117中,可以将视频信号输出到显示器以供终端用户观看。
图2为用于视频译码的示例性编码和解码(编解码)系统200的示意图。具体地,编解码系统200能够实现操作方法100。编解码系统200广义地描述编码器和解码器中使用的组件。编解码系统200接收视频信号并对视频信号进行分割,如操作方法100中的步骤101和103所描述,从而产生分割视频信号201。然后,当作为编码器时,编解码系统200将分割视频信号201压缩到编码码流中,如方法100中的步骤105、107和109所描述。当作为解码器时,编解码系统200从码流中生成输出视频信号,如操作方法100中的步骤111、113、115和117所描述。编解码系统200包括通用译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、帧内预测组件217、运动补偿组件219、运动估计组件221、缩放和逆变换组件229、滤波器控制分析组件227、环内滤波器组件225、解码图像缓冲区组件223、标头格式和上下文自适应二进制算术编码(context adaptive binary arithmetic coding,CABAC)组件231。这些组件如图所示耦合。在图2中,黑线表示待编码/解码数据的移动,而虚线表示控制其它组件操作的控制数据的移动。编解码系统200的组件都可以在编码器中使用。解码器可以包括编解码系统200的组件的子集。例如,解码器可以包括帧内预测组件217、运动补偿组件219、缩放和逆变换组件229、环内滤波器组件225和解码图像缓冲区组件223。这里对这些组件进行描述。
分割视频信号201是已通过编码树分割为像素块的捕获的视频序列。编码树使用各种划分模式将像素块细分为更小的像素块。然后这些块还可以细分为更小的块。这些块可以称为编码树上的节点。较大的父节点被划分为较小的子节点。节点被细分的次数称为节点/编码树的深度。在一些情况下,编码单元(coding unit,CU)中可以包括划分的块。例如,CU可以是CTU的子部分,CTU包含亮度块、红差色度(Cr)块和蓝差色度(Cb)块以及CU的对应语法指令。划分模式可以包括二叉树(binary tree,BT)、三叉树(triple tree,TT)和四叉树(quad tree,QT),用于根据所使用的划分模式,分别将节点分割为不同形状的两个、三个或四个子节点。将分割视频信号201转发到通用译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、滤波器控制分析组件227和运动估计组件221进行压缩。
通用译码器控制组件211用于根据应用约束做出与将视频序列的图像编码到码流中相关的决策。例如,通用译码器控制组件211管理码率/码流大小相对于重建质量的优化。此类决策可以根据存储空间/带宽可用性和图像分辨率请求做出。通用译码器控制组件211还根据传输速度管理缓冲区使用率,以缓解缓冲区欠载和超载问题。为了解决这些问题,通用译码器控制组件211管理由其它组件进行的分割、预测和滤波。例如,通用译码器控制组件211可以动态地提高压缩复杂度以提高分辨率和提高带宽使用率,或者降低压缩复杂度以降低分辨率和带宽使用率。因此,通用译码器控制组件211控制编解码系统200的其它组件,以平衡视频信号重建质量与码率问题。通用译码器控制组件211创建控制数据,这些控制数据控制其它组件的操作。控制数据还被转发到标头格式和CABAC组件231,以编码到码流中,从而指示用于在解码器中进行解码的参数。
分割视频信号201还被发送至运动估计组件221和运动补偿组件219,用于进行帧间预测。分割视频信号201的帧或条带可以划分为多个视频块。运动估计组件221和运动补偿组件219相对于一个或多个参考帧中的一个或多个块对接收到的视频块进行帧间预测译码以提供时间预测。编解码系统200可以执行多个译码过程,以便为每个视频数据块选择适当的译码模式等等。
运动估计组件221和运动补偿组件219可以高度集成,但出于概念目的分开示出。运动估计组件221执行的运动估计是生成运动矢量的过程,其中,这些运动矢量用于估计视频块的运动。例如,运动矢量可以表示译码对象相对于预测块的位移。预测块是被发现在像素差方面与待译码块高度匹配的块。预测块也可以称为参考块。此类像素差可以通过绝对差和(sum of absolute difference,SAD)、平方差和(sum of square difference,SSD)或其它差值度量来确定。HEVC使用几种译码对象,包括CTU、编码树块(coding tree block,CTB)和CU。例如,CTU可以划分为多个CTB,然后CTB可以划分为多个CB,多个CB用于包括在CU中。CU可以编码为包含预测数据的预测单元(prediction unit,PU)和/或包含CU的变换残差数据的变换单元(transform unit,TU)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、PU和TU。例如,运动估计组件221可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)与译码效率(例如,最终编码的大小)。
在一些示例中,编解码系统200可以计算存储在解码图像缓冲区组件223中的参考图像的子整数像素位置的值。例如,视频编解码系统200可以对参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计组件221可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过将PU的位置与参考图像的预测块的位置进行比较来计算帧间译码条带中视频块的PU的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出到标头格式和CABAC组件231以进行编码,并将运动输出到运动补偿组件219。
运动补偿组件219执行的运动补偿可以涉及根据运动估计组件221所确定的运动矢量获取或生成预测块。另外,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收到当前视频块的PU的运动矢量之后,运动补偿组件219可以定位运动矢量指向的预测块。然后,通过从正被译码的当前视频块的像素值中减去预测块的像素值,形成像素差值,从而形成残差视频块。通常,运动估计组件221相对于亮度分量执行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发到变换缩放和量化组件213。
分割视频信号201也被发送到帧内估计组件215和帧内预测组件217。如同运动估计组件221和运动补偿组件219,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念目的分开示出。帧内估计组件215和帧内预测组件217相对于当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在各帧之间执行的帧间预测。具体地,帧内估计组件215确定帧内预测模式,用于对当前块进行编码。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式来对当前块进行编码。然后,将所选择的帧内预测模式转发到标头格式和CABAC组件231用于进行编码。
例如,帧内估计组件215使用对各种测试的帧内预测模式的率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块与经编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于生成编码块的码率(例如,位数)。帧内估计组件215根据各种编码块的失真和速率计算比率,以确定哪种帧内预测模式表现出块的最佳率失真值。此外,帧内估计组件215可以用于根据率失真优化(rate-distortion optimization,RDO),使用深度建模模式(depth modelingmode,DMM)对深度图的深度块进行译码。
当在编码器上实现时,帧内预测组件217可以根据由帧内估计组件215确定的所选帧内预测模式从预测块生成残差块,或者当在解码器上实现时,从码流读取残差块。残差块包括预测块与原始块之间的值差,表示为矩阵。然后,残差块被转发到变换缩放和量化组件213。帧内估计组件215和帧内预测组件217可以对亮度分量和色度分量进行操作。
变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213对残差块应用变换,如离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discrete sine transform,DST)或概念上类似的变换,从而产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可以将残差信息从像素值域转换到变换域,如频域。变换缩放和量化组件213还用于根据频率等对变换的残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同粒度下量化不同的频率信息,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件213还用于对变换系数进行量化以进一步降低码率。量化过程可以降低与一些或全部系数相关的位深度。量化程度可以通过调整量化参数来修改。在一些示例中,变换缩放和量化组件213随后可以对包括量化变换系数的矩阵进行扫描。量化变换系数被转发到标头格式和CABAC组件231,以编码到码流中。
缩放和逆变换组件229应用变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229应用逆缩放、逆变换和/或反量化以重建像素域中的残差块,例如,以供以后用作参考块,参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块添加回对应的预测块来计算参考块,以用于后续块/帧的运动估计。滤波器用于重建参考块,以减少在缩放、量化和变换期间产生的伪影。当对后续块进行预测时,此类伪影可能导致预测不准确(并产生其它伪影)。
滤波器控制分析组件227和环内滤波器组件225将滤波器用于残差块和/或重建图像块。例如,缩放和逆变换组件229的变换残差块可以与帧内预测组件217和/或运动补偿组件219的对应的预测块合并以重建原始图像块。然后,滤波器可以用于重建图像块。在一些示例中,滤波器可以转而用于残差块。如同图2中的其它组件,滤波器控制分析组件227和环内滤波器组件225高度集成,可以一起实现,但出于概念目的分开示出。用于重建参考块的滤波器用于特定空间区域,包括多个参数以调整应用此类滤波器的方式。滤波器控制分析组件227对重建参考块进行分析,以确定应应用此类滤波器的位置并设置对应的参数。此类数据作为滤波器控制数据被转发到标头格式和CABAC组件231用于进行编码。环内滤波器组件225根据滤波器控制数据应用此类滤波器。滤波器可以包括去块效应滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。此类滤波器可以根据示例用于空域/像素域(例如,针对重建像素块)或频域中。
当作为编码器时,将滤波重建图像块、残差块和/或预测块存储在解码图像缓冲区组件223中,以供以后用于运动估计,如上所述。当作为解码器时,解码图像缓冲区组件223存储经重建和滤波的块并将其作为输出视频信号的一部分向显示器转发。解码图像缓冲区组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储设备。
标头格式和CABAC组件231从编解码系统200的各组件接收数据并将此类数据编码到编码码流中用于向解码器发送。具体地,标头格式和CABAC组件231生成各种标头以对控制数据(如通用控制数据和滤波器控制数据)进行编码。此外,预测数据(包括帧内预测)和运动数据,以及量化变换系数数据形式的残差数据均编码在码流中。最终码流包括解码器重建原始的分割视频信号201所需要的所有信息。这些信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的指示、分割信息的指示等。这些数据可以通过熵译码技术进行编码。例如,可以使用上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、CABAC、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmeticcoding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)编码或其它熵译码技术对信息进行编码。在熵译码之后,可以将编码码流发送到另一设备(例如,视频解码器)或存档以供后续发送或检索。
图3为示例性视频编码器300的框图。视频编码器300可以用于实现编解码系统200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,从而产生分割视频信号301,其中,分割视频信号301实质上类似于分割视频信号201。然后,通过编码器300的组件压缩分割视频信号301并将其编码到码流中。
具体地,分割视频信号301被转发到帧内预测组件317用于进行帧内预测。帧内预测组件317实质上可以类似于帧内估计组件215和帧内预测组件217。分割视频信号301还被转发到运动补偿组件321,用于根据解码图像缓冲区组件323中的参考块进行帧间预测。运动补偿组件321实质上可以类似于运动估计组件221和运动补偿组件219。帧内预测组件317和运动补偿组件321的预测块和残差块被转发到变换和量化组件313以用于对残差块进行变换和量化。变换和量化组件313实质上可以类似于变换缩放和量化组件213。变换和量化残差块和对应的预测块(连同相关控制数据)被转发到熵译码组件331用于编码到码流中。熵译码组件331可以实质上类似于标头格式和CABAC组件231。
变换和量化残差块和/或对应的预测块也从变换和量化组件313转发到逆变换和量化组件329以重建成参考块供运动补偿组件321使用。逆变换和量化组件329实质上可以类似于缩放和逆变换组件229。根据示例,环内滤波器组件325中的环内滤波器还用于残差块和/或重建参考块。环内滤波器组件325实质上可以类似于滤波器控制分析组件227和环内滤波器组件225。如关于环内滤波器组件225所描述,环内滤波器组件325可以包括多个滤波器。然后,滤波块存储在解码图像缓冲区组件323中,以供运动补偿组件321用作参考块。解码图像缓冲区组件323实质上可以类似于解码图像缓冲区组件223。
图4为示例性视频解码器400的框图。视频解码器400可以用于实现编解码系统200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据该码流生成重建输出视频信号,用于向终端用户显示。
该码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,如CAVLC、CABAC、SBAC、PIPE译码或其它熵译码技术。例如,熵解码组件433可以使用标头信息来提供上下文以解释在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,如通用控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块中的量化变换系数。量化变换系数被转发到逆变换和量化组件429以重建成残差块。逆变换和量化组件429可以类似于逆变换和量化组件329。
重建残差块和/或预测块被转发到帧内预测组件417,以根据帧内预测操作重建成图像块。帧内预测组件417可以类似于帧内估计组件215和帧内预测组件217。具体地,帧内预测组件417使用预测模式来定位帧中的参考块,并将残差块用于结果以重建帧内预测图像块。重建帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发到解码图像缓冲区组件423。解码图像缓冲区组件423和环内滤波器组件425实质上可以分别类似于解码图像缓冲区组件223和环内滤波器组件225。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波,并且此类信息存储在解码图像缓冲区组件423中。解码图像缓冲区组件423的重建图像块被转发到运动补偿组件421进行帧间预测。运动补偿组件421实质上可以类似于运动估计组件221和/或运动补偿组件219。具体地,运动补偿组件421使用参考块的运动矢量来生成预测块,并将残差块用于结果以重建图像块。所得重建块还可以通过环内滤波器组件425转发到解码图像缓冲区组件423。解码图像缓冲区组件423继续存储其它重建图像块,这些重建图像块可以通过分割信息重建成帧。此类帧也可以位于序列中。该序列作为重建输出视频信号向显示器输出。
图5为从图像视频流500提取的多个子图像视频流501、502和503的示意图。例如,根据方法100,子图像视频流501-503中的每一个子图像视频流和/或图像视频流500可以由编解码系统200和/或编码器300等编码器编码。此外,子图像视频流501-503和/或图像视频流500可以由编解码系统200和/或解码器400等解码器解码。
图像视频流500包括随时间呈现的多个图像。如图5所示,图像视频流500用于虚拟现实(virtual reality,VR)应用。VR通过对球体的视频内容进行译码来操作,球体的视频内容可以像用户在球体的中心一样进行显示。每个图像都包括整个球体。同时,仅向用户显示图像的一部分(称为视角)。例如,用户可以使用头戴式显示器(head mounted display,HMD),该显示器根据用户的头部移动选择和显示球体的视角。这产生了视频所描绘的物理上存在于虚拟空间中的效果。为了实现这一结果,视频序列的每个图像包括对应时刻的整个视频数据球体。但是,仅向用户显示图像的一小部分(例如,单个视角)。在解码器中,图像的其余部分被丢弃,不呈现出来。可以发送整个图像,以便可以响应用户头部移动而动态选择和显示不同的视角。
在所示示例中,图像视频流500的图像可以根据可用视角细分为子图像。因此,每个图像和对应的子图像包括作为时间呈现的一部分的时间位置(例如,图像顺序)。子图像视频流501-503是在一段时间内一致应用细分时创建的。这种一致的细分创建子图像视频流501-503,其中,每个流包含相对于图像视频流500中的对应图像具有预定大小、形状和空间位置的子图像集。此外,子图像视频流501-503中的子图像集的时间位置随呈现时间变化。因此,子图像视频流501-503中的子图像可以根据时间位置在时域中对齐。然后,可以根据预定义的空间位置在空间域中融合每个时间位置的子图像视频流501-503中的子图像,以重建用于显示的图像视频流500。具体地,子图像视频流501-503每个都可以被编码到不同的子码流中。当这些子码流融合在一起时,会产生一个码流,该码流随时间推移包括整个图像集。得到的码流可以发送到解码器,以便根据用户当前选择的视角进行解码和显示。
VR视频的问题之一是,所有子图像视频流501-503都可以以高质量(例如,高分辨率)发送给用户。这使得解码器可以动态选择用户的当前视角,并实时显示对应子图像视频流501-503中的子图像。但是,用户可以仅观看单个视角,例如从子图像视频流501观看,而子图像视频流502-503被丢弃。因此,以高质量发送子图像视频流502-503会使用大量的带宽,而不向用户提供对应的好处。为了提高译码效率,VR视频可以被编码到多个视频流500中,其中,每个视频流500以不同的质量/分辨率编码。这样,解码器可以发送对当前子图像视频流501的请求。作为响应,编码器(或中间条带器或其它内容服务器)可以从较高质量的视频流500中选择较高质量的子图像视频流501,从较低质量的视频流500中选择较低质量的子图像视频流502-503。然后,编码器可以将这些子码流融合到一个完整的编码码流中,以便传输到解码器。这样,解码器接收一系列图像,其中,当前视角质量较高,其它视角质量较低。此外,最高质量的子图像通常显示给用户(在不移动头部时),低质量的子图像通常被丢弃,这平衡了功能与译码效率。
在用户从观看子图像视频流501转向子图像视频流502的情况下,解码器请求以较高质量发送新的当前子图像视频流502。然后,编码器可以相应地改变融合机制。
包括图像视频流500,以描述子图像的实际应用。需要说明的是,子图像具有许多应用,本发明并不限于VR技术。例如,子图像也可以在电话会议系统中采用。在这种情况下,每个用户的视频馈送包括在子图像码流中,例如子图像视频流501、502和/或503中。系统可以接收这种子图像视频流501、502和/或503,并在不同的位置、以不同的分辨率等组合它们,以创建用于传输回用户的完整图像视频流500。这支持电话会议系统根据改变的用户输入来动态地改变图像视频流500(例如通过增加或减少子图像视频流501、502和/或503的大小),以强调当前正在发言的用户或取消强调不再发言的用户。因此,子图像具有许多应用,这些应用支持图像视频流500在运行时根据用户行为的变化动态地改变。该功能可以通过从图像视频流500中提取子图像视频流501、502和/或503,和/或将子图像视频流501、502和/或503组合到图像视频流500中来实现。
图6是被划分为子码流601的示例性码流600的示意图。码流600可以包含图像视频流,例如图像视频流500,并且子码流601可以包含子图像视频流,例如子图像视频流501、502和/或503。例如,码流600和子码流601可以由编解码系统200和/或编码器300生成,以供编解码系统200和/或解码器400解码。又如,在方法100的步骤109中,码流600和子码流601可以由编码器生成,以供解码器使用(步骤111)。
码流600包括序列参数集(sequence parameter set,SPS)610、多个图像参数集(picture parameter set,PPS)611、多个条带头615和图像数据620。SPS 610包含码流600中包含的视频序列中所有图像共用的序列数据。这些数据可以包括图像大小、位深度、译码工具参数、位速率限制等。PPS 611包含应用于整个图像的参数。因此,视频序列中的每个图像都可以参考PPS 611。需要说明的是,虽然每个图像都参考PPS 611,但在一些示例中,单个PPS 611可以包含多个图像的数据。例如,多个类似图像可以根据类似的参数进行编码。在这种情况下,单个PPS 611可以包含这些类似图像的数据。PPS 611可以表示量化参数、偏移、可用于对应图像中的条带的译码工具等。条带头615包含图像中每个条带特定的参数。因此,视频序列中的每个条带都可以存在一个条带头615。条带头615可以包含条带类型信息、图像顺序编号(picture order count,POC)、参考图像列表、预测权重、分块入口点(tile entry point)、去块效应滤波参数等。需要说明的是,在一些上下文中,条带头615也可以称为分块组头。需要说明的是,在一些示例中,码流600还可以包括图像头,图像头是包含应用于单个图像中所有条带的参数的语法结构。因此,在一些上下文中,图像头和条带头615可以互换使用。例如,条带头615和图像头可以使用一些相同的参数,这取决于这些参数是否是图像中所有条带共用的。
图像数据620包含根据帧间预测、帧内预测和/或层间预测编码的视频数据以及对应的变换和量化残差数据。例如,视频序列包括多个图像621。图像621是创建帧或帧场的亮度样本阵列和/或色度样本阵列。帧是视频序列中的预期在对应时刻向用户完整或部分显示的完整图像。图像621包含一个或多个条带。条带可以被定义为图像621中的整数个完整分块或图像621中的(例如分块内的)整数个连续完整CTU行,这些分块或CTU行只包含在单个NAL单元中。条带被进一步划分为CTU和/或CTB。CTU是一组预定义大小的样本,可以通过译码树(coding tree)进行分割。CTB是CTU的子集,并且包含CTU的亮度分量或色度分量。CTU/CTB根据编码树被进一步划分为编码块。然后,译码块可以根据预测机制进行编码/解码。
图像621可以被划分为多个子图像623和624。子图像623和/或624是图像621中一个或多个条带组成的矩形区域。因此,每个条带及其子划分可以被分配给子图像623和/或624。这支持图像621的不同区域从译码的角度被不同地处理,这取决于在这些区域中包括哪个子图像623和/或624。
根据子码流提取过程605,可以从码流600中提取子码流601。子码流提取过程605是一种指定的机制,它从码流中删除不是目标集一部分的NAL单元,从而产生包括目标集中包括的NAL单元的输出子码流。NAL单元包含条带。因此,子码流提取过程605保留条带的目标集,并删除其它条带。目标集可以根据子图像边界选择。在所示示例中,包含在子图像623中的条带包括在目标集中,并且包括在子图像624中的条带不包括在目标集中。因此,子码流提取过程605创建子码流601,子码流601基本上类似于码流600,但包含子图像623,同时排除子图像624。子码流提取过程605可以由编码器和/或关联条带器执行,该编码器和/或关联条带器用于根据用户行为/请求动态地改变码流600。
因此,子码流601是通过将子码流提取过程605应用于输入码流600而提取的码流。输入码流600包含子图像集。但是,提取的码流(例如,子码流601)仅包含用于子码流提取过程605的输入码流600的子图像的子集。在所示示例中,包含在输入码流600中的子图像集包括子图像623和624,而子码流601中的子图像的子集包括子图像623,但不包括子图像624。需要说明的是,可以使用任何数量的子图像623-624。例如,码流600可以包括N个子图像623-624,并且子码流601可以包含N-1个或更少的子图像623,其中,N是任何整数值。
在一些情况下,子码流提取过程605可能会产生译码错误。例如,子图像623-624可以与子图像信息(例如子图像ID)相关联。子图像ID唯一地标识对应的子图像,例如子图像623或624。因此,子图像ID可用于表示子图像623-624相对于图像621的位置和/或进行子图像级译码过程改变。在一些情况下,可以根据子图像623-624位置推断出子图像信息。因此,码流600可以省略与子图像623和624相关的这种子图像信息,以减少码流600中的数据量,以便提高译码效率。但是,当子图像623或子图像624不存在时,解码器可能无法推断出这种子图像信息。因此,简单的子码流提取过程605可以应用于一致的码流600,并创建不一致的子码流601。当码流600/子码流601符合标准(例如VVC)时,码流600/子码流601是一致的,因此可以由任何也符合标准的解码器正确解码。因此,简单的子码流提取过程605可以将可解码码流600转换为不可解码的子码流601。
为了解决这个问题,本发明包括改进的子码流提取过程605。具体地,子码流提取过程605对子码流601中的子图像623的子图像ID进行编码,即使从码流600中省略了这些子图像ID时也是如此。例如,子图像ID可以包括在SPS子图像标识符(sps_subpic_id[i])语法结构635中。sps_subpic_id[i]语法结构635包括在SPS 610中,并包括i个子图像ID,其中,i是包含在子码流601中的子图像623的数量。此外,子码流提取过程605还可以将包含一个或多个子图像ID的语法元素(例如,sps_subpic_id[i]语法结构635)的位长度编码到提取的码流中。例如,该长度可以包括在SPS子图像ID长度减一(sps_subpic_id_len_minus1)语法结构633中。sps_subpic_id_len_minus1语法结构633可以包含sps_subpic_id[i]语法结构635的位长度减一。减一译码方法将值编码为比实际值小一,以节省位。解码器可以通过添加一来推导出实际值。因此,sps_subpic_id_len_minus1语法结构633也可以被称为sps_subpic_id_len_minus1+1。因此,解码器可以使用sps_subpic_id_len_minus1语法结构633来确定与sps_subpic_id[i]语法结构635相关联的位数,并且因此可以使用sps_subpic_id_len_minus1语法结构633来解释sps_subpic_id[i]语法结构635。然后,解码器可以根据sps_subpic_id_len_minus1语法结构633和sps_subpic_id[i]语法结构635对子图像623进行解码。
此外,子码流提取过程605可以在子码流601中编码/设置标志,以表示子码流601中存在与子图像623相关的子图像信息。在一个具体的示例中,该标志可以被编码为子图像信息是存在标志(subpic_info_present_flag)631。因此,subpic_info_present_flag 631可以被设置为表示提取的码流(子码流601)中存在与子图像的子集相关的子图像信息,例如sps_subpic_id_len_minus1语法结构633和sps_subpic_id[i]语法结构635。此外,解码器可以读取subpic_info_present_flag 631以确定提取的码流(子码流601)中存在与子图像的子集相关的子图像信息,例如sps_subpic_id_len_minus1语法结构633和sps_subpic_id[i]语法结构635。在具体示例中,当提取的码流(子码流601)是通过子码流提取过程605从输入码流600提取的码流时,编码器/条带器可以要求将标志设置为1,以表示编码层视频序列(coded layer video sequence,CLVS)存在子图像信息,并且CLVS的每个图像621包含多个子图像623和624。CLVS是包含一层或多层图像的编码视频数据的序列。层是NAL单元集合,这些单元都具有特定的层ID值。图像621可以或可以不被组织成多个层,其中,对应的层的所有图像621具有类似的特征,例如尺寸、分辨率、信噪比(signal to noise ratio,SNR)等。
下面详细描述上述信息。HEVC可以采用常规条带、相关条带、分块和波前并行处理(wavefront parallel processing,WPP)作为分割方案。这些分割方案可以用于最大传输单元(maximum transfer unit,MTU)大小匹配、并行处理和减少端到端延迟。每个常规条带可以封装在单独的NAL单元中。在条带边界上,可以禁用熵译码依赖和帧内预测(包括样本内预测、运动信息预测和译码模式预测)。因此,常规条带可以独立于同一图像中的其它常规条带重建。但是,由于环路滤波操作,条带可能仍然具有一些相互依赖关系。
基于常规条带的并行化可能不需要大量的处理器间或核间通信。一个例外是,当对预测译码图像进行解码时,处理器间和/或核心间数据共享可以有利于运动补偿。由于帧间预测,该过程可能涉及比处理器间或核间数据共享更多的处理资源。但是,出于同样的原因,使用常规条带时可能会由于条带头的位成本以及缺乏跨条带边界的预测而产生大量译码开销。此外,由于常规条带的帧内独立性,以及每个常规条带封装在单独的NAL单元中,所以常规条带还用作码流分割的机制,以匹配MTU大小要求。在许多情况下,由于要实现并行化和MTU大小匹配的目标,因此,对图像内的条带布局提出了互相矛盾的要求,
相关条带具有缩短的条带头,并且支持在不中断任何帧内预测的情况下在树块边界处分割码流。相关条带提供了将常规条带分割成多个NAL单元的功能。这支持在整个常规条带的编码完成之前发送常规条带的一部分,从而减少端到端延迟。
在WPP中,将图像分割为单行CTB。熵解码和预测可以使用来自其它分割部分中的CTB的数据。通过对CTB行进行并行解码,支持并行处理。根据示例,可以延迟一个或两个CTB开始CTB行的解码,以确保在解码目标CTB之前,与目标CTB上方和右侧的CTB相关的数据可用。这种交错的开始产生了波前并行处理。这种处理可以使用与图像内包含的CTB行一样多的处理器/核来支持并行化。由于可以在图像内相邻树块行之间进行帧内预测,因此使用处理器间/核间通信来实现帧内预测非常重要。WPP分割不会产生附加的NAL单元。因此,WPP不能用于MTU大小匹配。但是,常规条带可以与WPP结合使用,以根据需要实现MTU大小匹配,这需要一定的译码开销。
分块是图像中由水平和垂直边界创建的分割部分,这些边界创建了分块的列和行。CTB的扫描顺序可以局限于分块内,按照分块的CTB光栅扫描的顺序。因此,在按照图像的分块光栅扫描的顺序对分块的下一个分块的左上角CTB进行解码之前,可以对该分块进行完全解码。与常规条带类似,分块消除了帧内预测依赖以及熵解码依赖。但是,分块可以不包括在单个NAL单位中。因此,分块不能用于MTU大小匹配。每个分块可以由一个处理器/内核处理。用于解码相邻分块的处理单元之间的帧内预测的处理器间/核间通信可以限于当条带包括多个块和环路滤波相关的重建样本和元数据共享时传输共享条带头。当条带中包括多个分块或WPP段时,除条带中的第一个分块或WPP段之外,还可以在条带头中指示每个分块或WPP段的入口点字节偏移。
为简单起见,HEVC对四种不同的图像分割方案的应用采用了一定的限制。编码视频序列不能同时包括分块和HEVC中规定的大多数配置(profile)的波前并行处理。此外,每个条带和/或分块必须满足以下一个或两个条件。条带中的所有译码树块都包括在同一分块中。此外,分块中的所有译码树块都包括在同一条带中。此外,波前段正好包含一个CTB行。当使用WPP时,从一个CTB行开始的条带应在同一CTB行结束。
在VVC中,分块是图像中由水平和垂直边界创建的分割部分,这些边界创建了分块的列和行。VVC可以支持对分块进行进一步水平分割以形成砖(brick)。未进一步划分的分块也可以视为砖。CTB的扫描顺序更改为局限于砖内(例如,按照砖的CTB光栅扫描的顺序)。在按照图像的砖光栅扫描的顺序对当前砖的下一个砖的左上角CTB进行解码之前,可以对当前砖进行完全解码。
在VVC中,条带可以包括一个或多个砖。每个条带都封装在单独的NAL单元中。在条带边界上,可以禁用熵译码依赖和帧内预测(包括样本内预测、运动信息预测和译码模式预测)。因此,常规条带可以独立于同一图像中的其它常规条带重建。VVC包括矩形条带和光栅扫描条带。矩形条带可以包括一个或多个占据图像中的矩形区域的砖。光栅扫描条带可以包括一个或多个在图像中按砖光栅扫描顺序排列的砖。
基于VVC的WPP与HEVC WPP类似,但HEVC WPP有两个CTU延迟,而VVC WPP有一个CTU延迟。对于HEVC WPP,在前一CTU行中的前两个CTU被解码之后,新的解码线程可以开始对分配的CTU行中的第一个CTU进行解码。对于VVC WPP,在前一CTU行中的第一个CTU被解码之后,新的解码线程可以开始对分配的CTU行中的第一个CTU进行解码。
PPS中分块、砖和条带的示例性指示如下。
Figure BDA0003901140410000171
Figure BDA0003901140410000181
Figure BDA0003901140410000191
上述系统存在一些问题。例如,当码流首次被编码时,码流中的图像中的条带可以被分割为矩形条带。在这种情况下,PPS中可以省略条带ID。在这种情况下,可以将码流的PPS中的signalled_slice_id_flag的值设置为0。但是,当从码流中提取一个或多个矩形条带以形成另一个码流时,从这个提取过程生成的码流中的PPS中应存在条带ID。
通常,本发明描述了用于帮助码流提取过程的传递指示条带ID。这些技术的描述基于VVC,但也可以适用于其它视频编解码规范。
解决上述问题的示例性机制如下。公开了一种用于从表示为码流A的码流的图像中提取一个或多个条带并通过提取过程产生新码流B的方法。该码流A包括至少一个图像,该图像包括多个条带。该方法包括从码流A解析参数集,并将该参数重写到码流B中。在重写的参数集中,signalled_slice_id_flag的值设置为1。当码流A的参数集中存在signalled_slice_id_length_minus1语法元素时,signalled_slice_id_flag的值将复制到重写的参数集中。当码流A的参数集中不存在signalled_slice_id_length_minus1语法元素时,signalled_slice_id_flag的值将在重写的参数集中设置。例如,signalled_slice_id_flag可以设置为Ceil(Log2(num_slices_in_pic_minus1+1))-1,其中,num_slices_in_pic_minus1等于码流A的图像中的条带数减1。从码流A中提取一个或多个条带。然后,生成提取的码流B。
示例性PPS语义如下。设置为1的signalled_slice_id_flag可以表示每个条带的条带ID被指示。设置为0的signalled_slice_id_flag可以表示条带ID没有被指示。当rect_slice_flag等于0时,signalled_slice_id_flag的值可以被推断为等于0。对于通过子码流提取过程提取的码流,该码流包含最初包括在图像中的条带的子集,对于PPS,signalled_slice_id_flag的值应设置为1。signalled_slice_id_length_minus1+1可以表示用于表示条带头中的语法元素slice_id[i](当存在时)以及语法元素slice_address的位数。signalled_slice_id_length_minus1的取值范围可以为0到15(包括端值)。当不存在时,signalled_slice_id_length_minus1的值可以被推断为等于Ceil(Log2(num_slices_in_pic_minus1+1))-1。对于通过子码流提取过程提取的码流,该码流包含最初包括在图像中的条带的子集,对于PPS,signalled_slice_id_length_minus1的值应保持不变。
图7为示例性视频译码设备700的示意图。视频译码设备700适合于实现本文描述的公开示例/实施例。视频译码设备700包括下行端口720、上行端口750和/或收发单元(Tx/Rx)710。收发单元(Tx/Rx)710包括用于通过网络向上游和/或下游传送数据的发送器和/或接收器。视频译码设备700还包括:用于处理数据的包括逻辑单元和/或中央处理单元(central processing unit,CPU)的处理器730;用于存储数据的存储器732。视频译码设备700还可以包括耦合到上行端口750和/或下行端口720的电组件、光电(optical-to-electrical,OE)组件、电光(electrical-to-optical,EO)组件和/或无线通信组件,以用于通过电、光或无线通信网络进行数据传输。视频译码设备700还可以包括用于与用户进行数据通信的输入和/或输出(I/O)设备760。I/O设备760可以包括输出设备,例如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备760还可以包括输入设备,例如键盘、鼠标、轨迹球等,和/或用于与这些输出设备交互的对应的接口。
处理器730通过硬件和软件实现。处理器730可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器730与下行端口720、Tx/Rx 710、上行端口750和存储器732通信。处理器730包括译码模块714。译码模块714实现本文描述的公开实施例,例如方法100、800和/或900,可以使用包括图像视频流500和/或子图像视频流501-503的码流600和/或子码流601。译码模块714还可以实现本文描述的任何其它方法/机制。此外,译码模块714可以实现编解码系统200、编码器300和/或解码器400。例如,译码模块714可以用于从码流中提取子码流,在提取过程期间将子图像信息包括在子码流中,和/或在子码流中包括标志,以用于表示子图像信息包括在子码流中。因此,译码模块714使得视频译码设备700在译码视频数据时提供其它功能和/或提高译码效率。因此,译码模块714改进了视频译码设备700的功能,并解决了视频编码领域特有的问题。此外,译码模块714影响了视频译码设备700到不同状态的转换。或者,译码模块714可以实现为存储在存储器732中并由处理器730执行的指令(例如,存储在非瞬时性介质中的计算机程序产品)。
存储器732包括一个或多个存储器类型,如磁盘、磁带机、固态驱动器、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、闪存、三态内容寻址存储器(ternary content-addressable memory,TCAM)、静态随机存取存储器(staticrandom-access memory,SRAM)等。存储器732可以用作溢出数据存储设备,以在选择程序用于执行时存储此类程序,并存储在程序执行过程中读取的指令和数据。
图8是将视频序列编码到码流(例如码流600)中,并提取子码流(例如子码流601),同时减少ID错误的示例性方法800的流程图。当执行方法100以对图像视频流500和/或子图像视频流501-503进行编码时,方法800可以由编码器(例如编解码器系统200、编码器300和/或视频译码设备700)执行。
方法800可以开始于:编码器接收到包括多个图像的视频序列,并且根据用户输入等确定将该视频序列编码到码流中。在步骤801中,编码器对包含子图像集的输入码流(例如图像视频流500和/或码流600)进行编码。例如,码流可以包含VR视频数据和/或电话会议视频数据。该子图像集可以包含多个子图像。此外,子图像可以与子图像ID相关联。
在步骤803中,编码器和/或关联条带器对输入码流执行子码流提取过程,以创建提取的码流,例如子图像视频流501-503和/或子码流601。提取的码流仅包含输入码流的子图像的子集。具体来说,提取的码流仅包含输入码流中的子图像集中包括的子图像。此外,提取的码流从输入码流中的子图像集中排除一个或多个子图像。因此,输入码流可以包含图像的CLVS,而提取的码流包含图像的子图像的CLVS。
在步骤805中,编码器将提取的码流中的子图像的子集的一个或多个子图像ID编码到提取的码流中。例如,可以从输入码流中排除这些子图像ID。因此,编码器可以将这些子图像ID编码到提取的码流中,以支持对提取的码流中包含的子图像进行解码。例如,子图像ID可以包含在提取的码流中的sps_subpic_id[i]语法结构中/编码到sps_subpic_id[i]语法结构中。
在步骤807中,编码器将包含一个或多个子图像ID的语法元素的位长度编码到提取的码流中。例如,可以从输入码流中排除子图像ID的长度。因此,编码器可以将子图像ID的长度编码到提取的码流中,以支持对提取的码流中包含的子图像进行解码。例如,长度可以包含在提取的码流中的sps_subpic_id_len_minus1+1语法结构中/编码到sps_subpic_id_len_minus1+1语法结构中。
在步骤809中,编码器可以设置提取的码流中的标志,以表示提取的码流中存在与子图像的子集相关的子图像信息。该标志可以向解码器指示提取的码流中存在子图像ID和/或子图像ID的长度。例如,该标志可以是subpic_info_present_flag。在具体示例中,当提取的码流是通过子码流提取过程从输入码流提取的码流时,需要将标志设置为1,以表示CLVS(例如,包含在输入码流和/或提取的码流中)存在子图像信息,并且CLVS的每个图像包含多个子图像。在一些示例中,标志、子图像ID和长度被编码到提取的码流中的SPS中。
在步骤811中,编码器存储码流,以用于与解码器通信。在一些示例中,然后,码流可以被发送到解码器。例如,码流可以在解码器请求时基于用户请求等发送到解码器。
图9是从提取自码流(例如码流600)的子码流(例如子码流601)解码视频序列的示例性方法900的流程图。当执行方法100以对图像视频流500和/或子图像视频流501-503进行解码时,方法900可以由解码器(例如编解码器系统200、解码器400和/或视频译码设备700)执行。
例如,在方法800结束之后,方法900可以在解码器开始接收从码流提取的子码流时开始。在步骤901中,解码器接收提取的码流。提取的码流是通过子码流提取过程从包含子图像集的输入码流中提取的码流。提取的码流仅包含用于子码流提取过程的输入码流的子图像的子集。具体地,提取的码流仅包含输入码流中的子图像集中包括的子图像。此外,提取的码流从输入码流中的子图像集中排除一个或多个子图像。因此,输入码流可以包含图像的CLVS,而提取的码流可以包含图像的子图像的CLVS。接收到的提取的码流也可以称为子码流。例如,提取的码流可以包含包括VR视频数据和/或电话会议视频数据的子图像。
在步骤903中,解码器确定提取的码流中的标志,该标志被设置来表示提取的码流中存在与子图像的子集相关的子图像信息。该标志可以表示提取的码流中存在子图像ID和/或子图像ID的长度。例如,该标志可以是subpic_info_present_flag。在具体示例中,当提取的码流是通过子码流提取过程从输入码流提取的码流时,需要将标志设置为1,以表示CLVS(例如,包含在输入码流和/或提取的码流中)存在子图像信息,并且CLVS的每个图像包含多个子图像。
在步骤905中,解码器获取包含一个或多个子图像ID的语法元素的位长度。例如,可以从输入码流中排除子图像ID的长度,但该子图像ID的长度包括在提取的码流中。例如,该长度可以包含在接收到的提取的码流中的sps_subpic_id_len_minus1+1语法结构中/编码到sps_subpic_id_len_minus1+1语法结构中。
在步骤907中,解码器根据标志和/或长度获取子图像的子集的一个或多个子图像ID。例如,解码器可以使用标志来确定子图像ID存在。然后,解码器可以使用长度来确定码流中子图像ID数据的边界。例如,可以从输入码流中排除子图像ID,但该子图像ID包括在提取的码流中。例如,子图像ID可以包含在提取的码流中的sps_subpic_id[i]语法结构中/编码到sps_subpic_id[i]语法结构中。在一些示例中,标志、子图像ID和长度从提取的码流中的SPS中获取。
在步骤909中,解码器可以根据在步骤907中获取的子图像ID对提取的码流中的子图像的子集进行解码。然后,在步骤911中,解码器可以转发子图像的子集,以便作为解码视频序列的一部分显示。
图10是用于对码流(例如码流600)中的图像的视频序列进行译码、提取子码流(例如子码流601),同时减少ID错误的示例性系统1000的示意图。因此,系统1000可以用于对图像视频流500和/或子图像视频流501-503进行译码。系统1000可以通过编码器和解码器(例如编解码系统200、编码器300、解码器400和/或视频译码设备700)实现。此外,可以使用系统1000实现方法100、800和/或900。
系统1000包括视频编码器1002。视频编码器1002包括第一编码模块1001,用于对包含子图像集的输入码流进行编码。视频编码器1002还包括码流提取模块1004,用于对输入码流执行子码流提取过程,以创建仅包含输入码流的子图像的子集的提取的码流。视频编码器1002还包括第二编码模块1003,用于将提取的码流中的子图像的子集的一个或多个子图像ID编码到提取的码流中。视频编码器1002还包括设置模块1005,用于设置提取的码流中的标志,以表示提取的码流中存在与子图像的子集相关的子图像信息。视频编码器1002还包括存储模块1007,用于存储码流,以用于与解码器通信。视频编码器1002还包括发送模块1009,用于将码流发送到视频解码器1010。视频编码器1002还可以用于执行方法800中的任一步骤。
系统1000还包括视频解码器1010。视频解码器1010包括接收模块1011,用于接收提取的码流,该提取的码流是通过子码流提取过程从包含子图像集的输入码流提取的码流,该提取的码流仅包含用于子码流提取过程的输入码流的子图像的子集。视频解码器1010还包括确定模块1013,用于确定提取的码流中的标志,该标志被设置来表示在提取的码流中存在与子图像的子集相关的子图像信息。视频解码器1010还包括获取模块1015,用于根据该标志获取子图像的子集的一个或多个子图像ID。视频解码器1010还包括解码模块1017,用于根据子图像ID对子图像的子集进行解码。视频解码器1010还包括转发模块1019,用于转发子图像的子集,以便作为解码视频序列的一部分显示。视频解码器1010还可以用于执行方法900中的任一步骤。
当第一组件与第二组件之间除线、迹线或其它介质之外,没有中间组件时,第一组件与第二组件直接耦合。当第一组件与第二组件之间除了线、迹线或其它介质之外还有中间组件时,第一组件与第二组件间接耦合。术语“耦合”及其同义词包括直接耦合和间接耦合。除非另有说明,否则术语“大约”是指包括其后数量的±10%的范围。
还应理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或组合。
虽然本发明中已提供若干实施例,但可以理解,在不背离本发明的精神和范围的情况下,所公开的系统和方法可以以许多其它特定形式来体现。当前的这些示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一个系统中,或者可以省略或不实现一些特征。
此外,在各种实施例中描述和示出为分立的或单独的技术、系统、子系统和方法,在不背离本发明的范围的情况下,可以与其它系统、组件、技术或方法组合或集成。本领域技术人员可以确定改变、替换和更改的其它示例,并在不背离本发明的精神和范围的情况下作出改变、替换和更改。

Claims (19)

1.一种解码的方法,其特征在于,所述方法包括:
接收码流,所述码流中包括序列参数集SPS和图像参数集PPS,所述SPS中包括第一标志,所述第一标志用于指示编码侧视频序列CLVS中是否存在子图像信息,所述第一标志还用于指示所述CLVS中每个图像均包含多个子图像或所述每个图像中只包含一个子图像;所述码流中的图像被划分为多个条带slice,所述PPS中包括第二标志,所述第二标志用于指示slice布局的相关信息是否在PPS中指示,所述slice布局的相关信息包括所述多个条带中的每个条带的条带ID;从所述码流中解析所述第一标志,当所述码流为通过子码流提取过程从包含子图像集的输入码流中提取的码流,且所述提取的码流仅包含所述输入码流的所述子图像的子集时,所述第一标志被设置为1,以表示所述CLVS中存在所述子图像信息,并且所述CLVS的每个图像均包含多个子图像;
从所述码流中解析所述第二标志;
根据所述第一标志对所述子图像的所述子集进行解码;
根据所述第二标志对所述多个条带进行解码。
2.根据权利要求1所述的方法,其特征在于,还包括从所述码流中获取所述子图像的所述子集的一个或多个子图像标识符ID。
3.根据权利要求2所述的方法,其特征在于,还包括从所述码流中获取包含所述一个或多个子图像ID的语法元素的长度。
4.根据权利要求3所述的方法,其特征在于,所述子图像ID和所述长度从所述提取的码流中的序列参数集SPS中获取。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一标志是子图像信息存在标志(subpic_info_present_flag)。
6.根据权利要求2至4任一项所述的方法,其特征在于,所述子图像ID包含在SPS子图像标识符(sps_subpic_id[i])语法元素中。
7.根据权利要求3或4所述的方法,其特征在于,还包括从所述码流中获取SPS子图像ID长度减一(sps_subpic_id_len_minus1)语法元素,其中sps_subpic_id_len_minus1+1表示所述子图像ID的语法元素的长度。
8.根据权利要求1至7任一项所述的方法,其特征在于,当所述第二标志等于1时,表示所述slice布局的相关信息在PPS中指示;当所述第二标志等于0时,表示所述slice布局的相关信息不在PPS中指示。
9.一种视频译码设备,其特征在于,包括:
处理器、和耦合到所述处理器的接收器,其中:
所述接收器接收码流,所述码流中包括序列参数集SPS和图像参数集PPS,所述SPS中包括第一标志,所述第一标志用于指示编码侧视频序列CLVS中是否存在子图像信息,所述第一标志还用于指示所述CLVS中每个图像均包含多个子图像或所述每个图像中只包含一个子图像;所述码流中的图像被划分为多个条带slice,所述PPS中包括第二标志,所述第二标志用于指示slice布局的相关信息是否在PPS中指示,所述slice布局的相关信息包括所述多个条带中的每个条带的条带ID;
所述处理器从所述码流中解析所述第一标志,当所述码流为通过子码流提取过程从包含子图像集的输入码流中提取的码流,且所述提取的码流仅包含所述输入码流的所述子图像的子集时,所述第一标志被设置为1,以表示所述CLVS中存在所述子图像信息,并且所述CLVS的每个图像均包含多个子图像;
所述处理器还用于:
从所述码流中解析所述第二标志;
根据所述第一标志对所述子图像的所述子集进行解码;
根据所述第二标志对所述多个条带进行解码。
10.根据权利要求9所述的设备,其特征在于,所述处理器还用于从所述码流中获取所述子图像的所述子集的一个或多个子图像标识符ID。
11.根据权利要求10所述的设备,其特征在于,所述处理器还用于从所述码流中获取包含所述一个或多个子图像ID的语法元素的长度。
12.根据权利要求11所述的设备,其特征在于,所述子图像ID和所述长度从所述提取的码流中的序列参数集SPS中获取。
13.根据权利要求9至12任一项所述的设备,其特征在于,所述第一标志是子图像信息存在标志(subpic_info_present_flag)。
14.根据权利要求10至13任一项所述的设备,其特征在于,所述子图像ID包含在SPS子图像标识符(sps_subpic_id[i])语法元素中。
15.根据权利要求11或12所述的设备,其特征在于,所述处理器还用于从所述码流中获取SPS子图像ID长度减一(sps_subpic_id_len_minus1)语法元素,其中sps_subpic_id_len_minus1+1表示所述子图像ID的语法元素的长度。
16.根据权利要求9至15任一项所述的设备,其特征在于,当所述第二标志等于1时,表示所述slice布局的相关信息在PPS中指示;当所述第二标志等于0时,表示所述slice布局的相关信息不在PPS中指示。
17.一种非瞬时性计算机可读介质,其特征在于,所述非瞬时性计算机可读介质中存储有计算机可执行指令,当所述计算机可执行指令由计算机或处理器执行时,使得视频译码设备执行根据权利要求1至8中任一项所述的方法。
18.一种解码器,其特征在于,包括:
接收模块,用于接收码流,所述码流中包括序列参数集SPS和图像参数集PPS,所述SPS中包括第一标志,所述第一标志用于指示编码侧视频序列CLVS中是否存在子图像信息,所述第一标志还用于指示所述CLVS中每个图像均包含多个子图像或所述每个图像中只包含一个子图像;所述码流中的图像被划分为多个条带slice,所述PPS中包括第二标志,所述第二标志用于指示slice布局的相关信息是否在PPS中指示,所述slice布局的相关信息包括所述多个条带中的每个条带的条带ID;
获取模块,用于从所述码流中获取所述第一标志,当所述码流为通过子码流提取过程从包含子图像集的输入码流中提取的码流,且所述提取的码流仅包含所述输入码流的所述子图像的子集时,所述第一标志被设置为1,以表示所述CLVS中存在所述子图像信息,并且所述CLVS的每个图像均包含多个子图像;
所述获取模块,还用于从所述码流中获取所述第二标志;
解码模块,用于根据所述第一标志对所述子图像的所述子集进行解码,以及根据所述第二标志对所述多个条带进行解码。
19.根据权利要求18所述的解码器,其特征在于,所述解码器还用于执行根据权利要求2至8中任一项所述的方法。
CN202211290464.1A 2019-07-05 2020-06-15 使用标识符指示的视频译码码流提取 Pending CN115720266A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962870892P 2019-07-05 2019-07-05
US62/870,892 2019-07-05
CN202080045816.XA CN114026872B (zh) 2019-07-05 2020-06-15 一种视频编解码方法、编解码器以及译码设备
PCT/US2020/037780 WO2021006998A1 (en) 2019-07-05 2020-06-15 Video coding bitstream extraction with identifier signaling

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080045816.XA Division CN114026872B (zh) 2019-07-05 2020-06-15 一种视频编解码方法、编解码器以及译码设备

Publications (1)

Publication Number Publication Date
CN115720266A true CN115720266A (zh) 2023-02-28

Family

ID=74114987

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202080045816.XA Active CN114026872B (zh) 2019-07-05 2020-06-15 一种视频编解码方法、编解码器以及译码设备
CN202211290668.5A Pending CN115866259A (zh) 2019-07-05 2020-06-15 使用标识符指示的视频译码码流提取
CN202210136520.XA Active CN114650428B (zh) 2019-07-05 2020-06-15 使用标识符指示的视频译码码流提取的方法、设备和介质
CN202211290464.1A Pending CN115720266A (zh) 2019-07-05 2020-06-15 使用标识符指示的视频译码码流提取

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN202080045816.XA Active CN114026872B (zh) 2019-07-05 2020-06-15 一种视频编解码方法、编解码器以及译码设备
CN202211290668.5A Pending CN115866259A (zh) 2019-07-05 2020-06-15 使用标识符指示的视频译码码流提取
CN202210136520.XA Active CN114650428B (zh) 2019-07-05 2020-06-15 使用标识符指示的视频译码码流提取的方法、设备和介质

Country Status (12)

Country Link
US (2) US11968400B2 (zh)
EP (1) EP3977746A4 (zh)
JP (1) JP2022540397A (zh)
KR (1) KR20220024932A (zh)
CN (4) CN114026872B (zh)
AU (1) AU2020311841A1 (zh)
BR (1) BR112021026875A2 (zh)
CA (1) CA3145887A1 (zh)
CL (1) CL2022000003A1 (zh)
MX (1) MX2022000139A (zh)
WO (1) WO2021006998A1 (zh)
ZA (1) ZA202201161B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11716488B2 (en) 2019-09-20 2023-08-01 Qualcomm Incorporated Subpicture signaling in high-level syntax for video coding
US11936880B2 (en) * 2019-09-27 2024-03-19 Tencent America LLC Method for signaling output subpicture layer set
US11509938B2 (en) * 2019-11-05 2022-11-22 Hfi Innovation Inc. Method and apparatus of signaling subpicture information in video coding

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1336967A1 (en) * 2002-02-15 2003-08-20 Deutsche Thomson-Brandt Gmbh Method and apparatus for addressing data segments on a recording medium for replay
JP5026092B2 (ja) 2007-01-12 2012-09-12 三菱電機株式会社 動画像復号装置および動画像復号方法
US8542737B2 (en) * 2010-03-21 2013-09-24 Human Monitoring Ltd. Intra video image compression and decompression
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
WO2013109178A1 (en) * 2012-01-20 2013-07-25 Telefonaktiebolaget L M Ericsson (Publ) Sub-bitstream extraction
US20140003504A1 (en) * 2012-07-02 2014-01-02 Nokia Corporation Apparatus, a Method and a Computer Program for Video Coding and Decoding
US10110890B2 (en) * 2012-07-02 2018-10-23 Sony Corporation Video coding system with low delay and method of operation thereof
KR101678321B1 (ko) 2012-07-02 2016-11-21 노키아 테크놀로지스 오와이 비디오 코딩을 위한 방법 및 장치
US9241158B2 (en) * 2012-09-24 2016-01-19 Qualcomm Incorporated Hypothetical reference decoder parameters in video coding
US9154785B2 (en) 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
KR101930896B1 (ko) 2013-10-22 2018-12-19 후아웨이 테크놀러지 컴퍼니 리미티드 이미지 디코딩 장치 및 이미지 디코딩 방법
EP3090550A1 (en) 2014-01-02 2016-11-09 VID SCALE, Inc. Sub-bitstream extraction process for hevc extensions
US9930340B2 (en) 2014-06-20 2018-03-27 Qualcomm Incorporated Systems and methods for selectively performing a bitstream conformance check
US10284867B2 (en) 2014-12-18 2019-05-07 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
WO2018221368A1 (ja) * 2017-05-31 2018-12-06 シャープ株式会社 動画像復号装置、及び動画像符号化装置
EP4325849A3 (en) * 2018-11-22 2024-04-17 Beijing Bytedance Network Technology Co., Ltd. Coordination method for sub-block based inter prediction
WO2020197236A1 (ko) * 2019-03-24 2020-10-01 엘지전자 주식회사 서브 픽처 핸들링 구조 기반 영상 또는 비디오 코딩
KR20220002991A (ko) * 2019-04-25 2022-01-07 오피 솔루션즈, 엘엘씨 글로벌 모션을 갖는 프레임들에서의 적응적 모션 벡터 예측 후보들

Also Published As

Publication number Publication date
JP2022540397A (ja) 2022-09-15
ZA202201161B (en) 2022-10-26
CL2022000003A1 (es) 2022-08-26
EP3977746A4 (en) 2022-08-03
US20240137569A1 (en) 2024-04-25
KR20220024932A (ko) 2022-03-03
US20220132170A1 (en) 2022-04-28
CN115866259A (zh) 2023-03-28
EP3977746A1 (en) 2022-04-06
CN114650428B (zh) 2023-05-09
MX2022000139A (es) 2022-02-17
WO2021006998A1 (en) 2021-01-14
NZ784074A (en) 2024-02-23
CN114650428A (zh) 2022-06-21
BR112021026875A2 (pt) 2022-02-22
US20240236376A9 (en) 2024-07-11
CN114026872A (zh) 2022-02-08
CN114026872B (zh) 2022-12-06
AU2020311841A1 (en) 2022-02-03
US11968400B2 (en) 2024-04-23
CA3145887A1 (en) 2021-01-14

Similar Documents

Publication Publication Date Title
CN112703743B (zh) 视频译码中的条带和分块
CN115442595B (zh) 一种码流解码的方法、解码器及存储码流的设备
CN114073073B (zh) 一种支持混合nal单元的编解码方法和编解码器
CN113330745A (zh) 视频译码中的子图像标识符指示
CN113261288A (zh) 视频译码中的灵活分块指示
CN114556938B (zh) 基于子图像的视频译码中的子图像id指示
CN114026872B (zh) 一种视频编解码方法、编解码器以及译码设备
CN114430907A (zh) 在多层视频码流中支持在接入单元内包括混合irap图像和非irap图像
CN113273196A (zh) 视频译码中的分块组指示
CN113330746B (zh) 视频译码中用于光栅扫描分块组和矩形分块组的分块组分配
CN117956190A (zh) 视频译码中的显式地址指示
CN113228519A (zh) 任意和环绕分块分组
RU2819291C2 (ru) Извлечение битового потока видеокодирования с помощью сигнализации идентификаторов
RU2827654C1 (ru) Сигнализация id подызображений при кодировании видео на основе подызображений
RU2792176C2 (ru) Кодер видео, декодер видео и соответствующие способы
CN114175638A (zh) 视频译码中的alf aps约束

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