WO2023113551A1 - 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체 - Google Patents

비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체 Download PDF

Info

Publication number
WO2023113551A1
WO2023113551A1 PCT/KR2022/020616 KR2022020616W WO2023113551A1 WO 2023113551 A1 WO2023113551 A1 WO 2023113551A1 KR 2022020616 W KR2022020616 W KR 2022020616W WO 2023113551 A1 WO2023113551 A1 WO 2023113551A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
prediction
residual
residual coefficient
information
Prior art date
Application number
PCT/KR2022/020616
Other languages
English (en)
French (fr)
Inventor
임성원
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Publication of WO2023113551A1 publication Critical patent/WO2023113551A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

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.
  • An object of the present disclosure is to provide a method of omitting encoding/decoding of code information for at least one residual coefficient and an apparatus for performing the same.
  • An object of the present disclosure is to provide a method for predicting a sign of a residual coefficient in which encoding/decoding of code information is omitted, and an apparatus for performing the same.
  • An object of the present disclosure is to provide a method for deriving an optimal reconstructed block using reconstructed samples around a current block and an apparatus for performing the same.
  • An image decoding method includes determining whether code prediction is applied to at least one residual coefficient, and when it is determined that code prediction is applied, code combinations applicable to the at least one residual coefficient Deriving a reconstructed block for each of the reconstructed blocks, calculating a cost of each of a plurality of reconstructed blocks, and calculating code prediction information for the at least one residual coefficient to which the code prediction is applied and each of the plurality of reconstructed blocks. Based on the cost, obtaining a recovery block.
  • An image encoding method includes deriving a reconstruction block for each of code combinations applicable to at least one residual coefficient, calculating a cost of each of a plurality of reconstruction blocks, and the at least one residual coefficient. For , encoding code prediction information indicating whether a sign of the at least one residual coefficient used to derive a reconstruction block having the lowest cost among the plurality of reconstruction blocks matches an actual code and a combination. .
  • sign information is explicitly signaled for residual residual coefficients other than the at least one residual coefficient, while the at least one residual coefficient Signaling of sign information may be omitted for coefficients.
  • the at least one residual coefficient may include a residual coefficient that is a DC component.
  • the at least one residual coefficient may include a residual coefficient at a last non-zero position.
  • the cost of a reconstruction block is a vertical cost obtained based on upper reconstruction samples located at the upper boundary of the reconstruction block and a reconstruction sample located at the left boundary of the reconstruction block. It may be obtained based on at least one of the horizontal direction costs obtained based on .
  • the cost of the reconstruction block may be determined as the sum of the horizontal cost and the vertical cost. there is.
  • the cost of the reconstruction block may be determined to be equal to the horizontal cost or the vertical cost.
  • whether the code prediction is allowed to be applied to the current block is determined by the size of the current block, a quantization parameter, an encoding mode, an intra prediction mode, or a transform skip to the current block. may be determined based on at least one of whether
  • the code prediction information may indicate whether a sign of a residual coefficient used to derive a reconstructed block having the lowest cost among the plurality of reconstructed blocks matches an actual code. there is.
  • the code prediction information is encoded based on probability information, and the probability information may be determined based on the position of the at least one residual coefficient.
  • encoding/decoding of code information for at least one residual coefficient is omitted, so signaling overhead can be reduced.
  • 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.
  • FIG. 6 illustrates an example in which prediction samples are generated under the directional intra prediction mode.
  • FIG 8 and 9 illustrate examples in which a prediction block of a current block is generated based on motion information generated through motion estimation.
  • 10 is a flowchart illustrating a process of encoding a residual coefficient in an encoder.
  • 11 is a flowchart illustrating a process of encoding magnitude information of a residual coefficient.
  • FIG. 12 is a flowchart illustrating a process of decoding residual coefficients in a decoder.
  • FIG. 13 is a diagram illustrating a decoding process of size information of a residual coefficient.
  • 16 and 17 are flowcharts of a method of predicting a sign of a residual coefficient according to an embodiment of the present disclosure.
  • FIG. 18 illustrates an example in which a plurality of reconstruction blocks are generated by applying different code combinations to residual coefficients.
  • 19 illustrates an example in which the cost of a restoration block is calculated.
  • 20 illustrates an example in which reconstructed samples are selected according to the directionality of an intra prediction mode.
  • 21 is a diagram for explaining an example in which a cost of a restoration block is calculated based on template matching.
  • 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 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 filter unit 150 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
  • a deblocking filter may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
  • ALF adaptive loop filter
  • the deblocking filter can remove block distortion caused by a boundary between blocks in a reconstructed picture.
  • it may be determined whether to apply the deblocking filter to the current block based on pixels included in several columns or rows included in the block.
  • a strong filter or a weak filter may be applied according to the required deblocking filtering strength.
  • horizontal filtering and vertical filtering may be processed in parallel.
  • the offset correction unit may correct an offset of the deblocked image from the original image in units of pixels.
  • pixels included in the image are divided into a certain number of areas, then the area to be offset is determined and the offset is applied to the area, or the offset is performed considering the edge information of each pixel method can be used.
  • Adaptive Loop Filtering may be performed based on a value obtained by comparing the filtered reconstructed image with the original image. After dividing the pixels included in the image into predetermined groups, filtering may be performed differentially for each group by determining one filter to be applied to the corresponding group. Information related to whether or not to apply ALF may be transmitted for each coding unit (CU) of a luminance signal, and the shape and filter coefficients of an ALF filter to be applied may vary according to each block. In addition, the ALF filter of the same form (fixed form) may be applied regardless of the characteristics of the block to be applied.
  • ALF Adaptive Loop Filtering
  • the memory 155 may store a reconstructed block or picture calculated through the filter unit 150, and the stored reconstructed block or picture may be provided to the prediction units 120 and 125 when inter prediction is performed.
  • FIG. 2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present disclosure.
  • the image decoding apparatus 200 includes an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, a prediction unit 230 and 235, a filter unit ( 240), memory 245 may be included.
  • the input bitstream may be decoded by a procedure opposite to that of the image encoding device.
  • the entropy decoding unit 210 may perform entropy decoding by a procedure opposite to that performed by the entropy encoding unit of the image encoding apparatus. For example, various methods such as exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) may be applied corresponding to the method performed by the image encoding device.
  • various methods such as exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) may be applied corresponding to the method performed by the image encoding device.
  • the entropy decoding unit 210 may decode information related to intra-prediction and inter-prediction performed by the encoding device.
  • the rearrangement unit 215 may perform rearrangement based on a method in which the encoding unit rearranges the entropy-decoded bitstream in the entropy decoding unit 210 . Coefficients expressed in the form of one-dimensional vectors may be reconstructed into coefficients in the form of two-dimensional blocks and rearranged. The rearrangement unit 215 may perform rearrangement through a method of receiving information related to the coefficient scanning performed by the encoder and performing reverse scanning based on the scanning order performed by the corresponding encoder.
  • the inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoding device and the rearranged coefficient value of the block.
  • the inverse transform unit 225 may perform inverse transforms, that is, inverse DCT, inverse DST, and inverse KLT, on the transforms performed by the transform unit, that is, DCT, DST, and KLT, on the quantization result performed by the video encoding apparatus. Inverse transformation may be performed based on the transmission unit determined by the video encoding device. In the inverse transformation unit 225 of the video decoding apparatus, transformation techniques (eg, DCT, DST, KLT) are selectively performed according to a plurality of pieces of information such as prediction method, size and shape of the current block, prediction mode, and intra-prediction direction. It can be.
  • transformation techniques eg, DCT, DST, KLT
  • the prediction units 230 and 235 may generate a prediction block based on information related to prediction block generation provided from the entropy decoding unit 210 and previously decoded block or picture information provided from the memory 245 .
  • Intra-prediction is performed on a prediction unit based on a pixel existing in , but when performing intra-prediction, if the size of the prediction unit and the size of the transformation unit are different, a reference pixel based on the transformation unit is used to screen the picture. I can do my predictions.
  • intra prediction using NxN division may be used only for the smallest coding unit.
  • the prediction units 230 and 235 may include a prediction unit determination unit, an inter prediction unit, and an intra prediction unit.
  • the prediction unit determination unit receives various information such as prediction unit information input from the entropy decoding unit 210, prediction mode information of the intra prediction method, and motion prediction related information of the inter prediction method, and classifies the prediction unit from the current coding unit. , it is possible to determine whether the prediction unit performs inter-prediction or intra-prediction.
  • the inter-prediction unit 230 uses information necessary for inter-prediction of the current prediction unit provided from the video encoding device, based on information included in at least one picture among pictures before or after the current picture that includes the current prediction unit. It is possible to perform inter-prediction for the current prediction unit. Alternatively, inter prediction may be performed based on information of a pre-reconstructed partial region in the current picture including the current prediction unit.
  • the motion prediction methods of the prediction unit included in the corresponding coding unit based on the coding unit are skip mode, merge mode, AMVP mode, intra-block copy It is possible to determine which of the modes is used.
  • the intra prediction unit 235 may generate a prediction block based on pixel information in the current picture.
  • intra prediction may be performed based on intra prediction mode information of the prediction unit provided by the video encoding device.
  • the intra prediction unit 235 may include an Adaptive Intra Smoothing (AIS) filter, a reference pixel interpolation unit, and a DC filter.
  • the AIS filter is a part that performs filtering on reference pixels of the current block, and can be applied by determining whether to apply the filter according to the prediction mode of the current prediction unit.
  • AIS filtering may be performed on the reference pixels of the current block using the prediction mode of the prediction unit and AIS filter information provided by the image encoding apparatus.
  • AIS filter may not be applied.
  • the reference pixel interpolator may interpolate the reference pixel to generate a reference pixel in pixel units having an integer value or less.
  • the prediction mode of the current prediction unit is a prediction mode for generating a prediction block without interpolating reference pixels
  • the reference pixels may not be interpolated.
  • the DC filter may generate a prediction block through filtering when the prediction mode of the current block is the DC mode.
  • the reconstructed block or picture may be provided to the filter unit 240 .
  • the filter unit 240 may include a deblocking filter, an offset correction unit, and an ALF.
  • Information on whether a deblocking filter is applied to a corresponding block or picture and, when a deblocking filter is applied, information on whether a strong filter or a weak filter is applied may be provided from the video encoding 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.
  • a picture including the current block will be referred to as a current picture.
  • duplicated data within a picture or duplicated data between pictures may be removed.
  • a residual value may be generated by differentiating the predicted value from the original value.
  • redundant data within a picture or data between pictures may be removed.
  • a picture may be divided into blocks and coded/decoded. Accordingly, prediction may be performed in units of blocks.
  • the encoder may generate a residual block by performing prediction on a block and differentiating a prediction block generated as a result of performing prediction from an original block.
  • the decoder may reconstruct a block by combining the reconstructed residual block and the prediction block.
  • Redundant data between blocks may be removed through intra prediction or inter prediction. Hereinafter, this will be described in detail.
  • Intra prediction may be performed based on at least one of a plurality of intra prediction modes predefined in an encoder and a decoder.
  • Intra prediction modes predefined in the encoder and decoder may include non-directional intra prediction modes and directional prediction modes.
  • mode 0 represents a planar mode, which is a non-directional mode
  • mode 1 represents a DC mode, which is a non-directional mode.
  • 65 directional intra prediction modes (2-66) are illustrated.
  • a larger number of intra prediction modes or a smaller number of intra prediction modes than shown may be predefined in the encoder and decoder.
  • One of predefined intra prediction modes may be selected, and a prediction block for a current block may be obtained based on the selected intra prediction mode.
  • the number and locations of reference samples used to generate prediction samples in the prediction block may be adaptively determined according to the selected intra prediction mode.
  • a reference sample T adjacent to the upper right corner and a reference sample L adjacent to the lower left corner of the current block may be used.
  • P1 represents a prediction sample in a horizontal direction
  • P2 represents a prediction sample in a vertical direction
  • P1 may be generated by linearly interpolating a reference sample having the same y-coordinate as P1 (ie, a reference sample located in the horizontal direction of P1) and a reference sample T.
  • P2 may be generated by linearly interpolating a reference sample having the same x-coordinate as P2 (ie, a reference sample located in the vertical direction of P2) and a reference sample L.
  • Equation 1 shows an example of generating a final prediction sample.
  • represents a weight assigned to the horizontal direction prediction sample P1
  • represents a weight assigned to the vertical direction prediction sample P2.
  • Weight ⁇ and weight ⁇ may be determined based on the width and height of the current block. Depending on the width and height of the current block, the weights ⁇ and ⁇ may have the same or different values. For example, when one side of a block is longer than the other side, a weight assigned to a prediction sample in a direction parallel to the long side may be set to have a higher value. Alternatively, contrary to the above, a weight assigned to a prediction sample in a direction parallel to the long side may be set to have a smaller value.
  • an average value of reference samples around the current block may be calculated.
  • Figure 5 shows the range of reference samples used to take the mean value.
  • the average value may be calculated based on the top reference samples and the left reference samples.
  • the average value may be calculated using only the top reference samples or the average value may be calculated using only the left reference samples. For example, when the width of the current block is greater than the height, or when the ratio between the width and height of the current block is equal to or greater than (or less than) a predefined value, an average value may be calculated using only upper reference samples. .
  • the average value can be calculated using only the left reference samples.
  • FIG. 6 illustrates an example in which prediction samples are generated under the directional intra prediction mode.
  • projection may be performed in the direction in which the reference sample is placed, according to the angle of the directional intra prediction mode, at each sample position in the current block.
  • the reference sample at the corresponding position may be set as a predicted sample.
  • reference samples around the projected position may be interpolated, and the interpolated value may be set as the predicted sample.
  • reference sample R3 when angle-based projection of the directional intra prediction mode is performed at the position of sample B in the current block, reference sample R3 exists at the projected position. Accordingly, reference sample R3 may be set as a predicted sample for the sample B position.
  • integer position reference samples existing around the projected position may be interpolated, and the interpolated value may be set as a predicted sample for the sample A position.
  • a value generated by interpolating integer position reference samples may be referred to as a fractional position reference sample (r in FIG. 6 ).
  • Information on the intra prediction mode of the current block may be encoded and signaled.
  • an intra prediction mode list including a plurality of intra prediction mode candidates may be generated for the current block.
  • the intra prediction mode candidate may be derived based on an intra prediction mode of a neighboring block adjacent to the current block or a predefined intra prediction mode.
  • a flag indicating whether the intra prediction mode of the current block is identical to one of a plurality of intra prediction mode candidates included in the intra prediction mode list may be explicitly encoded and signaled.
  • index information indicating one of the plurality of intra prediction mode candidates may be explicitly encoded and signaled.
  • index information indicating the intra prediction mode of the current block among the remaining intra prediction modes ie, residual mode information
  • intra prediction mode prediction candidates may be used instead of intra prediction mode candidates.
  • a value indicated by the intra prediction mode prediction candidate may be set as a prediction value of the intra prediction mode of the current block.
  • an intra-prediction mode prediction list including a plurality of intra-prediction mode prediction candidates may be constructed.
  • the intra prediction mode prediction candidate may be derived based on an intra prediction mode of a neighboring block adjacent to the current block or a predefined intra prediction mode.
  • one of a plurality of intra prediction mode prediction candidates may be set as an intra prediction mode prediction value of the current block.
  • the intra prediction mode prediction value When the intra prediction mode prediction value is set, a difference between the intra prediction mode of the current block and the intra prediction mode prediction value may be derived.
  • index information indicating one of a plurality of intra prediction mode prediction candidates and information indicating an intra prediction mode difference value may be explicitly encoded and signaled.
  • Inter prediction may be performed in units of blocks.
  • a prediction block of the current block may be generated from a reference picture using motion information of the current block.
  • the motion information may include at least one of a motion vector, a reference picture index, and a prediction direction.
  • Motion information of the current block may be generated through motion estimation.
  • a search range for motion estimation may be set from the same position as the reference point of the current block in the reference picture.
  • the reference point may be the location of the top left sample of the current block.
  • a rectangle having a size of (w0+w01) and (h0+h1) centered on a reference point is set as a search range.
  • w0, w1, h0, and h1 may have the same value.
  • at least one of w0, w1, h0 and h1 may be set to have a different value from the other one.
  • the sizes of w0, w1, h0, and h1 may be determined so as not to exceed a coding tree unit (CTU) boundary, slice boundary, tile boundary, or picture boundary.
  • CTU coding tree unit
  • a cost with respect to the current block may be measured for each reference block.
  • the cost may be calculated using the similarity between the two blocks.
  • the cost may be calculated based on the sum of absolute differences between original samples in the current block and original samples (or reconstructed samples) in the reference block. The smaller the absolute value sum, the lower the cost can be.
  • a reference block having an optimal cost may be set as a prediction block of the current block.
  • a distance between the current block and the reference block may be set as a motion vector.
  • the x-coordinate difference and the y-coordinate difference between the current block and the reference block may be set as motion vectors.
  • an index of a picture including a reference block specified through motion estimation is set as a reference picture index.
  • a reference picture index indicating one of the reference pictures may be coded and signaled. For example, when a plurality of reference pictures exist on a reference picture list and motion estimation is performed on each of the plurality of reference pictures, a method for specifying a reference picture from which motion information of a current block is derived among the plurality of reference pictures A reference picture index may be explicitly coded and signaled to a decoder. In this case, when only one reference picture is included in the reference picture list, encoding/decoding of the reference picture index may be omitted.
  • a prediction direction may be set based on whether the reference picture belongs to the L0 reference picture list or the L1 reference picture list.
  • motion estimation may be performed for each of the L0 and L1 directions.
  • motion information in the L0 direction and motion information in the L1 direction may be respectively generated.
  • FIG 8 and 9 illustrate examples in which a prediction block of a current block is generated based on motion information generated through motion estimation.
  • FIG. 8 illustrates an example of generating a prediction block through unidirectional (ie, L0 direction) prediction
  • FIG. 9 illustrates an example of generating a prediction block through bidirectional (ie, L0 and L1 directions) prediction.
  • a prediction block of the current block is generated using one piece of motion information.
  • the motion information may include an L0 motion vector, an L0 reference picture index, and prediction direction information covering the L0 direction.
  • a prediction block is generated using two pieces of motion information. For example, a reference block in the L0 direction specified based on motion information (L0 motion information) in the L0 direction is set as an L0 prediction block, and an L1 direction specified based on the motion information (L1 motion information) in the L1 direction.
  • a reference block of can generate an L1 prediction block.
  • a prediction block of the current block may be generated by performing a weighted sum of the L0 prediction block and the L1 prediction block.
  • the L0 reference picture exists in the previous direction of the current picture (ie, the POC value is smaller than that of the current picture), and the L1 reference picture exists in the direction after the current picture (ie, the current picture). POC value is greater than that of the picture).
  • the L0 reference picture may exist in a later direction of the current picture, or the L1 reference picture may exist in a previous direction of the current picture.
  • both the L0 reference picture and the L1 reference picture may exist in a direction before the current picture, or both may exist in a direction after the current picture.
  • bidirectional prediction may be performed using an L0 reference picture existing in a later direction of the current picture and an L1 reference picture existing in a previous direction of the current picture.
  • Motion information of a block on which inter prediction is performed may be stored in a memory.
  • motion information may be stored in units of samples.
  • motion information of a block to which a specific sample belongs may be stored as motion information of a specific sample.
  • the stored motion information may be used to derive motion information of a neighboring block to be encoded/decoded later.
  • the encoder may signal information encoding a residual sample corresponding to a difference between a sample of the current block (ie, an original sample) and a prediction sample and motion information necessary for generating a prediction block to the decoder.
  • the decoder may derive a difference sample by decoding information on the signaled difference value, and may generate a reconstructed sample by adding a prediction sample within a prediction block generated using motion information to the difference sample.
  • one of a plurality of inter prediction modes may be selected.
  • the plurality of inter prediction modes may include a motion information merging mode and a motion vector prediction mode.
  • the motion vector prediction mode is a mode in which a difference value between a motion vector and a predicted motion vector is encoded and signaled.
  • the motion vector prediction value may be derived based on motion information of neighboring blocks or neighboring samples adjacent to the current block.
  • the motion information merging mode is a mode in which motion information of a current block is set to be the same as motion information of a neighboring block.
  • motion information may be encoded/decoded using a motion information merging list.
  • the encoder generates a residual block by differentiating a prediction block from an original block. Then, it may be determined whether to perform transformation on residual values existing in the residual block, that is, residual samples. According to the determination, residual coefficients may be generated by performing quantization on residual samples on which transformation is not performed or transform coefficients generated as a result of transformation.
  • the residual coefficient may mean at least one of a quantized transform coefficient and a quantized residual sample, depending on whether a transform is applied.
  • the residual coefficient may also be referred to as a residual signal. Thereafter, encoding may be performed on each of the residual coefficients.
  • residual samples may be reconstructed through a reverse process of the encoder. Specifically, after acquiring residual coefficients, inverse quantization may be performed on the obtained residual coefficients. Thereafter, a residual sample may be obtained by performing an inverse transform on the inverse quantized residual coefficient or omitting the inverse transform. Coding of the residual coefficient may be performed based on one or more syntax elements.
  • a flag indicating whether a non-zero residual coefficient exists in the current block may be coded and signaled.
  • the position of the last non-zero residual coefficient in the scan order may be encoded.
  • a sub-block flag indicating whether a non-zero residual coefficient exists in the sub-block may be encoded in units of sub-blocks in the current block.
  • information on each residual coefficient may be additionally encoded according to a scanning order.
  • encoding of the subblock flag may be omitted for a subblock whose scan order is earlier than that of the subblock including the last non-zero residual coefficient. Since the sub-block does not include a non-zero residual coefficient, the value of the sub-block flag may be regarded as 0.
  • encoding of a subblock flag may be omitted. Since the sub-block necessarily includes a non-zero residual coefficient, the value of the sub-block flag may be regarded as 1.
  • encoding of location information of the last non-zero residual coefficient may be omitted.
  • sub-block flags may be encoded for all sub-blocks in the current block.
  • the last subblock necessarily includes a nonzero residual coefficient. Accordingly, for the last sub-block, encoding of the sub-block flag may be omitted, and the value of the sub-block flag may be considered to be 1.
  • Information indicating whether position information of the last non-zero coefficient has been coded may be additionally coded.
  • position information of the last non-zero coefficient When position information of the last non-zero coefficient is coded, the value of the information may be set to 1.
  • subblock flags may be coded starting from a subblock having a last non-zero coefficient.
  • the location information of the last non-zero coefficient is not coded, the value of the information may be set to 0.
  • subblock flags may be encoded starting with the first subblock in the scan order.
  • the information for encoding the residual coefficient may include at least one of a flag indicating whether the residual coefficient has a value other than 0, information indicating the size of the residual coefficient, and information indicating a sign of the residual coefficient.
  • Residual coefficients may be encoded according to a predetermined scan order.
  • the coding order of the residual coefficients may be different based on whether the transform is skipped in the current block. For example, when transform is not skipped in the current block, a residual coefficient positioned at a lower right corner in a subblock may be coded first, and a residual coefficient positioned at an upper left corner may be coded last. That is, a scan order among residual coefficients may be determined according to an inverse-diagonal scan, an inverse-horizontal scan, or an inverse-vertical scan.
  • the residual coefficient located at the upper left in the sub-block may be encoded first, and the residual coefficient located at the lower right may be encoded last. That is, a scan order among residual coefficients may be determined along a diagonal scan, a horizontal scan, or a vertical scan.
  • the scan order of residual coefficients may be determined according to an inverse-diagonal scan, an inverse-horizontal scan, or an inverse-vertical scan.
  • the scan order of the residual coefficients may be predefined in the encoder and decoder. Alternatively, information indicating a scan order of residual coefficients may be coded and signaled. Alternatively, the scan order may be determined based on at least one of the size and shape of the current block, an intra prediction mode, and whether a transform is skipped or a secondary transform is performed. For example, when transform is skipped for the current block, residual coefficients are encoded/decoded according to a diagonal direction (or anti-angle direction) scanning order, and when transform is not skipped for the current block, in an anti-angular direction ( or a diagonal direction), the residual coefficients may be encoded/decoded according to the scan order.
  • 10 is a flowchart illustrating a process of encoding a residual coefficient in an encoder.
  • a flag indicating whether the residual coefficient has a value other than 0, sig_coeff_flag may be encoded (S1010).
  • encoding can be performed by setting the value of the flag sig_coeff_flag to 0.
  • encoding can be performed by setting the value of the flag sig_coeff_flag to 1.
  • size information of the residual coefficient may be further encoded (S1020).
  • 11 is a flowchart illustrating a process of encoding magnitude information of a residual coefficient.
  • the absolute value of the residual coefficient may be encoded using at least one abs_level_gtx_flag[N].
  • N may be an integer greater than or equal to 0.
  • the flag abs_level_gtx_flag[N] may indicate whether the absolute value of the residual coefficient has a value greater than (2N+1).
  • the number of abs_level_gtx_flag[N] used to encode the absolute value of the residual coefficient may be determined based on whether a transform is skipped in the current block. For example, when transformation is not skipped in the current block, two abs_level_gtx_flag[N] (N is 0 to 1) may be used.
  • abs_level_gtx_flag[N] when transformation is skipped in the current block, three or more abs_level_gtx_flag[N] (eg, three, four, or five) may be used. In this embodiment, it is assumed that two abs_level_gtx_flag[N] are used.
  • a flag abs_level_gtx_flag[0] indicating whether the absolute value of the residual coefficient is greater than 1 may be encoded (S1110).
  • encoding can be performed by setting the value of the flag abs_level_gtx_flag[0] to 0.
  • encoding can be performed by setting the value of the flag abs_level_gtx_flag[0] to 1.
  • a flag par_level_flag indicating whether the absolute value of the residual coefficient is an even number or an odd number may be encoded (S1120). If the absolute value of the residual coefficient is an even number, encoding can be performed by setting the flag par_level_flag to 0. On the other hand, when the absolute value of the residual coefficient is an odd number, encoding can be performed by setting the flag par_level_flag to 1. Alternatively, conversely, when the absolute value of the residual coefficient is even, the flag par_level_flag may be set to 1, and when the absolute value of the residual coefficient is odd, the flag par_level_flag may be set to 0.
  • a flag abs_level_gtx_flag[1] indicating whether the absolute value of the residual coefficient is greater than 3 can be encoded (S1130).
  • the value of the flag abs_level_gtx_flag[1] may be set to 0.
  • the value of the flag abs_level_gtx_flag[1] can be set to 1.
  • abs_remainder representing the residual size may be encoded (S1140).
  • the syntax abs_remainder can be derived by shifting the value derived by differentiating 4 from the absolute value of the residual coefficient to the right by 1.
  • abs_level_gtx_flag[0] and abs_level_gtx_flag[1] flags shown in FIG. 11 abs_level_gtx_flag[N] such as abs_level_gtx_flag[2], abs_level_gtx_flag[3] or abs_level_gtx_flag[4] may be additionally encoded.
  • the abs_level_gtx_flag[N] flag can be additionally encoded/decoded only when the value of abs_level_gtx_flag[N-1] is 1.
  • abs_level_gtx_flag[N] may indicate whether the absolute value of the residual coefficient has a value greater than (2N+1).
  • abs_remainder can be derived by shifting the value derived by difference 2(N+1) from the absolute value of the residual coefficient to the right by 1.
  • the absolute value of the residual coefficient is encoded using sig_coeff_flag, abs_level_gtx_flag[0], par_level_flag, abs_level_gtx_flag[1], and abs_reminder.
  • the absolute value of the residual coefficient may be encoded as it is.
  • syntax dec_abs_level indicating an absolute value of a residual coefficient may be encoded. A method of selecting an encoding method of the absolute value of the residual coefficient will be described later.
  • a flag coeff_sign_flag indicating the sign of the residual coefficient may be encoded (S1030).
  • a value of 0 in the flag coeff_sign_flag indicates that the residual coefficient is positive.
  • the value of the flag coeff_sign_flag is 1, it indicates that the residual coefficient is a negative number.
  • FIG. 12 is a flowchart illustrating a process of decoding residual coefficients in a decoder.
  • the residual coefficients may be reconstructed based on a predetermined scan order.
  • a flag indicating whether the residual coefficient has a value other than 0, sig_coeff_flag can be decoded (S1210).
  • a value of 0 of the flag sig_coeff_flag indicates that the value of the residual coefficient is 0.
  • the value of the flag sig_coeff_flag is 1, it indicates that the value of the residual coefficient is not 0.
  • magnitude information of residual coefficients may be further decoded (S1220).
  • FIG. 13 is a diagram illustrating a decoding process of size information of a residual coefficient.
  • a flag abs_level_gtx_flag[0] indicating whether the absolute value of the residual coefficient is greater than 1 may be decoded (S1310).
  • the value of the flag abs_level_gtx_flag[0] being 0 indicates that the absolute value of the residual coefficient is 1.
  • the value of the flag abs_level_gtx_flag[0] is 1, it indicates that the absolute value of the residual coefficient is greater than 1.
  • a flag par_level_flag indicating whether the absolute value of the residual coefficient is an even number or an odd number can be decoded (S1320).
  • a value of the flag par_level_flag of 0 indicates that the absolute value of the residual coefficient is an even number
  • a value of the flag par_level_flag of 1 indicates that the absolute value of the residual coefficient is an odd number.
  • a flag abs_level_gtx_flag[1] indicating whether the absolute value of the residual coefficient is greater than 3 may be decoded (S1330).
  • a value of 0 for the flag abs_level_gtx_flag[1] indicates that the absolute value of the residual coefficient is less than 3.
  • the absolute value of the residual coefficient may be determined to be 2 or 3 according to the value of the flag par_level_flag.
  • a value of 1 for the flag abs_level_gtx_flag[1] indicates that the absolute value of the residual coefficient is greater than 3.
  • abs_reminder indicating the residual size can be decoded (S1340).
  • the absolute value of the residual coefficient can be derived by adding 3 or 4 to the value derived by shifting the value indicated by the syntax abs_reminder to the left by 1.
  • abs_level_gtx_flag[N] such as abs_level_gtx_flag[2], abs_level_gtx_flag[3] or abs_level_gtx_flag[4] may be additionally decoded.
  • abs_level_gtx_flag[N] when the value of abs_level_gtx_flag[N] is 1, abs_level_gtx_flag[N+1] may be additionally decoded.
  • abs_level_gtx_flag[N] may indicate whether the absolute value of the residual coefficient has a value greater than (2N+1).
  • abs_reminder may be set to a value derived by shifting the value derived by difference 2(N+1) from the absolute value of the residual coefficient to the right by 1.
  • the absolute value of the residual coefficient is decoded using sig_coeff_flag, abs_level_gtx_flag[0], par_level_flag, abs_level_gtx_flag[1], and abs_reminder.
  • the absolute value of the residual coefficient may be decoded as it is.
  • syntax dec_abs_level indicating an absolute value of a residual coefficient may be decoded. A method of selecting a decoding method of the absolute value of the residual coefficient will be described later.
  • a flag coeff_sign_flag indicating a sign of the residual coefficient may be decoded (S1230).
  • a value of 0 in the flag coeff_sign_flag indicates that the residual coefficient is positive.
  • the value of the flag coeff_sign_flag is 1, it indicates that the residual coefficient is a negative number.
  • the residual coefficient may be encoded by at least one syntax. Residual coefficients may be changed into a plurality of bins through a binarization process of syntax(s), and the changed bins may be encoded through entropy coding.
  • Entropy encoding can be divided into encoding using context information and encoding without using context information.
  • the context represents the probability that the value of the bin is 0 or 1.
  • the encoding/decoding method using context information may be referred to as context coding
  • the encoding/decryption method without using context information may be referred to as bypass coding.
  • the number of encoded bins may be limited using context information.
  • a threshold value may be set.
  • the threshold may also be called CCB (Coded Context Bin).
  • CCB Coded Context Bin
  • encoding is performed using context information for a bin whose count value is smaller than the threshold value. When the count value is equal to or exceeds the threshold, encoding using context information may not be used any more.
  • a threshold value may be adaptively determined in the copy/decrypter.
  • the threshold may include the size and shape of the current block, the number of non-zero residual coefficients in the current block, whether the transform is skipped in the current block, the type of transform kernel applied to the current block, and quantization applied to the current block. It may be determined based on at least one of a color component (eg, Y, Cb, Cr), a quantization parameter, or a bit depth of a current block.
  • the threshold value may be determined based on the number of non-zero residual coefficients in the current block. Specifically, a value obtained by multiplying the number of non-zero residual coefficients in the current block by a real number or by adding or subtracting an offset may be set as the threshold value.
  • the threshold may be determined based on the number of samples included in the current block. Specifically, a value obtained by multiplying the number of samples in the current block by a real number or by adding or subtracting an offset may be set as the threshold value.
  • the threshold value may be determined based on at least one of the size or shape of the current block.
  • at least one threshold value candidate may be predefined for each block size and/or shape.
  • a threshold value candidate of the current block may be selected from at least one threshold value candidate corresponding to the size and/or shape of the current block.
  • index information for specifying one of the plurality of threshold candidates may be additionally encoded/decoded.
  • the threshold value may be determined based on at least one of whether a transform skip is applied, a transform kernel applied to the current block, or a quantization parameter.
  • information indicating a threshold value may be signaled through a bitstream.
  • the information may be coded through an upper header such as a sequence, picture header, or slice header.
  • the threshold may be fixed in the encoder/decoder.
  • the number of gt_N_flags, or the number of bins encoded/decoded using context information i.e., threshold value
  • At least one may be different.
  • a transform is applied to the current block (ie, when the transform is not skipped)
  • encoding/decoding the residual coefficient may be referred to as a residual coding (RC) scheme.
  • encoding/decoding residual coefficients when no transform is applied to the current block ie, when the transform is skipped
  • TSRC transform skip residual coding
  • FIG. 14 shows an example in which different identifiers are assigned to respective residual coefficients in a 4x4 block.
  • FIG. 15 shows a coding order of syntax elements for each residual coefficient shown in FIG. 14 .
  • threshold value the maximum number of bins encoded/decrypted using context information
  • the residual coefficients may be encoded/decoded along the anti-angular scan direction from the lower right residual coefficient to the upper left residual coefficient in the sub-block.
  • C 15 denotes a residual coefficient positioned at the lower right of a subblock
  • C 0 denotes a residual coefficient positioned at an upper left end of a subblock.
  • arrows of thin solid lines represent bins encoded/decoded using context information
  • arrows of thick solid lines represent bins encoded/decoded without using context information.
  • connection line between the arrows indicates the order of encoding/decoding of each syntax.
  • Table 1 defines syntaxes used to encode/decode residual coefficients under the RC method by formula.
  • Table 3 shows the process of restoring residual coefficients in the decoder.
  • the variable TmpC N represents a temporary restoration coefficient in a state in which the value of abs_remaiinder is not reflected.
  • the temporary restoration coefficient TmpC N may be set as an absolute value of the residual coefficient.
  • the temporary restoration coefficient TmpC N is a value derived by abs_remainder (specifically, a value derived by shifting abs_remainder to the left by 1)
  • the absolute value of the residual coefficient can be derived by adding .
  • the value of the variable TmpC 15 for the residual coefficient C 15 is 5 (specifically, 1+1+1+(1 ⁇ 1)).
  • for the residual coefficient C 15 can be derived as 21 by adding the temporary residual coefficient TmpC 15 (ie 5) to the value derived by steepening abs_remainder to the left by 1 (ie 16). Thereafter, the value of the residual coefficient C 15 may be finally restored to -21 through the value of coeff_sign_flag.
  • a pass indicates an encoding order and a decoding order.
  • the decoder may decode all the syntaxes belonging to the first pass and then decode the syntaxes belonging to the second pass.
  • the syntaxes belonging to the 3rd pass may be decoded.
  • the 2-2 path represents the alternate paths of 1 path, 2-1 path and 3 path.
  • the absolute value of the residual coefficient may be coded through 1 pass and 2-1 pass.
  • the absolute value of the residual coefficient may be coded through 2-2 passes.
  • the residual coefficient C 5 that is coded/decoded without using context information can be coded/decoded using syntax elements belonging to the 2-2 pass and the 3 pass.
  • sig_coeff_flag is set to 1.
  • abs_level_gtx_flag[0] additionally encodes/decodes.
  • the absolute value of the residual coefficient is greater than 1
  • abs_level_gtx_flag[0] is set to 1
  • par_level_flag and abs_level_gtx_flag[1] may be additionally encoded/decoded. Since the absolute value of the residual coefficient C 15 is 21, abs_level_gtx_flag[0] for C 15 is set to 1, and par_level_flag and abs_level_gtx_flag[1] are additionally encoded/decoded for C 15 .
  • abs_level_gtx_flag[1] is set to 1
  • abs_level_gtx_flag[1] is 1, derived by shifting the difference value of 4 from the absolute value of the residual coefficient to the right by 1
  • abs_remainder may be additionally encoded/decoded. Since the absolute value of the residual coefficient C 15 is 21, abs_level_gtx_flag[1] is set to 1, and abs_remainder is additionally encoded/decoded.
  • the sign of the residual coefficient can be coded/decoded using coeff_sign_flag indicating the sign of the residual coefficient C 15 .
  • syntax dec_abs_level representing absolute values of residual coefficients can be encoded/decoded without encoding/decoding the above-listed syntax elements. For example, for C 5 , only dec_abs_level representing the absolute value of C 5 and coeff_sign_flag representing the sign of C 5 can be encoded/decoded.
  • the syntax coeff_sign_flag indicating the sign of the residual coefficient always does not use context information regardless of whether the number of bins encoded/decoded using context information exceeds a threshold value. It is copied/decrypted.
  • a problem of degrading encoding/decoding efficiency for the entire image may occur.
  • encoding/decoding codes for all residual coefficients results in an increase in the number of signaling bits. Accordingly, in the present disclosure, instead of explicitly encoding and signaling the sign of the residual coefficient, a method of predicting the sign of the residual value and encoding information indicating whether the sign matches the predicted sign using context information is provided. Suggest.
  • 16 and 17 are flowcharts of a method of predicting a sign of a residual coefficient according to an embodiment of the present disclosure.
  • FIG. 16 shows the operation of the encoder
  • FIG. 17 shows the operation of the decoder.
  • the encoder may determine at least one of the number or positions of residual coefficients for predicting a code.
  • code prediction information for specifying at least one of the number or positions of residual coefficients to which sign prediction is applied may be coded and signaled through a bitstream.
  • Code prediction information may be signaled through an upper header.
  • An upper header may include at least one of a sequence parameter set, a picture parameter set, and a slice header.
  • code prediction information may be signaled in units of blocks. For example, code prediction information may be signaled for each coding tree block, coding block, or transform block.
  • At least one of the number or location of residual coefficients to predict a sign based on at least one of a ratio of coefficients, a number of non-zero residual coefficients, a transform core applied to the current block, or whether a secondary transform is applied to the current block. can be adaptively determined.
  • the encoding mode may include inter prediction and inter prediction.
  • the threshold value may be a natural number such as 2, 3, or 4.
  • At least one of the number or positions of residual coefficients for predicting signs may be fixed.
  • sign prediction may always be used for the last non-zero residual coefficient in the current block.
  • sign prediction may be applied to consecutive N residual coefficients in the scan order, starting from the last non-zero residual coefficient in the current block.
  • N may be a natural number such as 1, 2, 3, or 4.
  • sign prediction may always be used for residual coefficients that are low-frequency components in the current block, eg, DC components.
  • sign prediction may be applied to residual coefficients that are DC components and N residual coefficients having a lower scan order than the DC component in scan order.
  • code prediction may be performed on four residual coefficients belonging to the upper left 2x2 subblock of the current block or two residual coefficients belonging to the upper left 1x2 or 2x1 subblock of the current block.
  • whether to apply sign prediction to the current residual coefficient may be determined by comparing an absolute value of the current residual coefficient with a predetermined threshold value.
  • the threshold may have a value predefined in the encoder and decoder.
  • the threshold may be set in units of blocks. In this case, information about the threshold may be signaled through a bitstream.
  • the threshold may be adaptively determined based on at least one of a size of the current block, an encoding mode of the current block, an intra prediction mode of the current block, and a quantization parameter of the current block.
  • Sign prediction may be performed on residual coefficients having an absolute value lower than a threshold value only when sign prediction on residual coefficients is not performed for a predetermined number of times.
  • residual coefficients for which sign prediction is performed may be selected by comparing absolute values of each of the residual coefficients. For example, N residual coefficients having a large absolute value may be set as code prediction targets. For example, when the preset number is two, sign prediction may be performed on two residual coefficients having the largest absolute value among the residual coefficients.
  • a reconstructed block for each code combination may be generated by applying each of applicable code combinations to at least one residual coefficient that is a code prediction target (S1610 and S1710).
  • FIG. 18 illustrates an example in which a plurality of reconstruction blocks are generated by applying different code combinations to residual coefficients.
  • the four sign combinations applicable to the residual coefficient C0 and the residual coefficient C8 are, respectively, (+, +), (+, -), (-, +) and (-, -).
  • a reconstruction block may be generated by applying each code combination.
  • a reconstructed block may be derived by adding a residual block and a prediction block.
  • the residual block may be obtained by performing inverse quantization and inverse transformation on the residual coefficients.
  • the inverse transform may be skipped to generate a residual block.
  • a reconstruction block 0 is generated based on a residual block obtained by applying a code combination (+, +), and a residual block obtained by applying a code combination (+, -). It is shown that restoration block 1 is generated based on .
  • reconstructed block 2 is generated based on the residual block obtained by applying the code combination (-, +), and reconstructed block 3 is generated based on the residual block obtained by applying the code combination (-, -). has been exemplified
  • a cost for each restoration block may be calculated (S1620 and S1720).
  • a sign prediction value of a residual coefficient to which sign prediction is applied may be set by comparing costs of each reconstructed block.
  • the cost of a reconstruction block may be calculated by considering a relationship between the reconstruction block and reconstruction samples around the reconstruction block.
  • 19 illustrates an example in which the cost of a restoration block is calculated.
  • R represents the reconstruction sample and r represents the residual sample.
  • a cost of a reconstruction block may be calculated using reconstruction samples positioned adjacent to a specific boundary of the reconstruction block.
  • the specific boundary may include at least one of an upper boundary or a left boundary of the reconstruction block.
  • a horizontal cost of a restored block may be calculated using reconstructed samples adjacent to an upper boundary of the reconstructed block.
  • a vertical cost of a restored block may be calculated using reconstructed samples adjacent to the left boundary of the reconstructed block.
  • the sum of the horizontal cost and the vertical cost may be set as the cost of the restoration block. Equation 2 shows a process for calculating the cost of a restoration block.
  • cost1 represents a horizontal cost generated based on residual samples and prediction samples adjacent to the left boundary of the reconstruction block
  • cost2 represents residual samples and prediction samples adjacent to the upper boundary of the reconstruction block.
  • cost represents the cost of the residual block.
  • R represents a reconstruction sample around the reconstruction block.
  • P denotes a predicted sample of a reconstructed sample in a reconstructed block
  • r denotes a residual sample value of the reconstructed sample. Since a reconstructed block is derived by adding a residual block and a prediction block, as in the example of Equation 2, it may be understood that the cost of the reconstructed block is calculated using the residual block and the prediction block.
  • Equation 2 may be simplified as in Equation 3 below.
  • the horizontal cost cost1 may be derived as the sum of horizontal gradients for reconstructed samples adjacent to the left boundary of the residual block.
  • the amount of change in the horizontal direction is the reconstructed sample R(-2 , y)
  • the predicted sample P(0, y) for the reconstructed sample and the residual sample r(0, y) represent the difference values.
  • the vertical cost cost1 may be derived as the sum of vertical gradients for reconstructed samples adjacent to the upper boundary of the reconstructed block.
  • the amount of change in the vertical direction is twice the value of the reconstructed sample R(x, -1) adjacent to the upper boundary of the reconstructed block, and the reconstructed sample R(x, -2), the predicted sample P(x, 0) and the residual sample r(x, 0) for the reconstructed sample are differential values.
  • the horizontal direction cost cost1 may be set as the cost of a restoration block, or the vertical direction cost cost2 may be set as the cost of a restoration block.
  • a horizontal cost or a vertical cost may be set as the cost of the reconstructed block according to the direction of the intra prediction mode.
  • the directional intra prediction modes may be classified into an upper region intra prediction mode and a left region intra prediction mode.
  • the upper region intra prediction mode represents an intra prediction mode whose index is equal to or greater than the diagonal intra prediction mode
  • the left region intra prediction mode represents an intra prediction mode whose index is smaller than the diagonal intra prediction mode.
  • a vertical cost derived using reconstructed samples adjacent to an upper boundary of the reconstructed block may be set as the cost of the reconstructed block.
  • the horizontal cost derived using reconstructed samples adjacent to the left boundary of the reconstructed block may be set as the cost of the reconstructed block.
  • the intra-prediction mode of the current block is a non-directional mode, for example, a planar mode or a DC mode
  • the sum of the horizontal cost and the vertical cost may be set as the cost of the reconstruction block, as shown in Equation 2.
  • the sum of the horizontal cost and the vertical cost may be set as the cost of the reconstructed block.
  • Equation 2 it is illustrated that a horizontal cost is calculated using two reconstructed samples belonging to the same row as the reconstructed sample, and a vertical cost is calculated using two reconstructed samples belonging to the same column as the reconstructed sample. That is, it has been exemplified that the horizontal cost and the vertical cost are calculated using reconstructed samples belonging to two reference sample lines around the reconstructed block.
  • a horizontal cost and/or a vertical cost may be calculated using a smaller number of reference sample lines than in the above example.
  • a horizontal cost and/or a vertical cost may be calculated using reconstructed samples belonging to one reference sample line adjacent to a boundary of a residual block.
  • the vertical cost and horizontal cost of the current block can be calculated as in Equation 4 below.
  • a horizontal cost and/or a vertical cost may be calculated using more than two reference sample lines.
  • the horizontal cost and/or the vertical cost may be calculated.
  • the position of the reconstructed sample may be adaptively determined according to the encoding mode and/or intra prediction mode applied to the current block.
  • the intra-prediction mode of the current block is a non-directional mode, for example, a planar mode or a DC mode, as in Equation 2, the horizontal direction cost is calculated using at least one reconstructed sample belonging to the same row as the reconstructed sample. and a vertical cost may be calculated using at least one reconstruction sample belonging to the same column as the reconstruction sample.
  • the intra prediction mode of the current block is a directional prediction mode
  • at least one reconstructed sample may be selected according to the directionality of the intra prediction mode.
  • 20 illustrates an example in which reconstructed samples are selected according to the directionality of an intra prediction mode.
  • the intra prediction mode of the current block is an intra prediction mode in the upper right direction.
  • a reconstructed sample placed in the upper right direction of the reconstructed sample may be used instead of a reconstructed sample adjacent to the reconstructed sample in the vertical direction.
  • the fractional position sample may be generated by interpolating the reconstructed samples neighboring the fractional position, and a vertical gradient may be calculated using the generated fractional position sample.
  • the vertical gradient may be calculated using the integer position reconstructed sample closest to the fractional position instead of using the interpolated sample.
  • the cost of the reconstruction block may be calculated.
  • 21 is a diagram for explaining an example in which a cost of a restoration block is calculated based on template matching.
  • An area around the current block may be set as the current template, and a reference template most similar to the current template in the reference picture may be searched for.
  • a reference template is determined, a reference block is set based on the reference template. Then, based on the difference between the restored block and the reference block, the cost of the restored block is calculated. For example, a sum of absolute differences (SAD) of differences between reconstructed samples in a reconstructed block and reconstructed samples in a reference block may be set as a cost of a reconstructed block.
  • SAD sum of absolute differences
  • the cost of the reconstruction block may be calculated using only reconstruction samples located at the boundary of the reconstruction block. For example, reconstructed samples located on the left boundary of the reference block and reconstructed samples located on the upper boundary of the reference block are obtained from the reconstructed samples located on the left boundary of the reconstruction block and the reconstructed samples located on the upper boundary of the reconstruction block. Differentially, the cost of the reconstruction block can be calculated.
  • the encoder may set, as a sign predictive value for each residual coefficient, a coded combination used in a reconstruction block in which an actual sign of each of the residual coefficients to which sign prediction is applied has the lowest cost.
  • the sign prediction information may be coded for each of the residual coefficients to which sign prediction is applied. Also, the information may be a 1-bit flag.
  • the first residual coefficient when sign prediction is applied to two residual coefficients, when a sign of a first residual coefficient used to obtain a reconstructed block having the lowest cost coincides with a sign of an actual first residual coefficient, the first residual coefficient
  • the sign prediction information for the coefficient may be set to true, otherwise, the sign prediction information for the first residual coefficient may be set to false.
  • the sign of the second residual coefficient is the same as the above-described method of encoding the first residual coefficient.
  • the decoder may determine the sign of the residual coefficient based on the cost of each of the plurality of reconstruction blocks and sign prediction information of the residual coefficient to which sign prediction is applied (S1730).
  • the decoder may obtain a residual block by performing inverse quantization and/or inverse transformation on the residual coefficients, and obtain a reconstructed block based on the obtained residual block.
  • a restoration block having the lowest cost among the four restoration blocks may be selected as the restoration block of the current block.
  • the code prediction information for the first residual coefficient among the two residual coefficients indicates that the predicted code matches the actual code, but the code prediction information for the second residual coefficient indicates that the predicted code does not match the actual code.
  • the sign of the first residual coefficient may be set to be the same as the predicted sign, while the second residual coefficient may be set to a sign opposite to the predicted sign.
  • the decoder may obtain a residual block by performing inverse quantization and/or inverse transformation on the residual coefficients, and obtain a reconstructed block based on the residual block. Alternatively, a reconstructed block having the lowest cost and a sign of the first residual coefficient identical to each other but not a sign of the second residual coefficient may be selected as the reconstructed block of the current block.
  • the sign of each of the two residual coefficients is different from the predicted sign. It can be set in reverse.
  • the decoder may obtain a residual block by performing inverse quantization and/or inverse transformation on the residual coefficients, and obtain a reconstructed block based on the residual block. Alternatively, a reconstructed block having the lowest cost and signs of the first residual coefficient and the second residual coefficient different from each other may be selected as the reconstructed block of the current block.
  • the reconstruction block with the lowest cost is set to the predicted sign of the obtained residual coefficient, while the final sign of the residual coefficient is determined based on the predicted sign and explicitly signaled sign prediction information.
  • sign prediction information may be explicitly coded and signaled for residual residual coefficients other than residual coefficients for which sign prediction is performed.
  • sign prediction information may be explicitly coded/decoded instead of code information explicitly coded/decoded.
  • code prediction information may be coded/decoded based on probability information.
  • the information may be entropy-encoded by assigning a high probability to a case where the predicted code matches the actual code and assigning a low probability to the opposite case.
  • the probability may be adaptively set according to the position of a residual coefficient that is a code prediction target. For example, a higher probability may be given that a predicted code combination coincides with an actual code combination for a residual coefficient that is a DC component than for a residual coefficient that is an AC component.
  • encoding/decoding efficiency can be improved by using code prediction information encoded through context coding based on context information instead of code information coded through bypass coding in which context information is not used for residual coefficients. there is.
  • whether or not sign prediction for the residual coefficient is allowed depends on the size of the current block, the quantization parameter of the current block, the coding mode of the current block, the intra prediction mode of the current block, whether transform is skipped in the current block, It may be determined based on at least one of the conversion cores.
  • sign prediction on residual coefficients may be allowed only when transform skip is not applied to the current block.
  • sign prediction of residual coefficients may be allowed only when transform skip is applied to the current block.
  • code prediction information may be encoded and signaled instead of code information.
  • the reconstruction block can be generated in a simplified way.
  • a reconstruction block may be obtained in a simplified way.
  • residual values may be restored by performing inverse transformation on one code combination (hereinafter, referred to as a first code combination) among the four relief combinations.
  • a first code combination a code combination
  • the residual value can obtain them.
  • the residual value at a specific position among the residual values for the second code combination is derived by adding or subtracting an offset to the residual value at the specific position among the residual values obtained for the first code combination, and Residual values may be derived identically to residual values of the first code combination.
  • At least one of the size/sign of the offset or the location where the offset is added/subtracted may be different for each code combination.
  • inverse transformation is normally performed only for (+,+) combinations among the code combinations in FIG. 4, and for other (+, -), (-, +), (-, -) combinations, a simplified method Residual values can be restored with
  • the residual value may be normally restored by performing inverse transformation on the corresponding combination.
  • an optimal code combination may be directly determined as a sign of a residual coefficient. That is, the decoder can implicitly determine the predicted sign as the sign of the residual coefficient. In this case, a 1-bit flag indicating whether to set the optimal code combination as the sign of the residual coefficients may be separately coded and signaled.
  • 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.
  • the present disclosure may be applied to an electronic device capable of encoding or encoding an image.

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) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 개시는 적어도 하나의 잔차 계수에 대한 부호 정보의 부/복호화를 생략하는 방법 및 이를 수행하기 위한 장치를 제공하는 것을 목적으로 한다.
본 개시는 부호 정보의 부/복호화가 생략된 잔차 계수의 부호를 예측하는 방법 및 이를 수행하기 위한 장치를 제공하는 것을 목적으로 한다.
본 개시는 현재 블록 주변의 복원 샘플들을 이용하여, 최적의 복원 블록을 유도하는 방법 및 이를 수행하기 위한 장치를 제공하는 것을 목적으로 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 영상 복호화 방법은, 적어도 하나의 잔차 계수에 대한 부호 예측이 적용되는지 여부를 결정하는 단계, 상기 부호 예측이 적용되는 것으로 결정되는 경우, 상기 적어도 하나의 잔차 계수에 적용 가능한 부호 조합들 각각에 대한 복원 블록을 유도하는 단계, 복수의 복원 블록들 각각의 비용을 산출하는 단계, 및 상기 부호 예측이 적용되는 상기 적어도 하나의 잔차 계수에 대한 부호 예측 정보와 상기 복수의 복원 블록들 각각의 비용을 기초로, 복원 블록을 획득하는 단계를 포함한다.
본 개시에 따른 영상 부호화 방법은, 적어도 하나의 잔차 계수에 적용 가능한 부호 조합들 각각에 대한 복원 블록을 유도하는 단계, 복수의 복원 블록들 각각의 비용을 산출하는 단계, 및 상기 적어도 하나의 잔차 계수에 대해, 상기 복수의 복원 블록들 중 비용이 가장 낮은 복원 블록을 유도하는데 이용된 상기 적어도 하나의 잔차 계수의 부호가 실제 부호와 조합과 일치하는지 여부를 가리키는 부호 예측 정보를 부호화하는 단계를 포함한다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 상기 부호 예측이 적용되는 경우, 상기 적어도 하나의 잔차 계수를 제외한 잔여 잔차 계수들에 대해서는 부호 정보가 명시적으로 시그날링되는 한편, 상기 적어도 하나의 잔차 계수에 대해서는 부호 정보의 시그날링이 생략될 수 있다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 상기 적어도 하나의 잔차 계수는, DC 성분인 잔차 계수를 포함할 수 있다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 상기 적어도 하나의 잔차 계수는, 마지막 0이 아닌 위치의 잔차 계수를 포함할 수 있다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 복원 블록의 비용은, 상기 복원 블록의 상단 경계에 위치하는 상단 복원 샘플들을 기초로 획득되는 수직 방향 비용 및 상기 복원 블록의 좌측 경계에 위치하는 복원 샘플들을 기초로 획득되는 수평 방향 비용 중 적어도 하나를 기초로 획득되는 것일 수 있다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 상기 현재 블록의 인트라 예측 모드가 비방향성 인트라 예측 모드인 경우, 상기 복원 블록의 상기 비용은, 상기 수평 방향 비용 및 상기 수직 방향 비용의 합으로 결정될 수 있다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 상기 현재 블록의 인트라 예측 모드가 방향성 예측 모드인 경우, 상기 복원 블록의 상기 비용은 상기 수평 방향 비용 또는 상기 수직 방향 비용과 동일하게 결정될 수 있다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 상기 현재 블록에 상기 부호 예측을 적용하는 것이 허용되는지 여부는, 상기 현재 블록의 크기, 양자화 파라미터, 부호화 모드, 인트라 예측 모드 또는 상기 현재 블록에 변환 스킵이 적용되는지 여부 중 적어도 하나를 기초로 결정될 수 있다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 상기 부호 예측 정보는, 상기 복수의 복원 블록들 중 비용이 가장 작은 복원 블록을 유도하는데 이용된 잔차 계수의 부호가 실제 부호와 일치하는지 여부를 나타낼 수 있다.
본 개시에 따른 영상 복호화/부호화 방법에 있어서, 상기 부호 예측 정보는 확률 정보를 기반으로 부호화되고, 상기 확률 정보는, 상기 적어도 하나의 잔차 계수의 위치를 기반으로 결정될 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 의하면, 적어도 하나의 잔차 계수에 대한 부호 정보의 부/복호화가 생략되어, 시그날링 오버헤드가 감소될 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 개시의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 기 정의된 인트라 예측 모드들을 도시한 것이다.
도 4는 플래너 모드 하에서 예측 샘플이 생성되는 예를 나타낸 것이다.
도 5는 DC 모드 하에서 예측 샘플이 생성되는 예를 나타낸 것이다.
도 6은 방향성 인트라 예측 모드 하에서 예측 샘플이 생성되는 예를 나타낸 것이다.
도 7은 움직임 추정이 수행되는 예를 나타낸다.
도 8 및 도 9는, 움직임 추정을 통해 생성된 움직임 정보를 기초로, 현재 블록의 예측 블록이 생성되는 예를 나타낸 것이다.
도 10은 부호화기에서 잔차 계수를 부호화하는 과정을 나타낸 흐름도이다.
도 11은 잔차 계수의 크기 정보의 부호화 과정을 나타낸 흐름도이다.
도 12는 복호화기에서 잔차 계수를 복호화하는 과정을 나타낸 흐름도이다.
도 13은 잔차 계수의 크기 정보의 복호화 과정을 나타낸 도면이다.
도 14 및 도 15는 잔차 계수가 부/복호화되는 예를 설명하기 위한 것이다.
도 16 및 도 17은 본 개시의 일 실시예에 따른, 잔차 계수의 부호를 예측하는 방법의 흐름도이다.
도 18은 잔차 계수들에 상이한 부호 조합들이 적용되어, 복수의 복원 블록들이 생성되는 예를 나타낸 것이다.
도 19는 복원 블록의 비용이 산출되는 예를 나타낸 것이다.
도 20은 인트라 예측 모드의 방향성에 의해 복원 샘플이 선택되는 예를 도시한 것이다.
도 21은 템플릿 매칭을 기반으로, 복원 블록의 비용이 산출되는 예를 설명하기 위한 도면이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제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은 기 정의된 인트라 예측 모드들을 도시한 것이다.
부호화기 및 복호화기에 기 정의되어 있는 인트라 예측 모드들은, 비 방향성 인트라 예측 모드들 및 방향성 예측 모드들을 포함할 수 있다. 일 예로, 도 3에 도시된 예에서, 0번 모드는, 비 방향성 모드인 플래너(Planar) 모드, 1번 모드는 비 방향성 모드인 DC 모드를 나타낸다. 아울러, 도 3에 도시된 예에서는, 65개의 방향성 인트라 예측 모드들 (2-66)이 예시되었다.
도시된 것보다, 더 많은 개수의 인트라 예측 모드들 또는 더 적은 개수의 인트라 예측 모드들이 부호화기 및 복호화기에 기 정의되어 있을 수 있다.
기 정의된 인트라 예측 모드들 중 하나를 선택하고, 선택된 인트라 예측 모드에 기초하여 현재 블록에 대한 예측 블록을 획득할 수 있다. 이때, 예측 블록 내 예측 샘플을 생성하는데 이용되는 참조 샘플들의 개수 및 위치는 선택된 인트라 예측 모드에 따라 적응적으로 결정될 수 있다.
도 4는 플래너 모드 하에서 예측 샘플이 생성되는 예를 나타낸 것이다.
도 4에 도시된 예에서, 플래너 모드 하에서 예측 블록 생성 시, 현재 블록의 우상단 코너에 인접하는 참조 샘플 T 및 좌하단 코너에 인접하는 참조 샘플 L이 이용될 수 있다.
P1은 수평 방향의 예측 샘플을 나타내고, P2는 수직 방향의 예측 샘플을 나타낸다. P1은, P1과 동일한 y 좌표를 갖는 참조 샘플(즉, P1의 수평 방향에 위치하는 참조 샘플) 및 참조 샘플 T를 선형 보간함으로써 생성될 수 있다. P2는, P2와 동일한 x 좌표를 갖는 참조 샘플(즉, P2의 수직 방향에 위치하는 참조 샘플) 및 참조 샘플 L을 선형 보간함으로써 생성될 수 있다.
이후, 수평 방향 예측 샘플 P1 및 수직 방향 예측 샘플 P2의 가중합 연산을 통해, 최종 예측 샘플을 획득할 수 있다. 수학식 1은 최종 예측 샘플이 생성되는 예를 나타낸 것이다.
Figure PCTKR2022020616-appb-img-000001
상기 수학식 1에서, α는 수평 방향 예측 샘플 P1에 할당되는 가중치를 나타내고, β는 수직 방향 예측 샘플 P2에 할당되는 가중치를 나타낸다. 가중치 α 및 가중치 β는 현재 블록의 너비 및 높이를 기초로 결정될 수 있다. 현재 블록의 너비 및 높이에 따라, 가중치 α 및 가중치 β는 동일한 값을 가질 수도 있고 상이한 값을 가질 수도 있다. 일 예로, 블록의 한면이 다른 한면보다 더 긴 경우, 긴 면과 평행인 방향의 예측 샘플에 할당되는 가중치가 더 높은 값을 갖도록 설정할 수 있다. 또는, 위와 반대로, 긴 면과 평행인 방향의 예측 샘플에 할당되는 가중치가 더 작은 값을 갖도록 설정할 수도 있다.
도 5는 DC 모드 하에서 예측 샘플이 생성되는 예를 나타낸 것이다.
DC 모드 하에서, 현재 블록 주변 참조 샘플들의 평균 값을 계산할 수 있다. 도 5는 평균 값을 이용하는데 이용되는 참조 샘플들의 범위를 나타낸 것이다. 도 5에 도시된 예에서와 같이, 평균 값은 상단 참조 샘플들 및 좌측 참조 샘플들을 기초로 계산될 수 있다.
현재 블록의 형태에 따라, 상단 참조 샘플들만을 이용하여 평균 값을 계산하거나, 좌측 참조 샘플들만을 이용하여 평균 값을 계산할 수도 있다. 일 예로, 현재 블록의 너비가 높이보다 큰 경우, 또는 현재 블록의 너비와 높이 사이의 비율이 기 정의된 값 이상(또는, 이하)인 경우, 상단 참조 샘플들만을 이용하여 평균 값을 계산할 수 있다.
반면, 현재 블록의 너비가 높이보다 작은 경우, 또는 현재 블록의 너비와 높이 사이의 비율이 기 정의된 값보다 작은(또는, 큰) 경우, 좌측 참조 샘플들만을 이용하여 평균 값을 계산할 수 있다.
도 6은 방향성 인트라 예측 모드 하에서 예측 샘플이 생성되는 예를 나타낸 것이다.
현재 블록에 방향성 인트라 예측 모드가 적용되는 경우, 현재 블록 내 각 샘플 위치에서, 방향성 인트라 예측 모드의 각도에 따라, 참조 샘플이 놓인 방향으로 프로젝션(Projection)을 수행할 수 있다.
프로젝션된 위치에 참조 샘플이 존재하는 경우(즉, 프로젝션된 위치가 참조 샘플의 정수 위치인 경우), 해당 위치의 참조 샘플을 예측 샘플로 설정할 수 있다.
반면, 프로젝션된 위치에 참조 샘플이 존재하지 않는 경우(즉, 프로젝션된 위치가 참조 샘플의 분수 위치인 경우), 프로젝션된 위치 주변의 참조 샘플들을 보간하고, 보간된 값을 예측 샘플로 설정할 수 있다.
일 예로, 도 6에 도시된 예에서, 현재 블록 내 샘플 B의 위치에서, 방향성 인트라 예측 모드의 각도에 기반한 프로젝션을 수행할 경우, 프로젝션된 위치에 참조 샘플 R3이 존재한다. 이에 따라, 참조 샘플 R3가 샘플 B 위치에 대한 예측 샘플로 설정될 수 있다.
반면, 현재 블록 내 샘플 A의 위치에서, 방향성 인트라 예측 모드의 각도에 기반한 프로젝션을 수행할 경우, 프로젝션된 위치에 참조 샘플이 존재하지 않는다. 이 경우, 프로젝션된 위치 주변에 존재하는 정수 위치 참조 샘플들을 보간하고, 보간된 값을 샘플 A 위치에 대한 예측 샘플로 설정할 수 있다. 여기서, 정수 위치 참조 샘플들을 보간하여 생성된 값을 분수 위치 참조 샘플(도 6의 r) 이라 호칭할 수 있다.
현재 블록의 인트라 예측 모드에 대한 정보를 부호화하여 시그날링할 수 있다.
이를 위해, 현재 블록에 대해, 복수의 인트라 예측 모드 후보들을 포함하는 인트라 예측 모드 리스트를 생성할 수 있다. 여기서, 인트라 예측 모드 후보는, 현재 블록에 인접하는 이웃 블록의 인트라 예측 모드 또는 기 정의된 인트라 예측 모드를 기초로 유도될 수 있다.
상기 현재 블록의 인트라 예측 모드가 인트라 예측 모드 리스트에 포함된 복수의 인트라 예측 모드 후보들 중 하나와 동일한지 여부를 나타내는 플래그가 명시적으로 부호화되어 시그날링될 수 있다. 현재 블록의 인트라 예측 모드가 복수의 인트라 예측 모드 후보들 중 하나와 동일한 경우, 복수의 인트라 예측 모드 후보들 중 하나를 지시하는 인덱스 정보가 명시적으로 부호화되어 시그날링될 수 있다. 반면, 현재 블록의 인트라 예측 모드와 동일한 복수의 인트라 예측 모드 후보가 존재하지 않는 경우, 잔여 인트라 예측 모드들 중 현재 블록의 인트라 예측 모드를 지시하는 인덱스 정보(즉, 잔여 모드 정보)가 명시적으로 부호화되어 시그날링될 수 있다.
인트라 예측 모드 후보 대신, 인트라 예측 모드 예측 후보를 사용할 수도 있다. 이 경우, 인트라 예측 모드 예측 후보가 지시하는 값은, 현재 블록의 인트라 예측 모드의 예측값으로 설정할 수도 있다.
구체적으로, 현재 블록에 대해, 복수의 인트라 예측 모드 예측 후보들을 포함하는, 인트라 예측 모드 예측 리스트를 구성할 수 있다. 여기서, 인트라 예측 모드 예측 후보는, 현재 블록에 인접하는 이웃 블록의 인트라 예측 모드 또는 기 정의된 인트라 예측 모드를 기초로 유도될 수 있다.
이후, 복수의 인트라 예측 모드 예측 후보들 중 하나를 현재 블록의 인트라 예측 모드 예측값으로 설정할 수 있다. 인트라 예측 모드 예측값이 설정되면, 현재 블록의 인트라 예측 모드와, 인트라 예측 모드 예측값 사이의 차분을 유도할 수 있다. 이 경우, 복수의 인트라 예측 모드 예측 후보들 중 하나를 지시하는 인덱스 정보 및 인트라 예측 모드 차분값을 나타내는 정보가 명시적으로 부호화되어 시그날링될 수 있다.
현재 픽처의 부호화시, 픽처간 중복된 데이터는 인터 예측을 통해 제거될 수 있다. 인터 예측은, 블록 단위로 수행될 수 있다. 구체적으로, 현재 블록의 움직임 정보를 이용하여, 참조 픽처로부터 현재 블록의 예측 블록을 생성할 수 있다. 여기서, 움직임 정보는, 움직임 벡터, 참조 픽처 인덱스 및 예측 방향 중 적어도 하나를 포함할 수 있다.
현재 블록의 움직임 정보는, 움직임 추정(Motion Estimation)을 통해 생성될 수 있다.
도 7은 움직임 추정이 수행되는 예를 나타낸다.
도 7에서, 현재 픽처의 POC(Picture Order Count)는 T이고, 참조 픽처의 POC는, (T-1)인 것으로 가정하였다.
참조 픽처 내 현재 블록의 기준점과 동일한 위치로부터, 움직임 추정을 위한 탐색 범위를 설정할 수 있다. 여기서, 기준 점은, 현재 블록의 좌상단 샘플의 위치일 수 있다.
일 예로, 도 7에서는, 기준점을 중심으로, (w0+w01) 및 (h0+h1) 크기의 사각형이 탐색 범위로 설정되는 것으로 예시되었다. 위 예시에서, w0, w1, h0, 및 h1은 상호 동일한 값을 가질 수 있다. 또는, w0, w1, h0 및 h1 중 적어도 하나는 다른 하나의 상이한 값을 갖도록 설정될 수 있다. 또는, CTU(Coding Tree Unit) 경계, 슬라이스 경계, 타일 경계 또는 픽처 경계를 초과하지 않도록, w0, w1, h0 및 h1의 크기가 결정될 수도 있다.
탐색 범위 내, 현재 블록과 동일한 크기를 갖는 참조 블록들을 설정한 뒤, 각 참조 블록들에 대해 현재 블록과의 비용(Cost)를 측정할 수 있다. 비용은, 두 블록간 유사도를 이용하여 계산될 수 있다.
일 예로, 현재 블록 내 원본 샘플들과 참조 블록 내 원본 샘플들(또는 복원 샘플들) 간의 차분값들의 절대값 합을 기반으로, 비용을 계산할 수 있다. 절대값 합이 작을수록, 비용은 감소할 수 있다.
이후, 참조 블록들 각각의 비용을 비교한 뒤, 최적의 비용을 갖는 참조 블록을, 현재 블록의 예측 블록으로 설정할 수 있다.
그리고, 현재 블록과 참조 블록 간 거리를 움직임 벡터로 설정할 수 있다. 구체적으로, 현재 블록과 참조 블록 간의 x 좌표 차분 및 y 좌표 차분이 움직임 벡터로 설정될 수 있다.
나아가, 움직임 추정을 통해 특정된 참조 블록이 포함된 픽처의 인덱스를 참조 픽처 인덱스로 설정한다. 또한, 인터 예측 모드에 따라, 참조 픽처들 중 하나를 지시하는 참조 픽처 인덱스를 부호화하여 시그날링할 수도 있다. 일 예로, 참조 픽처 리스트 상에 복수의 참조 픽처들이 존재하고, 복수 참조 픽처들 각각에 대해 움직임 추정이 수행된 경우, 상기 복수 참조 픽처들 중 현재 블록의 움직임 정보가 유도된 참조 픽처를 특정하기 위한 참조 픽처 인덱스가 명시적으로 부호화되어 복호화기로 시그날링될 수 있다. 이때, 참조 픽처 리스트에 하나의 참조 픽처만이 포함된 경우에는 상기 참조 픽처 인덱스의 부/복호화가 생략될 수 있다.
또한, 참조 픽처가 L0 참조 픽처 리스트에 속하는지 또는 L1 참조 픽처 리스트에 속하는지 여부에 기반하여, 예측 방향을 설정할 수 있다.
또한, L0 방향 및 L1 방향 각각에 대해 움직임 추정이 수행될 수 있다. L0 방향 및 L1방향 모두에 대해 예측이 수행된 경우, L0 방향의 움직임 정보 및 L1 방향의 움직임 정보가 각각 생성될 수 있다.
도 8 및 도 9는, 움직임 추정을 통해 생성된 움직임 정보를 기초로, 현재 블록의 예측 블록이 생성되는 예를 나타낸 것이다.
도 8은 단방향(즉, L0 방향) 예측으로 예측 블록을 생성하는 예를 나타낸 것이고, 도 9는 양방향(즉, L0 및 L1 방향) 예측으로 예측 블록을 생성하는 예를 나타낸 것이다.
단방향 예측의 경우, 하나의 움직임 정보를 이용하여 현재 블록의 예측 블록을 생성한다. 일 예로, 상기 움직임 정보는 L0 움직임 벡터, L0 참조 픽처 인덱스 및 L0 방향을 가리지는 예측 방향 정보를 포함할 수 있다.
양방향 예측의 경우, 두개의 움직임 정보를 이용하여 예측 블록을 생성한다. 일 예로, L0 방향에 대한 움직임 정보(L0 움직임 정보)를 기초로 특정된 L0 방향의 참조 블록을 L0 예측 블록으로 설정하고, L1 방향에 대한 움직임 정보(L1 움직임 정보)를 기초로 특정된 L1 방향의 참조 블록을 L1 예측 블록을 생성할 수 있다. 이후, L0 예측 블록 및 L1 예측 블록을 가중합하여, 현재 블록의 예측 블록을 생성할 수 있다.
도 7 내지 도 9에 도시된 예에서는, L0 참조 픽처는, 현재 픽처의 이전 방향(즉, 현재 픽처보다 POC값이 작음)에 존재하고, L1 참조 픽처는, 현재 픽처의 이후 방향(즉, 현재 픽처보다 POC 값이 큼)에 존재하는 것으로 예시하였다.
다만, 도시된 예와 달리, L0 참조 픽처가 현재 픽처의 이후 방향에 존재하거나, L1 참조 픽처가 현재 픽처의 이전 방향에 존재할 수 있다. 일 예로, L0 참조 픽처 및 L1 참조 픽처는 모두 현재 픽처의 이전 방향에 존재하거나, 또는 모두 현재 픽처의 이후 방향에 존재할 수 있다. 또는, 현재 픽처의 이후 방향에 존재하는 L0 참조 픽처 및 현재 픽처의 이전 방향에 존재하는 L1 참조 픽처를 이용하여 양방향 예측이 수행될 수도 있다.
인터 예측이 수행된 블록의 움직임 정보는 메모리에 저장될 수 있다. 이때, 움직임 정보는 샘플 단위로 저장될 수 있다. 구체적으로, 특정 샘플이 속하는 블록의 움직임 정보가, 특정 샘플의 움직임 정보로 저장될 수 있다. 저장된 움직임 정보는, 차후 부/복호화될 이웃 블록의 움직임 정보를 유도하는 것에 이용될 수 있다.
부호화기에서는, 현재 블록의 샘플(즉, 원본(Original) 샘플)과 예측 샘플 사이의 차분값에 해당하는 잔차 샘플을 부호화한 정보 및 예측 블록을 생성하는데 필요한 움직임 정보를 복호화기로 시그날링할 수 있다. 복호화기에서는, 시그날링된 차분값에 대한 정보를 복호화하여 차분 샘플을 유도하고, 상기 차분 샘플에 움직임 정보를 이용하여 생성된 예측 블록 내 예측 샘플을 더하여, 복원 샘플을 생성할 수 있다.
이때, 복호화기로 시그날링되는 움직임 정보를 효과적으로 압축하기 위해, 복수의 인터 예측 모드들 중 하나가 선택될 수 있다. 여기서, 복수의 인터 예측 모드들은, 움직임 정보 병합 모드 및 움직임 벡터 예측 모드가 포함될 수 있다.
움직임 벡터 예측 모드는, 움직임 벡터와 움직임 벡터 예측값 사이의 차분값을 부호화하여 시그날링하는 모드이다. 여기서, 움직임 벡터 예측값은, 현재 블록에 인접하는 주변 블록 또는 주변 샘플의 움직임 정보를 기초로 유도될 수 있다.
움직임 정보 병합 모드는, 현재 블록의 움직임 정보를 이웃 블록의 움직임 정보와 동일하게 설정하는 모드이다. 움직임 정보 병합 모드에서는, 움직임 정보 병합 리스트를 이용하여, 움직임 정보가 부/복호화될 수 있다.
부호화기에서는 원본 블록에서 예측 블록을 차분하여 잔차 블록을 생성한다. 이후, 잔차 블록에 존재하는 잔차 값들, 즉, 잔차 샘플들에 대해, 변환의 수행 여부를 결정할 수 있다. 상기 결정에 따라, 변환이 수행되지 않은 잔차 샘플들 또는 변환의 결과로 생성된 변환 계수들에 대해, 양자화를 수행하여 잔차 계수를 생성할 수 있다. 여기서, 잔차 계수는, 변환의 적용 여부에 따라, 양자화된 변환 계수 또는 양자화된 잔차 샘플 중 적어도 하나를 의미할 수 있다. 잔차 계수를 잔차(Residual) 신호라 호칭할 수도 있다. 이후, 잔차 계수들 각각에 대해 부호화를 수행할 수 있다.
복호화기에서는, 부호화기의 역과정을 통해 잔차 샘플을 복원할 수 있다. 구체적으로, 잔차 계수를 획득한 뒤, 획득된 잔차 계수에 역양자화를 수행할 수 있다. 이후, 역양자화된 잔차 계수에 역변환을 수행하거나, 역변환을 생략하여, 잔차 샘플을 획득할 수 있다. 잔차 계수에 대한 부호화는, 적어도 하나 이상의 신택스 요소들(Syntax elements)을 기반으로 수행될 수 있다.
먼저, 현재 블록 내 0이 아닌 잔차 계수가 존재하는지 여부를 나타내는 플래그가 부호화되어 시그날링될 수 있다. 현재 블록 내 0이 아닌 잔차 계수가 존재하는 경우, 스캔 순서 상 마지막 0이 아닌 잔차 계수의 위치를 부호화할 수 있다.
또한, 현재 블록 내 서브 블록 단위로, 서브 블록 내 0이 아닌 잔차 계수가 존재하는지 여부를 나타내는 서브 블록 플래그를 부호화할 수 있다. 서브 블록 내 0이 아닌 잔차 계수가 존재하는 경우, 스캔 순서에 따라, 각 잔차 계수에 대한 정보가 추가 부호화될 수 있다.
이때, 마지막 0이 아닌 잔차 계수를 포함하는 서브 블록보다 스캔 순번이 빠른 서브 블록에 대해서는, 서브 블록 플래그의 부호화가 생략될 수 있다. 상기 서브 블록에는, 0이 아닌 잔차 계수가 포함되지 않는 바, 서브 블록 플래그의 값이 0으로 간주될 수 있다.
또한, 마지막 0이 아닌 잔차 계수를 포함하는 서브 블록에 대해서는, 서브 블록 플래그의 부호화를 생략할 수도 있다. 상기 서브 블록에는 0이 아닌 잔차 계수가 반드시 포함되는 바, 서브 블록 플래그의 값이 1로 간주될 수 있다.
다른 예로, 마지막 0이 아닌 잔차 계수의 위치 정보의 부호화를 생략할 수 있다. 마지막 0이 아닌 잔차 계수의 위치 정보의 부호화가 생략되는 경우, 현재 블록 내 모든 서브 블록들에 대해 서브 블록 플래그가 부호화될 수 있다.
이때, 스캔 순번이 마지막 서브 블록을 제외한 잔여 서브 블록들에 0이 아닌 잔차 계수가 포함되지 않은 것으로 결정되는 경우, 마지막 서브 블록에는 0이 아닌 잔차 계수가 반드시 포함되는 것으로 이해될 수 있다. 이에 따라, 마지막 서브 블록에 대해서는 서브 블록 플래그의 부호화를 생략하고, 그 값이 1인 것으로 간주할 수 있다.
마지막 0이 아닌 계수의 위치 정보가 부호화었는지 여부를 나타내는 정보가 추가 부호화될 수도 있다. 마지막 0이 아닌 계수의 위치 정보가 부호화되는 경우, 상기 정보의 값은 1로 설정될 수 있다. 이 경우, 마지막 0이 아닌 계수가 존재하는 서브 블록부터 서브 블록 플래그가 부호화될 수 있다. 반면, 마지막 0이 아닌 계수의 위치 정보가 부호화되지 않는 경우, 상기 정보의 값은 0으로 설정될 수 있다. 이 경우, 스캔 순서가 첫번째인 서브 블록부터 서브 블록 플래그가 부호화될 수 있다.
현재 블록에 0이 아닌 잔차 계수가 존재하는 경우, 상기 현재 블록 내 첫번째 서브 블록에 대해서는, 0이 아닌 잔차 계수가 반드시 포함되는 것으로 가정할 수 있다. 이에 따라, 첫번째 서브 블록에 대해서는 0이 아닌 잔차 계수가 존재하는지 여부를 나타내는 서브 블록 플래그의 부호화를 생략할 수 있다.
잔차 계수를 부호화하기 위한 정보는, 잔차 계수가 0이 아닌 값을 갖는지 여부를 나타내는 플래그, 잔차 계수의 크기를 나타내는 정보 및 잔차 계수의 부호를 나타내는 정보 중 적어도 하나를 포함할 수 있다.
소정의 스캔 순서에 따라 잔차 계수들을 부호화할 수 있다. 이때, 현재 블록에 변환이 스킵되었는지 여부에 기초하여, 잔차 계수들의 부호화 순서가 상이할 수 있다. 일 예로, 현재 블록에 변환이 스킵되지 않은 경우, 서브 블록 내 우측 하단에 위치하는 잔차 계수가 첫번째로 부호화되고, 좌측 상단에 위치하는 잔차 계수가 마지막으로 부호화될 수 있다. 즉, 역-대각 스캔, 역-수평 스캔 또는 역-수직 스캔을 따라 잔차 계수들 간 스캔 순번이 결정될 수 있다. 반면, 현재 블록에 변환이 스킵된 경우, 서브 블록 내 좌측 상단에 위치하는 잔차 계수가 첫번째로 부호화되고, 우측 하단에 위치하는 잔차 계수가 마지막으로 부호화될 수 있다. 즉, 대각 스캔, 수평 스캔 또는 수직 스캔을 따라 잔차 계수들 간 스캔 순번이 결정될 수 있다.
또는, 현재 블록에 변환이 스킵된 경우에도, 역-대각 스캔, 역-수평 스캔 또는 역-수직 스캔을 따라 잔차 계수들 간 스캔 순번을 결정할 수도 있다.
잔차 계수들의 스캔 순서는 부호화기 및 복호화기에서 기 정의되어 있을 수 있다. 또는, 잔차 계수들의 스캔 순서를 나타내는 정보가 부호화되어 시그날링될 수 있다. 또는, 현재 블록의 크기, 형태, 인트라 예측 모드, 변환이 스킵되었는지 여부 또는 2차 변환이 수행되었는지 여부 중 적어도 하나에 기초하여 스캔 순서가 결정될 수 있다. 일 예로, 현재 블록에 변환이 스킵된 경우에는, 대각 방향 (또는 역대각 방향) 스캔 순서에 따라, 잔차 계수들을 부호화/복호화하고, 현재 블록에 대해 변환이 스킵되지 않은 경우에는, 역대각 방향 (또는 대각 방향) 스캔 순서에 따라, 잔차 계수들을 부호화/복호화할 수 있다.
도 10은 부호화기에서 잔차 계수를 부호화하는 과정을 나타낸 흐름도이다.
먼저, 잔차 계수가 0이 아닌 값을 갖는지 여부를 나타내는 플래그, sig_coeff_flag를 부호화할 수 있다(S1010). 잔차 계수의 값이 0인 경우, 플래그 sig_coeff_flag의 값을 0으로 설정하여 부호화할 수 있다. 반면, 잔차 계수의 값이 0이 아닌 경우, 플래그 sig_coeff_flag의 값을 1로 설정하여 부호화할 수 있다. 잔차 계수의 값이 0이 아닌 경우, 잔차 계수의 크기 정보가 더 부호화될 수 있다(S1020).
도 11은 잔차 계수의 크기 정보의 부호화 과정을 나타낸 흐름도이다.
적어도 하나 이상의 abs_level_gtx_flag[N]를 이용하여, 잔차 계수의 절대값을 부호화할 수 있다. 여기서, N은, 0 이상의 정수일 수 있다. 플래그 abs_level_gtx_flag[N]는 잔차 계수의 절대값이 (2N+1) 보다 큰 값을 갖는지 여부를 나타낼 수 있다. 잔차 계수의 절대값을 부호화하는데 이용되는 abs_level_gtx_flag[N]의 개수는, 현재 블록에 변환이 스킵되었는지 여부에 기초하여 결정될 수 있다. 일 예로, 현재 블록에 변환이 스킵되지 않은 경우, 2개의 abs_level_gtx_flag[N] (N은 0부터 1)가 이용될 수 있다. 반면, 현재 블록에 변환이 스킵된 경우, 3개 이상의 abs_level_gtx_flag[N] (예컨대, 3개, 4개, 또는 5개)가 이용될 수 있다. 본 실시예에서는, 2개의 abs_level_gtx_flag[N]가 이용되는 것으로 가정한다.
잔차 계수의 절대값이 1보다 큰지 여부를 나타내는 플래그 abs_level_gtx_flag[0]를 부호화할 수 있다(S1110). 잔차 계수의 절대값이 1인 경우, 플래그 abs_level_gtx_flag[0]의 값을 0으로 설정하여 부호화할 수 있다. 반면, 잔차 계수의 절대값이 1보다 큰 경우, 플래그 abs_level_gtx_flag[0]의 값을 1로 설정하여 부호화할 수 있다.
잔차 계수의 절대값이 1보다 큰 경우, 잔차 계수의 절대값이 짝수인지 또는 홀수인지 여부를 나타내는 플래그 par_level_flag를 부호화할 수 있다(S1120). 잔차 계수의 절대값이 짝수인 경우, 플래그 par_level_flag를 0으로 설정하여 부호화할 수 있다. 반면, 잔차 계수의 절대값이 홀수인 경우, 플래그 par_level_flag를 1로 설정하여 부호화할 수 있다. 또는, 이와 반대로, 잔차 계수의 절대값이 짝수인 경우, 플래그 par_level_flag를 1로 설정하고, 잔차 계수의 절대값이 홀수인 경우, 플래그 par_level_flag를 0으로 설정할 수도 있다.
다음으로, 잔차 계수의 절대값이 3보다 큰지 여부를 나타내는 플래그 abs_level_gtx_flag[1]를 부호화할 수 있다(S1130). 잔차 계수의 절대값이 3 이하인 경우, 플래그 abs_level_gtx_flag[1]의 값을 0으로 설정할 수 있다. 반면, 잔차 계수의 절대값이 3보다 큰 경우, 플래그 abs_level_gtx_flag[1]의 값을 1로 설정할 수 있다.
잔차 계수의 절대값이 3보다 큰 경우, 잔여 크기를 나타내는 abs_remainder을 부호화할 수 있다(S1140). 신택스 abs_remainder은, 잔차 계수의 절대값에서 4를 차분하여 유도된 값을 오른쪽으로 1만큼 시프팅하여 유도될 수 있다.
도 11에 도시된, abs_level_gtx_flag[0] 및 abs_level_gtx_flag[1] 플래그 이외에도, abs_level_gtx_flag[2], abs_level_gtx_flag[3] 또는 abs_level_gtx_flag[4] 등과 같은, abs_level_gtx_flag[N] 가 추가 부호화될 수 있다. 이때, abs_level_gtx_flag[N] 플래그는 abs_level_gtx_flag[N-1] 의 값이 1인 경우에 한하여 추가 부/복호화될 수 있다.
abs_level_gtx_flag[N]는, 잔차 계수의 절대값이, (2N+1)보다 큰 값을 갖는지 여부를 나타낼 수 있다. abs_level_gtx_flag[N]가 이용되는 경우, abs_remainder은, 잔차 계수의 절대값에서 2(N+1)을 차분하여 유도된 값을 오른쪽으로 1만큼 시프팅하여 유도될 수 있다.
상술한 예에서는, sig_coeff_flag, abs_level_gtx_flag[0], par_level_flag, abs_level_gtx_flag[1] 및 abs_reminder 을 이용하여, 잔차 계수의 절대값이 부호화되는 것으로 예시되었다. 다른 예로, 잔차 계수의 절대값을 그대로 부호화할 수도 있다. 일 예로, 잔차 계수의 절대값을 나타내는 신택스 dec_abs_level가 부호화될 수 있다. 잔차 계수의 절대값의 부호화 방법을 선택하는 방법에 대해서는 후술하기로 한다.
잔차 계수의 크기 정보를 부호화한 이후, 잔차 계수의 부호를 나타내는 플래그 coeff_sign_flag를 부호화할 수 있다(S1030). 플래그 coeff_sign_flag의 값이 0인 것은, 잔차 계수가 양수임을 나타낸다. 반면, 플래그 coeff_sign_flag의 값이 1인 것은, 잔차 계수가 음수임을 나타낸다.
도 12는 복호화기에서 잔차 계수를 복호화하는 과정을 나타낸 흐름도이다.
서브 블록 내 0이 아닌 잔차 계수가 포함되는 것으로 결정된 경우, 소정 스캔 순서에 기초하여, 잔차 계수들을 복원할 수 있다.
먼저, 잔차 계수가 0이 아닌 값을 갖는지 여부를 나타내는 플래그, sig_coeff_flag를 복호화할 수 있다(S1210). 플래그 sig_coeff_flag의 값이 0인 것은, 잔차 계수의 값이 0임을 나타낸다. 반면, 플래그 sig_coeff_flag의 값이 1인 것은, 잔차 계수의 값이 0이 아님을 나타낸다. 플래그 sig_coeff_flag의 값이 1인 경우, 잔차 계수의 크기 정보가 더 복호화될 수 있다(S1220).
도 13은 잔차 계수의 크기 정보의 복호화 과정을 나타낸 도면이다.
설명의 편의를 위해, 잔차 계수는 최대 2개의 abs_level_gtx_flag[N] 를 이용하여 부호화된 것으로 가정한다.
잔차 계수의 절대값이 1보다 큰지 여부를 나타내는 플래그 abs_level_gtx_flag[0]를 복호화할 수 있다(S1310). 플래그 abs_level_gtx_flag[0]의 값이 0인 것은, 잔차 계수의 절대값이 1임을 나타낸다. 반면, 플래그 abs_level_gtx_flag[0]의 값이 1인 것은, 잔차 계수의 절대값이 1보다 큼을 나타낸다.
플래그 abs_level_gtx_flag[0]의 값이 1인 경우, 잔차 계수의 절대값이 짝수인지 또는 홀수인지 여부를 나타내는 플래그 par_level_flag를 복호화할 수 있다(S1320). 플래그 par_level_flag의 값이 0인 것은, 잔차 계수의 절대값이 짝수임을 나타내고, 플래그 par_level_flag의 값이 1인 것은, 잔차 계수의 절대값이 홀수임을 나타낸다.
다음으로, 잔차 계수의 절대값이 3보다 큰지 여부를 나타내는 플래그 abs_level_gtx_flag[1]를 복호화할 수 있다(S1330). 플래그 abs_level_gtx_flag[1]의 값이 0인 것은, 잔차 계수의 절대값이 3보다 작음을 나타낸다. 플래그 abs_level_gtx_flag[1]의 값이 0인 경우, 플래그 par_level_flag의 값에 따라, 잔차 계수의 절대값이 2 또는 3으로 결정될 수 있다.
플래그 abs_level_gtx_flag[1]의 값이 1인 것은, 잔차 계수의 절대값이 3보다 큼을 나타낸다.
플래그 abs_level_gtx_flag[1]의 값이 1인 경우, 잔여 크기를 나타내는 abs_reminder을 복호화할 수 있다(S1340). 신택스 abs_reminder가 나타내는 값을 왼쪽으로 1만큼 시프팅하여 유도된 값에, 3 또는 4를 더하여, 잔차 계수의 절대값을 유도할 수 있다.
도 13에 도시된, abs_level_gtx_flag[0] 및 abs_level_gtx_flag[1]플래그 이외에도, abs_level_gtx_flag[2], abs_level_gtx_flag[3] 또는 abs_level_gtx_flag[4] 등과 같은, abs_level_gtx_flag[N]가 추가 복호화될 수 있다. 이때, abs_level_gtx_flag[N] 의 값이 1인 경우, abs_level_gtx_flag[N+1]이 추가 복호화될 수 있다.
abs_level_gtx_flag[N]는, 잔차 계수의 절대값이, (2N+1)보다 큰 값을 갖는지 여부를 나타낼 수 있다. abs_level_gtx_flag[0]가 이용되는 경우, abs_reminder 은, 잔차 계수의 절대값에서 2(N+1)을 차분하여 유도된 값을 오른쪽으로 1만큼 시프팅하여 유도되는 값으로 설정될 수 있다.
상술한 예에서는, sig_coeff_flag, abs_level_gtx_flag[0], par_level_flag, abs_level_gtx_flag[1] 및 abs_reminder 을 이용하여, 잔차 계수의 절대값이 복호화되는 것으로 예시되었다. 다른 예로, 잔차 계수의 절대값을 그대로 복호화할 수도 있다. 일 예로, 잔차 계수의 절대값을 나타내는 신택스 dec_abs_level가 복호화될 수 있다. 잔차 계수의 절대값의 복호화 방법을 선택하는 방법에 대해서는 후술하기로 한다.
잔차 계수의 크기 정보를 복호화한 이후, 잔차 계수의 부호를 나타내는 플래그 coeff_sign_flag를 복호화할 수 있다(S1230). 플래그 coeff_sign_flag의 값이 0인 것은, 잔차 계수가 양수임을 나타낸다. 반면, 플래그 coeff_sign_flag의 값이 1인 것은, 잔차 계수가 음수임을 나타낸다.
설명한 바와 같이, 잔차 계수는 적어도 하나의 신택스에 의해 부호화될 수 있다. 신택스(들)의 이진화 과정을 거쳐 잔차 계수가 다수의 빈(bin)으로 변경될 수 있고, 변경된 빈들이 엔트로피 부호화를 통해 부호화될 수 있다.
엔트로피 부호화는, 문맥(context) 정보를 이용한 부호화 및 문맥 정보를 이용하지 않는 부호화로 구분될 수 있다. 문맥은, 빈의 값이 0일 확률 또는 1일 확률을 나타낸다. 여기서, 문맥 정보를 이용한 부/복호화 방식을 문맥 코딩(context coding)이라 호칭하고, 문맥 정보를 이용하지 않은 부/복호화 방식을 바이패스 코딩(bypass coding)이라 호칭할 수 있다.
엔트로피 부호화부(165) 및 엔트로피 복호화부(210)의 처리율(throughput)을 증가시키기 위해, 문맥 정보를 이용하여 부호화되는 빈들의 개수를 제한할 수 있다. 문맥 정보를 이용하여 부호화되는 빈들의 개수를 제한하기 위해, 임계값을 설정할 수 있다. 임계값을 CCB (Coded Context Bin)이라 호칭할 수도 있다. 생성된 빈들 중 카운트 값이 임계값보다 작은 빈은 문맥 정보를 이용한 부호화가 수행된다. 카운트 값이 임계값과 같거나, 임계값을 초과하는 경우, 더 이상 문맥 정보를 이용한 부호화를 사용하지 않을 수 있다.
부/복화화기에서 적응적으로 임계값을 결정할 수 있다. 일 예로, 임계값은, 현재 블록의 크기, 형태, 현재 블록 내 0이 아닌 잔차 계수들의 개수, 현재 블록에 변환이 스킵되었는지 여부, 현재 블록에 적용되는 변환 커널의 종류, 현재 블록에 양자화가 적용되었는지 여부, 컬러 컴포넌트(예컨대, Y, Cb, Cr), 현재 블록의 양자화 파라미터 또는 비트 심도 중 적어도 하나에 기초하여 결정될 수 있다.
일 예로, 임계값은 현재 블록 내, 0이 아닌 잔차 계수들의 개수에 기초하여 결정될 수 있다. 구체적으로, 현재 블록 내 0이 아닌 잔차 계수들의 개수에 실수를 곱한 값 또는 오프셋을 가산 또는 감산한 값이 임계값으로 설정될 수 있다.
일 예로, 현재 블록이 포함하는 샘플들의 개수에 기초하여 임계값이 결정될 수 있다. 구체적으로, 현재 블록 내 샘플들의 개수에 실수를 곱한 값 또는 오프셋을 가산 또는 감산한 값을 임계값으로 설정될 수 있다.
일 예로, 현재 블록의 크기 또는 형태 중 적어도 하나에 기초하여, 임계값이 결정될 수 있다. 구체적으로, 블록의 크기 및/또는 형태 별로 적어도 하나의 임계값 후보들이 기 정의되어 있을 수 있다. 이 경우, 현재 블록의 크기 및/또는 형태에 대응하는 적어도 하나의 임계값 후보들로부터 현재 블록의 임계값 후보를 선택할 수 있다. 현재 블록의 크기 및/또는 형태에 대응하는 임계값 후보들의 개수가 복수개인 경우, 복수의 임계값 후보들 중 하나를 특정하기 위한 인덱스 정보가 추가로 부/복호화될 수도 있다.
일 예로, 변환 스킵이 적용되었는지 여부, 현재 블록에 적용되는 변환 커널 또는 양자화 파라미터 중 적어도 하나에 기초하여, 임계값이 결정될 수 있다.
또는, 임계값을 나타내는 정보가 비트스트림을 통해 시그날링될 수 있다. 상기 정보는, 시퀀스, 픽처 헤더 또는 슬라이스 헤더와 같은 상위 헤더를 통해 부호화될 수 있다.
또는, 부호화기/복호화기에서, 임계값이 고정되어 있을 수 있다.
상술한 바와 같이, 현재 블록에 변환이 스킵되었는지 여부에 따라, 잔차 계수의 부/복호화를 위한 스캔 순서, gt_N_flag의 개수 또는 문맥 정보를 이용하여 부/복호화되는 빈의 개수 (즉, 임계값) 중 적어도 하나가 상이할 수 있다. 현재 블록에 변환이 적용되었을 때(즉, 변환이 스킵되지 않은 경우), 잔차 계수를 부/복호화하는 것을 RC (Residual Coding) 방식이라 호칭할 수 있다. 반면, 현재 블록에 변환이 적용되지 않았을 때(즉, 변환이 스킵된 경우), 잔차 계수를 부/복호화하는 것을 TSRC (Transform Skip Residual Coding) 방식이라 호칭할 수있다. 이하 RC 방식 및 TSRC 방식에서의 잔차 계수 부호화 방법을 상세히 살펴보기로 한다.
도 14 및 도 15는 잔차 계수가 부/복호화되는 예를 설명하기 위한 것이다.
도 14는 4x4 블록 내 각 잔차 계수들에 상이한 식별자가 할당된 예를 나타낸다. 도 15는, 도 14에 도시된 각 잔차 계수에 대한, 신택스 요소들의 부호화 순서를 나타낸 것이다. 본 예에서는, RC 방식의 잔차 계수 부호화가 적용되는 것으로 가정한다.
또한, 문맥 정보를 이용하여 부/복화화되는 빈의 최대 개수(즉, 임계값)은, 44라고 가정한다.
RC 방식이 적용되는 경우, 잔차 계수는 서브 블록 내 오른쪽 아래 잔차 계수에서부터 왼쪽 위 잔차 계수까지 역대각 스캔 방향을 따라 부/복호화될 수 있다. 도 14에서, C15는, 서브 블록 내 우하단에 위치하는 잔차 계수를 나타내고, C0는, 서브 블록 내 좌상단에 위치하는 잔차 계수를 나타낸다.
또한, 도 15에서, 얇은 실선의 화살표는, 문맥 정보를 이용하여 부/복호화되는 빈들을 나타내고, 굵은 실선의 화살표는, 문맥 정보를 이용하지 않고 부/복호화되는 빈들을 나타낸다. 또한, 화살표간 연결선은, 각 신택스들의 부/복호화 순서를 나타낸다.
RC 방식 하에서는 최대 2개의 abs_level_gtx_flag[N]가 이용될 수 있다.
표 1은 RC 방식 하에서 잔차 계수를 부/복호화하는데 이용되는 신택스들을 수식으로 정의한 것이다.
Pass 신택스명 수식
pass 1 sig_coeff_flag CN != 0
abs_level_gtx_flag[0] !! ( |CN| - 1 )
par_level_flag ( |CN| - 2 ) & 1
abs_level_gtx_flag[1] ( |CN| - 2 ) >> 1
pass 2-1 abs_remainder ( |CN| - 4 ) >> 1
pass 2-2 dec_abs_level |CN|
pass 3 coeff_sign_flag CN < 0 ? 1 : 0
표 2는, 잔차 계수 C15의 값이 (-21)인 경우, 각 신택스들의 값을 나타낸 것이다.
Pass 신택스명 수식
pass 1 sig_coeff_flag 1
abs_level_gtx_flag[0] 1
par_level_flag 1
abs_level_gtx_flag[1] 1
pass 2-1 abs_remainder 8
pass 2-2 dec_abs_level -
pass 3 coeff_sign_flag 1
표 3은 복호화기에서 잔차 계수를 복원하는 과정을 나타낸 것이다.
수식
TmpCN sig_coeff_flag + abs_level_gtx_flag[0] + par_level_flag + (abs_level_gtx_flag[1]<<1)
|CN| TmpCN + (abs_remainder<<1)
표 3에서, 변수 TmpCN은 abs_remaiinder값이 반영되지 않은 상태의 임시 복원 계수를 나타낸다. 신택스 abs_remainder가 존재하지 않는 경우(예컨대, abs_level_gtx_flag[0] 또는 abs_level_gtx_flag[1]이 0인 경우), 임시 복원 계수 TmpCN이 잔차 계수의 절대값으로 설정될 수 있다. 반면, 신택스 abs_remainder가 존재하는 경우(예컨대, abs_level_gtx_flag[1]이 1인 경우), 임시 복원 계수 TmpCN에 abs_remainder에 의해 유도된 값(구체적으로, abs_remainder를 왼쪽으로 1만큼 시프팅하여 유도된 값)을 더하여 잔차 계수의 절대값을 유도할 수 있다.일 예로, 표 2의 예를 참고하면, 잔차 계수 C15에 대한, 변수 TmpC15의 값은 5 (구체적으로, 1+1+1+(1<<1))로 유도될 수 있다. 또한, 잔차 계수 C15에 대한 절대값 |C15|는 임시 잔차 계수 TmpC15(즉, 5)에 abs_remainder를 왼쪽으로 1만큼 시프닝하여 유도된 값(즉, 16)을 더하여 21로 유도될 수 있다.이후, coeff_sign_flag의 값을 통해, 잔차 계수 C15의 값이 최종적으로 -21로 복원될 수 있다.
패스(pass)는, 부호화 순서 및 복호화 순서를 나타낸다. 일 예로, 복호화기에서는, 1패스에 속하는 신택스들을 모두 복호화한 뒤, 2패스에 속하는 신택스들을 복호화할 수 있다. 또한, 2패스에 속하는 신택스들을 모두 복호화한 뒤, 3패스에 속한 신택스들이 복호화될 수 있다.
도시된 예에서, 2-2 패스는, 1패스, 2-1 패스 및 3 패스의 대체 경로를 나타낸다.
문맥 정보를 이용하여 부호화된 빈의 계수가 임계값보다 작은 경우, 1 패스 및 2-1 패스를 거쳐 잔차 계수의 절대값이 부호화될 수 있다. 반면, 문맥 정보를 이용하여 부호화된 빈의 계수가 임계값과 같거나 큰 경우, 2-2 패스를 거처, 잔차 계수의 절대값이 부호화될 수 있다.
일 예로, 문맥 정보를 이용하여 부/복호화되는 잔차 계수 C15는, 1 패스, 2-1 패스 및 3패스에 속하는 신택스 요소들 중 적어도 하나를 이용하여 부/복호화될 수 있다.
반면, 문맥 정보를 이용하지 않고 부/복호화되는 잔차 계수 C5는, 2-2 패스 및 3 패스에 속하는 신택스 요소들을 이용하여 부/복호화될 수 있다.
구체적으로, 문맥 정보를 이용하여 부/복호화되는 잔차 계수에 대해, 먼저, sig_coeff_flag를 통해, 잔차 계수가 0이 아닌 값을 갖는지 여부를 결정할 수 있다. 잔차 계수 C15는 -21이므로, sig_coeff_flag가 1로 설정된다.
다음으로, sig_coeff_flag가 1인 경우, abs_level_gtx_flag[0]가 추가로 부/복호화한다. 이때, 잔차 계수의 절대값이 1보다 큰 경우, abs_level_gtx_flag[0]는 1로 설정되고, par_level_flag 및 abs_level_gtx_flag[1]가 추가로 부/복호화될 수 있다. 잔차 계수 C15의 절대값은 21이므로, C15에 대한 abs_level_gtx_flag[0]는 1로 설정되고, C15에 대해, par_level_flag 및 abs_level_gtx_flag[1]이 추가로 부/복호화된다.
잔차 계수의 절대값이 3보다 큰 경우, abs_level_gtx_flag[1]이 1로 설정되고, abs_level_gtx_flag[1]이 1인 경우, 잔차 계수의 절대값에서 4를 차분한 값을 우측으로 1만큼 시프팅하여 유도되는 신택스 abs_remainder가 추가로 부/복호화될 수 있다. 잔차 계수 C15의 절대값은 21이므로, abs_level_gtx_flag[1]이 1로 설정되고, abs_remainder가 추가로 부/복호화된다.
이후, 잔차 계수 C15의 부호를 나타내는 coeff_sign_flag를 이용하여, 잔차 계수의 부호를 부/복호화할 수 있다.
반면, 문맥 정보를 이용하지 않고 잔차 계수를 부/복호화하는 경우에는, 위에서 열거한 신택스 요소들의 부/복호화 없이, 잔차 계수의 절대값을 나타내는 신택스 dec_abs_level을 부/복호화할 수 있다. 일 예로, C5에 대해서는, C5의 절대값을 나타내는 dec_abs_level 및 C5의 부호를 나타내는 coeff_sign_flag만이 부/복호화될 수 있다.
도 15에 도시된 예에 따르면, 잔차 계수의 부호를 나타내는 신택스 coeff_sign_flag는, 문맥정보를 이용하여 부/복호화된 빈의 개수가 문턱값을 초과하는지 여부와 관계없이, 항상, 문맥 정보를 이용하지 않고 부/복호화된다. 그러나, 위와 같이, 문맥 정보를 이용하지 않는 부/복호화가 적용될 경우, 영상 전체에 대한 부/복호화 효율을 저하시키는 문제가 발생할 수 있다. 또한, 모든 잔차 계수들에 대해 부호를 부/복호화하는 것은, 시그날링 비트수를 증가를 초래한다. 이에 따라, 본 개시에서는, 잔차 계수의 부호를 명시적으로 부호화하여 시그날링하는 대신, 잔차값의 부호를 예측하고, 예측된 부호와의 일치 여부를 나타내는 정보를 문맥정보를 이용하여 부호화하는 방법을 제안한다.
도 16 및 도 17은 본 개시의 일 실시예에 따른, 잔차 계수의 부호를 예측하는 방법의 흐름도이다.
도 16은 부호화기의 동작을 나타낸 것이고, 도 17은 복호화기의 동작을 나타낸 것이다.
부호화기에서, 부호를 예측할 잔차 계수의 개수 또는 위치 중 적어도 하나를 결정할 수 있다. 이 경우, 부호 예측이 적용되는 잔차 계수의 개수 또는 위치 중 적어도 하나를 특정하기 위한 부호 예측 정보가 비트스트림을 통해 부호화되어 시그날링될 수 있다. 부호 예측 정보는 상위 헤더를 통해 시그날링될 수 있다. 상위 헤더는, 시퀀스 파라미터 세트, 픽처 파라미터 세트 또는 슬라이스 헤더 중 적어도 하나를 포함할 수 있다. 또는, 부호 예측 정보는, 블록 단위로 시그날링될 수도 있다. 일 예로, 코딩 트리 블록, 코딩 블록 또는 변환 블록 별로 부호 예측 정보가 시그날링될 수 있다.
다른 예로, 현재 블록의 크기, 현재 블록의 형태, 현재 블록의 부호화 모드, 현재 블록의 인트라 예측 모드, 기 부/복호화된 잔차 계수들 중 음의 부호를 갖는 잔차 계수들과 양의 부호를 갖는 잔차 계수들의 비율, 0이 아닌 잔차 계수들의 개수, 현재 블록에 적용되는 변환 코어, 또는 현재 블록에 2차 변환이 적용되었는지 여부 중 적어도 하나를 기초로, 부호를 예측할 잔차 계수의 개수 또는 위치 중 적어도 하나가 적응적으로 결정될 수 있다. 여기서, 부호화 모드는, 인터 예측 및 인터 예측을 포함할 수 있다. 또는, 기 정의된 문턱값 만큼 동일한 부호가 반복 검출된 경우, 부호를 결정해야 하는 현재 잔차 계수 또는 현재 잔차 계수 및 스캔 순서상 현재 잔차 계수와 연속인 N개의 잔차 계수들에 대해, 부호 예측을 적용할 수도 있다. 여기서, 문턱값은, 2, 3, 4 등의 자연수 일 수 있다.
다른 예로, 부호를 예측할 잔차 계수의 개수 또는 위치 중 적어도 하나가 고정되어 있을 수 있다. 일 예로, 현재 블록 내 마지막 0이 아닌 잔차 계수에 대해, 항상 부호 예측이 사용될 수 있다. 또는, 현재 블록 내 마지막 0이 아닌 잔차 계수에서부터 시작하여, 스캔 순서상 연속된 N개의 잔차 계수들에 대해 부호 예측을 적용할 수 있다. 여기서, N은, 1, 2, 3, 4 등의 자연수일 수 있다.
또는, 현재 블록 내 저주파 성분, 예컨대, DC 성분인 잔차 계수에 대해서는 항상 부호 예측이 사용될 수 있다. 또는, DC 성분인 잔차 계수 및 스캔 순서상 DC 성분보다 스캔 순번이 낮은 N개의 잔차 계수들에 대해 부호 예측을 적용할 수 있다.
또는, 현재 블록의 좌상단 2x2 크기의 서브 블록에 속하는 4개의 잔차 계수들 또는 현재 블록의 좌상단 1x2 또는 2x1 크기의 서브 블록에 속하는 2개의 잔차 계수들을 대상으로 부호 예측이 수행될 수 있다.
다른 예로, 현재 잔차 계수의 절대값과 기 설정된 임계값을 비교하여, 현재 잔차 계수에 대해 부호 예측을 적용할 것인지 여부를 결정할 수 있다. 이때, 임계값은 부호화기 및 복호화기에서 기 정의된 값을 가질 수 있다.
또는, 블록 단위로, 임계값이 설정될 수도 있다. 이 경우, 임계값에 관한 정보가 비트스트림을 통해 시그날링될 수 있다. 또는, 현재 블록의 크기, 현재 블록의 부호화 모드, 현재 블록의 인트라 예측 모드, 또는 현재 블록의 양자화 파라미터 중 적어도 하나를 기반으로 임계값이 적응적으로 결정될 수 있다.
기 설정된 개수만큼 잔차 계수들에 대한 부호 예측이 수행되지 못한 경우에만, 임계값보다 낮은 절대값을 가진 잔차 계수에 대해 부호 예측이 수행되도록 설정할 수도 있다.
다른 예로, 잔차 계수들 각각의 절대값을 비교하여, 부호 예측이 수행되는 잔차 계수들을 선택할 수도 있다. 일 예로, 절대값이 큰 N개의 잔차 계수들을 부호 예측 대상으로 설정할 수 있다. 일 예로, 기 설정된 개수가 2개일 때, 잔차 계수들 중 절대값의 크기가 가장 큰 2개의 잔차 계수들에 대해 부호 예측을 수행할 수 있다.
부호 예측 대상인 적어도 하나의 잔차 계수에 대해, 적용 가능한 부호 조합들 각각을 적용하여, 각 부호 조합에 대한 복원 블록을 생성할 수 있다(S1610, S1710).
도 18은 잔차 계수들에 상이한 부호 조합들이 적용되어, 복수의 복원 블록들이 생성되는 예를 나타낸 것이다.
도 18에 도시된 예에서는, 잔차 계수 C0 및 잔차 계수 C8에 부호 예측이 적용되는 것으로 도시되었다.
N개의 잔차 계수들에 대해 부호 예측이 적용되는 경우, 2^N개의 적용 가능한 부호 조합들이 존재한다. 일 예로, 도 18에 도시된 예에서와 같이, 잔차 계수 C0 및 잔차 계수 C8에 적용될 수 있는 4개의 부호 조합들은, 각각, (+, +), (+, -), (-, +) 및 (-, -)일 수 있다.
각 부호 조합을 적용하여, 복원 블록을 생성할 수 있다. 복원 블록은, 잔차 블록 및 예측 블록을 합하여 유도된 것일 수 있다. 여기서, 잔차 블록은, 잔차 계수들에 대해, 역양자화 및 역변환을 수행하여 획득될 수 있다. 또는, 현재 블록에 변환이 적용되었는지 여부에 따라, 역변환이 스킵되어 잔차 블록이 생성될 수도 있다.
일 예로, 도 18에 도시된 예에서는, 부호 조합 (+, +)을 적용하여 획득된 잔차 블록을 기초로, 복원 블록 0가 생성되고, 부호 조합 (+, -)을 적용하여 획득된 잔차 블록을 기초로 복원 블록 1이 생성되는 것으로 도시되었다. 또한, 부호 조합 (-, +)을 적용하여 획득된 잔차 블록을 기초로 복원 블록 2가 생성되고, 부호 조합 (-, -)을 적용하여 획득된 잔차 블록을 기초로 복원 블록 3이 생성되는 것으로 예시되었다.
이후, 각 복원 블록에 대한 비용을 산출할 수 있다(S1620, S1720). 각 복원 블록의 비용을 비교하여, 부호 예측이 적용되는 잔차 계수의 부호 예측값을 설정할 수 있다.
복원 블록의 비용은, 복원 블록과 복원 블록 주변의 복원 샘플들 사이의 관계를 고려하여 산출될 수 있다.
도 19는 복원 블록의 비용이 산출되는 예를 나타낸 것이다.
도시된 예에서, R은 복원 샘플을 나타내고, r은 잔차 샘플을 나타낸다.
복원 블록의 특정 경계에 인접 위치하는 복원 샘플들을 이용하여, 복원 블록의 비용을 계산할 수 있다. 여기서, 특정 경계는, 복원 블록의 상단 경계 또는 좌측 경계 중 적어도 하나를 포함할 수 있다.
일 예로, 복원 블록의 상단 경계에 인접하는 복원 샘플들을 이용하여, 복원 블록에 대한 수평 방향 비용을 산출할 수 있다. 또한, 복원 블록의 좌측 경계에 인접하는 복원 샘플들을 이용하여, 복원 블록에 대한 수직 방향 비용을 산출할 수 있다. 그리고, 수평 방향 비용 및 수직 방향 비용의 합을, 복원 블록의 비용으로 설정할 수 있다. 수학식 2는, 복원 블록의 비용이 산출되는 과정을 나타낸 것이다.
Figure PCTKR2022020616-appb-img-000002
상기 수학식 2에서, cost1은 복원 블록의 좌측 경계에 인접하는 잔차 샘플들 및 예측 샘플들을 기초로 생성된 수평 방향 비용을 나타내고, cost2는 복원 블록의 상단 경계에 인접하는 잔차 샘플들 및 예측 샘플들을 기초로 생성된 수직 방향 비용을 나타낸다. cost는 잔차 블록의 비용을 나타낸다. R은 복원 블록 주변의 복원 샘플을 나타낸다.
P는, 복원 블록 내 복원 샘플의 예측 샘플을 나타내고, r은 복원 샘플의 잔차 샘플값을 나타낸다. 복원 블록은, 잔차 블록 및 예측 블록을 합하여 유도되는 바, 수학식 2의 예에서와 같이, 복원 블록의 비용은, 잔차 블록 및 예측 블록을 이용하여 산출되는 것으로 이해될 수도 있다.
수학식 2는 다음의 수학식 3과 같이 간소화될 수도 있다.
Figure PCTKR2022020616-appb-img-000003
수평 방향 비용 cost1은, 잔차 블록의 좌측 경계에 인접하는 복원 샘플들에 대한 수평 방향 그라이언트(Gradient)의 합으로 유도될 수 있다. 여기서, 수평 방향 변화량은, 복원 블록의 좌측 경계에 이웃하는 복원 샘플 R(-1, y)의 2배값에서, 상기 복원 샘플 R(-1, y)의 좌측에 인접하는 복원 샘플 R(-2, y), 복원 샘플에 대한 예측 샘플 P(0, y) 및 잔차 샘플 r(0, y)를 차분한 값을 나타낸다.
수직 방향 비용 cost1은, 복원 블록의 상측 경계에 인접하는 복원 샘플들에 대한 수직 방향 그라이언트(Gradient)의 합으로 유도될 수 있다. 여기서, 수직 방향 변화량은, 복원 블록의 상단 경계에 이웃하는 복원 샘플 R(x, -1)의 2배값에서, 상기 복원 샘플 R(x, -1)의 상단에 인접하는 복원 샘플 R(x, -2), 복원 샘플에 대한 예측 샘플 P(x, 0) 및 잔차 샘플 r(x, 0)를 차분한 값을 나타낸다.
수학식 2의 예에서와 달리, 수평 방향 비용 cost1을 복원 블록의 비용으로 설정하거나, 수직 방향 비용 cost2를 복원 블록의 비용으로 설정할 수도 있다. 일 예로, 현재 블록의 인트라 예측 모드가 방향성 예측 모드인 경우, 인트라 예측 모드의 방향에 따라, 수평 방향 비용 또는 수직 방향 비용을 복원 블록의 비용으로 설정할 수 있다.
일 예로, 도 3에 도시된 예에서, 좌상단 대각 방향의 인트라 예측 모드(34번 모드)를 기준으로, 방향성 인트라 예측 모드들을 상단 영역 인트라 예측 모드와 좌측 영역 인트라 예측 모드로 분류할 수 있다. 상단 영역 인트라 예측 모드는, 인덱스가 대각 방향의 인트라 예측 모드와 같거나 큰 인트라 예측 모드를 나타내고, 좌측 영역 인트라 예측 모드는, 인덱스가 대각 방향의 인트라 예측 모드보다 작은 인트라 예측 모드를 나타낸다.
현재 블록의 인트라 예측 모드가 상단 영역 인트라 예측 모드인 경우, 복원 블록의 상단 경계에 인접하는 복원 샘플들을 이용하여 유도된 수직 방향 비용을 복원 블록의 비용으로 설정할 수 있다. 반면, 현재 블록의 인트라 예측 모드가 좌측 영역 인트라 예측 모드인 경우, 복원 블록의 좌측 경계에 인접하는 복원 샘플들을 이용하여 유도된 수평 방향 비용을 복원 블록의 비용으로 설정할 수 있다.
한편, 현재 블록의 화면 내 예측 모드가 비방향성 모드, 예컨대, 플래너 또는 DC 모드인 경우, 수학식 2에서와 같이, 수평 방향 비용 및 수직 방향 비용의 합을 복원 블록의 비용으로 설정할 수 있다.
현재 블록에 인터 예측이 적용된 경우에도, 수평 방향 비용 및 수직 방향 비용의 합을 복원 블록의 비용으로 설정할 수 있다.
수학식 2에서는, 복원 샘플과 동일한 행에 속하는 2개의 복원 샘플들을 이용하여 수평 방향 비용이 산출되고, 복원 샘플과 동일한 열에 속하는 2개의 복원 샘플들을 이용하여 수직 방향 비용이 산출되는 것으로 예시되었다. 즉, 복원 블록 주변의 2개의 참조 샘플 라인에 속하는 복원 샘플들을 이용하여, 수평 방향 비용 및 수직 방향 비용이 산출되는 것으로 예시되었다.
위 예시보다 더 적은 수의 참조 샘플 라인을 이용하여, 수평 방향 비용 및/또는 수직 방향 비용을 산출할 수도 있다. 일 예로, 잔차 블록의 경계에 인접하는 1개의 참조 샘플 라인에 속하는 복원 샘플들을 이용하여, 수평 방향 비용 및/또는 수직 방향 비용을 산출할 수 있다. 이 경우, 현재 블록의 수직 방향 비용 및 수평 방향 비용은 다음의 수학식 4와 같이 산출될 수 있다.
Figure PCTKR2022020616-appb-img-000004
또는, 2개보다 더 많은 참조 샘플 라인들을 이용하여, 수평 방향 비용 및/또는 수직 방향 비용을 계산할 수도 있다.
다른 예로, 복원 블록의 경계에 위치하는 복원 샘플들만을 이용하여 수평 방향 비용 및/또는 수직 방향 비용을 계산하는 대신, 복원 블록의 경계로부터, N개의 열 및/또는 행에 속하는 복원 샘플들을 이용하여, 수평 방향 비용 및/또는 수직 방향 비용을 계산할 수도 있다.
복원 샘플과 동일한 열 또는 동일한 행에 속하는 현재 블록 주변의 복원 샘플을 이용하는 대신, 현재 블록에 적용된 부호화 모드 및/또는 인트라 예측 모드에 따라, 복원 샘플의 위치를 적응적으로 결정할 수도 있다.
일 예로, 현재 블록의 화면 내 예측 모드가 비방향성 모드, 예컨대, 플래너 또는 DC 모드인 경우, 수학식 2에서와 같이, 복원 샘플과 동일한 행에 속하는 적어도 하나의 복원 샘플을 이용하여 수평 방향 비용을 산출하고, 복원 샘플과 동일한 열에 속하는 적어도 하나의 복원 샘플을 이용하여 수직 방향 비용을 산출할 수 있다.
반면, 현재 블록의 인트라 예측 모드가 방향성 예측 모드인 경우, 인트라 예측 모드의 방향성에 따라, 적어도 하나의 복원 샘플이 선택될 수 있다.
도 20은 인트라 예측 모드의 방향성에 의해 복원 샘플이 선택되는 예를 도시한 것이다.
도 20에서는, 현재 블록의 인트라 예측 모드가 우상단 방향의 인트라 예측 모드인 것으로 예시되었다. 이 경우, 수직 방향 그라디언트를 산출함에 있어서, 복원 샘플의 수직 방향에 이웃 복원 샘플 대신, 복원 샘플의 우상단 방향에 놓인 복원 샘플을 이용할 수 있다.
복원 샘플의 우상단 방향이 분수 위치를 지나는 경우, 분수 위치에 이웃하는 복원 샘플들을 보간하여 분수 위치 샘플을 생성하고, 생성된 분수 위치 샘플을 이용하여, 수직 방향 그라디언트를 산출할 수 있다.
다른 예로, 복원 샘플의 우상단 방향이 분수 위치를 지나는 경우, 보간된 샘플을 이용하는 대신, 분수 위치에 가장 인접하는 정수 위치 복원 샘플을 이용하여, 수직 방향 그라디언트를 산출할 수 있다.
템플릿 매칭을 기반으로, 복원 블록의 비용을 계산할 수도 있다.
도 21은 템플릿 매칭을 기반으로, 복원 블록의 비용이 산출되는 예를 설명하기 위한 도면이다.
현재 블록의 주변 영역을 현재 템플릿으로 설정하고, 참조 픽처 내 현재 템플릿과 가장 유사한 참조 템플릿을 탐색할 수 있다. 참조 템플릿이 결정되면, 참조 템플릿을 기반으로 참조 블록을 설정한다. 이후, 복원 블록과 참조 블록 간의 차분을 기초로, 복원 블록의 비용을 산출한다. 일 예로, 복원 블록 내 복원 샘플들과 참조 블록 내 복원 샘플들 사이의 차분의 절대값 합(SAD : Sum of Absolute Difference)을, 복원 블록의 비용으로 설정할 수 있다.
이때, 복원 블록의 경계에 위치하는 복원 샘플들만을 이용하여, 복원 블록의 비용을 계산할 수도 있다. 일 예로, 복원 블록의 좌측 경계에 위치하는 복원 샘플들 및 복원 블록의 상단 경계에 위치하는 복원 샘플들로부터 참조 블록의 좌측 경계에 위치하는 복원 샘플들 및 참조 블록의 상단 경계에 위치하는 복원 샘플들을 차분하여, 복원 블록의 비용을 산출할 수 있다.
부호화기에서는, 부호 예측이 적용되는 잔차 계수들 각각의 실제 부호가 가장 낮은 비용을 갖는 복원 블록에서 사용된부호 부조 조합을 각 잔차 계수에 대한 부호 예측값으로 설정할 수 있다. 또한, 부호화하려는 잔차 계수들 각각의 부호가 예측된 부호와 일치하는지 여부를 판단하고, 일치 여부를 나타내는 부호 예측 정보를 부호화하여 시그날링할 수 있다(S1630). 상기 부호 예측 정보는 부호 예측이 적용된 잔차 계수들 각각에 대해 부호화될 수 있다. 또한, 상기 정보는 1비트의 플래그일 수 있다.
일 예로, 2개의 잔차 계수들에 대해 부호 예측이 적용된 경우, 비용이 가장 낮은 복원 블록을 획득하는데 이용된 제1 잔차 계수의 부호가 실제 제1 잔차 계수의 부호와 일치하는 경우, 상기 제1 잔차 계수에 대한 부호 예측 정보는 참으로 설정되고, 그렇지 않은 경우, 상기 제1 잔차 계수에 대한 부호 예측 정보는 거짓으로 설정될 수 있다. 제 2 잔차 계수의 부호도 상기 설명한 제 1 잔차 계수의 부호화 방법과 동일하다.
복호화기에서는, 복수의 복원 블록들 각각의 비용 및 부호 예측이 적용된 잔차 계수의 부호 예측 정보를 기초로, 잔차 계수의 부호를 결정할 수 있다(S1730).
일 예로, 2개의 잔차 계수들에 대해 부호 예측이 적용된 것으로 가정할 때, 2개의 잔차 계수들 각각의 부호 예측 정보가, 예측된 부호가 실제 부호와 일치함을 지시하는 경우, 2개의 잔차 계수들 각각에 대해, 예측된 부호를, 실제 부호로 설정할 수 있다. 복호화기에서는, 잔차 계수들에 대해 역양자화 및/또는 역변환을 수행하여, 잔차 블록을 획득하고, 획득된 잔차 블록을 기반으로 복원 블록을 획득할 수 있다. 또는, 4개의 복원 블록들 중 비용이 가장 낮은 복원 블록을 현재 블록의 복원 블록으로 선택할 수도 있다.
반면, 2개의 잔차 계수들 중 제1 잔차 계수에 대한 부호 예측 정보는, 예측된 부호가 실제 부호화 일치함을 지시하나, 제2 잔차 계수에 대한 부호 예측 정보는, 예측된 부호가 실제 부호화 일치하지 않음을 지시하는 경우, 제1 잔차 계수의 부호는 예측된 부호와 동일하게 설정하는 한편, 제2 잔차 계수에 대해서는 예측된 부호와 반대 부호로 설정할 수 있다. 복호화기에서는, 잔차 계수들에 대해 역양자화 및/또는 역변환을 수행하여, 잔차 블록을 획득하고, 잔차 블록을 기반으로 복원 블록을 획득할 수 있다. 또는, 비용이 가장 낮은 복원 블록과 제1 잔차 계수의 부호는 일치하나, 제2 잔차 계수의 부호는 일치하지 않는 복원 블록을 현재 블록의 복원 블록으로 선택할 수도 있다.
반면, 2개의 잔차 계수에 대해 부호 예측이 적용되고, 2개의 잔차 계수들 각각의 부호 예측 정보가, 실제 부호와 일치하지 않음을 지시하는 경우, 2개의 잔차 계수들 각각의 부호를 예측된 부호와 반대로 설정할 수 있다. 복호화기에서는, 잔차 계수들에 대해 역양자화 및/또는 역변환을 수행하여, 잔차 블록을 획득하고, 잔차 블록을 기반으로 복원 블록을 획득할 수 있다. 또는, 비용이 가장 낮은 복원 블록과 제1 잔차 계수 및 제2 잔차 계수의 부호가 모두 상이한 복원 블록을 현재 블록의 복원 블록으로 선택할 수도 있다.
결과적으로, 가장 낮은 비용을 갖는 복원 블록을 획득된 잔차 계수의 부호를 예측된 부호로 설정하는 한편, 예측된 부호와 명시적으로 시그날링되는 부호 예측 정보를 기반으로, 잔차 계수의 최종 부호가 결정될 수 있다.
부호 예측이 수행되는 경우, 부호 예측이 수행되는 잔차 계수들을 제외한 잔여 잔차 계수들에 대해서는, 명시적으로 부호 정보가 부호화되어 시그날링될 수 있다. 반면, 부호 예측이 수행되는 잔차 계수들(예컨대, 도 18의 C0 및 C8)에 대해서는, 부호 정보가 명시적으로 부/복호화되는 대신, 부호 예측 정보가 명시적으로 부/복호화될 수 있다.
이때, 부호 예측 정보는, 확률 정보에 기반하여 부/복호화될 수 있다. 일 예로, 예측된 부호가 실제 부호와 일치하는 것에 높은 확률을 할당하고, 반대 경우에 낮은 확률을 할당하여, 상기 정보를 엔트로피 부호화할 수 있다. 다른 예로, 부호 예측 대상인 잔차 계수의 위치에 따라 확률을 적응적으로 설정할 수 있다. 일 예로, AC 성분인 잔차 계수보다 DC 성분인 잔차 계수에 대해, 예측된 부호 조합이 실제 부호 조합과 일치하는 것에 더 높은 확률이 부여될 수 있다.
즉, 잔차 계수에 대해, 문맥 정보가 이용되지 않는 바이패스 코딩을 통해 부호화되는 부호 정보를 대신, 문맥 정보에 기반한 문맥 코딩을 통해 부호화되는 부호 예측 정보를 이용함으로써, 부/복호화 효율이 향상될 수 있다.
한편, 잔차 계수에 대한 부호 예측이 허용되는지 여부는, 현재 블록의 크기, 현재 블록의 양자화 파라미터, 현재 블록의 부호화 모드, 현재 블록의 인트라 예측 모드, 현재 블록에 변환이 스킵되는지 여부, 현재 블록의 변환 코어 중 적어도 하나를 기초로 결정될 수 있다.
일 예로, 현재 블록에 변환 스킵이 적용되지 않는 경우에만, 잔차 계수들에 대한 부호 예측이 허용될 수 있다. 또는, 이와 반대로, 현재 블록에 변환 스킵이 적용되는 경우에만, 잔차 계수들에 대한 부호 예측이 허용될 수 있다.
현재 블록에 부호 예측이 허용되는 경우에만, 부호 정보 대신 부호 예측 정보가 부호화되어 시그날링될 수 있다.
한편, 부호 조합들 각각의 복원 블록을 생성함에 있어서, 간소화된 방법으로 복원 블록을 생성할 수 있다. 일 예로, 역변환을 수행하는 대신, 간소화된 방법으로, 복원 블록을 획득할 수 있다.
일 예로 도 18에 도시된 예에서, 4개의 부조 조합들 중 하나의 부호 조합(이하, 제1 부호 조합이라 함)에 대해서는 역변환을 수행하여 잔차값들을 복원할 수 있다. 반면, 위 부호 조합을 제외한 잔여 3가지 부호 조합들에 대해서는 역변환을 수행하는 대신, 제1 부호 조합에 대해 획득된 잔차값들(즉, 역변환을 통해 생성된 잔차값들)을 기반으로, 잔차값들을 획득할 수 있다. 일 예로, 제2 부호 조합에 대한 잔차값들 중 특정 위치의 잔차값은, 제1 부호 조합에 대해 획득된 잔차값들 중 특정 위치의 잔차값에 오프셋을 가산 또는 감산하여 유도되고, 잔여 위치의 잔차값들은 제1 부호 조합의 잔차값들과 동일하게 유도될 수 있다. 이때, 오프셋의 크기/부호, 또는 오프셋이 가산/감산되는 위치 중 적어도 하나는 부호 조합마다 상이할 수 있다. 일 예로, 도 4개의 부호 조합들 중 (+ ,+)조합에 대해서만 정상적으로 역변환을 수행하고, 그 외 (+, -), (-, +), (-, -)조합에 대해서는, 간소화된 방법으로 잔차값들을 복원할 수 있다.
각 복원 블록의 비용을 비교하여, 최적의 부호 조합이 결정되는 경우, 해당 조합에 대해 역변환을 수행하여 정상적으로 잔차값을 복원할 수 있다.
부호 예측 정보를 부호화하여 시그날링하는 대신, 최적의 부호 조합을 곧바로 잔차 계수의 부호로 결정할 수도 있다. 즉, 복호화기에서는에서는 예측된 묵시적으로 부호를 잔차 계수의 부호로 판단할 수 있다. 이 경우, 최적의 부호 조합을 잔차 계수들의 부호로 설정할 것인지 여부를 나타내는 1비트의 플래그가 별개로 부호화되어 시그날링될 수도 있다.
복호화 과정 또는 부호화 과정을 중심으로 설명된 실시예들을, 부호화 과정 또는 복호화 과정에 적용하는 것은, 본 개시의 범주에 포함되는 것이다. 소정의 순서로 설명된 실시예들을, 설명된 것과 상이한 순서로 변경하는 것 역시, 본 개시의 범주에 포함되는 것이다.
상술한 개시는 일련의 단계 또는 순서도를 기초로 설명되고 있으나, 이는 발명의 시계열적 순서를 한정한 것은 아니며, 필요에 따라 동시에 수행되거나 다른 순서로 수행될 수 있다. 또한, 상술한 개시에서 블록도를 구성하는 구성요소(예를 들어, 유닛, 모듈 등) 각각은 하드웨어 장치 또는 소프트웨어로 구현될 수도 있고, 복수의 구성요소가 결합하여 하나의 하드웨어 장치 또는 소프트웨어로 구현될 수도 있다. 상술한 개시는 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 하드웨어 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 개시는 영상 부호화 또는 부호화가 가능한 전자 장치에 적용될 수 있다.

Claims (15)

  1. 적어도 하나의 잔차 계수에 대한 부호 예측이 적용되는지 여부를 결정하는 단계;
    상기 부호 예측이 적용되는 것으로 결정되는 경우, 상기 적어도 하나의 잔차 계수에 적용 가능한 부호 조합들 각각에 대한 복원 블록을 유도하는 단계;
    복수의 복원 블록들 각각의 비용을 산출하는 단계; 및
    상기 부호 예측이 적용되는 상기 적어도 하나의 잔차 계수에 대한 부호 예측 정보와 상기 복수의 복원 블록들 각각의 비용을 기초로, 복원 블록을 획득하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1 항에 있어서,
    상기 부호 예측이 적용되는 경우, 상기 적어도 하나의 잔차 계수를 제외한 잔여 잔차 계수들에 대해서는 부호 정보가 명시적으로 시그날링되는 한편,
    상기 적어도 하나의 잔차 계수에 대해서는 부호 정보의 시그날링이 생략되는 것을 특징으로 하는, 영상 복호화 방법.
  3. 제1 항에 있어서,
    상기 적어도 하나의 잔차 계수는, DC 성분인 잔차 계수를 포함하는 것을 특징으로 하는, 영상 복호화 방법.
  4. 제1 항에 있어서,
    상기 적어도 하나의 잔차 계수는, 마지막 0이 아닌 위치의 잔차 계수를 포함하는 것을 특징으로 하는, 영상 복호화 방법.
  5. 제1 항에 있어서,
    복원 블록의 비용은, 상기 복원 블록의 상단 경계에 위치하는 상단 복원 샘플들을 기초로 획득되는 수직 방향 비용 및 상기 복원 블록의 좌측 경계에 위치하는 복원 샘플들을 기초로 획득되는 수평 방향 비용 중 적어도 하나를 기초로 획득되는 것을 특징으로 하는, 영상 복호화 방법.
  6. 제5 항에 있어서,
    상기 현재 블록의 인트라 예측 모드가 비방향성 인트라 예측 모드인 경우, 상기 복원 블록의 상기 비용은, 상기 수평 방향 비용 및 상기 수직 방향 비용의 합으로 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  7. 제5 항에 있어서,
    상기 현재 블록의 인트라 예측 모드가 방향성 예측 모드인 경우, 상기 복원 블록의 상기 비용은 상기 수평 방향 비용 또는 상기 수직 방향 비용과 동일하게 결정되는 것으로 특징으로 하는, 영상 복호화 방법.
  8. 제1 항에 있어서,
    상기 현재 블록에 상기 부호 예측을 적용하는 것이 허용되는지 여부는, 상기 현재 블록의 크기, 양자화 파라미터, 부호화 모드, 인트라 예측 모드 또는 상기 현재 블록에 변환 스킵이 적용되는지 여부 중 적어도 하나를 기초로 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  9. 제1 항에 있어서,
    상기 부호 예측 정보는, 상기 복수의 복원 블록들 중 비용이 가장 작은 복원 블록을 유도하는데 이용된 잔차 계수의 부호가 실제 부호와 일치하는지 여부를 나타내는 것을 특징으로 하는, 영상 복호화 방법.
  10. 제9 항에 있어서,
    상기 부호 예측 정보는 확률 정보를 기반으로 부호화되고,
    상기 확률 정보는, 상기 적어도 하나의 잔차 계수의 위치를 기반으로 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  11. 적어도 하나의 잔차 계수에 적용 가능한 부호 조합들 각각에 대한 복원 블록을 유도하는 단계;
    복수의 복원 블록들 각각의 비용을 산출하는 단계; 및
    상기 적어도 하나의 잔차 계수에 대해, 상기 복수의 복원 블록들 중 비용이 가장 낮은 복원 블록을 유도하는데 이용된 상기 적어도 하나의 잔차 계수의 부호가 실제 부호와 조합과 일치하는지 여부를 가리키는 부호 예측 정보를 부호화하는 단계를 포함하는, 영상 부호화 방법.
  12. 제11 항에 있어서,
    상기 적어도 하나의 잔차 계수를 제외한 잔여 잔차 계수들에 대해서는 부호 정보가 명시적으로 부호화되는 한편,
    상기 적어도 하나의 잔차 계수에 대해서는 부호 정보의 부호화가 생략되는 것을 특징으로 하는, 영상 부호화 방법.
  13. 제11 항에 있어서,
    상기 적어도 하나의 잔차 계수는, DC 성분인 잔차 계수를 포함하는 것을 특징으로 하는, 영상 부호화 방법.
  14. 제11 항에 있어서,
    상기 부호 예측 정보는 확률 정보를 기반으로 부호화되고, 상기 확률 정보는 상기 적어도 하나의 잔차 계수의 위치를 기반으로 결정되는 것을 특징으로 하는, 영상 부호화 방법.
  15. 적어도 하나의 잔차 계수에 적용 가능한 부호 조합들 각각에 대한 복원 블록을 유도하는 단계;
    복수의 복원 블록들 각각의 비용을 산출하는 단계; 및
    상기 복수의 복원 블록들 중 비용이 가장 낮은 복원 블록을 유도하는데 이용된 부호 조합이 실제 부호 조합과 일치하는지 여부를 가리키는 정보를 부호화하는 단계를 포함하는, 영상 부호화 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2022/020616 2021-12-17 2022-12-16 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체 WO2023113551A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210182014 2021-12-17
KR10-2021-0182014 2021-12-17

Publications (1)

Publication Number Publication Date
WO2023113551A1 true WO2023113551A1 (ko) 2023-06-22

Family

ID=86773141

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/020616 WO2023113551A1 (ko) 2021-12-17 2022-12-16 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체

Country Status (2)

Country Link
KR (1) KR20230092806A (ko)
WO (1) WO2023113551A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150139303A1 (en) * 2012-06-29 2015-05-21 Sony Corporation Encoding device, encoding method, decoding device, and decoding method
US20180176563A1 (en) * 2016-12-21 2018-06-21 Qualcomm Incorporated Low-complexity sign prediction for video coding
KR102149023B1 (ko) * 2017-04-13 2020-08-28 엘지전자 주식회사 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
KR20200110442A (ko) * 2018-03-07 2020-09-23 후아웨이 테크놀러지 컴퍼니 리미티드 다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 방법 및 장치
KR20200112964A (ko) * 2018-03-07 2020-10-05 후아웨이 테크놀러지 컴퍼니 리미티드 변환 도메인에서 잔차 부호 예측 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150139303A1 (en) * 2012-06-29 2015-05-21 Sony Corporation Encoding device, encoding method, decoding device, and decoding method
US20180176563A1 (en) * 2016-12-21 2018-06-21 Qualcomm Incorporated Low-complexity sign prediction for video coding
KR102149023B1 (ko) * 2017-04-13 2020-08-28 엘지전자 주식회사 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
KR20200110442A (ko) * 2018-03-07 2020-09-23 후아웨이 테크놀러지 컴퍼니 리미티드 다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 방법 및 장치
KR20200112964A (ko) * 2018-03-07 2020-10-05 후아웨이 테크놀러지 컴퍼니 리미티드 변환 도메인에서 잔차 부호 예측 방법 및 장치

Also Published As

Publication number Publication date
KR20230092806A (ko) 2023-06-26

Similar Documents

Publication Publication Date Title
WO2018056703A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018008906A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019164031A1 (ko) 영상 코딩 시스템에서 블록 분할 구조에 따른 영상 디코딩 방법 및 장치
WO2018097691A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017026681A1 (ko) 비디오 코딩 시스템에서 인터 예측 방법 및 장치
WO2018030599A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019225993A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018097626A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017043949A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018070742A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018038554A1 (ko) 이차 변환을 이용한 비디오 신호의 인코딩/디코딩 방법 및 장치
WO2020096425A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2018212579A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018124333A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019182295A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018066958A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019190201A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019235891A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018056701A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018105759A1 (ko) 영상 부호화/복호화 방법 및 이를 위한 장치
WO2018093184A1 (ko) 비디오 신호 처리 방법 및 장치
WO2016190627A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020096427A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2018155983A1 (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: 22908016

Country of ref document: EP

Kind code of ref document: A1