WO2011099789A2 - 비디오 신호 처리 방법 및 장치 - Google Patents

비디오 신호 처리 방법 및 장치 Download PDF

Info

Publication number
WO2011099789A2
WO2011099789A2 PCT/KR2011/000893 KR2011000893W WO2011099789A2 WO 2011099789 A2 WO2011099789 A2 WO 2011099789A2 KR 2011000893 W KR2011000893 W KR 2011000893W WO 2011099789 A2 WO2011099789 A2 WO 2011099789A2
Authority
WO
WIPO (PCT)
Prior art keywords
transform
value
block
values
present
Prior art date
Application number
PCT/KR2011/000893
Other languages
English (en)
French (fr)
Other versions
WO2011099789A3 (ko
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 엘지전자 주식회사
Publication of WO2011099789A2 publication Critical patent/WO2011099789A2/ko
Publication of WO2011099789A3 publication Critical patent/WO2011099789A3/ko

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/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Definitions

  • the present invention relates to a method and apparatus for processing a video signal, and more particularly, to a video signal processing method and apparatus for encoding or decoding a video signal with high efficiency.
  • Compression coding refers to a series of signal processing techniques for transmitting digitized information through a communication line or for storing in a form suitable for a storage medium.
  • the object of compression encoding includes objects such as voice, video, text, and the like.
  • a technique of performing compression encoding on an image is called video image compression.
  • Compression coding on a video signal is performed by removing redundant information in consideration of spatial correlation, temporal correlation, and stochastic correlation.
  • more efficient video signal processing methods and apparatus are required.
  • the present invention was devised to solve the above requirements, and a method of processing a video signal according to the present invention is to propose a high-efficiency video encoding and decoding method.
  • the present invention proposes various methods and apparatuses for generating pseudo DC or virtual DC in performing a DC conversion step.
  • the present invention also proposes various methods and apparatuses for generating a pseudo DC or virtual DC in performing a DC conversion step including a skip mode.
  • the present invention also proposes a method and apparatus for determining an optimal kernel index value applied to a directional transform (DT).
  • DT directional transform
  • the present invention is to propose a method and apparatus for entropy coding the determined optimal kernel index (kernel index) value.
  • a video signal processing method includes a block encoding step of performing a block encoding transformation by dividing an input signal into blocks having a predetermined size, and performing a DC transformation process on a DC value generated after the block encoding transformation.
  • the method may further include performing a DC conversion step, wherein the DC conversion step determines the size of the DC conversion block, generates the required number of virtual DC values in the determined DC conversion block, and performs a DC conversion process. do.
  • the video signal processing method is to obtain the information on the virtual DC value used in the DC conversion process from the input signal, and performing an inverse DC conversion process from the obtained information It is characterized by.
  • the virtual DC value may be determined as an average value of existing DC values, or may be used by copying any one of the existing DC values.
  • the DC conversion step is also applicable to the skip mode.
  • the video signal processing method does not set a kernel index value to a fixed value when applying a Directional Transform (DT), and an optimal kernel index ( and calculating the kernel index) value.
  • DT Directional Transform
  • the determined optimal kernel index value may be entropy encoded and included in the bitstream.
  • the video signal processing method is characterized by reconstructing the entropy coded kernel index value and performing inverse direction transformation.
  • the present invention is characterized by providing an encoder device and a decoder device supporting the various exemplary methods of the present invention.
  • efficient image encoding and decoding are possible.
  • efficient DC conversion e.g., Hadamard transform
  • high efficiency direction conversion e.g., 'MDDT'
  • FIG. 1 schematically shows an encoder device applicable to the present invention.
  • FIG. 2 schematically shows a decoder device applicable to the present invention.
  • FIG. 3 is a table illustrating an example having an adaptive block size applied to a block encoding transformation according to an embodiment of the present invention.
  • 4 to 6 illustrate an example of a DC transform applied in block transform encoding according to an embodiment of the present invention.
  • FIG. 7 to 10 illustrate an example of a DC transform applied in block transform encoding according to another embodiment of the present invention.
  • 11 to 12 illustrate an example of a DC transform applied in block transform encoding according to another embodiment of the present invention.
  • FIG. 13 to 14 illustrate flowcharts of an encoding method applicable to a DT transform applied during block transform encoding, according to another embodiment of the present invention.
  • Coding may be interpreted as encoding or decoding in some cases, and information is a term including all values, parameters, coefficients, elements, and the like. As the meaning can be interpreted differently according to the present invention is not limited thereto.
  • the unit is used to mean a basic unit of image processing or a specific position of an image, and in some cases, the unit may be used interchangeably with terms such as a block or an area.
  • the encoding apparatus 100 of the present invention is largely composed of a transformer 110, a quantizer 115, an inverse quantizer 120, an inverse transformer 125, a filter 130, and a predictor ( 150 and the entropy coding unit 160.
  • the converter 110 obtains a transform coefficient value by converting a pixel value of an input video signal or a residual signal between the video signal and a motion predicted / compensated image.
  • a transform coefficient value for converting a pixel value of an input video signal or a residual signal between the video signal and a motion predicted / compensated image.
  • a Discrete Cosine Transform or a Hadamard Transform or Directional Transform (DT) (e.g., a Mode Dependent Directional Transform (MDDT)) or Wavelet Transform. Transform
  • DT e.g., a Mode Dependent Directional Transform (MDDT)
  • Wavelet Transform. Transform e.g., Wavelet Transform. Transform
  • DCT Discrete Cosine Transform
  • DCT is widely used as a type of block encoding technique for performing frequency transformation by dividing an input image signal into blocks having a predetermined size.
  • the frequency component generated after the discrete cosine transform (DCT) (also referred to as a 'DCT coefficient') is mainly distributed in the low frequency region (eg, the upper left of the block), and the component having the largest DCT coefficient value This is called a direct current component (hereinafter referred to as a 'DC value').
  • a direct current component hereinafter referred to as a 'DC value'.
  • a method of increasing coding efficiency by performing the 'DC transformation' for example, a Hadamard transform
  • a coding method using the 'DC transform' (for example, a Hadamard transform) will be described later in detail with reference to FIGS. 4 to 12.
  • the direction transform (DT: for example, 'MDDT') will be described later in detail with reference to FIGS. 13 to 14.
  • the quantization unit 115 quantizes the transform coefficient value output from the transform unit 110.
  • the inverse quantization unit 120 inverse quantizes the transform coefficient value, and the inverse transform unit 125 restores the original pixel value by using the inverse quantized transform coefficient value.
  • the filtering unit 130 performs a filtering operation for improving the quality of the reconstructed image.
  • a deblocking filter and / or an adaptive loop filter may be included.
  • the filtered image is stored in the frame storage unit 156 for output or use as a reference image.
  • a method of predicting an image by using an already coded region and adding a residual value between the original image and the predicted image to a reconstructed image is used instead of coding the image signal as it is.
  • the intra predictor 152 performs intra prediction within the current image
  • the inter predictor 154 predicts the current image using at least one reference image stored in the frame storage 156.
  • the intra predictor 152 performs the intra prediction from the reconstructed regions in the current image and transmits the intra encoding information to the entropy coding unit 160.
  • the inter predictor 154 may further include a motion compensator 162 and a motion estimator 164.
  • the motion estimator 164 acquires a motion vector value of a region to be currently encoded by using reference images stored in the frame storage.
  • the motion estimator 164 transmits the position information (reference frame, motion vector, etc.) of the reference region to the entropy coding unit 160 so that the motion estimation unit 164 may be included in the bitstream.
  • the motion compensator 162 performs inter-screen motion compensation by using the motion vector value transmitted from the motion estimator 164.
  • the entropy coding unit 160 entropy codes the quantized transform coefficients, inter picture encoding information, intra picture encoding information, and reference region information input from the inter prediction unit 154 to generate a video signal bitstream.
  • the entropy coding unit 160 may use a variable length coding (VLC) method, arithmetic coding, or the like.
  • VLC variable length coding
  • the variable length coding (VLC) scheme converts input symbols into consecutive codewords, which may have a variable length. For example, symbols that occur frequently are represented by short codewords and symbols that do not occur frequently by long codewords.
  • a context-based adaptive variable length coding (CAVLC) method may be used as a variable length coding method.
  • Arithmetic coding converts consecutive data symbols into a single prime number, which arithmetic coding can obtain the optimal fractional bits needed to represent each symbol.
  • Context-based Adaptive Binary Arithmetic Code (CABAC) may be used as arithmetic coding.
  • the decoding apparatus 200 of the present invention largely includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 225, a filtering unit 230, and a prediction unit 250.
  • the entropy decoding unit 210 entropy decodes the video signal bitstream and extracts a coding type, transform coefficients for each region, a motion vector, and the like.
  • the inverse quantization unit 220 inverse quantizes the entropy decoded transform coefficient, and the inverse transform unit 225 restores the original pixel value by using the inverse quantized transform coefficient.
  • the inverse transform unit 225 is characterized in that the inverse process of the block transform method shown in Figures 3 to 12 to be described later.
  • the predictor 250 includes an intra predictor 252 and an inter predictor 254, and includes an encoding type decoded by the entropy decoder 210 described above, transform coefficients for each region, a motion vector, and the like. The predicted image is reconstructed using the information of.
  • the intra prediction unit 252 generates the intra prediction image from the decoded sample in the current image.
  • the inter prediction unit 254 generates a prediction image using the reference image stored in the frame storage unit 256.
  • the reconstructed video frame is generated by adding the pixel value output from the inverse transformer 225 to the predicted image output from the intra predictor 252 or the inter predictor 254.
  • the filtering unit 230 performs filtering on the restored video frame to improve the image quality. This may include a deblocking filter for reducing block distortion and an adaptive loop filter for removing distortion of the entire image.
  • the filtered image is output as the final image and stored in the frame storage unit 256 for use as a reference image for the next frame.
  • an embodiment of the present invention is to provide an efficient block coding scheme in consideration of the characteristics of the image and the characteristics of the input signal in the above-described transform unit 110 and inverse transform unit (125, 225).
  • FIG. 3 is a table illustrating an example having an adaptive block size applied to a block encoding transform according to an embodiment of the present invention.
  • 3 (a) shows an example of an intra picture encoding (or an intra mode)
  • FIG. 3 (b) shows an inter picture encoding (or an inter mode). ) Is shown as an example.
  • an embodiment of the present invention is characterized in that the coding of the color difference component corresponding to the block size of the luminance component can be more efficiently performed.
  • a block size of chroma components corresponding to a block size applied to luma components is adaptively changed in intra picture encoding.
  • the DCT block size of the chrominance component is set to '4 x 4' (302a), or the block size of the luminance component is '8 x 8'.
  • the DCT block size of the chrominance component is '8 x 8' (302b), or if the block size for the luminance component is '16 x 16 ', the DCT block size of the chrominance component is '16 x 16' (302c), If the block size of the luminance component is '32 x 32 ', the coding scheme 302d is set to make the DCT block size of the chrominance component '16 x 16'.
  • a block size of chroma components corresponding to a block size applied to luma components in inter-screen encoding is adaptively changed.
  • the DCT block size of the color difference component is set to '4 x 4' (312a), or the luminance component.
  • the DCT block size of the chrominance component is set to' 4 x 4 '(312b), or the block size for the luminance component is' 32 x 16 ',' 16 x 32 ',' 16 x 16 ', the DCT block size of the chrominance component is set to' 8 x 8 '(312c), or the block size for the luminance component is '64 x 64', '
  • a coding scheme 312d having a DCT block size of a chrominance component of '16 x 16' is proposed.
  • Tables (a) and (b) shown in FIG. 3 are merely examples of examples proposed in the embodiments of the present invention, and embodiments of the present invention are not necessarily limited to numerical values presented. That is, an embodiment of the present invention is characterized in that the block size of the color difference component can be adaptively changed corresponding to the block size of the luminance component.
  • DC transform eg, Hamadad transform
  • the DC transform according to the present invention can be applied to other transform schemes in addition to the hammad transform.
  • the Hamidard transform is a simple orthogonal transformation using only addition and subtraction, and is also called a Discrete Hamadard Transform (DHT) under another name.
  • DHT Discrete Hamadard Transform
  • FIGS. 4 to 6 illustrate an example of a DC transform applied in block transform encoding according to an embodiment of the present invention. That is, the embodiments of FIGS. 4 to 6 are characterized in that the block sizes of DC transforms are differently determined according to the sizes of the DCT transformed blocks.
  • the DCT block size of the color difference signal according to the present invention is set to '4 ⁇ 4', when the table of FIG. 3 (a) or (b) is used.
  • the block size for the DC transform can also be applied in various ways.
  • FIG. 4A illustrates a macro block 400 having pixels (pixels) and line number '16 x 16 ', and a block size having pixels (pixels) and line number' 4 x 4 '.
  • An example of dividing into 16 sub-blocks 401 to 416 having a structure is illustrated. DCT conversion is performed for each of the '4 x 4' sized sub-blocks 401 to 416, and as described above, a DC value is generated as a DC component on the upper left of each DCT block. Therefore, a total of 16 DC values are generated in the 16 ⁇ 16 macroblock 400. Subsequently, in order to increase coding efficiency, only 16 DC values are collected to perform a separate DC transform. In this case, the size of the DC transform block is a 4 ⁇ 4 block size as shown in FIG. Have.
  • FIG. 5A illustrates a macro block 500 having a pixel (pixel) and line number '16 x 16 ', and a block size having a pixel (pixel) and line number' 8 x 8 '.
  • a DCT value is provided as a DC component on the upper left of each DCT block. Therefore, a total of four DC values are generated in the 16 ⁇ 16 macroblock 500. Subsequently, in order to increase coding efficiency, only four DC values are collected and a separate DC transform is performed. In this case, the size of the DC transform block is a '2 x 2' block size as shown in FIG. Have.
  • FIG. 6 (a) shows a pixel block and a macro block 600 having a line count of '16 x 16 'as a '16 x 16' block size without dividing into additional sub blocks.
  • the case where DCT conversion is performed is shown. Accordingly, a total of one DC value (eg, DC [0] [0]) is generated in the 16 ⁇ 16 macroblock 500, and in this case, a separate DC transform is not performed (FIG. 5 (b)).
  • DC transform for example, when applying the above-described Hammad transform (hamadard transform) can be applied to the following transform equation. In this case, two orthogonal transformations are performed across rows and columns.
  • the '2 x 2' Hamidard transform and the '4 x 4' Hamard transform are presented as an example and the present invention is not limited thereto.
  • the '2 x 2' and the '4 x 4' hammad transform (example) will be equally applicable to all DC transformation methods to be described later.
  • 7 shows an example of a DC conversion scheme according to another embodiment of the present invention.
  • 7 illustrates a case in which different sized sub blocks (eg, '4 x 4', '8 x 8') exist in a macro block 700 having a size of '16 x 16 '. . That is, for example, according to FIG. 7A, a total of 12 '4 x 4' subblocks 701 to 712 in which DCT transformation is performed are performed in the macro block 700 having a size of 16 x 16. It can be seen that there is also one '8 x 8' subblock 713. Therefore, a total of 13 DC values exist.
  • different sized sub blocks eg, '4 x 4', '8 x 8'
  • FIG. 7 (b) illustrates a method of generating three '2 x 2' DC transform blocks as an embodiment of performing DC transformation on the macro block 700 encoded as shown in FIG. will be. That is, for example, a first '2 x 2' DC conversion block with each DC value generated by blocks 701, 702, 703, and 704 having a size of '4 x 4' among the subblocks of FIG. 7 (a). 721 is generated, and a second '2 x 2' DC conversion block 722 is generated using the respective DC values generated by the blocks 705, 706, 707, and 708, and further, 709, 710, 711, A third '2 ⁇ 2' DC conversion block 722 is generated with each DC value generated by the 712 block. However, a separate DC conversion is not performed on the DC value 713a generated by the subblock 713 having the size of '8 ⁇ 8' among the subblocks of FIG.
  • 8 shows an example of a DC conversion scheme according to another embodiment of the present invention.
  • 8 illustrates a case in which different sizes of sub blocks (eg, '4 x 4' and '8 x 8') exist in a macro block 800 having a size of '16 x 16 '. . That is, for example, according to FIG. 8 (a), a total of eight '4 x 4' subblocks 801 to 808 in which DCT conversion is performed in the macro block 800 having a size of '16 x 16 'are performed. It can be seen that there are two '8 ⁇ 8' subblocks 809 and 810. Therefore, 10 DC values exist in total.
  • FIG. 8 (b) illustrates a method of generating three '2 ⁇ 2' DC transform blocks as an embodiment of performing DC transformation on the macro block 800 encoded as shown in FIG. 8 (a).
  • a first '2 x 2' DC conversion block with each DC value generated by blocks 801, 802, 803, and 804 having a size of '4 x 4' among the sub blocks of FIG. 8 (a).
  • the third '2 x 2' DC by utilizing the DC values 809a and 810a generated by the sub blocks 809 and 810 having the size of '8 x 8' among the sub blocks of FIG. 8 (a).
  • the required DC values are four, whereas only two DC values exist (809a, 810a).
  • the virtual value is determined. This is called a pseudo DC coefficient (or 'virtual DC coefficients') and will be briefly referred to as 'DCp'.
  • the two DCp values may be determined as, for example, an average value of existing DC values 809a and 810a.
  • the DCp value may be determined in various ways such as an intermediate value, a minimum value, and a maximum value, not an average value. This will be described in more detail with reference to FIG. 10. It is also possible to determine the two DCp values as different values rather than the same values.
  • the third '2 x 2' The position of the existing DC values 809a and 810a in the DC conversion block 823 may be determined from the position of the DC values in the original macro block 800.
  • the positions of the '8 x 8' sub-blocks 809 and 810 are located at the upper right and lower left of the macro block 800, respectively, so that the positions of the corresponding DC values 809a and 810a are also represented.
  • 3 may be positioned at the upper right and lower left, respectively, in the '2 x 2' DC conversion block 823. Therefore, the newly generated DCp values will be located at the upper left and lower right, respectively.
  • 9 shows an example of a DC conversion scheme according to another embodiment of the present invention.
  • 9 illustrates a case in which different sized sub-blocks (eg, '4 x 4', '8 x 8') exist in the macro block 900 having a size of '16 x 16 '. . That is, for example, according to FIG. 9 (a), a total of eight '4 x 4' subblocks 901 to 908 in which DCT conversion is performed in the macro block 900 having a size of '16 x 16 'are performed. It can be seen that there are two '8 x 8' subblocks 909 and 910. Therefore, 10 DC values exist in total.
  • FIG. 9B illustrates an embodiment of performing DC conversion on the macroblock 900 encoded as shown in FIG. 9A.
  • the method of generating one '4 ⁇ 4' DC conversion block 921 is illustrated in FIG. It is shown. That is, for example, the '4 x 4' DC conversion block (for each DC value generated by blocks 901, 902, 903, and 904 having a size of '4 x 4' in the sub-blocks of FIG. 9 (a)).
  • the lower right portion 932 of the '4 x 4' DC conversion block 921 is generated.
  • the '4 x 4' DC conversion is performed by utilizing the DC values 909a and 910a generated by the sub blocks 909 and 910 having the size of '8 x 8' among the sub blocks of FIG. 9 (a).
  • the remaining portions 933 and 934 of block 921 will be generated. That is, in generating the remaining portions 933 and 934 of the '4 x 4' DC conversion block 921, the required DC values are eight, whereas only two DC values exist (909a and 910a).
  • the remaining six DC values are determined by the aforementioned 'DCp' value. In relation to the above, the six DCp values may be determined as, for example, an average value of existing DC values 909a and 910a.
  • the DCp value may be determined in various ways such as an intermediate value, a minimum value, and a maximum value, not an average value. This will be described in more detail with reference to FIG. 10. It is also possible to determine the six DCp values as different values from each other instead of the same values.
  • the existing DC in the block 921 is generated.
  • the location of the values 909a and 910a may be determined from the location of the DC value in the original macro block 900.
  • the positions of the '8 x 8' sub-blocks 909 and 910 are located at the upper right and lower left of the macro block 900, respectively, so that the position of the corresponding DC values 909a and 910a is'
  • the upper right position in the upper right portion 933 in the 4 x 4 'DC conversion block 921 and the lower left position in the lower left portion 934 may be determined, respectively.
  • the remaining positions of the portions 933 and 934 except for the DC values 909a and 910a are generated as DCp values.
  • FIG. 10 illustrates, by way of example, various schemes for determining the aforementioned DCp value.
  • FIG. 10 (a) illustrates a method of determining a DCp value as an average value of DC values of a sub block having a size of '8 ⁇ 8'. That is, it is the same as the method applied for example in Figs. 8 (b) and 9 (b) described above.
  • FIG. 10 (b) illustrates a method of determining a DCp value by duplication of a DC value of a sub block having a size of '8 ⁇ 8' as it is.
  • three DCp values applied in the upper right portion 933 in the aforementioned '4 x 4' DC conversion block 921 are Both may be determined to be the same value as the present DC value 909a in the corresponding portion 933, that is, DC [1] [0] [0].
  • all three DCp values applied in the lower left portion 934 in the aforementioned '4 x 4' DC conversion block 921 are all present DC values 910a in the portion 934, ie, DC [2] [ 0] [0]).
  • FIG. 10 (c) illustrates a method of determining a DCp value as an average value of all DC values existing in a '16 ⁇ 16 'macro block.
  • the existing DC values Fig. In 9 (b)
  • FIG. 10 (d) shows a method of determining a DCp value as an average value of all DC values existing in a '16 x 16 'macro block, but giving a weight to a' 8 x 8 'size DC value.
  • DC values generated from a DCT transform of a '4 x 4' block size eg DC values present in the areas 931 and 932 have no weight, but are generated from a DCT transform of an '8 x 8' block size.
  • DC values for example, 909a and 910a
  • the total number of dividing should be '16'.
  • FIG. 11 shows an example of a DC conversion method according to another embodiment of the present invention.
  • the embodiment of FIG. 11 relates to a case in which a skipped sub-block, which is skipped by a skip mode, exists in a macro block 1100 having a size of '16 ⁇ 16 '.
  • a total of 12 '4 x 4' subblocks 1101 to 1112 in which DCT transformation is performed are performed in the '16 x 16 'macro block 1100. It can be seen that there exists one subblock 1113 of the size '8 ⁇ 8' that is also skipped.
  • FIG. 11 (b) illustrates an embodiment of performing DC conversion on the macro block 1100 encoded as shown in FIG. 11 (a).
  • the upper left portion 1131 of 1121 is generated, and each DC value generated by blocks 1105, 1106, 1107, and 1108 having a size of '4 ⁇ 4' among the subblocks of FIG.
  • Blocks 1109, 1110, 1111, and 1112 which generate a lower left portion 1132 of the '4 x 4' DC conversion block 1121 and have a '4 x 4' size among the subblocks of FIG.
  • the lower right portion 1133 of the '4 x 4' DC conversion block 1121 is generated with each DC value generated by.
  • the upper right portion 1134 of the remaining '4 x 4' DC conversion block 1121 is generated by replacing the DCp value as described above.
  • the method of generating the DCp value it may be determined by the method 1141 to obtain the average value of all DC values existing in the current macro block 1100, as in the method of FIG. 10 (c) described above.
  • FIG. 12 illustrates a case of applying a different DCp value 1210 in determining the DCp value in the above-described embodiment of FIG. 11. That is, for example, instead of uniformly applying the same DCp value as in FIG. 11 (b), it is possible to apply differently to the characteristics of each DCp position.
  • 'DCp1' is determined as an average value of four DC values present in the upper left portion 1131 of the '4 x 4' DC conversion block 1121
  • 'DCp3' is '4 x 4'.
  • 'DCp4' is the lower right portion 1133 of the '4 x 4' DC conversion block 1121.
  • the average value of the four DC values present at is determined as, and the last 'DCp2' may be determined as the average value of the obtained DCp1, DCp3, Dcp4.
  • FIG. 13 is a flowchart illustrating a method of determining an optimal kernel index value applied to a Mode Dependent Directional Transform (MDDT) transformation method, which is a type of Directional Transform (DT).
  • MDDT Mode Dependent Directional Transform
  • DT Directional Transform
  • 14 is a flowchart illustrating a method of entropy encoding the determined kernel index.
  • the MDDT transformation scheme is particularly applicable to a method for encoding transformation of a residual generated during intra prediction.
  • the MDDT The transformation method independently defines transform matrices applied to the individual intra prediction modes, and then applies the transformations to perform encoding transformation. This has the advantage that the input image can be encoded more easily when the input image does not simply have vertical or horizontal edge characteristics, but has various edges such as diagonal lines, parabolas, and circles. .
  • a kernel index value is separately defined.
  • the kernel index value adjusts a transform matrices value applied to the MDDT to adjust a frequency of generation of non-zero high frequency domain components.
  • bit-rates bit-rates
  • degree of distortion when applying the MDDT transformation according to the kernel index value.
  • an embodiment of the present invention is characterized in that the optimum kernel index value is determined without setting the above-described kernel index value to a fixed value.
  • it is characterized in that the entropy encoding of the determined kernel index (kernel index) value.
  • the determined optimal The prediction mode k and the optimal kernel index i are entropy coded and included in the bitstream for transmission.
  • the decoder receiving the bitstream restores the optimal prediction mode (k) and the optimal kernel index (k) index value through entropy decoding, and applies the already-programmed and stored MDDT-transform matrix to perform MDDT conversion. The block can be restored.
  • a residual value is generated by a specific prediction mode k (S101 and S102).
  • an RD-cost 'rdcost' is obtained by applying the above-described step S1031 to a specific kernel index value 'i' among a plurality of kernel index values, and the obtained 'rdcost' The value is compared with the minimum RD-cost value obtained before (this is called 'min_rdcost_i') (S1032).
  • the new 'rdcost' value is smaller than the existing 'min_rdcost_i', the 'rdcost' value is set to a new 'min_rdcost_i' (S1033), and the steps S1031, S1032 and S1033. Is repeated until all kernel index values have been applied.
  • the comparison result of step S1032 when the new 'rdcost' value has a larger value than the existing 'min_rdcost_i', the index value is changed to the next index value without changing the existing 'min_rdcost_i' (S1034). The new kernel index value will be applied.
  • a new RD-cost ('rdcost') to which a new kernel index value is applied is generated by applying the above-described step S1031, and the step S1032 is repeated.
  • step S1035 it is checked whether the above process is completed for all kernel index values, and if the application is not completed for all kernel index values, the index value is changed (S1034) to generate a new kernel index value. Thereafter, the process of generating a new RD-coast ('rdcost') to which the new kernel index value is applied in step S1031 is repeated.
  • the kernel index value i having the minimum RD-cost value 'min_rdcost_i' stored in step S1033 is determined in the prediction mode k.
  • the optimal kernel index value is determined, and the minimum RD-cost value 'min_rdcost_i' corresponding to the determined kernel index value is compared with values in the next prediction mode (S104).
  • step S104 the new minimum RD-cost value 'min_rdcost_i' to which the optimal kernel index value is applied in the specific prediction mode determined in step S103 is used, and the existing minimum RD-cost value generated in another existing prediction mode (this is 'min_rdcost'). Step). If the new 'min_rdcost_i' value is smaller than the existing 'min_rdcost' as a result of the comparison in step S104, the 'min_rdcost_i' value is set as a new 'min_rdcost' (S105). Step S103 is repeated until all of the prediction modes are applied.
  • step S104 when the new 'min_rdcost_i' value has a larger value than the existing 'min_rdcost', without changing the existing 'min_rdcost', it is changed to the next prediction mode (S107) Steps S102 and S103 are repeated.
  • step S106 it is checked whether the application is completed for all prediction modes, and if the application is not completed for all prediction modes, the prediction mode is changed (S107) to the steps S101, S102, Step S103 is repeated. In addition, if the application is completed for all prediction modes in step S106, the entropy encoding of the finally determined prediction mode 'k' (prediction mode k) and the kernel index value 'i' (kernel index i) in the corresponding mode is performed. (S108)
  • FIG. 13 Each step of FIG. 13 is provided as an example for convenience of description, and it will be apparent that each of the steps may have various application processes. That is, the present invention is not limited only to the flowchart of FIG.
  • FIG. 14 is a flowchart illustrating a method of entropy coding a kernel index value, in particular in the step S108.
  • an MPI (Most Probable Index, hereinafter referred to as 'MPI') is determined (S201). For example, the intra prediction mode of the coding block may be set to the MPI. Thereafter, whether the kernel index value to be entropy coded is equal to the MPI is compared (S202). If the kernel index value to be entropy coded is equal to the MPI, the corresponding kernel index value is '1'. Entropy coding with (S203). If the kernel index value to be entropy coded differs from the MPI, the kernel index value is set to '0' (S204), and the subsequent remaining steps are performed.
  • Step S205 is a step of checking the difference between the kernel index value and the MPI value. Therefore, if the kernel index value is smaller than the MPI value, entropy coding is performed without modification of the kernel index value (S207). However, if the kernel index value is greater than the MPI value, the kernel index value is subtracted by '1' (S206), and then entropy coding is performed (S207).
  • the decoder receiving the entropy coded bitstream restores the optimal prediction mode (k) and the optimal kernel index (i) value through entropy decoding and utilizes the MDDT transformed block. Can be restored.
  • the image encoding method applied to the present invention may be produced as a program for execution on a computer and stored in a computer-readable recording medium.
  • the computer readable recording medium includes all kinds of storage devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include.
  • the bitstream generated by the encoding method to which the present invention is applied may be stored in a computer-readable recording medium or transmitted using a wired / wireless communication network.
  • the present invention can be applied to an encoder device and a decoder device for efficient video encoding.
  • the present invention has been described by way of limited embodiments and drawings, the present invention is not limited thereto and is intended by those skilled in the art to which the present invention pertains, and claims to be described below. Various modifications and variations may be made within the scope of equivalents of the scope.

Landscapes

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

Abstract

본 발명은 비디오 신호 처리 방법 및 장치에 관한 것이다. 본 발명의 일 실시예에 의한 비디오 신호 처리 방법은 입력 신호를 소정 크기의 블록으로 분할하여 블록 부호화 변환을 수행하는 블록 부호화 단계와, 상기 블록 부호화 변환이후 생성된 DC값에 대한 DC변환 과정을 수행하는 DC변환 단계를 더 포함하되, 상기 DC변환 단계는 DC변환 블록의 크기를 결정하고, 상기 결정된 DC변환 블록내에 필요한 갯수의 가상의 DC값을 생성하여, DC변환 과정을 수행하는 것을 특징으로 한다. 본 발명에서 제시하는 다양한 실시예를 통해, 효율적인 영상 부호화 및 복호화가 가능하게 된다. 예를 들어, 가상의 DC값을 활용함에 의해 효율적인 DC변환(예, '하다마드 변환')이 가능하게 되고, 최적의 커널 인덱스 값을 산출함에 의해, 고효율의 디렉션 변환(예, 'MDDT')이 가능하게 된다.

Description

비디오 신호 처리 방법 및 장치
본 발명은 비디오 신호의 처리 방법 및 장치에 관한 것으로, 보다 상세하게는 비디오 신호를 고효율로 인코딩하거나 디코딩하는 비디오 신호 처리 방법 및 장치에 관한 것이다.
압축 부호화란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하기 위한 일련의 신호 처리 기술을 의미한다. 압축 부호화의 대상에는 음성, 영상, 문자 등의 대상이 존재하며, 특히 영상을 대상으로 압축 부호화를 수행하는 기술을 비디오 영상 압축이라고 일컫는다. 비디오 신호에 대한 압축 부호화는 공간적인 상관관계, 시간적인 상관관계, 확률적인 상관관계 등을 고려하여 잉여 정보를 제거함으로써 이루어진다. 그러나, 최근의 다양한 미디어 및 데이터 전송 매체의 발전으로 인해, 더욱 고효율의 비디오 신호 처리 방법 및 장치가 요구되고 있다.
본 발명은 상기와 같은 요구를 해결하기 위해 창안된 것으로써, 본 발명에 따른 비디오 신호의 처리 방법은 고효율의 영상 부호화 및 복호화 방식을 제안하고자 한다.
특히, 본 발명은 DC변환 단계를 수행함에 있어서, 가상의 DC값(pseudo DC or virtual DC)을 생성하는 다양한 방법 및 장치를 제안하고자 한다.
또한, 본 발명은 스킵 모드(skip mode)가 포함된 DC변환 단계를 수행함에 있어서, 가상의 DC값(pseudo DC or virtual DC)을 생성하는 다양한 방법 및 장치를 제안하고자 한다.
또한, 본 발명은 디렉션 변환(DT; directional transform)에 적용되는, 최적의 커널 인덱스(kernel index) 값을 결정하는 방법 및 장치를 제안하고자 한다.
또한, 본 발명은 상기 결정된 최적의 커널 인덱스(kernel index) 값을 엔트로피 코딩하는 방법 및 장치를 제안하고자 한다.
본 발명의 일 실시예에 의한, 비디오 신호 처리 방법은 입력 신호를 소정 크기의 블록으로 분할하여 블록 부호화 변환을 수행하는 블록 부호화 단계와, 상기 블록 부호화 변환이후 생성된 DC값에 대한 DC변환 과정을 수행하는 DC변환 단계를 더 포함하되, 상기 DC변환 단계는 DC변환 블록의 크기를 결정하고, 상기 결정된 DC변환 블록내에 필요한 갯수의 가상의 DC값을 생성하여, DC변환 과정을 수행하는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 의한, 비디오 신호 처리 방법은 입력 신호로부터 DC변환 과정에 사용된 가상의 DC값에 대한 정보를 획득하는 단계와, 상기 획득한 정보로부터 역DC변환 과정을 수행하는 것을 특징으로 한다.
또한, 상기 가상의 DC값은, 기존 DC값들의 평균값으로 결정되거나, 또는 기존 DC값중 어느하나를 복사하여 활용하는 것을 특징으로 한다.
또한, 상기 DC변환 단계는 스킵 모드에도 동일하게 적용가능한 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 의한, 비디오 신호 처리 방법은 디렉션 변환(DT: Directional Transform)을 적용함에 있어서, 커널 인덱스(kernel index) 값을 고정된 값으로 설정하지 않고, 최적의 커널 인덱스(kernel index) 값을 산출하여 결정하는 것을 특징으로 한다.
또한, 상기 결정된 최적의 커널 인덱스(kernel index) 값을 엔트로피 인코딩하여 비트스트림에 포함하는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 의한, 비디오 신호 처리 방법은, 상기 엔트로피 코딩된 커널 인덱스 값을 복원하여, 역 디렉션 변환을 수행하는 것을 특징으로 한다.
또한, 본 발명은, 상기 본 발명의 다양한 실시예적 방법을 지원하는 인코더 장치 및 디코더 장치를 제공함을 특징으로 한다.
본 발명에서 제시하는 다양한 실시예를 통해, 효율적인 영상 부호화 및 복호화가 가능하게 된다. 예를 들어, 가상의 DC값을 활용함에 의해 효율적인 DC변환(예, '하다마드 변환')이 가능하게 되고, 최적의 커널 인덱스 값을 산출함에 의해, 고효율의 디렉션 변환(예, 'MDDT')이 가능하게 된다.
도 1은 본 발명에 적용가능한 인코더 장치를 개략적으로 도시한 것이다.
도 2는 본 발명에 적용가능한 디코더 장치를 개략적으로 도시한 것이다.
도 3은 본 발명의 실시예에 의한 블록 부호화 변환에 적용되는, 적응적 블록 크기를 가지는 일예를 테이블로 도시한 것이다.
도 4 ~ 도 6은 본 발명의 일 실시예에 따른, 블록 변환 부호화시 적용되는 DC 변환(DC transform)의 일예를 도시한 것이다.
도 7 ~ 도 10은 본 발명의 다른 실시예에 따른, 블록 변환 부호화시 적용되는 DC 변환(DC transform)의 일예를 도시한 것이다.
도 11 ~ 도 12는 본 발명의 또 다른 실시예에 따른, 블록 변환 부호화시 적용되는 DC 변환(DC transform)의 일예를 도시한 것이다.
도 13 ~ 도 14는 본 발명의 다른 실시예에 따른, 블록 변환 부호화시 적용되는 DT 변환(Directional Transform)에 적용가능한 부호화 방법의 흐름도를 도시한 것이다.
이하, 본 발명의 다양한 실시예를 설명한다. 참고로, 본 발명에서 제공하는 실시예는 본 발명의 기술적 사상을 설명하기 위한 하나의 예로서 제공되어 지며, 본 발명의 기술적 범위는 제공되는 실시예들에만 한정되지 않음은 자명하다 할 것이다.
본 발명에서 다음 용어는 다음과 같은 기준으로 해석될 수 있고, 기재되지 않은 용어라도 하기 취지에 따라 해석될 수 있다. 코딩(coding)은 경우에 따라 인코딩 또는 디코딩으로 해석될 수 있고, 정보(information)는 값(values), 파라미터(parameter), 계수(coefficients), 성분(elements) 등을 모두 포함하는 용어로서, 경우에 따라 의미는 달리 해석될 수 있으므로 본 발명은 이에 한정되지 아니한다. 유닛(unit)은 영상 처리의 기본 단위 또는 영상의 특정 위치를 지칭하는 의미로 사용되었으며, 경우에 따라서는 블록(block) 또는 영역(area)등의 용어와 서로 혼용하여 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 비디오 신호 인코딩 장치의 개략적인 블록도이다. 도 1을 참조하면, 본 발명의 인코딩 장치(100)는 크게 변환부(110), 양자화부(115), 역양자화부(120), 역변환부(125), 필터링부(130), 예측부(150) 및 엔트로피 코딩부(160)를 포함한다.
변환부(110)는 입력 비디오 신호 또는 상기 비디오 신호와 움직임 예측/보상된 영상과의 차신호(residual)에 대한 화소값을 변환하여 변환 계수 값을 획득한다. 예를 들어, 이산 코사인 변환(DCT: Discrete Cosine Transform) 또는 하다마드 변환 (hadamard transform) 또는 디렉션 변환(DT: Directional Transform, 예를 들어, 'MDDT (Mode Dependent Directional transform)') 또는 웨이블릿 변환(Wavelet Transform) 등이 사용될 수 있다. 특히 이산 코사인 변환(DCT)은 입력된 영상 신호를 일정 크기의 블록 형태로 나누어 주파수 변환을 수행하는 블록 부호화 기술의 일종으로 널리 활용되고 있다. 특히 상기 이산 코사인 변환(DCT)후 생성된 주파수 성분(이를 'DCT계수'라고도 한다)은 주로 저주파수 영역(예, 블록의 좌측 상단)에 분포하게 되는 바, 이중 가장 큰 DCT계수값을 가지는 성분을 직류성분(이하, 'DC값'으로 명명한다)이라 한다. 관련하여, 최근에는 상기 이산 코사인 변환(DCT)후 생성된 DC값만을 이용하여 상기 'DC 변환'(예를 들어, 하다마드 변환 (hadamard transform))을 수행하여 더욱 부호화 효율을 높이고자 하는 방식이 소개되고 있다. 상기 'DC 변환'(예를 들어, 하다마드 변환 (hadamard transform))을 이용한 부호화 방법은 도 4 ~ 도 12을 참조하여 상세히 후술할 예정이다. 또한, 상기 디렉션 변환(DT: Directional Transform, 예를 들어, 'MDDT')에 대해서는 도 13 ~ 도 14를 참조하여 상세히 후술할 예정이다.
양자화부(115)는 변환부(110)에서 출력된 변환 계수 값을 양자화한다. 역양자화부(120)에서는 변환 계수 값을 역양자화하고, 역변환부(125)에서는 역양자화된 변환 계수값을 이용하여 원래의 화소값을 복원한다.
필터링부(130)는 복원된 영상의 품질 개선을 위한 필터링 연산을 수행한다. 예를 들어, 디블록킹 필터 및/또는 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 영상은 출력되거나 참조 영상으로 이용하기 위하여 프레임 저장부(156)에 저장된다.
코딩 효율을 높이기 위하여 영상 신호를 그대로 코딩하는 것이 아니라, 이미 코딩된 영역을 이용하여 영상을 예측하고, 예측된 영상에 원 영상과 예측 영상간의 레지듀얼 값을 더하여 복원 영상을 획득하는 방법이 사용된다. 인트라 예측부(152)에서는 현재 영상 내에서 화면내 예측을 수행하며, 인터 예측부(154)에서는 프레임 저장부(156)에 저장된 적어도 하나 이상의 참조 영상을 이용하여 현재 영상을 예측한다. 인트라 예측부(152)는 현재 영상 내의 복원된 영역들로부터 화면내 예측을 수행하며, 화면내 부호화 정보를 엔트로피 코딩부(160)에 전달한다. 인터 예측부(154)는 다시 움직임 보상부(162) 및 움직임 추정부(164)를 포함하여 구성될 수 있다. 움직임 추정부(164)에서는 프레임 저장부에 저장된 참조 영상들을 활용하여 현재 부호화하고자 영역의 모션 벡터(motion vector)값을 획득한다. 움직임 추정부(164)에서는 참조 영역의 위치 정보(참조 프레임, 모션 벡터 등) 등을 엔트로피 코딩부(160)로 전달하여 비트스트림에 포함될 수 있도록 한다. 움직임 추정부(164)에서 전달된 모션 벡터값을 이용하여 움직임 보상부(162)에서는 화면간 움직임 보상을 수행한다.
엔트로피 코딩부(160)는 양자화된 변환 계수, 화면간 부호화 정보, 화면내 부호화 정보 및 인터 예측부(154)로부터 입력된 참조 영역 정보 등을 엔트로피 코딩하여 비디오 신호 비트스트림을 생성한다. 여기서 엔트로피 코딩부(160)에서는 가변 길이 코딩(VLC: Variable Length Coding) 방식과 산술 코딩(arithmetic coding) 등이 사용될 수 있다. 가변 길이 코딩(VLC) 방식은 입력되는 심볼들을 연속적인 코드워드로 변환하는데, 코드워드의 길이는 가변적일 수 있다. 예를 들어, 자주 발생하는 심볼들을 짧은 코드워드로 자주 발생하지 않은 심볼들은 긴 코드워드로 표현하는 것이다. 가변 길이 코딩 방식으로서 컨텍스트 기반 적응형 가변 길이 코딩(CAVLC: Context-based Adaptive Variable Length Coding) 방식이 사용될 수 있다. 산술 코딩은 연속적인 데이터 심볼들을 하나의 소수로 변환하는 데, 산술 코딩은 각 심볼을 표현하기 위하여 필요한 최적의 소수 비트를 얻을 수 있다. 산술 코딩으로서 컨텍스트 기반 적응형 산술 부호화(CABAC: Context-based Adaptive Binary Arithmetic Code)가 이용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비디오 신호 디코딩 장치(200)의 개략적인 블록도이다. 도 2를 참조하면 본 발명의 디코딩 장치(200)는 크게 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(225), 필터링부(230), 예측부(250)를 포함한다.
엔트로피 디코딩부(210)는 비디오 신호 비트스트림을 엔트로피 디코딩하여, 부호화 타입, 각 영역에 대한 변환 계수, 모션 벡터 등을 추출한다. 역양자화부(220)는 엔트로피 디코딩된 변환 계수를 역양자화하고, 역변환부(225)는 역양자화된 변환 계수를 이용하여 원래의 화소값을 복원한다. 특히 상기 역변환부(225)는 후술할 도 3 ~ 도 12에서 제시되는 블록 변환 방식의 역 과정을 수행하는 것을 특징으로 한다.
또한, 예측부(250)는 인트라 예측부(252) 및 인터 예측부(254)를 포함하고, 전술한 엔트로피 디코딩부(210)를 통해 디코딩된 부호화 타입, 각 영역에 대한 변환 계수, 모션 벡터 등의 정보를 활용하여 예측 영상을 복원하게 된다.
관련하여, 상기 인트라 예측부(252)에서는 현재 영상 내의 디코딩된 샘플로부터 화면내 예측 영상을 생성하게 된다. 또한, 상기 인터 예측부(254)는 프레임 저장부(256)에 저장된 참조 영상을 이용하여 예측 영상을 생성하게 된다. 상기 인트라 예측부(252) 또는 인터 예측부(254)로부터 출력된 예측 영상에 역변환부(225)로부터 출력된 화소값이 더해져서 복원된 비디오 프레임이 생성된다.
한편, 필터링부(230)는 상기 복원된 비디오 프레임에 대한 필터링을 수행하여 화질을 향상시킨다. 여기에는 블록 왜곡 현상을 감소시키기 위한 디블록킹 필터, 영상 전체의 왜곡 제거를 위한 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 영상은 최종 영상으로 출력되고, 또한 다음 프레임에 대한 참조 영상으로 이용하기 위하여 프레임 저장부(256)에 저장된다.
이하에서는, 상기 인코더 장치와 디코더 장치를 활용하여, 부호화 효율을 높이는 코딩 방법을 제안하고자 한다. 특히, 본 발명의 실시예는 전술한 변환부(110) 및 역변환부(125, 225)에 있어서, 영상의 특성 및 입력 신호의 특성을 고려한 효율적인 블록 부호화 방식을 제공하고자 한다.
도 3은 본 발명의 실시예에 의한 블록 부호화 변환에 적용되는 적응적 블록 크기를 가지는 일예를 테이블로 도시한 것이다. 관련하여, 도 3 (a)는 화면내 부호화(또는, 인트라 모드(intra mode))의 경우를 예를 들어 도시한 것이고, 도 3 (b)는 화면간 부호화(또는, 인터 모드(inter mode))의 경우를 예를 들어 도시한 것이다.
관련하여, 종래 일반적인 방식은, 블록 변환(예를 들어, DCT)을 적용하기 위한 색차성분의 블록 크기는 일정 크기(예를 들어, '4x4')로 고정되어 있음에 따라, 고효율의 부호화에 부적합한 면이 발생하였다. 따라서, 본 발명의 실시예는, 휘도성분의 블록크기에 적응적으로 대응하는 색차성분의 블록크기를 결정함에 따라, 더욱 고효율의 부호화가 가능하도록 하는 것을 특징으로 한다.
도 3 (a)를 참조하면, 화면내 부호화시 휘도성분(luma components)에 적용되는 블록 크기에 대응하는 색차성분(chroma components)의 블록 크기가 적응적으로 변경되는 일예를 보여준다. 예를 들어, 휘도성분에 대한 블록 크기가 '4 x 4' 인 경우 색차성분의 DCT 블록 크기를 '4 x 4' 로 하거나(302a), 휘도성분에 대한 블록 크기가 '8 x 8' 인 경우 색차성분의 DCT 블록 크기를 '8 x 8' 로 하거나(302b), 휘도성분에 대한 블록 크기가 '16 x 16' 인 경우 색차성분의 DCT 블록 크기를 '16 x 16' 로 하거나(302c), 휘도성분에 대한 블록 크기가 '32 x 32' 인 경우 색차성분의 DCT 블록 크기를 '16 x 16' 로 하는 부호화 방식(302d)을 제안한다.
또한, 도 3 (b)를 참조하면, 화면간 부호화시 휘도성분(luma components)에 적용되는 블록 크기에 대응하는 색차성분(chroma components)의 블록 크기가 적응적으로 변경되는 일예를 보여준다. 예를 들어, 휘도성분에 대한 블록 크기가 '4 x 8','8 x 4','4 x 4'인 경우 색차성분의 DCT 블록 크기를 '4 x 4' 로 하거나(312a), 휘도성분에 대한 블록 크기가 '16 x 8','8 x 16','8 x 8' 인 경우 색차성분의 DCT 블록 크기를 '4 x 4' 로 하거나(312b), 휘도성분에 대한 블록 크기가 '32 x 16','16 x 32','16 x 16' 인 경우 색차성분의 DCT 블록 크기를 '8 x 8' 로 하거나(312c), 휘도성분에 대한 블록 크기가 '64 x 64','64 x 32','32 x 64','32 x 32' 인 경우 색차성분의 DCT 블록 크기를 '16 x 16' 로 하는 부호화 방식(312d)을 제안한다.
상기 도 3 (a) 및 (b)에 제시된 테이블은, 본 발명의 실시예에서 제안하는 일예를 제시한 것일 뿐, 본 발명의 실시예가 반드시 제시된 수치에만 한정되는 것은 아니다. 즉, 본 발명의 실시예는 색차성분의 블록 크기를 휘도성분의 블록 크기에 대응하여 적응적으로 변경 가능하도록 하는 것을 특징으로 한다.
이하, 도 4 ~ 도 12을 참조하여, 본 발명에 따른 블록 변환 부호화시 적용되는 DC 변환(DC transform, 예를 들어, '하마다드 변환')의 다양한 실시예에 대해 설명하고자 한다. 단, 본 발명에 따른 DC 변환(DC transform)은 상기 하마다드 변환(hamadard transform)이외에도 다른 변환 방식에도 적용가능 하다. 관련하여, 상기 하마다드 변환(hamadard transform)은, 덧셈과 뺄셈만을 사용한 간단한 직교변환으로서, 또 다른 명칭으로 '이산 하마다드 변환(DHT; Discrete Hamadard Transform)'으로도 명명된다.
도 4 ~ 도 6은 본 발명의 일 실시예에 따른, 블록 변환 부호화시 적용되는 DC 변환(DC transform)의 일예를 도시한 것이다. 즉, 도 4 ~ 도 6의 실시예는 DCT 변환된 블록의 크기에 따라 DC 변환(DC transform)의 블록 크기를 서로 상이하게 결정하는 데 특징이 있다. 특히, 도 4 ~ 도 6에 의한 본 발명의 실시예는, 전술한 도 3 (a) 또는 (b)의 테이블에 의할 경우 본 발명에 따른 색차신호의 DCT 블록 크기를 '4 x 4', '8 x 8' 및 '16 x 16' 등과 같이 다양하게 적용 가능하게 됨에 따라, 이에 연동하여 DC 변환(DC transform)를 위한 블록 크기도 다양하게 적용할 수 있음을 특징으로 한다.
즉, 예를 들어, 도 4 (a)는 화소(픽셀) 및 라인수가 '16 x 16' 인 매크로 블록(400, Macro Block)을, 화소(픽셀) 및 라인수가 '4 x 4' 인 블록 크기를 가지는 16개 서브 블록(401 ~ 416)으로 분할한 경우를 예를 들어 도시한 것이다. 상기 '4 x 4' 크기의 서브 블록(401 ~ 416)별로 DCT 변환이 수행되어 지고, 전술한 바와 같이 각 DCT 블록의 좌측 상단에 직류성분으로서 'DC'값을 가지게 된다. 따라서, 16 x 16 매크로 블록(400)내에는 총 16개의 DC값이 생성되어 진다. 이후, 부호화 효율을 높이기 위해 상기 16개의 DC값만을 모아서 별도의 DC 변환(DC transform)을 수행하게 되는 바, 이때 DC변환 블록의 크기는 도 4(b)와 같이 '4 x 4' 블록 크기를 가지게 된다.
또한, 예를 들어, 도 5 (a)는 화소(픽셀) 및 라인수가 '16 x 16' 인 매크로 블록(500, Macro Block)을, 화소(픽셀) 및 라인수가 '8 x 8' 인 블록 크기를 가지는 4개 서브 블록(501 ~ 504)으로 분할한 경우를 예를 들어 도시한 것이다. 상기 '8 x 8' 크기의 서브 블록(501 ~ 504)별로 DCT 변환이 수행되어 지고, 전술한 바와 같이 각 DCT 블록의 좌측 상단에 직류성분으로서 'DC'값을 가지게 된다. 따라서, 16 x 16 매크로 블록(500)내에는 총 4개의 DC값이 생성되어 진다. 이후, 부호화 효율을 높이기 위해 상기 4개의 DC값만을 모아서 별도의 DC 변환(DC transform)을 수행하게 되는 바, 이때 DC변환 블록의 크기는 도 5(b)와 같이 '2 x 2' 블록 크기를 가지게 된다.
또한, 예를 들어, 도 6 (a)는 화소(픽셀) 및 라인수가 '16 x 16' 인 매크로 블록(600, Macro Block)을 추가적인 서브 블록으로 분할 하지 않고, '16 x 16' 블록 크기로 DCT 변환을 수행한 경우를 도시한 것이다. 따라서, 16 x 16 매크로 블록(500)내에는 총 1개의 DC값(예, DC[0][0])이 생성되어 지고, 이 경우 별도의 DC 변환(DC transform)은 수행하지 않게 된다(도5 (b)).
관련하여, 상기 '2 x 2' DC 변환(DC transform)으로서, 예를 들어, 전술한 하마다드 변환(hamadard transform)을 적용하는 경우에는 다음과 같은 변환식을 적용할 수 있다.
H[0][0] = DC[0][0] + DC[0][1] + DC[1][0] + DC[1][1]
H[0][1] = DC[0][0] - DC[0][1] + DC[1][0] - DC[1][1]
H[1][0] = DC[0][0] + DC[0][1] - DC[1][0] - DC[1][1]
H[1][1] = DC[0][0] - DC[0][1] - DC[1][0] + DC[1][1]
또한, 상기 '4 x 4' DC 변환(DC transform)으로서, 예를 들어, 전술한 하마다드 변환(hamadard transform)을 적용하는 경우에는 다음과 같은 변환식을 적용할 수 있다. 이 경우, 행과 열에 걸쳐 두번의 직교변환이 수행되어 진다.
for (j=0; j<4; j++) {
DC[0][j] = DC[0][j] + DC[3][j] + DC[1][j] + DC[2][j]
DC[2][j] = DC[0][j] + DC[3][j] - DC[1][j] - DC[2][j]
DC[1][j] = DC[0][j] - DC[3][j] + DC[1][j] - DC[2][j]
DC[3][j] = DC[0][j] - DC[3][j] - DC[1][j] + DC[2][j] }
for (i=0; i<4; i++) {
H[i][0] = (DC[i][0] + DC[i][3] + DC[i][1] + DC[i][2]) >> 1
H[i][1] = (DC[i][0] + DC[i][3] - DC[i][1] - DC[i][2]) >> 1
H[i][2] = (DC[i][0] - DC[i][3] + DC[i][1] - DC[i][2]) >> 1
H[i][3] = (DC[i][0] - DC[i][3] - DC[i][1] + DC[i][2]) >> 1 }
관련하여, 상기 '2 x 2' 하마다드 변환식(hamadard transform) 및 '4 x 4' 하마다드 변환식(hamadard transform)은 일예로 제시한 것으로서 본 발명은 이에 한정되는 것은 아니다. 또한, 상기 예로 든 '2 x 2' 및 '4 x 4' 하마다드 변환식(hamadard transform)은 이후 설명될 모든 DC 변환 방식에 동일하게 적용 가능 하다 할 것이다.
도 7 은 본 발명의 다른 실시예에 의한 DC 변환 방식의 일예를 도시한 것이다. 도 7의 실시예는 '16 x 16' 크기의 매크로 블록(700)내에 상이한 크기의 서브 블록들(예를 들어, '4 x 4', '8 x 8')이 존재하는 경우를 도시한 것이다. 즉, 예를 들어, 도 7 (a)에 의하면, 상기 '16 x 16' 크기의 매크로 블록(700)내에 DCT 변환이 수행된 '4 x 4' 서브 블록들(701 ~ 712)이 총 12개 존재하고 또한 '8 x 8' 서브 블록(713)이 1개 존재함을 알 수 있다. 따라서, DC값 값은 총 13개 존재하게 된다.
도 7 (b)는 상기 도 7 (a)와 같이 부호화된 매크로 블록(700)에 대해 DC변환을 수행하는 일실시예로서, 3개의 '2 x 2' DC 변환 블록을 생성하는 방법을 도시한 것이다. 즉, 예를 들어, 도 7 (a)의 서브 블록중 '4 x 4' 크기를 가지는, 701, 702, 703, 704 블록에 의해 생성된 각 DC값으로 제1 '2 x 2' DC 변환 블록(721)을 생성하고, 또한, 705, 706, 707, 708 블록에 의해 생성된 각 DC값으로 제2 '2 x 2' DC 변환 블록(722)을 생성하고, 또한, 709, 710, 711, 712 블록에 의해 생성된 각 DC값으로 제3 '2 x 2' DC 변환 블록(722)을 생성하게 된다. 단, 도 7(a)의 서브 블록중 '8 x 8' 크기를 가지는 서브 블록(713)에 의해 생성된 DC값(713a)에 대해서는 별도의 DC 변환을 수행하지 않음을 특징으로 한다.
도 8 은 본 발명의 다른 실시예에 의한 DC 변환 방식의 일예를 도시한 것이다. 도 8의 실시예는 '16 x 16' 크기의 매크로 블록(800)내에 상이한 크기의 서브 블록들(예를 들어, '4 x 4', '8 x 8')이 존재하는 경우를 도시한 것이다. 즉, 예를 들어, 도 8 (a)에 의하면, 상기 '16 x 16' 크기의 매크로 블록(800)내에 DCT 변환이 수행된 '4 x 4' 서브 블록들(801 ~ 808)이 총 8개 존재하고, 또한 '8 x 8' 서브 블록들(809, 810)이 2개 존재함을 알 수 있다. 따라서, DC값은 총 10개 존재하게 된다.
도 8 (b)는 상기 도 8 (a)와 같이 부호화된 매크로 블록(800)에 대해 DC변환을 수행하는 일실시예로서, 3개의 '2 x 2' DC 변환 블록을 생성하는 방법을 도시한 것이다. 즉, 예를 들어, 도 8 (a)의 서브 블록중 '4 x 4' 크기를 가지는, 801, 802, 803, 804 블록에 의해 생성된 각 DC값으로 제1 '2 x 2' DC 변환 블록(821)을 생성하고, 또한, 805, 806, 807, 808 블록에 의해 생성된 각 DC값으로 제2 '2 x 2' DC 변환 블록(822)을 생성한다.
또한, 도 8 (a)의 서브 블록들중 '8 x 8' 크기를 가지는 서브 블록들(809, 810)에 의해 생성된 DC값들(809a, 810a)을 활용하여 제3 '2 x 2' DC 변환 블록(823)을 생성하게 된다. 관련하여, 상기 제3 '2 x 2' DC 변환 블록(822)을 생성함에 있어서, 필요한 DC값이 4개임에 반해 존재하는 DC값은 2개(809a, 810a)뿐이므로 나머지 2개의 DC값은 가상의 값으로 결정하게 된다. 이를 가상 DC값('pseudo DC coefficients' or 'virtual DC coefficients')이라 하고 이하 간략히 'DCp'로 명명하고자 한다. 관련하여, 상기 2개의 DCp값은 예를 들어 기 존재하는 DC값(809a, 810a)의 평균값으로 결정할 수 있다(831). 단, 이는 하나의 예에 불과하고, DCp 값을 평균값이 아닌 중간값, 최소값, 최대값 등과 같이 다양한 방식으로 결정할 수도 있다. 이에 대해서는 도 10에서 더욱 상세히 설명할 예정이다. 또한, 2개의 DCp값을 동일한 값이 아닌 상이한 값으로 결정하는 것도 가능하다.
관련하여, 전술한 바와 같이 2개의 DC값(809a, 810a) 및 2개의 DCp값을 이용하여 제3 '2 x 2' DC 변환 블록(823)을 생성함에 있어서, 상기 제3 '2 x 2' DC 변환 블록(823)내에서 기존 DC값(809a, 810a)의 위치는 원 매크로 블록(800)에서의 상기 DC값의 위치로부터 결정될 수 있다. 예를 들어, '8 x 8' 서브 블록(809, 810)의 위치는 매크로 블록(800)의 우측 상단 및 좌측 하단에 각각 위치함으로, 상기 해당 DC값들(809a, 810a)의 위치도, 상기 제3 '2 x 2' DC 변환 블록(823)내에서 우측 상단 및 좌측 하단에 각각 위치 하도록 결정할 수 있다. 따라서, 새로이 생성되는 DCp값들은 각각 좌측 상단 및 우측 하단에 위치하게 될 것이다.
도 9는 본 발명의 다른 실시예에 의한 DC 변환 방식의 일예를 도시한 것이다. 도 9의 실시예는 '16 x 16' 크기의 매크로 블록(900)내에 상이한 크기의 서브 블록들(예를 들어, '4 x 4', '8 x 8')이 존재하는 경우를 도시한 것이다. 즉, 예를 들어, 도 9 (a)에 의하면, 상기 '16 x 16' 크기의 매크로 블록(900)내에 DCT 변환이 수행된 '4 x 4' 서브 블록들(901 ~ 908)이 총 8개 존재하고, 또한 '8 x 8' 서브 블록들(909, 910)이 2개 존재함을 알 수 있다. 따라서, DC값은 총 10개 존재하게 된다.
도 9 (b)는 상기 도 9 (a)와 같이 부호화된 매크로 블록(900)에 대해 DC변환을 수행하는 일실시예로서, 1개의 '4 x 4' DC 변환 블록(921)을 생성하는 방법을 도시한 것이다. 즉, 예를 들어, 도 9 (a)의 서브 블록중 '4 x 4' 크기를 가지는, 901, 902, 903, 904 블록에 의해 생성된 각 DC값으로 상기 '4 x 4' DC 변환 블록(921)의 좌측 상단 부분(931)을 생성하고, 또한, 도 9 (a)의 서브 블록중 '4 x 4' 크기를 가지는, 905, 906, 907, 908 블록에 의해 생성된 각 DC값으로 상기 '4 x 4' DC 변환 블록(921)의 우측 하단 부분(932)을 생성하게 된다.
또한, 도 9 (a)의 서브 블록들중 '8 x 8' 크기를 가지는 서브 블록들(909, 910)에 의해 생성된 DC값들(909a, 910a)을 활용하여 상기 '4 x 4' DC 변환 블록(921)의 나머지 부분들(933, 934)을 생성하게 된다. 즉, 상기 '4 x 4' DC 변환 블록(921)의 나머지 부분들(933, 934)을 생성함에 있어서, 필요한 DC값이 8개임에 반해 존재하는 DC값은 2개(909a, 910a)뿐이므로 나머지 6개의 DC값은 전술한 'DCp'값으로 결정하게 된다. 관련하여, 상기 6개의 DCp값은 예를 들어 기 존재하는 DC값들(909a, 910a)의 평균값으로 결정할 수 있다(941). 단, 이는 하나의 예에 불과하고, DCp값을 평균값이 아닌 중간값, 최소값, 최대값 등과 같이 다양한 방식으로 결정할 수도 있다. 이에 대해서는 도 10에서 더욱 상세히 설명할 예정이다. 또한, 6개의 DCp값을 동일한 값이 아닌 서로 상이한 값으로 결정하는 것도 가능하다.
관련하여, 전술한 바와 같이 2개의 DC값(909a, 910a) 및 6개의 DCp값을 이용하여 상기 '4 x 4' DC 변환 블록(921)을 생성함에 있어서, 상기 블록(921)내에서 기존 DC값(909a, 910a)의 위치는 원 매크로 블록(900)에서의 상기 DC값의 위치로부터 결정될 수 있다. 예를 들어, '8 x 8' 서브 블록(909, 910)의 위치는 매크로 블록(900)의 우측 상단 및 좌측 하단에 각각 위치함으로, 상기 해당 DC값들(909a, 910a)의 위치도, 상기 '4 x 4' DC 변환 블록(921)내의 우측 상단부분(933)내에서 우측 상단 위치 및 좌측 하단부분(934)내에서 좌측 하단 위치로 각각 결정할 수 있다. 다음으로, 각 부분 (933, 934)내에서 상기 DC값(909a, 910a)을 제외한 나머지 위치는 DCp값으로 생성하게 된다.
도 10은 전술한 DCp 값을 결정하는 다양한 방식을 예를 들어 수식으로 도시한 것이다. 관련하여, 도 10 (a)는 DCp값을 '8 x 8' 크기의 서브 블록의 DC값들의 평균값으로 결정하는 방식을 수식으로 도시한 것이다. 즉, 전술한 도 8(b) 및 도 9(b)에서 예를 들어 적용한 방식과 동일하다.
또한, 도 10 (b)는 DCp값을 '8 x 8' 크기의 서브 블록의 DC값을 그대로 복사(duplication)하여 결정하는 방식을 수식으로 도시한 것이다. 예를 들어, 상기 도 10 (b)를 도 9(b)의 예에 적용하면, 전술한 '4 x 4' DC 변환 블록(921)내의 우측 상단부분(933)내에 적용되는 3개의 DCp값들은 모두 해당 부분(933)내의 존재 DC값(909a, 즉, DC[1][0][0])과 동일한 값으로 결정할 수 있다. 마찬가지로, 전술한 '4 x 4' DC 변환 블록(921)내의 좌측 하단부분(934)내에 적용되는 3개의 DCp값들은 모두 해당 부분(934)내의 존재 DC값(910a, 즉, DC[2][0][0])과 동일한 값으로 결정할 수 있다.
또한, 도 10 (c)는 DCp값을 '16 x 16' 매크로 블록내에 존재하는 모든 DC값들의 평균값으로 결정하는 방식을 수식으로 도시한 것이다. 예를 들어, 상기 도 10 (c)를 도 9(b)의 예에 적용하면, 전술한 '4 x 4' DC 변환 블록(921)내의 Dcp값을 결정함에 있어서, 기 존재하는 DC값들(도 9(b)에서는 예를 들어 총 10개 DC값이 존재)의 평균값으로 결정할 수 있다. 수식에서 'N'값은 존재하는 DC값 개수(number)를 의미하며, 도 9(b)의 예에서는 'N=10' 이 된다.
또한, 도 10 (d)는 DCp값을 '16 x 16' 매크로 블록내에 존재하는 모든 DC값들의 평균값으로 결정하되, '8 x 8' 크기 DC값에는 가중치를 두는 방식을 수식으로 도시한 것이다. 예를 들어, 상기 도 10 (d)를 도 9(b)의 예에 적용하면, 전술한 '4 x 4' DC 변환 블록(921)내의 DCp값을 결정함에 있어서, 기 존재하는 DC값들 중, '4 x 4' 블록 크기의 DCT 변환으로 부터 생성된 DC값들(예를 들어, 931, 932 영역내에 존재하는 DC값들)에는 가중치가 없지만, '8 x 8' 블록 크기의 DCT 변환으로 부터 생성된 DC값들 (예를 들어, 909a, 910a)은 가중치를 '4'로 하여 계산 하는 방식이다. 상기 식에 의할 경우, 최종 나누어 지는 전체 갯수는 '16'으로 하여야 할 것이다.
도 11은 본 발명의 또 다른 실시예에 의한 DC 변환 방식의 일예를 도시한 것이다. 도 11의 실시예는 '16 x 16' 크기의 매크로 블록(1100)내에 스킵 모드(skip mode)에 의해 스킵된 서브 블록(1113, skipped sub-block)이 존재하는 경우에 관한 것이다. 즉, 예를 들어, 도 11 (a)에 의하면, 상기 '16 x 16' 크기의 매크로 블록(1100)내에 DCT 변환이 수행된 '4 x 4' 서브 블록들(1101 ~ 1112)이 총 12개 존재하고, 또한 스킵된 '8 x 8' 크기의 서브 블록(1113)이 1개 존재함을 알 수 있다.
도 11 (b)는 상기 도 11 (a)와 같이 부호화된 매크로 블록(1100)에 대해 DC변환을 수행하는 일실시예로서, 1개의 '4 x 4' DC 변환 블록(1121)을 생성하는 방법을 도시한 것이다. 즉, 예를 들어, 도 11 (a)의 서브 블록중 '4 x 4' 크기를 가지는, 1101, 1102, 1103, 1104 블록에 의해 생성된 각 DC값으로 상기 '4 x 4' DC 변환 블록(1121)의 좌측 상단 부분(1131)을 생성하고, 또한, 도 11 (a)의 서브 블록중 '4 x 4' 크기를 가지는, 1105, 1106, 1107, 1108 블록에 의해 생성된 각 DC값으로 상기 '4 x 4' DC 변환 블록(1121)의 좌측 하단 부분(1132)을 생성하고, 또한, 도 11 (a)의 서브 블록중 '4 x 4' 크기를 가지는, 1109, 1110, 1111, 1112 블록에 의해 생성된 각 DC값으로 상기 '4 x 4' DC 변환 블록(1121)의 우측 하단 부분(1133)을 생성하게 된다. 나머지 상기 '4 x 4' DC 변환 블록(1121)의 우측 상단 부분(1134)은 전술한 바와 같이 DCp값으로 대체하여 생성하게 된다. 예를 들어, 상기 DCp값을 생성하는 방식으로, 전술한 도 10 (c) 방식과 같이, 현재 매크로 블록(1100)내에 존재하는 모든 DC값의 평균값으로 구하는 방식(1141)으로 결정할 수 있다.
도 12는 전술한 도 11의 실시에에서, 상기 DCp값을 결정함에 있어, 상이한 DCp값을 적용하는 경우(1210)를 도시한 것이다. 즉, 예를 들어, 도 11 (b)와 같이 일률적으로 동일한 DCp값을 적용하는 것이 아니고, 각 DCp 위치의 특성에 맞게 상이하게 적용하는 것이 가능하다. 예를 들어, 'DCp1'은 '4 x 4' DC 변환 블록(1121)의 좌측 상단 부분(1131)에 존재하는 4개의 DC값의 평균값으로 결정하고, 또한, 'DCp3'은 '4 x 4' DC 변환 블록(1121)의 좌측 하단 부분(1132)에 존재하는 4개의 DC값의 평균값으로 결정하고, 또한, 'DCp4'는 '4 x 4' DC 변환 블록(1121)의 우측 하단 부분(1133)에 존재하는 4개의 DC값의 평균값으로 결정하고, 마지막 'DCp2'는 상기 구해진 DCp1, DCp3, Dcp4의 평균값으로 결정할 수 있다. 또한, 전술한 도 10의 다양한 방식들 중 어느 하나를 적용하여 각각의 DCp값을 결정하는 것도 가능하며, 이는 영상의 특성을 고려하여 적응적으로 선택할 수 있다.
도 13 ~ 14는 본 발명의 또 다른 실시예에 의한 부호화 방법의 흐름도를 도시한 것이다. 특히, 도 13은 디렉션 변환(DT: Directional Transform)의 일종인 'MDDT'(Mode Dependent Directional Transform) 변환 방식에 적용되는 최적의 커널 인덱스(kernel index)값을 결정하는 방법을 흐름도로 도시한 것이고, 도 14는 상기 결정된 커널 인덱스(kernel index)를 엔트로피 인코딩하는 방법을 흐름도로 도시한 것이다.
관련하여, 상기 MDDT 변환 방식은 특히 인트라 예측(intra prediction)시 발생되는 레지듀얼(residual)을 부호화 변환하는 방법에 적용 가능하다. 예를 들어, 상기 인트라 예측(intra prediction)을 위한 인트라 예측 모드(intra prediction mode) 갯수가 'k'인 경우 (예를 들어, H.264/AVC 는 22개의 인트라 예측 모드가 존재), 상기 MDDT 변환 방식은 상기 개별 인트라 예측 모드에 적용되는 트랜스폼 매트릭스(transform matrices)를 독립적으로 정의해 둔 다음, 이를 적용하여 부호화 변환을 수행하게 된다. 이는 입력 영상이 단순히 수직, 수평으로의 경계선(edge) 특징을 가지지 않고, 대각선, 포물선, 원형 등과 같이 다양한 경계선(edge)을 가지는 경우에 더욱 용이하게 입력 영상을 부호화 할 수 있는 장점을 가기게 된다.
상기 MDDT를 적용함에 있어, 커널 인덱스(kernel index) 값을 별도 정의하게 된다. 상기 커널 인덱스(kernel index) 값은 상기 MDDT에 적용되는 트랜스폼 메트릭스(transform matrices) 수치를 조정하여, 넌-제로(non-zero) 고주파 영역 성분의 발생 빈도를 조절할 수 있는 기능을 수행한다. 결국 커널 인덱스(kernel index) 값에 따라 MDDT 변환 적용시 부호화 효율(bit-rates) 및 열화(distortion) 정도에 차이가 발생되어 진다.
즉, 본 발명의 실시예는 상기 전술한 커널 인덱스(kernel index) 값을 고정된 값으로 설정하지 않고, 최적의 커널 인덱스(kernel index) 값을 결정하는 것을 특징으로 한다. 또한, 상기 결정된 커널 인덱스(kernel index) 값을 엔트로피 인코딩하는 것을 특징으로 한다.
즉, 복수의 예측 모드중 MDDT 적용을 통한 최적의 예측 모드(k)를 선택하고, 아울러 상기 최적 예측 모드(k)내에 적용되는 최적의 커널 인덱스(kernel index i) 값을 결정한 후, 상기 결정된 최적의 예측 모드(k) 및 최적의 커널 인덱스(kernel index i) 값을 엔트로피 코딩하여 비트스트림에 포함시켜 전송하게 된다. 상기 비트스트림을 수신한 복호화기는 엔트로피 디코딩을 통해 상기 최적의 예측 모드(k) 및 최적의 커널 인덱스(kernel index i) 값을 복원하고, 이미 프로그램되어 저장된 MDDT-트랜스폼 매트릭스를 적용하여 MDDT 변환된 블록을 복원할 수 있게 된다.
이를 구체적으로 도 13 및 도 14를 참조하여 설명하면 다음과 같다. 우선, 특정 예측 모드(k)에 의해 레지듀얼(residual) 값을 생성하게 된다(S101, S102). 상기 S102 단계에 의해 생성된 레지듀얼(residual) 값에 대해 RD-코스트(RD-cost; Rate-Distortion cost)를 구하는 프로세스(S1031)를 활용하여 최적의 커널 인덱스값을 결정하는 단계(S103)을 수행하게 된다. 즉, 상기 S103 단계는 상기 특정 예측 모드(k)에서의 최적의 커널 인덱스값을 결정하는 프로세스를 의미하고, 모든 예측 모드에 각각 동일한 방식으로 S103 단계를 수행하여, 각 예측 모드별 최적의 커널 인덱스값을 결정할 수 있게 된다.
상기 S103 단계를 구체적으로 설명하면, 우선, 복수의 커널 인덱스값들중 특정 커널 인덱스값 'i'에 대해 전술한 S1031 단계를 적용하여 RD-코스트('rdcost')를 구하고, 상기 구해진 'rdcost'값을 이전까지 구해진 최소 RD-코스트값(이를 'min_rdcost_i'라 한다)과 비교한다(S1032).
만약, 상기 S1032 비교 결과, 새로운 'rdcost'값이 기존의 'min_rdcost_i'보다 더 작은 값을 가지게 되면, 상기 'rdcost'값을 새로운 'min_rdcost_i'로 설정하고(S1033), 상기 S1031, S1032, S1033 단계는 모든 커널 인덱스값을 모두 적용할 때 까지 반복된다. 또한, 만약 S1032 단계의 비교 결과, 새로운 'rdcost'값이 기존의 'min_rdcost_i'보다 더 큰 값을 가지게 되면, 기존의 'min_rdcost_i'을 변경하지 않고, 인덱스값을 다음 인덱스값으로 변경하여(S1034) 새로운 커널 인덱스값을 적용하게 된다. 이후, 전술한 S1031 단계를 적용하여 새로운 커널 인덱스값을 적용한 새로운 RD-코스트('rdcost')를 생성하고, 상기 S1032 단계를 반복하게 된다.
또한, S1035 단계를 통해, 모든 커널 인덱스값에 대해 상기 과정이 완료되었는 지를 확인하고, 만약 모든 커널 인덱스값에 대해 적용이 완료되지 않았다면, 인덱스값을 변경하여(S1034) 새로운 커널 인덱스값을 생성한 후, 전술한 S1031 단계에서 새로운 커널 인덱스값을 적용한 새로운 RD-코스트('rdcost')를 생성하는 과정을 반복하게 된다.
또한, 만약 상기 S1035 단계에서 모든 커널 인덱스값에 대해 적용이 완료되었다면, 상기 S1033 단계에 저장된 최소 RD-코스트값('min_rdcost_i')을 가지는 커널 인덱스값(i)을 해당 예측 모드(k)에서의 최적 커널 인덱스값으로 결정하고, 상기 결정된 커널 인덱스값과 대응하는 상기 최소 RD-코스트값('min_rdcost_i')을 다음 예측 모드에서의 값들과 비교하게 된다(S104).
상기 S104 단계는, S103 단계에서 결정된 특정 예측 모드에서 최적 커널 인덱스값을 적용한 새로운 최소 RD-코스트값('min_rdcost_i')을, 기존의 다른 예측 모드에서 발생한 기존 최소 RD-코스트값(이를 'min_rdcost'라 한다)과 비교하는 단계이다. 만약, 상기 S104 단계의 비교 결과, 새로운 'min_rdcost_i'값이 기존의 'min_rdcost'보다 더 작은 값을 가지게 되면, 상기 'min_rdcost_i'값을 새로운 'min_rdcost'로 설정한다(S105). 상기 S103 단계는 모든 예측 모드에 대해 모두 적용할 때 까지 반복된다. 반면, 만약 S104 단계의 비교 결과, 새로운 'min_rdcost_i'값이 기존의 'min_rdcost'보다 더 큰 값을 가지게 되면, 기존의 'min_rdcost'을 변경하지 않고, 다음 예측 모드로 변경하여(S107) 상기 단계 S101, S102, S103 단계를 반복하게 된다.
즉, 예를 들어, S106 단계를 통해, 모든 예측 모드에 대해 적용이 완료되었는 지를 확인하고, 만약 모든 예측 모드에 대해 적용이 완료되지 않았다면, 예측 모드를 변경하여(S107) 상기 단계 S101, S102, S103 단계를 반복하게 된다. 또한, 만약 상기 S106 단계에서 만약 모든 예측 모드에 대해 적용이 완료되었다면, 최종적으로 결정된 예측 모드 'k' (prediction mode k)와 해당 모드내의 커널 인덱스값 'i' (kernel index i)를 각각 엔트로피 인코딩 하게 된다(S108)
상기 도 13의 각 단계는 설명의 편의를 위해 제시한 일예로서, 다양한 응용 프로세스를 가질 수 있음을 자명하다 할 것이다. 즉, 본 발명은 도 13의 흐름도에만 한정되는 것은 아니다.
도 14는 상기 S108 단계에서, 특히 커널 인덱스값을 엔트로피 코딩하는 방법을 흐흠도로 도시한 것이다.
우선, 가장 빈도수가 높은 인덱스(MPI; Most probable Index, 이하 'MPI'라고 한다)를 결정한다(S201). 예를 들어, 해당 부호화 블록의 인트라 예측 모드를 상기 MPI로 설정할 수 있다. 이후, 엔트로피 코딩될 커널 인덱스값이 상기 MPI와 동일한지 여부를 비교하고(S202), 상기 S202 단계에 의한 비교 결과, 엔트로피 코딩될 커널 인덱스값이 상기 MPI와 동일하면 해당 커널 인덱스값은 '1'로 엔트로피 코딩한다(S203). 또한, 만약 상기 S202 단계에 의한 비교 결과, 엔트로피 코딩될 커널 인덱스값이 상기 MPI와 상이하면 해당 커널 인덱스값은 '0'으로 설정하고(S204), 후속하는 나머지 단계들을 수행한다.
단계 S205는 커널 인덱스값과 MPI 값의 차이를 확인하는 단계이다. 따라서, 만약 커널 인덱스값이 MPI 값보다 작으면 커널 인덱스값의 변형없이 그대로 엔트로피 코딩을 수행한다(S207). 단, 만약 커널 인덱스값이 MPI 값보다 크면 커널 인덱스값에서 '1'만큼 감산한 다음(S206) 엔트로피 코딩을 수행하게 된다(S207).
전술한 바와 같이, 상기 엔트로피 코딩된 비트스트림을 수신한 복호화기는 엔트로피 디코딩을 통해 상기 최적의 예측 모드(k) 및 최적의 커널 인덱스(kernel index i) 값을 복원하고, 이를 활용하여 MDDT 변환된 블록을 복원할 수 있게 된다.
본 발명에 적용되는 영상 부호화 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 본 발명이 적용되는 부호화 방법에 의해 생성된 비트스트림은 컴퓨터가 읽을 수 있는 기록 매체에 저장되거나, 유/무선 통신망을 이용해 전송될 수 있다.
본 발명은 효율적인 영상 부호화를 위한 인코더 장치 및 디코더 장치에 적용 가능하다. 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술 사상과 아래에 기재될 특허청구범위의 균등 범위 내에서 다양한 수정 및 변형이 가능할 것이다.

Claims (2)

  1. 입력 신호를 소정 크기의 블록으로 분할하여 블록 부호화 변환을 수행하는 블록 부호화 단계와,
    상기 블록 부호화 변환이후 생성된 DC값에 대한 DC변환 과정을 수행하는 DC변환 단계를 더 포함하되, 상기 DC변환 단계는 DC변환 블록의 크기를 결정하고, 상기 결정된 DC변환 블록내에 필요한 갯수의 가상의 DC값을 생성하여, DC변환 과정을 수행하는 것을 특징으로 하는 비디오 신호 처리 방법.
  2. 입력 신호로부터 DC변환 과정에 사용된 가상의 DC값에 대한 정보를 획득하는 단계와,
    상기 획득한 정보로부터 역DC변환 과정을 수행하는 것을 특징으로 하는 비디오 처리방법.
PCT/KR2011/000893 2010-02-10 2011-02-10 비디오 신호 처리 방법 및 장치 WO2011099789A2 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US30327710P 2010-02-10 2010-02-10
US61/303,277 2010-02-10
US34647810P 2010-05-20 2010-05-20
US61/346,478 2010-05-20

Publications (2)

Publication Number Publication Date
WO2011099789A2 true WO2011099789A2 (ko) 2011-08-18
WO2011099789A3 WO2011099789A3 (ko) 2011-12-22

Family

ID=44368311

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/000893 WO2011099789A2 (ko) 2010-02-10 2011-02-10 비디오 신호 처리 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2011099789A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017057953A1 (ko) * 2015-09-30 2017-04-06 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
US20180249179A1 (en) * 2017-02-28 2018-08-30 Google Inc. Transform Kernel Selection and Entropy Coding
US12047606B2 (en) 2022-07-18 2024-07-23 Google Llc Transform kernel selection and entropy coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0750835A (ja) * 1993-08-06 1995-02-21 Sharp Corp 画像符号化装置
KR19990036018A (ko) * 1996-05-28 1999-05-25 모리시타 요이찌 화상예측 부호화장치와 방법, 화상예측 복호화장치와 방법, 및 기록매체
KR20010053286A (ko) * 1998-07-03 2001-06-25 오사토 유키오 화상부호/복호방법 및 그 프로그램을 기록한 기록매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0750835A (ja) * 1993-08-06 1995-02-21 Sharp Corp 画像符号化装置
KR19990036018A (ko) * 1996-05-28 1999-05-25 모리시타 요이찌 화상예측 부호화장치와 방법, 화상예측 복호화장치와 방법, 및 기록매체
KR20010053286A (ko) * 1998-07-03 2001-06-25 오사토 유키오 화상부호/복호방법 및 그 프로그램을 기록한 기록매체

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017057953A1 (ko) * 2015-09-30 2017-04-06 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
KR20180048739A (ko) * 2015-09-30 2018-05-10 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
US10674146B2 (en) 2015-09-30 2020-06-02 Lg Electronics Inc. Method and device for coding residual signal in video coding system
KR102644185B1 (ko) 2015-09-30 2024-03-06 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
US20180249179A1 (en) * 2017-02-28 2018-08-30 Google Inc. Transform Kernel Selection and Entropy Coding
WO2018160231A1 (en) * 2017-02-28 2018-09-07 Google Llc Transform kernel selection and entropy coding
US11405645B2 (en) 2017-02-28 2022-08-02 Google Llc Transform kernel selection and entropy coding
US12047606B2 (en) 2022-07-18 2024-07-23 Google Llc Transform kernel selection and entropy coding

Also Published As

Publication number Publication date
WO2011099789A3 (ko) 2011-12-22

Similar Documents

Publication Publication Date Title
WO2010087620A2 (ko) 보간 필터를 적응적으로 사용하여 영상을 부호화 및 복호화하는 방법 및 장치
WO2009113791A2 (ko) 영상 부호화장치 및 영상 복호화장치
WO2009157665A2 (ko) 블록 변환을 이용한 인트라 예측 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2011133002A2 (ko) 영상 부호화 장치 및 방법
WO2011087271A2 (ko) 비디오 신호의 처리 방법 및 장치
WO2012134085A2 (ko) 인트라 예측 모드에서의 영상 복호화 방법
WO2012057528A2 (ko) 적응적 화면내 예측 부호화 및 복호화 방법
WO2013062197A1 (ko) 영상 복호화 장치
WO2011126277A2 (en) Low complexity entropy-encoding/decoding method and apparatus
WO2012018198A2 (ko) 예측 블록 생성 장치
WO2013062196A1 (ko) 영상 복호화 장치
WO2011145836A2 (ko) 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
WO2011004986A2 (ko) 영상 부호화/복호화 방법 및 장치
WO2013062195A1 (ko) 인트라 예측 모드 복호화 방법 및 장치
WO2012005551A2 (ko) 변환 계수의 엔트로피 부호화/복호화 방법 및 장치
WO2012018197A2 (ko) 인트라 예측 복호화 장치
WO2011145819A2 (ko) 영상 부호화/복호화 장치 및 방법
WO2011034382A2 (en) Method and apparatus for decoding image based on skip mode
WO2013002549A2 (ko) 영상 부호화/복호화 방법 및 장치
WO2011139099A2 (ko) 비디오 신호의 처리 방법 및 장치
WO2011019234A2 (en) Method and apparatus for encoding and decoding image by using large transformation unit
WO2013002587A2 (ko) 적응적인 양자화 파라미터 차분값을 이용한 영상의 부호화 및 복호화 방법과 장치
WO2012144830A2 (en) Methods and apparatuses for encoding and decoding image using adaptive filtering
WO2009110754A2 (en) Method and apparatus for encoding and decoding image
WO2011126285A2 (ko) 부호화 모드에 대한 정보를 부호화, 복호화하는 방법 및 장치

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: 11742481

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11742481

Country of ref document: EP

Kind code of ref document: A2