CN116965022A - 在视频编码中图片的部分的优先解码和输出 - Google Patents

在视频编码中图片的部分的优先解码和输出 Download PDF

Info

Publication number
CN116965022A
CN116965022A CN202180094270.1A CN202180094270A CN116965022A CN 116965022 A CN116965022 A CN 116965022A CN 202180094270 A CN202180094270 A CN 202180094270A CN 116965022 A CN116965022 A CN 116965022A
Authority
CN
China
Prior art keywords
dus
decoded
picture
decoding
pixels
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
CN202180094270.1A
Other languages
English (en)
Inventor
E·波泰齐亚纳基斯
E·托马斯
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.)
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Original Assignee
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
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 Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO, Koninklijke KPN NV filed Critical Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Publication of CN116965022A publication Critical patent/CN116965022A/zh
Pending legal-status Critical Current

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/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
    • 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/127Prioritisation of hardware or computational resources
    • 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/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

披露了用于处理图片序列的经编码表示的方法和装置,其中,该方法包括:在解码图片缓冲器DPB中为该图片序列的当前图片分配存储器;接收包括该当前图片的经编码表示的比特流,并且将该经编码表示作为多个解码单元DU存储在编码图片缓冲器CPB中,该多个DU中的每一个包括一组经编码像素,其中,该当前图片的不同DU的经编码像素之间不存在编码相依性;接收与存储在该CPB中的该多个DU中的每一个相关联的优先次序信息,该优先次序信息定义该当前图片的DU正在被解码的解码顺序;根据所述解码顺序将所述多个DU中的一个或多个DU解码为一个或多个经解码DU,每个经解码DU包括一组像素,每组像素与该当前图片中的不同区域相关联;将这些像素组存储在该DPB中,一组像素存储在该DPB的所分配存储器中与该当前图片中的区域的位置相对应的一个位置处;以及在该当前图片的其他DU正在被该解码装置解码或接收的同时根据该解码顺序输出该当前图片的经解码DU的一个或多个像素组作为部分输出。

Description

在视频编码中图片的部分的优先解码和输出
技术领域
本发明涉及在视频编码中图片的一个或多个部分的优先解码,并且特别地但非排他地,涉及用于图片的一个或多个部分的优先解码和输出的方法和系统、使用这样的方法的视频解码器装置、视频编码器装置和比特流生成器装置、以及用于执行这样的方法的计算机程序产品。
背景技术
比如AVC、AV1、HEVC、VVC等最先进的视频编码标准依赖于假设解码器模型,该假设解码器模型指定了包括经编码图片的比特流的缓冲过程、用于对经编码图片进行解码的解码器过程、以及经解码的编码图片在被输出之前的缓冲过程之间的关系。例如,HEVC标准在作为ISO/IEC 23008-2发布的HEVC规范的附件C中定义了所谓的假设参考解码器(HRD)模型。HRD允许编码器指定比特流的约束以识别确保该比特流可以被正确地缓冲、解码和输出所需要的能力。
HRD通常定义编码图片缓冲器(CPB)、瞬时解码过程和解码图片缓冲器(DPB)。解码器在其输入处接收包括图片序列的经编码表示的格式化比特流,其中可以包括携带经编码视频数据和相关联元数据的数据结构,比如NAL单元。解析器可以从比特流中提取NAL单元,对包括有效载荷和相关联元数据的NAL单元进行解包,并且使用元数据将经编码视频数据存储在CPB中。元数据可以包括与图片解码顺序(即,要对图片进行解码的顺序)有关的信息、以及用于识别CPB中的图片的与要输出或渲染图片的顺序有关的信息,比如图片顺序计数(POC)。
最先进的解码器能够将经编码视频数据存储为访问单元(AU)(即,整张图片)或AU的子集、表示图片的一部分的解码单元DU(例如,图片的独立条带)。因此,在后一种情况下,多个DU可以定义完整图片。HRD的操作包括初始化,其中,CPB和DPB两者都被设置为空的,并且此后,假设流调度器(HSS)根据指定到达时间表将DU输送存储到CPB中。在解码期间,在从CPB移除DU时通过瞬时解码过程对DU进行移除和瞬时解码。此后,将每个经解码图片放置在DPB中,并且根据进一步定时信息输出该经解码图片。
比如HEVC标准的HRD模型等当前假设解码器模型定义了访问单元级别(即,整个图片)的输出。因此,原则上,一旦形成图片的所有DU已经被解码,就从DPB输出该图片。然而,如今,许多应用程序需要快速访问CPB中的经解码数据。
例如,一些应用程序将不同视频对象(例如,同一场景的不同视点、360视频格式的立方图面、点云数据和视频数据等)打包在同一图片内部,而这些不同对象不一定必须一起或同时显示,并且在一些情况下,这些对象在通过渲染步骤被修剪掉时最终根本不显示。这样将不同视频对象打包到相同帧中的一个优点是:不同对象通过视频基本流的设计实现了时间锁定(同步),即,属于与特定解码时间戳相对应的单个帧,因此参考媒体时间线的单个时间点。但当这些不同视频对象一起被打包在同一图片中时,它们在解码之后作为单个输出图片全部同时对应用程序可用。因此,应用程序无法对这些对象中的每一个进行精细访问,而是仅当包括其对象的整个图片被解码时才能访问。
当对比如立方图投影视频等全向内容进行解码时,图片包含球形视频的不同部分(面)。在渲染期间,每个面的相关性可以取决于当前用户的视口。因此,对于特定时间实例,一个或多个面可以包含用户的视口的像素,而其他面未被用户看到。因此,可能有利的是,应用程序尽可能快地检索或至少访问下一帧在用户的视口中的已更新像素以应用渲染流水线的其余部分,使得可以以高速率刷新所呈现的图片。
因此,从上文得知,本领域需要能够快速访问解码器的解码像素缓冲器中的优先数据的改进的视频编码方法和视频编码系统。
发明内容
如本领域技术人员将认识到的,本发明的各方面可以体现为系统、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者在本文中通常可以被称为“电路”、“模块”或者“系统”的组合软件和硬件方面的实施例的形式。本披露内容中描述的功能可以实施为由计算机的微处理器执行的算法。此外,本发明的各方面可以采取在具有在其上体现的、例如存储的计算机可读程序代码的一种或多种计算机可读介质中体现的计算机程序产品的形式。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁、光、电磁、红外、或半导体系统、装置或设备、或者上述的任何合适的组合。计算机可读存储介质的更具体的示例(非穷举列表)将包括以下各项:具有一个或多个导线的电连接装置、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者上述的任何合适的组合。在本文献的上下文中,计算机可读存储介质可以是可以包含或存储用于由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何有形介质。
计算机可读信号介质可以包括具有在其中(例如,在基带中或作为载波的一部分)体现的计算机可读程序代码的传播数据信号。这种传播信号可以采取各种形式中的任何一种,包括但不限于电磁的、光的或其任何合适的组合。计算机可读信号介质可以是并非计算机可读存储介质并且可以传送、传播、或传输程序以用于由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的任何计算机可读介质。
可以使用任何适当的介质传输在计算机可读介质上体现的程序代码,这种介质包括但不限于无线、有线、光纤、电缆、RF等、或者上述的任何合适的组合。用于执行本发明的各方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合编写,该一种或多种编程语言包括比如Java(TM)、Smalltalk、C++等面向对象的编程语言和比如“C”编程语言或相似的编程语言等常规过程编程语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立软件包执行、部分地在用户计算机上执行并部分地在远程计算机上执行、或完全地在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型网络连接到用户计算机,或可以进行与外部计算机的连接(例如,使用互联网服务提供商、通过互联网)。
下面参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解的是,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机程序指令实施。可以将这些计算机程序指令提供给通用计算机、专用计算机、或其他可编程数据处理装置的处理器,特别是微处理器或中央处理单元(CPU),以产生机器,使得经由计算机、其他可编程数据处理装置或其他设备的处理器执行的指令创建用于实施流程图和/或框图的一个或多个框中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机、其他可编程数据处理装置、或其他设备以用特殊的方式发挥功能,从而使得存储在该计算机可读介质中的指令产生包括指令的制品,这些指令实施流程图和/或框图的一个或多个框中指定的功能/动作。
计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实施的过程,从而使得在计算机或其他可编程装置上执行的指令提供用于实施在流程图和/或框图的一个或多个框中指定的功能/动作的过程。另外,指令可以由任何类型的处理器执行,包括但不限于一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其他等效的集成或分立的逻辑电路系统。
附图中的流程图和框图展示了根据本发明的各实施例的系统、方法和计算机程序产品的可能实施方式的体系架构、功能和操作。关于此,流程图或框图中的每个框可以表示包括用于实施(多个)指定逻辑功能的一个或多个可执行指令的代码的模块、片段或部分。还应当指出的是,在一些替代实施方式中,框中标明的功能可以不按图中标明的顺序发生。例如,根据涉及的功能,连续示出的两个框实际上可能基本上同时执行,或者这些框可能有时以相反的顺序被执行。还将指出的是,可以通过执行指定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实施框图和/或流程图的每个框与框图和/或流程图中框的组合。
本披露内容中的实施例旨在提供在图片的其他部分仍在被解码器解码或仍在被解码器接收的同时进行图片的部分的优先解码以及优先解码的部分的输出。
这样,本披露内容中描述的实施例允许在解码装置应用程序(例如,VR应用程序、图像后处理应用程序或超低时延应用)外部的应用程序编程接口API访问数据槽,该数据槽包括如存储在解码器装置的解码图片缓冲器DPB中的当前图片的经解码部分。可以在当前图片被完全解码之前进行这种访问。在图片的其他部分尚未被解码(即,DU还未到达CPB或还未从CPB移除)的同时应用程序可以访问数据槽中的经解码图片(的一部分)。在当前图片的第二部分仍在被解码的同时应用程序(例如,渲染过程或视频处理步骤)可能已经基于当前图片的第一部分来开始。
在一个方面,本发明涉及一种处理图片序列的经编码表示的方法,其中,该方法可以包括:由解码装置的处理器在解码图片缓冲器DPB中为该图片序列的当前图片分配存储器。该方法可以进一步包括:由该处理器接收包括该当前图片的经编码表示的比特流,并且将该经编码表示作为多个解码单元DU存储在编码图片缓冲器CPB中,其中,该多个DU中的每一个可以包括一组经编码像素,并且其中,至少两个DU对该多个DU中的其他DU的像素不具有帧内编码相依性。
进一步地,该方法可以包括由该处理器接收与存储在该CPB中的该多个DU相关联的优先次序信息,该优先次序信息定义该当前图片的DU可以被解码的解码顺序,优选地考虑到该多个DU的至少一部分的DU的像素的帧内编码相依性。该方法还可以包括由该处理器根据所述解码顺序将所述多个DU中的一个或多个DU解码为一个或多个经解码DU,每个经解码DU包括一组像素,每组像素与该当前图片中的不同区域相关联。进一步地,该方法可以包括由该处理器将这些像素组存储在该DPB中,一组像素存储在该DPB的所分配存储器中与该当前图片中的区域的位置相对应的一个位置处。该方法还可以包括:在该当前图片的其他DU正在被该解码装置解码或接收的同时该处理器根据该解码顺序输出该当前图片的经解码DU的一个或多个像素组作为部分输出。
可以将图片中的不同像素区域编码为一个或多个DU,其中,至少两个DU中的像素对该多个DU中的其他DU的像素不具有帧内编码相依性。例如,在由立方图格式表示的球形视频数据的情况下,其中,可以将立方图投影的每个面的像素编码为一个或多个DU。进一步地,可以基于内容的某些特性将优先级属性指派给这些DU中的每个DU。一旦被解码,表示图片中的区域(输出图片区域)的像素组就可以根据它们在该图片中的位置存储在该DPB中。
如果高优先级DU已被解码成输出图片区域并且定义该输出图片区域的该组像素已被复制到该DPB中,则在图片的所有DU已被解码之前解码器可以输出该输出图片区域,例如将该输出图片区域复制到数据槽中。这样,可以在整个图片被解码之前实现完整图片的预定优先部分的部分重建。执行部分重建的顺序可以是内容特定的,其中,定义DU的解码顺序的优先次序信息是例如由内容创建者确定的,或者是用户或应用程序特定的,其中,定义DU的解码顺序的优先次序信息是例如由使用解码器装置的应用程序确定的。
实施例允许例如应用程序在图片被完全解码之前快速访问图片的优先部分。这使应用程序能够在图片的其他部分仍在被解码的过程中或甚至在被解码装置接收的过程中的同时优先处理图片的特定部分并且指示解码器装置对图片的优先部分进行解码。这样,在该图片并未被完全解码的同时可以在解码装置的输出侧开始图片的优先部分的渲染或后处理步骤。
在实施例中,该处理器输出这些经解码DU的一个或多个像素组可以进一步包括:确定输出信息,该输出信息针对该一个或多个像素组中的至少一组标识该当前图片中的区域的位置。在另一实施例中,该处理器输出这些经解码DU的一个或多个像素组可以进一步包括优选地经由应用程序编程接口为在该解码装置外部的应用程序提供对该输出信息的访问。
在实施例中,该处理器输出经解码DU的一个或多个像素组可以进一步包括将这些像素组中的每一个复制到至少一个数据槽中,该至少一个数据槽可由在该解码装置外部的应用程序优选地经由API访问。
在实施例中,该优先次序信息可以针对该当前图片的每个DU包括一个DU标识符,例如decoding_unit_idx标识符。
在实施例中,该优先次序信息可以包括优先级参数,这些优先级参数由该解码器装置使用以确定该解码顺序。
在实施例中,该优先次序信息可以包括用于标识与关联于该当前图片的DU相关联的一组像素的位置的DU位置标识符。
在实施例中,与DU相关联的DU标识符和优先级参数可以被格式化为网络抽象层NAL单元等,更优选地,该NAL单元包括或被实施为补充增强信息SEI消息,比如DU info SEI消息。
在实施例中,该优先次序信息可以包括该当前图片的DU优先级列表,该DU优先级列表包括DU标识符,例如decoding_unit_idx标识符,该DU优先级列表中所标识的DU的顺序由该解码器装置使用以确定该解码顺序。在实施例中,该DU优先级列表中的DU标识符的位置可以标识一个DU相对于该当前图片的其他DU的解码优先级的解码优先级。在实施例中,与该当前图片相关联的DU优先级列表可以被格式化为NAL单元等,优选地,该NAL单元包括或被实施为补充增强信息SEI消息,比如图片定时SEI消息。
在实施例中,该输出信息可以进一步包括以下项中的至少一项:指示该当前图片的经编码表示是否被完全解码的信息;指示尚未被解码的DU数量和/或被解码的DU数量的信息;或用于确定尚未被解码的DU数量和/或被解码的DU数量的信息;该当前图片中尚未被解码的一个或多个区域和/或该当前图片中被解码的一个或多个区域;与该当前图片相关联的输出顺序标识符,优选地图片顺序计数POC值,该输出顺序标识符标识该图片序列中的当前图片相对于该序列中的其他图片的输出位置的输出位置。
在实施例中,该多个DU中的一个或多个DU可以包括以下项中的至少一项的经编码表示:360视频数据、全向视频数据、场景的深度信息、与预定观看角度相关联的视频数据、或点云数据。
在实施例中,该解码顺序可以被布置用于输出与视频渲染设备、优选地虚拟现实VR渲染设备的视口相关联的经解码DU的像素组,该输出是在输出不与该视口相关联的像素组之前,其中,该视口仅涵盖该当前图片的一部分。
在实施例中,该数据槽可以包括至少与经解码DU的大小相匹配的至少一个缓冲器,执行该部分输出包括:将该DPB中的经解码DU的像素复制到该至少一个缓冲器;或,
其中,该数据槽包括至少n个缓冲器,优选地,n等于该多个DU的数量,该n个缓冲器中的每一个的大小至少与经解码DU的大小相匹配,执行该部分输出包括:将该经解码DU的像素复制到该n个缓冲器中的至少一个中。
在实施例中,该数据槽可以具有至少与至少一个图片的大小相匹配的至少一个缓冲器。在实施例中,执行该部分输出可以包括:根据经解码DU的像素在该当前图片中的位置将该经解码DU的像素复制到该缓冲器中的某个位置处。
在实施例中,DU可以基于如在AVC中定义的一个或多个宏块、如在HEVC中定义的一个或多个编码树单元CTU、如在HEVC或VVC中定义的一个或多个条带或者如在VVC中定义的一个或多个子图片。
在实施例中,该解码可以基于编码标准。在实施例中,该编码标准可以是基于块的视频编码标准。在实施例中,该编码标准可以是以下项之一:AVC、HEVC、VP9、AV1、VVC、EVC编码标准或者基于AVC、HEVC、VP9、AV1、VVC、EVC编码标准的编码标准。
在一个方面,本发明涉及一种用于处理图片序列的经编码表示的解码装置,该解码装置包括:计算机可读存储介质,该计算机可读存储介质具有用其体现的程序的至少一部分;以及计算机可读存储介质,该计算机可读存储介质具有用其体现的计算机可读程序代码;以及处理器,优选地微处理器,该处理器耦合至该计算机可读存储介质,其中,响应于执行该计算机可读程序代码,该处理器被配置为执行可执行操作,其中,这些可执行操作可以包括以下一个或多个步骤:在解码图片缓冲器DPB中为该图片序列的当前图片分配存储器;接收包括该当前图片的经编码表示的比特流,并且将该经编码表示作为多个解码单元DU存储在编码图片缓冲器CPB中,该多个DU中的每一个包括一组经编码像素,其中,至少两个DU对该多个DU中的其他DU的像素不具有帧内编码相依性;接收与存储在该CPB中的该多个DU中的每一个相关联的优先次序信息,该优先次序信息定义该当前图片的DU正在被解码的解码顺序;根据所述解码顺序将所述多个DU中的一个或多个DU解码为一个或多个经解码DU,每个经解码DU包括一组像素,每组像素与该当前图片中的不同区域相关联;将这些像素组存储在该DPB中,一组像素存储在该DPB的所分配存储器中与该当前图片中的区域的位置相对应的一个位置处;以及在该当前图片的其他DU正在被该解码装置解码或接收的同时根据该解码顺序输出该当前图片的经解码DU的一个或多个像素组作为部分输出。
在实施例中,这些可执行操作进一步包括:将这些像素组中的每一个复制到至少一个数据槽中,该至少一个数据槽可由在该解码装置外部的应用程序优选地经由API访问;确定输出信息,该输出信息针对该一个或多个像素组中的至少一组标识该当前图片中的区域的位置;以及优选地经由应用程序编程接口为在该解码装置外部的应用程序提供对该输出信息的访问。
在一个方面,本发明可以涉及一种被配置为执行上文描述的步骤中的任何步骤的解码装置。
在另一方面,本发明还可以涉及一种用于确定图片序列的经编码表示的编码器装置。在实施例中,该编码器装置可以包括:计算机可读存储介质,该计算机可读存储介质具有用其体现的计算机可读程序代码;以及处理器,优选地微处理器,该处理器耦合至该计算机可读存储介质,其中,响应于执行该计算机可读程序代码。
在实施例中,该处理器可以被配置为执行以下可执行操作中的任何操作:接收包括像素的图片序列;识别该图片序列中的当前图片的像素区与该图片序列中的其他图片的像素区之间的编码相依性;将该当前图片编码成多个解码单元DU,该多个DU中的每一个包括一组经编码像素;将这些DU变换成比特流,该比特流包括用于对该多个DU进行解码的元数据,该元数据包括与存储在该CPB中的该多个DU相关联的优先次序信息,该优先次序信息定义该当前图片的DU可以被解码的解码顺序,优选地考虑到该多个DU的至少一部分的DU的像素的帧内编码相依性,以及
将包含这些DU和该元数据的所述比特流存储在输出缓冲器中。
在又一方面,本发明可以涉及一种比特流生成装置,该比特流生成装置被配置为:接收包括图片序列的经编码表示的比特流;解析该比特流并且针对该序列中的图片的每个经编码表示识别表示当前图片的多个DU,该多个DU中的每一个包括一组经编码像素;在该比特流中注入元数据以形成修改后的比特流,该元数据包括与存储在该CPB中的该多个DU相关联的优先次序信息,该优先次序信息定义该当前图片的DU可以被解码的解码顺序,优选地考虑到该多个DU的至少一部分的DU的像素的帧内编码相依性;以及输出该修改后的比特流。
数据槽中的经解码信息通过部分图片输出方案变得可用的粒度可能取决于应用程序的类型。此处,可以通过部分输出变得可用的最小单元被称为解码单元DU,即,发生解码器过程(例如,在AVC中输出一个或多个宏块或者在HEVC或VVC中输出一个或多个编码树单元(CTU))的基本处理单元。可替代地,可以在更高级别的图片分割方案中实现DPB的子图片输出,比如如分别在HEVC和VVC中定义的解码单元(DU)或子图片。经编码DU可以表示是经编码图片的一部分的经编码样本块。经解码DU可以定义预定形状的样本区域,例如矩形样本区域、三角形样本区域等。
本发明还可以涉及一种计算机程序产品,该计算机程序产品包括软件代码部分,这些软件代码部分被配置用于当在计算机的存储器中运行时执行根据上文描述的任何过程步骤所述的方法步骤。在本申请中,使用以下缩写词和术语:
将参考附图进一步说明本发明,附图将示意性地示出根据本发明的实施例。将理解的是,本发明不以任何方式局限于这些具体实施例。
附图说明
图1A和图1B是展示了已知假设参考解码器(HRD)模型的框图。
图2A至图2C展示了解码单元和图片序列结构的概念。
图3A和图3B展示了包括DU的图片;
图4A至图4C展示了根据本发明的实施例的修改后的假设参考解码器(HRD)模型。
图5描绘了根据本发明的实施例的优先解码过程的流程图;
图6描绘了用于生成适合于部分输出的比特流的编码器装置;
图7描绘了根据本发明的实施例的被配置为执行部分输出的解码器装置。
图8A和图8B描绘了图片序列结构的示意图;
图9描绘了根据本发明的实施例的缓冲器输出方案。
图10描绘了根据本发明的另一实施例的缓冲器输出方案。
图11A至图11C描绘了根据本发明的各种实施例的缓冲器输出方案。
图12示意性地描绘了根据本发明的实施例的处理优先解码的DU。
图13描绘了包括多种媒体类型的视频帧的示例;
图14描绘了根据本发明的实施例的优先解码过程的示例性使用;
图15描绘了展示可以与本披露内容中描述的实施例一起使用的示例性数据处理系统的框图。
具体实施方式
图1A和图1B是展示了如在HEVC视频标准(作为ISO/IEC 23008-2和建议ITU-TH.265发布的HEVC规范的附件C)中定义的用于假设参考解码器(HRD)的缓冲器模型的框图。大部分编解码器使用标准化解码器模型来指定关于在编码和解码期间使用的缓冲器的约束。如图1A中所示出的,由假设流调度器(HSS)102输送比特流,该比特流包括根据指定到达时间表馈送到编码图片缓冲器CPB 104的输入的图片的经编码表示。经编码图片和相关联元数据是从比特流中提取的并且存储在编码图片缓冲器CPB中。该CPB是用于在被提供到解码过程106之前存储经编码图片的先进先出缓冲器。在一些情况下,每个经编码图片可以包括多个解码单元(DU)。在这种情况下,经编码图片可以在比特流中输送到CPB并且作为DU存储在CPB中。然后,通过以预定顺序将多个DU中的每一个提供到解码过程104来对经编码图片进行解码。一旦提供到解码过程,就从CPB移除DU。由于解码过程是被瞬时考虑的,因此在从CPB移除DU时对DU进行解码。
通过解码过程104产生的经解码DU存储在解码图片缓冲器DPB 106中。DPB是保存经解码图片(的样本)用作参考(例如,帧间预测)并且用于延迟输出的缓冲器。当帧间预测不再需要并且输出不再需要经解码图片时可以从DPB移除该经解码图片。在一些示例中,DPB 106中的经解码图片可以在被输出和显示之前由输出裁剪单元108裁剪。输出裁剪单元108可以是视频解码器的一部分或可以是外部处理器的一部分,例如,被配置为进一步处理视频解码器的输出的渲染引擎。CPB和DPB的行为在数学上由假设参考解码器模型指定,该模型对不同定时、缓冲器大小和比特率施加约束。典型HRD参数可以包括比如以下项等参数:初始CPB移除延迟、CPB大小、比特率、初始DPB输出延迟和DPB大小。
图1B描绘了定义图片序列(例如,经编码视频序列(CVS)或图片组(GOP))的解码的HRD的定时模型,该图片序列形成可以在不具有任何进一步信息的情况下解码的独立视频数据集。图片的解码被定义为在t=0开始并且在序列的最后一图片被解码并且被输出时结束的一连串步骤。定义HRD以用于解码两个访问单元(AU),其中,每个AU表示完整图片的经编码样本以及解码单元(DU),其中,每个DU表示图片的一部分的经编码样本(在VVC中被称为子图片)。这个模型考虑了数个事件,其中,每个事件在解码过程期间与一个时间点相关联:
-CPB中的第(i+1)个DU的初始到达(前几个比特)和最终到达(最后几个比特),和/>
-从CPB移除第i个DU,
-DPB中的第(i-1)个经解码DU(DDU)的到达,
-图片的输出,
在这里,从CPB移除经编码DU并且经解码DU到达DPB相同于在比如HEVC和VVC等编码标准中假设DU的解码过程是瞬时的。
CPB的输入是包括DU的比特流,其中,DU可以是AU或AU的子集。CPB移除基于访问单元(AU),即完整经编码图片,该访问单元可以被格式化为包括一个经编码图片的数据的一组网络抽象层(NAL)单元。AU的子集的示例可以是例如AU的条带,如图2A中所示出的。这个图展示了例如包括一组NAL单元的比特流,该组NAL单元包括形成AU的非VCL NAL单元(VSP、SPS和PPS)以及两个VCL NAL单元。这个示例因此展示了包括被划分为两个条带2041、2042的视频帧202的经编码表示的比特流,每个条带占据帧的二分之一并且对该帧进行水平划分。当解码器接收到比特流时,它可以解析比特流并提取VCL NAL单元并且将VCL NAL单元中的每一个存储为DU。这样的DU可以是例如图片的条带。
对于对帧的解码可以例如被分解为解码多个块行的低延迟应用程序,在比如HEVC标准等标准中引入被定义为AU子集的DU。可以使用SEI消息将定时信息指派给DU。例如,图片定时SEI消息可以用于指示整个访问单元的编码图片缓冲器(CPB)移除和解码图片缓冲器(DPB)移除的定时。因此,在HRD模型中引入DU的概念以能够在图片(视频帧)的并非所有DU已到达CPB的同时开始该图片的解码。这样,可以减少由于例如编码和传输而在解码器装置的输入层发生的延迟。然而,CPB的输出由HRD在图片级别进行管理,因此DPB中的经解码DU的概念不具有任何功能用途。
在本申请中,在修改后的HRD模型中扩展并使用如参考图1和图2描述的DU的概念,以实现图片的优先区域的经解码像素组的低延迟输出。此处,在整个图片被解码之前实现经编码图片的经解码像素组的输出(即,图片的一部分的输出)。在本申请中,术语DU可以是指在任何已知或未来视频编码标准中定义的基本解码单元。例如,DU可以表示图片(子图片)的一部分的经编码像素,包括一些元数据(如例如图2A中所示出的)。
DU的示例可以包括从AVC中已知的一个或多个宏块、从HEVC和VVC中已知的一个或多个编码树单元(CTU)或从VVC中已知的子图片。DU形成了形成图片中的区域的一组像素的经编码表示,其中,一个DU的经编码像素对同一图片的其他DU的经编码像素将不具有任何空间编码相依性。形成图片中的区域的该组像素可以在本申请中被称为输出图片区域。
DPB的大小取决于编码层次结构,因为该DPB被配置为保存将用于解码图片序列结构中的当前图片和/或一个或多个未来图片的参考图片。例如,可能发生的情况是,取决于经解码图片的结构,图片首先被解码,但仅稍后才呈现。无序编码就是这种情况,其中,比特流中的经编码图片是按解码顺序布置的。由于编码相依性,DPB可以在短周期内保存某些经解码图片,直到对图片进行解码所需的所有图片都被解码为止。此后,如果解码不再需要经解码图片,则可以输出经解码图片并且将其从DPB移除。
这一点在图2B和图2C中展示,这些图示出了按输出顺序布置的经编码图片P1至P4和B1至B4的两个序列,其中,编号指示解码顺序。由于解码相依性,因此对这些序列进行解码在这些示例中需要(至少)三个图片的DBP大小。例如,当P3正在被解码时图2A中的经解码图片P1和P2都需要存储在DPB中,因为它们都是在P3之后输出的。因此,DPB需要能够同时存储P1、P2和P3。类似地,在图2B中,每个图片使用两个参考图片,因此DPB需要足够大以同时存储三个图片。例如,对B2进行解码需要经解码图片B0和B1。图2B中的参考结构是基于B图片的所谓的低延迟结构的示例,其中,广泛使用双向预测。在这个结构中,编码顺序和输出顺序是相同的。
在HEVC HRD模型中,可以在AU级别(整个图片)或DU级别(子图片)管理从CPB移除经编码视频数据,其中,假设AU或DU的解码是瞬时的。AU定义了形式是一组网络抽象层(NAL)单元的数据结构,包括一个经编码图片。解码器可以遵循由视频编码器生成的用信号表示的解码时间(例如,如在所谓的图片定时补充增强信息(SEI)消息中定义的)来开始AU的解码。HRD模型定义了可以用于控制解码和输出的定时的语法元素。
CPB可以在AU级别(即,图片级别)或DU级别(子图片级别,即,小于整个图片)操作。AU或DU级别操作可以取决于解码器是否优选子图片级别CPB操作(这可以由未在HEVC标准中指定的外部装置来指定)以及比特流中是否存在子图片CPB参数(或经由未在HEVC标准中指定的外部装置提供给解码器)。当两个条件都成立时,CPB可以在子图片级别操作,使得每个DU被定义为AU的子集。比特流中的参数和/或标志可以将解码器应在哪种模式中操作用信号发送给解码器。例如,如果语法元素SubPicCpbFlag等于0,则DU可以等于AU,否则DU是AU的子集。
编码器或应用程序可以在比特流中插入HRD参数以基于HRD模型来控制解码过程。例如,在实际视频应用程序中,解码器装置可以遵循由视频编码器生成的用信号表示的解码时间(例如,如在所谓的图片定时补充增强信息(SEI)消息中定义的)来开始AU的解码。在这种情况下,输出特定经解码图片的最早可能时间等于该特定图片的解码时间(即图片开始被解码的时间)加上对该特定图片进行解码所需的时间(在HRD模型中该时间被假设为瞬时的)。
利用视频编解码器的视频应用程序不仅包括流式传输和广播/多播应用程序,而且包括虚拟现实(VR)和游戏应用程序。虚拟现实和游戏应用程序是消费所谓的全向内容的视频应用程序的示例。当编码全向内容时,比如立方图投影等特殊投影用于将球面上的像素映射在视频图片的2D平面上。这样投影的视频帧包括球形视频的不同部分,其中,所渲染的内容是由当前用户的视口确定的。全向内容的其他示例可以包括例如点云数据,其中,点云的每个点表示定义3D空间的坐标系中的矢量。在每个时间实例处,全向视频的一些部分由用户的视口覆盖,而其他部分未由用户的视口覆盖。因此,对于应用程序来说是有利的,尽快地从下一帧检索用户的视口中更新的样本以能够刷新所呈现的图片。因此,对于这些应用程序,期望低延迟渲染流水线,其中,期望快速访问CPB中的经编码样本和DPB中的经解码样本。
在比如拼接视频流式传输等常规VR视频处理方案中,VR视频的图片的像素在空间上被划分成图块。例如,图3展示了具有360视频的众所周知的立方图格式的图片302,该图片包括表示不同立方面3041至3046的像素区域,其中,每个立方面包括像素球的所投影内容。不同立方面中的每个立方面中的像素可以是可自解码的。换句话说,可以对像素进行编码使得不同立方面的经编码像素之间不存在编码相依性。在图片中定义这样的区域的像素组可以被称为图块。基于视口306的位置,视频流客户端可以选择图片中的某些图块,在这个示例中是图块1和2,然后对这些图块进行编码并且以流(所谓的图块流)的形式将这些图块传输到视频流客户端,其中,解码器将对图块进行解码,并且在必要的情况下将图片缝合在一起以构建表示图片中与用户的视口一致的区域的一组像素。在这样的视频处理方案中,视频数据的处理限于所选图块。然而在许多用例中,对其他图块的至少一部分进行解码仍然也是有益的。例如,用户可以移动他的头部,这需要快速访问图片中的其他图块的像素。另外,当前图片中的图块与它们在后续图片中对应的处于同一位置的图块之间可能存在解码相依性。不对这些图块中的一些图块进行解码可能会破坏CVS或GOP结构,使得视频解码在这种情况下将是不可能的。
本申请中的实施例解决了上述问题。本发明的主要见解涉及修改后的假设参考解码器模型,该假设参考解码器模型使得能够对经编码图片进行优先DU级别处理并且快速访问DPB中的优先经解码DU。修改后的HDR模型允许定义图片中的区域的一组经编码像素的DU基于优先次序信息进行排序,使得存储在DPB中的具有高优先级的DU可以在较低优先级的DU之前被提供到解码过程。为了实现图片的DU的解码的重新排序,DU的至少一部分是可独立解码的,即图片的一个DU的经编码像素与同一图片的其他DU的经编码像素不具有编码相依性。
在图3B中提供了包括基于优先次序信息来排序的DU的图片的示例。这个图展示了包括多个图块的图片304(视频帧),在这个示例中是两个图块,即图块A和图块B,其中,每个图块被划分在DU中,图块A包括DUa至DUd并且图块B包括DUe至DUh。DU之间的箭头描绘了不同DU的像素之间的编码相依性。例如,如图中所示出的,DUb和DUc对DUa具有编码相依性,其中,DUa对其他DU不具有(帧内)编码相依性并且因此可以独立于图片中的其他DU被解码。图片中的DU可以与如由带圆圈数字306指示的预定第一解码顺序相关联,这些带圆圈数字可以定义第一解码序列号。这个编码顺序从在第一图块的左上角的DUa开始,到在第一图块的右下角的DUd,并且然后以在第二图块的左上角的DUe继续,一直到DUh。
如由带方块的数字408表示的第二编码顺序也是可能的。这些数字可以定义第二解码序列号。这个解码顺序从第二图块的DUe和第一图块的DUa开始。可以在没有来自其他DU的任何像素的情况下对这些DU进行解码。此后,考虑到各种编码相依性,可以按如由带方块数字指示的顺序对DU进行解码。
因此,基于优先次序信息(如例如由带圆圈或带方块的解码序列号表示的,其中,低值解码序列号具有与较高解码序列号相比更高的优先级),可以优先处理对图块(例如,图块A和然后图块B)进行解码的序列或者图片的上半部、接着是图片的下半部。
如在这个图片中所示出的,在两个示例中,在改变图片中的DU的解码顺序的同时尊重相依性。应注意,许多不同替代方案是可能的,例如,在另一示例中,首先对不具有帧内相依性的DU进行解码(例如,DUa、DUe、DUg),并且然后对具有编码相依性的DU进行解码。在最极端的情况下,图片中的每个DU与其他DU的像素不具有帧内编码相依性。在这种情况下,优先次序信息可以用于为图片中的DU确定任何可能的解码序列。
修改后的HRD模型进一步考虑到DU的编码过程并非瞬时的而是需要多个时钟周期,这可能导致在使经解码图片可用于输出到应用程序方面的延迟。为了解决这个问题,修改后的HRD模型在整个图片被解码之前提供对DPB中的经解码DU的访问。这样的快速访问在各用例中是特别有利的,其中,在图片的其他部分仍在被接收或解码的同时需要通过应用程序(比如VR应用程序中的视口)对图片的特定部分进行快速访问。
图4A和图4B是展示了根据本发明的实施例的用于假设参考解码器的缓冲器模型的框图。如图4A中所示出的,根据指定到达时间表将包括经编码图片的比特流输入到编码图片缓冲器CPB 402中。这个过程由假设流调度器(HSS)管理。经编码图片和相关联元数据作为解码单元(DU)被存储在CPB中。CPB是包含需要被解码的图片的DU的缓冲器。类似于图1的HRD模型,可以将视频数据作为比特流输送到CPB的输入并且由解码器装置解析该视频数据。这样,图片的包括视频数据和元数据的NAL单元可以作为DU存储在CPB中。DU的经编码像素组形成图片中的像素区域的经编码表示。这个像素区域在本申请中被称为输出图片区域。
进一步地,形成图片的多个DU中的每个DU与允许优先处理图片的DU的元数据相关联。例如,图片的每个DU可以与优先次序参数相关联,这允许解码器确定图片的存储于CPB中的可用DU中的哪个DU应首先被提供到解码过程。这样,基于在从CPB移除DU时通过解码过程404(例如,通过视频解码器)解码并且存储在DPB 406的所分配区域中的解码优先级信息来从CPB移除DU。
由于DU的解码优先次序,将不再根据如在编码期间确定的顺序(例如,光栅扫描顺序等)用经解码DU的像素填充DPB中的所分配区域。替代地,经解码DU(DDU)的一组像素、即输出图片区域将被放置在DPB中与图片中的输出图片区域的位置相匹配的一个位置处。这样,将用经解码DU的像素组填充DPB中的所分配存储器部分。只要图片的DU在CPB中可用并且图片在CPB中的时间还未过去,这个过程就可以继续。在DU的解码期间,如果将经解码DU的一组像素复制到DPB,则可以输出该组像素,例如将该组像素复制到数据槽。这样,在与其他DU相关联的其他部分仍在被接收或解码的同时应用程序可以访问图片的预定部分的像素。每当经解码DU的像素组被复制到DPB时,可以重复这个过程。因此,在图片的DU的接收和解码期间。
在图4B中示意性地描绘了修改后的HDR模型的定时方案。如这个图中所示出的,可以用DU填充CPB,其中,每个DU具有特定相关联优先级。基于优先级,从CPB移除420DU并且将其提供到解码过程。例如,如图中所示出的,最初,图片k的DU3和DU4都存储在CPB中,并且尽管DU4是稍后接收的,但它被发送以比DU3早解码422,因为它具有比DUi+1高的优先级。图片k的已被解码的DU(比如经解码DU2 424和DU1)将存储在DPB中的分配给图片k的DU的位置426处,并且被输出、例如复制到数据槽,而且图片k的其他DU仍在被处理。DPB还可以包含可以用作用于解码另外的图片的参考图片的其他图片(例如,图片k-1)的经解码DU,例如,图片k或其他图片将经由比特流发送到解码器。
图4A和图4B中描绘的方案可以有利地用于解码比如VR或360视频应用程序等媒体应用程序的视频数据。图片中的不同像素区域可以被编码为一个或多个DU,其中,一个DU中的像素对图片的其他DU中的其他像素不具有编码相依性。例如,在由如图3中描绘的立方图格式表示的球形视频数据的情况下,立方图投影的每个面的像素可以被编码为一个或多个DU。进一步地,可以基于内容的某些特性将优先级属性指派给这些DU中的每个DU。在图4C中描绘了立方图投影的具有所指派优先级属性的面的示例。如这个图片中所示出的,最高优先级(零)可以指派给包括在用户的视口4041内的360场景的一部分内容的(立方)面的一个或多个DU。进一步地,形成与包括属于该视口的像素的面相邻的面4042至4045的一个或多个DU可以具有1的优先级,即比与视口相关联的一个或多个DU低但比不与关联于视口的面直接相邻的面4046的DU(其具有优先级2)高的优先级。包括VR数据的图片可以以这样的方式编码成比特流,即可以将形成面的像素区域处理为修改后的HDR模型的DU,使得可以实现DU的优先处理以及解码器装置对经解码DU(例如,输出图片部分)的快速输出。
明显地,该方案不限于包括比如参考图4C所描述的立方投影像素的图片的编码,但通常可以用于任何类型的图片格式,其中,使图片中的不同区域与不同解码优先级相关联是有利的。
一旦被解码,输出图片区域(即,表示图片中的区域的像素组)就可以根据它们在图片中的位置存储在DPB中。如果高优先级DU已被解码成输出图片区域并且定义该输出图片区域的该组像素已被复制到该DPB中,则在图片的所有DU已被解码之前解码器可以输出该输出图片区域,例如将该输出图片区域复制到数据槽中。这样,可以在整个图片被解码之前实现完整图片的预定优先部分的部分重建。执行部分重建的顺序可以是内容特定的,其中,定义DU的解码顺序的优先次序信息是例如由内容创建者确定的,或者是用户或应用程序特定的,其中,定义DU的解码顺序的优先次序信息是例如由使用解码器装置的应用程序确定的。
实施例允许例如应用程序在图片被完全解码之前快速访问图片的优先部分。这使应用程序能够在图片的其他部分仍在被解码的过程中或甚至在被解码装置接收的过程中的同时优先处理图片的特定部分并且指示解码器装置对图片的优先部分进行解码。这样,在该图片并未被完全解码的同时可以在解码装置的输出侧开始图片的优先部分的渲染或后处理步骤。
参考图5描述了由解码器装置执行的这样的优先解码过程的示例。优先解码过程可以由接收包括图片序列的经编码表示的比特流的解码器装置执行,该图片序列包括当前图片(即,需要被解码的图片)。在第一步骤502中,解码器可以在解码图片缓冲器DPB中为当前图片分配存储器空间。解码器装置可以解析比特流并且将当前图片的经编码表示作为多个解码单元DU存储在编码图片缓冲器CPB中(步骤504)。
在实施例中,比特流可以包括NAL单元。解码器装置可以随后从比特流中提取NAL单元,对包括有效载荷(例如,比如经编码像素等视频数据)和相关联元数据的NAL单元进行解包,并且使用元数据来将有效载荷作为DU存储在CPB中。此处,一组DU可以表示需要被解码成经解码图片的经编码图片。进一步地,DU中的每一个可以表示经编码样本块,该经编码样本块表示图片的一部分。
进一步地,图片的多个DU中的每一个可以包括一组经编码像素,其中,多个DU中的至少两个DU对其他DU的像素不具有帧内编码相依性。图片的DU可以按预定顺序布置在比特流中,例如如参考图3A和图3B所描述的。
常规地,图片的DU可以存储在CPB中并且按光栅扫描顺序提供到解码过程。然而如果解码器检测到DU与优先次序信息(例如,如参考图3A和图3B所描述的解码序列号)相关联,则可以在如由优先次序信息指示的序列中将DU提供到解码过程,其中,优先次序信息考虑到DU的至少一部分可以对图片中的其他DU具有(帧内)编码相依性。这样,可以基于优先级信息来处理(解码)DU。解码器装置可以进一步针对存储在CPB中的多个DU中的每一个接收这样的优先级信息(步骤506)。可以以不同的方式实施优先级信息。在一个变体中,优先级信息可以具有每个DU的优先级参数的形式,如图4C中所示出的。这个参数可以用于控制CPB中的DU被解码的顺序。
例如,如果CPB包含与面4041、4043和4044相关联的DU,则解码器装置可以选择并向解码过程提供具有最高优先级参数(在这种情况下是零值)的DU,而不管在哪个时刻和按哪种顺序将这个DU加载在CPB中。因此,在这种情况下,可以将与视口4041相关联的DU(即,与用户的视口一致的DU)提供到解码过程。此后,解码器装置可以选择与优先级参数1相关联的DU之一。
因此,基于优先级信息,解码器装置可以从CPU中的多个DU选择一个DU并且将所选DU提供到解码过程,使得将在定义当前图片中的区域的一组像素中对该所选DU进行解码(步骤508)。不同DU与图片中的不同区域相关联。因此,与被解码的DU相对应的该组像素将存储在DPB的所分配存储器中与当前图片中的区域的位置相对应的位置处(步骤510)。
解码器装置可以进一步确定在经编码图片的解码期间是否可以执行部分输出,即输出图片区域的像素输出。这样的部分输出操作可以包括在经编码图片的其他DU尚未被解码并从CPB移除和/或到达CPB的同时将经解码DU的该组像素(形成输出图片区域)从DPB复制到数据槽(步骤512)。如果处理器确定可以执行至少一个部分输出,则解码器可以执行至少一个部分输出操作。部分输出的执行可以包括将存储在DPB中的一个或多个经解码DU标记为准备用于部分输出。标记可以将不从DPB移除一个或多个经解码DU用信号发送给解码器。一旦该组像素被复制到数据槽,应用程序编程接口AIP或应用程序就可以访问这组像素。此后,在一些实施例中,可以将该组像素被复制到数据槽用信号发送给应用程序或API。
本披露内容中的实施例的主要见解是,如果经编码视频的每个经编码图片包含多个DU,则解码器可以被配置为在整个图片被解码之前(即在图片的所有DU从CPB被移除之前)输出完整图片的预定部分的部分重建(经解码图片的部分输出)。本披露内容中描述的实施例允许视频应用程序(例如,VR应用程序或图像后处理应用程序)在经编码图片完全被解码之前访问包括存储在DPB中的图片的一个或多个预定部分(输出图片区域)的数据槽。因此,本发明使得应用程序能够在图片的另一部分尚未被解码并且例如仍存储在CPB中或到达CPB(仍在到达CPB的DU或未从CPB被移除的DU)的同时快速访问已被优先处理的经解码图片的一部分。这样,在完整图片尚未完全解码的同时应用程序(例如,渲染过程或视频处理步骤)可能已经基于图片的经解码部分开始。
图6是展示了视频编码器装置600的框图,该视频编码器装置被配置为执行如参考本申请中的实施例所描述的优先解码过程。视频编码器装置600可以对视频帧或其部分(例如,视频条带)内的视频块执行帧内编码和帧间编码。帧内编码依赖于空间预测来减少或去除给定图片内视频中的空间冗余。帧间编码依赖于时间预测来减少或去除相邻图片或视频序列的图片内视频中的时间冗余。帧内模式(I模式)可以指几种基于空间的压缩模式中的任何一种。帧间模式(比如单向预测(P模式)或双向预测(B模式))可以指几种基于时间的压缩模式中的任何一种。
视频编码器装置可以接收要被编码的视频数据602。在图6的示例中,视频编码器装置600可以包括分割单元603、模式选择单元604、求和器606、变换单元608、量化单元610、熵编码单元612和解码图片缓冲器614。模式选择单元604进而可以包括运动估计单元616、帧间预测单元620和帧内预测单元618。根据本申请中的实施例,帧间预测单元可以包括运动矢量预测单元622,该运动矢量预测单元可以被配置为生成运动矢量预测值候选列表。对于视频块重建,视频编码器装置600还可以包括逆量化和变换单元615以及求和器628。还可以包括比如去块滤波器618等环内滤波器以从重建的视频帧中滤除伪像。除了去块滤波器之外,还可以使用附加的环路滤波器(环内的或环后的)。假使在将经编码图片解码成经解码图片期间使用环内滤波器来滤除伪像,则元数据(例如,标志)可以插入到比特流中以将解码器应在解码期间使用环内滤波器用信号发送给解码器。例如,在HEVC中,取决于在每图片或每图片组基础上启用还是禁用环内滤波,可以将是否启用(多个)环内滤波器的信息插入SPS或PPS消息中。
模式选择单元604可以选择编码模式之一(例如,基于比如率失真优化(RDO)函数等优化函数的误差结果选择帧内预测模式或帧间预测模式),并且将得到的帧内编码块或帧间编码块提供给求和器606以生成残差视频数据块(残差块),并且将得到的帧内编码块或帧间编码块提供给求和器628以重建经编码块以用作参考图片。在编码过程期间,视频编码器600可以接收图片并且将该图片分割成多个视频块。模式选择单元604中的帧间预测单元620可以相对于一个或多个参考图片中的一个或多个块来对接收到的视频块执行帧间预测编码,以提供时间压缩。可替代地,模式选择单元中的帧内预测单元618可以相对于与要编码的块在同一图片或条带中的一个或多个相邻块来对接收到的视频块执行帧内预测编码,以提供空间压缩。视频编码器可以执行多次编码过程,例如,以便为视频数据的每个块选择适当的编码模式。
分割单元603可以基于对先前编码过程中的先前分割方案的评估来将视频块进一步分割为子块。例如,分割单元可以最初基于率失真分析(例如,率失真优化)将图片或条带分割为LCU,并且将LCU中的每一个分割为子CU。分割单元可以进一步产生指示将LCU分割为子CU的四叉树数据结构。四叉树的叶节点CU可以包括一个或多个PU和一个或多个TU。
运动矢量估计单元616可以执行确定视频块的运动矢量的过程。例如,运动矢量可以指示参考图片内的视频块的预测块(预测单元或PU)(或其他编码单元)相对于在当前图片(或其他编码单元)内被编码的当前块的位移Dx,Dy。运动估计单元可以通过将视频块的位置与和该视频块的像素值近似的参考图片的预测块的位置进行比较来计算运动矢量。因此,一般而言,运动矢量的数据可以包括参考图片列表(例如,存储在编码器装置的存储器中的已经解码的图片(视频帧)的(索引)列表)、到参考图片列表的索引、运动矢量的水平(x)分量和竖直(y)分量。可以从一个或多个参考图片列表(例如,第一参考图片列表、第二参考图片列表或组合参考图片列表)中选择参考图片,这些参考图片列表中的每一个都标识存储在参考图片存储器614中的一个或多个参考图片。
MV运动估计单元616可以生成标识参考图片的预测块的运动矢量并将该运动矢量发送到熵编码单元612和帧间预测单元620。也就是说,运动估计单元616可以生成并发送运动矢量数据,该运动矢量数据标识:包含预测块的参考图片列表、到参考图片列表的标识该预测块的图片的索引、以及用于在所标识的图片内定位预测块的水平分量和竖直分量。
代替发送实际运动矢量,运动矢量预测单元622可以预测运动矢量以进一步减少传送运动矢量所需的数据量。在这种情况下,不是对运动矢量本身进行编码和传送,而是运动矢量预测单元622可以生成相对于已知运动矢量、即运动矢量预测值MVP的运动矢量差(MVD)。MVP可以与MVD一起使用以定义当前运动矢量。一般而言,要成为有效的MVP,用于预测的运动矢量指向与当前正被编码的运动矢量相同的参考图片。
运动矢量预测单元622可以被配置为建立MVP候选列表,该候选列表可以包括与在空间和/或时间方向上的多个已经编码的块相关联的运动矢量作为MVP的候选。在实施例中,多个块可以包括当前视频帧中已经被解码的块和/或一个或多个参考帧中存储在解码器装置的存储器中的块。在实施例中,多个块可以包括相邻块(即在空间和/或时间方向上与当前块相邻的块)作为MVP的候选。相邻块可以包括与当前块直接相邻的块或在当前块附近(例如,在几块的距离内)的块。
当多个MVP候选可用(来自多个候选块)时,MV预测单元622可以根据预定选择标准确定当前块的MVP。例如,MV预测单元622可以基于对编码速率和失真的分析(例如,使用率失真成本分析或其他编码效率分析)来从候选列表中选择最准确的预测值。选择运动矢量预测值的其他方法也是可能的。在选择了MVP之后,MV预测单元可以确定MVP索引,该索引可以用于通知解码器装置将MVP定位在包括MVP候选块的参考图片列表中的什么位置。MV预测单元622还可以确定当前块与所选MVP之间的MVD。可以使用MVP索引和MVD来重建当前块的运动矢量。通常,分割单元和模式选择单元(包括帧内预测单元和帧间预测单元以及运动矢量预测值单元)以及运动矢量估计单元可以是高度集成的。这些单元出于概念性的目的而在图中单独展示。
可以通过加法器606从正被编码的原始视频块中减去从模式选择单元604接收到的预测视频块(由运动矢量标识)来形成残差视频块。变换处理单元609可以用于将比如离散余弦变换(DCT)或概念上类似的变换等变换应用于残差视频块,以便形成具有残差变换系数值的块。在概念上类似于DCT的变换可以包括例如小波变换、整数变换、子带变换等。变换处理单元609将变换应用于残差块,从而产生变换后的残差块。在实施例中,变换后的残差块可以包括残差变换系数块。变换可以将残差信息从像素值域转换到变换域(比如频域)。变换处理单元609可以将所产生的变换系数发送到量化单元610,该量化单元对变换系数进行量化以进一步降低比特率。
控制器617可以将编码过程的语法元素(元数据)(比如帧间模式指示符、帧内模式指示符、分割信息和语法信息)提供给熵编码和比特流格式化器单元612。此处,语法元素可以包括用于用信号表示(所选)运动矢量预测值(例如,编码器所选择的MVP候选的指示,例如索引列表中的索引)、运动矢量差以及与运动矢量预测过程相关联的元数据的信息。控制器可以基于可以定义语法元素(例如,部分输出是可能的标志和/或用于部分输出的定时的图片定时SEI消息)的HRD模型611来控制编码过程,这些语法元素可以用于生成适合于部分输出的格式化比特流613。例如,在编码过程期间,编码器可以将使解码器装置能够部分地输出存储在DPB中的经解码DU的参数和/或消息(比如SEI消息)插入到比特流中。参考本申请中的实施例描述了这样的消息的示例。
逆量化和逆变换单元615可以被配置为分别应用逆量化和逆变换,以在像素域中重建残差块,例如,以供稍后用作参考块。帧间预测单元620可以通过将残差块添加到存储在解码图片缓冲器614中的参考图片之一的预测块来计算参考块。帧间预测单元620还可以将一个或多个插值滤波器应用于重建残差块,以计算用于运动估计的分段整数像素值。重建残差块可以被添加到由帧间预测单元620产生的运动预测块,以产生用于存储在参考图片存储器614中的重建视频块。运动矢量估计单元616和帧间预测单元620可以将重建视频块用作参考块,以对后续图片中的块进行帧间编码。
熵编码单元612熵可以被配置为将经量化变换系数和语法元素编码为比特流628。例如,熵编码单元可以执行上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区域间分割熵(PIPE)编码或另一种熵编码技术。在基于上下文的熵编码的情况下,上下文可以基于相邻块。在通过熵编码单元进行熵编码之后,可以将经编码比特流传输到另一设备(例如,视频解码器),或者将经编码比特流进行存储以用于稍后的传输或检索。
比特流格式化器613可以被配置为格式化,使得比特流包括DU以及用于根据特定编码标准对这些DU进行解码的相关联元数据。元数据可以包括用于将可以如何对DU进行解码用信号发送给解码器的参数。这个信息可以包括优先次序信息以及与该优先次序信息和/或经解码DU的部分输出相关联的参数,如在本申请中参考实施例所描述的。在一些实施例中,优先次序信息和/或关于部分输出的信息的至少一部分可以由视频应用程序和/或内容创建者确定。在这种情况下,编码器可以接收这个信息并且在编码过程期间使用该信息来产生包括与优先次序信息相关联和/或可以在解码过程期间部分地输出的DU的格式化比特流。元数据可以插入
因此,从上文得知,编码过程可以包括:接收包括像素的视频帧序列;识别视频帧序列中的当前帧的像素区与任何先前帧的像素区之间的编码相依性;将视频帧编码成多个解码单元DU,并且利用指示包括图片中的像素区的经编码像素的DU的元数据(比如DU标识号和/或位置信息)以及指示DU的解码顺序的优先次序信息将该多个DU变换成比特流,这考虑到了图片的DU的至少一部分的可能帧内编码相依性;以及将包含DU和元数据的所述比特流存储在输出缓冲器中。
编码器装置可以执行已知的率失真优化(RDO)过程,以便为图片中的编码块找到最佳编码参数。此处,最佳编码参数(包括模式决策(帧内预测或帧间预测);帧内预测模式估计;运动估计;和量化)是指提供用于对块进行编码的比特数与通过使用该比特数进行编码所引入的失真之间的最佳折衷的参数集。
术语率失真优化有时也被称为RD优化或简称为“RDO”。适合于AVC和HEVC型编码标准的RDO方案本身是这样已知的,参见例如Sze等人的“High efficiency video coding[高效视频编码](HEVC)”(集成电路和系统、算法和架构,施普林格(2014):1-375;章节:9.2.7RD优化)。RDO可以采用许多方式实施。在一个众所周知的实施方式中,RDO问题可以表示为关于拉格朗日乘数最小化拉格朗日成本函数J:
λ::
此处,参数R表示率(即,编码所需的比特数),并且参数D表示与某一率R相关联的视频信号的失真。失真D可以被视为对视频质量的度量。用于客观地确定质量的已知度量(客观地,从该度量与内容无关的意义上来说)包括均方误差(MSE)、峰值信噪比(PSNR)和绝对差值之和(SAD)。
在HEVC的情况下,率失真成本可能要求编码器装置使用可用预测模式(即,一个或多个帧内预测模式和/或一个或多个帧间预测模式)中的每一个或至少一部分来计算预测视频块。编码器装置然后可以确定每个预测块与当前块之间的差视频信号(此处,差信号可以包括残差视频块),并且将所确定的残差视频块中的每个残差视频块从空间域变换为频域,以获得变换后的残差块。接下来,编码器装置可以量化变换后的残差块中的每一个,以生成对应的经编码视频块。编码器装置可以对经编码视频块进行解码并且将经解码视频块中的每一个与当前块进行比较以确定失真度量D。此外,率失真分析可以涉及计算与预测模式之一相关联的每个经编码视频块的速率R,其中,速率R包括用于用信号表示经编码视频块的多个比特。针对每个预测模式如此确定的编码块的RD成本、失真D和率R然后用于选择提供用于对块进行编码的比特数与通过使用该比特数进行编码所引入的失真之间的最佳折衷的编码视频块。
代替编码器装置,比特流包括DU,并且还可以通过修改图片序列的现有经编码表示来创建用于对DU进行解码的相关联元数据。这样的修改可以通过被配置为进行以下操作的装置(比特流生成装置)来实现:接收包括图片序列的经编码表示的比特流;解析该比特流并且针对该序列中的图片的每个经编码表示识别表示当前图片的多个DU,该多个DU中的每一个包括一组经编码像素;在该比特流中注入元数据以形成修改后的比特流,该元数据包括与存储在该CPB中的该多个DU相关联的优先次序信息,该优先次序信息定义该当前图片的DU可以被解码的解码顺序,优选地考虑到该多个DU的至少一部分的DU的像素的帧内编码相依性;以及输出该修改后的比特流。
图7是展示了根据本发明的实施例的视频解码器装置700的框图。解码器装置或简言之解码器装置可以被配置为对包括如由参考图6描述的视频编码器装置生成的经编码视频数据的比特流进行解码。
在图7的示例中,视频解码器装置700可以包括比特流解析器702、编码图片缓冲器(CPB)703、熵解码单元704、预测单元718、逆量化和逆变换单元708、求和器709、控制器710以及用于存储经解码信息(包括在解码过程中使用的参考图片)的解码图片缓冲器(DPB)716。此处,预测单元618可以包括帧间预测单元722和帧内预测单元720。进一步地,帧间预测单元可以包括运动矢量预测单元724。
类似于图6的编码器装置的运动矢量预测值单元,解码器的运动矢量预测单元可以被配置为建立可以包括多个块(包括当前视频帧中已经被解码的块(比如相邻块)和/或一个或多个参考帧中存储在解码图片缓冲器中的块)的运动矢量的MVP候选列表。
解码器装置700可以包括被配置为从视频编码器接收包括经编码图片(例如,经编码视频块和相关联语法元素)的格式化比特流701的输入701。在实施例中,格式化比特流可以包括所谓的网络抽象层(NAL)单元。比特流解析器702(滤波器)可以从比特流中提取NAL单元,对包括有效载荷和相关联元数据的NAL单元进行解包,并且使用元数据来将有效载荷和一些元数据作为DU存储在CPB中。元数据可以包括与图片解码顺序和图片显示顺序有关的信息,比如图片顺序计数(POC)。图片解码信息可以用于按解码顺序将DU存储在CPB中并且按解码顺序将DU提供到解码算法。图片显示顺序表示经解码图片应呈现的顺序。通常,解码顺序不同于POC顺序,因此经解码图片(或形成经解码图片的经解码DU)在被输出之前需要临时存储在CPB中。
熵解码单元704对比特流进行解码以生成变换后的经解码残差块(例如,与残差块相关联的已量化系数)、运动矢量差、以及用于使视频解码器能够对比特流进行解码的语法元素(元数据)。将运动矢量差和相关联语法元素转发到预测单元718。可以在视频条带级和/或视频块级接收到语法元素。例如,作为背景,视频解码器700可以接收经压缩视频数据,该经压缩视频数据已被压缩以经由网络传输到所谓的网络抽象层(NAL)单元中。每个NAL单元可以包括标头,该标头标识存储到NAL单元的数据的类型。有两种类型的数据共同存储到NAL单元。存储到NAL单元的第一种类型数据是视频编码层(VCL)数据,该数据包括经压缩视频数据。存储到NAL单元的第二种类型数据被称为非VCL数据,该数据包括附加信息,比如定义大量NAL单元共有的标头数据的参数集以及补充增强信息(SEI)。
当视频帧的视频块被帧内编码(I)时,预测单元718的帧内预测单元720可以基于用信号表示的帧内预测模式以及来自当前图片的先前解码块的数据来生成当前视频条带的视频块的预测数据。当视频帧的视频块被帧间编码(例如,B或P)时,预测单元718的帧间预测单元722可以基于运动矢量差和从熵解码单元704接收的其他语法元素来产生当前视频条带的视频块的预测块。可以从存储在视频解码器的存储器中的一个或多个参考图片列表内的一个或多个参考图片产生预测块。视频解码器可以使用默认构建技术基于存储在参考图片存储器716中的参考图片来构建参考图片列表。
帧间预测单元720可以通过解析运动矢量差和其他语法元素来确定针对当前视频条带的视频块的预测信息,并且使用该预测信息来产生正在解码的当前视频块的预测块。例如,帧间预测单元720使用接收到的语法元素中的一些来确定用于对视频条带的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,B条带或P条带)、该条带的一个或多个参考图片列表的构建信息、该条带的每个帧间编码视频块的运动矢量预测值、该条带的每个帧间编码视频块的帧间预测状态、以及用于对当前视频条带中的视频块进行解码的其他信息。在一些示例中,帧间预测单元720可以从运动矢量预测单元724接收某些运动信息。
解码器装置可以检索运动矢量差MVD以及表示需要被解码的当前块的相关联经编码块。为了基于MVD来确定运动矢量,运动矢量预测单元724可以确定与当前块相关联的运动矢量预测值候选的候选列表。运动矢量预测值单元724可以被配置为以与编码器中的运动矢量预测值单元的操作相同的方式建立运动矢量预测值列表。
运动矢量预测算法可以评估与当前帧或参考帧中相对于当前块的位置具有预定位置(通常是相邻)的块相关联的运动矢量预测值候选。这些相对位置对于编码器装置和解码器装置是已知的。此后,运动矢量预测单元可以基于在比特流中传输到解码器的所选运动矢量预测候选的指示来从运动矢量预测候选列表中选择运动矢量预测值MVP。基于MVP和MVD,帧间预测单元可以确定用于当前块的预测块。
逆量化和逆变换单元708可以对比特流中提供的并由熵解码单元解码的经量化变换系数进行逆量化,即,去量化。逆量化过程可以包括使用由视频编码器针对视频条带中的每个视频块计算的量化参数来确定量化程度,并且同样地确定要应用的逆量化程度。该逆量化和逆变换单元可以进一步将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中产生残差块。
在帧间预测单元720已生成当前视频块的预测块之后,视频解码器可以通过对残差块与对应预测块进行求和来形成经解码视频块。加法器709表示执行此求和操作的一个或多个部件。如果需要,还可以应用去块滤波器来对经解码块进行滤波,以去除成块(blocking)伪像。还可以使用其他环路滤波器(在编码环路中或在编码环路之后)来平滑像素过渡,或以其他方式提高视频质量。然后将给定图片中的经解码视频块存储在解码图片缓冲器716中,该解码图片缓冲器存储可以用于另外的当前块的后续编码的参考图片。解码图片缓冲器616还可以存储经解码视频以供稍后在显示设备上呈现。
在实施例中,解码器可以包括被配置为控制DPB中的一个或多个经解码DU的部分输出的输出模块717。在另一实施例中,输出模块的至少一部分可以在解码器装置外部。例如,输出模块可以在解码器API 726中实施或连接到该解码器API。因此,如果解码器控制器确定在图片的多个DU的解码期间可以执行部分输出,则在表示图片的多个DU的至少一部分尚未被解码并从CPB被移除的同时控制器可以将来自DPB的一个或多个经解码DU复制到输出模块的数据槽719。在这种情况下,DPB中的一个或多个经解码DU可以被标记为可用于部分输出。在实施例中,标记可以用于将一个或多个经解码DU标示为在表示图片的所有DU被解码之前并且可选地在表示图片的所有DU被用作参考帧以用于另外的图片的一个或多个另外的DU的解码过程之前不从DPB被移除。
将DU复制到数据槽而不从DPB移除一个或多个经解码DU。复制到数据槽的一个或多个经解码DU可以表示正在解码的图片的一部分,这些经解码DU可由(软件)应用程序访问。信令可以用于通知应用程序已执行了DPB的部分输出并且图片的一个或多个经解码DU仍未完全解码(即一个或多个经编码DU仍在CPB中或在被解码器解码的过程中)。下文参考图8至图15更详细地描述了关于DPB和输出模块的功能的实施例。
控制器可以基于可以定义语法元素(例如,部分输出是可能的标志和/或用于部分输出的定时的图片定时SEI消息)的HRD模型711来控制解码过程,这些语法元素可以用于根据如参考图5所描述的优先解码过程处理比特流702中的经编码DU。例如,在解码过程期间,解码器可以确定比特流是否适合于部分输出,如参考本申请中的实施例所描述的。为此目的,解码器或特别是解码过程的控制器可以被配置为检测比特流中将部分输出是可能的用信号发送给解码器装置的某些SEI消息。可替代地,解码器可以被配置为通过检查比特流中的某些参数(例如,用信号表示禁用还是启用对图片的环内滤波的参数)来确定部分图片输出是否是可能的。例如在HEVC中,可以基于PPS非VCL NAL单元中的标志(pps_deblocking_filter_disabled_flag)来接通或关断去块滤波器。下文更详细地描述了这样的消息的示例。
在下文,下文更详细地描述了用于实现图片的一部分的优先部分输出的实施例。如参考图5所描述的,过程可以从在解码图片缓冲器中为经解码图片分配存储器开始。因此,在新的经编码图片需要被解码的情况下,可以在DPB中分配空间。这个所分配的存储器空间被配置为接收并存储经解码DU,即表示定义图片中的特定区域的一组像素的经编码视频数据。最终将输出经解码DU,其中,输出可以包括将像素值复制到可以与应用程序相关联的数据槽中。所存储像素值还可以在未来解码步骤中用作参考帧。
进一步地,过程可以包括接收包括图片序列的经编码表示的比特流、解析该比特流、以及将经编码图片作为DU存储在CPB中。一旦经编码图片的一个或多个DU存储在CPB中,解码器就可以基于优先级信息来从CPB中的一个或多个DU选择一个DU并且使用所选DU作为输入来开始解码过程。一旦将所选DU提供到解码过程,就从CPB移除DU并且将与经解码DU相关联的该组像素放置在DPB的所分配存储器中。在存储器中与图片中的该组像素的位置相对应的位置处复制该组像素(像素值)。可能使用条带或条带片段地址在编码图片中的位置,可以从如在比特流中用信号表示的DU在经编码图片中的位置得到经解码图片中的这个位置。
下文描述的实施例介绍了元数据,例如信令消息和HDR语法元素,该元数据实现DU的优先解码以及经解码优先DU的部分输出,如上文参考图4的已修改HDR模型和图5的优先解码过程所描述的。
取决于应用程序,部分输出和优先次序信息的信令可以基于在比特流中(在带内)插入到解码器的元数据,例如SEI消息(或其等效消息)。可替代地,还可以在带外信道中将元数据传送到解码器。例如,可以经由解码器API将元数据提供到解码器。
第一组元数据(例如,比如SEI消息等消息或比如NAL单元的标头等标头中的语法元素)可以用于控制DU在CPB中的解码优先次序。可以对DU进行优先级排序(排序)以便以不同方式进行解码。在实施例中,可以使用被配置为相对于同一AU的其他DU的优先级引入相应DU的优先级的DU性质。
表1示出了SEI消息、特别是根据HEVC起草标准的DU SEI消息语法的示例。可以使用优先次序参数增强消息。在实施例中,这样的优先次序参数可以被称为decoding_unit_priority参数。这样的参数可以用作将解码优先级值被指派给在SEI消息中定义的DU的优先次序信息用信号发送给解码器装置。decoding_unit_priority参数可以具有从零开始向上的(整数)值,其中,例如零值可以指示最高优先级。在图4C中展示了使用这样的参数的示例。
在DU级别管理优先次序的优势是,不需要AU内的DU的优先级的全局视图来标识可用DU的解码顺序。换句话说,如果具有优先级0(最高优先级)的DU存储在CPB中,则解码器可以对该DU进行解码而不管它是否知晓存储在CPB中的其他DU。在实施例中,优先级参数可以包括在某个范围内的值,其中,最低(或最高)值指示最高优先级并且最高(或最低)值指示最低优先级。例如,如果CPB中存在两个DU(来自同一AU),一个具有decoding_unit_priority=5并且另一个具有decoding_unit_priority=7,则解码器可以开始对第一DU进行解码,而不管是否存在尚未到达的具有较低优先级的其他DU。在另一实施例中,decoding_unit_priority参数可以用作具有零或一值的二进制标志。在这种情况下,“高优先级”DU束可以将其设置为0并且将其余部分设置为1(或反之亦然)。
当前HEVC起草标准包括用于标识图片(AU)的DU的decoding_unit_idx参数。在实施例中,优先次序可以基于这样的DU标识符的有序列表。使用idx参数作为优先次序参数的缺点是,每个DU标识符idx在AU内是唯一的并且因此无法用于将具有相同优先级的DU分组。进一步地,decoding_unit_idx参数最初被设计用于基于连续数字来标识解码所需的DU,使得如果具有高idx的DU在缓冲器中,则在先前DU还未被解码的情况下将不对其进行解码。表1描绘了包括用于对图片(AU)的DU进行优先级排序的优先次序信息的SEI消息:
表1-DU info SEI消息语法
如这个表中所示出的,SEI消息包括用于用信号表示存储在CPB中的DU的解码优先级的decoding_unit_priority参数。
在另一实施例中,可以在AU级别实现CPB中的图片的DU的解码优先次序。对于这种方法,可以确定有序列表,该有序列表包括AU中的所有DU按优先级顺序(从高到低或反之亦然)的标识,例如由decoding_unit_idx参数定义的DU标识。为了在比特流中传输这个列表,可以使用SEI消息或另一合适的数据容器。下文在表2中示出了包括DU解码优先次序信息的图片定时SEI消息的提取。如这个表中所示出的,列表可以通过cpb_decoding_unit_priority语法元素引入,该语法元素可以具有num_decoding_units_minus1加1的大小(即,AU中的DU数量)。
表2-图片定时SEI消息语法提取
选择DU以在内容特定的情况下使用前述性质进行解码可以基于每DU信令方法通过穿过CPB中的DU并且首先对高优先级进行解码、然后对其余的进行解码来实现,因为只要可用于对图片的DU进行解码的解码时间允许这样即可。通过以下伪代码块提供实施这样的方法的算法:
此处,CPB输出延迟参数pic_spt_dpb_output_du_delay可以指定在从CPB移除AU中的最后一个DU之后在经解码图片例如通过将其内容复制到API或应用程序的数据槽中而从DPB输出之前等待多少子时钟刻度。因此,选择DU以基于DU优先级参数进行解码,只要CPB中存在DU并且CPB输出延迟参数用信号表示解码是可能的。一旦所有DU被解码或如果解码AU的时间已结束,便从CPB移除AU的DU。
在另一实施例中,对DU进行基于优先级的解码可以基于AU级别(图片级别)的信令。在这个实施例中,DU优先级列表可以用于对已经在缓冲器中的具有最高优先级的DU进行解码,并且重复直到列表是空的为止,或直到没有可用于基于pic_spt_dpb_output_du_delay语法元素来对AU进行解码的时间为止。通过以下伪代码块提供实施这样的方法的算法:
可以以不同方式实现用于在用户特定的情况下解码的DU的优先次序。在实施例中,应用程序可以在将比特流馈送到解码器装置之前在比特流中插入或修改比如优先次序信息等元数据。例如,这样的应用程序可以被配置为改变如上文描述的decoding_unit_priority语法元素和/或cpb_decoding_unit_priority_list语法元素。
在另一实施例中,解码器装置可以与API相关联或包括API,该API允许应用程序在将图片序列的经编码表示作为DU存储在CPB中之前在比特流中插入或修改优先次序信息,或者在存储在CPB中的DU中插入或修改优先次序信息。例如,解码器可以与比如SetDecodingUnitPriority函数等函数相关联(或包括该函数),该函数被配置为接收包含图片的DU的DU标识符(比如decoding_unit_idx参数)的优先级排序的列表并且使用这个信息来优先处理存储在CPB中的用于解码的DU。例如,在实施例中,视频应用程序可以被配置为确定应首先对当前图片的哪个或哪些DU进行解码。
例如,在360视频或3D点云渲染的情况下,应用程序可以对与图片中与当前视口一致或至少部分地一致的像素区域相关联的DU给予最高的解码优先级。这样的DU可以被称为视口DU。进一步地,该应用程序可以向与邻接定义视口DU的像素区域的像素相关联的DU指派较低解码优先级,这些DU后面是默认/推荐的DU(即图片中由内容创建者选择的像素区域)、然后是剩下的DU。
第二组元数据(例如,比如SEI消息等消息中的语法元素)和/或数据结构的标头(比如NAL单元的标头)中的元数据可以用于控制DPB处的经解码DU的部分输出过程。例如,元数据可以包括用于通知解码器装置期望部分输出的信息。进一步地,元数据可以包括用于控制部分输出过程的解码信息,比如定时信息。与修改后的HDR模型有关的定时信息可以包括例如用于从CPB移除DU的定时信息以及用于将经解码DU的一组像素从DPB复制到数据槽中的定时信息。这样的定时信息可以用于确定应用程序可以经由数据槽访问DPB中的图片的经解码DU的时间间隔。
在一些实施例中,解码器装置可以被配置为确定在经编码图片的解码期间是否可以执行至少一个部分输出。例如,如果针对图片中的DU激活环内滤波,则在可以发生滤波之前需要图片的相邻DU。在这种情况下,原则上,一旦DU被解码,部分输出就将是不可能的,除非跨经解码图片中的经解码DU的边界停用滤波过程。如果未禁用跨经解码DU的边界的滤波,则部分输出在来自经解码DU的所有像素已通过滤波进行处理的情况下仍是可能的,该滤波是比图片的所有像素可用更早的时间点。特别地,当在所需的相邻经解码DU在DPB中变得可用之后应用滤波过程时,部分输出是可能的。
因此,为了确定部分图片输出是否是可能的,解码器需要知晓环内滤波是否针对特定图片或针对一组图片(例如,GOP结构中的一组图片)有作用。在实施例中,解码器可以检查环内滤波是否被启用。例如,在HEVC中,(多个)环内滤波器是否被激活的信息可以包含在SPS或PPS NAL单元中,这取决于环内是否分别在每图片或每图片组的基础上被启用/禁用。基于这个信息,解码器装置能够确定部分图片输出是否适用。如果启用环内滤波器,并且存在条带,则关于每个条带的相应滤波器的单独信息包含在条带片段标头中。在其他标准中,可以在比如AV1中的开放比特流单元(OBU)等其他数据容器中携带关于滤波器的信息。
可替代地,在实施例中,比特流可以包括将可以使用部分图片输出的指示(例如,标志)显式地用信号发送给解码器装置。这样的信令对于客户端应用程序初始化视频解码处理流水线并且设置所需缓冲器等可能是有用的。这个信令可以使用作为非VCL单元的SEI消息来实施。可替代地,在实施例中,信令可以在包括图片的经编码DU的VCL-NAL单元的SPS或PPS中实施(取决于部分图片输出可用于单个图片还是多个图片)。在另一实施例中,信令可以基于外部通道,例如经由解码器接口(API)连接到解码器装置的应用程序。
在实施例中,在可以使用部分图片输出的显式信令的情况下,解码器装置可以假设环内滤波被禁用,跨经解码图片中的经解码DU的边界被禁用,或来自经解码DU的样本已通过滤波被处理。
在用信号表示(隐式的或显式的)部分输出是可能的情况下,比特流可以包括其他的信令消息。例如,在实施例中,比如所谓的图片定时SEI消息等SEI消息(NAL单元的类型)可以用于向解码器提供DU的定时信息。比如解码单元信息SEI消息等其他SEI消息可以用于向解码器传送相关解码信息。例如,进一步的相关SEI消息包括缓冲周期SEI消息,这些缓冲器周期SEI消息包括如cpb_delay_offset语法元素等缓冲参数。更一般来说,取决于实施方式,根据本申请中的实施例的用于控制优先部分解码的信令消息可以基于已知当前和未来编码标准(例如,HEVC、AV1、VP9、VVC等)的数据格式和语法元素来实施。
一旦从CPB移除经编码图片,DPB中的相关联经解码图片便可以在预定时间延迟之后可用于输出,该预定时间延迟可以作为时间延迟参数用信号发送给解码器装置。在实施例中,在HEVC和VVC中,可以基于picture dpb output time delay参数来提供时间延迟。可以针对每个图片确定这样的这个延迟参数或在其他标准的情况下确定与这个延迟参数类似的延迟参数。该参数的值可能取决于HDR模型的不同解码器参数,这些解码器参数包括(至少)以下两个时间实例:
1.CPB移除时间,即从CPB移除经编码图片(因为该图片被完全解码成经解码图片并且存储在DPB中)的时间实例
2.DPB输出时间,输出经解码图片(如存储在DPB中)的时间实例。
在VVC和HEVC中,由pic_dpb_output_delay语法元素管理图片的dpb output timedelay。在这个延迟之后,输出存储在DPB中的经解码图片。通常,在输出之后,从DPB移除图片,除非保持该图片以供未来使用(例如,用作在其他帧的解码过程中使用的参考)。
在修改后的HDR模型中,定义与部分输出相关联的定时参数。特别地,模型包括延迟参数,该延迟参数将在特定时间段之后可以执行部分图片输出用信号发送给解码器装置。参数可以被称为dpb partial output time delay参数。取决于picture dpb outputdelay参数,在整张图片的解码期间,可以执行图片的经解码DU的部分输出一次或多次。这样,在解码过程期间,DPB中的经解码信息在picture dpb output delay结束之前变得可用于输出。
因此,修改后的HDR模型不再假设解码过程是瞬时的,而是需要特定量的时间。在这个解码时间期间,可以使DPB中的经解码信息可用于输出,使得它可能已经被应用程序使用。实际上,这意味着在一个或多个时间实例(例如由dpb partial output time delay参数定义的),DPB中直到这些时间实例中的每一个的时刻所处理的经解码信息可以被复制到数据槽,使得该经解码信息可以在picture dpb output delay结束之前由应用程序访问。因此,在经编码图片的解码期间,可以在picture dpb output delay结束之前发生(经解码DU的)经解码像素组从DPB到数据槽的一个或多个(多次)传输。优选地,在CPB中可用的DU按由优先次序信息定义的优先顺序进行解码并且经解码DU的像素组按优先顺序变得可用于DPB中的部分输出。
此处,数据槽是能够从解码器接收数据的任何存储或缓冲装置的通用术语。数据槽的示例包括外部缓冲器,例如VR应用程序的渲染缓冲器、套接字、存储器、硬盘等。应注意,在常规标准化解码器中访问DPB(是解码器的一部分)中的经解码信息对于应用程序来说是不可能的。假设通过将经解码信息(块)从DPB复制到解码器外部的数据槽来管理HRD模型的输出过程。
数据槽中的经解码信息通过部分图片输出方案变得可用的粒度可能取决于应用程序的类型。可以变得可用的最小单元是DU,即,发生解码器过程(例如,在AVC中输出一个或多个宏块或在HEVC或VVC中输出一个或多个编码树单元(CTU))的基本处理单元。可替代地,可以在更高级别的图片分割方案中实现DPB的子图片输出,比如如分别在HEVC和VVC中具体定义的解码单元(DU)或子图片。
表3描绘了根据本发明的实施例的图片定时SEI消息的一部分。在这个特定实施例中,子图片输出按图片级别进行组织。
表3:图片定时SEI消息语法提取
如表3中所示出的,消息包括可以由解码器用于计算输出DPB中的经解码图片的时间的au cpb removal time delay和pic dpb output delay。该表进一步包括被称为pic_partial_output_interval_present_flag的子图片输出标志。这个二进制标志可以用于用信号表示子图片输出功能是否可用。这个功能还被称为部分输出功能。
如果标志是真的,则可以定义子图片输出的输出间隔。输出间隔参数可以由可以被设置为特定值的pic_dpb_partial_output_interval语法元素定义。这个参数定义了用于DPB的子图片输出的输出间隔。该间隔可以以时钟刻度来定义。进一步地,间隔可以被选择为基本上小于picture dpb output delay。这样,子图片输出方案在单个图片的解码期间允许DPB的多个子图片输出,即在由picuture dpb output delay语法元素定义的周期内DPB的多个输出。在这个实施例中,DPB的部分图片输出可以具有图片大小格式,即在每个pic_dpb_partial_output_interval结束时将DPB的全部内容的副本传输到数据槽。
表4描绘了根据本发明的另一实施例的图片定时SEI消息的一部分。在这个实施例中,子图片输出按DU级别进行组织。
表4:图片定时SEI消息
如表4中所示出的,消息包括由解码器用于确定经解码图片何时处于子图片级别(如分别从HEVC和VVC中已知的)的au cpb removal delay和pic dpb output delay。表4进一步包括sub_pic_hrd_params_present_flag标志。如果这个标志是真实的,则图片的处理以如例如在HEVC和VVC中所定义的子图片级别发生,其中,设置pic_dpb_output_du_delay值。这个延迟值可以由解码器用于计算picture dpb output delay,即在从DPB输出经解码图片之前从CPB移除访问单元中的最后一个解码单元之后的时间。消息进一步包括用于将用于DPB的子图片输出的间隔用信号发送给解码器的pic_dpb_partial_output_interval语法元素。该间隔可以以时钟刻度来定义并且在图片的解码期间以与上文参考表1所描述的方式类似的方式允许多个子图片输出。在这个实施例中,DPB的部分图片输出可以具有图片大小格式,即在每个部分图片输出处,将全部DPB的副本传输到输出槽。
表5描绘了根据本发明的又一实施例的图片定时SEI消息的一部分。在这个实施例中,子图片输出可以按DU级别进行组织。
表5:图片定时SEI消息
在这个实施例中,子图片输出(部分输出)可以按解码单元(DU)或子图片级别进行组织。例如如果sub_pic_hrd_params_present_flag等于1,则可以基于标志来设置这个模式。进一步地,消息可以包括相同语法元素以用信号表示子图片DPB可用,然而在这种情况下,可以使用pic_dpb_partial_output_du_interval语法元素代替pic_dpb_partial_output_interval语法元素来用信号发送用于DPB的子图片输出的间隔。在这个实施例中,DPB的子图片输出的大小可以与DU或子图片的大小相匹配,即在每个子图片输出处,将DPB中的子图片的副本传输到输出槽。因此,在这个实施例中,数据槽的大小可以是DU或子图片大小。
部分图片输出方案的下一步骤可以包括将DPB中的经解码DU标记为准备好进行部分输出。这个标记可以是将不从DPB移除一个或多个经解码DU的标签或标志用信号发送给解码器装置。关于标记用作参考并用于移除的图片,这些类型的标记涉及整个图片的标记并且因此不干扰用于部分图片输出的DU的标记。
部分图片方案的下一步骤可以包括将一个或多个带标记的经解码DU从DPB复制到数据槽而无需从DPB移除一个或多个经解码DU。进一步地,可以将已经执行DPB的部分输出用信号发送给与数据槽相关联的应用程序。
在第一实施例中,部分图片输出缓冲器可以具有或至少具有与经编码图片的大小相同的大小。因此,在部分图片输出的情况下,将DPB中的经解码DU复制到数据槽并且解码器可以将经解码DU标记为可用于部分输出,但还未从DPB移除。部分输出的定时可以是“尽快的”或通过HRD参数被确定为可以指定这些部分输出中的每一个的时间。在低延迟应用中,应用程序可能想要尽快访问数据而不具有任何进一步延迟。在这种情况下,标志可以用于指示部分图片输出在数据槽中是可用的,使得渲染器或其他后处理设备可以做出处理(例如,示出)同一帧两次或处理(例如,示出)部分新的帧的决定。
在实施例中,可以通知应用程序关于解码器对图片的解码状态。因此,在这种情况下,解码器装置可以被配置为生成与由解码器装置处理的图片相关联的输出信息。例如,在实施例中,输出信息可以标识由解码器处理的图片的哪些区域已经被解码和/或图片的哪些区域尚未被解码。在实施例中,图片中的这样的区域可以定义一个或多个经解码DU的像素组。进一步地,输出信息可以包括被解码的和/或尚未被编码的DU数量。这样,通知应用程序通过解码器使哪些经解码像素值在数据槽中可用。表6在下文示出了解码状态消息的语法的示例。
表6–解码状态消息的语法
如这个表中所示出的,消息包括用于监测图片的解码状态的不同语法元素。消息可以包括用于用信号表示图片是否被完全解码的标志incomplete_flag。将在解码期间更新该消息直到每个区域填充有DU像素为止。可以在每个部分输出处将这个消息或至少在该消息中的信息用信号发送给应用程序。在实施例中,消息可以由解码器装置或与解码器装置相关联的解码器API生成,并且被发送到应用程序。语法元素的含义可以如下所示:
incomplete_flag 完整图片是否被解码。如果标志是0,则图像是完整的,如果标志是1,则仍存在要填充的区。
num_incomplete_areas 需要被描述为不完整的区域数量
origin_width 不完整区域在x轴上的原点
origin_height 不完整区域在y轴上的原点
width 要描述的区域的宽度
height 要描述的区域的高度
因此,可以用信号表示图片中尚不包括经解码样本(表示仍需要解码的DU)的区域的数量、以及尚未被解码和/或被解码的图片的每个区域的尺寸和每个区域的位置。
实施例中描述的部分输出方案可以与不同图片序列结构(例如,图片GOP结构或经编码视频序列CVS结构的组)一起使用。图8A示出了包括帧内经编码I图片后面是多个预测性(P)图片的图片序列结构的示例,其中,每个P图片往回参考更早的P图片或I图片。图片序列结构中的图片是按解码顺序排序的,即图片在如由解码器装置接收的比特流中被编码的顺序。进一步地,图片序列结构的图片与比如图片顺序计数(POC)参数等输出顺序参数相关联。这个输出顺序参数可以定义唯一排序编号,该唯一排序编号用信号表示其中要渲染(显示)经解码图片的序列。如图中所示出的,在这个图片序列结构中,图片被解码的顺序与图片被渲染的输出顺序相同。因此,一旦图片(AU)被解码,就可以输出并渲染该图片。因此,可以在低时延应用中使用这个图片序列结构。
图8B示出了包括I帧、P帧和所谓的双向预测B帧的另一图片序列结构,双向预测B帧取决于先前解码的图片和稍后要解码的图片两者。如这个图中所示出的,解码顺序不与如由输出顺序参数(比如POC)定义的输出顺序相匹配。例如,在这个示例中,I图片可以被解码并且可以根据POC来渲染。此后,根据解码顺序,基于I帧来解码P帧并且基于I帧和P帧来解码第一B帧。只有这样,才可以基于I帧和第一B帧来解码要在I帧之后渲染的第二B帧。因此,在可以解码并渲染第二B帧之前,两个其他帧需要被解码并且作为参考帧存储在解码图片缓冲器(DPB)中。
解码器装置可以接收元数据形式的关于解码顺序和图片顺序的信息。通常,图片序列结构作为整体例如在一个数据容器中传输(并到达),其中,比特流中的经编码图片被重新排序为与解码顺序相匹配。在解码期间,以由POC定义的序列输出(渲染)图片。在低时延情景中,一旦从编码器输出帧,就可以传输这些帧。对于这些情况,可以使图片以及与这样的图片相关联的经解码DU的解码(和输出)尽快可用于应用程序。对于图8A的低时延GOP结构,解码顺序与输出(渲染)顺序相同,使得在经解码DU的解码和部分输出之后应用程序可以访问并渲染数据槽中的经解码DU。
而且,在解码顺序并非渲染顺序的情况下,访问由解码器解码的经编码图片的经解码DU可以是有用的。例如,在解码器仍在对经编码图片的DU进行解码的过程中的同时应用程序可以开始对经解码DU执行后处理步骤,例如滤波。在这种情况下,可以输出经解码DU(即,将这些经解码DU复制到对于应用程序可访问的数据槽中),但还将它们保持在DPB中以供在解码其他图片时用于参考。此外,解码器可以确定包括经解码DU所属的经编码图片的位置的输出信息。
通常,最先进视频处理系统可以包括解码器的输出与渲染引擎之间的应用程序(与如在解码之后直接渲染的电视机等传统系统相比较)。在这样的视频处理系统中,即使(从解码器)输出图片(或图片的DU),该图片也未必直接被渲染,而是可能需要进一步处理,例如裁剪或滤波。因此,非POC顺序图片(或DU)可以允许一旦图片(或DU)被解码就开始后解码处理,而不管其POC如何。可以被称为非POC顺序输出方案的这种输出方案可以以不同的方式来实现。
在实施例中,可以在解码器API中实施功能的一部分,使得它能够按不同于POC顺序的顺序接收经解码图片和相关联的DU。在另一实施例中,可以在比特流中、例如在比如SEI消息等合适的消息中用信号表示该功能。
在这些实施例中,在解码器的初始化阶段期间,可以指示解码器将解码器置于所谓的直接输出模式。在这种模式下,解码器可以覆盖控制图片或DU输出(即从DPB复制到数据槽)的时间和/或条件的信令/标记参数。这样的参数可以包括HDR延迟参数和/或POC值。指令可以使解码器不使用信令进行输出。然而,解码器可能不一定忽略信令/标记以用于其他功能。
在直接输出模式中,解码器可以被配置为处理每个传入图片或DU以用于直接(紧接)输出,即就好像不存在来自未来帧的用于解码的相依性一样。例如,图片或DU可以被解码,根据参考图片的要求存储在CPB中,并且通过将图片或DU复制到该数据槽中来输出。为了实现直接输出模式,解码器需要知道或确定每个图片的POC值。在实施例中,这可以通过显式地用信号表示POC值来实现。在另一实施例中,应用程序可以例如经由带外信令、比特流分析、比特流中的元数据等知道GOP结构。
在实施例中,关于图片的解码状态的信息(例如,如参考表5所描述的经解码图片更新消息)可以包括关于POC的信息,该信息用作用于标识DPB中的经解码图片的标识符[POC还用作用于标识DPB中的经解码图片的标识符;我们需要使用显式标识符来标识区域吗?]。表7在下文示出了解码状态消息的语法的示例,该解码状态消息与表6的解码状态消息类似但现在包括关于POC的信息,例如poc_present_flag和poc值。因此,如果设置标志,则状态消息可以包括经解码DU所属的图片的POC值。
表7–解码状态消息的语法
图9描绘了对图片的经解码DU进行缓冲的解码图片缓冲器DPB的示例。解码图片缓冲器可以被配置为用于存储像素值的可寻址存储器。存储器单元可以表示2D网格,其中,每个单元可以指派给2D网格中的一个位置并且可以被配置为存储像素值。存储器可以被布置成分配多个图片的存储器空间,例如参考图片以及当前正在解码的一个或多个图片。
如图中所示出的,DPB可以包括多个缓冲区域9021至9023。每个缓冲区域可以包括具有在2D网格(简言之,区域)中的相关联位置的一组存储器单元,这些存储器单元被格式化以用于接收经解码DU的像素。在这个特定非限制性示例中,缓冲器可以包括预定大小的三个区域。每个缓冲区域可以具有与DU的大小相对应的大小。在这个示例中,可以形成存储在每个缓冲区域中的三个经解码DU。每个缓冲区域的尺寸可以是基于与例如尺寸9061、9062(height,width)和原点904(origin_width,origin_height)有关的上述语法元素来定义的。该图展示了DPB,其中,存储了经解码DU的(顶部)第一区域像素。这个经解码DU可以包括图片的第一(顶部)部分的像素,而两个其他区域的其他缓冲区域像素尚未被解码。每当DU被解码、存储在DPB的所分配存储器中并且被标记用于部分输出时,可以更新图片的解码状态消息并且将该解码状态消息用信号发送给应用程序。一旦图片的解码结束,不完全标志就可以用信号表示完成了图片的解码过程。在这种情况下,可以开始对下一图片进行解码的过程。
解码图片缓冲器可以存储在解码过程中被解码并使用的所有经解码图片。所存储的图片用于两个过程:
1.将图片存储在DPB中以用于输出到数据槽,使得可以通过渲染过程处理这些图片。
2.将图片存储在DPB中以用作仍需要被解码的图片的参考图片。
图10针对两个不同实施例(在图片中被称为案例1和案例2)展示了用多个(在这个示例中是两个)不同视频帧N和N+1的经解码DU填充DPB的进展。字母A、B和C在时间上表示在如参考本申请的实施例所描述的部分输出过程期间填充缓冲器的不同步骤。第一实施例(案例1)展示了其中在对视频帧N的DU进行解码(步骤A)之后刷新缓冲器并且对后续视频帧N+1的第一DU1,N+1进行解码并将其存储在DPB中(步骤B)的过程。仅在步骤C中,对后续视频帧N+1的第二DU2,N+1进行解码并将其存储在DPB中,从而形成完整图片。因此,在这种情况下,缓冲器的内容在步骤B处无法用作参考并且因此将被丢弃。
相比之下,在第二实施例(案例2)中,视频帧的经解码DU(步骤A)被用作解码过程中的下一步骤的基础。因此,当在步骤B中对视频帧N+1的第一DU(DU1,N+1)进行解码时,将该第一DU复制到DPB的所分配存储器中,从而覆盖属于视频帧N的第一DU(DU1,N)的像素值。在这种情况下,缓冲器的内容在步骤B中仍可用作未来帧的参考。图10的示例提供了参考图11描述的输出缓冲器架构的两个不同类型。
图11A至图11C描绘了可以与根据本发明的实施例一起使用的数据槽的不同架构。数据槽包括:第一数据槽(类型A),该第一数据槽包括大小与至少DU的大小相匹配的(至少)一个缓冲器;第二数据槽(类型B),该第二数据槽包括多个缓冲器,其中,每个缓冲器的大小与至少DU的大小相匹配;以及第三数据槽(类型C),该第三数据槽具有大小与至少一个图片的大小相匹配的缓冲器。在这种情况下,缓冲器可以包括多个缓冲区域,其中,每个缓冲区域可以具有至少一个DU的大小。
图11A描绘了单个DU大小的数据槽或输出槽的示例性实施例。如果所有DU具有相同大小并且允许相对小大小的一个数据槽(例如,文件指针、计算机插件、存储器指针等),则使用可以这样的架构。由于所输出的每个新DU将覆盖存储在数据槽中的DU,因此需要关于将来自CPB的经解码DU输出到数据槽中而进行应用程序的密切监测以及与解码器的同步。这种方法可以用于存储器是主要约束的系统,但存在足够处理能力和定时保真度来利用到达的DU,然后这些DU被清除以替换为下一DU。
图11B描绘了包括多个DU大小的数据槽的数据槽的示例性实施例。在实施例中,数据槽可以包括N DU大小的数据槽,其中,N是大于一的整数。在这种情况下,每个DU的大小是相同的。在另一实施例中,数据槽可以包括不同大小的N个数据槽。如果DU具有不同大小并且假设DU数量对于整个序列是恒定的,或至少解码器可以针对比特流序列的某个部分从比特流推断出DU数量,则可以使用这样的架构。从图片的一个以上DU在给定时间可用于处理例如部分输出的意义上来说,当与图11A的数据槽相比较时,这个架构可以允许更大的灵活性。当可以使用DU的批次处理时或在处理功率不恒定的情况下,这样的方法是合适的。而且在这种情况下,应用程序需要关于将来自CPB的经解码DU输出到数据槽中进行监测并且与解码器同步。
图11C描绘了图片大小的数据槽的示例性实施例。在实施例中,在图片包括与HEVC图块或VVC子图片的组合的情况下可以使用这个架构,其中,DU属于同一图片但可以独立于彼此而解码。如上文参考表4所描述的解码状态消息可以用于监测并且用信号表示用经解码DU填充数据槽。
对于这些数据槽架构中的每一个,可以通过以规则间隔对槽进行轮询以标识是否存在更新(即新DU被解码)来向使用解码器的输出的应用程序通知数据槽的更新。可替代地或另外地,在实施例中,每当更新槽时,例如解码器API可以生成回调事件。在又一实施例中,还可以使用混合方法,其中,第一更新机制(作为例如主要更新机制)正在定期(例如,周期性地或根据预定定时方案)对槽进行轮询并且使用仅针对特定事件(例如,初始化槽、在第一AU尚未完全解码的情况下将解码从一个AU的DU切换到另一AU的DU等)被激发或触发的回调事件。应用程序可以使用回调信息来调整轮询频率和/或定时。
图12示意性地描绘了根据本发明的实施例的处理优先解码的DU。如这个图中所示出的,图片1202-4可以表示图片的经解码DU的像素组,这些像素组是基于如参考本申请中的实施例描述的优先解码和输出过程在不同时间实例顺序地输出的。每个时间实例t1至t4,图片的另一像素组变得可用于后处理,例如切换和滤波,如由图片120421至120424所描绘的。
图13描绘了可以使用本披露内容中描述的实施例有利地处理的包括多个媒体类型(例如,作为背景的点云表示和360视频)的视频帧的示例。多个媒体部件可以放置在同一帧中以对它们进行时间锁定。第一媒体部件可以被编码成与第一媒体类型相关联的一个或多个DU,并且第二媒体部件可以被编码成与第二媒体类型相关联的一个或多个DU。如果对经编码图片的第一媒体类型的DU(例如,点云表示)进行解码,则可以在经编码图片的第二媒体类型的DU(例如表示背景的所投影360视频数据)正在被解码的同时将这些DU输出到数据槽以进行进一步处理。基于利用现有视频标准的MPEG的V3C标准,点云和视频图片都可以被编码在同一帧中。这样,点云可以变换为表示‘纹理’的像素和表示深度信息的像素。
图14描绘了根据本发明的实施例的优先解码过程的示例性使用。在这个示例中,在完整图片的解码尚未结束的同时部分输出的经解码数据的一部分的后处理可能已经开始。该图示意性地描绘了由三个DU组成的图片1400。在时间t,可以完成第一DU 14021的解码,使得可以通过将经解码DU复制到数据槽中来执行部分输出。应用程序可以使用数据来执行比如扩增等操作。与此同时,解码器可以继续解码并且在t+1处完成第二DU 14041的解码,同时应用程序正在使第一DU 14022扩增。在t+2,完成第一经扩增DU 14023(达到其原始大小的两倍),可以通过应用程序使第二DU 14042扩增,同时对第三DU 14061进行解码。
这样打包到相同帧中的一个优点是:不同对象通过视频基本流的设计实现了时间锁定(同步),即,属于与特定解码时间戳相对应的单个帧,因此参考媒体时间线的单个时间点。但当这些不同视频对象一起被打包在同一图片中时,它们在解码之后作为单个输出图片全部同时对应用程序可用。也就是说,应用程序无法对这些对象中的每一个进行精细访问,而是仅当某个图片的所有对象都被解码时才能访问它们。
这在解码器装置无法及时解码完整图片而是仅能够对帧的一部分进行解码的情景中可能是有问题的。这种情况可能是例如当解码器装置的处理器(例如,CPU或GPU)过热并且性能下降时,当由于网络问题导致图片的一部分未及时到达时,当在向解码器馈送DU中出现CPB错误时,当比特流的传输或比特流的操纵中的错误使一个或多个DU不可解码时和/或当在解码过程本身中出现错误时。
图15描绘了可以使用本申请中描述的技术的视频编码和解码系统1500的示意图。如图15中所示出的,系统1500可以包括第一视频处理设备1502(例如,视频捕获设备等),该第一视频处理设备被配置为生成可以由第二视频处理设备1504(例如,视频播放设备)解码的经编码视频数据。第一视频处理设备和第二视频处理设备可以包括多种设备中的任何一种,包括台式计算机、笔记本计算机(即,膝上型计算机)、平板计算机、机顶盒、电话手机(比如所谓的“智能”电话)、所谓的“智能”平板、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在一些情况下,视频处理设备可以被配备用于无线通信。
第二视频处理设备可以通过传输信道1506或能够将经编码视频数据从第一视频处理设备移动到第二视频处理设备的任何类型的介质或设备来接收要被解码的经编码视频数据。在一个示例中,传输信道可以包括通信介质,以使第一视频处理设备能够将经编码视频数据直接实时地传输到第二视频处理设备。可以基于比如无线通信协议等通信标准将经编码视频数据传输到第二视频处理设备。通信介质可以包括任何无线或有线通信介质,比如射频(RF)频谱或者一条或多条物理传输线路。通信介质可以形成比如局域网、广域网或全球网络(比如互联网)等基于分组的网络的一部分。通信介质可以包括路由器、交换机、基站、服务器或可以有助于促进第一视频处理设备与第二视频处理设备之间的通信的任何其他设备。
可替代地,可以经由第一视频处理设备的I/O接口1508将经编码数据发送到存储设备1510。可以通过输入第二视频处理设备的I/O接口1512来访问经编码数据。存储设备1510可以包括各种分布式或本地访问的数据存储介质中的任何一种,比如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪速存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备可以对应于可以保存由第一视频处理设备生成的经编码视频的文件服务器或另一中间存储设备。第二视频处理设备可以经由流式传输或下载来从存储设备访问所存储的视频数据。文件服务器可以是能够存储经编码视频数据并将该经编码视频数据传输到第二视频处理设备的任何类型的服务器。示例文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。第二视频处理设备可以通过任何标准数据连接(包括互联网连接)访问经编码视频数据。这种连接可以包括适合于访问存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或这两者的组合。来自存储设备36的经编码视频数据的传输可以是流式传输、下载传输或这两者的组合。
本披露内容的技术不一定限于无线应用或设置。这些技术可以应用于视频编码,以支持各种多媒体应用中的任何一种,比如空中电视广播、有线电视传输、卫星电视传输、流式视频传输(例如,经由互联网)、对用于存储在数据存储介质上的数字视频的编码、对存储在数据存储介质上的数字视频的解码或其他应用。在一些示例中,系统1500可以被配置为支持单向或双向视频传输,以支持比如视频流式传输、视频回放、视频广播和/或视频电话等应用。
在图15的示例中,第一视频处理设备可以进一步包括视频源1514和视频编码器1516。在一些情况下,I/O接口1508可以包括调制器/解调器(调制解调器)和/或发射器。视频源可以包括任何类型的源,比如视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频档案库、用于从视频内容提供者接收视频的视频馈送接口和/或用于生成计算机图形数据作为源视频的计算机图形系统或这样的源的组合。如果视频源1514是摄像机,则第一视频处理设备和第二视频处理设备可以形成所谓的相机电话或视频电话。然而,本披露内容中描述的技术通常可以应用于视频编码,并且可以应用于无线应用和/或有线应用。
捕获的、预捕获的或计算机生成的视频可以由视频编码器1516进行编码。经编码视频数据可以经由I/O接口1508直接传输到第二视频处理设备。经编码视频数据还可以(或可替代地)存储到存储设备1510上,以供第二视频处理设备或其他设备稍后访问,以进行解码和/或回放。
第二视频处理设备可以进一步包括视频解码器1518和显示设备1520。在一些情况下,I/O接口1512可以包括接收器和/或调制解调器。第二视频处理设备的I/O接口1212可以接收经编码视频数据。通过通信信道传送的或存储设备1510上提供的经编码视频数据可以包括由视频编码器1516生成的各种语法元素,以供视频解码器(比如视频解码器1518)在解码视频数据时使用。这种语法元素可以被包括在在通信介质上传输、存储在存储介质上或存储在文件服务器上的经编码视频数据中。
显示设备1520可以与第二视频处理设备集成在一起或在第二视频处理设备外部。在一些示例中,第二视频处理设备可以包括集成显示设备,并且还被配置为与外部显示设备对接。在其他示例中,第二视频处理设备可以是显示设备。一般而言,显示设备将经解码视频数据显示给用户,并且可以包括各种显示设备中的任何一种,比如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示设备。
视频编码器1516和视频解码器1518可以根据比如高效视频编码(HEVC)、VP9、AV1、EVC或VVC等视频压缩标准来操作。可替代地,视频编码器1516和视频解码器1518可以根据其他专有标准或行业标准(比如ITU-T H.264标准(可替代地称为MPEG-4部分10高级视频编码(AVC)),或这种标准的扩展)来操作。然而,本披露内容的技术不限于任何特定的编码标准。
尽管未在图15中示出,但在一些方面,视频编码器1516和视频解码器1518可以各自与音频编码器和音频解码器集成在一起,并且可以包括适当的MUX-DEMUX单元或其他硬件和软件,以处理对共同数据流或单独数据流中的音频和视频两者的编码。如果适用,在一些示例中,MUX-DEMUX单元可以符合ITU H.223多路复用器协议或其他协议,比如用户数据报协议(UDP)。
视频编码器1516和视频解码器1518可以各自实施为各种合适的编码器电路系统中的任何一种,比如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当这些技术部分地以软件实施时,设备可以将针对软件的指令存储在合适的非暂态计算机可读介质中,并使用一个或多个处理器以硬件方式执行指令以执行本披露内容的技术。视频编码器1516和视频解码器1518中的每一个可以被包括在一个或多个编码器或解码器中,这些编码器或解码器中的任一个可以作为组合编码器/解码器(CODEC)的一部分被集成在相应设备中。
本披露内容通常可以涉及视频编码器将某些信息“用信号发送”给另一设备(比如视频解码器)。术语“用信号发送”通常可以是指传送用于解码经压缩视频数据的语法元素和/或其他数据(元数据)。这种传送可以实时或近实时地发生。可替代地,这种传送可以在一定时间跨度内发生,比如可能在编码时将语法元素以经编码比特流的形式存储到计算机可读存储介质中时发生,然后,这些语法元素可以在被存储到此介质之后的任何时间由解码设备检索。
本披露内容的技术可以在包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)的各种设备或装置中实施。在本披露内容中描述了各种部件、模块或单元以强调被配置为执行所披露技术的设备的功能方面,但不一定需要由不同硬件单元来实现。而是,如上所述,各种单元可以组合在编解码器硬件单元中,或者由互操作硬件单元(包括如上所述的一个或多个处理器)的集合结合合适的软件和/或固件来提供。
本文所使用的术语仅用于描述特定实施例,并且不旨在限制本发明。如本文所使用的,单数形式“一个(a)”、“一种(an)”和“该(the)”旨在同样包括复数形式,除非上下文以其他方式清晰表明之外。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、部件和/或其组的存在或添加。
所附权利要求中所有装置或步骤加上功能元件的对应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其他要求保护的元件结合执行功能的任何结构、材料或动作。已经出于说明和描述的目的而呈现本发明的描述,但是该描述并不旨在穷举本发明或将本发明限于所披露的形式。在不脱离本发明的范围和精神的情况下,很多修改和变化对本领域普通技术人员都将是明显的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定用途时,使得本领域的其他普通技术人员能够针对具有各种修改的各个实施例理解本发明。

Claims (17)

1.一种处理图片序列的经编码表示的方法,该方法包括:
由解码装置的处理器在解码图片缓冲器DPB中为该图片序列的当前图片分配存储器;
由该处理器接收包括该当前图片的经编码表示的比特流,并且将该经编码表示作为多个解码单元DU存储在编码图片缓冲器CPB中,该多个DU中的每一个包括一组经编码像素,其中,至少两个DU对该多个DU中的其他DU的像素不具有帧内编码相依性;
由该处理器接收与存储在该CPB中的该多个DU相关联的优先次序信息,该优先次序信息定义该当前图片的DU能够被解码的解码顺序,优选地考虑到该多个DU的至少一部分的DU的像素的帧内编码相依性;
由该处理器根据所述解码顺序将所述多个DU中的一个或多个DU解码为一个或多个经解码DU,每个经解码DU包括一组像素,每组像素与该当前图片中的不同区域相关联;
由该处理器将这些像素组存储在该DPB中,一组像素存储在该DPB的所分配存储器中与该当前图片中的区域的位置相对应的一个位置处;以及,
在该当前图片的其他DU正在被该解码装置解码或接收的同时由该处理器根据该解码顺序输出该当前图片的经解码DU的一个或多个像素组作为部分输出。
2.根据权利要求1所述的方法,其中,该处理器输出这些经解码DU的一个或多个像素组进一步包括:
确定输出信息,该输出信息针对该一个或多个像素组中的至少一组标识该当前图片中的区域的位置;以及,
优选地经由应用程序编程接口API为在该解码装置外部的应用程序提供对该输出信息的访问。
3.根据权利要求1或2所述的方法,其中,该处理器输出经解码DU的一个或多个像素组进一步包括:
将这些像素组中的每一个复制到至少一个数据槽中,该至少一个数据槽可由在该解码装置外部的应用程序优选地经由API访问。
4.根据权利要求1至3中任一项所述的方法,其中,该优先次序信息针对该当前图片的每个DU包括DU标识符、例如decoding_unit_idx标识符、用于解码器装置确定该解码顺序的优先级参数、和/或用于标识与DU相关联的一组像素在当前图片中的位置的DU位置标识符,优选地,与DU相关联的DU标识符和优先级参数被格式化为网络抽象层NAL单元等,更优选地,该NAL单元包括或被实施为补充增强信息SEI消息,比如DU info SEI消息。
5.根据权利要求1至3中任一项所述的方法,其中,该优先次序信息包括该当前图片的DU优先级列表,该DU优先级列表包括DU标识符,例如decoding_unit_idx标识符,该DU优先级列表中所标识的DU的顺序由该解码器装置使用以确定该解码顺序,优选地,该DU优先级列表中的DU标识符的位置标识一个DU相对于该当前图片的其他DU的解码优先级的解码优先级,更优选地,与该当前图片相关联的DU优先级列表被格式化为NAL单元等,优选地该NAL单元包括或被实施为补充增强信息SEI消息,比如图片定时SEI消息。
6.根据权利要求2至5所述的方法,其中,该输出信息进一步包括以下项中的至少一项:
-指示该当前图片的经编码表示是否被完全解码的信息;
-指示尚未被解码的DU数量和/或被解码的DU数量的信息;或用于确定尚未被解码的DU数量和/或被解码的DU数量的信息;
-该当前图片中尚未被解码的一个或多个区域和/或该当前图片中被解码的一个或多个区域;
-与该当前图片相关联的输出顺序标识符,优选地图片顺序计数POC值,该输出顺序标识符标识该图片序列中的当前图片相对于该序列中的其他图片的输出位置的输出位置。
7.根据权利要求1至6中任一项所述的方法,其中,该多个DU中的一个或多个DU包括以下项中的至少一项的经编码表示:360视频数据、全向视频数据、场景的深度信息、与预定观看角度相关联的视频数据、或点云数据。
8.根据权利要求1至7中任一项所述的方法,其中,该解码顺序被布置用于输出与视频渲染设备、优选地虚拟现实VR渲染设备的视口相关联的经解码DU的像素组,该输出是在输出不与该视口相关联的像素组之前,其中,该视口仅涵盖该当前图片的一部分。
9.根据权利要求1至8中任一项所述的方法,
其中,该数据槽包括至少与经解码DU的大小相匹配的至少一个缓冲器,执行该部分输出包括:将该DPB中的经解码DU的像素复制到该至少一个缓冲器;或,
其中,该数据槽包括至少n个缓冲器,优选地,n等于该多个DU的数量,该n个缓冲器中的每一个的大小至少与经解码DU的大小相匹配,执行该部分输出包括:将该经解码DU的像素复制到该n个缓冲器中的至少一个中。
10.根据权利要求1至8中任一项所述的方法,
其中,该数据槽具有至少与至少一个图片的大小相匹配的至少一个缓冲器,执行该部分输出包括:
根据经解码DU的像素在该当前图片中的位置将该经解码DU的像素复制到该缓冲器中的某个位置处。
11.根据权利要求1至10中任一项所述的方法,
其中,DU基于如在AVC中定义的一个或多个宏块、如在HEVC中定义的一个或多个编码树单元CTU、如在HEVC或VVC中定义的一个或多个条带或者如在VVC中定义的一个或多个子图片;和/或,
其中,该解码基于编码标准,优选地基于块的视频编码标准,更优选地AVC、HEVC、VP9、AV1、VVC、EVC编码标准或者基于AVC、HEVC、VP9、AV1、VVC、EVC编码标准的编码标准。
12.一种用于处理图片序列的经编码表示的解码装置,该解码装置包括:
计算机可读存储介质,该计算机可读存储介质具有用其体现的计算机可读程序代码;以及处理器,优选地微处理器,该处理器耦合至该计算机可读存储介质,其中,响应于执行该计算机可读程序代码,该处理器被配置为执行可执行操作,这些可执行操作包括:
在解码图片缓冲器DPB中为该图片序列的当前图片分配存储器;
接收包括该当前图片的经编码表示的比特流,并且将该经编码表示作为多个解码单元DU存储在编码图片缓冲器CPB中,该多个DU中的每一个包括一组经编码像素,其中,至少两个DU对该多个DU中的其他DU的像素不具有帧内编码相依性;
接收与存储在该CPB中的该多个DU中的每一个相关联的优先次序信息,该优先次序信息定义该当前图片的DU正在被解码的解码顺序,优选地考虑到该多个DU的至少一部分的DU的像素的帧内编码相依性;
根据所述解码顺序将所述多个DU中的一个或多个DU解码为一个或多个经解码DU,每个经解码DU包括一组像素,每组像素与该当前图片中的不同区域相关联;
将这些像素组存储在该DPB中,一组像素存储在该DPB的所分配存储器中与该当前图片中的区域的位置相对应的一个位置处;以及,
在该当前图片的其他DU正在被该解码装置解码或接收的同时根据该解码顺序输出该当前图片的经解码DU的一个或多个像素组作为部分输出。
13.根据权利要求12所述的解码装置,其中,这些可执行操作进一步包括:
将这些像素组中的每一个复制到至少一个数据槽中,该至少一个数据槽可由在该解码装置外部的应用程序优选地经由API访问;
确定输出信息,该输出信息针对该一个或多个像素组中的至少一组标识该当前图片中的区域的位置;以及,
优选地经由应用程序编程接口为在该解码装置外部的应用程序提供对该输出信息的访问。
14.一种解码装置,被配置为执行由权利要求1至11定义的任何步骤。
15.一种用于确定图片序列的经编码表示的编码器装置,该解码装置包括:
计算机可读存储介质,该计算机可读存储介质具有用其体现的计算机可读程序代码;以及处理器,优选地微处理器,该处理器耦合至该计算机可读存储介质,其中,响应于执行该计算机可读程序代码,该处理器被配置为执行可执行操作,这些可执行操作包括:
接收包括像素的图片序列;
识别该图片序列中的当前图片的像素区与该图片序列中的其他图片的像素区之间的编码相依性;
将该当前图片编码成多个解码单元DU,该多个DU中的每一个包括一组经编码像素;
将这些DU变换成比特流,该比特流包括用于对该多个DU进行解码的元数据,该元数据包括与存储在该CPB中的该多个DU相关联的优先次序信息,该优先次序信息定义该当前图片的DU能够被解码的解码顺序,优选地考虑到该多个DU的至少一部分的DU的像素的帧内编码相依性,以及
将包含这些DU和该元数据的所述比特流存储在输出缓冲器中。
16.一种比特流生成装置,
接收包括图片序列的经编码表示的比特流;
解析该比特流并且针对该序列中的图片的每个经编码表示识别表示当前图片的多个DU,该多个DU中的每一个包括一组经编码像素;
在该比特流中注入元数据以形成修改后的比特流,该元数据包括与存储在该CPB中的该多个DU相关联的优先次序信息,该优先次序信息定义该当前图片的DU能够被解码的解码顺序,优选地考虑到该多个DU的至少一部分的DU的像素的帧内编码相依性;以及,
输出该修改后的比特流。
17.一种计算机程序产品,包括软件代码部分,这些软件代码部分被配置成当在计算机的存储器中运行时执行根据权利要求1至11中任一项所述的方法步骤。
CN202180094270.1A 2020-12-28 2021-12-16 在视频编码中图片的部分的优先解码和输出 Pending CN116965022A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20217377.9 2020-12-28
EP20217377 2020-12-28
PCT/EP2021/086136 WO2022144184A1 (en) 2020-12-28 2021-12-16 Prioritized decoding and output of parts of a picture in video coding

Publications (1)

Publication Number Publication Date
CN116965022A true CN116965022A (zh) 2023-10-27

Family

ID=73943251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180094270.1A Pending CN116965022A (zh) 2020-12-28 2021-12-16 在视频编码中图片的部分的优先解码和输出

Country Status (4)

Country Link
US (1) US20240056614A1 (zh)
EP (1) EP4268462A1 (zh)
CN (1) CN116965022A (zh)
WO (1) WO2022144184A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695965B1 (en) * 2022-10-13 2023-07-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video coding using a coded picture buffer
WO2024096934A1 (en) * 2022-11-01 2024-05-10 Qualcomm Incorporated Identifying and marking video data units for network transport of video data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8036517B2 (en) * 2006-01-25 2011-10-11 Qualcomm Incorporated Parallel decoding of intra-encoded video
JP2015526006A (ja) * 2012-06-29 2015-09-07 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ ビデオ・データストリーム・コンセプト
US9872041B2 (en) * 2012-08-10 2018-01-16 Lg Electronics Inc. Method and apparatus for transceiving image component for 3D image
US9794579B2 (en) * 2013-07-15 2017-10-17 Qualcomm Incorporated Decoded picture buffer operations for video coding

Also Published As

Publication number Publication date
WO2022144184A1 (en) 2022-07-07
EP4268462A1 (en) 2023-11-01
US20240056614A1 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
US10701401B2 (en) Syntax structures indicating completion of coded regions
JP7343573B2 (ja) 逆量子化のための装置及び方法
CA2952460C (en) Systems and methods for selectively signaling different numbers of video signal information syntax structures in a parameter set
KR101904625B1 (ko) 비디오 코딩에서 서브-디코딩된 픽처 버퍼 (서브-dpb) 기반의 dpb 동작들을 위한 시그널링
KR102038190B1 (ko) 스케일러블 비디오 코딩에서의 비트스트림 적합성 제약들
TW201742464A (zh) 用於產生用於視訊圖像之區域嵌套訊息之方法及系統
KR20150003235A (ko) 비디오 코딩에서의 낮은-지연 비디오 버퍼링
US20220217389A1 (en) Encoder and decoder with support of sub-layer picture rates in video coding
TW201735608A (zh) 用於產生對視訊之顏色再映射資訊之補充增強資訊訊息之方法及系統
JP7483869B2 (ja) エンコーダ、デコーダ、および対応する方法
CN114902662A (zh) 用于视频译码的跨分量自适应环路滤波
JP2022179505A (ja) ビデオ復号方法およびビデオデコーダ
US20240056614A1 (en) Prioritized decoding and output of parts of a picture in video coding
US20240056590A1 (en) Partial output of a decoded picture buffer in video coding
JP2024055894A (ja) ピクチャヘッダのシグナリングを簡略化するためのエンコーダ、デコーダ及び対応する方法
US20230049909A1 (en) Partial output of a decoded picture buffer in video coding
US20220408115A1 (en) Image decoding method and device
WO2021061025A1 (en) An encoder, a decoder with picture order counter derivation
TWI782382B (zh) 編解碼器及編解碼方法、電腦程式產品、非暫態性存儲介質
US20230344987A1 (en) Image/video encoding/decoding method and apparatus using same
KR20220161427A (ko) 픽처 분할 정보 및 서브픽처 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체
CN117203968A (zh) 基于包括层标识符信息的sei消息的图像编码/解码方法和装置及发送比特流的方法

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