Signaling of picture-in-picture in media files

By using less than 8 bits of codec area identifier type and specifying that num_region_ids is greater than 0 in ISOBMFF media files, the problems of low encoding and codec efficiency and poor compatibility in the prior art are solved, and more efficient picture-in-picture Signaling notification and multi-function video codec support.

CN119174169APending Publication Date: 2024-12-20DOUYIN CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380039812.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-09
Filing Date
2023-05-09
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

The existing picture-in-picture signaling notification design in media files based on ISOBMFF has problems such as low encoding and decoding efficiency, inflexible area identifier type codec, and num_region_ids value allowed to be 0, which limits the compatibility and efficiency of video codecs. .

Method used

Use less than 8 bits to code the region identifier type field, specify that the value of num_region_ids is greater than 0, and use the VVC sub-picture ID in the case of VVC codec to ensure compatibility and codec efficiency.

Benefits of technology

It improves the encoding and codec efficiency and compatibility of picture-in-picture signaling notifications, supports the application of multi-function video codecs, and enhances the encoding and codec capabilities of different video tracks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119174169A_ABST
    Figure CN119174169A_ABST
Patent Text Reader

Abstract

A mechanism for processing video data is disclosed. A type of a value taken by a region identifier (ID) in a region identifier (ID) type field (region type) is determined. The type of the value taken by the region ID is encoded and decoded in a region ID type field using four or less bits. A conversion between the visual media data and the media data file is performed based on the type of the value taken by the region ID in the region ID type field.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to and the benefit of U.S. Patent Application No. 63 / 339,676, filed on May 9, 2022, which is incorporated herein by reference in its entirety. Technical Field

[0003] The present disclosure relates to the generation, storage and consumption of digital audio-visual media information in file formats. Background Art

[0004] Digital video accounts for the largest share of bandwidth used on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, bandwidth demands for digital video usage are likely to continue to grow. Summary of the invention

[0005] A first aspect relates to a method for processing video data, comprising: determining a value of a region identifier (ID) type (region_id_type) in a region identifier (ID) type field, wherein the value of the region ID type is encoded and decoded in the region ID type field using four bits or less; and performing conversion between visual media data and a media data file based on the value of the region ID in the region ID type field.

[0006] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides: reserving a remaining set of four or more bits in the area ID type field.

[0007] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: the region ID type equal to zero specifies that the region ID is a versatile video codec (VVC) sub-picture ID.

[0008] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: the area ID type indicates the type of value taken by the area ID.

[0009] Optionally, in any of the aforementioned aspects, another embodiment of this aspect provides that: the region ID is used for signaling notification of picture-in-picture in International Organization for Standardization Base Media File Format (ISOBMFF).

[0010] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: the media data file includes the International Organization for Standardization Base Media File Format (ISOBMFF).

[0011] A second aspect relates to a method for processing video data, comprising: determining a value of a number of region identifiers, wherein the value of the number of region identifiers is constrained to be greater than zero; and performing conversion between visual media data and a media data file based on the value of the number of region identifiers.

[0012] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: the number of region identifiers is expressed as the number of region identifiers minus one (num_region_ids_minus1).

[0013] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides: num_region_ids_minus1 plus a specified region identifier (region_id[i]).

[0014] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: the region identifier provides the i-th ID of the coded video data unit representing the target picture-in-picture region.

[0015] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: the region identifier is determined according to a loop specified by for(i=0; i<=num_region_ids_minus1; i++).

[0016] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: the number of region identifiers is represented as num_region_ids.

[0017] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: the number of region identifiers is expressed as num_region_ids_minus1.

[0018] A third aspect relates to a method for processing video data, comprising: determining a value of a region identifier type (region_id_type), wherein, when a video codec used to encode and decode a main video track and a picture-in-picture (PiP) video track is a versatile video codec (VVC), the value of the region identifier type is equal to zero, specifying that the region identifier (ID) is a VVC sub-picture ID; and performing a type of conversion between visual media data and a media data file based on the value of the region identifier type.

[0019] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: when the video codec of the main video track is not VVC, a value of the region ID type equal to zero is reserved.

[0020] Optionally, in any of the aforementioned aspects, another implementation of this aspect provides that: when the video codec used to encode and decode the main video track and the picture-in-picture video track is not VVC, a value of the region ID type equal to zero is reserved.

[0021] Optionally, in any of the preceding aspects, another implementation of this aspect provides that: when the video codec used for the main video track is VVC, the sample entry type is vvc1, vvi1 or vvs1.

[0022] A fourth aspect relates to an apparatus for processing video data, comprising: a processor; and a non-transitory memory having instructions thereon, wherein when the instructions are executed by the processor, the processor is caused to perform any one of the preceding aspects.

[0023] The fifth aspect relates to a non-temporary computer-readable medium, which includes a computer program product for use by a video codec device, the computer program product including computer executable instructions stored on the non-temporary computer-readable medium, so that when the computer executable instructions are executed by a processor, the video codec device performs the method of any one of the preceding aspects.

[0024] A sixth aspect relates to a non-temporary computer-readable recording medium storing a bit stream of a video generated by a method performed by a video processing device, wherein the method includes: determining a value of a region identifier (ID) type (region_id_type) in a region identifier (ID) type field, wherein the value of the region ID type is encoded and decoded in the region ID type field using four or less bits; and performing conversion between visual media data and a media data file based on the value of the region ID in the region ID type field.

[0025] A seventh aspect relates to a method for storing a bitstream of a video, comprising: determining a value of a region identifier (ID) type (region_id_type) in a region identifier (ID) type field, wherein the value of the region ID type is encoded and decoded in the region ID type field using four or less bits; generating a bitstream based on the determination; and storing the bitstream in a non-temporary computer-readable recording medium.

[0026] An eighth aspect relates to a non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by a video processing device, wherein the method includes: determining a value of a number of region identifiers, wherein the value of the number of region identifiers is constrained to be greater than zero; and performing conversion between visual media data and a media data file based on the value of the number of region identifiers.

[0027] A ninth aspect relates to a method for storing a bitstream of a video, comprising: determining a value of a number of region identifiers, wherein the value of the number of region identifiers is constrained to be greater than zero; generating a bitstream based on the determination; and storing the bitstream in a non-temporary computer-readable recording medium.

[0028] The tenth aspect relates to a non-temporary computer-readable recording medium storing a bitstream of a video generated by a method performed by a video processing device, wherein the method includes: determining a value of a region identifier type (region_id_type), wherein, when a video codec used to encode and decode a main video track and a picture-in-picture (PiP) video track is a versatile video codec (VVC), the value of the region identifier type is equal to zero, specifying that the region identifier (ID) is a VVC sub-picture ID; and performing a conversion type between visual media data and a media data file based on the value of the region identifier type.

[0029] The eleventh aspect relates to a method for storing a bitstream of a video, comprising: determining a value of a region identifier type (region_id_type), wherein, when the video codec used to encode and decode a main video track and a picture-in-picture (PiP) video track is VVC, the value of the region identifier type is equal to zero, specifying that the region identifier (ID) is a versatile video codec (VVC) sub-picture ID; generating a bitstream based on the determination; and storing the bitstream in a non-temporary computer-readable recording medium.

[0030] A twelfth aspect relates to the method, device or system described in the present disclosure.

[0031] For clarity, any of the aforementioned embodiments may be combined with any one or more of the other aforementioned embodiments to create new embodiments within the scope of the present disclosure.

[0032] These and other features will become more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0033] For a more complete understanding of the present disclosure, reference is now made to the following brief description, taken in conjunction with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.

[0034] Figure 1 is a block diagram illustrating an example video processing system.

[0035] Figure 2 is a block diagram of an example video processing device.

[0036] Figure 3 is a flowchart of an example method of processing video data according to an embodiment of the present disclosure.

[0037] Figure 4 is a flowchart of an example method of processing video data according to an embodiment of the present disclosure.

[0038] Figure 5 is a flowchart of an example method of processing video data according to an embodiment of the present disclosure.

[0039] Figure 6 is a block diagram illustrating an example video codec system.

[0040] Figure 7 is a block diagram illustrating an example encoder.

[0041] Figure 8 is a block diagram illustrating an example decoder.

[0042] Fig. 9 is a schematic diagram of an example encoder. DETAILED DESCRIPTION

[0043] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein, which are instead provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.

[0044] First, it should be understood that although illustrative implementations of one or more embodiments are provided below, the disclosed systems and / or methods may be implemented using any number of techniques, whether currently known or yet to be developed. The present disclosure should not be limited in any way to the exemplary implementations, drawings, and techniques shown below, including the exemplary designs and implementations shown and described herein, but may be modified within the scope of the appended claims and their full scope of equivalents.

[0045] Section headings are used in this document for ease of understanding and do not limit the applicability of the techniques and embodiments disclosed in each section to only that section. In addition, H.266 technical terms are used in some descriptions only for ease of understanding and are not intended to limit the scope of what is disclosed. Therefore, the techniques described herein are also applicable to other video codec protocols and designs. In this disclosure, editorial changes to the text relative to the draft of the VVC specification or the ISOBMFF file format specification are indicated by bold italics to indicate cancelled text and bold underline to indicate added text.

[0046] 1. Preliminary Discussion

[0047] The present disclosure relates to media file formats. Specifically, it relates to signaling notification of picture-in-picture services in media files. These mechanisms can be applied to media file formats alone or in various combinations, such as the carriage of structured video based on the International Organization for Standardization (ISO) Basic Media File Format (ISOBMFF) or its extensions and / or the Network Abstraction Layer (NAL) unit in ISOBMFF.

[0048] 2. Video Codec Introduction

[0049] 2.1 Video Codec Standards

[0050] Video codec standards have evolved primarily through the development of standards by the International Telecommunication Union (ITU) Telecommunication Standardization Sector (ITU-T) and ISO / International Electrotechnical Commission (IEC). ITU-T developed H.261 and H.263, ISO / IEC developed Moving Picture Experts Group (MPEG)-1 and MPEG-4 Visual, and the two organizations jointly developed H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Codec (AVC), and H.265 / High Efficiency Video Codec (HEVC) [1] standards. Since H.262, video codec standards have been based on a hybrid video codec structure that utilizes temporal prediction plus transform codec. To explore future video codec technologies beyond HEVC, the Video Coding Experts Group (VCEG) and MPEG jointly established the Joint Video Exploration Team (JVET). Many of the approaches have been adopted by JVET and incorporated into a reference software called the Joint Exploration Model (JEM) [2]. When the Versatile Video Codec (VVC) project was officially launched, JVET was renamed the Joint Video Experts Team (JVET). VVC[3] is a codec standard that aims to reduce the bit rate by 50% compared to HEVC.

[0051] The Versatile Video Codec (VVC) standard (ITU-T H.266 | ISO / IEC 23090-3)[3][4] and the related Versatile Supplementary Enhancement Information (VSEI) standard (ITU-T H.274 | ISO / IEC 23002-7)[5][6] are designed for the widest range of applications, including traditional uses (such as television broadcasting, video conferencing or playback from storage media), as well as newer and more advanced use cases (such as adaptive bitrate streaming, video region extraction, combination and merging of content from multiple codec video bitstreams, multi-view video, scalable layered codecs and viewport-adaptive 360° immersive media).

[0052] The Essential Video Codec (EVC) standard (ISO / IEC 23094-1) is another video codec standard being developed by MPEG.

[0053] 2.2 File Format Standards

[0054] Media streaming applications are based on Internet Protocol (IP), Transmission Control Protocol (TCP) and Hypertext Transfer Protocol (HTTP) transport methods and rely on file formats such as ISO Base Media File Format (ISOBMFF) [7]. One such streaming system is dynamic adaptive streaming over HTTP (DASH) [8]. In order to use video formats with ISOBMFF and DASH, file format specifications specific to the video format will be required, such as the AVC file format and the HEVC file format in [9], which will be used to encapsulate the video content in ISOBMFF tracks and DASH representations and segments. Important information about the video bitstream, such as profile, tier and level, and other information, will need to be exposed as file format level metadata and / or DASH media presentation description (MPD) for content selection, e.g., selection of appropriate media segments for both initialization at the start of a streaming session and stream adaptation during a streaming session. Similarly, in order to use an image format with ISOBMFF, a file format specification specific to that image format would be required, such as the AVC image file format and the HEVC image file format in

[10] .

[0055] 2.3 Transformation for video images presented in ISOBMFF

[0056] In ISOBMFF, the movie header box and track header box include the following matrix fields:

[0057] template int(32)[9]matrix=

[0058] {0x00010000,0,0,0,0x00010000,0,0,0,0x40000000};

[0059] / / Unity matrix

[0060] These matrix values ​​specify the transformations used to render the video image. Not all derived specifications use matrices. If a matrix is ​​not used, the matrix should be set to the Identity matrix. If a matrix is ​​used, a point (p,q) is transformed to (p',q') by the matrix as follows:

[0061] (pq 1)*|abu|=(mnz)

[0062] |cdv|

[0063] |xyw|

[0064] m=ap+cq+x; n=bp+dq+y; z=up+vq+w;

[0065] p'=m / z;q'=n / z

[0066] The coordinates {p,q} are on the decompressed frame, and {p',q'} are at the rendered output. Thus, for example, the matrix {2,0,0,0,2,0,0,0,1} exactly doubles the pixel size of the image. The coordinates transformed by the matrix may not be normalized, and the coordinates represent actual sample positions. Thus, {x,y}, for example, can be thought of as a translation vector for the image. The coordinate origin is at the upper left corner, X values ​​increase to the right and Y values ​​increase downwards. {p,q} and {p',q'} can be thought of as absolute pixel positions relative to the original image (after scaling to the size determined by the width and height of the track header) and the upper left corner of the transformed (rendered) surface, respectively.

[0067] Each track uses the specified corresponding matrix to compose the overall image. The result is then transformed and composited according to the movie-level matrix in the MovieHeaderBox. Whether the resulting image is cropped to eliminate pixels depends on the application. For example, such eliminated pixels are not displayed to the vertical rectangular area within the window. So, for example, when only one video track is displayed, the video track has a translation to {20, 30}, and the Unity matrix is ​​in the MovieHeaderBox, the application can choose not to display the empty L-shaped area between the image and the origin. All values ​​in the matrix are stored as 16.16 fixed point values, except u, v and w, which are stored as 2.30 fixed point values. The values ​​in the matrix are stored in the order of {a, b, u, c, d, v, x, y, w}. 2.4 Processing of pixel data in ISOBMFF

[0068] The processing of pixel data from the output of the decoder to its rendering on the screen may not be a conformance point to ISOBMFF. However, several structures enable such rendering features to be signaled. The conformance is based on the following assumptions.

[0069] First, under the 'iso3' brand or brands that share the corresponding requirements, the TrackHeaderBox width and height are set by assuming that the rendered pixels are square, so that the pixel aspect ratio is 1:1. For other brands, the relevant structure used for rendering is undetermined.

[0070] Second, the VisualSampleEntry records the expected dimensions of the pixel buffer required to receive the codec output. The expected dimensions may be cropped by in-stream structures. For example, when the video codec only operates in multiples of 16 pixels per row or column, the encoder will typically use 64×32 pixel blocks internally when the width and height of the video fed to the encoder is 1000×500. However, the encoder is expected to output 1000×500 video using codec-specific cropping structures that are not exposed at the ISOBMFF level. In this case, the width and height of the VisualSampleEntry field may be 1000×500.

[0071] Third, PixelAspectRatioBox records the aspect ratio of the pixels that should be applied to the decoder output, but does not imply a corresponding adjustment. The associated (multiple) adjustments should be handled by setting the scaling value in the TrackHeaderBox. For example, when the pixels are horizontally scaled by a factor of 1 / 2 before the encoder, the inverse scaling should be applied at the output of the decoder to present non-distorted video. This is done by setting the TrackHeaderBox height to the VisualSampleEntry height and the TrackHeaderBox width to twice the VisualSampleEntry width. In addition, when the in-stream structure does not carry such information, a PixelAspectRatioBox with an hSpacing that is twice or more of the corresponding vSpacing field can be used.

[0072] Fourth, a CleanApertureBox can be provided to further crop the video.

[0073] Assume that the processing of the decoded pixels is as follows. Any cropping recorded by the CleanApertureBox is applied to the pixels output by the decoder. When a CleanApertureBox is present, the cropped image is scaled horizontally by a factor of TrackHeaderBox.width / CleanAperture.width and vertically by a factor of TrackHeaderBox.height / CleanAperture.height. Otherwise, when there is no CleanApertureBox, the decoded image is then scaled horizontally by a factor of TrackHeaderBox.width / SampleEntry.width and vertically by TrackHeaderBox.height / SampleEntry.height. This operation can be referred to as normalizing the track size. The TrackHeaderBox matrix is ​​then applied. All visual tracks are superimposed in increasing order of TrackHeaderBox.layer values. The MovieHeaderBox matrix is ​​then applied to the composition. This is an example processing model, and specific implementations that follow this model should avoid resampling the image, especially when the combination of the above operations results in a unit transform.

[0074] 2.5 Track Grouping and Entity Grouping

[0075] ISOBMFF specifies both track grouping and entity grouping. Track grouping is signaled based on the Track Group box contained in the Track box. Track grouping is therefore track level signaling. The Track Group box is able to indicate a track group, where each track group shares specific characteristics, or the tracks within a track group have specific relationships. The box type of the boxes contained in the Track Group box indicates the specific characteristics or relationships. The boxes contained in the Track Group box include an identifier (ID) that can be used to infer tracks belonging to the same track group. Tracks that contain containing boxes of the same type within the Track Group box and have the same identifier value within these containing boxes belong to the same track group.

[0076] An entity group is a grouping of items and can also be a grouping of tracks. Entities in an entity group share specific characteristics or have specific relationships as indicated by the grouping type. Entity groups are indicated in the GroupsListBox. Entity groups specified in the GroupsListBox of a file-level MetaBox refer to tracks or file-level items. Entity groups specified in the GroupsListBox of a movie-level MetaBox refer to movie-level items. Entity groups specified in the GroupsListBox of a track-level MetaBox refer to track-level items for that track. The GroupsListBox contains multiple EntityToGroupBoxes, each of which specifies an entity group. The GroupsListBox includes entity groups specified for a file. This box contains a complete set of boxes, each of which is called an EntityToGroupBox, with a four-character code indicating the defined grouping type. When a GroupsListBox is present in a file-level MetaBox, the item_ID value in any ItemInfoBox in the file-level MetaBox should not be equal to the track_ID value in any TrackHeaderBox.

[0077] 2.6Picture-in-picture signaling notification in ISOBMFF

[0078] A picture-in-picture service provides the ability to include a picture with a smaller resolution within a picture with a larger resolution. Such a service can be useful for displaying two videos to a user simultaneously, whereby the video with the larger resolution is considered the primary video and the video with the smaller resolution is considered the supplementary video. Such a picture-in-picture service can be used to provide an accessibility service where the primary video is supplemented by the signage video. The design for picture-in-picture signaling in ISOBMFF is included in

[11] . The design is as follows.

[0079] 2.6.1 Picture-in-Picture Sample Group

[0080] 2.6.1.1 Definition

[0081] The Picture-in-Picture (PiP) service provides the ability to include a video with a smaller spatial resolution within a video with a larger spatial resolution (referred to as the PiP video and the main video, respectively). A video track containing a 'subt' track reference indicates that the track contains the PiP video, and the main video is contained in the reference track or any track in the alternative group (if any) to which the reference track belongs. For each pair of PiP video and main video, the window in the main video used to embed / overlay the PiP video (whose size is smaller than the main video) is indicated by the value of the matrix field of the TrackHeaderBox of the PiP video track and the main video track, and the value of the layer field of the TrackHeaderBox of the supplementary video track is required to be smaller than the value of the layer field of the main video track to layer the PiP video in front of the main video. When PicInPicInfoEntry is present in the PiP video track, it indicates that the codec video data unit representing the target PiP area in the main video can be replaced with the corresponding codec video data unit of the PiP video. In this case, the PiP video and the main video are required to be encoded and decoded using the same video codec. The absence of this sample group indicates that it is not known whether such a replacement can be made.

[0082] 2.6.1.2 Syntax

[0083] class PicInPicInfoEntry()extends VisualSampleGroupEntry('pinp'){

[0084] unsigned int(8)region_id_type;

[0085] unsigned int(8)num_region_ids;

[0086] for(i=0;i <num_region_ids;i++)

[0087] unsigned int(16)region_id[i];

[0088] }

[0089] 2.6.1.3 Semantics

[0090] When PicInPicInfoEntry is present, the player may choose to replace the codec video data unit representing the target PiP area in the main video with the corresponding codec video data unit of the PiP video before sending it to the video decoder for decoding. In this case, for a particular picture in the main video, the corresponding video data units of the PiP video are all the codec video data units in the decoded time-synchronized samples in the PiP video track.

[0091] region_id_type indicates the type of value taken by region_id. When region_id_type is equal to 0, the region ID is the VVC sub-picture ID. When region_id_type is equal to 1, the region ID is the groupID value in the NAL unit mapping sample group for NAL units that can be replaced by NAL units of the PiP track. Region_id_type values ​​greater than 1 are reserved. num_region_ids specifies the number of region_id[i] fields below. region_id[i] specifies the i-th ID of the coded video data unit representing the target picture-in-picture region. When region_id_type is equal to 1, the main video track shall have a 'nalm' sample group, where the grouping_type_parameter equal to 'pinp' indicates that the NAL units in the main track can be replaced by NAL units with the same groupID value in the PiP track. When region_id_type is equal to 1 and num_region_ids is equal to 1, the 'nalm' sample group shall not be present in the PiP track, and all NAL units of the PiP track are implicitly considered to have a groupID equal to region_id[0]. When region_id_type is equal to 1 and num_region_ids is greater than 1, the 'nalm' sample group with grouping_type_parameter equal to 'pinp' shall be present in the PiP track and a mapping of groupID values ​​to NAL units is provided.

[0092] 3. Technical problems solved by the disclosed technical solutions

[0093] An example design for signaling notification of picture-in-picture in an ISOBMFF-based media file has the following problems. First, an 8-bit encoding and decoding is used for the region identifier (region_id) type (region_id_type) field. However, less than 8 bits would also be sufficient. Second, the value of the number of region IDs (num_region_ids) is allowed to be equal to 0. However, a value of 0 for num_region_ids is meaningless. Third, the specification states that when the region ID type (region_id_type) is equal to 0, the region ID is a VVC sub-picture ID. However, this would not allow a region_id_type equal to 0 to be used for other video codecs that support encoding and decoding of regions such as VVC sub-pictures.

[0094] 4. List of solutions and embodiments

[0095] To solve the above problems, a method summarized as follows is disclosed. These embodiments should be considered as examples for explaining general concepts and should not be interpreted in a narrow way. In addition, these embodiments can be applied individually or in any combined way.

[0096] Example 1

[0097] To solve the first problem, less than 8 bits can be used to encode and decode the region_id_type field. For example, 2, 3, or 4 bits can be used to encode and decode the region_id_type field, and the remaining 8 bits can be reserved for use in a backward-compatible way.

[0098] Example 2

[0099] To solve the second problem, the specification can stipulate that the value of num_region_ids should be greater than 0. In another example, the name of the field num_region_ids can be changed to the number of region IDs minus one (num_region_ids_minus1). In addition, the specification can stipulate that num_region_ids_minus1 plus one specifies the number of the following region ID region_id[i] fields, and the loop "for(i = 0; i < num_region_ids; i++)" is changed to "for(i = 0; i <= num_region_ids_minus1; i++)".

[0100] Example 3

[0101] To address the third issue, the specification may specify that when the video codec for the main video track is VVC, as indicated by a sample entry type equal to 'vvc1', 'vvi1', or 'vvs1', the video codec for the picture-in-picture (PiP) video track is also VVC, and the value of region_id_type equal to 0 specifies that the region ID is a VVC sub-picture ID. In addition, the specification may specify that when the video codec for the main video track is not VVC, the video codec for the PiP video track is also not VVC, and the value of region_id_type equal to 0 is reserved.

[0102] 5. Examples

[0103] The following are some example embodiments of all the public items and most of their sub-items summarized above. Most of the relevant parts that have been added or modified are shown in bold underline, and some deleted parts are shown in bold italics. There may be other changes that are editorial in nature and therefore have not been noticed. Parts that remain unchanged are not included.

[0104] 5.1.1 Picture-in-Picture Sample Group

[0105] 5.1.1.1 Definition

[0106] The Picture-in-Picture (PiP) service provides the ability to include a video with a smaller spatial resolution within a video with a larger spatial resolution (referred to as the PiP video and the main video, respectively). A video track containing a 'subt' track reference indicates that the track contains the PiP video, and the main video is contained in the reference track or any track in the alternative group (if any) to which the reference track belongs. For each pair of PiP video and main video, the window in the main video used to embed / overlay the PiP video (whose size is smaller than the main video) is indicated by the value of the matrix field of the TrackHeaderBox of the PiP video track and the main video track, and the value of the layer field of the TrackHeaderBox of the supplementary video track is required to be smaller than the value of the layer field of the main video track to layer the PiP video in front of the main video. When PicInPicInfoEntry is present in the PiP video track, it indicates that the codec video data unit representing the target PiP area in the main video can be replaced with the corresponding codec video data unit of the PiP video. In this case, the same video codec is required to be used for the encoding and decoding of the PiP video and the main video. The absence of this sample group indicates that it is not known whether such a replacement is possible.

[0107] 5.1.1.2 Syntax

[0108]

[0109] Semantics

[0110] When PicInPicInfoEntry is present, the player may choose to replace the codec video data unit representing the target PiP region in the main video with the corresponding codec video data unit of the PiP video before sending it to the video decoder for decoding. In this case, for a particular picture in the main video, the corresponding video data units of the PiP video are all the codec video data units in the decoded time synchronization samples in the PiP video track. region_id_type indicates the type of value taken by region_id.

[0111] If the video codec used for the primary video track is VVC (i.e., the sample entry type is 'vvc1', 'vvi1' or 'vvs1'), in which case the video codec used for the PiP video track is also VVC, then region_id_type etc. Specifies that the region ID is a VVC sub-picture ID if it is equal to 0. Otherwise, the value of region_id_type is reserved equal to 0. When region_id_type is equal to 0, the region ID is the VVC sub-picture ID.

[0112] When region_id_type is equal to 1, the region ID is the groupID value in the NAL unit map sample group for the NAL unit that can be replaced by the NAL unit of the PiP track. region_id_type values ​​greater than 1 are reserved. num_region_ids _minus1 plus1 Specifies the number of region_id[i] fields below. region_id[i] specifies the i-th ID of the coded video data unit representing the target picture-in-picture region. When region_id_type is equal to 1, the main video track shall have a 'nalm' sample group with grouping_type_parameter equal to 'pinp', indicating that the NAL units in the main track can be replaced by NAL units in the PiP track with the same groupID value. When region_id_type is equal to 1 and num_region_ids is equal to 1, the 'nalm' sample group shall not be present in the PiP track, and all NAL units of the PiP track are implicitly considered to have groupID equal to region_id[0]. When region_id_type is equal to 1 and num_region_ids is greater than 1, the 'nalm' sample group with grouping_type_parameter equal to 'pinp' shall be present in the PiP track, and a mapping of groupID values ​​to NAL units is provided.

[0113] 6. References

[0114] [1] ITU-T and ISO / IEC, “High Efficiency Video Codecs”, Rec. ITU-T H.265 | ISO / IEC 23008-2 (current version).

[0115] [2] J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, and J. Boyce, “Joint Exploration Test Model 7 (JEM7) Algorithm Description,” JVET-G1001, August 2017.

[0116] [3] Rec. ITU-T H.266 | ISO / IEC 23090-3, “Versatile Video Codec”, 2020.

[0117] [4] B. Bross, J. Chen, S. Liu, Y.-K. Wang (eds.), “Versatile Video Codec (Draft 10),” JVET-S 2001.

[0118] [5] Rec. ITU-T Rec. H.274 | ISO / IEC 23002-7, “Multifunctional supplementary enhancement information message for coded video bitstreams”, 2020.

[0119] [6] J. Boyce, V. Drugeon, G. J. Sullivan, and Y.-K. Wang (eds.), “Versatile Supplemental Enhancement Information Messages for Coded Video Bitstreams (Draft 5)”, JVET-S 2007.

[0120] [7] ISO / IEC 14496-12: “Information technology — Codecs of audiovisual objects — Part 12: ISO base media file format”.

[0121] [8] ISO / IEC 23009-1: “Information technology — Dynamic adaptive streaming over HTTP (DASH) — Part 1: Media presentation description and segment format”. The text of version 4 of the DASH standard specification can be found in MPEG input document m52458.

[0122] [9] ISO / IEC 14496-15: "Information technology — Coding and decoding of audiovisual objects — Part 15: Transport of structured video in the network abstraction layer (NAL) units of the ISO base media file format."

[0123]

[10] ISO / IEC 23008-12: "Information technology — Efficient coding and media delivery in heterogeneous environments — Part 12: Image file formats".

[0124]

[11] KK Sreedhar, MM Hannuksela, Lukasz Kondrad, and Lauri Ilola, “On picture-in-picture signaling in ISOBMFF,” MPEG Input Document m59497, April 2022.

[0125] Figure 1 4000 is a block diagram illustrating an example video processing system 4000 in which various techniques disclosed herein may be implemented. Various embodiments may include some or all of the components of system 4000. System 4000 may include an input 4002 for receiving video content. The video content may be received in a raw or uncompressed format, such as 8 or 10 bit multi-component pixel values, or may be in a compressed or encoded format. Input 4002 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, a passive optical network (PON), and wireless interfaces such as wireless fidelity (Wi-Fi) or a cellular interface.

[0126] System 4000 may include a codec component 4004 that can implement various codecs or encoding methods described in this disclosure. Codec component 4004 can reduce the average bit rate of the video from input 4002 to the output of codec component 4004 to generate a codec representation of the video. Codec technology is therefore sometimes referred to as video compression or video transcoding technology. The output of codec component 4004 can be stored or sent via a communication connection as represented by component 4006. The bitstream (or codec) representation of the storage or communication transmission of the video received at input 4002 can be used by component 4008 to generate pixel values ​​or transmit to a displayable video of display interface 4010. The process of generating user-visible video from the bitstream representation is sometimes referred to as video decompression. In addition, although some video processing operations are referred to as "codec" operations or tools, it will be understood that the codec tool or operation is used at the encoder, and the corresponding decoding tool or operation of the inverse codec result will be performed by the decoder.

[0127] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), DisplayPort, etc. Examples of storage interfaces include Serial Advanced Technology Attachment (SATA), Peripheral Component Interconnect (PCI), Integrated Drive Electronics (IDE) interface, etc. The technology described in the present disclosure may be embodied in various electronic devices, such as mobile phones, laptops, smart phones, or other devices capable of performing digital data processing and / or video display.

[0128] Figure 24100. The apparatus 4100 may be used to implement one or more methods described herein. The apparatus 4100 may be embodied in a smartphone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. The apparatus 4100 may include one or more processors 4102, one or more memories 4104, and a video processing circuit 4106. The processor(s) 4102 may be configured to implement one or more methods described in the present disclosure. The memory(s) 4104 may be used to store data and code for implementing the methods and techniques described herein. The video processing circuit 4106 may be used to implement some of the techniques described in the present disclosure in a hardware circuit system. In some embodiments, the video processing circuit 4106 may be at least partially included in the processor 4102 (e.g., a graphics coprocessor).

[0129] Figure 3 4200 is a flow chart of an example method 4200 for processing video data. At block 4202, method 4200 includes determining a value of a region identifier (ID) type (region_id_type) in a region identifier (ID) type field. The value of the region ID type is encoded and decoded in the region ID type field using four or fewer bits. For example, the region ID may be encoded and decoded with four bits, three bits, two bits, or one bit. At block 4204, method 4200 includes performing a conversion between visual media data and a media data file based on the value of the region ID in the region ID type field. Depending on the example, the conversion of step 4204 may include encoding at an encoder or decoding at a decoder.

[0130] In one embodiment, the remaining set of four or more bits in the Region ID Type field is reserved. In one embodiment, Region ID Type equal to zero specifies that the Region ID is a Versatile Video Codec (VVC) sub-picture ID. In one embodiment, Region ID Type indicates the type of value taken by the Region ID. In one embodiment, the Region ID is used to signal a picture-in-picture in an International Organization for Standardization Base Media File Format (ISOBMFF). In one embodiment, the media data file comprises an International Organization for Standardization Base Media File Format (ISOBMFF).

[0131] Figure 4 is a flow chart of an example method 4220 for processing video data. In block 4222, the method 4220 includes determining a value of a number of region identifiers, wherein the value of the number of region identifiers is constrained to be greater than zero. In block 4224, the method 4220 includes performing conversion between visual media data and a media data file based on the value of the number of region identifiers. Depending on the example, the conversion of step 4224 may include encoding at an encoder or decoding at a decoder.

[0132] In one embodiment, the number of region identifiers is represented as the number of region identifiers minus one (num_region_ids_minus1). In one embodiment, num_region_ids_minus1 plus one specifies the region identifier (region_id[i]). In one embodiment, the region identifier specifies the i-th ID of the coded video data unit representing the target picture-in-picture region. In one embodiment, the region identifier is determined according to a loop specified by for(i=0; i<=num_region_ids_minus1; i++). In one embodiment, the number of region identifiers is represented as num_region_ids. In one embodiment, the number of region identifiers is represented as num_region_ids_minus1.

[0133] Figure 5 4240 is a flow chart of an example method 4240 for processing video data. At block 4242, the method 4240 includes determining a value of a region identifier type (region_id_type). When the video codec used to encode and decode the main video track and the picture-in-picture (PiP) video track is VVC, the value of the region identifier type equal to zero specifies that the region identifier (ID) is a versatile video codec (VVC) sub-picture ID. In block 4244, the method 4240 includes performing conversion between visual media data and a media data file based on the value of the region identifier type. Depending on the example, the conversion of step 4244 may include encoding at an encoder or decoding at a decoder.

[0134] In one embodiment, when the video codec used for the main video track is not VVC, a value of RegionID type equal to zero is reserved. In one embodiment, when the video codec used to encode and decode the main video track and the picture-in-picture video track is not VVC, a value of RegionID type equal to zero is reserved. In one embodiment, when the video codec used for the main video track is VVC, the sample entry type is vvc1, vvi1, or vvs1.

[0135] It should be noted that methods 4200, 4220, and 4240 may be implemented in an apparatus for processing video data that includes a processor and a non-transitory memory having instructions thereon, such as video encoder 4400, video decoder 4500, and / or encoder 4600. In this case, the instructions, when executed by the processor, cause the processor to perform method 4200. In addition, method 4200 may be performed by a non-transitory computer-readable medium including a computer program product for use by a video codec device. The computer program product includes computer-executable instructions stored on a non-transitory computer-readable medium, such that when executed by a processor, the video codec device performs method 4200.

[0136] Figure 6 43 is a block diagram illustrating an example video codec system 4300 that can utilize the techniques of the present disclosure. The video codec system 4300 may include a source device 4310 and a target device 4320. The source device 4310 generates encoded video data, where the source device 4310 may be referred to as a video encoding device. The target device 4320 may decode the encoded video data generated by the source device 4310, where the target device 4320 may be referred to as a video decoding device.

[0137] Source device 4310 may include video source 4312, video encoder 4314 and input / output (I / O) interface 4316. Video source 4312 may include a source, such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of these sources. Video data may include one or more pictures. Video encoder 4314 encodes video data from video source 4312 to generate a bit stream. The bit stream may include a bit sequence that forms a codec representation of video data. The bit stream may include codec pictures and related data. Codec pictures are codec representations of pictures. Related data may include sequence parameter sets, picture parameter sets and other syntax structures. I / O interface 4316 may include a modulator / demodulator (modem) and / or a transmitter. Encoded video data may be directly sent to target device 4320 via network 4330 via I / O interface 4316. Encoded video data may also be stored on storage medium / server 4340 for access by target device 4320.

[0138] The target device 4320 may include an I / O interface 4326, a video decoder 4324, and a display device 4322. The I / O interface 4326 may include a receiver and / or a modem. The I / O interface 4326 may obtain coded video data from the source device 4310 or the storage medium / server 4340. The video decoder 4324 may decode the coded video data. The display device 4322 may display the decoded video data to the user. The display device 4322 may be integrated with the target device 4320, or may be external to the target device 4320 that may be configured to interface with an external display device.

[0139] The video encoder 4314 and the video decoder 4324 may operate in accordance with a video compression standard, such as the High Efficiency Video Codec (HEVC) standard, the Versatile Video Codec (VVM) standard, and other current and / or additional standards.

[0140] Figure 7 is a block diagram showing an example of a video encoder 4400, which may be Figure 4 4300. Video encoder 4400 may be configured to perform any or all of the techniques of the present disclosure. Video encoder 4400 includes multiple functional components. The techniques described in this disclosure may be shared between various components of video encoder 4400. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0141] The functional components of the video encoder 4400 may include a segmentation unit 4401, a prediction unit 4402 (which may include a mode selection unit 4403, a motion estimation unit 4404, a motion compensation unit 4405 and an intra-frame prediction unit 4406), a residual generation unit 4407, a transform processing unit 4408, a quantization unit 4409, an inverse quantization unit 4410, an inverse transform unit 4411, a reconstruction unit 4412, a buffer 4413 and an entropy coding and decoding unit 4414.

[0142] In other examples, the video encoder 4400 may include more, fewer, or different functional components. In an example, the prediction unit 4402 may include an intra-block copy (IBC) unit. The IBC unit may perform prediction in IBC mode, where at least one reference picture is a picture in which the current video block is located.

[0143] Furthermore, some components, such as the motion estimation unit 4404 and the motion compensation unit 4405 , may be highly integrated, but are represented separately in the example of the video encoder 4400 for purposes of explanation.

[0144] The segmentation unit 4401 may segment the picture into one or more video blocks. The video encoder 4400 and the video decoder 4500 may support various video block sizes.

[0145] The mode selection unit 4403 may select one of the coding modes (e.g., intra or inter) based on the error result, and provide the resulting intra-coded block or inter-coded block to the residual generation unit 4407 to generate residual block data, and to the reconstruction unit 4412 to reconstruct the coded block for use as a reference picture. In some examples, the mode selection unit 4403 may select a combination of intra and inter prediction modes (CIIP), where the prediction is based on an inter prediction signal and an intra prediction signal. In the case of inter prediction, the mode selection unit 4403 may also select a resolution of the motion vector of the block (e.g., sub-pixel or integer pixel precision).

[0146] To perform inter-frame prediction on the current video block, the motion estimation unit 4404 may generate motion information of the current video block by comparing the current video block with one or more reference frames from the buffer 4413. The motion compensation unit 4405 may determine a predicted video block of the current video block based on the motion information and decoded samples of pictures from the buffer 4413 other than the picture associated with the current video block.

[0147] The motion estimation unit 4404 and the motion compensation unit 4405 may perform different operations on the current video block, eg, depending on whether the current video block is in an I slice, a P slice, or a B slice.

[0148] In some examples, the motion estimation unit 4404 may perform unidirectional prediction on the current video block, and the motion estimation unit 4404 may search the reference picture of list 0 or list 1 for the reference video block of the current video block. The motion estimation unit 4404 may then generate a reference index indicating the reference picture in list 0 or list 1, the reference index including the reference video block and a motion vector indicating a spatial displacement between the current video block and the reference video block. The motion estimation unit 4404 may output the reference index, the prediction direction indicator, and the motion vector as the motion information of the current video block. The motion compensation unit 4405 may generate a predicted video block of the current block based on the reference video block indicated by the motion information of the current video block.

[0149] In other examples, the motion estimation unit 4404 may perform bidirectional prediction on the current video block, and the motion estimation unit 4404 may search for a reference video block of the current video block in the reference pictures in list 0, and may also search for another reference video block of the current video block in list 1. The motion estimation unit 4404 may then generate a reference index indicating the reference pictures in list 0 and list 1 containing the reference video block and a motion vector indicating a spatial displacement between the reference video block and the current video block. The motion estimation unit 4404 may output the reference index and the motion vector of the current video block as the motion information of the current video block. The motion compensation unit 4405 may generate a predicted video block of the current video block based on the reference video block indicated by the motion information of the current video block.

[0150] In some examples, motion estimation unit 4404 may output a complete set of motion information for use in a decoding process by a decoder. In some examples, motion estimation unit 4404 may not output a complete set of motion information for the current video. Instead, motion estimation unit 4404 may reference motion information of another video block to signal motion information of the current video block. For example, motion estimation unit 4404 may determine that the motion information of the current video block is sufficiently similar to the motion information of an adjacent video block.

[0151] In one example, the motion estimation unit 4404 may indicate a value in a syntax structure associated with the current video block that indicates to the video decoder 4500 that the current video block has the same motion information as another video block.

[0152] In another example, the motion estimation unit 4404 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. The video decoder 4500 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0153] As discussed above, the video encoder 4400 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by the video encoder 4400 include Advanced Motion Vector Prediction (AMVP) and Merge mode signaling.

[0154] The intra prediction unit 4406 may perform intra prediction on the current video block. When the intra prediction unit 4406 performs intra prediction on the current video block, the intra prediction unit 4406 may generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block may include a predicted video block and various syntax elements.

[0155] The residual generation unit 4407 may generate residual data for the current video block by subtracting the prediction video block(s) of the current video block from the current video block. The residual data for the current video block may include residual video blocks corresponding to different sample components of samples in the current video block.

[0156] In other examples, there may be no residual data for the current video block, such as in skip mode, and the residual generation unit 4407 may not perform a subtraction operation.

[0157] The transform processing unit 4408 may generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video block associated with the current video block.

[0158] After the transform processing unit 4408 generates a transform coefficient video block associated with the current video block, the quantization unit 4409 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values ​​associated with the current video block.

[0159] The inverse quantization unit 4410 and the inverse transform unit 4411 may apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct a residual video block from the transform coefficient video block. The reconstruction unit 4412 may add the reconstructed residual video block to corresponding samples of one or more predicted video blocks generated by the prediction unit 4402 to generate a reconstructed video block associated with the current block for storage in the buffer 4413.

[0160] After the reconstruction unit 4412 reconstructs the video block, a loop filtering operation may be performed to reduce video blocking effects in the video block.

[0161] The entropy coding unit 4414 may receive data from other functional components of the video encoder 4400. When the entropy coding unit 4414 receives the data, the entropy coding unit 4414 may perform one or more entropy coding operations to generate entropy coded data and output a bitstream including the entropy coded data.

[0162] Figure 8 is a block diagram showing an example of a video decoder 4500, which may be Figure 4 4300. Video decoder 4500 may be configured to perform any or all of the techniques of the present disclosure. In the example shown, video decoder 4500 includes multiple functional components. The techniques described in this disclosure may be shared between various components of video decoder 4500. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0163] In the example shown, the video decoder 4500 includes an entropy decoding unit 4501, a motion compensation unit 4502, an intra prediction unit 4503, an inverse quantization unit 4504, an inverse transform unit 4505, a reconstruction unit 4506, and a buffer 4507. In some examples, the video decoder 4500 may perform a decoding process that is generally the reverse of the encoding pass described for the video encoder 4400.

[0164] The entropy decoding unit 4501 may retrieve a coded bitstream. The coded bitstream may include entropy-coded video data (e.g., coded blocks of video data). The entropy decoding unit 4501 may decode the entropy-coded video data, and from the entropy-decoded video data, the motion compensation unit 4502 may determine motion information including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 4502 may determine such information, for example, by performing AMVP and Merge modes.

[0165] The motion compensation unit 4502 may generate a motion compensated block, and interpolation may be performed based on an interpolation filter. An identifier of an interpolation filter to be used with sub-pixel precision may be included in a syntax element.

[0166] The motion compensation unit 4502 may calculate interpolation of sub-integer pixels of a reference block using an interpolation filter as used by the video encoder 4400 during encoding of the video block. The motion compensation unit 4502 may determine the interpolation filter used by the video encoder 4400 based on received syntax information and use the interpolation filter to generate a prediction block.

[0167] The motion compensation unit 4502 can use some syntax information to determine the size of the blocks used to encode (multiple) frames and / or (multiple) slices of the encoded video sequence, partitioning information describing how each macroblock of the pictures of the encoded video sequence is partitioned, a mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-frame codec block, and other information used to decode the encoded video sequence.

[0168] The intra prediction unit 4503 may form a prediction block from spatially adjacent blocks using, for example, an intra prediction mode received in the bitstream. The inverse quantization unit 4504 inversely quantizes, i.e., dequantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 4501. The inverse transform unit 4505 applies an inverse transform.

[0169] The reconstruction unit 4506 may add the residual block to the corresponding prediction block generated by the motion compensation unit 4502 or the intra prediction unit 4503 to form a decoded block. If necessary, a deblocking filter may also be applied to filter the decoded block to remove block artifacts. The decoded video block is then stored in a buffer 4507 to provide a reference block for subsequent motion compensation / intra prediction, and also to generate a decoded video for presentation on a display device.

[0170] Fig. 9 4600 is a schematic diagram of an example encoder 4600. The encoder 4600 is suitable for implementing VVC technology. The encoder 4600 includes three loop filters, namely a deblocking filter (DF) 4602, a sample adaptive offset (SAO) 4604, and an adaptive loop filter (ALF) 4606. Unlike the DF 4602 that uses a predefined filter, the SAO 4604 and the ALF 4606 use the original samples of the current picture to reduce the mean square error between the original samples and the reconstructed samples by adding an offset and applying a finite impulse response (FIR) filter, respectively, using the auxiliary information of the codec to signal the offset and filter coefficients. The ALF 4606 is located at the last processing stage of each picture and can be regarded as a tool that attempts to capture and repair artifacts created by previous stages.

[0171] The encoder 4600 also includes an intra prediction component 4608 and a motion estimation / compensation (ME / MC) component 4610 configured to receive an input video. The intra prediction component 4608 is configured to perform intra prediction, and the ME / MC component 4610 is configured to perform inter prediction using a reference picture obtained from a reference picture buffer 4612. The residual block from the inter prediction or intra prediction is fed to the transform (T) component 4614 and the quantization (Q) component 4616 to generate quantized residual transform coefficients, which are fed to the entropy coding component 4618. The entropy coding component 4618 performs entropy coding and decoding on the prediction result and the quantized transform coefficients and sends them to a video decoder (not shown). The quantization component output from the quantization component 4616 can be fed to the inverse quantization (IQ) component 4620, the inverse transform component 4622 and the reconstruction (REC) component 4624. The REC component 4624 is capable of outputting images to the DF 4602 , SAO 4604 , and ALF 4606 for filtering before these pictures are stored in the reference picture buffer 4612 .

[0172] A list of some example preferred solutions is provided next.

[0173] The following solutions illustrate examples of the techniques discussed herein.

[0174] The following solution illustrates an example embodiment of the techniques discussed in the previous section (eg, item 1).

[0175] 1. A method for processing video data (e.g., Figure 3 The method 4200 depicted in the claims includes: determining (4202) a value of a region identifier (ID) type (region_id_type) field, wherein the region_id_type field is encoded and decoded using four or fewer bits; and performing (4204) a type of conversion between visual media data and a media data file based on the value of the region_id_type field.

[0176] 2. The method according to solution 1, wherein a remaining set of four or more bits associated with the region_id_type field is reserved.

[0177] The following solution illustrates an example embodiment of the techniques discussed in the previous section (eg, item 2).

[0178] 3. A method for processing video data, comprising: determining a value of a number of region identifiers (num_region_ids) field, wherein the num_region_ids field is restricted to be greater than zero; and performing a conversion type between visual media data and a media data file based on the value of the num_region_ids field.

[0179] 4. The method according to any one of solutions 1 to 3, wherein the num_region_ids field is represented as a num_region_ids minus one (num_region_ids_minus1) field.

[0180] 5. The method according to any one of solutions 1 to 4, wherein the num_region_ids_minus1 field plus one specifies the number of region identifier fields (region_id[i]).

[0181] 6. The method according to any one of solutions 1 to 5, wherein region_id[i] is determined according to a loop specified by for(i=0; i<=num_region_ids_minus1; i++).

[0182] The following solution illustrates an example embodiment of the techniques discussed in the previous section (eg, item 3).

[0183] 7. A method for processing video data, comprising: determining a value of a region identifier type (region_id_type) field, wherein the region_id_type field is equal to zero to specify that the region identifier (ID) is a Versatile Video Codec (VVC) sub-picture ID when a Versatile Video Codec (VVC) codec is used to encode a video main track; and performing a conversion type between visual media data and a media data file based on the value of the region_id_type field.

[0184] 8. The method according to any one of solutions 1 to 7, wherein when the VVC codec is used to encode and decode the video main track, the sample entry type is set to vvc1, vvi1 or vvs1.

[0185] 9. The method according to any one of solutions 1 to 8, wherein when the VVC codec is not used to encode and decode the video main track and when the VVC codec is not used to encode and decode the picture-in-picture (PiP) video track, the value of zero of the region_id_type field is reserved.

[0186] 10. A device for processing video data, comprising: a processor; and a non-transitory memory having instructions thereon, wherein when the instructions are executed by the processor, the processor is caused to perform the method of any one of solutions 1 to 9.

[0187] 11. A non-transitory computer-readable medium, comprising a computer program product for use by a video codec device, the computer program product comprising computer executable instructions stored on the non-transitory computer-readable medium, so that when the computer executable instructions are executed by a processor, the video codec device performs a method according to any one of solutions 1 to 18.

[0188] 12. A non-temporary computer-readable recording medium storing a bitstream of a video generated by a method performed by a video processing device, wherein the method comprises: determining a value of a region identifier (ID) type (region_id_type) field, wherein the region_id_type field is encoded and decoded using four or less bits; and generating a bitstream based on the determination.

[0189] 13. A method for storing a bitstream of a video, comprising: determining a value of a region identifier (ID) type (region_id_type) field, wherein the region_id_type field is encoded and decoded using four or less bits; generating a bitstream based on the determination; and storing the bitstream in a non-temporary computer-readable recording medium.

[0190] 14. A method, apparatus or system as described in the present disclosure.

[0191] In the solution described herein, an encoder may comply with the format rules by generating a codec representation according to the format rules. In the solution described herein, a decoder may parse the syntax elements in the codec representation using the format rules to generate decoded video, knowing the presence and absence of the syntax elements according to the format rules.

[0192] In the present disclosure, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, during the conversion from a pixel representation of a video to a corresponding bitstream representation, a video compression algorithm may be applied, and vice versa. As defined by the syntax, the bitstream representation of the current video block may correspond, for example, to bits that are juxtaposed or interspersed in different places within the bitstream. For example, macroblocks may be encoded according to error residual values ​​of transforms and codecs and also using bits in headers and other fields in the bitstream. In addition, during the conversion, the decoder may parse the bitstream based on the determination, knowing that some fields may or may not exist, as described in the above solution. Similarly, the encoder may determine whether to include or not include certain syntax fields, and generate the codec representation accordingly by including or excluding syntax fields from the codec representation.

[0193] The disclosed and other solutions, examples, embodiments, modules and functional operations described in the present disclosure may be implemented in digital electronic circuits, or in computer software, firmware or hardware (including the structures disclosed in the present disclosure and their structural equivalents), or in a combination of one or more of them. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium, which are used to be executed by a data processing device or control the operation of the data processing device. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of substances that affect machine-readable propagation signals, or a combination of one or more of them. The term "data processing device" includes all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the device may also include code that creates an execution environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagation signal is an artificially generated signal generated to encode information for transmission to a suitable receiver device, such as a machine-generated electrical signal, an optical signal, or an electromagnetic signal.

[0194] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language (including compiled or interpreted languages), and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or code portions). A computer program may be deployed to execute on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

[0195] The processes and logic flows described in the present disclosure may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and the apparatus may also be implemented as, special purpose logic circuitry, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC).

[0196] Processors suitable for executing computer programs include, for example, general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or operably coupled to receive data from or transfer data to or from the one or more mass storage devices. However, a computer does not require such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and compact disk read-only memory (CD ROM) and digital versatile disk read-only memory (DVD-ROM) disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0197] Although the present disclosure contains many details, these details should not be interpreted as limitations on any subject matter or the scope that may be claimed, but rather as descriptions of features of specific embodiments specified in specific technologies. Certain features described in the context of separate embodiments in the present disclosure may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented individually in multiple embodiments or in any suitable sub-combination. In addition, although features may be described above as working in certain combinations and even initially claimed as such, one or more features from the claimed combination may be excluded from the combination in some cases, and the claimed combination may be directed to a sub-combination or a variation of the sub-combination.

[0198] Similarly, although operations are depicted in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in a sequential order, or that all of the operations shown be performed, to achieve the desired results. Furthermore, the separation of various system components in the embodiments described in this disclosure should not be understood as requiring such separation in all embodiments.

[0199] Only a few implementations and examples are described, and other implementations, enhancements, and variations may be made based on what is described and illustrated in this disclosure.

[0200] A first component is directly coupled to a second component when there is no intermediate component between the first component and the second component other than a line, a trace, or another medium. A first component is indirectly coupled to a second component when there is an intermediate component between the first component and the second component other than a line, a trace, or another medium. The term "coupled" and its variations include direct coupling and indirect coupling. The use of the term "approximately" is meant to include a range of ±10% of the subsequent numerical value unless otherwise stated.

[0201] Although several embodiments have been provided in the present disclosure, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are considered to be illustrative rather than restrictive, and are not intended to be limited to the details given herein. For example, various elements or components may be combined or integrated in another system, or certain features may be omitted or not implemented.

[0202] In addition, without departing from the scope of the present disclosure, the techniques, systems, subsystems and methods described and illustrated as discrete or separate in various embodiments may be combined or integrated with other systems, modules, techniques or methods. Other items shown or discussed as coupled may be directly connected, or may be indirectly coupled or communicated through some interface, device or intermediate component, whether electrically, mechanically or otherwise. Other examples of changes, substitutions and modifications may be determined by those skilled in the art and may be made without departing from the spirit and scope of the present disclosure.

Claims

1. A method for processing visual media data, comprising: determining a type of value taken by a region identifier (ID) in a region identifier (ID) type field (region_id_type), wherein the type of value taken by the region ID is encoded and decoded in the region ID type field using four bits or less; and Based on the type of the value taken by the region ID in the region ID type field, conversion between the visual media data and a media data file is performed.

2. The method according to claim 1, wherein: The area ID type field is encoded and decoded using 3 bits, and 5 bits are reserved.

3. The method according to any one of claims 1 to 2, wherein: The region ID type field is equal to zero, indicating that the region ID is a Versatile Video Codec (VVC) sub-picture ID.

4. The method according to any one of claims 1 to 3, wherein: The region ID is used for signaling of picture-in-picture in the International Organization for Standardization Base Media File Format (ISOBMFF).

5. The method according to any one of claims 1 to 4, wherein: The media data file includes the International Organization for Standardization Base Media File Format (ISOBMFF).

6. A method for processing visual media data, comprising: determining a value of a number of region identifiers, wherein the value of the number of region identifiers is constrained to be greater than zero; and Based on the value of the number of region identifiers, conversion between the visual media data and a media data file is performed.

7. The method according to claim 6, wherein: The number of region identifiers is expressed as the number of region identifiers minus one (num_region_ids_minus1).

8. The method according to claim 7, wherein: The num_region_ids_minus1 plus one indicates the region identifier (region_id[i]).

9. The method according to claim 8, wherein: The region identifier specifies the i-th ID of the coded video data unit representing the target picture-in-picture region.

10. The method according to any one of claims 8 to 9, wherein: The region identifier is determined according to a loop specified by for(i=0; i<=num_region_ids_minus1; i++).

11. The method according to any one of claims 8 to 10, wherein: The number of region identifiers is denoted as num_region_ids.

12. The method according to any one of claims 8 to 10, wherein: The number of region identifiers is represented as num_region_ids_minus1.

13. A method for processing visual media data, comprising: determining the type of value (region_id_type) taken by the region identifier (ID), wherein, when the video codec used to encode and decode the main video track and the picture-in-picture (PiP) video track is the Versatile Video Codec (VVC), the value of region_id_type equal to zero specifies that the region identifier (ID) is a VVC sub-picture ID; and Based on the value of the region identifier type, conversion between the visual media data and a media data file is performed.

14. The method according to claim 13, wherein: When the video codec of the primary video track is not VVC, the value of region_id_type equal to zero is reserved.

15. The method according to any one of claims 13 to 14, wherein: When the video codec used to encode and decode the main video track and the picture-in-picture video track is not VVC, the value of the region_id_type equal to zero is reserved.

16. The method according to any one of claims 13 to 15, wherein: When the video codec for the primary video track is VVC, the sample entry type is vvc1, vvi1, or vvs1.

17. The method according to any one of claims 1 to 16, wherein: The converting includes encoding the visual media data into a visual media data file of a bitstream.

18. The method according to any one of claims 1 to 16, wherein: The converting comprises decoding a visual media data file from a bitstream to obtain the visual media data.

19. A device for processing video data, comprising: one or more processors; as well as A non-transitory memory having instructions thereon, wherein the instructions, when executed by the one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 18.

20. A non-transitory computer-readable medium, comprising a computer program product for a video codec device, the computer program product comprising computer executable instructions stored on the non-transitory computer-readable medium, so that when the computer executable instructions are executed by a processor, the video codec device performs the method as described in any one of claims 1 to 18.

21. A non-transitory computer-readable recording medium storing a bit stream of a video generated by a method executed by a video processing device, wherein: The method comprises: determining a value of a region identifier (ID) type (region_id_type) in a region identifier (ID) type field, wherein the value of the region ID type is encoded in the region ID type field using four bits or less; and Based on the value of the region ID type in the region ID type field, conversion between visual media data and a media data file is performed.

22. A method for storing a bit stream of a video, comprising: determining a value of a region identifier (ID) type (region_id_type) in a region identifier (ID) type field, wherein the value of the region ID type is encoded in the region ID type field using four bits or less; Based on the determination, generating the bitstream; and The bit stream is stored in a non-transitory computer-readable recording medium.

23. A non-transitory computer-readable recording medium storing a bit stream of a video generated by a method executed by a video processing device, wherein: The method comprises: determining a value of a number of region identifiers, wherein the value of the number of region identifiers is constrained to be greater than zero; and Based on the value of the number of region identifiers, conversion between the visual media data and the media data file is performed.

24. A method for storing a bit stream of a video, comprising: determining a value of a number of region identifiers, wherein the value of the number of region identifiers is constrained to be greater than zero; Based on the determination, generating the bitstream; and The bit stream is stored in a non-transitory computer-readable recording medium.

25. A non-transitory computer-readable recording medium storing a bit stream of a video generated by a method executed by a video processing device, wherein: The method comprises: determining a value of a region identifier type (region_id_type), wherein, when the video codec used to encode and decode the main video track and the picture-in-picture (PiP) video track is the Versatile Video Codec (VVC), the value of the region identifier type being equal to zero specifies that the region identifier (ID) is a VVC sub-picture ID; and Based on the value of the region identifier type, a type of conversion between visual media data and a media data file is performed.

26. A method for storing a bit stream of a video, comprising: determining a value of a region identifier type (region_id_type), wherein, when the video codec used to encode and decode the main video track and the picture-in-picture (PiP) video track is the Versatile Video Codec (VVC), the value of the region identifier type being equal to zero specifies that the region identifier (ID) is a VVC sub-picture ID; Based on the determination, generating the bitstream; and The bit stream is stored in a non-transitory computer-readable recording medium.

27. A method, apparatus or system as described in the present disclosure.