WO2012044116A2 - Apparatus and method for encoding/decoding video using adaptive prediction block filtering - Google Patents

Apparatus and method for encoding/decoding video using adaptive prediction block filtering Download PDF

Info

Publication number
WO2012044116A2
WO2012044116A2 PCT/KR2011/007261 KR2011007261W WO2012044116A2 WO 2012044116 A2 WO2012044116 A2 WO 2012044116A2 KR 2011007261 W KR2011007261 W KR 2011007261W WO 2012044116 A2 WO2012044116 A2 WO 2012044116A2
Authority
WO
WIPO (PCT)
Prior art keywords
block
filtering
prediction block
prediction
neighboring
Prior art date
Application number
PCT/KR2011/007261
Other languages
French (fr)
Korean (ko)
Other versions
WO2012044116A3 (en
Inventor
이하현
김휘용
임성창
정세윤
김종호
이진호
조숙희
최진수
김진웅
안치득
고성제
윤여진
변근영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US13/822,956 priority Critical patent/US20130177078A1/en
Priority claimed from KR1020110099681A external-priority patent/KR101838183B1/en
Publication of WO2012044116A2 publication Critical patent/WO2012044116A2/en
Publication of WO2012044116A3 publication Critical patent/WO2012044116A3/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Definitions

  • the present invention relates to an image processing technology, and more particularly, to an apparatus and method for encoding / decoding an image.
  • HD high definition
  • UHD Ultra High Definition
  • AVC Advanced Video Coding
  • HEVC High Efficiency Video Coding
  • a prediction image may be generated by performing a prediction on an image spatially or temporally, and a difference between an original image and a prediction image may be encoded.
  • Such predictive encoding may increase the efficiency of image encoding.
  • the conventional image encoding method generally uses a method of precisely interpolating the reference image or predicting the difference signal once more.
  • An object of the present invention is to provide an apparatus and method for image encoding using adaptive prediction block filtering.
  • Another object of the present invention is to provide an image encoding apparatus and method for providing high predictive image accuracy and improved encoding performance.
  • Another object of the present invention is to provide an image encoding apparatus and method capable of minimizing additional encoding information.
  • Another object of the present invention is to provide an apparatus and method for image decoding using adaptive prediction block filtering.
  • Another object of the present invention is to provide an image decoding apparatus and method for providing high prediction image accuracy and improved encoding performance.
  • Another object of the present invention is to provide an image decoding apparatus and method capable of minimizing encoding information transmitted from an encoding apparatus.
  • One embodiment of the present invention is a video decoding method.
  • the method may include generating a first prediction block for a decoding target block, calculating a filter coefficient based on a neighboring block of the first prediction block, and generating the encoding coefficient or the decoding apparatus, or generating the encoding coefficient or the decoding. If the filtering performed information stored in the device indicates to perform the filtering, performing the filtering on the first prediction block using the filter coefficients to generate a second prediction block.
  • the filtering performance information is information indicating whether filtering is performed on the first prediction block.
  • Each of the neighboring blocks may be at least one of a left block, an upper block, and a left top block, a right top block, and a left bottom block adjacent to one side of the first prediction block, respectively.
  • the filter coefficients may be calculated using only a partial region in the neighboring block.
  • the neighboring block may have a similarity degree between the neighboring prediction block and the first prediction block with respect to the neighboring block.
  • the filtering information is generated by comparing the rate-distortion cost value before and after performing filtering on the prediction block of the encoding target block in the encoding apparatus, and the filtering rate-distortion cost before performing the filtering on the prediction block of the encoding target block. If the value is smaller than the rate-distortion cost value after performing the filtering on the prediction block of the encoding target block, it indicates that no filtering is performed, and the value of the rate-distortion cost before performing the filtering on the prediction block of the encoding block is the value.
  • the filtering is performed when the prediction block of the encoding target block is larger than the rate-distortion cost value after the filtering is performed, and may be information encoded by the encoding apparatus and transmitted to the decoding apparatus.
  • the filtering performance information may be information generated based on the information of the neighboring block in the decoding apparatus.
  • the filtering performance information may be generated based on filtering performance performed on the neighboring block by using the filter coefficients.
  • the filtering performance information may be generated based on the similarity between the prediction block and the neighboring prediction block.
  • the method When the filtering is performed on the first prediction block, the method generates a reconstruction block by using the second prediction block and the reconstructed residual block, and the filtering is not performed on the first prediction block.
  • the method may further include generating a reconstruction block by using the first prediction block and the reconstructed residual block.
  • the apparatus may be generated by a filter coefficient calculating unit, an encoding apparatus, or a decoding apparatus that calculates filter coefficients based on neighboring blocks of a first prediction block, or by performing filtering performed by information stored in the encoding apparatus or the decoding apparatus.
  • the filtering unit which performs filtering on the first prediction block by using the filter coefficients to generate a second prediction block and when the filtering is performed on the first prediction block, the second prediction block.
  • a reconstructed block is generated by using the reconstructed residual block, and when filtering is not performed on the first prediction block, a reconstructed block is generated by using the first prediction block and the reconstructed residual block.
  • a recovery block generation unit is information indicating whether filtering is performed on the first prediction block.
  • the method may further include generating a first prediction block for an encoding target block, calculating a filter coefficient based on a neighboring block of the first prediction block, and filtering information on whether to perform filtering generated in the encoding device or stored in the encoding device. If instructing to perform, and performing the filtering on the first prediction block using the filter coefficients, generating a second prediction block.
  • the filtering performance information is information indicating whether filtering is performed on the first prediction block.
  • the neighboring block may be at least one of a left block, an upper block, and a left uppermost block, a right uppermost block, and a left lowermost block adjacent to one side of the first prediction block, respectively.
  • the filter coefficients may be calculated using only a partial region in the peripheral block.
  • the information on whether to perform filtering may always indicate to perform filtering.
  • the method may further include generating a residual block using the first prediction block and the input block when the rate-distortion cost value for the first prediction block is less than the rate-distortion cost value for the second prediction block, and Generating a residual block using the second prediction block and the input block if the rate-distortion cost value for the first prediction block is greater than the rate-distortion cost value for the second prediction block.
  • generating a residual block using the first prediction block and the input block when the rate-distortion cost value for the first prediction block is less than the rate-distortion cost value for the second prediction block
  • the information on whether to perform filtering may be information generated based on information of the neighboring block in the encoding apparatus.
  • the filtering performance information may be generated based on filtering performance performed on the neighboring block by using the filter coefficients.
  • the filtering performance information may be generated based on the similarity between the prediction block and the neighboring prediction block.
  • the method may further include generating a residual block by using the second prediction block and an input block when filtering is performed on the first prediction block, and when filtering is not performed on the first prediction block.
  • the method may further include generating a residual block by using the first prediction block and the input block.
  • the second prediction block In the step of generating the residual block when filtering is performed on the first prediction block, when the rate-distortion cost value for the first prediction block is smaller than the rate-distortion cost value for the second prediction block. Generate a residual block using the first prediction block and the input block, and if the rate-distortion cost value for the first prediction block is greater than the rate-distortion cost value for the second prediction block, the second prediction block And a residual block may be generated using the input block.
  • the accuracy of the prediction image is increased and the encoding performance is improved.
  • FIG. 1 is a block diagram illustrating a configuration of an image encoding apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating a configuration of an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 3 is a conceptual diagram illustrating the concept of an image and a block used in an embodiment of the present invention.
  • FIG. 4 is a flowchart schematically illustrating an image encoding method using prediction block filtering according to an embodiment of the present invention.
  • FIG. 5 is a conceptual diagram illustrating an embodiment of a neighboring block selection method used for calculating filter coefficients.
  • FIG. 6 is a flowchart illustrating another embodiment of a method of selecting a neighboring block used in calculating filter coefficients.
  • FIG. 7 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering by determining filtering performance for a neighboring block.
  • FIG. 8 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering by determining similarity between a prediction block of a encoding target block and a neighboring prediction block.
  • FIG. 9 is a flowchart illustrating an embodiment of a method of determining prediction block pixel values of a current encoding target block.
  • FIG. 10 is a flowchart illustrating another embodiment of a method of determining a prediction block pixel value of a current encoding target block.
  • FIG. 11 is a block diagram schematically illustrating a configuration of a prediction block filtering apparatus applied to an image encoding apparatus.
  • FIG. 12 is a flowchart schematically illustrating an image decoding method using prediction block filtering according to an embodiment of the present invention.
  • FIG. 13 is a conceptual diagram illustrating an embodiment of a neighboring block selection method used for calculating filter coefficients.
  • FIG. 14 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering using filtering information.
  • 15 is a flowchart illustrating an embodiment of a method of determining a prediction block pixel value of a current decoding target block.
  • 16 is a block diagram schematically illustrating a configuration of a prediction block filtering apparatus applied to an image decoding apparatus.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • each component shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and do not mean that each component is made of separate hardware or one software component unit.
  • each component is included in each component for convenience of description, and at least two of the components may be combined into one component, or one component may be divided into a plurality of components to perform a function.
  • Integrated and separate embodiments of the components are also included within the scope of the present invention without departing from the spirit of the invention.
  • the components may not be essential components for performing essential functions in the present invention, but may be optional components for improving performance.
  • the present invention can be implemented including only the components essential for implementing the essentials of the present invention except for the components used for improving performance, and the structure including only the essential components except for the optional components used for improving performance. Also included in the scope of the present invention.
  • FIG. 1 is a block diagram illustrating a configuration of an image encoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus 100 may include a motion predictor 111, a motion compensator 112, an intra predictor 120, a switch 115, a subtractor 125, and a converter 130. And a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference image buffer 190.
  • the image encoding apparatus 100 encodes an input image in an intra mode or an inter mode and outputs a bitstream.
  • Intra prediction means intra prediction and inter prediction means inter prediction.
  • the switch 115 In the intra mode, the switch 115 is switched to intra, and in the inter mode, the switch 115 is switched to inter.
  • the image encoding apparatus 100 generates a prediction block for an input block of an input image and then encodes a difference between the input block and the prediction block.
  • the intra predictor 120 In the intra mode, the intra predictor 120 generates a prediction block by performing spatial prediction using pixel values of blocks that are already encoded around the current block.
  • the motion predictor 111 finds a motion vector in the reference picture stored in the reference picture buffer 190 that best matches the input block in the motion prediction process.
  • the motion compensator 112 generates a prediction block by performing motion compensation using the motion vector.
  • the subtractor 125 generates a residual block by the difference between the input block and the generated prediction block.
  • the transform unit 130 performs a transform on the residual block and outputs a transform coefficient.
  • the quantization unit 140 quantizes the input transform coefficient according to the quantization parameter and outputs a quantized coefficient.
  • the entropy encoder 150 entropy codes the input quantized coefficients according to a probability distribution and outputs a bit stream.
  • the quantized coefficients are inversely quantized by the inverse quantizer 160 and inversely transformed by the inverse transformer 170.
  • the inverse quantized and inverse transformed coefficients are added to the prediction block by the adder 175 and a reconstruction block is generated.
  • the reconstruction block passes through the filter unit 180, and the filter unit 180 applies at least one or more of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstruction block or the reconstruction picture. can do.
  • the filter unit 180 may be referred to as an adaptive in-loop filter.
  • the deblocking filter can remove block distortion generated at the boundary between blocks.
  • SAO may add an appropriate offset value to pixel values to compensate for coding errors.
  • the ALF may perform filtering based on a value obtained by comparing the reconstructed image with the original image, and may be performed only when high efficiency is applied.
  • the reconstructed block that has passed through the filter unit 180 is stored in the reference image buffer 190.
  • FIG. 2 is a block diagram illustrating a configuration of an image decoding apparatus according to an embodiment of the present invention.
  • the image decoding apparatus 200 may include an entropy decoder 210, an inverse quantizer 220, an inverse transformer 230, an intra predictor 240, a motion compensator 250, and a filter. 260 and a reference picture buffer 270.
  • the image decoding apparatus 200 receives a bitstream output from the encoder and performs decoding in an intra mode or an inter mode, and outputs a reconstructed image, that is, a reconstructed image.
  • the switch In the intra mode, the switch is switched to intra, and in the inter mode, the switch is switched to inter.
  • the image decoding apparatus 200 obtains a residual block from the input bitstream, generates a prediction block, adds the residual block and the prediction block, and generates a reconstructed block, that is, a reconstruction block.
  • the entropy decoder 210 entropy decodes the input bitstream according to a probability distribution and outputs quantized coefficients.
  • the quantized coefficients are inversely quantized by the inverse quantizer 220 and inversely transformed by the inverse transformer 230, and as a result of the inverse quantization / inverse transformation of the quantized coefficients, a residual block is generated.
  • the intra predictor 240 In the intra mode, the intra predictor 240 generates a predictive block by performing spatial prediction using pixel values of already encoded blocks around the current block.
  • the motion compensator 250 In the inter mode, the motion compensator 250 generates a prediction block by performing motion compensation using the motion vector and the reference image stored in the reference image buffer 270.
  • the filter unit 260 may apply at least one or more of the deblocking filter, SAO, and ALF to the reconstructed block or the reconstructed picture.
  • the filter unit 260 outputs a reconstructed image, that is, a reconstructed image.
  • the reconstructed picture may be stored in the reference picture buffer 270 to be used for inter prediction.
  • Methods for improving the prediction performance of the encoding / decoding apparatus include a method of increasing the accuracy of an interpolation image and a method of predicting a difference signal.
  • the difference signal is a signal representing the difference between the original image and the predicted image.
  • the "difference signal” may be used by being replaced with “difference signal”, “residual block” or “difference block” according to the context, and those skilled in the art may affect the spirit and the essence of the invention. This can be distinguished to the extent that it does not give.
  • a filtering method using fixed filter coefficients may be used.
  • a filtering method has a limitation in prediction performance because filter coefficients cannot be used adaptively according to image characteristics. Therefore, it is necessary to improve the accuracy of prediction by filtering according to the characteristics of each prediction block.
  • FIG. 3 is a conceptual diagram illustrating the concept of an image and a block used in an embodiment of the present invention.
  • an encoding target block is a set of spatially connected pixels in a current encoding target image.
  • the encoding target block is a unit in which encoding and decoding are performed, and may be a quadrangle or an arbitrary shape.
  • the neighbor reconstruction block is a block in which encoding and decoding are completed before the current encoding target block is encoded in the current encoding target image.
  • the predictive image is an image obtained by collecting predictive blocks used for encoding each block, from the first encoding target block of the image to the current encoding target block in the current encoding target image.
  • the prediction block refers to a block having a prediction signal used for encoding the respective encoding target blocks in the current encoding target video. That is, the prediction block refers to each block in the prediction image.
  • the neighboring block means a neighboring reconstruction block of the current encoding target block and a neighboring prediction block that is a prediction block of each neighboring reconstruction block. That is, the neighbor block refers to the neighbor reconstruction block and the neighbor prediction block together.
  • the neighboring blocks are blocks used for calculating the filter coefficients in the embodiment of the present invention.
  • the prediction block B of the current encoding target block may be a filtered block B ′ filtered according to an embodiment of the present invention. Specific embodiments are described below with reference to the accompanying drawings.
  • the encoding target block, the neighbor reconstruction block, the prediction image, the prediction block, and the neighboring block are used as the meanings defined in FIG. 3.
  • FIG. 4 is a flowchart schematically illustrating an image encoding method using prediction block filtering according to an embodiment of the present invention.
  • filtering on a prediction block of a current encoding target block may be used.
  • image encoding is performed using prediction block filtering.
  • a prediction block of a current encoding target block an original block of a current encoding target block, or a neighboring block may be used.
  • the original block means an input block as it is, without undergoing an encoding process, in the current encoding target video.
  • the prediction block of the current encoding target block may be a prediction block generated by the motion compensator 112 or the intra predictor 120 according to the embodiment of FIG. 1.
  • the subtractor 125 may perform a difference between the filtered final prediction block and the original block. Can be.
  • the neighboring block may be a block stored in the reference image buffer 190 or a separate memory in the embodiment of FIG. 1.
  • the neighbor reconstruction block or the neighbor prediction block generated in the image encoding process may be used as the neighbor block.
  • the encoding apparatus selects neighboring blocks used for calculating filter coefficients (S410).
  • a neighboring block may be used to calculate the filter coefficients, and in this case, which of the neighboring blocks is used may be determined.
  • all the neighboring reconstruction blocks adjacent to the encoding target block and all the neighboring prediction blocks corresponding to the neighboring reconstruction blocks may be selected as neighboring blocks for calculating filter coefficients and may be used for encoding.
  • the set of pixel values of the neighboring blocks used for the filter coefficient calculation may be variously selected.
  • FIG. 5 is a conceptual diagram illustrating an embodiment of a neighboring block selection method used for calculating filter coefficients.
  • all pixel value regions of adjacent neighboring blocks may be used for the filter coefficient calculation.
  • only some pixel value regions in adjacent neighboring blocks may be used for filter coefficient calculation.
  • the coordinates of the leftmost pixel of the current encoding target block are (x, y), and the width and height of the current encoding target block are W and H, respectively.
  • the coordinate of the rightmost upper pixel of the current encoding target block is (x + W-1, y). It is assumed that the right direction along the x axis is a positive direction and the downward direction along the y axis is a positive direction.
  • the adjacent neighboring block includes an upper block including at least one pixel among the pixels having (x to x + W-1, y-1) coordinates, and a pixel having (x-1, y to y + H-1) coordinates.
  • the upper block and the left block are blocks adjacent to one side of the prediction block, the upper left block is the upper left block adjacent to the prediction block, the upper right block is the upper right block adjacent to the prediction block, and the lower left block is the prediction The leftmost bottom block adjacent to the block.
  • At least one of the neighboring blocks may be used for the filter coefficient calculation, and all neighboring blocks may be used for the filter coefficient calculation.
  • only some pixel value regions may be used for the filter coefficient calculation in the upper block, the left block, the upper left block, the upper right block, and the lower left block, respectively.
  • only neighboring prediction blocks associated with the prediction block of the current encoding target block and corresponding neighbor reconstruction blocks among possible neighboring blocks may be used.
  • FIG. 6 is a flowchart illustrating another embodiment of a method of selecting a neighboring block used in calculating filter coefficients.
  • the similarity between the prediction block and the neighboring prediction blocks of the encoding target block is determined, and the neighboring block to be used for the filter coefficient calculation is selected.
  • the encoding apparatus determines a similarity degree between the prediction block of the encoding target block and the neighboring prediction block (S610).
  • the similarity D may be determined by the difference between the pixels of the prediction block of the encoding target block and the pixels of the neighboring prediction blocks, for example, sum of absorptive difference (SAD), sum of absolute transformed difference (SATD), sum of squared difference (SSD), and the like. have.
  • SAD absorptive difference
  • SATD sum of absolute transformed difference
  • SSD sum of squared difference
  • the similarity D may be expressed as Equation 1 below.
  • Pc i denotes a pixel set of the prediction block of the encoding target block
  • Pn i denotes a pixel set of the neighboring prediction block
  • the similarity D may also be determined by the correlation between the prediction block of the encoding target block and the pixels of the neighboring prediction block.
  • the similarity D may be expressed as Equation 2 below.
  • Pc i is the pixel set of the prediction block of the encoding target block
  • Pn i is the pixel set of the neighboring prediction block
  • E [Pc] is the average of the pixel set of the prediction block of the encoding target block
  • E [Pn] is the Mean of the pixel set.
  • S Pc denotes the standard deviation of the pixel set of the prediction block of the encoding target block
  • S Pn denotes the standard deviation of the pixel set of the neighboring prediction block.
  • the encoding apparatus determines whether the similarity is greater than or equal to the threshold.
  • the threshold value can be determined through experimentation, and the similarity and the determined threshold value are compared.
  • the neighboring block is used to calculate the filter coefficients (S630). If the similarity between the prediction block and the neighboring prediction block of the encoding target block is less than the threshold value, the neighboring block is not used for the filter coefficient calculation (S640).
  • At least one or more of a method of selecting all neighboring blocks or a method of selecting neighboring blocks according to similarity with prediction blocks of the current encoding target block is used. By doing so, a more accurate filter coefficient that can reduce the difference signal can be obtained.
  • the decoding apparatus may also select neighboring blocks using the same method as the embodiment of FIG. 6, the encoding apparatus does not need to separately transmit information about the selected neighboring blocks to the decoding apparatus. Therefore, additional encoding information can be minimized.
  • the encoding apparatus calculates filter coefficients using the selected neighbor reconstruction blocks and neighbor prediction blocks (S420).
  • a filter coefficient for minimizing a mean square error (MSE) between a neighbor reconstruction block selected for the encoding target block and the corresponding neighbor prediction block may be selected.
  • the filter coefficient may be obtained by Equation 3 below.
  • r k represents a neighbor reconstructed block pixel value of the selected neighboring block and p i represents a neighbor predicted block pixel value of the selected neighboring block.
  • C i represents a filter coefficient and s represents a set of filter coefficients.
  • a filter coefficient for minimizing MSE between the neighboring reconstruction block of the encoding target block and the corresponding prediction block is calculated and used for each prediction block. Therefore, fixed filter coefficients are not used for all prediction blocks, and different filter coefficients according to image characteristics of each block are used. That is, filter coefficients may be adaptively obtained and used according to the prediction block. Therefore, the accuracy of the prediction block can be further improved, and the encoding signal can be improved by reducing the difference signal.
  • Filter coefficients may be obtained using a 1D (one-dimensional) split filter, or may be obtained using a 2D (two-dimensional) non-separable filter.
  • the decoding apparatus can obtain filter coefficients in the same manner as the encoding apparatus, the encoding apparatus does not need to separately encode and transmit the filter coefficient information. Therefore, additional encoding information can be minimized.
  • the encoding apparatus determines whether to perform filtering on the prediction block of the current encoding target block (S430). If it is determined that filtering is performed, filtering is performed on the prediction block. If it is determined that filtering is not performed, filtering on the prediction block is not performed and the next step may proceed.
  • a determination may be made that filtering is always performed on a prediction block of a current encoding target block. This is to determine the pixel value of the prediction block used for calculating the residual block by comparing the rate-distortion cost of the filtered prediction block and the unfiltered prediction block.
  • the residual block is a block generated by the difference between the original block and the prediction block, and the original block refers to an input block without undergoing an encoding process in the current encoding target image.
  • a decision may be made to always perform filtering on the prediction block of the current encoding target block.
  • the pixel value determination method through the rate-distortion cost comparison is described in detail in FIG.
  • whether to perform filtering on the prediction block of the current encoding target block may be determined using the characteristic information between the prediction block of the current encoding target block and the neighboring block. This is explained in detail in the embodiment of FIGS. 7 and 8 below.
  • FIG. 7 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering by determining filtering performance for a neighboring block.
  • the encoding apparatus filters each neighboring prediction block by using filter coefficients (S710). For example, when neighboring blocks A, B, C, and D are selected, each of the prediction blocks of neighboring blocks A, B, C, and D is filtered using the filter coefficients obtained in the filter coefficient calculation step.
  • the encoding apparatus determines the filtering performance of each neighboring block.
  • an error of the neighboring prediction block and the neighboring reconstruction block that are not filtered and an error of the neighboring prediction block and the neighboring reconstructed block where filtering is performed may be compared.
  • Each error may be calculated using SAD, SATD, and SSD.
  • the filtering When the filtering is performed on the neighboring prediction block and when the filtering is not performed, it may be determined that the performance is excellent when a smaller error occurs. That is, when the error between the neighboring prediction block and the neighboring reconstruction block that has been filtered is smaller than the error between the neighboring prediction block and the neighboring reconstruction block that has not been filtered, it may be determined that there is a filtering effect.
  • the encoding apparatus compares the error between the case where the filtering is performed on each neighboring prediction block and the case where the filtering is not performed, and determines whether there are N or more neighboring blocks showing the filtering effect (S730).
  • FIG. 8 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering by determining similarity between a prediction block of a encoding target block and a neighboring prediction block.
  • the encoding apparatus determines a similarity degree between the prediction block of the encoding target block and the neighboring prediction block (S810).
  • the similarity may be determined by SAD, SATD, SSD, and the like between the prediction block of the encoding target block and the pixels of the neighboring block.
  • SAD SATD
  • SSD SSD
  • the similarity determination using the SAD may be expressed by Equation 4 below.
  • Pc i denotes a pixel set of the prediction block of the encoding target block
  • Pn i denotes a pixel set of the neighboring prediction block
  • the similarity may also be determined by the correlation between the prediction block of the encoding target block and the pixels of the neighboring prediction block.
  • the encoding apparatus determines whether there are K or more neighboring blocks whose similarity is greater than or equal to the threshold (S820). If there are more than K neighbor blocks having a similarity or more than the threshold value, it is determined that filtering is performed (S830).
  • the values determined through experiments may be used as the threshold value and the K value.
  • At least one or more methods according to the embodiments of FIGS. 7 and 8 may be used to determine whether to perform filtering. Accordingly, since the filtering performance of the similarity or the neighboring prediction blocks may be determined for each prediction block, whether to perform filtering may be adaptively determined, and thus the encoding performance may be improved.
  • Determination of whether to perform filtering using the characteristic information between the prediction block and the neighboring block of the current encoding target block may be performed in the same manner in the decoding apparatus. Accordingly, the encoding apparatus does not need to separately encode and transmit information about whether to perform filtering, and thus additional encoding information may be minimized.
  • the encoding apparatus performs filtering on the prediction block of the current encoding target block (S440). However, the filtering of the prediction block is performed when it is determined that the filtering is performed in the determining whether to perform the filtering (S430).
  • the prediction block of the current encoding target block may be filtered using the filter coefficient calculated in the filter coefficient calculation step. Filtering for the prediction block may be represented by Equation 5 below.
  • p i denotes a pixel value of the filtered prediction block of the encoding target block
  • p i denotes a pixel value of the pre-filtering prediction block of the encoding target block
  • c i denotes a filter coefficient
  • s denotes a set of filter coefficients.
  • the encoding apparatus determines the pixel value of the prediction block of the current encoding target block (S450).
  • the pixel value may be used to calculate a residual block, and the residual block is a block generated by the difference between the original block and the prediction block.
  • the pixel value determination method is described in detail with reference to the embodiments of FIGS. 9 and 10 below.
  • FIG. 9 is a flowchart illustrating an embodiment of a method of determining a prediction block pixel value of a current encoding target block.
  • the pixel value may be determined by comparing a rate-distortion cost value between the pre-filtered prediction block and the filtered prediction block.
  • the encoding apparatus calculates a rate-distortion cost value for the filtered prediction block of the current encoding target block (S910).
  • the calculation of the rate-distortion cost can be expressed by Equation 6 below.
  • J f is the rate-distortion (bitrate-distortion) cost value for the filtered prediction block of the current encoding target block
  • D f is the error between the original block and the filtered prediction block
  • is a Lagrangian coefficient
  • R f Denotes the number of bits (including a flag for filtering) generated after encoding.
  • the rate-distortion cost value for the unfiltered prediction block of the current encoding target block is calculated (S920).
  • the calculation of the rate-distortion cost can be expressed by Equation 7 below.
  • J nf is the rate-distortion (bit rate-distortion) cost value for the filtered prediction block of the current encoding target block
  • D nf is the error between the original block and the unfiltered prediction block
  • is the Lagrangian coefficient
  • R nf means the number of bits (including a flag for filtering) generated after encoding.
  • the encoding apparatus compares the rate-distortion cost values (S930).
  • the encoding apparatus determines a pixel value of the last prediction block of the current encoding target block based on the comparison result (S940). In this case, the pixel value in the case of having the minimum rate-distortion cost value may be determined as the pixel value for the final prediction block.
  • filtering may always be performed to calculate the rate-distortion value. have.
  • the rate-distortion cost comparison result not only the pixel value of the filtered prediction block but also the pixel value of the pre-filtering prediction block may be determined as the pixel value for the final prediction block.
  • the encoding apparatus should transmit information indicating whether to perform filtering to the decoding apparatus. That is, information about whether the pixel value of the predictive block before filtering or the filtered prediction block is used is transmitted to the decoder. This is because the decoding apparatus does not have information on the original block, and thus the pixel value determination process by the rate-distortion cost comparison cannot be performed in the decoding apparatus.
  • FIG. 10 is a flowchart illustrating another embodiment of a method of determining a prediction block pixel value of a current encoding target block.
  • a pixel value of a final prediction block is selected by using a filtering decision based on characteristic information between a prediction block of a current encoding target block and neighboring blocks.
  • the method of determining whether to perform filtering using the characteristic information between the prediction block and the neighboring block of the current encoding target block has been described above with reference to FIGS. 7 and 8.
  • the encoding apparatus determines whether filtering is performed on a prediction block of a current encoding target block (S1010).
  • Information on whether to perform filtering is information determined according to characteristic information between the prediction block of the current encoding target block and the neighboring block.
  • the pixel value of the filtered prediction block is determined as the pixel value of the final prediction block (S1020).
  • the pixel value of the unfiltered prediction block is determined as the pixel value of the final prediction block (S1030).
  • Determination of whether to perform filtering using the characteristic information between the prediction block and the neighboring block of the current encoding target block may be performed in the same manner in the decoding apparatus. Therefore, the encoding apparatus does not need to separately encode and transmit information about whether to perform filtering.
  • the pixel value of the final prediction block may be additionally determined by the embodiment of FIG. 9. .
  • the encoding apparatus should transmit information indicating whether to perform filtering to the decoding apparatus.
  • the encoding apparatus may generate a residual block by using the final prediction block in which the original block and the pixel value are determined (S460).
  • the residual block may be generated by the difference between the final prediction block and the original block.
  • the residual block may be encoded and transmitted to the decoding apparatus.
  • the subtractor 125 may generate a residual block by the difference between the final prediction block and the original block, and the residual block may be converted by the transformer 130,
  • the encoding may be performed through the quantization unit 140 and the entropy encoding unit 150.
  • FIG. 11 is a block diagram schematically illustrating a configuration of a prediction block filtering apparatus applied to an image encoding apparatus.
  • FIG. 11 detailed descriptions of components or methods substantially the same as those described above with reference to FIGS. 4 to 10 will be omitted.
  • FIG. 11 includes a prediction block filtering device 1110 and a residual block generator 1120.
  • the prediction block filtering apparatus 1110 may include a neighboring block selector 1111, a filter coefficient calculator 1113, a filter performer determiner 1115, a filter performer 1117, and a pixel value determiner 1119. Can be.
  • the prediction block filtering apparatus 1110 may use the prediction block of the current encoding target block, the original block of the current encoding target block, or a neighboring block in performing prediction block filtering.
  • the prediction block of the current encoding target block may be a prediction block generated by the motion compensator 112 or the intra predictor 120 according to the embodiment of FIG. 1.
  • the generated prediction block may not be directly input to the subtractor 125, but the final prediction block filtered through the prediction block filtering device 1110 may be input. Accordingly, the subtractor 125 may perform the difference between the filtered final prediction block and the original block.
  • the neighboring block may be a block stored in the reference image buffer 190 or a separate memory in the embodiment of FIG. 1.
  • the neighbor reconstruction block or the neighbor prediction block generated in the image encoding process may be used as the neighbor block.
  • the neighboring block selector 1111 may select neighboring blocks used for the filter coefficient calculation.
  • the neighboring block selector 1111 may select all neighboring reconstructed blocks adjacent to the encoding target block and corresponding prediction blocks as neighboring blocks for calculating filter coefficients. In this case, the neighboring block selector 1111 may select all pixel value regions of adjacent neighboring blocks, or may select only some pixel value regions in the neighboring neighboring blocks.
  • the neighboring block selector 1111 may select only neighboring prediction blocks associated with the prediction block of the current encoding target block and corresponding neighboring reconstruction blocks among possible neighboring blocks. For example, the neighboring block selector 1111 may determine a similarity between the prediction block of the encoding target block and the neighboring prediction block, and then select the neighboring block used for calculating the filter coefficients using the similarity.
  • the filter coefficient calculator 1113 may calculate filter coefficients using the selected neighboring reconstruction blocks and the neighboring prediction blocks. For example, the filter coefficient calculator 1113 may select a filter coefficient for minimizing the MSE between the neighbor reconstruction block selected for the encoding target block and the neighbor prediction block.
  • the filtering operation determiner 1115 may determine whether to perform filtering on the prediction block of the current encoding target block.
  • the filtering operation determiner 1115 may determine to always perform filtering on the prediction block of the current encoding target block. This is to determine the pixel value of the prediction block used for calculating the residual block by comparing the rate-distortion cost of the filtered prediction block and the unfiltered prediction block.
  • the filtering operation determiner 1115 may determine whether to perform filtering on the prediction block of the current encoding target block by using the characteristic information between the prediction block of the current encoding target block and the neighboring block. For example, the filtering operation determiner 1115 may determine whether to perform filtering by determining filtering performance of neighboring blocks. As another example, whether to perform filtering may be determined by determining similarity between the prediction block of the encoding target block and the neighboring prediction block.
  • the filtering performing unit 1117 may perform filtering on the prediction block of the current encoding target block. In this case, the filtering performing unit 1117 may perform filtering using the filter coefficient calculated by the filter coefficient calculating unit 1113.
  • the pixel value determiner 1119 may determine the pixel value of the prediction block of the current encoding target block.
  • the pixel value determiner 1119 may determine the pixel value by comparing a rate-distortion cost value between the pre-filtered prediction block and the filtered prediction block. In another embodiment, the pixel value determiner 1119 may determine the pixel value of the final prediction block by using a result of determining whether to perform filtering based on the characteristic information between the prediction block of the current encoding target block and the neighboring block.
  • the residual block generator 1120 may generate a residual block by using the determined final prediction block and the original block of the current encoding target block. For example, the residual block generator 1120 may generate the residual block by the difference between the final prediction block and the original block.
  • the residual block generator 1120 may correspond to the subtractor 125 in the embodiment of FIG. 1.
  • filter coefficients which are adaptively obtained for each prediction block of each encoding target block, are used instead of fixed filter coefficients.
  • whether to perform filtering on a prediction block of each encoding target block may be adaptively selected. Therefore, the accuracy of the predicted image is increased, and as a result, the difference signal is minimized, thereby improving the encoding performance.
  • the filter coefficient calculation may be performed in the decoding apparatus in the same manner, the encoding information may be minimized.
  • Information on whether to perform filtering may be encoded and transmitted to the decoding apparatus, or the decoding apparatus may determine whether to perform filtering using a relationship with neighboring blocks.
  • FIG. 12 is a flowchart schematically illustrating an image decoding method using prediction block filtering according to an embodiment of the present invention.
  • filtering on a prediction block of a current decoding target block may be used.
  • image decoding is performed using prediction block filtering.
  • a prediction block or a neighboring block of a current decoding target block may be used.
  • the prediction block of the current decoding object block may be a prediction block generated by the intra predictor 240 or the motion compensator 250 according to the embodiment of FIG. 2.
  • the adder 255 may add the reconstructed residual block to the filtered final prediction block. have.
  • the neighboring block may be a reference image buffer 270 or a block stored in a separate memory in the embodiment of FIG. 2.
  • the neighbor reconstruction block or the neighbor prediction block generated in the image decoding process may be used as the neighbor block.
  • the decoding apparatus selects neighboring blocks used for calculating filter coefficients (S1210).
  • the neighboring block may be used to calculate the filter coefficients, and in this case, which block of the neighboring block is used may be determined.
  • all of the neighboring reconstruction blocks adjacent to the decoding target block and all the neighboring prediction blocks corresponding to the neighboring reconstruction blocks may be selected as neighboring blocks for calculating filter coefficients and may be used for decoding.
  • the set of pixel values of the neighboring blocks used for the filter coefficient calculation may be variously selected.
  • FIG. 13 is a conceptual diagram illustrating an embodiment of a neighboring block selection method used for calculating filter coefficients.
  • all pixel value areas of adjacent neighboring blocks may be used for the filter coefficient calculation.
  • only a part of the pixel value region in the adjacent peripheral block may be used for the filter coefficient calculation.
  • only neighboring prediction blocks associated with the prediction block of the current decoding target block and corresponding neighboring reconstruction blocks among possible neighboring blocks may be used.
  • the neighboring block to be used for the filter coefficient calculation may be selected.
  • the similarity D may be determined by the difference between the pixels of the prediction block of the decoding target block and the pixels of the neighboring prediction block, for example, SAD, SATD, SSD, and the like.
  • SAD the similarity D may be expressed as Equation 8 below.
  • Pc i denotes a pixel set of the prediction block of the decoding target block
  • Pn i denotes a pixel set of the neighboring prediction block
  • the similarity D may also be determined by the correlation between the pixels of the prediction block of the decoding object block and the neighboring prediction block.
  • the similarity D may be expressed as in Equation 9 below.
  • Pc i is the pixel set of the prediction block of the decoding target block
  • Pn i is the pixel set of the neighboring prediction block
  • E [Pc] is the average of the pixel sets of the prediction block of the decoding target block
  • E [Pn] is the Mean of the pixel set.
  • S Pc denotes the standard deviation of the pixel set of the prediction block of the decoding target block
  • S Pn denotes the standard deviation of the pixel set of the neighboring prediction block.
  • the neighboring block can be used for the filter coefficient calculation.
  • the threshold value may be determined through an experiment.
  • the decoding apparatus calculates filter coefficients using the selected neighbor reconstruction blocks and neighbor prediction blocks (S1220).
  • a filter coefficient for minimizing a mean square error (MSE) between a neighbor reconstruction block selected for the decoding target block and the corresponding neighbor prediction block may be selected.
  • the filter coefficient may be obtained by Equation 10 below.
  • r k represents a neighbor reconstructed block pixel value of the selected neighboring block and p i represents a neighbor predicted block pixel value of the selected neighboring block.
  • C i represents a filter coefficient and s represents a set of filter coefficients.
  • Filter coefficients may be obtained using a 1D (one-dimensional) split filter, or may be obtained using a 2D (two-dimensional) non-separable filter.
  • the decoding apparatus determines whether to perform filtering on the prediction block of the current decoding target block (S1230). If it is determined that filtering is performed, filtering is performed on the prediction block. If it is determined that filtering is not performed, filtering on the prediction block is not performed and the next step may proceed.
  • the decoding apparatus may determine whether to perform filtering using the decoded filtering execution information. This is described in detail through the embodiment of FIG. 14 below.
  • FIG. 14 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering using filtering information.
  • the decoding apparatus decodes information about whether to perform filtering (S1410).
  • the pixel value of the prediction block may be determined by comparing the rate-distortion cost value between the pre-filtered prediction block and the filtered prediction block, wherein the encoding apparatus filters the decoding apparatus.
  • Information indicating whether or not to perform should be transmitted.
  • the information on whether filtering is performed may be encoded by the encoding apparatus, and then, may form a compressed bit stream, and may be transmitted from the encoding apparatus to the decoding apparatus. Since the decoding apparatus receives the encoded filtering information, the decoding apparatus may decode the encoded information.
  • the decoding apparatus determines whether filtering is performed by using the information on whether or not the decoding is performed (S1420). When filtering is performed in the encoding apparatus, that is, when the pixel value of the filtered prediction block is used as the final prediction block pixel value of the encoding apparatus, the decoding apparatus determines that filtering is performed on the prediction block of the decoding target block ( S1430). When filtering is not performed in the encoding apparatus, that is, when the pixel value of the pre-prediction block is used as the final prediction block pixel value of the encoding apparatus, the decoding apparatus determines that the filtering is not performed (S1440).
  • the decoding apparatus may determine whether to perform filtering on the prediction block of the current decoding target block by using the characteristic information between the prediction block of the current decoding target block and the neighboring block.
  • the decoding apparatus may determine whether to perform filtering by determining filtering performance of neighboring blocks.
  • the decoding apparatus filters each of the neighboring prediction blocks by using the filter coefficients. For example, when the neighboring blocks A, B, C, and D are selected, each of the prediction blocks of the neighboring blocks A, B, C, and D may be filtered using the filter coefficients obtained in the filter coefficient calculation step.
  • the decoding device determines the filtering performance of each neighboring block. For example, for each neighboring block, an error of the neighboring prediction block and the neighboring reconstruction block that are not filtered and an error of the neighboring prediction block and the neighboring reconstructed block where filtering is performed may be compared. Each error may be calculated using SAD, SATD, and SSD.
  • the filtering is determined to be performed when there are N or more neighboring blocks that exhibit the filtering effect. Otherwise, the filtering is not performed.
  • the value determined through the experiment may be used as the N value.
  • whether to perform filtering may be determined by determining similarity between the prediction block of the decoding object block and the neighboring prediction block.
  • the decoding apparatus may obtain the similarity between the prediction block of the decoding object block and the neighboring prediction block, and the similarity may be determined by SAD, SATD, SSD, etc. between the prediction block of the decoding object block and the pixels of the neighboring block.
  • the similarity determination using the SAD may be expressed by Equation 11 below.
  • Pc i denotes a pixel set of the prediction block of the decoding target block
  • Pn i denotes a pixel set of the neighboring prediction block
  • the similarity may also be determined by the correlation between the prediction block of the decoding object block and the pixels of the neighboring prediction block.
  • the values determined through experiments may be used as the threshold value and the K value.
  • the decoding apparatus performs filtering on the prediction block of the current decoding target block (S1240). However, the filtering of the prediction block is performed when it is determined that filtering is performed in the determining whether to perform the filtering (S1230).
  • the prediction block of the current decoding object block may be filtered using the filter coefficient calculated in the filter coefficient calculation step. Filtering for the prediction block may be represented by Equation 12 below.
  • p i ' is the pixel value of the filtered prediction block of the decoding object block
  • p i is the pixel value of the pre-filtering block of the decoding object block
  • c i is a filter coefficient
  • s is a set of filter coefficients.
  • the decoding apparatus determines the pixel value of the prediction block of the current decoding target block.
  • the pixel value may be used to calculate a reconstruction block of a decoding target block.
  • 15 is a flowchart illustrating an embodiment of a method of determining a prediction block pixel value of a current decoding target block.
  • the decoding apparatus determines whether filtering is performed on a prediction block of a current decoding target block based on a determination on whether to perform filtering (S1510). Whether or not to perform the filtering may be determined in the above-described determining whether to perform the filtering (S1230).
  • the decoding apparatus determines the pixel value of the filtered prediction block as the pixel value of the final prediction block (S1520). If filtering is not performed on the prediction block, the decoding apparatus determines a pixel value of the unfiltered prediction block as the pixel value of the final prediction block (S1530).
  • the decoding apparatus generates a reconstructed block by using the reconstructed residual block and the final predicted block in which the pixel value is determined (S1260). As described above with reference to FIG. 4, the residual block is encoded by the encoding apparatus and then transmitted to the decoding apparatus, and the decoding apparatus may decode it and use it to generate a reconstructed block.
  • the decoding apparatus may generate a reconstructed block by adding the final predicted block and the reconstructed residual block.
  • the final prediction block may be added to the reconstructed residual block through the adder 255.
  • FIG. 16 is a block diagram schematically illustrating a configuration of a prediction block filtering apparatus applied to an image decoding apparatus.
  • FIG. 16 detailed descriptions of components or methods substantially the same as those described above with reference to FIGS. 12 to 15 will be omitted.
  • FIG. 16 includes a prediction block filtering device 1610 and a reconstruction block generator 1620.
  • the prediction block filtering device 1610 may include a neighboring block selector 1611, a filter coefficient calculator 1613, a filter performing determiner 1615, a filtering performer 1617, and a pixel value determiner 1619. Can be.
  • the prediction block filtering device 1610 may use the prediction block or the neighboring block of the current decoding target block in performing prediction block filtering.
  • the prediction block of the current decoding object block may be a prediction block generated by the intra predictor 240 or the motion compensator 250 according to the embodiment of FIG. 2.
  • the generated prediction block may not be directly input to the adder 255, but the final prediction block filtered through the prediction block filtering device 1610 may be input.
  • the adder 255 may add the filtered final prediction block to the reconstructed residual block.
  • the neighboring block may be a reference image buffer 270 or a block stored in a separate memory in the embodiment of FIG. 2.
  • the neighbor reconstruction block or the neighbor prediction block generated in the image decoding process may be used as the neighbor block.
  • the neighboring block selector 1611 may select neighboring blocks used for the filter coefficient calculation.
  • the neighbor block selector 1611 may select all neighbor reconstruction blocks adjacent to the decoding target block and corresponding prediction blocks as neighbor blocks for filter coefficient calculation. In this case, the neighboring block selector 1611 may select all pixel value regions of adjacent neighboring blocks, or may select only some pixel value regions in the neighboring neighboring blocks.
  • the neighboring block selector 1611 may select only neighboring prediction blocks associated with the prediction block of the current decoding target block and corresponding neighboring reconstruction blocks among possible neighboring blocks. For example, the neighboring block selector 1611 may determine the similarity between the prediction block and the neighboring prediction block of the decoding target block, and then select the neighboring block used for calculating the filter coefficients using the similarity.
  • the filter coefficient calculator 1613 may calculate filter coefficients using the selected neighboring reconstruction blocks and the neighboring prediction blocks. For example, the filter coefficient calculator 1613 may select a filter coefficient for minimizing the MSE between the neighbor reconstruction block selected for the decoding target block and the neighbor prediction block.
  • the filtering operation determiner 1615 may determine whether to perform filtering on the prediction block of the current decoding target block.
  • the filtering execution determiner 1615 may determine whether to perform filtering using the decoded filtering execution information.
  • the filtering operation determiner 1615 may determine whether to perform filtering on the prediction block of the current decoding target block by using the characteristic information between the prediction block of the current decoding target block and the neighboring block. For example, the filtering operation determiner 1615 may determine whether to perform filtering based on the filtering performance of the neighboring blocks. As another example, whether to perform filtering may be determined by determining similarity between the prediction block of the decoding object block and the neighboring prediction block.
  • the filtering performing unit 1617 may perform filtering on the prediction block of the current decoding target block. In this case, the filtering performing unit 1617 may perform filtering using the filter coefficient calculated by the filter coefficient calculating unit 1613.
  • the pixel value determiner 1619 may determine the pixel value of the prediction block of the current decoding target block. For example, the pixel value determiner 1619 may determine the pixel value of the final prediction block based on a result of the filtering performed by the filter determiner 1615.
  • the reconstruction block generator 1620 may generate a reconstruction block by using the determined final prediction block and the reconstructed residual block.
  • the reconstruction block generator 1620 may generate a reconstruction block by adding the last prediction block and the reconstructed residual block.
  • the reconstructed block generator 1620 may correspond to the adder 255 in the embodiment of FIG. 2.
  • the reconstructed block generator 1620 may include the adder 255 and the filter unit (in the embodiment of FIG. 2). 260 may be included in all, or may include additional additional configuration.
  • filter coefficients that are adaptively obtained for each prediction block of each decoding target block are used.
  • whether to perform filtering on a prediction block of each decoding target block may be adaptively selected. Therefore, the accuracy of the predicted image is increased, and as a result, the difference signal is minimized, thereby improving the encoding performance.
  • the filtering for the corresponding prediction block is the same in the encoder and the decoder. Can be performed. Therefore, additional encoding information can be minimized.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Provided are a method and apparatus for encoding/decoding video. The method and apparatus of the present invention involve generating a first prediction block for a block to be decoded, calculating a filter coefficient on the basis of the block adjacent to the first prediction block, and performing filtering on the first prediction block using the filter coefficient so as to generate a second prediction block if information relating to the performance of filtering indicates that filtering should be performed. According to the present invention, accuracy in video prediction and encoding performance are improved.

Description

적응적 예측 블록 필터링을 이용한 영상 부호화/복호화 장치 및 방법Apparatus and method for image coding / decoding using adaptive predictive block filtering
본 발명은 영상 처리기술에 관한 것으로써, 보다 상세하게는 영상의 부호화/복호화 장치 및 방법에 관한 것이다.The present invention relates to an image processing technology, and more particularly, to an apparatus and method for encoding / decoding an image.
최근 HD(High Definition) 해상도(1280x1024 혹은 1920x1080)를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 동영상 표준화 단체들은 보다 높은 해상도, 고화질의 영상에 대한 압축기술의 필요성을 인식하게 되었다. 또한 현재 HDTV, 휴대전화 등에 사용되는 동영상 압축 부호화 표준인 H.264/AVC(Advanced Video Coding)보다 높은 압축 효율을 통해, 기존 부호화 방식과 동일한 화질을 제공하면서도 주파수 대역이나 저장 측면에서 많은 이득을 제공할 수 있는 새로운 표준이 요구되고 있다. 현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)은 공동으로 차세대 비디오 코덱인 HEVC(High Efficiency Video Coding)에 대한 표준화 작업을 진행하고 있다. HEVC의 개략적인 목표는 UHD 영상까지 포함한 영상을 H.264/AVC 대비 2배의 압축효율로 부호화하는 것이다. HEVC는 HD, UHD 영상뿐만 아니라 3D 방송 및 이동통신망에서도 현재보다 낮은 주파수로 고화질의 영상을 제공할 수 있다.Recently, as the broadcasting service having high definition (HD) resolution (1280x1024 or 1920x1080) has been expanded not only in Korea but also in the world, many users are getting used to high resolution and high definition video, and many institutions are spurring the development of next generation video equipment. Is adding. In addition, as HDTV and UHD (Ultra High Definition), which has four times the resolution of HDTV, have increased interest, video standardization organizations have recognized the need for compression technology for higher resolution and higher quality images. It also provides higher compression efficiency than H.264 / AVC (Advanced Video Coding), the video compression coding standard currently used in HDTVs, mobile phones, etc., which provides the same image quality as the existing coding method, but provides a lot of gain in terms of frequency band and storage. New standards are needed to do this. Currently, the Moving Picture Experts Group (MPEG) and the Video Coding Experts Group (VCEG) are working together to standardize the next-generation video codec, High Efficiency Video Coding (HEVC). The general goal of HEVC is to encode a video including UHD video with twice the compression efficiency compared to H.264 / AVC. HEVC can provide high-definition video at lower frequencies than current HD, UHD video as well as 3D broadcasting and mobile communication networks.
HEVC에서는 공간적 또는 시간적으로 영상에 대한 예측(prediction)이 수행되어 예측 영상이 생성될 수 있으며 원본 영상과 예측 영상과의 차이가 부호화될 수 있다. 이러한 예측 부호화에 의해 영상 부호화의 효율이 높아질 수 있다.In HEVC, a prediction image may be generated by performing a prediction on an image spatially or temporally, and a difference between an original image and a prediction image may be encoded. Such predictive encoding may increase the efficiency of image encoding.
기존 영상 부호화 방법은 부호화 성능을 향상시키기 위해 예측 영상의 정확도를 더욱 높이는 기술들을 제안해 왔다. 예측 영상의 정확도를 높이기 위해 기존영상 부호화 방법은 일반적으로 참조 영상의 보간 영상을 정밀하게 하거나, 차신호를 한 번 더 예측하는 방법을 사용한다.Existing image coding methods have been proposed techniques for further improving the accuracy of prediction images in order to improve encoding performance. In order to increase the accuracy of the predicted image, the conventional image encoding method generally uses a method of precisely interpolating the reference image or predicting the difference signal once more.
본 발명의 목적은 적응적 예측 블록 필터링을 이용한 영상 부호화 장치 및 방법을 제공함에 있다.An object of the present invention is to provide an apparatus and method for image encoding using adaptive prediction block filtering.
본 발명의 다른 목적은 높은 예측 영상 정확도 및 향상된 부호화 성능을 제공하는 영상 부호화 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an image encoding apparatus and method for providing high predictive image accuracy and improved encoding performance.
본 발명의 또 다른 목적은 추가되는 부호화 정보를 최소화할 수 있는 영상 부호화 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an image encoding apparatus and method capable of minimizing additional encoding information.
본 발명의 또 다른 목적은 적응적 예측 블록 필터링을 이용한 영상 복호화 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an apparatus and method for image decoding using adaptive prediction block filtering.
본 발명의 또 다른 목적은 높은 예측 영상 정확도 및 향상된 부호화 성능을 제공하는 영상 복호화 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an image decoding apparatus and method for providing high prediction image accuracy and improved encoding performance.
본 발명의 또 다른 목적은 부호화 장치로부터 전송되는 부호화 정보를 최소화할 수 있는 영상 복호화 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an image decoding apparatus and method capable of minimizing encoding information transmitted from an encoding apparatus.
본 발명의 일 실시 형태는 영상 복호화 방법이다. 상기 방법은 복호화 대상 블록에 대한 제1 예측 블록을 생성하는 단계, 상기 제1 예측 블록의 주변 블록을 기초로 필터 계수를 산출하는 단계 및 부호화 장치 또는 복호화 장치에서 생성되거나, 상기 부호화 장치 또는 상기 복호화 장치에 저장된 필터링 수행 여부 정보가 필터링을 수행하는 것을 지시하는 경우, 상기 필터 계수를 이용하여 상기 제1 예측 블록에 대한 필터링을 수행하여 제2 예측 블록을 생성하는 단계를 포함한다. 상기 필터링 수행 여부 정보는 상기 제1 예측 블록에 대해 필터링이 수행되는지 여부를 지시하는 정보이다.One embodiment of the present invention is a video decoding method. The method may include generating a first prediction block for a decoding target block, calculating a filter coefficient based on a neighboring block of the first prediction block, and generating the encoding coefficient or the decoding apparatus, or generating the encoding coefficient or the decoding. If the filtering performed information stored in the device indicates to perform the filtering, performing the filtering on the first prediction block using the filter coefficients to generate a second prediction block. The filtering performance information is information indicating whether filtering is performed on the first prediction block.
상기 주변 블록은 각각 상기 제1 예측 블록의 한 면에 인접한 좌측 블록, 상단 블록 및 각각 상기 제1 예측 블록에 인접한 좌측 최상단 블록, 우측 최상단 블록, 좌측 최하단 블록 중 적어도 하나일 수 있다.Each of the neighboring blocks may be at least one of a left block, an upper block, and a left top block, a right top block, and a left bottom block adjacent to one side of the first prediction block, respectively.
상기 필터 계수를 산출하는 단계에서는, 상기 주변 블록 내의 일부 영역만을 이용하여 상기 필터 계수를 산출할 수 있다.In the calculating of the filter coefficients, the filter coefficients may be calculated using only a partial region in the neighboring block.
상기 주변 블록은, 상기 주변 블록에 대한 주변 예측 블록과 상기 제1 예측 블록 간의 유사도가 소정의 임계값 이상일 수 있다.The neighboring block may have a similarity degree between the neighboring prediction block and the first prediction block with respect to the neighboring block.
상기 필터링 수행 여부 정보는 상기 부호화 장치에서 부호화 대상 블록의 예측 블록에 대한 필터링 수행 전후의 율-왜곡 비용 값의 비교에 의해 생성되고, 상기 부호화 대상 블록의 예측 블록에 대한 필터링 수행 전 율-왜곡 비용 값이 상기 부호화 대상 블록의 예측 블록에 대한 필터링 수행 후 율-왜곡 비용 값보다 작은 경우 필터링을 수행하지 않는 것을 지시하고, 상기 부호화 대상 블록의 예측 블록에 대한 필터링 수행 전 율-왜곡 비용 값이 상기 부호화 대상 블록의 예측 블록에 대한 필터링 수행 후 율-왜곡 비용 값보다 큰 경우 필터링을 수행하는 것을 지시하며, 상기 부호화 장치에서 부호화되어 상기 복호화 장치로 전송되는 정보일 수 있다.The filtering information is generated by comparing the rate-distortion cost value before and after performing filtering on the prediction block of the encoding target block in the encoding apparatus, and the filtering rate-distortion cost before performing the filtering on the prediction block of the encoding target block. If the value is smaller than the rate-distortion cost value after performing the filtering on the prediction block of the encoding target block, it indicates that no filtering is performed, and the value of the rate-distortion cost before performing the filtering on the prediction block of the encoding block is the value. The filtering is performed when the prediction block of the encoding target block is larger than the rate-distortion cost value after the filtering is performed, and may be information encoded by the encoding apparatus and transmitted to the decoding apparatus.
상기 필터링 수행 여부 정보는 상기 복호화 장치에서 상기 주변 블록의 정보에 기초하여 생성되는 정보일 수 있다.The filtering performance information may be information generated based on the information of the neighboring block in the decoding apparatus.
상기 필터링 수행 여부 정보는, 상기 필터 계수를 이용하여 상기 주변 블록에 대해 수행한 필터링 성능을 기초로 생성될 수 있다.The filtering performance information may be generated based on filtering performance performed on the neighboring block by using the filter coefficients.
상기 필터링 수행 여부 정보는, 상기 예측 블록과 상기 주변 예측 블록 간의 유사도를 기초로 생성될 수 있다.The filtering performance information may be generated based on the similarity between the prediction block and the neighboring prediction block.
상기 방법은 상기 제1 예측 블록에 대해 필터링이 수행되는 경우 상기 제2 예측 블록 및 복원된 잔여 블록(residual block)을 이용하여 복원 블록을 생성하고, 상기 제1 예측 블록에 대해 필터링이 수행되지 않는 경우 상기 제1 예측 블록 및 상기 복원된 잔여 블록을 이용하여 복원 블록을 생성하는 단계를 추가로 포함할 수 있다.When the filtering is performed on the first prediction block, the method generates a reconstruction block by using the second prediction block and the reconstructed residual block, and the filtering is not performed on the first prediction block. In this case, the method may further include generating a reconstruction block by using the first prediction block and the reconstructed residual block.
본 발명의 다른 실시 형태는 영상 복호화 장치이다. 상기 장치는 제1 예측 블록의 주변 블록을 기초로 필터 계수를 산출하는 필터 계수 계산부, 부호화 장치 또는 복호화 장치에서 생성되거나, 상기 부호화 장치 또는 상기 복호화 장치에 저장된 필터링 수행 여부 정보가 필터링을 수행하는 것을 지시하는 경우, 상기 필터 계수를 이용하여 상기 제1 예측 블록에 대한 필터링을 수행하여 제2 예측 블록을 생성하는 필터링 수행부 및 상기 제1 예측 블록에 대해 필터링이 수행되는 경우 상기 제2 예측 블록 및 복원된 잔여 블록(residual block)을 이용하여 복원 블록을 생성하고, 상기 제1 예측 블록에 대해 필터링이 수행되지 않는 경우, 상기 제1 예측 블록 및 상기 복원된 잔여 블록을 이용하여 복원 블록을 생성하는 복원 블록 생성부를 포함한다. 상기 필터링 수행 여부 정보는 상기 제1 예측 블록에 대해 필터링이 수행되는지 여부를 지시하는 정보이다.Another embodiment of the present invention is a video decoding apparatus. The apparatus may be generated by a filter coefficient calculating unit, an encoding apparatus, or a decoding apparatus that calculates filter coefficients based on neighboring blocks of a first prediction block, or by performing filtering performed by information stored in the encoding apparatus or the decoding apparatus. In this case, the filtering unit which performs filtering on the first prediction block by using the filter coefficients to generate a second prediction block and when the filtering is performed on the first prediction block, the second prediction block. And a reconstructed block is generated by using the reconstructed residual block, and when filtering is not performed on the first prediction block, a reconstructed block is generated by using the first prediction block and the reconstructed residual block. And a recovery block generation unit. The filtering performance information is information indicating whether filtering is performed on the first prediction block.
본 발명의 또 다른 실시 형태는 영상 부호화 방법이다. 상기 방법은 부호화 대상 블록에 대한 제1 예측 블록을 생성하는 단계, 상기 제1 예측 블록의 주변 블록을 기초로 필터 계수를 산출하는 단계 및 부호화 장치에서 생성되거나 부호화 장치에 저장된 필터링 수행 여부 정보가 필터링을 수행하는 것을 지시하는 경우, 상기 필터 계수를 이용하여 상기 제1 예측 블록에 대한 필터링을 수행하여 제2 예측 블록을 생성하는 단계를 포함한다. 상기 필터링 수행 여부 정보는 상기 제1 예측 블록에 대해 필터링이 수행되는지 여부를 지시하는 정보이다.Another embodiment of the present invention is a video encoding method. The method may further include generating a first prediction block for an encoding target block, calculating a filter coefficient based on a neighboring block of the first prediction block, and filtering information on whether to perform filtering generated in the encoding device or stored in the encoding device. If instructing to perform, and performing the filtering on the first prediction block using the filter coefficients, generating a second prediction block. The filtering performance information is information indicating whether filtering is performed on the first prediction block.
상기 주변 블록은 각각 상기 제1 예측 블록의 한 면에 인접한 좌측 블록, 상단 블록 및 각각 상기 제1 예측 블록에 인접한 좌측 최상단 블록, 우측 최상단 블록, 좌측 최하단 블록 중 적어도 하나일 수 있다.The neighboring block may be at least one of a left block, an upper block, and a left uppermost block, a right uppermost block, and a left lowermost block adjacent to one side of the first prediction block, respectively.
상기 필터 계수를 산출하는 단계에서는, 상기 주변 블록 내의 일부 영역만을 이용하여 필터 계수를 산출할 수 있다.In the calculating of the filter coefficients, the filter coefficients may be calculated using only a partial region in the peripheral block.
상기 필터링 수행 여부 정보는 항상 필터링을 수행하는 것을 지시할 수 있다.The information on whether to perform filtering may always indicate to perform filtering.
상기 방법은, 상기 제1 예측 블록에 대한 율-왜곡 비용 값이 상기 제2 예측 블록에 대한 율-왜곡 비용 값보다 작은 경우 상기 제1 예측 블록 및 입력 블록을 이용하여 잔여 블록을 생성하고, 상기 제1 예측 블록에 대한 율-왜곡 비용 값이 상기 제2 예측 블록에 대한 율-왜곡 비용 값보다 큰 경우 상기 제2 예측 블록 및 상기 입력 블록을 이용하여 잔여 블록을 생성하는 단계를 추가로 포함할 수 있다.The method may further include generating a residual block using the first prediction block and the input block when the rate-distortion cost value for the first prediction block is less than the rate-distortion cost value for the second prediction block, and Generating a residual block using the second prediction block and the input block if the rate-distortion cost value for the first prediction block is greater than the rate-distortion cost value for the second prediction block. Can be.
상기 필터링 수행 여부 정보는 상기 부호화 장치에서 상기 주변 블록의 정보에 기초하여 생성되는 정보일 수 있다.The information on whether to perform filtering may be information generated based on information of the neighboring block in the encoding apparatus.
상기 필터링 수행 여부 정보는, 상기 필터 계수를 이용하여 상기 주변 블록에 대해 수행한 필터링 성능을 기초로 생성될 수 있다.The filtering performance information may be generated based on filtering performance performed on the neighboring block by using the filter coefficients.
상기 필터링 수행 여부 정보는, 상기 예측 블록과 상기 주변 예측 블록 간의 유사도를 기초로 생성될 수 있다.The filtering performance information may be generated based on the similarity between the prediction block and the neighboring prediction block.
상기 방법은, 상기 제1 예측 블록에 대해 필터링이 수행되는 경우, 상기 제2 예측 블록 및 입력 블록을 이용하여 잔여 블록을 생성하고, 상기 제1 예측 블록에 대해 필터링이 수행되지 않는 경우, 상기 제1 예측 블록 및 상기 입력 블록을 이용하여 잔여 블록을 생성하는 단계를 추가로 포함할 수 있다.The method may further include generating a residual block by using the second prediction block and an input block when filtering is performed on the first prediction block, and when filtering is not performed on the first prediction block. The method may further include generating a residual block by using the first prediction block and the input block.
상기 제1 예측 블록에 대해 필터링이 수행되는 경우 상기 잔여 블록을 생성하는 단계에서는, 상기 제1 예측 블록에 대한 율-왜곡 비용 값이 상기 제2 예측 블록에 대한 율-왜곡 비용 값보다 작은 경우 상기 제1 예측 블록 및 상기 입력 블록을 이용하여 잔여 블록을 생성하고, 상기 제1 예측 블록에 대한 율-왜곡 비용 값이 상기 제2 예측 블록에 대한 율-왜곡 비용 값보다 큰 경우 상기 제2 예측 블록 및 상기 입력 블록을 이용하여 잔여 블록을 생성할 수 있다.In the step of generating the residual block when filtering is performed on the first prediction block, when the rate-distortion cost value for the first prediction block is smaller than the rate-distortion cost value for the second prediction block. Generate a residual block using the first prediction block and the input block, and if the rate-distortion cost value for the first prediction block is greater than the rate-distortion cost value for the second prediction block, the second prediction block And a residual block may be generated using the input block.
본 발명에 따르면, 예측 영상의 정확도가 높아지고 부호화 성능이 향상된다.According to the present invention, the accuracy of the prediction image is increased and the encoding performance is improved.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.1 is a block diagram illustrating a configuration of an image encoding apparatus according to an embodiment of the present invention.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.2 is a block diagram illustrating a configuration of an image decoding apparatus according to an embodiment of the present invention.
도 3은 본 발명의 실시예에서 사용되는 영상 및 블록의 개념을 나타내는 개념도이다. 3 is a conceptual diagram illustrating the concept of an image and a block used in an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 예측 블록 필터링을 이용한 영상 부호화 방법을 개략적으로 나타내는 흐름도이다.4 is a flowchart schematically illustrating an image encoding method using prediction block filtering according to an embodiment of the present invention.
도 5는 필터 계수 계산에 사용되는 주변 블록 선택 방법의 일 실시예를 나타내는 개념도이다.5 is a conceptual diagram illustrating an embodiment of a neighboring block selection method used for calculating filter coefficients.
도 6은 필터 계수 계산에 사용되는 주변 블록 선택 방법의 다른 실시예를 나타내는 흐름도이다.6 is a flowchart illustrating another embodiment of a method of selecting a neighboring block used in calculating filter coefficients.
도 7은 주변 블록에 대한 필터링 성능 판단에 의한 필터링 수행 여부 결정 방법의 일 실시예를 나타내는 흐름도이다.7 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering by determining filtering performance for a neighboring block.
도 8은 부호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도 판단에 의한 필터링 수행 여부 결정 방법의 일 실시예를 나타내는 흐름도이다.8 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering by determining similarity between a prediction block of a encoding target block and a neighboring prediction block.
도 9는 현재 부호화 대상 블록의 예측 블록 화소값 결정 방법의 일 실시예를 나타내는 흐름도이다.9 is a flowchart illustrating an embodiment of a method of determining prediction block pixel values of a current encoding target block.
도 10은 현재 부호화 대상 블록의 예측 블록 화소값 결정 방법의 다른 실시예를 나타내는 흐름도이다. 10 is a flowchart illustrating another embodiment of a method of determining a prediction block pixel value of a current encoding target block.
도 11은 영상 부호화 장치에 적용되는 예측 블록 필터링 장치의 일 실시예에 따른 구성을 개략적으로 나타내는 블록도이다.11 is a block diagram schematically illustrating a configuration of a prediction block filtering apparatus applied to an image encoding apparatus.
도 12는 본 발명의 일 실시예에 따른 예측 블록 필터링을 이용한 영상 복호화 방법을 개략적으로 나타내는 흐름도이다.12 is a flowchart schematically illustrating an image decoding method using prediction block filtering according to an embodiment of the present invention.
도 13은 필터 계수 계산에 사용되는 주변 블록 선택 방법의 일 실시예를 나타내는 개념도이다.13 is a conceptual diagram illustrating an embodiment of a neighboring block selection method used for calculating filter coefficients.
도 14는 필터링 수행 여부 정보를 이용한 필터링 수행 여부 결정 방법의 일 실시예를 나타내는 흐름도이다.14 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering using filtering information.
도 15는 현재 복호화 대상 블록의 예측 블록 화소값 결정 방법의 일 실시예를 나타내는 흐름도이다.15 is a flowchart illustrating an embodiment of a method of determining a prediction block pixel value of a current decoding target block.
도 16은 영상 복호화 장치에 적용되는 예측 블록 필터링 장치의 일 실시예에 따른 구성을 개략적으로 나타내는 블록도이다.16 is a block diagram schematically illustrating a configuration of a prediction block filtering apparatus applied to an image decoding apparatus.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.EMBODIMENT OF THE INVENTION Hereinafter, embodiment of this invention is described concretely with reference to drawings. In describing the embodiments of the present specification, when it is determined that a detailed description of a related well-known configuration or function may obscure the gist of the present specification, the detailed description thereof will be omitted.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다. When a component is said to be “connected” or “connected” to another component, it may be directly connected to or connected to that other component, but it may be understood that another component may exist in between. Should be. In addition, the description "include" a specific configuration in the present invention does not exclude a configuration other than the configuration, it means that additional configuration may be included in the scope of the technical spirit of the present invention or the present invention.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.In addition, the components shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and do not mean that each component is made of separate hardware or one software component unit. In other words, each component is included in each component for convenience of description, and at least two of the components may be combined into one component, or one component may be divided into a plurality of components to perform a function. Integrated and separate embodiments of the components are also included within the scope of the present invention without departing from the spirit of the invention.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.In addition, some of the components may not be essential components for performing essential functions in the present invention, but may be optional components for improving performance. The present invention can be implemented including only the components essential for implementing the essentials of the present invention except for the components used for improving performance, and the structure including only the essential components except for the optional components used for improving performance. Also included in the scope of the present invention.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.1 is a block diagram illustrating a configuration of an image encoding apparatus according to an embodiment of the present invention.
도 1을 참조하면, 상기 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조영상 버퍼(190)를 포함한다. Referring to FIG. 1, the image encoding apparatus 100 may include a motion predictor 111, a motion compensator 112, an intra predictor 120, a switch 115, a subtractor 125, and a converter 130. And a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference image buffer 190.
영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림을 출력한다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환된다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분을 부호화한다.The image encoding apparatus 100 encodes an input image in an intra mode or an inter mode and outputs a bitstream. Intra prediction means intra prediction and inter prediction means inter prediction. In the intra mode, the switch 115 is switched to intra, and in the inter mode, the switch 115 is switched to inter. The image encoding apparatus 100 generates a prediction block for an input block of an input image and then encodes a difference between the input block and the prediction block.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성한다.In the intra mode, the intra predictor 120 generates a prediction block by performing spatial prediction using pixel values of blocks that are already encoded around the current block.
인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 영상 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구한다. 움직임 보상부(112)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성한다. In the inter mode, the motion predictor 111 finds a motion vector in the reference picture stored in the reference picture buffer 190 that best matches the input block in the motion prediction process. The motion compensator 112 generates a prediction block by performing motion compensation using the motion vector.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔여 블록(residual block)을 생성한다. 변환부(130)는 잔여 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력한다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력한다. 엔트로피 부호화부(150)는 입력된 양자화된 계수를 확률 분포에 따라 엔트로피 부호화하여 비트스트림(bit stream)을 출력한다.The subtractor 125 generates a residual block by the difference between the input block and the generated prediction block. The transform unit 130 performs a transform on the residual block and outputs a transform coefficient. The quantization unit 140 quantizes the input transform coefficient according to the quantization parameter and outputs a quantized coefficient. The entropy encoder 150 entropy codes the input quantized coefficients according to a probability distribution and outputs a bit stream.
HEVC는 인터 예측 부호화, 즉 화면 간 예측 부호화를 수행하므로, 현재 부호화된 영상은 참조 영상으로 사용되기 위해 복호화되어 저장될 필요가 있다. 따라서 양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환된다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성된다. Since HEVC performs inter prediction encoding, that is, inter prediction encoding, picture currently encoded needs to be decoded and stored in order to be used as a reference picture. Accordingly, the quantized coefficients are inversely quantized by the inverse quantizer 160 and inversely transformed by the inverse transformer 170. The inverse quantized and inverse transformed coefficients are added to the prediction block by the adder 175 and a reconstruction block is generated.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(180)는 적응적 인루프(in-loop) 필터로 불릴 수도 있다. 디블록킹 필터는 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. SAO는 코딩 에러를 보상하기 위해 화소값에 적정 오프셋(offset) 값을 더해줄 수 있다. ALF는 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있으며, 고효율이 적용되는 경우에만 수행될 수도 있다. 필터부(180)를 거친 복원 블록은 참조 영상 버퍼(190)에 저장된다.The reconstruction block passes through the filter unit 180, and the filter unit 180 applies at least one or more of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstruction block or the reconstruction picture. can do. The filter unit 180 may be referred to as an adaptive in-loop filter. The deblocking filter can remove block distortion generated at the boundary between blocks. SAO may add an appropriate offset value to pixel values to compensate for coding errors. The ALF may perform filtering based on a value obtained by comparing the reconstructed image with the original image, and may be performed only when high efficiency is applied. The reconstructed block that has passed through the filter unit 180 is stored in the reference image buffer 190.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.2 is a block diagram illustrating a configuration of an image decoding apparatus according to an embodiment of the present invention.
도 2를 참조하면, 상기 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 필터부(260) 및 참조 영상 버퍼(270)를 포함한다.2, the image decoding apparatus 200 may include an entropy decoder 210, an inverse quantizer 220, an inverse transformer 230, an intra predictor 240, a motion compensator 250, and a filter. 260 and a reference picture buffer 270.
영상 복호화 장치(200)는 부호화기에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력한다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환된다. 영상 복호화 장치(200)는 입력 받은 비트스트림으로부터 잔여 블록(residual block)을 얻고 예측 블록을 생성한 후 잔여 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성한다.The image decoding apparatus 200 receives a bitstream output from the encoder and performs decoding in an intra mode or an inter mode, and outputs a reconstructed image, that is, a reconstructed image. In the intra mode, the switch is switched to intra, and in the inter mode, the switch is switched to inter. The image decoding apparatus 200 obtains a residual block from the input bitstream, generates a prediction block, adds the residual block and the prediction block, and generates a reconstructed block, that is, a reconstruction block.
엔트로피 복호화부(210)는 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여 양자화된 계수(quantized coefficient)를 출력한다. 양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환 된 결과, 잔여 블록(residual block)이 생성된다. The entropy decoder 210 entropy decodes the input bitstream according to a probability distribution and outputs quantized coefficients. The quantized coefficients are inversely quantized by the inverse quantizer 220 and inversely transformed by the inverse transformer 230, and as a result of the inverse quantization / inverse transformation of the quantized coefficients, a residual block is generated.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성한다. In the intra mode, the intra predictor 240 generates a predictive block by performing spatial prediction using pixel values of already encoded blocks around the current block.
인터 모드인 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 영상 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성한다. In the inter mode, the motion compensator 250 generates a prediction block by performing motion compensation using the motion vector and the reference image stored in the reference image buffer 270.
잔여 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거친다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력한다. 복원 영상은 참조 영상 버퍼(270)에 저장되어 화면 간 예측에 사용될 수 있다.The residual block and the predictive block are added through the adder 255, and the added block passes through the filter unit 260. The filter unit 260 may apply at least one or more of the deblocking filter, SAO, and ALF to the reconstructed block or the reconstructed picture. The filter unit 260 outputs a reconstructed image, that is, a reconstructed image. The reconstructed picture may be stored in the reference picture buffer 270 to be used for inter prediction.
부호화/복호화 장치의 예측 성능을 향상시키기 위한 방법에는 보간(interpolation) 영상의 정확도를 높이는 방법과 차신호를 예측하는 방법이 있다. 여기서 차신호란 원본 영상과 예측 영상과의 차이를 나타내는 신호이다. 본 발명에서 “차신호”는 문맥에 따라 “차분 신호”, “잔여 블록” 또는 “차분 블록”으로 대체되어 사용될 수 있으며, 해당 기술분야에서 통상의 지식을 가진 자는 발명의 사상, 본질에 영향을 주지 않는 범위 내에서 이를 구분할 수 있을 것이다.Methods for improving the prediction performance of the encoding / decoding apparatus include a method of increasing the accuracy of an interpolation image and a method of predicting a difference signal. Here, the difference signal is a signal representing the difference between the original image and the predicted image. In the present invention, the "difference signal" may be used by being replaced with "difference signal", "residual block" or "difference block" according to the context, and those skilled in the art may affect the spirit and the essence of the invention. This can be distinguished to the extent that it does not give.
보간 영상의 정확도가 높아져도 차신호는 발생할 수 밖에 없다. 따라서 차신호 예측의 성능을 향상시켜 부호화될 차신호를 최대한 줄임으로써 부호화 성능을 향상시킬 필요가 있다.Even if the interpolated image is more accurate, a difference signal can only be generated. Therefore, it is necessary to improve encoding performance by improving the performance of difference signal prediction and reducing the difference signal to be encoded as much as possible.
차신호 예측 방법으로는 고정된 필터 계수를 이용한 필터링 방법이 사용될 수 있다. 그러나, 이러한 필터링 방법은 영상 특성에 따라 적응적으로 필터 계수가 사용될 수 없으므로, 예측 성능에 한계가 있다. 따라서 예측 블록마다 그 특성에 맞게 필터링이 수행되도록 함으로써 예측의 정확도를 향상시킬 필요가 있다.As a difference signal prediction method, a filtering method using fixed filter coefficients may be used. However, such a filtering method has a limitation in prediction performance because filter coefficients cannot be used adaptively according to image characteristics. Therefore, it is necessary to improve the accuracy of prediction by filtering according to the characteristics of each prediction block.
도 3은 본 발명의 실시예에서 사용되는 영상 및 블록의 개념을 나타내는 개념도이다. 3 is a conceptual diagram illustrating the concept of an image and a block used in an embodiment of the present invention.
도 3을 참조하면, 부호화 대상 블록은 현재 부호화 대상 영상 내의 공간적으로 연결된 화소들의 집합이다. 부호화 대상 블록은 부호화 및 복호화가 이루어지는 단위이며, 사각형 또는 임의의 모양일 수 있다. 주변 복원 블록은 현재 부호화 대상 영상 내에서 현재 부호화 대상 블록이 부호화되기 이전에 부호화 및 복호화가 완료된 블록이다.Referring to FIG. 3, an encoding target block is a set of spatially connected pixels in a current encoding target image. The encoding target block is a unit in which encoding and decoding are performed, and may be a quadrangle or an arbitrary shape. The neighbor reconstruction block is a block in which encoding and decoding are completed before the current encoding target block is encoded in the current encoding target image.
예측 영상은 현재 부호화 대상 영상 내에서, 영상의 첫 번째 부호화 대상 블록에서부터 현재 부호화 대상 블록까지, 각 블록의 부호화에 사용되는 예측 블록을 모아놓은 영상이다. 여기서 예측 블록이란, 현재 부호화 대상 영상 내에서 각 부호화 대상 블록들의 부호화에 사용되는 예측 신호를 가지는 블록을 말한다. 즉, 예측 블록은 예측 영상 내에 있는 각각의 블록을 말한다. The predictive image is an image obtained by collecting predictive blocks used for encoding each block, from the first encoding target block of the image to the current encoding target block in the current encoding target image. Here, the prediction block refers to a block having a prediction signal used for encoding the respective encoding target blocks in the current encoding target video. That is, the prediction block refers to each block in the prediction image.
주변 블록은 현재 부호화 대상 블록의 주변 복원 블록 및 각 주변 복원 블록의 예측 블록인 주변 예측 블록을 의미한다. 즉, 주변 블록은 주변 복원 블록과 주변 예측 블록을 함께 지칭한다. 주변 블록은 본 발명 실시예의 필터 계수 계산에 사용되는 블록들이다. The neighboring block means a neighboring reconstruction block of the current encoding target block and a neighboring prediction block that is a prediction block of each neighboring reconstruction block. That is, the neighbor block refers to the neighbor reconstruction block and the neighbor prediction block together. The neighboring blocks are blocks used for calculating the filter coefficients in the embodiment of the present invention.
현재 부호화 대상 블록의 예측 블록(B)은 본 발명의 실시예에 따라 필터링되어 필터링된 블록(B’)이 될 수 있으며, 구체적인 실시예는 아래에서 각각의 도면을 통해 설명된다.The prediction block B of the current encoding target block may be a filtered block B ′ filtered according to an embodiment of the present invention. Specific embodiments are described below with reference to the accompanying drawings.
이하, 부호화 대상 블록, 주변 복원 블록, 예측 영상, 예측 블록 및 주변 블록은 상기 도 3에서 정의한 바와 같은 의미로 사용된다.Hereinafter, the encoding target block, the neighbor reconstruction block, the prediction image, the prediction block, and the neighboring block are used as the meanings defined in FIG. 3.
도 4는 본 발명의 일 실시예에 따른 예측 블록 필터링을 이용한 영상 부호화 방법을 개략적으로 나타내는 흐름도이다. 영상을 부호화함에 있어 현재 부호화 대상 블록의 예측 블록에 대한 필터링이 이용될 수 있으며, 본 발명의 실시예에서는 예측 블록 필터링을 이용하여 영상 부호화가 수행된다.4 is a flowchart schematically illustrating an image encoding method using prediction block filtering according to an embodiment of the present invention. In encoding an image, filtering on a prediction block of a current encoding target block may be used. In an embodiment of the present invention, image encoding is performed using prediction block filtering.
예측 블록 필터링에 있어 현재 부호화 대상 블록의 예측 블록, 현재 부호화 대상 블록의 원 블록 또는 주변 블록이 사용될 수 있다. 여기서 원 블록이란 현재 부호화 대상 영상 내에서, 부호화 과정을 거치지 않은 입력된 그대로의 블록을 의미한다. In prediction block filtering, a prediction block of a current encoding target block, an original block of a current encoding target block, or a neighboring block may be used. Here, the original block means an input block as it is, without undergoing an encoding process, in the current encoding target video.
현재 부호화 대상 블록의 예측 블록은 도 1의 실시예에 따라 움직임 보상부(112) 또는 인트라 예측부(120)에서 생성된 예측 블록일 수 있다. 이 경우, 움직임 보상부(112) 또는 인트라 예측부(120)에서 생성된 예측 블록에 대한 예측 블록 필터링 과정이 수행된 후, 감산기(125)는 필터링된 최종 예측 블록과 원 블록의 차분을 수행할 수 있다.The prediction block of the current encoding target block may be a prediction block generated by the motion compensator 112 or the intra predictor 120 according to the embodiment of FIG. 1. In this case, after the prediction block filtering process is performed on the prediction block generated by the motion compensator 112 or the intra prediction unit 120, the subtractor 125 may perform a difference between the filtered final prediction block and the original block. Can be.
주변 블록은 도 1의 실시예에서의 참조 영상 버퍼(190) 또는 별도의 메모리에 저장된 블록일 수 있다. 또한 영상 부호화 과정에서 생성된 주변 복원 블록 또는 주변 예측 블록이 그대로 주변 블록으로 사용될 수도 있다.The neighboring block may be a block stored in the reference image buffer 190 or a separate memory in the embodiment of FIG. 1. In addition, the neighbor reconstruction block or the neighbor prediction block generated in the image encoding process may be used as the neighbor block.

도 4를 참조하면, 부호화 장치는 필터 계수 계산에 사용되는 주변 블록들을 선택한다(S410). 필터 계수의 계산에는 주변 블록이 사용될 수 있고, 이 경우 주변 블록 중 어느 블록이 사용되는지 판단될 수 있다. Referring to FIG. 4, the encoding apparatus selects neighboring blocks used for calculating filter coefficients (S410). A neighboring block may be used to calculate the filter coefficients, and in this case, which of the neighboring blocks is used may be determined.
일례로 부호화 대상 블록에 인접한 모든 주변 복원 블록들 및 그 주변 복원 블록들에 해당하는 모든 주변 예측 블록들이, 필터 계수 계산을 위한 주변 블록으로 선택될 수 있으며 부호화에 사용될 수 있다. 필터 계수 계산에 사용되는 주변 블록들의 화소값들의 집합은 다양하게 선택될 수 있다.For example, all the neighboring reconstruction blocks adjacent to the encoding target block and all the neighboring prediction blocks corresponding to the neighboring reconstruction blocks may be selected as neighboring blocks for calculating filter coefficients and may be used for encoding. The set of pixel values of the neighboring blocks used for the filter coefficient calculation may be variously selected.
도 5는 필터 계수 계산에 사용되는 주변 블록 선택 방법의 일 실시예를 나타내는 개념도이다. 도 5를 참조하면, 상단(510)의 경우와 같이, 인접한 주변 블록들의 모든 화소값 영역이 필터 계수 계산에 사용될 수 있다. 그러나, 하단(520)의 경우와 같이, 인접한 주변 블록 내에서 일부의 화소값 영역만이 필터 계수 계산에 사용될 수도 있다.5 is a conceptual diagram illustrating an embodiment of a neighboring block selection method used for calculating filter coefficients. Referring to FIG. 5, as in the case of the top 510, all pixel value regions of adjacent neighboring blocks may be used for the filter coefficient calculation. However, as in the case of the lower end 520, only some pixel value regions in adjacent neighboring blocks may be used for filter coefficient calculation.
일 실시예로, 현재 부호화 대상 블록의 가장 좌측 상단 화소의 좌표는 (x, y), 현재 부호화 대상 블록의 폭과 높이는 각각 W, H라 가정한다. 예를 들어, 이 때 현재 부호화 대상 블록의 가장 우측 상단 화소의 좌표는 (x+W-1,y)이다. x축을 따라 우측 방향이 양의 방향, y축을 따라 아래 방향이 양의 방향이라 가정한다. 이 때, 인접한 주변 블록에는 (x ~ x+W-1, y-1) 좌표의 화소 중 적어도 하나의 화소를 포함하는 상단 블록, (x-1, y ~ y+H-1) 좌표의 화소 중 적어도 하나의 화소를 포함하는 좌측 블록, (x-1, y-1)의 좌표의 화소를 포함하는 좌측 상단 블록, (x+W, y-1)의 좌표의 화소를 포함하는 우측 상단 블록 및 (x-1, y+H)의 좌표의 화소를 포함하는 좌측 하단 블록이 있을 수 있다. 이 때 상단 블록 및 좌측 블록은 예측 블록의 한 면에 인접하는 블록이고, 좌측 상단 블록은 예측 블록에 인접한 좌측 최상단 블록이고, 우측 상단 블록은 예측 블록에 인접한 우측 최상단 블록이며, 좌측 하단 블록은 예측 블록에 인접한 좌측 최하단 블록이다.In an embodiment, it is assumed that the coordinates of the leftmost pixel of the current encoding target block are (x, y), and the width and height of the current encoding target block are W and H, respectively. For example, at this time, the coordinate of the rightmost upper pixel of the current encoding target block is (x + W-1, y). It is assumed that the right direction along the x axis is a positive direction and the downward direction along the y axis is a positive direction. In this case, the adjacent neighboring block includes an upper block including at least one pixel among the pixels having (x to x + W-1, y-1) coordinates, and a pixel having (x-1, y to y + H-1) coordinates. Left block containing at least one of the pixels, the upper left block containing the pixel of the coordinate of (x-1, y-1), the upper right block containing the pixel of the coordinate of (x + W, y-1) And a lower left block including pixels of (x-1, y + H) coordinates. At this time, the upper block and the left block are blocks adjacent to one side of the prediction block, the upper left block is the upper left block adjacent to the prediction block, the upper right block is the upper right block adjacent to the prediction block, and the lower left block is the prediction The leftmost bottom block adjacent to the block.
이 경우 상기 주변 블록들 중 적어도 하나의 블록이 필터 계수 계산에 사용될 수 있고, 모든 주변 블록들이 필터 계수 계산에 사용될 수도 있다. 또한 상단 블록, 좌측 블록, 좌측 상단 블록, 우측 상단 블록 및 좌측 하단 블록 내에서 각각 일부의 화소값 영역만이 필터 계수 계산에 사용될 수도 있다.In this case, at least one of the neighboring blocks may be used for the filter coefficient calculation, and all neighboring blocks may be used for the filter coefficient calculation. In addition, only some pixel value regions may be used for the filter coefficient calculation in the upper block, the left block, the upper left block, the upper right block, and the lower left block, respectively.
다른 예로 가능한 주변 블록들 중 현재 부호화 대상 블록의 예측 블록과 연관이 있는 주변 예측 블록들과 해당 주변 복원 블록들만이 사용될 수 있다. As another example, only neighboring prediction blocks associated with the prediction block of the current encoding target block and corresponding neighbor reconstruction blocks among possible neighboring blocks may be used.
도 6은 필터 계수 계산에 사용되는 주변 블록 선택 방법의 다른 실시예를 나타내는 흐름도이다. 도 6의 실시예에서는 부호화 대상 블록의 예측 블록과 주변 예측 블록들간의 유사도가 판별되어, 필터 계수 계산에 사용될 주변 블록이 선택된다.6 is a flowchart illustrating another embodiment of a method of selecting a neighboring block used in calculating filter coefficients. In the embodiment of FIG. 6, the similarity between the prediction block and the neighboring prediction blocks of the encoding target block is determined, and the neighboring block to be used for the filter coefficient calculation is selected.
도 6을 참조하면, 부호화 장치는 부호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도를 판단한다(S610). Referring to FIG. 6, the encoding apparatus determines a similarity degree between the prediction block of the encoding target block and the neighboring prediction block (S610).
유사도 D는 부호화 대상 블록의 예측 블록과 주변 예측 블록의 화소간의 차이, 예를 들어 SAD(Sum of Absolute Difference), SATD(Sum of Absolute Transformed Difference), SSD(Sum of Squared Difference) 등에 의해 판별될 수 있다. 예를 들어 SAD가 사용되는 경우, 유사도 D는 아래의 수학식 1과 같이 표현될 수 있다.The similarity D may be determined by the difference between the pixels of the prediction block of the encoding target block and the pixels of the neighboring prediction blocks, for example, sum of absorptive difference (SAD), sum of absolute transformed difference (SATD), sum of squared difference (SSD), and the like. have. For example, when SAD is used, the similarity D may be expressed as Equation 1 below.
<수학식 1><Equation 1>
Figure PCTKR2011007261-appb-I000001
Figure PCTKR2011007261-appb-I000001
여기서, Pci는 부호화 대상 블록의 예측 블록의 화소 집합, Pni는 주변 예측 블록의 화소 집합을 의미한다.Here, Pc i denotes a pixel set of the prediction block of the encoding target block, and Pn i denotes a pixel set of the neighboring prediction block.
유사도 D는 부호화 대상 블록의 예측 블록과 주변 예측 블록의 화소간의 상관 관계에 의해서도 판단될 수 있다. 이 때, 유사도 D는 아래의 수학식 2와 같이 표현될 수 있다.The similarity D may also be determined by the correlation between the prediction block of the encoding target block and the pixels of the neighboring prediction block. In this case, the similarity D may be expressed as Equation 2 below.
<수학식 2><Equation 2>
Figure PCTKR2011007261-appb-I000002
Figure PCTKR2011007261-appb-I000002
여기서 Pci는 부호화 대상 블록의 예측 블록의 화소 집합, Pni는 주변 예측 블록의 화소 집합, E[Pc]는 부호화 대상 블록의 예측 블록의 화소 집합의 평균, E[Pn]는 주변 예측 블록의 화소 집합의 평균을 의미한다. 그리고 SPc는 부호화 대상 블록의 예측 블록의 화소 집합의 표준편차, SPn은 주변 예측 블록의 화소 집합의 표준편차를 의미한다.Where Pc i is the pixel set of the prediction block of the encoding target block, Pn i is the pixel set of the neighboring prediction block, E [Pc] is the average of the pixel set of the prediction block of the encoding target block, and E [Pn] is the Mean of the pixel set. S Pc denotes the standard deviation of the pixel set of the prediction block of the encoding target block, and S Pn denotes the standard deviation of the pixel set of the neighboring prediction block.
그리고, 부호화 장치는 유사도가 임계값 이상인지를 판단한다(S620). 여기서 임계값은 실험을 통해 결정될 수 있고, 유사도와 결정된 임계값이 비교된다.In operation S620, the encoding apparatus determines whether the similarity is greater than or equal to the threshold. Here, the threshold value can be determined through experimentation, and the similarity and the determined threshold value are compared.
부호화 대상 블록의 예측 블록과 주변 예측 블록간의 유사도가 임계값 이상이면, 그 주변 블록은 필터 계수 계산에 사용된다(S630). 부호화 대상 블록의 예측 블록과 주변 예측 블록간의 유사도가 임계값 미만이면 그 주변 블록은 필터 계수 계산에 사용되지 않는다(S640).If the similarity between the prediction block of the encoding target block and the neighboring prediction block is equal to or greater than the threshold value, the neighboring block is used to calculate the filter coefficients (S630). If the similarity between the prediction block and the neighboring prediction block of the encoding target block is less than the threshold value, the neighboring block is not used for the filter coefficient calculation (S640).
상기와 같이 필터 계수를 구하는데 사용되는 주변 블록을 선택하는데 있어, 모든 주변 블록을 선택하는 방법 또는 현재 부호화 대상 블록의 예측 블록과의 유사도에 따라 주변 블록을 선택하는 방법 중 적어도 하나 이상의 방법이 이용됨으로써, 차신호를 줄일 수 있는 보다 정확한 필터 계수가 구해질 수 있다.In selecting neighboring blocks used to obtain filter coefficients as described above, at least one or more of a method of selecting all neighboring blocks or a method of selecting neighboring blocks according to similarity with prediction blocks of the current encoding target block is used. By doing so, a more accurate filter coefficient that can reduce the difference signal can be obtained.
복호화 장치도 도 6의 실시예와 동일한 방법을 이용하여 주변 블록을 선택할 수 있으므로, 부호화 장치는 선택된 주변 블록들에 대한 정보를 별도로 복호화 장치로 보낼 필요가 없다. 따라서 추가되는 부호화 정보가 최소화될 수 있다.Since the decoding apparatus may also select neighboring blocks using the same method as the embodiment of FIG. 6, the encoding apparatus does not need to separately transmit information about the selected neighboring blocks to the decoding apparatus. Therefore, additional encoding information can be minimized.

다시 도 4를 참조하면, 부호화 장치는 선택된 주변 복원 블록들과 주변 예측 블록들을 이용하여 필터 계수를 계산한다(S420). Referring back to FIG. 4, the encoding apparatus calculates filter coefficients using the selected neighbor reconstruction blocks and neighbor prediction blocks (S420).
일례로, 부호화 대상 블록에 대해 선택된 주변 복원 블록과 해당 주변 예측 블록간의 MSE(Mean Square Error)가 최소화되는 필터 계수가 선택될 수 있다. 이 때, 필터 계수는 아래의 수학식 3에 의해 구해질 수 있다.For example, a filter coefficient for minimizing a mean square error (MSE) between a neighbor reconstruction block selected for the encoding target block and the corresponding neighbor prediction block may be selected. At this time, the filter coefficient may be obtained by Equation 3 below.
<수학식 3><Equation 3>
Figure PCTKR2011007261-appb-I000003
Figure PCTKR2011007261-appb-I000003
여기서 rk는 선택된 주변 블록의 주변 복원 블록 화소값을 나타내고, pi는 선택된 주변 블록의 주변 예측 블록 화소값을 나타낸다. 또한 ci는 필터 계수를 나타내며, s는 필터 계수의 집합을 나타낸다.Here, r k represents a neighbor reconstructed block pixel value of the selected neighboring block and p i represents a neighbor predicted block pixel value of the selected neighboring block. C i represents a filter coefficient and s represents a set of filter coefficients.
본 발명의 실시예에 따르면, 부호화 대상 블록의 주변 복원 블록과 해당 예측 블록 간의 MSE를 최소화시키는 필터 계수가 매 예측 블록마다 계산되어 사용된다. 따라서 모든 예측 블록에 고정된 필터 계수가 사용되지 않고, 블록 각각의 영상 특성에 따른 각각 다른 필터 계수가 사용된다. 즉, 예측 블록에 따라 적응적으로 필터 계수가 구해지고 사용될 수 있다. 따라서 예측 블록의 정확도가 보다 향상될 수 있으며, 차신호가 감소되어 부호화 성능이 향상될 수 있다. According to an embodiment of the present invention, a filter coefficient for minimizing MSE between the neighboring reconstruction block of the encoding target block and the corresponding prediction block is calculated and used for each prediction block. Therefore, fixed filter coefficients are not used for all prediction blocks, and different filter coefficients according to image characteristics of each block are used. That is, filter coefficients may be adaptively obtained and used according to the prediction block. Therefore, the accuracy of the prediction block can be further improved, and the encoding signal can be improved by reducing the difference signal.
필터 계수는 1D(1차원) 분리형 필터를 사용하여 구해질 수 있으며, 2D(2차원) 비분리형 필터를 사용하여 구해질 수도 있다. Filter coefficients may be obtained using a 1D (one-dimensional) split filter, or may be obtained using a 2D (two-dimensional) non-separable filter.
복호화 장치는 부호화 장치와 동일한 방법으로 필터 계수를 구할 수 있으므로, 부호화 장치는 필터 계수 정보를 별도로 부호화하여 전송할 필요가 없다. 따라서 추가되는 부호화 정보가 최소화될 수 있다.Since the decoding apparatus can obtain filter coefficients in the same manner as the encoding apparatus, the encoding apparatus does not need to separately encode and transmit the filter coefficient information. Therefore, additional encoding information can be minimized.

다시 도 4를 참조하면, 부호화 장치는 현재 부호화 대상 블록의 예측 블록에 대한 필터링 수행 여부를 결정한다(S430). 필터링이 수행되는 것으로 결정되면 예측 블록에 대한 필터링이 수행되고, 필터링이 수행되지 않는 것으로 결정되면 예측 블록에 대한 필터링이 수행되지 않고 다음 단계가 진행될 수 있다.Referring back to FIG. 4, the encoding apparatus determines whether to perform filtering on the prediction block of the current encoding target block (S430). If it is determined that filtering is performed, filtering is performed on the prediction block. If it is determined that filtering is not performed, filtering on the prediction block is not performed and the next step may proceed.
필터링 수행 여부 결정의 일 실시예로, 항상 현재 부호화 대상 블록의 예측 블록에 대해 필터링을 수행한다는 결정이 내려질 수 있다. 이는, 필터링된 예측 블록과 필터링되지 않은 예측 블록의 율-왜곡 비용 비교를 통해, 잔여 블록 계산에 사용되는 예측 블록의 화소값을 결정하기 위함이다. 잔여 블록(residual block)은 원 블록과 예측 블록의 차분에 의해 생성되는 블록이며, 원 블록이란 현재 부호화 대상 영상 내에서, 부호화 과정을 거치지 않은 입력된 그대로의 블록을 의미한다.In one embodiment of determining whether to perform filtering, a determination may be made that filtering is always performed on a prediction block of a current encoding target block. This is to determine the pixel value of the prediction block used for calculating the residual block by comparing the rate-distortion cost of the filtered prediction block and the unfiltered prediction block. The residual block is a block generated by the difference between the original block and the prediction block, and the original block refers to an input block without undergoing an encoding process in the current encoding target image.
즉, 현재 부호화 대상 블록의 예측 블록 화소값을 율-왜곡 비용 비교를 통해 결정하기 위해, 항상 현재 부호화 대상 블록의 예측 블록에 대해 필터링을 수행하도록 결정이 내려질 수 있다. 율-왜곡 비용 비교를 통한 화소값 결정 방법은 도 9에서 상세히 설명된다.That is, in order to determine the prediction block pixel value of the current encoding target block through a rate-distortion cost comparison, a decision may be made to always perform filtering on the prediction block of the current encoding target block. The pixel value determination method through the rate-distortion cost comparison is described in detail in FIG.
필터링 수행 여부 결정의 다른 실시예로, 현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보를 이용하여, 현재 부호화 대상 블록의 예측 블록에 대한 필터링 수행 여부가 결정될 수 있다. 이는 아래의 도 7, 도 8의 실시예에서 상세히 설명된다.In another embodiment of determining whether to perform filtering, whether to perform filtering on the prediction block of the current encoding target block may be determined using the characteristic information between the prediction block of the current encoding target block and the neighboring block. This is explained in detail in the embodiment of FIGS. 7 and 8 below.
도 7은 주변 블록에 대한 필터링 성능 판단에 의한 필터링 수행 여부 결정 방법의 일 실시예를 나타내는 흐름도이다.7 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering by determining filtering performance for a neighboring block.
도 7을 참조하면, 부호화 장치는 필터 계수를 이용하여 주변 예측 블록 각각을 필터링한다(S710). 예를 들어 주변 블록 A, B, C, D가 선택된 경우, 필터 계수 계산 단계에서 얻은 필터 계수를 이용하여 주변 블록 A, B, C, D의 예측 블록 각각이 필터링된다.Referring to FIG. 7, the encoding apparatus filters each neighboring prediction block by using filter coefficients (S710). For example, when neighboring blocks A, B, C, and D are selected, each of the prediction blocks of neighboring blocks A, B, C, and D is filtered using the filter coefficients obtained in the filter coefficient calculation step.
그리고 부호화 장치는 각 주변 블록에 대한 필터링 성능을 판단한다(S720). In operation S720, the encoding apparatus determines the filtering performance of each neighboring block.
일례로 각 주변 블록에 대해, 필터링이 수행되지 않은 주변 예측 블록과 주변 복원 블록의 오차 및 필터링이 수행된 주변 예측 블록과 주변 복원 블록의 오차가 비교될 수 있다. 각 오차는 SAD, SATD, SSD를 이용하여 계산될 수 있다. For example, for each neighboring block, an error of the neighboring prediction block and the neighboring reconstruction block that are not filtered and an error of the neighboring prediction block and the neighboring reconstructed block where filtering is performed may be compared. Each error may be calculated using SAD, SATD, and SSD.
주변 예측 블록에 대해 필터링이 수행된 경우와 수행되지 않은 경우를 비교하여, 더 작은 오차가 발생하는 경우에 성능이 우수한 것으로 판단될 수 있다. 즉, 필터링이 수행되지 않은 주변 예측 블록과 주변 복원 블록의 오차보다, 필터링이 수행된 주변 예측 블록과 주변 복원 블록의 오차가 더 작으면, 필터링 효과가 있는 것으로 판단될 수 있다. When the filtering is performed on the neighboring prediction block and when the filtering is not performed, it may be determined that the performance is excellent when a smaller error occurs. That is, when the error between the neighboring prediction block and the neighboring reconstruction block that has been filtered is smaller than the error between the neighboring prediction block and the neighboring reconstruction block that has not been filtered, it may be determined that there is a filtering effect.
부호화 장치는 각 주변 예측 블록에 필터링이 수행된 경우와 수행되지 않은 경우의 오차를 비교하여 필터링 효과가 나타나는 주변 블록이 N개 이상인지 판단한다(S730).The encoding apparatus compares the error between the case where the filtering is performed on each neighboring prediction block and the case where the filtering is not performed, and determines whether there are N or more neighboring blocks showing the filtering effect (S730).
필터링 효과가 나타나는 주변 블록이 N개 이상인 경우 필터링이 수행되는 것으로 결정되고(S740), 필터링 효과가 나타나는 주변 블록이 N개 미만인 경우 필터링이 수행되지 않는 것으로 결정된다(S750). 여기서 N 값으로 실험을 통해 결정된 값이 사용될 수 있다. If there are more than N neighboring blocks showing the filtering effect, it is determined that filtering is performed (S740). If there are less than N neighboring blocks showing the filtering effect, it is determined that filtering is not performed (S750). Here, the value determined through the experiment may be used as the N value.
도 8은 부호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도 판단에 의한 필터링 수행 여부 결정 방법의 일 실시예를 나타내는 흐름도이다.8 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering by determining similarity between a prediction block of a encoding target block and a neighboring prediction block.
도 8을 참조하면, 부호화 장치는 부호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도를 판단한다(S810). Referring to FIG. 8, the encoding apparatus determines a similarity degree between the prediction block of the encoding target block and the neighboring prediction block (S810).
유사도는 부호화 대상 블록의 예측 블록과 주변 블록의 화소 간 SAD, SATD, SSD 등에 의해 판단될 수 있다. 예를 들어 SAD를 이용한 유사도 판단은 다음 수학식 4에 의해 표현될 수 있다.The similarity may be determined by SAD, SATD, SSD, and the like between the prediction block of the encoding target block and the pixels of the neighboring block. For example, the similarity determination using the SAD may be expressed by Equation 4 below.
<수학식 4><Equation 4>
Figure PCTKR2011007261-appb-I000004
Figure PCTKR2011007261-appb-I000004
여기서, Pci는 부호화 대상 블록의 예측 블록의 화소 집합, Pni는 주변 예측 블록의 화소 집합을 의미한다.Here, Pc i denotes a pixel set of the prediction block of the encoding target block, and Pn i denotes a pixel set of the neighboring prediction block.
유사도는 부호화 대상 블록의 예측 블록과 주변 예측 블록의 화소간의 상관 관계에 의해서도 판단될 수 있다.The similarity may also be determined by the correlation between the prediction block of the encoding target block and the pixels of the neighboring prediction block.
유사도가 판단되면, 부호화 장치는 유사도가 임계값 이상인 주변 블록이 K개 이상인지 판단한다(S820). 그리고 유사도가 임계값 이상인 주변 블록이 K개 이상인 경우 필터링이 수행되는 것으로 결정되고(S830), 유사도가 임계값 이상인 주변 블록이 K개 미만인 경우 필터링이 수행되지 않는 것으로 결정된다(S840). 여기서, 임계값 및 K 값으로서 실험을 통해 결정된 값이 사용될 수 있다.If the similarity is determined, the encoding apparatus determines whether there are K or more neighboring blocks whose similarity is greater than or equal to the threshold (S820). If there are more than K neighbor blocks having a similarity or more than the threshold value, it is determined that filtering is performed (S830). Here, the values determined through experiments may be used as the threshold value and the K value.
각 현재 부호화 대상 블록의 예측 블록마다 도 7 및 도 8의 실시예에 따른 방법 중 적어도 하나 이상의 방법이 사용되어 필터링 수행 여부가 결정될 수 있다. 따라서 각 예측 블록마다 유사도 또는 주변 예측 블록의 필터링 성능이 판단되어 필터링 수행 여부가 적응적으로 결정될 수 있으므로, 부호화 성능이 향상될 수 있다.For each prediction block of each current encoding target block, at least one or more methods according to the embodiments of FIGS. 7 and 8 may be used to determine whether to perform filtering. Accordingly, since the filtering performance of the similarity or the neighboring prediction blocks may be determined for each prediction block, whether to perform filtering may be adaptively determined, and thus the encoding performance may be improved.
현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보를 이용한 필터링 수행 여부 결정은 복호화 장치에서도 동일하게 수행될 수 있다. 따라서, 부호화 장치는 필터링 수행 여부에 관한 정보를 별도로 부호화하여 전송할 필요가 없으며, 따라서 추가되는 부호화 정보가 최소화될 수 있다.Determination of whether to perform filtering using the characteristic information between the prediction block and the neighboring block of the current encoding target block may be performed in the same manner in the decoding apparatus. Accordingly, the encoding apparatus does not need to separately encode and transmit information about whether to perform filtering, and thus additional encoding information may be minimized.

다시 도 4를 참조하면, 부호화 장치는 현재 부호화 대상 블록의 예측 블록에 대해 필터링을 수행한다(S440). 다만, 예측 블록에 대한 필터링은, 필터링 수행 여부 결정 단계(S430)에서 필터링이 수행되는 것으로 결정된 경우에 수행된다.Referring back to FIG. 4, the encoding apparatus performs filtering on the prediction block of the current encoding target block (S440). However, the filtering of the prediction block is performed when it is determined that the filtering is performed in the determining whether to perform the filtering (S430).
현재 부호화 대상 블록의 예측 블록은 필터 계수 계산 단계에서 계산된 필터 계수를 이용하여 필터링될 수 있다. 예측 블록에 대한 필터링은 아래의 수학식 5에 의해 나타내어질 수 있다.The prediction block of the current encoding target block may be filtered using the filter coefficient calculated in the filter coefficient calculation step. Filtering for the prediction block may be represented by Equation 5 below.
<수학식 5><Equation 5>
Figure PCTKR2011007261-appb-I000005
Figure PCTKR2011007261-appb-I000005
여기서, pi’은 부호화 대상 블록의 필터링된 예측 블록의 화소값, pi는 부호화 대상 블록의 필터링 전 예측 블록의 화소값, ci는 필터 계수, s는 필터 계수의 집합을 의미한다.Here, p i 'denotes a pixel value of the filtered prediction block of the encoding target block, p i denotes a pixel value of the pre-filtering prediction block of the encoding target block, c i denotes a filter coefficient, and s denotes a set of filter coefficients.

그리고 부호화 장치는 현재 부호화 대상 블록의 예측 블록의 화소값을 결정한다(S450). 상기 화소값은 잔여 블록의 계산에 사용될 수 있으며, 잔여 블록은 원 블록과 예측 블록의 차분에 의해 생성되는 블록이다. 화소값 결정 방법은 아래의 도 9 및 도 10의 실시예를 통해 상세히 설명된다.The encoding apparatus determines the pixel value of the prediction block of the current encoding target block (S450). The pixel value may be used to calculate a residual block, and the residual block is a block generated by the difference between the original block and the prediction block. The pixel value determination method is described in detail with reference to the embodiments of FIGS. 9 and 10 below.
도 9는 현재 부호화 대상 블록의 예측 블록 화소값 결정 방법의 일 실시예를 나타내는 흐름도이다. 도 9에 따르면, 필터링 전 예측 블록과 필터링된 예측 블록간의 율-왜곡 비용 값을 비교함으로써 화소값이 결정될 수 있다.9 is a flowchart illustrating an embodiment of a method of determining a prediction block pixel value of a current encoding target block. According to FIG. 9, the pixel value may be determined by comparing a rate-distortion cost value between the pre-filtered prediction block and the filtered prediction block.
도 9를 참조하면, 부호화 장치는 현재 부호화 대상 블록의 필터링된 예측 블록에 대한 율-왜곡 비용 값을 계산한다(S910). 율-왜곡 비용의 계산은 아래의 수학식 6에 의해 표현될 수 있다.Referring to FIG. 9, the encoding apparatus calculates a rate-distortion cost value for the filtered prediction block of the current encoding target block (S910). The calculation of the rate-distortion cost can be expressed by Equation 6 below.
<수학식 6><Equation 6>
Figure PCTKR2011007261-appb-I000006
Figure PCTKR2011007261-appb-I000006
여기서, Jf는 현재 부호화 대상 블록의 필터링된 예측 블록에 대한 율-왜곡(비트율-왜곡) 비용 값, Df는 원 블록과 필터링된 예측 블록간의 오차, λ는 라그랑지안(Lagrangian) 계수, Rf는 부호화 후 발생되는 비트수(필터링 여부에 대한 플래그(flag) 포함)를 의미한다.Where J f is the rate-distortion (bitrate-distortion) cost value for the filtered prediction block of the current encoding target block, D f is the error between the original block and the filtered prediction block, λ is a Lagrangian coefficient, R f Denotes the number of bits (including a flag for filtering) generated after encoding.
그리고 현재 부호화 대상 블록의 필터링되지 않은 예측 블록에 대한 율-왜곡 비용 값을 계산한다(S920). 율-왜곡 비용의 계산은 아래의 수학식 7에 의해 표현될 수 있다.The rate-distortion cost value for the unfiltered prediction block of the current encoding target block is calculated (S920). The calculation of the rate-distortion cost can be expressed by Equation 7 below.
<수학식 7><Equation 7>
Figure PCTKR2011007261-appb-I000007
Figure PCTKR2011007261-appb-I000007
여기서, Jnf는 현재 부호화 대상 블록의 필터링된 예측 블록에 대한 율-왜곡(비트율-왜곡) 비용 값, Dnf는 원 블록과 필터링되지 않은 예측 블록간의 오차, λ는 라그랑지안(Lagrangian) 계수, Rnf는 부호화 후 발생되는 비트수(필터링 여부에 대한 플래그(flag) 포함)를 의미한다.Where J nf is the rate-distortion (bit rate-distortion) cost value for the filtered prediction block of the current encoding target block, D nf is the error between the original block and the unfiltered prediction block, λ is the Lagrangian coefficient, R nf means the number of bits (including a flag for filtering) generated after encoding.
율-왜곡 비용 값들이 구해지면, 부호화 장치는 상기 율-왜곡 비용 값들을 비교한다(S930). 그리고 부호화 장치는 비교 결과를 기초로 현재 부호화 대상 블록의 최종 예측 블록에 대한 화소값을 결정한다(S940). 이 때, 최소 율-왜곡 비용 값을 갖는 경우의 화소값이 최종 예측 블록에 대한 화소값으로 결정될 수 있다. If rate-distortion cost values are obtained, the encoding apparatus compares the rate-distortion cost values (S930). The encoding apparatus determines a pixel value of the last prediction block of the current encoding target block based on the comparison result (S940). In this case, the pixel value in the case of having the minimum rate-distortion cost value may be determined as the pixel value for the final prediction block.
도 4의 필터링 수행 여부 결정 단계(S430)에서 상술된 바와 같이, 율-왜곡 비용 값의 비교에 의해 최종 예측 블록의 화소값이 결정되는 경우에는 율-왜곡 값 계산을 위해 항상 필터링이 수행될 수 있다. 그러나, 율-왜곡 비용 비교 결과에 따라, 필터링된 예측 블록의 화소값 뿐만 아니라 필터링 전 예측 블록의 화소값도 최종 예측 블록에 대한 화소값으로 결정될 수 있다.As described above in the determining whether to perform the filtering of FIG. 4 (S430), when the pixel value of the final prediction block is determined by the comparison of the rate-distortion cost values, filtering may always be performed to calculate the rate-distortion value. have. However, according to the rate-distortion cost comparison result, not only the pixel value of the filtered prediction block but also the pixel value of the pre-filtering prediction block may be determined as the pixel value for the final prediction block.
도 9의 화소값 결정 방법에서 부호화 장치는 복호화 장치에 필터링 수행 여부를 알려주는 정보를 전송하여야 한다. 즉, 필터링 전 예측 블록의 화소값이 사용되는지 필터링된 예측 블록의 화소값이 사용되는지에 관한 정보가 복호화기에 전송된다. 복호화 장치는 원 블록에 관한 정보를 가지고 있지 않으므로, 율-왜곡 비용 비교에 의한 화소값 결정 과정이 복호화 장치에서는 동일하게 수행될 수 없기 때문이다.In the pixel value determination method of FIG. 9, the encoding apparatus should transmit information indicating whether to perform filtering to the decoding apparatus. That is, information about whether the pixel value of the predictive block before filtering or the filtered prediction block is used is transmitted to the decoder. This is because the decoding apparatus does not have information on the original block, and thus the pixel value determination process by the rate-distortion cost comparison cannot be performed in the decoding apparatus.
도 10은 현재 부호화 대상 블록의 예측 블록 화소값 결정 방법의 다른 실시예를 나타내는 흐름도이다. 10 is a flowchart illustrating another embodiment of a method of determining a prediction block pixel value of a current encoding target block.
도 10의 실시예에서는, 현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보에 기초한 필터링 수행 여부 결정을 이용하여 최종 예측 블록의 화소값이 선택된다. 현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보를 이용한 필터링 수행 여부 결정 방법은 도7 및 도 8에서 상술한 바 있다.In the embodiment of FIG. 10, a pixel value of a final prediction block is selected by using a filtering decision based on characteristic information between a prediction block of a current encoding target block and neighboring blocks. The method of determining whether to perform filtering using the characteristic information between the prediction block and the neighboring block of the current encoding target block has been described above with reference to FIGS. 7 and 8.
도 10을 참조하면, 부호화 장치는 현재 부호화 대상 블록의 예측 블록에 필터링이 수행되는 경우인지를 판단한다(S1010). 필터링 수행 여부에 관한 정보는 현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보에 따라 결정된 정보이다.Referring to FIG. 10, the encoding apparatus determines whether filtering is performed on a prediction block of a current encoding target block (S1010). Information on whether to perform filtering is information determined according to characteristic information between the prediction block of the current encoding target block and the neighboring block.
예측 블록에 대해 필터링이 수행되는 경우, 필터링된 예측 블록의 화소값이 최종 예측 블록에 대한 화소값으로 결정된다(S1020). 예측 블록에 대해 필터링이 수행되지 않는 경우, 필터링되지 않은 예측 블록의 화소값이 최종 예측 블록에 대한 화소값으로 결정된다(S1030).When filtering is performed on the prediction block, the pixel value of the filtered prediction block is determined as the pixel value of the final prediction block (S1020). When filtering is not performed on the prediction block, the pixel value of the unfiltered prediction block is determined as the pixel value of the final prediction block (S1030).
현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보를 이용한 필터링 수행 여부 결정은 복호화 장치에서도 동일하게 수행될 수 있다. 따라서, 부호화 장치는 필터링 수행 여부에 관한 정보를 별도로 부호화하여 전송할 필요가 없다.Determination of whether to perform filtering using the characteristic information between the prediction block and the neighboring block of the current encoding target block may be performed in the same manner in the decoding apparatus. Therefore, the encoding apparatus does not need to separately encode and transmit information about whether to perform filtering.
최종 예측 블록의 화소값을 결정함에 있어, 도 9 및 도 10의 실시예에 따른 방법 중 적어도 하나 이상의 방법이 사용될 수 있다. 도 10의 실시예에서, 현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보에 따라 예측 블록에 대해 필터링이 수행된 경우, 추가적으로 도 9의 실시예에 의해 최종 예측 블록의 화소값이 결정될 수 있다. 이 경우, 도 9의 실시예에서 상술한 바와 같이, 부호화 장치는 복호화 장치에 필터링 수행 여부를 알려주는 정보를 전송하여야 한다.In determining the pixel value of the final prediction block, at least one or more of the methods according to the embodiments of FIGS. 9 and 10 may be used. In the embodiment of FIG. 10, when filtering is performed on the prediction block according to the characteristic information between the prediction block and the neighboring block of the current encoding target block, the pixel value of the final prediction block may be additionally determined by the embodiment of FIG. 9. . In this case, as described above in the embodiment of FIG. 9, the encoding apparatus should transmit information indicating whether to perform filtering to the decoding apparatus.
부호화 장치는 원 블록과 화소값이 결정된 최종 예측 블록을 이용하여 잔여 블록을 생성할 수 있다(S460). 일례로 최종 예측 블록과 원 블록의 차분에 의해 잔여 블록이 생성될 수 있다. 상기 잔여 블록은 부호화되어 복호화 장치로 전송될 수 있다. 본 발명이 도 1의 실시예에 따른 영상 부호화 장치에 적용되는 경우, 감산기(125)는 최종 예측 블록과 원 블록의 차분에 의해 잔여 블록을 생성할 수 있고, 잔여 블록은 변환부(130), 양자화부(140) 및 엔트로피 부호화부(150)를 거쳐 부호화될 수 있다.The encoding apparatus may generate a residual block by using the final prediction block in which the original block and the pixel value are determined (S460). In one example, the residual block may be generated by the difference between the final prediction block and the original block. The residual block may be encoded and transmitted to the decoding apparatus. When the present invention is applied to the image encoding apparatus according to the embodiment of FIG. 1, the subtractor 125 may generate a residual block by the difference between the final prediction block and the original block, and the residual block may be converted by the transformer 130, The encoding may be performed through the quantization unit 140 and the entropy encoding unit 150.

도 11은 영상 부호화 장치에 적용되는 예측 블록 필터링 장치의 일 실시예에 따른 구성을 개략적으로 나타내는 블록도이다. 도 11의 실시예에서, 상기 도 4 내지 도 10에서 상술된 것과 실질적으로 동일한 구성요소 또는 방법에 대한 구체적인 설명은 생략한다.11 is a block diagram schematically illustrating a configuration of a prediction block filtering apparatus applied to an image encoding apparatus. In the embodiment of FIG. 11, detailed descriptions of components or methods substantially the same as those described above with reference to FIGS. 4 to 10 will be omitted.
도 11을 참조하면, 도 11은 예측 블록 필터링 장치(1110) 및 잔여 블록 생성부(1120)를 포함한다. 예측 블록 필터링 장치(1110)는 주변 블록 선택부(1111), 필터 계수 계산부(1113), 필터링 수행 여부 결정부(1115), 필터링 수행부(1117) 및 화소값 결정부(1119)를 포함할 수 있다.Referring to FIG. 11, FIG. 11 includes a prediction block filtering device 1110 and a residual block generator 1120. The prediction block filtering apparatus 1110 may include a neighboring block selector 1111, a filter coefficient calculator 1113, a filter performer determiner 1115, a filter performer 1117, and a pixel value determiner 1119. Can be.
예측 블록 필터링 장치(1110)는 예측 블록 필터링을 수행함에 있어 현재 부호화 대상 블록의 예측 블록, 현재 부호화 대상 블록의 원 블록 또는 주변 블록을 사용할 수 있다. The prediction block filtering apparatus 1110 may use the prediction block of the current encoding target block, the original block of the current encoding target block, or a neighboring block in performing prediction block filtering.
현재 부호화 대상 블록의 예측 블록은 도 1의 실시예에 따라 움직임 보상부(112) 또는 인트라 예측부(120)에서 생성된 예측 블록일 수 있다. 이 경우 감산기(125)에는 상기 생성된 예측 블록이 바로 입력되지 않고 예측 블록 필터링 장치(1110)를 통해 필터링된 최종 예측 블록이 입력될 수 있다. 따라서, 감산기(125)는 필터링된 최종 예측 블록과 원 블록의 차분을 수행할 수 있다.The prediction block of the current encoding target block may be a prediction block generated by the motion compensator 112 or the intra predictor 120 according to the embodiment of FIG. 1. In this case, the generated prediction block may not be directly input to the subtractor 125, but the final prediction block filtered through the prediction block filtering device 1110 may be input. Accordingly, the subtractor 125 may perform the difference between the filtered final prediction block and the original block.
주변 블록은 도 1의 실시예에서의 참조 영상 버퍼(190) 또는 별도의 메모리에 저장된 블록일 수 있다. 또한 영상 부호화 과정에서 생성된 주변 복원 블록 또는 주변 예측 블록이 그대로 주변 블록으로 사용될 수도 있다.The neighboring block may be a block stored in the reference image buffer 190 or a separate memory in the embodiment of FIG. 1. In addition, the neighbor reconstruction block or the neighbor prediction block generated in the image encoding process may be used as the neighbor block.

주변 블록 선택부(1111)는 필터 계수 계산에 사용되는 주변 블록들을 선택할 수 있다. The neighboring block selector 1111 may select neighboring blocks used for the filter coefficient calculation.
일 실시예로 주변 블록 선택부(1111)는 부호화 대상 블록에 인접한 모든 주변 복원 블록들 및 해당 예측 블록들을 필터 계수 계산을 위한 주변 블록으로 선택할 수 있다. 이 때, 주변 블록 선택부(1111)는 인접한 주변 블록들의 모든 화소값 영역을 선택할 수 있고, 또는 인접한 주변 블록 내에서 일부의 화소값 영역만을 선택할 수도 있다.In an embodiment, the neighboring block selector 1111 may select all neighboring reconstructed blocks adjacent to the encoding target block and corresponding prediction blocks as neighboring blocks for calculating filter coefficients. In this case, the neighboring block selector 1111 may select all pixel value regions of adjacent neighboring blocks, or may select only some pixel value regions in the neighboring neighboring blocks.
다른 실시예로 주변 블록 선택부(1111)는 가능한 주변 블록들 중 현재 부호화 대상 블록의 예측 블록과 연관이 있는 주변 예측 블록들과 해당 주변 복원 블록들만을 선택할 수 있다. 예를 들어 주변 블록 선택부(1111)는 부호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도를 판단한 후, 유사도를 이용하여 필터 계수 계산에 사용되는 주변 블록을 선택할 수 있다.In another embodiment, the neighboring block selector 1111 may select only neighboring prediction blocks associated with the prediction block of the current encoding target block and corresponding neighboring reconstruction blocks among possible neighboring blocks. For example, the neighboring block selector 1111 may determine a similarity between the prediction block of the encoding target block and the neighboring prediction block, and then select the neighboring block used for calculating the filter coefficients using the similarity.
필터 계수 계산부(1113)는 선택된 주변 복원 블록들과 주변 예측 블록들을 이용하여 필터 계수를 계산할 수 있다. 일례로, 필터 계수 계산부(1113)는 부호화 대상 블록에 대해 선택된 주변 복원 블록과 해당 주변 예측 블록간의 MSE가 최소화되는 필터 계수를 선택할 수 있다.The filter coefficient calculator 1113 may calculate filter coefficients using the selected neighboring reconstruction blocks and the neighboring prediction blocks. For example, the filter coefficient calculator 1113 may select a filter coefficient for minimizing the MSE between the neighbor reconstruction block selected for the encoding target block and the neighbor prediction block.
필터링 수행 여부 결정부(1115)는 현재 부호화 대상 블록의 예측 블록에 대한 필터링 수행 여부를 결정할 수 있다.The filtering operation determiner 1115 may determine whether to perform filtering on the prediction block of the current encoding target block.
일 실시예로, 필터링 수행 여부 결정부(1115)는 항상 현재 부호화 대상 블록의 예측 블록에 대해 필터링을 수행한다는 결정을 할 수 있다. 이는, 필터링된 예측 블록과 필터링되지 않은 예측 블록의 율-왜곡 비용 비교를 통해, 잔여 블록 계산에 사용되는 예측 블록의 화소값을 결정하기 위함이다.In an embodiment, the filtering operation determiner 1115 may determine to always perform filtering on the prediction block of the current encoding target block. This is to determine the pixel value of the prediction block used for calculating the residual block by comparing the rate-distortion cost of the filtered prediction block and the unfiltered prediction block.
다른 실시예로, 필터링 수행 여부 결정부(1115)는 현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보를 이용하여, 현재 부호화 대상 블록의 예측 블록에 대한 필터링 수행 여부를 결정할 수 있다. 일례로, 필터링 수행 여부 결정부(1115)는 주변 블록에 대한 필터링 성능 판단에 의해 필터링 수행 여부를 결정할 수 있다. 다른 예로, 부호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도 판단에 의해 필터링 수행 여부를 결정할 수도 있다.In another embodiment, the filtering operation determiner 1115 may determine whether to perform filtering on the prediction block of the current encoding target block by using the characteristic information between the prediction block of the current encoding target block and the neighboring block. For example, the filtering operation determiner 1115 may determine whether to perform filtering by determining filtering performance of neighboring blocks. As another example, whether to perform filtering may be determined by determining similarity between the prediction block of the encoding target block and the neighboring prediction block.
필터링 수행부(1117)는 현재 부호화 대상 블록의 예측 블록에 대해 필터링을 수행할 수 있다. 이 때, 필터링 수행부(1117)는 필터 계수 계산부(1113)에 의해 계산된 필터 계수를 이용하여 필터링을 수행할 수 있다.The filtering performing unit 1117 may perform filtering on the prediction block of the current encoding target block. In this case, the filtering performing unit 1117 may perform filtering using the filter coefficient calculated by the filter coefficient calculating unit 1113.
화소값 결정부(1119)는 현재 부호화 대상 블록의 예측 블록의 화소값을 결정할 수 있다.The pixel value determiner 1119 may determine the pixel value of the prediction block of the current encoding target block.
일 실시예로, 화소값 결정부(1119)는 필터링 전 예측 블록과 필터링된 예측 블록간의 율-왜곡 비용 값을 비교함으로써 화소값을 결정할 수 있다. 다른 실시예로, 화소값 결정부(1119)는 현재 부호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보에 기초한 필터링 수행 여부 결정 결과를 이용하여 최종 예측 블록의 화소값을 결정할 수 있다.In an embodiment, the pixel value determiner 1119 may determine the pixel value by comparing a rate-distortion cost value between the pre-filtered prediction block and the filtered prediction block. In another embodiment, the pixel value determiner 1119 may determine the pixel value of the final prediction block by using a result of determining whether to perform filtering based on the characteristic information between the prediction block of the current encoding target block and the neighboring block.
잔여 블록 생성부(1120)는 결정된 최종 예측 블록과 현재 부호화 대상 블록의 원 블록을 이용하여 잔여 블록을 생성할 수 있다. 일례로 잔여 블록 생성부(1120)는 최종 예측 블록과 원 블록의 차분에 의해 잔여 블록을 생성할 수 있다. 잔여 블록 생성부(1120)는 도 1의 실시예에서의 감산기(125)에 대응될 수 있다.The residual block generator 1120 may generate a residual block by using the determined final prediction block and the original block of the current encoding target block. For example, the residual block generator 1120 may generate the residual block by the difference between the final prediction block and the original block. The residual block generator 1120 may correspond to the subtractor 125 in the embodiment of FIG. 1.

본 발명의 실시예에 따른 영상 부호화 장치 및 방법에서는, 고정된 필터 계수가 아닌, 각 부호화 대상 블록의 예측 블록마다 적응적으로 구해진 필터 계수가 사용된다. 또한 각 부호화 대상 블록의 예측 블록에 대해 필터링 수행 여부가 적응적으로 선택될 수 있다. 따라서 예측 영상의 정확도가 높아지고 그 결과 차신호가 최소화되어, 부호화 성능이 향상된다. In the image encoding apparatus and method according to the embodiment of the present invention, filter coefficients, which are adaptively obtained for each prediction block of each encoding target block, are used instead of fixed filter coefficients. In addition, whether to perform filtering on a prediction block of each encoding target block may be adaptively selected. Therefore, the accuracy of the predicted image is increased, and as a result, the difference signal is minimized, thereby improving the encoding performance.
필터 계수 계산은 복호화 장치에서도 동일하게 수행될 수 있으므로 부호화 정보가 최소화될 수 있다. 필터링 수행 여부에 관한 정보는 부호화되어 복호화 장치에 전송될 수 있고, 또는 복호화 장치가 주변 블록과의 관계를 이용하여 필터링 수행 여부를 판단할 수도 있다.Since the filter coefficient calculation may be performed in the decoding apparatus in the same manner, the encoding information may be minimized. Information on whether to perform filtering may be encoded and transmitted to the decoding apparatus, or the decoding apparatus may determine whether to perform filtering using a relationship with neighboring blocks.

도 12는 본 발명의 일 실시예에 따른 예측 블록 필터링을 이용한 영상 복호화 방법을 개략적으로 나타내는 흐름도이다. 영상을 복호화함에 있어 현재 복호화 대상 블록의 예측 블록에 대한 필터링이 이용될 수 있으며, 본 발명의 실시예에서는 예측 블록 필터링을 이용하여 영상 복호화가 수행된다.12 is a flowchart schematically illustrating an image decoding method using prediction block filtering according to an embodiment of the present invention. In decoding an image, filtering on a prediction block of a current decoding target block may be used. In an embodiment of the present invention, image decoding is performed using prediction block filtering.
예측 블록 필터링에 있어 현재 복호화 대상 블록의 예측 블록 또는 주변 블록이 사용될 수 있다. In prediction block filtering, a prediction block or a neighboring block of a current decoding target block may be used.
현재 복호화 대상 블록의 예측 블록은 도 2의 실시예에 따라 인트라 예측부(240) 또는 움직임 보상부(250)에서 생성된 예측 블록일 수 있다. 이 경우, 인트라 예측부(240) 또는 움직임 보상부(250)에서 생성된 예측 블록에 대한 예측 블록 필터링 과정이 수행된 후, 가산기(255)는 필터링된 최종 예측 블록에 복원된 잔여 블록을 더할 수 있다.The prediction block of the current decoding object block may be a prediction block generated by the intra predictor 240 or the motion compensator 250 according to the embodiment of FIG. 2. In this case, after the prediction block filtering process is performed on the prediction block generated by the intra predictor 240 or the motion compensator 250, the adder 255 may add the reconstructed residual block to the filtered final prediction block. have.
주변 블록은 도 2의 실시예에서의 참조 영상 버퍼(270) 또는 별도의 메모리에 저장된 블록일 수 있다. 또한 영상 복호화 과정에서 생성된 주변 복원 블록 또는 주변 예측 블록이 그대로 주변 블록으로 사용될 수도 있다.The neighboring block may be a reference image buffer 270 or a block stored in a separate memory in the embodiment of FIG. 2. In addition, the neighbor reconstruction block or the neighbor prediction block generated in the image decoding process may be used as the neighbor block.
이하, 도 12 내지 도 15의 실시예에 따른 영상 복호화 방법을 설명함에 있어, 상기 도 4 내지 도 10의 실시예에 따른 영상 부호화 방법에서 상술된 내용과 실질적으로 동일한 구성요소, 방법 및 효과에 대한 구체적인 설명은 생략한다.Hereinafter, in describing the image decoding method according to the embodiments of FIGS. 12 to 15, elements, methods, and effects that are substantially the same as those described above in the image encoding method according to the embodiments of FIGS. 4 to 10. Detailed description will be omitted.

도 12를 참조하면, 복호화 장치는 필터 계수 계산에 사용되는 주변 블록들을 선택한다(S1210). 필터 계수의 계산에는 주변 블록이 사용될 수 있고, 이 경우 주변 블록 중 어느 블록이 사용되는지 판단될 수 있다. Referring to FIG. 12, the decoding apparatus selects neighboring blocks used for calculating filter coefficients (S1210). The neighboring block may be used to calculate the filter coefficients, and in this case, which block of the neighboring block is used may be determined.
일례로 복호화 대상 블록에 인접한 모든 주변 복원 블록들 및 그 주변 복원 블록들에 해당하는 모든 주변 예측 블록들이, 필터 계수 계산을 위한 주변 블록으로 선택될 수 있으며 복호화에 사용될 수 있다. 필터 계수 계산에 사용되는 주변 블록들의 화소값들의 집합은 다양하게 선택될 수 있다.For example, all of the neighboring reconstruction blocks adjacent to the decoding target block and all the neighboring prediction blocks corresponding to the neighboring reconstruction blocks may be selected as neighboring blocks for calculating filter coefficients and may be used for decoding. The set of pixel values of the neighboring blocks used for the filter coefficient calculation may be variously selected.
도 13은 필터 계수 계산에 사용되는 주변 블록 선택 방법의 일 실시예를 나타내는 개념도이다. 도 13을 참조하면, 상단(1310)의 경우와 같이, 인접한 주변 블록들의 모든 화소값 영역이 필터 계수 계산에 사용될 수 있다. 그러나, 하단(1320)의 경우와 같이, 인접한 주변 블록 내에서 일부의 화소값 영역만이 필터 계수 계산에 사용될 수도 있다.13 is a conceptual diagram illustrating an embodiment of a neighboring block selection method used for calculating filter coefficients. Referring to FIG. 13, as in the case of the upper end 1310, all pixel value areas of adjacent neighboring blocks may be used for the filter coefficient calculation. However, as in the case of the lower end 1320, only a part of the pixel value region in the adjacent peripheral block may be used for the filter coefficient calculation.
다른 예로 가능한 주변 블록들 중 현재 복호화 대상 블록의 예측 블록과 연관이 있는 주변 예측 블록들과 해당 주변 복원 블록들만이 사용될 수 있다. As another example, only neighboring prediction blocks associated with the prediction block of the current decoding target block and corresponding neighboring reconstruction blocks among possible neighboring blocks may be used.
예를 들어, 복호화 대상 블록의 예측 블록과 주변 예측 블록들간의 유사도 판별에 의해, 필터 계수 계산에 사용될 주변 블록이 선택될 수 있다.For example, by determining similarity between the prediction block of the decoding target block and the neighboring prediction blocks, the neighboring block to be used for the filter coefficient calculation may be selected.
유사도 D는 복호화 대상 블록의 예측 블록과 주변 예측 블록의 화소간의 차이, 예를 들어 SAD, SATD, SSD 등에 의해 판별될 수 있다. 예를 들어 SAD가 사용되는 경우, 유사도 D는 아래의 수학식 8과 같이 표현될 수 있다.The similarity D may be determined by the difference between the pixels of the prediction block of the decoding target block and the pixels of the neighboring prediction block, for example, SAD, SATD, SSD, and the like. For example, when SAD is used, the similarity D may be expressed as Equation 8 below.
<수학식 8><Equation 8>
Figure PCTKR2011007261-appb-I000008
Figure PCTKR2011007261-appb-I000008
여기서, Pci는 복호화 대상 블록의 예측 블록의 화소 집합, Pni는 주변 예측 블록의 화소 집합을 의미한다.Here, Pc i denotes a pixel set of the prediction block of the decoding target block, and Pn i denotes a pixel set of the neighboring prediction block.
유사도 D는 복호화 대상 블록의 예측 블록과 주변 예측 블록의 화소간의 상관 관계에 의해서도 판단될 수 있다. 이 때, 유사도 D는 아래의 수학식 9와 같이 표현될 수 있다.The similarity D may also be determined by the correlation between the pixels of the prediction block of the decoding object block and the neighboring prediction block. In this case, the similarity D may be expressed as in Equation 9 below.
<수학식 9><Equation 9>
Figure PCTKR2011007261-appb-I000009
Figure PCTKR2011007261-appb-I000009
여기서 Pci는 복호화 대상 블록의 예측 블록의 화소 집합, Pni는 주변 예측 블록의 화소 집합, E[Pc]는 복호화 대상 블록의 예측 블록의 화소 집합의 평균, E[Pn]는 주변 예측 블록의 화소 집합의 평균을 의미한다. 그리고 SPc는 복호화 대상 블록의 예측 블록의 화소 집합의 표준편차, SPn은 주변 예측 블록의 화소 집합의 표준편차를 의미한다.Where Pc i is the pixel set of the prediction block of the decoding target block, Pn i is the pixel set of the neighboring prediction block, E [Pc] is the average of the pixel sets of the prediction block of the decoding target block, and E [Pn] is the Mean of the pixel set. S Pc denotes the standard deviation of the pixel set of the prediction block of the decoding target block, and S Pn denotes the standard deviation of the pixel set of the neighboring prediction block.
유사도가 임계값 이상이면, 그 주변 블록은 필터 계수 계산에 사용될 수 있다. 여기서 여기서 임계값은 실험을 통해 결정될 수 있다.If the similarity is above the threshold, the neighboring block can be used for the filter coefficient calculation. Here, the threshold value may be determined through an experiment.

다시 도 12를 참조하면, 복호화 장치는 선택된 주변 복원 블록들과 주변 예측 블록들을 이용하여 필터 계수를 계산한다(S1220). Referring back to FIG. 12, the decoding apparatus calculates filter coefficients using the selected neighbor reconstruction blocks and neighbor prediction blocks (S1220).
일례로, 복호화 대상 블록에 대해 선택된 주변 복원 블록과 해당 주변 예측 블록간의 MSE(Mean Square Error)가 최소화되는 필터 계수가 선택될 수 있다. 이 때, 필터 계수는 아래의 수학식 10에 의해 구해질 수 있다.For example, a filter coefficient for minimizing a mean square error (MSE) between a neighbor reconstruction block selected for the decoding target block and the corresponding neighbor prediction block may be selected. In this case, the filter coefficient may be obtained by Equation 10 below.
<수학식 10><Equation 10>
Figure PCTKR2011007261-appb-I000010
Figure PCTKR2011007261-appb-I000010
여기서 rk는 선택된 주변 블록의 주변 복원 블록 화소값을 나타내고, pi는 선택된 주변 블록의 주변 예측 블록 화소값을 나타낸다. 또한 ci는 필터 계수를 나타내며, s는 필터 계수의 집합을 나타낸다.Here, r k represents a neighbor reconstructed block pixel value of the selected neighboring block and p i represents a neighbor predicted block pixel value of the selected neighboring block. C i represents a filter coefficient and s represents a set of filter coefficients.
필터 계수는 1D(1차원) 분리형 필터를 사용하여 구해질 수 있으며, 2D(2차원) 비분리형 필터를 사용하여 구해질 수도 있다. Filter coefficients may be obtained using a 1D (one-dimensional) split filter, or may be obtained using a 2D (two-dimensional) non-separable filter.

다시 도 12를 참조하면, 복호화 장치는 현재 복호화 대상 블록의 예측 블록에 대한 필터링 수행 여부를 결정한다(S1230). 필터링이 수행되는 것으로 결정되면 예측 블록에 대한 필터링이 수행되고, 필터링이 수행되지 않는 것으로 결정되면 예측 블록에 대한 필터링이 수행되지 않고 다음 단계가 진행될 수 있다.Referring back to FIG. 12, the decoding apparatus determines whether to perform filtering on the prediction block of the current decoding target block (S1230). If it is determined that filtering is performed, filtering is performed on the prediction block. If it is determined that filtering is not performed, filtering on the prediction block is not performed and the next step may proceed.

필터링 수행 여부 결정의 일 실시예로, 필터링 수행 여부에 관한 정보가 부호화 장치에서 복호화 장치로 전송된 경우, 복호화 장치는 복호화된 필터링 수행 여부 정보를 이용하여 필터링 수행 여부를 결정할 수 있다. 이는 아래의 도 14의 실시예를 통해 상세히 설명된다.In one embodiment of determining whether to perform filtering, when information about whether to perform filtering is transmitted from the encoding apparatus to the decoding apparatus, the decoding apparatus may determine whether to perform filtering using the decoded filtering execution information. This is described in detail through the embodiment of FIG. 14 below.
도 14는 필터링 수행 여부 정보를 이용한 필터링 수행 여부 결정 방법의 일 실시예를 나타내는 흐름도이다.14 is a flowchart illustrating an embodiment of a method of determining whether to perform filtering using filtering information.
도 14를 참조하면, 복호화 장치는 필터링 수행 여부에 관한 정보를 복호화한다(S1410). 상술한 도 9의 실시예에 따르면 영상 부호화 장치에서는 필터링 전 예측 블록과 필터링된 예측 블록간의 율-왜곡 비용 값을 비교함으로써 예측 블록의 화소값이 결정될 수 있으며, 이 때 부호화 장치는 복호화 장치에 필터링 수행 여부를 알려주는 정보를 전송하여야 한다. 필터링 수행 여부 정보는 부호화 장치에서 부호화된 후 압축된 비트 스트림을 형성하여 부호화 장치에서 복호화 장치로 전송될 수 있다. 복호화 장치는 부호화된 필터링 수행 여부 정보를 수신하므로, 부호화된 정보를 복호화할 수 있다.Referring to FIG. 14, the decoding apparatus decodes information about whether to perform filtering (S1410). According to the above-described embodiment of FIG. 9, in the image encoding apparatus, the pixel value of the prediction block may be determined by comparing the rate-distortion cost value between the pre-filtered prediction block and the filtered prediction block, wherein the encoding apparatus filters the decoding apparatus. Information indicating whether or not to perform should be transmitted. The information on whether filtering is performed may be encoded by the encoding apparatus, and then, may form a compressed bit stream, and may be transmitted from the encoding apparatus to the decoding apparatus. Since the decoding apparatus receives the encoded filtering information, the decoding apparatus may decode the encoded information.
복호화 장치는 복호화된 필터링 수행 여부에 관한 정보를 이용하여, 필터링이 수행되는 경우인지 여부를 판단한다(S1420). 부호화 장치에서 필터링이 수행된 경우, 즉 필터링된 예측 블록의 화소값이 부호화 장치의 최종 예측 블록 화소값으로 사용된 경우, 복호화 장치는 복호화 대상 블록의 예측 블록에 대해 필터링을 수행한다는 결정을 한다(S1430). 부호화 장치에서 필터링이 수행되지 않은 경우, 즉 필터링 전 예측 블록의 화소값이 부호화 장치의 최종 예측 블록 화소값으로 사용된 경우, 복호화 장치는 필터링을 수행하지 않는다는 결정을 한다(S1440).The decoding apparatus determines whether filtering is performed by using the information on whether or not the decoding is performed (S1420). When filtering is performed in the encoding apparatus, that is, when the pixel value of the filtered prediction block is used as the final prediction block pixel value of the encoding apparatus, the decoding apparatus determines that filtering is performed on the prediction block of the decoding target block ( S1430). When filtering is not performed in the encoding apparatus, that is, when the pixel value of the pre-prediction block is used as the final prediction block pixel value of the encoding apparatus, the decoding apparatus determines that the filtering is not performed (S1440).

필터링 수행 여부 결정의 다른 실시예로, 복호화 장치는 현재 복호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보를 이용하여, 현재 복호화 대상 블록의 예측 블록에 대한 필터링 수행 여부를 결정할 수 있다. In another embodiment of determining whether to perform filtering, the decoding apparatus may determine whether to perform filtering on the prediction block of the current decoding target block by using the characteristic information between the prediction block of the current decoding target block and the neighboring block.
예를 들어, 복호화 장치는 주변 블록에 대한 필터링 성능 판단에 의해 필터링 수행 여부를 결정할 수 있다. For example, the decoding apparatus may determine whether to perform filtering by determining filtering performance of neighboring blocks.
이 때, 복호화 장치는 필터 계수를 이용하여 주변 예측 블록 각각을 필터링한다. 예를 들어 주변 블록 A, B, C, D가 선택된 경우, 필터 계수 계산 단계에서 얻은 필터 계수를 이용하여 주변 블록 A, B, C, D의 예측 블록 각각이 필터링될 수 있다. 그리고 복호화 장치는 각 주변 블록에 대한 필터링 성능을 판단한다. 일례로 각 주변 블록에 대해, 필터링이 수행되지 않은 주변 예측 블록과 주변 복원 블록의 오차 및 필터링이 수행된 주변 예측 블록과 주변 복원 블록의 오차가 비교될 수 있다. 각 오차는 SAD, SATD, SSD를 이용하여 계산될 수 있다. At this time, the decoding apparatus filters each of the neighboring prediction blocks by using the filter coefficients. For example, when the neighboring blocks A, B, C, and D are selected, each of the prediction blocks of the neighboring blocks A, B, C, and D may be filtered using the filter coefficients obtained in the filter coefficient calculation step. The decoding device then determines the filtering performance of each neighboring block. For example, for each neighboring block, an error of the neighboring prediction block and the neighboring reconstruction block that are not filtered and an error of the neighboring prediction block and the neighboring reconstructed block where filtering is performed may be compared. Each error may be calculated using SAD, SATD, and SSD.
필터링이 수행되지 않은 주변 예측 블록과 주변 복원 블록의 오차보다, 필터링이 수행된 주변 예측 블록과 주변 복원 블록의 오차가 더 작으면, 필터링 효과가 있는 것으로 판단될 수 있다. 각 주변 예측 블록에 필터링이 수행된 경우와 수행되지 않은 경우의 오차를 비교하여 필터링 효과가 나타나는 주변 블록이 N개 이상이면 필터링이 수행되는 것으로 결정되고, 그렇지 않으면 필터링이 수행되지 않는 것으로 결정된다. 여기서 N 값으로 실험을 통해 결정된 값이 사용될 수 있다. If the error between the neighboring prediction block and the neighboring reconstruction block that has been filtered is smaller than the error between the neighboring prediction block and the neighboring reconstruction block that is not filtered, it may be determined that there is a filtering effect. When the filtering is performed on each of the neighboring prediction blocks and the error is not performed, the filtering is determined to be performed when there are N or more neighboring blocks that exhibit the filtering effect. Otherwise, the filtering is not performed. Here, the value determined through the experiment may be used as the N value.
다른 예로써, 복호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도 판단에 의해 필터링 수행 여부가 결정될 수 있다.As another example, whether to perform filtering may be determined by determining similarity between the prediction block of the decoding object block and the neighboring prediction block.
복호화 장치는 복호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도를 구할 수 있으며, 유사도는 복호화 대상 블록의 예측 블록과 주변 블록의 화소 간 SAD, SATD, SSD 등에 의해 판단될 수 있다. 예를 들어 SAD를 이용한 유사도 판단은 다음 수학식 11에 의해 표현될 수 있다.The decoding apparatus may obtain the similarity between the prediction block of the decoding object block and the neighboring prediction block, and the similarity may be determined by SAD, SATD, SSD, etc. between the prediction block of the decoding object block and the pixels of the neighboring block. For example, the similarity determination using the SAD may be expressed by Equation 11 below.
<수학식 11><Equation 11>
Figure PCTKR2011007261-appb-I000011
Figure PCTKR2011007261-appb-I000011
여기서, Pci는 복호화 대상 블록의 예측 블록의 화소 집합, Pni는 주변 예측 블록의 화소 집합을 의미한다.Here, Pc i denotes a pixel set of the prediction block of the decoding target block, and Pn i denotes a pixel set of the neighboring prediction block.
유사도는 복호화 대상 블록의 예측 블록과 주변 예측 블록의 화소간의 상관 관계에 의해서도 판단될 수 있다.The similarity may also be determined by the correlation between the prediction block of the decoding object block and the pixels of the neighboring prediction block.
유사도가 임계값 이상인 주변 블록이 K개 이상인 경우, 복호화 대상 블록의 예측 블록에 대해 필터링이 수행되는 것으로 결정되고, 그렇지 않은 경우 필터링이 수행되지 않는 것으로 결정된다. 여기서, 임계값 및 K 값으로서 실험을 통해 결정된 값이 사용될 수 있다.If there are K or more neighboring blocks whose similarity is greater than or equal to the threshold value, it is determined that filtering is performed on the prediction block of the decoding object block, otherwise it is determined that filtering is not performed. Here, the values determined through experiments may be used as the threshold value and the K value.

다시 도 12를 참조하면, 복호화 장치는 현재 복호화 대상 블록의 예측 블록에 대해 필터링을 수행한다(S1240). 다만, 예측 블록에 대한 필터링은, 필터링 수행 여부 결정 단계(S1230)에서 필터링이 수행되는 것으로 결정된 경우에 수행된다.Referring back to FIG. 12, the decoding apparatus performs filtering on the prediction block of the current decoding target block (S1240). However, the filtering of the prediction block is performed when it is determined that filtering is performed in the determining whether to perform the filtering (S1230).
현재 복호화 대상 블록의 예측 블록은 필터 계수 계산 단계에서 계산된 필터 계수를 이용하여 필터링될 수 있다. 예측 블록에 대한 필터링은 아래의 수학식 12에 의해 나타내어질 수 있다.The prediction block of the current decoding object block may be filtered using the filter coefficient calculated in the filter coefficient calculation step. Filtering for the prediction block may be represented by Equation 12 below.
<수학식 12><Equation 12>
Figure PCTKR2011007261-appb-I000012
Figure PCTKR2011007261-appb-I000012
여기서, pi’은 복호화 대상 블록의 필터링된 예측 블록의 화소값, pi는 복호화 대상 블록의 필터링 전 예측 블록의 화소값, ci는 필터 계수, s는 필터 계수의 집합을 의미한다.Here, p i 'is the pixel value of the filtered prediction block of the decoding object block, p i is the pixel value of the pre-filtering block of the decoding object block, c i is a filter coefficient, s is a set of filter coefficients.

그리고 복호화 장치는 현재 복호화 대상 블록의 예측 블록의 화소값을 결정한다(S1250). 상기 화소값은 복호화 대상 블록의 복원 블록 계산에 사용될 수 있다. In operation S1250, the decoding apparatus determines the pixel value of the prediction block of the current decoding target block. The pixel value may be used to calculate a reconstruction block of a decoding target block.
도 15는 현재 복호화 대상 블록의 예측 블록 화소값 결정 방법의 일 실시예를 나타내는 흐름도이다. 15 is a flowchart illustrating an embodiment of a method of determining a prediction block pixel value of a current decoding target block.
도 15를 참조하면, 복호화 장치는 필터링 수행 여부 결정에 기초하여, 현재 복호화 대상 블록의 예측 블록에 대해 필터링이 수행되는 경우인지를 판단한다(S1510). 필터링 수행 여부는 상술한 필터링 수행 여부 결정 단계(S1230)에서 결정될 수 있다. Referring to FIG. 15, the decoding apparatus determines whether filtering is performed on a prediction block of a current decoding target block based on a determination on whether to perform filtering (S1510). Whether or not to perform the filtering may be determined in the above-described determining whether to perform the filtering (S1230).
예측 블록에 대해 필터링이 수행되는 경우, 복호화 장치는 필터링된 예측 블록의 화소값을 최종 예측 블록에 대한 화소값으로 결정한다(S1520). 예측 블록에 대해 필터링이 수행되지 않는 경우, 복호화 장치는 필터링되지 않은 예측 블록의 화소값을 최종 예측 블록에 대한 화소값으로 결정한다(S1530).When filtering is performed on the prediction block, the decoding apparatus determines the pixel value of the filtered prediction block as the pixel value of the final prediction block (S1520). If filtering is not performed on the prediction block, the decoding apparatus determines a pixel value of the unfiltered prediction block as the pixel value of the final prediction block (S1530).

복호화 장치는 복원된 잔여 블록과 화소값이 결정된 최종 예측 블록을 이용하여 복원 블록을 생성한다(S1260). 잔여 블록은, 도 4에서 상술된 바와 같이, 부호화 장치에서 부호화된 후 복호화 장치로 전송되고, 복호화 장치는 이를 복호화하여 복원 블록 생성에 이용할 수 있다. The decoding apparatus generates a reconstructed block by using the reconstructed residual block and the final predicted block in which the pixel value is determined (S1260). As described above with reference to FIG. 4, the residual block is encoded by the encoding apparatus and then transmitted to the decoding apparatus, and the decoding apparatus may decode it and use it to generate a reconstructed block.
일례로 복호화 장치는 최종 예측 블록과 복원된 잔여 블록을 가산하여 복원 블록을 생성할 수 있다. 본 발명이 도 2의 실시예에 따른 영상 복호화 장치에 적용되는 경우, 상기 최종 예측 블록은, 가산기(255)를 통해, 복원된 잔여 블록에 더해질 수 있다. For example, the decoding apparatus may generate a reconstructed block by adding the final predicted block and the reconstructed residual block. When the present invention is applied to the image decoding apparatus according to the embodiment of FIG. 2, the final prediction block may be added to the reconstructed residual block through the adder 255.

도 16은 영상 복호화 장치에 적용되는 예측 블록 필터링 장치의 일 실시예에 따른 구성을 개략적으로 나타내는 블록도이다. 도 16의 실시예에서, 상기 도 12 내지 도 15에서 상술된 것과 실질적으로 동일한 구성요소 또는 방법에 대한 구체적인 설명은 생략한다.16 is a block diagram schematically illustrating a configuration of a prediction block filtering apparatus applied to an image decoding apparatus. In the embodiment of FIG. 16, detailed descriptions of components or methods substantially the same as those described above with reference to FIGS. 12 to 15 will be omitted.
도 16을 참조하면, 도 16은 예측 블록 필터링 장치(1610) 및 복원 블록 생성부(1620)를 포함한다. 예측 블록 필터링 장치(1610)는 주변 블록 선택부(1611), 필터 계수 계산부(1613), 필터링 수행 여부 결정부(1615), 필터링 수행부(1617) 및 화소값 결정부(1619)를 포함할 수 있다.Referring to FIG. 16, FIG. 16 includes a prediction block filtering device 1610 and a reconstruction block generator 1620. The prediction block filtering device 1610 may include a neighboring block selector 1611, a filter coefficient calculator 1613, a filter performing determiner 1615, a filtering performer 1617, and a pixel value determiner 1619. Can be.

예측 블록 필터링 장치(1610)는 예측 블록 필터링을 수행함에 있어 현재 복호화 대상 블록의 예측 블록 또는 주변 블록을 사용할 수 있다. The prediction block filtering device 1610 may use the prediction block or the neighboring block of the current decoding target block in performing prediction block filtering.
현재 복호화 대상 블록의 예측 블록은 도 2의 실시예에 따라 인트라 예측부(240) 또는 움직임 보상부(250)에서 생성된 예측 블록일 수 있다. 이 경우 가산기(255)에는 상기 생성된 예측 블록이 바로 입력되지 않고 예측 블록 필터링 장치(1610)를 통해 필터링된 최종 예측 블록이 입력될 수 있다. 따라서, 가산기(255)는 복원된 잔여 블록에 필터링된 최종 예측 블록을 더할 수 있다.The prediction block of the current decoding object block may be a prediction block generated by the intra predictor 240 or the motion compensator 250 according to the embodiment of FIG. 2. In this case, the generated prediction block may not be directly input to the adder 255, but the final prediction block filtered through the prediction block filtering device 1610 may be input. Thus, the adder 255 may add the filtered final prediction block to the reconstructed residual block.
주변 블록은 도 2의 실시예에서의 참조 영상 버퍼(270) 또는 별도의 메모리에 저장된 블록일 수 있다. 또한 영상 복호화 과정에서 생성된 주변 복원 블록 또는 주변 예측 블록이 그대로 주변 블록으로 사용될 수도 있다.The neighboring block may be a reference image buffer 270 or a block stored in a separate memory in the embodiment of FIG. 2. In addition, the neighbor reconstruction block or the neighbor prediction block generated in the image decoding process may be used as the neighbor block.

주변 블록 선택부(1611)는 필터 계수 계산에 사용되는 주변 블록들을 선택할 수 있다. The neighboring block selector 1611 may select neighboring blocks used for the filter coefficient calculation.
일 실시예로 주변 블록 선택부(1611)는 복호화 대상 블록에 인접한 모든 주변 복원 블록들 및 해당 예측 블록들을 필터 계수 계산을 위한 주변 블록으로 선택할 수 있다. 이 때, 주변 블록 선택부(1611)는 인접한 주변 블록들의 모든 화소값 영역을 선택할 수 있고, 또는 인접한 주변 블록 내에서 일부의 화소값 영역만을 선택할 수도 있다.In an embodiment, the neighbor block selector 1611 may select all neighbor reconstruction blocks adjacent to the decoding target block and corresponding prediction blocks as neighbor blocks for filter coefficient calculation. In this case, the neighboring block selector 1611 may select all pixel value regions of adjacent neighboring blocks, or may select only some pixel value regions in the neighboring neighboring blocks.
다른 실시예로 주변 블록 선택부(1611)는 가능한 주변 블록들 중 현재 복호화 대상 블록의 예측 블록과 연관이 있는 주변 예측 블록들과 해당 주변 복원 블록들만을 선택할 수 있다. 예를 들어 주변 블록 선택부(1611)는 복호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도를 판단한 후, 유사도를 이용하여 필터 계수 계산에 사용되는 주변 블록을 선택할 수 있다.In another embodiment, the neighboring block selector 1611 may select only neighboring prediction blocks associated with the prediction block of the current decoding target block and corresponding neighboring reconstruction blocks among possible neighboring blocks. For example, the neighboring block selector 1611 may determine the similarity between the prediction block and the neighboring prediction block of the decoding target block, and then select the neighboring block used for calculating the filter coefficients using the similarity.
필터 계수 계산부(1613)는 선택된 주변 복원 블록들과 주변 예측 블록들을 이용하여 필터 계수를 계산할 수 있다. 일례로, 필터 계수 계산부(1613)는 복호화 대상 블록에 대해 선택된 주변 복원 블록과 해당 주변 예측 블록간의 MSE가 최소화되는 필터 계수를 선택할 수 있다.The filter coefficient calculator 1613 may calculate filter coefficients using the selected neighboring reconstruction blocks and the neighboring prediction blocks. For example, the filter coefficient calculator 1613 may select a filter coefficient for minimizing the MSE between the neighbor reconstruction block selected for the decoding target block and the neighbor prediction block.
필터링 수행 여부 결정부(1615)는 현재 복호화 대상 블록의 예측 블록에 대한 필터링 수행 여부를 결정할 수 있다.The filtering operation determiner 1615 may determine whether to perform filtering on the prediction block of the current decoding target block.
일 실시예로, 필터링 수행 여부에 관한 정보가 부호화 장치에서 복호화 장치로 전송된 경우, 필터링 수행 여부 결정부(1615)는 복호화된 필터링 수행 여부 정보를 이용하여 필터링 수행 여부를 결정할 수 있다.According to an embodiment, when information on whether to perform filtering is transmitted from the encoding apparatus to the decoding apparatus, the filtering execution determiner 1615 may determine whether to perform filtering using the decoded filtering execution information.
다른 실시예로, 필터링 수행 여부 결정부(1615)는 현재 복호화 대상 블록의 예측 블록과 주변 블록간의 특성 정보를 이용하여, 현재 복호화 대상 블록의 예측 블록에 대한 필터링 수행 여부를 결정할 수 있다. 일례로, 필터링 수행 여부 결정부(1615)는 주변 블록에 대한 필터링 성능 판단에 의해 필터링 수행 여부를 결정할 수 있다. 다른 예로, 복호화 대상 블록의 예측 블록과 주변 예측 블록의 유사도 판단에 의해 필터링 수행 여부를 결정할 수도 있다.In another embodiment, the filtering operation determiner 1615 may determine whether to perform filtering on the prediction block of the current decoding target block by using the characteristic information between the prediction block of the current decoding target block and the neighboring block. For example, the filtering operation determiner 1615 may determine whether to perform filtering based on the filtering performance of the neighboring blocks. As another example, whether to perform filtering may be determined by determining similarity between the prediction block of the decoding object block and the neighboring prediction block.
필터링 수행부(1617)는 현재 복호화 대상 블록의 예측 블록에 대해 필터링을 수행할 수 있다. 이 때, 필터링 수행부(1617)는 필터 계수 계산부(1613)에 의해 계산된 필터 계수를 이용하여 필터링을 수행할 수 있다.The filtering performing unit 1617 may perform filtering on the prediction block of the current decoding target block. In this case, the filtering performing unit 1617 may perform filtering using the filter coefficient calculated by the filter coefficient calculating unit 1613.
화소값 결정부(1619)는 현재 복호화 대상 블록의 예측 블록의 화소값을 결정할 수 있다. 일례로, 화소값 결정부(1619)는 필터링 수행 여부 결정부(1615)에서 수행한 필터링 수행 여부 결정 결과에 기초하여 최종 예측 블록의 화소값을 결정할 수 있다. The pixel value determiner 1619 may determine the pixel value of the prediction block of the current decoding target block. For example, the pixel value determiner 1619 may determine the pixel value of the final prediction block based on a result of the filtering performed by the filter determiner 1615.
복원 블록 생성부(1620)는 결정된 최종 예측 블록과 복원된 잔여 블록을 이용하여 복원 블록을 생성할 수 있다. 일례로 복원 블록 생성부(1620)는 최종 예측 블록과 복원된 잔여 블록을 가산하여 복원 블록을 생성할 수 있다. 복원 블록 생성부(1620)는 도 2의 실시예에서 가산기(255)에 대응될 수 있으며, 다른 예로, 복원 블록 생성부(1620)는 도 2의 실시예에서의 가산기(255) 및 필터부(260)를 모두 포함하거나, 그 밖의 부가적인 구성을 추가로 포함할 수도 있다. The reconstruction block generator 1620 may generate a reconstruction block by using the determined final prediction block and the reconstructed residual block. For example, the reconstruction block generator 1620 may generate a reconstruction block by adding the last prediction block and the reconstructed residual block. The reconstructed block generator 1620 may correspond to the adder 255 in the embodiment of FIG. 2. As another example, the reconstructed block generator 1620 may include the adder 255 and the filter unit (in the embodiment of FIG. 2). 260 may be included in all, or may include additional additional configuration.

본 발명의 실시예에 따른 영상 복호화 장치 및 방법에서는, 고정된 필터 계수가 아닌, 각 복호화 대상 블록의 예측 블록마다 적응적으로 구해진 필터 계수가 사용된다. 또한 각 복호화 대상 블록의 예측 블록에 대해 필터링 수행 여부가 적응적으로 선택될 수 있다. 따라서 예측 영상의 정확도가 높아지고 그 결과 차신호가 최소화되어, 부호화 성능이 향상된다. In the image decoding apparatus and method according to the embodiment of the present invention, filter coefficients that are adaptively obtained for each prediction block of each decoding target block, rather than fixed filter coefficients, are used. In addition, whether to perform filtering on a prediction block of each decoding target block may be adaptively selected. Therefore, the accuracy of the predicted image is increased, and as a result, the difference signal is minimized, thereby improving the encoding performance.
또한 필터링된 예측 블록을 이용하여 부호화한 결과가 필터링되지 않은 예측 블록을 이용하여 부호화한 결과에 비해 더 좋은 부호화 성능을 제공한다고 판단되는 경우, 부호화기와 복호화기에서 해당 예측 블록에 대한 필터링이 동일하게 수행될 수 있다. 따라서 추가되는 부호화 정보가 최소화될 수 있다.In addition, when it is determined that the result of encoding the filtered prediction block provides better encoding performance than the result of encoding the unfiltered prediction block, the filtering for the corresponding prediction block is the same in the encoder and the decoder. Can be performed. Therefore, additional encoding information can be minimized.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the above-described embodiment, the methods are described based on a flowchart as a series of steps or blocks, but the present invention is not limited to the order of steps, and any steps may occur in a different order or simultaneously from other steps as described above. have. Also, one of ordinary skill in the art appreciates that the steps shown in the flowcharts are not exclusive, that other steps may be included, or that one or more steps in the flowcharts may be deleted without affecting the scope of the present invention. I can understand.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.The above-described embodiments include examples of various aspects. While not all possible combinations may be described to represent the various aspects, one of ordinary skill in the art will recognize that other combinations are possible. Accordingly, the invention is intended to embrace all other replacements, modifications and variations that fall within the scope of the following claims.

Claims (20)

  1. 복호화 대상 블록에 대한 제1 예측 블록을 생성하는 단계;
    상기 제1 예측 블록의 주변 블록을 기초로 필터 계수를 산출하는 단계; 및
    부호화 장치 또는 복호화 장치에서 생성되거나, 상기 부호화 장치 또는 상기 복호화 장치에 저장된 필터링 수행 여부 정보가 필터링을 수행하는 것을 지시하는 경우, 상기 필터 계수를 이용하여 상기 제1 예측 블록에 대한 필터링을 수행하여 제2 예측 블록을 생성하는 단계를 포함하고,
    상기 필터링 수행 여부 정보는 상기 제1 예측 블록에 대해 필터링이 수행되는지 여부를 지시하는 정보인 영상 복호화 방법.
    Generating a first prediction block for a decoding target block;
    Calculating filter coefficients based on neighboring blocks of the first prediction block; And
    If filtering or not information generated by the encoding apparatus or the decoding apparatus or stored in the encoding apparatus or the decoding apparatus indicates to perform filtering, the filtering is performed on the first prediction block by using the filter coefficients. Generating two prediction blocks,
    The information on whether the filtering is performed is information indicating whether filtering is performed on the first prediction block.
  2. 청구항 1에 있어서, 상기 주변 블록은
    각각 상기 제1 예측 블록의 한 면에 인접한 좌측 블록, 상단 블록 및 각각 상기 제1 예측 블록에 인접한 좌측 최상단 블록, 우측 최상단 블록, 좌측 최하단 블록 중 적어도 하나인 것을 특징으로 하는 영상 복호화 방법.
    The method of claim 1, wherein the peripheral block is
    And at least one of a left block, a top block, and a left top block, a right top block, and a left bottom block each adjacent to the first prediction block, respectively.
  3. 청구항 1에 있어서, 상기 필터 계수를 산출하는 단계에서는,
    상기 주변 블록 내의 일부 영역만을 이용하여 상기 필터 계수를 산출하는 영상 복호화 방법.
    The method of claim 1, wherein in calculating the filter coefficients,
    And calculating the filter coefficients using only a part of the region within the neighboring block.
  4. 청구항 1에 있어서, 상기 주변 블록은
    상기 주변 블록에 대한 주변 예측 블록과 상기 제1 예측 블록 간의 유사도가 소정의 임계값 이상인 것을 특징으로 하는 영상 복호화 방법.
    The method of claim 1, wherein the peripheral block is
    And a similarity degree between the neighboring prediction block with respect to the neighboring block and the first prediction block is greater than or equal to a predetermined threshold.
  5. 청구항 1에 있어서, 상기 필터링 수행 여부 정보는
    상기 부호화 장치에서 부호화 대상 블록의 예측 블록에 대한 필터링 수행 전후의 율-왜곡 비용 값의 비교에 의해 생성되고,
    상기 부호화 대상 블록의 예측 블록에 대한 필터링 수행 전 율-왜곡 비용 값이 상기 부호화 대상 블록의 예측 블록에 대한 필터링 수행 후 율-왜곡 비용 값보다 작은 경우 필터링을 수행하지 않는 것을 지시하고,
    상기 부호화 대상 블록의 예측 블록에 대한 필터링 수행 전 율-왜곡 비용 값이 상기 부호화 대상 블록의 예측 블록에 대한 필터링 수행 후 율-왜곡 비용 값보다 큰 경우 필터링을 수행하는 것을 지시하며,
    상기 부호화 장치에서 부호화되어 상기 복호화 장치로 전송되는 정보인 영상 복호화 방법.
    The method according to claim 1, wherein whether to perform the filtering
    The encoding apparatus is generated by comparing a rate-distortion cost value before and after performing filtering on a prediction block of a block to be encoded.
    Instructs not to perform filtering when the rate-distortion cost value before the filtering of the prediction block of the encoding target block is smaller than the rate-distortion cost value after performing the filtering on the prediction block of the encoding target block,
    Filtering is performed when the rate-distortion cost value before performing filtering on the prediction block of the encoding target block is greater than the rate-distortion cost value after performing filtering on the prediction block of the encoding target block,
    And an image decoding method encoded by the encoding apparatus and transmitted to the decoding apparatus.
  6. 청구항 1에 있어서, 상기 필터링 수행 여부 정보는
    상기 복호화 장치에서 상기 주변 블록의 정보에 기초하여 생성되는 정보인 영상 복호화 방법.
    The method according to claim 1, wherein whether to perform the filtering
    And an image decoding method generated by the decoding apparatus based on the information of the neighboring block.
  7. 청구항 6에 있어서, 상기 필터링 수행 여부 정보는,
    상기 필터 계수를 이용하여 상기 주변 블록에 대해 수행한 필터링 성능을 기초로 생성되는 영상 복호화 방법.
    The method according to claim 6, wherein whether to perform the filtering information,
    The image decoding method is generated based on the filtering performance performed on the neighboring block by using the filter coefficients.
  8. 청구항 6에 있어서, 상기 필터링 수행 여부 정보는,
    상기 예측 블록과 상기 주변 예측 블록 간의 유사도를 기초로 생성되는 영상 복호화 방법.
    The method according to claim 6, wherein whether to perform the filtering information,
    The image decoding method is generated based on the similarity between the prediction block and the neighboring prediction block.
  9. 청구항 1에 있어서,
    상기 제1 예측 블록에 대해 필터링이 수행되는 경우, 상기 제2 예측 블록 및 복원된 잔여 블록(residual block)을 이용하여 복원 블록을 생성하고,
    상기 제1 예측 블록에 대해 필터링이 수행되지 않는 경우, 상기 제1 예측 블록 및 상기 복원된 잔여 블록을 이용하여 복원 블록을 생성하는 단계를 추가로 포함하는 영상 복호화 방법.
    The method according to claim 1,
    When filtering is performed on the first prediction block, a reconstruction block is generated using the second prediction block and the reconstructed residual block.
    And if filtering is not performed on the first prediction block, generating a reconstruction block by using the first prediction block and the reconstructed residual block.
  10. 제1 예측 블록의 주변 블록을 기초로 필터 계수를 산출하는 필터 계수 계산부;
    부호화 장치 또는 복호화 장치에서 생성되거나, 상기 부호화 장치 또는 상기 복호화 장치에 저장된 필터링 수행 여부 정보가 필터링을 수행하는 것을 지시하는 경우, 상기 필터 계수를 이용하여 상기 제1 예측 블록에 대한 필터링을 수행하여 제2 예측 블록을 생성하는 필터링 수행부; 및
    상기 제1 예측 블록에 대해 필터링이 수행되는 경우 상기 제2 예측 블록 및 복원된 잔여 블록(residual block)을 이용하여 복원 블록을 생성하고, 상기 제1 예측 블록에 대해 필터링이 수행되지 않는 경우, 상기 제1 예측 블록 및 상기 복원된 잔여 블록을 이용하여 복원 블록을 생성하는 복원 블록 생성부를 포함하고,
    상기 필터링 수행 여부 정보는 상기 제1 예측 블록에 대해 필터링이 수행되는지 여부를 지시하는 정보인 영상 복호화 장치.
    A filter coefficient calculator for calculating filter coefficients based on neighboring blocks of the first prediction block;
    If filtering or not information generated by the encoding apparatus or the decoding apparatus or stored in the encoding apparatus or the decoding apparatus indicates to perform filtering, the filtering is performed on the first prediction block by using the filter coefficients. A filtering performing unit generating 2 prediction blocks; And
    When filtering is performed on the first prediction block, a reconstruction block is generated by using the second prediction block and a reconstructed residual block, and when filtering is not performed on the first prediction block, A reconstruction block generation unit generating a reconstruction block by using a first prediction block and the reconstructed residual block,
    The information on whether the filtering is performed is information indicating whether filtering is performed on the first prediction block.
  11. 부호화 대상 블록에 대한 제1 예측 블록을 생성하는 단계;
    상기 제1 예측 블록의 주변 블록을 기초로 필터 계수를 산출하는 단계; 및
    부호화 장치에서 생성되거나 부호화 장치에 저장된 필터링 수행 여부 정보가 필터링을 수행하는 것을 지시하는 경우, 상기 필터 계수를 이용하여 상기 제1 예측 블록에 대한 필터링을 수행하여 제2 예측 블록을 생성하는 단계를 포함하고,
    상기 필터링 수행 여부 정보는 상기 제1 예측 블록에 대해 필터링이 수행되는지 여부를 지시하는 정보인 영상 부호화 방법.
    Generating a first prediction block for an encoding target block;
    Calculating filter coefficients based on neighboring blocks of the first prediction block; And
    If the filtering performed information generated in the encoding apparatus or stored in the encoding apparatus indicates to perform filtering, performing filtering on the first prediction block using the filter coefficients to generate a second prediction block. and,
    The information on whether the filtering is performed is information indicating whether filtering is performed on the first prediction block.
  12. 청구항 11에 있어서, 상기 주변 블록은
    각각 상기 제1 예측 블록의 한 면에 인접한 좌측 블록, 상단 블록 및 각각 상기 제1 예측 블록에 인접한 좌측 최상단 블록, 우측 최상단 블록, 좌측 최하단 블록 중 적어도 하나인 것을 특징으로 하는 영상 부호화 방법.
    The method of claim 11, wherein the peripheral block is
    And at least one of a left block, an upper block adjacent to one side of the first prediction block, and a left top block, right top block, and left bottom block respectively adjacent to the first prediction block.
  13. 청구항 11에 있어서, 상기 필터 계수를 산출하는 단계에서는,
    상기 주변 블록 내의 일부 영역만을 이용하여 필터 계수를 산출하는 영상 부호화 방법.
    The method of claim 11, wherein in calculating the filter coefficients,
    And a filter coefficient is calculated using only a part of the region in the neighboring block.
  14. 청구항 11에 있어서, 상기 필터링 수행 여부 정보는 항상 필터링을 수행하는 것을 지시하는 영상 부호화 방법.The image encoding method of claim 11, wherein the information on whether to perform filtering is always performed to perform filtering.
  15. 청구항 14에 있어서, 상기 제1 예측 블록에 대한 율-왜곡 비용 값이 상기 제2 예측 블록에 대한 율-왜곡 비용 값보다 작은 경우 상기 제1 예측 블록 및 입력 블록을 이용하여 잔여 블록을 생성하고,
    상기 제1 예측 블록에 대한 율-왜곡 비용 값이 상기 제2 예측 블록에 대한 율-왜곡 비용 값보다 큰 경우 상기 제2 예측 블록 및 상기 입력 블록을 이용하여 잔여 블록을 생성하는 단계를 추가로 포함하는 영상 부호화 방법.
    The method of claim 14, wherein when the rate-distortion cost value for the first prediction block is smaller than the rate-distortion cost value for the second prediction block, a residual block is generated using the first prediction block and the input block,
    Generating a residual block using the second prediction block and the input block if the rate-distortion cost value for the first prediction block is greater than the rate-distortion cost value for the second prediction block. The video encoding method.
  16. 청구항 11에 있어서, 상기 필터링 수행 여부 정보는
    상기 부호화 장치에서 상기 주변 블록의 정보에 기초하여 생성되는 정보인 영상 부호화 방법.
    The method according to claim 11, wherein whether to perform the filtering information
    And a video encoding method based on the information of the neighboring block.
  17. 청구항 16에 있어서, 상기 필터링 수행 여부 정보는,
    상기 필터 계수를 이용하여 상기 주변 블록에 대해 수행한 필터링 성능을 기초로 생성되는 영상 부호화 방법.
    The method according to claim 16, wherein the filtering information is performed,
    The image encoding method is generated based on the filtering performance performed on the neighboring block by using the filter coefficients.
  18. 청구항 16에 있어서, 상기 필터링 수행 여부 정보는,
    상기 예측 블록과 상기 주변 예측 블록 간의 유사도를 기초로 생성되는 영상 부호화 방법.
    The method according to claim 16, wherein the filtering information is performed,
    The image encoding method is generated based on the similarity between the prediction block and the neighboring prediction block.
  19. 청구항 16에 있어서,
    상기 제1 예측 블록에 대해 필터링이 수행되는 경우, 상기 제2 예측 블록 및 입력 블록을 이용하여 잔여 블록을 생성하고,
    상기 제1 예측 블록에 대해 필터링이 수행되지 않는 경우, 상기 제1 예측 블록 및 상기 입력 블록을 이용하여 잔여 블록을 생성하는 단계를 추가로 포함하는 영상 부호화 방법.
    The method according to claim 16,
    When filtering is performed on the first prediction block, a residual block is generated using the second prediction block and the input block.
    And if the filtering is not performed on the first prediction block, generating a residual block by using the first prediction block and the input block.
  20. 청구항 19에 있어서, 상기 제1 예측 블록에 대해 필터링이 수행되는 경우 상기 잔여 블록을 생성하는 단계에서는,
    상기 제1 예측 블록에 대한 율-왜곡 비용 값이 상기 제2 예측 블록에 대한 율-왜곡 비용 값보다 작은 경우 상기 제1 예측 블록 및 상기 입력 블록을 이용하여 잔여 블록을 생성하고,
    상기 제1 예측 블록에 대한 율-왜곡 비용 값이 상기 제2 예측 블록에 대한 율-왜곡 비용 값보다 큰 경우 상기 제2 예측 블록 및 상기 입력 블록을 이용하여 잔여 블록을 생성하는 영상 부호화 방법.
    The method of claim 19, wherein the generating of the residual block when filtering is performed on the first prediction block comprises:
    Generate a residual block using the first prediction block and the input block when the rate-distortion cost value for the first prediction block is less than the rate-distortion cost value for the second prediction block,
    And generating a residual block using the second prediction block and the input block when the rate-distortion cost value for the first prediction block is greater than the rate-distortion cost value for the second prediction block.
PCT/KR2011/007261 2010-09-30 2011-09-30 Apparatus and method for encoding/decoding video using adaptive prediction block filtering WO2012044116A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/822,956 US20130177078A1 (en) 2010-09-30 2011-09-30 Apparatus and method for encoding/decoding video using adaptive prediction block filtering

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20100095055 2010-09-30
KR10-2010-0095055 2010-09-30
KR1020110099681A KR101838183B1 (en) 2010-09-30 2011-09-30 Apparatus and method for video encoding and decoding using adaptive prediction block filtering
KR10-2011-0099681 2011-09-30

Publications (2)

Publication Number Publication Date
WO2012044116A2 true WO2012044116A2 (en) 2012-04-05
WO2012044116A3 WO2012044116A3 (en) 2012-05-31

Family

ID=45893694

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/007261 WO2012044116A2 (en) 2010-09-30 2011-09-30 Apparatus and method for encoding/decoding video using adaptive prediction block filtering

Country Status (1)

Country Link
WO (1) WO2012044116A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019066202A1 (en) * 2017-09-26 2019-04-04 엘지전자(주) Image processing method and apparatus therefor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060043051A (en) * 2004-09-23 2006-05-15 엘지전자 주식회사 Method for encoding and decoding video signal
KR20060129096A (en) * 2001-09-14 2006-12-14 샤프 가부시키가이샤 Adaptive filtering based upon boundary strength
KR20090068219A (en) * 2006-09-29 2009-06-25 톰슨 라이센싱 Automatic parameter estimation for adaptive pixel-based filtering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060129096A (en) * 2001-09-14 2006-12-14 샤프 가부시키가이샤 Adaptive filtering based upon boundary strength
KR20060043051A (en) * 2004-09-23 2006-05-15 엘지전자 주식회사 Method for encoding and decoding video signal
KR20090068219A (en) * 2006-09-29 2009-06-25 톰슨 라이센싱 Automatic parameter estimation for adaptive pixel-based filtering

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019066202A1 (en) * 2017-09-26 2019-04-04 엘지전자(주) Image processing method and apparatus therefor

Also Published As

Publication number Publication date
WO2012044116A3 (en) 2012-05-31

Similar Documents

Publication Publication Date Title
JP7210687B2 (en) Video decoding method
KR101962183B1 (en) Method for encoding/decoding an intra prediction mode and apparatus for the same
KR102013638B1 (en) Image encoding and decoding method and apparatus
JP7387841B2 (en) Video decoding method
KR102013639B1 (en) Apparatus and method for video encoding and decoding using adaptive prediction block filtering
KR102086145B1 (en) Method for intra prediction and apparatus thereof
KR102070719B1 (en) Method for inter prediction and apparatus thereof
US20120027092A1 (en) Image processing device, system and method
WO2012081949A2 (en) Method and apparatus for inter prediction
WO2013048033A1 (en) Method and apparatus for encoding/decoding intra prediction mode
KR20230161389A (en) Method and apparatus for deciding boundary filtering strength of deblocking filtering
WO2012081895A1 (en) Intra prediction method and apparatus
WO2012044116A2 (en) Apparatus and method for encoding/decoding video using adaptive prediction block filtering
WO2012121575A2 (en) Method and device for intra-prediction
JP6421426B2 (en) Encoding method conversion apparatus and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11829622

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 13822956

Country of ref document: US

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11829622

Country of ref document: EP

Kind code of ref document: A2