Video encoding / decoding method and apparatus
By selecting appropriate probability information and utilizing skip region information during entropy coding and decoding, the problem of increased data volume in entropy coding is solved, thereby improving coding efficiency and arithmetic coding performance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- IND ACAD COOP GRP OF SEJONG UNIV
- Filing Date
- 2018-01-31
- Publication Date
- 2026-05-05
AI Technical Summary
In existing video coding technologies, the increased data volume of entropy coding leads to low coding efficiency, and the arithmetic coding and decoding performance is insufficient, making it difficult to meet the rapidly growing demand for multimedia data.
By selecting appropriate probability information during entropy encoding and decoding, and utilizing skip region information and context-adaptive arithmetic encoding, the amount of encoded data is reduced and encoding efficiency is improved.
It effectively reduces the amount of encoded information, improves encoding efficiency, and enhances arithmetic encoding and decoding performance.
Smart Images

Figure CN115379226B_ABST
Abstract
Description
[0001] This application is a divisional application of patent application No. 201880009395.8, filed on January 31, 2018, entitled "Image Encoding / Decoding Method and Apparatus". Technical Field
[0002] This invention relates to an image signal encoding / decoding method and apparatus, and more particularly to an entropy encoding and decoding method. Background Technology
[0003] In recent years, the demand for multimedia data such as video on the Internet has been increasing dramatically. However, the current development speed of channel bandwidth is insufficient to fully meet the rapidly increasing volume of multimedia data. Considering the above situation, the Video Coding Expert Group (VCEG) of the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) and the Moving Picture Expert Group (MPEG) of the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) developed the first version of the video compression standard, High Efficiency Video Coding (HEVC), in February 2014.
[0004] High-efficiency video coding (HEVC) includes various techniques such as intra-frame prediction, inter-frame prediction, transform, quantization, entropy coding, and loop filtering. The input information for entropy coding can be generated using various methods. As the size of the input video or unit block to be encoded or decoded increases, the amount of data requiring entropy coding can increase dramatically. Summary of the Invention
[0005] The main objective of this invention is to solve the existing problems described above and provide a more efficient entropy encoding and decoding technology.
[0006] Furthermore, the main objective of this invention is to reduce the amount of data that needs to be encoded by utilizing skip regions to perform entropy encoding or decoding.
[0007] Furthermore, the main objective of this invention is to improve the performance of arithmetic coding and arithmetic decoding by effectively selecting the probability information applicable in the encoding or decoding of each symbol when performing context-adaptive arithmetic coding and decoding.
[0008] An image encoding method or encoding apparatus according to one embodiment of the present invention can encode the reference coefficient position within the current transform block to be encoded and encode the skip region information of the selected skip region based on the reference coefficient position.
[0009] The skip region information can indicate whether the coefficients within the skip region have the same coefficient value.
[0010] An image encoding method or encoding apparatus according to another embodiment of the present invention can obtain binary information by binaryizing the transform coefficient values and determine the probability information applicable in the encoding of the binary information based on the position of the transform coefficients within the transform block.
[0011] The probability information applicable in the encoding of the aforementioned binary information can be determined based on which region the aforementioned transformation coefficients are located in within the transformation block divided into multiple regions.
[0012] An image encoding method or encoding apparatus according to another embodiment of the present invention can encode the reference coefficient position within the current transform block to be encoded and encode the skip region information of the selected skip region based on the reference coefficient position. Binary information is obtained by binarying the transform coefficient values not included in the skip region, and a probability information table applicable to the encoding of the binary information is selected from multiple probability information tables.
[0013] The probability information table applicable in the encoding of the aforementioned binary information can be selected based on whether the aforementioned skipped region is used in the encoding of the aforementioned current transformation block.
[0014] An image decoding method or decoding apparatus according to one embodiment of the present invention can decode the reference coefficient position within the current transform block that needs to be decoded and decode the skip region information of the selected skip region based on the reference coefficient position.
[0015] The skip region information can indicate whether the coefficients within the skip region have the same coefficient value.
[0016] An image decoding method or decoding apparatus according to another embodiment of the present invention can obtain arithmetically encoded coding coefficient values from a bitstream and determine the probability information applicable in decoding the arithmetically encoded transformation coefficients based on the position of the transformation coefficients within the transform block.
[0017] The probability information applicable to the decoding of the arithmetically encoded transform coefficients can be determined based on which region the transform coefficients are located in within the transform block divided into multiple regions.
[0018] An image decoding method or decoding apparatus according to another embodiment of the present invention can decode the reference coefficient position within the current transform block to be decoded and decode the skip region information of the selected skip region based on the reference coefficient position to obtain the arithmetically encoded value of the transform coefficient that is not included in the skip region, and select the probability information table applicable to the decoding of the arithmetically encoded value of the transform coefficient from a plurality of probability information tables.
[0019] The probability information table applicable in decoding the arithmetically encoded values of the aforementioned transform coefficients can be selected from one of the plurality of probability information tables based on whether the aforementioned skipped region is used in decoding the aforementioned current transform block.
[0020] An image decoding method applicable to one form of the present invention may include: a step of decoding a reference coefficient position within a current transform block; a step of deriving probability information of coding parameters based on the reference coefficient position; and a step of decoding the coding parameters using the derived probability information.
[0021] In the above image decoding method, the reference coefficient can be the first non-zero coefficient in the reverse scanning order among the coefficients in the current transform block.
[0022] In the above image decoding method, the current transform block can be divided into a first region and a second region, and the probability information of the encoding parameters can be determined based on which region the reference coefficient exists in.
[0023] An image decoding method applicable to one form of the present invention may include: a step of decoding partial information of the mean (DC) coefficients of the current transform block; a step of deriving probability information of coding parameters based on the partial information of the mean (DC) coefficients; and a step of decoding the coding parameters using the derived probability information.
[0024] In the above image decoding method, the mean (DC) coefficient can be the coefficient located at the upper left end of the current transform block.
[0025] In the above image decoding method, the partial information of the mean (DC) coefficient can be at least one of the information used to decode the mean (DC) coefficient.
[0026] The above image decoding method further includes a step of decoding the position of the reference coefficient within the current transform block; wherein the probability information of the above-mentioned encoding parameters can be derived based on the distance information between the above-mentioned mean (DC) coefficient and the above-mentioned reference coefficient, as well as some information of the above-mentioned mean (DC) coefficient.
[0027] An image coding method applicable to one form of the present invention may include: a step of coding a reference coefficient position within a current transform block; a step of deriving probability information of coding parameters based on the reference coefficient position; and a step of coding the coding parameters using the derived probability information.
[0028] In the above image coding method, the reference coefficient can be the first non-zero coefficient in the reverse scanning order among the coefficients in the current transform block.
[0029] In the above image coding method, the current transform block can be divided into a first region and a second region, and the probability information of the coding parameters can be determined based on which region the reference coefficient exists in.
[0030] The image coding method described above may include: a step of encoding partial information of the mean (DC) coefficients of the current transform block; a step of deriving probability information of coding parameters based on the partial information of the mean (DC) coefficients; and a step of encoding the coding parameters using the derived probability information.
[0031] In the above image coding method, the mean (DC) coefficient can be the coefficient located at the upper left end of the current transform block.
[0032] In the above image coding method, the partial information of the mean (DC) coefficient can be at least one of the information used to encode the mean (DC) coefficient.
[0033] The above image coding method further includes a step of coding the position of the reference coefficient within the current transform block; wherein the probability information of the coding parameter can be derived based on the distance information between the mean (DC) coefficient and the reference coefficient, as well as some information of the mean (DC) coefficient.
[0034] This invention reduces the amount of encoded information generated when encoding video, thereby improving its encoding efficiency.
[0035] Furthermore, the performance of arithmetic coding and decoding can be improved by effectively selecting the probability information applicable in the encoding or decoding of each symbol when performing context-adaptive arithmetic coding and decoding.
[0036] The effects achievable by this disclosure are not limited to those mentioned above. Those skilled in the art to which this disclosure pertains will be able to further understand other effects not mentioned through the following description. Attached Figure Description
[0037] Figure 1 This is a block diagram illustrating an image encoding apparatus to which one embodiment of the present invention is applied.
[0038] Figure 2 This is a block diagram illustrating an image decoding apparatus to which one embodiment of the present invention is applied.
[0039] Figure 3 This is a flowchart illustrating an encoding method for a transform block applicable to one embodiment of the present invention.
[0040] Figures 4a to 4d This is a schematic diagram illustrating the diagonal, vertical, and horizontal reverse scanning of sub-block units.
[0041] Figure 5 This is a flowchart illustrating a decoding method for a transform block applicable to one embodiment of the present invention.
[0042] Figure 6 This is a sequence diagram illustrating an image encoding method utilizing skipped regions according to one embodiment of the present invention.
[0043] Figure 7 This is a schematic diagram illustrating a skipped area applicable to one embodiment of the present invention.
[0044] Figure 8 This is a schematic diagram illustrating a skipped area according to another embodiment of the present invention.
[0045] Figure 9 This is a schematic diagram illustrating an additional skipped area applicable to one embodiment of the present invention.
[0046] Figure 10 This is a sequence diagram illustrating an encoding method for a transform block containing a skipped region or an additional skipped region, according to one embodiment of the present invention.
[0047] Figure 11 This is a sequence diagram illustrating an image decoding method utilizing skipped regions, according to one embodiment of the present invention.
[0048] Figure 12 This is a sequence diagram illustrating a decoding method for a transform block containing a skipped region or an additional skipped region, according to one embodiment of the present invention.
[0049] Figure 13 This is a flowchart illustrating a context-adaptive binary arithmetic coding method applicable to one embodiment of the present invention.
[0050] Figure 14This is a flowchart illustrating a context-adaptive binary arithmetic decoding method applicable to one embodiment of the present invention.
[0051] Figures 15a to 15c This is a schematic diagram illustrating an example of applying different probability information based on peripheral coefficient information.
[0052] Figures 16a to 16c This is a schematic diagram illustrating various embodiments of dividing the frequency region's transformation block into multiple regions.
[0053] Figure 17 This is a sequence diagram illustrating an arithmetic encoding method applicable to one embodiment of the present invention.
[0054] Figure 18 This is a sequence diagram illustrating an arithmetic decoding method applicable to one embodiment of the present invention.
[0055] Figures 19a to 19c This is a schematic diagram used to illustrate arithmetic encoding and arithmetic decoding to which another embodiment of the present invention is applicable.
[0056] Figure 20 This is a sequence diagram illustrating an arithmetic encoding or decoding method applicable to another embodiment of the present invention.
[0057] Figure 21 This is a flowchart illustrating a context-adaptive binary arithmetic coding method applicable to one embodiment of the present invention.
[0058] Figure 22 This is a flowchart illustrating a context-adaptive binary arithmetic decoding method applicable to one embodiment of the present invention.
[0059] Figure 23a , Figure 23b This is a schematic diagram illustrating an example of applying different probability information based on peripheral coefficient information.
[0060] Figure 24 This is a flowchart illustrating the coding process of a method for deriving probability information based on a benchmark coefficient, applicable to one embodiment of the present invention.
[0061] Figure 25 This is a schematic diagram illustrating the position of the reference coefficients applicable to one embodiment of the present invention.
[0062] Figure 26a , Figure 26b This is a schematic diagram illustrating an example of applying different probability information based on peripheral coefficient information.
[0063] Figure 27This is a flowchart illustrating a method for deriving probability information based on a benchmark coefficient, applicable to one embodiment of the present invention.
[0064] Figure 28 This is a flowchart illustrating the coding process of a method for deriving probability information based on partial information of the mean (DC) according to one embodiment of the present invention.
[0065] Figure 29 This is a flowchart illustrating the encoding method for transform block coefficients that utilizes partial information from the mean (DC) coefficients.
[0066] Figure 30 This is a flowchart illustrating a method for deriving probability information based on partial information of the mean (DC) according to one embodiment of the present invention.
[0067] Figure 31 This is a flowchart illustrating a method for decoding block coefficients that utilizes partial information from the mean (DC) coefficients.
[0068] Figure 32 This is a flowchart illustrating the coding process for deriving probability information based on the distance between the mean (DC) coefficient and the benchmark coefficient, as well as partial information about the mean (DC) coefficient.
[0069] Figure 33 This is a schematic diagram illustrating an example of applying different probability information based on peripheral coefficient information.
[0070] Figure 34 This is a flowchart illustrating the decoding process for deriving probability information based on the distance between the mean (DC) coefficient and the benchmark coefficient, as well as partial information about the mean (DC) coefficient. Detailed Implementation
[0071] This invention is capable of various modifications and has many different embodiments. Specific embodiments will be illustrated and described in detail below with reference to the accompanying drawings. However, the following description is not intended to limit the invention to specific implementations, but should be understood to include all modifications, equivalents, and substitutions within the scope of the invention's concept and technology. Similar reference numerals are used for similar constituent elements in the description of the various drawings.
[0072] In describing different constituent elements, terms such as "first" and "second" may be used, but the constituent elements are not limited by these terms. These terms are merely used to distinguish one constituent element from others. For example, without departing from the scope of the claims, a first constituent element can also be named a second constituent element, and similarly, a second constituent element can also be named a first constituent element. The term "and / or" includes a combination of multiple related descriptions or one of multiple related descriptions.
[0073] When a constituent element is described as being "connected" or "in contact" with other constituent elements, it should be understood that it can not only be directly connected or in contact with the aforementioned other constituent elements, but also that other constituent elements can exist between the two. Conversely, when a constituent element is described as being "directly connected" or "directly in contact" with other constituent elements, it should be understood that no other constituent elements exist between the two.
[0074] The terminology used in this application is for illustrative purposes only and is not intended to limit the invention. Singular statements also have plural meanings unless the context clearly indicates otherwise. In this application, terms such as "comprising" or "having" are used only to indicate the presence of features, numbers, steps, actions, constituent elements, components, or combinations thereof as described in the specification, and should not be construed as excluding the possibility of one or more other features, numbers, steps, actions, constituent elements, components, or combinations thereof being present or added.
[0075] The embodiments to which the present invention applies will now be described in detail with reference to the accompanying drawings. In the following description, the same reference numerals will be used for the same constituent elements in the drawings, and repeated descriptions of the same constituent elements will be omitted.
[0076] Figure 1 This is a block diagram illustrating an image encoding apparatus to which one embodiment of the present invention is applied.
[0077] See Figure 1 The image encoding apparatus 100 may include an image segmentation unit 101, an intra-frame prediction unit 102, an inter-frame prediction unit 103, a subtraction unit 104, a transform unit 105, a quantization unit 106, an entropy encoding unit 107, an inverse quantization unit 108, an inverse transform unit 109, an addition unit 110, a filtering unit 111, and a memory 112.
[0078] exist Figure 1The various components are illustrated separately to show the different special functions of the image encoding apparatus, but this does not mean that each component is composed of separate hardware or software units. That is, although the various components are listed and described for ease of explanation, it is possible to combine at least two components into one component, or to divide one component into multiple components and make them perform corresponding functions. The embodiments in which the various components are integrated and the embodiments in which they are separated, as described above, are included within the scope of the claims of this invention without departing from the essence of this invention.
[0079] Furthermore, some constituent elements may not be essential for performing the essential functions of this invention, but are merely optional elements used to improve performance. This invention can include only the constituent parts necessary for realizing the essence of the invention, excluding those merely used to improve performance, and structures that include only the essential constituent elements, excluding those optional elements used to improve performance, are also included within the scope of the claims of this invention.
[0080] The image segmentation unit 101 can segment an input image into at least one block. The input image can be of various shapes and sizes, such as an image, strip, parallel block, or fragment. A block can refer to a coding unit (CU), prediction unit (PU), or transform unit (TU). The segmentation can be performed based on at least one of a quadtree or a binary tree. A quadtree divides a parent block into four child blocks, each half the width and height of the parent block. A binary tree divides a parent block into two child blocks, each half the width or height of the parent block. By segmenting based on a binary tree, blocks can be segmented not only into squares but also into non-square shapes.
[0081] Prediction units 102 and 103 may include an inter-frame prediction unit 103 for performing inter-frame prediction and an intra-frame prediction unit 102 for performing intra-frame prediction. After determining whether to perform inter-frame or intra-frame prediction on a prediction unit, specific information (e.g., intra-frame prediction mode, motion vector, reference image, etc.) can be determined based on the different prediction methods. In this case, the processing unit performing the prediction can be different from the processing unit determining the prediction method and specific content. For example, the prediction method and prediction mode can be determined at the prediction unit level, while the prediction execution can be performed at the transformation unit level.
[0082] The residual value (residual block) between the generated prediction block and the original block can be input to the transform unit 105. Furthermore, information used during prediction, such as prediction mode information and motion vector information, can be encoded together with the residual value by the entropy coding unit 107 and then transmitted to the decoder. When using a specific coding mode, it is also possible to directly encode the original block and transmit it to the decoding unit without generating the prediction block through the prediction units 102 and 103.
[0083] The in-frame prediction unit 102 can generate prediction blocks based on pixel information within the current image, i.e., reference pixel information surrounding the current block. When the prediction mode of the surrounding blocks of the current block for which intra-frame prediction needs to be performed is inter-frame prediction, reference pixels included in the surrounding blocks for which inter-frame prediction has been applied can be replaced with reference pixels in other surrounding blocks for which intra-frame prediction has been applied. That is, if reference pixels are unavailable, they can be used after replacing unavailable reference pixel information with at least one of the available reference pixels.
[0084] In intra-frame prediction, prediction modes can include directional prediction modes that use reference pixel information based on the prediction direction, and non-directional modes that do not use directional information when performing prediction. The mode used to predict luminance information can be different from the mode used to predict chrominance information. When predicting chrominance information, the intra-frame prediction mode information used in the process of predicting luminance information or the predicted luminance signal information can be used.
[0085] The in-frame prediction unit 102 may include an adaptive intra-smoothing (AIS) filter, a reference pixel interpolation unit, and a mean (DC) filter. The adaptive intra-smoothing (AIS) filter is used to filter the reference pixels of the current block, and its application can adaptively determine whether to apply the filter based on the prediction mode of the current prediction unit. When the prediction mode of the current block is a mode that does not perform adaptive intra-smoothing (AIS) filtering, the adaptive intra-smoothing (AIS) filter may not be applied.
[0086] When the intra-prediction mode of the prediction unit is a prediction unit that performs intra-prediction based on the pixel value interpolated from the reference pixel, the reference pixel interpolation unit of the intra-prediction unit 102 can generate a reference pixel at a fractional unit position by interpolating the reference pixel. When the prediction mode of the current prediction unit is a prediction mode that generates a prediction block without interpolating the reference pixel, interpolation of the reference pixel is not performed. When the prediction mode of the current block is the mean (DC) mode, the mean (DC) filter can generate a prediction block by filtering.
[0087] The inter-frame prediction unit 103 generates prediction blocks using the reconstructed reference image stored in the memory 112 and motion information. The motion information may include, for example, motion vectors, reference image indexes, list 1 prediction flags, and list 0 prediction flags.
[0088] Furthermore, a residual block can be generated that contains residual information, namely the difference between the prediction unit generated in prediction units 102 and 103 and the original block of the prediction unit. The generated residual block can be input into transformation unit 105 for transformation.
[0089] The inter-frame prediction unit 103 can derive a prediction block based on information from at least one of the previous or next images of the current image. Furthermore, it can also derive a prediction block of the current block based on information from a portion of the encoded area within the current image. The inter-frame prediction unit 103, according to one embodiment of the present invention, can include a reference image interpolation unit, a motion prediction unit, and a motion compensation unit.
[0090] In the reference image interpolation unit, reference image information can be received from memory 112 and pixel information of integer pixels or less can be generated in the reference image. For luminance pixels, in order to generate pixel information of integer pixels or less in 1 / 4 pixel units, an 8-tap interpolation filter based on Discrete Cosine Transform (DCT) with different filtering coefficients can be used. For chrominance signals, in order to generate pixel information of integer pixels or less in 1 / 8 pixel units, a 4-tap interpolation filter based on Discrete Cosine Transform (DCT) with different filtering coefficients can be used.
[0091] The motion prediction unit can perform motion prediction based on a reference image interpolated by the reference image interpolation unit. Various methods can be used to calculate motion vectors, such as the Full Search-based Block Matching Algorithm (FBMA), the Three-Step Search Algorithm (TSS), and the New Three-Step Search Algorithm (NTS). Motion vectors can be calculated using motion vector values in 1 / 2 or 1 / 4 pixel units based on the interpolated pixels. The motion prediction unit can predict the prediction block of the current prediction unit using different motion prediction methods. Various motion prediction methods can be used, such as the Skip method, the Merge method, and the Advanced Motion Vector Prediction (AMVP) method.
[0092] The subtraction unit 104 generates a residual block for the current block by performing a subtraction operation between the block to be encoded and the prediction block generated in the in-frame prediction unit 102 or the inter-frame prediction unit 103.
[0093] The transform unit 105 can transform the residual block containing residual data using transform methods such as Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), and Karhunen-Loeve Transform (KLT). In this case, the transform method can be determined based on the intra-prediction mode of the prediction unit used when generating the residual block. For example, the Discrete Cosine Transform (DCT) can be used in the horizontal direction and the Discrete Sine Transform (DST) in the vertical direction, depending on the intra-prediction mode.
[0094] The quantization unit 106 is capable of quantizing the values that have been transformed into frequency regions in the transformation unit 105. The quantization coefficients can be changed according to the importance of the block or image. The values calculated in the quantization unit 106 can be provided to the inverse quantization unit 108 and the entropy coding unit 107.
[0095] The aforementioned transformation unit 105 and / or quantization unit 106 can be selectively included in the image coding apparatus 100. That is, the image coding apparatus 100 can perform at least one of transformation or quantization on the residual data of the residual block, or it can simultaneously skip transformation and quantization while encoding the residual block. Even if the image coding apparatus 100 does not perform either transformation or quantization, or neither transformation nor quantization is performed, the block input to the entropy coding unit 107 is generally referred to as a transformed block. The entropy coding unit 107 performs entropy coding on the input data. When performing entropy coding, various different coding methods can be used, such as Exponential Golomb code, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
[0096] The entropy coding unit 107 can encode various types of information, such as transform block coefficient information, block type information, prediction mode information, segmentation unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information, and filtering information. The transform block coefficients can be encoded in sub-block units within the transform block.
[0097] To encode the coefficients of the transform block, various syntax elements can be encoded, such as Last_sig (indicating the first non-zero coefficient in the reverse scan order), Coded_sub_blk_flag (indicating whether the sub-block contains at least one non-zero coefficient), Sig_Coeff_flag (indicating whether a coefficient is non-zero), Abs_greater1_flag (indicating whether the absolute value of a coefficient is greater than 1), Abs_greater2_flag (indicating whether the absolute value of a coefficient is greater than 2), and Sign_flag (indicating the sign of a coefficient). For the remaining values of coefficients that cannot be encoded using only the above syntax elements, the remaining_coeff syntax element can be used for encoding.
[0098] In the inverse quantization unit 108 and the inverse transform unit 109, the values quantized in the quantization unit 106 are inversely quantized, and the values transformed in the transform unit 105 are inversely transformed. A reconstructed block can be generated by merging the residual values generated in the inverse quantization unit 108 and the inverse transform unit 109 with the prediction units predicted by the motion estimation unit, motion compensation unit, and in-frame prediction unit 102 included in the prediction units 102 and 103. The adder 110 can generate a reconstructed block by performing an addition operation on the prediction blocks generated in the prediction units 102 and 103 and the residual blocks generated by the inverse transform unit 109.
[0099] The filtering unit 111 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
[0100] Deblocking filters eliminate block distortion in reconstructed images caused by boundaries between blocks. To determine whether deblocking is necessary, the decision can be based on the pixels contained in several columns or rows within a block. When applying a deblocking filter, a strong or weak filter can be used depending on the required deblocking intensity. Furthermore, during the application of a deblocking filter, horizontal and vertical filtering can be performed in parallel.
[0101] The offset correction unit can perform offset correction between the deblocked image and the original image on a pixel-by-pixel basis. To perform offset correction on a specific image, a method can be used that divides the pixels contained in the image into a certain number of regions, determines the region to be offset, and applies the offset to the corresponding region, or a method can be used that applies the offset while taking into account the edge information of each pixel.
[0102] At this point, ALF (Adaptive Loop Filtering) can be performed based on the comparison between the filtered reconstructed image and the original image. After dividing the pixels contained in the image into specific groups, it can determine which filter is needed for each group, and then perform different filtering on different groups. Regarding information related to the applicability of the adaptive loop filter (ALF), the luminance signal can be transmitted according to each coding unit (CU), and the shape and filtering coefficients of the applicable adaptive loop filter (ALF) can differ depending on the block. Furthermore, it is possible to apply an adaptive loop filter (ALF) of the same shape (fixed shape) regardless of the characteristics of the target block.
[0103] The memory 112 can store the reconstructed blocks or images calculated by the filtering unit 111, and the stored reconstructed blocks or images can be provided to the prediction units 102 and 103 when performing inter-frame prediction.
[0104] Next, an image decoding apparatus to which one embodiment of the present invention is applied will be described with reference to the accompanying drawings. Figure 2 This is a block diagram illustrating an image decoding apparatus 200 to which one embodiment of the present invention is applied.
[0105] See Figure 2 The image decoding device 200 may include an entropy decoding unit 201, an inverse quantization unit 202, an inverse transform unit 203, an addition unit 204, a filtering unit 205, a memory 206, and prediction units 207 and 208.
[0106] When the image bitstream generated by the image encoding device 100 is input to the image decoding device 200, the input bitstream can be decoded in the reverse order of the process performed by the image encoding device 100.
[0107] The entropy decoding unit 201 can perform entropy decoding in the reverse order of the entropy encoding performed by the entropy encoding unit 107 of the image coding apparatus 100. For example, it can adapt to various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC), corresponding to the methods performed in the image encoder. The entropy decoding unit 201 can decode the syntax elements described above, namely Last_sig, Coded_sub_blk_flag, Sig_coeff_flag, Abs_greater1_flag, Abs_greater2_flag, Sign_flag, and remaining_coeff. Furthermore, the entropy decoding unit 201 can decode information related to intra-frame prediction and inter-frame prediction performed in the image coding apparatus 100.
[0108] The inverse quantization unit 202 generates a transform block by performing inverse quantization on the quantized transform block. According to... Figure 1 The inverse quantization unit 108 in the middle works in essentially the same way.
[0109] The inverse transform unit 203 generates a residual block by performing an inverse transform on the transform block. At this time, the transform method can be determined based on information related to the prediction method (inter-frame or intra-frame prediction), the block size and / or shape, and the intra-frame prediction mode. Figure 1 The inverse transformation unit 109 in the middle works in essentially the same way.
[0110] The addition unit 204 generates a reconstructed block by performing an addition operation on the prediction block generated in the intra-frame prediction unit 207 or the inter-frame prediction unit 208 and the residual block generated by the inverse transform unit 203. Figure 1 The addition unit 110 in the middle works in essentially the same way.
[0111] The filter unit 205 is used to reduce various types of noise that appear in the reconstructed blocks.
[0112] The filtering unit 205 may include a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
[0113] The image encoding device 100 can receive information related to whether a deblocking filter is applied to a corresponding block or image, and information related to whether strong or weak filtering is applied when a deblocking filter is applied. The image decoding device 200's deblocking filter can perform deblocking filtering on the corresponding block in the image decoding device 200 after receiving deblocking filter-related information provided from the image encoding device 100.
[0114] The offset correction unit can perform offset correction on the reconstructed image based on the offset correction type and offset value information applicable to the image during encoding.
[0115] The Adaptive Loop Filter (ALF) can be applied to the encoding unit based on information such as whether the ALF is applicable and the ALF coefficient information provided from the image encoding apparatus 100. The ALF information described above can be provided within a specific parameter set. The filtering unit 205 follows the same procedure as described above. Figure 1 The filtering section 111 in the middle works in essentially the same way.
[0116] The memory 206 is used to store the reconstructed blocks generated by the addition unit 204. According to... Figure 1 The memory 112 in the middle works in essentially the same way.
[0117] Prediction units 207 and 208 can generate prediction blocks based on prediction blocks generated from prediction blocks provided by entropy decoding unit 201 and previously decoded blocks or image information provided from memory 206.
[0118] Prediction units 207 and 208 may include an intra-frame prediction unit 207 and an inter-frame prediction unit 208. Although not shown separately, prediction units 207 and 208 may also include a prediction unit determination unit. The prediction unit determination unit can receive various types of information input from the entropy decoding unit 201, such as prediction unit information, prediction mode information of the intra-frame prediction method, and motion prediction-related information of the inter-frame prediction method, and distinguish prediction units from the current decoding unit, thereby determining whether the prediction unit performs inter-frame prediction or intra-frame prediction. The inter-frame prediction unit 208 can perform inter-frame prediction on the current prediction unit based on information contained in at least one of the previous or next images of the current image containing the current prediction unit, using the information required for inter-frame prediction of the current prediction unit provided by the image coding apparatus 100. Alternatively, it can perform inter-frame prediction within the current image containing the current prediction unit based on information of a reconstructed portion of the region.
[0119] In order to perform inter-frame prediction, the motion prediction method that can be used to determine which prediction unit contained in the corresponding coding unit is Skip Mode, Merge Mode, or Advanced Motion Vector Prediction Mode (AMVP Mode) based on the coding unit.
[0120] The in-frame prediction unit 207 generates prediction blocks using the reconstructed pixels surrounding the blocks that need to be encoded in the current period.
[0121] The in-frame prediction unit 207 may include an adaptive intra-smoothing (AIS) filter, a reference pixel interpolation unit, and a mean (DC) filter. The adaptive intra-smoothing (AIS) filter is used to filter the reference pixels of the current block, and its application is adaptively determined based on the prediction mode of the current prediction unit. Adaptive intra-smoothing (AIS) filtering can be performed on the reference pixels of the current block using the prediction mode of the prediction unit provided from the image coding apparatus 100 and the adaptive intra-smoothing (AIS) filter information. When the prediction mode of the current block is a mode that does not perform adaptive intra-smoothing (AIS) filtering, the adaptive intra-smoothing (AIS) filter may not be applied.
[0122] When the prediction mode of the prediction unit is a prediction unit that performs intra-frame prediction based on pixel values interpolated from reference pixels, the reference pixel interpolation unit of the intra-frame prediction unit 207 can generate reference pixels at fractional unit positions by interpolating reference pixels. The generated reference pixels at fractional unit positions can be used as prediction pixels for pixels within the current block. When the prediction mode of the current prediction unit is a prediction mode that generates prediction blocks without interpolating reference pixels, interpolation of reference pixels is not required. When the prediction mode of the current block is the mean (DC) mode, the mean (DC) filter can generate prediction blocks by filtering.
[0123] The prediction unit 207 in the picture is in accordance with... Figure 1 The in-screen prediction unit 102 works in essentially the same way.
[0124] The inter-frame prediction unit 208 generates inter-frame prediction blocks using reference images stored in memory 206 and motion information. The inter-frame prediction unit 208 then generates inter-frame prediction blocks according to... Figure 1 The inter-image prediction unit 103 in the middle works in essentially the same way.
[0125] Next, various embodiments of the present invention will be described in more detail with reference to the accompanying drawings.
[0126] (First Embodiment)
[0127] Figure 3 This is a flowchart illustrating an encoding method for a transform block applicable to one embodiment of the present invention. Figure 3 The encoding method of the transformed block shown in the figure can be executed by the entropy encoding unit 107 of the image encoding device 100.
[0128] like Figure 4a As illustrated, a transform block can be encoded in sub-block units. See also... Figure 4a When the current transform block 400, which needs to be encoded or decoded, is an 8×8 block, it can be divided into four 4×4 sub-blocks, namely sub-block 1 401 to sub-block 4 404. In the scanning method used to determine the encoding order of transform coefficients within the transform block, methods such as horizontal, vertical, or diagonal inverse scanning can be used based on the prediction mode of the current block or the current transform block. The prediction mode can be inter-frame prediction or intra-frame prediction.
[0129] exist Figure 4b , Figure 4c as well as Figure 4d The diagrams illustrate diagonal reverse scanning, vertical reverse scanning, and horizontal reverse scanning. For ease of explanation, diagonal reverse scanning is used as an example, but the methods are equally applicable to vertical and horizontal reverse scanning.
[0130] See Figure 3 In step S301, the first non-zero coefficient when scanning the transform coefficients in reverse scanning order is first designated as the reference coefficient and its position information, namely Last_sig, is encoded.
[0131] Next, in step S302, a sub-block containing the baseline coefficient is selected. In step S303, the corresponding sub-block information is encoded. The sub-block information, namely Coded_sub_blk_flag, is a flag used to indicate whether the current sub-block contains at least one non-zero coefficient. Next, in step S304, the non-zero coefficient information is encoded. Here, the non-zero coefficient information, namely Sig_coeff_flag, indicates whether the value of each coefficient existing in the sub-block is 0.
[0132] Next, in step S305, the information on coefficients greater than N is encoded. This information indicates whether the absolute value of each coefficient within the sub-block is greater than a value from 1 to N. N can be any pre-defined value used in both encoding and decoding, but the same value can also be used in both encoding and decoding by encoding the N value itself. The information on coefficients greater than N can use any pre-defined value, or different values can be applied depending on the position of the base coefficient. For example, when N is set to 3, for all coefficients within the sub-block that are determined to be non-zero, the absolute value of each coefficient is encoded to be greater than 1. For this purpose, a flag indicating whether the absolute value of a coefficient is greater than 1, namely Abs_greater1_flag, is used. Next, for coefficients determined to be greater than 1, whether they are greater than 2 is encoded. For this purpose, a flag indicating whether the absolute value of a coefficient is greater than 2, namely Abs_greater2_flag, is used. Finally, for coefficients determined to be greater than 2, whether they are greater than 3 is encoded. Therefore, a flag, Abs_greater3_flag, can be used to indicate whether the absolute value of the coefficient is greater than 3.
[0133] Next, in step S306, for each coefficient determined to be non-zero, the sign information used to represent negative or positive numbers is encoded. The sign information can use Sign_flag. Next, in step S307, for coefficients determined to be greater than N, the remaining value after subtracting N is defined as residual coefficient information, and the remaining value information of the above coefficients, i.e., residual_coeff, is encoded.
[0134] Next, in step S309, it is confirmed whether a next sub-block exists. If it does, in step S310, the process moves to the next sub-block, and in step S303, the sub-block information is encoded. In step S308, the corresponding sub-block information, i.e., Coded_sub_blk_flag, is confirmed. If the value of Coded_sub_blk_flag is confirmed to be true, the non-zero coefficient information, i.e., Sig_coeff_flag, is encoded. If the value of the corresponding sub-block information, i.e., Coded_sub_blk_flag, is false, it indicates that there are no coefficients that need to be encoded in the corresponding sub-block, therefore it is confirmed whether a next sub-block exists. Alternatively, after moving to the next sub-block, when the corresponding sub-block is located on the lowest frequency side, it is possible to assume the existence of non-zero coefficients and not encode or decode the sub-block information, but instead set the same value during encoding and decoding.
[0135] Figure 5 This is a flowchart illustrating a decoding method for a transform block applicable to one embodiment of the present invention. Figure 5The decoding method of the transform block in the middle, and Figure 3 The encoding method corresponds to the transformation block in the code. Figure 5 The decoding method of the transformed block shown in the figure can be executed by the entropy decoding unit 201 of the image decoding device 200.
[0136] In step S501, the position information of the first non-zero transform coefficient, i.e., the reference coefficient, that appears in the reverse scanning order, is decoded as Last_sig.
[0137] Next, in step S502, a sub-block containing the baseline coefficient is selected. In step S503, the sub-block information, i.e., Coded_sub_blk_flag, is decoded. Next, in step S504, the non-zero coefficient information, i.e., Sig_coeff_flag, is decoded. Next, in step S505, the coefficient information greater than N is decoded. The coefficient information greater than N can include, as described above, Abs_greater1_flag, Abs_greater2_flag, and Abs_greater3_flag, etc.
[0138] Next, in step S506, for each coefficient determined to be non-zero, the sign information (Sign_flag) of the coefficient is decoded. Next, in step S507, for coefficients determined to be greater than N, the residual coefficient information (remaining_coeff) corresponding to the remaining value after subtracting N is decoded. Next, in step S509, it is confirmed whether a next sub-block exists. If it does, in step S510, the process moves to the next sub-block, and in step S503, the sub-block information (Coded_sub_blk_flag) is decoded. In step S508, the corresponding sub-block information (Coded_sub_blk_flag) is confirmed. When confirmed as true, the non-zero coefficient information (Sig_coeff_flag) is decoded; when confirmed as false, it indicates that there are no coefficients requiring encoding in the corresponding sub-block, therefore, it is confirmed whether a next sub-block exists.
[0139] Figure 6 This is a sequence diagram illustrating an image encoding method utilizing skipped regions according to one embodiment of the present invention. Figure 6 The image encoding method illustrated can be executed by the entropy encoding unit 107 of the image encoding device 100.
[0140] See Figure 6In step S601, the entropy encoding unit 107 first encodes the position of the reference coefficient within the current transform block that needs to be encoded. As described above, the reference coefficient refers to the first non-zero coefficient when scanning the coefficients in reverse scan order. Next, in step S602, the skip region information of the selected skip region is encoded based on the position of the reference coefficient.
[0141] The skipped region refers to the area within the current transform block that can be determined based on the position of the reference coefficient. Skip region information indicates whether all coefficients within the skipped region have the same value. The common value of the coefficients within the skipped region can be 0. When the common value of the coefficients within the skipped region is not 0, additional information indicating which non-zero value is being encoded. Any pre-defined non-zero value can be used as the common value of the coefficients within the skipped region. In the above case, the information of the pre-defined value can be encoded through the superior header of the non-transform block unit.
[0142] Furthermore, the skipped area can be determined in the same way during the encoding / decoding process according to a pre-set rule, and the same position can be used in the encoding device 100 or the decoding device 200 by additionally encoding the coordinates used to represent the skipped area within the transform block.
[0143] Figure 7 This is a schematic diagram illustrating a skipped region applicable to one embodiment of the present invention. Next, it is assumed that a diagonal inverse scan is used in the coefficient encoding of the current transform block 700.
[0144] See Figure 7 After generating a baseline 702 at a 45-degree angle to the lower left, using the baseline coefficient 701 as a reference, the region containing coefficients located on and below the baseline 702 is designated as a skip region. Figure 7 In the code, skipped regions are indicated by shading, and all coefficients within a skipped region have the same value, 0. Furthermore, all coefficients within a skipped region are located after the base coefficient in the encoding order.
[0145] As another embodiment of setting a skip region, when the number of coefficients existing in the skip region is small because the reference coefficient is located in an arbitrary region within the transform block, the skip region can be set not based on the reference coefficient, but using one of the non-zero coefficients following the reference coefficient in the reverse scan order or a coefficient adjacent to the reference coefficient. The arbitrary region within the transform block where the reference coefficient is located can be set by comparing the number of sub-blocks calculated in the reverse scan order with a pre-set threshold. Alternatively, it can be set by comparing the distance between the reference coefficient and an arbitrary position within the transform block with a pre-set threshold. For example, the arbitrary position can be the center point of the transform block in both the horizontal and vertical directions. Alternatively, the transform block can be divided into m and n equal parts in the horizontal and vertical directions respectively, and one of the divided regions can be determined as an arbitrary region. The values of m and n can be encoded through block units or the upper-level header, or the same pre-set values can be used during encoding and decoding.
[0146] Figure 8 This is a schematic diagram illustrating a skipped region according to another embodiment of the present invention. After generating a baseline 803 from the position of the reference coefficient 801 within the edge block 800 to the position of the coefficient 802 located in the lower left corner within the transform block 800, the region containing coefficients located on the baseline 803 and coefficients existing below the baseline 803 is designated as a skipped region. The coefficients belonging to the skipped region are located after the reference coefficients in the encoding order. Figure 8 In the text, skipped areas are indicated by shaded areas.
[0147] In addition, although Figure 6 Although not illustrated, in addition to the skip areas set through steps S601 and S603, additional skip areas can be set. The additionally set skip areas can be encoded using the additional skip area information.
[0148] Figure 9 This is a schematic diagram illustrating an additional skipped region applicable to one embodiment of the present invention. Figure 9 In addition to Figure 7 In addition to the designated skip area shown in the diagram, an additional skip area is also defined. Figure 7The area above the skip area is designated as an additional skip area, which can encode information indicating whether the coefficients within the additional skip area all have the same value. The common value of the coefficients within the skip area can be 0. When the common value of the coefficients within the skip area is not 0, information indicating which non-zero value is being additionally encoded. Any pre-defined non-zero value can be used as the common value of the coefficients within the skip area. In this case, the information of the pre-defined value can be encoded through the upper-level header of the non-transformed block unit.
[0149] Furthermore, the position of the additional skipped region can be determined in the same way during the encoding / decoding process according to a preset rule, or the same position can be used in the encoding device 100 or the decoding device 200 by additionally encoding the coordinates within the transform block. The newly generated additional skipped region can be separated from the previous skipped region by a distance p.
[0150] exist Figure 9 The example illustrates a case where a skip region is set by generating a baseline 702 based on a baseline coefficient 701, and the area above the baseline 702 is additionally set as an additional skip region. When the distance p between the additional skip region and the skip region is 0, the region containing the coefficients on the baseline 703 can be set as the additional skip region. When the distance p is 1, the additional skip region includes the region containing the coefficients on the baseline 703 and the region containing the coefficients on the baseline 704.
[0151] In this embodiment, the case where the distance p between the appended skipped regions is 0 or 1 is used as an example, but other values can also be used. Specifically, p can be a pre-set value used during encoding / decoding. Alternatively, the value of p can be encoded in block units or encoded via the parent header.
[0152] Furthermore, additional skip regions can be added according to a preset method. For example, additional skip regions can be continuously added until the information of the added skip region is false, or encoded according to a preset number of times q. Different p values can be set for each added skip region.
[0153] Figure 10 This is a sequence diagram illustrating an encoding method for a transform block containing a skipped region or an additional skipped region, according to one embodiment of the present invention. Figure 10 The method illustrated is able to Figure 6 The method shown in the diagram will be executed next. Figure 10 The encoding method illustrated can be executed by the entropy encoding unit 107 of the image encoding device 100.
[0154] If the sub-block within the transform block that needs to be encoded contains a reference coefficient, it indicates that it contains coefficients that need to be encoded, therefore, the sub-block information, i.e., Coded_sub_blk_flag, does not need to be encoded. In step S1001, it is confirmed whether the skip region information or the appended skip region information is true and whether the sub-block that needs to be encoded contains a skip region or an appended skip region. In step S1002, when both conditions are true, coefficients located within the current sub-block and outside the skip region in the encoding order are selected. In step S1003, all coefficients that need to be encoded and are unrelated to the skip region are selected. Next, in step S1004, non-zero coefficients are encoded; in step S1005, coefficients greater than N are encoded; in step S1006, sign information is encoded; and in step S1007, residual coefficient information is encoded.
[0155] Next, in step S1008, if a next sub-block exists, in step S1009, move to the next sub-block. In step S1010, confirm whether the skip region information or appended skip region information is true and whether the sub-block currently to be encoded contains a skip region or appended skip region. Because the information of the corresponding sub-block has already been encoded as skip region information, move to the next sub-block. However, the above-mentioned situation is only applicable when the value of the coefficient in the skip region is 0. When the value of the coefficient in the skip region is not 0, the information of the corresponding sub-block should be encoded.
[0156] When a sub-block does not contain a skipped area, or an appended skipped area is added, or the skipped area information is false, in step S1011, the sub-block information is encoded. In step S1012, if the sub-block information is true, the process jumps to step S1001; otherwise, it jumps to step S1008. After moving to step S1008, if it is determined that no next sub-block exists, the process ends. Figure 10 The algorithm in the text.
[0157] Next, we will utilize Figure 7 The example shown is in Figure 6 as well as Figure 10 The algorithm illustrated in the diagram is further explained. It is assumed that the scanning method in the current transform block is a diagonal reverse scan order, and the first non-zero coefficient is set as the reference coefficient. After setting the coefficients in the lower left direction and those below it as skipped areas based on the reference coefficient, all values in the skipped areas are checked. When all coefficients in the skipped areas have the same value (0), the skipped area information is encoded as true. After dividing into sub-block units, encoding begins from the sub-block containing the reference coefficient.
[0158] Next, we will use the case where the current transform block is 8×8 in size and the sub-blocks are 4×4 in size as an example. The skip region information of the first sub-block that needs to be encoded is true, and the corresponding sub-block contains coefficients that need to be encoded. Because only the coefficients outside the skip region need to be encoded, therefore, in the case of... Figure 7 In the illustrated example, only the base coefficient and the values 1, 0, 0, and -2 above it need to be encoded. As described above, non-zero coefficient information will be True, False, False, and True, respectively. Assuming N is 2, information greater than 1 is encoded only for coefficients determined to be non-zero. The values greater than 1 for coefficients 1 and -2 will be set to False and True, respectively. Information greater than 2 is encoded only when the value greater than 1 is True; the value greater than 2 for coefficient 2 will be encoded as False. Next, the signs of coefficients 1 and -2, i.e., + and -, are encoded respectively. Then, because a next sub-block exists, the process moves to the next sub-block.
[0159] The second sub-block that needs encoding has a skipped area information of true and contains coefficients that need encoding; therefore, its sub-block information is true. Thus, only the coefficients outside the skipped area (0, 0, and 1) need encoding. After encoding the non-zero coefficients of 0, 0, and 1 as false, false, and true respectively, only the coefficient 1 (greater than 1) is encoded as false. After encoding the sign of coefficient 1 as +, the process moves to the next sub-block.
[0160] The skipped area information of the third sub-block that needs to be encoded is true, and there are coefficients that need to be encoded within the corresponding sub-block; its sub-block information is true. The coefficients outside the skipped area are arranged in reverse scan order as follows: 0, 0, 0, 0, 0, 1, 1, 1, 1, -2, -2, 1, -3, 3, 10. These coefficients are then encoded using steps S1004 to S1007.
[0161] Figure 11 This is a sequence diagram illustrating an image decoding method utilizing skipped regions, according to one embodiment of the present invention. Figure 11 The decoding method illustrated can be executed by the entropy decoding unit 201 of the image decoding device 100.
[0162] See Figure 11In step S1101, the entropy decoding unit 201 first decodes the reference coefficient positions within the current transform block that needs to be decoded. Next, in step S1103, the skip region information of the selected skip region is decoded based on the reference coefficient positions. As described above, the reference coefficient positions can be derived by decoding Last_sig. Since the skip region and skip region information are the same as described above, their detailed explanation will be omitted. Furthermore, although in Figure 11 There is no separate illustration, but when there is an additional skip area set outside the skip area, the additional skip area can be decoded using the additional skip area information.
[0163] Figure 12 This is a sequence diagram illustrating a decoding method for a transform block containing a skipped region or an additional skipped region, according to one embodiment of the present invention. Figure 12 The method illustrated is able to Figure 11 The method shown in the diagram will be executed next. Figure 12 The decoding method illustrated can be executed by the entropy decoding unit 201 of the image decoding device 200.
[0164] Figure 12 The method shown in the figure and Figure 10 The methods illustrated are essentially the same, therefore a detailed explanation will be omitted. However, the difference lies in... Figure 10 The code encodes skipped region information, appended skipped region information, sub-block information (Coded_sub_blk_flag), non-zero coefficient information, coefficients greater than N information, sign information, and residual coefficient information, but in... Figure 12 The above information is decoded.
[0165] Next, we will utilize Figure 7 The example shown is in Figure 11 as well as Figure 12 The algorithm illustrated in the diagram is further explained. After decoding the last_sig (the position information of the reference coefficient in the current transform block), the reference coefficient is set. After setting the skip region based on the reference coefficient position, the skip region information is decoded. In this example, the skip region information is true. After dividing the transform block into sub-block units, decoding begins from the sub-block containing the reference coefficient.
[0166] Next, we will use the case where the current transform block is 8×8 in size and the sub-blocks are 4×4 in size as an example. The skip region information of the first sub-block that needs to be decoded is true, and the corresponding sub-block contains coefficients that need to be decoded. Because only the coefficients outside the skip region need to be decoded, therefore, in the case of... Figure 7In the illustrated example, only the base coefficient and the 1, 0, 0, and -2 above it need to be decoded. As described above, the decoded values for non-zero coefficients will be true, false, false, and true, respectively. Assuming N is 2, information greater than 1 is decoded only for coefficients determined to be non-zero. The values greater than 1 for coefficients 1 and -2 will be decoded as false and true, respectively. Information greater than 2 is only decoded when the value greater than 1 is true; the value greater than 2 for coefficient 2 will be decoded as false. Next, the signs of coefficients 1 and -2, i.e., + and -, are decoded respectively. Then, because a next sub-block exists, the process moves to the next sub-block.
[0167] The skipped area information of the second sub-block that needs to be decoded is true, and the corresponding sub-block contains coefficients that need to be decoded; therefore, its sub-block information is true. Thus, only the coefficients outside the skipped area (0, 0, and 1) need to be decoded. After decoding the non-zero coefficients of 0, 0, and 1 as false, false, and true respectively, only the coefficient 1 (greater than 1) is decoded as false. After decoding the sign information of coefficient 1 as +, the process moves to the next sub-block.
[0168] The skipped region information of the third sub-block that needs to be decoded is true, and there are coefficients that need to be decoded within the corresponding sub-block; therefore, its sub-block information is true. The coefficients outside the skipped region are arranged in reverse scan order as follows: 0, 0, 0, 0, 0, 1, 1, 1, 1, -2, -2, 1, -3, 3, 10. The coefficients are then decoded using steps S1204 to S1207.
[0169] (Second Embodiment)
[0170] Next, a second embodiment to which the present invention is applied will be described with reference to the accompanying drawings.
[0171] The encoded information will undergo a context-adaptive binary arithmetic process through binaryization. The context-adaptive binary arithmetic process refers to symbolizing the encoded information within a block and applying different symbol occurrence probabilities to perform encoding based on the circumstances. In this embodiment, only the symbols 0 and 1 are used for illustrative purposes, but the number of symbols can be N (N is a natural number greater than 2).
[0172] Probabilistic information refers to the probability of 0 and 1 occurring in binary information. The probability of two pieces of information occurring can be set to be the same or different based on previously reconstructed information. It can also be based on the fact that information has N probability pieces of information.
[0173] Figure 13This is a flowchart illustrating a context-adaptive binary arithmetic encoding method applicable to one embodiment of the present invention. First, in step S1301, the probabilities are initialized. Probability initialization refers to the process of dividing binary information into probability intervals according to the probabilities set in the probability information. Regarding which probability information to use, the same conditions can be used in either the encoding or decoding device according to any pre-set specifications, or the probability information can be encoded separately. The initial probability intervals can be determined to have the same value during the encoding / decoding process according to pre-set specifications. Alternatively, the initial probability intervals can also be encoded and used.
[0174] In step S1302, after determining the binary information of the current encoding parameter that needs to be encoded, in step S1303, the binary information of the current encoding parameter is encoded using the probability interval state before step S1302 and the previous probability information of the same encoding parameter. In step S1304, the probability information and probability interval are updated for the next binary information that needs to be encoded. In step S1305, when there is a next encoding parameter information that needs to be encoded, in step S1306, the process moves to the next encoding parameter information and repeats the process described above. When there is no next encoding parameter information that needs to be encoded, the flowchart ends.
[0175] Figure 14 This is a flowchart illustrating a context-adaptive binary arithmetic decoding method applicable to one embodiment of the present invention. Unlike the encoding device, in step S1402, after decoding the binary information of the encoding parameters using probability information and intervals in the decoding device, in step S1403, the binary information of the current encoding parameters is determined. Furthermore, Figure 14 The decoding method shown in the figure is the same as Figure 13 The encoding method shown in the diagram corresponds to a specific encoding method, so its detailed explanation will be omitted.
[0176] The above content explains Figure 13 as well as Figure 14 In steps S1301 and S1402, encoding or decoding can be performed by selectively using the best probability information from a set of N pre-defined probability information, taking advantage of the surrounding reconstructed information in each encoding parameter. For example, as probability information belonging to information in a quantized transform block, probability information with a higher probability of occurrence can be applied based on the size of the transform block.
[0177] Alternatively, it can apply different probability information to the information surrounding the coefficients that need to be encoded or decoded, or it can use the probability information of previously encoded or decoded information to select the probability information of the information that needs to be encoded or decoded.
[0178] Figures 15a to 15c This is a schematic diagram illustrating an example of applying different probability information based on peripheral coefficient information. Figure 15b This is an example of a probability information table used when encoding or decoding the Sig_coeff_flag information value of the current coefficient. Referring to Figure 15, among the coefficients adjacent to the coefficient 1501 that needs to be encoded or decoded, if there is one coefficient with the same Sig_coeff_flag information value (i.e., 1) as the current coefficient 1501, index 8 is assigned to the current coefficient 1501. At this time, the probability of the current coefficient 1501's Sig_coeff_flag binary information (symbol 1) is 61%, and the probability of symbol 0 is 39%. When there are two neighboring coefficients with the same Sig_coeff_flag information value as the current coefficient 1501, index 5 is assigned to the current coefficient 1501. At this time, the probability of the current coefficient 1501's Sig_coeff_flag binary information (symbol 1) is 71%, and the probability of symbol 0 is 29%. When there are 3 surrounding coefficients with the same Sig_coeff_flag information value as the current coefficient 1501, index 2 is assigned to the current coefficient 1501. The probability of the current coefficient 1501's Sig_coeff_flag binary information being symbol 1 is 87%, and the probability of symbol 0 is 13%. (This is in the context of utilizing...) Figure 15b The probability information table shown in the figure, after encoding or decoding the current coefficient 1501, can be processed according to... Figure 15c The probability information is updated in the manner illustrated.
[0179] Furthermore, for non-zero coefficient information (Sig_coeff_flag), the closer to the low-frequency region, the higher the probability of non-zero coefficient occurrence can be used. Regarding the probability information for coefficients greater than N, the current probability information for coefficients greater than N can be set using the probability information of previously encoded / decoded coefficients greater than N, or the probability information of the first encoded / decoded coefficient greater than N can be used on a sub-block basis. Sub-block information can utilize the probability information of the surrounding M encoded / decoded sub-blocks, or use the probability information of previously encoded / decoded sub-blocks.
[0180] Figures 16a to 16c This is a schematic diagram illustrating various embodiments of dividing a frequency conversion block into multiple regions. See also... Figures 16a to 16c The transformation block can be divided into three regions: frequency region A (1601, 1604, 1607), frequency region B (1602, 1605, 1608), and frequency region C (1603, 1606, 1609). Each region can be adaptively determined according to the scanning direction of the transformation block. Figure 16aWhen the scanning direction of the transformed block is diagonal, Figure 16b When the scanning direction is horizontal, Figure 16c This is an example of a frequency region division method when the scanning direction is vertical. Frequency region A (1601, 1604, 1607) is a low-frequency region with the highest probability of non-zero coefficient information. Frequency region B (1602, 1605, 1608) is a region with fewer non-zero coefficient information compared to region A (1601, 1604, 1607). Frequency region C (1603, 1606, 1609) is a high-frequency region with the fewest non-zero coefficient information compared to regions A (1601, 1604, 1607) and regions B (1602, 1605, 1608). This allows different probability information to be set for each region. Frequency regions A (1601, 1604, 1607), frequency regions B (1602, 1605, 1608), and frequency regions C (1603, 1606, 1609) can also be considered as being divided based on their distance from the mean (DC) coefficient located in the upper left corner of the transform block.
[0181] Revisit Figure 15b The probability information table shown illustrates the following: If the coefficient to be encoded or decoded belongs to region A (1601, 1604, 1607), it will be assigned index 8 with a 61% probability of a sign 1 and a 39% probability of a sign 0. If the coefficient belongs to region B (1602, 1605, 1608), it will be assigned index 5 with a 71% probability of a sign 1 and a 29% probability of a sign 0. If the coefficient belongs to region C (1603, 1606, 1609), it will be assigned index 2 with an 87% probability of a sign 1 and a 13% probability of a sign 0. (The last sentence appears to be incomplete and possibly refers to a further discussion of using index 2.) Figure 15b The probability information table shown in the figure, after encoding or decoding the current coefficient, can be processed according to... Figure 15c The probability information is updated in the manner illustrated.
[0182] The probability information for non-zero coefficients, coefficients greater than N, and sub-block information can use probability information that is closer to region A (1601, 1604, 1607) with a higher probability of occurrence. The probability information for coefficients greater than N can be selected by referring to the non-zero coefficient information. Frequency region segmentation can be performed using the same conditions in the encoding / decoding device, or it can be transmitted to the decoding device after encoding the individual segmented information.
[0183] Figure 17 This is a sequence diagram illustrating an arithmetic encoding method applicable to one embodiment of the present invention. (See also...) Figure 17In step S1701, binary information is derived by binaryizing the transform coefficient values to be encoded. In step S1703, the probability information applicable to the decoding of the binary information is determined based on the position of the transform coefficients within the transform block. (See also...) Figure 16a In the illustrated example, the applicable probability information is determined by which frequency region 1601, frequency region 1602, or frequency region 1603 the current coefficient being encoded belongs to. Frequency region 1601, frequency region 1602, and frequency region 1603 can be considered to be divided based on their distance from the mean (DC) coefficient located in the upper left corner of the transform block.
[0184] Figure 18 This is a sequence diagram illustrating an arithmetic decoding method applicable to one embodiment of the present invention. (See also...) Figure 18 In step S1801, the arithmetically encoded transform coefficient values are extracted from the bitstream. In step S1803, the probability information applicable to the decoding of the arithmetically encoded transform coefficients is determined based on the position of the transform coefficients within the transform block. See above. Figure 16a The illustrated example allows for the determination of which frequency region (A region 1601, B region 1602, or C region 1603) the current coefficient to be decoded belongs to, based on the desired probability information. Frequency regions A 1601, B 1602, and C 1603 can be considered to be divided based on their distance from the mean (DC) coefficient located in the upper left corner of the transform block.
[0185] Next, we will combine Figures 19a to 19c as well as Figure 20 Arithmetic encoding and arithmetic decoding, according to another embodiment of the present invention, will be described.
[0186] In this embodiment, when using Figures 7 to 9 When using the quantized transform coefficients of the skip region as illustrated, different probability information can be used when encoding or decoding the current information, depending on whether the skip region is used or not.
[0187] Assuming that in order to Figure 19a The current coefficient 1901 shown in the figure is used for encoding or decoding in... Figure 19b or Figure 19c The probability information table shown in the figure. Figure 19b The probability information table shown in the figure is the one applicable when skipping regions is not used, while Figure 19c The probability information table shown in the figure is the probability information table applicable when using the skip area.
[0188] See Figure 19a Because there is a skipped region in the transform block or sub-block to which the current coefficient 1901 belongs, it is applicable in order to encode or decode the current coefficient 1901. Figure 19c The probability information table is illustrated in the figure. Therefore, for example, index 5 is assigned to the current coefficient 1901. In the case described above, the probability of symbol 1 is 71% and the probability of symbol 0 is 29%.
[0189] Alternatively, different probability information can be applied based on the number of coefficients greater than N in the surrounding coefficients. As for non-zero coefficient information and coefficients greater than N, the probability information with a higher probability of occurrence can be used based on the number of surrounding encoded / decoded information and the location of the frequency region. For coefficients belonging to the frequency C region and located around the skipped region, the probability information with a lower probability of occurrence, such as non-zero coefficient information, coefficients greater than N, and sub-block information, can also be applied.
[0190] Figure 20 This is a sequence diagram illustrating an arithmetic encoding or decoding method applicable to another embodiment of the present invention. See also... Figures 19a to 19c The explanations above indicate that different probability information is used when encoding or decoding the current information, depending on whether the skip region is used or not.
[0191] See Figure 20 In step S2001, the positions of the reference coefficients within the current transform block that need to be encoded or decoded are first encoded or decoded. Next, in step S2003, the skip region information of the selected skip region is decoded based on the aforementioned reference coefficient positions. In step S2005, after obtaining binary information by binarying the transform coefficient values not included in the aforementioned skip region, a probability information table applicable to the encoding of the aforementioned binary information is selected from multiple probability information tables. These multiple probability information tables include at least two tables, one used when using a skip region and one used when not using a skip region.
[0192] The encoded information will undergo a context-adaptive binary arithmetic process through binaryization. Context-adaptive binary arithmetic refers to the process of symbolizing the encoded information within a block and applying different symbol occurrence probabilities to perform encoding based on the circumstances. In this example, for ease of illustration, only the symbols 0 and 1 are used, but the number of symbols can be N (N is a natural number greater than 2).
[0193] Probabilistic information refers to the probability of 0 and 1 occurring in binary information. The probability of two pieces of information occurring can be set to be the same or different based on previously reconstructed information. It can also be based on the fact that information has N probability pieces of information.
[0194] Figure 21 This is a flowchart illustrating the context-adaptive binary arithmetic encoding method. First, in step S2101, the probabilities are initialized. Probability initialization refers to the process of dividing the binary information into probability intervals according to the probabilities set in the probability information. Regarding which probability information to use, it is possible to use the same conditions according to any pre-defined specifications in either the encoding or decoding device, or the probability information can be encoded separately. The initial probability intervals can be determined to have the same value during the encoding / decoding process according to pre-defined specifications. Alternatively, the initial probability intervals can also be encoded and used.
[0195] In step S2102, after determining the binary information of the current encoding parameters that need to be encoded, in step S2103, using... Figure 21 The probability interval state before step S2102 and the previous probability information of the same encoding parameters are used to encode the binary information of the current encoding parameter. Next, in step S2104, the probability information and probability interval are updated for the next binary information to be encoded. Next, in step S2105, if there is a next encoding parameter information to be encoded, in step S2106, the process moves to the next encoding parameter information and repeats the process described above. When there is no next encoding parameter information to be encoded, the flowchart ends.
[0196] Figure 22 This is a flowchart illustrating the context-adaptive binary arithmetic decoding method. Unlike the encoding device, in step S2202, after the decoding device decodes the binary information of the encoding parameters using probability information and intervals, in step S2203, the binary information of the current encoding parameters is determined. In addition, Figure 22 The decoding method shown in the figure is the same as Figure 21 The encoding method shown in the diagram corresponds to a specific encoding method, so its detailed explanation will be omitted.
[0197] The above content explains Figure 21 as well as Figure 22 In steps S2101 and S2202, encoding or decoding can be performed by selectively using the best probability information from N pre-set probability information using the surrounding reconstructed information (or encoding parameters) in each encoding parameter.
[0198] For example, as probabilistic information belonging to a quantized transform block (or encoding parameters), probabilistic information with a higher probability of occurrence can be applied based on the size of the transform block.
[0199] Alternatively, it can apply different probability information to the information surrounding the coefficients that need to be encoded or decoded, or it can use the probability information of previously encoded or decoded information to select the probability information of the information that needs to be encoded or decoded.
[0200] Figure 23a , Figure 23b This is a schematic diagram illustrating an example of applying different probability information based on peripheral coefficient information.
[0201] Figure 23a This is an instance of the probability information table used when encoding or decoding the Sig_coeff_flag value of the current coefficient. Among the coefficients adjacent to the coefficient currently being encoded or decoded, if there is one coefficient with the same Sig_coeff_flag value as the current coefficient, index 8 is assigned to the current coefficient. At this time, the probability of the current coefficient's Sig_coeff_flag binary information (symbol 1) is 61%, and the probability of symbol 0 is 39%. If there are two neighboring coefficients with the same Sig_coeff_flag value as the current coefficient, index 5 is assigned to the current coefficient. At this time, the probability of the current coefficient's Sig_coeff_flag binary information (symbol 1) is 71%, and the probability of symbol 0 is 29%. If there are three neighboring coefficients with the same Sig_coeff_flag value as the current coefficient, index 2 is assigned to the current coefficient. The probability of the current coefficient's Sig_coeff_flag binary information (symbol 1) is 87%, and the probability of symbol 0 is 13%.
[0202] In use Figure 23a The probability information table shown in the figure, after encoding or decoding the current coefficient, can be processed according to... Figure 23b The probability information is updated in the manner illustrated.
[0203] Furthermore, for non-zero coefficient information, i.e., Sig_coeff_flag, the closer to the low-frequency region, the higher the probability information of the occurrence of non-zero coefficient information, i.e., Sig_coeff_flag, can be used.
[0204] Furthermore, regarding the probability information for coefficients greater than N, the probability information for the current coefficients greater than N can be set using the probability information of previously encoded / decoded coefficients greater than N, or the probability information of the first encoded / decoded coefficients greater than N can be used on a sub-block basis. As mentioned above, the coefficients greater than N can include flags such as Abs_greater1_flag, Abs_greater2_flag, and Abs_greater3_flag.
[0205] In addition, the sub-block information Coded_sub_blk_flag can utilize the probability information of the surrounding M encoded / decoded sub-blocks, or use the probability information of previously encoded / decoded sub-blocks.
[0206] (Third Embodiment)
[0207] Figure 24 This is a flowchart illustrating a method for determining the probability information of each coding parameter based on the position of a reference coefficient and encoding the coding parameter information using the probability information, according to an embodiment of the present invention. Figure 24 The flowchart shown can be executed by the entropy encoding unit 107 of the image encoding device 100.
[0208] See Figure 24 In step S2401, the entropy coding unit 107 first encodes the positions of the reference coefficients within the current transform block that need to be encoded. The positions of the reference coefficients can be encoded using the reference coefficient position information, i.e., Last_sig.
[0209] As described above, the reference coefficient can refer to the first non-zero coefficient when scanning coefficients in reverse scanning order, or it can be determined by other conditions set in the same way in the image encoding device 100 and the image decoding device 200.
[0210] In step S2402, the probability information of each coding parameter is derived based on the position of the reference coefficient, and the corresponding coding parameters are encoded.
[0211] For the method of setting the probability table based on the position of the benchmark coefficient, please refer to [link / reference]. Figure 25 The example shown in the figure.
[0212] See Figure 25 Region A 2500 refers to any region whose mean (DC) coefficient is closest to that within the transform block, and region B 2501 refers to any other region within the transform block that is not region A 2500. Furthermore, the transform block can be divided into more than N regions. The information representing any region A can be transmitted via the upper-level header, or it can be determined in both the image encoding device 100 and the image decoding device 200 based on the transform block shape under the same conditions.
[0213] exist Figure 25 In this system, based on whether the baseline coefficient is located in region A 2500 or region B 2501, different coding parameter probability information can be derived within a single probability table, and the probability information of the coding parameters can be updated.
[0214] Alternatively, the probability information of the encoded parameters can be updated independently using two or more different initial probability tables or the same initial probability table, depending on which region (A or B) the reference coefficient location exists in.
[0215] The following will provide a detailed example of the above method.
[0216] When two identical initial probability tables are used independently for encoding in order to derive the probabilistic information used to indicate whether each coefficient within the transform block is 0, it is possible to utilize the base coefficients of the transform block when they exist in region A, 2500. Figure 26a The 2600 table shown in the diagram can be used when it exists in region B, 2501. Figure 26a The 2601 table shown in the figure updates the probability information of Sig_coeff_flag independently.
[0217] Figure 26b The probability table 2602 shown in the figure is... Figure 26a The result of updating the probability information based on the initial probability table of 2600 shown in the figure, after determining the probability table index information based on the position of the baseline coefficient to be 5. Figure 26b The probability table 2603 shown in the figure is... Figure 26a The result is that the probability information is updated after determining the probability table index information based on the baseline coefficient position to be 8, based on the initial probability table 2601 shown in the figure.
[0218] Based on the same principle as the example above, the probability information of Abs_greater1_flag, which indicates whether the absolute value of the coefficients within the transform block is greater than 1, is encoded such that the probability of selecting Abs_greater1_flag as 1 is higher when the base coefficient is in region A, and the probability of selecting Abs_greater1_flag as 0 is higher when the base coefficient is in region B.
[0219] Furthermore, regarding the method for determining which index information to use to represent the probability within the probability table, the index information can be determined based on the detailed coordinates of the baseline coefficients.
[0220] For example, when the detailed coordinates of the reference coefficients within the transform block are located at the top left of region A ( Figure 25 In 2502), at Figure 26a The initial probability table of 2600 can determine the index information of the probability table based on the position of the baseline coefficient as 5. Furthermore, as... Figure 26b As shown in probability table 2602, the probability information of index information 5 can be updated.
[0221] Furthermore, when the detailed coordinates of the reference coefficients within the transformation block are located in the middle of region B ( Figure 25 In 2503), at Figure 26a The initial probability table 2601 can determine the index information of the probability table based on the position of the baseline coefficient as 8. Furthermore, as... Figure 26b As shown in probability table 2603, the probability information of index information 8 can be updated. Figure 27 This is a flowchart illustrating a method for determining the probability information of each coding parameter based on the position of a reference coefficient and decoding the coding parameter information using the probability information, according to an embodiment of the present invention. Figure 27 The decoding method illustrated can be executed by the entropy decoding unit 201 of the image decoding device 200.
[0222] See Figure 27 In step S2701, the entropy decoding unit 201 first decodes the positions of the reference coefficients within the current transform block that needs to be decoded. As mentioned above, the reference coefficient refers to the first non-zero coefficient when scanning the coefficients in reverse scanning order. In step S2702, the probability information of each encoding parameter is derived based on the position of the reference coefficient, and the corresponding parameter information is decoded.
[0223] (Example 4)
[0224] Figure 28 This is a flowchart illustrating a method for deriving and encoding the probability information of each encoding parameter based on partial information of the mean (DC) coefficient, according to one embodiment of the present invention. Figure 28 The encoding method illustrated can be executed by the entropy encoding unit 107 of the image encoding device 100.
[0225] See Figure 28 In step S2801, partial information of the mean (DC) coefficient can be encoded. In step S2802, the probability information of each encoded parameter can be derived based on the partial information of the mean (DC) and the corresponding encoded information can be encoded.
[0226] The mean (DC) coefficient can be the coefficient located at the top left of the transform block or the first non-zero coefficient (not a zero coefficient) in the reverse scan order.
[0227] Furthermore, the partial information of the mean (DC) coefficient refers to a portion of the information required for encoding and decoding the mean (DC) coefficient. For example, the partial information of the mean (DC) coefficient could refer to at least one of the Sig_coeff_flag information and the Abs_greater1_flag information of the mean (DC) coefficient.
[0228] Using partial information from the mean (DC) coefficients, it is possible to derive different probability information of the coding parameters other than the partial information from the mean (DC) coefficients within a single probability table and update the probability information of the coding parameters.
[0229] Alternatively, the probability information of the encoded parameters can be updated independently using two or more different initial probability tables or the same initial probability table, based on partial information of the mean (DC) coefficients.
[0230] The following will provide a detailed example of the above method.
[0231] To derive the probabilistic information for the Sig_coeff_flag indicating whether each coefficient within the transform block is 0, two identical initial probability tables can be used independently for encoding, while partial information of the mean (DC) coefficients can be obtained using only the Sig_coeff_flag information. When the partial information of the mean (DC) coefficients is 0, it can be used... Figure 26a The 2600 table shown in the figure can be used when the partial information of the mean (DC) is 1. Figure 26a The 2601 table shown in the figure updates the probability information of Sig_coeff_flag independently.
[0232] Based on the same principle as the example above, the probability information of Abs_greater1_flag, which indicates whether the absolute value of the coefficients within the transform block is greater than 1, is encoded such that the probability of Abs_greater1_flag being 1 is higher when the partial information of the mean (DC) coefficient, i.e., Sig_coeff_flag, is 1, and the probability of Abs_greater1_flag being 0 is higher when the partial information of the mean (DC) coefficient, i.e., Sig_coeff_flag, is 0.
[0233] Regarding the method for determining which probability to use in the probability table, the index information can be determined based on partial information of the mean (DC) coefficient.
[0234] For example, if the Sig_coeff_flag information of the currently encoded coefficients is 1, it is possible to... Figure 26a The index information of the initial probability table for 2600 shown in the diagram is determined to be 5. Furthermore, as... Figure 26b As shown in probability table 2602, the probability information of index information 5 can be updated.
[0235] Furthermore, if the Sig_coeff_flag information of the currently encoded coefficients is 0, it is possible to... Figure 26aThe index information of the initial probability table for 2601 shown in the diagram is determined to be 8. Furthermore, as... Figure 26b As shown in probability table 2603, the probability information of index information 8 can be updated.
[0236] Figure 29 This is a flowchart illustrating the encoding method for transform block coefficients that utilizes partial information from the mean (DC) coefficients.
[0237] In step S2901, the baseline coefficient information is encoded. Next, in step S2902, partial information of the mean (DC) coefficient is encoded. If the position of the mean (DC) coefficient is pre-set in the encoding / decoding device, the encoding process for the position of the mean (DC) coefficient can be omitted. Otherwise, in step S2903, the position of the mean (DC) coefficient is encoded. If a sub-block within the transform block contains the baseline coefficient, it indicates that it contains coefficients that need to be encoded; therefore, the sub-block information, i.e., Coded_sub_blk_flag, does not need to be encoded. Next, in step S2906, information on coefficients that are not zero is encoded; in step S2907, information on coefficients greater than N is encoded; in step S2908, sign information is encoded; and in step S2909, residual coefficient information is encoded. However, since some information about the mean (DC) coefficient has already been encoded, the steps applicable to the partial information of the mean (DC) coefficient can be omitted when encoding the mean (DC) coefficient in steps S2906 to S2909.
[0238] Next, in step S2911, when there is a next sub-block, in step S2912, move to the next sub-block, and then encode the information in the order of steps S2906 to S2909. When there is no next sub-block, the algorithm ends.
[0239] Figure 30 This is a flowchart illustrating a method for deriving and decoding the probability information of each encoding parameter based on partial information of the mean (DC) coefficient, according to one embodiment of the present invention. Figure 30 The decoding method illustrated can be executed by the entropy decoding unit 201 of the image decoding device 200.
[0240] See Figure 30 In step S3001, the partial information of the mean (DC) coefficient is first decoded in the entropy decoding unit 201. In step S3002, the probability information of each coding parameter is derived based on the partial information of the mean (DC) coefficient, and the corresponding coding information is decoded.
[0241] Figure 31This is a flowchart illustrating a method for decoding block coefficients that utilizes partial information from the mean (DC) coefficients.
[0242] In step S3101, the baseline coefficient information is decoded. Next, in step S3102, partial information of the mean (DC) coefficient is decoded. If the position of the mean (DC) coefficient is pre-set in the encoding / decoding device, the decoding process for the position of the mean (DC) coefficient can be omitted. Otherwise, in step S3103, the position of the mean (DC) coefficient is decoded. If a sub-block within the transform block contains the baseline coefficient, it indicates the presence of coefficients that need to be decoded; therefore, decoding of the sub-block information, i.e., Coded_sub_blk_flag, is not required. Next, in step S3106, non-zero coefficient information is decoded; in step S3107, coefficient information greater than N is decoded; in step S3108, sign information is decoded; and in step S3109, residual coefficient information is decoded. However, since some information about the mean (DC) coefficient has already been decoded, the steps applicable to the partial information of the mean (DC) coefficient can be omitted when decoding the mean (DC) coefficient in steps S3106 to S3109.
[0243] Next, in step S3111, when there is a next sub-block, in step S3112, move to the next sub-block, and then decode the information in the order of steps S3106 to S3109. When there is no next sub-block, the algorithm ends.
[0244] (5th embodiment)
[0245] Figure 32 This is a flowchart illustrating a method for deriving and encoding the probability information of each encoding parameter based on the distance between the mean (DC) coefficient and the benchmark coefficient, and partial information of the mean (DC) coefficient, according to one embodiment of the present invention. Figure 32 The encoding method illustrated can be executed by the entropy encoding unit 107 of the image encoding device 100.
[0246] See Figure 32In step S3201, the entropy encoding unit 107 first encodes the position of the reference coefficient of the current transform block. As described above, the reference coefficient can refer to the first non-zero coefficient when scanning the coefficients in reverse scanning order, or it can be determined by other conditions set in the same way in the image encoding device 100 and the image decoding device 200. After encoding some information of the mean (DC) coefficient, in step S3202, the probability information of the encoding parameters is derived based on the distance between the mean (DC) coefficient and the reference coefficient and the partial information of the mean (DC) coefficient, and the corresponding parameter information is encoded.
[0247] The mean (DC) coefficient can be the coefficient located at the top left of the transform block or the first non-zero coefficient (not a zero coefficient) in the reverse scan order.
[0248] Furthermore, the partial information of the mean (DC) coefficient refers to a portion of the information required for encoding and decoding the mean (DC) coefficient. For example, the partial information of the mean (DC) coefficient could refer to at least one of the Sig_coeff_flag information and the Abs_greater1_flag information of the mean (DC) coefficient.
[0249] Using the distance between the mean (DC) coefficient and the benchmark coefficient, as well as some information about the mean (DC) coefficient, it is possible to derive different probability information of the coding parameters other than the partial information about the mean (DC) coefficient within a single probability table and update the probability information of the coding parameters.
[0250] Alternatively, the probability information of the encoded parameters can be updated independently using two or more different initial probability tables or the same initial probability table, based on the distance between the mean (DC) coefficient and the benchmark coefficient, as well as partial information about the mean (DC) coefficient.
[0251] The method for determining the distance information between the mean (DC) coefficient and the reference coefficient can determine the distance information in the same way according to a pre-set rule in the encoding / decoding device, and can also encode the distance information.
[0252] The following will provide a detailed example of the above method.
[0253] To derive the probabilistic information for the Sig_coeff_flag indicating whether each coefficient within the transform block is 0, three identical initial probability tables can be used independently for encoding, while some information of the mean (DC) coefficients can be obtained using only the Sig_coeff_flag information. When the distance between the mean (DC) coefficient and the baseline coefficient exceeds a pre-defined threshold, [the following is used]. Figure 33The 3300 table shown in the figure uses a parameter when the distance between the mean (DC) coefficient and the benchmark coefficient is less than any pre-set threshold. Figure 33 The diagram illustrates tables 3301 and 3302. The pre-set threshold can be a value pre-defined in the encoding / decoding device, or a value based on information determined in the encoding device and transmitted to the decoding device. In this case, which probability table from tables 3301 or 3302 is used can be determined based on partial information about the mean (DC) coefficient. For example, when the partial information about the mean (DC) coefficient, i.e., the Sig_coeff_flag information, is 1, it can be used... Figure 33 The diagram shows table 3301, and it can be used when the value is 0. Figure 33 The 3302 table shown in the figure determines the probability information.
[0254] Furthermore, regarding the method for determining which probability to use in the probability table, it is possible to correct the index information determined based on partial information of the mean (DC) coefficient after determining the index information based on the distance information between the mean (DC) coefficient and the benchmark coefficient.
[0255] Figure 34 This is a flowchart illustrating a method for deriving and decoding the probability information of each encoding parameter based on the distance between the mean (DC) coefficient and the benchmark coefficient, and partial information of the mean (DC) coefficient, according to one embodiment of the present invention. Figure 34 The decoding method illustrated can be executed by the entropy decoding unit 201 of the image decoding device 200.
[0256] See Figure 34 In step S3401, the entropy decoding unit 201 first decodes the position of the reference coefficient and partial information of the mean (DC) coefficient of the current transform block. As described above, the reference coefficient can refer to the first non-zero coefficient when scanning the coefficients in reverse scanning order, or it can be determined by other conditions set in the same way in the image encoding device 100 and the image decoding device 200. Furthermore, in step S3402, the probability information of the encoding parameters is derived based on the distance between the mean (DC) coefficient and the reference coefficient and partial information of the mean (DC) coefficient, and the corresponding parameter information is decoded.
[0257] In the image encoding device 100 and the image decoding device 200, the encoding / decoding algorithm can be coupled with the above-described pair. Figure 29 as well as Figure 31 The description is the same.
[0258] The exemplary methods in this disclosure are described as a sequence of actions for clarity of explanation, but this is not intended to limit the order in which the steps are executed. The steps can be executed simultaneously or in different orders if necessary. To implement the methods in this disclosure, additional steps can be added to the example steps, or only the remaining steps (excluding some steps) can be included, or additional steps can be added after excluding some steps.
[0259] The various embodiments described herein are not a list of all possible combinations, but are merely illustrative of representative forms of the disclosure. The matters described in the various embodiments may apply independently or in combination of two or more.
[0260] Furthermore, the various embodiments described in this disclosure can be implemented using hardware, firmware, software, or a combination thereof. When implemented in hardware, they can be implemented using one or more ACICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), general-purpose processors, controllers, microcontrollers, microprocessors, etc.
[0261] The scope of this disclosure includes software, device-executable instructions (e.g., operating systems, applications, firmware, programs, etc.) that enable actions in methods of various embodiments to be executed on an apparatus or computer, and a device- or computer-executable non-transitory computer-readable medium storing the aforementioned software or instructions.
[0262] Industry availability
[0263] The present invention is an apparatus for encoding / decoding images.
Claims
1. An image decoding method, the method comprising: The positions of the reference coefficients within the current transform block are decoded, where the current transform block is divided into multiple sub-blocks; and Based on the position of the reference coefficients, the transform coefficients of the current transform block are decoded on a sub-block basis. In this process, the transform coefficients of the current transform block are decoded according to the diagonal scan order. The steps for decoding the transform coefficients of the current transform block include: The probability information for determining the absolute value of the current coefficient is based on the encoding parameters of its neighboring coefficients and the position of the benchmark coefficient. The encoding parameters of the neighboring coefficients include a significance coefficient flag, which indicates whether the neighboring coefficient is not zero. The absolute value information of the current coefficient is decoded using probability information. The baseline coefficient is the first non-zero coefficient in the reverse scan order among the transform coefficients in the current transform block. The absolute value information of the current coefficient indicates whether the absolute value of the current coefficient is greater than 3.
2. The image decoding method according to claim 1, wherein, Proximity coefficients include coefficients with coordinates (x+2, y), (x+1, y+1), and (x, y+2). Where x and y represent the coordinates of the current coefficient.
3. The image decoding method according to claim 2, further comprising: Determine the region to which the current coefficient belongs from among multiple regions in the current transform block. In this process, the probability information of the absolute value is determined by further considering the location of the region to which the current coefficient belongs.
4. The image decoding method according to claim 3, wherein, The current transform block is divided into multiple regions based on the distance from the top-left coefficient in the current transform block.
5. An image coding method, the method comprising: The positions of the reference coefficients within the current transform block are encoded, wherein the current transform block is divided into multiple sub-blocks; and Based on the position of the reference coefficient, the transform coefficients of the current transform block are encoded on a sub-block basis. The transform coefficients of the current transform block are encoded according to the diagonal scan order. The steps for encoding the transform coefficients of the current transform block include: The probability information for determining the absolute value of the current coefficient is based on the encoding parameters of its neighboring coefficients and the position of the benchmark coefficient. The encoding parameters of the neighboring coefficients include a significance coefficient flag, which indicates whether the neighboring coefficient is not zero. The absolute value information of the current coefficient is encoded using probability information. The baseline coefficient is the first non-zero coefficient in the reverse scan order among the transform coefficients in the current transform block. The absolute value information of the current coefficient indicates whether the absolute value of the current coefficient is greater than 3.
6. A method for transmitting a bit stream, comprising: A bit stream is generated by performing an encoding method using an entropy coding unit (107); as well as The bit stream is sent using an entropy coding unit (107). The encoding method includes: The positions of the reference coefficients within the current transform block are encoded, wherein the current transform block is divided into multiple sub-blocks; and Based on the position of the reference coefficient, the transform coefficients of the current transform block are encoded on a sub-block basis. The transform coefficients of the current transform block are encoded according to the diagonal scan order. The steps for encoding the transform coefficients of the current transform block include: The probability information for determining the absolute value of the current coefficient is based on the encoding parameters of its neighboring coefficients and the position of the benchmark coefficient. The encoding parameters of the neighboring coefficients include a significance coefficient flag, which indicates whether the neighboring coefficient is not zero. The absolute value information of the current coefficient is encoded using probability information. The baseline coefficient is the first non-zero coefficient in the reverse scan order among the transform coefficients in the current transform block. The absolute value information of the current coefficient indicates whether the absolute value of the current coefficient is greater than 3.
Citation Information
Patent Citations
Method and apparatus for encoding and decoding transform coefficients
US20090232204A1
Simplified Context Selection For Entropy Coding of Transform Coefficient Syntax Elements
US20130003858A1
Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
US20140307801A1