Method and device for entropy encoding and decoding sub-image

By disabling or selectively using the previous context state in the video encoding and decoding system, the context state initialization problem is solved, the encoding and decoding performance is improved and the independent decoding of the sub-image is realized.

CN119769088APending Publication Date: 2025-04-04MEDIATEK INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380062115.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-08-25
Filing Date
2023-08-08
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

In video encoding and decoding systems, there are problems with the context state initialization of entropy encoded sub-images, resulting in poor encoding and decoding performance.

Method used

By receiving input data, the previous context states of the arithmetic entropy codec are determined and disabled or selectively initialized under certain conditions. The specific method includes using a predefined context state or allowing only context states generated using the same previous inter-slicing as the current sub-image index.

Benefits of technology

The encoding and codec performance of the video encoding and codec system is improved, the independent decoding capability of the sub-image is ensured, and the initialization process of the context state is optimized.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119769088A_ABST
    Figure CN119769088A_ABST
Patent Text Reader

Abstract

A context initialization method and device for sub-image entropy coding and decoding. According to the method, a previous context state of an arithmetic entropy codec is determined, wherein one or more context state buffers are used to store the previous context state for initializing the arithmetic entropy codec. When a sub-image coding and decoding tool is used for a current image: initializing the arithmetic entropy codec using the previous context state stored in the one or more context state buffers is disabled; and the input data is encoded or decoded using the arithmetic entropy codec. In another embodiment, the video codec may only allow the use of a stored context state set to initialize the context state for entropy coding and decoding the current sub-image, the stored context state set being generated after entropy coding an inter-frame slice corresponding to the same sub-image in a previously coded image.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references

[0002] This application is a non-provisional application of, and claims priority to, U.S. Provisional Patent Application No. 63 / 373,471, filed on August 25, 2022. This U.S. Provisional Patent Application is incorporated herein by reference in its entirety. Technical Field

[0003] The present invention relates to a video coding system, and in particular to context initialization for entropy coding subpictures in the video coding system to improve coding performance. Background Art

[0004] Versatile Video Codec (VVC) is the latest international video codec standard developed by the Joint Video Experts Group (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG). The standard has been published as an ISO standard: ISO / IEC 23090-3:2021, Information technology - Codec representation of immersive media - Part 3: Versatile video codec, published in February 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video coding), by adding more codec tools to improve codec efficiency and handle various video sources including 3D video signals.

[0005] Figure 1AAn exemplary adaptive inter / intra video decoding system incorporating loop processing is illustrated. For intra prediction, prediction data is derived based on previously encoded video data in the current image. For inter prediction 112, motion estimation (ME) is performed on the encoder side and motion compensation (MC) is performed based on the results of ME to provide prediction data derived from other images and motion data. Switch 114 selects intra prediction 110 or inter prediction 112, and the selected prediction data is provided to adder 116 to form a prediction error, also called a residual. The prediction error is then processed by transform (T) 118 and subsequent quantization (Q) 120. The transformed and quantized residual is then encoded by entropy encoder 122 to include it in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packaged with auxiliary information such as motion and coding modes associated with intra prediction and inter prediction, as well as other information such as parameters associated with loop filters applied to underlying image areas. As Figure 1A As shown, side information associated with intra prediction 110, inter prediction 112 and loop filter 130 is provided to entropy encoder 122. When using inter prediction mode, the reference image must also be reconstructed at the encoder end. Therefore, the transformed and quantized residual is processed by inverse quantization (IQ) 124 and inverse transform (IT) 126 to restore the residual. The residual is then added back to the predicted data 136 in reconstruction (REC) 128 to reconstruct the video data. The reconstructed video data can be stored in the reference image buffer 134 and used for prediction of other frames.

[0006] like Figure 1A As shown, the input video data undergoes a series of processes in the encoding system. Due to the series of processes, the reconstructed video data from REC 128 may be subject to various impairments. Therefore, before the reconstructed video data is stored in the reference picture buffer 134, a loop filter 130 is often applied to the reconstructed video data to improve the video quality. For example, a deblocking filter (DF), a sample adaptive offset (SAO), and an adaptive loop filter (ALF) may be used. It may be necessary to merge the loop filter information into the bitstream so that the decoder can correctly recover the required information. Therefore, the loop filter information is also provided to the entropy encoder 122 to be incorporated into the bitstream. Figure 1A In FIG. 1 , a loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in a reference picture buffer 134 . Figure 1AThe system in is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to a High Efficiency Video Coding (HEVC) system, VP8, VP9, ​​H.264, or VVC.

[0007] like Figure 1B As shown, the decoder can use similar or partially identical functional blocks as the encoder, except for transform 118 and quantization 120, because the decoder only needs inverse quantization 124 and inverse transform 126. Instead of entropy encoder 122, the decoder uses entropy decoder 140 to decode the video bit stream into quantized transform coefficients and required decoding information (e.g., ILPF information, intra prediction information, and inter prediction information). Intra prediction 150 on the decoder side does not need to perform pattern search. Instead, the decoder only needs to generate intra prediction based on the intra prediction information received from entropy decoder 140. In addition, for inter prediction, the decoder only needs to perform motion compensation (MC 152) based on the intra prediction information received from entropy decoder 140 without motion estimation.

[0008] A coded video sequence can be represented by a set of coded layered video sequences. The coded layered video sequence can be further divided into multiple temporal sub-layers. Each coded video data unit belongs to a specific layer identified by a layer index (ID) and a specific sub-layer ID identified by a temporal ID. Both the layer ID and the sub-layer ID are signaled in the network abstraction layer (NAL) header. By skipping video data units belonging to one or more top layers or sub-layers, the coded video sequence can be restored at a reduced quality or frame rate. The video parameter set (VPS), sequence parameter set (SPS) and picture parameter set (PPS) contain high-level syntax elements applicable to the coded video sequence, the coded layered video sequence and the coded picture, respectively. The picture header (PH) and the slice header (SH) contain high-level syntax elements applicable to the current coded picture and the current coded slice, respectively.

[0009] In VVC, the coded image is divided into non-overlapped square block areas represented by associated codec tree units (CTUs). The coded image can be represented by a set of slices, each slice comprising an integer number of CTUs. Each CTU in a slice is processed in raster scan order. Bidirectional prediction (B) slices can be decoded using intra prediction or inter prediction with up to two motion vectors and reference indices to predict the sample values ​​of each block. Prediction (P) slices are decoded using intra prediction or inter prediction with up to one motion vector and reference index to predict the sample values ​​of each block. Intra (I) slices are decoded using only intra prediction.

[0010] A quadtree (QT) with a nested multi-type-tree (MTT) structure can be used to divide a CTU into one or more non-overlapping codec units (CUs) to accommodate various local motion and texture characteristics. Figure 2 One of the five split types shown (quad-tree partitioning 210, vertical binary tree partitioning 220, horizontal binary tree partitioning 230, vertical center-side triple-tree partitioning 240, horizontal center-side triple-tree partitioning 250) further splits the CU into smaller CUs. Figure 3 An example of a CTU recursively partitioned by a QT with a nested MTT is provided. Each CU contains one or more prediction units (PUs). The prediction unit, together with the associated CU syntax, serves as a basic unit for sending prediction sub-information. The specified prediction process is used to predict the values ​​of related pixel samples within the PU. Each CU may contain one or more transform units (TUs) for representing a prediction residual block. The transform unit (TU) includes a transform block (TB) of luma samples and two corresponding transform blocks of chroma samples, and each TB corresponds to a residual sample block from one color component. An integer transform is applied to the transform block. The level values ​​of the quantized coefficients are entropy encoded and decoded in the bitstream together with other auxiliary information. The terms codec tree block (CTB), codec block (CB), prediction block (PB), and transform block (TB) are defined as a two-dimensional sample array specifying a color component associated with a CTU, CU, PU, ​​and TU, respectively. Therefore, a CTU consists of a luma CTB, two chroma CTBs, and related syntax elements. Similar relationships apply to CUs, PUs, and TUs.

[0011] In order to achieve high compression efficiency, the context-based adaptive binary arithmetic coding and decoding (CABAC) mode, or normal mode, is adopted to perform entropy coding and decoding on the values ​​of syntax elements in HEVC and VVC. Figure 4An exemplary block diagram of a CABAC process is illustrated. Since the arithmetic codec in the CABAC engine can only encode and decode binary symbol values, the CABAC process requires the use of a binarizer (410) to convert the value of the syntactic element into a binary string. The conversion process is usually called binarization. During the encoding and decoding process, a probability model is gradually established by encoding and decoding symbols of different contexts. A context modeler (420) is used for modeling purposes. In the encoding and decoding process based on normal context, a conventional encoding and decoding engine (430) corresponding to the binary arithmetic codec is used. The selection of the modeling context for the next binary symbol can be determined by the encoding and decoding information. Symbols can also be nj-encoded without a context modeling stage and assuming an equal probability distribution, which is usually called bypass mode to reduce complexity. For bypassed symbols, a bypass encoding and decoding engine (440) can be used. As Figure 4 As shown, switches (S1, S2, and S3) are used to direct the data flow between the conventional CABAC mode and the bypass mode. When the conventional CABAC mode is selected, the switch is switched to the upper contact. When the bypass mode is selected, the switch is flipped to the lower contact, as shown in FIG. Figure 4 shown.

[0012] Since the arithmetic encoder in the CABAC engine can only encode and decode binary symbol values, the CABAC operation first requires converting the values ​​of the syntax elements into binary strings, a process usually called binarization. During the encoding and decoding process, an accurate probability model is gradually established from the encoded symbols of different contexts. A set of storage units is allocated to track the ongoing context states of each modeling context, including the accumulated probability states. The context state is initialized using predefined modeling parameters for each context according to the specified slice QP. The selection of a specific modeling context for encoding binary symbols can be determined by predefined rules or derived from encoding information. Symbols can be encoded without a context modeling stage and assuming equal probability distribution, usually called bypass mode, to improve bitstream parsing throughput.

[0013] In VVC, a tile is a sequence of CTUs covering a rectangular area of ​​an image. The CTUs in a tile are scanned within the tile in raster scan order. The image is divided into one or more tile rows and one or more tile columns. A slice consists of an integer number of complete tiles or an integer number of consecutive complete CTU rows within an image tile. Two slicing modes are supported, namely raster scan slicing mode and rectangular slicing mode, indicated by the syntax element rect_slice_flag. In raster scan slicing mode, a slice contains a series of complete tiles in a tile raster scan of the image. In rectangular slicing mode, a slice contains multiple complete tiles that together form a rectangular area of ​​the image or multiple consecutive complete CTU rows that together form a rectangular area of ​​the image. The tiles within a rectangular slice are scanned in a slice raster scan order within a rectangular area corresponding to the slice. A sub-image contains one or more slices that together cover a rectangular area of ​​the image. A sub-image is identified by a sub-image index specified in the encoded video sequence. Figure 5 An example of dividing an image into 18 tiles, 24 slices / 24 sub-images is provided. Figure 5 As shown, the image 510 is divided into 18 tiles (514), with 12 tiles on the left, each tile covering a 4x 4 CTU slice, and 6 tiles on the right, each tile covering 2 vertically stacked 2x 2 CTU slices, resulting in a total of 24 slices (516) / 24 sub-images (516) of different sizes (each slice is also a sub-image). Each small rectangle 512 corresponds to a CTU.

[0014] The Joint Video Experts Group (JVET) of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 is currently exploring the next generation of video codec standards. Some promising new codec tools have been adopted into Enhanced Compression Model 5 (ECM 5) (M. Coban et al., "Algorithm description of Enhanced Compression Model", Joint Video Experts Group (JVET) of ITU-TSG 16 WP 3 and ISO / IEC JTC 1 / SC 29, 26th Meeting, by Teleconference, April 20-29, 2022, document JVET-Z2025) to further improve VVC. The adopted new tools have been implemented in the reference software ECM-5.0 (available online: https: / / vcgit.hhi.fraunhofer.de / ecm / ECM).

[0015] The present invention aims to overcome problems associated with context state initialization for entropy coded sub-graphs. Summary of the invention

[0016] A context initialization method and device for entropy coding and decoding are disclosed. According to the method, input data is received, wherein the input data includes binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at the encoder end, or an entropy-coded bit stream of the binary symbols of the set of syntax elements at the decoder end, wherein the current slice is inter-frame coded and decoded. A previous context state of an arithmetic entropy codec is determined, wherein one or more context state buffers are used to store these previous context states to initialize the arithmetic entropy codec. When a sub-image coding and decoding tool is used for the current image: initialization of the arithmetic entropy codec using the previous context state stored in the one or more context state buffers is disabled; and the input data is encoded or decoded using the arithmetic entropy codec.

[0017] In one embodiment, when the sub-picture codec tool is used for the current picture, the arithmetic entropy codec is initialized by using a predefined context state.

[0018] In one embodiment, the method further comprises: when the sub-image codec tool is used for the current image, generating a compliant bitstream on the encoder side or receiving a compliant bitstream on the decoder side, wherein the syntax information always indicates disabling the use of a previous context state stored in the one or more context state buffers to initialize the context state.

[0019] According to another method, input data is received, wherein the input data comprises binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at an encoder side, or an entropy coded bitstream of the binary symbols of the set of syntax elements at a decoder side, wherein the current slice is inter-frame coded. A previous context state of an arithmetic entropy codec is determined, wherein one or more context state buffers are used to store these previous context states to initialize the arithmetic entropy codec. The arithmetic entropy codec is initialized by using the previous context states stored in the one or more context state buffers, wherein the initialization is only allowed to use the previous context states generated after entropy coding one or more previous inter-frame slices corresponding to the same sub-image index of the encoded previous sub-image with the same sub-image index as the current sub-image. The input data is encoded or decoded using the arithmetic entropy codec.

[0020] In one embodiment, when a set of context states associated with a current sub-image index is not available in a previous context state, the arithmetic entropy codec does not entropy encode and decode inter-frame slices in one or more current sub-images using the previous context state.

[0021] According to another method, input data is received, wherein the input data includes binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at an encoder side, or an entropy coded bitstream of the binary symbols of the set of syntax elements at a decoder side, wherein the current slice is inter-frame coded. A previous context state generated by the entropy coded sub-image is determined for an arithmetic entropy codec, wherein the previous context state is stored in a plurality of context state buffers, and different context state buffers are used to store previous context states corresponding to different sub-image IDs. A target context state set for the current slice in a current sub-image (indicated by the current sub-image ID) is determined from the previous context state according to current coding parameters including the current sub-image ID. A current context state set of the arithmetic entropy codec is initialized using the target context state set. After initializing the current context state set of the arithmetic entropy codec, the input data is encoded or decoded using the arithmetic entropy codec. After entropy encoding the current sub-image in the current image, the current context state generated from the encoded or decoded input data is stored in a plurality of context state buffers.

[0022] In one embodiment, previous context states generated from entropy encoding a sub-picture with the same slice type, same QP, same temporal ID and same sub-picture ID are stored in a context state buffer.

[0023] In one embodiment, each of the plurality of context state buffers stores only one or more context state sets generated from entropy encoding one or more sub-pictures corresponding to the same sub-picture ID in the encoded video sequence.

[0024] In one embodiment, the target context state set is derived from two or more context state sets stored in a plurality of context state buffers.In one embodiment, one or more grammars are indicated or parsed to indicate two or more context state sets used to derive the target context state set.

[0025] In one embodiment, the plurality of context state buffers correspond to a four-dimensional context state buffer array, wherein the slice type, the temporal ID, the layer ID and the sub-image ID are used as the four dimensions. In one embodiment, different maximum context state buffer sizes are set for different context state buffers. In one embodiment, the maximum context state buffer size is predefined. In another embodiment, the maximum context state buffer size is explicitly indicated or parsed in the high-level syntax of the bitstream.

[0026] In one embodiment, the total context state buffer size is limited by one or more constraints of a particular profile, level, or class associated with the current encoded video sequence. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] Figure 1A An exemplary adaptive inter / intra video decoding system incorporating loop processing is shown.

[0028] Figure 1B Another example decoding system is shown.

[0029] Figure 2 A schematic diagram showing five types of splitting.

[0030] Figure 3 An example of a CTU recursively partitioned by a QT with a nested MTT is provided.

[0031] Figure 4 An exemplary block diagram of a CABAC process is illustrated.

[0032] Figure 5 An example of dividing an image into 18 tiles, 24 slices, and 24 sub-images is provided.

[0033] Figure 6 A flow chart of an exemplary video coding system including entropy coding for sub-pictures according to an embodiment of the present invention is shown.

[0034] Figure 7 A flow chart of an exemplary video coding system including entropy coding for sub-pictures according to an embodiment of the present invention is shown.

[0035] Figure 8 A flowchart of an exemplary video coding system for initializing entropy coding of sub-pictures using multiple sets of context states according to an embodiment of the present invention is shown. DETAILED DESCRIPTION

[0036] It will be readily understood that, as generally described and illustrated in the accompanying drawings herein, the components of the present invention may be arranged and designed into a variety of different configurations. Therefore, the following more detailed description of the embodiments of the systems and methods of the present invention as represented in the accompanying drawings is not intended to limit the scope of the claimed invention, but merely represents selected embodiments of the present invention. References to "one embodiment," "embodiment," or similar language throughout the specification mean that a particular feature, structure, or characteristic described in conjunction with the embodiment may be included in at least one embodiment of the present invention. Therefore, the phrases "in one embodiment" or "in an embodiment" appearing in various places throughout the specification do not necessarily all refer to the same embodiment.

[0037] In addition, the described features, structures or characteristics can be combined in any suitable manner in one or more embodiments. However, those skilled in the relevant art will recognize that the present invention can be practiced without one or more specific details, or using other methods, components, etc. In other cases, well-known structures or operations are not shown or displayed. Detailed description to avoid blurring aspects of the present invention. The illustrated embodiments of the present invention will be best understood by reference to the accompanying drawings, in which the same parts are represented by the same numbers throughout. The following description is only by way of example, and simply describes certain selected embodiments of the apparatus and method consistent with the present invention as claimed herein.

[0038] In ECM 5, the context state set after entropy encoding the last CTU in the coded inter-frame picture can be used to initialize the context state set so as to entropy encode the future frame inter-frame slices with the same slice type, quantization parameter (QP) and temporal ID (TID) as the coded picture. A new set of context states after entropy encoding the current inter-frame picture is stored in a specified entry of a context state buffer in the video encoder. When a set of stored context states generated by entropy encoding the previous frame inter-frame slice with the same slice type, QP and TID as the current picture can be found in the context state buffer, the new set of context states only replaces the stored context state set corresponding to the same slice type, QP and TID in the context state buffer. Otherwise, a new set of context states will be allocated to be stored in an empty entry in the context state buffer. When the context state buffer is full, the stored context set associated with the entry with the smallest QP and temporal ID is first deleted from the context state buffer, and then the new context state set is stored. In the ECM-5.0 reference software implementation, context state buffers ctxStateBuffers[NumInterSliceTypes] are created to store context state sets corresponding to different slice types, where NumInterSliceTypes represents the number of different slice types and is equal to 2 (referring to B and P slice types in ECM 5). Each context state buffer stores a context state set generated by entropy encoding the slices in the previous image using a specific slice type. For each of the two context state buffers, the maximum allowed buffer size is fixed to be equal to 5 (context state sets). The context state for each context in the storage set may include entries for tracking long-term probabilities, short-term probabilities, and weighting factors for deriving predicted probabilities.

[0039] Before starting entropy encoding of the current inter-frame slice, the ECM 5 video encoder will first search the context state buffer for a stored context state set with the same slice type, QP and TID as the current slice. In the present disclosure, slice type, QP and TID are referred to as coding parameters. Therefore, a set of context states is stored for each coding parameter combination (i.e., slice type, QP and TID). If such a storage set can be found, the video encoder copies each context state in the storage set to the corresponding context state in the current slice. Otherwise, the context state set in the current slice is not initialized by any stored context state set in the context state buffer. The context state in the current slice is initialized only by the predefined default method in VVC.

[0040] In VVC, a coded image can be divided into multiple coded sub-images. Each coded sub-image can be extracted from a single bitstream and decoded independently of other coded sub-images. However, in ECM 5, the context state set used to entropy encode one or more inter-frame slices in a specific sub-image of the current image is initialized from the stored context state set generated after entropy encoding the last CTU in the coded previous image. Therefore, entropy encoding of a specific sub-image in the current image depends on the coded sub-image containing the last CTU in the coded previous image. Individual sub-images can no longer be decoded independently.

[0041] In one proposed method, a video codec may disable initialization of context states for entropy encoding of sub-images based on a stored set of context states resulting from entropy encoding of different sub-images. Individual sub-images may be identified by a sub-image index or other predefined method. In some embodiments, when a sub-image codec is used in a current encoded video sequence, the video codec may completely disable initialization of context states from a stored set of context states. When the sub-image codec is enabled or there is more than one sub-image in the current video sequence, the video codec may be forced to disable initialization of context states from a stored set of context states during encoding or decoding. Alternatively, the video codec may include a bitstream consistency requirement that syntax information should indicate that initialization of context states from a stored set of context states is disabled when the sub-image codec is enabled or there is more than one sub-image in the current encoded video sequence.

[0042] In another method, the video codec may allow only the use of stored context state sets generated after entropy encoding an inter-frame slice corresponding to the same sub-image identified by a sub-image index or other predefined method in a coded previous image to initialize the context state for entropy encoding the current sub-image. For entropy encoding of the current sub-image with sub-image index SubpicId, when the video codec cannot find any stored context state set corresponding to the same sub-image index SubpicId, the context state is not initialized from the stored context state set for entropy encoding the current sub-image.

[0043] In another approach, a video codec may store more than one set of context states corresponding to different sub-pictures after entropy encoding an image. The video codec may use one or more sets of stored context states generated by entropy encoding a previous slice corresponding to a sub-picture ID that is the same as the current sub-picture ID of the current sub-picture to initialize the context state for entropy encoding a current inter-slice in the current sub-picture. In a preferred embodiment, the video codec may use a stored set of context states to initialize the context state for entropy encoding a current inter-frame slice in a sub-picture, wherein the stored set of context states is generated by entropy encoding a sub-picture in a previous picture having the same slice type, QP, TID, and sub-picture ID as the current slice. In one embodiment, the video codec may store one or more sets of context states after entropy encoding each sub-picture in the image. The video codec may maintain separate context state buffers for different sub-pictures. Each context state buffer stores only a set of context states generated from encoded sub-pictures corresponding to the same sub-picture ID in the encoded video sequence. In some embodiments, when more than one set of stored context state sets can be used to initialize a context state set for entropy encoding a current slice, the video codec may also include sending one or more syntax elements to indicate a selected stored context state set for initializing the context state set for entropy encoding the current slice.

[0044] In one embodiment, the video codec may create a two-dimensional array of context state buffers ctxStateBuffers[NumSubPictures][NumInterSliceTypes] for storing context state sets generated from different sub-pictures and slice types, where NumSubPictures represents the number of sub-pictures in the coded video sequence. Each context state buffer

[0045] ctxStateBuffers[subpicId][SliceType] stores only the context state set generated from coded inter slices with subpicId equal to subpicIs and slice type equal to SliceType. In another embodiment, the video codec can create a three-dimensional array of context state buffers

[0046] ctxStateBuffers[NumSubLayers][NumSubPictures][NumInterSliceTypes] is used to store context state sets generated from different temporal sub-layers, sub-pictures, and slice types, where NumSubLayers represents the number of temporal sub-layers in the coded video sequence. Each context state buffer ctxStateBuffers[TemporalId][subpicId][SliceType] stores only the context state sets generated by the coded inter-frame slices with TID equal to TemporalId, sub-picture ID equal to subpicId, and slice type equal to SliceType. In another embodiment, the video codec can create a four-dimensional context state buffer array ctxStateBuffers

[0047] [NumLayers][NumSubLayers][NumSubPictures][NumInterSliceTypes] is used to store context state sets generated by different sub-pictures, temporal sub-layers and slice types, where NumLayers represents the number of layers in the coded video sequence. Each context state buffer ctxStateBuffers[LayerId][TemporalId][subpicId][SliceType] stores only the context state sets generated from coded inter-frame slices with layer index equal to LayerId, TID equal to TemporalId, subpicId ID equal to subpicId and slice type equal to SliceType.

[0048] The video codec may set different maximum context state buffer size values ​​for different context state buffers, where the maximum context state buffer size may be predefined or explicitly signaled in the bitstream, such as in the SPS or PPS. In some embodiments, the total context state buffer size may be limited by constraints defined for a particular profile, tier, or level associated with the current coded video sequence.

[0049] The proposed method can be jointly supported in a video codec.The video codec can also include one or more high-level syntax elements in a signaling high-level syntax set, such as SPS, PPS, PH and SH, to indicate which method is selected for context initialization in the current video sequence.

[0050] Any of the above-mentioned entropy coding and decoding methods for sub-images can be implemented in an encoder component and / or a decoder. For example, any of the above-mentioned entropy coding and decoding methods can be implemented in an entropy coding and decoding module (e.g., Figure 1A The entropy encoder component 122 in the decoder) and / or the entropy coding and decoding module of the decoder (e.g., Figure 1B Alternatively, any proposed method may be implemented as a circuit integrated into an entropy coding and decoding module of an encoder component and / or an entropy coding and decoding module of a decoder. The proposed aspects, methods and related embodiments may be implemented individually and jointly in a video coding and decoding system.

[0051] Figure 6 A flow chart of an exemplary video codec system including sub-image entropy coding according to an embodiment of the present invention is shown. The steps shown in the flow chart can be implemented as program codes that can be executed on one or more processors (e.g., one or more CPUs) on the encoder module / decoder side. The steps shown in the flow chart can also be implemented based on hardware, such as one or more electronic devices or processors, which are arranged to perform the steps in the flow chart. According to the method, input data is received in step 610, wherein, on the encoder side, the input data includes binary symbols of a syntax element set associated with a current slice in a current sub-image of a current image, or on the decoder side, the input data includes an entropy coded bitstream of binary symbols of the syntax element set, wherein the current slice is inter-coded. In step 620, a previous context state of an arithmetic entropy codec is determined, wherein one or more context state buffers are used to store the previous context state to initialize the arithmetic entropy codec. In step 630, it is checked whether the current image uses a sub-image codec tool. If the current image uses a sub-image codec tool (i.e., the "yes" path in step 630), step 640 is performed. If the sub-image codec tool is not used for the current image (i.e., the "No" path in step 630), step 642 is performed. In step 640, the arithmetic entropy codec is initialized using the predefined context state. In step 642, the arithmetic entropy codec is initialized using the previous context state stored in the one or more context state buffers. In step 650, the input data is encoded or decoded using the arithmetic entropy codec.

[0052] Figure 7A flow chart of an exemplary video codec system including entropy coding of a sub-image according to an embodiment of the present invention is shown. According to the method, input data is received in step 710, wherein, at the encoder side, the input data includes binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image, or at the decoder side, the input data includes an entropy coded bitstream of the binary symbols of the set of syntax elements, wherein the current slice is inter-coded. In step 720, a previous context state of an arithmetic entropy codec is determined, wherein one or more context state buffers are used to store the previous context state to initialize the arithmetic entropy codec. In step 730, the arithmetic entropy codec is initialized using the previous context state stored in the one or more context state buffers, wherein only the previous context state generated after entropy coding one or more previous inter-frame slices corresponding to the sub-image index of the encoded previous sub-image with the same sub-image index of the current sub-image is allowed to be used for the initialization of the arithmetic entropy codec. In step 740, the input data is encoded or decoded using the arithmetic entropy codec.

[0053] Figure 8 A flowchart of an exemplary video codec system for initializing an entropy-coded sub-image using multiple sets of context states according to an embodiment of the present invention is shown. According to the method, input data is received in step 810, wherein, at the encoder end, the input data includes binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image, or at the decoder end, the input data includes an entropy-coded bitstream of the binary symbols of the set of syntax elements, wherein the current slice is inter-coded. In step 820, a previous context state generated by entropy coding of the sub-image is determined for the arithmetic entropy codec, wherein the previous context state is stored in a plurality of context state buffers, and different context state buffers are used to store previous context states of different sub-image IDs. In step 830, a set of target context states is determined from the previous context states for the current slice in the current sub-image indicated by the current sub-image ID according to current coding parameters including the current sub-image ID. In step 840, a current context state set of the arithmetic entropy codec is initialized using the target context state set. After initializing the current context state set of the arithmetic entropy codec in step 850, the input data is encoded or decoded using the arithmetic entropy codec. After entropy encoding the current sub-image in the current image in step 860, the current context state set generated from the encoded or decoded input data is stored in a plurality of context state buffers.

[0054] The flowchart shown is intended to illustrate an example of video coding according to the present invention. Those skilled in the art may modify each step, rearrange the steps, split the steps or merge the steps to practice the present invention without departing from the spirit of the present invention. In the present disclosure, specific syntax and semantics have been used to illustrate examples of implementing embodiments of the present invention. Those skilled in the art may practice the present invention by replacing syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.

[0055] The above description is to enable those of ordinary skill in the art to practice the present invention in the context of specific applications and their requirements. It will be clear to those skilled in the art that various modifications may be made to the described embodiments, and that the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not limited to the specific embodiments shown and described, but should be given the widest scope consistent with the principles and novel features disclosed herein. In the above detailed description, various specific details are shown in order to provide a thorough understanding of the present invention. However, it will be understood by those skilled in the art that the present invention can be put into practice.

[0056] The embodiments of the present invention as described above can be implemented in various hardware, software codes or a combination of the two. For example, one embodiment of the present invention can be one or more circuits integrated into a video compression chip or integrated into a video compression software to perform the program code of the processing described herein. The embodiments of the present invention can also be a program code to be executed on a digital signal processor (DSP) to perform the processing described herein. The present invention can also be related to many functions performed by a computer processor, a digital signal processor, a microprocessor or a field programmable gate array (FPGA). These processors can be configured to perform specific tasks according to the present invention by executing machine-readable software codes or firmware codes that define the specific methods embodied in the present invention. The software code or firmware code can be developed in different programming languages ​​and different formats or styles. The software code can also be compiled for different target platforms. However, the different code formats, styles and languages ​​of the software code and other ways of configuring the code to perform tasks according to the present invention will not depart from the spirit and scope of the present invention.

[0057] The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are considered to be illustrative and not restrictive in all respects. Therefore, the scope of the present invention is indicated by the appended claims rather than by the foregoing description. All changes within the equivalent meaning and scope of the claims should be included within their scope.

Claims

1. A video encoding and decoding method, the method comprising: Receiving input data, wherein the input data comprises binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at an encoder side, or an entropy coded bitstream of the binary symbols of the set of syntax elements at a decoder side, wherein the current slice is inter-coded; determining a previous context state of an arithmetic entropy codec, wherein one or more context state buffers are used to store the previous context state to initialize the arithmetic entropy codec; When using the sub-image codec tool for this current image: disabling initialization of the arithmetic entropy codec using the previous context state stored in the one or more context state buffers; and The input data is encoded or decoded using the arithmetic entropy codec.

2. The method according to claim 1, wherein when the sub-image codec tool is used for the current image, the arithmetic entropy codec is initialized using a predefined context state.

3. The method according to claim 1 also includes generating a compliant bitstream on the encoder side or receiving a compliant bitstream on the decoder side when the sub-image codec tool is used for the current image, wherein the syntax information always indicates that initializing the context state using the previous context state stored in the one or more context state buffers is disabled.

4. A video encoding and decoding method, the method comprising: Receiving input data, wherein the input data comprises binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at an encoder side, or an entropy coded bitstream of the binary symbols of the set of syntax elements at a decoder side, wherein the current slice is inter-coded; determining a previous context state of an arithmetic entropy codec, wherein one or more context state buffers are used to store the previous context state to initialize the arithmetic entropy codec; Initializing the arithmetic entropy codec using the previous context state stored in the one or more context state buffers, wherein the arithmetic entropy codec is initialized only using the previous context state generated after entropy encoding and decoding one or more previous inter-frame slices corresponding to the sub-picture index of the encoded previous sub-picture having the same sub-picture index as the current sub-picture; and The input data is encoded or decoded using the arithmetic entropy codec.

5. The method according to claim 4, wherein: When the context state set associated with the current sub-image index of the current sub-image is not available in the previous context state, the arithmetic entropy codec is not initialized using the previous context state to entropy encode and decode one or more inter-frame slices in the current sub-image.

6. A video encoding and decoding method, the method comprising: Receiving input data, wherein the input data comprises binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at an encoder side, or an entropy coded bitstream of the binary symbols of the set of syntax elements at a decoder side, wherein the current slice is inter-coded; Determine that a previous context state generated by entropy encoding and decoding a sub-image is used for an arithmetic entropy codec, wherein the previous context state is stored in a plurality of context state buffers, and different context state buffers are used to store the previous context states of different sub-image IDs; determining, from the previous context state, a set of target context states for the current slice in the current sub-image indicated by the current sub-image ID, according to current codec parameters including the current sub-image ID; Initializing a current set of context states of the arithmetic entropy codec using the set of target context states; After initializing the current context state set of the arithmetic entropy codec, encoding or decoding the input data using the arithmetic entropy codec; and After entropy encoding and decoding is performed on the current sub-image in the current image, the current context state set generated by encoding or decoding the input data is stored in the multiple context state buffers.

7. The method according to claim 6, wherein: The previous context state generated by entropy encoding a sub-image with the same slice type, the same QP, the same temporal ID and the same sub-image ID is stored in a context state buffer as corresponding values ​​of the slice type, QP, temporal ID and sub-image ID associated with the current slice.

8. The method according to claim 6, wherein: Each of the multiple context state buffers only stores one or more sets of context states generated by entropy encoding one or more sub-images corresponding to the same sub-image ID in the encoded video sequence.

9. The method according to claim 6, wherein: The target context state set is derived from two or more context state sets stored in the plurality of context state buffers.

10. The method according to claim 9, wherein: One or more grammars are signaled or parsed to indicate the two or more context state sets used to derive the target context state set.

11. The method of claim 6, wherein the plurality of context state buffers corresponds to a four-dimensional array of context state buffers having slice type, temporal ID, layer ID, and sub-image ID as four dimensions.

12. The method according to claim 11, wherein different maximum context state buffer size values ​​are set for different context state buffers. The method according to claim 12 , wherein the maximum context state buffer size is predefined.

14. The method of claim 12, wherein the maximum context state buffer size is explicitly signaled or parsed in a high-level syntax of the bitstream.

15. The method of claim 6, wherein the total context state buffer size is limited by one or more constraints defined for a particular profile, tier, or level associated with the current encoded video sequence.

16. A video decoding apparatus, the apparatus comprising one or more electronic circuits or processors, configured to: Receive input data, where The input data comprises binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at an encoder side, or an entropy coded bitstream of the binary symbols of the set of syntax elements at a decoder side, wherein the current slice is inter-coded; determining a previous context state of an arithmetic entropy codec, wherein one or more context state buffers are used to store the previous context state to initialize the arithmetic entropy codec; When using the sub-image codec tool for this current image: disabling initialization of the arithmetic entropy codec using the previous context state stored in the one or more context state buffers; and The input data is encoded or decoded using the arithmetic entropy codec.

17. A video decoding apparatus, the apparatus comprising one or more electronic circuits or processors, configured to: Receive input data, where The input data comprises binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at an encoder side, or an entropy coded bitstream of the binary symbols of the set of syntax elements at a decoder side, wherein the current slice is inter-coded; determining a previous context state of an arithmetic entropy codec, wherein one or more context state buffers are used to store the previous context state to initialize the arithmetic entropy codec; Initializing the arithmetic entropy codec using the previous context state stored in the one or more context state buffers, wherein the arithmetic entropy codec is initialized only using the previous context state generated after entropy encoding and decoding one or more previous inter-frame slices corresponding to the sub-picture index of the encoded previous sub-picture having the same sub-picture index as the current sub-picture; and The input data is encoded or decoded using the arithmetic entropy codec.

18. A video decoding apparatus, the apparatus comprising one or more electronic circuits or processors, configured to: Receive input data, where The input data comprises binary symbols of a set of syntax elements associated with a current slice in a current sub-image of a current image at an encoder side, or an entropy coded bitstream of the binary symbols of the set of syntax elements at a decoder side, wherein the current slice is inter-coded; Determine that a previous context state generated by entropy encoding and decoding a sub-image is used for an arithmetic entropy codec, wherein the previous context state is stored in a plurality of context state buffers, and different context state buffers are used to store the previous context states of different sub-image IDs; determining, from the previous context state, a set of target context states for the current slice in the current sub-image indicated by the current sub-image ID, according to current codec parameters including the current sub-image ID; Initializing a current set of context states of the arithmetic entropy codec using the set of target context states; After initializing the current context state set of the arithmetic entropy codec, encoding or decoding the input data using the arithmetic entropy codec; and After entropy encoding and decoding is performed on the current sub-image in the current image, the current context state set generated by encoding or decoding the input data is stored in the multiple context state buffers.