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

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

Info

Publication number
WO2021194223A1
WO2021194223A1 PCT/KR2021/003582 KR2021003582W WO2021194223A1 WO 2021194223 A1 WO2021194223 A1 WO 2021194223A1 KR 2021003582 W KR2021003582 W KR 2021003582W WO 2021194223 A1 WO2021194223 A1 WO 2021194223A1
Authority
WO
WIPO (PCT)
Prior art keywords
filter
adaptive loop
inter
loop filter
component
Prior art date
Application number
PCT/KR2021/003582
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 WO2021194223A1 publication Critical patent/WO2021194223A1/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/117Filters, e.g. for pre-processing or post-processing
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present disclosure relates to a video signal processing method and apparatus.
  • HD High Definition
  • UHD Ultra High Definition
  • Inter-screen prediction technology that predicts pixel values included in the current picture from pictures before or after the current picture with image compression technology
  • intra-picture prediction technology that predicts pixel values included in the current picture using pixel information in the current picture
  • Various techniques exist such as entropy encoding technology in which a short code is assigned to a value with a high frequency of occurrence and a long code is assigned to a value with a low frequency of occurrence.
  • An object of the present disclosure is to provide a method and an apparatus for applying an in-loop filter in encoding/decoding a video signal.
  • An object of the present disclosure is to provide a method and an apparatus for applying an inter-component adaptive loop filter in encoding/decoding a video signal.
  • An object of the present disclosure is to provide a method and an apparatus for applying an adaptive loop filter between nonlinear components in encoding/decoding a video signal.
  • An object of the present disclosure is to provide a method and an apparatus for applying an integrated inter-component adaptive loop filter to chrominance components in encoding/decoding a video signal.
  • the video signal decoding method includes the steps of determining whether to apply an inter-component adaptive loop filter, and when the inter-component adaptive loop filter is applied, whether the inter-component adaptive loop filter has linearity or determining whether it has non-linearity, determining a set of filter coefficients of the inter-component adaptive loop filter, using the set of filter coefficients to filter a luminance sample to derive a chrominance offset, and the chrominance offset and improving the color difference sample using
  • a video signal encoding method includes the steps of determining whether to apply an inter-component adaptive loop filter, and when the inter-component adaptive loop filter is applied, whether the inter-component adaptive loop filter has linearity or determining whether it has non-linearity, determining a set of filter coefficients of the inter-component adaptive loop filter, using the set of filter coefficients to filter a luminance sample to derive a chrominance offset, and the chrominance offset and improving the color difference sample using
  • a clipping value for applying the clipping function may be determined by an index specifying one of a plurality of clipping value candidates.
  • the index may be determined by a 1-bit flag decoded from a bitstream.
  • the number of clipping value candidates may be adaptively determined based on at least one of a color format, a bit depth, and a filter type.
  • the plurality of clipping value candidates may be derived from one of a plurality of lookup tables defining a mapping relationship between bit depth and clipping value candidates.
  • one of the plurality of lookup tables may be selected by index information parsed from a bitstream.
  • the flag may be decoded only for positions to which a predefined filter coefficient is applied among the reconstructed samples in the current block.
  • the clipping function may be applied only at a position where the predefined filter coefficient is applied.
  • 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. 3 is a diagram illustrating an application sequence of in-loop filters.
  • FIG. 4 is a flowchart of a method of applying an adaptive loop filter according to an embodiment of the present disclosure.
  • FIG. 5 shows an example in which the size of a diamond-shaped filter is defined.
  • FIG. 6 shows an example in which a rectangular adaptive loop filter is applied.
  • FIG. 7 is a flowchart illustrating an application aspect of an inter-component adaptive loop filter.
  • CCALF inter-component adaptive loop filter
  • FIG. 9 is a diagram illustrating an example of deriving a chrominance offset by applying an inter-component adaptive loop filter to luminance samples.
  • FIG. 10 shows an example in which a color difference offset is induced through a hexagonal filter.
  • FIG. 11 shows an example in which a rectangular 6-tap filter is applied.
  • FIG. 13 illustrates an example in which an inter-component adaptive loop filter is applied to an image having a color format of 4:4:4.
  • 16 is an illustration of various filter types available as an inter-component adaptive loop filter.
  • 17 is an exemplary diagram for describing a virtual boundary.
  • FIG. 18 is an exemplary diagram for explaining an application aspect of a filter when the filter is configured symmetrically and spans a virtual boundary.
  • first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present disclosure, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
  • FIG. 1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present disclosure.
  • the 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 , and an entropy encoding unit ( 165 ), an inverse quantization unit 140 , an inverse transform unit 145 , a filter unit 150 , and a memory 155 .
  • each of the constituent units shown in FIG. 1 is independently illustrated to represent different characteristic functions in the image encoding apparatus, and does not mean that each constituent unit is composed of separate hardware or one software constituent unit. That is, each component is listed as each component for convenience of description, and at least two components of each component are combined to form one component, or one component can be divided into a plurality of components to perform a function, and each Integrated embodiments and separate embodiments of the components are also included in the scope of the present disclosure without departing from the essence of the present disclosure.
  • components are not essential components to perform an essential function in the present disclosure, but may be optional components for merely improving performance.
  • the present disclosure may be implemented by including only essential components to implement the essence of the present disclosure, except for components used for performance improvement, and a structure including only essential components excluding optional components used for performance improvement Also included in the scope of the present disclosure.
  • the picture divider 110 may divide the 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 splitter 110 divides one picture into a combination of a plurality of coding units, prediction units, and transformation units, and combines one coding unit, prediction unit, and transformation unit based on a predetermined criterion (eg, a cost function). can be selected to encode the picture.
  • 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 with the coding unit as a root may be divided having as many child nodes as the number of the divided coding units.
  • a coding unit that is no longer split according to certain restrictions 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 may be used as a meaning for a unit for performing decoding.
  • a prediction unit may be split in the form of at least one square or rectangle of the same size within one coding unit, and one prediction unit among the split prediction units within one coding unit is a prediction of another. It may be divided to have a shape and/or size different from that of the unit.
  • the transformation unit and the prediction unit may be set to be the same. In this case, after dividing the coding unit into a plurality of transform units, intra prediction may be performed for each transform unit.
  • a coding unit may be divided in a horizontal direction or a vertical direction. 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 performing inter prediction and an intra prediction unit 125 performing intra prediction. Whether to use inter prediction or to perform intra prediction on a coding unit may be determined, and specific information (eg, intra prediction mode, motion vector, reference picture, etc.) according to each prediction method may be determined. In this case, a processing unit in which prediction is performed and a processing unit in which a prediction method and specific content 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 . Also, prediction mode information, motion vector information, etc.
  • the entropy encoder 165 may be encoded by the entropy encoder 165 together with the residual value and transmitted to the decoding apparatus.
  • a specific encoding mode it is also possible to encode the original block as it is without generating the prediction block through the prediction units 120 and 125 and transmit it to the decoder.
  • the inter prediction unit 120 may predict a prediction unit based on information on at least one of a picture before or after a picture of the current picture, and in some cases, prediction based on information of a partial region in the current picture that has been encoded Units can also be predicted.
  • the inter prediction unit 120 may include a reference picture interpolator, a motion prediction unit, and a motion compensator.
  • the reference picture interpolator may receive reference picture information from the memory 155 and generate pixel information of integer pixels or less in the reference picture.
  • a DCT-based 8-tap interpolation filter (DCT-based Interpolation Filter) with different filter coefficients may be used to generate pixel information of integer pixels or less in units of 1/4 pixels.
  • a DCT-based 4-tap interpolation filter in which filter coefficients are different to generate pixel information of integer pixels or less in units of 1/8 pixels may be used.
  • the motion prediction unit 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.
  • the motion vector may have a motion vector value of 1/2 or 1/4 pixel unit based on the interpolated pixel.
  • the motion prediction unit may predict the current prediction unit by using a different motion prediction method.
  • Various methods such as a skip method, a merge method, an AMVP (Advanced Motion Vector Prediction) method, an intra block copy method, etc., may be used as the motion prediction method.
  • 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.
  • An Nth reference pixel line among the plurality of reference pixel lines may include left pixels having an x-axis difference of N from an upper-left pixel in the current block and upper pixels having an y-axis difference of N from the upper-left pixel.
  • the number of reference pixel lines that the current block can select may be one, two, three, or four.
  • a reference pixel included in the block on which inter prediction is performed is a reference pixel of the block on which intra prediction has been performed.
  • information can be used instead. That is, when the reference pixel is not available, the unavailable reference pixel information may be replaced with information of at least one of the available reference pixels.
  • the prediction mode may have a directional prediction mode in which reference pixel information is used according to a prediction direction and a non-directional mode in which directional information is not used when prediction is performed.
  • a mode for predicting luminance information and a mode for predicting chrominance information may be different, and intra prediction mode information used for predicting luminance information or predicted luminance signal information may be utilized to predict chrominance information.
  • intra prediction When intra prediction is performed, if the size of the prediction unit and the size of the transformation unit are the same, intra prediction for the prediction unit based on the pixel present on the left side, the pixel present on the upper left side, and the pixel present on the upper side of the prediction unit can be performed.
  • the intra prediction method may generate a prediction block after applying a smoothing filter to a reference pixel according to a prediction mode. Whether to apply the 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 mode of the prediction unit existing around the current prediction unit.
  • the prediction mode of the current prediction unit is predicted using the mode information predicted from the neighboring prediction unit, if the intra prediction mode of the current prediction unit and the neighboring prediction unit are the same, the current prediction unit and the neighboring prediction unit are used using predetermined flag information It is possible to transmit information that the prediction modes of . , and if the prediction modes of the current prediction unit and the neighboring prediction units are different from each other, entropy encoding may be performed to encode prediction mode information of the current block.
  • a residual block including residual information which is a difference value between a prediction unit and an original block of the prediction unit, in which prediction is performed based on the prediction unit generated by the prediction units 120 and 125 may be generated.
  • the generated residual block may be input to the transform unit 130 .
  • the transform unit 130 converts the original block and the residual block including residual information of the prediction unit generated by the prediction units 120 and 125 to DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT and It can be converted using the same conversion method. Whether to apply DCT, DST, or KLT to transform the residual block is based on at least one of the size of the transform unit, the shape of the transform unit, the prediction mode of the prediction unit, or the intra prediction mode information of the prediction unit. can decide
  • the quantizer 135 may quantize the values transformed by the transform unit 130 into the frequency domain.
  • the quantization coefficient may change according to blocks or the 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 on the quantized residual values.
  • the reordering unit 160 may change the two-dimensional block form coefficient into a one-dimensional vector form through a coefficient scanning method.
  • the rearranging unit 160 may use a Zig-Zag Scan method to scan from DC coefficients to coefficients in a high-frequency region and change them into a one-dimensional vector form.
  • a zig-zag scan instead of a zig-zag scan, a vertical scan that scans a two-dimensional block shape coefficient in a column direction, a horizontal scan that scans a two-dimensional block shape coefficient in a row direction, or a two-dimensional block
  • a diagonal scan that scans the shape coefficients in the diagonal direction may be used. That is, it may be determined whether any of the zig-zag scan, vertical scan, horizontal scan, or diagonal scan is to be used according to the size of the transform 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 .
  • various encoding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be used.
  • the entropy encoding unit 165 receives the residual value coefficient information and block type information, prediction mode information, division unit information, prediction unit information and transmission unit information, motion of the coding unit from the reordering unit 160 and the prediction units 120 and 125 .
  • Various information such as vector information, reference frame information, interpolation information of a block, and filtering information may be encoded.
  • the entropy encoder 165 may entropy-encode the coefficient values of the coding units input from the reordering unit 160 .
  • the inverse quantizer 140 and the inverse transform unit 145 inversely quantize the values quantized by the quantizer 135 and inversely transform the values transformed by the transform unit 130 .
  • the residual values generated by the inverse quantizer 140 and the inverse transform unit 145 are combined with the prediction units predicted through the motion estimation unit, the motion compensator, and the intra prediction unit included in the prediction units 120 and 125 and restored. You can create a Reconstructed Block.
  • the filter unit 150 may include at least one of a deblocking filter, an offset correcting unit, and an adaptive loop filter (ALF).
  • a deblocking filter may include at least one of a deblocking filter, an offset correcting unit, and an adaptive loop filter (ALF).
  • ALF adaptive loop filter
  • the deblocking filter may remove block distortion caused by the boundary between blocks in the 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 can be applied according to the required deblocking filtering strength.
  • horizontal filtering and vertical filtering may be concurrently processed when performing vertical filtering and horizontal filtering.
  • the offset correcting unit may correct an offset from the original image in units of pixels with respect to the image on which the deblocking has been performed.
  • a method of dividing pixels included in an image into a certain number of regions, determining the region to be offset and applying the offset to the region, or taking edge information of each pixel into consideration can be used to apply
  • Adaptive loop filtering may be performed based on a value obtained by comparing the filtered reconstructed image and the original image. After dividing the pixels included in the image into a predetermined group, one filter to be applied to the corresponding group is determined, and filtering can be performed differentially for each group.
  • the luminance signal may be transmitted for each coding unit (CU), and the shape and filter coefficients of the ALF filter to be applied may vary according to each block.
  • the ALF filter of the same type may be applied regardless of the characteristics of the target block.
  • the memory 155 may store the reconstructed block or picture calculated through the filter unit 150 , and the stored reconstructed block or picture may be provided to the predictors 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, prediction units 230 and 235, and a filter unit ( 240) and a memory 245 may be included.
  • the input bitstream may be decoded by a procedure opposite to that of the image encoding apparatus.
  • the entropy decoding unit 210 may perform entropy decoding in a procedure opposite to that performed by the entropy encoding unit of the image encoding apparatus. For example, various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied corresponding to the method performed by the image encoding apparatus.
  • various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied corresponding to the method performed by the image encoding apparatus.
  • CAVLC Context-Adaptive Variable Length Coding
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • the entropy decoding unit 210 may decode information related to intra prediction and inter prediction performed by the encoding apparatus.
  • the reordering unit 215 may perform reordering based on a method of rearranging the entropy-decoded bitstream by the entropy decoding unit 210 by the encoder. Coefficients expressed in the form of a one-dimensional vector may be restored and rearranged as coefficients in the form of a two-dimensional block.
  • the reordering unit 215 may receive information related to coefficient scanning performed by the encoder and perform the reordering by performing a reverse scanning method 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 apparatus and the reordered coefficient values of the blocks.
  • the inverse transform unit 225 may perform inverse transforms, ie, inverse DCT, inverse DST, and inverse KLT, on the transforms performed by the transform unit, ie, DCT, DST, and KLT, on the quantization result performed by the image encoding apparatus.
  • Inverse transform may be performed based on a transmission unit determined by the image encoding apparatus.
  • a transformation technique eg, DCT, DST, KLT
  • a transformation technique may be selectively performed according to a plurality of pieces of information such as a prediction method, a size, a shape of a current block, a prediction mode, and an intra prediction direction.
  • the prediction units 230 and 235 may generate a prediction block based on the prediction block generation related information provided from the entropy decoding unit 210 and previously decoded block or picture information provided from the memory 245 .
  • intra prediction when intra prediction is performed in the same manner as in the operation in the image encoding apparatus, when the size of the prediction unit and the size of the transformation unit are the same, the pixel present on the left side of the prediction unit, the pixel present on the upper left side, and the upper Intra prediction is performed on the prediction unit based on the existing pixel, but when the size of the prediction unit and the size of the transformation unit are different when performing intra prediction, intra prediction is performed using the reference pixel based on the transformation unit can do. Also, intra prediction using NxN splitting may be used only for the smallest coding unit.
  • the prediction units 230 and 235 may include a prediction unit determiner, an inter prediction unit, and an intra prediction unit.
  • the prediction unit determining unit receives various information such as prediction unit information input from the entropy decoder 210, prediction mode information of the intra prediction method, and motion prediction related information of the inter prediction method, and divides the prediction unit from the current coding unit, and predicts It may be determined whether the unit performs inter prediction or intra prediction.
  • the inter prediction unit 230 uses information required for inter prediction of the current prediction unit provided from the image encoding apparatus based on information included in at least one of a picture before or after the current picture including the current prediction unit. Inter prediction may be performed on the prediction unit. Alternatively, inter prediction may be performed based on information of a pre-restored partial region in the current picture including the current prediction unit.
  • a motion prediction method of a prediction unit included in a corresponding coding unit based on a coding unit is selected from among skip mode, merge mode, AMVP mode, and intra block copy mode. You can decide which way to go.
  • 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 image encoding apparatus.
  • the intra prediction unit 235 may include an Adaptive Intra Smoothing (AIS) filter, a reference pixel interpolator, and a DC filter.
  • the AIS filter is a part that performs filtering on the reference pixel of the current block, and may 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 pixel of the current block by using the prediction mode and AIS filter information of the prediction unit provided by the image encoding apparatus.
  • the prediction mode of the current block is a mode in which AIS filtering is not performed, the AIS filter may not be applied.
  • the reference pixel interpolator may interpolate the reference pixel to generate a reference pixel of a pixel unit having an integer value or less.
  • the prediction mode of the current prediction unit is a prediction mode that generates a prediction block without interpolating the reference pixel
  • the reference pixel may not be interpolated.
  • the DC filter may generate the prediction block through filtering when the prediction mode of the current block is the DC mode.
  • the reconstructed block or picture may be provided to the filter unit 240 .
  • the filter unit 240 may include a deblocking filter, an offset correction unit, and an ALF.
  • the deblocking filter of the image decoding apparatus may receive deblocking filter-related information provided from the image encoding apparatus, and the image 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 of offset correction applied to the image during encoding, information on the offset value, and the like.
  • ALF may be applied to a coding unit based on information on whether ALF is applied, ALF coefficient information, etc. provided from the encoding apparatus. Such ALF information may be provided by being included in a specific parameter set.
  • the memory 245 may store the reconstructed picture or block to 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 term for a coding unit for convenience of description, but may also be a unit for performing decoding as well as coding.
  • the current block indicates a block to be encoded/decoded, and according to the encoding/decoding step, a coding tree block (or coding tree unit), a coding block (or a coding unit), a transform block (or a transform unit), and a prediction block (or a prediction unit) or a block to which an in-loop filter is applied.
  • a 'unit' may indicate a basic unit for performing a specific encoding/decoding process
  • a 'block' may indicate a pixel array of a predetermined size.
  • 'block' and 'unit' may be used interchangeably.
  • the coding block (coding block) and the coding unit (coding unit) are mutually equivalent.
  • an in-loop filter may be applied to the reconstruction block.
  • a deblocking filter e.g., a sample adaptive offset filter (SAO) filter
  • an adaptive loop filter e.g., a filter that filters the reconstruction block.
  • In-loop filters may be applied according to a predefined order.
  • the filters may be applied in the order of a deblocking filter, a sample adaptive offset filter, and an adaptive loop filter.
  • each filter may be independently determined. For example, even if the deblocking filter or the sample adaptive offset filter is not applied, the adaptive loop filter may be applied to the reconstruction block.
  • the adaptive loop filter may be set to be applied only when at least one of the deblocking filter and the sample adaptive offset filter is applied to the reconstruction block.
  • FIG. 3 is a diagram illustrating an application sequence of in-loop filters.
  • the in-loop filter is applied in the order of a deblocking filter (DF), a sample adaptive offset filter (SAO), and an adaptive loop filter (ALF).
  • DF deblocking filter
  • SAO sample adaptive offset filter
  • ALF adaptive loop filter
  • the encoder may determine whether to apply the sample adaptive offset filter according to Rate-Distortion Optimization (RDO). After applying the sample adaptive offset filter, it is possible to determine whether to apply the adaptive loop filter according to the RDO again.
  • RDO Rate-Distortion Optimization
  • each of the in-loop filters may be individually applied to each of the color components.
  • the filtered luminance sample Y DF , the filtered first chrominance sample Cb DF , and the filtered second chrominance sample Cr DF may be output.
  • the sample adaptive offset filter the filtered luminance sample Y SAO , the filtered first chrominance sample Cb SAO , and the filtered second chrominance sample Cr SAO may be output.
  • Y ALF for the filtered luminance sample, the filtered first chrominance sample Cb ALF , and the filtered second chrominance sample Cr ALF may be output.
  • FIG. 4 is a flowchart of a method of applying an adaptive loop filter according to an embodiment of the present disclosure.
  • the adaptive loop filter refers to a method of applying a polygonal type filter to a reconstruction block.
  • a block to be determined whether or not to apply the adaptive loop filter is referred to as a current block.
  • a flag indicating whether the adaptive loop filter is applied may be encoded and signaled.
  • alf_ctb_flag indicates whether the adaptive loop filter is applied to the current block.
  • Whether to apply the adaptive loop filter may be determined in units of a coding tree, a coding unit, or a transform unit.
  • information indicating the size of a block (hereinafter, a reference block) for determining whether an adaptive loop filter is applied may be signaled through a bitstream.
  • the information may be signaled at a slice, picture, or sequence level.
  • the information may indicate a difference between the size of the coding tree unit and the size of the reference block.
  • the difference information may indicate a difference between a value obtained by taking Log_2 as the size of a coding tree unit and a value obtained by taking Log_2 as the size of a reference block.
  • the difference information may be set to 2 (Log 2 (132/32)).
  • the size of the basic block may be predefined in the encoder and the decoder.
  • the reference block may have a fixed size of 64x64.
  • the color component represents a luminance (Luma) component or a color difference (Cb, Cr) component.
  • the alf_ctb_flag may be encoded and signaled for each color component.
  • whether to independently determine whether to apply the adaptive loop filter for each color component may be determined according to a color format.
  • the color format indicates a composition ratio of a luminance component and a chrominance component (eg, 4:4:4, 4:2:2, 4:2:0).
  • the color format is 4:4:4
  • the color format is 4:2:2 or 4:2:0
  • the result of determining whether to apply the adaptive loop filter to the luminance component may be directly applied to the chrominance component.
  • a filter type to be applied to the current block may be determined ( S402 ). Determining the filter type refers to determining at least one of a filter type, filter coefficients, or filter size.
  • the filter shape may be a polygonal shape.
  • the adaptive loop filter may have a square shape, a non-square shape, a diamond shape, a trapezoid shape, a rhombus shape, a hexagon shape, or a cross shape.
  • the form of the adaptive loop filter may be predefined in the encoder and the decoder.
  • information for specifying the type of the adaptive loop filter may be signaled through the bitstream.
  • index information indicating one of a plurality of filter types may be signaled through a bitstream.
  • the filter type may be determined based on at least one of a color component, a color format, or a bit depth.
  • the diamond filter may be fixedly applied to both the luminance component and the chrominance component.
  • diamond-shaped filters are applied to both the luminance component and the chrominance component, and when the color format is 4:2:2, diamond is applied to the luminance component.
  • a type filter may be applied, and a non-diamond type filter (eg, a square filter) may be applied to the color difference component.
  • filter coefficients that minimize the reconstruction error can be derived.
  • information on filter coefficients indicating optimal efficiency may be encoded and signaled to a decoder.
  • the size of the filter may be defined by at least one of the number of taps in the horizontal direction and the number of taps in the vertical direction of the filter.
  • FIG. 5 shows an example in which the size of a diamond-shaped filter is defined.
  • the size of the diamond-shaped filter may be defined as a maximum length (maximum number of taps) in a horizontal direction and a maximum length (maximum number of taps) in a vertical direction.
  • a diamond filter having a size of 7x7 indicates that the maximum length in the horizontal direction and the maximum length in the vertical direction are 7, respectively.
  • the maximum length in the horizontal direction and the maximum length in the vertical direction of the diamond-shaped filter are the same. Unlike the illustrated example, a diamond-shaped filter having a different maximum length in a horizontal direction and a maximum length in a vertical direction may be used.
  • a filter size may be set differently for each color component. For example, a diamond-shaped filter having a size of 7x7 may be used for the luminance component and a diamond-shaped filter having a size of 5x5 may be used for the chrominance component.
  • the size of the filter applied to the color difference component may be determined in consideration of the color format. For example, when the color format is 4:2:0, the diamond-shaped filter having a size of 5x5 shown in FIG. 5B may be applied to the color difference component. On the other hand, when the color format is 4:4:4, a filter having the same size as the luminance component, for example, a 7x7 diamond filter shown in FIG. 5A may be applied to the chrominance component.
  • a filter having the same size as the luminance component may be applied to the chrominance component.
  • a filter having at least one of a maximum length in a horizontal direction and a maximum length in a vertical direction shorter than a filter applied to the luminance component may be applied to the color difference component.
  • whether to apply the same size filter to the luminance component and the chrominance component may be determined according to the color format.
  • the reconstructed sample may be filtered using the determined filter type ( S403 ). Specifically, the reconstructed sample may be filtered using reconstructed samples around the reconstructed sample. In this case, the position and the number of neighboring reconstructed samples may be determined by the filter type.
  • FIG. 6 shows an example in which a rectangular adaptive loop filter is applied.
  • I(x, y) represents a value of a sample before the adaptive loop filter is applied
  • O(x, y) represents a value of a sample after the loop filter is applied. Equation 1 below represents the application aspect of the adaptive loop filter shown in FIG. 6 as an equation.
  • Equation 1 When whether or not the adaptive loop filter is applied in units of coding tree units, in Equation 1, (x, y) represents the coordinates of the samples in the coding tree unit, and (i, j) represents the coordinates according to the filter shape. indicates. For example, assuming that the central position of the filter is (0, 0), values of i and j may be determined. For example, as in the example shown in FIG. 6 , when a rectangular filter having a size of 3x3 is applied, i and j may be set to integers between -1 and 1, respectively. Depending on the type of filter, ranges of values of i and j may be different.
  • Equation 1 the sum of filter coefficients (eg, ) may be set to 1.
  • ( ) represents the filter coefficient (w(0, 0)) of the central position.
  • O(x, y) represents the filtered sample value, and I(x, y) represents the input value (ie, the sample value before applying the filter).
  • S represents the application area of the adaptive loop filter.
  • filter coefficients w(i,j) are expressed as a one-dimensional variable f[n].
  • f[12] marked at the filter center position represents w (0, 0)
  • f[6] marked at the filter center position is w (0, 0) is represented.
  • one filter coefficient may be applied to a plurality of positions.
  • filter coefficients in the filter may be distributed in a symmetrical form. It is possible to derive the filter coefficients only for some, but not all, positions in the filter. Using the symmetry of the filter, the filter coefficients of the residual position can be derived.
  • the clip function may be defined as in Equation 3 below.
  • Information indicating whether the nonlinear adaptive loop filter is applied may be encoded and signaled. For example, a 1-bit flag indicating whether a nonlinear adaptive loop filter is applied may be encoded and signaled.
  • information for determining a clipping value corresponding to a filter coefficient may be encoded and signaled.
  • information indicating a clipping value c[n] corresponding to the filter coefficient f[n] may be encoded.
  • An adaptive loop filter between color components may be applied.
  • the adaptive loop filter between the color components it is possible to reduce the reconstruction error for the color difference component.
  • CCALF cross-component adaptive loop filter
  • FIG. 7 is a flowchart illustrating an application aspect of an inter-component adaptive loop filter.
  • a flag indicating whether an inter-component adaptive loop filter is applied may be encoded and signaled. For example, a value of the flag of 1 indicates that the inter-component adaptive loop filter is applied, and a value of 0 indicates that the inter-component adaptive loop filter is not applied.
  • Whether to apply the inter-component adaptive loop filter may be determined in units of coding tree units, coding units, or transform units.
  • information indicating the size of a block (hereinafter, a reference block) for determining whether an inter-component adaptive loop filter is applied may be signaled through a bitstream.
  • the information may be signaled at a slice, picture, or sequence level.
  • the information may indicate a difference between the size of the coding tree unit and the size of the reference block.
  • the difference information may indicate a difference between a value obtained by taking Log_2 as the size of a coding tree unit and a value obtained by taking Log_2 as the size of a reference block.
  • the difference information may be set to 2 (Log 2 (132/32)).
  • the size of the basic block may be predefined in the encoder and the decoder.
  • the reference block may have a fixed size of 64x64.
  • Whether the inter-component adaptive loop filter is applied may be independently determined for each color difference component.
  • ccalf_ctb_flag may be encoded and signaled for each of the first chrominance component (eg, Cb) and the second chrominance component (eg, Cr).
  • ccalf_ctb_flag indicates whether an inter-component adaptive loop filter is applied to the current block.
  • the flag may be signaled through an upper header such as a slice, a tile, a subpicture, a picture, or a sequence.
  • the inter-component adaptive loop filter may be applied only when the adaptive loop filter is applied to each color component. As an example, only when the adaptive loop filter is applied to the luminance component and the chrominance component, the inter-component adaptive loop filter may be applied.
  • whether the inter-component adaptive loop filter is applied may be determined by considering only whether the adaptive loop filter is applied to the chrominance component regardless of whether the adaptive loop filter is applied to the luminance component.
  • an inter-component adaptive loop filter Based on whether another in-loop filter (eg, at least one of a deblocking filter or a sample adaptive offset filter) is applied, whether to apply an inter-component adaptive loop filter may be determined. For example, only when the sample adaptive offset filter is applied to the chrominance component, the inter-component adaptive loop filter may be applied. Alternatively, on the contrary, only when the sample adaptive offset filter is not applied to the chrominance component, the inter-component adaptive loop filter may be applied.
  • another in-loop filter eg, at least one of a deblocking filter or a sample adaptive offset filter
  • the filter type may be determined (S702). Determining the filter type refers to determining at least one of a filter type, filter coefficients, or filter size.
  • an offset for a chrominance component may be derived by applying a filter to the reconstructed luminance sample based on the determined filter type ( S703 ).
  • the reconstructed luminance sample is a luminance sample to which a sample adaptive offset filter is applied but an adaptive loop filter is not yet applied, a luminance sample to which a deblocking filter is applied but a sample adaptive offset filter is not yet applied It may represent at least one of the luminance samples to which the red loop filter is applied.
  • the chrominance offset may be applied to the chrominance sample to which the adaptive loop filter is applied ( S704 ).
  • a refined chrominance sample may be obtained by adding a chrominance offset to a chrominance sample to which the adaptive loop filter is applied.
  • CCALF inter-component adaptive loop filter
  • Y DF , Cb DF and Cr DF denote a Y image, a Cb image, and a Cr image after the deblocking filter is applied, respectively.
  • Y SAO , Cb SAO and Cr SAO mean a Y image, a Cb image, and a Cr image after the sample adaptive offset filter is applied, respectively.
  • Y ALF , Cb ALF and Cr ALF mean a Y image, a Cb image, and a Cr image after the adaptive loop filter is applied, respectively.
  • Cb CCALF and Cr CCALF mean a Cb image and a Cr image after an adaptive loop filter between components is applied, respectively.
  • Off Cb and Off Cr represent offset values applied to Cb ALF and Cr ALF, respectively.
  • a chrominance offset may be derived.
  • the chrominance offset may be derived by applying an inter-component adaptive loop filter to the reconstructed luminance sample.
  • the inter-component adaptive loop filter is applied to luminance samples Y SAO to which the sample adaptive offset filter is applied.
  • Y SAO represents luminance samples before the adaptive loop filter is applied.
  • the inter-component adaptive loop filter is applied to the luminance samples Y DF to which the deblocking filter is applied.
  • Y DF denotes luminance samples before the sample adaptive offset filter and the adaptive loop filter are applied.
  • FIG. 9 is a diagram illustrating an example of deriving a chrominance offset by applying an inter-component adaptive loop filter to luminance samples Y SAO to which a sample adaptive offset filter is applied.
  • An offset with respect to a chrominance sample at a position corresponding to the luminance sample may be obtained by applying an inter-component adaptive loop filter to the luminance sample and the surrounding luminance sample.
  • the inter-component adaptive loop filter may have a polygonal shape.
  • the inter-component adaptive loop filter may be square, non-square, diamond-shaped, trapezoidal, rhombic, hexagonal or cross-shaped.
  • the form of the inter-component adaptive loop filter may be predefined in the encoder and the decoder.
  • information for specifying the type of the inter-component adaptive loop filter may be signaled through the bitstream.
  • index information indicating one of a plurality of filter types may be signaled through a bitstream.
  • the filter type may be determined based on at least one of a color component, a color format, or a bit depth. For example, when the color format is 4:2:0, a hexagonal filter may be used, whereas when the color format is 4:2:2 or 4:4:4, a diamond filter may be applied.
  • the filter shape may be determined based on whether a chrominance sample corresponding to the luminance sample exists at the same position as the luminance sample. For example, when the chrominance sample and the luminance sample corresponding to the luminance sample exist at the same position, a cross-shaped or diamond-shaped filter may be applied. On the other hand, when the chrominance sample corresponding to the luminance sample does not exist at the same position as the luminance sample, the hexagonal filter may be applied.
  • a chrominance sample eg, a sampled chrominance sample
  • a flag sps_chroma_vertical_collocated_flag indicating whether the sampled chrominance sample and the luminance sample exist at the same position in the vertical direction may be signaled through the bitstream.
  • the information may be signaled through an upper header such as a slice, a picture, or a sequence.
  • a value of 1 in the syntax sps_chroma_vertical_collocated_flag indicates that the vertical position of the sampled chrominance sample is the same as that of the luminance sample. This may be defined as sampling type 2 (Type-2).
  • a value of 0 of the syntax sps_chroma_vertical_collocated_flag indicates that the vertical position of the sampled chrominance sample is shifted by 1/2 sample compared to the luminance sample. This may be defined as sampling type 0 (Type-0).
  • a flag sps_chroma_horizontal_collocated_flag indicating whether the sampled chrominance sample and the luminance sample are present at the same position in the horizontal direction may be additionally signaled through the bitstream.
  • a value of 1 in the syntax sps_chroma_horizontal_collocated_flag indicates that the horizontal position of the sampled chrominance sample and the horizontal position of the luminance sample are the same.
  • a value of 0 of the syntax sps_chroma_horizontal_collocated_flag indicates that the horizontal position of the sampled chrominance sample is shifted by 1/2 sample compared to the luminance sample.
  • At least one of a filter shape and a filter size may be determined for each predefined region within a picture.
  • the predefined region is a region capable of parallel processing, and may be a tile, a slice, or a sub-picture.
  • information for specifying at least one of a filter type or a filter size for each predefined region may be encoded and signaled.
  • a block included in the predefined region may use a filter determined at the level of the predefined region.
  • FIG. 10 shows an example in which a color difference offset is induced through a hexagonal filter.
  • FIG. 10A shows a chrominance sample to which a chrominance offset is applied and a luminance sample used to derive the chrominance offset. Also, FIG. 10B shows a filter applied to luminance samples.
  • a temporary value may be generated by applying a hexagonal filter to the luminance samples, and a chrominance offset may be derived based on the generated temporary value.
  • Equations 4 and 5 show an example of deriving a temporary value and an example of deriving a chrominance offset, respectively.
  • Equation 4 f[n] means a filter coefficient.
  • I represents the input luminance sample.
  • h x indicates that the horizontal direction (ie, x-axis) coordinate is x
  • v y indicates that the vertical direction (ie, y-axis) coordinate is y. That is, I[h x , v y ] represents the luminance sample at the (x, y) position.
  • Off (x, y) represents a color difference offset
  • the color difference offset Off (x, y) can be derived.
  • the shifting parameter may be set to a value predefined in the encoder and the decoder.
  • the shifting parameter may be set to a constant such as '7'.
  • information indicating the value of the shifting parameter may be encoded and signaled.
  • the information may be signaled through an upper header such as a slice, a picture, or a sequence.
  • the value of the shifting parameter may be adaptively determined based on at least one of a size of a current block, a size of a filter, a shape of a filter, a bit depth, a color format, or a color component.
  • a different type of inter-component adaptive loop filter shown in FIG. 10 may be applied.
  • FIG. 11 shows an example in which a rectangular 6-tap filter is applied.
  • FIG. 11A illustrates a chrominance sample to which a chrominance offset is applied and a luminance sample used to derive the chrominance offset. Also, FIG. 11B shows a filter applied to luminance samples.
  • the inter-component adaptive loop filter may be applied even when the color format is 4:2:2 or 4:4:4.
  • FIG. 12 it is exemplified that a diamond-shaped filter is applied.
  • FIG. 12A shows a chrominance sample to which a chrominance offset is applied and a luminance sample used to derive the chrominance offset. Also, FIG. 12B shows a filter applied to luminance samples.
  • FIG. 13 illustrates an example in which an inter-component adaptive loop filter is applied to an image having a color format of 4:4:4.
  • FIG. 13 it is exemplified that a diamond-shaped filter is applied.
  • FIG. 13A illustrates a chrominance sample to which a chrominance offset is applied and a luminance sample used to derive the chrominance offset. Also, FIG. 13B shows a filter applied to luminance samples.
  • a diamond-shaped filter having a size of 3x3 is applied.
  • a diamond filter having a size of 5x5 or 7x7 may be applied.
  • a filter type may be determined according to a color format.
  • the filter size may be adaptively determined according to a color format. For example, when the color format is 4:2:0, a diamond filter having a size of 3x3 may be applied, while when the color format is 4:4:4, a diamond filter having a size of 5x5 may be applied.
  • each of the filter coefficients constituting the filter may be independently encoded/decoded.
  • only some of the filter coefficients constituting the filter may be encoded/decoded by disposing the filter coefficients in a symmetrical form around the filter coefficient located at the center of the filter.
  • FIG. 14(a) shows an example in which filter coefficients are mirrored in a diamond-shaped filter having a size of 3x3
  • FIG. 14(b) is an example in which filter coefficients are arranged in advance in a diamond-shaped filter having a size of 5x5. .
  • the filter coefficient at the center position (f[2] in Fig. 14(a), f[6] in Fig. 14(b)) is the center
  • the filter coefficients may be arranged mirroring. That is, one filter coefficient may be applied to a plurality of positions. Accordingly, instead of encoding information on all filter coefficients, only information on some filter coefficients may be encoded.
  • a flag indicating whether the sampled chrominance sample exists at the same position as the luminance sample may be encoded. For example, as in the above example, based on at least one of the syntax sps_chroma_vertical_collocated_flag and the syntax sps_chroma_horizontal_collocated_flag, it may be determined whether the sampled chrominance sample is at the same position as the luminance sample. The size may be different depending on the type defining the position between the sampled chrominance sample and the luminance sample.
  • the hexagonal filter illustrated in FIG. 10 or the rectangular 6-tap filter illustrated in FIG. 11 may be applied.
  • the current picture is sampled in the Type-2 method (that is, when sps_chroma_vertical_collocated_flag is 1, a filter having a different shape or a different size from that shown in FIGS. 10 and 11 may be applied.
  • FIG. 15A illustrates a chrominance sample to which a chrominance offset is applied and a luminance sample used to derive the chrominance offset. Also, FIG. 15B shows a filter applied to luminance samples.
  • a diamond filter may be applied to an image sampled in the Type-0 method.
  • the chrominance offset may be generated based on Equations 6 and 7 below.
  • a filter of a type other than those illustrated in FIGS. 10 to 15 may be applied.
  • 16 is an illustration of various filter types available as an inter-component adaptive loop filter.
  • one of a plurality of filter type candidates may be selected according to the sampling type of the current picture.
  • the availability of each of the plurality of filter type candidates may be determined according to the sampling type of the current picture. That is, according to the sampling type of the current picture, at least one of the number or types of available filter type candidates may be different.
  • index information for selecting one of the plurality of filter type candidates may be further encoded and signaled.
  • restrictions may be applied to applying a filter at the boundary between regions.
  • filtering may be performed except for a sample at a position outside the boundary of the region and/or a sample at a position symmetrical thereto.
  • each of the regions may be divided by a virtual boundary (VB).
  • the region may be a slice, a tile, or a sub-picture.
  • it is assumed that each of the regions is divided by a virtual boundary.
  • a virtual boundary may be set along a horizontal or vertical direction within the coding tree unit.
  • 17 is an exemplary diagram for describing a virtual boundary.
  • FIG. 17 illustrates a virtual boundary dividing a coding tree unit in the horizontal direction.
  • the number of sample rows from the lower boundary of the coding tree unit to the virtual boundary may be defined as the size of the virtual boundary.
  • the size of the virtual boundary may be determined based on at least one of a filter shape and a filter size.
  • the maximum vertical length of the filter may be set equal to the size of the virtual boundary. For example, if a 3x3 diamond filter is applied, the size of the virtual boundary is set to 3 equal to the maximum length in the vertical direction of the filter, and if a 5x5 diamond filter is applied, the size of the virtual boundary is the filter may be set to 5, which is the maximum length in the vertical direction of .
  • a value derived by shifting a value obtained by adding 1 to the maximum length of the filter to the right by 1 may be set as the size of the virtual boundary.
  • the size N of the virtual boundary may be set to 2 ((3+1)>>1).
  • the size N of the virtual boundary may be set to 3 ((5+1)>>1).
  • which method of the above two examples is used to determine the size of the virtual boundary may be based on whether the filter coefficients are configured in a symmetrical form. For example, when the filter coefficients are configured in a symmetrical form (eg, FIG. 14 ), the size of the virtual boundary may be derived by shifting a value obtained by adding 1 to the maximum length of the filter to the right by 1. On the other hand, when there is no symmetry between filter coefficients, the size of the virtual boundary may be set equal to the maximum length of the filter.
  • a value obtained by adding or subtracting an offset from the maximum length of the filter in the vertical direction may be set as the size of the virtual boundary.
  • the size of the virtual boundary is the coding tree
  • a virtual boundary in the vertical direction may be set.
  • the number of sample columns between the left boundary of the coding tree unit and the virtual boundary may be defined as the size of the virtual boundary.
  • the size of the virtual boundary may be set equal to the maximum horizontal length of the filter, or may be set as a value obtained by adding or subtracting an offset from the maximum horizontal length of the filter.
  • samples at locations outside the virtual boundary and/or samples at locations symmetric thereto may be set as unavailable.
  • FIG. 18 is an exemplary diagram for explaining an application aspect of a filter when the filter is configured symmetrically and spans a virtual boundary.
  • the luminance sample to which the filter coefficient f[0] located at the lower end of the filter is applied is exemplified as deviating from the virtual boundary. Accordingly, the luminance sample may be set as unavailable.
  • a luminance sample that is symmetric with the unavailable luminance sample may also be determined to be unavailable.
  • the luminance sample to which the filter coefficient f[0] located at the upper end of the filter is applied may also be set to be unavailable.
  • Whether to set the unavailable luminance sample and the symmetrical luminance sample as unavailable may be determined based on whether the filter coefficients are arranged in a symmetrical form. For example, only when the filter coefficients are arranged in a symmetrical form, the unavailable luminance sample and the symmetric luminance sample may be set as unavailable.
  • Filtering can be performed by excluding the unavailable luminance samples. Accordingly, in the example shown in FIG. 18, the luminance sample to which the filter coefficient f[0] located at the center is applied and the luminance samples belonging to the same row as the luminance sample (that is, the filter coefficient f[1] are The chrominance offset can be derived using only applied luminance samples).
  • padding may be performed on the unavailable luminance sample position and then filtering may be performed using the padded luminance sample.
  • Padding can be performed by copying pixels that are symmetric with the unavailable samples or to which the same filter coefficients are applied to the unavailable samples.
  • the value of the luminance sample out of the virtual boundary that is, the luminance sample to which the filter coefficient f[0] at the lower end of the filter is applied
  • the value of the upper adjacent reconstructed sample that is, the filter coefficient f[2] in the center of the filter is applied.
  • an improved chrominance sample may be obtained by summing the chrominance sample and the chrominance offset.
  • the chrominance offset may be clipped according to the size of the buffer. For example, when the size of the buffer is N bits, the value of the chrominance offset Off (x,y) from (-(1 ⁇ (N-1)) to ((1 ⁇ (N-1)))- You can clip to any value between 1).
  • Information indicating the clipping parameter N may be encoded and signaled.
  • the information may be encoded through a higher header such as a slice, a picture, or a sequence.
  • the clipping parameter N may be determined by the bit depth.
  • the clipping parameter N may be determined using information signaled through the bitstream and the bit depth.
  • information indicating a difference between the bit depth and the clipping parameter N may be encoded in the bitstream. Accordingly, the decoder can derive the clipping parameter N by adding the bit depth and the difference value derived from the information.
  • the clipping parameter N may be predefined in the encoder and the decoder.
  • clipping may not be performed for the chrominance offset Off (x, y).
  • clipping may be performed on the sum of the chrominance offset and the chrominance sample. That is, by performing clipping only on the sum value instead of performing the clipping on each of the chrominance offset and the sum value, it is possible to prevent duplicate clipping from being applied.
  • the improved chrominance pixel may be derived as shown in Equation 8 below.
  • ccAlfSample represents an improved color difference sample, that is, a filtered color difference sample.
  • Sample(x,y) represents a color difference sample at the (x,y) position.
  • Nonlinearity may also be applied when applying the inter-component adaptive loop filter.
  • a chrominance offset may be derived by applying a Clip function.
  • a temporary value tmp may be derived by Equation 4 above.
  • a temporary value tmp can be derived by Equation 9 below.
  • Equation 9 c[n] is a one-dimensional representation of the clipping value k(i, j).
  • Information indicating whether the nonlinear inter-component adaptive loop filter is applied may be encoded and signaled.
  • a 1-bit flag indicating whether the nonlinear inter-component adaptive loop filter is applied may be encoded and signaled.
  • whether to apply the nonlinear inter-component adaptive loop filter may be determined based on at least one of a color format, whether a deblocking filter is applied, whether a sample adaptive offset filter is applied, a filter shape, or a filter size.
  • information for determining a clipping value corresponding to the filter coefficient may be encoded and signaled.
  • information indicating a clipping value c[n] corresponding to the filter coefficient f[n] may be encoded.
  • an index specifying a clipping value corresponding to the filter coefficient among the plurality of clipping value candidates may be encoded and signaled for each filter coefficient.
  • Table 1 shows an example in which different clipping indices are assigned to each clipping value candidate.
  • Bitdepth indicates a bit depth of an image
  • clipIdx indicates a clipping index assigned to a clipping value candidate.
  • Configurations of clipping value candidates may be different according to bit depths.
  • bit depth for example, according to the bit depth, at least one of the number of candidates or the values of the candidates may be different.
  • Table 1 it is exemplified that the values of the clipping value candidates are set differently according to the bit depth.
  • the configuration of clipping value candidates may be determined based on at least one of a picture resolution, a color format, a filter type, or a filter size. For example, according to a picture resolution, a color component, or a color format, at least one of the number of candidates or the value of the candidates may be different.
  • a smaller number of candidates than illustrated in Table 1 may be used. For example, only two clipping value candidates may be defined for each bit depth. When two clipping value candidates are defined, a clipping value may be determined using a 1-bit flag.
  • Tables 2 to 4 illustrate simplified lookup tables.
  • BitDepth clipIdx 0
  • BitDepth clipIdx 0
  • BitDepth clipIdx 0
  • the lookup table may be adaptively selected based on at least one of a bit depth, a color component, or a color format.
  • information indicating whether to use the simplified lookup table may be signaled through a bitstream. For example, when the information indicates that the simplified lookup table is not used, a clipping value may be determined using the lookup table of Table 1. On the other hand, when the information indicates that the simplified lookup table is used, the clipping value may be determined using one lookup table of Tables 2 to 4. Alternatively, whether to use the simplified lookup table may be determined based on at least one of a color format, a bit depth, a filter shape, and a filter size.
  • a clipping value may be determined using a formula instead of using a lookup table. Equation 10 shows an example in which a clipping value is determined by a bit depth and a clipping index.
  • variable clipIdx may be determined by an index signaled through a bitstream.
  • indexes may be coded only for filter coefficients at preset positions.
  • indexes are encoded only for f[0], f[1], f[3], f[4], f[6], and f[7].
  • a fixed clipping value may be used or a clipping value of an adjacent position filter coefficient may be used.
  • the adjacent position refers to at least one of the upper end, the lower end, the left side, or the right side.
  • the adjacent position may be adaptively determined.
  • the clipping function may be applied only at the position where the index is encoded. That is, the clipping function may not be applied at a position where the index is not coded.
  • clipping is applied at positions f[0], f[1], f[3], f[4], f[6], and f[7]. While the function is applied, the clipping function may not be applied where f[2] and f[5] are applied.
  • a chrominance offset By applying an inter-component adaptive loop filter to the reconstructed luminance samples, a chrominance offset can be derived.
  • a filter type for deriving an offset hereinafter, referred to as a first color difference offset
  • a second color difference component an offset with respect to a second color difference component (eg, a Cr component)
  • a filter type for deriving a two-color difference offset may be individually determined.
  • a first chrominance offset is obtained by applying a first type inter-component adaptive loop filter to the luminance samples
  • a second chrominance offset is obtained by applying a second type inter-component adaptive loop filter to the luminance samples.
  • filter coefficient set information may be encoded and signaled for each of the first color difference component and the second color difference component.
  • an index for identifying one of a plurality of filter coefficient set candidates may be encoded and signaled.
  • an integrated chrominance offset may be derived by applying a single inter-component adaptive loop filter to the luminance samples.
  • an integrated chrominance offset Off UNI may be derived.
  • filter coefficient set information may be encoded and signaled for only one of the first color difference component and the second color difference component.
  • the integrated chrominance offset Off UNI may be commonly applied to the first chrominance component and the second chrominance component. For example, by adding the integrated color difference offset Off UNI to the first color difference sample Cb ALF , the improved first color difference sample Cb CCALF is output, and the integrated color difference offset Off UNI is added to the second color difference sample Cr ALF to improve The obtained second color difference sample Cr CCALF may be output.
  • a positive and negative indicating whether or not to derive a chrominance offset individually may be encoded and signaled.
  • the information may be a 1-bit flag. For example, a value of the flag of 1 indicates that a chrominance offset is derived individually for each of the chrominance components, and a value of 0 indicates that the integrated offset is commonly applied to the chrominance components.
  • the information may be encoded through a higher header such as a slice, a picture, or a sequence. Alternatively, the information may be encoded for each block in which the application of the inter-component adaptive loop filter is determined.
  • the processing unit indicates an area in which parallel processing is possible, and may be, for example, a tile slice or a subpicture.
  • a chrominance offset is determined for each chrominance component based on at least one of whether a common chrominance component residual signal coding method (Joint CbCr) is applied, a color format, a filter type, or a filter type. For example, when the color format is 4:2:0, a chrominance offset may be derived for each of the chrominance components. On the other hand, when the color format is 4:2:2 or 4:4:4, an integrated offset commonly applied to chrominance components may be derived.
  • a common chrominance component residual signal coding method Joint CbCr
  • a method of deriving a chrominance offset may be adaptively determined according to a division structure of the luminance and chrominance blocks. For example, under a single tree structure, a color difference offset may be induced for each of the color difference components. On the other hand, under the dual tree structure, an integrated offset commonly applied to the chrominance components may be derived.
  • Information related to the inter-component adaptive loop filter may be encoded and signaled through an upper header.
  • the upper header indicates a parameter set commonly referenced by a plurality of blocks (eg, a coding tree unit, a coding unit, or a transform unit) for which application of the adaptive loop filter is determined.
  • an upper header in which information related to an inter-component adaptive loop filter is encoded may be defined as a filter header.
  • At least one of information about a filter coefficient set or configuration information of each filter coefficient set may be signaled through the filter header.
  • the filter header may include information indicating the number of one filter coefficient set candidates for the first chrominance component (eg, Cb) and configuration information of each filter coefficient set candidates.
  • the filter header may include information indicating the number of filter coefficient set candidates for the second chrominance component (eg, Cr) and configuration information of each filter coefficient set candidate.
  • information on the number of filter coefficient set candidates for the first color difference component and information on the number of filter coefficient set candidates for the second color difference component may be individually encoded and signaled.
  • the number of filter coefficient set candidates may be predefined in the encoder and the decoder. In this case, encoding of information indicating the number of filter coefficient set candidates may be omitted.
  • the configuration information of the filter coefficient set includes information on each of the filter coefficients constituting the filter coefficient set. In this case, encoding may be omitted for the filter coefficients at the filter center position.
  • the filter coefficient at the center position may be derived by differentiating the sum of the remaining filter coefficients from a predetermined constant value.
  • the information on the filter coefficients may include at least one of absolute value information of the filter coefficients and sign information of the filter coefficients.
  • a plurality of filter headers may be encoded and signaled.
  • a different identifier (ID, Identifier) may be assigned to each filter header.
  • index information may be encoded and signaled.
  • the index information may be encoded and signaled for each block.
  • the index information may be encoded and signaled for each predetermined processing unit.
  • the processing unit represents an area in which parallel processing is performed, and may be, for example, a tile, a slice, or a subpicture.
  • index information may be encoded for each of the color difference components.
  • index information may be encoded with respect to only one of the two color difference components.
  • index information may be encoded with respect to only one of the color difference components.
  • Information indicating the number of filter headers for each image may be encoded and signaled.
  • the number information may be signaled through a higher header such as a picture or a sequence.
  • the number information may represent a value obtained by subtracting 1 from the total number of filter headers.
  • the filter header may include both information on filter coefficient set candidates for the first chrominance component and information on filter coefficient set candidates for the second chrominance component.
  • a filter header for each of the chrominance components may be individually selected.
  • the first chrominance component may refer to the filter header having the index number 1
  • the second color difference component may refer to the filter header having the index number 3 .
  • Information indicating whether a filter header is selected for each of the color difference components may be encoded. Based on the information, it may be determined whether an index indicating one of a plurality of filter headers is signaled for each color difference component.
  • a filter may be applied by quantizing the filter coefficient f[n] to the power of 2.
  • an index of the filter coefficient may be encoded and signaled.
  • the index may represent one of the values expressed as an exponential power of 2. For example, assuming that the absolute value of the filter coefficient has a value between 0 and 64 and that the filter coefficient is quantized to a value expressed by the power of 2, the absolute value of the filter coefficient is one of the values included in the following set. determined by one
  • index 0 may indicate absolute value
  • index 7 may indicate absolute value 64.
  • each of the quantized values may be set to have an equivalence or an equal ratio.
  • the filter coefficients may be quantized to be one of the arithmetic sequences such as ⁇ 0, 9, 18, 27, 36, 45, 54, 64 ⁇ .
  • a truncated unary binarization method may be applied.
  • a fixed length method may be applied. For example, if an index indicating one of a total of eight values is encoded, an index having a value between 000 and 111 may be encoded and signaled.
  • the signal may be signaled by additionally encoding filter coefficient sign information.
  • the sign information may be a flag indicating whether the filter coefficients are positive or negative.
  • the range of the absolute value of the filter coefficient may be predefined in the encoder and the decoder.
  • information indicating a range of absolute values of filter coefficients may be signaled through a bitstream.
  • the information may be signaled through an upper header such as a slice, picture, sequence, or filter header.
  • the information may indicate at least one of a minimum value or a maximum value of the range. For example, when the maximum value of the range is expressed as 2 N , information for specifying the N may be encoded and signaled.
  • the range may be adaptively determined based on at least one of a color component, a color format, a filter size, or a filter shape.
  • identification information for identifying one of the filter headers may be signaled for each processing unit of a predefined level.
  • identification information indicating one of a plurality of filter headers may be encoded and signaled for each slice, subpicture, or tile. Blocks belonging to a processing unit of a predefined level may use the filter header determined at the processing unit level.
  • information indicating whether to use the filter header determined at the processing unit level as it is for each sub processing unit belonging to the processing unit is encoded and signaled.
  • the information may be a 1-bit flag. For example, when the flag is 1 (True), the filter header determined at the processing unit level may be used as it is. On the other hand, when the flag is 0 (False), identification information for identifying a filter header to be used in a sub-processing unit may be additionally encoded. The identification information may specify one of the remaining filter headers excluding the filter header determined at the processing unit level.
  • information for identifying a filter header for each block may be encoded and signaled. For example, when it is determined that the adaptive loop filter for each component is applied to the current coding tree unit, information for identifying a filter header applied to the current coding tree unit may be further encoded and signaled.
  • each of the components (eg, unit, module, etc.) constituting the block diagram in the above-described embodiment may be implemented as a hardware device or software, or a plurality of components may be combined to form one hardware device or software. may be implemented.
  • the above-described embodiment 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 the computer-readable recording medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as a CD-ROM, a DVD, and a magneto-optical medium such as a floppy disk. 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 operate as one or more software modules to perform processing according to the present disclosure, and vice versa.
  • the present invention can be applied to an electronic device capable of encoding/decoding 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) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 개시는 비디오 신호를 부호화/복호화함에 있어서, 인루프 필터를 적용하는 방법 및 이를 위한 장치를 제공하는 것을 목적으로 한다.
본 개시는 비디오 신호를 부호화/복호화함에 있어서, 성분간 적응적 루프 필터를 적용하는 방법 및 이를 위한 장치를 제공하는 것을 목적으로 한다.
본 개시는 비디오 신호를 부호화/복호화함에 있어서, 비선형 성분간 적응적 루프 필터를 적용하는 방법 및 이를 위한 장치를 제공하는 것을 목적으로 한다.
본 개시는 비디오 신호를 부호화/복호화함에 있어서, 색차 성분들에 대해 통합된 성분간 적응적 루프 필터를 적용하는 방법 및 이를 위한 장치를 제공하는 것을 목적으로 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 비디오 신호 복호화 방법은, 성분간 적응적 루프 필터를 적용할 것인지 여부를 결정하는 단계, 상기 성분간 적응적 루프 필터가 적용되는 경우, 상기 성분간 적응적 루프 필터가 선형성을 갖는지 또는 비선형성을 갖는지 여부를 결정하는 단계, 상기 성분간 적응적 루프 필터의 필터 계수 세트를 결정하는 단계, 상기 필터 계수 세트를 이용하여, 휘도 샘플을 필터링하여 색차 오프셋을 유도하는 단계, 및 상기 색차 오프셋을 이용하여, 색차 샘플을 개선하는 단계를 포함한다.
본 개시에 따른 비디오 신호 부호화 방법은, 성분간 적응적 루프 필터를 적용할 것인지 여부를 결정하는 단계, 상기 성분간 적응적 루프 필터가 적용되는 경우, 상기 성분간 적응적 루프 필터가 선형성을 갖는지 또는 비선형성을 갖는지 여부를 결정하는 단계, 상기 성분간 적응적 루프 필터의 필터 계수 세트를 결정하는 단계, 상기 필터 계수 세트를 이용하여, 휘도 샘플을 필터링하여 색차 오프셋을 유도하는 단계, 및 상기 색차 오프셋을 이용하여, 색차 샘플을 개선하는 단계를 포함한다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 성분간 적응적 루프 필터가 비선형성을 갖는 것으로 결정되는 경우, 상기 필터링은, 상기 휘도 샘플과 주변 휘도 샘플 사이의 차분에 클리핑 함수를 적용하여 수행되고, 상기 클리핑 함수 적용을 위한 클리핑 값은 복수의 클리핑 값 후보들 중 하나를 특정하는 인덱스에 의해 결정될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 인덱스는, 비트스트림으로부터 복호화되는 1비트의 플래그에 의해 결정될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 클리핑 값 후보들의 개수는, 컬러 포맷, 비트 뎁스 또는 필터 타입 중 적어도 하나에 기초하여 적응적으로 결정될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 비트 뎁스와 클리핑 값 후보들 사이의 매핑 관계를 정의한 복수의 룩업 테이블들 중 하나로부터, 상기 복수의 클리핑 값 후보들이 유도될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 비트스트림으로부터 파싱되는 인덱스 정보에 의해 상기 복수의 룩업 테이블들 중 하나가 선택될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 현재 블록 내 복원 샘플들 중 기 정의된 필터 계수가 적용되는 위치에 대해서만, 상기 플래그가 복호화될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 기 정의된 필터 계수가 적용되는 위치에서만, 상기 클리핑 함수가 적용될 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 의하면, 인루프 필터를 적용함으로써, 복원 에러를 감소시킬 수 있다.
본 개시에 의하면, 성분간 적응적 루프 필터를 적용하는 방법을 제공함으로써, 복원 에러를 감소시킬 수 있다.
본 개시에 의하면, 비선형 성분간 적응적 루프 필터를 적용하는 방법을 제공함으로써, 복원 에러를 감소시킬 수 있다.
본 개시에 의하면, 색차 성분들데 대해 통합된 성분간 적응적 루프 필터를 적용하는 방법을 제공함으로써, 복원 에러를 감소시킬 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 개시의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 인루프 필터들의 적용 순서를 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른, 적응적 루프 필터의 적용 방법의 흐름도이다.
도 5는 다이아몬드형 필터의 크기를 정의한 예를 나타낸 것이다.
도 6은 사각 형태의 적응적 루프 필터가 적용되는 예를 나타낸다.
도 7은 성분간 적응적 루프 필터의 적용 양상을 나타낸 흐름도이다.
도 8은 성분간 적응적 루프 필터(CCALF)의 적용 예를 나타낸 도면이다.
도 9는 휘도 샘플들에 성분간 적응적 루프 필터를 적용하여, 색차 오프셋을 유도하는 예를 나타낸 도면이다.
도 10은 육각 형태의 필터를 통해 색차 오프셋이 유도되는 예를 나타낸다.
도 11은 직사각 형태의 6탭 필터가 적용되는 예를 나타낸다.
도 12는 컬러 포맷이 4:2:2인 영상에 성분간 적응적 루프 필터가 적용되는 예를 나타낸다.
도 13은 컬러 포맷이 4:4:4인 영상에 성분간 적응적 루프 필터가 적용되는 예를 나타낸다.
도 14은 필터 계수들이 대칭 형태로 배치되는 예를 나타낸 것이다.
도 15는 Type-0 방식으로 샘플링된 영상에 성분간 적응적 루프 필터가 적용되는 예를 나타낸다.
도 16은 성분간 적응적 루프 필터로 이용 가능한 다양한 필터 형태들에 대한 예시이다.
도 17은 가상 경계를 설명하기 위한 예시도이다.
도 18은 필터가 대칭으로 구성되어 있고, 가상 바운더리에 걸쳐진 경우, 필터의 적용 양상을 설명하기 위한 예시도이다.
도 19는 필터 계수들 중 일부에 대해서만 인덱스가 부호화되는 예를 나타낸다.
도 20은 통합된 색차 오프셋이 획득되는 예를 나타낸 것이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제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)을 부호화 단위라는 용어로 사용하지만, 부호화뿐만 아니라 복호화를 수행하는 단위가 될 수도 있다.
또한, 현재 블록은, 부호화/복호화 대상 블록을 나타내는 것으로, 부호화/복호화 단계에 따라, 코딩 트리 블록(또는 코딩 트리 유닛), 부호화 블록(또는 부호화 유닛), 변환 블록(또는 변환 유닛), 예측 블록(또는 예측 유닛) 또는 인루프 필터의 적용 대상인 블록 등을 나타내는 것일 수 있다. 본 명세서에서, '유닛'은 특정 부호화/복호화 프로세스를 수행하기 위한 기본 단위를 나타내고, '블록'은 소정 크기의 화소 어레이를 나타낼 수 있다. 별도의 구분이 없는 한, '블록'과 '유닛'은 동등한 의미로 사용될 수 있다. 예컨대, 후술되는 실시예에서, 부호화 블록(코딩 블록) 및 부호화 유닛(코딩 유닛)은 상호 동등한 의미인 것으로 이해될 수 있다.
손실 부호화(Lossy Coding) 방식 하에서는, 복원 영역에 복원 에러가 발생하게 된다. 위와 같은, 복원 에러를 감쇄하기 위해, 복원 블록에 인루프 필터를 적용할 수 있다. 구체적으로, 디블록킹 필터(Deblocking Filter), 샘플 적응적 오프셋 필터(Sample Adaptive Offset (SAO) Filter) 또는 적응적 루프 필터 중 적어도 하나가 복원 블록에 적용될 수 있다.
기 정의된 순서에 따라, 인루프 필터들을 적용할 수 있다. 일 예로, 디블록킹 필터, 샘플 적응적 오프셋 필터 및 적응적 루프 필터의 순으로 필터들을 적용할 수 있다.
이때, 각 필터의 적용 여부는 독립적으로 결정될 수 있다. 일 예로, 디블록킹 필터 또는 샘플 적응적 오프셋 필터가 적용되지 않더라도, 적응적 루프 필터를 복원 블록에 적용할 수 있다.
또는, 필터들간 종속성을 갖도록 설정할 수도 있다. 일 예로, 복원 블록에 디블록킹 필터 또는 샘플 적응적 오프셋 필터 중 적어도 하나가 적용된 경우에만, 적응적 루프 필터가 적용되도록 설정될 수 있다.
도 3은 인루프 필터들의 적용 순서를 나타내는 도면이다.
도 3의 (a) 및 (b)에 도시된 예에서와 같이, 인루프 필터는, 디블록킹 필터(DF), 샘플 적응적 오프셋 필터(SAO) 및 적응적 루프 필터(ALF)의 순으로 적용될 수 있다.
구체적으로, 부호화기는, 복원 영상에 디블록킹 필터를 적용한 뒤, RDO(Rate-Distortion Optimization)에 따라, 샘플 적응적 오프셋 필터의 적용 여부를 결정할 수 있다. 샘플 적응적 오프셋 필터를 적용한 이후, 다시 RDO에 따라, 적응적 루프 필터의 적용 여부를 결정할 수 있다.
이때, 각각의 인루프 필터들은, 컬러 성분들 각각에 대해 개별적으로 적용될 수 있다. 일 예로, 디블록킹 필터의 적용 결과, 필터링된 휘도 샘플 YDF, 필터링된 제1 색차 샘플 CbDF, 및 필터링된 제2 색차 샘플 CrDF가 출력될 수 있다. 또한, 샘플 적응적 오프셋 필터의 적용 결과, 필터링된 휘도 샘플 YSAO, 필터링된 제1 색차 샘플 CbSAO, 및 필터링된 제2 색차 샘플 CrSAO가 출력될 수 있다. 또한, 적응적 루프 필터의 적용 결과, 필터링된 휘도 샘플 대한 YALF, 필터링된 제1 색차 샘플 CbALF, 및 필터링된 제2 색차 샘플 CrALF가 출력될 수 있다.
열거된 인루프 필터들 중 적응적 루프 필터의 적용 양상에 대해 상세히 살펴보기로 한다.
도 4는 본 개시의 일 실시예에 따른, 적응적 루프 필터의 적용 방법의 흐름도이다.
적응적 루프 필터는, 다각 형태의 필터를 복원 블록에 적용하는 방식을 의미한다. 이하, 적응적 루프 필터의 적용 여부 결정 대상인 블록을 현재 블록이라 호칭한다.
도 4를 참조하면, 먼저, 적응적 루프 필터를 현재 블록에 적용할 것인지 여부를 결정할 수 있다(S401). 적응적 루프 필터가 적용되는지 여부를 나타내는 플래그가 부호화되어 시그날링될 수 있다. 일 예로, alf_ctb_flag는 현재 블록에 적응적 루프 필터가 적용되는지 여부를 나타낸다.
적응적 루프 필터를 적용할 것인지 여부는, 코딩 트리 유닛, 코딩 유닛 또는 변환 유닛 단위로 결정될 수 있다.
또는, 적응적 루프 필터의 적용 여부를 판단하는 블록(이하, 기준 블록)의 크기를 나타내는 정보가 비트스트림을 통해 시그날링될 수 있다. 일 예로, 상기 정보는, 슬라이스, 픽처 또는 시퀀스 레벨에서 시그날링될 수 있다. 일 예로, 상기 정보는, 코딩 트리 유닛의 크기와 기준 블록의 크기 간의 차분을 나타낼 수 있다. 일 예로, 상기 차분 정보는, 코딩 트리 유닛의 크기에 Log_2를 취한 값과, 기준 블록의 크기에 Log_2를 취한 값 사이의 차분을 나타낼 수 있다. 일 예로, 코딩 트리 유닛이 128x128 이고, 기준 블록이 32x32인 경우, 상기 차분 정보는, 2 (Log2 (132/32))로 설정될 수 있다.
또는, 기본 블록의 크기가 부호화기 및 복호화기에서 기 정의되어 있을 수도 있다. 일 예로, 기준 블록은 64x64로 고정된 크기를 가질 수 있다.
적응적 루프 필터가 적용되는지 여부는 컬러 성분 마다 독립적으로 결정될 수 있다. 여기서, 컬러 성분은 휘도(Luma) 성분 또는 색차(Cb, Cr) 성분을 나타낸다. 일 예로, 상기 alf_ctb_flag가 컬러 성분 마다 부호화되어 시그날링될 수 있다.
또는, 컬러 포맷에 따라, 적응적 루프 필터의 적용 여부를 컬러 성분 마다 독립적으로 결정할 것인지 여부가 결정될 수 있다. 여기서, 컬러 포맷은, 휘도 성분 및 색차 성분의 구성비(예컨대, 4:4:4, 4:2:2, 4:2:0)을 나타낸다. 예컨대, 컬러 포맷이 4:4:4인 경우, 휘도 성분 및 컬러 성분 각각에 대해 독립적으로 적응적 루프 필터의 적용 여부를 결정할 수 있다. 반면, 컬러 포맷이 4:2:2 또는 4:2:0인 경우, 휘도 성분에 대한 적응적 루프 필터의 적용 여부에 대한 결정 결과를 그대로 색차 성분에 적용할 수 있다.
적응적 루프 필터를 적용하기로 결정한 경우, 현재 블록에 적용할 필터 타입을 결정할 수 있다(S402). 필터 타입을 결정하는 것은, 필터 형태, 필터 계수 또는 필터 크기 중 적어도 하나를 결정하는 것을 나타낸다.
필터 형태는, 다각 형태일 수 있다. 일 예로, 적응적 루프 필터는, 정방형, 비정방형, 다이아몬드형, 사다리꼴형, 마름모형, 육각형 또는 십자형을 띨 수 있다.
적응적 루프 필터의 형태는 부호화기 및 복호화기에서 기 정의되어 있을 수 있다. 또는, 적응적 루프 필터의 형태를 특정하기 위한 정보가 비트스트림을 통해 시그날링될 수 있다. 일 예로, 복수개의 필터 형태 중 하나를 지시하는 인덱스 정보가 비트스트림을 통해 시그날링될 수 있다.
또는, 컬러 성분, 컬러 포맷 또는 비트 심도 중 적어도 하나에 기초하여 필터 형태가 결정될 수 있다.
일 예로, 휘도 성분 및 색차 성분에 모두 다이아몬드형 필터를 고정적으로 적용할 수 있다. 또는, 컬러 포맷이 4:4:4 또는 4:2:0인 경우에는, 휘도 성분 및 색차 성분에 모두 다이아몬드형 필터를 적용하고, 컬러 포맷이 4:2:2인 경우에는, 휘도 성분에는 다이아몬드형 필터를, 색차 성분에는 비-다이아몬드형 필터(예컨대, 사각형 필터)를 적용할 수 있다.
부호화기에서는, 복원 에러를 최소화하는 필터 계수들을 유도할 수 있다. 그리고, 최적의 효율을 나타내는 필터 계수들에 대한 정보를 부호화하여 복호화기로 시그날링할 수 있다.
필터의 크기는, 필터의 수평 방향의 탭수 및 수직 방향의 탭수 중 적어도 하나에 의해 정의될 수 있다.
도 5는 다이아몬드형 필터의 크기를 정의한 예를 나타낸 것이다.
다이아몬드형 필터의 크기는, 수평 방향에 대한 최대 길이(최대 탭 수) 및 수직 방향에 대한 최대 길이(최대 탭수)로 정의될 수 있다. 일 예로, 7x7 크기의 다이아몬드형 필터는, 수평 방향에 대한 최대 길이 및 수직 방향에 대한 최대 길이가 각각 7임을 나타낸다.
도 5에서는, 다이아몬드형 필터의 수평 방향의 최대 길이 및 수직 방향의 최대 길이가 동일한 것으로 예시되었다. 도시된 예와 달리, 수평 방향의 최대 길이 및 수직 방향의 최대 길이가 상이한 다이아몬드형 필터를 이용할 수도 있다.
컬러 성분 별로, 필터 크기를 상이하게 설정할 수 있다. 일 예로, 휘도 성분에 대해서는 7x7 크기의 다이아몬드형 필터를 이용하고, 색차 성분에 대해서는 5x5 크기의 다이아몬드형 필터를 이용할 수 있다.
또는, 컬러 포맷을 고려하여, 색차 성분에 적용되는 필터의 크기를 결정할 수 있다. 일 예로, 컬러 포맷이 4:2:0인 경우, 도 5의 (b)에 도시된 5x5 크기의 다이아몬드형 필터가 색차 성분에 적용될 수 있다. 반면, 컬러 포맷이 4:4:4인 경우, 휘도 성분과 동일한 크기의 필터, 예컨대, 도 5의 (a)에 도시된 7x7 크기의 다이아몬드형 필터가 색차 성분에 적용될 수 있다.
컬러 포맷이 4:2:2인 경우에도, 휘도 성분과 동일한 크기의 필터가 색차 성분에 적용될 수 있다. 또는, 컬러 포맷이 4:2:2인 경우, 휘도 성분에 적용되는 필터보다 수평 방향의 최대 길이 또는 수직 방향의 최대 길이 중 적어도 하나가 짧은 필터가 색차 성분에 적용될 수 있다.
설명한 예와 같이, 컬러 포맷에 따라, 휘도 성분 및 색차 성분에 대해 동일한 크기의 필터를 적용할 것인지 여부가 결정될 수 있다.
필터 타입이 결정되면, 결정된 필터 타입을 이용하여, 복원 샘플을 필터링할 수 있다(S403). 구체적으로, 복원 샘플 주변의 복원 샘플들을 이용하여, 복원 샘플을 필터링할 수 있다. 이때, 주변 복원 샘플들의 위치 및 개수는 필터 형태에 의해 결정될 수 있다.
도 6은 사각 형태의 적응적 루프 필터가 적용되는 예를 나타낸다.
도 6의 예에서, I(x, y)는 적응적 루프 필터가 적용되기 전 샘플의 값을 나타내고, O(x, y)는 루프 필터가 적용된 이후 샘플의 값을 나타낸다. 다음의 수학식 1은, 도 6에 도시된 적응적 루프 필터의 적용 양상을 수식으로 나타낸 것이다.
Figure PCTKR2021003582-appb-M000001
코딩 트리 유닛 단위로 적응적 루프 필터의 적용 여부가 적용되는 경우, 수학식 1에서, (x, y)는 코딩 트리 유닛 내 샘플의 좌표를 나타내고, (i, j)는 필터 형태에 따른 좌표를 나타낸다. 일 예로, 필터의 중앙 위치를 (0, 0)이라 가정하여, i 및 j의 값이 결정될 수 있다. 예컨대, 도 6에 도시된 예에서와 같이, 3x3 크기의 사각 형태 필터가 적용되는 경우, i 및 j는 각각 -1 부터 1 사이의 정수로 설정될 수 있다. 필터의 형태에 따라, i 및 j의 값의 범위가 상이할 수 있다.
상기 수학식 1에서, 필터 계수들의 합(예컨대,
Figure PCTKR2021003582-appb-I000001
)은 1로 설정될 수 있다. (
Figure PCTKR2021003582-appb-I000002
)는 중앙 위치의 필터 계수(w(0, 0))를 나타낸다. O(x, y)는 필터 처리된 샘플 값을 나타내고, I(x, y)는 입력 값(즉, 필터 적용 전 샘플 값)을 나타낸다. S는 적응적 루프 필터의 적용 영역을 나타낸다.
도 5에서는, 필터 계수들 w(i,j)를 1차원 형태의 변수 f[n]으로 표현하였다. 일 예로, 도 5의 (a)에서는, 필터 중앙 위치에 마크된 f[12]가 w(0, 0)을 나타내고, 도 5의 (b)에서는, 필터 중앙 위치에 마크된 f[6]이 w(0, 0)을 나타낸다.
도 5에 도시된 예에서와 같이, 하나의 필터 계수가 복수 위치에 적용될 수도 있다. 일 예로, 필터 내 필터 계수들이 대칭 형태로 분포될 수 있다. 필터 내 모든 위치에서가 아닌, 일부 위치에 대해서만, 필터 계수들을 유도할 수 있다. 필터의 대칭성을 이용하여, 잔여 위치의 필터 계수들이 유도될 수 있다.
상술한 실시예들은, 적응적 루프 필터에 선형성을 적용한 예들이다. 설명한 것과 달리, 적응적 루프 필터에, 비선형성(non- Linearity)을 적용할 수도 있다. 비선형 적응적 루프 필터 또는 비선형 성분간 적응적 루프 필터를 적용하는 경우, 클립(Clip) 함수를 적용할 수 있다. 일 예로, 비선형 적응적 루프 필터가 적용되는 경우, 수학식 1은 다음의 수학식 2와 같이 변경될 수 있다.
Figure PCTKR2021003582-appb-M000002
클립함수는 다음의 수학식 3과 같이 정의될 수 있다.
Figure PCTKR2021003582-appb-M000003
비선형 적응적 루프 필터가 적용되는지 여부를 나타내는 정보가 부호화되어 시그날링될 수 있다. 일 예로, 비선형 적응적 루프 필터가 적용되는지 여부를 나타내는 1비트 플래그가 부호화되어 시그날링될 수 있다.
컬러 성분별로 비선형 적응적 루프 필터가 적용되는지 여부를 나타내는 정보를 부호화할 수도 있다.
비선형 적응적 루프 필터가 적용되는 경우, 필터 계수에 대응하는 클리핑 값을 결정하기 위한 정보가 부호화되어 시그날링될 수 있다. 일 예로, 필터 계수 f[n]에 대응하는 클리핑 값 c[n]을 나타내는 정보가 부호화될 수 있다.
컬러 성분들간 적응적 루프 필터를 적용할 수도 있다. 컬러 성분들간 적응적 루프 필터를 적용함으로써, 색차 성분에 대한 복원 에러를 감소시킬 수 있다. 이하, 성분간 적응적 루프 필터(CCALF, Cross-Component Adaptive Loop Filter)의 적용 양상에 대해 상세히 살펴보기로 한다.
도 7은 성분간 적응적 루프 필터의 적용 양상을 나타낸 흐름도이다.
먼저, 성분간 적응적 루프 필터의 적용 여부를 결정할 수 있다(S701). 성분간 적응적 루프 필터의 적용 여부를 나타내는 플래그가 부호화되어 시그날링될 수 있다. 일 예로, 상기 플래그의 값이 1인 것은, 성분간 적응적 루프 필터가 적용됨을 나타내고, 플래그의 값이 0인 것은, 성분간 적응적 루프 필터가 적용되지 않음을 나타낸다.
성분간 적응적 루프 필터를 적용할 것인지 여부는, 코딩 트리 유닛, 코딩 유닛 또는 변환 유닛 단위로 결정될 수 있다.
또는, 성분간 적응적 루프 필터의 적용 여부를 판단하는 블록(이하, 기준 블록)의 크기를 나타내는 정보가 비트스트림을 통해 시그날링될 수 있다. 일 예로, 상기 정보는, 슬라이스, 픽처 또는 시퀀스 레벨에서 시그날링될 수 있다. 일 예로, 상기 정보는, 코딩 트리 유닛의 크기와 기준 블록의 크기 간의 차분을 나타낼 수 있다. 일 예로, 상기 차분 정보는, 코딩 트리 유닛의 크기에 Log_2를 취한 값과, 기준 블록의 크기에 Log_2를 취한 값 사이의 차분을 나타낼 수 있다. 일 예로, 코딩 트리 유닛이 128x128 이고, 기준 블록이 32x32인 경우, 상기 차분 정보는, 2 (Log2 (132/32))로 설정될 수 있다.
또는, 기본 블록의 크기가 부호화기 및 복호화기에서 기 정의되어 있을 수도 있다. 일 예로, 기준 블록은 64x64로 고정된 크기를 가질 수 있다.
성분간 적응적 루프 필터가 적용되는지 여부는 색차 성분 마다 독립적으로 결정될 수 있다. 일 예로, ccalf_ctb_flag가 제1 색차 성분(예컨대, Cb) 및 제2 색차 성분(예컨대, Cr) 성분 각각에 대해 부호화되어 시그날링될 수 있다. 여기서, ccalf_ctb_flag는, 현재 블록에 성분간 적응적 루프 필터가 적용되는지 여부를 나타낸다.
또는, 상기 플래그는, 슬라이스, 타일, 서브 픽처, 픽처 또는 시퀀스 등 상위 헤더를 통해 시그날링될 수 있다.
성분간 적응적 루프 필터는, 각 컬러 성분에 적응적 루프 필터가 적용되는 경우에 한하여 적용될 수 있다. 일 예로, 휘도 성분 및 색차 성분에 적응적 루프 필터가 적용된 경우에 한하여, 성분간 적응적 루프 필터가 적용될 수 있다.
또는, 휘도 성분에 적응적 루프 필터가 적용되었는지 여부와는 무관하게, 색차 성분에 적응적 루프 필터가 적용되었는지 여부만을 고려하여, 성분간 적응적 루프 필터의 적용 여부가 결정될 수 있다.
또는, 적응적 루프 필터가 적용되었는지 여부와 무관하게, 성분간 적응적 루프 필터가 적용되는지 여부를 결정할 수도 있다. 즉, 적응적 루프 필터의 적용 여부 및 성분간 적응적 루프 필터의 적용 여부는 상호 독립적일 수 있다.
타 인루프 필터(예컨대, 디블록킹 필터 또는 샘플 적응적 오프셋 필터 중 적어도 하나)의 적용 여부에 기초하여, 성분간 적응적 루프 필터의 적용 여부를 결정할 수도 있다. 일 예로, 색차 성분에 대해 샘플 적응적 오프셋 필터가 적용된 경우에만, 성분간 적응적 루프 필터가 적용될 수 있다. 혹은, 이와 반대로, 색차 성분에 대해 샘플 적응적 오프셋 필터가 적용되지 않은 경우에만, 성분간 적응적 루프 필터가 적용될 수 있다.
성분간 적응적 루프 필터를 적용하기로 결정된 경우, 필터 타입을 결정할 수 있다(S702). 필터 타입을 결정하는 것은, 필터 형태, 필터 계수 또는 필터 크기 중 적어도 하나를 결정하는 것을 나타낸다.
이후, 결정된 필터 타입을 기초로, 복원된 휘도 샘플에 필터를 적용하여, 색차 성분을 위한 오프셋을 유도할 수 있다(S703). 여기서, 복원된 휘도 샘플은, 샘플 적응적 오프셋 필터가 적용되었으나, 적응적 루프 필터는 아직 적용되지 않은 휘도 샘플, 디블록킹 필터가 적용되었으나, 샘플 적응적 오프셋 필터는 아직 적용되지 않은 휘도 샘플 또는 적응적 루프 필터가 적용된 휘도 샘플 중 적어도 하나를 나타낼 수 있다.
오프셋이 유도되면, 적응적 루프 필터가 적용된 색차 샘플에 색차 오프셋을 적용할 수 있다(S704). 구체적으로, 적응적 루프 필터가 적용된 색차 샘플에 색차 오프셋을 가산하여, 개선된(refined) 색차 샘플이 획득될 수 있다.
도 8은 성분간 적응적 루프 필터(CCALF)의 적용 예를 나타낸 도면이다.
도 8에서, YDF, CbDF 및 CrDF는 각각 디블록킹 필터가 적용된 후의 Y영상, Cb영상 및 Cr영상을 의미한다. YSAO, CbSAO 및 CrSAO는 각각 샘플 적응적 오프셋 필터가 적용된 이후의 Y영상, Cb영상 및 Cr영상을 의미한다. 또한, YALF, CbALF 및 CrALF는 각각 적응적 루프 필터가 적용된 이후의 Y영상, Cb영상 및 Cr영상을 의미한다. 또한, CbCCALF 및 CrCCALF는 각각 성분간 적응적 루프 필터가 적용된 이후의 Cb영상 및 Cr영상을 의미한다. 이때, OffCb와 OffCr은 각각 CbALF 및 CrALF에 적용되는 오프셋 값을 나타낸다.
색차 성분에 대한 복원 오류를 최소화하기 위해, 색차 오프셋을 유도할 수 있다. 이때, 색차 오프셋은, 복원된 휘도 샘플에 성분간 적응적 루프 필터를 적용하여 유도될 수 있다.
도 8의 (a)에서는, 샘플 적응적 오프셋 필터가 적용된 휘도 샘플들 YSAO에 성분간 적응적 루프 필터가 적용되는 것으로 예시되었다. 여기서, YSAO는 적응적 루프 필터가 적용되기 이전의 휘도 샘플들을 나타낸다.
도 8의 (b)에서는, 디블록킹 필터가 적용된 휘도 샘플들 YDF에 성분간 적응적 루프 필터가 적용되는 것으로 예시되었다. 여기서, YDF는 샘플 적응적 오프셋 필터 및 적응적 루프 필터가 적용되기 이전의 휘도 샘플들을 나타낸다.
도 8의 (c)에서는, 적응적 루프 필터가 적용된 휘도 샘플들 YALF에 성분간 적응적 루프 필터가 적용되는 것으로 예시되었다.
도 9는 샘플 적응적 오프셋 필터가 적용된 휘도 샘플들 YSAO에 성분간 적응적 루프 필터를 적용하여, 색차 오프셋을 유도하는 예를 나타낸 도면이다. 휘도 샘플 및 주변 휘도 샘플에 성분간 적응적 루프 필터를 적용하여, 상기 휘도 샘플에 대응하는 위치의 색차 샘플에 대한 오프셋을 획득할 수 있다. 이때, 성분간 적응적 루프 필터는, 다각 형태를 띨 수 있다. 예컨대, 성분간 적응적 루프 필터는, 정방형, 비정방형, 다이아몬드형, 사다리꼴형, 마름모형, 육각형 또는 십자형을 띨 수 있다.
성분간 적응적 루프 필터의 형태는 부호화기 및 복호화기에서 기 정의되어 있을 수 있다. 또는, 성분간 적응적 루프 필터의 형태를 특정하기 위한 정보가 비트스트림을 통해 시그날링될 수 있다. 일 예로, 복수개의 필터 형태 중 하나를 지시하는 인덱스 정보가 비트스트림을 통해 시그날링될 수 있다.
또는, 컬러 성분, 컬러 포맷 또는 비트 심도 중 적어도 하나에 기초하여 필터 형태가 결정될 수 있다. 일 예로, 컬러 포맷이 4:2:0인 경우에는 육각형 필터가 이용될 수 있다 반면, 컬러 포맷이 4:2:2 또는 4:4:4인 경우에는 다이아몬드형 필터가 적용될 수 있다.
또는, 휘도 샘플에 대응하는 색차 샘플이 휘도 샘플과 동일한 위치에 존재하는지 여부에 기초하여, 필터 형태가 결정될 수 있다. 일 예로, 휘도 샘플에 대응하는 색차 샘플과 휘도 샘플이 동일한 위치에 존재하는 경우, 십자형 또는 다이아몬드형 필터가 적용될 수 있다. 반면, 휘도 샘플에 대응하는 색차 샘플이 휘도 샘플과 동일한 위치에 존재하지 않는 경우, 육각형 필터가 적용될 수 있다.
컬러 포맷이 4:2:0인 경우, 휘도 샘플에 대응하는 색차 샘플(예컨대, 샘플링된 색차 샘플)이 휘도 샘플과 동일한 위치에 존재하는지 여부를 나타내는 정보가 비트스트림을 통해 시그날링될 수 있다. 일 예로, 샘플링된 색차 샘플이 휘도 샘플과 수직 방향으로 동일 위치에 존재하는지 여부를 나타내는 플래그 sps_chroma_vertical_collocated_flag가 비트스트림을 통해 시그날링될 수 있다. 상기 정보는, 슬라이스, 픽처 또는 시퀀스 등 상위 헤더를 통해 시그날링될 수 있다.
신택스 sps_chroma_vertical_collocated_flag의 값이 1인 것은, 샘플링된 색차 샘플의 수직 방향 위치와 휘도 샘플의 수직 방향 위치가 동일함을 나타낸다. 이를 샘플링 타입 2(Type-2)라 정의할 수 있다. 반면, 신택스 sps_chroma_vertical_collocated_flag의 값이 0인 것은, 샘플링된 색차 샘플의 수직 방향 위치가 휘도 샘플에 비해, 1/2 샘플만큼 시프팅되어 있음을 나타낸다. 이를 샘플링 타입 0(Type-0)라 정의할 수 있다.
비트스트림을 통해, 샘플링된 색차 샘플이 휘도 샘플과 수평 방향으로 동일 위치에 존재하는지 여부를 나타내는 플래그 sps_chroma_horizontal_collocated_flag가 추가 시그날링될 수도 있다.
일 예로, 신택스 sps_chroma_horizontal_collocated_flag의 값이 1인 것은, 샘플링된 색차 샘플의 수평 방향 위치와 휘도 샘플의 수평 방향 위치가 동일함을 나타낸다. 반면, 신택스 sps_chroma_horizontal_collocated_flag의 값이 0인 것은, 샘플링된 색차 샘플의 수평 방향 위치가 휘도 샘플에 비해, 1/2 샘플만큼 시프팅되어 있음을 나타낸다.
픽처 내 기 정의된 영역 별로 필터 형태 또는 필터 크기 중 적어도 하나를 결정할 수도 있다. 여기서, 기 정의된 영역은, 병렬 처리가 가능한 영역으로, 타일, 슬라이스 또는 서브 픽처일 수 있다. 일 예로, 기 정의된 영역 별로 필터 형태 또는 필터 크기 중 적어도 하나를 특정하기 위한 정보가 부호화되어 시그날링될 수 있다. 기 정의된 영역에 포함된 블록은 기 정의된 영역 레벨에서 결정된 필터를 이용할 수 있다.
도 10은 육각 형태의 필터를 통해 색차 오프셋이 유도되는 예를 나타낸다.
도 10의 (a)는 색차 오프셋이 적용되는 색차 샘플 및 상기 색차 오프셋을 유도하는데 이용되는 휘도 샘플들을 나타낸다. 또한, 도 10의 (b)는, 휘도 샘플들에 적용되는 필터를 나타낸다.
휘도 샘플들에 육각 형태 필터를 적용하여 임시값을 생성하고, 생성된 임시값을 기초로 색차 오프셋을 유도할 수 있다. 일 예로, 수학식 4 및 수학식 5는 각각 임시값을 유도하는 예 및 색차 오프셋을 유도하는 예를 나타낸다.
Figure PCTKR2021003582-appb-M000004
Figure PCTKR2021003582-appb-M000005
수학식 4에서, f[n]은 필터 계수를 의미한다. I는 입력되는 휘도 샘플을 나타낸다. hx는 수평 방향(즉, x축) 좌표가 x인 것을 나타내고, vy는 수직 방향(즉, y축) 좌표가 y인 것을 나타낸다. 즉, I[hx, vy]는, (x, y)위치의 휘도 샘플을 나타낸다.
수학식 5에서 Off(x, y)는 색차 오프셋을 나타낸다.
수학식 5에 나타난 예에서와 같이, 임시값 tmp에 시프팅 파라미터 shift에 기초한 시프팅 연산을 수행함으로써, 색차 오프셋 Off(x, y)를 유도할 수 있다.
시프팅 파라미터는 부호화기 및 복호화기에서 기 정의된 값으로 설정될 수 있다. 일 예로, 시프팅 파라미터는, '7' 과 같은 상수로 설정될 수 있다.
또는, 시프팅 파라미터의 값을 나타내는 정보가 부호화되어 시그날링될 수 있다. 상기 정보는, 슬라이스, 픽처 또는 시퀀스 등 상위 헤더를 통해 시그날링될 수 있다.
또는, 현재 블록의 크기, 필터의 크기, 필터의 형태, 비트 뎁스, 컬러 포맷 또는 컬러 성분 중 적어도 하나에 기초하여, 시프팅 파라미터의 값을 적응적으로 결정할 수도 있다.
도 10과 도시된 상이한 형태의 성분간 적응적 루프 필터를 적용할 수도 있다.
도 11은 직사각 형태의 6탭 필터가 적용되는 예를 나타낸다.
도 11의 (a)는 색차 오프셋이 적용되는 색차 샘플 및 상기 색차 오프셋을 유도하는데 이용되는 휘도 샘플들을 나타낸다. 또한, 도 11의 (b)는, 휘도 샘플들에 적용되는 필터를 나타낸다.
도 10 및 도 11에서는, 컬러 포맷이 4:2:0인 경우를 예시로 하였다. 예시된 바와 달리, 컬러 포맷이 4:2:2 또는 4:4:4인 경우에도 성분간 적응적 루프 필터가 적용될 수도 있다.
도 12는 컬러 포맷이 4:2:2인 영상에 성분간 적응적 루프 필터가 적용되는 예를 나타낸다.
도 12에서는 다이아몬드형 필터가 적용되는 것으로 예시되었다.
도 12의 (a)는 색차 오프셋이 적용되는 색차 샘플 및 상기 색차 오프셋을 유도하는데 이용되는 휘도 샘플들을 나타낸다. 또한, 도 12의 (b)는, 휘도 샘플들에 적용되는 필터를 나타낸다.
도 13은 컬러 포맷이 4:4:4인 영상에 성분간 적응적 루프 필터가 적용되는 예를 나타낸다.
도 13에서는 다이아몬드형 필터가 적용되는 것으로 예시되었다.
도 13의 (a)는 색차 오프셋이 적용되는 색차 샘플 및 상기 색차 오프셋을 유도하는데 이용되는 휘도 샘플들을 나타낸다. 또한, 도 13의 (b)는, 휘도 샘플들에 적용되는 필터를 나타낸다.
도 12 및 도 13에서는 3x3 크기의 다이아몬드형 필터가 적용된 것으로 예시되었다. 다른 예로, 5x5 또는 7x7 크기의 다이아몬드형 필터를 적용할 수도 있다.
도 10 내지 도 13에 도시된 예에서와 같이, 컬러 포맷에 따라, 필터 형태가 결정될 수 있다.
다른 예로, 컬러 포맷에 따라, 필터 크기를 적응적으로 결정할 수도 있다. 일 예로, 컬러 포맷이 4:2:0인 경우에는 3x3 크기의 다이아몬드형 필터를 적용하는 한편, 컬러 포맷이 4:4:4인 경우에는 5x5 크기의 다이아몬드형 필터를 적용할 수 있다.
도 10 내지 도 13에 도시된 예에서와 같이, 필터를 구성하는 필터 계수들 각각을 독립적으로 부호화/복호화할 수 있다. 또는, 필터의 중앙에 위치하는 필터 계수를 중심으로, 필터 계수들을 대칭 형태로 배치함으로써, 필터를 구성하는 필터 계수들 중 일부만을 부호화/복호화할수도 있다.
도 14은 필터 계수들이 대칭 형태로 배치되는 예를 나타낸 것이다.
도 14의 (a)는 3x3 크기의 다이아몬드형 필터에서 필터 계수들이 미러링 배치되는 예를 나타낸 것이고, 도 14의 (b)는 5x5 크기의 다이아몬드형 필터에서 필터 계수들이 미리링 배치되는 예를 나타낸 것이다.
도 14의 (a) 및 (b)에 도시된 예에서와 같이, 중앙 위치의 필터 계수(도 14의 (a)에서는 f[2], 도 14의 (b)에서는 f[6])를 중심으로, 필터 계수들이 미러링 배치될 수 있다. 즉, 하나의 필터 계수가 복수의 위치에 적용될 수 있다. 이에 따라, 모든 필터 계수들의 정보를 부호화하는 대신, 일부 필터 계수들에 대한 정보만을 부호화할 수 있다.
컬러 포맷이 4:2:0인 경우, 샘플링된 색차 샘플이 휘도 샘플과 동일한 위치에 존재하는지 여부를 나타내는 플래그가 부호화될 수 있다. 일 예로, 상술한 예에서와 같이, 신택스 sps_chroma_vertical_collocated_flag 또는 신택스 sps_chroma_horizontal_collocated_flag 중 적어도 하나에 기초하여, 샘플링된 색차 샘플이 휘도 샘플과 동일한 위치에 존재하는지 여부가 결정될 수 있다.성분간 적응적 루프 필터의 형태 또는 크기는, 샘플링된 색차 샘플과 휘도 샘플 간의 위치를 정의하는 타입에 따라 상이할 수 있다. 일 예로, 현재 픽처가 Type-0 방식으로 샘플링된 경우(즉, sps_chroma_vertical_collocated_flag가 0인 경우), 도 10에 예시된 육각형태의 필터 또는 도 11에 예시된 사각형태의 6탭 필터가 적용될 수 있다. 반면, 현재 픽처가 Type-2 방식으로 샘플링된 경우(즉, sps_chroma_vertical_collocated_flag가 1인 경우, 도 10 및 도 11에 도시된 것과 상이한 형태 또는 상이한 크기의 필터가 적용될 수 있다.
도 15는 Type-0 방식으로 샘플링된 영상에 성분간 적응적 루프 필터가 적용되는 예를 나타낸다.
도 15의 (a)는 색차 오프셋이 적용되는 색차 샘플 및 상기 색차 오프셋을 유도하는데 이용되는 휘도 샘플들을 나타낸다. 또한, 도 15의 (b)는, 휘도 샘플들에 적용되는 필터를 나타낸다.
도시된 예에서와 같이, Type-0 방식으로 샘플링된 영상에 대해서는 다이아몬드형 필터가 적용될 수 있다.
도 15에 도시된 다이아몬드형 필터가 적용되는 경우, 색차 오프셋은 다음의 수학식 6 및 수학식 7을 기초로 생성될 수 있다.
Figure PCTKR2021003582-appb-M000006
Figure PCTKR2021003582-appb-M000007
도 10 내지 도 15에 예시된 것들과 다른 형태의 필터를 적용할 수도 있다.
도 16은 성분간 적응적 루프 필터로 이용 가능한 다양한 필터 형태들에 대한 예시이다.
설명한 예에서와 같이, 현재 픽처의 샘플링 타입에 따라, 복수의 필터 타입 후보들 중 하나가 선택될 수 있다.
다른 예로, 현재 픽처의 샘플링 타입에 따라, 복수의 필터 타입 후보들 각각의 이용 가능성을 결정할 수도 있다. 즉, 현재 픽처의 샘플링 타입에 따라, 이용 가능한 필터 타입 후보들의 개수 또는 종류 중 적어도 하나가 상이할 수 있다.
이용 가능한 필터 타입 후보들이 복수개인 경우, 복수개의 필터 타입 후보들 중 하나를 선택하기 위한 인덱스 정보가 추가 부호화되어 시그날링될 수 있다.
하드웨어 구현의 편의 및 메모리 절약을 위해, 영역들 간 경계에서 필터를 적용하는 것에 제약을 적용할 수 있다. 일 예로, 필터가 영역의 경계를 벗어나는 경우, 영역의 경계를 벗어나는 위치의 샘플 및/또는 이에 대칭인 위치의 샘플을 제외하고 필터링을 수행할 수 있다. 여기서, 영역들 각각은 가상 경계(Virtual Boundary, VB)에 의해 구분될 수 있다. 또는, 영역은, 슬라이스, 타일 또는 서브 픽처일 수 있다. 이하, 영역들 각각이 가상 경계에 의해 구분되는 것으로 가정한다.
코딩 트리 유닛 내 수평 또는 수직 방향을 따라, 가상 경계가 설정될 수 있다.
도 17은 가상 경계를 설명하기 위한 예시도이다.
도 17은, 코딩 트리 유닛을 수평 방향으로 이분할하는 가상 경계를 예시하고 있다.
코딩 트리 유닛의 하단 경계로부터 가상 경계 까지의 샘플 행들의 개수를 가상 경계의 크기로 정의할 수 있다.
가상 경계의 크기는 필터의 형태 또는 필터의 크기 중 적어도 하나에 기초하여 결정될 수 있다. 일 예로, 필터의 수직 방향 최대 길이를 가상 경계의 크기와 동일하게 설정할 수 있다. 일 예로, 3x3 크기의 다이아몬드형 필터가 적용된 경우라면, 가상 경계의 크기가 필터의 수직 방향 최대 길이와 동일하게 3으로 설정되고, 5x5 크기의 다이아몬드형 필터가 적용된 경우라면, 가상 경계의 크기가 필터의 수직 방향 최대 길이인 5로 설정될 수 있다. 다른 예로, 필터의 최대 길이에서 1을 더한 값을 우측으로 1만큼 시프팅하여 유도되는 값을, 가상 경계의 크기로 설정할 수 있다. 일 예로, 3x3 크기의 다이아몬드형 필터가 적용된 경우, 가상 경계의 크기 N은 2 ((3+1)>>1)로 설정될 수 있다. 또는, 5x5 크기의 다이아몬드형 필터가 적용된 경우, 가상 경계의 크기 N은 3 ((5+1)>>1)으로 설정될 수 있다.
이때, 위 두 예시 중 어떠한 방법을 이용하여 가상 경계의 크기를 결정할 것인지는, 필터 계수들이 대칭 형태로 구성되어 있는지 여부에 기초할 수 있다. 일 예로, 필터 계수들이 대칭 형태로 구성되어 있는 경우(예컨대, 도 14), 가상 경계의 크기는 필터의 최대 길이에서 1을 더한 값을 우측으로 1만큼 시프팅하여 유도될 수 있다. 반면, 필터 계수들간 대칭성을 띠지 않는 경우, 가상 경계의 크기는 필터의 최대 길이와 동일하게 설정될 수 있다.
또는, 필터의 수직 방향 최대 길이에서 오프셋을 가산 또는 감산한 값을 가상 경계의 크기로 설정할 수 있다. 가상 경계의 크기는 코딩 트리
세로 방향의 가상 경계가 설정될 수도 있다. 이 경우, 코딩 트리 유닛의 좌측 경계와 가상 경계 사이의 샘플열들의 개수를 가상 경계의 크기로 정의할 수 있다. 가상 경계의 크기는 필터의 수평 방향 최대 길이와 동일하게 설정되거나, 필터의 수평 방향 최대 길이에서 오프셋을 가산 또는 감산한 값으로 설정될 수 있다.
필터가 가상 경계를 벗어나는 경우, 가상 경계를 벗어나는 위치의 샘플 및/또는 이에 대칭인 위치인 샘플은 이용 불가능한 것으로 설정될 수 있다.
도 18은 필터가 대칭으로 구성되어 있고, 가상 바운더리에 걸쳐진 경우, 필터의 적용 양상을 설명하기 위한 예시도이다.
도 18에 도시된 예에서, 필터의 하단부에 위치하는 필터 계수 f[0]가 적용되는 휘도 샘플이 가상 경계를 벗어나는 것으로 예시되었다. 이에 따라, 상기 휘도 샘플은 이용 불가능한 것으로 설정될 수 있다.
또한, 이용 불가능한 휘도 샘플과 대칭인 휘도 샘플도 이용 불가능한 것으로 결정될 수 있다. 일 예로, 도 18에 도시된 예에서, 필터의 상단부에 위치하는 필터 계수 f[0]가 적용되는 휘도 샘플 역시 이용 불가능한 것으로 설정될 수 있다.
이용 불가능한 휘도 샘플과 대칭 위치인 휘도 샘플을 이용 불가능한 것으로 설정할 것인지 여부는, 필터 계수들이 대칭 형태로 배열되어 있는지 여부를 기초로 결정될 수 있다. 일 예로, 필터 계수들이 대칭 형태로 배열된 경우에 한하여, 이용 불가능한 휘도 샘플과 대칭인 휘도 샘플을 이용 불가능한 것으로 설정할 수 있다.
이용 불가능한 휘도 샘플을 제외하고 필터링을 수행할 수 있다. 이에 따라, 도 18에 도시된 예에서, 중앙에 위치하는 필터 계수(f[0])가 적용되는 휘도 샘플 및 상기 휘도 샘플과 동일한 행에 속하는 휘도 샘플들(즉, 필터 계수 f[1]이 적용되는 휘도 샘플들)만을 이용하여 색차 오프셋을 유도할 수 있다.
이용 불가능한 휘도 샘플을 제외하는 대신, 이용 불가능한 휘도 샘플 위치에 패딩을 수행한 뒤, 패딩된 휘도 샘플을 이용하여 필터링을 수행할 수도 있다. 패딩은, 이용 불가능한 샘플과 대칭 위치인 화소 또는 이용 불가능한 샘플에 적용되는 필터 계수와 동일한 필터 계수가 적용되는 화소를 복사함으로써 수행될 수 있다. 일 예로, 가상 경계를 벗어나는 휘도 샘플(즉, 필터 하단부의 필터 계수 f[0]가 적용되는 휘도 샘플)의 값을, 상단 인접 복원 샘플(즉, 필터 중앙의 필터 계수 f[2]가 적용되는 휘도 샘플)의 값으로 대체하거나, 가상 경계를 벗어나는 휘도 샘플(즉, 필터 하단부의 필터 계수 f[0]가 적용되는 휘도 샘플)의 값을, 대칭인 휘도 샘플(즉, 필터 상단부의 필터 계수 f[0]가 적용되는 휘도 샘플)의 값으로 대체할 수 있다.
성분간 적응적 루프 필터를 적용할 때, 색차 샘플과 색차 오프셋을 합하여, 개선된 색차 샘플을 획득할 수 있다.
이때, 버퍼의 크기에 따라, 색차 오프셋을 클리핑할 수도 있다. 일 예로, 버퍼의 크기가 N비트인 경우, 색차 오프셋 Off(x,y)의 값을, (-(1<<(N-1))에서, ((1<<(N-1))-1) 사이의 값으로 클리핑할 수 있다.
클리핑 파라미터 N(즉, 버퍼의 크기)을 나타내는 정보가 부호화되어 시그날링될 수 있다. 일 예로, 상기 정보는, 슬라이스, 픽처 또는 시퀀스 등 상위 헤더를 통해 부호화될 수 있다. 다른 예로, 비트 뎁스에 의해 클리핑 파라미터 N이 결정될 수도 있다.
또는, 비트스트림을 통해 시그날링되는 정보 및 비트 뎁스를 이용하여 클리핑 파라미터 N을 결정할 수도 있다. 일 예로, 비트 뎁스와 클리핑 파라미터 N 사이의 차분을 나타내는 정보를 비트스트림에 부호화할 수 있다. 이에 따라, 복호화기에서는, 비트 뎁스와 상기 정보로부터 유도되는 차분값을 합하여, 클리핑 파라미터 N을 유도할 수 있다.
또는, 클리핑 파라미터 N의 값이 부호화기 및 복호화기에 기 정의되어 있을 수도 있다.
과정의 간소화를 위해, 색차 오프셋 Off(x, y)에 대한 클리핑을 수행하지 않을 수도 있다.
또는, 색차 오프셋 Off(x,y)에 클리핑을 수행하는 대신, 색차 오프셋과 색차 샘플의 합산 값에 클리핑을 수행할 수도 있다. 즉, 색차 오프셋 및 합산 값 각각에 클리핑을 수행하는 대신, 합산 값에만 클리핑을 수행함으로써, 클리핑이 중복 적용되는 것을 방지할 수 있다. 일 예로, 개선된 색차 화소는 다음의 수학식 8과 같이 유도될 수 있다.
Figure PCTKR2021003582-appb-M000008
상기 수학식 8에서, ccAlfSample은 개선된 색차 샘플, 즉, 필터링된 색차 샘플을 나타낸다. Sample(x,y)는 (x,y)위치의 색차 샘플를 나타낸다. 색차 샘플 Sample(x,y) 및 색차 오프셋 Off(x,y)의 합산값에 클리핑 함수를 적용함에 따라, 개선된 색차 샘플 ccAlfSample(x,y)의 값이 (1<<N) -1을 초과하지 않게된다.
성분간 적응적 루프 필터 적용시에도, 비선형성을 적용할 수도 있다. 비선형 성분간 적응적 루프 필터를 적용하는 경우, 클립(Clip) 함수를 적용하여, 색차 오프셋을 유도할 수 있다. 일 예로, 성형 성분간 적응적 루프 필터가 적용되는 경우, 상술한 수학식 4에 의해 임시값 tmp가 유도될 수 있다. 반면, 비선형 성분간 적응적 루프 필터가 적용되는 경우, 다음의 수학식 9에 의해 임시값 tmp가 유도될 수 있다.
Figure PCTKR2021003582-appb-M000009
수학식 9에서, c[n]은 클리핑 값 k(i, j)를 1차원으로 표현한 것이다.
수학식 9를 통해 임시값 tmp가 유도되면, 수학식 5를 통해, 색차 오프셋을 획득할 수 있다.
비선형 성분간 적응적 루프 필터가 적용되는지 여부를 나타내는 정보가 부호화되어 시그날링될 수 있다. 일 예로, 비선형 성분간 적응적 루프 필터가 적용되는지 여부를 나타내는 1비트 플래그가 부호화되어 시그날링될 수 있다.
또는, 컬러 포맷, 디블록킹 필터가 적용되었는지 여부, 샘플 적응적 오프셋 필터가 적용되었는지 여부, 필터 형태 또는필터 크기 중 적어도 하나에 기초하여, 비선형 성분간 적응적 루프 필터의 적용 여부를 결정할 수도 있다.
비선형 성분간 적응적 루프 필터가 적용되는 경우, 필터 계수에 대응하는 클리핑 값을 결정하기 위한 정보가 부호화되어 시그날링될 수 있다. 일 예로, 필터 계수 f[n]에 대응하는 클리핑 값 c[n]을 나타내는 정보가 부호화될 수 있다.
이때, 복수의 클리핑 값들을 후보들로 설정한 뒤, 복수의 클리핑 값 후보들 중, 필터 계수에 대응하는 클리핑 값을 특정하는 인덱스를 필터 계수별로 부호화하여 시그날링할 수 있다.
표 1은 각 클리핑 값 후보에 상이한 클리핑 인덱스가 할당되는 예를 나타낸다.
BitDepth clipIdx
0 1 2 3
8 28 25 23 21
9 29 26 24 22
10 210 27 25 23
11 211 28 26 24
12 212 29 27 25
13 213 210 28 26
14 214 211 29 27
15 215 212 210 28
16 216 213 211 29
표 1에서, Bitdepth는 영상의 비트 뎁스를 나타내고, clipIdx는 클리핑 값 후보에 할당되는 클리핑 인덱스를 나타낸다.
클리핑 값 후보들의 구성은, 비트 뎁스에 따라 상이할 수 있다. 여기서, 일 예로, 비트 뎁스에 따라, 후보들의 개수 또는 후보들의 값 중 적어도 하나가 상이할 수 있다. 표 1에서는, 비트 뎁스에 따라, 클리핑 값 후보들의 값이 상이하게 설정되는 것으로 예시되었다.
또는, 픽처 해상도, 컬러 포맷, 필터 형태 또는 필터 크기 중 적어도 하나에 기초하여, 클리핑 값 후보들의 구성이 결정될 수 있다. 일 예로, 픽처 해상도, 컬러 성분 또는 컬러 포맷에 따라, 후보들의 개수 또는 후보들의 값 중 적어도 하나가 상이할 수 있다.
클리핑 값을 식별하는 인덱스의 비트 렝스를 줄이기 위해, 표 1에 예시된 것 보다 더 적은 개수의 후보들을 이용할 수도 있다. 일 예로, 비트 뎁스 별로 2개의 클리핑 값 후보들만을 정의할 수도 있다. 2개의 클리핑 값 후보들이 정의되어 있을 경우, 1비트의 플래그를 이용하여, 클리핑 값을 결정할 수 있다.
표 2 내지 표 4는, 간소화된 룩업 테이블을 예시한 것이다.
BitDepth clipIdx
0 1
8 28 25
9 29 26
10 210 27
11 211 28
12 212 29
13 213 210
14 214 211
15 215 212
16 216 213
BitDepth clipIdx
0 1
8 28 23
9 29 24
10 210 25
11 211 26
12 212 27
13 213 28
14 214 29
15 215 210
16 216 211
BitDepth clipIdx
0 1
8 28 21
9 29 22
10 210 23
11 211 24
12 212 25
13 213 26
14 214 27
15 215 28
16 216 29
복수의 룩업 테이블들이 기-저장된 경우, 복수의 룩업 테이블들 중 하나를 식별하는 정보를 부호화하여 시그날링할 수 있다. 일 예로, 표 1 내지 표 4에 도시된 룩업 테이블들 중 하나를 특정하는 인덱스가 부호화되어 시그날링될 수 있다. 또는, 비트 뎁스, 컬러 성분 또는 컬러 포맷 중 적어도 하나에 기초하여, 룩업 테이블이 적응적으로 선택될 수 있다.
또는, 간소화된 룩업 테이블을 이용할 것인지 여부를 나타내는 정보가 비트스트림을 통해 시그날링될 수 있다. 일 예로, 상기 정보가 간소화된 룩업 테이블이 이용되지 않음을 나타내는 경우, 표 1의 룩업 테이블을 이용하여, 클리핑 값이 결정될 수 있다. 반면, 상기 정보가 간소화된 룩업 테이블이 이용됨을 나타내는 경우, 표 2 내지 표 4 중 하나의 룩업 테이블을 이용하여, 클리핑 값이 결정될 수 있다. 또는, 컬러 포맷, 비트 뎁스, 필터 형태 또는 필터 크기 중 적어도 하나에 기초하여, 간소화된 룩업 테이블을 이용할 것인지 여부가 결정될 수 있다.
다른 예로, 메모리 점유율을 낮추기 위해, 룩업 테이블을 이용하는 대신, 수식을 이용하여, 클리핑 값을 결정할 수도 있다. 수학식 10은 비트 뎁스 및 클리핑 인덱스에 의해 클리핑 값이 결정되는 예를 나타낸다.
Figure PCTKR2021003582-appb-M000010
상기 수학식 10에서, 변수 clipIdx는 비트스트림을 통해 시그날링되는 인덱스에 의해 결정될 수 있다.
상술한 예에서는, 필터 계수마다 클리핑 값을 결정하기 위한 인덱스가 부호화되는 것으로 예시되었다.
다른 예로, 기 설정된 위치의 필터 계수에 대해서만 인덱스를 부호화할 수도 있다.
도 19는 필터 계수들 중 일부에 대해서만 인덱스가 부호화되는 예를 나타낸다.
도 19의 (a)에서는, f[0], f[1], f[3], f[4], f[6] 및 f[7]에 대해서만, 인덱스가 부호화되는 것으로 예시되었다.
도 19의 (b)에서는, f[0], f[1], f[3], f[4], f[5], f[6] 및 f[7]에 대해서만, 인덱스가 부호화되는 것으로 예시되었다.
인덱스가 부호화되지 않는 필터 계수에 대해서는, 고정된 클리핑 값을 사용하거나, 인접 위치 필터 계수의 클리핑 값을 사용할 수 있다. 여기서, 인접 위치는, 상단, 하단, 좌측 또는 우측 중 적어도 하나를 가리킨다. 기하학적 변환 타입에 따라, 인접 위치가 적응적으로 결정될 수도 있다.
또는, 인덱스가 부호화되는 위치에서만 클리핑 함수를 적용할 수도 있다. 즉, 인덱스가 부호화되지 않는 위치에서는, 클리핑 함수를 적용하지 않을 수 있다. 일 예로, 도 19의 (a)에 도시된 예에서, f[0], f[1], f[3], f[4], f[6] 및 f[7]이 적용되는 위치에서는 클리핑 함수가 적용되는 한편, f[2] 및 f[5]가 적용되는 위치에서는 클리핑 함수가 적용되지 않을 수 있다.
복원된 휘도 샘플들에 성분간 적응적 루프 필터를 적용함으로써, 색차 오프셋을 유도할 수 있다. 이때, 제1 색차 성분(예컨대, Cb 성분)에 대한 오프셋(이하, 제1 색차 오프셋이라 함)을 유도하기 위한 필터 타입과, 제2 색차 성분(예컨대, Cr 성분)에 대한 오프셋(이하, 제2 색차 오프셋이라 함)을 유도하기 위한 필터 타입이 개별적으로 결정될 수 있다. 즉, 휘도 샘플들에 제1 타입의 성분간 적응적 루프 필터를 적용하여 제1 색차 오프셋을 획득하고, 휘도 샘플들에 제2 타입의 성분간 적응적 루프 필터를 적용하여 제2 색차 오프셋을 획득할 수 있다.
이 경우, 제1 색차 성분 및 제2 색차 성분 각각에 대해 필터 계수 세트 정보가 부호화되어 시그날링될 수 있다. 일 예로, 제1 색차 성분 및 제2 색차 성분 각각에 대해, 복수의 필터 계수 세트 후보들 중 하나를 식별하는 인덱스를 부호화하여 시그날링할 수 있다.
다른 예로, 휘도 샘플들에 단일의 성분간 적응적 루프 필터를 적용하여 통합된 색차 오프셋을 유도할 수도 있다.
도 20은 통합된 색차 오프셋이 획득되는 예를 나타낸 것이다.
휘도 샘플들에, 제1 색차 성분(예컨대, Cb) 및 제2 색차 성분(예컨대, Cr)에 동시에 적용되는 필터 계수 세트를 적용함으로써, 통합된 색차 오프셋 OffUNI를 유도할 수 있다.
이 경우, 제1 색차 성분 및 제2 색차 성분 중 하나에 대해서만, 필터 계수 세트 정보가 부호화되어 시그날링될 수 있다.
통합된 색차 오프셋 OffUNI는 제1 색차 성분 및 제2 색차 성분에 공통적으로 적용될 수 있다. 일 예로, 제1 색차 샘플 CbALF에 통합된 색차 오프셋 OffUNI를 가산하여, 개선된 제1 색차 샘플 CbCCALF가 출력되고, 제2 색차 샘플 CrALF에 통합된 색차 오프셋 OffUNI를 가산하여, 개선된 제2 색차 샘플 CrCCALF가 출력될 수 있다.
색차 성분들 각각에 대해 개별적으로 색차 오프셋을 유도할 것인지 여부를 나타내는 정부가 부호화되어 시그날링될 수 있다. 상기 정보는 1비트의 플래그일 수 있다. 일 예로, 플래그의 값이 1인 것은, 색차 성분들 각각에 대해 개별적으로 색차 오프셋이 유도됨을 나타내고, 플래그의 값이 0인 것은, 통합된 오프셋이 색차 성분들에 공통적으로 적용됨을 나타낸다. 상기 정보는, 슬라이스, 픽처 또는 시퀀스 등 상위 헤더를 통해 부호화될 수 있다. 또는, 성분간 적응적 루프 필터의 적용 여부가 결정되는 블록 마다 상기 정보가 부호화될 수도 있다.
또는, 소정의 처리 단위 별로, 색차 성분별로 색차 오프셋이 결정되는지 여부가 결정될 수 있다. 여기서, 처리 단위는 병렬 처리가 가능한 영역을 나타내는 것으로, 일 예로, 타일 슬라이스 또는 서브 픽처일 수 있다.
또는, 공통 색차 성분 잔차 신호 부호화 방법(Joint CbCr)이 적용되었는지 여부, 컬러 포맷, 필터 형태 또는 필터 타입 중 적어도 하나에 기초하여, 색차 성분별로 색차 오프셋을 결정할 것인지 여부가 결정될 수 있다. 일 예로, 컬러 포맷이 4:2:0인 경우에는, 색차 성분들 각각에 대해 색차 오프셋이 유도될 수 있다. 반면, 컬러 포맷이 4:2:2 또는 4:4:4인 경우, 색차 성분들에 공통으로 적용되는 통합된 오프셋이 유도될 수 있다.
또는, 휘도 및 색차 블록의 분할 구조에 따라, 색차 오프셋의 유도 방법이 적응적으로 결정될 수 있다. 일 예로, 싱글 트리 구조 하에서는, 색차 성분들 각각에 대해 색차 오프셋이 유도될 수 있다. 반면, 듀얼 트리 구조 하에서는, 색차 성분들에 공통으로 적용되는 통합된 오프셋이 유도될 수 있다.
성분간 적응적 루프 필터와 관련한 정보가 상위 헤더를 통해 부호화되어 시그날링될 수 있다. 여기서, 상위 헤더는, 적응적 루프 필터의 적용 여부가 결정되는 복수의 블록(예컨대, 코딩 트리 유닛, 코딩 유닛 또는 변환 유닛)들이 공통으로 참조하는 파라미터 세트를 나타낸다. 특히, 성분간 적응적 루프 필터와 관련한 정보가 부호화된 상위 헤더를 필터 헤더라 정의할 수 있다.
필터 헤더를 통해, 필터 계수 세트에 관한 정보 또는 각 필터 계수 세트의 구성 정보 중 적어도 하나가 시그날링될 수 있다. 일 예로, 필터 헤더는, 제1 색차 성분(예컨대, Cb)을 위한 하나의 필터 계수 세트 후보들의 개수를 나타내는 정보 및 각각의 필터 계수 세트 후보들의 구성 정보를 포함할 수 있다. 또한, 필터 헤더는, 제2 색차 성분(예컨대, Cr)을 위한 필터 계수 세트 후보들의 개수를 나타내는 정보 및 각각의 필터 계수 세트 후보들의 구성 정보를 포함할 수 있다.
상술한 예에서와 같이, 제1 색차 성분에 대한 필터 계수 세트 후보들의 개수 정보 및 제2 색차 성분에 대한 필터 계수 세트 후보들의 개수 정보가 개별적으로 부호화되어 시그날링될 수 있다.
다른 예로, 제1 색차 성분을 위한 필터 계수 세트 후보들의 개수 및 제2 색차 성분을 위한 필터 계수 세트 후보들의 개수를 동일하게 설정한 뒤, 제1 색차 성분 또는 제2 색차 성분 중 하나에 대해서만, 필터 계수 세트 후보들의 개수 정보를 부호화할 수도 있다.
또는, 부호화기 및 복호화기에서 필터 계수 세트 후보들의 개수가 기 정의되어 있을 수 있다. 이 경우, 필터 계수 세트 후보들의 개수를 나타내는 정보의 부호화가 생략될 수 있다.
필터 계수 세트의 구성 정보는, 필터 계수 세트를 구성하는 필터 계수들 각각의 정보를 포함한다. 이때, 필터 중앙 위치의 필터 계수에 대해서는 부호화가 생략될 수 있다.
중앙 위치의 필터 계수는, 소정의 상수값에서 잔여 필터 계수들의 합을 차분하여 유도될 수 있다.
필터 계수에 대한 정보는, 필터 계수의 절대값 정보 또는 필터 계수의 부호 정보 중 적어도 하나를 포함할 수 있다.
복수의 필터 헤더들이 부호화되어 시그날링될 수 있다. 이때, 각 필터 헤더에는 상이한 식별자(ID, Identifier)가 할당될 수 있다. 복수의 필터 헤더들 중 색차 성분이 참조하는 필터 헤더를 식별하기 위해, 인덱스 정보가 부호화되어 시그날링될 수 있다.
상기 인덱스 정보는, 블록별로 부화되어 시그날링될 수 있다. 또는, 상기 인덱스 정보는, 소정의 처리 단위별로 부호화되어 시그날링될 수 있다. 여기서, 처리 단위는 병렬 처리가 수행되는 영역을 나타내는 것으로, 일 예로, 타일, 슬라이스 또는 서브 픽처일 수 있다.
상기 인덱스 정보는 색차 성분들 각각에 대해 부호화될 수 있다. 또는, 두 색차 성분들 중 어느 하나에 대해서만 인덱스 정보가 부호화될 수도 있다. 일 예로, 통합된 색차 오프셋을 유도하는 방법 하에서는, 색차 성분들 중 하나에 대해서만, 인덱스 정보가 부호화될 수 있다.
영상 별 필터 헤더의 개수를 나타내는 정보를 부호화하여 시그날링할 수 있다. 일 예로, 상기 개수 정보는, 픽처 또는 시퀀스 등 상위 헤더를 통해 시그날링될 수 있다. 상기 개수 정보는, 필터 헤더의 총 개수에서 1을 차분한 값을 나타낼 수 있다.
색차 성분들이 동일한 필터 헤더를 참조하도록 설정할 수 있다. 이 경우, 필터 헤더는, 제1 색차 성분에 대한 필터 계수 세트 후보들에 대한 정보 및 제2 색차 성분에 대한 필터 계수 세트 후보들에 대한 정보를 모두 포함할 수 있다.
다른 예로, 색차 성분들 각각에 대한 필터 헤더가 개별적으로 선택될 수 있다. 일 예로, 제1 색차 성분은 인덱스가 1번인 필터 헤더를 참조하는 한편, 제2 색차 성분은 인덱스가 3번인 필터 헤더를 참조할 수 있다.
색차 성분들 각각에 대해 필터 헤더가 선택되는지 여부를 나타내는 정보가 부호화될 수 있다. 상기 정보에 기초하여, 색차 성분별로 복수의 필터 헤더들 중 하나를 가리키는 인덱스가 시그날링되는지 여부가 결정될 수 있다.
필터 계수 f[n]을 2의 지수승으로 양자화하여 필터를 적용할 수도 있다. 이 경우, 필터 계수 절대값 정보 대신, 필터 계수의 인덱스를 부호화하여 시그날링할 수 있다. 인덱스는 2의 지수승으로 표현되는 값들 중 하나를 나타낼 수 있다. 일 예로, 필터 계수 절대값이 0 부터 64 사이의 값을 갖고, 필터 계수를 2의 지수승으로 표현되는 값으로 양자화하는 것으로 가정하면, 필터 계수의 절대값은, 다음의 세트에 포함된 값들 중 하나로 결정된다.
{0, 1, 2, 4, 8, 16, 32, 64}
이에, 위 세트에 포함된 값들 중 하나를 특정하는 인덱스를 부호화할 수 있다. 일 예로, 인덱스 0는 절대값 0을 나타내고, 인덱스 7은 절대값 64를 나타낼 수 있다.
필터 계수의 값을 2의 지수승으로 양자화하는 대신, 양자화되는 값들 각각이 등차 또는 등비를 갖도록 설정할 수도 있다. 일 예로, {0, 9, 18, 27, 36, 45, 54, 64}와 같이 등차 수열들 중 하나가 되도록 필터 계수를 양자화할 수 있다.
필터 계수의 절대값을 나타내는 인덱스의 부호화시, 단항 이진화(Truncated Unary Binarization) 방식을 적용할 수 있다.
다른 예로, 필터 계수의 절대값을 나타내는 인덱스의 부호화시, 고정 길이(Fixed Length) 방식을 적용할 수 있다. 일 예로, 총 8개의 값들 중 하나를 나타내는 인덱스를 부호화하는 경우라면, 000 내지 111 사이의 값을 갖는 인덱스를 부호화하여 시그날링할 수 있다.
필터 계수의 절대값이 0이 아닌 경우에는, 필터 계수 부호 정보를 추가 부호화하여 시그날링할 수 있다. 부호 정보는, 필터 계수가 양수인지 또는 음수인지를 나타내는 플래그일 수 있다.
필터 계수의 절대값의 범위는, 부호화기 및 복호화기에서 기 정의되어 있을 수 있다.
다른 예로, 필터 계수의 절대값의 범위를 나타내는 정보가 비트스트림을 통해 시그날링될 수 있다. 상기 정보는 슬라이스, 픽처, 시퀀스 또는 필터 헤더 등 상위 헤더를 통해 시그날링될 수 있다. 상기 정보는, 범위의 최소값 또는 최대값 중 적어도 하나를 나타낼 수 있다. 일 예로, 범위의 최대값이 2N으로 표현될 경우, 상기 N을 특정하기 위한 정보를 부호화하여 시그날링할 수 있다.
다른 예로, 컬러 성분, 컬러 포맷, 필터 크기 또는 필터 형태 중 적어도 하나에 기초하여, 범위가 적응적으로 결정될 수 있다.
복수의 필터 헤더들이 존재하는 경우, 기 정의된 레벨의 처리 단위 별로, 필터 헤더들 중 하나를 식별하는 식별 정보를 시그날링할 수 있다. 일 예로, 슬라이스, 서브 픽처 또는 타일별로, 복수의 필터 헤더들 중 하나를 나타내는 식별 정보를 부호화하여 시그날링할 수 있다. 기 정의된 레벨의 처리 단위에 속한 블록들은, 상기 처리 단위 레벨에서 결정된 필터 헤더를 이용할 수 있다.
다른 예로, 소정 레벨의 처리 단위 별로, 필터 헤더를 결정한 뒤, 상기 처리 단위에 속한 서브 처리 단위 각각에 대해, 상기 처리 단위 레벨에서 결정된 필터 헤더를 그대로 사용할 것인지 여부를 나타내는 정보를 부호화하여 시그날링할 수 있다. 상기 정보는 1비트의 플래그일 수 있다. 일 예로, 상기 플래그가 1(True)인 경우, 처리 단위 레벨에서 결정된 필터 헤더를 그대로 사용할 수 있다. 반면, 상기 플래그가 0(False)인 경우, 서브 처리 단위에서 사용할 필터 헤더를 식별하는 식별 정보가 추가 부호화될 수 있다. 상기 식별 정보는, 처리 단위 레벨에서 결정된 필터 헤더를 제외한 잔여 필터 헤더들 중 하나를 특정할 수 있다.
다른 예로, 블록별로 필터 헤더를 식별하는 정보를 부호화하여 시그날링할 수도 있다. 일 예로, 현재 코딩 트리 유닛에 대해 성분별 적응적 루프 필터가 적용되는 것으로 결정된 경우, 현재 코딩 트리 유닛에 적용되는 필터 헤더를 식별하기 위한 정보가 추가 부호화되어 시그날링될 수 있다.
상술한 실시예들에서 사용된 신택스들의 명칭은, 설명의 편의를 위해 명명된 것에 불과하다.
복호화 과정 또는 부호화 과정을 중심으로 설명된 실시예들을, 부호화 과정 또는 복호화 과정에 적용하는 것은, 본 개시의 범주에 포함되는 것이다. 소정의 순서로 설명된 실시예들을, 설명된 것과 상이한 순서로 변경하는 것 역시, 본 개시의 범주에 포함되는 것이다.
상술한 실시예는 일련의 단계 또는 순서도를 기초로 설명되고 있으나, 이는 발명의 시계열적 순서를 한정한 것은 아니며, 필요에 따라 동시에 수행되거나 다른 순서로 수행될 수 있다. 또한, 상술한 실시예에서 블록도를 구성하는 구성요소(예를 들어, 유닛, 모듈 등) 각각은 하드웨어 장치 또는 소프트웨어로 구현될 수도 있고, 복수의 구성요소가 결합하여 하나의 하드웨어 장치 또는 소프트웨어로 구현될 수도 있다. 상술한 실시예는 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 하드웨어 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 영상을 부호화/복호화할 수 있는 전자 장치에 적용될 수 있다.

Claims (15)

  1. 성분간 적응적 루프 필터를 적용할 것인지 여부를 결정하는 단계;
    상기 성분간 적응적 루프 필터가 적용되는 경우, 상기 성분간 적응적 루프 필터가 선형성을 갖는지 또는 비선형성을 갖는지 여부를 결정하는 단계;
    상기 성분간 적응적 루프 필터의 필터 계수 세트를 결정하는 단계;
    상기 필터 계수 세트를 이용하여, 휘도 샘플을 필터링하여 색차 오프셋을 유도하는 단계; 및
    상기 색차 오프셋을 이용하여, 색차 샘플을 개선하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1 항에 있어서,
    상기 성분간 적응적 루프 필터가 비선형성을 갖는 것으로 결정되는 경우,
    상기 필터링은, 상기 휘도 샘플과 주변 휘도 샘플 사이의 차분에 클리핑 함수를 적용하여 수행되고,
    상기 클리핑 함수 적용을 위한 클리핑 값은 복수의 클리핑 값 후보들 중 하나를 특정하는 인덱스에 의해 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  3. 제2 항에 있어서,
    상기 인덱스는, 비트스트림으로부터 복호화되는 1비트의 플래그에 의해 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  4. 제2 항에 있어서,
    상기 클리핑 값 후보들의 개수는, 컬러 포맷, 비트 뎁스 또는 필터 타입 중 적어도 하나에 기초하여 적응적으로 결정되는 것을 특징으로 하는, 영상 복호화 방법.
  5. 제2 항에 있어서,
    비트 뎁스와 클리핑 값 후보들 사이의 매핑 관계를 정의한 복수의 룩업 테이블들 중 하나로부터, 상기 복수의 클리핑 값 후보들이 유도되는 것을 특징으로 하는, 영상 복호화 방법.
  6. 제5 항에 있어서,
    비트스트림으로부터 파싱되는 인덱스 정보에 의해 상기 복수의 룩업 테이블들 중 하나가 선택되는 것을 특징으로 하는, 영상 복호화 방법.
  7. 제3 항에 있어서,
    상기 현재 블록 내 복원 샘플들 중 기 정의된 필터 계수가 적용되는 위치에 대해서만, 상기 플래그가 복호화되는 것을 특징으로 하는, 영상 복호화 방법.
  8. 제7 항에 있어서,
    상기 기 정의된 필터 계수가 적용되는 위치에서만, 상기 클리핑 함수가 적용되는 것을 특징으로 하는, 영상 복호화 방법.
  9. 성분간 적응적 루프 필터를 적용할 것인지 여부를 결정하는 단계;
    상기 성분간 적응적 루프 필터가 적용되는 경우, 상기 성분간 적응적 루프 필터가 선형성을 갖는지 또는 비선형성을 갖는지 여부를 결정하는 단계;
    상기 성분간 적응적 루프 필터의 필터 계수 세트를 결정하는 단계;
    상기 필터 계수 세트를 이용하여, 휘도 샘플을 필터링하여 색차 오프셋을 유도하는 단계; 및
    상기 색차 오프셋을 이용하여, 색차 샘플을 개선하는 단계를 포함하는, 영상 부호화 방법.
  10. 제9 항에 있어서,
    상기 성분간 적응적 루프 필터가 비선형성을 갖는 것으로 결정되는 경우,
    상기 필터링은, 상기 휘도 샘플과 주변 휘도 샘플 사이의 차분에 클리핑 함수를 적용하여 수행되고,
    상기 클리핑 함수 적용을 위한 클리핑 값은 복수의 클리핑 값 후보들 중 하나를 특정하는 인덱스에 의해 결정되는 것을 특징으로 하는, 영상 부호화 방법.
  11. 제10 항에 있어서,
    상기 인덱스를 나타내는 1비트의 플래그가 비트스트림에 부호하되는 것을 특징으로 하는, 영상 부호화 방법.
  12. 제10 항에 있어서,
    상기 클리핑 값 후보들의 개수는, 컬러 포맷, 비트 뎁스 또는 필터 타입 중 적어도 하나에 기초하여 적응적으로 결정되는 것을 특징으로 하는, 영상 부호화 방법.
  13. 제10 항에 있어서,
    비트 뎁스와 클리핑 값 후보들 사이의 매핑 관계를 정의한 복수의 룩업 테이블들 중 하나로부터, 상기 복수의 클리핑 값 후보들이 유도되는 것을 특징으로 하는, 영상 부호화 방법.
  14. 제13 항에 있어서,
    상기 복수의 룩업 테이블들 중 하나를 특정하는 인덱스가 비트스트림에 부호화되는 것을 특징으로 하는, 영상 부호화 방법.
  15. 성분간 적응적 루프 필터를 적용할 것인지 여부를 결정하는 단계;
    상기 성분간 적응적 루프 필터가 적용되는 경우, 상기 성분간 적응적 루프 필터가 선형성을 갖는지 또는 비선형성을 갖는지 여부를 결정하는 단계;
    상기 성분간 적응적 루프 필터의 필터 계수 세트를 결정하는 단계;
    상기 필터 계수 세트를 이용하여, 휘도 샘플을 필터링하여 색차 오프셋을 유도하는 단계; 및
    상기 색차 오프셋을 이용하여, 색차 샘플을 개선하는 단계를 포함하는, 영상 부호화 방법에 의해 부호화된 비트스트림을 저장하는, 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2021/003582 2020-03-23 2021-03-23 비디오 신호 처리 방법 및 장치 WO2021194223A1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20200035243 2020-03-23
KR10-2020-0035244 2020-03-23
KR10-2020-0035243 2020-03-23
KR20200035244 2020-03-23
KR10-2020-0045507 2020-04-14
KR20200045507 2020-04-14

Publications (1)

Publication Number Publication Date
WO2021194223A1 true WO2021194223A1 (ko) 2021-09-30

Family

ID=77892392

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/003582 WO2021194223A1 (ko) 2020-03-23 2021-03-23 비디오 신호 처리 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20210118769A (ko)
WO (1) WO2021194223A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140079498A (ko) * 2011-10-21 2014-06-26 퀄컴 인코포레이티드 크로마 컴포넌트에 대한 적응적 루프 필터링
US20160105685A1 (en) * 2014-10-08 2016-04-14 Qualcomm Incorporated Boundary filtering and cross-component prediction in video coding
US20180063527A1 (en) * 2016-08-31 2018-03-01 Qualcomm Incorporated Cross-component filter
US20180288441A1 (en) * 2017-03-28 2018-10-04 Qualcomm Incorporated Filter information sharing among color components

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140079498A (ko) * 2011-10-21 2014-06-26 퀄컴 인코포레이티드 크로마 컴포넌트에 대한 적응적 루프 필터링
US20160105685A1 (en) * 2014-10-08 2016-04-14 Qualcomm Incorporated Boundary filtering and cross-component prediction in video coding
US20180063527A1 (en) * 2016-08-31 2018-03-01 Qualcomm Incorporated Cross-component filter
US20180288441A1 (en) * 2017-03-28 2018-10-04 Qualcomm Incorporated Filter information sharing among color components

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS , JIANLE CHEN , SHAN LIU , YE-KUI WANG: "Versatile Video Coding (Draft 8)", 17. JVET MEETING; 20200107 - 20200117; BRUSSELS; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-Q2001-vE, 12 March 2020 (2020-03-12), pages 1 - 510, XP030285390 *

Also Published As

Publication number Publication date
KR20210118769A (ko) 2021-10-01

Similar Documents

Publication Publication Date Title
WO2017171370A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017176030A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018030599A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2018026219A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017222326A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020111785A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2018097626A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019164031A1 (ko) 영상 코딩 시스템에서 블록 분할 구조에 따른 영상 디코딩 방법 및 장치
WO2017018664A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2018124843A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019225993A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018212579A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020050685A1 (ko) 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2019190201A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020096428A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2018047995A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2020071616A1 (ko) Cclm에 기반한 인트라 예측 방법 및 그 장치
WO2018056701A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018124333A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2018066958A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019221465A1 (ko) 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체
WO2020180166A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2019182295A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020096427A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2016190627A1 (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: 21775997

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21775997

Country of ref document: EP

Kind code of ref document: A1