Scalability Dimensional Information Constraints
By estimating syntax element values and defining the persistence scope of SDI SEI messages within a coded video sequence, the solution addresses coding errors and enhances the efficiency of video coding, particularly in multiview and supplemental information contexts.
Patent Information
- Application Number
- JP2023561621
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-04-08
- Filing Date
- 2022-04-08
- Publication Date
- 2025-05-20
- Estimated Expiration
- 2042-04-08
AI Technical Summary
Current video coding technologies face issues in properly specifying the persistence scope of scalability dimension information (SDI) SEI messages, leading to potential coding errors and inefficiencies, particularly in the presence of multiview, depth, and alpha channel information SEI messages.
The proposed solution involves estimating syntax element values under certain conditions, such as setting sdi_view_id_val[i] to 0 when sdi_multiview_info_flag is 0 and sdi_aux_id[i] to 0 when sdi_auxiliary_info_flag is 0, and ensuring that SDI SEI messages persist within a coded video sequence (CVS) or until a differing message is encountered, thereby clarifying the scope and reducing coding errors.
This approach improves the video coding process by mitigating coding errors and enhancing the clarity and efficiency of scalability dimension information handling, ensuring consistent interpretation across layers and views.
Smart Images

Figure 0007679982000016 
Figure 0007679982000017 
Figure 0007679982000018
Abstract
Description
[Technical field]
[0001] [Related Applications] This patent application was filed on April 8, 2021. To Applied country The benefit of PCT International Application No. PCT / CN2021 / 085894 is claimed. All of the aforementioned patent applications are hereby incorporated by reference in their entirety. It is incorporated herein by reference.
[0002] [Technical field] FIELD This disclosure relates generally to video coding, and more particularly to scalability dimension information (SDI) supplemental enhancement information (SEI) messages used in image / video coding. [Background technology]
[0003] Digital video accounts for the largest bandwidth usage on the Internet and other digital communications networks, and as the number of connected user devices capable of receiving and displaying video increases, the bandwidth requirements for digital video usage are expected to continue to grow. Summary of the Invention
[0004] The disclosed aspects / embodiments provide techniques that are used to estimate values of various syntax elements under certain conditions. For example, when syntax element sdi_multiview_info_flag is equal to 0, syntax element sdi_view_id_val[i] is estimated to be equal to 0. As another example, when syntax element sdi_auxiliary_info_flag is equal to 0, syntax element sdi_aux_id[i] is estimated to be equal to 0. By estimating the values of these syntax elements under certain conditions, possible coding errors can be mitigated. Thus, the video coding process is improved.
[0005] A first aspect relates to a method implemented by a coding device, said method comprising the steps of: inferring that a SDI supplemental information flag is equal to a first value, and that a SDI supplemental information ID is equal to said first value; performing a conversion between a video and a bitstream of the video based on the estimated first value; Includes.
[0006] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the first value is zero.
[0007] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the SDI auxiliary identifier is designated as sdi_aux_id[i].
[0008] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the bitstream is a range bitstream, and sdi_aux_id[i] equal to the first value indicates that the i-th layer of the range bitstream does not include a supplemental picture, where i is an integer.
[0009] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the bitstream is a range bitstream, and an sdi_aux_id[i] greater than the first value indicates a supplemental picture type of the i-th layer of the range bitstream.
[0010] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the bitstream within the range is a sequence of access units (AUs) that includes, in decoding order, a current AU and all subsequent AUs following the current AU up to and including any subsequent AU that includes a subsequent SDI SEI message.
[0011] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the bitstream within the range is a sequence of AUs that includes, in decoding order, a current AU and zero or more subsequent AUs that follow the current AU up to and including the last AU in the current coded video sequence (CVS).
[0012] Optionally, in any of the preceding aspects, another implementation of the aspect provides that the supplemental picture is placed in a supplemental layer within a bitstream within the range.
[0013] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the SDI auxiliary information flag is designated as sdi_auxiliary_info_flag.
[0014] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that sdi_auxiliary_info_flag equal to the first value indicates that no supplemental information is conveyed by one or more layers in the bitstream within the range.
[0015] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that sdi_auxiliary_info_flag equal to the first value further indicates that an sdi_aux_id[] syntax element is not present in the scalability dimension information (SDI) SEI message.
[0016] Optionally, in any of the aforementioned aspects, another implementation of an aspect provides that the SDI supplemental information flag is a syntax element located within the SDI SEI message, and the SDI SEI message applies to bitstreams within the range.
[0017] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides the further comprising: when an SDI multiview information flag is equal to the first value, inferring that the SDI view identifier value is equal to the first value.
[0018] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the SDI view identifier value is specified as sdi_view_id_val[i] and the SDI multiview information flag is specified as sdi_multiview_info_flag.
[0019] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that sdi_view_id_val[i] specifies a view ID of an ith layer in the bitstream within the range, the length of an sdi_view_id_val[i] syntax element is specified as sdi_view_id_len bits, and the value of sdi_view_id_val[i] is inferred to be equal to the first value when not present in the SDI SEI message.
[0020] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that sdi_multiview_info_flag equal to a second value indicates that a bitstream within the range is a multiview bitstream and an sdi_view_id_val[] syntax element is present in the SDI SEI message, and sdi_multiview_flag equal to the first value indicates that a bitstream within the range is not the multiview bitstream and an sdi_view_id_val[] syntax element is not present in the SDI SEI message, and the second value is 1.
[0021] Optionally, in any of the aforementioned aspects, another implementation of an aspect provides encoding, by a video coding device, the SDI SEI message including the SDI supplemental identifier and the SDI supplemental information flag into the bitstream.
[0022] Optionally, in any of the aforementioned aspects, another implementation of an aspect provides decoding, by a video coding device, the bitstream to obtain the SDI supplemental identifier and the SDI supplemental information flag from the SDI SEI message.
[0023] A second aspect relates to an apparatus for coding video data, the apparatus including a processor and a non-transitory memory having instructions that, when executed by the processor, cause the processor to perform any of the methods described herein.
[0024] A third aspect relates to a non-transitory computer-readable medium including a computer program product for use by a coding device, the computer program product including computer-executable instructions stored on the non-transitory computer-readable medium that, when executed by one or more processors, cause the coding device to perform any of the methods disclosed herein.
[0025] A fourth aspect is a non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by a video processing device, the method comprising: inferring that a scalability dimension information (SDI) supplemental information flag is equal to a first value, the SDI supplemental identifier being equal to said first value; generating the bitstream based on the estimated first value; The present invention relates to a non-transitory computer-readable recording medium,
[0026] A fifth aspect is a method of storing a bitstream of video, the method comprising: inferring that a scalability dimension information (SDI) supplemental information flag is equal to a first value, the SDI supplemental identifier being equal to said first value; generating a bitstream based on the estimated first value; storing the bitstream in a non-transitory computer readable storage medium; The present invention relates to a method comprising the steps of:
[0027] For purposes of clarity, any one of the above-described embodiments may be combined with any one or more of the other above-described embodiments to create new embodiments that are within the scope of the present disclosure.
[0028] The above and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims. [Brief description of the drawings]
[0029] For a more complete understanding of the present disclosure, reference is now made to the following brief description taken in conjunction with the accompanying drawings and detailed description, where like reference numerals represent like parts.
[0030] [Figure 1] FIG. 1 is a schematic diagram illustrating an example of layer-based prediction.
[0031] [Diagram 2] Here is an example of layer-based prediction using output layer set (OLS).
[0032] [Diagram 3] 1 illustrates an embodiment of a video bitstream.
[0033] [Figure 4] 1 is a block diagram of an exemplary video processing system.
[0034] [Diagram 5] FIG. 1 is a block diagram of a video processing device.
[0035] [Figure 6] 1 is a block diagram illustrating an example video coding system.
[0036] [Figure 7] 1 is a block diagram illustrating an example video encoder.
[0037] [Figure 8] 1 is a block diagram illustrating an example video decoder.
[0038] [Figure 9] 1 is a method for coding video data according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0039] It should be understood at the outset that, although illustrative implementations of one or more embodiments are provided below, the disclosed systems and / or methods may be implemented using any number of technologies, whether currently known or existing, and that the present disclosure should in no way be limited to the illustrative implementations, drawings, and technologies described below, including the exemplary designs and implementations shown and described herein, but may be modified within the scope of the appended claims, along with their full range of equivalents.
[0040] Video coding standards have evolved primarily through the development of well-known International Telecommunication Union Telecommunication (ITU-T) and International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC) standards. ITU-T has produced H.261 and H.263, while ISO / IEC has produced Moving Picture Experts Group (MPEG)-1 and MPEG-4 Visual, and both organizations have jointly produced the H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Coding (AVC), and H.265 / High Efficiency Video Coding (HEVC) standards. See ITU-T and ISO / IEC, “High Efficiency Video Coding”, Rec. ITU-T H.265|ISO / IEC 23008-2 (in force edition). Since H.262, video coding standards have been based on a hybrid video coding structure, where temporal prediction and transform coding are utilized. The Joint Video Exploration Team (JVET) was jointly established by the Video Coding Experts Group (VCEG) and MPEG in 2015 to develop future video coding technologies beyond HEVC. Since then, many new methods have been adopted by JVET and incorporated into a reference software called the Joint Exploration Model (JEM). See J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce, “Algorithm description of Joint Exploration Test Model 7 (JEM7)”, JVET-G1001, Aug. 2017. Later, when the Versatile Video Coding (VVC) project was officially launched, JVET was renamed to the Joint Video Experts Team (JVET). VVC is a new coding standard that was finalized at the 19th meeting of the JVET, which ended on July 1, 2020, and aims to achieve a 50% bitrate reduction compared to HEVC.See Rec.ITU-TH.266|ISO / IEC23090-3, “Versatile Video Coding”, 2020.
[0041] The VVC standard (ITU-TH.266|ISO / IEC23090-3) and the related Versatile Supplemental Enhancement Information (VSEI) standard (ITU-TH.274|ISO / IEC23002-7) are designed for use in a very wide range of applications, including traditional applications such as television broadcasting, videoconferencing, or playback from storage media, as well as newer and more advanced applications such as adaptive bitrate streaming, video region extraction, composition and merging of content from multiple coded video bitstreams, multi-view video, scalable layered coding, and viewport-adaptive 360° immersive media. See B. Bross, J. Chen, S. Liu, Y.-K. Wang (editors), “Versatile Video Coding (Draft 10)”, JVET-S2001, Rec. ITU-T Rec. H.274 | ISO / IEC 23002-7, “Versatile Supplementary Enhancement Information Messages for Coded Video Bitstreams”, 2020, and J. Boyce, V. Drugeon, G. Sullivan, Y.-K. Wang (editors), “Versatile Supplementary Enhancement Information Messages for Coded Video Bitstreams (Draft 5)”, JVET-S2007.
[0042] The Essential Video Coding (EVC) standard (ISO / IEC 23094-1) is another video coding standard recently developed by MPEG.
[0043] 1 is a schematic diagram illustrating an example of layer-based prediction 100. The layer-based prediction 100 is compatible with unidirectional inter-prediction and / or bidirectional inter-prediction, but also between pictures of different layers.
[0044] Layer-based prediction 100 is applied between pictures 111, 112, 113, and 114 and pictures 115, 116, 117, and 118 in different layers. In the illustrated example, pictures 111, 112, 113, and 114 are part of layer N+1 132, and pictures 115, 116, 117, and 118 are part of layer N 131. A layer, such as layer N 131 and / or layer N+1 132, is a group of pictures that are all associated with similar values of characteristics, such as similar size, quality, resolution, signal-to-noise ratio, capacity, etc. In the illustrated example, layer N+1 132 is associated with a larger image size than layer N 131. Thus, pictures 111, 112, 113, and 114 in layer N+1 132 have a larger picture size (e.g., larger height and width, and therefore more samples) than pictures 115, 116, 117, and 118 in layer N 131 in this example. However, such pictures may be separated between layer N+1 132 and layer N 131 by other characteristics. Although only two layers, layer N+1 132 and layer N 131, are shown, a set of pictures may be separated into any number of layers based on relevant characteristics. Layer N+1 132 and layer N 131 may be indicated by layer identifiers (IDs). A layer ID is an item of data associated with a picture that indicates that the picture is part of the indicated layer. Thus, each picture 111-118 may be associated with a corresponding layer ID to indicate which layer N+1 132 or layer N 131 contains the corresponding figure.
[0045] The pictures 111-118 in the different layers 131-132 are configured to be displayed alternatively. In this manner, the pictures 111-118 in the different layers 131-132 may share the same temporal identifier (ID) and may be included in the same access unit (AU) 106. As used herein, an AU is a collection of one or more coded pictures associated with the same display time for output from a decoded picture buffer (DPB). For example, if a smaller picture is desired, the decoder may decode and display picture 115 at the current display time, and if a larger picture is desired, the decoder may decode and display picture 111 at the current display time. In this manner, the pictures 111-114 in the upper layer N+1 132 contain substantially the same image data as the corresponding pictures 115-118 in the lower layer N 131 (despite the difference in picture size). Specifically, picture 111 contains substantially the same image data as picture 115, picture 112 contains substantially the same image data as picture 116, and so on.
[0046] Pictures 111-118 can be coded by referencing other pictures 111-118 in the same layer N 131 or N+1 132. Coding a picture with reference to another picture in the same layer results in inter-prediction 123, which is a compatible unidirectional inter-prediction and / or bidirectional inter-prediction. Inter-prediction 123 is indicated by a solid arrow. For example, picture 113 may be coded by utilizing inter-prediction 123 using one or two of pictures 111, 112, and / or 114 in layer N+1 132 as references, where one picture is referenced for unidirectional inter-prediction and / or two pictures are referenced for bidirectional inter-prediction. Furthermore, picture 117 may be coded by employing inter prediction 123 using one or two of pictures 115, 116, and / or 118 in layer N 131 as references, where one picture is referenced for unidirectional inter prediction and / or two pictures are referenced for bidirectional inter prediction. If a picture is used as a reference for another picture in the same layer when performing inter prediction 123, the picture may be called a reference picture. For example, picture 112 may be a reference picture used to code picture 113 according to inter prediction 123. Inter prediction 123 may also be called intra-layer prediction in a multi-layer context. Thus, inter prediction 123 is a mechanism for coding samples of a current picture to indicated samples in a reference picture different from the current picture by reference, where the reference picture and the current picture are in the same layer.
[0047] Pictures 111-118 may also be coded by referencing other pictures 111-118 in different layers. This process is known as inter-layer prediction 121 and is indicated by the dashed arrows. Inter-layer prediction 121 is a mechanism for coding samples of a current picture by referencing indicated samples in a reference picture when the current picture and the reference picture are in different layers and therefore have different layer IDs. For example, a picture in a lower layer N 131 may be used as a reference picture to code a corresponding picture in an upper layer N+1 132. As a specific example, picture 111 may be coded by referencing picture 115 according to inter-layer prediction 121. In such a case, picture 115 is used as an inter-layer reference picture. An inter-layer reference picture is a reference picture used for inter-layer prediction 121. In most cases, inter-layer prediction 121 is constrained such that a current picture, such as picture 111, can only use inter-layer reference pictures that are contained in the same AU 106 and are in a lower layer, such as picture 115. When multiple layers (e.g., two or more) are available, inter-layer prediction 121 can encode / decode the current picture based on multiple inter-layer reference pictures at a lower level than the current picture.
[0048] The video encoder can use layer-based prediction 100 to encode pictures 111-118 via many different combinations and / or permutations of inter-prediction 123 and inter-layer prediction 121. For example, picture 115 may be coded according to intra-prediction. Pictures 116-118 can then be coded according to inter-prediction 123 by using picture 115 as a reference picture. Furthermore, picture 111 may be coded according to inter-layer prediction 121 by using picture 115 as an inter-layer reference picture. Pictures 112-114 can then be coded according to inter-prediction 123 by using picture 111 as a reference picture. In this way, a reference picture can serve as both a single layer reference picture and an inter-layer reference picture for different coding mechanisms. By coding the upper layer N+1 132 picture based on the lower layer N 131 picture, the upper layer N+1 132 can avoid using intra prediction, which has much lower coding efficiency than inter prediction 123 and inter-layer prediction 121. Thus, the poor coding efficiency of intra prediction may be limited to pictures with the smallest / lowest quality and therefore may be limited to coding a minimum amount of video data. Pictures used as reference pictures and / or inter-layer reference pictures may be indicated in entries of a reference picture list included in a reference picture list structure.
[0049] Each AU 106 in FIG. 1 may contain several pictures. For example, one AU 106 may contain pictures 111 and 115. Another AU 106 may contain pictures 112 and 116. In effect, each AU 106 is a set of one or more coded pictures associated with the same display time (e.g., the same time ID) for output from a decoded picture buffer (DPB) (e.g., for display to a user). Each access unit delimiter (AUD) 108 is a designator or data structure used to indicate the start of an AU (e.g., AU 106) or a boundary between AUs.
[0050] Previous H.26x video coding families have provided support for scalability in profiles other than those for single-layer coding. Scalable video coding (SVC) is a scalable extension of AVC / H.264 that provides support for spatial, temporal and quality scalability. In SVC, a flag is signaled in each macroblock (MB) in an enhancement layer (EL) picture to indicate whether the EL MB is predicted using co-located blocks from the lower layer. Predictions from co-located blocks may include texture, motion vectors and / or coding modes. An SVC implementation cannot directly reuse unmodified H.264 / AVC implementations in its design. The syntax and decoding process of SVC EL macroblocks are different from those of H.264 / AVC.
[0051] Scalable HEVC (SHVC) is an extension of the HEVC / H.265 standard that provides support for spatial and quality scalability, multiview HEVC (MV-HEVC) is an extension of HEVC / H.265 that provides support for multiview scalability, and 3D-HEVC (3D-HEVC) is an extension of HEVC / H.264 that provides support for more advanced and efficient three-dimensional (3D) video coding than MV-HEVC. It should be noted that temporal scalability is included as an integral part of the single-layer HEVC codec. The design of the multi-layer extension of HEVC exploits the idea that decoded pictures used for inter-layer prediction come only from the same AU and are treated as long-term reference pictures (LTRPs) and assigned a reference index in the reference picture list together with other temporal reference pictures of the current layer. Inter-layer prediction (ILP) is achieved at the prediction unit (PU) level by setting the value of a reference index to refer to an inter-layer reference picture in a reference picture list.
[0052] Notably, both reference picture resampling and spatial scalability features require resampling of a reference picture or a part thereof. Reference picture resampling (RPR) can be realized either at the picture level or at the coding block level. However, when RPR is referred to as a coding feature, it is a feature for single-layer coding. Even so, it is possible or desirable from a codec design point of view to use the same resampling filter for both the RPR feature of single-layer coding and the spatial scalability feature of multi-layer coding.
[0053] FIG. 2 shows an example of layer-based prediction 200 using an output layer set (OLS). The layer-based prediction 100 is compatible with unidirectional inter-prediction and / or bidirectional inter-prediction, but also performed between pictures of different layers. The layer-based prediction 200 in FIG. 2 is similar to that in FIG. 1. Therefore, for the sake of brevity, a full description of the layer-based prediction 200 will not be repeated.
[0054] Some of the layers in the coded video sequence (CVS) 290 of FIG. 2 are included in an OLS. An OLS is a set of layers where one or more layers are designated as output layers. An output layer is a layer of the OLS that is output. FIG. 2 shows three different OLSs: OLS1, OLS2, and OLS3. As shown, OLS1 includes layer N 231 and layer N+1 232. Layer N 231 includes pictures 215, 216, 217, and 218, and layer N+1 232 includes pictures 211, 212, 213, and 214. OLS2 includes layer N 231, layer N+1 232, layer N+2 233, and layer N+3 234. Layer N+2 233 includes pictures 241, 242, 243, and 244, and layer N+3 234 includes pictures 251, 252, 253, and 254. OLS3 includes layer N 231, layer N+1 232, and layer N+2 233. Although three OLSs are shown, a different number of OLSs may be used in an actual application. In the illustrated embodiment, none of the OLSs includes layer N+4 235, which includes pictures 261, 262, 263, and 264.
[0055] Each of the different OLSs may include any number of layers. The different OLSs are generated to accommodate the coding capabilities of a variety of different devices with various coding capabilities. For example, OLS1 may include only two layers and be generated to accommodate a mobile phone with relatively limited coding capabilities. On the other hand, OLS2 may include four layers and be generated to accommodate a large screen television that can decode more layers than a mobile phone. OLS3 may include three layers and be generated to accommodate a personal computer, laptop computer, or tablet computer that can decode more layers than a mobile phone, but cannot decode the most layers like a large screen television.
[0056] The layers in FIG. 2 can all be independent of each other. That is, each layer can be coded without using inter-layer prediction (ILP). In this case, the layer is called a broadcast layer. One or more of the layers in FIG. 2 may be coded using ILP. Whether a layer is a broadcast layer or whether some of the layers are coded using ILP is signaled by a flag in the video parameter set (VPS). When some layers use ILP, the layer dependencies between the layers are also signaled in the VPS.
[0057] In an embodiment, when a layer is a broadcast layer, only one layer is selected for decoding and output. In an embodiment, when some layers use ILP, all layers (e.g., the entire bitstream) are designated for decoding and certain of the layers are designated as output layers. The one or more output layers may be, for example, 1) only the top layer, 2) all layers, or 3) the top layer and a set of lower layers designated as the lower layers. For example, when the top layer and a set of lower layers designated as the lower layers are designated for output by a flag in the VPS, layer N+3 234 from OLS2 (which is the top layer) and layers N 231 and N+1 232 (which are the lower layers) are output.
[0058] Some layers in Figure 2 may be referred to as main layers and other layers may be referred to as supplemental layers. For example, layers N 231 and N+1 232 may be referred to as main layers (containing main pictures) and layers N+2 233 and N+3 234 may be referred to as supplemental layers (containing supplemental pictures). Supplemental layers may be referred to as alpha supplemental layers or depth supplemental layers. If supplemental information is present in the bitstream, the main layers may be associated with supplemental layers.
[0059] FIG. 3 illustrates an embodiment of a video bitstream 300. As used herein, the video bitstream 300 may also refer to a coding video bitstream, a bitstream, or variations thereof. As shown in FIG. 3, the bitstream 300 includes one or more of a decoding capability information (DCI) 302, a video parameter set (VPS) 304, a sequence parameter set (SPS) 306, a picture parameter set (PPS) 308, a picture header (PH) 312, and a picture 314. Each of the DCI 302, the VPS 304, the SPS 306, and the PPS 308 may be collectively referred to as a parameter set. In an embodiment, other parameter sets not shown in FIG. 3 may be included in the bitstream 300, such as an adaptation parameter set (APS), which is a syntax structure that includes syntax elements that apply to zero or more slices as determined by zero or more syntax elements found in the slice header.
[0060] The DCI 302, which may also be referred to as a decoding parameter set (DPS) or decoder parameter set, is a syntax structure that contains syntax elements that apply to the entire bitstream. The DCI 302 contains parameters that remain constant for the lifetime of a video bitstream (e.g., bitstream 300), which can translate to the lifetime of a session. The DCI 302 can contain profile, level, and subprofile information to determine a maximum complexity interoperability point that is guaranteed never to be exceeded, even if splicing of video sequences occurs within a session. It can further contain optional constraint flags, which indicate that the video bitstream is constrained in the use of certain features, as indicated by the values of those flags. This allows a bitstream to be labeled as not using certain tools, which allows for resource allocation, among other things, in a decoder implementation. As with all parameter sets, the DCI 302 is present when first referenced, meaning it must be referenced by the first picture of a video sequence and transmitted between the first network abstraction layer (NAL) units of the bitstream. Multiple DCIs 302 can be present in a bitstream, but the values of syntax elements therein must not be contradictory when referenced.
[0061] The VPS 304 contains decoding dependencies or information for the reference picture set configuration of the enhancement layers. The VPS 304 provides an overall perspective or view of a scalable sequence, including what types of operation points are provided, the profile, tier, and level of the operation points, as well as several other high-level characteristics of the bitstream that can be used as the basis for session negotiation, content selection, etc.
[0062] In an embodiment, when some of the layers are indicated to use ILP, the VPS 304 indicates that the total number of OLSs specified by the VPS is equal to the number of layers, indicates that the i-th OLS includes layers with layer indices from 0 to i, inclusive, and indicates that for each OLS, only the top layer in the OLS is output.
[0063] The SPS 306 contains data that is common to all pictures in a sequence of pictures (SOP). The SPS 306 is a syntax structure that contains syntax elements that apply to zero or more entire coded layer video sequences (CLVS) as determined by the content of syntax elements found in the PPS 308 that are referenced by syntax elements found in each picture header 312. In contrast, the PPS 308 contains data that is common to an entire picture 314. The PPS 308 is a syntax structure that contains syntax elements that apply to zero or more entire coded pictures as determined by the content of syntax elements found in each picture header (e.g., PH 312).
[0064] DCI 302, VPS 304, SPS 306, and PPS 308 are included in different types of Network Abstraction Layer (NAL) units. A NAL unit is a syntax structure that contains an indication of the type of data that follows (e.g., coding video data). NAL units are classified into video coding layer (VCL) and non-VCL NAL units. VCL NAL units contain data that represent values of samples in a video picture, while non-VCL NAL units contain any relevant additional information, such as parameter sets (important data that is applicable to many VCL NAL units) and supplemental enhancement information (timing information and other supplemental data that is not necessary for decoding the values of samples in a video picture but that may increase the usefulness of the decoded video signal).
[0065] In an embodiment, DCI 302 is included in a non-VCL NAL unit designated as a DCI NAL unit or a DPS NAL unit. That is, a DCI NAL unit has a DCI NAL unit type (NUT) and a DPS NAL unit has a DPS NUT. In an embodiment, VPS 304 is included in a non-VCL NAL unit designated as a DPS NAL unit. Thus, the VPS NAL unit has a VPS NUT. In an embodiment, SPS 306 is a non-VCL NAL unit designated as an SPS NAL unit. Thus, the SPS NAL unit has an SPS NUT. In an embodiment, PPS 308 is included in a non-VCL NAL unit designated as a PPS NAL unit. Thus, the PPS NAL unit has a PPS NUT.
[0066] PH 312 is a syntax structure that includes syntax elements that apply to all slices (e.g., slice 318) of a coded picture (e.g., picture 314). In an embodiment, PH 312 is a non-VCL NAL unit of a type designated as a PH NAL unit. Thus, a PH NAL unit has a PH NUT (e.g., PH_NUT).
[0067] In an embodiment, a PH NAL unit associated with PH 312 has a temporal ID and a layer ID. The temporal ID identifier indicates the location of the PH NAL unit in time relative to other PH NAL units in a bitstream (e.g., bitstream 300). The layer ID indicates the layer (e.g., layer 131 or layer 132) that contains the PH NAL unit. In an embodiment, the temporal ID is similar to a picture order count (POC), but is different from the POC. The POC uniquely identifies each picture in sequence. In a single-layer bitstream, the temporal ID and the POC will be the same. In a multi-layer bitstream (e.g., see FIG. 1), pictures in the same AU have different POCs but the same temporal ID.
[0068] In an embodiment, a PH NAL unit precedes a VCL NAL unit that contains the first slice 318 of the associated picture 314. This establishes an association between the PH 312 and a slice 318 of the picture 314 associated with the PH 312 without having to have a picture header ID signaled in the PH 312 and referenced from a slice header 320. Thus, it can be inferred that all VCL NAL units between two PHs 312 belong to the same picture 314, and the picture 314 is associated with the first PH 312 between the two PHs 312. In an embodiment, the first VCL NAL unit following a PH 312 contains the first slice 318 of the picture 314 associated with the PH 312.
[0069] In an embodiment, the PH NAL units follow a picture-level parameter set (e.g., PPS 308) or a higher level parameter set, e.g., DCI 302 (also known as DPS), VPS 304, SPS 306, PPS 308, etc., with temporal and layer IDs that are both smaller than the temporal and layer IDs of the PH NAL units, respectively. As a result, those parameter sets are not repeated within a picture or access unit. This ordering allows PH 312 to be resolved immediately. That is, parameter sets that contain parameters related to the entire picture are placed before the PH NAL units in the bitstream. Those that contain parameters for a portion of a picture are placed after the PH NAL units.
[0070] As one alternative, the PH NAL units conform to a picture level parameter set and a prefix supplemental enhancement information (SEI) message, or a higher level parameter set, such as a DCI 302 (also known as DPS), VPS 304, SPS 306, PPS 308, APS, SEI message.
[0071] Picture 314 is either an array of luma samples in monochrome format, or an array of luma samples and two corresponding arrays of chroma samples in 4:2:0, 4:2:2, and 4:4:4 color formats.
[0072] Pictures 314 may be frames or fields. However, in one CVS 316, all pictures 314 are frames or all pictures 314 are fields. A CVS 316 is a coded video sequence for each coded layer video sequence (CLVS) in video bitstream 300. Notably, if video bitstream 300 contains a single layer, CVS 316 and CLVS are the same. CVS 316 and CLVS differ only when video bitstream 300 contains multiple layers (e.g., as shown in Figures 1 and 2).
[0073] Each picture 314 includes one or more slices 318. A slice 318 is an integer number of complete tiles or an integer number of consecutive complete coding tree unit (CTU) rows within a tile of a picture (e.g., picture 314). Each slice 318 is exclusively contained in a single NAL unit (e.g., a VCL NAL unit). A tile (not shown) is a CTU of a rectangular region within a particular tile column and a particular tile row within a picture (e.g., picture 314). A CTU (not shown) is a coding tree block (CTB) of luma samples, two corresponding CTBs of chroma samples for a picture with three sample arrays, or a CTB of samples for a monochrome picture or a picture coded with a syntax structure used to code three separate color planes and samples. A CTB (not shown) may be an N×N block of samples for some value of N. As a result, the division of a component into CTBs is a partition. A block (not shown) is an M×N (M columns by N rows) array of samples (eg, pixels), or an M×N array of transform coefficients.
[0074] In an embodiment, each slice 318 includes a slice header 320. The slice header 320 is a part of the coded slice 318 that contains data elements related to all tiles or CTU rows within a tile represented in the slice 318. That is, the slice header 320 includes information about the slice 318, such as the slice type, which reference pictures are used, etc.
[0075] The pictures 314 and their slices 318 contain data related to the image or video being encoded or decoded, and thus may simply be referred to as the payload or data carried within the bitstream 300.
[0076] The bitstream 300 also includes one or more SEI messages, such as an SDI SEI message 322, a multiview acquisition information (MAI) SEI message 326, a depth representation information (DRI) SEI message 328, and an alpha channel information (ACI) SEI message 330. The SDI SEI message 322, the MAI SEI message 326, the DRI SEI message 328, and the ACI SEI message 330 may each include various syntax elements 324, as described below. The SEI messages include supplemental extension information. The SEI messages may include various types of data that indicate the timing of the video pictures, various properties of the coded video, or data that describes how the coded video is used or extended. SEI messages are also defined that may include any user-defined data. The SEI messages do not affect the core decoding process, but may indicate how the video is recommended to be post-processed or displayed. Some other high-level characteristics of the video content are conveyed in video usability information (VUI), such as an indication of the color space for interpreting the video content. As new color spaces, such as high dynamic range and wide color gamut video, are developed, additional VUI identifiers have been added to indicate them.
[0077] Those skilled in the art will appreciate that the bitstream 300 may include other parameters and information in practical applications.
[0078] The syntax and semantics of the SDI SEI message 322 are shown below.
[0079] [Table 1]
[0080] SDI SEI Message Semantics
[0081] The scalability dimension SEI message provides scalability dimension information for each layer in bitstreamInScope (defined below), such as 1) the view IDs for each layer if bitstreamInScope is a multiview bitstream, and 2) the supplemental IDs for each layer if there is supplemental information (such as depth or alpha) carried by one or more layers in bitstreamInScope.
[0082] bitstreamInScope is a sequence of AUs that includes, in decoding order, the AU that contains the current scalability dimension SEI message and zero or more subsequent AUs, including all subsequent AUs up to but not including any subsequent AU that contains a scalability dimension SEI message.
[0083] sdi_max_layers_minus1 plus 1 indicates the maximum number of layers in bitstreamInScope.
[0084] sdi_multiview_info_flag equal to 1 indicates that bitstreamInScope may be a multiview bitstream and the sdi_view_id_val[] syntax element is present in the scalability dimensions SEI message. sdi_multiview_flag equal to 0 indicates that bitstreamInScope is not a multiview bitstream and the sdi_view_id_val[] syntax element is not present in the scalability dimensions SEI message.
[0085] sdi_auxiliary_info_flag equal to 1 indicates that there may be auxiliary information carried by one or more layers of bitstreamInScope and the sdi_aux_id[] syntax element is present in the scalability dimension SEI message. sdi_auxiliary_info_flag equal to 0 indicates that there is no auxiliary information carried by one or more layers of bitstreamInScope and the sdi_aux_id[] syntax element is not present in the scalability dimension SEI message.
[0086] sdi_view_id_len specifies the length in bits of the sdi_view_id_val[i] syntax element.
[0087] sdi_view_id_val[i] specifies the view ID of the i-th layer of bitstreamInScope. The length of the sdi_view_id_val[i] syntax element is sdi_view_id_len bits. If not present, the value of sdi_view_id_val[i] is inferred to be equal to 0.
[0088] sdi_aux_id[i] equal to 0 indicates that the ith layer of bitstreamInScope does not contain a supplemental picture. sdi_aux_id[i] greater than 0 indicates the type of supplemental picture in the ith layer of bitstreamInScope, as specified in Table 1. [Table 2]
[0089] NOTE 1: The interpretation of supplemental pictures associated with sdi_aux_id in the range 128 to 159, inclusive, is specified by means other than the value of sdi_aux_id.
[0090] sdi_aux_id[i] shall be in the range 0 to 2, inclusive, or 128 to 159, inclusive, for bitstreams conforming to this version of this specification. Values of sdi_aux_id[i] shall be in the range 0 to 2, inclusive, or 128 to 159, inclusive, for this version of this specification, but decoders shall allow values of sdi_aux_id[i] in the range 0 to 255, inclusive.
[0091] The syntax and semantics of the MAI SEI message 326 are shown below.
[0092] [Table 3] TIFF0007679982000004.tif147169
[0093] MAI SEI Message Semantics
[0094] The Multiview Acquisition Information (MAI) SEI message specifies various parameters of the acquisition environment, in particular the intrinsic and extrinsic camera parameters, which can be used to process the decoded views before rendering them on a 3D display.
[0095] The following semantics apply separately to each nuh_layer_idtargetLayerId among the nuh_layer_id values to which the multiview acquisition information SEI message applies.
[0096] If present, the multiview acquisition information SEI message that applies to the current layer shall be included in the access unit that contains the intra random access picture (IRAP) picture that is the first picture of the CLVS of the current layer. The information signaled in the SEI message applies to the CLVS.
[0097] If the multiview acquisition information SEI message is included in a scalable nested SEI message, the syntax elements sn_ols_flag and sn_all_layers_flag of the scalable nested SEI message shall be equal to 0.
[0098] The variable numViewsMinus1 is derived as follows: · If the multiview acquisition information SEI message is not included in a scalable nested SEI message, numViewsMinus1 is set equal to 0. Otherwise (if the multiview acquisition information SEI message is included in a scalable nested SEI message), numViewsMinus1 is set equal to sn_num_layers_minus1.
[0099] Some views for which multiview acquisition information is included in the multiview acquisition information SEI message may not exist.
[0100] In the following semantics, the index i refers to syntax elements and variables that apply to the layer whose nuh_layer_id is equal to NestingLayerId[i].
[0101] The extrinsic camera parameters are specified according to a right-handed coordinate system, where the top-left corner of the image has the origin, i.e., (0,0) coordinate, and the other corners of the image have non-negative coordinates. In these specifications, a 3D world point wP=[xyz] is mapped to a 2D camera point cP[i]=[uv1] for the i-th camera according to:
number
[0102] intrinsic_param_flag equal to 1 indicates the presence of intrinsic camera parameters. intrinsic_param_flag equal to 0 indicates the absence of intrinsic camera parameters.
[0103] extrinsic_param_flag equal to 1 indicates the presence of extrinsic camera parameters. extrinsic_param_flag equal to 0 indicates the absence of extrinsic camera parameters.
[0104] intrinsic_params_equal_flag equal to 1 indicates that the intrinsic camera parameters are equal for all cameras and there is only one set of intrinsic camera parameters. intrinsic_params_equal_flag equal to 0 indicates that the intrinsic camera parameters are different for each camera and there is a set of intrinsic camera parameters for each camera.
[0105] prec_focal_length is 2 -prec_focal_length Specifies the exponent of the maximum tolerable truncation error for focal_length_x[i] and focal_length_y[i] given by. The value of prec_focal_length shall be in the range 0 to 31, inclusive.
[0106] prec_principal_point is 2 -prec_principal_point Specifies the exponent of the maximum tolerable truncation error for principal_point_x[i] and principal_point_y[i] given by: The value of prec_principal_point shall be in the range 0 to 31, inclusive.
[0107] prec_skew_factor is 2 -prec_skew_factor Specifies the exponent of the maximum tolerable truncation error for the skew factor given by prec_skew_factor. The value of prec_skew_factor shall be in the range 0 to 31, inclusive.
[0108] sign_focal_length_x[i] equal to 0 indicates that the sign of the focal length of the i-th camera in the horizontal direction is positive. sign_focal_length_x[i] equal to 1 indicates that the sign is negative.
[0109] exponent_focal_length_x[i] specifies the exponent of the horizontal focal length for the i-th camera. The value of exponent_focal_length_x[i] shall be in the range 0 to 62, inclusive. The value 63 is reserved for future use by ITU-T|ISO / IEC. Decoders shall treat the value 63 as indicating an undefined focal length.
[0110] mantissa_focal_length_x[i] specifies the mantissa of the horizontal focal length of the i-th camera. The length of the mantissa_focal_length_x[i] syntax element is variable and is determined as follows: If exponent_focal_length_x[i] is equal to 0, the length is Max(0, prec_focal_length-30). Otherwise (exponent_focal_length_x[i] is in the range 0 to 63, exclusive), the length is Max(0, exponent_focal_length_x[i]+prec_focal_length-31).
[0111] sign_focal_length_x[i] equal to 0 indicates that the sign of the focal length of the i-th camera in the vertical direction is positive, sign_focal_length_y[i] equal to 1 indicates that the sign is negative.
[0112] exponent_focal_length_y[i] specifies the exponent of the vertical focal length of the i-th camera. The value of exponent_focal_length_y[i] shall be in the range 0 to 62, inclusive. The value 63 is reserved for future use by ITU-T|ISO / IEC. Decoders shall treat the value 63 as indicating an unspecified focal length.
[0113] mantissa_focal_length_y[i] specifies the mantissa of the vertical focal length of the i-th camera.
[0114] The length of the mantissa_focal_length_y[i] syntax element is variable and is determined as follows: If exponent_focal_length_y[i] is equal to 0, the length is Max(0, prec_focal_length-30). Otherwise (exponent_focal_length_y[i] is in the range 0 to 63, exclusive), the length is Max(0, exponent_focal_length_y[i]+prec_focal_length-31).
[0115] sign_focal_length_x[i] equal to 0 indicates that the sign of the principal point of the ith camera in the horizontal direction is positive. sign_principal_point_x[i] equal to 1 indicates that the sign is negative.
[0116] exponent_principal_point_x[i] specifies the exponent of the horizontal principal point of the i-th camera. The value of exponent_principal_point_x[i] shall be in the range 0 to 62, inclusive. The value 63 is reserved for future use by ITU-T|ISO / IEC. Decoders shall treat the value 63 as indicating an undefined principal point.
[0117] mantissa_principal_point_x[i] specifies the mantissa of the principal point of the ith camera in the horizontal direction. The length in bits of the mantissa_principal_point_x[i] syntax element is variable and is determined as follows: If exponent_principal_point_x[i] is equal to 0, the length is Max(0, prec_principal_point-30). Otherwise (exponent_principal_point_x[i] is in the range 0 to 63, exclusive), the length is Max(0, exponent_principal_point_x[i]+prec_principal_point-31).
[0118] sign_principal_point_y[i] equals 0 to indicate that the sign of the vertical principal point of the i-th camera is positive, and sign_principal_point_y[i] equals 1 to indicate that the sign is negative.
[0119] exponent_principal_point_y[i] specifies the exponent of the vertical principal point of the i-th camera. The value of exponent_principal_point_y[i] shall be in the range 0 to 62, inclusive. The value 63 is reserved for future use by ITU-T|ISO / IEC. Decoders shall treat the value 63 as indicating an unspecified principal point.
[0120] mantissa_principal_point_y[i] specifies the mantissa of the vertical principal point of the ith camera. The length in bits of the mantissa_principal_point_y[i] syntax element is variable and is determined as follows: · If exponent_principal_point_y[i] is equal to 0, the length is Max(0, prec_principal_point-30). Otherwise (exponent_principal_point_y[i] is in the range 0 to 63, exclusive), the length is Max(0, exponent_principal_point_y[i]+prec_principal_point-31).
[0121] sign_skew_factor[i] equal to 0 indicates that the sign of the skew factor for the i-th camera is positive.
[0122] sign_skew_factor[i] equal to 1 indicates that the sign is negative.
[0123] exponent_skew_factor[i] specifies the exponent of the skew factor for the i-th camera. The value of exponent_skew_factor[i] shall be in the range 0 to 62, inclusive. The value 63 is reserved for future use by ITU-T|ISO / IEC. Decoders shall treat the value 63 as indicating an undefined skew factor.
[0124] mantissa_skew_factor[i] specifies the mantissa of the skew factor for the i-th camera. The length of the mantissa_skew_factor[i] syntax element is variable and is determined as follows: If exponent_skew_factor[i] is equal to 0, the length will be Max(0, prec_skew_factor-30). Otherwise (exponent_skew_factor[i] is in the range 0 to 63, exclusive), the length is Max(0, exponent_skew_factor[i]+prec_skew_factor-31).
[0125] The eigenmatrix A[i] of the i-th camera is given by:
number
[0126] prec_rotation_param is 2 -prec_rotation_param Specifies the exponent of the maximum tolerable truncation error for r[i][j][k] given by. The value of prec_rotation_param must be in the range 0 to 31, inclusive.
[0127] prec_translation_param is 2 -prec_translation_param Specifies the exponent of the maximum allowable truncation error of t[i][j] given by: The value of prec_translation_param should be in the range 0 to 31, inclusive.
[0128] sign_r[i][j][k] equal to 0 indicates that the sign of the (j,k) component of the rotation matrix of the ith camera is positive. sign_r[i][j][k] equal to 1 indicates that the sign is negative.
[0129] exponent_r[i][j][k] specifies the exponent of the (j,k) component of the rotation matrix for the ith camera. The value of exponent_r[i][j][k] shall be in the range 0 to 62, inclusive. The value 63 is reserved for future use by ITU-T|ISO / IEC. Decoders shall treat the value 63 as indicating an undefined rotation matrix.
[0130] mantissa_r[i][j][k] specifies the mantissa of the (j,k) component of the rotation matrix for the ith camera. The length in bits of the mantissa_r[i][j][k] syntax element is variable and is determined as follows: If exponent_r[i] is equal to 0, the length will be Max(0, prec_rotation_param-30). Otherwise (exponent_r[i] is in the range 0 to 63 exclusive), the length is Max(0, exponent_r[i]+prec_rotation_param-31).
[0131] The rotation matrix R[i] of the i-th camera is given by:
number
[0132] sign_t[i][j] equal to 0 indicates that the sign of the jth component of the translation vector of the ith camera is positive, while sign_t[i][j] equal to 1 indicates that the sign is negative.
[0133] exponent_t[i][j] specifies the exponent of the jth component of the transformation vector for the ith camera. The value of exponent_t[i][j] shall be in the range 0 to 62, inclusive. The value 63 is reserved for future use by ITU-T|ISO / IEC. Decoders shall treat the value 63 as indicating an undefined transformation vector.
[0134] mantissa_t[i][j] specifies the mantissa of the jth component of the transformation vector for the ith camera. The length v in bits of the mantissa_t[i][j] syntax element is variable and is determined as follows: If exponent_t[i] is equal to 0, the length v is set equal to Max(0, prec_translation_param-30). · In other cases (0 < exponent_t[i] < 63), the length v is set equal to Max(0, exponent_t[i] + prec_translation_param - 31).
[0135] The conversion vector T[i] of the i-th camera is represented by the following equation:
Number
[0136] The association between camera parameter variables and corresponding syntax elements is specified in Table ZZ. Each component of the intrinsic matrix, rotation matrix, and transformation vector is obtained from the variables specified in Table ZZ when calculated as follows for variable x: · When e is in the range of 0 to 63 (excluding both ends), x is (-1) s * 2 e-31 *(1 + n÷2 v ) and is set equal to it. · In other cases (e is equal to 0), x is (-1) s * 2 -(30+v) * n and is set equal to it.
[0137] Note: The above specifications are the same as those described in IEC60559:1989.
Table 4
[0138] The syntax and semantics of the DRI SEI message 328 are shown below.
[0139]
Table 5
[0140] DRI SEI Message Semantics
[0141] The syntax elements of the depth representation information SEI message specify various parameters of supplemental pictures of type AUX_DEPTH for processing the decoded primary and supplemental pictures before rendering on a 3D display, such as for view synthesis. In particular, the depth or disparity range of the depth picture is specified.
[0142] If present, the depth representation information SEI message SHALL be associated with one or more layers with an sdi_aux_id value equal to AUX_DEPTH. The following semantics apply separately to each nuh_layer_id targetLayerId among the nuh_layer_id values to which the depth representation information SEI message applies.
[0143] If present, the depth representation information SEI message MAY be included in any access unit. If present, it is RECOMMENDED to include the SEI message for random access purposes within an access unit where the coded picture with nuh_layer_id equal to targetLayerId is an IRAP picture.
[0144] For a supplemental picture with sdi_aux_id[targetLayerId] equal to AUX_DEPTH, the associated primary picture, if any, is the picture in the same access unit with sdi_aux_id[nuhLayerIdB] equal to 0. This makes ScalabilityId[LayerIdxInVps[targetLayerId]][j] equal to ScalabilityId[LayerIdxInVps[nuhLayerIdb]][j] for all values of j in the range 0 to 2, inclusive, and 4 to 15, inclusive.
[0145] The information indicated in the SEI message applies to all pictures with nuh_layer_id equal to targetLayerId from the access unit containing the SEI message up to, but excluding, the next picture in decoding order associated with either a depth representation information SEI message applicable to targetLayerId or the end of the CLVS with nuh_layer_id equal to targetLayerId, whichever comes earlier in decoding order.
[0146] z_near_flag equal to 0 specifies that a syntax element that specifies a nearest depth value is not present in the syntax structure. z_near_flag equal to 1 specifies that a syntax element that specifies a nearest depth value is present in the syntax structure.
[0147] z_far_flag equal to 0 specifies that a syntax element that specifies a farthest depth value is not present in the syntax structure. z_far_flag equal to 1 specifies that a syntax element that specifies a farthest depth value is present in the syntax structure.
[0148] d_min_flag equal to 0 specifies that a syntax element specifying a minimum disparity value is not present in the syntax structure. d_min_flag equal to 1 specifies that a syntax element specifying a minimum disparity value is present in the syntax structure.
[0149] d_max_flag equal to 0 specifies that a syntax element specifying a maximum disparity value is not present in the syntax structure. d_max_flag equal to 1 specifies that a syntax element specifying a maximum disparity value is present in the syntax structure.
[0150] depth_representation_type specifies the representation definition of the decoded luma samples of the supplementary picture as specified in Table Y1, where the disparity specifies the horizontal displacement between two texture views and the Z value specifies the distance from the camera.
[0151] The variable maxVal is set equal to (1<<(8+sps_bitdepth_minus8))-1, where sps_bitdepth_minus8 is the value contained in or estimated for the active SPS of the layer with nuh_layer_id equal to targetLayerId. [Table 6]
[0152] disparity_ref_view_id specifies the ViewId value for which the disparity value is derived.
[0153] NOTE 1: disparity_ref_view_id is present only if d_min_flag is equal to 1 or d_max_flag is equal to 1 and is useful for depth_representation_type values equal to 1 and 3.
[0154] The variable in column x of Table Y2 is derived from each of the variables in columns s, e, n, and v of Table Y2 as follows: If e is in the range 0 to 127, exclusive, then x is (-1). s *2 e-31 *(1+n÷2 v ). Otherwise (e is equal to 0), x is (-1) s *2 -(30+v) *n.
[0155] Note 1: The above specifications are the same as those stated in IEC60559:1989. [Table 7]
[0156] The DMin and DMax values, if present, are specified in units of the luma sample width of the coded picture with ViewId equal to the ViewId of the supplemental picture.
[0157] The units of the ZNear and ZFar values, if present, are the same but undefined.
[0158] depth_nonlinear_representation_num_minus1 plus 2 specifies the number of piecewise linear segments to map depth values to a scale that is uniformly quantized in terms of disparity.
[0159] depth_nonlinear_representation_model[i] specifies the piecewise linear segment for mapping the decoded luma sample values of the supplemental picture to a scale that is uniformly quantized in terms of disparity, for i in the range 0 to depth_nonlinear_representation_num_minus1+2, inclusive. The values of depth_nonlinear_representation_model[0] and depth_nonlinear_representation_model[depth_nonlinear_representation_num_minus1+2] are both inferred to be equal to 0.
[0160] NOTE 2: If depth_representation_type is equal to 3, the supplementary picture contains nonlinearly transformed depth samples. The variable DepthLUT[i] is used to transform the decoded depth sample values from a nonlinear representation to a linear representation, i.e., to uniformly quantized disparity values, as specified below. The shape of this transformation is defined by a line segment approximation in the nonlinear disparity space from a 2D linear disparity. The first node (0, 0) and the last node (maxVal, maxVal) of the curve are predefined. The positions of the additional nodes are transmitted in the form of deviations (depth_nonlinear_representation_model[i]) from a linear curve. These deviations are uniformly distributed throughout the range 0 to maxVal, inclusive, with an interval that depends on the value of nonlinear_depth_representation_num_minus1.
[0161] The variable DepthLUT[i], for i in the range 0 to maxVal inclusive, is specified as follows:
number
[0162] When depth_representation_type is equal to 3, DepthLUT[dS] represents disparities uniformly quantized in the range of 0 to maxVal, inclusive, for all decoded luma sample values dS of the supplementary picture in the range of 0 to maxVal, inclusive.
[0163] The syntax structure specifies the values of elements in the depth representation information SEI message.
[0164] The syntax structure sets the values of the OutSign, OutExp, OutMantissa, and OutManLen variables to represent floating-point values. When a syntax structure is contained within another syntax structure, the variable names OutSign, OutExp, OutMantissa, and OutManLen are interpreted as being replaced by the variable names used when the syntax structure is contained.
[0165] da_sign_flag equal to 0 indicates that the sign of the floating-point value is positive. da_sign_flag equal to 1 indicates that the sign is negative. The variable OutSign is set equal to da_sign_flag.
[0166] da_exponent specifies the exponent of the floating-point value. The value of da_exponent must be between 0 and 2 inclusive. 7 The range is -2. Value 2 7 -1 is reserved for future use by ITU-T|ISO / IEC. Decoders should use the value 2 7 -1 shall be treated as indicating an undefined value. The variable OutExp is set equal to da_exponent.
[0167] The value of da_mantissa_len_minus1 plus 1 specifies the number of bits in the da_mantissa syntax element. The value of da_mantissa_len_minus1 shall be in the range 0 to 31, inclusive. The variable OutManLen shall be set equal to da_mantissa_len_minus1+1.
[0168] da_mantissa specifies the mantissa of the floating-point value. The variable OutMantissa is set equal to da_mantissa.
[0169] The syntax and semantics of the ACI SEI message 300 are shown below.
[0170] [Table 8]
[0171] ACI SEI Message Semantics
[0172] The Alpha Channel Information SEI message provides information about alpha channel sample values and post-processing applied to a supplementary picture of type AUX_ALPHA and a decoded alpha plane coded in one or more associated primary pictures.
[0173] For a supplemental picture with nuh_layer_id equal to nuhLayerIdA and sdi_aux_id[nuhLayerIdA] equal to AUX_ALPHA, the associated primary picture, if any, is the picture in the same access unit with sdi_aux_id[nuhLayerIdB] equal to 0. This makes ScalabilityId[LayerIdxInVps[nuhLayerIdA]][j] equal to ScalabilityId[LayerIdxInVps[nuhLayerIdB]][j] for all values of j in the range 0 to 2, inclusive, and 4 to 15, inclusive.
[0174] If a supplemental picture picA with nuh_layer_id equal to nuhLayerIdA and sdi_aux_id[nuhLayerIdA] equal to AUX_ALPHA is included in an access unit, the alpha channel sample values of picA are retained in output order until one or more of the following conditions are true: The next picture in output order that has a nuh_layer_id equal to nuhLayerIdA is output. · CLVS containing supplementary picture picA is terminated. The bitstream ends. · The CLVS of the associated primary layer of the supplemental picture layer with nuh_layer_id equal to nuhLayerIdA is terminated.
[0175] The following semantics apply separately to each nuh_layer_id targetLayerId among the nuh_layer_id values to which the Alpha Channel Information SEI message applies.
[0176] alpha_channel_cancel_flag equal to 1 indicates that the Alpha Channel Information SEI message cancels the persistence of any previous Alpha Channel Information SEI message in output order that applies to the current layer. alpha_channel_cancel_flag equal to 0 indicates that alpha channel information follows.
[0177] Let currPic be the picture with which the Alpha Channel Information SEI message is associated. The semantics of the Alpha Channel Information SEI message are preserved for the current layer in output order until one or more of the following conditions are true: A new CLVS for the current layer is started. The bitstream ends. Picture picB with nuh_layer_id equal to targetLayerId in an access unit containing an Alpha Channel Information SEI message with nuh_layer_id equal to targetLayerId is output with PicOrderCnt(picB) greater than PicOrderCnt(currPic), where PicOrderCnt(picB) and PicOrderCnt(currPic) are the PicOrderCntVal values of picB and currPic, respectively, immediately after the invocation of the picture order count decoding process for picB.
[0178] alpha_channel_use_idc equal to 0 indicates that for alpha blending purposes, the decoded samples of the associated primary picture should be multiplied by the interpretation sample values of the supplementally coded picture in the display process after output from the decoding process. alpha_channel_use_idc equal to 1 indicates that for alpha blending purposes, the decoded samples of the associated primary picture should not be multiplied by the interpretation sample values of the supplementally coded picture in the display process after output from the decoding process. alpha_channel_use_idc equal to 2 indicates that the usage of the supplemental picture is undefined. Values of alpha_channel_use_idc greater than 2 are reserved for future use by ITU-T|ISO / IEC. When not present, the value of alpha_channel_use_idc is inferred to be equal to 2.
[0179] alpha_channel_bit_depth_minus8 plus 8 specifies the bit depth of the samples in the luma sample array of the supplemental picture. alpha_channel_bit_depth_minus8 shall be in the range 0 to 7, inclusive. alpha_channel_bit_depth_minus8 shall be equal to bit_depth_luma_minus8 of the associated primary picture.
[0180] alpha_transparent_value specifies the interpretation sample value of the supplemental coded picture luma samples at which the associated luma and chroma samples of the primary coded picture are considered transparent for the purposes of alpha blending. The number of bits used to represent the alpha_transparent_value syntax element is alpha_channel_bit_depth_minus8+9.
[0181] alpha_opaque_value specifies the interpretation sample value of a supplementary coded picture luma sample at which the associated luma and chroma samples of the primary coded picture are considered opaque for the purposes of alpha blending. The number of bits used to represent the alpha_opaque_value syntax element is alpha_channel_bit_depth_minus8+9.
[0182] alpha_channel_incr_flag equal to 0 indicates that for alpha blending purposes, the interpretation sample value of each decoded supplemental picture luma sample value is equal to the decoded supplemental picture sample value. alpha_channel_incr_flag equal to 1 indicates that for alpha blending purposes, after decoding a supplemental picture sample, supplemental picture luma sample values greater than Min(alpha_opaque_value, alpha_transparent_value) should be incremented by 1 to obtain the interpretation sample value of the supplemental picture sample, and supplemental picture luma sample values less than or equal to Min(alpha_opaque_value, alpha_transparent_value) should be used unchanged as the interpretation sample value of the decoded supplemental picture sample value. When not present, the value of alpha_channel_incr_flag is inferred to be equal to 0.
[0183] When alpha_channel_clip_flag is equal to 0, it indicates that no clipping operation is applied to obtain the interpretation sample values of the decoded supplementary picture. When alpha_channel_clip_flag is equal to 1, it indicates that the interpretation sample values of the decoded supplementary picture are modified according to the clipping operation described by the alpha_channel_clip_type_flag syntax element. When not present, the value of alpha_channel_clip_flag is inferred to be equal to 0.
[0184] alpha_channel_clip_type_flag equal to 0 indicates that, for the purpose of alpha blending, after decoding a supplemental picture sample, supplemental picture luma sample values greater than (alpha_opaque_value-alpha_transparent_value) / 2 are set equal to alpha_opaque_value to obtain an interpretation sample value of the supplemental picture luma sample, and supplemental picture luma sample values less than or equal to (alpha_opaque_value-alpha_transparent_value) / 2 are set equal to alpha_transparent_value to obtain an interpretation sample value of the supplemental picture luma sample value. alpha_channel_clip_type_flag equal to 1 indicates that, for the purpose of alpha blending, after decoding a supplemental picture sample, supplemental picture luma samples greater than alpha_opaque_value are set equal to alpha_opaque_value to obtain an interpretation sample value of the supplemental picture luma sample, and supplemental picture luma samples less than or equal to alpha_transparent_value are set equal to alpha_transparent_value to obtain an interpretation sample value of the supplemental picture luma sample.
[0185] NOTE: If both alpha_channel_incr_flag and alpha_channel_clip_flag are equal to 1, the clipping operation specified by alpha_channel_clip_type_flag shall be applied first, and then the modification specified by alpha_channel_incr_flag shall be applied to obtain the interpretation sample value of the supplementary picture luma samples.
[0186] Unfortunately, the current design of signaling scalability dimension information, depth representation information, and alpha channel information in the SEI message has at least the following problems:
[0187] 1) The current persistence scope specification of the scalability dimension information (SDI) SEI message has the following problem: There is no proper way to indicate a set of AUs for which no SDI is indicated, if that set follows another set of AUs for which SDI is indicated.
[0188] 2) Currently, it is specified that if not present, the value of sdi_view_id_val[i] is inferred to be equal to 0. This is appropriate for contexts where an SDI SEI message is present, but not appropriate for contexts where an SDI SEI message is not present. In this case, no value for the view ID is assumed or inferred.
[0189] 3) Currently, if the syntax element is not present, the value of sdi_aux_id[i] is unspecified. However, if sdi_aux_info_flag is 0 (meaning that an SDI SEI message is present), to infer that no supplemental pictures are present, the value of sdi_aux_id[i] shall be inferred to be equal to 0 for each value of i.
[0190] 4) The multiview acquisition information (MAI) SEI message conveys information for all views in a multiview bitstream and therefore cannot be specified as layer-specific (as it is currently). Instead, the scope needs to be relative to the current CVS, not to the current CLVS.
[0191] 5) Currently, when an access unit contains both an SDI SEI message and an MAI SEI message, the MAI SEI message may come before the SDI SEI message in decoding order. However, the presence and interpretation of the MAI SEI message must depend on the SDI SEI message. Therefore, it makes sense to require that the SDI SEI message come before any MAI SEI message in the same AU in decoding order.
[0192] 6) Currently, when an access unit contains both an SDI SEI message and a depth representation information (DRI) SEI message, the DRI SEI message may precede the SDI SEI message in decoding order. However, the presence and interpretation of the DRI SEI message must depend on the SDI SEI message. Therefore, it makes sense to require that the SDI SEI message precede the DRI SEI message in the same AU in decoding order.
[0193] 7) Currently, when an access unit contains both an SDI SEI message and an alpha channel information (ACI) SEI message, the ACI SEI message may precede the SDI SEI message in decoding order. However, the presence and interpretation of the ACI SEI message must depend on the SDI SEI message. Therefore, it makes sense to require that the SDI SEI message precedes the ACI SEI message in the same AU in decoding order.
[0194] 8) Currently, an SDI SEI message can be included in a scalable nested SEI message, but since an SDI SEI message contains information for all layers, it makes sense to disallow it from being included in a scalable nested SEI message.
[0195] Techniques are disclosed herein that address one or more of the above problems. For example, the present disclosure provides techniques for estimating values of various syntax elements under certain conditions. For example, when syntax element sdi_multiview_info_flag is equal to 0, syntax element sdi_view_id_val[i] is estimated to be equal to 0. As another example, when syntax element sdi_auxiliary_info_flag is equal to 0, syntax element sdi_aux_id[i] is estimated to be equal to 0. By estimating values of these syntax elements under certain conditions, possible coding errors can be mitigated. Thus, the video coding process is improved.
[0196] In order to solve the above problems, the methods summarized below are disclosed. The techniques should be considered as examples to illustrate the general concept and should not be interpreted in a narrow sense. Moreover, these techniques can be applied individually or combined in any way.
[0197] <Example 1>
[0198] To solve problem 1, specify the persistence scope specification in the scalability dimension information (SDI) SEI message as one of the following:
[0199] The SDI SEI messages continue, in decoding order, from the current AU to the next AU that contains an SDI SEI message whose content differs from the current SDI SEI message or to the end of the bitstream.
[0200] b. The persistence scope of the SDI SEI message is specified to be the current CVS (i.e., the CVS that contains the SDI SEI message).
[0201] c. If at least one AU in the current CVS following the current AU in decoding order is associated with an SDI SEI message, then the bitstreamInScope to which the SDI SEI message applies is a sequence of AUs that includes, in decoding order, the current AU and zero or more AUs following the current AU up to but not including the AU that contains the SDI SEI message. Otherwise, bitstreamInScope is a sequence of AUs that includes, in decoding order, the current AU and zero or more AUs following the current AU up to but not including the last AU in the current CVS, including all subsequent AUs following the current AU up to but not including the last AU.
[0202] d. Add a cancellation flag and / or a persistence flag to the SDI SEI message syntax, and specify the persistence scope of the SDI SEI message based on the cancellation flag and / or the persistence flag.
[0203] <Example 2>
[0204] 2) In one example, if an SDI SEI message exists in any AU of a CVS, then the SDI SEI message is specified as existing for the first AU of the CVS.
[0205] <Example 3>
[0206] 3) All SDI SEI messages that apply to the same CVS are designated to have the same content.
[0207] <Example 4>
[0208] 4) To solve problem 2, it is specified that when sdi_multiview_info_flag is equal to 0, the value of sdi_view_id_val[i] is inferred to be equal to 0.
[0209] <Example 5>
[0210] 5) To solve problem 3, it is specified that when sdi_auxiliary_info_flag is equal to 0, the value of sdi_aux_id[i] is inferred to be equal to 0.
[0211] <Example 6>
[0212] 6) To solve problem 4, it is specified that a multiview acquisition information (MAI) SEI message persists, in decoding order, from the current AU to the next AU that contains an MAI SEI message whose content differs from the current MAI SEI message or to the end of the bitstream.
[0213] <Example 7>
[0214] 7) In one example, if an MAI SEI message exists in any AU of a CVS, the MAI SEI message is designated as existing for the first AU of the CVS.
[0215] <Example 8>
[0216] 8) All MAI SEI messages that apply to the same CVS are specified to have the same content.
[0217] <Example 9>
[0218] 9) To solve problem 5, it is specified that if an AU contains both an SDI SEI message and an MAI SEI message, the SDI SEI message is before the MAI SEI message in decoding order.
[0219] <Example 10>
[0220] 10) To solve problem 6, it is specified that if an AU contains both an SDI SEI message with sdi_aux_id[i] equal to 2 for at least one value of i and a depth representation information (DRI) SEI message, the SDI SEI message is before the DRI SEI message in decoding order.
[0221] <Example 11>
[0222] 11) To solve problem 7, if an AU contains both an SDI SEI message with sdi_aux_id[i] equal to 1 for at least one value of i and an alpha channel information (ACI) SEI message, it is specified that the SDI SEI message precedes the ACI SEI message in decoding order.
[0223] <Example 12>
[0224] 12) To solve problem 8, it is specified that SDI SEI messages are not included in scalable nested SEI messages.
[0225] Below are some exemplary embodiments of some of the aspects summarized above.
[0226] This example is applicable to VVC. The most relevant parts that have been added or changed are in bold, and some parts that have been removed are in bold italics. Due to the nature of the edits, there may be other changes that are not highlighted.
[0227] Scalability Dimension SEI Message Semantics
[0228] The scalability dimension information (SDI) SEI message provides SDI for each layer in bitstreamInScope, such as 1) the view ID for each layer if bitstreamInScope is a multiview bitstream, and 2) the supplemental ID for each layer if there is supplemental information (such as depth or alpha) carried by one or more layers in bitstreamInScope.
[0229] bitstreamInScope is a sequence of AUs that includes, in decoding order, the AU containing the current SDI SEI message and zero or more subsequent AUs. This includes all subsequent AUs up to but not including any subsequent AU that contains an SDI SEI message. [bold begins here] An SDI SEI message shall be present in the first AU of a CVS if it is present in any AU of the CVS. All SDI SEI messages that apply to the same CVS shall have the same content. [bold ends here]
[0230] [Bold text begins here] SDI SEI messages MUST NOT be contained in scalable nested SEI messages. [Bold text ends here]
[0231] sdi_view_id_val[i] specifies the view ID of the ith layer of bitstreamInScope. The length of the sdi_view_id_val[i] syntax element is sdi_view_id_len_minus1+1 bits. [bold italics starts here] Not present, [bold italics ends here] [bold starts here] The value of sdi_view_id_val[i] is inferred to be equal to 0 when sdi_multiview_info_flag is equal to 0, [bold ends here].
[0232] sdi_aux_id[i] equal to 0 indicates that the ith layer of bitstreamInScope does not contain a supplemental picture. sdi_aux_id[i] greater than 0 indicates the type of supplemental picture in the ith layer of bitstreamInScope, as specified in Table 1. [bold begins here]When sdi_auxiliary_info_flag is equal to 0, the value of sdi_aux_id[i] is inferred to be equal to 0. [bold ends here]
[0233] Multiview Acquisition Information SEI Message Semantics
[0234] The multiview acquisition information (MAI) SEI message specifies various parameters of the acquisition environment. In particular, the intrinsic and extrinsic camera parameters are specified. These parameters can be used to process the decoded views before rendering them on a 3D display.
[0235] [Bold italics begins here]The following semantics apply separately to each nuh_layer_idtargetLayerId among the nuh_layer_id values to which the Multiview Acquisition Information SEI message applies. [Bold italics ends here]
[0236] [Bold italics begins here] If present, the multiview acquisition information SEI message that applies to the current layer shall be included in the access unit that contains the IRAP picture that is the first picture of the CLVS of the current layer. The information signaled in the SEI message applies to the CLVS. [Bold italics ends here]
[0237] [Bold begins here] MAI SEI messages last, in decoding order, from the current AU to the next AU or the end of the bitstream that contains an MAI SEI message whose content differs from the current MAI SEI message. If an MAI SEI message is present in any AU of a CVS, then the MAI SEI message shall be present in the first AU of the CVS. All MAI SEI messages that apply to the same CVS shall have the same content. [Bold ends here]
[0238] [Bold begins here]If an AU contains both SDI SEI and MAI SEI messages, the SDI SEI messages shall precede the MAI SEI messages in decoding order. [Bold ends here]
[0239] Some views for which multiview acquisition information is included in the multiview acquisition information SEI message may not exist.
[0240] Depth Representation Information SEI Message Semantics
[0241] The syntax elements of the depth representation information (DRI) SEI message specify various parameters of supplemental pictures of type AUX_DEPTH for processing the decoded primary and supplemental pictures before rendering on a 3D display, such as for view synthesis. In particular, the depth or disparity range of the depth picture is specified.
[0242] [Bold begins here]If an AU contains both an SDI SEI message with sdi_aux_id[i] equal to 2 for at least one value of i, and a DRI SEI message, then the SDI SEI message shall precede the DRI SEI message in decoding order. [Bold ends here]
[0243] Alpha Channel Information SEI Message Semantics
[0244] The alpha channel information (ACI) SEI message provides information about alpha channel sample values and post-processing applied to a supplementary picture of type AUX_ALPHA and a decoded alpha plane coded in one or more associated primary pictures.
[0245] [Bold begins here]If an AU contains both an SDI SEI message with sdi_aux_id[i] equal to 1 for at least one value of i, and an ACI SEI message, then the SDI SEI message shall precede the ACI SEI message in decoding order. [Bold ends here]
[0246] 4 is a block diagram illustrating an example video processing system 400 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of the video processing system 400. The video processing system 400 may include an input 402 that receives video content. The video content may be received in raw or uncompressed format, such as 8 or 10 bit multi-component pixel values, or may be in a compressed or encoded format. The input 402 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, passive optical network (PON), etc., and wireless interfaces such as Wireless Fidelity (Wi-Fi) or cellular interfaces.
[0247] The video processing system 400 may include a coding component 404 that may implement various coding or encoding methods described herein. The coding component 404 may reduce the average bit rate of the video from the input 402 to the output of the coding component 404 to generate a coded representation of the video. Coding techniques are therefore sometimes referred to as video compression or video transcoding techniques. The output of the coding component 404 may be stored or transmitted over a communication connection, as represented by component 406. The bitstream (or coded) representation received at the input 402, stored or communicated, may be used by component 408 to generate pixel values or displayable video that are transmitted to a display interface 410. The process of generating user-viewable video from the bitstream representation is sometimes referred to as video decompression. Additionally, although certain video processing operations are referred to as "coding" operations or tools, it is understood that the coding tools or operations are used in an encoder and that corresponding decoding tools or operations that reverse the results of the coding are performed by a decoder.
[0248] Examples of peripheral bus interfaces or display interfaces may include universal serial bus (USB) or high definition multimedia interface (HDMI) or Displayport, etc. Examples of storage interfaces include serial advanced technology attachment (SATA), Peripheral Component Interconnect (PCI), Integrated Drive Electronics (IDE) interface, etc. The techniques described herein may be implemented in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video displays.
[0249] FIG. 5 is a block diagram of a video processing device 500. The device 500 may be used to perform one or more of the methods described herein. The device 500 may be implemented in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. The device 500 may include one or more processors 502, one or more memories 504, and video processing hardware 506 (also known as video processing circuitry). The processor 502 may be configured to perform one or more of the methods described herein. The memory(s) 504 may be used to store data and code used to perform the methods and techniques described herein. The video processing hardware 506 is a hardware circuit and may be used to perform some of the techniques described herein. In some embodiments, the hardware 506 may be partially or completely internal to the processor 502, such as a graphics processor.
[0250] 6 is a block diagram illustrating an example video coding system 600 that may utilize techniques of this disclosure. As shown in FIG. 6, the video coding system 600 may include a source device 610, which may be referred to as a video encoder, and generates encoded video data. The destination device 620, which may be referred to as a video decoder, may decode the encoded video data generated by the source device 610.
[0251] The source device 610 may include a video source 612 , a video encoder 614 , and an input / output (I / O) interface 616 .
[0252] The video source 612 may include a source such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of such sources. The video data may include one or more pictures. The video encoder 614 encodes the video data from the video source 612 to generate a bitstream. The bitstream may include a sequence of bits that form a coded representation of the video data. The bitstream may include coding pictures and associated data. A coding picture is a coded representation of a picture. The associated data may include sequence parameter sets, picture parameter sets, and other syntax structures. The I / O interface 616 may include a modulator / demodulator (modem) and / or a transmitter. The coded video data may be transmitted directly to the destination device 620 through the network 630 via the I / O interface 616. The coded video data may be stored in the storage medium / server 640 for access by the destination device 620.
[0253] The destination device 620 may include an I / O interface 626 , a video decoder 624 , and a display device 622 .
[0254] The I / O interface 626 may include a receiver and / or a modem. The I / O interface 626 may obtain encoded video data from the source device 610 or the storage medium / server 640. The video decoder 624 may decode the encoded video data. The display device 622 may display the decoded video data to a user. The display device 622 may be integrated into the destination device 620 or may be external to the destination device 620 and configured to interface with an external display device.
[0255] The video encoder 614 and the video decoder 624 may operate in accordance with 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.
[0256] FIG. 7 is a block diagram illustrating an example of a video encoder 700, which may be video encoder 614 in video coding system 600 shown in FIG.
[0257] Video encoder 700 may be configured to perform any or all of the techniques described in this disclosure. In the example of FIG. 7, video encoder 700 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video encoder 700. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0258] Functional components of the video encoder 700 may include a partition unit 701, a prediction unit 702, which may include a mode selection unit 703, a motion estimation unit 704, a motion compensation unit 705, and an intra prediction unit 706, a residual generation unit 707, a transform unit 708, a quantization unit 709, an inverse quantization unit 710, an inverse transform unit 711, a reconstruction unit 712, a buffer 713, and an entropy coding unit 714.
[0259] In other examples, the video encoder 700 may include more, fewer, or different functional components. In an example, the prediction unit 702 may include an intra block copy (IBC) unit. The IBC unit may perform prediction in an IBC mode, where at least one reference picture is the picture in which the current video block is located.
[0260] Furthermore, some components, such as the motion estimation unit 704 and the motion compensation unit 705, may be highly integrated, but are represented separately in the example of FIG. 7 for purposes of explanation.
[0261] Partition unit 701 partitions a picture into one or more video blocks. The video encoder 614 and the video decoder 624 in Figure 6 may support a variety of video block sizes.
[0262] The mode selection unit 703 may select one of the coding modes, intra or inter, based on, for example, the error result, and provide the resulting intra- or inter-coded block to the residual generation unit 707 for generating residual block data, and to the reconstruction unit 712 for reconstructing the coded block for use as a reference picture. In some examples, the mode selection unit 703 may select a combination of intra- and inter-prediction (CIIP) mode, in which prediction is based on an inter prediction signal and an intra prediction signal. The mode selection unit 703 may select the resolution of the motion vector for the block (e.g., sub-pixel or integer pixel precision) in the case of inter prediction.
[0263] To perform inter prediction on a current video block, motion estimation unit 704 may generate motion information for the current video block by comparing one or more reference frames from buffer 713 to the current video block. Motion compensation unit 705 may determine a prediction video block for the current video block based on the motion information and decoded samples of pictures from buffer 713 other than the picture associated with the current video block.
[0264] Motion estimation unit 704 and motion compensation unit 705 may perform different operations on a current video block depending on, for example, whether the current video block is an I slice, a P slice, or a B slice. An I slice (or I frame) is the least compressible but does not require other video frames to be decoded. An S slice (or P frame) can be decompressed using data from previous frames and is more compressible than an I frame. A B slice (or B frame) can use both previous and future frames for data references to obtain the greatest amount of data compression.
[0265] In some examples, motion estimation unit 704 may perform unidirectional prediction for the current video block, and motion estimation unit 704 may search reference pictures in list 0 or list 1 for a reference video block for the current video block. Motion estimation unit 704 may then generate a reference index indicating a reference picture 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 704 may output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 705 may generate a prediction video block for the current block based on the reference video block indicated by the motion information for the current video block.
[0266] In other examples, motion estimation unit 704 may perform bidirectional prediction for the current video block, and motion estimation unit 704 may search a reference picture in list 0 for a reference video block for the current video block and may search a reference picture in list 1 for another reference video block for the current video block. Motion estimation unit 704 may then generate a reference index that indicates a reference picture in list 0 or list 1 that contains the reference video block, and a motion vector that indicates a spatial displacement between the reference video block and the current video block. Motion estimation unit 704 may output the reference index and the motion vector for the current video block as motion information for the current video block. Motion compensation unit 705 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.
[0267] In some examples, the motion estimation unit 704 may output a complete set of motion information for the decoding process of the decoder.
[0268] In some examples, motion estimation unit 704 may not output a complete set of motion information for the current video. Rather, motion estimation unit 704 may signal motion information for the current video block by reference to motion information of another video block. For example, motion estimation unit 704 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.
[0269] In one example, motion estimation unit 704 may indicate a value in a syntax structure associated with a current video block that indicates to video decoder 624 that the current video block has the same motion information as another video block.
[0270] In another example, motion estimation unit 704 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 624 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.
[0271] As mentioned above, the video encoder 614 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by the video encoder 614 include advanced motion vector prediction (AMVP) and merge mode signaling.
[0272] Intra prediction unit 706 may perform intra prediction on the current video block. When intra prediction unit 706 performs intra prediction on the current video block, intra prediction unit 706 may generate predictive data for the current video block based on decoded samples of other video blocks in the same picture. The predictive data for the current video block may include a predictive video block and various syntax elements.
[0273] Residual generation unit 707 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.
[0274] In other examples, residual data may not be present for the current video block, such as in skip mode, and residual generation unit 707 may not perform a subtraction operation.
[0275] Transform unit 708 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.
[0276] After transform unit 708 generates a transform coefficient video block associated with the current video block, quantization unit 709 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameters (QP) associated with the current video block.
[0277] Inverse quantization unit 710 and inverse transform unit 711 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 712 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by prediction unit 702 to generate a reconstructed video block associated with the current video block for storage in buffer 713.
[0278] After reconstruction unit 712 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.
[0279] The entropy encoding unit 714 may receive data from other functional components of the video encoder 700. Once the entropy encoding unit 714 receives the data, it may perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream that includes the entropy encoded data.
[0280] FIG. 8 is a block diagram illustrating an example of a video decoder 800, which may be video decoder 624 in video coding system 600 shown in FIG.
[0281] The video decoder 800 may be configured to perform any or all of the techniques described in this disclosure. In the example of FIG. 8, the video decoder 800 includes multiple functional components. The techniques described in this disclosure may be shared among various components of the video decoder 800. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0282] 8, the video decoder 800 includes an entropy decoding unit 801, a motion compensation unit 802, an intra prediction unit 803, an inverse quantization unit 804, an inverse transform unit 805, and a reconstruction unit 806, and a buffer 807. The video decoder 800 may, in some examples, perform a decoding path that is generally reciprocal to the encoding path described with respect to the video encoder 614 (FIG. 6).
[0283] The entropy decoding unit 801 may read an encoded bitstream. The encoded bitstream may include entropy encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 801 may decode the entropy encoded video data, and from the entropy decoded video data, the motion compensation unit 802 may determine motion information including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 802 may determine such information, for example, by implementing AMVP and merge mode signaling.
[0284] The motion compensation unit 802 may generate the motion compensated blocks by performing interpolation, possibly based on an interpolation filter. An identifier of the interpolation filter to be used with sub-pixel accuracy may be included in the syntax element.
[0285] The motion compensation unit 802 may use an interpolation filter as used by the video encoder 614 during encoding of the video block to calculate sub-integer pixel interpolated values of the reference block. The motion compensation unit 802 may determine the interpolation filter used by the video encoder 614 according to received syntax information and generate a prediction block using the interpolation filter.
[0286] The motion compensation unit 802 may use some of the syntax information to determine the size of the blocks used to code frames and / or slices of the coded video sequence, partition information describing how each macroblock of a picture of the coded video sequence is partitioned, a mode indicating how each partition is coded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the coded video sequence.
[0287] An intra prediction unit 803 may form a prediction block from spatially neighboring blocks, e.g., using an intra prediction mode received in the bitstream. An inverse quantization unit 804 inverse quantizes, or dequantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 801. An inverse transform unit 805 applies an inverse transform.
[0288] The reconstruction unit 806 may add the residual blocks with corresponding prediction blocks generated by the motion compensation unit 802 or the intra prediction unit 803 to form decoded blocks. If desired, a deblocking filter may also be applied to filter the decoded blocks to remove blocking artifacts. The decoded video blocks are then stored in a buffer 807 to provide reference blocks for later motion compensation / intra prediction, and to generate decoded video for presentation on a display device.
[0289] 9 is a method 900 for coding video data according to an embodiment of the present disclosure. The method 900 may be performed by a coding device (e.g., an encoder) having a processor and a memory. The method 900 may be implemented when using SEI messages to convey information in a bitstream.
[0290] At block 902, the coding device infers that a scalability dimension information (SDI) supplemental information identifier is equal to a first value when an SDI supplemental information flag is equal to a first value.
[0291] At block 904, the coding device performs a conversion between the video and a bitstream of video based on the estimated first value. If implemented in an encoder, the conversion includes receiving the video and encoding the video into a bitstream that includes the SEI message. If implemented in a decoder, the conversion includes receiving the bitstream that includes the SEI message and decoding the bitstream that includes the SEI message to reconstruct the video.
[0292] In an embodiment, the first value is 0. In an embodiment, the SDI auxiliary identifier is designated as sdi_aux_id[i].
[0293] In an embodiment, the bitstream is a range bitstream, and sdi_aux_id[i] equal to said first value indicates that the i-th layer of said range bitstream does not contain a supplemental picture. In an embodiment, the bitstream is a range bitstream, and sdi_aux_id[i] greater than said first value indicates a type of supplemental picture of the i-th layer of said range bitstream.
[0294] In an embodiment, the in-range bitstream is a sequence of AUs including, in decoding order, the current AU and all subsequent AUs following the current AU up to but not including any subsequent AUs that contain a subsequent SDI SEI message. In an embodiment, the in-range bitstream is a sequence of AUs including, in decoding order, the current AU and zero or more subsequent AUs following the current AU up to and including the last AU in the current CVS. In an embodiment, supplemental pictures are placed in a supplemental layer in the in-range bitstream. In some embodiments, decoding order means, for example, a left-to-right direction in Figures 1-3.
[0295] In an embodiment, the SDI auxiliary information flag is designated as sdi_auxiliary_info_flag. In an embodiment, sdi_auxiliary_info_flag equal to a first value indicates that no auxiliary information is conveyed by one or more layers in the in-scope bitstream.
[0296] In an embodiment, sdi_auxiliary_info_flag equal to the first value further indicates that the sdi_aux_id[] syntax element is not present in the Scalability Dimension Information (SDI) SEI message.
[0297] In an embodiment, the SDI supplemental information flags are syntax elements located within an SDI SEI message, which applies to the bitstream within its scope.
[0298] In an embodiment, the method further comprises the step of inferring that the SDI view identifier value is equal to the first value when the SDI multiview information flag is equal to the first value.
[0299] In an embodiment, the SDI view identifier value is designated as sdi_view_id_val[i] and the SDI multiview information flag is designated as sdi_multiview_info_flag.
[0300] In an embodiment, sdi_view_id_val[i] specifies the view ID of the i-th layer in the in-scope bitstream, the length of the sdi_view_id_val[i] syntax element is specified as sdi_view_id_len bits, and the value of sdi_view_id_val[i] is inferred to be equal to the first value when not present in an SDI SEI message.
[0301] In an embodiment, sdi_multiview_info_flag equal to a second value indicates that the in-range bitstream is a multiview bitstream and the sdi_view_id_val[] syntax element is present in the SDI SEI message, sdi_multiview_flag equal to a first value indicates that the in-range bitstream is not a multiview bitstream and the sdi_view_id_val[] syntax element is not present in the SDI SEI message, and the second value is 1.
[0302] In an embodiment, the method 900 further includes encoding, by a video coding device, an SDI SEI message including the SDI supplemental identifier and the SDI supplemental information flag into a bitstream.
[0303] In an embodiment, the method 900 further includes decoding, by the video coding device, the bitstream to obtain the SDI supplemental identifier and the SDI supplemental information flag from the SDI SEI message.
[0304] In an embodiment, the method 900 may utilize or incorporate one or more features or processes of other methods disclosed herein.
[0305] A list of preferred solutions according to some embodiments is provided below.
[0306] The following solution illustrates an exemplary embodiment (eg, Example 1) of the techniques discussed in the previous section.
[0307] (Item 1) A method of video processing, comprising: performing a conversion between a video and a bitstream of said video; a SDI Supplemental Enhancement Information (SEI) message is indicated for the video; The method of claim 1, wherein the rules define a persistence range of the SDI SEI message or constraints on the SDI SEI message.
[0308] (Item 2) The method of item 1, wherein the rule specifies that the SDI SEI message persists, in decoding order, from a current access unit (AU) to a next AU that contains another SDI SEI message whose content differs from the SDI SEI message or to an end of a bitstream.
[0309] Item 3. The method of item 1, wherein the rule specifies that the SDI SEI message persists for a coded video sequence (CVS) that includes the SDI SEI message.
[0310] (Item 4) A method according to any one of items 1 to 3, wherein the rule defines a constraint that if the SDI SEI message is present in a coded video sequence (CVS), it is present within the first access unit (AU) of the CVS.
[0311] (Item 5) The method according to any one of items 1 to 4, wherein the rule defines a constraint that all SDI SEI messages in a coded video sequence have identical content.
[0312] (Item 6) The method according to any of items 1 to 5, wherein the rule specifies a constraint that a value of an identifier of the SDI SEI message is inferred to be 0 in response to (a) a flag indicating an absence of multiview information in the bitstream, or (b) a flag indicating an absence of supplemental information in the bitstream.
[0313] (Item 7) The method according to any one of items 1 to 6, wherein the rule specifies a constraint that the SDI SEI message is not allowed to be present within a scalable nested SEI message.
[0314] (Item 8) A method of video processing, comprising: performing a conversion between a video and a bitstream of said video; a multiview acquisition information (MAI) supplemental enhancement information (SEI) message is indicated for the video; The method, wherein the rules define a persistence scope of or constraints on the MAI SEI message.
[0315] (Item 9) The method described in Item 8, wherein the rule defines a persistence range in which the MAI SEI message persists, in decoding order, from a current access unit (AU) containing the MAI SEI message to a next AU containing another MAI SEI message with different content, or to the end of the bitstream.
[0316] (Item 10) A method according to any of items 8 to 9, wherein the rule defines a constraint that if the MAI SEI message is present in a coded video sequence (CVS), it is present within the first access unit (AU) of the CVS.
[0317] (Item 11) A method of video processing, comprising: performing a conversion between a video and a bitstream of said video; a scalability dimension information (SDI) supplemental enhancement information (SEI) message and a second SEI message are indicated for the video; The method of claim 1, wherein the rules define a format for indicating the SDI SEI message and the second SEI message.
[0318] (Item 12) The method described in Item 11, wherein the rule specifies an order in which the second SEI message is a multiview acquisition information (MAI) SEI message and the MAI SEI message occurs after a scalability dimension information (SDI) SEI message in decoding order.
[0319] (Item 13) The second SEI message is a depth representation information (DRI) SEI message, 12. The method of claim 11, wherein the rule specifies that, in response to the SDI SEI message having a layer identifier value of 2, the SDI SEI message occurs before the DRI SEI message in decoding order.
[0320] (Item 14) The second SEI message is an alpha channel information (ACI) SEI message, 12. The method of claim 11, wherein the rule specifies that, in response to the SDI SEI message having a layer identifier value of 1, the SDI SEI message occurs before the DRI SEI message in decoding order.
[0321] (Item 15) The method according to any one of items 1 to 14, wherein the conversion includes generating the bitstream from the video, or generating the video from the bitstream.
[0322] (Item 16) A video decoding device, comprising a processor configured to implement the methods described in one or more of items 1 to 15.
[0323] (Item 17) A video encoding device comprising a processor configured to implement the methods described in one or more of items 1 to 15.
[0324] (Item 18) A computer program product having computer code stored thereon, the code causing the processor to perform a method according to any one of items 1 to 15 when executed by a processor.
[0325] (Item 19) A computer-readable medium storing a bitstream generated according to any one of items 1 to 15.
[0326] (Item 20) A step of generating a bitstream according to any one of the methods described in items 1 to 15; writing the bitstream to a computer readable medium; The method includes:
[0327] (Item 21) Methods, apparatus, and bitstreams generated in accordance with any of the disclosed methods or systems described herein.
[0328] The following documents may contain additional details related to the technology disclosed herein:
[0329] [1] ITU-T and ISO / IEC, “High efficiency video coding”, Rec. ITU-T H.265 | ISO / IEC 23008-2 (in force edition).
[0330] [2] J. Chen, E. Alshina, GJ Sullivan, J.-R. Ohm, J. Boyce, “Algorithm description of Joint Exploration Test Model 7 (JEM7),” JVET-G1001, Aug. 2017.
[0331] [3] Rec. ITU-T H.266 | ISO / IEC 23090-3, “Versatile Video Coding”, 2020.
[0332] [4] B. Bross, J. Chen, S. Liu, Y.-K. Wang (editors), “Versatile Video Coding (Draft 10),” JVET-S2001.
[0333] [5] Rec. ITU-T Rec. H.274 | ISO / IEC 23002-7, “Versatile Supplemental Enhancement Information Messages for Coded Video Bitstreams”, 2020.
[0334] [6] J. Boyce, V. Drugeon, G. Sullivan, Y.-K. Wang (editors), “Versatile supplemental enhancement information messages for coded video bitstreams (Draft 5),” JVET-S2007.
[0335] The disclosed and other solutions, examples, embodiments, modules, and functional operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including structures disclosed herein, and structural equivalents thereof, or in any combination of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by or to control the operation of a data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or one or more combinations thereof. The term "data processing device" encompasses any device, apparatus, and machine that processes data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, a device can include code that creates an execution environment for a subject computer program, such as code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. A propagated signal is an artificially generated signal, for example a machine-generated electrical, optical, or electromagnetic signal, generated to encode information for transmission to appropriate receiver equipment.
[0336] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including a stand-alone program or a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in several associated files (e.g., a file that stores one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on several computers located at one site or distributed at several sites and interconnected by a communication network.
[0337] The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs that perform functions by operating on input data and generating output. The processes and logic flows may be performed by, and devices may be implemented as, special purpose logic circuitry, such as a field programmable gate array (FPGA) or application specific integrated circuit (ASIC).
[0338] Processors suitable for executing a computer program include, for example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor receives instructions and data from a read-only memory or a random access memory, or both. The basic elements of a computer are a processor for executing instructions, and one or more memory devices for storing instructions and data. Typically, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive data from or transfer data to them, or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all types of non-volatile memories, media, and memory devices, including, for example, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and compact disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0339] Although the present specification contains a number of specificities, these should not be considered as limitations on the scope of any subject matter or what may be claimed, but rather as descriptions of features specific to particular embodiments of a particular technology. Certain features described herein in the context of separate implementations may also be combined in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately or in any suitable subcombination in multiple embodiments. Furthermore, although features may be described above as operating in a particular combination and initially claimed as such, one or more features from a claimed combination may in some cases be separated from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0340] Similarly, although operations are shown in a particular order in the figures, this should not be understood to require that such operations be performed in the particular order shown, or sequentially, to achieve desirable results, and further, the separation of various system components in the embodiments described herein should not be understood to require such separation in all embodiments.
[0341] Only a few implementations and examples have been described; other implementations, extensions, and variations may be made based on what is described and shown herein.
Claims
1. 1. A method for processing video data, comprising the steps of: during conversion between video and a bitstream of said video, when a SDI supplemental information flag is equal to a first value, inferring that a SDI supplemental information identifier is equal to said first value; performing the transformation based on the estimated first value; Including, the first value is 0; the SDI supplemental identifier is designated as sdi_aux_id[i], sdi_aux_id[i] being equal to the first value indicates that the i-th layer of a current coded video sequence (CVS) does not contain a supplemental picture, where i is an integer; sdi_aux_id[i] greater than the first value indicates a type of a supplemental picture of the i-th layer of the current CVS; the SDI auxiliary information flag is designated as sdi_auxiliary_info_flag; sdi_auxiliary_info_flag being equal to the first value indicates that the current CVS does not have a supplemental layer; The method, wherein sdi_auxiliary_info_flag equal to the first value further indicates that an sdi_aux_id[] syntax element is not present in a Scalability Dimension Information (SDI) SEI message.
2. The method of claim 1 , wherein the converting comprises encoding the video into the bitstream.
3. The method of claim 1 , wherein the converting comprises decoding the video from the bitstream.
4. 16. An apparatus for processing video data, comprising: a processor; and a non-transitory memory storing instructions that, when executed by the processor, cause the processor to: during conversion between a video and a bitstream of the video, when a scalability dimension information (SDI) supplemental information flag is equal to a first value, inferring that an SDI supplemental identifier is equal to the first value; performing said transformation based on said estimated first value; the first value is 0; the SDI supplemental identifier is designated as sdi_aux_id[i], sdi_aux_id[i] being equal to the first value indicates that the i-th layer of a current coded video sequence (CVS) does not contain a supplemental picture, where i is an integer; sdi_aux_id[i] greater than the first value indicates a type of a supplemental picture of the i-th layer of the current CVS; the SDI auxiliary information flag is designated as sdi_auxiliary_info_flag; sdi_auxiliary_info_flag being equal to the first value indicates that the current CVS does not have a supplemental layer; sdi_auxiliary_info_flag equal to the first value further indicates that an sdi_aux_id[] syntax element is not present in a Scalability Dimension Information (SDI) SEI message. device.
5. A non-transitory computer-readable storage medium storing instructions, the instructions causing a processor to: during conversion between a video and a bitstream of the video, when a scalability dimension information (SDI) supplemental information flag is equal to a first value, inferring that an SDI supplemental identifier is equal to the first value; performing said transformation based on said estimated first value; the first value is 0; the SDI supplemental identifier is designated as sdi_aux_id[i], sdi_aux_id[i] being equal to the first value indicates that the i-th layer of a current coded video sequence (CVS) does not contain a supplemental picture, where i is an integer; sdi_aux_id[i] greater than the first value indicates a type of a supplemental picture of the i-th layer of the current CVS; the SDI auxiliary information flag is designated as sdi_auxiliary_info_flag; sdi_auxiliary_info_flag being equal to the first value indicates that the current CVS does not have a supplemental layer; sdi_auxiliary_info_flag equal to the first value further indicates that an sdi_aux_id[] syntax element is not present in a Scalability Dimension Information (SDI) SEI message. A non-transitory computer-readable storage medium.
6. 1. A method for storing a bitstream of a video, the method comprising: inferring that a scalability dimension information (SDI) supplemental information flag is equal to a first value, and that a SDI supplemental identifier is equal to said first value; generating the bitstream for the video based on the estimated first value; storing the bitstream on a non-transitory computer readable recording medium; Including, the first value is 0; the SDI supplemental identifier is designated as sdi_aux_id[i], sdi_aux_id[i] being equal to the first value indicates that the i-th layer of a current coded video sequence (CVS) does not contain a supplemental picture, where i is an integer; sdi_aux_id[i] greater than the first value indicates a type of a supplemental picture of the i-th layer of the current CVS; the SDI auxiliary information flag is designated as sdi_auxiliary_info_flag; sdi_auxiliary_info_flag being equal to the first value indicates that the current CVS does not have a supplemental layer; The method, wherein sdi_auxiliary_info_flag equal to the first value further indicates that an sdi_aux_id[] syntax element is not present in a Scalability Dimension Information (SDI) SEI message.