Video coding and decoding method and device, and storage medium
By adopting the signaling mechanism adaptive image size in video encoding and decoding, the multi-layer structure of video code stream is solved, and the problem of difficult image size changes in the prior art is improved, and the decoding efficiency and resource utilization rate are improved.
Patent Information
- Application Number
- CN202411320677.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2020-11-13
- Filing Date
- 2021-02-01
- Publication Date
- 2025-01-03
AI Technical Summary
Existing video encoding technology is difficult to effectively manage image size changes in multi-layer video code streams, resulting in waste of resources and inefficient decoding.
By using a signaling mechanism that adapts to image size during video encoding and decoding, the time sub-layer identifier value of the video encoding layer is limited, and the generation and use of output layer sets are controlled, ensuring the number of sub-layers and inter-layer dependencies of each layer are ensured. reasonable distribution of sexuality.
It improves the decoding efficiency and resource utilization of video code streams, reduces the storage and transmission bandwidth requirements, and adapts to the video quality requirements of different application scenarios.
Smart Images

Figure CN119254981A_ABST
Abstract
Description
[0001] Cross-references
[0002] This application claims priority under 35 U.S.C. §119 to U.S. Provisional Application No. 63 / 000,980 filed with the United States Patent and Trademark Office on March 27, 2020, and U.S. Application No. 17 / 097,636 filed therewith on November 13, 2020, the disclosures of which are incorporated by reference into this application. Technical Field
[0003] The disclosed subject matter relates to video encoding and decoding, and more particularly, to output layer derivation in an encoded video stream having multiple layers. Background Art
[0004] Video encoding and decoding using inter-picture prediction with motion compensation has been known for decades. Uncompressed digital video can consist of a series of pictures, each picture having spatial dimensions of, for example, 1920×1080 luma samples and associated chroma samples. The series of pictures can have a fixed or variable picture rate (also informally referred to as a frame rate), such as 60 pictures per second or 60Hz. Uncompressed video has significant bit rate requirements. For example, 1080p60 4:2:0 video (1920×1080 luma sample resolution at 60Hz frame rate) with 8 bits per sample requires close to 1.5Gbit / s bandwidth. One hour of such video requires over 600 Gigabytes of storage space.
[0005] One purpose of video encoding and decoding can be to reduce redundancy in the input video signal through compression. Compression can help reduce the aforementioned bandwidth or storage space requirements, in some cases by two orders of magnitude or more. Lossless compression and lossy compression, as well as combinations thereof, can be employed. Lossless compression refers to a technique in which an exact copy of the original signal can be reconstructed from the compressed original signal. When lossy compression is used, the reconstructed signal may be different from the original signal, but the distortion between the original signal and the reconstructed signal is small enough that the reconstructed signal can be used for the intended application. In the case of video, lossy compression is widely employed. The amount of distortion allowed depends on the application; for example, users of certain consumer streaming applications may tolerate higher distortion than users of television distribution applications. The achievable compression ratio may reflect that a higher allowed / tolerant distortion can produce a higher compression ratio.
[0006] Video encoders and decoders may utilize techniques from several broad categories, including, for example, motion compensation, transforms, quantization, and entropy coding, some of which are described below.
[0007] Historically, video encoders and decoders have tended to operate on a given picture size, which in most cases is defined and kept constant for a coded video sequence (CVS coded video sequence), a group of pictures (GOP) or a similar multi-picture time frame. For example, in MPEG-2, known system designs change the horizontal resolution (and therefore the picture size) according to factors such as scene activity, but only change the horizontal resolution at the I picture, so it is usually used for GOP. Resampling of reference pictures of different resolutions within CVS is well known, for example, from ITU-T Rec. H.263 Annex PP. However, the picture size is not changed here, only the reference picture is resampled, potentially resulting in only part of the picture canvas being used (in the case of downsampling), or only part of the scene being captured (in the case of upsampling). Further, H.263 Annex Q allows a single macroblock to be resampled up or down by a factor of 2 (in each dimension). Again, the picture size remains the same. The size of the macroblock is fixed in H.263 and therefore does not need to be signaled.
[0008] Changes in picture size in predicted pictures have become more mainstream in modern video codecs. For example, VP9 allows reference picture resampling and changes in the resolution of the entire image. Similarly, certain proposals have been made for VVC (including, for example, Hendry et al., "On adaptive resolution change (ARC) for VVC" Joint Video Team document JVET-M0135-v1, January 9-19, 2019, the entire text of which is incorporated herein) to allow the entire reference picture to be resampled to a different higher or lower resolution. In this document, it is proposed that different candidate resolutions be encoded in a sequence parameter set and referenced by a per-picture syntax element in a picture parameter set. Summary of the invention
[0009] The present disclosure is for signaling of adaptive picture size in video bitstreams.
[0010] A method for decoding a coded video sequence executed by at least one processor, comprising: obtaining the coded video sequence; and decoding the coded video sequence, wherein the value of the temporal sublayer identifier of the video coding layer VCL network abstraction layer NAL unit in the coded video sequence is restricted to be less than or equal to the value of vps_max_sublayers_minus1 in the video parameter set VPS referenced by the video coding layer VCL network abstraction layer NAL unit, and the value of vps_max_sublayers_minus1 indicates the maximum number of temporal sublayers, and the temporal sublayer can exist in the layer in each coded video sequence that references the video parameter set VPS.
[0011] In some embodiments, the value of max_tid_il_ref_pics_plus1[i] is zero, indicating that the non-intra random access point IRAP picture of the i-th layer does not use inter-layer prediction.
[0012] In some embodiments, a value of max_tid_il_ref_pics_plus1[i] greater than zero indicates that, for decoding pictures of the i-th layer, pictures with temporal sub-layer identifiers greater than max_tid_il_ref_pics_plus1[i]-1 are not used as inter-layer reference pictures ILRP.
[0013] In some embodiments, when not present, the value of max_tid_il_ref_pics_plus1[i] is inferred to be equal to vps_max_sublayers_minus1+1.
[0014] In some embodiments, max_tid_il_ref_pics_plus1[i] is limited to be less than or equal to vps_max_sublayers_minus1+1.
[0015] In some embodiments, the sub-layer-by-sub-layer output layer set is restricted to not be derived for independent layers.
[0016] In some embodiments, a first variable NumSubLayersInLayerInOLS[i][j] indicates the number of sublayers in the jth layer in the i-th OLS, wherein a second variable OutputLayerIdInOls[i][j] indicates the nuh_layer_id value of the jth output layer in the i-th OLS, wherein a third variable LayerUsedAsOutputLayerFlag[k] indicates whether the kth layer is used as an output layer in at least one OLS, and wherein the first variable, the second variable and the third variable are derived from the value of the variable max_tid_il_ref_pics_plus1[i].
[0017] In some embodiments, max_tid_il_ref_pics_plus1 and layerIncludedInOlsFlag are restricted to not be exported for independent layers.
[0018] An exemplary device for decoding a coded video sequence comprises at least one memory configured to store program code; and at least one processor configured to read the program code and operate as indicated by the program code, wherein the program code comprises: an obtaining code configured to cause the at least one processor to obtain the coded video sequence; and a decoding code configured to cause the at least one processor to decode the coded video sequence, wherein the value of a temporal sublayer identifier of a video coding layer (VCL) network abstraction layer (NAL) unit in the coded video sequence is restricted to be less than or equal to the value of vps_max_sublayers_minus1 in a video parameter set (VPS) referenced by the video coding layer (VCL) network abstraction layer (NAL) unit, and the value of vps_max_sublayers_minus1 indicates the maximum number of temporal sublayers that can exist in a layer in each coded video sequence that references the video parameter set (VPS).
[0019] An exemplary non-volatile computer-readable medium stores instructions, the instructions comprising: one or more instructions, which, when executed by one or more processors of a device for decoding a video sequence, cause the one or more processors to: obtain a coded video sequence; and decode the coded video sequence, wherein the value of a temporal sublayer identifier of a video coding layer (VCL) network abstraction layer (NAL) unit in the coded video sequence is restricted to be less than or equal to the value of vps_max_sublayers_minus1 in a video parameter set (VPS) referenced by the video coding layer (VCL) network abstraction layer (NAL) unit, the value of vps_max_sublayers_minus1 indicating the maximum number of temporal sublayers that can exist in a layer in each coded video sequence that references the video parameter set (VPS). BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Other features, properties and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings, in which:
[0021] Figure 1 is a schematic diagram of a simplified block diagram of a communication system according to an embodiment;
[0022] Figure 2 is a schematic diagram of a simplified block diagram of a communication system according to an embodiment;
[0023] Figure 3 is a schematic diagram of a simplified block diagram of a decoder according to an embodiment;
[0024] Figure 4 is a schematic diagram of a simplified block diagram of a decoder according to an embodiment;
[0025] Figure 5 is a schematic diagram of options for signaling ARC parameters according to prior art or embodiments;
[0026] Figure 6 is an example of a syntax table according to an embodiment;
[0027] Figure 7 is a schematic diagram of a computer device according to an embodiment;
[0028] Figure 8 is an example of a prediction structure with scalability to adaptive resolution changes;
[0029] Fig. 9 is based on examples of embodiments and published examples;
[0030] Fig.10 is a schematic diagram of a simplified block diagram for parsing and decoding a poc period and access unit count value per access unit;
[0031] Fig.11 is a schematic diagram of a video bitstream structure including multiple layers of sub-pictures;
[0032] Fig.12 is a schematic diagram of a display of a selected sub-picture with enhanced resolution;
[0033] Fig.13 is a block diagram of a decoding and display process of a video stream including multiple layers of sub-pictures;
[0034] Fig.14 is a schematic diagram of a 360 video display with an enhancement layer of a sub-picture;
[0035] Fig.15 is an example of the layout information of sub-pictures, their corresponding layers, and picture prediction structures;
[0036] Fig.16 is an example of layout information of sub-pictures with a spatial scalability modality of local regions and their corresponding layer and picture prediction structures;
[0037] Fig.17 is an example of a syntax table for sub-picture layout information;
[0038] Fig.18 is an example of a syntax table of a SEI message of sub-picture layout information;
[0039] Fig.19 is an example of a syntax table for indicating output layers and the profile / layer / level for each output layer set;
[0040] Fig. 20 is an example of a syntax table for indicating the output layer mode for each output layer set;
[0041] Fig.21 is an example of a syntax table indicating, for each set of output layers, the current sub-picture of each layer;
[0042] Fig. 22 is an example of a syntax table that uses a sub-level indication to indicate an output layer set. DETAILED DESCRIPTION
[0043] When a picture is encoded into a codestream consisting of multiple layers with different qualities, the codestream may have syntax elements for indicating which layers can be output on the decoder side. The set of layers to be output is defined as the output layer set. In the latest video codecs that support multiple layers and scalability, one or more output layer sets are signaled in the video parameter set. Those syntax elements used to indicate the output layer set and their dependencies, profiles / tiers / levels, and assumed decoder reference model parameters need to be effectively signaled in the parameter set.
[0044] Figure 1 1 is a simplified block diagram of a communication system (100) according to an embodiment disclosed in the present application. The communication system (100) includes at least two terminal devices (110-120), which can communicate with each other through, for example, a network (150). For unidirectional transmission of data, a first terminal device (110) can encode video data at a local location for transmission to a second terminal device (120) through a network (150). The second terminal device (120) can receive encoded video data of other terminal devices from the network (150), decode the encoded video data and display the recovered video data. Unidirectional data transmission is more common in applications such as media services.
[0045] Figure 1 A second pair of terminal devices (130-140) is shown for supporting bidirectional transmission of encoded video data, which may occur, for example, during a video conference. For bidirectional data transmission, each of the terminal devices (130-140) may encode video data collected at a local location for transmission to another terminal device via a network (150). Each of the terminal devices (130-140) may also receive encoded video data transmitted by another terminal device, and may decode the encoded video data and display the recovered video data on a local display device.
[0046] exist Figure 1In the embodiment, the first terminal device (110), the second terminal device (120), the third terminal device (130) and the fourth terminal device (140) may be servers, personal computers and smart phones, but the principles disclosed in the present application may not be limited thereto. The embodiments disclosed in the present application are applicable to 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 first terminal device (110), the second terminal device (120), the third terminal device (130) and the fourth terminal device (140), including, for example, wired (wired) and / or wireless communication networks. The communication network (150) may exchange data in circuit switching and / or packet switching channels. The network may include a telecommunications network, a local area network, a wide area network and / or the Internet. For the purposes of the present application, unless explained below, the architecture and topology of the network (150) may be irrelevant to the operations disclosed in the present application.
[0047] As an example, Figure 2 The video encoder and decoder are shown in a streaming environment. The subject matter disclosed in this application 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.
[0048] The streaming system may include an acquisition subsystem (213), which may include a video source (201) such as a digital camera, which creates an uncompressed video sample stream (202). The sample stream (302), depicted as a thick line to emphasize the high amount of data compared to the encoded video stream, can be processed by an encoder (203) coupled to the camera (201). The video 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. The encoded video stream (204), depicted as a thin line to emphasize the lower amount of data compared to the sample stream, can be stored on a streaming server (205) for future use. One or more streaming clients (206) and (208) can access the streaming server (205) to retrieve a copy (207) and a copy (209) of the encoded video stream (204). The client (206) may include a video decoder (210) that decodes an incoming copy of the encoded video data (207) and produces an output video sample stream (211) that can be presented on a display (212) or another presentation device (not depicted). In some streaming systems, the encoded video stream (204), video stream (207), and video stream (209) may be encoded according to certain video encoding / compression standards. Examples of such standards include ITU-T H.265. In an embodiment, the video coding standard under development is informally referred to as Versatile Video Coding (VVC), and the present application may be used in the context of the VVC standard.
[0049] Figure 3 is a functional block diagram of a video decoder (210) according to an embodiment of the present disclosure.
[0050] The receiver (310) may receive one or more encoded video sequences to be decoded by the decoder (210); in the same or another embodiment, one encoded video sequence is received at a time, wherein the decoding of each encoded video sequence is independent of the 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 as well as other data, such as encoded audio data and / or auxiliary data streams that may be forwarded to their respective consuming entities (not shown). 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 an entropy decoder / parser (320) (hereinafter referred to as "parser"). When the receiver (310) receives data from a storage / forward device with sufficient bandwidth and controllability or from an isochronous network, it may not be necessary to configure the buffer memory (315), or the buffer memory may be made smaller. Of course, in order to be used on a traffic packet network such as the Internet, a buffer memory (315) may also be required, and the buffer memory may be relatively large and may have an adaptive size.
[0051] The video decoder (210) may include a parser (320) to reconstruct symbols (321) from an entropy coded video sequence. The types of symbols include information used to manage the operation of the video decoder (210) and potential information used to control a display device such as a display screen (212) that is not part of the decoder but may be coupled to the decoder, such as Figure 2As shown in . The control information for the display device may be a parameter set fragment (not indicated) of Supplemental Enhancement Information (SEI message) or 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 principles well known to those skilled in the art, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, and the like. 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), and the like. The entropy decoder / parser can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.
[0052] The parser (320) may perform entropy decoding / parsing operations on the video sequence received from the buffer memory (315) to create symbols (321).
[0053] Depending on the type of coded video picture or portion 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 multiple different units. Which units are involved and how they are involved may be controlled by subgroup control information parsed by the parser (320) from the coded video sequence. For the sake of brevity, such subgroup control information flow between the parser (320) and the multiple units below is not described.
[0054] In addition to the functional blocks already mentioned, the decoder (210) can be conceptually subdivided into several functional units as described below. In a practical embodiment operating under commercial constraints, many of these units interact closely with each other and can be 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.
[0055] The first unit is a sealer and / or inverse transform unit (351). The sealer and / or inverse transform unit (351) receives quantized transform coefficients as symbols (321) from the parser (320) and control information 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).
[0056] In some cases, the output samples of the scaler and / or inverse transform unit (351) may belong to an intra-coded block; that is, a block that does not use predictive information from a previously reconstructed picture, but may use predictive information from a previously reconstructed portion of the current picture. Such predictive information may be provided by an intra-picture prediction unit (352). In some cases, the intra-picture prediction unit (352) generates surrounding blocks of the same size and shape as the block being reconstructed using reconstructed information extracted from the (partially reconstructed) current picture (356). In some cases, the aggregator (355) adds the prediction information generated by the intra-prediction unit (352) to the output sample information provided by the scaler / inverse transform unit (351) on a per-sample basis.
[0057] In other cases, the output samples of the sealer and / or inverse transform unit (351) may belong to an inter-frame coded and potentially motion compensated block. In this case, the motion compensated prediction unit (353) may access the reference picture memory (357) to extract samples for prediction. After the extracted samples are motion compensated according to the symbols (321), these samples may be added to the output of the sealer / inverse transform unit 3 (in this case referred to as residual samples or residual signals) by the aggregator (355) to generate output sample information. The motion compensation unit's retrieval of predicted samples from addresses within the reference picture memory may be controlled by motion vectors, and the motion vectors are provided to the motion compensation unit in the form of the symbols (321), for example, including X, Y and reference picture components. Motion compensation may also include interpolation of sample values extracted from the reference picture memory when using sub-sample accurate motion vectors, motion vector prediction mechanisms, and the like.
[0058] The output samples of the aggregator (355) may be used by 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 encoded video bitstream and available to the loop filter unit (356) as symbols (321) from the parser (320). However, in other embodiments, the video compression techniques may also be responsive to meta-information obtained during decoding of a previous (in decoding order) portion of an encoded picture or encoded video sequence, as well as to previously reconstructed and loop filtered sample values.
[0059] The output of the loop filter unit (356) may be a sample stream that may be output to a display device (212) and stored in a reference picture memory (357) for subsequent inter-picture prediction.
[0060] 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 buffer (358) may become part of the reference picture buffer (357), and new current picture memory may be reallocated before starting reconstruction of a subsequent coded picture.
[0061] The video decoder 320 may perform decoding operations according to a predetermined video compression technique, such as that documented in the ITU-T H.265 standard. The encoded video sequence may conform to the syntax specified by the video compression technology or standard being used, in the sense that the encoded video sequence complies with the syntax of the video compression technology or standard, as specified in the video compression technology document or standard, particularly as specified in the profiles therein. For compliance, it is also required that the complexity of the encoded video sequence is within the range defined by the hierarchy of the video compression technology 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.
[0062] In an embodiment, the receiver (310) may receive additional (redundant) data along with the encoded video. The additional data may be part of the encoded video sequence. The additional data may be used by the video decoder 320 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 noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.
[0063] Figure 4 is a functional block diagram of a video encoder (203) according to an embodiment of the present disclosure.
[0064] The encoder (203) may receive video samples from a video source (201) (not part of the encoder) that may capture video images to be encoded by the encoder (203).
[0065] 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), wherein 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 pictures that are given motion when viewed sequentially. The pictures themselves may be constructed as a spatial pixel array, wherein 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 samples.
[0066] According to an embodiment, the encoder (203) may encode and compress pictures of a source video sequence into an encoded video sequence (443) in real time or under any other time constraints required by the application. Implementing an appropriate encoding speed is a function of a controller (450). The controller controls other functional units as described below and is functionally coupled to these units. For the sake of brevity, couplings are not shown in the figure. Parameters set by the controller may include rate control related parameters (picture skipping, quantizer, lambda value of rate distortion optimization technology, etc.), picture size, picture group (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) because these functions are related to the video encoder (203) optimized for a certain system design.
[0067] Some video encoders (503) operate in what is readily recognizable to those skilled in the art as a "coding loop". As a simple description, in an embodiment, the coding loop may consist of an encoding portion of an encoder (430) (here referred to as a source encoder) (responsible for creating symbols based on the input picture to be encoded and the reference picture) and a (local) decoder (433) embedded in the encoder (203). The decoder (433) reconstructs the symbols to create sample data in a manner similar to how the (remote) decoder creates sample data (because in the video compression techniques considered in this application, any compression between the symbols and the encoded video code stream is lossless). The reconstructed sample stream is input to a reference picture memory (434). Since the decoding of the symbol stream produces bit-accurate results that are independent of the decoder location (local or remote), the reference picture buffer contents are also bit-accurately corresponding between the local encoder and the remote encoder. In other words, the reference picture 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. This basic principle of reference picture synchronization (and the drift that occurs when synchronization cannot be maintained, for example due to channel errors) is also well known to those skilled in the art.
[0068] The operation of the "local" decoder (433) may be combined with, for example, Figure 3 The detailed "remote" decoder is the same. However, additional brief reference is made to Figure 3 , when symbols are available and the entropy encoder (445) and the parser (320) are capable of losslessly encoding / decoding the symbols into an encoded video sequence, the entropy decoding portion of the video decoder (210), including the channel (312), the receiver (310), the buffer (315) and the parser (320), may not be fully implemented in the local decoder (433).
[0069] At this point, it can be observed that any decoder technology other than the 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 present application focuses on decoder operation. The description of encoder technology can be simplified because encoder technology is mutually inverse to the decoder technology described comprehensively. A more detailed description is only needed in certain areas and is provided below.
[0070] As part of the operation, the source encoder (430) may perform motion compensated predictive coding. The motion compensated predictive coding predictively encodes the input frame with reference to one or more previously encoded frames from the video sequence designated as "reference frames". In this manner, the encoding engine (432) encodes the differences between the pixel blocks of the input frame and the pixel blocks of the reference frame, which may be selected as a prediction reference for the input frame.
[0071] 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 be a lossy process. When the encoded video data is available at the video decoder ( Figure 4 When the video sequence is decoded at a remote location (not shown), the reconstructed video sequence may typically be a copy of the source video sequence 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 cache (434). In this way, the video 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.
[0072] 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 picture memory (434) for sample data (as candidate reference pixel blocks) or certain metadata, such as reference picture motion vectors, block shapes, etc., that may serve as appropriate prediction references for the new picture. The predictor (435) may operate pixel-by-pixel based on sample blocks to find a suitable prediction reference. In some cases, based on the search results obtained by the predictor (435), it may be determined that the input picture may have prediction references taken from a plurality of reference pictures stored in the reference picture memory (434).
[0073] The controller (450) may manage encoding operations of the video encoder (430), including, for example, setting parameters and subgroup parameters for encoding video data.
[0074] The outputs of all the above functional units may be entropy encoded in an entropy encoder (445). The entropy encoder performs lossless compression on the symbols generated by the various functional units according to techniques well known to those skilled in the art, such as Huffman coding, variable length coding, arithmetic coding, etc., thereby converting the symbols into a coded video sequence.
[0075] 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).
[0076] 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, a picture may generally be assigned to any of the following frame types:
[0077] 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 different types of intra pictures, including, for example, Independent Decoder Refresh ("IDR") pictures. Those skilled in the art are aware of the variations of I pictures and their corresponding applications and features.
[0078] A predictive picture (P picture) may be a picture that can 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.
[0079] Bidirectional predictive pictures (B pictures), which can be pictures that can be encoded and decoded using intra prediction or inter 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.
[0080] 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 according to the coding allocation applied to the block's corresponding picture. For example, blocks of an I picture may be non-predictively coded, or the blocks may be predictively coded (spatial prediction or intra-frame prediction) with reference to already coded blocks of the same picture. Blocks of pixels of a P picture may be non-predictively coded by spatial prediction with reference to one previously coded reference picture or by temporal prediction. Blocks 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.
[0081] The video encoder (203) may perform encoding operations according to a predetermined video encoding technique or standard, such as ITU-T H.265 Recommendation. 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.
[0082] In an 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 other forms of redundant data such as temporal / spatial / SNR enhancement layers, redundant pictures and slices, SEI messages, VUI parameter set fragments, etc.
[0083] Before describing certain aspects of the disclosed subject matter in greater detail, it is necessary to introduce some terms that will be referred to in the remainder of the description.
[0084] Hereinafter, a sub-picture refers in some cases to a rectangular arrangement of samples, blocks, macroblocks, coding units, or similar entities that are semantically grouped and can be independently encoded at varying resolutions. One or more sub-pictures can be used for a picture. One or more encoded sub-pictures can form an encoded picture. One or more sub-pictures can be combined into a picture, and one or more sub-pictures can be extracted from a picture. In some environments, one or more encoded sub-pictures can be combined in a compressed domain without converting sample level codes into an encoded picture, and in the same or certain other cases, one or more encoded sub-pictures can be extracted from an encoded picture in the compressed domain.
[0085] Adaptive Resolution Change (ARC) hereafter refers to a mechanism that allows the resolution of a picture or sub-picture within a coded video sequence to be changed by, for example, resampling a reference picture. ARC parameters hereafter refer to the control information required to perform adaptive resolution change, which may include, for example, filter parameters, scaling factors, resolution of output and / or reference pictures, various control flags, etc.
[0086] The above description focused on encoding and decoding a single semantically independent coded video picture.Before describing the implications of encoding / decoding of multiple sub-pictures with independent ARC parameters and the additional complexity it implies, options for signaling ARC parameters may be described.
[0087] refer to Figure 5 , several novel options for signaling ARC parameters are shown. As indicated in each of the options, they have certain advantages and certain disadvantages from the perspective of codec efficiency, complexity, and architecture. A video codec standard or technology may select one or more of these options, or options known from the prior art, for signaling ARC parameters. These options may not be mutually exclusive and may be interchangeable depending on application needs, the standard technology involved, or the choice of encoder.
[0088] Categories of ARC parameters can include:
[0089] - Upsampling factors and / or downsampling factors in the X and Y dimensions, either separately or combined.
[0090] - An upsampling factor and / or a downsampling factor which, together with the temporal dimension, indicates a constant speed up / down scaling for a given number of pictures.
[0091] - Either of the above may involve encoding one or more possibly shorter syntax elements that may point to a table containing the factors.
[0092] - The resolution of the input picture, output picture, reference picture, coded picture in the X or Y dimension, which can be combined or separated in units of samples, blocks, macroblocks, CUs or any other suitable granularity. If there is more than one resolution (e.g., one for the input picture and one for the reference picture), in some cases one set of values can be inferred from another. This can be gated, for example, by using a flag. See below for more detailed examples.
[0093] - "Warping" coordinates similar to those used in H.263 Annex P, again of suitable granularity as described above. H.263 Annex P defines an efficient way to encode such warping coordinates, but other, potentially more efficient ways can be envisioned. For example, the variable-length reversible "Huffman"-style encoding of the warping coordinates of Annex P can be replaced by a binary encoding of appropriate length, where the length of the binary codeword can be derived, for example, from the maximum picture size, possibly multiplied by some factor and offset by some value, to allow "warping" outside the boundaries of the maximum picture size.
[0094] - Upsampling filter parameters and / or downsampling filter parameters. In the easiest case, only a single filter may be used for upsampling and / or downsampling. However, in some cases, it is advantageous to allow greater flexibility in filter design, and this may require signaling the filter parameters. Such parameters may be selected by an index in a list of possible filter designs, the filter may be fully specified (e.g., by a list of filter coefficients, using appropriate entropy coding techniques), the filter may be implicitly selected by the upsampling ratio and / or the downsampling ratio, and then, according to any of the above mechanisms, the filter may be signaled in turn to be implicitly selected according to the upsampling rate or the downsampling rate, and so on.
[0095] Hereinafter, the description assumes the encoding of a finite set of upsampling factors and / or downsampling factors (the same factors used in both the X and Y dimensions) indicated by codewords. The codewords may advantageously be variable length encoded, for example, by using Ext-Golomb codes common to certain syntax elements in video codec specifications such as H.264 and H.265. A suitable mapping of values to upsampling factors and / or downsampling factors may be, for example, according to Table 1 below.
[0096] Table 1
[0097] Codeword Ext-Golomb Code Original / target resolution 0 1 1 / 1 1 010 1 / 1.5 (50% zoom) 2 011 1.5 / 1 (50% smaller) 3 00100 1 / 2 (100% zoom) 4 00101 2 / 1 (reduced by 100%)
[0098] Many similar mappings can be designed depending on the needs of the application and the capabilities of the up-scaling and down-scaling mechanisms available in the video compression technology or standard. The table can be extended to more values. The values can also be represented by entropy coding mechanisms other than Ext-Golomb codes (e.g., using binary encoding). This may have certain advantages when the resampling factors are of interest outside the video processing engines (most importantly the encoder and decoder) themselves (e.g., by a MANE). It should be noted that for the (presumably) most common cases where no resolution change is required, a short Ext-Golomb code can be chosen; in the table above, only a single bit. For the most common cases, this can have codec efficiency advantages over using a binary code.
[0099] The number of entries in the table and their semantics may be fully or partially configurable. For example, the basic outline of the table may be communicated in a "high" parameter set such as a sequence parameter set or a decoder parameter set. Alternatively or additionally, one or more such tables may be defined in a video codec technology or standard and may be selected by, for example, a decoder parameter set or a sequence parameter set.
[0100] Hereinafter, we describe how to include the up-sampling factors and / or down-sampling factors (ARC information) encoded as described above in a video codec or standard syntax. Similar considerations can be applied to one or several codewords controlling an up-sampling filter and / or a down-sampling filter. When a filter or other data structure requires a relatively large amount of data, see the following discussion.
[0101] H.263 Annex P includes ARC information 502 in the form of four warp coordinates in the picture header 501, specifically in the H.263PLUSPTYPE (503) header extension. This may be a wise design choice when a) there are picture headers available and b) frequent changes in the ARC information are expected. However, the overhead when using H.263-type signaling may be quite high, and the scaling factors may not pertain to picture boundaries because picture headers may have a transient nature.
[0102] The JVCET-M135-v1 referenced above includes ARC reference information (505) (index) located in a picture parameter set (504) which is used to index a table (506) containing target resolutions, which in turn are located in a sequence parameter set (507). According to the authors' verbal presentation, the placement of possible resolutions in a table (506) in a sequence parameter set (507) can be justified by using the SPS as an interoperability negotiation point during capability exchange. By referencing the appropriate picture parameter set (504), the resolution can be changed on a picture-by-picture basis within the limits set by the values in the table (506).
[0103] Still reference Figure 5 , there may be the following additional options for transmitting ARC information in the video bitstream. Each of these options has certain advantages over the prior art described above. Options may exist simultaneously in the same video codec technology or standard.
[0104] In an embodiment, ARC information (509) such as a resampling (scaling) factor may be present in a slice header, a GOB header, a tile header, or a tile group header (hereinafter tile group header) (508). This may be sufficient for smaller ARC information, such as a single variable length ue(v) or a fixed length codeword of a few bits, for example as shown above. Including the ARC information directly in the tile group header may have the additional advantage that the ARC information may apply to a sub-picture represented by, for example, a tile group, rather than to the entire picture. See also below. In addition, even if the video compression technique or standard only envisions adaptive resolution changes for the entire picture (e.g., in contrast to adaptive resolution changes based on tile groups), placing the ARC information in the tile group header has certain advantages over placing it in an H.263-type picture header from a fault tolerance perspective.
[0105] In the same or another embodiment, the ARC information (512) itself may be present in an appropriate parameter set (511), such as a picture parameter set, a header parameter set, a tile parameter set, an adaptation parameter set, etc. (depicted as an adaptation parameter set). Advantageously, the scope of the parameter set may be no larger than a picture, such as a tile group. Use of the ARC information is implicit by activating the relevant parameter set. For example, when a video codec technology or standard only considers picture-based ARC, then a picture parameter set or equivalent may be appropriate.
[0106] In the same or another embodiment, ARC reference information (513) may be present in a tile group header (514) or similar data structure. The reference information (513) may refer to a subset of the ARC information (515) available in a parameter set (516) that extends beyond a single picture, such as a sequence parameter set or a decoder parameter set.
[0107] An additional level of indirect implicit activation from tile group headers, PPS, SPS, as used in JVET-M0135-v1, seems unnecessary, since picture parameter sets (just like sequence parameter sets) can be used for (and in some standards such as RFC3984 have for) capability negotiation or announcement. However, if the ARC information should apply, for example, to a sub-picture represented by a tile group, then parameter sets with an activation scope limited to the tile group (e.g., adaptation parameter sets or header parameter sets) may also be a better choice. Furthermore, if the size of the ARC information is larger than a negligible size (e.g., containing filter control information such as multiple filter coefficients), then from a codec efficiency point of view, parameters may be a better choice than using the header (508) directly, since these settings can be reused by future pictures or sub-pictures by referencing the same parameter set.
[0108] When using a sequence parameter set or another higher parameter set with a range spanning multiple pictures, certain considerations may apply:
[0109] 1. The parameter set used to store the ARC information table (516) may in some cases be a sequence parameter set, but may advantageously be a decoder parameter set in some cases. A decoder parameter set may have an activation range of multiple CVSs, i.e., coded video bitstreams, i.e., all coded video bits from the start of a session until the session is torn down. Such a range may be more appropriate because possible ARC factors may be decoder characteristics, possibly implemented in hardware, and hardware characteristics tend not to change with any CVS (which in at least some entertainment systems is a group of pictures, one second or less in length). That is, placing the table in a sequence parameter set is explicitly included in the placement options described herein, particularly in conjunction with point 2 below.
[0110] 2. The ARC reference information (513) can be advantageously placed directly into the picture / strip tile / GOB / tile group header (hereinafter referred to as the tile group header) (514) rather than into the picture parameter set in JVET-M0135-v1. The reason is as follows: When the encoder wants to change a single value in the picture parameter set, such as the ARC reference information, it must create a new PPS and reference the new PPS. Assume that only the ARC reference information changes, but other information in the PPS, such as the quantization matrix information, remains unchanged. Such information can be of considerable size and needs to be retransmitted to make the new PPS complete. Since the ARC reference information can be a single codeword, such as an index in a table (513), and this will be the only value that changes, retransmitting, for example, all quantization matrix information will be cumbersome and wasteful. So far, from the perspective of codec efficiency, it would be better to avoid indirect access through the PPS, as proposed in JVET-M0135-v1. Similarly, placing the ARC reference information in the PPS has the additional disadvantage that the ARC information referenced by the ARC reference information (513) must be applied to the entire picture rather than a sub-picture, since the scope of picture parameter set activation is the picture.
[0111] In the same or another embodiment, signaling of ARC parameters may follow Figure 6 A detailed example is outlined in . Figure 6 Depicts a syntax diagram in a representation used in video codec standards since at least 1993. The notation for such a syntax diagram roughly follows C-style programming. Bold lines represent syntax elements present in the codestream, non-bold lines typically represent control flow or the setting of variables.
[0112] The tile group header (601), an exemplary syntax structure as a header, may conditionally contain a variable length, Exp-Golomb coded syntax element dec_pic_size_idx (602) (shown in boldface), which may apply to a (possibly rectangular) portion of a picture. The presence of this syntax element in the tile group header may be gated (603) based on the use of adaptive resolution - here, the value of the flag is not shown in boldface, which means that the flag is present in the codestream at the point where the flag appears in the syntax diagram. Whether adaptive resolution is used for the picture or portion thereof may be signaled in any higher-level syntax structure, either inside or outside the codestream. In the example shown, it is signaled in the sequence parameter set, as outlined below.
[0113] Still reference Figure 6, an excerpt of a sequence parameter set (610) is also shown. The first syntax element shown is adaptive_pic_resolution_change_flag (611). When true, this flag may indicate the use of adaptive resolution, which in turn may require certain control information. In this example, such control information is conditionally present based on the value of the flag based on an if() statement in the parameter set (612) and the tile group header (601).
[0114] When adaptive resolution is used, in this example, the output resolution in units of samples (613) is encoded. Reference numeral 613 represents output_pic_width_in_luma_samples and output_pic_height_in_luma_samples, which together can define the resolution of the output picture. Elsewhere in the video codec technology or standard, certain restrictions on either value may be defined. For example, the level definition may limit the number of total output samples, which may be the product of the values of these two syntax elements. In addition, certain video codec technologies or standards, or external technologies or standards (such as, for example, system standards) may limit the number range (e.g., one or both dimensions must be divisible by a power of 2) or aspect ratio (e.g., width and height must be in a relationship such as 4:3 or 16:9). Such restrictions may be introduced to facilitate hardware implementation or for other reasons, and such restrictions are well known in the art.
[0115] In some applications, it may be advisable for the encoder to instruct the decoder to use a certain reference picture size, rather than implicitly assuming that size is the output picture size. In this example, the syntax element reference_pic_size_present_flag (614) gates the conditional presence of the reference picture size (615) (again, this reference sign refers to both width and height).
[0116] Finally, a possible table for decoding the picture width and height is shown. Such a table may be represented, for example, by a table indication (num_dec_pic_size_in_luma_samples_minus1) (616). "Minus1" may refer to the interpretation of the value of this syntax element. For example, if the encoded value is zero, there is one table entry. If the value is five, there are six table entries. Then for each "row" in the table, the decoded picture width and height are included in the syntax (617).
[0117] The syntax element dec_pic_size_idx (602) in the tile group header may be used to index the table entry presented (617), allowing different decoded sizes (effectively, scaling factors) per tile group.
[0118] Some video codecs or standards (e.g., VP9) support spatial scalability by implementing some forms of reference picture resampling (signaled in a manner quite different from the disclosed subject matter) in conjunction with temporal scalability to achieve spatial scalability. In particular, certain reference pictures may be upsampled to a higher resolution using ARC-like techniques to form the basis of a spatial enhancement layer. Those upsampled pictures may be refined using a high-resolution normal prediction mechanism to increase detail.
[0119] The disclosed subject matter can be used in such an environment. In some cases, in the same or another embodiment, the value in the NAL unit header (e.g., the time ID field) can be used to indicate not only the time layer, but also the spatial layer. Doing so has certain advantages for certain system designs; for example, existing selected forwarding units (SFUs) are created and optimized for time layer selection forwarding based on the NAL unit header time ID value, and the selected forwarding units can be used in a scalable environment without modification. To achieve this, it may be necessary for the mapping between the coded picture size and the time layer to be indicated by the time ID field in the NAL unit header.
[0120] In some video coding technologies, an access unit (AU) may refer to one or more coded pictures, one or more slices, one or more tiles, one or more NAL units, etc., collected and synthesized into a corresponding picture / slice / tile / NAL unit stream at a given time instance. The time instance may be the synthesis time.
[0121] In HEVC and certain other video codecs, a picture order count (POC) value can be used to indicate a selected reference picture among multiple reference pictures stored in a decoded picture buffer (DPB). When an access unit (AU) includes one or more pictures, slices, or tiles, each picture, slice, or tile belonging to the same AU can carry the same POC value, from which it can be derived that they are created from content at the same synthesis time. In other words, in a scenario where two pictures / slices / tiles carry the same given POC value, it can indicate two pictures / slices / tiles belonging to the same AU and having the same synthesis time. Conversely, two pictures / slices / tiles with different POC values can indicate those pictures / slices / tiles belonging to different AUs and having different synthesis times.
[0122] In an embodiment of the disclosed subject matter, since an access unit may include pictures, slices, or tiles with different POC values, the above strict relationship may be relaxed. By allowing different POC values within an AU, it is possible to use the POC value to identify potentially independently decodable pictures / slices / tiles with the same presentation time. This in turn enables support for multiple scalable layers without changing the reference picture selection signaling (e.g., reference picture set signaling or reference picture list signaling), as described in more detail below.
[0123] However, it is still desirable to identify the AU to which a picture / slice / tile belongs from the POC value alone, relative to other pictures / slices / tiles having different POC values. This can be achieved as described below.
[0124] In the same or other embodiments, an access unit count (AUC) may be signaled in a high-level syntax structure such as a NAL unit header, a slice header, a tile group header, a SEI message, a parameter set, or an AU delimiter. The value of AUC may be used to identify which NAL units, pictures, slices, or tiles belong to a given AU. The value of AUC may correspond to different synthesis time instances. The AUC value may be equal to a multiple of the POC value. The AUC value may be calculated by dividing the POC value by an integer value. In some cases, the division operation may impose a certain burden on the decoder implementation. In this case, a small restriction in the numbering space of the AUC value may allow the division operation to be replaced by a shift operation. For example, the AUC value may be equal to the most significant bit (MSB, Most Significant Bit) value of the POC value range.
[0125] In the same embodiment, the value of the POC cycle per AU (poc_cycle_au) may be signaled in a high-level syntax structure such as a NAL unit header, a slice header, a tile group header, a SEI message, a parameter set, or an AU delimiter. poc_cycle_au may indicate how many different and consecutive POC values may be associated with the same AU. For example, if the value of poc_cycle_au is equal to 4, pictures, slices, or tiles with POC values equal to 0 to 3 (inclusive) are associated with AUs with AUC values equal to 0, and pictures, slices, or tiles with POC values equal to 4 to 7 (inclusive) are associated with AUs with AUC values equal to 1. Therefore, the value of AUC may be inferred by dividing the POC value by the value of poc_cycle_au.
[0126] In the same or another embodiment, the value of poc_cycle_au can be obtained based on information located in (for example) a video parameter set (VPS), identifying the number of spatial or SNR layers in the encoded video sequence. This possible relationship is briefly described below. Although the derivation as described above can save several bits in the VPS and thus improve the encoding and decoding efficiency, it is advantageous to explicitly encode poc_cycle_au in a hierarchically appropriate high-level syntax structure so that poc_cycle_au can be minimized for a given small portion of the codestream (such as a picture), and the appropriate high-level syntax structure is below the video parameter set. Because the POC value (and / or the value of the syntax element that indirectly references the POC) can be encoded with a low-level syntax structure, this optimization can save more bits than through the above derivation process. In the same or another embodiment, Fig. 9An example of a syntax table is shown to signal the syntax element of vps_poc_cycle_au in the VPS (or SPS), which indicates the poc_cycle_au for all pictures / slices in the coded video sequence, and the syntax element of slice_poc_cycle_au in the slice header, which indicates the poc_cycle_au of the current slice. If the POC value per AU increases uniformly, vps_contant_poc_cycle_per_au in the VPS is set equal to 1, and vps_poc_cycle_au is signaled in the VPS. In this case, slice_poc_cycle_au is not explicitly signaled, and the value of AUC for each AU is calculated by dividing the value of POC by vps_poc_cycle_au. If the POC value per AU increases unevenly, vps_contant_poc_cycle_per_au in the VPS is set equal to 0. In this case, vps_access_unit_cnt is not signaled, while slice_access_unit_cnt is signaled in the slice header of each slice or picture. Each slice or picture may have a different slice_access_unit_cnt value. The AUC value for each AU is calculated by dividing the POC value by slice_poc_cycle_au. Fig.10 A block diagram illustrating the relevant workflow is shown.
[0127] In the same or other embodiments, pictures, slices or tiles corresponding to an AU may be associated with the same decoding or output time instance, even though the POC values of the pictures, slices or tiles may be different, and the AU has the same AUC value. Thus, all or a subset of pictures, slices or tiles associated with the same AU may be decoded in parallel and may be output at the same time instance without any internal parsing and / or decoding dependencies between the pictures, slices or tiles in the same AU.
[0128] In the same or other embodiments, pictures, strips or tiles corresponding to AUs having the same AUC value may be associated with the same composition / display time instance, even though the POC values of the pictures, strips or tiles may be different. When the composition time is included in the container format, pictures may be displayed at the same time instance, even if they correspond to different AUs, if the pictures have the same composition time.
[0129] In the same or other embodiments, each picture, slice or tile may have the same temporal identifier (temporal_id) in the same AU. All or a subset of the pictures, slices or tiles corresponding to a time instance may be associated with the same temporal sublayer. In the same or other embodiments, each picture, slice or tile may have the same or different spatial layer id (layer_id) in the same AU. All or a subset of the pictures, slices or tiles corresponding to a time instance may be associated with the same or different spatial layers.
[0130] Figure 8 An example of a video sequence structure with a combination of temporal_id, layer_id, POC and AUC values with adaptive resolution change is shown. In this example, the picture, slice or tile in the first AU with AUC=0 has temporal_id=0 and layer_id=0 or 1, while the picture, slice or tile in the second AU with AUC=1 has temporal_id=1 and layer_id=0 or 1. Regardless of the values of temporal_id and layer_id, the POC value of each picture increases by 1. In this example, the value of poc_cycle_au can be equal to 2. Preferably, the value of poc_cycle_au can be set to be equal to the number of (spatial scalability) layers. Therefore, in this example, the POC value increases by 2 while the AUC value increases by 1.
[0131] In the above embodiments, all or a subset of inter-picture or inter-layer prediction structures and reference picture indications can be supported by using the existing reference picture set (RPS) signaling or reference picture list (RPL) signaling in HEVC. In the RPS or RPL, the selected reference picture is indicated by signaling the POC value or POC delta value between the current picture and the selected reference picture. For the disclosed subject matter, RPS and RPL can be used to indicate inter-picture or inter-layer prediction structures without changing the signaling, but with the following limitations. If the value of the temporal_id of the reference picture is greater than the value of the temporal_id of the current picture, the current picture may not use the reference picture for motion compensation or other predictions. If the value of the layer_id of the reference picture is greater than the value of the layer_id of the current picture, the current picture may not use the reference picture for motion compensation or other predictions.
[0132] In the same and other embodiments, motion vector scaling based on POC differences used for temporal motion vector prediction may be disabled between multiple pictures within an access unit. Thus, although each picture may have a different POC value within an access unit, the motion vectors are not scaled and used for temporal motion vector prediction within an access unit. This is because reference pictures with different POCs in the same AU are considered to be reference pictures with the same temporal instance. Thus, in an embodiment, the motion vector scaling function may return 1 when the reference picture belongs to the AU associated with the current picture.
[0133] In the same and other embodiments, when the spatial resolution of the reference picture is different from the spatial resolution of the current picture, motion vector scaling based on POC differences used for temporal motion vector prediction can be optionally disabled between multiple pictures. When motion vector scaling is allowed, the motion vector is scaled based on the POC difference and the spatial resolution ratio between the current picture and the reference picture.
[0134] In the same or another embodiment, for temporal motion vector prediction, in particular when poc_cycle_au has a non-uniform value (e.g., when vps_contant_poc_cycle_per_au==0), the motion vector may be scaled based on AUC difference instead of POC difference. Otherwise (when vps_contant_poc_cycle_per_au==1), the motion vector scaling based on AUC difference may be the same as the motion vector scaling based on POC difference.
[0135] In the same or another embodiment, when the motion vector is scaled based on the AUC difference, the reference motion vector in the same AU (having the same AUC value) as the current picture is not scaled based on the AUC difference, and the reference motion vector is used for motion vector prediction and does not need to be scaled or needs to be scaled based on the spatial resolution ratio between the current picture and the reference picture.
[0136] In the same and other embodiments, the AUC value is used to identify the boundaries of AUs and for hypothetical reference decoder (HRD) operations, which require input and output timing at AU granularity. In most cases, the decoded picture of the highest layer in the AU can be output for display. The AUC value and the layer_id value can be used to identify the output picture.
[0137] In an embodiment, a picture may be composed of one or more sub-pictures. Each sub-picture may cover a partial area or the entire area of the picture. The area supported by a sub-picture may overlap or not overlap with the area supported by another sub-picture. The area composed of one or more sub-pictures may cover or not cover the entire area of the picture. If a picture is composed of sub-pictures, the area supported by the sub-picture is the same as the area supported by the picture.
[0138] In the same embodiment, the sub-picture may be encoded and decoded by a codec method similar to that used for the encoded picture. The sub-picture may be encoded independently or may be encoded dependent on another sub-picture or an encoded picture. The sub-picture may or may not have any parsing dependency with another sub-picture or an encoded picture.
[0139] In the same embodiment, the coded sub-pictures may be included in one or more layers. The coded sub-pictures in the layers may have different spatial resolutions. The original sub-pictures may be spatially resampled (upsampled or downsampled), encoded with different spatial resolution parameters, and included in the codestream corresponding to the layer.
[0140] In the same or another embodiment, a sub-picture with (W, H) (where W indicates the width of the sub-picture and H indicates the height of the sub-picture, respectively) may be encoded and included in an encoded codestream corresponding to layer 0, while an upsampled (or downsampled) sub-picture with (W*S*H) from a sub-picture with an original spatial resolution may be encoded. w,k , H*S h,k )) is encoded and the sub-picture (with (W*S w,k , H*S h,k )) is included in the coded bitstream corresponding to layer k, where S w,k and S h,k Indicates the horizontal resampling ratio and the vertical resampling ratio. If S w,k , S h,k If the value of is greater than 1, resampling is equal to upsampling. However, if S w,k , S h,k If the value of is less than 1, resampling is equal to downsampling.
[0141] In the same or another embodiment, the visual quality of an encoded sub-picture in a layer is different from the visual quality of an encoded sub-picture in another layer in the same sub-picture or in a different sub-picture. i,n to encode, and the sub-image j in layer m is quantized with parameter Q j,m To encode.
[0142] In the same or another embodiment, a coded sub-picture in a layer may be independently decodable without any parsing or decoding dependency on a coded sub-picture in another layer from the same local region. A sub-picture layer that is independently decodable without reference to another sub-picture layer of the same local region is an independent sub-picture layer. A coded sub-picture in an independent sub-picture layer may or may not have a decoding or parsing dependency from a previously coded sub-picture in the same sub-picture layer, but the coded sub-picture may not have any dependency on a coded picture in another sub-picture layer.
[0143] In the same or another embodiment, an encoded sub-picture in a layer may be dependently decodable with any parsing dependency or decoding dependency from an encoded sub-picture in another layer of the same local region. A sub-picture layer that is dependently decodable by referencing another sub-picture layer of the same local region is a dependent sub-picture layer. An encoded sub-picture in a dependent sub-picture may reference an encoded sub-picture belonging to the same sub-picture, a previously encoded sub-picture in the same sub-picture layer, or both reference sub-pictures.
[0144] In the same or another embodiment, a coded sub-picture consists of one or more independent sub-picture layers and one or more dependent sub-picture layers. However, for a coded sub-picture, there may be at least one independent sub-picture layer. An independent sub-picture layer may have a layer identifier (layer_id) value equal to 0, which may be present in a NAL unit header or another high-level syntax structure. A sub-picture layer with layer_id equal to 0 is a base sub-picture layer.
[0145] In the same or another embodiment, a picture may consist of one or more foreground sub-pictures and one background sub-picture. The area supported by the background sub-picture may be equal to the area of the picture. The area supported by the foreground sub-picture may overlap with the area supported by the background sub-picture. The background sub-picture may be a base sub-picture layer, and the foreground sub-picture may be a non-base (enhanced) sub-picture layer. One or more non-base sub-picture layers may be decoded with reference to the same base layer. Each non-base sub-picture layer with layer_id equal to a may reference a non-base sub-picture layer with layer_id equal to b, where a is greater than b.
[0146] In the same or another embodiment, a picture may consist of one or more foreground sub-pictures with or without background sub-pictures. Each sub-picture may have its own base sub-picture layer and one or more non-base (enhancement) layers. Each base sub-picture layer may be referenced by one or more non-base sub-picture layers. Each non-base sub-picture layer with layer_id equal to a may reference a non-base sub-picture layer with layer_id equal to b, where a is greater than b.
[0147] In the same or another embodiment, a picture may consist of one or more foreground sub-pictures with or without background sub-pictures. Each coded sub-picture in a (base or non-base) sub-picture layer may be referenced by one or more non-base layer sub-pictures belonging to the same sub-picture and one or more non-base layer sub-pictures not belonging to the same sub-picture.
[0148] In the same or another embodiment, a picture may consist of one or more foreground sub-pictures with or without background sub-pictures. A sub-picture in layer a may be further partitioned into multiple sub-pictures in the same layer. One or more coded sub-pictures in layer b may reference a partitioned sub-picture in layer a.
[0149] In the same or another embodiment, a coded video sequence (CVS) may be a set of coded pictures. A CVS may be composed of one or more coded sub-picture sequences (CSPS), where a CSPS may be a set of coded sub-pictures covering the same local area of a picture. A CSPS may have the same or different temporal resolution as the coded video sequence.
[0150] In the same or another embodiment, the CSPS may be encoded and included in one or more layers. The CSPS may be composed of one or more CSPS layers. Decoding one or more CSPS layers corresponding to the CSPS may reconstruct a sub-picture sequence corresponding to the same local area.
[0151] In the same or another embodiment, the number of CSPS layers corresponding to a CSPS is the same as or different from the number of CSPS layers corresponding to another CSPS.
[0152] In the same or another embodiment, a CSPS layer may have a different temporal resolution (e.g., frame rate) than another CSPS layer. The original (uncompressed) sub-picture sequence may be temporally resampled (upsampled or downsampled), may be encoded with different temporal resolution parameters, and may be included in a codestream corresponding to the layer.
[0153] In the same or another embodiment, a sub-picture sequence having a frame rate F may be encoded and included in the encoded codestream corresponding to layer 0, while a sub-picture sequence having a frame rate F*S from the original sub-picture sequence may be encoded and included in the encoded codestream corresponding to layer 0. t,k The temporally upsampled (or downsampled) sub-picture sequence of S can be encoded and included in the encoded bitstream corresponding to layer k, where S t,k indicates the temporal sampling ratio of layer k. If S t,kIf the value is greater than 1, the temporal resampling process is equal to frame rate up conversion. However, if S t,k is less than 1, the temporal resampling process is equal to frame rate down conversion.
[0154] In the same or another embodiment, when a sub-picture with CSPS layer a is motion compensated or any inter-layer prediction is performed with reference to a sub-picture with CSPS layer b, if the spatial resolution of CSPS layer a is different from the spatial resolution of CSPS layer b, the decoded pixels in CSPS layer a are resampled and used for reference. The resampling process may require upsampling filtering or downsampling filtering.
[0155] Fig.11 An example video bitstream including a background video CSPS with layer_id equal to 0 and multiple foreground CSPS layers is shown. The encoded sub-picture can consist of one or more CSPS layers, and the background area that does not belong to any foreground CSPS layer can be composed of a base layer. The base layer can contain both the background area and the foreground area, while the enhancement CSPS layer contains the foreground area. At the same region, the enhancement CSPS layer can have better visual quality than the base layer. The enhancement CSPS layer can refer to the reconstructed pixels and motion vectors of the base layer corresponding to the same region.
[0156] In the same or another embodiment, in a video file, the video bitstream corresponding to the base layer is contained in a track, while the CSPS layer corresponding to each sub-picture is contained in a separate track.
[0157] In the same or another embodiment, the video bitstream corresponding to the base layer is contained in a track, while the CSPS layers with the same layer_id are contained in separate tracks. In this example, the track corresponding to layer k only includes the CSPS layers corresponding to layer k.
[0158] In the same or another embodiment, each CSPS layer of each sub-picture is stored in a separate track. Each track may or may not have any parsing or decoding dependencies from one or more other tracks.
[0159] In the same or another embodiment, each track can contain the bitstream corresponding to CSPS layers from layer i to layer j of all or a subset of the sub-pictures, where 0 < i = < j = < k, and k is the highest layer of CSPS.
[0160] In the same or another embodiment, a picture is composed of one or more associated media data, including a depth map, an alpha map, 3D geometry data, an occupancy map, etc. Such associated timed media data may be divided into one or more data substreams, each data substream corresponding to a sub-picture.
[0161] In the same or another embodiment, Fig.12 An example of a video conference based on a multi-layer sub-picture method is shown. In the video stream, a base layer video stream corresponding to the background picture and one or more enhanced layer video streams corresponding to the foreground sub-picture are included. Each enhanced layer video stream corresponds to a CSPS layer. In the display, the picture corresponding to the base layer is displayed by default. It contains one or more user picture-in-pictures (PIPs). When a specific user is selected through the control of the client, the enhanced CSPS layer corresponding to the selected user is decoded and displayed with enhanced quality or spatial resolution. Fig.13 A diagram illustrating the operation.
[0162] In the same or another embodiment, a network middlebox (such as a router) can select a subset of layers to send to a user based on its bandwidth. Picture / sub-picture organization can be used for bandwidth adaptation. If a user does not have the bandwidth, the router can strip layers or select some sub-pictures due to their importance or based on the settings used, which can be done dynamically to adapt to the bandwidth.
[0163] Fig.14 The use of 360 video is shown. When a spherical 360 picture is projected onto a flat picture, the projected 360 picture can be partitioned into multiple sub-pictures as the base layer. The enhancement layer of a specific sub-picture can be encoded and transmitted to the client. The decoder is able to decode the base layer including all sub-pictures and the enhancement layer of the selected sub-picture. When the current viewport is the same as the selected sub-picture, the displayed picture can have a higher quality than the decoded sub-picture with the enhancement layer. Otherwise, the decoded picture with the base layer can be displayed at a low quality.
[0164] In the same or another embodiment, any layout information for display may be present in the file as supplemental information such as a SEI message or metadata. Depending on the signaled layout information, one or more decoded sub-pictures may be repositioned and displayed. The layout information may be signaled by a streaming server or broadcaster, or may be regenerated by a network entity or cloud server, or may be determined by a user's custom settings.
[0165] In an embodiment, when the input picture is divided into one or more (rectangular) sub-regions, each sub-region can be encoded as an independent layer. Each independent layer corresponding to a local area can have a unique layer_id value. For each independent layer, the sub-picture size and position information can be signaled. For example, the picture size (width, height), the offset information of the upper left corner (x_offset, y_offset). Fig.15 An example of the layout of the divided sub-pictures, their sub-picture size and position information, and their corresponding picture prediction structure is shown. The layout information including one or more sub-picture sizes and one or more sub-picture positions can be signaled in a high-level syntax structure, such as in one or more parameter sets, slices or tile groups, or in a SEI message.
[0166] In the same embodiment, each sub-picture corresponding to an independent layer may have its own unique POC value within an AU. When indicating a reference picture among pictures stored in the DPB by using one or more syntax elements in the RPS or RPL structure, one or more POC values for each sub-picture corresponding to the layer may be used.
[0167] In the same or another embodiment, to indicate the (inter-layer) prediction structure, layer_id may not be used and the POC (delta) value may be used.
[0168] In the same embodiment, a sub-picture with a POC value equal to N may or may not be used as a reference picture for a sub-picture with a POC value equal to N+K, corresponding to a layer (or local area), corresponding to the same layer (or the same local area) for motion compensated prediction. In most cases, the value of the number K may be equal to the maximum number of (independent) layers, which may be the same as the number of sub-regions.
[0169] In the same or another embodiment, Fig.16 Shows Fig.15 When the input picture is divided into multiple (e.g., four) sub-regions, each local region can be encoded with one or more layers. In this case, the number of independent layers can be equal to the number of sub-regions, and one or more layers can correspond to a sub-region. Therefore, each sub-region can be encoded with one or more independent layers and zero or more dependent layers.
[0170] In the same embodiment, Fig.16In , the input picture can be divided into four sub-regions. The upper right sub-region can be encoded into two layers, i.e., layer 1 and layer 4, while the lower right sub-region can be encoded into two layers, i.e., layer 3 and layer 5. In this case, layer 4 can refer to layer 1 for motion compensation prediction, while layer 5 can refer to layer 3 for motion compensation.
[0171] In the same or another embodiment, loop filtering (e.g., deblocking filtering, adaptive loop filtering, shaper, bilateral filtering, or any deep learning based filtering) across layer boundaries may (optionally) be disabled.
[0172] In the same or another embodiment, motion compensated prediction or intra-block copy across layer boundaries may (optionally) be disabled.
[0173] In the same or another embodiment, boundary filling for motion compensated prediction or in-loop filtering at the boundaries of sub-pictures may optionally be processed. A flag indicating whether boundary filling is processed may be signaled in a high-level syntax structure such as one or more parameter sets (VPS, SPS, PPS, or APS), a slice or tile group header, or an SEI message.
[0174] In the same or another embodiment, layout information of one or more sub-regions (or one or more sub-pictures) may be signaled in a VPS or SPS. Fig.17Examples of syntax elements in VPS and SPS are shown. In this example, vps_sub_picture_dividing_flag is signaled in the VPS. This flag may indicate whether the input picture is divided into multiple sub-areas. When the value of vps_sub_picture_dividing_flag is equal to 0, one or more input pictures in one or more encoded video sequences corresponding to the current VPS may not be divided into multiple sub-areas. In this case, the input picture size may be equal to the encoded picture size (pic_width_in_luma_samples, pic_height_in_luma_samples) signaled in the SPS. When the value of vps_sub_picture_dividing_flag is equal to 1, one or more input pictures may be divided into multiple sub-areas. In this case, the syntax elements vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples are signaled in the VPS. The values of vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples may be equal to the width and height of one or more input pictures, respectively.
[0175] In the same embodiment, the values of vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples may not be used for decoding, but for synthesis and display.
[0176] In the same embodiment, when the value of vps_sub_picture_dividing_flag is equal to 1, the syntax elements pic_offset_x and pic_offset_y may be signaled in the SPS, corresponding to one or more specific layers. In this case, the coded picture size (pic_width_in_luma_samples, pic_height_in_luma_samples) signaled in the SPS may be equal to the width and height of the sub-region corresponding to the specific layer. In addition, the position of the upper left corner of the sub-region (pic_offset_x, pic_offset_y) may be signaled in the SPS.
[0177] In the same embodiment, the position information (pic_offset_x, pic_offset_y) of the upper left corner of the sub-region may not be used for decoding, but may be used for synthesis and display.
[0178] In the same or another embodiment, layout information (size and position) of all or one or more subset sub-regions of one or more input pictures and dependency information between one or more layers may be signaled in a parameter set or SEI message. Fig.18 An example of a syntax element indicating information about the layout of sub-regions, dependencies between layers, and relationships between sub-regions and one or more layers is shown. In this example, the syntax element num_sub_region indicates the number of (rectangular) sub-regions in the current encoded video sequence. The syntax element num_layers indicates the number of layers in the current encoded video sequence. The value of num_layers may be equal to or greater than the value of num_sub_region. When any sub-region is encoded as a single layer, the value of num_layers may be equal to the value of num_sub_region. When one or more sub-regions are encoded as multiple layers, the value of num_layers may be greater than the value of num_sub_region. The syntax element direct_dependency_flag[i][j] indicates a dependency from the jth layer to the ith layer. num_layers_for_region[i] indicates the number of layers associated with the i-th sub-region. sub_region_layer_id[i][j] indicates the layer_id of the jth layer associated with the i-th sub-region. sub_region_offset_x[i] and sub_region_offset_y[i] indicate the horizontal position and vertical position of the upper left corner of the i-th sub-region, respectively. sub_region_width[i] and sub_region_height[i] indicate the width and height of the i-th sub-region, respectively.
[0179] In one embodiment, one or more syntax elements indicating an output layer set indicating one of a plurality of layers to be output with or without profile tier level information may be signaled in a high-level syntax structure such as a VPS, DPS, SPS, PPS, APS, or SEI message. Fig.19The syntax element num_output_layer_sets may be signaled in the VPS to indicate the number of output layer sets (OLS) in the coded video sequence that references the VPS. For each output layer set, as many output_layer_flags as the number of output layers may be signaled.
[0180] In the same embodiment, output_layer_flag[i] equal to 1 may indicate that the i-th layer is output. vps_output_layer_flag[i] equal to 0 may indicate that the i-th layer is specified not to be output.
[0181] In the same or another embodiment, one or more syntax elements indicating profile level information for each output layer set may be signaled in a high-level syntax structure (e.g., a VPS, DPS, SPS, PPS, APS, or SEI message). Fig.19 , a syntax element num_profile_tile_level may be signaled in the VPS, the syntax element num_profile_tile_level being used to indicate the number of profile level information for each OLS in the coded video sequence referring to the VPS. For each set of output layers, a set of syntax elements of profile level information or an index indicating a specific profile level information among the entries in the profile level information may be signaled as many as the number of output layers.
[0182] In the same embodiment, profile_tier_level_idx[i][j] specifies the index of the profile_tier_level() syntax structure that applies to the j-th tier of the ith OLS into the list of profile_tier_level() syntax structures in the VPS.
[0183] In the same or another embodiment, reference Fig. 20 , when the maximum number of layers is greater than 1 (vps_max_layers_minus1>0), the syntax elements num_profile_tile_level and / or num_output_layer_sets may be signaled.
[0184] In the same or another embodiment, reference Fig. 20 , the syntax element vps_output_layers_mode[i] indicating the mode of output layer signaling of the i-th output layer set is present in the VPS.
[0185] In the same embodiment, vps_output_layers_mode[i] equal to 0 may indicate that only the highest layer is output with the i-th output layer set. vps_output_layer_mode[i] equal to 1 specifies that all layers are output with the i-th output layer set. vps_output_layer_mode[i] equal to 2 specifies that the layers output are the layers with vps_output_layer_flag[i][j] equal to 1 and the i-th output layer set. More values may be reserved.
[0186] In the same embodiment, output_layer_flag[i][j] may or may not be signaled, depending on the value of vps_output_layers_mode[i] for the i-th output layer set.
[0187] In the same or another embodiment, reference Fig. 20 , the flag vps_ptl_signal_flag[i] may be present for the i-th output layer set. Depending on the value of vps_ptl_signal_flag[i], the profile level information of the i-th output layer set may or may not be signaled.
[0188] In the same or another embodiment, reference Fig.21 , the number of sub-pictures in the current CVS, max_subpics_minus1, can be signaled in a high-level syntax structure, such as a VPS, DPS, SPS, PPS, APS or SEI message.
[0189] In the same embodiment, reference Fig.21 , when the number of sub-pictures is greater than 1 (max_subpics_minus1>0), the sub-picture identifier sub_pic_id[i] of the i-th sub-picture may be notified by a signal.
[0190] In the same or another embodiment, one or more syntax elements indicating sub-picture identifiers for each layer belonging to each output layer set may be signaled in the VPS. Fig. 22 , sub_pic_id_layer[i][j][k] indicates the kth sub-picture present in the jth layer of the i-th output layer set. With this information, the decoder can identify which sub-picture can be decoded and output for each layer of a specific output layer set.
[0191] In an embodiment, a picture header (PH) is a syntax structure containing syntax elements that apply to all slices of a coded picture. A picture unit (PU) is a set of NAL units that are associated with each other according to a specified classification rule, are consecutive in decoding order, and contain exactly one coded picture. A PU may contain a picture header (PH) and one or more VCL NAL units that constitute a coded picture.
[0192] In an embodiment, the SPS (RBSP) may be used in a decoding process before it is referenced, and the SPS (RBSP) may be included in at least one AU whose TemporalId is equal to 0 or provided by an external means.
[0193] In an embodiment, the SPS (RBSP) may be available to the decoding process before it is referenced, the SPS (RBSP) being included in at least one AU with TemporalId equal to 0 in the CVS, or provided by external means, the CVS containing one or more PPSs referencing the SPS.
[0194] In an embodiment, an SPS (RBSP) may be used in the decoding process before it is referenced by one or more PPSs, the SPS (RBSP) being included in at least one PU whose nuh_layer_id is equal to the lowest nuh_layer_id value of a PPS NAL unit, or provided externally, wherein the PPS NAL unit references a reference SPS NAL unit in a CVS, wherein the CVS contains one or more PPSs that reference the SPS.
[0195] In an embodiment, the SPS (RBSP) may be used in the decoding process before it is referenced by one or more PPSs, the SPS (RBSP) being included in at least one PU with TemporalId equal to 0 and nuh_layer_id equal to the lowest nuh_layer_id value of the PPS NAL unit, or provided by external means, the PPS NAL units referencing the SPS NAL unit.
[0196] In an embodiment, an SPS (RBSP) may be used in the decoding process before it is referenced by one or more PPSs, the SPS (RBSP) being included in at least one PU with TemporalId equal to 0 and nuh_layer_id equal to the lowest nuh_layer_id value of the PPS NAL unit in the CVS, or provided by external means, the PPS NAL unit referencing the SPS NAL unit, the CVS containing one or more PPSs referencing the SPS.
[0197] In the same or another embodiment, pps_seq_parameter_set_id may indicate the value of sps_seq_parameter_set_id of the referenced SPS.The value of pps_seq_parameter_set_id may be the same in all PPSs referenced by coded pictures in the CLVS.
[0198] In the same or another embodiment, all SPS NAL units in a CVS having a particular value of sps_seq_parameter_set_id may have the same content.
[0199] In the same or another embodiment, regardless of the nuh_layer_id value, SPS NAL units may share the same value space for sps_seq_parameter_set_id.
[0200] In the same or another embodiment, the nuh_layer_id value of the SPS NAL unit may be equal to the lowest nuh_layer_id value of the PPS NAL units that reference the SPS NAL unit.
[0201] In an embodiment, when an SPS with nuh_layer_id equal to m is referenced by one or more PPSs with nuh_layer_id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n or the same as the (direct or indirect) reference layer of the layer with nuh_layer_id equal to m.
[0202] In an embodiment, the PPS (RBSP) may be used for the decoding process before it is referenced, the PPS (RBSP) is included in at least one AU whose TemporalId is equal to the TemporalId of the PPS NAL unit, or is provided by an external means.
[0203] In an embodiment, the PPS (RBSP) may be used in the decoding process before it is referenced, the PPS (RBSP) being included in at least one AU in the CVS whose TemporalId is equal to the TemporalId of the PPS NAL unit, or being provided externally, the CVS containing one or more PHs (or coded slice NAL units) that reference the PPS.
[0204] In an embodiment, the PPS (RBSP) may be used in the decoding process before it is referenced by one or more PHs (or coded slice NAL units), the PPS (RBSP) being included in at least one PU whose nuh_layer_id is equal to the lowest nuh_layer_id value of the coded slice NAL units referencing the PPS NAL unit in the CVS, or provided by external means, the CVS containing one or more PHs (or coded slice NAL units) referencing the PPS.
[0205] In an embodiment, the PPS (RBSP) may be used in the decoding process before it is referenced by one or more PHs (or coded slice NAL units), the PPS (RBSP) being included in at least one PU in the CVS with TemporalId equal to the TemporalId of the PPS NAL unit and nuh_layer_id equal to the lowest nuh_layer_id value of the coded slice NAL unit, or provided by external means, the CVS containing one or more PHs (or coded slice NAL units) that reference the PPS, and the coded slice NAL units refer to the PPS NAL unit.
[0206] In the same or another embodiment, ph_pic_parameter_set_id in the PH may indicate the value of pps_pic_parameter_set_id of the referenced PPS in use.The value of pps_seq_parameter_set_id may be the same in all PPSs referenced by coded pictures in the CLVS.
[0207] In the same or another embodiment, all PPS NAL units within a PU with a particular value of pps_pic_parameter_set_id may have the same content.
[0208] In the same or another embodiment, PPS NAL units may share the same value space of pps_pic_parameter_set_id regardless of the nuh_layer_id value.
[0209] In the same or another embodiment, the nuh_layer_id value of the PPS NAL unit may be equal to the lowest nuh_layer_id value of the coded slice NAL units that reference NAL units that reference the PPS NAL units.
[0210] In an embodiment, when a PPS with nuh_layer_id equal to m is referenced by one or more coded slice NAL units with nuh_layer_id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n or the same as the (direct or indirect) reference layer of the layer with nuh_layer_id equal to m.
[0211] In an embodiment, the PPS (RBSP) may be used for the decoding process before it is referenced, the PPS (RBSP) is included in at least one AU whose TemporalId is equal to the TemporalId of the PPS NAL unit, or is provided by an external means.
[0212] In an embodiment, the PPS (RBSP) may be used in the decoding process before it is referenced, the PPS (RBSP) being included in at least one AU in the CVS whose TemporalId is equal to the TemporalId of the PPS NAL unit, or being provided externally, the CVS containing one or more PHs (or coded slice NAL units) that reference the PPS.
[0213] In an embodiment, the PPS (RBSP) may be used in the decoding process before it is referenced by one or more PHs (or coded slice NAL units), the PPS (RBSP) being included in at least one PU having nuh_layer_id equal to the lowest nuh_layer_id value of the coded slice NAL units referencing the PPS NAL unit in the CVS, or provided by external means (which contains one or more PHs (or coded slice NAL units) referencing the PPS).
[0214] In an embodiment, the PPS (RBSP) may be used in the decoding process before it is referenced by one or more PHs (or coded slice NAL units), the PPS (RBSP) being included in at least one PU in the CVS with TemporalId equal to the TemporalId of the PPS NAL unit and nuh_layer_id equal to the lowest nuh_layer_id value of the coded slice NAL unit, or provided by external means, the CVS containing one or more PHs (or coded slice NAL units) that reference the PPS, and the coded slice NAL units refer to the PPS NAL unit.
[0215] In the same or another embodiment, ph_pic_parameter_set_id in the PH may indicate the value of pps_pic_parameter_set_id of the referenced PPS in use.The value of pps_seq_parameter_set_id may be the same in all PPSs referenced by coded pictures in the CLVS.
[0216] In the same or another embodiment, all PPS NAL units within a PU with a particular value of pps_pic_parameter_set_id may have the same content.
[0217] In the same or another embodiment, PPS NAL units may share the same value space of pps_pic_parameter_set_id regardless of the nuh_layer_id value.
[0218] In the same or another embodiment, the nuh_layer_id value of the PPS NAL unit may be equal to the lowest nuh_layer_id value of the coded slice NAL units that reference the PPS NAL unit.
[0219] In an embodiment, when a PPS with nuh_layer_id equal to m is referenced by one or more coded slice NAL units with nuh_layer_id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n or the same as the (direct or indirect) reference layer of the layer with nuh_layer_id equal to m.
[0220] Output layer indicates the layer in the output layer set that is output. Output layer set (OLS) indicates a layer set consisting of a set of specific layers, where one or more layers in the layer set are designated as output layers. Output layer set (OLS) layer index is the index of the layer in OLS to the layer list in OLS.
[0221] Sublayer may indicate a temporal scalable layer of a temporal scalable codestream, consisting of VCL NAL units with a specific value of the TemporalId variable and associated non-VCL NAL units. Sublayer representation may indicate a subset of a codestream consisting of NAL units of a specific sublayer and lower sublayers.
[0222] In an embodiment, the VPS RBSP may be used in the decoding process before it is referenced, the VPS RBSP is included in at least one AU with TemporalId equal to 0, or is provided by external means. All VPS NAL units with a specific value of vps_video_parameter_set_id in CVS may have the same content. Fig. 22 An example of a VPS RBSP is shown.
[0223] vps_video_parameter_set_id provides an identifier of the VPS for reference by other syntax elements. The value of vps_video_parameter_set_id can be greater than 0.
[0224] vps_max_layers_minus1 plus 1 may indicate the maximum allowed number of layers in each CVS of the reference VPS.
[0225] vps_max_sublayers_minus1+1 is used to indicate the maximum number of temporal sublayers that may exist in a layer in each CVS of a reference VPS. The value of vps_max_sublayer_minus1 may be in the range of 0 to 6, inclusive.
[0226] vps_all_layers_same_num_sublayers_flag equal to 1 is used to indicate that the number of temporal sublayers is the same for all layers in each CVS of the referenced VPS. vps_all_layers_same_num_sublayers_flag equal to 0 indicates that the layers in each CVS of the referenced VPS may or may not have the same number of temporal sublayers. When not present, the value of vps_all_layers_same_num_sublayers_flag is inferred to be equal to 1.
[0227] vps_all_independent_layers_flag equal to 1 is used to indicate that all layers in the CVS are coded independently without using inter-layer prediction. vps_all_independent_layers_flag equal to 0 may indicate that one or more layers in the CVS may use inter-layer prediction. When not present, the value of vps_all_independent_layers_flag is inferred to be equal to 1.
[0228] vps_layer_id[i] indicates the nuh_layer_id value of the i-th layer. For any two non-negative integer values of m and n, when m is less than n, the value of vps_layer_id[m] may be less than vps_layer_id[n].
[0229] vps_independent_layer_flag[i] equal to 1 indicates that the layer with index i does not use inter-layer prediction. vps_independent_layer_flag[i] equal to 0 specifies that the layer with index i can use inter-layer prediction, and the syntax element vps_direct_ref_layer_flag[i][j] for j in the range of 0 to i-1 (inclusive) is present in the VPS. When not present, the value of vps_independent_layer_flag[i] is inferred to be equal to 1.
[0230] vps_direct_ref_layer_flag[i][j] equal to 0 indicates that the layer with index j is not a direct reference layer for the layer with index i. vps_direct_ref_layer_flag[i][j] equal to 1 indicates that the layer with index j is a direct reference layer for the layer with index i. When vps_direct_ref_layer_flag[i][j] is not present for i and j in the range of 0 to vps_max_layers_minus1 (inclusive), it is inferred to be equal to 0. When vps_independent_layer_flag[i] is equal to 0, at least one value of j in the range of 0 to i-1 (inclusive) may be present such that the value of vps_direct_ref_layer_flag[i][j] is equal to 1.
[0231] The variables NumDirectRefLayers[i], DirectRefLayerIdx[i][d], NumRefLayers[i], RefLayerIdx[i][r], and LayerUsedAsRefLayerFlag[j] are derived as follows:
[0232]
[0233]
[0234] The variable GeneralLayerIdx[i] indicating the layer index of the layer whose nuh_layer_id is equal to vps_layer_id[i] is derived as follows:
[0235] for(i=0;i<=vps_max_layers_minus1;i++)
[0236] GeneralLayerIdx[vps_layer_id[i]]=i
[0237] For any two different values of i and j (both in the range of 0 to vps_max_layers_minus1 (inclusive)), when dependencyFlag[i][j] is equal to 1, the codestream consistency requirement is that the values of chroma_format_idc and bit_depth_minus8 applied to the i-th layer can be equal to the values of chroma_format_idc and bit_depth_minus8 applied to the j-th layer, respectively.
[0238] max_tid_ref_present_flag[i] equal to 1 indicates that the syntax element max_tid_il_ref_pics_plus1[i] is present. max_tid_ref_present_flag[i] equal to 0 indicates that the syntax element max_tid_il_ref_pics_plus1[i] is not present.
[0239] max_tid_il_ref_pics_plus1[i] equal to 0 indicates that non-IRAP pictures of layer i do not use inter-layer prediction. max_tid_il_ref_pics_plus1[i] greater than 0 indicates that for decoded pictures of layer i, pictures with TemporalId greater than max_tid_il_ref_pics_plus1[i]-1 are not used as ILRPs. When not present, the value of max_tid_il_ref_pics_plus1[i] is inferred to be equal to 7.
[0240] each_layer_is_an_ols_flag equal to 1 indicates that each OLS contains only one layer, and that each layer in the CVS of the referenced VPS is itself an OLS that includes a single layer that is the only output layer. each_layer_is_an_ols_flag equal to 0 indicates that an OLS may contain more than one layer. If vps_max_layers_minus1 is equal to 0, the value of each_layer_is_an_ols_flag is inferred to be equal to 1. Otherwise, when vps_all_independent_layers_flag is equal to 0, the value of each_layer_is_an_ols_flag is inferred to be equal to 0.
[0241] ols_mode_idc equal to 0 indicates that the total number of OLSs specified by the VPS is equal to vps_max_layers_minus1+1, the i-th OLS includes layers with layer indices from 0 to i (inclusive), and only the highest layer in the OLS is output for each OLS.
[0242] ols_mode_idc equal to 1 indicates that the total number of OLSs specified by the VPS is equal to vps_max_layers_minus1+1, the i-th OLS includes layers with layer indices from 0 to i (inclusive), and all layers in the OLS are output for each OLS.
[0243] ols_mode_idc equal to 2 indicates that the total number of OLSs specified by the VPS is explicitly signaled, and for each OLS, the output layer is explicitly signaled, and the other layers are layers that are direct or indirect reference layers of the output layer of the OLS.
[0244] The value of ols_mode_idc may be in the range of 0 to 2, inclusive. The value 3 of ols_mode_idc is reserved by ITU-T | ISO / IEC for future use.
[0245] When vps_all_independent_layers_flag is equal to 1 and each_layer_is_an_ols_flag is equal to 0, the value of ols_mode_idc is inferred to be equal to 2.
[0246] num_output_layer_sets_minus1 plus 1 indicates the total number of OLSs indicated by the VPS when ols_mode_idc is equal to 2.
[0247] The variable TotalNumOlss specifying the total number of OLSs specified by VPS is derived as follows:
[0248]
[0249] ols_output_layer_flag[i][j] equal to 1 indicates that when ols_mode_idc is equal to 2, the layer with nuh_layer_id equal to vps_layer_id[j] is the output layer of the i-th OLS. ols_output_layer_flag[i][j] equal to 0 indicates that when ols_mode_idc is equal to 2, the layer with nuh_layer_id equal to vps_layer_id[j] is not the output layer of the i-th OLS.
[0250] The variable NumOutputLayersInOls[i] indicating the number of output layers in the i-th OLS, the variable NumSubLayersInLayerInOLS[i][j] indicating the number of sublayers in the j-th layer in the i-th OLS, the variable OutputLayerIdInOls[i][j] indicating the nuh_layer_id value of the j-th output layer in the i-th OLS, and the variable LayerUsedAsOutputLayerFlag[k] indicating whether the k-th layer is used as an output layer in at least one OLS are derived as follows:
[0251]
[0252]
[0253] For each value of i in the range of 0 to vps_max_layers_minus1 (inclusive), the values of LayerUsedAsRefLayerFlag[i] and LayerUsedAsOutputLayerFlag[i] may not both be equal to 0. In other words, there may be no layer that is neither an output layer of at least one OLS nor a direct reference layer of any other layer.
[0254] For each OLS, there can be at least one layer that is an output layer. In other words, for any value of i in the range of 0 to TotalNumOlss-1 (inclusive), the value of NumOutputLayersInOls[i] can be greater than or equal to 1.
[0255] The variable NumLayersInOls[i] indicating the number of layers in the i-th OLS and the variable LayerIdInOls[i][j] specifying the nuh_layer_id value of the j-th layer in the i-th OLS are derived as follows:
[0256]
[0257] The lowest layer in each OLS may be an independent layer. In other words, the value of vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]] may be equal to 1 for each i in the range of 0 to TotalNumOlss-1 (inclusive).
[0258] Each layer may be included in at least one OLS specified by the VPS. In other words, for each layer where a particular value of nuh_layer_id nuhLayerId is equal to one of vps_layer_id[k], where k is in the range of 0 to vps_max_layers_minus1 (inclusive), there may be at least one pair of values i and j, where i is in the range of 0 to TotalNumOlss-1 (inclusive), and j is in the range of 0 to NumLayersInOls[i]-1 (inclusive), such that the value of LayerIdInOls[i][j] is equal to nuhLayerId.
[0259] In an embodiment, the temporalId value of any VCL NAL unit in the coded video sequence may not be greater than vps_max_sublayers_minus1 in the VPS referenced by the VCL NAL unit.
[0260] In the same or another embodiment, max_tid_il_ref_pics_plus1[i] has the following semantics: max_tid_il_ref_pics_plus1[i] equal to 0 indicates that non-IRAP pictures of layer i do not use inter-layer prediction. max_tid_il_ref_pics_plus1[i] greater than 0 specifies that for decoded pictures of layer i, pictures with TemporalId greater than max_tid_il_ref_pics_plus1[i]-1 are not used as ILRPs. When not present, the value of max_tid_il_ref_pics_plus1[i] is inferred to be equal to vps_max_sublayers_minus1+1.
[0261] In the same or another embodiment, max_tid_il_ref_pics_plus1[i] may be no greater than vps_max_sublayers_minus1+1.
[0262] In an embodiment, a sublayer-wise output layer set may not be derived for independent layers. Therefore, max_tid_il_ref_pics_plus1 and layerIncludedInOlsFlag may not be derived for independent layers.
[0263] In the same or another embodiment, a variable NumOutputLayersInOls[i] indicating the number of output layers in the i-th OLS, a variable NumSubLayersInLayerInOLS[i][j] indicating the number of sublayers in the j-th layer in the i-th OLS, a variable OutputLayerIdInOls[i][j] indicating the nuh_layer_id value of the j-th output layer in the i-th OLS, and a variable LayerUsedAsOutputLayerFlag[k] indicating whether the k-th layer is used as an output layer in at least one OLS may be derived as follows:
[0264]
[0265]
[0266]
[0267] The above-described techniques for signaling adaptive resolution parameters may be implemented as computer software via computer-readable instructions and physically stored in one or more computer-readable media. Figure 7 A computer device 700 is shown that is suitable for implementing certain embodiments of the disclosed subject matter.
[0268] The computer software may be encoded in any suitable machine code or computer language, and may be assembled, compiled, linked, or other mechanisms to create a code comprising instructions, which may be directly executed by a computer central processing unit (CPU), graphics processing unit (GPU), or the like, or executed by decoding, microcode, or the like.
[0269] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, IoT devices, etc.
[0270] Figure 7 The components shown for computer device 700 are exemplary in nature and are not intended to limit the scope of use or functionality of computer software implementing embodiments of the present application. The configuration of components should not be interpreted as having any dependency or requirement on any component or combination of components shown in the exemplary embodiment of computer device 700.
[0271] The computer device 700 may include certain human-computer interface input devices. Such human-computer interface input devices may respond to input from one or more human users through tactile input (e.g., keyboard input, sliding, data glove movement), audio input (e.g., sound, applause), visual input (e.g., gestures), and olfactory input (not shown). The human-computer interface devices may also be used to capture certain media that are not necessarily directly related to conscious human input, such as audio (e.g., speech, music, ambient sound), 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).
[0272] The human-machine interface input device may include one or more of the following (only one of which is depicted): keyboard 701 , mouse 702 , touch pad 703 , touch screen 710 , joystick 705 , microphone 706 , scanner 708 , camera 707 .
[0273] The computer device 700 may also include certain human-computer interface output devices. Such human-computer interface output devices may stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell / taste. Such human-computer interface output devices may include tactile output devices (e.g., tactile feedback through a touch screen 710, a data glove 704, or a joystick 705, but there may also be tactile feedback devices that are not used as input devices), audio output devices (e.g., speakers 709, headphones (not shown)), visual output devices (e.g., screens 710 including cathode ray tube (CRT, cathode ray tube) screens, liquid crystal (liquid-crystal display) screens, plasma screens, organic light-emitting diode screens, each of which has or does not have a touch screen input function, each of which has or does not have a tactile feedback function - some of which may output two-dimensional visual outputs or outputs of more than three dimensions by means such as stereoscopic picture output; virtual reality glasses (not shown), holographic displays, and smoke boxes (not shown)) and printers (not shown).
[0274] The computer device 700 may also include human-accessible storage devices and their associated media, such as optical media including high-density read-only / rewritable optical disks (CD / DVD ROM / RW) 720 with CD / DVD or similar media 721, a thumb drive 722, a removable hard disk drive or solid state drive 723, traditional magnetic media such as tapes and floppy disks (not shown), special-purpose ROM / ASIC / PLD-based devices such as security software protectors (not shown), and the like.
[0275] Those skilled in the art should also understand that the term "computer-readable media" used in connection with the disclosed subject matter does not include transmission media, carrier waves, or other transient signals.
[0276] The computer device 700 may also include an interface to one or more communication networks. The network may be wireless, wired, or optical. The network may also be a local area network, a wide area network, a metropolitan area network, an in-vehicle network, an industrial network, a real-time network, a delay-tolerant network, and the like. Examples of networks may include local area networks such as Ethernet, wireless local area networks, cellular networks (global systems for mobile communications (GSM), 3G, 4G, 5G, Long-Term Evolution (LTE), etc.), television wired or wireless wide-area digital networks (including cable television, satellite television, and terrestrial broadcast television), in-vehicle and industrial networks (including CANBus), and the like. Some networks typically require an external network interface adapter for connecting to some universal data ports or peripheral buses (749) (e.g., a USB port of the computer device 700); other systems are typically integrated into the core of the computer device 700 by connecting to a system bus as described below (e.g., an Ethernet interface integrated into a PC computer system or a cellular network interface integrated into a smart phone computer system). By using any of these networks, the computer device 700 can communicate with other entities. The communication can be one-way, for receiving only (e.g., wireless television), one-way for sending only (e.g., CAN bus to certain CAN bus devices), or two-way, such as to other computer systems via a local or wide area digital network. Each of the above networks and network interfaces can use certain protocols and protocol stacks.
[0277] The above-mentioned human-machine interface devices, human-accessible storage devices, and network interfaces may be connected to the core 740 of the computer device 700 .
[0278] The core 740 may include one or more central processing units (CPUs) 741, graphics processing units (GPUs) 742, dedicated programmable processing units in the form of field programmable gate arrays (FPGAs) 743, hardware accelerators for specific tasks 744, etc. These devices, as well as read-only memory (ROM) 745, random access memory 746, internal large-capacity memory (e.g., internal non-user accessible hard disk drives, solid-state drives, etc.) 747, etc., may be connected via a system bus 748. In some computer systems, the system bus 748 may be accessed in the form of one or more physical plugs so that it can be expanded by additional central processing units, graphics processing units, etc. Peripheral devices may be directly attached to the core's system bus 748, or connected via a peripheral bus 749. The architecture of the peripheral bus includes peripheral component interconnect (PCI), USB, etc.
[0279] The CPU 741, GPU 742, FPGA 743, and accelerator 744 may execute certain instructions, which may be combined to form the above-mentioned computer code. The computer code may be stored in ROM 745 or RAM 746. Transitional data may also be stored in RAM 746, while permanent data may be stored in, for example, internal mass storage 747. Fast storage and retrieval of any memory device may be achieved by using a cache memory, which may be closely associated with one or more CPUs 741, GPUs 742, mass storage 747, ROM 745, RAM 746, and the like.
[0280] The computer readable medium may have computer code thereon for performing various computer-implemented operations. The medium and computer code may be specially designed and constructed for the purpose of this application, or may be medium and code well known and available to those skilled in the art of computer software.
[0281] As an embodiment and not limitation, a computer system having architecture 700, in particular core 740, can provide the function of executing software contained in one or more tangible computer-readable media as a processor (including CPU, GPU, FPGA, accelerator, etc.). Such computer-readable media can be a medium associated with the above-mentioned user-accessible mass storage, and a specific memory of the core 740 having non-volatile properties, such as core internal mass storage 747 or ROM745. The software implementing various embodiments of the present application can be stored in such a device and executed by the core 740. According to specific needs, the computer-readable medium may include one or more storage devices or chips. The software can enable the core 740, in particular the processor therein (including CPU, GPU, FPGA, etc.) to perform a specific process or a specific part of a specific process described herein, including defining a data structure stored in RAM746 and modifying such a data structure according to a software-defined process. In addition or as an alternative, the computer system can provide a function that is logically hardwired or otherwise contained in a circuit (e.g., accelerator 744), which can replace the software or run with the software to perform a specific process or a specific part of a specific process described herein. Where appropriate, references to software may include logic, and vice versa. Where appropriate, references to computer-readable media may include circuits (such as integrated circuits (ICs)) storing the executing software, circuits containing the executing logic, or both. The present application includes any suitable combination of hardware and software.
[0282] Although the present application has described a number of exemplary embodiments, various changes, arrangements and various equivalent substitutions of the embodiments are within the scope of the present application. Therefore, it should be understood that those skilled in the art can design a variety of systems and methods, which, although not explicitly shown or described herein, embody the principles of the present application and are therefore within the spirit and scope of the present application.
Claims
1. A method for decoding a coded video stream sequence, characterized in that: The method comprises: Obtaining the encoded video code stream sequence; decoding the coded video sequence using the variable max_tid_il_ref_pics_plus1[i]; and wherein the first variable NumSubLayersInLayerInOLS[i][j] indicates the number of sublayers in the jth layer in the i-th output layer set OLS, wherein the second variable OutputLayerIdInOls[i][j] indicates the nuh_layer_id value of the jth output layer in the i-th output layer set OLS, wherein the third variable LayerUsedAsOutputLayerFlag[k] indicates whether the kth layer is used as an output layer in at least one output layer set OLS, and wherein the first variable, the second variable and the third variable are derived from the value of the variable max_tid_il_ref_pics_plus1[i].
2. The method according to claim 1, characterized in that max_tid_il_ref_pics_plus1[i] is limited to be less than or equal to vps_max_sublayers_minus1+1.
3. The method according to claim 1, characterized in that The sublayer-by-sublayer output layer set is restricted to not be exported for independent layers.
4. The method according to claim 1, characterized in that: The value of max_tid_il_ref_pics_plus1[i] is zero, indicating that the non-intra random access point IRAP picture of the i-th layer does not use inter-layer prediction; The value of max_tid_il_ref_pics_plus1[i] is greater than zero, indicating that pictures with temporal sub-layer identifiers greater than max_tid_il_ref_pics_plus1[i]-1 are not used as inter-layer reference pictures ILRP; When max_tid_il_ref_pics_plus1[i] does not exist, the value of max_tid_il_ref_pics_plus1[i] is inferred to be equal to vps_max_sublayers_minus1+1.
5. The method according to claim 3, characterized in that: max_tid_il_ref_pics_plus1 and layerIncludedInOlsFlag are restricted from being exported for independent layers.
6. A video encoding method, characterized in that: The method comprises: Encoding the video data to obtain the encoded video sequence; wherein the first variable NumSubLayersInLayerInOLS[i][j] indicates the number of sublayers in the jth layer in the i-th output layer set OLS, wherein the second variable OutputLayerIdInOls[i][j] indicates the nuh_layer_id value of the jth output layer in the i-th output layer set OLS, wherein the third variable LayerUsedAsOutputLayerFlag[k] indicates whether the kth layer is used as an output layer in at least one output layer set OLS, and wherein the first variable, the second variable and the third variable are derived from the value of the variable max_tid_il_ref_pics_plus1[i].
7. A device for decoding a coded video sequence, characterized in that The device comprises: at least one memory configured to store program code; and At least one processor is configured to read the program code and operate as instructed by the program code to implement the method according to any one of claims 1 to 6.
8. A coding device for generating a coded video sequence, characterized in that The device comprises: at least one memory configured to store program code; and At least one processor is configured to read the program code and operate as instructed by the program code to implement the method according to any one of claims 1 to 6.
9. A computer device, characterized in that: The method is characterized in that it comprises: a processor and a memory; the memory stores computer code, and when the computer code is executed by the processor, the processor executes the method according to any one of claims 1 to 6.
10. A non-volatile computer-readable medium storing instructions, characterized in that: The instructions include: one or more instructions, and the one or more instructions are executed by one or more processors to implement the method according to any one of claims 1 to 6.
11. A method for processing a video code stream, characterized in that: The video code stream is generated according to the encoding method according to claim 6, or is decoded based on the decoding method according to any one of claims 1-5.
