Video processing method, apparatus, and medium
The proposed video processing method and device address the inefficiencies in PiP signaling by using combined track instructions to accurately overlay supplementary videos, improving the performance of picture-in-picture services.
Patent Information
- Application Number
- JP2024541849
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-01-11
- Filing Date
- 2023-01-10
- Publication Date
- 2025-01-24
AI Technical Summary
Existing video processing technologies struggle with efficient picture-in-picture (PiP) signaling in media files, leading to suboptimal performance in overlaying supplementary videos within main videos.
A method and device for video processing that involves transitioning between bitstreams and media files by using instructions from both the first and second tracks to accurately indicate the target area for overlaying supplementary videos, enhancing the performance of PiP services.
Improves the performance of picture-in-picture services by ensuring proper indication of the target area for overlaying supplementary videos, thereby enhancing the overall video processing experience.
Smart Images

Figure 2025502222000001_ABST
Abstract
Description
[Technical field]
[0001] FIELD OF THE DISCLOSURE Embodiments of the present disclosure relate generally to video processing techniques, and more specifically to picture-in-picture signaling in media files.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of priority to U.S. Provisional Application No. 63 / 298,443, filed January 11, 2022, the entire contents of which are expressly incorporated herein by reference. [Background technology]
[0003] Media streaming applications are usually based on Internet Protocol (IP), Transmission Control Protocol (TCP), and Hypertext Transfer Protocol (HTTP) transport methods, and usually rely on file formats such as ISO Base Media File Format (ISOBMFF). One such streaming system is Dynamic Adaptive Streaming over HTTP (DASH). In DASH, multiple representations may exist for video and / or audio data of multimedia content, and different representations may correspond to different coding characteristics (e.g., different profiles or levels of a video coding standard, different bit rates, different spatial resolutions, etc.). In addition, a technique called "picture-in-picture" has been proposed. Therefore, it is worth studying picture-in-picture signaling in media files. Summary of the Invention
[0004] SUMMARY OF THE DISCLOSURE Embodiments of the present disclosure provide a solution for video processing.
[0005] In a first aspect, a video processing method is proposed, comprising the steps of performing a conversion between a bitstream of a plurality of videos and a media file of the plurality of videos, where the plurality of videos includes a first video and a second video different from the first video, the media file includes a first track for the bitstream of the first video and a second track for the bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by values of a first instruction in the first track and a second instruction in the second track.
[0006] According to the method according to the first aspect of the present disclosure, a target area in a first video for overlaying a second video is indicated by a first indication in a first track for the first video and a second indication in a second track for the second video. Compared with the conventional solution in which the target area is indicated only by the second indication, the proposed method can ensure proper indication of the picture-in-picture area and thus improve the performance of the picture-in-picture service.
[0007] In a second aspect, an apparatus for processing video data is proposed, the apparatus comprising a processor and a non-transitory memory in which instructions are stored that, when executed by the processor, cause the processor to perform a method according to the first aspect of the present disclosure.
[0008] In a third aspect, a non-transitory computer readable storage medium is proposed, said non-transitory computer readable storage medium storing instructions for causing a processor to perform the method according to the first aspect of the present disclosure.
[0009] In a fourth aspect, another non-transitory computer-readable recording medium is proposed, the non-transitory computer-readable recording medium storing a bitstream of a plurality of videos generated by a method executed by a video processing device, the method comprising: performing a conversion between the bitstream and a media file of the plurality of videos, the plurality of videos including a first video and a second video different from the first video, the media file including a first track for the bitstream of the first video and a second track for the bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by a value of a first instruction in the first track and a second instruction in the second track.
[0010] In a fifth aspect, a method for storing a bitstream of multiple videos is proposed, comprising the steps of performing a conversion between the bitstream and a media file of the multiple videos and storing the bitstream in a non-transitory computer-readable recording medium, where the multiple videos include a first video and a second video different from the first video, the media file includes a first track for the bitstream of the first video and a second track for the bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by a value of a first instruction in the first track and a second instruction in the second track.
[0011] In a sixth aspect, another non-transitory computer-readable recording medium is proposed, the non-transitory computer-readable recording medium storing a media file of a plurality of videos generated by a method executed by a video processing device, the method comprising: performing a conversion between a bitstream of the plurality of videos and the media file, the plurality of videos including a first video and a second video different from the first video, the media file including a first track for the bitstream of the first video and a second track for the bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by a value of a first instruction in the first track and a second instruction in the second track.
[0012] In a seventh aspect, a method for storing a media file of multiple videos is proposed, comprising the steps of performing a conversion between a bitstream of the multiple videos and the media file, and storing the media file on a non-transitory computer-readable recording medium, where the multiple videos include a first video and a second video different from the first video, the media file includes a first track for the bitstream of the first video and a second track for the bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by a value of a first instruction in the first track and a second instruction in the second track.
[0013] This description is provided to introduce a selection of concepts in a simplified form that are more fully described in the detailed description. This description 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 description of the drawings]
[0014] The above and other objects, features, and advantages of the embodiments of the present disclosure will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: In the exemplary embodiments of the present disclosure, like reference numerals generally refer to like components. [Figure 1] 1 shows a block diagram illustrating an example video coding system in accordance with some embodiments of the present disclosure. [Diagram 2] 1 shows a block diagram illustrating a first exemplary video encoder according to some embodiments of the present disclosure. [Diagram 3] 1 shows a block diagram illustrating an exemplary video decoder, in accordance with some embodiments of the present disclosure. [Figure 4] 1 illustrates a flowchart of a video processing method according to some embodiments of the present disclosure. [Diagram 5] FIG. 1 illustrates a block diagram of a computing device capable of implementing various embodiments of the present disclosure.
[0015] Throughout the drawings, the same or similar reference numbers typically refer to the same or similar elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] Next, the principles of the present disclosure will be described 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 embody the present disclosure, and do not imply any limitations on the scope of the present disclosure. The disclosure described herein can be embodied in various ways other than the methods described below.
[0017] 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.
[0018] References in this disclosure to "one embodiment," "one embodiment," "exemplary embodiment," and the like 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. Moreover, 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 of ordinary skill in the art to affect such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly described.
[0019] 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 may be referred to as a second element, and similarly, a second element may 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.
[0020] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of 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," "comprising," "having," "having," "containing," and / or "including," as 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.
[0021] Example Environment 1 is a block diagram illustrating an example video coding system 100 that may utilize techniques of this disclosure. As shown, video coding 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, and 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.
[0022] 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.
[0023] The video data may include one or more images. 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 images and associated data. A coded image is a coded representation of an image. The associated data may include sequence parameter sets, image parameter sets, and other syntax structures. The I / O interface 116 may include a modulator / demodulator and / or a transmitter. The encoded video data may be transmitted directly to the destination device 120 through the network 130A via the I / O interface 116. The encoded video data may be stored in a storage medium / server 130B for access by the destination device 120.
[0024] 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 configured to interface with an external display device.
[0025] Video encoder 114 and video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVC) standard, and other current and / or future standards.
[0026] 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 disclosure.
[0027] Video encoder 200 may be configured to embody 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.
[0028] 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 encoding unit 214.
[0029] 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 an IBC mode, where at least one reference image is the image in which the current video block is located.
[0030] 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.
[0031] The division unit 201 may divide an image into one or more video blocks. The video encoder 200 and the video decoder 300 may support a variety of video block sizes.
[0032] The mode selection unit 203 may, for example, select one of intra or inter coding modes based on the 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 encoded block to the reconstruction unit 212 to reconstruct and use as a reference image. 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 of the motion vector of the block (e.g., sub-pixel or integer pixel accuracy).
[0033] 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 prediction 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.
[0034] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on a current video block depending on whether the current video block is in an I slice, a P slice, or a B slice, for example. As used herein, an "I slice" may refer to a portion of an image composed of macroblocks, all of which are based on macroblocks within the same image. Additionally, as used herein, in some aspects, a "P slice" and a "B slice" may refer to a portion of an image composed of macroblocks that are independent of macroblocks within the same image.
[0035] In some examples, motion estimation unit 204 may perform unidirectional prediction on the current video block, and motion estimation unit 204 may look for a reference image 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 indicating a reference image in list 0 or list 1 that contains the reference video block, and a motion vector indicating 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 of 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.
[0036] 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 image in list 0 for a reference video block of the current video block, and may look up a reference image in list 1 for another reference video block of the current video block. Motion estimation unit 204 may then generate a reference index indicating the reference images in lists 0 and 1 that contain the reference video blocks, and a motion vector indicating a 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 of the current video block as motion information of 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.
[0037] In some examples, motion estimation unit 204 may output a full set of motion information for the decoding process of the decoder. Alternatively, in some embodiments, motion estimation unit 204 may signal the motion information of the current video block with reference to 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.
[0038] 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.
[0039] 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 a 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.
[0040] 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.
[0041] 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 in the same image. The predictive data for the current video block may include a predicted video block and various syntax elements.
[0042] 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.
[0043] In other examples, such as in skip mode, residual data for the current video block may not be present, and residual generation unit 207 may not perform the subtraction operation.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] After reconstruction unit 212 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.
[0048] Entropy encoding unit 214 may receive data from other functional components of video encoder 200. Once entropy encoding unit 214 receives the data, it may perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream including the entropy encoded data.
[0049] 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.
[0050] The video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 3, the video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared among various components of the video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0051] 3, the 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. The video decoder 300 may, in some examples, perform a decoding path that is generally inverse to the encoding path described with respect to the video encoder 200.
[0052] The entropy decoding unit 301 may retrieve an encoded bitstream. The encoded bitstream may include entropy coded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 may decode the entropy coded video data, from which 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, for example, by performing AMVP and merge mode. AMVP is used and includes derivation of some most likely candidates based on data from neighboring PBs and reference pictures. The motion information typically includes horizontal and vertical motion vector displacement values, one or two reference picture indexes, and, in the case of 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.
[0053] The motion compensation unit 302 may generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier of the interpolation filter used with sub-pixel precision may be included in the syntax element.
[0054] Motion compensation unit 302 may calculate interpolated values for sub-integer pixels of a reference block using an interpolation filter used by video encoder 200 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filter used by video encoder 200 according to received syntax information and generate a predictive block using the interpolation filter.
[0055] The motion compensation unit 302 may use at least a portion of the syntactic 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 the image 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 image with respect to entropy coding, signal prediction, and residual signal reconstruction. A slice may be either an entire image or a region of an image.
[0056] The intra prediction unit 303 may form a prediction block from spatially neighboring blocks, e.g., 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.
[0057] The reconstruction unit 306 may, for example, obtain a decoded block by adding the residual block and a corresponding prediction block generated by the motion compensation unit 302 or the intra prediction unit 303. Optionally, a deblocking filter may be applied to filter the decoded block to remove block artifacts. The decoded video block is then stored in a buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction, and also generates the decoded video for presentation on a display device.
[0058] Some exemplary embodiments of the present disclosure will be described in detail below. Section headings are used herein for ease of understanding, but it should be understood that they do not limit the embodiments disclosed in a section to only that section. Furthermore, although certain embodiments are described with reference to versatile video coding or other specific video codecs, the disclosed techniques are applicable to other video coding techniques. Furthermore, although some embodiments describe video coding steps in detail, it will be understood that a corresponding decoding step that undoes the coding is performed by a decoder. Furthermore, the term video processing encompasses video coding or compression, video decoding or decompression, and video transcoding, which represents video pixels from one compressed format to another compressed format or at a different compressed bit rate. [Table 1] TIFF2025502222000003.tif254170TIFF2025502222000004.tif252170TIFF202 5502222000005.tif192127TIFF2025502222000006.tif254170TIFF20255022220 00007.tif254168TIFF2025502222000008.tif246164TIFF2025502222000009.t if254170TIFF2025502222000010.tif238170TIFF2025502222000011.tif254167
[0059] Further details of embodiments of the present disclosure related to picture-in-picture signaling in media files are described below. The embodiments of the present disclosure should be considered as examples to illustrate the general concept and should not be interpreted in a narrow sense. Moreover, these embodiments can be applied individually or in any combination.
[0060] As used herein, the term "track" may refer to a timing sequence of related samples. The term "box" may refer to an object-oriented building block defined by a unique type identifier and a length. Picture-in-picture (PiP) services provide the ability to include lower spatial resolution video (also called "supplemental video" or "PiP video") within higher spatial resolution video (also called "main video").
[0061] FIG. 4 shows a flowchart of a method 400 of video processing according to some embodiments of the present disclosure. The method 400 may be embodied in a client or a server. The term "client" as used herein 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. As an example, a client may be a smartphone or a tablet. The term "server" as used herein may refer to a computing-enabled device, where the client accesses services over a network. The server may be a physical computing device or a virtual computing device.
[0062] As shown in Figure 4, at 402, conversion between a bitstream of multiple videos and a media file of multiple videos is performed. A media file is a collection of data that establishes a bounded or unbounded presentation of media content in the context of a file format (e.g., an International Organization for Standardization (ISO) based media file format). In some embodiments, the conversion may include generating a media file and storing the bitstream in the media file. Additionally or alternatively, the conversion may include parsing the media file to reconstruct the bitstream.
[0063] In some embodiments, the multiple videos include a first video and a second video different from the first video. By way of example and not limitation, the size of the second video may be smaller than the size of the first video. Furthermore, the media file includes a first track for a bitstream of the first video and a second track for a bitstream of the second video. In one example, the first track may carry the bitstream of the first video and the second track may carry the bitstream of the second video. In the context of a picture-in-picture service, the first video is a main video and the second video is a supplemental video or PiP video. Accordingly, the first track is a main video track and the second track is a supplemental video track.
[0064] Moreover, a target area in the first video for overlaying the second video (also called a "PiP area") is indicated by a value of a first instruction in the first track and a value of a second instruction in the second track. That is, the target area is indicated by a combination of the first instruction and the second instruction. Neither the first instruction nor the second instruction itself can indicate the target area. By way of example and not limitation, the target area may be a window, etc.
[0065] Considering the above, a target area in a first video for overlaying a second video is indicated by a first indication in a first track for the first video and a second indication in a second track for the second video. Compared with the conventional solution in which the target area is indicated only by the second indication, the proposed method can ensure proper indication of the picture-in-picture area, and thus improve the performance of the picture-in-picture service.
[0066] In some embodiments, the first instruction may be included in a first data structure of a first track, and the first data structure may specify characteristics of the first track. Furthermore, the second instruction may be included in a second data structure of a second track, and the second data structure may specify characteristics of the second track. In one example, each of the first data structure and the second data structure may be a track header box (also referred to as TrackHeaderBox). Furthermore, each of the first instruction and the second instruction may be a matrix field. It should be understood that the above discussion and / or examples are provided for illustrative purposes only. The scope of the present disclosure is not limited in this respect.
[0067] In some embodiments, the second track may be closer to a viewer of the presentation of the media file than the first track. In other words, the second video may be placed before the first video. As an example, the value of the third indication in the second track may be less than the value of the fourth indication in the first track. The third indication may indicate a front-to-back order of the second track, and the fourth indication may indicate a front-to-back order of the first track. In some embodiments, the third indication may be included in a second data structure of the second track, and the second data structure may specify characteristics of the second track. Furthermore, the fourth indication may be included in a first data structure of the first track, and the first data structure may specify characteristics of the first track. For example, each of the first data structure and the second data structure may be a track header box (also noted as TrackHeaderBox), and each of the third indication and the fourth indication may be a layer field. This ensures that the value of the Layers field in the TrackHeaderBox of the supplemental video track is less than that of the main video track, ensuring that the two videos are displayed properly.
[0068] In some embodiments, an entity group may be a picture-in-picture entity group if the value of the grouping type field (also denoted as grouping_type field) of the entity group in the media file is equal to a predefined value representing picture-in-picture. Moreover, in the case of a picture-in-picture entity group, the data structure EntityToGroupBox may be extended to a data structure PicInPicEntityGroupBox. By way of example and not limitation, the predefined value may be, for example, "pinp".
[0069] In some embodiments, if a media file contains a picture-in-picture entity group, the picture-in-picture entity group may be included in a data structure GroupsListBox of a file-level data structure MetaBox in the media file. Furthermore, the picture-in-picture entity group shall not be included in a data structure MetaBox at any other level, such as the movie level or track level. The data structure GroupsListBox may contain the entity groups specified for the file. The data structure MetaBox is a common base structure used to contain general, non-time-restricted metadata.
[0070] According to an embodiment of the present disclosure, a non-transitory computer-readable recording medium is proposed. A bitstream of a plurality of videos is stored in the non-transitory computer-readable recording medium. The bitstream may be generated by a method executed by a video processing device. According to the method, conversion between the bitstream of the plurality of videos and a media file is performed. The plurality of videos includes a first video and a second video different from the first video. The media file includes a first track for the bitstream of the first video and a second track for the bitstream of the second video. A target area in the first video for overlaying the second video is indicated by a value of a first instruction in the first track and a second instruction in the second track.
[0071] According to an embodiment of the present disclosure, a method for storing a bitstream of multiple videos is proposed. In the method, a conversion between the bitstream of the multiple videos and a media file is performed. The multiple videos include a first video and a second video different from the first video. The media file includes a first track for the bitstream of the first video and a second track for the bitstream of the second video. A target area in the first video for overlaying the second video is indicated by a value of a first instruction in the first track and a second instruction in the second track. Furthermore, the bitstream is stored in the non-transitory computer-readable recording medium.
[0072] According to an embodiment of the present disclosure, another non-transitory computer-readable recording medium is proposed. A plurality of video media files are stored in the non-transitory computer-readable recording medium. The media files may be generated by a method executed by a video processing device. According to the method, conversion between a bitstream of a plurality of videos and a media file is performed. The plurality of videos includes a first video and a second video different from the first video. The media file includes a first track for the bitstream of the first video and a second track for the bitstream of the second video. A target area in the first video for overlaying the second video is indicated by a value of a first instruction in the first track and a second instruction in the second track.
[0073] According to an embodiment of the present disclosure, a method for storing a media file of multiple videos is proposed. In the method, conversion between a bitstream of the multiple videos and a media file is performed. The multiple videos include a first video and a second video different from the first video. The media file includes a first track for a bitstream of the first video and a second track for a bitstream of the second video. A target area in the first video for overlaying the second video is indicated by a value of a first instruction in the first track and a second instruction in the second track. Furthermore, the media file is stored in the non-transitory computer-readable recording medium.
[0074] Implementations of the present disclosure may be described in light of the following clauses, the features of which may be combined in any reasonable manner.
[0075] Clause 1. A video processing method comprising: performing conversion between a bitstream of a plurality of videos and a media file of the plurality of videos, wherein the plurality of videos comprises a first video and a second video different from the first video, the media file comprising a first track for a bitstream of the first video and a second track for a bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by values of a first instruction in the first track and a second instruction in the second track.
[0076] Clause 2. The method of clause 1, wherein the first instructions are included in a first data structure in the first track, the first data structure specifying characteristics of the first track, and the second instructions are included in a second data structure in the second track, the second data structure specifying characteristics of the second track.
[0077] Clause 3. The method of clause 2, wherein each of the first data structure and the second data structure is a track header box, and each of the first instruction and the second instruction is a matrix field.
[0078] Clause 4. The method of any one of clauses 1 to 3, wherein a size of the second video is smaller than a size of the first video.
[0079] Clause 5. The method of any one of clauses 1 to 4, wherein the target area is a window.
[0080] Clause 6. The method of any one of clauses 1 to 5, wherein the second track is closer to a viewer of a presentation of the media file than the first track.
[0081] Clause 7. The method of any one of clauses 1 to 5, wherein the second video is placed before the first video.
[0082] Clause 8. The method of any one of clauses 1 to 7, wherein the value of the third instruction in the second track is smaller than the value of the fourth instruction in the first track, the third instruction indicating a front-to-back order of the second track, and the fourth instruction indicating a front-to-back order of the first track.
[0083] Clause 9. The method of clause 8, wherein the third instructions are included in a second data structure of the second track, the second data structure specifying characteristics of the second track, and the fourth instructions are included in a first data structure of the first track, the first data structure specifying characteristics of the first track.
[0084] Clause 10. The method of clause 9, wherein each of the first data structure and the second data structure is a track header box, and each of the third instruction and the fourth instruction is a layer field.
[0085] Clause 11. The method of any one of clauses 1 to 10, wherein the entity group is a picture-in-picture entity group if a value of a grouping type field of the entity group in the media file is equal to a predefined value representing picture-in-picture.
[0086] Clause 12. The method of clause 11, wherein the predetermined value is "pinp".
[0087] Clause 13. The method according to any one of clauses 11 or 12, wherein for a picture-in-picture entity group the data structure EntityToGroupBox is extended to a data structure PicInPicEntityGroupBox.
[0088] Clause 14. The method of clause 13, wherein if the media file contains the picture-in-picture entity group, the picture-in-picture entity group is included in a data structure GroupsListBox of a file-level data structure MetaBox within the media file.
[0089] Clause 15. The method of any one of clauses 1 to 14, wherein the first video is a main video and the second video is a picture-in-picture (PiP) video.
[0090] Clause 16. The method of any one of clauses 1 to 15, wherein the media file is in an International Organization for Standardization (ISO) based media file format.
[0091] Clause 17. The method of any one of clauses 1 to 16, wherein the converting comprises generating the media file and storing the bitstream in the media file.
[0092] Clause 18. The method of any one of clauses 1 to 16, wherein the conversion comprises parsing the media file to reconstruct the bitstream.
[0093] Clause 19. An apparatus for processing video data comprising a processor and a non-transitory memory in which instructions are stored, the instructions, when executed by the processor, causing the processor to perform a method according to any one of clauses 1 to 18.
[0094] Clause 20. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of clauses 1 to 18.
[0095] Clause 21. A non-transitory computer-readable recording medium storing a bitstream of a plurality of videos generated by a method performed by a video processing device, the method comprising the step of performing a conversion between the bitstream and a media file of the plurality of videos, wherein the plurality of videos comprises a first video and a second video different from the first video, the media file comprising a first track for a bitstream of the first video and a second track for a bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by values of a first instruction in the first track and a second instruction in the second track.
[0096] Clause 22. A method for storing multiple video bitstreams, comprising: 11. A method for overlaying a video on a first video source, the first video source comprising: a first track for a bitstream of the first video and a second track for a bitstream of the second video; and a second track for a bitstream of the second video source, the second track being a first track for a bitstream of the first video source and a second track for a bitstream of the second video source. 12. A method for overlaying a video on a first video source, the first track being a first track for a bitstream of the first video source and a second track being a second track for a bitstream of the second video source.
[0097] Clause 23. A non-transitory computer-readable recording medium storing a media file of a plurality of videos generated by a method performed by a video processing device, the method comprising the step of performing a conversion between a bitstream of the plurality of videos and the media file, where the plurality of videos comprises a first video and a second video different from the first video, the media file comprising a first track for a bitstream of the first video and a second track for a bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by values of a first instruction in the first track and a second instruction in the second track.
[0098] Clause 24. A method for storing a media file of a plurality of videos, comprising the steps of performing a conversion between a bitstream of the plurality of videos and the media file, and storing the media file on a non-transitory computer-readable recording medium, wherein the plurality of videos includes a first video and a second video different from the first video, the media file includes a first track for a bitstream of the first video and a second track for a bitstream of the second video, and a target area in the first video for overlaying the second video is indicated by values of a first instruction in the first track and a second instruction in the second track.
[0099] Exemplary Devices 5 illustrates a block diagram of a computing device 500 capable of implementing various embodiments of the present disclosure. The computing device 500 may be embodied as or included in the source device 110 (or the video encoder 114 or 200) or the destination device 120 (or the video decoder 124 or 300).
[0100] It will be appreciated that the computing device 500 illustrated in FIG. 5 is for illustrative purposes only and is not intended to suggest any limitation on the functionality and scope of the embodiments of the present disclosure.
[0101] 5, the computing device 500 includes a general purpose computing device 500. The computing device 500 may include at least one or more processors or processing units 510, a memory 520, a storage unit 530, one or more communication units 540, one or more input devices 550, and one or more output devices 560.
[0102] In some embodiments, the computing device 500 may be embodied 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, etc. 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 broadcast 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 the computing device 500 may support any type of interface to a user, such as "wearable" circuitry.
[0103] The processing unit 510 may be a physical or virtual processor and may implement various processes based on programs stored in the memory 520. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing capabilities of the computing device 500. The processing unit 510 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.
[0104] Computing device 500 typically includes a variety of computer storage media. Such media may be any media accessible by computing device 500, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 520 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 530 may be any removable or non-removable medium, including a machine-readable medium such as a memory, a flash memory drive, a magnetic disk, or another medium that can be used to store information and / or data and that can be accessed by computing device 500.
[0105] The computing device 500 may further include additional removable / non-removable, volatile / non-volatile memory media. Although not shown in FIG. 5, 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 a case, each drive may be connected to a bus (not shown) via one or more data media interfaces.
[0106] The communication unit 540 communicates with further computing devices via a communication medium. Moreover, the functionality of the components in the computing device 500 may be embodied by a single computing cluster or multiple computing machines that can communicate via a communication connection. Thus, the computing device 500 can operate in a networked environment using logical connections with one or more other servers, networked personal computers (PCs), or further general network nodes.
[0107] The input device 550 may be one or more of a variety of input devices such as a mouse, a keyboard, a tracking ball, a voice input device, etc. The output device 560 may be one or more of a variety of output devices such as a display, a loudspeaker, a printer, etc. The communication unit 540 allows the computing device 500 to further communicate with one or more external devices (not shown), such as a storage device and a display device, one or more devices allowing a user to interact with the computing device 500, or any device (such as a network card, a modem, etc.) allowing the computing device 500 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).
[0108] In some embodiments, instead of being integrated into a single device, some or all of the components of the computing device 500 may be located in a cloud computing architecture. In a cloud computing architecture, the 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 the end user needing 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 (such as the Internet) using appropriate protocols. For example, a cloud computing provider provides applications over a wide area network that can be accessed through a web browser or other computing components. The software or components of the cloud computing architecture and corresponding data may be stored on a server located in a remote location. 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 access point 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 located in a remote location. Alternatively, they may be provided from a traditional server or installed directly or otherwise on a client device.
[0109] The computing device 500 may be used to implement video encoding / decoding in embodiments of the present disclosure. The memory 520 may include one or more video processing modules 525 having one or more program instructions. These modules are accessible and executable by the processing unit 510 to perform the functions of various embodiments described herein.
[0110] In an example embodiment performing video encoding, input device 550 may receive video data to be encoded as input 570. The video data may be processed, for example, by video processing module 525 to generate an encoded bitstream. The encoded bitstream may be provided as output 580 via output device 560.
[0111] In an example embodiment performing video decoding, input device 550 may receive an encoded bitstream as input 570. The encoded bitstream may be processed, for example, by video processing module 525 to generate decoded video data. The decoded video data may be provided as output 580 via output device 560.
[0112] Although 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 details 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 the embodiments of the present application is not intended to be limiting.
Claims
1. 1. A video processing method comprising the steps of: performing conversion between a bitstream of a plurality of videos and a media file of the plurality of videos; the plurality of videos includes a first video and a second video different from the first video; the media file includes a first track for a bitstream of the first video and a second track for a bitstream of the second video; a target area in the first video for overlaying the second video is indicated by a value of a first indication in the first track and a value of a second indication in the second track; method.
2. the first instruction is included in a first data structure in the first track; the first data structure specifies characteristics of the first track; the second instructions are included in a second data structure in the second track; the second data structure specifying characteristics of the second track; The method of claim 1.
3. each of the first data structure and the second data structure is a track header box; each of the first instruction and the second instruction is a matrix field; The method of claim 2.
4. The size of the second video is smaller than the size of the first video.
4. The method according to any one of claims 1 to 3.
5. the target region is a window; 5. The method according to any one of claims 1 to 4.
6. the second track being closer to a viewer of a presentation of the media file than the first track; 6. The method according to any one of claims 1 to 5.
7. the second video is placed in front of the first video; 6. The method according to any one of claims 1 to 5.
8. a value of the third instruction in the second track is less than a value of the fourth instruction in the first track; the third indication indicates a front-to-back order of the second track; the fourth instruction indicates a front-to-back order of the first track; 8. The method according to any one of claims 1 to 7.
9. the third instructions are included in a second data structure in the second track; the second data structure specifying characteristics of the second track; the fourth instruction is included in a first data structure in the first track; the first data structure specifying characteristics of the first track; The method according to claim 8.
10. each of the first data structure and the second data structure is a track header box; each of the third instruction and the fourth instruction is a layer field; 10. The method of claim 9.
11. if a value of a grouping type field of an entity group in the media file is equal to a predefined value representing picture in picture, the entity group is a picture in picture entity group; 11. The method according to any one of claims 1 to 10.
12. The predetermined value is "pinp"; The method of claim 11.
13. For a picture-in-picture entity group, the data structure EntityToGroupBox is extended to the data structure PicInPicEntityGroupBox; 13. The method according to any one of claims 11 or 12.
14. If the media file includes the picture-in-picture entity group, the picture-in-picture entity group is included in a data structure GroupsListBox of a file-level data structure MetaBox in the media file. The method of claim 13.
15. the first video is a main video; the second video is a picture-in-picture (PiP) video; 15. The method according to any one of claims 1 to 14.
16. the media file is in an International Organization for Standardization (ISO) based media file format; 16. The method according to any one of claims 1 to 15.
17. said converting including generating said media file and storing said bitstream in said media file; 17. The method according to any one of claims 1 to 16.
18. said converting comprising parsing said media file to reconstruct said bitstream; 17. The method according to any one of claims 1 to 16.
19. 1. An apparatus for processing video data, comprising a processor and a non-transitory memory in which instructions are stored, the apparatus comprising: The instructions, when executed by the processor, cause the processor to perform a method according to any one of claims 1 to 18. Device.
20. A non-transitory computer readable storage medium storing instructions that cause a processor to perform the method of any one of claims 1 to 18.
21. A non-transitory computer-readable recording medium storing a bitstream of a plurality of videos generated by a method performed by a video processing device, comprising: The method includes performing a conversion between the bitstream and media files of the plurality of videos; the plurality of videos includes a first video and a second video different from the first video; the media file includes a first track for a bitstream of the first video and a second track for a bitstream of the second video; a target area in the first video for overlaying the second video is indicated by a value of a first indication in the first track and a value of a second indication in the second track; A non-transitory computer-readable recording medium.
22. 1. A method for storing multiple video bitstreams, comprising: performing conversion between the bitstream and media files of the plurality of videos; storing the bitstream on a non-transitory computer-readable recording medium; the plurality of videos includes a first video and a second video different from the first video; the media file includes a first track for a bitstream of the first video and a second track for a bitstream of the second video; a target area in the first video for overlaying the second video is indicated by a value of a first indication in the first track and a value of a second indication in the second track; method.
23. 1. A non-transitory computer-readable recording medium for storing media files of a plurality of videos generated by a method performed by a video processing device, comprising: The method includes performing a conversion between the bitstreams of the plurality of videos and the media file; the plurality of videos includes a first video and a second video different from the first video; the media file includes a first track for a bitstream of the first video and a second track for a bitstream of the second video; a target area in the first video for overlaying the second video is indicated by a value of a first indication in the first track and a value of a second indication in the second track; A non-transitory computer-readable recording medium.
24. 1. A method for storing multiple video media files, comprising: performing conversion between the bitstreams of the plurality of videos and the media file; storing the media file on a non-transitory computer-readable recording medium; the plurality of videos includes a first video and a second video different from the first video; the media file includes a first track for a bitstream of the first video and a second track for a bitstream of the second video; a target area in the first video for overlaying the second video is indicated by a value of a first indication in the first track and a value of a second indication in the second track; method.