CN116235502A - 生成/接收包括输出层集合信息的媒体文件的方法和设备及发送媒体文件的方法 - Google Patents

生成/接收包括输出层集合信息的媒体文件的方法和设备及发送媒体文件的方法 Download PDF

Info

Publication number
CN116235502A
CN116235502A CN202180066098.9A CN202180066098A CN116235502A CN 116235502 A CN116235502 A CN 116235502A CN 202180066098 A CN202180066098 A CN 202180066098A CN 116235502 A CN116235502 A CN 116235502A
Authority
CN
China
Prior art keywords
information
media file
layer
output
output layer
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
CN202180066098.9A
Other languages
English (en)
Inventor
亨得利·亨得利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of CN116235502A publication Critical patent/CN116235502A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Landscapes

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

Abstract

提供了生成/接收用信号通知操作点信息的媒体文件的方法和设备以及发送媒体文件的方法。根据本公开的接收媒体文件的方法可以包括以下步骤:从媒体文件获取关于视频数据的操作点信息;以及基于所获取的操作点信息对视频数据进行处理,其中,获取操作点信息的步骤可以包括以下步骤:获取指示视频数据的输出层集合的数量的第一信息;基于第一信息获取与输出层集合有关的第二信息;获取指示输出层集合的操作点的数量的第三信息;以及基于第三信息获取与和操作点相关联的输出层集合有关的第四信息。

Description

生成/接收包括输出层集合信息的媒体文件的方法和设备及 发送媒体文件的方法
技术领域
本公开涉及一种媒体文件生成/接收方法和设备,并且更具体地,涉及一种生成/接收包括输出层集合信息的媒体文件的方法和设备以及发送通过本公开的媒体文件生成方法/设备生成的媒体文件的方法。
背景技术
近来,对诸如360度图像的高分辨率且高质量图像的需求正在增加。随着图像的分辨率或质量增加,文件大小或帧速率增加,这不可避免地增加了存储成本和传输成本。另外,随着诸如智能电话和平板PC的移动装置变得流行,对基于通信网络的多媒体服务的需求正在迅速增加。然而,存在用于多媒体服务的硬件和网络资源受到限制的问题。
因此,需要用于更有效地存储和发送图像数据的高效图像压缩和文件处理技术。
发明内容
技术问题
本公开的一个目的是提供具有提高的文件处理效率的媒体文件生成/接收方法和设备。
此外,本公开的一个目的是提供能够防止输出层集合信息的冗余并提高文件发送/接收效率的媒体文件生成/接收方法和设备。
此外,本公开的一个目的是提供一种发送通过根据本公开的媒体文件生成方法或设备生成的媒体文件的方法。
此外,本公开的一个目的是提供一种存储通过根据本公开的媒体文件生成方法或设备生成的媒体文件的记录介质。
此外,本公开的一个目的是提供一种存储通过根据本公开的媒体文件接收设备接收并用于重构图像的媒体文件的记录介质。
本公开所解决的技术问题不限于上述技术问题,并且本领域技术人员通过以下描述将清楚本文未描述的其它技术问题。
技术方案
根据本公开的一个方面的媒体文件接收方法可以包括以下步骤:从媒体文件获得视频数据的操作点信息以及基于所获得的操作点信息对所述视频数据进行处理。获得操作点信息的步骤可以包括以下步骤:获得指定所述视频数据的输出层集合的数量的第一信息;基于所述第一信息获得关于所述输出层集合的第二信息;获得指定所述输出层集合的操作点的数量的第三信息;以及基于所述第三信息获得关于与所述操作点相关联的输出层集合的第四信息。
根据本公开的另一方面的媒体文件接收设备可以包括存储器和至少一个处理器。所述至少一个处理器可以从媒体文件获得视频数据的操作点信息并且基于所获得的操作点信息对所述视频数据进行处理。所述操作点信息可以是通过以下操作获得的:获得指定所述视频数据的输出层集合的数量的第一信息;基于所述第一信息获得关于所述输出层集合的第二信息;获得指定所述输出层集合的操作点的数量的第三信息;以及基于所述第三信息获得关于与所述操作点相关联的输出层集合的第四信息。
根据本公开的另一方面的媒体文件生成方法可以包括以下步骤:对视频数据进行编码;生成经编码的视频数据的操作点信息;以及基于经编码的视频数据和所生成的操作点信息生成媒体文件。生成所述操作点信息的步骤可以包括:生成指定经编码的视频数据的输出层集合的数量的第一信息;基于所述第一信息生成关于所述输出层集合的第二信息;生成指定所述输出层集合的操作点的数量的第三信息;以及基于所述第三信息生成关于与所述操作点相关联的输出层集合的第四信息。
在根据本公开的另一方面的媒体文件发送方法中,可以发送通过本公开的媒体文件生成方法或设备生成的媒体文件。
根据本公开的另一方面的计算机可读记录介质可以存储通过本公开的媒体文件生成方法或设备生成的媒体文件。
根据本公开的另一方面的媒体文件生成设备可以包括存储器和至少一个处理器。所述至少一个处理器可以对视频数据进行编码,生成经编码的视频数据的操作点信息,并且基于经编码的视频数据和所生成的操作点信息生成媒体文件。所述操作点信息可以是通过以下操作生成的:获得指定经编码的视频数据的输出层集合的数量的第一信息;基于所述第一信息获得所述输出层集合的第二信息;获得指定所述输出层集合的操作点的数量的第三信息;以及基于所述第三信息获得关于与所述操作点相关联的输出层集合的第四信息。
以上关于本公开的简要概述的特征仅仅是本公开的以下详细描述的示例性方面,并不限制本公开的范围。
有益效果
根据本公开,可以提供具有提高的文件处理效率的媒体文件生成/接收方法和设备。
根据本公开,可以提供能够防止输出层集合信息冗余并提高文件发送/接收效率的媒体文件生成/接收方法和设备。
根据本公开,可以提供一种发送通过根据本公开的媒体文件生成方法或设备生成的媒体文件的方法。
根据本公开,可以提供存储通过根据本公开的媒体文件生成方法或设备生成的媒体文件的记录介质。
根据本公开,可以提供存储通过根据本公开的媒体文件接收设备接收并且用于重构图像的媒体文件的记录介质。
本领域技术人员将理解,通过本公开可以实现的效果不限于上文具体描述的内容,并且根据详细描述将更清楚地理解本公开的其它优点。
附图说明
图1是示意性地例示根据本公开的实施方式的媒体文件发送/接收系统的图。
图2是例示媒体文件发送方法的流程图。
图3是例示媒体文件接收方法的流程图。
图4是示意性地例示根据本公开的实施方式的图像编码设备的图。
图5是示意性地例示根据本公开的实施方式的图像解码设备的图。
图6是例示针对经编码的图像/视频的层结构的示例的图。
图7是例示媒体文件结构的示例的图。
图8是例示图像信号结构的示例的图。
图9是例示用信号通知操作点信息的语法结构VvcOperatingPointsRecord的示例的图。
图10是例示用信号通知操作点实体组的语法结构OperatingPointGroupBox的示例的图。
图11是例示用信号通知PTL记录的语法结构VvcPTLRecord的示例的图。
图12是例示根据本公开的实施方式的用信号通知操作点信息的语法结构VvcOperatingPointsRecord的图。
图13是例示根据本公开的实施方式的用信号通知操作点实体组的语法结构OperatingPointGroupBox的图。
图14是例示根据本公开的实施方式的媒体文件接收方法的流程图。
图15是例示根据本公开的实施方式的媒体文件生成方法的流程图。
图16是示出本公开的实施方式可应用于的内容流传输系统的图。
具体实施方式
在下文中,将参照附图对本公开的实施方式进行详细描述,以易于本领域技术人员实现。然而,本公开可以以各种不同的形式实现,并且不限于本文描述的实施方式。
在描述本公开时,如果确定相关已知功能或构造的详细描述使本公开的范围不必要地含糊不清,则将省略其详细描述。在附图中,省略了与本公开的描述无关的部分,并且相似的附图标记被赋予相似的部分。
在本公开中,当一个组件“连接”、“联接”或“链接”到另一个组件时,它不仅可以包括直接连接关系,还可以包括存在中间组件的间接连接关系。另外,当一个组件“包括”或“具有”其它组件时,除非另有说明,否则其意指还可以包括其它组件,而不是排除其它组件。
在本公开中,术语第一、第二等仅用于将一个组件与其它组件区分开的目的,并且除非另有说明,否则不限制组件的顺序或重要性。相应地,在本公开的范围内,一个实施方式中的第一组件在另一个实施方式中可以被称为第二组件,类似地,一个实施方式中的第二组件在另一个实施方式中可以被称为第一组件。
在本公开中,相互区分的组件旨在清楚地描述每个特征,并不意味着组件必须分开。即,多个组件可以集成并实现为一个硬件或软件单元中,或者一个组件可以分布并实现为多个硬件或软件单元。因此,即使没有特别说明,这些组件集成或组件分布的实施方式也包括在本公开的范围内。
在本公开中,各个实施方式中所描述的组件并不一定是必不可少的组件,一些组件可以是可选的组件。因此,由实施方式中描述的组件的子集组成的实施方式也包括在本公开的范围内。另外,除了在各种实施方式中描述的组件之外还包括其它组件的实施方式包括在本公开的范围内。
本公开涉及图像的编码和解码,除非在本公开中重新定义,否则本公开中使用的术语可以具有本公开所属技术领域中常用的一般含义。
在本公开中,“画面”通常是指表示特定时间段内的一个图像的单元,并且切片(slice)/拼块(tile)是构成画面的一部分的编码单元,一个画面可以由一个或更多个切片/拼块组成。另外,切片/拼块可以包括一个或更多个编码树单元(CTU)。
在本公开中,“像素”或“像元(pel)”可以意指构成一个画面(或图像)的最小单元。此外,“样本”可以用作对应于像素的术语。一个样本一般可以表示像素或像素的值,也可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。
在本公开中,“单元”可以表示图像处理的基本单元。该单元可以包括画面的特定区域和与该区域相关的信息中的至少一个。在某些情况下,该单元可以与诸如“样本阵列”、“块”或“区域”的术语互换使用。在一般情况下,M×N块可以包括M列N行的样本(或样本阵列)或变换系数的集合(或阵列)。
在本公开中,“当前块”可以意指“当前编码块”、“当前编码单元”、“编码目标块”、“解码目标块”或“处理目标块”中的一个。当执行预测时,“当前块”可以意指“当前预测块”或“预测目标块”。当执行变换(逆变换)/量化(解量化)时,“当前块”可以意指“当前变换块”或“变换目标块”。当执行滤波时,“当前块”可以意指“滤波目标块”。
另外,在本公开中,除非明确说明为色度块,“当前块”可以意指包括亮度分量块和色度分量块二者的块或“当前块的亮度块”。当前块的亮度分量块可以通过包括诸如“亮度块”或“当前亮度块”的亮度分量块的明确描述来表示。另外,“当前块的色度分量块”可以通过包括诸如“色度块”或“当前色度块”的色度分量块的明确描述来表示。
在本公开中,术语“/”或“,”可以解释为指示“和/或”。例如,“A/B”和“A,B”可以意指“A和/或B”。此外,“A/B/C”和“A/B/C”可以意指“A、B和/或C中的至少一个”。
在本公开中,术语“或”应被解释以指示“和/或”。例如,表达“A或B”可以包括1)仅“A”,2)仅“B”,或3)“A和B”两者。换言之,在本公开中,“或”应被解释以指示“附加地或另选地”。
媒体文件发送/接收系统的概述
图1是示意性地例示根据本公开的实施方式的媒体文件发送/接收系统的图。
参照图1,媒体文件发送/接收系统1可以包括发送设备A和接收设备B。在一些实施方式中,媒体文件发送/接收系统1可以支持基于MPEG-DASH(HTTP动态自适应流传输)的自适应流传输,从而支持无缝媒体内容再现。
发送设备A可以包括视频源10、编码器20、封装单元30、发送处理器40和发送器45。
视频源10可以生成或获得诸如视频或图像的媒体数据。为此,视频源10可以包括视频/图像拍摄装置和/或视频/图像生成装置,或者可以连接至外部装置以接收媒体数据。
编码器20可以对从视频源10接收的媒体数据进行编码。编码器20可以根据针对压缩和编码效率的视频编解码器标准(例如,通用视频编码(VVC)标准)执行诸如预测、变换以及量化的一系列过程。编码器20可以以比特流的形式输出经编码的媒体数据。
封装单元30可以对经编码的媒体数据和/或媒体数据相关元数据进行封装。例如,封装单元30可以对文件格式(例如,ISO基本媒体文件格式(ISO BMFF)或通用媒体应用格式(CMAF))的数据进行封装,或对分段形式的数据进行处理。在一些实施方式中,以文件的形式封装的媒体数据(下文称为“媒体文件”)可以存储在存储单元(未示出)中。存储在存储单元中的媒体文件可以由发送处理器40读取,并根据按需、非实时(NRT)或宽带方法发送至接收设备B。
发送处理器40可以通过根据任意发送方法处理媒体文件来生成图像信号。媒体文件发送方法可以包括广播方法和宽带方法。
根据广播方法,可以使用MPEG媒体传输(MMT)协议或单向传输实时对象传送(ROUTE)协议来发送媒体文件。MMT协议可以是与基于IP的网络环境中的文件格式或编解码器无关地支持媒体流传输的传输协议。在使用MMT协议的情况下,可以基于MMT在媒体处理单元(MPU)中处理媒体文件,然后根据MMT协议发送媒体文件。ROUTE协议是单向传输文件传送(FLUTE)的扩展,并且可以是支持媒体文件的实时传输的传输协议。在使用ROUTE协议的情况下,媒体文件可以基于MPEG-DASH被处理成一个或更多个分段,然后根据ROUTE协议来发送。
根据宽带方法,媒体文件可以使用HTTP(超文本传输协议)通过网络来发送。通过HTTP发送的信息可以包括信令元数据、分段信息和/或非实时(NRT)服务信息。
在一些实施方式中,发送处理器40可以包括MPD生成器41和分段生成器42,以支持自适应媒体流传输。
MPD生成器41可以基于媒体文件生成媒体呈现描述(MPD)。MPD是包括关于媒体呈现的详细信息的文件,并且可以以XML格式表达。MPD可以提供诸如每个分段的标识符的信令元数据。在这种情况下,接收设备B可以基于MPD动态地获得分段。
分段生成器42可以基于媒体文件生成一个或更多个分段。分段可以包括实际媒体数据,并且可以具有诸如ISO BMFF的文件格式。分段可以被包括在图像信号的表示中,并且如上文所描述,可以基于MPD来识别分段。
另外,发送处理器40可以基于所生成的MPD和分段根据MPEG-DASH标准来生成图像信号。
发送器45可以将所生成的图像信号发送至接收设备B。在一些实施方式中,发送器45可以根据MMT标准或MPEG-DASH标准通过IP网络向接收设备B发送图像信号。根据MMT标准,发送至接收设备B的图像信号可以包括包含媒体数据的再现信息的呈现信息文档(PI)。根据MPEG-DASH标准,发送至接收设备B的图像信号可以包括前述MPD作为媒体数据的再现信息。然而,在一些实施方式中,MPD和分段可以分别地发送至接收设备B。例如,包括MPD的第一图像信号可以由发送设备A或外部服务器生成并且发送至接收设备B,包括分段的第二图像信号可以由发送设备A生成并且可以发送至接收设备B。
此外,尽管在图1中将发送处理器40和发送器45例示为分开的元件,但在一些实施方式中,它们可以整体地实现为单个元件。此外,发送处理器40可以被实现为与发送设备A分开的外部装置(例如,DASH服务器)。在这种情况下,发送设备A可以作为通过对媒体数据进行编码来生成媒体文件的源设备操作,并且外部设备可以作为通过根据任意传输协议处理媒体数据来生成图像信号的服务器设备操作。
接下来,接收设备B可以包括接收器55、接收处理器60、解封装单元70、解码器80和渲染器90。在一些实施方式中,接收设备B可以是基于MPEG-DASH的客户端。
接收器55可以从发送设备A接收图像信号。根据MMT标准的图像信号可以包括PI文档和媒体文件。另外,根据MPEG-DASH标准的图像信号可以包括MPD和分段。在一些实施方式中,MPD和分段可以通过不同的图像信号分开地发送。
接收处理器60可以通过根据传输协议处理所接收的图像信号来提取/解析媒体文件。
在一些实施方式中,接收处理器60可以包括MPD解析单元61和分段解析单元62,以便于支持自适应媒体流传输。
MPD解析单元61可以从所接收的图像信号获得MPD,并且对所获得的MPD进行解析以生成获得分段所需的命令。此外,MPD解析单元61可以基于所解析的MPD获得媒体数据再现信息(例如,颜色转换信息)。
分段解析单元62可以基于所解析的MPD获得分段,并且对所获得的分段进行解析以提取媒体文件。在一些实施方式中,媒体文件可以具有诸如ISO BMFF或CMAF的文件格式。
解封装单元70可以对所提取的媒体文件进行解封装以获得媒体数据和与其相关的元数据。所获得的元数据可以具有文件格式的框或音轨的形式。在一些实施方式中,解封装单元70可以从MPD解析单元61接收解封装所需的元数据。
解码器80可以根据视频编解码器标准(例如,VVC标准)对所获得的媒体数据进行解码。为此,解码器80可以执行诸如与编码器20的操作相对应的预测、逆量化以及逆变换的一系列过程。
渲染器90可以对诸如经解码的视频或图像的媒体数据进行渲染。经渲染的媒体数据可以通过显示单元(未示出)再现。
在下文中,将详细描述媒体文件发送/接收方法。
图2是例示了媒体文件发送方法的流程图。
在一个示例中,图2的每个步骤可以由图1的发送设备A执行。具体地,步骤S210可以由图1的编码器20执行。此外,步骤S220和步骤S230可以由发送处理器40执行。此外,步骤S240可以由发送器45执行。
参照图2,发送设备可以对诸如视频或图像的媒体数据进行编码(S210)。媒体数据可以由发送设备拍摄/生成或从外部装置(例如,相机、视频档案等)获得。可以根据视频编解码器标准(例如,VVC标准)以比特流的形式对媒体数据进行编码。
发送设备可以基于经编码的媒体数据生成MPD以及一个或更多个分段(S220)。如上所述,MPD可以包括关于媒体呈现的详细信息。分段可以包含实际媒体数据。在一些实施方式中,媒体数据可以按照诸如ISO BMFF或CMAF的文件格式被封装并且被包括在分段中。
发送设备可以生成包括所生成的MPD和分段的图像信号(S230)。在一些实施方式中,可以针对MPD和分段中的每一者单独地生成图像信号。例如,发送设备可以生成包括MPD的第一图像信号并且生成包括分段的第二图像信号。
发送设备可以将所生成的图像信号发送至接收设备(S240)。在一些实施方式中,发送设备可以使用广播方法发送图像信号。在这种情况下,可以使用MMT协议或ROUTE协议。另选地,发送设备可以使用宽带方法发送图像信号。
此外,虽然在图2中,MPD和包括该MPD的图像信号被描述为由发送设备生成和发送(步骤S220至步骤S240),但是在一些实施方式中,MPD和包括该MPD的图像可以由与发送设备不同的外部服务器生成并发送。
图3是例示媒体文件接收方法的流程图。
在示例中,图3的每个步骤可以由图1的接收设备B执行。具体地,步骤S310可以由接收器55执行。此外,步骤S320可以由接收处理器60执行。此外,步骤S330可以由解码器80执行。
参照图3,接收设备可以从发送设备接收图像信号(S310)。根据MPEG-DASH标准的图像信号可以包括MPD和分段。在一些实施方式中,可以通过不同的图像信号单独地接收MPD和分段。例如,可以从图1的发送设备或外部服务器接收包括MPD的第一图像信号,并且可以从图1的发送设备接收包括分段的第二图像信号。
接收设备可以从所接收的图像信号提取MPD和分段,并且对所提取的MPD和分段进行解析(S320)。具体地,接收设备可以对MPD进行解析以生成获得分段所需的命令。然后,接收设备可以基于所解析的MPD获得分段,并且对所获得的分段进行解析以获得媒体数据。在一些实施方式中,接收设备可以对文件格式的媒体数据执行解封装,以从分段获得媒体数据。
接收设备可以对诸如所获得的视频或图像的媒体数据进行解码(S330)。接收设备可以执行诸如逆量化、逆变换和预测的一系列过程以对媒体数据进行解码。然后,接收设备可以对经解码的媒体数据进行渲染并且通过显示器再现媒体数据。
在下文中,将详细描述图像编码/解码设备。
图像编码设备的概述
图4是示意性地例示根据本公开的实施方式的图像编码设备的图。图4的图像编码设备400可以与参照图1描述的发送设备A的编码器20相对应。
参照图4,图像编码设备400可以包括图像分割器410、减法器415、变换器420、量化器430、解量化器440、逆变换器450、加法器455、滤波器460、存储器470、帧间预测单元480、帧内预测单元485和熵编码器490。帧间预测单元480和帧内预测单元485可以统称为“预测器”。变换器420、量化器430、解量化器440和逆变换器450可以被包括在残差处理器中。残差处理器还可以包括减法器415。
在一些实施方式中,配置图像编码设备400的多个组件中的全部或至少一些可以由一个硬件组件(例如,编码器或处理器)来配置。此外,存储器470可以包括解码画面缓冲器(DPB)并且可以由数字存储介质配置。
图像分割器410可将输入到图像编码设备400的输入图像(或画面或帧)分割成一个或更多个处理单元。例如,处理单元可以称为编码单元(CU)。可以通过根据四叉树二叉树三叉树(QT/BT/TT)结构递归地分割编码树单元(CTU)或最大编码单元(LCU)来获得编码单元。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构将一个编码单元分割为更深深度的多个编码单元。对于编码单元的分割,可以首先应用四叉树结构,然后可以应用二叉树结构和/或三叉树结构。可以基于不再分割的最终编码单元来执行根据本公开的编码过程。可以将最大编码单元用作最终编码单元,也可以将通过分割最大编码单元获得的更深深度的编码单元用作最终编码单元。这里,编码过程可以包括稍后将描述的预测、变换和重构的过程。作为另一个示例,编码过程的处理单元可以是预测单元(PU)或变换单元(TU)。预测单元和变换单元可以从最终编码单元划分或分割。预测单元可以是样本预测单元,变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。
预测单元(帧间预测单元480或帧内预测单元485)可以对要处理的块(当前块)执行预测,并且生成包括当前块的预测样本的预测块。预测单元可以确定对当前块或CU单元是应用帧内预测还是帧间预测。预测单元可以生成与当前块的预测有关的各种信息,并且将生成的信息传输到熵编码器490。关于预测的信息可以在熵编码器490中被编码并且以比特流的形式输出。
帧内预测单元485可以通过参考当前画面中的样本来预测当前块。根据帧内预测模式和/或帧内预测技术,参考样本可以位于当前块的邻居中或者可以被分开放置。帧内预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如DC模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅仅是示例,可以根据设置使用更多或更少的定向预测模式。帧内预测单元485可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测单元480可以基于由参考画面上的运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于邻近块和当前块之间的运动信息的相关性以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参考画面索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、双预测等)信息。在帧间预测的情况下,邻近块可以包括当前画面中存在的空间邻近块和参考画面中存在的时间邻近块。包括参考块的参考画面和包括时间邻近块的参考画面可以相同或不同。时间邻近块可以被称为并置参考块、并置CU(colCU)等。包括时间邻近块的参考画面可以被称为并置画面(colPic)。例如,帧间预测单元480可以基于邻近块配置运动信息候选列表并生成指定使用哪个候选来推导当前块的运动向量和/或参考画面索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测单元480可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式的情况下,与合并模式不同,可以不传输残差信号。在运动向量预测(MVP)模式的情况下,邻近块的运动向量可以用作运动向量预测子,并且当前块的运动向量可以通过对运动向量差和运动向量预测子的指示符进行编码来用信号通知当前块的运动向量。运动向量差可以意指当前块的运动向量与运动向量预测子之间的差。
预测单元可以基于以下描述的各种预测方法和预测技术来生成预测信号。例如,预测单元不仅可以应用帧内预测或帧间预测,还可以同时应用帧内预测和帧间预测,以预测当前块。同时应用帧内预测和帧间预测两者来预测当前块的预测方法可以称为组合帧间和帧内预测(CIIP)。此外,预测单元可以执行帧内块复制(IBC)以预测当前块。帧内块复制可以用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC是一种在与当前块相隔预定距离的位置处使用当前画面中先前重构的参考块来预测当前画面的方法。当应用IBC时,参考块在当前画面中的位置可以被编码为与预定距离相对应的向量(块向量)。IBC基本上在当前画面中执行预测,但是可以类似于帧间预测执行,因为在当前画面内推导参考块。即,IBC可以使用本公开中描述的至少一种帧间预测技术。
预测单元生成的预测信号可用于生成重构信号或生成残差信号。减法器415可以通过从输入图像信号(原始块或原始样本阵列)中减去从预测单元输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列)。生成的残差信号可以被传输到变换器420。
变换器420可以通过将变换技术应用于残差信号来生成变换系数。例如,变换技术可以包括离散余弦变换(DCT)、离散正弦变换(DST)、karhunen-loève变换(KLT)、基于图的变换(GBT)或条件非线性变换(CNT)中的至少一种。这里,GBT是指当像素之间的关系信息由图形表示时从图形获得的变换。CNT是指基于使用所有先前重构的像素生成的预测信号获得的变换。此外,变换处理可以应用于具有相同大小的正方形像素块或者可以应用于具有可变大小而不是正方形的块。
量化器430可以对变换系数进行量化并且将它们传输到熵编码器490。熵编码器490可以对量化的信号(关于量化的变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以被称为残差信息。量化器430可以基于系数扫描顺序将块类型的量化变换系数重新排列为一维向量形式,并基于一维向量形式的量化变换系数生成关于量化变换系数的信息。
熵编码器490可以执行各种编码方法(例如,指数哥伦布、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等)。熵编码器490可以一起或单独地对量化变换系数以外的视频/图像重构所需的信息(例如,语法元素的值等)进行编码。经编码的信息(例如,编码的视频/图像信息)可以比特流的形式以网络抽象层(NAL)为单元进行传输或存储。视频/图像信息还可以包括关于各种参数集(例如,自适应参数集(APS)、画面参数集(PPS)、序列参数集(SPS)或视频参数集(VPS))的信息。此外,视频/图像信息还可以包括一般约束信息。本公开中描述的用信号通知的信息、传输的信息和/或语法元素可以通过上述编码过程被编码并且被包括在比特流中。
比特流可以通过网络传输或者可以存储在数字存储介质中。网络可以包括广播网络和/或通信网络,数字存储介质可以包括USB、SD、CD、DVD、蓝光、HDD、SSD等各种存储介质。可以包括传输从熵编码器490输出的信号的发送器(未示出)和/或存储该信号的存储单元(未示出)作为图像编码设备400的内部/外部元件。另选地,可以提供发送器作为熵编码器490的组件。
从量化器430输出的量化变换系数可用于生成残差信号。例如,可以通过解量化器440和逆变换器450对量化变换系数应用解量化和逆变换来重构残差信号(残差块或残差样本)。
加法器455将重构残差信号与从帧间预测单元480或帧内预测单元485输出的预测信号相加,以生成重构信号(重构画面、重构块、重构样本阵列)。如果要处理的块没有残差(例如,应用跳过模式的情况),则可以将预测块用作重构块。加法器455可以称为重构器或重构块生成器。生成的重构信号可以用于当前画面中要处理的下一个块的帧内预测,并且可以用于通过如下所述的滤波对下一个画面进行帧间预测。
此外,在图像编码和/或重构过程中,具有色度缩放的亮度映射(LMCS)是适用的。
滤波器460可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器460可以通过对重构画面应用各种滤波方法来生成修改的重构画面,并将修改的重构画面存储在存储器470中,具体地,存储器470的DPB中。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波、双边滤波等。滤波器460可以生成与滤波有关的各种信息并将所生成的信息传输到熵编码器490,如稍后在每种滤波方法的描述中所描述的。与滤波相关的信息可以由熵编码器490编码并以比特流的形式输出。
传输到存储器470的修改的重构画面可以用作帧间预测单元480中的参考画面。当通过图像编码设备400应用帧间预测时,可以避免图像编码设备400和图像解码设备之间的预测失配并且可以提高编码效率。
存储器470的DPB可以存储修改的重构画面以用作帧间预测单元480中的参考画面。存储器470可以存储从其中推导(或编码)当前画面中的运动信息的块的运动信息和/或画面中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测单元480并用作空间邻近块的运动信息或时间邻近块的运动信息。存储器470可以存储当前画面中重构块的重构样本并且可以将重构样本传送到帧内预测单元485。
图像解码设备的概述
图5是示意性地例示根据本公开的实施方式的图像解码设备的图。图5的图像解码设备500可以与参照图1描述的接收设备B的解码器80相对应。
参照图5,图像解码设备500可以包括熵解码器510、解量化器520、逆变换器530、加法器535、滤波器540、存储器550、帧间预测单元560和帧内预测单元565。帧间预测单元560和帧内预测单元565可以统称为“预测器”。解量化器520和逆变换器530可以被包括在残差处理器中。
根据实施方式,配置图像解码设备500的多个组件中的全部或至少一些可以由硬件组件(例如,解码器或处理器)来配置。此外,存储器550可以包括解码画面缓冲器(DPB)或者可以由数字存储介质配置。
已经接收到包括视频/图像信息的比特流的图像解码设备500可以通过执行与由图4的图像编码设备100执行的处理相对应的处理来重构图像。例如,图像解码设备500可以使用在图像编码设备中应用的处理单元来执行解码。因此,解码的处理单元例如可以是编码单元。编码单元可以通过分割编码树单元或最大编码单元来获得。通过图像解码设备500解码和输出的重构图像信号可以通过再现设备(未示出)再现。
图像解码设备500可以接收由图4的图像编码设备以比特流的形式生成的信号。接收到的信号可以通过熵解码器510进行解码。例如,熵解码器510可以对比特流进行解析以推导图像重构(或画面重构)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于各种参数集(例如,自适应参数集(APS)、画面参数集(PPS)、序列参数集(SPS)或视频参数集(VPS))的信息。此外,视频/图像信息还可以包括一般约束信息。图像解码设备还可以基于关于参数集的信息和/或一般约束信息对画面进行解码。本公开中描述的用信号通知/接收的信息和/或语法元素可以通过解码过程被解码并从比特流中获得。例如,熵解码器510基于诸如指数哥伦布编码、CAVLC或CABAC的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素的值和残差的变换系数的量化值。更具体地,CABAC熵解码方法可以接收与比特流中每个语法元素对应的bin,使用解码目标语法元素信息、邻近块和解码目标块的解码信息或前一阶段解码的符号/bin的信息来确定上下文模型,根据确定的上下文模型通过预测bin的出现概率来对bin执行算术解码,并且生成与每个语法元素的值对应的符号。在这种情况下,CABAC熵解码方法可以在确定上下文模型后,通过将解码的符号/bin的信息用于下一个符号/bin的上下文模型来更新上下文模型。由熵解码器510解码的信息中与预测相关的信息可以被提供给预测单元(帧间预测单元560和帧内预测单元565),并且在熵解码器510中对其执行熵解码的残差值,即,量化变换系数和相关的参数信息可以被输入到解量化器520。另外,可以将熵解码器510解码的信息当中关于滤波的信息提供给滤波器540。此外,用于接收从图像编码设备输出的信号的接收器(未示出)可以进一步被配置为图像解码设备500的内部/外部元件,或者接收器可以是熵解码器510的组件。
此外,根据本公开的图像解码设备可以被称为视频/图像/画面解码设备。图像解码设备可以分为信息解码器(视频/图像/画面信息解码器)和样本解码器(视频/图像/画面样本解码器)。信息解码器可以包括熵解码器510。样本解码器可以包括解量化器520、逆变换器530、加法器535、滤波器540、存储器550、帧间预测单元560或帧内预测单元565中的至少一个。
解量化器520可以对量化变换系数进行解量化并输出变换系数。解量化器520可以以二维块的形式重新排列量化变换系数。在这种情况下,可以基于在图像编码设备中执行的系数扫描顺序来执行重新排列。解量化器520可以通过使用量化参数(例如,量化步长信息)对量化变换系数执行解量化并获得变换系数。
逆变换器530可以对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。
预测单元可以对当前块执行预测并生成包括当前块的预测样本的预测块。预测单元可以基于从熵解码器510输出的关于预测的信息来确定是将帧内预测还是帧间预测应用于当前块,并且可以确定特定帧内/帧间预测模式(预测技术)。
与在图像编码设备100的预测单元中描述的相同的是,预测单元可以基于稍后描述的各种预测方法(技术)来生成预测信号。
帧内预测单元565可以通过参考当前画面中的样本来预测当前块。帧内预测单元485的描述同样适用于帧内预测单元565。
帧间预测单元560可以基于参考画面上由运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于邻近块和当前块之间的运动信息的相关性以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参考画面索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、双预测等)信息。在帧间预测的情况下,邻近块可以包括当前画面中存在的空间邻近块和参考画面中存在的时间邻近块。例如,帧间预测单元560可以基于邻近块配置运动信息候选列表,并且基于接收到的候选选择信息推导当前块的运动向量和/或参考画面索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指定当前块的帧间预测模式的信息。
加法器535可以通过将获得的残差信号与从预测单元(包括帧间预测单元560和/或帧内预测单元565)输出的预测信号(预测块、预测样本阵列)相加生成重构信号(重构画面、重构块、重构样本阵列)。如果要处理的块没有残差(例如,应用跳过模式的情况),则预测块可以用作重构块。加法器155的描述同样适用于加法器535。加法器535可以称为重构器或重构块生成器。所生成的重构信号可以用于当前画面中要处理的下一块的帧内预测,并且可以用于通过如下所述的滤波对下一画面的帧间预测。
此外,在画面解码过程中,具有色度缩放的亮度映射(LMCS)是适用的。
滤波器540可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器540可以通过对重构画面应用各种滤波方法来生成修改的重构画面,并将修改的重构画面存储在存储器550中,具体地,存储器550的DPB中。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波、双边滤波等。
存储在存储器550的DPB中的(修改的)重构画面可以用作帧间预测单元560中的参考画面。存储器550可以存储从其中推导(或解码)当前画面中的运动信息的块的运动信息和/或画面中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测单元560,以用作空间邻近块的运动信息或时间邻近块的运动信息。存储器550可以存储当前画面中重构块的重构样本并将重构样本传送到帧内预测单元565。
在本公开中,在图像编码设备400的滤波器460、帧间预测单元480和帧内预测单元485中描述的实施方式可以同等地或对应地应用于图像解码设备500的滤波器540、帧间预测单元560和帧内预测单元565。
编码设备的量化器可以通过对变换系数应用量化来推导量化变换系数,并且编码设备的解量化器或者解码设备的解量化器可以通过对量化变换系数应用解量化来推导变换系数。在视频编码中,可以改变量化速率并且可以使用经改变的量化速率来调整压缩率。从实现方式的观点,考虑到复杂性,可以使用量化参数(QP)而非直接使用量化速率。例如,可以使用具有整数值0至63的量化参数并且每个量化参数值可以对应于实际量化速率。另外,可以不同地设置亮度分量(亮度样本)的量化参数QPY和色度分量(色度样本)的量化参数QPC
在量化过程中,变换系数C可以作为输入接收并且除以量化速率Qstep,并且可以基于此推导量化变换系数C’。在这种情况下,考虑到计算复杂性,将量化速率乘以缩放以形成整数,并且可以按照与缩放值相对应的值来执行移位运算。基于量化速率与缩放值的乘积,可以推导量化缩放。也就是说,可以根据QP推导量化缩放。在这种情况下,通过将量化缩放应用于变换系数C,可以基于此推导量化变换系数C’。
解量化过程是量化过程的逆过程,并且量化变换系数C’可以乘以量化速率Qstep,从而基于此推导重构变换系数C”。在这种情况下,可以根据量化参数推导级别缩放,可以将级别缩放应用于量化变换系数C’,从而基于此推导重构变换系数C”。由于变换和/或量化过程中的损失,所以重构变换系数C”可以与原始变换系数C略微不同。因此,即使编码设备也可以以与解码设备相同的方式执行解量化。
此外,可以应用根据频率调整量化强度的自适应频率加权量化技术。自适应频率加权量化技术可以对应于根据频率不同地应用量化强度的方法。在自适应频率加权量化中,可以使用预定义的量化缩放矩阵根据频率来不同地应用量化强度。也就是说,可以基于量化缩放矩阵进一步执行上文所描述的量化/解量化过程。
例如,可以根据当前块的大小和/或应用于当前块以生成当前块的残差信号的预测模式是帧间预测还是帧内预测来使用不同量化缩放矩阵。量化缩放矩阵还可以称为量化矩阵或缩放矩阵。量化缩放矩阵可以是预定义的。另外,用于频率自适应缩放的量化缩放矩阵的频率量化缩放信息可以由编码设备构造/编码并且用信号通知给解码设备。频率量化缩放信息可以称为量化缩放信息。频率量化缩放信息可以包括缩放列表数据scaling_list_data。
基于缩放列表数据,可以推导量化缩放矩阵。另外,频率量化缩放信息可以包括指定是否存在缩放列表数据的存在标志信息。另选地,当在较高级别(例如,SPS)处用信号通知缩放列表数据时,还可以包括指定缩放列表数据是否在较低级别(例如,PPS或拼块组报头等)处被修改的信息。
图6是例示编码图像/视频的层结构的示例的图。
编码图像/视频被分类为用于图像/视频解码处理和处理自己的视频编码层(VCL)、用于发送和存储编码信息的下层系统以及存在于VCL和下层系统之间并负责网络适配功能的网络抽象层(NAL)。
在VCL中,可以生成包括压缩图像数据(切片数据)的VCL数据,或者可以生成图像的解码处理另外所需的补充增强信息(SEI)消息或包括诸如画面参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)的信息的参数集。
在NAL中,报头信息(NAL单元报头)可以被添加到VCL中生成的原始字节序列有效载荷(RBSP)以生成NAL单元。在这种情况下,RBSP是指VCL中生成的切片数据、参数集、SEI消息。NAL单元报头可以包括根据对应NAL单元中所包括的RBSP数据指定的NAL单元类型信息。
如图6所示,NAL单元可以根据VCL中生成的RBSP的类型被分类为VCL NAL单元和非VCL NAL单元。VCL NAL单元可以意指包括关于图像的信息(切片数据)的NAL单元,非VCLNAL单元可以意指包括对图像进行解码所需的信息(参数集或SEI消息)的NAL单元。
VCL NAL单元和非VCL NAL单元可以根据下层系统的数据标准附有报头信息并通过网络发送。例如,NAL单元可以被修改为具有预定标准(例如,H.266/VVC文件格式、RTP(实时传输协议)或TS(传输流))的数据格式,并通过各种网络发送。
如上所述,在NAL单元中,可以根据被包括在对应NAL单元中的RBSP数据结构来指定NAL单元类型,并且关于NAL单元类型的信息可以被存储在NAL单元报头中并用信号通知。例如,这可以根据NAL单元是否包括图像信息(切片数据)大致分类为VCL NAL单元类型和非VCL NAL单元类型。VCL NAL单元类型可以根据被包括在VCLNAL单元中的画面的性质/类型来分类,并且非VCL NAL单元类型可以根据参数集的类型来分类。
以下列举根据被包括在非VCL NAL单元类型中的参数集/信息的类型指定的NAL单元类型的示例。
-DCI(解码能力信息)NAL单元类型(NUT):包括DCI的NAL单元的类型
-VPS(视频参数集)NUT:包括VPS的NAL单元的类型
-SPS(序列参数集)NUT:包括SPS的NAL单元的类型
-PPS(画面参数集)NUT:包括PPS的NAL单元的类型
-APS(自适应参数集)NUT:包括APS的NAL单元的类型
-PH(画面报头)NUT:包括画面报头的NAL单元的类型
上述NAL单元类型可以具有针对NAL单元类型的语法信息,并且该语法信息可以被存储在NAL单元报头中并用信号通知。例如,该语法信息可以是nal_unit_type,并且NAL单元类型可以使用nal_unit_type值来指定。
此外,一个画面可以包括多个切片,并且一个切片可以包括切片报头和切片数据。在这种情况下,还可以向一个画面中的多个切片(切片报头和切片数据集)添加一个画面报头。画面报头(画面报头语法)可以包括共同适用于画面的信息/参数。切片报头(切片报头语法)可以包括共同适用于切片的信息/参数。APS(APS语法)或PPS(PPS语法)可以包括共同适用于一个或更多个切片或画面的信息/参数。SPS(SPS语法)可以包括共同适用于一个或更多个序列的信息/参数。VPS(VPS语法)可以是共同适用于多个层的信息/参数。DCI(DCI语法)可以包括与解码能力有关的信息/参数。
在本公开中,高级语法(HLS)可以包括APS语法、PPS语法、SPS语法、VPS语法、DCI语法、画面报头语法或切片报头语法中的至少一个。另外,在本公开中,低级语法(LLS)可以包括例如切片数据语法、CTU语法、编码单元语法、变换单元语法等。
在本公开中,通过编码设备编码并以比特流的形式用信号通知给解码设备的图像/视频信息可以不仅包括画面内分割相关信息、帧内/帧间预测信息、残差信息、环路内滤波信息,而且包括关于切片报头的信息、关于画面报头的信息、关于APS的信息、关于PPS的信息、关于SPS的信息、关于VPS的信息和/或关于DCI的信息。另外,图像/视频信息还可以包括一般约束信息和/或关于NAL单元报头的信息。
在下文中,将详细描述包括编码图像信息的媒体文件。
媒体文件
可以基于预定的媒体文件格式配置(或格式化)经编码的图像信息以生成媒体文件。例如,经编码的图像信息可以基于针对经编码的图像信息的一个或更多个NAL单元/样本条目来形成媒体文件(分段)。
媒体文件可以包括样本条目和音轨。在一个示例中,媒体文件可以包括各种记录,并且每个记录可以包括与媒体文件格式相关的信息或者与图像相关的信息。在一个示例中,一个或更多个NAL单元可以存储在媒体文件中的配置记录(或解码器配置记录)字段中。另外,媒体文件可以包括操作点记录和/或操作点组框。在本公开中,支持多功能视频编码(VVC)的解码器配置记录可以称为VVC解码器配置记录。同样地,支持VVC的操作点记录可以称为VVC操作点记录。
在媒体文件格式中使用的术语“样本”可以意指与表示画面的三个样本阵列(Y、Cb、Cr)中的任一者的单个时间或单个元素相关联的所有数据。当术语“样本”在音轨(媒体文件格式)的上下文中使用时,“样本”可以指代与音轨的单个时间相关联的所有数据。这里,时间可以对应于解码时间或合成时间(composition time)。此外,当在画面(例如,亮度样本)的上下文中使用术语“样本”时,“样本”可以指示表示画面的三个样本阵列中的任一者的单个元素。
图7是例示媒体文件结构的示例的图。
如上所述,为了存储和发送诸如音频、视频或图像的媒体数据,可以定义标准化的媒体文件格式。在一些实施方式中,媒体文件可以具有根据ISO基本媒体文件格式(ISOBMFF)的文件格式。
媒体文件可以包括一个或更多个框(box)。这里,框可以是包括媒体数据或与媒体数据有关的元数据的数据块或对象。在媒体文件内,框可以形成分层结构。因此,媒体文件可以具有适合于存储和/或发送大容量媒体数据的形式。此外,媒体文件可以具有便于访问特定媒体数据的结构。
参照图7,媒体文件700可以包括ftyp框710、moov框720、moof框730和mdat框740。
ftyp框710可以包括媒体文件700的文件类型、文件版本和/或兼容性相关信息。在一些实施方式中,ftyp框710可以位于媒体文件700的开始处。
moov框720可以包括描述媒体文件700中的媒体数据的元数据。在一些实施方式中,moov框720可以存在于元数据相关框当中的最上层中。此外,moov框720可以包括媒体文件700的报头信息。例如,moov框720可以包括解码器配置记录作为解码器配置信息。
moov框720是子框,并且可以包括mvhd框721、trak框722和mvex框723。
mvhd框721可以包括媒体文件700中的媒体数据的呈现相关信息(例如,媒体创建时间、改变时间、周期等)。
trak框722可以包括媒体数据的音轨的元数据。例如,trak框722可以包括音频音轨或视频音轨的流相关信息、呈现相关信息和/或访问相关信息。根据媒体文件700中存在的音轨的数量,可以存在多个trak框722。
mvex框723可以包括关于一个或更多个电影片段是否存在于媒体文件700中的信息。电影片段可以是通过划分媒体文件700中的媒体数据而获得的媒体数据的一部分。电影片段可以包括一个或更多个编码画面。例如,电影片段可以包括一个或更多个画面组(GOP),并且每个画面组可以包括多个编码帧或画面。电影片段可以存储在mdat框740-1至740-N(其中,N是大于或等于1的整数)中的每一者中。
moof框730-1至730-N(其中,N是大于或等于1的整数)可以包括电影片段的元数据,即,mdat框740-1至740-N。在一些实施方式中,moof框730-1至730-N可以存在于电影片段的元数据相关框当中的最上层中。
mdat框740-1至740-N可以包括实际媒体数据。根据媒体文件700中存在的电影片段的数量,可以存在多个mdat框740-1至740-N。mdat框740-1至740-N中的每一者可以包括一个或更多个音频样本或视频样本。在一个示例中,样本可以意指访问单元(AU)。当解码器配置记录被存储在样本条目中时,解码器配置记录可以包括用于指定每个样本所属的网络抽象层(NAL)单元的长度的长度字段的大小以及参数集。
在一些实施方式中,媒体文件700可以以分段为单位被处理和存储和/或发送。分段可以包括初始化分段I_seg和媒体分段M_seg。
初始化分段I_seg可以是包括用于访问表示的初始化信息的对象类型数据单元。初始化分段I_seg可以包括前述ftyp框710和/或moov框720。
媒体分段M_seg可以是包括流传输服务的时间上划分的媒体数据的对象类型数据单元。媒体分段M_seg可以包括前述moof框730-1至730-N和mdat框740-1至740-N。尽管图7中未示出,但是媒体分段M_seg还可以包括:包括分段类型相关信息的styp框和包括媒体文件700中包括的子分段的标识信息的sidx框(可选的)。
如上所述,可以根据诸如ISO BMFF的文件格式将媒体数据封装到媒体文件中。另外,媒体文件可以根据MMT标准或MPEG-DASH标准通过图像信号发送。
图8是例示图像信号结构的示例的图。
参照图8,图像信号符合MPEG-DASH标准,并且可以包括MPD 810和多个表示(representation)820-1至820-N。
MPD 810是包括关于媒体呈现的详细信息的文件,并且可以以XML格式表达。MPD810可以包括关于多个表示820-1至820-N的信息(例如,流传输内容的比特速率、图像分辨率、帧速率等)以及关于HTTP资源(例如,初始化分段和媒体分段)的URL的信息。
表示820-1至820-N(其中,N是大于1的整数)中的每一个可以被划分为多个分段S-1至S-K(其中,K是大于1的整数)。这里,多个分段S-1至S-K可以与上面参照图7描述的初始化分段和媒体分段相对应。第K分段S-K可以表示表示820-1至820-N中的每一者中的最后的电影片段。在一些实施方式中,包括在表示820-1至820-N中的每一个中的分段S-1至S-K的数量(也就是说,K的值)可以彼此不同。
分段S-1至S-K中的每一个可以包括诸如一个或更多个视频或图像样本的实际媒体数据。包括在分段S-1至S-K中的每一个内的视频或图像样本的特性可以由MPD 810描述。
分段S-1至S-K中的每一个具有唯一的URL(统一资源定位符),并因此可以被独立地访问和重构。
此外,为了存储VVC内容,可以定义三种类型的基本流。首先,可以定义不包括任何参数集的视频基本流。在这种情况下,可以将所有参数集存储在一个样本条目或多个样本条目中。第二,可以包括参数集,并且可以定义可以包括被存储在一个样本条目中或多个样本条目中的参数集的视频和参数集基本流。第三,可以定义包括与视频音轨中承载的基本流同步的非VCLNAL单元的非VCL基本流。在这种情况下,非VCL音轨可以不包括样本条目中的参数集。
操作点是输出层集合(OLS)的时间子集,并且可以由输出层集合(OLS)索引和TemporalId的最大值来标识。每个操作点可以与限定对应操作点的一致性点的简档、层级和级别(PTL)相关联。在针对VVC的基于ISO的媒体文件格式(ISO BMFF)中,可以在‘vopi’类型组框或‘opeg’类型实体组的样本内用信号通知操作点信息。操作点信息可以用于标识每个操作点的样本和样本条目。
操作点信息样本组
可以使用操作点信息样本组‘vopi’将关于由VVC比特流提供的不同操作点和操作点的构成的信息提供给应用。在这种情况下,每个操作点可以与输出层集合、最大TemporalId值和PTL信令相关联。所有上述信息可以由‘vopi’样本组捕获。除了上述信息之外,样本组还可以提供层之间的依赖性信息。如果针对VVC比特流存在超过一个VVC音轨并且针对VVC比特流不存在操作点实体组,则可以应用以下两项操作。首先,在VVC比特流的VVC音轨当中,应当仅存在承载‘vopi’样本组的一个音轨。第二,VVC比特流中的所有其它VVC音轨应具有对承载‘vopi’样本组的音轨的‘oref’类型音轨参考。
针对音轨中的特定样本,其它音轨中的时间并置样本可以被定义为具有与特定样本的解码时间相同的解码时间。在具有参考承载‘vopi’样本组的音轨Tk的‘oref’音轨的音轨TN内,以下内容可以应用于每个样本SN。如果音轨Tk内存在时间并置样本Sk,则样本SN可以与和样本Sk相同的‘vopi’样本组条目相关联。否则,样本SN可以与按解码时间在样本SN之前的音轨Tk中的最后样本相同的‘vopi’样本组条目相关联。
当VVC比特流参考多个VPS时,具有‘vopi’组类型的样本组描述框可以包括多个条目。另选地,在存在单个VPS的更一般情况下,可以使用默认样本组机制。默认样本组机制可以在诸如ISO/IEC 14496-12的标准文档中定义。此外,操作点信息样本组可以被包括在样本表框中而非被包括在每个音轨片段中。例如,语法grouping_type_parameter可以不是针对具有‘vopi’类型的语法SampleToGroupBox定义的。
图9是例示用信号通知操作点信息的语法结构VvcOperatingPointsRecord的示例的图
参照图9,VvcOperatingPointsRecord可以包括语法元素num_profile_tier_level_minus1。num_profile_tier_level_minus1加1可以指示后续简档、层级和级别(PTL)组合以及与其相关的字段的数量。
另外,VvcOperatingPointsRecord可以包括语法元素ptl_max_temporal_id[i]。ptl_max_temporal_id[i]可以指示针对第i PTL结构的关联比特流的NAL单元的最大TemporalID。这里,i可以等于或大于0并且可以等于或小于num_profile_tier_level_minus1的值。ptl_max_temporal_id[i]可以具有与下文描述的max_temporal_id相同的值,但ptl_max_temporal_id[i]的语义可以与max_temporal_id的语义不同。
另外,VvcOperatingPointsRecord可以包括语法元素ptl[i]。ptl[i]可以指示第iPTL结构。这里,i可以等于或大于0并且可以等于或小于num_profile_tier_level_minus1的值。ptl[i]可以具有将在后面描述的VvcPTLRecord(ptl_max_temporal_id[i]+1)的类(class)类型。
另外,VvcOperatingPointsRecord可以包括语法元素all_independent_layers_flag。all_independent_layers_flag为第一值(例如,0)可以指示至少一个层未经独立编码。相比之下,all_independent_layers_flag为第二值(例如,1)的可以指示在不使用层间预测的情况下独立地对所有层进行编码。
当all_independent_layers_flag是第一值(例如,0)时,VvcOperatingPointsRecord可以包括语法元素ols_mode_idc。ols_mode_idc可以指示输出层集合模式索引。相比之下,当all_independent_layers_flag是第二值(例如,1)时,VvcOperatingPointsRecord可以包括语法元素each_layer_is_an_ols_flag。each_layer_is_an_ols_flag可以指示输出层集合是否仅包括一个层。上述all_independent_layers_flag、ols_mode_idc和each_layer_is_an_ols_flag可以例如在诸如ISO/IEC 23090-3的标准文档中定义。
另外,VvcOperatingPointsRecord可以包括语法元素num_operating_points。num_operating_points可以指示操作点的数量。
另外,VvcOperatingPointsRecord可以包括语法元素output_layer_set_idx。output_layer_set_idx可以指示定义对应操作点的输出层集合的索引。output_layer_set_idx与稍后将描述的layer_id之间的映射将与由VPS针对与output_layer_set_idx相同的索引指定的映射相同。
另外,VvcOperatingPointsRecord可以包括语法元素ptl_idx。ptl_idx可以指示针对具有与output_layer_set_idx相同的索引的输出层集合的所列举的PTL结构的基于零的索引。
另外,VvcOperatingPointsRecord可以包括语法元素max_temporal_id。max_temporal_id可以指示对应操作点的NAL单元的最大TemporalId。这里,最大TemporalId可以具有与层信息样本组中指示的最大TemporalId不同的语义。然而,这两者可以具有彼此相同的值。
另外,VvcOperatingPointsRecord可以包括语法元素layer_count。layer_count可以指示对应操作点所需的层的数量。layer_count可以例如在诸如ISO/IEC 23090-3的标准文档中定义。
另外,VvcOperatingPointsRecord可以包括语法元素layer_id。layer_id可以指示对应操作点的层的nuh_layer_id值。
另外,VvcOperatingPointsRecord可以包括语法元素is_outputlayer。is_outputlayer可以指示对应操作点的层是否是输出层。
上述语法元素output_layer_set_idx、ptl_idx、max_temporal_id和layer_count可以存在于针对操作点的循环(即,for(i=0;i<num_operating_points;i++))中。因此,被包括在VvcOperatingPointsRecord中的语法元素的数量可以与操作点的数量(即,num_operating_points)相对应。
另外,上述语法元素layer_id和is_outputlayer可以存在于针对每个操作点的层的循环(即,for(j=0;j<layer_count;j++))中。因此,被包括在VvcOperatingPointsRecord中的语法元素的数量可以与对应操作点所需的层的数量(即,layer_count)相对应。
此外,VvcOperatingPointsRecord可以包括语法元素frame_rate_info_flag。frame_rate_info_flag为第一值(例如,0)可以指示针对对应操作点不存在帧速率信息。相比之下,frame_rate_info_flag为第二值(例如,1)可以指示针对对应操作点存在帧速率信息。
另外,VvcOperatingPointsRecord可以包括语法元素bit_rate_info_flag。bit_rate_info_flag为第一值(例如,0)可以指示针对对应操作点不存在比特率信息。相比之下,bit_rate_info_flag为第二值(例如,1)可以指示针对对应操作点存在比特率信息。
另外,VvcOperaingPointsRecord可以包括语法元素avgFrameRate。avgFrameRate可以指示针对对应操作点的以‘帧/(256秒)’为单位的平均帧速率。avgFrameRate等于0可以指示不指定平均帧速率。
另外,VvcOperaingPointsRecord可以包括语法元素constantFrameRate。constantFrameRate等于1可以指示对应操作点的流具有恒定帧速率。相比之下,constantFrameRate等于2可以指示对应操作点的流中的每个时间层的表示具有恒定帧速率。相比之下,constantFrameRate等于0可以指示对应操作点的流具有恒定帧速率或可以不具有恒定帧速率。
另外,VvcOperaingPointsRecord可以包括语法元素maxBitRate。maxBitRate可以指示对应操作点的流的‘比特/秒’为单位的最大比特率。
另外,VvcOperaingPointsRecord可以包括语法元素max_layer_count。max_layer_count可以指示与关联基础音轨相关联的所有操作点中的所有层的数量。
另外,VvcOperaingPointsRecord可以包括语法元素layerID。layerID可以指示在direct_ref_layerID的后续循环中提供所有直接参考层的层的nuh_layer_id。
另外,VvcOperaingPointsRecord可以包括语法元素num_direct_ref_layers。num_direct_ref_layers可以指示nuh_layer_id等于layerID的层的直接参考层的数量。
另外,VvcOperaingPointsRecord可以具有语法元素direct_ref_layerID。direct_ref_layerID可以指示对应直接参考层的nuh_layer_id。
操作点实体组
操作点实体组可以被限定为提供音轨到操作点的映射和操作点的简档级别信息。当对映射到实体组中描述的操作点的音轨样本进行聚合时,隐式重构过程可以不需要附加移除NAL单元来生成匹配的VVC比特流。属于操作点实体组的音轨应具有在操作点实体组中指示的group_id的‘oref’类型音轨参考。包括在操作点实体组中的所有entity_id值应属于同一VVC比特流。OperatingPointGroupBox应被包括在电影级别MetaBox中的GroupsListBox中,并且不应被包括在文件级别或音轨级别MetaBox中。
图10是例示用信号通知操作点实体组的语法结构OperatingPointGroupBox的示例的图。
参照图10,OperatingPointGroupBox可以包括语法元素num_profile_tier_level_minus1。语法元素的语义如上文参照图9所描述的。
另外,OperatingPointGroupBox可以包括语法元素opeg_ptl[i]。opeg_ptl[i]可以指示第i PTL结构。这里,i可以等于或大于0并且可以等于或小于num_profile_tier_level_minus1的值。opeg_ptl[i]可以具有稍后将要描述的VvcPTLRecord(0)的类类型。
另外,OperatingPointGroupBox可以包括指定操作点的数量的语法元素num_operating_points。
另外,OperatingPointGroupBox可以包括语法元素output_layer_set_idx、ptl_idx、max_temporal_id和layer_count。语法元素的语义如上文参照图9所描述的。语法元素可以存在于操作点的循环(即,for(i=0;i<num_operating_points;i++))中。因此,包括在OperatingPointGroupBox中的语法元素的数量可以与操作点的数量(即,num_operating_points)相对应。
另外,OperatingPointGroupBox可以包括语法元素layer_id和is_outputlayer。语法元素的语义如上文参照图9所描述。语法元素可以存在于与每个操作点的层相关的循环中。因此,包括在OperatingPointGroupBox中的语法元素的数量可以与对应操作点所需的层的数量(即,layer_count)相对应。
另外,OperatingPointGroupBox可以包括语法元素frame_rate_info_flag、bit_rate_info_flag、avgFrameRate、constantFrameRate、maxBitRate和avgBitRate。语法元素的语义如上文参照图9所描述的。
另外,OperatingPointGroupBox可以包括语法元素entity_count。entity_count可以指示存在于操作点中的音轨的数量。
另外,OperatingPointGroupBox可以包括语法元素entity_idx。entity_idx可以指示属于操作点的实体组中的entity_id列表的索引。
frame_rate_info_flag可以指示帧速率信息是否存在于操作点处。bit_rate_info_flag可以指示比特率信息是否存在于操作点处。entity_count可以指示存在于操作点处的音轨的数量。entity_idx可以指示属于操作点的实体组的entity_id列表的索引。
解码器配置记录
当解码器配置记录被存储在样本条目中时,解码器配置记录可以包括用于每个样本的长度字段的大小以指示NAL单元的长度和参数集。解码器配置记录可以被外部帧化(framed)。可以在包括解码器配置记录的结构中提供解码器配置记录的大小。
解码器配置记录可以包括版本字段。本说明书的版本可以定义解码器配置记录的版本1。如果版本号未被识别,则解码器配置记录所应用的流或解码器配置记录将不被解码。对解码器配置记录的兼容扩展可以扩展解码器配置记录,并且可以不改变配置版本代码。
如果音轨从基本上包括VVC比特流或解析‘subp’音轨参考,则在解码器配置记录中将存在VvcPtlRecord。如果在音轨的解码器配置记录中ptl_present_flag等于0,则音轨应具有‘oref’音轨参考。VvcPTLRecord、chroma_format_idc和bit_depth_minus8的语法元素的值针对在由解码器配置记录描述的流被解码时激活的所有参数集应当是有效的。在这方面,可以应用以下约束。
简档指示符general_profile_idc将指示与解码器配置记录相关联的流符合的简档。如果SPS标记有不同简档,则可能需要检查流以确定整个流符合的简档。如果整个流还没有被检查或者作为检查结果不存在整个流符合的简档,则整个流可以被分成具有可以满足上述规则的单独的配置记录的两个或更多个子流。
层级指示符general_tier_flag将指示大于或等于在所有参数集中指示的最高层级的层级。
一般约束信息general_constraint_info的每个比特可以仅在所有参数集设置了对应比特时被设置。
级别指示符general_level_idc应指示大于或等于针对所有参数集中的最高层级指示的最高级别的能力级别。
chroma_format_idc可以指示应用于音轨的色度格式。以下约束可以应用于chroma_format_idc。当sps_chroma_format_idc的值在由音轨的NAL单元参考的所有SPS中相同时,chroma_format_idc应等于sps_chroma_format_idc(条件1)。当条件1不满足并且ptl_present_flag等于第二值(例如,1)时,chroma_format_idc应等于vps_ols_dpb_chroma_format[output_layer_set_idx](条件2)。当条件1和条件2二者均不满足时,不应存在chroma_format_idc。
bit_depth_minus8可以指示应用于音轨的比特深度。以下约束可以应用于bit_depth_minus8。当sps_bitdepth_minus8的值在由音轨的NAL单元参考的所有SPS中相同时,bit_depth_minus8应等于sps_bitdepth_minus8(条件1)。当条件1不满足并且ptl_present_flag等于第二值(例如,1)时,bit_depth_minus8应等于vps_ols_dpb_bitdepth_minus8[output_layer_set_idx](条件2)。当条件1和条件2二者均不满足时,不应存在bit_depth_minus8。
可以在VVC解码器配置记录内提供在VCC基本流中使用的其它重要格式信息以及色度格式和比特深度的显式指示符。如果颜色空间表示在两个序列的VUI信息中不同,则可能需要两个不同的VVC样本条目。
此外,可以存在阵列集合以承载初始化NAL单元。NAL单元类型可以被限制以仅指示DCI、VPS、SPS、PPS、前缀APS和前缀SEI NAL单元。包括在样本条目中的NAL单元可以紧接在AUD和OPI NAL单元之后被包括,或可以被包括在从参考样本条目的第一样本重构的访问单元的开始部分中。阵列可以按DCI、VPS、SPS、PPS、前缀APS和前缀SEI的顺序布置。
图11是例示用信号通知PTL记录的语法结构VvcPTLRecord的示例的图。
参照图11,VvcPTLRecord可以包括语法元素general_profile_idc、general_tier_flag、general_sub_profile_idc、general_constraint_info、general_level_idc、ptl_frame_only_constraint_flag、ptl_multilayer_enabled_flag、sublayer_level_present和sublayer_level_idc[i]。语法元素可以包括general_profile_idc、general_tier_flag和general_sub_profile_idc字段的匹配值以及general_constraint_info()、general_level_idc、ptl_multilayer_enabled_flag、ptl_frame_only_constraint_flag、sublayer_level_present和sublayer_level_idc[i]的比特。
另外,VvcPTLRecord可以包括语法元素avgFrameRate。avgFrameRate可以指示应用解码器配置记录的流的以‘帧/(256秒)’为单位的平均帧速率。avgFrameRate为第一值(例如,0)可以指示未指定的平均帧速率。avgFrameRate等于0可以指示未指定平均帧速率。
另外,VvcPTLRecord可以包括语法元素constantFrameRate。constantFrameRate等于1可以指示应用解码器配置记录的流具有恒定帧速率。相比之下,constantFrameRate等于2可以指示对应帧中的每个时间层的表示具有恒定帧速率。相比之下,constantFrameRate等于0可以指示对应流可以具有恒定帧速率或可以不具有恒定帧速率。
另外,VvcPTLRecord可以包括语法元素numTemporalLayers。numTemporalLayers大于1可以指示应用解码器配置记录的音轨是暂时可扩展的。包括在VvcPTLRecord中的时间层(下层或时间下层)的数量可以等于numTemporalLayers。numTemporalLayers等于1可以指示应用解码器配置记录的音轨不是暂时可扩展的。numTemporalLayers等于0可以指示不知道应用解码器配置记录的音轨是暂时可扩展的。
另外,VvcPTLRecord可以包括语法元素lengthSizeMinusOne。lengthSizeMinusOne加1可以指示应用解码器配置记录的流中的以字节为单位的VVC视频流样本中的NALUnitLength字段的长度。例如,一个字节的大小可以由0指示。字段的值应当是分别与1字节、2字节或4字节的编码长度相对应的0、1或3中的任一者。
另外,VvcPTLRecord可以包括语法元素ptl_present_flag。ptl_present_flag可以指示音轨是否包括与特定输出层集合相对应的VVC比特流。ptl_present_flag为第二值(例如,1)可以指示音轨包括与特定输出层集合相对应的VVC比特流。相比之下,ptl_present_flag为第一值(例如,0)可以指示音轨可以不包括与特定输出层集合相对应的VVC比特流,并且可以包括不形成输出层集合的一个或更多个单个层,或者除了TemporalId等于0的下层之外的单个下层。
另外,VvcPTLRecord可以包括语法元素num_sub_profiles。num_sub_profiles可以指示解码器配置记录中指示的较低简档的数量。
另外,VvcPTLRecord可以包括语法元素track_ptl。track_ptl可以指示由包括在音轨中的VVC比特流指示的输出层集合的PTL。
另外,VvcPTLRecord可以包括语法元素output_layer_set_idx。output_layer_set_idx可以指示被包括在音轨中的VVC比特流表达的输出层集合的索引。output_layer_set_idx可以用作VVC解码器的外部装置提供的变量TargetOlsIdx的值,以对被包括在音轨中的比特流进行解码。
另外,VvcPTLRecord可以包括语法元素chroma_format_present_flag。chroma_format_present_flag可以指示是否存在chroma_format_idc。chroma_format_present_flag为第一值(例如,0)可以指示chroma_format_idc不存在。相比之下,chroma_format_present_flag为第二值(例如,1)可以指示chroma_format_idc存在。
另外,VvcPTLRecord可以包括语法元素bit_depth_present_flag。bit_depth_present_flag可以指示是否存在bit_depth_minus8。bit_depth_present_flag为第一值(例如,0)可以指示bit_depth_minus8不存在。相比之下,bit_depth_present_flag为第二值(例如,1)可以指示bit_depth_minus8存在。
另外,VvcPTLRecord可以包括语法元素numArrays。numArrays可以指示所指示类型的NAL单元阵列的数量。
另外,VvcPTLRecord可以包括语法元素array_completeness。array_completeness可以指示是否以预定阵列存在给定类型的NAL单元。array_completeness为第一值(例如,0)可以指示可能不存在所指示类型的附加NAL单元。相比之下,array_completeness为第二值(例如,1)可以指示给定类型的所有NAL单元存在但不存在于流中。默认值和允许值可以由样本条目名称限制。
另外,VvcPTLRecord可以包括语法元素NAL_unit_type。NAL_unit_type可以指示下一阵列中的NAL单元的类型。NAL_unit_type可以被限制为采用指定DCI、VPS、SPS、PPS、APS、前缀SEI或后缀SEI NAL单元的值中的一者。
另外,VvcPTLRecord可以包括语法元素numNalus。numNalus可以指示被包括在应用解码器配置记录的流的解码器配置记录中的所指示类型的NAL单元的数量。SEI阵列应仅包括“声明性”性质的SEI消息,即,提供关于整个流的信息的消息。这种SEI的示例可以对应于用户数据SEI。
另外,VvcPTLRecord可以包括语法元素nalUnitLength。nalUnitLength可以指示NAL单元的以字节为单位的长度。NAL单元可以包括DCI、VPS、SPS、PPS、APS或声明性SEI NAL单元。
VVC比特流重构和数据共享
为了从承载多层VVC比特流的多个音轨的样本重构访问单元,可以首先确定操作点。当VVC比特流由多个音轨表示时,文件解析器可以通过以下处理识别所选操作点所需的音轨。
可以找到具有VVC样本条目的所有音轨。
当音轨包括对同一ID的‘oref’音轨引用时,ID可以被标识为VVC音轨或‘opeg’实体组。
这样的操作点可以选自‘opeg’实体组或适于解码容量和应用目的的‘vopi’样本组。
当‘opeg’实体组存在时,音轨集合可以准确地表示所选操作点。因此,可以从音轨集合重构和解码VVC比特流。
当‘opeg’实体组不存在时(即,当‘vopi’样本组存在时),可以找到对从‘vopi’和‘linf’样本组选择的操作点进行解码所需的音轨集合。
为了从承载VVC比特流的多个VVC音轨重构比特流,首先,需要确定作为最高目标值的TemporalId。当若干音轨包含针对访问单元的数据时,可以基于样本解码时间(即,不考虑编辑列表的时间至样本表)来执行音轨内的每个样本的对准。当VVC比特流由若干VVC音轨表示时,样本的解码时间应被设置为使得如果音轨被组合成按解码时间的升序对准的单个流,则访问单元顺序是正确的。可以根据隐式重构处理从所需音轨中的每个样本重构访问单元的序列。
当存在操作点信息样本组时,可以基于如在操作点信息和层信息样本组中指示的承载层和参考层来选择所需音轨。当存在操作点实体组时,可以基于关于OperatingPointGroupBox的信息来选择所需音轨。当重构VCL NAL单元包含TemporalId大于0的子层的比特流时,同一层内的所有子层(即,VCL NAL单元具有较小TemporalId的子层)可以被包括在所得比特流中。另外,可以选择所需音轨。当重构访问单元时,可以按nuh_layer_id值的升序将具有相同解码时间的样本的画面单元放置在访问单元中。
如果访问单元被重构为依赖层并且max_tid_il_ref_pics_plus1大于第一值(例如,0),则在所得比特流中可以包括参考层的子层,其中VCL NAL单元在同一层内具有max_tid_il_ref_pics_plus1-1或更小的TemporalId。另外,可以选择所需音轨。当访问单元被重构为依赖层并且max_tid_il_ref_pics_plus1等于第一值(例如,0)时,仅参考层的IRAP画面单元可以被包括在所得比特流中。另外,可以选择所需音轨。如果‘subp’音轨参考被包括在VVC音轨中,则可以利用针对序列结束(EOS)和比特流结束(EOB)NAL单元的附加约束来重构每个画面单元。可以按nuh_layer_id的升序针对目标操作点的每个层重复重构处理。否则,可以重构每个画面单元。可以将经重构的访问单元放置在VVC比特流中,以增加解码时间。另外,可以从VVC比特流移除EOB和EOS NAL单元的副本。
在属于被存储在VVC比特流的同一编码视频序列中并且被存储在若干音轨中的不同子层的访问单元的情况下,每个样本中可以存在包含具有特定nuh_layer_id值的EOSNAL单元的两个或更多个音轨。在这种情况下,仅EOS NAL单元中的一者应保持在最后重构比特流中的这些访问单元中的最后一者中并且将放置在除该访问单元的最后EOB NAL单元外的所有NAL单元之后。另外,可以丢弃其它EOS NAL单元。类似地,每个样本中可以存在包含EOB NAL单元的一个或更多个音轨。在这种情况下,仅EOB NAL单元中的一者应保持于最后重构比特流中并且应放置在该访问单元的结束处。另外,可以丢弃其它EOS NAL单元。
由于特定层或子层可以由一个或更多个音轨表示,所以当找到操作点所需的音轨时,可以从承载所有特定层或子层的音轨集合当中选择所需音轨。如果不存在操作点实体组,则在承载相同层或子层的音轨当中进行选择之后,最后所需音轨仍可以共同承载不属于目标操作点的一些层或子层。针对目标操作点的重构比特流将不包含在最后所需音轨中承载但不属于目标操作点的层或子层。VVC解码器配置可以使用与目标输出层集合索引相对应的比特流作为输入,所述目标输出层集合索引与目标操作点的TargetOlsIdx和HighestTid变量和最高TemporalId值相对应。文件解析器可以在重构比特流被发送到VVC解码器之前检查该重构比特流是否包括除了被包括在目标操作点中的层和子层之外的其它层和子层。
根据以上参照图9和图10描述的现有语法结构,通过针对操作点的循环重复地用信号通知包括输出层集合索引的输出层集合信息、被包括在输出层集合中的层(成员层)的列表以及指定成员层是否是输出层的标志。因此,由于可能重复地用信号通知重复信息,所以冗余和信令开销可能增加。
为了解决这一问题,本公开的实施方式可以包括以下配置中的至少一种配置:在这种情况下,上述配置可以单独实现或者可以以两个或更多个配置的组合来实现。
(配置1):在操作点的循环内用信号通知操作点信息时而不是用信号通知输出层集合信息(例如,索引、成员层、输出层标志等),可以在单独的循环中用信号通知输出层集合的列表。
(配置2):操作点的每个条目可以包括对输出层集合的循环中用信号通知的输出层集合信息的条目的索引。
(配置3):针对输出层集合的每个条目,可以用信号通知以下信息中的至少一者。
-指定在比特流内承载的VVC比特流的视频参数集(VPS)中定义的输出层集合的索引的索引。
-输出层集合中的层的数量
-输出层集合中的层id的列表
-针对每个层,指定它是否是输出层的标志
(配置4):可以存在关于输出层集合的模式的信息,并且该信息可以用于确定是否存在关于每个输出层集合条目的其它信息。
(配置5):当输出层集合模式信息是0或1时,针对输出层集合的每个条目,可以不存在关于输出层集合中的层的数量的信息,并且该信息可以被推断为与条目的索引相同的值。
(配置6):当输出层集合模式信息是0或1时,针对输出层集合的每个条目,可以不存在关于输出层集合的索引的信息,并且该信息可以被推断为等于条目的索引的值。
(配置7):可以存在指定哪个输出层集合条目具有稀疏(sparse)层id的标志。具有稀疏层id的输出层集合条目可以意指存在层id间隙。在这种情况下,输出层集合条目可以具有层id x和层id x+y(其中,y大于x),但是可以不具有层id k(其中,k大于x并且小于y)。在本公开中,标志可以称为sparse_layer_id_present_flag。
(配置8):当输出层集合模式信息是0或1并且sparse_layer_id_present_flag为0时,不存在输出层标志,并且可以将以下内容应用于输出层集合的每个条目。
-当输出层集合模式是0时,仅具有最高层id的层是输出层。
-当输出层集合模式是1时,所有层是输出层。
在下文中,将详细描述本公开的包括上述配置中的全部或一些配置的实施方式。
实施方式1
图12是例示根据本公开的实施方式的用信号通知操作点信息的语法结构VvcOperatingPointsRecord的图。图12的语法结构可以部分地等于/类似于图9的语法结构。在下文中,将主要描述与图9的语法结构的差异。
参照图12,VvcOperatingPointsRecord可以包括语法元素num_profile_tier_level_minus1。num_profile_tier_level_minus1加1可以指示后续简档、层级和级别(PTL)组合的数量以及与其相关联的字段。
此外,VvcOperatingPointsRecord可以包括语法元素ptl_max_temporal_id[i]。ptl_max_temporal_id[i]可以针对第i PTL结构指示关联比特流的NAL单元的最大TemporalID。这里,i可以大于或等于0并且小于或等于num_profile_tier_level_minus1的值。ptl_max_temporal_id[i]可以具有与稍后描述的max_temporal_id相同的值,但ptl_max_temporal_id[i]的语义可以不同于max_temporal_id的语义。
此外,VvcOperatingPointsRecord可以包括语法元素ptl[i]。ptl[i]可以指示第iPTL结构。这里,i可以大于或等于0并且小于或等于num_profile_tier_level_minus1的值。ptl[i]可以具有VvcPTLRecord(ptl_max_temporal_id[i]+1)的类类型。VvcPTLRecord语法结构如上文参照图11所描述的。
另外,VvcOperatingPointsRecord可以包括语法元素num_olss。num_olss可以指示VvcOperatingPointsRecord语法结构中存在的输出层集合的数量。
另外,VvcOperatingPointsRecord可以包括语法元素ols_mode_idc。ols_mode_idc可以指示存在于VvcOperatingPointsRecord语法结构中的输出层集合的模式。这里,输出层集合的模式可以例如在诸如ISO/IEC 23090-3的标准文档中定义。
另外,VvcOperatingPointsRecord可以包括语法元素sparse_layer_id_present_flag。sparse_layer_id_present_flag为第一值(例如,0)可以指示存在于VvcOperatingPointsRecord语法结构中的每个输出层中不存在层id间隙。相比之下,sparse_layer_id_present_flag为第二值(例如,1)可以指示不应用上述约束。换句话说,当sparse_layer_id_present_flag具有第二值(例如,1)时,存在于VvcOperatingPointsRecord语法结构中的每个输出层集合中可以存在层id间隙。
此外,VvcOperatingPointsRecord不包括上文参照图9所描述的语法元素each_layer_is_an_ols_flag和all_independent_layers_flag。因此,VvcOperatingPointsRecord可以与是否所有层被独立地编码(即,all_independent_layers_flag的值)无关地包括语法元素ols_mode_idc。在这方面,VvcOperatingPointsRecord可以与图9的情况不同,其中当all_independent_layers_flag具有第一值(例如,0)时,VvcOperatingPointsRecord包括语法元素ols_mode_idc,并且当all_independent_layers_flag具有第二值(例如,1)时,VvcOperatingPointsRecord包括语法元素each_layer_is_an_ols_flag。另外,VvcOperatingPointsRecord可以与图9的情况不同,因为它包括语法元素sparse_layer_id_present_flag。
另外,VvcOperatingPointsRecord可以包括语法元素plt_idx[i]。plt_idx[i]可以指示针对第i输出层集合的所列举的PTL结构的基于零的索引。这里,i可以等于或大于0,并且可以等于或小于num_olss的值。
另外,VvcOperatingPointsRecord可以包括语法元素output_layer_set_idx[i]。output_layer_set_idx[i]可以指示存在于由视频参数集(VPS)中的输出层集合的列表指定的VvcOperatingPointsRecord语法结构中的第i输出层集合的索引。这里,i可以等于或大于0,并且可以等于或小于num_olss的值。在一个示例中,当ols_mode_idc是2时,可以存在(或用信号通知)output_layer_set_idx[i]。在另一示例中,当ols_mode_idc是0或1时,可以存在output_layer_set_idx[i]。然而,本公开的实施方式不限于上述示例。例如,可以在ols_mode_idc是0至2时存在output_layer_set_idx[i],或可以与ols_mode_idc的值无关地存在output_layer_set_idx[i]。当不存在output_layer_set_idx[i]时,output_layer_set_idx[i]的值可以被推断为等于i的值。
另外,VvcOperatingPointsRecord可以包括语法元素layer_count[i]。layer_count[i]可以指示第i输出层集合中的层的数量。这里,i可以等于或大于0,并且小于num_olss的值。在一个示例中,当ols_mode_idc是2时,可以存在(或用信号通知)layer_count[i]。在另一示例中,当ols_mode_idc是0或1时,可以存在layer_count[i]。然而,本公开的实施方式不限于上述示例。例如,可以在ols_mode_idc是0至2时存在layer_count[i],或可以与ols_mode_idc的值无关地存在layer_count[i]。当不存在layer_count[i]时,layer_count[i]的值可以被推断为等于i+1的值。
另外,VvcOperatingPointsRecord可以包括语法元素layer_id[i][j]。layer_id[i][j]可以指示第i输出层集合中的第j层的nuh_layer_id值。这里,i可以等于或大于0并且小于num_olss的值,并且j可以等于或大于0并且小于layer_count的值。在一个示例中,当ols_mode_idc是2或sparse_layer_id_present_flag具有第二值(例如,1)时,可以存在(或用信号通知)layer_id[i][j]。然而,本公开的实施方式不限于上述示例。例如,可以在ols_mode_idc是0或1时存在layer_id[i][j],或可以与ols_mode_idc和sparse_layer_id_present_flag的值无关地存在layer_id[i][j]。当不存在layer_id[i][j]时,layer_id[i][j]的值可以被推断为等于j的值。
此外,VvcOperatingPointsRecord可以包括语法元素is_output_layer[i][j]。is_output_layer[i][j]为第一值(例如,0)可以指示第j层不是第i输出层集合中的输出层。相比之下,is_output_layer[i][j]为第二值(例如,1)可以指示第j层是第i输出层集合中的输出层。这里,i可以等于或大于0并且小于num_olss的值,并且j可以等于或大于0并且小于layer_count的值。在一个示例中,当ols_mode_idc是2或sparse_layer_id_present_flag具有第二值(例如,1)时,可以存在(或用信号通知)is_output_layer[i][j]。然而,本公开的实施方式不限于上述示例。例如,可以在ols_mode_idc是0或1时存在is_output_layer[i][j],或可以与ols_mode_idc和sparse_layer_id_present_flag的值无关地存在is_output_layer[i][j]。当不存在is_output_layer[i][j]时,is_output_layer[i][j]的值可以如下推断。
-当ols_mode_idc是1时,is_output_layer[i][j]的值可以被推断为第二值(例如,1)。
-相比之下,当is_output_layer[i][j]是0并且j是layer_count[i]-1时,is_output_layer[i][j]的值可以被推断为第二值(例如,1)。
-在其它情况下,is_output_layer[i][j]的值可以被推断为第一值(例如,0)。
此外,上述语法元素ptl_idx[i]、output_layer_set_idx[i]、layer_count[i]、layer_id[i][j]和is_output_layer[i][j]可以存在于针对输出层集合的循环(即,for(i=0;i<num_olss;i++))中。因此,包括在VvcOperatingPointsRecord中的语法元素的数量可以与输出层集合的数量(即,num_olss)相对应。在这方面,VvcOperatingPointsRecord可以与图9的情况不同,其中语法元素ptl_idx、output_layer_set_idx、layer_count、layer_id和is_outputlayer存在于针对操作点的循环(即,for(i=0;i<num_operating_points;i++))中。
另外,VvcOperatingPointsRecord可以包括语法元素num_operating_points。num_operating_points可以指示操作点的数量。
另外,VvcOperatingPointsRecord可以包括语法元素ols_idx。ols_idx可以指示与VvcOperatingPointsRecord语法结构中的输出层集合的列表中指定的操作点相关联的输出层集合的索引。ols_idx可以不同于上述语法元素output_layer_set_idx[i],因为它指示与操作点相关联的输出层集合的索引。
另外,VvcOperatingPointsRecord可以包括语法元素max_temporal_id。max_temporal_id可以指示对应操作点的NAL单元的最大TemporalId。这里,最大TemporalId可以具有与层信息样本组中指示的最大TemporalId的语义不同的语义。然而,这两者可以具有彼此相同的值。
另外,VvcOperatingPointsRecord可以包括语法元素frame_rate_info_flag、bit_rate_info_flag、avgFrameRate、constantFrameRate、maxBitRate、avgBitRate、max_layer_count、layerID、num_direct_ref_layers、direct_ref_layerID和max_tid_il_ref_pics_plus1。语法元素的语义如上文参照图9所描述的。
如上所述,根据本公开的实施方式1,可以不针对每个操作点而是针对每个输出层集合用信号通知关于输出层集合的信息(例如,output_layer_set_idx[i]、layer_count[i]等)。因此,可以防止信息的冗余的发生,并且可以进一步提高信令效率。
实施方式2
图13是例示根据本公开的一个实施方式的用信号通知操作点实体组的语法结构OperatingPointGroupBox的图。图13的语法结构可以部分地等于/类似于图10的语法结构。在下文中,将主要描述与图10的语法结构的差异。
参照图13,OperatingPointGroupBox可以包括语法元素num_profile_tier_level_minus1。num_profile_tier_level_minus1的语义如上文参照图10所描述的。
另外,OperatingPointGroupBox可以包括语法元素opeg_ptl[i]。opeg_ptl[i]可以指示第i PTL结构。这里,i可以等于或大于0并且可以等于或小于num_profile_tier_level_minus1的值。opeg_ptl[i]可以具有VvcPTLRecord(0)的类类型。VvcPTLRecord语法结构如上文参照图11所描述的。
另外,OperatingPointGroupBox可以包括语法元素num_olss、ols_mode_idc和sparse_layer_id_present_flag。语法元素的语义如上文参照图12所描述的。因为包括上述语法元素,OperatingPointGroupBox可以与图10的情况不同。
另外,OperatingPointGroupBox可以包括语法元素ptl_idx[i]。这里,i可以小于num_olss的值,该num_olss的值等于或大于0。语法元素的语义如上文参照图12所描述的。
另外,OperatingPointGroupBox可以包括语法元素ptl_idx[i]、ouput_layer_set_idx[i]和layer_count[i]。这里,i可以小于num_olss的值,该num_olss的值等于或大于0。语法元素的语义如上文参照图12所描述的。在一个示例中,当ols_mode_idc是0或1时,可以存在(或用信号通知)ouput_layer_set_idx[i]和layer_count[i]。在另一示例中,当ols_mode_idc是2时,可以存在ouput_layer_set_idx[i]和layer_count[i]。然而,本公开的实施方式不限于上述示例。例如,当ols_mode_idc是0至2时,可以存在ouput_layer_set_idx[i]和layer_count[i],或可以与ols_mode_idc的值无关地存在ouput_layer_set_idx[i]和layer_count[i]。此外,语法元素可以存在于针对输出层集合的循环(即,for(i=0;i<num_olss;i++))中。在这方面,OperatingPointGroupBox可以与图10的情况(其中语法元素ptl_idx、output_layer_set_idx和layer_count存在于操作点的循环(即,for(i=0;i<num_operating_points;i++))中)不同。
此外,OperatingPointGroupBox可以包括语法元素layer_id[i][j]和is_output_layer[i][j]。这里,i可以等于或大于0并且小于num_olss的值,并且j可以等于或大于0并且小于layer_count的值。语法元素的语义如上文参照图12所描述的。在一个示例中,当ols_mode_idc是2或sparse_layer_id_present_flag具有第二值(例如,1)时,可以存在(或用信号通知)layer_id[i][j]和is_output_layer[i][j]。然而,本公开的实施方式不限于上述示例。例如,当ols_mode_idc是0或1时,可以存在layer_id[i][j]和is_output_layer[i][j],或者可以与ols_mode_idc和sparse_layer_id_present_flag的值无关地存在layer_id[i][j]和is_output_layer[i][j]。此外,语法元素可以存在于针对输出层集合的循环(即,for(i=0;i<num_olss;i++))中。在这方面,OperatingPointGroupBox可以与图10的情况(其中语法元素layer_id和is_outputlayer存在于操作点的循环(即,for(i=0;i<num_operating_points;i++))中)不同。
另外,VvcOperatingPointsRecord可以包括指定操作点的数量的语法元素num_operating_points。
另外,VvcOperatingPointsRecord可以包括语法元素ols_idx、max_temporal_id、frame_rate_info_flag、bit_rate_info_flag、avgFrameRate、constantFrameRate、maxBitRate和avgBitRate。语法元素的语义如上文参照图12所描述的。
另外,VvcOperatingPointsRecord可以包括语法元素entity_count。entity_count可以指示存在于操作点中的音轨的数量。
另外,VvcOperatingPointsRecord可以包括语法元素entity_idx。entity_idx可以指示属于操作点的实体组中的entity_id列表的索引。
如上所述,根据本公开的实施方式2,可以不针对每个操作点而是针对每个输出层集合用信号通知关于输出层集合的信息(例如,output_layer_set_idx[i]、layer_count[i]等)。因此,可以防止信息的冗余的发生,并且可以进一步提高信令效率。
在下文中,将详细描述根据本公开的实施方式的生成/接收媒体文件的方法。
图14是例示根据本公开的实施方式的媒体文件接收方法的流程图。图14的每个步骤可以由媒体文件接收设备来执行。在一个示例中,媒体文件接收设备可以对应于图1的接收设备B。
参照图14,媒体文件接收设备可以从自媒体文件生成/发送设备接收的媒体文件获得视频数据的操作点信息(S1410)。在示例中,媒体文件可以具有诸如ISO基本媒体文件格式(ISO BMFF)、公共媒体应用格式(CMAF)等的文件格式。
媒体文件接收设备可以基于所获得的操作点信息处理视频数据(S1420)。这里,视频数据处理包括对媒体文件进行解封装的处理、从解封装的媒体文件获得视频数据的处理以及根据视频编解码器标准(例如,VVC标准)对所获得的视频数据进行解码的处理。
在一个实施方式中,步骤S1410可以包括获得指定视频数据的输出层集合的数量的第一信息(例如,num_olss)。步骤S1410可以包括基于第一信息获得关于输出层集合的第二信息(例如,ptl_idx[i]、output_layer_set_idx[i]、layer_count[i]、layer_id[i][j]、is_output_layer[i][j]等)。此外,步骤S1410可以包括获得指定针对输出层集合的操作点的数量的第三信息(例如,num_operating_points)。此外,步骤S1410可以包括基于第三信息获得关于与操作点相关联的输出层集合的第四信息(例如,ols_idx、max_temporal_id等)。
在一个实施方式中,第二信息的数量可以与输出层集合的数量相对应。
在一个实施方式中,第二信息可以包括指定针对输出层集合中的每一个的列出的PTL(简档、层级和级别)结构的索引的第一字段信息(或语法元素)。第一字段信息可以对应于例如上文参照图12和图13描述的ptl_idx。
此外,在一个实施方式中,第二信息可以包括指定输出层集合中的每一个的索引的第二字段信息。第二字段信息可以对应于例如上文参照图12和图13描述的output_layer_set_idx[i]。
此外,在一个实施方式中,第二信息可以包括指定被包括在输出层集合中的每一个中的层的数量的第三字段信息。例如,第三字段信息可以对应于上文参照图12和图13描述的layer_count[i]。
另外,在一个实施方式中,可以包括指定被包括在输出层集合中的每一个中的每个层的nuh_layer_id的第四字段信息。第四字段信息可以对应于例如上文参照图12和图13描述的layer_id[i][j]。
此外,在一个实施方式中,第二信息可以包括指定被包括在输出层集合中的每一个中的每个层是否是输出层的第五字段信息。第五字段信息可以对应于例如上文参照图12和图13描述的is_output_layer[i][j]。
在一个实施方式中,第四信息的数量可以对应于操作点的数量。
在一个实施方式中,第四信息可以包括指定与操作点中的每一个相关联的输出层集合的索引的第六字段信息。第六字段信息可以对应于例如上文参照图12和图13描述的ols_idx。
此外,在一个实施方式中,第四信息可以包括指定操作点中的每一个的网络抽象层(NAL)单元的最大TemporalId的第七字段信息。第七字段信息可以对应于例如上文参照图12和图13描述的max_temporal_id。
图15是例示根据本公开的实施方式的媒体文件生成方法的流程图。图15的每个步骤可以由媒体文件生成设备执行。在一个示例中,媒体文件生成设备可以对应于图1的发送设备A。
参照图15,媒体文件生成设备可以对视频数据进行编码(S1510)。在示例中,可以根据视频编解码器标准(例如,VVC标准)通过预测、变换和量化过程来对视频数据进行编码。
媒体文件生成设备可以生成经编码的视频数据的操作点信息(S1520)。在示例中,可以在上文参照图12描述的VvcOperatingPointsRecord语法结构中配置操作点信息。另外,可以在上文参照图13描述的OperatingPointGroupBox语法结构中配置操作点信息。
媒体文件生成设备可以基于经编码的视频数据和操作点信息生成媒体文件(S1530)。在示例中,媒体文件可以具有诸如ISO基本媒体文件格式(ISO BMFF)、公共媒体应用格式(CMAF)等的文件格式。
在一个实施方式中,步骤S1520可以包括生成指定经编码的视频数据的输出层集合的数量的第一信息。此外,步骤S1520可以包括基于第一信息生成关于输出层集合的第二信息。此外,步骤S1520可以包括生成指定输出层集合的操作点的数量的第三信息。此外,步骤S1520可以包括基于第三信息生成关于与操作点相关联的输出层集合的第四信息。
在一个实施方式中,第二信息的数量可以与输出层集合的数量(例如,num_olss)相对应。在这种情况下,第二信息可以包括第一字段信息至第五字段信息中的至少一者。第一字段信息至第五字段信息的细节如上文参照图14所描述的。
在一个实施方式中,第四信息的数量可以与操作点的数量(例如,num_operating_points)相对应。在这种情况下,第四信息可以包括第六字段信息或第七字段信息中的至少一者。第六字段信息或第七字段信息的细节如上文参照图14所描述的。
所生成的媒体文件可以通过记录介质或网络发送至媒体文件接收设备。
如上所述,根据本公开的实施方式,可以针对每个输出层集合用信号通知而不是针对每个操作点用信号通知关于输出层集合的信息。也就是说,关于输出层集合的信息的数量可以对应于输出层集合的数量。因此,可以防止信息的冗余(其可能在每个输出层集合包括多个操作点时发送),并且进一步提高信令效率。
图16是示出可应用本公开的实施方式的内容流系统的图。
如图16中所示,应用本公开的实施方式的内容流系统可以主要包括编码服务器、流服务器、网络服务器、媒体存储装置、用户装置和多媒体输入装置。
编码服务器将从诸如智能电话、相机、摄像机等多媒体输入装置输入的内容压缩成数字数据以生成比特流并将该比特流发送到流服务器。作为另一示例,当智能电话、相机、摄像机等多媒体输入装置直接生成比特流时,可以省略编码服务器。
比特流可以由应用本公开的实施方式的图像编码方法或图像编码设备产生,并且流服务器可以在发送或接收比特流的过程中暂时存储比特流。
流服务器基于用户通过网络服务器的请求将多媒体数据发送到用户装置,并且网络服务器用作向用户告知服务的媒介。当用户向网络服务器请求所需的服务时,网络服务器可以将其递送到流服务器,并且流服务器可以向用户发送多媒体数据。在这种情况下,内容流系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流系统中的装置之间的命令/响应。
流服务器可以从媒体存储装置和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时接收内容。在这种情况下,为了提供平滑的流服务,流服务器可以在预定时间内存储比特流。
用户装置的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航设备、板式PC、平板PC、超级本、可穿戴装置(例如,智能手表、智能眼镜、头戴式显示器)、数字电视、台式计算机、数字标牌等。
内容流系统中的各个服务器可以作为分布式服务器运行,在这种情况下,从各个服务器接收的数据可以被分布。
本公开的范围包括用于使根据各种实施方式的方法的操作能够在设备或计算机上执行的软件或机器可执行命令(例如,操作系统、应用、固件、程序等)、具有存储在其上并且可在设备或计算机上执行的此类软件或命令的非暂时性计算机可读介质。
工业适用性
本公开的实施方式可以用于生成并发送/接收媒体文件。

Claims (16)

1.一种由媒体文件接收设备执行的媒体文件接收方法,所述媒体文件接收设备用于接收预定格式的媒体文件,所述媒体文件包括视频数据,所述方法包括以下步骤:
从媒体文件获得视频数据的操作点信息;以及
基于所获得的操作点信息对所述视频数据进行处理,
其中,获得所述操作点信息的步骤包括以下步骤:
获得指定所述视频数据的输出层集合的数量的第一信息;
基于所述第一信息获得关于所述输出层集合的第二信息;
获得指定针对所述输出层集合的操作点的数量的第三信息;以及
基于所述第三信息获得关于与所述操作点相关联的输出层集合的第四信息。
2.根据权利要求1所述的方法,其中,所述第二信息的数量对应于所述输出层集合的数量。
3.根据权利要求1所述的方法,其中,所述第二信息包括第一字段信息,所述第一字段信息指定针对所述输出层集合中的每一个的列出的简档、层级和级别PTL结构的索引。
4.根据权利要求1所述的方法,其中,所述第二信息包括指定所述输出层集合中的每一个的索引的第二字段信息。
5.根据权利要求1所述的方法,其中,所述第二信息包括指定包括在所述输出层集合中的每一个中的层的数量的第三字段信息。
6.根据权利要求1所述的方法,其中,所述第二信息包括指定包括在所述输出层集合中的每一个中的每个层的nuh_layer_id的第四字段信息。
7.根据权利要求1所述的方法,其中,所述第二信息包括指定包括在所述输出层集合中的每一个中的每个层是否是输出层的第五字段信息。
8.根据权利要求1所述的方法,其中,所述第四信息的数量对应于所述操作点的数量。
9.根据权利要求1所述的方法,其中,所述第四信息包括指定与所述操作点中的每一个相关联的输出层集合的索引的第六字段信息。
10.根据权利要求1所述的方法,其中,所述第四信息包括指定所述操作点中的每一个的网络抽象层NAL单元的最大TemporalId的第七字段信息。
11.一种媒体文件接收设备,所述媒体文件接收设备包括存储器和至少一个处理器,所述至少一个处理器被配置为进行以下操作:
从媒体文件获得视频数据的操作点信息;以及
基于所获得的操作点信息对所述视频数据进行处理,
其中,所述操作点信息是通过以下操作获得的:
获得指定所述视频数据的输出层集合的数量的第一信息;
基于所述第一信息获得关于所述输出层集合的第二信息;
获得指定针对所述输出层集合的操作点的数量的第三信息;以及
基于所述第三信息获得关于与所述操作点相关联的输出层集合的第四信息。
12.一种由媒体文件生成设备执行的媒体文件生成方法,所述媒体文件生成设备用于生成预定格式的媒体文件,所述媒体文件包括视频数据,所述方法包括以下步骤:
对视频数据进行编码;
生成经编码的视频数据的操作点信息;以及
基于所述经编码的视频数据和所生成的操作点信息生成媒体文件,
其中,生成所述操作点信息的步骤包括以下步骤:
生成指定所述经编码的视频数据的输出层集合的数量的第一信息;
基于所述第一信息生成关于所述输出层集合的第二信息;
生成指定针对所述输出层集合的操作点的数量的第三信息;以及
基于所述第三信息生成关于与所述操作点相关联的输出层集合的第四信息。
13.根据权利要求12所述的方法,其中,所述第二信息的数量对应于输出层集合的数量。
14.根据权利要求12所述的方法,其中,所述第四信息的数量对应于所述操作点的数量。
15.一种发送通过根据权利要求12所述的媒体文件生成方法生成的媒体文件的方法。
16.一种媒体文件生成设备,所述媒体文件生成设备包括存储器和至少一个处理器,所述至少一个处理器被配置为进行以下操作:
对视频数据进行编码;
生成经编码的视频数据的操作点信息;以及
基于所述经编码的视频数据和所生成的操作点信息生成媒体文件,其中,所述操作点信息是通过以下操作生成的:
生成指定所述经编码的视频数据的输出层集合的数量的第一信息;
基于所述第一信息生成关于所述输出层集合的第二信息;
生成指定针对所述输出层集合的操作点的数量的第三信息;以及
基于所述第三信息生成关于与所述操作点相关联的输出层集合的第四信息。
CN202180066098.9A 2020-09-29 2021-09-29 生成/接收包括输出层集合信息的媒体文件的方法和设备及发送媒体文件的方法 Pending CN116235502A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063084574P 2020-09-29 2020-09-29
US63/084,574 2020-09-29
US202063087287P 2020-10-04 2020-10-04
US63/087,287 2020-10-04
PCT/KR2021/013347 WO2022071754A1 (ko) 2020-09-29 2021-09-29 출력 계층 세트 정보를 포함하는 미디어 파일 생성/수신 방법, 장치 및 미디어 파일 전송 방법

Publications (1)

Publication Number Publication Date
CN116235502A true CN116235502A (zh) 2023-06-06

Family

ID=80951504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180066098.9A Pending CN116235502A (zh) 2020-09-29 2021-09-29 生成/接收包括输出层集合信息的媒体文件的方法和设备及发送媒体文件的方法

Country Status (3)

Country Link
US (1) US20230336783A1 (zh)
CN (1) CN116235502A (zh)
WO (1) WO2022071754A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation
CN105594209B (zh) * 2013-10-08 2019-08-06 夏普株式会社 图像解码装置、图像解码方法以及图像编码装置
US20160373771A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Design of tracks and operation point signaling in layered hevc file format
US10034010B2 (en) * 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format

Also Published As

Publication number Publication date
WO2022071754A1 (ko) 2022-04-07
US20230336783A1 (en) 2023-10-19

Similar Documents

Publication Publication Date Title
JP6932144B2 (ja) Hevcおよびl−hevcファイルフォーマットでのタイルグルーピングおよびサンプルのマッピング
US10306253B2 (en) Signaling of parameter sets in files of multi-layer bitstreams
AU2016340116B2 (en) Alignment of operation point sample group in multi-layer bitstreams file format
JP6559663B2 (ja) マルチレイヤビデオファイルフォーマットの設計
EP3363204A1 (en) Support of random access and switching of layers and sub-layers in multi-layer video files
AU2018208576A1 (en) Signaling of important video information in file formats
JP2023517440A (ja) ビデオコーディングのためのビデオデータの記憶および配信
US20220201308A1 (en) Media file processing method and device therefor
US20240056618A1 (en) Method and device for generating/receiving media file including nal unit array information, and method for transmitting media file
US20230336761A1 (en) Method for processing media file and device therefor
US20230379481A1 (en) Media file generation/reception method and device for signaling operating point information and output layer set information, and computer-readable recording medium in which media file is stored
US20230336751A1 (en) Method and apparatus for generating/receiving media file which signals output layer set information, and computer-readable recording medium storing media file
US20230336783A1 (en) Method and device for generating/receiving media file including output layer set information, and method for transmitting media file
US20230319374A1 (en) Method and device for creating/receiving media file containing layer information, and media file transfer method
EP4266689A1 (en) Method and device for generating/receiving media file including nal unit information, and method for transmitting media file
US20240056578A1 (en) Media file generation/reception method and apparatus supporting random access in units of samples, and method for transmitting media file
US20240064323A1 (en) Media file generation/reception method and device for signaling subpicture id information, and computer-readable recording medium in which media file is stored
EP4329315A1 (en) Method and device for generating/receiving media file on basis of eos sample group, and method for transmitting media file
US20230328261A1 (en) Media file processing method and device therefor
US20230362456A1 (en) Media file processing method and device
US20240040169A1 (en) Media file processing method and device therefor
US20240089518A1 (en) Media file processing method and device
CN117223290A (zh) 用于基于eos样本组生成/接收媒体文件的方法和设备以及用于发送媒体文件的方法

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