Method, device, and medium for video processing

By using metadata to identify replaceable regions in video data units, the solution enhances DASH's support for picture-in-picture services, improving video streaming efficiency and user experience.

JP7753528B2Active Publication Date: 2025-10-14BYTEDANCE INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024518807
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-09-27
Filing Date
2022-09-26
Publication Date
2025-10-14
Estimated Expiration
2042-09-26

AI Technical Summary

Technical Problem

Existing video streaming technologies, particularly DASH, lack efficient support for picture-in-picture services, which are essential for applications like accessibility services and simultaneous display of multiple videos.

Method used

The proposed solution involves determining region identifiers for coded video data units in a main video that can be replaced by auxiliary video units, using metadata files to facilitate the replacement process, and enabling support for picture-in-picture services through VVC subpictures.

Benefits of technology

This approach allows for seamless integration and display of multiple videos with shared characteristics, optimizing bandwidth usage and enhancing user experience in applications like accessibility services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007753528000007
    Figure 0007753528000007
  • Figure 0007753528000008
    Figure 0007753528000008
  • Figure 0007753528000009
    Figure 0007753528000009
Patent Text Reader

Abstract

An embodiment of the present disclosure provides a solution for video processing. A method for video processing is proposed, which includes: receiving, by a first device, a metadata file from a server; and determining from the metadata file a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of a first video that represent target picture-in-picture regions replaceable by a second set of coded video units in a second video.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD OF THE DISCLOSURE Embodiments of the present disclosure relate generally to video encoding technologies, and more particularly to the creation, storage, and consumption of digital audio-video media information in file formats.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of priority to U.S. Provisional Application No. 63 / 248,852, filed September 27, 2021, the entire contents of which are incorporated herein by reference. [Background technology]

[0003] Media streaming applications are typically based on the Internet Protocol (IP), Transmission Control Protocol (TCP), and Hypertext Transfer Protocol (HTTP) transport methods and typically rely on file formats such as the ISO Base Media File Format (ISOBMFF). One such streaming system is HTTP-based Dynamic Adaptive Streaming (DASH). In DASH, multiple representations of the video and / or audio data of multimedia content may exist, with the different representations corresponding to different coding characteristics (e.g., different profiles or levels of the video coding standard, different bit rates, different spatial resolutions, etc.). A technology called "picture-in-picture" has also been proposed. Therefore, DASH's support for picture-in-picture services is worth investigating. Summary of the Invention

[0004] The embodiments of the present disclosure provide a solution for video processing.

[0005] In a first aspect, a method for video processing is proposed, the method comprising: receiving, by a first device, a metadata file from a second device; and determining from the metadata file a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of a main video that represent target picture-in-picture regions replaceable by a second set of coded video units in an auxiliary video. In this way, the first device knows which coded video data units in each picture of the first video represent target picture-in-picture regions and can perform the replacement.

[0006] In a second aspect, another method for video processing is proposed, the method comprising: determining, by a second device, a metadata file containing a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of a first video that represent target picture-in-picture regions replaceable by a second set of coded video units in the second video; and transmitting the metadata file to a first device. In this way, the first device knows which coded video data units in each picture of the first video represent target picture-in-picture regions and can perform the replacement.

[0007] In a third aspect, an apparatus for processing video data is proposed, the apparatus comprising a processor and a non-transitory memory with instructions that, when executed by the processor, cause the processor to perform a method according to the first or second aspect of the present disclosure.

[0008] In a fourth aspect, a non-transitory computer-readable storage medium is proposed, the non-transitory computer-readable storage medium storing instructions for causing the processor to perform a method according to the first or second aspect of the present disclosure.

[0009] This description is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. It is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. [Brief explanation of the drawings]

[0010] These and other objects, features, and advantages of exemplary embodiments of the present disclosure will become more apparent through the following detailed description taken in conjunction with the accompanying drawings, in which like reference numerals generally refer to like components. [Figure 1] 1 shows a block diagram of an exemplary video encoding system, in accordance with some embodiments of the present disclosure. [Figure 2] 1 shows a block diagram of a first example of a video encoder, in accordance with some embodiments of the present disclosure. [Figure 3] 1 shows a block diagram of an exemplary video decoder in accordance with some embodiments of the present disclosure. [Figure 4] 1 shows a schematic diagram of a picture divided into 18 tiles, 24 slices and 24 sub-pictures. [Figure 5] 1 shows a schematic diagram of a general sub-picture-based viewport-dependent 360-degree video delivery scheme. [Figure 6] 1 shows a schematic diagram of the extraction of one sub-picture from a bitstream containing two sub-pictures and four slices. [Figure 7] 1 shows a schematic diagram of picture-in-picture support based on VVC subpictures. [Figure 8] 1 shows a flowchart of a method according to an embodiment of the present disclosure. [Figure 9A] A schematic diagram of picture-in-picture is shown. [Figure 9B] A schematic diagram of picture-in-picture is shown. [Figure 10]1 shows a flowchart of a method according to an embodiment of the present disclosure. [Figure 11] FIG. 1 illustrates a block diagram of a computing device capable of implementing various embodiments of the present disclosure.

[0011] Throughout the drawings, the same or similar reference numbers typically refer to the same or similar elements. DETAILED DESCRIPTION OF THE INVENTION

[0012] Next, the principles of the present disclosure will be explained with reference to some embodiments. It should be understood that these embodiments are provided for illustrative purposes only to help those skilled in the art understand and practice the present disclosure, and do not imply any limitations on the scope of the present disclosure. The disclosure described herein can be implemented in various ways other than those described below.

[0013] In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs.

[0014] References in this disclosure to "one embodiment," "one embodiment," "exemplary embodiment," etc. indicate that the described embodiment may include a particular feature, structure, or characteristic, but not all embodiments necessarily include the particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an exemplary embodiment, it is noted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly stated.

[0015] Terms such as "first" and "second" may be used herein to describe various elements, but it should be understood that these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first element could be referred to as a second element. Similarly, a second element could be referred to as a first element without departing from the scope of the exemplary embodiments. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.

[0016] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit example embodiments. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context clearly dictates otherwise. It will be further understood that the terms "comprise," "comprise," "have," "have," "include," and / or "comprise," when used herein, specify the presence of stated features, elements, and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.

[0017] Example Environment 1 is a block diagram illustrating an example video encoding system 100 that may utilize the techniques of this disclosure. As shown, video encoding system 100 may include a source device 110 and a destination device 120. Source device 110 may also be referred to as a video encoding device. Destination device 120 may also be referred to as a video decoding device. In operation, source device 110 may be configured to generate encoded video data, and destination device 120 may be configured to decode the encoded video data generated by source device 110. Source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0018] Video source 112 may include sources such as video capture devices. Examples of video capture devices include, but are not limited to, an interface that receives video data from a video content provider, a computer graphics system that generates video data, and / or combinations thereof.

[0019] The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a series of bits forming a coded representation of the video data. The bitstream may include coded pictures and associated data. A coded picture is a coded representation of a picture. The associated data may include sequence parameter sets, picture parameter sets, and other syntax structures. The I / O interface 116 may include a modulator / demodulator and / or transmitter. The coded video data may be transmitted directly to the destination device 120 via the I / O interface 116 over the network 130A. The coded video data may be stored on a storage medium / server 130B for access by the destination device 120.

[0020] Destination device 120 may include an I / O interface 126, a video decoder 124, and a display device 122. I / O interface 126 may include a receiver and / or a modem. I / O interface 126 may obtain encoded video data from source device 110 or storage medium / server 130B. Video decoder 124 may decode the encoded video data. Display device 122 may display the decoded video data to a user. Display device 122 may be integrated with destination device 120 or may be external to destination device 120 and configured to interface with an external display device.

[0021] Video encoder 114 and video decoder 124 may operate in accordance with video compression standards such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVC) standard, and other current and / or future standards.

[0022] FIG. 2 is a block diagram illustrating an example of a video encoder 200, which may be an example of the video encoder 114 in the system 100 shown in FIG. 1, according to some embodiments of the present disclosure.

[0023] Video encoder 200 may be configured to implement any or all of the techniques of this disclosure. In the example of FIG. 2, video encoder 200 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0024] In some embodiments, the video encoder 200 may include a division unit 201, a prediction unit 202, which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.

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

[0026] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be integrated, but are depicted separately in the example of FIG. 2 for illustrative purposes.

[0027] Partition unit 201 may divide a picture into one or more video blocks. Video encoder 200 and video decoder 300 may support a variety of video block sizes.

[0028] The mode selection unit 203 may, for example, select one of an intra-coding mode or an inter-coding mode based on an error result, provide the resulting intra-coded or inter-coded block to the residual generation unit 207 to generate residual block data, and provide the coded block to the reconstruction unit 212 to reconstruct and use as a reference picture. In some examples, the mode selection unit 203 may select a combined intra- and inter-prediction (CIIP) mode in which prediction is based on an inter-prediction signal and an intra-prediction signal. In the case of inter-prediction, the mode selection unit 203 may select a resolution (e.g., sub-pixel or integer-pixel precision) of the motion vector of the block.

[0029] To perform inter prediction on the current video block, motion estimation unit 204 may generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 may determine a predictive video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture associated with the current video block.

[0030] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on a current video block depending, for example, on whether the current video block is in an I slice, a P slice, or a B slice. As used herein, an "I slice" may refer to a portion of a picture composed of macroblocks, all of which are based on macroblocks within the same picture. Additionally, as used herein, in some aspects, "P slice" and "B slice" may refer to portions of a picture composed of macroblocks that are independent of macroblocks within the same picture.

[0031] In some examples, motion estimation unit 204 may perform unidirectional prediction on the current video block, and motion estimation unit 204 may look up a reference picture in list 0 or list 1 for a reference video block of the current video block. Motion estimation unit 204 may then generate a reference index that indicates a reference picture in list 0 or list 1 that contains the reference video block, and a motion vector that indicates a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as motion information for the current video block. Motion compensation unit 205 may generate a predictive video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0032] Alternatively, in other examples, motion estimation unit 204 may perform bidirectional prediction on the current video block. Motion estimation unit 204 may look up a reference picture in list 0 for a reference video block of the current video block, or look up a reference picture in list 1 for another reference video block of the current video block. Motion estimation unit 204 may then generate a reference index that indicates the reference picture in list 0 or list 1 that contains the reference video block, and a motion vector that indicates the spatial displacement between the reference video block and the current video block. Motion estimation unit 204 may output the reference index and the motion vector for the current video block as motion information for the current video block. Motion compensation unit 205 may generate a predictive video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0033] In some examples, motion estimation unit 204 may output a full set of motion information for the decoder's decoding process. Alternatively, in some embodiments, motion estimation unit 204 may signal the motion information of the current video block by reference to the motion information of another video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.

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

[0035] In another example, motion estimation unit 204 may identify another video block and a motion vector differential (MVD) in a syntax structure associated with the current video block. The motion vector differential indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 may determine the motion vector of the current video block using the motion vector and the motion vector differential of the indicated video block.

[0036] As discussed above, video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by video encoder 200 include advanced motion vector prediction (AMVP) and merge mode signaling.

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

[0038] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., as indicated by a minus sign) the prediction video block of the current video block from the current video block. The residual data for the current video block may include residual video blocks that correspond to different sample components of the samples in the current video block.

[0039] In other examples, for example, in skip mode, residual data may not exist for the current video block, and residual generation unit 207 may not perform the subtraction operation.

[0040] Transform processing unit 208 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.

[0041] After transform processing unit 208 generates the transform coefficient video block associated with the current video block, quantization unit 209 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.

[0042] Inverse quantization unit 210 and inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. Reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by prediction unit 202 to generate a reconstructed video block associated with the current video block for storage in buffer 213.

[0043] After reconstruction unit 212 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.

[0044] Entropy encoding unit 214 may receive data from other functional components of video encoder 200. Once entropy encoding unit 214 receives the data, entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.

[0045] FIG. 3 is a block diagram illustrating an example of a video decoder 300, which may be an example of the video decoder 124 in the system 100 shown in FIG. 1, according to some embodiments of the disclosure.

[0046] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 3, video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0047] 3, video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. Video decoder 300 may, in some examples, perform a decoding pass that is generally the inverse of the encoding pass described with respect to video encoder 200.

[0048] The entropy decoding unit 301 may retrieve an encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 may decode the entropy-encoded video data, and from the entropy-decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 302 may determine such information by, for example, performing AMVP and merge mode. AMVP is used and includes derivation of several most likely candidates based on data from neighboring PB and reference pictures. The motion information typically includes horizontal and vertical motion vector displacement values, one or two reference picture indexes, and, for prediction regions in B slices, identification of which reference picture list is associated with each index. As used herein, in some aspects, "merge mode" may refer to deriving motion information from spatially or temporally neighboring blocks.

[0049] The motion compensation unit 302 may generate the motion-compensated blocks, possibly performing interpolation based on an interpolation filter. An identifier of the interpolation filter used with sub-pixel precision may be included in a syntax element.

[0050] Motion compensation unit 302 may calculate interpolated values ​​for sub-integer pixels of the reference block using interpolation filters used by video encoder 200 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filters used by video encoder 200 according to received syntax information and use the interpolation filters to generate the predictive block.

[0051] The motion compensation unit 302 may use at least a portion of the syntax information to determine the size of blocks used to encode frames and / or slices of the encoded video sequence, partition information describing how each macroblock of a picture of the encoded video sequence is divided, a mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-encoded block, and other information for decoding the encoded video sequence. As used herein, in some aspects, a "slice" may refer to a data structure that can be decoded independently from other slices of the same picture with respect to entropy coding, signal prediction, and residual signal reconstruction. A slice can be either an entire picture or a region of a picture.

[0052] The intra prediction unit 303 may form a prediction block from spatially adjacent blocks, for example, using an intra prediction mode received in the bitstream. The inverse quantization unit 304 inverse quantizes, or dequantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 305 applies an inverse transform.

[0053] Reconstruction unit 306 may obtain a decoded block, for example, by adding the residual block and the corresponding prediction block generated by motion compensation unit 302 or intra prediction unit 303. Optionally, a deblocking filter may be applied to filter the decoded block to remove blockiness artifacts. The decoded video block is then stored in buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction and also generates the decoded video for presentation on a display device.

[0054] Some exemplary embodiments of the present disclosure will be described in detail below. While section headings are used herein for ease of understanding, it should be understood that they do not limit the embodiments disclosed in a section to that section alone. Furthermore, while certain embodiments are described with reference to versatile video encoding or other specific video codecs, the disclosed techniques are also applicable to other video encoding techniques. Furthermore, while some embodiments describe video encoding steps in detail, it will be understood that the corresponding decoding steps that undo the encoding are performed by a decoder. Furthermore, the term video processing encompasses video encoding or compression, video encoding or decompression, and video transcoding, which represents video pixels from one compressed format to another compressed format or at a different compressed bit rate.

[0055] 1. Overview FIELD OF THE DISCLOSURE Embodiments of the present disclosure relate to video streaming, and more particularly to supporting picture-in-picture services in Dynamic Adaptive Streaming over HTTP (DASH) via new descriptors. The ideas can be applied individually or in various combinations to media streaming systems based on the DASH standard, its extensions, etc.

[0056] 2.Background 2.1 Video Coding Standards Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T created H.261 and H.263, while ISO / IEC created MPEG-1 and MPEG-4 Visual. These two organizations jointly developed the H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Coding (AVC), and H.265 / HEVC standards. Since H.262, video coding standards have been based on a hybrid video coding architecture that utilizes temporal prediction plus transform coding. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, many new methods have been adopted by JVET and incorporated into reference software named the Joint Exploration Model (JEM). Later, when the Versatile Video Coding (VVC) project was officially launched, JVET was renamed the Joint Video Experts Team (JVET). VVC is a new coding standard that aims to reduce the bitrate by 50% compared to HEVC, and was finalized by JVET at its 19th meeting, which ended on July 1, 2020.

[0057] The Versatile Video Coding (VVC) standard (ITU-T H.266 | ISO / IEC 23090-3) and the associated Versatile Supplemental Enhancement Information (VSEI) standard (ITU-T H.274 | ISO / IEC 23002-7) are designed for use in the widest range of applications, including both traditional uses such as television broadcasting, videoconferencing, or playback from storage media, and newer, more advanced uses such as adaptive bitrate streaming, video region extraction, content composition and combining from multiple coded video bitstreams, multiview video, scalable layered coding, and viewport-adaptive 360-degree immersive media.

[0058] The Essential Video Coding (EVC) standard (ISO / IEC 23094-1) is another video coding standard recently developed by MPEG.

[0059] 2.2 File Format Standards Media streaming applications are typically based on IP, TCP, and HTTP transport methods and rely on file formats such as the ISO Base Media File Format (ISOBMFF). One such streaming system is HTTP-based Dynamic Adaptive Streaming (DASH). When using video formats with ISOBMFF and DASH, the carriage of Network Abstraction Layer (NAL) unit-structured video in video format-specific file format specifications, such as the AVC file format or the HEVC file format in ISO / IEC 14496-15: "Information technology - Coding of audiovisual objects - Part 15: ISO Base Media File Format," may be required for encapsulating video content in ISOBMFF tracks and DASH representations and segments. Important information about the video bitstream, such as profile, tier, level, and many other pieces of information, may need to be exposed as file format-level metadata and / or a DASH Media Presentation Description (MPD) for content selection purposes, e.g., selecting appropriate media segments for both initialization at the start of a streaming session and stream adaptation during the streaming session.

[0060] Similarly, when using image formats with ISOBMFF, file format specifications specific to the image format may be required, such as the AVC image file format and the HEVC image file format in ISO / IEC 23008-12: "Information technology -- High-efficiency coding and delivery of media in heterogeneous environments -- Part 12: Image file formats."

[0061] The VVC video file format, a file format for storing VVC video content based on ISOBMFF, is currently being developed by MPEG. The latest draft specification for the VVC video file format is contained in ISO / IEC JTC 1 / SC 29 / WG 03 output document N0035, "Potential improvements on Carriage of VVC and EVC in ISOBMFF."

[0062] The VVC image file format, a file format based on ISOBMFF for storing image content coded using VVC, is currently being developed by MPEG. The latest draft specification for the VVC image file format is contained in ISO / IEC JTC 1 / SC 29 / WG 03 output document N0038, "Information technology - High efficiency coding and media delivery in heterogeneous environments - Part 12: Image File Format - Amendment 3: Support for VVC, EVC, slideshows and other improvements (CD stage)."

[0063] 2.3 DASH In Dynamic Adaptive Streaming over HTTP (DASH), multiple representations of video and / or audio data of multimedia content may exist, where different representations may correspond to different encoding characteristics (e.g., different profiles or levels of a video encoding standard, different bit rates, different spatial resolutions, etc.). The manifest of such representations may be defined in a Media Presentation Description (MPD) data structure. A media presentation may correspond to a structured collection of data accessible to a DASH streaming client device. A DASH streaming client device may request and download media data information to provide streaming services to a user of the client device. A media presentation may be described in an MPD data structure, including updates to the MPD.

[0064] A media presentation may include a series of one or more periods. Each period may extend until the start of the next period or, in the case of the last period, until the end of the media presentation. Each period may include one or more representations of the same media content. A representation may be one of many alternatively encoded versions of audio, video, timed text, or other such data. The representations may differ by encoding type, e.g., bit rate, resolution, and / or codec for video data, and bit rate, language, and / or codec for audio data. The term representation may be used to refer to a section of encoded audio or video data that corresponds to a particular period of multimedia content and is encoded in a particular manner.

[0065] Representations for a particular time period may be assigned to a group indicated by an attribute in the MPD that indicates the adaptation set to which the representation belongs. Representations within the same adaptation set are generally considered to be alternatives to each other, in that a client device can dynamically and seamlessly switch between these representations to, for example, perform bandwidth adaptation. For example, each representation of video data for a particular time period may be assigned to the same adaptation set, but either representation may be selected for decoding to present media data, such as video data or audio data, of the multimedia content for the corresponding time period. Media content within a time period may, in some examples, be represented by either one representation from group 0 (if present) or a combination of at most one representation from each non-zero group. Timing data for each representation for a time period may be expressed relative to the start time of the time period.

[0066] A representation may contain one or more segments. Each representation includes an initialization segment, and each segment of a representation may be self-initializing. If present, the initialization segment may contain initialization information for accessing the representation. Generally, initialization segments do not contain media data. A segment may be uniquely referenced by an identifier such as a uniform resource locator (URL), a uniform resource name (URN), or a uniform resource identifier (URI). The MPD may provide an identifier for each segment. In some examples, the MPD may provide a byte range in the form of a range attribute that may correspond to the data of a segment within a file accessible by a URL, URN, or URI.

[0067] Different representations may be selected to search for different types of media data substantially simultaneously. For example, a client device may select an audio representation, a video representation, and a timed text representation for searching for a segment. In some examples, a client device may select a particular adaptation set for performing bandwidth adaptation. That is, the client device may select an adaptation set including a video representation, an adaptation set including an audio representation, and / or an adaptation set including timed text. Alternatively, a client device may select an adaptation set for a particular type of media (e.g., video) and directly select representations for other types of media (e.g., audio and / or timed text).

[0068] The general DASH streaming procedure is shown in the following steps:

[0069] 1) The client obtains the MPD.

[0070] 2) The client estimates the downlink bandwidth and selects a video and audio representation according to the estimated downlink bandwidth and the codec, decoding capability, display size, and audio language settings.

[0071] 3) Unless the end of the media presentation has been reached, the client requests the media segments of the selected representation and presents the streaming content to the user.

[0072] 4) The client continues to estimate the downlink bandwidth. If the bandwidth changes significantly in some direction (e.g., becomes lower), the client selects a different video representation that matches the newly estimated bandwidth and proceeds to step 3.

[0073] 2.4 Picture Splitting and Subpictures in VVC In VVC, a picture is divided into one or more tile rows and one or more tile columns. A tile is a set of CTUs that cover a rectangular area of ​​the picture. The CTUs within a tile are scanned in raster scan order within that tile.

[0074] A slice consists of an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture.

[0075] Two modes of slicing are supported: raster scan slice mode and rectangular slice mode. In raster scan slice mode, a slice contains a sequence of complete tiles within the tile raster scan of the picture. In rectangular slice mode, a slice contains either a number of complete tiles that collectively form a rectangular area of ​​the picture, or a contiguous complete CTU row of one tile that collectively form a rectangular area of ​​the picture. The tiles within a rectangular slice are scanned in tile raster scan order within the rectangular area corresponding to the slice.

[0076] A sub-picture contains one or more slices that collectively cover a rectangular area of ​​the picture.

[0077] 2.4.1 Subpicture Concept and Function In VVC, each subpicture consists of one or more complete rectangular slices that collectively cover a rectangular area of ​​the picture, as shown, for example, in Figure 4. Figure 4 shows a schematic diagram 400 of a picture divided into 18 tiles, 24 slices, and 24 subpictures. A subpicture can be designated as extractable (i.e., coded independently of other subpictures in the same picture and previous picture in decoding order) or non-extractable. Regardless of whether a subpicture is extractable, the encoder can control whether in-loop filtering (including deblocking, SAO, and ALF) is applied across subpicture boundaries and individually for each subpicture.

[0078] Functionally, subpictures are similar to Motion Constrained Tile Sets (MCTS) in HEVC: both allow for independent encoding and extraction of rectangular subsets of a sequence of coded pictures for use cases such as viewport-dependent 360-degree video streaming optimization and region of interest (ROI) applications.

[0079] When streaming 360-degree video (also known as omnidirectional video), only a subset of the entire omnidirectional video sphere (i.e., the current viewport) may be rendered to the user at any given moment, but the user can rotate their head to change their viewing orientation, and consequently, their current viewport, at any time. While it is desirable to have at least some lower-quality representation of areas not covered by the current viewport available to the client to be rendered to the user in case the user suddenly changes their viewing orientation somewhere on the sphere, a high-quality representation of the omnidirectional video need only be for the current viewport being rendered to the user at any given moment. Dividing the high-quality representation of the entire omnidirectional video into subpictures with the appropriate granularity allows for an optimization such as that shown in Figure 4, where 12 high-resolution subpictures are displayed on the left and the remaining 12 subpictures of the low-resolution omnidirectional video are displayed on the right.

[0080] Figure 5 shows a schematic diagram 500 of a general sub-picture-based viewport-dependent 360-degree video delivery scheme. Another general sub-picture-based viewport-dependent 360-degree video delivery scheme is shown in Figure 5, where only the high-resolution representation of the full video is composed of sub-pictures, and the low-resolution representation of the full video does not use sub-pictures and can be coded with fewer RAPs than the high-resolution representation. The client receives the full low-resolution video, but for the high-resolution video, the client receives and decodes only the sub-pictures that currently cover the viewport.

[0081] 2.4.2 Difference between Subpicture and MCTS There are several important design differences between subpictures and MCTS. First, the subpicture feature in VVC allows motion vectors of coding blocks to point outside of a subpicture, even if the subpicture is extractable, by applying sample padding to subpicture boundaries, similar to picture boundaries. Second, additional changes are introduced to the selection and derivation of motion vectors in merge mode and the decoder-side motion vector refinement process of VVC. This allows for higher coding efficiency compared to the non-prescriptive motion constraints applied at the encoder side in MCTS. Third, when extracting one or more extractable subpictures from a sequence of pictures to create a conforming subbitstream, no rewriting of the SH (and, if present, the PH NAL unit) is required. Subbitstream extraction based on HEVC MCTS requires rewriting of the SH. It should be noted that both HEVC MCTS extraction and VVC subpicture extraction require rewriting of the SPS and PPS. However, because a bitstream typically has only a small set of parameters and each picture has at least one slice, rewriting the SH can be a significant burden for application systems. Fourth, slices of different subpictures within a picture are allowed to have different NAL unit types. This feature is often referred to as mixed NAL unit types or mixed subpicture types within a picture and is explained in more detail below. Fifth, VVC specifies the HRD and level definition of subpicture sequences, allowing an encoder to guarantee the conformance of the sub-bitstreams of each extractable subpicture sequence.

[0082] 2.4.3 Mixing Subpicture Types Within a Picture In AVC and HEVC, all VCL NAL units within a picture are required to have the same NAL unit type. VVC introduces the option to mix subpictures with certain different VCL NAL unit types within a picture, thus providing support for random access not only at the picture level but also at the subpicture level. In the VVC VCL, NAL units within a subpicture are still required to have the same NAL unit type.

[0083] The random access capability from IRAP subpictures is beneficial for 360-degree video applications. In a viewport-dependent 360-degree video distribution scheme similar to that shown in Figure 5, the contents of spatially adjacent viewports overlap significantly; that is, during a viewport orientation change, only a portion of the subpictures in a viewport are replaced by new subpictures, while most subpictures remain in the viewport. Although the subpicture sequence newly introduced to a viewport should start with an IRAP slice, the overall transmission bitrate can be significantly reduced if the remaining subpictures are allowed to perform inter-prediction during a viewport change.

[0084] An indication of whether a picture contains only NAL units of a single type or multiple types is provided in the PPS referenced by the picture (i.e., using a flag called pps_mixed_nalu_types_in_pic_flag). A picture may consist of sub-pictures that contain IRAP slices and sub-pictures that simultaneously contain trailing slices. Several other combinations of different NAL unit types within a picture are also allowed, including leading picture slices of NAL unit types RASL and RADL, which makes it possible to merge sub-picture sequences with open and closed GOP coding structures extracted from different bitstreams into one bitstream.

[0085] 2.4.4 Subpicture Layout and ID Signaling The layout of VVC subpictures is signaled in the SPS and is therefore consistent within CLVS. Each subpicture is signaled by its top-left CTU position and its width and height in number of CTUs, ensuring that the subpicture covers a rectangular area of ​​the picture with CTU granularity. The order in which the subpictures are signaled in the SPS determines the index of each subpicture within the picture.

[0086] To enable the extraction and merging of subpicture sequences without rewriting the SH or PH, the VVC slice addressing scheme associates slices with subpictures based on their subpicture IDs and subpicture-specific slice indices. In SH, the subpicture ID and subpicture-level slice index of the subpicture containing the slice are signaled. Note that the value of a subpicture ID for a particular subpicture can differ from the value of its subpicture index. The mapping between the two is either signaled in the SPS or PPS (but not both), or is implicitly inferred. If present, the subpicture ID mapping needs to be rewritten or added when rewriting the SPS and PPS during the subpicture sub-bitstream extraction process. The subpicture ID and subpicture-level slice index together indicate to the decoder the exact location of the slice's first decoded CTU within the DPB slot of the decoded picture. After sub-bitstream extraction, the subpicture ID of a subpicture remains unchanged, but the subpicture index may change. Even if the raster scan CTU address of the first CTU in a slice within a subpicture is changed compared to the value in the original bitstream, the unchanged values ​​of the subpicture ID and subpicture-level slice index in each SH still accurately determine the location of each CTU in the decoded picture of the extracted sub-bitstream. Figure 6 shows a schematic diagram 600 of the use of subpicture IDs, subpicture indexes, and subpicture-level slice indexes to enable subpicture extraction in an example including two subpictures and four slices.

[0087] Similar to subpicture extraction, subpicture signaling makes it possible to merge several subpictures from different bitstreams into a single bitstream by simply rewriting the SPS and PPS, provided that the different bitstreams are generated cooperatively (e.g., with distinct subpicture IDs but otherwise mostly aligned SPS, PPS, and PH parameters such as CTU size, chroma format, coding tool, etc.).

[0088] Although subpictures and slices are signaled independently in the SPS and PPS, respectively, there are inherent inter-constraints between subpicture and slice layouts in order to form a conforming bitstream. First, the presence of subpictures requires the use of rectangular slices, and raster-scan slices are prohibited. Second, the slices of a given subpicture should be consecutive NAL units in decoding order, which means that the subpicture layout constrains the order of coded slice NAL units in the bitstream.

[0089] 2.5 Picture-in-Picture Services Picture-in-picture services provide the ability to include a smaller resolution image within a larger resolution image. Such a service can be useful for displaying two videos simultaneously to a user, whereby the higher resolution video is considered the main video and the lower resolution video is considered the auxiliary video. Such picture-in-picture services can be used to provide accessibility services where the main video is supplemented by signage video.

[0090] VVC subpictures can be used for picture-in-picture services by utilizing both the extraction and merging properties of VVC subpictures. For such services, the main video is coded using multiple subpictures, one of which is the same size as the auxiliary video and is positioned at the exact location where the auxiliary video is intended to be composited into the main video and coded independently, allowing for extraction. Figure 7 shows a schematic diagram 700 of the extraction of one subpicture from a bitstream containing two subpictures and four slices. As shown in Figure 7, if a user chooses to watch a version of the service that includes auxiliary video, the subpicture corresponding to the picture-in-picture region of the main video is extracted from the main video bitstream, and the auxiliary video bitstream is merged with the main video bitstream at that location.

[0091] In this case, the pictures in the main and auxiliary video must share the same video characteristics, in particular the bit depth, sample aspect ratio, size, frame rate, color space and transfer characteristics, and chroma sample positions. The main and auxiliary video bitstreams do not need to use NAL unit types within each picture. However, merging requires that the coding order of the pictures in the main and auxiliary bitstreams is the same.

[0092] Because subpicture merging is required here, the subpicture IDs used in the main and auxiliary video cannot overlap. Even if the auxiliary video bitstream consists of only one subpicture without additional tile or slice division, the subpicture information, especially the subpicture ID and subpicture ID length, must be signaled to enable merging of the auxiliary and main video bitstreams. The length of the subpicture ID used to signal the length of the subpicture ID syntax element in the slice NAL unit of the auxiliary video bitstream must be the same as the length of the subpicture ID used to signal the subpicture ID in the slice NAL unit of the main video bitstream. Furthermore, to simplify merging of the auxiliary and main video bitstreams without rewriting the PPS division information, it may be beneficial to use only one slice and one tile in the coding of the auxiliary video and the corresponding region of the main video. The main and auxiliary video bitstreams must signal the same coding scheme in the SPS, PPS, and picture header. This includes using the same maximum and minimum allowed block partitioning sizes and the same value of the initial quantization parameter signaled in the PPS (the same value of the pps_init_qp_minus26 syntax element). The coding tool usage can be modified at the slice header level.

[0093] When both the main and auxiliary bitstreams are available via a DASH-based delivery system, DASH Preselections may be used to signal the main and auxiliary bitstreams that are to be merged and rendered together.

[0094] 3.Problems The following issues have been observed with supporting picture-in-picture services in DASH:

[0095] 1) It is possible to use DASH Preselections for a picture-in-picture experience, but there is a lack of indication of such a purpose.

[0096] 2) For example, as mentioned above, it is possible to use VVC sub-pictures for a picture-in-picture experience, but it is also possible to use other codecs and methods without being able to replace the coded video data units representing the target picture-in-picture area in the main video with the corresponding video data units in the auxiliary video. Therefore, it is necessary to indicate whether such a replacement is possible.

[0097] 3) If the above replacement is possible, the client needs to know which coded video data units in each picture of the main video represent the target picture-in-picture region so that the replacement can be performed. Therefore, this information needs to be signaled.

[0098] 4) For content selection purposes, and possibly other purposes as well, it is useful to signal the location and size of the target picture-in-picture region within the main video.

[0099] 4. Embodiments of the present disclosure To solve the above problems, the methods summarized as follows are disclosed. The embodiments should be considered as examples to illustrate the general concept and should not be construed narrowly. Furthermore, these embodiments can be applied individually or in any combination.

[0100] 1) To solve the first problem, for example, a new descriptor named Picture-in-Picture Descriptor could be defined, and the presence of this descriptor in a preselection would indicate that the purpose of the preselection is to provide a Picture-in-Picture experience.

[0101] In one example, this new descriptor is defined as an auxiliary descriptor by extending the SupplementalProperty element.

[0102] b. In one example, this new descriptor is identified by the value of the @schemeIdUri attribute equal to "urn:mpeg:dash:pinp:2021" or a similar URN string.

[0103] 2) To solve the second problem, a new picture-in-picture descriptor signals an indication of whether coded video data units representing a target picture-in-picture area in the main video can be replaced by corresponding video data units from the auxiliary video.

[0104] In one example, this indication is signaled by an attribute of the new picture-in-picture descriptor element, named, for example, @dataUnitsReplacable.

[0105] 3) To solve the third problem, a new picture-in-picture descriptor signals a list of region IDs that indicate which coded video data units in each picture of the main video represent the target picture-in-picture region.

[0106] In one example, the list of region IDs is signaled as an attribute of a new picture-in-picture descriptor element, for example named @regionIds.

[0107] 4) To solve the fourth problem, a new picture-in-picture descriptor signals information about the position and size within the main video for embedding / overlaying an auxiliary video whose size is smaller than the main video.

[0108] In one example, this is signaled by signaling four values ​​(x, y, width, height), where x, y specify the location of the top left corner of the region, and width and height specify the width and height of the region. The units may be luma samples / pixel.

[0109] b. In one example, this is signaled by a number of attributes of the new picture-in-picture descriptor element.

[0110] 5. Implementation form The following are some exemplary embodiments of the disclosed topics summarized above in Section 4, and some of their subtopics.

[0111] 5.1 Embodiment 1 This embodiment relates to all of the items of the present disclosure summarized above in Section 4 and subitems thereof.

[0112] 5.1.1 DASH Picture-in-Picture Descriptor A SupplementalProperty element whose @schemeIdUri attribute is equal to "urn:mpeg:dash:pinp:2021" is called a Picture-in-Picture descriptor.

[0113] There can be at most one Picture-in-Picture descriptor at the Preselection level. The presence of a Picture-in-Picture descriptor within a Preselection indicates that the purpose of the Preselection is to provide a Picture-in-Picture experience.

[0114] Picture-in-picture services provide the ability to include video of smaller spatial resolution within video of larger spatial resolution, where the different bitstreams / representations of the main video are included in the Main Adaptation Set of the Preselection, and the different bitstreams / representations of the auxiliary video are included in the Partial Adaptation Set of the Preselection.

[0115] If a picture-in-picture descriptor is present in the preselection and the picInPicInfo@dataUnitsReplacable attribute is present and equal to true, the client may choose to replace the coded video data units representing the target picture-in-picture area in the main video with the corresponding coded video data units of the auxiliary video before sending them to the video decoder. In this way, it is possible to avoid decoding the main and auxiliary videos separately. For a particular picture in the main video, the corresponding video data units in the auxiliary video are all the coded video data units in the decode-time-synchronization-samples of the auxiliary video representation.

[0116] For VVC, if the client chooses to replace the coded video data units (which are VCL NAL units) representing the target picture-in-picture area in the main video with the corresponding VCL NAL units in the auxiliary video before sending to the video decoder, then for each sub-picture ID, the VCL NAL units in the main video are replaced with the corresponding VCL NAL units with that sub-picture ID in the auxiliary video without changing the order of the corresponding VCL NAL units.

[0117] The @value attribute of a picture-in-picture descriptor should not be present. A picture-in-picture descriptor contains a picInPicInfo element with the attributes specified in the following table.

[0118] [Table 1] TIFF0007753528000002.tif131167

[0119] 5.3.11.6.3 XML syntax for the PicInpicInfo element [Table 2]

[0120] FIG. 8 shows a flowchart of a method 800 for video processing according to some embodiments of the present disclosure. The method 800 may be implemented in a first device. For example, the method 800 may be embedded in a client or receiver. As used herein, the term "client" may refer to computer hardware or software that accesses services made available by a server as part of a client-server model of a computer network. By way of example only, the client may be a smartphone or tablet. In some embodiments, the first device may be implemented in the destination device 120 shown in FIG. 1.

[0121] At block 810, the first device receives a metadata file from the second device. The metadata file may contain important information about the video bitstream, such as profile, tier, level, etc. For example, the metadata file may be a DASH Media Presentation Description (MPD) for content selection purposes, such as selecting appropriate media segments for both initialization at the start of a streaming session and stream adaptation during a streaming session.

[0122] In block 820, the first device determines a descriptor in a data structure within the metadata file. The presence of the descriptor indicates that the data structure is for providing a picture-in-picture service. In other words, if the data structure includes the descriptor, it means that the data structure is for providing a picture-in-picture service. A picture-in-picture service may provide the ability to include a video of a smaller spatial resolution within a video of a larger spatial resolution. In this way, it is possible to indicate that DASH Preselection is to be used for a picture-in-picture experience.

[0123] At block 820, the first device determines from the metadata file a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of the first video that represent the target picture-in-picture region. In some embodiments, the list of region IDs may be attributes of a descriptor element in the metadata file. For example, the attribute may be regionIds. In some embodiments, a region ID in the list of region IDs may be a sub-picture ID. The target picture-in-picture region may be replaced by a second set of coded video units in the second video. In some embodiments, the first set of coded video data units includes a first set of Video Coding Layer Network Abstraction Layer (VCL NAL) units, and the second set of coded video data units includes a second set of VCL NAL units. In this way, the first device knows which coded video data units in each picture of the primary video represent the target picture-in-picture area and can perform the substitution.

[0124] In some embodiments, the list of region IDs may enable replacing a first set of coded video data units with a second set of coded video units. For example, for one region ID in the list of region IDs, the first device may replace the first set of coded video data units having the region ID in the first video with a second set of coded video units having the region ID in the second video. As shown in FIG. 9A , the first video may include subpictures with subpicture (subpic) IDs 00, 01, 02, and 03. For example, if the list of region IDs in the metadata file includes subpicture ID 00, the set of coded video data units having subpicture ID 00 in the first video 910 may be replaced with a second coded video unit having subpicture ID 00 in the second video 920.

[0125] As an example, in the case of VVC, if the first device chooses to replace coded video data units (which are VCL NAL units) representing a target picture-in-picture area in the main video with corresponding VCL NAL units in the auxiliary video before sending to the video decoder, for each sub-picture ID, the VCL NAL unit in the main video may be replaced with the corresponding VCL NAL unit with that sub-picture ID in the auxiliary video without changing the order of the corresponding VCL NAL units. For example, Table 2 below shows an example of a picture-in-picture element with its attributes in the descriptor. It should be noted that Table 2 is merely an example and not a limitation.

[0126] [Table 3]

[0127] In some embodiments, the first device may determine from the metadata file an indication for indicating whether a first set of coded video data units representing a target picture-in-picture region in the first video are replaceable by a second set of coded video data units in the second video. In some embodiments, the indication may be an attribute of an element in a descriptor (e.g., a picture-in-picture descriptor) in the metadata file. For example, the attribute may be "dataUnitsReplacable." In this way, separate decoding of the main video and auxiliary video may be avoided. Transmission resources for transmitting the main video and auxiliary video may also be saved.

[0128] In some examples, the instructions enable a first set of coded video data units to be replaced by a second set of coded video data units. For example, if the instructions indicate that a first set of coded video data units representing a target picture-in-picture region in a first video can be replaced by a second set of coded video data units in a second video, the first set of coded video data units may be replaced with the second set of coded video data units. In this case, the main video comprising the second set of coded video data units from the auxiliary video may be decoded. As an example, if a descriptor (i.e., a picture-in-picture descriptor) is present in Preselection and the picInPicInfo@dataUnitsReplacable attribute is present and equal to true, the first device may select to replace the coded video data units representing the target picture-in-picture region in the main video with corresponding coded video data units from the auxiliary video before sending to the video decoder. For a particular picture in the main video, the corresponding video data units in the auxiliary video may be all the coded video data units in the decoded-time-synchronized samples in the auxiliary video representation. For example, Table 3 below shows an example of a picture-in-picture element with its attributes in the descriptor. It should be noted that Table 3 is merely an example and not a limitation.

[0129] [Table 4]

[0130] In some embodiments, the metadata file may include a descriptor (i.e., a picture-in-picture descriptor). In this case, the presence of the descriptor indicates that the data structure is for providing a picture-in-picture service. In other words, if a data structure includes the descriptor, it means that the data structure is for providing a picture-in-picture service. A picture-in-picture service may provide the ability to include a video of a smaller spatial resolution within a video of a larger spatial resolution. In this way, it may be indicated that DASH Preselection is to be used for a picture-in-picture experience.

[0131] The data structure may indicate a selection of a first set of bitstreams for a first video and a second set of bitstreams for a second video for a picture-in-picture service. The first video may also be referred to as the "main video," and the second video may also be referred to as the "auxiliary video." Picture-in-picture services may provide the ability to include a video of a smaller spatial resolution (i.e., a second video or auxiliary video) within a video of a larger spatial resolution (i.e., a first video or main video). In some embodiments, the data structure may be a preselection in a metadata file. In other words, a descriptor may exist at the preselection level. A preselection may define an audio and / or video experience created by one or more audio and / or video components being decoded and rendered simultaneously. As an example, in some embodiments, at most one descriptor may exist at the preselection level. In some embodiments, a metadata file may include one or more preselections. In some embodiments, the main adaptation set of the data structure may include a first set of bitstreams for a first video, and the partial adaptation set of the data structure may include a second set of bitstreams for an auxiliary video. For example, as discussed above, picture-in-picture services may provide the ability to include a video of a smaller spatial resolution (i.e., a second video / auxiliary video) within a video of a larger spatial resolution (i.e., a first video / main video). In this case, a different bitstream / representation of the first video may be included in the Main Adaptation Set of the Preselection, and a different bitstream / representation of the second video may be included in the Partial Adaptation Set of the Preselection.

[0132] In some embodiments, a descriptor may be defined as a supplemental descriptor based on a SupplementalProperty element in a metadata file. In some embodiments, a descriptor may be identified by a value of an attribute equal to a uniform resource name (URN) string. For example, the attribute is a schemeIdUri attribute. In some embodiments, the URN string may be "urn:mpeg:dash:pinp:2022". The URN string may be any suitable value, for example, the URN string may be "urn:mpeg:dash:pinp:2021" or "urn:mpeg:dash:pinp:2023". As an example, a SupplementalProperty element with a schemeIdUri attribute equal to "urn:mpeg:dash:pinp:2022" may be referred to as a descriptor, i.e., a picture-in-picture descriptor.

[0133] In some embodiments, the descriptor may indicate location and size information of a region in the first video for embedding or overlaying the second video. In this case, the size of the region may be smaller than that of the first video. In some embodiments, the region may include luma samples or luma pixels. In this way, content can be appropriately selected based on the location and size information of the region.

[0134] In some embodiments, the position information may indicate the horizontal position of the upper left corner of the region and the vertical position of the upper left corner of the region. Alternatively, or in addition, the size information may indicate the width of the region and the height of the region. In one example, this is signaled by a four-value signal (x, y, width, height), where x and y specify the position of the upper left corner of the region, and width and height specify the width and height of the region. For example, as shown in FIG. 9B , the position information may indicate the horizontal position X and vertical position Y of a picture-in-picture region 901 in a first video 910. The size information may also include the width 902 and height 903 of the picture-in-picture region 901.

[0135] In some embodiments, a set of attributes of an element in a descriptor may indicate location and size information for the region. For example, Table 4 below shows an example of a picture-in-picture element with its attributes in the descriptor. It should be noted that Table 4 is merely an example and is not limiting.

[0136] [Table 5]

[0137] 10 shows a flowchart of a method 1000 for video processing according to some embodiments of the present disclosure. The method 1000 may be implemented in a second device. For example, the method 1000 may be embedded in a server or a transmitter. As used herein, the term "server" may refer to a computing-capable device where a client accesses a service over a network. The server may be a physical computing device or a virtual computing device. In some embodiments, the second device may be implemented in the source device 110 shown in FIG. 1.

[0138] At block 1010, the second device determines a metadata file, the metadata file including a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of the first video that represent a target picture-in-picture region that is replaceable by a second set of coded video units in the second video.

[0139] In some embodiments, the list of region IDs may be an attribute of an element in a descriptor in the metadata file. For example, the attribute may be regionIds. In some embodiments, a region ID in the list of region IDs may be a subpicture ID. The target picture-in-picture region may be replaceable by a second set of coded video units in a second video. In some embodiments, the first set of coded video data units may include a first set of Video Coding Layer Network Abstraction Layer (VCL NAL) units, and the second set of coded video data units may include a second set of VCL NAL units.

[0140] In block 1020, the second device sends the metadata file to the first device so that the first device knows which coded video data units in each picture of the primary video represent the target picture-in-picture region and can perform the substitution.

[0141] In some embodiments, the metadata file also includes, and can be determined from, an indication for indicating whether a first set of coded video data units representing the target picture-in-picture region in the first video are replaceable by a second set of coded video data units in the second video. In some embodiments, the indication can be an attribute of an element in a descriptor (e.g., a picture-in-picture descriptor) in the metadata file. For example, the attribute can be "dataUnitsReplacable." In this way, separate decoding of the main video and auxiliary video can be avoided. Transmission resources for transmitting the main video and auxiliary video can also be saved.

[0142] In some examples, if the indication indicates that a first set of coded video data units representing a target picture-in-picture region in the first video can be replaced by a second set of coded video data units in the second video, the first set of coded video data units may be replaced with the second set of coded video data units. In this case, the main video comprising the second set of coded video data units from the auxiliary video may be decoded. As an example, if a descriptor (i.e., a picture-in-picture descriptor) is present in Preselection and the picInPicInfo@dataUnitsReplacable attribute is present and equal to true, the first device may select to replace the coded video data units representing the target picture-in-picture region in the main video with corresponding coded video data units in the auxiliary video before sending to the video decoder. For a particular picture in the main video, the corresponding video data units in the auxiliary video may be all coded video data units in the decode-time-synchronized samples in the auxiliary video representation.

[0143] The metadata file may contain important information about the video bitstream, such as profile, tier, level, etc. For example, the metadata file may be a DASH Media Presentation Description (MPD) for content selection purposes, such as selection of appropriate media segments for both initialization at the start of a streaming session and stream adaptation during a streaming session.

[0144] In some embodiments, the metadata file may include a descriptor, such as a picture-in-picture descriptor. In this case, the presence of the descriptor indicates that the data structure is for providing a picture-in-picture service. In other words, if a data structure includes the descriptor, it means that the data structure is for providing a picture-in-picture service. A picture-in-picture service may provide the ability to include a video of a smaller spatial resolution within a video of a larger spatial resolution.

[0145] In some embodiments, a descriptor may be defined as a supplemental descriptor based on a SupplementalProperty element in a metadata file. In some embodiments, a descriptor may be identified by a value of an attribute equal to a uniform resource name (URN) string. For example, the attribute is a schemeIdUri attribute. In some exemplary embodiments, the URN string may be "urn:mpeg:dash:pinp:2022". The URN string may be any suitable value, for example, the URN string may be "urn:mpeg:dash:pinp:2021" or "urn:mpeg:dash:pinp:2023". As an example, a SupplementalProperty element with a schemeIdUri attribute equal to "urn:mpeg:dash:pinp:2022" may be referred to as a descriptor, i.e., a picture-in-picture descriptor.

[0146] In some embodiments, the data structure may indicate a selection of a first set of bitstreams of a first video and a second set of bitstreams of a second video for a picture-in-picture service. In some embodiments, the data structure may be a preselection in a metadata file. In other words, a descriptor may exist at the preselection level. A preselection may define an audio and / or video experience created by one or more audio and / or video components that are decoded and rendered simultaneously. As an example, in some embodiments, at most one descriptor may exist at the preselection level. In some embodiments, a metadata file may include one or more preselections.

[0147] In some embodiments, the main adaptation set of the data structure may include a first set of bitstreams for a first video, and the partial adaptation set of the data structure may include a second set of bitstreams for a second video. For example, as discussed above, picture-in-picture services may provide the ability to include a video of a smaller spatial resolution (i.e., a second or auxiliary video) within a video of a larger spatial resolution (i.e., a first or main video). In this case, the different bitstreams / representations of the first video may be included in the Main Adaptation Set of the Preselection, and the different bitstreams / representations of the second video may be included in the Partial Adaptation Set of the Preselection.

[0148] In some embodiments, the descriptor may indicate location and size information of a region in the first video for embedding or overlaying the second video. In this case, the size of the region may be smaller than that of the first video. In some embodiments, the region may include luma samples or luma pixels. In this way, content can be appropriately selected based on the location and size information of the region.

[0149] In some embodiments, the position information may indicate the horizontal location of the top left corner of the region and the vertical location of the top left corner of the region. Alternatively, or in addition, the size information may indicate the width of the region and the height of the region. In one example, this is signaled by a four-value signal (x, y, width, height), where x, y specify the location of the top left corner of the region, and width and height specify the width and height of the region. In some embodiments, a set of attributes of an element in the descriptor may indicate the position and size information of the region.

[0150] The embodiments of the present disclosure can be implemented individually. Alternatively, the embodiments of the present disclosure can be implemented in any suitable combination. Implementations of the present disclosure can be described in view of the following clauses, the features of which can be combined in any reasonable manner.

[0151] Clause 1. A video processing method comprising: receiving, by a first device, a metadata file from a server; and determining from the metadata file a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of a first video that represent target picture-in-picture regions replaceable by a second set of coded video units in a second video.

[0152] Clause 2. The method of clause 1, wherein the list of region IDs is an attribute of a descriptor element in the metadata file.

[0153] Clause 3. The method of clause 2, wherein the attribute is regionIds.

[0154] Clause 4. A method according to any one of clauses 1 to 3, wherein one region ID in the list of region IDs enables replacing the first set of coded video data units having the region ID in the first video with the second set of coded video units having the region ID in the second video before decoding the first video.

[0155] Clause 5. The method of any one of clauses 1 to 4, wherein the region IDs in the list of region IDs are subpicture IDs, the first set of coded video data units includes a first set of Video Coding Layer Network Abstraction Layer (VCL NAL) units, and the second set of coded video data units includes a second set of VCL NAL units.

[0156] Clause 6. A video processing method, comprising: determining, by a second device, a metadata file, the metadata file containing a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of a main video that represent target picture-in-picture regions replaceable by a second set of coded video units in the second video; and transmitting the metadata file to a first device.

[0157] Clause 7. The method of clause 6, wherein the list of region IDs is an attribute of a descriptor element in the metadata file.

[0158] Clause 8. The method of clause 7, wherein the attribute is regionIds.

[0159] Clause 9. A method according to any one of clauses 6 to 8, wherein one region ID in the list of region IDs enables replacing the first set of coded video data units having the region ID in the first video with the second set of coded video units having the region ID in the second video before decoding the first video.

[0160] Clause 10. The method of any one of clauses 6 to 9, wherein the region IDs in the list of region IDs are subpicture IDs, the first set of coded video data units includes a first set of Video Coding Layer Network Abstraction Layer (VCL NAL) units, and the second set of coded video data units includes a second set of VCL NAL units.

[0161] Clause 11. An apparatus for processing video data comprising a processor and a non-transitory memory comprising instructions that, when executed by the processor, cause the processor to perform a method according to any one of clauses 1 to 10.

[0162] Clause 12. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of clauses 1 to 10.

[0163] Exemplary Devices 11 shows a block diagram of a computing device 1100 capable of implementing various embodiments of the present disclosure. The computing device 1100 may be implemented as or included in a source device 110 (or a video encoder 114 or 200) or a destination device 120 (or a video decoder 124 or 300).

[0164] It will be understood that the computing device 1100 shown in FIG. 11 is for illustrative purposes only and is not intended to limit in any way the functionality and scope of the embodiments of the present disclosure.

[0165] 11, the computing device 1100 includes a general-purpose computing device 1100. The computing device 1100 may include at least one or more processors or processing units 1110, a memory 1120, a storage unit 1130, one or more communication units 1140, one or more input devices 1150, and one or more output devices 1160.

[0166] In some embodiments, computing device 1100 may be implemented as any user terminal or server terminal having computing capabilities. The server terminal may be a server provided by a service provider, a large-scale computing device, or the like. The user terminal may be any type of mobile, fixed, or portable terminal, including, for example, a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio receiver, an electronic book device, a gaming device, or any combination thereof (including accessories and peripherals of these devices, or any combination thereof). It is contemplated that computing device 1100 may support any type of interface to a user (e.g., “wearable” circuitry, etc.).

[0167] The processing unit 1110 may be a physical or virtual processor and may perform various processes based on programs stored in the memory 1120. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing capabilities of the computing device 1100. The processing unit 1110 may be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.

[0168] Computing device 1100 typically includes a variety of computer storage media. Such media may be any medium accessible by computing device 1100, including, but not limited to, volatile and nonvolatile media, or removable and non-removable media. Memory 1120 may be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or any combination thereof. Storage unit 1130 may be any removable or non-removable medium, including a machine-readable medium such as a memory, flash memory drive, magnetic disk, or other medium, that can be used to store information and / or data and that can be accessed by computing device 1100.

[0169] The computing device 1100 may further include additional removable / non-removable, volatile / non-volatile memory media. Although not shown in FIG. 11, a magnetic disk drive that reads from and writes to a removable non-volatile magnetic disk and an optical disk drive that reads from and writes to a removable non-volatile optical disk may be provided. In such cases, each drive may be connected to a bus (not shown) via one or more data medium interfaces.

[0170] The communications unit 1140 communicates with additional computing devices via a communications medium. Furthermore, the functionality of the components within the computing device 1100 may be performed by a single computing cluster or multiple computing machines that can communicate via communications connections. Thus, the computing device 1100 may operate in a networked environment using logical connections with one or more other servers, networked personal computers (PCs), or additional general network nodes.

[0171] The input device(s) 1150 may be one or more of a variety of input devices such as a mouse, a keyboard, a tracking ball, an audio input device, etc. The output device(s) 1160 may be one or more of a variety of output devices such as a display, a speaker, a printer, etc. The communication unit 1140 enables the computing device 1100 to further communicate with one or more external devices (not shown), such as a storage device and a display device, one or more devices that allow a user to interact with the computing device 1100, or any device (such as a network card, a modem, etc.) that allows the computing device 1100 to communicate with one or more other computing devices, as needed. Such communication may be performed via an input / output (I / O) interface (not shown).

[0172] In some embodiments, instead of being integrated into a single device, some or all of the components of computing device 1100 may be located in a cloud computing architecture. In a cloud computing architecture, components may be provided remotely and work together to perform the functions described in this disclosure. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring end users to be aware of the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services over a wide area network (e.g., the Internet) using appropriate protocols. For example, a cloud computing provider may provide applications over a wide area network that can be accessed through a web browser or other computing component. Software or components of a cloud computing architecture and corresponding data may be stored on servers in remote locations. Computing resources in a cloud computing environment may be consolidated or distributed at remote data center locations. A cloud computing infrastructure may act as a single point of access for users but provide services through a shared data center. Thus, a cloud computing architecture may be used to provide the components and functions described herein from a service provider in a remote location. Alternatively, they may be provided from a conventional server or installed directly or otherwise on the client device.

[0173] The computing device 1100 may be used to perform video encoding / decoding in embodiments of the present disclosure. The memory 1120 may include one or more video encoding modules 1125 having one or more program instructions. These modules are accessible and executable by the processing unit 1110 to perform the functions of various embodiments described herein.

[0174] In example embodiments that perform video encoding, input device 1150 may receive video data to be encoded as input 1170. The video data may be processed, for example, by video encoding module 1125 to generate an encoded bitstream. The encoded bitstream may be provided as output 1180 via output device 1160.

[0175] In an example embodiment that performs video decoding, input device 1150 may receive an encoded bitstream as input 1170. The encoded bitstream may be processed, for example, by video encoding module 1125 to generate decoded video data. The decoded video data may be provided as output 1180 via output device 1160.

[0176] While the present disclosure has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the present application as defined by the appended claims. Such variations are intended to be within the scope of the present application. Accordingly, the foregoing description of embodiments of the present application is not intended to be limiting.

Claims

1. 1. A video processing method comprising: receiving, by a first device, a metadata file from a server; determining, from the metadata file, a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of the first video that represent target picture-in-picture regions replaceable by a second set of coded video units in a second video; A method comprising:

2. the list of region IDs is an attribute of a descriptor element in the metadata file, The method of claim 1.

3. The attribute is regionIds. The method of claim 2.

4. a region ID in the list of region IDs enables replacing the first set of coded video data units having the region ID in the first video with the second set of coded video units having the region ID in the second video before decoding the first video; The method of claim 1.

5. a region ID in the list of region IDs is a subpicture ID, the first set of coded video data units includes a first set of Video Coding Layer Network Abstraction Layer (VCL NAL) units; the second set of coded video data units includes a second set of VCL NAL units; The method of claim 1.

6. 1. A video processing method comprising: determining, by the second device, a metadata file; the metadata file including a list of region identifiers (IDs) for indicating a first set of coded video data units in each picture of a first video that represent target picture-in-picture regions replaceable by a second set of coded video units in a second video; transmitting the metadata file to a first device; A method comprising:

7. the list of region IDs is an attribute of a descriptor element in the metadata file, The method of claim 6.

8. The attribute is regionIds. The method of claim 7.

9. a region ID in the list of region IDs enables replacing the first set of coded video data units having the region ID in the first video with the second set of coded video units having the region ID in the second video before decoding the first video; The method of claim 6.

10. a region ID in the list of region IDs is a subpicture ID, the first set of coded video data units includes a first set of Video Coding Layer Network Abstraction Layer (VCL NAL) units; the second set of coded video data units includes a second set of VCL NAL units; The method of claim 6.

11. 1. An apparatus for processing video data comprising a processor and a non-transitory memory with instructions, The instructions, when executed by the processor, cause the processor to perform the method of claim 1. Device.

12. storing instructions for causing a processor to perform the method of claim 1; A non-transitory computer-readable storage medium.

Citation Information

Patent Citations

  • Signaling of size and position of picture-in-picture region

    JP2023008949A

  • Digital video recorder broadcast overlays

    US20130208187A1

  • Image Processing Method And Apparatus

    US20190075351A1