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

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

Info

Publication number
WO2017222331A1
WO2017222331A1 PCT/KR2017/006634 KR2017006634W WO2017222331A1 WO 2017222331 A1 WO2017222331 A1 WO 2017222331A1 KR 2017006634 W KR2017006634 W KR 2017006634W WO 2017222331 A1 WO2017222331 A1 WO 2017222331A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
information
division
blocks
tree structure
Prior art date
Application number
PCT/KR2017/006634
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
Priority claimed from KR1020160079137A external-priority patent/KR20180000886A/ko
Priority claimed from KR1020160121827A external-priority patent/KR20180032775A/ko
Priority claimed from KR1020160169394A external-priority patent/KR20180033030A/ko
Priority to CN202311031020.0A priority Critical patent/CN116828177A/zh
Priority to US16/312,677 priority patent/US20190327476A1/en
Priority to CN202311027861.4A priority patent/CN116781902A/zh
Application filed by 세종대학교 산학협력단 filed Critical 세종대학교 산학협력단
Priority to CN202311031996.8A priority patent/CN116828178A/zh
Priority to CN202311028575.XA priority patent/CN116781903A/zh
Priority to CN201780039316.3A priority patent/CN109479131B/zh
Publication of WO2017222331A1 publication Critical patent/WO2017222331A1/ko
Priority to US17/070,956 priority patent/US20210058646A1/en
Priority to US17/716,301 priority patent/US20220272390A1/en

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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Definitions

  • the present invention relates to a video signal processing method and apparatus.
  • High efficiency image compression techniques can be used to solve these problems caused by high resolution and high quality image data.
  • An inter-screen prediction technique for predicting pixel values included in the current picture from a picture before or after the current picture using an image compression technique an intra prediction technique for predicting pixel values included in a current picture using pixel information in the current picture
  • An object of the present invention is to provide a method and apparatus for encoding / decoding an image.
  • Another object of the present invention is to provide a method and apparatus for encoding / decoding an input image based on adaptive segmentation of the input image.
  • Another object of the present invention is to provide a method and apparatus for signaling adaptive segmentation of an input image.
  • Another object of the present invention is to provide a method and apparatus for performing transformation and / or filtering on a block according to adaptive segmentation of an input image.
  • Another object of the present invention is to provide a video signal processing method and apparatus for effectively detecting noise generated at corners of a block included in a video signal decoded in units of blocks and effectively compensating (filtering) the detected noise. .
  • a splitting determination step of determining whether to split a current block, and splitting the current block into a plurality of subblocks based on the determination.
  • a block dividing step generating block dividing information regarding the dividing of the current block, and an encoding step of encoding the block dividing information, the current block or the sub block.
  • the block dividing step may divide the current block using two or more tree structures.
  • the block in the block partitioning step, the block may be partitioned by using at least one of the two or more tree structures as the main partition structure and using the rest as the sub partition structure.
  • the block partitioning information includes main partitioning information for indicating whether a block is partitioned using the main partitioning structure, and the main partitioning information uses the main partitioning structure.
  • the block division information may further include information for specifying one of the plurality of main division structures.
  • the block partitioning information includes main partitioning information for indicating whether a block is partitioned using the main partitioning structure, and the main partitioning information uses the main partitioning structure.
  • the block partitioning information may further include subdivision information for indicating whether a block is divided using a subdivision structure.
  • the subdivision information indicates that a block is divided using the subdivision structure, and when the subdivision structure is plural, the block division information is the plurality of subdivisions. It may further include information for specifying one of the structures.
  • the main division information indicates that the block is not divided using the main division structure, and the sub division information does not divide the block using the sub division structure.
  • the current block may be determined as a coding unit.
  • the block dividing information includes first information for indicating whether the block is divided, wherein the first information indicates that the block is divided, and the division of the block is performed.
  • the block partition information may further include second information for specifying one of the plurality of partition structures.
  • the information about the main division structure or the sub division structure may be encoded at at least one level of sequence level, picture level, slice level, tile level, and block level.
  • the division of the block is not performed for a block having a predetermined size or less, and the information about the predetermined size includes a sequence level, a picture level, a slice level, a tile level, and a block. It may be encoded at at least one level among the levels.
  • a and B may be different transformations.
  • a video signal processing method for dividing and decoding an input image in block units may include decoding block partition information of a current block, and splitting the current block into a plurality of subblocks based on the block partition information. And dividing the current block or the sub-block.
  • a video signal processing apparatus for dividing and encoding an input image into block units includes: a division determining unit configured to determine whether to divide a current block; And a block partition information generation unit for generating block partition information about the partition of the current block, and an encoder for encoding the block partition information, the current block, or the sub block.
  • a video signal processing apparatus for dividing and decoding an input image by a block unit includes: a block partition information decoder configured to decode block partition information of a current block; And a block decoder to decode the block, and a block decoder to decode the current block or the sub block.
  • a video signal processing method for dividing and encoding an input image in block units may include generating a residual block for a current block, encoding the residual block, decoding the encoded residual block, The current block is reconstructed using the decoded residual block, and a filtering is performed on a reconstructed image including the reconstructed current block, wherein the filtering is performed based on the shape or size of two blocks adjacent to a block boundary. It is characterized by.
  • the number or filtering intensities of the pixels to be filtered are determined based on the shape or size of two blocks adjacent to the block boundary.
  • the size of two blocks adjacent to the block boundary is different, it is characterized in that more pixels are filtered for the larger block among the two blocks.
  • a video signal processing method of dividing and decoding an input image by a block unit may include: decoding a residual block for a current block from a bitstream, reconstructing the current block using the decoded residual block, and Filtering is performed on the reconstructed image including the reconstructed current block, and the filtering is performed based on the shape or size of two blocks adjacent to the block boundary.
  • a video signal processing apparatus for dividing and encoding an input image into block units includes a residual block generator that generates a residual block for a current block, a residual block encoder that encodes the residual block, and the encoded residual
  • a residual block decoding unit decoding the block, a current block reconstructing unit reconstructing the current block by using the decoded residual block, and a filtering unit performing filtering on a reconstructed image including the reconstructed current block;
  • the filtering unit may perform filtering on the block boundary based on the shape or size of two blocks adjacent to the block boundary.
  • a reconstructing current block reconstructing unit, and a filtering unit which performs filtering on the reconstructed image including the reconstructed current block, wherein the filtering unit is arranged at the block boundary based on the shape or size of two blocks adjacent to the block boundary. Filtering is performed.
  • the video signal processing method when the corners of the four blocks included in the video signal decoded in units of blocks are adjacent to each other at one intersection point, one of four corner pixels adjacent to the intersection point, Selecting a corner pixel of as a corner outlier, filtering the corner outlier, and selecting the corner outlier, the first difference value between the pixel values of the four corner pixels adjacent to the intersection and the first value. It is characterized by using a threshold.
  • the first threshold value is determined based on a quantization parameter of the four blocks.
  • the similarity between the pixel and the corner outlier adjacent to the corner outlier and included in the same block as the selected corner outlier is further determined, and the filtering, the similarity determination It is characterized in that performed on the basis of.
  • the similarity determination is included in the same block as the corner outlier and the difference between the pixel adjacent to the corner outlier and the pixel values of the corner outlier and the second value. It is characterized by using a threshold.
  • the second threshold value is determined based on the quantization parameter of the four blocks.
  • the filtering is performed to determine whether the block boundary is an edge of the image area. It is characterized in that performed on the basis.
  • the determination of whether the block boundary is an edge of an image area is a pixel in a block adjacent to the corner outlier and an amount of change between pixel values of pixels adjacent to the block boundary. And a first edge determination using the third threshold value.
  • the third threshold value is determined based on the quantization parameter of the four blocks.
  • the determination of whether the block boundary is an edge of an image area comprises: a difference value between corner pixels horizontally or vertically adjacent to the corner outliers and pixel values of the corner outliers; And a second edge determination using the fourth threshold value.
  • the fourth threshold value is determined based on the quantization parameter of the four blocks.
  • the filtering is characterized by setting a weighted average value of four corner pixels adjacent to the intersection to the filtered pixel value of the corner outlier.
  • the filtering may include filtering the pixels included in the same block as the corner outlier and adjacent to the corner outlier.
  • the video signal processing apparatus when corners of four blocks included in a video signal decoded in block units are adjacent to each other at one intersection point, one corner of four corner pixels adjacent to the intersection point is present. Selecting a pixel as a corner outlier and filtering the corner outlier, wherein the selection of the corner outlier is between pixel values of four corner pixels adjacent to the intersection. It is characterized by using the difference value and the first threshold value of.
  • the first threshold value is determined based on a quantization parameter of the four blocks.
  • the corner outlier filter is further included in the same block as the selected corner outlier and further determines similarity between the pixel adjacent to the corner outlier and the corner outlier, The filtering may be performed based on the similarity determination.
  • the similarity determination is included in the same block as the corner outlier and the difference between the pixel adjacent to the corner outlier and the pixel values of the corner outlier and the second value. It is characterized by using a threshold.
  • the second threshold value is determined based on the quantization parameter of the four blocks.
  • the corner outlier filter further determines whether a block boundary adjacent to the selected corner outlier is an edge of an image area, and the filtering further includes the block boundary being an image area. It is characterized in that performed based on the determination of whether or not the edge of.
  • whether the block boundary is an edge of an image area is determined as pixels in a block adjacent to the corner outlier and an amount of change between pixel values of pixels adjacent to the block boundary. And a first edge determination using the third threshold value.
  • the third threshold value is determined based on the quantization parameter of the four blocks.
  • the determination of whether the block boundary is an edge of the image area comprises: a difference value between corner pixels horizontally or vertically adjacent to the corner outliers and pixel values of the corner outliers; And a second edge determination using the fourth threshold value.
  • the fourth threshold value is determined based on the quantization parameter of the four blocks.
  • the filtering is characterized by setting a weighted average value of four corner pixels adjacent to the intersection to the filtered pixel value of the corner outlier.
  • the filtering comprises filtering the pixels included in the same block as the corner outlier and adjacent to the corner outlier.
  • the present invention may provide a method and apparatus for encoding / decoding an image.
  • coding efficiency may be improved by adaptively dividing blocks based on various types of tree structures including a quad tree structure, a binary tree structure, and / or a triple tree structure.
  • the coding efficiency can be improved by efficiently signaling the partition information of the block according to the adaptive partitioning of the input image.
  • the coding efficiency may be improved by efficiently performing transform and / or filtering on a block having any shape.
  • noise generated at corners of blocks included in the video signal decoded in units of blocks can be effectively detected.
  • noise generated at the corners of blocks of the video signal decoded in units of blocks can be effectively compensated.
  • the block is used as a reference for inter-screen prediction and / or intra-picture prediction, so that other blocks or other It is possible to prevent noise from propagating into the picture.
  • FIG. 1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 3A is a diagram illustrating a structure in which a basic block of an input image is divided using a quad tree structure.
  • FIG. 3B is a diagram illustrating a structure in which a basic block of an input image is divided using a quad tree structure and / or a binary tree structure.
  • FIG. 4 is a diagram illustrating a structure in which a block included in an input image is divided using a quad tree structure.
  • FIG. 5 is a diagram illustrating a structure in which a block included in an input image is divided using a binary tree structure.
  • FIG. 6 is a diagram illustrating a structure in which a block included in an input image is divided using a triple tree structure.
  • FIG. 7 (a) illustrates that a block included in an input image is divided into a plurality of subblocks using QT cross division as a main division structure and BT vertical 1: 1 and / or BT horizontal 1: 1 division as a sub division structure. It is a figure which shows a structure illustratively.
  • FIG. 7B is a diagram illustrating block partitioning information for the block partitioning structure illustrated in FIG. 7A using a tree structure according to an embodiment of the present invention.
  • FIG. 7C is a diagram exemplarily illustrating block partitioning information of the block partitioning structure illustrated in FIG. 7A using a tree structure according to another embodiment of the present invention.
  • FIG. 8 illustrates a case in which a block included in an input image is divided into a plurality of subblocks using QT cross division as a main division structure and BT vertical 1: 1 and / or BT horizontal 1: 1 division as a sub division structure. Is a diagram showing the size and shape of the various blocks that can be taken sub-block.
  • FIG. 3 is a diagram illustrating a structure in which a block included in an input image is divided into a plurality of sub blocks.
  • FIG. 9B is a diagram illustrating block partitioning information for the block partitioning structure illustrated in FIG. 9A using a tree structure according to an embodiment of the present invention.
  • FIG. 1 is a diagram illustrating a structure in which a block included in an input image is divided into a plurality of sub blocks using: 1 division as a subdivision structure.
  • FIG. 10B is a diagram illustrating block division information for the block division structure illustrated in FIG. 10A using a tree structure, according to an embodiment of the present invention.
  • BT vertical 1 1, BT horizontal 1: 1, BT horizontal 1: 3, BT horizontal 3: 1, BT vertical 1: 3 and / or BT vertical 3: 1 splitting
  • BT vertical 1: 1 1, BT horizontal 1: 1, BT horizontal 1: 3, BT horizontal 3: 1, BT vertical 1: 3 and / or BT vertical 3: 1 splitting
  • FIG. 12 is an exemplary diagram showing a real basis of DCT-II that can be used for conversion and an integer basis obtained by multiplying a real value by a predetermined value.
  • FIG. 13 is an exemplary diagram showing a real basis of DST-VII that can be used for conversion and an integer basis obtained by multiplying a real value by a predetermined value.
  • FIG. 14 is a flowchart illustrating filtering according to an embodiment of the present invention.
  • FIG. 15 is a diagram illustrating two blocks adjacent to a block boundary and pixels therein, which are used to perform the filtering according to FIG. 14.
  • FIG. 16 is a diagram illustrating a structure of a block divided using a quad tree structure and / or a binary tree structure and block boundaries to which filtering is applied according to the present invention.
  • 17 is a flowchart illustrating filtering according to another embodiment of the present invention.
  • FIG. 18 is a diagram illustrating a pixel to which strong filtering is applied according to an embodiment of the present invention.
  • 19 is a diagram illustrating a pixel to which weak filtering is applied according to an embodiment of the present invention.
  • 20 is a diagram exemplarily illustrating a range of pixels to which filtering is applied when weak filtering is performed according to the present invention.
  • FIG. 21A illustrates a corner outlier that is a filtering target of the corner outlier filter according to an exemplary embodiment of the present invention.
  • FIG. 21B is a diagram illustrating pixel values of pixels of a 2 ⁇ 2 area centered on an intersection point of FIG. 21A.
  • FIG. 21C shows an index for indicating a position of pixels used to detect and filter a corner outlier.
  • FIG. 22 is a flowchart illustrating an operation of a corner outlier filter according to an embodiment of the present invention.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • FIG. 1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus 100 may include a picture splitter 110, a predictor 120 and 125, a transformer 130, a quantizer 135, a realigner 160, and an entropy encoder. 165, an inverse quantizer 140, an inverse transformer 145, a filter 150, and a memory 155.
  • each of the components shown in FIG. 1 is independently illustrated to represent different characteristic functions in the image encoding apparatus, and does not mean that each of the components is made of separate hardware or one software component unit.
  • each component is included in each component for convenience of description, and at least two of the components may be combined into one component, or one component may be divided into a plurality of components to perform a function.
  • Integrated and separate embodiments of the components are also included within the scope of the present invention without departing from the spirit of the invention.
  • the components may not be essential components for performing essential functions in the present invention, but may be optional components for improving performance.
  • the present invention can be implemented including only the components essential for implementing the essentials of the present invention except for the components used for improving performance, and the structure including only the essential components except for the optional components used for improving performance. Also included in the scope of the present invention.
  • the picture dividing unit 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 dividing unit 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 on a predetermined basis (eg, a cost function). You can select to encode the picture.
  • one picture may be divided into a plurality of coding units.
  • a recursive tree structure such as a quad tree structure may be used, and coding is divided into other coding units by using one image or a largest coding unit as a root.
  • the unit may be split with as many child nodes as the number of split coding units. Coding units that are no longer split according to certain restrictions become leaf nodes. That is, when it is assumed that only square division is possible for one coding unit, one coding unit may be split into at most four other coding units.
  • a tree structure may be used to split coding units in a picture.
  • the tree structure may include at least one of a quad tree structure, a binary tree structure, and / or a triple tree structure. It is possible to split a tree structure by using one image or a maximum size coding unit as a root.
  • the tree structure can be applied recursively or hierarchically.
  • the tree structure applied to the division of the divided block may be a tree structure different from the tree structure applied previously.
  • Blocks that are no longer split are leaf nodes and may be units of prediction, transform, and / or quantization. When splitting blocks using a tree structure, leaf nodes can be square as well as non-square.
  • a coding unit may be used as a unit for encoding or may be used as a unit for decoding.
  • the prediction unit may be split in the form of at least one square or rectangle having the same size in one coding unit, or the prediction unit of any one of the prediction units split in one coding unit is different from one another. It may be divided to have a different shape and / or size than the unit.
  • the intra prediction may be performed without splitting into a plurality of prediction units NxN.
  • the predictors 120 and 125 may include an inter predictor 120 that performs inter prediction and an intra predictor 125 that performs intra prediction. Whether to use inter prediction or intra prediction on the prediction unit may be determined, and specific information (eg, an intra prediction mode, a motion vector, a reference picture, etc.) according to each prediction method may be determined. In this case, the processing unit in which the prediction is performed may differ from the processing unit in which the prediction method and the details are determined. For example, the method of prediction and the prediction mode may be determined in the prediction unit, and the prediction may be performed in the transform unit. The residual value (residual block) between the generated prediction block and the original block may be input to the transformer 130.
  • specific information eg, an intra prediction mode, a motion vector, a reference picture, etc.
  • prediction mode information and motion vector information used for prediction may be encoded by the entropy encoder 165 together with the residual value and transmitted to the decoder.
  • the original block may be encoded as it is and transmitted to the decoder without generating the prediction block through the prediction units 120 and 125.
  • the inter prediction unit 120 may predict the prediction unit based on the information of at least one of the previous picture or the next picture of the current picture. In some cases, the inter prediction unit 120 may predict the prediction unit based on the information of the partial region in which the current picture is encoded. You can also predict units.
  • the inter predictor 120 may include a reference picture interpolator, a motion predictor, and a motion compensator.
  • the reference picture interpolator may receive reference picture information from the memory 155 and generate pixel information of an integer pixel or less in the reference picture.
  • a DCT based 8-tap interpolation filter having different filter coefficients may be used to generate pixel information of integer pixels or less in units of 1/4 pixels.
  • a DCT-based interpolation filter having different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/8 pixels.
  • the motion predictor may perform motion prediction based on the reference picture interpolated by the reference picture interpolator.
  • various methods such as full search-based block matching algorithm (FBMA), three step search (TSS), and new three-step search algorithm (NTS) may be used.
  • FBMA full search-based block matching algorithm
  • TSS three step search
  • NTS new three-step search algorithm
  • the motion vector may have a motion vector value of 1/2 or 1/4 pixel units based on the interpolated pixels.
  • 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 advanced motion vector prediction (AMVP) method, an intra block copy method, and the like may be used.
  • AMVP advanced motion vector prediction
  • the intra predictor 125 may generate a prediction unit based on reference pixel information around the current block, which is pixel information in the current picture. If the neighboring block of the current prediction unit is a block that has performed inter prediction, and the reference pixel is a pixel that has performed inter prediction, the reference pixel of the block that has performed intra prediction around the reference pixel included in the block where the inter prediction has been performed Can be used as a substitute for information. That is, when the reference pixel is not available, the unavailable reference pixel information may be replaced with at least one reference pixel among the available reference pixels.
  • a prediction mode may have a directional prediction mode using reference pixel information according to a prediction direction, and a non-directional mode using no directional information when performing prediction.
  • the mode for predicting the luminance information and the mode for predicting the color difference information may be different, and the intra prediction mode information or the predicted luminance signal information used for predicting the luminance information may be utilized to predict the color difference information.
  • intra prediction When performing intra prediction, if the size of the prediction unit and the size of the transform unit are the same, the intra prediction on the prediction unit is performed based on the pixels on the left of the prediction unit, the pixels on the upper left, and the pixels on the top. Can be performed. However, when performing intra prediction, if the size of the prediction unit is different from that of the transform unit, intra prediction may be performed using a reference pixel based on the transform unit. In addition, intra prediction using N ⁇ N partitioning may be used only for a minimum coding unit.
  • the intra prediction method may generate a prediction block after applying an adaptive intra smoothing (AIS) filter to a reference pixel according to a prediction mode.
  • AIS adaptive intra smoothing
  • the type of AIS filter applied to the reference pixel may be different.
  • 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 by 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 is the same, the current prediction unit and the neighboring prediction unit using the predetermined flag information If the prediction modes of the current prediction unit and the neighboring prediction unit are different, entropy encoding may be performed to encode the prediction mode information of the current block.
  • a residual block may include a prediction unit performing prediction based on the prediction units generated by the prediction units 120 and 125 and residual information including residual information that is a difference from an original block of the prediction unit.
  • the generated residual block may be input to the transformer 130.
  • the transform unit 130 converts the residual block including residual information of the original block and the prediction unit generated by the prediction units 120 and 125 into a discrete cosine transform (DCT), a discrete sine transform (DST), and a KLT. You can convert using the same conversion method. Whether to apply DCT, DST, or KLT to transform the residual block may be determined based on intra prediction mode information of the prediction unit used to generate the residual block.
  • DCT discrete cosine transform
  • DST discrete sine transform
  • KLT KLT
  • the quantization unit 135 may quantize the values converted by the transformer 130 into the frequency domain.
  • the quantization coefficient may change depending on the block or the importance of the image.
  • the value calculated by the quantization unit 135 may be provided to the inverse quantization unit 140 and the reordering unit 160.
  • the reordering unit 160 may reorder coefficient values with respect to the quantized residual value.
  • the reordering unit 160 may change the two-dimensional block shape coefficients into a one-dimensional vector form through a coefficient scanning method. For example, the reordering unit 160 may scan from DC coefficients to coefficients in the high frequency region by using a Zig-Zag scan method and change them into one-dimensional vectors.
  • a vertical scan for scanning two-dimensional block shape coefficients in a column direction instead of a zig-zag scan may be used, and a horizontal scan for scanning two-dimensional block shape coefficients in a row direction. That is, according to the size of the transform unit and the intra prediction mode, it is possible to determine which scan method among the zig-zag scan, the vertical scan, and the horizontal scan is used.
  • the entropy encoder 165 may perform entropy encoding based on the values calculated by the reordering unit 160. Entropy encoding may use various encoding methods such as, for example, Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
  • Entropy encoding may use various encoding methods such as, for example, Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
  • the entropy encoder 165 receives residual value coefficient information, block type information, prediction mode information, partition unit information, prediction unit information, transmission unit information, and 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 can be encoded.
  • the entropy encoder 165 may entropy encode a coefficient value of a coding unit input from the reordering unit 160.
  • the inverse quantizer 140 and the inverse transformer 145 inverse quantize the quantized values in the quantizer 135 and inversely transform the transformed values in the transformer 130.
  • the residual value generated by the inverse quantizer 140 and the inverse transformer 145 is reconstructed by combining the prediction units predicted by the motion estimator, the motion compensator, and the intra predictor included in the predictors 120 and 125. You can create a Reconstructed Block.
  • the filter unit 150 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
  • a deblocking filter may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
  • ALF adaptive loop filter
  • the deblocking filter may remove block distortion caused by boundaries between blocks in the reconstructed picture.
  • it may be determined whether to apply a deblocking filter to the current block based on the pixels included in several columns or rows included in the block.
  • a strong filter or a weak filter may be applied according to the required deblocking filtering strength.
  • horizontal filtering and vertical filtering may be performed in parallel when vertical filtering and horizontal filtering are performed.
  • adaptive filtering may be performed according to the shape, size, and / or characteristics of two blocks P and Q adjacent to a block boundary. For example, when two blocks P and Q have different sizes, more pixels may be filtered for a larger block than a smaller block.
  • adaptive filtering may be performed based on whether at least one of the two blocks P and Q is a non-square block. For example, when block P is an 8x8 block and block Q is an 8x16 block, in the filtering of block boundaries where P and Q are adjacent to each other, more pixels may be filtered than block P for block Q.
  • the number of filtered pixels of the two blocks P and Q is the same, but different for P and Q. Intensity filtering can be performed. Alternatively, the number of filtered pixels and the filtering intensity may be differently applied to both blocks P and Q.
  • the offset correction unit may correct the offset with respect to the original image on a pixel-by-pixel basis for the deblocking image.
  • the pixels included in the image are divided into a predetermined number of areas, and then, an area to be offset is determined, an offset is applied to the corresponding area, or offset considering the edge information of each pixel. You can use this method.
  • Adaptive Loop Filtering may be performed based on a value obtained by comparing the filtered reconstructed image with the original image. After dividing the pixels included in the image into a predetermined group, one filter to be applied to the group may be determined and filtering may be performed for each group. For information related to whether to apply ALF, a luminance signal may be transmitted for each coding unit (CU), and the shape and filter coefficient of an ALF filter to be applied may vary according to each block. In addition, regardless of the characteristics of the block to be applied, the same type (fixed form) of the ALF filter may be applied.
  • ALF Adaptive Loop Filtering
  • the memory 155 may store the reconstructed block or picture calculated by the filter unit 150, and the stored reconstructed block or picture may be provided to the predictors 120 and 125 when performing inter prediction.
  • FIG. 2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present invention.
  • the image decoder 200 includes an entropy decoder 210, a reordering unit 215, an inverse quantizer 220, an inverse transformer 225, a predictor 230, 235, and a filter unit ( 240, a memory 245 may be included.
  • the input bitstream may be decoded by a procedure opposite to that of the image encoder.
  • the entropy decoder 210 may perform entropy decoding in a procedure opposite to that of the entropy encoding performed by the entropy encoder of the image encoder. For example, various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied to the method performed by the image encoder.
  • various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied to the method performed by the image encoder.
  • the entropy decoder 210 may decode information related to intra prediction and inter prediction performed by the encoder.
  • the reordering unit 215 may reorder the entropy decoded bitstream by the entropy decoding unit 210 based on a method of rearranging the bitstream. Coefficients expressed in the form of a one-dimensional vector may be reconstructed by reconstructing the coefficients in a two-dimensional block form.
  • the reordering unit 215 may be realigned by receiving information related to coefficient scanning performed by the encoder and performing reverse scanning based on the scanning order performed by the corresponding encoder.
  • the inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoder and the coefficient values of the rearranged block.
  • the inverse transform unit 225 may perform an inverse transform, i.e., an inverse DCT, an inverse DST, and an inverse KLT, for a quantization result performed by the image encoder, that is, a DCT, DST, and KLT. Inverse transformation may be performed based on a transmission unit determined by the image encoder.
  • the inverse transform unit 225 of the image decoder may selectively perform a transform scheme (eg, DCT, DST, KLT) according to a plurality of pieces of information such as a prediction method, a size of a current block, and a prediction direction.
  • a transform scheme eg, DCT, DST, KLT
  • the prediction units 230 and 235 may generate the prediction block based on the prediction block generation related information provided by the entropy decoder 210 and previously decoded blocks or picture information provided by the memory 245.
  • Intra prediction is performed on a prediction unit based on a pixel, but when intra prediction is performed, when the size of the prediction unit and the size of the transformation unit are different, intra prediction may be performed using a reference pixel based on the transformation unit. Can be.
  • intra prediction using N ⁇ N partitioning may be used only for the smallest coding unit.
  • the predictors 230 and 235 may include a prediction unit determiner, an inter predictor, and an intra predictor.
  • the prediction unit determiner 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 distinguishes 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 predicts the current prediction based on information included in at least one of a previous picture or a subsequent picture of the current picture including the current prediction unit by using information required for inter prediction of the current prediction unit provided by the image encoder. Inter prediction may be performed on a unit. Alternatively, inter prediction may be performed based on information of some regions pre-restored in the current picture including the current prediction unit.
  • a motion prediction method of a prediction unit included in a coding unit based on a coding unit includes a skip mode, a merge mode, an AMVP mode, and an intra block copy mode. It can be determined whether or not it is a method.
  • the intra predictor 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 encoder.
  • the intra predictor 235 may include an adaptive intra smoothing (AIS) filter, a reference pixel interpolator, and a DC filter.
  • the AIS filter is a part of filtering the reference pixel of the current block and determines 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 the AIS filter information of the prediction unit provided by the image encoder. If the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.
  • the reference pixel interpolator may generate a reference pixel having an integer value or less by interpolating the reference pixel. If the prediction mode of the current prediction unit is a prediction mode for generating 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.
  • Information about whether a deblocking filter is applied to a corresponding block or picture, and when the deblocking filter is applied to the corresponding block or picture, may be provided with information about whether a strong filter or a weak filter is applied.
  • the deblocking filter related information provided by the image encoder may be provided and the deblocking filtering of the corresponding block may be performed in the image decoder.
  • the offset correction unit may perform offset correction on the reconstructed image based on the type of offset correction and offset value information applied to the image during encoding.
  • the ALF may be applied to a coding unit based on ALF application information, ALF coefficient information, and the like provided from the encoder. Such ALF information may be provided included in a specific parameter set.
  • the memory 245 may store the reconstructed picture or block to use as a reference picture or reference block, and may provide the reconstructed picture to the output unit.
  • a coding unit is used as a coding unit for convenience of description, but may also be a unit for performing decoding as well as encoding.
  • 3A is a diagram illustrating a structure in which a basic block of an input image is divided into a plurality of subblocks using a quad tree structure according to an embodiment of the present invention.
  • FIG. 3B is a diagram exemplarily illustrating a structure in which a basic block of an input image is divided into a plurality of sub blocks using a quad tree structure and / or a binary tree structure.
  • the input image to be encoded may be divided and encoded in basic block units in order to encode efficiently.
  • the basic block of the present invention may be defined as a largest coding unit (Largest Coding Unit, LCU) or coding tree unit (CTU).
  • LCU Large Coding Unit
  • CTU coding tree unit
  • the basic blocks may have a shape of a constant rectangle or square of MxN size.
  • M and N may be an integer having a value of 2 n (n is an integer greater than 1), M is the width of the block, N is the length of the block.
  • the LCU or CTU may have a square size such as 64x64, 128x128.
  • the homogeneous region means a case where there is no change between the luminance and / or color difference values of a sample included in the region, or the change is less than or equal to a predetermined threshold. That is, the homogeneous region is composed of samples having homogeneous sample values, and the homogeneity may be determined according to predetermined criteria.
  • a binary tree structure a quad tree structure, a triple tree structure, an octree tree structure, and / or a general N-ary tree Structure
  • 3A illustrates an example of splitting a basic block into a plurality of subblocks using only a quad tree structure.
  • the quad tree structure divides a block to be divided into four blocks having the same block size.
  • the divided four blocks can be further divided according to the quad tree structure.
  • 3B illustrates an example of dividing a basic block into a plurality of subblocks using a quad tree structure and / or a binary tree structure.
  • the alphabet displayed in each of the divided sub-blocks is an index for indicating homogeneity.
  • the subblocks in which the letter a is indicated all represent regions with the same homogeneity.
  • reference numerals indicated inside the blocks indicate the corresponding blocks
  • reference numerals indicated on the boundary of the blocks indicate the blocks divided by the boundary.
  • the basic block may be divided into a plurality of sub blocks.
  • a sub block that is no longer divided may be determined by a coding unit (coding unit).
  • the coding unit may be a coding unit such as prediction, transformation, and / or quantization.
  • the coding unit may be divided again to perform prediction, transformation, and / or quantization.
  • partitioning according to a quad tree structure, partitioning according to a binary tree structure, or asymmetrical partitioning may be performed, and various types of partitioning that are not square or rectangular may be considered.
  • a division method that may be used for the prediction may be similarly applied.
  • information indicating whether to use a quad tree structure and / or a binary tree structure may be signaled through a bitstream.
  • Information about the partition structure of the basic block of the input image may be signaled in, for example, a sequence unit, a picture unit, a slice unit, a tile unit, and / or a basic block unit.
  • the information when the information is signaled on a picture basis, it may indicate whether to use both the quad tree structure and the binary tree structure or only the quad tree structure for all basic blocks or some basic blocks included in the picture. . If it is determined that only the quad tree structure is used, the block partition information of the basic block may include partition information according to the quad tree structure and may not include partition information according to the binary tree structure.
  • the quad tree structure divides a block to be divided into four blocks having the same block size.
  • the binary tree structure divides a block to be split into two blocks having the same size.
  • the basic block 300 may be divided into four sub blocks using a quad tree structure.
  • the depth of each block may be determined based on the depth on the tree structure.
  • the basic block 300 corresponds to a block having a depth of zero on the tree structure.
  • the sub block obtained by dividing the basic block 300 corresponds to a block having a depth of one.
  • the divided block may be determined as a coding unit when it is determined that the divided block can no longer be divided or is a homogeneous area that does not need to be divided.
  • the blocks can be divided into homogeneous regions with various sizes.
  • the coding unit may be subdivided for prediction, transformation, and / or quantization. However, by dividing by the method illustrated in FIG. 3B, the coding unit may be determined as a homogeneous region having a very high accuracy. Therefore, for prediction, transformation, and / or quantization, the coding unit may not be split again. That is, the coding unit itself may be a prediction unit that is a unit of prediction and / or a transform unit that is a unit of transformation. Since the coding unit can be used as it is as a prediction unit and / or transform unit, it is possible to save the cost of splitting the coding unit back to the prediction unit and / or transform unit.
  • a basic block may be divided into a plurality of coding units using a quad tree structure and / or a binary tree structure.
  • the quad tree structure and the binary tree structure may be appropriately selected and used as needed regardless of the order.
  • the quad tree structure may be used as the main partition structure, and the binary tree structure may be used as the sub partition structure.
  • the binary tree structure may be used as the main partition structure, and the quad tree structure may be used as the sub partition structure.
  • the decoder may decode block division information of the basic block based on information transmitted and included in the bitstream or information derived by decoding the bitstream, and then decode the basic block based on the block partition information.
  • the end node may be a performance unit of prediction, transformation, and / or quantization, and may correspond to, for example, a coding unit (CU) as defined herein.
  • the coding unit corresponding to the end node may have a size of 2 n x2 n , 2 n x2 m or 2nx2m (n, m is an integer greater than 1).
  • the tree structure used for dividing the block according to the present invention is not limited to the quad tree, binary tree and / or triple tree, and as described above, it can be widely applied to dividing the block using the n-ary tree structure. have.
  • FIG. 4 is a diagram illustrating a structure in which a block included in an input image is divided into a plurality of subblocks using a quad tree structure according to an embodiment of the present invention.
  • the current block When the current block is divided using the quad tree structure, the current block may be divided into four sub blocks.
  • four sub blocks may be generated by dividing a current block by using two intersecting lines.
  • This form of partitioning may be defined herein as "QT intersection".
  • QT may mean a quad tree.
  • the lengths of the horizontal and vertical lengths of the divided subblocks may correspond to half of the blocks before the division.
  • four sub blocks may be generated by dividing the current block using three horizontal lines. This form of division may be defined herein as "QT horizontal".
  • the horizontal length of the divided sub-blocks may be the same as the pre-division block, and the vertical length may correspond to 1/4 of the pre-division block.
  • four sub blocks may be generated by dividing the current block using three vertical lines. This form of division may be defined herein as "QT vertical".
  • QT vertical This form of division
  • the vertical length of the divided subblock may be the same as the pre-division block, and the horizontal length may correspond to 1/4 of the pre-division block.
  • Block division using the quad tree structure is not limited to FIGS. 4A to 4C, and various ratios may be defined and used. For example, it is also possible to divide a block in a ratio of 1: 1: 1: 2, 1: 2: 2: 4, and the like. That is, partitioning a block using a quad tree structure may include all types of partitioning a target block into four sub-blocks at an arbitrary ratio.
  • FIG. 5 is a diagram illustrating a structure in which a block included in an input image is divided into a plurality of subblocks using a binary tree structure according to an embodiment of the present invention.
  • the current block When dividing a current block using a binary tree structure, the current block may be divided into two sub-blocks.
  • two sub blocks may be generated by dividing a current block at a ratio of 1: 3 using a vertical line.
  • This form of division may be defined herein as "BT vertical 1: 3".
  • BT may mean a binary tree.
  • the longitudinal length of the divided two sub-blocks is the same as that of the pre-division block, and the ratio of the horizontal lengths of the divided two sub-blocks corresponds to 1: 3.
  • two sub blocks may be generated by dividing the current block at a ratio of 1: 1 using a vertical line.
  • This form of division may be defined herein as "BT vertical 1: 1".
  • the longitudinal length of the divided two sub-blocks is the same as that of the pre-division block, and the ratio of the horizontal lengths of the divided two sub-blocks corresponds to 1: 1.
  • two sub blocks may be generated by dividing the current block by using a vertical line at a ratio of 3: 1.
  • This form of division may be defined herein as "BT vertical 3: 1".
  • the longitudinal length of the divided two sub-blocks is the same as that of the pre-division block, and the ratio of the horizontal lengths of the divided two sub-blocks corresponds to 3: 1.
  • two sub blocks may be generated by dividing the current block at a ratio of 1: 3 using a horizontal line.
  • This form of division may be defined herein as "BT horizontal 1: 3".
  • the horizontal length of the divided two sub blocks is the same as that of the pre-divided block, and the ratio of the vertical lengths of the divided two sub blocks corresponds to 1: 3.
  • two sub blocks may be generated by dividing the current block at a ratio of 1: 1 using a horizontal line.
  • This form of division may be defined herein as "BT horizontal 1: 1".
  • the horizontal length of the divided two sub-blocks is the same as that of the pre-division block, and the ratio of the vertical lengths of the divided two sub-blocks corresponds to 1: 1.
  • two sub blocks may be generated by dividing the current block at a ratio of 3: 1 using a horizontal line.
  • This form of division may be defined herein as "BT horizontal 3: 1".
  • the horizontal length of the divided two sub blocks is the same as that of the pre-dividing block, and the ratio of the vertical lengths of the divided two sub blocks corresponds to 3: 1.
  • the division of the block using the binary tree structure is not limited to FIGS. 5A to 5F, and various ratios can be defined and used. For example, it is also possible to divide a block in a ratio of 1: 2, 1: 4, 1: 5, and the like. That is, the division of a block using a binary tree structure may include all forms of dividing a target block into two sub blocks at an arbitrary ratio.
  • FIG. 6 is a diagram illustrating a structure in which a block included in an input image is divided into a plurality of sub-blocks using a triple tree structure according to an embodiment of the present invention.
  • the current block When the current block is divided using the triple tree structure, the current block may be divided into three sub blocks.
  • three sub blocks may be generated by dividing a current block at a ratio of 1: 1: 2 using two vertical lines.
  • This form of division may be defined herein as "TT vertical 1: 1: 2".
  • TT may mean a triple tree.
  • the longitudinal length of the divided three sub-blocks is the same as that of the pre-division block, and the ratio of the horizontal lengths of the divided three sub-blocks corresponds to 1: 1: 2.
  • three sub blocks may be generated by dividing the current block at a ratio of 1: 2: 1 using two vertical lines. This form of division may be defined herein as "TT vertical 1: 2: 1".
  • the longitudinal length of the divided three sub-blocks is the same as that of the pre-division block, and the ratio of the horizontal lengths of the divided three sub-blocks corresponds to 1: 2: 1.
  • three sub-blocks may be generated by dividing the current block at a ratio of 2: 1: 1 using two vertical lines. This form of division may be defined herein as "TT vertical 2: 1: 1".
  • the longitudinal length of the divided three sub-blocks is the same as that of the pre-division block, and the ratio of the horizontal lengths of the divided three sub-blocks corresponds to 2: 1: 1.
  • three sub blocks may be generated by dividing the current block at a ratio of 1: 1: 2 using two horizontal lines. This form of division may be defined herein as "TT horizontal 1: 1: 2".
  • the horizontal length of the divided three sub-blocks is the same as that of the pre-division block, and the ratio of the vertical lengths of the divided three sub-blocks corresponds to 1: 1: 2.
  • three sub-blocks may be generated by dividing the current block using a ratio of 1: 2: 1 using two horizontal lines. This form of division may be defined herein as "TT horizontal 1: 2: 1".
  • the horizontal length of the divided three sub-blocks is the same as that of the pre-division block, and the ratio of the vertical lengths of the divided three sub-blocks corresponds to 1: 2: 1.
  • three sub-blocks may be generated by dividing the current block at a ratio of 2: 1: 1 using two horizontal lines. This form of division may be defined herein as "TT horizontal 2: 1: 1".
  • the horizontal length of the divided three sub-blocks is the same as that of the pre-division block, and the ratio of the vertical lengths of the divided three sub-blocks corresponds to 2: 1: 1.
  • the division of the block using the triple tree structure is not limited to Figs. 6 (a) to 6 (f), and various ratios can be defined and used. For example, it is also possible to divide a block in a ratio of 1: 2: 2, 1: 2: 4, 1: 2: 5, and the like. That is, partitioning a block using a triple tree structure may include all types of partitioning a target block into three sub-blocks at an arbitrary ratio.
  • one block may be divided into a plurality of sub blocks according to a quad tree structure, a binary tree structure, and / or a triple tree structure. Furthermore, the division according to the quad tree structure, binary tree structure and / or triple tree structure may be performed recursively or hierarchically for each of the plurality of sub blocks obtained by the division.
  • a block division using QT may have three partition types.
  • the division of blocks using BT or TT may have six division forms. Therefore, the block dividing information is required to include information (tree structure information) indicating the tree structure used for dividing the current block.
  • the block partitioning information is required to include information (divided form information) for indicating one divided form among a plurality of divided forms according to the selected tree structure.
  • the number of bits required for encoding the tree structure information may be determined based on the number of tree structures that may be used for dividing the block.
  • the number of bits required for encoding the partition type information may be determined based on the number of partition types included in one tree structure.
  • the type of tree structure that can be used to divide a block can be predetermined in the encoder and the decoder. Alternatively, the type of tree structure that can be used to divide the block may be encoded by the encoder and transmitted to the decoder through a bitstream. The information about the type of the tree structure may be encoded and transmitted in at least one of a sequence level, a picture level, a slice level, a tile level, and a basic block level. For example, when a block is divided using only QT for a certain slice, information indicating that the QT is used for dividing the block may be signaled through a header of the slice.
  • the encoder and the decoder predetermine the partition structure used by default, it may signal which tree structure is used at the corresponding level without transmitting corresponding information.
  • the type of tree structure that can be used at a lower level may be limited to some or all of the types of tree structure that can be used at a higher level.
  • TT may be determined not to be used.
  • information on a tree structure that can be used for block division is not transmitted, information signaled at a higher level may be inherited as it is.
  • Information signaled herein may include information signaled implicitly as well as information signaled explicitly through a bitstream.
  • a tree structure or a combination of a plurality of tree structures that can be used for the current level when a tree structure or a combination of a plurality of tree structures that can be used for the current level is selected, corresponding information may be signaled. Blocks included in the current level can be partitioned using one of the tree structures that can be used. When there are three tree structures that can be used at the current level, at least two bits may be required for encoding the tree structure information.
  • the tree structure information indicating division by QT may be represented by 1 bit.
  • the tree structure information indicating the division by one of BT and TT may be represented by 2 bits.
  • partition type information for specifying one of the six partition types may be needed.
  • the number of bits required for encoding the partition type information may be determined in consideration of 6 available partition types. For example, through calculation of ceil (log 2 (6)), it is possible to determine the required number of bits to 3 bits. In this case, ceil () means a rounding function.
  • the tree structure used for dividing the block is determined, it is not necessary to use all the partition types included in the dividing by the tree structure. For example, only some of the six divided forms of FIG. 6 may be used. In this case, the number of bits required for encoding the divided form information may be reduced.
  • Information indicating which division type to use among division types included in the division by the tree structure may be encoded and transmitted at least one of a sequence level, a picture level, a slice level, a tile level, and a basic block level.
  • FIGS. 4 to 6 some forms of partitioning can be derived from other forms of partitioning.
  • the divided form of FIG. 5 (d) can be obtained by merging the following three blocks in the divided form of FIG. 4 (b). Therefore, not all division forms shown in FIGS. 4 to 6 may be used.
  • the tree structure information and the partition type information which tree structure is used for at least one of the corresponding sequence, picture, slice, tile, basic block and / or which partition type among the plurality of partition types is used or Can be decrypted
  • an application order may be determined in advance between tree structures.
  • the order between the tree structures may be predetermined in the encoder / decoder, or may be encoded and transmitted in at least one of a sequence level, a picture level, a slice level, a tile level, and a basic block level.
  • the division according to QT may be a main division, and the division according to BT / TT may be a subdivision.
  • the division according to the QT is preferentially performed, and the division according to the BT / TT may be further performed for the leaf node of the QT in which the division according to the QT is no longer performed.
  • the number of bits necessary for encoding the above-described tree structure information and / or division type information can be further reduced.
  • the subdivision structure may be divided without using a special order.
  • the blocks may be divided by reordering the plurality of subdivided structures.
  • a hierarchical structure may be used in which QT is used as the main partitioning structure, a leaf node of QT is partitioned using BT, and a leaf node of BT is partitioned using TT.
  • the number of bits required to represent the tree structure information and / or the split type information may be different.
  • the information on which tree structure among the plurality of tree structures is to be used as the main partition structure and whether there is a predetermined order of use between the plurality of sub partition structures is determined in the encoder / decoder, or the sequence level, picture level, At least one of a slice level, a tile level, and a basic block level may be encoded and transmitted.
  • FIG. 7 (a) illustrates that a block included in an input image is divided into a plurality of subblocks using QT cross division as a main division structure and BT vertical 1: 1 and / or BT horizontal 1: 1 division as a sub division structure. It is a figure which shows a structure illustratively.
  • reference numerals indicated inside the blocks indicate the corresponding blocks, and reference numerals indicated on the boundary of the blocks indicate the blocks divided by the boundary.
  • FIG. 7B is a diagram illustrating block partitioning information for the block partitioning structure illustrated in FIG. 7A using a tree structure according to an embodiment of the present invention.
  • the block splitting information may include tree structure information and / or splitting type information.
  • FIG. 7C is a diagram exemplarily illustrating block partitioning information of the block partitioning structure illustrated in FIG. 7A using a tree structure according to another embodiment of the present invention.
  • the block splitting information may include tree structure information and / or splitting type information.
  • Figs. 7 (a), (b) and (c) the division of the block according to the QT cross division is indicated by a solid line, and the division of the block according to the BT vertical 1: 1 and / or BT horizontal 1: 1 division is a dotted line. To be displayed.
  • the depth of each block may mean a depth of each block on the tree structure by partitioning according to the tree structure.
  • Sub-blocks in which splitting according to QT cross splitting is no longer performed correspond to end nodes of a quad tree structure.
  • the end node of the quad tree can be the root node of the binary tree.
  • splitting according to a binary tree structure (BT vertical 1: 1 and / or BT horizontal 1: 1 splitting) may be performed.
  • partitioning according to a binary tree structure may not be performed. If splitting according to a binary tree structure is not performed for the end nodes of the quad tree, the corresponding end nodes may be determined in coding units.
  • partitioning according to a binary tree structure may be further performed for end nodes of the quad tree. That is, the end node of the quad tree may be the root node of the binary tree.
  • the quad tree structure (QT cross division) is used as the main division structure, and the binary tree structure (BT vertical 1: 1 division and / or BT horizontal 1: 1 division) is used as the sub division structure.
  • the basic block 700 may be determined as the root node of the quad tree.
  • the root node of the quad tree can be partitioned using the quad tree structure recursively or hierarchically until it reaches the end node of the quad tree.
  • the end node of the quad tree can be the root node of the binary tree.
  • the root node of the binary tree can split the binary tree structure recursively or hierarchically until it reaches the end node of the binary tree.
  • the current block may be determined as a coding unit.
  • FIG. 7B is a diagram illustrating block partitioning information for encoding / decoding a block partitioning structure shown in FIG. 7A according to an embodiment of the present invention.
  • the block splitting information may be composed of a combination of tree structure information and / or splitting type information.
  • reference numerals in parentheses denote reference numerals of the blocks shown in Fig. 7 (a), and information indicated by 0 and / or 1 indicates block division for the corresponding block. An example of information is shown.
  • Quad division information may be encoded to a first bit length.
  • the first bit length may be 1 bit.
  • quad split information of the current block may be encoded as “1”. If the current block is not divided according to the quad tree structure, quad split information may be encoded as “0”. That is, whether or not the current block is divided according to the quad tree structure may be encoded by 1 bit quad division information.
  • the binary partitioning information may include at least one of information indicating whether a block is partitioned according to a binary tree structure and information about a partitioning direction according to a binary tree structure.
  • the binary division information may be encoded to a second bit length.
  • the second bit length may be one bit or two bits.
  • two bits of binary split information may be used as described below.
  • the first bit of the two bits of binary division information may be encoded as “1”.
  • the block division type according to the binary tree structure includes BT vertical 1: 1 division and BT horizontal 1: 1 division. Therefore, information about the division direction (or division form) can be additionally encoded. That is, when the division according to the binary tree structure is BT horizontal 1: 1 division, the second bit of the 2-bit binary division information may be encoded as “0”. When the division according to the binary tree structure is BT vertical 1: 1 division, the second bit of the 2-bit binary division information may be encoded as “1”. When splitting according to a binary tree structure is not performed for the current block, the second bit of the 2-bit binary splitting information may not be used.
  • the first bit length and the second bit length may be equal to each other, but are not limited to the above embodiment.
  • the meaning of the bit value of each of the quad partition information and the binary partition information may be defined in reverse. For example, “0" may be used for the first bit of quad division information and / or binary division information to indicate that division according to the corresponding structure is performed, and "1" may indicate that no division is performed.
  • the case where the second bit of the binary division information is “0” may be defined as the vertical division and the case where “1” is the horizontal division.
  • the block division information of the current block may be encoded as shown in Table 1 below by using the quad division information of the first bit length and the binary division information of the second bit length together.
  • quad division information may be “0” or “1”, and binary division information may be encoded as “0”, “10” or “11”.
  • the block splitting information is information indicating whether a block is split, split type (or tree structure information), and splitting direction (or splitting type information), and information about a combination of quad splitting information and binary splitting information or a combination of quad splitting information and binary splitting information. It may mean information.
  • the first bit of quad segmentation information and / or binary segmentation information may correspond to the tree structure information described above.
  • the second bit of the binary partition information may correspond to the partition type information described above.
  • the shape according to the quad tree split since the shape according to the quad tree split includes only the QT cross split, no separate split type information may be needed.
  • the shape according to the binary tree split since the shape according to the binary tree split includes two types of BT vertical 1: 1 and BT horizontal 1: 1 split, split shape information for identifying the split tree may be required.
  • the split type information may have, for example, one bit length.
  • the block partition information “00” means that partitioning according to a quad tree structure and partitioning according to a binary tree structure are not performed for the current block.
  • the block division information “1” means that division according to the quad tree structure is performed on the current block.
  • the quad tree structure when the quad tree structure is used as the main partition structure and the binary tree structure is used as the sub partition structure, once the partition according to the binary tree structure is performed on the blocks divided according to the quad tree structure, the quad tree is again performed. Partitioning according to the structure is not performed. Accordingly, it may not be necessary to encode / decode quad split information indicating whether splitting according to a quad tree structure is performed for a block obtained by splitting according to a binary tree structure.
  • the block partitioning information of the block obtained by partitioning according to the binary tree structure may include only binary partitioning information.
  • the block partition information "0" means that partitioning according to a binary tree structure is no longer performed on the current block obtained by partitioning according to a binary tree structure.
  • FIG. 7B is a diagram illustrating block partitioning information of the block partitioning structure illustrated in FIG. 7A in a tree structure by using the block partitioning information encoding method of Table 1 above.
  • the depth of the tree structure corresponds to the depth of the block division structure of Fig. 7A.
  • the information shown in each node of FIG. 7B means block division information of a block corresponding to the node.
  • “1” indicated at the root node of FIG. 7B is block partitioning information of a block corresponding to the node, that is, the basic block 700 of FIG. 7A, and the basic block 700 has a quad tree structure.
  • QT is divided into four sub-blocks.
  • the block division information may be encoded as information in the form of combining or combining quad division information and binary division information.
  • quad split information and binary split information may be encoded as separate syntax elements.
  • information indicating whether a block is divided according to the binary tree structure included in the binary split information and information about the split direction according to the binary tree structure may be encoded as separate syntax elements, respectively.
  • the information indicating whether the partition has the quad tree structure or the partition having the binary tree structure may be encoded by one syntax element, and when the partition has the binary tree structure, the partition type information may be encoded by another syntax element.
  • FIG. 7C is a diagram illustrating block division information for encoding the block division structure shown in FIG. 7A according to another embodiment of the present invention.
  • one bit may be required for quad division information and two bits may be needed for binary division information. That is, since information about the partition type is additionally needed to signal the binary partition information, the binary partition information may require more bits than the quad partition information.
  • the partitioning scheme to be applied to the current block is a partitioned or binary tree structure according to a quadtree structure. Can be encoded according to the partition.
  • the block partition information "0" means that the partition according to the quad tree structure and the partition according to the binary tree structure are not performed for the current block. That is, the current block is a block that is not divided.
  • the block division information “1” means that division according to the quad tree structure is performed on the current block.
  • the block partition information “10” means that the partition according to the binary tree structure for the current block is a BT horizontal 1: 1 partition.
  • the block partition information “11” means that the partition according to the binary tree structure for the current block is a BT vertical 1: 1 partition.
  • tree structure information is based on the number of bits of the block partitioning information (in the embodiment shown in FIG. 7, information indicating which tree structure of the quad tree structure or binary tree structure is used). Signaling The case of 1 bit indicates that division according to whether a block is divided and / or a quad tree structure is performed. The case of 2 bits indicates that partitioning according to a binary tree structure is performed. Therefore, it is possible to code the block partition information with fewer bits than the block partition information encoding method of Table 1.
  • FIG. 7 (c) is a diagram illustrating block division information on the block division structure shown in FIG. 7 (a) using a block division information encoding method of Table 2 in a tree structure.
  • 7 (b) and 7 (c) have the same tree structure except that different block division information encoding methods of Table 1 and Table 2 are used, respectively. Therefore, in the description of FIG. 7B, some, in particular, descriptions of the arrangement order of the child nodes may be equally applicable to FIG. 7C.
  • the encoding method of the block division information is not limited to the method shown in Table 1 and Table 2, for example, it is possible to use the method of Table 1 and / or Table 2 in mixture, or to omit a part.
  • the block partitioning information includes information about whether the current block is divided, whether the partition applied to the current block is a quad tree partition or a binary tree partition, and / or when a binary tree partition is applied, for example, BT vertical 1: It means all types of information that can indicate whether 1 division or BT horizontal 1: 1 division.
  • FIG. 8 illustrates a divided sub-block when a basic block of an input image is divided into a plurality of sub-blocks according to a quad tree structure and / or a binary tree structure (BT vertical 1: 1 division and / or BT horizontal 1: 1 division). Exemplary sizes and shapes of blocks that a block may take.
  • the size of the coding unit is too small, the efficiency of coding (prediction, transformation, and / or quantization) may decrease.
  • the amount of data to be transmitted may increase according to encoding of the block partition information.
  • the predetermined value can be set to any size, such as 4, 8, 16.
  • the predetermined value may be signaled through a bitstream.
  • the predetermined value may be adaptively signaled in a sequence unit, picture unit, slice unit, tile unit, or basic block unit. Alternatively, the predetermined value may be set to a value previously promised by the encoder and the decoder.
  • the division according to the binary tree structure may be performed in only one direction.
  • the horizontal length of the block corresponds to a size that can no longer be divided below a predetermined value, but when the vertical length of the block exceeds a predetermined value, it may be determined that only binary tree splitting in the horizontal direction is possible. More specifically, in the case where the minimum length of division to the block is 4 is 4x32, 4x16, 4x8 block shown in Figure 6 can be treated as the partition based on the binary tree structure is possible only BT horizontal 1: 1 division. have.
  • the block division information since the division according to the binary tree structure is possible only for BT horizontal 1: 1 division from the sizes of 4x32, 4x16, and 4x8 blocks, the block division information may be encoded as “10” or “1”. When no longer split, the block splitting information may be encoded as “0”.
  • the division according to the binary tree structure can be treated as only BT vertical 1: 1 division. In this case, since it can be seen that only the BT vertical 1: 1 division is possible based on the binary tree structure from the sizes of 32x4, 16x4, and 8x4 blocks, the block division information may be encoded as “11” or “1”. When no longer split, the block splitting information may be encoded as “0”.
  • the block division is performed recursively or hierarchically to reach a predetermined depth, it may be set to no longer divide.
  • the setting and encoding method of the minimum size of the block capable of dividing the block may be applied to the setting and encoding method of the predetermined depth.
  • FIG. 9 (a) shows the QT cross division as the main division structure, BT vertical 1: 1, BT horizontal 1: 1, TT horizontal 1: 2: 1 and / or TT vertical 1: 2: 1 division as the sub division structure.
  • FIG. 3 is a diagram illustrating a structure in which a block included in an input image is divided into a plurality of sub blocks.
  • reference numerals indicated inside the block indicate the corresponding block
  • reference numerals indicated on the boundary of the block indicate the block divided by the boundary.
  • FIG. 9B is a diagram illustrating block partitioning information for the block partitioning structure illustrated in FIG. 9A using a tree structure according to an embodiment of the present invention.
  • the block splitting information may include tree structure information and / or splitting type information.
  • the depth of each block may mean a depth of each block on the tree structure by partitioning according to the tree structure.
  • Subblocks in which splitting according to QT cross splitting is no longer performed correspond to end nodes of the quad tree.
  • the end node of the quad tree may be the root node of the binary tree and / or triple tree.
  • split according to the binary tree structure (BT vertical 1: 1 and / or BT horizontal 1: 1 split) and / or split according to the triple tree structure (TT horizontal 1: 2: 1 and / or TT vertical 1: 2: 1 division) may be performed.
  • splitting according to a binary tree structure and / or a triple tree structure may not be performed. If splitting according to a binary tree structure and a triple tree structure is not performed for an end node of the quad tree, the corresponding end node may be determined in coding units.
  • splitting according to a binary tree structure and / or a triple tree structure may be further performed for the end node of the quad tree structure. That is, the end node of the quad tree may be the root node of the binary tree and / or triple tree.
  • QT cross division may be performed.
  • BT division and / or TT division may be performed on block 901-3 of the four sub-blocks.
  • Horizontal 1: 2: 1 division may be performed.
  • a block may be split hierarchically and / or recursively in the same manner as described above, and a sub block corresponding to a leaf node that is no longer split may be determined as a coding unit.
  • Whether to split the block may be determined by the encoder.
  • the encoder may determine whether to split the block in consideration of the characteristics of the image, the homogeneous region, the complexity of the encoder and / or the decoder, and / or the bit requirements required for signaling the block partition information. Alternatively, as described above, the minimum block size that is no longer divided may be predetermined or signaled.
  • the quad tree structure (QT cross division) is the main partition structure, and the binary tree structure and / or the triple tree structure (BT vertical 1: 1, BT horizontal 1: 1, TT horizontal 1: Base block 900 may be partitioned using a 2: 1 and / or TT vertical 1: 2: 1 division) as a subdivision structure.
  • the basic block 900 may be determined as the root node of the quad tree.
  • the root node of the quad tree can be partitioned using the quad tree recursively or hierarchically until it reaches an end node of the quad tree.
  • the end node of the quad tree may be the root node of the binary tree and / or triple tree.
  • the root node of the binary tree and / or triple tree may split using the binary tree structure and / or triple tree structure recursively or hierarchically until it reaches the end node.
  • the current block may be determined as a coding unit.
  • FIG. 9B is a diagram illustrating block partitioning information for encoding / decoding a block partitioning structure shown in FIG. 9A according to an embodiment of the present invention.
  • the block splitting information may be composed of a combination of tree structure information and / or splitting type information.
  • reference numerals in parentheses denote reference numerals of the blocks shown in Fig. 9 (a), and information indicated by 0 and / or 1 indicates an example of block division information for the block.
  • main partition information information indicating whether a block has a quadtree structure is referred to as “main partition information”.
  • the main split information may be encoded to a third bit length.
  • the third bit length may be 1 bit.
  • main partition information of the current block may be encoded as “1”. If the current block is not divided according to the quad tree structure, the main partitioning information may be encoded as “0”. That is, whether or not the current block is divided according to the quad tree structure may be encoded with 1 bit of main partition information.
  • block partitioning information having a binary tree structure and / or a triple tree structure is referred to as “subpartition information”.
  • the subdivision information includes information indicating whether subdivision using a binary tree structure and / or a triple tree structure is performed, information indicating whether a tree structure of a binary tree structure and a triple tree structure is used (tree structure information), and each tree structure. It may include at least one of the partition type information indicating one block partition form of one or more block partitions according to.
  • the subdivision information may be encoded to a fourth bit length.
  • the fourth bit length may be 1 bit, 2 bits or 3 bits.
  • the current block is divided into subtree structures (BT vertical 1: 1, BT horizontal 1: 1, TT horizontal 1: 2: 1 and / or TT vertical 1: 2: 1 split) according to binary tree structure and / or triple tree structure.
  • the subdivision information may include information indicating that subdivision is performed, information indicating a tree structure (binary tree or triple tree) used for subdivision, and / or information indicating a division type, respectively.
  • the information of may be represented by 1 bit.
  • the subdivision information may be represented by only 1 bit, and information about the tree structure and the division type used for the subdivision does not need to be transmitted.
  • BT vertical 1: 1, BT horizontal 1: 1, TT horizontal 1: 2: 1 and / or TT vertical 1: 2: 1 division used for subdivision.
  • the information about the tree structure and the split form can be encoded into one syntax element.
  • the block division information of the current block may be encoded as shown in Tables 3 and 4 below by using the main division information of the third bit length and the sub division information of the fourth bit length together.
  • Table 3 shows block partitioning information that a block included in the main partitioning structure may have.
  • Table 4 shows block partitioning information that a block included in a subdivision structure may have. Blocks that may be included in the main partition structure and the sub-division structure at the same time may have the block partition information of Table 3.
  • the block division information of the block on which the main division is performed may be represented by "1".
  • the block partition information of the block in which the main partition is not performed may indicate information indicating whether the main partition is performed as "0".
  • Information indicating whether the main partition is performed may be represented by, for example, the first bit of the block partition information.
  • the block division information of the block on which the main division is not performed may further include information indicating whether sub division is performed. For example, in the embodiment shown in Table 3, it is shown whether or not subdivision is performed using the second bit of the block division information. However, the embodiment shown in Table 3 is only one embodiment that the present invention covers, but is not limited thereto.
  • the block division information of the block in which the sub division is performed may include information indicating whether the main division is performed and information indicating whether the sub division is performed. For example, in the embodiment shown in Table 3, this is illustrated using the first two bits of the block partitioning information. That is, by setting the first two bits of the block division information to "01", it may represent that the sub division is performed without performing the main division for the corresponding block.
  • the embodiment shown in Table 3 is only one embodiment that the present invention covers, but is not limited thereto.
  • the third bit of block division information may be set to "0", and in the case of vertical division, the third bit of block division information may be set to "1".
  • the embodiment shown in Table 3 is only one embodiment that the present invention covers, but is not limited thereto.
  • information for specifying whether a BT division or a TT division is required which may be represented by a fourth bit in the embodiment of Table 3.
  • the fourth bit of the block partition information may be set to "0"
  • the fourth bit of the block partition information may be set to "1".
  • the division type used for the subdivision is BT vertical 1: 1, BT horizontal 1: 1, TT horizontal 1: 2: 1 and / or TT vertical 1: 2: 1. Since there are four types of partitions, the tree structure and partition type can be specified by 2 bits calculated by ceil (log 2 (4)). That is, even in this case, it can be seen that 2 bits are required to specify one tree structure and partition type, and the information allocated for each block partition type is the third and fourth of the block partition information shown in Table 3. It may correspond to a bit.
  • the block partitioning information according to the present invention may include information indicating whether a main partition is present, information indicating whether or not a subdivision is performed, information for specifying one of a plurality of subdivision structures, and / or information for specifying one of a plurality of division types. It is enough to include. Accordingly, the order in which the information appears in the bitstream or the order in which the information appears in or derived from the bitstream is not limited to the embodiment described with reference to Table 3. For example, the positions of the information for specifying one of the plurality of subdivision structures and the information for specifying one of the plurality of division forms may be changed.
  • the present invention is not limited to a case where division is performed by "1" and a case where division is not performed by "0", and these bit values may be allocated in reverse.
  • the present invention is not limited to the case where the vertical division is represented by "1" and the horizontal division is represented by "0", and these bit values can be allocated in reverse.
  • the division forms of BT and TT are limited to two, but the division forms of BT and / or TT are a part of various division forms described with reference to FIGS. 5 and / or 6. Or all of them.
  • the division type information may be represented by two or more bits.
  • Table 4 shows an example of block partitioning information that a block included in a subdivision structure can have. Since the main division (QT cross division) is not performed on the blocks included in the subdivision structure, information indicating whether to perform division according to the main division structure may not be included in the block division information. Therefore, in the block partitioning information (block partitioning information in Table 3) that a block included in the main partitioning structure may have, a block included in the sub partitioning structure may have remaining bits except for the bit where the first bit is "0". Block partitioning information (block partitioning information of Table 4).
  • the block partition information shown in Table 4 is only an embodiment of the block partition information according to the present invention, and various embodiments described with reference to Table 3 may be equally applied to Table 4.
  • each of the subblocks that are no longer divided may be determined as coding units.
  • the size and shape of each subblock determined in coding units may be square or rectangular with a size of 2 n x 2 m , as shown in FIG. 8.
  • FIG. 1 is a diagram illustrating a structure in which a block included in an input image is divided into a plurality of sub blocks using: 1 division as a subdivision structure.
  • reference numerals indicated inside the block indicate the corresponding block
  • reference numerals indicated on the boundary of the block indicate the block divided by the boundary.
  • FIG. 10B is a diagram illustrating block division information for the block division structure illustrated in FIG. 10A using a tree structure, according to an embodiment of the present invention.
  • the block splitting information may include tree structure information and / or splitting type information.
  • the division of the block according to the QT cross division is indicated by a solid line, BT vertical 1: 1, BT horizontal 1: 1, BT horizontal 1: 3, BT horizontal 3: 1, BT
  • the division of the block according to the vertical 1: 3 and / or BT vertical 3: 1 division is indicated by the dotted line.
  • the embodiment shown in FIG. 10 is the embodiment shown in FIG. 7 except that BT horizontal 1: 3, BT horizontal 3: 1, BT vertical 1: 3 and / or BT vertical 3: 1 divisions are added in FIG. Same as the example.
  • the embodiment shown in FIG. 10 has the exception that BT horizontal 1: 3, BT horizontal 3: 1, BT vertical 1: 3 and / or BT vertical 3: 1 division are added in place of TT division in FIG. 9. It is the same as the embodiment shown in FIG. Therefore, as a description of FIG. 10, a description of parts that can be obviously understood from the description of FIGS. 7 and 9 will be omitted.
  • main partition information may be encoded to a fifth bit length.
  • the fifth bit length may be 1 bit.
  • main partition information of the current block may be encoded as “1”. If the current block is not divided according to the quad tree structure, the main partitioning information may be encoded as “0”. That is, whether or not the current block is divided according to the quad tree structure may be encoded with 1 bit of main partition information.
  • the partition information is called "subdivision information.”
  • the subdivision information is information indicating whether subdivision is performed, BT vertical 1: 1, BT horizontal 1: 1, BT horizontal 1: 3, BT horizontal 3: 1, BT vertical 1: 3 and / or BT vertical 3: It may include at least one of the information indicating which division type of one division to use.
  • the subdivision information may be encoded to a sixth bit length.
  • the sixth bit length may have a bit length of one bit to four bits.
  • the subdivision structure divides the block using one of BT vertical 1: 1, BT horizontal 1: 1, BT horizontal 1: 3, BT horizontal 3: 1, BT vertical 1: 3 and / or BT vertical 3: 1 splitting.
  • the subdivision information may include information indicating that subdivision is performed and / or division type information.
  • the division type information includes information indicating the direction (vertical or horizontal) of subdivision, information indicating the ratio of subdivisions (1: 1 or 1: 3), and / or 1: 3 when the ratio of subdivisions is 1: 3. It may include information indicating whether or not 3: 1, each information may be represented by 1 bit.
  • the block division information of the current block may be encoded as shown in Tables 5 and 6 below by using the main division information of the fifth bit length and the sub division information of the sixth bit length together.
  • Table 5 shows block partitioning information that a block included in the main partitioning structure may have.
  • Table 6 shows block partitioning information that a block included in a subdivision structure may have. Blocks that may be included in the main partition structure and the sub-division structure at the same time may have the block partition information of Table 5.
  • the block division information of the block on which the main division is performed may be represented by "1".
  • the block partition information of the block in which the main partition is not performed may indicate information indicating whether the main partition is performed as "0".
  • Information indicating whether the main partition is performed may be represented by, for example, the first bit of the block partition information.
  • the block division information of the block on which the main division is not performed may further include information indicating whether sub division is performed. For example, in the embodiment shown in Table 5, whether or not subdivision is performed using the second bit of the block division information is shown. Therefore, when the block partition information of the block is "00", it can be seen that the block is a block that is no longer divided.
  • the block division information of the block in which the sub division is performed may include information indicating whether the main division is performed and information indicating whether the sub division is performed. For example, in the embodiment shown in Table 5, this is illustrated using the first two bits of the block partitioning information. That is, by setting the first two bits of the block division information to "01", it may represent that the sub division is performed without performing the main division for the corresponding block.
  • the third bit of block division information may be set to "1"
  • the third bit of block division information may be set to "0".
  • the fourth bit of the block division information may be set to "0" in the case of 1: 1 division, and the fourth bit of the block division information may be set to "1" in the case of 1: 3 division.
  • the ratio of division is 1: 3
  • information about whether the division is 1: 3 or 3: 1 is specifically needed.
  • the fifth bit of block division information may be set to "0" in the case of 1: 3 division
  • the fifth bit of block division information may be set to "1" in the case of 3: 1 division.
  • the division type used for the subdivision is BT vertical 1: 1, BT horizontal 1: 1, BT horizontal 1: 3, BT horizontal 3: 1, BT vertical 1: 3
  • / or 6 kinds of BT vertical 3: 1 division the tree structure and division form can be specified by 3 bits calculated by ceil (log 2 (6)). That is, even in this case, it can be seen that it takes 3 bits to specify one tree structure and partition type, and the information allocated for each block partition type is the third and fourth of the block partition information shown in Table 5. And the fifth bit.
  • Embodiments described with reference to Table 5 are only one of various embodiments covered by the present invention, but are not limited thereto.
  • the block partitioning information according to the present invention is sufficient to include information indicating whether or not the main partition, information indicating whether or not the subdivision, and / or information for specifying one of the plurality of subdivision structures.
  • the order in which the information appears in the bitstream or the order in which the information appears in or derived from the bitstream is not limited to the embodiment described with reference to Table 5.
  • the position of the information for specifying the direction of the subdivision and the information for specifying the ratio of the subdivision may be changed.
  • the present invention is not limited to a case where division is performed by "1" and a case where division is not performed by "0", and these bit values may be allocated in reverse.
  • the present invention is not limited to the case where the vertical division is represented by "1" and the horizontal division is represented by "0", and these bit values can be allocated in reverse.
  • the present invention is not limited to expressing a 1: 1 ratio of "0" and a 1: 3 ratio of "1", and these bit values can be allocated in reverse.
  • the present invention is not limited to expressing a 1: 3 ratio as "0" and a 3: 1 ratio as "1", and these bit values can be allocated in reverse.
  • Table 6 shows an embodiment of block partitioning information that a block included in a subdivision structure can have in the embodiment shown in FIG. Since the main division (QT cross division) is not performed on the blocks included in the subdivision structure, information indicating whether to perform division according to the main division structure may not be included in the block division information. Therefore, in the block partitioning information (block partitioning information of Table 5) that the block included in the main partitioning structure may have, the block included in the sub partitioning structure may have the remaining bits except the bit in which the first bit is "0". It may be block partitioning information (block partitioning information of Table 6).
  • the block partition information shown in Table 6 is only an embodiment of the block partition information according to the present invention, and various embodiments described with reference to Table 5 may be equally applied to Table 6.
  • each of the sub-blocks that are no longer divided may be determined as coding units.
  • the coding unit determined according to the embodiment described with reference to FIG. 10 may be a square or a rectangle having a size of 2nx2m (n, m is an integer greater than 1). If the minimum division size that can be divided is 4x4, as illustrated in FIG. 11, a coding unit having a horizontal or vertical position other than 2n , such as 4x4, 8x4, 4x8, and 12x4, may be generated.
  • the division method described with reference to FIG. 7 uses QT cross division as the main division structure, and uses BT vertical 1: 1 and / or BT horizontal 1: 1 division as the sub division structure.
  • the division method described with reference to FIG. 9 uses QT cross division as the main division structure, BT vertical 1: 1, BT horizontal 1: 1, TT vertical 1: 2: 1 and / or TT horizontal 1: as the subdivision structure. Use a 2: 1 split.
  • the division method described with reference to FIG. 11 uses QT cross division as the main division structure, BT vertical 1: 1, BT horizontal 1: 1, BT horizontal 1: 3, BT horizontal 3: 1, and BT vertical as the subdivision structure. Use 1: 3 and / or BT vertical 3: 1 splitting.
  • the division according to QT may include three division forms.
  • the split according to BT may include six split types.
  • the division according to TT may also include six division forms. However, this is only a divided form based on what is shown in FIGS. 4 to 6, and the number of divided forms is not limited thereto.
  • the ratio is set in various ways, the number of division types of QT, BT, and TT may increase. For example, it is possible to set a split ratio of various ratios such as BT 1: 4, BT 1: 5, BT 2: 5, TT 1: 3: 1, TT 1: 4: 1, TT 1: 2: 2. .
  • Figs. 4 to 6 There are 15 divided forms shown in Figs. 4 to 6, one of which may be used as the main divided structure.
  • QT cross division may be used as the main division structure, but the main division structure is not limited to QT cross division.
  • Information regarding which division type to use as the main division structure and / or which division type to use as the sub division structure, etc. may be transmitted through at least one or more of a sequence, a picture, a slice, a tile, and a basic block, as described above. Can be. Or it may be predetermined in the encoder and decoder. Alternatively, the method may be derived based on an encoding parameter and / or an internal variable derived in an encoding / decoding process.
  • one bit may be required.
  • ceil log 2 (n)
  • ceil () is a rounding function
  • the block division information of the block belonging to the main division structure includes information indicating whether the main division is performed (for example, one bit of information), or information indicating whether the sub division is performed (for example, 1 if the main division is not performed).
  • Information of bits) and / or subdivision may include information indicating one of the n available division types (eg, information of ceil (log 2 (n)) bits). This can be shown in Table 7 below.
  • block division information of a block belonging to a subdivision structure includes information indicating whether subdivision is performed (for example, one bit of information) and / or information indicating one of n available division types when subdivision is performed. (Eg, ceil (log 2 (n)) bits of information). This can be shown in Table 8 below.
  • the various embodiments described with reference to FIGS. 7 through 11 may also be applied to a division method according to a general main division structure and / or a sub division structure. Further, as another embodiment of the division method according to the main division structure and / or the sub division structure, it is also possible to limit the number of times that the main division can be applied, the depth and / or the size of the block (maximum size and / or minimum size). It is possible. Alternatively, it is also possible to limit the number of times, depth and / or block size (maximum size and / or minimum size) to which subdivision can be applied. For example, a major division can be applied only once, and then limited to only a minor division.
  • the main division may be applied a plurality of times, and the subdivision may be applied only once.
  • the main division can be applied only n times and the subdivision can be applied only m times.
  • n and m may be an integer of 1 or more.
  • Information about the additional restriction of the main division and the sub division may be transmitted in units of at least one of a sequence, a picture, a slice, a tile, and a basic block.
  • the information about the additional restriction may be preset in the encoder and the decoder.
  • the information about the additional restriction may be determined by encoding parameters and / or internal variables used in the encoding / decoding process.
  • Encoding parameters and / or internal variables may include information about a block size, information about a partition depth of a block, information about a luma component and / or chroma component, information about an inter mode, information about an intra mode, a coded block flag,
  • the information may include a quantization parameter, a motion vector, information about a reference picture, and / or information about whether the information is encoded in the PCM mode.
  • the encoding parameter and / or internal variable may include not only the current block but also the neighboring block.
  • a division method for hierarchically dividing blocks using a tree structure there may be a division method for dividing a main division / subdivision, and a division method for not dividing the main division / subdivision.
  • the division method for dividing the main division / subdivision may be defined in a multi division hierarchical manner. For example, various division methods described with reference to FIGS. 7 through 11 may correspond thereto.
  • one division structure may be determined as a main division structure, and one or more division structures may be determined as a sub division structure.
  • the sub dividing structure there may be a plurality of dividing structures, and sub dividing using different tree structures is also possible.
  • a subdivision structure using BT and / or TT is possible. In this case, BT and TT may be used as a subdivision structure regardless of the order. That is, after the split using BT is performed, the split using TT may be performed, and the split using BT may be performed again.
  • BT may be preferentially applied to leaf nodes of the main partition structure
  • TT may be applied to leaf nodes of the sub partition structure using BT.
  • the subdivision using BT is not performed on the leaf node of the main dividing structure, the subdivision using TT may be applied.
  • a division method that does not distinguish between main division and sub division may be defined in a single division hierarchy.
  • some or all of the various partitioning forms described with reference to FIGS. 4 to 6 may be used as the partitioning structure of the blocks in any order.
  • 1 to ceil (log2 (n)) + 1 bits may be required to indicate block partitioning information of each node of the tree structure. Therefore, in general, using the single division layer method, the number of bits required for encoding the block division information may be increased as compared with the case of using the multi division layer method.
  • information to be transmitted from the encoder to the decoder may be transmitted through at least one of a sequence level, a picture level, a slice level, a tile level, and a basic block level.
  • the information to be encoded may include information about whether a single division layer scheme or a multi division scheme is applied.
  • the information to be encoded may include information about the partition type that may be used as the main partition structure and / or the partition type that may be used as the sub partition structure.
  • the information to be encoded may include information about the number of times / depth / size of the main division and / or the subdivision.
  • the encoded information may be set in advance by the encoder and the decoder. Alternatively, the information may be derived by other encoding parameters or internal variables.
  • a plurality of sub blocks that are no longer divided may be determined.
  • a subblock that is no longer divided may be determined in coding units and may be a unit of prediction, transform, and / or quantization.
  • the prediction signal may be obtained by performing inter prediction or intra prediction on each coding unit.
  • the residual signal can be calculated from the difference between the obtained prediction signal and the original signal of the coding unit. For the calculated residual signal, the conversion may be performed to concentrate energy.
  • the coding unit according to the present invention has a rectangular or square shape having various sizes such as 4x4, 4x8, 8x4, 8x8, 16x4, and 4x16, in order to transform the residual signal of the coding unit according to the present invention, not only a square transform but also a non-square transform may be used. Justice is needed.
  • the formula used for conversion is:
  • X is a two-dimensional residual signal block of mxn size
  • A means a horizontal one-dimensional n point transformation
  • B T means a vertical one-dimensional m point transformation.
  • B T means the transpose matrix of B.
  • M and n may have different sizes or may have the same size.
  • a and B may be the same transformation basis or different transformation basis.
  • Y means a transform block obtained by transforming the residual signal block X.
  • Equation 1 and Equation 2 the vertical direction transformation and the horizontal direction transformation can obtain similar results regardless of the execution order.
  • the representation range of the transform coefficients has limited bit precision such as 16 bits
  • the order of performing the vertical transform and the horizontal transform should be used in the encoder and the decoder the same. This is because data is discarded in the middle of the operation due to limited bit accuracy.
  • basis vectors that can be used as transform basis vectors
  • DCT-II Discrete Cosine Transform type-II
  • DCT-V DCT-VIII
  • DST-I Discrete Sine Transform type
  • -I DST-VII
  • transform bases can be approximated and used as integers for computation speed and accuracy of computation.
  • FIG. 12 is an exemplary diagram showing a real basis of DCT-II that can be used for conversion and an integer basis obtained by multiplying a real value by a predetermined value.
  • Fig. 12 shows the integer conversion basis obtained by applying 64 as the K value.
  • K 2 K (K is an integer greater than 1) to reduce the amount of computation using shift operations.
  • FIG. 13 is an exemplary diagram showing a real conversion basis of DST-VII that can be used for conversion and an integer conversion basis obtained by multiplying a real value by a predetermined value.
  • the size of the coding unit is m ⁇ n
  • one-dimensional n point transform and one-dimensional m point transform are required.
  • the in-loop filter may include at least one of a deblocking filter, an offset corrector, and an adaptive loop filter (ALF).
  • in-loop filtering may include filtering applied to the reconstructed sample and / or the predicted sample.
  • FIG. 15 is a diagram illustrating two blocks adjacent to a block boundary and pixels therein, which are used to perform in-loop filtering according to FIG. 14.
  • In-loop filtering may be a method for reducing blocking artifacts occurring at a block boundary by a transform and quantization process performed on a block basis.
  • In-loop filtering may perform vertical filtering on horizontal block boundaries after performing horizontal filtering on vertical block boundaries larger than an arbitrary size.
  • horizontal filtering may be performed after vertical filtering. Since the result of the filtering performed first becomes the input of the filtering performed next, the order of filtering should be the same in the encoder / decoder. If the order of filtering is not the same, in encoding / decoding, a mismatch may occur between the filtered pixel values.
  • Any size to which in-loop filtering is applied may be preset in the encoder / decoder or may be determined from information signaled through the bitstream. For example, any size may have a size of 4x4, 8x8, 16x16, etc., and the length of the horizontal and the vertical may be determined differently.
  • In-loop filtering may be selectively performed, and a decision on whether to perform in-loop filtering may be performed in advance. For example, the determination of whether to perform filtering may be determined based on at least one of information indicating whether to perform filtering, a BS (Boundary Strength) value, and at least one variable value regarding a change amount of pixels adjacent to a block boundary. Information indicating whether to perform filtering may be signaled through at least one of sequence, picture, slice, tile, and block levels.
  • encoding information of at least one block adjacent to a block boundary to be filtered may be used to determine whether to perform filtering.
  • the encoding information may include a prediction mode of the block, motion information, and / or a transform coefficient.
  • a boundary strength (BS) value representing an intensity of a block boundary may be calculated with respect to a boundary of a prediction unit (PU) and / or a transform unit (TU) (S1401).
  • the prediction unit and / or transform unit refers to two types of blocks adjacent to the block boundary, and the type of blocks used for calculating the BS value is not limited thereto.
  • a BS value may be calculated for a boundary of a coding unit (CU).
  • the BS value when at least one of two blocks adjacent to the block boundary is encoded in the intra prediction mode, the BS value may be determined as the first value.
  • the first value can be determined, for example, by a constant of two or more.
  • the BS value may have a second value depending on whether one block has a non-zero quantized residual coefficient.
  • the second value may be a constant (eg, 0, 1, etc.) less than the first value.
  • the BS value is not limited to the first value and the second value.
  • the BS may further refine the determination criteria for the BS value so as to have various values such as the third value and the fourth value.
  • the BS value will be described based on the embodiment having one of 0, 1, and 2.
  • the BS value is not limited to the embodiments described below.
  • step S1402 a determination may be made as to whether or not the BS value is zero. If the BS value is 0, filtering may not be performed (S1403).
  • step S1404 may be performed.
  • a delta value for measuring an amount of change in pixels of pixels adjacent to the block boundary may be calculated.
  • the delta value may be calculated in predetermined block units. In this case, all or some lines (rows or columns) belonging to a predetermined block unit may be used. The position and / or number of the some lines may be fixed pre-committed to the encoder / decoder, or may be variably determined according to the size / shape of the block.
  • one or more pixels located on a line may be used, where the plurality of pixels may be arranged in succession or may be discontinuous pixels spaced at regular intervals.
  • the delta value may be calculated by the amount of change of the pixels of the area shown in light gray inside the block of FIG. 15 every 4 ⁇ 4 block units.
  • the thick vertical line in the center means a boundary between the left and right blocks P and Q.
  • Each of the gratings within block P and block Q represents one pixel (pixel).
  • the sign displayed inside each grid is an index used to indicate a pixel corresponding to the grid.
  • the calculation of the delta value may be calculated based on the amount of change in the brightness value of the pixels around the block boundary.
  • the amount of change in the brightness value of the pixels around the block boundary may be calculated based on the amount of change in the brightness value of the pixels located on the left and / or right side (or upper and / or lower side) with respect to the block boundary.
  • the calculation of the delta value may be calculated according to Equation 4 below using the pixels of the block P and the block Q shown in FIG. 15. Equation 4 may be an equation for calculating the strength of an edge at a corresponding block boundary.
  • two thresholds a beta ( ⁇ ) value and a t C value
  • Beta and t C values may be derived based on the quantization parameter (QP) and Table 3 below.
  • the quantization parameter may be derived from a parameter related to quantization of at least one of two blocks or two blocks adjacent to a block boundary.
  • Q in Table 9 is a value derived from the quantization parameter.
  • Beta values and t C values may be determined based on the determined ⁇ 'and t C '.
  • Beta values and / or t C values may be used to determine whether to perform filtering.
  • the beta and / or t C values may also be used to select a filtering type if it is determined that filtering is to be performed.
  • the filtering type may vary depending on the range of pixels to which filtering is applied, the strength of the filtering, and the like.
  • the filtering type may include strong filtering and weak filtering.
  • the filtering type is not limited thereto, and may have, for example, three or more types of filtering types having different filtering strengths.
  • each may be set as a separate filtering type.
  • the beta value and / or the t C value may be used for clipping of the filtered pixel when performing filtering.
  • a comparison between the delta value and the beta value may be performed. It may be determined whether to perform filtering based on the comparison result of step S1405. If the delta value is not smaller than the beta value, the filtering may not be performed (S1403). If the delta value is smaller than the beta value, it may be determined to perform filtering, and the filtering type to be applied for the corresponding block boundary may be determined. Alternatively, if the delta value is smaller than the beta value, it may be determined not to perform filtering, and if the delta value is not smaller than the beta value, it may be determined to perform filtering. In the embodiment illustrated in FIG. 14, the filtering type includes two types of strong filtering and weak filtering.
  • Whether to perform strong filtering or weak filtering may be determined by comparing a predetermined threshold with a change amount of pixel values in two blocks adjacent to a block boundary.
  • the amount of change in the pixel value used in the block may be the amount of change used in the calculation of the delta value.
  • a predetermined threshold may be compared with a change amount between pixel values within each block adjacent to the block boundary.
  • a predetermined threshold may be compared with a change amount between two or more adjacent pixel values around the block boundary.
  • the predetermined threshold may be at least one value of a beta value and t C value above the value that is determined by the values, properties such as shape, size of the block that is signaled via the predefined constant values, the bit stream.
  • a value obtained by scaling a beta value and / or a t C value may be used.
  • the amount of change between the pixel values can be compared with the threshold after being scaled using the threshold. For example, whether to perform strong filtering or weak filtering may be determined by whether the conditions of Equation 5 and / or Equation 6 below are satisfied.
  • Equation 5 is an equation for the first column of FIG. 15, and Equation 6 is an equation for the fourth column of FIG. If both conditions of Equation 5 and / or Equation 6 are satisfied, strong filtering may be performed on the corresponding block boundary (S1407). Otherwise, weak filtering may be performed (S1408). As described above in connection with the calculation of the delta value, all or some lines (rows or columns) belonging to a predetermined block unit adjacent to the block boundary may be used to determine the filtering type. The position and / or number of the some lines may be fixed pre-committed to the encoder / decoder, or may be variably determined according to the size / shape of the block.
  • one or more pixels located on a line may be used, where the plurality of pixels may be arranged in succession or may be discontinuous pixels spaced at regular intervals. If the shape and / or size of the two blocks adjacent to the block boundary are different, the indices (eg, p0,0, p1,0, q2,0, etc.) used to specify the position of the pixel herein will vary adaptively. Can be.
  • m pixels per block When strong filtering is performed (S1407), m pixels per block (where m is a constant of 3 or more) may be filtered using both blocks adjacent to the block boundary.
  • weak filtering S1408
  • n pixels per block When weak filtering is performed (S1408), n pixels per block (where n is a constant smaller than m) may be filtered using both blocks adjacent to the block boundary, or using one block.
  • the filtering application ranges shown at the bottom of steps S1407 and S1408 of FIG. 14 exemplarily show a case where m is 3 and n is 2.
  • m and n are not limited thereto.
  • the filtering method shown in FIG. 14 is not necessarily limited to this. That is, each step can be skipped as needed, and it is also possible to merge two or more steps into one step or divide one step into two or more steps. In addition, the order of performing some steps may be changed.
  • the shape and size of a block serving as a coding unit may be It is highly variable and can be split to include coding units in a rectangular form.
  • a block that is no longer split may be a unit of prediction, transformation, and / or quantization as a coding unit. That is, the basic block may be divided into coding units of various sizes having a square or rectangular shape, and each coding unit does not need to be split again for prediction or transformation, and thus the prediction unit and / or the transformation unit may be used by itself. Can be.
  • the coding unit may be a transformation unit immediately, as the size of the coding unit varies, the transformation unit may also have a wide variety of sizes. Accordingly, the blocking phenomenon occurring at the boundary of the transform unit may appear more diverse according to the shape, size, and / or characteristics of the block. Therefore, the strength and / or coverage of in-loop filtering needs to be performed in accordance with the shape, size and / or characteristics of the block adjacent to the block boundary.
  • FIG. 16 is a diagram illustrating a structure of a block divided using a quad tree structure and / or a binary tree structure and block boundaries to which in-loop filtering is applied according to the present invention.
  • a block boundary indicated by a thick line in FIG. 16 exemplarily shows a block boundary to which in-loop filtering may be applied.
  • the block boundary of blocks having a width or height of 4 may not be filtered. That is, filtering may not be performed on the block boundary indicated by the black line in FIG. 16.
  • FIG. 17 is a flowchart illustrating filtering according to another embodiment of the present invention.
  • the non-uniform block means a block having a different width and height from the block.
  • the BS value is calculated based on the PU and the TU.
  • calculation of the BS in operation S1701 of FIG. 17 may be performed based on two coding units (CUs) adjacent to a block boundary.
  • the BS value may have a first value and / or a second value or more as described above.
  • filtering may not be performed (S1703), or filtering may be performed according to step S1704.
  • step S1704 may be a delta-value, a beta value and a calculated value C t / induction.
  • the delta value and the beta value may be compared. If it is determined in step S1705 that the delta value is smaller than the beta value, it may be determined whether at least one block among blocks adjacent to the block boundary is an uneven block (S1706). If both blocks adjacent to the block boundary are square blocks, filtering according to S1406 to S1408 of FIG. 14 may be performed (S1707). When at least one of two blocks adjacent to the block boundary is an uneven block, the process after S1708 may be performed according to another embodiment of the present invention.
  • a filtering type may be selected according to a predetermined criterion.
  • the filtering type may include, for example, strong filtering and weak filtering, but is not limited thereto. If strong filtering is selected, strong filtering is performed in step S1709, and if weak filtering is selected, weak filtering may be performed in S1710.
  • a range in which filtering is applied to two blocks adjacent to a block boundary may be different. A specific filtering application range will be described later. The filtering method shown in FIG.
  • each step can be skipped as needed, and it is also possible to merge two or more steps into one step or divide one step into two or more steps.
  • the order of performing some steps may be changed.
  • the content described with reference to FIG. 14 may be applied in the same manner without being in conflict with the embodiment described with reference to FIG. 17.
  • FIG. 18 is a diagram illustrating a pixel to which strong filtering is applied according to S1709 of FIG. 17.
  • two blocks adjacent to a block boundary may be 8x8 and 16x8, respectively.
  • a block having a size of 16x8 corresponds to an uneven block.
  • whether to apply strong filtering or weak filtering to a block boundary may be determined based on a quantization parameter of at least one of two blocks or two blocks. If at least one of the two blocks adjacent to the block boundary is an uneven block, the width and / or height of the two blocks adjacent to the block boundary may be considered together.
  • a block having a larger block size may filter more pixels around the block boundary.
  • the blocking phenomenon caused by the transformation and quantization is related not only to the quantization parameter but also to the size of two blocks adjacent to the block boundary.
  • a relatively large block may be quantized and removed by AC quantization step size (Quantization step, Qstep) except the DC component of the block, at this time, inside the relatively large block
  • the location where the AC portion is removed at may be adjacent to the DC portion of the adjacent block. In such a case, blocking may occur seriously.
  • the filtering method according to another embodiment of the present invention may perform filtering in consideration of the shape, size, and / or characteristics of a block to reduce such inconsistency.
  • Deriving the strength of the block boundary (BS), determining whether to perform filtering, selecting strong filtering and weak filtering may be performed based on the sizes of two blocks adjacent to the block boundary, and the method described with reference to FIG. 14. It may also be performed by.
  • the filtering target pixels illustrated in FIG. 18 may be performed by using an average and / or weighted average of pixel values in two blocks adjacent to a block boundary, or by calculating an intermediate value corresponding thereto. For example, filtering may be performed using Equation 7 below.
  • Equation 7 a portion represented by the letters a, b, c, d, e, f, g, h, and i denotes a pixel value reconstructed by adding a prediction signal and a decoded residual signal, and b 'and c'.
  • FIG. 19 is a diagram illustrating a pixel to which weak filtering is applied according to S1710 of FIG. 17.
  • FIG. 19 when the size of two blocks adjacent to a block boundary is 8x8 and 16x8, respectively, and weak filtering is performed on the corresponding block boundary, for example, two pixels (c, d) are displayed for the 8x8 block.
  • three pixels e, f, g
  • the filtering process may be performed by calculating the ⁇ value based on the difference between pixel values in two blocks adjacent to the block boundary.
  • the ⁇ value may be calculated by giving a greater weight to the difference between two pixel values adjacent to the block boundary.
  • a difference value between two pixel values adjacent to the block boundary may be proportional to the ⁇ value.
  • the ⁇ value may be calculated using a difference value of pixel values not directly adjacent to the block boundary.
  • a difference value between pixel values not directly adjacent to the block boundary may be in inverse proportion to the ⁇ value.
  • the ⁇ value may be calculated using one or more difference values of the pixel values, and the calculated value is signaled through a bitstream and / or a value determined according to a characteristic of a predefined constant, a block shape, a size, and the like. Can be scaled using a value.
  • may be calculated as shown in Equation 8 below.
  • the calculated ⁇ value can be calculated by adding or subtracting the pixel value to be filtered.
  • Weak filtering may be performed on only one block or may be performed on both blocks.
  • the pixels d and e of the block boundary are the difference calculated by Equation 8 for each pixel value. It can be filtered by adding or subtracting the value ⁇ .
  • the average and / or weighted average of the pixel values in the two blocks adjacent to the block boundary may be performed or calculated by calculating an intermediate value corresponding thereto. For example, as shown in Equation 9 below, filtering may be performed using neighboring pixel values of a block boundary.
  • Equation 9 may be similarly applied to two pixels b and c.
  • Filtering according to another embodiment of the present invention may be performed when at least one of two blocks located at the block boundary is an uneven block.
  • filtering according to another embodiment of the present invention may be applied even when the sizes of two blocks located at the block boundary are different. If two blocks adjacent to the block boundary have the same size or both blocks are square, the filtering described with reference to FIG. 14 may be performed.
  • FIG. 20 is a diagram exemplarily illustrating a range of pixels to which filtering is applied when weak filtering is performed according to the present invention.
  • a thick line indicates a block boundary of a block.
  • the grid inside the thick line means the pixel inside each block.
  • the minimum block size for which filtering is performed is 8x8. Therefore, filtering may not be performed on the boundary of a block having a horizontal and / or vertical size of four.
  • a portion indicated in dark gray represents a pixel range to which the filtering described with reference to FIG. 14 is applied.
  • the portions shown in light gray are regions inside the non-uniform block 16x8 and represent pixel ranges to which the filtering described with reference to FIG. 17 is applied.
  • the filter unit 150 of the image encoding apparatus and the filter unit 240 of the image decoding apparatus according to the present invention may further include a corner outlier filter for filtering a corner outlier that is a filtering target according to the present invention.
  • the corner outlier filter may be positioned before or after the deblocking filter, before or after the offset correction unit, or before or after the adaptive loop filter (ALF).
  • the filtering according to the present invention may be performed as part of in-loop filtering, or may be performed on pixels used as a reference of intra prediction or inter prediction.
  • FIG. 21A illustrates a corner outlier that is a filtering target of the corner outlier filter according to an exemplary embodiment of the present invention.
  • FIG. 21B is a diagram illustrating pixel values of pixels of a 2 ⁇ 2 area centered on an intersection point of FIG. 21A.
  • FIG. 21C shows an index for indicating a position of pixels used to detect and filter a corner outlier.
  • 21 (a), 21 (b) and 21 (c) the portions shown in bold lines indicate the boundaries between blocks and blocks, and each grating corresponds to one pixel.
  • corners of four blocks 2101, 2102, 2103, and 2104 may meet with respect to one intersection point 2100 in an image decoded in units of blocks.
  • the size of each of the four blocks 2101, 2102, 2103, 2104 may be different from each other, or some or all of the same.
  • the four blocks 2101, 2102, 2103, and 2104 may be unit blocks of prediction, quantization, or transformation, respectively.
  • Quantization parameters used for quantization (or inverse quantization) of the four blocks 2101, 2102, 2103, and 2104 may be different from each other, or may be partially or completely the same.
  • the decoded image may include various types of image regions, and a boundary (edge) of the image region may not coincide with a boundary of a block that is a unit of encoding / decoding.
  • a boundary (edge) of the image region may not coincide with a boundary of a block that is a unit of encoding / decoding.
  • the image area 2105 of the hatched portion may exist over a plurality of blocks 2101, 2102, 2103, 2104, of which only one corner portion is present. May exist across. In this case, since four corner pixels adjacent to the intersection point 2100 are all adjacent pixels belonging to the same image area 2105, it can be expected to have similar pixel values.
  • the pixel value is large between the four adjacent corner pixels belonging to the same image region 2105 included in the decoded image, for example, because encoding / decoding processes such as prediction, quantization, and transformation are performed in units of blocks. There may be a difference.
  • the pixel value of the corner pixel belonging to the upper left block 2101 is higher than the pixel values of the other three corner pixels. Sometimes very small or large.
  • the corner outlier filter of the present invention when four blocks 2101, 2102, 2103, and 2104 included in a decoded image meet about one intersection 2100, the corner outlier filter is adjacent to the intersection 2100.
  • a corner pixel having a pixel value representing a large difference from the pixel values of other corner pixels is detected and filtered as the corner outliers. That is, the corner outlier means that a corner pixel value of one block in the reconstructed image has a large difference from corner pixel values of another block adjacent thereto due to quantization error or prediction error. In the case of representation, it may be defined as a corner pixel containing such noise.
  • the corner outlier according to the present invention may include a pixel having a pixel value indicating a large difference from the pixel values of neighboring adjacent pixels and the surrounding pixels.
  • FIG. 21B is an enlarged view illustrating an enlarged 2 ⁇ 2 area around the intersection 2100 of FIG. 21A.
  • the numbers included in each grid exemplarily indicate pixel values of pixels included in the block.
  • four corner pixels adjacent to the intersection point 2100 may have values of 120, 61, 44, and 29 as pixel values, respectively.
  • a corner pixel (hatched portion) having a pixel value of 120 among the four adjacent corner pixels shows a large difference from the pixel values 61, 44, and 29 of the other three corner pixels. Therefore, a corner pixel having a pixel value of 120 may correspond to a corner outlier that is the object of filtering of the present invention.
  • FIG. 21C shows an index for indicating the position of pixels of the 2x2 area used for detecting and filtering a corner outlier.
  • the positions of adjacent corner pixels around the intersection 2100 are denoted by capital letters A, B, C, and D, respectively, and the positions of pixels adjacent to each corner pixel are The combination of lowercase letters and numbers (a1, a2, b1, b2, c1, c2, d1, d2) is displayed.
  • the input of the corner outlier filter used to detect and filter the corner outliers is not limited to the pixels of the region shown in FIG. 21 (c), but is vertical, horizontal and / or around a block-to-block boundary. Alternatively, pixels in diagonally adjacent areas may be used.
  • pixels of a square region such as 3x3, 4x4, etc. may be used, or pixels of a rectangular region such as 1x2, 2x1, 1x3, 3x1, 1x4, 4x1, 2x3, 3x2, 2x4, 4x2, 3x4, 4x3, or the like may be used.
  • the pixels used as input to the corner outlier filter may be pixels at locations already known to the encoder / decoder. Alternatively, information related to the location of the pixels may be included in the bitstream and signaled.
  • the operation of the corner outlier filter will be described with reference to the index relating to the position of the pixels shown in FIG. 21C.
  • the pixel value of the corner pixel B shows a large difference from the pixel values of other adjacent corner pixels A, C, and D among the indices regarding the positions of the pixels shown in FIG. 21C.
  • FIG. 22 is a flowchart illustrating an operation of a corner outlier filter according to an embodiment of the present invention.
  • pixel values of pixels included in four adjacent blocks 2101, 2102, 2103, and 2104 around one intersection point 2100 may be used.
  • the pixel values of the pixels in the 2x2 area shown in FIG. 21C can be used as the input of the corner outlier filter.
  • corner outlier selection step S2201 when four blocks 2101, 2102, 2103, and 2104 are adjacent to one intersection 2100, four corner pixels A, which are adjacent to the intersection point, are adjacent to each other. Among B, C, and D), a corner pixel having a pixel value representing a large difference with the pixel values of other adjacent corner pixels is selected as the corner outlier.
  • the selection of the corner outliers may be performed using a first threshold and a difference value between pixel values of corner pixels adjacent to the intersection point.
  • the difference value between the pixel values may be a difference value between pixel values of pixels horizontally, vertically and / or diagonally adjacent to each other.
  • the first threshold may be set based on a quantization parameter.
  • the first threshold may be any one of the quantization parameters of the four adjacent blocks 2101, 2102, 2103, 2104, or the quantization parameters of the four adjacent blocks 2101, 2102, 2103, 2104.
  • the maximum value, the minimum value, the mode value, the median value, the average value, the weighted average value, and / or the value derived by scaling these values to a predetermined constant value can be used as the first threshold value.
  • the predetermined constant value may use a fixed value or may vary and may be obtained based on information signaled by being included in a bitstream.
  • the first threshold is not limited thereto, and may use a predefined value, set a different value according to characteristics of an image, or use a value signaled by a bitstream.
  • the pixel values of other neighboring corner pixels are significantly different. Corner pixels having pixel values can be selected as corner outliers.
  • Equation 10 first, based on the difference value of the pixel values of the four corner pixels, of the four corner pixels, the corner pixel having a pixel value representing a large difference with the pixel values of the other adjacent corner pixels You can choose.
  • corner outlier is included in corner pixel A or corner pixel C, or It may be determined whether the corner outliers are included in the corner pixel B or the corner pixel D. For example, if the difference between the pixel values of the corner pixel A and the corner pixel C is smaller than the difference between the pixel values of the corner pixel B and the corner pixel D, it is determined that the corner outlier is included in the corner pixel B or the corner pixel D. Can be.
  • the difference between the pixel values of the corner pixels B and the corner pixel C and the pixel values of the corner pixels A and the corner pixel D may be compared again. . If the difference between the pixel values of the corner pixel B and the corner pixel C is greater than the difference between the pixel values of the corner pixel A and the corner pixel D, the corner outlier is included in the corner pixel B or the corner pixel C. Can be.
  • the first comparison process ( ) It is determined that the corner outlier is included in the corner pixel B or the corner pixel D
  • the second comparison process ( ) If it is determined that the corner outlier is included in the corner pixel B or the corner pixel C, through the two comparison processes, the pixel value of the corner pixel B is compared with the pixel values of the other corner pixels A, C, and D. It can be seen that there is a big difference. Therefore, it can be determined that the corner outlier indicated by the corner pixel B can be used.
  • the pixel values of the other three adjacent corner pixels are larger than the pixel values of the adjacent corner pixels. It is possible to select a corner pixel having a pixel value indicating the difference. However, the selection of a corner pixel having a pixel value representing a large difference from the pixel values of other corner pixels among the four corner pixels adjacent to each other may be performed by various methods in addition to the method according to Equation 10 above.
  • the corner pixel has a pixel value that is significantly different from that of the other three neighboring corner pixels.
  • the first threshold may be set to, for example, QP / 3 which is 1/3 of an average value of the quantization parameters of the four adjacent blocks.
  • the first threshold value is not limited thereto, and may be set to another value according to the characteristic of the image, or may use a value signaled by the bitstream.
  • Equation 10 when the difference between pixel values of the selected corner pixel B and three other adjacent corner pixels A, C, and D is larger than the first threshold value, the selected corner pixel B may be selected as a corner outlier. have. If the difference value of the pixel value between the selected corner pixel B and at least one corner pixel among the other three adjacent corner pixels A, C, and D is smaller than the first threshold value, the corner outlier is not selected. You may not. In this case, the corner outlier filtering operation on the corresponding corner outlier filter input may be terminated.
  • Step S2201 when the corner outlier is selected, the similarity between the pixel adjacent to the selected corner outlier and the corner outlier may be determined while belonging to the same block as the selected corner outlier (S2202).
  • Step S2202 may not be performed in some cases. For example, whether to omit step S2202 may be determined based on information signaled or determined based on characteristics of an image.
  • the corner pixel B of Fig. 21 (c) when the corner pixel B of Fig. 21 (c) is selected as the corner outlier, it belongs to the same block 2101 as the corner pixel B, and horizontally adjacent pixel b1 and / or vertically adjacent pixel b2.
  • the similarity between and corner pixel B can be determined.
  • the similarity determination may be performed based on the difference value between the pixel value of the pixel and the corner pixel B in the same block.
  • the pixels in the same block may be located on the same horizontal line and / or vertical line as the corner pixel B.
  • the pixels in the same block may be one or more pixels consecutively adjacent to the corner pixel B, or may be one or more pixels at positions separated by a predetermined distance. For example, it may be performed by comparing a difference value between the horizontally and / or vertically adjacent adjacent pixels b1 and b2 and the pixel value of the corner pixel B in the same block with the second threshold.
  • the second threshold may be set based on a quantization parameter.
  • the second threshold may be any one of the quantization parameters of the four adjacent blocks 2101, 2102, 2103, 2104, or the maximum value, the minimum value, among the quantization parameters of the four adjacent blocks 2101, 2102, 2103, 2104, Modes, medians, averages, weighted averages and / or values derived by scaling these values to a predetermined constant value can be used as the second threshold.
  • the predetermined constant value may use a fixed value or may vary and may be obtained based on information signaled by being included in a bitstream.
  • the second threshold may be set to, for example, QP / 6 which is 1/6 of an average value of the quantization parameters of the four adjacent blocks.
  • the second threshold value is not limited thereto, and may be set to another value according to the characteristics of the image, or a value signaled by the bitstream may be used.
  • the similarity between the adjacent pixels b1 and b2 and the corner pixel B in the same block may be determined using Equation 11 below.
  • Equation 11 the difference between the pixel value of the corner pixel B and the pixel b1 horizontally adjacent thereto is compared with the second threshold QP / 6. If the difference between the pixel values of the corner pixel B and the pixel b1 is smaller than QP / 6, the corner pixel B and the pixel b1 may be determined to be similar to each other. The similarity determination of the corner pixel B and the pixel b2 may also be performed in the same manner.
  • the corner outlier filtering operation for the corner pixel B selected as the corner outlier may be terminated.
  • step S2203 the processing for the selected corner outlier may be continued.
  • Step S2203 it is determined whether the horizontal block boundary and the vertical block boundary adjacent to the corner outliers are edges of the image area included in the image. Step S2203 may not be performed in some cases. For example, whether to omit step S2203 may be determined based on information signaled or determined based on characteristics of an image.
  • the corner pixel B selected as the corner outline is included in a different image area from the other adjacent corner pixels A, C, and D, and thus it is determined whether filtering is inappropriate.
  • the pixel value of corner pixel B may have a large difference from the pixel value of other adjacent corner pixels A, C, and D. have.
  • the difference in pixel values in such a case may not be regarded as noise due to quantization of blocks, for example. Therefore, in this case, it is preferable not to perform corner outlier filtering on the corner pixel B.
  • step S2203 it is determined whether the horizontal block boundary and the vertical block boundary adjacent to the corner pixel B as the corner outliers are edges of the image area. If it is determined that the horizontal block boundary and the vertical block boundary adjacent to the corner pixel B are edges of the image area, it may be determined that the corner pixel B and other adjacent corner pixels A, C, and D belong to different image areas. .
  • the edge determination according to an embodiment of the present invention is pixels included in blocks 2102, 2103, and 2104 adjacent to corner pixel B, which are corner outliers, and at least one adjacent to the horizontal block boundary and the vertical block boundary. This may be performed using a pixel and a third threshold of.
  • the third threshold may be set based on a quantization parameter. For example, it may be any one of the quantization parameters of the four adjacent blocks 2101, 2102, 2103, 2104, or the maximum value, the minimum value, among the quantization parameters of the four adjacent blocks 2101, 2102, 2103, 2104, Modes, intermediate values, average values, weighted average values, and / or values derived by scaling these values to a predetermined constant value may be used as the third threshold value.
  • the predetermined constant value may use a fixed value or may vary and may be obtained based on information signaled by being included in a bitstream.
  • the third threshold value is not limited thereto, and may be set to another value according to the characteristics of the image, or may use a value signaled by the bitstream.
  • the third threshold may be set to, for example, QP / 6 which is 1/6 of an average value of the quantization parameters of the four adjacent blocks.
  • the third threshold value is not limited thereto, and may be set to another value according to the characteristics of the image, or may use a value signaled by the bitstream.
  • the edge determination according to an embodiment of the present invention is pixels included in blocks adjacent to a corner outlier, and the change amount of pixels adjacent to the horizontal block boundary and the vertical block boundary may be compared with the third threshold value.
  • Equation 12 may be used to determine whether the horizontal block boundary and the vertical block boundary adjacent to the corner pixel B are edges of the image area.
  • pixels included in a block adjacent to corner pixel B are pixels c1 adjacent to the horizontal block boundary to determine whether a horizontal block boundary adjacent to corner pixel B, which is a corner outlier, is an edge.
  • C, D and d1 may be used.
  • the amount of change of the pixels c1, C, D and d1 for example, the difference between the average value of the pixel values of the pixels c1, C, D and d1 and the pixel value of the pixel c1 and / or the pixels
  • the difference between the average value of the pixel values of (c1, C, D, and d1) and the pixel value of the pixel d1 can be used.
  • a process of comparing a difference between two or more pixel values among pixels adjacent to the horizontal block boundary with a predetermined reference value may be used.
  • the predetermined reference value may be determined or signaled based on the characteristic of the image. If the amount of change of the pixels c1, C, D, and d1 is smaller than the third threshold QP / 6, it is determined that the amount of change of the pixels c1, C, D, and d1 is small, and the pixels The horizontal block boundary adjacent to (c1, C, D, and d1) may be determined to be an edge of the image area.
  • the pixels a2, A, D adjacent to the vertical block boundary are pixels included in the block adjacent to corner pixel B.
  • d2 can be used.
  • the amount of change of the pixels a2, A, D and d2 for example, the difference between the average value of the pixel values of the pixels a2, A, D and d2 and the pixel value of the pixel a2 and / or the pixels
  • the difference between the average value of the pixel values of (a2, A, D, and d2) and the pixel value of the pixel d2 can be used.
  • a process of comparing a difference between two or more pixel values among pixels adjacent to the vertical block boundary with a predetermined reference value may be used.
  • the predetermined reference value may be determined or signaled based on the characteristic of the image. If the change amount of the pixels a2, A, D, and d2 is smaller than the third threshold QP / 6, it is determined that the change amount of the pixels a2, A, D, and d2 is small, and the pixels The vertical block boundary adjacent to (a2, A, D, and d2) may be determined to be an edge of the image area.
  • Equation 12 is used to determine whether a boundary of a block is an edge of an image region.
  • the method of determining whether an image region is an edge is not limited thereto, and various methods may be applied. have.
  • step S2203 when it is determined that the horizontal block boundary or the vertical block boundary adjacent to the corner pixel B, which is the corner outlier, is not an edge of the image area, the corner outlier filtering is performed in step S2204. can do.
  • the corner out of the corner pixel B is determined.
  • the layer filtering operation may be terminated, or the edge determination using Equation 13 may be further performed. Additional edge determination using Equation 13 below may not be performed in some cases. For example, whether to omit additional edge determination using Equation 13 below may be determined based on information determined or signaled based on characteristics of an image. have.
  • the fourth threshold may be set based on a quantization parameter.
  • a quantization parameter it may be any one of the quantization parameters of the four adjacent blocks 2101, 2102, 2103, 2104, or the maximum value, the minimum value, among the quantization parameters of the four adjacent blocks 2101, 2102, 2103, 2104, Modes, intermediate values, average values, weighted average values, and / or values derived by scaling these values to predetermined constant values may be used as the fourth threshold.
  • the predetermined constant value may use a fixed value or may vary and may be obtained based on information signaled by being included in a bitstream.
  • the fourth threshold is not limited thereto, and may be set to another value according to the characteristics of the image, or may use a value signaled by the bitstream.
  • the fourth threshold may be set to, for example, QP / 2 which is 1/2 of an average value of the quantization parameters of the four adjacent blocks.
  • the fourth threshold is not limited thereto, and may be set to another value according to the characteristics of the image, or may use a value signaled by the bitstream.
  • the first to fourth thresholds used in the above-described embodiments of the present invention may all be the same or different, or some may be the same or different.
  • Equation 13 it is determined whether the difference between the pixel value of the corner pixel B which is the corner outlier and the corner pixel A adjacent thereto is smaller than QP / 2. If the difference between the pixel value of the corner pixel B and the adjacent corner pixel A is smaller than QP / 2, it may be finally determined that the vertical block boundary adjacent to the corner pixel B is an edge of the image area.
  • Equation 13 it is determined whether the difference between the pixel value of the corner pixel B which is the corner outlier and the corner pixel C adjacent thereto is smaller than QP / 2. If the difference between the pixel value of the corner pixel B and the adjacent corner pixel C is smaller than QP / 2, it may be finally determined that the horizontal block boundary adjacent to the corner pixel B is an edge of the image area.
  • step S2203 if it is determined that the horizontal block boundary adjacent to the corner pixel B and the vertical block boundary are both edges of the image area as a result of edge determination by Equation 12 and / or Equation 13, the filtering of step S2204 is not performed. You can exit.
  • step S2203 when it is determined that the edge block according to Equation 12 and / or Equation 13 determines that the horizontal block boundary or the vertical block boundary adjacent to the corner pixel B is not an edge of the image area, the flow proceeds to step S2204 and the corner pixel Corner outlier filtering on B may be performed.
  • the corner outliers to be filtered may be determined through the steps S2201 to S2203.
  • steps S2201 to S2203 are not limited to the determination order, and the determination order may be adaptively changed as long as the essence of the invention is maintained.
  • the corner outliers to be filtered may be determined by selectively using at least one of steps S2201 to S2203.
  • the filtering of the corner outliers and the pixels adjacent thereto may be performed in a direction of reducing a difference from adjacent pixels, for example, in a direction of reducing a difference of pixel values from adjacent corner pixels belonging to another block. Can be. According to an embodiment of the present invention, for example, filtering may be performed using Equation 14 below.
  • A, B, C, D, b1, and b2 denote pixel values of pixels at positions shown in FIG. 21 (c), respectively, and B ', b1', and b2 'respectively denote FIG. In c), a value obtained by filtering pixel values of positions B, b1, and b2.
  • the filtered pixel may include a corner outlier and pixels horizontally, vertically, and / or diagonally adjacent thereto.
  • the filtering coefficient used for the filtering may use a predetermined value already known by the encoder / decoder, and the coefficient of filtering may be derived based on the characteristics of the image, or information about the coefficient of filtering may be signaled.
  • the filtering is not necessarily performed only on the boundaries of the prediction, quantization and / or transform blocks, but may be performed only on the boundaries of blocks having a predetermined size, such as the boundaries of 8x8, 16x16, 32x32, and 64x64 blocks.
  • Information about the type and / or size of the block on which the filtering is performed may use information already known by the encoder / decoder, or may be determined based on characteristics of the image, or information about the signal may be signaled.
  • the method according to an embodiment of the present invention consists of one or more steps and is described in a certain order.
  • the present invention is not limited to the above fixed order.
  • the order of execution of each step may be changed.
  • one or more steps may be performed simultaneously.
  • one or more steps can be added at any location.
  • Embodiments according to the present invention may be implemented in the form of program instructions that may be executed by various computer components, and may be 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.
  • Embodiments of the invention may be implemented by a hardware device having one or more processors. One or more processors may each be configured to operate as a software module.
  • the present invention can be used to encode / decode an image.

Abstract

본 발명에 따른, 입력 영상을 블록 단위로 분할하여 부호화하는 비디오 신호 처리 방법은 현재 블록의 분할 여부를 결정하는 분할 여부 결정하고, 상기 결정에 기초하여, 상기 현재 블록을 복수의 서브 블록으로 분할하고, 상기 현재 블록의 분할에 관한 블록 분할 정보를 생성하고, 상기 블록 분할 정보, 상기 현재 블록 또는 상기 서브 블록을 부호화하는 부호화 단계를 포함한다. 본 발명에 따른 블록의 분할은 쿼드 트리 구조, 이진 트리 구조 및/또는 트리플 트리 구조를 포함하여, n진 트리 구조를 이용한 분할을 포함한다.

Description

비디오 신호 처리 방법 및 장치
본 발명은 비디오 신호 처리 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 발명은 영상을 부호화/복호화하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 입력 영상의 적응적 분할에 기반하여 입력 영상을 부호화/복호화하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 입력 영상의 적응적 분할을 시그널링하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 입력 영상의 적응적 분할에 따른 블록에 대해 변환 및/또는 필터링을 수행하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 블록 단위로 복호화된 비디오 신호에 포함되는 블록의 코너에 발생하는 노이즈를 효과적으로 검출하고, 검출된 노이즈를 효과적으로 보상(필터링)하는 비디오 신호 처리 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명에 따른, 입력 영상을 블록 단위로 분할하여 부호화하는 비디오 신호 처리 방법은, 현재 블록의 분할 여부를 결정하는 분할 여부 결정 단계, 상기 결정에 기초하여, 상기 현재 블록을 복수의 서브 블록으로 분할하는 블록 분할 단계, 상기 현재 블록의 분할에 관한 블록 분할 정보를 생성하는 단계, 및 상기 블록 분할 정보, 상기 현재 블록 또는 상기 서브 블록을 부호화하는 부호화 단계를 포함할 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 블록 분할 단계는, 둘 이상의 트리 구조를 이용하여 상기 현재 블록을 분할할 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 블록 분할 단계는, 상기 둘 이상의 트리 구조 중 하나 이상을 주 분할 구조로 이용하고, 나머지를 부 분할 구조로 이용하여 블록을 분할할 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 블록 분할 정보는, 상기 주 분할 구조를 이용한 블록의 분할 여부를 나타내기 위한 주 분할 정보를 포함하고, 상기 주 분할 정보가, 상기 주 분할 구조를 이용하여 블록을 분할하는 것을 나타내고, 상기 주 분할 구조가 복수인 경우, 상기 블록 분할 정보는 상기 복수의 주 분할 구조 중 하나를 특정하기 위한 정보를 더 포함할 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 블록 분할 정보는, 상기 주 분할 구조를 이용한 블록의 분할 여부를 나타내기 위한 주 분할 정보를 포함하고, 상기 주 분할 정보가, 상기 주 분할 구조를 이용하여 블록을 분할하지 않는 것을 나타내는 경우, 상기 블록 분할 정보는, 부 분할 구조를 이용한 블록의 분할 여부를 나타내기 위한 부 분할 정보를 더 포함할 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 부 분할 정보가, 상기 부 분할 구조를 이용하여 블록을 분할하는 것을 나타내고, 상기 부 분할 구조가 복수인 경우, 상기 블록 분할 정보는 상기 복수의 부 분할 구조 중 하나를 특정하기 위한 정보를 더 포함할 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 주 분할 정보가, 상기 주 분할 구조를 이용하여 블록을 분할하지 않는 것을 나타내고, 상기 부 분할 정보가, 상기 부 분할 구조를 이용하여 블록을 분할하지 않는 것을 나타내는 경우, 상기 현재 블록을 부호화 단위로 결정할 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 블록 분할 정보는 상기 블록의 분할 여부를 나타내기 위한 제1 정보를 포함하고, 상기 제1 정보가, 상기 블록이 분할됨을 나타내고, 상기 블록의 분할을 위해 복수의 분할 구조가 사용되는 경우, 상기 블록 분할 정보는 상기 복수의 분할 구조 중 하나를 특정하기 위한 제2 정보를 더 포함할 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 주 분할 구조 또는 상기 부 분할 구조에 관한 정보는, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨 및 블록 레벨 중 적어도 하나의 레벨에서 부호화될 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 블록의 분할은 소정의 크기 이하의 블록에 대해서는 수행되지 않고, 상기 소정의 크기에 관한 정보는, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨 및 블록 레벨 중 적어도 하나의 레벨에서 부호화될 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 현재 블록 또는 상기 서브 블록을 부호화하는 부호화 단계는 예측, 변환 및 양자화 중 적어도 하나를 포함하고, 상기 변환은 비정방형 변환을 포함하며, 상기 변환은, Y = AXBT (여기서, X는 m x n 크기의 잔차 신호 블록, A는 수평 방향 1차원 n 포인트 변환, BT는 수직방향 1차원 m 포인트 변환, Y는 X를 변환하여 얻어지는 변환 블록임) 에 의해 수행될 수 있다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, A와 B는 서로 다른 변환일 수 있다.
본 발명에 따른, 입력 영상을 블록 단위로 분할하여 복호화하는 비디오 신호 처리 방법은, 현재 블록의 블록 분할 정보를 복호화하는 단계, 상기 블록 분할 정보에 기초하여 상기 현재 블록을 복수의 서브 블록으로 분할하는 블록 분할 단계, 및 상기 현재 블록 또는 상기 서브 블록을 복호화하는 단계를 포함할 수 있다.
본 발명에 따른, 입력 영상을 블록 단위로 분할하여 부호화하는 비디오 신호 처리 장치는, 현재 블록의 분할 여부를 결정하는 분할 여부 결정부, 상기 결정에 기초하여, 상기 현재 블록을 복수의 서브 블록으로 분할하는 블록 분할부, 상기 현재 블록의 분할에 관한 블록 분할 정보를 생성하는 블록 분할 정보 생성부, 및 상기 블록 분할 정보, 상기 현재 블록 또는 상기 서브 블록을 부호화하는 부호화부를 포함할 수 있다.
본 발명에 따른, 입력 영상을 블록 단위로 분할하여 복호화하는 비디오 신호 처리 장치는, 현재 블록의 블록 분할 정보를 복호화하는 블록 분할 정보 복호화부, 상기 블록 분할 정보에 기초하여 상기 현재 블록을 복수의 서브 블록으로 분할하는 블록 분할부, 및 상기 현재 블록 또는 상기 서브 블록을 복호화하는 블록 복호화부를 포함할 수 있다.
또한, 본 발명에 따른, 입력 영상을 블록 단위로 분할하여 부호화하는 비디오 신호 처리 방법은, 현재 블록에 대한 잔차 블록을 생성하고, 상기 잔차 블록을 부호화하고, 상기 부호화된 잔차 블록을 복호화하고, 상기 복호화된 잔차 블록을 이용하여 상기 현재 블록을 복원하고, 상기 복원된 현재 블록을 포함하는 복원 영상에 대해 필터링을 수행하며, 상기 필터링은, 블록 경계에 인접한 두 블록의 형태 또는 크기에 기초하여 수행되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 블록 경계에 인접한 두 블록의 형태 또는 크기에 기초하여, 필터링되는 화소의 개수 또는 필터링 강도를 결정하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 블록 경계에 인접한 두 블록 중 적어도 하나의 블록이 비정방형인 경우, 두 블록 중 크기가 더 큰 블록에 대해 더 많은 화소를 필터링하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 블록 경계에 인접한 두 블록 중 적어도 하나의 블록이 비정방형인 경우, 두 블록 중 크기가 더 큰 블록에 대해 더 강한 필터링을 적용하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 블록 경계에 인접한 두 블록의 크기가 상이한 경우, 두 블록 중 크기가 더 큰 블록에 대해 더 많은 화소를 필터링하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 블록 경계에 인접한 두 블록의 크기가 상이한 경우, 두 블록 중 크기가 더 큰 블록에 대해 더 강한 필터링을 적용하는 것을 특징으로 한다.
본 발명에 따른, 입력 영상을 블록 단위로 분할하여 복호화하는 비디오 신호 처리 방법은, 현재 블록에 대한 잔차 블록을 비트스트림으로부터 복호화하고, 상기 복호화된 잔차 블록을 이용하여 상기 현재 블록을 복원하고, 상기 복원된 현재 블록을 포함하는 복원 영상에 대해 필터링을 수행하며, 상기 필터링은, 블록 경계에 인접한 두 블록의 형태 또는 크기에 기초하여 수행되는 것을 특징으로 한다.
본 발명에 따른, 입력 영상을 블록 단위로 분할하여 부호화하는 비디오 신호 처리 장치는, 현재 블록에 대한 잔차 블록을 생성하는 잔차 블록 생성부, 상기 잔차 블록을 부호화하는 잔차 블록 부호화부, 상기 부호화된 잔차 블록을 복호화하는 잔차 블록 복호화부, 상기 복호화된 잔차 블록을 이용하여 상기 현재 블록을 복원하는 현재 블록 복원부, 및 상기 복원된 현재 블록을 포함하는 복원 영상에 대해 필터링을 수행하는 필터링부를 포함하고, 상기 필터링부는, 블록 경계에 인접한 두 블록의 형태 또는 크기에 기초하여 상기 블록 경계에 대해 필터링을 수행하는 것을 특징으로 한다.
본 발명에 따른, 입력 영상을 블록 단위로 분할하여 복호화하는 비디오 신호 처리 장치는, 현재 블록에 대한 잔차 블록을 비트스트림으로부터 복호화하는 잔차 블록 복호화부, 상기 복호화된 잔차 블록을 이용하여 상기 현재 블록을 복원하는 현재 블록 복원부, 및 상기 복원된 현재 블록을 포함하는 복원 영상에 대해 필터링을 수행하는 필터링부를 포함하고, 상기 필터링부는, 블록 경계에 인접한 두 블록의 형태 또는 크기에 기초하여 상기 블록 경계에 대해 필터링을 수행하는 것을 특징으로 한다.
또한, 본 발명에 따른 비디오 신호 처리 방법은, 블록 단위로 복호화된 비디오 신호에 포함되는 4개의 블록들의 코너가 하나의 교차점에서 서로 인접할 때, 상기 교차점에 인접하는 4개의 코너 픽셀들 중, 하나의 코너 픽셀을 코너 아웃라이어(Corner outlier)로서 선택하고, 상기 코너 아웃라이어를 필터링하며, 상기 코너 아웃라이어 선택은, 상기 교차점에 인접하는 4개의 코너 픽셀들의 픽셀값들 사이의 차이값과 제1 문턱값을 이용하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 제1 문턱값은 상기 4개의 블록들의 양자화 파라미터에 기초하여 결정되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 선택된 코너 아웃라이어와 동일 블록 내에 포함되며 상기 코너 아웃라이어에 인접하는 픽셀과 상기 코너 아웃라이어와의 유사도를 더 판단하고, 상기 필터링은, 상기 유사도 판단에 기초하여 수행되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 유사도 판단은, 상기 코너 아웃라이어와 동일 블록 내에 포함되며 상기 코너 아웃라이어에 인접하는 픽셀과 상기 코너 아웃라이어의 픽셀값들 사이의 차이값과 제2 문턱값을 이용하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 제2 문턱값은 상기 4개의 블록들의 양자화 파라미터에 기초하여 결정되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 선택된 코너 아웃라이어에 인접하는 블록 경계가 이미지 영역의 에지인지 여부를 더 판단하고, 상기 필터링은, 상기 블록 경계가 이미지 영역의 에지인지 여부의 판단에 기초하여 수행되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 블록 경계가 이미지 영역의 에지인지 여부의 판단은, 상기 코너 아웃라이어에 인접한 블록내의 픽셀들로서, 상기 블록 경계에 인접하는 픽셀들의 픽셀값들 사이의 변화량과 제3 문턱값을 이용하는 제1 에지 판단을 포함하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 제3 문턱값은 상기 4개의 블록들의 양자화 파라미터에 기초하여 결정되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 블록 경계가 이미지 영역의 에지인지 여부의 판단은, 상기 코너 아웃라이어에 수평 또는 수직으로 인접한 코너 픽셀과 상기 코너 아웃라이어의 픽셀값들 사이의 차이값과 제4 문턱값을 이용하는 제2 에지 판단을 더 포함하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 제4 문턱값은 상기 4개의 블록들의 양자화 파라미터에 기초하여 결정되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 필터링은, 상기 교차점에 인접하는 4개의 코너 픽셀들의 가중 평균값을 상기 코너 아웃라이어의 필터링된 픽셀값으로 설정하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 방법에 있어서, 상기 필터링은, 상기 코너 아웃라이어와 동일 블록 내에 포함되며 상기 코너 아웃라이어에 인접하는 픽셀에 대한 필터링을 포함하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치는, 블록 단위로 복호화된 비디오 신호에 포함되는 4개의 블록들의 코너가 하나의 교차점에서 서로 인접할 때, 상기 교차점에 인접하는 4개의 코너 픽셀들 중, 하나의 코너 픽셀을 코너 아웃라이어(Corner outlier)로서 선택하고, 상기 코너 아웃라이어를 필터링하는 코너 아웃라이어 필터를 포함하며, 상기 코너 아웃라이어의 선택은, 상기 교차점에 인접하는 4개의 코너 픽셀들의 픽셀값들 사이의 차이값과 제1 문턱값을 이용하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 제1 문턱값은 상기 4개의 블록들의 양자화 파라미터에 기초하여 결정되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 코너 아웃라이어 필터는, 상기 선택된 코너 아웃라이어와 동일 블록 내에 포함되며 상기 코너 아웃라이어에 인접하는 픽셀과 상기 코너 아웃라이어와의 유사도를 더 판단하고, 상기 필터링은, 상기 유사도 판단에 기초하여 수행되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 유사도 판단은, 상기 코너 아웃라이어와 동일 블록 내에 포함되며 상기 코너 아웃라이어에 인접하는 픽셀과 상기 코너 아웃라이어의 픽셀값들 사이의 차이값과 제2 문턱값을 이용하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 제2 문턱값은 상기 4개의 블록들의 양자화 파라미터에 기초하여 결정되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 코너 아웃라이어 필터는, 상기 선택된 코너 아웃라이어에 인접하는 블록 경계가 이미지 영역의 에지인지 여부를 더 판단하고, 상기 필터링은, 상기 블록 경계가 이미지 영역의 에지인지 여부의 판단에 기초하여 수행되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 블록 경계가 이미지 영역의 에지인지 여부의 판단은, 상기 코너 아웃라이어에 인접한 블록내의 픽셀들로서, 상기 블록 경계에 인접하는 픽셀들의 픽셀값들 사이의 변화량과 제3 문턱값을 이용하는 제1 에지 판단을 포함하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 제3 문턱값은 상기 4개의 블록들의 양자화 파라미터에 기초하여 결정되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 블록 경계가 이미지 영역의 에지인지 여부의 판단은, 상기 코너 아웃라이어에 수평 또는 수직으로 인접한 코너 픽셀과 상기 코너 아웃라이어의 픽셀값들 사이의 차이값과 제4 문턱값을 이용하는 제2 에지 판단을 더 포함하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 제4 문턱값은 상기 4개의 블록들의 양자화 파라미터에 기초하여 결정되는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 필터링은, 상기 교차점에 인접하는 4개의 코너 픽셀들의 가중 평균값을 상기 코너 아웃라이어의 필터링된 픽셀값으로 설정하는 것을 특징으로 한다.
본 발명에 따른 비디오 신호 처리 장치에 있어서, 상기 필터링은, 상기 코너 아웃라이어와 동일 블록 내에 포함되며 상기 코너 아웃라이어에 인접하는 픽셀에 대한 필터링을 포함하는 것을 특징으로 한다.
본 발명은 영상을 부호화/복호화하는 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 의하면, 쿼드 트리 구조, 이진 트리 구조 및/또는 트리플 트리 구조를 포함하는 다양한 형태의 트리 구조에 기반하여 블록을 적응적으로 분할함으로써 부호화 효율을 향상시킬 수 있다.
또한, 본 발명에 의하면, 입력 영상의 적응적 분할에 따른 블록의 분할 정보를 효율적으로 시그널링하여 부호화 효율을 향상시킬 수 있다.
또한, 본 발명에 의하면, 입력 영상의 적응적 분할에 따라, 임의의 형태를 갖는 블록에 대한 변환 및/또는 필터링을 효율적으로 수행하여 부호화 효율을 향상시킬 수 있다.
또한, 본 발명에 의하면, 블록 단위로 복호화된 비디오 신호에 포함되는 블록의 코너에 발생하는 노이즈를 효과적으로 검출할 수 있다.
또한, 본 발명에 의하면, 블록 단위로 복호화된 비디오 신호의 블록의 코너에 발생하는 노이즈를 효과적으로 보상할 수 있다.
또한, 본 발명에 의하면, 부호화/복호화 처리의 단위인 블록의 코너에 발생하는 노이즈를 효과적으로 검출 및 보상함으로써, 해당 블록이 화면 간 예측 및/또는 화면 내 예측의 레퍼런스로서 사용되어, 다른 블록이나 다른 픽쳐로 노이즈가 전파되는 것을 방지할 수 있다.
도 1은 본 발명의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3(a)는 입력 영상의 기본 블록을 쿼드 트리 구조 (Quad Tree Structure)를 이용하여 분할한 구조를 예시적으로 나타내는 도면이다.
도 3(b)는 입력 영상의 기본 블록을 쿼드 트리 구조 및/또는 이진 트리 구조를 사용하여 분할한 구조를 예시적으로 나타내는 도면이다.
도 4는 입력 영상에 포함된 블록을 쿼드 트리 구조 (Quad Tree Structure)를 이용하여 분할한 구조를 예시적으로 나타내는 도면이다.
도 5는 입력 영상에 포함된 블록을 이진 트리 구조 (Binary Tree Structure)를 이용하여 분할한 구조를 예시적으로 나타내는 도면이다.
도 6은 입력 영상에 포함된 블록을 트리플 트리 구조 (Triple Tree Structure)를 이용하여 분할한 구조를 예시적으로 나타내는 도면이다.
도 7(a)는 QT 교차 분할을 주 분할 구조로, BT 수직 1:1 및/또는 BT 수평 1:1 분할을 부 분할 구조로 이용하여 입력 영상에 포함된 블록을 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다.
도 7(b)는 본 발명의 일 실시예에 따라, 도 7(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조를 이용하여 예시적으로 나타내는 도면이다.
도 7(c)는 본 발명의 다른 실시예에 따라, 도 7(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조를 이용하여 예시적으로 나타내는 도면이다.
도 8은 QT 교차 분할을 주 분할 구조로, BT 수직 1:1 및/또는 BT 수평 1:1 분할을 부 분할 구조로 이용하여 입력 영상에 포함된 블록을 복수의 서브 블록으로 분할한 경우, 분할된 서브 블록이 취할 수 있는 다양한 블록의 크기 및 형태를 예시적으로 나타내는 도면이다.
도 9(a)는 QT 교차 분할을 주 분할 구조로, BT 수직 1:1, BT 수평 1:1, TT 수평 1:2:1 및/또는 TT 수직 1:2:1 분할을 부 분할 구조로 이용하여 입력 영상에 포함된 블록을 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다.
도 9(b)는 본 발명의 일 실시예에 따라, 도 9(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조를 이용하여 예시적으로 나타내는 도면이다.
도 10(a)는 QT 교차 분할을 주 분할 구조로, BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할을 부 분할 구조로 이용하여 입력 영상에 포함된 블록을 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다.
도 10(b)는 본 발명의 일 실시예에 따라, 도 10(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조를 이용하여 예시적으로 나타내는 도면이다.
도 11은 QT 교차 분할을 주 분할 구조로, BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할을 부 분할 구조로 이용하여 입력 영상에 포함된 블록을 복수의 서브 블록으로 분할한 경우, 분할된 서브 블록이 취할 수 있는 다양한 블록의 크기 및 형태를 예시적으로 나타내는 도면이다.
도 12는 변환에 사용될 수 있는 DCT-II의 실수 기저 및 실수 기저에 소정의 값을 곱하여 얻어지는 정수 기저를 나타내는 예시적인 도면이다.
도 13은 변환에 사용될 수 있는 DST-VII의 실수 기저 및 실수 기저에 소정의 값을 곱하여 얻어지는 정수 기저를 나타내는 예시적인 도면이다.
도 14는 본 발명의 일 실시예에 따른, 필터링을 설명하기 위한 플로우 차트이다.
도 15는 도 14에 따른 필터링을 수행하기 위해 사용되는, 블록 경계에 인접한 두 블록 및 그 내부의 픽셀을 나타내는 도면이다.
도 16은 본 발명에 따라 쿼드 트리 구조 및/또는 이진 트리 구조를 이용하여 분할된 블록의 구조 및 그에 따른 필터링이 적용되는 블록 경계들을 나타낸 도면이다.
도 17은 본 발명의 다른 실시예에 따른, 필터링을 설명하기 위한 플로우 차트이다.
도 18은 본 발명의 실시예에 따라 강한 필터링이 적용되는 화소를 예시하는 도면이다.
도 19는 본 발명의 실시예에 따라 약한 필터링이 적용되는 화소를 예시하는 도면이다.
도 20는 본 발명에 따라 약한 필터링이 수행되는 경우에 필터링이 적용되는 픽셀의 범위를 예시적으로 나타내는 도면이다.
도 21(a)는 본 발명의 일실시예에 따른 코너 아웃라이어 필터의 필터링 대상이 되는 코너 아웃라이어를 설명하기 위한 도면이다.
도 21(b)는 도 21(a)의 교차점을 중심으로 하는 2x2 영역의 픽셀들의 픽셀값을 예시적으로 나타낸 도면이다.
도 21(c)는 코너 아웃라이어를 검출하고 필터링하기 위해 사용되는 픽셀들의 위치를 지시하기 위한 인덱스를 표시한 도면이다.
도 22는 본 발명의 일실시예에 따른 코너 아웃라이어 필터의 동작을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제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 Structure)와 같은 재귀적인 트리 구조를 사용할 수 있는데 하나의 영상 또는 최대 크기 부호화 단위(largest coding unit)를 루트로 하여 다른 부호화 단위로 분할되는 부호화 유닛은 분할된 부호화 단위의 개수만큼의 자식 노드를 가지고 분할될 수 있다. 일정한 제한에 따라 더 이상 분할되지 않는 부호화 단위는 리프 노드가 된다. 즉, 하나의 코딩 유닛에 대하여 정방형 분할만이 가능하다고 가정하는 경우, 하나의 부호화 단위는 최대 4개의 다른 부호화 단위로 분할될 수 있다.
픽쳐에서 부호화 단위를 분할하기 위해서는 트리 구조가 사용될 수 있다. 트리 구조는 쿼드 트리 구조, 이진 트리 구조(Binary Tree Structure) 및/또는 트리플 트리 구조(Triple Tree Structure) 중 적어도 하나 이상을 포함할 수 있다. 하나의 영상 또는 최대 크기 부호화 단위를 루트로 하여 트리 구조에 따른 분할이 가능하다. 분할된 블록에 대해서는 다시 트리 구조를 재귀적으로 또는 계층적으로 적용할 수 있다. 분할된 블록의 분할에 적용되는 트리 구조는 이전에 적용된 트리 구조와 다른 트리 구조일 수 있다. 더 이상 분할되지 않는 블록은 리프 노드로서, 예측, 변환 및/또는 양자화의 단위가 될 수 있다. 트리 구조를 사용하여 블록을 분할하는 경우, 리프 노드는 정방형뿐만 아니라 비정방형일 수 있다.
이하, 본 발명의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다.
부호화 단위를 기초로 인트라 예측을 수행하는 예측 단위를 생성시 최소 부호화 단위가 아닌 경우, 복수의 예측 단위 NxN 으로 분할하지 않고 인트라 예측을 수행할 수 있다.
예측부(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 분할을 사용하는 인트라 예측을 사용할 수 있다.
인트라 예측 방법은 예측 모드에 따라 참조 화소에 AIS(Adaptive Intra Smoothing) 필터를 적용한 후 예측 블록을 생성할 수 있다. 참조 화소에 적용되는 AIS 필터의 종류는 상이할 수 있다. 인트라 예측 방법을 수행하기 위해 현재 예측 단위의 인트라 예측 모드는 현재 예측 단위의 주변에 존재하는 예측 단위의 인트라 예측 모드로부터 예측할 수 있다. 주변 예측 단위로부터 예측된 모드 정보를 이용하여 현재 예측 단위의 예측 모드를 예측하는 경우, 현재 예측 단위와 주변 예측 단위의 인트라 예측 모드가 동일하면 소정의 플래그 정보를 이용하여 현재 예측 단위와 주변 예측 단위의 예측 모드가 동일하다는 정보를 전송할 수 있고, 만약 현재 예측 단위와 주변 예측 단위의 예측 모드가 상이하면 엔트로피 부호화를 수행하여 현재 블록의 예측 모드 정보를 부호화할 수 있다.
또한, 예측부(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차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(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)를 적용할 수 있다. 또한 디블록킹 필터를 적용함에 있어 수직 필터링 및 수평 필터링 수행시 수평 방향 필터링 및 수직 방향 필터링이 병행 처리되도록 할 수 있다.
디블록킹 필터를 수행함에 있어, 블록 경계에 인접한 두 블록 P, Q의 형태, 크기 및/또는 특성에 따라 적응적인 필터링을 수행할 수 있다. 예컨대, 두 블록 P, Q의 크기가 상이할 경우, 크기가 더 큰 블록에 대해서는 크기가 작은 블록보다 더 많은 픽셀을 필터링할 수 있다. 또한, 두 블록 P, Q의 적어도 하나가 비정방형 블록인지의 여부에 기초하여, 적응적인 필터링을 수행할 수 있다. 예컨대, 블록 P가 8x8 블록이고, 블록 Q가 8x16블록인 경우, P, Q가 서로 인접한 블록 경계의 필터링에 있어서, 블록 Q에 대해서는 블록 P보다 더 많은 픽셀을 필터링할 수 있다.
블록 경계에 인접한 두 블록 P, Q의 크기가 상이하거나, 또는 적어도 어느 하나가 비정방형 블록인 경우, 두 블록 P, Q의 필터링되는 픽셀의 수를 동일하게 하되, P, Q에 대해 각각 서로 다른 강도의 필터링을 수행할 수 있다. 또는 필터링되는 픽셀의 수와 필터링 강도를 두 블록 P, Q에 대해 모두 달리 적용할 수도 있다.
오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
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)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 인트라 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 인트라 예측을 수행하지만, 인트라 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 인트라 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 N x N 분할을 사용하는 인트라 예측을 사용할 수도 있다.
예측부(230, 235)는 예측 단위 판별부, 인터 예측부 및 인트라 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 모션 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 인터 예측부(230)는 영상 부호화기에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 인터 예측을 수행할 수 있다. 또는, 현재 예측 단위가 포함된 현재 픽쳐 내에서 기-복원된 일부 영역의 정보를 기초로 인터 예측을 수행할 수도 있다.
인터 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 모션 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode), 인트라 블록 카피 모드 중 어떠한 방법인지 여부를 판단할 수 있다.
인트라 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 인트라 예측을 수행한 예측 단위인 경우, 영상 부호화기에서 제공된 예측 단위의 인트라 예측 모드 정보를 기초로 인트라 예측을 수행할 수 있다. 인트라 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화기로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다.
ALF는 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
전술한 바와 같이 이하, 본 발명의 실시예에서는 설명의 편의상 코딩 유닛(Coding Unit)을 부호화 단위라는 용어로 사용하지만, 부호화뿐만 아니라 복호화를 수행하는 단위가 될 수도 있다.
도 3(a)는 본 발명의 일실시예에 따라, 입력 영상의 기본 블록을 쿼드 트리 구조를 이용하여 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다.
도 3(b)는 입력 영상의 기본 블록을 쿼드 트리 구조 및/또는 이진 트리 구조를 사용하여 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다.
부호화 하고자 하는 입력 영상은 효율적으로 부호화하기 위하여 기본 블록 단위로 분할되어 부호화될 수 있다. 본 발명의 기본 블록은 최대 코딩 유닛(Largest Coding Unit, LCU) 또는 코딩 트리 유닛(Coding Tree Unit, CTU)으로 정의될 수 있다. 기본 블록들은 MxN 크기의 일정한 직사각형 혹은 정사각형의 형태를 가질 수 있다. M과 N은 2n (n은 1보다 큰 정수)의 값을 가지는 정수일 수 있으며 M은 블록의 가로 길이, N은 블록의 세로 길이를 의미한다. LCU 또는 CTU는 64x64, 128x128 과 같은 정사각형 크기를 가질 수도 있다. 이러한 기본 블록들은 영상 압축을 효율적으로 수행하기 위해 추가적으로 분할될 수 있다.
영상 압축을 효율적으로 수행하기 위해서는 영상을 균질도에 따라 균질 영역으로 분할하는 것이 바람직하다. 균질 영역이란, 그 영역 내에 포함된 샘플의 휘도 및/또는 색차 값 사이의 변화가 없거나, 그 변화가 소정의 임계치 이하인 경우를 의미한다. 즉, 균질 영역은 균질한 샘플 값을 갖는 샘플들로 구성되며, 균질도는 소정의 판단 기준에 따라 결정될 수 있다. 영상의 균질성을 고려하여 기본 블록을 균질 영역인 복수의 서브 블록으로 분할하면, 서브 블록의 예측 잔차 신호(residual 신호) 에너지를 보다 효율적으로 집중시킬 수 있으며, 그에 따라 변환(transform)과 양자화(quantization)시 압축 효율의 향상을 얻을 수 있다.
입력 영상 내의 기본 블록을 균질도에 따라 복수의 서브 블록으로 분할하기 위해서는 이진 트리 구조, 쿼드 트리 구조, 트리플 트리 구조, 팔진 트리 구조(Octree Structure) 및/또는 일반적인 N 진 트리 구조(N-ary Tree Structure) 등을 이용할 수 있다. 상기 복수의 트리 구조 중 적어도 하나 이상을 이용하여 기본 블록을 복수의 서브 블록으로 분할하는 것이 가능하다.
도 3(a)는 쿼드 트리 구조만을 이용하여 기본 블록을 복수의 서브 블록으로 분할한 예이다. 쿼드 트리 구조는 분할의 대상이 되는 블록을 같은 블록 크기를 갖는 4개의 블록으로 분할하는 하는 것으로서, 분할된 4개의 블록에 대해서는 다시 쿼드 트리 구조에 따른 블록의 분할이 가능하다.
도 3(b)는 쿼드 트리 구조 및/또는 이진 트리 구조를 이용하여 기본 블록을 복수의 서브 블록으로 분할한 예이다. 분할된 각각의 서브 블록 내에 표시된 알파벳은 균질도를 나타내기 위한 인덱스이다. 예컨대, 알파벳 a 가 표시된 서브 블록들은 모두 동일한 균질도를 갖는 영역을 나타낸다. 또한, 도 3(b)에서, 블록의 내부에 표시된 도면 부호는 해당 블록을 지시하며, 블록의 경계에 표시된 도면 부호는 해당 경계에 의해 분할되는 블록을 지시한다.
도 3(a), 도 3(b)에 나타낸 바와 같이, 기본 블록은 복수의 서브 블록으로 분할될 수 있다. 더 이상 분할되지 않는 서브 블록은 부호화 단위(코딩 유닛)로 결정될 수 있다. 도 3(a), 도 3(b)에 있어서, 부호화 단위는 예측, 변환 및/또는 양자화 등의 부호화의 단위가 될 수 있다. 또는 예측, 변환 및/또는 양자화를 수행하기 위해 부호화 단위는 다시 분할될 수 있다. 예컨대, 부호화 단위의 예측을 위해, 쿼드 트리 구조에 따른 분할, 이진 트리 구조에 따른 분할, 또는 비대칭형 분할이 수행될 수 있고, 정사각형 또는 직사각형의 형태가 아닌 다양한 형태의 분할도 고려될 수 있다. 또한, 부호화 단위의 변환 및/또는 양자화를 위해, 상기 예측을 위해 사용될 수 있는 분할 방법이 마찬가지로 적용될 수 있다.
입력 영상의 기본 블록을 분할할 때, 쿼드 트리 구조 및/또는 이진 트리 구조를 사용할지를 나타내는 정보는 비트스트림을 통해 시그널링될 수 있다. 입력 영상의 기본 블록의 분할 구조에 관한 정보는 예를 들어, 시퀀스 단위, 픽쳐 단위, 슬라이스 단위, 타일 단위 및/또는 기본 블록 단위로 시그널링될 수 있다. 예컨대, 상기 정보가 픽쳐 단위로 시그널링되는 경우에는, 해당 픽쳐에 포함된 모든 기본 블록들 또는 일부 기본 블록들에 대해 쿼드 트리 구조와 이진 트리 구조를 모두 이용할지 또는 쿼드 트리 구조만을 이용할지를 나타낼 수 있다. 쿼드 트리 구조만을 이용하는 것으로 결정된 경우, 기본 블록의 블록 분할 정보는 쿼드 트리 구조에 따른 분할 정보를 포함하고, 이진 트리 구조에 따른 분할 정보는 포함하지 않을 수 있다.
전술한 바와 같이, 쿼드 트리 구조는 분할의 대상이 되는 블록을 같은 블록 크기를 갖는 4개의 블록으로 분할하는 것이다. 또한, 이진 트리 구조는 분할의 대상이 되는 블록을 같은 크기를 갖는 2개의 블록으로 분할하는 것이다. 이진 트리 구조를 이용하여 블록을 분할하는 경우에는 수평 방향 분할인지 또는 수직 방향 분할인지를 나타내는 분할 방향에 관한 정보를 함께 부호화/복호화할 필요가 있다. 블록의 분할 정보를 부호화/복호화하는 방법에 대해서는 후술한다.
도 3(b)에 도시된 바와 같이, 예컨대, 기본 블록(300)은 쿼드 트리 구조를 이용하여 4개의 서브 블록으로 분할될 수 있다. 트리 구조를 이용하여 블록을 분할하는 경우, 트리 구조 상에서의 깊이에 기반하여, 각 블록의 깊이를 결정할 수 있다. 기본 블록(300)은 트리 구조 상에서 깊이가 0인 블록에 해당한다. 기본 블록(300)을 분할하여 얻어지는 서브 블록은 깊이가 1인 블록에 해당한다. 분할에 의해 얻어진 4개의 서브 블록(깊이 = 1)은 서로 같은 크기를 가질 수 있다. 4개의 서브 블록 중 좌상측에 위치하는 서브 블록(깊이 = 1)(301)은 더 이상 분할되지 않을 수 있다. 예컨대, 좌상측에 위치하는 서브 블록(깊이 = 1)(301)이 균질 영역으로 판단되는 경우, 서브 블록(301)은 더 이상 분할되지 않을 수 있다. 더 이상 분할되지 않는 서브 블록(깊이 = 1)(301)은 부호화 단위로 결정될 수 있다.
예컨대, 기본 블록(깊이 = 0)(300)으로부터 쿼드 트리 구조를 이용하여 분할된 4개의 서브 블록 중 우상측에 위치하는 서브 블록(깊이 = 1)(302)은 재귀적으로 또는 계층적으로 쿼드 트리 구조를 이용하여 4개의 서브 블록(깊이 = 2)으로 재차 분할될 수 있다. 재차 분할된 서브 블록(깊이 = 2)의 각각은 부호화 단위로 결정될 수 있다. 또는, 기본 블록(깊이 = 0)(300)의 우상측 서브 블록(깊이 = 1)(302)의 좌상측 서브 블록(깊이 = 2)(302-1)과 같이 이진 트리 구조를 이용하여 다시 분할될 수 있다. 분할된 블록은 더 이상 분할될 수 없거나, 또는 분할될 필요가 없는 균질 영역으로 판단되는 경우, 부호화 단위로 결정될 수 있다.
도 3(b)에 도시된 바와 같이, 쿼드 트리 구조 및/또는 이진 트리 구조를 이용하여 기본 블록을 분할하면, 쿼드 트리 구조만을 이용하여 분할한 도 3(a)의 경우와 비교했을 때, 보다 적응적으로, 다양한 크기를 갖는 균질 영역으로 블록을 분할할 수 있다.
전술한 바와 같이, 부호화 단위는 예측, 변환 및/또는 양자화를 위해 다시 분할하는 것이 가능하다. 그러나, 도 3(b)에 도시된 방법으로 분할하면, 매우 높은 정확도를 갖는 균질 영역으로 부호화 단위를 결정할 수 있다. 따라서, 예측, 변환 및/또는 양자화를 위하여, 부호화 단위를 다시 분할하지 않을 수 있다. 즉, 부호화 단위 그 자체가 예측의 단위가 되는 예측 유닛(prediction unit) 및/또는 변환의 단위가 되는 변환 유닛(transform unit)이 될 수 있다. 부호화 단위를 예측 유닛 및/또는 변환 유닛으로 그대로 사용할 수 있으므로, 부호화 단위를 예측 유닛 및/또는 변환 유닛으로 다시 분할함에 따르는 비용을 절약할 수 있다. 특히, 부호화 단위를 예측 유닛 및/또는 변환 유닛으로 분할하는 형태에 관한 분할 정보를 신택스 요소(syntax element)로서 부호화할 필요가 없으므로, 압축 효율의 향상을 기대할 수 있다. 또한, 전술한 바와 같이, 도 3(b)를 참조하여 설명한 블록 분할 방법에 따르면, 부호화 단위로 결정된 각각의 서브 블록은 매우 높은 정확도를 갖는 균질 영역이므로, 잔차 신호의 에너지의 집중이 매우 효율적이 되어, 변환 및/또는 양자화시 압축 효율이 향상될 수 있다.
본 발명에 따르면, 기본 블록은 쿼드 트리 구조 및/또는 이진 트리 구조를 사용하여 복수의 부호화 단위로 분할될 수 있다. 쿼드 트리 구조와 이진 트리 구조는 순서에 상관없이 필요에 따라 적절히 선택되어 이용될 수 있다. 또는 쿼드 트리 구조를 주 분할 구조로 이용하고, 이진 트리 구조를 부 분할 구조로 이용할 수 있다. 또는 이진 트리 구조를 주 분할 구조로 이용하고, 쿼드 트리 구조를 부 분할 구조로 이용할 수 있다. 어느 하나를 주 분할 구조로 하고, 나머지 하나를 부 분할 구조로 하는 경우, 먼저 주 분할 구조에 따른 분할이 수행될 수 있다. 주 분할 구조의 종단 노드(lead node)에 도달하면, 종단 노드는 부 분할 구조의 루트 노드(root node)가 되어 부 분할 구조에 따른 분할이 수행될 수 있다.
부호화시에 기본 블록을 소정의 트리 구조의 조합에 의해 분할하여 부호화하는 경우, 기본 블록을 분할하는데 사용된 트리 구조, 분할의 형태, 방향, 및/또는 비율 등에 관한 정보(이하, "블록 분할 정보"라 함)를 시그널링 할 필요가 있다. 복호화기는 비트스트림에 포함되어 전송된 정보, 또는 비트스트림의 복호화에 의해 유도되는 정보에 기초하여 기본 블록의 블록 분할 정보를 복호한 후, 블록 분할 정보에 기초하여 기본 블록을 복호화할 수 있다.
기본 블록을 트리 구조에 기초하여 분할하여, 더 이상 분할되지 않는 노드에 도달하면, 더 이상 분할되지 않는 노드는 종단 노드(leaf node)에 해당할 수 있다. 종단 노드는 예측, 변환 및/또는 양자화의 수행 단위가 될 수 있으며, 예컨대 본 명세서에서 정의하는 부호화 유닛(Coding Unit, CU)에 해당할 수 있다. 종단 노드에 해당하는 부호화 유닛은 2nx2n, 2nx2m 또는 2nx2m (n, m은 1보다 큰 정수)의 크기를 가질 수 있다.
이하에서는 기본 블록을 쿼드 트리, 이진 트리 및/또는 트리플 트리 중 적어도 하나 이상을 조합하여 분할하고, 그에 대응하는 블록 분할 정보를 구성하여 부호화/복호화하는 방법을 설명한다. 그러나, 본 발명에 따른 블록의 분할에 사용되는 트리 구조는 상기 쿼드 트리, 이진 트리 및/또는 트리플 트리로 한정되지 않으며, 전술한 바와 같이, n진 트리 구조를 이용한 블록의 분할에 광범위하게 적용될 수 있다.
도 4는 본 발명의 일 실시예에 따라, 입력 영상에 포함된 블록을 쿼드 트리 구조를 이용하여 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다.
쿼드 트리 구조를 이용하여 현재 블록을 분할할 경우, 현재 블록은 4개의 서브 블록으로 분할될 수 있다.
예컨대, 도 4(a)에 도시된 바와 같이, 교차하는 2개의 선을 이용하여 현재 블록을 분할하여 4개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "QT 교차"로 정의될 수 있다. 이 때, "QT"는 쿼드 트리(Quad Tree)를 의미할 수 있다. 이 경우, 분할된 서브 블록의 가로 및 세로의 길이는 분할 전 블록의 절반에 해당할 수 있다.
또는, 도 4(b)에 도시된 바와 같이, 3개의 수평선을 이용하여 현재 블록을 분할하여 4개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "QT 수평"으로 정의될 수 있다. 이 경우, 분할된 서브 블록의 가로의 길이는 분할 전 블록과 동일하고, 세로의 길이는 분할 전 블록의 1/4에 해당할 수 있다.
또는, 도 4(c)에 도시된 바와 같이, 3개의 수직선을 이용하여 현재 블록을 분할하여 4개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "QT 수직"으로 정의될 수 있다. 이 경우, 분할된 서브 블록의 세로의 길이는 분할 전 블록과 동일하고, 가로의 길이는 분할 전 블록의 1/4에 해당할 수 있다.
쿼드 트리 구조를 이용한 블록의 분할은, 도 4(a) 내지 도 4(c)로 한정되지 않으며, 다양한 비율을 정의하여 사용하는 것이 가능하다. 예컨대, 1:1:1:2, 1:2:2:4, 등의 비율로 블록을 분할하는 것도 가능하다. 즉, 쿼드 트리 구조를 이용한 블록의 분할은 대상 블록을 임의의 비율로 4개의 서브 블록으로 분할하는 모든 형태를 포함할 수 있다.
도 5는 본 발명의 일 실시예에 따라, 입력 영상에 포함된 블록을 이진 트리 구조를 이용하여 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다.
이진 트리 구조를 이용하여 현재 블록을 분할할 경우, 현재 블록은 2개의 서브 블록으로 분할될 수 있다.
예컨대, 도 5(a)에 도시된 바와 같이, 수직선을 이용하여 1:3의 비율로 현재 블록을 분할하여 2개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "BT 수직 1:3"으로 정의될 수 있다. 이 때, "BT"는 이진 트리(Binary Tree)를 의미할 수 있다. 분할된 2개의 서브 블록의 세로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 2개의 서브 블록의 가로의 길이의 비는 1:3에 해당한다.
또는, 도 5(b)에 도시된 바와 같이, 수직선을 이용하여 1:1의 비율로 현재 블록을 분할하여 2개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "BT 수직 1:1"로 정의될 수 있다. 분할된 2개의 서브 블록의 세로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 2개의 서브 블록의 가로의 길이의 비는 1:1에 해당한다.
또는, 도 5(c)에 도시된 바와 같이, 수직선을 이용하여 3:1의 비율로 현재 블록을 분할하여 2개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "BT 수직 3:1"로 정의될 수 있다. 분할된 2개의 서브 블록의 세로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 2개의 서브 블록의 가로의 길이의 비는 3:1에 해당한다.
또는, 도 5(d)에 도시된 바와 같이, 수평선을 이용하여 1:3의 비율로 현재 블록을 분할하여 2개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "BT 수평 1:3"으로 정의될 수 있다. 분할된 2개의 서브 블록의 가로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 2개의 서브 블록의 세로의 길이의 비는 1:3에 해당한다.
또는, 도 5(e)에 도시된 바와 같이, 수평선을 이용하여 1:1의 비율로 현재 블록을 분할하여 2개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "BT 수평 1:1"로 정의될 수 있다. 분할된 2개의 서브 블록의 가로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 2개의 서브 블록의 세로의 길이의 비는 1:1에 해당한다.
또는, 도 5(f)에 도시된 바와 같이, 수평선을 이용하여 3:1의 비율로 현재 블록을 분할하여 2개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "BT 수평 3:1"로 정의될 수 있다. 분할된 2개의 서브 블록의 가로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 2개의 서브 블록의 세로의 길이의 비는 3:1에 해당한다.
이진 트리 구조를 이용한 블록의 분할은, 도 5(a) 내지 도 5(f)로 한정되지 않으며, 다양한 비율을 정의하여 사용하는 것이 가능하다. 예컨대, 1:2, 1:4, 1:5 등의 비율로 블록을 분할하는 것도 가능하다. 즉, 이진 트리 구조를 이용한 블록의 분할은 대상 블록을 임의의 비율로 2개의 서브 블록으로 분할하는 모든 형태를 포함할 수 있다.
도 6은 본 발명의 일 실시예에 따라, 입력 영상에 포함된 블록을 트리플 트리 구조를 이용하여 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다.
트리플 트리 구조를 이용하여 현재 블록을 분할할 경우, 현재 블록은 3개의 서브 블록으로 분할될 수 있다.
예컨대, 도 6(a)에 도시된 바와 같이, 2개의 수직선을 이용하여 1:1:2의 비율로 현재 블록을 분할하여 3개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "TT 수직 1:1:2"로 정의될 수 있다. 이 때, "TT"는 트리플 트리(Triple Tree)를 의미할 수 있다. 분할된 3개의 서브 블록의 세로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 3개의 서브 블록의 가로의 길이의 비는 1:1:2에 해당한다.
또는, 도 6(b)에 도시된 바와 같이, 2개의 수직선을 이용하여 1:2:1의 비율로 현재 블록을 분할하여 3개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "TT 수직 1:2:1"로 정의될 수 있다. 분할된 3개의 서브 블록의 세로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 3개의 서브 블록의 가로의 길이의 비는 1:2:1에 해당한다.
또는, 도 6(c)에 도시된 바와 같이, 2개의 수직선을 이용하여 2:1:1의 비율로 현재 블록을 분할하여 3개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "TT 수직 2:1:1"로 정의될 수 있다. 분할된 3개의 서브 블록의 세로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 3개의 서브 블록의 가로의 길이의 비는 2:1:1에 해당한다.
또는, 도 6(d)에 도시된 바와 같이, 2개의 수평선을 이용하여 1:1:2의 비율로 현재 블록을 분할하여 3개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "TT 수평 1:1:2"로 정의될 수 있다. 분할된 3개의 서브 블록의 가로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 3개의 서브 블록의 세로의 길이의 비는 1:1:2에 해당한다.
또는, 도 6(e)에 도시된 바와 같이, 2개의 수평선을 이용하여 1:2:1의 비율로 현재 블록을 분할하여 3개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "TT 수평 1:2:1"로 정의될 수 있다. 분할된 3개의 서브 블록의 가로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 3개의 서브 블록의 세로의 길이의 비는 1:2:1에 해당한다.
또는, 도 6(f)에 도시된 바와 같이, 2개의 수평선을 이용하여 2:1:1의 비율로 현재 블록을 분할하여 3개의 서브 블록을 생성할 수 있다. 이러한 분할의 형태는 본 명세서에서 "TT 수평 2:1:1"로 정의될 수 있다. 분할된 3개의 서브 블록의 가로의 길이는 분할 전 블록의 그것과 동일하며, 분할된 3개의 서브 블록의 세로의 길이의 비는 2:1:1에 해당한다.
트리플 트리 구조를 이용한 블록의 분할은, 도 6(a) 내지 도 6(f)로 한정되지 않으며, 다양한 비율을 정의하여 사용하는 것이 가능하다. 예컨대, 1:2:2, 1:2:4, 1:2:5 등의 비율로 블록을 분할하는 것도 가능하다. 즉, 트리플 트리 구조를 이용한 블록의 분할은 대상 블록을 임의의 비율로 3개의 서브 블록으로 분할하는 모든 형태를 포함할 수 있다.
도 4 내지 도 6를 참조하여 설명된 바와 같이, 하나의 블록은 쿼드 트리 구조, 이진 트리 구조 및/또는 트리플 트리 구조에 따라 복수의 서브 블록들로 분할될 수 있다. 나아가, 분할에 의해 얻어진 복수의 서브 블록의 각각에 대해 다시 쿼드 트리 구조, 이진 트리 구조 및/또는 트리플 트리 구조에 따른 분할이 재귀적으로 또는 계층적으로 수행될 수 있다.
도 4에 도시한 실시예에 따르면, QT를 이용한 블록의 분할은 3개의 분할 형태를 가질 수 있다. 또한, 도 5 및 도 6에 도시한 실시예에 따르면, BT 또는 TT를 이용한 블록의 분할은 각각 6개씩의 분할 형태를 가질 수 있다. 따라서, 블록 분할 정보는 현재 블록의 분할에 사용된 트리 구조를 나타내는 정보 (트리 구조 정보)를 포함할 것이 요구된다. 또한, 블록 분할 정보는 선택된 트리 구조에 따른 복수의 분할 형태 중 하나의 분할 형태를 나타내기 위한 정보 (분할 형태 정보)를 포함할 것이 요구된다.
블록의 분할에 사용될 수 있는 트리 구조의 개수에 기초하여 트리 구조 정보를 부호화하는데 필요한 비트수가 결정될 수 있다. 또한, 하나의 트리 구조에 포함되는 분할 형태의 개수에 기초하여 분할 형태 정보를 부호화하는데 필요한 비트수가 결정될 수 있다.
블록의 분할에 이용될 수 있는 트리 구조의 종류는 부호화기와 복호화기에서 미리 결정될 수 있다. 또는 블록의 분할에 이용될 수 있는 트리 구조의 종류는 부호화기에서 부호화되어 비트스트림을 통해 복호화기에 전송될 수 있다. 트리 구조의 종류에 관한 정보는 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, 기본 블록 레벨 중 적어도 하나의 레벨로 부호화되어 전송될 수 있다. 예컨대, 어떤 슬라이스에 대해서는 QT 만을 사용하여 블록이 분할되는 경우, 슬라이스의 헤더 등을 통해 블록의 분할을 위해 QT가 사용됨을 나타내는 정보를 시그널링할 수 있다. 예컨대, 어떤 슬라이스에 대해서는 QT, BT, TT를 사용하여 블록이 분할되는 경우, 슬라이스의 헤더 등을 통해 블록의 분할을 위해 QT, BT, TT가 사용됨을 나타내는 정보를 시그널링할 수 있다. 부호화기와 복호화기가 디폴트로 사용되는 분할 구조를 미리 결정한 경우, 해당하는 정보를 전송하지 않아도 해당 레벨에서 어떤 트리 구조가 사용되는지를 시그널링할 수도 있다. 또는 하위 레벨에서 사용될 수 있는 트리 구조의 종류는 상위 레벨에서 사용될 수 있는 트리 구조의 종류 중 일부 또는 전부로 한정될 수 있다. 예컨대, 시퀀스 헤더를 통해 QT, BT가 사용되는 것이 시그널링되는 경우, 해당 시퀀스에 포함되는 픽처에서는 QT, BT 또는 QT와 BT의 조합만을 사용할 수 있고, TT는 사용할 수 없는 것으로 정할 수 있다. 예컨대, 블록의 분할에 사용될 수 있는 트리 구조에 관한 정보가 전송되지 않는 경우, 상위 레벨에서 시그널링되는 정보를 그대로 상속할 수도 있다.
본 명세서에서 시그널링되는 정보란, 비트스트림을 통해 명시적(explicitly)으로 시그널링되는 정보뿐만 아니라, 암묵적(implicitly)으로 시그널링되는 정보를 포함할 수 있다.
상기와 같이, 현재 레벨에 대해 사용될 수 있는 트리 구조 또는 복수의 트리 구조의 조합이 선택되면, 그에 해당하는 정보가 시그널링될 수 있다. 현재 레벨에 포함된 블록은 상기 사용될 수 있는 트리 구조 중 하나를 이용하여 분할될 수 있다. 현재 레벨에 사용될 수 있는 트리 구조가 3가지인 경우, 트리 구조 정보의 부호화에는 최소 2비트가 필요할 수 있다. 예컨대, QT에 의한 분할임을 나타내는 트리 구조 정보는 1비트로 표현될 수 있다. 예컨대, BT, TT 중 하나에 의한 분할임을 나타내는 트리 구조 정보는 2비트로 표현될 수 있다.
블록의 분할에 사용되는 트리 구조가 특정되면, 특정된 트리 구조에 따른 분할의 형태 중 하나를 특정할 필요가 있다. 예컨대, 도 6에 도시된 바와 같이, TT에 따른 분할의 형태는 6가지이므로, 현재 블록이 TT를 사용하여 분할되는 경우, 6가지 분할 형태 중 하나를 특정하기 위한 분할 형태 정보가 필요할 수 있다. 이 때, 분할 형태 정보를 부호화하는데 필요한 비트수는 가용한 분할 형태가 6가지 임을 고려하여 결정될 수 있다. 예컨대, ceil(log2(6))의 계산을 통해, 필요한 비트수를 3비트로 결정할 수 있다. 이때, ceil()은 올림 함수를 의미한다.
블록의 분할에 사용되는 트리 구조가 결정되더라도, 해당 트리 구조에 의한 분할에 포함되는 모든 분할 형태를 사용할 필요는 없다. 예컨대, 도 6의 6가지 분할 형태 중 일부만을 사용할 수 있으며, 이 경우, 분할 형태 정보의 부호화에 필요한 비트수는 저감될 수 있다. 해당 트리 구조에 의한 분할에 포함되는 분할 형태 중 어떤 분할 형태를 사용할지를 나타내는 정보는 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, 기본 블록 레벨 중 적어도 하나의 레벨로 부호화되어 전송될 수 있다.
도 4 내지 도 6으로부터 알 수 있듯이, 일부 분할의 형태는 다른 분할의 형태로부터 유도될 수 있다. 예컨대, 도 5(d)의 분할 형태는 도 4(b)의 분할 형태에서 아래 3개의 블록을 머지(merge)하여 얻을 수 있다. 따라서, 도 4 내지 도 6에 도시한 모든 분할 형태가 이용되지 않을 수 있다. 예컨대, 트리 구조 정보 및 분할 형태 정보를 통해, 해당 시퀀스, 픽처, 슬라이스, 타일, 기본 블록 중 적어도 하나에 대해 어떠한 트리 구조가 사용될지 및/또는 복수의 분할 형태 중 어떠한 분할 형태가 사용될지를 부호화하거나 복호화할 수 있다.
둘 이상의 트리 구조를 이용하여 블록을 분할하는 경우, 트리 구조 사이에 적용 순서를 미리 결정할 수 있다. 트리 구조 사이의 순서는 부호화기/복호화기에서 미리 결정되거나, 또는 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, 기본 블록 레벨 중 적어도 하나의 레벨로 부호화되어 전송될 수 있다.
예컨대, QT에 따른 분할을 주 분할로 하고, BT/TT에 따른 분할을 부 분할로 할 수 있다. 이 경우, QT에 따른 분할이 우선적으로 수행되고, 더 이상 QT에 따른 분할이 수행되지 않는 QT의 리프 노드에 대해서 BT/TT에 따른 분할이 더 수행될 수 있다. 주 분할 및 부 분할 구조를 이용하여 블록을 분할하는 경우, 전술한 트리 구조 정보 및/또는 분할 형태 정보를 부호화하는데 필요한 비트수는 더욱 저감될 수 있다. 이 때, 부 분할 구조로 사용될 수 있는 트리 구조가 둘 이상인 경우에는, 특별한 순서를 정하지 않고, 하나의 부 분할 구조를 이용하여 분할할 수도 있다. 또는 복수의 부 분할 구조 사이에 다시 순서를 정하여 블록을 분할할 수도 있다. 예컨대, QT를 주 분할 구조로 이용하고, QT의 리프 노드는 BT를 이용하여 분할하고, BT의 리프 노드는 TT를 이용하여 분할하는 계층적 구조를 이용할 수도 있다.
각각의 경우에, 트리 구조 정보 및/또는 분할 형태 정보를 표현하는데 소요되는 비트수는 상이할 수 있다.
복수의 트리 구조 중 어떤 트리 구조를 주 분할 구조로 이용할지, 복수의 부 분할 구조 사이에는 소정의 이용 순서가 존재하는지에 관한 정보는 부호화기/복호화기에서 미리 결정되거나, 또는 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, 기본 블록 레벨 중 적어도 하나의 레벨로 부호화되어 전송될 수 있다.
도 7(a)는 QT 교차 분할을 주 분할 구조로, BT 수직 1:1 및/또는 BT 수평 1:1 분할을 부 분할 구조로 이용하여 입력 영상에 포함된 블록을 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다. 도 7(a)에서, 블록의 내부에 표시된 도면 부호는 해당 블록을 지시하며, 블록의 경계에 표시된 도면 부호는 해당 경계에 의해 분할되는 블록을 지시한다.
도 7(b)는 본 발명의 일 실시예에 따라, 도 7(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조를 이용하여 예시적으로 나타내는 도면이다. 블록 분할 정보는 트리 구조 정보 및/또는 분할 형태 정보를 포함할 수 있다.
도 7(c)는 본 발명의 다른 실시예에 따라, 도 7(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조를 이용하여 예시적으로 나타내는 도면이다. 블록 분할 정보는 트리 구조 정보 및/또는 분할 형태 정보를 포함할 수 있다.
도 7(a), (b) 및 (c)에서, QT 교차 분할에 따른 블록의 분할은 실선으로 표시하고, BT 수직 1:1 및/또는 BT 수평 1:1 분할에 따른 블록의 분할은 점선으로 표시한다.
도 7(a)에 도시된 바와 같이, 기본 블록(깊이 = 0)(700)은 QT 교차 분할을 이용하여 동일 크기를 갖는 4개의 서브 블록들(깊이 = 1)로 분할된다. 이 때, 각 블록의 깊이는 트리 구조에 따른 분할에 의해 각 블록이 트리 구조 상에서 가지는 깊이를 의미할 수 있다. 4개의 서브 블록들(깊이 = 1)의 각각은 QT 교차 분할을 이용하여, 재차 분할될 수 있다. 더 이상 QT 교차 분할에 따른 분할이 수행되지 않는 서브 블록은 쿼드 트리 구조의 종단 노드에 해당한다. 쿼드 트리의 종단 노드는 이진 트리의 루트 노드(root node)가 될 수 있다. 이진 트리의 루트 노드에 대해서는 이진 트리 구조에 따른 분할(BT 수직 1:1 및/또는 BT 수평 1:1 분할)이 수행될 수 있다. 또는 이진 트리 구조에 따른 분할이 수행되지 않을 수도 있다. 쿼드 트리의 종단 노드에 대해 이진 트리 구조에 따른 분할이 수행되지 않으면, 해당 종단 노드는 부호화 단위로 결정될 수 있다.
전술한 바와 같이, 쿼드 트리의 종단 노드에 대해서는 이진 트리 구조에 따른 분할이 더 수행될 수 있다. 즉, 쿼드 트리의 종단 노드가 이진 트리의 루트 노드가 될 수 있다. 예컨대, 도 7(a)에서, 기본 블록(깊이 = 0)(700)을 분할하여 얻어진 4개의 서브 블록 중 우하측에 위치하는 서브 블록(깊이 = 1)(701)에 대해서는 더 이상 쿼드 트리 구조에 따른 분할이 수행되지 않는다. 상기 우하측 서브 블록(깊이 = 1)(701)은 이진 트리의 루트 노드로서 이진 트리 구조에 따른 분할이 수행될 수 있다. 도 7(a)에 도시된 바와 같이, 상기 우하측 서브 블록(깊이 = 1)(701)에 대해 BT 수직 1:1 분할이 수행되어 두 개의 서브 블록(깊이 = 2)으로 분할될 수 있다. 또한, 두 개의 서브 블록 중 좌측에 위치한 서브 블록(깊이 = 2)(701-1)에 대해 다시 BT 수직 1:1 분할이 수행되어 두 개의 서브 블록(깊이 = 3)(701-1a, 701-1b)으로 분할될 수 있다. 두 개의 서브 블록(깊이 = 3)(701-1a, 701-1b)의 각각은 이진 트리의 종단 노드에 해당할 수 있다. 더 이상 분할되지 않는 두 개의 서브 블록(깊이 = 3)(701-1a, 701-1b)의 각각은 부호화 단위로 결정될 수 있다.
전술한 바와 같이, 본 발명에 따라, 쿼드 트리 구조(QT 교차 분할)를 주 분할 구조로, 이진 트리 구조(BT 수직 1:1 분할 및/또는 BT 수평 1:1 분할)를 부 분할 구조로 이용하여 기본 블록(700)을 분할할 수 있다. 이 때, 기본 블록(700)을 쿼드 트리의 루트 노드로 결정할 수 있다. 쿼드 트리의 루트 노드는 쿼드 트리의 종단 노드에 도달하기 전까지 쿼드 트리 구조를 재귀적으로 또는 계층적으로 이용하여 분할될 수 있다. 쿼드 트리의 종단 노드는 이진 트리의 루트 노드가 될 수 있다. 이진 트리의 루트 노드는 이진 트리의 종단 노드에 도달하기 전까지 이진 트리 구조를 재귀적으로 또는 계층적으로 이용하여 분할할 수 있다. 쿼드 트리 구조에 따른 분할 및/또는 이진 트리 구조에 따른 분할을 포함하여 현재 블록이 더 이상 분할되지 않는 경우, 현재 블록은 부호화 단위로 결정될 수 있다.
도 7(b)는 본 발명의 일 실시예에 따라, 도 7(a)에 도시된 블록 분할 구조를 부호화/복호화하기 위한 블록 분할 정보를 나타내는 도면이다. 블록 분할 정보는 트리 구조 정보 및/또는 분할 형태 정보의 조합으로 구성될 수 있다.
도 7(b), 도 7(c)의 트리 구조에서, 괄호 안의 도면 부호는 도 7(a)에 도시된 블록의 도면 부호이며, 0 및/또는 1로 나타낸 정보는 해당 블록에 대한 블록 분할 정보의 일례를 나타낸다.
이하에서, 쿼드 트리 구조에 따른 블록 분할 여부를 나타내는 정보를 “쿼드 분할 정보”라 한다. 쿼드 분할 정보는 제1 비트 길이로 부호화될 수 있다. 제1 비트 길이는 1 비트일 수 있다. 현재 블록이 쿼드 트리 구조에 따라 분할되는 경우, 현재 블록의 쿼드 분할 정보를 “1”로 부호화할 수 있다. 현재 블록이 쿼드 트리 구조에 따라 분할되지 않는 경우에는, 쿼드 분할 정보를 “0”으로 부호화할 수 있다. 즉, 현재 블록이 쿼드 트리 구조에 따라 분할되는지의 여부는 1 비트의 쿼드 분할 정보로 부호화할 수 있다.
이하에서, 이진 트리 구조에 따른 블록 분할 정보를 “이진 분할 정보”라 한다. 이진 분할 정보는 이진 트리 구조에 따른 블록 분할 여부를 나타내는 정보 및 이진 트리 구조에 따른 분할 방향에 관한 정보 중 적어도 하나를 포함할 수 있다. 이진 분할 정보는 제2 비트 길이로 부호화될 수 있다. 제2 비트 길이는 1비트 또는 2 비트일 수 있다. 현재 블록이 이진 트리 구조에 따른 분할 대상인 경우, 후술하는 바와 같이 2 비트의 이진 분할 정보가 사용될 수 있다. 현재 블록이 이진 트리 구조에 따라 분할되는 경우, 상기 2 비트의 이진 분할 정보의 첫 번째 비트는 “1”로 부호화될 수 있다. 현재 블록이 이진 트리 구조를 이용하여 분할되지 않는 경우, 상기 2 비트의 이진 분할 정보의 첫 번째 비트는 “0”으로 부호화될 수 있다. 도 7의 블록 분할 실시예에 따르면, 이진 트리 구조에 따른 블록 분할 형태는 BT 수직 1:1 분할 및 BT 수평 1:1 분할을 포함한다. 따라서, 분할 방향(또는 분할 형태)에 관한 정보를 추가적으로 부호화할 수 있다. 즉, 이진 트리 구조에 따른 분할이 BT 수평 1:1 분할인 경우에는, 상기 2 비트의 이진 분할 정보의 두 번째 비트를 “0”으로 부호화할 수 있다. 이진 트리 구조에 따른 분할이 BT 수직 1:1 분할인 경우에는, 상기 2 비트의 이진 분할 정보의 두 번째 비트를 “1”로 부호화할 수 있다. 현재 블록에 대해 이진 트리 구조에 따른 분할이 수행되지 않는 경우, 상기 2 비트의 이진 분할 정보의 두 번째 비트는 사용되지 않을 수 있다.
상기 제1 비트 길이와 제2 비트 길이는 서로 동일할 수 있으며, 상기 실시예에 한정되지 않는다. 또한, 상기 실시예에서, 쿼드 분할 정보와 이진 분할 정보 각각의 비트 값의 의미를 반대로 정의할 수 있다. 예컨대, 쿼드 분할 정보 및/또는 이진 분할 정보의 첫 번째 비트에 “0”을 사용하여 해당 구조에 따른 분할이 수행됨을 나타내고, “1”을 사용하여 분할이 수행되지 않음을 나타낼 수 있다. 또는 이진 분할 정보의 두 번째 비트가 “0”인 경우가 수직 방향 분할, “1”인 경우가 수평 방향 분할로 각각 정의할 수 있다.
현재 블록의 블록 분할 정보는 상기 제1 비트 길이의 쿼드 분할 정보와 상기 제2 비트 길이의 이진 분할 정보를 함께 사용하여 아래의 표 1과 같이 부호화될 수 있다.
Figure PCTKR2017006634-appb-T000001
상기 표 1에서 쿼드 분할 정보는 “0” 또는 “1”이 될 수 있으며, 이진 분할 정보는 “0”, “10” 또는 “11”로 부호화될 수 있다. 블록 분할 정보는 블록의 분할 여부, 분할 타입(또는 트리 구조 정보) 및 분할 방향(또는 분할 형태 정보)을 나타내는 정보로서 쿼드 분할 정보와 이진 분할 정보를 결합한 정보 또는 쿼드 분할 정보와 이진 분할 정보의 조합을 의미하는 정보일 수 있다. 상기 표 1에서, 쿼드 분할 정보 및/또는 이진 분할 정보의 첫번째 비트는 전술한 트리 구조 정보에 대응될 수 있다. 상기 표 1에서, 이진 분할 정보의 두번째 비트는 전술한 분할 형태 정보에 대응될 수 있다. 도 7에 도시한 실시예에서 쿼드 트리 분할에 따른 형태는 QT 교차 분할만을 포함하므로, 별도의 분할 형태 정보가 필요하지 않을 수 있다. 도 7에 도시한 실시예에서 이진 트리 분할에 따른 형태는 BT 수직 1:1 및 BT 수평 1:1 분할의 두가지 형태를 포함하므로 이를 구분하기 위한 분할 형태 정보가 필요할 수 있다. 이 때 분할 형태 정보는 예컨대 1 비트길이를 가질 수 있다.
상기 표 1에서, 블록 분할 정보 “00”은 현재 블록에 대해 쿼드 트리 구조에 따른 분할과 이진 트리 구조에 따른 분할을 수행하지 않음을 의미한다. 블록 분할 정보 “010”은 현재 블록에 대해 쿼드 트리 구조에 따른 분할은 수행되지 않고(첫 번째 비트 = 0), 이진 트리 구조에 따른 분할은 수행되며(두 번째 비트 = 1), 이진 트리 구조에 따른 분할은 BT 수평 1:1 분할임을(세 번째 비트 = 0) 의미한다. 블록 분할 정보 “011”은 현재 블록에 대해 쿼드 트리 구조에 따른 분할은 수행되지 않고(첫 번째 비트 = 0), 이진 트리 구조에 따른 분할은 수행되며(두 번째 비트 = 1), 이진 트리 구조에 따른 분할은 BT 수직 1:1 분할임을(세 번째 비트 = 1) 의미한다. 블록 분할 정보 “1”은 현재 블록에 대해 쿼드 트리 구조에 따른 분할이 수행됨을 의미한다.
상기 표 1에서, 쿼드 트리 구조를 주 분할 구조로 하고, 이진 트리 구조를 부 분할 구조로 이용하는 경우, 쿼드 트리 구조에 따라 분할된 블록에 대해 일단 이진 트리 구조에 따른 분할이 수행되면, 다시 쿼드 트리 구조에 따른 분할이 수행되지 않는다. 따라서, 이진 트리 구조에 따른 분할로 얻어진 블록에 대해서는 더 이상 쿼드 트리 구조에 따른 분할 수행 여부를 나타내는 쿼드 분할 정보를 부호화/복호화할 필요가 없을 수 있다. 이 경우, 이진 트리 구조에 따른 분할로 얻어진 블록의 블록 분할 정보는 이진 분할 정보만을 포함할 수 있다. 즉, 쿼드 분할 정보 없이, 이진 분할 정보가 그대로 블록 분할 정보로 사용될 수 있으며, 블록 분할 정보 “10”은 현재 블록에 대해 이진 트리 구조에 따른 분할이 수행되며(첫 번째 비트 = 1), 이진 트리 구조에 따른 분할은 BT 수평 1:1 분할임을(두 번째 비트 = 0) 의미한다. 블록 분할 정보 “11”은 현재 블록에 대해 이진 트리 구조에 따른 분할이 수행되며(첫 번째 비트 = 1), 이진 트리 구조에 따른 분할은 BT 수직 1:1 분할임을(두 번째 비트 = 1) 의미한다. 블록 분할 정보 “0”은 이진 트리 구조에 따른 분할로 얻어진 현재 블록에 대해 더 이상 이진 트리 구조에 따른 분할이 수행되지 않음을 의미한다.
도 7(b)는 상기 표 1의 블록 분할 정보 부호화 방법을 이용하여, 도 7(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조로 도시한 도면이다. 트리 구조의 깊이는 도 7(a)의 블록 분할 구조의 깊이에 대응한다. 도 7(b)의 각 노드에 나타낸 정보는 그 노드에 대응하는 블록의 블록 분할 정보를 의미한다. 예컨대, 도 7(b)의 루트 노드에 표시된 “1”은 그 노드에 대응하는 블록, 즉 도 7(a)의 기본 블록(700)의 블록 분할 정보로서, 기본 블록(700)이 쿼드 트리 구조에 따라 4개의 서브 블록으로 QT 교차 분할됨을 나타낸다. 하나의 노드가 복수의 자식 노드를 갖는 경우, 도 7(b)에서 자식 노드를 배열한 순서는 도 7(a)에 도시된 블록 분할 구조의 래스터 스캔 순서(또는 z 스캔 순서)에 따른다. 즉, 도 7(a)의 기본 블록(깊이 = 0)(700)을 쿼드 트리 구조에 따라 4개의 서브 블록(깊이 = 1)으로 분할한 경우, 예컨대, 우하측 서브 블록(깊이 = 1)(701)은 래스터 스캔 순서상 4개의 서브 블록(깊이 = 1) 중 가장 마지막에 위치한다. 따라서, 도 7(b)의 트리 구조상에서 깊이가 1인 자식 노드 중 가장 마지막에 배열된 노드의 위치에 표시된 “011”이 도 7(a)의 우하측 서브 블록(깊이 = 1)(701)의 블록 분할 정보에 대응된다.
블록 분할 정보는 표 1에 나타낸 바와 같이, 쿼드 분할 정보와 이진 분할 정보를 결합하거나 또는 조합한 형태의 정보로서 부호화될 수 있다. 또는 쿼드 분할 정보와 이진 분할 정보를 각각 별도의 신택스 요소로서 부호화할 수도 있다. 또한, 이진 분할 정보에 포함된 이진 트리 구조에 따른 블록 분할 여부를 나타내는 정보와 이진 트리 구조에 따른 분할 방향에 관한 정보를 각각 별도의 신택스 요소로 부호화할 수도 있다. 또는, 쿼드 트리 구조에 따른 분할인지 이진 트리 구조에 따른 분할인지를 나타내는 정보를 하나의 신택스 요소로 부호화하고, 이진 트리 구조에 따른 분할인 경우, 분할 형태 정보를 다른 신택스 요소로 부호화할 수도 있다.
도 7(c)는 본 발명의 다른 실시예에 따라, 도 7(a)에 도시된 블록 분할 구조를 부호화하기 위한 블록 분할 정보를 나타내는 도면이다.
본 발명의 일 실시예에 따르면, 쿼드 분할 정보를 위해서는 1 비트가 필요하고 이진 분할 정보를 위해서는 2 비트가 필요할 수 있다. 즉, 이진 분할 정보를 시그널링 하기 위해서는 분할 형태에 관한 정보가 추가적으로 필요하므로, 이진 분할 정보는 쿼드 분할 정보보다 더 많은 비트수를 요구할 수 있다. 도 7(c)를 통해 설명되는 블록 분할 정보 부호화 방법은, 블록 분할 정보의 비트수를 고려하여, 아래의 표 2와 같이, 현재 블록에 적용될 분할 방식이 쿼드 트리 구조에 따른 분할인지 이진 트리 구조에 따른 분할인지 부호화할 수 있다.
Figure PCTKR2017006634-appb-T000002
상기 표 2에서 블록 분할 정보 “0”은 현재 블록에 대해 쿼드 트리 구조에 따른 분할과 이진 트리 구조에 따른 분할을 수행하지 않음을 의미한다. 즉, 현재 블록이 분할되지 않는 블록임을 의미한다. 블록 분할 정보 “1”은 현재 블록에 대해 쿼드 트리 구조에 따른 분할이 수행됨을 의미한다. 블록 분할 정보 “10”은 현재 블록에 대해 이진 트리 구조에 따른 분할이 BT 수평 1:1 분할임을 의미한다. 블록 분할 정보 “11”은 현재 블록에 대해 이진 트리 구조에 따른 분할이 BT 수직 1:1 분할임을 의미한다.
표 2의 블록 분할 정보 부호화 방법은 블록 분할 정보의 비트수에 기초하여, 트리 구조 정보(도 7에 도시한 실시예에서는, 쿼드 트리 구조 또는 이진 트리 구조 중 어느 트리 구조가 이용되는지를 나타내는 정보)를 시그널링한다. 1 비트인 경우는 블록의 분할 여부 및/또는 쿼드 트리 구조에 따른 분할이 수행됨을 나타낸다. 2 비트인 경우는 이진 트리 구조에 따른 분할이 수행됨을 나타낸다. 따라서, 표 1의 블록 분할 정보 부호화 방법보다 더 적은 비트수로 블록 분할 정보를 부호화하는 것이 가능하다.
도 7(c)는 상기 표 2의 블록 분할 정보 부호화 방법을 이용하여, 도 7(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조로 도시한 도면이다. 도 7(b)와 도 7(c)는 각각 표1과 표2의 서로 다른 블록 분할 정보 부호화 방법을 이용하고 있는 것 외에는 동일한 트리 구조를 갖는다. 따라서, 도 7(b)에 대한 설명 중, 일부, 특히, 자식 노드의 배열 순서에 대한 설명은 도 7(c)에 대해서도 동일하게 적용될 수 있다.
블록 분할 정보의 부호화 방법은 표 1 및 표 2에 나타낸 방법으로 제한되지 않으며, 예컨대, 표 1 및/또는 표 2의 방법을 혼합하여 사용하거나, 일부를 생략하여 사용하는 것이 가능하다. 블록 분할 정보는 현재 블록이 분할되는지 여부, 현재 블록에 적용되는 분할이 쿼드 트리 분할인지 이진 트리 분할인지 여부 및/또는 이진 트리 분할이 적용될 경우, 분할의 형태에 관한 정보, 예컨대, BT 수직 1:1 분할인지 BT 수평 1:1 분할인지를 나타낼 수 있는 모든 형태의 정보를 의미한다.
도 8은 입력 영상의 기본 블록을, 쿼드 트리 구조 및/또는 이진 트리 구조(BT 수직 1:1 분할 및/또는 BT 수평 1:1 분할)에 따라 복수의 서브 블록으로 분할한 경우, 분할된 서브 블록이 취할 수 있는 다양한 블록의 크기 및 형태를 예시적으로 나타내는 도면이다.
부호화 단위의 크기가 너무 작은 경우에는 오히려 부호화(예측, 변환 및/또는 양자화)의 효율이 저하되는 경우가 있다. 또한, 블록 분할 정보의 부호화에 따라 전송될 데이터의 양이 증가할 수 있다. 따라서, 더 작은 블록으로 분할될 수 블록의 크기를 제한할 필요가 있다. 예컨대, 분할된 블록의 길이(세로 및/또는 가로)가 소정의 값 이하인 경우에는 더 이상 분할되지 않는 것으로 할 수 있다. 상기 소정의 값은 4, 8, 16과 같이 임의의 크기로 설정할 수 있다. 상기 소정의 값은 비트스트림을 통해 시그널링할 수 있다. 상기 소정의 값은 시퀀스 단위, 픽쳐 단위, 슬라이스 단위, 타일 단위 또는 기본 블록 단위로 적응적으로 시그널링할 수 있다. 또는, 상기 소정의 값은 부호화기와 복호화기가 미리 약속한 값으로 설정할 수도 있다.
또는, 블록의 세로 또는 가로의 한 쪽만 상기 소정의 값 이하인 경우, 이진 트리 구조에 따른 분할을 한쪽 방향으로만 수행할 수 있다. 예컨대, 블록의 가로 길이는 소정의 값 이하로서 더 이상 분할될 수 없는 크기에 해당되나, 블록의 세로 길이는 소정의 값을 넘는 경우, 수평 방향의 이진 트리 분할만이 가능하도록 결정할 수 있다. 보다 구체적으로, 블록에 대한 분할이 수행되는 최소 길이가 4인 경우, 도 6에 도시된 4x32, 4x16, 4x8 블록에 대해서는 이진 트리 구조에 따른 분할이 BT 수평 1:1 분할만 가능한 것으로 취급할 수 있다. 이 때, 4x32, 4x16, 4x8 블록의 사이즈로부터 이진 트리 구조에 따른 분할이 BT 수평 1:1 분할만 가능하다는 것을 알 수 있으므로, 블록 분할 정보는 “10” 또는 “1”로 부호화될 수 있고, 더 이상 분할되지 않는 경우 블록 분할 정보는 “0”으로 부호화될 수 있다. 마찬가지로, 32x4, 16x4, 8x4 블록에 대해서는 이진 트리 구조에 따른 분할이 BT 수직 1:1 분할만 가능한 것으로 취급할 수 있다. 이 때, 32x4, 16x4, 8x4 블록의 사이즈로부터 이진 트리 구조에 따른 분할이 BT 수직 1:1 분할만 가능하다는 것을 알 수 있으므로, 블록 분할 정보는 “11” 또는 “1”로 부호화될 수 있고, 더 이상 분할되지 않는 경우 블록 분할 정보는 “0”으로 부호화될 수 있다.
또는, 블록 분할이 가능한 최대 깊이를 제한하는 것도 가능하다. 예컨대, 블록의 분할이 재귀적 또는 계층적으로 수행되어 소정 깊이에 도달한 경우에는 더 이상 분할되지 않는 것으로 설정할 수 있다. 상기 소정 깊이의 설정 및 부호화 방법에 대해서는 상기 블록 분할이 가능한 블록의 최소 크기의 설정 및 부호화 방법이 적용될 수 있다.
도 9(a)는 QT 교차 분할을 주 분할 구조로, BT 수직 1:1, BT 수평 1:1, TT 수평 1:2:1 및/또는 TT 수직 1:2:1 분할을 부 분할 구조로 이용하여 입력 영상에 포함된 블록을 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다. 도 9(a)에서, 블록의 내부에 표시된 도면 부호는 해당 블록을 지시하며, 블록의 경계에 표시된 도면 부호는 해당 경계에 의해 분할되는 블록을 지시한다.
도 9(b)는 본 발명의 일 실시예에 따라, 도 9(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조를 이용하여 예시적으로 나타내는 도면이다. 블록 분할 정보는 트리 구조 정보 및/또는 분할 형태 정보를 포함할 수 있다.
도 9(a) 및 (b)에서, QT 교차 분할에 따른 블록의 분할은 실선으로 표시하고, BT 수직 1:1, BT 수평 1:1, TT 수평 1:2:1 및/또는 TT 수직 1:2:1 분할에 따른 블록의 분할은 점선으로 표시한다.
도 9(a)에 도시된 바와 같이, 기본 블록(깊이 = 0)(900)은 QT 교차 분할을 이용하여 동일 크기를 갖는 4개의 서브 블록들(깊이 = 1)로 분할될 수 있다. 이 때, 각 블록의 깊이는 트리 구조에 따른 분할에 의해 각 블록이 트리 구조 상에서 가지는 깊이를 의미할 수 있다. 4개의 서브 블록들(깊이 = 1)의 각각은 QT 교차 분할을 이용하여, 재차 분할될 수 있다. 예컨대, 기본 블록(깊이 = 0)(900)의 우상측 블록(깊이 = 1)(901) 및 좌하측 블록(깊이 = 1)(902)은 QT 교차 분할에 의해 분할될 수 있다. 더 이상 QT 교차 분할에 따른 분할이 수행되지 않는 서브 블록은 쿼드 트리의 종단 노드에 해당한다. 쿼드 트리의 종단 노드는 이진 트리 및/또는 트리플 트리의 루트 노드(root node)가 될 수 있다. 이진 트리 및/또는 트리플 트리의 루트 노드에 대해서는 이진 트리 구조에 따른 분할(BT 수직 1:1 및/또는 BT 수평 1:1 분할) 및/또는 트리플 트리 구조에 따른 분할(TT 수평 1:2:1 및/또는 TT 수직 1:2:1 분할)이 수행될 수 있다. 또는 이진 트리 구조 및/또는 트리플 트리 구조에 따른 분할이 수행되지 않을 수도 있다. 쿼드 트리의 종단 노드에 대해 이진 트리 구조 및 트리플 트리 구조에 따른 분할이 수행되지 않으면, 해당 종단 노드는 부호화 단위로 결정될 수 있다.
전술한 바와 같이, 쿼드 트리 구조의 종단 노드에 대해서는 이진 트리 구조 및/또는 트리플 트리 구조에 따른 분할이 더 수행될 수 있다. 즉, 쿼드 트리의 종단 노드가 이진 트리 및/또는 트리플 트리의 루트 노드가 될 수 있다. 예컨대, 도 9(a)에서, 기본 블록(깊이 = 0)(900)을 분할하여 얻어진 4개의 서브 블록 중 우상측에 위치하는 서브 블록(깊이 = 1)(901)에 대해서는 재귀적으로 또는 계층적으로 QT 교차 분할이 수행될 수 있다. 서브 블록(깊이 = 1)(901)을 QT 교차 분할하여 얻어지는 4개의 서브 블록들(깊이 = 2)(901-1 내지 901-4)에 대해서는 더 이상 QT 교차 분할이 수행되지 않을 수 있다. QT 교차 분할이 수행되지 않는 4개의 서브 블록들(깊이 = 2)(901-1 내지 901-4)은 각각 쿼드 트리의 종단 노드에 해당할 수 있다. 또한, 4개의 서브 블록들(깊이 = 2)(901-1 내지 901-4)은 각각 이진 트리 및/또는 트리플 트리의 루트 노드에 해당할 수 있다. 상기 4개의 서브 블록들 중 블록 901-1, 901-2 및 901-4에 대해서는 BT 분할 및/또는 TT 분할이 수행되지 않을 수 있다. 이 경우, 서브 블록들(깊이 = 2)(901-1, 901-2, 901-4)의 각각은 부호화 단위로 결정될 수 있다.
상기 4개의 서브 블록들 중 블록 901-3에 대해서는 BT 분할 및/또는 TT 분할이 수행될 수 있다. 도 9(a)에 있어서, 서브 블록(깊이 = 2)(901-3)은 BT 수직 1:1 분할되어, 두 개의 서브 블록(깊이 = 3)으로 분할될 수 있다. BT 수직 1:1 분할에 의해 얻어진 두 개의 서브 블록(깊이 = 3)에 대해서는 계층적으로 및/또는 재귀적으로 BT 분할 및/또는 TT 분할이 수행될 수 있다. 예컨대, 도 9(a)에 도시된 바에 따르면, 서브 블록(깊이 = 2)(901-3)을 BT 수직 1:1 분할하여 얻어진 두 개의 서브 블록(깊이 = 3) 중 좌측의 블록에 대해 TT 수평 1:2:1 분할이 수행될 수 있다.
상기와 같은 방법으로 계층적 및/또는 재귀적으로 블록을 분할할 수 있으며, 더 이상 분할되지 않는 리프 노드에 해당하는 서브 블록은 부호화 단위로 결정될 수 있다.
블록의 분할 여부는 부호화기에서 결정할 수 있다. 부호화기는 영상의 특성, 균질 영역, 부호화기 및/또는 복호화기의 복잡도 및/또는 블록 분할 정보를 시그널링하는데 필요한 비트 소요량 등을 고려하여 블록의 분할 여부를 결정할 수 있다. 또는 전술한 바와 같이, 더 이상 분할하지 않는 최소 블록 사이즈를 미리 정하거나 시그널링할 수 있다.
전술한 바와 같이, 본 발명에 따라, 쿼드 트리 구조(QT 교차 분할)를 주 분할 구조로, 이진 트리 구조 및/또는 트리플 트리 구조(BT 수직 1:1, BT 수평 1:1, TT 수평 1:2:1 및/또는 TT 수직 1:2:1 분할)를 부 분할 구조로 이용하여 기본 블록(900)을 분할할 수 있다. 이 때, 기본 블록(900)을 쿼드 트리의 루트 노드로 결정할 수 있다. 쿼드 트리의 루트 노드는 쿼드 트리의 종단 노드에 도달하기 전까지 쿼드 트리를 재귀적으로 또는 계층적으로 이용하여 분할될 수 있다. 쿼드 트리의 종단 노드는 이진 트리 및/또는 트리플 트리의 루트 노드가 될 수 있다. 이진 트리 및/또는 트리플 트리의 루트 노드는 종단 노드에 도달하기 전까지 이진 트리 구조 및/또는 트리플 트리 구조를 재귀적으로 또는 계층적으로 이용하여 분할할 수 있다. 쿼드 트리 구조, 이진 트리 구조 및/또는 트리플 트리 구조에 따른 분할을 포함하여 현재 블록이 더 이상 분할되지 않는 경우, 현재 블록은 부호화 단위로 결정될 수 있다.
도 9(b)는 본 발명의 일 실시예에 따라, 도 9(a)에 도시된 블록 분할 구조를 부호화/복호화하기 위한 블록 분할 정보를 나타내는 도면이다. 블록 분할 정보는 트리 구조 정보 및/또는 분할 형태 정보의 조합으로 구성될 수 있다.
도 9(b)의 트리 구조에서, 괄호 안의 도면 부호는 도 9(a)에 도시된 블록의 도면 부호이며, 0 및/또는 1로 나타낸 정보는 해당 블록에 대한 블록 분할 정보의 일례를 나타낸다.
도 9의 실시예와 관련된 이하의 설명에서, 쿼드 트리 구조에 따른 블록 분할 여부를 나타내는 정보를 “주 분할 정보”라 한다. 주 분할 정보는 제3 비트 길이로 부호화될 수 있다. 제3 비트 길이는 1 비트일 수 있다. 현재 블록이 쿼드 트리 구조에 따라 분할되는 경우, 현재 블록의 주 분할 정보를 “1”로 부호화할 수 있다. 현재 블록이 쿼드 트리 구조에 따라 분할되지 않는 경우에는, 주 분할 정보를 “0”으로 부호화할 수 있다. 즉, 현재 블록이 쿼드 트리 구조에 따라 분할되는지의 여부는 1 비트의 주 분할 정보로 부호화할 수 있다.
이하에서, 이진 트리 구조 및/또는 트리플 트리 구조에 따른 블록 분할 정보를 “부 분할 정보”라 한다. 부 분할 정보는 이진 트리 구조 및/또는 트리플 트리 구조를 이용한 부 분할이 수행되는지 여부를 나타내는 정보, 이진 트리 구조 및 트리플 트리 구조 중 어느 트리 구조를 이용하는지를 나타내는 정보(트리 구조 정보) 및 각 트리 구조에 따른 하나 이상의 블록 분할 형태 중 하나의 블록 분할 형태를 나타내는 분할 형태 정보 중 적어도 하나를 포함할 수 있다. 부 분할 정보는 제4 비트 길이로 부호화될 수 있다. 제4 비트 길이는 1비트, 2 비트 또는 3 비트일 수 있다. 현재 블록이 부 분할 구조에 따른 분할 대상인 경우, 후술하는 바와 같이 3 비트의 이진 분할 정보가 사용될 수 있다. 현재 블록이 이진 트리 구조 및/또는 트리플 트리 구조에 따른 부 분할 구조(BT 수직 1:1, BT 수평 1:1, TT 수평 1:2:1 및/또는 TT 수직 1:2:1 분할)를 이용하여 분할되는 경우, 부 분할 정보는 부 분할이 수행됨을 나타내는 정보, 부 분할에 사용되는 트리 구조를 나타내는 정보(이진 트리 또는 트리플 트리) 및/또는 분할 형태를 나타내는 정보를 포함할 수 있으며, 각각의 정보는 1 비트로 표현될 수 있다. 현재 블록이 부 분할 구조를 이용하여 분할되지 않는 경우, 상기 부 분할 정보는 1 비트만으로 나타낼 수 있으며, 부 분할에 사용되는 트리 구조 및 분할 형태에 관한 정보는 전송할 필요가 없다. 또는 부 분할에 사용되는 모든 분할 형태 (예컨대, BT 수직 1:1, BT 수평 1:1, TT 수평 1:2:1 및/또는 TT 수직 1:2:1 분할) 중 하나를 특정하는 정보를 부호화함으로써, 트리 구조 및 분할 형태에 관한 정보를 하나의 신택스 요소로 부호화할 수도 있다.
현재 블록의 블록 분할 정보는 상기 제3 비트 길이의 주 분할 정보와 상기 제4 비트 길이의 부 분할 정보를 함께 사용하여 아래의 표 3 및 표 4와 같이 부호화될 수 있다. 표 3은 주 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보이다. 표 4는 부 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보이다. 주 분할 구조 및 부 분할 구조에 동시에 포함될 수 있는 블록은 표 3의 블록 분할 정보를 가질 수 있다.
Figure PCTKR2017006634-appb-T000003
상기 표 3에 나타낸 바와 같이, 현재 블록에 대해 주 분할(QT 교차 분할)이 수행되는 경우에는 부 분할에 관한 정보가 전송될 필요가 없다. 따라서, 주 분할이 수행되는 블록의 블록 분할 정보는 "1"로 표현될 수 있다.
주 분할이 수행되지 않는 블록의 블록 분할 정보는 주 분할의 수행 여부를 나타내는 정보를 "0"으로 나타낼 수 있다. 주 분할의 수행 여부를 나타내는 정보는 예컨대, 블록 분할 정보의 첫 번째 비트로 나타낼 수 있다. 그러나, 이는 일 실시예에 불과하며, 블록 분할 정보가 주 분할의 수행 여부를 나타내는 정보를 포함하는 모든 실시예가 본 발명에 의해 커버될 수 있다.
주 분할이 수행되지 않는 블록의 블록 분할 정보는 부 분할의 수행 여부를 나타내는 정보를 더 포함할 수 있다. 예컨대, 표 3에 나타낸 실시예에서는 블록 분할 정보의 두 번째 비트를 이용하여 부 분할의 수행 여부를 나타내고 있다. 그러나, 표 3에 나타낸 실시예는 본 발명이 커버하는 일 실시예에 불과하며, 이에 한정되지 않는다.
표 3에 나타낸 실시예에서, 블록의 블록 분할 정보가 "00"인 경우, 해당 블록은 더 이상 분할되지 않는 블록임을 알 수 있다.
주 분할이 수행되지 않는 블록으로서, 부 분할이 수행되는 블록의 블록 분할 정보는 주 분할의 수행 여부를 나타내는 정보 및 부 분할의 수행 여부를 나타내는 정보를 포함할 수 있다. 예컨대, 표 3에 나타낸 실시예에서는 블록 분할 정보의 첫 두 비트를 이용하여 이를 나타내고 있다. 즉 블록 분할 정보의 첫 두 비트를 "01"로 세팅함으로써, 해당 블록에 대해 주 분할이 수행되지 않고 부 분할이 수행됨을 나타낼 수 있다. 그러나, 표 3에 나타낸 실시예는 본 발명이 커버하는 일 실시예에 불과하며, 이에 한정되지 않는다.
부 분할이 수행되는 블록의 경우에, 수평 분할인지 수직 분할인지를 특정하기 위한 정보가 필요하며, 이는 표 3의 실시예에서 세 번째 비트로 표현될 수 있다. 예컨대, 수평 분할인 경우 블록 분할 정보의 세 번째 비트를 "0"으로 설정하고, 수직 분할 경우 블록 분할 정보의 세 번째 비트를 "1"로 설정할 수 있다. 그러나, 표 3에 나타낸 실시예는 본 발명이 커버하는 일 실시예에 불과하며, 이에 한정되지 않는다.
부 분할이 수행되는 블록의 경우에, BT 분할인지 TT 분할인지를 특정하기 위한 정보가 필요하며, 이는 표 3의 실시예에서 네 번째 비트로 표현될 수 있다. 예컨대, BT 분할의 경우 블록 분할 정보의 네 번째 비트를 "0"으로, TT 분할의 경우 블록 분할 정보의 네 번째 비트를 "1"로 설정할 수 있다.
또는, 예컨대, 도 9에 도시한 실시예에서, 부 분할에 사용되는 분할 형태는 BT 수직 1:1, BT 수평 1:1, TT 수평 1:2:1 및/또는 TT 수직 1:2:1 분할의 4가지 이므로, ceil(log2(4))에 의해 계산되는 2 비트에 의해, 트리 구조 및 분할 형태를 특정할 수 있다. 즉, 이 경우에도 하나의 트리 구조 및 분할 형태를 특정하기 위해 2 비트가 소요됨을 알 수 있고, 각각의 블록 분할 형태에 대해 할당된 정보가 표 3에 도시한 블록 분할 정보의 세 번째 및 네 번째 비트에 해당할 수 있다.
표 3을 참조하여 설명한 실시예는 본 발명이 커버하는 다양한 실시예 중 하나에 불과하며 이에 한정되지 않는다. 예컨대, 본 발명에 따른 블록 분할 정보는 주 분할 여부를 나타내는 정보, 부 분할 여부를 나타내는 정보, 복수의 부 분할 구조 중 하나를 특정하기 위한 정보 및/또는 복수의 분할 형태 중 하나를 특정하기 위한 정보를 포함하는 것으로 충분하다. 따라서, 상기 정보가 비트스트림에 부호화되는 순서 또는 비트스트림에서 출현하거나 비트스트림으로부터 유도되는 순서는 표 3을 참조하여 설명한 실시예로 한정되지 않는다. 예컨대, 복수의 부 분할 구조 중 하나를 특정하기 위한 정보와 복수의 분할 형태 중 하나를 특정하기 위한 정보의 위치가 바뀔 수도 있다.
또한, 본 발명은, 분할이 수행되는 경우를 "1", 분할이 수행되지 않는 경우를 "0"으로 표현한 것에 한정되지 않으며, 이들 비트 값을 반대로 할당하여 사용할 수도 있다.
또한, 본 발명은, 수직 분할의 경우를 "1", 수평 분할의 경우를 "0"으로 표현한 것에 한정되지 않으며, 이들 비트 값을 반대로 할당하여 사용할 수 있다.
또한, 도 9 및 표 3의 실시예에서는 BT 및 TT 의 분할 형태를 두 가지씩으로 제한하였으나, BT 및/또는 TT의 분할 형태는 도 5 및/또는 도 6을 참조하여 설명한 여러 가지 분할 형태의 일부 또는 전부를 포함할 수 있다. 예컨대, 세 가지 이상의 분할 형태를 포함하는 경우, 분할 형태 정보는 2 비트 이상으로 표현될 수 있다.
Figure PCTKR2017006634-appb-T000004
상기 표 4는 부 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보의 일 실시예를 나타낸다. 부 분할 구조에 포함된 블록에 대해서는 주 분할(QT 교차 분할)이 수행되지 않으므로, 주 분할 구조에 따른 분할을 수행할지를 나타내는 정보가 블록 분할 정보에 포함되지 않을 수 있다. 따라서, 주 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보(표 3의 블록 분할 정보)에서, 첫 번째 비트가 "0"인 비트를 제외한 나머지 비트가 부 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보(표 4의 블록 분할 정보)가 될 수 있다.
표 4에 나타낸 블록 분할 정보는 본 발명에 따른 블록 분할 정보의 일 실시예에 불과하며, 표 3을 참조하여 설명한 다양한 실시예가 표 4에 대해서도 동일하게 적용될 수 있다.
도 9, 표 3 및 표 4를 참조하여 설명한 블록의 분할 방법에 의해, 기본 블록을 복수의 서브 블록으로 분할하였을 때, 더 이상 분할되지 않는 서브 블록의 각각은 부호화 단위로 결정될 수 있다. 부호화 단위로 결정되는 각 서브 블록의 크기 및 형태는 도 8에 도시된 바와 같이, 2nx2m의 크기를 갖는 정사각형 또는 직사각형이 될 수 있다.
도 10(a)는 QT 교차 분할을 주 분할 구조로, BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할을 부 분할 구조로 이용하여 입력 영상에 포함된 블록을 복수의 서브 블록으로 분할한 구조를 예시적으로 나타내는 도면이다. 도 10(a)에서, 블록의 내부에 표시된 도면 부호는 해당 블록을 지시하며, 블록의 경계에 표시된 도면 부호는 해당 경계에 의해 분할되는 블록을 지시한다.
도 10(b)는 본 발명의 일 실시예에 따라, 도 10(a)에 도시된 블록 분할 구조에 대한 블록 분할 정보를 트리 구조를 이용하여 예시적으로 나타내는 도면이다. 블록 분할 정보는 트리 구조 정보 및/또는 분할 형태 정보를 포함할 수 있다.
도 10(a) 및 (b)에서, QT 교차 분할에 따른 블록의 분할은 실선으로 표시하고, BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할에 따른 블록의 분할은 점선으로 표시한다.
도 10에 도시한 실시예는 도 7에서 BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할이 추가된 점을 제외하면 도 7에 도시한 실시예와 동일하다. 또한, 도 10에 도시한 실시예는 도 9에서 TT 분할 대신에 BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할이 추가된 점을 제외하면 도 9에 도시한 실시예와 동일하다. 따라서, 도 10에 대한 설명으로서, 도 7과 도 9에 대한 설명으로부터 자명하게 이해될 수 있는 부분에 대한 설명은 생략한다.
도 10에 도시한 실시예에서, 주 분할 정보는 제5 비트 길이로 부호화될 수 있다. 제5 비트 길이는 1 비트일 수 있다. 현재 블록이 쿼드 트리 구조에 따라 분할되는 경우, 현재 블록의 주 분할 정보를 “1”로 부호화할 수 있다. 현재 블록이 쿼드 트리 구조에 따라 분할되지 않는 경우에는, 주 분할 정보를 “0”으로 부호화할 수 있다. 즉, 현재 블록이 쿼드 트리 구조에 따라 분할되는지의 여부는 1 비트의 주 분할 정보로 부호화할 수 있다.
도 10에 도시된 실시예에서, BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할에 따른 블록 분할 정보를 “부 분할 정보”라 한다. 부 분할 정보는 부 분할이 수행되는지 여부를 나타내는 정보, BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할 중 어느 분할 형태를 이용하는지를 나타내는 정보 중 적어도 하나를 포함할 수 있다. 부 분할 정보는 제6 비트 길이로 부호화될 수 있다. 제6 비트 길이는 1비트 내지 4 비트 중 하나의 비트 길이를 가질 수 있다. 현재 블록이 부 분할 구조에 따른 분할 대상인 경우, 후술하는 바와 같이 4 비트의 부 분할 정보가 사용될 수 있다. 부 분할 구조로서 BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할 중 하나를 이용하여 블록이 분할되는 경우, 부 분할 정보는 부 분할이 수행됨을 나타내는 정보 및/또는 분할 형태 정보를 포함할 수 있다. 분할 형태 정보는 부 분할의 방향(수직 또는 수평)을 나타내는 정보, 부 분할의 비율을 나타내는 정보(1:1 또는 1:3) 및/또는 부 분할의 비율이 1:3인 경우, 1:3인지 3:1인지를 나타내는 정보를 포함할 수 있으며, 각 정보는 예컨대, 1 비트로 표현될 수 있다.
현재 블록의 블록 분할 정보는 상기 제5 비트 길이의 주 분할 정보와 상기 제6 비트 길이의 부 분할 정보를 함께 사용하여 아래의 표 5 및 표 6과 같이 부호화될 수 있다. 표 5는 주 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보이다. 표 6은 부 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보이다. 주 분할 구조 및 부 분할 구조에 동시에 포함될 수 있는 블록은 표 5의 블록 분할 정보를 가질 수 있다.
Figure PCTKR2017006634-appb-T000005
상기 표 5에 나타낸 바와 같이, 현재 블록에 대해 주 분할(QT 교차 분할)이 수행되는 경우에는 부 분할에 관한 정보가 전송될 필요가 없다. 따라서, 주 분할이 수행되는 블록의 블록 분할 정보는 "1"로 표현될 수 있다.
주 분할이 수행되지 않는 블록의 블록 분할 정보는 주 분할의 수행 여부를 나타내는 정보를 "0"으로 나타낼 수 있다. 주 분할의 수행 여부를 나타내는 정보는 예컨대, 블록 분할 정보의 첫 번째 비트로 나타낼 수 있다.
주 분할이 수행되지 않는 블록의 블록 분할 정보는 부 분할의 수행 여부를 나타내는 정보를 더 포함할 수 있다. 예컨대, 표 5에 나타낸 실시예에서는 블록 분할 정보의 두 번째 비트를 이용하여 부 분할의 수행 여부를 나타내고 있다. 따라서, 블록의 블록 분할 정보가 "00"인 경우, 해당 블록은 더 이상 분할되지 않는 블록임을 알 수 있다.
주 분할이 수행되지 않는 블록으로서, 부 분할이 수행되는 블록의 블록 분할 정보는 주 분할의 수행 여부를 나타내는 정보 및 부 분할의 수행 여부를 나타내는 정보를 포함할 수 있다. 예컨대, 표 5에 나타낸 실시예에서는 블록 분할 정보의 첫 두 비트를 이용하여 이를 나타내고 있다. 즉 블록 분할 정보의 첫 두 비트를 "01"로 세팅함으로써, 해당 블록에 대해 주 분할이 수행되지 않고 부 분할이 수행됨을 나타낼 수 있다.
부 분할이 수행되는 블록의 경우에, 수평 분할인지 수직 분할인지에 대한 정보가 필요하다. 이는 표 5의 실시예에서 세 번째 비트로 표현될 수 있다. 예컨대, 수직 분할인 경우 블록 분할 정보의 세 번째 비트를 "1"로 설정하고, 수평 분할인 경우 블록 분할 정보의 세 번째 비트를 "0"으로 설정할 수 있다.
다음으로, 수평 분할 또는 수직 분할의 비율이 1:1인지 또는 1:3인지 여부를특정하기 위한 정보가 필요하다. 예컨대, 표 5에 나타낸 실시예에서는 1:1 분할의 경우 블록 분할 정보의 네 번째 비트를 "0"으로, 1:3 분할의 경우 블록 분할 정보의 네 번째 비트를 "1"로 설정할 수 있다.
분할의 비율이 1:3인 경우, 구체적으로 1:3 분할인지 3:1 분할인지에 대한 정보가 필요하다. 예컨대, 표 5에 나타낸 실시예에서는 1:3 분할의 경우 블록 분할 정보의 다섯 번째 비트를 "0"으로, 3:1 분할의 경우 블록 분할 정보의 다섯 번째 비트를 "1"로 설정할 수 있다.
또는, 예컨대, 도 10에 도시한 실시예에서, 부 분할에 사용되는 분할 형태는 BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할의 6 가지 이므로, ceil(log2(6))에 의해 계산되는 3 비트에 의해, 트리 구조 및 분할 형태를 특정할 수 있다. 즉, 이 경우에도 하나의 트리 구조 및 분할 형태를 특정하기 위해 3 비트가 소요됨을 알 수 있고, 각각의 블록 분할 형태에 대해 할당된 정보가 표 5에 도시한 블록 분할 정보의 세 번째, 네 번째 및 다섯 번째 비트에 해당할 수 있다.
표 5를 참조하여 설명한 실시예는 본 발명이 커버하는 다양한 실시예 중 하나에 불과하며 이에 한정되지 않는다. 예컨대, 본 발명에 따른 블록 분할 정보는 주 분할 여부를 나타내는 정보, 부 분할 여부를 나타내는 정보 및/또는 복수의 부 분할 구조 중 하나를 특정하기 위한 정보를 포함하는 것으로 충분하다. 따라서, 상기 정보가 비트스트림에 부호화되는 순서 또는 비트스트림에서 출현하거나 비트스트림으로부터 유도되는 순서는 표 5를 참조하여 설명한 실시예로 한정되지 않는다. 예컨대, 부 분할의 방향을 특정하기 위한 정보와 부 분할의 비율을 특정하기 위한 정보의 위치가 바뀔 수도 있다.
또한, 본 발명은, 분할이 수행되는 경우를 "1", 분할이 수행되지 않는 경우를 "0"으로 표현한 것에 한정되지 않으며, 이들 비트 값을 반대로 할당하여 사용할 수도 있다.
또한, 본 발명은, 수직 분할의 경우를 "1", 수평 분할의 경우를 "0"으로 표현한 것에 한정되지 않으며, 이들 비트 값을 반대로 할당하여 사용할 수 있다.
또한, 본 발명은, 1:1 비율을 "0", 1:3 비율을 "1"로 표현한 것에 한정되지 않으며, 이들 비트 값을 반대로 할당하여 사용할 수 있다.
또한, 본 발명은 1:3 비율을 "0", 3:1 비율을 "1"로 표현한 것에 한정되지 않으며, 이들 비트 값을 반대로 할당하여 사용할 수 있다.
Figure PCTKR2017006634-appb-T000006
상기 표 6은 도 10에 도시한 실시예에서, 부 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보의 일 실시예를 나타낸다. 부 분할 구조에 포함된 블록에 대해서는 주 분할(QT 교차 분할)이 수행되지 않으므로, 주 분할 구조에 따른 분할을 수행할지를 나타내는 정보가 블록 분할 정보에 포함되지 않을 수 있다. 따라서, 주 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보(표 5의 블록 분할 정보)에서, 첫번째 비트가 "0"인 비트를 제외한 나머지 비트가 부 분할 구조에 포함된 블록이 가질 수 있는 블록 분할 정보(표 6의 블록 분할 정보)가 될 수 있다.
표 6에 나타낸 블록 분할 정보는 본 발명에 따른 블록 분할 정보의 일 실시예에 불과하며, 표 5를 참조하여 설명한 다양한 실시예가 표 6에 대해서도 동일하게 적용될 수 있다.
도 10, 표 5 및 표 6을 참조하여 설명한 블록의 분할 방법에 의해, 기본 블록을 복수의 서브 블록으로 분할하였을 때, 더 이상 분할되지 않는 서브 블록의 각각은 부호화 단위로 결정될 수 있다. 도 10를 참조하여 설명한 실시예에 따라 결정된 부호화 단위는 2nx2m(n, m은 1보다 큰 정수)의 크기를 갖는 정사각형 또는 직사각형이 될 수 있다. 분할이 가능한 최소 분할 크기가 4x4라고 하면, 도 11에 도시된 바와 같이, 4x4, 8x4, 4x8, 12x4 등 2n이 아닌 가로 또는 세로를 갖는 부호화 단위가 생성될 수 있다.
도 7을 참조하여 설명한 분할 방법은 주 분할 구조로 QT 교차 분할을 사용하고, 부 분할 구조로 BT 수직 1:1 및/또는 BT 수평 1:1 분할을 사용한다. 도 9을 참조하여 설명한 분할 방법은 주 분할 구조로 QT 교차 분할을 사용하고, 부 분할 구조로 BT 수직 1:1, BT 수평 1:1, TT 수직 1:2:1 및/또는 TT 수평 1:2:1 분할을 사용한다. 도 11을 참조하여 설명한 분할 방법은 주 분할 구조로 QT 교차 분할을 사용하고, 부 분할 구조로 BT 수직 1:1, BT 수평 1:1, BT 수평 1:3, BT 수평 3:1, BT 수직 1:3 및/또는 BT 수직 3:1 분할을 사용한다. 이하에서는 QT, BT 및/또는 TT에 기초한 주 분할 구조 및 부 분할 구조를 이용하여 블록을 분할하는 방법을 보다 일반적으로 설명하고, 블록 분할 정보가 포함해야 할 정보 및 비트 수에 대해 설명한다.
도 4 내지 도 6에 도시된 바와 같이, QT에 따른 분할은 세 가지의 분할 형태를 포함할 수 있다. BT에 따른 분할은 여섯 가지의 분할 형태를 포함할 수 있다. TT에 따른 분할도 마찬가지로 여섯 가지의 분할 형태를 포함할 수 있다. 그러나, 이는 도 4 내지 도 6에 도시된 바에 기초한 분할 형태일 뿐이며, 분할 형태의 개수는 이로써 한정되지 않는다. 예컨대, 비율을 다양하게 설정하면, QT, BT, TT의 분할 형태의 개수는 늘어날 수 있다. 예컨대, BT 1:4, BT 1:5, BT 2:5, TT 1:3:1, TT 1:4:1, TT 1:2:2와 같은 다양한 비율의 분할 형태를 설정하는 것이 가능하다.
도 4 내지 도 6에 도시된 분할 형태는 15 가지이며, 이 중 하나의 분할 형태가 주 분할 구조로서 사용될 수 있다. 예컨대, QT 교차 분할이 주 분할 구조로서 사용될 수 있으나, 주 분할 구조는 QT 교차 분할로 한정되지는 않는다.
QT 교차 분할이 주 분할 구조로서 사용되는 경우, 나머지 14 개의 분할 형태의 전부 또는 일부가 부 분할 구조로서 사용될 수 있다.
주 분할 구조로서 어떠한 분할 형태를 사용할지 및/또는 부 분할 구조로서 어떠한 분할 형태를 사용할지 등에 관한 정보는 전술한 바와 같이, 시퀀스, 픽처, 슬라이스, 타일, 기본 블록 중 적어도 하나 이상을 통해 전송될 수 있다. 또는 부호화기와 복호화기에서 미리 결정될 수 있다. 또는 부호화 파라미터 및/또는 부호화/복호화 과정에서 유도되는 내부 변수 등에 기초하여 유도될 수도 있다.
주 분할 구조에 따른 분할이 수행되는지 여부를 나타내기 위해, 전술한 바와 같이 예컨대, 1 비트가 소요될 수 있다.
부 분할 구조에 따른 분할이 수행되는지 여부를 나타내기 위해, 전술한 바와 같이 예컨대, 1 비트가 소요될 수 있다.
부 분할 구조로 사용되는 분할 형태의 개수가 n이라고 할 때, n개의 가용한 분할 형태 중 어떤 분할 형태를 사용할 지를 나타내는 정보는 ceil(log2(n))에 의해 나타낼 수 있다. 여기서 ceil()는 올림 함수를 의미한다.
따라서, 주 분할 구조에 속하는 블록의 블록 분할 정보는 주 분할의 수행 여부를 나타내는 정보(예컨대, 1 비트의 정보), 주 분할이 수행되지 않는 경우, 부 분할의 수행 여부를 나타내는 정보(예컨대, 1 비트의 정보) 및/또는 부 분할이 수행되는 경우, n개의 가용한 분할 형태 중 하나를 나타내는 정보(예컨대, ceil(log2(n)) 비트의 정보)를 포함할 수 있다. 이는 아래의 표 7로 나타낼 수 있다.
Figure PCTKR2017006634-appb-T000007
한편, 부 분할 구조에 속하는 블록의 블록 분할 정보는 부 분할의 수행 여부를 나타내는 정보(예컨대, 1 비트의 정보) 및/또는 부 분할이 수행되는 경우, n개의 가용한 분할 형태 중 하나를 나타내는 정보(예컨대, ceil(log2(n)) 비트의 정보)를 포함할 수 있다. 이는 아래의 표 8로 나타낼 수 있다.
Figure PCTKR2017006634-appb-T000008
상기 도 7 내지 도 11을 참조하여 설명된 다양한 실시예는 일반적인 주 분할 구조 및/또는 부 분할 구조에 따른 분할 방법에도 적용될 수 있다. 또한, 주 분할 구조 및/또는 부 분할 구조에 따른 분할 방법의 다른 실시예로서, 주 분할을 적용할 수 있는 횟수, 깊이 및/또는 블록의 크기(최대 크기 및/또는 최소 크기)를 제한하는 것도 가능하다. 또는 부 분할을 적용할 수 있는 횟수, 깊이 및/또는 블록의 크기(최대 크기 및/또는 최소 크기)를 제한하는 것도 가능하다. 예를 들어, 주 분할은 최초 1 번만 적용할 수 있고, 이후에는 부 분할만 가능하도록 제한할 수도 있다. 또는 주 분할은 복수 회 적용할 수 있고, 부 분할은 1 번만 적용할 수 있도록 제한할 수도 있다. 또는 주 분할은 n 번만 적용할 수 있고, 부 분할은 m 번만 적용할 수 있도록 제한할 수도 있다. 이 때, n, m은 1 이상의 정수일 수 있다. 주 분할 및 부 분할의 상기 추가적인 제한 사항에 관한 정보는 시퀀스, 픽처, 슬라이스, 타일, 기본 블록 중 적어도 하나 이상의 단위로 전송될 수 있다. 또는 상기 추가적인 제한 사항에 관한 정보는 부호화기와 복호화기에서 미리 설정될 수 있다. 또는 상기 추가적인 제한 사항에 관한 정보는 부호화 파라미터 및/또는 부호화/복호화 과정에서 사용되는 내부 변수에 의해 결정될 수도 있다.
부호화 파라미터 및/또는 내부 변수는 블록의 크기에 관한 정보, 블록의 분할 깊이에 관한 정보, 루마 성분 및/또는 크로마 성분에 관한 정보, 인터 모드에 관한 정보, 인트라 모드에 관한 정보, 부호화 블록 플래그, 양자화 매개 변수, 움직임 벡터, 참조 영상에 관한 정보 및/또는 PCM 모드로 부호화 되었는지에 관한 정보 등을 포함할 수 있다. 또한, 상기 부호화 파라미터 및/또는 내부 변수는 현재 블록에 대한 것뿐만 아니라 이웃 블록에 대한 것을 포함할 수 있다.
트리 구조를 이용하여 블록을 계층적으로 분할하는 분할 방법은, 주 분할/부 분할을 구분하는 분할 방법과, 주 분할/부 분할을 구분하지 않는 분할 방법이 존재할 수 있다.
주 분할/부 분할을 구분하는 분할 방법은 멀티 분할 계층 방식으로 정의될 수 있다. 예컨대, 도 7 내지 도 11을 참조하여 설명한 다양한 분할 방법이 이에 해당할 수 있다. 멀티 분할 계층 방식에 따르면, 주 분할 구조로서 하나의 분할 구조가 결정되고, 부 분할 구조로서 1 이상의 분할 구조가 결정될 수 있다. 부 분할 구조로서 복수의 분할 구조가 존재할 수 있으며, 상이한 트리 구조를 이용하는 부 분할도 가능하다. 예컨대, BT 및/또는 TT를 이용하는 부 분할 구조가 가능하다. 이때, BT 및 TT는 순서에 상관없이 부 분할 구조로서 이용될 수 있다. 즉, BT를 이용한 분할이 수행된 후에 TT를 이용한 분할이 수행될 수 있고, 다시 BT를 이용한 분할이 수행될 수도 있다. 또는 BT와 TT 사이에 적용 순서가 있을 수 있다. 예컨대, 주 분할 구조의 리프 노드에 대해서는 먼저 BT가 우선적으로 적용될 수 있고, BT를 이용한 부 분할 구조의 리프 노드에 대해서 TT가 적용될 수 있다. 이때, 주 분할 구조의 리프 노드에 대해서 BT를 이용한 부 분할이 수행되지 않으면, TT를 이용한 부 분할이 적용될 수도 있다.
주 분할/부 분할을 구분하지 않는 분할 방법은 단일 분할 계층 방식으로 정의될 수 있다. 예컨대, 도 4 내지 도 6를 참조하여 설명한 다양한 분할의 형태의 일부 또는 전부가 순서에 상관없이 블록의 분할 구조로서 이용될 수 있다. n 개의 분할 형태를 이용하는 단일 분할 계층 방식의 경우, 트리 구조의 각각의 노드의 블록 분할 정보를 나타내기 위해 1 내지 ceil(log2(n))+1 비트가 소요될 수 있다. 따라서, 일반적으로는 단일 분할 계층 방식을 이용하면, 멀티 분할 계층 방식을 이용하는 경우에 비하여 블록 분할 정보를 부호화하는데 필요한 비트 수가 늘어날 수 있다.
블록을 분할하는 다양한 방법 및 블록 분할 정보를 부호화하는 다양한 실시예에 대해 전술하였다. 상기 실시예들에 있어서, 부호화기로부터 복호화기로 전송되어야 할 정보는 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, 기본 블록 레벨 중 적어도 하나의 레벨을 통해 전송될 수 있다. 부호화되는 정보는 단일 분할 계층 방식이 적용되는지 멀티 분할 방식이 적용되는지에 관한 정보를 포함할 수 있다. 또한 부호화되는 정보는 주 분할 구조로서 이용될 수 있는 분할 형태 및/또는 부 분할 구조로서 이용될 수 있는 분할 형태에 관한 정보를 포함할 수 있다. 또한 부호화되는 정보는 주 분할 및/또는 부 분할이 가능한 횟수/깊이/블록의 크기 등에 관한 정보를 포함할 수 있다. 상기 부호화되는 정보는 부호화기와 복호화기에서 미리 설정하는 것도 가능하다. 또는 상기 정보들은 다른 부호화 파라미터 또는 내부 변수에 의해 유도될 수 있다.
전술한 바와 같이, 쿼드 트리 구조, 이진 트리 구조 및/또는 트리플 트리 구조를 포함하는 분할 구조에 따라 기본 블록을 분할함으로써, 더 이상 분할되지 않는 복수의 서브 블록이 결정될 수 있다. 더 이상 분할되지 않는 서브 블록은 부호화 단위로 결정되어 예측, 변환 및/또는 양자화의 단위가 될 수 있다. 부호화 단계에서는 각각의 부호화 단위에 대하여 인터 예측 또는 인트라 예측을 수행하여 예측 신호를 구할 수 있다. 구해진 예측 신호와 부호화 단위의 원본 신호의 차이로부터 잔차 신호를 계산할 수 있다. 계산된 잔차 신호에 대해서는 에너지 집중을 위해 변환이 수행될 수 있다.
본 발명에 따른 부호화 단위는 4x4, 4x8, 8x4, 8x8, 16x4, 4x16 등 다양한 크기의 직사각형 또는 정사각형 형태이므로, 본 발명에 따른 부호화 단위의 잔차 신호를 변환하기 위해서는 정방형 변환뿐만 아니라 비정방형 변환에 대한 정의가 필요하다. 변환에 사용되는 수식은 다음과 같다.
Figure PCTKR2017006634-appb-M000001
X는 m x n 크기의 2 차원 잔차 신호 블록이고, A는 수평 방향 1차원 n 포인트 변환을 의미하며, BT는 수직 방향 1차원 m 포인트 변환을 의미한다. BT는 B의 전치 행렬을 의미한다. 상기 m과 n은 다른 크기를 가질 수도 있고, 같은 크기를 가질 수도 있다. 또한, A와 B는 같은 변환 기저일 수도 있고, 서로 다른 변환 기저일 수도 있다. Y는 잔차 신호 블록 X를 변환하여 얻어지는 변환 블록을 의미한다.
변환 블록 Y를 역 변환하는 과정에 사용되는 수식은 다음과 같다.
Figure PCTKR2017006634-appb-M000002
상기 수학식 1 및 수학식 2에 있어서, 수직 방향 변환과 수평 방향 변환은 그 수행 순서에 상관없이 유사한 결과를 얻을 수 있다. 그러나, 변환 계수들의 표현 범위가 16 비트와 같이 제한된 비트 정확도(bit precision)를 가지면, 수직 방향 변환과 수평 방향 변환의 수행 순서를 부호화기와 복호화기에서 동일하게 사용해야 한다. 이는 제한된 비트 정확도에 기인하여 연산의 중간에 버려지는 데이터가 발생하기 때문이다. 부호화기/복호화기에서 발생할 수 있는 미스 매치(mismatch)를 방지하기 위해서는 부호화기/복호화기에서 동일한 순서로 수직 방향 변환과 수평 방향 변환을 수행해야 한다.
상기 수학식 1의 변환과 수학식 2의 역변환 수식이 성립되기 위해서 변환 기저들은 분리 특성(separability)과 직교성(orthogonality)를 만족할 필요가 있다. 이러한 제약이 필요한 이유는 계산량이 O(n4) 에서 O(n3) 으로 감소하며 AT = A-1을 만족하기 때문이다.
변환 기저(transform basis vectors)들로 사용될 수 있는 기저(basis vectors, kernel)들의 종류에는 DCT-II(Discrete Cosine Transform type-II), DCT-V, DCT-VIII, DST-I(Discrete Sine Transform type-I), DST-VII 등이 있다. 실제 부호화기/복호화기에서는 계산 속도와 계산의 정확성을 위해 변환 기저들을 정수로 근사화하여 사용할 수 있다.
부호화 단위의 크기가 m x n 인 경우, 분리 특성(separability)에 따라, 1차원 n 포인트 변환과 1차원 m 포인트 변환이 필요하다. 아래의 수학식 3은 4 <= m, n <= 64 인 경우 모든 부호화 단위의 크기에 대하여 적용될 수 있는 1차원 DCT-II 변환 기저의 예이다.
Figure PCTKR2017006634-appb-M000003
부호화기/복호화기의 변환에 사용하기 위하여 실수 값을 갖는 변환 기저 각각의 원소들에 대하여
Figure PCTKR2017006634-appb-I000001
을 곱한 후 정수 단위로 반올림하여 정수 변환 기저를 생성할 수 있다. 도 12는 변환에 사용될 수 있는 DCT-II의 실수 기저 및 실수 기저에 소정의 값을 곱하여 얻어지는 정수 기저를 나타내는 예시적인 도면이다. 도 12에서는 K 값으로 64를 적용하여 얻어지는 정수 변환 기저를 도시한다. K 값이 커질수록 변환의 정확도는 향상될 수 있지만 부호화기/복호화기의 메모리 사용량이 증가할 수 있으므로 상황에 맞게 K 값이 선택될 수 있다. 역변환시에는 반대로
Figure PCTKR2017006634-appb-I000002
로 나누어 준다. 쉬프트 연산을 이용하여 계산량을 줄이기 위해 K = 2K (K는 1 보다 큰 정수)를 사용할 수 있다.
도 13은 변환에 사용될 수 있는 DST-VII의 실수 변환 기저 및 실수 변환 기저에 소정의 값을 곱하여 얻어지는 정수 변환 기저를 나타내는 예시적인 도면이다. 도 12를 참조하여 설명한 바와 같이, 부호화 단위의 크기가 m x n 인 경우 1차원 n 포인트 변환과 1차원 m 포인트 변환이 필요하다. 도 13에 도시한 바와 같이, 4 <= m, n <= 64 인 경우 모든 크기의 부호화 단위에 대하여 1차원 DST 변환도 적용이 가능하다.
도 14는 본 발명의 일 실시예에 따른, 인루프 필터링을 설명하기 위한 플로우 차트이다. 인루프 필터는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다. 또는 인루프 필터링은 복원 샘플 및/또는 예측 샘플에 적용되는 필터링을 포함할 수 있다.
도 15는 도 14에 따른 인루프 필터링을 수행하기 위해 사용되는, 블록 경계에 인접한 두 블록 및 그 내부의 픽셀을 나타내는 도면이다.
인루프 필터링은 블록 단위로 수행되는 변환 및 양자화 과정에 의해 블록 경계에서 발생하는 블록화 현상(Blocking Artifacts)를 감소시키기 위한 방법일 수 있다. 인루프 필터링은, 임의의 크기 이상의 수직(vertical) 블록 경계에 대해 수평 방향 필터링(Horizontal Filtering)을 수행한 후 수평(horizontal) 블록 경계에 대해 수직 방향 필터링(Vertical Filtering)을 실시할 수 있다. 또는 수직 방향 필터링을 수행한 후 수평 방향 필터링을 수행할 수도 있다. 먼저 실시된 필터링의 결과가 다음에 실시되는 필터링의 입력이 되기 때문에, 필터링의 순서는 부호화기/복호화기에서 동일해야 한다. 필터링의 순서가 동일하지 않으면, 부호화/복호화에서, 필터링된 화소값들 사이에 불일치(mismatch)가 발생할 수 있다.
인루프 필터링이 적용되는 임의의 크기는 부호화기/복호화기에서 미리 설정될 수도 있고, 비트스트림을 통해 시그널링되는 정보로부터 결정될 수도 있다. 예컨대, 임의의 크기는 4x4, 8x8, 16x16 등의 크기를 가질 수 있고, 가로와 세로의 길이가 상이하게 결정될 수도 있다.
인루프 필터링은 선택적으로 수행될 수 있으며, 인루프 필터링을 수행할 지 여부의 결정을 선결적으로 수행할 수 있다. 예를 들어, 필터링 수행 여부의 결정은 필터링의 수행 여부를 지시하는 정보, BS(Boundary Strength) 값, 블록 경계에 인접한 픽셀들의 변화량에 관한 적어도 하나의 변수 값 중 적어도 하나에 기초하여 결정될 수 있다. 필터링의 수행 여부를 지시하는 정보는 시퀀스, 픽쳐, 슬라이스, 타일 및 블록 레벨 중 적어도 하나 이상을 통해 시그널링 될 수 있다.
도 14에 도시된 방법에 따르면, 필터링 수행 여부를 결정하기 위해, 필터링되는 블록 경계에 인접한 적어도 하나의 블록의 부호화 정보를 이용할 수 있다. 여기서 부호화 정보는 블록의 예측 모드, 움직임 정보 및/또는 변환 계수 등을 포함할 수 있다.
단계 S1401에서, 예측 유닛(Prediction Unit, PU) 및/또는 변환 유닛(Transform Unit, TU)의 경계에 대해, 블록 경계의 세기를 의미하는 BS(Boundary Strength) 값을 계산할 수 있다(S1401). 예측 유닛 및/또는 변환 유닛은 블록 경계에 인접한 두 블록의 종류를 의미하며, BS 값의 계산에 이용되는 블록의 종류는 이에 한정되지 않는다. 예컨대, 후술하는 바와 같이 부호화 유닛(Coding Unit, CU)의 경계에 대해 BS 값을 계산할 수도 있다.
예컨대, 블록 경계에 인접한 두 블록 중 적어도 하나의 블록이 화면내 예측 모드로 부호화된 경우, BS 값은 제1 값으로 결정될 수 있다. 제1 값은 예를 들어, 2 또는 그 이상의 상수로 결정될 수 있다. 블록 경계에 인접한 두 블록이 모두 화면간 예측 모드로 부호화된 경우, 두 블록의 움직임 벡터(motion vector)의 값, 움직임 벡터의 개수, 참조 픽쳐(reference picture)의 동일 여부 및/또는 두 블록 중 적어도 한 블록이 0이 아닌 양자화된 잔차 신호 계수(quantized residual coefficient)를 갖는지의 여부 등에 따라 BS 값은 제2 값을 가질 수 있다. 제2 값은 제1 값보다 작은 상수(예를 들어, 0, 1 등)일 수 있다. BS 값은 제1 값 및 제2 값에 한정되지 않고, 예컨대, BS 값의 결정 기준을 보다 세분화하여, 제3 값, 제4 값 등 다양한 단계의 값을 갖도록 할 수 있다. 이하에서는 BS 값이 0, 1 및 2 중 하나의 값을 갖는 실시예를 기준으로 설명한다. 그러나 전술한 바와 같이, BS 값은 그 이상의 다양한 값을 가질 수 있으므로, 후술하는 실시예에 한정되지 않는다.
단계 S1402에서는 BS값이 0인지 아닌지에 대한 판단이 수행될 수 있다. BS값이 0인 경우에는 필터링을 수행하지 않을 수 있다(S1403).
BS값이 0이 아닌 경우, 단계 S1404가 수행될 수 있다. 단계 S1404에서, 블록 경계에 인접한 픽셀들의 픽셀 변화량을 측정하는 델타(delta)값을 계산할 수 있다. 델타값은 소정의 블록 단위로 계산될 수 있다. 이때 소정의 블록 단위에 속하는 전부 또는 일부 라인(행 또는 열)이 이용될 수 있다. 상기 일부 라인의 위치 및/또는 개수는 부호화기/복호화기에 기-약속된 고정된 것일 수도 있고, 블록의 크기/형태에 따라 가변적으로 결정될 수도 있다. 또한, 라인 상에 위치한 하나 또는 그 이상의 픽셀들이 이용될 수 있고, 이때 복수의 픽셀들은 연속적으로 배열된 것일 수도 있고, 일정 간격으로 떨어진 비연속적인 픽셀들일 수도 있다. 예를 들어, 델타값은 4x4 블록단위마다 도 15의 블록 내부의 밝은 회색으로 표시된 영역의 픽셀들의 변화량에 의해 계산할 수 있다.
도 15에서, 중앙의 굵은 수직선은 좌우의 블록 P와 블록 Q 사이의 경계를 의미한다. 블록 P 및 블록 Q 내부의 격자의 각각은 하나의 화소(픽셀)를 나타낸다. 각 격자 내부에 표시된 부호는 해당 격자에 대응하는 화소를 지시하기 위해 사용되는 인덱스이다.
델타값의 계산은 블록 경계 주변 픽셀들의 밝기 값의 변화량에 기초하여 계산될 수 있다. 블록 경계 주변 픽셀들의 밝기 값의 변화량은 블록 경계를 중심으로 좌측 및/또는 우측(또는 상측 및/또는 하측)에 위치하는 픽셀들의 밝기 값의 변화량에 기초하여 계산될 수 있다. 예를 들어, 델타값의 계산은, 도 15에 도시된 블록 P와 블록 Q의 화소들을 이용하여, 아래의 수학식 4에 따라 계산할 수 있다. 수학식 4는 해당 블록 경계에서의 에지(edge)의 세기를 계산하는 식일 수 있다.
Figure PCTKR2017006634-appb-M000004
Figure PCTKR2017006634-appb-I000003
또한, 단계 S1404에서, 2 가지의 임계값인 베타(β)값과 tC값을 유도할 수 있다. 베타값과 tC값은 양자화 파라미터(Quantization Parameter, QP)와 아래의 표3에 기초하여 유도될 수 있다. 상기 양자화 파라미터는 블록 경계에 인접한 두 블록 또는 두 블록 중 적어도 하나의 블록의 양자화와 관련된 파라미터로부터 유도될 수 있다. 표9의 Q는 양자화 파라미터로부터 유도되는 값이다. 양자화 파라미터로부터 Q값이 결정되면, 표9를 참조하여 β'와 tC'값을 결정할 수 있다. 베타값과 tC값은 결정된 β'와 tC'에 기초하여 결정될 수 있다.
Figure PCTKR2017006634-appb-T000009
베타값 및/또는 tC값은 필터링 수행 여부를 결정하기 위해 사용될 수 있다. 또한 베타값 및/또는 tC값은 필터링이 수행되는 것으로 결정된 경우, 필터링 타입을 선택하는데 사용될 수 있다. 필터링 타입은 필터링이 적용되는 픽셀들의 범위, 필터링의 강도 등에 따라 달라질 수 있다. 예컨대, 필터링 타입에는 강한 필터링(Strong filtering)과 약한 필터링(Weak filtering)이 포함될 수 있다. 그러나, 필터링 타입은 이에 한정되지 않으며, 예컨대, 필터링의 강도가 각각 상이한 3 종류 이상의 필터링 타입을 가질 수도 있다. 또는, 후술하는 바와 같이, 블록 경계에 인접한 두 블록의 형태, 크기 및/또는 특성에 따라 각각 다른 필터링이 적용되는 경우, 각각을 별개의 필터링 타입으로 설정할 수 있다. 또한 베타값 및/또는 tC값은 필터링 수행 시, 필터링된 픽셀의 클리핑(clipping)을 위해 사용될 수 있다.
단계 S1405에서, 델타값과 베타값에 대한 비교가 수행될 수 있다. 단계 S1405의 비교 결과에 기초하여 필터링 수행 여부를 결정할 수 있다. 델타값이 베타값보다 작지 않으면, 필터링을 수행하지 않을 수 있다(S1403). 델타값이 베타값보다 작으면, 필터링을 수행하는 것으로 결정하고, 해당 블록 경계에 대해 적용될 필터링 타입을 결정할 수 있다. 또는 델타값이 베타값보다 작은 경우에 필터링을 수행하지 않는 것으로 결정하고, 델타값이 베타값보다 작지 않은 경우에, 필터링을 수행하는 것으로 결정할 수도 있다. 도 14에 도시된 실시예에서는 필터링 타입은 강한 필터링과 약한 필터링의 두가지를 포함하며, 단계 S1406에서는 강한 필터링과 약한 필터링 중 어느 필터링을 수행할지의 여부를 결정할 수 있다. 강한 필터링과 약한 필터링 중 어느 필터링을 수행할 지 여부는 블록 경계에 인접한 두 블록 내부의 픽셀값의 변화량과 소정의 임계치를 비교하여 결정될 수 있다. 이때 사용되는 블록 내부의 픽셀값의 변화량은 델타값의 계산에서 이용된 변화량일 수 있다. 또는 블록 경계에 인접한 각각의 블록 내부의 픽셀값들 사이의 변화량과 소정의 임계치가 비교될 수도 있다. 또는 블록 경계를 중심으로 인접하는 둘 이상의 픽셀값들 사이의 변화량과 소정의 임계치가 비교될 수도 있다. 상기 소정의 임계치는 기정의된 상수값, 비트스트림을 통해 시그널링되는 값, 블록의 형태, 크기 등의 특성에 따라 결정되는 값 전술한 베타값 및 tC값 중 적어도 하나 이상의 값이 될 수 있다. 또는 베타값 및/또는 tC값을 스케일링한 값이 사용될 수도 있다. 또한, 상기 픽셀값들 사이의 변화량은 상기 임계치를 이용하여 스케일링 된 후 상기 임계치와 비교될 수 있다. 예컨대, 강한 필터링과 약한 필터링 중 어느 필터링을 수행할지의 여부는 아래의 수학식 5 및/또는 수학식 6의 조건을 만족하는지 여부에 의해 결정될 수 있다.
Figure PCTKR2017006634-appb-M000005
Figure PCTKR2017006634-appb-M000006
상기 수학식 5는 도 15의 첫 번째 열에 대한 식이고, 상기 수학식 6은 도 15의 네 번째 열에 대한 식이다. 상기 수학식 5 및/또는 수학식 6의 조건이 모두 만족하면, 해당 블록 경계에 대해 강한 필터링을 수행할 수 있다(S1407). 그렇지 않으면 약한 필터링을 수행할 수 있다(S1408). 델타값의 계산과 관련하여 전술한 바와 같이, 필터링 타입의 결정에는 블록 경계에 인접한 소정의 블록 단위에 속하는 전부 또는 일부 라인(행 또는 열)이 이용될 수 있다. 상기 일부 라인의 위치 및/또는 개수는 부호화기/복호화기에 기-약속된 고정된 것일 수도 있고, 블록의 크기/형태에 따라 가변적으로 결정될 수도 있다. 또한, 라인 상에 위치한 하나 또는 그 이상의 픽셀들이 이용될 수 있고, 이때 복수의 픽셀들은 연속적으로 배열된 것일 수도 있고, 일정 간격으로 떨어진 비연속적인 픽셀들일 수도 있다. 블록 경계에 인접한 두 블록의 형태 및/또는 크기가 상이한 경우, 본 명세서에서 픽셀의 위치를 특정하기 위해 사용된 인덱스(예컨대, p0,0, p1,0, q2,0 등)는 적응적으로 달라질 수 있다.
강한 필터링이 수행되는 경우(S1407), 블록 경계에 인접한 두 블록을 모두 사용하여, 블록당 m개(여기서, m은 3 또는 그 이상의 상수)의 픽셀이 필터링될 수 있다. 약한 필터링이 수행되는 경우(S1408), 블록 경계에 인접한 두 블록을 모두 사용하거나, 혹은 하나의 블록을 사용하여 블록당 n개(여기서, n은 m보다 작은 상수)의 픽셀이 필터링될 수 있다. 도 14의 단계 S1407 및 S1408의 하단에 도시한 필터링 적용 범위는 m은 3, n은 2인 경우를 예시적으로 나타내며, m, n은 이에 한정되지 않는다. 또한, 도 14에 도시한 필터링 방법은 반드시 이에 한정되지 않는다. 즉, 각 단계는 필요에 따라 스킵될 수 있으며, 2 이상의 단계를 하나의 단계로 병합하거나, 하나의 단계를 2 이상의 단계로 분할하는 것도 가능하다. 또한, 일부 단계의 수행 순서가 변경될 수 있다.
본 발명에 따라 기본 블록을 쿼드 트리 구조 및/또는 이진 트리 구조를 이용하여 분할하는 경우, 도 3(b), 도 7(a) 등에 도시된 바와 같이, 부호화 단위가 되는 블록의 모양 및 크기가 매우 가변적이며, 직사각형 형태의 부호화 단위를 포함하도록 분할될 수 있다.
본 발명에 따라 쿼드 트리 구조 및/또는 이진 트리 구조를 이용하여 블록을 분할하면, 더 이상 분할되지 않는 블록은 부호화 단위로서 예측, 변환 및/또는 양자화의 단위가 될 수 있다. 즉, 기본 블록은 정사각형 또는 직사각형의 형태를 갖는 다양한 크기의 부호화 단위로 분할될 수 있고, 각 부호화 단위는 예측 또는 변환을 위해 다시 분할될 필요가 없이, 그 자체로 예측 유닛 및/또는 변환 유닛이 될 수 있다.
부호화 단위는 곧바로 변환 유닛이 될 수 있으므로, 부호화 단위의 크기가 다양해짐에 따라 변환 유닛도 매우 다양한 크기를 가질 수 있다. 따라서 변환 유닛 경계에서 발생하는 블록화 현상이 블록의 형태, 크기 및/또는 특성에 따라 보다 다양하게 나타날 수 있다. 그러므로 인루프 필터링의 강도 및/또는 적용 범위를 블록 경계에 인접한 블록의 형태, 크기 및/또는 특성에 맞추어 수행할 필요가 있다.
도 16은 본 발명에 따라 쿼드 트리 구조 및/또는 이진 트리 구조를 이용하여 분할된 블록의 구조 및 그에 따른 인루프 필터링이 적용되는 블록 경계들을 나타낸 도면이다. 도 16에서 굵은 선으로 표시된 블록 경계는 인루프 필터링이 적용될 수 있는 블록 경계를 예시적으로 나타낸 것이다.
부호화기와 복호화기의 복잡도를 고려하여 블록의 너비(width)나 높이(height)가 4인 블록 (ex. 4x8, 8x4, 4x4 등)들의 블록 경계에 대해서는 필터링을 수행하지 않을 수 있다. 즉, 도 16에서 검정 선으로 표시된 블록 경계에 대해서는 필터링이 수행되지 않을 수 있다.
도 17은 본 발명의 다른 실시예에 따른 필터링을 설명하기 위한 플로우 차트이다. 도 17을 참조하여, 도 16에 도시된 바와 같이, 비균등 블록을 포함하는 영상에 대한 수정된 인루프 필터링 방법을 설명한다. 여기서 비균등 블록이란, 블록의 너비와 높이가 상이한 블록을 의미한다.
도 17의 각 단계의 설명에 있어서, 도 14의 각 단계에 대한 설명과 공통되는 부분은 중복하여 설명하지 않고, 이하에서는, 도 17의 방법과 도 14의 방법과의 차이점을 위주로 설명한다. 도 14의 단계 S1401에서는 PU와 TU를 기준으로 BS값을 계산하였으나, 도 17의 단계 S1701에서의 BS의 계산은 블록 경계에 인접한 두 부호화 단위(Coding Unit, CU)를 기준으로 수행될 수 있다.
BS 값은 전술한 바와 같이, 제1 값 및/또는 제2 값을 갖거나 그 이상의 값을 가질 수 있다. 단계 S1702에서, BS 값이 0인지의 여부의 판단에 따라, 필터링이 수행되지 않거나(S1703), 단계 S1704에 따라 필터링이 수행될 수 있다.
단계 S1704에서는 델타값, 베타값 및 tC값이 계산/유도될 수 있다. 단계 S1705에서 델타값과 베타값을 비교할 수 있다. 단계 S1705에서 델타값이 베타값보다 작은 것으로 판단되면, 블록 경계에 인접한 블록 중 적어도 하나의 블록이 비균등 블록인지 확인할 수 있다(S1706). 블록 경계에 인접한 두 개의 블록이 모두 정방형 블록인 경우, 도 14의 S1406 내지 S1408에 따른 필터링이 수행될 수 있다(S1707). 블록 경계에 인접한 두 개의 블록 중 적어도 하나의 블록이 비균등 블록인 경우, 본 발명의 다른 실시예에 따라, S1708 이후의 과정이 수행될 수 있다. 또는, 블록 경계에 인접한 두 개의 블록의 형태 및/또는 크기가 서로 상이한 경우에도 본 발명의 다른 실시예에 따라, S1708 이후의 과정이 수행될 수 있다. 단계 S1708에서, 소정의 기준에 따라 필터링 타입을 선택할 수 있다. 필터링 타입은 예컨대, 강한 필터링과 약한 필터링을 포함할 수 있으나, 전술한 바와 같이 이에 한정되지 않는다. 강한 필터링이 선택되면, 단계 S1709에서 강한 필터링을 수행하며, 약한 필터링이 선택되면, S1710에서 약한 필터링을 수행할 수 있다. 단계 S1709, S1710의 하단에 예시적으로 도시한 바와 같이, 블록 경계에 인접한 두 블록에 대해 필터링이 적용되는 범위가 상이할 수 있다. 구체적인 필터링 적용 범위에 대해서는 후술한다. 도 17에 도시한 필터링 방법은 반드시 이에 한정되지 않는다. 즉, 각 단계는 필요에 따라 스킵될 수 있으며, 2 이상의 단계를 하나의 단계로 병합하거나, 하나의 단계를 2 이상의 단계로 분할하는 것도 가능하다. 또한, 일부 단계의 수행 순서가 변경될 수 있다. 또한, 도 17을 참조하여 설명한 실시예와 상충되지 않는 범위에서, 도 14를 참조하여 설명한 내용이 동일하게 적용될 수 있다.
도 18은 도 17의 S1709에 따라 강한 필터링이 적용되는 화소를 예시하는 도면이다. 도 18에 도시된 바와 같이, 블록 경계(붉은 선으로 표시)에 인접한 두 블록은 각각 8x8 및 16x8일 수 있다. 16x8 크기를 갖는 블록은 비균등 블록에 해당한다. 도 14를 참조하여 설명한 바와 같이, 블록 경계에 강한 필터링을 적용할지 약한 필터링을 적용할지 여부는 두 블록 또는 두 블록 중 적어도 한 블록의 양자화 파라미터에 기초하여 결정될 수 있다. 블록 경계에 인접한 두 블록 중 적어도 하나의 블록이 비균등 블록인 경우, 블록 경계에 인접한 두 블록의 너비 및/또는 높이가 함께 고려될 수 있다. 구체적으로, 블록 경계에 인접한 두 블록 P와 블록 Q의 너비와 높이를 고려하여, 블록의 크기가 더 큰 블록에는 블록 경계 주변 픽셀들을 더 많이 필터링할 수 있다. 이는, 변환 및 양자화로 인해 나타나는 블록화 현상이 양자화 파라미터뿐 아니라, 블록 경계에 인접한 두 블록의 크기와도 관련이 있기 때문이다. 예컨대, 블록 경계에 인접한 두 블록 중, 상대적으로 큰 블록은 블록의 DC성분을 제외한 AC성분들이 양자화 스텝 사이즈(Quantization step, Qstep)로 인해 양자화되어 제거될 수 있으며, 이 때, 상대적으로 큰 블록 내부에서 AC부분이 제거된 해당 위치가, 인접하는 블록의 DC 부분과 인접할 수도 있다. 이와 같은 경우, 블록화 현상이 심각하게 나타날 수 있다. 본 발명의 다른 실시예에 따른 필터링 방법은 이러한 불일치를 줄이기 위해 블록의 형태, 크기 및/또는 특성을 고려하여 필터링을 수행할 수 있다.
블록 경계의 강도(BS)의 유도, 필터링의 수행 여부 결정, 강한 필터링과 약한 필터링의 선택 등의 과정은 블록 경계에 인접한 두 블록의 크기에 기초하여 수행될 수도 있고, 도 14를 참조하여 설명한 방법에 의해 수행될 수도 있다.
도 18에 도시된 바와 같이, 블록 경계에 인접한 두 블록의 크기가 각각 8x8 및 16x8이고, 해당 블록 경계에 대해 강한 필터링이 수행되는 경우, 블록의 크기가 더 큰 블록에 대해서는 더 많은 화소를 필터링할 수 있다. 예컨대, 8x8 블록에 대해서는 3개의 화소(b, c, d)를 필터링하고, 이보다 상대적으로 크기가 큰 16x8 블록에 대해서는 4개의 화소(e, f, g, h)를 필터링할 수 있다. 필터링되는 화소의 개수는 이에 한정되지 않으며, 상대적으로 크기가 더 큰 블록에 대해서는 상대적으로 크기가 작은 블록보다 더 많은 화소가 필터링될 수 있다. 도 18에 도시된 필터링 대상 화소들에 대한 필터링은 블록 경계에 인접한 두 블록 내부의 픽셀값들의 평균 및/또는 가중 평균을 이용하거나, 이에 준하는 중간값의 계산에 의해 수행될 수 있다. 예컨대, 아래의 수학식 7을 이용하여 필터링을 수행할 수 있다.
Figure PCTKR2017006634-appb-M000007
상기 수학식 7에서, 알파벳 a, b, c, d, e, f, g, h, i 로 표현한 부분은 예측 신호 및 복호화된 잔차 신호가 더해져 복원된 화소값을 의미하며, b', c', d', e', f', g', h'로 표현된 알파벳은 필터 계수를 통해 필터링이 수행된 후 수정된 화소값을 의미한다.
도 19는 도 17의 S1710에 따라 약한 필터링이 적용되는 화소를 예시하는 도면이다. 도 19에 도시된 바와 같이, 블록 경계에 인접한 두 블록의 크기가 각각 8x8 및 16x8이고, 해당 블록 경계에 대해 약한 필터링이 수행되는 경우, 예컨대, 8x8 블록에 대해서는 2개의 화소(c, d)를 필터링하고, 이보다 상대적으로 크기가 큰 16x8 블록에 대해서는 3개의 화소(e, f, g)를 필터링할 수 있다.
필터링의 수행 과정은 블록 경계에 인접한 두 블록 내부의 픽셀값들의 차이값에 기초하여 Δ값을 계산함으로써 수행될 수 있다. 이때, 블록 경계에 인접한 두 픽셀값들의 차이값에 보다 큰 가중치를 두어 Δ값을 계산할 수 있다. 이때, 블록 경계에 인접한 두 픽셀값들의 차이값은 Δ값과 비례하는 관계일 수 있다. 또한, 블록 경계에 직접적으로 인접하지 않은 픽셀값들의 차이값을 이용하여 Δ값을 계산할 수 있다. 이때, 블록 경계에 직접적으로 인접하지 않은 픽셀값들의 차이값은 Δ값과 반비례하는 관계일 수 있다. Δ값은 상기 픽셀값들의 차이값들을 하나 이상 이용하여 계산될 수 있으며, 계산된 값은 기정의된 상수, 블록의 형태, 크기 등의 특성에 따라 결정되는 값 및/또는 비트스트림을 통해 시그널링 되는 값을 이용하여 스케일링될 수 있다. 예컨대, 아래의 수학식 8과 같이 Δ값을 계산할 수 있다. 계산된 Δ값은 필터링의 대상이 되는 픽셀값에 더하거나 빼줌으로써 필터링된 픽셀값을 계산할 수 있다.
Figure PCTKR2017006634-appb-M000008
약한 필터링은 하나의 블록에 대해서만 수행할 수도 있고, 두 블록 모두에 대해 수행될 수도 있다. 블록 경계에 인접한 두 블록 중 적어도 하나의 블록이 비균등 블록인 블록 경계에 대해 약한 필터링이 적용되는 경우, 블록 경계의 픽셀인 d와 e는, 각각의 픽셀값에 수학식 8에 의해 계산된 차이값 Δ를 더하거나 빼줌으로써 필터링될 수 있다. 비균등 블록 내부에 위치한 픽셀들 (f, g)의 경우, 블록 경계에 인접한 두 블록 내부의 픽셀값들의 평균 및/또는 가중 평균을 이용하거나, 이에 준하는 중간값의 계산에 의해 수행될 수 있다. 예로서 아래의 수학식 9와 같이, 블록 경계의 주변 픽셀값을 이용하여 필터링을 수행할 수 있다.
Figure PCTKR2017006634-appb-M000009
도 19에서, 만약 블록 경계의 왼쪽이 16x8 블록인 경우는 두 픽셀 b와 c에 대해, 상기 수학식 9를 유사하게 적용할 수 있다.
본 발명의 다른 실시예에 따른 필터링은 블록 경계에 위치한 두 블록 중 적어도 하나의 블록이 비균등 블록인 경우에 수행될 수 있다. 또한, 본 발명의 다른 실시예에 따른 필터링은 블록 경계에 위치한 두 블록의 크기가 다른 경우에도 적용될 수 있다. 블록 경계에 인접한 두 블록의 크기가 같은 경우 또는 두 블록 모두 정방형인 경우, 도 14를 참조하여 설명한 필터링이 수행될 수 있다.
도 20은 본 발명에 따라 약한 필터링이 수행되는 경우에 필터링이 적용되는 픽셀의 범위를 예시적으로 나타내는 도면이다. 도 20에서 굵은 선은 블록의 블록 경계를 나타낸다. 굵은 선의 내부의 격자는 각각의 블록 내부의 픽셀을 의미한다. 도 20에 있어서, 예컨대, 필터링이 수행되는 최소 블록 크기는 8x8이다. 따라서, 가로 및/또는 세로의 크기가 4인 블록의 경계에 대해서는 필터링이 수행되지 않을 수 있다. 도 20에서, 진한 회색으로 표시한 부분은, 도 14를 참조하여 설명된 필터링이 적용되는 화소 범위를 나타낸다. 도 20에서, 밝은 회색으로 표시한 부분은 비균등 블록(16x8)의 내부의 영역으로서, 도 17을 참조하여 설명된 필터링이 적용되는 화소 범위를 나타낸다.
본 발명에 따른 영상 부호화 장치의 필터부(150) 및 영상 복호화 장치의 필터부(240)는 본 발명에 따른 필터링의 대상인 코너 아웃라이어(Corner outlier)를 필터링하는 코너 아웃라이어 필터를 더 포함할 수 있다. 코너 아웃라이어 필터는 디블록킹 필터의 앞 또는 뒤, 오프셋 보정부의 앞 또는 뒤, ALF(Adaptive Loop Filter)의 앞 또는 뒤에 위치할 수 있다. 또는, 본 발명에 따른 필터링은 인루프(in-loop) 필터링의 일부로 수행될 수도 있으며, 인트라 예측 또는 인터 예측의 레퍼런스로서 사용되는 픽셀들에 대해서도 수행될 수 있다.
도 21(a)는 본 발명의 일실시예에 따른 코너 아웃라이어 필터의 필터링 대상이 되는 코너 아웃라이어를 설명하기 위한 도면이다. 도 21(b)는 도 21(a)의 교차점을 중심으로 하는 2x2 영역의 픽셀들의 픽셀값을 예시적으로 나타낸 도면이다. 도 21(c)는 코너 아웃라이어를 검출하고 필터링하기 위해 사용되는 픽셀들의 위치를 지시하기 위한 인덱스를 표시한 도면이다. 도 21(a), 도 21(b) 및 도 21(c)에 있어서, 굵은 선으로 나타낸 부분은 블록과 블록간의 경계를 의미하며, 각 격자는 하나의 픽셀에 대응된다.
도 21(a)에 도시된 바와 같이, 블록 단위로 복호화된 영상에 있어서, 하나의 교차점(2100)을 중심으로 4개의 블록(2101, 2102, 2103, 2104)의 코너가 만날 수 있다. 4개의 블록(2101, 2102, 2103, 2104) 각각의 크기는 서로 상이하거나, 일부 또는 전부 동일할 수 있다. 상기 4개의 블록(2101, 2102, 2103, 2104)은 각각 예측, 양자화 또는 변환의 단위 블록이 될 수 있다. 상기 4개의 블록(2101, 2102, 2103, 2104)의 양자화(또는 역양자화)에 사용된 양자화 파라미터는 각각 서로 상이하거나 일부 또는 전부 동일할 수 있다.
상기 복호화된 영상은 다양한 형태의 이미지 영역을 포함할 수 있으며, 이미지 영역의 경계(에지)가 부호화/복호화의 단위인 블록의 경계와 일치하지 않을 수 있다. 예컨대, 도 21(a)에 있어서, 빗금친 부분의 이미지 영역(2105)은 복수의 블록(2101, 2102, 2103, 2104)에 걸쳐 존재할 수 있으며, 이중 하나의 블록(2101)에 대해서는 코너 부분에만 걸쳐 존재할 수 있다. 이 때, 교차점(2100)을 중심으로 인접하는 4개의 코너 픽셀들은 모두 동일 이미지 영역(2105)에 속하는 인접 픽셀들이므로 유사한 픽셀값을 가질 것을 예상할 수 있다.
그러나, 예측, 양자화, 변환 등의 부호화/복호화 처리가 블록 단위로 수행되는 등의 이유로, 복호화된 영상에 포함된 동일 이미지 영역(2105)에 속하는 상기 4개의 인접 코너 픽셀들 사이에도 픽셀값이 크게 차이나는 경우가 있다. 예컨대, 도 21(a)에서, 교차점(2100)을 중심으로 인접하는 4개의 코너 픽셀들 중, 좌상측 블록(2101)에 속하는 코너 픽셀의 픽셀값이 다른 나머지 3개의 코너 픽셀의 픽셀값들 보다 매우 작거나 커지는 경우가 있다.
본 발명의 코너 아웃라이어 필터는 복호화된 영상에 포함된 4개의 블록들(2101, 2102, 2103, 2104)이 하나의 교차점(2100)을 중심으로 만날 때, 상기 교차점(2100)을 중심으로 인접하는 4개의 코너 픽셀들 중, 다른 코너 픽셀들의 픽셀값들과 큰 차이를 나타내는 픽셀값을 갖는 코너 픽셀을 코너 아웃라이어로서 검출하고 필터링한다. 즉, 코너 아웃라이어란, 양자화 에러(quantization error) 또는 예측 에러(prediction error) 등으로 인하여, 복원된 영상내의 하나의 블록의 코너 픽셀값이 그와 인접한 다른 블록의 코너 픽셀값들과 큰 차이를 나타내는 경우에, 이러한 노이즈(noise)를 포함하는 코너 픽셀로 정의될 수 있다. 또한, 본 발명에 따른 코너 아웃라이어는, 주변 인접 픽셀들의 픽셀값들과 큰 차이를 나타내는 픽셀값을 갖는 픽셀 및 그 주변 픽셀들을 포함할 수 있다.
도 21(b)는 도 21(a)의 교차점(2100)을 중심으로 하는 2x2 영역을 확대한 확대도이다. 도 21(b)에 있어서, 각각의 격자에 포함된 숫자는 블록에 포함된 픽셀이 갖는 픽셀값을 예시적으로 나타낸다.
도 21(b)에 도시된 바와 같이, 교차점(2100)에 인접하는 4개의 코너 픽셀들은 픽셀값으로서 각각 120, 61, 44, 29의 값을 가질 수 있다. 이와 같이, 인접하는 4개의 코너 픽셀 중 픽셀값이 120인 코너 픽셀(빗금친 부분)이 다른 나머지 3개의 코너 픽셀들의 픽셀값들(61, 44, 29)과 큰 차이를 나타냄을 알 수 있다. 따라서, 120의 픽셀값을 갖는 코너 픽셀이 본 발명의 필터링의 대상인 코너 아웃라이어에 해당될 수 있다.
도 21(c)는 코너 아웃라이어를 검출하고 필터링하기 위해 사용되는 상기 2x2 영역의 픽셀들의 위치를 지시하기 위한 인덱스를 표시한 도면이다. 도 21(c)에 도시된 바와 같이, 교차점(2100)을 중심으로 인접하는 코너 픽셀들의 위치는 대문자(A, B, C 및 D)로 각각 표시하고, 각 코너 픽셀에 인접하는 픽셀들의 위치는 소문자와 숫자를 결합(a1, a2, b1, b2, c1, c2, d1, d2)하여 표시한다. 코너 아웃라이어를 검출하고 필터링하기 위해 사용되는 코너 아웃라이어 필터의 입력은 도 21(c)에 도시된 영역의 픽셀들로 한정되지 않으며, 블록과 블록 사이의 경계를 중심으로 수직적, 수평적 및/또는 대각선으로 인접하는 영역내의 픽셀들이 이용될 수 있다. 예컨대, 3x3, 4x4 등과 같은 정사각형 영역의 픽셀들을 이용할 수도 있고, 또는 1x2, 2x1, 1x3, 3x1, 1x4, 4x1, 2x3, 3x2, 2x4, 4x2, 3x4, 4x3 등과 같은 직사각형 영역의 픽셀들을 이용할 수도 있다. 코너 아웃라이어 필터의 입력으로 사용되는 픽셀들은 부호화기/복호화기가 이미 알고 있는 위치의 픽셀들일 수 있다. 또는 그 픽셀들의 위치와 관련된 정보가 비트스트림에 포함되어 시그널링될 수도 있다.
이하, 도 21(c)에 도시한 픽셀들의 위치에 관한 인덱스를 참조하여 코너 아웃라이어 필터의 동작을 설명한다. 또한, 도 21(c)에 도시한 픽셀들의 위치에 관한 인덱스 중, 코너 픽셀 B의 픽셀값이 다른 인접 코너 픽셀 A, C 및 D의 픽셀값들과 큰 차이를 나타내는 경우를 가정하여 설명한다.
도 22는 본 발명의 일 실시예에 따른 코너 아웃라이어 필터의 동작을 설명하기 위한 순서도이다.
코너 아웃라이어 필터의 입력으로서, 하나의 교차점(2100)을 중심으로 인접하는 4개의 블록들(2101, 2102, 2103, 2104)에 포함된 픽셀들의 픽셀값들이 사용될 수 있다. 예컨대, 도 21(c)에 도시된 2x2 영역 내의 픽셀들의 픽셀값들이 코너 아웃라이어 필터의 입력으로서 사용될 수 있다.
코너 아웃라이어 선택 단계(S2201)에서는, 하나의 교차점(2100)을 중심으로 4개의 블록들(2101, 2102, 2103, 2104)이 인접할 때, 상기 교차점에 인접하는 4개의 코너 픽셀들(A, B, C, D) 중, 다른 인접 코너 픽셀들의 픽셀값들과 큰 차이를 나타내는 픽셀값을 갖는 코너 픽셀을 코너 아웃라이어로서 선택한다.
코너 아웃라이어의 선택은, 상기 교차점에 인접하는 코너 픽셀의 픽셀값들 사이의 차이값과 제1 문턱값(threshold)을 이용하여 수행될 수 있다. 상기 픽셀값들 사이의 차이값은 수평, 수직 및/또는 대각선으로 인접하고 있는 픽셀들의 픽셀값들 사이의 차이값일 수 있다. 상기 제1 문턱값은 양자화 파라미터에 기초하여 설정될 수 있다. 예컨대, 상기 제1 문턱값은 상기 인접한 4개의 블록(2101, 2102, 2103, 2104)의 양자화 파라미터 중 어느 하나일 수도 있고, 또는 상기 인접한 4개의 블록(2101, 2102, 2103, 2104)의 양자화 파라미터 중 최대값, 최소값, 최빈값, 중간값, 평균값, 가중평균값 및/또는 이들 값을 소정의 상수값으로 스케일링하여 유도되는 값을 제1 문턱값으로서 사용할 수 있다. 상기 소정의 상수값은 고정된 값을 사용하거나 가변적일 수 있으며, 비트스트림에 포함되어 시그널링된 정보에 기초하여 획득될 수도 있다. 그러나, 제1 문턱값은 이에 한정되지 않으며, 기 정의된 값을 사용하거나, 영상의 특성 등에 따라 다른 값으로 설정하거나, 또는 비트스트림에 의해 시그널링되는 값을 사용할 수도 있다.
본 발명의 일실시예에 따르면, 아래의 수학식 10으로부터, 상기 교차점에 인접하는 4개의 코너 픽셀들(A, B, C, D) 중, 다른 인접 코너 픽셀들의 픽셀값들과 큰 차이를 나타내는 픽셀값을 갖는 코너 픽셀을 코너 아웃라이어로서 선택할 수 있다.
Figure PCTKR2017006634-appb-M000010
상기 수학식 10에 따르면, 먼저, 4개의 코너 픽셀들의 픽셀값들의 차이값에 기초하여, 4개의 코너 픽셀들 중, 다른 인접 코너 픽셀들의 픽셀값들과 큰 차이를 나타내는 픽셀값을 갖는 코너 픽셀을 선택할 수 있다.
구체적으로, 코너 픽셀 A와 코너 픽셀 C의 픽셀값의 차이값과 코너 픽셀 B와 코너 픽셀 D의 픽셀값의 차이값을 비교함으로써, 코너 픽셀 A 또는 코너 픽셀 C 중에 코너 아웃라이어가 포함되는지, 아니면 코너 픽셀 B 또는 코너 픽셀 D에 코너 아웃라이어가 포함되는지 판단할 수 있다. 예컨대, 코너 픽셀 A와 코너 픽셀 C의 픽셀값의 차이값이 코너 픽셀 B와 코너 픽셀 D의 픽셀값의 차이값보다 작다면, 코너 픽셀 B 또는 코너 픽셀 D 중에 코너 아웃라이어가 포함되는 것으로 판단할 수 있다.
코너 픽셀 B 또는 코너 픽셀 D 중에 코너 아웃라이어가 포함되는 것으로 판단되면, 다시 코너 픽셀 B와 코너 픽셀 C의 픽셀값의 차이값과 코너 픽셀 A와 코너 픽셀 D의 픽셀값의 차이값을 비교할 수 있다. 만약, 코너 픽셀 B와 코너 픽셀 C의 픽셀값의 차이값이 코너 픽셀 A와 코너 픽셀 D의 픽셀값의 차이값보다 크다면, 코너 픽셀 B 또는 코너 픽셀 C 중에 코너 아웃라이어가 포함되는 것으로 판단할 수 있다.
상기 예에서, 첫번째 비교과정(
Figure PCTKR2017006634-appb-I000004
)을 통해, 코너 픽셀 B 또는 코너 픽셀 D 중에 코너 아웃라이어가 포함되는 것으로 판단되고, 두번째 비교과정(
Figure PCTKR2017006634-appb-I000005
)을 통해, 코너 픽셀 B 또는 코너 픽셀 C 중에 코너 아웃라이어가 포함되는 것으로 판단된다면, 상기 두 번의 비교 과정을 통해, 코너 픽셀 B의 픽셀값이 다른 코너 픽셀 A, C, D의 픽셀값들과 큰 차이를 갖는 것을 알 수 있다. 따라서, 코너 픽셀 B가 나타내는 코너 아웃라이어가 될 수 있는 것으로 판단할 수 있다.
상기와 같이, 인접한 코너 픽셀의 픽셀값들 사이의 차이값을 비교하는 절차를 통해, 4개의 인접한 코너 픽셀(A, B, C, D) 중, 다른 3개의 인접 코너 픽셀들의 픽셀값들과 큰 차이를 나타내는 픽셀값을 갖는 코너 픽셀을 선택할 수 있다. 그러나, 인접하는 4개의 코너 픽셀들 중 다른 코너 픽셀들의 픽셀값들과 큰 차이를 나타내는 픽셀값을 갖는 코너 픽셀의 선택은 상기 수학식 10에 의한 방법 이외에도 다양한 방법에 의해 수행될 수 있다.
상기 수학식 10에서, 두 번의 비교 과정을 통해, 4개의 인접한 코너 픽셀(A, B, C, D) 중, 다른 3개의 인접 코너 픽셀들의 픽셀값과 큰 차이를 나타내는 픽셀값을 갖는 코너 픽셀로서, 코너 픽셀 B가 선택되면, 선택된 코너 픽셀 B와 다른 3개의 인접 코너 픽셀 A, C, D와의 픽셀값의 차이값을 제1 문턱값과 비교할 수 있다. 상기 제1 문턱값은 예컨대, 상기 인접한 4개의 블록의 양자화 파라미터의 평균값의 1/3인 QP/3으로 설정하여 사용할 수 있다. 그러나, 제1 문턱값은 이에 한정되지 않으며, 영상의 특성 등에 따라 다른 값으로 설정하거나, 또는 비트스트림에 의해 시그널링되는 값을 사용할 수도 있다.
상기 수학식 10에서, 선택된 코너 픽셀 B와 다른 3개의 인접 코너 픽셀 A, C, D와의 픽셀값의 차이값이 모두 제1 문턱값보다 클 때, 상기 선택된 코너 픽셀 B를 코너 아웃라이어로서 선택할 수 있다. 만약 상기 수학식 10에서, 선택된 코너 픽셀 B와 다른 3개의 인접 코너 픽셀 A, C, D 중 하나 이상의 코너 픽셀과의 픽셀값의 차이값이 제1 문턱값보다 작다면, 코너 아웃라이어가 선택되지 않을 수 있다. 이 경우, 해당 코너 아웃라이어 필터 입력에 대한 코너 아웃라이어 필터링 동작은 종료될 수 있다.
S2201 단계에서, 코너 아웃라이어가 선택되면, 선택된 코너 아웃라이어와 동일 블록내에 속하면서, 선택된 코너 아웃라이어에 인접하는 픽셀과 상기 코너 아웃라이어와의 유사성을 판단할 수 있다(S2202). S2202 단계는 경우에 따라 수행되지 않을 수 있으며, 예컨대, S2202 단계의 생략 여부는 영상의 특성에 기초하여 결정되거나 시그널링되는 정보에 기초하여 결정될 수 있다.
예컨대, 수학식 10에 의해, 도 21(c)의 코너 픽셀 B가 코너 아웃라이어로서 선택된 경우, 코너 픽셀 B와 동일 블록(2101)내에 속하며, 수평으로 인접한 픽셀 b1 및/또는 수직으로 인접한 픽셀 b2와 코너 픽셀 B 사이의 유사성을 판단할 수 있다.
상기 유사성 판단은 동일 블록 내의 픽셀과 코너 픽셀 B의 픽셀값의 차이값에 기초하여 수행될 수 있다. 여기서 동일 블록 내의 픽셀은 코너 픽셀 B와 동일 수평선 및/또는 수직선 상에 위치한 것일 수 있다. 동일 블록 내의 픽셀은 코너 픽셀 B와 연속적으로 인접한 하나 또는 그 이상의 픽셀일 수도 있고, 소정의 거리만큼 떨어진 위치의 하나 또는 그 이상의 픽셀일 수도 있다. 예컨대, 동일 블록 내 수평 및/또는 수직으로 인접한 인접 픽셀(b1, b2)과 코너 픽셀 B의 픽셀값의 차이값을 제2 문턱값과 비교함으로써 수행될 수 있다. 상기 제2 문턱값은 양자화 파라미터에 기초하여 설정될 수 있다. 예컨대, 상기 인접한 4개의 블록(2101, 2102, 2103, 2104)의 양자화 파라미터 중 어느 하나일 수도 있고, 또는 상기 인접한 4개의 블록(2101, 2102, 2103, 2104)의 양자화 파라미터 중 최대값, 최소값, 최빈값, 중간값, 평균값, 가중평균값 및/또는 이들 값을 소정의 상수값으로 스케일링하여 유도되는 값을 제2 문턱값으로서 사용할 수 있다. 상기 소정의 상수값은 고정된 값을 사용하거나 가변적일 수 있으며, 비트스트림에 포함되어 시그널링된 정보에 기초하여 획득될 수도 있다. 본 발명의 일실시예에 따르면, 상기 제2 문턱값은 예컨대, 상기 인접한 4개의 블록의 양자화 파라미터의 평균값의 1/6인 QP/6로 설정하여 사용할 수 있다. 그러나, 제2 문턱값은 이에 한정되지 않으며, 영상의 특성 등에 따라 다른 값으로 설정하거나, 또는 비트스트림에 의해 시그널링되는 값을 사용할 수도 있다.
본 발명의 일실시예에 따르면, 아래의 수학식 11을 이용하여, 동일 블록 내 인접 픽셀(b1, b2)과 코너 픽셀 B 사이의 유사성을 판단할 수 있다.
Figure PCTKR2017006634-appb-M000011
상기 수학식 11에서, 코너 픽셀 B와 이에 수평으로 인접하는 픽셀 b1의 픽셀값의 차이값을 제2 문턱값인 QP/6과 비교한다. 만약 코너 픽셀 B와 픽셀 b1의 픽셀값의 차이값이 QP/6보다 작으면, 코너 픽셀 B와 픽셀 b1은 서로 유사한 것으로 판단될 수 있다. 코너 픽셀 B와 픽셀 b2의 유사성 판단도 동일한 방법으로 수행될 수 있다.
상기 유사성 판단 결과, 동일 블록 내 인접 픽셀들(b1, b2)과 코너 픽셀 B가 유사하지 않은 것으로 판단되면, 코너 아웃라이어로서 선택된 상기 코너 픽셀 B에 대한 코너 아웃라이어 필터링 동작은 종료될 수 있다.
상기 유사성 판단 결과, 동일 블록 내 인접 픽셀(b1, b2)과 코너 픽셀 B가 유사한 것으로 판단되면, S2203 단계로 진행하여, 선택된 코너 아웃라이어에 대한 처리를 계속할 수 있다.
S2203 단계에서는, 코너 아웃라이어에 인접하는 수평 블록 경계 및 수직 블록 경계가 영상에 포함된 이미지 영역의 에지(edge)인지 여부를 판단한다. S2203 단계는 경우에 따라 수행되지 않을 수 있으며, 예컨대, S2203 단계의 생략 여부는 영상의 특성에 기초하여 결정되거나 시그널링되는 정보에 기초하여 결정될 수 있다.
S2203 단계는, 코너 아웃라이어로 선택된 코너 픽셀 B가 다른 인접 코너 픽셀(A, C, D)들과 서로 다른 이미지 영역에 포함되어 있어, 필터링을 수행하는 것이 적절치 못한 경우에 해당하는지를 판단하기 위한 것이다. 예컨대, 코너 픽셀 B가 속한 이미지 영역과 코너 픽셀 A, C 및 D가 속한 이미지 영역이 서로 다르면, 코너 픽셀 B의 픽셀값은 다른 인접 코너 픽셀 A, C 및 D의 픽셀값과 큰 차이를 나타낼 수 있다. 이러한 경우의 픽셀값의 차이는 예컨대, 블록 단위의 양자화 등에 의한 노이즈라고 볼 수 없는 경우가 있다. 따라서, 이러한 경우, 코너 픽셀 B에 대해 코너 아웃라이어 필터링을 수행하지 않는 것이 바람직하다.
S2203 단계에서는, 코너 아웃라이어인 코너 픽셀 B에 인접하는 수평 블록 경계 및 수직 블록 경계가 이미지 영역의 에지인지의 여부에 대한 판단을 수행한다. 만약, 코너 픽셀 B에 인접하는 수평 블록 경계 및 수직 블록 경계가 이미지 영역의 에지인 것으로 판단되면, 코너 픽셀 B와 다른 인접 코너 픽셀 A, C 및 D는 서로 상이한 이미지 영역에 속하는 것으로 판단될 수 있다.
본 발명의 일실시예에 따른 상기 에지 여부 판단은 코너 아웃라이어인 코너 픽셀 B에 인접하는 블록들(2102, 2103, 2104)에 포함된 픽셀들로서, 상기 수평 블록 경계 및 수직 블록 경계에 인접한 적어도 하나의 픽셀과 제3 문턱값을 이용하여 수행할 수 있다. 상기 제3 문턱값은 양자화 파라미터에 기초하여 설정될 수 있다. 예컨대, 상기 인접한 4개의 블록(2101, 2102, 2103, 2104)의 양자화 파라미터 중 어느 하나일 수도 있고, 또는 상기 인접한 4개의 블록(2101, 2102, 2103, 2104)의 양자화 파라미터 중 최대값, 최소값, 최빈값, 중간값, 평균값, 가중평균값 및/또는 이들 값을 소정의 상수값으로 스케일링하여 유도되는 값을 제3 문턱값으로서 사용할 수도 있다. 상기 소정의 상수값은 고정된 값을 사용하거나 가변적일 수 있으며, 비트스트림에 포함되어 시그널링된 정보에 기초하여 획득될 수도 있다. 그러나, 제3 문턱값은 이에 한정되지 않으며, 영상의 특성 등에 따라 다른 값으로 설정하거나, 또는 비트스트림에 의해 시그널링되는 값을 사용할 수도 있다. 본 발명의 일실시예에 따르면, 상기 제3 문턱값은 예컨대, 상기 인접한 4개의 블록의 양자화 파라미터의 평균값의 1/6인 QP/6로 설정하여 사용할 수 있다. 그러나, 제3 문턱값은 이에 한정되지 않으며, 영상의 특성 등에 따라 다른 값으로 설정하거나, 또는 비트스트림에 의해 시그널링되는 값을 사용할 수도 있다.
본 발명의 일실시예에 따른 상기 에지 여부 판단은 코너 아웃라이어에 인접하는 블록들에 포함된 픽셀들로서, 상기 수평 블록 경계 및 수직 블록 경계에 인접한 픽셀들의 변화량을 상기 제3 문턱값과 비교할 수 있다. 예컨대, 코너 픽셀 B가 코너 아웃라이어로서 선택된 경우, 아래의 수학식 12를 이용하여 코너 픽셀 B에 인접하는 수평 블록 경계 및 수직 블록 경계가 이미지 영역의 에지인지 여부를 판단할 수 있다.
Figure PCTKR2017006634-appb-M000012
상기 수학식 12에서, 코너 아웃라이어인 코너 픽셀 B에 인접하는 수평 블록 경계가 에지인지 여부를 판단하기 위해, 코너 픽셀 B에 인접하는 블록에 포함된 픽셀들로서, 상기 수평 블록 경계에 인접한 픽셀들 c1, C, D 및 d1이 사용될 수 있다. 상기 픽셀들(c1, C, D 및 d1)의 변화량으로서, 예컨대, 상기 픽셀들(c1, C, D 및 d1)의 픽셀값의 평균값과 픽셀 c1의 픽셀값의 차이값 및/또는 상기 픽셀들(c1, C, D 및 d1)의 픽셀값의 평균값과 픽셀 d1의 픽셀값의 차이값을 이용할 수 있다. 또는 상기 수평 블록 경계에 인접한 픽셀들 중 둘 이상의 픽셀값들의 차이값을 소정의 기준값과 비교하는 과정을 이용할 수도 있다. 상기 소정의 기준값은 영상의 특성에 기초하여 결정되거나, 시그널링 될 수 있다. 상기 픽셀들(c1, C, D 및 d1)의 변화량이 제3 문턱값인 QP/6보다 작으면, 상기 픽셀들(c1, C, D 및 d1)의 변화량이 작은 것으로 판단하고, 상기 픽셀들(c1, C, D 및 d1)이 인접한 수평 블록 경계는 이미지 영역의 에지인 것으로 판단할 수 있다.
마찬가지로, 코너 아웃라이어인 코너 픽셀 B에 인접하는 수직 블록 경계가 에지인지 여부를 판단하기 위해, 코너 픽셀 B에 인접하는 블록에 포함된 픽셀들로서, 상기 수직 블록 경계에 인접한 픽셀들 a2, A, D 및 d2가 사용될 수 있다. 상기 픽셀들(a2, A, D 및 d2)의 변화량으로서, 예컨대, 상기 픽셀들(a2, A, D 및 d2)의 픽셀값의 평균값과 픽셀 a2의 픽셀값의 차이값 및/또는 상기 픽셀들(a2, A, D 및 d2)의 픽셀값의 평균값과 픽셀 d2의 픽셀값의 차이값을 이용할 수 있다. 또는 상기 수직 블록 경계에 인접한 픽셀들 중 둘 이상의 픽셀값들의 차이값을 소정의 기준값과 비교하는 과정을 이용할 수도 있다. 상기 소정의 기준값은 영상의 특성에 기초하여 결정되거나, 시그널링 될 수 있다. 상기 픽셀들(a2, A, D 및 d2)의 변화량이 제3 문턱값인 QP/6보다 작으면, 상기 픽셀들(a2, A, D 및 d2)의 변화량이 작은 것으로 판단하고, 상기 픽셀들(a2, A, D 및 d2)이 인접한 수직 블록 경계는 이미지 영역의 에지인 것으로 판단할 수 있다.
본 발명의 일실시예는 블록의 경계가 이미지 영역의 에지인지의 여부를 판단하기 위해 상기 수학식 12를 이용하였으나, 이미지 영역의 에지 여부 판단에 관한 방법은 이에 한정되지 않으며, 다양한 방법이 적용될 수 있다.
S2203 단계에서, 상기 수학식 12에 의한 판단 결과, 코너 아웃라이어인 코너 픽셀 B에 인접하는 수평 블록 경계 또는 수직 블록 경계가 이미지 영역의 에지가 아닌 것으로 판단되면, S2204 단계의 코너 아웃라이어 필터링을 수행할 수 있다.
S2203 단계에서, 상기 수학식 12에 의한 판단 결과, 코너 아웃라이어인 코너 픽셀 B에 인접하는 수평 블록 경계 및 수직 블록 경계가 모두 이미지 영역의 에지에 해당하는 것으로 판단되면, 코너 픽셀 B에 대한 코너 아웃라이어 필터링 동작은 종료되거나, 아래 수학식 13을 이용한 에지 판단을 추가적으로 더 수행할 수 있다. 아래 수학식 13을 이용한 추가적인 에지 판단은 경우에 따라 수행되지 않을 수 있으며, 예컨대, 아래 수학식 13을 이용한 추가적인 에지 판단의 생략 여부는 영상의 특성에 기초하여 결정되거나 시그널링되는 정보에 기초하여 결정될 수 있다.
Figure PCTKR2017006634-appb-M000013
상기 수학식 13에서, 코너 아웃라이어인 코너 픽셀 B와 이에 인접하는 코너 픽셀 A의 픽셀값의 차이가 제4 문턱값보다 작은지 여부를 판단한다. 상기 제4 문턱값은 양자화 파라미터에 기초하여 설정될 수 있다. 예컨대, 상기 인접한 4개의 블록(2101, 2102, 2103, 2104)의 양자화 파라미터 중 어느 하나일 수도 있고, 또는 상기 인접한 4개의 블록(2101, 2102, 2103, 2104)의 양자화 파라미터 중 최대값, 최소값, 최빈값, 중간값, 평균값, 가중평균값 및/또는 이들 값을 소정의 상수값으로 스케일링하여 유도되는 값을 제4 문턱값으로서 사용할 수도 있다. 상기 소정의 상수값은 고정된 값을 사용하거나 가변적일 수 있으며, 비트스트림에 포함되어 시그널링된 정보에 기초하여 획득될 수도 있다. 그러나, 제4 문턱값은 이에 한정되지 않으며, 영상의 특성 등에 따라 다른 값으로 설정하거나, 또는 비트스트림에 의해 시그널링되는 값을 사용할 수도 있다. 본 발명의 일실시예에 따르면, 상기 제4 문턱값은 예컨대, 상기 인접한 4개의 블록의 양자화 파라미터의 평균값의 1/2인 QP/2로 설정하여 사용할 수 있다. 그러나, 제4 문턱값은 이에 한정되지 않으며, 영상의 특성 등에 따라 다른 값으로 설정하거나, 또는 비트스트림에 의해 시그널링되는 값을 사용할 수도 있다. 전술한 본 발명의 일실시예에 사용된 제1 내지 제4 문턱값은 전부가 동일 또는 상이하거나, 일부가 동일 또는 상이할 수 있다.
상기 수학식 13에서, 코너 아웃라이어인 코너 픽셀 B와 이에 인접하는 코너 픽셀 A의 픽셀값의 차이가 QP/2보다 작은지 여부를 판단한다. 코너 픽셀 B와 이에 인접하는 코너 픽셀 A의 픽셀값의 차이가 QP/2보다 작으면, 코너 픽셀 B에 인접한 수직 블록 경계는 이미지 영역의 에지인 것으로 최종 판단할 수 있다.
마찬가지로, 상기 수학식 13에서, 코너 아웃라이어인 코너 픽셀 B와 이에 인접하는 코너 픽셀 C의 픽셀값의 차이가 QP/2보다 작은지 여부를 판단한다. 코너 픽셀 B와 이에 인접하는 코너 픽셀 C의 픽셀값의 차이가 QP/2보다 작으면, 코너 픽셀 B에 인접한 수평 블록 경계는 이미지 영역의 에지인 것으로 최종 판단할 수 있다.
S2203 단계에서, 수학식 12 및/또는 수학식 13에 의한 에지 판단 결과, 코너 픽셀 B에 인접한 수평 블록 경계와 수직 블록 경계가 모두 이미지 영역의 에지인 것으로 판단되면, S2204 단계의 필터링을 수행하지 않고 종료할 수 있다.
S2203 단계에서, 수학식 12 및/또는 수학식 13에 의한 에지 판단 결과, 코너 픽셀 B에 인접한 수평 블록 경계 또는 수직 블록 경계가 이미지 영역의 에지가 아닌 것으로 판단되면, S2204 단계로 진행하여, 코너 픽셀 B에 대한 코너 아웃라이어 필터링을 수행할 수 있다. 상술한 바와 같이, S2201 단계 내지 S2203 단계를 순차적으로 거쳐 필터링의 대상인 코너 아웃라이어를 결정할 수 있다. 다만, S2201 단계 내지 S2203 단계는 판단 순서를 한정한 것이 아니며, 발명의 본질이 유지되는 한도 내에서 판단 순서를 적응적으로 변경할 수도 있다. 또한, 필터링의 대상인 코너 아웃라이어는 S2201 단계 내지 S2203 단계 중 적어도 하나를 선택적으로 이용하여 결정될 수도 있다.
코너 아웃라이어 및 이에 인접하는 픽셀에 대한 필터링은 인접한 픽셀들과의 차이를 감소시키는 방향으로 수행될 수 있으며, 예컨대, 다른 블록에 속하는 인접 코너 픽셀들과의 픽셀값의 차이를 감소시키는 방향으로 수행될 수 있다. 본 발명의 일실시예에 따르면, 예컨대, 아래 수학식 14를 이용하여 필터링을 수행할 수 있다.
Figure PCTKR2017006634-appb-M000014
상기 수학식 14에서, A, B, C, D, b1, b2는 각각 도 21(c)에 도시된 위치의 픽셀의 픽셀값을 의미하며, B', b1', b2'는 각각 도 21(c)에서 B, b1, b2의 위치의 픽셀값을 필터링한 값을 의미한다. 상기 필터링되는 픽셀은 코너 아웃라이어 및 이에 수평, 수직 및/또는 대각선으로 인접하는 픽셀을 포함할 수 있다. 필터링에 사용되는 필터링 계수는 부호화기/복화화기가 이미 알고 있는 정해진 값을 사용할 수도 있으며, 필터링의 계수를 영상의 특성에 기초하여 유도하거나, 필터링의 계수에 관한 정보가 시그널링 될 수도 있다. 필터링은 반드시 예측, 양자화 및/또는 변환 블록의 경계에 대해서만 수행되는 것은 아니며, 예컨대, 8x8, 16x16, 32x32, 64x64 블록의 경계와 같이 소정의 크기를 갖는 블록의 경계에 대해서만 수행될 수도 있다. 필터링이 수행되는 블록의 유형 및/또는 크기에 관한 정보는 부호화기/복호화기가 이미 알고 있는 정보를 이용할 수도 있고, 또는 영상의 특성에 기초하여 결정되거나, 그에 관한 정보가 시그널링 될 수도 있다.
본 발명의 실시예에 따른 방법은 하나 이상의 단계들로 구성되어 있으며, 일정한 순서에 따라 설명되고 있다. 그러나, 본 발명은 상기 일정한 순서로 한정되지 않는다. 예컨대, 각 단계의 수행 순서가 변경될 수 있다. 또는 하나 이상의 단계가 동시에 수행될 수 있다. 또는 하나 이상의 단계가 임의의 위치에 추가될 수 있다.
본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 본 발명의 실시예들은 하나 이상의 프로세서들을 구비한 하드웨어 장치에 의해 구현될 수 있다. 하나 이상의 프로세서들은 각각 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 그 균등 범위에 있는 모든 것들이 본 발명의 사상의 범주에 속한다고 할 수 있다.
본 발명은 영상을 부호화/복호화하는데 이용될 수 있다.

Claims (15)

  1. 입력 영상을 블록 단위로 분할하여 부호화하는 비디오 신호 처리 방법에 있어서,
    현재 블록의 분할 여부를 결정하는 분할 여부 결정 단계;
    상기 결정에 기초하여, 상기 현재 블록을 복수의 서브 블록으로 분할하는 블록 분할 단계;
    상기 현재 블록의 분할에 관한 블록 분할 정보를 생성하는 단계; 및
    상기 블록 분할 정보, 상기 현재 블록 또는 상기 서브 블록을 부호화하는 부호화 단계를 포함하는 비디오 신호 처리 방법.
  2. 제1 항에 있어서,
    상기 블록 분할 단계는,
    둘 이상의 트리 구조를 이용하여 상기 현재 블록을 분할하는 것을 특징으로 하는 비디오 신호 처리 방법.
  3. 제2 항에 있어서,
    상기 블록 분할 단계는,
    상기 둘 이상의 트리 구조 중 하나 이상을 주 분할 구조로 이용하고, 나머지를 부 분할 구조로 이용하여 블록을 분할하는 것을 특징으로 하는 비디오 신호 처리 방법.
  4. 제3 항에 있어서,
    상기 블록 분할 정보는, 상기 주 분할 구조를 이용한 블록의 분할 여부를 나타내기 위한 주 분할 정보를 포함하고,
    상기 주 분할 정보가, 상기 주 분할 구조를 이용하여 블록을 분할하는 것을 나타내고, 상기 주 분할 구조가 복수인 경우, 상기 블록 분할 정보는 상기 복수의 주 분할 구조 중 하나를 특정하기 위한 정보를 더 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  5. 제3 항에 있어서,
    상기 블록 분할 정보는, 상기 주 분할 구조를 이용한 블록의 분할 여부를 나타내기 위한 주 분할 정보를 포함하고,
    상기 주 분할 정보가, 상기 주 분할 구조를 이용하여 블록을 분할하지 않는 것을 나타내는 경우, 상기 블록 분할 정보는, 부 분할 구조를 이용한 블록의 분할 여부를 나타내기 위한 부 분할 정보를 더 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  6. 제5 항에 있어서,
    상기 부 분할 정보가, 상기 부 분할 구조를 이용하여 블록을 분할하는 것을 나타내고, 상기 부 분할 구조가 복수인 경우, 상기 블록 분할 정보는 상기 복수의 부 분할 구조 중 하나를 특정하기 위한 정보를 더 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  7. 제5 항에 있어서,
    상기 주 분할 정보가, 상기 주 분할 구조를 이용하여 블록을 분할하지 않는 것을 나타내고,
    상기 부 분할 정보가, 상기 부 분할 구조를 이용하여 블록을 분할하지 않는 것을 나타내는 경우,
    상기 현재 블록을 부호화 단위로 결정하는 것을 특징으로 하는 비디오 신호 처리 방법.
  8. 제1 항에 있어서,
    상기 블록 분할 정보는 상기 블록의 분할 여부를 나타내기 위한 제1 정보를 포함하고,
    상기 제1 정보가, 상기 블록이 분할됨을 나타내고, 상기 블록의 분할을 위해 복수의 분할 구조가 사용되는 경우, 상기 블록 분할 정보는 상기 복수의 분할 구조 중 하나를 특정하기 위한 제2 정보를 더 포함하는 것을 특징으로 하는 비디오 신호 처리 방법.
  9. 제3 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 주 분할 구조 또는 상기 부 분할 구조에 관한 정보는, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨 및 블록 레벨 중 적어도 하나의 레벨에서 부호화되는 것을 특징으로 하는 비디오 신호 처리 방법.
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 블록의 분할은 소정의 크기 이하의 블록에 대해서는 수행되지 않고,
    상기 소정의 크기에 관한 정보는, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨 및 블록 레벨 중 적어도 하나의 레벨에서 부호화되는 것을 특징으로 하는 비디오 신호 처리 방법.
  11. 제1 항에 있어서,
    상기 현재 블록 또는 상기 서브 블록을 부호화하는 부호화 단계는 예측, 변환 및 양자화 중 적어도 하나를 포함하고,
    상기 변환은 비정방형 변환을 포함하며,
    상기 변환은,
    Y = AXBT (여기서, X는 m x n 크기의 잔차 신호 블록, A는 수평 방향 1차원 n 포인트 변환, BT는 수직방향 1차원 m 포인트 변환, Y는 X를 변환하여 얻어지는 변환 블록임) 에 의해 수행되는 것을 특징으로 하는 비디오 신호 처리 방법.
  12. 제11 항에 있어서,
    A와 B는 서로 다른 변환인 것을 특징으로 하는 비디오 신호 처리 방법.
  13. 입력 영상을 블록 단위로 분할하여 복호화하는 비디오 신호 처리 방법에 있어서,
    현재 블록의 블록 분할 정보를 복호화하는 단계;
    상기 블록 분할 정보에 기초하여 상기 현재 블록을 복수의 서브 블록으로 분할하는 블록 분할 단계; 및
    상기 현재 블록 또는 상기 서브 블록을 복호화하는 단계를 포함하는 비디오 신호 처리 방법.
  14. 입력 영상을 블록 단위로 분할하여 부호화하는 비디오 신호 처리 장치에 있어서,
    현재 블록의 분할 여부를 결정하는 분할 여부 결정부;
    상기 결정에 기초하여, 상기 현재 블록을 복수의 서브 블록으로 분할하는 블록 분할부;
    상기 현재 블록의 분할에 관한 블록 분할 정보를 생성하는 블록 분할 정보 생성부; 및
    상기 블록 분할 정보, 상기 현재 블록 또는 상기 서브 블록을 부호화하는 부호화부를 포함하는 비디오 신호 처리 장치.
  15. 입력 영상을 블록 단위로 분할하여 복호화하는 비디오 신호 처리 장치에 있어서,
    현재 블록의 블록 분할 정보를 복호화하는 블록 분할 정보 복호화부;
    상기 블록 분할 정보에 기초하여 상기 현재 블록을 복수의 서브 블록으로 분할하는 블록 분할부; 및
    상기 현재 블록 또는 상기 서브 블록을 복호화하는 블록 복호화부를 포함하는 비디오 신호 처리 장치.
PCT/KR2017/006634 2016-06-24 2017-06-23 비디오 신호 처리 방법 및 장치 WO2017222331A1 (ko)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN201780039316.3A CN109479131B (zh) 2016-06-24 2017-06-23 视频信号处理方法及装置
CN202311028575.XA CN116781903A (zh) 2016-06-24 2017-06-23 视频信号解码和编码方法、比特流的传输方法
CN202311031996.8A CN116828178A (zh) 2016-06-24 2017-06-23 视频信号解码和编码方法、比特流的传输方法
US16/312,677 US20190327476A1 (en) 2016-06-24 2017-06-23 Video signal processing method and device
CN202311027861.4A CN116781902A (zh) 2016-06-24 2017-06-23 视频信号解码和编码方法、比特流的传输方法
CN202311031020.0A CN116828177A (zh) 2016-06-24 2017-06-23 视频信号解码和编码方法、比特流的传输方法
US17/070,956 US20210058646A1 (en) 2016-06-24 2020-10-15 Video signal processing method and device
US17/716,301 US20220272390A1 (en) 2016-06-24 2022-04-08 Video signal decoding/encoding method and apparatus thereof

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR10-2016-0079137 2016-06-24
KR1020160079137A KR20180000886A (ko) 2016-06-24 2016-06-24 비디오 신호 처리 방법 및 장치
KR1020160121827A KR20180032775A (ko) 2016-09-23 2016-09-23 적응적 블록 분할에 기반한 비디오 신호 처리 방법 및 장치
KR10-2016-0121827 2016-09-23
KR20160121826 2016-09-23
KR10-2016-0121826 2016-09-23
KR10-2016-0169394 2016-12-13
KR1020160169394A KR20180033030A (ko) 2016-09-23 2016-12-13 적응적 블록 분할에 기반한 비디오 신호 처리 방법 및 장치

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/312,677 A-371-Of-International US20190327476A1 (en) 2016-06-24 2017-06-23 Video signal processing method and device
US17/070,956 Continuation US20210058646A1 (en) 2016-06-24 2020-10-15 Video signal processing method and device

Publications (1)

Publication Number Publication Date
WO2017222331A1 true WO2017222331A1 (ko) 2017-12-28

Family

ID=60784136

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/006634 WO2017222331A1 (ko) 2016-06-24 2017-06-23 비디오 신호 처리 방법 및 장치

Country Status (3)

Country Link
US (1) US20220272390A1 (ko)
CN (4) CN116781902A (ko)
WO (1) WO2017222331A1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190089061A (ko) * 2017-07-17 2019-07-29 김기백 영상 부호화/복호화 방법 및 장치
CN110572657A (zh) * 2018-06-05 2019-12-13 北京字节跳动网络技术有限公司 扩展四叉树子块的形状
WO2020114393A1 (zh) * 2018-12-04 2020-06-11 华为技术有限公司 变换方法、反变换方法以及视频编码器和视频解码器
WO2020143348A1 (zh) * 2019-01-08 2020-07-16 华为技术有限公司 预测模式确定方法和装置
WO2021018082A1 (en) * 2019-07-26 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
US11323708B2 (en) 2018-08-28 2022-05-03 Huawei Technologies Co., Ltd. Picture partitioning method and apparatus
US11388399B2 (en) 2019-01-08 2022-07-12 Huawei Technologies Co., Ltd. Image prediction method, apparatus, and system, device, and storage medium
US11523113B2 (en) 2018-06-27 2022-12-06 Canon Kabushiki Kaisha Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program
RU2815443C2 (ru) * 2019-07-26 2024-03-15 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Определение режима разделения изображения на основе размера блока

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020075861A1 (ja) * 2018-10-12 2020-04-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120008684A1 (en) * 2010-07-09 2012-01-12 Samsung Electronics Co., Ltd. Method and apparatus of encoding and decoding video signal
US20120106628A1 (en) * 2009-07-02 2012-05-03 Joel Sole Methods and apparatus for video encoding and decoding binary sets using adaptive tree selection
US20130083839A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Video coding tree sub-block splitting
WO2013162272A1 (ko) * 2012-04-24 2013-10-31 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005123732A (ja) * 2003-10-14 2005-05-12 Matsushita Electric Ind Co Ltd デブロックフィルタ処理装置およびデブロックフィルタ処理方法
KR101457396B1 (ko) * 2010-01-14 2014-11-03 삼성전자주식회사 디블로킹 필터링을 이용한 비디오 부호화 방법과 그 장치, 및 디블로킹 필터링을 이용한 비디오 복호화 방법 및 그 장치
TWI508534B (zh) * 2010-05-18 2015-11-11 Sony Corp Image processing apparatus and image processing method
US9503716B2 (en) * 2011-12-19 2016-11-22 Broadcom Corporation Block size dependent filter selection for motion compensation
US9906790B2 (en) * 2014-03-14 2018-02-27 Qualcomm Incorporated Deblock filtering using pixel distance
JP6620354B2 (ja) * 2015-09-30 2019-12-18 Kddi株式会社 動画像の処理装置、処理方法及びコンピュータ可読記憶媒体
US10362314B2 (en) * 2015-11-27 2019-07-23 Mediatek Inc. Apparatus and method for video coding by intra-prediction
US20170237939A1 (en) * 2016-02-16 2017-08-17 Google Inc. Loop filtering for multiform transform partitioning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120106628A1 (en) * 2009-07-02 2012-05-03 Joel Sole Methods and apparatus for video encoding and decoding binary sets using adaptive tree selection
US20120008684A1 (en) * 2010-07-09 2012-01-12 Samsung Electronics Co., Ltd. Method and apparatus of encoding and decoding video signal
US20130083839A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Video coding tree sub-block splitting
WO2013162272A1 (ko) * 2012-04-24 2013-10-31 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190089061A (ko) * 2017-07-17 2019-07-29 김기백 영상 부호화/복호화 방법 및 장치
US11882281B2 (en) 2017-07-17 2024-01-23 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding/decoding image
US11399179B2 (en) 2017-07-17 2022-07-26 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding/decoding image
US11044475B2 (en) 2017-07-17 2021-06-22 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding/decoding image
KR102164399B1 (ko) * 2017-07-17 2020-10-12 한양대학교 산학협력단 영상 부호화/복호화 방법 및 장치
US11265584B2 (en) 2018-06-05 2022-03-01 Beijing Bytedance Network Technology Co., Ltd. EQT depth calculation
CN110572657A (zh) * 2018-06-05 2019-12-13 北京字节跳动网络技术有限公司 扩展四叉树子块的形状
US11381848B2 (en) 2018-06-05 2022-07-05 Beijing Bytedance Network Technology Co., Ltd. Main concept of EQT, unequally four partitions and signaling
US11570482B2 (en) 2018-06-05 2023-01-31 Beijing Bytedance Network Technology Co., Ltd. Restriction of extended quadtree
US11438635B2 (en) 2018-06-05 2022-09-06 Beijing Bytedance Network Technology Co., Ltd. Flexible tree partitioning processes for visual media coding
US11445224B2 (en) 2018-06-05 2022-09-13 Beijing Bytedance Network Technology Co., Ltd. Shape of EQT subblock
US11523113B2 (en) 2018-06-27 2022-12-06 Canon Kabushiki Kaisha Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program
US11758134B2 (en) 2018-08-28 2023-09-12 Huawei Technologies Co., Ltd. Picture partitioning method and apparatus
US11323708B2 (en) 2018-08-28 2022-05-03 Huawei Technologies Co., Ltd. Picture partitioning method and apparatus
WO2020114393A1 (zh) * 2018-12-04 2020-06-11 华为技术有限公司 变换方法、反变换方法以及视频编码器和视频解码器
CN111277840A (zh) * 2018-12-04 2020-06-12 华为技术有限公司 变换方法、反变换方法以及视频编码器和视频解码器
CN111277840B (zh) * 2018-12-04 2022-02-08 华为技术有限公司 变换方法、反变换方法以及视频编码器和视频解码器
US11388399B2 (en) 2019-01-08 2022-07-12 Huawei Technologies Co., Ltd. Image prediction method, apparatus, and system, device, and storage medium
US11849109B2 (en) 2019-01-08 2023-12-19 Huawei Technologies Co., Ltd. Image prediction method, apparatus, and system, device, and storage medium
WO2020143348A1 (zh) * 2019-01-08 2020-07-16 华为技术有限公司 预测模式确定方法和装置
US11539949B2 (en) 2019-07-26 2022-12-27 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
US11659179B2 (en) 2019-07-26 2023-05-23 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
WO2021018082A1 (en) * 2019-07-26 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
US11930175B2 (en) 2019-07-26 2024-03-12 Beijing Bytedance Network Technology Co., Ltd Block size dependent use of video coding mode
RU2815443C2 (ru) * 2019-07-26 2024-03-15 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Определение режима разделения изображения на основе размера блока

Also Published As

Publication number Publication date
CN116828177A (zh) 2023-09-29
CN116781903A (zh) 2023-09-19
US20220272390A1 (en) 2022-08-25
CN116828178A (zh) 2023-09-29
CN116781902A (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
WO2020159198A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2018026219A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017222331A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017171370A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017176030A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017192011A2 (ko) 화면 내 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2019182385A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020096389A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2018016823A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020111785A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020256413A1 (ko) 적응적 루프내 필터링 방법 및 장치
WO2020076116A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020005035A1 (ko) 처리율 향상을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019027241A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021101345A1 (ko) 적응적 루프내 필터링 방법 및 장치
WO2019182292A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020222617A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020060244A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019240493A1 (ko) 문맥 적응적 이진 산술 부호화 방법 및 장치
WO2020096428A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020060243A1 (ko) 경계 처리를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020060327A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020013532A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020213963A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020060329A1 (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: 17815744

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

Country of ref document: EP

Kind code of ref document: A1