WO2013055040A1 - 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치 - Google Patents
인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치 Download PDFInfo
- Publication number
- WO2013055040A1 WO2013055040A1 PCT/KR2012/007306 KR2012007306W WO2013055040A1 WO 2013055040 A1 WO2013055040 A1 WO 2013055040A1 KR 2012007306 W KR2012007306 W KR 2012007306W WO 2013055040 A1 WO2013055040 A1 WO 2013055040A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transform
- intra prediction
- prediction mode
- target block
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates to image information compression, and more particularly, to a method and apparatus for performing transformation and inverse transformation on processing target image information according to an intra prediction mode.
- High efficiency image compression techniques can be used to solve these problems caused by high resolution and high quality image data.
- An inter-screen prediction technique for predicting pixel values included in the current picture from a picture before or after the current picture using an image compression technique an intra prediction technique for predicting pixel values included in a current picture using pixel information in the current picture
- An object of the present invention is to provide a method and apparatus for improving compression efficiency and reducing complexity in image information compression technology.
- An object of the present invention is to provide a method and apparatus for determining a transform and inverse transform type suitable for an image to be compressed.
- An object of the present invention is to provide a method and apparatus for determining an appropriate transform and inverse transform type in consideration of a prediction mode for a target image.
- An object of the present invention is to provide a method and apparatus for performing optimal transform and inverse transform determined according to a prediction mode for a target image.
- An embodiment of the present invention is a video information conversion method, comprising: determining an application order between a first transform and a second transform to be applied to a conversion target block, and the first transform and the first transform according to the application order. And applying two transforms, and the order of applying the plurality of transforms may be determined according to an intra prediction mode of the transform target block.
- the first transform and the second transform are different with respect to the intra prediction mode
- the first transform and the second transform are applied in a direction different from the direction of the intra prediction mode among the first transform and the second transform.
- the transformation can be applied first.
- the conversion target block may be a luminance block of 4x4 pixels.
- Another embodiment of the present invention is a video information inverse transform method, comprising: determining an application order between a first inverse transform and a second inverse transform applied to an inverse transform target block and the first inverse transform and the first in accordance with the application order; And applying an inverse transform.
- the application order may be determined according to an intra prediction mode of the inverse transform target block.
- Another embodiment of the present invention is a video information inverse transform method, comprising: determining an application order between a first inverse transform and a second inverse transform to be applied to an inverse transform target block; And applying a second inverse transform, wherein the application order is applied in a reverse order of a transform order in which a first transform corresponding to the first inverse transform and a second transform corresponding to the second inverse transform are applied to the inverse transform target block;
- the order of transformation may be determined according to the direction of the intra prediction mode of the inverse transform target block.
- the transform order may be an order of first applying a transform having the same direction as the direction of the intra prediction mode among the first transform and the second transform.
- the transform order may be an order of first applying a transform having a direction different from a direction of the intra prediction mode among the first transform and the second transform.
- Another embodiment of the present invention is an encoding apparatus, comprising: a predictor for predicting a target block and a transform unit for transforming the target block, wherein the transform unit is performed by the predictor.
- the order of applying the first and second transforms to the target block may be determined according to the mode of the intra prediction block.
- an entropy decoding unit which entropy-decodes a received bitstream to obtain information
- an inverse transform unit which performs inverse transform on a target block based on the information
- the target block And a prediction unit configured to perform the prediction, wherein the inverse transform unit may determine an application order of the first and second inverse transforms applied to the target block according to a mode of the intra prediction block applied to the target block.
- the compression efficiency in processing video information, the compression efficiency can be increased and the complexity can be reduced.
- a transform and inverse transform type suitable for an image to be subjected to compression processing can be determined.
- an appropriate transform and inverse transform type may be determined in consideration of a prediction mode related to a target image.
- the optimal transform and the inverse transform determined according to the prediction mode for the target image can be performed.
- FIG. 1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.
- FIG. 2 is a block diagram illustrating an image decoder according to another embodiment of the present invention.
- FIG. 3 is a block diagram schematically illustrating a process of entropy encoding after intra prediction in an encoder.
- FIG. 4 is a block diagram schematically illustrating a process of performing prediction after entropy decoding in a decoder.
- FIG. 5 is a diagram schematically illustrating a quad tree structure regarding recursive partitioning of a coding unit.
- FIG. 6 is a diagram schematically illustrating an intra prediction mode.
- FIG. 7 schematically illustrates a transform type used for each intra prediction mode in the case of intra prediction.
- FIGS. 8 to 15 are diagrams illustrating a method of determining an application order of transform or inverse transform according to an intra prediction mode in an encoder and a decoder, when transforms of different directions are applied to a transform target block in an encoder to which the present invention is applied.
- 16 schematically illustrates a sequence of transforms that may be performed by an encoder and inverse transforms that are performed by a decoder corresponding thereto.
- 17 is a flowchart schematically illustrating an operation of an encoder in a system to which the present invention is applied.
- FIG. 18 is a flowchart schematically illustrating an operation of a decoder in a system to which the present invention is applied.
- 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.
- FIG. 1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.
- the image encoding apparatus 100 may include a picture splitter 105, a predictor 110, a transformer 115, a quantizer 120, a realigner 125, and an entropy encoder 130. , An inverse quantization unit 135, an inverse transform unit 140, a filter unit 145, and a memory 150.
- each of the components shown in FIG. 1 is independently shown to represent different characteristic functions in the image encoding apparatus, and does not mean that each of the components 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.
- the integrated and separated embodiments of the components are also included in 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.
- the picture dividing unit 105 may divide the input picture into at least one processing unit.
- the processing unit may be a prediction unit, a transform unit (TU), or a coding unit (CU).
- the picture dividing unit 105 divides one picture into a combination of a plurality of coding units, prediction units, and transform units, and sets one coding unit, a prediction unit, and a transformation unit on a predetermined basis (e.g., a cost function).
- the picture can be encoded by selecting a combination. For example, one picture may be divided into a plurality of coding units. In order to split a coding unit in a picture, a recursive tree structure such as a quad tree structure may be used.
- a coding unit split into another coding unit using one image or a maximum size coding unit as a root may be split with as many child nodes as the number of split coding units. Coding units that are no longer split according to certain restrictions become leaf nodes. That is, when only square division is considered for one coding unit, one coding unit may be split into at most four other coding units. Details of the division will be described later.
- the coding unit may mean not only a coding unit but also a decoding unit.
- the prediction unit 110 may include an inter prediction unit for performing inter prediction and an intra prediction unit for performing intra prediction. Whether to use inter-prediction or intra-prediction for the prediction unit may be determined, and specific information (eg, intra-prediction mode, motion vector, reference picture, etc.) according to each prediction method may be determined. In this case, the processing unit in which the prediction is performed may differ from the processing unit in which the prediction method and the details are determined. For example, the method of prediction and the prediction mode are determined in the prediction unit, and the performance of the prediction may be performed in the transform unit. The residual value (residual block) between the generated prediction block and the original block may be input to the transformer 115.
- specific information eg, intra-prediction mode, motion vector, reference picture, etc.
- prediction mode information and motion vector information used for prediction may be encoded by the entropy coding unit 130 together with the residual value and transmitted to the decoder.
- the original block may be encoded as it is and transmitted to the decoder without generating the prediction block through the prediction unit 110.
- the inter prediction unit may predict the prediction unit based on the information of at least one of the previous picture or the subsequent picture of the current picture.
- the inter prediction unit may include a reference picture interpolator, a motion predictor, and a motion compensator.
- the reference picture interpolation unit may receive reference picture information from the memory 150 and generate pixel information of an integer pixel or less in the reference picture.
- a DCT based 8-tap interpolation filter having different filter coefficients may be used to generate pixel information of integer pixels or less in units of 1/4 pixels.
- a DCT-based interpolation filter having different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/8 pixels.
- the motion predictor may perform motion prediction based on the reference picture interpolated by the reference picture interpolator.
- various methods such as a full search-based block matching algorithm (FBMA), a three step search (TSS), and a new three-step search algorithm (NTS) may be used.
- the motion vector may have a motion vector value in units of 1/2 or 1/4 pixels based on the interpolated pixels.
- the motion prediction unit may predict the current prediction unit by using a different motion prediction method.
- various methods such as a skip method, a merge method, and an advanced motion vector prediction (AMVP) method, may be used.
- AMVP advanced motion vector prediction
- the intra prediction unit may generate the prediction unit based on reference pixel information around the current block, which is pixel information in the current picture. If the neighboring block of the current prediction unit is a block that performs inter prediction, and the reference pixel is a pixel that performs inter prediction, the intra prediction is performed around the reference pixel included in the block that performed the inter prediction. It can be used in place of the reference pixel information of the block. That is, when the reference pixel is not available, the unavailable reference pixel information may be replaced with at least one reference pixel among the available reference pixels.
- a prediction mode may have a directional prediction mode using reference pixel information according to a prediction direction, and a non-directional mode using no directional information when performing prediction.
- the mode for predicting the luminance information and the mode for predicting the color difference information may be different, and the intra prediction mode information or the predicted luminance signal information predicting the luminance information may be used to predict the color difference information.
- the intra prediction screen is based on the pixels present on the left side, the pixels present on the upper left side, and the pixels present on the upper side.
- the intra prediction may be performed using a reference pixel based on the transform unit.
- intra prediction using NxN division may be used only for the minimum coding unit.
- the intra prediction method may generate a prediction block after applying an adaptive intra smoothing (AIS) filter to a reference pixel according to a prediction mode.
- AIS adaptive intra smoothing
- the type of AIS filter applied to the reference pixel may be different.
- the intra prediction mode of the current prediction unit may be predicted from the intra prediction mode of the prediction unit existing around the current prediction unit.
- the prediction mode of the current prediction unit is predicted by using the mode information predicted from the neighboring prediction unit
- the intra prediction modes of the current prediction unit and the neighboring prediction unit are the same, the current prediction unit is determined by using predetermined flag information. Information that the prediction modes of the neighboring prediction units are the same may be transmitted. If the prediction modes of the current prediction unit and the neighboring prediction unit are different, entropy encoding may be performed to encode prediction mode information of the current block.
- a residual block including residual information that is a difference between the prediction unit that performed the prediction based on the prediction unit generated by the prediction unit 110 and the original block of the prediction unit may be generated.
- the generated residual block may be input to the converter 115.
- the transform unit 115 converts the residual block including residual information of the original block and the prediction unit generated by the prediction unit 110 such as a discrete cosine transform (DCT) or a discrete sine transform (DST). Can be converted using Whether to apply DCT or DST to transform the residual block may be determined based on intra prediction mode information of the prediction unit used to generate the residual block.
- DCT discrete cosine transform
- DST discrete sine transform
- the quantization unit 120 may quantize the values converted by the transformer 115 into the frequency domain.
- the quantization coefficient may change depending on the block or the importance of the image.
- the value calculated by the quantization unit 120 may be provided to the inverse quantization unit 135 and the reordering unit 125.
- the reordering unit 125 may reorder coefficient values with respect to the quantized residual value.
- the reordering unit 125 may change the two-dimensional block shape coefficients into a one-dimensional vector form through a coefficient scanning method. For example, the reordering unit 125 may scan from a DC coefficient to a coefficient of a high frequency region by using a Zig-Zag Scan method and change it into a one-dimensional vector form.
- a vertical scan method for scanning two-dimensional block shape coefficients in a column direction not a zig-zag scan method, and a horizontal scan method for scanning two-dimensional block shape coefficients in a row direction will be used.
- the entropy encoder 130 may perform entropy encoding based on the values calculated by the reordering unit 125. Entropy encoding may use various encoding methods such as, for example, Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
- Entropy encoding may use various encoding methods such as, for example, Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
- the entropy encoding unit 130 receives residual coefficient coefficient information, block type information, prediction mode information, division unit information, prediction unit information, transmission unit information, and motion vector information of the coding unit from the reordering unit 125 and the prediction unit 110.
- Various information such as reference frame information, interpolation information of a block, and filtering information may be encoded.
- the entropy encoder 130 may entropy encode coefficient values of the coding unit input from the reordering unit 125.
- the entropy encoder 130 may store a table for performing entropy coding, such as a variable length coding table, and perform entropy coding using the stored variable length coding table.
- some codewords included in a table can be changed by using a counter or a direct swapping method to change the codeword allocation for the code number of the corresponding information. have. For example, for the top few code numbers assigned a small number of code words in a table that maps code numbers to code words, use a counter to add the shortest length to the code number with the highest number of occurrences. You can adaptively change the mapping order of the tables that map code words to code numbers so that you can assign code words. When the number of counts counted in the counter reaches a predetermined threshold, counting may be performed again by dividing the count count recorded in the counter in half.
- the code number in the table that does not perform counting is the bit assigned to the code number by converting the code number and digit immediately above when the information corresponding to the code number is generated by using the direct swapping method. Entropy coding can be performed with a small number.
- the inverse quantizer 135 and the inverse transformer 140 inverse quantize the quantized values in the quantizer 120 and inversely transform the transformed values in the transformer 115.
- the residual value generated by the inverse quantizer 135 and the inverse transform unit 140 is combined with the prediction unit predicted through the motion estimator, the motion compensator, and the intra predictor included in the predictor 110 to restore the block. Create a Reconstructed Block).
- the filter unit 145 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
- ALF adaptive loop filter
- the deblocking filter 145 may remove block distortion caused by boundaries between blocks in the reconstructed picture. In order to determine whether to perform deblocking, it may be determined whether to apply a deblocking filter to the current block based on the pixels included in several columns or rows included in the block. When the deblocking filter is applied to the block, a strong filter or a weak filter may be applied according to the required deblocking filtering strength. In addition, in applying the deblocking filter, horizontal filtering and vertical filtering may be performed in parallel when vertical filtering and horizontal filtering are performed.
- the offset correction unit may correct the offset with respect to the original image on a pixel-by-pixel basis for the deblocking image.
- the pixels included in the image are divided into a predetermined number of areas, and then, the area to be offset is determined and the offset is applied to the corresponding area or the offset in consideration of the edge information of each pixel. You can use this method.
- the adaptive loop filter may perform filtering based on a value obtained by comparing the filtered reconstructed image with the original image. After dividing the pixels included in the image into a predetermined group, one filter to be applied to the group may be determined and filtering may be performed for each group. For information related to whether to apply the ALF, the luminance signal may be transmitted for each coding unit (CU), and the size and coefficient of the ALF to be applied may vary according to each block.
- the ALF may have various forms, and the number of coefficients included in the filter may also vary.
- Such filtering related information (filter coefficient information, ALF On / Off information, filter type information) of the ALF may be included in a predetermined parameter set in the bitstream and transmitted.
- the memory 150 may store the reconstructed block or picture calculated by the filter unit 145, and the stored reconstructed block or picture may be provided to the predictor 110 when performing inter prediction.
- FIG. 2 is a block diagram illustrating an image decoder according to another embodiment of the present invention.
- the image decoder 200 includes an entropy decoder 210, a reordering unit 215, an inverse quantizer 220, an inverse transformer 225, a predictor 230, and a filter 235.
- the memory 240 may be included.
- the input bitstream may be decoded by a procedure opposite to that of the image encoder.
- the entropy decoder 210 may perform entropy decoding in a procedure opposite to that of the entropy encoding performed by the entropy encoder of the image encoder.
- the VLC table used to perform entropy encoding in the image encoder may be implemented in the same variable length encoding table in the entropy decoder to perform entropy decoding.
- Information for generating the prediction block among the information decoded by the entropy decoder 210 may be provided to the predictor 230, and a residual value obtained by entropy decoding by the entropy decoder may be input to the reordering unit 215.
- the entropy decoder 210 may change a code word assignment table using a counter or direct swapping method, and may perform entropy decoding based on the changed code word assignment table. have.
- Information related to intra prediction and inter prediction may be decoded. As described above, when there is a predetermined constraint in performing the intra prediction and the inter prediction in the image encoder, entropy decoding is performed based on the constraint to provide information related to the intra prediction and the inter prediction for the current block. I can receive it.
- the reordering unit 215 may reorder the entropy decoded bitstream by the entropy decoding unit 210 based on a method of rearranging the bitstream. Coefficients expressed in the form of a one-dimensional vector may be reconstructed by reconstructing the coefficients in a two-dimensional block form.
- the reordering unit may be realigned by receiving information related to coefficient scanning performed by the encoder and performing reverse scanning based on the scanning order performed by the encoder.
- the inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoder and the coefficient values of the rearranged block.
- the inverse transformer 225 may perform inverse DCT and inverse DST on the DCT and the DST performed by the transformer with respect to the quantization result performed by the image encoder. Inverse transformation may be performed based on a transmission unit determined by the image encoder.
- the DCT and the DST may be selectively performed by the transform unit of the image encoder according to a plurality of pieces of information, such as a prediction method, a size and a prediction direction of the current block, and the inverse transform unit 225 of the image decoder may be performed by the transform unit of the image encoder.
- the inverse transformation may be performed based on the converted transformation information.
- the transformation may be performed based on the coding unit rather than the transformation unit.
- the prediction unit 230 may generate the prediction block based on the prediction block generation related information provided by the entropy decoder 210 and previously decoded block or picture information provided by the memory 240.
- the size of the prediction unit and the size of the transform unit are the same when performing the intra prediction in the same manner as the operation in the image encoder, the pixels present on the left side of the prediction unit, the pixels present on the upper left side, In-picture prediction is performed on the prediction unit based on the pixels present, but when the prediction unit has a different size from the size of the transform unit when performing the intra-picture prediction, the intra-screen is used by using the reference pixel based on the transform unit. You can make predictions.
- intra prediction using NxN division may be used only for the minimum coding unit.
- the prediction unit 230 may include a prediction unit determiner, an inter prediction unit, and an intra prediction unit.
- the prediction unit determiner receives various information such as prediction unit information input from the entropy decoder, prediction mode information of the intra prediction method, and motion prediction related information of the inter prediction method, and distinguishes the prediction unit from the current coding unit. It is possible to determine whether to perform this inter prediction or intra prediction.
- the inter prediction unit uses information required for inter prediction of the current prediction unit provided by the image encoder to the current prediction unit based on information included in at least one of a previous picture or a subsequent picture of the current picture including the current prediction unit. Inter prediction can be performed.
- the intra prediction unit may generate a prediction block based on pixel information in the current picture.
- the intra prediction may be performed based on the intra prediction mode information of the prediction unit provided by the image encoder.
- the intra prediction unit may include an AIS filter, a reference pixel interpolator, and a DC filter.
- the AIS filter is a part of filtering the reference pixel of the current block, and may determine and apply the filter according to the prediction mode of the current prediction unit.
- AIS filtering may be performed on the reference pixel of the current block by using the prediction mode and the AIS filter information of the prediction unit provided by the image encoder. If the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.
- the reference pixel interpolator may generate reference pixels having an integer value or less by interpolating the reference pixels. If the prediction mode of the current prediction unit is a prediction mode for generating a prediction block without interpolating the reference pixel, the reference pixel may not be interpolated.
- the DC filter may generate the prediction block through filtering when the prediction mode of the current block is the DC mode.
- the reconstructed block or picture may be provided to the filter unit 235.
- the filter unit 235 may include a deblocking filter, an offset correction unit, and an ALF.
- the deblocking filter related information provided by the image encoder may be provided and the deblocking filtering of the corresponding block may be performed in the image decoder.
- vertical deblocking filtering and horizontal deblocking filtering may be performed, but at least one of vertical deblocking and horizontal deblocking may be performed in an overlapping portion.
- Vertical deblocking filtering or horizontal deblocking filtering which has not been previously performed, may be performed at a portion where vertical deblocking filtering and horizontal deblocking filtering overlap. Through this deblocking filtering process, parallel processing of deblocking filtering is possible.
- the offset correction unit may perform offset correction on the reconstructed image based on the type of offset correction and offset value information applied to the image during encoding.
- the ALF may perform filtering based on a value obtained by comparing the restored image with the original image after performing the filtering.
- the ALF may be applied to the coding unit based on the ALF application information, the ALF coefficient information, and the like provided from the encoder. Such ALF information may be provided included in a specific parameter set.
- the memory 240 may store the reconstructed picture or block to use as a reference picture or reference block and provide the reconstructed picture to the output unit.
- 3 is a block diagram schematically illustrating a process of entropy encoding after intra prediction in an encoder. 3 illustrates an example in which intra prediction is applied to a prediction target block.
- a transform is performed on the residuals of the prediction block and the target block.
- Transform coefficients (coeffiecients) are quantized again, scanned, aligned, and subjected to entropy encoding.
- the entropy-encoded information is transmitted to the decoder in a bit stream. Details of each process are as described above with reference to FIG. 1.
- 4 is a block diagram schematically illustrating a process of performing prediction after entropy decoding in a decoder. 4 illustrates an example in which intra prediction is applied to a prediction target block.
- the decoder performs entropy decoding on information of a bitstream received from an encoder.
- the quantized transform coefficients are decoded, rearranged by scanning, inverse quantized, and then inverse transformed. Based on the inverse transformed information, the decoder may perform intra prediction to output pixels of the decoding object block. Details of each process are as described above with reference to FIG. 2.
- one frame may be divided into a plurality of blocks, for example, coding units, which are basic units of compression.
- the maximum size of the coding unit may be determined to be a predetermined size, for example 64x64 pixels. It may also be variably determined by the user or the like.
- the coding unit may be subdivided into a plurality of coding units according to the compression performance.
- a coding unit may be split into coding units having a smaller size, and a coding unit having a minimum size that is no longer split may be determined.
- the coding unit may be divided into prediction units (PUs) for prediction, and prediction units of various sizes may be used for inter prediction and intra prediction. In addition, the size of the prediction unit may vary according to intra prediction or inter prediction.
- the prediction unit may also be divided into a transform unit (TU) for transform.
- TU transform unit
- a 64x64 maximum size coding unit (LCU, CU1) may be divided into four coding units when the split flag (split_flag) indicating division is 1. For each coding unit of the maximum size coding unit 510 divided into four coding units CU20 to CU24, it may be indicated whether or not to split through the split flag.
- the coding unit CU12 may be further divided into four coding units CU20 to CU23.
- the depth of the split coding unit CU12 is 2.
- splitting may be split into coding units 0 to 3 having a smaller size at a lower depth.
- a prediction unit 580 it may be split into a prediction unit 580.
- the prediction unit may have a size equal to or smaller than the coding unit.
- the information about the size or shape of each prediction unit may be transmitted to the decoder through syntax specifying the size of the corresponding unit, not a flag indicating the division.
- the size of the prediction unit may be specific to each type, for example, the prediction unit of NxN may be defined only when 8x8.
- the transform unit 590 may be determined based on the prediction unit.
- NxhN and / or hNxN means half
- SDIP short distance intra prediction
- prediction mode to use may be determined for each prediction unit, and prediction using the determined prediction mode may be performed for each transform unit.
- the information about the coding unit may be classified into luma (lumina) data, which is a luminance component, and chroma (chrominance) data, which is a color difference component.
- Table 1 classifies the number of intra prediction modes used for intra prediction for luma data by the size of a transform unit (log2TrafoSize). Table 1 illustrates, as an example, the case where a square conversion unit of size up to 64 ⁇ 64 pixel size to 4 ⁇ 4 is used.
- the intra prediction mode is determined according to the direction in which the intra prediction is performed.
- Table 2 is a table in which numbers corresponding to intra prediction modes and intra prediction modes (mode numbers) are mapped.
- Table 3 is a table in which numbers corresponding to intra prediction modes and intra prediction modes (mode numbers) are mapped. Unlike Table 2, in Table 3, the intra prediction modes are arranged with the planar mode first.
- an intra prediction mode number corresponding to the intra prediction mode may be assigned according to the priority of the prediction mode.
- an intra prediction mode number is used based on Table 2 for convenience, and the intra prediction mode may be mapped to a mode number corresponding to Table 3.
- Intra_DC mode (prediction mode number 2) in Table 2 can be converted to Intra_DC mode (prediction mode number 3) in Table 3
- Intra_Angular (prediction mode number 3-33) in Table 2 can be converted to Intra_DC in Table 3.
- FIG. 6 is a diagram schematically illustrating an intra prediction mode. 6, except that the luma mode is applied to the DC mode, the planar mode, and the chroma, it can be seen that intra prediction modes of 0, 1, and 3 to 33 are defined according to directions. As described with reference to Tables 2 and 3, the number of intra prediction modes depends on how to prioritize the intra planner mode (Intra_Planar). In the present invention, as described above, the intra prediction mode defined according to Table 2 is used, and FIG. 6 is also illustrated using the intra mode number according to Table 2. According to Table 3, the intra prediction mode may also be shown. In this case, the difference from FIG. 6 may be changed as described above in the number of the intra prediction modes according to Table 3.
- DCT Densine Transform
- IDCT inverse descrete cosine transform
- DCT Block of samples Transformation matrix for Is performed using Coefficient block Is generated as in Equation 1.
- the transform method and the inverse transform method may also be applied differently according to the size of the target block, for example, the size of the transform unit.
- the size of the transform unit for example, the size of the transform unit.
- a destructive sine transform (DST) and an inverse destroy sine transform (IDST) may be applied.
- DST Block of samples Transformation matrix for Is performed using Coefficient block Is generated as in Equation 3.
- Table 4 shows an example of a transform type used for each intra prediction mode in the case of intra prediction.
- 0 represents DCT and 1 represents DST.
- the encoder applies one-dimensional DCT in the horizontal direction, and then applies one-dimensional DCT in the vertical direction with respect to the resultant value.
- the decoder receiving the transformed data first applies one-dimensional IDCT in the vertical direction, and then applies one-dimensional IDCT in the horizontal direction to obtain information necessary for intra prediction in response to the processing of the encoder. .
- transformation matrix of one-dimensional DCT Is the transformation matrix of Equation 5
- one-dimensional DST Is the same as Equation 6.
- the order of application is a problem when different transformations are applied in the horizontal direction and the vertical direction.
- Equation 1 When the same transformation is applied as in Equation 1, the same result can be obtained regardless of the application order. For example, when DCT is applied in both the horizontal and vertical directions, the same result is obtained when the horizontal direction is converted first and then the vertical direction is converted to the vertical direction and then the horizontal direction is converted. have. Also, when DST is applied in both the horizontal direction and the vertical direction, the same result is obtained when the horizontal direction is converted first and then the vertical direction is converted to the vertical direction and then the horizontal direction is converted. have.
- Equations 5 and 6 when different transformations are applied to the horizontal direction and the vertical direction as shown in Equations 5 and 6, different result values may be generated according to the application order. For example, when DCT is applied in the horizontal direction and DST is applied in the vertical direction, or when DST is applied in the horizontal direction and DCT is applied in the vertical direction, the result value may vary depending on which conversion is performed first. .
- the performance of compression coding can be improved by specifying the order of transform when different transform types are applied to each direction.
- a vertical transform may be applied first to a symmetrically vertical intra prediction mode.
- the horizontal transformation may be applied first to the symmetrical intra prediction mode.
- FIG. 7 illustrates a transformation type used for each intra prediction mode in the case of intra prediction.
- the transform for the transform unit may be performed symmetrically with respect to the direction of the intra prediction mode. For example, if the horizontal direction transformation is applied to the horizontal prediction mode first, the vertical mode may be applied to the vertical prediction mode first. Referring to FIG. 7, it can be seen that the vertical / horizontal transformation may be symmetrically applied to the intra prediction mode in the vertical direction and the intra prediction mode in the horizontal direction.
- FIG. 7 is shown according to Table 2, and when the number of intra prediction modes is determined according to Table 3, there may be a change as described above with respect to the number shown in FIG.
- the order of the transforms can be adaptively determined according to the direction of the intra prediction mode of the corresponding transform unit. That is, the application order of the horizontal direction transformation and the vertical direction transformation may be determined according to the intra prediction mode for the corresponding transform unit.
- a method of first applying a transform in the same direction as the direction of the intra prediction mode may be considered.
- the vertical transformation may be applied first, and then the horizontal transformation may be applied to the result value.
- the prediction in the vertical direction includes not only an accurate prediction intra prediction mode (intra prediction mode 0) but also an intra prediction mode in which a different transform is applied as an intra prediction mode in the top direction of the target block. do.
- an intra prediction mode (0, 22, 12, 23, 5, 24, 13, 25, 6) located to the right of the vertical mode (VER mode) may be referred to as a vertical prediction mode. .
- the horizontal transformation may be applied first, and then the vertical transformation may be applied to the result value.
- the prediction in the horizontal direction is not only an intra prediction mode (intra prediction mode 1) in the exact horizontal direction, but also an intra prediction mode in the left direction of the target block. Include.
- intra prediction modes 1, 30, 16, 31, 8, 32, 17, 33, and 9 positioned below the horizontal mode may be referred to as horizontal prediction modes. .
- FIG. 8 is a flowchart schematically illustrating an example of a method of determining an application order of transforms according to an intra prediction mode when different transforms are applied to a transform target block in an encoder to which the present invention is applied.
- FIG. 8 an example in which transformation in the same direction as that of the intra prediction mode applied to the target block is first applied will be described.
- the encoder determines whether the transform applied to the transform target block in the horizontal direction and the type of the transform applied in the vertical direction are the same (S810).
- the type of transformation is any one of DST and DCT, and the same type of transformation may be applied to the vertical direction and the horizontal direction, and different types of transformation may be applied to the vertical direction and the horizontal direction. Whether or not the transform type applied to the transform target block in the horizontal direction is the same as the type applied to the vertical direction may be determined based on, for example, the size of the transform target block and / or the applied intra prediction mode.
- the encoder may determine whether the angle of the intra prediction mode applied to the target block is in the vertical direction (S820).
- the intra prediction mode in the vertical direction is an intra prediction mode in the top direction of the target block and includes an intra prediction mode to which different transformations are applied.
- the encoder When the direction of the intra prediction mode applied to the target block is the vertical direction, the encoder performs a transformation in the vertical direction with respect to the target block by first applying the transform type in the vertical direction (S830). For example, when the transform type in the vertical direction with respect to the target block is DCT, DCT is applied first in the vertical direction, and when the transform type in the vertical direction with respect to the target block is DST, DST is applied first in the vertical direction. Therefore, a transform in the same direction as that of the intra prediction block is applied first.
- the horizontal direction transformation is performed on the target block by using the horizontal transformation type (S840).
- the DST may be applied in the horizontal direction to the result value in which the DCT is applied in the vertical direction.
- the DCT may be applied in the horizontal direction to the result value of applying the DST in the vertical direction.
- the horizontal conversion may be applied first (S850).
- the encoder When the horizontal transform type and the vertical transform type are different, but the direction of the intra prediction mode applied to the target block is the horizontal direction, the encoder first applies the horizontal transform type to transform the horizontal direction with respect to the target block. Perform (S850). Therefore, a transform in the same direction as that of the intra prediction mode is applied first.
- the intra prediction mode in the horizontal direction is an intra prediction mode in the left direction of the target block and includes an intra prediction mode to which different transformations are applied.
- the encoder first applies the DCT in the horizontal direction when the transform type in the horizontal direction for the target block is DCT, and applies the DST in the horizontal direction when the transform type in the horizontal direction for the target block is DST.
- the encoder performs a transformation in the vertical direction with respect to the target block by using the transformation type in the vertical direction (S860). For example, if the transform type in the horizontal direction for the target block is DCT, the DST may be applied in the vertical direction to the result value of applying the DCT in the horizontal direction. If the transform type in the horizontal direction for the target block is DST, the DCT in the vertical direction may be applied to the result value of applying the DST in the horizontal direction.
- the encoder is described herein as performing the transformation, a specific module in the encoder, for example, the transformation unit, may perform the transformation operation as described above.
- the intra prediction mode applied to the target block is determined in the vertical direction, and the subsequent steps are performed.
- the present invention is not limited thereto, and the determination result determines whether the intra prediction mode applied to the target block is in the horizontal direction. You can also apply the following steps.
- FIG. 9 is a flowchart schematically illustrating an example of a method of determining an application order of an inverse transform according to an intra prediction mode when a different inverse transform is applied to an inverse transform target block in a decoder to which the present invention is applied.
- 9 illustrates an example of an inverse transform method performed by a decoder when the encoder first applies a transform in the same direction as the direction of the intra prediction mode applied to the target block.
- the decoder determines whether the same transform type is applied to the transform target block in the horizontal direction and the vertical direction (S910).
- the type of transformation may be either DST or DCT. Whether the type of the transform applied to the transform target block and the transform applied in the vertical direction is the same may be determined based on, for example, the size of the transform target block and / or the applied intra prediction mode.
- the decoder may determine whether the angle of the intra prediction mode applied to the target block is in the vertical direction (S920).
- the decoder When the direction of the intra prediction mode applied to the target block is the vertical direction, the decoder performs the horizontal inverse transform on the target block by first applying the inverse transform type in the horizontal direction (S930). In the decoder, as described later, an inverse transform corresponding to a transform applied in the encoder may be applied in the reverse order of the transform order applied in the encoder.
- the decoder performs an inverse transform in the vertical direction on the target block by using the inverse transform type in the vertical direction (S940). For example, if the inverse transform type in the horizontal direction for the target block is IDCT, the IDST may be applied in the vertical direction to a result value in which IDCT is applied in the horizontal direction. If the inverse transform type in the horizontal direction for the target block is IDST, IDCT may be applied in a vertical direction to a result value in which IDST is applied in the horizontal direction.
- the decoder performs an inverse transformation in the vertical direction on the target block by first applying an inverse transform type in the vertical direction (S950).
- the decoder performs an inverse transform in the horizontal direction on the target block using the inverse transform type in the horizontal direction (S960). For example, if the inverse transform type in the vertical direction for the target block is IDCT, IDST may be applied in the horizontal direction to a result value in which IDCT is applied in the vertical direction. If the inverse transform type in the vertical direction for the target block is IDST, IDCT may be applied in the horizontal direction to a result value in which IDST is applied in the vertical direction.
- the inverse transformation in the vertical direction may be performed first (S950), and the inverse transformation in the horizontal direction may be subsequently performed (S960).
- a specific module in the decoder for example, an inverse transform unit, may perform the inverse transform operation as described above.
- the intra prediction mode applied to the target block is determined in the vertical direction, and the subsequent steps are performed.
- the present invention is not limited thereto, and the determination result determines whether the intra prediction mode applied to the target block is in the horizontal direction. You can also apply the following steps.
- the decoder determines the intra prediction mode applied to the target block to determine the application order of the inverse transform.
- the decoder may apply an inverse transform corresponding to a transform performed by the encoder based on information on a transform obtained as a result of entropy decoding in the reverse order in which the transform is applied in the encoder.
- information about the order of transformation may be signaled from the encoder to the decoder.
- the 8 and 9 first determine whether the transform type in the horizontal direction and the transform type in the vertical direction are different, and then determine the direction of the intra prediction mode. In contrast, the direction of the intra prediction mode is determined first, and the transform type in the horizontal direction It may be determined whether the transformation type in the vertical direction is different.
- FIG. 10 is a flowchart schematically illustrating another example of a method of determining an application order of transforms according to an intra prediction mode when different transforms are applied to a transform target block in an encoder to which the present invention is applied.
- the direction of the intra prediction mode is first determined.
- the encoder may first determine whether the angle of the intra prediction mode applied to the target block is in the vertical direction (S1010). When the direction of the intra prediction mode applied to the target block is the vertical direction, the encoder may determine whether the horizontal direction transform type and the horizontal direction transform type applied to the target block are different (S1020).
- the encoder first applies the vertical transform type to perform the vertical transform on the target block (S1030). Therefore, the transform type in the same direction as that of the intra prediction mode for the target block is applied first. Subsequently, the horizontal direction transformation is performed on the target block by using the horizontal transformation type (S1040).
- the horizontal transform type is first applied (S1050), and then the vertical transform type is applied (S1060). Therefore, the transform mode in the same direction as that of the intra prediction mode is applied first.
- the horizontal conversion type is first applied (S1050), and then the vertical conversion type is applied (S1060), similarly to the general conversion method. .
- FIG. 11 is a flowchart schematically illustrating another example of a method of determining an application order of an inverse transform according to an intra prediction mode when a different inverse transform is applied to an inverse transform target block in a decoder to which the present invention is applied.
- the angle of the intra prediction mode is first determined.
- the decoder may first determine whether the angle of the intra prediction mode applied to the target block is in the vertical direction (S1110). When the angle of the intra prediction mode applied to the target block is the vertical direction, the decoder determines whether the same transform type is applied to the target block in the horizontal direction and the vertical direction (S1120).
- the decoder When different types of transforms are applied in the horizontal direction and the vertical direction, the decoder performs the horizontal inverse transform on the target block by first applying the inverse transform type in the horizontal direction (S1130). Subsequently, the decoder performs an inverse transform in the vertical direction with respect to the target block using the inverse transform type in the vertical direction (S1140). Therefore, the decoder can apply an inverse transform in the reverse order of the transform order applied by the encoder.
- the decoder when the direction of the intra prediction mode applied to the target block is the horizontal direction, the decoder first applies the inverse transform type in the vertical direction (S1150), and then applies the inverse transform type in the horizontal direction (S1160). Accordingly, the decoder can apply the inverse transform in the reverse order of the transform order applied by the encoder. [0076] In addition, although the angle of the intra prediction mode is vertical, even if the horizontal transform type and the vertical transform type applied to the target block are the same. The decoder may first apply an inverse transform type in the vertical direction (S1150) and then apply an inverse transform type in the horizontal direction (S1160).
- a method of first applying a transform in a direction different from the direction of the intra prediction mode may be considered.
- the horizontal transformation may be applied first, and then the vertical transformation may be applied to the result value.
- the horizontal transformation may be applied first, and then the vertical transformation may be applied to the result value.
- FIG. 12 is a flowchart schematically illustrating another example of a method of determining an application order of a transform according to an intra prediction mode when a different transform is applied to a transform target block in an encoder to which the present invention is applied.
- FIG. 12 an example in which transformation of a direction different from a direction of an intra prediction mode applied to a target block is first applied will be described.
- the encoder determines whether the transform applied to the transform target block in the horizontal direction and the type of the transform applied in the vertical direction are the same (S1210).
- the type of transformation is any one of DST and DCT, and the same type of transformation may be applied to the vertical direction and the horizontal direction, and different types of transformation may be applied to the vertical direction and the horizontal direction. Whether or not the transform type applied to the transform target block in the horizontal direction is the same as the type applied to the vertical direction may be determined based on, for example, the size of the transform target block and / or the applied intra prediction mode.
- the encoder may determine whether the angle of the intra prediction mode applied to the target block is in the horizontal direction (S1220).
- the encoder first applies the vertical transformation type to perform the vertical transformation on the target block (S1230). Therefore, a transform in a direction different from that of the intra prediction mode is applied first.
- the horizontal direction transformation is performed on the target block by using the horizontal transformation type (S1240).
- the encoder performs a horizontal transformation on the target block by first applying the horizontal transformation type (S1250). Therefore, a transform in a direction different from that of the intra prediction mode is applied first.
- the encoder performs a transformation in the vertical direction with respect to the target block by using the transformation type in the vertical direction (S1060).
- the horizontal transformation may be performed first (S1250) and the vertical transformation may be performed (S1260). .
- the encoder is described herein as performing the transformation, a specific module in the encoder, for example, the transformation unit, may perform the transformation operation as described above.
- the intra prediction mode applied to the target block is determined in the horizontal direction, and the subsequent steps are performed.
- the present invention is not limited thereto, and the determination result determines whether the intra prediction mode applied to the target block is in the vertical direction. You can also apply the following steps.
- FIG. 13 is a flowchart schematically illustrating another example of a method of determining an application order of an inverse transform according to an intra prediction mode when an inverse transform of different directions is applied to an inverse transform target block in a decoder to which the present invention is applied.
- FIG. 13 illustrates an example of an inverse transform method performed by a decoder when a encoder first applies a transform in a direction different from a direction of an intra prediction mode applied to a target block.
- the decoder determines whether the same transform type is applied to the transform target block in the horizontal direction and the vertical direction (S1310).
- the type of transformation may be either DST or DCT. Whether the type of the transform applied to the transform target block and the transform applied in the vertical direction is the same may be determined based on, for example, the size of the transform target block and / or the applied intra prediction mode.
- the decoder may determine whether the angle of the intra prediction mode applied to the target block is in the horizontal direction (S1320).
- the decoder When the direction of the intra prediction mode applied to the target block is the horizontal direction, the decoder performs a horizontal inverse transform on the target block by first applying the inverse transform type in the horizontal direction (S1330). In the decoder, as described later, an inverse transform corresponding to a transform applied in the encoder may be applied in the reverse order of the transform order applied in the encoder.
- the decoder performs an inverse transform in the vertical direction with respect to the target block using the inverse transform type in the vertical direction (S1340). For example, if the inverse transform type in the horizontal direction for the target block is IDCT, the IDST may be applied in the vertical direction to a result value in which IDCT is applied in the horizontal direction. If the inverse transform type in the horizontal direction for the target block is IDST, IDCT may be applied in a vertical direction to a result value in which IDST is applied in the horizontal direction.
- the decoder performs an inverse transform of the vertical direction on the target block by first applying an inverse transform type in the vertical direction (S1350).
- the decoder performs an inverse transform in the horizontal direction on the target block by using the inverse transform type in the horizontal direction (S1360). For example, if the inverse transform type in the vertical direction for the target block is IDCT, IDST may be applied in the horizontal direction to a result value in which IDCT is applied in the vertical direction. If the inverse transform type in the vertical direction for the target block is IDST, IDCT may be applied in the horizontal direction to a result value in which IDST is applied in the vertical direction.
- the inverse transform in the horizontal direction may be performed after the inverse transform in the vertical direction (S1350) (S1360).
- a specific module in the decoder for example, an inverse transform unit, may perform the inverse transform operation as described above.
- the decoder determines the intra prediction mode applied to the target block to determine the application order of the inverse transform.
- the decoder may apply an inverse transform corresponding to a transform performed by the encoder based on information on a transform obtained as a result of entropy decoding in the reverse order in which the transform is applied in the encoder.
- information about the order of transformation may be signaled from the encoder to the decoder.
- the direction of the intra prediction mode is determined first.
- the direction of the intra prediction mode is determined first, and the transform type in the horizontal direction It may be determined whether the transformation type in the vertical direction is different.
- FIG. 14 is a flowchart schematically illustrating another example of a method of determining an application order of a transform according to an intra prediction mode when a different transform is applied to a transform target block in an encoder to which the present invention is applied.
- the direction of the intra prediction mode is first determined.
- the encoder may first determine whether the angle of the intra prediction mode applied to the target block is in a horizontal direction (S1410). When the direction of the intra prediction mode applied to the target block is the horizontal direction, the encoder may determine whether the horizontal direction transform type and the horizontal direction transform type applied to the target block are different (S1420).
- the encoder first applies the vertical transform type to perform the vertical transform on the target block (S1430). Therefore, a transform type in a direction different from that of the intra prediction mode for the target block is applied first. Subsequently, the horizontal direction transformation is performed on the target block by using the horizontal transformation type (S1440).
- the angle of the intra prediction mode is vertical (S1410)
- the horizontal transform type is first applied (S1450), and then the vertical transform type is applied (S1460). Therefore, a transform mode in a direction different from that of the intra prediction mode may be applied first.
- the horizontal conversion type is applied first (S1450), and then the vertical conversion type is applied (S1460) in the same manner as the general conversion method. .
- FIG. 15 is a flowchart schematically illustrating another example of a method of determining an application order of an inverse transform according to an intra prediction mode when a different inverse transform is applied to an inverse transform target block in a decoder to which the present invention is applied.
- the angle of the intra prediction mode is first determined.
- the decoder may first determine whether the angle of the intra prediction mode applied to the target block is in the horizontal direction (S1510). When the angle of the intra prediction mode applied to the target block is in the horizontal direction, the decoder determines whether the same transform type is applied to the target block in the horizontal direction and the vertical direction (S1520).
- the decoder When different types of transforms are applied in the horizontal direction and the vertical direction, the decoder performs the horizontal inverse transform on the target block by first applying the inverse transform type in the horizontal direction (S1530). Subsequently, the decoder performs an inverse transform in the vertical direction with respect to the target block using the inverse transform type in the vertical direction (S1540). Therefore, the decoder can apply an inverse transform in the reverse order of the transform order applied by the encoder.
- the decoder first applies the inverse transform type in the vertical direction (S1550) and then applies the inverse transform type in the horizontal direction (S1160). Therefore, the decoder can apply an inverse transform in the reverse order of the transform order applied by the encoder.
- the decoder first applies the vertical inverse transform type (S1550) and inverts the horizontal direction.
- the type can then be applied (S1560).
- the encoder may perform any one of the six transformation order combinations. 9, 11, 13, and 15, the decoder may perform any one of six inverse transform order combinations.
- 16 schematically illustrates a sequence of transforms that may be performed by an encoder and inverse transforms that are performed by a decoder corresponding thereto.
- the decoder applies an inverse transform corresponding to each transform in the reverse order of the transform order applied by the encoder.
- the decoder 1610a may apply the IDCT in the horizontal direction and then apply the IDST in the vertical direction.
- the decoder 1610b may apply the IDCT in the vertical direction and then apply the IDST in the horizontal direction.
- the decoder 1610c may apply the IDST in the vertical direction and then apply the IDCT in the horizontal direction.
- the decoder 1610d may apply the IDST in the horizontal direction and then apply the IDCT in the vertical direction.
- the decoder 1610e may apply IDCT in the horizontal direction after applying the IDCT in the vertical direction.
- the decoder 1610f may apply the IDST in the vertical direction and then apply the IDST in the horizontal direction.
- any one of four transform cases may be applied.
- Table 5 schematically illustrates a transform type according to an intra prediction mode based on FIG. 7.
- the heterogeneous transformation represents a case where the transformation type (either one of the CTT and the DST) applied in the horizontal direction is different from the transformation type applied in the vertical direction, and the homogeneous transformation is in the vertical direction from the transformation type applied in the horizontal direction. Indicates that the conversion types applied are the same.
- the intra prediction modes 1, 8, 9, 16, 17, 30, 31, 32, and 33 are different from the horizontal transform type horizTrType and the vertical transform type verTrType. Horizontal intra prediction modes.
- the application order of the horizontal direction transform type and the vertical direction transform type for the target block may be determined in consideration of the intra prediction mode for the target block according to the present invention.
- Table 6 schematically illustrates an application order of an intra prediction mode and a transform type in an embodiment of first applying a transform type in the same direction as the direction of the intra prediction mode for the target block.
- the intra prediction mode is the vertical mode (0, 5, 6, 12, 13, 22, 23). , 24, 25)
- the encoder applies the DST in the vertical direction and then applies the DCT in the horizontal direction according to FIG. 16 (a), and the decoder applies the IDCT in the horizontal direction and then in the vertical direction. IDST can be applied.
- the intra prediction mode is one of the horizontal modes (1, 8, 9, 16, 17, 30, 31, 32, 33)
- DCT is applied in the vertical direction
- IDCT is applied in the vertical direction
- IDST is applied in the horizontal direction.
- the transform type is not differently applied in the vertical direction and the horizontal direction.
- the horizontal transform may be applied first according to the conventional application order. have. Accordingly, as shown in FIG. 16E, the encoder may apply DCT in the horizontal direction and then apply the DCT in the vertical direction, and the decoder may apply IDCT in the vertical direction and then apply IDCT in the horizontal direction.
- the vertical direction and the horizontal direction may be applied first. Accordingly, as shown in FIG. 16 (f), the encoder may apply the DST in the horizontal direction and then apply the DST in the vertical direction, and the decoder may apply the IDST in the vertical direction and then apply the IDST in the horizontal direction.
- Table 7 schematically shows an application order of an intra prediction mode and a transform type in an embodiment in which a transform type in a direction different from a direction of the intra prediction mode for a target block is applied first.
- the intra prediction mode is the mode in the vertical direction (0, 5, 6, 12, 13, 22, 23). , 24, 25)
- the encoder applies the DST in the horizontal direction and then applies the DCT in the vertical direction
- the decoder applies the IDCT in the vertical direction in the horizontal direction according to FIG. 16 (c). IDST can be applied.
- the intra prediction mode is any one of the horizontal modes (1, 8, 9, 16, 17, 30, 31, 32, 33)
- DST is applied in the horizontal direction
- IDST is applied in the vertical direction after IDST is applied in the horizontal direction.
- the transform type is not differently applied in the vertical direction and the horizontal direction.
- the horizontal transform may be applied first according to the conventional application order. have. Accordingly, as shown in FIG. 16E, the encoder may apply DCT in the horizontal direction and then apply the DCT in the vertical direction, and the decoder may apply IDCT in the vertical direction and then apply IDCT in the horizontal direction.
- the vertical direction and the horizontal direction may be applied first. Accordingly, as shown in FIG. 16 (f), the encoder may apply the DST in the horizontal direction and then apply the DST in the vertical direction, and the decoder may apply the IDST in the vertical direction and then apply the IDST in the horizontal direction.
- any one of the different transforms in the vertical direction and the horizontal direction is first applied according to the direction of the intra prediction mode.
- the specific transformation type may be applied first regardless of the direction. That is, the DCT may be first applied in a predetermined direction in the vertical direction and the horizontal direction, and then DST may be applied in the other direction.
- the DST may be first applied in a predetermined direction among the vertical direction and the horizontal direction, and then DCT may be applied in the other direction.
- 17 is a flowchart schematically illustrating an operation of an encoder in a system to which the present invention is applied.
- the encoder determines a prediction mode applied to a target block (S1710).
- the encoder may determine which intra prediction mode is applied to the target block and determine the direction of the prediction mode.
- the encoder performs a transform based on a prediction mode on the target block (S1720).
- the encoder may determine which direction transformation type to apply first according to the direction of the intra prediction mode when the transformation type of the vertical and horizontal directions applied to the target block is different. Whether the transform type in the vertical and horizontal directions is different may be determined in consideration of the size of the target transform unit together with the intra prediction mode. For example, in the case of a 4X4 transform unit, different transform types DCT and DST may be applied to the target block.
- a detailed method of performing the transform according to the prediction mode in the encoder is as described above.
- the encoder performs each step, but a specific module in the encoder, for example, the converter, may perform each step as described above.
- FIG. 18 is a flowchart schematically illustrating an operation of a decoder in a system to which the present invention is applied.
- the decoder determines a prediction mode applied to the target block (S1810).
- the decoder may determine what is the intra prediction mode applied to the target block and determine the direction of the prediction mode.
- the decoder performs an inverse transform according to the prediction mode on the target block (S1820).
- the decoder may determine which direction inverse transform type to apply first according to the direction of the intra prediction mode. Whether the transform type in the vertical and horizontal directions is different may be determined in consideration of the size of the target transform unit together with the intra prediction mode. For example, in the case of a 4X4 transform unit, different transform types DCT and DST may be applied to the target block.
- the order of transform / inverse transform applied according to the intra prediction mode may be predetermined between the encoder and the decoder. For example, if the decoder performs the inverse transform in the vertical direction first and then the inverse transform in the horizontal direction corresponding to the intra prediction mode, the target block has the horizontal transform performed first and the vertical transform subsequently performed in the encoder. It may be. In addition, if the decoder performs the inverse transform in the horizontal direction first and then the inverse transform in the vertical direction corresponding to the intra prediction mode, the target block may be subjected to the vertical transform and the horizontal transform in the encoder. It may be.
- the decoder may apply the inverse transform corresponding to the transform applied by the encoder in the reverse order of the transform applied by the encoder, in addition to the method of performing the inverse transform according to the intra prediction mode of the target transform unit.
- Information about the prediction mode applied to the target transform unit and / or the transform type applied to the target block transform unit and the application order may be delivered to the decoder on the bitstream.
- a detailed method of performing the transform according to the prediction mode in the decoder is as described above.
- the decoder performs each step, but a specific module in the decoder, for example, an inverse transform unit, may perform each step as described above.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 영상 정보 압축에 관한 것으로서, 본 발명의 일 실시형태는 변환 대상 블록에 적용하는 제1 변환과 제2 변환 사이의 적용 순서를 결정하는 단계 및 상기 적용 순서에 따라서 상기 제1 변환과 상기 제2 변환을 적용하는 단계를 포함하며, 상기 적용 순서는 상기 변환 대상 블록의 인트라 예측 모드에 따라서 결정되는 영상 정보 변환 방법이다. 본 발명에 의하면, 대상 영상에 관한 예측 모드를 고려하여 적절한 변환 및 역변환 타입을 결정할 수 있다.
Description
본 발명은 영상 정보 압축에 관한 기술로서, 더 구체적으로는 인트라 예측 모드에 따라서 처리 대상 영상 정보에 변환 및 역변환을 수행하는 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
본 발명의 기술적 과제는 영상 정보 압축 기술에 있어서, 압축 효율을 높이고 복잡도를 감소시키는 방법 및 장치를 제공하는데 있다.
본 발명의 기술적 과제는 압축 처리의 대상이 되는 영상에 적합한 변환 및 역변환 타입을 결정하는 방법 및 장치를 제공하는데 있다.
본 발명의 기술적 과제는 대상 영상에 관한 예측 모드를 고려하여 적절한 변환 및 역변환 타입을 결정하는 방법 및 장치를 제공하는데 있다.
본 발명의 기술적 과제는 대상 영상에 관한 예측 모드에 따라서 결정된 최적의 변환 및 역변환을 수행하는 방법 및 장치를 제공하는데 있다.
(1) 본 발명의 일 실시형태는 영상 정보 변환 방법으로서, 변환 대상 블록에 적용하는 제1 변환과 제2 변환 사이의 적용 순서를 결정하는 단계 및 상기 적용 순서에 따라서 상기 제1 변환과 상기 제2 변환을 적용하는 단계를 포함하며, 상기 적용 순서는 상기 변환 대상 블록의 인트라 예측 모드에 따라서 결정될 수 있다.
(2) (1)에서, 상기 인트라 예측 모드에 대하여 상기 제1 변환과 상기 제2 변환이 상이한 경우에는, 상기 제1 변환과 상기 제2 변환 중 상기 인트라 예측 모드의 방향과 동일한 방향으로 적용되는 변환을 우선 적용할 수 있다.
(3) (1)에서, 상기 인트라 예측 모드에 대하여 상기 제1 변환과 상기 제2 변환이 상이한 경우에는, 상기 제1 변환과 상기 제2 변환 중 상기 인트라 예측 모드의 방향과 상이한 방향으로 적용되는 변환을 우선 적용할 수 있다.
(4) (1)에서, 상기 변환 대상 블록은 4x4 픽셀의 휘도 블록일 수 있다.
(5) 본 발명의 다른 실시형태는 영상 정보 역변환 방법으로서, 역변환 대상 블록에 적용하는 제1 역변환과 제2 역변환 사이의 적용 순서를 결정하는 단계 및 상기 적용 순서에 따라서 상기 제1 역변환과 상기 제2 역변환을 적용하는 단계를 포함하며, 상기 적용 순서는 상기 역변환 대상 블록의 인트라 예측 모드에 따라서 결정될 수 있다.
(6) (5)에서, 상기 인트라 예측 모드에 대하여 상기 제1 역변환과 제2 역변환이 상이한 경우에는, 상기 제1 역변환과 상기 제2 역변환 중 상기 인트라 예측 모드의 방향과 동일한 방향으로 적용되는 역변환을 우선 적용할 수 있다.
(7) (5)에서, 상기 인트라 예측 모드에 대하여 상기 제1 역변환과 제2 역변환이 상이한 경우에는, 상기 제1 역변환과 상기 제2 역변환 중 상기 인트라 예측 모드의 방향과 상이한 방향으로 적용되는 역변환을 우선 적용할 수 있다.
(8) 본 발명의 또 다른 실시형태는 영상 정보 역변환 방법으로서, 역변환 대상 블록에 적용하는 제1 역변환과 제2 역변환 사이의 적용 순서를 결정하는 단계 및 상기 적용 순서에 따라서 상기 제1 역변환과 상기 제2 역변환을 적용하는 단계를 포함하며, 상기 적용 순서는 상기 제1 역변환에 대응하는 제1 변환과 상기 제2 역변환에 대응하는 제2 변환이 상기 역변환 대상 블록에 적용된 변환 순서의 역순으로 적용되고, 상기 변환 순서는 상기 역변환 대상 블록의 인트라 예측 모드의 방향에 따라서 정해질 수 있다.
(9) (8)에서, 상기 변환 순서는 상기 제1 변환과 상기 제2 변환 중에서 상기 인트라 예측 모드의 방향과 동일한 방향을 갖는 변환을 우선 적용하는 순서일 수 있다.
(10) (8)에서, 상기 변환 순서는 상기 제1 변환과 상기 제2 변환 중에서 상기 인트라 예측 모드의 방향과 상이한 방향을 갖는 변환을 우선 적용하는 순서일 수 있다.
(11) 본 발명의 또 다른 실시 형태는 부호화 장치로서, 대상 블록에 대한 예측을 수행하는 예측부 및 상기 대상 블록에 대한 변환을 수행하는 변환부를 포함하며, 상기 변환부는, 상기 예측부에서 수행한 인트라 예측 블록의 모드에 따라서 상기 대상 블록에 적용되는 제1 및 제2 변환의 적용 순서를 결정할 수 있다.
(12) 본 발명의 또 다른 실시 형태는 복호화 장치로서 수신한 비트스트림을 엔트로피 복호화하여 정보를 획득하는 엔트로피 복호화부, 상기 정보를 기반으로 대상 블록에 대한 역변환을 수행하는 역변환부 및 상기 대상 블록에 대한 예측을 수행하는 예측부를 포함하며, 상기 역변환부는, 상기 대상 블록에 적용된 인트라 예측 블록의 모드에 따라서 상기 대상 블록에 적용되는 제1 및 제2 역변환의 적용 순서를 결정할 수 있다.
본 발명에 의하면, 영상 정보를 처리하는데 있어서, 압축 효율을 높이고 복잡도를 감소시킬 수 있다.
본 발명에 의하면, 압축 처리의 대상이 되는 영상에 적합한 변환 및 역변환 타입을 결정할 수 있다.
본 발명에 의하면, 대상 영상에 관한 예측 모드를 고려하여 적절한 변환 및 역변환 타입을 결정할 수 있다.
본 발명에 의하면, 대상 영상에 관한 예측 모드에 따라서 결정된 최적의 변환 및 역변환을 수행할 수 있다.
도 1은 본 발명의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 영상 복호화기를 나타낸 블록도이다.
도 3은 부호화기에서 인트라 예측 후 엔트로피 부호화가 이루어지는 과정을 개략적으로 설명하는 블록도이다.
도 4는 복호화기에서 엔트로피 복호화 후 예측이 이루어지는 과정을 개략적으로 설명하는 블록도이다.
도 5는 부호화 유닛의 재귀적인 분할에 관한 쿼드 트리 구조를 개략적으로 설명하는 도면이다.
도 6은 인트라 예측 모드를 개략적으로 설명하는 도면이다.
도 7은 인트라 예측의 경우에 인트라 예측 모드별로 사용되는 변환 타입을 개략적으로 도시한 것이다.
도 8 내지 도 15는 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 방향의 변환을 적용하는 경우에, 부호화기와 복호화기에서 인트라 예측 모드에 따라서 변환 또는 역변환의 적용 순서를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 16은 부호화기에서 수행할 수 있는 변환과 그에 대응하여 복호화기에서 수행되는 역변환의 순서를 개략적으로 도시한 것이다.
도 17은 본 발명이 적용되는 시스템에서 부호화기의 동작을 개략적으로 설명하는 순서도이다.
도 18은 본 발명이 적용되는 시스템에서 복호화기의 동작을 개략적으로 설명하는 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 픽처 분할부(105), 예측부(110), 변환부(115), 양자화부(120), 재정렬부(125), 엔트로피 부호화부(130), 역양자화부(135), 역변환부(140), 필터부(145) 및 메모리(150)를 포함할 수 있다.
도 1에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 유닛(Prediction Unit)일 수도 있고, 변환 유닛(Transform Unit: TU)일 수도 있으며, 부호화 유닛(Coding Unit: CU)일 수도 있다. 픽처 분할부(105)에서는 하나의 픽처에 대해 복수의 부호화 유닛, 예측 유닛 및 변환 유닛의 조합으로 분할하고 소정의 기준(예를 들어, 비용 함수)으로 하나의 부호화 유닛, 예측 유닛 및 변환 유닛의 조합을 선택하여 픽처를 부호화 할 수 있다. 예를 들어, 하나의 픽처는 복수 개의 부호화 유닛으로 분할될 수 있다. 픽처에서 부호화 유닛을 분할하기 위해서는 쿼드 트리 구조(Quad Tree Structure)와 같은 재귀적인 트리 구조를 사용할 수 있다. 하나의 영상 또는 최대 크기 부호화 유닛을 루트로 하여 다른 부호화 유닛으로 분할되는 부호화 유닛은 분할된 부호화 유닛의 개수만큼의 자식 노드를 가지고 분할될 수 있다. 일정한 제한에 따라 더 이상 분할되지 않는 부호화 유닛은 리프(leaf) 노드가 된다. 즉, 하나의 부호화 유닛에 대하여 정방형 분할만을 고려하는 경우, 하나의 부호화 유닛은 최대 4개의 다른 부호화 유닛으로 분할될 수 있다. 분할에 관한 구체적인 내용은 후술한다.
본 명세서에서는 부호화 유닛은 부호화를 하는 유닛이라는 의미뿐만 아니라 복호화를 하는 유닛을 의미할 수 있다.
예측부(110)는 화면 간 예측을 수행하는 화면 간 예측부와 화면 내 예측을 수행하는 화면 내 예측부를 포함할 수 있다. 예측 유닛에 대해 화면 간 예측을 사용할 것인지 또는 화면 내 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 화면 내 예측 모드, 움직임 벡터, 참조 픽처 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 예측 유닛으로 결정되고, 예측의 수행은 변환 유닛으로 수행될 수도 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(115)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 잔차값과 함께 엔트로피 코딩부(130)에서 부호화되어 복호화기에 전달될 수 있다. 특정한 부호화 모드를 사용할 경우, 예측부(110)를 통해 예측 블록을 생성하지 않고, 원본 블록을 그대로 부호화하여 복호화부에 전송하는 것도 가능하다
화면 간 예측부는 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처의 정보를 기초로 예측 유닛을 예측할 수 있다. 화면 간 예측부는 참조 픽처 보간부, 움직임 예측부, 움직임 보상부가 포함할 수 있다.
참조 픽처 보간부에서는 메모리(150)로부터 참조 픽처 정보를 제공받고 참조 픽처에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
움직임 예측부는 참조 픽처 보간부에 의해 보간된 참조 픽처를 기초로 움직임 예측을 수행할 수 있다. 움직임 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 움직임 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 움직임 벡터값을 가질 수 있다. 움직임 예측부에서는 움직임 예측 방법을 다르게 하여 현재 예측 유닛을 예측할 수 있다. 움직임 예측 방법으로 스킵(Skip) 방법, 머지(Merge) 방법, AMVP(Advanced Motion Vector Prediction)방법 등 다양한 방법이 사용될 수 있다.
화면 내 예측부는 현재 픽처 내의 화소 정보인 현재 블록 주변의 참조 픽셀정보를 기초로 예측 유닛을 생성할 수 있다. 현재 예측 유닛의 주변 블록이 화면 간 예측을 수행한 블록이어서, 참조 픽셀이 화면 간 예측을 수행한 픽셀일 경우, 화면 간 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 화면 내 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
화면 내 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 예측을 수행시 방향성 정보을 사용하지 않는 비 방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드가 상이할 수 있고, 색차 정보를 예측하기 위해 휘도 정보를 예측한 화면 내 예측 모드 정보 또는 예측된 휘도 신호 정보를 활용할 수 있다.
화면 내 예측을 수행시 예측 유닛의 크기와 변환 유닛의 크기가 동일할 경우, 예측 유닛의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 유닛에 대한 화면 내 예측을 수행하지만, 화면 내 예측을 수행시 예측 유닛의 크기와 변환 유닛의 크기가 상이할 경우, 변환 유닛을 기초로 한 참조 픽셀을 이용하여 화면 내 예측을 수행할 수 있다. 또한, 최소 부호화 유닛에 대해서만 NxN 분할을 사용하는 화면 내 예측을 사용할 수 있다.
화면 내 예측 방법은 예측 모드에 따라 참조 화소에 AIS(Adaptive Intra Smoothing) 필터를 적용한 후 예측 블록을 생성할 수 있다. 참조 화소에 적용되는 AIS 필터의 종류는 상이할 수 있다. 화면 내 예측 방법을 수행하기 위해 현재 예측 유닛의 화면 내 예측 모드는 현재 예측 유닛의 주변에 존재하는 예측 유닛의 화면 내 예측 모드로부터 예측할 수 있다. 주변 예측 유닛으로부터 예측된 모드 정보를 이용하여 현재 예측 유닛의 예측 모드를 예측하는 경우, 현재 예측 유닛과 주변 예측 유닛의 화면 내 예측 모드가 동일할 경우, 소정의 플래그 정보를 이용하여 현재 예측 유닛과 주변 예측 유닛의 예측 모드가 동일하다는 정보를 전송할 수 있고, 만약, 현재 예측 유닛과 주변 예측 유닛의 예측 모드가 상이할 경우, 엔트로피 부호화를 수행하여 현재 블록의 예측 모드 정보를 부호화할 수 있다.
또한, 예측부(110)에서 생성된 예측 유닛을 기초로 예측을 수행한 예측 유닛과 예측 유닛의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(115)로 입력될 수 있다. 변환부(115)에서는 원본 블록과 예측부(110)를 통해 생성된 예측 유닛의 잔차값(residual) 정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform) 또는 DST(Discrete Sine Transform)와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지 DST를 적용할지는 잔차 블록을 생성하기 위해 사용된 예측 유닛의 화면 내 예측 모드 정보를 기초로 결정할 수 있다.
양자화부(120)는 변환부(115)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(120)에서 산출된 값은 역양자화부(135)와 재정렬부(125)에 제공될 수 있다.
재정렬부(125)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.
재정렬부(125)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(125)에서는 지그재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 유닛의 크기 및 화면 내 예측 모드에 따라 지그 재그 스캔 방법이 아닌 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔 방법, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔 방법이 사용될 수 있다. 즉, 변환 유닛의 크기 및 화면 내 예측 모드에 따라 지그재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(130)는 재정렬부(125)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
엔트로피 부호화부(130)는 재정렬부(125) 및 예측부(110)로부터 부호화 유닛의 잔차값 계수 정보 및 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, 예측 유닛 정보 및 전송 단위 정보, 움직임 벡터 정보, 참조 프레임 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 부호화할 수 있다.
엔트로피 부호화부(130)에서는 재정렬부(125)에서 입력된 부호화 유닛의 계수값을 엔트로피 부호화할 수 있다.
엔트로피 부호화부(130)에서는 가변 길이 부호화 테이블(Variable Length Coding Table)과 같은 엔트로피 부호화를 수행하기 위한 테이블이 저장될 수 있고 저장된 가변 길이 부호화 테이블을 사용하여 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화를 수행함에 있어서 테이블에 포함된 일부의 코드 워드(Codeword)에 카운터(Counter)를 이용한 방법 또는 직접 변환(Direct Swapping)방법을 사용하여 해당 정보의 코드 번호에 대한 코드 워드 할당을 변화시킬 수 있다. 예를 들어, 코드 번호와 코드 워드를 매핑하는 테이블에서 적은 비트수의 코드 워드가 할당된 상위 몇 개의 코드 번호의 경우, 카운터를 사용해 코드 번호의 합산된 발생 횟수가 가장 많은 코드 번호에 짧은 길이의 코드 워드를 할당할 수 있도록 적응적으로 코드 워드와 코드 번호를 매핑하는 테이블의 매핑 순서를 바꿀 수 있다. 카운터에서 카운팅된 횟수가 소정의 임계값에 이른 경우, 카운터에 기록된 카운팅 횟수를 반으로 나누어 다시 카운팅을 수행할 수 있다.
카운팅을 수행하지 않는 테이블 내의 코드 번호는 직접 변환(Direct Swapping) 방법을 사용하여 코드 번호에 해당하는 정보가 발생할 경우, 바로 위의 코드 번호와 자리를 변환하는 방법을 통해 해당 코드 번호에 할당되는 비트 수를 적게하여 엔트로피 부호화를 수행할 수 있다.
역양자화부(135) 및 역변환부(140)에서는 양자화부(120)에서 양자화된 값들을 역양자화하고 변환부(115)에서 변환된 값들을 역변환한다. 역양자화부(135) 및 역변환부(140)에서 생성된 잔차값(Residual)은 예측부(110)에 포함된 움직임 추정부, 움직임 보상부 및 인트라 예측부를 통해서 예측된 예측 유닛과 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(145)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter) 중 적어도 하나를 포함할 수 있다.
디블록킹 필터(145)는 복원된 픽처에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 디블록킹을 수행할지 여부를 판단하기 위해 블록에 포함된 몇 개의 열 또는 행에 포함된 픽셀을 기초로 현재 블록에 디블록킹 필터 적용할지 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용하는 경우 필요한 디블록킹 필터링 강도에 따라 강한 필터(Strong Filter) 또는 약한 필터(Weak Filter)를 적용할 수 있다. 또한 디블록킹 필터를 적용함에 있어 수직 필터링 및 수평 필터링을 수행시 수평 방향 필터링 및 수직 방향 필터링이 병행 처리되도록 할 수 있다.
오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽처에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
ALF (Adaptive Loop Filter)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 휘도 신호는 부호화 유닛(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF의 크기 및 계수는 달라질 수 있다. ALF는 다양한 형태를 가질 수 있으며, 필터에 그에 따라 포함되는 계수의 갯수도 달라질 수 있다. 이러한 ALF의 필터링 관련 정보(필터 계수 정보, ALF On/Off 정보, 필터 형태 정보)는 비트스트림에서 소정의 파라메터 셋에 포함되어 전송될 수 있다.
메모리(150)는 필터부(145)를 통해 산출된 복원 블록 또는 픽처를 저장할 수 있고, 저장된 복원 블록 또는 픽처는 화면 간 예측을 수행 시 예측부(110)에 제공될 수 있다.
도 2는 본 발명의 다른 실시예에 따른 영상 복호화기를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화기(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235), 메모리(240)가 포함될 수 있다.
영상 부호화기에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화기와 반대의 절차로 복호화될 수 있다.
엔트로피 복호화부(210)는 영상 부호화기의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 엔트로피 부호화를 수행하기 위해 사용된 VLC 테이블은 엔트로피 복호화부에서도 동일한 가변 길이 부호화 테이블로 구현되어 엔트로피 복호화를 수행할 수 있다. 엔트로피 복호화부(210)에서 복호화된 정보 중 예측 블록을 생성하기 위한 정보는 예측부(230)로 제공되고 엔트로피 복호화부에서 엔트로피 복호화를 수행한 잔차값은 재정렬부(215)로 입력될 수 있다.
엔트로피 복호화부(210)에서도 엔트로피 부호화부와 마찬가지로 카운터(Counter) 또는 직접 변환(Direct Swapping) 방법을 이용해 코드 워드 할당 테이블을 변화시킬 수 있고, 변화된 코드 워드 할당 테이블에 기초하여 엔트로피 복호화를 수행할 수 있다.
부호화기에서 수행된 화면 내 예측 및 화면 간 예측에 관련된 정보를 복호화할 수 있다. 전술한 바와 같이 영상 부호화기에서 화면 내 예측 및 화면 간 예측을 수행시 소정의 제약이 있는 경우, 이러한 제약을 기초로 한 엔트로피 복호화를 수행해 현재 블록에 대한 화면 내 예측 및 화면 간 예측에 관련된 정보를 제공받을 수 있다.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부에서는 부호화부에서 수행된 계수 스캐닝에 관련된 정보를 제공받고 해당 부호화부에서 수행된 스캐닝 순서에 기초하여 역으로 스캐닝하는 방법을 통해 재정렬을 수행할 수 있다.
역양자화부(220)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화기에서 수행한 양자화 결과에 대해 변환부에서 수행한 DCT 및 DST에 대해 역DCT 및 역 DST를 수행할 수 있다. 역변환은 영상 부호화기에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 부호화기의 변환부에서는 DCT와 DST는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 선택적으로 수행될 수 있고, 영상 복호화기의 역변환부(225)에서는 영상 부호화기의 변환부에서 수행된 변환 정보를 기초로 역변환을 수행할 수 있다.
변환을 수행시 변환 유닛이 아닌 부호화 유닛을 기준으로 변환을 수행할 수 있다.
예측부(230)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(240)에서 제공된 이전에 복호화된 블록 또는 픽처 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 화면 내 예측을 수행시 예측 유닛의 크기와 변환 유닛의 크기가 동일할 경우, 예측 유닛의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 유닛에 대한 화면 내 예측을 수행하지만, 화면 내 예측을 수행시 예측 유닛의 크기와 변환 유닛의 크기가 상이할 경우, 변환 유닛을 기초로 한 참조 픽셀을 이용하여 화면 내 예측을 수행할 수 있다. 또한, 최소 부호화 유닛에 대해서만 NxN 분할을 사용하는 화면 내 예측을 사용할 수 있다.
예측부(230)는 예측 유닛 판별부, 화면 간 예측부 및 화면 내 예측부를 포함할 수 있다. 예측 유닛 판별부는 엔트로피 복호화부에서 입력되는 예측 유닛 정보, 화면 내 예측 방법의 예측 모드 정보, 화면 간 예측 방법의 움직임 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 유닛에서 예측 유닛을 구분하고, 예측 유닛이 화면 간 예측을 수행하는지 아니면 화면 내 예측을 수행하는지 여부를 판별할 수 있다. 화면 간 예측부는 영상 부호화기에서 제공된 현재 예측 유닛의 화면 간 예측에 필요한 정보를 이용해 현재 예측 유닛이 포함된 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처에 포함된 정보를 기초로 현재 예측 유닛에 대한 화면 간 예측을 수행할 수 있다.
화면 간 예측을 수행하기 위해 부호화 유닛을 기준으로 해당 부호화 유닛에 포함된 예측 유닛의 움직임 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode) 중 어떠한 방법인지 여부를 판단할 수 있다.
화면 내 예측부는 현재 픽처 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 유닛이 화면 내 예측을 수행한 예측 유닛인 경우, 영상 부호화기에서 제공된 예측 유닛의 화면 내 예측 모드 정보를 기초로 화면 내 예측을 수행할 수 있다. 화면 내 예측부에는 AIS 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 유닛의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 유닛의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 유닛의 예측 모드가 참조 화소를 보간한 화소값을 기초로 화면 내 예측을 수행하는 예측 유닛일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소을 생성할 수 있다. 현재 예측 유닛의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽처는 필터부(235)로 제공될 수 있다. 필터부(235)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화기로부터 해당 블록 또는 픽처에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다. 영상 부호화기에서와 마찬가지로 우선 수직 디블록킹 필터링 및 수평 디블록킹 필터링을 수행하되, 겹치는 부분에 있어서는 수직 디블록킹 및 수평 디블록킹 중 적어도 하나를 수행할 수 있다. 수직 디블록킹 필터링 및 수평 디블록킹 필터링이 겹치는 부분에서 이전에 수행되지 못한 수직 디블록킹 필터링 또는 수평 디블록킹 필터링이 수행될 수 있다. 이러한 디블록킹 필터링 과정을 통해서 디블록킹 필터링의 병행 처리(Parallel Processing)이 가능하다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다.
ALF는 필터링을 수행 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 유닛에 ALF를 적용할 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(240)는 복원된 픽처 또는 블록을 저장하여 참조 픽처 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽처를 출력부로 제공할 수 있다.
도 3은 부호화기에서 인트라 예측 후 엔트로피 부호화가 이루어지는 과정을 개략적으로 설명하는 블록도이다. 도 3에서는 인트라 예측이 예측 대상 블록에 적용되는 예를 설명한다.
도 3을 참조하면, 부호화기에서는 예측 대상 블록의 화소들에 대해 예측이 수행된 뒤에, 예측 블록과 대상 블록의 잔차에 대하여 변환(transform)이 수행된다. 변환 계수(coeffiecients)는 다시 양자화(quantization)된 후 스캐닝되어 정렬 되며 엔트로피 부호화 과정을 거친다. 엔트로피 부호화를 거친 정보는 비트 스트림으로 복호화기에 전달된다. 각 과정의 구체적인 내용은 도 1에서 상술한 바와 같다.
도 4는 복호화기에서 엔트로피 복호화 후 예측이 이루어지는 과정을 개략적으로 설명하는 블록도이다. 도 4에서는 인트라 예측이 예측 대상 블록에 적용되는 예를 설명한다.
도 4를 참조하면, 복호화기에서는 부호화기로부터 수신한 비트스트림의 정보에 대해서 엔트로피 복호화를 수행한다. 양자화된 변환 계수들은 복호화된 후 스캐닝을 거쳐서 재정렬된 후 역양자화를 거치고 다시 역변환을 거친다. 역변환된 정보를 기반으로 복호화기는 인트라 예측을 수행해서 복호화 대상 블록의 픽셀을 출력할 수 있다. 각 과정의 구체적인 내용은 도 2에서 상술한 바와 같다.
상술한 바와 같이, 하나의 프레임은 압축의 기본 단위인 복수의 블록, 예컨대 부호화 유닛으로 분할될 수 있다. 부호화 유닛의 최대 사이즈는 소정의 크기, 예컨대 64x64 픽셀로 정해질 수 있다. 또한, 사용자 등에 의해 가변적으로 결정될 수도 있다.
부호화 유닛은 압축 성능에 따라 복수의 부호화 유닛으로 재분할 될 수 있다.
도 5는 부호화 유닛의 재귀적인 분할에 관한 쿼드 트리 구조를 개략적으로 설명하는 도면이다. 쿼드 트리 구조에서는 부호화 유닛은 더 작은 사이즈의 부호화 유닛으로 분할될 수 있으며, 더 이상 분할되지 않는 최소 사이즈의 부호화 유닛을 정할 수 있다.
부호화 유닛은 예측을 위한 예측 유닛(Prediction Unit: PU)으로 분할될 수 있으며, 인터 예측과 인트라 예측에 다양한 사이즈의 예측 유닛을 이용할 수 있다. 또한, 예측 유닛의 사이즈는 인트라 예측 또는 인터 예측에 따라 다양할 수 있다. 예측 유닛은 또한 변환을 위한 변환 유닛(Transform Unit: TU)로 분할될 수 있다.
도 5의 부호화 유닛의 최대 사이즈가 64x64인 경우를 예로서 설명한다.
도 5를 참조하면, 64x64의 최대 사이즈 부호화 유닛(Largest Coding Unit: LCU, CU1)은 분할을 지시하는 스플릿 플래그(split_flag)의 값이 1인 경우에는 4 개의 부호화 유닛으로 분할될 수 있다. 네 개의 부호화 유닛(CU20~CU24)으로 분할된 최대 사이즈 부호화 유닛(510)의 각 부호화 유닛에 대하여 스플릿 플래그를 통해 다시 분할 여부를 지시할 수 있다.
부호화 유닛(CU12)에 대한 스플릿 플래그의 값이 1인 경우를 예로서 생각하면, 부호화 유닛(CU12)는 다시 네 개의 부호화 유닛(CU20~CU23)로 분할될 수 있다. 쿼드 트리의 계층적 구조에서 CU1의 깊이(depth)를 1이라고 할 때, 분할된 부호화 유닛(CU12)의 깊이는 2가 된다.
다시 분할된 각 부호화 유닛(CU20~CU23)에 대하여 스플릿 플래그를 통해 분할 여부를 지시할 수 있다. 분할하는 경우(split_flag=1)에는 아래 깊이에서 더 작은 사이즈를 갖는 부호화 유닛(0~3)으로 분할될 수 있다.
한편, 더 이상 분할되지 않는(예컨대, split_flag=0) 부호화 유닛의 경우에는 예측 유닛(580)으로 분할될 수 있다. 예측 유닛은 부호화 유닛과 동일하거나 더 작은 사이즈를 가질 수 있다. 이때, 각 예측 유닛의 사이즈 혹은 형태에 관한 정보는 분할을 지시하는 플래그가 아니라 해당 유닛의 사이즈를 특정하는 신택스를 통해 복호화기에 전달될 수 있다. 예측 유닛의 사이즈는 형태별로 특정될 수 있으며, 예컨대, NxN 의 예측 유닛은 8x8인 경우에만 정의되도록 할 수도 있다. 또한, 예측 유닛을 기반으로 변환 유닛(590)이 정해질 수도 있다.
여기서는 도시된 부호화 유닛(680)과 같은 형태를 예로서 설명하였으나, 그 외에도 인트라 예측에 대하여 SDIP(Short Distance Intra Prediction)의 경우에는 NxhN 및/또는 hNxN (h는 반(half)를 의미)의 사이즈를 갖는 예측 유닛을 고려할 수 있다.
인트라 예측에 대하여, 어떤 예측 모드를 사용할 것인지는 예측 유닛별로 정해질 수 있으며, 정해진 예측 모드를 이용한 예측은 변환 유닛별로 수행될 수 있다.
부호화 유닛에 관한 정보는 휘도 성분인 루마(Luma, luminance) 데이터와 색차 성분인 크로마(chroma, chrominance) 데이터로 구분할 수 있다. 표 1은 루마 데이터에 대하여, 인트라 예측을 위해 이용되는 예측 모드(intra prediction mode)의 개수를 변환 유닛의 사이즈(log2TrafoSize)별로 분류한 것이다. 표 1은 크기가 최대 64X64 픽셀 사이즈로부터 4X4까지 정방형의 변환 유닛이 이용되는 경우를 예로서 설명하는 것이다.
<표 1>
표 1을 참조하면, 변환 유닛의 사이즈에 따라 다르지만, 최대 35개의 인트라 예측 모드가 이용될 수 있다는 것을 알 수 있다.
인트라 예측 모드는 인트라 예측을 수행하는 방향에 따라서 결정된다.
<표 2>
표 2는 인트라 예측 모드와 인트라 예측 모드에 대응하는 번호 (모드 번호)를 매핑한 표이다.
<표 3>
표 3은 인트라 예측 모드와 인트라 예측 모드에 대응하는 번호 (모드 번호)를 매핑한 표이다. 표 2와 달리, 표 3에서는 플래너 모드를 우선시 하여 인트라 예측 모드들을 배열하였다.
표 2와 표 3에서 보이는 것처럼, 인트라 예측 모드에 대응하는 인트라 예측 모드 번호를 예측 모드의 우선 순위에 따라 부여할 수 있다. 본 발명에서는 편의상 표 2에 근거하여, 인트라 예측 모드 번호를 사용하며, 인트라 예측 모드는 표 3에 해당하는 모드 번호로 매핑 할 수도 있다. 예를 들어, 표 2의 Intra_DC mode (예측 모드 번호 2)는 표 3의 Intra_DC mode (예측 모드 번호 3)으로 변환 할 수 있고, 표 2의 Intra_Angular (예측 모드 번호 3-33) 는 표 3의 Intra_ Angular (예측 모드 번호 4-34)으로 변환 할 수 있다.
도 6은 인트라 예측 모드를 개략적으로 설명하는 도면이다. 도 6을 참조하면, DC 모드, 플래너 모드, 크로마에 대하여 루마의 모드를 적용하는 경우를 제외하고, 0, 1, 3~33 의 인트라 예측 모드가 방향에 따라서 정의되어 있는 것을 확인할 수 있다. 표 2 및 표 3에 관해서 설명한 바와 같이, 인트라 예측 모드의 번호는 인트라 플래너 모드(Intra_Planar)의 우선 순위를 어떻게 정할 것인지에 따라서 달라진다. 본 발명에서는 상술한 바와 같이 표 2에 따라서 정의된 인트라 예측 모드를 이용하며, 도 6 역시 표 2에 따른 인트라 모드 번호를 이용하여 도시된 것이다. 표 3에 따라서도 인트라 예측 모드를 도시할 수 있으며, 이 경우 도 6과의 차이는 표 3에 따라서, 인트라 예측 모드의 번호에 상술한 바와 같은 변경이 있을 수 있다.
한편, 부호화기에서 DCT(Descrete Cosine Transform)가 기본적인 코어 변환 방법으로 사용되며, 복호화기에서는 IDCT(Inverse descrete Cosine Transform)이 기본적인 코어 역변환 방법으로 사용된다.
<수학식 1>
<수학식 2>
한편, 변환 방법과 역변환 방법 역시 대상 블록의 사이즈, 예컨대 변환 유닛의 사이즈에 따라 다르게 적용될 수 있다. 가령, 가장 작은 사이즈에 대한 루마 예측이 수행되는 경우, 예컨대 4X4 인트라 예측이 수행되는 경우에는 DCT와 IDCT 외에 DST(Descrete Sine Transform)과 IDST(Inverse Descrete Sine Transform)이 적용되도록 할 수도 있다.
<수학식 3>
<수학식 4>
표 4는 인트라 예측의 경우에 인트라 예측 모드별로 사용되는 변환 타입의 예를 나타낸 것이다. 표 3에서 0은 DCT를 나타내고, 1은 DST를 나타낸다.
<표 4>
표 4를 참조하면, 모드 0의 경우에는 수평 방향으로 DCT를 적용하고, 수직 방향으로 DST를 적용하는 것을 알 수 있다.
일반적으로 2 차원(2 dimension)의 예측 유닛 데이터를 변환하기 위해서, 부호화기는 수평 방향으로 1 차원 DCT를 적용하고, 그 결과값에 대하여 다시 수직 방향으로 1차원 DCT를 적용한다. 이렇게 변환된 데이터를 수신한 복호화기는, 부호화기의 처리에 대응해서, 우선 수직 방향으로 1차원 IDCT를 적용하고, 그 결과값에 대하여 수평 방향으로 1차원 IDCT를 적용해서 인트라 예측에 필요한 정보를 획득한다.
<수학식 5>
<수학식 6>
이와 관련하여, 수평 방향과 수직 방향으로 서로 다른 변환을 적용하는 경우에 그 적용 순서가 문제된다.
수학식 1과 같이 동일한 변환을 적용하는 경우에는 그 적용 순서에 관계없이 동일한 결과를 얻을 수 있다. 예컨대, 수평 방향과 수직 방향 모두 DCT를 적용할 때는, 수평 방향으로 먼저 변환을 한 후 수직 방향으로 변환하는 경우와 수직 방향으로 먼저 변환을 한 후 수평 방향으로 변환하는 경우가 동일한 결과값을 얻을 수 있다. 또한, 수평 방향과 수직 방향 모두 DST를 적용할 때에도, 수평 방향으로 먼저 변환을 한 후 수직 방향으로 변환하는 경우와 수직 방향으로 먼저 변환을 한 후 수평 방향으로 변환하는 경우가 동일한 결과값을 얻을 수 있다.
하지만, 수학식 5 및 수학식 6과 같이 수평 방향과 수직 방향에 대하여 서로 다른 변환을 적용하는 경우에는, 적용 순서에 따라서 서로 다른 결과값이 나올 수 있다. 예컨대, 수평 방향으로 DCT를 적용하고 수직 방향으로 DST를 적용하는 경우 혹은 수평 방향으로 DST를 적용하고 수직 방향으로 DCT를 적용하는 경우에는, 어떤 방향의 변환을 먼저 수행하느냐에 따라서 결과값이 달라질 수 있다.
따라서, 이차원 변환을 수행할 때, 각 방향에 대하여 서로 다른 변환 타입이 적용되는 경우에 변환의 순서를 특정함으로써 압축 부호화의 성능을 높일 수 있다.
예컨대, 수평 방향의 인트라 예측 모드에 수평 방향의 변환이 먼저 적용된다면, 대칭적으로 수직 방향의 인트라 예측 모드에 대해서는 수직 방향의 변환이 먼저 적용될 수 있다. 반대로, 수평 방향의 인트라 예측 모드에 수직 방향의 변환이 먼저 적용된다면, 대칭적으로 수직 방향의 인트라 예측 모드에 대해서는 수평 방향의 변환이 먼저 적용될 수 있다.
도 7은 인트라 예측의 경우에 인트라 예측 모드별로 사용되는 변환 타입을 도 6에 표시한 것이다. 변환 유닛에 대한 변환은 인트라 예측 모드의 방향에 대하여 대칭적으로 수행될 수 있다. 예컨대, 수평 방향의 예측 모드에 대하여, 수평 방향의 변환이 먼저 적용된다면, 수직 방향의 예측 모드에 대해서는 수직 방향의 모드가 먼저 적용되도록 할 수 있다. 도 7을 참조하면, 수직 방향의 인트라 예측 모드와 수평 방향의 인트라 예측 모드에 대칭적으로 수직 방향/수평 방향의 변환이 적용될 수 있는 것을 확인할 수 있다. 상술한 바와 같이 도 7은 표 2에 따라서 도시된 것이며, 표 3에 따라서 인트라 예측 모드의 번호를 정하는 경우에는 도 7에 도시된 번호에 앞서 설명한 바와 같은 변경이 있을 수 있다.
따라서, 수평 방향과 수직 방향으로 상이한 변환 타입을 적용하는 경우에는 해당 변환 유닛의 인트라 예측 모드의 방향에 따라서 적응적으로 변환의 순서를 정할 수 있다. 즉, 해당 변환 유닛에 대한 인트라 예측 모드에 따라 수평 방향 변환과 수직 방향 변환의 적용 순서를 결정할 수 있다.
이하, 대상 블록에 대하여 수직 방향과 수평 방향으로 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법을 구체적으로 설명한다.
인트라 예측 모드의 방향과 동일 방향의 변환을 우선 적용하는 방법
서로 다른 변환을 적용하는 경우에 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 일 예로서, 인트라 예측 모드의 방향과 동일한 방향의 변환을 우선 적용하는 방법을 생각할 수 있다.
수직 방향으로 예측을 하는 경우에는 수직 방향의 변환을 먼저 적용하고, 그 결과값에 수평 방향의 변환을 적용할 수 있다. 여기서, 수직 방향의 예측이라 함은 정확한 수직 방향의 인트라 예측 모드(인트라 예측 모드 0)뿐만 아니라, 대상 블록의 상측(top) 방향에 있는 인트라 예측 모드로서 서로 다른 변환이 적용되는 인트라 예측 모드를 포함한다. 예컨대, 도 7을 참조하면, 수직 모드 (VER mode) 우측에 위치하는 인트라 예측 모드(0, 22, 12, 23, 5, 24, 13, 25, 6)를 수직 방향의 예측 모드라 할 수 있다.
수평 방향으로 예측을 하는 경우에는 수평 방향의 변환을 먼저 적용하고, 그 결과값에 수직 방향의 변환을 적용할 수 있다. 여기서, 수평 방향의 예측이라 함은, 정확한 수평 방향의 인트라 예측 모드(인트라 예측 모드 1)뿐만 아니라, 대상 블록의 좌측(left) 방향에 있는 인트라 예측 모드로서 서로 다른 변환이 적용되는 인트라 예측 모드를 포함한다. 예컨대, 도 7을 참조하면, 수평 모드 (HOR mode) 아래쪽에 위치하는 인트라 예측 모드(1, 30, 16, 31, 8, 32, 17, 33, 9)를 수평 방향의 예측 모드라 할 수 있다.
도 8은 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다. 도 8에서는 대상 블록에 적용되는 인트라 예측 모드의 방향과 동일한 방향의 변환을 우선 적용하는 예를 설명한다.
도 8을 참조하면, 부호화기는 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용되는 변환의 타입이 동일한지를 판단한다(S810). 변환의 타입은 DST와 DCT 중 어느 하나로서, 수직 방향과 수평 방향에 동일한 타입의 변환이 적용될 수도 있고, 수직 방향과 수평 방향에 서로 다른 타입의 변환이 적용될 수도 있다. 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용되는 변환의 타입이 동일한지 여부는 예컨대, 변환 대상 블록의 사이즈 및/또는 적용된 인트라 예측 모드를 기반으로 판단될 수 있다.
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용되는 경우에, 부호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인지를 판단할 수 있다(S820). 상술한 바와 같이, 수직 방향의 인트라 예측 모드라 함은 대상 블록의 상측(top) 방향에 있는 인트라 예측 모드로서 서로 다른 변환이 적용되는 인트라 예측 모드를 포함한다.
대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 부호화기는 수직 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 변환을 수행한다(S830). 예컨대, 대상 블록에 대한 수직 방향의 변환 타입이 DCT인 경우에는, DCT를 수직 방향으로 우선 적용하고, 대상 블록에 대한 수직 방향의 변환 타입이 DST인 경우에는 DST를 수직 방향으로 우선 적용한다. 따라서, 인트라 예측 블록의 방향과 동일한 방향의 변환이 먼저 적용된다.
이어서, 수평 방향의 변환 타입을 이용하여 대상 블록에 대한 수평 방향의 변환을 수행한다(S840). 예컨대, 대상 블록에 대한 수직 방향의 변환 타입이 DCT 였다면, 수직 방향으로 DCT가 적용된 결과값에 수평 방향으로 DST가 적용될 수 있다. 대상 블록에 대한 수직 방향의 변환 타입이 DST였다면, 수직 방향으로 DST가 적용된 결과값에 수평 방향으로 DCT가 적용될 수 있다.
한편, 상술한 바와 같이, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에는 수평 방향의 변환을 먼저 적용할 수 있다(S850).
수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이하지만, 대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 부호화기는 수평 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 변환을 수행한다(S850). 따라서, 인트라 예측 모드의 방향과 동일한 방향의 변환이 먼저 적용된다. 상술한 바와 같이, 수평 방향의 인트라 예측 모드라 함은 대상 블록의 좌측(top) 방향에 있는 인트라 예측 모드로서 서로 다른 변환이 적용되는 인트라 예측 모드를 포함한다. 부호화기는 대상 블록에 대한 수평 방향의 변환 타입이 DCT인 경우에는, DCT를 수평 방향으로 우선 적용하고, 대상 블록에 대한 수평 방향의 변환 타입이 DST인 경우에는 DST를 수평 방향으로 우선 적용한다.
이어서, 부호화기는 수직 방향의 변환 타입을 이용하여 대상 블록에 대한 수직 방향의 변환을 수행한다(S860). 예컨대, 대상 블록에 대한 수평 방향의 변환 타입이 DCT 였다면, 수평 방향으로 DCT가 적용된 결과값에 수직 방향으로 DST가 적용될 수 있다. 대상 블록에 대한 수평 방향의 변환 타입이 DST였다면, 수평 방향으로 DST가 적용된 결과값에 수직 방향으로 DCT가 적용될 수 있다.
여기서는 부호화기가 변환을 수행하는 것으로 설명하였으나, 부호화기 내의 특정 모듈, 예컨대 변환부에서 상술한 바와 같은 변환 동작을 수행할 수 있다.
또한, S820 단계에서는 대상 블록에 적용된 인트라 예측 모드가 수직 방향인지를 판단하여 이후의 단계를 수행하지만, 본 발명은 이에 한정되지 않으며, 대상 블록에 적용된 인트라 예측 모드가 수평 방향인지를 판단하여 판단 결과에 따라 이후의 단계를 적용할 수도 있다.
도 9는 본 발명이 적용되는 복호화기에서 역변환 대상 블록에 서로 다른 역변환을 적용하는 경우에, 인트라 예측 모드에 따라서 역변환의 적용 순서를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다. 도 9에서는 부호화기에서 대상 블록에 적용되는 인트라 예측 모드의 방향과 동일한 방향의 변환을 우선 적용한 경우에 복호화기에서 수행되는 역변환 방법의 예를 설명한다.
도 9를 참조하면, 복호화기는 엔트로피 복호화의 결과, 변환 대상 블록에 수평 방향과 수직 방향으로 동일한 변환 타입이 적용되었는지를 판단한다(S910). 변환의 타입은 DST와 DCT 중 어느 하나일 수 있다. 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용된 변환의 타입이 동일한지 여부는 예컨대, 변환 대상 블록의 사이즈 및/또는 적용된 인트라 예측 모드를 기반으로 판단될 수 있다.
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용된 경우에, 복호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인지를 판단할 수 있다(S920).
대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 복호화기는 수평 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 역변환을 수행한다(S930). 복호화기에서는 후술하는 바와 같이, 부호화기에서 적용된 변환 순서의 역순으로, 부호화기에서 적용된 변환에 대응하는 역변환을 적용할 수 있다.
이어서, 복호화기는 수직 방향의 역변환 타입을 이용하여 대상 블록에 대한 수직 방향의 역변환을 수행한다(S940). 예컨대, 대상 블록에 대한 수평 방향의 역변환 타입이 IDCT였다면, 수평 방향으로 IDCT가 적용된 결과값에 수직 방향으로 IDST가 적용될 수 있다. 대상 블록에 대한 수평 방향의 역변환 타입이 IDST였다면, 수평 방향으로 IDST가 적용된 결과값에 수직 방향으로 IDCT가 적용될 수 있다.
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 복호화기는 수직 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 역변환을 수행한다(S950).
이어서, 복호화기는 수평 방향의 역변환 타입을 이용하여 대상 블록에 대한 수평 방향의 역변환을 수행한다(S960). 예컨대, 대상 블록에 대한 수직 방향의 역변환 타입이 IDCT 였다면, 수직 방향으로 IDCT가 적용된 결과값에 수평 방향으로 IDST가 적용될 수 있다. 대상 블록에 대한 수직 방향의 역변환 타입이 IDST였다면, 수직 방향으로 IDST가 적용된 결과값에 수평 방향으로 IDCT가 적용될 수 있다.
또한, 대상 블록에 적용된 수평 방향의 변환과 수직 방향의 변환이 동일한 경우(S910)에도, 수직 방향의 역변환을 먼저 수행하고(S950), 수평 방향의 역변환을 이어서 수행할 수 있다(S960).
여기서는 복호화기가 변환을 수행하는 것으로 설명하였으나, 복호화기 내의 특정 모듈, 예컨대 역변환부에서 상술한 바와 같은 역변환 동작을 수행할 수 있다.
또한, S920 단계에서는 대상 블록에 적용된 인트라 예측 모드가 수직 방향인지를 판단하여 이후의 단계를 수행하지만, 본 발명은 이에 한정되지 않으며, 대상 블록에 적용된 인트라 예측 모드가 수평 방향인지를 판단하여 판단 결과에 따라 이후의 단계를 적용할 수도 있다.
한편, 도 9의 예에서는 복호화기가 대상 블록에 적용된 인트라 예측 모드를 판단하여, 역변환의 적용 순서를 결정하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 복호화기는 엔트로피 복호화의 결과로 획득한 변환에 대한 정보를 기반으로, 부호화기에서 수행된 변환에 대응하는 역변환을, 부호화기에서 변환이 적용된 순서의 역순으로 적용할 수도 있다. 이 경우에 변환의 순서에 관한 정보는 부호화기로부터 복호화기로 시그널링 될 수 있다.
도 8과 9에서는 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한지를 먼저 판단한 후에, 인트라 예측 모드의 방향을 판단하였으나, 이와 달리 인트라 예측 모드의 방향을 먼저 판단하고, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한지를 판단할 수도 있다.
도 10은 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 10에서는 도 8과 달리 인트라 예측 모드의 방향을 먼저 판단한다.
도 10을 참조하면, 부호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인지를 우선 판단할 수 있다(S1010). 대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 부호화기는 대상 블록에 적용되는 수평 방향 변환 타입과 수평 방향 변환 타입이 상이한지를 판단할 수 있다(S1020).
대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한 경우에, 부호화기는 수직 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 변환을 수행한다(S1030). 따라서, 대상 블록에 대한 인트라 예측 모드의 방향과 동일한 방향의 변환 타입이 먼저 적용된다. 이어서, 수평 방향의 변환 타입을 이용하여 대상 블록에 대한 수평 방향의 변환을 수행한다(S1040).
한편, 인트라 예측 모드의 각도가 수평인 경우에는 수평 방향의 변환 타입을 먼저 적용하고(S1050), 이어서 수직 방향의 변환 타입을 적용한다(S1060). 따라서, 인트라 예측 모드의 방향과 동일한 방향의 변환 모드가 먼저 적용된다.
또한, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에는, 일반적인 변환 방법과 동일하게, 수평 방향의 변환 타입을 먼저 적용하고(S1050), 이어서 수직 방향의 변환 타입을 적용한다(S1060).
도 10의 각 단계에서 수행되는 구체적인 동작은 도 8의 대응하는 단계에서 설명한 바와 같다.
도 11은 본 발명이 적용되는 복호화기에서 역변환 대상 블록에 서로 다른 역변환을 적용하는 경우에, 인트라 예측 모드에 따라서 역변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 11에서는 도 9와 달리, 인트라 예측 모드의 각도를 먼저 판단한다.
도 11을 참조하면, 엔트로피 복호화의 결과, 복호화기는 먼저 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인지를 판단할 수 있다(S1110). 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인 경우에, 복호화기는 대상 블록에 수평 방향과 수직 방향으로 동일한 변환 타입이 적용되었는지를 판단한다(S1120).
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용된 경우에, 복호화기는 수평 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 역변환을 수행한다(S1130). 이어서, 복호화기는 수직 방향의 역변환 타입을 이용하여 대상 블록에 대한 수직 방향의 역변환을 수행한다(S1140). 따라서, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 역변환을 적용할 수 있다.
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 복호화기는 수직 방향의 역변환 타입을 우선 적용하고(S1150), 수평 방향의 역변환 타입을 이어서 적용한다(S1160). 따라서, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 역변환을 적용할 수 있다.또한, 인트라 예측 모드의 각도는 수직이지만, 대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에도, 복호화기는 수직 방향의 역변환 타입을 우선 적용하고(S1150), 수평 방향의 역변환 타입을 이어서 적용할 수 있다(S1160).
도 11의 각 단계에서 수행되는 구체적인 동작은 도 9의 대응하는 단계에서 설명한 바와 같다.
인트라 예측 모드의 방향과 다른 방향의 변환을 우선 적용하는 방법
서로 다른 변환을 적용하는 경우에 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 다른 예로서, 인트라 예측 모드의 방향과 다른 방향의 변환을 우선 적용하는 방법을 생각할 수 있다.
수직 방향으로 예측을 하는 경우에는 수평 방향의 변환을 먼저 적용하고, 그 결과값에 수직 방향의 변환을 적용할 수 있다.
수직 방향으로 예측을 하는 경우에는 수평 방향의 변환을 먼저 적용하고, 그 결과값에 수직 방향의 변환을 적용할 수 있다.
도 12은 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 12에서는 대상 블록에 적용되는 인트라 예측 모드의 방향과 다른 방향의 변환을 우선 적용하는 예를 설명한다.
도 12를 참조하면, 부호화기는 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용되는 변환의 타입이 동일한지를 판단한다(S1210). 변환의 타입은 DST와 DCT 중 어느 하나로서, 수직 방향과 수평 방향에 동일한 타입의 변환이 적용될 수도 있고, 수직 방향과 수평 방향에 서로 다른 타입의 변환이 적용될 수도 있다. 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용되는 변환의 타입이 동일한지 여부는 예컨대, 변환 대상 블록의 사이즈 및/또는 적용된 인트라 예측 모드를 기반으로 판단될 수 있다.
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용되는 경우에, 부호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인지를 판단할 수 있다(S1220).
대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 부호화기는 수직 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 변환을 수행한다(S1230). 따라서, 인트라 예측 모드의 방향과 다른 방향의 변환이 먼저 적용된다.
이어서, 수평 방향의 변환 타입을 이용하여 대상 블록에 대한 수평 방향의 변환을 수행한다(S1240).
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 부호화기는 수평 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 변환을 수행한다(S1250). 따라서, 인트라 예측 모드의 방향과 다른 방향의 변환이 먼저 적용된다.
이어서, 부호화기는 수직 방향의 변환 타입을 이용하여 대상 블록에 대한 수직 방향의 변환을 수행한다(S1060).
또한, 대상 블록에 적용되는 수평 방향과 수직 방향의 변환 타입이 동일한 경우(S1210)에도, 일반적인 경우와 같이 수평 방향의 변환을 먼저 수행하고(S1250) 수직 방향의 변환을 수행(S1260)할 수 있다.
여기서는 부호화기가 변환을 수행하는 것으로 설명하였으나, 부호화기 내의 특정 모듈, 예컨대 변환부에서 상술한 바와 같은 변환 동작을 수행할 수 있다.
또한, S1220 단계에서는 대상 블록에 적용된 인트라 예측 모드가 수평 방향인지를 판단하여 이후의 단계를 수행하지만, 본 발명은 이에 한정되지 않으며, 대상 블록에 적용된 인트라 예측 모드가 수직 방향인지를 판단하여 판단 결과에 따라 이후의 단계를 적용할 수도 있다.
도 13은 본 발명이 적용되는 복호화기에서 역변환 대상 블록에 서로 다른 방향의 역변환을 적용하는 경우에, 인트라 예측 모드에 따라서 역변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 13에서는 부호화기에서 대상 블록에 적용되는 인트라 예측 모드의 방향과 다른 방향의 변환을 우선 적용한 경우에 복호화기에서 수행되는 역변환 방법의 예를 설명한다.
도 13을 참조하면, 복호화기는 엔트로피 복호화의 결과, 변환 대상 블록에 수평 방향과 수직 방향으로 동일한 변환 타입이 적용되었는지를 판단한다(S1310). 변환의 타입은 DST와 DCT 중 어느 하나일 수 있다. 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용된 변환의 타입이 동일한지 여부는 예컨대, 변환 대상 블록의 사이즈 및/또는 적용된 인트라 예측 모드를 기반으로 판단될 수 있다.
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용된 경우에, 복호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인지를 판단할 수 있다(S1320).
대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 복호화기는 수평 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 역변환을 수행한다(S1330). 복호화기에서는 후술하는 바와 같이, 부호화기에서 적용된 변환 순서의 역순으로, 부호화기에서 적용된 변환에 대응하는 역변환을 적용할 수 있다.
이어서, 복호화기는 수직 방향의 역변환 타입을 이용하여 대상 블록에 대한 수직 방향의 역변환을 수행한다(S1340). 예컨대, 대상 블록에 대한 수평 방향의 역변환 타입이 IDCT였다면, 수평 방향으로 IDCT가 적용된 결과값에 수직 방향으로 IDST가 적용될 수 있다. 대상 블록에 대한 수평 방향의 역변환 타입이 IDST였다면, 수평 방향으로 IDST가 적용된 결과값에 수직 방향으로 IDCT가 적용될 수 있다.
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 복호화기는 수직 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 역변환을 수행한다(S1350).
이어서, 복호화기는 수평 방향의 역변환 타입을 이용하여 대상 블록에 대한 수평 방향의 역변환을 수행한다(S1360). 예컨대, 대상 블록에 대한 수직 방향의 역변환 타입이 IDCT 였다면, 수직 방향으로 IDCT가 적용된 결과값에 수평 방향으로 IDST가 적용될 수 있다. 대상 블록에 대한 수직 방향의 역변환 타입이 IDST였다면, 수직 방향으로 IDST가 적용된 결과값에 수평 방향으로 IDCT가 적용될 수 있다.
또한, 대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에도(S1310), 수직 방향의 역변환을 수행(S1350)한 뒤 수평 방향의 역변환을 수행(S1360)할 수 있다.
여기서는 복호화기가 변환을 수행하는 것으로 설명하였으나, 복호화기 내의 특정 모듈, 예컨대 역변환부에서 상술한 바와 같은 역변환 동작을 수행할 수 있다.
한편, 도 13의 예에서는 복호화기가 대상 블록에 적용된 인트라 예측 모드를 판단하여, 역변환의 적용 순서를 결정하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 복호화기는 엔트로피 복호화의 결과로 획득한 변환에 대한 정보를 기반으로, 부호화기에서 수행된 변환에 대응하는 역변환을, 부호화기에서 변환이 적용된 순서의 역순으로 적용할 수도 있다. 이 경우에 변환의 순서에 관한 정보는 부호화기로부터 복호화기로 시그널링 될 수 있다.
도 12와 13에서는 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한지를 먼저 판단한 후에, 인트라 예측 모드의 방향을 판단하였으나, 이와 달리 인트라 예측 모드의 방향을 먼저 판단하고, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한지를 판단할 수도 있다.
도 14는 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 14에서는 도 12와 달리 인트라 예측 모드의 방향을 먼저 판단한다.
도 14를 참조하면, 부호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인지를 우선 판단할 수 있다(S1410). 대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 부호화기는 대상 블록에 적용되는 수평 방향 변환 타입과 수평 방향 변환 타입이 상이한지를 판단할 수 있다(S1420).
대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한 경우에, 부호화기는 수직 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 변환을 수행한다(S1430). 따라서, 대상 블록에 대한 인트라 예측 모드의 방향과 다른 방향의 변환 타입이 먼저 적용된다. 이어서, 수평 방향의 변환 타입을 이용하여 대상 블록에 대한 수평 방향의 변환을 수행한다(S1440).
한편, 인트라 예측 모드의 각도가 수직인 경우(S1410)에는 수평 방향의 변환 타입을 먼저 적용하고(S1450), 이어서 수직 방향의 변환 타입을 적용한다(S1460). 따라서, 인트라 예측 모드의 방향과 다른 방향의 변환 모드를 먼저 적용할 수 있다.
또한, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에는, 일반적인 변환 방법과 동일하게, 수평 방향의 변환 타입을 먼저 적용하고(S1450), 이어서 수직 방향의 변환 타입을 적용한다(S1460).
도 14의 각 단계에서 수행되는 구체적인 동작은 도 8의 대응하는 단계에서 설명한 바와 같다.
도 15는 본 발명이 적용되는 복호화기에서 역변환 대상 블록에 서로 다른 역변환을 적용하는 경우에, 인트라 예측 모드에 따라서 역변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 15에서는 도 13과 달리, 인트라 예측 모드의 각도를 먼저 판단한다.
도 15를 참조하면, 엔트로피 복호화의 결과, 복호화기는 먼저 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인지를 판단할 수 있다(S1510). 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인 경우에, 복호화기는 대상 블록에 수평 방향과 수직 방향으로 동일한 변환 타입이 적용되었는지를 판단한다(S1520).
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용된 경우에, 복호화기는 수평 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 역변환을 수행한다(S1530). 이어서, 복호화기는 수직 방향의 역변환 타입을 이용하여 대상 블록에 대한 수직 방향의 역변환을 수행한다(S1540). 따라서, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 역변환을 적용할 수 있다.
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 복호화기는 수직 방향의 역변환 타입을 우선 적용하고(S1550), 수평 방향의 역변환 타입을 이어서 적용한다(S1160). 따라서, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 역변환을 적용할 수 있다.
또한, 인트라 예측 모드의 각도는 수평이지만, 대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에도, 복호화기는 수직 방향의 역변환 타입을 우선 적용하고(S1550), 수평 방향의 역변환 타입을 이어서 적용할 수 있다(S1560).
도 15의 각 단계에서 수행되는 구체적인 동작은 도 13의 대응하는 단계에서 설명한 바와 같다.
도 8, 10, 12 및 14에서 설명한 내용을 참조하면, 부호화기는 6 가지 경우의 변환 순서 조합 중 어느 하나를 수행할 수 있다. 도 9, 11, 13 및 15에서 설명한 내용을 참조하면, 복호화기는 6가지 경우의 역변환 순서 조합 중 어느 하나를 수행할 수 있다.
도 16은 부호화기에서 수행할 수 있는 변환과 그에 대응하여 복호화기에서 수행되는 역변환의 순서를 개략적으로 도시한 것이다.
도 16의 (a) ~ (f)를 참조하면, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 각 변환에 대응하는 역변환을 적용한다.
부호화기(1610a)에서 수직 방향으로 DST를 적용한 뒤 수평 방향으로 DCT를 적용한 경우에, 복호화기(1610a)에서는 수평 방향으로 IDCT를 적용한 뒤 수직 방향으로 IDST를 적용할 수 있다.
부호화기(1610b)에서 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DCT를 적용한 경우에, 복호화기(1610b)에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
부호화기(1610c)에서 수평 방향으로 DCT를 적용한 뒤 수직 방향으로 DST를 적용한 경우에, 복호화기(1610c)에서는 수직 방향으로 IDST를 적용한 뒤 수평 방향으로 IDCT를 적용할 수 있다.
부호화기(1610d)에서 수직 방향으로 DCT를 적용한 뒤 수평 방향으로 DST를 적용한 경우에, 복호화기(1610d)에서는 수평 방향으로 IDST를 적용한 뒤 수직 방향으로 IDCT를 적용할 수 있다.
부호화기(1610e)에서 수평 방향으로 DCT를 적용한 뒤 수직 방향으로 DCT를 적용한 경우에, 복호화기(1610e)에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDCT를 적용할 수 있다.
부호화기(1610f)에서 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DST를 적용한 경우에, 복호화기(1610f)에서는 수직 방향으로 IDST를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
대상 블록에 대한 수직 방향의 변환과 수평 방향의 변환에 서로 다른 변환 타입이 적용되는 경우에는, 수직과 수평의 두 변환 방향과 DCT와 DST의 두 변환 타입을 고려할 때 4가지 변환의 경우를 생각할 수 있다. 예컨대, 루마 데이터에 대한 4X4의 변환 유닛에 대하여는, 4가지 변환의 경우 중 어느 하나가 적용될 수 있다.
표 5는 도 7을 기반으로 인트라 예측 모드에 따른 변환 타입을 개략적으로 나타낸 것이다.
<표 5>
표 5에서, 이종 변환은 수평 방향으로 적용되는 변환 타입(DCT와 DST 중 어느 하나)와 수직 방향으로 적용되는 변환 타입이 상이한 경우를 나타내고, 동종 변환은 수평 방향으로 적용되는 변환 타입과 수직 방향으로 적용되는 변환 타입이 동일한 경우를 나타낸다.
표 5에서 인트라 예측 모드 0, 5, 6, 12, 13, 22, 23, 24, 25는, 도 7을 참조하면, 수평 방향 변환 타입(horizTrType)과 수직 방향 변환 타입(verTrType)이 상이한 수직 방향 인트라 예측 모드들이다.
또한, 표 5에서 인트라 예측 모드 1, 8, 9, 16, 17, 30, 31, 32, 33는, 도 7을 참조하면, 수평 방향 변환 타입(horizTrType)과 수직 방향 변환 타입(verTrType)이 상이한 수평 방향 인트라 예측 모드들이다.
표 5에 대하여, 본 발명에 따라 대상 블록에 대한 인트라 예측 모드를 고려하여 대상 블록에 대한 수평 방향 변환 타입과 수직 방향 변환 타입의 적용 순서를 결정할 수 있다.
표 6는 대상 블록에 대한 인트라 예측 모드의 방향과 동일한 방향의 변환 타입을 우선 적용하는 실시예에 대하여, 인트라 예측 모드와 변환 타입의 적용 순서를 개략적으로 나타낸 것이다.
<표 6>
표 6을 참조하면, 대상 블록에 대한 인트라 예측 모드의 방향과 동일한 방향의 변환 타입을 우선 적용하는 경우에, 인트라 예측 모드가 수직 방향의 모드(0, 5, 6, 12, 13, 22, 23, 24, 25) 중 어느 하나의 모드라면, 도 16의 (a)에 따라서 부호화기에서는 수직 방향으로 DST를 적용한 뒤 수평 방향으로 DCT를 적용하며, 복호화기에서는 수평 방향으로 IDCT를 적용한 뒤 수직 방향으로 IDST를 적용할 수 있다.
또한, 인트라 예측 모드가 수평 방향의 모드(1, 8, 9, 16, 17, 30, 31, 32, 33) 중 어느 하나의 모드라면, 도 16의 (b)에 따라서 부호화기에서는 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DCT를 적용하고, 복호화기에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
또한, 인트라 예측 모드가 DC 모드(모드 2)인 경우는, 수직 방향과 수평 방향으로 변환 타입이 다르게 적용되는 경우가 아니며, 상술한 바와 같이 종래의 적용 순서에 따라 수평 방향의 변환이 먼저 적용될 수 있다. 따라서, 도 16(e)와 같이 부호화기에서는 수평 방향으로 DCT를 적용한 뒤 수직 방향으로 DCT를 적용하고, 복호화기에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDCT를 적용할 수 있다.
또한, 인트라 예측 모드가 3, 4, 7, 10, 11, 14, 15, 18, 19, 20, 21, 26, 27, 28, 29, 34 중 어느 하나인 경우도, 수직 방향과 수평 방향으로 변환 타입이 다르게 적용되는 경우가 아니며, 상술한 바와 같이, 수평 방향의 변환이 먼저 적용될 수 있다. 따라서, 도 16(f)와 같이 부호화기에서는 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DST를 적용하고, 복호화기에서는 수직 방향으로 IDST를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
표 7은 대상 블록에 대한 인트라 예측 모드의 방향과 다른 방향의 변환 타입을 우선 적용하는 실시예에 대하여, 인트라 예측 모드와 변환 타입의 적용 순서를 개략적으로 나타낸 것이다.
<표 7>
표 7을 참조하면, 대상 블록에 대한 인트라 예측 모드의 방향과 다른 방향의 변환 타입을 우선 적용하는 경우에, 인트라 예측 모드가 수직 방향의 모드(0, 5, 6, 12, 13, 22, 23, 24, 25) 중 어느 하나의 모드라면, 도 16의 (c)에 따라서 부호화기에서는 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DCT를 적용하고, 복호화기에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
또한, 인트라 예측 모드가 수평 방향의 모드(1, 8, 9, 16, 17, 30, 31, 32, 33) 중 어느 하나의 모드라면, 도 16의 (d)에 따라서 부호화기에서는 수직 방향으로 DCT를 적용한 뒤 수평 방향으로 DST를 적용하고, 복호화기에서는 수평 방향으로 IDST를 적용한 뒤 수직 방향으로 IDCT를 적용할 수 있다.
또한, 인트라 예측 모드가 DC 모드(모드 2)인 경우는, 수직 방향과 수평 방향으로 변환 타입이 다르게 적용되는 경우가 아니며, 상술한 바와 같이 종래의 적용 순서에 따라 수평 방향의 변환이 먼저 적용될 수 있다. 따라서, 도 16(e)와 같이 부호화기에서는 수평 방향으로 DCT를 적용한 뒤 수직 방향으로 DCT를 적용하고, 복호화기에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDCT를 적용할 수 있다.
또한, 인트라 예측 모드가 3, 4, 7, 10, 11, 14, 15, 18, 19, 20, 21, 26, 27, 28, 29, 34 중 어느 하나인 경우도, 수직 방향과 수평 방향으로 변환 타입이 다르게 적용되는 경우가 아니며, 상술한 바와 같이, 수평 방향의 변환이 먼저 적용될 수 있다. 따라서, 도 16(f)와 같이 부호화기에서는 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DST를 적용하고, 복호화기에서는 수직 방향으로 IDST를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
지금까지 본 발명이 적용되는 시스템에서 대상 블록에 적용하는 수직 방향의 변환과 수평 방향의 변환이 상이한 경우에, 인트라 예측 모드의 방향에 따라서 수직 방향과 수평 방향의 상이한 변환 중 어떤 변환을 먼저 적용할 것인지를 결정하는 방법을 설명하였으나, 본 발명은 상술한 발명에 한정되지 않는다. 예컨대, 대상 블록에 적용하는 수직 방향의 변환과 수평 방향의 변환이 상이한 경우에, 방향과 상관없이 특정 변환 타입을 먼저 적용하도록 할 수 있다. 즉, DCT를 수직 방향과 수평 방향 중 소정의 방향으로 먼저 적용한 후에, 다른 방향으로 DST를 적용하도록 할 수 있다. 또한, DST를 수직 방향과 수평 방향 중 소정의 방향으로 먼저 적용한 후에, 다른 방향으로 DCT를 적용하도록 할 수 있다.
도 17은 본 발명이 적용되는 시스템에서 부호화기의 동작을 개략적으로 설명하는 순서도이다.
도 17을 참조하면, 부호화기는 대상 블록에 적용되는 예측 모드를 판단한다(S1710). 부호화기는 대상 블록에 적용되는 인트라 예측 모드가 무엇인지를 파악하고, 예측 모드의 방향을 판단할 수 있다.
이어서, 부호화기는 대상 블록에 대하여 예측 모드에 따른 변환을 수행한다(S1720). 부호화기는 대상 블록에 적용하는 수직 및 수평 방향의 변환 타입이 상이한 경우에는 인트라 예측 모드의 방향에 따라서 어떤 방향의 변환 타입을 먼저 적용할 것인지를 결정할 수 있다. 수직 및 수평 방향의 변환 타입이 상이한지는 인트라 예측 모드와 함께 대상 변환 유닛의 사이즈를 고려하여 판단할 수 있다. 예컨대, 4X4의 변환 유닛의 경우, 서로 다른 변환 타입 DCT와 DST가 대상 블록에 적용될 수 있다. 부호화기에서 예측 모드에 따른 변환을 수행하는 구체적인 방법은 상술한 바와 같다.
또한, 도 17에서는 부호화기가 각 단계를 수행하는 것으로 설명하였으나, 부호화기 내의 특정 모듈, 예컨대 변환부에서 상술한 바와 같은 각 단계를 수행할 수 있다.
도 18은 본 발명이 적용되는 시스템에서 복호화기의 동작을 개략적으로 설명하는 순서도이다.
도 18을 참조하면, 복호화기는 대상 블록에 적용된 예측 모드를 판단한다(S1810). 복호화기는 대상 블록에 적용된 인트라 예측 모드가 무엇인지를 파악하고, 예측 모드의 방향을 판단할 수 있다.
이어서, 복호화기는 대상 블록에 대하여 예측 모드에 따른 역변환을 수행한다(S1820). 복호화기는 인트라 예측 모드에 따라서 대상 블록에 적용한 수직 및 수평 방향의 변환 타입이 상이한 경우에는 인트라 예측 모드의 방향에 따라서 어떤 방향의 역변환 타입을 먼저 적용할 것인지를 결정할 수 있다. 수직 및 수평 방향의 변환 타입이 상이한지는 인트라 예측 모드와 함께 대상 변환 유닛의 사이즈를 고려하여 판단할 수 있다. 예컨대, 4X4의 변환 유닛의 경우, 서로 다른 변환 타입 DCT와 DST가 대상 블록에 적용될 수 있다.
인트라 예측 모드에 따라서 적용되는 변환/역변환의 순서는 부호화기와 복호화기 사이에 미리 정해져 있을 수 있다. 예컨대, 복호화기가 인트라 예측 모드에 대응해서 수직 방향의 역변환을 먼저 수행하고 수평 방향의 역변환을 이어서 수행한 경우라면, 대상 블록은 부호화기에서 수평 방향의 변환이 먼저 수행되고 수직 방향의 변환이 이어서 수행된 것일 수 있다. 또한, 복호화기가 인트라 예측 모드에 대응해서 수평 방향의 역변환을 먼저 수행하고 수직 방향의 역변환을 이어서 수행한 경우라면, 대상 블록은 부호화기에서 수직 방향의 변환이 먼저 수행되고 수평 방향의 변환이 이어서 수행된 것일 수 있다.
한편, 복호화기는 대상 변환 유닛의 인트라 예측 모드에 따라서 역변환을 수행하는 방법 외에, 부호화기에서 적용된 변환에 대응하는 역변환을 부호화기에서 적용된 변환의 역순으로 적용할 수도 있다. 대상 변환 유닛에 적용된 예측 모드에 관한 정보 및/또는 대상 블록 변환 유닛에 적용된 변환 타입과 적용 순서는 비트스트림상으로 복호화기에 전달될 수 있다.
복호화기에서 예측 모드에 따른 변환을 수행하는 구체적인 방법은 상술한 바와 같다. 또한, 도 18에서는 복호화기가 각 단계를 수행하는 것으로 설명하였으나, 복호화기 내의 특정 모듈, 예컨대 역변환부에서 상술한 바와 같은 각 단계를 수행할 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (12)
- 변환 대상 블록에 적용하는 제1 변환과 제2 변환 사이의 적용 순서를 결정하는 단계; 및
상기 적용 순서에 따라서 상기 제1 변환과 상기 제2 변환을 적용하는 단계를 포함하며,
상기 적용 순서는 상기 변환 대상 블록의 인트라 예측 모드에 따라서 결정되는 것을 특징으로 하는 영상 정보 변환 방법. - 제1항에 있어서, 상기 인트라 예측 모드에 대하여 상기 제1 변환과 상기 제2 변환이 상이한 경우에는,
상기 제1 변환과 상기 제2 변환 중 상기 인트라 예측 모드의 방향과 동일한 방향으로 적용되는 변환을 우선 적용하는 것을 특징으로 하는 영상 정보 변환 방법. - 제1항에 있어서, 상기 인트라 예측 모드에 대하여 상기 제1 변환과 상기 제2 변환이 상이한 경우에는,
상기 제1 변환과 상기 제2 변환 중 상기 인트라 예측 모드의 방향과 상이한 방향으로 적용되는 변환을 우선 적용하는 것을 특징으로 하는 영상 정보 변환 방법. - 제1항에 있어서, 상기 변환 대상 블록은 4x4 픽셀의 휘도 블록인 것을 특징으로 하는 영상 정보 변환 방법.
- 역변환 대상 블록에 적용하는 제1 역변환과 제2 역변환 사이의 적용 순서를 결정하는 단계; 및
상기 적용 순서에 따라서 상기 제1 역변환과 상기 제2 역변환을 적용하는 단계를 포함하며,
상기 적용 순서는 상기 역변환 대상 블록의 인트라 예측 모드에 따라서 결정되는 것을 특징으로 하는 영상 정보 역변환 방법. - 제5항에 있어서, 상기 인트라 예측 모드에 대하여 상기 제1 역변환과 제2 역변환이 상이한 경우에는,
상기 제1 역변환과 상기 제2 역변환 중 상기 인트라 예측 모드의 방향과 동일한 방향으로 적용되는 역변환을 우선 적용하는 것을 특징으로 하는 영상 정보 역변환 방법. - 제5항에 있어서, 상기 인트라 예측 모드에 대하여 상기 제1 역변환과 제2 역변환이 상이한 경우에는,
상기 제1 역변환과 상기 제2 역변환 중 상기 인트라 예측 모드의 방향과 상이한 방향으로 적용되는 역변환을 우선 적용하는 것을 특징으로 하는 영상 정보 역변환 방법. - 역변환 대상 블록에 적용하는 제1 역변환과 제2 역변환 사이의 적용 순서를 결정하는 단계; 및
상기 적용 순서에 따라서 상기 제1 역변환과 상기 제2 역변환을 적용하는 단계를 포함하며,
상기 적용 순서는 상기 제1 역변환에 대응하는 제1 변환과 상기 제2 역변환에 대응하는 제2 변환이 상기 역변환 대상 블록에 적용된 변환 순서의 역순으로 적용되며,
상기 변환 순서는 상기 역변환 대상 블록의 인트라 예측 모드의 방향에 따라서 정해지는 것을 특징으로 하는 영상 정보 역변환 방법. - 제8항에 있어서, 상기 변환 순서는
상기 제1 변환과 상기 제2 변환 중에서 상기 인트라 예측 모드의 방향과 동일한 방향을 갖는 변환을 우선 적용하는 순서인 것을 특징으로 하는 영상 정보 역변환 방법. - 제8항에 있어서, 상기 변환 순서는
상기 제1 변환과 상기 제2 변환 중에서 상기 인트라 예측 모드의 방향과 상이한 방향을 갖는 변환을 우선 적용하는 순서인 것을 특징으로 하는 영상 정보 역변환 방법. - 대상 블록에 대한 예측을 수행하는 예측부; 및
상기 대상 블록에 대한 변환을 수행하는 변환부를 포함하며,
상기 변환부는,
상기 예측부에서 수행한 인트라 예측 블록의 모드에 따라서 상기 대상 블록에 적용되는 제1 및 제2 변환의 적용 순서를 결정하는 것을 특징으로 하는 부호화 장치. - 수신한 비트스트림을 엔트로피 복호화하여 정보를 획득하는 엔트로피 복호화부;
상기 정보를 기반으로 대상 블록에 대한 역변환을 수행하는 역변환부; 및
상기 대상 블록에 대한 예측을 수행하는 예측부를 포함하며,
상기 역변환부는,
상기 대상 블록에 적용된 인트라 예측 블록의 모드에 따라서 상기 대상 블록에 적용되는 제1 및 제2 역변환의 적용 순서를 결정하는 것을 특징으로 하는 복호화 장치.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2011-0105156 | 2011-10-14 | ||
| KR1020110105156A KR20130040414A (ko) | 2011-10-14 | 2011-10-14 | 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2013055040A1 true WO2013055040A1 (ko) | 2013-04-18 |
Family
ID=48082057
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2012/007306 Ceased WO2013055040A1 (ko) | 2011-10-14 | 2012-09-12 | 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20130040414A (ko) |
| WO (1) | WO2013055040A1 (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR3040578A1 (fr) * | 2015-08-31 | 2017-03-03 | Orange | Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USD809642S1 (en) | 2016-01-08 | 2018-02-06 | Samsung Electronics Co., Ltd. | Air conditioner |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1155678A (ja) * | 1997-07-31 | 1999-02-26 | Victor Co Of Japan Ltd | ブロック間内挿予測符号化装置、復号化装置、符号化方法及び復号化方法 |
| JP2008125002A (ja) * | 2006-11-15 | 2008-05-29 | Nippon Hoso Kyokai <Nhk> | 画像符号化装置、画像復号装置及び画像処理プログラム |
| KR20080089166A (ko) * | 2007-03-30 | 2008-10-06 | 후지쯔 가부시끼가이샤 | 화상 처리 방법, 부호화기 및 복호화기 |
| KR20100038060A (ko) * | 2008-10-02 | 2010-04-12 | 한국전자통신연구원 | 이산 여현 변환/이산 정현 변환을 선택적으로 이용하는 부호화/복호화 장치 및 방법 |
| JP2010233263A (ja) * | 2010-07-12 | 2010-10-14 | Sony Corp | 画像処理装置および方法、プログラム、並びに、記録媒体 |
-
2011
- 2011-10-14 KR KR1020110105156A patent/KR20130040414A/ko not_active Withdrawn
-
2012
- 2012-09-12 WO PCT/KR2012/007306 patent/WO2013055040A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1155678A (ja) * | 1997-07-31 | 1999-02-26 | Victor Co Of Japan Ltd | ブロック間内挿予測符号化装置、復号化装置、符号化方法及び復号化方法 |
| JP2008125002A (ja) * | 2006-11-15 | 2008-05-29 | Nippon Hoso Kyokai <Nhk> | 画像符号化装置、画像復号装置及び画像処理プログラム |
| KR20080089166A (ko) * | 2007-03-30 | 2008-10-06 | 후지쯔 가부시끼가이샤 | 화상 처리 방법, 부호화기 및 복호화기 |
| KR20100038060A (ko) * | 2008-10-02 | 2010-04-12 | 한국전자통신연구원 | 이산 여현 변환/이산 정현 변환을 선택적으로 이용하는 부호화/복호화 장치 및 방법 |
| JP2010233263A (ja) * | 2010-07-12 | 2010-10-14 | Sony Corp | 画像処理装置および方法、プログラム、並びに、記録媒体 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR3040578A1 (fr) * | 2015-08-31 | 2017-03-03 | Orange | Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants |
| WO2017037368A3 (fr) * | 2015-08-31 | 2017-05-04 | Orange | Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants |
| US10523969B2 (en) | 2015-08-31 | 2019-12-31 | Orange | Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto |
| US10911784B2 (en) | 2015-08-31 | 2021-02-02 | Orange | Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto |
| CN115802030A (zh) * | 2015-08-31 | 2023-03-14 | 奥兰治 | 对图像进行编码和解码的方法、用于对图像进行编码和解码的设备及其相应的计算机程序 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20130040414A (ko) | 2013-04-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102515121B1 (ko) | 쿼드 트리를 이용한 블록 정보 부/복호화 방법 및 이러한 방법을 사용하는 장치 | |
| JP5869681B2 (ja) | 候補画面内予測モードを利用した画面内予測モードの符号化/復号化方法及び装置 | |
| KR101924455B1 (ko) | 인트라 예측 모드 부호화/복호화 방법 및 장치 | |
| KR101527444B1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
| KR101425772B1 (ko) | 영상 부호화 및 복호화 방법과 이를 이용한 장치 | |
| KR102403793B1 (ko) | 휘도 샘플을 이용한 색차 블록의 화면 내 예측 방법 및 이러한 방법을 사용하는 장치 | |
| CN104067617B (zh) | 解码视频信号的方法 | |
| WO2013058473A1 (ko) | 화면 내 예측 모드에 기초한 적응적인 변환 방법 및 이러한 방법을 사용하는 장치 | |
| WO2013051794A1 (ko) | 두 개의 후보 인트라 예측 모드를 이용한 화면 내 예측 모드의 부/복호화 방법 및 이러한 방법을 사용하는 장치 | |
| KR102415377B1 (ko) | 두 개의 후보 인트라 예측 모드를 이용한 화면 내 예측 모드의 부/복호화 방법 및 이러한 방법을 사용하는 장치 | |
| WO2013055040A1 (ko) | 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치 | |
| KR102297268B1 (ko) | 두 개의 후보 인트라 예측 모드를 이용한 화면 내 예측 모드의 부/복호화 방법 및 이러한 방법을 사용하는 장치 | |
| KR102069784B1 (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: 12839990 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 12839990 Country of ref document: EP Kind code of ref document: A1 |













