Method, device and electronic device for decoding encoded video code stream
By obtaining multiple output layer sets from the encoded video code stream and selecting the output layer based on flags and syntax elements, the problem of lack of efficient signaling mechanism in the prior art is solved, and efficient signaling of the output layer set of scalable video is realized, which is suitable for a variety of application scenarios.
Patent Information
- Application Number
- CN202080033193.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-09-24
- Filing Date
- 2020-09-29
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2040-09-29
AI Technical Summary
The prior art lacks an efficient signaling mechanism suitable for output layer sets of scalable videos in various application scenarios.
By obtaining a plurality of output layer sets from the encoded video code stream, at least one layer is selected as the output layer from the plurality of output layers sets based on the first flag and the first syntax element, and output the output layer.
It realizes efficient signaling of the output layer set of scalable videos, which is suitable for a variety of application scenarios.
Smart Images

Figure CN113812158B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to U.S. Provisional Patent Application No. 62 / 912,275, filed on October 8, 2019, and U.S. Patent Application No. 17 / 030,950, filed on September 24, 2020, which are incorporated by reference in their entirety into this application. Technical Field
[0003] The present application relates to video encoding and decoding, and in particular to a method, device and electronic device for decoding an encoded video code stream. Background Art
[0004] ITU-T VCEG (Video Coding Experts Group of the International Telecommunication Union Telecommunication Standardization Sector) (Q6 / 16) and ISO / IEC MPEG (International Organization for Standardization / International Electrotechnical Commission Moving Picture Experts Group) (JTC 1 / SC 29 / WG 11) (Joint Technical Committee 1 / Subcommittee 29 / Working Group 11) released the H.265 / HEVC (High Efficiency Video Coding) standard in 2013 (version 1), 2014 (version 2), 2015 (version 3), and 2016 (version 4). In 2015, the two standard organizations jointly formed JVET (Joint Video Exploration Team) to explore the potential of developing the next video coding standard beyond HEVC. In October 2017, they released a joint call for proposals (CfP) on video compression with capabilities beyond HEVC. As of February 15, 2018, a total of 22 CfP responses were received for Standard Dynamic Range (SDR), 12 CfP responses for High Dynamic Range (HDR), and 12 CfP responses for 360-degree video categories. In April 2018, at the 122nd MPEG meeting / 10th JVET meeting, all CfP responses received were evaluated. As a result of this meeting, JVET officially launched the standardization process for the next generation of video coding beyond HEVC. The new standard was named Versatile Video Coding (VVC), and JVET was renamed the Joint Video Experts Group.
[0005] Currently, scalable video streaming is widely used, however, there is still no efficient signaling mechanism for the output layer set of scalable video suitable for various application scenarios. Summary of the invention
[0006] In an embodiment, a method for decoding an encoded video stream is provided, comprising:
[0007] Obtaining an encoded video sequence including a plurality of output layer sets from an encoded video bitstream;
[0008] obtaining a first flag indicating whether each of a plurality of output layer sets includes more than one layer;
[0009] When the first flag indicates that each output layer set includes more than one layer, obtaining a first syntax element indicating an output layer set mode;
[0010] Based on at least one of the first flag and the first syntax element, select at least one layer from among the layers included in the plurality of output layer sets as at least one output layer;
[0011] and outputting at least one output layer.
[0012] In an embodiment, a device for decoding an encoded video stream is provided, comprising:
[0013] at least one memory configured to store program code; and
[0014] At least one processor is configured to read the program code and operate according to instructions of the program code, wherein the program code includes:
[0015] A first obtaining code is configured to enable the at least one processor to obtain an encoded video sequence including a plurality of output layer sets from an encoded video bit stream;
[0016] a second obtaining code configured to cause the at least one processor to obtain a first flag indicating whether each of the plurality of output layer sets includes more than one layer;
[0017] a third obtaining code configured to cause the at least one processor to obtain a first syntax element indicating an output layer set mode when the first flag indicates that each output layer set includes more than one layer;
[0018] A selection code configured to cause the at least one processor to select at least one layer from among layers included in a plurality of output layer sets as at least one output layer based on at least one of the first flag and the first syntax element; and
[0019] The output code is configured to cause the at least one processor to output at least one output layer.
[0020] In an embodiment, a non-volatile computer-readable storage medium storing instructions is provided, the instructions comprising: one or more instructions, which when executed by one or more processors of a device for decoding a coded video stream, cause the one or more processors to:
[0021] Obtaining an encoded video sequence including a plurality of output layer sets from an encoded video bitstream;
[0022] obtaining a first flag indicating whether each of a plurality of output layer sets includes more than one layer;
[0023] When the first flag indicates that each output layer set includes more than one layer, obtaining a first syntax element indicating an output layer set mode; and
[0024] Based on at least one of the first flag and the first syntax element, select at least one layer from among the layers included in the plurality of output layer sets as at least one output layer;
[0025] Output at least one output layer.
[0026] In an embodiment, an electronic device is provided, comprising a memory for storing computer-readable instructions; a processor for reading the computer-readable instructions and executing the method for decoding an encoded video stream according to the instructions of the computer-readable instructions.
[0027] The method, device, electronic device and readable storage medium for decoding an encoded video stream provided in the embodiments of the present application can efficiently signal the output layer set of scalable video and are suitable for a variety of application scenarios. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] 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:
[0029] Figure 1 is a schematic diagram of a simplified block diagram of a communication system according to an embodiment.
[0030] Figure 2 is a schematic diagram of a simplified block diagram of a communication system according to an embodiment.
[0031] Figure 3 is a schematic diagram of a simplified block diagram of a decoder according to an embodiment.
[0032] Figure 4 is a schematic diagram of a simplified block diagram of an encoder according to an embodiment.
[0033] Figure 5 is a diagram of an example of a syntax table according to an embodiment.
[0034] Figure 6 is a flowchart of an example method for decoding an encoded video stream according to an embodiment.
[0035] Figure 7 is a schematic diagram of a computer system according to an embodiment. DETAILED DESCRIPTION
[0036] Figure 1A simplified block diagram of a communication system (100) according to an embodiment of the present application is illustrated. The system (100) may include at least two terminals (110-120) interconnected by a network (150). For unidirectional transmission of data, a first terminal (110) may encode video data at a local location for transmission to another terminal (120) via the network (150). A second terminal (120) may receive encoded video data from another terminal from the network (150), decode the encoded video data, and display the recovered video data. Unidirectional data transmission may be common in applications such as media services.
[0037] Figure 1 A second pair of terminals (130, 140) is illustrated for supporting bidirectional transmission of encoded video, which may occur, for example, during a video conference. For bidirectional transmission of data, each terminal (130, 140) may encode video data captured at a local location for transmission to the other terminal via a network (150). Each terminal (130, 140) may also receive encoded video data transmitted by the other terminal, may decode the encoded data, and display the recovered video data on a local display device.
[0038] exist Figure 1 In the embodiment, the terminals (110-140) may be illustrated as 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 terminals (110-140), including, for example, wired and / or wireless communication networks. The communication network (150) may exchange data in circuit switching and / or packet switching channels. Representative networks include telecommunication networks, local area networks, wide area networks, and / or the Internet. For the purposes of the present application discussion, unless explained below, the architecture and topology of the network (150) may be irrelevant to the operations disclosed in the present application.
[0039] As an example of the application of the subject matter disclosed in this application, Figure 2 The placement of the video encoder and video decoder in a streaming environment is shown. 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.
[0040] The streaming system may include an acquisition subsystem (213), which may include a video source (201) such as a digital camera, which creates, for example, an uncompressed video sample stream (202). The sample stream (202) is depicted as a thick line to emphasize that it has a higher data volume than an encoded video stream, and the sample stream (202) may be processed by an encoder (203) coupled to the camera (201). The encoder (203) may include hardware, software, or a combination of hardware and software to implement or implement various aspects of the subject matter disclosed in the present application as described in more detail below. The encoded video stream (204) is depicted as a thin line to emphasize that it has a lower data volume than the sample stream, and it may be stored on a streaming server (205) for future use. One or more streaming clients (206, 208) may access the streaming server (205) to retrieve a copy (207, 209) of the encoded video stream (204). The client (206) may include a video decoder (210) that decodes an incoming copy (207) of an encoded video stream and produces an output video sample stream (211) that may be presented on a display (212) or another presentation device (not depicted). In some streaming systems, the video streams (204, 207, 209) may be encoded according to certain video encoding / compression standards. Examples of such standards include ITU-T Recommendation H.265. The video coding standard under development is informally referred to as Versatile Video Coding or VVC. The subject matter disclosed herein may be used in the context of the VVC standard.
[0041] Figure 3 It may be a functional block diagram of a video decoder (210) according to an embodiment disclosed in the present application.
[0042] The receiver (310) may receive one or more coded video sequences to be decoded by the decoder (210); in the same or another embodiment, one coded video sequence is received at a time, wherein the decoding of each coded video sequence is independent of the other coded video sequences. The coded video sequence may be received from a channel (312), which may be a hardware / software link to a storage device storing the coded video data. The receiver (310) may receive the coded video data as well as other data, such as coded audio data and / or auxiliary data streams that may be forwarded to their respective consuming entities (not depicted). The receiver (310) may separate the coded video sequence from the other data. To prevent network jitter, a buffer memory (315) may be coupled between the receiver (310) and the entropy decoder / parser (320) (hereinafter referred to as the "parser"). When the receiver (310) receives data from a storage / forward device with sufficient bandwidth and controllability, or from an isochronous synchronous network, the buffer memory (315) may not need to be configured, or it may be made smaller. For use on a best effort traffic packet network such as the Internet, a buffer memory (315) may be required, which may be relatively large and advantageously may be of an adaptable size.
[0043] 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 for managing the operation of the decoder (210) and potentially information for controlling a presentation device, such as a display (212), which is not part of the decoder but may be coupled to the decoder, such as Figure 3As shown. The control information for the presentation device may be a parameter set fragment (not depicted) of a Supplemental Enhancement Information (SEI) message or a Video Usability Information (VUI). The parser (320) may parse / entropy decode the received coded video sequence. The encoding of the coded video sequence may be performed according to a video coding technique or standard, and may follow various principles known to those skilled in the art, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, and the like. The parser (320) may extract a subgroup parameter set for at least one of the subgroups of pixels in the video decoder from the coded video sequence based on at least one parameter corresponding to the group. Subgroups may include Group of Pictures (GOP), pictures, sub-pictures, tiles, slices, bricks, macroblocks, Coding Tree Units (CTU), Coding Units (CU), blocks, Transform Units (TU), Prediction Units (PU), and the like. A tile may refer to a rectangular area of a CU / CTU within a special tile row in a picture. A brick may refer to a rectangular area of a CU / CTU row within a special tile. A slice may refer to one or more tiles of a picture contained in a NAL unit. A sub-picture may refer to a rectangular area of one or more slices in a picture. The entropy decoder / parser may also extract information such as transform coefficients, quantizer parameter values, motion vectors, and the like from the encoded video sequence.
[0044] The parser (320) may perform entropy decoding / parsing operations on the video sequence received from the buffer memory (315) to create symbols (321).
[0045] 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.
[0046] In addition to the functional blocks already mentioned, decoder 210 may be conceptually subdivided into several functional units as described below. In a practical embodiment operating under commercial constraints, many of these units closely interact with each other and may 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.
[0047] The first unit is a sealer / inverse transform unit (351). The sealer / 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) can output a block including sample values, which can be input into an aggregator (355).
[0048] In some cases, the output samples of the scaler / 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 / intra-prediction unit (352). In some cases, the intra-picture prediction unit (352) uses surrounding reconstructed information extracted from the current (partially reconstructed) picture (358) to generate a block of the same size and shape as the block being reconstructed. 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.
[0049] In other cases, the output samples of the scaler / 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) belonging to the block, these samples may be added to the output of the scaler / inverse transform unit (in this case referred to as residual samples or residual signal) 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.
[0050] 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), and 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, and to previously reconstructed and loop filtered sample values.
[0051] The output of the loop filter unit (356) may be a sample stream that may be output to a rendering device (212) and stored in a reference picture memory for subsequent inter-picture prediction.
[0052] Once fully reconstructed, certain coded pictures may be used as reference pictures for future prediction. Once a coded picture is fully reconstructed, and the coded picture is identified as a reference picture (e.g., by the parser (320)), the current reference picture (358) may become part of the reference picture buffer (357), and a new current picture memory may be reallocated before starting reconstruction of a subsequent coded picture.
[0053] The video decoder 210 may perform decoding operations according to a predetermined video compression technique, such as in ITU-T Recommendation H.265. The encoded video sequence may conform to the syntax specified by the video compression technique or standard used, in the sense that the encoded video sequence follows the syntax of the video compression technique or standard, as specified in the video compression technology document or standard, particularly the profile therein. For compliance, the complexity of the encoded video sequence is also required to be within the range defined by the hierarchy of the video compression technology or standard. In some cases, the hierarchy limits the maximum picture size, the maximum frame rate, the maximum reconstruction sampling rate (measured in, for example, mega samples per second), the maximum reference picture size, etc. In some cases, the limits set by the hierarchy may be further defined by the Hypothetical Reference Decoder (HRD) specification and metadata of the HRD buffer management signaled in the encoded video sequence.
[0054] 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 (210) to properly decode the data and / or more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.
[0055] Figure 4 It may be a block diagram of a video encoder (203) according to an embodiment disclosed in the present application.
[0056] The encoder (203) may receive video samples from a video source (201) (not a part of the encoder) that may capture video images to be encoded by the encoder (203).
[0057] 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 the samples.
[0058] 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, GOP layout, maximum motion vector search range, etc. A person skilled in the art can easily identify other functions of the controller (450) that may be related to a video encoder (203) optimized for a certain system design.
[0059] Some video decoders operate in what is readily recognizable to those skilled in the art as a "coding loop". As a simplified description, the coding loop may include an encoding portion of an encoder (430) (hereinafter referred to as a "source encoder"), which is responsible for creating symbols based on an input picture to be encoded and a reference picture, and a (local) decoder (433) embedded in the encoder (203), which reconstructs the symbols to create sample data in a manner similar to how the (remote) decoder creates sample data (because any compression between the symbols and the encoded video code stream is lossless in the video compression techniques contemplated by the subject matter disclosed herein). 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 results when synchronization cannot be maintained, for example due to channel errors) is well known to those skilled in the art.
[0060] The operation of the "local" decoder (433) can be combined with the above Figure 3 The "remote" decoder (210) is identical to the one described in detail. However, additional brief reference is made to Figure 4 , 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 decoder (210), including the channel (312), the receiver (310), the buffer memory (315) and the parser (320), may not be fully implemented in the local decoder (433).
[0061] 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.
[0062] As part of its operation, the source encoder (430) may perform motion compensated predictive coding that predictively encodes an input frame with reference to one or more previously encoded frames from a video sequence designated as "reference frames." In this manner, the encoding engine (432) encodes the differences between pixel blocks of an input frame and pixel blocks of a reference frame that may be selected as a prediction reference for the input frame.
[0063] The local video decoder (433) may decode the encoded video data of the frame that may be designated as the reference frame based on the symbol created by the source encoder (430). The operation of the encoding engine (432) may advantageously be a lossy process. When the encoded video data is available at the video decoder ( Figure 4 When 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 / memory (434). In this way, the encoder (203) may store a copy of the reconstructed reference frame locally that has common content (absent transmission errors) with the reconstructed reference frame that will be obtained by the remote video decoder.
[0064] 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).
[0065] The controller (450) may manage encoding operations of the video encoder (430), including, for example, setting parameters and subgroup parameters for encoding video data.
[0066] 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 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.
[0067] 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).
[0068] 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, which may affect the coding techniques that may be applied to the corresponding picture. For example, a picture may generally be assigned to any of the following frame types:
[0069] 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.
[0070] 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.
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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, auxiliary enhancement information (SEI) messages, visual usability information (VUI) parameter set fragments, etc.
[0075] Embodiments may relate to a signaling mechanism for output layer sets of a scalable video stream. When output layers are signaled for each output layer set, embodiments may relate to a method for deriving the corresponding (directly dependent / independent) layer of each output layer set from direct reference layer information.
[0076] In an embodiment, an output layer may refer to a layer in an output layer set that is output. In an embodiment, an output layer set may refer to a set of designated layers, wherein one or more layers in the set of layers are designated as output layers. In an embodiment, an output layer set layer index may refer to an index of a layer in OUTPUTLAYERSET to a list of layers in OUTPUTLAYERSET.
[0077] Figure 5 An example of a syntax table associated with a video parameter set (VPS) raw byte sequence payload (RBSP) syntax is shown according to an embodiment.
[0078] In an embodiment, the VPS RBSP may be available to the decoding process before it is referenced, included in at least one access unit with TemporalId equal to 0 or provided by an external device, and the VPS NAL unit containing the VPS RBSP may have nuh_layer_id equal to vps_layer_id[0].
[0079] In CVS, all VPS NAL units with a specific value of vps_video_parameter_set_id may have the same content.
[0080] vps_video_parameter_set_id provides the identifier of the VPS for reference by other syntax elements.
[0081] vps_max_layers_minus1 plus 1 specifies the maximum allowed number of layers in each CVS of the reference VPS.
[0082] vps_all_independent_layers_flag is equal to 1 to specify that all layers in the CVS are coded independently without using inter-layer prediction. vps_all_independent_layers_flag is equal to 0 to specify that one or more layers in the CVS may use inter-layer prediction. When vps_all_independent_layers_flag is not present, its value is inferred to be 1. When vps_all_independent_layers_flag is equal to 1, the value of vps_independent_layer_flag[i] is inferred to be 1.
[0083] vps_layer_id[i] may specify the nuh_layer_id value of layer i. For any two non-negative integer values m and n, when m is less than n, the value of vps_layer_id[m] may be less than vps_layer_id[n].
[0084] vps_independent_layer_flag[i] is equal to 1, which specifies that the layer with index i does not use inter-layer prediction. vps_independent_layer_flag[i] is equal to 0, which specifies that the layer with index i can use inter-layer prediction and vps_layer_dependency_flag[i] is present in the VPS. When vps_independent_layer_flag[i] is not present, its value can be inferred to be equal to 1.
[0085] vps_direct_ref_layer_flag[i][j] is equal to 0 to specify that the layer with index j is not the direct reference layer of the layer with index i. vps_direct_ref_layer_flag[i][j] is equal to 1 to specify that the layer with index j is the direct reference layer of the layer with index i. When vps_direct_ref_layer_flag[i][j] is not present (i and j are in the range of 0 to vps_max_layers_minus1, inclusive), its value can be inferred to be equal to 0.
[0086] The variables NumDirectRefLayers[i], DirectRefLayerIdx[i][d], NumRefLayers[i], and RefLayerIdx[i][r] can be derived as follows:
[0087]
[0088]
[0089] The variable GeneralLayerIdx[i] that specifies the layer index of the layer whose nuh_layer_id is equal to vps_layer_id[i] can be derived as follows:
[0090] for(i=0;i<=vps_max_layers_minus1;i++)
[0091] GeneralLayerIdx[vps_layer_id[i]]=i
[0092] each_layer_is_an_outputLayerSet_flag is equal to 1 to specify that each output layer set contains only one layer and that each layer in the codestream is itself an output layer set, where the single included layer is the only output layer. each_layer_is_an_outputLayerSet_flag is equal to 0 to specify that an output layer set may contain more than one layer. If vps_max_layers_minus1 is equal to 0, then the value of each_layer_is_an_outputLayerSet_flag is inferred to be 1. Otherwise, when vps_all_independent_layers_flag is equal to 0, then the value of each_layer_is_an_outputLayerSet_flag is inferred to be 0.
[0093] outputLayerSet_mode_idc is equal to 0, which specifies that the total number of OUTPUTLAYERSETs specified by the VPS is equal to vps_max_layers_minus1+1, the i-th OUTPUTLAYERSET includes layers with layer indices from 0 to i (including the end value), and for each OUTPUTLAYERSET, only the highest layer in the OUTPUTLAYERSET is output.
[0094] outputLayerSet_mode_idc is equal to 1, which specifies that the total number of OUTPUTLAYERSETs specified by the VPS is equal to vps_max_layers_minus1+1, the i-th OUTPUTLAYERSET includes layers with layer indices from 0 to i (including the end value), and for each OUTPUTLAYERSET, all layers in the OUTPUTLAYERSET are output.
[0095] outputLayerSet_mode_idc is equal to 2 to specify that the total number of OUTPUTLAYERSETs specified by the VPS is explicitly signaled, and for each OUTPUTLAYERSET, the output layer is explicitly signaled and the other layers are direct or indirect reference layers of the output layer of the OUTPUTLAYERSET.
[0096] The value of outputLayerSet_mode_idc may be in the range of 0 to 2, inclusive. The value 3 of outputLayerSet_mode_idc is reserved for future use by ITU-T | ISO / IEC.
[0097] When vps_all_independent_layers_flag is equal to 1 and each_layer_is_an_outputLayerSet_flag is equal to 0, the value of outputLayerSet_mode_idc can be inferred to be equal to 2.
[0098] num_output_layer_sets_minus1 plus 1 specifies the total number of OUTPUTLAYERSETs specified by the VPS when outputLayerSet_mode_idc is equal to 2.
[0099] The variable TotalNumOutputLayerSet that specifies the total number of OUTPUTLAYERSETs specified by the VPS can be derived as follows:
[0100] if(vps_max_layers_minus1==0)
[0101] TotalNumOutputLayerSets = 1
[0102] else if(each_layer_is_an_outputLayerSet_flag||outputLayerSet_mode_idc
[0103] ==0||outputLayerSet_mode_idc==1)
[0104] TotalNumOutputLayerSets=vps_max_layers_minus1+1
[0105] else if(outputLayerSet_mode_idc==2)
[0106] TotalNumOutputLayerSets=num_output_layer_sets_minus1+1
[0107] When outputLayerSet_mode_idc is equal to 2, outputLayerSet_output_layer_flag[i][j] is equal to 1 to specify that the layer with nuh_layer_id equal to vps_layer_id[j] is the output layer of the i-th OUTPUTLAYERSET. When outputLayerSet_mode_idc is equal to 2, outputLayerSet_output_layer_flag[i][j] is equal to 0 to specify that the layer with nuh_layer_id equal to vps_layer_id[j] is not the output layer of the i-th OUTPUTLAYERSET.
[0108] The variable NumOutputLayersInOutputLayerSet[i], which specifies the number of output layers in the i-th OUTPUTLAYERSET, and the variable OutputLayerIdInOutputLayerSet[i][j], which specifies the nuh_layer_id value of the j-th output layer in the i-th OUTPUTLAYERSET, can be derived as follows:
[0109]
[0110]
[0111] The variable NumLayersInOutputLayerSet[i], which specifies the number of layers in the i-th OUTPUTLAYERSET, and the variable LayerIdInOutputLayerSet[i][j], which specifies the nuh_layer_id value of the j-th layer in the i-th OUTPUTLAYERSET, can be derived as follows:
[0112]
[0113]
[0114] The variable OutputLayerSetLayeIdx[i][j] that specifies the OUTPUTLAYERSET layer index of the layer whose nuh_layer_id is equal to LayerIdInOutputLayerSet[i][j] can be derived as follows:
[0115] for(i=0,i <TotalNumOutputLayerSets;i++)
[0116] for j=0;j <NumLayersInOutputLayerSet[i];j++)
[0117] OutputLayerSetLayeIdx[i][LayerIdInOutputLayerSet[i][j]]=j
[0118] The lowest layer in each OUTPUTLAYERSET may be an independent layer. In other words, for each i in the range of 0 to TotalNumOutputLayerSets-1 (inclusive), the value of vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOutputLayerSet[i][0]]] may be equal to 1.
[0119] Each layer may be included in at least one output layer specified by the VPS. In other words, for each layer having a particular value of nuh_layer_id nuhLayerId (equal to one of vps_layer_id[k], k 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 TotalNumOutputLayerSets-1 (inclusive) and j is in the range of NumLayersInOutputLayerSet[i]-1 (inclusive), such that the value of LayerIdInOutputLayerSet[i][j] is equal to nuhLayerId.
[0120] vps_constraint_info_present_flag is equal to 1, which specifies that the general_constraint_info() syntax structure is present in the VPS. vps_constraint_info_present_flag is equal to 0, which specifies that the general_constraint_info() syntax structure is not present in the VPS.
[0121] In codestreams conforming to this version of the specification, vps_reserved_zero_7bits may be equal to 0. Other values of vps_reserved_zero_7bits are reserved for future use by ITU-T | ISO / IEC. A decoder may ignore the value of vps_reserved_zero_7bits.
[0122] vps_extension_flag is equal to 0, which specifies that the vps_extension_data_flag syntax element is not present in the VPS RBSP syntax structure. vps_extension_flag is equal to 1, which specifies that the vps_extension_data_flag syntax element is present in the VPS RBSP syntax structure.
[0123] vps_extension_data_flag can have any value. Its presence and its value do not affect the conformance of a decoder to the profile specified in this version of the specification. A decoder conforming to this version of the specification may ignore all vps_extension_data_flag syntax elements.
[0124] Figure 6 is a flow chart of an example method 600 for decoding an encoded video stream. In some embodiments, Figure 6 One or more method blocks of may be performed by the decoder 210. In some implementations, Figure 6 One or more method blocks of may be performed by another device or a group of devices separate from or including the decoder 210 , such as the encoder 203 .
[0125] like Figure 6 As shown in , method 600 may include obtaining an encoded video sequence including a plurality of output layer sets from an encoded video stream (block 601 ).
[0126] like Figure 6 As further shown in FIG. 6 , method 600 may include obtaining a first flag (block 602 ).
[0127] like Figure 6 As further shown in FIG. 6 , the method 600 may include determining whether each output layer set of a plurality of output layer sets includes more than one layer based on a first flag (block 603 ).
[0128] like Figure 6 As further shown in, method 600 may include: based on a first flag indicating that each output layer set includes only a single layer ("No" at box 603), selecting a single layer of each output layer set as at least one output layer (box 604), and outputting the at least one output layer (box 608).
[0129] like Figure 6 As further shown in , based on the first flag indicating that each output layer set includes more than one layer (“yes” at block 603 ), method 600 may proceed to blocks 605 , 606 , 607 , and 608 .
[0130] like Figure 6 As further shown in , method 600 may include obtaining a first syntax element indicating an output layer set mode (block 605).
[0131] like Figure 6 As further shown in FIG. 6 , method 600 may include determining an output layer set mode based on the first syntax element (block 606 ).
[0132] like Figure 6 As further shown in FIG. 6 , method 600 may include selecting at least one layer from among the layers included in the plurality of output layer sets as at least one output layer based on the output layer set mode (block 607 ).
[0133] like Figure 6 As further shown in FIG. 6 , method 600 may include outputting at least one output layer (block 608 ).
[0134] In an embodiment, the first flag and the first syntax element may be signaled in a video parameter set (VPS).
[0135] In an embodiment, based on the first flag indicating that each output layer set includes only one layer, the one layer may be selected as the at least one output layer.
[0136] In an embodiment, based on the first syntax element indicating that the output layer set mode is the first mode, the highest layer of each output layer set may be selected as the at least one output layer.
[0137] In an embodiment, all layers included in the plurality of output layer sets may be selected as at least one output layer based on the first syntax element indicating that the output layer set mode is the second mode.
[0138] In an embodiment, based on the first syntax element indicating that the output layer set mode is the third mode, at least one output layer may be selected from the layers included in the multiple output layer sets based on the second syntax element signaled in the encoded video bitstream.
[0139] In an embodiment, based on the first syntax element indicating that the output layer set mode is the third mode, unselected layers among the layers included in the plurality of output layer sets may be used as reference layers of at least one output layer.
[0140] In an embodiment, based on the first flag indicating that each output layer set includes more than one layer, and the second flag indicating that all layers included in the multiple output layer sets are independently encoded, it can be inferred that the output layer set mode is the third mode.
[0141] Although Figure 6 An example block diagram of method 600 is shown, but in some embodiments, method 600 may include comparing Figure 6The blocks of method 600 may be more blocks, fewer blocks, different blocks, or arranged differently than those depicted in the method 600. Additionally or alternatively, two or more blocks of method 600 may be executed in parallel.
[0142] Further, the proposed method can be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits). In one example, at least one processor executes a program stored in a non-volatile computer-readable storage medium to perform one or more of the proposed methods.
[0143] The techniques described above may be implemented as computer software using computer-readable instructions and physically stored in one or more computer-readable storage media. Figure 7 A computer system 700 suitable for implementing certain embodiments of the disclosed subject matter is shown.
[0144] The computer software may be encoded using any suitable machine code or computer language, which may be subjected to assembly, compilation, linking or similar mechanisms to create code comprising instructions that may be executed by a computer central processing unit (CPU), graphics processing unit (GPU), etc., either directly or through interpretation, microcode execution, etc.
[0145] The instructions may be executed on various types of computers or computer components, including, for example, personal computers, tablets, servers, smart phones, gaming devices, Internet of Things devices, etc.
[0146] Figure 7 The components for computer system 700 shown in the figure are exemplary in nature and are not intended to imply any limitation on the scope of use or functionality of computer software implementing the embodiments of the present application. The configuration of components should not be interpreted as having any dependency or requirement on any one or combination of components shown in the exemplary embodiment of computer system 700.
[0147] Computer system 700 may include certain human-machine interface input devices. Such human-machine interface input devices may be responsive to input by one or more human users, for example, through tactile input (e.g., keystrokes, swipes, data glove movements), audio input (e.g., voice, taps), visual input (e.g., gestures), olfactory input (not depicted). Human-machine interface devices may also be used to capture certain media that may not be directly related to a person's conscious 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).
[0148] Input human interface devices may include one or more of the following (only one of each is depicted): keyboard 701 , mouse 702 , track pad 703 , touch screen 710 and associated graphics adapter 750 , data gloves, joystick 705 , microphone 706 , scanner 707 , camera 708 .
[0149] The computer system 700 may also include certain human-machine interface output devices. Such human-machine 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-machine interface output devices may include tactile output devices (e.g., tactile feedback of a touch screen 710, a data glove, or a joystick 705, but there may also be tactile feedback devices that do not serve as input devices), audio output devices (e.g., speakers 709, headphones (not depicted)), visual output devices (e.g., screens 710, including cathode ray tube (CRT) screens, liquid crystal display (LCD) screens, plasma screens, organic light emitting diode (OLED) screens, each with or without touch screen input capabilities, each with or without tactile feedback capabilities - some of which are capable of outputting two-dimensional visual output or output greater than three dimensions through, for example, stereographic output; virtual reality glasses (not depicted), holographic displays, and smoke boxes (not depicted)), and printers (not depicted).
[0150] The computer system 700 may also include human-accessible storage devices and associated media for the storage devices, such as optical media including CD / DVD ROM / RW 720 with CD / DVD etc. media 721, thumb drive 722, removable hard drive or solid state drive 723, legacy magnetic media such as tapes and floppy disks (not depicted), ROM / application specific integrated circuit (ASIC) / programmable logic device (PLD) based special devices such as security protection devices (not depicted), and the like.
[0151] Those skilled in the art will also appreciate that the term "computer-readable storage medium" used in connection with the presently disclosed subject matter does not encompass transmission media, carrier waves, or other transient signals.
[0152] The computer system 700 may also include an interface to one or more communication networks (755). The network may be, for example, wireless, wired, optical. The network may also be local, wide area, metropolitan, vehicle-mounted and industrial, real-time, delay-tolerant, and the like. Examples of networks include local area networks such as Ethernet, wireless LAN, cellular networks including Global System for Mobile Communications (GSM), third generation (3G), fourth generation (4G), fifth generation (5G), long term evolution (LTE), etc., TV wired or wireless wide area digital networks including cable TV, satellite TV, and terrestrial broadcast TV, vehicle-mounted networks and industrial networks including controller area network bus (CANBus), and the like. Some networks typically require an external network interface adapter (754) attached to some general data port or peripheral bus (749) (e.g., a universal serial bus (USB) port of computer system 700); other networks are typically integrated into the core of computer system 700 by attaching to a system bus as described below (e.g., integrated into a PC computer system through an Ethernet interface, or integrated into a smart phone computer system through a cellular network interface). As an example, network 755 can be connected to peripheral bus 749 using network interface 754. Using any of these networks, computer system 700 can communicate with other entities. Such communications can be one-way receive only (e.g., broadcast TV), one-way send only (e.g., CANBus connected to some CANBus devices), or bidirectional, for example, using a local area digital network or a wide area digital network to connect to other computer systems. Certain protocols and protocol stacks can be used on each of those networks and network interfaces (754) as described above.
[0153] The above-mentioned human-machine interface device, human-accessible storage device, and network interface may be attached to the core 740 of the computer system 700 .
[0154] 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 certain tasks 744, and the like. These devices, along with read-only memory (ROM) 745, random access memory 746, and internal mass storage devices 747 such as internal non-user accessible hard disk drives, solid-state drives (SSDs), etc., may be connected via a system bus 748. In some computer systems, the system bus 748 may be accessible via one or more physical plugs to enable expansion by additional CPUs, GPUs, and the like. Peripheral devices may be attached to the core's system bus 748 directly or via a peripheral bus 749. Architectures for peripheral buses include peripheral component interconnect (PCI), USB, and the like.
[0155] The CPU 741, GPU 742, FPGA 743, and accelerator 744 may execute certain instructions, which in combination may constitute the above-mentioned computer code. The computer code may be stored in ROM 745 or RAM 746. Transient data may also be stored in RAM 746, while permanent data may be stored, for example, in an internal mass storage device 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 devices 747, ROM 745, RAM 746, etc.
[0156] The computer readable storage medium may have computer codes for performing various computer-implemented operations. The media and computer codes may be media and computer codes designed and constructed specifically for the purpose of this application, or may be of a type well known and available to technicians in the computer software field.
[0157] By way of example and not limitation, a computer system having architecture 700 and in particular core 740 may provide functionality resulting from the execution of software embodied in one or more tangible computer-readable storage media by a processor (including a CPU, GPU, FPGA, accelerator, etc.). Such computer-readable storage media may be media associated with the user-accessible mass storage device introduced above and certain storage devices of the non-temporary nature of core 740 (e.g., core internal mass storage device 747 or ROM 745). Software implementing various embodiments of the present application may be stored in such devices and executed by core 740. Depending on specific needs, the computer-readable storage medium may include one or more memory devices or chips. The software may enable core 740 and, 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 RAM 746 and modifying such a data structure according to a process defined by the software. Additionally or alternatively, the computer system may provide functionality produced by logic hardwired or otherwise embodied in circuits (e.g., accelerator 744) that may operate in place of or in conjunction with software to perform specific processes or specific portions of specific processes described herein. References to software may encompass logic, and vice versa, where appropriate. References to computer-readable storage media may encompass circuits (e.g., integrated circuits (ICs)) storing software for execution, circuits embodying logic for execution, or both, where appropriate. The present application encompasses any suitable combination of hardware and software.
[0158] Although the present application describes several exemplary embodiments, various modifications, permutations and combinations, and various alternative equivalents are possible within the scope of the present application. Therefore, it should be understood that within the spirit and scope of the application, those skilled in the art can design various systems and methods that are not explicitly shown or described herein but can embody the principles of the present application.
Claims
1. A method for decoding an encoded video stream, characterized in that: The method comprises: Obtaining an encoded video sequence including a plurality of output layer sets from the encoded video bitstream; obtaining a first flag indicating whether each of the plurality of output layer sets includes more than one layer; When the first flag indicates that each output layer set includes more than one layer, obtaining a first syntax element indicating an output layer set mode; and Based on the first flag and at least one of the first syntax elements, at least one layer is selected from the layers included in the multiple output layer sets as at least one output layer; wherein, when the first syntax element indicates that the output layer set mode is the third mode, a second syntax element signaled in the coded video code stream is obtained, and for each layer in each output layer set, the second syntax element specifies whether the layer is the output layer of the output layer set, thereby selecting each output layer in the at least one output layer, and a third flag is obtained, the third flag indicating, for each non-selected layer that is not selected as the at least one output layer, whether each non-selected layer is a direct reference layer of the selected at least one output layer.
2. The method according to claim 1, characterized in that When the first syntax element indicates that the output layer set mode is the first mode, a highest layer of each output layer set is selected as the at least one output layer.
3. The method according to claim 1, characterized in that When the first syntax element indicates that the output layer set mode is the second mode, all layers included in the multiple output layer sets are selected as the at least one output layer.
4. The method according to claim 1, characterized in that: When the first flag indicates that each of the output layer sets includes more than one layer, and the second flag indicates that all layers included in the multiple output layer sets are independently encoded, it is inferred that the output layer set mode is the third mode.
5. The method according to any one of claims 1 to 4, characterized in that: The first flag and the first syntax element are signaled in a video parameter set VPS.
6. The method according to any one of claims 1 to 4, characterized in that: When the first flag indicates that each output layer set includes only one layer, the one layer is selected as the at least one output layer.
7. A device for decoding a coded video stream, 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 according to instructions of the program code, wherein the program code includes: A first obtaining code is configured to enable the at least one processor to obtain an encoded video sequence including a plurality of output layer sets from the encoded video bitstream; a second obtaining code configured to cause the at least one processor to obtain a first flag indicating whether each of the plurality of output layer sets includes more than one layer; A third obtaining code is configured to cause the at least one processor to obtain a first syntax element indicating an output layer set mode when the first flag indicates that each output layer set includes more than one layer; The selection code is configured to enable the at least one processor to select at least one layer from the layers included in the multiple output layer sets as at least one output layer based on the first flag and at least one of the first syntax elements; wherein, when the first syntax element indicates that the output layer set mode is a third mode, a second syntax element signaled in the coded video code stream is obtained, and for each layer in each output layer set, the second syntax element specifies whether the layer is an output layer of the output layer set, thereby selecting each output layer in the at least one output layer, and a third flag is obtained, wherein the third flag indicates that, for each non-selected layer that is not selected as the at least one output layer, whether each non-selected layer is a direct reference layer of the selected at least one output layer is obtained.
8. The device according to claim 7, characterized in that When the first syntax element indicates that the output layer set mode is the first mode, a highest layer of each output layer set is selected as the at least one output layer.
9. The device according to claim 7, characterized in that When the first syntax element indicates that the output layer set mode is the second mode, all layers included in the multiple output layer sets are selected as the at least one output layer.
10. The device according to claim 7, characterized in that When the first flag indicates that each of the output layer sets includes more than one layer, and the second flag indicates that all layers included in the multiple output layer sets are independently encoded, it is inferred that the output layer set mode is the third mode.
11. The device according to any one of claims 7 to 10, characterized in that: The first flag and the first syntax element are signaled in a video parameter set VPS.
12. The device according to any one of claims 7 to 10, characterized in that: When the first flag indicates that each output layer set includes only one layer, the one layer is selected as the at least one output layer.
13. A video encoding method, characterized in that: The method comprises: setting a first flag indicating whether each of the plurality of output layer sets includes more than one layer; When the first flag indicates that each output layer set includes more than one layer, determining a first syntax element indicating an output layer set mode; Based on at least one of the first flag and the first syntax element, at least one layer is selected from the layers included in the multiple output layer sets as at least one output layer; wherein, when the first syntax element indicates that the output layer set mode is the third mode, for each layer of each output layer set, a second syntax element is signaled in the coded video bitstream, and the second syntax element specifies whether each layer in each output layer set is an output layer of the output layer set, thereby selecting the at least one output layer; a third flag is set, and the third flag indicates that, for each unselected layer that is not selected as the at least one output layer, whether each unselected layer is a direct reference layer of the selected at least one output layer is obtained; The encoded video sequence including the plurality of output layer sets is included in an encoded video bitstream.
14. An electronic device, characterized in that: It includes a memory for storing computer-readable instructions; a processor for reading the computer-readable instructions and executing the method according to any one of claims 1 to 6 and 13 as indicated by the computer-readable instructions.
15. A method for storing or sending a video code stream, characterized in that: The video code stream can be generated according to the encoding method according to claim 13, or the video code stream can be decoded based on the decoding method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Selection of target output layers in high efficiency video coding extensions
CN105409219A