CN111837397B - 基于子图像码流的视角相关视频编码中的错误消除的码流指示 - Google Patents

基于子图像码流的视角相关视频编码中的错误消除的码流指示 Download PDF

Info

Publication number
CN111837397B
CN111837397B CN201980018319.8A CN201980018319A CN111837397B CN 111837397 B CN111837397 B CN 111837397B CN 201980018319 A CN201980018319 A CN 201980018319A CN 111837397 B CN111837397 B CN 111837397B
Authority
CN
China
Prior art keywords
sub
video
image
indication
combinable
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.)
Active
Application number
CN201980018319.8A
Other languages
English (en)
Other versions
CN111837397A (zh
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 CN111837397A publication Critical patent/CN111837397A/zh
Application granted granted Critical
Publication of CN111837397B publication Critical patent/CN111837397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • 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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/46Embedding additional information in the video signal during the compression process
    • 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

Abstract

本发明公开了一种针对视角相关视频编码的视频编码机制。所述机制包括将球形视频序列映射成多个子图像视频序列。所述机制还包括将所述多个子图像视频序列编码为多个子图像码流,以支持合并所述多个子图像码流。所述编码确保所述多个子图像码流中的每个子图像码流都是自参考的;所述多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成一个视频码流,所述轻量级码流重写过程不改变任何块级编码结果。对一个可合并指示进行编码,以指示包括所述可合并指示的子图像码流适用于多码流合并功能,以用于重建所述球形视频序列。将一个包括所述多个子图像码流和所述可合并指示的集合发送到解码器,以支持解码和显示虚拟现实视频视角。

Description

基于子图像码流的视角相关视频编码中的错误消除的码流 指示
技术领域
本发明大体上涉及虚拟现实(virtual reality,VR)视频编码,具体涉及将VR图像码流编码为多个子图像码流以支持视角相关视频编码时的错误避免机制的指示。
背景技术
当数据要在带宽容量有限的通信网络中发送或以其它方式传输时,可能会比较困难,因为即使在视频较短的情况下也需要对大量视频数据进行描述。因此,视频数据通常要先压缩,然后在现代电信网络中传输。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在源侧使用软件和/或硬件,以在传输或存储之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩的数据。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
在一个实施例中,本发明包括一种在视频编码设备中实现的方法。所述方法包括:处理器将球形视频序列映射成多个子图像视频序列,所述球形视频序列由多个方向视频序列拼接而成,所述多个子图像视频序列中的每个子图像视频序列都包括子图像序列。所述方法还包括:所述处理器将所述多个子图像视频序列编码为多个子图像码流,以支持合并所述多个子图像码流,所述编码确保所述多个子图像码流中的每个子图像码流都是自参考的,所述多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成一个视频码流,所述轻量级码流重写过程不涉及改变任何块级编码结果。所述方法还包括:所述处理器将可合并指示编码在所述多个子图像码流中的至少一个子图像码流内,所述可合并指示表示包括所述可合并指示的所述子图像码流适用于多码流合并功能,以重建所述球形视频序列或其一部分。所述方法还包括:所述视频编码设备中的发送器将一个包括所述多个子图像码流和所述可合并指示的集合发送到解码器,以支持解码和显示虚拟现实视频视角。一个虚拟现实(virtual reality,VR)图像流可以被划分成多个子图像流,以选择性地发送给用户。在帧间预测过程中,为了防止所述多个子图像流中的一些子图像流丢失或以不同的分辨率发送时产生解码错误,可以限制所述多个子图像流为完全自参考并且在时间上同步。这有助于解码器通过轻量级合并过程将这些流进行合并。本实施例使用码流级指示向所述解码器指示各种子图像码流轨迹适用于所述轻量级合并过程。相应地,所述解码器可以通过所述轻量级合并过程使用标头信息合并所述多个子图像码流,而不需要改变块级编码结果,以考虑由于运动矢量跨越子图像流边界而发生的帧间预测相关伪影。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在补充增强信息(supplemental enhancement information,SEI)消息中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在时间运动约束分块集(motion constrained tile set,MCTS)SEI消息中,其中,虽然所述球形视频序列中的一个图像包括一个分块,但还是使用所述时间MCTS SEI消息,所述分块是一个MCTS。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述时间MCTS SEI消息中的each_tile_one_tile_set_flag设置为1。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述SEI消息为轻量级合并指示SEI消息。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述SEI消息还表示通过将每个子图像码流的图像参数集(picture parameter set,PPS)中的entropy_coding sync_enabled flag设置为0,禁用波前并行处理。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示为一个语法元素,作为视频可用信息(video usability information,VUI)包括在序列参数集(sequence parameter set,SPS)中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示为一个语法元素,作为VUI包括在视频参数集(video parameter set,VPS)中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在档次/层/级语法结构中的通用档次兼容标志集与通用级标识码之间。
在一个实施例中,本发明包括一种非瞬时性计算机可读介质。所述非瞬时性计算机可读介质包括视频编码设备使用的计算机程序产品;所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令;在处理器执行所述计算机可执行指令时,所述视频编码设备器执行任一上述方面所述的方法。
在一个实施例中,本发明包括视频编码设备。所述视频编码设备包括处理器。所述处理器用于将球形视频序列映射成多个子图像视频序列,所述球形视频序列由多个方向视频序列拼接而成,所述多个子图像视频序列中的每个子图像视频序列都包括子图像序列。所述处理器将所述多个子图像视频序列编码为多个子图像码流,以支持合并所述多个子图像码流,所述编码确保所述多个子图像码流中的每个子图像码流都是自参考的,所述多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成一个视频码流,所述轻量级码流重写过程不涉及改变任何块级编码结果。所述处理器还用于将可合并指示编码在所述多个子图像码流中的至少一个子图像码流内,所述可合并指示表示包括所述可合并指示的所述子图像码流适用于多码流合并功能,以重建所述球形视频序列或其一部分。所述视频编码设备还包括与所述处理器耦合的发送器。所述发送器用于将一个包括所述多个子图像码流和所述可合并指示的集合发送到解码器,以支持解码和显示虚拟现实视频视角。一个VR图像流可以被划分成多个子图像流,以选择性地发送给用户。在帧间预测过程中,为了防止所述多个子图像流中的一些子图像流缺失或以不同的分辨率发送时产生解码错误,可以限制所述多个子图像流为完全自参考并且在时间上同步。这有助于解码器通过轻量级合并过程将这些流进行合并。本实施例使用码流级指示向所述解码器指示各种子图像码流轨迹适用于所述轻量级合并过程。相应地,所述解码器可以通过所述轻量级合并过程使用标头信息合并所述多个子图像码流,而不需要改变块级编码结果,以考虑由于跨越子图像流边界的运动矢量而发生的帧间预测相关伪影。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在SEI消息中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在时间MCTS SEI消息中,其中,虽然所述球形视频序列的图像中包括一个分块,但还是使用所述时间MCTS SEI消息,所述分块是一个MCTS。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述时间MCTS SEI消息中的each_tile_one_tile_set_flag设置为1。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述SEI消息为轻量级合并指示SEI消息。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述SEI消息还表示通过将每个子图像码流的PPS中的entropy_coding_sync_enabled_flag设置为0,禁用波前并行处理。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示为一个语法元素,作为VUI包括在SPS中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示为一个语法元素,作为VUI包括在VPS中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在档次/层/级语法结构中的通用档次兼容标志集与通用级标识码标志之间。
在一个实施例中,本发明包括视频编码设备。所述视频编码设备包括映射模块。所述映射模块用于将球形视频序列映射成多个子图像视频序列,所述球形视频序列由多个方向视频序列拼接而成,所述多个子图像视频序列中的每个子图像视频序列都包括子图像序列。所述视频编码设备还包括视频流编码模块。所述视频流编码模块用于将所述多个子图像视频序列编码为多个子图像码流,以支持合并所述多个子图像码流,所述编码确保所述多个子图像码流中的每个子图像码流都是自参考的,所述多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成一个视频码流,所述轻量级码流重写过程不涉及改变任何块级编码结果。所述视频编码设备还包括可合并指示模块。所述可合并指示模块用于将可合并指示编码在所述多个子图像码流中的至少一个子图像码流内,所述可合并指示表示包括所述可合并指示的所述子图像码流适用于多码流合并功能,以重建所述球形视频序列或其一部分。所述视频编码设备还包括发送模块。所述发送模块用于将一个包括所述多个子图像码流和所述可合并指示的集合发送到所述解码器,以支持解码和显示虚拟现实视频视角。可以将一个VR图像流划分成多个子图像流,以选择性地发送给用户。在帧间预测过程中,为了防止所述多个子图像流中的一些子图像流丢失或以不同的分辨率发送时产生解码错误,可以限制所述多个子图像流为完全自参考并且在时间上同步。这有助于解码器通过轻量级合并过程将这些流进行合并。本实施例使用码流级指示向所述解码器指示各种子图像码流轨迹适用于所述轻量级合并过程。相应地,所述解码器可以通过所述轻量级合并过程使用标头信息合并所述多个子图像码流,而不需要改变块级编码结果,以考虑由于运动矢量跨越子图像流边界而发生的帧间预测相关伪影。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在SEI消息中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在时间MCTS SEI消息中,其中,虽然所述球形视频序列中的一个图像包括一个分块,但还是使用所述时间MCTS SEI消息,所述分块是一个MCTS。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述时间MCTS SEI消息中的each_tile_one_tile_set_flag设置为1。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述SEI消息为轻量级合并指示SEI消息。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述SEI消息还表示通过将每个子图像码流的图像参数集(picture parameter set,PPS)中的entropy_coding_sync_enabled_flag设置为0,禁用波前并行处理。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示为一个语法元素,作为VUI包括在SPS中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示为一个语法元素,作为VUI包括在VPS中。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述可合并指示包括在档次/层/级语法结构中的通用档次兼容标志集与通用级标识码标志之间。
在一个实施例中,本发明包括一种方法。所述方法包括对图像使用时间运动约束分开集SEI消息。所述方法还包括将激活PPS中的tiles_enabled_flag设置为0,以指示所述图像只包括一个分块。所述方法还包括将each_tile_one_tile_set_flag的值设置为1。
为清楚起见,任一上述实施例可以与上述其它任一或多个实施例结合以创建在本发明范围内的新实施例。
通过以下结合附图和权利要求书进行的详细描述,将更清楚地理解这些和其它特征。
附图说明
为了更全面地理解本发明,现在参考下文结合附图和详细说明进行的简要描述,其中,相似的参考数字代表相似的部件。
图1为用于VR视频编码的示例性系统的示意图。
图2为将VR图像码流编码为多个子图像码流的示例性方法的流程图。
图3为对包括子图像视频流的视频信号进行编码的示例性方法的流程图。
图4为用于视频编码的示例性编码和解码(编解码)系统的示意图。
图5为示例性视频编码器的框图,该视频编码器可以对子图像码流进行编码。
图6为示例性视频解码器的框图,该视频编码器可以对子图像码流进行解码。
图7为对VR图像视频流划分得到的多个子图像视频流的示意图。
图8为单向帧间预测的一个示例的示意图。
图9为双向帧间预测的一个示例的示意图。
图10为基于块的视频编码机制的一个示例的示意图。
图11为用于传输视频编码的示例性码流的示意图。
图12为用于码流级指示的示例性方法的示意图,码流级指示表示多个子图像码流能够通过多码流合并功能进行合并。
图13为示例性视频编码设备的示意图。
图14为用于码流级指示的示例性视频编码设备的示意图,码流级指示表示多个子图像码流能够通过多码流合并功能进行合并。
图15为用于码流级指示的示例性方法的示意图,码流级指示表示多个子图像码流能够通过多码流合并功能进行合并。
具体实施方式
首先应理解,尽管下文提供一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可以在所附权利要求书的范围以及其等效物的完整范围内修改。
本发明涉及VR。VR也可以称为全向媒体、浸入式媒体和360度媒体。VR是一种发生在模拟环境中且利用视觉、音频和/或触觉反馈的交互式记录和/或计算机生成的体验。从视觉角度来看,VR呈现一个图像球体(或一个图像球体的一部分),用户位于该球体的中心。头戴式显示器(head mounted display,HMD)可以呈现该图像球体。具体地,HMD向用户提供该球体的视场角(field of view,FOV),该FOV也称为视角。因此,用户能够通过该视角观看球体的一部分,并且移动自己的头部,动态地改变视角位置。这给人一种处于该球体限定的环境中的效果。用户的每只眼睛看到的是以偏移的方式呈现的球体,给用户带来一种三维空间的感觉。每个图像(也称为帧)既包括该球体在用户FOV之内的区域,也包括该球体在用户FOV之外的区域。因此,与非VR视频图像相比,VR帧包括明显更多的数据。
为了生成VR视频流,多维摄像机阵列同时从所有相关角度记录球体。这样产生了多个方向视频流,将这些多个方向视频流进行组合,产生一个球形视频流,用作VR视频流。为了压缩该VR视频流,该VR视频流中的每个帧可以被划分成预定义形状的多个子图像。该预定义形状可以是矩形、正方形或其它形状。此类子图像产生多个子图像视频流,然后,这些多个子图像视频流可以进行编码并发送给用户,以进行解码、重建成VR视频流并基于视角显示给用户。一种确保正确进行重建的机制涉及以相同的分辨率对每个子图像视频流进行编码。但是,仍然会导致文件非常大。
视角相关编码是一种示例性压缩技术,能够进一步减小VR视频流的文件大小(例如,支持VR视频流式传输)。视角相关编码使用以下概念:用户在任何时间都只观看球体在视角内的那部分。因此,用户FOV以外的区域可以以较低分辨率传输(例如,远离当前FOV,则分辨率下降)。子图像视频流的分辨率可以随着FOV的移动而动态地增大或减小,例如,动态地选择不同分辨率的不同子图像视频流表示。这种方法通过降低用户看不到的球体区域(例如,认为是背景区域和在编码时不太重要的区域)的视频质量来减小VR视频流的总文件大小。
在一些情况下,视角相关编码可能会产生视频编码错误。例如,视频流(例如,子图像视频流)可以通过帧间预测进行编码。在帧间预测过程中,多个帧中出现的像素块(例如,表示一个对象)可以被编码为一个运动矢量,这个运动矢量从当前块指向不同帧中的另一个像素块。通过这种方式,多个帧中出现的块可以被编码一次(例如,通过帧内预测),然后,一系列运动矢量都参考这个块,以便减少冗余,从而减小文件大小。帧间预测有多种模式。在合并模式和高级运动矢量预测(advance motion vector prediction,AMVP)模式等一些模式中,根据相邻块为当前块生成候选运动矢量列表。在此类模式中,通过指示候选列表中的索引来指示选择的运动矢量。这样,整个像素块可以编码为一个索引值。使用候选列表对不同分辨率和/或帧率的相邻子图像视频流进行帧间预测,在视角相关编码中会出现问题。具体地,为第一子图像视频流的边缘的块生成的候选列表可能依赖于相邻的第二子图像视频流的对应边缘处使用的运动矢量。当第一子图像视频流和第二子图像视频流以不同的分辨率/帧率传输时,可能会出现分辨率相关数据不匹配,导致候选列表中包括不预期的运动矢量值(或缺失预期值)。这样导致解码器生成不正确的候选列表,从而导致对候选列表索引的错误判断。对候选列表索引的错误判断导致解码后的子图像视频流存在错误,从而导致显示给用户的VR视频流出现错误。如果一个子图像视频流中的运动矢量参考另一个子图像视频流中的像素点,则可能发生类似问题,因为该像素点可能不可用和/或分辨率降低。另外,视频编解码器可以使用波前并行处理(wavefront parallel processing,WPP)来并行地对视频图像中的块进行编码/解码。然而,WPP会影响块级编码机制,因此根据WPP以不同分辨率解码图像的不同部分会产生其它错误。
当对根据视角相关编码机制编码的VR视频流中的子图像视频流进行帧间预测时,可以使用各种机制来消除在帧间预测过程中使用候选列表所产生的错误。例如,在对子图像视频信号进行编码时,该子图像视频信号的子图像中的当前块只能参考同一子图像视频流中的整像素点位置上的参考块中的参考像素点,所以不能参考其它子图像视频流中的整像素点位置或分数像素点位置。这既适用于帧内预测,也适用于帧间预测。此外,只有当可以通过仅根据同一子图像码流中的整像素点位置和/或分数像素点位置进行插值来重新创建分数像素点位置上的像素点时,才可以参考子图像视频流中的分数像素点位置。此外,在进行帧间预测时,相邻子图像码流中的块的运动矢量不包括在候选运动矢量列表中。这些限制确保能够在不参考相邻子图像码流的情况下对每个子图像码流进行解码,因此避免了分辨率不匹配问题。此外,WPP不能与子图像码流一起使用。例如,可以将每个图像参数集(picture parameter set,PPS)中的entropy_coding_sync_enabled_flag设置为0,对子图像视频流禁用WPP。此外,通过确保包括子图像视频流的轨迹具有相同的呈现时间,并确保普通VR图像中的每个像素点使用相同的图像顺序编号值,即使这些像素点被划分成不同的子图像码流和/或携带在不同轨迹中,也可以避免子图像码流之间的时序不匹配问题。
通过上述机制或其组合,确保每个子图像码流都是自参考的,这里也称为自成一体。自参考/自成一体的子图像码流以完全自参考的方式进行编码,因此可以在不参考其它子图像码流的情况下进行解码。自参考的子图像码流可以被解码并与其它子图像码流进行合并,以根据轻量级合并功能重建球形视频流,下文将详细描述。轻量级合并功能也可以称为轻量级码流重写过程。通过轻量级合并功能,根据图像编号和子图像位置定位并合并每个流中的子图像,不需要检查和/或改变每个子图像视频流的块级编码结果。只要解码器知道轻量级合并功能可以应用于一个对应的子图像码流集,而不产生编码伪影,则这种方法使解码器使用的计算资源明显减少。
本文公开了多种机制,以通知解码器子图像码流都是自参考的,因此可以通过轻量级合并功能重建成球形视频流。具体地,可合并指示可以用于指示轻量级合并功能可以应用于子图像码流。编码器可以将可合并指示包括在相应的子图像码流中。例如,可合并指示可以包括在补充增强信息(supplemental enhancement information,SEI)消息中。SEI消息可以是时间运动约束分块集(motion constrained tile set,MCTS)SEI消息和/或轻量级合并SEI消息等。在其它示例中,可合并指示可以作为数据包括在相应子图像码流的视频参数集(video parameter set,VPS)和/或序列参数集(sequence parameter set,SPS)中。在一个具体示例中,可合并指示可以包括在VPS和/或SPS中,作为视频可用信息(videousability information,VUI)。在另一个具体示例中,可合并指示可以包括在档次/层/级语法结构(profile tier level syntax structure)中的VPS和/或SPS中,作为通用档次兼容标志(general profile compatibility flag)与通用级标识码(identification code,idc)标志(general level identification code flag)之间的轻量级合并指示标志。通过上述指示机制,一个实体支持将多个子图像码流重写/合并成一个标准虚拟现实视频码流,在不需要改变每个子图像码流的块编码结果的情况下,该实体能够判断某些子图像码流是否可以合并/重写成一个标准视频码流,以考虑由于子图像码流分辨率变化而发生的视角相关编码伪影。
图1为用于VR视频编码的示例性系统100的示意图。系统100包括多方向摄像机101、包括编码器103的VR编码设备104、解码器107和呈现设备109。多方向摄像机101包括摄像机设备阵列。每个摄像机设备指向不同的角度,这样,多方向摄像机101能够从多个角度拍摄周围环境的多个方向视频流。例如,多方向摄像机101能够将环境拍摄成球体,多方向摄像机101位于该球体的中心。此处使用的“球体”和/或“球形视频”既指几何球体又指几何球体的子部分,例如,球缺、球形穹面、球截形等。例如,多方向摄像机101可以拍摄180度视频以覆盖一半环境,这样,制作人员能够保持在多方向摄像机101的后面。多方向摄像机101还能够在360度(或360度范围内的任意子集)内拍摄视频。然而,可能会忽略多方向摄像机101下方的一部分地板,导致视频不是一个完整的球体。因此,此处使用的术语“球体”是为了清楚论述而使用的通用术语,不应视为从几何角度进行限制。
将多方向摄像机101拍摄的视频转发给VR编码设备104。VR编码设备104可以是包括专用VR编码软件的计算系统。VR编码设备104可以包括编码器103。在一些示例中,编码器103也可以包括在独立于VR编码设备104的计算机系统中。VR编码设备104用于将多个方向视频流转换成一个包括多个方向视频流的视频流,包括从所有相关角度记录的整个区域。这种转换可以称为图像拼接。例如,可以将同时捕获的每个视频流中的帧拼接在一起以生成单个球形图像。其次,球形视频流可以从球形图像中生成。为了清楚论述,需要说明的是,术语“帧”和“图像(picture/image)”在本文中可互换使用,除非特别说明。
接着,可以将球形视频流转发给编码器103,以进行压缩。编码器103是能够将信息从一种格式转换到另一种格式的设备和/或程序,目的是进行标准化、加速和/或压缩。标准化编码器103用于对矩形图像和/或方形图像进行编码。因此,编码器103用于将球形视频流中的每个球形图像映射成预定义形状的多个子图像。该预定义形状可以是矩形、正方形或其它二维几何形状。虽然球形图像可以被映射成任何形状的子图像,但是为了清晰和简洁,下文就用矩形来指代子图像。但是,不能认为用矩形就丢失了原有的子图像的上下文指示。在完成映射之后,可以将子图像放置在单独的子图像视频流中。因此,每个子图像视频流显示随时间变化的图像流,每个子图像视频流记录了球形视频流的一部分。最后,编码器103可以对每个子图像视频流进行编码,以将视频流压缩成可管理的文件大小。下面进一步详细论述编码过程。一般而言,编码器103将每个子图像视频流中的每一帧分割成像素块,通过帧间预测和/或帧内预测来压缩像素块以生成包括预测块和残差块的编码块,对残差块进行变换以进一步压缩,并使用各种滤波器对这些块进行滤波。压缩块以及对应的语法采用ISOBMFF和/或全向媒体格式(omnidirectional media format,OMAF)等存储在码流中。
VR编码设备104可以将编码码流存储在本地存储器和/或服务器上的存储器中,以便按需传送到解码器107。这些数据可以经由网络105转发。网络105可以包括互联网、移动通信网(例如,基于长期演进(long term evolution,LTE)的数据网络)或其它数据通信数据系统。
解码器107是位于用户位置上的设备,用于执行编码过程的逆过程,根据编码码流重建子图像视频流。解码器107还合并子图像视频流以重建球形视频流。然后,可以将球形视频流或其各部分转发给呈现设备109。呈现设备109是用于向用户显示球形视频流的设备。例如,呈现设备109可以包括固定在用户头部并遮挡用户眼睛的HMD。呈现设备109可以包括每只眼睛对应的屏幕、摄像机、运动传感器、扬声器等,并且可以通过无线连接和/或有线连接与解码器107进行通信。呈现设备109可以向用户显示球形视频流的一部分。示出的这部分是根据呈现设备的FOV和/或视角拍摄的。例如,呈现设备109可以使用运动跟踪传感器根据用户头部移动来改变FOV的位置。这样,用户能够根据头部移动看到球形视频流的不同部分。此外,呈现设备109可以根据用户的瞳间距离(interpupillary distance,IPD)来调整每只眼睛对应的FOV,从而产生三维空间的效果。
需要说明的是,球形视频流、子图像视频流等视频流也可以称为视频信号、视频序列等。在编码时,视频流可以称为码流。多方向也可以称为多个方向。另外,帧和子帧也可以分别称为图像和子图像。
图2为通过系统100中的组件等将VR图像码流编码为多个子图像码流的示例性方法200的流程图。在步骤201中,使用多方向摄像机101等多方向摄像机组来捕获多个方向视频流。所述多个方向视频流包括环境在不同角度的视图。例如,所述多个方向视频流可以包括在水平平面上围绕摄像机以360度、180度、240度等捕获的视频,所述多方向视频流还可以包括在垂直平面上围绕摄像机以360度、180度、240度等捕获的视频。结果是,产生了视频,该视频包括的信息足以覆盖某段时间内摄像机周围的球形区域。
在步骤203中,在时域同步所述多个方向视频流。具体地,每个方向视频流包括在对应角度拍摄的一系列图像。确保对每个方向视频流中的在同一时域位置上捕获到的帧进行统一处理,这样多个方向视频流得到同步。然后,可以在空域将方向视频流中的帧拼接在一起,生成球形视频流。因此,所述球形视频流中的每个帧都包括从所有方向视频流的帧中获取的数据,这些帧发生在同一时间位置上。
在步骤205中,将所述球形视频流映射成子图像视频流(例如,矩形、方形等)。本过程也可以称为将所述球形视频流投影成矩形子图像视频流。如上所述,编码器和解码器通常设计为对矩形帧和/或方形帧进行编码。因此,将所述球形视频流映射成子图像视频流产生了视频流,这些视频流可以由非VR特定的编码器和解码器进行编码和解码。需要说明的是,步骤203和步骤205涉及VR视频处理,因此可以由专门的VR硬件、软件或其组合来执行。
在步骤207中,将所述矩形子图像视频流转发给编码器103等编码器。然后,编码器将子图像视频流编码为对应媒体文件格式的子图像码流。具体地,编码器可以将每个子图像视频流当作视频信号。编码器可以通过帧间预测、帧内预测等对每个子图像视频流中的每个帧进行编码。下文结合图3至图14详细论述这种编码和相应的解码以及编码器和解码器。关于文件格式,可以采用ISOBMFF格式存储子图像视频流。例如,以指定的分辨率捕获子图像视频流。然后,将子图像视频流下采样到各种较低的分辨率,以进行编码。每个分辨率都可以称为一种表示。质量较低的表示会导致图像不清晰,但减小了文件大小。因此,与损失视觉质量的高质量表示相比,能够使用较少的网络资源(例如,时间、带宽)向用户传输低质量表示。可以将每个表示存储在对应的轨迹集内。因此,可以将轨迹发送给用户,其中,这些轨迹包括各种分辨率(例如,视觉质量)的子图像码流。
在步骤209中,将子图像码流作为轨迹发送给解码器。在一些示例中,传输相同表示中的轨迹,这样所有子图像码流以相同的质量进行传输。这种方法的缺点是,最终的VR视频流中不太受关注的区域以与所有其它区域相同的分辨率进行传输。视角相关编码可以用于通过这种方法来改进压缩。在视角相关编码中,对于包括具有用户FOV数据的子图像码流的轨迹,选择高质量表示以更高的分辨率发送。对于包括具有用户FOV以外的区域的子图像码流的轨迹,选择低质量表示以逐渐降低的分辨率发送。在一些示例中,甚至可以完全忽略某些区域。例如,如果用户决定改变FOV以包括与FOV相邻的区域,则能够以略微降低的质量发送这些区域。由于远离FOV的区域越来越不可能进入FOV,也就越来越不可能呈现给用户,所以能够以逐渐降低的质量来发送这些区域。轨迹可以包括相对短(例如,大约3秒)的视频片段,因此为该视频的特定区域选择的表示可以根据FOV的变化随时间而变化。这样,质量能够随着用户FOV的变化而变化。视角相关编码可以大大减小发送给用户的轨迹的文件大小,而不会明显降低视觉质量,这是因为质量降低的区域不太可能被用户看到。
在步骤211处,解码器107等解码器接收包括子图像码流的轨迹。然后,解码器可以将子图像码流解码为子图像视频流,以进行显示。解码过程涉及编码过程的逆过程(例如,通过帧间预测和帧内预测),下文结合图3至图10进行详细论述。
在步骤213中,解码器可以将所述子图像视频流合并成球形视频流,以显示给用户。具体地,解码器可以使用多码流合并功能,例如,所谓的轻量级合并算法,该算法从每个子图像视频流中选择在同一呈现时间产生的帧并且根据与相应子图像视频流相关的位置和/或角度将这些帧合并在一起。轻量级合并算法可以不改变与子图像的块级编码结果。因此,轻量级合并算法使用的计算资源明显比根据子图像码流对完整球形视频帧进行解码使用的计算资源少。解码器还可以使用滤波器使子图像视频流之间的边缘平滑、去除伪影等。然后,解码器可以将球形视频流转发给呈现设备(例如,呈现设备109)。
在步骤215中,呈现设备呈现所述球形视频流的视角,以显示给用户。如上所述,每个时间点可以不呈现球形视频流中在FOV之外的区域。因此,在视角相关编码中,低质量表示可以有效地被省略,因此,降低观看质量在减小文件大小的同时对用户体验的影响可以忽略不计。
应用于系统100和方法200的视角相关编码减小了文件大小,而不会给用户带来明显的视觉质量损失。然而,在某些情况下,该方法可能会产生视频编码错误。具体地,当子图像视频流具有不同的表示时,扩展到子图像视频流边界的帧间预测和帧内预测可能会产生伪影。这是因为较质量表示是有损的,省略了数据,从而减小了文件大小。高质量子图像视频流可以根据从相邻的低质量子图像视频流中删除的数据对像素进行编码。因此,当这些数据已经从相邻的低质量子图像视频流中删除时,高质量子图像视频流会被错误地解码。本发明包括各种机制,以对子图像视频流的编码进行约束,从而确保每个子图像视频流是自成一体的,因此,当在解码器侧使用轻量级合并算法时不会产生此类错误。图3至图10描述了应用于每个子图像视频流的编码过程和系统。图11至图14描述了各种机制,用于对可合并指示进行编码,以提醒解码器,子图像视频流是自参考的,因此可以通过轻量级合并算法进行重建。
图3为对包括子图像视频流的视频信号进行编码的示例性方法300的流程图。例如,方法300可以包括接收根据方法200中的步骤205获取的多个子图像视频流。在方法300中,将每个子图像视频流当作视频信号输入。在方法300中,对每个子图像视频流执行步骤301至步骤317,以便执行方法200中的步骤207至步骤211。因此,方法300中的输出视频信号包括已解码的子图像视频流,它们可以根据方法200中的步骤213和步骤215进行合并和显示。
在方法300中,编码器对包括子图像视频流等的视频信号进行编码。在所述编码过程中,通过使用各种机制来压缩所述视频信号,以减小视频文件大小。文件较小,压缩视频文件能够发送给用户,同时降低相关带宽开销。然后,解码器对压缩视频文件进行解码,以重建原始视频信号,向终端用户显示。解码过程通常是编码过程的逆过程,使得解码器重建的视频信号与编码器侧的视频信号保持一致。
在步骤301中,将视频信号输入到编码器中。例如,所述视频信号可以是存储在存储器中的未压缩视频文件。又例如,视频文件可以由视频捕获设备(例如,摄像机)捕获,并且进行编码以支持视频的直播流传输。所述视频文件可以同时包括音频分量和视频分量。所述视频分量包括一系列图像帧。按顺序观看这些图像帧时,给人以运动的视觉效果。这些帧包括以光线表示的像素,在本文中称为亮度分量(或亮度像素点),还包括以颜色表示的像素,称为色度分量(或颜色像素点)。
在步骤303中,将视频信号分割成块。分割包括将每个帧中的像素细分成正方形块和/或矩形块,以进行压缩。例如,在高效视频编码(High Efficiency Video Coding,HEVC)(也称为H.265和MPEGH第2部分)中,可以先将帧分成编码树单元(coding tree unit,CTU),这些CTU是预定义大小(例如,64个像素×64个像素)的块。这些CTU同时包括亮度像素点和色度像素点。本文使用的像素点(也称为像素)是图像在对应位置上的值(例如,亮度/光值或色度/色值)。可以使用编码树将CTU分成块,然后,重复地将块进行细分,直到实现支持进一步编码的配置。例如,可以对帧的亮度分量进行细分,直到各个块包括相对均匀的照明值。此外,可以对帧的色度分量进行细分,直到各个块包括相对均匀的色值。因此,分割机制根据视频帧的内容不同而不同。
在步骤305中,使用各种压缩机制对在步骤303中分割的图像块进行压缩。例如,可以采用帧间预测和/或帧内预测。帧间预测利用了这样一个事实:常见场景下的对象往往出现在连续帧中。因此,描述参考帧中的对象的块不需要在相邻帧中进行重复描述。具体地,一个对象(如一张桌子)可以在多个帧中保持恒定的位置。因此,只描述一次桌子,相邻帧可以重新参考所述参考帧。可以使用模式匹配机制来匹配多个帧中的对象。此外,由于对象移动或摄像机移动等原因,移动对象可以通过多个帧表示。在一个特别的示例中,视频可以显示汽车跨屏幕在多个帧中移动。运动矢量可以用来描述这种移动,或者没有这种运动。运动矢量是一个二维矢量,提供对象在一个帧中的坐标与该对象在参考帧中的坐标之间的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集,这些运动矢量指示当前帧中的图像块与参考帧中的对应块的偏移。
帧内预测用于对公共帧中的块进行编码。帧内预测利用亮度分量和色度分量往往在帧中聚集这一事实。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测使用多种方向预测模式(例如,在HEVC中有33种)、平面模式和直流(directcurrent,DC)模式。这些方向模式表示当前块的像素点沿着对应方向与相邻块的像素点相似/相同。平面模式表示根据行边缘处的相邻块对行/列(例如,平面)上的一系列块进行插值。平面模式实际上表示光线/颜色通过使用有数值变化的相对恒定的斜率在行/列之间进行平滑过渡。DC模式用于边界平滑,表示块与所有相邻块的像素点的平均值相似/相同,这些相邻块与方向预测模式的角度方向相关。因此,帧内预测块可以将图像块表示为各种关系预测模式值而不是实际值。此外,帧间预测块可以将图像块表示为运动矢量值而不是实际值。在任一种情况下,预测块在一些情况下可能无法准确表示图像块。任何差异都存储在残差块中。可以对这些残差块进行变换以进一步压缩文件。
在步骤307中,可以使用各种滤波技术。在HEVC中,根据环内滤波方案使用滤波器。上文讨论的基于块的预测可能会在解码器侧产生块状图像。此外,基于块的预测方案可以对块进行编码,然后重建编码块,后续用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块滤波器、自适应环路滤波器和样本自适应偏移(sample adaptive offset,SAO)滤波器应用于块/帧。这些滤波器减轻了块伪影,以便可以准确地重建编码文件。此外,这些滤波器减轻了重建参考块中的伪影,使得伪影不太可能在后续根据重建参考块进行编码的块中产生额外伪影。
一旦视频信号完成分割、压缩和滤波,则在步骤309处,将所得数据编码到码流中。所述码流包括上文论述的数据以及支持在解码器侧进行适当的视频信号重建所需要的任何指示数据(例如,语法)。例如,这些数据可以包括分割数据、预测数据、残差块以及提供编码指令给解码器的各种标志。所述码流可以存储在存储器中,以在请求时作为ISOBMFF的轨迹和/或轨迹片段等发送到解码器。所述码流还可以广播和/或组播到多个解码器。所述码流的产生是一个迭代过程。因此,步骤301、步骤303、步骤305、步骤307和步骤309可以在多个帧和块中连续和/或同时发生。图3所示的顺序是为了清楚和便于论述的目的,并非旨在将视频编码过程限于特定顺序。
在步骤311中,解码器接收所述码流,开始解码过程。例如,解码器可以采用熵解码方案将所述码流转换为对应的语法数据和视频数据。在步骤311中,解码器使用所述码流中的语法数据来确定帧的分割。分割应该与步骤303处的块分割的结果匹配。现在描述在步骤311中采用的熵编码/解码。编码器在压缩过程中进行许多选择,例如,根据一个(多个)输入图像中的值的空间定位从几个可能选择中选择块分割方案。指示确切的选择可能会使用大量的位元。本文所使用的“位元”是被视为变量的二进制值(例如,根据上下文可能变化的位值)。熵编码允许编码器丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配一个码字。码字的长度取决于可使用选项的数量(例如,一个位元对应两个选项,两个位元对应三到四个选项,以此类推)。然后,编码器对所选选项的码字进行编码。本方案减小了码字的大小,因为码字的大小与唯一指示从可使用的选项的小子集中的一个选项,而非唯一指示从所有可能选项的潜在大集中的选项所需要的码字一样大。然后,解码器通过以与编码器类似的方式确定可使用选项的集来对所述选择进行解码。通过确定可使用选项的集,解码器可以读取码字,并确定编码器做出的选择。
在步骤313中,解码器执行块解码。具体地,解码器进行逆变换,生成残差块。然后,解码器使用残差块和对应的预测块,根据分割来重建图像块。预测块可以同时包括编码器在步骤305中生成的帧内预测块和帧间预测块。然后,根据在步骤311中确定的分割数据将重建图像块放置在重建视频信号的帧中。用于步骤313的语法还可以通过上文论述的熵编码在码流中指示。
在步骤315中,以类似于编码器侧的步骤307的方式对重建视频信号的帧执行滤波。例如,可以将噪声抑制滤波器、去块滤波器、自适应环路滤波器和SAO滤波器应用于帧,以去除块伪影。一旦对帧进行了滤波,可以在步骤317中转发视频信号以进行合并,然后输出到HMD等显示器以供终端用户观看。
本发明涉及的修改是为了在根据视角相关编码对VR视频流中的子图像视频流以特定的分辨率进行编码以及以不同的分辨率进行解码时避免产生伪影。步骤305中的块压缩机制会产生此类伪影。本发明还涉及指示子图像码流是以自参考的方式进行编码的,因此轻量级合并功能可以用于对子图像码流进行解码,不会产生此类伪影。因此,本发明改进了编码器在步骤305中进行的块压缩和解码器在步骤313中进行的块解码的功能。这样减小了文件大小,从而提高了编码效率,加快了解码过程,从而降低了处理资源利用率,和/或提高了在解码器侧产生的解码VR视频流的视觉质量。
图4为用于视频编码的示例性编码和解码(编解码)系统400的示意图。具体地,编解码系统400提供功能来支持根据方法200和300对子图像视频流进行编码和解码。此外,编解码系统400可以用于实现系统100中的编码器103和/或解码器107。
编解码系统400普遍适用于描述编码器和解码器中都使用的组件。编解码系统400接收帧并进行分割,形成视频信号(例如,包括子图像视频流),如操作方法300中的步骤301和步骤303所述,产生了分割视频信号401。然后,编解码系统400在作为编码器时将分割视频信号401压缩到编码码流中,如方法300中的步骤305、步骤307和步骤309所述。编解码系统400在作为解码器时从码流中生成输出视频信号,如操作方法300中的步骤311、步骤313、步骤315和步骤317所述。编解码系统400包括通用编码器控制组件411、变换缩放和量化组件413、帧内估计组件415、帧内预测组件417、运动补偿组件419、运动估计组件421、缩放和逆变换组件429、滤波控制分析组件427、环内滤波组件425、解码图像缓冲组件423以及标头格式化和上下文自适应二进制算术编码(context adaptive binary arithmetic coding,CABAC)组件431。这些组件如图所示耦合。在图4中,黑线表示待编码/待解码数据的运动,而虚线表示控制其它组件操作的控制数据的运动。编解码系统400中的组件都可以在编码器中使用。解码器可以包括编解码系统400中的组件的子集。例如,解码器可以包括帧内预测组件417、运动补偿组件419、缩放和逆变换组件429、环内滤波组件425和解码图像缓冲组件423。现在对这些组件进行描述。
分割视频信号401是一个捕获到的视频序列,该视频序列通过编码树分割成像素块。编码树采用各种划分模式将像素块细分成较小的像素块。然后,可以将这些块进一步细分成较小块。得到的块可以称为所述编码树上的节点。将较大的父节点划分成较小的子节点。节点进行细分的次数称为节点/编码树的深度。在某些情况下,划分得到的块称为编码单元(coding unit,CU)。例如,CU可以是CTU的子部分,包括亮度块、红色差色度(reddifference chroma,Cr)块和蓝色差色度(blue difference chroma,Cb)块以及与CU对应的语法指令。划分模式可以包括二叉树(binary tree,BT)、三叉树(triple tree,TT)和四叉树(quad tree,QT),用于将节点分割成不同形状的两个、三个或四个子节点,具体形状取决于所使用的划分模式。将分割视频信号401转发给通用编码器控制组件411、变换缩放和量化组件413、帧内估计组件415、滤波控制分析组件427和运动估计组件421,以进行压缩。
通用编码器控制组件411用于根据应用约束条件决定将视频序列中的图像编码到码流中。例如,通用编码器控制组件411管理对码率/码流大小与重建质量的优化。可以根据存储空间/带宽可用性和图像分辨率请求做出这些决定。通用编码器控制组件411还根据传输速度管理缓冲器利用率,以缓解缓存欠载和超载问题。为了解决这些问题,通用编码器控制组件411管理通过其它组件进行的分割、预测和滤波。例如,通用编码器控制组件411可以动态地增加压缩复杂度以增大分辨率和带宽利用率,或者降低压缩复杂度以减小分辨率和带宽利用率。因此,通用编码器控制组件411控制编解码系统400中的其它组件以平衡视频信号重建质量与码率。通用编码器控制组件411生成控制数据,该控制数据用于控制其它组件的操作。还将控制数据转发给标头格式化和CABAC组件431,以编码到码流中,从而指示解码器进行解码使用的参数。
还将分割视频信号401发送到运动估计组件421和运动补偿组件419,以进行帧间预测。可以将分割视频信号401中的帧或条带划分成多个视频块。运动估计组件421和运动补偿组件419参照一个或多个参考帧中的一个或多个块对所接收到的视频块执行帧间预测编码,以提供时间预测。编解码系统400可以执行多个编码过程,以便为视频数据中的每个块选择合适的编码模式,等等。
运动估计组件421和运动补偿组件419可以高度集成,但是出于概念目的,单独说明。由运动估计组件421执行的运动估计是生成运动矢量的过程,其中,运动矢量用于估计视频块的运动。例如,运动矢量可以指示编码对象相对于预测块的位移。预测块是发现在像素差异方面与待编码块高度匹配的块。预测块也可以称为参考块。这种像素差异可以通过绝对差异和(sum of absolute difference,SAD)、平方差异和(sum of squaredifference,SSD)或其它差异度量来确定。HEVC使用几个编码对象,包括CTU、编码树块(coding tree block,CTB)和CU。例如,可以将CTU分成CTB,然后将CTB分成CB,以包括在CU中。可以将CU编码为包括预测数据的预测单元(prediction unit,PU)和/或包括CU的变换残差数据的变换单元(transform unit,TU)。运动估计组件421使用作为速率失真优化过程一部分的率失真分析来生成运动矢量、PU和TU。例如,运动估计组件421可以为当前块/帧确定多个参考块、多个运动矢量等,并且可以选择率失真特性最佳的参考块、运动矢量等。最佳率失真特性保持视频重建的质量(例如,压缩造成的数据丢失量)和编码效率(例如,最终编码的大小)之间的平衡。
在一些示例中,编解码系统400可以计算存储在解码图像缓冲组件423中的参考图像的子整数像素位置的值。例如,视频编解码系统400可以内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计组件421可以对整像素位置和分数像素位置执行运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件421通过将PU的位置与参考图像中的预测块的位置进行比较,为帧间编码条带中的视频块的PU计算运动矢量。运动估计组件421将计算得到的运动矢量作为运动数据输出到标头格式和CABAC组件431以进行编码,并作为运动数据输出到运动补偿组件419。
由运动补偿组件419执行的运动补偿可以包括根据运动估计组件421所确定的运动矢量获取或生成预测块。在一些示例中,运动估计组件421和运动补偿组件419也可以在功能上集成。在接收到当前视频块的PU的运动矢量时,运动补偿组件419可以定位运动矢量指向的预测块。然后,将预测块的像素值从正在编码的当前视频块的像素值中减去,产生像素差值,从而形成残差视频块。一般而言,运动估计组件421对亮度分量执行运动估计,运动补偿组件419将根据亮度分量计算得到的运动矢量用于色度分量和亮度分量。将预测块和残差块转发给变换缩放和量化组件413。
还将分割视频信号401发送到帧内估计组件415和帧内预测组件417。与运动估计组件421和运动补偿组件419一样,帧内估计组件415和帧内预测组件417可以高度集成,但是出于概念目的,单独说明。帧内估计组件415和帧内预测组件417参照当前帧中的各块对当前块进行帧内预测,以替代如上所述的由运动估计组件421和运动补偿组件419在帧之间执行的帧间预测。具体而言,帧内估计组件415确定帧内预测模式以用于对当前块进行编码。在一些示例中,帧内估计组件415从多个测试的帧内预测模式中选择合适的帧内预测模式对当前块进行编码。然后,将所选择的帧内预测模式转发给标头格式化和CABAC组件431,以进行编码。
例如,帧内估计组件415通过对各种测试的帧内预测模式进行率失真分析来计算率失真值,并在测试的模式中选择率失真特性最佳的帧内预测模式。率失真分析通常确定编码块与为了产生编码块而进行编码的原始未编码块之间的失真(或误差)量,以及确定产生编码块所用的码率(例如,比特数)。帧内估计组件415根据各种编码块的失真和速率计算比值,以确定哪种帧内预测模式得到块的最佳率失真值。另外,帧内估计组件415可以用于根据率失真优化(rate-distortion optimization,RDO)使用深度建模模式(depthmodeling mode,DMM)对深度图中的深度块进行编码。
当在编码器上实现时,帧内预测组件417可以根据帧内估计组件415所确定的选定帧内预测模式从预测块中生成残差块,或者在解码器上实现时,从码流中读取残差块。残差块包括预测块与原始块之间的值差异,以矩阵表示。然后,将残差块转发给变换缩放和量化组件413。帧内估计组件415和帧内预测组件417可以对亮度分量和色度分量执行操作。
变换缩放和量化组件413用于对残差块进行进一步压缩。变换缩放和量化组件413对残差块进行离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discretesine transform,DST)等变换或者进行概念上类似的变换,从而产生包括残差变换系数值的视频块。还可以进行小波变换、整数变换、子带变换或其它类型的变换。变换可以将残差信息从像素值域转换到变换域,例如,频域。变换缩放和量化组件413还用于根据频率等对变换残差信息进行缩放。这种缩放涉及对残差信息施加缩放因子,以便在不同的粒度下对不同的频率信息进行量化,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件413还用于对变换系数进行量化以进一步降低码率。量化过程可以降低与部分或全部系数相关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件413可以对包括量化变换系数的矩阵执行扫描。将量化变换系数转发给标头格式化和CABAC组件431,以编码到码流中。
缩放和逆变换组件429进行与变换缩放和量化组件413相反的操作以支持运动估计。缩放和逆变换组件429进行逆缩放、逆变换和/或反量化以重建像素域中的残差块,例如,后续用作参考块。该参考块可以成为另一当前块的预测块。运动估计组件421和/或运动补偿组件419可以通过将残差块与对应的预测块相加来计算参考块,以用于对后续块/帧进行运动估计。将滤波器应用于重建参考块,以减轻在缩放、量化和变换过程中产生的伪影。在预测后续块时,这些伪影可能会使预测不准确(并产生额外的伪影)。
滤波控制分析组件427和环内滤波组件425将滤波器应用于残差块和/或重建图像块。例如,可以将来自缩放和逆变换组件429的变换残差块与来自帧内预测组件417和/或运动补偿组件419的对应预测块组合以重建原始图像块。然后,可以将滤波器应用于重建图像块。在一些示例中,可以将滤波器应用于残差块。与图4中的其它组件一样,滤波控制分析组件427和环内滤波组件425高度集成,可以一起实现,但是出于概念目的,单独说明。将应用于重建参考块的滤波器应用于特定空间区域,这些滤波器包括用于调整如何使用这些滤波器的多个参数。滤波控制分析组件427分析重建参考块以判断在何处使用滤波器,并设置对应的参数。将这种数据转发给转发给标头格式化和CABAC组件431,用作滤波控制数据以进行编码。环内滤波组件425根据所述滤波器控制数据使用这些滤波器。这些滤波器可以包括去块滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。这些滤波器可以根据示例应用于空间域/像素域(例如,在重建像素块上)或频域中。
当作为编码器操作时,将滤波重建图像块、残差块和/或预测块存储在解码图像缓冲组件423中,后续用于进行如上所述的运动估计。当作为解码器操作时,解码图像缓冲组件423存储重建滤波块并将重建滤波块转发给显示器,作为输出视频信号的一部分。解码图像缓冲组件423可以是任何能够存储预测块、残差块和/或重建图像块的存储设备。
标头格式化和CABAC组件431从编解码系统400中的各种组件接收数据,并将这些数曙编码到编码码流中,以发送到解码器。具体地,标头格式化和CABAC组件431生成各种标头以对控制数据(例如,总体控制数据和滤波控制数据)进行编码。此外,包括帧内预测和运动数据的预测数据以及以量化变换系数数据为形式的残差数据都编码在码流中。最终的码流包括解码器重建原始分割视频信号401所需要的信息。这些信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能帧内预测模式的指示、分割信息的指示等。可以通过熵编码对这些数据进行编码。例如,可以通过上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、CABAC、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmeticcoding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)编码或其它熵编码技术对这些信息进行编码。在经过熵编码之后,可以将编码码流发送到另一设备(例如,视频解码器)或存档,以供后续进行传输或检索。
本发明包括的修改是为了在根据视角相关编码对VR视频流中的子图像视频流以特定的分辨率进行编码以及以不同的分辨率进行解码时避免产生伪影。帧内估计组件415和/或帧内预测组件417进行帧内预测以及运动补偿组件419和/或运动估计组件421进行帧间预测中使用的机制会产生此类伪影。因此,本发明改进了编码器和/或解码器中的帧内估计组件415、帧内预测组件417、运动补偿组件419和/或运动估计组件421的功能。一旦进行了此类修改,可以认为子图像码流是自参考的,因此可以根据轻量级合并过程进行解码。这样减小了文件大小,从而提高了编码效率,加快了解码过程,从而降低了处理资源利用率,和/或提高了在解码器侧产生的解码VR视频流的视觉质量。
图5为示例性视频编码器500的框图。视频编码器500可以对子图像码流进行编码。视频编码器500可以用于实现编解码系统400的编码功能和/或执行方法300中的步骤301、步骤303、步骤305、步骤307和/或步骤309。与编码器103一样,编码器500还可以用于执行方法200中的步骤205至步骤209。编码器500对输入视频信号(例如,子图像视频流)进行分割,从而产生基本上类似于分割视频信号401的分割视频信号501。然后,编码器500中的组件将分割视频信号501进行压缩并编码到码流中。
具体地,将分割视频信号501转发给帧内预测组件517,以进行帧内预测。帧内预测组件517可以基本上类似于帧内估计组件415和帧内预测组件417。还将分割视频信号501转发给运动补偿组件521,以根据解码图像缓冲组件523中的参考块进行帧间预测。运动补偿组件521可以基本上类似于运动估计组件421和运动补偿组件419。将来自帧内预测组件517和运动补偿组件521的预测块和残差块转发给变换和量化组件513,以对残差块进行变换和量化。变换和量化组件513可以基本上类似于变换缩放和量化组件413。将变换量化残差块和对应的预测块(连同相关的控制数据)转发给熵编码组件531,以编码到码流中。熵编码组件531可以基本上类似于标头格式化和CABAC组件431。
还将变换量化残差块和/或对应的预测块从变换和量化组件513转发给逆变换和量化组件529,以重建成参考块,供运动补偿组件521使用。逆变换和量化组件529可以基本上类似于缩放和逆变换组件429。还将环内滤波组件525中的环内滤波器应用于残差块和/或重建参考块,具体取决于示例。环内滤波组件525可以基本上类似于滤波控制分析组件427和环内滤波组件425。环内滤波组件525可以包括多个滤波器,如环内滤波组件425所述。然后,将滤波块存储在解码图像缓冲组件523中,以作为参考块供运动补偿组件521使用。解码图像缓冲组件523可以基本上类似于解码图像缓冲组件423。
编码器500接收对球形视频流划分得到的子图像视频流,以便与使用基于视角的编码的VR系统一起使用。如上所述,当子图像视频流以不同的分辨率发送到解码器时,由于在降低质量较差的子图像视频流的分辨率的过程中会丢失数据,所以可能会产生伪影。这是因为帧内预测和帧间预测都是根据相邻块的像素点(像素)对块进行编码的。当参考像素点横跨子图像视频流边界时,由于相邻子图像视频流中的数据会丢失,所以参考像素点可能会变得不准确。为了消除这些问题,编码器500中的运动补偿组件521和帧内预测组件517对每个子图像视频流进行编码,使其自参考,也就是自成一体。具体地,运动补偿组件521和帧内预测组件517用于在编码时仅参考同一子图像视频流中的整像素点位置。具体地,在对第一子图像视频流进行编码时,避免编码器500参考其它子图像视频流中的整像素点位置。这既适用于帧内预测模式,也适用于帧间预测运动矢量。
如上所述,像素点(也称为像素)是对应位置上的值,其中,该值可以包括亮度/光值和/或一个或多个色度/色值。记录设备拍摄照片(以及在显示器上显示)是通过采样网格上的整数位置值来表达的。采样网格上的整数位置称为整像素点位置,因为像素点值是以整像素点位置表示的。分数像素点位置是采样网格上的非整数位置。当物体在帧之间的偏移为非整数时,执行滤波,可以得到分数像素点位置。分数像素点位置上的值可以确定为根据整像素点位置上的值确定的加权值(例如,加权平均值)。只有当可以通过仅根据第一子图像码流中的像素点位置(例如,不参考任何其它子图像码流)进行插值而重建参考分数像素点位置的有效像素点值时,运动补偿组件521和帧内预测组件517可以参考第一子图像视频流中的这些分数像素点位置。此外,运动补偿组件521可以在执行帧间预测时为第一子图像码流生成运动矢量候选列表。然而,当运动矢量来自另一子图像码流中的块时,运动补偿组件521可以将运动矢量不包括在候选列表中。这些限制条件确保每个子图像码流可以在不参考相邻子图像码流情况下进行解码,因此避免了分辨率不匹配。
此外,视频编码可以采用并行化,例如,波前并行处理(wavefront parallelprocessing,WPP),以加快视频编码过程。WPP允许对当前块(例如,CTU)进行编码,只要当前块上方的块以及当前块上方和右侧的块已经解码。WPP给人的印象类似于波浪,其中,第一排块的编码比第二排块提前编码两个块,也就是比第三排块提前两个块,以此类推。在解码器侧,子图像码流帧可以看作是片,可以将这些片合并以重建球形视频流。当存在分块时,可以配置WPP不操作,因为WPP只对整个帧操作一次(例如,来自球形视频流的帧),而在分块级上不操作。相应地,编码器500可以在对子图像码流进行编码时禁用WPP。例如,WPP使用entropy_coding_sync_enabled_flag。该标志包括在每个图像的PPS语法中。编码器500可以将entropy_coding_sync_enabled_flag设置为0,以对子图像视频流禁用WPP。
此外,通过将子图像视频流编码到轨迹中并确保这些轨迹具有相同呈现时间,编码器500能够避免子图像码流之间的定时不匹配问题。编码器500还能够确保普通VR图像(例如,球形视频流中的帧)的每个像素点采用相同的图像顺序编号值,即使这些像素点被分割成不同的子图像码流和/或携带在不同的轨迹中。
编码器500还可以指示上述约束条件已经应用于子图像码流,因此子图像码流可以根据轻量级合并算法进行解码。例如,编码器500可以使用码流语法来指示可合并指示,该可合并指示表示轻量级合并功能可以应用于子图像码流。例如,编码器500可以将各种语法元素编码到子图像码流中以向解码器指示如何解码子图像码流。视频码流可以包括VPS、SPS、PPS等。VPS包括适用于视频序列中所有层的信息,SPS包括适用于视频序列中所有图像的信息,PPS包括适用于相应图像中所有条带的信息。然后,将表示图像数据的已编码块可以存储在条带中。视频码流还可以包括SEI消息,SEI消息是可选消息,包括块解码不需要的元数据,但是可以用于指示图像输出时序、显示设置、丢失检测、丢失隐藏等相关目的。编码器500可以根据具体情况将可合并指示编码到相应子图像码流中的VPS、SPS、PPS和/或SEI消息中。例如,编码器500可以将可合并指示包括在轻量级合并指示SEI消息中或者作为数据元素包括在时间MCTS SEI消息中。又如,编码器500可以将可合并指示包括在VPS和/SPS中,作为VUI。在另一个具体示例中,可合并指示可以包括在档次/层/级语法结构中的VPS和/或SPS中,作为通用档次兼容标志与通用级idc标志之间的轻量级合并指示标志等。因此,编码器500可以使用可合并指示向解码器指示相应的子图像码流可以使用轻量级合并功能合并成VR码流,而不需要改变每个子图像码流的块编码结果,以考虑子图像码流分辨率变化而产生的视角相关编码伪影。
图6为示例性视频解码器600的框图。解码器600可以对子图像码流进行解码。视频解码器600可以用于实现编解码系统400的解码功能和/或执行操作方法300中的步骤311、步骤313、步骤315和/或步骤317。与解码器107一样,解码器600还可以用于执行方法200中的步骤211至步骤213。解码器600从编码器500等接收多个子图像码流,生成包括子图像视频流的重建输出视频信号,将所述子图像视频流合并成球形视频流,通过呈现设备转发所述球形视频流以显示给用户。
熵解码组件633接收所述码流。熵解码组件633用于执行熵解码方案,例如,CAVLC、CABAC、SBAC、PIPE编码或其它熵编码技术。例如,熵解码组件633可以使用标头信息来提供上下文以解析编码为所述码流中码字的附加数据。解码信息包括对视频信号进行解码所需的任何信息,例如,总体控制数据、滤波控制数据、分割信息、运动数据、预测数据和残差块中的量化变换系数。将量化变换系数转发给逆变换和量化组件629,以重建成残差块。逆变换和量化组件629可以类似于逆变换和量化组件529。
将重建残差块和/或预测块转发给帧内预测组件617,以根据帧内预测操作重建成图像块。帧内预测组件617可以类似于帧内估计组件415和帧内预测组件417。具体地,帧内预测组件617使用预测模式来定位帧中的参考块,并将残差块添加到上述结果中以重建帧内预测图像块。经由环内滤波组件625将重建帧内预测图像块和/或残差块以及对应的帧间预测数据转发给解码图像缓冲组件623。解码图像缓冲组件423和环内滤波组件425可以基本上类似于解码图像缓冲组件423和环内滤波组件425。环内滤波组件625对重建图像块、残差块和/或预测块进行滤波。这些信息存储在解码图像缓冲组件623中。将来自解码图像缓冲组件623的重建图像块转发给运动补偿组件621,以进行帧间预测。运动补偿组件621可以基本上类似于运动估计组件421和运动补偿组件419。具体地,运动补偿组件621使用参考块的运动矢量来生成预测块,并将残差块添加到上述结果中以重建图像块。还可以经由环内滤波组件625将所产生的重建块转发给解码图像缓冲组件623。解码图像缓冲组件623继续存储附加的重建图像块,这些重建图像块可以通过分割信息重建成帧。也可以按顺序放置这些帧。将所述顺序输出到显示器,作为重建输出视频信号。
如上所述,解码器600对子图像码流进行解码以创建子图像视频流。然后,解码器600可以使用轻量级合并算法将子图像视频流合并成球形视频流以供显示。轻量级合并算法包括从每个子图像视频流中选择子图像,这些子图像发生在相同呈现时间处,因此是同一球形帧的一部分。然后,根据与对应的子图像视频流相关的位置定位每个子图像,合并这些子图像。合并算法可以是轻量级算法,因为该方法可能不需要解码器600考虑子图像视频流之间的相关性。相反,可以相对独立地对每个子图像视频流进行解码,并且可以合并结果(例如,在子图像边界进行某种滤波)。因此,轻量级合并算法可以假设子图像码流是自参考的,并且当将子图像合并在一起时,可以不改变为每个子图像码流确定的块级编码结果。这种轻量级合并算法使用的处理资源比解码期间考虑子图像码流相关性使用的处理资源少。此外,可以在向用户显示期间实时执行轻量级合并算法,而不是在显示之前的预处理中执行这种合并。因此,轻量级合并算法可能实现视角相关编码,因为视角相关编码是在向用户显示期间实时执行的。此外,由于如上所述编码器500侧使用了编码约束条件,可以执行轻量级合并算法而不产生伪影。具体地,可以执行轻量级合并算法,因为每个子图像码流都是以自成一体且与其它子图像码流不相关的方式进行编码的。
解码器600可以根据编码器500的指示确定使用轻量级合并算法。例如,解码器600可以在SEI消息、VPS和/或SPS中检视可合并指示的码流信息。在找到可合并指示(例如,对应的语法元素、标志等)之后,解码器600可以分别对子图像码流进行解码并将结果合并成可呈现的VR帧,以进行显示。当不包括可合并指示时,例如,当相关语法元素设置为0时,解码器600可以使用影响块级编码的更复杂的解码过程,例如,无论子图像码流边界如何,可以通过参考其它子图像对每个子图像进行解码。
前述附图描述了对用于VR系统中使用的子图像视频流进行编码和解码的各种组件和方法。图7示出了从球形帧映射的子图像帧的示例性空间定位。图8至图10描述了运动矢量使用和候选列表生成等帧间预测使用的机制。这些附图说明了图7所述的当运动矢量横跨子图像视频流边界时可能产生的问题,以及可用于解决这些问题的约束条件。图11至图14描述了用于指示已经应用这些约束条件的机制,因此可以在解码器侧进行轻量级合并。
图7为对VR图像视频流700划分得到的多个子图像视频流701和703的示意图。编码器103和/或VR编码设备104可以将VR图像视频流700映射成子图像视频流701和703。解码器107可以将子图像视频流701和703合并回VR图像视频流700。因此,VR图像视频流700以及子图像视频流701和703是方法200中的步骤205和步骤213的举例说明。运动估计组件421、运动补偿组件419、运动补偿组件521和/或运动补偿组件621等可以通过帧间预测对子图像视频流701和703进行编码和解码。帧内估计组件415、帧内预测组件417、帧内预测组件517和/或帧内预测组件617等也可以通过帧内预测对子图像视频流701和703进行编码和解码。因此,子图像视频流701和703都可以根据方法300进行编码和解码。
VR图像视频流700包括随时间呈现的多个帧。VR图像视频流700中的帧都可以细分成子帧,也称为子图像。因此,每个帧和对应的子帧包括时间位置(例如,图像顺序),作为时间呈现的一部分。当帧细分随着时间持续进行,子图像视频流701和703就生成了。持续的帧细分生成了子图像视频流701和703,其中,每个流包括相对于VR图像视频流700中的对应帧具有预定大小、形状和空间位置的子图像集。此外,子图像视频流701和/或703中的子图像集的时间位置随呈现时间的变化而变化。这样,子图像视频流701和703中的子图像可以根据时间位置在时域上对齐。然后,可以根据预定义的空间位置在空域中合并子图像视频流701和703在每个时间位置上的子图像,以重建VR图像视频流700进行显示。
本文使用的子图像视频流701可以称为第一子图像视频流(在编码上下文称为第一子图像码流)。子图像视频流703是为了说明与第一子图像视频流701邻近的相邻子图像视频流(和/或相邻子图像码流)。因此,为了讨论本文所公开的各种实施例,对子图像视频流701和703进行区分,否则它们基本上相似。
图8为单向帧间预测800的一个示例的示意图。例如,在块压缩步骤305、块解码步骤313、运动估计组件421、运动补偿组件419、运动补偿组件521和/或运动补偿组件621处,执行单向帧间预测800来确定运动矢量(motion vector,MV)。例如,单向帧间预测800可以用于确定子图像视频流701和/或703中的子图像的块的运动矢量,因此编码器103和解码器107在分别执行方法200中的步骤207和211时可以进行单向帧间预测800。
单向帧间预测800使用具有参考块831的参考帧830来预测当前帧810中的当前块811。如图所示,参考帧830可以在时间上位于当前帧810之后(例如,作为下一个参考帧),但在一些示例中,也可以在时间上位于当前帧810之前(例如,作为前一个参考帧)。当前帧810是在特定时间进行编码/解码的示例性帧/图像。当前帧810包括当前块811中的一个对象,该对象与参考帧830的参考块831中的对象匹配。参考帧830是对当前帧810进行编码使用的参考帧,参考块831是参考帧830中的一个块,这个块包括的对象也包括在当前帧810的当前块811中。
当前块811是在编码过程中的指定阶段内进行编码/解码的任何编码单元。当前块811可以是整个分割块,也可以是仿射帧间预测情况下的子块。当前帧810与参考帧830相隔一定时间距离(time distance,TD)833。TD 833指示视频序列中的当前帧810与参考帧830之间的时间量,TD 833的测量单位可以是帧。当前块811的预测信息可以通过一个参考索引对参考帧830和/或参考块831参考,该参考索引标识帧之间的方向和时间距离。在TD 833指示的时间段内,当前块811中的对象从当前帧810中的一个位置移动到参考帧830中的另一个位置(例如,参考块831中的位置)。例如,该对象可以沿着运动路径(trajectory)813移动,运动轨线813是对象随时间移动的方向。运动矢量835描述该对象在TD 833内沿着运动路径813移动的方向和幅度。因此,编码运动矢量835和参考块831提供的信息足以重建当前块811并且使当前块811位于当前帧810中。
图9为双向帧间预测900的一个示例的示意图。例如,在块压缩步骤305、块解码步骤313、运动估计组件421、运动补偿组件419、运动补偿组件521和/或运动补偿组件621处,执行双向帧间预测900来确定运动矢量(motion vector,MV)。例如,双向帧间预测900可以用于确定子图像视频流701和/或703中的子图像的块的运动矢量,因此编码器103和解码器107在分别执行方法200中的步骤207和211时可以进行双向帧间预测900。需要说明的是,编码器可以根据哪种方法能为指定块提供最佳编码效率和/或重建质量,选择双向帧间预测900或单向帧间预测800(例如,作为RDO的一部分)对块进行编码。
双向帧间预测900与单向帧间预测800相似,但使用一对参考帧来预测当前帧910中的当前块911。因此,当前帧910和当前块911分别与当前帧810和当前块811基本相似。当前帧910在时间上位于前一个参考帧920与下一个参考帧930之间。前一个参考帧920在视频序列中位于当前帧910之前,下一个参考帧930在视频序列中位于当前帧910之后。前一个参考帧920和下一个参考帧930在其它方面与参考帧830基本相似。
当前块911与前一个参考帧920中的前一个参考块921以及下一个参考帧930中的下一个参考块931匹配。这种匹配指示,在播放视频序列的过程中,一个对象沿着运动路径913从前一个参考块921中的位置移动经过当前块911,到达下一个参考块931中的位置。当前帧910与前一个参考帧920相隔前一个时间距离(TD0)923,与下一个参考帧930间隔下一个时间距离(TD1)933。TD0 923指示视频序列中的前一个参考帧920与当前帧910之间的时间量,以帧为单位。TD1 933指示视频序列中的当前帧910与下一个参考帧930之间的时间量,以帧为单位。因此,该对象在TD0 923指示的时间段内沿着运动路径913从前一个参考块921移动到当前块911。该对象还在TD1 933指示的时间段内沿着运动路径913从当前块911移动到下一个参考块931。当前块911的预测信息可以通过一对参考索引来参考前一个参考帧920和/或前一个参考块921以及下一个参考帧930和/或下一个参考块931,该对参考索引标识帧之间的方向和时间距离。
前一个运动矢量(MV0)925描述该对象在TD0923内沿着运动路径913(例如,在前一个参考帧920与当前帧910之间)移动的方向和幅度。下一个运动矢量(MV1)935描述该对象在TD1 933内沿着运动路径913(例如,在当前帧910与下一个参考帧930之间)移动的方向和幅度。因此,在双向帧间预测900中,当前块911可以通过前一个参考块921和/或下一个参考块931、MV0 925和MV1 935进行编码和重建。
如上所述,子图像视频流701和/或703中的子图像的的块可以根据单向帧间预测800和/或双向帧间预测900进行编码。例如,一个对象可以随着时间在子图像视频流701和相邻的子图像视频流703之间移动。在这种情况下,帧间预测可以使子图像视频流701中的当前块的像素点(例如,像素)与相邻的子图像视频流703中的参考块的像素点匹配。然后,当前块可以编码为一个运动矢量,该运动矢量参考相邻的子图像视频流703中的像素点。只要子图像视频流701和子图像视频流703以相同的分辨率进行解码,就正常执行该方法。然而,在视角相关编码中,有损过程可以降低子图像视频流703的分辨率,该有损过程去除数据以进一步压缩子图像视频流703中的子图像。相应地,包括参考像素点的参考块可以被改变或甚至从子图像视频流703的子图像中移除。在这种情况下,编码运动矢量仍然可以指向正确的参考块,但是参考块中包括的像素点对于子图像视频流701所使用的分辨率可能不再准确。此外,在一些情况下,子图像视频流703甚至可以完全省略,这将导致运动矢量参考空数据。在上述任一情况下,从子图像视频流701解码得到的当前块由可用的低质量像素点代替,或者甚至以未定义的错误方式表示,这种错误方式取决于解码器的实现方式。需要说明的是,虽然当前问题是从帧间预测的角度来讨论的,但帧内预测也可能发生同样的错误。唯一的区别是,在帧内预测情况下,参考像素点与当前块位于相同的时间位置上,而在帧间预测情况下,参考像素点与当前块位于不同的时间位置上。
为了避免这些问题,在本文公开的编码器对每个子图像视频流(例如,包括子图像视频流701和703)进行编码时,可以对编码器进行约束。例如,第一子图像视频流701中的块可以只通过运动矢量或帧内预测模式参考同一第一子图像视频流701中的整像素点位置进行编码,因此不能参考其它(例如相邻)子图像视频流703中的像素点位置。此外,只有当仅根据同一第一子图像视频流701中的像素点位置进行插值来重建分数像素点位置上的像素点(例如,都不依赖于相邻子图像视频流703中的数据)时,第一子图像视频流701中的块可以编码到参考子图像视频流701中的分数像素点/像素位置。通过这种方式,每个子图像视频流701/703中的像素点可以分别进行编码和解码,而且相邻子图像视频流703的分辨率变化不影响第一子图像视频流701,反之亦然。
可以强制执行上述约束条件和某些其它约束条件,使得子图像视频流701和/或703自参考。例如,当对子图像视频流701进行编码以使帧间预测和帧内预测机制不参考子图像视频流703中的像素点位置或分数像素点位置时,或者反之亦然,所得子图像码流可以在解码器侧进行轻量级合并(假设也满足其它约束条件)。因此,当编码器将可合并指示包括在SEI消息、VPS、SPS等子图像视频流701中时,解码器可以确定:上述像素点相关约束条件满足,而且子图像视频流701可以与其它子图像码流703进行合并,而不需要修改子图像视频流701的块解码结果,以考虑像素点数据的可能修改,这种可能修改的原因是对其它子图像视频流703使用了有损编码机制。
图10为基于块的视频编码机制1000的一个示例的示意图。例如,机制1000可以用于帧内预测、单向帧间预测800和/或双向帧间预测900。因此,在块压缩步骤305、块解码步骤313、帧内估计组件415、帧内预测组件417、运动估计组件421、运动补偿组件419、帧内预测组件517、运动补偿组件521、帧内预测组件617和/或运动补偿组件621中,基于块的视频编码机制1000可以用于根据具体情况确定帧内预测模式或运动矢量。例如,对子图像视频流701和/或703中的子图像的块进行编码时可以使用机制1000,因此编码器103和解码器107在分别执行方法200中的步骤207和211时可以使用机制1000。
机制1000根据同一帧中的之前已编码的块1002,对当前块1001进行编码。在帧内预测情况下,当前块1001与已编码块1002中的像素点匹配。然后,通过帧内预测模式对当前块1001进行编码,该帧内预测模式指示已编码块1002中的像素点用于预测当前块1001中的像素点。如果当前块1001在第一子图像视频流701中,而已编码块1002在相邻的子图像视频流703中,则视角相关编码可能由于分辨率差异而产生编码错误。因此,可以防止本文描述的编码器使用第一子图像视频流701中的帧内预测模式,这些帧内预测模式依赖于相邻子图像视频流703中的像素点。
机制1000也可以用于某些类型的帧间预测。具体地,帧间预测可以使用合并模式、AMVP模式等何种模式。在这两种模式中,当前块1001的运动矢量可以根据已编码块1002的运动矢量进行选择。在合并模式下,从已编码块1002中选择的运动矢量可以包括在候选列表中。候选列表还可以包括指示无移动的运动矢量、前几个帧和/或下几个帧中时间上相邻的块的运动矢量、先前已编码块的运动矢量等。然后,从候选列表中选择当前块1001的运动矢量。随后,可以将当前块1001的运动矢量指示为候选列表索引。这使得当前块1001可以通过一个索引值进行编码。解码器可以使用与编码器相同的过程生成当前块1001的候选列表,然后根据候选列表索引确定当前块1001的运动矢量。AMVP模式与合并模式相似,但是当候选列表中的运动矢量均不表示当前块1001的正确运动矢量时,可以使用AMVP模式。在这种情况下,AMVP模式可以从候选列表中选择与当前块1001的正确运动矢量最匹配的运动矢量。然后,使用AMVP模式对选择的候选运动矢量的候选列表索引以及一个值进行编码,该值表示选择的候选运动矢量与当前块的正确运动矢量之间的差异。
在当前块1001位于第一子图像视频流701中并且已编码块1002位于相邻子图像视频流703中时,合并模式和AMVP模式都可能导致视角相关编码产生错误。例如,当相邻子图像视频流703的分辨率降低时,相邻子图像视频流703中的已编码块1002的运动矢量可能会发生变化。这将导致在解码器侧为当前块1001生成的候选列表参考由于分辨率变化而改变的运动矢量。然而,编码器在当前块1001和编码块1002使用相同的分辨率时生成该候选列表。因此,在这种情况下,候选列表不再匹配。当候选列表不匹配时,索引可以在解码器侧指向错误的候选运动矢量。这会使得解码器为当前块1001选择错误的参考块,因此显示当前块1001的错误像素点值。
为了解决这些问题,可以对本文公开的编码器进行限制,使得第一子图像视频流701中的当前块1001的候选运动矢量列表不包括相邻子图像码流703中的已编码块1002的运动矢量。例如,在生成候选列表期间,其它相邻子图像码流703的此类运动矢量不会添加到候选列表中,因此在执行帧间预测时不能通过AMVP模式或合并模式进行选择。这种限制与防止参考其它子图像码流703中的像素点的限制一起确保了每个子图像码流701可以不参考相邻子图像码流703而进行解码,因此避免了分辨率不匹配问题。
与之前讨论的像素点相关约束条件一样,编码器可以应用上述候选运动矢量列表约束条件来确保子图像视频流701和/或703是自参考的,因此可以进行合并。相应地,当编码器将可合并指示包括在SEI消息、VPS、SPS等子图像视频流701中时,解码器可以确定:上述候选运动矢量列表约束条件满足,而且子图像视频流701可以与其它子图像码流703进行合并,而不需要修改子图像视频流701的块解码结果,以考虑运动矢量数据的可能修改,这种可能修改的原因是对其它子图像视频流703使用了有损编码机制。
视角相关编码中可能存在错误的另一原因在于:图像顺序编号和/或呈现时间数据可以根据分辨率发生变化。图像顺序编号标识帧在媒体片段中的顺序,因此解码器可以使用该图像顺序编号将媒体片段中的帧按合适的顺序放置,以便于显示。媒体呈现时间数据指示媒体片段根据图像顺序编号、帧率等需要显示的时间的长度。由于该数据针对的是子图像视频流,影响帧率、图像顺序编号、呈现时间等的分辨率变化可能会导致VR视频的空间部分无序显示。例如,球形视频帧的不同子图像部分可以以不同的速率显示,这会使用户以不同的顺序观看VR视频的部分与同一VR帧中的VR视频的其它部分。
为了解决这些时序不匹配问题,可以对本文中的编码器进行约束,以确保无论分辨率如何,每个轨迹的呈现时间相同。此外,可以限制包括子图像码流的每个轨迹包括相同数量的媒体像素点(例如,相同数量的总帧)。另外,与同一VR帧相关的每个轨迹片段的媒体像素点可以使用相同的图像顺序编号值。即使当此类子图像划分成不同的子图像码流和/或携带在不同轨迹中时,也可以保持这种状态。当强制执行这些约束条件时,不管分辨率如何,子图像都以相同的顺序和速率显示。因此,一个球形视频流可以存在不同的分辨率,而不会产生时序错误。
与之前讨论的像素点和候选运动矢量列表相关约束条件一样,编码器可以应用上述时序约束条件来确保子图像视频流701和/或703在时域中对齐,因此可以根据帧编号和空间位置进行合并。相应地,当编码器将可合并指示包括在SEI消息、VPS、SPS等子图像视频流701中时,解码器可以确定:上述时序约束条件满足,而且子图像视频流701可以与其它子图像码流703进行合并,而不需要修改子图像视频流701的块解码结果,以考虑块编码结果的可能修改,这种可能修改的原因是子图像帧相对其它子图像视频流703是无序的。
另外,如上所述,WPP可以通过改变解码顺序来改变块的解码方式。在对从多个轨迹合并成VR球形视频流中的一个帧而得到的多个子图像进行WPP时,会产生错误。本文公开的编码器可以通过改变每个子图像的PPS中的数据来禁用WPP。例如,可以将每个PPS中的entropy_coding_sync_enabled_flag设置为0,对子图像视频流禁用WPP。在一些示例中,通过将WPP相关数据包括在媒体像素点中,以带内方式存储WPP相关数据。在其它示例中,这些数据可以存储在轨迹或轨迹片段盒子中。在一些示例中,当编码器将可合并指示包括在子图像视频流701中时,解码器可以确定在对应的PPS数据中已经禁用WPP。
图11为用于传输视频编码流的示例性码流1100的示意图。例如,由编码器103、编解码系统400和/或编码器500生成的视频编码流可以存储在码流1100中,由解码器107、编解码系统400和/或解码器600进行解码。因此,在方法200和方法300中,码流1100可以用于存储和发送数据。此外,对子图像视频流701和/或703中的子图像应用单向帧间预测800和/或双向帧间预测900以及机制1000得到的结果可以存储在码流1100中。
码流1100可以包括一个或多个逐层编码视频序列(coded layerwise videosequence,CLVS)1130。CLVS 1130是一个图像/帧序列,这些图像/帧序列被编码为多层并存在预定时间距离。具体地,采用多层技术,一个视频序列可以在多个帧率之间实现扩展编码。基本层可以包括该序列中的所有帧,第一增强层可以包括基本层帧(例如,等效为帧率是基本层帧率的一半)的一部分(例如,一半),第二增强层可以包括第一增强层帧(例如,等效为帧率是基本层帧率的四分之一)的一部分(例如,一半),以此类推。因此,CLVS 1130可以包括多层图像,并且通过只显示相应层的图像可以调整视频帧率。需要说明的是,可以选择性地编码为包括多层的CLVS 1130。当一个视频序列未编码到多个层中(例如,支持一层和一个帧率)时,CLVS 1130则称为编码视频序列(coded video sequence,CVS)。CLVS 1130按照预定的时间距离扩展,因此包括视频片段。例如,第一CLVS 1130可以包括第一场景,第二CLVS 1130可以包括第二场景,以此类推。因此,CLVS 1130可以扩展到另一个CLVS 1130之前的断点开始,这样可以实现场景搜索、广告切换等等。CLVS 1130可以进一步细分为访问单元,其中,访问单元包括用于解码对应的图像或子图像的相关信息,根据具体情况确定。
CLVS 1130包括多个网络抽象层(network abstraction layer,NAL)单元。例如,与普通图像/子图像关联的NAL单元组成访问单元。NAL单元可以细分成视频编码层(videocoding layer,VCL)NAL单元1120和非VCL NAL单元1110。VCL NAL单元112包括编码视频数据(例如,已编码块),非VCL NAL单元1110包括语法或其它支持数据,用于正确显示/呈现VCL NAL单元1120中的数据。VCL NAL单元1120包括组织成条带1121的已编码块(例如,预测单元、变换数据等)。VCL NAL单元1120也可以包括条带头。条带1121是图像和/或子图像的子集,因此包括对应的图像/子图像中的已编码块。
非VCL NAL单元1110可以包括VPS 1111、SPS 1113、PPS 1115,可选地包括一个或多个SEI消息1117。VPS 1111包括与CLVS 1130各层相关的信息,例如,与层可伸缩性有关的数据(例如,帧率)、层图像顺序数据、层标识符、层关系、层时序信息等。SPS 1113包括码流中的视频序列中的所有图像共用的序列数据。此类数据可以包括图像大小、位深度、编码工具参数、码率限制等。VPS 1111和/或SPS1113可以包括VUI 1119。VUI 1119是可选信息(例如,纵横比、过扫描数据、基色等)和/或码流1100中的时序信息。可选信息用于描述各种机制来显示条带1121中包括的图像。
PPS 1115包括每个图像特有的参数。因此,码流1100可以包括一个VPS 1111和一个SPS 1113,但是可以包括每个图像/子图像的PPS 1115。PPS 1115可以指示可用于对应图像中的条带1121的编码工具、量化参数、偏移、图像特定编码工具参数(例如,滤波控制)等。SEI消息1117是可选的,因此CLVS 1130可以不包括每个片段的SEI消息1117,也可以包括每个片段的SEI消息1117。SEI消息1117包括与CLVS 1130相关的元数据。SEI消息1117可以应用于当前访问单元,或者可以一直存在直到取消或被其它SEI消息1117替代。CLVS 1130可以使用大量SEI消息1117,此类SEI消息1117可以包括大量数据。SEI消息1117可以包括描述用于显示条带1121中包括的图像/子图像的适当机制的数据,但是可以不包括与解码此类条带1121相关的数据(例如,该数据可能包括在SPS 1113、PPS 1115和/或条带头中)。例如,SEI消息1117可以包括指向激活参数集、场景信息、图像取向数据、图像模式信息、滤波器信息等的指针。需要说明的是,SEI消息1117中的数据可与VUI 1119中的数据互补和/或重叠。
将块编码信息包括在VCL NAL单元1120中以及将对应的语法包括在非VCL NAL单元1110中,码流1100可以包括子图像码流。当对码流1100进行编码时,编码器可以强制执行上述约束条件,从而确保子图像码流是自参考的。编码器还可以将可合并指示1150包括在码流1100中,从而向解码器指示码流1100是自参考的。因此,可合并指示1150向解码器指示码流1100中包括的子图像码流可以通过多码流合并功能(例如,轻量级合并功能)与其它子图像码流进行合并,方式是根据空间位置合并子图像,而无需改变解码条带1121产生的块编码结果。
在一些示例中,可合并指示1150可以包括在一个或多个SEI消息1117中。例如,SEI消息1117可以包括轻量级合并指示SEI消息以将可合并指示1150包括在内。在本示例中,轻量级合并指示SEI消息1117用于指示码流1100是否进行约束,使得将码流1100可以与其它码流进行轻量级合并/重写,得到一个标准视频码流,而不会产生非预期的伪影。本示例中,SEI消息1117的语法和语义如下:
lightweight_merging_indication(payloadSize){ 描述符
}
当CLVS 1130中的任一图像都存在轻量级合并指示SEI消息1117时,CLVS 1130中的第一图像可以存在轻量级合并指示SEI消息1117。CLVS 1130中的轻量级合并指示SEI消息1117可以指示以下约束条件适用于CLVS 1130中的每个图像。帧间预测不应参考图像外的像素点值。针对位于右侧图像边界的预测单元,除位于图像右下角的最后一个预测单元之外,当CuPredMode[xPb][yPb]等于MODE_INTER时,采用如下方式,其中(xPb,yPb)表示对应亮度预测块的左上角像素点与当前图像的左上角像素点之间的关系。此外,空间合并候选数量numSpatialMergeCand的导出方式如下:
numSpatialMergeCand=availableFlagA0+availableFlagA1+availableFlagB0+availableFlagB1+availableFlagB2
其中,availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2是空间合并候选导出过程的输出。以下内容也适用:如果numSpatialMergeCand等于0,则merge_flag[xPb][yPb]应等于0。否则(numSpatialMergeCand大于0),merge_idx[xPb][yPb]应在0到numSpatialMergeCand-1的范围(包括0和numSpatialMergeCand-1)内。另外,空间运动矢量预测值数量numSpatialMvpCand的导出方式如下:
if(availableFlagLXA)
numSpatialMvpCand=availableFlagLXA+
((mvLXA!=mvLXB)?availableFlagLXB:0)
else
numSpatialMvpCand=availableFlagLXB
其中,availableFlagLXA、availableFlagLXB、mvLXA和mvLXB是从相邻预测单元分割导出候选运动矢量预测值的过程中输出的。以下内容也适用:如果numSpatialMvpCand等于0,则mvp_10_flag[xPb][yPb]和mvp_11_flag[xPb][yPb]应等于1。否则(numSpatialMvpCand大于0),mvp_10_flag[xPb][yPb]和mvp_l1_flag[xPb][yPb]应在0到numSpatialMvpCand-1的范围(包括0和numSpatialMvpCand-1)内。
第一约束条件限制:运动矢量指向图像中的整像素点位置或指向分数像素点位置,这些分数像素点位置只需要图像中的整像素点位置进行插值。第二约束条件限制:当码流1100在不改变块级编码结果的情况下与其它码流合并成一个标准码流时,在解码整个合并码流过程中,针对对应于码流1100的子图像中的块,不会根据子图像外的块对候选运动矢量进行时间运动矢量预测。
在一些示例中,除以上所述约束条件之外,CLVS 1130中的轻量级合并指示SEI消息1117可以指示以下约束条件也适用于CLVS 1130中的每个图像。激活PPS 1115中的entropy_coding_sync_enabled_flag的值应等于0。
在另一个示例中,SEI消息1117可以包括含有可合并指示1150的时间MCTS SEI消息1117。MCTS SEI消息1117支持使用MCTS分块。高效视频编码(High Efficiency VideoCoding,HEVC)允许使用MCTS分块。MCTS分块是图像中的分块集合,这些分块经过编码,使得每个分块的运动矢量仅仅指向同一分块中的整像素点位置或分数位置(分数位置可以通过插值根据该分块中的像素点位置进行重建),以及使得候选运动矢量仅仅指向分块自身内部。MCTS SEI消息1117可以用于指示与MCTS分块相关的参数。子图像码流可以不使用MCTS分块(或者可以为整个球形视频流使用一个MCTS分块,等等)。然而,虽然从球形视频流中获取的多个方向视频流的(一个或多个)帧中包括一个MCTS分块,但还是可以使用时间MCTSSEI消息1117。在一个具体示例中,SEI消息1117可以包括MCTS SEI消息1117,MCTS SEI消息1117还包括each_tile_one_tile_set_flag,可以设置each_tile_one_tile_set_flag指示子图像码流可以通过轻量级合并功能进行合并。在一个具体示例中,这可以通过如下方式改变MCTS SEI消息1117的HEVC语义来实现。首先,从时间MCTSs SEI消息的语义中删除以下约束条件:当任何PPS(PPS对于associatedPicSet中的任何图像都是激活的)中的tiles_enabled_flag等于0时,associatedPicSet中的任何图像不应存在适用于targetLayerId的时间运动约束分块集SEI消息。其次,当tiles_enabled_flag等于0时,例如,当每个图像中只有一个分块时,each_tile_one_tile_set_flag等于1的时间MCTS SEI消息可以用于指示上述约束条件(如轻量级合并指示SEI消息所指示)是否适用于与时间MCTS SEI消息有关的图像。
在另一个示例中,将约束条件“当任何PPS(PPS对于associatedPicSet中的任何图像都是激活的)中的tiles_enabled_flag等于0时,associatedPicSet中的任何图像不应存在适用于targetLayerId的时间运动约束分块集SEI消息”替换为如下,可以修改HVEC。当任何PPS(PPS对于associatedPicSet中的任何图像都是激活的)中的tiles_enabled_flag等于0时,associatedPicSet中的任何图像存在适用于targetLayerId的时间运动约束分块集SEI消息时,该图像只包括一个分块,只形成MCTS,而且each_tile_one_tile_set_flag的值应等于1。
在另一个示例中,可以将SPS 1113或VPS 1111的VUI 1119中的标志和/或PPS1115中的标志等语法元素用作可合并指示1150,由此来指示上述约束条件(例如,码流1100是自参考的)是否适用于分别参考SPS 1113或VPS 1111的图像。
例如,VUI 1119可以包括一系列语法元素。语法结构profile_tier_level()中的语法元素general_profile_compatibility_flag[31]与general_level_idc flag之间的其中一个比特可以用于指示上述约束条件(例如,码流1100是自参考的)是否适用于分别参考SPS 1113或VPS 1111的图像。
图12为用于码流级指示的示例性方法1200的流程图。码流级指示表示对球形视频流划分得到的用作VR视频流的子图像视频流701和703等子图像码流能够通过多码流合并功能进行合并。方法1200将可合并指示包括在VPS 1111、SPS 1113和/或SEI消息1117等码流1100中。编码器(例如,编码器103、编解码系统400和/或编码器500)可以使用方法1200向解码器(例如,解码器107、编解码系统400和/或解码器600)指示子图像码流可以进行合并。此外,为了支持方法200和300,方法1200可以用于实现视角相关编码。方法1200还可以用于指示对单向帧间预测800、双向帧间预测900和/或机制1000进行约束,使得子图像码流可以合并成视角相关编码机制的一部分,而不会产生子图像视频流边界带来的视觉伪影。
在步骤1201中,将球形视频序列映射成多个子图像视频序列。如上所述,球形视频序列由多方向摄像机捕获的多个方向视频序列拼接而成。每个子图像视频流包括子图像(本文还称为子帧)序列。
在步骤1203中,将所述多个子图像视频序列编码为相应轨迹中的多个子图像码流。这些轨迹可以用于支持在解码器侧合并多个子图像码流,以重建球形视频序列。通过上文论述的约束条件对多个子图像码流进行编码,从而确保子图像码流是完全自参考的。具体地,对此类子图像码流进行编码,使得帧间预测和帧内预测机制不参考相邻子码流中的像素点位置或分数像素点位置,并且还不包括使用相邻子码流的候选运动矢量的候选运动矢量列表。相应地,步骤1203确保多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成球形视频序列中的一个视频码流。该轻量级码流重写过程不涉及改变任何块级编码结果。
在步骤1205中,将可合并指示编码在所述多个子图像码流中的至少一个子图像码流内。可合并指示表示包括可合并指示的子图像码流适用于轻量级合并功能等多码流合并功能,以重建成球形视频序列或其一部分。具体地,多码流合并功能根据空间距离合并子图像码流,而不改变子图像码流的块级编码结果。在一些示例中,可合并指示包括在轻量级合并指示SEI消息和/或时间MCTS SEI消息等SEI消息中。例如,虽然球形视频序列的(一个或多个)图像中包括一个分块(例如,MCTS分块),但还是可以使用时间MCTS SEI消息来包括可合并指示。在一个具体示例中,可合并指示可以是设置为1的each_tile_one_tile_set_flag。在任一种情况下,SEI消息还可以指示通过将包括子图像码流的每个轨迹的PPS中的entropy_coding_sync_enabled_flag设置为0,禁用波前并行处理。在其它示例中,可合并指示可以作为语法元素包括在VPS和/或SPS中。例如,可合并指示可以作为VUI包括在VPS和/或SPS中。在一个具体示例中,可合并指示可以包括在档次/层/级语法结构中的通用档次兼容标志集与通用级idc标志之间的VUI中。
在步骤1207中,将一个包括所述多个子图像码流和所述可合并指示的集合发送到解码器,以支持通过轻量级合并功能解码视角相关虚拟现实视频序列并在虚拟现实视频视角上显示。
图13为示例性视频编码设备1300的示意图。视频编码设备1300适合于实现本文描述的所公开示例/实施例。视频编码设备1300包括下行端口1320、上行端口1350和/或收发单元(Tx/Rx)1310。收发单元1310包括发射器和/或接收器,用于通过网络在上行和/或下行进行数据通信。视频编码设备1300还包括处理器1330和存储器1332。处理器1330包括逻辑单元和/或中央处理器(central processing unit,CPU),用于处理数据。存储器1332用于存储所述数据。视频编码设备1300还可以包括耦合到上行端口1350和/或下行端口1320的光电(optical-to-electrical,OE)组件、电光(electrical-to-optical,EO)组件和/或无线通信组件,通过光通信网络或无线通信网络进行数据通信。视频编码设备1300还可以包括输入和/或输出(input/output,I/O)设备1360,与用户进行数据通信。I/O设备1360可以包括输出设备,例如,用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备1360还可以包括键盘、鼠标、轨迹球等输入设备以及用于与此类输出设备交互的对应接口。
处理器1330通过硬件和软件实现。处理器1330可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器1330与下行端口1320、收发单元1310、上行端口1350和存储器1332通信。处理器1330包括编码模块1314。编码模块1314实现上述公开的实施例,例如,方法200、方法300、方法1200和/或其组合。例如,编码模块1314可以实现编码器103、编解码系统400和/或编码器500等编码器,以便通过视角相关编码对子图像视频流701和703等子图像视频流进行编码。又如,编码模块1314可以实现用于对子图像视频流进行解码的解码器107、编解码系统400和/或解码器600等解码器。编码模块1314可以将此类子图像视频流编码/解码到码流1100中。编码模块1314还可以在视角相关编码中使用单向帧间预测800、双向帧间预测900和/或机制1000,而不产生子图像视频流边界带来的视觉伪影。
具体地,编码模块1314可以根据约束条件对子图像视频流进行编码和/或解码,以避免产生视觉伪影。例如,编码模块1314可以对子图像视频流进行编码,使得块仅参考同一子图像视频流中的整像素点位置,并且因此不能参考来自其它子图像视频流的像素点位置。仅当可以通过仅根据同一子图像码流中的分数像素点位置进行插值来重新创建分数像素点位置中的像素点时,编码模块1314可以使用子图像视频流中的分数像素点位置对块进行编码。此外,编码模块1314可以确保相邻子图像码流中的块的运动矢量不包括在候选运动矢量列表中。编码模块1314可以使用这些限制来确保能够在不参考相邻子图像码流的情况下对每个子图像码流进行解码,因此避免了分辨率不匹配问题。例如,编码模块1314还可以通过将每个PPS中的entropy_coding_sync_enabled_flag设置为零来关闭WPP。此外,编码模块1314可以通过确保包括子图像视频流的轨迹的呈现时间相同,确保轨迹具有相同数量个媒体像素点(例如,帧),确保来自公共VR图像的每个像素点的图像顺序计数值相等的方式,防止子图像码流间的时序不匹配。编码模块1314还可以包括可合并指示,以指示子图像码流是自参考的,因此可以与其它子图像码流合并,而不改变块级编码结果。可合并指示可以包括在SEI消息、VPS和/或PPS中。因此,编码模块1314使得视频编码设备1300以更高的编码效率和/或通过使用视角相关编码而使用更少的网络资源来操作,而不产生视觉伪影和/或降低通过呈现设备向用户显示的VR视频流的视觉质量。此外,编码模块1314使得解码器使用合并功能实现更高效率,而不会改变关于子图像码流/视频流分辨率差异的块级结果。这样一来,编码模块1314改进了视频编码设备1300的功能,并解决了视频编码技术特有的问题。此外,编码模块1314影响了视频编码设备1300到不同状态的转换。或者,编码模块1314可以实现为存储在存储器1332中并由处理器1330执行的指令(例如,实现为存储在非瞬时性介质上的计算机程序产品)。
存储器1332包括一个或多个存储器类型,例如,磁盘、磁带机、固态硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、闪存、三态内容寻址存储器(ternary content-addressable memory,TCAM)、静态随机存取存储器(static random-access memory,SRAM)等。存储器1332可以用作溢出数据存储设备,在选择程序来执行时存储此类程序以及存储在执行程序过程中读取的指令和数据。
图14为用于码流级指示的示例性视频编码设备的示意图。码流级指示表示多个子图像码流能够通过多码流合并功能进行合并。视频编码设备1400实现上述公开的实施例,例如,编码模块1314,方法200、方法300、方法1200和/或其组合。例如,视频编码设备1400中的编码模块1314可以实现编码器103、编解码系统400和/或编码器500等编码器,以便通过视角相关编码对子图像视频流701和703等子图像视频流进行编码。视频编码设备1400可以将子图像视频流编码到码流1100中。此外,视频编码设备1400可以在视角相关编码中使用单向帧间预测800、双向帧间预测900和/或机制1000,而不产生子图像视频流边界带来的视觉伪影。
视频编码设备1400包括映射模块1401。映射模块1401用于将球形视频序列映射成多个子图像视频序列,所述球形视频序列由多个方向视频序列拼接而成,所述多个子图像视频序列中的每个子图像视频序列都包括子图像序列。视频编码设备1400还包括视频流编码模块1403。视频流编码模块1403用于将所述多个子图像视频序列编码为多个子图像码流,以支持合并所述多个子图像码流,所述编码确保所述多个子图像码流中的每个子图像码流都是自参考的,所述多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成一个视频码流,所述轻量级码流重写过程不涉及改变任何块级编码结果。视频编码设备1400还包括可合并指示模块1405。可合并指示模块1405用于将可合并指示编码在所述多个子图像码流中的至少一个子图像码流内,所述可合并指示表示包括所述可合并指示的所述子图像码流适用于多码流合并功能,以重建所述球形视频序列或其一部分。视频编码设备1400还包括发送模块1407。发送模块1407用于将一个包括所述多个子图像码流和所述可合并指示的集合发送到解码器,以支持解码和显示虚拟现实视频视角。
图15为用于码流级指示的示例性方法1500的示意图。码流级指示表示多个子图像码流能够通过多码流合并功能进行合并。在步骤1501中,对图像使用时间运动约束分块集SEI消息。在步骤1503中,将激活PPS中的tiles_enabled_flag设置为0,以指示所述图像只包括一个分块。在步骤1505中,将each_tile_one_tile_set_flag的值设置为1。然后,使用时间运动约束分块集SEI消息中的each_tile_one_tile_set_flag作为可合并指示。
当第一组件与第二组件之间除了线、迹线或其它介质之外不存在中间组件时,所述第一组件与所述第二组件直接耦合。当第一组件与第二组件之间除了线、迹线或其它介质之外还存在中间组件时,所述第一组件与所述第二组件间接耦合。术语“耦合”及其变体包括直接耦合和间接耦合。除非另有说明,否则使用术语“约”是指包括随后数字±10%的范围。
虽然本发明提供了几个实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可能通过其它多种具体形式体现。本发明的示例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者某些特征可以省略或不实施。
另外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法组合或集成。其它变更、替换、更改示例对本领域技术人员而言是显而易见的,均不脱离本文中公开的精神和范围。

Claims (29)

1.一种在视频编码设备中实现的方法,其特征在于,所述方法包括:
所述视频编码设备中的处理器将球形视频序列映射成多个子图像视频序列,所述球形视频序列由多个方向视频序列拼接而成,所述多个子图像视频序列中的每个子图像视频序列都包括子图像序列;
所述处理器将所述多个子图像视频序列编码为多个子图像码流,以支持合并所述多个子图像码流,所述编码确保所述多个子图像码流中的每个子图像码流都是自参考的,所述多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成一个视频码流,所述轻量级码流重写过程不涉及改变任何块级编码结果;
所述处理器将可合并指示编码在所述多个子图像码流中的一个子图像码流内,所述可合并指示表示包括所述可合并指示的所述子图像码流适用于多码流合并功能,以重建所述球形视频序列或其一部分;
所述视频编码设备中的发送器将一个包括所述多个子图像码流和所述可合并指示的集合发送到解码器,以支持解码和显示虚拟现实视频视角。
2.根据权利要求1所述的方法,其特征在于,所述可合并指示包括在补充增强信息(supplemental enhancement information,SEI)消息中。
3.根据权利要求1或2所述的方法,其特征在于,所述可合并指示包括在时间运动约束分块集(motion constrained tile set,MCTS)SEI消息中,其中,虽然所述球形视频序列中的一个图像包括一个分块,但还是使用所述时间MCTS SEI消息,所述分块是一个MCTS。
4.根据权利要求3所述的方法,其特征在于,所述时间MCTS SEI消息中的each_tile_one_tile_set_flag设置为1作为所述可合并指示。
5.根据权利要求2所述的方法,其特征在于,所述SEI消息为轻量级合并指示SEI消息。
6.根据权利要求2或5所述的方法,其特征在于,所述SEI消息还表示通过将每个子图像码流的图像参数集(picture parameter set,PPS)中的entropy_coding_sync_enabled_flag设置为0,禁用波前并行处理。
7.根据权利要求1、2、4、5任一项所述的方法,其特征在于,所述可合并指示为一个语法元素,作为视频可用信息(video usability information,VUI)包括在序列参数集(sequence parameter set,SPS)中。
8.根据权利要求1、2、4、5任一项所述的方法,其特征在于,所述可合并指示为一个语法元素,作为视频可用信息(video usability information,VUI)包括在视频参数集(videoparameter set,VPS)中。
9.根据权利要求1、2、4、5任一项所述的方法,其特征在于,所述可合并指示包括在档次/层/级语法结构中的通用档次兼容标志集与通用级标识码之间。
10.一种非瞬时性计算机可读介质,其特征在于,所述非瞬时性计算机可读介质包括视频编码设备使用的计算机程序产品;所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令;在处理器执行所述计算机可执行指令时,所述视频编码设备执行根据权利要求1至9中任一项所述的方法。
11.一种视频编码设备,其特征在于,所述视频编码设备包括:
处理器,用于:
将球形视频序列映射成多个子图像视频序列,其中,所述球形视频序列由多个方向视频序列拼接而成,所述多个子图像视频序列中的每个子图像视频序列都包括子图像;
将所述多个子图像视频序列编码为多个子图像码流,以支持合并所述多个子图像码流,所述编码确保所述多个子图像码流中的每个子图像码流都是自参考的,所述多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成一个视频码流,所述轻量级码流重写过程不涉及改变任何块级编码结果;
将可合并指示编码在所述多个子图像码流中的至少一个子图像码流内,所述可合并指示表示包括所述可合并指示的所述子图像码流适用于多码流合并功能,以重建所述球形视频序列或其一部分;
与所述处理器耦合的发送器,其中,所述发送器用于将一个包括所述多个子图像码流和所述可合并指示的集合发送到解码器,以支持解码和显示虚拟现实视频视角。
12.根据权利要求11所述的视频编码设备,其特征在于,所述可合并指示包括在补充增强信息(supplemental enhancement information,SEI)消息中。
13.根据权利要求11或12所述的视频编码设备,其特征在于,所述可合并指示包括在时间运动约束分块集(motion constrained tile set,MCTS)SEI消息中,其中,虽然所述球形视频序列中的一个图像包括一个分块,但还是使用所述时间MCTS SEI消息,所述分块是一个MCTS。
14.根据权利要求13所述的视频编码设备,其特征在于,所述时间MCTS SEI消息中的each_tile_one_tile_set_flag设置为1作为所述可合并指示。
15.根据权利要求12所述的视频编码设备,其特征在于,所述SEI消息为轻量级合并指示SEI消息。
16.根据权利要求12或15所述的视频编码设备,其特征在于,所述SEI消息还表示通过将每个子图像码流的图像参数集(picture parameter set,PPS)中的entropy_coding_sync_enabled_flag设置为0,禁用波前并行处理。
17.根据权利要求11、12、14、15任一项所述的视频编码设备,其特征在于,所述可合并指示为一个语法元素,作为视频可用信息(video usability information,VUI)包括在序列参数集(sequence parameter set,SPS)中。
18.根据权利要求11、12、14、15任一项所述的视频编码设备,其特征在于,所述可合并指示为一个语法元素,作为视频可用信息(video usability information,VUI)包括在视频参数集(video parameter set,SPS)中。
19.根据权利要求11、12、14、15任一项所述的视频编码设备,其特征在于,所述可合并指示包括在档次/层/级语法结构中的通用档次兼容标志集与通用级标识码标志之间。
20.一种视频编码设备,其特征在于,所述视频编码设备包括:
映射模块,用于将球形视频序列映射成多个子图像视频序列,所述球形视频序列由多个方向视频序列拼接而成,所述多个子图像视频序列中的每个子图像视频序列都包括子图像序列;
视频流编码模块,用于将所述多个子图像视频序列编码为多个子图像码流,以支持合并所述多个子图像码流,所述编码确保所述多个子图像码流中的每个子图像码流都是自参考的,所述多个子图像码流中的两个或更多子图像码流可以通过轻量级码流重写过程进行合并,从而生成一个视频码流,所述轻量级码流重写过程不涉及改变任何块级编码结果;
可合并指示模块,用于将可合并指示编码在所述多个子图像码流中的至少一个子图像码流内,所述可合并指示表示包括所述可合并指示的所述子图像码流适用于多码流合并功能,以重建所述球形视频序列或其一部分;
发送模块,用于将一个包括所述多个子图像码流和所述可合并指示的集合发送到解码器,以支持解码和显示虚拟现实视频视角。
21.根据权利要求20所述的视频编码设备,其特征在于,所述可合并指示包括在补充增强信息(supplemental enhancement information,SEI)消息中。
22.根据权利要求20或21所述的视频编码设备,其特征在于,所述可合并指示包括在时间运动约束分块集(motion constrained tile set,MCTS)SEI消息中,其中,虽然所述球形视频序列中的一个图像包括一个分块,但还是使用所述时间MCTS SEI消息,所述分块是一个MCTS。
23.根据权利要求22所述的视频编码设备,其特征在于,所述时间MCTS SEI消息中的each_tile_one_tile_set_flag设置为1作为所述可合并指示。
24.根据权利要求21所述的视频编码设备,其特征在于,所述SEI消息为轻量级合并指示SEI消息。
25.根据权利要求21或24所述的视频编码设备,其特征在于,所述SEI消息还表示通过将每个子图像码流的图像参数集(picture parameter set,PPS)中的entropy_coding_sync_enabled_flag设置为0,禁用波前并行处理。
26.根据权利要求20、21、23、24任一项所述的视频编码设备,其特征在于,所述可合并指示为一个语法元素,作为视频可用信息(video usability information,VUI)包括在序列参数集(sequence parameter set,SPS)中。
27.根据权利要求20、21、23、24任一项所述的视频编码设备,其特征在于,所述可合并指示为一个语法元素,作为视频可用信息(video usability information,VUI)包括在视频参数集(video parameter set,SPS)中。
28.根据权利要求20、21、23、24任一项所述的视频编码设备,其特征在于,所述可合并指示包括在档次/层/级语法结构中的通用档次兼容标志集与通用级标识码标志之间。
29.一种用于码流级指示的方法,其特征在于,所述方法包括:
对图像使用时间运动约束分块集(motion constrained tile set,MCTS)SEI消息;
将激活图像参数集(picture parameter set,PPS)中的tiles_enabled_flag设置为0,以指示所述图像只包括一个分块;
将所述时间MCTS SEI消息中的each_tile_one_tile_set_flag的值设置为1作为可合并指示,以指示子图像码流可以通过轻量级合并功能进行合并。
CN201980018319.8A 2018-04-03 2019-03-26 基于子图像码流的视角相关视频编码中的错误消除的码流指示 Active CN111837397B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862651821P 2018-04-03 2018-04-03
US62/651,821 2018-04-03
PCT/US2019/024126 WO2019195037A1 (en) 2018-04-03 2019-03-26 Bitstream signaling of error mitigation in sub-picture bitstream based viewport dependent video coding

Publications (2)

Publication Number Publication Date
CN111837397A CN111837397A (zh) 2020-10-27
CN111837397B true CN111837397B (zh) 2023-09-22

Family

ID=66102277

Family Applications (6)

Application Number Title Priority Date Filing Date
CN202311475666.8A Pending CN117692661A (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制的文件格式指示
CN202310554633.6A Pending CN116527898A (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制
CN201980021588.XA Active CN111937396B (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制的文件格式指示
CN202310551810.5A Pending CN116506612A (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制
CN201980018319.8A Active CN111837397B (zh) 2018-04-03 2019-03-26 基于子图像码流的视角相关视频编码中的错误消除的码流指示
CN201980018067.9A Active CN111837396B (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN202311475666.8A Pending CN117692661A (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制的文件格式指示
CN202310554633.6A Pending CN116527898A (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制
CN201980021588.XA Active CN111937396B (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制的文件格式指示
CN202310551810.5A Pending CN116506612A (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201980018067.9A Active CN111837396B (zh) 2018-04-03 2019-03-26 基于子图像码流视角相关视频编码中的误差抑制

Country Status (4)

Country Link
US (6) US11575886B2 (zh)
EP (4) EP3759924A1 (zh)
CN (6) CN117692661A (zh)
WO (3) WO2019195035A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7179163B2 (ja) * 2018-09-13 2022-11-28 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ビットストリームマージ
US11343567B1 (en) * 2019-08-07 2022-05-24 Meta Platforms, Inc. Systems and methods for providing a quality metric for media content
JP7436674B2 (ja) 2019-12-23 2024-02-21 エルジー エレクトロニクス インコーポレイティド サブピクチャに基づく映像コーディング装置及び方法
MX2022007896A (es) * 2019-12-23 2022-09-26 Lg Electronics Inc Dispositivo y metodo de codificacion de imagenes con base en filtrado.
CN114868158A (zh) 2019-12-26 2022-08-05 字节跳动有限公司 层级视频中的解码图片缓冲区参数的信令通知
KR20220115958A (ko) 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
EP4066387A4 (en) 2019-12-27 2023-02-15 ByteDance Inc. SUBPICTURE SIGNALING IN PARAMETER SETS
US11120538B2 (en) * 2019-12-27 2021-09-14 Zoox, Inc. Sensor degradation detection and remediation
US11490097B2 (en) 2019-12-27 2022-11-01 Alibaba Group Holding Limited Method and apparatus for signaling subpicture partitioning information
WO2021138652A1 (en) * 2020-01-04 2021-07-08 Bytedance Inc. Restrictions on inter prediction for subpicture
JP7460774B2 (ja) 2020-01-09 2024-04-02 バイトダンス インコーポレイテッド ビデオストリームにおけるフィラーデータユニットの処理
KR102578407B1 (ko) * 2020-03-31 2023-09-13 엘지전자 주식회사 레이어간 정렬된 서브픽처 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체
US20220321918A1 (en) * 2021-04-02 2022-10-06 Qualcomm Incorporated Picture orientation and quality metrics supplemental enhancement information message for video coding
WO2023049911A1 (en) * 2021-09-27 2023-03-30 Bytedance Inc. Method, apparatus, and medium for video processing
US20230224347A1 (en) * 2022-01-11 2023-07-13 Tencent America LLC Splitter and merger functions for multidimensional segmented media data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104054347A (zh) * 2012-01-18 2014-09-17 高通股份有限公司 在视频译码中波前平行处理的使用的指示
CN105432082A (zh) * 2013-04-08 2016-03-23 微软技术许可有限责任公司 用于兴趣区编码的运动约束图块集合

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2362532B (en) 2000-05-15 2004-05-05 Nokia Mobile Phones Ltd Video coding
JP3923898B2 (ja) * 2002-01-18 2007-06-06 株式会社東芝 画像符号化方法及び装置
KR101018320B1 (ko) * 2003-02-11 2011-03-04 엔디에스 리미티드 방송망내의 대화형 애플리케이션을 처리하는 장치 및 방법
US7184602B2 (en) * 2003-05-02 2007-02-27 Microsoft Corp. System and method for low bandwidth video streaming for face-to-face teleconferencing
CN1571508B (zh) * 2003-07-19 2010-05-12 华为技术有限公司 一种实现多画面的方法
KR20070011092A (ko) * 2005-07-20 2007-01-24 삼성전자주식회사 멀티미디어 컨텐츠 부호화방법 및 장치와, 부호화된멀티미디어 컨텐츠 응용방법 및 시스템
WO2009003683A1 (en) * 2007-07-02 2009-01-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for processing and reading a file having a media data container and a metadata container
US8930562B2 (en) * 2010-07-20 2015-01-06 Qualcomm Incorporated Arranging sub-track fragments for streaming video data
US9007463B2 (en) * 2010-12-22 2015-04-14 Sportsvision, Inc. Video tracking of baseball players which identifies merged participants based on participant roles
US20140003504A1 (en) * 2012-07-02 2014-01-02 Nokia Corporation Apparatus, a Method and a Computer Program for Video Coding and Decoding
TWI669952B (zh) * 2012-09-18 2019-08-21 美商Vid衡器股份有限公司 使用圖塊及圖塊組的感興趣區域視訊編碼的方法及裝置
US9161039B2 (en) * 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
US9578339B2 (en) * 2013-03-05 2017-02-21 Qualcomm Incorporated Parallel processing for video coding
KR101852669B1 (ko) * 2013-04-08 2018-04-26 소니 주식회사 Shvc를 이용한 관심 영역 확장성
JP6358475B2 (ja) * 2013-07-12 2018-07-18 ソニー株式会社 画像復号装置および方法、並びに、画像符号化装置および方法
US20150016503A1 (en) * 2013-07-15 2015-01-15 Qualcomm Incorporated Tiles and wavefront processing in multi-layer context
GB2516424A (en) * 2013-07-15 2015-01-28 Nokia Corp A method, an apparatus and a computer program product for video coding and decoding
US10694192B2 (en) * 2014-06-27 2020-06-23 Koninklijke Kpn N.V. HEVC-tiled video streaming
KR102618049B1 (ko) * 2016-02-02 2023-12-27 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 비디오 스트리밍의 관심 장면 섹션 및 영역 처리
FI20165114A (fi) 2016-02-17 2017-08-18 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
US10419768B2 (en) * 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
US10565463B2 (en) 2016-05-24 2020-02-18 Qualcomm Incorporated Advanced signaling of a most-interested region in an image
US20180020222A1 (en) * 2016-07-12 2018-01-18 Mediatek Inc. Apparatus and Method for Low Latency Video Encoding
EP3503546A4 (en) * 2016-08-25 2020-01-22 LG Electronics Inc. -1- METHOD FOR SENDING AN OMNIDIRECTIONAL VIDEO, METHOD FOR RECEIVING AN OMNIDIRECTIONAL VIDEO, DEVICE FOR SENDING AN OMNIDIRECTIONAL VIDEO, AND DEVICE FOR RECEIVING AN OMNIDIRECTIONAL VIDEO
EP3535977A4 (en) * 2016-11-01 2020-05-20 Nokia Technologies Oy APPARATUS, METHOD, AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
US20180176468A1 (en) * 2016-12-19 2018-06-21 Qualcomm Incorporated Preferred rendering of signalled regions-of-interest or viewports in virtual reality video
GB2594615B (en) 2017-03-20 2022-11-30 Canon Kk Method and apparatus for encoding and transmitting at least a spatial part of a video sequence
US11532128B2 (en) * 2017-03-23 2022-12-20 Qualcomm Incorporated Advanced signaling of regions of interest in omnidirectional visual media
US11062738B2 (en) 2017-03-23 2021-07-13 Qualcomm Incorporated Signalling of video content including sub-picture bitstreams for video coding
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
EP3646593A4 (en) * 2017-06-26 2021-03-31 Nokia Technologies Oy APPARATUS, PROCESS AND COMPUTER PROGRAM FOR OMNIDIRECTIONAL VIDEO
GB2567624B (en) * 2017-10-12 2021-05-26 Canon Kk Method, device and computer program for transmitting media content

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104054347A (zh) * 2012-01-18 2014-09-17 高通股份有限公司 在视频译码中波前平行处理的使用的指示
CN105432082A (zh) * 2013-04-08 2016-03-23 微软技术许可有限责任公司 用于兴趣区编码的运动约束图块集合

Also Published As

Publication number Publication date
CN117692661A (zh) 2024-03-12
WO2019195036A1 (en) 2019-10-10
US20210021814A1 (en) 2021-01-21
US20210021849A1 (en) 2021-01-21
CN116506612A (zh) 2023-07-28
CN111837396B (zh) 2023-05-09
EP3759922A1 (en) 2021-01-06
CN111937396A (zh) 2020-11-13
EP4274234A2 (en) 2023-11-08
EP4274234A3 (en) 2024-02-28
WO2019195037A1 (en) 2019-10-10
US11575886B2 (en) 2023-02-07
CN111937396B (zh) 2023-11-17
US20230038287A1 (en) 2023-02-09
US20210021815A1 (en) 2021-01-21
US11405606B2 (en) 2022-08-02
CN116527898A (zh) 2023-08-01
US20220337819A1 (en) 2022-10-20
EP3759924A1 (en) 2021-01-06
US11317087B2 (en) 2022-04-26
CN111837396A (zh) 2020-10-27
EP3759923A1 (en) 2021-01-06
WO2019195035A1 (en) 2019-10-10
EP3759923B1 (en) 2023-12-06
CN111837397A (zh) 2020-10-27
US11917130B2 (en) 2024-02-27
US20220337813A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
CN111837397B (zh) 基于子图像码流的视角相关视频编码中的错误消除的码流指示
US11688104B2 (en) Motion estimation using 3D auxiliary data
CN114071165B (zh) 视频编码器、视频解码器及对应方法
CN112042199A (zh) 自适应插值滤波器
KR102606330B1 (ko) Aps 시그널링 기반 비디오 또는 영상 코딩
CN112771884B (zh) 具有多个机位的虚拟现实内容的沉浸式媒体度量
JP7436543B2 (ja) 画像符号化システムにおいてアフィンmvp候補リストを使用するアフィン動き予測に基づいた画像デコード方法及び装置
CN111819855B (zh) 视频码流中的取消标志指示
CN111919443B (zh) 用于视频解码的方法和装置
KR20190020083A (ko) 인코딩 방법 및 장치 및 디코딩 방법 및 장치
KR102465614B1 (ko) 루마 샘플 위치를 참조하여 크로마 블록의 예측 모드를 결정하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2019200227A1 (en) Signaling spatial region correspondence between virtual reality viewpoints
US20220182623A1 (en) Video encoding/decoding method and device using segmentation limitation for chroma block, and method for transmitting bitstream

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