Extended signaling of supplemental enhancement information

JP7640755B2Active Publication Date: 2025-03-05DOUYIN VISION CO LTD +1
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
JP2023580377
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-06-28
Filing Date
2022-06-27
Publication Date
2025-03-05
Estimated Expiration
2042-06-27

Smart Images

  • Figure 0007640755000013
    Figure 0007640755000013
  • Figure 0007640755000014
    Figure 0007640755000014
  • Figure 0007640755000015
    Figure 0007640755000015
Patent Text Reader

Abstract

A mechanism is disclosed for processing video data. A value of an annotated region (AR) object label index of an ith AR object index (ar_object_label_idx[ar_object_idx[i]]) syntax element is determined. The ar_object_label_idx[ar_object_idx[i]] syntax element is specified to be in the range of N to M, where N and M are integers and N is less than M. A conversion between visual media data and a bitstream is performed based on the ar_object_label_idx[ar_object_idx[i]] syntax element.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] Honde Wish 、 Filed on June 28, 2021 Country The benefit of International Application No. PCT / CN2021 / 102636 is claimed. , based on International Patent Application No. PCT / CN2022 / 101411, filed on June 27, 2022. All of the aforementioned patent applications , by reference The whole This is incorporated herein by reference.

[0002] [Technical field] This patent document relates to the creation, storage and consumption of digital audio-video media information in file format. [Background technology]

[0003] Digital video is the largest bandwidth used on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demands for digital video usage are likely to continue to increase. Summary of the Invention

[0004] A first aspect relates to a method for processing video data, comprising: determining an annotated region (AR) object label index value of an ith AR object index (ar_object_label_idx[ar_object_idx[i]]) syntax element specified to be in the range of N to M, where N and M are integers and N is less than M; and performing a conversion between visual media data and a bitstream based on the ar_object_label_idx[ar_object_idx[i]] syntax element.

[0005] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that N is 0 and M is 3, 7, 15, 31, 63, or 255.

[0006] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the range of N to M is inclusive.

[0007] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides a step of determining a value of a specified depth_representation_type syntax element to be in the range A to B, where A and B are integers and A is less than B.

[0008] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that A is 0 and B is 3, 7, 15, 31, 63, 127, or 255.

[0009] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the range from A to B is inclusive.

[0010] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides a step of determining a value of an i-th depth_nonlinear_representation_model[i] syntax element specified to be in the range C to D, where C and D are integers and C is less than D.

[0011] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that C is 0 and D is 6, 14, 30, 62, 126, or 254.

[0012] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the range from C to D is inclusive of both end values.

[0013] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides a step of determining a value of a specified disparity reference view identifier (disparity_ref_view_id) syntax element to be within a range of E to F, where E and F are integers and E is less than F.

[0014] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that E is 0 and F is 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, or 65535.

[0015] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the range of E to F is inclusive.

[0016] Optionally, in any of the aforementioned aspects, another implementation form of the aspect provides that an ar_object_label_idx[ar_object_idx[i]] syntax element is included in an annotated region (AR) supplemental enhancement information (SEI) message.

[0017] Optionally, in any of the aforementioned aspects, another implementation form of the aspect provides that a depth_representation_type syntax element is included in a depth representation information (DRI) SEI message.

[0018] Optionally, in any of the aforementioned aspects, another implementation form of the aspect provides that a depth_nonlinear_representation_model[i] syntax element is included in the DRI SEI message.

[0019] Optionally, in any of the aforementioned aspects, another implementation form of the aspect provides that a disparity_ref_view_id syntax element is included in the DRI SEI message.

[0020] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the converting includes encoding the visual media data into a bitstream.

[0021] Optionally, in any of the aforementioned aspects, another implementation of the aspect provides that the converting includes decoding the bitstream to obtain the visual media data.

[0022] A second aspect relates to an apparatus for processing video data comprising a processor and a non-transitory memory having instructions that, when executed by the processor, cause the processor to perform a method of any of the previous aspects.

[0023] A third aspect relates to a non-transitory computer-readable medium comprising a computer program product for use by a video coding device, the computer program product comprising computer-executable instructions stored on the non-transitory computer-readable medium that, when executed by a processor, causes the video coding device to perform a method of any of the preceding aspects.

[0024] A fourth aspect relates to a non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by a video processing device, the method including the steps of determining a value of an annotated region (AR) object label index of an i-th AR object index (ar_object_label_idx[ar_object_idx[i]]) syntax element specified to be in the range of N to M, where N and M are integers and N is less than M, and generating a bitstream based on the determining step.

[0025] A fifth aspect relates to a method for storing a bitstream of a video, comprising: determining a value of an annotated region (AR) object label index of an i-th AR object index (ar_object_label_idx[ar_object_idx[i]]) syntax element specified to be in the range of N to M, where N and M are integers and N is less than M; generating a bitstream based on the determining; and storing the bitstream on a non-transitory computer-readable recording medium.

[0026] For 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 within the scope of the present disclosure.

[0027] These 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]

[0028] 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, in which like reference numerals represent like parts. [Figure 1] FIG. 2 is a schematic diagram illustrating an exemplary bitstream. [Diagram 2] 1 is a block diagram illustrating an example video processing system. [Diagram 3] 1 is a block diagram of an exemplary video processing device. [Figure 4] 1 is a flowchart of an exemplary method of video processing. [Diagram 5] 1 is a block diagram illustrating an example video coding system. [Figure 6] FIG. 2 is a block diagram illustrating an example encoder. [Figure 7] FIG. 2 is a block diagram illustrating an exemplary decoder. [Figure 8]FIG. 2 is a schematic diagram of an exemplary encoder. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

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

[0030] This patent document relates to image and / or video coding technology. In particular, this document relates to signaling annotated regions, depth representation information, and enhanced dependent random access point (EDRAP) indications in Supplemental Enhancement Information (SEI) messages. These examples may be applied individually or in various combinations to video bitstreams coded by any codec, such as the Generic Video Coding (VVC) standard and the Generic SEI Message for Coded Video Bitstreams (VSEI) standard.

[0031] This disclosure includes the following abbreviations: Alpha Channel Information (ACI), Adaptation Parameter Set (APS), Access Unit (AU), Coded Layer Video Sequence (CLVS), Coded Layer Video Sequence Start (CLVSS), Cyclic Redundancy Check (CRC), Color Transformation Information (CTI), Coded Video Sequence (CVS), Dependent Random Access Point (DRAP), Depth Representation Information (DRI), Enhanced Dependent Random Access Point (EDRAP), Finite Impulse Response (FIR), Intra Random Access Point (IRAP), Multiview Capture (MCAP), Multiview Capture Buffer ... The following are some of the common features of the standard: Multimedia Information (MII), Network Abstraction Layer (NAL), Picture Parameter Set (PPS), Picture Unit (PU), Random Access Skip Reading (RASL), Packing by Region (RWP), Sample Aspect Ratio (SAR), Sample Aspect Ratio Information (SARI), Scalability Dimension Information (SDI), Supplemental Enhancement Information (SEI), Stepwise Temporal Sublayer Access (STSA), Video Coding Layer (VCL), Generic Supplemental Enhancement Information (VSEI) also known as Rec. ITU-T H.274|ISO / IEC 23002-7, Video Usability Information (VUI), and Generic Video Coding (VVC) also known as Rec. ITU-T H.266|ISO / IEC 23090-3.

[0032] Video coding standards have evolved primarily through the development of International Telecommunication Union (ITU) Telecommunication Standardization Sector (ITU-T) and ISO / International Electrotechnical Commission (IEC) standards. ITU-T produced H.261 and H.263, ISO / IEC produced Motion Picture Experts Group (MPEG)-1 and MPEG-4 Visual, and the two organizations jointly produced H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Coding (AVC) and H.265 / High Efficiency Video Coding (HEVC) standards. Since H.262, video coding standards have been based on a hybrid video coding structure in which temporal prediction plus transform coding is utilized. To explore further video coding techniques beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by the Video Coding Experts Group (VCEG) and MPEG. Many methods have been adopted by JVET and put into reference software named the Joint Exploration Model (JEM). JVET was later renamed to JVET (Joint Video Experts Team) when the Versatile Video Coding (VVC) project was officially launched. VVC is a coding standard that targets a 50% bitrate reduction compared to HEVC. VVC is being finalized by JVET.

[0033] The VVC standard, also known as ITU-T H.266|ISO / IEC 23090-3, and the related Generic Supplemental Enhancement Information (VSEI) standard, also known as ITU-T H.274|ISO / IEC 23002-7, are designed for use in a wide range of applications, such as television broadcasting, videoconferencing, playback from storage media, adaptive bitrate streaming, video region extraction, compositing and merging content from multiple coded video bitstreams, multiview video, scalable layered coding, and viewport-adaptive 360-degree (360°) immersive media. The Basic Video Coding (EVC) standard (ISO / IEC 23094-1) is another video coding standard developed by MPEG.

[0034] Exemplary amendments to the VSEI standard include specification of additional SEI messages, including an annotated region SEI message, an alpha channel information SEI message, a depth representation information SEI message, a multiview acquisition information SEI message, a scalability dimension information SEI message, an enhanced dependent random access point (DRAP) indication SEI message, a display orientation SEI message, and a color transformation information SEI message.

[0035] An example annotated region SEI message syntax is as follows: [Table 1] TIFF0007640755000002.tif236160TIFF0007640755000003.tif76161

[0036] Exemplary annotated region SEI message semantics are as follows: The annotated region SEI message carries parameters that identify an annotated region using a bounding box that represents the size and location of the identified object. Use of this SEI message may require the definition of the following variables: A cropped picture width and height in units of luma samples, denoted herein by CroppedWidth and CroppedHeight, respectively, a chroma subsampling width and height, denoted as SubWidthC and SubHeightC, respectively, an adapted cropping window left offset, denoted as ConfWinLeftOffset, and an adapted cropping window top offset, denoted as ConfWinTopOffset.

[0037] ar_cancel_flag set equal to 1 indicates that the annotated regions SEI message cancels the persistence of any previous annotated regions SEI messages associated with the layer or layers to which the annotated regions SEI message applies. ar_cancel_flag set equal to 0 indicates that the annotated regions information continues. When ar_cancel_flag is equal to 1 or a new CVS for the current layer begins, the variables LabelAssigned[i], ObjectTracked[i], and ObjectBoundingBoxAvail are set equal to 0 for i in the range 0 to 255, inclusive.

[0038] ar_not_optimized_for_viewing_flag set equal to 1 indicates that the decoded picture to which the annotated regions SEI message applies is not optimized for user viewing, but rather is optimized for some other purpose, such as algorithmic object classification performance. ar_not_optimized_for_viewing_flag set equal to 0 indicates that the decoded picture to which the annotated regions SEI message applies may or may not be optimized for user viewing.

[0039] ar_true_motion_flag set equal to 1 indicates that the motion information in the coded picture to which the annotated region SEI message applies is selected for the purpose of accurately representing object motion for objects in the annotated region. ar_true_motion_flag set equal to 0 indicates that the motion information in the coded picture to which the annotated region SEI message applies may or may not be selected for the purpose of accurately representing object motion for objects in the annotated region.

[0040] ar_occluded_object_flag set equal to 1 indicates that the ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]], and ar_bounding_box_height[ar_object_idx[i]] syntax elements each represent the size and location of an object or portion of an object that may not be visible or may only be partially visible in the cropped decoded picture. ar_occluded_object_flag set equal to 0 indicates that the ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]], and ar_bounding_box_height[ar_object_idx[i]] syntax elements represent the size and location of objects that are fully visible in the cropped decoded picture. Bitstream conformance may require that the value of ar_occluded_object_flag be the same for all annotated_regions() syntax structures in the CVS.

[0041] An ar_partial_object_flag_present_flag set equal to 1 indicates the presence of the ar_partial_object_flag[ar_object_idx[i]] syntax element. An ar_partial_object_flag_present_flag set equal to 0 indicates the absence of the ar_partial_object_flag[ar_object_idx[i]] syntax element. Bitstream conformance may require that the value of ar_partial_object_flag_present_flag be the same for all annotated_regions() syntax structures in the CVS.

[0042] ar_object_label_present_flag set equal to 1 indicates that label information is present for objects in the annotated region. ar_object_label_present_flag set equal to 0 indicates that label information is not present for objects in the annotated region.

[0043] ar_object_confidence_info_present_flag set equal to 1 indicates the presence of the ar_object_confidence[ar_object_idx[i]] syntax element. ar_object_confidence_info_present_flag set equal to 0 indicates the absence of the ar_object_confidence[ar_object_idx[i]] syntax element. Bitstream conformance may require that the value of ar_object_confidence_present_flag be the same for all annotated_regions() syntax structures in the CVS.

[0044] ar_object_confidence_length_minus1+1 specifies the length in bits of the ar_object_confidence[ar_object_idx[i]] syntax element. Bitstream conformance may require that the value of ar_object_confidence_length_minus1 be the same for all annotated_regions() syntax structures in the CVS.

[0045] ar_object_label_language_present_flag set equal to 1 indicates that the ar_object_label_language syntax element is present. ar_object_label_language_present_flag set equal to 0 indicates that the ar_object_label_language syntax element is not present. ar_bit_equal_to_zero shall be equal to zero.

[0046] ar_object_label_language contains a language tag followed by a null-termination byte equal to 0x00. The length of the ar_object_label_language syntax element shall be less than or equal to 255 bytes, excluding the null-termination byte. If not present, the language of the label is unspecified.

[0047] ar_num_label_updates indicates the total number of labels associated with the annotated region being signaled. The value of ar_num_label_updates SHALL be in the range of 0 to 255, inclusive. ar_label_idx[i] indicates the index of the signaled label. The value of ar_label_idx[i] SHALL be in the range of 0 to 255, inclusive.

[0048] ar_label_cancel_flag set equal to 1 cancels the persistence of the ar_label_idx[i]th label. ar_label_cancel_flag set equal to 0 indicates that the ar_label_idx[i]th label may be assigned the signaled value. ar_label[ar_label_idx[i]] specifies the contents of the ar_label_idx[i]th label. The length of the ar_label[ar_label_idx[i]] syntax element shall be less than or equal to 255 bytes, excluding the null termination byte.

[0049] ar_num_object_updates indicates the number of object updates to be signaled. ar_num_object_updates shall be in the range of 0 to 255, inclusive. ar_object_idx[i] is the index of the object parameter to be signaled. ar_object_idx[i] shall be in the range of 0 to 255, inclusive. ar_object_cancel_flag set equal to 1 cancels the persistence of the ar_object_idx[i]th object. ar_object_cancel_flag set equal to 0 indicates that parameters associated with the ar_object_idx[i]th tracked object are signaled. ar_object_label_update_flag set equal to 1 indicates that the object label is signaled. ar_object_label_update_flag equal to 0 indicates that the object label is not signaled.

[0050] ar_object_label_idx[ar_object_idx[i]] indicates the index of the label corresponding to the ar_object_idx[i]th object. When ar_object_label_idx[ar_object_idx[i]] is not present, its value is inferred from the previous annotated region SEI message in output order in the same CVS, if any. ar_bounding_box_update_flag set equal to 1 indicates that object bounding box parameters are signaled. ar_bounding_box_update_flag set equal to 0 indicates that object bounding box parameters are not signaled.

[0051] ar_bounding_box_cancel_flag set equal to 1 cancels the persistence of ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]], ar_bounding_box_height[ar_object_idx[i]], ar_partial_object_flag[ar_object_idx[i]], and ar_object_confidence[ar_object_idx[i]]. ar_bounding_box_cancel_flag set equal to 0 indicates that the ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]], ar_bounding_box_height[ar_object_idx[i]], ar_partial_object_flag[ar_object_idx[i]], and ar_object_confidence[ar_object_idx[i]] syntax elements are signaled.

[0052] ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]], and ar_bounding_box_height[ar_object_idx[i]] specify the coordinates of the top-left corner and the width and height, respectively, of the bounding box of the ar_object_idx[i]th object in the cropped decoded picture relative to the adaptive cropping window specified by the active SPS.

[0053] The value of ar_bounding_box_left[ar_object_idx[i]] shall be in the range of 0 to CroppedWidth / SubWidthC-1, inclusive. The value of ar_bounding_box_top[ar_object_idx[i]] shall be in the range of 0 to CroppedHeight / SubHeightC-1, inclusive. The value of deleteCroppedWidth / SubWidthC-ar_bounding_box_left[ar_object_idx[i]], inclusive. The value of ar_bounding_box_height[ar_object_idx[i]] shall be in the range of 0 to CroppedHeight / SubHeightC-ar_bounding_box_top[ar_object_idx[i]], inclusive. The identified object rectangle includes luma samples having horizontal picture coordinates from SubWidthC*(ConfWinLeftOffset+ar_bounding_box_left[ar_object_idx[i]]) to SubWidthC*(ConfWinLeftOffset+ar_bounding_box_left[ar_object_idx[i]]+ar_bounding_box_width[ar_object_idx[i]])-1, inclusive, and vertical picture coordinates from SubHeightC*(ConfWinTopOffset+ar_bounding_box_top[ar_object_idx[i]]) to SubHeightC*(ConfWinTopOffset+ar_bounding_box_top[ar_object_idx[i]]+ar_bounding_box_height[ar_object_idx[i]])-1, inclusive.The values ​​of ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]], and ar_bounding_box_height[ar_object_idx[i]] are persisted in output order in CVS for each value of ar_object_idx[i]. When not present, the values ​​of ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]], or ar_bounding_box_height[ar_object_idx[i]] are inferred from the previous annotated region SEI message, if any, in output order in CVS.

[0054] ar_partial_object_flag[ar_object_idx[i]] set equal to 1 indicates that the ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]], and ar_bounding_box_height[ar_object_idx[i]] syntax elements represent the size and location of an object that is only partially visible in the cropped decoded picture. ar_partial_object_flag[ar_object_idx[i]] set equal to 0 indicates that the ar_bounding_box_top[ar_object_idx[i]], ar_bounding_box_left[ar_object_idx[i]], ar_bounding_box_width[ar_object_idx[i]] and ar_bounding_box_height[ar_object_idx[i]] syntax elements represent the size and location of an object that may be only partially visible or partially not visible in the cropped decoded picture. When not present, the value of ar_partial_object_flag[ar_object_idx[i]] is inferred from the previous annotated region SEI message in output order in the CVS, if any.

[0055] ar_object_confidence[ar_object_idx[i]] indicates the confidence associated with the ar_object_idx[i]-th object in units of 2-(ar_object_confidence_length_minus1+1), with higher values ​​of ar_object_confidence[ar_object_idx[i]] indicating higher confidence. The length of the ar_object_confidence[ar_object_idx[i]] syntax element is ar_object_confidence_length_minus1+1 bits. When not present, the value of _object_confidence[ar_object_idx[i]] is inferred from the previous annotated regions SEI message in output order in CVS, if any.

[0056] Next, the depth representation information SEI message will be described. An exemplary depth representation information SEI message syntax is as follows: [Table 2]

[0057] An exemplary depth representation information element syntax is as follows: [Table 3]

[0058] Exemplary depth representation information SEI message semantics are as follows: Syntax elements in the depth representation information (DRI) SEI message specify various parameters for auxiliary pictures of type AUX_DEPTH for the purpose of processing the decoded primary and auxiliary pictures and then rendering them on a three-dimensional (3D) display, such as for view synthesis. For example, the depth or disparity range of the depth picture is specified.

[0059] Use of this SEI message may require definition of the following variables: Bit depth for samples of the luma component, denoted herein by BitDepthY. When the CVS does not contain an SDI SEI message with sdi_aux_id[i] equal to 2 for at least one value of i, no picture in the CVS should be associated with a DRI SEI message. When an access unit (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, the SDI SEI message shall precede the DRI SEI message in decoding order. When present, the DRI SEI message shall be associated with one or more layers indicated as depth auxiliary layers by the SDI SEI message. The following semantics apply separately to each nuh_layer_id targetLayerId among the nuh_layer_id values ​​to which the DRI SEI message applies. When present, the DRI SEI message may be included in any access unit. When present, it is RECOMMENDED that the SEI message be included for random access purposes in an access unit where the coded picture with nuh_layer_id equal to targetLayerId is an IRAP picture. The information indicated in the DRI SEI message applies to all pictures with nuh_layer_id equal to targetLayerId from the access unit containing the SEI message up to but not including the next picture in decoding order associated with the DRI SEI message applicable to targetLayerId or the end of the CLVS of nuh_layer_id equal to targetLayerId, whichever comes earlier in decoding order.

[0060] The z_near_flag set equal to 0 specifies that the syntax element specifying the nearest depth value does not exist in the syntax structure. The z_near_flag set equal to 1 specifies that the syntax element specifying the nearest depth value exists in the syntax structure. The z_far_flag set equal to 0 specifies that the syntax element specifying the farthest depth value does not exist in the syntax structure. The z_far_flag set equal to 1 specifies that the syntax element specifying the farthest depth value exists in the syntax structure. The d_min_flag set equal to 0 specifies that the syntax element specifying the minimum disparity value does not exist in the syntax structure. The d_min_flag set equal to 1 specifies that the syntax element specifying the minimum disparity value exists in the syntax structure. The d_max_flag set equal to 0 specifies that the syntax element specifying the maximum disparity value does not exist in the syntax structure. The d_max_flag set equal to 1 specifies that the syntax element specifying the maximum disparity value exists in the syntax structure. The depth_representation_type specifies the representation definition of the decoded luma samples of the auxiliary picture, as specified in Table 1. In Table 1, the disparity specifies the horizontal displacement between two texture views, and the Z value specifies the distance from the camera. The variable maxVal is set equal to (1<<BitDepthY)-1.

Table 4

[0061] disparity_ref_view_id specifies the ViewId value from which the disparity value is derived. Note that 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. The variables in the x column of Table 2 are derived from the respective variables in the s, e, n and v columns of Table 2 as follows: If the value of e is in the range 0 to 127 (excluding 0), then x is set equal to (-1)s*2e-31*(1+n÷2v). Otherwise (e is equal to 0), then x is set equal to (-1)s*2-(30+v)*n. [Table 5]

[0062] The DMin and DMax values, when present, are specified in units of the luma sample width of the coded picture whose ViewId is equal to the ViewId of the auxiliary picture. The units of the ZNear and ZFar values, when present, are the same but unspecified. depth_nonlinear_representation_num_minus1+2 specifies the number of piecewise linear segments for mapping depth values ​​to a uniformly quantized scale for disparity. depth_nonlinear_representation_model[i], for i ranging from 0 to depth_nonlinear_representation_num_minus1+2, inclusive, specifies the piecewise linear segments for mapping the decoded luma sample values ​​of the auxiliary picture to a uniformly quantized scale for disparity. 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.

[0063] When depth_representation_type is equal to 3, the auxiliary 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, e.g., uniformly quantized disparity values, as specified below. The shape of this transformation is defined by a line segment approximation in the 2D linear disparity-nonlinear disparity space. The first (0,0) and last (maxVal,maxVal) nodes 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 straight line curve. These deviations are uniformly distributed along the entire range from 0 to maxVal, inclusive, with an interval depending on the value of nonlinear_depth_representation_num_minus1.

[0064] The variable DepthLUT[i], for i in the range 0 to maxVal inclusive, is specified as follows:

number

[0065] When depth_representation_type is equal to 3, DepthLUT[dS] for all decoded luma sample values ​​dS of an auxiliary picture in the range of 0 to maxVal, inclusive, represents disparities uniformly quantized in the range of 0 to maxVal, inclusive.

[0066] Depth Representation Information Element semantics are as follows: The syntax structure specifies the value of the element in the DRI SEI message. The syntax structure sets the values ​​of the OutSign, OutExp, OutMantissa, and OutManLen variables, which represent floating-point values. When a syntax structure is contained within another syntax structure, the variable names OutSign, OutExp, OutMantissa, and OutManLen shall be interpreted as being substituted for the variable names used when the syntax structure is contained.

[0067] da_sign_flag set equal to 0 indicates that the sign of the floating-point value is positive. da_sign_flag set equal to 1 indicates that the sign is negative. The variable OutSign is set equal to da_sign_flag. da_exponent specifies the exponent of the floating-point value. The value of da_exponent shall be in the range of 0 to 27-2, inclusive. The value 27-1 is reserved. Decoders shall treat the value 27-1 as indicating an unspecified value. The variable OutExp is set equal to da_exponent. da_mantissa_len_minus1+1 specifies the number of bits in the da_mantissa syntax element. The value of da_mantissa_len_minus1 shall be in the range of 0 to 31, inclusive. The variable OutManLen is set equal to da_mantissa_len_minus1+1. da_mantissa specifies the mantissa of the floating-point value. The variable OutMantissa is set equal to da_mantissa.

[0068] The extended DRAP indication SEI message is as follows: An exemplary extended DRAP indication SEI message syntax is as follows: [Table 6]

[0069] An example of the extended DRAP indication SEI message semantics is as follows: A picture associated with an extended DRAP (EDRAP) indication SEI message is called an EDRAP picture. The presence of an EDRAP indication SEI message indicates that the constraints on picture order and picture referencing specified in this subclause apply. These constraints allow a decoder to properly decode an EDRAP picture and pictures that are in the same layer and that follow it in both decoding order and output order without having to decode other pictures that are in the same layer, except for the list of pictures referenceablePictures. This contains a list of IRAP or EDRAP pictures in decoding order that are in the same CLVS and are identified by the edrap_ref_rap_id[i] syntax element.

[0070] All constraints indicated by the presence of an EDRAP indication SEI message shall apply, as follows: An EDRAP picture is a trailing picture. An EDRAP picture has a temporal sub-layer identifier equal to 0. An EDRAP picture does not contain any pictures in the same layer in the active entries of its reference picture list, except for referenceablePictures. Any pictures in the same layer that follow an EDRAP picture in both decoding order and output order do not contain any pictures in the same layer that precede the EDRAP picture in decoding order or output order in the active entries of its reference picture list, except for referenceablePictures.

[0071] When edrap_leading_pictures_decodable_flag is equal to 1, the following applies: Any picture in the same layer that follows an EDRAP picture in decoding order shall follow in output order any picture in the same layer that precedes the EDRAP picture in decoding order. Any picture in the same layer that follows an EDRAP picture in decoding order and precedes the EDRAP picture in output order shall not contain in its active entry of reference picture list any picture in the same layer that precedes the EDRAP picture in decoding order, except for referenceablePictures. Any picture in the list referenceablePictures shall not contain in its active entry of reference picture list any picture that is in the same layer and is not a picture that is in an earlier position in the list referenceablePictures. Thus, the first picture in referenceablePictures shall not contain any picture from the same layer in its active entry of reference picture list, even when it is an EDRAP picture and not an IRAP picture.

[0072] edrap_rap_id_minus1+1 specifies the Random Access Point (RAP) picture identifier, denoted as RapPicId, of the EDRAP picture. Each IRAP or EDRAP picture is associated with a RapPicId value. The RapPicId value for an IRAP picture is inferred to be equal to 0. The RapPicId values ​​for any two EDRAP pictures associated with the same IRAP picture shall be different. edrap_reserved_zero_12bits shall be equal to 0 in bitstreams conforming to this disclosure. Other values ​​of edrap_reserved_zero_12bits are reserved. Decoders may ignore the value of edrap_reserved_zero_12bits. edrap_num_ref_rap_pics_minus1+1 indicates the number of IRAP or EDRAP pictures that are in the same CLVS as the EDRAP picture and may be included in the active entries of the EDRAP picture's reference picture list. edrap_ref_rap_id[i] indicates the RapPicId of the i-th RAP picture that may be included in the active entries of the reference picture list of the EDRAP picture. The i-th RAP picture shall be either an IRAP picture associated with the current EDRAP picture or an EDRAP picture associated with the same IRAP picture as the current EDRAP picture.

[0073] The following are exemplary technical problems solved by the disclosed technical solution. The exemplary designs for the annotated region SEI message, the depth representation information SEI message, and the EDRAP indication SEI message have at least the following problems: For the annotated region SEI message, the value range of the ue(v) coding syntax element AR object label index (ar_object_label_idx[ar_object_idx[i]]) of the i-th annotated region object index is missing. One practical problem associated with not having a value range specified for the ue(v) coding syntax element is that the design may be uncertain how many bits can be used for the corresponding variable in the implementation. If the maximum value of the number of bits used in the implementation is not sufficient, the decoder may crash when it encounters a value larger than the maximum value allowed by the number of bits used. For the depth representation information SEI message, the descriptor (e.g., coding method) of the i-th depth nonlinear representation model (depth_nonlinear_representation_model[i]) syntax element is not specified. Without specifying the coding method, a decoder may not be able to determine how to parse the syntax elements. For the depth representation information SEI message, the value ranges of the ue(v) coded syntax elements depth_representation_type, disparity reference view identifier, depth_ref_view_id, depth nonlinear representation number-1, and depth_nonlinear_representation_model[i] are not specified. For the EDRAP indication SEI message, the semantics of the EDRAP leading pictures decodable flag syntax element are missing.

[0074] Disclosed herein are mechanisms for addressing one or more of the problems listed above. For example, the present disclosure specifies an example value range for ar_object_label_idx[ar_object_idx[i]]. Furthermore, the present disclosure specifies an example descriptor for depth_nonlinear_representation_model[i]. In addition, the present disclosure specifies example value ranges for depth_representation_type, disparity_ref_view_id, depth_nonlinear_representation_num_minus1, and depth_nonlinear_representation_model[i]. In addition, the present disclosure specifies example semantics for edrap_leading_pictures_decodable_flag.

[0075] FIG. 1 is a schematic diagram illustrating an exemplary bitstream 100. The bitstream 100 may include compressed video and associated syntax. For example, the bitstream 100 may be encoded by an encoder, transmitted across one or more networks, and decoded by a decoder for display to a user. For example, the bitstream 100 may be defined as a sequence of bits forming a representation of a sequence of access units (AUs) that form one or more coded video sequences (CVSs). An AU is a set of one or more pictures associated with a corresponding output time in a video sequence. The bitstream may take the form of a network abstraction layer (NAL) unit stream or a byte stream.

[0076] Bitstream 100 includes one or more sequence parameter sets (SPS) 113, multiple picture parameter sets (PPS) 115, multiple slices 125, annotated region (AR) SEI message 131, DRI SEI message 133, and EDRAP indication SEI message 135. SPS 113 includes sequence data related parameters common to all pictures in a coded video sequence included in bitstream 100. Parameters in SPS 113 may include picture sizing, bit depth, coding tool parameters, bit rate limits, etc. Note that while each sequence points to SPS 113, in some examples a single SPS 113 may include data for multiple sequences. PPS 115 includes parameters that apply to an entire picture. Thus, each picture in a video sequence may reference PPS 115. Note that while each picture references PPS 115, in some examples a single PPS 115 may include data for multiple pictures. For example, multiple similar pictures may be coded according to similar parameters. In such a case, a single PPS 115 may contain data for such similar pictures. The PPS 115 may indicate available coding tools, quantization parameters, offsets, etc. for slices in the corresponding picture.

[0077] Each slice includes a slice header and image data from a region in the picture. The slice header includes parameters specific to each slice. Thus, there may be one slice header for each slice in a video sequence. The slice header may include slice type information, a picture order count (POC), a reference picture list, prediction weights, tile entry points, deblocking parameters, etc. Note that in some examples, the bitstream 100 may also include a picture header, which is a syntax structure that includes parameters that apply to all slices in a single picture. For this reason, picture headers and slice headers may be used interchangeably in some contexts. For example, a particular parameter may be moved between slice headers and picture headers depending on whether such parameter is common to all slices in a picture. The image data in slice 125 includes video data encoded according to inter prediction and / or intra prediction, as well as corresponding transformed and quantized residual data. Video data from one or more slices may be coded from a picture by an encoder and decoded at a decoder to reconstruct the picture.

[0078] A slice 125 may be defined as an integer number of complete tiles or an integer number of consecutive complete coding tree unit (CTU) rows of a picture (e.g., within a tile), where the tiles or CTU rows are exclusively contained in a single NAL unit. Thus, a slice 125 is also contained in a single NAL unit. Each slice 125 is further divided into CTUs and / or coding tree blocks (CTBs). A CTU is a group of samples of a predefined size that can be partitioned by a coding tree. A CTB is a subset of a CTU and includes the luma or chroma components of the CTU. The CTU / CTB is further divided into coding blocks based on the coding tree. The coding blocks can then be encoded / decoded according to a prediction mechanism.

[0079] The bitstream 100 can include one or more SEI messages. A SEI message is a syntax structure with specified semantics that carries information that is not required by the decoding process to determine the values ​​of samples in the decoded picture. The bitstream 100 can include many different SEI messages for different functions. In this example, the bitstream includes an AR SEI message 131, a DRI SEI message 133, and an EDRAP indication SEI message 135.

[0080] The AR SEI message 131 is an SEI message that carries parameters for identifying annotated regions in one or more pictures by employing bounding boxes. The bounding boxes represent the size and location of the annotated regions and identify one or more objects contained in the annotated regions. Thus, the AR SEI message 131 includes metadata that describes regions in a picture. A decoder may use the AR SEI message 131 to determine whether and / or how to handle such regions during the display process. The AR SEI message 131 includes an ar_object_label_idx[ar_object_idx[i]] 141 syntax element. The ar_object_label_idx[ar_object_idx[i]] 141 indicates the index of the label corresponding to the i-th indexed AR object (ar_object_idx[i]-th) object. For example, the AR objects are indexed and any i-th AR object may be determined by ar_object_idx[i]. Furthermore, the AR object labels are indexed, and the label of any i-th AR object can be determined by ar_object_label_idx[i]. Thus, AR SEI ar_object_label_idx[ar_object_idx[i]] 141 obtains the index of the label of the i-th AR object.

[0081] The DRI SEI message 133 is an SEI message that carries parameters for a picture including depth and / or disparity information for rendering on a three-dimensional (3D) display. Depth is the location of a pixel / sample in 3D space. Disparity is the displacement between the locations of two features (e.g., two pixels) in an image plane. The DRI SEI message 133 includes a depth_nonlinear_representation_model[i] 142 syntax element, a depth_nonlinear_representation_num_minus1 143 syntax element, a depth_representation_type 144 syntax element, and a disparity_ref_view_id 145 syntax element. The depth_nonlinear_representation_model[i] 142 specifies each of the i piecewise linear segments for mapping the decoded luma sample values ​​(e.g., depth values) of the auxiliary picture to a scale that is uniformly quantized with respect to disparity. depth_nonlinear_representation_num_minus1(143)+2 specifies the number of piecewise linear segments for mapping depth values ​​to a uniformly quantized scale with respect to disparity. Thus, depth_nonlinear_representation_num_minus1(143)+2 specifies the number of i segments in depth_nonlinear_representation_model[i] 142. depth_representation_type 144 specifies the representation definition of the decoded luma samples of the auxiliary picture. The allowed values ​​of depth_representation_type 144 and the corresponding interpretation of each value are included in Table 1 above and / or Table Y1 below. disparity_ref_view_id 145 specifies the view identifier (ViewId) value from which the disparity value is derived. Thus, disparity_ref_view_id 145 indicates the ViewId value used as a reference when determining the disparity (e.g., displacement and / or difference between locations) for samples in the auxiliary picture.

[0082] The EDRAP indication SEI message 135 indicates the use of an EDRAP picture. An EDRAP picture is a random access picture coded by inter prediction based on one or more reference pictures. For example, an EDRAP picture may be coded by referring to a preceding EDRAP picture and / or a preceding IRAP picture. An IRAP picture may be coded by intra prediction and decoded without referring to other pictures. The EDRAP scheme may employ an external bitstream that includes a timed set of reference pictures for each of the EDRAP pictures. In this way, an EDRAP picture may be selected for random access to the main bitstream, and the reference pictures used to decode the EDRAP picture may be obtained from the external bitstream. The EDRAP indication SEI message 135 is an SEI message that indicates constraints on picture order and picture references used to ensure that a decoder can select any EDRAP picture for random access and successfully decode the selected EDRAP picture using only the corresponding reference picture (e.g., in the external bitstream). The EDRAP indication SEI message 135 includes an edrap_leading_pictures_decodable_flag 146 syntax element, which includes a value indicating whether a set of ordering constraints applies to the EDRAP picture corresponding to the EDRAP indication SEI message 135.

[0083] The presence of the EDRAP indication SEI message 135 imposes certain constraints on the EDRAP picture order in the bitstream. For example, each EDRAP picture is a trailing picture. Furthermore, each EDRAP picture has a temporal sub-layer identifier equal to zero. The temporal sub-layer divides the picture into a base layer and one or more enhancement layers. A less capable decoder can decode and display the base layer for a lower frame rate, and a more capable decoder can decode an increased number of enhancement layers to obtain a higher frame rate. Restricting the temporal sub-layer identifier to zero ensures that the EDRAP picture is in the base layer and therefore usable by all decoders. Another constraint requires that each EDRAP picture does not contain pictures in the same layer in the active entries of the reference picture list of the EDRAP picture, except for the list of referenceable pictures. The list of referenceable pictures includes the IRAP picture and / or the EDRAP picture in decoding order. Thus, this constraint restricts an EDRAP picture to refer only to the preceding IRAP and EDRAP pictures. Yet another constraint requires that any picture in the same layer as the EDRAP picture and following the EDRAP picture in both decoding order and output order does not include other pictures in the same layer and preceding the EDRAP picture in decoding order or output order in the active entries of the picture's reference picture list, except for the list of referable pictures. This constraint prevents pictures following the EDRAP picture from referencing pictures preceding the EDRAP picture. In the case of random access in an EDRAP picture, the preceding pictures are not available, and therefore referencing such pictures by a trailing picture results in an error due to the unavailability of reference pictures.

[0084] The edrap_leading_pictures_decodable_flag 146 syntax element can impose additional constraints on the EDRAP picture. The first such additional constraint specifies that any picture that is in the same layer as the EDRAP picture and follows the EDRAP picture in decoding order shall follow in output order another picture that is in the same layer as the EDRAP picture and precedes the EDRAP picture in decoding order. In some cases, the coding order and the output order are different. This allows for better compression in some cases, but requires the pictures to be reordered before display. Pictures that follow the random access point in decoding order and precede the random access point in output order are known as leading pictures. This constraint ensures that the leading pictures of an EDRAP picture are not placed before a trailing picture from a previous EDRAP picture in output order.

[0085] The second such additional constraint specifies that any picture in the same layer as the EDRAP picture, following the EDRAP picture in decoding order and preceding the EDRAP picture in output order shall not include in the active entries of the picture's reference picture list, except in the list of referenceable pictures, other pictures in the same layer as the EDRAP picture and preceding the EDRAP picture in decoding order. This constraint ensures that a leading picture only references pictures following the EDRAP picture and IRAP and / or EDRAP pictures in the list of referenceable pictures. This ensures that a leading picture can be decoded when the corresponding EDRAP picture is used for random access.

[0086] As noted above, the value ranges, descriptors, and / or semantics of ar_object_label_idx[ar_object_idx[i]] 141, depth_nonlinear_representation_model[i] 142, depth_nonlinear_representation_num_minus1 143, depth_representation_type 144, disparity_ref_view_id 145, and edrap_leading_pictures_decodable_flag 146 are not specified in some example systems. Thus, this disclosure includes such value ranges, descriptors, and / or semantics for the preceding parameters / syntax elements. This allows decoders to correctly interpret these values ​​without experiencing undefined behavior, such as glitches and / or crashes.

[0087] Note that ar_object_label_idx[ar_object_idx[i]] 141, depth_nonlinear_representation_model[i] 142, depth_nonlinear_representation_num_minus1 143, depth_representation_type 144, disparity_ref_view_id 145, and edrap_leading_pictures_decodable_flag 146 may be associated with a descriptor indicating the coding mechanism used to code the corresponding syntax element. Such descriptors may include ue(v), u(N), se(v), and u(v). ue(v) indicates that the syntax element value is coded as an unsigned integer exponential-Golomb coded syntax element with a variable number of bits, with left bit first. The exponential-Golomb coded syntax includes representing values ​​in plus-one binary and representing leading zeros as leading values ​​in minus-one format. u(N) indicates that the syntax element value is coded as an unsigned integer using N bits. se(v) indicates that the syntax element value is coded as a signed integer exponential-Golomb coded syntax element with a variable number of bits, with left bit first. u(v) indicates that the syntax element value is coded as an unsigned integer using a variable number of bits.

[0088] In order to solve the above problems and other problems, the methods summarized below are disclosed. The items should be regarded as examples to illustrate the general concept and should not be interpreted narrowly. Moreover, these items can be applied individually or in any combination.

[0089] Example 1

[0090] In one example, to solve at least one of the problems enumerated above, the value of the ar_object_label_idx[ar_object_idx[i]] 141 syntax element is specified to be in the range of N to M, inclusive, where N and M are integer values ​​and N is less than M. In one example, N=0 and M=255. In one example, the value of ar_object_label_idx[ar_object_idx[i]] 141 is specified to be in different ranges, such as 0 to 3, inclusive, 0 to 7, inclusive, 0 to 15, inclusive, 0 to 31, inclusive, 0 to 63, inclusive, etc.

[0091] Example 2

[0092] In one example, to solve at least one of the problems listed above, the depth_nonlinear_representation_model[i] 142 syntax element is specified to be ue(v) coded.

[0093] Example 3

[0094] In one example, the values ​​of depth_nonlinear_representation_model[i] 142 are specified to be in the range N to M, inclusive, such as N=0 and M=65535. In one example, the values ​​of depth_nonlinear_representation_model[i] 142 are specified to be in different ranges, such as 0 to 3, inclusive, 0 to 7, inclusive, 0 to 15, inclusive, 0 to 31, inclusive, 0 to 63, inclusive, 0 to 127, inclusive, 0 to 255, inclusive, 0 to 511, inclusive, 0 to 1023, inclusive, 0 to 2047, inclusive, 0 to 4095, inclusive, 0 to 8191, inclusive, 0 to 16383, inclusive.

[0095] Example 4

[0096] In one example, the depth_nonlinear_representation_model[i] 142 syntax element is specified to be coded using different coding methods. In one example, the depth_nonlinear_representation_model[i] 142 syntax element is specified to be u(N) coded, where N is equal to a positive integer value, such as a value in the range of 2 to 16, inclusive. In another example, the depth_nonlinear_representation_model[i] 142 syntax element is specified to be se(v) coded. In another example, the depth_nonlinear_representation_model[i] 142 syntax element is specified to be u(v) coded, where a length, in units of bits, is specified to be equal to, for example, Log2(MaxNumModes), where the variable MaxNumModes indicates the maximum number of modes, and the function Log2(x) returns the base 2 logarithm of x.

[0097] Example 5

[0098] In one example, the depth_nonlinear_representation_num_minus1 143 syntax element is specified to be coded using a coding method other than the ue(v) coding method, such as u(N), u(v), etc.

[0099] Example 6

[0100] In one example, to solve at least one of the problems enumerated above, the value of depth_representation_type 144 is specified to be in the range of N to M inclusive, where N and M are integer values ​​and N is less than M. In one example, N=0 and M=15. In one example, the value of depth_representation_type 144 is specified to be in different ranges, such as 0 to 3 inclusive, 0 to 7 inclusive, 0 to 31 inclusive, 0 to 63 inclusive, 0 to 127 inclusive, 0 to 255 inclusive, etc.

[0101] Example 7

[0102] In one example, to address at least one of the problems enumerated above, the value of depth_nonlinear_representation_num_minus1 143 is specified to be in the range of 0 to 62, inclusive. In one example, the value of depth_nonlinear_representation_num_minus 143 is specified to be in a different range, such as 0 to 6, inclusive, 0 to 14, inclusive, 0 to 30, inclusive, 0 to 126, inclusive, 0 to 254, inclusive, etc.

[0103] Example 8

[0104] In one example, to address at least one of the problems enumerated above, the value of disparity_ref_view_id 145 is specified to be in the range of 0 to 1023 inclusive. In one example, the value of disparity_ref_view_id 145 is specified to be in different ranges such as 0 to 63 inclusive, 0 to 127 inclusive, 0 to 255 inclusive, 0 to 511 inclusive, 0 to 2047 inclusive, 0 to 4095 inclusive, 0 to 8191 inclusive, 0 to 16383 inclusive, 0 to 32767 inclusive, 0 to 65535 inclusive, etc.

[0105] Example 9

[0106] In one example, to solve at least one of the problems listed above, the semantics of the edrap_leading_pictures_decodable_flag 146 syntax element are specified as follows: edrap_leading_pictures_decodable_flag 146 equal to 1 specifies that both of the following constraints apply: Any picture in the same layer that follows an EDRAP picture in decoding order shall follow in output order a picture in the same layer that precedes the EDRAP picture in decoding order. Any picture in the same layer that follows an EDRAP picture in decoding order and precedes the EDRAP picture in output order shall not include in its reference picture list active entries a picture in the same layer that precedes the EDRAP picture in decoding order, except for referenceablePictures. edrap_leading_pictures_decodable_flag 146 equal to 0 imposes no such constraint.

[0107] Next, an embodiment of the aforementioned example will be described. This embodiment can be applied to the VSEI. With respect to the VSEI specification, the most relevant parts that have been added or modified are indicated in bold underline font (only underline font in this specification (except for tables)), and some parts that have been deleted are indicated in bold italic font ([[ ]] in this specification (except for tables)). There may be some other changes that are editorial in nature and therefore not highlighted.

[0108] Exemplary annotated region SEI message semantics are as follows: The annotated region SEI message carries parameters that identify an annotated region using a bounding box that represents the size and location of the identified object.

[0109] ...

[0110] ar_object_label_idx[ar_object_idx[i]] indicates the index of the label corresponding to the object at the ar_object_idx[i] -th position. When ar_object_label_idx[ar_object_idx[i]] does not exist, its value is inferred, if possible, from the previous annotated region SEI message in the same CVS in the output order. The value of ar_object_label_idx[ar_object_idx[i]] shall be in the range of 0 to 255, inclusive. ...

[0111] Depth Representation Information SEI Message Syntax

Table 7

[0112] Exemplary depth representation information SEI message semantics are as follows. The syntax elements in the depth representation information (DRI) SEI message specify various parameters for auxiliary pictures of type AUX_DEPTH for the purpose of rendering on a 3D display such as view synthesis after processing the decoded primary and auxiliary pictures. Specifically, the depth or disparity range of the depth picture is specified. ...

[0113] depth_representation_type specifies the representation definition of the decoded lumasamples of the auxiliary picture as specified in Table Y1. In Table Y1, disparity specifies the horizontal displacement between two texture views, and the Z - value specifies the distance from the camera. The value of depth_representation_type shall be in the range of 0 to 15, inclusive. The variable maxVal is set equal to (1<<BitDepthY)-1.

Table 8

[0114] disparity_ref_view_id specifies the ViewId value from which the disparity value is derived. The value of disparity_ref_view_id shall be in the range of 0 to 1023, inclusive.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. The variables in the x column of Table Y2 are derived from the respective variables in the s, e, n and v columns of Table Y2 as follows: If the value of e is in the range 0 to 127 (excluding 0), then x is set equal to (-1)s*2e-31*(1+n÷2v). Otherwise (e is equal to 0), then x is set equal to (-1)s*2-(30+v)*n. [Table 9]

[0115] The DMin and DMax values, when present, are specified in units of the luma sample width of the coded picture whose ViewId is equal to the ViewId of the auxiliary picture. The units of the ZNear and ZFar values, when present, are the same but unspecified.

[0116] depth_nonlinear_representation_num_minus1+2 specifies the number of piecewise linear segments for mapping depth values ​​to a uniformly quantized scale with respect to disparity. The value of depth_nonlinear_representation_num_minus1 shall be in the range of 0 to 62, inclusive. depth_nonlinear_representation_model[i], for i ranging from 0 to depth_nonlinear_representation_num_minus1+2 inclusive, specifies a piecewise linear segment for mapping the decoded luma sample values ​​of the auxiliary picture to a scale that is uniformly quantized with respect to disparity. The value of depth_nonlinear_representation_model[i] shall be in the range of 0 to 65535, 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.

[0117] ...

[0118] An example of extended DRAP indication SEI message semantics is as follows: A picture associated with an extended DRAP (EDRAP) indication SEI message is referred to as an EDRAP picture. The presence of an EDRAP indication SEI message indicates that the constraints on picture order and picture referencing specified in this subclause apply. These constraints allow a decoder to properly decode an EDRAP picture and pictures that are in the same layer and that can follow it in both decoding order and output order without having to decode other pictures that are in the same layer, except for the list of pictures referenceablePictures, which contains a list of IRAP or EDRAP pictures in decoding order that are in the same CLVS and are identified by the edrap_ref_rap_id[i] syntax element.

[0119] All constraints indicated by the presence of an EDRAP indication SEI message shall apply, as follows: An EDRAP picture is a trailing picture. An EDRAP picture has a temporal sub-layer identifier equal to 0. An EDRAP picture does not contain any pictures in the same layer in the active entries of its reference picture list, except for referenceablePictures. Any pictures in the same layer that follow an EDRAP picture in both decoding order and output order do not contain any pictures in the same layer that precede the EDRAP picture in decoding order or output order in the active entries of its reference picture list, except for referenceablePictures.

[0120] [[When edrap_leading_pictures_decodable_flag is equal to 1, the following applies: Any picture in the same layer that follows the EDRAP picture in decoding order shall follow in output order any picture in the same layer that precedes the EDRAP picture in decoding order. Any picture in the same layer that follows the EDRAP picture in decoding order and precedes the EDRAP picture in output order shall not include in its reference picture list active entries any picture in the same layer that precedes the EDRAP picture in decoding order, except for referenceablePictures.]]

[0121] Any picture in the list referenceablePictures does not contain in the active entry of its reference picture list a picture that is in the same layer and is not a picture that is earlier in the list referenceablePictures. Thus, the first picture in referenceablePictures does not contain in the active entry of its reference picture list a picture from the same layer, even when it is an EDRAP picture rather than an IRAP picture.

[0122] edrap_rap_id_minus1+1 specifies the RAP picture identifier, denoted as RapPicId, of an EDRAP picture. Each IRAP or EDRAP picture is associated with a RapPicId value. The RapPicId value for an IRAP picture is inferred to be equal to 0. The RapPicId values ​​for any two EDRAP pictures associated with the same IRAP picture shall be different.

[0123] edrap_leading_pictures_decodable_flag equal to 1 specifies that both of the following constraints apply: Any picture in the same layer that follows an EDRAP picture in decoding order shall follow in output order any picture in the same layer that precedes the EDRAP picture in decoding order. Any picture in the same layer that follows an EDRAP picture in decoding order and precedes the EDRAP picture in output order shall not include in its reference picture list active entries any picture in the same layer that precedes the EDRAP picture in decoding order, except for referenceablePictures. edrap_leading_pictures_decodable_flag equal to 0 imposes no such constraint.

[0124] edrap_reserved_zero_12bits shall be equal to 0 in bitstreams conforming to this version of the specification. Other values ​​of edrap_reserved_zero_12bits are reserved. Decoders shall ignore the value of edrap_reserved_zero_12bits. edrap_num_ref_rap_pics_minus1+1 indicates the number of IRAP or EDRAP pictures that are in the same CLVS as the EDRAP picture and may be included in the active entries of the EDRAP picture's reference picture list. edrap_ref_rap_id[i] indicates the RapPicId of the i-th RAP picture that may be included in the active entries of the EDRAP picture's reference picture list. The i-th RAP picture shall be either the IRAP picture associated with the current EDRAP picture or the EDRAP picture associated with the same IRAP picture as the current EDRAP picture. ...

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

[0126] The system 4000 may include a coding component 4004 that may implement various coding or encoding methods described in this document. The coding component 4004 may reduce the average bit rate of the video from the input 4002 to the output of the coding component 4004 to generate a coded representation of the video. Thus, the coding techniques may be referred to as video compression or video transcoding techniques. The output of the coding component 4004 may be either stored or transmitted via a connected communication, as represented by component 4006. The stored or communicated bitstream (or coded) representation of the video received at the input 4002 may be used by component 4008 to generate pixel values ​​or displayable video that are sent to the display interface 4010. The process of generating user-viewable video from the bitstream representation may be referred to as video reconstruction. Additionally, although certain video processing operations are referred to as "coding" operations or tools, it will be understood that the coding tools or operations are used in an encoder, and corresponding decoding tools or operations that reverse the results of the coding are performed by a decoder.

[0127] Examples of peripheral bus interfaces or display interfaces may include universal serial bus (USB) or high definition multimedia interface (HDMI) or display port, etc. Examples of storage interfaces include serial advanced technology attachment (SATA), PCI, IDE interfaces, etc. The techniques described herein may be embodied in various electronic devices such as mobile phones, laptops, smartphones or other devices capable of performing digital data processing and / or video display.

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

[0129] 4 is a flow chart of an example method 4200 of video processing. The method 4200 includes, at step 4202, determining a value of a specified ar_object_label_idx[ar_object_idx[i]] syntax element to be in the range of N to M, where N and M are integers and N is less than M. For example, N may be 0 and M may be 3, 7, 15, 31, 63, or 255, and the range of N to M may be inclusive. In one example, the ar_object_label_idx[ar_object_idx[i]] syntax element is included in an AR SEI message.

[0130] In step 4204, a value of the depth_representation_type syntax element is determined. The depth_representation_type syntax element may be specified to be in the range A to B, where A and B may be integers, and A is less than B. For example, A may be 0 and B may be 3, 7, 15, 31, 63, 127, or 255, and the range A to B may be inclusive. In one example, the depth_representation_type syntax element is included in a DRI SEI message.

[0131] In step 4206, a value for the depth_nonlinear_representation_model[i] syntax element is determined. The depth_nonlinear_representation_model[i] syntax element is specified to be in the range C to D, where C and D may be integers, and C is less than D. For example, C may be 0 and D may be 6, 14, 30, 62, 126, or 254, and the range from C to D may be inclusive. In one example, the depth_nonlinear_representation_model[i] syntax element is included in a DRI SEI message.

[0132] In step 4208, a value for the disparity_ref_view_id syntax element is determined. The disparity_ref_view_id syntax element is specified to be in the range of E to F, where E and F may be integers, and E is less than F. For example, E may be 0 and F may be 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, or 65535, and the range of E to F may be inclusive. In one example, the disparity_ref_view_id syntax element is included in a DRI SEI message.

[0133] At step 4210, a conversion between the visual media data and a bitstream is performed based on ar_object_label_idx[ar_object_idx[i]], depth_nonlinear_representation_model[i], disparity_ref_view_id, and / or disparity_ref_view_id. When method 4200 is performed on an encoder, the conversion includes encoding the visual media data into a bitstream. When method 4200 is performed on a decoder, the conversion includes decoding the bitstream to obtain the visual media data.

[0134] It should be noted that method 4200 may be implemented in an apparatus for processing video data, such as video encoder 4400, video decoder 4500, and / or encoder 4600, comprising a processor and a non-transitory memory having instructions. In such a case, the instructions, when executed by the processor, cause the processor to perform method 4200. Furthermore, method 4200 may be executed by a non-transitory computer-readable medium comprising a computer program product for use by a video coding device. The computer program product comprises computer-executable instructions stored on the non-transitory computer-readable medium, which, when executed by the processor, cause the video coding device to perform method 4200.

[0135] 5 is a block diagram illustrating an example video coding system 4300 that may utilize techniques of this disclosure. The video coding system 4300 may include a source device 4310 and a destination device 4320. The source device 4310 generates encoded video data, which may be referred to as a video encoding device. The destination device 4320 may decode the encoded video data generated by the source device 4310, which may be referred to as a video decoding device.

[0136] The source device 4310 may include a video source 4312, a video encoder 4314, and an input / output (I / O) interface 4316. The video source 4312 may include a source, such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of such sources. The video data may include one or more pictures. The video encoder 4314 encodes the video data from the video source 4312 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 coded pictures and associated data. A coded picture is a coded representation of a picture. The associated data may include sequence parameter sets, picture parameter sets, and other syntax structures. The I / O interface 4316 may include a modulator / demodulator (modem) and / or a transmitter. The coded video data may be transmitted directly to a destination device 4320 via the I / O interface 4316 through the network 4330. The encoded video data may also be stored on a storage medium / server 4340 for access by the destination device 4320.

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

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

[0139] 6 is a block diagram illustrating an example of a video encoder 4400 that may be the video encoder 4314 in the system 4300 illustrated in FIG. 5. The video encoder 4400 may be configured to perform any or all of the techniques of this disclosure. The video encoder 4400 includes multiple functional components. The techniques described in this disclosure may be shared among various components of the video encoder 4400. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

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

[0141] In other examples, the video encoder 4400 may include more, fewer, or different functional components. In one example, the prediction unit 4402 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.

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

[0143] The partition unit 4401 may partition a picture into one or more video blocks. The video encoder 4400 and the video decoder 4500 may support a variety of video block sizes.

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

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

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

[0147] In some examples, motion estimation unit 4404 may perform unidirectional prediction for the current video block, and motion estimation unit 4404 may search reference pictures of list 0 or list 1 for a reference video block for the current video block. Motion estimation unit 4404 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 4404 may output the reference index, the prediction direction indicator, and the motion vector as motion information of the current video block. Motion compensation unit 4405 may generate a predictive video block for the current block based on the reference video block indicated by the motion information of the current video block.

[0148] In other examples, motion estimation unit 4404 may perform bidirectional prediction on the current video block, where motion estimation unit 4404 may search reference pictures in list 0 for a reference video block for the current video block and may also search reference pictures in list 1 for another reference video block for the current video block. Motion estimation unit 4404 may then generate reference indexes indicating the reference pictures in list 0 and list 1 that contain the reference video blocks, and motion vectors indicating the spatial displacement between the reference video blocks and the current video block. Motion estimation unit 4404 may output the reference index and the motion vector of the current video block as motion information of the current video block. Motion compensation unit 4405 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.

[0149] In some examples, the motion estimation unit 4404 may output a full set of motion information for the decoder's decoding process. In some examples, the motion estimation unit 4404 may not output a full set of motion information for the current video. Rather, the motion estimation unit 4404 may signal motion information of the current video block with reference to motion information of another video block. For example, the motion estimation unit 4404 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.

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

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

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

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

[0154] The residual generation unit 4407 may generate residual data for the current video block by subtracting the prediction video block(s) for 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.

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

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

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

[0158] Inverse quantization unit 4410 and inverse transform unit 4411 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 4412 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by prediction unit 4402 to generate a reconstructed video block associated with the current block, for storage in buffer 4413.

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

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

[0161] 7 is a block diagram illustrating an example of a video decoder 4500 that may be the video decoder 4324 in the system 4300 illustrated in FIG. 5. The video decoder 4500 may be configured to perform any or all of the techniques of this disclosure. In the illustrated example, the video decoder 4500 includes multiple functional components. The techniques described in this disclosure may be shared among various components of the video decoder 4500. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0162] In the depicted example, the video decoder 4500 includes an entropy decoding unit 4501, a motion compensation unit 4502, an intra prediction unit 4503, an inverse quantization unit 4504, an inverse transform unit 4505, a reconstruction unit 4506, and a buffer 4507. The video decoder 4500 may, in some examples, perform a decoding path that is generally inverse to the encoding path described with respect to the video encoder 4400.

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

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

[0165] The motion compensation unit 4502 may use the interpolation filters used by the video encoder 4400 during encoding of the video block to calculate sub-integer pixel interpolated values ​​of the reference block. The motion compensation unit 4502 may determine the interpolation filters used by the video encoder 4400 according to received syntax information and use the interpolation filters to generate the predictive block.

[0166] The motion compensation unit 4502 may use part of the syntax information to determine the size of the blocks used to encode the frame(s) and / or slice(s) of the encoded video sequence, partition information describing how each macroblock of a picture of the encoded video sequence is partitioned, a mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the encoded video sequence.

[0167] The intra prediction unit 4503 may use, for example, an intra prediction mode received in the bitstream to form a predictive block from spatially neighboring blocks. The inverse quantization unit 4504 inverse quantizes, i.e., de-quantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 4501. The inverse transform unit 4505 applies an inverse transform.

[0168] Reconstruction unit 4506 may sum the residual blocks with corresponding prediction blocks generated by motion compensation unit 4502 or intra prediction unit 4503 to form decoded blocks. Optionally, a deblocking filter may also be applied to filter the decoded blocks to remove blockiness artifacts. The decoded video blocks are then stored in a buffer 4507, which provides reference blocks for subsequent motion compensation / intra prediction, as well as generating decoded video for presentation on a display device.

[0169] FIG. 8 is a schematic diagram of an exemplary encoder 4600. The encoder 4600 is suitable for implementing the technique of VVC. The encoder 4600 includes three in-loop filters, namely, a deblocking filter (DF) 4602, a sample adaptive offset (SAO) 4604, and an adaptive loop filter (ALF) 4606. Unlike the DF 4602, which uses a predefined filter, the SAO 4604 and the ALF 4606 utilize the original samples of the current picture to reduce the mean square error between the original samples and the reconstructed samples by adding an offset and by applying a finite impulse response (FIR) filter with coded side information signaling the offset and the filter coefficients, respectively. The ALF 4606 is located at the last processing stage of each picture and can be considered as a tool that tries to catch and correct the artifacts generated in the previous stage.

[0170] The encoder 4600 further includes an intra prediction component 4608 and a motion estimation / compensation (ME / MC) component 4610 configured to receive the input video. The intra prediction component 4608 is configured to perform intra prediction, and the ME / MC component 4610 is configured to perform inter prediction utilizing a reference picture obtained from a reference picture buffer 4612. Residual blocks from the inter or intra prediction are provided to a transform (T) component 4614 and a quantization (Q) component 4616 to generate quantized residual transform coefficients, which are provided to an entropy coding component 4618. The entropy coding component 4618 entropy codes the prediction results and the quantized transform coefficients and transmits them to a video decoder (not shown). The quantization component output from the quantization component 4616 may be provided to an inverse quantization (IQ) component 4620, an inverse transform component 4622, and a reconstruction (REC) component 4624. The REC component 4624 can output images to the DF 4602, the SAO 4604, and the ALF 4606 for filtering before the images are stored in the reference picture buffer 4612.

[0171] A list of preferred solutions for some examples is provided below.

[0172] The following solutions provide examples of the techniques described herein.

[0173] 1. A method of media data processing (e.g., method 4200 shown in FIG. 4), comprising performing a conversion between a video and a video bitstream according to rules, the rules specifying a range of values ​​for one or more syntax fields indicating an index to a label for a corresponding object in an annotated region of the video, the range being between N and M, where N and M are integers.

[0174] 2. The method according to solution 1, wherein N=0 and M=255.

[0175] 3. The method according to solution 1, wherein N=0 and M=3.

[0176] The following solutions illustrate exemplary implementations of the techniques described in the previous section (eg, item 2).

[0177] 4. A method for processing video data, comprising a step of performing a conversion between video and a video bitstream according to rules, the rules specifying that a type of coding used to code a syntax element indicating the number of nonlinear segments used in a piecewise nonlinear mapping of depth information for an object in the video is coded in the bitstream.

[0178] 5. The method according to solution 1, wherein the rules specify that the syntax element is coded as a variable unsigned integer zeroth exponential-Golomb coded syntax element with left bit-first coding.

[0179] 6. The method of solution 1, wherein the rule specifies that the syntax element is u(N')-coded, where N' is a positive integer.

[0180] 7. The method according to solution 1, wherein the rules specify that the syntax element is coded as a signed integer zeroth order exponential-Golomb coded syntax element with left bit-first coding.

[0181] 8. A method according to any of Solutions 1 to 4, wherein the rule specifies that the value of the syntax element is constrained to be within the range of N and M, where N and M are integers.

[0182] 9. The method according to solution 5, wherein N=0 and M=65535.

[0183] 10. The method according to solution 2, wherein N=0 and M=3.

[0184] The following solutions illustrate exemplary implementations of the techniques described in the previous section (eg, item 3).

[0185] 11. A method for processing video data, comprising: performing a conversion between video and a video bitstream according to rules, the rules specifying constraints on syntax elements in a supplemental enhancement information syntax structure that represent depth information of one or more objects in the video.

[0186] 12. The method of solution 11, wherein the syntax element includes a depth expression type and the rules specify that the value of the syntax element is constrained to be in the range N to M, where N and M are integers.

[0187] 13. The method according to solution 11, wherein the syntax element indicates the number of nonlinear mapping models for the depth information, and the rules specify that the syntax element is in the range of 0 to M, where M is an integer.

[0188] 14. The method according to solution 11, wherein the syntax element indicates an identifier of a disparity reference view, and the rules specify that the value of the syntax element is between 0 and M, where M is an integer.

[0189] The following solutions illustrate exemplary implementations of the techniques described in the previous sections (eg, item 4).

[0190] 15. A method for processing video data, comprising: performing a conversion between video and a video bitstream in accordance with rules, the rules specifying that a value of a flag indicating a picture that is an enhanced dependent random access point controls (1) a first ordering constraint on pictures that are in the same layer as the picture and that follow the picture in decoding order and output order, and (2) a second ordering constraint on pictures that are in the same layer as the picture, that follow the picture in decoding order, and that precede the picture in output order.

[0191] 16. The method according to solution 15, with value equal to 1.

[0192] 17. The method according to any of solutions 1 to 16, wherein the conversion includes generating a bitstream from the video.

[0193] 18. The method according to any of solutions 1 to 16, wherein the conversion includes generating a video from a bitstream.

[0194] 19. A video decoding device comprising a processor configured to implement the methods described in one or more of solutions 1 to 18.

[0195] 20. A video encoding device comprising a processor configured to implement the methods described in one or more of solutions 1 to 18.

[0196] 21. A computer program product storing computer code, which when executed by a processor causes the processor to perform a method according to any one of solutions 1 to 18.

[0197] 22. A method of video processing comprising the steps of generating a bitstream according to the method described in any one or more of solutions 1 to 8, and storing the bitstream on a computer-readable medium.

[0198] 23. Any method, apparatus or system described herein.

[0199] As used herein, the term "video processing" may refer to video encoding, video decoding, video compression, or video restoration. For example, a video compression algorithm may be applied during conversion from a pixel representation of a video to a corresponding bitstream representation or vice versa. The bitstream representation of a current video block may correspond to bits that are either co-located in the bitstream or spread to different locations in the bitstream, for example, as defined by a syntax. For example, a macroblock may be encoded in terms of a transformed coded error residual value, and also using bits in a header and other fields in the bitstream. Furthermore, during conversion, a decoder may parse the bitstream with the knowledge that some fields may be present or absent based on a decision, as described in the above solution. Similarly, an encoder may determine that a particular syntax field should or should not be included, and accordingly generate a coded representation by including the syntax field or excluding it from the coded representation.

[0200] The disclosed and other solutions, examples, embodiments, modules, and functional operations described in this document may be implemented in digital electronic circuitry, or computer software, firmware, or hardware, or one or more combinations thereof, including the structures disclosed in this document and their structural equivalents. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by or for controlling the operation of a data processing apparatus. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition that provides a machine-readable propagated signal, or one or more combinations thereof. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. An apparatus may include, in addition to hardware, code that creates an execution environment for the computer program in question, 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, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to an appropriate receiver device.

[0201] 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 can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program 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 multiple cooperating files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer, or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

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

[0203] Processors suitable for executing a computer program include, by way of example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or be operatively coupled to receive data from or transfer data to or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-semiconductor memory media and memory devices, including, by way of example, volatile memory devices, such as erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and compact disk read-only memories (CDROMs) and digital versatile disk read-only memories (CDROMs) disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0204] Although this patent document contains many details, these should not be interpreted as limitations on any subject matter or the scope of what may be claimed, but rather as descriptions of features that may be specific to certain embodiments of a particular technique. Certain features described in this patent document in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination, and may even be initially claimed as such, one or more features from a claimed combination may, in some cases, be deleted from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0205] Similarly, although operations are shown in the figures in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown, or in sequential order, or that all of the illustrated operations be performed, to achieve desired results. Further, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0206] Only some implementations and examples are described; other implementations, extensions, and variations may be made based on what is described and shown in this patent document.

[0207] A first component is directly coupled to a second component when there are no intervening components, other than a line, trace, or another medium between the first and second components. A first component is indirectly coupled to a second component when there are intervening components, other than a line, trace, or another medium, between the first and second components. The term "coupled" and variations thereof include both directly coupled and indirectly coupled. Use of the term "about" means a range that includes ±10% of the subsequent number, unless otherwise specified.

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

[0209] In addition, the techniques, systems, subsystems, and methods described and illustrated in various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items illustrated or discussed as being coupled may be directly connected, or may be indirectly coupled or in communication through some interface, device, or intermediate component, whether electrical, mechanical, or otherwise. Other examples of changes, substitutions, and alterations will be ascertainable by one of ordinary skill in the art and may be made without departing from the spirit and scope disclosed herein.

Claims

1. 1. A method for processing video data, comprising the steps of: performing a conversion between a video and a bitstream of said video according to a rule; The rule specifies that a value of a first syntax element in a Depth Representation Information (DRI) Supplemental Enhancement Information (SEI) message is in the range of 0 to 15, inclusive; the first syntax element in the DRI SEI message specifies a representation definition of decoded luma samples of an auxiliary picture. method.

2. a second syntax element is included in the DRI SEI message when the value of the first syntax element is equal to 3; The second syntax element specifies a number of piecewise linear segments for mapping depth values ​​to a uniformly quantized scale with respect to disparity. The method of claim 1.

3. The method of claim 2 , wherein the rules specify that the value of the second syntax element in the DRI SEI message is in the range of 0 to 62, inclusive.

4. 2. The method of claim 1 , wherein the rule specifies that a third syntax element indicating a view identifier from which a disparity value is derived is included in the DRI SEI message when a value of a fourth syntax element indicates that a syntax element specifying a minimum disparity value is present in a DRI syntax structure or a value of a fifth syntax element indicates that a syntax element specifying a maximum disparity value is present in the DRI syntax structure.

5. The method of claim 4 , wherein a value of the third syntax element in the DRI SEI message is in the range of 0 to 1023, inclusive.

6. The method of claim 4 , wherein the third syntax element is useful for the values ​​of the first syntax element equal to 1 and 3.

7. The rule specifies that the value of the sixth syntax element in an annotated region (AR) SEI message is in the range of N to M, inclusive, where N and M are integers and N is less than M; The sixth syntax element in the AR SEI message indicates an index of a label corresponding to the i-th AR object index. The method of claim 1.

8. 8. The method of claim 7, wherein N=0 and M=255.

9. The method of claim 2 , wherein the first syntax element and the second syntax element are exponential-Golomb coded using unsigned integers.

10. The method of claim 4 , wherein the third syntax element is exponential-Golomb coded using unsigned integers.

11. The method of claim 7 , wherein the sixth syntax element is exponential-Golomb coded using unsigned integers.

12. The method of claim 1 , wherein the conversion comprises encoding the video into the bitstream.

13. The method of claim 1 , wherein the converting comprises decoding the video from the bitstream.

14. 1. An apparatus for processing video data, comprising: a processor; and a non-transitory memory having instructions that, when executed by the processor, cause the processor to: performing a conversion between a video and a bitstream of said video according to a rule; The rule specifies that a value of a first syntax element in a Depth Representation Information (DRI) Supplemental Enhancement Information (SEI) message is in the range of 0 to 15, inclusive; the first syntax element in the DRI SEI message specifies a representation definition of decoded luma samples of an auxiliary picture. Device.

15. A non-transitory computer readable storage medium storing instructions, the instructions causing a processor to: performing a conversion between a video and a bitstream of said video according to a rule; The rule specifies that a value of a first syntax element in a Depth Representation Information (DRI) Supplemental Enhancement Information (SEI) message is in the range of 0 to 15, inclusive; the first syntax element in the DRI SEI message specifies a representation definition of decoded luma samples of an auxiliary picture. A non-transitory computer-readable storage medium.

16. 1. A method for storing a video bitstream, comprising: generating the bitstream of the video according to a rule; storing the bitstream on a non-transitory computer-readable recording medium; Including, The rule specifies that a value of a first syntax element in a Depth Representation Information (DRI) Supplemental Enhancement Information (SEI) message is in the range of 0 to 15, inclusive; the first syntax element in the DRI SEI message specifies a representation definition of decoded luma samples of an auxiliary picture. method.

Citation Information

Cited By

  • Enhanced signaling of supplemental enhancement information

    US12501052B2

  • Enhanced signaling of extended dependent random-access point supplemental enhancement information

    US12726630B2