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

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

Info

Publication number
WO2021194222A1
WO2021194222A1 PCT/KR2021/003581 KR2021003581W WO2021194222A1 WO 2021194222 A1 WO2021194222 A1 WO 2021194222A1 KR 2021003581 W KR2021003581 W KR 2021003581W WO 2021194222 A1 WO2021194222 A1 WO 2021194222A1
Authority
WO
WIPO (PCT)
Prior art keywords
filter
block
information
adaptive loop
unit
Prior art date
Application number
PCT/KR2021/003581
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 WO2021194222A1 publication Critical patent/WO2021194222A1/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/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

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 a nonlinear adaptive loop filter in encoding/decoding a video signal.
  • An object of the present disclosure is to provide a method of applying various adaptive loop filters in encoding/decoding a video signal, and a method for determining filter coefficients under each adaptive loop filter application method and an apparatus therefor. .
  • a video signal decoding method includes determining whether to apply an adaptive loop filter to a current block, and determining whether the adaptive loop filter has linearity or nonlinearity when the adaptive loop filter is applied. determining whether or not there is a filter coefficient set of the adaptive loop filter, and filtering reconstructed samples in the current block by using the filter coefficient set.
  • a video signal encoding method includes determining whether to apply an adaptive loop filter to a current block, and determining whether the adaptive loop filter has linearity or nonlinearity when the adaptive loop filter is applied. determining whether or not there is, determining a filter coefficient set of the adaptive loop filter, and filtering reconstructed samples in the current block by using the filter coefficient set.
  • a clipping value for applying a 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 component, a color format, and a bit depth.
  • 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 flowchart of a method of applying an adaptive loop filter according to an embodiment of the present disclosure.
  • FIG. 4 shows an example in which the size of a diamond-shaped filter is defined.
  • FIG. 5 shows an example in which a rectangular adaptive loop filter is applied.
  • FIG. 6 is a diagram illustrating a block and filter coefficient derivation region.
  • FIG. 7 is a diagram illustrating an example in which the number of samples used to derive a block gradient is reduced.
  • FIG 9 shows an example in which a reconstructed image is divided into a plurality of regions.
  • FIG. 10 is an exemplary diagram for explaining an application aspect of the filter when the filter deviates from the boundary of the region.
  • FIG 11 shows an example in which indexes are coded for only some of filter coefficients.
  • FIG. 12 is a diagram for explaining an example in which coefficient merging is applied under a block-based filter application method.
  • FIG. 13 illustrates an example in which encoding of index information is omitted for some classes.
  • FIG. 14 is a diagram for explaining an example in which coefficient merging is applied under a method of applying a region-based filter.
  • 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 the deblocking filter or the sample adaptive offset filter is applied to the reconstruction block.
  • FIG. 3 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 mood 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 to be applied to the current block may be determined (S302). Determining the filter 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, 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. 4 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 filter of 5x5 size shown in FIG. 4B 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. 4A 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 (S303). 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. 5 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. 5 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. 5 , 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.
  • a block-based filter application method or a region-based filter application method may be applied.
  • Which one of the above two filter application methods is to be used may be predefined in the encoder and/or the decoder.
  • information specifying one of the above two filter application methods may be encoded and signaled.
  • the information may be encoded through a higher header such as a slice, a picture, or a sequence.
  • the information may be encoded for each block of a predetermined size (eg, for each coding tree unit, for each coding block, for each transform block, or for each reference block).
  • a different filter application method may be applied to each block of a predetermined size.
  • the filter application method may be adaptively determined according to whether another in-loop filter is applied.
  • the filter application method may be determined based on at least one of whether a deblocking filter is applied or whether a sample adaptive offset filter is applied.
  • filter coefficients may be determined in units of blocks of a predetermined size.
  • filter coefficients may be determined in units of blocks having a predefined size (eg, 4x4) in the coding tree unit.
  • the filter coefficients of each block may be determined based on a filter coefficient set corresponding to any one of the plurality of class candidates.
  • a class for identifying a filter coefficient set may be obtained for each block of a predetermined size.
  • filter coefficients may be determined for each region.
  • the region may represent a coding tree unit.
  • one set of filter coefficients may be applied to the coding tree unit.
  • the region may be defined as a tile, a slice, a sub picture, or the like, or may be defined as a processing unit different from the above-described processing units.
  • one filter coefficient set may be applied to a region, and the filter coefficient set may be commonly applied to a plurality of blocks included in one region.
  • the reconstructed image may be divided into a plurality of blocks.
  • information indicating the size of the block may be signaled through the bitstream.
  • the information may include at least one of a width or a height of a block.
  • the block is a square
  • only one of the block width information and the block height information may be encoded and signaled.
  • width maintenance of the block and height information of the block may be encoded and signaled, respectively.
  • the information may be encoded and signaled at a slice, picture, or sequence level.
  • the block type may be predefined in the encoder and the decoder.
  • information indicating the shape of a block may be encoded and signaled.
  • a flag indicating whether the shape of the block is a square or a non-square may be encoded and signaled.
  • At least one of a size or a shape of a block may be determined based on at least one of whether a deblocking filter is applied or whether a sample adaptive offset filter is applied.
  • At least one of the block shape and size may be predefined in the encoder and the decoder.
  • the reconstructed image may be set to be divided into 4x4 blocks.
  • a filter coefficient derivation region may be set around each block.
  • the filter coefficient derivation region may be composed of a block and N lines around the block.
  • a line represents a row or column.
  • the filter coefficient derivation region may be defined with the size of 8x8.
  • the filter coefficient derivation region may include a block and two lines around each boundary of the block.
  • Information on the size of the filter coefficient derivation region may be signaled through a bitstream.
  • the information may indicate the number (N) of lines surrounding the block included in the filter coefficient derivation region.
  • the number N of lines around the block may be adaptively determined.
  • FIG. 6 is a diagram illustrating a block and filter coefficient derivation region.
  • the filter coefficient derivation region is illustrated as including a 4 ⁇ 4 block and two lines adjacent to each of the boundaries of the block.
  • the size of the block is 4x4 and the size of the filter coefficient derivation region is 8x8, as in the illustrated example.
  • a gradient of a block within the filter coefficient derivation region may be calculated. Specifically, the block inclination in at least one of a horizontal direction, a vertical direction, an upper right diagonal direction, or an upper left diagonal direction may be calculated.
  • Equation 2 shows an example of calculating the gradient in the filter coefficient derivation region.
  • Equation 2 g v denotes a vertical block gradient, g h denotes a horizontal block gradient, g d1 denotes an upper right diagonal block gradient, and g d2 denotes an upper left diagonal block gradient.
  • the block gradient may be derived by summing the gradients of each of the samples in the filter coefficient derivation region.
  • the sample gradient may be derived based on the reconstructed sample and adjacent samples of the reconstructed sample.
  • the positions of adjacent samples may be determined by the desired gradient direction.
  • the sample gradient with respect to the vertical direction is a reconstructed sample (R(k, l) in Equation 2), a lower neighbor reconstructed sample (R(k, l-1) in Equation 2), and an upper neighbor reconstructed sample ( It can be derived based on R(k, l+1)) in Equation 2).
  • the sample gradient with respect to the horizontal direction is a reconstructed sample (R(k, l) in Equation 2), a left-neighbor reconstructed sample (R(k-1, l) in Equation 2), and a right-neighbor reconstructed sample (Equation 2). It can be derived based on R(k+1, l)) of
  • Equation 2 (i, j) represents the position of the upper left sample in the block, and R(k, l) represents the restored sample at the (k, l) position.
  • represents the absolute value of x.
  • a class of the block may be determined based on the block gradient.
  • One of the plurality of class candidates may be selected as the class of the block.
  • the number of class candidates may be predefined in the encoder and decoder. Alternatively, information indicating the number of class candidates may be encoded and signaled.
  • the class of the block may be determined based on at least one of a maximum value, a minimum value, a median value, or an average value thereof among block gradients in a plurality of directions. As an example, it is possible to determine whether a block slope is large or small with respect to a horizontal block slope and a vertical direction block slope, and large or small with respect to an upper right diagonal block slope and an upper left diagonal block slope may be determined. Thereafter, the class of the block may be determined with reference to the above determination result.
  • a horizontal direction and a vertical direction will be referred to as a first group direction
  • an upper right diagonal direction and an upper left diagonal direction will be referred to as a second group direction.
  • Equation 3 shows an example of determining the minimum and maximum values for the inclinations in the first group direction.
  • g max h,v represents a larger value among g h and g v
  • g min h,v represents a smaller value among g h and g v.
  • a variable DirHV indicating a tendency toward the first group direction may be derived.
  • the variable DirHV may be set to 1.
  • the variable DirHV may be set to 3 .
  • Equation 4 shows an example of determining the minimum and maximum values for the inclinations in the second group direction.
  • g max d0,d1 represents a larger value among g d0 and g d1
  • g min d0,d1 represents a smaller value among g d0 and g d1 .
  • a variable DirD indicating a tendency toward the second group direction may be derived.
  • the variable DirHV may be set to 1.
  • the variable DirHV may be set to 3 .
  • the class of the block Variables can be derived to determine
  • Equation 5 shows an example of deriving variables for determining the class of the block.
  • the variables hvd1, hvd0, dir1 and dir2 can be derived.
  • the variables hvd0 and hvd1 are variables set equal to one of the inclinations of the block
  • the variables dir1 and dir2 are variables set equal to the tendency of the block.
  • variable dirS indicating the direction of a tendency that appears strongly throughout the block.
  • the variable dirS may be derived based on Equation 6 below.
  • the index ClassIdx indicating the class of the block can be derived using this.
  • the variable ClassIdx may be derived based on Equation 7 below.
  • Q[g h +g v ] represents a value derived by quantizing the sum of the horizontal gradient g h and the vertical gradient g v .
  • Q[g h +g v ] may be output as a value between 0 and 4.
  • variable ClassIdx may indicate one of a plurality of class candidates. For example, when the class of the block indicates one of 25 class candidates, the variable ClassIdx may be set to a value between 0 and 24.
  • the range (eg, the number) of samples used when the gradient of the block is derived may be adjusted.
  • the number of samples used in deriving the block gradient may be reduced by reducing the number N of lines around the sub-sampling or block boundary region.
  • FIG. 7 is a diagram illustrating an example in which the number of samples used to derive a block gradient is reduced.
  • samples marked with markers indicate samples obtained through subsampling. Only samples marked with a marker can be used to derive the block slope. That is, the block gradient may be derived by adding the gradients of samples marked with the marker.
  • the block gradient using only samples in which both the x and y coordinates are even and samples in which both the x and y coordinates are odd numbers in the filter coefficient derivation region. can induce
  • the block gradient may be derived using only samples included inside the block, not the filter coefficient derivation region.
  • the block gradient can be derived using only samples in which both the x and y coordinates are even and samples in which both the x and y coordinates are odd numbers. have.
  • the block gradient may be derived using only samples at a central position within the block.
  • information specifying one of the plurality of simplification methods may be encoded and signaled.
  • the information may be encoded through an upper header such as a sequence, a picture, or a slice.
  • information indicating a sampling rate for subsampling may be encoded and signaled.
  • the sampling rate may be adaptively determined according to a color component, a color format, or a block size.
  • the class of the block may be derived using only the gradients in the first group direction or the class of the block may be derived using only the gradients in the second group direction.
  • information specifying at least one of the first group direction and the second group direction may be encoded and signaled.
  • the information may indicate a first group direction, a second group direction, or one of the first and second group directions. Only the gradients in the group direction selected by the above information can be used to derive the class of the block.
  • a range of samples used to derive a block gradient or directions used to derive a block class may be determined for each predefined region in the reconstructed image.
  • the predefined regions may indicate regions in which mutually parallel processing is possible.
  • the predefined region may indicate a tile, a slice, or a sub-picture.
  • directions used to derive a block class may be encoded and signaled. Accordingly, directions used to derive the block class may be different for each predefined region. For example, in the first tile in the picture, the block class is derived using gradients in the first group direction and the second group direction, and in the second tile, the block class is derived using only gradients in the second group direction. have.
  • a filter coefficient set corresponding to the determined class may be called, and a geometric transformation type for the called filter coefficient set may be selected.
  • filter coefficients for the current block may be derived by selecting one of M geometric transformation types.
  • Information for determining the number M of geometric transformation types may be encoded and signaled.
  • the information may be signaled through an upper header such as a slice, a picture, or a sequence.
  • the number of geometric transformation types usable in the encoder and the decoder may be predefined.
  • the geometric transformation types may include at least one of a non-transformation, a vertical transformation, a horizontal transformation, a diagonal transformation, or a rotation.
  • filter coefficients included in the filter coefficient set may be allocated according to an arrangement order of filter coefficients in the selected geometric transformation type.
  • the positions of filter coefficients under the non-transform type may be inverted around a central axis in the horizontal direction (eg, f9-f9 of the non-transform type).
  • the positions of filter coefficients under the non-transform type may be inverted about a central axis in the diagonal direction (eg, f7-f7 or f5-f5 of the non-transform type).
  • the positions of the filter coefficients under the non-transform type may be rotated by a predetermined angle (eg, 90 degrees) in a clockwise or counterclockwise direction.
  • a predetermined angle eg, 90 degrees
  • the positions of filter coefficients under the non-transform type may be inverted around a central axis in the vertical direction (eg, f0-f0 of the non-transform type).
  • the geometric transformation type of the current block may be determined.
  • Table 1 shows an example in which the geometric transformation type is determined by the variables dir1 and dir2.
  • the geometric transformation type of the current block may be determined.
  • Table 1 shows an example in which the geometric transformation type is determined by the variables dir1 and dir2.
  • a plurality of lookup tables may be predefined in the encoder and the decoder.
  • the encoder may encode and signal information specifying one of a plurality of lookup tables.
  • Each lookup table contains block gradients (eg, at least one of g h , g v , g d1 or g d2 ) or a variable derived from the block gradients (eg, at least one of dir1 or dir2 ) and a geometric transformation type. It may contain correspondences between
  • one of the plurality of lookup tables may be selected.
  • Filter coefficient sets may be predefined in the encoder and decoder.
  • configuration information of each of the essential coefficient sets may be signaled through a bitstream.
  • the configuration information may include at least one of the number of filter coefficients included in the filter coefficient set (ie, the number of filter taps) or the value of the filter coefficients.
  • filter coefficient sets may be independently defined in units of predefined regions.
  • the predefined regions may indicate regions in which parallel processing is possible.
  • the predefined region may be a tile, a slice, or a sub-picture.
  • filter coefficient sets may be individually defined. For example, when a picture includes 4 tiles and 25 classes are defined for each tile, configuration information for a total of 100 filter coefficient sets may be transmitted through an upper header. In this case, a block belonging to a specific tile may use one of the filter coefficient sets defined for the corresponding tile.
  • the reconstructed image may be divided into a plurality of regions, and a filter may be determined for each region. Specifically, for each of the plurality of regions, at least one of a filter shape, a filter coefficient, or a filter size may be determined.
  • Information for determining a filter may be signaled through a bitstream. Specifically, information on at least one of a filter shape, filter coefficients, and filter size may be encoded and signaled.
  • segmentation information of a reconstructed image may be encoded and signaled through a bitstream.
  • the information may indicate at least one of the number of regions included in the reconstructed image, whether the regions are divided into uniform sizes, or sizes of the regions.
  • At least one of the number of regions, whether regions are divided into uniform sizes, or sizes of regions may be predefined in the encoder and decoder.
  • At least one of the number of regions, whether the regions are divided into uniform sizes, or sizes of the regions may be adaptively determined based on at least one of a picture resolution, a color component, a color format, or an HDR image.
  • each of the arbitrary processing units in the picture may be set as one area.
  • the processing unit may be a tile, a slice, or a sub-picture.
  • encoding of partition information for the region may be omitted.
  • information indicating whether each of the processing units is set as one region may be encoded and signaled.
  • the information may be a 1-bit flag. When the flag is 1 (True), it indicates that each of the processing units is set to one area. In this case, encoding of partition information for a region may be omitted. The flag being 0 (False) indicates that each of the processing units is not necessarily set to one area. In this case, segmentation information for the region may be additionally encoded.
  • the boundary of the region may be set so that one processing unit is not divided into a plurality of units.
  • a set of at least one coding tree unit may be defined as one region.
  • FIG 9 shows an example in which a reconstructed image is divided into a plurality of regions.
  • At least one of information indicating the number of rows constituting the regions, information indicating the number of columns constituting regions, or information indicating the size (eg, at least one of width or height) of regions may be encoded and signaled.
  • At least information indicating the number of columns constituting the regions, information indicating the number of rows constituting the regions, information indicating the width of each column, or information indicating the height of each row may be encoded and signaled.
  • the reconstructed image is divided into regions of non-uniform size, and the reconstructed image is exemplified as divided into three columns and three rows. Accordingly, the value of information (eg, flag) indicating whether the reconstructed image is divided into regions of uniform size may be set to false and encoded. Also, the number of columns included in the reconstructed image may be set to represent 3 and encoded, and the number of rows included in the reconstructed image may be set to represent 3 and encoded.
  • the width of each column and the height of each row may be encoded and signaled.
  • the column width indicates the number of predetermined processing unit columns included in the corresponding column
  • the column height indicates the number of predetermined processing unit rows included in the corresponding column.
  • the width of the first column and the height of the first row may be set to 4 and 3, respectively.
  • encoding of width information may be omitted for the last column in the reconstructed image
  • encoding of height information may be omitted for the last row in the reconstructed image
  • 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.
  • FIG. 10 is an exemplary diagram for explaining an application aspect of the filter when the filter deviates from the boundary of the region.
  • the sample to be applied with the filter is located at the center position of the filter (eg, f[12]).
  • the neighboring sample for filtering the filter application target sample is out of the boundary of the region, the neighboring sample may be set to be unavailable.
  • samples at locations eg, f[0] to f[8] outside the upper boundary of the region are set to be unavailable for filtering the sample to be applied.
  • the filter application target sample is filtered using only samples belonging to the same row as the filter application target sample (eg, f[9] to f[11]).
  • filtering may be performed by setting a value of an unavailable sample to a default value (eg, 0) or converting a filter coefficient for an unavailable sample to 0.
  • samples at positions (eg, f[0] to f[8]) outside the lower boundary of the region may be set to be unavailable for filtering the sample to be applied to the filter.
  • the filter application target sample uses only samples belonging to the same row as the filter application target sample (eg, f[9] to f[11]), can be filtered.
  • filtering may be performed by setting a value of an unavailable sample to a default value (eg, 0) or converting a filter coefficient for an unavailable sample to 0.
  • samples at a symmetric position about the horizontal axis of the filter may be determined, and at the left and right boundaries of the region, samples at a symmetric position about the vertical axis of the filter may be determined.
  • information indicating whether the above-described constraint is applied may be encoded and signaled.
  • a flag indicating whether the above-described constraint is applied may be encoded and signaled.
  • the flag may be individually encoded for each region.
  • the flag may be encoded at a higher level than zero.
  • the flag may be signaled through an upper header such as a slice, a picture, or a sequence. In this case, with respect to regions referring to the same higher header, whether the above-described restriction is applied may be determined in common.
  • variable ResFlag may indicate whether a constraint is applied.
  • the value of the variable ResFlag may be determined based on the above-described flag value.
  • the value of the variable ResFlag may be adaptively determined based on at least one of a size of a region, the number of regions, a position of the region, a color component, or a color format.
  • the value of the variable ResFlag may be predefined in the encoder and the decoder.
  • samples outside the boundary of the region may also be used for filtering.
  • information indicating whether to set the unavailable sample and the sample present at a symmetric position as unavailable may be encoded and signaled.
  • the information may be signaled for each area.
  • a flag indicating whether to set an unavailable sample and a sample having a symmetric position to be unavailable may be signaled.
  • whether to set the unavailable sample and the sample present in a symmetric position to be unavailable may be predefined in the encoder and the decoder.
  • padding may be performed on an unavailable sample position, and then filtering may be performed using the padded 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. Alternatively, padding may be performed by copying available pixels adjacent to unavailable samples.
  • the picture is divided into a plurality of regions when the region-based filter application method is applied.
  • an area-based filter application method may be applied to each processing unit in which parallel processing is performed.
  • the processing unit may represent a slice, a tile, or a subpicture. That is, region division may be performed independently for each processing unit.
  • At least one of a size or a shape of a filter may be adaptively determined according to a location of a sample within a block or a location of a block.
  • the reconstructed sample may be filtered using the reconstructed sample and neighboring reconstructed samples.
  • Equations 8 and 9 below are examples illustrating a process of obtaining a filtered reconstructed sample.
  • Equation 8 f[n] means a filter coefficient.
  • I represents the input reconstruction 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 a restored sample at the (x, y) position.
  • Equation 9 O(x, y) represents a filtered reconstructed sample.
  • the filtered reconstructed sample O (x, y) can be obtained.
  • the shifting parameter may be predefined in the encoder and the decoder.
  • the shifting parameter shift may be fixed to 7.
  • information for determining a shifting parameter may be signaled through a bitstream.
  • the information may be encoded through an upper header such as a slice, a tile, or a sub picture.
  • the shifting parameter may be adaptively determined based on at least one of a size of a current block, a filter type, a filter size, a bit depth, a color component, or a color format.
  • non-linearity may be applied when the adaptive loop filter is applied.
  • a filtered sample may be output by applying a Clip function.
  • Equation 1 may be changed to Equation 10 below.
  • the clip function may be defined as in Equation 11 below.
  • Equation 12 a detailed process to which the nonlinear adaptive loop filter is applied.
  • Equation 12 c[n] represents the clipping value k(i, j) in one dimension.
  • Equation 9 When the temporary value tmp is derived through Equation 12, a filtered reconstructed sample may be obtained through Equation 9.
  • 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 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 2 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 2 it is exemplified that the values of the clipping value candidates are set differently according to the bit depth.
  • a configuration of clipping value candidates may be determined based on at least one of a picture resolution, a color component, or a color format. 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 2 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 3 to 5 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.
  • a clipping value may be determined using a formula instead of using a lookup table. Equation 13 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.
  • Equation 14 shows another example in which the temporary value tmp is derived.
  • Equation 12 it is exemplified that the clipping function is applied twice to one filter coefficient, but in Equation 14, it is exemplified that the clipping function is applied once to one filter coefficient.
  • the clipping value may not be changed.
  • the values of c[n] may be the same.
  • the clipping value may be changed.
  • the clipping value c[n] in the case of deriving the temporary value tmp by Equation 14 may be twice the clipping value c[n] in the case of deriving the temporary value tmp by Equation 12.
  • indexes may be coded only for filter coefficients at preset positions.
  • FIG 11 shows an example in which indexes are coded for only some of filter coefficients.
  • indexes are encoded only for f[0], f[1], f[3], f[4], f[8], and f[9].
  • indexes are encoded only for f[2], f[5], f[7], and f[10].
  • indexes are encoded only for f[6] and f[11].
  • 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.
  • the clipping function is applied at the position to which f[6] and f[11] are applied, while the position to which f[6] and f[11] are applied. The clipping function may not be applied to the remaining positions excepted.
  • Information related to the 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 the 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 at least one of information on a filter coefficient set corresponding to each of a plurality of classes for a block-based filter application method, or information on a filter coefficient set for each region for an area-based filter application method may contain one.
  • a filter coefficient set corresponding to each of the 25 classes through the filter header or At least one of the filter coefficient sets corresponding to each of the 20 regions may be encoded and signaled.
  • Information indicating whether the filter header includes information on filter coefficient sets used in the block-based filter application method or filter coefficient sets used in the region-based filter application method may be encoded.
  • a plurality of filter headers may be encoded and signaled.
  • a different identifier (ID, Identifier) may be assigned to each filter head.
  • 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.
  • a different filter header may be selected.
  • ID an identifier
  • a filter header with an identifier of 1 is used
  • a filter header with an identifier of 2 may be used.
  • one filter header may be commonly applied to the color difference components. For example, a filter header having an identifier of 0 may be used for the luminance component, while a filter header having an identifier of 1 may be used for the first chrominance component and the second chrominance component.
  • one filter header may be commonly applied to all color components.
  • Information indicating whether the filter header is individually determined for each color component or for each color difference component 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 component or for each color difference component.
  • the filter header may include filter coefficient set information for each of the plurality of color components.
  • information indicating which color component the filter coefficient set in the filter header relates to may be further encoded and signaled.
  • the filter coefficient set in the filter header relates to the luminance component (Y), the first chrominance component (eg, Cb), or the second Information indicating whether or not it relates to two color difference components (eg, Cr) may be additionally encoded and signaled.
  • a filter header storing filter coefficient sets for the block-based filter application method and a filter header storing filter coefficient sets for the region-based filter application method may be independently encoded and signaled.
  • one filter header may include filter coefficient sets for the block-based filter application method and filter coefficient sets for the region-based filter application method in one filter header.
  • information indicating whether the filter coefficient set in the filter header is for the block-based filter application method or the region-based filter application method may be additionally encoded and signaled.
  • the filter coefficient application method may be fixedly set for each color component.
  • the block-based filter application method may be fixedly applied to the luma component, while the region-based filter application method may be fixedly applied to the chrominance component.
  • a filter header may be selected with reference to a filter application method of each color component.
  • Coefficient merging between filter coefficient sets may be performed. Through coefficient merging, information on a filter coefficient set may be encoded only for a part of a plurality of classes or a plurality of regions. A class in which the filter coefficient set is not coded or a region in which the filter coefficient set is not coded may be set to use a filter coefficient set of another class or another region.
  • FIG. 12 is a diagram for explaining an example in which coefficient merging is applied under a block-based filter application method.
  • Fig. 12 (a) is an embodiment in which coefficient merging is not applied
  • Fig. 12 (b) is an embodiment in which coefficient merging is applied.
  • a filter coefficient set for each of the classes may be encoded and signaled. For example, when there are 25 classes, a filter coefficient set may be encoded for each of the 25 classes, as in the example shown in FIG. 12A .
  • filter coefficient sets as many as the number of classes may be encoded and signaled.
  • filter coefficient set 1 When coefficient merging is applied, a number of filter coefficient sets less than the number of classes may be encoded and signaled. In this case, one filter coefficient set may be allocated to a plurality of classes. As an example, as in the example shown in FIG. 12B , filter coefficient set 1 may be allocated to classes 1 to 3 .
  • mapping information indicating a mapping relationship between classes and filter coefficient sets is additionally required.
  • mapping information may be an index for identifying a filter coefficient set having a mapping relationship with a class.
  • information indicating the number of filter coefficient sets may be further encoded and signaled. For example, in the example shown in (b) of FIG. 12 , a total of five filter coefficient sets are encoded and signaled. Accordingly, number information indicating that the number of filter coefficient sets is five may be encoded and signaled.
  • number information derived by differentiating a predetermined constant value from the number of filter coefficient sets may be encoded.
  • the constant value may be a natural number such as 1 or 2.
  • number information derived based on the difference between the number of classes and filter coefficient sets may be encoded.
  • index information for identifying a filter coefficient set that is a mapping relationship may be encoded and signaled. For example, in the example shown in (b) of FIG. 12 , since there are a total of five filter coefficient sets, index information indicating a value of 0 to 4 for each class may be encoded and signaled. .
  • the index information may indicate an index of a filter coefficient set assigned to a class.
  • index information of each class may be encoded based on differential coding (DPCM). For example, for class N, between the index of the filter coefficient set assigned to class N and the index of the filter coefficient set assigned to the previous class (eg, class N-1) or the next class (eg, class N+1) The index difference indicating the difference may be encoded as index information.
  • DPCM differential coding
  • a flag indicating whether the filter coefficient set assigned to the class is the same as the previous class or the next class may be encoded and signaled.
  • the flag is 1 (True)
  • encoding of index information for a corresponding class may be omitted.
  • index information may be encoded for a corresponding class.
  • the filter coefficient set index assigned to the class may be set so that the filter coefficient set index assigned to the class is not allowed to have a value smaller than the index of the filter coefficient set assigned to the previous class. In this case, for some classes, encoding of index information may be omitted.
  • FIG. 13 illustrates an example in which encoding of index information is omitted for some classes.
  • the index of the filter coefficient set allocated to class N may be forced to have a value equal to or greater than the index of the filter coefficient set allocated to the previous class (ie, class N-1).
  • the filter coefficient set having the smallest index is always allocated to the first class (class 0), and the filter coefficient set having the largest index is always allocated to the last class (class 24).
  • index information may be omitted.
  • index 13 (b) shows an encoding aspect of index information.
  • encoding of index information may be omitted for the first class (class 0) and the last class (class 24). Only for the remaining classes except for the first class and the last class, index information may be encoded and signaled.
  • the decoder may determine the filter coefficient set assigned to the corresponding class according to whether the class is the first or the last. For example, when a class in which signaling of index information is omitted is the first class, it may be inferred that the first filter coefficient set is selected. On the other hand, when the class in which the signaling of index information is omitted is the last class, it may be considered that the last filter coefficient set is selected.
  • the above-described embodiment related to merging filter coefficients may be applied not only to the block-based filter application method but also to the region-based filter application method.
  • FIG. 14 is a diagram for explaining an example in which coefficient merging is applied under a method of applying a region-based filter.
  • Fig. 14 (a) is an embodiment in which coefficient merging is not applied
  • Fig. 14 (b) is an embodiment in which coefficient merging is applied.
  • a filter coefficient set for each of the regions may be encoded and signaled. For example, when there are 25 regions, a filter coefficient set may be encoded for each of the 25 regions, as in the example shown in FIG. 14A .
  • filter coefficient sets as many as the number of regions may be encoded and signaled.
  • a number of filter coefficient sets less than the number of regions may be encoded and signaled.
  • one filter coefficient set may be allocated to a plurality of regions.
  • the filter coefficient set 1 may be allocated to regions 1 to 3 .
  • information for specifying a filter coefficient set allocated to each region may be encoded and signaled.
  • the method of encoding the index information of each region is the same as the above-described block-based filter application method, a detailed description thereof will be omitted.
  • filter coefficients constituting the filter coefficient set may be encoded and signaled. Referring to the example of FIG. 4 , values of 13 filter coefficients (f[0] to f[12]) are coded and signaled for a luminance component, and 7 filter coefficients (f[0] to f[0]) are signaled for a chrominance component. ] to f[6]) may be encoded and signaled.
  • encoding may be omitted for the filter coefficients at the filter center position.
  • encoding of f[12], which is the central position of the filter for the luminance component may be omitted
  • encoding of f[6] which is the central position of the filter for the chrominance component
  • 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 filter coefficient f[12] for the luminance component and the filter coefficient f[6] for the chrominance component may be derived as shown in Equation 15 below.
  • 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.
  • the 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, a filter type, or a filter application method.
  • 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.
  • the processing unit for which the filter header is determined may be any one of a tile, a subpicture, or a picture
  • the subprocessing unit may be any one of a slice, a tile, or a subpicture.
  • a processing unit in which identification information of a filter header is encoded may be adaptively determined according to a method of determining a slice.
  • the slice determination method may be one of a raster scan slice determination method or a square slice determination method.
  • the raster scan slice determination method refers to a method of determining successive tiles as one slice when the raster scan order is followed.
  • the rectangular shape slice determination method refers to a determination method that allows only slices having a rectangular shape. When the rectangular slice determination method is applied, a tile located at a vertex of the rectangle may belong to the same row and/or the same column as a tile located at another vertex.
  • identification information of a filter header may be encoded for each slice.
  • identification information of the filter header may be encoded for each tile.
  • identification information of the filter header is encoded for each tile, and when the rectangular slice determining method is applied, the identification information of the filter header can be encoded for each slice.
  • the filter header may be independently encoded for each of the parallel processing target regions. For example, when parallel processing for each tile is performed, a filter header may be encoded for each of the tiles. As an example, when a picture consists of two tiles, three filter headers may be encoded for a first tile and two filter headers may be encoded for a second tile. Accordingly, a total of five filter headers may be encoded for the current picture.
  • one filter header may be redundantly coded for a plurality of tiles.
  • At least one of the number of filter headers for each tile or identifier information of a filter header allocated to each of the tiles may be further encoded and signaled.
  • 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 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.
  • a method of applying the adaptive loop filter may be determined according to the selected filter header. For example, when a filter header including only filter coefficient sets for the block-based filter application method is selected, the block-based filter application method may be applied to the current block. On the other hand, when a filter header including only filter coefficient sets for the region-based filter application method is selected, the region-based filter application method may be applied to the current block.
  • a fixed filter application method for each color component may be applied.
  • a block-based filter application method may be always applied to a luminance component
  • a region-based filter application method may be always applied to a chrominance component.
  • information for identifying one of the filter headers for the block-based filter application method may be additionally encoded and signaled.
  • information for identifying a current one of filter headers for the region-based filter application method may be additionally encoded and signaled.
  • a plurality of filter coefficient set candidates may be configured for the single region.
  • index information for identifying one of the plurality of filter coefficient set candidates may be encoded and signaled.
  • the index information may be encoded and signaled in units of blocks (eg, coding tree units). That is, even when the region-based filter application method is applied, different filter coefficient sets may be used for each block.
  • a filter header can be determined independently for each color component.
  • color components may be set to use the same filter header.
  • the filter header may include both information on filter coefficient sets for a luminance component and information on filter coefficient sets for a chrominance component.
  • information identifying one of the plurality of filter headers may be encoded, and for the color difference component, the encoding of the information may be omitted.
  • 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.

Abstract

본 개시에 따른 영상 복호화 방법은, 현재 블록에 적응적 루프 필터를 적용할 것인지 여부를 결정하는 단계, 상기 적응적 루프 필터가 적용되는 경우, 상기 적응적 루프 필터가 선형성을 갖는지 또는 비선형성을 갖는지 여부를 결정하는 단계, 상기 적응적 루프 필터의 필터 계수 세트를 결정하는 단계, 및 상기 필터 계수 세트를 이용하여, 상기 현재 블록 내 복원 샘플을 필터링하는 단계를 포함한다.

Description

비디오 신호 처리 방법 및 장치
본 개시는 비디오 신호 처리 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 개시는 비디오 신호를 부호화/복호화함에 있어서, 인루프 필터를 적용하는 방법 및 이를 위한 장치를 제공하는 것을 목적으로 한다.
본 개시는 비디오 신호를 부호화/복호화함에 있어서, 비선형 적응적 루프 필터를 적용하는 방법 및 이를 위한 장치를 제공하는 것을 목적으로 한다.
본 개시는 비디오 신호를 부호화/복호화함에 있어서, 다양한 적응적 루프 필터의 적용 방법들을 제공하는 한편, 각 적응적 루프 필터 적용 방법 하에서 필터 계수들을 결정하는 방법 및 이를 위한 장치를 제공하는 것을 목적으로 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 비디오 신호 복호화 방법은, 현재 블록에 적응적 루프 필터를 적용할 것인지 여부를 결정하는 단계, 상기 적응적 루프 필터가 적용되는 경우, 상기 적응적 루프 필터가 선형성을 갖는지 또는 비선형성을 갖는지 여부를 결정하는 단계, 상기 적응적 루프 필터의 필터 계수 세트를 결정하는 단계, 및 상기 필터 계수 세트를 이용하여, 상기 현재 블록 내 복원 샘플을 필터링하는 단계를 포함한다.
본 개시에 따른 비디오 신호 부호화 방법은, 현재 블록에 적응적 루프 필터를 적용할 것인지 여부를 결정하는 단계, 상기 적응적 루프 필터가 적용되는 경우, 상기 적응적 루프 필터가 선형성을 갖는지 또는 비선형성을 갖는지 여부를 결정하는 단계, 상기 적응적 루프 필터의 필터 계수 세트를 결정하는 단계, 및 상기 필터 계수 세트를 이용하여, 상기 현재 블록 내 복원 샘플을 필터링하는 단계를 포함한다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 적응적 루프 필터가 비선형성을 갖는 것으로 결정되는 경우, 상기 필터링은, 상기 복원 샘플과 주변 복원 샘플 사이의 차분에 클리핑 함수를 적용하여 수행되고, 상기 클리핑 함수 적용을 위한 클리핑 값은 복수의 클리핑 값 후보들 중 하나를 특정하는 인덱스에 의해 결정될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 인덱스는, 비트스트림으로부터 복호화되는 1비트의 플래그에 의해 결정될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 클리핑 값 후보들의 개수는, 컬러 성분, 컬러 포맷 또는 비트 뎁스 중 적어도 하나에 기초하여 적응적으로 결정될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 비트 뎁스와 클리핑 값 후보들 사이의 매핑 관계를 정의한 복수의 룩업 테이블들 중 하나로부터, 상기 복수의 클리핑 값 후보들이 유도될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 비트스트림으로부터 파싱되는 인덱스 정보에 의해 상기 복수의 룩업 테이블들 중 하나가 선택될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 현재 블록 내 복원 샘플들 중 기 정의된 필터 계수가 적용되는 위치에 대해서만, 상기 플래그가 복호화될 수 있다.
본 개시에 따른 비디오 신호 복호화 방법에 있어서, 상기 기 정의된 필터 계수가 적용되는 위치에서만, 상기 클리핑 함수가 적용될 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 의하면, 인루프 필터를 적용함으로써, 복원 에러를 감소시킬 수 있다.
본 개시에 의하면, 비선형 적응적 루프 필터를 적용하는 방법을 제공함으로써, 복원 에러를 감소시킬 수 있다.
본 개시에 의하면, 다양한 적응적 루프 필터의 적용 방법들이 제공되는 한편, 각 적응적 루프 필터 적용 방법 하에서 필터 계수들을 결정하는 방법이 제공된다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 개시의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 본 개시의 일 실시예에 따른, 적응적 루프 필터의 적용 방법의 흐름도이다.
도 4는 다이아몬드형 필터의 크기를 정의한 예를 나타낸 것이다.
도 5는 사각 형태의 적응적 루프 필터가 적용되는 예를 나타낸다.
도 6은 블록 및 필터 계수 유도 영역을 예시한 도면이다.
도 7은 블록 경사도를 유도하기 위해 이용되는 샘플들의 개수를 감소시킨 예를 나타낸 도면이다.
도 8은 기하학적 변환 타입들의 예를 나타낸다.
도 9는 복원 영상이 복수의 영역들로 분할된 예를 나타낸다.
도 10는 필터가 영역의 경계를 벗어나는 경우, 필터의 적용 양상을 설명하기 위한 예시도이다.
도 11은 필터 계수들 중 일부에 대해서만 인덱스가 부호화되는 예를 나타낸다.
도 12는 블록 기반 필터 적용 방법 하에서, 계수 머징이 적용되는 예를 설명하기 위한 도면이다.
도 13은 일부 클래스에 대해, 인덱스 정보의 부호화가 생략되는 예를 나타낸 것이다.
도 14는 영역 기반 필터 적용 방법 하에서, 계수 머징이 적용되는 예를 설명하기 위한 도면이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제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을 참조하면, 먼저, 적응적 루프 필터를 현재 블록에 적용할 것인지 여부를 결정할 수 있다(S301). 적응적 루프 필터가 적용되는지 여부를 나타내는 플래그가 부호화되어 시그날링될 수 있다. 일 예로, 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인 경우, 휘도 성분에 대한 적응적 루프 필터의 적용 여부에 대한 결정 결과를 그대로 색차 성분에 적용할 수 있다.
적응적 루프 필터를 적용하기로 결정한 경우, 현재 블록에 적용할 필터를 결정할 수 있다(S302). 필터의 결정은, 필터 형태, 필터 계수 또는 필터 크기 중 적어도 하나를 결정하는 것을 나타낸다.
필터 형태는, 다각 형태일 수 있다. 일 예로, 적응적 루프 필터는, 정방형, 비정방형, 다이아몬드형, 사다리꼴형, 마름모형 또는 십자형을 띨 수 있다.
적응적 루프 필터의 형태는 부호화기 및 복호화기에서 기 정의되어 있을 수 있다. 또는, 적응적 루프 필터의 형태를 특정하기 위한 정보가 비트스트림을 통해 시그날링될 수 있다. 일 예로, 복수개의 필터 형태 중 하나를 지시하는 인덱스 정보가 비트스트림을 통해 시그날링될 수 있다.
또는, 컬러 성분, 컬러 포맷 또는 비트 심도 중 적어도 하나에 기초하여 필터 형태가 결정될 수 있다.
일 예로, 휘도 성분 및 색차 성분에 모두 다이아몬드형 필터를 고정적으로 적용할 수 있다. 또는, 컬러 포맷이 4:4:4 또는 4:2:0인 경우에는, 휘도 성분 및 색차 성분에 모두 다이아몬드형 필터를 적용하고, 컬러 포맷이 4:2:2인 경우에는, 휘도 성분에는 다이아몬드형 필터를, 색차 성분에는 비-다이아몬드형 필터(예컨대, 사각형 필터)를 적용할 수 있다.
부호화기에서는, 복원 에러를 최소화하는 필터 계수들을 유도할 수 있다. 그리고, 최적의 효율을 나타내는 필터 계수들에 대한 정보를 부호화하여 복호화기로 시그날링할 수 있다.
필터의 크기는, 필터의 수평 방향의 탭수 및 수직 방향의 탭수 중 적어도 하나에 의해 정의될 수 있다.
도 4는 다이아몬드형 필터의 크기를 정의한 예를 나타낸 것이다.
다이아몬드형 필터의 크기는, 수평 방향에 대한 최대 길이(최대 탭 수) 및 수직 방향에 대한 최대 길이(최대 탭수)로 정의될 수 있다. 일 예로, 7x7 크기의 다이아몬드형 필터는, 수평 방향에 대한 최대 길이 및 수직 방향에 대한 최대 길이가 각각 7임을 나타낸다.
도 4에서는, 다이아몬드형 필터의 수평 방향의 최대 길이 및 수직 방향의 최대 길이가 동일한 것으로 예시되었다. 도시된 예와 달리, 수평 방향의 최대 길이 및 수직 방향의 최대 길이가 상이한 다이아몬드형 필터를 이용할 수도 있다.
컬러 성분 별로, 필터 크기를 상이하게 설정할 수 있다. 일 예로, 휘도 성분에 대해서는 7x7 크기의 다이아몬드형 필터를 이용하고, 색차 성분에 대해서는 5x5 크기의 다이아몬드형 필터를 이용할 수 있다.
또는, 컬러 포맷을 고려하여, 색차 성분에 적용되는 필터의 크기를 결정할 수 있다. 일 예로, 컬러 포맷이 4:2:0인 경우, 도 4의 (b)에 도시된 5x5 크기의 다이아몬드형 필터가 색차 성분에 적용될 수 있다. 반면, 컬러 포맷이 4:4:4인 경우, 휘도 성분과 동일한 크기의 필터, 예컨대, 도 4의 (a)에 도시된 7x7 크기의 다이아몬드형 필터가 색차 성분에 적용될 수 있다.
컬러 포맷이 4:2:2인 경우에도, 휘도 성분과 동일한 크기의 필터가 색차 성분에 적용될 수 있다. 또는, 컬러 포맷이 4:2:2인 경우, 휘도 성분에 적용되는 필터보다 수평 방향의 최대 길이 또는 수직 방향의 최대 길이 중 적어도 하나가 짧은 필터가 색차 성분에 적용될 수 있다.
설명한 예와 같이, 컬러 포맷에 따라, 휘도 성분 및 색차 성분에 대해 동일한 크기의 필터를 적용할 것인지 여부가 결정될 수 있다.
필터가 결정되면, 결정된 필터를 이용하여, 복원 샘플을 필터링할 수 있다(S303). 구체적으로, 복원 샘플 주변의 복원 샘플들을 이용하여, 복원 샘플을 필터링할 수 있다. 이때, 주변 복원 샘플들의 위치 및 개수는 필터 형태에 의해 결정될 수 있다.
도 5는 사각 형태의 적응적 루프 필터가 적용되는 예를 나타낸다.
도 5의 예에서, I(x, y)는 적응적 루프 필터가 적용되기 전 샘플의 값을 나타내고, O(x, y)는 루프 필터가 적용된 이후 샘플의 값을 나타낸다. 다음의 수학식 1은, 도 5에 도시된 적응적 루프 필터의 적용 양상을 수식으로 나타낸 것이다.
Figure PCTKR2021003581-appb-M000001
코딩 트리 유닛 단위로 적응적 루프 필터의 적용 여부가 적용되는 경우, 수학식 1에서, (x, y)는 코딩 트리 유닛 내 샘플의 좌표를 나타내고, (i, j)는 필터 형태에 따른 좌표를 나타낸다. 일 예로, 필터의 중앙 위치를 (0, 0)이라 가정하여, i 및 j의 값이 결정될 수 있다. 예컨대, 도 5에 도시된 예에서와 같이, 3x3 크기의 사각 형태 필터가 적용되는 경우, i 및 j는 각각 -1 부터 1 사이의 정수로 설정될 수 있다. 필터의 형태에 따라, i 및 j의 값의 범위가 상이할 수 있다.
상기 수학식 1에서, 필터 계수들의 합(예컨대,
Figure PCTKR2021003581-appb-I000001
)은 1로 설정될 수 있다. (
Figure PCTKR2021003581-appb-I000002
)는 중앙 위치의 필터 계수(w(0, 0))를 나타낸다. O(x, y)는 필터 처리된 샘플 값을 나타내고, I(x, y)는 입력 값(즉, 필터 적용 전 샘플 값)을 나타낸다. S는 적응적 루프 필터의 적용 영역을 나타낸다.
도 4에서는, 필터 계수들 w(i,j)를 1차원 형태의 변수 f[n]으로 표현하였다. 일 예로, 도 4의 (a)에서는, 필터 중앙 위치에 마크된 f[12]가 w(0, 0)을 나타내고, 도 4의 (b)에서는, 필터 중앙 위치에 마크된 f[6]이 w(0, 0)을 나타낸다.
도 4에 도시된 예에서와 같이, 하나의 필터 계수가 복수 위치에 적용될 수도 있다. 일 예로, 필터 내 필터 계수들이 대칭 형태로 분포될 수 있다. 필터 내 모든 위치에서가 아닌, 일부 위치에 대해서만, 필터 계수들을 유도할 수 있다. 필터의 대칭성을 이용하여, 잔여 위치의 필터 계수들이 유도될 수 있다.
적응적 루프 필터 적용시, 블록 기반 필터 적용 방법 또는 영역 기반 필터 적용 방법 중 하나가 적용될 수 있다.
위 두개의 필터 적용 방법들 중 어느 것을 사용할 것인지가 부호화기 및/또는 복호화기에서 기 정의되어 있을 수 있다. 또는, 위 두개의 필터 적용 방법들 중 하나를 특정하는 정보가 부호화되어 시그날링될 수 있다. 일 예로, 상기 정보는, 슬라이스, 픽처 또는 시퀀스 등 상위 헤더를 통해 부호화될 수 있다.
또는, 상기 정보는 소정 크기의 블록별(예컨대, 코딩 트리 유닛별, 코딩 블록별, 변환 블록별 또는 기준 블록별)로 부호화될 수 있다. 이 경우, 소정 크기의 블록 마다 상이한 필터 적용 방법이 적용될 수 있다.
또는, 타 인루프 필터가 적용되었는지 여부에 따라, 필터 적용 방법이 적응적으로 결정될 수 있다. 일 예로, 디블록킹 필터가 적용되었는지 여부 또는 샘플 적응적 오프셋 필터가 적용되었는지 여부 중 적어도 하나에 기초하여, 필터 적용 방법이 결정될 수 있다.
블록 기반 필터 적용 방법이 적용되는 경우, 소정 크기의 블록 단위로, 필터 계수가 결정될 수 있다. 일 예로, 코딩 트리 유닛 내 기 정의된 크기(예컨대, 4x4) 크기의 블록 단위로, 필터 계수들이 결정될 수 있다. 이때, 각 블록의 필터 계수들은, 복수의 클래스 후보들 중 어느 하나와 대응하는 필터 계수 세트를 기반으로 결정될 수 있다. 블록 기반 필터 적용 방법이 적용되는 경우, 소정 크기의 블록 마다, 필터 계수 세트를 식별하기 위한 클래스가 획득될 수 있다.
반면, 영역 기반 필터 적용 방법이 적용되는 경우, 영역 마다 필터 계수가 결정될 수 있다. 여기서, 영역은, 코딩 트리 유닛을 나타낼 수 있다. 이 경우, 코딩 트리 유닛에 대해 하나의 필터 계수 세트가 적용될 수 있다.
또는, 영역을, 타일, 슬라이스 또는 서브 픽처 등으로 정의하거나, 상술한 처리 단위들과 상이한 처리 단위로 정의할 수 있다. 이 경우, 영역에 대해 하나의 필터 계수 세트가 적용되고, 하나의 영역에 포함된 복수개의 블록들에 상기 필터 계수 세트가 공통으로 적용될 수 있다.
각각의 필터 적용 방법에 대해 상세히 살펴보기로 한다.
블록 기반 필터 적용 방법이 적용되는 경우, 복원 영상을 복수개의 블록들로 분할할 수 있다.
이때, 블록의 크기를 나타내는 정보가 비트스트림을 통해 시그날링될 수 있다. 상기 정보는, 블록의 너비 또는 높이 중 적어도 하나를 포함할 수 있다. 블록이 정방형인 경우에는, 블록의 너비 정보 또는 블록의 높이 정보 중 하나만 부호화되어 시그날링될 수 있다. 반면, 블록이 비정방형인 경우에는, 블록의 너비 정비 및 블록의 높이 정보가 각각 부호화되어 시그날링될 수 있다. 상기 정보는, 슬라이스, 픽처 또는 시퀀스 레벨에서 부호화되어 시그날링될 수 있다.
블록의 형태는 부호화기 및 복호화기에서 기정의되어 있을 수 있다. 또는, 블록의 형태를 나타내는 정보가 부호화되어 시그날링될 수 있다. 일 예로, 블록의 형태가 정방형인지 또는 비정방형인지 여부를 나타내는 플래그가 부호화되어 시그날링될 수 있다.
또는, 디블록킹 필터가 적용되었는지 여부 또는 샘플 적응적 오프셋 필터가 적용되었는지 여부 중 적어도 하나에 기초하여, 블록의 크기 또는 형태 중 적어도 하나를 결정할 수도 있다.
또는, 블록의 형태 또는 크기 중 적어도 하나가 부호화기 및 복호화기에 기 정의되어 있을 수도 있다. 일 예로, 필터 계수 유도를 위해, 복원 영상을, 4x4 크기의 블록들로 분할하도록 설정할 수 있다.
복원 영상을 복수개의 블록들로 분할한 뒤, 각 블록을 중심으로 필터 계수 유도 영역을 설정할 수 있다. 필터 계수 유도 영역은, 블록 및 블록 주변 N개의 라인으로 구성될 수 있다. 여기서, 라인은 행 또는 열을 나타낸다.
일 예로, 블록의 크기가 4x4인 경우, 8x8 크기로 필터 계수 유도 영역을 정의할 수 있다. 여기서, 필터 계수 유도 영역은, 블록 및 상기 블록의 각 경계 주변의 2개의 라인을 포함할 수 있다.
필터 계수 유도 영역의 크기에 대한 정보가 비트스트림을 통해 시그날링될 수 있다. 일 예로, 상기 정보는, 필터 계수 유도 영역이 포함하는 블록 주변 라인의 개수(N)을 가리킬 수 있다.
또는, 컬러 성분, 컬러 포맷 또는 블록 크기 중 적어도 하나에 기초하여, 블록 주변 라인의 개수(N)가 적응적으로 결정될 수도 있다.
도 6은 블록 및 필터 계수 유도 영역을 예시한 도면이다.
도 6에서는, 필터 계수 유도 영역이, 4x4 크기의 블록 및 상기 블록의 경계들 각각에 인접하는 2개의 라인을 포함하는 것으로 도시되었다. 후술되는 실시예에서는, 도시된 예에서와 같이, 블록의 크기가 4x4 이고, 필터 계수 유도 영역의 크기가 8x8인 것으로 가정한다.
필터 계수 유도 영역이 결정되면, 필터 계수 유도 영역 내 블록 경사도(Gradient)를 계산할 수 있다. 구체적으로, 수평 방향, 수직 방향, 우상단 대각 방향 또는 좌상단 대각 방향 중 적어도 하나에 대한 블록 경사도를 계산할 수 있다.
다음의 수학식 2는 필터 계수 유도 영역 내 경사도를 계산하는 예를 나타낸 것이다.
Figure PCTKR2021003581-appb-M000002
상기 수학식 2에서 gv는 수직 방향 블록 경사도, gh는 수평 방향 블록 경사도, gd1은 우상단 대각 방향 블록 경사도, gd2는 좌상단 대각 방향 블록 경사도를 나타낸다.
상기 수학식 2에 나타난 예에서와 같이, 블록 경사도는, 필터 계수 유도 영역 내 샘플들 각각의 경사도를 합산하여 유도될 수 있다. 여기서, 샘플 경사도는, 복원 샘플 및 상기 복원 샘플의 인접 샘플들을 기초로 유도될 수 있다. 여기서, 인접 샘플들의 위치는 획득하고자 하는 경사도 방향에 의해 결정될 수 있다. 일 예로, 수직 방향에 대한 샘플 경사도는, 복원 샘플(수학식 2의 R(k, l)), 하단 이웃 복원 샘플(수학식 2의 R(k, l-1)) 및 상단 이웃 복원 샘플(수학식 2의 R(k, l+1))을 기초로 유도될 수 있다. 수평 방향에 대한 샘플 경사도는, 복원 샘플(수학식 2의 R(k, l)), 좌측 이웃 복원 샘플(수학식 2의 R(k-1, l)) 및 우측 이웃 복원 샘플(수학식 2의 R(k+1, l))을 기초로 유도될 수 있다.
수학식 2에서, (i, j)는 블록 내 좌상단 샘플의 위치를 나타내고, R(k, l)은 (k, l)위치의 복원 샘플을 나타낸다. |x|는 x의 절대값을 나타낸다.
이후, 블록 경사도에 기초하여, 블록의 클래스(Class)를 결정할 수 있다. 복수의 클래스 후보들 중 하나가 블록의 클래스로 선택될 수 있다.
클래스 후보들의 개수는 부호화기 및 복호화기에서 기 정의되어 있을 수 있다. 또는, 클래스 후보들의 개수를 나타내는 정보가 부호화되어 시그날링될 수 있다.
블록의 클래스는, 복수 방향에 대한 블록 경사도들 중 최대값, 최소값, 중간값 또는 이들의 평균값 중 적어도 하나를 기초로 결정될 수 있다. 일 예로, 수평 방향 블록 경사도 및 수직 방향 블록 경사도에 대한 크고 작음을 판단하고, 우상단 대각 방향 블록 경사도 및 좌상단 대각 방향 블록 경사도에 대한 크고 작음을 판단할 수 있다. 이후, 위 판단 결과를 참조하여 블록의 클래스를 결정할 수 있다. 이하, 설명의 편의를 위해, 수평 방향 및 수직 방향을 제1 그룹 방향이라 호칭하고, 우상단 대각 방향 및 좌상단 대각 방향을 제2 그룹 방향이라 호칭하기로 한다.
하기 수학식 3은, 제1 그룹 방향의 경사도들에 대한 최소값 및 최대값을 결정하는 예를 나타낸다.
Figure PCTKR2021003581-appb-M000003
gmax h,v 는 gh 및 gv 중 큰 값을 나타내고, gmin h,v 는 gh 및 gv 중 작은 값을 나타낸다.
또한, 수평 방향 블록 경사도 및 수직 방향 블록 경사도를 비교하여, 제1 그룹 방향에 대한 경향성을 나타내는 변수 DirHV를 유도할 수 있다. 일 예로, 수직 방향 블록 경사도 gv가 수평 방향 블록 경사도 gh보다 큰 경우, 상기 변수 DirHV는 1로 설정될 수 있다. 반면, 수평 방향 블록 경사도 gh가 수직 방향 블록 경사도 gv보다 큰 경우, 상기 변수 DirHV은 3으로 설정될 수 있다.
하기 수학식 4는 제2 그룹 방향의 경사도들에 대한 최소값 및 최대값을 결정하는 예를 나타낸다.
Figure PCTKR2021003581-appb-M000004
gmax d0,d1 은 gd0 및 gd1 중 큰 값을 나타내고, gmin d0,d1 은 gd0 및 gd1 중 작은 값을 나타낸다.
또한, 수평 방향 블록 경사도 및 수직 방향 블록 경사도를 비교하여, 제2 그룹 방향에 대한 경향성을 나타내는 변수 DirD를 유도할 수 있다. 일 예로, 우상단 대각 방향 블록 경사도 gd0가 수평 방향 블록 경사도 gh보다 큰 경우, 상기 변수 DirHV는 1로 설정될 수 있다. 반면, 수평 방향 블록 경사도 gh가 수직 방향 블록 경사도 gv보다 큰 경우, 상기 변수 DirHV은 3으로 설정될 수 있다.
각각의 블록 경사도들을 이용하여 유도된 최소값(예컨대, gmin h,v, gmin d0,d1) 및 최대값(예컨대, gmin h,v, gmin d0,d1)을 이용하여, 블록의 클래스를 결정하기 위한 변수들을 유도할 수 있다.
수학식 5는 블록의 클래스를 결정하기 위한 변수들을 유도하는 예를 나타낸 것이다.
Figure PCTKR2021003581-appb-M000005
상기 수학식 5에 예시된 것과 같이, 제1 그룹 방향 경사도들 중 최대값 및 제2 그룹 방향 경사도들 중 최소값을 곱한 값과, 제1 그룹 방향 경사도들 중 최소값 및 제2 그룹 방향 경사도들 중 최대값을 곱한 값을 비교하여, 변수 hvd1, hvd0, dir1 및 dir2를 유도할 수 있다. 이때, 변수 hvd0 및 hvd1은, 블록의 경사도들 중 하나와 동일하게 설정되는 변수이고, 변수 dir1 및 dir2는, 블록의 경향성과 동일하게 설정되는 변수이다.
수학식 5를 통해 유도된 변수들을 이용하여, 블록 전반에 걸쳐 강하게 나타나는 경향성의 방향을 나타내는 변수 dirS를 유도할 수 있다. 일 예로, 변수 dirS는 다음의 수학식 6을 기초로 유도될 수 있다.
Figure PCTKR2021003581-appb-M000006
변수 dirS가 유도되면, 이를 이용하여, 블록의 클래스를 나타내는 인덱스 ClassIdx를 유도할 수 있다. 일 예로, 변수 ClassIdx는 다음의 수학식 7을 기초로 유도될 수 있다.
Figure PCTKR2021003581-appb-M000007
상기 수학식 7에서, Q[gh+gv]는 수평 방향의 경사도 gh 및 수직 방향의 경사도 gv의 합을 양자화하여 유도되는 값을 나타낸다. 일 예로, Q[gh+gv]는 0부터 4 사이의 값으로 출력될 수 있다.
변수 ClassIdx는 복수의 클래스 후보들 중 하나를 지시할 수 있다. 일 예로, 블록의 클래스가 25개의 클래스 후보들 중 하나를 지시하는 경우, 변수 ClassIdx는 0부터 24사이의 값으로 설정될 수 있다.
블록의 클래스 결정의 간소화를 위해, 블록의 경사도 유도시 이용되는 샘플들의 범위(예컨대, 개수)를 조절할 수 있다. 일 예로, 서브 샘플링 또는 블록 경계 영역 주변 라인의 개수(N)를 감축하는 것을 통해, 블록 경사도 유도시 이용되는 샘플들의 개수를 감소시킬 수 있다.
도 7은 블록 경사도를 유도하기 위해 이용되는 샘플들의 개수를 감소시킨 예를 나타낸 도면이다.
도 7에서, 마커가 표시된 샘플들은, 서브 샘플링을 통해 획득되는 샘플을 나타낸다. 마커가 표시된 샘플들만이 블록 경사도를 유도하는데 이용될 수 있다. 즉, 블록 경사도는 마커가 표시된 샘플들의 경사도를 합하여 유도될 수 있다.
일 예로, 도 7의 (a)에 도시된 예에서와 같이, 필터 계수 유도 영역 내 x좌표 및 y좌표가 모두 짝수인 샘플들 및 x좌표 및 y좌표가 모두 홀수인 샘플들만을 이용하여 블록 경사도를 유도할 수 있다.
또는, 도 7의 (b)에 도시된 예에서와 같이, 필터 계수 유도 영역이 아닌 블록의 내측에 포함된 샘플들만을 이용하여 블록 경사도를 유도할 수 있다.
또는, 도 7의 (c)에 도시된 예에서와 같이, 블록 내 x좌표 및 y좌표가 모두 짝수인 샘플들 및 x좌표 및 y좌표가 모두 홀수인 샘플들만을 이용하여 블록 경사도를 유도할 수 있다.
또는, 도 7의 (d)에 도시된 예에서와 같이, 블록 내 중앙 위치의 샘플들 만을 이용하여 블록 경사도를 유도할 수 있다.
복수개의 간소화 방법들이 존재하는 경우, 복수개의 간소화 방법들 중 하나를 특정하는 정보가 부호화되어 시그날링될 수 있다. 이때, 상기 정보는, 시퀀스, 픽처 또는 슬라이스 등 상위 헤더를 통해 부호화될 수 있다.
또는, 서브 샘플링을 위한 샘플링 레이트를 나타내는 정보가 부호화되어 시그날링될 수 있다.
또는, 컬러 성분, 컬러 포맷 또는 블록 크기에 따라 적응적으로 샘플링 레이트가 결정될 수도 있다.
필터 계수 유도의 간소화를 위해, 제1 그룹 방향의 경사도들만을 이용하여 블록의 클래스를 유도하거나, 제2 그룹 방향의 경사도들만을 이용하여 블록의 클래스를 유도할 수도 있다.
이때, 블록의 크기, 형태, 디블록킹 필터가 적용되었는지 여부 또는 샘플 적응적 오프셋 필터가 적용되었는지 여부 중 적어도 하나에 기초하여, 제1 그룹 방향의 경사도들만을 이용할 것인지 혹은 제2 그룹 방향의 경사도들만을 이용할 것인지 여부가 결정될 수 있다.
또는, 제1 그룹 방향 및 제2 그룹 방향 중 적어도 하나를 특정하는 정보가 부호화되어 시그날링될 수 있다. 상기 정보는, 제1 그룹 방향, 제2 그룹 방향 또는 제1 및 제2 그룹 방향 중 하나를 지시할 수 있다. 상기 정보에 의해 선택된 그룹 방향의 경사도들만이 블록의 클래스를 유도하는데 이용될 수 있다.
다른 예로, 복원 영상 내 기 정의된 영역 별로, 블록 경사도를 유도하는데 이용되는 샘플들의 범위 또는 블록 클래스를 유도하는데 이용되는 방향들이 결정될 수도 있다. 여기서, 기 정의된 영역들은, 상호간 병렬 처리가 가능한 영역들을 나타낼 수 있다. 일 예로, 기 정의된 영역은, 타일, 슬라이스 또는 서브 픽처를 나타낼 수 있다.
일 예로, 기 정의된 영역 마다, 블록 클래스를 유도하는데 이용되는 방향들을 특정하는 정보가 부호화되어 시그날링될 수 있다. 이에 따라, 기 정의된 영역마다 블록 클래스를 유도하는데 이용되는 방향들이 상이할 수 있다. 일 예로, 픽처 내 첫번째 타일에서는, 제1 그룹 방향 및 제2 그룹 방향의 경사도들을 이용하여 블록 클래스가 유도되는 방면, 두번째 타일에서는, 제2 그룹 방향의 경사도들만을 이용하여 블록 클래스가 유도될 수 있다.
블록의 클래스가 결정되면, 결정된 클래스에 대응하는 필터 계수 세트를 호출하고, 호출된 필터 계수 세트에 대한 기하학적 변환 타입을 선택할 수 있다. 구체적으로, M개의 기하학적 변환 타입들 중 하나를 선택하여, 현재 블록에 대한 필터 계수들을 유도할 수 있다.
기하학적 변환 타입들의 개수 M을 결정하기 위한 정보가 부호화되어 시그날링될 수 있다. 상기 정보는, 슬라이스, 픽처 또는 시퀀스 등 상위 헤더를 통해 시그날링될 수 있다. 또는, 부호화기 및 복호화기에서 이용 가능한 기하학적 변환 타입들의 개수가 기 정의되어 있을 수 있다.
기하학적 변환 타입들은, 비-변환, 수직 변환, 수평 변환, 대각 변환 또는 회전 중 적어도 하나를 포함할 수 있다. 기하학 변환 타입이 선택되면, 선택된 기하학 변환 타입에서의 필터 계수 배열 순서를 따라, 필터 계수 세트에 포함된 필터 계수들을 할당할 수 있다.
도 8은 기하학적 변환 타입들의 예를 나타낸다.
도 8에 도시된 예에서, 수직 변환 타입이 선택된 경우, 비-변환 타입 하의 필터 계수들의 위치가 수평 방향의 중심 축(예컨대, 비-변환 타입의 f9-f9)을 중심으로 반전될 수 있다.
대각 방향 변환 타입이 선택된 경우, 비-변환 타입 하의 필터 계수들의 위치가 대각 방향의 중심축(예컨대, 비-변환 타입의 f7-f7 또는 f5-f5)을 중심으로 반전될 수 있다.
회전 타입이 선택된 경우, 비-변환 타입 하의 필터 계수들의 위치가 시계 방향 또는 반시계 방향으로 소정 각도(예컨대, 90도)만큼 회전 배치될 수 있다.
도시되지는 않았지만, 수평 변환 타입이 선택된 경우, 비-변환 타입 하의 필터 계수들의 위치가 수직 방향의 중심축(예컨대, 비-변환 타입의 f0-f0)을 중심으로 반전될 수 있다.
설명의 편의를 위해, 후술되는 실시예에서는, 이용 가능한 기하학적 변환 타입들의 개수가, 도 8의 예에 도시된 4개인 것으로 가정한다.
블록 경사도들에 기초하여 유도된 변수 dir1 및 dir2를 이용하여, 현재 블록의 기하학적 변환 타입을 결정할 수 있다. 표 1은 변수 dir1 및 dir2에 의해 기하학적 변환 타입이 결정되는 예를 나타낸 것이다.
Type dir1 dir2
Diagonal 0 1
1 0
Vertical 0 3
3 0
Rotation 1 2
2 1
No geometric transformation 2 3
3 2
블록 경사도들에 기초하여 유도된 변수 dir1 및 dir2를 이용하여, 현재 블록의 기하학적 변환 타입을 결정할 수 있다. 표 1은 변수 dir1 및 dir2에 의해 기하학적 변환 타입이 결정되는 예를 나타낸 것이다.
제1 그룹 방향의 경사도들 또는 제2 그룹 방향의 경사도들만이 이용된 경우에는, 표 1과 상이하게 정의된 룩업 테이블이 이용될 수 있다.
또는, 부호화기 및 복호화기에 복수의 룩업 테이블들이 기 정의되어 있을 수 있다. 부호화기는, 복수의 룩업 테이블 중 하나를 특정하는 정보를 부호화하여 시그날링할 수 있다. 각각의 룩업 테이블은, 블록 경사도들(예컨대, gh, gv, gd1 또는 gd2 중 적어도 하나) 또는 상기 블록 경사도들로부터 유도되는 변수(예컨대, dir1 또는 dir2 중 적어도 하나)과 기하학적 변환 타입 사이의 대응 관계를 포함할 수 있다.
또는, 현재 블록의 크기, 형태, 블록 경사도들 중 최대값, 최소값, 중간값 또는 이들의 평균값, 현재 블록에 디블록킹 필터가 적용되었는지 여부 또는 현재 블록에 샘플 적응적 오프셋 필터가 적용되었는지 여부 중 적어도 하나를 고려하여, 복수개의 룩업 테이블들 중 하나가 선택될 수 있다.
필터 계수 세트들은 부호화기 및 복호화기에 기 정의되어 있을 수 있다.
또는, 필수 계수 세트들 각각의 구성 정보가 비트스트림을 통해 시그날링될 수 있다. 여기서, 구성 정보는, 필터 계수 세트가 포함하는 필터 계수의 개수(즉, 필터 탭 수) 또는 필터 계수의 값 중 적어도 하나를 포함할 수 있다.
이때, 기 정의된 영역 단위로, 필터 계수 세트들을 독립적으로 정의할 수 있다. 여기서, 기 정의된 영역들은 병렬 처리가 가능한 영역들을 나타낼 수 있다. 예컨대, 기 정의된 영역은, 타일, 슬라이스 또는 서브 픽처일 수 있다.
일 예로, 픽처 내 타일들 각각에 대해, 필터 계수 세트들이 개별적으로 정의될 수 있다. 예컨대, 픽처가 4개의 타일들을 포함하고, 각 타일마다 25개의 클래스가 정의되어 있을 경우, 총 100개의 필터 계수 세트들에 대한 구성 정보가 상위 헤더를 통해 전송될 수 있다. 이 경우, 특정 타일에 속한 블록은 해당 타일에 대해 정의된 필터 계수 세트들 중 하나를 이용할 수 있다.
다음으로, 영역 기반 필터 적용 방법에 대해 살펴보기로 한다.
영역 기반 필터 적용 방법이 적용되는 경우, 복원 영상을 복수개의 영역들로 분할하고, 영역 마다 필터를 결정할 수 있다. 구체적으로, 복수의 영역 각각에 대해, 필터 형태, 필터 계수 또는 필터 크기 중 적어도 하나를 결정할 수 있다.
필터를 결정하기 위한 정보가 비트스트림을 통해 시그날링될 수 있다. 구체적으로, 필터의 형태, 필터 계수 또는 필터 크기 중 적어도 하나에 대한 정보가 부호화되어 시그날링될 수 있다.
영역 기반 필터 적용 방법이 적용되는 경우, 복원 영상의 분할 정보가 비트스트림을 통해 부호화되어 시그날링될 수 있다. 상기 정보는, 복원 영상이 포함하는 영역들의 개수, 영역들이 균일한 크기로 분할되는지 여부 또는 영역들의 크기 중 적어도 하나를 가리킬 수 있다.
또는, 영역들의 개수, 영역들이 균일한 크기로 분할되는지 여부 또는 영역들의 크기 중 적어도 하나가 부호화기 및 복호화기에 기 정의되어 있을 수 있다.
또는, 픽처 해상도, 컬러 성분, 컬러 포맷 또는 HDR 영상인지 여부 중 적어도 하나에 기초하여, 영역들의 개수, 영역들이 균일한 크기로 분할되는지 여부 또는 영역들의 크기 중 적어도 하나가 적응적으로 결정될 수 있다.
또는, 픽처 내 임의 처리 단위들 각각을 하나의 영역으로 설정할 수 있다. 여기서, 처리 단위는, 타일, 슬라이스 또는 서브 픽처일 수 있다. 픽처 내 임의 처리 단위들 각각이 하나의 영역으로 설정되는 경우, 영역에 대한 분할 정보의 부호화가 생략될 수 있다.
또는, 처리 단위들 각각이 하나의 영역으로 설정되는지 여부를 나타내는 정보가 부호화되어 시그날링될 수 있다. 일 예로, 상기 정보는 1비트의 플래그일 수 있다. 상기 플래그가 1(True)인 것은, 처리 단위들 각각이 하나의 영역으로 설정됨을 나타낸다. 이 경우, 영역에 대한 분할 정보의 부호화가 생략될 수 있다. 상기 플래그가 0(False)인 것은, 처리 단위들 각각이 반드시 하나의 영역으로 설정되는 것은 아님을 나타낸다. 이 경우, 영역에 대한 분할 정보가 추가 부호화될 수 있다.
영역의 경계가, 하나의 처리 단위를 복수개로 분할하지 않도록 설정할 수 있다. 일 예로, 적어도 하나의 코딩 트리 유닛들의 집합이 하나의 영역으로 정의될 수 있다.
도 9는 복원 영상이 복수의 영역들로 분할된 예를 나타낸다.
영역들이 균일한 크기로 분할되는 경우, 영역들이 구성하는 행의 개수를 나타내는 정보, 영역들이 구성하는 열의 개수를 나타내는 정보 또는 영역의 크기(예컨대, 너비 또는 높이 중 적어도 하나)를 나타내는 정보 중 적어도 하나가 부호화되어 시그날링될 수 있다.
반면, 영역들이 균일한 크기로 분할되지 않는 경우, 영역들이 구성하는 열의 개수를 나타내는 정보, 영역들이 구성하는 행의 개수를 나타내는 정보, 각 열의 너비를 나타내는 정보 또는 각 행의 높이를 나타내는 정보 중 적어도 하나가 부호화되어 시그날링될 수 있다.
일 예로, 도 9에서는, 복원 영상이 균일하지 않은 크기의 영역들로 분할된 것으로 예시되었고, 복원 영상이 3개의 열 및 3개의 행으로 분할된 것으로 예시되었다. 이에 따라, 복원 영상이 균일한 크기의 영역들로 분할되었는지 여부를 나타내는 정보(예컨대, 플래그)의 값은 거짓(false)로 설정되어 부호화될 수 있다. 또한, 복원 영상이 포함하는 열의 개수는 3을 나타내도록 설정되어 부호화되고, 복원 영상이 포함하는 행의 개수는 3을 나타내도록 설정되어 부호화될 수 있다.
또한, 각 열의 너비 및 각 행의 높이에 대한 정보가 부호화되어 시그날링될 수 있다. 여기서, 열의 너비는, 해당 열에 포함된 소정의 처리 단위 열의 개수를 나타내고, 열의 높이는, 해당 열에 포함된 소정의 처리 단위 행의 개수를 나타낸다. 처리 단위가 코딩 트리 유닛인 경우, 도 9에 도시된 예에서, 첫번째 열의 너비 및 첫번째 행의 높이는 각기 4 및 3으로 설정될 수 있다.
또한, 복원 영상 내 마지막 열에 대해서는, 너비 정보의 부호화를 생략하고, 복원 영상 내 마지막 행에 대해서는, 높이 정보의 부호화를 생략할 수도 있다.
하드웨어 구현의 편의 및 메모리 절약을 위해, 영역들 간 경계에서 필터를 적용하는 것에 제약을 적용할 수 있다. 일 예로, 필터가 영역의 경계를 벗어나는 경우, 영역의 경계를 벗어나는 위치의 샘플 및/또는 이에 대칭인 위치의 샘플을 제외하고 필터링을 수행할 수 있다.
도 10는 필터가 영역의 경계를 벗어나는 경우, 필터의 적용 양상을 설명하기 위한 예시도이다.
도 10에 도시된 예에서, 필터 적용 대상 샘플은, 필터의 중심 위치(예컨대, f[12])에 위치한다. 이때, 상기 필터 적용 대상 샘플을 필터링하기 위한 주변 샘플이, 영역의 경계를 벗어나는 경우, 해당 주변 샘플은 이용 불가능한 것으로 설정될 수 있다.
일 예로, 도 10의 (a)에 도시된 예에서, 영역의 상단 경계를 벗어나는 위치(예컨대, f[0]~f[8])의 샘플들은 필터 적용 대상 샘플을 필터링하는데 이용 불가능한 것으로 설정될 수 있다.
또한, 위 이용 불가능한 샘플과 대칭 위치의 샘플도 이용 불가능한 것으로 설정될 수 있다.
이에 따라, 도 10의 (a)에 도시된 예에서, 필터 적용 대상 샘플은, 상기 필터 적용 대상 샘플과 동일한 행에 속하는 샘플들(예컨대, f[9]~f[11] 만을 이용하여, 필터링될 수 있다.
또는, 이용 불가능한 샘플의 값을 디폴트값(예컨대, 0)으로 설정하거나, 이용 불가능한 샘플에 대한 필터 계수를 0으로 변환하여, 필터링을 수행할 수도 있다.
도 10의 (b)에 도시된 예에서, 영역의 하단 경계를 벗어나는 위치(예컨대, f[0]~f[8])의 샘플들은 필터 적용 대상 샘플을 필터링하는데 이용 불가능한 것으로 설정될 수 있다.
또한, 위 이용 불가능한 샘플과 대칭 위치의 샘플도 이용 불가능한 것으로 설정될 수 있다.
이에 따라, 도 10의 (b)에 도시된 예에서, 필터 적용 대상 샘플은, 상기 필터 적용 대상 샘플과 동일한 행에 속하는 샘플들(예컨대, f[9]~f[11]) 만을 이용하여, 필터링될 수 있다.
또는, 이용 불가능한 샘플의 값을 디폴트값(예컨대, 0)으로 설정하거나, 이용 불가능한 샘플에 대한 필터 계수를 0으로 변환하여, 필터링을 수행할 수도 있다.
영역의 상단 및 하단 경계에서는, 필터의 수평 축을 중심으로 대칭 위치의 샘플을 결정하고, 영역의 좌측 및 우측 경계에서는, 필터의 수직 축을 중심으로 대칭 위치의 샘플을 결정할 수 있다.
영역들 간 경계에서, 상술한 제약이 적용되는지 여부를 나타내는 정보가 부호화되어 시그날링될 수 있다. 일 예로, 상술한 제약이 적용되는지 여부를 나타내는 플래그가 부호화되어 시그날링될 수 있다.
이때, 상기 플래그는 영역 마다 개별적으로 부호화될 수 있다.
또는, 영위보다 큰 상위 레벨에서 상기 플래그가 부호화될 수 있다. 일 예로, 슬라이스, 픽처 또는 시퀀스 등 상위 헤더를 통해 상기 플래그가 시그날링될 수 있다. 이 경우, 동일한 상위 헤더를 참조하는 영역들에 대해서는, 상술한 제약이 적용되는지 여부가 공통으로 결정될 수 있다.
또는, 상술한 제약이 적용되는지 여부를 나타내는 변수를 정의하고, 상기 변수에 의해 영역마다 상술한 제약이 적용되는지 여부를 결정할 수도 있다. 예컨대, 변수 ResFlag는, 제약의 적용 여부를 나타낼 수 있다. 상기 변수 ResFlag의 값은 상술한 플래그 값을 기초로 결정될 수 있다. 또는, 영역의 크기, 영역들의 개수, 영역의 위치, 컬러 성분 또는 컬러 포맷 중 적어도 하나에 기초하여 변수 ResFlag의 값이 적응적으로 결정될 수 있다. 또는, 부호화기 및 복호화기에서 변수 ResFlag의 값이 기 정의되어 있을 수 있다.
상술한 제약이 적용되지 않는 경우(예컨대, 변수 ResFlag가 0인 경우), 영역의 경계를 벗어나는 샘플도, 필터링에 이용될 수 있다.
또한, 이용 불가능한 샘플과 대칭 위치에 존재하는 샘플도 이용 불가능한 것으로 설정할 것인지 여부를 나타내는 정보가 부호화되어 시그날링될 수 있다. 상기 정보는 영역별로 시그날링될 수 있다. 일 예로, 이용 불가능한 샘플과 대칭 위치인 샘플도 이용 불가능한 것으로 설정할 것인지 여부를 나타내는 플래그가 시그날링될 수 있다.
또는, 이용 불가능한 샘플과 대칭 위치에 존재하는 샘플도 이용 불가능한 것으로 설정할 것인지 여부가 부호화기 및 복호화기에서 기 정의되어 있을 수 있다.
또는, 필터 형태, 필터 크기 또는 이용 불가능한 샘플의 개수(예컨대, 영역 경계를 벗어나는 샘플의 개수) 중 적어도 하나를 고려하여, 대칭 위치에 존재하는 샘플도 이용 불가능한 것으로 설정할 것인지 여부를 결정할 수도 있다.
필터링시 이용 불가능한 샘플을 제외하는 대신, 이용 불가능한 샘플 위치에 패딩을 수행한 뒤, 패딩된 샘플을 이용하여 필터링을 수행할 수도 있다. 패딩은, 이용 불가능한 샘플과 대칭 위치인 화소 또는 이용 불가능한 샘플에 적용되는 필터 계수와 동일한 필터 계수가 적용되는 화소를 복사함으로써 수행될 수 있다. 또는, 패딩은, 이용 불가능한 샘플에 인접하는 이용 가능한 화소를 복사함으로써 수행될 수 있다.
상술한 예에서는, 영역 기반 필터 적용 방법 적용 시, 픽처를 복수의 영역들로 분할하는 것으로 설명하였다. 다른 예로, 병렬 처리가 수행되는 처리 단위별로, 영역 기반 필터 적용 방법을 적용할 수 있다. 여기서, 처리 단위는, 슬라이스, 타일 또는 서브 픽처를 나타낼 수 있다. 즉, 각 처리 단위별 독립적으로 영역 분할이 수행될 수 있다.
다른 예로, 블록 내 샘플 위치, 또는 블록의 위치에 따라, 필터의 크기 또는 형태 중 적어도 하나를 적응적으로 결정할 수도 있다.
적응적 루프 필터가 적용되는 경우, 복원 샘플 및 주변 복원 샘플들을 이용하여, 복원 샘플을 필터링할 수 있다. 일 예로, 하기 수학식 8 및 수학식 9는 필터링된 복원 샘플이 획득되는 과정을 나타낸 예시이다.
Figure PCTKR2021003581-appb-M000008
Figure PCTKR2021003581-appb-M000009
수학식 8에서, f[n]은 필터 계수를 의미한다. I는 입력 복원 샘플을 나타낸다. hx는 수평 방향(즉, x축) 좌표가 x인 것을 나타내고, vy는 수직 방향(즉, y축) 좌표가 y인 것을 나타낸다. 즉, I[hx, vy]는, (x, y)위치의 복원 샘플을 나타낸다.
수학식 9에서 O(x, y)는 필터링된 복원 샘플을 나타낸다.
수학식 8 및 수학식 9에 나타난 예에서와 같이, 각 복원 샘플에 필터 계수를 곱하여 유도된 값들을 합산하여 획득된 임시값 tmp을 시프팅 파라미터 shift를 기초로 시프팅하여, 필터링된 복원 샘플 O(x, y)가 획득될 수 있다.
여기서, 시프팅 파라미터는 부호화기 및 복호화기에 기 정의되어 있을 수 있다. 일 예로, 시프팅 파라미터 shift는 7로 고정되어 있을 수 있다.
또는, 시프팅 파라미터를 결정하기 위한 정보가 비트스트림을 통해 시그날링될 수 있다. 상기 정보는, 슬라이스, 타일 또는 서브 픽처 등 상위 헤더를 통해 부호화될 수 있다.
또는, 현재 블록의 크기, 필터 타입, 필터 크기, 비트 뎁스, 컬러 성분 또는 컬러 포맷 중 적어도 하나에 기초하여, 시프팅 파라미터가 적응적으로 결정될 수 있다.
상술한 실시예들은, 선형 적응적 루프 필터의 적용과 관련된다. 설명한 것과 달리, 적응적 루프 필터 적용시, 비선형성(non- Linearity)을 적용할 수도 있다. 비선형 적응적 루프 필터를 적용하는 경우, 클립(Clip) 함수를 적용하여, 필터링된 샘플을 출력할 수 있다. 일 예로, 비선형 적응적 루프 필터가 적용되는 경우, 수학식 1은 다음의 수학식 10과 같이 변경될 수 있다.
Figure PCTKR2021003581-appb-M000010
클립함수는 다음의 수학식 11과 같이 정의될 수 있다.
Figure PCTKR2021003581-appb-M000011
또한, 비선형 적응적 루프 필터가 적용되는 상세 과정은, 다음의 수학식 12와 같이 표현될 수 있다.
Figure PCTKR2021003581-appb-M000012
Figure PCTKR2021003581-appb-I000003
수학식 12에서, c[n]은 클리핑 값 k(i, j)를 1차원으로 표현한 것이다.
수학식 12를 통해 임시값 tmp가 유도되면, 수학식 9를 통해, 필터링된 복원 샘플을 획득할 수 있다.
비선형 적응적 루프 필터가 적용되는지 여부를 나타내는 정보가 부호화되어 시그날링될 수 있다. 일 예로, 비선형 적응적 루프 필터가 적용되는지 여부를 나타내는 1비트 플래그가 부호화되어 시그날링될 수 있다.
컬러 성분별로 비선형 적응적 루프 필터가 적용되는지 여부를 나타내는 정보를 부호화할 수도 있다.
비선형 적응적 루프 필터가 적용되는 경우, 필터 계수에 대응하는 클리핑 값을 결정하기 위한 정보가 부호화되어 시그날링될 수 있다. 일 예로, 필터 계수 f[n]에 대응하는 클리핑 값 c[n]을 나타내는 정보가 부호화될 수 있다.
이때, 복수의 클리핑 값들을 후보들로 설정한 뒤, 복수의 클리핑 값 후보들 중, 필터 계수에 대응하는 클리핑 값을 특정하는 인덱스를 필터 계수별로 부호화하여 시그날링할 수 있다.
표 2는 각 클리핑 값 후보에 상이한 클리핑 인덱스가 할당되는 예를 나타낸다.
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
표 2에서, Bitdepth는 영상의 비트 뎁스를 나타내고, clipIdx는 클리핑 값 후보에 할당되는 클리핑 인덱스를 나타낸다.
클리핑 값 후보들의 구성은, 비트 뎁스에 따라 상이할 수 있다. 여기서, 일 예로, 비트 뎁스에 따라, 후보들의 개수 또는 후보들의 값 중 적어도 하나가 상이할 수 있다. 표 2에서는, 비트 뎁스에 따라, 클리핑 값 후보들의 값이 상이하게 설정되는 것으로 예시되었다.
또는, 픽처 해상도, 컬러 성분 또는 컬러 포맷 중 적어도 하나에 기초하여, 클리핑 값 후보들의 구성이 결정될 수 있다. 일 예로, 픽처 해상도, 컬러 성분 또는 컬러 포맷에 따라, 후보들의 개수 또는 후보들의 값 중 적어도 하나가 상이할 수 있다.
클리핑 값을 식별하는 인덱스의 비트 렝스를 줄이기 위해, 표 2에 예시된 것 보다 더 적은 개수의 후보들을 이용할 수도 있다. 일 예로, 비트 뎁스 별로 2개의 클리핑 값 후보들만을 정의할 수도 있다. 2개의 클리핑 값 후보들이 정의되어 있을 경우, 1비트의 플래그를 이용하여, 클리핑 값을 결정할 수 있다.
표 3 내지 표 5는, 간소화된 룩업 테이블을 예시한 것이다.
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
복수의 룩업 테이블들이 기-저장된 경우, 복수의 룩업 테이블들 중 하나를 식별하는 정보를 부호화하여 시그날링할 수 있다. 일 예로, 표 2 내지 표 5에 도시된 룩업 테이블들 중 하나를 특정하는 인덱스가 부호화되어 시그날링될 수 있다. 또는, 비트 뎁스, 컬러 성분 또는 컬러 포맷 중 적어도 하나에 기초하여, 룩업 테이블이 적응적으로 선택될 수 있다.
다른 예로, 메모리 점유율을 낮추기 위해, 룩업 테이블을 이용하는 대신, 수식을 이용하여, 클리핑 값을 결정할 수도 있다. 수학식 13은 비트 뎁스 및 클리핑 인덱스에 의해 클리핑 값이 결정되는 예를 나타낸다.
Figure PCTKR2021003581-appb-M000013
상기 수학식 13에서, 변수 clipIdx는 비트스트림을 통해 시그날링되는 인덱스에 의해 결정될 수 있다.
다른 예로, 수학식 12보다, 클리핑 함수의 적용 횟수를 더욱 감소시킬 수도 있다. 일 예로, 수학식 14는 임시값 tmp가 유도되는 다른 예를 나타낸다.
Figure PCTKR2021003581-appb-M000014
Figure PCTKR2021003581-appb-I000004
수학식 12에서는, 하나의 필터 계수에 대해 2회의 클리핑 함수가 적용되는 것으로 예시되었으나, 수학식 14에서는, 하나의 필터 계수에 대해 1회의 클리핑 함수가 적용되는 것으로 예시되었다.
클리핑 함수의 적용 횟수가 감소하더라도, 클리핑 값은 변경되지 않을 수 있다. 일 예로, 수학식 12에 의해 임시값 tmp를 유도하는 경우 및 수학식 14에 의해 임시값 tmp를 유도하는 경우에 있어서, c[n]값은 동일할 수 있다.
또는, 클리핑 함수의 적용 횟수가 감소하는 경우, 클리핑 값을 변경할 수 있다. 일 예로, 수학식 14에 의해 임시값 tmp를 유도하는 경우의 클리핑 값 c[n]은, 수학식 12에 의해 임시값 tmp를 유도하는 경우의 클리핑 값 c[n]의 2배일 수 있다.
상술한 예에서는, 필터 계수마다 클리핑 값을 결정하기 위한 인덱스가 부호화되는 것으로 예시되었다.
다른 예로, 기 설정된 위치의 필터 계수에 대해서만 인덱스를 부호화할 수도 있다.
도 11은 필터 계수들 중 일부에 대해서만 인덱스가 부호화되는 예를 나타낸다.
도 11의 (a)에서는, f[0], f[1], f[3], f[4], f[8] 및 f[9]에 대해서만, 인덱스가 부호화되는 것으로 예시되었다.
도 11의 (b)에서는, f[2], f[5], f[7] 및 f[10]에 대해서만, 인덱스가 부호화되는 것으로 예시되었다.
도 11의 (c)에서는, f[6] 및 f[11]에 대해서만, 인덱스가 부호화되는 것으로 예시되었다.
인덱스가 부호화되지 않는 필터 계수에 대해서는, 고정된 클리핑 값을 사용하거나, 인접 위치 필터 계수의 클리핑 값을 사용할 수 있다. 여기서, 인접 위치는, 상단, 하단, 좌측 또는 우측 중 적어도 하나를 가리킨다. 기하학적 변환 타입에 따라, 인접 위치가 적응적으로 결정될 수도 있다.
또는, 인덱스가 부호화되는 위치에서만 클리핑 함수를 적용할 수도 있다. 즉, 인덱스가 부호화되지 않는 위치에서는, 클리핑 함수를 적용하지 않을 수 있다. 일 예로, 도 11의 (c)에 도시된 예에서, f[6] 및 f[11]이 적용되는 위치에서는 클리핑 함수가 적용되는 한편, f[6] 및 f[11]이 적용되는 위치를 제외한 잔여 위치에서는 클리핑 함수가 적용되지 않을 수 있다.
적응적 루프 필터와 관련한 정보가 상위 헤더를 통해 부호화되어 시그날링될 수 있다. 여기서, 상위 헤더는, 적응적 루프 필터의 적용 여부가 결정되는 복수의 블록(예컨대, 코딩 트리 유닛, 코딩 유닛 또는 변환 유닛)들이 공통으로 참조하는 파라미터 세트를 나타낸다. 특히, 적응적 루프 필터와 관련한 정보가 부호화된 상위 헤더를 필터 헤더라 정의할 수 있다.
필터 헤더를 통해, 필터 계수 세트에 관한 정보 또는 각 필터 계수 세트의 구성 정보 중 적어도 하나가 시그날링될 수 있다. 일 예로, 필터 헤더는, 블록 기반 필터 적용 방법을 위한, 복수의 클래스들 각각에 대응하는 필터 계수 세트에 대한 정보, 또는 영역 기반 필터 적용 방법을 위한, 각 영역별 필터 계수 세트에 대한 정보 중 적어도 하나를 포함할 수 있다.
일 예로, 블록 기반 필터 적용 방법 하에서는 25개의 클래스를 이용하고, 영역 기반 필터 적용 방법 하에서는 복원 픽처를 20개의 영역으로 분할하도록 설정된 경우라면, 필터 헤더를 통해 25개 클래스 각각에 대응하는 필터 계수 세트 또는 20개 영역 각각에 대응하는 필터 계수 세트 중 적어도 하나가 부호화되어 시그날링될 수 있다.
필터 헤더가 블록 기반 필터 적용 방법에 이용되는 필터 계수 세트들의 정보를 포함하는지 또는 영역 기반 필터 적용 방법에 이용되는 필터 계수 세트들의 정보를 포함하는지 여부를 나타내는 정보가 부호화될 수 있다.
복수의 필터 헤더들이 부호화되어 시그날링될 수 있다. 이때, 각 필터 헤드에는 상이한 식별자(ID, Identifier)가 할당될 수 있다.
영상 별 필터 헤더의 개수를 나타내는 정보를 부호화하여 시그날링할 수 있다. 일 예로, 상기 개수 정보는, 픽처 또는 시퀀스 등 상위 헤더를 통해 시그날링될 수 있다. 상기 개수 정보는, 필터 헤더의 총 개수에서 1을 차분한 값을 나타낼 수 있다.
컬러 성분별로, 상이한 필터 헤더가 선택될 수 있다. 일 예로, 휘도 성분(예컨대, y)에 대해서는, 식별자(ID)가 0인 필터 헤더가 이용되는 한편, 제1 색차 성분(예컨대, u 또는 cb)에 대해서는, 식별자가 1인 필터 헤더가 이용되고, 제2 색차 성분(예컨대, v 또는 cr)에 대해서는, 식별자가 2인 필터 헤더가 이용될 수 있다.
색차 성분 각각이 상이한 필터 헤더를 이용하는 대신, 하나의 필터 헤더를 색차 성분들에 공통적으로 적용할 수도 있다. 일 예로, 휘도 성분에 대해서는, 식별자가 0인 필터 헤더가 이용되는 한편, 제1 색차 성분 및 제2 색차 성분에 대해서는, 식별자가 1인 필터 헤더가 이용될 수 있다.
또는, 하나의 필터 헤더를 공통적으로 모든 컬러 성분들에 대해 공통적으로 적용할 수도 있다.
컬러 성분별 또는 색차 성분별 개별적으로 필터 헤더가 결정되는지 여부를 나타내는 정보가 부호화될 수 있다. 상기 정보에 기초하여, 컬러 성분별 또는 색차 성분별로 복수의 필터 헤더들 중 하나를 가리키는 인덱스가 시그날링되는지 여부가 결정될 수 있다.
하나의 필터 헤더가 복수 컬러 성분들에 공통적으로 적용되는 경우, 상기 필터 헤더는, 복수 컬러 성분들 각각에 대한 필터 계수 세트 정보를 포함할 수 있다. 이 경우, 필터 헤더 내 필터 계수 세트가 어떠한 컬러 성분에 관한 것인지 여부를 나타내는 정보가 추가로 부호화되어 시그날링될 수 있다.
일 예로, 하나의 필터 헤더가 모든 컬러 성분에 대해 공통적으로 적용되는 경우, 필터 헤더 내 필터 계수 세트가 휘도 성분(Y)에 관한 것인지, 제1 색차 성분(예컨대, Cb)에 관한 것인지 또는, 제2 색차 성분(예컨대, Cr)에 관한 것인지 여부를 나타내는 정보가 추가적으로 부호화되어 시그날링될 수 있다.
블록 기반 필터 적용 방법을 위한 필터 계수 세트들을 저장하는 필터 헤더와 영역 기반 필터 적용 방법을 위한 필터 계수 세트들을 저장하는 필터 헤더가 독립적으로 부호화되어 시그날링될 수 있다.
또는, 하나의 필터 헤더가, 블록 기반 필터 적용 방법을 위한 필터 계수 세트들 및 영역 기반 필터 적용 방법을 위한 필터 계수 세트들이 하나의 필터 헤더에 포함될 수도 있다. 이 경우, 필터 헤더 내 필터 계수 세트가, 블록 기반 필터 적용 방법을 위한 것인지 또는 영역 기반 필터 적용 방법을 위한 것인지 여부를 나타내는 정보가 추가적으로 부호화되어 시그날링될 수 있다.
다른 예로, 컬러 성분별로, 필터 계수 적용 방법을 고정적으로 설정할 수 있다. 일 예로, 루마 성분에 대해서는, 블록 기반 필터 적용 방법을 고정적으로 적용하는 한편, 색차 성분에 대해서는, 영역 기반 필터 적용 방법을 고정적으로 적용할 수 있다. 이 경우, 컬러 성분 각각의 필터 적용 방법을 참고하여, 필터 헤더가 선택될 수 있다.
필터 계수 세트들 간 계수 병합(Coefficient Merge)가 수행될 수 있다. 계수 병합을 통해, 복수 클래스들 또는 복수 영역들 중 일부에 대해서만, 필터 계수 세트에 대한 정보를 부호화할 수 있다. 필터 계수 세트가 부호화되지 않는 클래스 또는 필터 계수 세트가 부호화되지 않는 영역은, 타 클래스 또는 타 영역의 필터 계수 세트를 이용하도록 설정될 수 있다.
도 12는 블록 기반 필터 적용 방법 하에서, 계수 머징이 적용되는 예를 설명하기 위한 도면이다.
도 12의 (a)는 계수 머징이 적용되지 않는 경우의 실시예이고, 도 12의 (b)는 계수 머징이 적용되는 경우의 실시예이다.
계수 머징이 적용되지 않는 경우, 클래스들 각각에 대한 필터 계수 세트가 부호화되어 시그날링될 수 있다. 일 예로, 25개의 클래스들이 존재하는 경우, 도 12의 (a)에 도시된 예에서와 같이, 25개의 클래스들 각각에 대해 필터 계수 세트가 부호화될 수 있다.
계수 머징이 적용되지 않는 경우, 클래스들의 개수만큼 필터 계수 세트들이 부호화되어 시그날링될 수 있다.
계수 머징이 적용되는 경우, 클래스들 개수보다 적은 개수의 필터 계수 세트들이 부호화되어 시그날링될 수 있다. 이때, 복수의 클래스들에 하나의 필터 계수 세트가 할당될 수 있다. 일 예로, 도 12의 (b)에 도시된 예에서와 같이, 클래스 1 내지 3에 필터 계수 세트 1이 할당될 수 있다.
계수 머징이 적용되는 경우, 부호화해야하는 필터 계수 세트의 개수가 감소하므로, RDO(Rate-Distortion Optimization) 관점에서, 부호화 효율이 향상될 수 있다. 즉, 필터 계수 세트에 대한 시느날링 오버헤드가 감소될 수 있다.
클래스들 각각에 대해 필터 계수 세트가 정의되어 있는 경우, 클래스와 필터 계수 세트간 매핑 관계를 나타내는 정보가 불필요하다. 즉, 클래스의 개수 만큼 및 필터 계수 세트가 전송되므로(즉, 클래스 및 필터 계수 세트간 1:1 매핑), 블록의 클래스가 N으로 결정된 경우, 필터 계수 세트 N이 이용되는 것으로 결정될 수 있다.
반면, 클래스들의 개수보다 필터 계수 세트들의 개수가 적은 경우, 클래스와 필터 계수 세트간 매핑 관계를 나타내는 정보가 추가로 요구된다. 일 예로, 도 12의 (b)에 도시된 예에서, 클래스 2에는 필터 계수 세트 2가 아닌 필터 계수 세트 1이 할당되므로, 클래스 2에 필터 계수 세트 1이 할당되어 있음을 나타내는 매핑 정보가 추가로 요구된다. 상기 매핑 정보는, 클래스와 매핑 관계인 필터 계수 세트를 식별하는 인덱스일 수 있다.
계수 머징이 적용되는 경우, 필터 계수 세트들의 개수를 나타내는 정보가 추가 부호화되어 시그날링될 수 있다. 일 예로, 도 12의 (b)에 도시된 예에서는, 총 5개의 필터 계수 세트들이 부호화되어 시그날링된다. 이에 따라, 필터 계수 세트들의 개수가 5개임을 나타내는 개수 정보가 부호화되어 시그날링될 수 있다.
일 예로, 필터 계수 세트들의 개수에서 소정의 상수값을 차분하여 유도되는 개수 정보가 부호화될 수 있다. 여기서, 상수값은, 1 또는 2와 같은 자연수일 수 있다.
또는, 클래스들의 개수와 필터 계수 세트들간의 차분값을 기초로 유도되는 개수 정보가 부호화될 수 있다.
클래스마다, 매핑 관계인 필터 계수 세트를 식별하기 위한 인덱스 정보가 부호화되어 시그날링될 수 있다. 일 예로, 도 12의 (b)에 도시된 예에서는, 총 5개의 필터 계수 세트들이 존재하므로, 각각의 클래스들에 대해 0 내지 4 중 하나의 값을 나타내는 인덱스 정보가 부호화되어 시그날링될 수 있다.
이때, 인덱스 정보는, 클래스에 할당되는 필터 계수 세트의 인덱스를 나타낼 수 있다.
또는, 차분 코딩(DPCM, Differential Pulse Coded Modulation)에 기초하여, 각 클래스의 인덱스 정보를 부호화할 수 있다. 일 예로, 클래스 N에 대해, 클래스 N에 할당된 필터 계수 세트의 인덱스와 이전 클래스 (예컨대, 클래스 N-1) 또는 다음 클래스(예컨대, 클래스 N+1)에 할당된 필터 계수 세트의 인덱스 사이의 차분을 나타내는 인덱스 차분을 인덱스 정보로 부호화할 수 있다.
또는, 클래스에 할당된 필터 계수 세트가 이전 클래스 또는 다음 클래스와 동일한지 여부를 나타내는 플래그가 부호화되어 시그날링될 수 있다. 상기 플래그가 1(True)인 경우, 해당 클래스에 대해서는 인덱스 정보의 부호화가 생략될 수 있다. 반면, 상기 플래그가 0(False)인 경우, 해당 클래스에 대해 인덱스 정보가 부호화될 수 있다.
클래스에 할당되는 필터 계수 세트 인덱스가, 이전 클래스에 할당되는 필터 계수 세트의 인덱스보다 작은 값을 갖는 것은 허용되지 않도록 설정할 수 있다. 이 경우, 일부 클래스에 대해서는, 인덱스 정보의 부호화가 생략될 수 있다.
도 13은 일부 클래스에 대해, 인덱스 정보의 부호화가 생략되는 예를 나타낸 것이다.
도 13의 (a)는, 각각의 클래스들에 할당된 필터 계수 세트를 나타낸다. 도시된 예에서와 같이, 클래스 N에 할당되는 필터 계수 세트의 인덱스가 이전 클래스(즉, 클래스 N-1)에 할당되는 필터 계수 세트의 인덱스와 같거나 큰 값을 갖도록 강제할 수 있다. 이 경우, 첫번째 클래스(클래스 0)에는 항상 가장 작은 인덱스를 갖는 필터 계수 세트가 할당되고, 마지막 클래스(클래스 24)에는 항상 가장 큰 인덱스를 갖는 필터 계수 세트가 할당된다.
이에 따라, 첫번째 클래스 및 마지막 클래스에 대해서는, 인덱스 정보의 부호화가 생략될 수 있다.
도 13의 (b)는 인덱스 정보의 부호화 양상을 나타낸 것이다. 도시된 예에서와 같이, 첫번째 클래스(클래스 0) 및 마지막 클래스(클래스 24)에 대해서는, 인덱스 정보의 부호화를 생략할 수 있다. 첫번째 클래스 및 마지막 클래스를 제외한 잔여 클래스들에 대해서만, 인덱스 정보가 부호화되어 시그날링될 수 있다.
인덱스 정보의 시그날링이 생략된 경우, 복호화기에서는, 클래스가 첫번째 혹은 마지막인지 여부에 따라, 해당 클래스에 할당되는 필터 계수 세트를 결정할 수 있다. 일 예로, 인덱스 정보의 시그날링이 생략된 클래스가, 첫번째 클래스인 경우, 첫번째 필터 계수 세트가 선택된 것으로 간주(infer)할 수 있다. 반면, 인덱스 정보의 시그날링이 생략된 클래스가, 마지막 클래인 경우, 마지막 필터 계수 세트가 선택된 것으로 간주할 수 있다.
상술한 필터 계수 병합과 관련한 실시예는, 블록 기반 필터 적용 방법에서 뿐만 아니라, 영역 기반 필터 적용 방법에도 적용될 수 있다.
도 14는 영역 기반 필터 적용 방법 하에서, 계수 머징이 적용되는 예를 설명하기 위한 도면이다.
도 14의 (a)는 계수 머징이 적용되지 않는 경우의 실시예이고, 도 14의 (b)는 계수 머징이 적용되는 경우의 실시예이다.
계수 머징이 적용되지 않는 경우, 영역들 각각에 대한 필터 계수 세트가 부호화되어 시그날링될 수 있다. 일 예로, 25개의 영역들이 존재하는 경우, 도 14의 (a)에 도시된 예에서와 같이, 25개의 영역들 각각에 대해 필터 계수 세트가 부호화될 수 있다.
계수 머징이 적용되지 않는 경우, 영역들의 개수만큼 필터 계수 세트들이 부호화되어 시그날링될 수 있다.
계수 머징이 적용되는 경우, 영역들 개수보다 적은 개수의 필터 계수 세트들이 부호화되어 시그날링될 수 있다. 이때, 복수의 영역들에 하나의 필터 계수 세트가 할당될 수 있다. 일 예로, 도 14의 (b)에 도시된 예에서와 같이, 영역 1 내지 3에 필터 계수 세트 1이 할당될 수 있다.
계수 머징 방법이 적용되는 경우, 각 영역에 할당되는 필터 계수 세트를 특정하기 위한 정보가 부호화되어 시그날링될 수 있다. 이때, 각 영역의 인덱스 정보의 부호화 방법은, 상술한 블록 기반 필터 적용 방법과 동일한 바, 이에 대한 상세한 설명은 생략하기로 한다.
필터 계수 세트를 구성하는 필터 계수들에 대한 정보를 부호화하여 시그날링할 수 있다. 도 4의 예를 참고하면, 휘도 성분에 대해서는 13개의 필터 계수들(f[0]~f[12])의 값이 부호화되어 시그날링되고, 색차 성분에 대해서는 7개의 필터 계수들(f[0]~f[6])의 값이 부호화되어 시그날링될 수 있다.
이때, 필터 중앙 위치의 필터 계수에 대해서는 부호화가 생략될 수 잇다. 일 예로, 도 4의 예에서, 휘도 성분에 대한 필터의 중앙 위치인 f[12]에 대한 부호화가 생략되고, 색차 성분에 대한 필터의 중앙 위치인 f[6]에 대한 부호화가 생략될 수 있다.
중앙 위치의 필터 계수는, 소정의 상수값에서 잔여 필터 계수들의 합을 차분하여 유도될 수 있다. 일 예로, 휘도 성분에 대한 필터 계수 f[12] 및 색차 성분에 대한 필터 계수 f[6]은 다음의 수학식 15와 같이 유도될 수 있다.
Figure PCTKR2021003581-appb-M000015
필터 계수에 대한 정보는, 필터 계수의 절대값 정보 또는 필터 계수의 부호 정보 중 적어도 하나를 포함할 수 있다.
다른 예로, 필터 계수 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)인 경우, 서브 처리 단위에서 사용할 필터 헤더를 식별하는 식별 정보가 추가 부호화될 수 있다. 상기 식별 정보는, 처리 단위 레벨에서 결정된 필터 헤더를 제외한 잔여 필터 헤더들 중 하나를 특정할 수 있다.
일 예로, 처리 단위들 간 종속 관계가 다음을 따른다고 가정한다.
슬라이스⊆타일⊆서브픽쳐⊆픽쳐
이 경우, 필터 헤더가 결정되는 처리 단위는, 타일, 서브 픽처 또는 픽처 중 어느 하나이고, 서브 처리 단위는, 슬라이스, 타일 또는 서브 픽처 중 어느 하나일 수 있다.
다른 예로, 슬라이스의 결정 방법에 따라 필터 헤더의 식별 정보가 부호화되는 처리 단위를 적응적으로 결정할 수 있다. 여기서, 슬라이스의 결정 방법은 래스터 스캔 슬라이스 결정 방법 또는 사각 슬라이스 결정 방법 중 하나일 수 있다.
래스터 스캔 슬라이스 결정 방법은 래스터 스캔 순서를 따를 때, 연속하는 타일들을 하나의 슬라이스로 결정하는 방법을 나타낸다. 사각 형태 슬라이스 결정 방법은, 사각 형태를 갖는 슬라이스만을 허용하는 결정 방법을 나타낸다. 사각 형태 슬라이스 결정 방법이 적용되는 경우, 사각형의 꼭지점에 위치하는 타일은 다른 꼭지점에 위치하는 타일과 동일한 행 및/또는 동일한 열에 속할 수 있다.
일 예로, 래스터 스캔 슬라이스 결정 방법이 적용되는 경우, 슬라이스 별로 필터 헤더의 식별 정보를 부호화할 수 있다. 반면, 사각 형태 슬라이스 결정 방법이 적용되는 경우, 타일 별로 필터 헤더의 식별 정보를 부호화할 수 있다.
또는, 위와 반대로, 래스터 스캔 슬라이스 결정 방법이 적용되는 경우, 타일 별로 필터 헤더의 식별 정보를 부호화하고, 사각 형태 슬라이스 결정 방법이 적용되는 경우, 슬라이스 별로 필터 헤더의 식별 정보를 부호화할 수도 있다.
다른 예로, 병렬 처리 대상 영역들 각각에 대해 독립적으로 필터 헤더를 부호화할 수도 있다. 일 예로, 타일 별 병렬 처리가 수행되는 경우, 타일들 각각에 대해 필터 헤더를 부호화할 수 있다. 일 예로, 픽처가 2개의 타일들로 구성된 경우, 제1 타일에 대해 3개의 필터 헤더들을 부호화하고, 제2 타일에 대해 2개의 필터 헤더들을 부호화할 수 있다. 이에 따라, 현재 픽처에 대해서는 총 5개의 필터 헤더들이 부호화될 수 있다.
이때, 하나의 필터 헤더가 복수의 타일들을 위해 중복 부호화될 수도 있다.
타일 별 필터 헤더들의 개수 또는 타일들 각각에 할당되는 필터 헤더의 식별자 정보 중 적어도 하나가 더 부호화되어 시그날링될 수도 있다.
다른 예로, 블록별로 필터 헤더를 식별하는 정보를 부호화하여 시그날링할 수도 있다. 일 예로, 현재 코딩 트리 유닛에 대해 적응적 루프 필터가 적용되는 것으로 결정된 경우, 현재 코딩 트리 유닛에 적용되는 필터 헤더를 식별하기 위한 정보가 추가 부호화되어 시그날링될 수 있다.
상술한 예에서는, 적응적 루프 필터의 적용 방법을 나타내는 정보가 부호화되어 시그날링되는 것으로 예시되었다. 다른 예로, 선택된 필터 헤더에 따라, 적응적 루프 필터의 적용 방법이 결정될 수도 있다. 일 예로, 블록 기반 필터 적용 방법을 위한 필터 계수 세트들만으로 구성된 필터 헤더가 선택된 경우, 현재 블록에는 블록 기반 필터 적용 방법이 적용될 수 있다. 반면, 영역 기반 필터 적용 방법을 위한 필터 계수 세트들만으로 구성된 필터 헤더가 선택된 경우, 현재 블록에는 영역 기반 필터 적용 방법이 적용될 수 있다.
컬러 성분별로 고정된 필터 적용 방법을 적용할 수도 있다. 일 예로, 휘도 성분에 대해서는 상시 블록 기반 필터 적용 방법을 적용하고, 색차 성분에 대해서는 상시 영역 기반 필터 적용 방법을 적용할 수 있다. 이 경우, 휘도 성분 블록에 대해서는, 블록 기반 필터 적용 방법을 위한 필터 헤더들 중 하나를 식별하는 정보를 추가 부호화하여 시그날링할 수 있다. 또한, 색차 성분 영역에 대해서는, 영역 기반 필터 적용 방법을 위한 필터 헤더들 중 현재 하나를 식별하는 정보를 추가 부호화하여 시그날링할 수 있다.
영역 기반 필터 적용 방법이 적용되는 한편, 픽처에 하나의 영역만이 포함된 경우, 상기 단일 영역을 위해 복수의 필터 계수 세트 후보들을 구성할 수도 있다. 이 경우, 상기 단일 영역을 위한 필터 계수 세트를 결정하기 위해, 상기 복수의 필터 계수 세트 후보들 중 하나를 식별하는 인덱스 정보가 부호화되어 시그날링될 수 있다. 이 경우, 인덱스 정보는 블록 단위(예컨대, 코딩 트리 유닛)로 부호화되어 시그날링될 수 있다. 즉, 영역 기반 필터 적용 방법이 적용되는 경우에도, 블록별로 상이한 필터 계수 세트를 이용할 수 있다.
컬러 성분별로 독립적으로 필터 헤더를 결정할 수 있다.
또는, 컬러 성분들이 동일한 필터 헤더를 사용하도록 설정할 수도 있다. 이 경우, 필터 헤더는, 휘도 성분에 대한 필터 계수 세트들의 정보 및 색차 성분에 대한 필터 계수 세트들의 정보를 모두 포함할 수 있다. 또한, 휘도 성분에 대해서는, 복수의 필터 헤더들 중 하나를 식별하는 정보를 부호화하고, 색차 성분에 대해서는, 상기 정보의 부호화를 생략할 수 있다.
상술한 실시예들에서 사용된 신택스들의 명칭은, 설명의 편의를 위해 명명된 것에 불과하다.
복호화 과정 또는 부호화 과정을 중심으로 설명된 실시예들을, 부호화 과정 또는 복호화 과정에 적용하는 것은, 본 개시의 범주에 포함되는 것이다. 소정의 순서로 설명된 실시예들을, 설명된 것과 상이한 순서로 변경하는 것 역시, 본 개시의 범주에 포함되는 것이다.
상술한 실시예는 일련의 단계 또는 순서도를 기초로 설명되고 있으나, 이는 발명의 시계열적 순서를 한정한 것은 아니며, 필요에 따라 동시에 수행되거나 다른 순서로 수행될 수 있다. 또한, 상술한 실시예에서 블록도를 구성하는 구성요소(예를 들어, 유닛, 모듈 등) 각각은 하드웨어 장치 또는 소프트웨어로 구현될 수도 있고, 복수의 구성요소가 결합하여 하나의 하드웨어 장치 또는 소프트웨어로 구현될 수도 있다. 상술한 실시예는 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, 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/003581 2020-03-23 2021-03-23 비디오 신호 처리 방법 및 장치 WO2021194222A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2020-0035241 2020-03-23
KR20200035241 2020-03-23
KR10-2020-0035242 2020-03-23
KR20200035242 2020-03-23

Publications (1)

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

Family

ID=77892416

Family Applications (1)

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

Country Status (2)

Country Link
KR (1) KR20210118768A (ko)
WO (1) WO2021194222A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140029436A (ko) * 2011-05-10 2014-03-10 미디어텍 인크. 루프내 필터 버퍼의 감소를 위한 방법 및 장치
KR20180113527A (ko) * 2016-02-15 2018-10-16 퀄컴 인코포레이티드 비디오 코딩을 위한 필터들에 대한 기하학적 변환들
KR20190057910A (ko) * 2017-11-21 2019-05-29 디지털인사이트 주식회사 적응적 루프 필터를 사용하는 비디오 코딩 방법 및 장치
KR20190102201A (ko) * 2017-01-04 2019-09-03 퀄컴 인코포레이티드 시간적 스케일러빌리티 지원을 위한 수정된 적응형 루프 필터 시간 예측

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140029436A (ko) * 2011-05-10 2014-03-10 미디어텍 인크. 루프내 필터 버퍼의 감소를 위한 방법 및 장치
KR20180113527A (ko) * 2016-02-15 2018-10-16 퀄컴 인코포레이티드 비디오 코딩을 위한 필터들에 대한 기하학적 변환들
KR20190102201A (ko) * 2017-01-04 2019-09-03 퀄컴 인코포레이티드 시간적 스케일러빌리티 지원을 위한 수정된 적응형 루프 필터 시간 예측
KR20190057910A (ko) * 2017-11-21 2019-05-29 디지털인사이트 주식회사 적응적 루프 필터를 사용하는 비디오 코딩 방법 및 장치

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
KR20210118768A (ko) 2021-10-01

Similar Documents

Publication Publication Date Title
WO2017176030A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018026219A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017171370A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017222326A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018026166A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020111785A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019182385A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020076116A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2017018664A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2018047995A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019182292A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020050685A1 (ko) 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2019050292A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020096428A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019190201A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018056701A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019221465A1 (ko) 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체
WO2020213963A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019050291A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020060327A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020180166A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020096426A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020096427A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020004978A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018174457A1 (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: 21776571

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: 21776571

Country of ref document: EP

Kind code of ref document: A1