Signaling of stepwise decoding refresh and reference picture lists
Patent Information
- Application Number
- CN202180036743.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-05-21
- Filing Date
- 2021-05-20
- Publication Date
- 2026-10-20
- Estimated Expiration
- 2041-05-20
Smart Images

Figure CN115699760B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This is the national phase of International Patent Application No. PCT / US2021 / 033351, filed May 20, 2021, claiming priority and benefit to U.S. Provisional Patent Application No. 63 / 028,150, filed May 21, 2020. The entire disclosure of the above application is incorporated herein by reference. Technical Field
[0003] This patent document relates to image and video encoding and decoding. Background Technology
[0004] Digital video accounts for the largest share of bandwidth usage on the internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video is expected to continue to grow. Summary of the Invention
[0005] This document discloses techniques that can be used by video encoders and decoders to perform video encoding or decoding.
[0006] In one example aspect, a method for processing video data is disclosed. The method includes performing a conversion between a video containing video images including stripes and a bitstream of video, according to a rule. The rule specifies that, due to the satisfaction of a condition, the default value of a syntax element specifying the number of entries in a reference picture list (RPL) syntax structure associated with a reference picture list (RPL) index is equal to 0, wherein the condition is satisfied if: (1) the video image is a momentarily decoded refresh image; (2) a first syntax flag specifies that the RPL syntax element does not exist in the stripe header of the stripe; and (3) a second syntax flag specifies that the RPL information does not exist in the picture header of the video image.
[0007] In another example aspect, a method for processing video data is disclosed. This method includes performing a conversion between video frames and the video bitstream according to a rule. The rule specifies that the value of a first syntax flag is determined based on the use of inter-layer prediction for the conversion, the first syntax flag indicating the presence of a Reference Picture List (RPL) syntax element in the strip header of a video frame strip.
[0008] In another example aspect, a method for processing video data is disclosed. The method includes performing a conversion between video frames and the bitstream of a video according to rules. These rules specify constraints related to: (1) whether the video frames are instantaneously decoded refresh frames; (2) whether a Reference Picture List (RPL) syntax element exists in the stripe header of the video frame's stripes; (3) whether each frame in the picture parameter set referencing the video frame has more than one Network Abstraction Layer (NET) unit, and the values of the unit types of these NETs are not identical; and (4) whether RPL information exists in the picture header of the video frame.
[0009] In another example aspect, a method for processing video data is disclosed. This method includes performing a conversion between video frames and the bitstream of the video according to rules. These rules specify constraints related to: (1) whether inter-layer prediction is used for the layer and (2) whether entries in the reference picture list syntax structure are inter-layer reference picture (ILRP) entries.
[0010] In another example aspect, a method for processing video data is disclosed. This method includes performing a conversion between video images and the video bitstream according to a rule. The rule specifies a variable that infers the index of a reference image list syntax structure, where the number of reference image list syntax structures in a first list of sequence parameter sets is one, and a first reference image list of video images is derived based on the reference image list syntax structure of the first list.
[0011] In another example aspect, a method for processing video data is disclosed. This method includes performing a conversion between the current image of the video and the video bitstream according to a rule. The rule specifies that an image is allowed to have a Progressive Decoding Refresh (GDR) type in response to an image being referenced by an Interlayer Reference Picture (ILRP) entry in the reference picture list of the current image's stripes, and specifies that the syntax element for the recovery point of the image in the output order is 0.
[0012] In another example aspect, a method for processing video data is disclosed. This method includes performing a conversion between a video comprising a current image and a bitstream of the video, according to a rule. The rule specifies that, in response to the current image being the starting image of a codec-decoder layer video sequence, each interlayer reference picture (ILRP) entry in the reference picture list of the current image is marked for long-term reference.
[0013] In another example aspect, a method for processing video data is disclosed. This method includes performing a conversion between video and a video bitstream according to a rule. This rule specifies that a first syntax flag in the bitstream indicates whether a specified inter-layer reference picture (ILRP) is used for inter-frame prediction of any codec picture in the codec layer video sequence. This first syntax flag specifies whether a reference picture list syntax element exists in the strip header of an instantaneous decode refresh (IDR) picture.
[0014] In another example, a video processing method is disclosed. The method includes performing a conversion between a video comprising one or more video layers including one or more video images and a codec representation of the video, wherein the codec representation conforms to a format rule, wherein the format rule specifies a first value of a first syntax element indicating whether inter-layer reference images are used for the conversion, and a second value of a second syntax element indicating whether a list of reference images is included in the codec representation, or the presence of such reference images.
[0015] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video layers including one or more video images and a codec representation of the video, wherein the codec representation conforms to a format rule specifying that, in cases where a syntax element indicating a list of reference images is not included in the codec representation and where mixing of network abstraction layer units is permitted in the codec representation and the list of reference images syntax element is not included in the image header, the use of transient decoder reference image type network abstraction layer units will be disabled in the codec representation.
[0016] In another example, another video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video layers including one or more video pictures and a codec representation of the video, wherein the codec representation conforms to a format rule specifying the following constraints: (a) the value of a first syntax element indicating an independent layer activation flag for a given layer id in the video parameter set controls the value of a second syntax element indicating activation on an inter-layer reference picture, or (b) the value of a first syntax element indicating the number of reference picture lists in the sequence parameter set controls the value of a second syntax element indicating the reference picture table used for the conversion of the current video unit.
[0017] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video layers including one or more video images and a codec representation of the video, wherein the conversion is performed according to a rule specifying that interlayer images in a reference list used for the current image are considered long-term reference images if the current image is the starting image of a codec-layered video sequence.
[0018] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video layers including one or more video images and a codec representation of the video, wherein the codec representation conforms to a format rule specifying the presence of a first field indicating the presence of a reference image list information prior to a second field that is conditionally signaled to indicate the presence of an inter-layer image according to a first field.
[0019] In yet another example, a video encoder apparatus is disclosed. The video encoder includes a processor configured to implement the methods described above.
[0020] In yet another example, a video decoder apparatus is disclosed. The video decoder includes a processor configured to implement the methods described above.
[0021] In yet another example, a computer-readable medium on which code is stored is disclosed. This code embodies one of the methods described herein in the form of processor-executable code.
[0022] These and other features are described throughout this document. Attached Figure Description
[0023] Figure 1 This is a block diagram illustrating a video encoding / decoding system according to some embodiments of the present disclosure.
[0024] Figure 2 This is a block diagram of an example hardware platform used for video processing.
[0025] Figure 3 This is a flowchart of an example method for video processing.
[0026] Figure 4 This is a block diagram illustrating an example video codec system.
[0027] Figure 5 This is a block diagram illustrating an encoder according to some embodiments of the present disclosure.
[0028] Figure 6 This is a block diagram illustrating a decoder according to some embodiments of the present disclosure.
[0029] Figure 7 This is a flowchart representation of a method for video processing according to one or more embodiments of the present technology.
[0030] Figure 8 This is a flowchart representation of another method for video processing according to one or more embodiments of the present technology.
[0031] Figure 9This is a flowchart representation of another method for video processing according to one or more embodiments of the present technology.
[0032] Figure 10 This is a flowchart representation of another method for video processing according to one or more embodiments of the present technology.
[0033] Figure 11 This is a flowchart representation of another method for video processing according to one or more embodiments of the present technology.
[0034] Figure 12 This is a flowchart representation of another method for video processing according to one or more embodiments of the present technology.
[0035] Figure 13 This is a flowchart representation of another method for video processing according to one or more embodiments of the present technology.
[0036] Figure 14 This is a flowchart representation of yet another method for video processing according to one or more embodiments of the present technology. Detailed Implementation
[0037] The use of section headings in this document is for ease of understanding and does not imply that the technologies and embodiments disclosed in each section are applicable only to that section. Furthermore, the use of H.266 terminology in some descriptions is merely for ease of understanding and not intended to limit the scope of the disclosed technologies. Therefore, the technologies described herein are also applicable to other video codec protocols and designs.
[0038] 1. Overview
[0039] This patent document relates to video codec technology. Specifically, it concerns some improvements to the design of a list of reference images. These ideas can be applied, alone or in various combinations, to any video codec standard or non-standard video codec that supports multi-layer video codecs, such as the Multi-Functional Video Codec (VVC) currently under development.
[0040] 2. Abbreviation
[0041] APS Adaptive Parameter Set
[0042] AU Access Unit
[0043] AUD Access Unit Separator
[0044] AVC Advanced Video Codec
[0045] CLVS video sequence via encoder / decoder layer
[0046] CLVSS CLVS start
[0047] CPB Encoder-Decoder Image Buffer
[0048] CRA Clean Random Access
[0049] CTU (Codec Tree Unit)
[0050] CVS codec video sequence
[0051] DCI decoding capability information
[0052] DPB Decoding Image Buffer
[0053] EOB bitstream end
[0054] EOS sequence ends
[0055] GDR Gradual Decoding and Refresh
[0056] HEVC High-Efficiency Video Encoding and Decoding
[0057] HRD Assumption Reference Decoder
[0058] IDR Instant Decoding and Refresh
[0059] Interlayer prediction in ILP
[0060] ILRP interlayer reference image
[0061] JEM Joint Exploration Model
[0062] LTRP Long-Term Reference Image
[0063] MCTS Motion Restraint Piece Set
[0064] NAL Network Abstraction Layer
[0065] OLS Output Layer Set
[0066] PH image header
[0067] PPS Image Parameter Set
[0068] PTL profiles, hierarchies, and levels
[0069] PU Image Unit
[0070] RAP Random Access Point
[0071] RBSP raw byte sequence payload
[0072] SH strip header
[0073] SEI Supplemental Enhancement Information
[0074] SPS Sequence Parameter Set
[0075] STRP Short-Term Reference Image
[0076] SVC Scalable Video Codec
[0077] VCL (Video Codec Layer)
[0078] VPS Video Parameter Set
[0079] VTM VVC Test Model
[0080] VUI Video Availability Information
[0081] VVC Multi-Functional Video Encoding and Decoding
[0082] 3. Preliminary Discussion
[0083] Video codec standards have primarily evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, while ISO / IEC produced MPEG-1 and MPEG-4 Vision. These two organizations jointly developed the H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Codec (AVC) and H.265 / HEVC standards. Since H.262, video codec standards have been based on a hybrid video codec architecture, utilizing time prediction plus transform coding. To explore future video codec technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established in 2015 by VCEG and MPEG. Since then, JVET has adopted many new methods and applied them to reference software called the Joint Exploration Model (JEM). JVET meetings are held quarterly, and the goal of new codec standards is to reduce the bitrate by 50% compared to HEVC. At the JVET meeting in April 2018, the new video codec standard was officially named Universal Video Codec (VVC), and the first version of the VVC Test Model (VTM) was released at that time. Due to continuous efforts to promote VVC standardization, new codec technologies are adopted into the VVC standard at each JVET meeting. The VVC working draft and the VTM test model are subsequently updated after each meeting. The current goal of the VVC project is to achieve Technical Completion Standard (FDIS) by the July 2020 meeting.
[0084] 3.1. Reference Image Management and Reference Image List (RPL)
[0085] Reference picture management is a core function required by any video codec scheme that uses inter-frame prediction. It manages the storage and removal of reference pictures in the decoded picture buffer (DPB) and places reference pictures into the RPL in their correct order.
[0086] HEVC's reference picture management, including the marking and removal of reference pictures from the decoded picture buffer (DPB) and the construction of the reference picture list (RPLC), differs from AVC's reference picture management. Instead of AVC's reference picture marking mechanism based on a sliding window and adaptive memory management control operation (MMCO), HEVC specifies a reference picture management and marking mechanism based on a so-called reference picture set (RPS), and therefore RPLC is based on the RPS mechanism. An RPS consists of a set of reference pictures associated with a picture. This set of pictures comprises all reference pictures that precede the associated picture in decoding order, and can be used for inter-frame prediction of the associated picture or any picture after the associated picture in decoding order. The reference picture set consists of five reference picture lists. The first three lists contain all reference pictures that can be used in inter-frame prediction of the current picture and can also be used in inter-frame prediction of one or more pictures after the current picture in decoding order. The other two lists contain all reference pictures that are not used in inter-frame prediction of the current picture but can be used in inter-frame prediction of one or more pictures after the current picture in decoding order. RPS provides "intra-frame codec" signaling for the DPB state, instead of the "inter-frame codec" signaling in AVC, primarily to improve error recovery capabilities. The RPLC procedure in HEVC is based on RPS, notifying the index of the RPS subset used for each reference index via signaling; this procedure is simpler than the RPLC procedure in AVC.
[0087] Reference picture management in VVC is more similar to HEVC than AVC, but simpler and more robust. Two Reference Picture Sets (RPLs) (List 0 and List 1) are derived in these standards, but they are not based on the reference picture set concept used in HEVC or the automatic sliding window procedure used in AVC; instead, they are signaled more directly. For RPLs, reference pictures are listed as active and inactive entries, and only active entries are used as reference indices during inter-frame prediction of the current picture's CTU. Inactive entries indicate other pictures to be kept in the DPB for reference by other pictures arriving later in the bitstream.
[0088] 3.2. Random Access and its Support in HEVC and VVC
[0089] Random access refers to starting access and decoding of a bitstream from the first image in the decoding order that is not part of the bitstream. To support tuning and channel switching in broadcast / multicast and multi-party video conferencing, searching in local playback and streaming, and stream adaptation in streaming, bitstreams need to include frequent random access points, which are typically intra-frame codec images, but can also be inter-frame codec images (e.g., in the case of progressive decoding refresh).
[0090] HEVC includes signaling notification of Intra-Frame Random Access Point (IRAP) pictures in the NAL unit header via NAL unit type. Three types of IRAP pictures are supported: Instantaneous Decoder Refresh (IDR), Clean Random Access (CRA), and Broken Link Access (BLA) pictures. IDR pictures constrain the inter-picture prediction structure to not reference any pictures preceding the current group of pictures (GOP), and are often referred to as Closed GOP random access points. CRA pictures are less restrictive by allowing some pictures to reference pictures preceding the current GOP; in the case of random access, all pictures are discarded. CRA pictures are often referred to as Open-GOP random access points. BLA pictures are typically derived from the concatenation of two bitstreams or a portion thereof at the CRA picture level, for example, during stream switching. To better utilize IRAP pictures in the system, a total of six different NAL units are defined to signal the properties of IRAP pictures. These NAL units can be used to better match the stream access point types defined in the ISO Basic Media File Format (ISOBMFF), which are used for random access support in Dynamic Adaptive Streaming over HTTP (DASH).
[0091] VVC supports three types of IRAP pictures, two types of IDR pictures (one type with or without an associated RADL picture), and one type of CRA picture. These are essentially the same as HEVC. The BLA picture type from HEVC is not included in VVC, primarily for two reasons: i) the basic functionality of a BLA picture can be achieved by adding a sequence end NAL unit to a CRA picture, the presence of which indicates that a new CVS begins in a single-layer bitstream. ii) during VVC development, it was desirable to specify fewer NAL unit types than in HEVC, as indicated by using five bits instead of six bits in the type field of the NAL unit header.
[0092] Another key difference between VVC and HEVC in terms of random access support is that VVC supports GDR in a more canonical way. In GDR, bitstream decoding can start from an inter-frame encoded picture; although the entire picture region cannot be decoded correctly at the beginning, it will be correctly decoded after several pictures. AVC and HEVC also support GDR, using Recovery Point (SEI) messages to signal the GDR random access point and recovery point. In VVC, a new NAL unit type is specified for the indication of GDR pictures, and the recovery point is signaled in the picture header syntax structure. CVS and bitstreams are allowed to start from GDR pictures. This means that an entire bitstream can contain only inter-frame encoded pictures without any single intra-frame encoded pictures. The main benefit of specifying GDR support in this way is providing consistent behavior for GDR. GDR enables encoders to smooth the bitrate of the bitstream by distributing intra-frame encoded stripes or blocks across multiple images instead of intra-frame encoding and decoding the entire image, thus achieving a significant reduction in end-to-end latency. This is considered more important than ever today in the context of the growing popularity of ultra-low latency applications such as wireless displays, online games, and drone-based applications.
[0093] Another feature related to GDR in VVC is virtual boundary signaling notification. The boundary between the refreshed area (i.e., the correctly decoded area) and the unrefreshed area at the GDR image and its recovery point can be signaled as a virtual boundary. When signaled, in-loop filtering across the boundary is not applied, thus preventing decoding mismatch of some samples at or near the boundary. This can be useful when the application decides to display the correctly decoded area during the GDR process.
[0094] IRAP images and GDR images can be collectively referred to as Random Access Point (RAP) images.
[0095] 3.3. Parameter Set
[0096] AVC, HEVC, and VVC specify parameter sets. Parameter set types include SPS, PPS, APS, and VPS. SPS and PPS are supported in all of AVC, HEVC, and VVC. VPS was introduced with HEVC and is included in both HEVC and VVC. APS is not included in AVC or HEVC, but is included in the latest VVC draft text.
[0097] SPS is designed to carry sequence-level header information, while PPS is designed to carry infrequently changing image-level header information. Using SPS and PPS, it's unnecessary to repeat infrequently changing information for each sequence or image, thus avoiding redundant signaling. Furthermore, using SPS and PPS enables out-of-band transmission of critical header information, thereby not only avoiding redundant transmission but also improving error recovery capabilities.
[0098] The purpose of introducing a VPS is to carry sequence-level header information that is common to all layers in a multi-layer bitstream.
[0099] The APS was introduced to carry image-level or strip-level information that requires a considerable number of bits for encoding and decoding, can be shared by multiple images, and can have many different variations within a sequence.
[0100] 3.4. Scalable Video Codec (SVC) in General and VVC
[0101] Scalable video codec (SVC, sometimes also called scalability in video codec) refers to video codec using a base layer (BL) (sometimes called a reference layer (RL)) and one or more scalable enhancement layers (EL). In SVC, the base layer can carry video data with a basic quality level. One or more enhancement layers can carry additional video data to support, for example, higher spatial, temporal, and / or signal-to-noise ratio (SNR) levels. Enhancement layers can be defined relative to previously encoded layers. For example, the bottom layer can be used as a BL, while the top layer can be used as an EL. Intermediate layers can be used as ELs or RLs, or both. For example, an intermediate layer (e.g., a layer that is neither the lowest nor the highest layer) can be an EL used for layers below the intermediate layer, such as the base layer or any intermediate enhancement layer, while also serving as an RL for one or more enhancement layers above the intermediate layer. Similarly, in the multi-view or 3D extension of the HEVC standard, there can be multiple views, and information from one view can be used to codec (e.g., encode or decode) information from another view (e.g., motion estimation, motion vector prediction, and / or other redundancy).
[0102] In SVC, parameters used by the encoder or decoder are grouped into parameter sets based on their available codec level (e.g., video level, sequence level, picture level, stripe level, etc.). For example, parameters that can be used by one or more codec video sequences at different layers in a bitstream can be included in the Video Parameter Set (VPS), and parameters that can be used by one or more pictures in a codec video sequence can be included in the Sequence Parameter Set (SPS). Similarly, parameters used by one or more stripes in a picture can be included in the Picture Parameter Set (PPS), and other parameters specific to a single strip can be included in the stripe header. Likewise, indications of which parameter set(s) a particular layer uses at a given time can be provided at various codec levels.
[0103] Because VVC supports Reference Picture Resampling (RPR), support for bitstreams containing multiple layers (e.g., two layers with SD and HD resolutions in VVC) can be designed without requiring any additional signal processing level codec tools, as the upsampling required for spatial scalability support can be achieved using only RPR upsampling filters. However, scalability support requires advanced syntax changes (compared to no scalability support). Scalability support was specified in VVC version 1. Unlike scalability support in any earlier video codec standards (including extensions to AVC and HEVC), VVC scalability was designed to be as friendly as possible to single-layer decoder designs. The decoding capability of multi-layer bitstreams is specified as if the bitstream contained only a single layer. For example, decoding capabilities (such as DPB size) are specified independently of the number of layers in the bitstream to be decoded. Essentially, decoders designed for single-layer bitstreams do not require many changes to decode multi-layer bitstreams. Compared to the multi-layer extension designs of AVC and HEVC, the HLS aspect is significantly simplified at the expense of some flexibility. For example, IRAP AU requires a picture of every layer present in CVS.
[0104] 4. The technical problem solved by the disclosed technical solution
[0105] The existing design of the reference image list in the latest VVC documentation (JVET-R2001-vA / v10) has the following issues:
[0106] 1) The flag `sps_idr_rpl_present_flag` is designed for single-layer bitstreams to merge IDR and non-IDR images without requiring changes to the SH. In a multi-layer context, it makes no sense to set `sps_idr_rpl_present_flag` to 0 when `sps_inter_layer_ref_pics_present_flag` is 1, as this would disable IDR stripes in the enhancement layer (EL) image (i.e., stripes where `nal_unit_type` equals `IDR_N_LP` or `IDR_W_RADL`) to include RPL, and thus disable IDR stripes in the EL image that would use inter-layer prediction (ILP) encoding / decoding, while ILP in IRAP images typically contributes the most to the encoding / decoding gain provided by scalability.
[0107] 2) For a picture where pps_mixed_nalus_in_pic_flag is equal to 1, pps_rpl_info_in_ph_flag is equal to 0, and there is at least one VCL NAL unit where nal_unit_type is equal to IDR_W_RADL or IDR_N_LP, the value of sps_idr_rpl_present_flag must be equal to 1, so that the IDR stripe in the picture will have the RPL notified by the signaling in SH. Otherwise, the RPL derived for the IDR stripe in the picture will be empty, while the RPL derived for the non-IDR stripe in the picture will not be empty.
[0108] 3) When `vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]` equals 0, if `sps_inter_layer_ref_pics_present_flag` equals 0, then a non-independent layer whose `nuh_layer_id` is equal to that of the SPS would have to reference an SPS with a lower `nuh_layer_id`. However, while this is possible, there is absolutely no reason to have an SPS with such a `nuh_layer_id` value in this case. Therefore, it makes sense to require `sps_inter_layer_ref_pics_present_flag` to be equal to 1 when `vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]` equals 0.
[0109] 4) When sps_num_ref_pic_lists[0] equals 1 and rpl_sps_flag[0] equals 1, the inference of rpl_idx[0] is missing when needed.
[0110] 5) Clause 8.3.2 of the latest VVC text (refer to the decoding process for constructing the picture list) includes specifications for default values of RplsIdx[i], num_ref_entries[i][RplsIdx[i]], and NumRefIdxActive[i] for stripes where sps_idr_rpl_present_flag is equal to 0 and has a nal_unit_type equal to IDR_W_RADL or IDR_N_LP, because these values will be used when RPL is empty for these stripes. However, when pps_rpl_info_in_ph_flag is equal to 1, PH includes RPL, so there is no need to specify default values for the above variables and syntax elements when pps_rpl_info_in_ph_flag is equal to 1. In fact, when pps_rpl_info_in_ph_flag is equal to 1, RPL may not be empty, so this specification of default values may be incorrect.
[0111] 6) Clause 8.3.2 of the latest VVC text (refer to the decoding process of the image list structure) includes the following constraints:
[0112] - The image referenced by each ILRP entry in RefPicList[0] or RefPicList[1] of the current image strip should exist in the DPB, whose nuh_layer_id refPicLayerId should be less than the nuh_layer_id of the current image, and should be an IRAP image or its TemporalId should be less than or equal to Max(0,vps_Max_tid_il_ref_pics_plus1[currLayerIdx][refLayerIdx]-1), where currLayerIdx and refLayerIdx are equal to GeneralLayerIdx[nuh_layer_id] and GeneralLayerIdx[refpicLayerId], respectively.
[0113] However, similar to IRAP images, GDR images with ph_recovery_poc_cnt equal to 0 should also be considered in the constraints.
[0114] 7) During the decoding process of reference image tags, as specified in Clause 8.3.3 of the latest VVC text, the interlayer reference image (if any) referenced by the CLVSS image is not marked as "for long-term reference". This will cause problems in the decoding process because it will trigger the application of some POC-based scaling, which may result in a division-by-zero operation being called because the POC value of IRLP is the same as the current image.
[0115] 5. Examples of technical solutions and implementation methods
[0116] To address the aforementioned and other issues, the following summarized methods are disclosed. These items should be considered as examples for explaining general concepts and should not be interpreted narrowly. Furthermore, these items can be applied individually or in combination in any way.
[0117] 1) To resolve issue 1, conditionally signal sps_idr_rpl_present_flag based on sps_inter_layer_ref_pics_present_flag.
[0118] a. In one example, it is specified that when sps_inter_layer_ref_pics_present_flag is equal to 1, sps_idr_rpl_present_flag is skipped and its value is inferred to be equal to 1.
[0119] i. Alternatively, when vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] equals 0, the value of sps_idr_rpl_present_flag is required to be equal to 1.
[0120] b. Alternatively, instead of conditionally signaling sps_idr_rpl_present_flag based on sps_inter_layer_ref_pics_present_flag, the value of sps_idr_rpl_present_flag is required to be equal to 1 when sps_inter_layer_ref_pics_present_flag is equal to 1.
[0121] c. Alternatively, instead of conditionally signaling sps_idr_rpl_present_flag based on sps_inter_layer_ref_pics_present_flag, the value of sps_idr_rpl_present_flag is required to be equal to 1 when vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 0.
[0122] d. Alternatively, instead of conditionally signaling sps_idr_rpl_present_flag based on sps_inter_layer_ref_pics_present_flag, the value of sps_idr_rpl_present_flag is required to be equal to 1 when sps_inter_layer_ref_pics_present_flag equals 1 or vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] equals 0.
[0123] 2) To solve problem 2, add a constraint such that when sps_idr_rpl_present_flag is equal to 0, pps_mixed_nalus_in_pic_flag is equal to 1 and pps_rpl_info_in_ph_flag is equal to 0, the value of nal_unit_type should not be equal to IDR_W_RADL or IDR_N_LP.
[0124] a. Alternatively, add a constraint such that for a picture where pps_mixed_nalus_in_pic_flag is equal to 1, pps_rpl_info_in_ph_flag is equal to 0, and there is at least one VCL NAL unit where nal_unit_type is equal to IDR_W_RADL or IDR_N_LP, the value of sps_idr_rpl_present_flag should be equal to 1.
[0125] 3) To solve problem 3, add a constraint such that when vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] equals 0, the value of sps_inter_layer_ref_pics_present_flag should be equal to 1.
[0126] a. Alternatively, the value of sps_inter_layer_ref_pics_present_flag should be equal to !vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]].
[0127] 4) To solve problem 4, add an inference of the value of rpl_idx[0] when sps_num_ref_pic_lists[0] equals 1 and rpl_sps_flag[0] equals 1.
[0128] a. In one example, when sps_num_ref_pic_lists[0] equals 1 and rpl_sps_flag[0] equals 1, the value of rpl_idx[0] is inferred to be equal to 0.
[0129] 5) To address issue 5, specify default values for RplsIdx[i], num_ref_entries[i][RplsIdx[i]], and NumRefIdxActive[i] only when pps_rpl_info_in_ph_flag is equal to 0, where sps_idr_rpl_present_flag is equal to 0 and nal_unit_type is equal to IDR_W_RADL or IDR_N_LP.
[0130] 6) To solve problem 6, GDR images in which ph_recovery_poc_cnt equals 0 are processed in the same way as IRAP images, which involve constraints of ILRP entries in RefPicList[0] or RefPicList[1] of the current image stripe.
[0131] 7) To solve problem 7, during the decoding process of the reference image tag, specify that when the current image is a CLVSS image, each ILRP entry in RefPicList[0] or RefPicList[1] (if it exists) is marked as "for long-term reference".
[0132] 8) To solve problem 1, in the SPS syntax, signaling is given to sps_idr_rpl_present_flag before sps_inter_layer_ref_pics_present_flag, and conditionally signaling is given to sps_inter_layer_ref_pics_present_flag based on sps_idr_rpl_present_flag.
[0133] a. In one example, it is specified that when sps_idr_rpl_present_flag is equal to 0, sps_inter_layer_ref_pics_present_flag is skipped and its value is inferred to be 0.
[0134] i. Alternatively, when the value of sps_idr_rpl_present_flag is equal to 0, vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is required to be equal to 1.
[0135] b. Alternatively, in the SPS syntax, sps_idr_rpl_present_flag is signaled before sps_inter_layer_ref_pics_present_flag, sps_inter_layer_ref_pics_present_flag is conditionally signaled without regard to sps_idr_rpl_present_flag, and sps_inter_layer_ref_pics_present_flag is required to be 0 when the value of sps_idr_rpl_present_flag is equal to 0.
[0136] c. Alternatively, in the SPS syntax, signaling is performed on sps_idr_rpl_present_flag before sps_inter_layer_ref_pics_present_flag, and sps_inter_layer_ref_pics_present_flag is conditionally signaled without regard to sps_idr_rpl_present_flag. When sps_idr_rpl_present_flag is equal to 0, the value of sps_inter_layer_ref_pics_present_flag is required to be equal to 0 or vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 1.
[0137] d. Alternatively, whether and / or how signaling notifies sps_inter_layer_ref_pics_present_flag and / or sps_idr_rpl_present_flag may depend on general constraint flags present in the General Constraint Information (GCI) syntax, such as intra_only_constraint_flag.
[0138] 6. Example
[0139] The following are some example embodiments of aspects of the invention outlined in Section 4 above, which can be applied to the VVC specification. Most of the relevant parts that have been added or modified are indicated by bold, italic, or underline, and some deleted parts are indicated by [[]].
[0140] 6.1. First Embodiment
[0141] This embodiment applies to items 1, 1.a, 2, 2a, 3, 4, 4.a, 5, 6 and 7.
[0142] 7.3.2.3 Sequence Parameter Set (RBSP) Syntax
[0143]
[0144] 7.4.2.2 NAL Unit Header Syntax ...
[0146] For all VCL NAL units of a subpicture, the value of nal_unit_type should be the same. The subpicture is referenced as having the same NAL unit type as the VCL NAL units of the subpicture.
[0147] When sps_idr_rpl_present_flag equals 0, pps_mixed_nalus_in_pic_flag equals 1 and When pps_rpl_info_in_ph_flag equals 0, nal_unit_type should not be equal to IDR_W_RADL or IDR_N_LP.
[0148] When any two subpics in an image have different NAL unit types, the value of sps_subpic_treated_as_pic_flag[] should be equal to 1 for all subpics in the image that contain at least one P or B stripe. ...
[0150] 7.4.3.3 Sequence Parameter Set (RBSP) Syntax ...
[0152] `sps_inter_layer_ref_pics_present_flag` equal to 0 indicates that no ILRP is used for inter-frame prediction of any encoded or decoded pictures in CLVS. `sps_inter_layer_ref_pics_present_flag` equal to 1 indicates that ILRP can be used for inter-frame prediction of one or more encoded or decoded pictures in CLVS. When `sps_video_parameter_set_id` equals 0, the value of `sps_inter_layer_ref_pics_present_flag` is inferred to be 0. [[When `vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]` equals 1, the value of `sps_inter_layer_ref_pics_present_flag` should be 0.]] The value of sps_inter_layer_ref_pics_present_flag It should be equal to! vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]].
[0153] `sps_idr_rpl_present_flag` equal to 1 indicates that the reference image list syntax element can exist in the bar header of the IDR image. `sps_idr_rpl_present_flag` equal to 0 indicates that the reference image list syntax element does not exist in the bar header of the IDR image. When it does not exist, the value of sps_idr_rpl_present_flag is inferred to be equal to 1. When vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] equals 0, sps_idr_rpl_ The value of present_flag should be equal to 1. ...
[0155] 7.4.9 Reference Image List Syntax ...
[0157] `rpl_idx[i]` specifies the index of the `ref_pic_list_struct(listIdx, rplsIdx)` syntax structure with `listIdx` equal to `i` (the list of reference pictures `i` used to derive the current picture) in the list of `ref_pic_list_struct(listIdx, rplsIdx)` syntax structures included in SPS with `listIdx` equal to `i`. The syntax element `rpl_idx[i]` is represented by `Ceil(Log2(sps_num_ref_pic_lists[i]))` bits. The value of `rpl_idx[i]` should be between 0 and `sps_num_ref_pic_lists[i]-1` (inclusive of endpoints).
[0158] when rpl_sps_flag[i] equals 1 and rpl_idx[i] When it does not exist, The value of rpl_idx[i] is deduced as follows: :
[0159] -[[If rpl_sps_flag[i] equals 1]] If i equals 1 And if pps_rpl1_idx_present_flag is equal to 0, then the value of rpl_idx[1] is inferred to be equal to rpl_idx[0].
[0160] Otherwise, [[rpl_idx[1]]] rpl_idx[i] The value is inferred to be equal to 0.
[0161] The variable RplsIdx[i] is derived as follows:
[0162] RplsIdx[i]=rpl_sps_flag[i]? rpl_idx[i]:sps_num_ref_pic_lists[i] (150) ...
[0165] 8.3.2 Decoding process based on the reference image list ...
[0167] If sps_idr_rpl_present_flag equals 0 pps_rpl_info_in_ph_flag equals 0 If nal_unit_type is equal to IDR_W_RADL or IDR_N_LP, then the reference image lists RefPicList[0] and RefPicList[1] are both exported as empty, i.e., containing 0 entries, and the following applies to each i equal to 0 or 1:
[0168] The value of -RplsIdx[i] is set to equal to sps_num_ref_pic_lists[i].
[0169] The value of -num_ref_entries[i][RplsIdx[i]] is inferred to be equal to 0.
[0170] The value of -NumRefIdxActive[i] is set to 0. ...
[0172] -[[The image referenced by each ILRP entry in RefPicList[0] or RefPicList[1] of the current image's strip should be located in the same AU as the current image.]]
[0173] - All of the following constraints apply to the images referenced by each ILRP entry in RefPicList[0] or RefPicList[1] of the current image's stripe (if it exists):
[0174] ο The image should be located in the same AU as the current image.
[0175] The image should exist in the DPB.
[0176] The nuh_layer_id of the image refPicLayerId should be less than the nuh_layer_id of the current image.
[0177] One of the following constraints applies:
[0178] The image should be GDR images where ph_recovery_poc_cnt equals 0 Or IRAP image.
[0179] The TemporalId of the image should be less than or equal to Max(0, vps_Max_tid_il_ref_pics_plus1[currLayerIdx][refLayerIdx]-1), where currLayerIdx and refLayerIdx are equal to GeneralLayerIdx[nuh_layer_id] and GeneralLayerIdx[refpicLayerId], respectively.
[0180] - Each ILRP entry in the strip's RefPicList[0] or RefPicList[1] (if it exists) should be an active entry. ...
[0182] 8.3.3 Decoding process of reference image markers ...
[0184] If the current image is a CLVSS image, the following applies:
[0185] In the DPB, all reference images (if any) that currently have the same nuh_layer_id as the current image are marked as "not used for reference".
[0186] - For each ILRP entry in RefPicList[0] or RefPicList[1], the image is marked as "for long". Reference period.
[0187] Otherwise (if the current image is not a CLVSS image), the following applies:
[0188] - For each LTRP entry in RefPicList[0] or RefPicList[1], the image is marked as "for long-term reference" when the image is a STRP with the same nuh_layer_id as the current image.
[0189] - Each reference image that has the same nuh_layer_id as the current image in the DPB and is not referenced by any entry in RefPicList[0] or RefPicList[1] is marked as "not used for reference".
[0190] - For each ILRP entry in RefPicList[0] or RefPicList[1], the image is marked as "for long-term reference".
[0191] Figure 1 This is a block diagram illustrating an example video processing system 1900, in which various techniques disclosed herein can be implemented. Various implementations may include some or all of the components of system 1900. System 1900 may include an input 1902 for receiving video content. The video content may be received in a raw or uncompressed format (e.g., 8 or 10-bit multi-component pixel values), or in a compressed or encoded format. Input 1902 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, Passive Optical Network (PON), and wireless interfaces such as Wi-Fi or cellular interfaces.
[0192] System 1900 may include codec component 1904, which can implement the various codec or encoding methods described in this document. Codec component 1904 can reduce the average bit rate of the video from input 1902 to the output of codec component 1904 to produce a codec representation of the video. Therefore, codec techniques are sometimes referred to as video compression or video transcoding techniques. The output of codec component 1904 can be stored or transmitted via connected communication, as indicated by component 1906. Component 1908 can use the stored or transmitted bitstream (or codec) representation of the video received at input 1902 to generate pixel values or send displayable video to display interface 1910. The process of generating user-viewable video from the bitstream representation is sometimes referred to as video decompression. Furthermore, although some video processing operations are referred to as “codec” operations or tools, it should be understood that codec tools or operations are used at the encoder and will be reversed by the decoder by a corresponding decoding tool or operation.
[0193] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), or DisplayPort, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Accessory), PCI, IDE, etc. The technologies described in this document can be implemented in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.
[0194] Figure 2 This is a block diagram of a video processing apparatus 3600. Apparatus 3600 can be used to implement one or more methods described herein. Apparatus 3600 can be implemented in smartphones, tablets, computers, Internet of Things (IoT) receivers, etc. Apparatus 3600 may include one or more processors 3602, one or more memories 3604, and video processing hardware 3606. The processors 3602 may be configured to implement one or more methods described herein. The memories 3604 may be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 3606 may be used to implement some of the techniques described herein in hardware circuitry.
[0195] Figure 4 This is a block diagram illustrating an example video codec system 100 that can utilize the techniques disclosed herein.
[0196] like Figure 4As shown, the video encoding / decoding system 100 may include a source device 110 and a destination device 120. The source device 110 generates encoded video data and may be referred to as a video encoding device. The destination device 120 can decode the encoded video data generated by the source device 110 and may be referred to as a video decoding device.
[0197] The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.
[0198] Video source 112 may include sources such as video capture devices, interfaces for receiving video data from video content providers, and / or computer graphics systems for generating video data, or combinations of these sources. Video data may include one or more images. Video encoder 114 encodes the video data from video source 112 to generate a bitstream. The bitstream may include a sequence of bits forming a encoded representation of the video data. The bitstream may include encoded images and associated data. An encoded image is an encoded representation of an image. Associated data may include sequence parameter sets, image parameter sets, and other syntax structures. I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. Encoded video data may be transmitted directly to destination device 120 via I / O interface 116 through network 130a. Encoded video data may also be stored on storage medium / server 130b for access by destination device 120.
[0199] Destination device 120 may include I / O interface 126, video decoder 124 and display device 122.
[0200] I / O interface 126 may include a receiver and / or a modem. I / O interface 126 may acquire encoded video data from source device 110 or storage medium / server 130b. Video decoder 124 may decode the encoded video data. Display device 122 may display the decoded video data to a user. Display device 122 may be integrated with destination device 120, or it may be external to destination device 120 and configured to connect to an external display device.
[0201] The video encoder 114 and the video decoder 124 can operate according to video compression standards, such as the High Efficiency Video Codec (HEVC) standard, the Multi-Functional Video Codec (VVC) standard, and other current and / or further standards.
[0202] Figure 5 This is a block diagram illustrating an example of a video encoder 200, which may be... Figure 4 The video encoder 114 in the system 100 shown.
[0203] The video encoder 200 can be configured to perform any or all of the techniques disclosed herein. Figure 5 In the example, the video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video encoder 200. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.
[0204] The functional components of the video encoder 200 may include a segmentation unit 201, a prediction unit 202 (which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra-frame prediction unit 206), a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.
[0205] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit can perform prediction in IBC mode, where at least one reference picture is the picture containing the current video block.
[0206] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, can be highly integrated, but for illustrative purposes, in Figure 5 The example is shown separately.
[0207] The segmentation unit 201 can segment an image into one or more video blocks. The video encoder 200 and the video decoder 300 can support various video block sizes.
[0208] The mode selection unit 203 can select one of the encoding / decoding modes (intra-frame or inter-frame) based, for example, on the error result, and provide the resulting intra-frame or inter-frame codec block to the residual generation unit 207 to generate residual block data, and provide it to the reconstruction unit 212 to reconstruct the coded block for use as a reference picture. In some examples, the mode selection unit 203 can select a combined intra-frame and inter-frame prediction (CIIP) mode, where the prediction is based on the inter-frame prediction signal and the intra-frame prediction signal. The mode selection unit 203 can also select the resolution of the motion vector for the block (e.g., sub-pixel or integer pixel precision) in the case of inter-frame prediction.
[0209] To perform inter-frame prediction on the current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 can determine the predicted video block for the current video block based on the motion information and decoded samples of images from buffer 213 other than the image associated with the current video block.
[0210] The motion estimation unit 204 and the motion compensation unit 205 can perform different operations on the current video block, depending on whether the current video block is in an I-band, P-band, or B-band.
[0211] In some examples, motion estimation unit 204 can perform unidirectional prediction on the current video block, and can search for a reference video block for the current video block in the reference images of list 0 or list 1. Motion estimation unit 204 can then generate a reference index indicating the reference image (which contains the reference video block) in list 0 or list 1, and a motion vector indicating the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current block based on the reference video block indicated by the motion information of the current video block.
[0212] In other examples, motion estimation unit 204 can perform bidirectional prediction on the current video block. Motion estimation unit 204 can search for a reference video block for the current video block in the reference images in list 0, and can also search for another reference video block for the current video block in the reference images in list 1. Motion estimation unit 204 can then generate reference indices indicating the reference images (which contain reference video blocks) in lists 0 and 1, and motion vectors indicating the spatial displacement between the reference video blocks and the current video block. Motion estimation unit 204 can output the reference index and motion vector of the current video block as motion information in the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video blocks indicated by the motion information of the current video block.
[0213] In some examples, the motion estimation unit 204 can output a complete set of motion information for the decoder's decoding processing.
[0214] In some examples, motion estimation unit 204 may not output the complete set of motion information for the current video. Instead, motion estimation unit 204 may signal the motion information of the current video block to another video block by referencing the motion information of that other video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.
[0215] In one example, the motion estimation unit 204 may indicate a value in the syntax structure associated with the current video block that indicates to the video decoder 300 that the current video block has the same motion information as another video block.
[0216] In another example, motion estimation unit 204 can identify another video block and motion vector difference (MVD) in the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 can use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.
[0217] As discussed above, the video encoder 200 can predictively signal motion vectors. Two examples of predictive signaling techniques that can be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merge Pattern Signaling.
[0218] Intra-prediction unit 206 can perform intra-prediction on the current video block. When intra-prediction unit 206 performs intra-prediction on the current video block, intra-prediction module 206 can generate prediction data for the current video block based on decoded samples of other video blocks in the same image. The prediction data for the current video block may include the predicted video block and various syntax elements.
[0219] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) multiple predicted video blocks from the current video block. The residual data for the current video block can include residual video blocks corresponding to different sample components of the samples in the current video block.
[0220] In other examples, such as in skip mode, the current video block may not have residual data, and the residual generation unit 207 may not perform the subtraction operation.
[0221] The transform processing unit 208 can generate one or more transform coefficient video blocks of the current video block by applying one or more transforms to the residual video block associated with the current video block.
[0222] After the transform processing unit 208 generates a transform coefficient video block associated with the current video block, the quantization unit 209 can 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.
[0223] Inverse quantization unit 210 and inverse transform unit 211 can apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct the residual video block from the transform coefficient video block. Reconstruction unit 212 can add the reconstructed residual video block to the corresponding sample from one or more predicted video blocks generated by prediction unit 202 to produce a reconstructed video block associated with the current block for storage in buffer 213.
[0224] After the video block is reconstructed by the reconstruction unit 212, a loop filtering operation can be performed to reduce video block artifacts in the video block.
[0225] Entropy encoding unit 214 can receive data from other functional components of video encoder 200. When entropy encoding unit 214 receives data, it can perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.
[0226] Figure 6 This is a block diagram illustrating an example of a video decoder 300, which may be... Figure 4 The video decoder 124 in the system 100 shown.
[0227] The video decoder 300 can be configured to perform any or all of the technologies disclosed herein. Figure 5 In the example, the video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.
[0228] exist Figure 6 In the example, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform functions typically associated with the video encoder 200. Figure 5 The decoding process is the reverse of the encoding sequence described.
[0229] The entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 can decode the entropy-encoded video data, and from the entropy-encoded video data, the motion compensation unit 302 can determine motion information including motion vectors, motion vector precision, reference image list index, and other motion information. The motion compensation unit 302 can determine such information, for example, by executing AMVP and Merge modes.
[0230] The motion compensation unit 302 can generate motion compensation blocks, possibly performing interpolation based on an interpolation filter. The syntax elements may include identifiers for the interpolation filter used with sub-pixel precision.
[0231] The motion compensation unit 302 can use the interpolation filter used by the video encoder 200 during video block encoding to calculate the sub-integer pixel interpolation of the reference block. The motion compensation unit 302 can determine the interpolation filter used by the video encoder 200 based on the received syntax information, and use the interpolation filter to generate the prediction block.
[0232] The motion compensation unit 302 may use some syntax information to determine the size of the blocks used for one or more frames and / or one or more stripes of the encoded video sequence, segmentation information describing how each macroblock of the encoded video sequence picture is segmented, a mode indicating how each segment is encoded, one or more reference frames (and a list of reference frames) for each inter-frame coded block, and other information for decoding the encoded video sequence.
[0233] Intra-prediction unit 303 can use, for example, an intra-prediction mode received in the bitstream to form prediction blocks from spatially adjacent blocks. Inverse quantization unit 303 performs inverse quantization (i.e., dequantization) on the quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 303 applies an inverse transform.
[0234] The reconstruction unit 306 can add the residual block to the corresponding prediction block generated by the motion compensation unit 202 or the intra-frame prediction unit 303 to form a decoded block. If necessary, a deblocking filter can also be applied to filter the decoded block to remove block artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation / intra-frame prediction and also generates decoded video for presentation on a display device.
[0235] The following is a list of preferred solutions for some embodiments.
[0236] The following solutions illustrate example embodiments of the techniques discussed in the previous section (e.g., Project 1).
[0237] 1. A video processing method (e.g., Figure 3 Method 600) includes performing a conversion (602) between a video and a encoded / decoded representation of a video comprising one or more video layers including one or more video pictures, wherein the encoded / decoded representation conforms to a format rule, wherein the format rule specifies a first value of a first syntax element indicating whether inter-layer reference pictures are used for the conversion, and a second value of a second syntax element indicating whether a list of reference pictures is included in the encoded / decoded representation, or the presence of the second syntax element.
[0238] 2. According to the method of Solution 1, where if the first value is 1, the second syntax element is omitted from the encoded and decoded representation and inferred to be 1.
[0239] The following solutions illustrate example embodiments of the techniques discussed in the previous section (e.g., Project 2).
[0240] 3. A video processing method, comprising: performing a conversion between a video comprising one or more video layers including one or more video images and a encoded / decoded representation of the video, wherein the encoded / decoded representation conforms to a format rule, wherein the format rule specifies that the use of a transient decoder reference image type network abstraction layer unit will be disabled in the encoded / decoded representation if a syntax element indicating a reference image list in the first syntax element is not included in the encoded / decoded representation and if mixing network abstraction layer units is allowed in the encoded / decoded representation and the reference image list syntax element is not included in the image header.
[0241] The following solutions illustrate example embodiments of the techniques discussed in the previous sections (e.g., items 3 and 4).
[0242] 4. A video processing method comprising: performing a conversion between a video comprising one or more video layers including one or more video pictures and a codec representation of the video, wherein the codec representation conforms to a format rule, wherein the format rule specifies the following constraints: (a) the value of a first syntax element indicating an independent layer activation flag for a given layer id in a video parameter set controls the value of a second syntax element indicating activation on an inter-layer reference picture, or (b) the value of a first syntax element indicating the number of reference picture lists in a sequence parameter set controls the value of a second syntax element indicating a reference picture table for conversion of the current video unit.
[0243] 5. According to the method of Solution 4, the first and second syntax elements have opposite binary values.
[0244] 6. According to the method of Solution 4, the first and second syntax elements have the same binary value.
[0245] The following solutions illustrate example embodiments of the techniques discussed in the previous section (e.g., Item 7).
[0246] 7. A video processing method comprising: performing a conversion between a video comprising one or more video layers including one or more video images and a codec representation of the video, wherein the conversion is performed according to a rule specifying that interlayer images in a reference list of the current image are considered long-term reference images if the current image is the starting image of a codec-layer video sequence.
[0247] The following solutions illustrate example embodiments of the techniques discussed in the previous section (e.g., Item 8).
[0248] 8. A video processing method comprising: performing a conversion between a video comprising one or more video layers including one or more video images and a encoded / decoded representation of the video, wherein the encoded / decoded representation conforms to a format rule specifying a first field indicating the presence of a reference image list information prior to a second field that is conditionally signaled to indicate the presence of an inter-layer image according to a first field.
[0249] 9. The method according to any one of solutions 1-8, wherein performing the conversion includes encoding the video to generate a encoded / decoded representation.
[0250] 10. The method according to any one of solutions 1-8, wherein performing the conversion includes parsing and decoding the encoded / decoded representation to generate a video.
[0251] 11. A video decoding apparatus comprising a processor configured to implement one or more of the methods in solutions 1 to 10.
[0252] 12. A video encoding apparatus comprising a processor configured to implement one or more of the methods in solutions 1 to 10.
[0253] 13. A computer program product having computer code stored thereon, which, when executed by a processor, causes the processor to implement the method described in any one of solutions 1 to 10.
[0254] 14. A method, apparatus or system described in this document.
[0255] Figure 7 This is a flowchart representation of a method 700 for processing video data according to one or more embodiments of the present technology. Method 700 includes, at operation 710, performing a conversion between a video including a video picture including a stripe and a bitstream of video, according to a rule. The rule specifies that, due to a condition being met, the default value of a syntax element specifying the number of entries in a reference picture list (RPL) syntax structure associated with a reference picture list (RPL) index is equal to 0. This condition is met when (1) the video picture is a momentarily decoded refresh picture, (2) a first syntax flag specifies that the RPL syntax element is not present in the stripe header of the stripe, and (3) a second syntax flag specifies that the RPL information is not present in the picture header of the video picture.
[0256] In some embodiments, the variable defaults to 0 in response to the condition being met. This variable specifies the maximum reference index of the RPL used for stripe transformation. In some embodiments, in response to the condition being met, the variable indicating the reference picture list index is equal to the number of reference picture list syntax structures in the sequence parameter set.
[0257] Figure 8 This is a flowchart representation of a method 800 for processing video data according to one or more embodiments of the present technology. Method 800 includes performing a conversion between video frames and a bitstream of video at operation 810 according to a rule. The rule specifies that the value of a first syntax flag is determined based on the use of inter-layer prediction for the conversion. The first syntax flag indicates the presence of a Reference Picture List (RPL) syntax element in the strip header of a strip of video frames.
[0258] In some embodiments, the first syntax flag is conditionally present in the bitstream based on a second syntax flag indicating whether an entry in the specified reference picture list syntax structure is an interlayer reference picture (ILRP) entry. In some embodiments, if the second syntax flag indicates that an entry in the reference picture list syntax structure is an interlayer reference picture (ILRP) entry, the first syntax flag is not present in the bitstream and is inferred to be equal to 1.
[0259] In some embodiments, the value of the first syntax flag is equal to 1 when the second syntax flag specifies that an entry in the reference picture list syntax structure is an inter-layer reference picture (ILRP) entry. In some embodiments, the value of the first syntax element is equal to 1 when the third syntax flag has a value of 0 indicating that the layer does not use inter-layer prediction. In some embodiments, the value of the first syntax flag is equal to 1 in the following cases: (1) the second syntax flag specifies that an entry in the reference picture list syntax structure is an inter-layer reference picture (ILRP) entry, or (2) the third syntax flag has a value of 0 indicating that the layer does not use inter-layer prediction.
[0260] Figure 9 This is a flowchart representation of a method 900 for processing video data according to one or more embodiments of the present technology. Method 900 includes performing a conversion between video frames and a bitstream of video at operation 910 according to rules. These rules specify constraints related to: (1) whether the video frames are instantaneously decoded refresh frames; (2) whether a Reference Picture List (RPL) syntax element exists in the stripe header of a video frame's stripe; (3) whether each frame in the picture parameter set of the reference video frame has more than one Network Abstraction Layer (NET) unit, the values of which are not identical; and (4) whether RPL information exists in the picture header of the video frame.
[0261] In some embodiments, the constraint specifies that a video picture is constrained to be a non-instantaneous decode refresh picture if: (1) the RPL syntax element is not present in the strip header of the video picture stripe; (2) each picture in the reference picture parameter set has more than one Network Abstraction Layer Unit (NET) with different values for the unit type; and (3) the RPL information is not present in the picture header of the video picture. In some embodiments, the constraint specifies that the RPL syntax element is constrained to be present in the strip header of the video picture stripe if: (1) each picture in the reference picture parameter set has more than one NET, with different values for the unit type; (2) the RPL information is present in the picture header of the video picture; and (3) the video picture is an instantaneous decode refresh picture.
[0262] Figure 10 This is a flowchart representation of a method 1000 for processing video data according to one or more embodiments of the present technology. Method 1000 includes performing a conversion between video frames and a bitstream of the video at operation 1010 according to a rule. The rule is specified based on the following constraints: (1) whether the layer uses inter-layer prediction and (2) whether an entry in the reference picture list syntax structure is an inter-layer reference picture (ILRP) entry.
[0263] In some embodiments, when no layer uses inter-layer prediction, the constraint specifies that entries in the reference picture list syntax structure are inter-layer reference picture (ILRP) entries. In some embodiments, whether an entry in the reference picture list syntax structure is an inter-layer reference picture (ILRP) entry is the same as whether the layer uses inter-layer prediction.
[0264] Figure 11 This is a flowchart representation of a method 1100 for processing video data according to one or more embodiments of the present technology. Method 1100 includes performing a conversion between video frames and a bitstream of the video at operation 1110 according to a rule. The rule specifies that, in the case that the number of reference picture list syntax structures in a first list of sequence parameter sets is 1 and a first reference picture list of video frames is derived based on the reference picture list syntax structure of the first list, a variable specifying the index of the reference picture list syntax structure is inferred. In some embodiments, the variable is inferred to be equal to 0.
[0265] Figure 12This is a flowchart representation of a method 1200 for processing video data according to one or more embodiments of the present technology. Method 1200 includes performing a conversion between a current picture of the video and the bitstream of the video at operation 1210 according to a rule. The rule specifies that, in response to a picture being referenced by an interlayer reference picture (ILRP) entry in the reference picture list of the current picture strip, the picture is allowed to have a progressive decode refresh (GDR) type, and specifies that the syntax element for the recovery point of the picture in the output order is 0.
[0266] In some embodiments, the image is located in the same access unit as the current image. In some embodiments, the image exists in a decoded image buffer. In some embodiments, the image has a layer identifier that is smaller than the layer identifier of the current image. In some embodiments, the reference image list includes reference list 0 or reference list 1.
[0267] Figure 13 This is a flowchart representation of a method 1300 for processing video data according to one or more embodiments of the present technology. Method 1300 includes performing a conversion between a video including a current image and a bitstream of the video at operation 1310 according to a rule. The rule specifies that, in response to the current image being the starting image of a codec-layered video sequence, each interlayer reference picture (ILRP) entry in the reference picture list of the current image is marked for long-term reference.
[0268] In some embodiments, the reference image list includes reference list 0 or reference list 1. In some embodiments, each interlayer reference image (ILRP) entry in the reference image list of the current image is treated as a long-term reference image during decoding. In some embodiments, the method is called once for each image during the decoding process for reference image labeling. In some embodiments, each interlayer reference image (ILRP) entry in the reference image list is in the decoded image buffer. In some embodiments, each ILRP entry is marked for long-term reference replacement of other marks including those not used for reference or for short-term reference.
[0269] Figure 14 This is a flowchart representation of a method 1400 for processing video data according to one or more embodiments of the present technology. Method 1400 includes performing a conversion between video and a video bitstream at operation 1410 according to a rule. This rule specifies that a first syntax flag exists in the bitstream indicating whether a specified inter-layer reference picture (ILRP) is used for inter-frame prediction of any codec picture in the codec layer video sequence, prior to a second syntax flag indicating whether an inter-layer reference picture (ILRP) is used. This first syntax flag specifies whether a reference picture list syntax element exists in the strip header of an instantaneous decode refresh (IDR) picture.
[0270] In some embodiments, the rule further specifies that, based on the first syntax flag, the second syntax flag conditionally exists in the bitstream. In some embodiments, if the first syntax flag is equal to 0, the second syntax flag does not exist in the bitstream and is inferred to be 0. In some embodiments, if the first syntax flag is equal to 0 and the layer does not use inter-layer prediction, the second syntax flag does not exist in the bitstream and is inferred to be 0. In some embodiments, if the first syntax flag is equal to 0, the second syntax flag is equal to 0 or the layer does not use inter-layer prediction. In some embodiments, the presence or absence of the first syntax flag and / or the second syntax flag in the bitstream is based on the general constraint flags in the general constraint information syntax structure.
[0271] In some embodiments, the conversion includes encoding the video into a bitstream. In some embodiments, the conversion includes decoding the video from the bitstream.
[0272] The disclosed and other solutions, examples, embodiments, modules, and functional operations described in this document can be implemented in digital electronic circuits or in computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or combinations thereof. The disclosures and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by a data processing apparatus or for controlling the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of substances that influences machine-readable propagated signals, or combinations thereof. The term "data processing apparatus" includes all means, devices, and machines for processing data, such as programmable processors, computers, or multiple processors or computers. In addition to hardware, the apparatus may include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or combinations thereof. The propagated signals are artificially generated signals, such as machine-generated electrical signals, optical signals, or electromagnetic signals, which are generated to encode information for transmission to a suitable receiver device.
[0273] Computer programs (also known as programs, software, software applications, scripts, or code) can be written in any programming language, including compiled or interpreted languages, and can be deployed in any form, including as standalone programs or as modules, components, subroutines, or other units 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 as a portion 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 harmonizing files (e.g., a file storing one or more modules, subroutines, or code sections). Computer programs can be deployed to execute on a single computer, located at a site, or distributed across multiple sites and interconnected via a communication network.
[0274] The processes and logic described in this document can be executed by one or more programmable processors that execute one or more computer programs to perform functions by manipulating input data and generating output. The processes and logic can also be executed by special-purpose logic circuitry (and the devices that may be implemented therein), such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits).
[0275] Processors suitable for executing computer programs include, for example, both general-purpose and special-purpose microprocessors, and any one or more processors in any type of digital computer. Typically, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for executing instructions and one or more storage devices for storing instructions and data. Typically, a computer will also include, or be operatively coupled to, receiving data from or transferring data to one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or both. However, a computer does not need to have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, such as semiconductor storage devices like EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROMs and DVD-ROMs. Processors and memory may be supplemented by or incorporated into special-purpose logic circuitry.
[0276] Although this patent document contains numerous provisions, they should not be construed as limiting the scope of any subject matter or potentially claimed content, but rather as descriptions of features that may be specific to particular embodiments of a particular technology. Certain features described in the context of individual embodiments in this patent document may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments. Furthermore, although features may be described above as functioning in a particular combination, or even initially claimed in this way, in some cases, one or more features in the claimed combination may be removed from the combination, and the claimed combination may refer to a sub-combination or a variation of a sub-combination.
[0277] Similarly, although the operations are depicted in a specific order in the figures, this should not be construed as requiring these operations to be performed in the specific order or sequence shown, or as requiring all of the shown operations to obtain the desired result. Furthermore, the separation of various system components in the embodiments described in this patent document should not be construed as requiring such separation in all embodiments.
[0278] Only some implementations and examples are described, and other implementations, enhancements and variations can be made based on what is described and shown in this patent document.
Claims
1. A method for processing video data, comprising: A conversion is performed between the current image of the video and the bitstream of the video according to the first and second rules. The first rule specifies that when an image is referenced by an inter-layer reference image (ILRP) entry in the reference image list of the current image's stripes, the image is allowed to have a progressively decoded refresh GDR type, and the value of the syntax element used to indicate the recovery point of the image in the output order is 0. in, The image is in the same access unit as the current image; Wherein, the layer identifier of the image is less than the layer identifier of the current image. The second rule stipulates that when the current image is the starting image of a video sequence through the codec layer, each ILRP entry in the reference image list of the current image is marked for long-term reference.
2. The method according to claim 1, wherein the image exists in the decoded image cache.
3. The method according to claim 1, wherein the list of reference images includes reference list 0 or reference list 1.
4. The method of claim 1, wherein each ILRP entry in the reference image list of the current image is regarded as a long-term reference image during the decoding process.
5. The method of claim 1, wherein the second rule is invoked once for each image during the decoding process for reference image tagging.
6. The method of claim 1, wherein each ILRP entry in the reference image list is in the decoded image cache.
7. The method of claim 1, wherein each ILRP entry is marked for long-term reference in place of other marks, said other marks including those not used for reference or used for short-term reference.
8. The method according to any one of claims 1 to 7, wherein the conversion comprises encoding the video into the bitstream.
9. The method according to any one of claims 1 to 7, wherein the conversion comprises decoding the video from the bitstream.
10. An apparatus for processing video data, comprising a processor and a non-transitory memory storing instructions thereon, wherein the instructions, when executed by the processor, cause the processor to: A conversion is performed between the current image of the video and the bitstream of the video according to the first and second rules. The first rule specifies that when an image is referenced by an inter-layer reference image (ILRP) entry in the reference image list of the current image's stripes, the image is allowed to have a progressively decoded refresh GDR type, and the value of the syntax element used to indicate the recovery point of the image in the output order is 0. in, The image is in the same access unit as the current image; Wherein, the layer identifier of the image is less than the layer identifier of the current image. The second rule stipulates that when the current image is the starting image of a video sequence through the codec layer, each ILRP entry in the reference image list of the current image is marked for long-term reference.
11. The apparatus of claim 10, wherein the image is stored in a decoded image cache, and wherein the reference image list includes reference list 0 or reference list 1.
12. The apparatus of claim 10, wherein each ILRP entry in the reference image list of the current image is treated as a long-term reference image during the decoding process.
13. The apparatus of claim 10, wherein each ILRP entry is marked for long-term reference in place of other marks, said other marks including those not used for reference or used for short-term reference.
14. A non-transitory computer-readable storage medium storing instructions that cause a processor to: A conversion is performed between the current image of the video and the bitstream of the video according to the first and second rules. The first rule specifies that when an image is referenced by an inter-layer reference image (ILRP) entry in the reference image list of the current image's stripes, the image is allowed to have a progressively decoded refresh GDR type, and the value of the syntax element used to indicate the recovery point of the image in the output order is 0. in, The image is in the same access unit as the current image; Wherein, the layer identifier of the image is less than the layer identifier of the current image. The second rule stipulates that when the current image is the starting image of a video sequence through the codec layer, each ILRP entry in the reference image list of the current image is marked for long-term reference.
15. A non-transitory computer-readable recording medium storing computer instructions and a bit stream, wherein, When the computer instructions are executed by the processor, a video encoding method is implemented to generate the bitstream, the video encoding method comprising: The bitstream of the video is generated from the current image of the video according to the first and second rules. The first rule specifies that when an image is referenced by an inter-layer reference image (ILRP) entry in the reference image list of the current image's stripes, the image is allowed to have a progressively decoded refresh GDR type, and the value of the syntax element used to indicate the recovery point of the image in the output order is 0. The image and the current image are located in the same access unit; Wherein, the layer identifier of the image is less than the layer identifier of the current image. The second rule stipulates that when the current image is the starting image of a video sequence through the codec layer, each ILRP entry in the reference image list of the current image is marked for long-term reference.
16. A method for storing a video bitstream, comprising: The bitstream of the video is generated from the current image of the video according to the first and second rules, and The bitstream is stored in a non-transitory computer-readable recording medium. The first rule specifies that when an image is referenced by an inter-layer reference image (ILRP) entry in the reference image list of the current image's stripes, the image is allowed to have a progressively decoded refresh GDR type, and the value of the syntax element used to indicate the recovery point of the image in the output order is 0. The image and the current image are located in the same access unit; Wherein, the layer identifier of the image is less than the layer identifier of the current image. The second rule stipulates that when the current image is the starting image of a video sequence through the codec layer, each ILRP entry in the reference image list of the current image is marked for long-term reference.