WO2023277486A1 - 화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 - Google Patents
화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 Download PDFInfo
- Publication number
- WO2023277486A1 WO2023277486A1 PCT/KR2022/009137 KR2022009137W WO2023277486A1 WO 2023277486 A1 WO2023277486 A1 WO 2023277486A1 KR 2022009137 W KR2022009137 W KR 2022009137W WO 2023277486 A1 WO2023277486 A1 WO 2023277486A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- prediction
- sub
- intra
- current block
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 230
- 238000000638 solvent extraction Methods 0.000 claims description 54
- 238000005070 sampling Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 17
- 230000009466 transformation Effects 0.000 description 17
- 238000013139 quantization Methods 0.000 description 14
- 238000001914 filtration Methods 0.000 description 13
- 239000013598 vector Substances 0.000 description 11
- 230000008707 rearrangement Effects 0.000 description 7
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 108091026890 Coding region Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
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.
- the present disclosure seeks to provide a method and apparatus for performing improved intra-prediction.
- An image decoding method determines a current block through block division based on a tree structure, subsamples the current block, configures one or more subblocks from the current block, and in a predetermined scan order. Accordingly, a subblock belonging to the current block can be decoded.
- the block partitioning based on the tree structure may include at least one of penta-tree partitioning and quad-tree partitioning.
- the quad tree splitting divides a coding block into four coding blocks in either a vertical direction or a horizontal direction, and the quad tree splitting performs a predetermined split ratio. It may be performed by selectively using any one of a plurality of division types having
- the current block may be divided into sub-region units having a size of NxM, and the sub-block may be composed of pixels at the same location extracted from each sub-region unit.
- the subsampling may be performed only in one of a horizontal direction and a vertical direction.
- the size of the unit of the sub-region is adaptively determined based on a coding parameter for the current block, and the coding parameter includes a slice type, a block size, an intra prediction mode, It may include at least one of the directionality of the intra-prediction mode, component type, transform type, whether to skip transform, or scan order.
- the decoding of the sub-block may include deriving a reference pixel for predicting the sub-block, deriving an intra prediction mode for predicting the sub-block, or At least one of performing intra-prediction of the sub-block may be included.
- the reference pixel may include at least one of a pixel adjacent to the current block or a pixel of a pre-reconstructed subblock in the current block.
- the intra prediction mode is derived from an MPM list of the current block, the MPM list includes a plurality of MPM candidates, and at least one of the plurality of MPM candidates is It may be derived using at least one of a left center block, an upper center block, a right block, and a lower block of the current block.
- the intra-prediction of the sub-block may be performed using at least one of an intra-prediction mode-based intra-prediction method and a linear model-based intra-prediction method.
- An image encoding method determines a current block through block division based on a tree structure, constructs one or more subblocks from the current block by subsampling the current block, and in a predetermined scan order. Accordingly, a step of encoding a sub-block belonging to the current block may be included.
- the block partitioning based on the tree structure may include at least one of penta-tree partitioning and quad-tree partitioning.
- the quad tree splitting divides a coding block into four coding blocks in any one of a vertical direction and a horizontal direction, and the quad tree splitting performs a predetermined split ratio. It may be performed by selectively using any one of a plurality of division types having
- the current block may be divided into sub-region units having a size of NxM, and the sub-block may include pixels at the same location extracted from each sub-region unit.
- the subsampling may be performed only in one of a horizontal direction and a vertical direction.
- the size of the sub-region unit is adaptively determined based on an encoding parameter related to the current block, and the encoding parameter includes a slice type, a block size, an intra prediction mode, It may include at least one of the directionality of the intra-prediction mode, component type, transform type, whether to skip transform, or scan order.
- the encoding of the sub-block may include deriving a reference pixel for prediction of the sub-block, determining an intra prediction mode for prediction of the sub-block, or At least one of performing intra-prediction of the sub-block may be included.
- the reference pixel may include at least one of a pixel adjacent to the current block or a pixel of a pre-reconstructed subblock in the current block.
- the intra prediction mode is determined from an MPM list of the current block, the MPM list includes a plurality of MPM candidates, and at least one of the plurality of MPM candidates is It may be derived using at least one of a left center block, an upper center block, a right block, and a lower block of the current block.
- intra-prediction of the sub-block may be performed using at least one of an intra-prediction mode-based intra-prediction method and a linear model-based intra-prediction method.
- a computer-readable recording medium may store a bitstream generated by the above-described image encoding method or decoded by the image decoding method.
- a computing device may store programs (instructions) for transmitting a bitstream generated by the above-described image encoding 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 improved intra-prediction.
- 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 a sub-block-based intra-prediction method according to the present disclosure.
- FIG. 19 illustrates a method of constructing a plurality of sub-blocks by sub-sampling a current block as an embodiment to which the present disclosure is applied.
- 20 to 25 illustrate a method of deriving a reference pixel for prediction of a sub-block as an embodiment to which the present disclosure is applied.
- 26 and 27 show pre-defined intra prediction modes available for a current block as an embodiment to which the present disclosure is applied.
- 30 to 34 illustrate prediction pixel generation methods for each intra prediction mode as an embodiment to which the present disclosure is applied.
- 35 illustrates an intra prediction method based on a linear model as an embodiment to which the present disclosure is applied.
- An image decoding method determines a current block through block division based on a tree structure, subsamples the current block, configures one or more subblocks from the current block, and in a predetermined scan order. Accordingly, a subblock belonging to the current block can be decoded.
- the block partitioning based on the tree structure may include at least one of penta-tree partitioning and quad-tree partitioning.
- the quad tree splitting divides a coding block into four coding blocks in either a vertical direction or a horizontal direction, and the quad tree splitting performs a predetermined split ratio. It may be performed by selectively using any one of a plurality of division types having
- the current block may be divided into sub-region units having a size of NxM, and the sub-block may be composed of pixels at the same location extracted from each sub-region unit.
- the subsampling may be performed only in one of a horizontal direction and a vertical direction.
- the size of the unit of the sub-region is adaptively determined based on a coding parameter for the current block, and the coding parameter includes a slice type, a block size, an intra prediction mode, It may include at least one of the directionality of the intra-prediction mode, component type, transform type, whether to skip transform, or scan order.
- the decoding of the sub-block may include deriving a reference pixel for predicting the sub-block, deriving an intra prediction mode for predicting the sub-block, or At least one of performing intra-prediction of the sub-block may be included.
- the reference pixel may include at least one of a pixel adjacent to the current block or a pixel of a pre-reconstructed subblock in the current block.
- the intra prediction mode is derived from an MPM list of the current block, the MPM list includes a plurality of MPM candidates, and at least one of the plurality of MPM candidates is It may be derived using at least one of a left center block, an upper center block, a right block, and a lower block of the current block.
- the intra-prediction of the sub-block may be performed using at least one of an intra-prediction mode-based intra-prediction method and a linear model-based intra-prediction method.
- An image encoding method determines a current block through block division based on a tree structure, constructs one or more subblocks from the current block by subsampling the current block, and in a predetermined scan order. Accordingly, a step of encoding a sub-block belonging to the current block may be included.
- the block partitioning based on the tree structure may include at least one of penta-tree partitioning and quad-tree partitioning.
- the quad tree splitting divides a coding block into four coding blocks in any one of a vertical direction and a horizontal direction, and the quad tree splitting performs a predetermined split ratio. It may be performed by selectively using any one of a plurality of division types having
- the current block may be divided into sub-region units having a size of NxM, and the sub-block may include pixels at the same location extracted from each sub-region unit.
- the subsampling may be performed only in one of a horizontal direction and a vertical direction.
- the size of the sub-region unit is adaptively determined based on an encoding parameter related to the current block, and the encoding parameter includes a slice type, a block size, an intra prediction mode, It may include at least one of the directionality of the intra-prediction mode, component type, transform type, whether to skip transform, or scan order.
- the encoding of the sub-block may include deriving a reference pixel for prediction of the sub-block, determining an intra prediction mode for prediction of the sub-block, or At least one of performing intra-prediction of the sub-block may be included.
- the reference pixel may include at least one of a pixel adjacent to the current block or a pixel of a pre-reconstructed subblock in the current block.
- the intra prediction mode is determined from an MPM list of the current block, the MPM list includes a plurality of MPM candidates, and at least one of the plurality of MPM candidates is It may be derived using at least one of a left center block, an upper center block, a right block, and a lower block of the current block.
- intra-prediction of the sub-block may be performed using at least one of an intra-prediction mode-based intra-prediction method and a linear model-based intra-prediction method.
- a computer-readable recording medium may store a bitstream generated by the above-described image encoding method or decoded by the image decoding method.
- a computing device may store programs (instructions) for transmitting a bitstream generated by the above-described image encoding method.
- 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 divider 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 the 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 on a pixel-by-pixel basis.
- 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 apparatus. 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 interpolator, 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 apparatus.
- 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 allowed.
- 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 method.
- 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.
- a block may be encoded/decoded 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 using pixels adjacent to the original block or pixels belonging to a line separated by a certain distance (D) from the original block as reference pixels.
- D certain distance
- one or more sub-blocks may be formed from the current block (S1800).
- the current block may be obtained by dividing a coding block based on at least one of the above-described division methods.
- a subblock according to the present disclosure may be generated by subsampling a current block.
- the current block may be divided into N ⁇ M-sized sub-region units, pixels at the same location may be extracted from each sub-region unit, and the extracted pixels may be grouped to configure one sub-block.
- (NxM) sub-blocks can be configured from the current block.
- FIG. 19 illustrates a method of constructing a plurality of sub-blocks by sub-sampling a current block as an embodiment to which the present disclosure is applied.
- the present disclosure assumes that a 2x2 size sub-region unit is used.
- Four sub-blocks having a size of (W/2)x(H/2) may be generated by performing location-based subsampling on a current block having a size of WxH.
- the location (or coordinates) of a pixel belonging to the current block may be used.
- Blk a variable representing the current block
- Equation 2 four sub-blocks generated through sub-sampling can be expressed as in Equation 2 below.
- N and M mean the width and height of the sub-region unit, respectively.
- N and M may be integers of 1, 2, 4, 8, 16, 32, or more. However, N is less than or equal to the width of the current block. Likewise, M is less than or equal to the height of the current block. N and M may be the same as or different from each other. That is, the sub-region unit may be square or non-square.
- subsampling may be performed in a horizontal direction and a vertical direction. This corresponds to the case where both N and M are set to integers greater than 1. Alternatively, subsampling may be performed only in the horizontal direction, which corresponds to the case where N is greater than 1 and M is 1. Alternatively, subsampling may be performed only in the vertical direction, which corresponds to a case where N is 1 and M is greater than 1.
- Subsampling may be performed by selectively using any one of a plurality of direction candidates pre-defined in the encoding/decoding device.
- the plurality of direction candidates include a first candidate representing subsampling in the vertical and horizontal directions, a second candidate representing subsampling in the vertical direction, a third candidate representing subsampling in the horizontal direction, or no subsampling being performed. It may include at least one of the fourth candidates indicating no.
- the selection is performed based on index information specifying any one of a plurality of direction candidates, and the index information may be encoded by an encoding device and signaled to a decoding device. Alternatively, the selection may be performed based on a predetermined encoding parameter related to the current block.
- the encoding parameter may include at least one of slice type, block size/shape, intra prediction mode, directionality (angle) of intra prediction mode, component type, transform type, whether to skip transform, or scan order.
- the number of direction candidates available for the current block may be differently determined according to the aforementioned coding parameter.
- the subsampling rate in the horizontal direction and the subsampling rate in the vertical direction may be set differently. This corresponds to a case where N and M are set to be different from each other.
- the values of N and M may be fixed values pre-defined in the encoding/decoding device or may be adaptively determined based on the above-described encoding parameters.
- N and M are set to the width and height of the current block, respectively, and the current block is generated through the second division method among the above-mentioned division methods.
- N and M may be set to any one of 0, 2, 4, 8, 16, 32, or 64, respectively.
- N and M may be set to values greater than 64.
- N and M may be set to any one of 0, 2, 4, or 8, respectively, and the current block is generated using the above-mentioned partitioning method.
- N and M may be set to any one of 8, 16, or 32, respectively.
- N and M are set to the width (W) and height (H) of the current block, respectively, and the size of the current block is smaller than the first threshold size.
- N and M may be set to any one of 0, 2, 4, 8, 16, 32, or 64, respectively.
- N and M are each set to one of 0, 2, 4, or 8, and the size of the current block is larger than the first threshold. In this case, N and M may be set to any one of 8, 16 or 32, respectively.
- N and M are each set to one of 0, 2, 4, 8, 16, 32, or 64
- N is Any one of W/2, W/4, W/8, or W/16
- M is set to any one of H/2, H/4, H/8, or H/16, respectively.
- N and M are respectively set to the width and height of the current block
- N and M are respectively set. It can be set to any one of 0, 2, 4, 8, 16, 32, or 64.
- N and M may be set to any one of 0, 2, 4, 8, 16, 32, or 64, respectively.
- N and M are set to the width (W) and height (H) of the current block, respectively, and the intra prediction mode of the current block
- N and M may be set to any one of 0, 2, 4, 8, 16, 32, or 64, respectively.
- N and M are set to any one of 0, 2, 4, or 8, respectively, and the angle of the intra prediction mode of the current block
- N and M may be set to any one of 8, 16, and 32 values, respectively.
- the number of subblocks smaller than (N ⁇ M) may be configured by selectively extracting only pixels at some pre-defined positions from each subregion unit.
- the partial location may include at least one of an upper left pixel location, an upper right pixel location, a lower left pixel location, a lower right pixel location, a center pixel location, or at least one pixel location adjacent to the center pixel location within the sub-area unit. there is.
- a subblock according to the present disclosure is not limited to one generated through subsampling, and may be generated by dividing a current block based on one or more division lines in some cases.
- the division lines may not cross each other, and at least one division line may cross another division line.
- sub-blocks may be encoded/decoded according to a predetermined scan order (S1810).
- a fixed scan order pre-defined in the encoding/decoding device may be used.
- any one of a plurality of scan order candidates pre-defined in the encoding/decoding device may be selectively used.
- the plurality of scan order candidates may include at least one of raster scan, zigzag scan, horizontal scan, vertical scan, and diagonal scan.
- the plurality of scan order candidates may further include at least one reverse scan order among the above-described scan order candidates. The selection is performed based on index information specifying one of a plurality of scan order candidates, and the index information may be encoded by an encoding device and signaled to a decoding device.
- the selection may be performed based on a predetermined encoding parameter for the current block, and the encoding parameter is the same as described above, or the number of scan order candidates available for the current block is different according to the above-described encoding parameter. may be determined.
- Sub_Blk_1[x][y] having pixel positions of (0,0), (2,0), (0,2), and (2,2) is coded
- Sub_Blk_2, Sub_Blk_3, and Sub_Blk_4 are coded in this order.
- the scan order may be determined based on the coordinates of the upper-left pixel of each sub-block. For example, when raster scan is followed, encoding/decoding may be performed in the order of subblocks including (0, 0) ⁇ (1, 0) ⁇ (0, 1) ⁇ (1, 1).
- the process of encoding/decoding a sub-block may include at least one of 1) deriving a reference pixel for prediction of the sub-block, 2) deriving an intra prediction mode, or 3) performing intra prediction.
- 1) deriving a reference pixel for prediction of the sub-block may include at least one of 1) deriving a reference pixel for prediction of the sub-block, 2) deriving an intra prediction mode, or 3) performing intra prediction.
- Each sub-block may be encoded/decoded using a reference pixel.
- a method of deriving a reference pixel for prediction of each sub-block will be described with reference to FIGS. 20 to 25 .
- FIG. 20 illustrates a method of allocating a reference pixel to each sub-block as an embodiment to which the present disclosure is applied.
- the reference pixels of the sub-block may include at least one of pixels adjacent to the current block BLK or pixels of a pre-reconstructed sub-block within the current block.
- Pixels adjacent to the current block BLK may be used as reference pixels.
- pixels (u1, u3, l1, l3) adjacent to the upper and left sides may be used as reference pixels.
- pixels (u2, u4) adjacent to the top may be used.
- R(0,0) and R(0,2) which are pixels restored at pixel positions (0,0) and (0,2), may be used as reference pixels.
- pixels adjacent to the left side and the top side may be used as reference pixels.
- a pre-reconstructed pixel exists on the right side or lower end of the predicted pixel. Accordingly, it is also possible to use a right or lower reconstructed pixel as a reference pixel.
- pixels existing on the left and top of the sub-block are used as reference pixels, but pixels existing on the upper left, upper right, or lower left of the current block are reference pixels according to an intra-prediction mode to be described later. can also be used as reference pixels.
- 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 apparatus.
- 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 may be set as the second area.
- a search start position is set to determine whether a reference pixel is available.
- 21 is an example of a search start position and a search direction for each area. 21(a) shows a first area including reference pixels on the left and top of the current block, and FIG. 21(b) shows a second area including reference pixels on the bottom and right of the current block.
- the 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. 22 shows an example of a search process.
- FIG. 22 shows 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. 23 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. 21(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.
- reference pixels usable on all four sides (left, right, top, and bottom) of the current block can be generated.
- 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. 24 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. 24 , 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 expressed as 0 to 129, numbers 0 and 1 represent a planar mode and a DC mode, respectively, and numbers 2 to 129 represent a directional mode.
- 25(a) to (f) are examples of a method of using one reference pixel line when intra prediction modes belong to 3 to 8 areas, respectively.
- reference pixels may be rearranged in one dimension.
- the pixel 2500 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.
- the intra-prediction mode of the current block may be derived as one of pre-defined intra-prediction modes in the encoding/decoding device.
- One intra-prediction mode is assigned to the current block, and sub-blocks constructed from the current block may share the same intra-prediction mode.
- the intra-prediction mode of the current block may be derived for each sub-block.
- 26 and 27 show pre-defined intra prediction modes available for the current block.
- the 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. 27 shows an example in which the directional mode of FIG. 26 is extended to the entire 360 degrees.
- the directional mode is indicated as No. 2 to No. 129.
- 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. 28 and 29 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 left pixel in the current block
- RT means the position of the upper right 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.
- an 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.
- Intra prediction may be performed based on a reference pixel and an intra prediction mode. Intra-prediction may be performed in units of the current block or in units of sub-blocks of the current block.
- 30 is an example of a method of generating prediction pixels in a planar mode.
- T and L are examples of peripheral reference pixels used when generating prediction pixels in a planar mode.
- T represents a reference pixel located at the upper right corner
- L represents a reference pixel located at the lower left corner.
- A is a prediction pixel for the vertical direction.
- A can be generated by linearly interpolating a reference pixel and L located at the same position as A on the Y-axis.
- B is a prediction pixel for the horizontal direction.
- B can be generated by linearly interpolating T with a reference pixel located at the same position as B on the X axis.
- a and B are the same location in the block.
- a final predicted pixel is generated by using Equation 3, that is, by performing a weighted sum of A and B.
- weights ⁇ and ⁇ may have the same value.
- the weights ⁇ and ⁇ may be adaptively determined according to the location of the pixel.
- a prediction block using a planar mode is generated by applying the method described above to all pixel positions in the block.
- 31 is an example of a method of generating prediction pixels in DC mode.
- the calculated value is set to all prediction pixels in the prediction block.
- Reference pixels used when calculating the average value may include reference pixels positioned at the top, left, and top left of the block.
- the average value may be calculated using only the reference pixels adjacent to the upper and left sides (ie, excluding the reference pixels located in the upper left corner).
- the average value may be calculated using only the upper reference pixels or the left reference pixels according to the shape of the block. For example, if the horizontal length of the current block is longer than the vertical length, an average value may be calculated using only upper reference pixels. Alternatively, even if the horizontal length of the current block is greater than the vertical length, if the horizontal length is smaller than or equal to the predetermined threshold size, the average value is calculated using only the top reference pixels, and the horizontal length is greater than the predetermined threshold size. In this case, the average value may be calculated using at least one upper right reference pixel in addition to the upper reference pixels.
- the average value is calculated using only the top reference pixels adjacent to the current block, and the horizontal length is If the size is greater than the threshold size, the average value may be calculated using at least one upper right reference pixel that is not adjacent to the current block in addition to the upper reference pixels adjacent to the current block. On the other hand, if the vertical length of the current block is longer than the horizontal length, the average value can be calculated using only the left reference pixels.
- the average value is calculated using only the left reference pixels, and the vertical length is greater than the predetermined threshold size.
- the average value may be calculated using at least one lower left reference pixel in addition to the left reference pixels.
- the average value is calculated using only the left reference pixels adjacent to the current block, and the vertical length is When the size is greater than the threshold size, an average value may be calculated using at least one left reference pixel not adjacent to the current block in addition to left reference pixels adjacent to the current block. Or, the above and the opposite case is also possible.
- values of prediction pixels in a block are all the same.
- the directional mode projection is performed in a reference direction according to an angle of each directional mode. If a reference pixel exists at the corresponding position, the corresponding reference pixel is set as a predicted pixel. If a reference pixel does not exist at the corresponding position, a pixel at the corresponding position is generated by interpolating the surrounding reference pixels, and the interpolated pixel is set as a predicted pixel. 32 shows an example of this.
- the corresponding reference pixel is set as a prediction pixel.
- the reference pixel at the integer position when projected from the corresponding position in the reference direction according to the angle of the intra-prediction mode, the reference pixel at the integer position does not exist (ie, the projected position points to the reference pixel at the fractional position).
- the interpolated value is set as a prediction pixel.
- the location of a reference pixel may be changed in a specific mode to simplify implementation.
- modes 2 to 18 use only reference pixels located on the left side of the block
- modes 50 to 66 use only reference pixels located above the block.
- all reference pixels existing on the left and above the block must be used.
- only reference pixel lines in one direction may be used according to the directional mode.
- 33 is an example of an intra-prediction method when the directional mode is one of 34 to 49.
- the directional mode is any one of 34 to 49
- priority is given to the upper reference pixel line of the block and only the upper reference pixel line is used.
- projection is performed on the left reference pixel line in a direction parallel to the directional mode.
- a reference pixel to the left of the projected position may be set as the reference pixel 3300 .
- the projected position is not an integer position but a fractional position
- pixels at fractional positions are generated by interpolating reference pixels at integer positions adjacent to the corresponding fractional position.
- prediction pixels within a block are generated using only the upper reference pixel lines.
- FIG. 34 is an example of an intra-prediction method when the directional mode is one of 19 to 33.
- the reference pixel 3400 of the left reference pixel line may be projected in a direction parallel to the directional mode at the location of the reference pixel 3400 and derived based on the designated upper reference pixel. This is the same as reviewed with reference to FIG. 33, and a detailed description thereof will be omitted.
- Encoding/decoding may be performed by applying a linear model between subsampled subblocks.
- a linear model between subsampled subblocks.
- sub block 2 (Sub_Blk_2) and sub block 3 (Sub_Blk_3) as an embodiment to which the present disclosure is applied.
- sub-block 2 is encoded/decoded first, and a method of deriving parameters for sub-block 3 will be described through this example.
- reference pixels existing around a sub-block may be used.
- a parameter for making one or more reference pixels in the vicinity of sub-block 2 similar to one or more reference pixels in the vicinity of sub-block 3 may be derived.
- the parameter may include at least one of a weight (a) or an offset (b).
- the parameters can be derived based on Equation 4.
- Equation 4 X and Y are vector values, X is a reference pixel of subblock 2 and Y is a reference pixel of subblock 3.
- Parameters a and b can be scalar values. Regression analysis may be used to derive the parameters a and b, and a least mean square method may be used as an example.
- reference pixels used may vary according to the shape of the sub-block. For example, if the width of the sub-block is a rectangle longer than the height, the parameter may be derived using only the upper reference pixel. Alternatively, if the height of the sub-block is a rectangle longer than the width, the parameter may be derived using only the left reference pixel.
- a prediction block corresponding to sub-block 3 may be generated by applying the parameter to at least one pixel existing in sub-block 2. That is, the prediction block of sub-block 3 may be generated by multiplying a weight or adding an offset to a pixel of sub-block 2. Alternatively, the prediction block of sub-block 3 may be generated by multiplying the weight of the pixel of sub-block 2 and adding an offset.
- any one of the aforementioned intra-prediction mode-based intra-prediction method and linear model-based intra-prediction method may be selectively used.
- a flag indicating whether an intra prediction method based on an intra prediction mode is applied to the current block may be defined.
- the flag when the flag is a first value, subblocks belonging to the current block are predicted using an intra prediction method based on an intra prediction mode, and when the flag is a second value, subblocks belonging to the current block are predicted based on a linear model. It can be predicted using an intra-prediction method.
- the aforementioned flag may be defined in units of sub-blocks belonging to the current block, and through this, an intra-prediction method may be determined for each sub-block. That is, any one of the sub-blocks of the current block may use a different intra-prediction method from the other one.
- the corresponding sub-block is predicted using the intra-prediction method based on the linear model according to the flag, information specifying the position of the sub-block used by the corresponding sub-block to derive parameters based on the linear model is encoded/decoded. It can be.
- a linear model is used by using any sub-block among a sub-block having a first scan order and a sub-block having a second scan order.
- Information indicating whether a base parameter is derived may be coded and signaled.
- the flag may be encoded and signaled in an encoding device, or may be derived in an encoding/decoding device based on a predetermined encoding parameter.
- the encoding parameters are the same as those described above, and a detailed description thereof will be omitted.
- the first sub-block in the current block to be encoded/decoded is sub-block 1, which is encoded/decoded using only the aforementioned intra-prediction mode-based intra-prediction method. can be limited as much as possible.
- a flag specifying either the intra prediction mode-based intra prediction method or the linear model-based intra prediction method is not encoded, and the flag infers that the linear model-based intra prediction method is not used. It can be.
- At least one of the sub-blocks belonging to the current block may use both an intra-prediction mode-based intra-prediction method and a linear model-based intra-prediction method.
- a first prediction block of a sub-block may be generated using an intra-prediction mode-based intra-prediction method
- a second prediction block of a sub-block may be generated using a linear model-based intra-prediction method.
- a final prediction block of the sub-block may be generated through a weighted sum between the first prediction block and the second prediction block.
- the weight for the weighted sum may be determined in consideration of the intra prediction method used by neighboring blocks adjacent to the current block.
- the weight may be adaptively determined by considering the number or ratio of neighboring blocks using the intra-prediction method based on the intra-prediction mode and neighboring blocks using the intra-prediction method based on the linear model.
- At least one of the sub-blocks belonging to the current block may be predicted using an intra prediction method based on an intra prediction mode, and then corrected using a linear model based intra prediction method.
- at least one of the sub-blocks belonging to the current block may be predicted using an intra prediction method based on a linear model and then corrected using an intra prediction method based on an intra prediction mode.
- intra-prediction when intra-prediction is performed on the current block based on sub-blocks configured through sub-sampling, it can be inserted into the MPM list as an MPM candidate during encoding/decoding of blocks having a subsequent encoding/decoding order.
- it may be stored in a prediction method using subsampling or a pre-defined mode may be stored.
- this pre-defined single mode may be a planar mode or a DC mode.
- 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.
- An apparatus according to the present disclosure may have program instructions for storing or transmitting a bitstream generated by the above-described encoding method.
- the present invention can be used to encode/decode 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) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 개시는 트리 구조의 블록 분할 방법 및 장치를 제공하고자 한다.
본 개시는 화면내 예측을 위한 화면내 예측 모드를 유도하는 방법 및 장치를 제공하고자 한다.
본 개시는 화면내 예측을 위한 확장된 참조 화소를 유도하는 방법 및 장치를 제공하고자 한다.
본 개시는 개선된 화면내 예측을 수행하는 방법 및 장치를 제공하고자 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 영상 복호화 방법은, 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하고, 상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하며, 소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 복호화할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고, 상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고, 상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고, 상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 블록을 복호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 유도하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 유도되고, 상기 MPM 리스트는 복수의 MPM 후보를 포함하고, 상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행될 수 있다.
본 개시에 따른 영상 부호화 방법은, 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하고, 상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하며, 소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 부호화하는 단계를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고, 상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고, 상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고, 상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 블록을 부호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 결정하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 결정되고, 상기 MPM 리스트는 복수의 MPM 후보를 포함하고, 상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행될 수 있다.
본 개시에 따른 컴퓨터로 판독가능한 기록 매체는 전술한 영상 부호화 방법에 의해 생성된 혹은 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장할 수 있다.
본 개시에 따른 컴퓨팅 장치는 전술한 영상 부호화 방법에 의해 생성된 비트스트림을 전송하기 위한 프로그램(instructions)을 저장할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 의하면, 다양한 트리 구조의 블록 분할을 통해 효과적으로 부호화 블록, 예측 블록 또는 변환 블록의 크기와 형태를 결정할 수 있다.
본 개시에 의하면, 확장된 MPM 후보 및 참조 화소를 기반으로 이용하여 화면내 예측의 부호화 효율을 향상시킬 수 있다.
본 개시에 의하면, 개선된 화면내 예측을 통해 부호화 효율을 향상시킬 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 개시의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3 내지 도 12는 본 개시에 따른 블록 분할 방법을 도시한 것이다.
도 13 내지 도 17은 본 개시에 따른 블록 분할 방식에 따른 부호화 순서를 도시한 것이다.
도 18은 본 개시에 따른 서브 블록 기반의 화면내 예측 방법을 도시한 것이다.
도 19는 본 개시가 적용되는 일실시예로서, 현재 블록을 서브 샘플링하여 복수의 서브 블록을 구성하는 방법을 도시한 것이다.
도 20 내지 도 25는 본 개시가 적용되는 일실시예로서, 서브 블록의 예측을 위한 참조 화소를 유도하는 방법을 도시한 것이다.
도 26 및 도 27은 본 개시가 적용되는 일실시예로서, 현재 블록이 이용 가능한 기-정의된 화면내 예측 모드들을 도시한 것이다.
도 28 및 도 29는 본 개시가 적용되는 일실시예로서, MPM 리스트를 구성할 때 사용되는 주변 참조 위치를 도시한 것이다.
도 30 내지 도 34는 본 개시가 적용되는 일실시예로서, 화면내 예측 모드 별 예측 화소 생성 방법을 도시한 것이다.
도 35는 본 개시가 적용되는 일실시예로서, 선형 모델 기반의 화면내 예측 방법을 도시한 것이다.
본 개시에 따른 영상 복호화 방법은, 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하고, 상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하며, 소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 복호화할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고, 상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고, 상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고, 상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 블록을 복호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 유도하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 유도되고, 상기 MPM 리스트는 복수의 MPM 후보를 포함하고, 상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행될 수 있다.
본 개시에 따른 영상 부호화 방법은, 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하고, 상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하며, 소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 부호화하는 단계를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고, 상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고, 상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고, 상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 블록을 부호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 결정하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 결정되고, 상기 MPM 리스트는 복수의 MPM 후보를 포함하고, 상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행될 수 있다.
본 개시에 따른 컴퓨터로 판독가능한 기록 매체는 전술한 영상 부호화 방법에 의해 생성된 혹은 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장할 수 있다.
본 개시에 따른 컴퓨팅 장치는 전술한 영상 부호화 방법에 의해 생성된 비트스트림을 전송하기 위한 프로그램(instructions)을 저장할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제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은 본 개시에 따른 서브 블록 기반의 화면내 예측 방법을 도시한 것이다.블록은, 공간적으로 존재하는 중복 데이터를 제거하는 기술인 화면 내 예측이 적용되어 부호화/복호화될 수 있다. 화면 내 예측이 적용되는 경우, 원본 블록에 인접한 주변 화소 또는 원본 블록과 일정 거리(D)만큼 떨어진 라인에 속한 화소를 참조 화소로 이용하여 원본 블록에 대한 예측 값(예측 화소)들로 이루어진 예측 블록이 생성된다. 그 후, 원본 블록과 예측 블록의 차분 값인 잔차 블록을 생성하여 중복 데이터를 제거한다.
도 18을 참조하면, 현재 블록으로부터 하나 혹은 그 이상의 서브 블록을 구성할 수 있다(S1800).
여기서, 현재 블록은, 전술한 분할 방식들 중 적어도 하나에 기초하여 코딩 블록을 분할하여 획득된 것일 수 있다.
본 개시에 따른 서브 블록은 현재 블록을 서브 샘플링하여 생성된 것일 수 있다. 현재 블록은 NxM 크기의 서브 영역 단위로 구분될 수 있고, 각 서브 영역 단위로부터 동일 위치의 화소를 추출하고, 추출된 화소들을 그룹핑하여 하나의 서브 블록을 구성할 수 있다. 이러한 과정을 통해, 현재 블록으로부터 (NxM)개의 서브 블록을 구성할 수 있다. 이하 도 19를 참조하여 자세히 살펴보기로 한다.
도 19는 본 개시가 적용되는 일실시예로서, 현재 블록을 서브 샘플링하여 복수의 서브 블록을 구성하는 방법을 도시한 것이다.
본 개시는 2x2 크기의 서브 영역 단위가 이용되는 경우를 가정한다. WxH 크기를 가지는 현재 블록에 대해 위치 기반의 서브샘플링을 수행하여 (W/2)x(H/2) 크기를 가지는 4개의 서브 블록을 생성할 수 있다. 서브 샘플링을 수행할 때, 현재 블록에 속한 화소의 위치(또는 좌표)를 이용할 수 있다. 현재 블록을 나타내는 변수를 Blk라 할 때, 이 변수는 다음 수학식 1과 같이 표현될 수 있다.
[수학식 1]
Blk[x][y], 0 <= x < W, 0 <= y < H
또한, 서브 샘플링을 통해 생성되는 4개의 서브 블록은 다음 수학식 2와 같이 표현될 수 있다.
[수학식 2]
Sub_Blk_1[x][y] = Blk[x*2][y*2], 0 <= x < W/2, 0 <= y < H/2
Sub_Blk_2[x][y] = Blk[x*2+1][y*2], 0 <= x < W/2, 0 <= y < H/2
Sub_Blk_3[x][y] = Blk[x*2][y*2+1], 0 <= x < W/2, 0 <= y < H/2
Sub_Blk_4[x][y] = Blk[x*2+1][y*2+1], 0 <= x < W/2, 0 <= y < H/2
N과 M은 각각 서브 영역 단위의 너비와 높이를 의미한다. N과 M은 1, 2, 4, 8, 16, 32, 또는 그 이상의 정수일 수 있다. 다만, N은 현재 블록의 너비보다 작거나 같다. 마찬가지로, M은 현재 블록의 높이보다 작거나 같다. N과 M은 서로 동일할 수도 있고 서로 상이할 수도 있다. 즉, 서브 영역 단위는 정방형일 수도 있고, 비-정방형일 수도 있다.
상기 예시와 같이, 서브 샘플링은 수평 방향 및 수직 방향에 대해서 수행될 수 있다. 이는, N과 M이 모두 1보다 큰 정수로 설정된 경우에 해당한다. 또는, 서브 샘플링은 수평 방향에 대해서만 수행될 수도 있고, 이는 N은 1보다 크고, M은 1인 경우에 해당한다. 또는, 서브 샘플링은 수직 방향에 대해서만 수행될 수도 있고, 이는 N이 1이고, M은 1보다 큰 경우에 해당한다.
서브 샘플링은 부호화/복호화 장치에 기-정의된 복수의 방향 후보들 중 어느 하나를 선택적으로 이용하여 수행될 수 있다. 복수의 방향 후보들은, 수직 및 수평 방향으로의 서브 샘플링을 나타내는 제1 후보, 수직 방향으로의 서브 샘플링을 나타내는 제2 후보, 수평 방향으로의 서브 샘플링을 나타내는 제3 후보, 또는 서브 샘플링이 수행되지 않음을 나타내는 제4 후보 중 적어도 하나를 포함할 수 있다. 상기 선택은, 복수의 방향 후보들 중 어느 하나를 특정하는 인덱스 정보에 기초하여 수행되며, 인덱스 정보는 부호화 장치에서 부호화되어 복호화 장치로 시그널링될 수 있다. 또는, 상기 선택은, 현재 블록에 관한 소정의 부호화 파라미터에 기초하여 수행될 수 있다. 여기서, 부호화 파라미터는 슬라이스 타입, 블록 크기/형태, 화면내 예측 모드, 화면내 예측 모드의 방향성(각도), 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함할 수 있다. 또는 현재 블록이 이용 가능한 방향 후보들의 개수는 전술한 부호화 파라미터에 따라 상이하게 결정될 수도 있다.
또는, 수평 방향의 서브 샘플링 레이트와 수직 방향의 서브 샘플링 레이트를 상이하게 설정할 수도 있다. 이는 N과 M이 서로 상이하게 설정된 경우에 해당한다. N과 M의 값은 부호화/복호화 장치에 기-정의된 고정된 값일 수도 있고, 전술한 부호화 파라미터에 기초하여 적응적으로 결정될 수도 있다.
예를 들어, 현재 블록이 전술한 분할 방식 중 제1 분할 방식을 통해 생성된 것일 경우, N과 M은 각각 현재 블록의 너비와 높이로 설정되고, 현재 블록이 전술한 분할 방식 중 제2 분할 방식을 통해 생성된 것일 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수 있다. 다만, 이에 한정되지 아니하며, N과 M은 64보다 큰 값으로 설정될 수도 있다. 또는, 현재 블록이 전술한 분할 방식 중 제1 분할 방식을 통해 생성된 것일 경우, N과 M은 각각 0, 2, 4, 또는 8 중 어느 하나의 값으로 설정되고, 현재 블록이 전술한 분할 방식 중 제2 분할 방식을 통해 생성된 것일 경우, N과 M은 각각 8, 16 또는 32 중 어느 하나의 값으로 설정될 수 있다.
예를 들어, 현재 블록의 크기가 제1 문턱값보다 작거나 같은 경우, N과 M은 각각 현재 블록의 너비(W)와 높이(H)로 설정되고, 현재 블록의 크기가 제1 문턱크기보다 큰 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수 있다. 또는, 현재 블록의 크기가 제1 문턱값보다 작거나 같은 경우, N과 M은 각각 0, 2, 4, 또는 8 중 어느 하나의 값으로 설정되고, 현재 블록의 크기가 제1 문턱값보다 큰 경우, N과 M은 각각 8, 16 또는 32 중 어느 하나의 값으로 설정될 수 있다.
예를 들어, 현재 블록이 정방형인 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정되고, 현재 블록이 비-정방형인 경우, N은 W/2, W/4, W/8, 또는 W/16 중 어느 하나의 값으로, M은 H/2, H/4, H/8, 또는 H/16 중 어느 하나의 값으로 각각 설정될 수 있다.
예를 들어, 현재 블록의 인트라 예측 모드가 비-방향성 모드인 경우, N과 M은 각각 현재 블록의 너비와 높이로 설정되고, 현재 블록의 인트라 예측 모드가 방향성 모드인 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수 있다. 역으로, 현재 블록의 인트라 예측 모드가 비-방향성 모드인 경우에만, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수도 있다.
예를 들어, 현재 블록의 인트라 예측 모드의 각도가 제2 문턱값보다 작거나 같은 경우, N과 M은 각각 현재 블록의 너비(W)와 높이(H)로 설정되고, 현재 블록의 인트라 예측 모드의 각도가 제2 문턱값보다 큰 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수 있다. 또는, 현재 블록의 인트라 예측 모드의 각도가 제2 문턱값보다 작거나 같은 경우, N과 M은 각각 0, 2, 4, 또는 8 중 어느 하나의 값으로 설정되고, 현재 블록의 인트라 예측 모드의 각도가 제1 문턱값보다 큰 경우, N과 M은 각각 8, 16 또는 32 중 어느 하나의 값으로 설정될 수 있다.
또는, 각 서브 영역 단위로부터 기-정의된 일부 위치의 화소만을 선택적으로 추출함으로써, (NxM)개보다 작은 개수의 서브 블록이 구성될 수도 있다. 여기서, 일부 위치는, 서브 영역 단위 내에서 좌상단 화소 위치, 우상단 화소 위치, 좌하단 화소 위치, 우하단 화소 위치, 중앙 화소 위치 또는 중앙 화소 위치에 인접한 적어도 하나의 화소 위치 중 적어도 하나를 포함할 수 있다.
한편, 본 개시에 따른 서브 블록은, 서브 샘플링을 통해 생성된 것에 한정되지 아니하며, 경우에 따라 현재 블록을 하나 또는 그 이상의 분할 라인에 기초하여 분할하여 생성된 것일 수도 있다. 여기서, 분할 라인들은 서로 교차하지 않을 수도 있고, 적어도 하나의 분할 라인이 다른 분할 라인을 교차할 수도 있다.
도 18을 참조하면, 소정의 스캔 순서에 따라 서브 블록을 부호화/복호화할 수 있다(S1810).
부호화/복호화 장치에 기-정의된 고정된 스캔 순서가 이용될 수 있다. 또는, 부호화/복호화 장치에 기-정의된 복수의 스캔 순서 후보들 중 어느 하나가 선택적으로 이용될 수 있다. 복수의 스캔 순서 후보들은 래스터 스캔, 지그재그 스캔, 수평 스캔, 수직 스캔, 또는 대각 스캔 중 적어도 하나를 포함할 수 있다. 또한, 복수의 스캔 순서 후보들은, 전술한 스캔 순서 후보들 중 적어도 하나의 역방향 스캔 순서를 더 포함할 수도 있다. 상기 선택은, 복수의 스캔 순서 후보 후보들 중 어느 하나를 특정하는 인덱스 정보에 기초하여 수행되며, 인덱스 정보는 부호화 장치에서 부호화되어 복호화 장치로 시그널링될 수 있다. 또는, 상기 선택은, 현재 블록에 관한 소정의 부호화 파라미터에 기초하여 수행될 수도 있으며, 부호화 파라미터는 앞서 살펴본 바와 같다, 또는 현재 블록이 이용 가능한 스캔 순서 후보들의 개수는 전술한 부호화 파라미터에 따라 상이하게 결정될 수도 있다.
본 개시에서는 래스터 스캔이 적용된 경우를 가정한다. 먼저, 도 19에 도시된 바와 같이, (0,0), (2,0), (0,2), (2,2) 화소 위치를 가지는 서브 블록 Sub_Blk_1[x][y]이 부호화한 후, Sub_Blk_2, Sub_Blk_3, Sub_Blk_4의 순서로 부호화한다. 스캔 순서는, 각 서브 블록의 좌상단 화소의 좌표를 기준으로 결정될 수 있다. 일 예로, 래스터 스캔을 따를 경우, (0, 0) → (1, 0) → (0, 1) → (1, 1) 을 포함하는 서브 블록 순으로 부호화/복호화가 수행될 수 있다.
서브 블록을 부호화/복호화하는 과정은, 1) 서브 블록의 예측을 위한 참조 화소를 유도하는 과정, 2) 화면내 예측 모드를 유도하는 과정, 또는 3) 화면내 예측을 수행하는 과정 중 적어도 하나를 포함할 수 있다. 이하, 각 과정에 대해서 자세히 살펴보기로 한다.
1. 참조 화소 유도 과정
각 서브 블록은 참조 화소를 이용하여 부호화/복호화될 수 있다. 각 서브 블록의 예측을 위한 참조 화소를 유도하는 방법에 대해서는 도 20 내지 도 25를 참조하여 살펴보기로 한다.
도 20은 본 개시가 적용되는 일실시예로서, 각 서브 블록마다 참조 화소를 할당하는 방법을 도시한 것이다.
서브 블록의 참조 화소는 현재 블록(BLK)에 인접한 화소 또는 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함할 수 있다. 일 예로, Sub_Blk_1의 경우, 상단과 좌측에 인접한 화소 (u1, u3, l1, l3)을 참조 화소로 이용할 수 있다. Sub_Blk_2의 경우, 상단에 인접한 화소 (u2, u4)를 이용할 수 있다. 또한, (0,0) 화소 위치와 (0,2) 화소 위치에서 복원된 화소인 R(0,0)과 R(0,2)를 참조 화소로 이용할 수 있다. Sub_Blk_3 및 Sub_Blk_4의 경우도, 각각 좌측과 상단에 인접한 화소를 참조 화소로 이용할 수 있다.
부호화 순서(또는 스캔 순서)에 따라, 예측 화소의 우측 또는 하단에 기-복원된 화소가 존재하는 경우가 발생할 수도 있다. 이에 따라, 우측 또는 하단의 복원 화소를 참조 화소로 이용하는 것도 가능하다.
즉, 위 예시에서는 서브 블록의 좌측과 상단에 존재하는 화소들만 참조 화소로 사용되는 것으로 나타내었으나, 후술할 화면내 예측 모드에 따라 현재 블록의 좌상단, 우상단, 또는 좌하단에 존재하는 화소들을 참조 화소로 이용할 수도 있다.
현재 블록의 참조 화소들은 현재 블록에 인접한 참조 화소 라인(이하, 인접 화소 라인이라 함)으로부터 유도될 수도 있고, 현재 블록에 인접하지 않은 참조 화소 라인(이하, 비인접 화소 라인이라 함)으로부터 유도될 수도 있다. 또는, 현재 블록의 참조 화소들의 일부는 인접 화소 라인으로부터 유도되고, 나머지는 비인접 화소 라인으로부터 유도될 수 있다. 여기서, 비인접 화소 라인은, 부호화/복호화 장치에 기-정의된 P개의 참조 화소 라인 전부 또는 일부를 의미할 수 있다.
블록의 부호화 순서, 블록의 경계가 영상(예를 들어, 픽쳐, 타일, 슬라이스, CTU raw)의 경계에 위치하는 경우 등의 이유로 이용 불가능한 참조 화소가 존재할 수 있다. 따라서 해당 위치에서는 패딩 과정을 통해 참조 화소를 생성하여야 한다.
패딩은 현재 블록의 주변 영역을 2개의 영역으로 구분하여 수행될 수 있다. 일 예로 현재 블록의 왼쪽과 위쪽을 제1 영역으로 설정하고, 오른쪽과 아래쪽을 제2 영역으로 설정할 수 있다. 우선 각 영역마다, 참조 화소의 이용 가능 여부를 판단하기 위해 탐색 시작 위치를 설정한다. 도 21은 각 영역마다 탐색 시작 위치와 탐색 방향을 나타내는 예시이다. 도 21(a)는 현재 블록의 좌측과 상단의 참조 화소들을 포함하는 제1 영역을 나타내고, 도 21(b)는 현재 블록의 하단과 우측 참조 화소들을 포함하는 제2 영역을 나타낸다.
일 예로 도 21(a)에서, 탐색 시작 위치가 설정되었다면, 탐색 시작 위치에 이용 가능한 참조 화소가 존재하는지 확인한다. 만약 존재하지 않는다면 탐색 방향으로 순차적으로 이용 가능한 참조 화소가 탐색될 때까지 탐색을 진행한다. 도 22는 탐색 과정에 대한 예시를 나타낸다.
도 22에서, 탐색 시작 위치부터 탐색 방향으로 탐색을 수행하다가 A 위치에서 처음으로 이용 가능한 참조 화소가 탐색된 예시이다. A 위치에서 이용 가능한 참조 화소가 탐색된 후, A 위치의 참조 화소를 탐색 시작 위치로 복사한다. 그 후, 복사된 참조 화소를 탐색 방향으로 A 직전의 위치까지 순차적으로 복사하여 패딩을 수행한다. 즉, 탐색 시작 위치의 화소가 이용 불가능한 경우, 첫번째로 발견된 이용 가능한 화소를, 탐색 시작 위치까지 패딩할 수 있다.
위 예시와 달리, 탐색 시작 위치 이후부터 이용 불가능한 참조 화소가 존재할 수 있다. 도 23은 이와 관련된 예시를 나타낸다.
도 23(a)를 참조하면, 참조 화소 라인의 중간 위치에 이용 불가능한 참조 화소가 존재하는 경우, A 위치와 B 위치에 존재하는 참조 화소에 보간을 수행하여 패딩을 수행한다. 즉, N번째 화소가 이용 불가능한 경우, 해당 화소는 N 이전 가장 마지막으로 발견된 이용 가능한 화소 및 N 이후 가장 처음으로 발견된 이용 가능한 화소 간의 보간을 통해 생성될 수 있다.
도 23(b)와 같이 참조 화소 라인의 중간 지점부터 끝 지점까지 이용 가능한 참조 화소가 없는 경우, 가장 가까운 A 위치에 존재하는 참조 화소를 B 위치까지 순차적으로 복사하여 패딩을 수행한다. 즉, N번째 이후 모든 화소들이 이용 불가능한 경우, (N-1)번째 화소를 마지막 위치까지 복사하여 패딩이 수행된다.
혹은, 탐색 시작 위치에서부터 탐색 방향으로 탐색을 수행하다가 처음으로 이용 가능한 참조 화소를 기준 화소로 결정하고, 이 기준 화소를 이용 불가능한 모든 위치로 복사하여 패딩을 수행하는 방식 또한 가능하다.
도 21(b)와 같은 영역에서도 상기 설명한 방식이 동일/유사하게 적용될 수 있다.
제1 영역 내 모든 참조 화소가 이용 불가능한 경우, 기-설정된 값을 이용하여 패딩을 수행할 수 있다. 일 예로, 모든 참조 화소가 이용 불가능한 경우, 비트심도를 이용한 중간값을 이용하여 참조 화소에 패딩을 수행할 수 있다. 일 예로 화소의 비트심도가 10비트인 경우, 화소값의 범위는 0~1023이 되고 중간값은 512가 될 수 있다.
또한 제2 영역 내 모든 참조 화소가 이용 불가능한 경우, 비트심도를 이용한 중간값을 이용하여 참조 화소에 패딩을 수행할 수 있다. 일 예로 화소의 비트심도가 10비트인 경우 화소값의 범위는 0~1023이 되고 중간값은 512가 될 수 있다.
전술한 패딩 방식을 통해, 현재 블록의 4면(좌측, 우측, 상단 및 하단)에 전부 이용 가능한 참조 화소를 생성할 수 있다.
또는, 각 영역 내에서 패딩을 수행할 때, 다른 영역의 화소를 이용할 수도 있다. 일 예로, 제2 영역의 패딩을 수행하는 경우, 제1 영역에 존재하는 화소를 이용할 수 잇다. 반대로 제1 영역의 패딩을 수행하는 경우, 제2 영역에 존재하는 화소를 이용하는 것 또한 가능하다.
현재 블록의 4면에 참조 화소가 존재하는 경우, 방향성 모드에 따라 간소화된 참조 화소를 이용할 수 있다. 도 24를 참조하면, 방향성 모드가 어느 구역에 속하는지에 따라 좌측 참조 화소 라인, 상단 참조 화소 라인, 우측 참조 화소 라인, 하단 참조 화소 라인 중 하나의 참조 화소 라인만 사용할 수 있다. 도 24에서는 화면내 예측 모드의 번호를 0 내지 129로 표현하였으며, 0번과 1번은 각각 평면 모드와 DC 모드를 나타내며, 2번 내지 129번은 방향성 모드를 나타낸다.
도 25의 (a)~(f)는 화면내 예측 모드가 3 구역 내지 8 구역에 각각 속하는 경우, 하나의 참조 화소 라인을 사용하는 방법에 대한 예시이다.
도 25에 도시된 바와 같이, 참조 화소들이 1차원으로 재배열될 수 있다. 화소(2500)는, 방향성 모드와 평행으로 프로젝션된 위치의 화소를 복사하여 생성되거나, 프로젝션된 위치의 주변 정수 화소들을 보간하여 생성될 수 있다.
2. 화면내 예측 모드 유도 과정
현재 블록의 화면내 예측 모드는, 부호화/복호화 장치에 기-정의된 화면내 예측 모드들 중 어느 하나로 유도될 수 있다. 현재 블록에 대해서 하나의 화면내 예측 모드가 할당되고, 현재 블록으로부터 구성된 서브 블록들은 동일한 화면내 예측 모드를 공유할 수 있다. 또는, 현재 블록의 화면내 예측 모드는, 서브 블록 각각에 대해서 유도될 수도 있다.
도 26 및 도 27은 현재 블록이 이용 가능한 기-정의된 화면내 예측 모드들을 도시한 것이다.
도 26을 참조하면, 평면을 이용하여 예측하는 방법에는 0번을 할당하였으며, 평면 모드(Planar mode) 혹은 0번 모드라 한다. 또한, DC를 이용하여 예측하는 방법에는 1번을 할당하였으며 DC 모드 혹은 1번 모드라 한다. 그외 방향성을 이용한 방법(방향성 모드)들의 경우 -14에서부터 80까지 번호를 할당하였으며, 방향을 화살표로 표시하였다. 일 예로 18번 모드는 가로 방향을 이용한 예측 방법을 나타내며, 50번 모드는 세로 방향을 이용한 예측 방법을 나타낸다.
상기 설명한 COI(Coding Order Information)정보에 따라, 부호화하려는 블록 주변에 이용 가능한 참조 화소가 확장될 수 있다. 이에 따라 블록 주변에 존재하는 참조 화소가 블록의 왼쪽 및 위쪽 뿐만 아니라 오른쪽 및/또는 아래쪽에도 존재할 수 있다. 이에 따라, 오른쪽 및/또는 아래쪽의 참조 화소를 이용하는 화면내 예측 모드가 추가적으로 정의될 수 있다. 도 27은 도 26의 방향성 모드가 360도 전체로 확장된 예시를 나타낸다. 여기서 도 26과 다르게, 설명의 편의성을 위해 방향성 모드에 대해 2번~ 129번으로 표시하였다.
화면 내 예측 모드 부호화시, MPM(Most Probable Mode) 리스트를 구성 후, MPM 리스트에 속한 복수의 MPM 후보들 중 어느 하나를 특정하는 인덱스를 시그널링할 수 있다. 복호화 장치는 부호화 장치와 동일한 방식으로 MPM 리스트를 구성하고, MPM 리스트와 시그날링된 인덱스를 기반으로 현재 블록의 화면내 예측 모드를 유도할 수 있다.
도 28 및 도 29는 MPM 리스트를 구성할 때 사용되는 주변 참조 위치를 도시한 것이다.
도 28 및 도 29에 도시된 주변 참조 위치는, 각각 하나의 화소를 의미하거나 블록을 의미할 수 있다. 상기 주변 참조 위치는 현재 블록 주변의 서로 다른 블록에 포함되는 경우를 가정한다.
도 28을 참조하면, LB는 현재 블록 내에서 가장 왼쪽 아래에 위치한 화소의 위치를 의미하고, RT는 현재 블록 내에서 가장 오른쪽 위에 위치한 화소의 위치를 의미한다. 일 예로, L을 포함하는 블록과 A를 포함하는 블록에 존재하는 화면내 예측 모드들을 이용하여 MPM 리스트를 구성할 수 있다. 그 후, 현재 블록의 화면 내 예측 모드가 MPM 리스트에 포함되는지를 지시하는 정보, MPM 리스트의 어떤 모드와 동일한지를 알려주는 인덱스 정보(MPM 인덱스), MPM에 포함되지 않는다면 나머지 모드들 중 어느 하나를 특정하는 정보를 이용하여 현재 블록의 화면 내 예측 모드를 시그널링할 수 있다.
또는, 좌측 중앙에 위치하는 샘플(h 또는 g)를 포함하는 블록과 상단 중앙에 위치하는 샘플(d 혹은 c)를 포함하는 블록 중 적어도 하나의 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수도 있다. 또는, 좌측 상단에 위치하는 샘플(f)을 포함하는 블록과 상단 좌측에 위치하는 샘플(b)를 포함하는 블록 중 적어도 하나의 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수도 있다.
또한, 현재 블록의 우측과 하단에 위치한 참조 화소가 이용 가능한 경우, 도 29에 따른 MPM은 확장이 가능하다. 구체적으로, 현재 블록의 우측에 인접하는 이웃 블록 및/또는 현재 블록의 하단에 인접하는 이웃 블록 중 적어도 하나를 이용하여 MPM 후보를 유도할 수 있다.
도 29에서, LB는 현재 블록 내에서 가장 왼쪽 아래에 위치한 화소의 위치를 의미하고, RT는 현재 블록 내에서 가장 오른쪽 위에 위치한 화소의 위치를 의미한다. 일 예로, L을 포함하는 블록과 A를 포함하는 블록에 존재하는 화면내 예측 모드들을 이용하여 MPM 리스트를 구성할 수 있다. 또는, R을 포함하는 블록과 B를 포함하는 블록 중 적어도 하나에 존재하는 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수 있다.
또는, 하측 중앙(k 혹은 l) 샘플 또는 하단 우측(j) 샘플 중 적어도 하나를 포함하는 하단 블록을 이용하거나, 우측 중앙(g 혹은 f) 샘플 또는 우측 하단(h) 샘플 중 적어도 하나를 포함하는 우측 블록을 이용하여 MPM 리스트를 구성할 수 있다.
또는, 전술한 우측 및 하단에 위치한 주변 블록들의 화면내 예측 모드 중 어느 하나의 대표 모드만이 MPM 리스트에 추가될 수도 있다. 여기서, 대표 모드는, 우측 및 하단에 위치한 주변 블록들의 화면내 예측 모드들 중 최소값, 최대값, 또는 최빈값을 의미할 수도 있고, 부호화/복호화 장치에 기-약속된 고정된 위치의 모드를 의미할 수도 있다.
우측 블록 및/또는 하단 블록은, 좌측 블록 및/또는 상단 블록 대신 MPM 후보를 유도하는데 이용될 수 있다. 또는, 좌측 및/또는 상단 블록과 함께, 우측 블록 또는 하단 블록 중 적어도 하나를 더 이용하여 MPM 후보를 유도할 수 있다.
3. 화면내 예측 과정
(1) 화면내 예측 모드 기반의 화면내 예측 방법
화면내 예측은 참조 화소와 화면내 예측 모드를 기반으로 수행될 수 있다. 화면내 예측은 현재 블록의 단위로 수행될 수도 있고, 현재 블록의 서브 블록 단위로 수행될 수도 있다.
이하, 도 30 내지 도 34를 참조하여, 화면내 예측 모드 별 예측 화소 생성 방법에 대해서 자세히 살펴보기로 한다.
도 30은 평면 모드에서 예측 화소를 생성하는 방법을 나타내는 예시이다.
도 30에서, T와 L은 평면 모드로 예측 화소를 생성할 때 사용되는 주변 참조 화소에 대한 예시이다. T는 우측 상단 코너에 위치하는 참조 화소를, L은 좌측 하단 코너에 위치하는 참조 화소를 나타낸다. 여기서 A는 수직 방향에 대한 예측 화소이다. A는, A와 Y축으로 동일 위치에 있는 참조 화소와 L을 선형 보간하여 생성할 수 있다. B는 수평 방향에 대한 예측 화소이다. B는, B와 X축으로 동일 위치에 있는 참조 화소와 T를 선형 보간하여 생성할 수 있다. 여기서 A와 B는 블록 내 동일 위치이다. 그 후, 수학식 3을 이용하여, 즉, A와 B를 가중합(weighted sum)하여 최종적인 예측 화소를 생성한다.
[수학식 3]
(α×A+β×B)/(α+β)
이 때, 수학식 3에서 가중치 α와 β는 동일한 값일 수 있다. 또는, 화소의 위치에 따라, 가중치 α와 β가 적응적으로 결정될 수 있다. 상기 설명한 방식을 블록 내 모든 화소 위치에서 적용하여 평면 모드를 이용한 예측 블록을 생성한다.
도 31은 DC 모드에서 예측 화소를 생성하는 방법을 나타내는 예시이다.
도 31에서와 같이, 블록 주변에 존재하는 참조 화소들의 평균값을 계산한 후에, 계산된 값을 예측 블록 안의 모든 예측 화소로 설정한다. 평균값을 계산할 때 이용되는 참조 화소들은 블록의 상단, 좌측 및 좌상단에 위치하는 참조 화소들을 포함할 수 있다. 또는, 상단과 좌측에 인접한 참조 화소들만을 이용하여(즉, 좌상단에 위치하는 참조 화소를 제외) 평균값을 계산할 수도 있다.
혹은, 블록의 형태에 따라, 상단 참조 화소들 또는 좌측 참조 화소들만을 이용하여 평균값을 계산할 수도 있다. 일 예로, 현재 블록의 가로 길이가 세로 길이보다 더 길다면, 상단 참조 화소들만을 이용하여 평균값을 계산할 수 있다. 또는, 현재 블록의 가로 길이가 세로 길이보다 더 긴 경우라도, 가로 길이가 소정의 문턱크기보다 작거나 같은 경우에는 상단 참조 화소들만을 이용하여 평균값을 계산하고, 가로 길이가 소정의 문턱크기보다 큰 경우에는 상단 참조 화소들 외에 적어도 하나의 상단 우측 참조 화소를 이용하여 평균값을 계산할 수 있다. 또는, 현재 블록의 가로 길이가 세로 길이보다 더 긴 경우라도, 가로 길이가 소정의 문턱크기보다 작거나 같은 경우에는 현재 블록에 인접한 상단 참조 화소들만을 이용하여 평균값을 계산하고, 가로 길이가 소정의 문턱크기보다 큰 경우에는 현재 블록에 인접한 상단 참조 화소들 외에 현재 블록에 인접하지 않은 적어도 하나의 상단 우측 참조 화소를 이용하여 평균값을 계산할 수 있다. 반면, 현재 블록의 세로 길이가 가로 길이보다 더 길다면, 좌측 참조 화소들만을 이용하여 평균값을 계산할 수 있다. 마찬가지로, 현재 블록의 세로 길이가 가로 길이보다 더 긴 경우라도, 세로 길이가 소정의 문턱크기보다 작거나 같은 경우에는 좌측 참조 화소들만을 이용하여 평균값을 계산하고, 세로 길이가 소정의 문턱크기보다 큰 경우에는 좌측 참조 화소들 외에 적어도 하나의 좌측 하단 참조 화소를 이용하여 평균값을 계산할 수 있다. 또는, 현재 블록의 세로 길이가 가로 길이보다 더 긴 경우라도, 세로 길이가 소정의 문턱크기보다 작거나 같은 경우에는 현재 블록에 인접한 좌측 참조 화소들만을 이용하여 평균값을 계산하고, 세로 길이가 소정의 문턱크기보다 큰 경우에는 현재 블록에 인접한 좌측 참조 화소들 외에 현재 블록에 인접하지 않은 적어도 하나의 좌측 참조 화소를 이용하여 평균값을 계산할 수 있다. 혹은, 위와 반대의 경우도 가능하다.
상기 설명한 방식에 따라, DC 모드에서는 블록 내 예측 화소의 값이 전부 동일하다.
방향성 모드에서는, 각 방향성 모드의 각도에 따른 참조 방향으로 프로젝션(projection)을 수행한다. 해당 위치에 참조 화소가 존재하면 해당 참조 화소를 예측 화소로 설정한다. 만약, 해당 위치가 참조 화소가 존재하지 않으면, 주변 참조 화소를 보간하여 해당 위치의 화소를 생성하고, 보간된 화소를 예측 화소로 설정한다. 도 32는 이에 대한 예시를 나타낸다.
위 예시에서 예측 화소 B의 경우, 해당 위치에서 화면내 예측 모드의 각도에 따른 참조 방향으로 프로젝션하였을 때, 정수 위치 참조 화소가 존재한다(정수 위치의 참조 화소, R3). 이 경우, 해당 참조 화소를 예측 화소로 설정한다. 예측 화소 A의 경우, 해당 위치에서 화면내 예측 모드의 각도에 따른 참조 방향으로 프로젝션하였을 때 정수 위치의 참조 화소가 존재하지 않는다(즉, 프로젝션된 위치가 분수 위치의 참조 화소를 가리킴). 이 경우, 주변 정수 위치의 참조 화소들을 이용하여 보간을 수행 후, 보간된 값(분수 위치의 참조 화소, r)을 예측 화소로 설정한다.
도 32의 예시처럼 방향성 모드를 이용한 화면내 예측을 수행할 때, 구현의 간소화를 위해 특정 모드에서 참조 화소의 위치를 변경할 수 있다. 일 예로 도 19에서 2 내지 18번 모드의 경우 블록의 왼쪽에 존재하는 참조 화소만 사용하며, 50 내지 66번 모드의 경우 블록의 위쪽에 존재하는 참조 화소만 사용한다. 하지만 19 내지 49번 모드들의 경우, 블록의 왼쪽과 위쪽에 존재하는 참조 화소를 전부 사용하여야 한다. 이 경우, 블록 내 생성하려는 예측 화소의 위치에 따라, 왼쪽 혹은 위쪽의 참조 화소 라인 중 어떤 참조 화소 라인이 사용되어야 하는지 결정되어야 한다. 이 과정을 간소화하기 위해, 방향성 모드에 따라 어느 한 방향의 참조 화소 라인만 사용할 수 있다. 도 33은 방향성 모드가 34 내지 49번 중 어느 하나인 경우의 화면내 예측 방법에 대한 예시이다.
방향성 모드가 34 내지 49번 중 어느 하나인 경우, 블록의 위쪽 참조 화소 라인에 우선순위를 부여하여 위쪽 참조 화소 라인만 사용한다. 이 때, 도 33에서 위쪽 참조 화소 라인의 참조 화소(3300)를 생성하기 위해, 방향성 모드와 평행한 방향으로, 왼쪽 참조 화소 라인으로 프로젝션한다. 프로젝션된 위치의 왼쪽 참조 화소를 참조 화소(3300)로 설정할 수 있다. 이 때 프로젝션한 위치가 정수 위치가 아닌 분수 위치인 경우, 해당 분수 위치에 인접한 정수 위치의 참조 화소들을 보간하여, 분수 위치의 화소를 생성한다. 그 후, 위쪽 참조 화소 라인만 이용하여 블록 내 예측 화소를 생성한다.
한편, 도 34는 방향성 모드가 19 내지 33번 중 어느 하나인 경우의 화면내 예측 방법에 대한 예시이다. 이 경우, 왼쪽 참조 화소 라인의 참조 화소(3400)는, 참조 화소(3400)의 위치에서 방향성 모드와 평행한 방향으로 프로젝션하여 지정된 상단 참조 화소를 기초로 유도될 수 있다. 이는 도 33을 참조하여 살펴본 바와 같으며, 자세한 설명은 생략하기로 한다.
(2) 선형 모델 기반의 화면내 예측 방법
서브 샘플링된 서브 블록 간에 선형 모델을 적용하여 부호화/복호화를 수행할 수 있다. 이하, 도 35를 참조하여, 선형 모델을 이용하여 파라미터를 유도하고, 유도된 파라미터를 이용하여 서브 블록 간에 예측을 수행하는 방법에 대해 설명한다.
도 35는 본 개시가 적용되는 일실시예로서, 서브 블록2(Sub_Blk_2)와 서브 블록3(Sub_Blk_3)의 예시를 나타낸다. 이때, 서브 블록2가 먼저 부호화/복호화되었다고 가정하며, 이 예시를 통해, 서브 블록3을 위한 파라미터를 유도하는 방법을 설명한다.
파라미터를 유도할 때는 서브 블록 주변에 존재하는 참조 화소들을 이용할 수 있다.
우선, 서브 블록2의 주변에 존재하는 하나 또는 그 이상의 참조 화소들을, 서브 블록3의 주변에 존재하는 하나 또는 그 이상의 참조 화소들과 유사하게 만들어 주는 파라미터를 유도할 수 있다. 여기서, 파라미터는 가중치(a) 또는 오프셋(b) 중 적어도 하나를 포함할 수 있다. 예를 들어, 파라미터는 수학식 4에 기초하여 유도될 수 있다.
[수학식 4]
Y=a*X+b
수학식 4에서 X와 Y는 각각 벡터값이며, X는 서브 블록2의 참조 화소이고 Y는 서브 블록3의 참조 화소이다. 파라미터 a와 b는 스칼라 값일 수 있다. 파라미터 a와 b를 유도하기 위해 회귀 분석이 사용될 수 있으며, 일 예로 최소자승법(Least mean square method)이 사용될 수 있다.
혹은 분석의 간소화를 위해, X와 Y 안에 존재하는 참조 화소들을 전부 사용하는 것이 아니라, 서브 샘플링하여 일부만 사용할 수 있다.
혹은 서브 블록의 모양에 따라 사용되는 참조 화소가 달라질 수 있다. 일 예로 서브 블록의 너비가 높이보다 긴 직사각형이라면 상단 참조 화소만 이용하여 파라미터를 유도할 수 있다. 혹은 서브 블록의 높이가 너비보다 긴 직사각형이라면 좌측 참조 화소만 이용하여 파라미터를 유도할 수 있다.
파라미터를 유도한 후, 서브 블록2에 존재하는 적어도 하나의 화소에 파라미터를 적용하여 서브 블록3에 해당하는 예측 블록을 생성할 수 있다. 즉, 서브 블록3의 예측 블록은 서브 블록2의 화소에 가중치를 곱하거나, 오프셋을 더하여 생성될 수 있다. 또는, 서브 블록3의 예측 블록은 서브 블록2의 화소에 가중치를 곱하고 오프셋을 더하여 생성될 수도 있다.
(3) 적응적 화면내 예측 방법
전술한 화면내 예측 모드 기반의 화면내 예측 방법과 선형 모델 기반의 화면내 예측 방법 중 어느 하나가 선택적으로 이용될 수 있다.
예를 들어, 현재 블록에 대해 화면내 예측 모드 기반의 화면내 예측 방법이 적용되는지 여부를 나타내는 플래그가 정의될 수 있다. 여기서, 플래그가 제1 값인 경우, 현재 블록에 속한 서브 블록들은 화면내 예측 모드 기반의 화면내 예측 방법을 이용하여 예측되고, 플래그가 제2 값인 경우, 현재 블록에 속한 서브 블록들은 선형 모델 기반의 화면내 예측 방법을 이용하여 예측될 수 있다.
또는, 전술한 플래그는 현재 블록에 속한 서브 블록의 단위로 정의될 수도 있고, 이를 통해 서브 블록마다 화면내 예측 방법이 결정될 수 있다. 즉, 현재 블록의 서브 블록들 중 어느 하나는 다른 하나와 상이한 화면내 예측 방법을 이용할 수 있다. 또한, 플래그에 따라 해당 서브 블록이 선형 모델 기반의 화면내 예측 방법을 이용하여 예측되는 경우, 해당 서브 블록이 선형 모델 기반의 파라미터를 유도하기 위해 이용하는 서브 블록의 위치를 특정하는 정보가 부호화/복호화될 수 있다. 일 예로, 현재 블록 내 세번째 스캔 순서를 가진 서브 블록이 선형 모델 기반의 화면내 예측 방법을 이용하는 경우, 첫번째 스캔 순서를 가진 서브 블록과 두번째 스캔 순서를 가진 서브 블록 중 어떤 서브 블록을 이용하여 선형 모델 기반의 파라미터를 유도하는지 알려주는 정보가 부호화되어 시그널링될 수 있다.
상기 플래그는 부호화 장치에서 부호화되어 시그널링될 수도 있고, 소정의 부호화 파라미터에 기초하여 부호화/복호화 장치에서 유도될 수도 있다. 여기서, 부호화 파라미터는 전술한 바와 같으며, 자세한 설명은 생략하기로 한다.
현재 블록 내 서브 블록들에 대해 래스터 스캔이 적용된 경우, 현재 블록 내 가장 먼저 부호화/복호화되는 서브 블록은 서브 블록1이며, 이는 전술한 화면내 예측 모드 기반의 화면내 예측 방법만을 이용하여 부호화/복호화되도록 제한될 수 있다. 이 경우, 화면내 예측 모드 기반의 화면내 예측 방법과 선형 모델 기반의 화면내 예측 방법 중 어느 하나를 특정하는 플래그가 부호화되지 않으며, 플래그는는 선형 모델 기반의 화면내 예측 방법이 이용되지 않음으로 추론될 수 있다.
또는, 현재 블록에 속한 서브 블록들 중 적어도 하나는, 화면내 예측 모드 기반의 화면내 예측 방법과 선형 모델 기반의 화면내 예측 방법을 둘다 이용할 수도 있다. 일예로, 화면내 예측 모드 기반의 화면내 예측 방법을 이용하여 서브 블록의 제1 예측 블록을, 선형 모델 기반의 화면내 예측 방법을 이용하여 서브 블록의 제2 예측 블록을 각각 생성할 수 있다. 제1 예측 블록과 제2 예측 블록 간의 가중합을 통해 서브 블록의 최종 예측 블록을 생성할 수도 있다. 여기서, 가중합을 위한 가중치는 현재 블록에 인접한 주변 블록이 이용한 화면내 예측 방법을 고려하여 결정될 수 있다. 일예로, 상기 가중치는, 화면내 예측 모드 기반의 화면내 예측 방법을 이용한 주변 블록과 선형 모델 기반의 화면내 예측 방법을 이용한 주변 블록의 개수 또는 비율을 고려하여 적응적으로 결정될 수 있다.
또는, 현재 블록에 속한 서브 블록들 중 적어도 하나는, 화면내 예측 모드 기반의 화면내 예측 방법을 이용하여 예측되고, 그런 다음 선형 모델 기반의 화면내 예측 방법을 이용하여 보정될 수도 있다. 역으로, 현재 블록에 속한 서브 블록들 중 적어도 하나는, 선형 모델 기반의 화면내 예측 방법을 이용하여 예측되고, 그런 다음 화면내 예측 모드 기반의 화면내 예측 방법을 이용하여 보정될 수도 있다.
상기 예시와 같이, 현재 블록이 서브 샘플링을 통해 구성된 서브 블록을 기반으로 화면내 예측이 수행된 경우, 이후의 부호화/복호화 순서를 가진 블록들의 부호화/복호화시에 MPM 후보로서 MPM 리스트에 삽입될 수 있다. 이 때, 서브 샘플링을 이용한 예측 방식으로 저장될 수도 있으며 혹은, 기-정의된 모드를 저장하게 할 수도 있다. 일 예로, 이 기-정의된 단 일모드는 평면 모드 혹은 DC 모드가 될 수 있다.
복호화 과정 또는 부호화 과정을 중심으로 설명된 실시예들을, 부호화 과정 또는 복호화 과정에 적용하는 것은, 본 개시의 범주에 포함되는 것이다. 소정의 순서로 설명된 실시예들을, 설명된 것과 상이한 순서로 변경하는 것 역시, 본 개시의 범주에 포함되는 것이다.
상술한 개시는 일련의 단계 또는 순서도를 기초로 설명되고 있으나, 이는 발명의 시계열적 순서를 한정한 것은 아니며, 필요에 따라 동시에 수행되거나 다른 순서로 수행될 수 있다. 또한, 상술한 개시에서 블록도를 구성하는 구성요소(예를 들어, 유닛, 모듈 등) 각각은 하드웨어 장치 또는 소프트웨어로 구현될 수도 있고, 복수의 구성요소가 결합하여 하나의 하드웨어 장치 또는 소프트웨어로 구현될 수도 있다. 상술한 개시는 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 하드웨어 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 본 개시에 따른 장치는, 전술한 부호화 방법에 의해 생성된 비트스트림을 저장하거나 전송하기 위한 프로그램 명령어(instructions)을 가질 수 있다.
본 발명은 비디오 신호를 부호화/복호화하기 위해 이용될 수 있다.
Claims (21)
- 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하는 단계;상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하는 단계; 및소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 복호화하는 단계를 포함하는, 영상 복호화 방법.
- 제1항에 있어서,상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함하는, 영상 복호화 방법.
- 제2항에 있어서,상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고,상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행되는, 영상 복호화 방법.
- 제1항에 있어서,상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고,상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성되는, 영상 복호화 방법.
- 제4항에 있어서,상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행되는, 영상 복호화 방법.
- 제4항에 있어서,상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고,상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함하는, 영상 복호화 방법.
- 제6항에 있어서,상기 서브 블록을 복호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 유도하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함하는, 영상 복호화 방법.
- 제7항에 있어서,상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함하는, 영상 복호화 방법.
- 제7항에 있어서,상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 유도되고,상기 MPM 리스트는 복수의 MPM 후보를 포함하고,상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도되는, 영상 복호화 방법.
- 제7항에 있어서,상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행되는, 영상 복호화 방법.
- 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하는 단계;상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하는 단계; 및소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 부호화하는 단계를 포함하는, 영상 부호화 방법.
- 제11항에 있어서,상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함하는, 영상 부호화 방법.
- 제12항에 있어서,상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고,상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행되는, 영상 부호화 방법.
- 제11항에 있어서,상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고,상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성되는, 영상 부호화 방법.
- 제14항에 있어서,상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행되는, 영상 부호화 방법.
- 제14항에 있어서,상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고,상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함하는, 영상 부호화 방법.
- 제16항에 있어서,상기 서브 블록을 부호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 결정하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함하는, 영상 부호화 방법.
- 제17항에 있어서,상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함하는, 영상 부호화 방법.
- 제17항에 있어서,상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 결정되고,상기 MPM 리스트는 복수의 MPM 후보를 포함하고,상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도되는, 영상 부호화 방법.
- 제17항에 있어서,상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행되는, 영상 부호화 방법.
- 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,상기 영상 복호화 방법은,트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하는 단계;상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하는 단계; 및소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 복호화하는 단계를 포함하는, 컴퓨터로 판독가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/569,476 US20240275989A1 (en) | 2021-06-29 | 2022-06-27 | Video signal encoding/decoding method and device based on intra-prediction, and recording medium storing bitstream |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0085114 | 2021-06-29 | ||
KR20210085114 | 2021-06-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023277486A1 true WO2023277486A1 (ko) | 2023-01-05 |
Family
ID=84692912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/009137 WO2023277486A1 (ko) | 2021-06-29 | 2022-06-27 | 화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240275989A1 (ko) |
KR (1) | KR20230002091A (ko) |
WO (1) | WO2023277486A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024151023A1 (ko) * | 2023-01-09 | 2024-07-18 | 엘지전자 주식회사 | 화면 내 예측에 기반한 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체 |
WO2024186135A1 (ko) * | 2023-03-08 | 2024-09-12 | 엘지전자 주식회사 | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018066863A1 (ko) * | 2016-10-04 | 2018-04-12 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
WO2018079888A1 (ko) * | 2016-10-28 | 2018-05-03 | 엘지전자(주) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
KR20200116462A (ko) * | 2018-02-08 | 2020-10-12 | 퀄컴 인코포레이티드 | 비디오 코딩을 위한 인트라-블록 카피 |
WO2021083257A1 (en) * | 2019-10-29 | 2021-05-06 | Beijing Bytedance Network Technology Co., Ltd. | Cross-component adaptive loop filter |
KR20210050572A (ko) * | 2018-09-21 | 2021-05-07 | 캐논 가부시끼가이샤 | 비디오 샘플들의 블록들의 트리를 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템 |
-
2022
- 2022-06-27 KR KR1020220078232A patent/KR20230002091A/ko unknown
- 2022-06-27 WO PCT/KR2022/009137 patent/WO2023277486A1/ko active Application Filing
- 2022-06-27 US US18/569,476 patent/US20240275989A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018066863A1 (ko) * | 2016-10-04 | 2018-04-12 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
WO2018079888A1 (ko) * | 2016-10-28 | 2018-05-03 | 엘지전자(주) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
KR20200116462A (ko) * | 2018-02-08 | 2020-10-12 | 퀄컴 인코포레이티드 | 비디오 코딩을 위한 인트라-블록 카피 |
KR20210050572A (ko) * | 2018-09-21 | 2021-05-07 | 캐논 가부시끼가이샤 | 비디오 샘플들의 블록들의 트리를 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템 |
WO2021083257A1 (en) * | 2019-10-29 | 2021-05-06 | Beijing Bytedance Network Technology Co., Ltd. | Cross-component adaptive loop filter |
Also Published As
Publication number | Publication date |
---|---|
KR20230002091A (ko) | 2023-01-05 |
US20240275989A1 (en) | 2024-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018088805A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018106047A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018008906A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2017222325A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018212577A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018056703A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018066959A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018212578A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018097691A2 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2018221817A1 (ko) | 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치 | |
WO2018008905A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2020096425A1 (ko) | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 | |
WO2019235891A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018236028A1 (ko) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2018212579A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018190523A1 (ko) | 영상의 부호화/복호화 방법 및 이를 위한 장치 | |
WO2018044089A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018066958A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018056701A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018093184A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2017150823A1 (ko) | 비디오 신호 부호화/복호화 방법 및 이를 위한 장치 | |
WO2023277486A1 (ko) | 화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 | |
WO2023277538A1 (ko) | 서브 블록 단위의 화면 내 예측에 기반한 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체 | |
WO2016064123A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2019190204A1 (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: 22833542 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18569476 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22833542 Country of ref document: EP Kind code of ref document: A1 |