Method and apparatus for generating / receiving media file and method for transmitting media file

By generating and processing operation point information for video data, the problem of high cost in storing and transmitting high-resolution images is solved, enabling efficient media file processing and transmission.

CN116235502BActive Publication Date: 2026-05-15LG ELECTRONICS INC
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
LG ELECTRONICS INC
Filing Date
2021-09-29
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

With the increasing demand for high-resolution and high-quality images, existing technologies face challenges in terms of storage and transmission costs, and are constrained by hardware and network resources. There is a need to improve the efficiency of media file processing and prevent redundancy of information in the output layer.

Method used

By obtaining the operation point information of the video data, a specified output layer set and operation point quantity information are generated, and encoding and decoding processes are performed to generate media files and effectively store and transmit them.

Benefits of technology

It improves the efficiency of sending and receiving media files, prevents redundancy of output layer collection information, and achieves more efficient file processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116235502B_ABST
    Figure CN116235502B_ABST
Patent Text Reader

Abstract

Methods and apparatuses of generating / receiving a media file signaling operation point information and a method of transmitting a media file are provided. A method of receiving a media file according to the disclosure can include the steps of obtaining operation point information on video data from the media file; and processing the video data based on the obtained operation point information, wherein the step of obtaining the operation point information can include the steps of obtaining first information indicating a number of output layer sets of the video data; obtaining second information related to the output layer sets based on the first information; obtaining third information indicating a number of operation points of the output layer sets; and obtaining fourth information related to the output layer sets associated with the operation points based on the third information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to a media file generation / receiving method and apparatus, and more specifically, to a method and apparatus for generating / receiving a media file including output layer set information, and a method for transmitting a media file generated by the media file generation method / apparatus of this disclosure. Background Technology

[0002] Recently, there has been an increasing demand for high-resolution and high-quality images, such as 360-degree images. As image resolution or quality increases, file size or frame rate also increases, inevitably leading to higher storage and transmission costs. Furthermore, with the growing popularity of mobile devices such as smartphones and tablet PCs, the demand for network-based multimedia services is rapidly increasing. However, there are limitations in the hardware and network resources available for multimedia services.

[0003] Therefore, there is a need for efficient image compression and file processing technologies to store and transmit image data more effectively. Summary of the Invention

[0004] Technical issues

[0005] One object of this disclosure is to provide a method and apparatus for generating / receiving media files with improved file processing efficiency.

[0006] Furthermore, one object of this disclosure is to provide a media file generation / reception method and apparatus that can prevent redundancy of output layer set information and improve file sending / receiving efficiency.

[0007] Furthermore, one object of this disclosure is to provide a method for transmitting media files generated by a media file generation method or device according to this disclosure.

[0008] Furthermore, one object of this disclosure is to provide a recording medium for storing media files generated by a media file generation method or device according to this disclosure.

[0009] Furthermore, one object of this disclosure is to provide a recording medium for storing media files received by a media file receiving device according to this disclosure and used for reconstructing images.

[0010] The technical problems solved by this disclosure are not limited to those described above, and other technical problems not described herein will become clear to those skilled in the art through the following description.

[0011] Technical solution

[0012] A media file receiving method according to one aspect of this disclosure may include the following steps: obtaining operation point information of video data from a media file and processing the video data based on the obtained operation point information. The step of obtaining the operation point information may include the following steps: obtaining first information specifying the number of output layer sets of the video data; obtaining second information about the output layer sets based on the first information; obtaining third information specifying the number of operation points of the output layer sets; and obtaining fourth information about the output layer sets associated with the operation points based on the third information.

[0013] According to another aspect of this disclosure, a media file receiving device may include a memory and at least one processor. The at least one processor may obtain operation point information of video data from the media file and process the video data based on the obtained operation point information. The operation point information may be obtained by: obtaining first information specifying the number of output layer sets of the video data; obtaining second information about the output layer sets based on the first information; obtaining third information specifying the number of operation points of the output layer sets; and obtaining fourth information about the output layer sets associated with the operation points based on the third information.

[0014] A media file generation method according to another aspect of this disclosure may include the following steps: encoding video data; generating operation point information of the encoded video data; and generating a media file based on the encoded video data and the generated operation point information. The step of generating the operation point information may include: generating first information specifying the number of output layer sets of the encoded video data; generating second information about the output layer sets based on the first information; generating third information specifying the number of operation points of the output layer sets; and generating fourth information about the output layer sets associated with the operation points based on the third information.

[0015] In another aspect of the media file transmission method according to this disclosure, a media file generated by the media file generation method or device of this disclosure can be transmitted.

[0016] According to another aspect of this disclosure, a computer-readable recording medium can store media files generated by the media file generation method or apparatus of this disclosure.

[0017] A media file generation apparatus according to another aspect of this disclosure may include a memory and at least one processor. The at least one processor may encode video data, generate operation point information for the encoded video data, and generate a media file based on the encoded video data and the generated operation point information. The operation point information may be generated by: obtaining first information specifying the number of output layer sets of the encoded video data; obtaining second information about the output layer sets based on the first information; obtaining third information specifying the number of operation points for the output layer sets; and obtaining fourth information about the output layer sets associated with the operation points based on the third information.

[0018] The features described above in the brief overview of this disclosure are merely exemplary aspects of the following detailed description of this disclosure and do not limit the scope of this disclosure.

[0019] Beneficial effects

[0020] According to this disclosure, a method and apparatus for generating / receiving media files with improved file processing efficiency can be provided.

[0021] According to this disclosure, a media file generation / reception method and apparatus can be provided that can prevent redundancy of output layer set information and improve file sending / receiving efficiency.

[0022] According to this disclosure, a method for sending media files generated by a media file generation method or device according to this disclosure can be provided.

[0023] According to this disclosure, a recording medium may be provided for storing media files generated by a media file generation method or apparatus according to this disclosure.

[0024] According to this disclosure, a recording medium can be provided for storing media files received by a media file receiving device according to this disclosure and used for reconstructing images.

[0025] Those skilled in the art will understand that the effects achievable through this disclosure are not limited to those specifically described above, and that other advantages of this disclosure will become clearer from the detailed description. Attached Figure Description

[0026] Figure 1 This is a diagram that schematically illustrates a media file sending / receiving system according to an embodiment of the present disclosure.

[0027] Figure 2 This is a flowchart illustrating a method for sending media files.

[0028] Figure 3 This is a flowchart illustrating a method for receiving media files.

[0029] Figure 4 This is a diagram that schematically illustrates an image encoding device according to an embodiment of the present disclosure.

[0030] Figure 5 This is a diagram that schematically illustrates an image decoding device according to an embodiment of the present disclosure.

[0031] Figure 6 This is a diagram illustrating an example of a layered structure for an encoded image / video.

[0032] Figure 7 This is a diagram illustrating an example of a media file structure.

[0033] Figure 8 This is a diagram illustrating an example of image signal structure.

[0034] Figure 9 This is a diagram illustrating an example of the syntax structure VvcOperatingPointsRecord, which uses signals to notify operation point information.

[0035] Figure 10 This is a diagram illustrating an example of the syntax structure OperatingPointGroupBox for signaling a group of operation point entities.

[0036] Figure 11 This is a diagram illustrating an example of the syntax structure VvcPTLRecord that uses signals to notify PTL records.

[0037] Figure 12 This is a diagram illustrating the syntax structure VvcOperatingPointsRecord for signaling operation point information according to an embodiment of this disclosure.

[0038] Figure 13 This is a diagram illustrating the syntax structure OperatingPointGroupBox for signaling operation point entity groups according to an embodiment of this disclosure.

[0039] Figure 14 This is a flowchart illustrating a media file receiving method according to an embodiment of the present disclosure.

[0040] Figure 15 This is a flowchart illustrating a media file generation method according to an embodiment of the present disclosure.

[0041] Figure 16 This is a diagram illustrating how embodiments of this disclosure can be applied to content streaming systems. Detailed Implementation

[0042] In the following, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings to facilitate implementation by those skilled in the art. However, the present disclosure can be implemented in various different forms and is not limited to the embodiments described herein.

[0043] In describing this disclosure, detailed descriptions of relevant known functions or constructions will be omitted if they unnecessarily obscure the scope of this disclosure. In the accompanying drawings, portions irrelevant to the description of this disclosure are omitted, and similar reference numerals are assigned to similar portions.

[0044] In this disclosure, when a component is “connected,” “linked,” or “coupled” to another component, it may include not only a direct connection but also an indirect connection with intermediate components. Furthermore, when a component “comprises” or “has” other components, unless otherwise stated, it is intended to include, but not exclude, other components.

[0045] In this disclosure, the terms first, second, etc., are used only for the purpose of distinguishing one component from other components, and do not limit the order or importance of the components unless otherwise stated. Accordingly, within the scope of this disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and similarly, a second component in one embodiment may be referred to as a first component in another embodiment.

[0046] In this disclosure, the distinguishing components are intended to clearly describe each feature and do not imply that the components must be separate. That is, multiple components may be integrated and implemented in a single hardware or software unit, or a single component may be distributed and implemented in multiple hardware or software units. Therefore, unless otherwise specified, implementations of these component integrations or distributions are included within the scope of this disclosure.

[0047] In this disclosure, the components described in the various embodiments are not necessarily essential components, and some components may be optional. Therefore, embodiments consisting of a subset of the components described in the embodiments are also included within the scope of this disclosure. In addition, embodiments that include other components besides those described in the various embodiments are also included within the scope of this disclosure.

[0048] This disclosure relates to the encoding and decoding of images. Unless redefined in this disclosure, the terms used herein may have the general meaning commonly used in the art to which this disclosure pertains.

[0049] In this disclosure, a "picture" generally refers to a unit representing an image within a specific time period, and a slice / tile is a coding unit that constitutes part of a picture; a picture can consist of one or more slices / tiles. Additionally, a slice / tile may include one or more coding tree units (CTUs).

[0050] In this disclosure, "pixel" or "pixel" can refer to the smallest unit that constitutes a frame (or image). Furthermore, "sample" can be used as a term corresponding to a pixel. A sample can generally represent a pixel or a pixel value, or it can represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chrominance component.

[0051] In this disclosure, "unit" can refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information associated with that region. In some cases, the term "unit" may be used interchangeably with terms such as "sample array," "block," or "region." Generally, an M×N block may include a set (or array) of samples (or transform coefficients) with M columns and N rows.

[0052] In this disclosure, "current block" can mean one of "current coding block," "current coding unit," "coding target block," "decoding target block," or "processing target block." When performing prediction, "current block" can mean "current prediction block" or "prediction target block." When performing transform (inverse transform) / quantization (dequantization), "current block" can mean "current transform block" or "transform target block." When performing filtering, "current block" can mean "filter target block."

[0053] Furthermore, in this disclosure, unless explicitly stated as a chroma block, "current block" may mean a block that includes both luma component blocks and chroma component blocks, or "the luma block of the current block." The luma component block of the current block can be represented by an explicit description including terms such as "luma block" or "current luma block." Similarly, "the chroma component block of the current block" can be represented by an explicit description including terms such as "chroma block" or "current chroma block."

[0054] In this disclosure, the terms “ / ” or “,” can be interpreted as indicating “and / or”. For example, “A / B” and “A, B” can mean “A and / or B”. Furthermore, “A / B / C” and “A / B / C” can mean “at least one of A, B and / or C”.

[0055] In this disclosure, the term "or" should be interpreted to indicate "and / or". For example, the expression "A or B" can include 1) only "A", 2) only "B", or 3) both "A and B". In other words, in this disclosure, "or" should be interpreted to indicate "additionally or alternatively".

[0056] Overview of Media File Sending / Receiving Systems

[0057] Figure 1 This is a diagram that schematically illustrates a media file sending / receiving system according to an embodiment of the present disclosure.

[0058] Reference Figure 1 The media file sending / receiving system 1 may include a sending device A and a receiving device B. In some embodiments, the media file sending / receiving system 1 may support adaptive streaming based on MPEG-DASH (HTTP Dynamic Adaptive Streaming), thereby supporting seamless media content reproduction.

[0059] The transmitting device A may include a video source 10, an encoder 20, an encapsulation unit 30, a transmitting processor 40, and a transmitter 45.

[0060] Video source 10 can generate or acquire media data such as video or images. For this purpose, video source 10 may include a video / image capturing device and / or a video / image generating device, or it may be connected to an external device to receive media data.

[0061] Encoder 20 can encode media data received from video source 10. Encoder 20 can perform a series of processes such as prediction, transformation, and quantization according to video codec standards for compression and coding efficiency (e.g., the Universal Video Coding (VVC) standard). Encoder 20 can output the encoded media data as a bitstream.

[0062] Encapsulation unit 30 can encapsulate encoded media data and / or media data-related metadata. For example, encapsulation unit 30 can encapsulate data in file formats (e.g., ISO BMFF or Common Media Application Format (CMAF)) or process data in segmented form. In some embodiments, media data encapsulated in the form of a file (hereinafter referred to as a "media file") can be stored in a storage unit (not shown). The media file stored in the storage unit can be read by the transmitting processor 40 and transmitted to the receiving device B according to an on-demand, non-real-time (NRT) or broadband method.

[0063] The transmitting processor 40 can generate an image signal by processing the media file according to any transmitting method. The media file transmitting method can include broadcasting and broadband methods.

[0064] Depending on the broadcast method, media files can be sent using either the MPEG Media Transfer (MMT) protocol or the One-Way Real-Time Object Transfer (ROUTE) protocol. The MMT protocol can be a transport protocol that supports media streaming regardless of file format or codec in an IP-based network environment. When using the MMT protocol, media files can be processed in a Media Processing Unit (MPU) based on MMT, and then sent according to the MMT protocol. The ROUTE protocol is an extension of One-Way File Transfer (FLUTE) and can be a transport protocol that supports real-time transmission of media files. When using the ROUTE protocol, media files can be processed into one or more segments based on MPEG-DASH, and then sent according to the ROUTE protocol.

[0065] According to the broadband approach, media files can be sent over a network using HTTP (Hypertext Transfer Protocol). Information sent via HTTP can include signaling metadata, segmentation information, and / or non-real-time (NRT) service information.

[0066] In some implementations, the sending processor 40 may include an MPD generator 41 and a segment generator 42 to support adaptive media streaming.

[0067] MPD generator 41 can generate a Media Presentation Description (MPD) based on a media file. An MPD is a file that includes detailed information about the media presentation and can be expressed in XML format. The MPD can provide signaling metadata such as identifiers for each segment. In this case, receiving device B can dynamically obtain segments based on the MPD.

[0068] Segment generator 42 can generate one or more segments based on a media file. Segments may include actual media data and may have a file format such as ISO BMFF. Segments may be included in a representation of the image signal, and as described above, segments can be identified based on MPD.

[0069] In addition, the transmitting processor 40 can generate image signals according to the MPEG-DASH standard based on the generated MPD and segments.

[0070] Transmitter 45 can send the generated image signal to receiving device B. In some embodiments, transmitter 45 can send the image signal to receiving device B via an IP network according to the MMT standard or the MPEG-DASH standard. According to the MMT standard, the image signal sent to receiving device B may include a Presentation Information Document (PI) containing reproduction information of media data. According to the MPEG-DASH standard, the image signal sent to receiving device B may include the aforementioned MPD as reproduction information of media data. However, in some embodiments, the MPD and segments may be sent to receiving device B separately. For example, a first image signal including the MPD may be generated by transmitting device A or an external server and sent to receiving device B, while a second image signal including segments may be generated by transmitting device A and sent to receiving device B.

[0071] Furthermore, despite Figure 1 The transmitting processor 40 and the transmitter 45 are illustrated as separate elements, but in some embodiments, they can be implemented as a single, integrated element. Furthermore, the transmitting processor 40 can be implemented as an external device (e.g., a DASH server) separate from the transmitting device A. In this case, the transmitting device A can operate as a source device that generates media files by encoding media data, and the external device can operate as a server device that generates image signals by processing media data according to any transmission protocol.

[0072] Next, receiving device B may include receiver 55, receiving processor 60, decapsulation unit 70, decoder 80, and renderer 90. In some embodiments, receiving device B may be an MPEG-DASH based client.

[0073] Receiver 55 can receive image signals from transmitting device A. Image signals according to the MMT standard may include PI documents and media files. Additionally, image signals according to the MPEG-DASH standard may include MPDs and segments. In some implementations, MPDs and segments may be transmitted separately using different image signals.

[0074] The receiver processor 60 can extract / parse media files by processing the received image signals according to the transmission protocol.

[0075] In some implementations, the receiving processor 60 may include an MPD parsing unit 61 and a segmentation parsing unit 62 to support adaptive media stream transmission.

[0076] MPD parsing unit 61 can obtain MPD from the received image signal and parse the obtained MPD to generate commands required for segmentation. Furthermore, MPD parsing unit 61 can obtain media data reproduction information (e.g., color conversion information) based on the parsed MPD.

[0077] The segmentation parsing unit 62 can obtain segments based on the parsed MPD and parse the obtained segments to extract the media file. In some embodiments, the media file may have a file format such as ISO BMFF or CMAF.

[0078] The decapsulation unit 70 can decapsulate the extracted media file to obtain media data and associated metadata. The obtained metadata can be in the form of file format frames or audio tracks. In some embodiments, the decapsulation unit 70 can receive the metadata required for decapsulation from the MPD parsing unit 61.

[0079] Decoder 80 can decode the acquired media data according to a video codec standard (e.g., the VVC standard). To this end, decoder 80 can perform a series of processes such as prediction, inverse quantization, and inverse transform corresponding to the operations of encoder 20.

[0080] The renderer 90 can render media data such as decoded video or images. The rendered media data can be reproduced through a display unit (not shown).

[0081] The methods for sending / receiving media files will be described in detail below.

[0082] Figure 2 This is a flowchart illustrating a method for sending media files.

[0083] In one example Figure 2 Each step can be made by Figure 1 The transmitting device A performs this operation. Specifically, step S210 can be performed by... Figure 1 The encoder 20 performs the operation. Furthermore, steps S220 and S230 can be performed by the transmitting processor 40. Additionally, step S240 can be performed by the transmitter 45.

[0084] Reference Figure 2 The transmitting device can encode media data such as video or images (S210). The media data can be captured / generated by the transmitting device or obtained from an external device (e.g., a camera, video archive, etc.). The media data can be encoded in bitstream form according to a video codec standard (e.g., the VVC standard).

[0085] The transmitting device can generate an MPD and one or more segments based on the encoded media data (S220). As described above, the MPD may include detailed information about media presentation. The segments may contain actual media data. In some implementations, the media data may be encapsulated in a file format such as ISO BMFF or CMAF and included in the segments.

[0086] The transmitting device can generate an image signal including the generated MPD and segments (S230). In some embodiments, the image signal can be generated separately for each of the MPD and segments. For example, the transmitting device can generate a first image signal including the MPD and a second image signal including the segments.

[0087] The transmitting device can send the generated image signal to the receiving device (S240). In some embodiments, the transmitting device can transmit the image signal using a broadcast method. In this case, an MMT protocol or a ROUTE protocol can be used. Alternatively, the transmitting device can transmit the image signal using a broadband method.

[0088] In addition, although Figure 2 In this embodiment, the MPD and the image signal including the MPD are described as being generated and transmitted by the transmitting device (steps S220 to S240). However, in some embodiments, the MPD and the image including the MPD may be generated and transmitted by an external server different from the transmitting device.

[0089] Figure 3 This is a flowchart illustrating a method for receiving media files.

[0090] In the example, Figure 3 Each step can be made by Figure 1 The receiving device B performs the operation. Specifically, step S310 can be performed by receiver 55. Furthermore, step S320 can be performed by receiving processor 60. Additionally, step S330 can be performed by decoder 80.

[0091] Reference Figure 3 The receiving device can receive image signals from the transmitting device (S310). Image signals according to the MPEG-DASH standard may include MPDs and segments. In some implementations, MPDs and segments can be received separately from different image signals. For example, they can be received from... Figure 1 The transmitting device or external server receives the first image signal, including the MPD, and can receive it from... Figure 1 The transmitting device receives a second image signal that includes segments.

[0092] The receiving device can extract the MPD and segments from the received image signal, and parse the extracted MPD and segments (S320). Specifically, the receiving device can parse the MPD to generate commands needed to obtain the segments. Then, the receiving device can obtain the segments based on the parsed MPD, and parse the obtained segments to obtain media data. In some embodiments, the receiving device can perform decapsulation on the media data in the file format to obtain media data from the segments.

[0093] The receiving device can decode media data such as acquired video or images (S330). The receiving device can perform a series of processes such as inverse quantization, inverse transform, and prediction to decode the media data. Then, the receiving device can render the decoded media data and reproduce the media data on a display.

[0094] The image encoding / decoding device will be described in detail below.

[0095] Overview of Image Encoding Devices

[0096] Figure 4 This is a diagram that schematically illustrates an image encoding device according to an embodiment of the present disclosure. Figure 4 Image encoding device 400 can be used with reference Figure 1 The encoder 20 of the described transmitting device A corresponds to this.

[0097] Reference Figure 4 The image encoding device 400 may include an image segmenter 410, a subtractor 415, a transformer 420, a quantizer 430, a dequantizer 440, an inverse transformer 450, an adder 455, a filter 460, a memory 470, an inter-frame prediction unit 480, an intra-frame prediction unit 485, and an entropy encoder 490. The inter-frame prediction unit 480 and the intra-frame prediction unit 485 may be collectively referred to as "predictors". The transformer 420, quantizer 430, dequantizer 440, and inverse transformer 450 may be included in a residual processor. The residual processor may also include a subtractor 415.

[0098] In some implementations, all or at least some of the components of the image encoding device 400 may be configured by a single hardware component (e.g., an encoder or a processor). Furthermore, the memory 470 may include a decoded screen buffer (DPB) and may be configured by a digital storage medium.

[0099] Image segmenter 410 can segment an input image (or picture or frame) input to image encoding device 400 into one or more processing units. For example, a processing unit may be called an encoding unit (CU). Encoding units can be obtained by recursively segmenting encoding tree units (CTUs) or maximum encoding units (LCUs) according to a quadtree / binary tree / tritree (QT / BT / TT) structure. For example, an encoding unit can be segmented into multiple encoding units of greater depth based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. For the segmentation of encoding units, a quadtree structure can be applied first, followed by a binary tree structure and / or a ternary tree structure. The encoding process according to this disclosure can be performed based on the final encoding unit that is no longer segmented. The maximum encoding unit can be used as the final encoding unit, or a deeper encoding unit obtained by segmenting the maximum encoding unit can be used as the final encoding unit. Here, the encoding process may include prediction, transformation, and reconstruction processes, which will be described later. As another example, the processing unit of the encoding process may be a prediction unit (PU) or a transformation unit (TU). Prediction units and transform units can be partitioned or segmented from the final coding unit. Prediction units can be sample prediction units, and transform units can be units used to derive transform coefficients and / or units used to derive residual signals from transform coefficients.

[0100] The prediction unit (inter-frame prediction unit 480 or intra-frame prediction unit 485) can perform prediction on the block to be processed (the current block) and generate a prediction block that includes prediction samples of the current block. The prediction unit can determine whether to apply intra-frame prediction or inter-frame prediction to the current block or CU unit. The prediction unit can generate various information related to the prediction of the current block and transmit the generated information to the entropy encoder 490. The information about the prediction can be encoded in the entropy encoder 490 and output as a bitstream.

[0101] Intra-prediction unit 485 can predict the current block by referencing samples in the current frame. Depending on the intra-prediction mode and / or intra-prediction technique, the reference samples may be located among the neighbors of the current block or may be placed separately. Intra-prediction modes may include multiple non-directional modes and multiple directional modes. Non-directional modes may include, for example, DC mode and planar mode. Depending on the level of detail in the prediction direction, directional modes may include, for example, 33 or 65 directional prediction modes. However, this is merely an example, and more or fewer directional prediction modes may be used depending on the settings. Intra-prediction unit 485 can determine the prediction mode to be applied to the current block by using prediction modes applied to neighboring blocks.

[0102] The inter-frame prediction unit 480 can deduce the predicted block of the current block based on a reference block (reference sample array) specified by motion vectors on a reference frame. In this case, to reduce the amount of motion information transmitted in the inter-frame prediction mode, motion information can be predicted on a block, sub-block, or sample basis based on the correlation of motion information between neighboring blocks and the current block. Motion information may include motion vectors and reference frame indices. Motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, dual prediction, etc.) information. In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks existing in the current frame and temporally neighboring blocks existing in the reference frame. The reference frame including the reference block and the reference frame including the temporally neighboring block may be the same or different. The temporally neighboring block may be referred to as a juxtaposed reference block, a juxtaposed CU (colCU), etc. The reference frame including the temporally neighboring block may be referred to as a juxtaposed frame (colPic). For example, the inter-frame prediction unit 480 can configure a motion information candidate list based on neighboring blocks and generate information specifying which candidate to use to deduce the motion vector and / or reference frame index of the current block. Inter-frame prediction can be performed based on various prediction modes. For example, in skip mode and merge mode, the inter-frame prediction unit 480 can use the motion information of neighboring blocks as the motion information of the current block. In skip mode, unlike merge mode, residual signals may not be transmitted. In motion vector prediction (MVP) mode, the motion vectors of neighboring blocks can be used as motion vector predictors, and the motion vector of the current block can be signaled by encoding the motion vector difference and an indicator of the motion vector predictor. The motion vector difference can refer to the difference between the motion vector of the current block and the motion vector predictor.

[0103] The prediction unit can generate a prediction signal based on various prediction methods and techniques described below. For example, the prediction unit can apply not only intra-frame prediction or inter-frame prediction, but also both intra-frame prediction and inter-frame prediction simultaneously to predict the current block. A prediction method that simultaneously applies both intra-frame prediction and inter-frame prediction to predict the current block can be called Combined Intra-Frame and Inter-Frame Prediction (CIIP). Furthermore, the prediction unit can perform Intra-Frame Block Copy (IBC) to predict the current block. Intra-Frame Block Copy can be used for content image / video coding in games, such as Screen Content Coding (SCC). IBC is a method of predicting the current frame using a previously reconstructed reference block in the current frame at a predetermined distance from the current block. When IBC is applied, the position of the reference block in the current frame can be encoded as a vector (block vector) corresponding to the predetermined distance. IBC essentially performs prediction in the current frame, but can be performed similarly to inter-frame prediction because the reference block is derived within the current frame. That is, IBC can use at least one inter-frame prediction technique described in this disclosure.

[0104] The prediction signal generated by the prediction unit can be used to generate a reconstructed signal or a residual signal. Subtractor 415 can generate a residual signal (residual block or residual sample array) by subtracting the prediction signal (prediction block or prediction sample array) output from the prediction unit from the input image signal (original block or original sample array). The generated residual signal can be transmitted to converter 420.

[0105] Transformer 420 can generate transform coefficients by applying transform techniques to the residual signal. For example, the transform techniques may include at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loève Transform (KLT), Graph-Based Transform (GBT), or Conditional Nonlinear Transform (CNT). Here, GBT refers to a transform obtained from a graph when the relationship information between pixels is represented graphically. CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. Furthermore, the transform processing can be applied to square pixel blocks of the same size or to blocks of variable size instead of square.

[0106] Quantizer 430 quantizes the transform coefficients and transmits them to entropy encoder 490. Entropy encoder 490 encodes the quantized signal (information about the quantized transform coefficients) and outputs a bitstream. This information about the quantized transform coefficients can be referred to as residual information. Quantizer 430 can rearrange the block-type quantized transform coefficients into a one-dimensional vector based on the coefficient scan order and generate information about the quantized transform coefficients based on this one-dimensional vector form.

[0107] The entropy encoder 490 can perform various encoding methods (e.g., Exponential Columbus, Context Adaptive Variable Length Coding (CAVLC), Context Adaptive Binary Arithmetic Coding (CABAC), etc.). The entropy encoder 490 can encode information required for video / image reconstruction (e.g., values ​​of syntax elements, etc.) other than the quantization transform coefficients, either together or separately. The encoded information (e.g., encoded video / image information) can be transmitted or stored in bitstream form at Network Abstraction Layer (NAL) units. The video / image information may also include information about various parameter sets (e.g., Adaptive Parameter Set (APS), Picture Parameter Set (PPS), Sequence Parameter Set (SPS), or Video Parameter Set (VPS)). Furthermore, the video / image information may also include general constraint information. The signaled information, transmitted information, and / or syntax elements described in this disclosure can be encoded and included in the bitstream through the above encoding process.

[0108] The bitstream can be transmitted over a network or stored in a digital storage medium. The network may include broadcast networks and / or communication networks, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD. A transmitter (not shown) for transmitting the signal output from the entropy encoder 490 and / or a storage unit (not shown) for storing the signal may be included as internal / external components of the image encoding device 400. Alternatively, a transmitter may be provided as a component of the entropy encoder 490.

[0109] The quantized transform coefficients output from quantizer 430 can be used to generate residual signals. For example, the residual signals (residual blocks or residual samples) can be reconstructed by applying dequantization and inverse transform to the quantized transform coefficients using dequantizer 440 and inverse transformer 450.

[0110] Adder 455 adds the reconstructed residual signal to the prediction signal output from inter-frame prediction unit 480 or intra-frame prediction unit 485 to generate a reconstructed signal (reconstructed frame, reconstructed block, reconstructed sample array). If the block to be processed has no residual (e.g., in the case of applying skip mode), the predicted block can be used as a reconstructed block. Adder 455 may be referred to as a reconstructor or reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current frame, and can be used for inter-frame prediction of the next frame by filtering as described below.

[0111] Furthermore, luminance mapping with chroma scaling (LMCS) is applicable during image encoding and / or reconstruction.

[0112] Filter 460 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, filter 460 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 470, specifically in the DPB of memory 470. Various filtering methods can include, for example, deblocking filtering, sample adaptive offsetting, adaptive loop filtering, bilateral filtering, etc. Filter 460 can generate various filtering-related information and transmit the generated information to entropy encoder 490, as described later in the description of each filtering method. The filtering-related information can be encoded by entropy encoder 490 and output as a bitstream.

[0113] The modified reconstructed frame transmitted to memory 470 can be used as a reference frame in inter-frame prediction unit 480. When inter-frame prediction is applied by image encoding device 400, prediction mismatch between image encoding device 400 and image decoding device can be avoided and coding efficiency can be improved.

[0114] The DPB of memory 470 can store modified reconstructed frames for use as reference frames in inter-frame prediction unit 480. Memory 470 can store motion information of blocks from which motion information in the current frame is derived (or encoded) and / or motion information of already reconstructed blocks in the frame. The stored motion information can be transmitted to inter-frame prediction unit 480 and used as motion information for spatially or temporally adjacent blocks. Memory 470 can store reconstructed samples of reconstructed blocks in the current frame and can transmit the reconstructed samples to intra-frame prediction unit 485.

[0115] Overview of image decoding devices

[0116] Figure 5 This is a diagram that schematically illustrates an image decoding device according to an embodiment of the present disclosure. Figure 5 Image decoding device 500 can be used with reference Figure 1 The decoder 80 of the described receiving device B corresponds to this.

[0117] Reference Figure 5 The image decoding device 500 may include an entropy decoder 510, a dequantizer 520, an inverse transformer 530, an adder 535, a filter 540, a memory 550, an inter-frame prediction unit 560, and an intra-frame prediction unit 565. The inter-frame prediction unit 560 and the intra-frame prediction unit 565 may be collectively referred to as "predictors". The dequantizer 520 and the inverse transformer 530 may be included in a residual processor.

[0118] According to an implementation, all or at least some of the components of the image decoding device 500 can be configured by hardware components (e.g., a decoder or a processor). Furthermore, the memory 550 may include a decoded screen buffer (DPB) or may be configured by a digital storage medium.

[0119] The image decoding device 500, having received a bitstream including video / image information, can perform operations related to... Figure 4 The image is reconstructed by processing corresponding to the processing performed by the image encoding device 100. For example, the image decoding device 500 can use a processing unit applied in the image encoding device to perform decoding. Therefore, the decoding processing unit can be, for example, an encoding unit. The encoding unit can be obtained by segmenting a coding tree unit or a maximum coding unit. The reconstructed image signal decoded and output by the image decoding device 500 can be reproduced by a reproduction device (not shown).

[0120] Image decoding device 500 can receive from Figure 4The image encoding device generates a signal in the form of a bitstream. The received signal can be decoded by an entropy decoder 510. For example, the entropy decoder 510 can parse the bitstream to derive information (e.g., video / image information) required for image reconstruction (or picture reconstruction). The video / image information may also include information about various parameter sets (e.g., adaptive parameter set (APS), picture parameter set (PPS), sequence parameter set (SPS), or video parameter set (VPS)). In addition, the video / image information may also include general constraint information. The image decoding device can also decode the picture based on the information about the parameter sets and / or general constraint information. The information and / or syntax elements notified / received by signals described in this disclosure can be decoded and obtained from the bitstream through a decoding process. For example, the entropy decoder 510 decodes the information in the bitstream based on encoding methods such as exponential Golomb coding, CAVLC, or CABAC, and outputs the values ​​of the syntax elements required for image reconstruction and the quantized values ​​of the transform coefficients of the residuals. More specifically, the CABAC entropy decoding method can receive bins corresponding to each syntax element in the bitstream, determine the context model using information about the target syntax element, decoding information of neighboring blocks and the target block, or information about symbols / bins decoded in the previous stage, perform arithmetic decoding on the bins based on the determined context model by predicting the occurrence probability of the bins, and generate symbols corresponding to the value of each syntax element. In this case, the CABAC entropy decoding method can update the context model after determining the context model by using the information of the decoded symbols / bins for the context model of the next symbol / bin. The prediction-related information in the information decoded by the entropy decoder 510 can be provided to the prediction units (inter-frame prediction unit 560 and intra-frame prediction unit 565), and the residual value of entropy decoding performed in the entropy decoder 510, i.e., the quantization transform coefficients and related parameter information, can be input to the dequantizer 520. In addition, the filtering information in the information decoded by the entropy decoder 510 can be provided to the filter 540. Furthermore, the receiver (not shown) for receiving signals output from the image encoding device can be further configured as an internal / external element of the image decoding device 500, or the receiver can be a component of the entropy decoder 510.

[0121] Furthermore, the image decoding apparatus according to this disclosure can be referred to as a video / image / screen decoding apparatus. The image decoding apparatus can be divided into an information decoder (video / image / screen information decoder) and a sample decoder (video / image / screen sample decoder). The information decoder may include an entropy decoder 510. The sample decoder may include at least one of a dequantizer 520, an inverse transformer 530, an adder 535, a filter 540, a memory 550, an inter-frame prediction unit 560, or an intra-frame prediction unit 565.

[0122] The dequantizer 520 can dequantize the quantized transform coefficients and output the transform coefficients. The dequantizer 520 can rearrange the quantized transform coefficients in the form of two-dimensional blocks. In this case, the rearrangement can be performed based on the coefficient scan order performed in the image encoding device. The dequantizer 520 can obtain the transform coefficients by performing dequantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information).

[0123] The inverse transformer 530 can perform inverse transformation on the transform coefficients to obtain the residual signal (residual block, residual sample array).

[0124] The prediction unit can perform prediction on the current block and generate a prediction block that includes prediction samples of the current block. The prediction unit can determine whether to apply intra-frame prediction or inter-frame prediction to the current block based on the prediction information output from the entropy decoder 510, and can determine a specific intra-frame / inter-frame prediction mode (prediction technique).

[0125] Similar to that described in the prediction unit of the image coding device 100, the prediction unit can generate a prediction signal based on various prediction methods (techniques) described later.

[0126] Intra-prediction unit 565 can predict the current block by referring to samples in the current frame. The description of intra-prediction unit 485 also applies to intra-prediction unit 565.

[0127] The inter-frame prediction unit 560 can deduce the prediction block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference frame. In this case, to reduce the amount of motion information transmitted in the inter-frame prediction mode, motion information can be predicted on a block, sub-block, or sample basis based on the correlation of motion information between neighboring blocks and the current block. Motion information may include motion vectors and reference frame indices. Motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, dual prediction, etc.) information. In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks existing in the current frame and temporally neighboring blocks existing in the reference frame. For example, the inter-frame prediction unit 560 can configure a motion information candidate list based on neighboring blocks and deduce the motion vector and / or reference frame index of the current block based on the received candidate selection information. Inter-frame prediction can be performed based on various prediction modes, and the information about the prediction may include information specifying the inter-frame prediction mode of the current block.

[0128] Adder 535 generates a reconstruction signal (reconstructed frame, reconstruction block, reconstruction sample array) by adding the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (including inter-frame prediction unit 560 and / or intra-frame prediction unit 565). If the block to be processed has no residual (e.g., in the case of applying skip mode), the prediction block can be used as a reconstruction block. The description of adder 155 also applies to adder 535. Adder 535 may be referred to as a reconstructor or reconstruction block generator. The generated reconstruction signal can be used for intra-frame prediction of the next block to be processed in the current frame, and can be used for inter-frame prediction of the next frame by filtering as described below.

[0129] Furthermore, Luminance Mapping with Chroma Scaling (LMCS) is applicable during the image decoding process.

[0130] Filter 540 can improve the quality of subjective / objective images by applying filtering to the reconstructed signal. For example, filter 540 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 550, specifically in the DPB of memory 550. Various filtering methods may include, for example, deblocking filtering, adaptive sample shifting, adaptive loop filtering, bilateral filtering, etc.

[0131] The (modified) reconstructed frame stored in the DPB of memory 550 can be used as a reference frame in inter-frame prediction unit 560. Memory 550 can store motion information of blocks from which motion information in the current frame is derived (or decoded) and / or motion information of already reconstructed blocks in the frame. The stored motion information can be transmitted to inter-frame prediction unit 560 to be used as motion information for spatially or temporally neighboring blocks. Memory 550 can store reconstructed samples of reconstructed blocks in the current frame and transmit the reconstructed samples to intra-frame prediction unit 565.

[0132] In this disclosure, the embodiments described in the filter 460, inter-frame prediction unit 480 and intra-frame prediction unit 485 of the image encoding device 400 can be equally or correspondingly applied to the filter 540, inter-frame prediction unit 560 and intra-frame prediction unit 565 of the image decoding device 500.

[0133] The quantizer of an encoding device derives the quantized transform coefficients by applying quantization to the transform coefficients, and the dequantizer of either the encoding or decoding device derives the transform coefficients by applying dequantization to the quantized transform coefficients. In video coding, the quantization rate can be changed, and the compression ratio can be adjusted using the changed quantization rate. From an implementation perspective, considering complexity, a quantization parameter (QP) can be used instead of the quantization rate directly. For example, a quantization parameter with integer values ​​from 0 to 63 can be used, and each quantization parameter value can correspond to the actual quantization rate. Furthermore, the quantization parameter QP for the luma component (luma sample) can be set differently. Y Quantization parameter QP of chromaticity components (chromaticity samples) C .

[0134] During quantization, the transform coefficient C can be received as input and divided by the quantization rate Q. step Furthermore, the quantization transform coefficients C' can be derived from this. In this case, considering computational complexity, the quantization rate is multiplied by scaling to form an integer, and shift operations can be performed according to the values ​​corresponding to the scaling values. Quantization scaling can be derived based on the product of the quantization rate and the scaling value. That is, quantization scaling can be derived from QP. In this case, the quantization transform coefficients C' can be derived from this by applying quantization scaling to the transform coefficients C.

[0135] Dequantization is the inverse of quantization, and the quantization transform coefficients C' can be multiplied by the quantization rate Q. step Therefore, the reconstructed transform coefficients C' are derived based on this. In this case, level scaling can be derived from the quantization parameters, and the level scaling can be applied to the quantized transform coefficients C', thereby deriving the reconstructed transform coefficients C'. Due to losses during the transform and / or quantization process, the reconstructed transform coefficients C' can be slightly different from the original transform coefficients C. Therefore, even the encoding device can perform dequantization in the same way as the decoding device.

[0136] Furthermore, adaptive frequency-weighted quantization (IFQ) can be applied, where the quantization intensity is adjusted according to the frequency. IFQ corresponds to methods that apply different quantization intensities based on frequency. In IFQ, a predefined quantization scaling matrix can be used to apply different quantization intensities according to the frequency. That is, the quantization / dequantization process described above can be further performed based on the quantization scaling matrix.

[0137] For example, different quantization scaling matrices can be used depending on the size of the current block and / or whether the prediction mode applied to generate the residual signal for the current block is inter-frame prediction or intra-frame prediction. The quantization scaling matrix can also be called the quantization matrix or the scaling matrix. The quantization scaling matrix can be predefined. Additionally, the frequency quantization scaling information for the quantization scaling matrix used for frequency adaptive scaling can be constructed / encoded by the encoding device and signaled to the decoding device. This frequency quantization scaling information can be called quantization scaling information. The frequency quantization scaling information can include scaling list data (scaling_list_data).

[0138] Based on the scaling list data, the quantization scaling matrix can be derived. Additionally, the frequency quantization scaling information may include presence flags indicating whether scaling list data exists. Alternatively, when the scaling list data is signaled at a higher level (e.g., SPS), it may also include information indicating whether the scaling list data has been modified at a lower level (e.g., PPS or tile group header).

[0139] Figure 6 This is a diagram illustrating an example of the layered structure for encoding images / videos.

[0140] Encoded images / videos are classified into a Video Coding Layer (VCL) for image / video decoding and processing, a lower-layer system for sending and storing encoded information, and a Network Abstraction Layer (NAL) that exists between the VCL and the lower-layer system and is responsible for network adaptation functions.

[0141] In VCL, VCL data that includes compressed image data (slice data) can be generated, or additional enhancement information (SEI) messages required for image decoding processing or parameter sets that include information such as picture parameter set (PPS), sequence parameter set (SPS), or video parameter set (VPS) can be generated.

[0142] In NAL, header information (NAL unit header) can be added to the raw byte sequence payload (RBSP) generated in VCL to generate NAL units. In this case, RBSP refers to the slice data, parameter set, and SEI message generated in VCL. The NAL unit header may include NAL unit type information specified according to the RBSP data included in the corresponding NAL unit.

[0143] like Figure 6As shown, NAL units can be classified into VCL NAL units and non-VCL NAL units based on the type of RBSP generated in the VCL. A VCL NAL unit can refer to a NAL unit that includes information about the image (slice data), while a non-VCL NAL unit can refer to a NAL unit that includes information required for decoding the image (parameter set or SEI message).

[0144] VCL NAL units and non-VCL NAL units can be appended with header information and transmitted over the network according to the data standard of the underlying system. For example, NAL units can be modified to have a data format with a predetermined standard (e.g., H.266 / VVC file format, RTP (Real-Time Transport Protocol), or TS (Transport Stream)) and transmitted over various networks.

[0145] As described above, within a NAL unit, the NAL unit type can be specified based on the RBSP data structure included in the corresponding NAL unit, and information about the NAL unit type can be stored in the NAL unit header and signaled. For example, this can be broadly categorized into VCL NAL unit types and non-VCL NAL unit types based on whether the NAL unit includes image information (slice data). VCL NAL unit types can be categorized based on the nature / type of the image included in the VCL NAL unit, while non-VCL NAL unit types can be categorized based on the type of parameter set.

[0146] The following are examples of NAL cell types specified based on the type of parameter set / information included in non-VCL NAL cell types.

[0147] -DCI (Decoding Capability Information) NAL Unit Type (NUT): The type of NAL unit including DCI.

[0148] -VPS (Video Parameter Set) NUT: Includes the type of NAL unit for the VPS.

[0149] -SPS (Sequence Parameter Set) NUT: The type of NAL unit that includes the SPS.

[0150] -PPS (Picture Parameter Set) NUT: The type of NAL unit including PPS.

[0151] -APS (Adaptive Parameter Set) NUT: The type of NAL unit that includes the APS.

[0152] -PH (Picture Header) NUT: The type of NAL unit that includes the picture header.

[0153] The aforementioned NAL unit type can have syntax information specific to the NAL unit type, and this syntax information can be stored in the NAL unit header and signaled. For example, this syntax information can be nal_unit_type, and the NAL unit type can be specified using the nal_unit_type value.

[0154] Furthermore, a frame can include multiple slices, and a slice can include a slice header and slice data. In this case, a frame header can also be added to multiple slices (slice headers and slice datasets) within a frame. The frame header (frame header syntax) can include information / parameters common to the frame. The slice header (slice header syntax) can include information / parameters common to the slice. APS (APS syntax) or PPS (PPS syntax) can include information / parameters common to one or more slices or frames. SPS (SPS syntax) can include information / parameters common to one or more sequences. VPS (VPS syntax) can be information / parameters common to multiple layers. DCI (DCI syntax) can include information / parameters related to decoding capabilities.

[0155] In this disclosure, the high-level syntax (HLS) may include at least one of APS syntax, PPS syntax, SPS syntax, VPS syntax, DCI syntax, picture header syntax, or slice header syntax. Additionally, in this disclosure, the low-level syntax (LLS) may include, for example, slice data syntax, CTU syntax, coding unit syntax, transform unit syntax, etc.

[0156] In this disclosure, the image / video information encoded by the encoding device and signaled to the decoding device in the form of a bitstream may include not only intra-frame segmentation related information, intra / inter-frame prediction information, residual information, and intra-loop filtering information, but also information about slice headers, frame headers, APS, PPS, SPS, VPS, and / or DCI. Additionally, the image / video information may also include general constraint information and / or information about NAL unit headers.

[0157] The following text will describe in detail the media files that include encoded image information.

[0158] Media files

[0159] Encoded image information can be configured (or formatted) based on a predetermined media file format to generate a media file. For example, encoded image information can be used to form a media file (segmentation) based on one or more NAL units / sample entries for the encoded image information.

[0160] Media files may include sample entries and audio tracks. In one example, a media file may include various records, and each record may include information related to the media file format or information related to the image. In one example, one or more NAL units may be stored in a configuration record (or decoder configuration record) field in the media file. Additionally, the media file may include operation point records and / or operation point group boxes. In this disclosure, a decoder configuration record supporting Multifunction Video Coding (VVC) may be referred to as a VVC decoder configuration record. Similarly, an operation point record supporting VVC may be referred to as a VVC operation point record.

[0161] In media file formats, the term "sample" can refer to all the data associated with a single time or a single element of any of the three sample arrays (Y, Cb, Cr) representing a picture. When used in the context of an audio track (media file format), "sample" can refer to all the data associated with a single time of the audio track. Here, time can correspond to decoding time or composition time. Furthermore, when used in the context of a picture (e.g., a luminance sample), "sample" can indicate a single element of any of the three sample arrays representing the picture.

[0162] Figure 7 This is a diagram illustrating an example of a media file structure.

[0163] As mentioned above, standardized media file formats can be defined for storing and transmitting media data such as audio, video, or images. In some implementations, media files may have a file format based on the ISO Basic Media File Format (ISOBMFF).

[0164] A media file may include one or more boxes. Here, a box can be a data block or object containing media data or metadata related to the media data. Within a media file, boxes can form a hierarchical structure. Therefore, a media file can have a format suitable for storing and / or transmitting large volumes of media data. Furthermore, a media file can have a structure that facilitates access to specific media data.

[0165] Reference Figure 7 The media file 700 may include the ftyp box 710, the moov box 720, the moof box 730, and the mdat box 740.

[0166] The ftyp box 710 may include information about the file type, file version, and / or compatibility of the media file 700. In some implementations, the ftyp box 710 may be located at the beginning of the media file 700.

[0167] The moov box 720 may include metadata describing the media data in the media file 700. In some implementations, the moov box 720 may reside at the top level of the metadata-related boxes. Furthermore, the moov box 720 may include header information of the media file 700. For example, the moov box 720 may include decoder configuration records as decoder configuration information.

[0168] The moov box 720 is a sub-box and may include the mvhd box 721, the trak box 722, and the mvex box 723.

[0169] The mvhd box 721 may include presentation-related information of the media data in the media file 700 (e.g., media creation time, modification time, cycle, etc.).

[0170] The trak box 722 may include metadata about the audio tracks of the media data. For example, the trak box 722 may include streaming-related information, presentation-related information, and / or access-related information for audio or video tracks. Multiple trak boxes 722 may exist depending on the number of audio tracks present in the media file 700.

[0171] The mvex box 723 may include information about the presence of one or more movie clips in the media file 700. A movie clip may be a portion of media data obtained by partitioning media data in the media file 700. A movie clip may include one or more encoded frames. For example, a movie clip may include one or more groups of frames (GOPs), and each group of frames may include multiple encoded frames or frames. Movie clips may be stored in each of the mdat boxes 740-1 to 740-N (where N is an integer greater than or equal to 1).

[0172] Moof frames 730-1 to 730-N (where N is an integer greater than or equal to 1) may include metadata of the movie clip, i.e., mdat frames 740-1 to 740-N. In some implementations, moof frames 730-1 to 730-N may exist at the top level of the metadata-related frames of the movie clip.

[0173] mdat frames 740-1 to 740-N may include actual media data. Depending on the number of movie clips present in the media file 700, multiple mdat frames 740-1 to 740-N may exist. Each of mdat frames 740-1 to 740-N may include one or more audio or video samples. In one example, a sample may refer to an Access Unit (AU). When a decoder configuration record is stored in a sample entry, the decoder configuration record may include the size of a length field specifying the length of the Network Abstraction Layer (NAL) unit to which each sample belongs, as well as a set of parameters.

[0174] In some implementations, the media file 700 may be processed, stored, and / or transmitted in segments. Segments may include an initialization segment I_seg and a media segment M_seg.

[0175] The initialization segment I_seg can be an object-type data unit that includes initialization information for accessing the representation. The initialization segment I_seg can include the aforementioned ftyp box 710 and / or moov box 720.

[0176] Media segment M_seg can be an object-type data unit comprising time-divided media data of a streaming service. Media segment M_seg can include the aforementioned moof frames 730-1 to 730-N and mdat frames 740-1 to 740-N. Although Figure 7 Not shown in the figure, but the media segment M_seg may also include: a styp box containing information related to the segment type and an sidx box (optional) containing identification information of the sub-segments included in the media file 700.

[0177] As mentioned above, media data can be encapsulated into media files according to file formats such as ISO BMFF. Additionally, media files can be transmitted via image signals according to MMT or MPEG-DASH standards.

[0178] Figure 8 This is a diagram illustrating an example of image signal structure.

[0179] Reference Figure 8 The image signal conforms to the MPEG-DASH standard and may include MPD 810 and multiple representations 820-1 to 820-N.

[0180] MPD 810 is a file that includes detailed information about media presentation and can be expressed in XML format. MPD 810 may include information about multiple representations of 820-1 to 820-N (e.g., bitrate of the streamed content, image resolution, frame rate, etc.) and information about the URLs of HTTP resources (e.g., initialization segments and media segments).

[0181] This means that each of the numbers 820-1 to 820-N (where N is an integer greater than 1) can be divided into multiple segments S-1 to SK (where K is an integer greater than 1). Here, the multiple segments S-1 to SK can be compared with those mentioned above. Figure 7The initialization segments described correspond to the media segments. The Kth segment SK can represent the last movie clip in each of 820-1 to 820-N. In some implementations, the number of segments S-1 to SK included in each of 820-1 to 820-N (that is, the value of K) can be different from each other.

[0182] Each of segments S-1 to SK may include actual media data such as one or more video or image samples. The characteristics of the video or image samples included in each of segments S-1 to SK may be described by MPD 810.

[0183] Each of the segments S-1 to SK has a unique URL (Uniform Resource Locator) and can therefore be accessed and reconstructed independently.

[0184] In addition, three types of elementary streams can be defined for storing VVC content. First, a video elementary stream that does not include any parameter sets can be defined. In this case, all parameter sets can be stored in one or more sample entries. Second, a video elementary stream that can include parameter sets can be defined, and a video elementary stream that can include parameter sets stored in one or more sample entries can be defined. Third, a non-VCL elementary stream that includes non-VCL NAL units synchronized with the elementary stream carried in the video audio track can be defined. In this case, the non-VCL audio track may not include parameter sets in sample entries.

[0185] An operation point is a temporal subset of the Output Layer Set (OLS) and can be identified by the maximum value of the OLS index and TemporalId. Each operation point can be associated with a profile, hierarchy, and level (PTL) that defines the corresponding operation point's consistency point. In the ISO-based media file format (ISO BMFF) for VVC, operation point information can be signaled within samples of 'vopi' type group boxes or 'opeg' type entity groups. Operation point information can be used to identify samples and sample entries for each operation point.

[0186] Operation point information sample group

[0187] The operation point information sample group 'vopi' can be used to provide the application with information about the different operation points provided by the VVC bitstream and the composition of those operation points. In this case, each operation point can be associated with the output layer set, the maximum TemporalId value, and PTL signaling. All of the above information can be captured by the 'vopi' sample group. In addition to the above information, the sample group can also provide information about dependencies between layers. If there is more than one VVC audio track for the VVC bitstream and there is no operation point entity group for the VVC bitstream, the following two operations can be applied. First, among the VVC audio tracks in the VVC bitstream, there should only be one audio track carrying the 'vopi' sample group. Second, all other VVC audio tracks in the VVC bitstream should have an 'oref' type audio track reference to the audio track carrying the 'vopi' sample group.

[0188] For a specific sample in an audio track, time-juxtaposed samples in other audio tracks can be defined as having the same decoding time as the specific sample. In audio track T with a reference carrier 'vopi' sample group... k The 'oref' audio track's audio track T N Within this content, the following can be applied to each sample S. N If audio track T k Memory in time co-located sample S k Then sample S N Can be compared with sample S k Entries from the same 'vopi' sample group are associated. Otherwise, sample S N It can be compared with the sample S by decoding time. N Previous audio track T k The last sample in the sample is associated with the same 'vopi' sample group entry.

[0189] When a VVC bitstream references multiple VPSs, a sample group description box with the 'vopi' group type can include multiple entries. Alternatively, in the more general case where a single VPS exists, a default sample group mechanism can be used. The default sample group mechanism can be defined in standard documents such as ISO / IEC 14496-12. Furthermore, operation point information sample groups can be included in the sample table box instead of in each track segment. For example, the syntax grouping_type_parameter may not be defined for a syntax SampleToGroupBox with the 'vopi' type.

[0190] Figure 9 This is a diagram illustrating an example of the syntax structure VvcOperatingPointsRecord, which uses signals to notify operation point information.

[0191] Reference Figure 9 The VvcOperatingPointsRecord can include the syntax element num_profile_tier_level_minus1. Increasing 1 to num_profile_tier_level_minus1 indicates the number of subsequent profiles, tiers, and levels (PTLs) combinations, as well as the number of fields associated with them.

[0192] Additionally, VvcOperatingPointsRecord can include the syntax element ptl_max_temporal_id[i]. ptl_max_temporal_id[i] can indicate the maximum TemporalID of the NAL unit for the associated bitstream of the i-th PTL structure. Here, i can be equal to or greater than 0 and can be equal to or less than the value of num_profile_tier_level_minus1. ptl_max_temporal_id[i] can have the same value as max_temporal_id described below, but the semantics of ptl_max_temporal_id[i] can differ from the semantics of max_temporal_id.

[0193] Additionally, VvcOperatingPointsRecord can include the syntax element ptl[i]. ptl[i] can indicate the i-th PTL structure. Here, i can be equal to or greater than 0 and can be equal to or less than the value of num_profile_tier_level_minus1. ptl[i] can have the class type of VvcPTLRecord(ptl_max_temporal_id[i]+1), which will be described later.

[0194] Additionally, VvcOperatingPointsRecord can include the syntax element all_independent_layers_flag. A first value for all_independent_layers_flag (e.g., 0) indicates that at least one layer was not independently encoded. In contrast, a second value for all_independent_layers_flag (e.g., 1) indicates that all layers are encoded independently without using inter-layer prediction.

[0195] When all_independent_layers_flag is a first value (e.g., 0), VvcOperatingPointsRecord can include the syntax element ols_mode_idc. ols_mode_idc can indicate the mode index of the output layer set. In contrast, when all_independent_layers_flag is a second value (e.g., 1), VvcOperatingPointsRecord can include the syntax element each_layer_is_an_ols_flag. each_layer_is_an_ols_flag can indicate whether the output layer set includes only one layer. The aforementioned all_independent_layers_flag, ols_mode_idc, and each_layer_is_an_ols_flag can be defined, for example, in standard documents such as ISO / IEC 23090-3.

[0196] Additionally, VvcOperatingPointsRecord can include the syntax element num_operating_points. num_operating_points can indicate the number of operation points.

[0197] Additionally, VvcOperatingPointsRecord can include the syntax element output_layer_set_idx. output_layer_set_idx can indicate the index that defines the set of output layers for the corresponding operation point. The mapping between output_layer_set_idx and layer_id (described later) will be the same as the mapping specified by the VPS for the same index as output_layer_set_idx.

[0198] Additionally, VvcOperatingPointsRecord can include the syntax element ptl_idx. ptl_idx can indicate a zero-based index for an enumerated PTL structure that has the same index as output_layer_set_idx.

[0199] Additionally, VvcOperatingPointsRecord can include the syntax element max_temporal_id. max_temporal_id can indicate the maximum TemporalId of the NAL cell corresponding to the operation point. Here, the maximum TemporalId can have different semantics than the maximum TemporalId indicated in the layer information sample group. However, both can have the same value.

[0200] In addition, VvcOperatingPointsRecord may include the syntax element layer_count. layer_count may indicate the number of layers required for the corresponding operating point. layer_count may be defined, for example, in a standard document such as ISO / IEC 23090-3. <\\

[0201] In addition, VvcOperatingPointsRecord may include the syntax element layer_id. layer_id may indicate the nuh_layer_id value of the layer for the corresponding operating point.

[0202] In addition, VvcOperatingPointsRecord may include the syntax element is_outputlayer. is_outputlayer may indicate whether the layer for the corresponding operating point is an output layer.

[0203] The above syntax elements output_layer_set_idx, ptl_idx, max_temporal_id, and layer_count may exist in a loop for the operating points (i.e., for(i = 0; i < num_operating_points; i++)). Therefore, the number of syntax elements included in VvcOperatingPointsRecord may correspond to the number of operating points (i.e., num_operating_points).

[0204] In addition, the above syntax elements layer_id and is_outputlayer may exist in a loop for the layers of each operating point (i.e., for(j = 0; j < layer_count; j++)). Therefore, the number of syntax elements included in VvcOperatingPointsRecord may correspond to the number of layers required for the corresponding operating point (i.e., layer_count).

[0205] Furthermore, VvcOperatingPointsRecord may include the syntax element frame_rate_info_flag. frame_rate_info_flag being a first value (e.g., 0) may indicate that there is no frame rate information for the corresponding operating point. In contrast, frame_rate_info_flag being a second value (e.g., 1) may indicate that there is frame rate information for the corresponding operating point.

[0206] Additionally, VvcOperatingPointsRecord can include the syntax element bit_rate_info_flag. A first value for bit_rate_info_flag (e.g., 0) indicates that bit rate information is not available for the corresponding operand. Conversely, a second value for bit_rate_info_flag (e.g., 1) indicates that bit rate information is available for the corresponding operand.

[0207] Additionally, VvcOperatingPointsRecord can include the syntax element avgFrameRate. avgFrameRate indicates the average frame rate for the corresponding operation point in units of 'frames / (256 seconds)'. An avgFrameRate value of 0 indicates that no average frame rate is specified.

[0208] Additionally, VvcOperatingPointsRecord can include the syntax element constantFrameRate. A constantFrameRate of 1 indicates that the stream at the corresponding operation point has a constant frame rate. Conversely, a constantFrameRate of 2 indicates that the representation of each temporal layer in the stream at the corresponding operation point has a constant frame rate. And a constantFrameRate of 0 indicates that the stream at the corresponding operation point may or may not have a constant frame rate.

[0209] Additionally, VvcOperatingPointsRecord can include the syntax element maxBitRate. maxBitRate indicates the maximum bit rate of the stream at the corresponding operation point, in bits per second.

[0210] Additionally, VvcOperatingPointsRecord can include the syntax element max_layer_count. max_layer_count can indicate the number of layers in all operation points associated with the underlying audio track.

[0211] Additionally, VvcOperatingPointsRecord can include the syntax element layerID. layerID can indicate the nuh_layer_id of the layer that provides all directly referenced layers in subsequent loops of direct_ref_layerID.

[0212] Additionally, VvcOperatingPointsRecord can include the syntax element num_direct_ref_layers. num_direct_ref_layers can indicate the number of direct reference layers for the layer whose nuh_layer_id is equal to layerID.

[0213] Additionally, VvcOperatingPointsRecord can have the syntax element direct_ref_layerID. direct_ref_layerID can indicate the nuh_layer_id of the corresponding direct reference layer.

[0214] Operation point entity group

[0215] Operation point entity groups can be defined to provide a mapping from audio tracks to operation points and profile-level information about the operation points. When aggregating audio track samples mapped to operation points described in the entity group, the implicit reconstruction process may not require additional NAL unit removal to generate a matching VVC bitstream. Audio tracks belonging to an operation point entity group should have an 'oref' type audio track reference with the group_id indicated in the operation point entity group. All entity_id values ​​included in the operation point entity group should belong to the same VVC bitstream. The OperatingPointGroupBox should be included in a GroupsListBox within a movie-level MetaBox and should not be included in a file-level or audio track-level MetaBox.

[0216] Figure 10 This is a diagram illustrating an example of the syntax structure OperatingPointGroupBox for signaling a group of operation point entities.

[0217] Reference Figure 10 The OperatingPointGroupBox can include the syntax element num_profile_tier_level_minus1. The semantics of the syntax element are as described above. Figure 9 As described.

[0218] Additionally, the OperatingPointGroupBox can include the syntax element opeg_ptl[i]. opeg_ptl[i] can indicate the i-th PTL structure. Here, i can be equal to or greater than 0 and can be equal to or less than the value of num_profile_tier_level_minus1. opeg_ptl[i] can have the class type VvcPTLRecord(0), which will be described later.

[0219] In addition, the OperatingPointGroupBox may include a syntax element num_operating_points that specifies the number of operating points.

[0220] In addition, the OperatingPointGroupBox may include syntax elements output_layer_set_idx, ptl_idx, max_temporal_id, and layer_count. The semantics of the syntax elements are as described above in reference to Figure 9 what has been described. The syntax elements may exist within a loop for the operating points (i.e., for(i = 0; i < num_operating_points; i++)). Thus, the number of syntax elements included in the OperatingPointGroupBox may correspond to the number of operating points (i.e., num_operating_points).

[0221] In addition, the OperatingPointGroupBox may include syntax elements layer_id and is_outputlayer. The semantics of the syntax elements are as described above in reference to Figure 9 what has been described. The syntax elements may exist within a loop related to the layers of each operating point. Thus, the number of syntax elements included in the OperatingPointGroupBox may correspond to the number of layers required for the corresponding operating point (i.e., layer_count).

[0222] In addition, the OperatingPointGroupBox may include syntax elements frame_rate_info_flag, bit_rate_info_flag, avgFrameRate, constantFrameRate, maxBitRate, and avgBitRate. The semantics of the syntax elements are as described above in reference to Figure 9 what has been described.

[0223] In addition, the OperatingPointGroupBox may include a syntax element entity_count. entity_count may indicate the number of audio tracks present in the operating point.

[0224] In addition, the OperatingPointGroupBox may include a syntax element entity_idx. entity_idx may indicate the index of the list of entity_ids within the entity group belonging to the operating point.

[0225] `frame_rate_info_flag` indicates whether frame rate information exists at the operation point. `bit_rate_info_flag` indicates whether bit rate information exists at the operation point. `entity_count` indicates the number of audio tracks present at the operation point. `entity_idx` indicates the index of the list of `entity_id` members belonging to the entity group at the operation point.

[0226] Decoder configuration record

[0227] When a decoder configuration record is stored in a sample entry, it can include the size of a length field for each sample to indicate the length of the NAL unit and the parameter set. The decoder configuration record can be externally framed. The size of the decoder configuration record can be provided within the structure that includes it.

[0228] Decoder configuration records may include a version field. The version specified in this specification can define version 1 of the decoder configuration record. If the version number is not recognized, the stream to which the decoder configuration record applies, or the decoder configuration record itself, will not be decoded. Compatible extensions to decoder configuration records can extend the decoder configuration record without changing the configuration version code.

[0229] If the audio track originates from a VVC bitstream or a parsed 'subp' audio track reference, a VvcPtlRecord will exist in the decoder configuration record. If ptl_present_flag is equal to 0 in the audio track's decoder configuration record, the audio track should have an 'oref' audio track reference. The values ​​of the syntax elements VvcPTLRecord, chroma_format_idc, and bit_depth_minus8 should be valid for all parameter sets active when the stream described by the decoder configuration record is decoded. The following constraints may apply in this regard.

[0230] The profile indicator `general_profile_idc` indicates the profile that the stream matches the decoder configuration record. If the SPS flag has different profiles, it may be necessary to examine the stream to determine the profile that the entire stream matches. If the entire stream has not yet been examined or the examination results do not show a profile that the entire stream matches, the entire stream may be divided into two or more sub-streams with separate configuration records that can satisfy the rules described above.

[0231] The tier indicator general_tier_flag will indicate the tier that is greater than or equal to the highest tier indicated in all parameter sets.

[0232] Each bit of the general constraint information general_constraint_info can be set only if the corresponding bit is set in all parameter sets.

[0233] The level indicator general_level_idc should indicate a capability level that is greater than or equal to the highest level indicated for the highest level across all parameter sets.

[0234] `chroma_format_idc` indicates the chroma format applied to a track. The following constraints apply to `chroma_format_idc`: `chroma_format_idc` should be equal to `sps_chroma_format_idc` (Condition 1) when the value of `sps_chroma_format_idc` is the same across all SPS referenced by the track's NAL unit. `chroma_format_idc` should be equal to `vps_ols_dpb_chroma_format[output_layer_set_idx]` (Condition 2) when Condition 1 is not satisfied and `ptl_present_flag` is equal to the second value (e.g., 1). `chroma_format_idc` should not exist when neither Condition 1 nor Condition 2 is satisfied.

[0235] `bit_depth_minus8` indicates the bit depth applied to a track. The following constraints apply to `bit_depth_minus8`: `bit_depth_minus8` should be equal to `sps_bitdepth_minus8` (Condition 1) when the value of `sps_bitdepth_minus8` is the same across all SPS referenced by the track's NAL unit. When Condition 1 is not satisfied and `ptl_present_flag` is equal to the second value (e.g., 1), `bit_depth_minus8` should be equal to `vps_ols_dpb_bitdepth_minus8[output_layer_set_idx]` (Condition 2). `bit_depth_minus8` should not exist when neither Condition 1 nor Condition 2 is satisfied.

[0236] Other important format information used in the VCC elementary stream, as well as explicit indicators of chroma format and bit depth, can be provided within the VVC decoder configuration record. If the color space representation differs in the VUI information of the two sequences, two different VVC sample entries may be required.

[0237] In addition, array sets may exist to carry initialization NAL cells. The NAL cell type can be restricted to indicate only DCI, VPS, SPS, PPS, prefix APS, and prefix SEI NAL cells. NAL cells included in a sample entry may be included immediately after AUD and OPI NAL cells, or may be included in the beginning portion of the access cells reconstructed from the first sample of the reference sample entry. The arrays may be arranged in the order of DCI, VPS, SPS, PPS, prefix APS, and prefix SEI.

[0238] Figure 11 This is a diagram illustrating an example of the syntax structure VvcPTLRecord that uses signals to notify PTL records.

[0239] Reference Figure 11 A VvcPTLRecord can include the syntax elements 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, and sublayer_level_idc[i]. The syntax elements can include the matching values ​​of the general_profile_idc, general_tier_flag, and general_sub_profile_idc fields, as well as bits for general_constraint_info(), general_level_idc, ptl_multilayer_enabled_flag, ptl_frame_only_constraint_flag, sublayer_level_present, and sublayer_level_idc[i].

[0240] Additionally, VvcPTLRecord can include the syntax element avgFrameRate. avgFrameRate can indicate the average frame rate of the stream being recorded, in units of 'frames / (256 seconds)', based on the application's decoder configuration. An avgFrameRate value of 0 indicates an unspecified average frame rate. An avgFrameRate equal to 0 indicates that no average frame rate has been specified.

[0241] Additionally, VvcPTLRecord can include the syntax element constantFrameRate. A constantFrameRate of 1 indicates that the stream being recorded has a constant frame rate. Conversely, a constantFrameRate of 2 indicates that the representation of each temporal layer in the corresponding frame has a constant frame rate. And, a constantFrameRate of 0 indicates that the corresponding stream may or may not have a constant frame rate.

[0242] Additionally, VvcPTLRecord can include the syntax element numTemporalLayers. A numTemporalLayers value greater than 1 indicates that the track being recorded using the applied decoder configuration is temporarily scalable. The number of time layers (lower layers or time-belower layers) included in VvcPTLRecord can be equal to numTemporalLayers. A numTemporalLayers value of 1 indicates that the track being recorded using the applied decoder configuration is not temporarily scalable. A numTemporalLayers value of 0 indicates that it is unknown whether the track being recorded using the applied decoder configuration is temporarily scalable.

[0243] Additionally, VvcPTLRecord can include the syntax element lengthSizeMinusOne. Increasing lengthSizeMinusOne by 1 indicates the length of the NALUnitLength field in the byte-based VVC video stream sample recorded by the applied decoder configuration. For example, the size of one byte can be indicated by 0. The field value should be any one of 0, 1, or 3, corresponding to an encoded length of 1 byte, 2 bytes, or 4 bytes, respectively.

[0244] Additionally, VvcPTLRecord can include the syntax element ptl_present_flag. ptl_present_flag can indicate whether the track includes a VVC bitstream corresponding to a specific set of output layers. A second value for ptl_present_flag (e.g., 1) indicates that the track includes a VVC bitstream corresponding to a specific set of output layers. In contrast, a first value for ptl_present_flag (e.g., 0) indicates that the track may not include a VVC bitstream corresponding to a specific set of output layers and may include one or more individual layers that do not form an output layer set, or a single lower layer other than the lower layer whose TemporalId is equal to 0.

[0245] Additionally, VvcPTLRecord can include the syntax element num_sub_profiles. num_sub_profiles can indicate the number of lower profiles indicated in the decoder configuration record.

[0246] Additionally, VvcPTLRecord can include the syntax element track_ptl. track_ptl can indicate the PTL of the set of output layers included in the audio track.

[0247] Additionally, VvcPTLRecord can include the syntax element output_layer_set_idx. output_layer_set_idx can indicate the index of the set of output layers of the VVC bitstream representation included in the audio track. output_layer_set_idx can be used as the value of the variable TargetOlsIdx provided by an external device of the VVC decoder to decode the bitstream included in the audio track.

[0248] Additionally, VvcPTLRecord can include the syntax element chroma_format_present_flag. chroma_format_present_flag can indicate whether chroma_format_idc exists. A first value for chroma_format_present_flag (e.g., 0) indicates that chroma_format_idc does not exist. Conversely, a second value for chroma_format_present_flag (e.g., 1) indicates that chroma_format_idc exists.

[0249] Additionally, VvcPTLRecord can include the syntax element bit_depth_present_flag. bit_depth_present_flag can indicate whether bit_depth_minus8 exists. A first value for bit_depth_present_flag (e.g., 0) indicates that bit_depth_minus8 does not exist. Conversely, a second value for bit_depth_present_flag (e.g., 1) indicates that bit_depth_minus8 exists.

[0250] Additionally, VvcPTLRecord can include the syntax element numArrays. numArrays can indicate the number of NAL cell arrays of the indicated type.

[0251] Additionally, VvcPTLRecord can include the syntax element array_completeness. array_completeness can indicate whether NAL cells of a given type exist in a predetermined array. An array_completeness of the first value (e.g., 0) can indicate that additional NAL cells of the indicated type may not exist. In contrast, an array_completeness of the second value (e.g., 1) can indicate that all NAL cells of a given type exist but are not present in the stream. Default values ​​and allowed values ​​can be restricted by sample entry names.

[0252] Additionally, VvcPTLRecord can include the syntax element NAL_unit_type. NAL_unit_type can indicate the type of NAL units in the next array. NAL_unit_type can be restricted to a value that specifies DCI, VPS, SPS, PPS, APS, prefix SEI, or suffix SEI NAL units.

[0253] Additionally, VvcPTLRecord can include the syntax element numNalus. numNalus can indicate the number of NAL units of the indicated type included in the decoder configuration record of the stream to which the decoder configuration record is applied. The SEI array should only include SEI messages of a "declarative" nature, i.e., messages that provide information about the entire stream. An example of such an SEI could correspond to a user data SEI.

[0254] Additionally, VvcPTLRecord can include the syntax element nalUnitLength. nalUnitLength indicates the length of the NAL unit in bytes. NAL units can include DCI, VPS, SPS, PPS, APS, or declarative SEI NAL units.

[0255] VVC bitstream reconstruction and data sharing

[0256] To reconstruct access units from samples of multiple tracks carrying a multi-layered VVC bitstream, the operation point can be determined first. When the VVC bitstream is represented by multiple tracks, the file parser can identify the track required for the selected operation point through the following processing.

[0257] You can find all audio tracks with VVC sample entries.

[0258] When an audio track includes a reference to an 'oref' audio track with the same ID, the ID can be identified as a VVC audio track or an 'opeg' entity group.

[0259] Such operation points can be selected from the 'opeg' entity group or the 'vopi' sample group, which is suitable for decoding capacity and application purposes.

[0260] When the 'opeg' entity group exists, the audio track set can accurately represent the selected operation point. Therefore, the VVC bitstream can be reconstructed and decoded from the audio track set.

[0261] When the 'opeg' entity group does not exist (i.e., when the 'vopi' sample group exists), the set of audio tracks required to decode the operation points selected from the 'vopi' and 'linf' sample groups can be found.

[0262] To reconstruct the bitstream from multiple VVC tracks carrying the VVC bitstream, the TemporalId, as the highest target value, needs to be determined first. When several tracks contain data for access units, alignment of each sample within a track can be performed based on the sample decoding time (i.e., without considering the time to edit the list to the sample table). When the VVC bitstream is represented by several VVC tracks, the sample decoding time should be set such that the access unit order is correct if the tracks are combined into a single stream aligned in ascending order of decoding time. The sequence of access units can be reconstructed from each sample in the desired track according to implicit reconstruction processing.

[0263] When an operation point information sample group exists, the desired audio track can be selected based on the bearer layer and reference layer as indicated in the operation point information and layer information sample groups. When an operation point entity group exists, the desired audio track can be selected based on information about the OperatingPointGroupBox. When reconstructing a bitstream containing a sublayer with a TemporalId greater than 0 in a VCL NAL unit, all sublayers within the same layer (i.e., sublayers with smaller TemporalIds in the VCL NAL unit) can be included in the resulting bitstream. Additionally, the desired audio track can be selected. When reconstructing an access unit, picture units with samples having the same decoding time can be placed in the access unit in ascending order of nuh_layer_id values.

[0264] If an access unit is reconstructed as a dependent layer and max_tid_il_ref_pics_plus1 is greater than a first value (e.g., 0), a sublayer of the reference layer can be included in the resulting bitstream, where the VCL NAL unit has a TemporalId of max_tid_il_ref_pics_plus1-1 or less within the same layer. Additionally, a desired audio track can be selected. When an access unit is reconstructed as a dependent layer and max_tid_il_ref_pics_plus1 equals the first value (e.g., 0), only IRAP picture units of the reference layer can be included in the resulting bitstream. Additionally, a desired audio track can be selected. If a 'subp' audio track reference is included in the VVC audio track, each picture unit can be reconstructed using additional constraints for End of Sequence (EOS) and End of Bitstream (EOB) NAL units. The reconstruction process can be repeated for each layer at the target operation point in ascending order of nuh_layer_id. Otherwise, each picture unit can be reconstructed. Reconstructed access units can be placed in the VVC bitstream to increase decoding time. Additionally, copies of the EOB and EOS NAL units can be removed from the VVC bitstream.

[0265] In the case of access units belonging to different sublayers within the same coded video sequence stored in the VVC bitstream and distributed across several audio tracks, each sample may contain two or more audio tracks with ESNAL units having a specific nuh_layer_id value. In this case, only one of the EOS NAL units should remain as the last of these access units in the final reconstructed bitstream and should be placed after all NAL units except for the last EOB NAL unit of that access unit. Alternatively, other EOS NAL units may be discarded. Similarly, each sample may contain one or more audio tracks containing EOB NAL units. In this case, only one of the EOB NAL units should remain in the final reconstructed bitstream and should be placed at the end of that access unit. Alternatively, other EOS NAL units may be discarded.

[0266] Since a specific layer or sublayer can be represented by one or more tracks, when the track required for the operation point is found, the desired track can be selected from the set of tracks carrying all specific layers or sublayers. If no operation point entity group exists, after selecting from tracks carrying the same layer or sublayer, the final required track can still carry some layers or sublayers that do not belong to the target operation point. The reconstructed bitstream for the target operation point will not include layers or sublayers carried in the final required track that do not belong to the target operation point. The VVC decoder configuration can use the bitstream corresponding to the target output layer set index as input, which corresponds to the TargetOlsIdx and HighestTid variables and the highest TemporalId value of the target operation point. The file parser can check whether the reconstructed bitstream includes layers and sublayers other than those included in the target operation point before it is sent to the VVC decoder.

[0267] Based on the above references Figure 9 and Figure 10 The existing syntax structure described repeatedly signals output layer set information, including the output layer set index, a list of layers (member layers) included in the output layer set, and a flag indicating whether a member layer is an output layer, for each operation point. Therefore, redundancy and signaling overhead may increase because this information may be repeatedly signaled.

[0268] To address this problem, embodiments of this disclosure may include at least one of the following configurations: in this case, the above configurations may be implemented individually or in combination of two or more configurations.

[0269] (Configuration 1): Instead of signaling output layer set information (e.g., index, member layer, output layer flag, etc.) within the loop of the operation point, the list of output layer sets can be signaled in a separate loop.

[0270] (Configuration 2): Each entry at an operation point may include an index of an entry that signals information about the output layer set during a loop through the output layer set.

[0271] (Configuration 3): For each entry in the output layer set, at least one of the following information can be signaled.

[0272] - Specifies the index of the set of output layers defined in the Video Parameter Set (VPS) of the VVC bitstream carried within the bitstream.

[0273] - The number of layers in the output layer set

[0274] - A list of layer IDs in the output layer set

[0275] - For each layer, specify whether it is an output layer.

[0276] (Configuration 4): Information about the patterns of the output layer set can exist, and this information can be used to determine whether there is additional information about each output layer set entry.

[0277] (Configuration 5): When the output layer set mode information is 0 or 1, for each entry in the output layer set, there may be no information about the number of layers in the output layer set, and this information can be inferred to be the same value as the index of the entry.

[0278] (Configuration 6): When the output layer set mode information is 0 or 1, for each entry in the output layer set, there may be no information about the index of the output layer set, and this information can be inferred to be equal to the value of the index of the entry.

[0279] (Configuration 7): A flag can be provided specifying which output layer set entries have sparse layer IDs. Output layer set entries with sparse layer IDs can imply the presence of layer ID gaps. In this case, an output layer set entry can have a layer ID x and a layer ID x+y (where y is greater than x), but can not have a layer ID k (where k is greater than x and less than y). In this disclosure, the flag can be called sparse_layer_id_present_flag.

[0280] (Configuration 8): When the output layer set mode information is 0 or 1 and sparse_layer_id_present_flag is 0, there is no output layer flag, and the following can be applied to each entry of the output layer set.

[0281] - When the output layer set mode is 0, only the layer with the highest layer ID is the output layer.

[0282] - When the output layer set mode is 1, all layers are output layers.

[0283] The following will describe in detail the implementation of this disclosure including all or some of the configurations described above.

[0284] Implementation Method 1

[0285] Figure 12 This is a diagram illustrating the syntax structure VvcOperatingPointsRecord for signaling operation point information according to an embodiment of this disclosure. Figure 12 The syntax structure can be partially equal to / similar to Figure 9 The grammatical structure of [the language / structure]. The following text will primarily describe [the syntax / structure]. Figure 9 Differences in grammatical structure.

[0286] Reference Figure 12 The VvcOperatingPointsRecord can include the syntax element num_profile_tier_level_minus1. Increasing 1 to num_profile_tier_level_minus1 indicates the number of subsequent profile, tier, and level (PTL) combinations and the fields associated with them.

[0287] In addition, VvcOperatingPointsRecord can include the syntax element ptl_max_temporal_id[i]. ptl_max_temporal_id[i] can indicate the maximum TemporalID of the NAL unit of the associated bitstream for the i-th PTL structure. Here, i can be greater than or equal to 0 and less than or equal to the value of num_profile_tier_level_minus1. ptl_max_temporal_id[i] can have the same value as max_temporal_id, which will be described later, but the semantics of ptl_max_temporal_id[i] can differ from the semantics of max_temporal_id.

[0288] In addition, VvcOperatingPointsRecord can include the syntax element ptl[i]. ptl[i] can indicate the i-th PTL structure. Here, i can be greater than or equal to 0 and less than or equal to the value of num_profile_tier_level_minus1. ptl[i] can have the class type VvcPTLRecord(ptl_max_temporal_id[i]+1). The VvcPTLRecord syntax structure is as described above. Figure 11 As described.

[0289] Additionally, VvcOperatingPointsRecord can include the syntax element num_olss. num_olss indicates the number of output layer sets present in the VvcOperatingPointsRecord syntax structure.

[0290] Additionally, VvcOperatingPointsRecord can include the syntax element ols_mode_idc. ols_mode_idc can indicate the mode of the output layer set present in the VvcOperatingPointsRecord syntax structure. Here, the mode of the output layer set can be defined, for example, in a standard document such as ISO / IEC 23090-3.

[0291] Additionally, VvcOperatingPointsRecord can include the syntax element sparse_layer_id_present_flag. A first value for sparse_layer_id_present_flag (e.g., 0) indicates that layer ID gaps do not exist in each output layer present in the VvcOperatingPointsRecord syntax structure. Conversely, a second value for sparse_layer_id_present_flag (e.g., 1) indicates that the aforementioned constraint is not applied. In other words, when sparse_layer_id_present_flag has a second value (e.g., 1), layer ID gaps may exist in each set of output layers present in the VvcOperatingPointsRecord syntax structure.

[0292] Furthermore, VvcOperatingPointsRecord does not include the reference mentioned above. Figure 9 The described syntax elements are each_layer_is_an_ols_flag and all_independent_layers_flag. Therefore, VvcOperatingPointsRecord can include the syntax element ols_mode_idc regardless of whether all layers are encoded independently (i.e., the value of all_independent_layers_flag). In this respect, VvcOperatingPointsRecord can be with... Figure 9 The situations differ. When all_independent_layers_flag has a first value (e.g., 0), VvcOperatingPointsRecord includes the syntax element ols_mode_idc, and when all_independent_layers_flag has a second value (e.g., 1), VvcOperatingPointsRecord includes the syntax element each_layer_is_an_ols_flag. Additionally, VvcOperatingPointsRecord can be used with... Figure 9The situation is different because it includes the syntax element sparse_layer_id_present_flag.

[0293] Additionally, VvcOperatingPointsRecord can include the syntax element plt_idx[i]. plt_idx[i] can indicate a zero-based index of the enumerated PTL structure for the i-th output layer set. Here, i can be equal to or greater than 0, and can be equal to or less than the value of num_olss.

[0294] Additionally, VvcOperatingPointsRecord may include the syntax element output_layer_set_idx[i]. output_layer_set_idx[i] may indicate the index of the i-th output layer set in the VvcOperatingPointsRecord syntax structure, which is specified by a list of output layer sets in the Video Parameter Set (VPS). Here, i can be equal to or greater than 0, and can be equal to or less than the value of num_olss. In one example, output_layer_set_idx[i] may exist (or be signaled) when ols_mode_idc is 2. In another example, output_layer_set_idx[i] may exist when ols_mode_idc is 0 or 1. However, implementations of this disclosure are not limited to the examples described above. For example, output_layer_set_idx[i] may exist when ols_mode_idc is 0 to 2, or output_layer_set_idx[i] may exist regardless of the value of ols_mode_idc. When output_layer_set_idx[i] does not exist, the value of output_layer_set_idx[i] can be inferred to be equal to the value of i.

[0295] Additionally, VvcOperatingPointsRecord can include the syntax element layer_count[i]. layer_count[i] can indicate the number of layers in the i-th output layer set. Here, i can be equal to or greater than 0, and less than the value of num_olss. In one example, layer_count[i] can exist (or be signaled) when ols_mode_idc is 2. In another example, layer_count[i] can exist when ols_mode_idc is 0 or 1. However, implementations of this disclosure are not limited to the examples above. For example, layer_count[i] can exist when ols_mode_idc is 0 to 2, or layer_count[i] can exist regardless of the value of ols_mode_idc. When layer_count[i] does not exist, the value of layer_count[i] can be inferred to be equal to the value of i+1.

[0296] Additionally, VvcOperatingPointsRecord may include the syntax element layer_id[i][j]. layer_id[i][j] may indicate the nuh_layer_id value of the j-th layer in the i-th output layer set. Here, i may be equal to or greater than 0 and less than the value of num_olss, and j may be equal to or greater than 0 and less than the value of layer_count. In one example, layer_id[i][j] may exist (or be signaled) when ols_mode_idc is 2 or sparse_layer_id_present_flag has a second value (e.g., 1). However, implementations of this disclosure are not limited to the above example. For example, layer_id[i][j] may exist when ols_mode_idc is 0 or 1, or layer_id[i][j] may exist regardless of the values ​​of ols_mode_idc and sparse_layer_id_present_flag. When layer_id[i][j] does not exist, the value of layer_id[i][j] can be inferred to be equal to the value of j.

[0297] Furthermore, VvcOperatingPointsRecord can include the syntax element is_output_layer[i][j]. Is_output_layer[i][j] having a first value (e.g., 0) can indicate that layer j is not an output layer in the set of output layers i. In contrast, is_output_layer[i][j] having a second value (e.g., 1) can indicate that layer j is an output layer in the set of output layers i. Here, i can be equal to or greater than 0 and less than the value of num_olss, and j can be equal to or greater than 0 and less than the value of layer_count. In one example, is_output_layer[i][j] can exist (or be signaled) when ols_mode_idc is 2 or sparse_layer_id_present_flag has a second value (e.g., 1). However, implementations of this disclosure are not limited to the examples described above. For example, is_output_layer[i][j] can exist when ols_mode_idc is 0 or 1, or is_output_layer[i][j] can exist regardless of the values ​​of ols_mode_idc and sparse_layer_id_present_flag. When is_output_layer[i][j] does not exist, the value of is_output_layer[i][j] can be inferred as follows.

[0298] - When ols_mode_idc is 1, the value of is_output_layer[i][j] can be inferred as the second value (e.g., 1).

[0299] - In contrast, when is_output_layer[i][j] is 0 and j is layer_count[i]-1, the value of is_output_layer[i][j] can be inferred to be the second value (e.g., 1).

[0300] - In other cases, the value of is_output_layer[i][j] can be inferred as the first value (e.g., 0).

[0301] In addition, the above-mentioned syntax elements ptl_idx[i], output_layer_set_idx[i], layer_count[i], layer_id[i][j], and is_output_layer[i][j] may exist in a loop for the output layer set (i.e., for(i = 0; i < num_olss; i++)). Thus, the number of syntax elements included in VvcOperatingPointsRecord may correspond to the number of output layer sets (i.e., num_olss). In this regard, VvcOperatingPointsRecord may be different from Figure 9 the case of Figure 9 , where the syntax elements ptl_idx, output_layer_set_idx, layer_count, layer_id, and is_outputlayer exist in a loop for the operating points (i.e., for(i = 0; i < num_operating_points; i++)).

[0302] In addition, VvcOperatingPointsRecord may include the syntax element num_operating_points. num_operating_points may indicate the number of operating points.

[0303] In addition, VvcOperatingPointsRecord may include the syntax element ols_idx. ols_idx may indicate the index of the output layer set associated with the operating point specified in the list of output layer sets in the VvcOperatingPointsRecord syntax structure. ols_idx may be different from the above-mentioned syntax element output_layer_set_idx[i] because it indicates the index of the output layer set associated with the operating point.

[0304] In addition, VvcOperatingPointsRecord may include the syntax element max_temporal_id. max_temporal_id may indicate the maximum TemporalId of the NAL unit corresponding to the operating point. Here, the maximum TemporalId may have a different semantics from the semantics of the maximum TemporalId indicated in the layer information sample group. However, the two may have the same value as each other.

[0305] Additionally, VvcOperatingPointsRecord can include the syntax elements frame_rate_info_flag, bit_rate_info_flag, avgFrameRate, constantFrameRate, maxBitRate, avgBitRate, max_layer_count, layerID, num_direct_ref_layers, direct_ref_layerID, and max_tid_il_ref_pics_plus1. The semantics of these syntax elements are as described above. Figure 9 As described.

[0306] As described above, according to Embodiment 1 of this disclosure, information about the output layer set (e.g., output_layer_set_idx[i], layer_count[i], etc.) can be signaled for each output layer set instead of for each operation point. Therefore, information redundancy can be prevented, and signaling efficiency can be further improved.

[0307] Implementation Method 2

[0308] Figure 13 This is a diagram illustrating the syntax structure OperatingPointGroupBox for signaling operation point entity groups according to one embodiment of this disclosure. Figure 13 The syntax structure can be partially equal to / similar to Figure 10 The grammatical structure of [the language / structure]. The following text will primarily describe [the syntax / structure]. Figure 10 Differences in grammatical structure.

[0309] Reference Figure 13 The OperatingPointGroupBox can include the syntax element num_profile_tier_level_minus1. The semantics of num_profile_tier_level_minus1 are as described above. Figure 10 As described.

[0310] Additionally, OperatingPointGroupBox can include the syntax element opeg_ptl[i]. opeg_ptl[i] can indicate the i-th PTL structure. Here, i can be equal to or greater than 0 and can be equal to or less than the value of num_profile_tier_level_minus1. opeg_ptl[i] can have the class type VvcPTLRecord(0). The VvcPTLRecord syntax structure is as described above. Figure 11 As described.

[0311] In addition, the OperatingPointGroupBox may include the syntax elements num_olss, ols_mode_idc, and sparse_layer_id_present_flag. The semantics of the syntax elements are as described above with reference to Figure 12 what has been described. Because it includes the above syntax elements, the OperatingPointGroupBox may be different from Figure 10 the case of

[0312] In addition, the OperatingPointGroupBox may include the syntax element ptl_idx[i]. Here, i may be less than the value of num_olss, and the value of num_olss is equal to or greater than 0. The semantics of the syntax element are as described above with reference to Figure 12 what has been described.

[0313] In addition, the OperatingPointGroupBox may include the syntax elements ptl_idx[i], output_layer_set_idx[i], and layer_count[i]. Here, i may be less than the value of num_olss, and the value of num_olss is equal to or greater than 0. The semantics of the syntax elements are as described above with reference to Figure 12 what has been described. In one example, when ols_mode_idc is 0 or 1, output_layer_set_idx[i] and layer_count[i] may be present (or signaled). In another example, when ols_mode_idc is 2, output_layer_set_idx[i] and layer_count[i] may be present. However, the embodiments of the present disclosure are not limited to the above examples. For example, when ols_mode_idc is 0 to 2, output_layer_set_idx[i] and layer_count[i] may be present, or output_layer_set_idx[i] and layer_count[i] may be present regardless of the value of ols_mode_idc. In addition, the syntax elements may be present in a loop for the output layer set (i.e., for(i = 0; i < num_olss; i++)). In this regard, the OperatingPointGroupBox may be different from Figure 10 the case where the syntax elements ptl_idx, output_layer_set_idx, and layer_count are present in a loop for the operating points (i.e., for(i = 0; i < num_operating_points; i++)).

[0314] In addition, the OperatingPointGroupBox may include syntax elements layer_id[i][j] and is_output_layer[i][j]. Here, i may be equal to or greater than 0 and less than the value of num_olss, and j may be equal to or greater than 0 and less than the value of layer_count. The semantics of the syntax elements are as described above with reference to Figure 12 the description. In one example, when ols_mode_idc is 2 or the sparse_layer_id_present_flag has a second value (e.g., 1), layer_id[i][j] and is_output_layer[i][j] may be present (or signaled). However, embodiments of the present disclosure are not limited to the above examples. For example, when ols_mode_idc is 0 or 1, layer_id[i][j] and is_output_layer[i][j] may be present, or layer_id[i][j] and is_output_layer[i][j] may be present regardless of the values of ols_mode_idc and the sparse_layer_id_present_flag. In addition, the syntax elements may be present in a loop for the set of output layers (i.e., for(i = 0; i < num_olss; i++)). In this regard, the OperatingPointGroupBox may be different from Figure 10 the case where the syntax elements layer_id and is_outputlayer are present in a loop of operating points (i.e., for(i = 0; i < num_operating_points; i++)).

[0315] In addition, the VvcOperatingPointsRecord may include a syntax element num_operating_points that specifies the number of operating points.

[0316] In addition, the VvcOperatingPointsRecord may include syntax elements ols_idx, max_temporal_id, frame_rate_info_flag, bit_rate_info_flag, avgFrameRate, constantFrameRate, maxBitRate, and avgBitRate. The semantics of the syntax elements are as described above with reference to Figure 12 the description.

[0317] Additionally, VvcOperatingPointsRecord can include the syntax element entity_count. entity_count can indicate the number of tracks present at the operation point.

[0318] Additionally, VvcOperatingPointsRecord can include the syntax element entity_idx. entity_idx can indicate the index of the list of entity_ids in the entity group belonging to the operation point.

[0319] As described above, according to Embodiment 2 of this disclosure, information about the output layer set (e.g., output_layer_set_idx[i], layer_count[i], etc.) can be signaled for each output layer set instead of for each operation point. Therefore, information redundancy can be prevented, and signaling efficiency can be further improved.

[0320] The method for generating / receiving media files according to embodiments of this disclosure will be described in detail below.

[0321] Figure 14 This is a flowchart illustrating a media file receiving method according to an embodiment of the present disclosure. Figure 14 Each step can be performed by the media file receiving device. In one example, the media file receiving device can correspond to... Figure 1 Receiving device B.

[0322] Reference Figure 14 The media file receiving device can obtain operation point information of video data from the media file received by the self-media file generating / sending device (S1410). In the example, the media file may have a file format such as ISO Basic Media File Format (ISO BMFF), Common Media Application Format (CMAF), etc.

[0323] The media file receiving device can process video data based on the obtained operation point information (S1420). Here, video data processing includes decapsulating the media file, obtaining video data from the decapsulated media file, and decoding the obtained video data according to a video codec standard (e.g., VVC standard).

[0324] In one implementation, step S1410 may include obtaining first information (e.g., num_olss) about the number of output layer sets of specified video data. Step S1410 may include obtaining second information about the output layer sets based on the first information (e.g., ptl_idx[i], output_layer_set_idx[i], layer_count[i], layer_id[i][j], is_output_layer[i][j], etc.). Furthermore, step S1410 may include obtaining third information (e.g., num_operating_points) about the number of operation points specified for the output layer sets. Additionally, step S1410 may include obtaining fourth information (e.g., ols_idx, max_temporal_id, etc.) about the output layer sets associated with the operation points based on the third information.

[0325] In one implementation, the amount of second information may correspond to the amount of output layer set.

[0326] In one implementation, the second information may include first field information (or syntax elements) specifying an index to the listed PTL (profile, hierarchy, and level) structure for each of the output layer sets. The first field information may correspond to, for example, the above reference. Figure 12 and Figure 13 The description is ptl_idx.

[0327] Furthermore, in one implementation, the second information may include second field information specifying the index of each of the output layer sets. The second field information may correspond to, for example, the information referenced above. Figure 12 and Figure 13 The description is output_layer_set_idx[i].

[0328] Furthermore, in one implementation, the second information may include a third field specifying the number of layers included in each of the output layer sets. For example, the third field information may correspond to the above reference. Figure 12 and Figure 13 The described layer_count[i].

[0329] Additionally, in one implementation, a fourth field may be included specifying the nuh_layer_id of each layer included in each of the output layer sets. This fourth field may correspond to, for example, the reference above. Figure 12 and Figure 13 The layer_id[i][j] described.

[0330] Furthermore, in one implementation, the second information may include a fifth field specifying whether each layer included in each of the output layer sets is an output layer. This fifth field information may correspond to, for example, the information referenced above. Figure 12 and Figure 13 The description is_output_layer[i][j].

[0331] In one implementation, the number of fourth pieces of information may correspond to the number of operation points.

[0332] In one implementation, the fourth information may include a sixth field specifying an index to the set of output layers associated with each of the operation points. This sixth field information may correspond to, for example, the information referenced above. Figure 12 and Figure 13 The description is ols_idx.

[0333] Furthermore, in one implementation, the fourth information may include a seventh field of information about the maximum TemporalId of the Network Abstraction Layer (NAL) unit for each specified operation point. This seventh field information may correspond to, for example, the information referenced above. Figure 12 and Figure 13 The description is max_temporal_id.

[0334] Figure 15 This is a flowchart illustrating a media file generation method according to an embodiment of the present disclosure. Figure 15 Each step can be performed by a media file generation device. In one example, the media file generation device can correspond to... Figure 1 Transmitting device A.

[0335] Reference Figure 15 The media file generation device can encode video data (S1510). In the example, the video data can be encoded according to a video codec standard (e.g., the VVC standard) through a prediction, transformation, and quantization process.

[0336] The media file generation device can generate operation point information for encoded video data (S1520). In the example, see above. Figure 12 The operation point information is configured in the described VvcOperatingPointsRecord syntax structure. Additionally, please refer to the above text. Figure 13 The described OperatingPointGroupBox syntax structure configures the operation point information.

[0337] The media file generation device can generate media files based on encoded video data and operation point information (S1530). In the example, the media file can have a file format such as ISO Basic Media File Format (ISO BMFF), Common Media Application Format (CMAF), etc.

[0338] In one implementation, step S1520 may include generating first information about the number of output layer sets specifying the encoded video data. Furthermore, step S1520 may include generating second information about the output layer sets based on the first information. Furthermore, step S1520 may include generating third information about the number of operation points specifying the output layer sets. Furthermore, step S1520 may include generating fourth information about the output layer sets associated with the operation points based on the third information.

[0339] In one implementation, the amount of second information may correspond to the number of output layer sets (e.g., num_olss). In this case, the second information may include at least one of the first to fifth field information. Details of the first to fifth field information are as described above. Figure 14 As described.

[0340] In one implementation, the number of fourth pieces of information may correspond to the number of operation points (e.g., num_operating_points). In this case, the fourth pieces of information may include at least one of the sixth or seventh field information. Details of the sixth or seventh field information are as described above. Figure 14 As described.

[0341] The generated media files can be sent to a media file receiving device via recording media or a network.

[0342] As described above, according to embodiments of this disclosure, information about the output layer set can be signaled for each output layer set instead of for each operation point. That is, the amount of information about the output layer set can correspond to the number of output layer sets. Therefore, information redundancy (which might occur when each output layer set includes multiple operation points) can be prevented, and signaling efficiency can be further improved.

[0343] Figure 16 This is a diagram illustrating a content flow system to which embodiments of the present disclosure can be applied.

[0344] like Figure 16 As shown, the content streaming system applying the embodiments of this disclosure may mainly include an encoding server, a streaming server, a network server, a media storage device, a user device, and a multimedia input device.

[0345] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream and then sends the bitstream to the streaming server. As another example, when multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server can be omitted.

[0346] The bitstream can be generated by an image encoding method or image encoding device applying the embodiments of this disclosure, and the stream server can temporarily store the bitstream during the sending or receiving of the bitstream.

[0347] A streaming server sends multimedia data to a user's device based on a request from a web server, and the web server acts as a medium for informing the user about the service. When a user requests a service from the web server, the web server can deliver it to the streaming server, and the streaming server can send the multimedia data to the user. In this scenario, the content streaming system may include a separate control server. In this case, the control server is used to control the commands / responses between devices in the content streaming system.

[0348] A streaming server can receive content from media storage devices and / or encoding servers. For example, when receiving content from an encoding server, the content can be received in real time. In this case, to provide a smooth streaming service, the streaming server can store the bitstream for a predetermined period of time.

[0349] Examples of user devices may include mobile phones, smartphones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, board PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head-mounted displays), digital televisions, desktop computers, digital signage, etc.

[0350] In a content streaming system, each server can operate as a distributed server, in which case the data received from each server can be distributed.

[0351] The scope of this disclosure includes software or machine-executable commands (e.g., operating systems, applications, firmware, programs, etc.) for enabling the operation of methods according to various embodiments to be executed on a device or computer, and non-transitory computer-readable media having such software or commands stored thereon and executable on a device or computer.

[0352] Industrial applicability

[0353] The embodiments disclosed herein can be used to generate and send / receive media files.

Claims

1. A media file receiving method performed by a media file receiving device, the media file receiving device being used to receive a media file of a predetermined format, the media file including video data, the method comprising the following steps: Obtain operation point information for video data from media files; as well as The video data is processed based on the obtained operation point information. The steps for obtaining the operation point information include the following: Obtain first information specifying the number of output layer sets for the video data; Based on the first information, obtain second information about the output layer set; Obtain third information specifying the number of operation points for the output layer set; and Based on the third information, fourth information about the set of output layers associated with the operation point is obtained. The quantity of the second information corresponds to the quantity of the output layer set.

2. The method according to claim 1, wherein, The second information includes a first field, which specifies an index of the listed profile, hierarchy, and level PTL structure for each of the output layer sets.

3. The method according to claim 1, wherein, The second information includes a second field that specifies the index of each of the output layer sets.

4. The method according to claim 1, wherein, The second information includes a third field specifying the number of layers included in each of the output layer sets.

5. The method according to claim 1, wherein, The second information includes a fourth field specifying the nuh_layer_id of each layer included in each of the output layer sets.

6. The method according to claim 1, wherein, The second information includes a fifth field specifying whether each layer included in each of the output layer sets is an output layer.

7. The method according to claim 1, wherein, The number of the fourth information corresponds to the number of the operation points.

8. The method according to claim 1, wherein, The fourth information includes a sixth field that specifies the index of the output layer set associated with each of the operation points.

9. The method according to claim 1, wherein, The fourth information includes a seventh field that specifies the maximum TemporalId of the Network Abstraction Layer (NAL) unit for each of the operation points.

10. A media file receiving device, the media file receiving device comprising a memory and at least one processor, the at least one processor being configured to perform the following operations: Obtain operation point information for video data from media files; as well as The video data is processed based on the obtained operation point information. The operation point information is obtained through the following operations: Obtain first information specifying the number of output layer sets for the video data; Based on the first information, obtain second information about the output layer set; Obtain third information specifying the number of operation points for the output layer set; and Based on the third information, fourth information about the set of output layers associated with the operation point is obtained. The quantity of the second information corresponds to the quantity of the output layer set.

11. A media file generation method performed by a media file generation device, the media file generation device being used to generate a media file of a predetermined format, the media file including video data, the method comprising the following steps: Encode the video data; Generate operation point information for encoded video data; as well as A media file is generated based on the encoded video data and the generated operation point information. The step of generating the operation point information includes the following steps: Generate first information specifying the number of output layer sets for the encoded video data; Generate second information about the output layer set based on the first information; Generate third information specifying the number of operation points for the output layer set; and Based on the third information, generate fourth information about the set of output layers associated with the operation point. The quantity of the second information corresponds to the quantity of the output layer set.

12. The method according to claim 11, wherein, The number of the fourth information corresponds to the number of the operation points.

13. A method for sending a media file generated by the media file generation method according to claim 11.

14. A media file generation device, the media file generation device comprising a memory and at least one processor, the at least one processor being configured to perform the following operations: Encode the video data; Generate operation point information for encoded video data; as well as A media file is generated based on the encoded video data and the generated operation point information, wherein the operation point information is generated through the following operations: Generate first information specifying the number of output layer sets for the encoded video data; generate second information about the output layer sets based on the first information; Generate third information specifying the number of operation points for the output layer set; and Based on the third information, a fourth information about the set of output layers associated with the operation point is generated, wherein the number of the second information corresponds to the number of the set of output layers.