WO2022227082A1 - Procédés de division de bloc, codeurs, décodeurs et support de stockage informatique - Google Patents
Procédés de division de bloc, codeurs, décodeurs et support de stockage informatique Download PDFInfo
- Publication number
- WO2022227082A1 WO2022227082A1 PCT/CN2021/091736 CN2021091736W WO2022227082A1 WO 2022227082 A1 WO2022227082 A1 WO 2022227082A1 CN 2021091736 W CN2021091736 W CN 2021091736W WO 2022227082 A1 WO2022227082 A1 WO 2022227082A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- value
- current block
- division
- video image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
Definitions
- the embodiments of the present application relate to the technical field of video coding and decoding, and in particular, to a block division method, an encoder, a decoder, and a computer storage medium.
- H.265/High Efficiency Video Coding (HEVC) has been unable to meet the needs of the rapid development of video applications.
- JVET Joint Video Exploration Team
- VVC VVC's reference software test platform
- the Quad Tree Quad Tree with nested Multi-type Tree, QTMT
- the prediction and rate-distortion cost calculation of large-size coding blocks may generate a lot of unnecessary overhead, waste computing resources, and increase coding time.
- Embodiments of the present application provide a block division method, an encoder, a decoder, and a computer storage medium, which can reduce coding complexity and further improve coding and decoding efficiency.
- an embodiment of the present application provides a block division method, which is applied to an encoder, and the method includes:
- the current block is encoded according to the block partition parameter.
- an embodiment of the present application provides a block division method, which is applied to a decoder, and the method includes:
- the code stream is parsed to determine the predicted value of the current block
- the code stream is parsed to determine the residual value of the current block
- the reconstructed value of the current block is determined.
- an embodiment of the present application provides an encoder, the encoder includes a first determination unit, a block division unit, and an encoding unit; wherein,
- a first determining unit configured to determine the maximum unit size information of the current block based on the texture information of the video image
- a block division unit configured to preprocess the current block according to the maximum unit size information, to determine a division mode of the current block; and to determine a block division parameter of the current block according to the division mode;
- an encoding unit configured to encode the current block according to the block division parameter.
- an embodiment of the present application provides an encoder, where the encoder includes a first memory and a first processor; wherein,
- a first memory for storing a computer program executable on the first processor
- the first processor is configured to execute the method according to the first aspect when running the computer program.
- an embodiment of the present application provides a decoder, where the decoder includes a parsing unit and a second determining unit; wherein,
- a parsing unit configured to parse the code stream, and determine the block division parameters of the current block
- the parsing unit is further configured to parse the code stream based on the block division parameter to determine the predicted value of the current block; and based on the block division parameter, parse the code stream to determine the residual value of the current block;
- the second determination unit is configured to determine the reconstruction value of the current block based on the predicted value and the residual value.
- an embodiment of the present application provides a decoder, the decoder includes a second memory and a second processor; wherein,
- a second memory for storing a computer program executable on the second processor
- the second processor is configured to execute the method according to the second aspect when running the computer program.
- an embodiment of the present application provides a computer storage medium, where the computer storage medium stores a computer program, and when the computer program is executed, the method described in the first aspect or the method described in the second aspect is implemented.
- the embodiments of the present application provide a block division method, an encoder, a decoder, and a computer storage medium.
- the maximum unit size information of the current block is determined;
- the block is preprocessed to determine the division mode of the current block;
- the block division parameter of the current block is determined according to the division mode; and
- the current block is encoded according to the block division parameter.
- the code stream is parsed to determine the block division parameters of the current block; based on the block division parameters, the code stream is parsed to determine the predicted value of the current block; based on the block division parameters, the code stream is parsed to determine the residual value of the current block; And, based on the predicted value and the residual value, the reconstructed value of the current block is determined.
- the maximum unit size information of the current block is determined according to the texture information of the video image, that is, the technical solution of the present application designs an adaptive image texture mechanism for the maximum unit size, which can directly skip the prediction and transformation process of large-size blocks.
- the calculation of leads to an exponential decrease in the total number of recursion of block division, thus significantly reducing the coding complexity and reducing the coding time while keeping the performance gain basically unchanged, thereby improving the coding and decoding efficiency.
- FIG. 1 is a schematic structural diagram of a multi-type tree provided by the related art
- FIG. 2 is a schematic flowchart of a block division provided by the related art
- FIG. 3 is a schematic structural diagram of another block division provided by the related art.
- 4A is a schematic block diagram of the composition of an encoder according to an embodiment of the present application.
- 4B is a schematic block diagram of the composition of a decoder according to an embodiment of the present application.
- FIG. 5 is a schematic flowchart of a block division method provided by an embodiment of the present application.
- FIG. 6 is a schematic flowchart of determining maximum unit size information according to an embodiment of the present application.
- FIG. 7 is a detailed schematic flow chart of determining maximum unit size information according to an embodiment of the present application.
- FIG. 8 is a schematic flowchart of another block division method provided by an embodiment of the present application.
- FIG. 10 is a schematic diagram of a specific hardware structure of an encoder provided by an embodiment of the application.
- FIG. 11 is a schematic diagram of the composition and structure of a decoder provided by an embodiment of the application.
- FIG. 12 is a schematic diagram of a specific hardware structure of a decoder provided by an embodiment of the present application.
- a first image component, a second image component, and a third image component are generally used to represent a coding block (Coding Block, CB); wherein, the three image components are a luminance component and a blue chrominance component respectively. and a red chrominance component, specifically, the luminance component is usually represented by the symbol Y, the blue chrominance component is usually represented by the symbol Cb or U, and the red chrominance component is usually represented by the symbol Cr or V; in this way, the video image can use the YCbCr format Representation can also be represented in YUV format.
- CB coding block
- the three image components are a luminance component and a blue chrominance component respectively.
- a red chrominance component specifically, the luminance component is usually represented by the symbol Y, the blue chrominance component is usually represented by the symbol Cb or U, and the red chrominance component is usually represented by the symbol Cr or V; in this way, the video image can use the
- MPEG Moving Picture Experts Group
- JVET Joint Video Experts Team
- VVC Versatile Video Coding
- VVC's reference software test platform VVC Test Model, VTM
- HPM High-Performance Model
- Quad Tree Quad Tree (Quad Tree, QT)
- Quad Tree with nested Multi-type Tree QTMT
- Quantization Parameter (QP) Quantization Parameter
- Coding Unit Coding Unit
- FIG. 1 shows a schematic structural diagram of a multi-type tree provided by the related art.
- the CTU is firstly divided by the quadtree, and then the leaf nodes of the quadtree can be further divided by the MT.
- the flow of CU division is shown in FIG. 2 .
- the CTU/quadtree node first determine whether to perform quadtree division; if the value of the identification information (such as flag) at this time is 1, indicating that quadtree division is performed, then quadtree division can be obtained.
- the quad-leaf node/multi-type tree node can be obtained, and then it is judged again whether to perform multi-type tree division, Until the division obtains a multi-type tree node divided by vertical binary division/multi-type tree node divided by vertical trigeminal division/multi-type tree node divided by horizontal binary division/multi-type tree node divided by horizontal trigeminal division.
- QT nodes can be divided according to the 5 ways shown in Figure 2, and MT nodes can be divided according to the 4 ways shown in Figure 2.
- the results of the five division methods of QT nodes include: quad-tree node, multi-type tree node divided by vertical binary tree, multi-type tree node divided by vertical ternary tree, multi-type tree node divided by horizontal binary tree, multi-type tree node divided by horizontal ternary tree Multi-type tree nodes;
- the results of the four division methods of MT nodes include: multi-type tree nodes divided by vertical binary tree, multi-type tree nodes divided by vertical trigeminal tree, multi-type tree nodes divided by horizontal binary tree, multi-type tree nodes divided by horizontal trigeminal tree tree node;
- FIG. 3 shows a schematic structural diagram of a QTMT block division provided by the related art, which can be regarded as a specific example of a final CTU division manner of VVC.
- the QTMT block division is located in the intra/inter prediction module. According to different block divisions, the corresponding reference blocks are found for prediction, and then the division mode with the least rate-distortion cost is found to obtain the final prediction residual. If it is poor, the next steps such as transformation and quantization can be performed.
- an implementation method of an encoder using QTMT is: first, the input image is divided into multiple non-overlapping CTU blocks. Then, each CTU is processed in turn according to the raster scanning order, and the CTU is divided into several CUs, which mainly includes the following four steps: 1 Calculate the first rate-distortion cost result of predictive coding when it is not divided (represented by RdCost0); 2 Set the The CTU is divided according to the QT mode and predicted and encoded, and the second rate-distortion cost result (represented by RdCost1) is calculated; 3 Compare RdCost0 and RdCost1, if RdCost1 is smaller, continue to process 4 sub-CUs in sequence; 4 Each CU is in QT or MT mode Partition prediction, calculate the rate-distortion cost result of each division method, select the current optimal RdCost by comparison, and repeat recursively until a block division mode with the smallest rate-distortion cost is selected. Finally, the residual block
- an implementation method of a decoder using QTMT is: first, perform entropy decoding, inverse quantization, and inverse transformation on the input code stream to obtain a residual block; then, reconstruct an image according to the residual block , the reconstruction process mainly includes the following three steps: 1. Determine the partition tree of the current CTU according to the prediction information such as the block partition mode; 2. Process each CU of the partition tree in turn according to the raster scan order, and use the motion vector and other information to find the prediction block; 3. The residual value and the predicted value of the current CU are superimposed to obtain the reconstructed CU. Finally, the reconstructed image is sent to the Deblocking Filter (DBF)/Sample Adaptive Offset (SAO) filter/Adaptive Loop Filter (ALF), and the filtered image Send it to the buffer area and wait for the video to play.
- DPF Deblocking Filter
- SAO Sample Adaptive Offset
- ALF Adaptive Loop Filter
- the embodiment of the present application provides a block division method.
- the maximum unit size information of the current block is determined; the current block is preprocessed according to the maximum unit size information, and the division of the current block is determined. mode; determining a block division parameter of the current block according to the division mode; and encoding the current block according to the block division parameter.
- the code stream is parsed to determine the block division parameters of the current block; based on the block division parameters, the code stream is parsed to determine the predicted value of the current block; based on the block division parameters, the code stream is parsed to determine the residual value of the current block; And, based on the predicted value and the residual value, the reconstructed value of the current block is determined.
- the technical solution of the present application designs an adaptive image texture mechanism for the maximum unit size, which can directly skip the prediction and transformation process of large-size blocks.
- the calculation of leads to an exponential decrease in the total number of recursion of block division, thus significantly reducing the coding complexity and reducing the coding time while keeping the performance gain basically unchanged, thereby improving the coding and decoding efficiency.
- the encoder 10 includes a transform and quantization unit 101, an intra-frame estimation unit 102, an intra-frame prediction unit 103, a motion compensation unit 104, a motion estimation unit 105, an inverse transform and inverse quantization unit 106, and a filter control unit.
- a video coding block can be obtained by dividing the coding tree unit (Coding Tree Unit, CTU), and then the residual pixel information obtained after intra-frame or inter-frame prediction is transformed and quantized by the quantization unit 101.
- the video coding block is transformed, including transforming residual information from the pixel domain to the transform domain, and quantizing the resulting transform coefficients to further reduce the bit rate;
- the intra-frame estimation unit 102 and the intra-frame prediction unit 103 are used for Intra prediction is performed on the video coding block; specifically, the intra prediction unit 102 and the intra prediction unit 103 are used to determine the intra prediction mode to be used to encode the video coding block;
- the motion compensation unit 104 and the motion estimation unit 105 is used to perform inter-predictive encoding of the received video encoding 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 105 is to generate a motion vector.
- the motion vector can estimate the motion of the video coding block, and then the motion compensation unit 104 performs motion compensation based on the motion vector determined by the motion estimation unit 105; after determining the intra prediction mode, the intra prediction unit 103 also For providing the selected intra prediction data to the encoding unit 109, and the motion estimation unit 105 also sends the calculated motion vector data to the encoding unit 109; in addition, the inverse transform and inverse quantization unit 106 is used for the video Reconstruction of the coding block, reconstructing the residual block in the pixel domain, the reconstructed residual block removing the blocking artifacts by the filter control analysis unit 107 and the filtering unit 108, and then adding the reconstructed residual block to the decoding A predictive block in the frame of the image buffer unit 110 is used to generate a reconstructed video coding block; the coding unit 109 is used for coding various coding parameters and quantized transform coefficients.
- the context content can be based on adjacent coding blocks, and can be used to encode information indicating the determined intra-frame prediction mode, and output a code stream of the video signal; and the decoded image buffer unit 110 is used to store the reconstructed video coding blocks, for Forecast reference. As the video image coding proceeds, new reconstructed video coding blocks are continuously generated, and these reconstructed video coding blocks are all stored in the decoded image buffer unit 110 .
- the decoder 20 includes a decoding unit 201, an inverse transform and inverse quantization unit 202, an intra prediction unit 203, a motion compensation unit 204, a filtering unit 205, a decoded image buffer unit 206, etc., wherein the decoding unit 201 Header decoding and CABAC decoding can be implemented, and the filtering unit 205 can implement DBF filtering/SAO filtering/ALF filtering.
- the decoding unit 201 Header decoding and CABAC decoding can be implemented
- the filtering unit 205 can implement DBF filtering/SAO filtering/ALF filtering.
- the code stream of the video signal is output; the code stream is input into the video decoding system 20, and firstly passes through the decoding unit 201 to obtain the decoded transform coefficient; Inverse transform and inverse quantization unit 202 processes to generate residual blocks in the pixel domain; intra prediction unit 203 may be used to generate based on the determined intra prediction mode and data from previously decoded blocks of the current frame or picture Prediction data for the current video decoding block; motion compensation unit 204 determines prediction information for the video decoding block by parsing the motion vector and other associated syntax elements, and uses the prediction information to generate predictive information for the video decoding block being decoded block; a decoded video block is formed by summing the residual block from inverse transform and inverse quantization unit 202 and the corresponding predictive block produced by intra prediction unit 203 or motion compensation unit 204; the decoded video signal Video quality may be improved by filtering unit 205 in order to remove blocking artifacts; decoded video blocks are then stored in decoded image buffer unit 206, which stores reference
- the block division method in the embodiment of the present application can be applied to a video codec chip, and the use of the QTMT mode can significantly improve the coding performance.
- it can be applied to the intra/inter prediction part as shown in FIG. 4A (represented by a black bold box, specifically including the intra-frame estimation unit 102, the intra-frame prediction unit 103, the motion compensation unit 104, the motion estimation unit 105), it can also be applied to the intra/inter prediction part as shown in FIG. 4B (represented by a bold black box, specifically including the intra prediction unit 203 and the motion compensation unit 204).
- the block division method in the embodiments of the present application can be applied to a video encoding system (referred to as “encoder” for short), also can be applied to a video decoding system (referred to as “decoder” for short), or even simultaneously It is applied to the video coding system and the video decoding system, but no limitation is made here.
- the “current block” specifically refers to the block currently to be encoded in the video image (may also be referred to as “encoding blocks” for short);
- the “current block” specifically refers to the block currently to be decoded in the video image (it may also be referred to as a "decoding block” for short).
- FIG. 5 shows a schematic flowchart of a block division method provided by an embodiment of the present application. As shown in Figure 5, the method may include:
- S501 Determine maximum unit size information of the current block based on the texture information of the video image.
- the block division method in the embodiment of the present application is applied to an encoder.
- the video image can be divided into a plurality of image blocks, and each image block to be encoded can be called an encoding block, and the current block here specifically refers to the encoding block currently to be encoded. It may be a CTU, or even a CU, etc., which is not limited in any embodiment of the present application.
- the embodiments of the present application mainly provide a fast block division technology for high bit depth video based on texture analysis, that is, applied to high bit depth video. Therefore, in some embodiments, the method may further include:
- the step of determining the maximum unit size information of the current block based on the texture information of the video image is performed.
- the determination of whether a video image is a high bit depth video may be represented by the identification information of the video image.
- the determining the identification information of the video image may include:
- the identification information of the video image indicates that the video image is a high bit depth video, then determine that the value of the identification information of the video image is the first value; or,
- the value of the identification information of the video image is determined to be the second value.
- the first value and the second value are different, and the first value and the second value may be in the form of parameters or in the form of numbers.
- the identification information of the video image is a parameter written in the profile (profile), but the identification information of the video image may also be a flag (flag), which is not limited here.
- the first value may be set to 1, and the second value may be set to 0; in another specific example, the first value may be set to 0.
- One value can also be set to true, and the second value can also be set to false; even in another specific example, the first value can also be set to 0, and the second value can also be set to 1; or, the first value can also be set to Can be set to false, and the second value can also be set to true.
- the first value and the second value in this embodiment of the present application are not limited in any way.
- the embodiments of the present application provide an encoding method, and specifically provide a block division method. More specifically, the embodiments of the present application design an adaptive maximum unit size mechanism based on image texture for high-bit-depth video, so that Subsequent computations of prediction and transform processes for large-sized blocks can be skipped directly.
- the method may further include: encoding the identification information of the video image, and writing the encoded bits into the code stream.
- the decoder can directly determine whether the video image is a high-bit-depth video by parsing the code stream, so as to facilitate the decoder to perform subsequent operations.
- the maximum unit size information it can be the BT maximum unit size (represented by maxBtSize) used to limit the binary tree division, or the TT maximum unit size information used to limit the ternary tree division (represented by maxTtSize indicates).
- the maximum cell size information may be represented by maxBtSize or maxTtSize.
- its level may be at least one of the following: sequence level and image level.
- a video sequence may be input, and then the initial frame is used as a video image, and the maximum unit size information corresponding to the initial frame is determined accordingly.
- the maximum unit size information is at the sequence level, the entire video sequence can use this maximum unit size information.
- the maximum unit size information is at the picture level (or called "frame level"), then for the entire video sequence, the maximum unit size information corresponding to each frame may be different, which is Each frame is used as a video image to determine the corresponding maximum unit size information of each frame. It should also be noted that for different blocks in the same frame, the maximum unit size information is the same.
- the maximum unit size information can be further determined, that is, the adaptive maximum unit size based on the image texture is realized.
- Cell size mechanism
- S502 Preprocess the current block according to the maximum unit size information to determine the division mode of the current block.
- the current block can be preprocessed according to the maximum unit size information, such as calculating the rate-distortion cost value under different division modes, and then selecting the optimal rate-distortion cost value (or called “minimum rate-distortion cost”) to determine the partition mode of the current block.
- the division mode may be determined by calculating the rate-distortion cost.
- the current block is preprocessed according to the maximum unit size information, and the division mode of the current block is determined, which may include:
- the division mode of the current block is determined according to the comparison result of the first rate-distortion cost value and the second rate-distortion cost value.
- determining the division mode of the current block according to the comparison result of the first rate-distortion cost value and the second rate-distortion cost value may include:
- the second rate-distortion cost value is less than the first rate-distortion cost value, use a preset division mode to divide the second node sub-block to obtain at least one next-level second node sub-block, and calculate the third rate-distortion cost value;
- the division mode of the current block is determined according to the second rate-distortion cost value and the third rate-distortion cost value.
- determining the division mode of the current block according to the second rate-distortion cost value and the third rate-distortion cost value may include:
- the third rate-distortion cost value is less than the second rate-distortion cost value
- update the second rate-distortion cost value by using the third rate-distortion cost value
- return to perform dividing the second node sub-block by using the preset dividing mode The steps of obtaining at least one next-level second node sub-block, and calculating the third rate-distortion cost value, until the minimum rate-distortion cost value is determined;
- the division mode of the current block is determined according to the division mode corresponding to the minimum rate-distortion cost value.
- the first node sub-block may be a node sub-block obtained by dividing the current block for the first time
- the second node sub-block may be a node sub-block obtained by continuing division based on a preset division mode, or It is regarded as starting from the second division, and the node sub-blocks obtained by the subsequent step-by-step division can be collectively referred to as the second node sub-blocks.
- the second rate-distortion cost value represents the rate-distortion cost value that does not continue to divide the ith level; and by using the preset division mode to continue dividing the node sub-blocks of the current level, the ith level can be obtained.
- the third rate-distortion cost value can be calculated at this time, and the third rate-distortion cost value here represents the rate-distortion cost value of continuing to divide the i-th level. Then perform a comparison between the second rate distortion cost value and the third rate distortion cost value.
- the third rate distortion cost value is less than the second rate distortion cost value, for the i+1th level, the third rate distortion cost value can be calculated at this time. It is regarded as the second rate-distortion cost value that does not continue to divide the i+1th level; and by using the preset division mode to continue to divide the node sub-block of the current level, the node sub-block of the i+2th level can be obtained, and Calculate the new third rate-distortion cost value.
- the third rate-distortion cost value represents the rate-distortion cost value for the continued division of the i+1 level, and execute the second rate-distortion cost value and the third rate-distortion cost value again. value comparison.
- the node sub-blocks of the current level can be divided into the next-level node sub-blocks again, and the rate-distortion cost value comparison can be continued, and the recursive cycle has been carried out. Go on until the minimum rate-distortion cost value is determined, and then the division mode corresponding to the minimum rate-distortion cost value is determined as the division mode.
- the preset division mode may include a quad-tree division mode and/or a multi-type tree division mode; wherein, the multi-type tree division mode may include at least one of the following: vertical Binary tree partition mode, horizontal binary tree partition mode, vertical ternary tree partition mode and horizontal ternary tree partition mode.
- the vertical binary tree division mode and the horizontal binary tree division mode may be collectively referred to as a binary tree division mode
- the vertical ternary tree division mode and the horizontal ternary tree division mode may be collectively referred to as a ternary tree division mode.
- the first node sub-block for "using the preset division mode to divide the first node sub-block to obtain at least one second node sub-block", specifically, if the first node sub-block is divided by using the quad-tree division mode, it can be obtained Four second node sub-blocks; if the first node sub-block is divided by the binary tree division mode, two second node sub-blocks can be obtained; if the first node sub-block is divided by the ternary tree division mode, three second node sub-blocks can be obtained. A second node sub-block.
- the sub-block of the first node is divided by a preset division mode, which may be a quad-tree division mode, a vertical binary tree division mode, a horizontal binary tree division mode, a vertical ternary tree division mode, a horizontal ternary tree division mode, or the like.
- a preset division mode which may be a quad-tree division mode, a vertical binary tree division mode, a horizontal binary tree division mode, a vertical ternary tree division mode, a horizontal ternary tree division mode, or the like.
- Each division mode divides the first node sub-block, and can calculate a rate-distortion cost value respectively, and then select the minimum rate-distortion cost value from the calculated rate-distortion cost value as the third rate-distortion cost value; When the third rate-distortion cost value is less than the second rate-distortion cost value, the obtained second node sub-blocks will continue to be divided, and the recursive cycle will continue until the minimum rate-distortion cost value is determined.
- the division mode corresponding to the distortion cost value is used to determine the division mode of the current block.
- the method may further include: when the second rate-distortion cost value is greater than or equal to the first rate-distortion value, directly dividing the current block according to the maximum unit size information Determines the division mode of the current block.
- the second rate-distortion cost value is greater than or equal to the first rate-distortion value, it means that the rate-distortion cost is the smallest when the node sub-blocks are no longer divided into the next level, then it can be directly adjusted according to the maximum unit size information.
- the division mode of the current block is determined as the division mode of the current block, and at this time, it is no longer necessary to continue dividing the obtained node sub-blocks.
- the current block can be preprocessed according to the maximum unit size information, and then the division mode of the current block can be determined, so as to realize the block division operation of the current block.
- S503 Determine block division parameters of the current block according to the division mode.
- S504 Encode the current block according to the block division parameter.
- the division mode is a specific block division manner, and the block division parameter here may be identification information indicating block division, such as split_cu_flag[x0][y0].
- the current block may be encoded according to the block division parameters.
- the encoding of the current block according to the block division parameter may include:
- the block division parameters are encoded, and the encoded bits are written into the code stream.
- the encoder needs to encode the block division parameters, and then writes the code stream to wait for transmission from the encoder to the decoder.
- the encoding of the current block according to the block division parameter may include:
- the prediction parameters of each node sub-block are sequentially determined
- the prediction parameters and residual values of the node sub-blocks are encoded, and the encoded bits are written into the code stream.
- the preset processing order of node sub-blocks may be the preset scanning order.
- the preset scanning sequence may be diagonal, Zigzag, horizontal, vertical, 4 ⁇ 4 sub-block scanning, or any other raster scanning sequence, which is not limited in this embodiment of the present application.
- the residual value can be determined.
- the residual value can be transformed, quantized and entropy encoded, and the prediction parameters of the node sub-blocks can be encoded, and then written into the code stream to be transmitted from the encoder to the decoder.
- the embodiment of the present application may also provide a code stream, where the code stream is generated by bit encoding according to relevant parameters.
- the relevant parameters may include at least one of the following: a block division parameter, a prediction parameter of a node sub-block, a residual value, and identification information of a video image.
- This embodiment provides a block division method, which is applied to an encoder. Based on the texture information of the video image, the maximum unit size information of the current block is determined; the current block is preprocessed according to the maximum unit size information, and the division mode of the current block is determined; the block division parameters of the current block are determined according to the division mode; parameter to encode the current block.
- the maximum unit size information of the current block is determined according to the texture information of the video image, that is, the technical solution of the present application designs an adaptive image texture mechanism for the maximum unit size, which can directly skip the prediction and transformation process of large-size blocks.
- the calculation of leads to an exponential decrease in the total number of recursion of block division, thus significantly reducing the coding complexity and reducing the coding time while keeping the performance gain basically unchanged, thereby improving the coding and decoding efficiency.
- FIG. 6 shows a schematic flowchart of determining the maximum unit size information provided by an embodiment of the present application. As shown in Figure 6, the process may include:
- S601 Divide the video image into blocks to obtain N blocks of a preset size; wherein, N is an integer greater than zero, and the N blocks do not overlap each other.
- the preset size refers to a preset block size value.
- the preset size can be any one of 8, 16, 32, 64, etc., or any one of 8 ⁇ 8, 16 ⁇ 16, 32 ⁇ 32, 64 ⁇ 64, etc., which is implemented in this application. Examples are not specifically limited.
- the preset size may be 64 ⁇ 64; at this time, for the video image, it may be divided into N non-overlapping blocks of 64 ⁇ 64.
- S602 Perform texture analysis on the N blocks to determine a first quantity; where the first quantity represents the quantity of blocks whose texture values are smaller than a first threshold in the N blocks.
- performing texture analysis on N blocks to determine the first number may include:
- the number of blocks whose texture value is less than the first threshold is counted to obtain the first number.
- the method may further include:
- the obtained statistical value is determined as the first number; wherein, i is an integer greater than or equal to zero.
- the first number represents the number of blocks with low texture complexity among the N blocks.
- the level of texture complexity can be measured by the first threshold. If the texture value is greater than or equal to the first threshold, it indicates that the texture of the block is relatively complex; if the texture value is less than the first threshold, it indicates that the texture of the block is relatively complex. Simple (ie low texture complexity).
- T the first threshold
- bitdepth-8 the value of the first threshold
- S603 Determine maximum unit size information of the current block according to the comparison result between the first number and the second threshold.
- a second threshold may also be set for determining the maximum unit size information of the current block.
- determining the maximum unit size information of the current block according to the comparison result between the first number and the second threshold may include:
- the maximum unit size information of the current block is determined to be the first size value.
- the method may further include:
- the maximum unit size information of the current block is determined to be the second size value.
- the method may further include: if the ratio is greater than or equal to a third threshold, determining the maximum unit size information of the current block as a default value.
- the first threshold is different from the second threshold and the third threshold, and the second threshold is smaller than the third threshold.
- the first threshold may be represented by c1
- the second threshold may be represented by c2.
- the value of c1 is equal to 0.15
- the value of c2 is equal to 0.3, but the embodiment of the present application does not specifically limit it.
- the first size value is different from the second size value.
- the first size value may be 8, and the second size value may be 16, but the embodiment of the present application does not specifically limit it.
- the ratio can be represented by j/N, and the value of the first size is 8 and the value of the second size is 16. In this way, if j/N ⁇ c1, then the maximum cell size information is 8; if c1 ⁇ j/N ⁇ c2, then the maximum cell size information is 16; if j/N ⁇ c2, then the maximum cell size information is the default value.
- the calculation of the texture value may be determined according to variance calculation, or may be determined according to other methods, such as a method of summing the absolute values of the horizontal gradient and the vertical gradient.
- the calculating texture values of N blocks may include:
- the calculating the texture values of the N blocks may include:
- the absolute value of the horizontal gradient and the absolute value of the vertical gradient are summed to obtain the texture value of the kth block.
- the value of k is an integer greater than or equal to zero and less than N.
- the calculated variance value can be determined as the texture value, or the sum of the absolute value of the horizontal gradient and the absolute value of the vertical gradient can be calculated, and the calculated sum value can be determined as the texture value, but it does not make any limitation.
- its level may be at least one of the following: sequence level and image level.
- a video sequence may be input, and then the initial frame is used as a video image, and the maximum unit size information corresponding to the initial frame is determined accordingly.
- the maximum unit size information is at the sequence level, the entire video sequence can use this maximum unit size information.
- the maximum unit size information is at the image level, then for the entire video sequence, the maximum unit size information corresponding to each frame is the video image, and then the corresponding maximum unit size information for each frame is determined separately. maximum element size information. It should also be noted that for different blocks in the same frame, the maximum unit size information is the same.
- FIG. 7 shows a detailed schematic flow chart of determining maximum unit size information provided by an embodiment of the present application. As shown in Figure 7, the detailed process may include:
- S702 Divide the initial frame into N non-overlapping blocks of 64 ⁇ 64.
- T represents the first threshold described in the embodiment of the present application
- c1 represents the second threshold described in the embodiment of the present application
- c2 represents the third threshold described in the embodiment of the present application.
- T 4 ⁇ 2 ⁇ (bitdepth-8)
- c1 0.15
- c2 0.3.
- the maximum unit size information may be the BT maximum unit size (represented by maxBtSize) used to limit the binary tree division, or the TT maximum unit size information used to limit the ternary tree division ( Expressed by maxTtSize).
- the maximum unit size information can be represented by maxBtSize or maxTtSize; but under the same conditions, maxBtSize and maxTtSize have the same values.
- maxBtSize and maxTtSize shown in FIG. 7 may be at the sequence level. That is, for the video sequence, maxBtSize and maxTtSize can be determined only according to the initial frame, and the determined maxBtSize and maxTtSize can be used for the entire video sequence.
- maxBtSize and maxTtSize can also be modified from sequence level to image level, that is, maxBtSize and maxTtSize can be calculated according to the method shown in FIG. 7 for each frame of video image as block size constraints of the current frame.
- i represents the execution order of variance calculation for each of the N blocks and whether the variance is less than T
- j represents the cumulative value of the number of blocks with variance less than T among the N blocks.
- step S704 if the judgment result is yes, it means that the variance of the i-th block is less than T, then step S705 and S706 are executed, that is, not only the processing of adding 1 to j is performed, but also processing of adding 1 to i is performed; If the result is no, it means that the variance of the i-th block is greater than or equal to T, then step S706 is executed, that is, at this time, it is no longer necessary to perform the processing of adding 1 to j, and only processing of adding 1 to i is performed.
- step S707 if the judgment result is no, it means that all the N blocks have not been executed, then return to step S703, that is, continue the operation of the next block (for example, calculate the variance of the ith block, and then further judge Whether the variance of the i-th block is less than T, etc.); if the judgment result is yes, it means that the N blocks are all executed, then execute step S708, that is, after obtaining j, determine the ratio of j to N j/N, and compare j/N with c1.
- step S708 if the judgment result is yes, it means that j/N is less than c1, then step S710 is executed, that is, it is determined that the maximum unit size information of the current block is 8; if the judgment result is no, it means that j/N N is greater than or equal to c1, then step S709 is executed, and j/N needs to be further compared with c2.
- step S709 if the judgment result is yes, it means that j/N is less than c2, then step S711 is executed, that is, it is determined that the maximum unit size information of the current block is 16; if the judgment result is no, it means that j/N N is greater than or equal to c2, then step S712 is executed, that is, the maximum unit size information of the current block is determined as the default value (including the default maxBtSize and the default maxTtSize).
- the embodiments of the present application provide a high-bit-depth video fast division technology based on texture analysis.
- the technology first performs texture analysis on the high-bit-depth video, and then designs an adaptive maximum size mechanism for multi-type tree units based on this.
- the maximum size of the multi-type tree unit is smaller; and when there is a large flat area in the video image, the maximum size of the multi-type tree unit is larger. See Figure 7 for details.
- maxBtSize is 8 and maxTtSize is 8; if c1 ⁇ j/N ⁇ c2, then maxBtSize is 16 and maxTtSize is 16; if j/N ⁇ c2, then maxBtSize is the default maxBtSize, and maxTtSize is the default maxTtSize.
- an implementation method of an HBD sequence encoder using QTMT fast block division is as follows: First, input the first frame of the video sequence, and determine the maximum BT according to the flow shown in FIG. 7 .
- the cell size is maxBtSize
- the TT maximum cell size is maxTtSize.
- the input image is divided into non-overlapping CTU blocks.
- each CTU is processed in turn according to the raster scan order, and the CTU is divided into several CUs, which mainly includes the following four steps: 1 Divide the CTU into several non-overlapping CUs according to the maxBtSize ⁇ maxBtSize size (or maxTtSize ⁇ maxTtSize size) , calculate the rate-distortion cost value RdCost0 of predictive coding at this time. 2 The CU is divided and predicted according to the QT mode or the MT mode, and the rate-distortion cost value RdCost1 is calculated. 3 Compare RdCost0 and RdCost1, if RdCost1 is smaller, continue to process each sub-CU in turn.
- each CU is divided and predicted according to the QT mode or the MT mode, the rate-distortion cost value of each division mode is calculated, the current relatively better RdCost is compared, and the recursive loop is continued until the rate-distortion cost value with the smallest rate is determined.
- a block division method that is, the division mode of the current block.
- the residual block is calculated according to the division mode, and the residual block is transformed, quantized, and entropy encoded, and the relevant information such as block division parameters is encoded, and the output code stream is waiting for transmission.
- the block division process of binary tree and ternary tree in MT is adaptively cropped, and for video sequences with extremely complex textures, the MT block division larger than 8 ⁇ 8 is cut off. mode, for video sequences with more complex textures, cut out the block division mode larger than 16 ⁇ 16.
- the test is carried out in the HBD test sequence required by JVET under the All Intra condition, and the average change of BD-rate on the Y, Cb, and Cr components are 0.20%, 0.29%, and 0.28%, respectively, and the encoding time is reduced by an average of 56%. This data shows that this technology can save more than half of the encoding time with almost negligible loss of performance gain.
- This embodiment provides a block division method, which is applied to an encoder.
- the technical solution of the present application can significantly reduce the coding complexity while maintaining the coding performance substantially equivalent to that of the prior art.
- FIG. 8 shows a schematic flowchart of another block division method provided by the embodiment of the present application. As shown in Figure 8, the method may include:
- S801 Parse the code stream, and determine the block division parameters of the current block.
- the block division method in this embodiment of the present application is applied to a decoder.
- the video image can be divided into multiple image blocks, wherein each image block to be decoded can be called a decoding block, and the current block here specifically refers to the decoding block currently to be decoded ; After decoding is complete, you can wait for the video to play.
- the embodiments of the present application mainly provide a fast block division technology for high bit depth video based on texture analysis, that is, applied to high bit depth video.
- whether the video image is a high bit depth video can be determined by using the identification information of the video image.
- the method may further include:
- the value of the identification information of the video image is the first value, it is determined that the identification information of the video image indicates that the video image is a high bit depth video; or,
- the value of the identification information of the video image is the second value, it is determined that the identification information of the video image indicates that the video image is a non-high bit depth video.
- the first value and the second value are different, and the first value and the second value may be in the form of parameters or in the form of numbers.
- the identification information of the video image is a parameter written in the profile (profile), but the identification information of the video image may also be a flag (flag), which is not limited here.
- the embodiments of the present application provide a decoding method, and specifically provide a block division method. More specifically, the embodiments of the present application design an image texture-based adaptive maximum unit size mechanism for high-bit-depth video. . In this way, when the encoder determines that the video image is a high-bit-depth video, the identification information of the video image can be written into the code stream, so that the decoder can directly determine whether the video image is a high-bit-depth video by parsing the code stream.
- the first value can be set to 1, and the second value can be set to 0 ;
- the first value can also be set to true, and the second value can also be set to false; even in another specific example, the first value can also be set to 0, and the second value can also be set to Set to 1; alternatively, the first value can also be set to false, and the second value can also be set to true.
- the first value and the second value in this embodiment of the present application are not limited in any way.
- the decoder parses the code stream, if the value of the identification information of the video image is 1, it can be determined that the video image is a high-bit-depth video, that is, encoding
- the block division method described in the embodiments of the present application can be used to save coding speed and significantly reduce coding complexity. Otherwise, if the value of the identification information of the video image is 0, it can be determined that the video image is a non-high bit-depth video at this time, that is, the encoder does not use the block division method described in the embodiment of the present application, for example, according to the related art The block division method is performed.
- the method may further include:
- a division tree of the current block is determined, wherein the division tree includes one or more node sub-blocks obtained by dividing the current block.
- the division mode of the current block can be determined, and then the division tree of the current block can be determined, so as to sequentially process each node sub-tree of the division tree according to the preset processing order of node sub-blocks piece.
- the division mode of the current block is determined according to the block division parameter, and the division mode is associated with the texture information of the video image. That is, in the encoder, the division mode is determined by determining the maximum unit size information of the current block according to the texture information of the video image, and then preprocessing the current block according to the maximum unit size information;
- the mechanism of adaptive image texture is designed, which can directly skip the calculation of the prediction and transformation process of large-size blocks, thereby reducing the encoding time and significantly reducing the encoding complexity while keeping the performance gain basically unchanged.
- S802 Based on the block division parameter, parse the code stream to determine the predicted value of the current block.
- the step of parsing the code stream based on the block division parameter to determine the predicted value of the current block may include:
- the code stream of each node sub-block of the partition tree is sequentially parsed, and the prediction mode of each node sub-block is determined;
- the prediction value of each node sub-block is determined according to the prediction mode.
- the preset processing order of node sub-blocks may be the preset scanning order.
- the preset scanning sequence may be diagonal, Zigzag, horizontal, vertical, 4 ⁇ 4 sub-block scanning, or any other raster scanning sequence, which is not limited in this embodiment of the present application.
- the code stream of each node sub-block of the partition tree can be sequentially parsed according to the preset scanning order, to obtain the prediction mode of each node sub-block, and then determine the prediction of each node sub-block. value.
- S803 Based on the block division parameters, parse the code stream to determine the residual value of the current block.
- the step of parsing the code stream based on the block division parameter to determine the residual value of the current block may include:
- the code stream of each node sub-block of the partition tree is sequentially parsed according to the preset node sub-block processing order, and the residual value of each node sub-block is determined.
- the preset processing order of node sub-blocks may be the preset scanning order. That is to say, the embodiment of the present application may sequentially parse the code stream of each node sub-block of the partition tree according to the preset scanning order, and then determine the residual value of each node sub-block.
- S804 Determine the reconstruction value of the current block based on the predicted value and the residual value.
- the determining the reconstructed value of the current block based on the predicted value and the residual value may include: adding the predicted value and the residual value to determine the reconstructed value of the current block.
- the predicted value of the current block can also be obtained by parsing the code stream; and the residual value of the current block can also be obtained by parsing the code stream; in this way, by comparing the predicted value and The residual value is added and calculated to determine the reconstruction value of the current block.
- an implementation method of an HBD sequence decoder using QTMT fast block division is as follows: First, entropy decoding, inverse quantization, and inverse transformation are performed on the input code stream, and the residual error can be obtained. Next, the image is reconstructed according to the residual block, and the reconstruction process here mainly includes the following three steps: 1. Determine the current CTU partition tree according to relevant information such as block partition parameters. 2 Process each CU of the partition tree in turn according to the raster scan order, and use information such as motion vectors to find the prediction block. 3 Superimpose the residual value and the predicted value of the current CU to obtain the reconstructed CU. Finally, the reconstructed image is sent to the DBF/SAO/ALF filter, and the filtered image is sent to the buffer area, waiting for the video to play.
- This embodiment provides a block division method, which is applied to a decoder.
- the block division parameters of the current block are determined; based on the block division parameters, the code stream is parsed to determine the predicted value of the current block; based on the block division parameters, the code stream is parsed to determine the residual value of the current block; and based on the predicted value and the residual value to determine the reconstructed value of the current block.
- the maximum unit size information of the current block is determined according to the texture information of the video image, that is, the technical solution of the present application designs an adaptive image texture mechanism for the maximum unit size, which can directly skip the prediction and transformation process of large-size blocks.
- the calculation of leads to an exponential decrease in the total number of recursion of block division, thus significantly reducing the coding complexity and reducing the coding time while keeping the performance gain basically unchanged, thereby improving the coding and decoding efficiency.
- FIG. 9 shows a schematic structural diagram of an encoder 90 provided by an embodiment of the present application.
- the encoder 90 may include: a first determining unit 901, a block dividing unit 902 and an encoding unit 903; wherein,
- the first determining unit 901 is configured to determine the maximum unit size information of the current block based on the texture information of the video image;
- the block division unit 902 is configured to preprocess the current block according to the maximum unit size information to determine the division mode of the current block; and according to the division mode, determine the block division parameter of the current block;
- the encoding unit 903 is configured to encode the current block according to the block division parameter.
- the encoding unit 903 is further configured to encode the block division parameter, and write the encoded bits into the code stream.
- the block division unit 902 is further configured to divide the current block into one or more node sub-blocks according to the block division parameter;
- the first determining unit 901 is further configured to sequentially determine the prediction parameter of each node sub-block according to the preset node sub-block processing order; and determine the predicted value of the node sub-block according to the prediction parameter; and according to the original node sub-block value and predicted value, determine the residual value of the node sub-block;
- the encoding unit 903 is further configured to encode the prediction parameter and the residual value of the node sub-block, and write the encoded bits into the code stream.
- the block dividing unit 902 is further configured to use the maximum unit size information to divide the current block, obtain at least one first node sub-block, and calculate the first rate-distortion cost value; and use a preset division mode to The first node sub-block is divided to obtain at least one second node sub-block, and the second rate-distortion cost value is calculated;
- the first determining unit 901 is further configured to determine the division mode of the current block according to the comparison result of the first rate-distortion cost value and the second rate-distortion cost value.
- the block dividing unit 902 is further configured to compare the first rate-distortion cost value with the second rate-distortion cost value; and in the case that the second rate-distortion cost value is less than the first rate-distortion cost value, Use the preset division mode to divide the second node sub-block to obtain at least one next-level second node sub-block, and calculate the third rate-distortion cost value;
- the first determining unit 901 is further configured to determine the division mode of the current block according to the second rate-distortion cost value and the third rate-distortion cost value.
- the block dividing unit 902 is further configured to update the second rate-distortion cost value with the third rate-distortion cost value when the third rate-distortion cost value is smaller than the second rate-distortion cost value, and return to executing
- the second node sub-block is divided by using the preset division mode to obtain at least one next-level second node sub-block, and the steps of calculating the third rate-distortion cost value until the minimum rate-distortion cost value is determined;
- the first determining unit 901 is further configured to determine the division mode of the current block according to the division mode corresponding to the minimum rate-distortion cost value.
- the first determining unit 901 is further configured to directly determine the mode of dividing the current block according to the maximum unit size information as the second rate-distortion cost value is greater than or equal to the first rate-distortion value.
- the partition mode of the current block is further configured to directly determine the mode of dividing the current block according to the maximum unit size information as the second rate-distortion cost value is greater than or equal to the first rate-distortion value.
- the preset division mode includes a quadtree division mode and/or a multi-type tree division mode
- the multi-type tree division mode includes at least one of the following: a vertical binary tree division mode, a horizontal binary tree division mode, and a vertical ternary tree division mode Partition mode and horizontal ternary tree partition mode.
- the block division unit 902 is further configured to perform block division on the video image to obtain N blocks of preset size; wherein, N is an integer greater than zero, and the N blocks do not overlap each other;
- the first determining unit 901 is further configured to perform texture analysis on the N blocks to determine a first quantity; wherein the first quantity represents the quantity of blocks whose texture values are less than the first threshold in the N blocks; and according to the first quantity and the second The result of the comparison of the thresholds determines the maximum unit size information of the current block.
- the encoder 90 may further include a calculation unit 904 configured to calculate the texture values of the N blocks;
- the first determining unit 901 is further configured to compare the texture values of the N blocks with the first threshold in sequence; and to count the number of blocks whose texture values are less than the first threshold according to the comparison result to obtain the first number.
- the calculation unit 904 is specifically configured to perform variance value calculation on the kth block to obtain the texture value of the kth block; wherein k is an integer greater than or equal to zero and less than N.
- the calculation unit 904 is specifically configured to determine the absolute value of the horizontal gradient and the absolute value of the vertical gradient of the kth block; and perform a sum calculation on the absolute value of the horizontal gradient and the absolute value of the vertical gradient to obtain the kth block The texture value of ; where k is an integer greater than or equal to zero and less than N.
- the first determining unit 901 is further configured to determine a ratio of the first number to N, compare the ratio with a second threshold; and when the ratio is less than the second threshold, determine the largest unit of the current block
- the size information is a first size value.
- the first determining unit 901 is further configured to compare the ratio with a third threshold when the ratio is greater than or equal to the second threshold; and if the ratio is less than the third threshold, determine the maximum value of the current block
- the unit size information is a second size value; wherein the second size value is different from the first size value; the first threshold value is different from the second threshold value and the third threshold value, and the second threshold value is smaller than the third threshold value.
- the first determining unit 901 is further configured to determine identification information of the video image; and when the identification information of the video image indicates that the video image is a high bit-depth video, perform texture information based on the video image to determine the Steps for maximum element size information.
- the first determining unit 901 is further configured to determine that the identification information of the video image is a first value if the identification information of the video image indicates that the video image is a high bit depth video; If the identification information indicates that the video image is a non-high bit depth video, the value of the identification information of the video image is determined to be the second value.
- the encoding unit 903 is further configured to encode the identification information of the video image, and write the encoded bits into the code stream.
- the level of the maximum cell size information is at least one of the following: sequence level, picture level.
- a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, and it may also be non-modular.
- each component in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
- the 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.
- the technical solution of this embodiment is essentially or The part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product, the computer software product is stored in a storage medium, and includes several instructions for making a computer device (which can be It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment.
- the aforementioned storage medium includes: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
- an embodiment of the present application provides a computer storage medium, which is applied to the encoder 90, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor, any one of the foregoing embodiments is implemented.
- FIG. 10 shows a schematic diagram of a specific hardware structure of the encoder 90 provided by the embodiment of the present application.
- it may include: a first communication interface 1001 , a first memory 1002 and a first processor 1003 ; each component is coupled together through a first bus system 1004 .
- the first bus system 1004 is used to realize the connection and communication between these components.
- the first bus system 1004 also includes a power bus, a control bus and a status signal bus.
- the various buses are designated as the first bus system 1004 in FIG. 10 . in,
- the first communication interface 1001 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
- a first memory 1002 for storing a computer program that can run on the first processor 1003;
- the first processor 1003 is configured to, when running the computer program, execute:
- the current block is encoded according to the block partition parameter.
- the first memory 1002 in this embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories.
- the non-volatile memory may be a read-only memory (Read-Only Memory, ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically programmable read-only memory (Erasable PROM, EPROM). Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
- Volatile memory may be Random Access Memory (RAM), which acts as an external cache.
- RAM Static RAM
- DRAM Dynamic RAM
- SDRAM Synchronous DRAM
- SDRAM double data rate synchronous dynamic random access memory
- Double Data Rate SDRAM DDRSDRAM
- enhanced SDRAM ESDRAM
- synchronous link dynamic random access memory Synchronous DRAM, SLDRAM
- Direct Rambus RAM Direct Rambus RAM
- the first processor 1003 may be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above-mentioned method may be completed by an integrated logic circuit of hardware in the first processor 1003 or an instruction in the form of software.
- the above-mentioned first processor 1003 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed.
- a general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
- the steps of the method disclosed in conjunction with the embodiments of the present application may be directly embodied as executed by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor.
- the software modules may be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other storage media mature in the art.
- the storage medium is located in the first memory 1002, and the first processor 1003 reads the information in the first memory 1002, and completes the steps of the above method in combination with its hardware.
- the embodiments described herein may be implemented in hardware, software, firmware, middleware, microcode, or a combination thereof.
- the processing unit can be implemented in one or more Application Specific Integrated Circuits (ASIC), Digital Signal Processing (DSP), Digital Signal Processing Device (DSP Device, DSPD), programmable Logic Devices (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), General Purpose Processors, Controllers, Microcontrollers, Microprocessors, Others for performing the functions described herein electronic unit or a combination thereof.
- the techniques described herein may be implemented through modules (eg, procedures, functions, etc.) that perform the functions described herein.
- Software codes may be stored in memory and executed by a processor.
- the memory can be implemented in the processor or external to the processor.
- the first processor 1003 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
- This embodiment provides an encoder, and the encoder may include a first determination unit, a block division unit, and a coding unit.
- the encoder may include a first determination unit, a block division unit, and a coding unit.
- FIG. 11 shows a schematic structural diagram of a decoder 110 provided by an embodiment of the present application.
- the decoder 110 may include: a parsing unit 1101 and a second determining unit 1102; wherein,
- the parsing unit 1101 is configured to parse the code stream and determine the block division parameter of the current block
- the parsing unit 1101 is further configured to parse the code stream based on the block division parameter to determine the predicted value of the current block; and based on the block division parameter, parse the code stream to determine the residual value of the current block;
- the second determining unit 1102 is configured to determine the reconstruction value of the current block based on the predicted value and the residual value.
- the parsing unit 1101 is further configured to parse the code stream to obtain identification information of the video image
- the second determining unit 1102 is further configured to, if the value of the identification information of the video image is the first value, determine that the identification information of the video image indicates that the video image is a high bit depth video; or, if the value of the identification information of the video image is the value of For the second value, it is determined that the identification information of the video image indicates that the video image is a non-high bit-depth video.
- the second determining unit 1102 is further configured to determine a division mode of the current block based on the block division parameter; and determine a division tree of the current block according to the division mode, wherein the division tree comprises dividing the current block to obtain One or more node sub-blocks of .
- the parsing unit 1101 is further configured to sequentially parse the code stream of each node sub-block of the partition tree according to a preset node sub-block processing order, and determine the prediction mode of each node sub-block;
- the second determining unit 1102 is further configured to determine the prediction value of each node sub-block according to the prediction mode.
- the parsing unit 1101 is further configured to sequentially parse the code stream of each node sub-block of the partition tree according to the preset node sub-block processing order, and determine the residual value of each node sub-block.
- the division mode has an associated relationship with texture information of the video image.
- a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, and it may also be non-modular.
- each component in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
- the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it may be stored in a computer-readable storage medium.
- this embodiment provides a computer storage medium, which is applied to the decoder 110, where the computer storage medium stores a computer program, and when the computer program is executed by the second processor, any one of the foregoing embodiments is implemented the method described.
- FIG. 12 shows a schematic diagram of a specific hardware structure of the decoder 110 provided by the embodiment of the present application.
- it may include: a second communication interface 1201 , a second memory 1202 and a second processor 1203 ; each component is coupled together through a second bus system 1204 .
- the second bus system 1204 is used to implement connection communication between these components.
- the second bus system 1204 also includes a power bus, a control bus, and a status signal bus.
- the various buses are labeled as the second bus system 1204 in FIG. 12 . in,
- the second communication interface 1201 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
- a second memory 1202 for storing computer programs that can run on the second processor 1203;
- the second processor 1203 is configured to, when running the computer program, execute:
- the code stream is parsed to determine the predicted value of the current block
- the code stream is parsed to determine the residual value of the current block
- the reconstructed value of the current block is determined.
- the second processor 1203 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
- the hardware function of the second memory 1202 is similar to that of the first memory 1002, and the hardware function of the second processor 1203 is similar to that of the first processor 1003; details are not described here.
- This embodiment provides a decoder, and the decoder may include a parsing unit and a second determining unit.
- the decoder may include a parsing unit and a second determining unit.
- the maximum unit size information of the current block is determined based on the texture information of the video image; the current block is preprocessed according to the maximum unit size information, and the division mode of the current block is determined; according to the division mode, determining a block division parameter of the current block; and encoding the current block according to the block division parameter.
- the code stream is parsed to determine the block division parameters of the current block; based on the block division parameters, the code stream is parsed to determine the predicted value of the current block; based on the block division parameters, the code stream is parsed to determine the residual value of the current block; And, based on the predicted value and the residual value, the reconstructed value of the current block is determined.
- the technical solution of the present application designs an adaptive image texture mechanism for the maximum unit size, which can directly skip the prediction and transformation process of large-size blocks.
- the calculation of leads to an exponential decrease in the total number of recursion of block division, thus significantly reducing the coding complexity and reducing the coding time while keeping the performance gain basically unchanged, thereby improving the coding and decoding efficiency.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Des modes de réalisation de la présente demande concernent des procédés de division de bloc, des codeurs, des décodeurs et un support de stockage informatique. Un procédé de division de bloc comprend : la détermination, sur la base d'informations de texture d'une image vidéo, d'informations de taille d'unité maximale d'un bloc actuel ; le prétraitement du bloc actuel selon les informations de taille d'unité maximale, et la détermination d'un mode de division du bloc actuel ; la détermination d'un paramètre de division de bloc du bloc actuel selon le mode de division ; et le codage du bloc actuel selon le paramètre de division de bloc. Ainsi, puisque les informations de taille d'unité maximale du bloc actuel sont déterminées selon les informations de texture de l'image vidéo, c'est-à-dire, un mécanisme adaptatif de texture d'image est conçu pour une taille d'unité maximale, la prédiction de blocs de grande taille et le calcul d'un processus de transformation peuvent être directement sautés, ce qui permet de réduire de manière exponentielle le nombre total de récursions pour une division de bloc, ce qui réduit de manière significative la complexité du codage tout en maintenant sensiblement inchangé le gain de performance, réduit le temps de codage et améliore ainsi l'efficacité du codage et du décodage.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202180096081.8A CN117063467A (zh) | 2021-04-30 | 2021-04-30 | 块划分方法、编码器、解码器以及计算机存储介质 |
| PCT/CN2021/091736 WO2022227082A1 (fr) | 2021-04-30 | 2021-04-30 | Procédés de division de bloc, codeurs, décodeurs et support de stockage informatique |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2021/091736 WO2022227082A1 (fr) | 2021-04-30 | 2021-04-30 | Procédés de division de bloc, codeurs, décodeurs et support de stockage informatique |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022227082A1 true WO2022227082A1 (fr) | 2022-11-03 |
Family
ID=83847566
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2021/091736 Ceased WO2022227082A1 (fr) | 2021-04-30 | 2021-04-30 | Procédés de division de bloc, codeurs, décodeurs et support de stockage informatique |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN117063467A (fr) |
| WO (1) | WO2022227082A1 (fr) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116260973A (zh) * | 2023-03-31 | 2023-06-13 | 北京百度网讯科技有限公司 | 一种时域滤波方法、装置、电子设备及存储介质 |
| CN116489352A (zh) * | 2023-04-23 | 2023-07-25 | 北京达佳互联信息技术有限公司 | 视频编码方法、装置、电子设备及存储介质 |
| CN119854499A (zh) * | 2025-03-14 | 2025-04-18 | 龙芯中科(合肥)技术有限公司 | 视频编码方法、装置、电子设备及存储介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102934436A (zh) * | 2010-04-13 | 2013-02-13 | 三星电子株式会社 | 使用基于根据树结构确定的编码单元的预测单元的视频编码方法和视频编码设备以及使用基于根据树结构确定的编码单元的预测单元的视频解码方法和视频解码设备 |
| CN110234008A (zh) * | 2019-03-11 | 2019-09-13 | 杭州海康威视数字技术股份有限公司 | 编码方法、解码方法及装置 |
| CN112135147A (zh) * | 2019-06-24 | 2020-12-25 | 杭州海康威视数字技术股份有限公司 | 编码方法、解码方法及装置 |
-
2021
- 2021-04-30 CN CN202180096081.8A patent/CN117063467A/zh active Pending
- 2021-04-30 WO PCT/CN2021/091736 patent/WO2022227082A1/fr not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102934436A (zh) * | 2010-04-13 | 2013-02-13 | 三星电子株式会社 | 使用基于根据树结构确定的编码单元的预测单元的视频编码方法和视频编码设备以及使用基于根据树结构确定的编码单元的预测单元的视频解码方法和视频解码设备 |
| CN110234008A (zh) * | 2019-03-11 | 2019-09-13 | 杭州海康威视数字技术股份有限公司 | 编码方法、解码方法及装置 |
| CN112135147A (zh) * | 2019-06-24 | 2020-12-25 | 杭州海康威视数字技术股份有限公司 | 编码方法、解码方法及装置 |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116260973A (zh) * | 2023-03-31 | 2023-06-13 | 北京百度网讯科技有限公司 | 一种时域滤波方法、装置、电子设备及存储介质 |
| CN116260973B (zh) * | 2023-03-31 | 2024-03-19 | 北京百度网讯科技有限公司 | 一种时域滤波方法、装置、电子设备及存储介质 |
| CN116489352A (zh) * | 2023-04-23 | 2023-07-25 | 北京达佳互联信息技术有限公司 | 视频编码方法、装置、电子设备及存储介质 |
| CN119854499A (zh) * | 2025-03-14 | 2025-04-18 | 龙芯中科(合肥)技术有限公司 | 视频编码方法、装置、电子设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN117063467A (zh) | 2023-11-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12231696B2 (en) | Loop filtering method and device | |
| CN113676732A (zh) | 图像分量预测方法、编码器、解码器以及存储介质 | |
| US20220182610A1 (en) | Prediction method for decoding and apparatus, and computer storage medium | |
| CN113727106B (zh) | 视频编码、解码方法、装置、电子设备及存储介质 | |
| US20240236354A1 (en) | Coding/decoding method, code stream, coder, decoder, and storage medium | |
| WO2022227082A1 (fr) | Procédés de division de bloc, codeurs, décodeurs et support de stockage informatique | |
| CN117413515A (zh) | 编解码方法、编码器、解码器以及计算机存储介质 | |
| JP2025081632A (ja) | 係数符号化・復号化方法、符号器、復号器及びコンピュータ記憶媒体 | |
| EP4087254A1 (fr) | Procédé de prédiction entre trames, encodeur, décodeur et support de stockage | |
| EP4507295A1 (fr) | Procédé de décodage, procédé de codage, décodeur et codeur | |
| CN113497936A (zh) | 编码方法、解码方法、编码器、解码器以及存储介质 | |
| CN116711304A (zh) | 预测方法、编码器、解码器以及存储介质 | |
| WO2020215226A1 (fr) | Procédé de décodage d'image, décodeur et support de stockage | |
| WO2023193260A1 (fr) | Procédé de codage/décodage, flux de codes, codeur, décodeur et support de stockage | |
| WO2022188239A1 (fr) | Procédé de codage/décodage de coefficient, codeur, décodeur et support de stockage informatique | |
| CN116982262A (zh) | 视频编码中依赖性量化的状态转换 | |
| RU2853100C1 (ru) | Способ кодирования и декодирования, кодер и декодер | |
| RU2831992C2 (ru) | Способ кодирования коэффициентов, кодер, декодер и компьютерный носитель данных | |
| RU2853099C1 (ru) | Способ кодирования и декодирования, кодер и декодер | |
| RU2853107C1 (ru) | Способ кодирования и декодирования, кодер и декодер | |
| RU2845936C1 (ru) | Способ кодирования и декодирования, кодер и декодер | |
| EP4535793A1 (fr) | Procédé de codage et de décodage, codeur, décodeur, et support de stockage | |
| WO2020215216A1 (fr) | Procédé de décodage d'image, décodeur et support d'informations | |
| WO2025036150A1 (fr) | Procédé et appareil de codage vidéo, procédé et appareil de décodage vidéo, dispositif électronique, et support de stockage lisible par ordinateur | |
| WO2025213398A1 (fr) | Procédé de codage, procédé de décodage, flux binaire, codeur, décodeur et support de stockage |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21938555 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202180096081.8 Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21938555 Country of ref document: EP Kind code of ref document: A1 |