CN115152211A - 视频编码中解码图片缓冲区的部分输出 - Google Patents
视频编码中解码图片缓冲区的部分输出 Download PDFInfo
- Publication number
- CN115152211A CN115152211A CN202080097698.7A CN202080097698A CN115152211A CN 115152211 A CN115152211 A CN 115152211A CN 202080097698 A CN202080097698 A CN 202080097698A CN 115152211 A CN115152211 A CN 115152211A
- Authority
- CN
- China
- Prior art keywords
- picture
- decoded
- dus
- dpb
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/127—Prioritisation of hardware or computational resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
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的比特流,并将DU存储在编码图片缓冲区CPB中,DU表示需要被解码成解码图片的编码图片,每个DU表示编码像素块;确定在编码图片的解码期间是否可以执行至少一个部分输出,所述至少一个部分输出包括当编码图片的一个或多个DU尚未被解码并移除CPB时,将一个或多个解码DU从DPB复制到数据宿,一个或多个解码DU表示解码图片的一部分;以及,或者如果处理器确定可以执行至少一个部分输出,则处理器执行至少一个部分输出,该执行包括:将存储在DPB中的一个或多个解码DU标记为准备好部分输出,该标记发信号通知解码器装置不从DPB移除一个或多个解码DU;以及将一个或多个标记的解码DU从DPB复制到数据宿,而不从DPB移除一个或多个解码DU。
Description
技术领域
本发明涉及视频编码中解码图片缓冲区的部分输出,并且尽管不专门但特别地涉及用于解码图片缓冲区的部分输出方法和***、使用此类方法的视频解码器装置和视频编码器装置以及用于执行此类方法的计算机程序产品。
背景技术
现有技术的视频编码标准依赖于假定的解码器模型,该假定的解码器模型规定了输入缓冲区、解码器过程和输出缓冲区之间的关系,其中输入和输出缓冲区以及解码器过程属于解码器。例如,HEVC标准在作为ISO/IEC 23008-2出版的HEVC规范的附录C中定义了所谓的假设参考解码器(HRD)模型。HRD允许编码器指定比特流的约束,以标识确保比特流能够被正确缓冲、解码和输出所需的能力。
HRD定义了编码图片缓冲区(CPB)、瞬时解码过程和解码图片缓冲区(DPB)。CPB的输入是包括解码单元(DU)的比特流。DU可以是访问单元(AU)、即完整的图片,或者是表示图片的一部分的AU的子集、即AU的独立切片。因此,在后一种情况下,多个DU可以定义完整的图片。HRD的操作包括初始化,其中CPB和DPB二者被设置为空,并且此后假设的流调度器(HSS)根据指定的到达调度将解码单元DU递送到CPB。在解码期间,在DU的CPB移除时间,DU被瞬时解码过程移除并瞬时解码。此后,每个解码图片被放置在DPB中,并根据特定的定时信息被输出。
HRD模型的问题涉及其假定瞬时解码的事实。然而,实际上解码图片的所有DU的时间不是瞬时的。解码花费时间,因为解析和解压缩数据将消耗CPU周期。此外,在CPB和DPB二者中,添加、处理和移除DU花费时间,这也贡献了解码时间以及物理芯片上字节的实际移动。HRD模型定义了在访问单元级别的输出,即整个图片。因此,原则上,一旦形成图片的所有DU被解码,DPB中的DU就从DPB输出。
然而,如今许多应用需要对CPB中的解码数据的快速访问。例如,一些应用程序将不同的视频对象打包在同一图片内部,而这些不同的对象不一定要一起显示,也不一定要同时显示。这种打包到相同帧中的一个优点是,通过属于对应于某个解码时间戳的单个帧,不同的对象通过设计被时间锁定(同步),因此指代媒体时间线中的时间点。但是,当这些不同的视频对象被打包在同一图片中时,它们在解码之后作为单个输出图片同时全部变得可用于应用程序。也就是说,应用程序不具有对这些对象中的每一个的精细访问,而仅可以当包括其对象的整个图片被解码时进行访问。
类似地,当解码诸如立方体映射投影视频之类的全向内容时,图片包含球形视频的不同部分(面部)。在渲染期间,每个面部的相关性可以取决于当前用户的视口。因此,对于某个时间实例,一个或多个面部可以包含用户视口的像素,而其他面部不被用户观看。结果,对于应用程序而言,尽可能快地检索下一帧的用户视口中的更新像素可能是有利的,使得可以在高速率下刷新所呈现的图片。
因此,从以上来看,本领域中存在对于改进的视频编码方法和视频编码***的需要,所述改进的视频编码方法和视频编码***允许应用程序快速访问解码器的解码像素缓冲区中的解码数据。
发明内容
如本领域技术人员将领会的,本发明的各方面可以体现为***、方法或计算机程序产品。因此,本发明的方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)的形式,或将软件和硬件方面组合的实施例,所述将软件和硬件方面组合的实施例在本文中通常可以全部被称为“电路”、“模块”或“***”。本公开中描述的功能可以实现为由计算机的微处理器执行的算法。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该一个或多个计算机可读介质上体现、例如存储有计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁、光、电磁、红外或半导体***、装置或设备,或者前述的任何合适的组合。计算机可读存储介质的更具体的示例(非穷举列表)将包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或前述的任何合适的组合。在本文件的上下文中,计算机可读存储介质可以是能够包含或存储由指令执行***、装置或设备使用或与指令执行***、装置或设备结合使用的程序的任何有形介质。
计算机可读信号介质可以包括其中体现有计算机可读程序代码的传播数据信号,该传播数据信号例如在基带中或作为载波的一部分。这样的传播信号可以采取多种形式中的任一个,包括但不限于电磁、光学或其任何合适的组合。计算机可读信号介质可以是任何计算机可读介质,其不是计算机可读存储介质,并且可以传送、传播或传输由指令执行***、装置或设备使用或与指令执行***、装置或设备结合使用的程序。
计算机可读介质上体现的程序代码可以使用任何合适的介质进行传输,所述任何合适的介质包括但不限于无线、有线、光纤、线缆、RF等或前述的任何合适的组合。用于实行本发明各方面的操作的计算机程序代码可以用一个或多个编程语言的任何组合来编写,所述一个或多个编程语言包括面向对象的编程语言——诸如Java(TM)、Smalltalk、C++等,以及常规的过程编程语言——诸如“C”编程语言或类似的编程语言。程序代码可以完全在用户的计算机上执行,作为独立的软件包部分在用户的计算机上执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以使其连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。
下文参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图图示和/或框图,描述了本发明的各方面。将理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器、特别是微处理器或中央处理单元(CPU),以产生机器,使得经由计算机的处理器、其他可编程数据处理装置或其他设备执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。
这些计算机程序指令也可以存储在计算机可读介质中,其可以引导计算机、其他可编程数据处理装置或其他设备以特定方式运转,使得存储在计算机可读介质中的指令产生制造品,所述制造品包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的指令。计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行,从而产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的过程。附加地,指令可以由任何类型的处理器执行,所述任何类型的处理器包括但不限于一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FP-GA)或其他等效的集成或分立逻辑电路。
各图中的流程图和框图图示了根据本发明各种实施例的***、方法和计算机程序产品的可能实现的架构、功能性和操作。在这方面,流程图或框图中的每个框可以表示模块、代码段或代码部分,其包括用于实现(一个或多个)指定逻辑功能的一个或多个可执行指令。还应当注意,在一些替代实现中,框中标注的功能可以不按照各图中标注的次序出现。例如,连续示出的两个框实际上可以基本上同时被执行,或者各框有时可以以相反的次序被执行,这取决于所涉及的功能性。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作的基于专用硬件的***或者专用硬件和计算机指令的组合来实现。
本公开中实施例的主要观点在视频的每个图片包含多个DU的情况下,解码器在整个图片被解码之前、即在图片的所有DU从CPB移除之前,启用全图片的部分重构的输出(解码图片的部分输出)。本公开中描述的实施例允许应用程序——例如VR应用程序或图片后处理应用程序——在图片被完全解码之前访问包括存储在DPB中的图片的一部分的数据宿。因此,本发明使得应用程序能够访问解码图片的一部分,而图片的其他部分、即DU已经到达CPB或者尚未从CPB移除。这样,例如渲染过程或视频处理步骤之类的应用程序可能已经在图片的一部分的基础上开始,而全图片没有被完全解码。
在一方面,本发明可以涉及一种处理图片视频数据的方法,其中该方法可以包括以下步骤中的一个或多个:解码装置的处理器为解码图片缓冲区DPB中的解码图片分配内存,解码图片包括表示视频数据的像素;处理器接收包括解码单元DU的比特流,并将DU存储在编码图片缓冲区CPB中,DU表示需要被解码成解码图片的编码图片,每个DU表示编码像素块;所述处理器确定在编码图片的解码期间是否可以执行至少一个部分输出,所述至少一个部分输出包括当编码图片的一个或多个DU尚未被解码并移除CPB时,将一个或多个解码DU从DPB复制到数据宿,一个或多个解码DU表示解码图片的一部分;以及如果处理器确定可以执行至少一个部分输出,则处理器执行至少一个部分输出,该执行包括:将一个或多个标记的解码DU从DPB复制到数据宿,而不从DPB移除一个或多个解码DU。
在实施例中,至少一个部分输出的执行可以包括将存储在DPB中的一个或多个解码DU标记为准备好部分输出,该标记向解码器装置发信号通知不从DPB移除一个或多个解码DU。
在实施例中,执行至少一个部分输出可以包括向与数据宿相关联的应用程序发信号通知已经执行DPB的部分输出。
因此,本发明允许解码器装置在图片的解码过程期间执行解码DU的多个输出。这样,一旦解码数据通过解码器装置的解码过程可用,应用程序就可以使用和处理图片的一部分的解码数据。
在实施例中,确定是否可以执行至少一个部分输出可以包括:确定是否禁用图片的环路内滤波。
在实施例中,确定是否可以执行部分输出可以包括:处理器接收与图片相关联的解码信息,所述解码信息优选地是SEI消息、诸如图片定时SEI消息,所述解码信息包括部分输出指示符,所述输出指示符优选地是部分输出标志,用于向解码器装置发信号通知是否可以执行表示部分解码图片的解码DU的部分输出。
在实施例中,确定是否可以执行部分输出可以包括:处理器接收与图片相关联的解码信息,所述解码信息优选地是SEI消息、诸如图片定时SEI消息,所述解码信息向解码器装置发信号通知,如果应当在如HEVC中指定的DU级上或者作为如在WC中指定的子图片来处理比特流,则可以执行部分输出。
在实施例中,与图片相关联的解码信息进一步包括用于执行解码DU的一个或多个部分输出的定时信息。
在实施例中,所述数据宿可以包括与DU大小相匹配的缓冲区,其中,将DPB的至少部分传送到数据宿可以包括:将DPO中的解码DU复制到数据宿的缓冲区。
在实施例中,所述数据宿可以包括n个缓冲区,其中n是所述多个DU的数量,并且其中所述n个缓冲区中的每一个与所述多个DU中的一个的大小相匹配,其中将DPB的至少部分传送到数据宿可以包括:将解码DU复制到所述数据宿的n个缓冲区中的一个中。
在实施例中,所述数据宿可以具有与图片大小相匹配的缓冲区,其中,将DPB的至少部分传送到数据宿可以包括:将DU复制到数据宿的缓冲区中与DU在图片中的位置相对应的位置处。
在实施例中,应用程序的信令可以包括:生成与图片解码相关联的信息,该信息包括以下消息中的一个或多个:状态消息,用于发信号通知图片是否完全解码;尚未解码的DU的数量;图片中尚未解码的DU的位置。
在实施例中,DU可以是如在AVC中定义的宏块、如在HEVC中定义的编码树单元CTU、如在HEVC或VVC中定义的切片或如在VVC中定义的子图片。
在实施例中,解码可以基于编码标准,所述编码标准优选地是基于块的视频编码标准,更优选地是AVC、HEVC、VP9、AV1、VVC编码标准或者基于AVC、HEVC、VP9、AV1、VVC编码标准的编码标准。
在另外的方面,本发明可以涉及一种解码装置,包括:计算机可读存储介质,其具有与其一起体现的至少部分程序;以及计算机可读存储介质,其具有与其一起体现的计算机可读程序代码,以及耦合到计算机可读存储介质的处理器,优选地是微处理器,其中响应于执行计算机可读程序代码,处理器被配置为执行可执行操作,所述可执行操作包括:解码装置的处理器为解码图片缓冲区DPB中的解码图片分配内存,解码图片包括表示视频数据的像素;处理器接收包括解码单元DU的比特流,并将DU存储在编码图片缓冲区CPB中,DU表示需要被解码成解码图片的编码图片,每个DU表示编码像素块;所述处理器确定在编码图片的解码期间是否可以执行至少一个部分输出,所述至少一个部分输出包括当编码图片的一个或多个DU尚未被解码并移除CPB时,将一个或多个解码DU从DPB复制到数据宿,一个或多个解码DU表示解码图片的一部分;以及如果处理器确定可以执行至少一个部分输出,则处理器执行至少一个部分输出,该执行包括:将存储在DPB中的一个或多个解码DU标记为准备好部分输出,该标记向解码器装置发信号通知不从DPB移除一个或多个解码DU;将一个或多个标记的解码DU从DPB复制到数据宿,而不从DPB移除一个或多个解码DU;以及可选地,向与数据宿相关联的应用程序发信号通知已经执行了DPB的部分输出。
解码器装置可以被配置为执行上述任何方法步骤。本发明还可以涉及一种包括软件代码部分的计算机程序产品,该软件代码部分被配置用于当在计算机的存储器中运行时,执行根据上述任何过程步骤的方法步骤。在本申请中,使用了以下缩写和术语:
将参考附图进一步说明本发明,附图将示意性地示出根据本发明的实施例。将理解,本发明不以任何方式局限于这些具体实施例。
附图说明
图1A和图1B是图示假设参考解码器(HRD)的缓冲区模型的框图。
图2描绘了包括两个解码单元的访问单元的示例。
图3描绘了要求在解码图片缓冲区中存储多个图片的编码层次的示例。
图4描绘了根据本发明实施例的解码过程的流程图。
图5描绘了用于生成适合于部分输出的比特流的编码器装置;
图6描绘了根据本发明的实施例被配置为执行部分输出的解码器装置。
图7描绘了根据本发明实施例的缓冲区输出方案。
图8描绘了根据本发明另一实施例的缓冲区输出方案。
图9A-9C描绘了根据本发明各种实施例的缓冲区输出方案。
图10描绘了根据本发明实施例的部分读出方案的示例。
图11描绘了图示可以与本公开中所述实施例一起使用的示例性数据处理***的框图。
具体实施方式
图1A和图1B是图示用于假设参考解码器(HRD)的缓冲区模型的框图。如在HEVC视频标准(作为ISO/IEC 23008-2和ITU-T H.265建议出版的HEVC规范的附录C)中所定义的。大多数编解码器使用HRD模型来指定关于在编码和解码期间使用的缓冲区的行为的约束。如图1A中所示,根据由假设的流调度器(HSS)100递送的指定到达调度,与所谓的解码单元(DU)相关联的数据被输入到编码图片缓冲区CPB 102中。CPB是包含用于解码的编码图片的先进先出缓冲区。由HSS递送的数据可以作为比特流递送给CPB。每个解码单元被从CPB移除,并且在解码单元的CPB移除时间处通过解码过程104(例如,通过视频解码器)解码。
解码过程104产生的每个解码图片存储在解码图片缓冲区DPB 106中。DPB是保存解码图片的缓冲区,供在参考(例如,帧间预测)、输出重新排序、输出延迟和最终显示中使用。当解码图片不再需要用于帧间预测参考并且不再需要用于输出时,可以从DPB移除该解码图片。在一些示例中,DPB 106中的解码图片可以在被显示之前被输出裁剪单元108裁剪。输出裁剪单元108可以是视频解码器30的一部分,或可以是外部处理器(例如,渲染引擎)的一部分,其被配置以进一步处理视频解码器的输出。HRD在数学上指定了CPB和DPB的行为,并对不同的定时、缓冲区大小和比特率施加了约束。典型的HRD参数可以包括诸如如下各项的参数:初始CPB移除延迟、CPB大小、比特率、初始DPB输出延迟和DPB大小。
图1B描绘了HRD的定时模型,其将编码视频序列(CVS)的解码定义为在t=0处开始并在最后一个图片被解码和输出时结束的连续步骤。HRD被定义用于解码访问单元(AU)和解码单元(DU)二者,其中每个AU表示全图片,其中每个DU表示图片的一部分。该模型考虑了几个事件,每个事件与解码过程期间的一个时间点相关联:
这里,从CPB编码DU的移除和在DPB的解码DU的到达与DU的解码过程相同,被假定是瞬时的。
CPB的输入是包括DU的比特流,其中DU可以是AU或AU的子集。CPB移除是基于访问单元(AU)、即完全的编码图片,其包括网络抽象层(NAL)单元集并且包含一个编码图片。如图2中所示,AU子集的示例可以是例如AU的切片。该图图示了例如NAL单元集,其包括形成AU的非VCL NAL单元(VSP、SPS和PPS)和两个VCL NAL单元,其中每个VCL NAL单元以切片的形式定义DU。因此,该示例定义了被划分成两个切片2041,2的视频帧202,每个切片占据该帧的一半并将其水平划分。这里,术语DU可以是在视频编码标准中定义的基本解码单元。DU的示例可以包括从AVC已知的宏块、从HEVC和WC已知的编码树单元(CTU)或子图片。
定义为AU子集的DU已经在HEVC中引入,用于低延迟应用,其中帧的解码可以例如分解成块的解码行。DU可以通过DU信息SEI消息被分配附加的解码时间戳。该定时信息为每个DU提供时间戳,除了图片定时SEI消息之外,还可以使用该时间戳,该图片定时SEI消息指示整个访问单元的编码图片缓冲区(CPB)移除和解码图片缓冲区(DPB)移除的定时。这样,图片(视频帧)的解码可以已经开始,而不是图片(视频帧)的所有DU已经到达CPB。DU允许例如低延迟操作模式,诸如瓦片的并行解码。这样,可以减少由编码、传输和解码过程引入的延迟。
DPB的大小取决于编码层次,因为其必须保存将被下一帧解码使用的参考图片。由于可能发生帧首先被解码但仅稍后被呈现的情况(例如,如在无序编码的情况下),因此DPB可以保存解码帧一小段时间,直到所有图片都被解码并被输出,此后可以将它们从DPB移除。例如,对于图3A和图3B中描绘的编码层次,需要(至少)三个图片的DBP大小。例如,当P3被解码时,图3A中的图片P1和P2都需要存储在DPB中,因为它们都是在P3之后输出的。因此,DPB需要能够同时存储P1、P2和P3。类似地,在图3B中,每个图片使用两个参考图片,因此DPB需要足够大以同时存储三个图片。图3B中的参考结构是所谓的低延迟B结构的示例,其中在没有任何无序输出的情况下广泛使用双向预测。
在HEVC HRD模型中,解码或CPB移除基于访问单元(AU)、即全编码图片,其中图片解码被假定为瞬时的。AU定义了包括一个编码图片的网络抽象层(NAL)单元集。解码器可以遵循由视频编码器生成的发信号通知的(例如,如在所谓的图片定时补充增强信息(SEI)消息中定义的)解码时间来开始AU的解码。HRD模型定义了可以用于控制解码和输出的定时的语法元素。
因此,如上所述,CPB可以在AU级(即,图片级)或子图片级(即,小于整个图片级)操作。该操作可以取决于子图片级CPB操作是否是解码器优选的(其可以由HEVC标准中未指定的外部装置来指定)以及子图片CPB参数是存在于比特流中还是经由HEVC标准中未指定的外部装置提供给解码器)。当两个条件都为真时,CPB可以在子图片级操作,使得每个DU被定义为AU的子集。比特流中的参数和/或标志可以发信号通知解码器应该以何种模式操作。例如,如果语法元素SubPicCpbFlag等于0,则DU可以等于AU,否则DU是AU的子集。更一般地,编码器或应用程序可以在比特流中***HRD参数,以基于HRD模型控制解码过程。
例如,在实际的视频应用程序中,解码器可以遵循由视频编码器生成的发信号通知的(例如,如在所谓的图片定时补充增强信息(SEI)消息中定义的)解码时间来开始AU的解码,然后输出特定解码图片的最早可能时间等于该特定图片的解码时间,即图片开始解码的时间,加上解码该特定图片所需的时间(其在HRD模型中为瞬时)。
可以利用视频编解码器的视频应用程序不仅包括流式传输和广播/多播应用程序,而且还包括虚拟现实(VR)和游戏应用程序。后者是消费所谓的全向内容的视频应用程序的示例。当对全向内容进行编码时,使用诸如立方体映射投影的特殊投影来将像素映射到视频图片的2D平面上的球体上,这样的投影的视频帧包含球形视频的不同部分,其中所呈现的内容由当前用户的视口来确定。在每个时间实例,全向视频的一些部分被用户的视口覆盖,而其他部分没有被覆盖。因此,对于应用程序而言,尽可能快地从下一帧检索用户视口中的更新像素以便能够刷新所呈现的图片是有利的。因此,对于这些应用程序,期望低延迟渲染流水线,其中期望对DPB中的解码像素的快速访问。
然而,当前的HRD模型不允许应用程序在解码整个图片之前对解码图片缓冲区访问。HRD模型仅允许一旦图片被完全解码而从DPB输出图片。DU在CPB接收到所有DU之前启用解码,但输出总是在图片完全解码时。然而,现在许多应用程序将不同的视频对象打包在同一图片内部,而这些不同的对象不一定必须一起显示,也不一定必须同时显示。这种打包到同一帧中的一个优点是,通过属于对应于某个解码时间戳的单个帧,不同的对象通过设计被时间锁定(同步),因此指代媒体时间线的时间点。但是,当这些不同的视频对象被一起打包在同一图片中时,它们在解码之后作为单个输出图片全部同时可用于应用程序。也就是说,应用程序不具有对这些对象中的每一个的精细访问,而仅可以在某一图片的所有对象都被解码时访问它们。
在解码器不能按时解码全图片但仅能够解码部分帧的场景中,这可能是有问题的。例如,当解码器/CPU/GPU过热并且性能下降时,当由于网络问题导致图片的一部分没有按时到达时,当在向解码器馈送DU时出现CPB错误时,当传输/比特流操纵中的错误使得一个或多个DU不可解码时,和/或当在解码过程本身中出现毛刺时,这样的情形可能发生。
下文描述了允许对解码器装置输出的视频数据进行快速渲染或后处理的解码过程。参考图4描述这样的解码过程的示例。该图描绘了根据本发明实施例的解码过程的流程图。如该图中所示,该过程可以从解码器为解码器的解码图片缓冲区(DPB)中的解码图片分配内存开始(步骤402)。解码图片可以包括表示视频数据的像素。该方法可以进一步包括解码器接收包括解码单元(DU)的比特流,并将DU存储在解码器的编码图片缓冲区(CPB)中(步骤404)。这里,DU可以表示需要被解码成解码图片的编码图片。此外,每个DU可以表示编码的像素块。
在步骤406中,解码器可以确定在编码图片的解码期间是否可以执行至少一个部分输出。这里,部分输出可以包括将一个或多个解码DU从DPB复制到数据宿,而编码图片的一个或多个DU尚未被解码并被移除CPB。一个或多个解码DU可以表示解码图片的一部分。如果处理器确定可以执行至少一个部分输出,则解码器可以执行至少一个部分输出(步骤408)。执行部分输出可以包括将存储在DPB中的一个或多个解码DU标记为准备好部分输出。该标记可以发信号通知解码器不从DPB移除一个或多个解码DU。
另外的步骤可以包括将一个或多个标记的解码DU从DPB复制到数据宿,而不从DPB移除一个或多个解码DU。
在实施例(未示出)中,解码器可以向与数据宿相关联的应用程序发信号通知已执行DPB的部分输出。在另外的实施例中,如果编码图片的所有DU都被解码,则解码图片可以被标记为可用于输出。在这种情况下,可以将DPB中的完全解码图片复制到数据宿中,并且可以从DPB移除该图片,除非需要该图片作为帧间预测的参考图片。
本公开中实施例的主要观点在视频的每个图片包含多个DU的情况下,解码器在整个图片被解码之前、即在图片的所有DU从CPB移除之前,启用全图片的部分重构的输出(解码图片的部分输出)。本公开中描述的实施例允许应用程序——例如VR应用程序或图片后处理应用程序——在图片被完全解码之前访问包括存储在DPB中的图片的一部分的数据宿。因此,本发明使得应用程序能够访问解码图片的一部分,而图片的其他部分、即DU已经到达CPB或者尚未从CPB移除。这样,例如渲染过程或视频处理步骤之类的应用程序可能已经在图片的一部分的基础上开始,而全图片没有被完全解码。
图5是图示视频编码器装置500的框图,该视频编码器装置500被配置为提供如参考本申请中的实施例所述的部分输出功能性。视频编码器装置500可以对视频帧或其部分(例如,视频切片)内的视频块执行帧内和帧间编码。帧内编码依赖于空间预测来减少或移除给定图片内的视频中的空间冗余。帧间编码依赖于时间预测来减少或移除视频序列的相邻图片或图片内的视频中的时间冗余。帧内模式(I模式)可以指代几个基于空间的压缩模式中的任一个。诸如单向预测(P模式)或双向预测(B模式)之类的帧间模式可以指代几个基于时间的压缩模式中的任一个。
视频编码器装置可以接收待编码的视频数据502。在图5的示例中,视频编码器装置500可以包括分区单元503、模式选择单元504、加法器506、变换单元508、量化单元510、熵编码单元512和解码图片缓冲区514。模式选择单元504进而可以包括运动估计单元516、帧间预测单元520和帧内预测单元520。帧间预测单元可以包括运动向量预测单元522,该运动向量预测单元522可以被配置为根据本申请中的实施例生成运动向量预测器候选列表。对于视频块重构,视频编码器装置500还可以包括逆量化和变换单元515以及加法器528。还可以包括诸如去块滤波器518之类的环路滤波器,以从重构的视频帧中滤除伪像。除了去块滤波器之外,还可以使用附加的环路滤波器(环路内或环路后)。如果在将编码图片解码成解码图片的过程中,使用环路内滤波器来滤除伪像,则可以将元数据(例如标志)***比特流中,以发信号通知解码器在解码期间它应该使用环路内滤波器。例如,在HEVC中,取决于环路内滤波是在每图片还是每图片集的基础上被启用还是被禁用,(一个或多个)环路内滤波器是否被启用的信息可以被***到SPS或PPS消息中。
模式选择单元504可以选择一种编码模式(例如,基于优化函数(诸如速率失真优化(RDO)函数)的误差结果的帧内预测或帧间预测模式),并将所得帧内或帧间编码块提供给加法器506,以生成残余视频数据块(残余块),提供给加法器528以重构编码块用作参考图片。在编码过程期间,视频编码器500可以接收待编码的图片或切片。图片或切片可以被分区成多个视频块。模式选择单元504中的帧间预测单元520可以相对于一个或多个参考图片中的一个或多个块对所接收的视频块执行帧间预测编码,以提供时间压缩。替代地,模式选择单元中的帧内预测单元518可以相对于与待编码的块相同的图片或切片中的一个或多个相邻块对所接收的视频块执行帧内预测编码,以提供空间压缩。视频编码器可以执行多个编码遍,以例如为每个视频数据块选择适当的编码模式。
分区单元503可以基于对先前编码遍中的先前分区方案的评估,进一步将视频块分区成子块。例如,分区单元可以最初将图片或切片分区成LCU,并且基于速率失真分析(例如,速率失真优化)将LCU中的每一个分区成子CU。分区单元可以进一步产生指示将LCU分区成子CU的四叉树数据结构。四叉树的叶节点CU可以包括一个或多个PU和一个或多个TU。
运动向量估计单元516可以执行确定用于视频块的运动向量的过程。例如,运动向量可以指示参考图片(或其他编码单元)内的视频块的预测块(预测单元或PU)相对于当前图片(或其他编码单元)内正被编码的当前块的位移Dx、Dy。运动估计单元可以通过将视频块的位置与近似于视频块的像素值的参考图片的预测块的位置进行比较来计算运动向量。因此,一般而言,用于运动向量的数据可以包括参考图片列表(例如,存储在编码器装置的内存中的已解码图片(视频帧)的(索引)列表)、参考图片列表中的索引、运动向量的水平(x)分量和竖直(y)分量。参考图片可以从一个或多个参考图片列表中选择例如第一参考图片列表、第二参考图片列表或组合参考图片列表,其中的每个参考图片列表标识存储在参考图片内存514中的一个或多个参考图片。
MV运动估计单元516可以生成并向熵编码单元512和帧间预测单元520发送标识参考图片的预测块的运动向量。也就是说,运动估计单元516可以生成并发送运动向量数据,所述运动向量数据标识了:包含预测块的参考图片列表、标识预测块的图片的参考图片列表中的索引以及用以在所标识的图片内定位预测块的水平和竖直分量。
代替发送实际运动向量,运动向量预测单元522可以预测运动向量,以进一步减少传送运动向量所需的数据量。在这种情况下,运动向量预测单元522可以生成相对于已知运动向量的运动向量差(MVD)、即运动向量预测器MVP,而不是编码和传送运动向量本身。MVP可以与MVD一起用于定义当前运动向量。一般而言,为了成为有效的MVP,用于预测的运动向量指向与当前正被编码的运动向量相同的参考图片。
运动向量预测单元522可以被配置为构建MVP候选列表,该MVP候选列表可以包括与空间和/或时间方向上的多个已编码块相关联的运动向量,作为MVP的候选。在实施例中,多个块可以包括当前视频帧中已经被解码的块和/或存储在解码器装置的内存中的一个或多个参考帧中的块。在实施例中,多个块可以包括相邻块,即在空间和/或时间方向上与当前块相邻的块,作为MVP的候选。相邻块可以包括与当前块直接相邻的块或者在当前块的邻域中(例如在几个块的距离内)的块。
当多个MVP候选可用时(来自多个候选块),MV预测单元522可以根据预定的选择标准确定当前块的MVP。例如,MV预测单元522可以基于对编码率和失真的分析(例如,使用速率失真成本分析或其它编码效率分析)从候选列表中选择最准确的预测器。选择运动向量预测器的其他方法是可能的。在选择MVP时,MV预测单元可以确定MVP索引,其可以用于向解码器装置通知在包含MVP候选块的参考图片列表中何处定位MVP。MV预测单元522还可以确定当前块与所选MVP之间的MVD。MVP索引和MVD可以用于重构当前块的运动向量。通常,分区单元和模式选择单元(包括帧内和帧间预测单元和运动向量预测器单元)以及运动向量估计单元可以高度集成。出于概念上的目的,这些单元在各图中被单独图示。
可以通过加法器506从正被编码的原始视频块中减去从模式选择单元504接收的预测视频块(如运动向量所标识的)来形成残余视频块。变换处理单元509可以用于对残余视频块应用变换——诸如离散余弦变换(DCT)或概念上类似的变换,以形成残余变换系数值块。概念上类似于DCT的变换可以包括例如小波变换、整数变换、子带变换等。变换处理单元509将变换应用于残余块,产生经变换的残余块。在实施例中,变换的残余块可以包括残余变换系数块。该变换可以将残余信息从像素值域转换到变换域,诸如频域。变换处理单元509可以将所得变换系数发送到量化单元510,该量化单元510量化变换系数以进一步降低比特率。
控制器517可以向熵编码单元512提供编码过程的语法元素(元数据),诸如帧间模式指示符、帧内模式指示符、分区信息和语法信息。这里,语法元素可以包括用于发信号通知(所选的)运动向量预测器的信息(例如,由编码器选择的MVP候选的指示,例如索引列表中的索引)、运动向量差和与运动向量预测过程相关联的元数据。控制器可以基于HRD模型511来控制编码过程,该HRD模型511可以定义语法元素,该语法元素例如是部分输出是可能的标志和/或用于部分输出的定时的图片定时SEI消息,其可以用于生成适合于部分输出的比特流513。例如,在编码过程期间,编码器可以将参数和/或消息(诸如,SEI消息)***到比特流中,该比特流使得解码器装置能够部分输出存储在DPB中的解码DU。下文更详细地描述这样的消息的示例。
熵编码单元512熵可以被配置为将量化的变换系数和语法元素编码成比特流513。例如,熵编码单元可以执行上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分区熵(PIPE)编码或另一熵编码技术。在基于上下文的熵编码的情况下,上下文可以基于相邻块。在由熵编码单元进行熵编码之后,编码的比特流可以传输到另一设备(例如,视频解码器)或存储以供稍后传输或检索。
逆量化和逆变换单元515可以被配置为分别应用逆量化和逆变换,以在像素域中重构残余块,例如,以供稍后用作参考块。帧间预测单元520可以通过将残余块添加到存储在解码图片缓冲区514中的参考图片之一的预测块来计算参考块。帧间预测单元520还可以将一个或多个内插滤波器应用于重构的残余块,以计算供在运动估计中使用的子整数像素值。重构的残余块可以被添加到由帧间预测单元520产生的运动预测块,以产生重构的视频块,用于存储在参考图片内存514中。重构的视频块可以由运动向量估计单元516和帧间预测单元520用作参考块来对后续图片中的块进行帧间编码。
编码器装置可以执行已知的速率失真优化(RDO)过程,以便找到用于图片中编码块的最佳编码参数。这里,最佳编码参数(包括模式决策(帧内预测或帧间预测);帧内预测模式估计;运动估计;和量化)指代在用于对块进行编码的比特数与使用用于编码的比特数引入的失真之间提供最佳折衷的参数集。
术语速率失真优化有时也称为RD优化或简称为“RDO”。适合用于AVC和HEVC类型编码标准的RDO方案是已知的,诸如参见例如Sze等人的“High efficiency video coding (HEVC)”Integrated Circuit and Systems, Algorithms and Architectures. Springer(2014): 1-375; Section: 9.2.7 RD Optimization。RDO可以通过多种方式实现。在一个公知的实现中,RDO问题可以表述为拉格朗日成本函数J相对于拉格朗日乘数的最小化:
这里,参数R表示速率(即编码所需的比特数),并且参数D表示与特定速率R相关联的视频信号的失真。失真D可以视为视频质量的测量。用于客观地确定质量的已知度量(客观地在该度量是内容不可知的意义上)包括均方误差(MSE)、峰值信噪比(PSNR)和绝对差和(SAD)。
在HEVC的上下文中,速率失真成本可能要求编码器装置使用每个或至少部分可用预测模式、即一个或多个帧内预测模式和/或一个或多个帧间预测模式,来计算预测的视频块。编码器装置然后可以确定在每个预测块与当前块之间的差异视频信号(这里,差异信号可以包括残余视频块),并将所确定的残余视频块中的每个残余视频块从空间域变换到频率域成为变换的残余块。接下来,编码器装置可以量化每个变换的残余块,以生成对应的编码视频块。编码器装置可以对编码的视频块解码,并将解码的视频块中的每一个与当前块进行比较以确定失真度量D。此外,速率失真分析可以涉及计算用于与预测模式中的一个相关联的每个编码视频块的速率R,其中速率R包括用于向编码视频块发信号通知的比特数。如此确定的RD成本、每个预测模式的编码块的失真D和速率R然后被用于选择编码视频块,该编码视频块在用于对块进行编码的比特数与使用用于编码的比特数引入的失真之间提供最佳折衷。
图6是图示根据本发明实施例的包括运动向量预测单元的视频解码器装置600的框图。该解码器装置(或者简而言之解码器装置)可以被配置为解码比特流,该比特流包括如参考图5所述的由视频编码器装置所生成的编码视频数据。
在图6的示例中,视频解码器装置600可以包括熵解码单元604、解析器606、预测单元618、逆量化和逆变换单元608、加法器609、控制器610和用于存储解码信息的解码图片缓冲区616,该解码信息包括在解码过程中使用的参考图片。这里,预测单元518可以包括帧间预测单元622和帧内预测单元620。此外,帧间预测单元可以包括运动向量预测单元624。
类似于图5的编码器装置的运动向量预测器单元,解码器的运动向量预测单元可以被配置为构建MVP候选列表,其可以包括多个块的运动向量,所述多个块包括诸如相邻块之类的当前视频帧中已解码的块,和/或存储在解码图片缓冲区中的一个或多个参考帧中的块。解码器装置600可以被配置为从视频编码器接收包括被编码的解码单元的编码视频比特流602,例如编码视频块和相关联的语法元素。熵解码单元604解码比特流以生成经变换的解码残余块(例如,与残余块相关联的量化系数)、运动向量差和用于使得视频解码器能够解码比特流的语法元素(元数据)。
解析器单元606将运动向量差和相关联语法元素转发到预测单元618。可以在视频切片级和/或视频块级接收语法元素。例如,作为背景,视频解码器600可以接收压缩视频数据,该压缩视频数据已经被压缩以便经由网络传输到所谓的网络抽象层(NAL)单元中。每个NAL单元可以包括标识存储到NAL单元的数据类型的报头。存在通常被存储到NAL单元的两种类型的数据。存储到NAL单元的第一类型的数据是视频编码层(VCL)数据,其包括压缩视频数据。存储到NAL单元的第二类型的数据被称为非VCL数据,其包括诸如定义与大量NAL单元共用的报头数据的参数集和补充增强信息(SEI)之类的附加信息。
当对视频帧的视频块进行帧内编码(I)时,预测单元618的帧内预测单元620可以基于发信号通知的帧内预测模式和来自当前图片的先前解码块的数据,生成当前视频切片的视频块的预测数据。当视频帧的视频块被帧间编码(例如,B或P)时,预测单元618的帧间预测单元622可以基于运动向量差和从熵解码单元604接收的其它语法元素来产生用于当前视频切片的视频块的预测块。预测块可以从存储在视频解码器的内存中的一个或多个参考图片列表内的一个或多个参考图片中产生。视频解码器可以基于存储在参考图片内存616中的参考图片使用默认构造技术来构造参考图片列表。
帧间预测单元620可以通过解析运动向量差和其他语法元素,并使用预测信息产生正被解码的当前视频块的预测块,来确定用于当前视频切片的视频块的预测信息。例如,帧间预测单元620使用所接收的语法元素中的一些来确定被用于对视频切片的视频块编码的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,B切片或P切片)、用于切片的一个或多个参考图片列表的构造信息、用于切片的每个帧间编码的视频块的运动向量预测器、用于切片的每个帧间编码的视频块的帧间预测状态,以及用于对当前视频切片中的视频块解码的其它信息。在一些示例中,帧间预测单元620可以从运动向量预测单元624接收某些运动信息。
解码器装置可以检索运动向量差MVD和表示需要解码的当前块的相关联编码块。为了基于MVD确定运动向量,运动向量预测单元624可以确定与当前块相关联的运动向量预测器候选的候选列表。运动向量预测器单元624可以被配置为以与通过编码器中的运动向量预测器单元所做的相同方式构建运动向量预测器列表。
运动向量预测算法可以评估与当前帧或参考帧中相对于当前块的位置具有预定位置(通常相邻)的块相关联的运动向量预测器候选。编码器和解码器装置知道这些相对位置。此后,运动向量预测单元可以基于在比特流中传输到解码器的所选运动向量预测器候选的指示,从运动向量预测器候选列表中选择运动向量预测器MVP。基于MVP和MVD,帧间预测单元可以确定用于当前块的预测块。
逆量化和逆变换单元608可以对比特流中提供并由熵解码单元解码的量化变换系数进行逆量化、即去量化。逆量化过程可以包括使用由视频编码器为视频切片中的每个视频块计算的量化参数来确定量化程度,并且同样地,确定将被应用的逆量化程度。它可以进一步对变换系数应用逆变换——例如逆DCT、逆整数变换或概念上类似的逆变换过程,以便在像素域中产生残余块。
在帧间预测单元620已经生成用于当前视频块的预测块之后,视频解码器可以通过将残余块与对应的预测块相加来形成解码视频块。加法器609表示执行该求和操作的一个或多个部件。如果期望,则还可以应用去块滤波器来对解码的块进行滤波,以移除块伪影。其他环路滤波器(在编码环路中或者在编码环路之后)也可以用于平滑像素过渡,或者以其他方式改进视频质量。然后,给定图片中的解码视频块被存储在编码图片缓冲区616中,该编码图片缓冲区616存储可以用于另外的当前块的后续编码的参考图片。编码图片缓冲区616还可以存储解码视频,用于稍后在显示设备上呈现。
控制器可以基于HRD模型611控制解码过程,该HRD模型611可以定义语法元素,该语法元素例如是部分输出是可能的标志和/或用于部分输出的定时的图片定时SEI消息,其可以用于处理比特流602中的编码DU,其中所述处理包括在编码图片解码期间执行至少一个部分输出,如参考图4所述。例如,在解码过程期间,解码器可以确定比特流是否适合于部分输出,如参考本申请中的实施例所描述的。为此,解码器或者特别是解码过程的控制器可以被配置为检测比特流中的某些SEI消息,所述SEI消息向解码器装置发信号通知部分输出是可能的。替代地,解码器可以被配置为通过检查图片的环路内滤波是否被禁用来确定部分图片输出是否是可能的。下文更详细地描述这样的消息的示例。
下文更详细地描述了如参考图4所述的部分图片输出过程。该过程可以从在解码图片缓冲区中为解码图片分配内存开始。因此,在需要解码新的编码图片的情况下,可以在DPB中分配空间。该分配的内存空间被配置为接收和存储解码DU。解码DU最终将被输出,其中输出可以包括将像素值复制到数据宿,该数据宿可以与应用相关联。存储的像素值也可以在未来的解码步骤中用作参考帧。
此外,部分输出过程包括接收包括DU的比特流以及将DU存储在CPB中。一旦编码图片的DU被存储在CPB中,解码器就可以开始解码过程。因为HEVC中的解码过程被认为是瞬时的,所以一旦DU被从CPB移除,它就被认为被解码并被放置在DPB的分配的内存中。解码样本(像素值)被复制到帧中对应于DU的位置。DU的位置可以从如在比特流中发信号通知的帧中DU的位置导出,可能使用图片单元中的瓦片或切片段地址。
由于在HRD模型中解码过程被认为是瞬时的,因此不需要关于解码所需时间的具体信息。仅有的相关的定时信息包括用于从CPB(用于解码)和从DPB(用于丢弃)移除的时间。还存在关于从DPB向数据宿输出解码图片的定时的定时信息。该定时信息提供了应用程序可以经由数据宿访问DPB中的解码图片的时间。
部分输出过程进一步包括确定在编码图片的解码期间,是否可以执行至少一个部分输出。如果启用了环路内滤波,则在可以发生滤波之前,需要图片的相邻DU。因此,在这种情况下,部分图片输出是不可能的。因此,为了确定部分图片输出是否可能,解码器需要知道是为特定图片还是为多个图片设置了环路内滤波。在实施例中,解码器可以检查环路内滤波是否被启用。例如,在HEVC中,取决于环路内滤波器是分别在每图片还是每图片集的基础上被启用/禁用,环路内滤波器是否被启用的信息可以包含在SPS或PPS消息中。该信息可以用于标识部分图片输出是否适用。如果环路内滤波器已被启用并且切片存在,则关于每切片的相应滤波器的个体信息包含在切片段报头中。
替代地,比特流可以包括指示,所述指示例如是可以使用部分图片输出的标志。这样的信令对于客户端应用程序初始化处理流水线、设置所需的缓冲区等是有用的。该信令可以使用SEI消息来实现,该SEI消息是非VCL单元。替代地,可以在包括图片的编码DU的VCL-NAL单元的SPS或PPS中实现信令(取决于部分图片输出对于单个图片还是多个图片可用)。在这样的指示的情况下,解码器可以假定环路内滤波被禁用。
下文中,用于解码器在输出完全解码的图片之前发信号通知部分图片输出的消息示例。在实施例中,用于发信号通知部分图片输出的消息包括解码SEI消息(一种类型的NAL单元),例如,如从HEVC和VVC已知的用于向解码器发信号通知图片解码信息的所谓图片定时SEI消息。诸如解码单元信息SEI消息之类的其他解码SEI消息也还是可以用于向解码器传达相关的解码信息。其他相关的SEI消息类型例如是缓冲周期SEI消息,其具有类似cpb_delay_offset的缓冲参数。更一般地,信令消息可以基于例如HEVC、AV1、VP10等之类的其他标准的语法元素来实现。
根据常规HRD模型,一旦从CPB移除编码图片,DPB中的相关联解码图片就可以在预定时间延迟之后变得可用于输出。在HEVC和WC中,该时间延迟被称为图片dpb输出时间延迟。图片dpb输出时间延迟可以由解码器为每个图片确定。其值可以取决于多个解码器参数,所述多个解码器参数包括(至少)以下两个时间实例:
1.CPB移除时间,即编码图片从CPB移除的时间实例(因为它被完全解码成解码图片并存储在DPB中)
2.DPB输出时间,输出解码图片(如存储在DPB中)的时间实例。
在VVC中,图片的dpb输出时间延迟由pict_dpb_output_delay语法元素管控。在该延迟之后,存储在DPB中的解码图片被输出。通常,在输出之后,图片被从DPB移除,除非它被保留以供将来使用(例如,用于在其他帧的解码过程中使用的参考)。
下文参考以下表1-3描述的实施例引入了新的语法元素、即dpb部分输出时间延迟参数,其向HRD兼容解码器发信号通知在每个时间周期(由间隔定义)之后执行部分图片输出。这样,在解码过程期间,在图片dpb输出延迟结束之前,DPB中的解码信息变得可用于输出。
因此,本发明不再假定解码过程是瞬时的,而是需要一定量的时间。在该解码时间期间,可以使得DPB中的解码信息用于输出,使得它已经可以被应用程序使用。实际上,这意味着在一个或多个时间实例(由DPB部分输出间隔定义),在图片dpb输出延迟结束之前,DPB中被处理到这些时间实例中的每一个的时刻的解码信息被传送到数据宿,使得它已经可以被应用程序访问。因此,在编码图片的解码期间,在图片dpb输出延迟结束之前,可以发生解码信息从DPB到数据宿的多次传送。
注意,对于应用程序而言不可能的是访问DPB(其是解码器的一部分)中的解码信息。假定HRD模型的输出过程是通过将来自DPB的解码信息(块)复制到解码器外部的数据宿来管控的。
这里,数据宿是能够从解码器接收数据的任何存储装置或缓冲装置的通用术语。数据宿的示例包括外部缓冲区,例如VR应用程序的渲染缓冲区、套接字、存储器、硬盘等。数据宿中的解码信息通过部分图片输出方案变得可用的粒度可以取决于应用程序的类型。可以使其可用的最小单元是DU,即发生解码器过程的基本处理单元,例如AVC中的一个或多个宏块的输出,或者HEVC或WC中的一个或多个编码树单元(CTU)。替代地,DPB的子图片输出可以在更高级的图片分区方案中实现,诸如,如分别在HEVC和VVC中定义的解码单元(DU)或子图片。
取决于应用,子图片输出的信令可以基于***至解码器的比特流(带内)中的SEI消息(或其等效消息)。替代地,也可能的是在带外信道中将这些消息传送给解码器。表1描绘了根据本发明实施例的图片定时SEI消息的一部分。在该特定的实施例中,子图片输出是在图片级(而不是在如从HEVC和VVC已知的解码单元(DU)或子图片级)组织的。
表1:图片定时SEI消息语法提取(每图片版本)。
如在表1中所示,该消息包括au cpb移除时间延迟和pic dpb输出延迟,解码器可以使用该au cpb移除时间延迟和pic dpb输出延迟来计算DPB中解码图片被输出的时间。
该表进一步包括子图片输出标志,其被称为pic_partial_output_interval_present_flag。该二进制标志可以用来发信号通知子图片输出功能性是否可用。
如果标志为真,则如由pic_dpb_partial_output_interval语法元素定义的间隔被设置为特定值。该参数定义了用于DPB子图片输出的输出间隔ed。该间隔可以用时钟滴答来定义。此外,该间隔可以被选择为基本上小于图片dpb输出延迟。这样,子图片输出方案允许在图片解码期间DPB的多个子图片输出,即在由图片dpb输出延迟语法元素定义的周期内DPB的多个输出。
在实施例中,DPB的部分图片输出可以具有图片大小格式,即,在每个pic_dpb_partial_output_interval结束处,将DPB内容的副本传送到数据宿。
表2描绘了根据本发明另一实施例的图片定时SEI消息的一部分。
表2:图片定时SEI消息语法提取(每DU版本1)。
如在表2中所示,所述消息包括au cpb移除延迟和pic dpb输出延迟,解码器使用该au cpb移除延迟和pic dpb输出延迟来确定何时如分别从HEVC和VVC已知子图片级的解码图片。
表2进一步包括sub_pic_hrd_params_present_flag标志。如果该标志为真,则图片的处理发生在如例如在HEVC和WC中定义的子图片级,其中设置了pic_dpb_output_du_delay值。解码器可以使用该延迟值来计算图片dpb输出延迟,即从CPB移除访问单元中的最后一个解码单元之后、从DPB输出解码图片之前的时间。该消息进一步包括pic_dpb_partial_output_interval语法元素,用于向解码器发信号通知用于DPB的子图片输出的间隔。该间隔可以以时钟滴答来定义,并且允许以与如参考上面表1所描述的类似方式在图片解码期间的多个子图片输出。
在该实施例中,DPB的部分图片输出可以具有图片大小格式,即,在每个部分图片输出处,将整个DPB的副本传送到输出宿。
表3描绘了根据本发明的又一实施例的图片定时SEI消息的一部分。
表3:图片定时SEI消息语法提取(每DU版本2)。
同样在该实施例中,部分图片输出在如分别从HEVC和VVC已知的解码单元(DU)或子图片级被组织。如果SubPicHrdFlag等于1,则设置该模式。此外,该消息包括相同的语法元素来发信号通知子图片DPB可用,然而在这种情况下,代替pic_dpb_partial_output_interval语法元素,使用pic_dpb_partial_output_du_interval语法元素来发信号通知用于DPB的子图片输出的间隔。
在该实施例中,DPB的子图片输出具有DU或子图片的大小,即,在每个子图片输出处,DPB中的子图片的副本被传送到输出宿。因此,在该实施例中,数据宿的大小可以是DU或子图片大小。
部分图片输出方案的下一步骤包括将DPB中的解码DU标记为准备好部分输出。该标记可以是标签或标志,其发信号通知解码器装置不从DPB移除一个或多个解码DU。关于标记图片以供参考和移除,这些标记涉及整个图片的标记,并且因此不干扰部分图片输出的DU的标记。
部分图片方案的下一步骤可以包括将一个或多个标记的解码DU从DPB复制到数据宿,而不从DPB移除一个或多个解码DU。此外,可以向与数据宿相关联的应用程序发信号通知已经执行了DPB的部分输出。
在第一实施例中,部分图片输出可以具有与编码图片相同的大小。因此,在部分图片输出的情况下,DPB中的解码DU被复制到数据宿,并且解码器可以将解码DU标记为可用于部分输出,但是还不移除DPB。部分输出的定时可以是“尽可能快地”,或者由将指定这些部分输出中的每一个的时间的HRD参数来确定。在低延迟应用程序中,应用程序可能想要尽可能快地获得数据,而不具有任何另外的延迟。在这种情况下,可以使用标志来指示数据宿中的部分图片输出是可用的,使得渲染器或其他后处理设备可以做出是示出相同的帧两次还是示出部分新的帧的决定。
在实施例中,可以向应用程序通知图片的解码状态。状态信息可以标识图片的哪些区域已经被解码和/或图片的哪些区域尚未被解码。在实施例中,图片中这样的区域可以定义一个或多个解码DU的一组像素。这样,解码器向应用程序通知使得哪些解码的像素值在数据宿中可用。下面的表4示出了更新消息的语法示例。
表4 -解码状态消息的语法。
如该表中所示,所述消息包括用于监视图片解码状态的不同语法元素。该消息可以包括标志,incomplete_flag,用于发信号通知图片是否被完全解码。该消息将在解码期间被更新,直到利用DU像素填充每个区域。该消息或至少该消息中的信息可以在每个部分输出时发信号通知给应用程序。在实施例中,该消息可以由解码器API发信号通知给应用程序。语法元素的含义可能如下:
incomplete_flag 是否全图片被解码。如果标志为0,则图片完成,如果标志为1,则仍然存在区域将被填充。
num_incomplete_areas 需要被描述为不完整的区域的数量
origin_width 不完整区域在x轴上的原点
origin_height 不完整区域在y轴上的原点
width 待描述区域的宽度
height 待描述区域的高度。
因此,图片中尚未包括解码像素值的区域的数量(表示仍然需要被解码的DU)以及每个区域的尺寸和尚未被解码的图片的每个区域的位置可以发信号通知。图7描绘了解码期间DPB中的图片的示例,其包括图片的三个区域,其中顶部区域的像素已经被解码,并且另外两个区域的像素尚未被解码。每当DU被解码、存储在DPB的分配内存中并被标记为部分输出时,图片的解码状态消息可以被更新并被发信号通知给应用程序。一旦图片的解码完成,该标志可以发信号通知图片的解码过程完成。在这种情况下,可以开始解码下一个图片的过程。
解码图片缓冲区可以存储解码过程中解码和使用的所有解码图片。存储的图片用于两个过程:
1.图片存储在DPB中,用于输出到数据宿,使得这些图片可以由渲染过程处理。
2.图片存储在DPB中,作为仍然需要被解码的图片的参考图片。
图8图示了利用三个图片A、B和C的解码DU来填充DPB的进程。案例1说明了其中图片B未被完全解码的过程(仅DU1,N+1被解码并存储在DPB中)。在这种情况下,图片B不能用作参考案例,并且因此将被丢弃。相反,在案例2中,图片A的解码DU被取作图片B的基础。然后,当图片B的第一个DU被解码时,它被复制到图片B的分配内存中,从而覆写属于图片A的第一个DU的像素值。在这种情况下,图片B仍然作为未来帧的参考而有用(在图9C中图示了这种情况下的输出缓冲区类型的高级概述)。
图9A-9C描绘了可以与根据本发明的实施例一起使用的数据宿的不同架构。数据宿包括第一数据宿(类型A),其包括具有与DU大小相匹配的大小的一个缓冲区;第一数据宿(类型B),其包括多个缓冲区,其中每个缓冲区具有与DU大小相匹配的大小;以及第三数据宿(类型C),其具有缓冲区,该缓冲区具有与图片大小相匹配的大小。
图9A描绘了1 DU大小的数据宿。如果所有的DU具有相同的大小并且允许小尺寸的一个数据宿(例如,文件指针、计算机插座、内存指针等),则可以使用这样的架构。然而,由于输出的每个新DU都将覆写存储在数据宿中的DU,因此需要应用程序的密切监视以及关于将解码DU从CPB输出到数据宿中与解码器的同步。该方法可以用于如下***:其中内存是主要的约束,但是在DU被刷新以被下一个DU替换之前,存在足够的处理能力和定时保真度来利用到达的DU。
图9B描绘了包括多个DU大小的数据宿、N个DU大小的宿的数据宿。如果DU具有不同的大小,并且假定DU的数量对于整个序列是恒定的,或者至少对于序列的某个部分由解码器从比特流中推断出DU的数量,则可以使用这样的架构。当与图9A的数据宿相比时,在给定时间有更多的DU可用于处理的意义上,该架构允许更多的灵活性。当可以使用DU的批处理时,或者如果处理能力不是恒定的,这样的方法是合适的。然而,在这种情况下,也需要应用程序的密切监视以及关于将解码DU从CPB输出到数据宿中与解码器的同步。
图9C描绘了图片大小的数据宿。该实施例可以与HEVC瓦片或WC子图片组合使用,对于所述HEVC瓦片或WC子图片,DU属于相同的图片,但是可以彼此独立地解码。如上面参考表4描述的解码状态消息可以用于监视和发信号通知利用解码DU对数据宿的填充。
在所有情况下,应用程序可以通过以规则的间隔轮询宿来更新(一个或多个)所述宿,以标识是否存在更新(即,解码了新的DU)。替代地或附加地,每次更新宿时,可以由例如解码器API生成回调事件。混合方法也可以是可能的,其中主要的更新机制定期轮询宿,并使用仅针对特定事件触发的回调事件(例如,初始化宿,将解码从一个AU的DU切换到另一个AU的DU,而第一个AU尚未被完全解码,等等)。
应用程序可以使用回调信息调整轮询频率和/或定时。
图10描绘了本发明的示例性用途,其中部分输出的解码数据的部分后处理已经开始,而全图片的解码尚未完成。该图示意性地描绘了包括三个DU的图片1000。在时间t,可以完成第一DU 10021的解码,使得可以通过在数据宿中复制解码DU来执行部分输出。应用程序可以使用该数据来执行诸如尺度上推(upscaling)之类的操作。同时,解码器可以继续解码并在t+1完成对第二DU 20041的解码,同时应用程序对第一DU 20022进行尺度上推。在t+2中,第一个尺度上推的DU 10023被完成,第二个DU 20042被应用程序尺度上推,而第三个DU20061被解码。
图11描绘了可以使用本申请中所述技术的视频编码和解码***1100的示意图。如图11中所示,***1100可以包括第一视频处理设备1102,例如视频捕获设备等,其被配置为生成可以由第二视频处理设备1104(例如视频播放设备)解码的编码视频数据。第一和第二视频处理设备可以包括宽范围设备中的任何一种,包括台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、诸如所谓的“智能”电话、所谓的“智能”pad之类的电话手机、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在一些情况下,视频处理设备可以被配备用于无线通信。
第二视频处理设备可以通过传输通道1106或者能够将编码视频数据从第一视频处理设备移动至第二视频处理设备的任何类型的介质或设备接收待解码的编码视频数据。在一个示例中,传输信道可以包括通信介质,以使得第一视频处理设备能够实时地将编码的视频数据直接传输到第二视频处理设备。可以基于诸如无线通信协议的通信标准将编码的视频数据传输到第二视频处理设备。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络的一部分,所述基于分组的网络诸如是局域网、广域网或诸如因特网的全球网络。通信介质可以包括路由器、交换机、基站、服务器或可以对促进第一和第二视频处理设备之间通信有用的任何其他设备。
替代地,可以经由第一视频处理设备的I/O接口1108将编码数据发送至存储设备1110。可以通过输入第二视频处理设备的I/O接口1112来访问编码数据。存储设备1110可以包括多种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器或者用于存储编码视频数据的任何其他合适的数字存储介质。在另外的示例中,存储设备可以对应于文件服务器或可以保存由第一视频处理设备生成的编码视频的另一个中间存储设备。第二视频处理设备可以经由流式传输或下载从存储设备访问存储的视频数据。文件服务器可以是能够存储编码视频数据并将该编码视频数据传输到第二视频处理设备的任何类型的服务器。示例文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。第二视频处理设备可以通过任何标准数据连接(包括因特网连接)来访问编码的视频数据。这可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、线缆调制解调器等)或者适合于访问存储在文件服务器上的编码视频数据的两者的组合。来自存储设备36的编码视频数据的传输可以是流式传输、下载传输或两者的组合。
本公开的技术不一定限于无线应用或设置。所述技术可以应用于支持多种多媒体应用中的任一个的视频编码,所述多媒体应用诸如是空中电视广播、线缆电视传输、***传输、例如经由因特网的流式视频传输、用于存储在数据存储介质上的数字视频的编码、存储在数据存储介质上的数字视频的解码或其它应用程序。在一些示例中,***1100可以被配置为支持单向或双向视频传输,以支持诸如视频流式传输、视频回放、视频广播和/或视频电话之类的应用程序。
在图11的示例中,第一视频处理设备可以进一步包括视频源1114和视频编码器1116。在一些情况下,I/O接口1108可以包括调制器/解调器(调制解调器)和/或传输器。视频源可以包括任何类型的源,诸如视频捕获设备,例如视频相机、包含先前捕获的视频的视频档案、从视频内容提供商接收视频的视频馈送接口和/或用于生成计算机图形数据作为源视频的计算机图形***或这样的源的组合。如果视频源1114是视频相机,则第一和第二视频处理设备可以形成所谓的相机电话或视频电话。然而,本公开中描述的技术一般而言可以适用于视频编码,并且可以应用于无线和/或有线应用。
捕获的、预捕获的或计算机生成的视频可以由视频编码器1116编码。编码的视频数据可以经由I/O接口1108直接传输到第二视频处理设备。编码的视频数据也可以(或替代地)存储在存储设备1110上,以供第二视频处理设备或其他设备稍后访问,用于解码和/或回放。
第二视频处理设备可以进一步包括视频解码器1118和显示设备1120。在一些情况下,I/O接口1112可以包括接收器和/或调制解调器。第二视频处理设备的I/O接口1112可以接收编码的视频数据。在通信信道上传送的或在存储设备1110上提供的编码视频数据可以包括由视频编码器1116生成的多种语法元素,以供视频解码器(诸如视频解码器1118)在解码视频数据中使用。这样的语法元素可以包括在通信介质上传输的编码视频数据中、存储在存储介质上或存储在文件服务器中。
显示设备1120可以与第二视频处理设备集成在一起或位于其外部。在一些示例中,第二视频处理设备可以包括集成显示设备,并且还被配置为与外部显示设备对接。在其他示例中,第二视频处理设备可以是显示设备。一般而言,显示设备向用户显示解码的视频数据,并且可以包括多种显示设备中的任何一种,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示设备。
视频编码器1116和视频解码器1118可以根据诸如高效视频编码(HEVC)、VP9、AV1或VVC之类的视频压缩标准操作。替代地,视频编码器1116和视频解码器1118可以根据其他专有或行业标准操作,所述其他专有或行业标准诸如是ITU-T H.264标准——其替代地被称为MPEG-4 第10部分的高级视频编码(AVC),或者这样的标准的扩展。然而,本公开的技术不限于任何特定的编码标准。
尽管图11中未示出,但在一些方面,视频编码器1116和视频解码器1118可以各自与音频编码器和解码器集成,并可以包括适当的MUX-DEMUX(多路复用-解复用)单元或其他硬件和软件,以处理常见数据流或单独数据流中的音频和视频二者的编码。如果适用,在一些示例中,MUX-DEMUX单元可以符合ITU H.223多路复用器协议,或者诸如用户数据报协议(UDP)之类的其他协议。
视频编码器1116和视频解码器1118各自可以实现为多种合适的编码器电路中的任一个、诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当所述技术部分地在软件中实现时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行所述指令以执行本公开的技术。视频编码器1116和视频解码器1118中的每一个都可以被包括在一个或多个编码器或解码器中,其中的任一个都可以被集成为相应设备中的组合编码器/解码器(CODEC)的一部分。
本公开通常可以指代视频编码器向另一设备(诸如视频解码器)“发信号通知”特定信息。术语“信令”通常可以指代用于解码压缩视频数据的语法元素和/或其他数据(元数据)的通信。这样的通信可以实时或接近实时地发生。替代地,这样的通信可以在一时间跨度内发生,诸如在编码时将语法元素以编码比特流的形式存储到计算机可读存储介质时可能发生,所述编码比特流然后可以在被存储到该介质之后由解码设备在任何时间检索。
本公开的技术可以在包括无线手机、集成电路(IC)或IC集(例如,芯片集)的多种多样的设备或装置中实现。在本公开中描述了各种部件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以结合合适的软件和/或固件被组合在编解码器硬件单元中,或者由互操作硬件单元的集合(包括如上所述的一个或多个处理器)来提供。
本文使用的术语仅出于描述特定实施例的目的,并且不旨在限制本发明。如本文使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文清楚地另有指示。将进一步理解,术语“包括”和/或“包含”当在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、部件和/或其组的存在或添加。
以下权利要求中所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其他要求保护的元件相组合执行功能的任何结构、材料或动作。本发明的描述是出于说明和描述的目的而呈现的,但不旨在穷举或将本发明限于所公开的形式。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员而言将是清楚的。选择和描述该实施例是为了最好地解释本发明的原理和实际应用,并使得本领域的其他普通技术人员能够理解本发明的具有各种修改的各种实施例适合于设想的特定用途。
Claims (13)
1.一种处理图片的视频数据的方法,所述方法包括:
解码装置的处理器为解码图片缓冲区DPB中的解码图片分配内存,解码图片包括表示视频数据的像素;
处理器接收包括解码单元DU的比特流,并将DU存储在编码图片缓冲区CPB中,DU表示需要被解码成解码图片的编码图片,每个DU表示编码像素块;
所述处理器确定在编码图片的解码期间是否可以执行至少一个部分输出,所述至少一个部分输出包括当编码图片的一个或多个DU尚未被解码并移除CPB时,将一个或多个解码DU从DPB复制到数据宿,一个或多个解码DU表示解码图片的一部分;以及
如果处理器确定可以执行至少一个部分输出,则处理器执行至少一个部分输出,所述执行包括:
-将存储在DPB中的一个或多个解码DU标记为准备好部分输出,所述标记发信号通知解码器装置不从DPB移除一个或多个解码DU;
-将一个或多个标记的解码DU从DPB复制到数据宿,而不从DPB移除一个或多个解码DU;以及可选地,
-向与数据宿相关联的应用程序发信号通知已经执行了DPB的部分输出。
2.根据权利要求1所述的方法,其中,确定是否可以执行至少一个部分输出包括:
确定图片的环路内滤波是否被禁用。
3.根据权利要求1或2所述的方法,其中,确定是否可以执行部分输出包括:
处理器接收与图片相关联的解码信息,所述解码信息优选地是SEI消息、诸如图片定时SEI消息,所述解码信息包括部分输出指示符,所述部分输出指示符优选地是部分输出标志,用于向解码器装置发信号通知是否可以执行表示部分解码图片的解码DU的部分输出。
4.根据权利要求1-3中任一项所述的方法,其中,确定是否可以执行部分输出包括:
处理器接收与图片相关联的解码信息,所述解码信息优选地是SEI消息、诸如图片定时SEI消息,所述解码信息向解码器装置发信号通知,如果应当在如HEVC中指定的DU级上或者作为如在WC中指定的子图片来处理比特流,则可以执行部分输出。
5.根据权利要求4所述的方法,其中,与图片相关联的解码信息进一步包括用于执行解码DU的一个或多个部分输出的定时信息。
6.根据权利要求1-5中任一项所述的方法,其中,所述数据宿包括与DU大小相匹配的缓冲区,将DPB的至少部分传送到数据宿包括:
将DPO中的解码DU复制到数据宿的缓冲区。
7.根据权利要求1-6中任一项所述的方法,其中,所述数据宿具有n个缓冲区,其中n是所述多个DU的数量,并且其中所述n个缓冲区中的每一个与所述多个DU中的一个的大小相匹配,将DPB的至少部分传送到数据宿包括:
将解码DU复制到所述数据宿的n个缓冲区中的一个中。
8.根据权利要求1-6中任一项所述的方法,其中,所述数据宿具有与图片大小相匹配的缓冲区,将DPB的至少部分传送到数据宿包括:
将DU复制到数据宿的缓冲区中与DU在图片中的位置相对应的位置处。
9.根据权利要求1-8中任一项所述的方法,其中,应用程序的信令包括:
生成与图片解码相关联的信息,所述信息包括以下消息中的一个或多个:
状态消息,用于发信号通知图片是否完全解码;
尚未解码的DU的数量;
图片中尚未解码的DU的位置。
10.根据权利要求1-9中任一项所述的方法,其中,DU是如在AVC中定义的宏块、如在HEVC中定义的编码树单元CTU、如在HEVC或VVC中定义的切片或如在VVC中定义的子图片。
11.根据权利要求1-10中任一项所述的方法,其中,所述解码基于编码标准,所述编码标准优选地是基于块的视频编码标准,更优选地是AVC、HEVC、VP9、AV1、VVC编码标准或者基于AVC、HEVC、VP9、AV1、VVC编码标准的编码标准。
12.一种解码装置,包括:
计算机可读存储介质,其具有与其一起体现的至少部分程序;以及计算机可读存储介质,其具有与其一起体现的计算机可读程序代码,以及耦合到计算机可读存储介质的处理器,优选地是微处理器,其中响应于执行计算机可读程序代码,处理器被配置为执行可执行操作,所述可执行操作包括:
解码装置的处理器为解码图片缓冲区DPB中的解码图片分配内存,解码图片包括表示视频数据的像素;
处理器接收包括解码单元DU的比特流,并将DU存储在编码图片缓冲区CPB中,DU表示需要被解码成解码图片的编码图片,每个DU表示编码像素块;
所述处理器确定在编码图片的解码期间是否可以执行至少一个部分输出,所述至少一个部分输出包括当编码图片的一个或多个DU尚未被解码并移除CPB时,将一个或多个解码DU从DPB复制到数据宿,一个或多个解码DU表示解码图片的一部分;以及
如果处理器确定可以执行至少一个部分输出,则处理器执行至少一个部分输出,所述执行包括:
-将存储在DPB中的一个或多个解码DU标记为准备好部分输出,所述标记向解码器装置发信号通知不从DPB移除一个或多个解码DU;
-将一个或多个标记的解码DU从DPB复制到数据宿,而不从DPB移除一个或多个解码DU;以及可选地,
-向与数据宿相关联的应用程序发信号通知已经执行了DPB的部分输出。
13.一种包括软件代码部分的计算机程序产品,所述软件代码部分被配置用于当在计算机的存储器中运行时,执行根据1-11中任一项的方法步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962955697P | 2019-12-31 | 2019-12-31 | |
US62/955697 | 2019-12-31 | ||
PCT/EP2020/087986 WO2021136783A1 (en) | 2019-12-31 | 2020-12-29 | Partial output of a decoded picture buffer in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115152211A true CN115152211A (zh) | 2022-10-04 |
Family
ID=73943249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080097698.7A Pending CN115152211A (zh) | 2019-12-31 | 2020-12-29 | 视频编码中解码图片缓冲区的部分输出 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230049909A1 (zh) |
EP (1) | EP4085622A1 (zh) |
CN (1) | CN115152211A (zh) |
WO (1) | WO2021136783A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116634163A (zh) * | 2022-10-13 | 2023-08-22 | 弗劳恩霍夫应用研究促进协会 | 使用编码图片缓存器的视频编码 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080002773A1 (en) * | 2006-06-26 | 2008-01-03 | Texas Instruments Incorporated | Video decoded picture buffer |
US9001899B2 (en) * | 2006-09-15 | 2015-04-07 | Freescale Semiconductor, Inc. | Video information processing system with selective chroma deblock filtering |
EP2486727A4 (en) * | 2009-10-05 | 2014-03-12 | Icvt Ltd | METHOD AND SYSTEM FOR PROCESSING AN IMAGE |
CN103843340B (zh) * | 2011-09-29 | 2018-01-19 | 瑞典爱立信有限公司 | 参考图片列表处理 |
US9578326B2 (en) * | 2012-04-04 | 2017-02-21 | Qualcomm Incorporated | Low-delay video buffering in video coding |
EP2843945B1 (en) * | 2012-04-23 | 2020-03-11 | Sun Patent Trust | Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device |
EP2868103B1 (en) * | 2012-06-29 | 2016-12-07 | GE Video Compression, LLC | Video data stream concept |
PL2901688T3 (pl) * | 2012-09-28 | 2020-05-18 | Nokia Technologies Oy | Aparat i sposób do kodowania i dekodowania wideo |
US20140192895A1 (en) * | 2013-01-04 | 2014-07-10 | Qualcomm Incorporated | Multi-resolution decoded picture buffer management for multi-layer video coding |
US10003815B2 (en) * | 2013-06-03 | 2018-06-19 | Qualcomm Incorporated | Hypothetical reference decoder model and conformance for cross-layer random access skipped pictures |
US9794579B2 (en) * | 2013-07-15 | 2017-10-17 | Qualcomm Incorporated | Decoded picture buffer operations for video coding |
CN107615762B (zh) * | 2015-05-29 | 2020-06-26 | 寰发股份有限公司 | 一种管理解码图像缓存器并解码视频比特流的方法及装置 |
KR102476207B1 (ko) * | 2015-11-12 | 2022-12-08 | 삼성전자주식회사 | 반도체 장치의 동작 방법 및 반도체 시스템 |
KR102662448B1 (ko) * | 2019-02-02 | 2024-05-02 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 코딩에서 인트라 블록 복사를 위한 버퍼내 데이터 저장 |
US11917174B2 (en) * | 2020-06-08 | 2024-02-27 | Qualcomm Incorporated | Decoded picture buffer (DPB) operations and access unit delimiter (AUD) |
US11695965B1 (en) * | 2022-10-13 | 2023-07-04 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video coding using a coded picture buffer |
-
2020
- 2020-12-29 CN CN202080097698.7A patent/CN115152211A/zh active Pending
- 2020-12-29 EP EP20838577.3A patent/EP4085622A1/en active Pending
- 2020-12-29 WO PCT/EP2020/087986 patent/WO2021136783A1/en unknown
- 2020-12-29 US US17/790,024 patent/US20230049909A1/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116634163A (zh) * | 2022-10-13 | 2023-08-22 | 弗劳恩霍夫应用研究促进协会 | 使用编码图片缓存器的视频编码 |
CN116847074A (zh) * | 2022-10-13 | 2023-10-03 | 弗劳恩霍夫应用研究促进协会 | 使用编码图片缓存器的视频编码 |
CN116847072A (zh) * | 2022-10-13 | 2023-10-03 | 弗劳恩霍夫应用研究促进协会 | 使用编码图片缓存器的视频编码 |
CN116847072B (zh) * | 2022-10-13 | 2024-04-02 | 弗劳恩霍夫应用研究促进协会 | 使用编码图片缓存器的视频编码 |
CN116847074B (zh) * | 2022-10-13 | 2024-04-02 | 弗劳恩霍夫应用研究促进协会 | 使用编码图片缓存器的视频编码 |
CN116634163B (zh) * | 2022-10-13 | 2024-04-02 | 弗劳恩霍夫应用研究促进协会 | 使用编码图片缓存器的视频编码 |
Also Published As
Publication number | Publication date |
---|---|
WO2021136783A1 (en) | 2021-07-08 |
EP4085622A1 (en) | 2022-11-09 |
US20230049909A1 (en) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102038190B1 (ko) | 스케일러블 비디오 코딩에서의 비트스트림 적합성 제약들 | |
TW202046739A (zh) | 用於適應性迴圈濾波器變數之適應變數集合 | |
CN112913232B (zh) | 执行合并候选列表创建以进行视频编解码的方法、设备和计算机可读介质 | |
CN112292859B (zh) | 一种用于解码至少一个视频流的方法和装置 | |
US12034954B2 (en) | Encoder and decoder with support of sub-layer picture rates in video coding | |
CN113711586B (zh) | 视频编解码方法、装置、计算机设备及存储介质 | |
KR102558495B1 (ko) | Hls를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체 | |
JP7450747B2 (ja) | 混成nalユニットタイプに基づく画像符号化/復号化方法及び装置、並びにビットストリームを伝送する方法 | |
CN113875256B (zh) | 进行视频解码的方法、装置及存储介质 | |
CN113661702B (zh) | 视频编解码的方法、装置及存储介质 | |
JP2021517408A5 (zh) | ||
US20240056590A1 (en) | Partial output of a decoded picture buffer in video coding | |
US20240056614A1 (en) | Prioritized decoding and output of parts of a picture in video coding | |
CN117459726A (zh) | 生成编码视频流的方法、***以及计算机存储介质 | |
CN113475067B (zh) | 视频解码方法、装置、计算机设备及存储介质 | |
JP2024038212A (ja) | 混成nalユニットタイプに基づく画像符号化/復号化方法及び装置、並びにビットストリームを伝送する方法 | |
CN114073084B (zh) | 视频编解码方法、装置和存储介质 | |
JP2018511233A (ja) | 適応タイルサイズを使用するビデオコーディングのための方法および装置 | |
US20230049909A1 (en) | Partial output of a decoded picture buffer in video coding | |
CN113491128A (zh) | 语法控制的已解码图片缓冲器管理的方法 | |
JP7494315B2 (ja) | Gdr又はirpaピクチャに対する利用可能スライスタイプ情報に基づく画像符号化/復号化方法及び装置、並びにビットストリームを保存する記録媒体 | |
RU2787711C1 (ru) | Управление буфером декодированных изображений для кодирования видеосигналов |
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 |