WO2023277538A1 - 서브 블록 단위의 화면 내 예측에 기반한 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체 - Google Patents

서브 블록 단위의 화면 내 예측에 기반한 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체 Download PDF

Info

Publication number
WO2023277538A1
WO2023277538A1 PCT/KR2022/009245 KR2022009245W WO2023277538A1 WO 2023277538 A1 WO2023277538 A1 WO 2023277538A1 KR 2022009245 W KR2022009245 W KR 2022009245W WO 2023277538 A1 WO2023277538 A1 WO 2023277538A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
prediction
intra
mode
sub
Prior art date
Application number
PCT/KR2022/009245
Other languages
English (en)
French (fr)
Inventor
임성원
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to CN202280052348.8A priority Critical patent/CN117813821A/zh
Publication of WO2023277538A1 publication Critical patent/WO2023277538A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the present disclosure relates to a video signal processing method and apparatus.
  • High-resolution and high-quality images such as high definition (HD) images and ultra high definition (UHD) images is increasing in various application fields.
  • image data becomes higher resolution and higher quality, the amount of data increases relatively compared to existing image data. Therefore, when image data is transmitted using a medium such as an existing wired/wireless broadband line or stored using an existing storage medium, transmission cost and Storage costs increase.
  • High-efficiency video compression technologies can be used to solve these problems that occur as video data becomes high-resolution and high-quality.
  • An inter-prediction technique for predicting pixel values included in the current picture from pictures before or after the current picture as an image compression technique an intra-prediction technique for predicting pixel values included in the current picture using pixel information within the current picture
  • image compression technology can be used to effectively compress and transmit or store image data.
  • the present disclosure intends to provide a method and apparatus for dividing a block in a tree structure.
  • An object of the present disclosure is to provide a method and apparatus for deriving an intra prediction mode for intra prediction.
  • An object of the present disclosure is to provide a method and apparatus for deriving an extended reference pixel for intra-prediction.
  • An object of the present disclosure is to provide a method and apparatus for performing intra-prediction in units of sub-blocks.
  • An object of the present disclosure is to provide a method and apparatus for storing only an intra-prediction mode of a representative block among sub-blocks.
  • An object of the present disclosure is to provide a method and apparatus for generating a prediction block based on one or more intra-prediction modes.
  • An image decoding method includes deriving a reference mode of each of neighboring blocks within a current block, and a subblock having a size smaller than that of the current block within the current block based on at least one of the reference modes. and performing an in-screen prediction for
  • An image encoding method includes deriving a reference mode of each of neighboring blocks within a current block, and a subblock having a size smaller than that of the current block within the current block based on at least one of the reference modes. and performing an in-screen prediction for
  • the intra-prediction of the sub-block may be performed based on an intra-prediction mode derived based on the at least one reference mode.
  • the intra-prediction mode may be derived by performing a weighted sum operation between a first reference mode and a second reference mode selected from among the reference modes.
  • the first reference mode is an intra-prediction mode of an upper neighboring block belonging to the same column as the sub-block
  • the second reference mode is a left-side prediction mode belonging to the same row as the sub-block. It may be an intra-prediction mode of a neighboring block.
  • the first weight applied to the first reference mode and the second weight applied to the second reference mode are It may be determined based on the distance of and the distance between the sub-block and the left neighboring block.
  • the reference mode is derived based on an intra-prediction mode of a neighboring block, and when the neighboring block is not coded by intra-prediction, at least one adjacent to the neighboring block
  • the reference mode may be derived based on an intra-prediction mode of a block.
  • the average value, minimum value, or maximum value of intra prediction modes of blocks located on both sides of the neighboring block is set as the reference mode. It can be.
  • a third prediction block for the sub-block may be generated based on the second prediction block generated through intra-prediction.
  • the third prediction block may be obtained based on a weighted sum operation between the first prediction block and the second prediction block.
  • the first weight applied to the first prediction block and the second weight applied to the second prediction block are It may be determined based on the distance of and the distance between the sub-block and the left neighboring block.
  • the sub-block when intra prediction is performed on the sub-block having a size smaller than that of the current block, the sub-block may be set as a unit for performing inverse transformation.
  • the inverse transform may be performed based on a transform kernel determined based on an intra-prediction mode of the sub-block.
  • the video decoding method when intra prediction is performed on the sub-block having a size smaller than that of the current block, it may be selectively determined whether to set the sub-block as a performing unit of inverse transformation.
  • a computer-readable recording medium may store a bitstream generated by the above-described image encoding method or decoded by the image decoding method.
  • the size and shape of a coding block, a prediction block, or a transform block can be effectively determined through block division of various tree structures.
  • encoding efficiency of intra prediction may be improved by using an expanded MPM candidate and a reference pixel as a basis.
  • encoding efficiency can be improved through intra-prediction in units of sub-blocks.
  • FIG. 1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present disclosure.
  • FIG. 2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present disclosure.
  • 3 to 12 illustrate block division methods according to the present disclosure.
  • FIG. 18 illustrates an intra prediction method in an encoding/decoding apparatus according to the present disclosure.
  • 19 and 20 illustrate pre-defined intra prediction modes available for a current block as an embodiment to which the present disclosure is applied.
  • 21 illustrates a range of intra prediction modes usable by a partition within a current block as an embodiment to which the present disclosure is applied.
  • 22 and 23 illustrate neighboring reference positions used when constructing an MPM list as an embodiment to which the present disclosure is applied.
  • 24 to 28 illustrate a method of deriving a reference pixel as an embodiment to which the present disclosure is applied.
  • 29 is a diagram for explaining an example of determining an intra-prediction mode in units of sub-blocks according to an embodiment of the present disclosure.
  • 30 and 31 are diagrams illustrating a method of deriving a reference mode of each of neighboring blocks adjacent to a current block.
  • 32 and 33 illustrate examples of setting intra-prediction modes of sub-blocks based on reference modes.
  • 34 and 35 show examples of deriving an intra-prediction mode of a sub-block by weight-summing reference modes.
  • FIG. 36 illustrates an example in which a sub-block including a center-located pixel of a current block is designated as a representative block.
  • 37 is a diagram illustrating an example of generating a prediction block of sub-blocks by performing a plurality of intra-prediction.
  • 38 is a diagram illustrating encoding/decoding aspects depending on whether sub-blocks are set as transform units.
  • 39 illustrates an example in which transform skipping and transform kernels are determined for each sub-block.
  • first and second may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present disclosure.
  • the terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items.
  • FIG. 1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present disclosure.
  • an image encoding apparatus 100 includes a picture division unit 110, prediction units 120 and 125, a transform unit 130, a quantization unit 135, a rearrangement unit 160, an entropy encoding unit ( 165), an inverse quantization unit 140, an inverse transform unit 145, a filter unit 150, and a memory 155.
  • each component shown in FIG. 1 is shown independently to represent different characteristic functions in the video encoding device, and does not mean that each component is made of separate hardware or a single software component. That is, each component is listed and included as each component for convenience of explanation, and at least two components of each component can be combined to form one component, or one component can be divided into a plurality of components to perform a function, and each of these components can be divided into a plurality of components. Integrated embodiments and separated embodiments of components are also included in the scope of the present disclosure unless departing from the essence of the present disclosure.
  • components may be optional components for improving performance rather than essential components that perform essential functions in the present disclosure.
  • the present disclosure may be implemented by including only components essential to implement the essence of the present disclosure, excluding components used for performance improvement, and a structure including only essential components excluding optional components used for performance enhancement. Also included in the scope of the present disclosure.
  • the picture division unit 110 may divide an input picture into at least one processing unit.
  • the processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU).
  • the picture divider 110 divides one picture into a plurality of combinations of coding units, prediction units, and transformation units, and combines one coding unit, prediction unit, and transformation unit according to a predetermined criterion (eg, a cost function). You can encode a picture by selecting .
  • a predetermined criterion eg, a cost function
  • one picture may be divided into a plurality of coding units.
  • a recursive tree structure such as a quad tree, a ternary tree, or a binary tree may be used.
  • a coding unit divided into other coding units using a coding unit as a root may be divided with as many child nodes as the number of divided coding units.
  • a coding unit that is not further divided according to a certain limit becomes a leaf node. For example, when it is assumed that quad tree splitting is applied to one coding unit, one coding unit may be split into up to four different coding units.
  • a coding unit may be used as a unit for performing encoding or a unit for performing decoding.
  • the prediction unit may be divided into at least one square or rectangular shape having the same size within one coding unit, and one of the prediction units divided within one coding unit predicts another prediction unit. It may be divided to have a shape and/or size different from the unit.
  • a conversion unit and a prediction unit may be set identically. In this case, after dividing the encoding unit into a plurality of transformation units, intra-prediction may be performed for each transformation unit. Coding units may be divided horizontally or vertically. The number of transformation units generated by dividing the coding unit may be 2 or 4 according to the size of the coding unit.
  • the prediction units 120 and 125 may include an inter prediction unit 120 that performs inter prediction and an intra prediction unit 125 that performs intra prediction. It is possible to determine whether to use inter-prediction or intra-prediction for a coding unit, and determine specific information (eg, intra-prediction mode, motion vector, reference picture, etc.) according to each prediction method. In this case, a processing unit in which prediction is performed and a processing unit in which a prediction method and specific details are determined may be different. For example, a prediction method and a prediction mode may be determined in a coding unit, and prediction may be performed in a prediction unit or a transformation unit. A residual value (residual block) between the generated prediction block and the original block may be input to the transform unit 130 .
  • an inter prediction unit 120 that performs inter prediction
  • an intra prediction unit 125 that performs intra prediction. It is possible to determine whether to use inter-prediction or intra-prediction for a coding unit, and determine specific information (eg, intra-prediction mode, motion vector, reference
  • prediction mode information and motion vector information used for prediction may be encoded in the entropy encoding unit 165 together with residual values and transmitted to a decoding device.
  • a specific encoding mode it is also possible to encode an original block as it is and transmit it to a decoder without generating a prediction block through the prediction units 120 and 125 .
  • the inter-prediction unit 120 may predict a prediction unit based on information on at least one picture among pictures before or after the current picture, and in some cases based on information on a partially coded region within the current picture. You can also predict prediction units.
  • the inter-prediction unit 120 may include a reference picture interpolation unit, a motion estimation unit, and a motion compensation unit.
  • the reference picture interpolator may receive reference picture information from the memory 155 and generate pixel information of an integer pixel or less in the reference picture.
  • a DCT-based 8-tap interpolation filter with different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/4 pixels.
  • a DCT-based 4-tap interpolation filter with 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 full search-based block matching algorithm (FBMA), three step search (TSS), and new three-step search algorithm (NTS) may be used.
  • FBMA full search-based block matching algorithm
  • TSS three step search
  • NTS new three-step search algorithm
  • the motion vector may have a motion vector value in units of 1/2 or 1/4 pixels based on interpolated pixels.
  • the motion estimation unit may predict the current prediction unit by using a different motion estimation method.
  • Various methods such as a skip method, a merge method, an advanced motion vector prediction (AMVP) method, and an intra block copy method may be used as motion prediction methods.
  • AMVP advanced motion vector prediction
  • intra block copy method may be used as motion prediction methods.
  • the intra-prediction unit 125 may generate a prediction block based on reference pixel information that is pixel information in the current picture.
  • Reference pixel information may be derived from a selected one of a plurality of reference pixel lines.
  • the N-th reference pixel line may include left pixels having an x-axis difference between them and the upper-left pixel in the current block of N, and upper pixels having a y-axis difference of N between them and the upper-left pixel in the current block.
  • the number of reference pixel lines that can be selected by the current block may be 1, 2, 3 or 4.
  • a block adjacent to the current prediction unit is a block on which inter-prediction is performed
  • the reference pixel is a pixel on which inter-prediction is performed
  • the reference pixel included in the block on which inter-prediction is performed performs inter-prediction. It can be used by replacing it with the reference pixel information of the block. That is, when the reference pixel is unavailable, information on the unavailable reference pixel may be replaced with at least one information among available reference pixels.
  • Prediction modes in intra-prediction may include a directional prediction mode in which reference pixel information is used according to a prediction direction, and a non-directional prediction mode in which directional information is not used during prediction.
  • a mode for predicting luminance information and a mode for predicting chrominance information may be different, and intra-prediction mode information or predicted luminance signal information used for predicting luminance information may be used to predict chrominance information. .
  • the picture for the prediction unit is based on the pixel on the left, the top left, and the top of the prediction unit. I can do my predictions.
  • a prediction block may be generated after applying a smoothing filter to a reference pixel according to a prediction mode. Whether to apply a smoothing filter may be determined according to the selected reference pixel line.
  • the intra prediction mode of the current prediction unit may be predicted from the intra prediction modes of prediction units existing around the current prediction unit.
  • the current prediction unit and the neighboring prediction using predetermined flag information Information that the prediction modes of the units are the same may be transmitted, and if the prediction modes of the current prediction unit and the neighboring prediction units are different, entropy encoding may be performed to encode prediction mode information of the current block.
  • a residual block may be generated that includes residual information that is a difference between a prediction unit performed prediction based on the prediction unit generated by the prediction units 120 and 125 and an original block of the prediction unit.
  • the generated residual block may be input to the transform unit 130 .
  • the residual block including the original block and the residual information of the prediction unit generated through the prediction units 120 and 125 is converted into DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT and It can be converted using the same conversion method. Whether DCT, DST, or KLT is applied to transform the residual block is based on at least one of the size of the transformation unit, the shape of the transformation unit, the prediction mode of the prediction unit, or the intra-prediction mode information of the prediction unit. can be determined by
  • the quantization unit 135 may quantize the values converted to the frequency domain by the transform unit 130 .
  • a quantization coefficient may change according to a block or an importance of an image.
  • the value calculated by the quantization unit 135 may be provided to the inverse quantization unit 140 and the rearrangement unit 160 .
  • the rearrangement unit 160 may rearrange the coefficient values for the quantized residual values.
  • the reordering unit 160 may change a 2D block-type coefficient into a 1-D vector form through a coefficient scanning method. For example, the reordering unit 160 may scan DC coefficients to high-frequency coefficients using a zig-zag scan method and change them into a one-dimensional vector form.
  • zig-zag scan vertical scan that scans two-dimensional block-shaped coefficients in the column direction, horizontal scan that scans two-dimensional block-shaped coefficients in the row direction, or two-dimensional block-shaped coefficients in the row direction.
  • Diagonal scan which scans block shape coefficients in a diagonal direction, may also be used. That is, it is possible to determine which scan method among zig-zag scan, vertical scan, horizontal scan, and diagonal scan is used according to the size of the transformation unit and the intra-prediction mode.
  • the entropy encoding unit 165 may perform entropy encoding based on the values calculated by the reordering unit 160 .
  • 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 165 receives residual value coefficient information and block type information of a coding unit from the reordering unit 160 and the prediction units 120 and 125, prediction mode information, division unit information, prediction unit information and transmission unit information, motion Various information such as vector information, reference frame information, block interpolation information, and filtering information can be encoded.
  • the entropy encoding unit 165 may entropy-encode the coefficient value of the coding unit input from the reordering unit 160 .
  • the inverse quantization unit 140 and the inverse transform unit 145 inversely quantize the values quantized by the quantization unit 135 and inverse transform the values transformed by the transform unit 130 .
  • the residual value (Residual) generated by the inverse quantization unit 140 and the inverse transform unit 145 is combined with the prediction unit predicted through the motion estimation unit, motion compensation unit, and intra prediction unit included in the prediction units 120 and 125.
  • a Reconstructed Block can be created.
  • the filter unit 150 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
  • a deblocking filter 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 can remove block distortion caused by a boundary between blocks in a reconstructed picture.
  • it may be determined whether to apply the deblocking filter to the current block based on pixels included in several columns or rows included in the block.
  • a strong filter or a weak filter may be applied according to the required deblocking filtering strength.
  • horizontal filtering and vertical filtering may be processed in parallel.
  • the offset correction unit may correct an offset of the deblocked image from the original image in units of pixels.
  • pixels included in the image are divided into a certain number of areas, then the area to be offset is determined and the offset is applied to the area, or the offset is performed considering the edge information of each pixel method can be used.
  • Adaptive Loop Filtering may be performed based on a value obtained by comparing the filtered reconstructed image with the original image. After dividing the pixels included in the image into predetermined groups, filtering may be performed differentially for each group by determining one filter to be applied to the corresponding group. Information related to whether or not to apply ALF may be transmitted for each coding unit (CU) of a luminance signal, and the shape and filter coefficients of an ALF filter to be applied may vary according to each block. In addition, the ALF filter of the same form (fixed form) may be applied regardless of the characteristics of the block to be applied.
  • ALF Adaptive Loop Filtering
  • the memory 155 may store a reconstructed block or picture calculated through the filter unit 150, and the stored reconstructed block or picture may be provided to the prediction units 120 and 125 when inter prediction is performed.
  • FIG. 2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present disclosure.
  • the image decoding apparatus 200 includes an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, a prediction unit 230 and 235, a filter unit ( 240), memory 245 may be included.
  • the input bitstream may be decoded by a procedure opposite to that of the image encoding device.
  • the entropy decoding unit 210 may perform entropy decoding by a procedure opposite to that performed by the entropy encoding unit of the image encoding apparatus. For example, various methods such as exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) may be applied corresponding to the method performed by the image encoding device.
  • various methods such as exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) may be applied corresponding to the method performed by the image encoding device.
  • the entropy decoding unit 210 may decode information related to intra-prediction and inter-prediction performed by the encoding device.
  • the rearrangement unit 215 may perform rearrangement based on a method in which the encoding unit rearranges the entropy-decoded bitstream in the entropy decoding unit 210 . Coefficients expressed in the form of one-dimensional vectors may be reconstructed into coefficients in the form of two-dimensional blocks and rearranged. The rearrangement unit 215 may perform rearrangement through a method of receiving information related to the coefficient scanning performed by the encoder and performing reverse scanning based on the scanning order performed by the corresponding encoder.
  • the inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoding device and the rearranged coefficient value of the block.
  • the inverse transform unit 225 may perform inverse transforms, that is, inverse DCT, inverse DST, and inverse KLT, on the transforms performed by the transform unit, that is, DCT, DST, and KLT, on the quantization result performed by the video encoding apparatus. Inverse transformation may be performed based on the transmission unit determined by the video encoding device. In the inverse transformation unit 225 of the video decoding apparatus, transformation techniques (eg, DCT, DST, KLT) are selectively performed according to a plurality of pieces of information such as prediction method, size and shape of the current block, prediction mode, and intra-prediction direction. It can be.
  • transformation techniques eg, DCT, DST, KLT
  • the prediction units 230 and 235 may generate a prediction block based on information related to prediction block generation provided from the entropy decoding unit 210 and previously decoded block or picture information provided from the memory 245 .
  • Intra-prediction is performed on a prediction unit based on a pixel existing in , but when performing intra-prediction, if the size of the prediction unit and the size of the transformation unit are different, a reference pixel based on the transformation unit is used to screen the picture. I can do my predictions.
  • intra prediction using NxN division may be used only for the smallest coding unit.
  • the prediction units 230 and 235 may include a prediction unit determination unit, an inter prediction unit, and an intra prediction unit.
  • the prediction unit determination unit receives various information such as prediction unit information input from the entropy decoding unit 210, prediction mode information of the intra prediction method, and motion prediction related information of the inter prediction method, and classifies the prediction unit from the current coding unit. , it is possible to determine whether the prediction unit performs inter-prediction or intra-prediction.
  • the inter-prediction unit 230 uses information necessary for inter-prediction of the current prediction unit provided from the video encoding device, based on information included in at least one picture among pictures before or after the current picture that includes the current prediction unit. It is possible to perform inter-prediction for the current prediction unit. Alternatively, inter prediction may be performed based on information of a pre-reconstructed partial region in the current picture including the current prediction unit.
  • the motion prediction methods of the prediction unit included in the corresponding coding unit based on the coding unit are skip mode, merge mode, AMVP mode, intra-block copy It is possible to determine which of the modes is used.
  • the intra prediction unit 235 may generate a prediction block based on pixel information in the current picture.
  • intra prediction may be performed based on intra prediction mode information of the prediction unit provided by the video encoding device.
  • the intra prediction unit 235 may include an Adaptive Intra Smoothing (AIS) filter, a reference pixel interpolation unit, and a DC filter.
  • the AIS filter is a part that performs filtering on reference pixels of the current block, and can be applied by determining whether to apply the filter according to the prediction mode of the current prediction unit.
  • AIS filtering may be performed on the reference pixels of the current block using the prediction mode of the prediction unit and AIS filter information provided by the image encoding apparatus.
  • AIS filter may not be applied.
  • the reference pixel interpolator may interpolate the reference pixel to generate a reference pixel in pixel units having an integer value or less.
  • the prediction mode of the current prediction unit is a prediction mode for generating a prediction block without interpolating reference pixels
  • the reference pixels may not be interpolated.
  • the DC filter may generate a 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 240 .
  • the filter unit 240 may include a deblocking filter, an offset correction unit, and an ALF.
  • Information on whether a deblocking filter is applied to a corresponding block or picture and, when a deblocking filter is applied, information on whether a strong filter or a weak filter is applied may be provided from the video encoding device.
  • the deblocking filter of the video decoding apparatus receives information related to the deblocking filter provided by the video encoding apparatus, and the video decoding apparatus may perform deblocking filtering on the corresponding block.
  • the offset correction unit may perform offset correction on the reconstructed image based on the type and offset value information of the offset correction applied to the image during encoding.
  • ALF may be applied to a coding unit based on ALF application information, ALF coefficient information, etc. provided from an encoding device. Such ALF information may be included in a specific parameter set and provided.
  • the memory 245 may store a reconstructed picture or block so that it can be used as a reference picture or reference block, and may also provide the reconstructed picture to an output unit.
  • a coding unit is used as a coding unit, but it may be a unit that performs not only encoding but also decoding.
  • the current block indicates a block to be encoded/decoded, and according to encoding/decoding steps, a coding tree block (or coding tree unit), a coding block (or coding unit), a transform block (or transform unit), and a prediction block (or a prediction unit) or a block to which an in-loop filter is applied.
  • a 'unit' may represent a basic unit for performing a specific encoding/decoding process
  • a 'block' may represent a pixel array of a predetermined size.
  • 'block' and 'unit' can be used interchangeably.
  • a coding block (coding block) and a coding unit (coding unit) may be understood as equivalent to each other.
  • 3 to 12 illustrate block division methods according to the present disclosure.
  • a 'block' is a target of encoding/decoding and may represent any one of a coding block, a prediction block, and a transform block.
  • One block may be divided into a plurality of blocks having various sizes and shapes through a tree structure.
  • a divided block may also be divided into a plurality of blocks having various sizes and shapes.
  • recursive partitioning of blocks may be defined as 'tree structure'-based partitioning.
  • the tree structure-based partitioning may be performed based on predetermined partitioning information.
  • the partition information may be encoded by an encoding device and transmitted through a bitstream, or may be derived from an encoding/decoding device.
  • the partitioning information may include information indicating whether a block is partitioned (hereinafter, referred to as a partition flag).
  • a partition flag indicates splitting of a block
  • the block is split and moved to the next block according to the encoding order.
  • the next block means a block to be encoded first among divided blocks. If the split flag indicates that the block is not to be split, after encoding the encoding information of the block, the next block is moved depending on whether the next block exists or the block splitting process is terminated.
  • Splitting information may include information on tree splitting.
  • a tree partitioning method used for block partitioning will be described.
  • the BT (Binary Tree) splitting method is a method of splitting a block into two. Blocks generated by 2 divisions may have the same size. 3 shows an example of BT partitioning of a block through a BT flag.
  • Whether to divide a block can be determined through the BT flag. For example, when the BT flag is 0, BT division is terminated. On the other hand, when the BT flag is 1, the block can be divided into two blocks using the Dir flag indicating the division direction.
  • divided blocks may be expressed as depth information. 4 shows an example of depth information.
  • FIG. 4(a) is an example illustrating a process of dividing a block 400 through BT division and values of depth information. Each time a block is divided, the depth information value may increase by 1.
  • a block of depth N is divided into blocks of depth (N+1)
  • the block of depth N is called a parent block of blocks of depth (N+1).
  • blocks of depth (N+1) are called child blocks of blocks of depth N. This can be equally applied to a tree structure described later.
  • (b) of FIG. 4 shows the final divided shape when the block 400 is divided as shown in (a) using BT.
  • the TT (Ternary-tree) splitting method is a method of dividing a block into three. At this time, child blocks may have a ratio of 1:2:1. 5 shows an example of TT partitioning a block through a TT flag.
  • TT flag it is possible to determine whether to divide a block through the TT flag. For example, when the TT flag is 0, TT division is terminated. On the other hand, when the TT flag is 1, the block can be divided into three horizontally or vertically using the Dir flag.
  • the QT (quad-tree) partitioning method is a method of dividing a block into four.
  • the four child blocks can have the same size.
  • 6 shows an example of QT dividing a block through a QT flag.
  • Whether to divide a block can be determined through the QT flag. For example, when the QT flag is 0, QT division is terminated. On the other hand, when the QT flag is 1, the block can be divided into 4 parts.
  • One block may be divided in various ways other than the BT division, TT division, and QT division according to FIGS. 4 to 6 .
  • a method of dividing one block into five child blocks may be applied.
  • 7 shows an example of a PT partitioning method in which a block is divided into 5 parts using a PT (Penta-tree) flag.
  • Whether or not to divide the block into 5 parts can be determined through the PT flag for the block. If the PT flag is 0, PT division ends. If the PT flag is 1, it is possible to determine whether to split in either the horizontal direction or the vertical direction using the Dir flag indicating the splitting direction.
  • a partition type may be indicated using an index.
  • four child blocks may have the same size, and the remaining one child block may have a size four times that of the other child blocks.
  • the location of a child block having a larger size than other child blocks may be indicated by an index. That is, the index may be defined as specifying one of a plurality of PT division types pre-defined in the encoding/decoding device or specifying the position of the largest child block among five child blocks.
  • the plurality of PT split types include a first type with a split ratio of 1:1:4:1:1, a second type with a split cost of 1:4:1:1:1, and a split cost of 1:1:1:4
  • a third type with a split ratio of :1 may be included. As shown in FIG. 7, the ratio of 1:1:4:1:1, 1:4:1:1:1, and 1:1:1:4:1 according to the index value, that is, 0 to 2, respectively can be divided into
  • the plurality of PT division types may include only two of the first to third types.
  • the plurality of PT division types may consist of only the second type (1:4:1:1:1) and the third type (1:1:1:4:1), or the second or third type (1:4:1:1:1). It can be divided into only one of the types.
  • index belongs to the range of 0 to 1. 8 shows an example related to this.
  • restrictions may be applied to the division direction.
  • a parent block is divided in a horizontal direction, only division in a vertical direction may be allowed for a child block.
  • 9 is an example in which the aforementioned restrictions are applied.
  • the largest child block is additionally split, a method of applying the splitting direction of the parent block as it is is also possible.
  • signaling of the dir flag is omitted for the largest child block, and the dir flag of the largest child block can be derived using the dir flag of the parent block.
  • the above-described limitations may be equally applied.
  • the above restrictions may be equally applied to the remaining four child blocks having the same size.
  • additional division may be allowed only for a child block having the largest size among five child blocks (ie, a child block having a ratio of 4).
  • application of PT division may be disallowed, while application of at least one of BT, TT, and QT may be permitted.
  • the above-described restrictions may also be applied to BT, TT, or QT division.
  • BT, TT, or QT partitioning may be forced to be applied only in a direction different from the PT partitioning direction of the parent block.
  • additional PT partitioning may be allowed even for the largest child block.
  • the size of a child or parent block having a large weight is greater than or equal to a predetermined threshold size.
  • the size may be expressed as width, height, ratio of width and height, product of width and height, minimum/maximum value of width and height, and the like.
  • the threshold size may be an integer of 4, 8, 16, 32, 64, 128, 256 or more.
  • application of PT division may be disallowed to child blocks having a small size among child blocks, while application of at least one of BT, TT, and QT may be permitted.
  • the above-described restrictions may be equally applied to small-sized child blocks.
  • BT, TT, or QT partitioning may be forced to be applied only in a direction different from the PT partitioning direction of the parent block.
  • the above-mentioned restriction may be applied only to the largest child block, and the above-mentioned restriction may not be applied to child blocks having a small size. Conversely, the above-described restriction may not be applied to the largest child block, and the above-described restriction may be applied only to child blocks having a small size.
  • the aforementioned restrictions may be applied only when the size of a parent block or a child block according to PT division is smaller than or equal to a predetermined threshold size. Conversely, the aforementioned restriction may be applied only when the size of a parent block or a child block according to PT division is greater than or equal to a predetermined threshold size. Since the size and the threshold size are the same as those described above, a detailed description thereof will be omitted.
  • PT division may be determined by at least one of the size, shape, or depth of a block. For example, PT partitioning may be allowed only for coding tree blocks or only for blocks having a size greater than or equal to 128x128, 64x64, or 32x32. Alternatively, PT division may be allowed only when the minimum value of the block width or height is greater than or equal to 128, 64, or 32. Alternatively, PT division may be allowed only for square blocks and may not be allowed for non-square blocks. Alternatively, PT partitioning may be allowed depending on the size regardless of the shape of the block.
  • the parent block can be divided into 4 parts only in either the horizontal direction or the vertical direction, and this will be referred to as a modified 4-partition method hereinafter.
  • a parent block can be asymmetrically divided into four child blocks.
  • at least one of the four child blocks may be divided to have a different size from the other one.
  • the division type according to the modified 4 division method may be defined as shown in FIG. 10 .
  • the division type of index 0 is a type that divides the width or height of the parent block at a ratio of 1:4:2:1, and the division type of index 1 divides the width or height of the parent block at a ratio of 1:2:4:1
  • the split type at index 2 is a type that splits the width or height of the parent block at a ratio of 1:4:1:2
  • the split type at index 3 is a type at a ratio of 2:1:4:1 It can be a type that divides the parent block's width or height. 10 shows four division types as division types according to a modified division into four scheme, but this is only an example, and a division type according to a modified division into four scheme may consist of only some but not all of the four division types. .
  • the division type according to the modified 4 division method may further include a division type in which 4 child blocks are divided to have the same size through symmetric division. Any one of a plurality of partition types may be selectively used, and index information may be encoded/decoded for this purpose.
  • the index information may be encoded and transmitted in an encoding device, or may be derived based on a predetermined encoding parameter in a decoding device.
  • the encoding parameter may mean a split type and size of an upper block having a depth smaller than that of the parent block, a size and location of the parent block, and the like.
  • FIG. 11 illustrates a partitioning method when the partitioning type according to the modified 4-division method (QT1) is composed of only the partitioning type of indices 0 to 1 shown in FIG. 10 .
  • the QT1 flag determines whether to divide the block. For example, when the QT1 flag is 0, division is not performed and the process ends. On the other hand, when the QT1 flag is 1, using the Dir flag indicating the division direction, it is determined whether to divide in the horizontal direction or the vertical direction.
  • the split type is additionally indicated using an index, and the parent block can be split at a ratio of 1:4:2:1 or 1:2:4:1 according to the index value.
  • FIG. 12 illustrates a partitioning method when the partitioning type according to the modified 4-division method (QT2) is composed of only the partitioning types of indices 2 to 3 shown in FIG. 10 .
  • QT2 modified 4-division method
  • Block division is determined through the QT2 flag. For example, when the QT2 flag is 0, division is not performed and ends. On the other hand, when the QT2 flag is 1, using the Dir flag indicating the division direction, it is determined whether to divide in the horizontal direction or the vertical direction.
  • the split type is additionally indicated using an index, and the parent block can be split at a ratio of 1:4:1:2 or 2:1:4:1 according to the index value.
  • restrictions may be applied to the division direction similarly to the PT division described in FIG. 9 .
  • a parent block is divided horizontally at a ratio of 1:4:2:1 and a child block having a ratio of 4 or 2 is additionally divided.
  • a child block having a ratio of 4 or 2 can be divided using the Dir flag of the parent block without signaling the Dir flag.
  • a division direction of a child block may be determined in a direction different from that of a parent block.
  • the above restrictions may be applied only to blocks with a ratio of 4, and it is also possible to apply the above restrictions only to blocks with a ratio of 2.
  • the above restrictions may be applied only to blocks having a ratio of 1.
  • the above restrictions may be applied only to blocks having a ratio of 4 to 2, and the restrictions may not be applied to blocks having a ratio of 1.
  • the aforementioned limitations may be applied only when the size of the parent block or the child block according to the modified 4-division method is smaller than or equal to a predetermined threshold size.
  • the aforementioned restrictions may be applied only when the size of the parent block or the child block according to the modified 4-division method is greater than or equal to a predetermined threshold size. Since the size and the threshold size are the same as those described above, a detailed description thereof will be omitted.
  • additional partitioning may be allowed only for at least one of a block having a ratio of 4 or a block having a ratio of 2 among child blocks.
  • at least one of BT, TT, QT, PT, or a modified 4-division method may be applied to the above child block.
  • the above-described limitations may also be applied to BT, TT, QT, PT, or a modified 4-division scheme.
  • BT, TT, QT, PT, or a modified 4-division scheme may be forced to be applied only in a direction different from the PT division direction of the parent block.
  • additional partitioning may be allowed even for child blocks having a small size among child blocks (ie, a block having a ratio of 1). In this case, the above-described restrictions may also be applied to child blocks having a small size.
  • the modified 4-division method may be determined by at least one of the size, shape, or depth of the block.
  • the modified 4-division method may be allowed only for coding tree blocks or only for blocks having a size of 128x128, 64x64, or 32x32 or more.
  • the modified 4-division method may be allowed only when the minimum value of the width or height of the block is greater than or equal to 128, 64, or 32.
  • the modified 4-division method may be allowed only for square blocks and may not be allowed for non-square blocks.
  • the modified 4-division method may be allowed depending on the size regardless of the shape of the block.
  • VPS Video Parameter Set
  • SPS Sequence Parameter Set
  • PPS Picture Parameter Set
  • PH Physical Header
  • SH Slice Header
  • information indicating whether to use the tree partitioning schemes may be signaled to the decoding device for each region in which parallel processing is performed.
  • the above-mentioned tree partitioning methods may be mixed in order of priority. Priority may be signaled for each upper header or area where parallel processing is performed.
  • At least one of the above-described division methods may be applied when a coding block is divided into a plurality of coding blocks.
  • at least one of the above-described division schemes may be applied when a coding block is divided into a plurality of prediction blocks or may be applied when a coding block is divided into a plurality of transform blocks.
  • at least one of the above-described division schemes may be applied when one prediction block is divided into a plurality of sub-blocks for sub-block unit prediction.
  • at least one of the above-described division schemes may be applied when one transform block is divided into a plurality of sub-blocks for sub-block unit transformation.
  • the division information according to the present disclosure may additionally include an encoding order between child blocks.
  • COI coding order information
  • FIG. 13 shows a coding sequence that can be used for BT division.
  • the number assigned to each block represents the coding order.
  • the BT flag is set to 1 and division is performed, information indicating the coding order of child blocks may be additionally signaled. If the BT flag is 0, since division into child blocks is not performed, there is no need to signal information indicating an encoding order.
  • the number of encoding sequences available according to the division method is (division direction) x (number of divisions)! It is expressed as the value of , and in the case of BT division 2 x 2! (i.e. 4).
  • FIG. 14 shows a coding sequence that can be used for TT division.
  • the number assigned to each block indicates the coding order.
  • the TT flag set to 1
  • information indicating the coding order of child blocks may be additionally signaled. If the TT flag is 0, since division into child blocks is not performed, there is no need to signal information indicating an encoding order.
  • the number of available coding sequences is 2 x 3! (i.e., 12).
  • the number assigned to each block represents the coding order.
  • the QT flag when the QT flag is set to 1 and division is performed, information indicating the coding order of child blocks may be additionally signaled. If the QT flag is 0, since division into child blocks is not performed, there is no need to signal information indicating an encoding order.
  • QT division means 4 divisions, and since there is no division direction, the number of available coding sequences is 1 x 4! (i.e., 24).
  • PT splitting may additionally signal information indicating the coding order of child blocks when the PT flag is set to 1 and splitting is performed. If the PT flag is 0, since division into child blocks is not performed, there is no need to signal information indicating an encoding order. Since PT division means 5 divisions, and horizontal or vertical division is performed, the number of available coding sequences is 2 x 5! (ie, 240). 16 is an example showing some of 240 coding sequences.
  • FIG. 8 In the example of FIG. 8, FIG. 11, or FIG. 12, information indicating an encoding order can be signaled only in the case of division, in the same manner as the above-mentioned method.
  • the number of available coding sequences can also be calculated as (division direction) x (number of divisions)!
  • an encoding direction may be signaled according to a division direction.
  • the encoding direction may be set to at least one of left to right, right to left, top to bottom, bottom to top, a diagonal direction, or an inverse diagonal direction.
  • an encoding direction may be signaled according to horizontal division or vertical division. If a block is divided horizontally, it may be signaled whether encoding is performed in either a top-to-bottom direction or a bottom-to-top direction. Conversely, if the block is divided vertically, it may be signaled whether encoding is performed in either a left-to-right direction or a right-to-left direction.
  • the same content can be applied to FIGS. 14 to 16 .
  • the coding start position and/or end position, or the coding start position and/or progress direction may be signaled.
  • a zigzag scan method is always used, but only an encoding start position and a progress direction may be signaled. 17 shows an example related to this.
  • information indicating the first block in the encoding order and information indicating whether the progress direction is a horizontal direction or a vertical direction may be encoded.
  • FIG. 18 illustrates an intra prediction method in an encoding/decoding apparatus according to the present disclosure.
  • a block may be coded by applying intra-prediction, which is a technique of removing redundant data that exists spatially.
  • intra-prediction is a technique of removing redundant data that exists spatially.
  • a prediction block composed of predicted values (prediction pixels) for the original block is generated using pixels adjacent to the original block or pixels belonging to a line separated by N from the original block as reference pixels.
  • a residual block which is a difference value between the original block and the predicted block, is generated to remove redundant data.
  • an intra prediction mode of a current block may be derived (S1800).
  • the current block may be obtained by dividing a coding block based on at least one of the above-described division methods.
  • the intra-prediction mode may be induced to one of pre-defined intra-prediction modes in the encoding/decoding device.
  • 19 and 20 show pre-defined intra prediction modes available for the current block.
  • a method of predicting using a plane is assigned number 0, and is referred to as a planar mode or mode 0.
  • number 1 is assigned and is referred to as DC mode or mode 1.
  • numbers from -14 to 80 were assigned, and the direction was indicated by an arrow.
  • mode 18 represents a prediction method using a horizontal direction
  • mode 50 represents a prediction method using a vertical direction.
  • FIG. 20 shows an example in which the directional mode of FIG. 19 is extended to all 360 degrees.
  • the directional mode is indicated as No. 2 to No. 129.
  • the current block can be divided into a plurality of partitions.
  • the division here may be performed based on at least one of the above-described division methods.
  • the range of intra-prediction modes usable by each partition may be adjusted according to the division type of the current block and the size or shape of the partition. 21 shows an example related to this.
  • each range of ⁇ 1 and ⁇ 2 can be adjusted.
  • ⁇ 1 and ⁇ 2 may each have a value between degrees A and degrees B.
  • the values of A and B may be signaled through upper headers or may have pre-set values in the encoding/decoding device.
  • the angular range may be determined according to the dividing direction. For example, when the current block is divided in the upper left 45-degree direction, partition 1 is set not to use the intra-prediction mode exceeding 45 degrees, and partition 2 is set not to use the intra-prediction mode less than 45 degrees. can be set.
  • the directional mode may always be applied to the other partition. Or vice versa.
  • the DC mode or the planar mode may always be applied to the other partition. Or vice versa.
  • an index specifying one of a plurality of MPM candidates belonging to the MPM list may be signaled.
  • the decoding device may configure the MPM list in the same manner as the encoding device, and derive an intra prediction mode of the current block based on the MPM list and the signaled index.
  • Each of the peripheral reference positions shown in FIGS. 22 and 23 may mean one pixel or block. It is assumed that the neighboring reference positions are included in different blocks around the current block.
  • LB means the position of the lower leftmost pixel in the current block
  • RT means the position of the upper rightmost pixel in the current block.
  • an MPM list may be constructed using intra-prediction modes existing in a block including L and a block including A. Then, information indicating whether the intra-prediction mode of the current block is included in the MPM list, index information (MPM index) indicating which mode in the MPM list it is identical to, and any one of the remaining modes if not included in the MPM The intra-prediction mode of the current block may be signaled using the specific information.
  • the MPM list may be constructed using at least one intra prediction mode of a block including a sample (h or g) located in the left center and a block including a sample (d or c) located in the top center. there is.
  • the MPM list may be constructed using at least one intra prediction mode of a block including a sample f located at the upper left and a block including a sample b located at the upper left.
  • the MPM according to FIG. 22 can be extended.
  • the MPM candidate may be derived using at least one of a neighboring block adjacent to the right side of the current block and/or a neighboring block adjacent to the bottom side of the current block.
  • an MPM list may be constructed using intra-prediction modes existing in a block including L and a block including A.
  • the MPM list may be constructed using an intra prediction mode existing in at least one of a block including R and a block including B.
  • a lower block including at least one of lower center (k or l) samples or lower right (j) samples, or using at least one of right center (g or f) samples or lower right (h) samples
  • An MPM list can be configured using the right block.
  • the representative mode may mean a minimum value, a maximum value, or a mode among intra-prediction modes of adjacent blocks located on the right and bottom sides, or a mode at a fixed position pre-promised to the encoding/decoding device. may be
  • the right block and/or bottom block may be used to derive MPM candidates instead of the left block and/or top block.
  • the MPM candidate may be derived by further using at least one of the right block and the lower block along with the left and/or upper block.
  • the plurality of partitions may share one intra prediction mode.
  • an intra-prediction mode may be derived for each partition of the current block.
  • the intra-prediction modes of the two partitions can be set to be derived only through MPM candidates. That is, when the current block is divided into a plurality of partitions, the intra prediction mode of each partition may have the same value as one of the plurality of MPM candidates. In this case, encoding/decoding of the MPM flag may be omitted, and its value may be inferred as 1. Also, for each of a plurality of partitions, an MPM index may be signaled.
  • the intra prediction mode of the first partition may be derived based on the MPM candidate, while the intra prediction mode of the second partition may be set to a default mode.
  • the default mode may include at least one of a planar mode, a DC mode, a vertical mode, a horizontal mode, and a diagonal mode.
  • a plurality of default modes are defined, one of the plurality of default modes may be selectively used. Index information for the selection may be signaled, and a mode having the highest priority among a plurality of default modes may be used. Priority may be given in the order of planar mode, DC mode, vertical mode (or horizontal mode), and diagonal mode, but is not limited thereto.
  • the intra prediction mode of the second partition may be derived by adding/subtracting an offset to the intra prediction mode of the first partition.
  • the offset may be pre-defined in the encoding/decoding device.
  • offset information eg, absolute value and/or sign
  • the intra-prediction mode used for each partition may be signaled.
  • index information specifying one of a plurality of MPM candidates belonging to the MPM list may be signaled for each partition.
  • the intra prediction mode of a first partition may be determined by a first MPM index
  • the intra prediction mode of a second partition may be determined by a second MPM index.
  • a value obtained by subtracting 1 from the MPM index of the second partition may be encoded/decoded as the second MPM index. That is, when the intra prediction mode of the second partition is equal to or greater than the intra prediction mode of the first partition, the intra prediction mode of the second partition is derived using the MPM index obtained by adding 1 to the second MPM index.
  • a flag indicating whether the intra prediction mode of the second partition is derived based on the intra prediction mode of the first partition may be defined.
  • the intra prediction mode of the second partition is derived based on the intra prediction mode of the first partition
  • the intra prediction mode of the second partition is derived as described above. It may be derived based on a default mode or based on index information signaled for the second partition.
  • a flag indicating whether the intra prediction mode of the second partition is derived based on the default mode may be defined.
  • the intra prediction mode of the second partition is derived based on the aforementioned default mode
  • the intra prediction mode of the second partition is a signal for the second partition. It can be derived based on the ringed index information.
  • an MPM list may be created for each partition. For example, a first MPM list for a first partition and a second MPM list for a second partition may be generated. In this case, at least one of the neighboring blocks for the first MPM list may be different from any one of the neighboring blocks for the second MPM list.
  • the first MPM list may be generated using left and upper neighboring blocks
  • the second MPM list may be generated using right and lower neighboring blocks.
  • the number of neighboring blocks available for constructing the first MPM list may be different from the number of neighboring blocks available for constructing the second MPM list.
  • the number of neighboring blocks available for constructing the first MPM list is N, and the number of neighboring blocks available for constructing the second MPM list may be (N+1) or more.
  • the first partition means a partition including the top left sample or the top right sample in the current block, and N may be 2, 3, 4 or more.
  • Two or more intra-prediction modes may be derived for the current block.
  • each of the prediction modes m1 and m2 within the two screens may be coded using the MPM list and then signaled.
  • m1 and m2 may be signaled using the MPM index, respectively.
  • priority can be given to a specific mode.
  • a planar mode or a DC mode may be always used in m1.
  • DC mode or planar mode can be used in m2 as opposed to m1. In this case, only information indicating whether m1 is in a planar mode or a DC mode may be signaled.
  • the fixed mode may be a planar mode or a DC mode. In this case, only the intra prediction mode used for m2 is signaled to the decoding device.
  • both modes m1 and m2 may be fixed modes.
  • the two fixed modes may be a planar mode and a DC mode, respectively.
  • two modes having a difference of 180 degrees in the directional mode may be set to m1 and m2, respectively.
  • Table 1 is an example related to the set.
  • the intra-prediction mode used for m1 and m2 can be informed to the decoder by signaling the set index.
  • the method of deriving the prediction mode has been reviewed, and this can be equally applied when deriving m1 and m2, and a detailed description will be omitted.
  • a reference pixel for intra prediction of a current block may be derived (S1810).
  • the reference pixels of the current block may be derived from a reference pixel line adjacent to the current block (hereinafter referred to as an adjacent pixel line) or may be derived from a reference pixel line not adjacent to the current block (hereinafter referred to as a non-adjacent pixel line).
  • an adjacent pixel line may be derived from a reference pixel line not adjacent to the current block
  • a non-adjacent pixel line may be Alternatively, some of the reference pixels of the current block may be derived from adjacent pixel lines, and the rest may be derived from non-adjacent pixel lines.
  • the non-adjacent pixel lines may mean all or part of P reference pixel lines pre-defined in the encoding/decoding device.
  • Unavailable reference pixels may exist for reasons such as a coding order of blocks, a case where a boundary of a block is located at a boundary of an image (eg, picture, tile, slice, CTU raw), and the like. Accordingly, a reference pixel must be generated at a corresponding position through a padding process.
  • Padding may be performed by dividing the area around the current block into two areas. For example, the left and upper portions of the current block may be set as the first area, and the right and lower portions of the current block may be set as the second area.
  • a search start position is set to determine whether a reference pixel is available.
  • 24 is an example of a search start position and a search direction for each area.
  • 24(a) shows a first area including reference pixels on the left and above of the current block
  • FIG. 24(b) shows a second area including reference pixels on the bottom and right of the current block.
  • a search start position is set, it is checked whether a reference pixel available at the search start position exists. If it does not exist, the search is performed until an available reference pixel is sequentially searched in the search direction. 25 shows an example of a search process.
  • FIG. 25 illustrates an example in which a first usable reference pixel at position A is searched while performing a search in a search direction from a search start position. After a reference pixel available at position A is searched for, the reference pixel at position A is copied to a search start position. Then, padding is performed by sequentially copying the copied reference pixels to the position immediately before A in the search direction. That is, when the pixel at the search start position is unavailable, an available pixel found first can be padded to the search start position.
  • a reference pixel that is unavailable after the search start position may exist. 26 shows an example related to this.
  • padding is performed by performing interpolation on reference pixels present at positions A and B. That is, when the N-th pixel is unavailable, the corresponding pixel may be generated through interpolation between an available pixel found last before N and an available pixel found first after N.
  • the reference pixel existing at the nearest location A is sequentially copied to the location B to perform padding. That is, when all pixels after the Nth are unavailable, padding is performed by copying the (N ⁇ 1)th pixel to the last position.
  • a method of performing a search from a search start position in a search direction, determining an available reference pixel for the first time as a reference pixel, copying the reference pixel to all unavailable positions, and performing padding is also possible.
  • the above-described method may be applied in the same/similar manner even to the area shown in FIG. 24(b).
  • padding may be performed using a preset value. For example, when all reference pixels are unavailable, padding may be performed on the reference pixels using an intermediate value using a bit depth. For example, when the bit depth of a pixel is 10 bits, the range of pixel values may be 0 to 1023 and the median value may be 512.
  • padding may be performed on the reference pixels using an intermediate value using a bit depth.
  • bit depth of a pixel is 10 bits
  • the range of pixel values may be 0 to 1023 and the median value may be 512.
  • pixels of other regions may be used.
  • pixels existing in the first area may be used.
  • padding of the first area it is also possible to use pixels existing in the second area.
  • FIG. 27 When reference pixels exist on four sides of the current block, simplified reference pixels may be used according to the directional mode. Referring to FIG. 27 , only one reference pixel line among a left reference pixel line, an upper reference pixel line, a right reference pixel line, and a lower reference pixel line may be used depending on which region the directional mode belongs to.
  • numbers of intra-prediction modes are represented as 0 to 129, numbers 0 and 1 represent planar mode and DC mode, respectively, and numbers 2 to 129 represent directional modes.
  • 28(a) to (f) are examples of a method of using one reference pixel line when intra prediction modes belong to zones 3 to 8, respectively.
  • reference pixels may be rearranged in one dimension.
  • the pixel 2800 may be generated by copying a pixel at a projected position parallel to the directional mode or by interpolating neighboring integer pixels at the projected position.
  • all prediction pixels within the coding block may be generated based on the intra-prediction mode determined at the coding block level. That is, the same intra-prediction mode can be applied to all coding blocks.
  • intra-prediction may be performed for each area of a predetermined size within a coding block.
  • an intra-prediction mode may be derived in units of regions of a predetermined size within a coding block.
  • a method of individually setting an intra-prediction mode for each region of a predetermined size within a coding block will be described in detail.
  • 29 is a diagram for explaining an example of determining an intra-prediction mode in units of sub-blocks according to an embodiment of the present disclosure.
  • a sub-block which is a determining unit of an intra-prediction mode, may have a square shape such as 2x2, 4x4, or 8x8. Alternatively, it is also possible to define sub-blocks in a non-square shape such as 2x8 or 8x2.
  • sub-blocks may be generated by dividing a coding block only in a horizontal direction or a vertical direction.
  • the width of a sub-block is the same as that of the coding block, but the height of the sub-block is smaller than that of the coding block.
  • the height of a sub-block is the same as that of the coding block, but the width of the sub-block is smaller than that of the coding block.
  • the size and/or shape of a subblock which is a unit for determining an intra prediction mode, may have a predefined value in an encoder and a decoder.
  • the size of the coding block, the encoding mode of the neighboring block (eg, whether the neighboring block was coded by inter prediction or intra prediction), or the intra prediction mode of the neighboring block, based on at least one of the sub-blocks may be determined adaptively.
  • the size of a sub-block which is a decision unit of an intra-prediction mode, is 4x4.
  • FIG. 29 an example in which a 16x16-sized coding block is divided into 4x4-sized sub-blocks is shown.
  • a reference mode can be set for neighboring blocks around a coding block to be currently encoded/decoded ('current block').
  • the neighboring block may include at least one of blocks adjacent to an upper boundary of the current block or blocks adjacent to a left boundary of the current block.
  • a reference mode may also be derived in units of the same size as the sub-block.
  • the reference mode may be derived for each of the 4x4 sub-blocks adjacent to the left and/or upper boundary of the current block in units of 4x4 blocks.
  • the upper neighbor blocks from (0,0) to (2W-1,0) are tangent to the upper boundary
  • the left neighbors from (0,0) to (0,2H-1) are tangent to the left boundary. You can also use the reference mode of blocks.
  • An intra-prediction mode used to encode/decode a block adjacent to the current block may be set as a reference mode of the corresponding sub-block. If a block adjacent to the current block is not coded/decoded through intra prediction, the reference mode of the block may be derived by referring to the intra prediction mode of the block adjacent to the current block.
  • 30 and 31 are diagrams illustrating a method of deriving a reference mode of each of neighboring blocks adjacent to a current block.
  • numbers marked on neighboring blocks indicate intra-prediction modes used to encode/decode neighboring blocks.
  • XN N is an integer
  • the corresponding neighboring block is not coded/decoded by intra prediction.
  • the corresponding neighboring block may be determined to be unavailable, and when the neighboring block is encoded/decoded through intra prediction, the corresponding neighboring block may be determined to be available.
  • the intra prediction mode of the unavailable neighboring block may be set to be the same as the intra prediction mode of the neighboring block.
  • a prediction mode may be set to an intra-prediction mode of an unavailable neighboring block.
  • the intra prediction mode of the unavailable neighboring block in FIG. 30 is the intra prediction mode 23 of the block adjacent to the bottom of the unavailable neighboring block. can be set.
  • the intra-prediction mode of the unavailable neighboring block in FIG. 30 will be set to intra-prediction mode 20 of the block adjacent to the top of the unavailable neighboring block.
  • the intra-prediction mode of the unavailable neighboring block is set to the lowermost or uppermost neighboring block. It can be set as the intra-prediction mode of the neighboring block that
  • the intra prediction mode 17 of the neighboring block adjacent to the uppermost level of the uppermost block X1 is set to the intra prediction mode of the uppermost block X1.
  • the intra prediction mode 20 of the neighboring block adjacent to the lower end of the lowermost block X2 may be set as the intra prediction mode of the lowermost block X2.
  • the intra-prediction mode of the unavailable neighboring block may be set to an average value, a minimum value, or a maximum value of intra-prediction modes of blocks adjacent to both sides of the unavailable neighboring block.
  • the intra-prediction mode of the unavailable neighboring block X0 in FIG. 30 is between the intra-prediction mode 20 of the block adjacent to the top of the unavailable neighboring block and the intra-prediction mode 23 of the block adjacent to the bottom of the unavailable neighboring block. It can be set to average, minimum or maximum.
  • the intra prediction mode of each of the plurality of unavailable neighboring blocks may be derived by weighting the intra prediction modes of blocks located adjacent to both sides of the plurality of consecutive neighboring blocks.
  • intra-prediction mode 17 of the block adjacent to the top of the neighboring block X1 and the bottom of the neighboring block X2 are adjacent.
  • the intra-prediction mode of each of the left sub-blocks from the neighboring block X1 to the neighboring block X2 may be derived by weighting the intra-prediction mode 20 of the block.
  • intra-prediction modes of available neighboring blocks selected according to a scanning order and intra-prediction modes of all of the plurality of contiguous neighboring blocks may be set.
  • a prediction mode in a non-directional picture eg, a DC mode and/or a planner mode
  • a prediction mode in a non-directional picture may be set to be unavailable as a reference mode. That is, when the intra-prediction mode of the neighboring block is the non-directional intra-prediction mode, the neighboring block may be determined to be unavailable. In this case, according to the embodiment described with reference to FIGS. 30 and 31 , an intra-prediction mode of an unavailable neighboring block may be newly derived.
  • An intra-prediction mode may be derived in units of sub-blocks within the current block based on reference modes adjacent to the current block. Specifically, a reference mode of an adjacent block may be set to an intra-prediction mode of sub-blocks belonging to the same row or column as the adjacent block.
  • 32 and 33 illustrate examples of setting intra-prediction modes of sub-blocks based on reference modes.
  • FIG 32 illustrates an example in which the reference mode of an upper neighboring block is set to an intra-prediction mode of sub-blocks belonging to the same column as the upper neighboring block.
  • intra-prediction modes of sub-blocks belonging to the same column have the same value.
  • FIG 33 illustrates an example in which a reference mode of a left neighboring block is set to an intra prediction mode of subblocks belonging to the same row as the left neighboring block.
  • intra-prediction modes of sub-blocks belonging to the same row have the same value.
  • the intra-prediction mode of the sub-block may be derived by weighting the reference modes of the upper neighboring block belonging to the same column as the sub-block and the reference modes of the left-neighboring block belonging to the same row as the sub-block.
  • 34 and 35 show examples of deriving an intra-prediction mode of a sub-block by weight-summing reference modes.
  • the weighted summed mode derived by weighting the reference mode of the upper neighboring block and the reference mode of the left neighboring block may be set as the intra-prediction mode of the sub-block.
  • an average value between the two reference modes may be set as the intra-prediction mode of the sub-block. For example, if the reference mode of the upper neighboring block is 50 and the reference mode of the left neighboring block is 18, the average of the two reference modes, 34, may be set as the intra-prediction mode of the sub-block.
  • 34(b) shows an example in which an average value between two reference modes for each sub-block is derived as a weighted summed mode.
  • a weight assigned to a reference mode of an upper neighboring block and a weight assigned to a reference mode of a left neighboring block may be adaptively determined according to a location of a subblock. For example, when the distance between the sub-block and the left-neighboring block is x and the distance between the sub-block and the top-neighboring block is y, the weight applied to the left-neighboring block is set to y/(x+y), and the top-neighboring block The weight applied to the reference mode of may be set to x/(x+y).
  • the reference mode of the left-neighboring block has a higher weight.
  • a higher weight may be assigned to the reference mode of the upper neighboring block.
  • FIG. 35 shows an example in which a weighted sum mode is derived when the weight applied to the reference mode of the left neighboring block and the weight applied to the reference mode of the upper neighboring block are the same (FIG. 35(a)), and the left neighboring block
  • FIG. 35(b) an example in which the weighted sum mode is derived
  • weights applied to left neighboring blocks may be determined in units of sub-block columns, and weights applied to upper neighboring blocks may be determined in units of sub-block rows.
  • the weight of the reference mode of the left neighboring block of each column may be set to (N ⁇ n)/N.
  • n represents an index assigned to the current column.
  • the index 0 is assigned to a column adjacent to the left boundary of the current block, and the index value increases by 1 whenever moving to the right column.
  • the weight of the reference mode of the top neighboring block of each row may be set to (M-m)/M.
  • m represents an index assigned to the current row.
  • the index 0 is assigned to a row adjacent to the upper boundary of the current block, and the index value increases by 1 whenever moving to the lower row.
  • the weight applied to the left neighboring block and the weight applied to the top neighboring block may be set to the same value regardless of the position of the subblock.
  • intra-prediction may be performed on each of the sub-blocks based on the intra-prediction mode of each of the sub-blocks. In this case, intra-prediction of each of the sub-blocks may be performed based on reference pixels derived based on the current block.
  • the intra-prediction mode of each of the sub-blocks may be stored.
  • at least one of the sub-blocks may be used as an MPM candidate for a block to be encoded/decoded later. For example, if a method of deriving an intra-prediction mode in units of sub-blocks is applied to a neighboring block located on top of a predetermined coding block, at least one of the intra-prediction modes of sub-blocks located on top of the predetermined coding block is subjected to predetermined coding. It can be used as an MPM candidate for a block.
  • a sub-block at a specific position within the current block may be designated as a representative block and only the intra-prediction mode of the representative block may be stored.
  • only the intra-prediction mode of a representative block among a plurality of sub-blocks may be used as an MPM candidate for a block to be decoded/ordered.
  • a sub-block including a pixel at a reference position in the current block may be set as a representative block.
  • the reference pixel may be a center pixel, an upper left pixel, a lower left pixel, an upper right pixel, or a lower right pixel.
  • FIG. 36 illustrates an example in which a sub-block including a center-located pixel of a current block is designated as a representative block.
  • the intra-prediction mode of the corresponding sub-block may be stored as the intra-prediction mode of the current block.
  • the default mode when a method of deriving an intra-prediction mode in units of sub-blocks is applied to the current block, the default mode may be stored as the intra-prediction mode of the current block.
  • the default mode may be a DC mode, a planar mode, or a directional mode in a predefined direction.
  • the directional mode of the predefined direction may be at least one of a vertical directional mode, a horizontal directional mode, and a diagonal directional mode.
  • one of a plurality of reference modes may be set as a representative mode, and the set representative mode may be stored as an intra-prediction mode of the current block.
  • one of the reference modes of upper sub-blocks of the current block may be set as the representative mode.
  • the reference mode of the sub-block including the pixel at position A shown in FIGS. 22 and 23 may be set to the representative mode.
  • one of the reference modes of the left sub-blocks of the current block may be set as the representative mode.
  • the reference mode of the sub-block including the pixel at the L position shown in FIGS. 22 and 23 may be set to the representative mode.
  • a prediction block for a block may be obtained.
  • 37 is a diagram illustrating an example of generating a prediction block of sub-blocks by performing a plurality of intra-prediction.
  • a first prediction block (a sub-prediction block using a left mode) may be generated by performing intra-prediction based on a reference mode of an upper neighboring block belonging to the same column as the sub-block.
  • a second prediction block (a sub-prediction block using an upper mode) may be generated by performing intra-prediction based on the reference mode of a left neighboring block belonging to the same row as the sub-block.
  • a prediction block (a weighted sub-prediction block) of a sub-block may be obtained based on a weighted sum operation of the first prediction block and the second prediction block.
  • weights applied to the first prediction block and the second prediction block may be set to the same value.
  • weights applied to the first prediction block and the second prediction block may be set in the same manner as described in the embodiment of inducing the weighted sum mode.
  • weights applied to the first prediction block and the second prediction block may be determined by comparing a distance between a subblock and an upper neighboring block and a distance between a subblock and a left neighboring block. For example, when a subblock is closer to a left neighboring block than an upper neighboring block, a higher weight may be assigned to a second prediction block derived based on a reference mode of a left neighboring block. Conversely, when the sub-block is closer to the upper neighboring block than the left neighboring block, a higher weight may be assigned to the first prediction block derived based on the reference mode of the upper neighboring block.
  • the weight applied to the second prediction block derived based on the reference mode of the left neighboring block is determined in units of sub-block columns, and the first prediction block is derived based on the reference mode of the upper neighboring block in units of sub-block rows.
  • the weight applied to can be determined.
  • the weight may be adaptively determined according to the type of intra prediction mode used to derive each of the first prediction block and the second prediction block. For example, a weight assigned to a prediction block induced in a prediction mode in a non-directional picture may have a greater value than a weight assigned to a prediction block induced in a prediction mode in a directional picture.
  • the intra-prediction mode can be stored in the same manner as in the case of deriving the weighted sum mode.
  • the derived weighted sum mode may be stored as an intra-prediction mode of the corresponding sub-block.
  • a weighted sum mode of a representative block among a plurality of sub-blocks may be stored as an intra-prediction mode of the current block.
  • the default mode may be stored as an intra-prediction mode of the current block.
  • a reference mode of a representative block among neighboring blocks adjacent to the current block may be stored as an intra-prediction mode of the current block.
  • each of the sub-blocks refers to a reference mode of a neighboring block belonging to the same row and/or column as the sub-block.
  • an intra-prediction mode of a sub-block is derived by referring to a reference mode of at least one neighboring block belonging to the same row and/or column as the sub-block, or multiple prediction modes for a sub-block are derived based on reference modes of a plurality of neighboring blocks. It was illustrated that a prediction block of is generated.
  • the location of at least one neighboring block to which each sub-block should refer may be determined based on the intra-prediction mode.
  • the reference mode of the upper neighboring block belonging to the same column as the sub-block may be set to the intra-prediction mode of the sub-block.
  • the reference mode of the neighboring block located in the upper-left diagonal direction of the sub-block may be set to the intra-prediction mode of the sub-block.
  • Information indicating whether a method of performing intra-prediction in units of sub-blocks is applied may be explicitly signaled through a bitstream.
  • the information may be a 1-bit flag.
  • intra-prediction may be individually performed for each of the sub-blocks based on neighboring reference modes of the current block.
  • intra-prediction may be performed by applying a single intra-prediction mode to the current block.
  • the transform unit represents at least one performance unit of quantization or transform.
  • 38 is a diagram illustrating encoding/decoding aspects depending on whether sub-blocks are set as transform units.
  • transform/inverse transform may be performed in units of sub-blocks. That is, the intra-prediction unit and the transformation/inverse transformation performance unit may be set to be the same.
  • a transform unit may be set in units of blocks having a larger size than the sub-block.
  • a coding block having a size of 16x16 is set as a transform unit.
  • a conversion unit may be set in units of 16x8, 8x16, or 8x8 size.
  • an intra-prediction unit and a transformation unit are set differently.
  • information for determining the size of a transform unit may be additionally encoded/decoded.
  • the information may be a 1-bit flag indicating whether each of the sub blocks is used as a transform unit.
  • the flag indicates that the sub-block is not used as a transform unit
  • information representing the size of the transform unit may be additionally encoded/decoded.
  • the information may be information indicating the size of the transform unit.
  • the information may indicate at least one of 4x4, 8x8, or entire blocks.
  • the sub-block when a method of performing intra prediction on a sub-block basis is applied, the sub-block may be set as a transform unit by default. That is, when a method of performing intra-prediction in units of sub-blocks is applied, transformation/inverse transformation can always be performed in units of sub-blocks.
  • the conversion kernel may include at least one of a DCT-based kernel (eg, DCT2, DCT8, etc.) and/or a DST-based kernel (eg, DST7).
  • 39 illustrates an example in which transform skipping and transform kernels are determined for each sub-block.
  • a default transformation kernel may be set to be used in all regions within the current block.
  • the default conversion kernel may be one of DCT2, DCT8, and DST7.
  • each of the components (eg, units, modules, etc.) constituting the block diagram in the above disclosure may be implemented as a hardware device or software, and a plurality of components may be combined to be implemented as a single hardware device or software. It could be.
  • the above disclosure may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer readable recording medium.
  • the computer readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • the hardware device may be configured to act as one or more software modules to perform processing according to the present disclosure and vice versa.
  • This disclosure can be applied to computing or electronic devices capable of encoding/decoding video signals.

Landscapes

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

Abstract

본 개시에 따른 영상 부호화/복호화 방법은, 현재 블록 내 이웃 블록들 각각의 참조 모드를 유도하는 단계, 및 참조 모드들 중 적어도 하나에 기초하여, 상기 현재 블록 내 상기 현재 블록보다 작은 크기를 갖는 서브 블록에 대한 화면 내 예측을 수행하는 단계를 포함할 수 있다.

Description

서브 블록 단위의 화면 내 예측에 기반한 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체
본 개시는 비디오 신호 처리 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 개시는 트리 구조의 블록 분할 방법 및 장치를 제공하고자 한다.
본 개시는 화면내 예측을 위한 화면내 예측 모드를 유도하는 방법 및 장치를 제공하고자 한다.
본 개시는 화면내 예측을 위한 확장된 참조 화소를 유도하는 방법 및 장치를 제공하고자 한다.
본 개시는 서브 블록 단위의 화면 내 예측을 수행하는 방법 및 장치를 제공하고자 한다.
본 개시는 서브 블록들 중 대표 블록의 화면 내 예측 모드만을 저장하는 방법 및 장치를 제공하고자 한다.
본 개시는 하나 또는 그 이상의 화면내 예측 모드를 기반으로 예측 블록을 생성하는 방법 및 장치를 제공하고자 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 영상 복호화 방법은, 현재 블록 내 이웃 블록들 각각의 참조 모드를 유도하는 단계, 및 참조 모드들 중 적어도 하나에 기초하여, 상기 현재 블록 내 상기 현재 블록보다 작은 크기를 갖는 서브 블록에 대한 화면 내 예측을 수행하는 단계를 포함한다.
본 개시에 따른 영상 부호화 방법은, 현재 블록 내 이웃 블록들 각각의 참조 모드를 유도하는 단계, 및 참조 모드들 중 적어도 하나에 기초하여, 상기 현재 블록 내 상기 현재 블록보다 작은 크기를 갖는 서브 블록에 대한 화면 내 예측을 수행하는 단계를 포함한다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 블록의 상기 화면 내 예측은, 상기 적어도 하나의 참조 모드를 기초로 유도되는 화면 내 예측 모드를 기초로 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 화면 내 예측 모드는, 상기 참조 모드들 중에서 선택된 제1 참조 모드 및 제2 참조 모드 사이의 가중합 연산에 의해 유도될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 제1 참조 모드는, 상기 서브 블록과 동일한 열에 속하는 상단 이웃 블록의 화면 내 예측 모드이고, 상기 제2 참조 모드는, 상기 서브 블록과 동일한 행에 속하는 좌측 이웃 블록의 화면 내 예측 모드일 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 가중합 연산시, 상기 제1 참조 모드에 적용되는 제1 가중치 및 상기 제2 참조 모드에 적용되는 제2 가중치는, 상기 서브 블록과 상기 상단 이웃 블록과의 거리 및 상기 서브 블록과 상기 좌측 이웃 블록과의 거리를 기초로 결정될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 참조 모드는, 이웃 블록의 화면 내 예측 모드를 기초로 유도되고, 상기 이웃 블록이 화면 내 예측으로 부호화되지 않은 경우, 상기 이웃 블록에 인접하는 적어도 하나의 블록의 화면 내 예측 모드를 기초로 상기 참조 모드가 유도될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 이웃 블록이 화면 내 예측으로 부호화되지 않은 경우, 상기 이웃 블록의 양측에 위치하는 블록들의 화면 내 예측 모드들의 평균값, 최소값 또는 최대값이 상기 참조 모드로 설정될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 참조 모드들 중에서 선택된 제1 참조 모드에 기초한 제1 화면 내 예측을 통해 생성된 제1 예측 블록 및 상기 참조 모드들 중에서 선택된 제2 참조 모드에 기초한 제2 화면 내 예측을 통해 생성된 제2 예측 블록을 기초로, 상기 서브 블록에 대한 제3 예측 블록이 생성될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 제3 예측 블록은, 상기 제1 예측 블록 및 상기 제2 예측 블록 사이의 가중합 연산을 기초로 획득될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 가중합 연산시, 상기 제1 예측 블록에 적용되는 제1 가중치 및 상기 제2 예측 블록에 적용되는 제2 가중치는, 상기 서브 블록과 상기 상단 이웃 블록과의 거리 및 상기 서브 블록과 상기 좌측 이웃 블록과의 거리를 기초로 결정될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록 보다 작은 크기를 갖는 상기 서브 블록에 대해 화면 내 예측이 수행된 경우, 상기 서브 블록이 역변환의 수행 단위로 설정될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 역변환은, 상기 서브 블록의 화면 내 예측 모드를 기초로 결정되는 변환 커널에 기초하여 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록 보다 작은 크기를 갖는 상기 서브 블록에 대해 화면 내 예측이 수행된 경우, 상기 서브 블록을 역변환의 수행 단위로 설정할 것인지 여부가 선택적으로 결정될 수 있다.
본 개시에 따른 컴퓨터로 판독가능한 기록 매체는 전술한 영상 부호화 방법에 의해 생성된 혹은 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 의하면, 다양한 트리 구조의 블록 분할을 통해 효과적으로 부호화 블록, 예측 블록 또는 변환 블록의 크기와 형태를 결정할 수 있다.
본 개시에 의하면, 확장된 MPM 후보 및 참조 화소를 기반으로 이용하여 화면내 예측의 부호화 효율을 향상시킬 수 있다.
본 개시에 의하면, 서브 블록 단위의 화면 내 예측을 통해 부호화 효율을 향상시킬 수 있다.
본 개시에 의하면, 서브 블록들 중 대표 블록의 화면 내 예측 모드만을 저장함으로써, 데이저 저장을 위한 밴드위스를 감소시킬 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 개시의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3 내지 도 12는 본 개시에 따른 블록 분할 방법을 도시한 것이다.
도 13 내지 도 17은 본 개시에 따른 블록 분할 방식에 따른 부호화 순서를 도시한 것이다.
도 18은 본 개시에 따른 부호화/복호화 장치에서의 화면내 예측 방법을 도시한 것이다.
도 19 및 도 20은 본 개시가 적용되는 일실시예로서, 현재 블록이 이용 가능한 기-정의된 화면내 예측 모드들을 도시한 것이다.
도 21은 본 개시가 적용되는 일실시예로서, 현재 블록 내 파티션이 이용할 수 있는 화면내 예측 모드의 범위를 도시한 것이다.
도 22 및 도 23은 본 개시가 적용되는 일실시예로서, MPM 리스트를 구성할 때 사용되는 주변 참조 위치를 도시한 것이다.
도 24 내지 도 28은 본 개시가 적용되는 일실시예로서, 참조 화소를 유도하는 방법을 도시한 것이다.
도 29는 본 개시의 일 실시예에 따른, 서브 블록 단위로 화면 내 예측 모드를 결정하는 예를 설명하기 위한 도면이다.
도 30 및 도 31은 현재 블록에 인접하는 이웃 블록들 각각의 참조 모드를 유도하는 방법을 예시한 도면이다.
도 32 및 도 33은 참조 모드를 기초로 서브 블록들의 화면 내 예측 모드를 설정하는 예를 나타낸 것이다.
도 34 및 도 35는 참조 모드들을 가중합하여 서브 블록의 화면 내 예측 모드를 유도하는 예를 나타낸다.
도 36은 현재 블록의 중앙 위치 화소를 포함하는 서브 블록이 대표 블록으로 지정된 예를 나타낸 것이다.
도 37은 복수의 화면 내 예측을 수행하여, 서브 블록의 예측 블록을 생성하는 예를 나타낸 도면이다.
도 38은 서브 블록이 변환 유닛으로 설정되는지 여부에 따른 부/복호화 양상을 나타낸 도면이다.
도 39는 서브 블록 별로 변환 스킵 여부 및 변환 커널이 결정된 예를 나타낸 것이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 개시의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 개시의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 픽쳐 분할부(110), 예측부(120, 125), 변환부(130), 양자화부(135), 재정렬부(160), 엔트로피 부호화부(165), 역양자화부(140), 역변환부(145), 필터부(150) 및 메모리(155)를 포함할 수 있다.
도 1에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 개시의 본질에서 벗어나지 않는 한 본 개시의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 개시에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 개시는 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 개시의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 개시의 권리범위에 포함된다.
픽쳐 분할부(110)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 단위(Prediction Unit: PU)일 수도 있고, 변환 단위(Transform Unit: TU)일 수도 있으며, 부호화 단위(Coding Unit: CU)일 수도 있다. 픽쳐 분할부(110)에서는 하나의 픽쳐에 대해 복수의 부호화 단위, 예측 단위 및 변환 단위의 조합으로 분할하고 소정의 기준(예를 들어, 비용 함수)으로 하나의 부호화 단위, 예측 단위 및 변환 단위 조합을 선택하여 픽쳐를 부호화 할 수 있다.
예를 들어, 하나의 픽쳐는 복수개의 부호화 단위로 분할될 수 있다. 픽쳐에서 부호화 단위를 분할하기 위해서는 쿼드 트리(Quad Tree), 터너리 트리 (Ternary Tree), 또는 바이너리 트리(Binary Tree) 와 같은 재귀적인 트리 구조를 사용할 수 있는데 하나의 영상 또는 최대 크기 부호화 단위(largest coding unit)를 루트로 하여 다른 부호화 단위로 분할되는 부호화 유닛은 분할된 부호화 단위의 개수만큼의 자식 노드를 가지고 분할될 수 있다. 일정한 제한에 따라 더 이상 분할되지 않는 부호화 단위는 리프 노드가 된다. 일 예로, 하나의 코딩 유닛에 대해 쿼드 트리 분할이 적용되는 것으로 가정하는 경우, 하나의 부호화 단위는 최대 4개의 다른 부호화 단위로 분할될 수 있다.
이하, 본 개시의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다.
화면내 예측시, 변환 단위와 예측 단위가 동일하게 설정될 수 있다. 이때, 부호화 유닛을 복수의 변환 단위들로 분할한 뒤, 각 변환 단위마다 화면내 예측을 수행할 수도 있다. 부호화 유닛은, 수평 방향 또는 수직 방향으로 분할될 수 있다. 부호화 단위를 분할하여 생성되는 변환 단위들의 개수는 부호화 단위의 크기에 따라, 2개 또는 4개일 수 있다.
예측부(120, 125)는 화면간 예측을 수행하는 화면간 예측부(120)와 화면내 예측을 수행하는 화면내 예측부(125)를 포함할 수 있다. 부호화 단위에 대해 화면간 예측을 사용할 것인지 또는 화면내 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 화면내 예측 모드, 움직임 벡터, 참조 픽쳐 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 부호화 단위로 결정되고, 예측의 수행은 예측 단위 또는 변환 단위로 수행될 수도 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(130)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(165)에서 부호화되어 복호화 장치에 전달될 수 있다. 특정한 부호화 모드를 사용할 경우, 예측부(120, 125)를 통해 예측 블록을 생성하지 않고, 원본 블록을 그대로 부호화하여 복호화부에 전송하는 것도 가능하다.
화면간 예측부(120)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 단위를 예측할 수도 있고, 경우에 따라서는 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로 예측 단위를 예측할 수도 있다. 화면간 예측부(120)는 참조 픽쳐 보간부, 움직임 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(155)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 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) 방법, 화면내 블록 카피(Intra Block Copy) 방법 등 다양한 방법이 사용될 수 있다.
화면내 예측부(125)는 현재 픽쳐 내의 화소 정보인 참조 픽셀 정보를 기초로 예측 블록을 생성할 수 있다. 복수의 참조 픽셀 라인들 중 선택된 하나로부터 참조 픽셀 정보를 유도할 수 있다. 복수의 참조 픽셀 라인들 중 N번째 참조 픽셀 라인은, 현재 블록 내 좌상단 픽셀과의 x축 차분이 N인 좌측 픽셀들 및 상기 좌상단 픽셀과의 y축 차분이 N인 상단 픽셀들을 포함할 수 있다. 현재 블록이 선택할 수 있는 참조 픽셀 라인들의 개수는, 1개, 2개, 3개 또는 4개일 수 있다.
현재 예측 단위의 주변 블록이 화면간 예측을 수행한 블록이어서, 참조 픽셀이 화면간 예측을 수행한 픽셀일 경우, 화면간 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 화면내 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀들 중 적어도 하나의 정보로 대체하여 사용할 수 있다.
화면내 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 예측을 수행시 방향성 정보를 사용하지 않는 비방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드가 상이할 수 있고, 색차 정보를 예측하기 위해 휘도 정보를 예측하기 위해 사용된 화면내 예측 모드 정보 또는 예측된 휘도 신호 정보를 활용할 수 있다.
화면내 예측을 수행할 때 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 화면내 예측을 수행할 수 있다.
화면내 예측 방법은 예측 모드에 따라 참조 화소에 스무딩(Smoothing) 필터를 적용한 후 예측 블록을 생성할 수 있다. 선택된 참조 픽셀 라인에 따라, 스무딩 필터의 적용 여부가 결정될 수 있다.
화면내 예측 방법을 수행하기 위해 현재 예측 단위의 화면내 예측 모드는 현재 예측 단위의 주변에 존재하는 예측 단위의 화면내 예측 모드로부터 예측할 수 있다. 주변 예측 단위로부터 예측된 모드 정보를 이용하여 현재 예측 단위의 예측 모드를 예측하는 경우, 현재 예측 단위와 주변 예측 단위의 화면내 예측 모드가 동일하면 소정의 플래그 정보를 이용하여 현재 예측 단위와 주변 예측 단위의 예측 모드가 동일하다는 정보를 전송할 수 있고, 만약 현재 예측 단위와 주변 예측 단위의 예측 모드가 상이하면 엔트로피 부호화를 수행하여 현재 블록의 예측 모드 정보를 부호화할 수 있다.
또한, 예측부(120, 125)에서 생성된 예측 단위를 기초로 예측을 수행한 예측 단위와 예측 단위의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력될 수 있다.
변환부(130)에서는 원본 블록과 예측부(120, 125)를 통해 생성된 예측 단위의 잔차값(residual)정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지, DST를 적용할지 또는 KLT를 적용할지는, 변환 단위의 크기, 변환 단위의 형태, 예측 단위의 예측 모드 또는 예측 단위의 화면내 예측 모드 정보 중 적어도 하나를 기초로 결정할 수 있다.
양자화부(135)는 변환부(130)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(135)에서 산출된 값은 역양자화부(140)와 재정렬부(160)에 제공될 수 있다.
재정렬부(160)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.
재정렬부(160)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(160)에서는 지그-재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 단위의 크기 및 화면내 예측 모드에 따라 지그-재그 스캔 대신 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔, 또는 2차원의 블록 형태 계수를 대각 방향으로 스캔하는 대각 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 화면내 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔, 수평 방향 스캔 또는 대각 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160) 및 예측부(120, 125)로부터 부호화 단위의 잔차값 계수 정보 및 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, 예측 단위 정보 및 전송 단위 정보, 움직임 벡터 정보, 참조 프레임 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 부호화할 수 있다.
엔트로피 부호화부(165)에서는 재정렬부(160)에서 입력된 부호화 단위의 계수값을 엔트로피 부호화할 수 있다.
역양자화부(140) 및 역변환부(145)에서는 양자화부(135)에서 양자화된 값들을 역양자화하고 변환부(130)에서 변환된 값들을 역변환한다. 역양자화부(140) 및 역변환부(145)에서 생성된 잔차값(Residual)은 예측부(120, 125)에 포함된 움직임 추정부, 움직임 보상부 및 화면내 예측부를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(150)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다.
디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 디블록킹을 수행할지 여부를 판단하기 위해 블록에 포함된 몇 개의 열 또는 행에 포함된 픽셀을 기초로 현재 블록에 디블록킹 필터 적용할지 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용하는 경우 필요한 디블록킹 필터링 강도에 따라 강한 필터(Strong Filter) 또는 약한 필터(Weak Filter)를 적용할 수 있다. 또한 디블록킹 필터를 적용함에 있어 수직 필터링 및 수평 필터링 수행시 수평 방향 필터링 및 수직 방향 필터링이 병행 처리되도록 할 수 있다.
오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 휘도 신호는 부호화 단위(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF 필터의 모양 및 필터 계수는 달라질 수 있다. 또한, 적용 대상 블록의 특성에 상관없이 동일한 형태(고정된 형태)의 ALF 필터가 적용될 수도 있다.
메모리(155)는 필터부(150)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 화면간 예측을 수행 시 예측부(120, 125)에 제공될 수 있다.
도 2는 본 개시의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화 장치(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230, 235), 필터부(240), 메모리(245)가 포함될 수 있다.
영상 부호화 장치에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화 장치와 반대의 절차로 복호화될 수 있다.
엔트로피 복호화부(210)는 영상 부호화 장치의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화 장치에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다.
엔트로피 복호화부(210)에서는 부호화 장치에서 수행된 화면내 예측 및 화면간 예측에 관련된 정보를 복호화할 수 있다.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부(215)에서는 부호화부에서 수행된 계수 스캐닝에 관련된 정보를 제공받고 해당 부호화부에서 수행된 스캐닝 순서에 기초하여 역으로 스캐닝하는 방법을 통해 재정렬을 수행할 수 있다.
역양자화부(220)는 부호화 장치에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화 장치에서 수행한 양자화 결과에 대해 변환부에서 수행한 변환 즉, DCT, DST, 및 KLT에 대해 역변환 즉, 역 DCT, 역 DST 및 역 KLT를 수행할 수 있다. 역변환은 영상 부호화 장치에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 복호화 장치의 역변환부(225)에서는 예측 방법, 현재 블록의 크기, 형태, 예측 모드 및 화면내 예측 방향 등 복수의 정보에 따라 변환 기법(예를 들어, DCT, DST, KLT)이 선택적으로 수행될 수 있다.
예측부(230, 235)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(245)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화 장치에서의 동작과 동일하게 화면내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 화면내 예측을 수행하지만, 화면내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 화면내 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 NxN 분할을 사용하는 화면내 예측을 사용할 수도 있다.
예측부(230, 235)는 예측 단위 판별부, 화면간 예측부 및 화면내 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 화면내 예측 방법의 예측 모드 정보, 화면간 예측 방법의 움직임 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 화면간 예측을 수행하는지 아니면 화면내 예측을 수행하는지 여부를 판별할 수 있다. 화면간 예측부(230)는 영상 부호화 장치에서 제공된 현재 예측 단위의 화면간 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 화면간 예측을 수행할 수 있다. 또는, 현재 예측 단위가 포함된 현재 픽쳐 내에서 기-복원된 일부 영역의 정보를 기초로 화면간 예측을 수행할 수도 있다.
화면간 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 움직임 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode), 화면내 블록 카피 모드 중 어떠한 방법인지 여부를 판단할 수 있다.
화면내 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 화면내 예측을 수행한 예측 단위인 경우, 영상 부호화 장치에서 제공된 예측 단위의 화면내 예측 모드 정보를 기초로 화면내 예측을 수행할 수 있다. 화면내 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화 장치에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 화면내 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화 장치로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화 장치의 디블록킹 필터에서는 영상 부호화 장치에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화 장치에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다.
ALF는 부호화 장치로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
전술한 바와 같이 이하, 본 개시의 실시예에서는 설명의 편의상 코딩 유닛(Coding Unit)을 부호화 단위라는 용어로 사용하지만, 부호화뿐만 아니라 복호화를 수행하는 단위가 될 수도 있다.
또한, 현재 블록은, 부호화/복호화 대상 블록을 나타내는 것으로, 부호화/복호화 단계에 따라, 코딩 트리 블록(또는 코딩 트리 유닛), 부호화 블록(또는 부호화 유닛), 변환 블록(또는 변환 유닛), 예측 블록(또는 예측 유닛) 또는 인루프 필터의 적용 대상인 블록 등을 나타내는 것일 수 있다. 본 명세서에서, '유닛'은 특정 부호화/복호화 프로세스를 수행하기 위한 기본 단위를 나타내고, '블록'은 소정 크기의 화소 어레이를 나타낼 수 있다. 별도의 구분이 없는 한, '블록'과 '유닛'은 동등한 의미로 사용될 수 있다. 예컨대, 후술되는 실시예에서, 부호화 블록(코딩 블록) 및 부호화 유닛(코딩 유닛)은 상호 동등한 의미인 것으로 이해될 수 있다.
도 3 내지 도 12는 본 개시에 따른 블록 분할 방법을 도시한 것이다.
후술되는 실시예에서, '블록'은, 부호화/복호화의 대상이 되는 것으로서, 코딩 블록, 예측 블록 또는 변환 블록 중 어느 하나를 나타낼 수 있다.
하나의 블록은 트리 구조(tree structure)를 통해 다양한 크기와 형태를 가진 복수의 블록으로 분할될 수 있다. 분할된 블록 역시 다양한 크기와 형태를 가진 복수의 블록으로 다시 분할될 수 있다. 이와 같이, 블록을 재귀적으로 분할하는 것을, '트리 구조' 기반의 분할이라 정의할 수 있다.
상기 트리 구조 기반의 분할은, 소정의 분할 정보에 기초하여 수행될 수 있다. 여기서, 분할 정보는 부호화 장치에서 부호화되어 비트스트림을 통해 전송된 것일 수도 있고, 부호화/복호화 장치에서 유도되는 것일 수도 있다. 상기 분할 정보는 블록의 분할 여부를 지시하는 정보(이하, 분할 플래그라 함)를 포함할 수 있다. 분할 플래그가 블록의 분할을 지시하면, 블록을 분할하고, 부호화 순서에 따라 다음 블록으로 이동한다. 여기서 다음 블록은 분할된 블록들 중 첫 번째로 부호화가 수행될 블록을 의미한다. 분할 플래그가 블록이 분할되지 않음을 지시하면, 블록의 부호화 정보를 부호화한 후, 다음 블록의 존재 여부에 따라 다음 블록으로 이동하던지 혹은 블록의 분할 과정을 종료한다.
분할 정보는 트리(tree) 분할에 대한 정보가 포함할 수 있다. 이하, 블록 분할에 사용되는 트리(tree) 분할 방식에 대해 설명한다.
BT(Binary Tree) 분할 방식은, 블록을 2분할하는 방식이다. 2분할로 생성된 블록들은 동일한 크기를 가질 수 있다. 도 3은 BT 플래그를 통해 블록을 BT 분할하는 예시를 나타낸다.
BT flag를 통해 블록의 분할 여부를 결정할 수 있다. 일 예로, BT flag가 0인 경우에는 BT 분할을 종료한다. 반면, BT flag가 1인 경우에는 분할 방향을 지시하는 Dir flag를 이용하여 블록을 2개의 블록으로 분할할 수 있다.
또한, 분할된 블록을 깊이(depth) 정보로 표현할 수 있다. 도 4는 깊이 정보에 대한 예시를 나타낸다.
도 4의 (a)는 블록(400)이 BT 분할을 통해 분할되는 과정과 깊이 정보(depth)의 값을 나타내는 예시이다. 블록이 분할될 때마다, 깊이 정보의 값은 1씩 증가할 수 있다. Depth N의 블록이 depth (N+1)의 블록들로 분할된 경우, depth N의 블록은 depth (N+1)의 블록들의 부모(parent) 블록이라 부른다. 반대로, Depth (N+1)의 블록은 depth N의 블록의 자식(child) 블록이라 부른다. 이는 후술하는 트리 구조에서 동일하게 적용될 수 있다. 도 4의 (b)는, 블록(400)이 BT를 이용하여 (a)와 같이 분할되는 경우, 최종적으로 분할된 모양을 나타낸 것이다.
TT(Ternary-tree) 분할 방식은, 블록을 3분할하는 방식이다. 이때, 자식 블록들은 1:2:1의 비율을 가질 수 있다. 도 5는 TT flag를 통해 블록을 TT 분할하는 예시를 나타낸다.
TT flag를 통해 블록의 분할 여부를 결정할 수 있다. 일 예로, TT flag가 0인 경우에는 TT 분할을 종료한다. 반면, TT flag가 1인 경우에는 Dir flag를 이용하여 가로 방향 혹은 세로 방향으로 블록을 3분할할 수 있다.
QT(quad-tree) 분할 방식은, 블록을 4분할하는 방식이다. 4개의 자식 블록들은 동일한 크기를 가질 수 있다. 도 6은 QT flag를 통해 블록을 QT 분할하는 예시를 나타낸다.
QT flag를 통해 블록의 분할 여부를 결정할 수 있다. 일 예로, QT flag가 0인 경우에는 QT 분할을 종료한다. 반면, QT flag가 1인 경우에는 블록을 4분할할 수 있다.
하나의 블록은 도 4 내지 도 6에 따른 BT 분할, TT 분할 및 QT 분할 이외에 다양한 방식으로 분할될 수도 있다. 일 예로, 하나의 블록을 5개의 자식 블록들로 분할하는 방식을 적용할 수 있다. 도 7은 블록을 PT(Penta-tree) flag를 이용하여 5분할하는 PT 분할 방식에 대한 예시를 나타낸다.
블록에 대한 PT flag를 통해 블록의 5분할 여부를 결정할 수 있다. PT flag가 0인 경우에는 PT 분할을 종료한다. 만약, PT flag가 1인 경우, 분할 방향을 알려주는 Dir flag를 이용하여 가로 방향 혹은 세로 방향 중 어떤 방향으로 분할할지 여부를 결정할 수 있다.
추가적으로 인덱스(index)를 이용하여 분할 타입을 지시할 수 있다. 5분할이 적용되는 경우, 4개의 자식 블록들은 동일한 크기를 가지고, 나머지 1개의 자식 블록은 다른 자식 블록들보다 4배의 크기를 가질 수 있다. 이때, 다른 자식 블록들보다 크기가 큰 자식 블록의 위치는, 인덱스에 의해 지시될 수 있다. 즉, 상기 인덱스는 부호화/복호화 장치에 기-정의된 복수의 PT 분할 타입 중 어느 하나를 특정하거나, 5개의 자식 블록들 중 가장 큰 자식 블록의 위치를 특정하는 것으로 정의될 수 있다.
복수의 PT 분할 타입은, 1:1:4:1:1의 분할비율을 가진 제1 타입, 1:4:1:1:1의 분할 비용을 가진 제2 타입 및 1:1:1:4:1의 분할 비율을 가진 제3 타입을 포함할 수 있다. 도 7에 도시된 바와 같이, index의 값, 즉 0 내지 2에 따라 각각 1:1:4:1:1, 1:4:1:1:1, 1:1:1:4:1의 비율로 분할 가능하다.
혹은, 복수의 PT 분할 타입은 제1 내지 제3 타입 중 2개의 타입만을 포함할 수도 있다. 예를 들어, 복수의 PT 분할 타입은 제2 타입(1:4:1:1:1)과 제3 타입(1:1:1:4:1)만으로 구성될 수도 있고, 제2 또는 제3 타입 중 어느 하나만으로 분할될 수 있다. 이 경우, index는 0 내지 1의 범위에 속하게 된다. 도 8은 이와 관련된 예시를 나타낸다.
도 7 및 도 8의 예시에서, PT 분할에 따른 5개의 블록들 중 가장 큰 블록이 추가적으로 분할되는 경우, 분할 방향에 제한 사항을 적용할 수 있다. 일 예로, 부모 블록이 가로 방향으로 분할된 경우, 자식 블록에 대해서 세로 방향으로의 분할만이 허용될 수 있다. 도 9는 상기 언급한 제한 사항을 적용한 예시이다. 도 7에서 PT flag=0, Dir flag=0, index=0을 이용해서 부모 블록이 분할되고, 가장 큰 자식 블록에 추가적으로 PT 분할이 적용되는 경우, 도 9의 (a)에 도시된 바와 같이 가로 방향으로의 분할은 허용되지 않으며, 도 9의 (b)에 도시된 바와 같이 세로 방향으로의 분할만이 허용된다. 혹은 반대로, 가장 큰 자식 블록이 추가적으로 분할되는 경우, 부모 블록의 분할 방향을 그대로 적용하는 방식 또한 가능하다. 상기 두 예시에서, 가장 큰 자식 블록에 대해서는 dir flag의 시그널링이 생략되고, 가장 큰 자식 블록의 dir flag는 부모 블록의 dir flag를 이용하여 유도될 수 있다. 도 8의 예시에서도 전술한 제한 사항이 동일하게 적용될 수 있다. 혹은, 동일한 크기를 가진 나머지 4개의 자식 블록들에 대해서도 전술한 제한 사항이 동일하게 적용될 수도 있다.
다른 예로, 5개의 자식 블록들 중 크기가 가장 큰 자식 블록(즉, 4의 비율을 갖는 자식 블록)에 대해서만, 추가적인 분할을 허용할 수 있다. 이때, 가장 큰 자식 블록에 대해서는, PT 분할의 적용을 불허하는 한편, BT, TT 또는 QT 중 적어도 하나의 적용을 허용할 수도 있다. 이때, 상술한 제한사항이, BT, TT 또는 QT 분할에도 적용될 수 있다. 일 예로, 부모 블록의 PT 분할 방향과 상이한 방향으로만, BT, TT 또는 QT 분할이 적용되도록 강제될 수 있다. 또는, 가장 큰 자식 블록에 대해서도 추가적인 PT 분할이 허용될 수 있다. 다만, 이는 가중 큰 자식 또는 부모 블록의 크기가 소정의 문턱크기보다 크거나 같은 경우에 한하여 제한적으로 허용될 수 있다. 여기서, 크기는 너비, 높이, 너비와 높이의 비(ratio), 너비와 높이의 곱, 너비와 높이의 최소값/최대값 등으로 표현될 수 있다. 문턱크기는, 4, 8, 16, 32, 64, 128, 256 또는 그 이상의 정수일 수 있다.
또는, 자식 블록들 중 크기가 작은 자식 블록들에 대해서는, PT 분할의 적용을 불허하는 한편, BT, TT 또는 QT 중 적어도 하나의 적용을 허용할 수도 있다. 이때, 상술한 제한 사항이, 크기가 작은 자식 블록들에 대해서도 동일하게 적용될 수 있다. 일 예로, 부모 블록의 PT 분할 방향과 상이한 방향으로만, BT, TT 또는 QT 분할이 적용되도록 강제될 수 있다.
또는, 가장 큰 자식 블록에 대해서만 전술한 제한 사항이 적용되고, 크기가 작은 자식 블록들에 대해서는 전술한 제한 사항이 적용되지 않을 수도 있다. 반대로, 가장 큰 자식 블록에 대해서는 전술한 제한 사항이 적용되지 않고, 크기가 작은 자식 블록들에 대해서만 전술한 제한 사항이 적용될 수도 있다. 또는, 전술한 제한 사항은 부모 블록 또는 PT 분할에 따른 자식 블록의 크기가 소정의 문턱크기보다 작거나 같은 경우에 한하여 적용될 수도 있다. 반대로, 전술한 제한 사항은 부모 블록 또는 PT 분할에 따른 자식 블록의 크기가 소정의 문턱크기보다 크거나 같은 경우에 한하여 적용될 수도 있다. 여기서의 크기와 문턱크기는 전술한 바와 동일하므로 자세한 설명은 생략하기로 한다.
PT 분할의 허용 여부는, 블록의 크기, 형태 또는 깊이 중 적어도 하나에 의해 결정될 수 있다. 일 예로, PT 분할은, 코딩 트리 블록에 대해서만 허용되거나, 크기가 128x128, 64x64, 또는 32x32 이상인 블록에 대해서만 허용될 수 있다. 또는, PT 분할은 블록의 너비 또는 높이 중 최소값이 128, 64, 또는 32보다 크거나 같은 경우에 한해서만 허용될 수도 있다. 또는, PT 분할은, 정방형 블록에 대해서만 허용되고, 비정방형 블록에 대해서는 허용되지 않을 수 있다. 또는, PT 분할은 블록의 형태와 관계없이 크기에 종속적으로 허용될 수도 있다.
부모 블록을 가로 방향 또는 세로 방향 중 어느 하나의 방향으로만 4분할할 수 있으며, 이를 이하 변형된 4분할 방식이라 부르기로 한다. 부모 블록은 비대칭으로 4개의 자식 블록으로 분할될 수 있다. 여기서, 4개의 자식 블록 중 적어도 하나는 다른 하나와 다른 크기를 가지도록 분할될 수 있다. 예를 들어, 변형된 4분할 방식에 따른 분할 타입은 도 10에 도시된 바와 같이 정의될 수 있다. Index 0의 분할 타입은 1:4:2:1의 비율로 부모 블록의 너비 또는 높이를 분할하는 타입이고, index 1의 분할 타입은 1:2:4:1의 비율로 부모 블록의 너비 또는 높이를 분할하는 타입이며, index 2의 분할 타입은 1:4:1:2의 비율로 부모 블록의 너비 또는 높이를 분할하는 타입이고, index 3의 분할 타입은 2:1:4:1의 비율로 부모 블록의 너비 또는 높이를 분할하는 타입일 수 있다. 도 10은 변형된 4분할 방식에 따른 분할 타입으로 4개의 분할 타입을 도시하나, 이는 일예에 불과하며, 변형된 4분할 방식에 따른 분할 타입은 4개의 분할 타입 전부가 아닌 일부만으로 구성될 수도 있다. 또는, 변형된 4분할 방식에 따른 분할 타입은, 대칭 분할을 통해 4개의 자식 블록이 동일한 크기를 가지도록 분할하는 분할 타입을 더 포함할 수도 있다. 복수의 분할 타입 중 어느 하나가 선택적으로 이용될 수 있으며, 이를 위해 인덱스 정보가 부호화/복호화될 수 있다. 인덱스 정보는 부호화 장치에서 부호화되어 전송될 수도 있고, 복호화 장치에서 소정의 부호화 파라미터에 기초하여 유도될 수도 있다. 부호화 파라미터는, 부모 블록보다 작은 뎁스를 가진 상위 블록의 분할 타입, 크기, 부모 블록의 크기, 위치 등을 의미할 수 있다.
도 11은 변형된 4분할 방식(QT1)에 따른 분할 타입이 도 10에 도시된 index 0 내지 1의 분할 타입만으로 구성된 경우의 분할 방법을 도시한 것이다.
QT1 flag를 통해 블록의 분할 여부를 결정한다. 예컨대, QT1 flag가 0인 경우에는 분할을 수행하지 않고 종료한다. 반면, QT1 flag가 1인 경우, 분할 방향을 알려주는 Dir flag를 이용하여 가로 방향 혹은 세로 방향 중 어떤 방향으로 분할할지 여부를 결정한다. 또한, 추가적으로 인덱스를 이용하여 분할 타입을 지시하며, 부모 블록은 index 값에 따라 1:4:2:1 또는 1:2:4:1의 비율로 분할될 수 있다.
혹은 도 11과 다른 4분할 방식(QT2)도 가능하다. 도 12는 이를 나타낸 예시이다.
도 12는 변형된 4분할 방식(QT2)에 따른 분할 타입이 도 10에 도시된 index 2 내지 3의 분할 타입만으로 구성된 경우의 분할 방법을 도시한 것이다.
QT2 flag를 통해 블록의 분할 여부를 결정한다. 예컨대, QT2 flag가 0인 경우에는 분할을 수행하지 않고 종료한다. 반면, QT2 flag가 1인 경우, 분할 방향을 알려주는 Dir flag를 이용하여 가로 방향 혹은 세로 방향 중 어떤 방향으로 분할할지 여부를 결정한다. 또한, 추가적으로 인덱스를 이용하여 분할 타입을 지시하며, 부모 블록은 index 값에 따라 1:4:1:2 또는 2:1:4:1의 비율로 분할될 수 있다.
변형된 4분할 방식에서도, 도 9에서 살펴본 PT 분할과 유사하게 분할 방향에 대해서 제한 사항을 적용할 수 있다. 일 예로 부모 블록이 가로 방향으로 1:4:2:1의 비율로 분할되고, 4 혹은 2의 비율을 가진 자식 블록이 추가적으로 분할된다고 가정하자. 이때 4 또는 2의 비율을 가진 자식 블록은 Dir flag의 시그널링 없이 부모 블록의 Dir flag를 이용하여 분할할 수 있다. 일 예로, 자식 블록의 분할 방향은, 부모 블록과 상이한 방향으로 결정될 수 있다. 혹은 4의 비율을 가진 블록에서만 상기 제한 사항을 적용할 수도 있으며, 2의 비율을 가진 블록에서만 상기 제한 사항을 적용하는 것 또한 가능하다. 혹은 1의 비율을 가진 블록에서만 상기 제한 사항을 적용할 수도 있다. 또는 4와 2의 비율을 가진 블록에서만 상기 제한 사항을 적용하고, 1의 비율을 가진 블록에 대해서는 상기 제한 사항을 적용하지 않을 수 있다. 또는, 전술한 제한 사항은 부모 블록 또는 변형된 4분할 방식에 따른 자식 블록의 크기가 소정의 문턱크기보다 작거나 같은 경우에 한하여 적용될 수도 있다. 반대로, 전술한 제한 사항은 부모 블록 또는 변형된 4분할 방식에 따른 자식 블록의 크기가 소정의 문턱크기보다 크거나 같은 경우에 한하여 적용될 수도 있다. 여기서의 크기와 문턱크기는 전술한 바와 동일하므로 자세한 설명은 생략하기로 한다.
다른 예로, 자식 블록들 중 비율이 4인 블록 또는 비율이 2인 블록 중 적어도 하나에 대해서만, 추가적인 분할을 허용할 수 있다. 일 예로, 위 자식 블록에, BT, TT, QT, PT 또는 변형된 4분할 방식 중 적어도 하나가 적용될 수 있다. 이때, 상술한 제한사항이, BT, TT, QT, PT 또는 변형된 4분할 방식에도 적용될 수 있다. 일 예로, 부모 블록의 PT 분할 방향과 상이한 방향으로만, BT, TT, QT, PT 또는 변형된 4분할 방식이 적용되도록 강제될 수 있다.
또는, 자식 블록들 중 크기가 작은 자식 블록들(즉, 비율이 1인 블록)에 대해서도, 추가적인 분할을 허용할 수도 있다. 이때, 상술한 제한 사항이, 크기가 작은 자식 블록들에 대해서도 적용될 수 있다.
변형된 4분할 방식의 허용 여부는, 블록의 크기, 형태 또는 깊이 중 적어도 하나에 의해 결정될 수 있다. 일 예로, 변형된 4분할 방식은, 코딩 트리 블록에 대해서만 허용되거나, 크기가 128x128, 64x64, 또는 32x32 이상인 블록에 대해서만 허용될 수 있다. 또는, 변형된 4분할 방식은 블록의 너비 또는 높이 중 최소값이 128, 64, 또는 32보다 크거나 같은 경우에 한해서만 허용될 수도 있다. 또는, 변형된 4분할 방식은, 정방형 블록에 대해서만 허용되고, 비정방형 블록에 대해서는 허용되지 않을 수 있다. 또는, 변형된 4분할 방식은 블록의 형태와 관계없이 크기에 종속적으로 허용될 수도 있다.
상기 언급한 BT, TT, QT, PT, 변형된 4분할 방식과 같은 트리 분할 방식들의 사용 여부를 지시하는 정보는 각각 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), PH(Picture Header), SH(Slice Header)와 같은 상위 헤더를 통해 복호화 장치로 시그널링될 수 있다.
또는, 이 트리 분할 방식들의 사용 여부를 지시하는 정보는 각각 병렬 처리가 수행되는 영역마다 복호화 장치로 시그널링될 수 있다.
상기 언급한 트리 분할 방식들은 우선 순위를 가지고 혼용될 수 있다. 우선 순위는 상위 헤더 혹은 병렬 처리가 수행되는 영역마다 시그널링될 수 있다.
전술한 분할 방식들 중 적어도 하나는, 코딩 블록을 복수의 코딩 블록들로 분할하는 경우에 적용될 수 있다. 또는, 전술한 분할 방식들 중 적어도 하나는, 코딩 블록을 복수의 예측 블록들로 분할하는 경우에 적용되거나, 코딩 블록을 복수의 변환 블록들로 분할하는 경우에 적용될 수도 있다. 또는, 전술한 분할 방식들 중 적어도 하나는, 서브 블록 단위의 예측을 위해 하나의 예측 블록을 복수의 서브 블록으로 분할하는 경우에 적용될 수 있다. 또는, 전술한 분할 방식들 중 적어도 하나는, 서브 블록 단위의 변환을 위해 하나의 변환 블록을 복수의 서브 블록으로 분할하는 경우에 적용될 수 있다.
도 13 내지 도 17은 본 개시에 따른 블록 분할 방식에 따른 부호화 순서를 도시한 것이다.
본 개시에 따른 분할 정보에는, 분할 플래그를 이용한 블록 분할 방식 외에도 추가적으로 자식 블록들 간의 부호화 순서가 포함될 수도 있다. 이하, 부모 블록이 트리 분할을 통해 자식 블록들로 분할될 때, 자식 블록들의 부호화 순서 정보(COI : Coding Order Information)에 대한 예시를 설명한다.
도 13은 BT 분할에 사용될 수 있는 부호화 순서를 나타낸다.
도 13에서, 각 블록에 할당된 숫자는 부호화 순서를 나타낸다. 도 3에서 설명한 것과 같이 BT flag가 1로 설정되어 분할이 수행되는 경우, 자식 블록의 부호화 순서를 나타내는 정보를 추가적으로 시그널링할 수 있다. 만약 BT flag가 0이라면 자식 블록으로의 분할이 수행되지 않기 때문에 부호화 순서를 나타내는 정보를 시그널링할 필요가 없다. 분할 방식에 따라 이용 가능한 부호화 순서의 개수는 (분할방향) x (분할개수)! 의 값으로 표현되며, BT 분할의 경우 2 x 2! (즉, 4)가 된다.
도 14는 TT 분할에 사용될 수 있는 부호화 순서를 나타낸다.
도 14에서, 각 블록에 할당된 숫자는 부호화 순서를 나타낸다. 도 5에서 설명한 것과 같이 TT flag가 1로 설정되어 분할이 수행되는 경우, 자식 블록의 부호화 순서를 나타내는 정보를 추가적으로 시그널링할 수 있다. 만약 TT flag가 0이라면 자식 블록으로의 분할이 수행되지 않기 때문에 부호화 순서를 나타내는 정보를 시그널링할 필요가 없다. TT 분할의 경우, 이용 가능한 부호화 순서의 개수는 2 x 3!(즉, 12)가 된다.
도 15는 QT 분할에 사용될 수 있는 부호화 순서를 나타낸다.
도 15에서, 각 블록에 할당된 숫자는 부호화 순서를 나타낸다. 도 6에서 설명한 것과 같이 QT flag가 1로 설정되어 분할이 수행되는 경우, 자식 블록의 부호화 순서를 나타내는 정보를 추가적으로 시그널링할 수 있다. 만약 QT flag가 0이라면 자식블록으로의 분할이 수행되지 않기 때문에 부호화 순서를 타내는 정보를 시그널링할 필요가 없다. QT 분할은 4분할을 의미하고, 분할 방향이 존재하지 않으므로, 이용 가능한 부호화 순서의 개수는 1 x 4!(즉, 24)가 된다.
PT 분할도 상기 언급한 방식과 유사하게 PT flag가 1로 설정되어 분할이 수행되는 경우, 자식 블록의 부호화 순서를 나타내는 정보를 추가적으로 시그널링할 수 있다. 만약 PT flag가 0이라면 자식 블록으로의 분할이 수행되지 않기 때문에 부호화 순서를 나타내는 정보를 시그널링할 필요가 없다. PT 분할은 5분할을 의미하고, 가로 혹은 세로 방향의 분할이 수행되므로, 이용 가능한 부호화 순서의 개수는 2 x 5!(즉, 240)이 된다. 도 16은 240개의 부호화 순서 중 일부를 나타낸 예시이다.
도 8, 도 11, 또는 도 12의 예시에도 상기 언급한 방식과 동일하게, 분할이 되는 경우에 한하여 부호화 순서를 나타내는 정보를 시그널링할 수 있다. 이용 가능한 부호화 순서의 개수도 마찬가지로 (분할방향) x (분할개수)!로 산출될 수 있다.
혹은 간소화를 위해, 도 13 내지 도 16처럼 이용 가능한 모든 부호화 순서를 후보로 이용하지 않을 수 있다. 일 예로, 분할 방향에 따라 부호화 방향을 시그널링할 수 있다. 부호화 방향은, 좌에서 우, 우에서 좌, 위에서 아래, 아래에서 위, 대각 방향 또는 역 대각 방향 중 적어도 하나로 설정될 수 있다. 일 예로, 도 13과 같이 블록이 2분할되었다면, 가로 방향 분할인지 세로 방향 분할인지에 따라 부호화 방향을 시그널링할 수 있다. 만약 블록이 가로로 분할되었다면, 위쪽에서 아래쪽 방향과 아래쪽에서 위쪽 방향 중 어느 방향으로 부호화가 진행되었는지 여부를 시그널링할 수 있다. 반대로 블록이 세로로 분할되었다면, 왼쪽에서 오른쪽 방향과 오른쪽에서 왼쪽 방향 중 어느 방향으로 부호화가 진행되었는지 여부를 시그널링 할 수 있다. 마찬가지로, 도 14 내지 도 16에서도 동일한 내용이 적용될 수 있다.
다른 예로, 부호화 시작 위치 및/또는 종료 위치, 또는 부호화 시작 위치 및/또는 진행 방향을 시그날링할 수도 있다. 일 예로, 도 15의 예와 달리, QT 분할이 적용된 경우, 항상 지그재그 스캔 방식을 사용하되 부호화 시작 위치와 진행 방향만 시그널링할 수 있다. 도 17은 이와 관련된 예시를 나타낸다.
도 17의 예에서, 부호화 순서가 첫번째인 블록을 가리키는 정보 및 진행 방향이 가로 방향인지 또는 세로 방향인지 여부를 나타내는 정보가 부호화될 수 있다.
도 18은 본 개시에 따른 부호화/복호화 장치에서의 화면내 예측 방법을 도시한 것이다.
블록은, 공간적으로 존재하는 중복 데이터를 제거하는 기술인 화면 내 예측이 적용되어 부호화될 수 있다. 화면 내 예측이 적용되는 경우, 원본 블록에 인접한 주변 화소 또는 원본 블록과 N만큼 떨어진 라인에 속한 화소를 참조 화소로 이용하여 원본 블록에 대한 예측 값(예측 화소)들로 이루어진 예측 블록이 생성된다. 그 후, 원본 블록과 예측 블록의 차분 값인 잔차 블록을 생성하여 중복 데이터를 제거한다.
도 18을 참조하면, 현재 블록의 화면내 예측 모드를 유도할 수 있다(S1800).
여기서, 현재 블록은, 전술한 분할 방식들 중 적어도 하나에 기초하여 코딩 블록을 분할하여 획득된 것일 수 있다. 화면내 예측 모드는, 부호화/복호화 장치에 기-정의된 화면내 예측 모드들 중 어느 하나로 유도될 수 있다.
도 19 및 도 20은 현재 블록이 이용 가능한 기-정의된 화면내 예측 모드들을 도시한 것이다.
도 19를 참조하면, 평면을 이용하여 예측하는 방법에는 0번을 할당하였으며, 평면 모드(Planar mode) 혹은 0번 모드라 한다. 또한, DC를 이용하여 예측하는 방법에는 1번을 할당하였으며 DC 모드 혹은 1번 모드라 한다. 그외 방향성을 이용한 방법(방향성 모드)들의 경우 -14에서부터 80까지 번호를 할당하였으며, 방향을 화살표로 표시하였다. 일 예로 18번 모드는 가로 방향을 이용한 예측 방법을 나타내며, 50번 모드는 세로 방향을 이용한 예측 방법을 나타낸다.
상기 설명한 COI(Coding Order Information)정보에 따라, 부호화하려는 블록 주변에 이용 가능한 참조 화소가 확장될 수 있다. 이에 따라 블록 주변에 존재하는 참조 화소가 블록의 왼쪽 및 위쪽 뿐만 아니라 오른쪽 및/또는 아래쪽에도 존재할 수 있다. 이에 따라, 오른쪽 및/또는 아래쪽의 참조 화소를 이용하는 화면내 예측 모드가 추가적으로 정의될 수 있다. 도 20은 도 19의 방향성 모드가 360도 전체로 확장된 예시를 나타낸다. 여기서 도 19와 다르게, 설명의 편의성을 위해 방향성 모드에 대해 2번~ 129번으로 표시하였다.
현재 블록은 복수의 파티션으로 분할될 수 있다. 여기서의 분할은 전술한 분할 방식들 중 적어도 하나에 기초하여 수행될 수 있다. 이때, 현재 블록의 분할 타입, 파티션의 크기 또는 형태에 따라, 각 파티션이 이용할 수 있는 화면 내 예측 모드의 범위가 조절될 수도 있다. 도 21은 이와 관련된 예시를 나타낸다.
도 21에서 θ1과 θ2 각각의 범위를 조절할 수 있다. 일 예로, θ1과 θ2 는 각각 A도~B도 사이의 값을 가질 수 있다. A와 B의 값은 상위 헤더를 통해 시그널링할 수도 있으며 혹은 부호화/복호화 장치에서 기-설정된 값을 가질 수도 있다.
또는, 분할 방향에 따라, 각도 범위가 결정될 수 있다. 예컨대, 좌상단 45도 방향으로 현재 블록이 분할된 경우, 파티션 1은, 45도를 초과하는 화면내 예측 모드를 이용하지 못하도록 설정되고, 파티션 2는, 45도 미만의 화면내 예측 모드를 이용하지 못하도록 설정될 수 있다.
상기 예시에서는 대각 분할된 파티션들에 방향성 모드가 적용되는 경우를 설명하였다. 평면 모드 혹은 DC 모드도 방향성 모드와 유사하게 대각 분할된 파티션들에 적용될 수 있다.
혹은, 대각 분할된 파티션들에는 평면 모드 혹은 DC 모드가 적용되지 않게 하는 것 또한 가능하다.
혹은, 두 파티션들 중 하나가 평면 모드 혹은 DC 모드라면, 나머지 하나의 파티션에는 항상 방향성 모드가 적용되게 할 수도 있다. 혹은 반대의 경우도 가능하다.
혹은, 두 파티션들 중 하나가 평면 모드 혹은 DC 모드라면, 나머지 하나의 파티션에는 항상 DC 모드 혹은 평면 모드가 적용되게 할 수도 있다. 혹은 반대의 경우도 가능하다.
화면 내 예측 모드 부호화시, MPM(Most Probable Mode) 리스트를 구성 후, MPM 리스트에 속한 복수의 MPM 후보들 중 어느 하나를 특정하는 인덱스를 시그널링할 수 있다. 복호화 장치는 부호화 장치와 동일한 방식으로 MPM 리스트를 구성하고, MPM 리스트와 시그날링된 인덱스를 기반으로 현재 블록의 화면내 예측 모드를 유도할 수 있다.
도 22 및 도 23은 MPM 리스트를 구성할 때 사용되는 주변 참조 위치를 도시한 것이다.
도 22 및 도 23에 도시된 주변 참조 위치는, 각각 하나의 화소를 의미하거나 블록을 의미할 수 있다. 상기 주변 참조 위치는 현재 블록 주변의 서로 다른 블록에 포함되는 경우를 가정한다.
도 22를 참조하면, LB는 현재 블록 내에서 가장 왼쪽 아래에 위치한 화소의 위치를 의미하고 RT는 현재 블록 내에서 가장 오른쪽 위에 위치한 화소의 위치를 의미한다. 일 예로, L을 포함하는 블록과 A를 포함하는 블록에 존재하는 화면내 예측 모드들을 이용하여 MPM 리스트를 구성할 수 있다. 그 후, 현재 블록의 화면 내 예측 모드가 MPM 리스트에 포함되는지를 지시하는 정보, MPM 리스트의 어떤 모드와 동일한지를 알려주는 인덱스 정보(MPM 인덱스), MPM에 포함되지 않는다면 나머지 모드들 중 어느 하나를 특정하는 정보를 이용하여 현재 블록의 화면 내 예측 모드를 시그널링할 수 있다.
또는, 좌측 중앙에 위치하는 샘플(h 또는 g)를 포함하는 블록과 상단 중앙에 위치하는 샘플(d 혹은 c)를 포함하는 블록 중 적어도 하나의 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수도 있다. 또는, 좌측 상단에 위치하는 샘플(f)을 포함하는 블록과 상단 좌측에 위치하는 샘플(b)를 포함하는 블록 중 적어도 하나의 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수도 있다.
또한, 현재 블록의 우측과 하단에 위치한 참조 화소가 이용 가능한 경우, 도 22에 따른 MPM은 확장이 가능하다. 구체적으로, 현재 블록의 우측에 인접하는 이웃 블록 및/또는 현재 블록의 하단에 인접하는 이웃 블록 중 적어도 하나를 이용하여 MPM 후보를 유도할 수 있다.
도 23에서, LB는 현재 블록 내에서 가장 왼쪽 아래에 위치한 화소의 위치를 의미하고 RT는 현재 블록 내에서 가장 오른쪽 위에 위치한 화소의 위치를 의미한다. 일 예로, L을 포함하는 블록과 A를 포함하는 블록에 존재하는 화면내 예측 모드들을 이용하여 MPM 리스트를 구성할 수 있다. 또는, R을 포함하는 블록과 B를 포함하는 블록 중 적어도 하나에 존재하는 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수 있다.
또는, 하측 중앙(k 혹은 l) 샘플 또는 하단 우측(j) 샘플 중 적어도 하나를 포함하는 하단 블록을 이용하거나, 우측 중앙(g 혹은 f) 샘플 또는 우측 하단(h) 샘플 중 적어도 하나를 포함하는 우측 블록을 이용하여 MPM 리스트를 구성할 수 있다.
또는, 전술한 우측 및 하단에 위치한 주변 블록들의 화면내 예측 모드 중 어느 하나의 대표 모드만이 MPM 리스트에 추가될 수도 있다. 여기서, 대표 모드는, 우측 및 하단에 위치한 주변 블록들의 화면내 예측 모드들 중 최소값, 최대값, 또는 최빈값을 의미할 수도 있고, 부호화/복호화 장치에 기-약속된 고정된 위치의 모드를 의미할 수도 있다.
우측 블록 및/또는 하단 블록은, 좌측 블록 및/또는 상단 블록 대신 MPM 후보를 유도하는데 이용될 수 있다. 또는, 좌측 및/또는 상단 블록과 함께, 우측 블록 또는 하단 블록 중 적어도 하나를 더 이용하여 MPM 후보를 유도할 수 있다.
현재 블록이 복수의 파티션으로 분할된 경우, 복수의 파티션은 하나의 화면내 예측 모드를 공유할 수 있다. 또는, 현재 블록의 각 파티션마다 화면 내 예측 모드가 유도될 수도 있다.
두 파티션의 화면내 예측 모드는 MPM 후보를 통해서만 유도되도록 설정될 수 있다. 즉, 현재 블록이 복수의 파티션들로 분할된 경우, 각 파티션들의 화면내 예측 모드는, 복수의 MPM 후보 중 하나와 동일한 값을 가질 수 있다. 이 경우, MPM 플래그의 부호화/복호화가 생략되고, 그 값이 1로 간주(infer)될 수 있다. 또한, 복수의 파티션들 각각에 대해, MPM 인덱스를 시그날링할 수 있다.
또는, 제1 파티션의 화면내 예측 모드는, MPM 후보를 기초로 유도되는 한편, 제2 파티션의 화면내 예측 모드는, 디폴트 모드로 설정될 수 있다. 디폴트 모드는, 평면 모드, DC 모드, 수직 모드, 수평 모드, 또는 대각 모드 중 적어도 하나를 포함할 수 있다. 복수의 디폴트 모드가 정의된 경우, 복수의 디폴트 모드 중 어느 하나가 선택적으로 이용될 수 있다. 상기 선택을 위한 인덱스 정보가 시그날링될 수도 있고, 복수의 디폴트 모드 중 가장 높은 우선순위를 가진 모드가 이용될 수도 있다. 평면 모드, DC 모드, 수직 모드(혹은 수평 모드), 대각 모드의 순으로 우선순위를 가질 수 있으나 이에 한정되지 아니한다.
또는, 제1 파티션의 화면내 예측 모드에 오프셋을 가산/감산하여, 제2 파티션의 화면내 예측 모드를 유도할 수 있다. 여기서, 오프셋은, 부호화/복호화 장치에 기-정의되어 있을 수 있다. 또는, 오프셋 정보(예컨대, 절대값 및/또는 부호)가 부호화되어 시그날링될 수도 있다.
또한 각 파티션마다 사용된 화면내 예측모드가 시그널링될 수 있다. 이때, 화면내 예측 모드들을 부호화하기 위해 MPM(Most Probable Mode) 리스트를 구성한 후, MPM 리스트에 속한 복수의 MPM 후보 중 어느 하나를 특정하는 인덱스 정보를 각 파티션마다 시그널링할 수 있다. 일 예로, 제1 파티션의 화면내 예측 모드는, 제1 MPM 인덱스에 의해 결정되고, 제2 파티션의 화면내 예측 모드는, 제2 MPM 인덱스에 의해 결정될 수 있다. 이때, 제2 파티션의 MPM 인덱스가 제1 파티션의 MPM 인덱스보다 큰 경우, 제2 파티션의 MPM 인덱스에 1을 차분한 값을 제2 MPM 인덱스로 부호화/복호화할 수 있다. 즉, 제2 파티션의 화면내 예측 모드가 제1 파티션의 화면내 예측 모드와 같거나 큰 경우, 제2 파티션의 화면내 예측 모드는, 제2 MPM 인덱스에서 1을 더한 MPM 인덱스를 이용하여 유도될 수 있다.
제2 파티션의 화면내 예측 모드가 제1 파티션의 화면내 예측 모드에 기초하여 유도되는지 여부를 나타내는 플래그가 정의될 수 있다. 여기서, 플래그가 제1 값인 경우, 제2 파티션의 화면내 예측 모드는 제1 파티션의 화면내 예측 모드에 기초하여 유도되고, 플래그가 제2 값인 경우, 제2 파티션의 화면내 예측 모드는 전술한 디폴트 모드에 기초하여 유도되거나, 제2 파티션에 대해 시그날링된 인덱스 정보에 기초하여 유도될 수 있다.
또는, 제2 파티션의 화면내 예측 모드가 디폴트 모드에 기초하여 유도되는지 여부를 나타내는 플래그가 정의될 수 있다. 여기서, 플래그가 제1 값인 경우, 제2 파티션의 화면내 예측 모드는 전술한 디폴트 모드에 기초하여 유도되고, 플래그가 제2 값인 경우, 제2 파티션의 화면내 예측 모드는 제2 파티션에 대해 시그날링된 인덱스 정보에 기초하여 유도될 수 있다.
또는, 파티션 별로, MPM 리스트를 생성할 수도 있다. 일 예로, 제1 파티션을 위한 제1 MPM 리스트 및 제2 파티션을 위한 제2 MPM 리스트를 생성할 수 있다. 이때, 제1 MPM 리스트를 위한 이웃 블록 중 적어도 하나는, 제2 MPM 리스트를 위한 이웃 블록 중 어느 하나와 상이할 수 있다. 일 예로, 제1 MPM 리스트는, 좌측 및 상단 이웃 블록을 이용하여 생성되고, 제2 MPM 리스트는, 우측 및 하단 이웃 블록을 이용하여 생성될 수 있다. 혹은, 제2 MPM 리스트를 생성할 때, 제1 MPM 리스트 내에 존재하는 후보들과 상이한 후보들만을 이용하여 생성하는 것 또한 가능하다. 제1 MPM 리스트를 구성하기 위해 이용 가능한 이웃 블록의 개수는 제2 MPM 리스트를 구성하기 위해 이용 가능한 이웃 블록의 개수와 상이할 수 있다. 제1 MPM 리스트를 구성하기 위해 이용 가능한 이웃 블록의 개수는 N개이고, 제2 MPM 리스트를 구성하기 위해 이용 가능한 이웃 블록의 개수는 (N+1)개 또는 그 이상일 수 있다. 여기서, 제1 파티션은 현재 블록 내 좌상단 샘플 또는 우상단 샘플을 포함한 파티션을 의미하고, N은 2, 3, 4 또는 그 이상일 수 있다.
현재 블록에 대해서 2개 또는 그 이상의 화면내 예측 모드가 유도될 수 있다. 일 예로, 두 개의 화면 내 예측모드 m1과 m2는 각각 MPM 리스트를 이용하여 부호화된 후 시그널링될 수 있다.
혹은, MPM 리스트에 존재하는 화면내 예측 모드들만 이용할 수 있다. 이러한 경우, m1과 m2는 각각 MPM 인덱스를 이용하여 시그널링될 수 있다.
혹은, MPM 리스트에 포함되지 않더라도, 현재 블록 주변에 존재하는 화면내 예측 모드를 이용한 후, 이를 인덱스로 지정하여 사용하는 것 또한 가능하다.
혹은, 특정 모드에 우선순위를 부여할 수 있다. 일 예로 m1에는 항상 평면 모드 혹은 DC 모드가 사용되게 할 수 있다. 그 후, m2에서는 m1과 반대로 DC 모드 혹은 평면 모드가 사용되게 할 수 있다. 이러한 경우, m1이 평면 모드 혹은 DC 모드인지 여부를 알려주는 정보만 시그널링할 수 있다.
혹은, m1과 m2 중 어느 한 모드에만 평면 모드 혹은 DC 모드를 할당하고, 나머지 모드에는 그외 화면 내 예측 모드를 사용하는 방법 또한 가능하다.
혹은, m1에 항상 고정된 모드를 사용하는 것 또한 가능하다. 일 예로 고정된 모드는 평면 모드 혹은 DC 모드일 수 있다. 이 경우, m2에 사용된 화면내 예측 모드만 복호화 장치로 시그널링하여 알려준다.
혹은, m1, m2 두 모드 전부 고정된 모드일 수 있다. 일 예로 고정된 두 모드는 각각 평면 모드와 DC 모드일 수 있다. 혹은 방향성 모드에서 180도 차이를 가지는 두 모드가 각각 m1과 m2으로 설정될 수도 있다.
혹은, m1과 m2에 사용될 수 있는 모드들의 세트를 미리 구성하는 방법 또한 가능하다. 표 1은 상기 세트와 관련된 예시이다.
세트 인덱스 m1 m2
0 평면모드 DC모드
1 평면모드 수직모드
2 DC모드 수직모드
3 평면모드 수평모드
4 DC모드 수직모드
5 수직모드 수평모드
... ... ...
그 후, 표 1에서와 같이, 세트 인덱스를 시그널링하여 m1과 m2에 사용된 화면 내 예측 모드를 디코더에 알려줄 수 있다.현재 블록의 복수의 파티션으로 분할되는 경우, 현재 블록에 대해서 복수의 화면내 예측 모드를 유도하는 방법에 대해서 살펴본 바 있으며, 이는 m1과 m2를 유도할 때 동일하게 적용될 수 있으며, 자세한 설명은 생략하기로 한다.
도 18을 참조하면, 현재 블록의 화면내 예측을 위한 참조 화소를 유도할 수 있다(S1810).
현재 블록의 참조 화소들은 현재 블록에 인접한 참조 화소 라인(이하, 인접 화소 라인이라 함)으로부터 유도될 수도 있고, 현재 블록에 인접하지 않은 참조 화소 라인(이하, 비인접 화소 라인이라 함)으로부터 유도될 수도 있다. 또는, 현재 블록의 참조 화소들의 일부는 인접 화소 라인으로부터 유도되고, 나머지는 비인접 화소 라인으로부터 유도될 수 있다. 여기서, 비인접 화소 라인은, 부호화/복호화 장치에 기-정의된 P개의 참조 화소 라인 전부 또는 일부를 의미할 수 있다.
블록의 부호화 순서, 블록의 경계가 영상(예를 들어, 픽쳐, 타일, 슬라이스, CTU raw)의 경계에 위치하는 경우 등의 이유로 이용 불가능한 참조 화소가 존재할 수 있다. 따라서 해당 위치에서는 패딩 과정을 통해 참조 화소를 생성하여야 한다.
패딩은 현재 블록의 주변 영역을 2개의 영역으로 구분하여 수행될 수 있다. 일 예로 현재 블록의 왼쪽과 위쪽을 제1 영역으로 설정하고, 오른쪽과 아래쪽을 제2 영역으로 설정할 수 있다. 우선 각 영역마다, 참조 화소의 이용 가능 여부를 판단하기 위해 탐색 시작 위치를 설정한다. 도 24는 각 영역마다 탐색 시작 위치와 탐색 방향을 나타내는 예시이다. 도 24(a)는 현재 블록의 왼쪽과 위쪽의 참조 화소들을 포함하는 제1 영역을 나타내고, 도 24(b)는 현재 블록의 아래쪽과 오른쪽 참조 화소들을 포함하는 제2 영역을 나타낸다.
일 예로 도 24(a)에서, 탐색 시작 위치가 설정되었다면, 탐색 시작 위치에 이용 가능한 참조 화소가 존재하는지 확인한다. 만약 존재하지 않는다면 탐색 방향으로 순차적으로 이용 가능한 참조 화소가 탐색될 때까지 탐색을 진행한다. 도 25는 탐색 과정에 대한 예시를 나타낸다.
도 25에서, 탐색 시작 위치부터 탐색 방향으로 탐색을 수행하다가 A 위치에서 처음으로 이용 가능한 참조 화소가 탐색된 예시이다. A 위치에서 이용 가능한 참조 화소가 탐색된 후, A 위치의 참조 화소를 탐색 시작 위치로 복사한다. 그 후, 복사된 참조 화소를 탐색 방향으로 A 직전의 위치까지 순차적으로 복사하여 패딩을 수행한다. 즉, 탐색 시작 위치의 화소가 이용 불가능한 경우, 첫번째로 발견된 이용 가능한 화소를, 탐색 시작 위치까지 패딩할 수 있다.
위 예시와 달리, 탐색 시작 위치 이후부터 이용 불가능한 참조 화소가 존재할 수 있다. 도 26은 이와 관련된 예시를 나타낸다.
도 26(a)를 참조하면, 참조 화소 라인의 중간 위치에 이용 불가능한 참조 화소가 존재하는 경우, A 위치와 B 위치에 존재하는 참조 화소에 보간을 수행하여 패딩을 수행한다. 즉, N번째 화소가 이용 불가능한 경우, 해당 화소는 N 이전 가장 마지막으로 발견된 이용 가능한 화소 및 N 이후 가장 처음으로 발견된 이용 가능한 화소 간의 보간을 통해 생성될 수 있다.
도 26(b)와 같이 참조 화소 라인의 중간 지점부터 끝 지점까지 이용 가능한 참조 화소가 없는 경우, 가장 가까운 A 위치에 존재하는 참조 화소를 B 위치까지 순차적으로 복사하여 패딩을 수행한다. 즉, N번째 이후 모든 화소들이 이용 불가능한 경우, (N-1) 번째 화소를 마지막 위치까지 복사하여 패딩이 수행된다.
혹은, 탐색 시작 위치에서부터 탐색 방향으로 탐색을 수행하다가 처음으로 이용 가능한 참조 화소를 기준 화소로 결정하고, 이 기준 화소를 이용 불가능한 모든 위치로 복사하여 패딩을 수행하는 방식 또한 가능하다.
도 24(b)와 같은 영역에서도 상기 설명한 방식이 동일/유사하게 적용될 수 있다.
제1 영역 내 모든 참조 화소가 이용 불가능한 경우, 기-설정된 값을 이용하여 패딩을 수행할 수 있다. 일 예로, 모든 참조 화소가 이용 불가능한 경우, 비트심도를 이용한 중간값을 이용하여 참조 화소에 패딩을 수행할 수 있다. 일 예로 화소의 비트심도가 10비트인 경우, 화소값의 범위는 0~1023이 되고 중간값은 512가 될 수 있다.
또한 제2 영역 내 모든 참조 화소가 이용 불가능한 경우, 비트심도를 이용한 중간값을 이용하여 참조 화소에 패딩을 수행할 수 있다. 일 예로 화소의 비트심도가 10비트인 경우 화소값의 범위는 0~1023이 되고 중간값은 512가 될 수 있다.
상기 설명한 패딩 방식을 통해 현재 블록의 4면(왼쪽, 오른쪽,위쪽,아래쪽)에 전부 이용가능한 참조화소를 생성할 수 있다.
또는, 각 영역 내에서 패딩을 수행할 때, 다른 영역의 화소를 이용할 수도 있다. 일 예로, 제2 영역의 패딩을 수행하는 경우, 제1 영역에 존재하는 화소를 이용할 수 잇다. 반대로 제1 영역의 패딩을 수행하는 경우, 제2 영역에 존재하는 화소를 이용하는 것 또한 가능하다.
현재 블록의 4면에 참조 화소가 존재하는 경우, 방향성 모드에 따라 간소화된 참조 화소를 이용할 수 있다. 도 27을 참조하면, 방향성 모드가 어느 구역에 속하는지에 따라 왼쪽 참조 화소 라인, 위쪽 참조 화소 라인, 오른쪽 참조 화소 라인, 아래쪽 참조 화소 라인 중 하나의 참조 화소 라인만 사용할 수 있다. 도 27에서는 화면내 예측 모드의 번호를 0 내지 129로 표현하였으며, 0번과 1번은 각각 평면 모드와 DC 모드를 나타내며, 2번 내지 129번은 방향성 모드를 나타낸다.
도 28의 (a)~(f)는 화면내 예측 모드가 3 구역 내지 8 구역에 각각 속하는 경우, 하나의 참조 화소 라인을 사용하는 방법에 대한 예시이다.
도 28에 도시된 바와 같이, 참조 화소들이 1차원으로 재배열될 수 있다. 화소(2800)는, 방향성 모드와 평행으로 프로젝션된 위치의 화소를 복사하여 생성되거나, 프로젝션된 위치의 주변 정수 화소들을 보간하여 생성될 수 있다.
코딩 블록 레벨에서 화면 내 예측 모드가 결정되면, 코딩 블록 내 모든 예측 화소들은 코딩 블록 레벨에서 결정된 화면 내 예측 모드를 기반으로 생성될 수 있다. 즉, 코딩 블록 전체에 동일한 화면 내 예측 모드를 적용할 수 있다.
위의 예와 달리, 코딩 블록 내 소정 크기의 영역 별로 화면 내 예측을 수행할 수도 있다. 이를 위해, 코딩 블록 내 소정 크기의 영역 단위로 화면 내 예측 모드를 유도할 수 있다. 이하, 코딩 블록 내 소정 크기의 영역 별로 화면 내 예측 모드를 개별적으로 설정하는 방법에 대해 상세히 설명한다.
도 29는 본 개시의 일 실시예에 따른, 서브 블록 단위로 화면 내 예측 모드를 결정하는 예를 설명하기 위한 도면이다.
화면 내 예측 모드의 결정 단위인 서브 블록은 2x2, 4x4 또는 8x8 과 같이 정방 형태를 가질 수 있다. 또는, 2x8 또는 8x2와 같이 비정방 형태로 서브 블록을 정의하는 것도 가능하다.
또는, 코딩 블록을 수평 방향 또는 수직 방향으로만 분할하여 서브 블록들을 생성할 수도 있다. 코딩 블록이 수평 방향으로만 분할되는 경우, 서브 블록의 너비는 코딩 블록과 동일하나, 서브 블록의 높이는 코딩 블록보다 작은 값을 갖게 된다. 반면, 코딩 블록이 수직 방향으로만 분할되는 경우, 서브 블록의 높이는 코딩 블록과 동일하나, 서브 블록의 너비는 코딩 블록보다 작은 값을 갖게 된다.
화면 내 예측 모드의 결정 단위인 서브 블록의 크기 및/또는 형태는 부호화기 및 복호화기에서 기 정의된 값을 가질 수 있다.
또는, 코딩 블록의 크기, 주변 블록의 부호화 모드(예컨대, 주변 블록이 화면 간 예측으로 부호화되었는지 또는 화면 내 예측으로 부호화되었는지 여부) 또는 주변 블록의 화면 내 예측 모드 중 적어도 하나에 기초하여 서브 블록의 크기 및/또는 형태가 적응적으로 결정될 수 있다.
설명의 편의를 위해, 본 실시예에서는 화면 내 예측 모드의 결정 단위인 서브 블록의 크기가 4x4인 것으로 가정한다.
도 29에서는, 16x16 크기의 코딩 블록이 4x4 크기의 서브 블록들로 분할된 예가 도시되어 있다.
현재 부/복호화하고자 하는 코딩 블록('현재 블록') 주변의 이웃 블록들에 대해 참조 모드를 설정할 수 있다. 여기서, 이웃 블록은, 현재 블록의 상단 경계에 인접하는 블록들 또는 좌측 경계에 인접하는 블록들 중 적어도 하나를 포함할 수 있다.
참조 모드도 서브 블록과 동일한 크기 단위로 유도될 수 있다. 일 예로, 도 29의 예에서와 같이, 4x4 블록 단위로 현재 블록의 좌측 및/또는 상단 경계에 접하는 4x4 서브 블록들 각각에 대해 참조 모드를 유도할 수 있다.
현재 블록의 너비 및 높이를 각각 W 및 H라 가정할 경우, 도 29에서는, (0,0) 부터 (W-1,0) 까지의 상단 경계에 접하는 상단 이웃 블록들 및/또는 (0,0) 부터 (0,H-1) 까지의 좌측 경계에 접하는 좌측 이웃 블록들의 참조 모드가 이용 되는 것으로 예시되었다.
도시된 예와 달리, (0,0) 부터 (2W-1,0) 까지의 상단 경계에 접하는 상단 이웃 블록들 및 (0,0) 부터 (0,2H-1) 까지는 좌측 경계에 접하는 좌측 이웃 블록들의 참조 모드를 이용할 수도 있다.
현재 블록에 인접하는 블록을 부/복호화하는데 이용된 화면 내 예측 모드가 해당 서브 블록의 참조 모드로 설정될 수 있다. 만약, 현재 블록에 인접하는 블록이 화면 내 예측으로 부/복호화되지 않은 경우, 해당 블록에 인접하는 블록의 화면 내 예측 모드를 참조하여, 해당 블록의 참조 모드를 유도할 수 있다.
도 30 및 도 31은 현재 블록에 인접하는 이웃 블록들 각각의 참조 모드를 유도하는 방법을 예시한 도면이다.
도 30 및 도 31에서는, 좌측 이웃 블록들만이 도시되어 있으나, 상단 이웃 블록들의 참조 모드를 유도하는 것에도 본 실시예를 적용할 수 있다.
도 30 및 도 31에서, 이웃 블록들 위에 표기된 숫자는 이웃 블록을 부/복호화하는데 이용된 화면 내 예측 모드를 나타낸다. 반면, XN(N은 정수)가 표기된 것은, 해당 이웃 블록이 화면 내 예측으로 부/복호화되지 않았음을 의미한다. 이웃 블록이 화면 내 예측으로 부/복호화되지 않은 경우, 해당 이웃 블록은 비가용한 것으로 결정되고, 이웃 블록이 화면 내 예측으로 부/복호화된 경우, 해당 이웃 블록은 가용한 것으로 결정될 수 있다.
비가용한 이웃 블록이 존재하는 경우, 비가용한 이웃 블록의 화면 내 예측 모드를 인접 블록의 화면 내 예측 모드와 동일하게 설정할 수 있다.
일 예로, 이웃 블록들간의 스캔 순서가 기 정의된 경우, 상기 스캔 순서상 비가용한 이웃 블록보다 스캔 순번이 작은 블록들을 상기 비가용한 이웃 블록과 스캔 순번의 차이가 가장 작은 가용한 이웃 블록의 화면 내 예측 모드를 비가용한 이웃 블록의 화면 내 예측 모드로 설정할 수 있다.
일 예로, 좌측 이웃 블록들간의 스캔 순서가 하단에서 상단 방향으로 설정되어 있다면, 도 30의 비가용 이웃 블록의 화면 내 예측 모드는, 비가용 이웃 블록의 하단에 인접한 블록의 화면 내 예측 모드 23으로 설정될 수 있다.
반면, 좌측 이웃 블록들 간의 스캔 순서가 상단에서 하단 방향으로 설정되어 있다면, 도 30의 비가용 이웃 블록의 화면 내 예측 모드는 비가용 이웃 블록의 상단에 인접한 블록의 화면 내 예측 모드 20으로 설정될 수 있다.
스캔 순번 상 첫번째 블록, 예컨대, 좌측 이웃 블록들 중 최하단에 위치하는 이웃 블록 또는 최상단에 위치하는 이웃 블록이 비가용한 경우, 비가용 이웃 블록의 화면 내 예측 모드를 해당 이웃 블록의 하단 또는 상단에 인접하는 이웃 블록의 화면 내 예측 모드로 설정할 수 있다.
일 예로, 도 31에 도시된 예에서, 좌측 이웃 블록들 중 최상단 블록 X1이 비가용한 경우, 최상단 블록 X1의 상단에 인접하는 이웃 블록의 화면 내 예측 모드 17을, 최상단 블록 X1의 화면 내 예측 모드로 설정할 수 있다.
또는, 좌측 이웃 블록들 중 최하단 블록 X2가 비가용한 경우, 최하단 블록 X2의 하단에 인접하는 이웃 블록의 화면 내 예측 모드 20을 최하단 블록 X2의 화면 내 예측 모드로 설정할 수 있다.
다른 예로, 비가용 이웃 블록의 화면 내 예측 모드를, 비가용 이웃 블록의 양측에 인접 위치하는 블록들의 화면 내 예측 모드들의 평균값, 최소값 또는 최대값으로 설정할 수도 있다. 일 예로, 도 30의 비가용 이웃 블록 X0의 화면 내 예측 모드는, 비가용 이웃 블록의 상단에 인접한 블록의 화면 내 예측 모드 20 및 비가용 이웃 블록의 하단에 인접한 블록의 화면 내 예측 모드 23 간의 평균값, 최소값 또는 최대값으로 설정될 수 있다.
연속된 복수의 이웃 블록들이 이용 불가능한 경우, 연속된 복수의 이웃 블록들의 양측에 인접 위치하는 블록들의 화면 내 예측 모드들을 가중합하여 비가용한 복수의 이웃 블록들 각각의 화면 내 예측 모드를 유도할 수 있다.
일 예로, 도 31에 도시된 예에서, 이웃 블록 X1 및 이웃 블록 X2 사이의 블록들이 모두 비가용한 경우, 이웃 블록 X1의 상단에 인접하는 블록의 화면 내 예측 모드 17 및 이웃 블록 X2의 하단에 인접하는 블록의 화면 내 예측 모드 20을 가중합하여, 이웃 블록 X1 부터 이웃 블록 X2 까지의 좌측 서브 블록들 각각의 화면 내 예측 모드를 유도할 수 있다.
또는, 연속된 복수의 이웃 블록들이 이용 불가능한 경우, 스캔 순서에 따라 선택된 가용 이웃 블록의 화면 내 예측 모드들, 연속된 복수의 이웃 블록들 모두의 화면 내 예측 모드로 설정할 수도 있다.
나아가, 비방향성 화면 내 예측 모드, 예컨대, DC 모드 및/또는 플래너 모드는 참조 모드로 이용 불가능한 것으로 설정할 수도 있다. 즉, 이웃 블록의 화면 내 예측 모드가 비방향성 화면 내 예측 모드인 경우, 해당 이웃 블록은 비가용한 것으로 결정될 수 있다. 이 경우, 도 30 및 도 31을 통해 설명한 실시예에 따라, 비가용한 이웃 블록의 화면 내 예측 모드를 새롭게 유도할 수 있다.
비방향성 화면 내 예측 모드를 참조 모드로 설정한 뒤, 서브 블록들의 화면 내 예측 모드들을 유도하는 것 역시 가능하다.
현재 블록 주변의 참조 모드들에 기초하여, 현재 블록 내 서브 블록 단위로 화면 내 예측 모드를 유도할 수 있다. 구체적으로, 인접 블록의 참조 모드를 상기 인접 블록과 동일한 열 또는 동일한 행에 속하는 서브 블록들의 화면 내 예측 모드로 설정할 수 있다.
도 32 및 도 33은 참조 모드를 기초로 서브 블록들의 화면 내 예측 모드를 설정하는 예를 나타낸 것이다.
도 32는, 상단 이웃 블록의 참조 모드가, 상기 상단 이웃 블록과 동일한 열에 속하는 서브 블록들의 화면 내 예측 모드로 설정되는 예를 도시한 것이다. 이 경우, 같은 열에 속하는 서브 블록들의 화면 내 예측 모드는 동일한 값을 갖게 된다.
도 33은, 좌측 이웃 블록의 참조 모드가, 상기 좌측 이웃 블록과 동일한 행에 속하는 서브 블록들의 화면 내 예측 모드로 설정되는 예를 도시한 것이다. 이 경우, 같은 행에 속하는 서브 블록들의 화면 내 예측 모드는 동일한 값을 갖게 된다.
다른 예로, 서브 블록과 동일한 열에 속하는 상단 이웃 블록의 참조 모드 및 서브 블록과 동일한 행에 속하는 좌측 이웃 블록의 참조 모드를 가중합하여 서브 블록의 화면 내 예측 모드를 유도할 수 있다.
도 34 및 도 35는 참조 모드들을 가중합하여 서브 블록의 화면 내 예측 모드를 유도하는 예를 나타낸다.
도 34의 (a)에 도시된 예에서와 같이, 상단 이웃 블록의 참조 모드 및 좌측 이웃 블록의 참조 모드를 가중합하여 유도된 가중합된 모드를, 서브 블록의 화면 내 예측 모드로 설정할 수 있다. 상단 이웃 블록의 참조 모드 및 좌측 이웃 블록의 참조 모드에 동일한 가중치가 적용되는 것으로 가정할 경우, 두 참조 모드들 간의 평균값이 서브 블록의 화면 내 예측 모드로 설정될 수 있다. 일 예로, 상단 이웃 블록의 참조 모드가 50번이고, 좌측 이웃 블록의 참조 모드가 18번이라면, 두 참조 모드들의 평균인 34번이 서브 블록의 화면 내 예측 모드로 설정될 수 있다. 도 34의 (b)는 서브 블록들 각각에 대해 두 참조 모드들 간의 평균값이 가중합된 모드로 유도된 예를 도시한 것이다.
상단 이웃 블록의 참조 모드에 할당되는 가중치 및 좌측 이웃 블록의 참조 모드에 할당되는 가중치는, 서브 블록의 위치에 따라 적응적으로 결정될 수도 있다. 일 예로, 서브 블록과 좌측 이웃 블록 간의 거리가 x 이고, 서브 블록과 상단 이웃 블록 간의 거리가 y 인 경우, 좌측 이웃 블록에 적용되는 가중치는 y/(x+y)로 설정되고, 상단 이웃 블록의 참조 모드에 적용되는 가중치는 x/(x+y)로 설정될 수 있다. 즉, 서브 블록과 좌측 이웃 블록 사이의 거리 및 서브 블록과 상단 이웃 블록 사이의 거리를 비교하여, 서브 블록이 상단 이웃 블록보다 좌측 이웃 블록에 더 가까운 경우, 좌측 이웃 블록의 참조 모드에 더 큰 가중치를 할당하고, 서브 블록이 좌측 이웃 블록보다 상단 이웃 블록에 더 가까운 경우, 상단 이웃 블록의 참조 모드에 더 큰 가중치를 할당할 수 있다.
도 35는, 좌측 이웃 블록의 참조 모드에 적용되는 가중치와 상단 이웃 블록의 참조 모드에 적용되는 가중치가 동일한 경우의 가중합된 모드가 유도되는 예와(도 35의 (a)), 좌측 이웃 블록의 참조 모드에 적용되는 가중치가 상단 이웃 블록의 참조 모드에 적용되는 가중치보다 크게 설정된 경우에 있어서, 가중합된 모드가 유도된 예를(도 35의 (b))를 비교하여 도시한 것이다.
또는, 서브 블록 열 단위로 좌측 이웃 블록들에 적용되는 가중치를 결정하고, 서브 블록 행 단위로 상단 이웃 블록들에 적용되는 가중치를 결정할 수도 있다.
일 예로, 현재 블록 내 N개의 열이 존재하는 경우, 각 열의 좌측 이웃 블록의 참조 모드에 대한 가중치는 (N-n)/N으로 설정될 수 있다. 여기서, n은, 현재 열에 할당되는 인덱스를 나타낸다. 구체적으로, 현재 블록의 좌측 경계에 접하는 열에는 인덱스 0가 할당되고, 우측 열로 이동할 때마다 인덱스 값은 1씩 증가하게 된다.
일 예로, 현재 블록 내 M개의 열이 존재하는 경우, 각 행의 상단 이웃 블록의 참조 모드에 대한 가중치는 (M-m)/M으로 설정될 수 있다. 여기서, m은, 현재 행에 할당되는 인덱스를 나타낸다. 구체적으로, 현재 블록의 상단 경계에 접하는 행에는 인덱스 0가 할당되고, 하단 행으로 이동할 때마다 인덱스 값은 1씩 증가하게 된다.
또는, 서브 블록의 위치와 관계없이, 좌측 이웃 블록에 적용되는 가중치 및 상단 이웃 블록에 적용되는 가중치를 동일한 값으로 설정할 수도 있다.
서브 블록들 각각의 화면 내 예측 모드가 유도되면, 서브 블록들 각각의 화면 내 예측 모드에 기초하여, 서브 블록들 각각에 대해 화면 내 예측을 수행할 수 있다. 이때, 서브 블록들 각각의 화면 내 예측은, 현재 블록을 기준으로 유도된 참조 화소들을 기초로 수행될 수 있다.
서브 블록들 각각에 대해 화면 내 예측 모드가 유도된 경우, 서브 블록들 각각의 화면 내 예측 모드를 저장할 수 있다. 이 경우, 서브 블록들 중 적어도 하나 이상이 차후 부/복호화될 블록의 MPM 후보로 활용될 수 있다. 일 예로, 소정 코딩 블록의 상단에 위치하는 이웃 블록에 서브 블록 단위의 화면 내 예측 모드 유도 방법이 적용되었다면, 소정 코딩 블록의 상단에 위치하는 서브 블록들의 화면 내 예측 모드 중 적어도 하나 이상을 소정 코딩 블록의 MPM 후보로 활용할 수 있다.
서브 블록들 각각의 화면 내 예측 모드를 저장하는 대신, 현재 블록 내 특정 위치의 서브 블록을 대표 블록으로 지정하고, 대표 블록의 화면 내 예측 모드만을 저장할 수도 있다. 이 경우, 복수의 서브 블록들 중 대표 블록의 화면 내 예측 모드 만이, 차수 부/복호화될 블록의 MPM 후보로 이용될 수 있다.
현재 블록 내 기준 위치 화소를 포함하는 서브 블록을 대표 블록으로 설정할 수 있다. 여기서, 기준 위치 화소는, 중앙 위치 화소, 좌상단 위치의 화소, 좌하단 위치의 화소, 우상단 위치의 화소 또는 우하단 위치의 화소일 수 있다.
도 36은 현재 블록의 중앙 위치 화소를 포함하는 서브 블록이 대표 블록으로 지정된 예를 나타낸 것이다.
도 36에 도시된 예에서와 같이, 중앙 위치 화소를 포함하는 서브 블록이 대표 블록으로 지정된 경우, 해당 서브 블록의 화면 내 예측 모드가 현재 블록의 화면 내 예측 모드로서 저장될 수 있다.
다른 예로, 현재 블록에 서브 블록 단위로 화면 내 예측 모드를 유도하는 방법이 적용된 경우, 디폴트 모드를 현재 블록의 화면 내 예측 모드로 저장할 수도 있다. 여기서, 디폴트 모드는, DC 모드, 플래너 모드 또는 기 정의된 방향의 방향성 모드일 수 있다. 기 정의된 방향의 방향성 모드는, 수직 방향 모드, 수평 방향 모드 또는 대각 방향 모드 중 적어도 하나일 수 있다.
또는, 복수의 참조 모드들 중 하나를 대표 모드로 설정하고, 설정된 대표모드를 현재 블록의 화면 내 예측 모드로 저장할 수 있다.
일 예로, 현재 블록의 상단 서브 블록들의 참조 모드들 중 하나를 대표 모드로 설정할 수 있다. 구체적으로, 도 22 및 도 23에 도시된 A 위치의 화소를 포함하는 서브 블록의 참조 모드를 대표 모드로 설정할 수 있다.
일 예로, 현재 블록의 좌측 서브 블록들의 참조 모드들 중 하나를 대표 모드로 설정할 수 있다. 구체적으로, 도 22 및 도 23에 도시된 L 위치의 화소를 포함하는 서브 블록의 참조 모드를 대표 모드로 설정할 수 있다.
상술한 예에서는, 현재 블록 주변의 참조 모드들을 이용하여, 서브 블록 별 단일의 화면 내 예측 모드가 유도되는 것으로 예시되었다.
상술한 바와 같이, 단일의 예측 모드를 유도하는 대신, 복수의 참조 모드들을 기초로 복수의 화면 내 예측을 수행한 뒤, 복수의 화면 내 예측의 결과로 생성된 복수의 예측 블록들을 이용하여, 서브 블록에 대한 예측 블록을 획득할 수도 있다.
도 37은 복수의 화면 내 예측을 수행하여, 서브 블록의 예측 블록을 생성하는 예를 나타낸 도면이다.
서브 블록과 동일한 열에 속하는 상단 이웃 블록의 참조 모드를 기초로 화면 내 예측을 수행하여, 제1 예측 블록(왼쪽 모드를 이용한 서브 예측 블록)을 생성할 수 있다. 또한, 서브 블록과 동일한 행에 속하는 좌측 이웃 블록의 참조 모드를 기초로 화면 내 예측을 수행하여, 제2 예측 블록(위쪽 모드를 이용한 서브 예측 블록)을 생성할 수 있다.
이후, 제1 예측 블록 및 제2 예측 블록의 가중합 연산에 기초하여, 서브 블록의 예측 블록(가중합된 서브 예측 블록)을 획득할 수 있다.
이때, 제1 예측 블록 및 제2 예측 블록에 적용되는 가중치를 동일한 값으로 설정할 수 있다.
또는, 앞서, 가중합 모드를 유도하는 실시예에서 설명한 것과 같은 방법으로, 제1 예측 블록 및 제2 예측 블록에 적용되는 가중치를 설정할 수도 있다. 일 예로, 서브 블록과 상단 이웃 블록 사이의 거리와 서브 블록과 좌측 이웃 블록 사이의 거리를 비교하여, 제1 예측 블록 및 제2 예측 블록에 적용되는 가중치를 결정할 수 있다. 일 예로, 서브 블록이 상단 이웃 블록보다 좌측 이웃 블록에 가까운 경우, 좌측 이웃 블록의 참조 모드를 기초로 유도된 제2 예측 블록에 더 큰 가중치를 부여할 수 있다. 반대로, 서브 블록이 좌측 이웃 블록보다 상단 이웃 블록에 가까운 경우, 상단 이웃 블록의 참조 모드를 기초로 유도된 제1 예측 블록에 더 큰 가중치를 부여할 수 있다.
또는, 서브 블록 열 단위로 좌측 이웃 블록의 참조 모드를 기초로 유도되는 제2 예측 블록에 적용되는 가중치를 결정하고, 서브 블록 행 단위로 상단 이웃 블록의 참조 모드를 기초로 유도되는 제1 예측 블록에 적용되는 가중치를 결정할 수 있다.
다른 예로, 제1 예측 블록 및 제2 예측 블록 각각을 유도하기 위해 이용된 화면 내 예측 모드의 종류에 따라, 가중치를 적응적으로 결정할 수도 있다. 일 예로, 비방향성 화면 내 예측 모드로 유도된 예측 블록에 할당되는 가중치가 방향성 화면 내 예측 모드로 유도된 예측 블록에 할당되는 가중치보다 더 큰 값을 가질 수 있다.
제1 예측 블록 및 제2 예측 블록을 가중합하여 서브 블록의 예측 블록을 유도하는 경우에도, 가중합 모드를 유도한 경우와 동일한 방식으로 화면 내 예측 모드를 저장할 수 있다.
일 예로, 서브 블록들 각각에 대해 가중합 모드를 유도한 뒤, 유도된 가중합 모드를 해당 서브 블록의 화면 내 예측 모드로 저장할 수 있다.
또는, 복수 서브 블록들 중 대표 블록의 가중합 모드를, 현재 블록의 화면 내 예측 모드로 저장할 수 있다.
또는, 디폴트 모드를, 현재 블록의 화면 내 예측 모드로 저장할 수 있다.
또는, 현재 블록에 인접하는 이웃 블록들 중 대표 블록의 참조 모드를 현재 블록의 화면 내 예측 모드로 저장할 수 있다.
상술한 실시예에서는, 서브 블록들 각각이, 서브 블록과 동일한 행 및/또는 열에 속하는 이웃 블록의 참조 모드를 참조하는 것으로 설명하였다. 구체적으로, 서브 블록과 동일한 행 및/또는 열에 속하는 적어도 하나의 이웃 블록의 참조 모드를 참조하여, 서브 블록의 화면 내 예측 모드가 유도되거나, 복수 이웃 블록들의 참조 모드를 기초로 서브 블록에 대한 복수의 예측 블록이 생성되는 것으로 예시되었다.
설명한 예와 달리, 코딩 블록 레벨에서 화면 내 예측 모드를 결정한 뒤, 상기 화면 내 예측 모드를 기초로, 각 서브 블록이 참조해야 하는 적어도 하나의 이웃 블록의 위치를 결정할 수도 있다.
일 예로, 코딩 블록 레벨에서 결정된 화면 내 예측 모드가 수직 방향 모드인 경우, 서브 블록과 동일한 열에 속하는 상단 이웃 블록의 참조 모드를 서브 블록의 화면 내 예측 모드로 설정할 수 있다.
일 예로, 코딩 블록 레벨에서 결정된 화면 내 예측 모드가 좌상단 대각 방향인 경우, 서브 블록의 좌상단 대각 방향에 위치하는 이웃 블록의 참조 모드를 서브 블록의 화면 내 예측 모드로 설정할 수 있다.
서브 블록 단위로 화면 내 예측을 수행하는 방법이 적용되는지 여부를 나타내는 정보가 비트스트림을 통해 명시적으로 시그날링될 수 있다. 일 예로, 상기 정보는 1비트의 플래그일 수 있다. 상기 플래그가 서브 블록 단위로 화면 내 예측을 수행하는 방법이 적용됨을 나타내는 경우, 현재 블록 주변 참조 모드들에 기초하여, 서브 블록들 각각에 대해 개별적으로 화면 내 예측이 수행될 수 있다. 반면, 상기 플래그가 서브 블록 단위로 화면 내 예측을 수행하는 방법이 적용되지 않음을 나타내는 경우, 현재 블록에 단일의 화면 내 예측 모드를 적용하여, 화면 내 예측이 수행될 수 있다.
상술한, 서브 블록 단위로 화면 내 예측을 수행하는 방법이 적용된 경우, 서브 블록들 각각을 변환 유닛으로 설정할 것인지 여부가 추가 결정될 수 있다. 여기서, 변환 유닛은, 양자화 또는 변환 중 적어도 하나의 수행 단위를 나타낸다.
도 38은 서브 블록이 변환 유닛으로 설정되는지 여부에 따른 부/복호화 양상을 나타낸 도면이다.
서브 블록들 각각을 변환 유닛으로 설정하는 것으로 결정된 경우, 서브 블록 단위로 변환/역변환이 수행될 수 있다. 즉, 화면 내 예측 단위와 변환/역변환의 수행 단위가 동일하게 설정될 수 있다.
서브 블록이 변환 유닛으로 설정되지 않는 경우, 서브 블록보다 큰 크기의 블록 단위로 변환 유닛을 설정할 수 있다. 도 39에 도시된 예에서는, 16x16 크기의 코딩 블록이 변환 유닛으로 설정되는 것으로 예시되었다. 도시된 예와 달리, 16x8, 8x16 또는 8x8 크기 단위로 변환 유닛을 설정할 수도 있다. 이 경우, 화면 내 예측 단위와 변환 단위가 상이하게 설정된다.
서브 블록 단위로 화면 내 예측을 수행하는 방법이 적용된 경우, 변환 유닛의 크기를 결정하기 위한 정보가 추가로 부/복호화될 수 있다. 일 예로, 상기 정보는, 서브 블록들 각각이 변환 유닛으로 이용되는지 여부를 나타내는 1비트 플래그일 수 있다. 상기 플래그가 서브 블록이 변환 유닛으로 이용되지 않음을 나타내는 경우, 변환 유닛의 크기를 나타내는 정보가 추가로 부/복호화될 수 있다.
또는, 상기 정보는, 변환 유닛의 크기를 나타내는 정보일 수 있다. 상기 정보는, 4x4, 8x8 또는 블록 전체 중 적어도 하나를 가리킬 수 있다.
다른 예로, 서브 블록 단위로 화면 내 예측을 수행하는 방법이 적용된 경우에는 디폴트로 서브 블록을 변환 유닛으로 설정할 수 있다. 즉, 서브 블록 단위로 화면 내 예측을 수행하는 방법이 적용된 경우에는 항상 서브 블록 단위로 변환/역변환이 수행될 수 잇다.
서브 블록들 각각이 변환 유닛으로 설정되는 경우, 서브 블록들 각각의 화면 내 예측 모드에 기초하여, 서브 블록의 변환 커널 또는 서브 블록의 변환이 스킵되는지 여부 중 적어도 하나가 결정될 수 있다. 여기서, 변환 커널은, DCT 기반의 커널(예컨대, DCT2, DCT8 등) 및/또는 DST 기반의 커널(예컨대, DST7) 중 적어도 하나를 포함할 수 있다.
도 39는 서브 블록 별로 변환 스킵 여부 및 변환 커널이 결정된 예를 나타낸 것이다.
다른 예로, 서브 블록 단위로 화면 내 예측을 수행하는 방법이 적용된 경우, 현재 블록 내 모든 영역에서 디폴트 변환 커널을 사용하도록 설정될 수도 있다. 여기서, 디폴트 변환 커널은, DCT2, DCT8 또는 DST7 중 하나일 수 있다.
복호화 과정 또는 부호화 과정을 중심으로 설명된 실시예들을, 부호화 과정 또는 복호화 과정에 적용하는 것은, 본 개시의 범주에 포함되는 것이다. 소정의 순서로 설명된 실시예들을, 설명된 것과 상이한 순서로 변경하는 것 역시, 본 개시의 범주에 포함되는 것이다.
상술한 개시는 일련의 단계 또는 순서도를 기초로 설명되고 있으나, 이는 발명의 시계열적 순서를 한정한 것은 아니며, 필요에 따라 동시에 수행되거나 다른 순서로 수행될 수 있다. 또한, 상술한 개시에서 블록도를 구성하는 구성요소(예를 들어, 유닛, 모듈 등) 각각은 하드웨어 장치 또는 소프트웨어로 구현될 수도 있고, 복수의 구성요소가 결합하여 하나의 하드웨어 장치 또는 소프트웨어로 구현될 수도 있다. 상술한 개시는 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 하드웨어 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 개시는 비디오 신호를 인코딩/디코딩할 수 있는 컴퓨팅 또는 전자 장치 에 적용될 수 있다.

Claims (15)

  1. 현재 블록 내 이웃 블록들 각각의 참조 모드를 유도하는 단계; 및
    참조 모드들 중 적어도 하나에 기초하여, 상기 현재 블록 내 상기 현재 블록보다 작은 크기를 갖는 서브 블록에 대한 화면 내 예측을 수행하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1 항에 있어서,
    상기 서브 블록의 상기 화면 내 예측은, 상기 적어도 하나의 참조 모드를 기초로 유도되는 화면 내 예측 모드를 기초로 수행되는 것을 특징으로 하는, 영상 복호화 방법.
  3. 제2 항에 있어서,
    상기 화면 내 예측 모드는, 상기 참조 모드들 중에서 선택된 제1 참조 모드 및 제2 참조 모드 사이의 가중합 연산에 의해 유도되는 것을 특징으로 하는, 영상 복호화 방법.
  4. 제3 항에 있어서,
    상기 제1 참조 모드는, 상기 서브 블록과 동일한 열에 속하는 상단 이웃 블록의 화면 내 예측 모드이고,
    상기 제2 참조 모드는, 상기 서브 블록과 동일한 행에 속하는 좌측 이웃 블록의 화면 내 예측 모드인 것을 특징으로 하는, 영상 복호화 방법.
  5. 제4 항에 있어서,
    상기 가중합 연산시, 상기 제1 참조 모드에 적용되는 제1 가중치 및 상기 제2 참조 모드에 적용되는 제2 가중치는, 상기 서브 블록과 상기 상단 이웃 블록과의 거리 및 상기 서브 블록과 상기 좌측 이웃 블록과의 거리를 기초로 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  6. 제1 항에 있어서,
    상기 참조 모드는, 이웃 블록의 화면 내 예측 모드를 기초로 유도되고,
    상기 이웃 블록이 화면 내 예측으로 부호화되지 않은 경우, 상기 이웃 블록에 인접하는 적어도 하나의 블록의 화면 내 예측 모드를 기초로 상기 참조 모드가 유도되는 것을 특징으로 하는, 영상 복호화 방법.
  7. 제6 항에 있어서,
    상기 이웃 블록이 화면 내 예측으로 부호화되지 않은 경우, 상기 이웃 블록의 양측에 위치하는 블록들의 화면 내 예측 모드들의 평균값, 최소값 또는 최대값이 상기 참조 모드로 설정되는 것을 특징으로 하는, 영상 복호화 방법.
  8. 제1 항에 있어서,
    상기 참조 모드들 중에서 선택된 제1 참조 모드에 기초한 제1 화면 내 예측을 통해 생성된 제1 예측 블록 및 상기 참조 모드들 중에서 선택된 제2 참조 모드에 기초한 제2 화면 내 예측을 통해 생성된 제2 예측 블록을 기초로, 상기 서브 블록에 대한 제3 예측 블록이 생성되는 것을 특징으로 하는, 영상 복호화 방법.
  9. 제8 항에 있어서,
    상기 제3 예측 블록은, 상기 제1 예측 블록 및 상기 제2 예측 블록 사이의 가중합 연산을 기초로 획득되는 것을 특징으로 하는, 영상 복호화 방법.
  10. 제9 항에 있어서,
    상기 가중합 연산시, 상기 제1 예측 블록에 적용되는 제1 가중치 및 상기 제2 예측 블록에 적용되는 제2 가중치는, 상기 서브 블록과 상기 상단 이웃 블록과의 거리 및 상기 서브 블록과 상기 좌측 이웃 블록과의 거리를 기초로 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  11. 제1 항에 있어서,
    상기 현재 블록 보다 작은 크기를 갖는 상기 서브 블록에 대해 화면 내 예측이 수행된 경우, 상기 서브 블록이 역변환의 수행 단위로 설정되는 것을 특징으로 하는, 영상 복호화 방법.
  12. 제11 항에 있어서,
    상기 역변환은, 상기 서브 블록의 화면 내 예측 모드를 기초로 결정되는 변환 커널에 기초하여 수행되는 것을 특징으로 하는, 영상 복호화 방법.
  13. 제1 항에 있어서,
    상기 현재 블록 보다 작은 크기를 갖는 상기 서브 블록에 대해 화면 내 예측이 수행된 경우, 상기 서브 블록을 역변환의 수행 단위로 설정할 것인지 여부가 선택적으로 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  14. 현재 블록 내 이웃 블록들 각각의 참조 모드를 유도하는 단계; 및
    참조 모드들 중 적어도 하나에 기초하여, 상기 현재 블록 내 상기 현재 블록보다 작은 크기를 갖는 서브 블록에 대한 화면 내 예측을 수행하는 단계를 포함하는, 영상 부호화 방법.
  15. 현재 블록 내 이웃 블록들 각각의 참조 모드를 유도하는 단계; 및
    참조 모드들 중 적어도 하나에 기초하여, 상기 현재 블록 내 상기 현재 블록보다 작은 크기를 갖는 서브 블록에 대한 화면 내 예측을 수행하는 단계를 포함하는, 영상 부호화 방법에 의해 생성된 비트스트림을 저장하는, 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2022/009245 2021-06-29 2022-06-28 서브 블록 단위의 화면 내 예측에 기반한 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체 WO2023277538A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202280052348.8A CN117813821A (zh) 2021-06-29 2022-06-28 基于以子块为单元的帧内预测的视频信号编码/解码方法以及用于存储比特流的记录介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0085115 2021-06-29
KR20210085115 2021-06-29

Publications (1)

Publication Number Publication Date
WO2023277538A1 true WO2023277538A1 (ko) 2023-01-05

Family

ID=84690478

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/009245 WO2023277538A1 (ko) 2021-06-29 2022-06-28 서브 블록 단위의 화면 내 예측에 기반한 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체

Country Status (3)

Country Link
KR (1) KR20230002095A (ko)
CN (1) CN117813821A (ko)
WO (1) WO2023277538A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024210624A1 (ko) * 2023-04-06 2024-10-10 현대자동차주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180005121A (ko) * 2016-07-05 2018-01-15 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR20180037575A (ko) * 2016-10-04 2018-04-12 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018066863A1 (ko) * 2016-10-04 2018-04-12 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20180041833A (ko) * 2016-10-17 2018-04-25 디지털인사이트 주식회사 화면 내 예측에 대한 참조 모드 리스트를 사용하는 비디오 코딩 방법 및 장치
WO2020251330A1 (ko) * 2019-06-13 2020-12-17 엘지전자 주식회사 단순화된 mpm 리스트 생성 방법을 활용하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180005121A (ko) * 2016-07-05 2018-01-15 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR20180037575A (ko) * 2016-10-04 2018-04-12 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018066863A1 (ko) * 2016-10-04 2018-04-12 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20180041833A (ko) * 2016-10-17 2018-04-25 디지털인사이트 주식회사 화면 내 예측에 대한 참조 모드 리스트를 사용하는 비디오 코딩 방법 및 장치
WO2020251330A1 (ko) * 2019-06-13 2020-12-17 엘지전자 주식회사 단순화된 mpm 리스트 생성 방법을 활용하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Also Published As

Publication number Publication date
KR20230002095A (ko) 2023-01-05
CN117813821A (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
WO2018056703A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018106047A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018088805A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018212577A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017222325A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018008906A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018097626A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018097691A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017176030A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017222326A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019164031A1 (ko) 영상 코딩 시스템에서 블록 분할 구조에 따른 영상 디코딩 방법 및 장치
WO2017043949A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018062788A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019225993A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018212579A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019190201A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018066958A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019050292A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019235891A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020096428A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2018056701A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020096427A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2018044089A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018093184A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019050291A1 (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: 22833594

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280052348.8

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22833594

Country of ref document: EP

Kind code of ref document: A1