Decoding method, decoding system and computer storage medium
By receiving and parsing the Sequence Parameter Set (SPS) bitstream under the VVC standard, inferring and decoding the encoded image using syntax element values, the constraints and decoding problems of syntax elements and additional syntax tables under the VVC standard in the prior art are solved. An efficient encoding and decoding process is realized.
Patent Information
- Application Number
- CN202180005481.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-04-15
- Filing Date
- 2021-04-27
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2041-04-27
AI Technical Summary
When existing video encoding technologies promote next-generation video encoding standards such as universal video encoding (VVC), it is difficult to effectively constrain and decode syntax elements and additional syntax tables, resulting in increased encoding efficiency and decoding complexity.
By receiving a bitstream including a sequence parameter set (SPS), syntax element values of SPS are inferred and the encoded image is decoded based on these values. Specifically, it includes inferring the ID of the video parameter set, the maximum number of time sublayers, configuration files, layers, the existence of level syntax structures, image sequence numbers, inter-slicing and inter-coding tools related syntax elements.
It realizes efficient decoding of bit streams under the VVC standard, reducing the complexity of encoding and decoding and improving encoding efficiency.
Smart Images

Figure CN114503575B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to U.S. Provisional Application No. 63 / 029,359, filed on May 22, 2020, and U.S. Application No. 17 / 231,416, filed on April 15, 2021, the disclosures of which are incorporated herein by reference in their entireties. Technical Field
[0003] Embodiments of the present disclosure are intended to advance video coding technology, and more particularly, to advance technology for next generation video coding technology other than HEVC (High Efficiency Video Coding) such as Versatile Video Coding (VVC). Background Art
[0004] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) released the H.265 / HEVC (High Efficiency Video Coding) standard (version 1) in 2013, the H.265 / HEVC standard (version 2) in 2014, the H.265 / HEVC standard (version 3) in 2015, and the H.265 / HEVC standard (version 4) in 2016. In 2015, the two standards organizations jointly established the Joint Video Exploration Team (JVET) to explore the possibility of developing the next video coding standard beyond HEVC. In October 2017, JVET issued a joint call for recommendations (CfP) related to video compression with capabilities beyond HEVC. As of February 15, 2018, a total of 22 CfP responses related to Standard Dynamic Range (SDR), 12 CfP responses related to High Dynamic Range (HDR), and 12 CfP responses related to the 360 video category were submitted. In April 2018, all received CfP responses were evaluated at the 122nd Moving Picture Experts Group (MPEG) / 10th JVET meeting. As a result of this meeting, JVET officially launched the standardization process for the next generation of video coding beyond HEVC. The new standard was named Versatile Video Coding (VVC), and JVET was renamed the Joint Video Experts Group. The current version of the VVC Test Model (VTM) is VTM 7. Summary of the invention
[0005] The embodiments of the present disclosure provide constraints on syntax elements and additional syntax tables based on the existing disclosures.
[0006] According to one or more embodiments, a method performed by at least one processor is provided. The method includes: receiving a bitstream including a sequence parameter set (SPS), the SPS including a flag specifying whether the bitstream includes only one coded picture; inferring a value of at least one syntax element of the SPS based on the flag indicating that the bitstream includes only one coded picture; and decoding the coded picture based on the inference.
[0007] According to one embodiment, at least one syntax element of the SPS includes a syntax element specifying an ID of a video parameter set.
[0008] According to one embodiment, the at least one syntax element of the SPS comprises a syntax element specifying a maximum number of temporal sub-layers allowed to be present in each coded layer video sequence (CLVS) referencing the SPS.
[0009] According to one embodiment, at least one syntax element of the SPS includes a flag that specifies whether a profile, layer, or level syntax structure exists in the SPS.
[0010] According to one embodiment, the at least one syntax element of the SPS comprises a syntax element related to a picture sequence number (POC).
[0011] According to one embodiment, at least one syntax element of the SPS includes a syntax element related to inter-frame slices.
[0012] According to one embodiment, the at least one syntax element of the SPS comprises a syntax element related to an inter-coding tool.
[0013] According to one embodiment, the method further includes: inferring the value of at least one syntax element of the picture header of an encoded picture based on a flag specifying that the bitstream only includes one encoded picture, wherein the decoding includes decoding the encoded picture based on the value of at least one syntax element of the SPS and the value of at least one syntax element of the inferred SPS.
[0014] According to one embodiment, at least one syntax element of a picture slice header comprises a flag specifying whether a slice type is allowed for a coded picture.
[0015] According to one embodiment, at least one syntax element of a picture slice header comprises a flag specifying whether a coded picture is a reference picture.
[0016] According to one embodiment, the at least one syntax element of the picture slice header comprises a syntax element related to a picture order number (POC) or a decoded picture buffer (DPB).
[0017] According to one or more embodiments, a system is provided. The system includes: at least one memory storing computer code; and at least one processor configured to receive a bitstream including a sequence parameter set (SPS), the SPS including a flag specifying whether the bitstream includes only one coded image. The at least one processor is further configured to access the computer code and operate according to the instructions of the computer code. The computer code includes: an inference code configured to cause the at least one processor to infer a value of at least one syntax element of the SPS based on the flag specifying that the bitstream includes only one coded image; and a decoding code configured to cause the at least one processor to decode a coded image based on the value of at least one syntax element of the inferred SPS.
[0018] According to one embodiment, at least one syntax element of the SPS includes a syntax element specifying an ID of a video parameter set.
[0019] According to one embodiment, the at least one syntax element of the SPS comprises a syntax element specifying a maximum number of temporal sub-layers allowed to be present in each coded layer video sequence (CLVS) referencing the SPS.
[0020] According to one embodiment, at least one syntax element of the SPS includes a flag that specifies whether a profile, layer, or level syntax structure exists in the SPS.
[0021] According to one embodiment, the at least one syntax element of the SPS comprises a syntax element related to a picture sequence number (POC).
[0022] According to one embodiment, at least one syntax element of the SPS includes a syntax element related to inter-frame slices.
[0023] According to one embodiment, the at least one syntax element of the SPS comprises a syntax element related to an inter-coding tool.
[0024] According to one embodiment, the inference code is further configured to cause at least one processor to infer a value of at least one syntax element of a picture slice header of a coded picture based on a flag specifying that the bitstream includes only one coded picture, and the decoding code is configured to cause at least one processor to decode a coded picture based on the value of at least one syntax element of the SPS and the value of at least one syntax element of the inferred SPS.
[0025] According to one or more embodiments, a non-transitory computer-readable medium is provided, the non-transitory computer-readable medium storing computer code. The computer code is configured to, when executed by at least one processor, cause the at least one processor to: infer a value of at least one syntax element of the SPS based on a flag of the SPS of the received bitstream specifying that the received bitstream includes only one coded image; and decode one coded image based on the value of the at least one syntax element of the inferred SPS. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Further features, properties and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings, in which:
[0027] Figure 1 is a schematic diagram of a simplified block diagram of a communication system according to one embodiment.
[0028] Figure 2 is a schematic diagram of a simplified block diagram of a communication system according to one embodiment.
[0029] Figure 3 is a schematic diagram of a simplified block diagram of a decoder according to one embodiment.
[0030] Figure 4 is a schematic diagram of a simplified block diagram of an encoder according to one embodiment.
[0031] Figure 5 is a block diagram of computer code according to an embodiment.
[0032] Figure 6 is a diagram of a computer system suitable for implementing an embodiment. DETAILED DESCRIPTION
[0033] Figure 1 A simplified block diagram of a communication system (100) according to one embodiment of the present disclosure is shown. The system (100) may include at least two terminals (110, 120) interconnected by a network (150). For unidirectional data transmission, a first terminal (110) may encode video data at a local location for transmission to another terminal (120) via the network (150). A second terminal (120) may receive encoded video data from another terminal from the network (150), decode the encoded data, and display the recovered video data. Unidirectional data transmission may be more common in applications such as media services.
[0034] Figure 1A second pair of terminals (130, 140) is shown configured to support bidirectional transmission of encoded video, which may occur, for example, during a video conference. For bidirectional data transmission, each terminal (130, 140) may encode video data acquired at a local location for transmission to the other terminal via a network (150). Each terminal (130, 140) may also receive encoded video data transmitted by the other terminal, may decode the encoded data, and may display the recovered video data at a local display device.
[0035] exist Figure 1 In the embodiment of the present invention, the terminals (110-140) may be shown as servers, personal computers, smart phones, and / or any other type of terminals. For example, the terminals (110-140) may be laptop computers, tablet computers, media players, and / or dedicated video conferencing equipment. The network (150) represents any number of networks that transmit encoded video data between the terminals (110-140), including, for example, wired and / or wireless communication networks. The communication network (150) may exchange data in circuit switching and / or packet switching channels. Representative networks include telecommunication networks, local area networks, wide area networks, and / or the Internet. For the purposes of this discussion, unless explained below, the architecture and topology of the network (150) may be immaterial to the operation of the present disclosure.
[0036] As examples of applications of the disclosed subject matter, Figure 2 The video decoder and the placement of the decoder in a streaming environment are shown. The disclosed subject matter is equally applicable to other video-enabled applications including, for example, video conferencing, digital TV, storing compressed video on digital media including CDs, DVDs, memory sticks, etc., and the like.
[0037] like Figure 2 As shown, a streaming system (200) may include an acquisition subsystem (213), which may include a video source (201) and an encoder (203). The video source (201) may be, for example, a digital camera, and may be configured to create an uncompressed video sample stream (202). Compared to an encoded video bitstream, the uncompressed video sample stream (202) may provide a high data volume and may be processed by an encoder (203) coupled to the camera (201). The encoder (203) may include hardware, software, or a combination of hardware and software to implement or implement various aspects of the disclosed subject matter as described in more detail below. Compared to a sample stream, the encoded video bitstream (204) may include a lower data volume and may be stored on a streaming server (205) for future use. One or more streaming clients (206) may access the streaming server (205) to retrieve a video bitstream (209), which may be a copy of the encoded video bitstream (204).
[0038] In an embodiment, the streaming server (205) may also function as a media aware network element (MANE). For example, the streaming server (205) may be configured to prune the encoded video bitstream (204) to tailor potentially different bitstreams to one or more streaming clients (206). In an embodiment, the MANE may be provided separately from the streaming server (205) in the streaming system (200).
[0039] The streaming client (206) may include a video decoder (210) and a display (212). The video decoder (210) may, for example, decode a video bitstream (209) that is an incoming copy of an encoded video bitstream (204), and may produce an output video sample stream (211) that may be presented on a display (212) or another presentation device (not depicted). In some streaming systems, the video bitstreams (204, 209) may be encoded according to certain video encoding / compression standards. Examples of these standards include, but are not limited to, ITU-T Recommendation H.265. The video coding standard being developed is informally referred to as Versatile Video Coding (VVC). Embodiments of the present disclosure may be used in the context of VVC.
[0040] Figure 3 An exemplary functional block diagram of a video decoder (210) attached to a display (212) according to one embodiment of the present disclosure is shown.
[0041] The video decoder (210) may include a channel (312), a receiver (310), a buffer memory (315), an entropy decoder / parser (320), a scaler / inverse transform unit (351), an intra-frame prediction unit (352), a motion compensated prediction unit (353), an aggregator (355), a loop filter unit (356), a reference image memory (357), and a current image memory (). In at least one embodiment, the video decoder (210) may include an integrated circuit, a series of integrated circuits, and / or other electronic circuits. The video decoder (210) may also be partially or completely implemented in software running on one or more CPUs with associated memory.
[0042] In this and other embodiments, the receiver (310) may receive one or more encoded video sequences to be decoded by the decoder (210), one at a time, wherein the decoding of each encoded video sequence is independent of the decoding of other encoded video sequences. The encoded video sequence may be received from a channel (312), which may be a hardware / software link to a storage device storing the encoded video data. The receiver (310) may receive the encoded video data and other data, such as encoded audio data and / or auxiliary data streams, which may be forwarded to their respective consuming entities (not depicted). The receiver (310) may separate the encoded video sequence from the other data. To prevent network jitter, a buffer memory (315) may be coupled between the receiver (310) and the entropy decoder / parser (320) (hereinafter referred to as the "parser"). When the receiver (310) receives data from a storage / forward device with sufficient bandwidth and controllability or from an isochronous synchronous network, the buffer (315) may not be used, or the buffer may be made smaller. In order to maximize usage on a traffic packet network such as the Internet, a buffer (315) may be required, which may be relatively large and may have an adaptive size.
[0043] The video decoder (210) may include a parser (320) to reconstruct symbols (321) from an entropy-encoded video sequence. The types of symbols include, for example, information for managing the operation of the decoder (210) and potential information for controlling a presentation device (e.g., a display (212)) that may be coupled to the decoder, such as Figure 2 As shown. The control information for the rendering device may be in the form of a parameter set fragment (not depicted) of, for example, an auxiliary enhancement information (SEI) message or a video usability information (VUI). The parser (320) may parse / entropy decode the received coded video sequence. The encoding of the coded video sequence may be performed according to a video coding technique or standard, and may follow various principles known to those skilled in the art, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, etc. The parser (320) may extract a subgroup parameter set for at least one subgroup of the subgroups of pixels in the video decoder from the coded video sequence based on at least one parameter corresponding to the group. The subgroup may include a group of pictures (GOP), a picture, a tile, a slice, a macroblock, a coding unit (CU), a block, a transform unit (TU), a prediction unit (PU), etc. The parser (320) may also extract information such as transform coefficients, quantizer parameter values, motion vectors, etc. from the coded video sequence.
[0044] The parser (320) may perform entropy decoding / parsing operations on the video sequence received from the buffer (315), thereby creating symbols (321).
[0045] Depending on the type of coded video picture or part of coded video picture (e.g., inter- and intra-pictures, inter- and intra-blocks) and other factors, the reconstruction of the symbol (321) may involve a number of different units. Which units are involved and how they are involved may be controlled by the parser (320) through subgroup control information parsed from the coded video sequence. For clarity, such subgroup control information flow between the parser (320) and the various units below is not depicted.
[0046] In addition to the functional blocks already mentioned, decoder 210 may be conceptually subdivided into several functional units as described below. In actual implementations operating under commercial constraints, many of these units interact closely with each other and may be at least partially integrated with each other. However, for the purpose of describing the disclosed subject matter, it is appropriate to conceptually subdivide into the functional units below.
[0047] One unit may be a sealer / inverse transform unit (351). The sealer / inverse transform unit (351) may receive quantized transform coefficients as symbols (321) and control information from the parser (320), including which transform method to use, block size, quantization factor, quantization scaling matrix, etc. The sealer / inverse transform unit (351) may output a block including sample values, which may be input into an aggregator (355).
[0048] In some cases, the output samples of the scaler / inverse transform (351) may belong to an intra-coded block; that is, a block that does not use predictive information from a previously reconstructed image, but may use predictive information from a previously reconstructed portion of the current image. Such predictive information may be provided by an intra-image prediction unit (352). In some cases, the intra-image prediction unit (352) generates a block of the same size and shape as the block being reconstructed using surrounding reconstructed information extracted from the current (partially reconstructed) image from the current image memory (358). In some cases, the aggregator (355) adds the predictive information generated by the intra-frame prediction unit (352) to the output sample information provided by the scaler / inverse transform unit (351) on a per-sample basis.
[0049] In other cases, the output samples of the scaler / inverse transform unit (351) may belong to an inter-frame coded block and a potential motion compensated block. In this case, the motion compensated prediction unit (353) may access the reference image memory (357) to extract samples for prediction. After the extracted samples are motion compensated according to the symbols (321) belonging to the block, these samples may be added to the output of the scaler / inverse transform unit (351) (in this case referred to as residual samples or residual signals) by the aggregator (355) to generate output sample information. The acquisition of prediction samples by the motion compensated prediction unit (353) from an address in the reference image memory (357) may be controlled by a motion vector. The motion vector is provided to the motion compensated prediction unit (353) in the form of a symbol (321), which may have, for example, X, Y and reference image components. Motion compensation may also include interpolation of sample values extracted from the reference image memory (357) when using sub-sample accurate motion vectors, motion vector prediction mechanisms, etc.
[0050] The output samples of the aggregator (355) may be subjected to various loop filtering techniques in a loop filter unit (356). The video compression techniques may include in-loop filter techniques controlled by parameters included in the coded video bitstream and available to the loop filter unit (356) as symbols (321) from the parser (320), however, the video compression techniques may also be responsive to meta-information obtained during decoding of a previous (in decoding order) portion of a coded picture or coded video sequence, and to previously reconstructed and loop filtered sample values.
[0051] The output of the loop filter unit (356) may be a sample stream that may be output to a rendering device (eg, display (212)) and stored in a reference picture memory (357) for subsequent inter-picture prediction.
[0052] Once fully reconstructed, certain coded pictures may be used as reference pictures for future prediction. Once a coded picture is fully reconstructed, and the coded picture is identified as a reference picture (e.g., by the parser (320)), the current reference picture may become part of the reference picture memory (357), and a new current picture memory may be reallocated before starting reconstruction of a subsequent coded picture.
[0053] The video decoder (210) may perform decoding operations according to a predetermined video compression technique that may be documented in a standard such as ITU-T Recommendation H.265. The encoded video sequence may conform to the syntax specified by the video compression technique or standard used in the sense that the encoded video sequence follows the syntax of the video compression technique or standard (as specified in a video compression technique document or standard, in particular as specified in its profile document). In addition, for compliance with some video compression techniques or standards, the complexity of the encoded video sequence is required to be within a range defined by the hierarchy of the video compression technique or standard. In some cases, the hierarchy limits the maximum picture size, maximum frame rate, maximum reconstruction sampling rate (measured in, for example, mega samples per second), maximum reference picture size, etc. In some cases, the limits set by the hierarchy may be further limited by the hypothetical reference decoder (HRD) specification and metadata of the HRD buffer management signaled in the encoded video sequence.
[0054] In one embodiment, the receiver (310) may receive additional (redundant) data along with the reception of the encoded video. The additional data may be included as part of the encoded video sequence. The additional data may be used by the video decoder (210) to properly decode the data and / or more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.
[0055] Figure 4 An exemplary functional block diagram of a video encoder (203) associated with a video source (201) according to one embodiment of the present disclosure is shown.
[0056] The video encoder (203) may include, for example, an encoder as a source encoder (430), a coding engine (432), a (local) decoder (433), a reference image memory (434), a predictor (435), a transmitter (440), an entropy encoder (445), a controller (450), and a channel (460).
[0057] The encoder (203) may receive video samples from a video source (201) (not a part of the encoder) that may capture video images to be encoded by the encoder (203).
[0058] The video source (201) may provide a source video sequence in the form of a digital video sample stream to be encoded by the encoder (203), the digital video sample stream may have any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, ...), any color space (e.g., BT.601 Y CrCB, RGB, ...), and any suitable sampling structure (e.g., Y CrCb 4:2:0, Y CrCb 4:4:4). In a media service system, the video source (201) may be a storage device storing previously prepared videos. In a video conferencing system, the video source (203) may be a camera that captures local image information as a video sequence. The video data may be provided as a plurality of separate images that are given motion when viewed sequentially. The image itself may be constructed as a spatial pixel array, where each pixel may include one or more samples depending on the sampling structure, color space, etc. used. The relationship between pixels and samples may be easily understood by those skilled in the art. The following description focuses on the samples.
[0059] According to one embodiment, the encoder (203) may encode and compress the images of the source video sequence into an encoded video sequence (443) in real time or under any other time constraints required by the application. Implementing the appropriate encoding speed is a function of the controller (450). The controller (450) may also control other functional units as described below and may be functionally coupled to these units. For clarity, the coupling is not depicted. The parameters set by the controller (450) may include rate control related parameters (e.g., image skipping, quantizer, lambda value of rate-distortion optimization techniques, etc.), image size, group of pictures (GOP) layout, maximum motion vector search range, etc. Those skilled in the art can easily identify other functions of the controller (450) that may be related to the video encoder (203) optimized for a certain system design.
[0060] Some video encoders operate in a loop that is readily recognizable to those skilled in the art as a "coding loop". As a simplified description, the coding loop may include an encoding portion consisting of a source encoder (430) that is responsible for creating symbols based on an input image to be encoded and a reference image, and a (local) decoder (433) embedded in the encoder (203) that reconstructs the symbols to create sample data in a similar manner to how a (remote) decoder may also create sample data, when any compression between the symbols and the encoded video bitstream is lossless in certain video compression techniques. This reconstructed sample stream may be input to a reference image memory (434). Since the decoding of the symbol stream produces bit-accurate results that are independent of the decoder location (local or remote), the contents of the reference image buffer also correspond bit-accurately between the local encoder and the remote encoder. In other words, the reference image samples "seen" by the prediction portion of the encoder are exactly the same sample values that the decoder will "see" when using prediction during decoding. Those skilled in the art are familiar with this basic principle of reference image synchronization (and the drift that occurs when synchronization cannot be maintained, for example due to channel errors).
[0061] The operation of the "local" decoder (433) can be combined with the above Figure 3 The operation of the "remote" decoder (210) described in detail is the same. However, when symbols are available and the entropy encoder (445) and parser (320) can losslessly encode / decode the symbols into an encoded video sequence, the entropy decoding portion of the decoder (210), including the channel (312), receiver (310), buffer (315), and parser (320), may not be fully implemented in the local decoder (433).
[0062] At this point it can be observed that any decoder techniques other than parsing / entropy decoding present in the decoder must also be present in the corresponding encoder in substantially the same functional form. For this reason, the disclosed subject matter focuses on the decoder operation. The description of the encoder techniques can be simplified because the description of the encoder techniques can be reciprocal to the fully described decoder techniques. A more detailed description is only required in certain areas and is provided below.
[0063] As part of its operation, the source encoder (430) may perform motion compensated predictive coding that predictively encodes an input frame with reference to one or more previously encoded frames from a video sequence designated as "reference frames." In this manner, the encoding engine (432) encodes the differences between pixel blocks of an input frame and pixel blocks of a reference frame that may be selected as a prediction reference for the input frame.
[0064] The local video decoder (433) may decode the encoded video data of the frame that may be designated as the reference frame based on the symbol created by the source encoder (430). The operation of the encoding engine (432) may advantageously be a lossy process. When the encoded video data is available at the video decoder ( Figure 4 When decoded at a remote video decoder (not shown), the reconstructed video sequence may typically be a copy of the source video sequence, but with some errors. The local video decoder (433) replicates the decoding process that may be performed by the video decoder on the reference frame and may cause the reconstructed reference frame to be stored in the reference picture memory (434). In this way, the encoder (203) may locally store a copy of the reconstructed reference frame that has common content (absent transmission errors) with the reconstructed reference frame that will be obtained by the remote video decoder.
[0065] The predictor (435) may perform a prediction search for the encoding engine (432). That is, for a new frame to be encoded, the predictor (435) may search the reference image memory (434) for sample data (as candidate reference pixel blocks) or certain metadata, such as reference image motion vectors, block shapes, etc., that may serve as appropriate prediction references for the new image. The predictor (435) may operate on a pixel block by pixel block basis to find a suitable prediction reference. In some cases, as determined by the search results obtained by the predictor (435), the input image may have prediction references taken from multiple reference images stored in the reference image memory (434).
[0066] The controller (450) may manage encoding operations of the video encoder (430), including, for example, setting parameters and subgroup parameters for encoding video data.
[0067] The outputs of all the above functional units may be entropy encoded in an entropy encoder (445). The entropy encoder converts the symbols generated by the various functional units into a coded video sequence by losslessly compressing the symbols according to techniques known to those skilled in the art, such as Huffman coding, variable length coding, arithmetic coding, etc.
[0068] The transmitter (440) may buffer the encoded video sequence created by the entropy encoder (445) in preparation for transmission over a communication channel (460), which may be a hardware / software link to a storage device where the encoded video data will be stored. The transmitter (440) may combine the encoded video data from the video encoder (430) with other data to be transmitted, such as encoded audio data and / or ancillary data streams (source not shown).
[0069] The controller (450) may manage the operation of the encoder (203). During encoding, the controller (450) may assign a certain coded picture type to each coded picture, but this may affect the coding techniques that can be applied to the corresponding picture. For example, pictures may generally be assigned as intra-pictures (I pictures), predictive pictures (P pictures), and bidirectional predictive pictures (B pictures).
[0070] An intra picture (I picture) may be a picture that can be encoded and decoded without using any other frame in the sequence as a prediction source. Some video codecs allow for different types of intra pictures, including, for example, independent decoder refresh (IDR) pictures. Those skilled in the art are aware of those variations of I pictures and their corresponding applications and features.
[0071] A predictive picture (P picture) may be a picture that may be encoded and decoded using intra prediction or inter prediction, which uses at most one motion vector and a reference index to predict sample values for each block.
[0072] Bidirectional predictive pictures (B pictures) can be pictures that can be encoded and decoded using intra-frame prediction or inter-frame prediction, which uses up to two motion vectors and reference indices to predict the sample values of each block. Similarly, multiple predictive pictures can use more than two reference pictures and associated metadata for reconstruction of a single block.
[0073] The source picture may typically be spatially subdivided into blocks of samples (e.g., blocks of 4×4, 8×8, 4×8, or 16×16 samples), and coded block by block. These blocks may be predictively coded with reference to other (already coded) blocks, which are determined by the coding allocation applied to the corresponding picture of the block. For example, a block of an I picture may be non-predictively coded, or the block may be predictively coded (spatial prediction or intra prediction) with reference to already coded blocks of the same picture. A block of a P picture may be non-predictively coded by spatial prediction with reference to one previously coded reference picture or by temporal prediction. A block of a B picture may be non-predictively coded by spatial prediction with reference to one or two previously coded reference pictures or by temporal prediction.
[0074] The video encoder (203) may perform encoding operations according to a predetermined video encoding technique or standard, such as ITU-T Recommendation H.265. In operation, the video encoder (203) may perform various compression operations, including predictive encoding operations that exploit temporal and spatial redundancy in an input video sequence. Thus, the encoded video data may conform to the syntax specified by the video encoding technique or standard used.
[0075] In one embodiment, the transmitter (440) may transmit additional data when transmitting the encoded video. The video encoder (430) may include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data such as redundant pictures and slices, auxiliary enhancement information (SEI) messages, parameter set fragments of video usability information (VUI), etc.
[0076] The embodiments of the present disclosure can achieve the following aspects.
[0077] [1. Sequence parameter set]
[0078] In VVC draft 8, syntax elements in a sequence parameter set (SPS) may be provided, as shown in Table 1 (see the end of the detailed description). Such syntax elements may relate to intra-frame coding and inter-frame coding. Compared to HEVC, a larger number of syntax elements are present in the SPS. It should be noted that for any intra-frame profile consisting of only intra-frame slices, the decoding process may not use inter-frame coding syntax elements. This may be the same for any still picture profile.
[0079] [2. Profiles, layers and levels]
[0080] In VVC draft 9, there may be profile, tier and level syntax elements in SPS as shown in Table 2 below, and there may be general constraint information in profile_tier_level() as shown in Table 3 (see the end of the detailed description).
[0081] Table 2: Profile, layer, and level syntax
[0082]
[0083] The syntax element general_one_picture_only_constraint_flag equal to 1 may specify that there is only one coded picture in the bitstream. The syntax element general_one_picture_only_constraint_flag equal to 0 may not impose such a constraint.
[0084] The syntax element intra_only_constraint_flag equal to 1 may specify that sh_slice_type should be equal to 1. The syntax element intra_only_constraint_flag equal to 0 may not impose such a constraint. When general_one_picture_only_constraint_flag equal to 1, the value of intra_only_constraint_flag equal to 1 may be required.
[0085] [3. Image title]
[0086] In VVC draft 8, syntax elements may be provided in a picture slice header (PH), as shown in Tables 3 and 4 provided below (see the end of the detailed description). A picture may have a combination of intra slices and inter slices. When a picture has only intra slices, inter-coding syntax elements may not be used during decoding. In order to reduce overhead in a picture, ph_inter_slice_allowed_flag and ph_intra_slice_allowed_flag may be used to conditionally signal intra-coding related syntax elements and inter-coding related syntax elements.
[0087] Table 3: Image header RBSP syntax
[0088]
[0089] The syntax element ph_gdr_or_irap_pic_flag is equal to 1, which specifies that the current picture is a GDR or IRAP picture. The syntax element ph_gdr_or_irap_pic_flag is equal to 0, which specifies that the current picture is not a GDR picture and may or may not be an IRAP picture.
[0090] The syntax element ph_gdr_pic_flag is equal to 1, then it may be specified that the picture associated with the PH is a GDR picture. The syntax element ph_gdr_pic_flag is equal to 0, then it may be specified that the picture associated with the PH is not a GDR picture. When ph_gdr_pic_flag is not present, it may be inferred that the value of ph_gdr_pic_flag is equal to 0. When sps_gdr_enabled_flag is equal to 0, it may be required that the value of ph_gdr_pic_flag is equal to 0. According to one embodiment, when ph_gdr_or_irap_pic_flag is equal to 1 and ph_gdr_pic_flag is equal to 0, the picture associated with the PH is an IRAP picture.
[0091] The syntax element ph_inter_slice_allowed_flag equal to 0 may specify that all coded slices of the picture have sh_slice_type equal to 2. The syntax element ph_inter_slice_allowed_flag equal to 1 may specify that one or more coded slices with sh_slice_type equal to 0 or 1 may or may not be present in the picture.
[0092] When ph_gdr_or_irap_pic_flag is equal to 1 and ph_gdr_pic_flag is equal to 0 (ie, the picture is an IRAP picture) and vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 1, the value of ph_inter_slice_allowed_flag may be required to be equal to 0.
[0093] The syntax element ph_intra_slice_allowed_flag equal to 0 may specify that the sh_slice_type of all coded slices of a picture may be equal to 0 or 1. The syntax element ph_intra_slice_allowed_flag equal to 1 may specify that one or more coded slices with sh_slice_type equal to 2 may or may not be present in the picture. When ph_intra_slice_allowed_flag is absent, it is inferred that the value of ph_intra_slice_allowed_flag is equal to 0. According to one embodiment, it is expected that the encoder sets the values of ph_inter_slice_allowed_flag and ph_intra_slice_allowed_flag equal to 1, assuming that the bitstream performs sub-picture based bitstream merging without changing the PH network abstraction layer (NAL) unit.
[0094] The syntax element ph_non_ref_pic_flag equal to 1 may specify that the picture associated with the PH is never used as a reference picture. The syntax element ph_non_ref_pic_flag equal to 0 may specify that the picture associated with the PH may or may not be used as a reference picture.
[0095] The syntax element ph_pic_parameter_set_id may specify the value of pps_pic_parameter_set_id for the PPS used. The value of ph_pic_parameter_set_id may be required to be in the range of 0 to 63 (inclusive).
[0096] The requirement for bitstream conformance may be that the value of TemporalId of PH is greater than or equal to the value of TemporalId of PPS, and the pps_pic_parameter_set_id of PPS is equal to ph_pic_parameter_set_id.
[0097] The syntax element ph_pic_order_cnt_lsb may specify the picture order number modulo MaxPicOrderCntLsb of the current picture. The length of the syntax element ph_pic_order_cnt_lsb may be sps_log2_max_pic_order_cnt_lsb_minus4+4 bits. The value of ph_pic_order_cnt_lsb may be required to be in the range of 0 to MaxPicOrderCntLsb-1, inclusive.
[0098] The syntax element ph_no_output_of_prior_pics_flag affects the output of previously decoded pictures in the DPB after decoding a picture in a CVSS access unit (AU) that is not the first AU in the bitstream.
[0099] A requirement for bitstream conformance may be that when ph_no_output_of_prior_pics_flag is present, the value of ph_no_output_of_prior_pics_flag is the same for all pictures in an AU.
[0100] When ph_no_output_of_prior_pics_flag exists in the PH of a picture in an AU, the ph_no_output_of_prior_pics_flag value of the AU may be the ph_no_output_of_prior_pics_flag value of the picture in the AU.
[0101] The syntax element ph_recovery_poc_cnt may specify a recovery point of a decoded picture in output order.
[0102] When the current image is a GDR image, the variable recoveryPointPocVal can be derived as follows:
[0103] recoveryPointPocVal=PicOrderCntVal+ph_recovery_poc_cnt (1)
[0104] If the current picture is a GDR picture, and there is a picture picA in the coded layer video sequence (CLVS) that follows the current GDR picture in decoding order and whose PicOrderCntVal is equal to recoveryPointPocVal, then the picture picA can be called the recovery point picture. Otherwise, in the CLVS, the first picture (in output order) whose PicOrderCntVal is greater than recoveryPointPocVal can be called the recovery point picture. It may be required that the recovery point picture does not precede the current GDR picture in decoding order. The picture associated with the current GDR picture and whose PicOrderCntVal is less than recoveryPointPocVal can be called the recovery picture of the GDR picture. It may be required that the value of ph_recovery_poc_cnt is in the range of 0 to MaxPicOrderCntLsb-1 (including the endpoints). According to one embodiment, when sps_gdr_enabled_flag is equal to 1 and the PicOrderCntVal of the current picture is greater than or equal to the recoveryPointPocVal of the associated GDR picture, the current picture and the subsequent decoded picture in the output order exactly match the corresponding pictures produced by starting the decoding process from the previous IRAP picture (when present, preceding the associated GDR picture in the decoding order).
[0105] The syntax element ph_extra_bit[i] may be equal to 1 or 0. A decoder may be required to ignore the value of ph_extra_bit[i]. The value of ph_extra_bit[i] may not affect the decoder's compliance with the specified profile.
[0106] The syntax element ph_poc_msb_cycle_present_flag is equal to 1, which specifies that the syntax element ph_poc_msb_cycle_val is present in the PH. The syntax element ph_poc_msb_cycle_present_flag is equal to 0, which specifies that the syntax element ph_poc_msb_cycle_val is not present in the PH. The value of ph_poc_msb_cycle_present_flag is equal to 0 when vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 0 and there is a picture in the current AU in the reference layer of the current layer.
[0107] The syntax element ph_poc_msb_cycle_val may specify the value of the POC MSB cycle of the current picture. The length of the syntax element ph_poc_msb_cycle_val may be sps_poc_msb_cycle_len_minus1+1 bits.
[0108] The syntax element ph_alf_enabled_flag equal to 1 may specify that the adaptive loop filter is enabled and can be used for the current picture. The syntax element ph_alf_enabled_flag equal to 0 may specify that the adaptive loop filter is disabled and not used for the current picture. When ph_alf_enabled_flag is not present, it can be inferred that ph_alf_enabled_flag is equal to 0.
[0109] The syntax element ph_num_alf_aps_ids_luma may specify the number of ALF APSs referenced by the slice associated with the PH.
[0110] The syntax element ph_alf_aps_id_luma[i] specifies the aps_adaptation_parameter_set_id of the i-th adaptive loop filter (ALF) adaptation parameter set (APS) referenced by the luma component of the slice associated with the PH.
[0111] When ph_alf_aps_id_luma[i] is present, the following applies:
[0112] (a) The value of alf_luma_filter_signal_flag shall be equal to 1 for APS NAL units whose aps_params_type is equal to ALF_APS and aps_adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i].
[0113] (b) The TemporalId of the APS NAL unit whose aps_params_type is equal to ALF_APS and aps_adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] shall be less than or equal to the TemporalId of the picture associated with the PH.
[0114] (c) When ChromaArrayType is equal to 0, the value of aps_chroma_present_flag shall be equal to 0 for the APS NAL units whose aps_params_type is equal to ALF_APS and whose aps_adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i].
[0115] (d) When sps_ccalf_enabled_flag is equal to 0, the values of alf_cc_cb_filter_signal_flag and alf_cc_cr_filter_signal_flag shall be equal to 0 for the APS NAL units whose aps_params_type is equal to ALF_APS and whose aps_adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i].
[0116] The syntax element ph_alf_cb_flag is equal to 0, which specifies that the adaptive loop filter is disabled and not applied to the Cb color component of the current picture. The syntax element ph_alf_cb_flag is equal to 1, which specifies that the adaptive loop filter is enabled and applicable to the Cb color component of the current picture. When ph_alf_cb_flag is not present, it can be inferred that ph_alf_cb_flag is equal to 0.
[0117] The syntax element ph_alf_cr_flag is equal to 0, which specifies that the adaptive loop filter is disabled and not applied to the Cr color components of the current picture. The syntax element ph_alf_cr_flag is equal to 1, which specifies that the adaptive loop filter is enabled and applicable to the Cr color components of the current picture. When ph_alf_cr_flag is not present, it can be inferred that ph_alf_cr_flag is equal to 0.
[0118] The syntax element ph_alf_aps_id_chroma may specify the aps_adaptation_parameter_set_id of the ALF APS to which the chroma components of the slice associated with the PH refer.
[0119] When ph_alf_aps_id_chroma is present, the following applies:
[0120] (1) The value of alf_chroma_filter_signal_flag shall be equal to 1 for APS NAL units whose aps_params_type is equal to ALF_APS and aps_adaptation_parameter_set_id is equal to ph_alf_aps_id_chroma.
[0121] (2) The TemporalId of the APS NAL unit whose aps_params_type is equal to ALF_APS and aps_adaptation_parameter_set_id is equal to ph_alf_aps_id_chroma shall be less than or equal to the TemporalId of the picture associated with the PH.
[0122] (3) When sps_ccalf_enabled_flag is equal to 0, the values of alf_cc_cb_filter_signal_flag and alf_cc_cr_filter_signal_flag of the APS NAL units whose aps_params_type is equal to ALF_APS and whose aps_adaptation_parameter_set_id is equal to ph_alf_aps_id_chroma shall be equal to 0.
[0123] The syntax element ph_cc_alf_cb_enabled_flag is equal to 1, which specifies that the cross-component adaptive loop filter for the Cb color component is enabled and can be used for the current picture. The syntax element ph_cc_alf_cb_enabled_flag is equal to 0, which specifies that the cross-component adaptive loop filter for the Cb color component is disabled and not used for the current picture. When ph_cc_alf_cb_enabled_flag is not present, it can be inferred that ph_cc_alf_cb_enabled_flag is equal to 0.
[0124] The syntax element ph_cc_alf_cb_aps_id may specify the aps_adaptation_parameter_set_id of the ALF APS referenced by the Cb color component of the slice associated with the PH.
[0125] When ph_cc_alf_cb_aps_id is present, the following applies:
[0126] (1) The value of alf_cc_cb_filter_signal_flag shall be equal to 1 for APS NAL units whose aps_params_type is equal to ALF_APS and aps_adaptation_parameter_set_id is equal to ph_cc_alf_cb_aps_id.
[0127] (2) The TemporalId of the APS NAL unit whose aps_params_type is equal to ALF_APS and aps_adaptation_parameter_set_id is equal to ph_cc_alf_cb_aps_id shall be less than or equal to the TemporalId of the picture associated with the PH.
[0128] The syntax element ph_cc_alf_cr_enabled_flag is equal to 1, which specifies that the cross-component adaptive loop filter for Cr color components is enabled and can be used for the current picture. The syntax element ph_cc_alf_cr_enabled_flag is equal to 0, which specifies that the cross-component adaptive loop filter for Cr color components is disabled and not used for the current picture. When ph_cc_alf_cr_enabled_flag is not present, it can be inferred that ph_cc_alf_cr_enabled_flag is equal to 0.
[0129] The syntax element ph_cc_alf_cr_aps_id may specify the aps_adaptation_parameter_set_id of the ALF APS referenced by the Cr color components of the slice associated with the PH.
[0130] When ph_cc_alf_cr_aps_id is present, the following applies:
[0131] (1) The value of alf_cc_cr_filter_signal_flag shall be equal to 1 for APS NAL units whose aps_params_type is equal to ALF_APS and aps_adaptation_parameter_set_id is equal to ph_cc_alf_cr_aps_id.
[0132] (2) The TemporalId of the APS NAL unit whose aps_params_type is equal to ALF_APS and aps_adaptation_parameter_set_id is equal to ph_cc_alf_cr_aps_id shall be less than or equal to the TemporalId of the picture associated with the PH.
[0133] The syntax element ph_lmcs_enabled_flag is equal to 1 to specify that luma mapping with chroma scaling is enabled and available for the current image. The syntax element ph_lmcs_enabled_flag is equal to 0 to specify that luma mapping with chroma scaling is disabled and not available for the current image. When ph_lmcs_enabled_flag is not present, the value of ph_lmcs_enabled_flag is inferred to be equal to 0.
[0134] The syntax element ph_lmcs_aps_id may specify the aps_adaptation_parameter_set_id of the LMCS APS referenced by the slice associated with the PH.
[0135] When ph_lmcs_aps_id is present, the following applies:
[0136] (1) The TemporalId of the APS NAL unit whose aps_params_type is equal to LMCS_APS and aps_adaptation_parameter_set_id is equal to ph_lmcs_aps_id shall be less than or equal to the TemporalId of the picture associated with the PH.
[0137] (2) When ChromaArrayType is equal to 0, the value of aps_chroma_present_flag of the APS NAL unit whose aps_params_type is equal to LMCS_APS and aps_adaptation_parameter_set_id is equal to ph_lmcs_aps_id shall be equal to 0.
[0138] (3) The value of lmcs_delta_cw_prec_minus1 of the APS NAL unit whose aps_params_type is equal to LMCS_APS and aps_adaptation_parameter_set_id is equal to ph_lmcs_aps_id shall be in the range of 0 to BitDepth-2 (inclusive).
[0139] The syntax element ph_chroma_residual_scale_flag equal to 1 may specify that chroma residual scaling is enabled and can be used for the current picture. The syntax element ph_chroma_residual_scale_flag equal to 0 may specify that chroma residual scaling is disabled and not used for the current picture. When ph_chroma_residual_scale_flag is not present, it is inferred that ph_chroma_residual_scale_flag is equal to 0. According to one embodiment, when the current image is a GDR image or a restored image of a GDR image, and the current image contains a non-CTU-aligned boundary between a "refresh area" (i.e., an area that has an exact match of decoded sample values when the decoding process is started from the GDR image, compared to when the decoding process is started from the preceding IRAP image in decoding order (when present)) and a "dirty area" (i.e., an area that may not have an exact match of decoded sample values when the decoding process is started from the GDR image, compared to when the decoding process is started from the preceding IRAP image in decoding order (when present), the chroma residual scaling of the LMCS can be disabled in the current image to avoid the "dirty area" affecting the decoded sample values of the "refresh area".
[0140] The syntax element ph_explicit_scaling_list_enabled_flag equal to 1 specifies that the explicit scaling list is enabled and can be used for the current picture in the scaling process of transform coefficients when decoding the slice. The syntax element ph_explicit_scaling_list_enabled_flag equal to 0 specifies that the explicit scaling list is disabled and not used for the picture. When ph_explicit_scaling_list_enabled_flag is not present, the value of ph_explicit_scaling_list_enabled_flag is inferred to be equal to 0.
[0141] The syntax element ph_scaling_list_aps_id may specify the aps_adaptation_parameter_set_id of the scaling list APS.
[0142] When ph_scaling_list_aps_id is present, the following applies:
[0143] (1) The TemporalId of the APS NAL unit whose aps_params_type is equal to SCALING_APS and aps_adaptation_parameter_set_id is equal to ph_scaling_list_aps_id shall be less than or equal to the TemporalId of the picture associated with the PH.
[0144] (2) The aps_chroma_present_flag value of the APS NAL unit whose aps_params_type is equal to SCALING_APS and aps_adaptation_parameter_set_id is equal to ph_scaling_list_aps_id shall be equal to ChromaArrayType==0?0:1.
[0145] The syntax element ph_virtual_boundaries_present_flag is equal to 1, then it may be specified that information about virtual boundaries is signaled in the PH. The syntax element ph_virtual_boundaries_present_flag is equal to 0, then it may be specified that information about virtual boundaries is not signaled in the PH. When one or more virtual boundaries are signaled in the PH, in-loop filtering operations may be disabled across virtual boundaries in the picture. In-loop filtering operations may include deblocking filter operations, sample adaptive offset filter operations, and adaptive loop filter operations. When ph_virtual_boundaries_present_flag is not present, the value of ph_virtual_boundaries_present_flag may be inferred to be equal to 0.
[0146] A requirement for bitstream conformance may be that when sps_subpic_info_present_flag is equal to 1, the value of ph_virtual_boundaries_present_flag is equal to 0.
[0147] The variable VirtualBoundariesPresentFlag can be derived as follows:
[0148] VirtualBoundariesPresentFlag=0
[0149] if(sps_virtual_boundaries_enabled_flag)
[0150] VirtualBoundariesPresentFlag=sps_virtual_boundaries_present_flag||
[0151] ph_virtual_boundaries_present_flag
[0152] The syntax element ph_num_ver_virtual_boundaries may specify the number of syntax elements ph_virtual_boundary_pos_x[i] present in the PH. When ph_num_ver_virtual_boundaries is not present, it may be inferred that ph_num_ver_virtual_boundaries is equal to zero.
[0153] The variable NumVerVirtualBoundaries can be derived as follows:
[0154] NumVerVirtualBoundaries=0
[0155] if(sps_virtual_boundaries_enabled_flag)
[0156] NumVerVirtualBoundaries=sps_virtual_boundaries_present_flag?
[0157] sps_num_ver_virtual_boundaries: ph_num_ver_virtual_boundaries
[0158] The syntax element ph_virtual_boundary_pos_x[i] may specify the position of the i-th vertical virtual boundary in units of luma samples divided by 8. The value of ph_virtual_boundary_pos_x[i] may be required to be in the range of 1 to Ceil(pps_pic_width_in_luma_samples÷8)-1, inclusive.
[0159] A list VirtualBoundaryPosX[i] specifying the positions of vertical virtual boundaries in units of luma samples (where i is in the range of 0 to NumVerVirtualBoundaries-1, inclusive) can be derived as follows:
[0160] for(i=0;i <NumVerVirtualBoundaries;i++)
[0161] VirtualBoundaryPosX[i]=(sps_virtual_boundaries_present_flag?
[0162] sps_virtual_boundary_pos_x[i]:ph_virtual_boundary_pos_x[i])*8 may require that the distance between any two vertical virtual boundaries is greater than or equal to CtbSizeY brightness samples.
[0163] The syntax element ph_num_hor_virtual_boundaries may specify the number of syntax elements ph_virtual_boundary_pos_y[i] present in the PH. When ph_num_hor_virtual_boundaries is not present, it may be inferred that ph_num_hor_virtual_boundaries is equal to zero.
[0164] The parameter NumHorVirtualBoundaries can be derived as follows:
[0165] NumHorVirtualBoundaries = 0
[0166] if(sps_virtual_boundaries_enabled_flag)
[0167] NumHorVirtualBoundaries=sps_virtual_boundaries_present_flag?
[0168] sps_num_hor_virtual_boundaries: ph_num_hor_virtual_boundaries
[0169] When sps_virtual_boundaries_enabled_flag is equal to 1 and ph_virtual_boundaries_present_flag is equal to 1, the sum of ph_num_ver_virtual_boundaries and ph_num_hor_virtual_boundaries may be required to be greater than 0.
[0170] The syntax element ph_virtual_boundary_pos_y[i] may specify the position of the i-th horizontal virtual boundary in units of luma samples divided by 8. The value of ph_virtual_boundary_pos_y[i] may be required to be in the range of 1 to Ceil(pps_pic_height_in_luma_samples÷8)-1, inclusive.
[0171] A list VirtualBoundaryPosY[i] specifying the positions of horizontal virtual boundaries in units of luma samples, where i is in the range of 0 to NumHorVirtualBoundaries-1 (inclusive), can be derived as follows:
[0172] for(i=0;i <NumHorVirtualBoundaries;i++)
[0173] VirtualBoundaryPosY[i]=(sps_virtual_boundaries_present_flag?sps_virtual_boundary_pos_y[i]:ph_virtual_boundary_pos_y[i])*8
[0174] It may be necessary that the distance between any two horizontal virtual boundaries is greater than or equal to CtbSizeY brightness samples.
[0175] The syntax element ph_pic_output_flag may affect the decoded picture output and removal process. When ph_pic_output_flag is not present, it may be inferred that ph_pic_output_flag is equal to 1. According to one embodiment, there may be no pictures with ph_non_ref_pic_flag equal to 1 and ph_pic_output_flag equal to 0 in the bitstream.
[0176] The syntax element ph_partition_constraints_override_flag is equal to 1, which specifies that partition constraint parameters are present in the PH. The syntax element ph_partition_constraints_override_flag is equal to 0, which specifies that partition constraint parameters are not present in the PH. When ph_partition_constraints_override_flag is not present, it is inferred that the value of ph_partition_constraints_override_flag is equal to 0.
[0177] The syntax element ph_log2_diff_min_qt_min_cb_intra_slice_luma may specify the difference between the base-2 logarithm of the minimum size of luma samples of luma leaf blocks resulting from quadtree partitioning of a coding tree unit (CTU) and the base-2 logarithm of the minimum coding block size of luma samples of luma CUs in slices associated with the PH whose sh_slice_type is equal to 2(1). The value of ph_log2_diff_min_qt_min_cb_intra_slice_luma may be required to be in the range of 0 to Min(6, CtbLog2SizeY)-MinCbLog2SizeY, inclusive. When ph_log2_diff_min_qt_min_cb_luma is not present, the value of ph_log2_diff_min_qt_min_cb_luma may be inferred to be equal to sps_log2_diff_min_qt_min_cb_intra_slice_luma.
[0178] The syntax element ph_max_mtt_hierarchy_depth_intra_slice_luma may specify the maximum layer depth of a coding unit resulting from multi-type tree partitioning of quadtree leaves in a slice associated with the PH whose sh_slice_type is equal to 2(I). The value of ph_max_mtt_hierarchy_depth_intra_slice_luma may be required to be in the range of 0 to 2*(CtbLog2SizeY-MinCbLog2SizeY), inclusive. When ph_max_mtt_hierarchy_depth_intra_slice_luma is not present, the value of ph_max_mtt_hierarchy_depth_intra_slice_luma may be inferred to be equal to sps_max_mtt_hierarchy_depth_intra_slice_luma.
[0179] The syntax element ph_log2_diff_max_bt_min_qt_intra_slice_luma may specify the difference between the base-2 logarithm of the maximum size (width or height) of luma samples of a luma coding block that may be partitioned using binary partitioning and the minimum size (width or height) of luma samples of luma leaf blocks resulting from CTU quadtree partitioning in slices associated with the PH whose sh_slice_type is equal to 2(I). The value of ph_log2_diff_max_bt_min_qt_intra_slice_luma may be required to be in the range of 0 to (sps_qtbtt_dual_tree_intra_flag?Min(6, CtbLog2SizeY):CtbLog2SizeY)-MinQtLog2SizeIntraY, inclusive. When ph_log2_diff_max_bt_min_qt_intra_slice_luma is not present, the value of ph_log2_diff_max_bt_min_qt_intra_slice_luma may be inferred to be equal to sps_log2_diff_max_bt_min_qt_intra_slice_luma.
[0180] The syntax element ph_log2_diff_max_tt_min_qt_intra_slice_luma may specify the difference between the base-2 logarithm of the maximum size (width or height) of luma samples of a luma coding block that may be partitioned using ternary partitioning and the minimum size (width or height) of luma samples of luma leaf blocks resulting from CTU quadtree partitioning in slices associated with the PH whose sh_slice_type is equal to 2(I). The value of ph_log2_diff_max_tt_min_qt_intra_slice_luma may be required to be in the range of 0 to Min(6, CtbLog2SizeY)-MinQtLog2SizeIntraY, inclusive. When ph_log2_diff_max_tt_min_qt_intra_slice_luma is not present, the value of ph_log2_diff_max_tt_min_qt_intra_slice_luma may be inferred to be equal to sps_log2_diff_max_tt_min_qt_intra_slice_luma.
[0181] The syntax element ph_log2_diff_min_qt_min_cb_intra_slice_chroma may specify the difference between the base-2 logarithm of the minimum size of luma samples of chroma leaf blocks resulting from quadtree partitioning of chroma CTUs whose treeType is equal to DUAL_TREE_CHROMA and the base-2 logarithm of the minimum coding block size of luma samples of chroma CUs whose treeType is equal to DUAL_TREE_CHROMA in the slice associated with the PH whose sh_slice_type is equal to 2(I). The value of ph_log2_diff_min_qt_min_cb_intra_slice_chroma may be required to be in the range of 0 to Min(6, CtbLog2SizeY)-MinCbLog2SizeY, inclusive. When ph_log2_diff_min_qt_min_cb_intra_slice_chroma is not present, the value of ph_log2_diff_min_qt_min_cb_intra_slice_chroma may be inferred to be equal to sps_log2_diff_min_qt_min_cb_intra_slice_chroma.
[0182] The syntax element ph_max_mtt_hierarchy_depth_intra_slice_chroma may specify the maximum layer depth of chroma coding units resulting from multi-type tree partitioning of chroma quadtree leaves with treeType equal to DUAL_TREE_CHROMA in a slice associated with the PH with sh_slice_type equal to 2(I). The value of ph_max_mtt_hierarchy_depth_intra_slice_chroma may be required to be in the range of 0 to 2*(CtbLog2SizeY-MinCbLog2SizeY), inclusive. When ph_max_mtt_hierarchy_depth_intra_slice_chroma is not present, the value of ph_max_mtt_hierarchy_depth_intra_slice_chroma may be inferred to be equal to sps_max_mtt_hierarchy_depth_intra_slice_chroma.
[0183] The syntax element ph_log2_diff_max_bt_min_qt_intra_slice_chroma may specify the difference between the base-2 logarithm of the maximum size (width or height) of luma samples of a chroma coding block that may be partitioned using binary partitioning and the minimum size (width or height) of luma samples of chroma leaf blocks resulting from quadtree partitioning of chroma CTUs with treeType equal to DUAL_TREE_CHROMA in a slice associated with the PH with sh_slice_type equal to 2(I). The value of ph_log2_diff_max_bt_min_qt_intra_slice_chroma may be required to be in the range of 0 to Min(6, CtbLog2SizeY)-MinQtLog2SizeIntraC, inclusive. When ph_log2_diff_max_bt_min_qt_intra_slice_chroma is not present, the value of ph_log2_diff_max_bt_min_qt_intra_slice_chroma may be inferred to be equal to sps_log2_diff_max_bt_min_qt_intra_slice_chroma.
[0184] The syntax element ph_log2_diff_max_tt_min_qt_intra_slice_chroma may specify the difference between the base-2 logarithm of the maximum size (width or height) of luma samples of a chroma coding block that may be partitioned using ternary partitioning and the minimum size (width or height) of luma samples of chroma leaf blocks resulting from quadtree partitioning of chroma CTUs with treeType equal to DUAL_TREE_CHROMA in a slice associated with the PH with sh_slice_type equal to 2(I). The value of ph_log2_diff_max_tt_min_qt_intra_slice_chroma may be required to be in the range of 0 to Min(6, CtbLog2SizeY)-MinQtLog2SizeIntraC, inclusive. When ph_log2_diff_max_tt_min_qt_intra_slice_chroma is not present, the value of ph_log2_diff_max_tt_min_qt_intra_slice_chroma may be inferred to be equal to sps_log2_diff_max_tt_min_qt_intra_slice_chroma.
[0185] The syntax element ph_cu_qp_delta_subdiv_intra_slice may specify the maximum cbSubdiv value for coding units that convey cu_qp_delta_abs and cu_qp_delta_sign_flag in an intra slice. The value of ph_cu_qp_delta_subdiv_intra_slice may be required to be in the range of 0 to 2*(CtbLog2SizeY-MinQtLog2SizeIntraY+ph_max_mtt_hierarchy_depth_intra_slice_luma), inclusive. When ph_cu_qp_delta_subdiv_intra_slice is not present, the value of ph_cu_qp_delta_subdiv_intra_slice may be inferred to be equal to 0.
[0186] The syntax element ph_cu_chroma_qp_offset_subdiv_intra_slice may specify the maximum cbSubdiv value for coding units that convey cu_chroma_qp_offset_flag in intra slices. The value of ph_cu_chroma_qp_offset_subdiv_intra_slice may be required to be in the range of 0 to 2*(CtbLog2SizeY-MinQtLog2SizeIntraY+ph_max_mtt_hierarchy_depth_intra_slice_luma), inclusive. When ph_cu_chroma_qp_offset_subdiv_intra_slice is not present, the value of ph_cu_chroma_qp_offset_subdiv_intra_slice may be inferred to be equal to 0.
[0187] The syntax element ph_log2_diff_min_qt_min_cb_inter_slice may specify the difference between the base-2 logarithm of the minimum size of luma samples of luma leaf blocks resulting from quadtree partitioning of the CTU and the base-2 logarithm of the minimum luma coding block size of luma samples of the luma CU in slices associated with the PH whose sh_slice_type is equal to 0 (B) or 1 (P). The value of ph_log2_diff_min_qt_min_cb_inter_slice may be required to be in the range of 0 to Min(6, CtbLog2SizeY)-MinCbLog2SizeY, inclusive. When ph_log2_diff_min_qt_min_cb_luma is not present, the value of ph_log2_diff_min_qt_min_cb_luma may be inferred to be equal to sps_log2_diff_min_qt_min_cb_inter_slice.
[0188] The syntax element ph_max_mtt_hierarchy_depth_inter_slice may specify the maximum layer depth of a coding unit resulting from multi-type tree partitioning of a quadleaf in a slice associated with the PH whose sh_slice_type is equal to 0 (B) or 1 (P). The value of ph_max_mtt_hierarchy_depth_inter_slice may be required to be in the range of 0 to 2*(CtbLog2SizeY-MinCbLog2SizeY), inclusive. When ph_max_mtt_hierarchy_depth_inter_slice is not present, the value of ph_max_mtt_hierarchy_depth_inter_slice may be inferred to be equal to sps_max_mtt_hierarchy_depth_inter_slice.
[0189] The syntax element ph_log2_diff_max_bt_min_qt_inter_slice may specify the difference between the base-2 logarithm of the maximum size (width or height) of luma samples of a luma coding block that may be partitioned using binary partitioning and the minimum size (width or height) of luma samples of luma leaf blocks resulting from quadtree partitioning of the CTU in a slice associated with the PH whose sh_slice_type is equal to 0 (B) or 1 (P). The value of ph_log2_diff_max_bt_min_qt_inter_slice may be required to be in the range of 0 to CtbLog2SizeY-MinQtLog2SizeInterY, inclusive. When ph_log2_diff_max_bt_min_qt_inter_slice is not present, the value of ph_log2_diff_max_bt_min_qt_inter_slice may be inferred to be equal to sps_log2_diff_max_bt_min_qt_inter_slice.
[0190] The syntax element ph_log2_diff_max_tt_min_qt_inter_slice may specify the difference between the base-2 logarithm of the maximum size (width or height) of luma samples of a luma coding block that may be partitioned using ternary partitioning and the minimum size (width or height) of luma samples of luma leaf blocks resulting from quadtree partitioning of the CTU in a slice associated with the PH whose sh_slice_type is equal to 0 (B) or 1 (P). The value of ph_log2_diff_max_tt_min_qt_inter_slice may be required to be in the range of 0 to Min(6, CtbLog2SizeY)-MinQtLog2SizeInterY, inclusive. When ph_log2_diff_max_tt_min_qt_inter_slice is not present, the value of ph_log2_diff_max_tt_min_qt_inter_slice may be inferred to be equal to sps_log2_diff_max_tt_min_qt_inter_slice.
[0191] The syntax element ph_cu_qp_delta_subdiv_inter_slice may specify the maximum cbSubdiv value for coding units that convey cu_qp_delta_abs and cu_qp_delta_sign_flag in inter slices. The value of ph_cu_qp_delta_subdiv_inter_slice may be required to be in the range of 0 to 2*(CtbLog2SizeY-MinQtLog2SizeInterY+ph_max_mtt_hierarchy_depth_inter_slice), inclusive. When ph_cu_qp_delta_subdiv_inter_slice is not present, the value of ph_cu_qp_delta_subdiv_inter_slice may be inferred to be equal to 0.
[0192] The syntax element ph_cu_chroma_qp_offset_subdiv_inter_slice may specify the maximum cbSubdiv value for coding units that convey cu_chroma_qp_offset_flag in inter slices. The value of ph_cu_chroma_qp_offset_subdiv_inter_slice may be required to be in the range of 0 to 2*(CtbLog2SizeY-MinQtLog2SizeInterY+ph_max_mtt_hierarchy_depth_inter_slice), inclusive. When ph_cu_chroma_qp_offset_subdiv_inter_slice is not present, the value of ph_cu_chroma_qp_offset_subdiv_inter_slice may be inferred to be equal to 0.
[0193] The syntax element ph_temporal_mvp_enabled_flag is equal to 0 to specify that the temporal motion vector predictor is disabled and is not used for decoding slices in the current picture. The syntax element ph_temporal_mvp_enabled_flag is equal to 1 to specify that the temporal motion vector predictor is enabled and can be used for decoding slices in the current picture. When ph_temporal_mvp_enabled_flag is not present, it can be inferred that the value of ph_temporal_mvp_enabled_flag is equal to 0. According to one embodiment, due to other existing constraints, the value of ph_temporal_mvp_enabled_flag in a conforming bitstream can only be equal to 0 when one or more of the following conditions are true: (1) there is no reference picture in the DPB with the same spatial resolution and the same scaling window offset as the current picture; (2) there is no reference picture in the decoded picture buffer (DPB) in the valid entries of the reference picture lists (RPLs) of all slices in the current picture. There may be other conditions not listed, under which ph_temporal_mvp_enabled_flag can only be equal to 0.
[0194] The maximum number of sub-block-based merge MVP candidates MaxNumSubblockMergeCand can be derived as follows:
[0195]
[0196]
[0197] It may be desirable for the value of MaxNumSubblockMergeCand to be in the range of 0 to 5 (inclusive).
[0198] The syntax element ph_collocated_from_l0_flag is equal to 1 to specify that the collocated picture used for temporal motion vector prediction is derived from reference picture list 0. The syntax element ph_collocated_from_l0_flag is equal to 0 to specify that the collocated picture used for temporal motion vector prediction is derived from reference picture list 1. The value of ph_collocated_from_l0_flag is inferred to be 1 when both ph_temporal_mvp_enabled_flag and pps_rpl_info_in_ph_flag are equal to 1 and num_ref_entries[1][RplsIdx[1]] is equal to 0.
[0199] The syntax element ph_collocated_ref_idx may specify the reference index of the collocated picture used for temporal motion vector prediction.
[0200] When ph_collocated_from_l0_flag is equal to 1, ph_collocated_ref_idx may refer to an entry in reference picture list 0, and the value of ph_collocated_ref_idx may be required to be in the range of 0 to num_ref_entries[0][RplsIdx[0]]-1, inclusive. When ph_collocated_from_l0_flag is equal to 0, ph_collocated_ref_idx may refer to an entry in reference picture list 1, and the value of ph_collocated_ref_idx may be required to be in the range of 0 to num_ref_entries[1][RplsIdx[1]]-1, inclusive. When ph_collocated_ref_idx is not present, the value of ph_collocated_ref_idx may be inferred to be equal to 0.
[0201] The syntax element ph_mmvd_fullpel_only_flag is equal to 1, then it may be specified that the merge mode with motion vector differences uses integer sample precision for slices associated with the PH. The syntax element ph_mmvd_fullpel_only_flag is equal to 0, then it may be specified that the merge mode with motion vector differences uses fractional sample precision for slices associated with the PH. When ph_mmvd_fullpel_only_flag is not present, the value of ph_mmvd_fullpel_only_flag may be inferred to be 0.
[0202] The syntax element ph_mvd_l1_zero_flag equal to 1 specifies that the syntax structure mvd_coding(x0, y0, 1, cpIdx) is not parsed, and MvdL1[x0][y0][compIdx] and MvdCpL1[x0][y0][cpIdx][compIdx] are set equal to 0, where compIdx = 0..1, cpIdx = 0..2. The syntax element ph_mvd_l1_zero_flag equal to 0 specifies that the syntax structure mvd_coding(x0, y0, 1, cpIdx) is parsed. When ph_mvd_l1_zero_flag is not present, the value of ph_mvd_l1_zero_flag is inferred to be 1.
[0203] The syntax element ph_bdof_disabled_flag equal to 1 may specify that inter prediction based on bidirectional optical flow is disabled and not used for slices associated with PH. The syntax element ph_bdof_disabled_flag equal to 0 may specify that inter prediction based on bidirectional optical flow is enabled and can be used for slices associated with PH.
[0204] When ph_bdof_disabled_flag is not present, the value of ph_bdof_disabled_flag may be inferred as follows:
[0205] (1) If sps_bdof_control_present_in_ph_flag is equal to 0, then the value of ph_bdof_disabled_flag is inferred to be equal to 1-sps_bdof_enabled_flag.
[0206] (2) Otherwise (sps_bdof_control_present_in_ph_flag is equal to 1), it is inferred that the value of ph_bdof_disabled_flag is equal to 1.
[0207] The syntax element ph_dmvr_disabled_flag equal to 1 may specify that inter bi-prediction based on decoder motion vector refinement is disabled and not used for slices associated with the PH. The syntax element ph_dmvr_disabled_flag equal to 0 may specify that inter bi-prediction based on decoder motion vector refinement is enabled and may be used for slices associated with the PH.
[0208] When ph_dmvr_disabled_flag is not present, the value of ph_dmvr_disabled_flag may be inferred as follows:
[0209] (1) If sps_dmvr_control_present_in_ph_flag is equal to 0, then the value of ph_dmvr_disabled_flag is inferred to be equal to 1-sps_dmvr_enabled_flag.
[0210] (2) Otherwise (sps_dmvr_control_present_in_ph_flag is equal to 1), it is inferred that the value of ph_dmvr_disabled_flag is equal to 1.
[0211] The syntax element ph_prof_disabled_flag equal to 1 may specify that prediction refinement using optical flow is disabled and not used for slices associated with the PH. The syntax element ph_prof_disabled_flag equal to 0 may specify that prediction refinement using optical flow is enabled and can be used for slices associated with the PH.
[0212] When ph_prof_disabled_flag is not present, the following applies:
[0213] (1) If sps_affine_prof_enabled_flag is equal to 1, then the value of ph_prof_disabled_flag is inferred to be equal to 0.
[0214] (2) Otherwise (sps_affine_prof_enabled_flag is equal to 0), it is inferred that the value of ph_prof_disabled_flag is equal to 1.
[0215] The syntax element ph_qp_delta may specify the initial value Qp to be used for coding blocks in a picture. Y , until modified by the value CuQpDeltaVal in the coding unit layer.
[0216] When pps_qp_delta_info_in_ph_flag is equal to 1, the Qp of all slices of the picture Y The initial value of the quantization parameter SliceQpY can be derived as follows:
[0217] SliceQp Y =26+pps_init_qp_minus26+ph_qp_delta
[0218] SliceQp may be needed Y The value of is in the range of -QpBdOffset to +63 (inclusive of the endpoints).
[0219] The syntax element ph_joint_cbcr_sign_flag may specify whether the concatenated residual samples of the two chroma components have inverted signs in the transform unit whose tu_joint_cbcr_residual_flag[x0][y0] is equal to 1. When tu_joint_cbcr_residual_flag[x0][y0] is equal to 1 for the transform unit, ph_joint_cbcr_sign_flag is equal to 0, which specifies that the sign of each residual sample of the Cr (or Cb) component is the same as the sign of the concatenated Cb (or Cb) residual sample, and ph_joint_cbcr_sign_flag is equal to 1, which specifies that the sign of each residual sample of the Cr (or Cb) component is given by the inverted sign of the concatenated Cb (or Cb) residual sample.
[0220] The syntax element ph_sao_luma_enabled_flag equal to 1 may specify that Sample Adaptive Offset (SAO) is enabled and available for the luma component of the current picture. The syntax element ph_sao_luma_enabled_flag equal to 0 may specify that SAO is disabled and not available for the luma component of the current picture. When ph_sao_luma_enabled_flag is not present, it is inferred that ph_sao_luma_enabled_flag is equal to 0.
[0221] The syntax element ph_sao_chroma_enabled_flag equal to 1 may specify that SAO is enabled and available for the chroma components of the current picture. The syntax element ph_sao_chroma_enabled_flag equal to 0 may specify that SAO is disabled and not available for the chroma components of the current picture. When ph_sao_chroma_enabled_flag is not present, it is inferred that ph_sao_chroma_enabled_flag is equal to 0.
[0222] The syntax element ph_deblocking_filter_override_flag is equal to 1, which specifies that deblocking parameters are present in the PH. The syntax element ph_deblocking_filter_override_flag is equal to 0, which specifies that deblocking parameters are not present in the PH. When ph_deblocking_filter_override_flag is not present, the value of ph_deblocking_filter_override_flag is inferred to be equal to 0.
[0223] If the syntax element ph_deblocking_filter_disabled_flag is equal to 1, then: it can be specified that the operation of the deblocking filter is not applied to the slices associated with the PH, where sh_deblocking_filter_disabled_flag is not present in the sequence header (SH) and is inferred to be equal to 1, or is present in the SH and is inferred to be equal to 1; it can also be specified that the operation of the deblocking filter is applied to the slices associated with the PH, where sh_deblocking_filter_disabled_flag is not present in the SH and is inferred to be equal to 0, or is present in the SH and is equal to 0.
[0224] If the syntax element ph_deblocking_filter_disabled_flag is equal to 0, then: it can be specified that the operation of the deblocking filter is applied to the slice associated with the PH, where sh_deblocking_filter_disabled_flag is not present in the SH and is inferred to be equal to 0, or is present in the SH and is equal to 0; it can also be specified that the operation of the deblocking filter is not applied to the slice associated with the PH, where sh_deblocking_filter_disabled_flag is not present in the SH and is inferred to be equal to 1, or is present in the SH and is equal to 1.
[0225] When ph_deblocking_filter_disabled_flag is not present, ph_deblocking_filter_disabled_flag may be inferred as follows:
[0226] (1) If both pps_deblocking_filter_disabled_flag and ph_deblocking_filter_override_flag are equal to 1, the value of ph_deblocking_filter_disabled_flag is inferred to be equal to 0.
[0227] (2) Otherwise (pps_deblocking_filter_disabled_flag or ph_deblocking_filter_override_flag is equal to 0), it is inferred that the value of ph_deblocking_filter_disabled_flag is equal to pps_deblocking_filter_disabled_flag.
[0228] The syntax elements ph_luma_beta_offset_div2 and ph_luma_tc_offset_div2 may specify the deblocking parameter offsets β and tC (divided by 2) applied to the luma component of the slice associated with the PH. The values of ph_luma_beta_offset_div2 and ph_luma_tc_offset_div2 may both be required to be in the range of -12 to 12, inclusive. When ph_luma_beta_offset_div2 and ph_luma_tc_offset_div2 are not present, the values of ph_luma_beta_offset_div2 and ph_luma_tc_offset_div2 may be inferred to be equal to pps_luma_beta_offset_div2 and pps_luma_tc_offset_div2, respectively.
[0229] The syntax elements ph_cb_beta_offset_div2 and ph_cb_tc_offset_div2 may specify the deblocking parameter offsets β and tC (divided by 2) applied to the Cb component of the slice associated with the PH. The values of ph_cb_beta_offset_div2 and ph_cb_tc_offset_div2 may both be required to be in the range of -12 to 12, inclusive. When ph_cb_beta_offset_div2 and ph_cb_tc_offset_div2 are not present, the values of ph_cb_beta_offset_div2 and ph_cb_tc_offset_div2 may be inferred to be equal to ph_luma_beta_offset_div2 and ph_luma_tc_offset_div2, respectively.
[0230] The syntax elements ph_cr_beta_offset_div2 and ph_cr_tc_offset_div2 may specify the deblocking parameter offsets β and tC (divided by 2) applied to the Cr component of the slice associated with the PH. The values of ph_cr_beta_offset_div2 and ph_cr_tc_offset_div2 may both be required to be in the range of -12 to 12, inclusive. When ph_cr_beta_offset_div2 and ph_cr_tc_offset_div2 are not present, the values of ph_cr_beta_offset_div2 and ph_cr_tc_offset_div2 may be inferred to be equal to ph_luma_beta_offset_div2 and ph_luma_tc_offset_div2, respectively.
[0231] The syntax element ph_extension_length may specify the length of the PH extension data in bytes, excluding bits used to signal the ph_extension_length itself. The value of ph_extension_length may be required to be in the range of 0 to 256, inclusive. When ph_extension_length is not present, the value of ph_extension_length may be inferred to be equal to 0.
[0232] The syntax element ph_extension_data_byte may have any value. A decoder may be required to ignore the value of ph_extension_data_byte. The value of ph_extension_data_byte may not affect decoder compliance with a specified profile.
[0233] [4. Configuration file]
[0234] 4.1 Main 10 Profile and Main 10 Still Image Profile
[0235] A bitstream conforming to the Main 10 Profile or the Main 10 Still Picture Profile may be required to adhere to the following constraints.
[0236] (1) In a bitstream compliant with the Main 10 Still Picture Profile, it may be required that the bitstream contains only one picture.
[0237] (2) It may be necessary to refer to the sps_chroma_format_idc of the SPS to be equal to 0 or 1.
[0238] (3) It may be necessary for sps_bit_depth_minus8 of the reference SPS to be in the range of 0 to 2 (including the endpoints).
[0239] (4) In a bitstream conforming to the Main 10 still picture profile, it may be necessary to reference the max_dec_pic_buffering_minus1[sps_max_sublayers_minus1] of the SPS to be equal to 0.
[0240] (5) It may be necessary to refer to the sps_palette_enabled_flag of the SPS being equal to 0.
[0241] (6) In a bitstream that conforms to the Main 10 profile but not to the Main 10 still picture profile, it may be necessary to reference the VPS (when available) and the still picture profile in the reference SPS where general_level_idc and sublayer_level_idc[i] are not equal to 255 (indicating level 15.5) (this is required for all values of i).
[0242] (7) Tier and level constraints specified for the Main 10 Profile or Main 10 Still Image Profile may need to be satisfied (if applicable).
[0243] (8) The conformity of the bitstream with the main 10 profile may be indicated by general_profile_idc being equal to 1.
[0244] (9) Conformance of the bitstream to the main 10 still picture profile may be indicated by general_one_picture_only_constraint_flag equal to 1 and general_profile_idc equal to 1.
[0245] According to one embodiment, when the compliance of the bitstream with the Main 10 still picture profile is indicated as explained above, and the indicated level is not Level 15.5, the condition for indicating the compliance of the bitstream with the Main 10 profile is also met.
[0246] A decoder compliant with the Main 10 profile at a specific level of a specific layer may be required to be able to decode all bitstreams where all of the following conditions apply:
[0247] (1) Indicates that the bitstream conforms to Main 10 Profile or Main 10 Still Picture Profile.
[0248] (2) Indicates that the bitstream conforms to a layer lower than or equal to the specified layer.
[0249] (3) Indicates that the bitstream conforms to a level that is not level 15.5 and is lower than or equal to the specified level.
[0250] (4) A decoder conforming to the Main 10 Still Picture Profile at a particular level of a particular layer may be required to be able to decode all bitstreams where all of the following conditions apply:
[0251] (4) Indicates that the bitstream conforms to the Main 10 Still Picture Profile.
[0252] (5) Indicates that the bitstream conforms to a layer lower than or equal to the specified layer.
[0253] (6) Indicates that the bitstream conforms to a level that is not level 15.5 and is lower than or equal to the specified level.
[0254] 4.2 Main 4:4:4 10 Profile and Main 4:4:4 10 Still Image Profile
[0255] A bitstream conforming to the Main 4:4:4 10 Profile or the Main 4:4:4 10 Still Picture Profile may be required to comply with the following constraints.
[0256] (1) In a bitstream conforming to the Main 4:4:4 10 still picture profile, it may be required that the bitstream contains only one picture.
[0257] (2) It may be necessary for the sps_chroma_format_idc of the reference SPS to be in the range of 0 to 3 (inclusive).
[0258] (3) It may be necessary for sps_bit_depth_minus8 of the reference SPS to be in the range of 0 to 2 (including the endpoints).
[0259] (4) In a bitstream conforming to the Main 4:4:4 10 still picture profile, it may be necessary to set max_dec_pic_buffering_minus1[sps_max_sublayers_minus1] of the reference SPS to be equal to 0.
[0260] (5) In bitstreams that conform to the Main 4:4:4 10 profile but not the Main 4:4:4 10 still picture profile, it may be necessary to reference the VPS (when available) and reference general_level_idc and sublayer_level_idc[i] in the SPS to be unequal to 255 (indicating level 15.5) (this is required for all values of i).
[0261] (6) The layer and level constraints specified for the Main 4:4:4 10 Profile or the Main 4:4:4 10 Still Image Profile may need to be satisfied (if applicable).
[0262] (7) The conformity of the bitstream to the main 4:4:4 10 profile may be indicated by general_profile_idc equal to 2.
[0263] (8) The conformity of the bitstream to the main 4:4:4 10 still picture profile may be indicated by general_one_picture_only_constraint_flag equal to 1 and general_profile_idc equal to 2.
[0264] According to one embodiment, when the compliance of the bitstream with the Main 10 4:4:4 still picture profile is indicated as explained above, and the indicated level is not level 15.5, the condition for indicating the compliance of the bitstream with the Main 10 4:4:4 profile is also met.
[0265] A decoder compliant with the Main 4:4:4 10 Profile at a specific level in a specific layer is capable of decoding all bitstreams where all of the following conditions apply:
[0266] (1) Indicates that the bitstream conforms to Main 4:4:4 10 Profile, Main 10 Profile, Main 4:4:4 10 Still Picture Profile, or Main 10 Still Picture Profile.
[0267] (2) Indicates that the bitstream conforms to a layer lower than or equal to the specified layer.
[0268] (3) Indicates that the bitstream conforms to a level that is not level 15.5 and is lower than or equal to the specified level.
[0269] A decoder compliant with the Main 4:4:4 10 Still Picture Profile at a specific level of a specific layer may be required to be able to decode all bitstreams where all of the following conditions apply:
[0270] (1) Indicates that the bitstream conforms to Main 4:4:4 10 Still Picture Profile or Main 10 Still Picture Profile.
[0271] (2) Indicates that the bitstream conforms to a layer lower than or equal to the specified layer.
[0272] (3) Indicates that the bitstream conforms to a level that is not level 15.5 and is lower than or equal to the specified level.
[0273] [5.SPS signaling]
[0274] Previously, an SPS level flag (sps_inter_allowed_flag) was proposed to indicate that only intra slices exist in the sequence, and this flag is used to skip the signaling of syntax elements related to inter coding to reduce redundancy. When sps_inter_allowed_flag is equal to 1, syntax elements related to inter coding can exist in the SPS. When sps_inter_allowed_flag is equal to 0, only syntax elements related to intra coding can exist in the SPS.
[0275] In addition, a PPS level flag (pps_inter_allowed_flag) is proposed to indicate that only intra slices exist in the sequence, and the flag is used to skip the signaling of syntax elements related to inter coding to reduce redundancy. When pps_inter_allowed_flag is equal to 1, syntax elements related to inter coding can exist in the PPS. When pps_inter_allowed_flag is equal to 0, only syntax elements related to intra coding can exist in the PPS.
[0276] [6. Constraints on Syntax Elements of Still Image Profile]
[0277] The embodiments of the present disclosure may be used alone or in combination in any order. In addition, each embodiment (e.g., method, encoder, and decoder) may be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored in a non-transitory computer-readable medium. Embodiments of the present disclosure may provide changes to VVC Draft 8vE. Aspects of embodiments of the present disclosure are described below.
[0278] Aspect 1: An embodiment may have all intra profiles in VVC. All intra profiles may include a constraint such that all slices conforming to the profile are only intra slices.
[0279] Aspect 2: An embodiment may have a still image profile in VVC. A still image profile may include a constraint that all slices conforming to the profile have only intra slices. The still image profile may be used for still photography of a camera, computer generated images, or for extracting snapshots from a video sequence. The profile may be a subset of the performance of the Main 10 Profile ("Main 10 Profile and Main 10 Still Image Profile") described above in Section 4.1.
[0280] Aspect 3: An embodiment may include a one_picture_only_constraint_flag in VVC. The syntax element one_picture_only_constraint_flag equal to 1 may specify (eg to the encoder) that slice_type should be equal to I slice and there is only one picture in the bitstream. The syntax element one_picture_only_constraint_flag equal to 0 may not impose such a constraint.
[0281] Aspect 3.1: In one embodiment, one_picture_only_constraint_flag may be signaled (eg, sent to a decoder) in profile_tier_level() as shown in Tables 5 and 6 below.
[0282] Table 5: Profile_tier_level()
[0283]
[0284]
[0285] Table 6: General_constraint_info()
[0286]
[0287] Aspect 4: In addition to the above aspect 3, an embodiment may have a constraint between intra_only_constraint_flag and one_picture_only_constraint_flag.
[0288] Aspect 4.1: In one embodiment, one_picture_only_constraint_flag is signaled before intra_only_constraint_flag, and when one_picture_only_constraint_flag is 1, bitstream compliance may require that intra_only_constraint_flag is also 1.
[0289] The syntax element one_picture_only_constraint_flag equal to 1 may specify (eg to an encoder) that slice_type shall be equal to I slice and that there shall be only one picture in the bitstream. The syntax element one_picture_only_constraint_flag equal to 0 may not impose such a constraint.
[0290] The syntax element intra_only_constraint_flag equal to 1 may specify (e.g. to an encoder) that slice_type should be equal to 1. The syntax element intra_only_constraint_flag equal to 0 may not impose such a constraint. Bitstream conformance may require that intra_only_constraint_flag be 1 when one_picture_only_constraint_flag is 1.
[0291] In one embodiment, when one_picture_only_constraint_flag is equal to 1, the picture may be an IRAP picture, such as IDR or CRA.
[0292] Aspect 4.3: In one embodiment, when one_picture_only_constraint_flag is equal to 1, there is no VPS and the number of layers may be equal to 1.
[0293] Aspect 4.4: In one embodiment, when one_picture_only_constraint_flag is equal to 1, the reference picture list and the picture sequence number may not be present in the picture slice header or the slice slice header.
[0294] Aspect 4.5: In one embodiment, when one_picture_only_constraint_flag is equal to 1, access unit delimiter (AUD) and end of stream (EOS) NAL units may not be present in the bitstream.
[0295] Aspect 5: In addition to aspect 1, for all intra profiles, the value of intra_only_constraint_flag may be required to be 1. Therefore, in all intra profiles, only intra slices can exist in the bitstream.
[0296] Aspect 6: In addition to Aspect 2 and Aspect 3, for the still picture profile, the value of one_picture_only_constraint_flag may be 1, and the value of intra_only_constraint_flag may be 1. Therefore, in the still picture profile, only intra slices may exist in the bitstream, and only one picture may exist in the bitstream.
[0297] Aspect 7: In addition to Aspect 2 and Aspect 4, for the still picture profile, the value of one_picture_only_constraint_flag can be 1. Therefore, in the still picture profile, only intra slices can exist in the bitstream, and there is only one picture in the bitstream.
[0298] Aspect 8: When intra_only_constraint_flag is present and equal to 1, non-intra-related syntax elements may not be signaled.
[0299] Aspect 8.1: In one embodiment, when intra_only_constraint_flag is present and equal to 1, the values of sps_inter_allowed_flag and pps_inter_allowed_flag as described above in Section 5 ("SPS Signaling") are both 0. When intra_only_constraint_flag is not present or its value is equal to 0, no such constraints may be imposed on sps_inter_allowed_flag and pps_inter_allowed_flag.
[0300] Aspect 9: When one_picture_only_constraint_flag is present and equal to 1, non-intra-related syntax elements may not be signaled.
[0301] Aspect 9.1: In one embodiment, when one_picture_only_constraint_flag is present and equal to 1, the values of sps_inter_allowed_flag and pps_inter_allowed_flag as described above in Section 5 ("SPS Signaling") are both 0. When one_picture_only_constraint_flag is not present or its value is equal to 0, no such constraints may be imposed on sps_inter_allowed_flag and pps_inter_allowed_flag.
[0302] Aspect 10: According to an embodiment, only_one_picture_present_flag may be provided in VVC.
[0303] Aspect 10.1: In one embodiment, sps_only_one_picture_present_flag is signaled in the SPS.
[0304] The syntax element sps_only_one_picture_present_flag equal to 1 may specify (eg to a decoder) that slice_type shall be equal to I slice and that only one picture is present in the bitstream. The syntax element one_picture_only_constraint_flag equal to 0 does not impose such a constraint.
[0305] Aspect 11: In addition to Aspect 10, when one_picture_only_constraint_flag is present and equal to 1, non-intra-related syntax elements and syntax elements related to picture sequence number (POC) and RPL may not be signaled.
[0306] Aspect 11.1: In one embodiment, when one_picture_only_constraint_flag is present and equal to 1, bitstream compliance may require that sps_only_one_picture_present_flag has the same value as one_picture_only_constraint_flag.
[0307] [7. Exemplary Embodiments]
[0308] The embodiments of the present disclosure may be used alone or in combination in any order. In addition, each embodiment (e.g., method, encoder, and decoder) may be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored in a non-transitory computer-readable medium. Embodiments of the present disclosure may provide changes to VVC Draft 9vA. Aspects of embodiments of the present disclosure are described below.
[0309] Aspect 1: An embodiment may have a sps_only_one_picture_present_flag, which is signaled in the SPS to specify whether there is only one coded picture in the bitstream. When sps_only_one_picture_present_flag is signaled in the SPS as described in Aspect 10 of Section 6 ("Constraints on Syntax Elements of Still Picture Profiles") above, the SPS may be provided as shown in Table 7 below, and more specifically, as shown in Table 8 (see the end of the detailed description).
[0310] Table 7: Example SPS Syntax
[0311]
[0312] Aspect 1 and other aspects of exemplary embodiments of the present disclosure are described below with reference to Table 8 (see the end of the detailed description).
[0313] The syntax element sps_only_one_picture_present_flag equal to 1 may specify that only one coded picture is present in the bitstream. The syntax element sps_only_one_picture_present_flag equal to 0 may specify that more than one coded picture is present in the bitstream and sh_slice_type shall be equal to 1. When general_one_picture_only_constraint_flag is equal to 1, the bitstream conformance may be sps_only_one_picture_present_flag equal to 1.
[0314] Aspect 1.1: When sps_only_one_picture_present_flag is equal to 1, VPS-related syntax elements may be skipped and inferred (eg, by a decoder) as follows.
[0315] The syntax element sps_video_parameter_set_id may specify the value of vps_video_parameter_set_id for the VPS referenced by the SPS when the syntax element sps_video_parameter_set_id is greater than 0. When sps_only_one_picture_present_flag is equal to 1, sps_video_parameter_set_id is equal to 0.
[0316] When sps_video_parameter_set_id is equal to 0, the following items apply:
[0317] (1) The SPS does not refer to the VPS, and the VPS is not referred to when decoding each CLVS that refers to the SPS.
[0318] (2) It is inferred that the value of vps_max_layers_minus1 is equal to 0.
[0319] (3) It is inferred that the value of vps_max_sublayers_minus1 is equal to 6.
[0320] (4) A CVS contains only one layer (i.e., all VCL NAL units in a CVS should have the same value of nuh_layer_id).
[0321] (5) It is inferred that the value of GeneralLayerIdx[nuh_layer_id] is equal to 0.
[0322] (6) It is inferred that the value of vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 1.
[0323] When vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 1, it may be required that the nuh_layer_id of the SPS referenced by the CLVS with a specific nuh_layer_id value nuhLayerId is equal to nuhLayerId.
[0324] The value of sps_video_parameter_set_id may need to be the same in all SPSs referenced by the CLVS in the CVS.
[0325] sps_max_sublayers_minus1 plus 1 specifies the maximum number of temporal sublayers that can exist in each CLVS that references the SPS. The value of sps_max_sublayers_minus1 may be required to be in the range of 0 to vps_max_sublayers_minus1 (inclusive). When sps_only_one_picture_present_flag is equal to 1, sps_max_sublayers_minus1 is equal to 0.
[0326] Aspect 1.2: When sps_only_one_picture_present_flag is equal to 1, the syntax structure profile_tier_level() and the syntax structure dpb_parameters() may be required to be present in the SPS. Therefore, sps_ptl_dpb_hrd_params_present_flag may be skipped and inferred to be equal to 1.
[0327] sps_ptl_dpb_hrd_params_present_flag is equal to 1, it can be specified that the syntax structure profile_tier_level() and the syntax structure dpb_parameters() are present in the SPS, and the syntax structure general_hrd_parameters() and the syntax structure ols_hrd_parameters() may also exist in the SPS. sps_ptl_dpb_hrd_params_present_flag is equal to 0, it can be specified that none of these four syntax structures are present in the SPS. When sps_only_one_picture_present_flag is equal to 1, sps_ptl_dpb_hrd_params_present_flag is equal to 1.
[0328] When sps_video_parameter_set_id is greater than 0 and there is an OLS containing only one layer (whose nuh_layer_id is equal to the nuh_layer_id of the SPS), or when sps_video_parameter_set_id is equal to 0, the value of sps_ptl_dpb_hrd_params_present_flag may be required to be equal to 1.
[0329] Aspect 1.3: When sps_only_one_picture_present_flag is equal to 1, there is only one coded picture in the bitstream, so picture sequence number related syntax elements may not be needed. Therefore, those syntax elements related to POC may be skipped and inferred.
[0330] The syntax element sps_log2_max_pic_order_cnt_lsb_minus4 may specify the value of the variable MaxPicOrderCntLsb used for the picture order number during decoding, as follows:
[0331] MaxPicOrderCntLsb=2 (sps_log2_max_pic_order_cnt_lsb_minus4+4)
[0332] The value of sps_log2_max_pic_order_cnt_lsb_minus4 may be required to be in the range of 0 to 12 (inclusive). When sps_only_one_picture_present_flag is equal to 1, sps_log2_max_pic_order_cnt_lsb_minus4 is equal to 0.
[0333] sps_poc_msb_cycle_flag is equal to 1, it can specify that the syntax element ph_poc_msb_cycle_present_flag is present in the PH of the referenced SPS. The syntax element sps_poc_msb_cycle_flag is equal to 0, it can specify that the syntax element ph_poc_msb_cycle_present_flag is not present in the PH of the referenced SPS. When sps_only_one_picture_present_flag is equal to 1, sps_poc_msb_cycle_flag is equal to 0.
[0334] Aspect 1.4: When sps_only_one_picture_present_flag is equal to 1, there is only one coded picture in the bitstream and the slice type of this picture is only equal to I slice. Therefore, syntax elements related to inter-frame slices, such as sps_log2_diff_min_qt_min_cb_inter_slice and sps_max_mtt_hierarchy_depth_inter_slice, can be skipped and inferred.
[0335] Aspect 1.5: When sps_only_one_picture_present_flag is equal to 1, there is only one coded picture in the bitstream, and the slice type of this picture is only equal to I slice. Therefore, syntax elements related to inter-frame coding tools, such as sps_weighted_pred_flag, sps_weighted_bipred_flag, etc., can be skipped and inferred as follows.
[0336] The syntax element sps_weighted_pred_flag equal to 1 specifies that weighted prediction may be applied to P slices that reference the SPS. The syntax element sps_weighted_pred_flag equal to 0 specifies that weighted prediction may not be applied to P slices that reference the SPS. When sps_weighted_pred_flag is not present, the value of sps_weighted_pred_flag equal to 0 is inferred.
[0337] The syntax element sps_weighted_bipred_flag is equal to 1 to specify that explicit weighted prediction is applied to B slices that reference the SPS. The syntax element sps_weighted_bipred_flag is equal to 0 to specify that explicit weighted prediction is not applied to B slices that reference the SPS. When sps_weighted_bipred_flag is not present, the value of sps_weighted_bipred_flag is inferred to be equal to 0.
[0338] The syntax element sps_long_term_ref_pics_flag is equal to 0, which specifies that the long-term reference picture (LTRP) is not used for inter prediction of any coded picture in the CLVS. The syntax element sps_long_term_ref_pics_flag is equal to 1, which specifies that the LTRP can be used for inter prediction of one or more coded pictures in the CLVS. When sps_long_term_ref_pics_flag is not present, the value of sps_long_term_ref_pics_flag is inferred to be equal to 0.
[0339] The syntax element sps_idr_rpl_present_flag is equal to 1 to specify that the reference picture list syntax element is present in the slice header of the IDR picture. The syntax element sps_idr_rpl_present_flag is equal to 0 to specify that the reference picture list syntax element is not present in the slice header of the IDR picture. When sps_idr_rpl_present_flag is not present, it is inferred that the value of sps_idr_rpl_present_flag is equal to 0.
[0340] If the syntax element sps_rpl1_same_as_rpl0_flag is equal to 1, the syntax element sps_num_ref_pic_lists[1] and the syntax structure ref_pic_list_struct(1, rplsIdx) may be specified to be absent and the following may apply:
[0341] (1) It is inferred that the value of sps_num_ref_pic_lists[1] is equal to the value of sps_num_ref_pic_lists[0].
[0342] (2) It is inferred that the value of each syntax element in ref_pic_list_struct(1, rplsIdx) is equal to the value of the corresponding syntax element in ref_pic_list_struct(0, rplsIdx), where rplsIdx ranges from 0 to sps_num_ref_pic_list[0]-1.
[0343] When sps_rpl1_same_as_rpl0_flag is not present, the value of sps_rpl1_same_as_rpl0_flag may be inferred to be equal to 0.
[0344] The syntax element sps_num_ref_pic_lists[i] may specify the number of syntax structures ref_pic_list_struct(listIdx, rplsIdx), where listIdx is equal to i included in the SPS. The value of sps_num_ref_pic_lists[i] may be required to be in the range of 0 to 64, inclusive. When sps_num_ref_pic_lists[i] is not present, the value of sps_num_ref_pic_lists[i] may be inferred to be equal to 0.
[0345] According to an embodiment, for each value of listIdx (equal to 0 or 1), the decoder can allocate memory for a total of sps_num_ref_pic_lists[i]+1 ref_pic_list_struct(listIdx, rplsIdx) syntax structures, because one ref_pic_list_struct(listIdx, rplsIdx) syntax structure can be directly signaled in the slice header of the current picture.
[0346] The syntax element sps_ref_wraparound_enabled_flag equal to 1 specifies that horizontal wrap motion compensation is enabled and may be applied to inter prediction when decoding pictures in CLVS. The syntax element sps_ref_wraparound_enabled_flag equal to 0 specifies that horizontal wrap motion compensation is disabled and not applied to inter prediction when decoding pictures in CLVS. When sps_ref_wraparound_enabled_flag is not present, the value of sps_ref_wraparound_enabled_flag is inferred to be equal to 0.
[0347] The requirement for bitstream conformance may be that when one or more values of i are in the range of 0 to sps_num_subpics_minus1 (inclusive), where sps_subpic_treated_as_pic_flag[i]=1, sps_subpic_width_minus1[i]+1 is not equal to (sps_pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY), then the value of sps_ref_wraparound_enabled_flag shall be equal to 0.
[0348] The syntax element sps_temporal_mvp_enabled_flag equal to 0 may specify that the temporal motion vector predictor is enabled and can be used to decode pictures in CLVS. The syntax element sps_temporal_mvp_enabled_flag equal to 0 may specify that the temporal motion vector predictor is disabled and not used to decode pictures in CLVS. When sps_temporal_mvp_enabled_flag is not present, the value of sps_temporal_mvp_enabled_flag is inferred to be equal to 0.
[0349] The syntax element sps_amvr_enabled_flag equal to 1 specifies that adaptive motion vector difference resolution is enabled and can be used for motion vector coding when decoding pictures in CLVS. The syntax element sps_amvr_enabled_flag equal to 0 specifies that adaptive motion vector difference resolution is disabled and is not used for motion vector coding when decoding pictures in CLVS. When sps_amvr_enabled_flag is not present, the value of sps_amvr_enabled_flag is inferred to be equal to 0.
[0350] The syntax element sps_bdof_enabled_flag is equal to 0, which specifies that bidirectional optical flow inter prediction is disabled and is not used for decoding images in CLVS. The syntax element sps_bdof_enabled_flag is equal to 1, which specifies that bidirectional optical flow inter prediction is enabled and can be used for decoding images in CLVS. When sps_bdof_enabled_flag is not present, the value of sps_bdof_enabled_flag is inferred to be equal to 0.
[0351] The syntax element sps_smvd_enabled_flag equal to 1 specifies that symmetric motion vector differences are enabled and can be used for motion vector decoding when decoding pictures in CLVS. The syntax element sps_smvd_enabled_flag equal to 0 specifies that symmetric motion vector differences are disabled and are not used for motion vector encoding when decoding pictures in CLVS. When sps_smvd_enabled_flag is not present, the value of sps_smvd_enabled_flag is inferred to be equal to 0.
[0352] The syntax element sps_dmvr_enabled_flag equal to 1 specifies that inter bi-prediction based on decoder motion vector refinement is enabled and can be used for decoding pictures in CLVS. The syntax element sps_dmvr_enabled_flag equal to 0 specifies that inter bi-prediction based on decoder motion vector refinement is disabled and not used for decoding pictures in CLVS. When sps_dmvr_enabled_flag is not present, the value of sps_dmvr_enabled_flag is inferred to be equal to 0.
[0353] The syntax element sps_mmvd_enabled_flag equal to 1 may specify that merge mode with motion vector differences is enabled and may be used for decoding pictures in CLVS. The syntax element sps_mmvd_enabled_flag equal to 0 may specify that merge mode with motion vector differences is disabled and may not be used for decoding pictures in CLVS. When sps_mmvd_enabled_flag is not present, the value of sps_mmvd_enabled_flag may be inferred to be equal to 0.
[0354] The syntax element sps_six_minus_max_num_merge_cand may specify that 6 is subtracted from the maximum number of merge motion vector prediction (MVP) candidates supported in the SPS. The value of sps_six_minus_max_num_merge_cand may be required to be in the range of 0 to 5, inclusive. When sps_six_minus_max_num_merge_cand is not present, the value of sps_six_minus_max_num_merge_cand may be inferred to be equal to 6.
[0355] The maximum number of merged MVP candidates MaxNumMergeCand can be derived as follows:
[0356] MaxNumMergeCand=6-sps_six_minus_max_num_merge_cand
[0357] The syntax element sps_sbt_enabled_flag is equal to 0, which specifies that the sub-block transform for the inter-predicted CU is disabled and not used for decoding the pictures in the CLVS. The syntax element sps_sbt_enabled_flag is equal to 1, which specifies that the sub-block transform for the inter-predicted CU is enabled and can be used for decoding the pictures in the CLVS. When sps_sbt_enabled_flag is not present, the value of sps_sbt_enabled_flag is inferred to be equal to 0.
[0358] The syntax element sps_affine_enabled_flag is equal to 0, which specifies that affine model-based motion compensation is disabled and not used for decoding images in CLVS, and that inter_affine_flag and cu_affine_type_flag are not present in the coding unit syntax of CLVS. The syntax element sps_affine_enabled_flag is equal to 1, which specifies that affine model-based motion compensation is enabled and can be used for decoding images in CLVS, and that inter_affine_flag and cu_affine_type_flag may be present in the coding unit syntax of CLVS. When sps_affine_enabled_flag is not present, the value of sps_affine_enabled_flag may be inferred to be equal to 0.
[0359] The syntax element sps_five_minus_max_num_subblock_merge_cand may specify that 5 is subtracted from the maximum number of subblock-based merge motion vector prediction candidates supported in the SPS. The value of sps_five_minus_max_num_subblock_merge_cand may be required to be in the range of 0 to 5-sps_sbtmvp_enabled_flag, inclusive. When sps_five_minus_max_num_subblock_merge_cand is not present, the value of sps_five_minus_max_num_subblock_merge_cand may be inferred to be equal to 5-sps_sbtmvp_enabled_flag.
[0360] The syntax element sps_bcw_enabled_flag is equal to 0, which specifies that bidirectional prediction with CU weights is disabled and not used for decoding pictures in CLVS, and that bcw_idx is not present in the coding unit syntax of CLVS. The syntax element sps_bcw_enabled_flag is equal to 1, which specifies that bidirectional prediction with CU weights is enabled and can be used for decoding pictures in CLVS, and that bcw_idx may be present in the coding unit syntax of CLVS. When sps_bcw_enabled_flag is not present, the value of sps_bcw_enabled_flag is inferred to be equal to 0.
[0361] The syntax element sps_ciip_enabled_flag may specify that ciip_flag may be present in the coding unit syntax for inter coding units. The syntax element sps_ciip_enabled_flag being equal to 0 may specify that ciip_flag is not present in the coding unit syntax for inter coding units. When sps_ciip_enabled_flag is not present, the value of sps_ciip_enabled_flag may be inferred to be equal to 0.
[0362] The syntax element sps_log2_parallel_merge_level_minus2 plus 2 can specify the value of the variable Log2ParMrgLevel, which is used in the derivation process of spatial merge candidates, in the derivation process of motion vectors and reference indices in sub-block merge mode, and for controlling the call of the update process of the history-based motion vector prediction list. When sps_log2_parallel_merge_level_minus2 is not present, it can be inferred that the value of sps_log2_parallel_merge_level_minus2 is equal to 0. The value of sps_log2_parallel_merge_level_minus2 may be required to be in the range of 0 to CtbLog2SizeY-2 (including the endpoints). The variable Log2ParMrgLevel can be derived as follows:
[0363] Log2ParMrgLevel=sps_log2_parallel_merge_level_minus2+2
[0364] Aspect 2: When general_one_picture_only_constraint_flag in general_constraint_info() is equal to 1, the value of intra_only_constraint_flag may be required to be equal to 1. When intra_only_constraint_flag is equal to 1, the slice type is an I slice. Therefore, syntax elements related to inter-coding tools may not be required. An embodiment may constrain the syntax elements in general_constraint_info() as follows.
[0365] The syntax element no_sbtmvp_constraint_flag equal to 1 may specify that sps_sbtmvp_enabled_flag should be equal to 0. The syntax element no_sbtmvp_constraint_flag equal to 0 may not impose such a constraint. When no_temporal_mvp_constraint_flag is equal to 1, the value of no_sbtmvp_constraint_flag equal to 1 may be required. When intra_only_constraint_flag is equal to 1, the value of no_sbtmvp_constraint_flag equal to 1 may be required.
[0366] The syntax element no_sbt_constraint_flag being equal to 1 may specify that sps_sbt_enabled_flag should be equal to 0. The syntax element no_sbt_constraint_flag being equal to 0 may not impose such a constraint. When intra_only_constraint_flag is equal to 1, the value of no_sbt_constraint_flag being equal to 1 may be required.
[0367] Aspect 3: In addition to Aspect 1, syntax elements in a PH may be constrained based on the value of sps_only_one_picture_present_flag. For example, an exemplary PH according to an embodiment of the present disclosure is shown in Table 9 (see the end of the detailed description).
[0368] Aspect 3.1: Referring to Table 9, when sps_only_one_picture_present_flag is equal to 1, there is only one coded picture in the bitstream, and the slice type of all coded slices of the picture is equal to I slice. Therefore, when sps_only_one_picture_present_flag is equal to 1, syntax elements indicating the possible slice types in the picture, such as ph_inter_slice_allowed_flag and ph_intra_slice_allowed_flag, can be skipped.
[0369] The syntax element ph_inter_slice_allowed_flag equal to 0 may specify that all coded slices of the picture have sh_slice_type equal to 2. The syntax element ph_inter_slice_allowed_flag equal to 1 may specify that one or more coded slices may or may not be present in the picture with sh_slice_type equal to 0 or 1. When ph_inter_slice_allowed_flag is not present, the value of ph_inter_slice_allowed_flag equal to 0 may be inferred.
[0370] Aspect 3.2: Referring to Table 9, when sps_only_one_picture_present_flag is equal to 1, there is only one coded picture in the bitstream, and the slice type of all coded slices of the picture is equal to I slice. Therefore, when sps_only_one_picture_present_flag is equal to 1, syntax elements related to reference pictures such as ph_non_ref_pic_flag and reference picture list structure ref_pic_lists() can be skipped.
[0371] The syntax element ph_non_ref_pic_flag equal to 1 may specify that the picture associated with the PH is never used as a reference picture. The syntax element ph_non_ref_pic_flag equal to 0 may specify that the picture associated with the PH may or may not be used as a reference picture. When ph_non_ref_pic_flag is not present, the value of ph_non_ref_pic_flag equal to 0 may be inferred.
[0372] Aspect 3.3: Referring to Table 9, when sps_only_one_picture_present_flag is equal to 1, there is only one coded picture in the bitstream, and the slice type of all coded slices of the picture is equal to I slice. Therefore, when sps_only_one_picture_present_flag is equal to 1, syntax elements related to the picture order number (POC) and the decoded picture buffer (DPB), such as ph_pic_order_cnt_lsb and ph_recovery_poc_cnt, can be skipped.
[0373] The syntax element ph_pic_order_cnt_lsb may specify the picture order number modulo MaxPicOrderCntLsb for the current picture. The syntax element ph_pic_order_cnt_lsb may have a length of sps_log2_max_pic_order_cnt_lsb_minus4+4 bits. The value of ph_pic_order_cnt_lsb may be required to be in the range of 0 to MaxPicOrderCntLsb-1, inclusive. When ph_pic_order_cnt_lsb is not present, the value of ph_pic_order_cnt_lsb may be inferred to be equal to 0.
[0374] After decoding a picture in a CVSS AU that is not the first AU in the bitstream, the syntax element ph_no_output_of_prior_pics_flag may affect the output of previously decoded pictures in the DPB.
[0375] A requirement for bitstream conformance may be that when ph_no_output_of_prior_pics_flag is present, the value of ph_no_output_of_prior_pics_flag should be the same for all pictures in an AU.
[0376] When ph_no_output_of_prior_pics_flag is present in the PH of a picture in an AU, the ph_no_output_of_prior_pics_flag value of the AU is the ph_no_output_of_prior_pics_flag value of the picture in the AU. When ph_no_output_of_prior_pics_flag is not present, the value of ph_no_output_of_prior_pics_flag may be inferred to be equal to 0.
[0377] The syntax element ph_recovery_poc_cnt may specify a recovery point of a decoded picture in output order.
[0378] When the current image is a GDR image, the variable recoveryPointPocVal can be derived as follows:
[0379] recoveryPointPocVal=PicOrderCntVal+ph_recovery_poc_cnt
[0380] If the current image is a GDR image, and there is an image picA in the CLVS that follows the current GDR image in decoding order and whose PicOrderCntVal is equal to recoveryPointPocVal, then the image picA may be referred to as the recovery point image. Otherwise, in the CLVS, the first image (in output order) whose PicOrderCntVal is greater than recoveryPointPocVal may be referred to as the recovery point image. It may be required that the recovery point image does not precede the current GDR image in decoding order. An image associated with the current GDR image and whose PicOrderCntVal is less than recoveryPointPocVal may be referred to as a recovery image of the GDR image. It may be required that the value of ph_recovery_poc_cnt is in the range of 0 to MaxPicOrderCntLsb-1 (including the endpoints). When ph_recovery_poc_cnt does not exist, it may be inferred that the value of ph_recovery_poc_cnt is equal to 0.
[0381] The syntax element ph_poc_msb_cycle_present_flag is equal to 1, then the syntax element ph_poc_msb_cycle_val may be specified to be present in the PH. The syntax element ph_poc_msb_cycle_present_flag is equal to 0, then the syntax element ph_poc_msb_cycle_val may be specified to be not present in the PH. The value of ph_poc_msb_cycle_present_flag equal to 0 may be required when vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 0 and there are pictures in the current AU in the reference layer of the current layer. When ph_poc_msb_cycle_present_flag is not present, the value of ph_poc_msb_cycle_present_flag equal to 0 may be inferred.
[0382] [8. Exemplary Computer Code]
[0383] The embodiments of the present disclosure may include at least one processor and a memory storing computer code. When the computer code is executed by the at least one processor, the computer code may be configured to cause the at least one processor to perform the functions of the embodiments of the present disclosure.
[0384] For example, refer to Figure 5The decoder (500) of the present disclosure may include at least one processor and a memory storing computer code. The computer instructions may include an inference code (510), a constraint code (520), and a decoding code (530). The decoder (500) may implement Figure 2 and Figure 3 The video decoder (210) is shown. The decoder (500) may be configured to receive a bitstream including at least one coded picture and parameter sets (eg, SPS and VPS) and a slice header (eg, picture slice header).
[0385] The inference code (510) may be configured to cause at least one processor to infer syntax elements and skip syntax elements according to, for example, one or more aspects of aspects 1 to 3.3 of Section 7 (“Exemplary Embodiments”) of the present disclosure. For example, at least one processor may infer syntax elements and skip syntax elements based on the value of “sps_only_one_picture_present_flag” provided in the bitstream.
[0386] The constraint code (520) may be configured to cause at least one processor to constrain syntax elements according to, for example, one or more aspects 1 to 3.3 of Section 7 ("Exemplary Embodiments") of the present disclosure.
[0387] The decoding code (530) may be configured to cause at least one processor to decode at least one encoded image based on one or more of the inferred syntax elements and the constrained syntax elements of aspects 1 to 3.3 of Section 7 ("Exemplary Embodiments") of the present disclosure.
[0388] The techniques of the embodiments of the present disclosure described above may be implemented as computer software using computer-readable instructions and may be physically stored in one or more computer-readable media. Figure 6 A computer system (900) suitable for implementing embodiments of the disclosed subject matter is shown.
[0389] Computer software may be encoded using any suitable machine code or computer language that may be subjected to assembly, compilation, linking or similar mechanisms to create code comprising instructions that may be executed directly by a computer central processing unit (CPU), graphics processing unit (GPU), etc., or through interpretation, microcode execution, etc.
[0390] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, etc.
[0391] Figure 6The components of the computer system (900) shown are exemplary in nature and are not intended to suggest any limitation on the scope of use or functionality of computer software implementing embodiments of the present disclosure. Nor should the configuration of components be interpreted as having any dependency or requirement related to any one or combination of components shown in the exemplary embodiment of the computer system (900).
[0392] The computer system (900) may include certain human-machine interface input devices. Such human-machine interface input devices may be responsive to input from one or more human users through, for example, tactile input (e.g., keystrokes, swipes, data glove movements), audio input (e.g., voice, clapping), visual input (e.g., gestures), olfactory input (not depicted). Human-machine interface devices may also be used to capture certain media that are not necessarily directly related to human conscious input, such as audio (e.g., voice, music, ambient sounds), images (e.g., scanned images, photographic images obtained from a still image camera), and videos (e.g., two-dimensional video, three-dimensional video including stereoscopic video).
[0393] The input human interface devices may include one or more of the following (only one of each is shown): keyboard (901), mouse (902), touchpad (903), touch screen (910), data gloves, joystick (905), microphone (906), scanner (907) and camera (908).
[0394] The computer system (900) may also include certain human-computer interface output devices. Such human-computer interface output devices may stimulate one or more human user senses, for example, through tactile output, sound, light, and smell / taste. Such human-computer interface output devices may include tactile output devices (e.g., tactile feedback of a touch screen (910), a data glove, or a joystick (905), but may also be a tactile feedback device that is not an input device). For example, such devices may be audio output devices (e.g., speakers (909), headphones (not depicted)), visual output devices (e.g., screens (910) including CRT screens, LCD screens, plasma screens, OLED screens, each with or without touch screen input capabilities, each with or without tactile feedback capabilities - some of which are capable of outputting two-dimensional visual outputs or outputs in more than three dimensions through devices such as stereoscopic image output, virtual reality glasses (not depicted), holographic displays and smoke boxes (not depicted), and printers (not depicted).
[0395] The computer system (900) may also include human-accessible storage devices and their associated media, such as optical media including CD / DVD ROM / RW (920) with CD / DVD etc. media (921), thumb drives (922), removable hard drives or solid-state drives (923), traditional magnetic media such as tapes and floppy disks (not depicted), dedicated ROM / ASIC / PLD based devices such as security dongles (not depicted), and the like.
[0396] Those skilled in the art should also understand that the term "computer-readable media" used in connection with the presently disclosed subject matter does not encompass transmission media, carrier waves, or other transitory signals.
[0397] The computer system (900) may also include an interface to one or more communication networks. The network may be, for example, a wireless network, a wired network, an optical network. The network may further be a local network, a wide area network, a metropolitan area network, a vehicle and industrial network, a real-time network, a delay-tolerant network, etc. Examples of networks include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., television wired or wireless wide area digital networks including cable television, satellite television, and terrestrial broadcast television, vehicle and industrial networks including CANBus, etc. Some networks typically require an external network interface adapter connected to some universal data port or peripheral bus (949) (e.g., a USB port of the computer system (900)); as described below, other network interfaces are typically integrated into the kernel of the computer system 900 by connecting to the system bus (e.g., connected to an Ethernet interface in a PC computer system or connected to a cellular network interface in a smartphone computer system). The computer system (900) can use any of these networks to communicate with other entities. Such communications may be one-way receive only (e.g., broadcast television), one-way send only (e.g., CANbus connected to certain CANbus devices), or bidirectional, for example, using a LAN or WAN digital network to connect to other computer systems. Such communications may include communications with a cloud computing environment (955). As described above, certain protocols and protocol stacks may be used on each of those networks and network interfaces.
[0398] The above-mentioned human interface devices, human-accessible storage devices, and network interfaces (954) may be attached to the kernel (940) of the computer system (900).
[0399] The core (940) may include one or more central processing units (CPUs) (941), graphics processing units (GPUs) (942), dedicated programmable processing units in the form of field programmable gate arrays (FPGAs) (943), hardware accelerators (944) for certain tasks, etc. These devices, as well as read-only memory (ROM) (945), random access memory (946), internal mass storage (947) such as internal non-user accessible hard drives, SSDs, etc., may be connected via a system bus (948). In some computer systems, the system bus (948) may be accessed in the form of one or more physical plugs to enable expansion by additional CPUs, GPUs, etc. Peripheral devices may be connected directly to the core's system bus (948) or to the core's system bus (948) via a peripheral bus (949). The architecture of the peripheral bus includes PCI, USB, etc. A graphics adapter 950 may be included in the core 940.
[0400] The CPU (941), GPU (942), FPGA (943), and accelerator (944) may execute certain instructions, which may be combined to form the above-mentioned computer code. The computer code may be stored in ROM (945) or RAM (946). Transitional data may also be stored in RAM (946), while permanent data may be stored, for example, in internal mass storage (947). Fast storage and retrieval to any storage device may be performed by using a cache, which may be closely associated with one or more CPUs (941), GPUs (942), mass storage (947), ROM (945), RAM (946), etc.
[0401] The computer readable medium may have thereon computer code for performing various computer-implemented operations. The medium and computer code may be those specially designed and constructed for the purposes of the present disclosure, or the medium and computer code may be of a type well known and available to those skilled in the art of computer software.
[0402] As a non-limiting example, a computer system having an architecture (900), particularly a kernel (940), may provide functionality due to one or more processors (including CPUs, GPUs, FPGAs, accelerators, etc.) executing software contained in one or more tangible computer-readable media. Such computer-readable media may be media associated with user-accessible mass storage as described above, as well as certain non-temporary memories of the kernel (940), such as kernel internal mass storage (947) or ROM (945). Software implementing the various embodiments of the present disclosure may be stored in such devices and executed by the kernel (940). Depending on specific needs, the computer-readable medium may include one or more storage devices or chips. The software may enable the kernel (940), particularly the processors therein (including CPUs, GPUs, FPGAs, etc.), to perform specific processes or specific parts of specific processes described herein, including defining data structures stored in RAM (946) and modifying such data structures according to processes defined by the software. Additionally or alternatively, the computer system may provide functionality due to logic hardwired or otherwise embodied in circuitry (e.g., accelerator (944)) that may replace software or operate in conjunction with software to perform specific processes or specific portions of specific processes described herein. Where appropriate, references to portions of software may include logic and vice versa. Where appropriate, references to portions of computer-readable media may include circuitry (e.g., integrated circuits (ICs)) storing software for execution, circuitry embodying logic for execution, or both. The present disclosure includes any suitable combination of hardware and software.
[0403] Although the present disclosure has described a number of non-limiting example embodiments, there are changes, permutations, and various replacement equivalents that fall within the scope of the present disclosure. Therefore, it should be understood that those skilled in the art will be able to design many systems and methods that, although not explicitly shown or described herein, embody the principles of the present disclosure and therefore fall within the spirit and scope of the present disclosure.
[0404] [sheet]
[0405] Table 1: Sequence Parameter Set RBSP Syntax
[0406]
[0407]
[0408]
[0409]
[0410]
[0411]
[0412]
[0413]
[0414]
[0415] Table 3: General constraint information
[0416]
[0417]
[0418]
[0419] Table 4: Image header structure
[0420]
[0421]
[0422]
[0423]
[0424]
[0425]
[0426]
[0427] Table 8: Example SPS Syntax
[0428]
[0429]
[0430]
[0431]
[0432]
[0433]
[0434]
[0435]
[0436]
[0437]
[0438] Table 9: Example PH syntax
[0439]
[0440]
[0441]
[0442]
[0443]
[0444]
[0445]
Claims
1. A decoding method performed by at least one processor, the method comprising: receiving a bitstream comprising a sequence parameter set (SPS), the SPS comprising a flag specifying whether the bitstream comprises only one coded picture; inferring a value of at least one syntax element of the SPS based on the flag specifying that the bitstream includes only one coded picture; the at least one syntax element specifying an ID of a video parameter set; Based on the inference, the one encoded image is decoded.
2. The decoding method according to claim 1, wherein: The at least one syntax element of the SPS comprises a syntax element that specifies a maximum number of temporal sub-layers that are allowed to be present in each coded layer video sequence (CLVS) that references the SPS.
3. The decoding method according to claim 1, wherein: The at least one syntax element of the SPS includes a flag that specifies whether a profile, layer, or level syntax structure exists in the SPS.
4. The decoding method according to claim 1, wherein: The at least one syntax element of the SPS includes a syntax element related to a picture sequence number (POC); the syntax element related to the picture sequence number includes ph_recovery_poc_cnt, sps_poc_msb_cycle_flag, and ph_poc_msb_cycle_present_flag; Among them, ph_recovery_poc_cnt is used to specify the recovery point of the decoded image in the output order; sps_poc_msb_cycle_flag is used to specify whether ph_poc_msb_cycle_present_flag is present in the picture header (PH) of the reference SPS; ph_poc_msb_cycle_present_flag is used to specify whether ph_poc_msb_cycle_val exists in the PH; ph_poc_msb_cycle_val is used to specify the value of the POC most significant bit (POC MSB) cycle of the current picture.
5. The decoding method according to claim 1, wherein: The at least one syntax element of the SPS includes a syntax element related to inter-frame slices; the syntax element related to inter-frame slices includes sps_log2_diff_min_qt_min_cb_inter_slice and sps_max_mtt_hierarchy_depth_inter_slice; sps_log2_diff_min_qt_min_cb_inter_slice is used to specify the default difference between the first logarithm and the second logarithm; the first logarithm refers to the logarithm with base 2 of the minimum size in the luma samples of the luma leaf block generated by the quadtree partitioning of the CTU, and the second logarithm refers to the logarithm with base 2 of the minimum luma codec block size in the luma samples of the luma CU in the slice with slice_type equal to 0 (B) or 1 (P); sps_max_mtt_hierarchy_depth_inter_slice is used to specify the default maximum hierarchical depth of coding units resulting from multi-type tree partitioning of quadtree leaf nodes in a slice with slice_type equal to 0 (B) or 1 (P).
6. The decoding method according to claim 1, wherein: The at least one syntax element of the SPS includes a syntax element related to an inter-frame coding tool; the syntax element related to the inter-frame coding tool includes sps_weighted_pred_flag and sps_weighted_bipred_flag; sps_weighted_pred_flag is used to specify whether weighted prediction is applied to the P slice of the reference SPS; sps_weighted_bipred_flag is used to specify whether explicit weighted prediction is applied to B slices of the reference SPS.
7. The decoding method according to claim 1, further comprising: inferring a value of at least one syntax element of a picture slice header of the one coded picture based on the flag specifying that the bitstream includes only one coded picture, Therein, the decoding comprises decoding the one encoded image based on an inference of a value of the at least one syntax element of the SPS and a value of the at least one syntax element of the SPS.
8. The decoding method according to claim 7, wherein: The at least one syntax element of the picture slice header comprises a flag specifying whether a slice type is allowed for the one coded picture.
9. The decoding method according to claim 7, wherein: The at least one syntax element of the picture slice header comprises a flag specifying whether the one coded picture is a reference picture.
10. The decoding method according to claim 7, wherein: The at least one syntax element of the picture slice header includes a syntax element related to a picture order number (POC) or a decoded picture buffer (DPB); the syntax element related to the picture order number (POC) or the decoded picture buffer (DPB) includes ph_pic_order_cnt_lsb and ph_recovery_poc_cnt; ph_pic_order_cnt_lsb is used to specify the image sequence number modulo (MaxPicOrderCntLsb) of the current image; ph_recovery_poc_cnt is used to specify the recovery point of the decoded picture in output order.
11. A decoding system comprising: at least one memory storing computer code; as well as At least one processor configured to receive a bitstream including a sequence parameter set (SPS), the SPS including a flag specifying whether the bitstream includes only one coded picture, the at least one processor further configured to access the computer code and operate according to the instructions of the computer code, the computer code comprising: inference code configured to cause the at least one processor to infer a value of at least one syntax element of the SPS based on the flag specifying that the bitstream includes only the one coded picture; the at least one syntax element specifying an ID of a video parameter set; The decoding code is configured to cause the at least one processor to decode the one encoded image based on the value of the at least one syntax element of the SPS.
12. The decoding system according to claim 11, wherein: The at least one syntax element of the SPS comprises a syntax element that specifies a maximum number of temporal sub-layers that are allowed to be present in each coded layer video sequence (CLVS) that references the SPS.
13. The decoding system according to claim 11, wherein: The at least one syntax element of the SPS includes a flag that specifies whether a profile, layer, or level syntax structure exists in the SPS.
14. The decoding system according to claim 11, wherein: The at least one syntax element of the SPS includes a syntax element related to a picture sequence number (POC); the syntax element related to the picture sequence number includes ph_recovery_poc_cnt, sps_poc_msb_cycle_flag, and ph_poc_msb_cycle_present_flag; Among them, ph_recovery_poc_cnt is used to specify the recovery point of the decoded image in the output order; sps_poc_msb_cycle_flag is used to specify whether ph_poc_msb_cycle_present_flag is present in the picture header (PH) of the reference SPS; ph_poc_msb_cycle_present_flag is used to specify whether ph_poc_msb_cycle_val exists in the PH; ph_poc_msb_cycle_val is used to specify the value of the POC most significant bit (POC MSB) cycle of the current picture.
15. The decoding system according to claim 11, wherein: The at least one syntax element of the SPS includes a syntax element related to inter-frame slices; the syntax element related to inter-frame slices includes sps_log2_diff_min_qt_min_cb_inter_slice and sps_max_mtt_hierarchy_depth_inter_slice; sps_log2_diff_min_qt_min_cb_inter_slice is used to specify the default difference between the first logarithm and the second logarithm; the first logarithm refers to the logarithm with base 2 of the minimum size in the luma samples of the luma leaf block generated by the quadtree partitioning of the CTU, and the second logarithm refers to the logarithm with base 2 of the minimum luma codec block size in the luma samples of the luma CU in the slice with slice_type equal to 0 (B) or 1 (P); sps_max_mtt_hierarchy_depth_inter_slice is used to specify the default maximum hierarchical depth of coding units resulting from multi-type tree partitioning of quadtree leaf nodes in a slice with slice_type equal to 0 (B) or 1 (P).
16. The decoding system according to claim 11, wherein: The at least one syntax element of the SPS includes a syntax element related to an inter-frame coding tool; the syntax element related to the inter-frame coding tool includes sps_weighted_pred_flag and sps_weighted_bipred_flag; sps_weighted_pred_flag is used to specify whether weighted prediction is applied to the P slice of the reference SPS; sps_weighted_bipred_flag is used to specify whether explicit weighted prediction is applied to B slices of the reference SPS.
17. The decoding system according to claim 11, wherein: The inference code is further configured to cause the at least one processor to infer a value of at least one syntax element of a picture slice header of the one coded picture based on the flag specifying that the bitstream includes only the one coded picture, and The decoding code is configured to cause the at least one processor to decode the one coded image based on the inference of the value of the at least one syntax element of the SPS and the value of the at least one syntax element of the SPS.
18. A non-transitory computer-readable medium storing computer code, the computer code being configured to, when executed by at least one processor, cause the at least one processor to perform the decoding method of any one of claims 1 to 10.
19. A method for processing a video code stream, characterized in that: The video code stream is decoded based on the decoding method according to any one of claims 1 to 10.