Data structure for multimedia applications
Abstract
Embodiments described herein provide a unified container format for delivering different multimedia applications. One embodiment provides a data structure utilized for implementing a plurality of multimedia applications. The data structure includes a first metadata level including low-level metadata used to perform operations associated with media data in a bitstream. The data structure includes a second metadata level including mid-level metadata used to apply operation metadata to render the media data. The data structure includes a third metadata level including upper-level metadata used to utilize the low-level metadata and the mid-level metadata to deliver the plurality of multimedia applications. The first metadata level further includes synchronization metadata for converting the media data, the low-level metadata, the mid-level metadata, and the upper-level metadata from a first multimedia application of the plurality of multimedia applications to a second multimedia application of the plurality of multimedia applications.

Term
No projected expiry on record.
- Priority
- Filed
- Granted
- Today
20 claims: 12 independent, 8 dependent
- 1一種用於實施複數個多媒體應用之資料結構,該資料結構包括: 一第一後設資料層級,其包含用於執行與一位元串流中之媒體資料相關聯之操作的低層級後設資料; 一第二後設資料層級,其包含用於應用該低層級後設資料來呈現該媒體資料的中層級後設資料;及 一第三後設資料層級,其包含用於利用該低層級後設資料及該中層級後設資料來遞送該複數個多媒體應用的高層級後設資料, 其中該第一後設資料層級進一步包含同步後設資料,其用於將該媒體資料、該低層級後設資料、該中層級後設資料及該高層級後設資料自該複數個多媒體應用中之一第一多媒體應用轉換為該複數個多媒體應用中之一第二多媒體應用。
- 2如請求項1之資料結構,其中該低層級後設資料包含: 預測後設資料,其含有一多項式預測、一多變項複回歸預測及一張量積B樣條曲線預測, 顯示管理後設資料,其用於使用該媒體資料顯示視訊, 相片後設資料,其用於使用該媒體資料顯示一影像, 可交換影像檔案格式後設資料,其含有與相機影像相關之後設資料, 空後設資料,其用於實施基準媒體資料,及 沉浸式後設資料,其含有用於該媒體資料之一目標圖、一深度圖及回應曲線。
- 3如請求項1至請求項2中任一項之資料結構,其中該同步後設資料包含指示延伸區塊之一數目之一有效負載標頭,每一延伸區塊包含指示其各別有效負載之一長度、層級及容器的一標頭。
- 4如請求項3之資料結構,其中該有效負載標頭包含source_expierience_ID後設資料、sink_expierience_ID後設資料及operation_value後設資料。
- 5如請求項4之資料結構,其中該operation_value後設資料係選自由以下各項組成之組之一後設資料:一靜止相片之一圖框索引、一視訊圖框之一時間戳記、一解析度映射函數及指示是否准許自一標準動態範圍(SDR)相片轉一高動態範圍(HDR)視訊之工作流程的一二元旗標。
- 6如請求項1至請求項2中任一項之資料結構,其中該複數個多媒體應用包含一靜止相片應用及一視訊應用。
- 7如請求項6之資料結構,其中,當在該靜止相片應用中操控該媒體資料時,該同步後設資料為該視訊應用更新該媒體資料、該低層級後設資料、該中層級後設資料及該高層級後設資料。
- 8如請求項1至請求項2中任一項之資料結構,其中該低層級後設資料及該中層級後設資料係作為方塊在一高效率影像格式(HEIF)容器內實施。
- 9如請求項8之資料結構,其中該等方塊係在一聯合圖像專家小組(JPEG)容器中實施為應用分段標記(APP標記)。
- 10如請求項1至請求項2中任一項之資料結構,其中該同步後設資料定義該第一多媒體應用與該第二多媒體應用之間的一解析度映射。
- 11如請求項1至請求項2中任一項之資料結構,其中該同步後設資料包含指示是否准許自一標準動態範圍(SDR)相片應用轉一高動態範圍(HDR)視訊應用之工作流程的一二元旗標。
- 12如請求項11之資料結構,其中該同步後設資料包含SDR轉HDR轉換演算法及其對應參數。
- 13一種用於實施如請求項1至請求項12中任一項之資料結構的控制器,其中該控制器經組態以: 編輯包含在該複數個多媒體應用中之一第一應用中的一視訊;且 傳播該編輯至包含在該複數個多媒體應用中之一第二應用中的一對應相片, 其中該同步後設資料包含用於該對應相片之一圖框索引。
- 14如請求項13之控制器,其中該控制器經組態以: 接收指示該複數個多媒體應用中之一者的一使用者輸入;且 基於該使用者輸入將該媒體資料提供為一SDR靜止相片應用或一HDR視訊應用。
- 15如請求項13或請求項14之控制器,其中該控制器經組態以執行一多媒體應用內編輯操作,其中在不影響一第二多媒體應用之情況下對一第一多媒體應用中之該媒體資料執行編輯。
- 16如請求項13或請求項14之控制器,其中該控制器經組態以執行一多媒體應用間編輯操作,其中將對一第一多媒體應用中之該媒體資料進行編輯傳播至一第二多媒體應用。
- 17如請求項13或請求項14之控制器,其中該控制器經組態以執行一多媒體應用內轉譯操作,其中將該媒體資料自一第一類型之一第一多媒體應用轉譯為該第一類型之一第二多媒體應用。
- 18如請求項13或請求項14之控制器,其中該控制器經組態以執行一多媒體應用間轉譯操作,其中將該媒體資料自一第一類型之一第一多媒體應用轉譯為一第二類型之一第二多媒體應用。
- 19如請求項13或請求項14之控制器,其中該控制器經組態以: 根據播放運算資源、裝置能力及終端使用者偏好中之至少一者將該媒體資料提供為一SDR靜止相片應用或一HDR視訊應用。
- 20如請求項13或請求項14之控制器,其中,為提供包含在該複數個多媒體應用中之一成像應用,該控制器經組態以包含以下中之至少一者: (a)一第一編解碼器,其包含用於一HEIF容器中之HDR的一感知量化傳遞函數; (b)一第二編解碼器,其包含用於該HEIF容器中之HDR的一混合對數伽馬傳遞函數; (c)一第三編解碼器,其包含作為一JPEG容器中之單一庫存的JPG及HDR;及 (d)一第四編解碼器,其包含作為HEVC及該HEIF容器中之單一庫存兩者的SDR及HDR。
Independent claims20
90 paragraphs in 1 section, as filed
Data structure for multimedia applications
DATA STRUCTURE FOR MULTIMEDIA APPLICATIONS
This application generally relates to data structures for implementing a plurality of multimedia applications, and to a controller for implementing such data structures.
Multimedia experiences (such as imaging and video applications) utilize a container format (eg, a metafile, a file format) that allows multiple data streams to be embedded into a single file. These container formats contain metadata that identifies the data stream and details how to implement the data stream's functionality. Containers include: the High Efficiency Image File Format (HEIF), which uses a video codec to encode images using in-frame encoding; and the Joint Photographic Experts Group (JPEG) format (also known as EXIF and JFIF), which uses application partitioning Segment tag (APP tag) to store information. However, there is a growing need for a container format for high dynamic range (HDR) image quality for a variety of multimedia applications.
The embodiments described herein provide a unified container format for delivering different multimedia experiences. Multimedia experiences include, for example, still photo applications, video applications, live photo applications, and the like. Additionally, different multimedia experiences can be different versions of the same application (eg, an original photo application and an updated photo application). The unified container format is backwards compatible with existing formats. Multiple experiences are encapsulated in a single bit stream. Using a unified container format, a playback system can decide which application to run based on computing resources, device capabilities and/or user preferences. In addition, there needs to be minimal interference and dependency between different multimedia applications.
In an illustrative aspect of the present disclosure, a data structure for implementing a plurality of multimedia applications is provided. The data structure includes a first metadata level that contains low-level metadata for performing operations associated with media data in a bit stream. The data structure includes a second metadata level that includes mid-level metadata for applying the low-level metadata to render the media data. The data structure includes a third metadata level that includes high-level metadata for delivering the plurality of multimedia applications using the low-level metadata and the mid-level metadata. The first metadata level further includes synchronized metadata for integrating the media data, the low-level metadata, the mid-level metadata and the high-level metadata from the plurality of multimedia applications. A first multimedia application is converted into a second multimedia application among the plurality of multimedia applications.
In this manner, aspects of the present disclosure provide implementation solutions for multimedia applications such as photo applications and video applications with a high dynamic range and high resolution or a standard resolution, and at least in image projection, signal processing, Improvements in image display and other technical fields.
Cross-references to related applications
This application claims priority over the following priority applications: U.S. Provisional Application No. 63/301,467, filed on January 20, 2022, and U.S. Provisional Application No. 63/399,871, filed on August 22, 2022, and 2022 European application 22155345.6 filed on February 7, 2018.
This disclosure and its aspects may be embodied in various forms, including computer-implemented methods, computer program products, computer systems and networks, user interfaces and application development interfaces, and hardware-implemented methods, signals Processing circuits, memory arrays, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) and the like control hardware, devices or circuits. The foregoing is intended only to give a general idea of the various aspects of the disclosure and does not limit the scope of the disclosure in any way.
Furthermore, while this disclosure focuses primarily on examples in which various circuits are used in digital projection systems, it should be understood that these are examples only. The disclosed systems and methods may be implemented in a display device, such as with an OLED display, an LCD display, a quantum dot display, or the like. It should be further understood that the disclosed systems and methods may be used in any device in which light is required to be projected, such as, for example, movie theaters, consumer and other commercial projection systems, heads-up displays, virtual reality displays, and the like. <br/><b>three-level imaging format</b><b />
Figure 1 provides a three-level data structure 100 (eg, a metadata structure, a container, and a file structure) for implementing a multimedia experience (eg, a multimedia application). The data structure 100 includes low-level metadata 102 , mid-level metadata 104 and high-level metadata 106 . Low-level metadata 102 and mid-level metadata 104 serve as building blocks implemented by high-level metadata 106 that includes the multimedia experience.
Low-level metadata 102 consists of basic metadata that describes how to perform operations on the uppermost layer of standard media data in a bit stream. Low-level metadata 102 includes predictive metadata (PM) 110, display management metadata (DM) 112, photo metadata (OM) 114, immersive metadata (IM) 116, and interchangeable image file format (EXIF)/International Color Consortium (ICC) metadata (EM) 118, synchronized metadata (SM) 120, and null metadata (NM) 122. In some implementations, low-level metadata 102 may include additional metadata for implementing multimedia experiences.
The prediction metadata 110 includes polynomial predictions, multivariate multiple regression (MMR) predictions, and tensor product B-spline (TPB) predictions. The display management metadata 112 includes different levels of metadata syntax ranging from L0 to L255. Photo metadata 114 is for new still images and may have the same L1 syntax as display management metadata 112 . EXIF/ICC metadata 118 includes metadata related to camera images, such as thumbnail information. The immersive metadata 116 includes target maps, depth maps, and response curves. Empty metadata 122 is reserved and is used when base media data is required without any additional metadata. Several metadata groups may contain several identical or similar syntaxes. In addition, at a decoder, a dispatcher component can convert one syntax in one metadata group to another syntax in another metadata group, thereby reusing existing code and hardware and reducing program size. code size.
The synchronization metadata 120 has a similar structure to the display management metadata 112 . Each level of the synchronization metadata 120 specifies source experiences, sink experiences, and designed operations. The following table provides example syntax. However, other syntaxes can also be used. In some implementations, synchronization metadata 120 is updated and edited using various user-accessible tools.
The payload header indicates the number of extension blocks included in the sync metadata 120. An example of this payload header is shown in Table 1. <tables><table><table border="1" borderColor="#000000" width="85%"><tbody><tr><td>sm_data_payload() { <br/></td><td><b>C</b><br/></td><td><b>Descriptor</b><br/></td></tr><tr><td><b>num_ext_blocks</b><br/></td><td>0 <br/></td><td>ue(v) <br/></td></tr><tr><td>if(num_ext_blocks) { <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>while(!byte_aligned() ) <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td><b>dm_alignment_zero_bit</b><br/></td><td>0 <br/></td><td>f(1) <br/></td></tr><tr><td>for( i = 0; i < num_ext_blocks; i ++ ) { <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>ext_metadata_block() <br/></td><td>0 <br/></td><td><b /><br/></td></tr><tr><td>} <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>} <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>} <br/></td><td><b /><br/></td><td><b /><br/></td></tr></tbody></table></table></tables>Table 1: Instance payload headers
Each extension block contains a simple header that indicates the length, level, and container to contain its own payload. An example of this simple header is shown in Table 2. <tables><table><table border="1" borderColor="#000000" width="85%"><tbody><tr><td>ext_metadata_block() { <br/></td><td><b>C</b><br/></td><td><b>Descriptor</b><br/></td></tr><tr><td><b>ext_block_length</b><br/></td><td><b>0</b><br/></td><td><b>ue(v)</b><br/></td></tr><tr><td><b>ext_block_level</b><br/></td><td><b>0</b><br/></td><td><b>u(8)</b><br/></td></tr><tr><td>ext_block_payload(ext_block_length,ext_block_level) <br/></td><td><b>0</b><br/></td><td><b /><br/></td></tr><tr><td>} <br/></td><td><b /><br/></td><td><b /><br/></td></tr></tbody></table></table></tables>Table 2: Instance extension block header
An example of one of the payload formats themselves is provided in Table 3 below. <tables><table><table border="1" borderColor="#000000" width="85%"><tbody><tr><td>ext_block_payload(ext_block_length,ext_block_level) { <br/></td><td><b>C</b><br/></td><td><b>Descriptor</b><br/></td></tr><tr><td>ext_block_len_bits = 8 * ext_block_length <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>ext_block_use_bits = 0 <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>if( ext_block_level == xxx ) { <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>... <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>} <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>while( ext_block_use_bits++ < ext_block_len_bits ) <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td><b>ext_dm_alignment_zero_bit</b><br/></td><td><b>0</b><br/></td><td><b>f(1)</b><br/></td></tr><tr><td>} <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td> <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>if( ext_block_level == xxx ) { <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>source_experience_ID <br/></td><td><b>0</b><br/></td><td><b>u(8)</b><br/></td></tr><tr><td>sink_experience_ID <br/></td><td><b>0</b><br/></td><td><b>u(8)</b><br/></td></tr><tr><td>operation_value <br/></td><td><b>0</b><br/></td><td><b>u(32)</b><br/></td></tr><tr><td>ext_block_use_bits += 32 <br/></td><td><b /><br/></td><td><b /><br/></td></tr><tr><td>} <br/></td><td><b /><br/></td><td><b /><br/></td></tr></tbody></table></table></tables>Table 3: Instance payload format
The source_experience_ID and sink_experience_ID shown in Table 3 can be defined and mapped at a high level. The operation_value metadata in Table 3 is a reserved location for one of various uses such as the following:
Time synchronization: When editing a video in a video application, a corresponding still photo can be updated in a photo application. In this example, the operation_value metadata can be a frame index or a timestamp.
Spatial resolution: Different multimedia experiences can have different scaling on the same attributes. For example, still photos often have a greater resolution than video. The operation_value metadata defines the resolution mapping between different experiences.
Propagation Options/Strength: Synchronization metadata 120 may indicate whether editing or translation of data between different multimedia experiences is allowed, and the "strength" of correspondence within or between experiences. For example, the operation_value metadata may be a simple binary flag indicating whether the workflow of converting standard dynamic range (SDR) photos to HDR videos is allowed. If the workflow of converting SDR photos to HDR videos is allowed, the operation_value metadata can define which type of SDR to HDR conversion algorithm should be used and its corresponding parameters. For example, it is possible to specify which TPB enumeration is selected so that a different color capacity can be specified for reverse reconstruction from SDR to HDR. In addition, for HDR video to SDR photo conversion, the intensity can indicate which TPB enumeration is selected and used to perform forward reshaping to generate SDR photos.
Metadata Transformation: Synchronized metadata 120 may indicate how to transform metadata from one multimedia experience to another, such as from a photo application to a video application or vice versa.
Auxiliary information: Synchronized metadata 120 may indicate metadata required to perform operations related to a multimedia experience.
When providing multiple multimedia experiences in a single bit stream, multiple extension blocks with the same hierarchy can be utilized. For example:
Multiple sinks: Converting a first experience A to a second experience B can affect a third experience C. In this scenario, two extension blocks with the same level may indicate these operations. For example, a one-bit stream contains SDR photos, HDR videos, and immersive HDR/SDR photos. Updating HDR video affects both SDR photos and immersive HDR/SDR photos.
Multiple sources: One-bit streams can contain SDR photos, HDR videos, and immersive HDR photos. One application can be converted into another application. For example, SDR photos can be converted from HDR videos, and SDR photos can be converted from immersive HDR photos.
Mid-level metadata 104 describes what media data is provided as input to a processing module, and describes how the operational metadata is applied to render the media data. In other words, the mid-level metadata 104 consists of a stream of media data bits and the corresponding low-level metadata 102 required for the rendering used. The media data can be packaged together with the experience metadata within the bitstream, or stored in a different location in the same bitstream. In some embodiments, format backward compatibility can be achieved by storing media data in a different location.
Each multimedia experience may contain zero, one, two or more low-level metadata 102 and different low-level metadata 102 may be encapsulated into an rpu_type format. In some implementations, there are 64 rpu_types available for assignment. In the illustrated example, mid-level metadata 104 contains an rpu_type_2 130 , an rpu_type_4 132 , an rpu_type_5 134 , and an rpu_type_63 136 . rpu_type_2 130 contains media data as a base-level bit stream, and contains two lower-level metadata: prediction metadata 110 and display management metadata 112 . rpu_type_4 132 contains photo metadata 114. rpu_type_5 134 contains immersive metadata 116. rpu_type_63_136 may be reserved for TPB payload.
The high-level metadata 106 includes several applications that utilize the mid-level metadata 104 and the synchronized metadata 120, such as a first application 150, a second application 152, and a third application 154, each application being a different Multimedia experience (such as a photo experience, a video experience, an SDR photo experience, an HDR photo experience, an SDR video experience, an HDR video experience, an immersive SDR/HDR video experience or the like). Multiple experiences of the same type can exist in the same bitstream. Each experience may also include side information that indicates whether media data and metadata are packaged together or positioned in separate locations.
The playback system determines what content to play based on playback computing resources, device capabilities, and end-user preferences. Playback computing resources indicate which experience levels the system can support. Device capabilities include whether the terminal device (eg, output device) can display HDR images and videos, the sensors available on the terminal device, and whether the terminal device has a touch screen. End user preferences include which experience a user has requested or preferred to be presented with.
In some embodiments, high-level metadata 106 includes a default presentation application 156 (eg, a native application). Alternatively, the user can select the presentation mode (or application). In some embodiments, the bitstream may be packaged in an existing container with a format that is preset for the presentation application 156 . For example, a photo experience may include a JPEG thumbnail as a default presentation without being associated with any low-level metadata 102 or mid-level metadata 104 . However, high-level metadata 106 may use synchronization metadata 120 to describe mechanisms between different applications with default profiles. In other embodiments, the bitstream is packaged in a container without a default profile. In these embodiments, the required application is launched through user or environmental input. <br/><b>media playback</b><b />
A device implementing data structure 100 can play different experiences depending on the device's available computing resources, display capabilities, sensor availability, and user preferences. For example, FIG. 2 provides a play operation 200 for a multimedia experience (such as second application 152). The second application 152 may be, for example, a photo or video experience. When the second application 152 is stored in a legacy container (such as a JPEG container) (eg, as defined by the JPEG standard, EXIF and JFIF file formats, and the like) and the legacy container file is delivered to an end device, only Provides JPEG SDR still images.
However, if the second application 152 is provided to an end device that implements the data structure 100, the media data may be viewed as SDR or HDR still images using the photo player 204 that implements rpu_type_4 132, or may be viewed using the video player included in The prediction metadata 110 and display management metadata 112 in the rpu_type_2 130 implemented in 202 are viewed as an HDR live photo (eg video). Whether the media material is viewed using video playback 202 or photo playback 204 is based on user preference or user selection. <br/><b>media editor</b><b />
A media profile can be edited to modify the experience defined by its rpu_type (e.g., its color grading, its resolution, its frame rate, or the like). Figure 3A illustrates an example in-experience editing operation 300 that allows editing to be performed on each experience (eg, each rpu_type) without affecting another experience (eg, another rpu_type). Figure 3B illustrates an example inter-experience editing operation 350 in which edits made in one experience propagate to other experiences. Whether intra-experience editing operations 300 or inter-experience editing operations 350 are performed and how they are propagated between experiences are defined by synchronization metadata 120 .
The in-experience editing operation 300 of Figure 3A allows editing within an experience (eg, second application 152) using an editing tool 310. Although the results of edits may be propagated to other experiences, media data and their corresponding metadata are edited within a single experience. The in-experience editing operation 300 of Figure 3A can perform several different operations based on whether edits made in one experience are automatically reflected in other experiences. These actions may include making individual edits in one experience without updating the other experience, editing one experience and automatically updating another experience with those edits, and editing one experience and updating other experiences with those edits as appropriate. Editing and updating are controlled by the synchronization metadata 120.
In the example of Figure 3A, the second application 152 includes an rpu_type_ <i>m</i>315 and rpu_type_ <i>n</i>320 and synchronization metadata 120. 1 edit rpu_type_ <i>m</i>Module 335 pair rpu_type_ <i>m</i>315 perform any edits. 1 edit rpu_type_ <i>n</i>Module 330 pair rpu_type_ <i>n</i>320 perform any edits. Once the data module 325 is updated and synchronized, the data 120 is updated and synchronized.
As an example of in-experience editing operations 300, synchronization metadata 120 controls the propagation of edits between an SDR still image and an HDR still image. In some embodiments, the SDR still images are edited independently of the HDR still images without updating the HDR still images. In some embodiments, editing HDR stills automatically updates SDR stills. In some embodiments, SDR stills are edited and HDR stills are conditionally updated using an inverse reversible TPB to upconvert SDR to HDR. When editing SDR still images contains new content (such as graphics and text), object-based (eg, mask) side information can be used. The added information can be upconverted differently and then merged in the HDR domain.
Inter-experience editing operations 350 allow joint editing of several experiences using an editing tool 360. For example, in some embodiments, one experience is edited with reference to other experiences, and the editing results automatically update the other experiences. In other embodiments, one experience is edited with reference to other experiences, and the editing results selectively update other experiences. Editing and updating are controlled by the synchronization metadata 120.
In the example of Figure 3B, the second application 152 includes an rpu_type_ <i>m</i>315 and rpu_type_ <i>n</i>320 and synchronization metadata 120. 1 edit rpu_type_ <i>m</i>Module 375 pair rpu_type_ <i>m</i>315 perform any edits. Once the data is updated and synchronized, the data module 365 is updated and the data is set 120 after synchronization. These changes are then propagated to update rpu_type_ <i>n</i>320 one update rpu_type_ <i>n</i>Mod 370.
As an example of inter-experience editing operations 350, synchronization metadata 120 controls the propagation of edits between an SDR still image and an HDR live photo (eg, video). In some embodiments, HDR live photos are edited and SDR stills are automatically updated. In this embodiment, the metadata indicates which frame in the HDR video is to be edited. In other embodiments, SDR stills are edited and HDR live photos are conditionally updated using inverse reversible TPB. In this embodiment, the inverse metadata indicates how to propagate editing results, such as cropping, resizing, and tone mapping. <br/><b>Experience translation</b><b />
Experience translation transforms one experience into another and involves changing content between profiles and tiers even within the same experience. Figure 4A illustrates an example in-experience translation operation 400. Figure 4B illustrates an example inter-experience translation operation 450.
Figure 4A includes an application x 405, an application y 410, and a translation tool 415. Translation tool 415 translates application x 405 into application y 410 . Application x 405 and application y 410 may both be different profiles (or versions) of the same or a similar experience, such as switching from one photo experience to another. In-experience translation operations 400 may include media data translation, in which media data, such as a High Efficiency Video Coding (HEVC) encoded bitstream, is decoded to a common workspace and encoded to another workspace for conversion. Convert different settings such as resolution, color space, frame rate, SEI and VUI. This function is enabled by rpu_type_ <i>m</i>Intra-type translation module 430 is executed, the rpu_type_ <i>m</i>The intra-type translation module converts a rpu_type_ <i>m</i>420 is converted from applying x 405 to applying y 410. In-experience translation operations 400 may also include metadata translation in which an update sync metadata tool 435 updates the metadata (such as sync metadata 120) based on the transformation. For example, display management metadata 112 may be converted to new content.
Figure 4B includes an application x 455, an application y 460, and a translation tool 465. Translation tool 465 translates application x 455 into application y 460. Application x 455 may be, for example, a video experience, and application y 460 may be, for example, a photo experience. Inter-experience translation operations 450 may include media data translation, where media data is converted from one type of media to another type of video. For example, media data can be converted from photos to videos, or vice versa. Media data translation can be done via rpu_type_ <i>m</i>Transfer rpu_type_ <i>n</i>Inter-type translation module 480 is executed, which comes from rpu_type_ <i>m</i>Transfer rpu_type_ <i>n</i>The inter-type translation module converts rpu_type_ <i>m</i>470 translated to rpu_type_ <i>n</i>485. Inter-experience translation operations 450 may also include metadata translation, in which metadata of one type is converted to metadata of another type. For example, photo metadata 114 may be converted to video metadata (included in display management metadata 112) or vice versa. In some embodiments, prediction metadata 110 is transformed. Update synchronization metadata block 490 may update synchronization metadata 120 . <br/><b>Container implementation</b><b />
Data structure 100 can be integrated into existing containers such as HEIF or JPEG. As an example, HEIF uses a video codec to encode an image using in-frame encoding. The syntax of HEIF is based on ISO BMFF (Basic Media File Format). ISO BMFF uses "blocks" to structure different types of data. Each block is guided by a four-character type (4CC). Blocks can be nested or hierarchical (for example, one block within another block). Each block has a size that is an integer number of the number of bytes in the specified block. Additionally, each block has a block type, such as compact.
Two different definitions are used to distinguish still images from video. First, still images are stored as projects. All image items are encoded independently and do not depend on any other items in their decoding. Any number of image items can be included in the same file. Image sequences (such as videos) are stored as tracks. An image sequence playback track is used when there are encoding dependencies between images or when the playback of images is timed. In contrast to the video track, the timing of the image sequence track is advisory.
The HEIF bitstream contains two main components: media data with 4CC as "meta" suffix data, and media data with 4CC as media data block "mdat" or item data block "idat". The metadata portion represents side information (for example, the structure of a multimedia application), and the media data stores multimedia data.
The components of data structure 100 may be implemented as blocks in a HEIF bitstream. For example, low-level metadata 102 can be defined as the block "dbom": <tables><table><table border="1" borderColor="#000000" width="85%"><tbody><tr><td>aligned(8) class ImagingOperationMetadata <br/>xtends FullBox('dbom', version, flags) <br/> <br/>nsigned int(32) metadata_type; <br/>it(8) data[]; <br/> <br/></td></tr></tbody></table></table></tables>
For example, the above metadata_type can be "prdm" for prediction metadata 110, "dipm" for display management metadata 112, "phom" for photo metadata 114 and "synm" for sync metadata 120 ". Additional components of low-level metadata 102 may also be defined.
The mid-level metadata 104 can be defined as the block "dbex" containing the low-level metadata 102: <tables><table><table border="1" borderColor="#000000" width="85%"><tbody><tr><td>aligned(8) class ImagingExperienceMetadata <br/>xtends FullBox('dbex', version, flags) <br/> <br/>nsigned int(32) experience_type; <br/>nsigned int(32) operation_metadata_count; <br/>nsigned int(32) media_data_count; // consistency checking <br/>or(i = 0; i < operation_metadata_count; i++) { <br/>magingOperationMetadata operation[]; <br/> <br/>f(experience_type == 2 ){ // Video Experience <br/> <br/>lse if(experience_type == 4 ){ // Photo Experience <br/> <br/>lse if(experience_type == 5 ){ // Immersive Experience <br/> <br/>lse{ <br/>/ not supported <br/> <br/> <br/></td></tr></tbody></table></table></tables>
The association of media data with each experience metadata and operation metadata can be linked through an item property block ("iprp") included in the HEIF bitstream. For high-level metadata 106, an "iref" box defines the required metadata and media data for each application. In some implementations, blocks for synchronizing metadata 120 are stored at the highest level.
As another example, JPEG-XT is backward compatible with JPEG. JPEG-XT uses an APP tag (APP11) to store additional extended information. There are 16 APP tags present in JPEG. To take advantage of data structure 100, the format can be extended to APP11 without restriction. Since JPEG tags (16-bit 0xff followed by a 16-bit ID) have 16 bits of information indicating the number of bytes in the current tag, each tag only carries 2 <sup>16</sup>= 64 kilobytes of information. If the metadata is larger than 64 KB, multiple APP tags are required.
In addition, in order to avoid false detection of mark byte "0xff", for a non-mark byte 0xff, each 0xff should be followed by a byte filled with 0x00. Using the block definitions and block structures used in ISO BMFF, headers and media data can be placed in multiple APP tags in JPEG. Therefore, while providing a raw experience as a JPEG still image, other devices can provide a similar experience. <br/><b>make still images</b><b>HDR</b><b>ability</b>
The blocks described can be further extended to provide an HDR experience for still images. Table 4 provides example codec options for an imaging experience. <tables><table><table border="1" borderColor="#000000" width="85%"><tbody><tr><td>ID <br/></td><td>Codec selection <br/></td></tr><tr><td>1 <br/></td><td>PQ HDR in HEIF <br/> PQ, R2020, 10 Knits <br/> YCbCr/IPT <br/> HEVC 10b <br/></td></tr><tr><td>2 <br/></td><td>HLG HDR in HEIF <br/> HLG, R2020, 1 Knits <br/>YCbCr <br/> HEVC 10b <br/></td></tr><tr><td>3 <br/></td><td>JPG + HDR (single stock in JPEG) <br/> γ, R709, 100nits; YCbCr; JPG 8bit <br/> PQ/HLG, R2020, 10knits; YCbCr/IPT; HEVC 10b <br/></td></tr><tr><td>4 <br/></td><td>SDR + HDR (two HEVCs, as a single stock in HEIF) <br/> γ, R709, 100nits; YCbCr; HEVC 10b <br/> PQ,/HLG R2020, 10knits; YCbCr/IPT; HEVC 10b <br/></td></tr></tbody></table></table></tables>Table 4: Example of video experience codec <b />
As an example, for a photo application, the photo metadata 114 may be used to store an HDR HEVC encoded still image. Alternatively, a hybrid log-gamma (HLG) transfer function can be used in HEVC-encoded still images instead of a perceptual quantization (PQ) transfer function, as shown in the following pseudocode: <tables><table><table border="1" borderColor="#000000" width="85%"><tbody><tr><td>FileTypeBox 'ftyp': major-brand='heic', compatible-brands='heic, mp41' <br/>etaBox: (container) <br/>andlerBox 'hdlr': 'pict' <br/>rimaryItemBox 'pitm': item_ID=1; <br/>temInfoBox 'iinf': entry_count=2 <br/>) 'infe': item_type='hvc1', item_ID=1; <br/>) 'infe': item_type='Exif', item_ID=2; <br/>temLocationBox'iloc': item_count=2 <br/>tem_ID=1, extent_count=1, extent_offset=X, extent_length=Y; <br/>tem_ID=2, extent_count=1, extent_offset=P, extent_length=Q; <br/>temReferenceBox 'iref': <br/>eferenceType ='cdsc', from_item_ID=2, ref_count=1, to_item_ID=1; <br/>temPropertiesBox 'iprp': <br/>temPropertyContainerBox 'ipco': <br/>hvcC' <br/>ispe' <br/>temPropertyAssociation 'ipma', entry_count=1: <br/>tem_ID=1, association_count=2, <br/>ssential=1, property_index=1; <br/>ssential=0, property_index=2; <br/>ediaDataBox 'mdat': <br/>EVC for HDR Image (at file offset X, with length Y) <br/>xif data block (at file offset P, with length Q) <br/></td></tr></tbody></table></table></tables>
In another example, for a photo application, the EXIF metadata can be used to store an SDR JPEG encoded still image and the photo metadata can be used to store an HDR HEVC encoded still image, as described in the pseudocode below. exhibit: <tables><table><table border="1" borderColor="#000000" width="85%"><tbody><tr><td>FileTypeBox 'ftyp': major-brand='heic', compatible-brands='heic' <br/>etaBox 'meta': (container) <br/>andlerBox 'hdlr': 'pict' <br/>rimaryItemBox 'pitm': item_ID=1; <br/>temInfoBox 'iinf': entry_count=3 <br/>) 'infe': item_ID=1, item_type='jpeg'; <br/>) 'infe': item_ID=2, item_type='Exif'; <br/>) 'infe': item_ID=3, item_type='hvc1'; <br/>) 'infe': item_ID=3, item_type='dbex'; <br/>temLocationBox 'iloc': item_count=4 <br/>tem_ID=1, extent_count=1, extent_offset=X1, extent_length=Y1; <br/>tem_ID=2, extent_count=1, extent_offset=X2, extent_length=Y2; <br/>tem_ID=3, extent_count=1, extent_offset=X3, extent_length=Y3; <br/>tem_ID=4, extent_count=1, extent_offset=X4, extent_length=Y4; <br/>temReferenceBox 'iref': <br/>eferenceType='cdsc',from_item_ID=2,ref_count=1,to_item_ID=1; <br/>eferenceType='cdsc',from_item_ID=4,ref_count=1,to_item_ID=3; <br/>temPropertiesBox 'iprp': <br/>temPropertyContainerBox 'ipco': <br/>hvcC' <br/>ispe' <br/>temPropertyAssociation 'ipma': entry_count=2 <br/>) item_ID=1, association_count=2 <br/>ssential=1, property_index=1; <br/>ssential=0, property_index=2; <br/>) item_ID=1, association_count=2 <br/>ssential=1, property_index=3; <br/>ssential=0, property_index=4; <br/>ediaDataBox 'mdat' or 'idat': <br/>PEG SDR Image (at file offset X1, with length Y1) <br/>xif data block (at file offset X2, with length Y2) <br/>EVC HDR Image (at file offset X3, with length Y3) <br/>bex data block (at file offset X4, with length Y4) <br/></td></tr></tbody></table></table></tables>
Figure 5 illustrates an example of a Basic Media File Format (BMFF) according to an embodiment. This BMFF is for a hypothetical new HDR photo format called, but not limited to, "Dolby Imaging" or "DI". It is based on the JPEG file format using the APP11 tag, although any other APP tag can be used. As depicted in Figure 5, BMFF contains: <br/> An APP tag (505) (for example, APP11) (2 bytes) Payload length (510) (2 bytes) An identification string (515) (for example, "DI") One empty byte (520) Dolby Imaging payload data (525), which contains HDR (eg, HEVC) image data (529) and rpu metadata (527).
The systems and methods described above can provide data structures for multimedia experiences. Systems, methods and devices according to the present disclosure may adopt any one or more of the following configurations.
(1) A data structure for implementing a plurality of multimedia applications, the data structure including: a first metadata level that includes low-level data for performing operations associated with media data in a one-bit stream. hierarchical metadata; a second metadata level that includes mid-level metadata for applying the low-level metadata to render the media data; and a tertiary metadata level that includes mid-level metadata for using The low-level metadata and the mid-level metadata are used to deliver high-level metadata of the plurality of multimedia applications, wherein the first metadata level further includes synchronized metadata for converting the media data, The low-level metadata, the mid-level metadata and the high-level metadata are converted from a first multimedia application in the plurality of multimedia applications to a second multimedia application in the plurality of multimedia applications. application.
(2) The data structure is as in (1), in which the low-level metadata includes: prediction metadata, which contains a polynomial prediction, a multivariable complex regression prediction and a volume product B-spline prediction; display Management metadata, which is used to display video using the media data; photo metadata, which is used to display an image using the media data; exchangeable image file format metadata, which contains metadata related to camera images; Empty metadata, which is used to implement the base media data; and immersive metadata, which contains an object map, a depth map and response curves for the media data.
(3) A data structure as in any one of (1) to (2), wherein the synchronization metadata includes a payload header indicating a number of extension blocks, each extension block including a payload header indicating its respective valid A length, level and header of the payload.
(4) The data structure of (3), wherein the payload header includes source_expierience_ID metadata, sink_expierience_ID metadata and operation_value metadata.
(5) The data structure of (4), wherein the operation_value metadata is a metadata selected from the group consisting of: a frame index of a still photo, a timestamp of a video frame , a resolution mapping function and a binary flag indicating whether to allow a workflow from a standard dynamic range (SDR) photo to a high dynamic range (HDR) video.
(6) The data structure of any one of (1) to (5), wherein the plurality of multimedia applications include a still photo application and a video application.
(7) The data structure of (6), wherein when the media data is manipulated in the still photo application, the synchronization metadata updates the media data, the low-level metadata, and the mid-level metadata for the video application. Metadata and the high-level metadata.
(8) The data structure of any one of (1) to (7), wherein the low-level metadata and the mid-level metadata are implemented as blocks within a High Efficiency Image Format (HEIF) container.
(9) The data structure of (8), wherein the blocks are implemented as application segment tags (APP tags) in a Joint Photographic Experts Group (JPEG) container.
(10) A controller for implementing the data structure of any one of (1) to (9), wherein the controller is configured to: edit a first application included in the plurality of multimedia applications a video in; and propagating the edit to a corresponding photo included in a second application of the plurality of multimedia applications, wherein the synchronization metadata includes a frame index for the corresponding photo.
(11) The data structure of any one of (1) to (9), wherein the synchronization metadata defines a resolution mapping between the first multimedia application and the second multimedia application.
(12) The data structure of any one of (1) to (9) or (11), wherein the synchronization metadata includes an indication of whether to allow conversion from a standard dynamic range (SDR) photo application to a high dynamic range (HDR) ) A binary flag for the workflow of a video application.
(13) The data structure of (12), wherein the synchronization metadata includes the SDR to HDR conversion algorithm and its corresponding parameters.
(14) A controller for implementing the data structure of any one of (1) to (9) or (11) to (13), wherein the controller is configured to: receive instructions for the plurality of multimedia A user input from one of the applications; and providing the media data as an SDR still photo application or an HDR video application based on the user input.
(15) A controller for implementing the data structure of any one of (1) to (9) or (11) to (13), wherein the controller is configured to perform a multimedia in-application editing operation , wherein the media data in a first multimedia application is edited without affecting a second multimedia application.
(16) A controller for implementing a data structure as in any one of (1) to (9) or (11) to (13), wherein the controller is configured to perform a multimedia inter-application editing operation , wherein the media data in a first multimedia application will be edited and spread to a second multimedia application.
(17) A controller for implementing the data structure of any one of (1) to (9) or (11) to (13), wherein the controller is configured to perform a multimedia in-application translation operation , wherein the media data is translated from a first multimedia application of a first type to a second multimedia application of a first type.
(18) A controller for implementing a data structure as in any one of (1) to (9) or (11) to (13), wherein the controller is configured to perform a multimedia inter-application translation operation , wherein the media data is translated from a first multimedia application of a first type to a second multimedia application of a second type.
(19) A controller for implementing a data structure as in any one of (1) to (9) or (11) to (13), wherein the controller is configured to: based on playback computing resources, devices At least one of capabilities and end-user preferences provide the media data as an SDR still photo application or an HDR video application.
(20) A controller for implementing the data structure of any one of (1) to (9) or (11) to (13), wherein for providing an imaging included in the plurality of multimedia applications For applications, the controller is configured to include at least one of: (a) a first codec including a perceptual quantization transfer function for HDR in a HEIF container; (b) a second a codec that includes a hybrid log-gamma transfer function for HDR in the HEIF container; (c) a third codec that includes JPG and HDR as a single library in a JPEG container; and (d) A fourth codec that includes both SDR and HDR as a single library in HEVC and the HEIF container.
With regard to the procedures, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such procedures, etc., have been described as occurring according to a specific ordered sequence, they may occur in an order different from that described herein. These procedures are practiced by performing the described steps in one order. It should be further understood that certain steps may be performed concurrently, additional steps may be added, or certain steps described herein may be omitted. In other words, the description of the procedures herein is provided for the purpose of illustrating particular embodiments and should in no way be construed as limiting the scope of the claims.
Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications in addition to the examples provided will be immediately apparent upon reading the above description. The scope should not be determined by reference to the above description, but instead should be determined by reference to the accompanying claims and the full scope of equivalents to which such claims are granted. It is anticipated and intended that future developments in the technology discussed herein will occur, and that the disclosed systems and methods will be incorporated into such future embodiments. In summary, it should be understood that this application is capable of modifications and variations.
All terms used in the claims are intended to be given the broadest reasonable interpretation and ordinary meaning of such terms as understood by one skilled in the art described herein, unless an express indication to the contrary is made herein. Specifically, the use of singular articles such as "a", "the", "said", etc. shall be read as stating one or more of the indicated elements, unless a technical solution statement indicates the contrary. One of the clear restrictions.
The Summary of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. The Abstract of the Disclosure is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Additionally, it can also be seen that in the foregoing embodiments, various features are grouped together in various embodiments for the purpose of simplifying the present disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments incorporate more features than are expressly stated in each claim. Rather, as the following patent scope reflects, inventive subject matter lies in less than all features of a single disclosed embodiment. Therefore, the following patent claims are hereby incorporated into the embodiments, with each technical solution independently serving as a separately claimed subject matter.
<p>100: Three-level data structure/data structure <br/>02: Low-level metadata <br/>04: Mid-level metadata <br/>06: High-level metadata <br/>10: Prediction metadata <br/>12: Display management metadata <br/>14:Photo metadata <br/>16: Immersive metadata <br/>18: Exchangeable Image File Format/International Color Alliance Metadata <br/>20: Synchronize metadata <br/>22: Empty metadata <br/>30:rpu_type_2 <br/>32:rpu_type_4 <br/>34:rpu_type_5 <br/>36:rpu_type_63 <br/>50:First application <br/>52: Second application <br/>54:Third application <br/>56: Default presentation application <br/>00: Playback operation <br/>02: Video playback <br/>04:Photo playback <br/>00: Editing operation within the instance experience/Editing operation within the experience <br/>10: Editing tools <br/>15:rpu_type_ <i>m</i><br/>20:rpu_type_ <i>n</i><br/>25: Update the post-synchronization data module <br/>30: Edit rpu_type_ <i>n</i>module <br/>35: Edit rpu_type_ <i>m</i>module <br/>50: Editing operation between instance experiences/Editing operation between experiences <br/>60:Editing tools <br/>65: Update the post-synchronization data module <br/>70: Update rpu_type_ <i>n</i>module <br/>75: Edit rpu_type_ <i>m</i>module <br/>00: Instance translation operation/in-experience translation operation <br/>05:Application x <br/>10: Application y <br/>15: Translation tool <br/>20:rpu_type_ <i>m</i><br/>30:rpu_type_ <i>m</i>Intra-type translation module <br/>35: Update synchronization metadata tool <br/>50: Translation operation between instances/experiences <br/>55: Application x <br/>60: Apply y <br/>65: Translation tool <br/>70:rpu_type_ <i>m</i><br/>80: self rpu_type_ <i>m</i>Transfer rpu_type_ <i>n</i>Inter-type translation module <br/>85:rpu_type_ <i>n</i><br/>90: Set data block after update synchronization <br/>05: Apply segmentation mark <br/>10: Payload <br/>15: Identify strings <br/>20: Empty tuple <br/>25: Dolby Imaging payload information <br/>27:rpu metadata <br/>29: High dynamic range image data </p>
These and other more detailed and specific features of various embodiments are more fully disclosed in the following description with reference to the accompanying drawings, in which:
Figure 1 illustrates an example data structure for implementing a multimedia experience.
Figure 2 illustrates an example playback operation for a multimedia experience.
Figure 3A illustrates an example in-experience editing operation for a multimedia experience.
Figure 3B illustrates an example inter-experience editing operation for a multimedia experience.
Figure 4A illustrates an example in-experience translation operation for a multimedia experience.
Figure 4B illustrates an example inter-experience translation operation for a multimedia experience.
Figure 5 illustrates an example base media file format according to an embodiment of the present invention.
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| TW201931853A | Cites | Taiwan Province of China | Examiner |
| TW202114414A | Cites | Taiwan Province of China | Examiner |
| TW202127882A | Cites | Taiwan Province of China | Examiner |
| US9852219B2 | Cites | United States of America | Examiner |
10 members in 6 offices
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 63301467 | United States of America | – | |
| 202263301467 | United States of America | P | |
| 221553456 | European Patent Office (EPO) | – | |
| 22155345 | European Patent Office (EPO) | A | |
| 63399871 | United States of America | – | |
| 202263399871 | United States of America | P |
Members10
| Document | Office | Kind | |
|---|---|---|---|
| WO2023140952A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW202331546A | Taiwan Province of China | A | |
| TWI821111BThis record | Taiwan Province of China | B | |
| CN118633293A | China | A | |
| EP4466859A1 | European Patent Office (EPO) | A1 | |
| US2025005068A1 | United States of America | A1 | |
| JP2025502258A | Japan | A | |
| JP7700385B2 | Japan | B2 | |
| EP4466859B1 | European Patent Office (EPO) | B1 | |
| US12443644B2 | United States of America | B2 |
Numbers
- Publication
- I821111
- Application
- 112102543
Titles2
- English
- DATA STRUCTURE FOR MULTIMEDIA APPLICATIONS
- Chinese
- 多媒體應用之資料結構
Classification
- CPC, 6
- H04N19/46
- G06F16/41
- H04N19/70
- H04N19/136
- H04N21/84
- G06F16/258
- IPC, 1
- G06F16 41