Image decoding method, decoder and storage medium
The image decoding method addresses inefficiencies in video coding by allowing overlapping coding unit divisions, using state and mark parameters to enhance coding efficiency and reduce header information.
Patent Information
- Application Number
- JP2024079252
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-05-15
- Publication Date
- 2026-03-04
- Estimated Expiration
- 2039-04-23
AI Technical Summary
Current video coding technologies face inefficiencies due to overly fine block division, leading to increased header information and repeated information representation, which reduces coding efficiency.
An image decoding method that allows for overlapping division of coding units, utilizing state and mark parameters to determine whether nodes support refresh, enabling a refresh process to avoid excessive division and reduce unnecessary header information.
This method improves coding efficiency by reducing header information and avoiding repeated data display, while maintaining effective image decoding through overlapping coding unit divisions.
Smart Images

Figure 0007824351000002 
Figure 0007824351000003 
Figure 0007824351000004
Abstract
Description
[Technical Field]
[0001] TECHNICAL FIELD The present invention relates to the field of video codec technology, and in particular to an image decoding method, a decoder, and a storage medium. [Background technology]
[0002] Currently, technical solutions for video coding mainly use partitioning techniques to divide the spatial domain of an image into small, non-overlapping blocks, which are used as basic units for coding and then coded. Here, the multi-type tree partitioning technique (MTT) used has evolved stepwise from a quadtree partitioning technique (QT: Quadtree) to a quadtree and binary tree partitioning technique (QTBT: Quad-Tree-Binary-Tree), and further to a ternary tree partitioning technique (TT: Ternary tree). Therefore, the distinction between QT, QTBT, and MTT is due to the different partitioning methods used when performing image partitioning, but the partitioning principles of the three are the same.
[0003] In order to achieve better coding results, video coding always requires each frame of an image to be divided into smaller parts. At the same time, in the fixed division scheme of current video coding technology, the smaller division generates more header information and repeated information representation, thereby reducing coding efficiency. Summary of the Invention [Problem to be solved by the invention]
[0004] The embodiments of the present invention provide an image decoding method, a decoder and a storage medium, which can avoid overly fine block division, effectively reduce the amount of header information, and improve coding efficiency. [Means for solving the problem]
[0005] The technical solution of the present embodiment is realized as follows:
[0006] 1. A method for decoding an image, the method comprising: receiving bitstream data, and parsing the bitstream data to obtain a coding tree unit corresponding to the bitstream data; Parsing an i-th node of an i-th layer corresponding to a coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh; performing a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result; Obtaining the i+1th node of the i+1th layer corresponding to the coding tree unit according to the i detection result; continuing to perform the detection process on the i+1 node and traversing all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained; generating a decoded image corresponding to the bitstream data according to all the nodes and all the coding unit data. [Effects of the Invention]
[0007] The present embodiment provides an image decoding method, a decoder, and a storage medium, in which the decoder receives bitstream data, analyzes the bitstream data to obtain a coding tree unit corresponding to the bitstream data, analyzes the i-th node in the i-th layer corresponding to the coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh, performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result, obtains the i+1th node in the i+1th layer corresponding to the coding tree unit according to the i-th detection result, continues to perform the detection process on the i+1th node, traverses all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and generates a decoded image corresponding to the bitstream data according to all nodes and all coding unit data. As can be seen from this, in the embodiment of the present application, in the process of decoding an image in a video, bitstream data is received and parsed to obtain a coding tree unit, and then an analysis process is performed on the node of each layer corresponding to the coding tree unit to obtain the state parameters and mark parameters of the layer node, and then a detection process is performed on the node according to the state parameters and mark parameters, and then a decoding process is performed on the node with data to obtain all coding units corresponding to the coding tree unit and obtain the corresponding decoded image.Here, when coding, in order to support overlapping division between coding units, if all coding units obtained by decoding a node of data have at least two coding units whose areas are overlapped, the decoder can perform a refresh process on the image information corresponding to the background coding unit according to the image information corresponding to the refresh coding unit, thereby avoiding excessive division of the video image, reducing unnecessary header information, avoiding dispersion and repeated display of data with similar characteristics in the same area, and further improving coding efficiency. [Brief explanation of the drawings]
[0008] [Figure 1] 1. Schematic diagram of the QT technique. [Figure 2] 2. Schematic diagram of splitting with QT technique. [Figure 3] FIG. 1 is a schematic diagram of excessive segmentation. [Figure 4] 1 is an exemplary structural diagram of a configuration of a video coding system; [Figure 5] 1 is an exemplary structural diagram of a configuration of a video decoding system; [Figure 6] 1 is a flowchart illustrating an exemplary implementation of an image decoding method according to an embodiment of the present invention; [Figure 7] FIG. 1 is an exemplary structural diagram of a coding tree unit in the prior art; [Figure 8] FIG. 2 is an exemplary structural diagram of a coding tree unit in an embodiment of the present invention. [Figure 9] 1 is an exemplary flowchart 1 of an image decoding method according to an embodiment of the present invention. [Figure 10] 2 is an exemplary flowchart 2 of an image decoding method according to an embodiment of the present invention. [Figure 11] FIG. 2 is a schematic diagram of state parameters and mark parameters in an embodiment of the present invention. [Figure 12]1 is a schematic diagram of the division process. [Figure 13] 2 is a schematic diagram of the division process. [Figure 14] 3 is a schematic diagram of the division process. [Figure 15] 4 is a schematic diagram of the division process. [Figure 16] 5 is a schematic diagram of the division process. [Figure 17] 6 is a schematic diagram of the division process. [Figure 18] 1 is a schematic diagram of an image coding method according to an embodiment of the present invention; [Figure 19] Schematic diagram 1 without overlapping division. [Figure 20] Schematic diagram 2 without overlapping division. [Figure 21] 1. Schematic diagram of overlapping division. [Figure 22] 2. Schematic diagram of overlapping division. [Figure 23] 1 is an exemplary structural diagram of a decoder configuration according to an embodiment of the present invention; [Figure 24] 2 is an exemplary structural diagram of a decoder configuration according to an embodiment of the present invention; DETAILED DESCRIPTION OF THE INVENTION
[0009] Hereinafter, the technical solutions in the embodiments of the present application will be described clearly and completely with reference to the drawings in the embodiments of the present application. It should be understood that the specific embodiments described herein are only used to describe related applications and are not intended to limit the applications. Furthermore, for ease of description, the drawings only show parts related to the related applications.
[0010] Coding a video refers to coding each frame of an image, and similarly, decoding a video bitstream after video coding and compression refers to decoding the bitstream of each frame of the image. In almost all international standards for video image coding, when coding a frame of an image, the image needs to be divided into several blocks of M×M pixel sub-images, called coding units (CUs). A CU is used as a basic coding unit to code each sub-image block by block. The usual size of M is 4, 8, 16, 32, or 64. Therefore, coding a video image sequence refers to sequentially coding each coding unit, i.e., each CU, of each frame of the image, and decoding the bitstream of a video image sequence also refers to sequentially decoding each CU of each frame of the image, ultimately reconstructing the entire video image sequence.
[0011] To adapt to the different content and characteristics of each part of a frame of image, targeted coding is performed to achieve the most effective coding. The size of each CU in a frame of image may vary, with some being 8x8 and others being 64x64. To seamlessly stitch together CUs of different sizes, a frame of image is typically first divided into largest coding units (LCUs) or coding tree units (CTUs) of the same size (NxN pixels). Each LCU is then further divided into multiple CUs of different sizes. For example, a frame of image is first divided into LCUs of the same size (64x64 pixels), i.e., N=64. Here, a specific LCU is composed of three CUs of 32x32 pixels and four CUs of 16x16 pixels, while another LCU is composed of two CUs of 32x32 pixels, three CUs of 16x16 pixels, and twenty CUs of 8x8 pixels. A CU can be further divided into several sub-regions, including, but not limited to, a prediction unit (PU) and a transformation unit (TU). In summary, a coding block or a decoding block refers to an area within an image of a frame that codes or decodes the image of the frame.
[0012] A CU is a region composed of several pixel values. The shape of a CU may be rectangular, and in one frame of an image, each CU may have a different shape and size.
[0013] The H.265 / High Efficiency Video Coding (HEVC) video compression standard employs QT technology to perform non-overlapping partitioning of coding units (CTUs). Figure 1 shows a schematic diagram of partitioning using QT technology. As shown in Figure 1, a frame of image is first partitioned into multiple equal-sized regions according to rows and columns. Each region is called a CTU. The length of a CTU's side may be 128 pixels, 64 pixels, etc. Since the partitioning is fixed in the horizontal and vertical directions, CTUs do not overlap. Figure 2 shows a schematic diagram of partitioning using QT technology. As shown in Figure 2, a CTU is recursively partitioned into multiple CUs using QT. The CUs are not all the same size. For example, there are CUs with sizes of 8x8 pixels, 16x16 pixels, and even 32x32 pixels. Here, there are no overlapping regions between CUs, and all CUs are leaf nodes of the quadtree partition. Similarly, due to the fixed partitioning in the horizontal and vertical directions, CUs partitioned from any one CTU do not overlap.
[0014] The existing H.266 / Versatile Video Coding (VVC) video coding technology adds a binary tree (BT) partitioning technology to the QT base to form the QTBT partitioning technology, and further adds a TT partitioning technology to form the MTT. Various partitioning methods in MTT, such as QT partitioning, vertical BT partitioning, horizontal BT partitioning, vertical center-both TT partitioning, and horizontal center-both TT partitioning, are all used in each layer within the CTU.
[0015] As can be seen, the current MTT scheme is a technical solution that evolved stepwise from QT to QTBT and then further to TT. While there are differences in the segmentation methods, the segmentation principle of all three is the same: no overlap between CUs. That is, the current segmentation schemes do not allow overlapping regions between CUs. Because of their fixed segmentation methods, irregular object edges must be finely segmented to achieve better video coding results. However, fine segmentation generates more header information, which can reduce coding efficiency. While the diversification of segmentation modes has partially resolved some of the fine segmentation issues, the problem of over-segmentation remains. Figure 3 is a schematic diagram of over-segmentation. As shown in Figure 3, after segmenting and enlarging the top region of the ball held by the player on the right, it can be seen that most of the region is a flat region with a similar background, with only the top of the ball having different content from the other regions within the block. To segment the corresponding region, the final segmentation result is very fine. As can be seen, when video coding, existing codec technologies always need to finely divide each frame of an image to obtain better coding effects, but fine division generates more header information and repeated information representation, which can reduce coding efficiency.
[0016] The present embodiment proposes an image decoding method that can avoid overly detailed block division of an image, effectively reduce the amount of header information, avoid displaying repeated information, and improve coding efficiency. Here, the coding method can be applied to the block division and the combination part of intra and inter prediction signals in a video coding hybrid framework, and specifically, the decoding method can also be applied to the buffer part in the video coding hybrid framework. For example, FIG. 4 is an exemplary structural diagram of the configuration of a video coding system. As shown in FIG. 4, the video coding system 200 includes a transform and quantization unit 201, an intra estimation unit 202, an intra prediction unit 203, a motion compensation unit 204, a motion estimation unit 205, an inverse transform and inverse quantization unit 206, a filter control analysis unit 207, a filtering unit 208, an entropy coding unit 209, and a decoding image buffer unit 210, etc., where the filtering unit 208 can realize deblocking filtering and sample adaptive offset (SAO) filtering, and the entropy coding unit 209 can realize header information coding and context-based adaptive binary arithmetic coding (CABAC).
[0017] When it is detected that an original video signal is received, a video coding block can be obtained from the input original video signal through division of the coding tree unit, and then, for the residual pixel information obtained after intra prediction or inter prediction, the transform and quantization unit 201 transforms the video coding block, converts the residual information from pixel field to transform field, and quantizes the obtained transform coefficients to reduce the bit rate. The intra estimation unit 202 and the intra prediction unit 203 are configured to perform intra prediction on the video coding block, specifically, the intra estimation unit 202 and the intra prediction unit 203 are configured to determine an intra prediction mode to be used for coding the video coding block, the motion compensation unit 204 and the motion estimation unit 205 are configured to perform inter-predictive coding of the received video coding block relative to one or more blocks in one or more reference frames to provide temporal prediction information, the motion estimation performed by the motion estimation unit 205 is a process of generating a motion vector, which can estimate the motion of the video coding block, and then the motion compensation unit 204 performs motion compensation based on the motion vector determined by the motion estimation unit 205. After determining the intra prediction mode, the intra prediction unit 203 is further configured to provide the selected intra prediction data to the entropy decoding unit 209, and the motion estimation unit 205 also sends the calculated and determined motion vector data to the entropy decoding unit 209. In addition, the inverse transform and inverse quantization unit 206 is configured to reconstruct the video coding block and reconstruct a residual block in a pixel field, and the reconstructed residual block is filtered through the filter control analysis unit 207 and the filtering unit 208 to remove block effect artifacts, and then adds the reconstructed residual block to one prediction block in a frame of the decoding image cache unit 210 to generate a reconstructed video coding block.The entropy decoding unit 209 is configured to code various coding parameters and quantized transform coefficients (in a CABAC-based coding algorithm, the context content may be based on neighboring coding blocks), code information indicating a determined intra-prediction mode, and output a codestream of the video signal. The decoded image cache unit 210 is configured to store reconstructed video coding blocks for reference prediction. As video image coding is performed, new reconstructed video coding blocks are continuously generated, and all of these reconstructed video coding blocks are stored in the decoded image cache unit 210.
[0018] 5 is an exemplary structural diagram of a video decoding system. As shown in FIG. 5, the video decoding system 300 includes an entropy decoding unit 301, an inverse transform and inverse quantization unit 302, an intra prediction unit 303, a motion compensation unit 304, a filtering unit 305, and a decoded image buffer unit 306. The entropy decoding unit 301 can perform header information decoding and CABAC decoding, and the filtering unit 305 can perform deblocking filtering and SAO filtering. After the input video signal undergoes the coding process of FIG. 4, the system outputs a code stream of the video signal. The code stream is input to the video decoding system 300 and first passes through the entropy decoding unit 301 to obtain decoded transform coefficients. The transform coefficients are then processed by the inverse transform and inverse quantization unit 302 to generate residual blocks in a pixel field. The intra prediction unit 303 is configured to generate prediction data for the current video decoding block based on the determined intra prediction mode and data via a previous decoding block from the current frame or picture, and the motion compensation unit 304 is configured to determine prediction information for the video decoding block by analyzing the motion vectors and other related grammar elements, and use the prediction information to generate a prediction block for the video decoding block being decoded. The residual block from the inverse transform and inverse quantization unit 302 is added to the corresponding prediction block generated by the intra prediction unit 303 or the motion compensation unit 304 to form a video block for decoding, and the video signal for decoding can be filtered by the filtering unit 305 to remove block effect artifacts and improve video quality.The decoded video blocks are then stored in a decoded image cache unit 306, which is configured to store reference images for subsequent intra-prediction or motion compensation, and at the same time output a video signal, i.e., obtain a restored original video signal.
[0019] The image decoding method according to the present application may be applied to the codec framework of FIG. 4 and FIG. 5, but the present application is not specifically limited thereto.
[0020] The following clearly and completely describes the technical solutions in the embodiments of the present application with reference to the drawings in the embodiments of the present application.
[0021] In one embodiment of the present application, Figure 6 is an exemplary implementation flowchart of an image decoding method according to an embodiment of the present application. As shown in Figure 6, in an embodiment of the present application, the method by which a decoder performs image decoding may include the following steps:
[0022] In step 101, bitstream data is received, and the bitstream data is parsed to obtain coding tree units corresponding to the bitstream data.
[0023] In an embodiment of the present application, a decoder may receive bitstream data and then analyze the received bitstream data to obtain a coding tree unit corresponding to the bitstream data, where the decoder may obtain at least one coding tree unit of the same size after analyzing the bitstream data.
[0024] It should be noted that in the present embodiment, when an encoder performs video coding, it performs frame-by-frame coding for multiple frames of an image in a video. At any given moment, the image of one frame being coded may be referred to as the current coding image. When the encoder codes the current coding image in a video, it must first divide the current coding image into coding tree units of the same size, and then continue to divide and code the coding tree units into coding units of different sizes. For example, the encoder may divide the current coding image to obtain coding tree units of the same size, i.e., coding tree units consisting of 64x64 pixel points. Here, in the present embodiment, when the encoder performs overlap division on the current coding image, overlap between coding units is allowed, but overlap between coding tree units is not allowed due to the need for parallel processing and reduced coding complexity.
[0025] It should be noted that in the embodiment of the present application, the encoder can perform overlapping splitting on the current coding picture through multi-type tree splitting technology (MTT) and coding, and then obtain bitstream data corresponding to the current coding picture, and the decoder can decode the current coding picture according to the bitstream data to obtain a coding tree unit, and further obtain a coding unit.
[0026] Furthermore, in an embodiment of the present application, when a decoder performs video decoding, it decodes bitstream data of multiple frames of images in a video frame by frame, and the image of one frame being decoded at any moment can be called a current decoding image.
[0027] It should be noted that in this embodiment, when a decoder decodes a current decoding image, there is no overlap between coding tree units, but overlap between coding units is allowed. That is, in this embodiment, when a decoder decodes, there may be multiple coding units simultaneously carrying decoded pixel data of the same area at a given position in a reconstruction frame buffer, one of which is large and can be regarded as a background coding unit, and one of which is small and can be regarded as a refresh coding unit. The background coding unit decodes the reconstruction data and can be covered by the pixel data at that position carried by the refresh coding unit, i.e., a refresh process. In this embodiment, a decoding mode that uses such a refresh coding unit to refresh a background coding unit is called a refresh decoding mode.
[0028] Furthermore, in an embodiment of the present application, when a decoder performs video decoding, it can select to start a refresh decoding mode used to perform refreshing of coding units. Specifically, the decoder can set an upper layer control syntax, and in a picture parameter set (PPS) or sequence parameter set (SPS), one enable switch syntax PPSRfrsEnbl or SPSRfrsEnbl can describe whether the decoder currently supports the refresh decoding mode.
[0029] That is, in an embodiment of the present application, the decoder may start a preset refresh mode after receiving bitstream data, analyzing the bitstream data, and obtaining coding tree units corresponding to the bitstream data, i.e., after step 101. Specifically, the preset refresh mode may be used to perform overlapped decoding between coding units.
[0030] In step 102, the i-th node of the i-th layer corresponding to the coding tree unit is analyzed to obtain the i-th state parameter and the i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, and the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh.
[0031] In an embodiment of the present application, the decoder may first perform a parsing process on the i-th node of the i-th layer corresponding to the coding tree unit to obtain the i-th state parameter and the i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, for example, i may be 1, 2, 3, etc.
[0032] It should be noted that in the present embodiment, the i-th state parameter can be used to determine the default state of the i-th node. Here, the i-th state parameter can include the i-th subtree default state and the i-th data default state. Specifically, the i-th subtree default state is used to indicate whether the i-th node supports refresh states, and the i-th data default state is used to determine whether the i-th node has source data.
[0033] Furthermore, in an embodiment of the present application, in the specific syntax of the video codec, the default state of the ith subtree can be determined through bRfrsEnblFlag, that is, bRfrsEnblFlag can indicate whether the current node of the coding tree unit supports the refresh state. Specifically, if bRfrsEnblFlag is assigned a value of 0, the current node of the coding tree unit is considered to not support refresh, and if bRfrsEnblFlag is assigned a value of 1, the current node of the coding tree unit is considered to support refresh.
[0034] Furthermore, in an embodiment of the present application, for the first node of the first layer of the coding tree unit, i.e., when i=1, the default value of the i-th subtree default state is SPSRfrsEnbl, where SPSRfrsEnbl is a mark of whether refresh is supported declared in the SPS layer, and may be an enable control decision performed in the PPS layer; when i is not 1, the i-th subtree default state can be determined through the subtree default state of the previous layer, i.e., the i-th subtree default state can be determined according to the i-1-th subtree default state.
[0035] Furthermore, in the embodiment of the present application, in the specific syntax of the video codec, the i-th data default state can be determined through bAncFlag, that is, bAncFlag can indicate whether there is source data in the current node of the coding tree unit. Specifically, if bAncFlag is assigned a value of 0, it is considered that there is no source data in the current node of the coding tree unit, and if bAncFlag is assigned a value of 1, it is considered that there is source data in the current node of the coding tree unit.
[0036] Furthermore, in an embodiment of the present application, for the first node of the first layer of the coding tree unit, i.e., when i=1, the default value of the i-th data default state is 0; when i is not 1, the i-th data default state can be determined via the data default state of the previous layer, i.e., the i-th data default state can be determined according to the i-1-th data default state.
[0037] It should be noted that in an embodiment of the present application, the i-th mark parameter can be used to determine the data mark of the i-th node. Here, the i-th state parameter can include the i-th subtree identifier and the i-th data identifier. Specifically, the i-th subtree identifier is used to indicate whether there is a coding unit that can be refreshed in the subtree of the i-th node, and the i-th data identifier is used to determine whether there is data in the i-th node.
[0038] Furthermore, in an embodiment of the present application, in the specific syntax of the video codec, the ith subtree identifier can be determined via Refresh_CU_enable_flag[x0][y0], i.e., Refresh_CU_enable_flag[x0][y0] can indicate whether there is a coding unit that can be refreshed in the current node of the coding tree unit. Specifically, if Refresh_CU_enable_flag[x0][y0] is assigned a value of 0, it is considered that there is no coding unit that can be refreshed in the current node of the coding tree unit, and if Refresh_CU_enable_flag[x0][y0] is assigned a value of 1, it is considered that there is a coding unit that can be refreshed in the current node of the coding tree unit.
[0039] Furthermore, in an embodiment of the present application, in the specific syntax of the video codec, the ith data identifier can be determined through Refresh_CU_flag[x0][y0], that is, Refresh_CU_flag[x0][y0] can indicate whether there is data in the current node of the coding tree unit. Specifically, if Refresh_CU_flag[x0][y0] is assigned a value of 0, it is considered that there is no data in the current node of the coding tree unit, and if Refresh_CU_flag[x0][y0] is assigned a value of 1, it is considered that there is data in the current node of the coding tree unit.
[0040] Furthermore, in the embodiment of the present application, in the specific syntax transmission of the video codec, bAncFlag, Refresh_CU_enable_flag[x0][y0], and Refresh_CU_flag[x0][y0] may not be transmitted. Specifically, whether Refresh_CU_flag[x0][y0] and Refresh_CU_flag[x0][y0] are present or not always depends on whether the current node is a leaf node, the values of bRfrsEnblFlag, and bAncFlag.
[0041] In an embodiment of the present application, a coding tree unit can correspond to a node in at least one layer, and any one node in each layer may have data. Here, the data of an ancestor node can be covered by the data of its descendant node. Therefore, when decoding a coding tree unit, a decoder needs to detect whether a node has data for each layer, and then perform a decoding process on the data node to construct a corresponding coding unit. In contrast, in the prior art, for one coding tree unit, data is only present in nodes that cannot be further divided in the tree structure, i.e., only in leaves. Therefore, a decoder needs to analyze each leaf and perform a decoding process. Figure 7 is an exemplary structural diagram of a coding tree unit in the prior art, and Figure 8 is an exemplary structural diagram of a coding tree unit in an embodiment of the present application. As shown in Figures 7 and 8, for similar coding tree units, the coding units in the prior art and coding units cannot be divided overlappingly. Therefore, in the tree structure corresponding to the coding tree unit, data only exists in leaves. Therefore, when decoding, a decoder needs to perform data analysis on all leaves to construct a coding unit. In the embodiment of the present application, since the coding unit and the coding unit can be overlappingly divided, in the tree structure corresponding to the coding tree unit, any one intermediate node may have data, and for any one coding tree unit, it is necessary to detect whether each node has data, and if so, to perform decoding to obtain the corresponding coding unit without performing data analysis on all leaves, thereby avoiding a large number of small block divisions and improving decoding efficiency.Furthermore, in the embodiment of the present application, when performing image coding, the encoder not only uses the leaf nodes as coding units, but also performs compression coding on the intermediate nodes.However, some node information from intermediate nodes to descendant nodes must be removed, for example, through masking, zero padding, interpolation, or external expansion. Comparing Figures 7 and 8, the encoder can reduce the fineness of coding partitioning by collecting multiple irregular regions into a single region and coding them. Here, regions that originally differ from the background are temporarily treated as the same as other background regions through data expansion, reducing the number of bits used for display. Blocks that differ from the background must then be coded independently and refreshed to cover the background blocks, thereby obtaining the same image content. This reduces some of the header information in some partitions of the original partitioning tree without the need for partitioning. Furthermore, flat image regions are dominated by low-frequency components, and the corresponding energy is concentrated in the upper left corner of the region. This reduction in partitioning is more conducive to energy concentration and saves frequency-domain data after transforming a portion of the pixel domain compared to over-partitioning. Specifically, the dotted-line portion of the partitioning tree in Figure 8 does not contain valid data, so the partitioning information for this portion can be omitted.
[0042] Furthermore, in the embodiments of the present application, the i-th layer data corresponding to a coding tree unit may have at least one node, so that the i-th node of the i-th layer corresponding to a coding tree unit is all the nodes in the i-th layer, that is, the decoder can perform a detection process on all the i-th nodes in the i-th layer corresponding to a coding tree unit to obtain detection results corresponding to each i-th node, that is, through detection, all the detection results corresponding to all the nodes in the i-th layer can be obtained.
[0043] In step 103, a detection process is performed on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain the i-th detection result.
[0044] In an embodiment of the present application, the decoder performs an analysis process on the i-th node of the i-th layer corresponding to the coding tree unit, obtains the i-th state parameter and the i-th mark parameter corresponding to the i-th node, and then performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain the i-th detection result.
[0045] It should be noted that in the embodiment of the present application, after the decoder determines the i-th state parameter and the i-th mark parameter, it can further combine the leaf parameters of the i-th node and determine whether there is data in the i-th node according to the i-th state parameter and the i-th mark parameter.
[0046] Furthermore, in the present embodiment, the leaf parameter of the inode can be used to determine whether the inode is a leaf in a coding tree unit.
[0047] It should be noted that in the embodiment of the present application, when the decoder performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain the i-th detection result, it can first determine a leaf parameter corresponding to the i-th node, where the leaf parameter is used to determine whether the i-th node can continue to split, and then obtain the i-th detection result according to the leaf parameter, the i-th state parameter, and the i-th mark parameter. That is, the decoder can determine whether the i-th node can continue to split according to the leaf parameter corresponding to the i-th node.
[0048] Furthermore, in an embodiment of the present application, to determine whether there is data in the i-th node and whether it can continue to be split, the decoder performs a detection process on the i-th node, and correspondingly, the i-th detection result may include four: there is data and splitting, there is no data and splitting, there is data and not splitting, and there is no data and not splitting.
[0049] It should be noted that in the embodiment of the present application, in the specific syntax transmission of the video codec, bAncFlag, Refresh_CU_enable_flag[x0][y0] and Refresh_CU_flag[x0][y0] may not be transmitted, so the decoder needs to further infer and determine whether there is data in the i-th node according to the leaf parameter, the i-th state parameter and the i-th mark parameter.
[0050] In step 104, according to the i-th detection result, obtain the i+1-th node of the i+1-th layer corresponding to the coding tree unit.
[0051] In an embodiment of the present application, a decoder performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain the i-th detection result, and then can obtain the i+1-th node in the i+1-th layer corresponding to the coding tree unit according to the i-th detection result.
[0052] It should be noted that in the embodiment of the present application, after the decoder performs the detection process to obtain the i-th detection result, the i-th detection result may include four possibilities: there is data and splitting, there is no data and splitting, there is data and no splitting, and there is no data and no splitting, so the decoder can further process the i-th node accordingly according to different detection results.
[0053] Furthermore, in an embodiment of the present application, if the i-th detection result is that there is data and it needs to be split, the decoder can obtain the i-th coding unit data of the i-th layer, and then perform a splitting process on the i-th node to obtain the i+1-th node of the i+1-th layer corresponding to the coding tree unit.
[0054] It should be noted that in an embodiment of the present application, after the decoder performs a detection process on the i-th node, if it determines that the i-th node has data and can continue to perform a split process on the i-th node, the decoder first needs to obtain the corresponding data, i.e., obtain the i-th coding unit data corresponding to the i-th node in the coding tree unit. Here, since there may be at least one i-th node in the i-th layer corresponding to the coding tree unit, the decoder may sequentially perform a detection process on all i-th nodes in the i-th layer, and then obtain data for the i-th node for which the detection result indicates that data is present, thereby obtaining the i-th coding unit data corresponding to the i-th node. Furthermore, after obtaining the corresponding i-th coding unit data, the decoder may continue to perform a split process on the i-th node to obtain a node in the next layer of the i-th layer, i.e., obtain the i+1-th node in the i+1-th layer corresponding to the coding tree unit.
[0055] Furthermore, in an embodiment of the present application, if the i-th detection result is that there is no data and that segmentation is required, a segmentation process is performed on the i-th node to obtain the i+1-th node in the i+1-th layer corresponding to the coding tree unit. In an embodiment of the present application, after the decoder performs a detection process on the i-th node in the i-th layer corresponding to the coding tree unit to obtain the i-th detection result, if the i-th detection result is that there is no data and that segmentation is required, the decoder does not need to perform data acquisition and directly performs a segmentation process to obtain the node in the next layer, i.e., the i+1-th node in the i+1-th layer.
[0056] Furthermore, in the embodiments of the present application, since there can be at least one i-th node in the i-th layer corresponding to a coding tree unit, the decoder sequentially performs a detection process on all i-th nodes in the i-th layer, and then performs a splitting process on the i-th nodes for which the detection result indicates that splitting can continue, to obtain the i+1-th node in the i+1-th layer corresponding to each i-th node; that is, for each i-th node that can continue to be split, the decoder can obtain at least one i+1-th node by splitting them all.
[0057] As can be seen, in the present embodiment, as long as the i-th node can be split, the decoder needs to perform the splitting process on the i-th node to obtain the i+1-th node of the i+1-th layer, regardless of whether the i-th node has data or not.
[0058] Furthermore, in the embodiment of the present application, if the ith detection result indicates that data exists and no division is required, the ith coding unit data of the ith layer is obtained, and the analysis process of the ith node is terminated.
[0059] It should be noted that in an embodiment of the present application, if the decoder performs a detection process on the i-th node and determines that the i-th node contains data and cannot continue to perform the split process on the i-th node, the decoder must first obtain the corresponding data, i.e., obtain the i-th coding unit data corresponding to the i-th node in the coding tree unit. Here, since the i-th layer corresponding to the coding tree unit may have at least one i-th node, the decoder may sequentially perform the detection process on all i-th nodes in the i-th layer, and then obtain data for the i-th node for which the detection result indicates that data is present, thereby obtaining the i-th coding unit data corresponding to the i-th node. Furthermore, since the i-th node cannot continue to be split, the decoder may terminate the parsing process on the i-th node after obtaining the corresponding i-th coding unit data.
[0060] Furthermore, in the embodiment of the present application, if the i-th detection result is that there is no data and no splitting is required, the decoder does not need to perform data acquisition, and does not need to perform splitting processing, and directly ends the analysis processing of the i-th node.
[0061] In an embodiment of the present application, the encoder determines whether data exists in each rectangular region generated by the division, and if data exists, it can obtain coding unit data corresponding to the node, for example, for the i-th node with data, it can obtain the i-th coding unit data of the i-th node, and it should be noted that in an embodiment of the present application, the i-th coding unit data may include identifier information, prediction information, transform coefficients, etc. Furthermore, the decoder can obtain corresponding i-th background pixel data according to the i-th coding unit data.
[0062] In step 105, the detection process continues to be performed on the i+1th node, traversing all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained.
[0063] In an embodiment of the present application, after the decoder obtains the i+1th node of the i+1th layer corresponding to the coding tree unit according to the i-th detection result, it can continue to perform the detection process on the i+1th node, and then traverse all nodes corresponding to the coding tree unit, that is, it can perform the detection process on all nodes of the coding tree unit until the coding tree unit corresponds to all coding units.
[0064] It should be noted that in the embodiment of the present application, after obtaining the i+1th node of the i+1th layer by splitting, the decoder can continue to perform the detection process on the i+1th node according to the method of the above step 101 to the above step 104, to obtain the i+1th coding unit data corresponding to the i+1th node and the i+2th node of the i+2th layer, and after performing the recursive process according to the method of the above step 101 to the above step 104, can obtain all the coding unit data corresponding to the coding tree unit.
[0065] Furthermore, in an embodiment of the present application, for any node in one layer of a coding tree unit, the decoder can perform a recursive process according to the method of the above steps 101 to 104. That is, for any node, the decoder first performs a detection process according to the state parameters and the mark parameters, then performs data acquisition for the node that has data and will be split to obtain corresponding coding unit data, continues to perform splitting to obtain a node in the next layer, directly performs splitting for the node that has no data and will be split to obtain a node in the next layer, performs data acquisition for the node that has data and will not be split to obtain corresponding coding unit data, and terminates the decoding process, and directly terminates the decoding process for the node that has no data and will not be split. In summary, the decoder can obtain all coding unit data corresponding to the coding tree unit after performing a layer-by-layer recursive process for the coding tree unit according to the method of the above steps 101 to 104.
[0066] In step 106, a decoded image corresponding to the bitstream data is generated according to all the nodes and all the coding unit data.
[0067] In an embodiment of the present application, after obtaining all coding unit data corresponding to a coding tree unit, the decoder can generate a decoded image corresponding to the bitstream data according to all nodes and all coding unit data.
[0068] It should be noted that in the embodiments of the present application, when the decoder generates a decoded image corresponding to the bitstream data according to all nodes and all coding unit data, it can first perform a decoding process on all coding unit data to obtain all pixel data corresponding to the coding tree units, and then generate a decoded image corresponding to the bitstream data according to all pixel data.
[0069] Furthermore, in an embodiment of the present application, when the decoder performs a decoding process on all coding unit data to obtain all pixel data corresponding to a coding tree unit, if there is data in the i-th node and no division is required, the decoder decodes the i-th coding unit data to obtain the i-th pixel data; if there is data in the i-th node and division is required, the decoder decodes the i-th coding unit data to obtain the i-th background pixel data, decodes the i+1-th coding unit data to obtain the i-th refresh pixel data, and obtains the i-th pixel data, and can traverse all nodes until all pixel data is obtained.
[0070] Furthermore, in the embodiment of the present application, when the decoder generates a decoded image corresponding to the bitstream data according to all pixel data, if there is data in the i-th node and it is split, it will perform a refresh process on the i-th background pixel data according to the i-th refresh pixel data to obtain refreshed pixel data, that is, obtain the i-th pixel data, and continue to traverse all nodes until it obtains the decoded image.
[0071] That is, if the i-th node cannot continue to be divided, i.e., if the i-th node is a leaf node in the coding tree unit, the i-th pixel data obtained by the decoder through decoding is pixel data corresponding to the i-th coding unit; if the i-th node can continue to be divided, i.e., if the i-th node is not a leaf node in the coding tree unit, the decoder obtains pixel data corresponding to the i+1-th coding unit of the i+1-th node, and then refreshes the corresponding area of the pixel data corresponding to the i-th coding unit with the pixel data corresponding to the i+1-th coding unit of the i+1-th node to obtain pixel data corresponding to the i-th coding unit.
[0072] It should be noted that in an embodiment of the present application, when the decoder performs a decoding process on all coding unit data to obtain all pixel data corresponding to a coding tree unit, it can also first decode the data of the next layer and then decode the data of the previous layer. Specifically, when the decoder performs a decoding process on all coding unit data to obtain all pixel data corresponding to a coding tree unit, if there is data in the i-th node and it is to be split, the decoder can obtain the (i+1)-th coding unit data, decode the (i+1)-th coding unit data to obtain the i-th refresh pixel data corresponding to the i-th node, then decode the i-th coding unit data to obtain the i-th background pixel data, and then set the i-th background pixel data as the background of the i-th refresh pixel data to obtain the i-th coding unit, and the encoder can traverse all nodes until all pixel data is obtained.
[0073] It should be noted that in the present embodiment, if the ith detection result is that there is no data, the ith background pixel data will remain idle.
[0074] It should be noted that in an embodiment of the present application, when a decoder generates a decoded image according to all coding unit data, it can first perform a decoding process on all coding unit data to obtain all pixel data corresponding to a coding tree unit; if there is an overlapping area between the background pixel data corresponding to a background coding unit and the refresh pixel data corresponding to a refresh coding unit among all pixel data, the decoder can switch the area pixel data corresponding to the background coding unit according to the pixel data of the refresh coding unit, that is, the background coding unit can be refreshed by the refresh coding unit.
[0075] That is, in an embodiment of the present application, when a decoder generates a decoded image corresponding to bitstream data according to all coding units, if there is an overlapping area between pixel data corresponding to the m-th coding unit and pixel data corresponding to the n-th coding unit among all coding units, the decoder may generate a decoded image by performing a refresh process on the pixel data corresponding to the m-th coding unit according to the pixel data corresponding to the n-th coding unit, where m is an integer greater than 0 and n is an integer greater than m, i.e., the n-th coding unit is a refresh coding unit of the m-th coding unit.
[0076] In the prior art, when an encoder performs video image coding, the coding units do not overlap, so any small image information must be divided into fine coding units. Correspondingly, when a decoder performs video image decoding, there are no cases where the coding units obtained by decoding have overlapping regions. In contrast, in the image decoding method according to embodiments of the present application, the encoder supports overlapping of coding units when performing image coding, so that fine division of graphics can be avoided. Correspondingly, when a decoder performs video image decoding, if there is an overlapping region between background pixel data corresponding to a background coding unit and refresh pixel data corresponding to a refresh coding unit among all pixel data, the decoder can switch the pixel data of the corresponding region of the background coding unit according to the pixel data of the refresh coding unit, i.e., refresh the background coding unit with the refresh coding unit.
[0077] Furthermore, in the embodiment of the present application, in the decoding process, the data of the background coding unit, such as prediction information, identifier information and transform coefficients, can be refreshed and replaced by refresh coding unit data.
[0078] That is, in the embodiment of the present application, the decoder uses all current latest data in the decoding process regardless of the pixel data, prediction information, identifier information and transform coefficients in the buffer, where the latest data may be pixel data corresponding to the coding tree unit background coding unit, may be data of the background coding unit that is not covered by the refresh, or may be data switched by the decoded image of the refresh coding unit.
[0079] It should be noted that in the present embodiment, the encoder and decoder allow area overlap of coding units during prediction and / or transformation, and accordingly, one coding tree unit may have a corresponding background prediction unit and a refresh prediction unit, and a corresponding background transformation unit and a refresh transformation unit.
[0080] Furthermore, in the present embodiment, during the decoding process, the decoder can refresh the information used for subsequent block prediction sooner or later.
[0081] Based on the image decoding method proposed by the above steps 101 to 106, Figure 9 is an exemplary flowchart 1 of an image decoding method according to an embodiment of the present application. As shown in Figure 9, for any node in a coding tree unit that can continue to be split, the decoder can first perform an analysis process and determine whether there is data in the node according to the state parameters and mark parameters obtained by the analysis process. If the detection result is that there is data, the decoder can obtain the data and obtain corresponding identifier information, prediction information and transform coefficients to obtain the corresponding coding unit through a decoding process, and then enter the splitting process. If the detection result is that there is no data, the decoder can directly enter the splitting process. In the splitting process, the decoder first determines whether the node can perform quadtree splitting. If it determines that quadtree splitting is not possible, the decoder determines whether the node can perform binary tree splitting or ternary tree splitting. If quadtree splitting is possible, the decoder performs quadtree splitting on the node, and then determines whether quadtree splitting is possible for each split node. If possible, it performs recursive decoding on each node. If not possible, it can continue to determine whether each split node can perform binary tree splitting or ternary tree splitting. If it determines that binary tree splitting or ternary tree splitting is possible, it needs to determine the split direction of the binary tree splitting or ternary tree splitting, that is, whether it is vertical splitting or horizontal splitting, and finally performs recursive decoding on the split nodes. Finally, all the coding unit data corresponding to the coding tree unit can be obtained.
[0082] It should be noted that in the embodiments of the present application, when the data is on the upper left side corresponding to a coding tree unit, the decoder can first perform recursive decoding on the coding unit on the upper left side and then analyze the data; when the data is on the left side corresponding to a coding tree unit, the decoder can first perform recursive decoding on the coding unit on the left side and then analyze the data; when the data is on the upper side corresponding to a coding tree unit, the decoder can first perform recursive decoding on the coding unit on the upper side and then analyze the data.
[0083] Furthermore, in an embodiment of the present application, when the decoder performs image decoding, a process for determining whether there is data for a node can be further arranged in each branch after performing split discriminant analysis for the node, so as to effectively save the number of bits for signal transmission. Based on the above Fig. 9, Fig. 10 is an exemplary flowchart 2 of an image decoding method according to an embodiment of the present application. As shown in Fig. 10, for a node in any coding tree unit that can continue to be split, the decoder can first determine whether the node can perform quadtree splitting. If it determines that quadtree splitting cannot be performed, the decoder can continue to determine whether the node can perform binary tree splitting or ternary tree splitting. If quadtree partitioning is possible, after performing quadtree partitioning on the node, further determine whether quadtree partitioning can be performed on each divided node, and if so, perform recursive decoding on each node to obtain the partition identifier of the branch on the node; if not, continue to determine whether each divided node performs binary tree partitioning or ternary tree partitioning to obtain the partition identifier of the branch on the node, and after analyzing to obtain the partition identifier of each branch of the node, the decoder performs a parsing process on each branch, and then can determine whether there is data in the node according to the state parameters and mark parameters obtained by the parsing process. If there is data, the decoder can obtain the data and obtain corresponding identifier information, prediction information and transform coefficients to obtain the coding unit corresponding to the node, and perform recursive decoding on each divided branch; if there is no data, the decoder can directly perform recursive decoding on each divided branch. Finally, all the coding unit data corresponding to the coding tree unit can be obtained.
[0084] An embodiment of the present application provides an image decoding method, in which a decoder receives bitstream data, analyzes the bitstream data to obtain a coding tree unit corresponding to the bitstream data, analyzes the i-th node in the i-th layer corresponding to the coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh, performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result, obtains the i+1th node in the i+1th layer corresponding to the coding tree unit according to the i-th detection result, continues to perform the detection process on the i+1th node, traverses all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and generates a decoded image corresponding to the bitstream data according to all nodes and all coding unit data. As can be seen from this, in the embodiment of the present application, in the process of decoding an image in a video, bitstream data is received and parsed to obtain a coding tree unit, and then an analysis process is performed on the node of each layer corresponding to the coding tree unit to obtain the state parameters and mark parameters of the layer node, and then a detection process is performed on the node according to the state parameters and mark parameters, and then a decoding process is performed on the node with data to obtain all coding units corresponding to the coding tree unit and obtain the corresponding decoded image.Here, when coding, in order to support overlapping division of coding units and coding units, if all coding units obtained by decoding a node of data have at least two coding units whose areas are overlapped, the decoder can perform a refresh process on the image information corresponding to the background coding unit according to the image information corresponding to the refresh coding unit, thereby avoiding excessive division of the video image, reducing unnecessary header information, avoiding dispersion and repeated display of data with similar characteristics in the same area, and further improving coding efficiency.
[0085] In another embodiment of the present application, based on the above embodiment, for the above step 102, the method for the decoder to determine whether there is data in the i-th node according to the i-th state parameter and the i-th mark parameter may include the following steps:
[0086] In step 103a, a leaf parameter corresponding to the inode is determined, where the leaf parameter is used to determine whether the inode continues to split.
[0087] In an embodiment of the present application, the decoder can first determine the leaf parameters of the i-th node, and specifically, the leaf parameters can be used to determine whether the i-th node can continue to be split, that is, the decoder first determines whether the i-th node is a leaf of a coding tree unit.
[0088] It should be noted that in the present embodiment, if the i-th node is a leaf, i.e., if the i-th node has no branches, the decoder can directly perform the normal decoding process without needing to perform a refresh operation on the i-th node.
[0089] It should be noted that in the present embodiment, if the i-th node is not a leaf, i.e., if there is a branch at the i-th node, the decoder can further determine whether to perform a refresh operation on the i-th node.
[0090] Furthermore, in embodiments of the present application, if the leaf parameter is assigned a value of 0, it may indicate a non-leaf node, and if the leaf parameter is assigned a value of 1, it may indicate a leaf node.
[0091] In step 103b, obtain the i-th detection result according to the leaf parameter, the i-th state parameter and the i-th mark parameter.
[0092] In the embodiment of the present application, after determining the leaf parameter of the i-th node, the decoder can obtain the i-th detection result according to the leaf parameter, the i-th state parameter and the i-th mark parameter.
[0093] In the embodiment of the present application, in the specific syntax transmission of the video codec, bAncFlag, Refresh_CU_enable_flag[x0][y0] and Refresh_CU_flag[x0][y0] may not be transmitted, and at the same time, whether Refresh_CU_flag[x0][y0] and Refresh_CU_flag[x0][y0] exist or not always presupposes whether the current node is a leaf node, the values of bRfrsEnblFlag and bAncFlag or not, so it should be noted that the decoder needs to further infer and determine whether there is data in the i-th node according to the leaf parameter, the i-th state parameter and the i-th mark parameter.
[0094] In the present embodiment, furthermore, before the decoder continues to perform the parsing process, the segmentation process and / or the decoding process for the i+1th node, it needs to first transmit the i+1th state parameter according to the leaf parameter, the i-th state parameter and the i-th mark parameter.
[0095] It should be noted that in the present embodiment, the (i+1)th state parameter can be used to determine the default state of the (i+1)th node. Here, the (i+1)th state parameter can include the (i+1)th subtree default state and the (i+1)th data default state. Specifically, the (i+1)th subtree default state is used to indicate whether the (i+1)th node supports refresh state, and the (i+1)th data default state is used to determine whether the (i+1)th node has source data.
[0096] Furthermore, in an embodiment of the present application, for the i+1th node of a coding tree unit, the i+1th subtree default state can be determined via the subtree default state of the previous layer, i.e., the i+1th subtree default state can be determined according to the i-th subtree default state.
[0097] Furthermore, in an embodiment of the present application, for the i+1th node of a coding tree unit, the i+1th data default state can be determined via the data default state of the previous layer, i.e., the i+1th data default state can be determined according to the i-th data default state.
[0098] In the embodiment of the present application, furthermore, when the decoder transmits the (i+1)th state parameter according to the leaf parameter, the i-th state parameter and the i-th mark parameter, the decoder can first determine whether to perform a state refresh according to the leaf parameter, the i-th state parameter and the i-th mark parameter, and if it is determined that a default state refresh is to be performed, the decoder can perform a refresh process on the i-th state parameter to obtain the i+1st state parameter, and if it is determined that a state refresh is not to be performed, the decoder can determine the i-th state parameter to be the i+1st state parameter.
[0099] Table 1 is an analysis table combining the syntax transmission and state refresh situations of an embodiment of the present application. As shown in Table 1, the decoder can further determine whether there is data in a node according to five parameters, namely, the leaf parameter of a node, the subtree default state indicated by bRfrsEnblFlag, the data default state indicated by bAncFlag, the subtree mark indicated by Refresh_CU_enable_flag[x0][y0], and the data mark indicated by Refresh_CU_flag[x0][y0], thereby determining whether to perform decoding on the node. At the same time, the decoder can further determine the subtree default state and data default state of the node in the next layer through the five parameters of the node. Here, for the first node of the first layer of the coding tree unit, i.e., when i=1, the default value of the first subtree default state is SPSRfrsEnbl, where SPSRfrsEnbl is a mark of whether refresh is supported or not declared in the SPS layer, which may be to perform an enable control decision in the PPS layer, and the default value of the first data default state is 0. [Table 1] Furthermore, based on the above Table 1, if one node of the coding tree unit is not a leaf node, i.e., the leaf parameter is 0, the subtree default state bRfrsEnblFlag is assigned a value of 1, i.e., the subtree supports performing a coding unit refresh process, the data default state bAncFlag is 0, i.e., there is no source data in the node, the subtree mark Refresh_CU_enable_flag[x0][y0] is 0, i.e., there is no coding unit that can be refreshed in the subtree of the node, and the data mark Refresh_CU_flag[x0][y0] is 0. If [y0] is not transmitted, according to the above five parameters, the decoder can determine that there is no data in the node, and therefore decide not to perform decoding processing on the node; and the decoder can further refresh the subtree default state of the next layer according to the subtree default state bRfrsEnblFlag of the node, i.e., the subtree default state transmitted to the next layer can be assigned to 1; at the same time, the decoder can determine not to refresh the data default state of the next layer, i.e., the data default state transmitted to the next layer can still be 0.
[0100] Based on Table 1 above, Figure 11 is a schematic diagram of the state parameters and mark parameters in an embodiment of the present application. As shown in Figure 11, for the first node of the first layer of a coding tree unit, the subtree default state bRfrsEnblFlag of the first node is assigned a value of 1, i.e., the subtree supports performing coding unit refresh processing, and different subtrees of the first node have different support situations. The data default state bAncFlag is 0, i.e., the node has no source data. The subtree mark Refresh_CU_enable_flag[x0][y0] is 1, i.e., the subtree of the first node has coding units that can be refreshed. The data mark Refresh_CU_flag[x0][y0] is 0, i.e., the first node has no data. Because the first node is not a leaf node, i.e., the leaf parameter is 0, the decoder can determine not to perform decoding processing on the first node based on Table 1 above, and at the same time, can determine that the subtree default state of the node to be transmitted to the next layer is 1 and the data default state is 0. As can be seen, for the four second nodes in the second layer of the coding tree unit, the subtree default states are all 1 and the data default states are also all 0.
[0101] The present embodiment provides an image decoding method, a decoder, and a storage medium, in which the decoder receives bitstream data, analyzes the bitstream data to obtain a coding tree unit corresponding to the bitstream data, analyzes the i-th node in the i-th layer corresponding to the coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh, performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result, obtains the i+1th node in the i+1th layer corresponding to the coding tree unit according to the i-th detection result, continues to perform the detection process on the i+1th node, traverses all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and generates a decoded image corresponding to the bitstream data according to all nodes and all coding unit data. As can be seen from this, in the embodiment of the present application, in the process of decoding an image in a video, bitstream data is received and parsed to obtain a coding tree unit, and then an analysis process is performed on the node of each layer corresponding to the coding tree unit to obtain the state parameters and mark parameters of the layer node, and then a detection process is performed on the node according to the state parameters and mark parameters, and then a decoding process is performed on the node with data to obtain all coding units corresponding to the coding tree unit and obtain the corresponding decoded image.Here, when coding, in order to support overlapping division of coding units and coding units, if all coding units obtained by decoding a node of data have at least two coding units whose areas are overlapped, the decoder can perform a refresh process on the image information corresponding to the background coding unit according to the image information corresponding to the refresh coding unit, thereby avoiding excessive division of the video image, reducing unnecessary header information, avoiding dispersion and repeated display of data with similar characteristics in the same area, and further improving coding efficiency.
[0102] Based on the above embodiment, a method in which a decoder performs a splitting process on the i-th node to obtain the i+1-th node of the i+1-th layer corresponding to a coding tree unit may include the following steps:
[0103] In step 201, the i-th division mode corresponding to the i-th node is obtained.
[0104] In the embodiment of the present application, when the decoder splits the i-th node, it can first obtain the i-th split mode corresponding to the i-th node.
[0105] It should be noted that in the embodiment of the present application, the i-th division mode may include one of the division modes QT, QTBT, TT, BT, etc. The i-th division mode may be MTT, where MTT is not a technical solution parallel to QT, BT, and TT, but includes multiple division methods, i.e., is a general term for the coexistence of QT, BT, and TT. Similarly, QTBT is a technical solution parallel to QT and BT, includes multiple division methods, and is a general term for the coexistence of QT and BT.
[0106] In step 202, perform a splitting process on the i-th node according to the i-th splitting mode to obtain the i+1-th node.
[0107] In an embodiment of the present application, after obtaining the ith split mode corresponding to the ith node, the decoder can perform a splitting process on the ith node according to the ith split mode, thereby obtaining the i+1th node.
[0108] It should be noted that in the present embodiment, the decoder performs splitting processing on the i-th node based on the i-th split mode, and every i-th node can be split to obtain at least two leaves, i.e., obtain at least two i+1-th nodes.
[0109] The present embodiment provides an image decoding method, a decoder, and a storage medium, in which the decoder receives bitstream data, analyzes the bitstream data to obtain a coding tree unit corresponding to the bitstream data, analyzes the i-th node in the i-th layer corresponding to the coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh, performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result, obtains the i+1th node in the i+1th layer corresponding to the coding tree unit according to the i-th detection result, continues to perform the detection process on the i+1th node, traverses all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and generates a decoded image corresponding to the bitstream data according to all nodes and all coding unit data. As can be seen from this, in the embodiment of the present application, in the process of decoding an image in a video, bitstream data is received and parsed to obtain a coding tree unit, and then an analysis process is performed on the node of each layer corresponding to the coding tree unit to obtain the state parameters and mark parameters of the layer node, and then a detection process is performed on the node according to the state parameters and mark parameters, and then a decoding process is performed on the node with data to obtain all coding units corresponding to the coding tree unit and obtain the corresponding decoded image.Here, when coding, in order to support overlapping division of coding units and coding units, if all coding units obtained by decoding a node of data have at least two coding units whose areas are overlapped, the decoder can perform a refresh process on the image information corresponding to the background coding unit according to the image information corresponding to the refresh coding unit, thereby avoiding excessive division of the video image, reducing unnecessary header information, avoiding dispersion and repeated display of data with similar characteristics in the same area, and further improving coding efficiency.
[0110] In yet another embodiment of the present application, based on the above embodiment, a segmentation process when a decoder performs image decoding according to the image decoding method of the above step 101 to the above step 106 will be exemplarily described.
[0111] FIG. 12 is a schematic diagram 1 of the splitting process, and FIG. 13 is a schematic diagram 2 of the splitting process. As shown in FIGS. 12 and 13, after the coding tree unit performs QT splitting on the first node A11 that has no data, the obtained upper-left coding block A21, upper-right coding block A22, lower-left coding block A23, and lower-right coding block A24 all have data. That is, the four second nodes in the second layer of the coding tree unit all have data. A23 can then be further split, so the encoder can perform QT splitting on A23 to obtain four third nodes in the third layer, where all four third nodes have no data. One third node can then be further split by vertical BT splitting. The two fourth nodes in the fourth layer that are obtained after splitting are A41 and A42, respectively. Here, A41 and A42 cannot be split, and A42 has data. As can be seen, the image decoding method of the present application only needs to perform decoding processing on A21, A22, A23, A24 and A42 that have data to obtain the corresponding coding units, where A42 and A23 have an overlapping area, so the decoder can refresh the coding unit corresponding to A23 according to the coding unit corresponding to A42, and finally obtain the decoded image corresponding to the coding tree.
[0112] FIG. 14 is a schematic diagram 3 of the splitting process, and FIG. 15 is a schematic diagram 4 of the splitting process. As shown in FIGS. 14 and 15, there is data in the first node of the first layer of the coding tree unit. After performing QT splitting on the first node B11, the upper left coding block B21, the upper right coding block B22, the lower left coding block B23, and the lower right coding block B24 are obtained. Among these, B23 has data. Since B23 can be further split, the encoder can perform QT splitting on B23 to obtain four third nodes of the third layer. Here, all four third nodes have no data, and one third node can be further split by vertical BT splitting. After splitting, two fourth nodes of the fourth layer are obtained, B41 and B42, respectively. Here, B41 and B42 cannot be further split, and B42 has data. As can be seen from this, the image decoding method of the present application only needs to perform decoding processing on B11, B23, and B42, which have data, to obtain the corresponding coding units. Here, since there is an overlapping area between B23 and B11, and there is an overlapping area between B23 and B42, the decoder can refresh the coding unit corresponding to B11 according to the coding unit corresponding to B23 to obtain the refreshed coding unit corresponding to B23, and then refresh the refreshed coding unit corresponding to B23 according to the coding unit corresponding to B42, and finally obtain the decoded image corresponding to the coding tree.
[0113] FIG. 16 is a schematic diagram 5 of the division process, and FIG. 17 is a schematic diagram 6 of the division process. As shown in FIGS. 16 and 17, there is data in the first node of the first layer of the coding tree unit. After performing QT division on the first node C11, the upper left coding block C21, the upper right coding block C22, the lower left coding block C23, and the lower right coding block C24 obtained all have no data. Therefore, C21 and C23 can further perform division processing, so the encoder can select C22 and C24. By performing QT decomposition on C23, eight third nodes in the third layer can be obtained, including four third nodes corresponding to C22 and four third nodes corresponding to C23, where all eight third nodes do not have data, and two of the third nodes can be further subjected to vertical CT decomposition, where four fourth nodes in the fourth layer obtained after decomposition are C41, C42, C43, and C44, respectively, where C41, C42, C43, and C44 cannot be further decomposed, and C41 and C44 have data. As can be seen from this, the image decoding method of the present application only needs to perform decoding processing on C11, C41, and C44 that have data to obtain the corresponding coding units. Here, since C41 and C44 each have overlapping areas with C11, the decoder can refresh the coding unit corresponding to C11 according to the coding unit corresponding to C41, and at the same time, refresh the coding unit corresponding to C11 according to the coding unit corresponding to C44, and finally obtain the decoded image corresponding to the coding tree.
[0114] The present embodiment provides an image decoding method, a decoder, and a storage medium, in which the decoder receives bitstream data, analyzes the bitstream data to obtain a coding tree unit corresponding to the bitstream data, analyzes the i-th node in the i-th layer corresponding to the coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh, performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result, obtains the i+1th node in the i+1th layer corresponding to the coding tree unit according to the i-th detection result, continues to perform the detection process on the i+1th node, traverses all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and generates a decoded image corresponding to the bitstream data according to all nodes and all coding unit data. As can be seen from this, in the embodiment of the present application, in the process of decoding an image in a video, bitstream data is received and parsed to obtain a coding tree unit, and then an analysis process is performed on the node of each layer corresponding to the coding tree unit to obtain the state parameters and mark parameters of the layer node, and then a detection process is performed on the node according to the state parameters and mark parameters, and then a decoding process is performed on the node with data to obtain all coding units corresponding to the coding tree unit and obtain the corresponding decoded image.Here, when coding, in order to support overlapping division of coding units and coding units, if all coding units obtained by decoding a node of data have at least two coding units whose areas are overlapped, the decoder can perform a refresh process on the image information corresponding to the background coding unit according to the image information corresponding to the refresh coding unit, thereby avoiding excessive division of the video image, reducing unnecessary header information, avoiding dispersion and repeated display of data with similar characteristics in the same area, and further improving coding efficiency.
[0115] In another embodiment of the present application, an image decoding method according to the above embodiment is proposed based on the encoder supporting overlapping between coding units when performing image coding, where the encoder supports overlapping between coding units when coding, and can avoid fine division of graphics; correspondingly, when the decoder performs video image decoding, if there is an overlapping area between the background pixel data corresponding to the background coding unit and the refresh pixel data corresponding to the refresh coding unit among all pixel data, the decoder can switch the corresponding area pixel data of the background coding unit according to the pixel data of the refresh coding unit, that is, the background coding unit can be refreshed by the refresh coding unit.
[0116] In summary, FIG. 17 is a schematic diagram of an image coding method according to an embodiment of the present invention, and as shown in FIG. 17, the method in which an encoder performs image coding may include the following steps.
[0117] In step 301, the current coding picture is divided to obtain a coding tree unit corresponding to the current coding picture.
[0118] In an embodiment of the present application, the encoder may first divide the current coding picture to obtain the coding tree unit corresponding to the current coding picture.
[0119] Furthermore, in an embodiment of the present application, when an encoder performs video coding, it performs frame-by-frame coding for images of multiple frames in a video. At any instant, the image of one frame being coded can be referred to as a current coding image. When an encoder codes a current coding image in a video, it must first divide the current coding image into coding tree units of the same size. For example, the encoder can divide the current coding image to obtain coding tree units of the same size, 64x64 pixels, i.e., obtain coding tree units composed of 64x64 pixel points.
[0120] It should be noted that in the present embodiment, the encoder can perform overlap partitioning on the current coding picture. Specifically, the encoder can perform overlap partitioning on the current coding picture through a multi-type tree partitioning technique.
[0121] It should be noted that in the present embodiment, the encoder can be set to a preset refresh coding mode and a normal coding mode. Here, the normal coding mode is a coding mode that generally does not allow overlap between coding tree units and coding tree units, and also does not allow overlap between coding units and coding tree units. In contrast, the preset refresh coding mode is a coding mode that allows overlap between coding tree units. That is, regardless of the preset refresh coding mode or the normal coding mode, there is no overlap between coding tree units and coding tree units.
[0122] Furthermore, in an embodiment of the present application, when performing video coding, an encoder can select whether to start a preset refresh coding mode or a normal coding mode. From the coding side, the preset refresh coding mode can be selected through existing methods and rate distortion optimization (RDO), and different layers can be compared and judged. In the implementation process, the number of supported refresh layers, regions, etc. can also be flexibly selected.
[0123] Furthermore, in an embodiment of the present application, before dividing the current coding image to obtain the coding tree unit corresponding to the current coding image, i.e., before step 401, the encoder may first switch the coding mode to a preset refresh coding mode.
[0124] It should be noted that in an embodiment of the present application, when the encoder divides the current coding image, it can perform the division of the coding tree units according to the rearrangement of the raster order, and after the encoder division, multiple coding tree units can be obtained.
[0125] Furthermore, in an embodiment of the present application, after the current coding image is divided into coding tree units, it can be further divided using MTT technology or other division techniques, and finally coded using the coding units as units.
[0126] In step 302, continue to divide the coding tree unit to obtain a background coding unit and a refresh coding unit corresponding to the coding tree unit, where the refresh coding unit is used to cover part of the area of the background coding unit.
[0127] In an embodiment of the present application, after dividing a current coding image to obtain a coding tree unit corresponding to the current coding image, the encoder may continue to divide the coding tree unit to obtain a background coding unit and a refresh coding unit corresponding to the coding tree unit, where the background coding unit and the refresh coding unit are both coding units obtained by further dividing the coding tree unit and used for image coding.
[0128] It should be noted that in the present embodiment, the refresh coding unit can be used to cover part of the area of the background coding unit.
[0129] Furthermore, in an embodiment of the present application, after obtaining a coding tree unit, the encoder can continue to divide the coding tree unit according to a preset refresh coding mode, thereby obtaining a background coding unit and a refresh coding unit corresponding to the coding tree unit. Specifically, the encoder can first extract pixel information within the coding tree unit, and then divide the coding tree unit according to the pixel information, thereby dividing the coding tree unit into a background coding unit and a refresh coding unit. That is, the encoder can further divide the coding tree unit into a background coding unit and a refresh coding unit according to the pixel information within the coding tree unit, thereby performing image coding according to the background coding unit and the refresh coding unit. Here, a portion of the area of the background coding unit can be covered by the refresh coding unit and refreshed.
[0130] 18 is a schematic diagram 1 of no-overlap partitioning, and FIG. 19 is a schematic diagram 2 of no-overlap partitioning. As shown in FIGS. 18 and 19, according to existing video coding schemes, for a small region whose content differs from other regions, such as region a, where the content differs from other regions, the encoder does not allow the coding units to overlap when dividing the coding tree units. Therefore, the encoder must finely divide the coding tree units according to the scheme of FIG. 18 or 19, thereby achieving good video coding results. FIG. 20 is a schematic diagram 1 of overlap partitioning, and FIG. 21 is a schematic diagram 2 of overlap partitioning. As shown in FIGS. 20 and 21, for the same region a, the encoder allows the coding units to overlap when dividing the coding tree units. Specifically, the encoder divides the coding tree units into refresh coding units to cover and switch the background coding units, and uses the refresh coding units to cover and switch part of the region of the background coding units. This avoids overly fine block division and effectively reduces the amount of header information.
[0131] Furthermore, in the embodiment of the present application, pixel domain data is transformed into the frequency domain through a discrete cosine transform (DCT) and a discrete sine transform (DST), and then quantized and coded for transmission. For example, in a current image frame, a flat image area with little pixel information is mainly composed of low-frequency components, so the transformed energy of the flat image area is all concentrated in the upper left corner. That is, when performing image coding and transmission, except for a few values in the upper left corner, the values in other areas are basically zero. In this way, only these few values can be transmitted during transmission, that is, the pixel data of all areas can be represented. Correspondingly, if n pieces of data are required to code and transmit the flat image area, dividing the flat image area into four sub-areas and then performing coding and transmission may require 4n pieces of non-zero data to represent the areas, which is equivalent to repeatedly representing the same information.
[0132] Furthermore, in the present embodiment, both MTT splitting and QTBT splitting are to first perform QT splitting and then perform other types of splitting at each leaf node of the QT.
[0133] Furthermore, in an embodiment of the present application, for background coding units and refresh coding units obtained by dividing a coding tree unit, the encoder allows one background coding unit to be refreshed by multiple refresh coding units, and also allows a refresh coding unit to be refreshed by a refresh coding unit of a next layer as a background coding unit. That is, in an embodiment of the present application, the preset refresh coding mode can allow multi-region refresh and multi-layer refresh.
[0134] It should be noted that in an embodiment of the present application, the method by which the encoder divides a coding tree unit to obtain a background coding unit and a refresh coding unit corresponding to the coding tree unit may specifically include the following steps:
[0135] In step 302a, the coding tree unit is divided to obtain a j-th background coding unit and a j-th refresh coding unit corresponding to a j-th layer, where j is an integer greater than 0.
[0136] In an embodiment of the present application, the encoder divides the current coding image to obtain a coding tree unit corresponding to the current coding image, and then divides the coding tree unit according to the MTT, thereby obtaining the jth background coding unit and the jth refresh coding unit corresponding to the jth layer, where j is an integer greater than 0.
[0137] It should be noted that in the present embodiment, the preset refresh coding mode can allow multi-layer refresh, so that the encoder can obtain at least one layer of coding units after splitting the coding tree unit.
[0138] In step 302b, the j-th refresh coding unit is divided to obtain the j+1-th background coding unit and the j+1-th refresh coding unit corresponding to the j+1-th layer.
[0139] In an embodiment of the present application, the encoder divides the coding tree unit according to the MTT to obtain the jth background coding unit and the jth refresh coding unit corresponding to the jth layer, and then continues to divide the jth refresh coding unit according to the MTT to obtain the j+1th background coding unit and the j+1th refresh coding unit corresponding to the j+1th layer.
[0140] It should be noted that in an embodiment of the present application, when a coding tree unit has coding units of multiple layers, the j-th refresh coding unit of the j-th layer can continue to split the j+1-th background coding unit and the j+1-th refresh coding unit corresponding to the j+1-th layer. That is, in the background coding unit and refresh coding unit obtained by splitting the coding tree unit, the encoder allows one background coding unit to be refreshed by multiple refresh coding units, and also allows a refresh coding unit to be refreshed by a refresh coding unit of the next layer as a background coding unit.
[0141] In step 303, the coding tree unit is coded according to the background coding unit and the refresh coding unit to generate bitstream data corresponding to the current coding picture.
[0142] In an embodiment of the present application, an encoder can divide a coding tree unit to obtain a background coding unit and a refresh coding unit corresponding to the coding tree unit, and then code a current coding picture according to the background coding unit and the refresh coding unit to generate bitstream data corresponding to the current coding picture.
[0143] Furthermore, in an embodiment of the present application, when coding a coding tree unit according to a background coding unit and a refresh coding unit, the encoder may first code the background coding unit and then code the refresh coding unit, that is, the encoder may code the background coding unit to generate background bitstream data, and then code the refresh coding unit to generate refresh bitstream data.
[0144] It should be noted that in the present embodiment, the bitstream data includes background bitstream data and refresh bitstream data.
[0145] Furthermore, in an embodiment of the present application, the encoder may code a current coding image according to a background coding unit and a refresh coding unit to generate bitstream data corresponding to the current coding image, and then transmit the bitstream data. Specifically, in an embodiment of the present application, when transmitting bitstream data, the encoder may first transmit background bitstream data and then transmit refresh bitstream data. That is, when transmitting bitstream data, the encoder transmits background bitstream data and then transmits refresh bitstream data.
[0146] As can be seen from this, in an embodiment of the present application, when coding a coding tree unit according to a preset refresh coding mode, the encoder can first code and transmit the background coding unit, and then code and transmit the refresh coding unit; correspondingly, when decoding, the encoder first decodes the background coding unit, and then decodes the refresh coding unit.
[0147] Furthermore, the coding method of the present application can be understood as a method capable of realizing irregular shape division, in the process of coding by coding unit, the coding units do not overlap, and the encoder divides the coding tree unit into background coding units and refresh coding units, where a part of the area of the background coding unit is covered by the refresh coding unit, and the uncovered area is an irregular shape, and this part is the area that needs to be displayed by the background coding unit, and the covered area belongs to the virtual enhancement data. Here, since QTBT can be regarded as a special case of MTT, the implementation of the proposed method is similar after introducing MTT into VVC.
[0148] Furthermore, in embodiments of the present application, the encoder and decoder allow area overlap of coding units during prediction and / or transformation, and correspondingly, one coding tree unit may have a corresponding background prediction unit and a refresh prediction unit, and a corresponding background transformation unit and a refresh transformation unit.
[0149] Furthermore, in the present embodiment, the encoder can implement an irregular region division method via block subtraction.
[0150] In the image coding method according to the embodiment of the present application, in the process of executing a codec on an image in a video, when the encoder performs coding unit division on the current coding image, it can obtain a background coding unit and a refresh coding unit with a partial overlapping area through a preset refresh coding mode, and then perform coding. Correspondingly, when the decoder decodes the current decoding image according to the preset refresh decoding mode, it can allow the refresh coding unit to refresh a partial area of the background coding unit, thereby avoiding excessive division of the video image, reducing unnecessary header information, and further improving coding efficiency.
[0151] Based on the above embodiment, in yet another embodiment of the present application, Figure 23 is an exemplary structural diagram 1 of the configuration of a decoder according to an embodiment of the present application, and as shown in Figure 23, the decoder 100 according to an embodiment of the present application may include a receiving unit 101, an analyzing unit 102, a detecting unit 103, an acquiring unit 104, a generating unit 105, a signaling unit 106 and an initiating unit 107.
[0152] The receiving unit 101 is configured to receive bitstream data.
[0153] The parsing unit 102 is configured to parse the bitstream data to obtain a coding tree unit corresponding to the bitstream data.
[0154] The analysis unit 102 is further configured to analyze the i-th node of the i-th layer corresponding to the coding tree unit to obtain the i-th state parameter and the i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh.
[0155] The detection unit 103 is configured to perform a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter, and obtain an i-th detection result.
[0156] The obtaining unit 104 is configured to obtain the i+1-th node of the i+1-th layer corresponding to the coding tree unit according to the i-th detection result.
[0157] The detection unit 103 is further configured to continue performing the detection process on the i+1 node and traverse all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained.
[0158] The generating unit 105 is configured to generate a decoded image corresponding to the bitstream data according to all the nodes and all the coding unit data.
[0159] Furthermore, in an embodiment of the present application, the acquisition unit 104 is specifically configured to determine a leaf parameter corresponding to the i node, where the leaf parameter is used to determine whether to continue splitting the i node, and to acquire the i detection result according to the leaf parameter, the i state parameter and the i mark parameter.
[0160] Furthermore, in an embodiment of the present application, the acquisition unit 104 is further specifically configured to: if the i detection result is that there is data and that it should be split, acquire the i-th coding unit data of the i-th layer, perform a splitting process on the i-th node, and acquire the i+1-th node of the i+1-th layer corresponding to the coding tree unit; if the i detection result is that there is no data and that it should be split, perform a splitting process on the i-th node to acquire the i+1-th node of the i+1-th layer corresponding to the coding tree unit; if the i detection result is that there is data and that it should not be split, acquire the i-th coding unit data of the i-th layer and terminate the analysis process of the i-th node; and if the i detection result is that there is no data and that it should not be split, terminate the analysis process of the i-th node.
[0161] Furthermore, in an embodiment of the present application, the generation unit 105 is specifically configured to perform a decoding process on all the coding unit data based on all the nodes to obtain all the pixel data corresponding to the coding tree unit, and generate the decoded image corresponding to the bitstream data according to all the pixel data.
[0162] Furthermore, in an embodiment of the present application, the transmitting unit 106 is configured to transmit the i+1th state parameter according to the leaf parameter, the i state parameter and the i mark parameter before continuing to perform the detection process for the i+1th node.
[0163] Furthermore, in an embodiment of the present application, the transmitting unit 106 is specifically configured to determine whether to perform a state refresh according to the leaf parameter, the i state parameter, and the i mark parameter; if it is determined that a default state refresh is to be performed, perform a refresh process on the i state parameter to obtain the i+1 state parameter; if it is determined that a state refresh is not to be performed, determine the i state parameter to be the i+1 state parameter.
[0164] Furthermore, in an embodiment of the present application, the acquisition unit 104 is specifically configured to acquire an i-th division mode corresponding to the i-th node, and perform a division process on the i-th node according to the i-th division mode to acquire the i+1-th node.
[0165] Furthermore, in an embodiment of the present application, the obtaining unit 104 is further specifically configured to: if there is data in the i-th node and no division is required, decode the i-th coding unit data to obtain the i-th pixel data; if there is data in the i-th node and division is required, decode the i-th coding unit data to obtain the i-th background pixel data, decode the i+1-th coding unit data to obtain the i-th refresh pixel data, and obtain the i-th pixel data; and traverse all the nodes until all the pixel data are obtained.
[0166] Furthermore, in an embodiment of the present application, the acquisition unit 104 is more specifically configured to perform a refresh process on the i background pixel data according to the i refresh pixel data to obtain the i pixel data, and traverse all the nodes until obtaining the decoded image.
[0167] Furthermore, in an embodiment of the present application, the acquiring unit 104 is more specifically configured to: when there is data in the i-th node and it is to be divided, acquire the i+1-th coding unit data, decode the i+1-th coding unit data to acquire the i-th refresh pixel data corresponding to the i-th node, decode the i-th coding unit data to acquire the i-th background pixel data, set the i-th background pixel data as the background of the i-th refresh pixel data, acquire the i-th pixel data, and traverse all the nodes until all the pixel data are acquired.
[0168] Furthermore, in this embodiment, the acquiring unit 104 is more specifically configured to set the i background pixel data to idle if there is no data in the i th node.
[0169] Furthermore, in an embodiment of the present application, the generation unit 105 is more specifically configured to continue performing the detection process on the i+1 node, and traverse all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and then perform a refresh process on the i-th coding unit data according to the i+1-th coding unit data.
[0170] Further, in an embodiment of the present application, the initiation unit 107 is configured to receive bitstream data, analyze the bitstream data, obtain a coding tree unit corresponding to the bitstream data, and then initiate a preset refresh mode, where the preset refresh mode is used to perform overlapping decoding between coding units.
[0171] FIG. 24 is an exemplary structural diagram 2 of a decoder configuration according to an embodiment of the present application. As shown in FIG. 24, the decoder 100 according to an embodiment of the present application further includes a processor 108, a memory 109 that stores executable instructions for the processor 108, a communication interface 110, and a bus 111 configured to connect the processor 108, the memory 109, and the communication interface 110.
[0172] Further, in an embodiment of the present application, the above-mentioned processor 108 is configured to receive bitstream data, parse the bitstream data to obtain a coding tree unit corresponding to the bitstream data, parse the i-th node in the i-th layer corresponding to the coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh, perform a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result, obtain an i+1-th node in the i+1-th layer corresponding to the coding tree unit according to the i-th detection result, continue to perform the detection process on the i+1-th node, traverse all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and generate a decoded image corresponding to the bitstream data according to all the nodes and all the coding unit data.
[0173] In the present embodiment, the processor 108 may be at least one of an application specific integrated circuit (ASIC), a digital signal processor (DSP), a digital signal processing device (DSPD), a programmable logic device (PLD), a field programmable gate array (FPGA), a central processing unit (CPU), a controller, a microcontroller, and a microprocessor. It should be understood that other electronic devices may be used to realize the functions of the processor in different devices, and the present embodiment is not specifically limited. A memory 109 may be connected to the processor 108, where the memory 109 is configured to store executable program code, the program code including computer operating instructions. The memory 109 may include a high-speed RAM memory and may also include non-volatile memory, such as at least two disk memories.
[0174] In the present embodiment, the buzz 111 is configured to connect the communication interface 110, the processor 108 and the memory 109 and the communications between these components.
[0175] In the present embodiment, memory 109 is configured to store instructions and data.
[0176] In practical applications, the memory 109 may be a volatile memory such as a random-access memory (RAM), or may be a non-volatile memory such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD) or a solid-state drive (SSD), or may be a combination of the above types of memory, to provide instructions and data to the processor.
[0177] Furthermore, each functional module in this embodiment may be integrated into one processing unit, each unit may exist physically separately, or two or more units may be integrated into one unit. The integrated units may be implemented in the form of hardware or software functional modules.
[0178] When an integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, in essence or a part that contributes to the prior art, or all or a part of the technical solution, can be embodied in the form of a software product, and the computer software product is stored in a storage medium and includes several instructions for a computer device (which may be a personal computer, a server, a network device, etc.) or a processor to execute all or a part of the steps of the method of this embodiment. The storage medium includes various media that can store program code, such as a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0179] An embodiment of the present application provides a decoder, which receives bitstream data, analyzes the bitstream data to obtain a coding tree unit corresponding to the bitstream data, analyzes the i-th node in the i-th layer corresponding to the coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh, performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result, obtains the i+1th node in the i+1th layer corresponding to the coding tree unit according to the i-th detection result, continues to perform the detection process on the i+1th node, traverses all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and generates a decoded image corresponding to the bitstream data according to all nodes and all coding unit data. As can be seen from this, in the embodiment of the present application, in the process of decoding an image in a video, bitstream data is received and parsed to obtain a coding tree unit, and then an analysis process is performed on the node of each layer corresponding to the coding tree unit to obtain the state parameters and mark parameters of the layer node, and then a detection process is performed on the node according to the state parameters and mark parameters, and then a decoding process is performed on the node with data to obtain all coding units corresponding to the coding tree unit and obtain the corresponding decoded image.Here, when coding, in order to support overlapping division of coding units and coding units, if all coding units obtained by decoding a node of data have at least two coding units whose areas are overlapped, the decoder can perform a refresh process on the image information corresponding to the background coding unit according to the image information corresponding to the refresh coding unit, thereby avoiding excessive division of the video image, reducing unnecessary header information, avoiding dispersion and repeated display of data with similar characteristics in the same area, and further improving coding efficiency.
[0180] The present embodiment provides a computer-readable storage medium and a computer-readable storage medium on which a program is stored, the program realizing the method described in the above embodiment when executed by a processor.
[0181] Specifically, the program instructions corresponding to the image decoding method in this embodiment can be stored in a storage medium such as an optical disk, a hard disk, a U disk, etc. When the program instructions corresponding to one image decoding method in the storage medium are read or executed by an electronic device, receiving bitstream data, and parsing the bitstream data to obtain a coding tree unit corresponding to the bitstream data; Parsing an i-th node of an i-th layer corresponding to a coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh; performing a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result; Obtaining the i+1th node of the i+1th layer corresponding to the coding tree unit according to the i detection result; continuing to perform the detection process on the i+1 node and traversing all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained; generating a decoded image corresponding to the bitstream data according to all the nodes and all the coding unit data.
[0182] Those skilled in the art will appreciate that the present application may be provided as a method, a system, or a computer program product. Therefore, the present application may take the form of a hardware embodiment, a software embodiment, or an embodiment that combines software and hardware. Furthermore, the present application may take the form of a computer program product embodied in one or more computer-usable storage media (including, but not limited to, disk memory, optical memory, etc.) that contain computer-usable program code.
[0183] The present application will be described with reference to exemplary implementation flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present application. It will be understood that each process and / or block of the exemplary implementation flowcharts and / or block diagrams, and combinations of the processes and / or blocks of the exemplary implementation flowcharts and / or block diagrams, can be implemented by computer program instructions. To create a machine, these computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing device, causing the instructions, executed by the processor of the computer or other programmable data processing device, to generate an apparatus for performing the function(s) specified in one or more processes of the exemplary implementation flowcharts and / or one or more blocks of the block diagrams.
[0184] These computer program instructions may be stored in a computer-readable memory that can cause a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory cause an article of manufacture comprising an instruction apparatus that embodies the functions specified in one or more processes of the exemplary implementation flowcharts and / or one or more blocks of the block diagrams.
[0185] These computer program instructions may also be loaded into a computer or other programmable data processing apparatus and cause the computer or other programmable apparatus to perform a series of operational steps to generate a computer-implemented process, whereby the instructions executed on the computer or other programmable apparatus provide steps for implementing the functions specified in one or more processes of the exemplary implementation flowcharts and / or one or more blocks of the block diagrams.
[0186] The above are only preferred embodiments of the present application, and are not intended to limit the protection scope of the present application. [Industrial Applicability]
[0187] The present embodiment provides an image decoding method, a decoder, and a storage medium, in which the decoder receives bitstream data, analyzes the bitstream data to obtain a coding tree unit corresponding to the bitstream data, analyzes the i-th node in the i-th layer corresponding to the coding tree unit to obtain an i-th state parameter and an i-th mark parameter corresponding to the i-th node, where i is an integer greater than 0, the i-th state parameter is used to determine whether the i-th node supports refresh, and the i-th mark parameter is used to determine whether the i-th node enables refresh, performs a detection process on the i-th node according to the i-th state parameter and the i-th mark parameter to obtain an i-th detection result, obtains the i+1th node in the i+1th layer corresponding to the coding tree unit according to the i-th detection result, continues to perform the detection process on the i+1th node, traverses all nodes corresponding to the coding tree unit until all coding unit data corresponding to the coding tree unit is obtained, and generates a decoded image corresponding to the bitstream data according to all nodes and all coding unit data. As can be seen from this, in the embodiment of the present application, in the process of decoding an image in a video, bitstream data is received and parsed to obtain a coding tree unit, and then an analysis process is performed on the node of each layer corresponding to the coding tree unit to obtain the state parameters and mark parameters of the layer node, and then a detection process is performed on the node according to the state parameters and mark parameters, and then a decoding process is performed on the node with data to obtain all coding units corresponding to the coding tree unit and obtain the corresponding decoded image.Here, when coding, in order to support overlapping division of coding units and coding units, if all coding units obtained by decoding a node of data have at least two coding units whose areas are overlapped, the decoder can perform a refresh process on the image information corresponding to the background coding unit according to the image information corresponding to the refresh coding unit, thereby avoiding excessive division of the video image, reducing unnecessary header information, avoiding dispersion and repeated display of data with similar characteristics in the same area, and further improving coding efficiency.
Claims
1. 1. A method for decoding an image, comprising: receiving bitstream data, and parsing the bitstream data to obtain a coding tree unit corresponding to the bitstream data; analyzing a node of a layer corresponding to a coding tree unit to determine a state parameter and a mark parameter corresponding to the node, the state parameter being used to determine whether the node supports refresh, and the mark parameter being used to determine whether the node enables refresh; determining a leaf parameter corresponding to the node, the leaf parameter being used to determine whether to continue splitting the node; obtaining all coding unit data corresponding to the coding tree unit according to the leaf parameter, the state parameter, and the mark parameter; generating a decoded image corresponding to the bitstream data according to the nodes and all the coding unit data.
2. generating a decoded image corresponding to the bitstream data according to the node and all the coding unit data, performing a decoding process on all the coding unit data based on the node to obtain all pixel data corresponding to the coding tree unit; generating the decoded image corresponding to the bitstream data according to all of the pixel data; 2. The image decoding method of claim 1.
3. After receiving the bitstream data and analyzing the bitstream data to obtain a coding tree unit corresponding to the bitstream data, the image decoding method includes: and initiating a preset refresh mode, the preset refresh mode being used to perform overlap decoding between coding units.
2. The image decoding method of claim 1.
4. A decoder comprising a receiving unit, an analyzing unit, a detecting unit and a generating unit, the receiver is configured to receive bitstream data; the parsing unit is configured to parse the bitstream data to obtain a coding tree unit corresponding to the bitstream data; the parser is further configured to parse a node of a layer corresponding to a coding tree unit to determine a state parameter and a mark parameter corresponding to the node, the state parameter being used to determine whether the node supports refresh, and the mark parameter being used to determine whether the node enables refresh; the detection unit is configured to obtain all coding unit data corresponding to the coding tree unit according to a leaf parameter, the state parameter, and the mark parameter; The decoder, wherein the generator is configured to generate a decoded image corresponding to the bitstream data according to the nodes and all of the coding unit data.
5. The generating unit is specifically configured to perform a decoding process on all the coding unit data based on the node to obtain all pixel data corresponding to the coding tree unit, and generate the decoded image corresponding to the bitstream data according to all the pixel data.
5. A decoder according to claim 4.
6. The decoder further comprises a start unit; the initiation unit is configured to receive bitstream data, parse the bitstream data to obtain a coding tree unit corresponding to the bitstream data, and then initiate a preset refresh mode, wherein the preset refresh mode is used to perform overlap decoding between coding units.
5. A decoder according to claim 4.
7. 1. A decoder comprising a processor, a memory for storing executable instructions for the processor, a communications interface, and a bus connecting the processor, the memory, and the communications interface, The decoder, wherein the instructions, when executed by the processor, implement the image decoding method of any one of claims 1 to 5.
8. A computer readable storage medium storing a program, the program causing a processor to execute the image decoding method according to any one of claims 1 to 3.
Citation Information
Patent Citations
Multi-type-tree framework for video coding
US20170208336A1
Method of Video Coding Using Binary Tree Block Partitioning
US20170272750A1
Binary ternary quad tree partitioning for jvet
US20170347128A1
Method and device for encoding and decoding image data
WO2019001006A1
Encoding device, decoding device, encoding method and decoding method
WO2019009314A1