Image encoding / decoding method and apparatus

JP7936607B2Active Publication Date: 2026-10-16IND ACAD CO OPERATION FOUNDATION OF SEJONG UNIV
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024107527
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-01-19
Filing Date
2024-07-03
Publication Date
2026-10-16
Estimated Expiration
2038-01-31

Smart Images

  • Figure 0007936607000001
    Figure 0007936607000001
  • Figure 0007936607000002
    Figure 0007936607000002
  • Figure 0007936607000003
    Figure 0007936607000003
Patent Text Reader

Abstract

To provide a method and an apparatus for encoding / decoding an image that improve the coding efficiency.SOLUTION: A method of encoding an image comprises: a step S601 of encoding a position of a reference coefficient within a current transform block to be encoded; and a step S602 of encoding skip region information of a skip region selected on the basis of the position of the reference coefficient, where the skip region information represents whether coefficients within the skip region have an identical coefficient value. The amount of data encoded is reduced by entropy encoding or decoding using a skip region, and arithmetic encoding and arithmetic decoding performance is improved by effectively selecting probability information to be applied to encoding or decoding of each symbol in performing context-adaptive arithmetic encoding and decoding.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present invention relates to an image signal encoding / decoding method and apparatus, and more specifically, to entropy encoding / decoding.

BACKGROUND ART

[0002] Recently, the demand for multimedia data such as moving images has been increasing sharply on the Internet. However, the speed at which channel bandwidth develops cannot keep up with the rapidly increasing volume of multimedia data. In consideration of this situation, VCEG (Video Coding Expert Group) of ITU-T, which is an international standardization organization, and MPEG (Moving Picture Expert Group) of ISO / IEC established HEVC (High Efficiency Video Coding) version 1, a moving image compression standard, in February 2014.

[0003] HEVC has various technologies such as intra prediction, inter prediction, transform, quantization, entropy coding, and in-loop filter. The information that serves as the input for entropy coding is generated using various methods. As the size of the input image or unit block to be encoded or decoded increases, the amount of data to be entropy coded may increase sharply.

SUMMARY OF THE INVENTION

PROBLEMS TO BE SOLVED BY THE INVENTION

[0004] In order to solve the aforementioned problems, the main object of the present invention is to provide a more efficient entropy encoding and decoding technique.

[0005] Further, the main object of the present invention is to reduce the amount of data to be encoded by performing entropy encoding or decoding using a skip region.

[0006] Furthermore, the primary objective of the present invention is to improve the performance of arithmetic coding and decoding by effectively selecting the probability information applied to the coding or decoding of each symbol during context-adaptive arithmetic coding and decoding. [Means for solving the problem]

[0007] An image encoding method or encoding apparatus according to one embodiment of the present invention can encode the position of a reference coefficient in the current transformation block to be encoded, and encode skip region information for a skip region selected based on the position of the reference coefficient.

[0008] The skip region information can indicate whether the coefficients within the skip region have the same coefficient value or not.

[0009] An image encoding method or encoding apparatus according to another embodiment of the present invention can binarize the values ​​of conversion coefficients, obtain binarized information, and determine probability information to be applied to the encoding of the binarized information based on the position of the conversion coefficients within the conversion block.

[0010] The probability information applied to the encoding of the binarized information can be determined by which region the transformation coefficients are located within the transformation block, which is divided into multiple regions.

[0011] An image encoding method or encoding apparatus according to another embodiment of the present invention can encode the position of a reference coefficient in the current transformation block to be encoded, encode skip region information for a skip region selected based on the position of the reference coefficient, binarize the values ​​of transformation coefficients not included in the skip region, obtain the binarized information, and select a probability information table from a plurality of probability information tables to apply to encoding the binarized information.

[0012] The probability information table applied to the encoding of the binarized information can be selected depending on whether or not the skip region is used in the encoding of the current transformation block.

[0013] An image decoding method or decoding apparatus according to one embodiment of the present invention can decode the position of a reference coefficient in the current conversion block to be decoded, and decode skip region information for a skip region selected based on the position of the reference coefficient.

[0014] The skip region information can indicate whether the coefficients within the skip region have the same coefficient value or not.

[0015] An image decoding method or decoding apparatus according to another embodiment of the present invention can obtain arithmetic encoded values ​​of transformation coefficients from a bitstream and determine probability information to be applied to decoding the arithmetic encoded transformation coefficients based on the position of the transformation coefficients within the transformation block.

[0016] The probability information applied to decoding the arithmetic-encoded transformation coefficient can be determined by which region the transformation coefficient is located in within the transformation block, which is divided into multiple regions.

[0017] Another embodiment of the present invention provides an image decoding method or decoding apparatus which can decode the position of a reference coefficient in the current transformation block to be decoded, decode skip region information for a skip region selected based on the position of the reference coefficient, obtain arithmetic encoded values ​​of transformation coefficients not included in the skip region, and select a probability information table from a plurality of probability information tables to apply to decoding the arithmetic encoded values ​​of the transformation coefficients.

[0018] The probability information table to be applied to decoding the arithmetic encoded value of the conversion coefficient can be selected from any of the multiple probability information tables, depending on whether or not the skip region is used to decode the current conversion block.

[0019] One aspect of the present invention is an image decoding method that includes the steps of decoding the position of a reference coefficient in the current transformation block, inducing probability information of coding parameters based on the position of the reference coefficient, and decoding the coding parameters using the induced probability information.

[0020] In the above-mentioned image decoding method, the reference coefficient may be the first non-zero coefficient in the reverse scan order of the coefficients in the current transformation block.

[0021] In the image decoding method described above, the current transformation block is 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 coefficients are located in.

[0022] One aspect of the present invention is an image decoding method that includes the steps of decoding partial information of the DC coefficients of a current transformation block, deriving probability information of coding parameters based on the partial information of the DC coefficients, and decoding the coding parameters using the deriveted probability information.

[0023] In the above-mentioned image decoding method, the DC coefficient may be a coefficient located on the upper left side of the current conversion block.

[0024] In the image decoding method described above, the partial information of the DC coefficient may be at least one piece of information for decoding the DC coefficient.

[0025] The method for decoding the image further includes a step of decoding the position of the reference coefficient in the current transformation block, wherein the probability information of the coding parameter can be derived based on the distance information between the DC coefficient and the reference coefficient and the partial information of the DC coefficient.

[0026] An image encoding method according to an aspect of the present invention may comprise the steps of: encoding a position of a reference coefficient in a current transform block; deriving probability information of an encoding parameter based on the position of the reference coefficient; and encoding the encoding parameter using the derived probability information.

[0027] In the image encoding method, the reference coefficient may be the first non-zero coefficient in the inverse scan order of coefficients within the current transform block.

[0028] In the image encoding method, the current transform block is divided into a first region and a second region, and the probability information of the encoding parameter can be determined based on which region the reference coefficient is located in.

[0029] The image encoding method may comprise the steps of: encoding partial information of a DC coefficient of a current transform block; deriving probability information of an encoding parameter based on the partial information of the DC coefficient; and encoding the encoding parameter using the derived probability information.

[0030] In the image encoding method, the DC coefficient may be a coefficient located at an upper left side of the current transform block.

[0031] In the image encoding method, the partial information of the DC coefficient may be at least one piece of information among information for encoding the DC coefficient.

[0032] The image encoding method further comprises the step of encoding a position of a reference coefficient in the current transform block, wherein the probability information of the encoding parameter can be derived based on distance information between the DC coefficient and the reference coefficient and the partial information of the DC coefficient. [Advantageous Effects of Invention]

[0033] According to the present invention, the amount of encoded information generated as a result of encoding moving images can be reduced, thereby improving encoding efficiency.

[0034] Furthermore, by effectively selecting the probability information applied to the encoding or decoding of each symbol during context-adaptive arithmetic coding and decoding, the performance of arithmetic coding and decoding can be improved.

[0035] The effects obtained from this disclosure are not limited to those described above, and other effects not mentioned above will be clearly understood by a person with ordinary skill in the art to which this disclosure pertains from the following description. [Brief explanation of the drawing]

[0036] [Figure 1] This is a block diagram of an image encoding device according to one embodiment of the present invention.

[0037] [Figure 2] This is a block diagram of an image decoding apparatus according to one embodiment of the present invention.

[0038] [Figure 3] This is a flowchart showing a method for encoding a conversion block according to one embodiment of the present invention.

[0039] [Figure 4a] This diagram shows diagonal reverse scanning, vertical reverse scanning, and horizontal reverse scanning at the subblock level. [Figure 4b] This diagram shows diagonal reverse scanning, vertical reverse scanning, and horizontal reverse scanning at the subblock level. [Figure 4c] This diagram shows diagonal reverse scanning, vertical reverse scanning, and horizontal reverse scanning at the subblock level. [Figure 4d] This diagram shows diagonal reverse scanning, vertical reverse scanning, and horizontal reverse scanning at the subblock level.

[0040] [Figure 5] This is a flowchart illustrating a method for decoding a conversion block according to one embodiment of the present invention.

[0041] [Figure 6] This flowchart illustrates an image coding method using skip regions according to one embodiment of the present invention.

[0042] [Figure 7] This figure shows a skip region according to one embodiment of the present invention.

[0043] [Figure 8] This figure shows a skip region according to another embodiment of the present invention.

[0044] [Figure 9] This figure shows an additional skip region according to one embodiment of the present invention.

[0045] [Figure 10] This flowchart illustrates a method for encoding a transformation block that includes a skip region or an additional skip region, according to one embodiment of the present invention.

[0046] [Figure 11] This flowchart illustrates an image decoding method using skip regions according to one embodiment of the present invention.

[0047] [Figure 12] This flowchart illustrates a method for decoding a transformation block that includes a skip region or an additional skip region, according to one embodiment of the present invention.

[0048] [Figure 13] This is a flowchart illustrating a context-adaptive binary arithmetic coding method according to one embodiment of the present invention.

[0049] [Figure 14]This is a flowchart illustrating a context-adaptive binary arithmetic decoding method according to one embodiment of the present invention.

[0050] [Figure 15a] This figure shows an example where probability information is applied differently depending on the information of the marginal coefficients. [Figure 15b] This figure shows an example where probability information is applied differently depending on the information of the marginal coefficients. [Figure 15c] This figure shows an example where probability information is applied differently depending on the information of the marginal coefficients.

[0051] [Figure 16a] This figure shows various embodiments of dividing a frequency domain conversion block into multiple domains. [Figure 16b] This figure shows various embodiments of dividing a frequency domain conversion block into multiple domains. [Figure 16c] This figure shows various embodiments of dividing a frequency domain conversion block into multiple domains.

[0052] [Figure 17] This is a flowchart illustrating an arithmetic coding method according to one embodiment of the present invention.

[0053] [Figure 18] This is a flowchart illustrating an arithmetic decoding method according to one embodiment of the present invention.

[0054] [Figure 19a] This figure illustrates arithmetic coding and arithmetic decoding according to another embodiment of the present invention. [Figure 19b] This figure illustrates arithmetic coding and arithmetic decoding according to another embodiment of the present invention. [Figure 19c] This figure illustrates arithmetic coding and arithmetic decoding according to another embodiment of the present invention.

[0055] [Figure 20]This is a flowchart illustrating an arithmetic coding method or decoding method according to another embodiment of the present invention.

[0056] [Figure 21] This is a flowchart illustrating a context-adaptive binary arithmetic coding method according to one embodiment of the present invention.

[0057] [Figure 22] This is a flowchart illustrating a context-adaptive binary arithmetic decoding method according to one embodiment of the present invention.

[0058] [Figure 23a] This figure shows an example where probability information is applied differently depending on the information of the marginal coefficients. [Figure 23b] This figure shows an example where probability information is applied differently depending on the information of the marginal coefficients.

[0059] [Figure 24] This is an encoding flowchart illustrating a method for deriving probability information based on a reference coefficient according to one embodiment of the present invention.

[0060] [Figure 25] This diagram shows the position of the reference coefficient in one embodiment of the present invention.

[0061] [Figure 26a] This figure shows an example where probability information is applied differently depending on the information of the marginal coefficients. [Figure 26b] This figure shows an example where probability information is applied differently depending on the information of the marginal coefficients.

[0062] [Figure 27] This is a decoding flowchart showing a method for deriving probability information based on a reference coefficient according to one embodiment of the present invention.

[0063] [Figure 28] This is an encoding flowchart illustrating a method for deriving probability information based on partial information of a DC according to one embodiment of the present invention.

[0064] [Figure 29] This flowchart illustrates a method for encoding the transformation block coefficients using partial information of the DC coefficients.

[0065] [Figure 30] This is a decoding flowchart illustrating a method for deriving probability information based on partial information of a DC according to one embodiment of the present invention.

[0066] [Figure 31] This flowchart illustrates a method for decoding the transformed block coefficients using partial information of the DC coefficients.

[0067] [Figure 32] This is an encoding flowchart illustrating a method for deriving probability information based on the distance between the DC coefficient and the reference coefficient, and partial information of the DC coefficient.

[0068] [Figure 33] This figure shows an example where probability information is applied differently depending on the information of the marginal coefficients.

[0069] [Figure 34] This is a decoding flowchart showing a method for deriving probability information based on the distance between the DC coefficient and the reference coefficient, and partial information of the DC coefficient. [Modes for carrying out the invention]

[0070] The present invention can be modified in various ways and may have various embodiments; therefore, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this should not be understood as limiting the present invention to specific embodiments, but rather as including all modifications, equivalents, or substitutes that fall within the spirit and technical scope of the present invention. In describing each drawing, similar reference numerals have been used for similar components.

[0071] The terms "first," "second," etc., can be used to describe various components, but these components should not be limited by the terms used above. These terms are used solely for the purpose of distinguishing one component from another. For example, as long as it does not fall outside the scope of the rights of the present invention, the first component may be named the second component, and similarly, the second component may be named the first component. The terms "and / or" include a combination of multiple related descriptions or any of multiple related descriptions.

[0072] When one component is described as being "linked" or "connected" to another component, it should be understood that it may be directly linked or connected to the other component, but there may also be other components intervening between them. Conversely, when one component is described as being "directly linked" or "directly connected" to another component, it should be understood that there are no other components intervening between them.

[0073] The terms used in this invention are solely for the purpose of describing specific embodiments and do not limit the invention. A singular expression includes plural expressions unless the context clearly indicates otherwise. In this invention, terms such as "includes" or "has" specify the presence of features, figures, steps, actions, components, parts, or combinations thereof as described in the specification, and should be understood not to pre-exist the presence or possibility of adding one or more other features, figures, steps, actions, components, parts, or combinations thereof.

[0074] Embodiments of the present invention will be described in detail below with reference to the attached drawings. The same reference numerals are used for identical components in the drawings, and redundant descriptions of identical components are omitted.

[0075] Figure 1 is a block diagram showing an image encoding device according to one embodiment of the present invention.

[0076] Referring to Figure 1, the image coding device 100 may include an image splitting unit 101, an in-frame prediction unit 102, an inter-frame prediction unit 103, a subtraction unit 104, a conversion unit 105, a quantization unit 106, an entropy coding unit 107, an inverse quantization unit 108, an inverse conversion unit 109, an addition unit 110, a filter unit 111, and a memory 112.

[0077] Each component shown in Figure 1 is illustrated independently to illustrate distinct characteristic functions of the image encoding device, and does not mean that each component consists of separate hardware or a single software component. That is, each component is listed and included for the sake of explanation, and at least two of these components can be combined to form one component, or one component can be divided into multiple components to perform functions. Such integrated and separated embodiments of each component are also included within the scope of the present invention, as long as they do not deviate from the essence of the invention.

[0078] Furthermore, some components may not be essential components that perform the essential functions in the present invention, but may be optional components that merely improve performance. The present invention can be realized by including only components that are essential for realizing the essence of the present invention, excluding components that are used merely for performance improvement, and a structure including only essential components, excluding optional components that are used merely for performance improvement, is also included within the scope of the rights of the present invention.

[0079] The image splitting unit 101 can split an input image into at least one block. The input image can have various shapes and sizes, such as pictures, slices, tiles, or segments. A block can represent an encoding unit (CU), a prediction unit (PU), or a transformation unit (TU). The splitting can be based on at least one of a quad tree or a binary tree. A quad tree divides an upper block into four lower blocks, each having half the width and height of the upper block. A binary tree divides an upper block into two lower blocks, each having half the width or height of the upper block. The binary tree-based splitting described above allows blocks to have not only square shapes but also non-square shapes.

[0080] The prediction units 102 and 103 may include an inter-screen prediction unit 103 that performs inter-prediction and an intra-screen prediction unit 102 that performs intra-prediction. It is possible to determine whether to perform inter-prediction or intra-prediction for each prediction unit and to determine specific information for each prediction method (e.g., intra-prediction mode, motion vector, reference picture, etc.). In this case, the processing unit in which prediction is performed and the processing unit in which the prediction method and specific content are defined may be different from each other. For example, the prediction method and prediction mode may be determined at the prediction unit, and the prediction may be executed at the transformation unit.

[0081] The residual values ​​(residual blocks) between the generated prediction blocks and the original blocks can be input to the conversion unit 105. In addition, prediction mode information and motion vector information used for prediction can be encoded together with the residual values ​​by the entropy encoding unit 107 and transmitted to the decoder. When using a specific encoding mode, it is also possible to encode the original blocks directly and transmit them to the decoding unit without generating prediction blocks via the prediction units 102 and 103.

[0082] The in-screen prediction unit 102 can generate prediction blocks based on reference pixel information around the current block, which is pixel information within the current picture. When the prediction mode of the surrounding blocks of the current block to which intra-prediction is performed is inter-prediction, the reference pixels included in the surrounding blocks to which inter-prediction is applied can be replaced with reference pixels in other surrounding blocks to which intra-prediction is applied. In other words, if a reference pixel is unavailable, the unavailable reference pixel information can be replaced with at least one reference pixel from among the available reference pixels.

[0083] In intra-prediction, the prediction mode can include a directional prediction mode that uses reference pixel information according to the prediction direction, and a non-directional mode that does not use directional information when performing prediction. The mode for predicting luminance information and the mode for predicting color difference information may be different from each other, and the intra-prediction mode information or predicted luminance signal information used for predicting luminance information can be utilized to predict color difference information.

[0084] The in-screen prediction unit 102 may include an AIS (Adaptive Intra Smoothing) filter, a reference pixel interpolation unit, and a DC filter. The AIS filter is a filter that filters the reference pixels of the current block, and can adaptively determine whether or not to apply the filter depending on the prediction mode of the current prediction unit. If the current block prediction mode is a mode that does not perform AIS filtering, then the AIS filter does not need to be applied.

[0085] The reference pixel interpolation unit of the in-screen prediction unit 102 can interpolate reference pixels to generate reference pixels at fractional unit positions if the prediction unit's intra-prediction mode is a prediction unit that performs intra-prediction based on pixel values ​​interpolated from reference pixels. If the current prediction unit's prediction mode is a prediction mode that generates prediction blocks without interpolating reference pixels, the reference pixels do not need to be interpolated. The DC filter can generate prediction blocks via filtering if the current block's prediction mode is DC mode.

[0086] The inter-screen prediction unit 103 generates prediction blocks using the already restored reference image and motion information stored in the memory 112. The motion information may include, for example, a motion vector, a reference picture index, a list 1 prediction flag, a list 0 prediction flag, and so on.

[0087] The prediction units 102 and 103 can generate residual blocks containing residual value information, which is the difference between the predicted units generated and the original blocks of the predicted units. The generated residual blocks are input to the conversion unit 105 and converted.

[0088] The inter-screen prediction unit 103 can guide prediction blocks based on information from at least one picture among the previous or subsequent pictures of the current picture. It can also guide prediction blocks of the current block based on information from a portion of the current picture in which encoding has been completed. The inter-screen prediction unit 103 according to one embodiment of the present invention may include a reference picture interpolation unit, a motion prediction unit, and a motion compensation unit.

[0089] In the reference picture interpolation unit, reference picture information is received from memory 112, and pixel information of integer pixels or smaller can be generated in the reference picture. For luminance pixels, a DCT-based 8-tap interpolation filter with different filter coefficients can be used to generate pixel information of integer pixels or smaller in 1 / 4 pixel units. For color difference signals, a DCT-based 4-tap interpolation filter with different filter coefficients can be used to generate pixel information of integer pixels or smaller in 1 / 8 pixel units.

[0090] The motion prediction unit can perform motion prediction based on the reference picture interpolated by the reference picture interpolation unit. Various methods can be used to calculate the motion vector, such as FBMA (Full search-based Block Matching Algorithm), TSS (Three Step Search), and NTS (New Three-Step Search Algorithm). The motion vector can have motion vector values ​​in units of 1 / 2 or 1 / 4 pixels based on the interpolated pixels. The motion prediction unit can predict the predicted block of the current block using different motion prediction methods. Various methods can be used as motion prediction methods, such as the Skip method, Merge method, and AMVP (Advanced Motion Vector Prediction) method.

[0091] The subtraction unit 104 subtracts the block currently to be encoded from the predicted block generated by the in-screen prediction unit 102 or the inter-screen prediction unit 103 to generate the residual block of the current block.

[0092] The transformation unit 105 can transform residual blocks containing residual data using transformation methods such as DCT, DST, and KLT (Karhunen Loeve Transform). The transformation method can be determined based on the intra-prediction mode of the prediction unit used to generate the residual block. For example, depending on the intra-prediction mode, DCT may be used in the horizontal direction and DST in the vertical direction.

[0093] The quantization unit 106 can quantize the values ​​converted to the frequency domain by the conversion unit 105. The quantization coefficients may vary depending on the block or the importance of the image. The values ​​calculated by the quantization unit 106 can be provided to the inverse quantization unit 108 and the entropy coding unit 107.

[0094] The transformation unit 105 and / or quantization unit 106 may be selectively included in the image coding device 100. That is, the image coding device 100 can encode the residual block by performing at least one of transformation or quantization on the residual data of the residual block, or by skipping both transformation and quantization. Blocks that enter the input to the entropy coding unit 107 without undergoing either transformation or quantization by the image coding device 100, or without undergoing both transformation and quantization, are usually called transformation blocks. The entropy coding unit 107 entropy codes the input data. Entropy coding can use various coding methods, such as Exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding).

[0095] The entropy encoding unit 107 can encode various information such as conversion block coefficient information, block type information, prediction mode information, division unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information, and filtering information. The conversion block coefficients can be encoded in units of subblocks within the conversion block.

[0096] For encoding the coefficients of a transformation block, various syntax elements can be encoded, including Last_sig, a syntax element that indicates the position of the first non-zero coefficient in reverse scan order; Coded_sub_blk_flag, a flag that indicates whether there is at least one non-zero coefficient in a subblock; Sig_coeff_flag, a flag that indicates whether a coefficient is non-zero; Abs_greater1_flag, a flag that indicates whether the absolute value of a coefficient is greater than 1; Abs_greater2_flag, a flag that indicates whether the absolute value of a coefficient is greater than 2; and Sign_flag, a flag that indicates the sign of a coefficient. The remaining values ​​of coefficients that are not encoded by the aforementioned syntax elements can be encoded via the syntax element remaining_coeff.

[0097] The inverse quantization unit 108 and the inverse transformation unit 109 inversely quantize the values ​​quantized by the quantization unit 106 and inversely transform the values ​​transformed by the transformation unit 105. The residual values ​​generated by the inverse quantization unit 108 and the inverse transformation unit 109 can be combined with the predicted units predicted via the motion estimation unit, motion compensation unit, and in-screen prediction unit 102 included in the prediction units 102 and 103 to generate a reconstructed block. The auger 110 adds the predicted blocks generated by the prediction units 102 and 103 and the residual blocks generated via the inverse transformation unit 109 to generate a reconstructed block.

[0098] The filter section 111 may include at least one of a deblocking filter, an offset correction section, and an ALF (Adaptive Loop Filter).

[0099] A deblocking filter can remove block distortion caused by the boundaries between blocks from a restored picture. To determine whether or not to deblock, it is possible to decide whether or not to apply a deblocking filter to the block based on the pixels contained in some of the columns or rows within the block. When applying a deblocking filter to a block, a strong filter or a weak filter can be applied depending on the required deblocking filtering strength. Furthermore, when applying a deblocking filter, it is possible to perform horizontal and horizontal filtering in parallel.

[0100] The offset correction unit can correct the offset from the original image on a pixel-by-pixel basis for the deblocked image. To perform offset correction on a specific picture, one can divide the pixels contained in the image into a certain number of regions, determine the region to be offset, and apply the offset to that region, or apply the offset while considering the edge information of each pixel.

[0101] Adaptive Loop Filtering (ALF) can be performed based on a comparison between the filtered and restored image and the original image. After dividing the pixels in the image into predetermined groups, a single filter can be determined to be applied to each group, allowing for differential filtering for each group. Information related to whether or not to apply ALF can be transmitted separately for each coding unit (CU) of the luminance signal, and the shape and filter coefficients of the ALF filter applied may vary depending on the block. Alternatively, the same (fixed) form of ALF filter may be applied regardless of the characteristics of the block to which it is applied.

[0102] Memory 112 can store the restored blocks or pictures calculated via the filter unit 111, and the stored restored blocks or pictures can be provided to the prediction units 102 and 103 when performing inter-screen prediction.

[0103] Next, an image decoding apparatus according to one embodiment of the present invention will be described based on the drawings. Figure 2 is a block diagram of an image decoding apparatus 200 according to one embodiment of the present invention.

[0104] Referring to 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 augmentation unit 204, a filter unit 205, a memory 206, and prediction units 207, 208.

[0105] When an image bitstream generated by the image encoding device 100 is input to the image decoding device 200, the input bitstream can be decoded by a process that is the reverse of the process performed by the image encoding device 100.

[0106] The entropy decoding unit 201 can perform entropy decoding in the reverse order of entropy coding performed by the entropy coding unit 107 of the image coding device 100. For example, various methods such as Exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) can be applied, corresponding to the method used in the image coding device. The entropy decoding unit 201 can decode the syntax elements mentioned above, namely Last_sig, Coded_sub_blk_flag, Sig_coeff_flag, Abs_greater1_flag, Abs_greater2_flag, Sign_flag, and remaining_coeff. In addition, the entropy decoding unit 201 can decode information related to intra-prediction and inter-prediction performed in the image coding device 100.

[0107] The inverse quantization unit 202 performs inverse quantization on the quantized transformation block to generate a new transformation block. It operates substantially the same as the inverse quantization unit 108 in Figure 1.

[0108] The inverse transform unit 203 performs an inverse transform on the transform block to generate a residual block. At this time, the transform method can be determined based on information such as the prediction method (inter or intra prediction), the size and / or shape of the block, and the intra prediction mode. It operates substantially the same as the inverse transform unit 109 in Figure 1.

[0109] The augmentation unit 204 generates a restored block by adding the prediction block generated by the in-screen prediction unit 207 or the inter-screen prediction unit 208 and the residual block generated via the inverse transformation unit 203. It operates substantially the same as the augmentation unit 110 in Figure 1.

[0110] The filter section 205 reduces various types of noise that occur in the restored block.

[0111] The filter section 205 may include a deblocking filter, an offset correction section, and an ALF (Automatic Filter).

[0112] The image encoding device 100 can provide information on whether or not to apply a deblocking filter to the relevant block or picture, and, if a deblocking filter is applied, whether a strong or weak filter was applied. The deblocking filter of the image decoding device 200 receives the deblocking filter-related information provided by the image encoding device 100 and can perform deblocking filtering on the relevant block in the image decoding device 200.

[0113] The offset correction unit can perform offset correction on the restored image based on information such as the type of offset correction and the offset value applied to the image during encoding.

[0114] ALF can be applied to the coding unit based on ALF application status information, ALF coefficient information, etc., provided by the image coding device 100. Such ALF information may be provided in a specific parameter set. The filter unit 205 operates substantially the same as the filter unit 111 in Figure 1.

[0115] Memory 206 stores the restored blocks generated by the increment unit 204. It operates substantially the same as memory 112 in Figure 1.

[0116] The prediction units 207 and 208 can generate predicted blocks based on the prediction block generation-related information provided by the entropy decoding unit 201 and the previously decoded block or picture information provided by the memory 206.

[0117] The prediction units 207 and 208 may include an in-screen prediction unit 207 and an inter-screen prediction unit 208. Although not shown separately, the prediction units 207 and 208 may further include a prediction unit discrimination unit. The prediction unit discrimination unit receives various information input from the entropy decoding unit 201, such as prediction unit information, prediction mode information of the intra-prediction method, and motion prediction-related information of the inter-prediction method, and can classify prediction units by current coding unit and determine whether a prediction unit performs inter-prediction or intra-prediction. The inter-screen prediction unit 208 can perform inter-screen prediction for the current prediction unit based on information contained in at least one of the preceding or succeeding pictures of the current picture containing the current prediction unit, using the information necessary for inter-prediction of the current prediction unit provided by the image coding device 100. Alternatively, it can perform inter-screen prediction based on information of a portion of the current picture containing the current prediction unit that has already been restored.

[0118] To perform inter-screen prediction, it is possible to determine, based on the coding unit, which of the following methods—Skip Mode, Merge Mode, or AMVP Mode—is used to predict the movement of the prediction units contained within that coding unit.

[0119] The on-screen prediction unit 207 generates a prediction block using already restored pixels located around the block currently to be encoded.

[0120] The in-screen prediction unit 207 may include an AIS (Adaptive Intra Smoothing) filter, a reference pixel interpolation unit, and a DC filter. The AIS filter is a filter that applies filtering to the reference pixels of the current block, and can adaptively determine whether or not to apply the filter depending on the prediction mode of the current prediction unit. Using the prediction mode of the prediction unit and AIS filter information provided by the image coding device 100, AIS filtering can be applied to the reference pixels of the current block. If the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter does not need to be applied.

[0121] The reference pixel interpolation unit of the in-screen prediction unit 207 can interpolate reference pixels to generate reference pixels at fractional unit positions if the prediction mode of the prediction unit is a prediction unit that performs intra-prediction based on pixel values ​​interpolated from reference pixels. The generated reference pixels at fractional unit positions can be used as prediction pixels for pixels in the current block. If the prediction mode of the current prediction unit is a prediction mode that generates prediction blocks without interpolating reference pixels, the reference pixels do not need to be interpolated. The DC filter can generate prediction blocks via filtering if the prediction mode of the current block is DC mode.

[0122] The on-screen prediction unit 207 operates substantially the same as the on-screen prediction unit 102 in Figure 1.

[0123] The inter-screen prediction unit 208 generates inter-screen prediction blocks using the reference picture and motion information stored in the memory 206. The inter-screen prediction unit 208 operates substantially the same as the inter-screen prediction unit 103 in Figure 1.

[0124] Various embodiments of the present invention will be described in more detail below with reference to the drawings.

[0125] (First Embodiment)

[0126] Figure 3 is a flowchart showing a method for encoding a transformation block according to one embodiment of the present invention. The method for encoding a transformation block in Figure 3 can be performed by the entropy encoding unit 107 of the image encoding device 100.

[0127] As shown in Figure 4a, a single transformation block can be encoded in subblock units. Referring to Figure 4a, if the current transformation block 400 to be encoded or decoded is an 8x8 block, it can be divided into four 4x4 subblocks 1 (401) to 4 (404). For scanning to determine the encoding order of the transformation coefficients within the transformation block, methods such as vertical, horizontal, or diagonal inverse scanning can be used, depending on the prediction mode of the current block or the current transformation block. Here, the prediction mode can be inter-screen prediction or intra-screen prediction.

[0128] Figures 4b, 4c, and 4d show diagonal reverse scanning, vertical reverse scanning, and horizontal reverse scanning, respectively. For the sake of explanation, diagonal reverse scanning is used as an example, but vertical and horizontal reverse scanning are also applicable.

[0129] Referring to Figure 3, first, when scanning the conversion coefficients in reverse scan order, the first non-zero coefficient is defined as the reference coefficient, and its position information Last_sig is encoded (S301).

[0130] A subblock containing the reference coefficient is selected (S302), and the subblock information is encoded (S303). The subblock information, Coded_sub_blk_flag, is a flag that indicates whether there is at least one non-zero coefficient in the subblock. Then, the non-zero coefficient information is encoded (S304). Here, the non-zero coefficient information, Sig_coeff_flag, indicates whether the value of each coefficient present in the subblock is 0 or not.

[0131] Next, the N-exceeding coefficient information is encoded (S305). Here, the N-exceeding coefficient information indicates whether the absolute value of each coefficient exceeds a value from 1 to N for all coefficients present in the subblock. N is an arbitrary predetermined value used during encoding and decoding, but the value of N can be encoded so that the same value is used during encoding and decoding. The number of N-exceeding coefficient information entries may be an arbitrary predetermined value, or it may be used differently depending on the position of the reference coefficient. For example, if N is set to 3, for all coefficients in the subblock that are determined to be non-zero, it is encoded whether the absolute value of each coefficient is greater than 1. For this purpose, the Abs_greater1_flag, which indicates whether the absolute value of a coefficient is greater than 1, is used. Then, only for coefficients that are determined to be greater than 1, it is encoded whether the absolute value is greater than 2. For this purpose, the Abs_greater2_flag, which indicates whether the absolute value of a coefficient is greater than 2, is used. Finally, only for coefficients that are determined to be greater than 2, it is encoded whether the absolute value is greater than 3. To achieve this, the Abs_greater3_flag flag, which indicates whether the absolute value of the coefficient is greater than 3, can be used.

[0132] Subsequently, for each coefficient determined to be non-zero, sign information indicating whether it is negative or positive is encoded (S306). The sign information can be Sign_flag. Then, only for coefficients determined to be greater than N, the remaining value obtained by subtracting N is defined as residual coefficient information, and the residual value information remaining_coeff of this coefficient is encoded (S307).

[0133] After that, it is checked whether the next subblock exists (S309). If the next subblock exists, the system moves to the next subblock (S310) and encodes the subblock information (S303). The subblock information Coded_sub_blk_flag is checked (S308), and if the value of Coded_sub_blk_flag is confirmed to be true, the non-zero coefficient information Sig_coeff_flag is encoded. If the value of the subblock information Coded_sub_blk_flag is false, it means that there are no coefficients to encode in that subblock, so the system checks whether the next subblock exists. Alternatively, after moving to the next subblock, if that subblock is located on the lowest frequency side, it is possible to assume that a non-zero coefficient exists and set it to be true during encoding and decoding without encoding and decoding the subblock information.

[0134] Figure 5 is a flowchart showing a method for decoding a transformation block according to one embodiment of the present invention. The method for decoding a transformation block in Figure 5 corresponds to the encoding method for a transformation block in Figure 3. The method for decoding a transformation block in Figure 5 can be performed by the entropy decoding unit 201 of the image decoding device 200.

[0135] The position information Last_sig, which is the first non-zero conversion coefficient that appears in the reverse scan order, is decoded (S501).

[0136] A subblock containing the reference coefficient is selected (S502), and the subblock information Coded_sub_blk_flag is decoded (S503). Then, the non-zero coefficient information Sig_coeff_flag is decoded (S504). Finally, the N-exceeding coefficient information is decoded (S505). Here, the N-exceeding coefficient information may include Abs_greater1_flag, Abs_greater2_flag, and Abs_greater3_flag as described above.

[0137] Subsequently, for each coefficient determined to be non-zero, the coefficient sign information Sign_flag is decoded (S506). Then, only for coefficients determined to be greater than N, the residual coefficient information remaining_coeff, which corresponds to the remaining value after subtracting N, is decoded (S507). After that, it is checked whether the next subblock exists (S509), and if it does, the system moves to the next subblock (S510) and decodes the subblock information Coded_sub_blk_flag (S503). The subblock information Coded_sub_blk_flag is checked (S508), and if the subblock information is true, the non-zero coefficient information Sig_coeff_flag is decoded, and if the subblock information is false, it means that there are no coefficients to decode in that subblock, so the existence of the next subblock is checked.

[0138] Figure 6 is a flowchart illustrating an image coding method using skip regions according to one embodiment of the present invention. The image coding method in Figure 6 can be performed by the entropy coding unit 107 of the image coding device 100.

[0139] Referring to Figure 6, first, the entropy coding unit 107 encodes the position of the reference coefficient in the current transformation block to be coded (S601). As mentioned above, the reference coefficient is the first non-zero coefficient when scanning the coefficients in reverse scan order. Then, it encodes skip region information for the skip region selected based on the position of the reference coefficient (S602).

[0140] Here, the skip region is a region within the current transformation block, determined based on the position of the reference coefficient. The skip region information indicates whether all coefficients within the skip region have the same value. Here, the same value for coefficients within the skip region can be 0. If the same value for coefficients within the skip region is not 0, information indicating what non-zero value it is can be further encoded. It is also possible to use any predetermined non-zero value as the same value for coefficients within the skip region. In this case, the information for the predetermined value can be encoded via a higher-level header that is not at the transformation block level.

[0141] On the other hand, the skip region may be determined similarly during the encoding / decoding process according to a predetermined rule, and the coordinates indicating the range of the skip region within the transformation block may be further encoded and the same position may be used in the encoding device 100 or the decoding device 200.

[0142] Figure 7 shows a skip region according to one embodiment of the present invention. Assume that a diagonal inverse scan is currently used for coefficient coding of the transformed block 700.

[0143] Referring to Figure 7, a reference line 702 is generated at a 45-degree angle to the lower left, based on the position of the reference coefficient 701. The region containing the coefficients located on the reference line 702 and the coefficients located below the reference line 702 is then designated as the skip region. In Figure 7, the skip region is shown in shaded form, and all coefficients within the skip region have the same value of 0. Furthermore, all coefficients within the skip region are located after the reference coefficient in the coding order.

[0144] Another embodiment for setting a skip region is that, if the number of coefficients in the skip region is small because the reference coefficient is located in any region within the transformation block, the skip region can be set not based on the reference coefficient, but using any of the non-zero coefficients that appear after the reference coefficient in the reverse scan order, or a coefficient adjacent to the reference coefficient. Here, the arbitrary region within the transformation block where the reference coefficient is located can be set by comparing the number of subblocks calculated in the reverse scan order with a predetermined threshold. Alternatively, the distance of the reference coefficient from any arbitrary position in the transformation block can be determined and compared with a predetermined threshold. For example, this arbitrary position may be the center point, which is the midpoint between the horizontal and vertical directions of the transformation block. Alternatively, the horizontal and vertical directions of the transformation block can be divided into m and n equal parts, respectively, and one of these divided regions can be determined as the arbitrary region. Here, the values ​​of m and n can be encoded on a block-by-block basis or via a higher-level header, and predetermined values ​​can be used similarly during encoding and decoding.

[0145] Figure 8 shows a skip region according to another embodiment of the present invention. After generating a reference line 803 from the position of the reference coefficient 801 in the conversion block 800 to the position of coefficient 802 located in the lower left corner of the conversion block 800, the region including the coefficients located on the reference line 803 and the coefficients located below the reference line 803 is designated as a skip region. Here, the coefficients belonging to the skip region are located later in the coding order than the reference coefficients. In Figure 8, the skip region is shown in shaded form.

[0146] On the other hand, although not shown in Figure 6, additional skip regions may be set in addition to the skip regions set in steps S601 and S603. These additionally set skip regions can be encoded using additional skip region information.

[0147] Figure 9 shows an additional skip region according to one embodiment of the present invention. In addition to the skip region shown in Figure 7, an additional skip region is set in Figure 9. The region above the skip region in Figure 7 is set as the additional skip region, and additional skip region information indicating whether all coefficients within the additional skip region have the same value can be encoded. Here, the same value for the coefficients within the skip region can be 0. If the same value for the coefficients within the skip region is not 0, information indicating what non-zero value it is can be further encoded. It is also possible to use any predetermined non-zero value as the same value for the coefficients within the skip region. In this case, it is possible to encode information of a predetermined value via a higher-level header that is not based on the conversion block unit.

[0148] On the other hand, the location of the additional skip region may be determined similarly during the encoding and decoding processes according to a predetermined rule, or the coordinates within the transformation block may be further encoded and the same location may be used in the encoding device 100 and the decoding device 200. Here, the newly generated additional skip region may be located a distance p from the previously generated skip region.

[0149] Referring to Figure 9, an example is shown in which a skip region is set by generating a reference line 702 based on a reference coefficient 701, and an additional skip region is set above the reference line 702. If the distance p between the additional skip region and the skip region is 0, the region containing the coefficient on the reference line 703 can become the additional skip region. If the distance p is 1, the additional skip region includes the region containing the coefficient on the reference line 703 and the region containing the coefficient on the reference line 704.

[0150] In this embodiment, the distance p between the additional skip region and the skip region is given as an example when it is 0 or 1, but other values ​​may be used. Here, the same predetermined value of p can be used throughout the encoding / decoding process. Alternatively, the value of p can be encoded on a block-by-block basis, or it can be encoded via the upper header.

[0151] Furthermore, additional skip regions can be added using a predetermined method. For example, additional skip regions can be continuously added until the additional skip region information is determined to be false, or they can be encoded for a predetermined number of times, q. Here, it is possible to set a different p for each additional skip region that is added.

[0152] Figure 10 is a flowchart illustrating a method for encoding a transformation block including a skip region or an additional skip region according to one embodiment of the present invention. The method shown in Figure 10 may be performed after the method shown in Figure 6. The encoding method in Figure 10 may be performed by the entropy encoding unit 107 of the image encoding device 100.

[0153] If a reference coefficient is included in a subblock within the transformation block currently to be encoded, it means that the coefficient to be encoded is included, so the subblock information, Coded_sub_blk_flag, is not encoded. Check whether the skip region information or additional skip region information is true and whether the subblock currently to be encoded includes a skip region or additional skip region (S1001). If both of the above conditions are true, select the coefficients that are currently located within the subblock but are outside the skip region in terms of encoding order (S1002). Otherwise, select all coefficients that should be encoded regardless of the skip region (S1003). Then, encode the coefficient information in the following order: coefficient information encoding for non-zero coefficients (S1004), N-exceeding coefficient information encoding (S1005), code information encoding (S1006), and residual coefficient information encoding (S1007).

[0154] Subsequently, if the next subblock exists (S1008), the process moves to the next subblock (S1009). If the skip region information or additional skip region information is true, and it is checked whether the subblock currently to be encoded contains a skip region or additional skip region (S1010), the process moves to the next subblock since the information for that subblock has already been encoded using the skip region information. However, this is only possible if the coefficient value in the skip region is 0. If the coefficient value in the skip region is not 0, the information for that subblock must be encoded.

[0155] If the subblock does not contain a skip region or an additional skip region, or if the skip region information is false, the subblock information is encoded (S1011). If the subblock information is true (S1012), the process moves to step S1001. If the subblock information is false, the process moves to step S1008. After moving to step S1008, if it is determined that there is no further subblock, the algorithm shown in Figure 10 terminates.

[0156] The algorithms shown in Figures 6 and 10 will be further explained below using the example in Figure 7. Currently, in the conversion block, the scan method is assumed to be reverse scan order in the diagonal direction, and the first non-zero coefficient encountered is set as the reference coefficient. After setting the coefficients to the lower left and the coefficients below them as the skip region based on the reference coefficient, all values ​​in the skip region are checked. Since all coefficients in the skip region have the same value as 0, the skip region information is truly encoded. After dividing into sub-block units, encoding is performed starting from the sub-block containing the reference coefficient.

[0157] For the current example, we will explain using an 8x8 conversion block and a 4x4 subblock. The skip region information for the first subblock to be encoded is true, and the coefficients to be encoded exist within that subblock. Since only the coefficients outside the skip region are encoded, in the example shown in Figure 7, only the reference coefficient and the values ​​1, 0, 0, and -2 above it need to be encoded. In this case, the coefficient information that is not 0 will be true, false, false, and true, respectively. Assuming N is 2, the excess information of 1 is encoded only for coefficients that are determined to be non-zero. The excess information of 1 for coefficient values ​​1 and -2 is set to false and true, respectively. The excess information of 2 is encoded only if the excess information of 1 is true, and the excess information of 2 for coefficient value -2 is encoded as false. Then, the signs + and - of coefficient values ​​1 and -2 are encoded, respectively. After that, since the next subblock exists, the process moves to the next subblock.

[0158] In the case of the second subblock to be encoded, the skip region information is true, and since there are coefficients to be encoded within that subblock, the subblock information is true. Therefore, only the coefficients 0, 0, and 1 outside the skip region are encoded. The non-zero coefficient information for coefficients 0, 0, and 1 is encoded as false, false, and true respectively, and then only the information for coefficient 1 that is greater than 1 is encoded as false. The sign information for coefficient 1 is encoded as + and moves to the next subblock.

[0159] In the case of the third subblock to be encoded, the skip region information is true, and since there are coefficients to be encoded within that subblock, the subblock information is true. When the coefficients outside the skip region are sorted by reverse scan, they become 0, 0, 0, 0, 0, 1, 1, 1, 1, -2, -2, 1, -3, 3, 10. These coefficients are encoded using steps S1004 to S1007.

[0160] Figure 11 is a flowchart illustrating an image decoding method using skip regions according to one embodiment of the present invention. The decoding method in Figure 11 can be performed by the entropy decoding unit 201 of the image decoding device 200.

[0161] Referring to Figure 11, first, the entropy decoding unit 201 decodes the position of the reference coefficient within the current transformation block to be decoded (S1101). Then, it decodes the skip region information for the skip region selected based on the position of the reference coefficient (S1103). As mentioned above, the position of the reference coefficient can be derived by decoding Last_sig. The skip regions and skip region information are the same as described above, so a detailed explanation will be omitted. Also, although not shown separately in Figure 11, if there are additional skip regions set in addition to the skip regions, these additional skip regions can be decoded using the additional skip region information.

[0162] Figure 12 is a flowchart illustrating a method for decoding a transformation block containing a skip region or an additional skip region according to one embodiment of the present invention. The method shown in Figure 12 can be performed after the method shown in Figure 11. The decoding method in Figure 12 can be performed by the entropy decoding unit 201 of the image decoding device 200.

[0163] The method shown in Figure 12 is substantially the same as the method shown in Figure 10, so a detailed explanation will be omitted. However, in Figure 10, skip region information, additional skip region information, subblock information Coded_sub_blk_flag, non-zero coefficient information, N-excess coefficient information, code information, and residual coefficient information are encoded, whereas in Figure 12, this information is decoded.

[0164] The algorithms shown in Figures 11 and 12 will be further explained using the example in Figure 7. Currently, the reference coefficient position information Last_sig in the transformation block is decoded, and then the reference coefficient is set. A skip region is set based on the position of the reference coefficient, and the skip region information is decoded. In this example, the skip region information is true. After dividing the transformation block into subblock units, the decoded part is performed starting from the subblock containing the reference coefficient.

[0165] Let's explain using the example of a current transformation block being 8x8 and subblocks being 4x4 in size. For the first subblock to be decoded, the skip region information is true, and the coefficient to be decoded exists within that subblock. Since only coefficients outside the skip region are decoded, in the example shown in Figure 7, only the reference coefficient and the values ​​1, 0, 0, and -2 above it need to be decoded. In this case, the decoded values ​​of the non-zero coefficient information will be true, false, false, and true, respectively. Assuming N is 2, the excess information of 1 is decoded only for coefficients that are judged to be non-zero. The excess information of 1 for coefficient values ​​1 and -2 is decoded to false and true, respectively. The excess information of 2 is decoded only if the excess information of 1 is true, and the excess information of 2 for coefficient value -2 is decoded to false. After that, the signs + and - of coefficient values ​​1 and -2 are decoded, respectively. Then, since the next subblock exists, we move to the next subblock.

[0166] In the case of the second subblock to be decoded, the skip region information is true, and since there are coefficients to be decoded within that subblock, the subblock information is true. Therefore, only the coefficients 0, 0, and 1, which are outside the skip region, are decoded. After the non-zero coefficient information for coefficients 0, 0, and 1 is decoded as false, false, and true respectively, only the information for coefficient 1 that is greater than 1 is decoded as false. The sign information for coefficient 1 is decoded as + and moved to the next subblock.

[0167] In the case of the third subblock to be decoded, the skip region information is true, and since the coefficient to be decoded exists within that subblock, the subblock information is true. When the coefficients outside the skip region are sorted by reverse scanning, they become 0, 0, 0, 0, 0, 1, 1, 1, 1, -2, -2, 1, -3, 3, 10. These coefficients are decoded using steps S1204 to S1207.

[0168] (Second Embodiment)

[0169] A second embodiment of the present invention will be described below with reference to the drawings.

[0170] The encoded information undergoes a context-adaptive binary arithmetic process through a binarization process. A context-adaptive binary arithmetic process is a process in which the encoded information within a block is symbolized, and the probability of each symbol occurring is varied using probability information depending on the situation, and then encoded. In this embodiment, for the sake of explanation, only symbols 0 and 1 are used, but the number of symbols can be N (where N is a natural number greater than or equal to 2).

[0171] Probability information refers to the probability of 0 and 1 occurring in binarized information. The probabilities of both pieces of information may be the same or different depending on the previously reconstructed information. Depending on the information, there may also be N pieces of probability information.

[0172] Figure 13 is a flowchart showing a context-adaptive binary arithmetic coding method according to one embodiment of the present invention. First, probability initialization is performed (S1301). Probability initialization is the process of dividing the binarized information into probability intervals based on the probabilities set in the probability information. However, the choice of which probability information to use may be determined arbitrarily by the coding or decoding device using the same conditions according to predetermined rules, or the probability information may be coded separately. The initial probability intervals may be determined identically during the coding / coding process according to predetermined rules. Alternatively, the initial probability intervals may be newly coded and used.

[0173] Once the binary information of the currently encoded parameter to be encoded is determined (S1302), the binarized information of the currently encoded parameter is encoded using the probability interval state up to the step prior to step S1302 and the previous probability information of the same encoded parameter (S1303). Subsequently, the probability information and probability interval are updated for the binary information to be encoded (S1304). If there is information for the next encoded parameter to be encoded (S1305), the process moves to the next encoded parameter information (S1306), and the process described above is repeated. If there is no information for the next encoded parameter to be encoded, this flowchart terminates.

[0174] Figure 14 is a flowchart showing a context-adaptive binary arithmetic decoding method according to one embodiment of the present invention. Unlike the encoding device, the decoding device decodes the binary information of the encoding parameters using probability information and probability intervals (S1402), and then determines the current binary information of the encoding parameters (S1403). The other decoding methods in Figure 14 correspond to the encoding method in Figure 13, so a detailed explanation is omitted.

[0175] In steps S1303 and S1402 of Figures 13 and 14 described above, encoding or decoding can be performed by selectively using the optimal probability information from a predetermined N probabilistic information using the information already recovered in the surrounding area for each encoding parameter. For example, for the probability information of information belonging to a quantized transformation block, the probability information with a high probability of generating information depending on the size of the transformation block may be used.

[0176] Alternatively, the probability information can be applied differently depending on the information of the marginal coefficients of the coefficients currently being encoded or decoded, or the probability information of the currently encoded or decoded information can be selected using the probability information of previously encoded or decoded information.

[0177] Figures 15a to 15c show an example of applying different probability information depending on the information of the surrounding coefficients. Figure 15b is an example of a probability information table used to encode or decode the Sig_coeff_flag information value of the current coefficient. Referring to Figure 15b, if there is one coefficient adjacent to the coefficient 1501 to be encoded or decoded that has the same information value as the Sig_coeff_flag information value 1 of the current coefficient 1501, then index 8 is assigned to the current coefficient 1501. In this case, the probability of symbol 1, which is the Sig_coeff_flag2 value information of the current coefficient 1501, is 61%, and the probability of symbol 0 is 39%. If there are two surrounding coefficients that have the same information value as the Sig_coeff_flag information value of the current coefficient 1501, then index 5 is assigned to the current coefficient 1501, and in this case, the probability of symbol 1, which is the Sig_coeff_flag2 value information of the current coefficient 1501, is 71%, and the probability of symbol 0 is 29%. If there are three peripheral coefficients that have the same information value as the current coefficient 1501's Sig_coeff_flag information value, then index 2 is assigned to the current coefficient 1501, and the probability of the current coefficient 1501's Sig_coeff_flag2 value information being symbol 1 is 87%, and the probability of symbol 0 is 13%. Using the probability information table shown in Figure 15b, the probability information can be updated as shown in Figure 15c after the current coefficient 1501 has been encoded or decoded.

[0178] On the other hand, in the case of non-zero coefficient information Sig_coeff_flag, probability information with a higher probability of non-zero coefficient information occurring can be used as the frequency is closer to the low-frequency region. The probability information for N-exceeding coefficient information can be set using the probability information for N-exceeding coefficient information encoded / decoded immediately before, or the probability information for N-exceeding coefficient information encoded / decoded for the first time at the subblock level can be used as is. For subblock information, the probability information of the surrounding M encoded / decoded subblocks can be used, or the probability information of the most recently encoded / decoded subblock can be used.

[0179] Figures 16a to 16c illustrate various embodiments of dividing a frequency domain conversion block into multiple regions. Referring to Figures 16a to 16c, the conversion block can be divided into three regions: frequency A region 1601, 1604, 1607; frequency B region 1602, 1605, 1608; and frequency C region 1603, 1606, 1609. Each region can be adaptively determined along the scan direction of the conversion block, but Figure 16a illustrates the frequency domain division method when the scan direction of the conversion block is diagonal, Figure 16b illustrates it when the scan direction is horizontal, and Figure 16c illustrates it when the scan direction is vertical. By utilizing the fact that frequency regions A (1601, 1604, 1607) are low-frequency regions where the probability of non-zero coefficient information occurring is highest, frequency regions B (1602, 1605, 1608) have fewer non-zero coefficient information occurrences than regions A (1601, 1604, 1607), and frequency regions C (1603, 1606, 1609) are high-frequency regions where the fewest non-zero coefficient information occurrences are compared to regions A (1601, 1604, 1607) and B (1602, 1605, 1608), the probability information can be set differently 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 seen as being separated by the distance from the DC coefficient located in the upper left corner of the conversion block.

[0180] Referring again to the probability information table in Figure 15b, if the coefficient to be encoded or decoded currently belongs to area A (1601, 1604, 1607), then the current coefficient is assigned index 8, the probability of symbol 1 is 61%, and the probability of symbol 0 is 39%. If the current coefficient belongs to area B (1602, 1605, 1608), then the current coefficient is assigned index 5, the probability of symbol 1 is 71%, and the probability of symbol 0 is 29%. If the current coefficient belongs to area C (1603, 1606, 1609), then the current coefficient is assigned index 2, the probability of symbol 1 is 87%, and the probability of symbol 0 is 13%. After the current coefficient is encoded or decoded using the probability information table shown in Figure 15b, the probability information can be updated as shown in Figure 15c.

[0181] For the non-zero coefficient information, N-exceeding coefficient information, and sub-block information, probability information with a higher probability of occurrence can be used as the region approaches A-domains 1601, 1604, and 1607. For the N-exceeding coefficient information, probability information can be selected by referring to the non-zero coefficient information. Frequency domain division may be performed under the same conditions in the encoding / decoding device, or separate division information may be encoded and transmitted to the decoding device.

[0182] Figure 17 is a flowchart showing an arithmetic coding method according to one embodiment of the present invention. Referring to Figure 17, the value of the conversion coefficient to be coded is binarized, and the binarized information is derived (S1701). Based on the position of the conversion coefficient within the conversion block, probability information to be applied to coding the binarized information is determined (S1703). Referring to the example shown in Figure 16a, the applicable probability information is determined depending on whether the current coefficient to be coded belongs to frequency region A 1601, frequency region B 1602, or frequency region C 1603. Here, frequency region A 1601, frequency region B 1602, and frequency region C 1603 can be seen as being separated by the distance from the DC coefficient located in the upper left corner of the conversion block.

[0183] Figure 18 is a flowchart showing an arithmetic decoding method according to one embodiment of the present invention. Referring to Figure 18, the values ​​of arithmetic encoded conversion coefficients are extracted from the bitstream (S1801). Based on the position of the conversion coefficients within the conversion block, probability information to be applied to the decoding of the arithmetic encoded conversion coefficients is determined (S1803). As mentioned above, referring to the example shown in Figure 16a, the probability information to be applied is determined by which of the frequency A region 1601, frequency B region 1602, or frequency C region 1603 the current coefficient to be decoded belongs to. Here, frequency A region 1601, frequency B region 1602, and frequency C region 1603 can be seen as being separated by the distance from the DC coefficient located in the upper left corner of the conversion block.

[0184] Next, arithmetic coding and arithmetic decoding according to other embodiments of the present invention will be described with reference to Figures 19a to 19c and Figure 20.

[0185] In this embodiment, when a method for encoding quantized transformation coefficients using the skip region shown in Figures 7 to 9 is used, different probability information is used when encoding or decoding the current information depending on whether the skip region is used or not.

[0186] Assume that the probability information tables shown in Figure 19b or Figure 19c are used for encoding or decoding the current coefficient 1901 shown in Figure 19a. The probability information table shown in Figure 19b is the probability information table applied when no skip region is used, and the probability information table shown in Figure 19c is the probability information table applied when a skip region is used.

[0187] Referring to Figure 19a, since there is a skip region in the transformation block or subblock to which the current coefficient 1901 belongs, the probability information table shown in Figure 19c is applied for encoding or decoding the current coefficient 1901. Thus, for example, the current coefficient 1901 is assigned index 5. In this case, the probability of symbol 1 is 71%, and the probability of symbol 0 is 29%.

[0188] Alternatively, probability information can be applied differently depending on the number of N-exceeding coefficients in the peripheral coefficients. For non-zero coefficient information and N-exceeding coefficient information, probability information with a high probability of occurrence can be used based on the number of encoded / decoded pieces of information in the peripheral region and their position in the frequency domain. If a coefficient is in the frequency C domain but located on the periphery of the skip domain, probability information with a low probability of occurrence can be applied to the non-zero coefficient information, N-exceeding coefficient information, and subblock information.

[0189] Figure 20 is a flowchart illustrating an arithmetic coding or decoding method according to another embodiment of the present invention. As previously described with reference to Figures 19a to 19c, different probabilistic information is used when coding or decoding the current information, depending on whether a skip region is used or not.

[0190] Referring to Figure 20, first, the position of the reference coefficient in the current transformation block to be encoded or decoded is encoded or decoded (S2001). Then, skip region information for the skip region selected based on the position of the reference coefficient is encoded or decoded (S2003). The values ​​of the transformation coefficients not included in the skip region are binarized, and once the binarized information is obtained, a probability information table to be applied to encoding the binarized information is selected from among a plurality of probability information tables (S2005). Here, the plurality of probability information tables include at least two tables: one for when the skip region is used and one for when the skip region is not used.

[0191] The encoded information undergoes a context-adaptive binary arithmetic process via a binarization process. A context-adaptive binary arithmetic process is a process in which the encoded information within a block is symbolized, and the probability of each symbol occurring is varied and applied according to the situation using probability information, and then encoded. In this example, for the sake of explanation, only symbols 0 and 1 are used, but the number of symbols can be N (where N is a natural number greater than or equal to 2).

[0192] Probability information refers to the probability of 0 and 1 occurring in binarized information. The probabilities of both pieces of information may be the same or different depending on the previously reconstructed information. Depending on the information, there may be N pieces of probability information.

[0193] Figure 21 is a flowchart illustrating a context-adaptive binary arithmetic coding method. First, probability initialization is performed (S2101). Probability initialization is the process of dividing the binarized information into probability intervals based on the probabilities set in the probability information. However, the choice of which probability information to use may be arbitrarily determined by the coding or decoding device using the same conditions according to predetermined rules, or the probability information may be coded separately. The initial probability intervals may be determined identically during the coding / decoding process according to predetermined rules. Alternatively, the initial probability intervals may be newly coded and used.

[0194] Once the binary information of the currently encoded parameter to be encoded is determined (S2102), the binarized information of the currently encoded parameter is encoded using the probability interval state up to the step prior to step S2102 in Figure 21 and the previous probability information of the same encoded parameter (S2103). Then, the probability information and probability interval can be updated for the binary information to be encoded thereafter (S2104). If there is information for the next encoded parameter to be encoded (S2105), the process moves to the next encoded parameter information (S2106), and the process described above is repeated. If there is no further encoding parameter information to encode, this flowchart terminates.

[0195] Figure 22 is a flowchart illustrating the context-adaptive binary arithmetic decoding method. Unlike the encoding device, the decoding device first decodes the binary information of the encoding parameters using probability information and probability intervals (S2202), and then determines the current binary information of the encoding parameters (S2203). The other decoding methods in Figure 22 correspond to the encoding methods in Figure 21, so a detailed explanation is omitted.

[0196] In steps S2103 and S2202 of Figures 21 and 22 described above, encoding or decoding can be performed by selectively using the optimal probability information from a predetermined N probability information using information (or encoding parameters) that has already been restored in the surrounding area for each encoding parameter.

[0197] For example, the probabilistic information of the information (or coding parameters) belonging to a quantized transformation block can use probabilistic information that has a high probability of occurring depending on the size of the transformation block.

[0198] Alternatively, the probability information can be applied differently depending on the information of the marginal coefficients of the coefficients currently being encoded or decoded, or the probability information of the currently encoded or decoded information can be selected using the probability information of previously encoded or decoded information.

[0199] Figures 23a and 23b show an example where probability information is applied differently depending on the information of the marginal coefficients.

[0200] Figure 23a is an example of a probability information table used to encode or decode the Sig_coeff_flag information value of the current coefficient. If there is only one coefficient adjacent to the coefficient currently being encoded or decoded that has the same information value as the Sig_coeff_flag information value of the current coefficient, then the current coefficient is assigned index 8. In this case, the probability of the current coefficient's Sig_coeff_flag2 value information being symbol 1 is 61%, and the probability of symbol 0 is 39%. If there are two peripheral coefficients that have the same information value as the current coefficient's Sig_coeff_flag information value, then the current coefficient is assigned index 5, and in this case, the probability of the current coefficient's Sig_coeff_flag2 value information being symbol 1 is 71%, and the probability of symbol 0 is 29%. If there are three peripheral coefficients that have the same information value as the current coefficient's Sig_coeff_flag information value, then the current coefficient is assigned index 2, the probability of the current coefficient's Sig_coeff_flag2 value being symbol 1 is 87%, and the probability of it being symbol 0 is 13%.

[0201] After the coefficients are encoded or decoded using the probability information table shown in Figure 23a, the probability information can be updated as shown in Figure 23b.

[0202] On the other hand, in the case of non-zero coefficient information Sig_coeff_flag, the closer you are to the low-frequency region, the higher the probability of the non-zero coefficient information Sig_coeff_flag occurring can be used.

[0203] Furthermore, the probability information for N-exceeding coefficients can be set using the probability information for N-exceeding coefficients that was encoded / decoded immediately beforehand, or the probability information for N-exceeding coefficients that is encoded / decoded for the first time on a subblock basis can be used as is. As mentioned above, N-exceeding coefficient information may include Abs_greater1_flag, Abs_greater2_flag, and Abs_greater3_flag, etc.

[0204] Furthermore, the subblock information Coded_sub_blk_flag may use the probability information of the surrounding M encoded / decoded subblocks, or it may use the probability information of the most recently encoded / decoded subblock.

[0205] (Third embodiment)

[0206] Figure 24 is a flowchart illustrating a method, according to one embodiment of the present invention, for determining the probability information of each coding parameter based on the position of a reference coefficient and using this information to code the information of each coding parameter. The flowchart in Figure 24 can be executed by the entropy coding unit 107 of the image coding device 100.

[0207] Referring to Figure 24, first, the entropy coding unit 107 encodes the position of the reference coefficient within the current transformation block to be coded (S2401). Here, the position of the reference coefficient can be encoded into the reference coefficient position information Last_sig.

[0208] As mentioned above, the reference coefficient may refer to the first non-zero coefficient when scanning the coefficients in reverse scan order, but it can also be determined by other conditions set identically in the image encoding device 100 and the image decoding device 200.

[0209] Subsequently, probability information for each coding parameter is derived based on the position of the reference coefficient, and the coding parameter is coded (S2402).

[0210] For an example of how to set up the probability table based on the position of the reference coefficient, please refer to the diagram in Figure 25.

[0211] Referring to Figure 25, region A 2500 represents any region within the transformation block that is close to the DC coefficient, and region B 2501 represents any region within the transformation block that is not region A 2500. It is also possible to divide the transformation block into N or more regions. Here, the information of any region representing region A may be transmitted from the upper header, or it may be determined by the image encoding device 100 and the image decoding device 200 under the same conditions depending on the configuration of the transformation block.

[0212] In Figure 25, depending on whether the reference coefficient lies in region A (2500) or region B (2501), the probability information of the coding parameters can be induced differently within a single probability table, thereby updating the probability information of the coding parameters.

[0213] Alternatively, depending on whether the reference coefficient lies in region A or region B, the probability information of the coding parameters can be updated using two or more different initial probability tables, or two identical initial probability tables, independently.

[0214] Next, I will explain a detailed example of the method described above.

[0215] When encoding using two identical initial probability tables independently to derive the probability information of Sig_coeff_flag information, which indicates whether each coefficient in a transformation block is 0 or not, the probability information of Sig_coeff_flag information can be updated independently using the 2600 table in Figure 26a when the reference coefficient of the transformation block is in area A 2500, and using the 2601 table in Figure 26a when it is in area B 2501.

[0216] The 2602 probability table in Figure 26b is the result of updating the probability information in the initial 2600 probability table in Figure 26a after determining that the index information of the probability table based on the position of the reference coefficient is 5. The 2603 probability table in Figure 26b is the result of updating the probability information in the initial 2601 probability table in Figure 26a after determining that the index information of the probability table based on the position of the reference coefficient is 8.

[0217] Using the same principle as in the example above, the probability information of Abs_greater1_flag, which indicates whether the absolute value of a coefficient in the transformation block is greater than 1, can be encoded by selecting probability information that has a high probability of being 1 when the reference coefficient is in region A, and by selecting probability information that has a high probability of being 0 when the reference coefficient is in region B.

[0218] On the other hand, the method for determining the index information that indicates which probability to use within the probability table is to determine the index information according to the detailed coordinates of the reference coefficient.

[0219] For example, if the detailed coordinates of the reference coefficient within the transformation block are located at the top left of region A (2502 in Figure 25), then in the initial probability table 2600 in Figure 26a, the index information of the probability table based on the position of the reference coefficient can be determined to be 5. The probability information for index 5 can then be updated as shown in the probability table 2602 in Figure 26b.

[0220] If the detailed coordinates of the reference coefficient within the transformation block are located in the middle of region B (2503 in Figure 25), then the index information of the probability table based on the position of the reference coefficient can be determined to be 8 in the initial probability table 2601 in Figure 26a. Then, as shown in the probability table 2603 in Figure 26b, the probability information of index information 8 can be updated. Figure 27 is a flowchart showing a method for determining the probability information of each coding parameter based on the position of the reference coefficient and decoding the information of each coding parameter using this method according to one embodiment of the present invention. The decoding method in Figure 27 can be executed by the entropy decoding unit 201 of the image decoding device 200.

[0221] Referring to Figure 27, first, the entropy decoding unit 201 decodes the position of the reference coefficient in the current transformation block to be decoded (S2701). As mentioned above, the reference coefficient is the first non-zero coefficient when scanning the coefficients in reverse scan order. Then, based on the position of the reference coefficient, probability information for each coding parameter is derived, and this parameter information is decoded (S2702).

[0222] (Fourth Embodiment)

[0223] Figure 28 is a flowchart illustrating a method for inducing probabilistic information and encoding each encoding parameter based on partial information of the DC coefficient, according to one embodiment of the present invention. The encoding method in Figure 28 can be performed by the entropy encoding unit 107 of the image encoding device 100.

[0224] Referring to Figure 28, partial information of the DC coefficient can be encoded (S2801), probability information of each encoded parameter can be derived based on the partial information of DC, and this parameter information can be encoded (S2802).

[0225] Here, the DC coefficient can be either the coefficient located in the upper left corner of the transformation block, or the last non-zero coefficient (a coefficient that is not zero) to appear in the reverse scan order.

[0226] Furthermore, the partial information of the DC coefficient here refers to a portion of the information necessary for encoding and decoding the DC coefficient. For example, the partial information of the DC coefficient can refer to at least one of the Sig_coeff_flag information and Abs_greater1_flag information of the DC coefficient.

[0227] Based on the partial information of the DC coefficient, the probability information of the coding parameters can be induced by excluding the partial information of the DC coefficient within a single probability table, thereby updating the probability information of the coding parameters.

[0228] Alternatively, based on partial information of the DC coefficient, the probability information of the coding parameters can be updated using two or more different initial probability tables or identical initial probability tables independently.

[0229] Next, I will explain a detailed example of the method described above.

[0230] To derive the probability information of the Sig_coeff_flag information, which indicates whether each coefficient in the transformation block is 0 or not, two identical initial probability tables are used independently for encoding, and only the Sig_coeff_flag information can be used for the partial information of the DC coefficients. If the partial information of the DC coefficient is 0, the probability information of the Sig_coeff_flag information can be updated independently using the 2600 table in Figure 26a, and if the partial information of the DC is 1, the probability information of the Sig_coeff_flag information can be updated independently using the 2601 table in Figure 26a.

[0231] Using the same principle as in the example above, the probability information of Abs_greater1_flag, which indicates whether the absolute value of a coefficient in the conversion block is greater than 1, can be encoded by selecting probability information that has a high probability of being 1 if Sig_coeff_flag, which is partial information of the DC coefficient, is 1, and by selecting probability information that has a high probability of being 0 if Sig_coeff_flag, which is partial information of the DC coefficient, is 0.

[0232] The method for determining the index information that indicates which probability to use within the probability table can be based on partial information of the DC coefficient.

[0233] For example, if the Sig_coeff_flag information of the coefficient currently being encoded is 1, the index information of the 2600 initial probability table in Figure 26a can be determined to be 5. Then, the probability information of index information 5 can be updated as shown in the 2602 probability table in Figure 26b.

[0234] If the Sig_coeff_flag information of the coefficient currently being encoded is 0, the index information of the initial probability table 2601 in Figure 26a can be determined to be 8. Then, the probability information for index 8 can be updated as shown in the probability table 2603 in Figure 26b.

[0235] Figure 29 is a flowchart illustrating a method for encoding the transformation block coefficients using partial information of the DC coefficients.

[0236] After encoding the reference coefficient information (S2901), partial information of the DC coefficients is encoded (S2902). At this time, if the position of the DC coefficients has already been set in the encoding / decoding device, the DC coefficient position encoding process can be omitted. Otherwise, the position of the DC coefficients is encoded (S2903). If the reference coefficients are included in the subblock within the conversion block, it means that the coefficients to be encoded are included, so the subblock information, Coded_sub_blk_flag, is not encoded. Subsequently, the non-zero coefficient information is encoded (S2906), N-exceeding coefficient information is encoded (S2907), the code information is encoded (S2908), and the residual coefficient information is encoded (S2909) in that order. However, since the partial information of the DC coefficients has already been encoded, the steps used for the partial information of the DC coefficients during the encoding of the DC coefficients in steps (S2906) to (S2909) can be omitted.

[0237] Subsequently, if the next subblock exists (S2911), the system moves to the next subblock (S2912) and encodes the information in the order from (S2906) to (S2909). If the next subblock does not exist, the algorithm terminates.

[0238] Figure 30 is a flowchart illustrating a method for inducing and decoding probabilistic information of each coding parameter based on partial information of the DC coefficient, relating to one embodiment of the present invention. The decoding method in Figure 30 can be performed by the entropy decoding unit 201 of the image decoding device 200.

[0239] Referring to Figure 30, first, the entropy decoding unit 201 decodes partial information of the DC coefficient (S3001), then derives probability information of each coding parameter based on the partial information of the DC coefficient, and decodes the parameter information (S3002).

[0240] Figure 31 is a flowchart illustrating a method for decoding the transformed block coefficients using partial information of the DC coefficients.

[0241] After decoding the reference coefficient information (S3101), partial information of the DC coefficients is decoded (S3102). At this time, if the position of the DC coefficients has already been set by the encoding / decoding device, the process of decoding the position of the DC coefficients can be omitted. Otherwise, the position of the DC coefficients is decoded (S3103). If the reference coefficients are included in the subblock within the conversion block, it means that the coefficients to be decoded are included, so the subblock information, Coded_sub_blk_flag, is not decoded. Subsequently, the non-zero coefficient information is decoded (S3106), the N-excess coefficient information is decoded (S3107), the code information is decoded (S3108), and the residual coefficient information is decoded (S3109) in that order. However, since the partial information of the DC coefficients has already been decoded, the steps used for the partial information of the DC coefficients during the decoding of the DC coefficients in steps (S3106) to (S3109) can be omitted.

[0242] Subsequently, if the next subblock exists (S3111), the system moves to the next subblock (S3112) and decodes the information in the order from (S3106) to (S3109). If the next subblock does not exist, the algorithm terminates.

[0243] (Fifth embodiment)

[0244] Figure 32 is a flowchart illustrating a method for inducing probabilistic information and encoding each encoding parameter based on the distance between the DC coefficient and the reference coefficient, and partial information of the DC coefficient, according to one embodiment of the present invention. The encoding method in Figure 32 can be performed by the entropy encoding unit 107 of the image encoding device 100.

[0245] Referring to Figure 32, the entropy coding unit 107 encodes the position of the reference coefficient of the current transformation block (S3201). As mentioned above, the reference coefficient can mean the first non-zero coefficient when scanning the coefficients in reverse scan order, but it can also be determined by other conditions set identically in the image coding device 100 and the image decoding device 200. After encoding the partial information of the DC coefficient, probability information of the coding parameter is derived based on the distance between the DC coefficient and the reference coefficient and the partial information of the DC coefficient, and this parameter information is encoded (S3202).

[0246] Here, the DC coefficient can be either the coefficient located in the upper left corner of the transformation block, or the last non-zero coefficient (a coefficient that is not zero) to appear in the reverse scan order.

[0247] Furthermore, the partial information of the DC coefficient here refers to a portion of the information necessary for encoding and decoding the DC coefficient. For example, the partial information of the DC coefficient can refer to at least one of the Sig_coeff_flag information and Abs_greater1_flag information of the DC coefficient.

[0248] Based on the distance between the DC coefficient and the reference coefficient, and the partial information of the DC coefficient, the probability information of the coding parameters can be induced to differ within a single probability table by excluding the partial information of the DC coefficient, thereby updating the probability information of the coding parameters.

[0249] Alternatively, the probability information of the coding parameters can be updated using two or more different initial probability tables, or identical initial probability tables, independently, based on the distance between the DC coefficient and the reference coefficient and partial information of the DC coefficient.

[0250] Here, the method for determining the distance information between the DC coefficient and the reference coefficient can be either by determining the distance information in the same way according to a predetermined rule in an encoding / decoding device, or by encoding the distance information.

[0251] Next, I will explain a detailed example of the method described above.

[0252] To derive the probability information of the Sig_coeff_flag information, which indicates whether each coefficient in the conversion block is 0 or not, three identical initial probability tables are used independently for encoding, and only the Sig_coeff_flag information can be used for the partial information of the DC coefficient. If the distance information between the DC coefficient and the reference coefficient is greater than a predetermined arbitrary threshold, the 3300 table in Figure 33 is used, and if the distance information between the DC coefficient and the reference coefficient is less than a predetermined arbitrary threshold, the 3301 or 3302 table in Figure 33 is used. Here, the predetermined arbitrary threshold may be a value already set in the encoding / decoding device, or a value based on information determined by the encoding device and transmitted to the decoding device. In this case, which of the 3301 or 3302 probability tables to use can be determined based on the partial information of the DC coefficient. For example, if the Sig_coeff_flag information, which is the partial information of the DC coefficient, is 1, the 3301 table in Figure 33 can be used, and if it is 0, the 3302 table in Figure 33 can be used to determine the probability information.

[0253] On the other hand, a method for determining the index information that indicates which probability to use within the probability table can be used to first determine the index information based on the distance information between the DC coefficient and the reference coefficient, and then correct the index information determined based on the partial information of the DC coefficient.

[0254] Figure 34 is a flowchart illustrating a method for inducing and decoding probabilistic information of each coding parameter based on the distance between the DC coefficient and the reference coefficient, and partial information of the DC coefficient, according to one embodiment of the present invention. The decoding method in Figure 34 can be performed by the entropy decoding unit 201 of the image decoding device 200.

[0255] Referring to Figure 34, the entropy decoding unit 201 decodes the position of the reference coefficient and partial information of the DC coefficient of the current transformation block (S3401). As mentioned above, the reference coefficient can mean the first non-zero coefficient when scanning the coefficients in reverse scan order, but it can also be determined by other conditions set identically in the image encoding device 100 and the image decoding device 200. Furthermore, probability information of the encoding parameters is derived based on the distance between the DC coefficient and the reference coefficient and the partial information of the DC coefficient, and this parameter information is decoded (S3402).

[0256] The encoding / decoding algorithms in the image encoding device 100 and the image decoding device 200 may be the same as those described in Figures 29 and 31 above.

[0257] The exemplary methods in this disclosure are presented as a series of actions for clarity of explanation, but this is not intended to restrict the order in which the steps are performed, and each step may be performed simultaneously or in a different order, as necessary. To implement the methods according to this disclosure, the exemplary steps may include additional steps, or some steps may be included while the rest are excluded, or some steps may be excluded while yet another set of steps is included.

[0258] The various embodiments of this disclosure are not intended to list all possible combinations, but rather to illustrate representative aspects of this disclosure, and the matters described in the various embodiments may be applied independently or in combination of two or more.

[0259] Furthermore, various embodiments of this disclosure can be implemented by hardware, firmware, software, or a combination thereof. In the case of hardware implementation, it can be implemented by one or more ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), general processors, controllers, microcontrollers, microprocessors, etc.

[0260] The scope of this disclosure includes software or machine-executable instructions (e.g., operating systems, applications, firmware, programs, etc.) that enable operation by various embodiments to be performed on a device or computer, and non-transitory computer-readable medium on which such software or instructions etc. are stored and executable on a device or computer. [Industrial applicability]

[0261] This invention can be used in devices for encoding / decoding images.

Claims

1. A method for decoding an image, wherein the method is The steps include receiving a bitstream containing coefficient information of the current conversion block, wherein the coefficient information includes absolute value information, and the absolute value information indicates whether the absolute value of the current conversion coefficient in the current conversion block is greater than 3. The steps include entropy decoding the absolute value information of the current transformation coefficient from the bitstream, The step of entropy decoding the absolute value information of the current transformation coefficient is: The steps include determining the probability information of the absolute value information of the current transformation coefficient based on the significance coefficient flag information of the peripheral transformation coefficient of the current transformation coefficient, and the significance coefficient flag information indicating whether or not the peripheral transformation coefficient is zero. The steps include decoding the absolute value information of the current transformation coefficient based on the probability information, A method for decoding an image, characterized by comprising the following:

2. The aforementioned peripheral transformation coefficients include coefficients where the coordinates are (x+2, y), (x+1, y+1), and (x, y+2). The image decoding method according to claim 1, characterized in that x and y represent the coordinates of the current transformation coefficient.

3. The image decoding method according to claim 2, characterized in that the maximum number of peripheral transformation coefficients available for determining the probability information of the absolute value information of the current transformation coefficient is 5.

4. The aforementioned method, The process further comprises determining the region to which the current transformation coefficient belongs among a plurality of regions within the current transformation block, The method for decoding an image according to claim 3, characterized in that the probability information of the absolute value information is determined by further considering the position of the region to which the current transformation coefficient belongs.

5. The image decoding method according to claim 4, characterized in that the current transformation block is divided into a plurality of regions according to the distance from the upper left corner coefficient within the current transformation block.

6. The aforementioned method, The step further comprises decoding the position information of the reference coefficient of the current transformation block from the bitstream, The image decoding method according to claim 5, characterized in that the probability information of the absolute value information is determined by further considering the position information of the reference coefficient.

7. A method for encoding an image, wherein the method is The steps include obtaining coefficient information for the current transformation block, and the coefficient information includes absolute value information, which indicates whether the absolute value of the current transformation coefficient in the current transformation block is greater than 3. The steps include generating a bitstream by encoding the coefficient information of the current conversion block, Equipped with, The step of encoding the coefficient information comprises the step of entropy encoding the absolute value information of the current transformation coefficient, The step of entropy encoding the absolute value information of the current transformation coefficient is: The steps include determining the probability information of the absolute value information of the current transformation coefficient based on the significance coefficient flag information of the peripheral transformation coefficient of the current transformation coefficient, and the significance coefficient flag information indicating whether or not the peripheral transformation coefficient is zero. The steps include encoding the absolute value information of the current transformation coefficient based on the probability information, An image encoding method characterized by comprising the following features.

Citation Information

Patent Citations

  • Coding of conversion factors for video coding

    JP2014527358A

  • Coefficient level coding

    US20130188698A1

  • Arithmetic decoding device, arithmetic coding device, image decoding device and image coding device

    WO2013190990A1