WO2020004902A1 - 영상 부호화/복호화 방법 및 장치 - Google Patents

영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
WO2020004902A1
WO2020004902A1 PCT/KR2019/007653 KR2019007653W WO2020004902A1 WO 2020004902 A1 WO2020004902 A1 WO 2020004902A1 KR 2019007653 W KR2019007653 W KR 2019007653W WO 2020004902 A1 WO2020004902 A1 WO 2020004902A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
prediction
mode
information
encoding
Prior art date
Application number
PCT/KR2019/007653
Other languages
English (en)
French (fr)
Inventor
김기백
Original Assignee
김기백
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김기백 filed Critical 김기백
Priority to CN201980042714.XA priority Critical patent/CN112335249A/zh
Priority to KR1020217002063A priority patent/KR20210016053A/ko
Priority to US16/973,145 priority patent/US11647179B2/en
Publication of WO2020004902A1 publication Critical patent/WO2020004902A1/ko
Priority to US18/193,738 priority patent/US20230247191A1/en
Priority to US18/499,652 priority patent/US20240080440A1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Definitions

  • the present invention relates to a video encoding and decoding technique, and more particularly, to a method and apparatus for encoding / decoding in intra prediction.
  • An object of the present invention is to provide an intra prediction method.
  • the present invention also provides a method and apparatus for constructing a reference pixel for intra prediction.
  • the present invention aims to provide a method and apparatus for performing reference pixel filtering and interpolation.
  • the present invention also provides a method and apparatus for configuring an intra prediction mode candidate group.
  • the present invention also provides an intra prediction method and apparatus in units of sub blocks.
  • An image encoding / decoding method and apparatus constitute an intra prediction mode candidate group of a target block, determine a reference pixel for an intra prediction mode of the target block, and filter or interpolate to the reference pixel. May be performed, and the intra prediction of the target block may be performed based on the intra prediction mode candidate group and the reference pixel.
  • the filtering may be performed by intra-prediction of the size, shape, position, color component, reference pixel line, sub-block unit of the target block, or intra-prediction. It may optionally be performed based on at least one of the modes.
  • the filtering when the intra prediction mode of the target block is a diagonal mode, the filtering may be performed, otherwise the filtering may not be performed.
  • the diagonal mode may include at least one of a first mode referring only to pixels in integer units or a second mode referring to pixels in decimal units.
  • the intra prediction mode of the target block is a first mode referring only to pixels of an integer unit
  • interpolation of the reference pixel is not performed and the target block is not performed.
  • the intra prediction mode of is a second mode that refers to pixels in a decimal unit
  • interpolation of the reference pixel may be performed.
  • the reference pixel may be located in at least one of a plurality of reference pixel lines adjacent to the target block.
  • the intra prediction mode candidate group may include at least one priority allocation mode or a predetermined most probable mode (MPM).
  • MPM most probable mode
  • the priority assignment mode may include at least one of a planar mode, a DC mode, a vertical mode, or a horizontal mode.
  • the intra prediction may be performed in units of sub blocks constituting the target block.
  • encoding performance can be improved through the configuration of filtered or interpolated reference pixels.
  • encoding performance may be improved through intra prediction on a sub-block basis.
  • FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of a video encoding apparatus according to an embodiment of the present invention.
  • FIG. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 4 is an exemplary diagram illustrating various partition types that may be obtained in a block partition unit of the present invention.
  • Figure 5 shows an example of a family tree for explaining the genetic characteristics of the members of a household and the people in the blood relationship.
  • FIG. 6 illustrates various arrangement examples of a counter block having a horizontal relationship with a target block.
  • FIG. 7 illustrates various arrangement examples of a relative block that is perpendicular to the target block.
  • FIG. 8 illustrates various arrangement examples of a relative block that is a vertical relationship with a target block and a horizontal relationship.
  • FIG. 9 illustrates an example of block partitioning obtained according to a tree type.
  • FIG. 10 is an exemplary diagram of division division obtained due to QT, BT, and TT.
  • 11 is an exemplary diagram for checking correlation between blocks based on a partitioning scheme and a partitioning configuration.
  • FIG. 12 is an exemplary diagram illustrating an intra prediction mode supported by an image encoding / decoding apparatus.
  • FIG. 13 is an exemplary diagram for describing a configuration of a reference pixel used for intra prediction according to an embodiment of the present invention.
  • FIG. 14 is a diagram illustrating a reference pixel configuration obtainable according to a reference block.
  • 15 is a conceptual diagram illustrating a block adjacent to a target block of intra prediction.
  • An image encoding / decoding method and apparatus constitute an intra prediction mode candidate group of a target block, determine a reference pixel for an intra prediction mode of the target block, and filter or interpolate to the reference pixel. May be performed, and the intra prediction of the target block may be performed based on the intra prediction mode candidate group and the reference pixel.
  • the filtering may be performed by intra-prediction of the size, shape, position, color component, reference pixel line, sub-block unit of the target block, or intra-prediction. It may optionally be performed based on at least one of the modes.
  • the filtering when the intra prediction mode of the target block is a diagonal mode, the filtering may be performed, otherwise the filtering may not be performed.
  • the diagonal mode may include at least one of a first mode referring only to pixels in integer units or a second mode referring to pixels in decimal units.
  • the intra prediction mode of the target block is a first mode referring only to pixels of an integer unit
  • interpolation of the reference pixel is not performed and the target block is not performed.
  • the intra prediction mode of is a second mode that refers to pixels in a decimal unit
  • interpolation of the reference pixel may be performed.
  • the reference pixel may be located in at least one of a plurality of reference pixel lines adjacent to the target block.
  • the intra prediction mode candidate group may include at least one priority allocation mode or a predetermined most probable mode (MPM).
  • MPM most probable mode
  • the priority assignment mode may include at least one of a planar mode, a DC mode, a vertical mode, or a horizontal mode.
  • the intra prediction may be performed in units of sub blocks constituting the target block.
  • first, second, A, and B 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.
  • one or more color spaces may be configured according to a color format of an image. It may consist of one or more pictures with a certain size or one or more pictures with other sizes, depending on the color format.
  • color formats such as 4: 4: 4, 4: 2: 2, 4: 2: 0, and Monochrome (only Y) may be supported.
  • YCbCr 4: 2: 0 one luminance component (Y in this example) and two chrominance components (Cb / Cr in this example) may be configured, wherein the chrominance component and the luminance component are configured.
  • the ratio may have a length of 1: 2.
  • 4: 4: 4 may have the same ratio of width and length.
  • Images can be classified into I, P, B, etc. according to the image type (eg, picture type, slice type, tile type, etc.).
  • the I image type is an image which is encoded / decoded by itself without using a reference picture.
  • the P image type may mean an image that is encoded / decoded using a reference picture but allows only omnidirectional prediction
  • the B image type may be encoded / decoded by using a reference picture.
  • it may mean an image that allows direction prediction, a part of the type may be combined (P and B are combined) or another type of image type may be supported according to the encoding / decoding setting.
  • the explicit processing may generate selection information indicating one candidate among a plurality of candidate groups for encoding information in a sequence, slice, tile, block, subblock, and the like, and record the selected information in a bitstream, and at the same level as that of the encoder in the decoder. It can be understood as parsing related information in units of to restore the decoded information.
  • the implicit processing is processed by the same process, rule, and the like in the encoder and the decoder.
  • FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
  • the video encoding apparatus 105 and the decoding apparatus 100 may include a personal computer (PC), a notebook computer, a personal digital assistant (PDA), and a portable multimedia player (PMP). Player), PlayStation Portable (PSP: PlayStation Portable), wireless communication terminal (Wireless Communication Terminal), smart phone (Smart Phone) or a user terminal such as a TV, or a server terminal such as an application server and a service server, etc.
  • PC personal computer
  • PDA personal digital assistant
  • PMP portable multimedia player
  • Player Portable
  • PSP PlayStation Portable
  • wireless communication terminal Wireless Communication Terminal
  • smart phone Smart Phone
  • user terminal such as a TV
  • server terminal such as an application server and a service server, etc.
  • a communication device such as a communication modem for communicating with a wired / wireless communication network, a memory (memory, 120, 125) or a program for storing various programs and data for inter or intra prediction for encoding or decoding an image and executing the operation
  • various devices including processors (processors 110 and 115) for controlling.
  • the image encoded in the bitstream by the image encoding apparatus 105 is real-time or non-real-time via the wired or wireless communication network (Network), such as the Internet, local area wireless communication network, wireless LAN network, WiBro network or mobile communication network, or cable or general purpose
  • the image decoding apparatus 100 may be transmitted to the image decoding apparatus 100 through various communication interfaces such as a universal serial bus (USB), and may be decoded by the image decoding apparatus 100 to restore and reproduce the image.
  • an image encoded in the bitstream by the image encoding apparatus 105 may be transferred from the image encoding apparatus 105 to the image decoding apparatus 100 through a computer-readable recording medium.
  • the above-described image encoding apparatus and the image decoding apparatus may be separate apparatuses, but may be made of one image encoding / decoding apparatus according to implementation.
  • some components of the image encoding apparatus may be implemented to include at least the same structure or to perform at least the same function as substantially the same technical elements as some components of the image decoding apparatus.
  • the image decoding apparatus corresponds to a computing device applying the image encoding method performed by the image encoding apparatus to the decoding, the following description will focus on the image encoding apparatus.
  • the computing device may include a memory for storing a program or software module for implementing an image encoding method and / or an image decoding method, and a processor connected to the memory and executing a program.
  • the image encoding apparatus may be referred to as an encoder
  • the image decoding apparatus may be referred to as a decoder.
  • FIG. 2 is a block diagram of a video encoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus 20 may include a predictor 200, a subtractor 205, a transformer 210, a quantizer 215, an inverse quantizer 220, an inverse transformer 225, An adder 230, a filter 235, an encoded picture buffer 240, and an entropy encoder 245 may be included.
  • the prediction unit 200 may be implemented using a prediction module, which is a software module, and generates a prediction block with an intra prediction or inter prediction for a block to be encoded. can do.
  • the prediction unit 200 may generate a prediction block by predicting a target block to be currently encoded in the image. In other words, the prediction unit 200 predicts the pixel value of each pixel of the target block to be encoded in the image according to the intra prediction or the inter prediction. Can generate a prediction block with
  • the prediction unit 200 may transmit information necessary for generating a prediction block, such as information about a prediction mode such as an intra prediction mode or an inter prediction mode, to the encoder so that the encoder encodes the information about the prediction mode. Can be.
  • the processing unit for which the prediction is performed the processing method for which the prediction method and the details are determined may be determined according to the encoding / decoding setting.
  • the prediction method, the prediction mode, etc. may be determined in the prediction unit, and the performance of the prediction may be performed in the transformation unit.
  • the inter prediction unit may be divided into temporal prediction and spatial prediction based on the reference picture.
  • temporal prediction it may be a prediction method of finding motion in a picture that is temporally different from the current picture.
  • motion is performed in a current picture (an area that has been encoded, a preset area adjacent to a target block) that is temporally identical to the current picture. May be a prediction method. This may be managed collectively through the reference picture list or may be classified and managed.
  • the reference picture list may be configured by mixing the current picture with the current or previous encoded picture, and the encoding mode is divided into Mode_Intra, Mode_InterD, and Mode_InterC. ) And Mode_InterC (current reference).
  • the inter prediction unit may be classified into a moving motion model and a non-moving motion model according to a motion prediction method.
  • the prediction is performed by considering only the parallel movement
  • the prediction can be performed by considering the movements such as rotation, perspective, zoom in / out as well as the parallel movement. have.
  • one motion vector may be required for a moving motion model, but one or more motion information (e.g., one motion vector + rotation angle / scale factor, two or more motion vectors for a non-movement motion model).
  • Etc assumes the use of more than one motion vector).
  • each motion vector may be information applied to a predetermined position of the target block, such as upper left corner, upper right corner, and lower left corner of the target block.
  • the position of the region can be obtained in pixel units or sub-block units (an integer of 2 or more such as 4 x 4 and 8 x 8).
  • the inter prediction unit may apply some processes to be described later in common according to the motion model, and some processes may be applied separately.
  • the inter prediction unit may include a reference picture configuration unit, a motion estimation unit, a motion compensator, a motion information determiner, and a motion information encoder.
  • the reference picture configuration unit may include, in the reference picture lists L0 and L1, pictures encoded before or after the current picture.
  • a prediction block may be obtained from a reference picture included in the reference picture list, and the current picture may also be configured as a reference picture and included in at least one of the reference picture lists according to encoding settings.
  • the reference picture component may include a reference picture interpolator, and may perform an interpolation process for a fractional pixel according to interpolation precision.
  • a reference picture interpolator For example, an 8-tap DCT based interpolation filter may be applied in the case of luminance components, and a 4-tap DCT based interpolation filter may be applied in the case of chrominance components.
  • the motion estimation unit searches a block having a high correlation with a target block through a reference picture, and various methods such as a full search-based block matching algorithm (FBMA) and a three step search (TSS) may be used.
  • FBMA full search-based block matching algorithm
  • TSS three step search
  • the motion compensator means a process of obtaining a prediction block through a motion estimation process.
  • the motion information determiner may perform a process for selecting the optimal motion information of the target block, and the motion information may be a skip mode, a merge mode, or a competition mode. It may be encoded by a motion information encoding mode.
  • the mode may be configured by combining the supported modes according to the motion model, skip mode (movement), skip mode (movement), merge mode (movement), merge mode (non-movement), competition mode (movement), Competition mode (other than movement) may be an example of this.
  • Some of the modes may be included in the candidate group according to the encoding setting.
  • a prediction value of motion information (motion vector, reference picture, prediction direction, etc.) of the target block may be obtained from at least one candidate block, and optimal candidate selection information is provided when two or more candidate blocks are supported. May occur.
  • the prediction value may be used as the motion information of the target block as it is, and in the competition mode, difference information between the motion information of the target block and the prediction value may be generated. .
  • the candidate group for the motion information prediction value of the target block may be adaptive and have various configurations according to the motion information encoding mode.
  • the motion information of a block spatially adjacent to the target block eg, left, top, top left, top right, bottom left block, etc.
  • the block corresponding to or corresponding to the temporally adjacent block eg, the target block
  • the motion information of the left, right, top, bottom, top left, top right, bottom left and bottom right blocks, including the block ⁇ center> in another image may be included in the candidate group, and the mixed motion information of the spatial candidate and the temporal candidate (for example, For example, information obtained as an average, a median value, etc. of two or more candidates through motion information of spatially adjacent blocks and motion information of temporally adjacent blocks. And the like may be included in the candidate group.
  • the order of inclusion in the prediction value candidate group configuration may be determined according to the priority, and the candidate group configuration may be completed when the number of candidate groups (determined according to the motion information encoding mode) is filled according to the priority.
  • priority may be determined in order of motion information of spatially adjacent blocks, motion information of temporally adjacent blocks, and mixed motion information of spatial candidates and temporal candidates, but other modifications are also possible.
  • candidates may be included in the candidate group in the order of left-up-top-right-bottom-left-top block, and candidate blocks in order of right-bottom-middle-right-bottom block among temporally adjacent blocks. It can be included in.
  • the subtraction unit 205 may generate a residual block by subtracting the prediction block from the target block.
  • the subtractor 205 calculates a difference between the pixel value of each pixel of the target block to be encoded and the predicted pixel value of each pixel of the prediction block generated by the predictor, and is a residual signal in the form of a block. Residual blocks can be created.
  • the subtraction unit 205 may generate the residual block according to units other than the block unit obtained through the block division unit described below.
  • the transform unit 210 may convert a signal belonging to a spatial domain into a signal belonging to a frequency domain, and a signal obtained through a transformation process is called a transformed coefficient.
  • a transform block having a transform coefficient may be obtained by transforming the residual block having the residual signal received from the subtractor, but the input signal is determined according to an encoding setting, which is not limited to the residual signal.
  • the transform unit can transform the residual block using transformation techniques such as a Hadamard transform, a Discrete Sine Transform (DST Based-Transform), or a Discrete Cosine Transform (DCT Based-Transform).
  • transformation techniques such as a Hadamard transform, a Discrete Sine Transform (DST Based-Transform), or a Discrete Cosine Transform (DCT Based-Transform).
  • DST Based-Transform a Discrete Sine Transform
  • DCT Based-Transform Discrete Cosine Transform
  • At least one of the transformation schemes may be supported, and at least one detailed transformation scheme may be supported in each transformation scheme.
  • the detailed changed technique may be a transformation technique in which a part of the basis vector is configured differently in each transformation technique.
  • DCT digital coherence tomography
  • DCT-8 one or more detailed transformation schemes of DCT-1 to DCT-8
  • DST-8 one or more detailed transformation schemes of DST-1 to DST-8
  • a portion of the detailed transformation scheme may be configured to form a transformation technique candidate group.
  • DCT-2, DCT-8, and DST-7 may be configured as a transform technique candidate group to perform transform.
  • the conversion can be performed in the horizontal / vertical direction.
  • one-dimensional transform is performed in the horizontal direction using the transform technique of DCT-2
  • one-dimensional transform is performed in the vertical direction using the transform technique of DST-7 to perform a total two-dimensional transform.
  • the pixel value of can be converted into the frequency domain.
  • the transformation can be performed using one fixed transformation technique, or the transformation can be performed by adaptively selecting the transformation scheme according to the encoding / decoding.
  • the adaptation method may be selected using an explicit or implicit method.
  • each transformation technique selection information or transformation technique set selection information applied to the horizontal and vertical directions may occur in a unit such as a block.
  • encoding settings may be defined according to an image type (I / P / B), a color component, a size / shape / position of a block, an intra prediction mode, and a predetermined conversion scheme may be selected accordingly.
  • the partial transform is omitted depending on the encoding setting. That is, one or more of the horizontal / vertical units may be omitted, either explicitly or implicitly.
  • the transformer may transmit information necessary to generate a transform block to the encoder to encode the information, and store the information in the bitstream and transmit the information to the decoder, and the decoder of the decoder parses the information and inversely transforms the information. Can be used for the process.
  • the quantization unit 215 may quantize the input signal.
  • the signal obtained through the quantization process is referred to as a quantized coefficient.
  • a quantization block having a quantization coefficient may be obtained by quantizing a residual block having a residual transform coefficient received from a transform unit. The received signal is determined according to an encoding setting, which is not limited to the residual transform coefficient.
  • the quantization unit may quantize the transformed residual block by using quantization techniques such as dead zone uniform threshold quantization, quantization weighted matrix, and the like, but are not limited thereto. Quantization techniques can be used.
  • the quantization process may be omitted according to the encoding setting.
  • the quantization process may be omitted (including the inverse process) according to the encoding setting (for example, the quantization parameter is 0. That is, the lossless compression environment).
  • the quantization process may be omitted when the compression performance through quantization is not exhibited according to the characteristics of the image.
  • the region in which the quantization process is omitted among the quantization blocks M x N may be an entire region or a partial region (M / 2 x N / 2, M x N / 2, M / 2 x N, etc.) and may be quantized.
  • the omission selection information may be determined implicitly or explicitly.
  • the quantization unit may transmit information necessary for generating a quantization block to the encoding unit and encode the information.
  • the quantization unit stores the information in a bitstream and transmits the information to the decoder, and the decoder of the decoder parses the information and dequantizes it. Can be used for the process.
  • the residual block may be transformed from the residual signal to generate a residual block having transform coefficients, and the quantization process may not be performed. Not only may the quantization process be performed without converting the residual signal into transform coefficients, but neither the transformation nor the quantization process may be performed. This may be determined according to the encoder setting.
  • the inverse quantization unit 220 inverse quantizes the residual block quantized by the quantization unit 215. That is, the inverse quantizer 220 inversely quantizes the quantized frequency coefficient sequence to generate a residual block having the frequency coefficient.
  • the inverse transform unit 225 inversely transforms the residual block inversely quantized by the inverse quantization unit 220. That is, the inverse transformer 225 inversely transforms frequency coefficients of the inversely quantized residual block to generate a residual block having a pixel value, that is, a reconstructed residual block.
  • the inverse transform unit 225 may perform inverse transform by using the transformed method used in the transform unit 210 as the inverse.
  • the adder 230 reconstructs the target block by adding the prediction block predicted by the predictor 200 and the residual block reconstructed by the inverse transform unit 225.
  • the reconstructed target block is stored as a reference picture (or a reference block) in the encoded picture buffer 240 and may be used as a reference picture when encoding the next block, another block, or another picture of the target block.
  • the filter unit 235 may include one or more post-processing filter processes such as a deblocking filter, a sample adaptive offset (SAO), an adaptive loop filter (ALF), and the like.
  • the deblocking filter may remove block distortion generated at the boundary between blocks in the reconstructed picture.
  • the ALF may perform filtering based on a value obtained by comparing the reconstructed image with the original image after the block is filtered through the deblocking filter.
  • the SAO may restore the offset difference from the original image on a pixel basis with respect to the residual block to which the deblocking filter is applied.
  • Such a post-processing filter may be applied to the reconstructed picture or block.
  • the encoded picture buffer 240 may store a block or a picture reconstructed by the filter unit 235.
  • the reconstructed block or picture stored in the encoded picture buffer 240 may be provided to the prediction unit 200 that performs intra prediction or inter prediction.
  • the entropy encoder 245 scans the generated quantization frequency coefficient sequence according to various scan methods to generate a quantization coefficient sequence, and outputs the encoded quantization coefficient sequence by encoding it using an entropy encoding technique.
  • the scan pattern may be set to one of various patterns such as zigzag, diagonal lines, and rasters.
  • encoded data including encoded information transmitted from each component may be generated and output as a bitstream.
  • FIG. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • the image decoding apparatus 30 includes an entropy decoder 305, a predictor 310, an inverse quantizer 315, an inverse transformer 320, an adder and subtractor 325, a filter 330, and the like.
  • the decoded picture buffer 335 may be configured.
  • the prediction unit 310 may be configured to include an intra prediction module and an inter prediction module.
  • the image bitstream may be transferred to the entropy decoder 305.
  • the entropy decoder 305 may decode the bitstream to decode the decoded data including the quantized coefficients and the decoded information transmitted to each component.
  • the prediction unit 310 may generate a prediction block based on the data transferred from the entropy decoding unit 305.
  • the reference picture list using a default construction technique may be constructed based on the reference picture stored in the decoded picture buffer 335.
  • the inter prediction unit may include a reference picture component unit, a motion compensator, and a motion information decoder, and some of the processes may be performed in the same process as the encoder, and some may be reversed.
  • the inverse quantizer 315 may inverse quantize the quantized transform coefficients provided in the bitstream and decoded by the entropy decoder 305.
  • the inverse transform unit 320 may generate a residual block by applying inverse transform techniques of inverse DCT, inverse integer transform, or the like to a transform coefficient.
  • the inverse quantization unit 315 and the inverse transform unit 320 perform the processes performed by the transform unit 210 and the quantization unit 215 of the image encoding apparatus 20 described above, and may be implemented in various ways. have.
  • the same process and inverse transform shared with the transform unit 210 and the quantization unit 215 may be used, and information about the transform and quantization process from the image encoding apparatus 20 (for example, transform size and transform). Shape, quantization type, etc.) may be used to reverse the transform and quantization processes.
  • the residual block that has undergone inverse quantization and inverse transformation may be added to the prediction block derived by the prediction unit 310 to generate an image block reconstructed. This addition can be made by the adder and subtractor 325.
  • the filter 330 may apply a deblocking filter to the reconstructed image block to remove blocking if necessary, and further add other loop filters to improve video quality before and after the decoding process. Can also be used.
  • the reconstructed and filtered image block may be stored in the decoded picture buffer 335.
  • the image encoding / decoding apparatus may further include a block divider.
  • the block divider may divide the block into blocks of various units and sizes.
  • a basic coding unit (or maximum coding unit. Coding Tree Unit. CTU) may mean a basic (or start) unit for prediction, transform, quantization, etc. in an image encoding / decoding process.
  • the basic coding unit may include one luminance basic coding block (or, maximum coding block, Coding Tree Block.CTB) and two basic color difference coding blocks according to a color format (YCbCr in this example). According to the size of each block can be determined.
  • a coding block (CB) may be obtained according to a division process.
  • a coding block may be understood as a unit that is not divided into further coding blocks according to a certain restriction, and may be set as a start unit of division into lower units.
  • a block is not limited to a rectangular shape, but can be understood as a broad concept including various shapes such as triangles and circles.
  • a block may be expressed as M ⁇ N, and a maximum value and a minimum value of each block may be obtained within a range. For example, if the maximum value of a block is 256 ⁇ 256 and the minimum value is 4 ⁇ 4, a 2 m ⁇ 2 n block (m and n are integers from 2 to 8 in this example) or 2 m ⁇ 2 m In this example, m and n are integers from 2 to 128, or m ⁇ m blocks (m and n are integers from 4 to 256).
  • m and n may or may not be the same, and one or more ranges in which the blocks such as the maximum value and the minimum value are supported may occur.
  • information about a maximum size and a minimum size of a block may occur, and information about a maximum size and a minimum size of a block, etc. may be generated in some division settings.
  • the former may be range information on the maximum and minimum sizes that may occur in the image, and the latter may be information on the maximum and minimum sizes that may occur according to some division settings.
  • the division setting may include image type (I / P / B), color component (YCbCr, etc.), block type (encoding / prediction / conversion / quantization, etc.), division type (Index or Type), and division method (QT in the Tree method).
  • BT, TT, etc. may be defined by SI2, SI3, SI4, etc.) in an index method.
  • width / length length ratio (the shape of the block) that the block may have, and a threshold value condition may be set for it.
  • k is a ratio of length and width equal to A / B (A is a length or the same value among horizontal and vertical values, and B is the remaining value). It may be defined according to, and may be one or more real numbers such as 1.5, 2, 3, 4, and the like.
  • constraints regarding the shape of one block in the image may be supported, or one or more constraints may be supported according to the division setting.
  • whether or not block division is supported may be determined by the ranges and conditions as described above and the division setting described later. For example, if a candidate (child block) according to a partition of a block (parent block) satisfies a supported block condition, the partition may be supported. If not, the partition may not be supported.
  • the block divider may be set in relation to each component of the image encoding apparatus and the decoding apparatus, and the size and shape of the block may be determined through this process.
  • the set block may be defined differently according to the configuration unit, and a prediction block in the prediction unit, a transform block in the transform unit, and a quantization block in the quantization unit may correspond to this.
  • the present invention is not limited thereto, and a block unit according to another component may be further defined.
  • the input and output of each component is described in the case of a rectangular shape, but in some components it may be possible to input / output in a different form (for example, a right triangle, etc.).
  • the size and shape of the initial (or starting) block of the block division may be determined from higher units.
  • the initial block may be divided into smaller sized blocks, and when the optimal size and shape according to the division of the block is determined, the block may be determined as the initial block of the lower unit.
  • the upper unit may be a coding block and the lower unit may be a prediction block or a transform block, but the present invention is not limited thereto, and various modifications may be possible.
  • a partitioning process for searching for a block having an optimal size and shape like the upper unit may be performed.
  • the block dividing unit may divide the basic coding block (or the largest coding block) into at least one coding block, and the coding block may divide into at least one prediction block / transform block / quantization block. .
  • the prediction block may perform partitioning into at least one transform block / quantization block, and the transform block may perform partitioning into at least one quantization block.
  • some blocks may be dependent relationships (ie, defined by higher units and lower units) with other blocks or may have independent relationships.
  • the prediction block may be an upper unit of the transform block or may be an independent unit of the transform block, and various relationships may be set according to the type of the block.
  • the combination between units does not perform the division from the upper unit to the lower unit, but the sub-unit decoding / decoding process (eg, prediction unit, transform unit, inverse transform unit, etc.) into blocks (sizes and shapes) of higher units.
  • the sub-unit decoding / decoding process eg, prediction unit, transform unit, inverse transform unit, etc.
  • the splitting process may be shared in a plurality of units, and the splitting information may be generated in one unit (for example, higher unit).
  • a prediction process, a transform, and an inverse transform process may be performed in a coding block (when a coding block is combined with a prediction block and a transform block).
  • a prediction process may be performed in a coding block (when a coding block is combined with a prediction block), and a transform and inverse transform process may be performed in a transform block that is the same as or smaller than the coding block.
  • a prediction process may be performed on a prediction block that is the same as or smaller than the coding block (when the coding block is combined with a transform block), and a transform and inverse transform process may be performed on the coding block.
  • a prediction process may be performed on a prediction block that is the same as or smaller than the coding block (when the prediction block is combined with a transform block), and a transform and inverse transform process may be performed on the prediction block.
  • a prediction process may be performed in a prediction block that is the same as or smaller than the coding block (when not combined in any block), and a transform and inverse transform process may be performed in a transform block that is the same as or smaller than the coding block.
  • the sub / decoding elements may include an image type, a color component, an encoding mode (Intra / Inter), a segmentation setting, a size / shape / position of a block, a length / width ratio, and prediction related information (eg, intra prediction). Mode, inter prediction mode, etc.), transform related information (e.g., transformation technique selection information, etc.), quantization related information (e.g., quantization region selection information, quantized transform coefficient encoding information, etc.), and the like. have.
  • encoding mode Intra / Inter
  • a segmentation setting e.g., a size / shape / position of a block, a length / width ratio
  • prediction related information eg, intra prediction.
  • transform related information e.g., transformation technique selection information, etc.
  • quantization related information e.g., quantization region selection information, quantized transform coefficient encoding information, etc.
  • mode information for example, split information, etc.
  • the mode information may be stored in the bitstream together with information generated by the component to which the block belongs (for example, prediction related information and transform related information) and transmitted to the decoder, and may be parsed in units of the same level by the decoder. Can be used in the video decoding process.
  • the initial block is in the form of a square, but the same may be similarly or similarly applied to the case where the initial block is in the form of a rectangle.
  • the block divider may support various kinds of splits. For example, it may support tree-based partitioning or index-based partitioning, and other methods may be supported.
  • the tree-based partition may determine the partition type based on various kinds of information (for example, whether to split, the tree type, the split direction, etc.), and the index-based partition may determine the partition type based on predetermined index information.
  • FIG. 4 is an exemplary diagram illustrating various partition types that may be obtained in a block partition unit of the present invention.
  • the division form as shown in FIG. 4 is obtained through one division (or process).
  • the present disclosure is not limited thereto and may also be obtained through a plurality of division operations.
  • additional divisional forms not shown in FIG. 4 may be possible.
  • a quad tree QT
  • BT binary tree
  • TT ternary tree
  • multi-tree split When one tree method is supported, it may be referred to as a single tree split, and when two or more tree methods are supported, a multi-tree split.
  • the block is divided into two (i.e., four) in the horizontal and vertical directions (n), and in the case of BT, the block is divided into two in the horizontal or vertical directions (b to g). In the case of TT, the block is divided into three directions in one direction (h to m).
  • the division method (o, p) may be supported by limiting the division direction to one of horizontal and vertical.
  • the schemes (b, c) having uniform sizes
  • only the schemes (d to g) having non-uniform sizes, or a mixture of the two schemes may be supported.
  • TT only the division (h, j, k, m) in which the division has an arrangement (1: 1: 2, 2: 1: 1, etc. in a left-> right or up-> down direction) It can support only the methods (i, l) that are supported, centered (1: 2: 1, etc.), or a mixture of both.
  • z-partition (b, d, e, h, i, j, o) limited to the horizontal division direction among the tree methods, or z-partition (c, f, g only limited to the vertical division direction). , k, l, m, p), or a mixture of both.
  • z may be an integer of 2 or more, such as 2, 3, and 4.
  • One or more of the tree divisions may be supported according to the encoding / decoding setting. For example, it may support QT, support QT / BT, or support QT / BT / TT.
  • the above example is a case where the base tree split is QT and BT and TT are included in the additional split scheme according to whether other trees are supported, but various modifications may be possible.
  • information on whether or not other trees are supported (bt_enabled_flag, tt_enabled_flag, bt_tt_enabled_flag, etc., may have a value of 0 or 1, 0 is not supported, 1 is supported) or is implicitly determined according to the encoding / decoding setting or sequence, It may be determined explicitly in units of a picture, a slice, a tile, and the like.
  • the partition information may include information on whether to split (tree_part_flag. Or qt_part_flag, bt_part_flag, tt_part_flag, bt_tt_part_flag. The value may be 0 or 1, and 0 may be divided and 1 is divided). In addition, depending on the division schemes BT and TT, the division direction (dir_part_flag. Or bt_dir_part_flag, tt_dir_part_flag, bt_tt_dir_part_flag. May be 0 or 1, where 0 is ⁇ horizontal / horizontal>, and 1 is ⁇ vertical / vertical>) Information about may be added, which may be information that may occur when splitting is performed.
  • partition information configurations may be possible.
  • the following description assumes an example of how the partition information is configured at one depth level (ie, for the convenience of explanation, although recursive partitioning may be possible because one or more supported partition depths are set to one or more). do.
  • the selection information on the split type (for example, tree_idx. 0 is QT, 1 is BT, 2 is TT) is checked. At this time, additionally check the split direction information according to the selected split type, and start again from the beginning if additional splitting is possible due to the next step (when the split depth has not reached the maximum, or end splitting if splitting is not possible). Go to).
  • the information on whether to split some tree methods is checked and the process proceeds to the next step.
  • the split is not performed, information on whether or not the partial tree method BT is split is checked.
  • the split is not performed, information on whether or not the partial tree method TT is split is checked. At this time, if the division is not performed, the division ends.
  • splitting of some tree type QT
  • the process proceeds to the next step.
  • the split direction information is checked and the process proceeds to the next step.
  • the split of some tree split schemes TT
  • the information on whether to split for some tree method is checked. At this time, if the split is not performed, the information on whether or not to split some tree methods (BT and TT) is checked. At this time, if the division is not performed, the division ends.
  • splitting of some tree type QT
  • the process proceeds to the next step.
  • splitting of some tree methods BT and TT the split direction information is checked and the process proceeds to the next step.
  • the above example may be the case where the priority of the tree split exists (examples 2 and 3) or does not exist (example 1), but various modification examples may be possible.
  • the division of the current step is an example for explaining a case that is not related to the division result of the previous step, but it may also be possible to set the division of the current step depending on the division result of the previous step.
  • the splitting of the same tree method (QT) may be supported in the current step.
  • the partitioning information configuration described above may also be configured differently. (Examples to be described below are assumed to be examples 3)
  • splitting information eg, splitting information, splitting direction information, etc.
  • splitting information regarding the related tree method may be configured by removing the splitting information.
  • the above example is adaptive for the case where block partitioning is allowed (e.g., block size is within the range between the maximum and minimum values, the partitioning depth of each tree method does not reach the maximum depth ⁇ allowed depth>, etc.). It is related to the structure of partitioning information, and adapts to the case where the block partitioning is limited (for example, the block size does not exist in the range between the maximum value and the minimum value, the partitioning depth of each tree method reaches the maximum depth, etc.). Partitioning information may be configured.
  • tree-based partitioning in the present invention can be performed using a recursive manner. For example, when the partition flag of the coding block having the partition depth k is 0, encoding of the coding block is performed in the coding block having the partition depth k, and when the partition flag of the coding block having the partition depth k is 1, the coding block.
  • the encoding of is performed in N sub-coding blocks having a division depth of k + 1 (wherein N is an integer of 2 or more, such as 2, 3, 4) according to a division scheme.
  • the sub coded block may be set again to a coded block k + 1 and divided into sub coded blocks k + 2 through the above process. It can be determined according to.
  • the bitstream structure for expressing the partition information may be selected from one or more scan methods.
  • the bitstream of the split information may be configured based on the split depth order, or the bitstream of the split information may be configured based on whether the split information is divided.
  • the partitioning information is obtained at the next level of depth.
  • a method of preferentially acquiring additional splitting information in the received block, and another additional scanning method may be considered.
  • the maximum block size and the minimum block size can have common settings regardless of tree type (or all trees), can have individual settings for each tree, or can have common settings for more than one tree. have. In this case, the maximum block size may be set equal to or smaller than the maximum coding block. If the size of the maximum block according to the first first tree is not the same as the maximum coding block, partitioning is implicitly performed using the predetermined second tree until the maximum block size of the first tree is reached.
  • a common split depth may be supported, an individual split depth may be supported according to each tree, or a common split depth for two or more trees may be supported. Alternatively, some trees may have a split depth and some trees may not have a split depth.
  • Explicit syntax elements for the configuration information may be supported, and some configuration information may be implicitly determined.
  • CSI constant split index
  • VSI variable split index
  • the CSI scheme may be a scheme in which k subblocks are obtained through division in a predetermined direction, and k may be an integer of 2, 3, 4, or the like. In detail, it may be a partitioning scheme of a configuration in which the size and shape of the sub block are determined based on the k value regardless of the size and shape of the block.
  • the predetermined direction may be combined with one or two or more of the horizontal, vertical, diagonal (upper left-> lower right direction, or lower left-> upper right direction) direction.
  • the index-based CSI partitioning scheme of the present invention may include candidates divided into z in one of horizontal or vertical directions.
  • z may be an integer of 2 or more, such as 2, 3, and 4, and one of the horizontal or vertical lengths of each sub block may be the same and the other may be the same or different.
  • the ratio of the width or length of the sub-block is A 1 : A 2 : ...: A Z and A 1 to A Z may be an integer of 1 or more, such as 1, 2, and 3.
  • x and y may be an integer of 1 or more, such as 1, 2, 3, 4, but may be limited if x and y are 1 at the same time (since a already exists).
  • x and y may be an integer of 1 or more, such as 1, 2, 3, 4, but may be limited if x and y are 1 at the same time (since a already exists).
  • FIG. 4 the case in which the ratio of the width or length of each sub-block is the same is illustrated. However, candidates including different cases may be included.
  • it may include w candidates divided into one of some diagonal directions (upper left-> lower right direction) or some diagonal directions (lower left-> upper right direction), and w may be an integer of 2 or more, such as 2 and 3. .
  • the sub-blocks may be divided into symmetrical partitions (b) and asymmetrical partitions (d, e) according to the length ratio of each sub-block. It can be divided into the divided form k arranged.
  • the partition type can be defined by various sub / decoding elements including not only the length ratio of the sub block but also the type of the sub block, and the supported split type can be determined either implicitly or explicitly according to the sub / decoding setting. have.
  • the candidate group in the index-based partitioning scheme may be determined based on the supported partition type.
  • the VSI method may be a method in which one or more subblocks are obtained by dividing in a predetermined direction while the width (w) or height (h) of the subblock is fixed, and w and h are 1, 2, 4, It may be an integer of 1 or more, such as 8 or the like. In detail, it may be a partitioning scheme of a configuration in which the number of sub blocks is determined based on the size and shape of the block and the w or n value.
  • the index-based VSI partitioning scheme of the present invention may include candidates that are partitioned by fixing either the horizontal or vertical length of the subblock. Or, it may include a candidate divided by fixing the horizontal and vertical length of the sub-block. Since the horizontal or vertical length of the sub-block is fixed, it may have a feature that allows equal division in the horizontal or vertical direction, but is not limited thereto.
  • the block before dividing is M x N and the horizontal length of the subblock is fixed (w), the vertical length is fixed (h), or the horizontal and vertical length is fixed (w, h), the number of subblocks obtained is (M * N) / w, (M * N) / h, and (M * N) / w / h, respectively.
  • the CSI method or the VSI method may be supported, both methods may be supported, and information on the supported method may be implicitly or explicitly determined.
  • the candidate group may be configured by including two or more candidates among the index partitions according to the encoding / decoding.
  • candidate groups such as ⁇ a, b, c ⁇ , ⁇ a, b, c, n ⁇ , and ⁇ a to g, n ⁇ can be configured, which can be divided into two horizontal or vertical directions or two horizontal and vertical directions.
  • a block group predicted to occur a lot based on general statistical characteristics, such as a block form divided into two, may be an example of configuring a candidate group.
  • candidate groups such as ⁇ a, b ⁇ , ⁇ a, o ⁇ , ⁇ a, b, o ⁇ or ⁇ a, c ⁇ , ⁇ a, p ⁇ , ⁇ a, c, p ⁇ may be configured.
  • a candidate group such as ⁇ a, o, p ⁇ or ⁇ a, n, q ⁇ may be configured.
  • An example of configuring a candidate group with a block type that is expected to generate a large number of partitions having a smaller size than a block before splitting is performed. Can be.
  • a candidate group such as ⁇ a, r, s ⁇ may be configured.
  • the optimal partitioning result obtained in the rectangular form is obtained through another method (tree method) in the pre-division block. It may be an example of configuring the divided form as a candidate group.
  • various candidate groups may be configured, and one or more candidate groups may be supported in consideration of various encoding / decoding elements.
  • index selection information may occur in a candidate group including a candidate (a) that is not split and candidates (b to s) that are split.
  • information indicating whether or not to split may be generated (whether or not the split type is a), and index selection information may be generated in a candidate group consisting of candidates (b to s) to be split when splitting is performed (if not a). Can be.
  • the partitioning information may be configured in various manners other than the above description, and the binary bits may be allocated to the index of each candidate in the candidate group through various methods, such as fixed length binarization and variable length binarization, except for the information indicating whether the partition is performed. have. If the number of candidate groups is two, one bit may be allocated to the index selection information, and if three or more, one bit or more may be allocated to the index selection information.
  • the index-based partitioning method may be a method of selectively configuring a partition type that is expected to occur in a candidate group.
  • a single hierarchical partition for example, a partition depth of 0 may be used instead of a tree-based hierarchical partition (recursive partition). Limitation). That is, it may be a method of supporting one partitioning operation, and a subblock obtained through index-based partitioning may not be further partitioned.
  • this may mean that additional splitting into blocks of the same type having a smaller size is impossible (for example, a coding block obtained through an index splitting scheme may not be further splitted into coding blocks). It may also be possible to set (eg, not possible to split not only a coding block from a coding block into a prediction block but also a coding block). Of course, it is not limited to the above example, and other modification examples may be possible.
  • the following describes the case where the block division setting is decided based on the type of block among the encoding / decoding elements.
  • a coding block may be obtained through a division process.
  • the splitting process may be a tree-based splitting scheme, and according to the tree type, splitting forms of a (no split), n (QT), b, c (BT), i, l (TT), etc. of FIG. 4 may be used.
  • the result can be.
  • Various combinations of tree types such as QT / QT + BT / QT + BT + TT may be possible depending on the encoding / decoding settings.
  • An example to be described below shows a process of finally partitioning a prediction block and a transform block based on the coding block obtained through the above process, and assumes a case where a prediction, transform, and inverse transform process is performed based on each partition size.
  • a prediction block may be set as the size of a coding block to perform a prediction process
  • a transform block may be set as the size of a coding block (or a prediction block) to perform a transform and an inverse transform process. Since the prediction block and the transform block are set based on the coding block, there is no split information that occurs separately.
  • the prediction block may be set as the size of the coding block to perform the prediction process.
  • a transform block may be obtained through a partitioning process based on a coding block (or a prediction block), and a transform and inverse transform process may be performed based on the obtained size.
  • the splitting process may be a tree-based splitting scheme, and according to the tree type, splitting schemes such as a (no split), b, c (BT), i, l (TT), and n (QT) of FIG. 4 may be used.
  • the result can be.
  • Various combinations of tree types, such as QT / BT / QT + BT / QT + BT + TT, may be possible depending on the min / decoding settings.
  • the partitioning process may use an index-based partitioning scheme, and a split type result of a (no split), b, c, and d of FIG. 4 may be output according to the index type.
  • Various candidate groups such as ⁇ a, b, c ⁇ , ⁇ a, b, c, d ⁇ , etc. may be configured according to the encoding / decoding setting.
  • a prediction block in the case of a prediction block, a prediction block may be obtained by performing a partitioning process based on a coding block, and a prediction process may be performed based on the obtained size.
  • the size of the coding block is set as it is, and the transform and inverse transform processes can be performed. This example may correspond to a case in which the prediction block and the transform block have independent relationships with each other.
  • the partitioning process may use an index-based partitioning scheme, and a partition type result of a (no split), b to g, n, r, and s of FIG. 4 may be output according to an index type.
  • Various candidate group configurations such as ⁇ a, b, c, n ⁇ , ⁇ a to g, n ⁇ , ⁇ a, r, s ⁇ , etc. may be possible depending on the encoding / decoding setting.
  • a prediction block in the case of a prediction block, a prediction block may be obtained by performing a partitioning process based on a coding block, and a prediction process may be performed based on the obtained size.
  • the size of the prediction block is set as it is to perform the transform and inverse transform process. This example may be the case where the transform block is set as it is obtained predicted block size, or vice versa (predicted block as the transform block size is set).
  • the splitting process may use a tree-based splitting scheme, and a splitting scheme such as a (no split), b, c (BT), n (QT), etc. of FIG. 4 may be provided according to the tree type.
  • a splitting scheme such as a (no split), b, c (BT), n (QT), etc. of FIG. 4 may be provided according to the tree type.
  • Various combinations of tree types, such as QT / BT / QT + BT, may be possible depending on the encoding / decoding settings.
  • the partitioning process may use an index-based partitioning scheme, and a partitioning form of a (no split), b, c, n, o, p, etc. of FIG. 4 may appear according to the index type.
  • ⁇ A, b ⁇ , ⁇ a, c ⁇ , ⁇ a, n ⁇ , ⁇ a, o ⁇ , ⁇ a, p ⁇ , ⁇ a, b, c ⁇ , ⁇ a, o, p depending on the negative / decryption settings ⁇ , ⁇ a, b, c, n ⁇ , ⁇ a, b, c, n, p ⁇ and the like can be configured in various candidate groups.
  • the VSI scheme may be used alone or in combination with the CSI scheme to form a candidate group.
  • a prediction block in the case of a prediction block, a prediction block may be obtained by performing a partitioning process based on a coding block, and a prediction process may be performed based on the obtained size.
  • a prediction block in the case of the transform block, a prediction block may be obtained by performing a partitioning process based on the coding block, and a transform and inverse transform process may be performed based on the obtained size.
  • This example may be a case of splitting the prediction block and the transform block based on the coding block.
  • the partitioning process may use a tree-based partitioning method and an index-based partitioning method, and candidate groups may be configured in the same or similar manner as in the fourth example.
  • the above example describes some cases that may occur depending on whether the division process of each type of block is shared or the like.
  • the present disclosure is not limited thereto, and various modifications may be possible.
  • the block division setting may be determined by considering various sub / decoding elements as well as the type of the block.
  • the encoding / decoding elements may include image type (I / P / B), color component (YCbCr), block size / form / position, block width / length length ratio, block type (coding block, prediction block, transform, etc.).
  • Block, quantization block, etc. segmentation state, coding mode (Intra / Inter), prediction related information (intra prediction mode, inter prediction mode, etc.), transformation related information (transformation technique selection information, etc.), quantization related information (quantization) Region selection information, quantized transform coefficient encoding information, and the like).
  • Figure 5 shows an example of a family tree for explaining the genetic characteristics of the members of a household and the people in the blood relationship. For convenience of explanation, a horizontal and vertical relationship according to a specific gender (male) is shown.
  • the target person may have a horizontal relationship (a) with his brother and his brother (grandfather), and may include grandfather (grandfather), father (father and above ancestors), child (son), and grandson. It can have a vertical relationship (b) with (above descendants).
  • the characters placed in a horizontal relationship may have similar genetic factors such as appearance, physique, and personality. Or, there may be cases in which some elements are similar but not some elements. The similarity of all or part of the above genetic elements may be determined by various environmental factors (including mothers).
  • the above description may be applicable to the same or similar to the vertical relationship.
  • the genetic factors applying, physique, personality
  • some genetic elements applying, physique of the subject may be similar to the father
  • some genetic elements may be similar to the father (similar to the mother).
  • the target person may be genetically similar to the grandfather (or grandson) and the grandfather may be genetically similar to the grandson, but the degree of similarity between each person may be determined based on the relationship between each person. That is, the similarity (two differences) between the grandfather and the target person may be high, and the similarity (four differences) between the grandfather and the grandson may be low.
  • direct analysis may be a top priority to grasp the characteristics of the target person, but in the absence of the target person, direct analysis is impossible. In this case, it may be possible to roughly grasp the characteristics of the target person through indirect analysis of persons in various relations as in the above example. Of course, it may be necessary to analyze the person having a high similarity to the target person.
  • the block-based encoding will be taken as an example.
  • information of a block (relative block, Relative Block) having various relations with the target block may be used / referenced / referenced.
  • the information of the relative block may be data based on pixel values, data based on mode information used in the encoding process, or data based on setting information used in the encoding process.
  • it may be a pixel value in the spatial domain of the relative block or a coefficient value (or quantized coefficient) in the frequency domain.
  • the information may be mode information generated in the encoding process of the relative block.
  • the information may be information (reference candidate group, etc.) used for the reference setting used in the encoding process of the relative block.
  • the data based on the pixel value or the data based on the mode information may be information configuring the reference setting.
  • the relationship between blocks (target block and relative block, which is described mainly on the target block) may be defined as follows.
  • the target block has no overlapping area with the other block (independent relationship between blocks)
  • the target block is larger than and contains the opponent block. Or, if it is smaller than and included in the relative block (dependent relationship between blocks)
  • the relative block may be located regardless of the space to which the target block belongs. That is, the relative block may belong to the same space in time as the target block or may belong to a space different in time from the target block.
  • the relative block may be located in the space to which the target block belongs. That is, the relative block does not belong to a space different from the target block in time, but it is also possible when the concept of the relative block having a vertical relationship based on the region corresponding to the target block in the space different in time according to the encoding setting is supported. Can be.
  • FIG. 6 illustrates various arrangement examples of a counter block having a horizontal relationship with a target block.
  • a block placed in a horizontal relationship with a target block may be classified as a block belonging to a space Diff that is not identical to the same space Curr in time.
  • a block belonging to the same space is a block F 0 , F 1 , F 2 that is not adjacent to (or far adjacent to) the block adjacent to the target block (UL, U, UR, L, DL). Can be classified.
  • the block adjacent to the target block among the blocks belonging to the same space may be the block closest to the left, top, top left, top right, bottom left direction, etc., which is a raster scan (or Z-scan. Left top-> top right-> based on 2 x 2). In consideration of the order of the lower left-> lower right), a block which has already been encoded can be targeted.
  • the positions of adjacent blocks may be determined according to a predetermined scan order, and the type of scan order (inverse Z scan ⁇ right-> lower-left-> right-> top left>, clock-wise scan ⁇ left-> top right-> right bottom) -> Lower left>, counter clock-wise scan ⁇ upper left-> lower left-> right lower-> upper right>, etc.), such as removing a block at the above position or adding a block at a new position (right, lower, lower right direction, etc.) May occur.
  • the type of scan order inverse Z scan ⁇ right-> lower-left-> right-> top left>, clock-wise scan ⁇ left-> top right-> right bottom
  • -> Lower left> e.g., counter clock-wise scan ⁇ upper left-> lower left-> right lower-> upper right>, etc.
  • a block that is not adjacent to the target block may be a block that has already been encoded. In this case, they may belong to the same block unit (maximum coding block, etc.) as the target block, or may belong to the same division unit (slice, tile, etc.). That is, a limited setting may be supported such that a range (existing within the range of x_offset and y_offset in the horizontal and vertical directions with respect to the target block) for an area that is not adjacent but may be included as a relative block may be supported.
  • a block having a horizontal relationship with a target block is assumed to have already been encoded, but is not limited thereto.
  • encoding information / reference setting, etc. of a relative block in a horizontal relationship may be used (reference).
  • the pixel value of the relative block may be used to generate the predicted value of the target block.
  • a prediction value of the target block may be obtained by applying a method such as extrapolation, interpolation, averaging, or block matching or template matching to the pixel value of the relative block.
  • the prediction value of the target block may be obtained by using a pixel matching of a relative block using a method such as block matching or template matching.
  • block matching or template matching may be defined as an intra prediction (Mode_Intra) in terms of finding a prediction value in the same space, or may be defined as an inter prediction according to a prediction method (Mode_Inter), and another encoding mode further defined It may be classified as.
  • all or part of the coefficient values in the frequency domain of the relative block may be used as predicted values (that is, used for predicting frequency components) of the target block.
  • the mode information of the relative block may be used for encoding the mode information of the target block.
  • prediction information of a relative block directional mode, non-directional mode, motion vector, etc.
  • MPM motion vector, reference picture, etc.
  • prediction information motion vector, reference picture, etc.
  • the prediction method of the intra prediction not only the relative blocks belonging to the same space and the same color component as the target block in time (prediction mode using extrapolation, interpolation, average, etc.) but also in time with the target block Relative blocks belonging to the same space and different color components may be the object (prediction mode for copying data of different color components).
  • the motion vector and the reference picture are targeted as an example of the prediction information, but may include various information such as a motion information encoding mode, a motion prediction direction, and a motion model.
  • the reference setting of the relative block may be used for setting the reference of the target block.
  • the MPM candidate group of the opponent block can be used as the MPM candidate group of the target block.
  • the motion prediction candidate group of the relative block may be used as the motion prediction candidate group of the target block. That is, even if the candidate group is configured based on the opponent block, it means that the candidate group of the opponent block can be used as it is without using the candidate group in the target block.
  • the relative block is assumed to be one block having a horizontal relationship with the target block.
  • many relative blocks may exist in the image, and one or more relative blocks to be used for encoding the target block must be specified.
  • the following case division is only one example, and it is necessary to understand that various case configurations and definitions are possible.
  • a block belonging to the same space and adjacent to the target block may be identified as a relative block (case 1).
  • a block belonging to the same space and not adjacent to the target block may be identified as a relative block (case 2).
  • a block belonging to a unequal space may be identified as a relative block (case 3).
  • a block belonging to all or part of (case 1) to (case 3) may be identified as a relative block.
  • all or part of the left, upper, upper left, and upper right lower left blocks (L, U, UL, UR, DL) adjacent to the target block may be identified as a relative block.
  • one or more of blocks that are not adjacent to the target block may be specified as the relative block.
  • a block including coordinates of a predetermined position may be specified as the relative block based on the target block.
  • the target block m x n has a range of (a + m-1, b + n-1) based on the upper left coordinates of (a, b).
  • C blocks are (a, b), (a, b + n-1), (a + m-1, b), (a + m-1, b + n-1), (a + m / 2- 1, b + n / 2-1), (a + m / 2 + 1, b + n / 2-1), (a + m / 2-1, b + n / 2 + 1), (a + m / 2 + 1, b + n / 2 + 1), etc., means a block including a pixel at a predetermined position among the internal pixels of the target block.
  • the L block means a block including a pixel at a predetermined position among the pixels beyond the left boundary of the target block such as (a-1, b), (a-1, b + n-1), and the U block ( It means a block including a pixel at a predetermined position among the pixels over an upper boundary of the target block such as a, b-1), (a + m-1, b-1), and the like.
  • the UL block means a block including a pixel at a predetermined position among pixels above the upper left boundary of the target block such as (a-1, b-1), and the UR block is (a + m, b-1).
  • F k block (k is 0 to 2) is defined as a horizontal / vertical / diagonal line such as (a-off_x, b), (a, b-off_y), (a-off_x, b-off_y), etc. It may mean a block including pixels spaced apart by a predetermined length (off_x, off_y, etc.) in the direction of.
  • the predetermined length may be an integer of 1 or more, such as 4, 8, 16, or the like, and may be set based on the horizontal and vertical lengths of the target block. Or, it may be set based on the width and length of the largest coding block, and various modifications thereof may be possible.
  • the predetermined length may be set implicitly as in the above example, or an associated syntax element may occur with an explicit value.
  • a block having mode information having the sameness / similarity as the encoding information of the target block may be specified as the relative block.
  • the mode information refers to information having encoding or other characteristics / meanings that have been encoded or already determined, rather than information to be encoded (or used / predicted, candidate group configuration, etc.) in the current step.
  • the determined information may be information determined in a previous step in a mode determination process or information restored in a previous step in a decoding process.
  • a block encoded using the non-movement motion model among previously encoded blocks may be identified as a relative block.
  • the motion vector information according to the non-movement motion model of the specified relative block may be used to construct a candidate group for motion vector prediction according to the non-movement motion model of the target block.
  • the motion model information refers to information having a different property / meaning used to identify the identity / similarity with the target block
  • the motion vector according to the motion model (non-movement motion model) of the relative block is the motion of the target block.
  • the information may be used to construct a motion vector prediction candidate group according to the model.
  • the relative block may or may not be adjacent to the target block. When fewer modes having the sameness / similarity as the target block occur, a block in an area not adjacent to the target block may also be useful when a specific block is to be used / referenced.
  • the relative block used / referenced for encoding the target block may be determined in consideration of the following matters.
  • the relative block may be determined based on information to be used / referenced for encoding the target block.
  • the information to be used / referenced for encoding the target block includes pixel value information for prediction, mode information related to prediction / conversion / quantization / in-loop filter / entropy encoding, and prediction / conversion / quantization / in-loop filter / entropy.
  • Reference candidate group information related to encoding or the like may be the target.
  • the relative block may be determined based on state information of the target block, image information to which the target block belongs, and the like.
  • the state information of the target block may be defined based on the size, shape, width / length length ratio, picture / division unit (slice, tile, etc.) / Position in a unit such as a maximum coding block, and the like.
  • the image information to which the target block belongs may be defined based on an image type (I / P / B), a color component (Y / Cb / Cr), and the like.
  • the relative block may be determined based on the encoding information of the target block.
  • the relative block may be determined based on whether it has information in which identity and similarity exist with the target block.
  • the information referred to for identifying the identity / similarity may be mode information related to prediction / transformation / quantization / in-loop filter / entropy encoding.
  • the category (case described above), number, location, etc. of the relative block may be determined. In detail, it may be determined which category is selected, and the number and location of relative blocks supported in the selected category may be determined. In this case, the number of blocks supported in each category may be m, n, o, and these may be integers of 0 or more such as 0, 1, 2, 3, 5, and the like.
  • the relative block is the left, right, top, bottom, top, bottom, top, bottom, bottom, center, etc. centering on the target block (or the block corresponding to the target block in the image temporally different from the image to which the target block belongs).
  • the relative block may be determined in the block nearest to the direction.
  • a relative block may be determined among blocks that further satisfy the direction and a predetermined range / condition.
  • the block may be a block (for example, left, top, and top left directions) that belong to a maximum coding block that is different from the maximum coding block to which the target block belongs or have a difference based on horizontal and vertical lengths of the target block.
  • the relative block may be determined based on an encoding order, and the encoding order may be defined by various scan methods such as raster scan and z-scan.
  • a predetermined number of blocks may be included as a relative block (based on a close encoding order), and the predetermined number may be an integer of 0 or more such as 0, 1, 2, 3, and the like.
  • the relative block may be managed by a memory management scheme such as FIFO (First-in, First-out) according to the encoding order, and the relative block that may occur in (case 2) is determined (decision to include in the candidate group). It may be an example.
  • one relative block When one relative block is supported, it may mean that only information of the corresponding block can be used / referenced. In addition, even if a plurality of relative blocks is supported, one piece of information may be derived based on a plurality of relative blocks according to encoding settings. As an example, three motion vectors may be supported by specifying three relative blocks such as left, top, and right top blocks for inter-prediction in motion prediction, but the median value of the motion vectors of the three blocks may be supported according to the encoding setting. Alternatively, one motion vector may be derived and used as a motion vector prediction value of the target block.
  • the encoding setting may reduce generation of optimal candidate selection information generated by supporting two or more candidates, but it is not expected that one candidate having a high correlation with the encoding information of the target block is derived. It can be difficult. As such, a method of constructing a candidate group from a plurality of candidates may be more efficient. Of course, as the number of candidates included in the candidate group increases, the amount of information for expressing them may increase, so it is important to construct an effective candidate group.
  • the following shows a candidate group configuration and encoding / decoding process based on a block having a horizontal relationship with a target block.
  • a block referenced for encoding information of the target block is specified (1).
  • Candidate groups are constituted by encoding information of the identified blocks in a predetermined order (2).
  • One of the candidate groups is selected based on the encoding information of the target block (3).
  • An image encoding / decoding process is performed based on the selected candidate (4).
  • the relative block used for constructing the candidate group regarding the encoding information of the target block is specified.
  • the relative block may be a block having a horizontal relationship with the target block. It has already been described above that a relative block of various categories as described above may be included and the relative block may be specified in consideration of various information such as state information of the target block in addition to the encoding information of the target block.
  • the candidate group is formed according to a predetermined sequence of encoding information of the relative block specified through the above process.
  • the information obtained based on the encoding information of one relative block may be included in the candidate group, and the information obtained based on the encoding information of the plurality of relative blocks may be included in the candidate group.
  • a fixed order may be supported for the candidate group configuration order, or an adaptive order based on various coding elements (elements to be considered when specifying a relative block) may be supported.
  • one of the candidate groups is selected based on the encoding information of the target block, and in (4), an image encoding / decoding process may be performed.
  • the flowchart may be a process that is checked and performed in a block unit.
  • some orders (1, 2) may be a process that is checked and performed in the initial stage of encoding.
  • it is difficult to identify in advance which of the blocks having a horizontal relationship has a high correlation with the target block. A method of identifying in advance a correlation between the target block among blocks having a horizontal relationship will be described below.
  • (3) describes a case in which information of one of the candidate groups is selected, it may also be possible when two or more pieces of information are selected according to the type of encoding information, the encoding setting, and the like, which is a commonly applicable description of the present invention. Can be.
  • the target block and the relative block may be one of units such as an encoding / prediction / transformation / quantization / in-loop filter, and the target block and the relative block may be set in the same unit.
  • the target block when the target block is an encoding block, the relative block may also be an encoding block, and modifications that are set in different units according to encoding settings may also be possible.
  • FIG. 7 illustrates various arrangement examples of a relative block that is perpendicular to the target block.
  • FIG. 7 illustrates a case in which recursive tree-based partitioning (QT) is performed, and will be described based on X and A to C blocks.
  • a basic coding block CTU.C block
  • B (1), X (2), and A (3) blocks may be obtained.
  • a block placed vertically with the target block may be classified into an upper block (or an ancestor block) and a lower block (or a descendant block).
  • the upper block of the target block (X) may be a B, C block
  • the lower block may be an A block.
  • the target block and the relative block may be set as the upper block and the lower block, or may be set as the lower block and the upper block, respectively.
  • the relative block when the target block has a larger value based on the split depth k, the relative block may be a child (k + 1) or a grandson (k + 2) block, and has a smaller value. In this case, the relative block may be a negative (k-1) or a grandparent (k-2) block. That is, in addition to defining the vertical relationship between the existing blocks, the detailed relationship between the blocks can be confirmed through the division depth.
  • one tree method is supported as in the above example, so that comparison using common split depths can be performed.
  • the simple classification as in the above example is performed. The detailed relationship can be confirmed by considering the number of divisions and depths of each division.
  • a QT is performed once in a 4M x 4N block
  • a 2M x 2N block may be obtained at (QT) partition depth 1
  • a BT is performed twice
  • a 2M x 2N block may be obtained.
  • the (BT) division depth is as can be obtained at two.
  • the 4M x 4N block may be a negative (QT) or grandfather (BT) block on the basis of the 2M x 2N block, and in contrast, may be a child (QT) or grandson (BT) block, which is based on the result of the block division Relationships can be established.
  • the start unit of the division is the maximum coding unit (the highest ancestor block, the maximum size that the block can have.
  • the coding unit or the block There is a limitation that it is impossible to have a vertical relationship outside of the maximum coding unit, but it is possible to freely designate a block region having a vertical relationship according to the coding setting separately from the block division setting such as the maximum coding unit. Can be.
  • the present invention assume a case regarding a vertical relationship that does not deviate from the maximum coding unit.
  • the relationship between blocks will be described below based on the tree-based partitioning scheme, the same or similar application may be applied to the index-based partitioning scheme in advance.
  • encoding information / reference setting of a counterpart block having a vertical relationship may be used.
  • the target block is a lower block of the relative block.
  • the upper block is not an independent unit that performs encoding, prediction, transformation, etc., but may be a temporary unit configured by a plurality of lower blocks. That is, it is necessary to understand that it is a start unit or an intermediate unit of a block division process for obtaining an independent unit for encoding (that is, encoding / prediction / transformation block, etc. in which division is no longer performed).
  • a reference pixel of a relative block may be used to generate a prediction value of the target block.
  • a prediction value of the target block may be obtained by applying a method such as extrapolation, interpolation, averaging, or template matching to the reference pixel of the relative block.
  • a prediction value of the target block may be obtained by using a method such as template matching of the reference pixel of the relative block.
  • the reference pixel of the relative block is not a pixel located in the relative block, but refers to a pixel obtained assuming that the relative block is a unit for performing intra prediction / inter prediction.
  • the pixels of blocks eg, closest to the left, top, top, left, top, bottom, and left directions
  • the pixels of blocks that are horizontal to the relative block (upper block) are included in the intra prediction / inter prediction of the target block (lower block). It means to use.
  • the reference setting of the relative block may be used for setting the reference of the target block.
  • the MPM candidate group of the opponent block can be used as the MPM candidate group of the target block.
  • the motion prediction candidate group of the relative block may be used as the motion prediction candidate group of the target block. That is, even if the candidate group is configured based on the opponent block, it means that the candidate group of the opponent block can be used as it is without using the candidate group in the target block.
  • encoding may be performed using information having a low correlation with the target block.
  • relevant information is not obtained in a space that is completely separated from each other, there is a high possibility that there is a degree of correlation, and it is the same as integrating a process to be performed in each lower block unit into a common process in the upper block. Complexity can be reduced.
  • parallel processing of a lower block belonging to an upper block may be possible.
  • the relative block is one block having a vertical relationship with the target block
  • the upper block may be smaller than or equal to a predetermined first threshold size.
  • the first threshold size may mean the maximum size that the upper block may have.
  • the first threshold size may be represented by the width (W), height (H), W x H, W * H, etc., W and H may be an integer of 8, 16, 32, 64 or more.
  • the block having the first threshold size may be set based on the size of the maximum coding block, the maximum prediction block, the maximum transform block, and the like.
  • the lower block may be greater than or equal to a second predetermined threshold size.
  • the second threshold size may mean a minimum size that the lower block may have.
  • the second threshold size may be represented by the width (W), height (H), W x H, W * H, etc., W and H may be an integer of 4, 8, 16, 32 or more.
  • W and H may be an integer of 4, 8, 16, 32 or more.
  • the second threshold size may be set to be smaller than or equal to the first threshold size.
  • the block having the second threshold size may be set based on the size of the minimum coding block, the minimum prediction block, the minimum transform block, and the like.
  • the minimum size of the lower block may be determined based on the size of the upper block.
  • a predetermined division value (p) or a shift operation value (q. Right shift operation) is applied to at least one of the width and the height based on the width (W) and the height (H) of the upper block, so that the minimum of the lower block.
  • the size eg, W% p or H >> q, etc.
  • the division value may be an integer of 2, 4, 8, or more
  • the shift operation value q may be an integer of 1, 2, 3, or more.
  • the maximum size of the upper block may be determined based on the size of the lower block.
  • a predetermined multiplication value (r) or a shift operation value (s. Left shift operation) is applied to at least one of the width and the height based on the width (W) and the height (H) of the lower block, so that the maximum of the upper block is applied.
  • the size (eg, W * r or H ⁇ s, etc.) may be determined.
  • the multiplication value may be an integer of 2, 4, 8 or more
  • the shift operation value s may be an integer of 1, 2, 3 or more.
  • the minimum size of the lower block may be determined in consideration of the size of the upper block and the split configuration.
  • the division setting may be determined by the division type (tree type), the division depth (common depth, individual depth for each tree), and the like.
  • the size of a block in which m split is performed may be determined as the minimum size of the lower block, and n split is performed in case BT (or TT) is supported.
  • the size of the block may be determined as the minimum size of the lower block, and when QT and BT (or TT) are supported, the size of the block in which l division is performed may be determined as the minimum size of the lower block.
  • m to l can be an integer of 1, 2, 3 or more, where the split depth m of the tree being split (or split into larger numbers) into smaller blocks (due to one splitting operation) is not. It may be set to be smaller than or equal to the split depth n of the tree. In addition, the split depth l when the tree splits are mixed may be set to be greater than or equal to the split depth m of the tree split into smaller blocks and less than or equal to the split depth n of the tree that is not split. .
  • the maximum size of the upper block may be determined in consideration of the size and division setting of the lower block. In this description, it may be reversed from the above example, and detailed description thereof will be omitted.
  • the relative block used / referenced for encoding the target block may be determined in consideration of the following matters.
  • the relative block may be determined based on information to be used / referenced for encoding the target block.
  • the information to be used / referenced in the encoding of the target block may be pixel candidate information for prediction and reference candidate group information related to prediction / conversion / quantization / in-loop filter / entropy encoding.
  • the relative block may be determined based on state information of the target block, image information to which the target block belongs, and the like.
  • the state information of the target block may be defined based on the size, shape, width / length length ratio, picture / division unit (slice, tile, etc.) / Position in a unit such as a maximum coding block, and the like.
  • the image information to which the target block belongs may be defined based on an image type (I / P / B), a color component (Y / Cb / Cr), and the like.
  • the number, size, position, etc. of the relative blocks may be determined in consideration of all or some of the elements mentioned in the above example. In detail, it is possible to determine whether or not to use / reference information of a block having a vertical relationship to the encoding of the target block, and the position and size of the relative block may be determined (when used / referenced).
  • the position of the relative block may be represented by a predetermined coordinate (eg, upper left coordinate) in the block
  • the size of the relative block may be represented by a width (W) and a height (H). can do.
  • all lower blocks (target blocks) belonging to the relative block may use / reference encoding information of the corresponding block.
  • the range of the lower block is limited, if the information belongs to the relative block and is larger than the size of the lower block, encoding information of the relative block may be used / referenced.
  • selection information of the counter blocks may be additionally generated.
  • the following shows a candidate group configuration and encoding / decoding process based on a block having a vertical relationship with a target block.
  • a reference block for specifying the referenced block is determined (1).
  • a block referred to for encoding information of the target block is specified based on the determined reference block (2).
  • Candidate groups are constituted by encoding information of the identified blocks in a predetermined order (3). One of the candidate groups is selected based on the encoding information of the target block (4). An image encoding / decoding process is performed based on the selected candidate (5).
  • a block (reference block) serving as a reference for constructing a candidate group on encoding information of the target block is determined from the target block or the first relative block.
  • the first relative block may be a block (here, higher block) having a vertical relationship with the target block.
  • the second relative block used for constructing the candidate group on the encoding information of the target block is specified.
  • the second relative block may be a block having a horizontal relationship with the reference block.
  • the candidate group is configured in the predetermined order of the encoding information of the second relative block specified through the above process.
  • the description of blocks having a horizontal relationship may be derived through the above-described various embodiments as well as the candidate group construction and encoding / decoding processes based on the blocks having a horizontal relationship, and thus detailed descriptions thereof will be omitted.
  • one of the candidate groups may be selected based on the encoding information of the target block, and in (5), an image encoding / decoding process may be performed.
  • the process of forming the candidate group based on the upper block is performed only once, and the lower block may use / borrow it. That is, the flowchart may be a configuration that may occur in a block in which encoding / decoding is performed first. If the candidate group configuration based on the upper block is already completed and the reference block is determined to be the relative block in some order (2, 3), it may be added that the candidate group already configured may be simply used / borrowed.
  • the lower block is described as a configuration of simply using / borrowing it, but the present invention is not limited thereto.
  • some candidates may be fixed regardless of the lower block, and some candidates may be adaptive based on the lower block. That is, some candidates may be deleted / added / changed based on the lower block. In this case, the deletion / addition / change may be performed based on the position, size, etc. in the upper block of the lower block.
  • the target block and the relative block may be one of units such as an encoding / prediction / transformation / quantization / in-loop filter, etc.
  • the target block may be the same unit as the relative block or an upper unit.
  • the relative block when the target block is a coding block, the relative block may be a coding block, and when the target block is a coding block, the relative block may be a prediction block or a transform block.
  • FIG. 8 illustrates various arrangement examples of a relative block that is a vertical relationship with a target block and a horizontal relationship.
  • FIG. 8 illustrates a case in which recursive tree-based partitioning (quat tree) is performed, and will be described based on X, A to G, and p to t blocks.
  • a base coding block CTU
  • the split depth increases, resulting in q / r / t (1), p / D / E / F / s (2), A / B / C / G / X (3)
  • a block can be obtained.
  • the block may be divided into a vertical relationship and a horizontal block.
  • the relative block (upper block) having a vertical relationship of the target block X may be p and q blocks (except CTU), and the relative block having a horizontal relationship may be A to G blocks.
  • the block division is determined according to the characteristics of the image. In the flat part such as the background or the area where there is little time change, the block division can be minimized, and the part with the complex pattern or the area where the temporal change is abrupt. In block partitioning, much may be performed.
  • FIG. 9 illustrates an example of block partitioning obtained according to a tree type.
  • p to r represent block division examples of QT, BT, and TT. It is assumed that block division is performed when the encoding of the block itself is not efficient because the characteristics of some regions in the block are different.
  • QT (p) is divided into two in the horizontal and vertical directions, and at least one of the four subblocks has different characteristics. However, four subblocks are obtained and it is not known which specific subblock has different characteristics.
  • a to D blocks may all have different characteristics, only one of the A to D blocks may have different characteristics, and the rest may have the same characteristics, and the A and B blocks have the same characteristics, and the C and D blocks may have different characteristics. It may have the same characteristics, A and C blocks may have the same characteristics and B and D blocks may have the same characteristics.
  • a and B blocks, C and D blocks have the same characteristics, and BT is also supported, horizontal division can be performed among BT. However, if A and B blocks are divided into QTs such as p, A and B blocks, C and D blocks. It can be seen that are different characteristics. However, in this example, since only QT is supported, the correlation between the blocks cannot be accurately determined.
  • the correlation between the target block and the relative block may be high. It can be or low.
  • BT In the case of BT (q), it is divided into two in one of the horizontal and vertical directions, and it can be seen that the two sub blocks (E and F blocks) have different characteristics. It may be derived from the above definition under the assumption that if the characteristics between subblocks were the same or similar, they would not be divided. If only BT is supported and divided in an upper block having a division depth of 1 with respect to the target block, the correlation between the target block and the relative block may be low.
  • TT In the case of TT (r), it is divided into three in one of the horizontal and vertical directions, and it can be seen that at least one of the three subblocks has different characteristics. However, three subblocks are obtained and it is not known which specific subblock has different characteristics.
  • G to I blocks can all have different characteristics
  • G and H blocks can have the same characteristics
  • I blocks can have different characteristics
  • H and I blocks have the same characteristics
  • G blocks have different characteristics.
  • G and H blocks have the same characteristics, I blocks have different characteristics, and BT (asymmetry) is also supported, vertical division (3: 1) of BT can be performed, but if it is divided by TT such as r It can be seen that the G, H, and I blocks have different characteristics. However, in this example, since only TT is supported, the correlation between the blocks cannot be accurately determined. If only the TT is divided and supported in an upper block having a division depth of 1 with respect to the target block, the correlation between the target block and the relative block may be high or low.
  • the correlation between blocks may be high or low.
  • the division scheme eg, QT
  • the encoding information of the remaining subblocks other than one eg, D block.
  • the encoding information of the remaining subblocks A to C except for the D block is the same or similar, it may be divided into QT because the characteristics of the D block are different.
  • the description thereof will be referred to only the possibility, and the detailed description will be omitted.
  • the encoding information of the block having a vertical relationship referring to the candidate group configuration information of the upper block (the block including A and D) of the D block. You can also use / reference.
  • the correlation between sub-blocks when one tree split is supported in an upper block has been described. That is, when using / referenced the encoding information of a block having a horizontal relationship for encoding the target block, the encoding information of the relative block is more efficiently used / used by checking the division state (path) between the target block and the relative block. Reference may be made. For example, when configuring a candidate group, information of blocks determined to have low correlation may be excluded or low priority may be assigned. Alternatively, information of a block having a vertical relationship and reference setting can be used.
  • the case in which one tree division is supported may include a case in which only one tree scheme is supported for block division, and even if a plurality of tree divisions is supported, the maximum, minimum, and maximum depths of blocks according to each tree scheme are supported.
  • a tree in which splitting is not allowed at a previous splitting depth may also include a case in which only one tree splitting is supported by a block splitting setting which is not supported at a splitting depth later. That is, only QT is supported and can be partitioned using QT. QT / BT / TT is supported, but only BT is possible at this stage and can be partitioned using BT.
  • FIG. 10 is an exemplary diagram of division division obtained due to QT, BT, and TT.
  • the maximum coding block is 64 ⁇ 64 and the minimum coding block is 8 ⁇ 8.
  • the maximum value of the block with QT support is 64 x 64
  • the minimum value is 16 x
  • the maximum value of the block with BT support is 32 x 32
  • the minimum value is 4
  • one of the horizontal and vertical lengths of the block is the maximum division.
  • the depth is three.
  • the TT assumes a case in which a split configuration is determined together with BT (when bundled).
  • QT and BT are supported in the upper blocks A through M, and asymmetric BT (ABT) is additionally supported (QT, BT ⁇ or, SBT>, ABT) in the lower left blocks N through P.
  • ABT asymmetric BT
  • TT is additionally supported (QT, SBT, ABT, TT).
  • Blocks B to E may be sub-blocks that can be obtained through QT (division 1), and BT (division 1 vertical division + 2 horizontal divisions, or 1 horizontal division + 2 vertical divisions, 3 divisions) It may be a sub block that can be obtained through the).
  • blocks B through E may not be acquired through QT and may be sub-blocks divided through BT.
  • horizontal division is performed (B + C / D + E) of BT
  • vertical division is performed (B / C / D / E) in each region. Therefore, as described above, the B and C blocks and the D and E blocks obtained by BT in the same upper block (parent block, division depth 1 difference) may have low correlations, respectively.
  • the partitioning since the partitioning is not performed because the B and D blocks and the C and E blocks are bundled, the B and D blocks and the C and E blocks may have low correlations, respectively. If the correlation is high, only vertical division of BT is performed, and division may not be performed in each region.
  • the correlation between the subblocks acquired by BT is low, but it is limited to the subblocks belonging to the same upper block (parent block, split depth 1 difference), but in this example, the same upper block (grandparent block. 2 difference) to confirm the correlation between blocks.
  • the J to M blocks may be subblocks that can be obtained through QT, and may be subblocks that can be obtained through BT.
  • the tree method can be selected as the optimal partition type.
  • QT is performed.
  • the correlation between subblocks obtained through QT may be high or low.
  • the correlation between sub-blocks may be determined differently because a plurality of tree splits are supported.
  • J and K blocks, L and M blocks may have low correlations, and J and L blocks and K and M blocks may each have low correlations. If the correlation between blocks adjacent to the horizontal and vertical directions among the J to M blocks is high, the region having high correlation may not be divided even if QT is not performed and BT is performed.
  • the correlation between the sub-blocks obtained by QT may be high or low, but this is a case where a single tree method is supported, and in this example, when a plurality of tree methods are supported, It may be the case of checking correlation between blocks based on the number.
  • N to P blocks may be sub-blocks (2: 1: 1 ratio) obtained through BT (horizontal division 1 + horizontal division 1).
  • N and O blocks may be high or low correlation (if only symmetric BT ⁇ SBT> is supported).
  • the correlation may be low with the region in which the O and P blocks are bound.
  • N blocks may not be as low as the correlation between O and P blocks.
  • N blocks may have low correlation with O and P blocks.
  • the N block may have a high correlation with the O block and a low correlation with the P block, and vice versa.
  • asymmetric BT ⁇ ABT> may be supported. If the N and O blocks have high correlation, the regions of the N and O blocks may be bundled so that a horizontal division of the asymmetric BT in a 3: 1 ratio may be performed. However, since the BT (SBT) is performed twice, the correlation between N and O blocks may be low.
  • the Q to S blocks may be sub-blocks obtained through TT (first horizontal division).
  • the Q and S blocks may be high or low correlation (if only TT is supported). In this example, asymmetric BT may be supported. If the Q and R blocks have high correlation, the regions of the Q and R blocks may be bundled so that a 3: 1 ratio of asymmetric BT horizontal division may be performed. However, since TT is performed, the Q and R blocks may have low correlation.
  • the correlation with the relative block in a horizontal relationship with the target block may be estimated based on the partitioning scheme and the partition setting supported. Let's look at the various cases of the correlation between blocks through the following.
  • 11 is an exemplary diagram for checking correlation between blocks based on a partitioning scheme and a partitioning configuration.
  • (a) to (c) may be a case where QT, BT and TT are performed, respectively, and may be a case where only QT, BT and TT can be supported in an upper block, respectively.
  • QT and TT the correlation between adjacent blocks A and B or A and C in the horizontal or vertical direction may be high or low. This is called a general relationship.
  • BT correlation between adjacent blocks A and B in a horizontal or vertical direction may be low. This is called a special relationship.
  • (d) is a case where QT is performed and may be a case where QT and BT can be supported.
  • the correlation between adjacent blocks A and B or A and C in the horizontal or vertical direction may be a low special relationship. If the correlation is high, BT may have been applied instead of QT.
  • (e) is a case where BT is performed (1 vertical division + 1 horizontal division) and may be a case where QT and BT are supported.
  • a and B since they are divided by BT in the same upper block, they may have a special relationship with low correlation.
  • division may be performed by being tied together, but may be the case where the partition is divided into C due to encoding cost.
  • a and C may be general relationships with high or low correlations, as may be the case.
  • (f) is a case where BT is performed (1 vertical division + 1 vertical division) and may be a case where BT and TT are supported.
  • a and C since they are divided by BT in the same upper block, they may be a special relationship with low correlation.
  • a and B when A and B are tied together and splitting is performed (the part corresponding to 2 of the 1: 2: 1 areas of the TT), there is an additional splitting of the left area due to the TT. In this case, since it is difficult to determine the exact correlation, A and B may have a general relationship with high or low correlation.
  • TT is performed (one vertical division) and may be a case where BT (or SBT), ABT, and TT are supported.
  • the correlation between adjacent blocks A and B or A and C in the horizontal or vertical direction may be a low special relationship. If correlation is high, ABT may have been applied instead of TT.
  • (h) is a case where QT and BT are performed (BT is divided into 2 vertical divisions), and may be a case where QT and BT can support ⁇ 1> and TT can support ⁇ 2>.
  • a and B in the case of ⁇ 1>, since there is no case in which A and B are bundled and divided, there may be a general relationship having high or low correlation.
  • ⁇ 2> there is a case where A and B can be divided and divided (after BT horizontal division, BT vertical division on the upper side, and TT vertical division on the lower side), but it is nevertheless divided using QT and BT. This may be a special relationship with low correlation.
  • This example may be a case of confirming the number of cases related to block division that can be obtained from the same upper block (two differences in this example) having a division depth of one or more differences for checking a relationship between blocks.
  • the target block belongs to the same space as the target block and may be adjacent to the adjacent block.
  • the target block and the relative block may be adjacent blocks in a horizontal or vertical direction.
  • Correlation between blocks can be identified and estimated based on various information. For example, the correlation between blocks may be checked based on state information (block size, shape, location, etc.) of the target block and the counter block.
  • state information block size, shape, location, etc.
  • the predetermined length (horizontal length or vertical length) of the relative block adjacent to the boundary (horizontal or vertical) in contact with the target block is greater than or equal to the predetermined length of the target block. If they are the same, the correlation between blocks may be much higher or somewhat lower, which is called general relation A. If the predetermined length of the relative block is smaller than the predetermined length of the target block, the correlation between blocks may be somewhat higher or much lower, which is referred to as general relationship B. At this time, the horizontal length of each block in the case of touching the horizontal boundary (the upper block) and the vertical length of each block in the case of touching the vertical boundary (the left block) can be compared.
  • the correlation with the neighboring block adjacent to the long border of the horizontal / vertical length is a general relationship A
  • Correlation with adjacent relative blocks may be a general relationship B.
  • the above description may be some examples of identifying correlations between blocks based on state information of blocks, and various modifications may be possible. It may be possible to determine correlations between blocks based on various information as well as state information of blocks.
  • the following describes a process for confirming correlation with a relative block having a horizontal relationship with a target block.
  • ⁇ 1> Various setting information about block division in an image may be checked. Supported range information such as the maximum block size and the minimum block size of a unit such as encoding / prediction / transformation (assuming that the target block is a coding unit in this example) is identified. For example, it may be confirmed that the maximum coding block is 128 x 128 and the minimum coding block is 8 x 8.
  • the maximum size of a block that supports QT may be 128 x 128, the minimum size may be 16 x 16, and the maximum size of a block that supports BT and TT is 128 x 128, 64 x 64, and the minimum size is common.
  • 4 x 4 and the maximum partition depth may be 4.
  • QT may be supported in a lower block (sub-block) when divided into QTs, and QT may not be supported in the lower block if the QT is split in another manner without being split into QTs.
  • a condition in which some splits are prohibited may be checked in order to avoid overlapping results according to split schemes. For example, after TT is performed, vertical division of BT may be prohibited in the middle region. That is, in order to prevent overlapping partitioning results that may occur in accordance with each partitioning method, setting information forbidding partitioning that is prohibited in advance is checked.
  • All or part of ⁇ 1> to ⁇ 4> and other additional setting information may be checked to identify block candidates that may be acquired in an image. This may be referenced to identify a block candidate that can be obtained according to a target block and a relative block described later.
  • Status information such as the size, shape, and position of the target block and the counter block can be checked.
  • it is checked whether the position of the block is located at the boundary of the unit of the picture, slice, tile group, tile, brick, block, or the like.
  • a block may be set as a maximum coding block.
  • the maximum coding block may be an upper block (the highest ancestor block) of the target block, but is a unit that is collectively divided in a picture unit that is not obtained according to a characteristic of an image. . Therefore, if the target block belongs to the largest coded block and the other maximum coded block, the correlation between the blocks cannot be confirmed, so it is necessary to check whether it belongs to the boundary.
  • a process of checking correlation may be performed only when the boundary is not a boundary. That is, the correlation can be confirmed only when the boundary is not.
  • the size, shape, and position of the target block and the relative block may be used to identify the division state of each block or the division path where each block is obtained. Detailed description thereof will be described later.
  • the division state of the target block and the counter block can be checked.
  • the split state may mean a split path in which each block is obtained.
  • a process of identifying an upper block of each block may be performed by checking the partition state, where the upper block may mean a block having a vertical relationship with each block.
  • a process of identifying an upper block acquired based on state information such as the size, shape, and location of each block and the split path is performed.
  • the target block has position (top left) (32, 32), width and height 8 x 8, split depth p, split path (QT / 1-BT / h / 0-BT / v / 1 State information such as.
  • Relative blocks have status information such as position (24, 32), width and height 8 x 8, split depth q, and split path (QT / 1-BT / h / 0-BT / v / 0).
  • the division path may be expressed by a division method / division direction (h is horizontal and v is vertical. If not present) / division position (0 to 3 for QT, 0 to 1 for BT, etc.).
  • the upper block (parent block, split depth 1 difference) of the target block is (24, 32), the width and height are 16 x 8, the split depth is p-1, and the split path is (QT / 1-BT / h / Status information such as 0) may be obtained.
  • the upper block (partition depth q-1) of the relative block may be the same as the upper block of the target block.
  • the target block acquires status information such as position (128, 64), width and height 16 x 32, split depth p, and split path (QT / 3-QT / 2-BT / v / 1). Can be.
  • Relative blocks have positions (120, 64), width and height 8 x 32, split depth q, split paths (QT / 3-QT / 2-BT / v / 0-BT / v / 1) Information can be obtained.
  • the upper block (parent block, split depth 1 difference) of the target block is (112, 64), the width and height are 32 x 32, the split depth is p-1, and the split path is (QT / 3-QT / 2) Status information such as can be obtained.
  • the upper block (parent block, split depth 1 difference) of the relative block is (112, 64)
  • the width and height are 16 x 32
  • the split depth is q-1
  • the split path is (QT / 3-QT / 2-BT status information such as / v / 0)
  • State information such as the parent block of the relative block (grandparent block, split depth 2 difference) is (112, 64)
  • width and height is 32 x 32
  • split path is (QT / 3-QT / 2) May be obtained, which may be understood to be the same upper block as the upper block (parent block) of the target block.
  • a process of identifying an upper block of each block may be performed based on the partition state, and a process of identifying a common upper block may be performed.
  • an upper block having a division depth difference of 1 or more may be identified based on the target block and the relative block.
  • the target block and the upper block having the split depth difference c and the upper block with the relative block and the split depth difference d may be identical to each other.
  • c and d may be an integer of 1, 2 or more, and c and d may be the same or not the same.
  • a predetermined first threshold value (maximum value) for c and d may exist, and the first threshold value may be an integer of 1, 2, or more.
  • the second threshold may be an integer of 2, 3 or more. In other words, the correlation between blocks is not checked when the threshold condition is exceeded.
  • the correlation may be determined according to the partitioning scheme. If it is QT or TT, it can be set as a general relationship (which may be high or low correlation), and in case of BT, it can be set as a special relationship.
  • the target block and the relative block are divided and bound. If it exists, set it as a special relationship; if it doesn't exist, set it as a normal relationship.
  • the above example is some cases for checking correlation between blocks, and various modifications and additions may be possible without being limited thereto.
  • the correlation between the blocks identified through the above process may be used to refer to the encoding of the target block.
  • the process of identifying the correlation may be performed in various orders other than the order listed above.
  • the correlation is not limited to the above-mentioned one, and the correlation may be determined through a combination of some configuration or additional configuration.
  • a correlation detecting process of another configuration may be performed, and the information of the relative block may be used / referenced for encoding the target block based on the correlation between the blocks identified through the above process.
  • the correlation obtained through the above process may not be absolute facts about the characteristics of the blocks, or may be prediction information that estimates the correlations between blocks in consideration of block division. Therefore, since it may be information referred to a candidate group configuration for encoding information of the target block, the relative block determined to have low correlation can be excluded from the inclusion of the candidate group, and the candidate group structure is considered in consideration of the possibility that the identified correlation is not accurate. It may be possible to set a priority for the subordinate priorities or to borrow candidate group information of upper blocks having a vertical relationship. In the above example, it is assumed that the correlation between blocks is classified into two types, but two, three, or more classification categories may be supported.
  • Whether or not the correlation between blocks is used / referenced for encoding (candidate group configuration, etc.) of the target block may be explicitly determined in units of sequence, picture, slice, tile group, tile, brick, block, or encoding setting. Can be implicitly based on Next, an example of various information constituting the encoding setting will be described.
  • correlation reference between blocks may be determined according to information to be used / referenced for encoding a target block.
  • the inter-block correlation may be considered to form the intra prediction mode candidate group, and the inter-block correlation may not be considered for the candidate group configuration to predict the motion vector representing the non-movement motion model during the inter prediction. have.
  • correlation reference between blocks may be determined based on state information of the target block, image information to which the target block belongs, and the like.
  • the state information of the target block may be defined based on the size, shape, width / length length ratio, picture / division unit (slice, tile, etc.) / Position in a unit such as a maximum coding block, and the like.
  • the image information to which the target block belongs may be defined based on an image type (I / P / B), a color component (Y / Cb / Cr), and the like.
  • the correlation between blocks may be referred to only when the size of the block falls within a predetermined range, and the correlation between the blocks cannot be referred to when the size is out of the predetermined range.
  • the predetermined range may be defined by the first threshold size (minimum value) and the second threshold size (maximum value), and each threshold size is W, H, W x H in width W and height H.
  • W * H, W and H may be an integer of 1 or more, such as 4, 8, 16.
  • correlation reference between blocks may be determined according to the category of the relative block (which can be derived from the position related description of the relative block having a horizontal relationship).
  • the relative block belongs to the same space as the target block and may be an adjacent block. If it is a relative block that is not adjacent to the same block as the target block, the correlation may not be referred to.
  • Coding settings may be defined in consideration of all or some of the elements mentioned in the above example, thereby implicitly determining whether to refer to correlation between blocks.
  • the following shows a candidate group configuration and encoding / decoding process based on a block having a horizontal relationship with a target block.
  • the correlation between the target block and the block in which the referability exists is checked (1).
  • a block referenced for encoding information of the target block is specified based on correlation (2).
  • Candidate groups are constituted by specifying the encoded information in a predetermined order (3).
  • One of the candidate groups is selected based on the encoding information of the target block (4).
  • An image encoding / decoding process is performed based on the selected candidate (5).
  • the correlation between the target block and the block in which there is a possibility of being considered as a relative block is confirmed.
  • a block used for constructing a candidate group on encoding information of the target block is specified based on the correlation identified through (1). That is, it may mean determining whether to include a relative block based on the identified correlation result.
  • the description of the specification of the relative block having the above-described horizontal relationship may be considered together in this example.
  • the candidate group is configured in the predetermined order of the encoding information of the relative block specified through the above process.
  • the predetermined order may be supported by the adaptive order considering the relative block included or not included through (2).
  • one of the candidate groups is selected based on the encoding information of the target block, and in (5), an image encoding / decoding process may be performed.
  • the flowchart may be a case in which a block determined to have low correlation based on a correlation is not included as a relative block.
  • the following shows another example of a candidate group configuration and encoding / decoding process based on a block having a horizontal relationship with a target block.
  • a block referenced for encoding information of the target block is specified (1).
  • the correlation between the target block and the specified block is checked (2).
  • a predetermined order is determined and a candidate group is formed accordingly (3).
  • One of the candidate groups is selected based on the encoding information of the target block (4).
  • An image encoding / decoding process is performed based on the selected candidate (5).
  • the relative block used for constructing the candidate group regarding the encoding information of the target block is specified.
  • the correlation between the target block and the relative block is checked.
  • the candidate group inclusion order may be determined based on the correlation identified through (2).
  • the correlation is high or low, you can follow a predefined order; if the correlation is high, you can follow the order of placing the opponent block on top; if the correlation is low, place the opponent block in the lower order You can follow the order.
  • the candidate group may be configured according to the order.
  • one of the candidate groups is selected based on the encoding information of the target block, and in (5), an image encoding / decoding process may be performed.
  • the flowchart may be a case of adaptively setting a candidate group inclusion order based on correlation.
  • the following shows an example of a candidate group configuration and encoding / decoding process based on a block having a horizontal or vertical relationship with a target block.
  • the reference block for specifying the block to be referred to starts with being set as the target block.
  • a block referenced for encoding information of the target block is specified based on correlation (2A).
  • Candidate groups are constituted by specifying the encoded information in a predetermined order (3A).
  • the reference block for specifying the referenced block is changed to a predetermined higher block (2B). Based on the changed reference block, a block to be referred for encoding information of the target block is specified (3B). The encoding group of the identified block is constituted in a predetermined order (4B).
  • One of the candidate groups is selected based on the encoding information of the target block (5).
  • An image encoding / decoding process is performed based on the selected candidate group (6).
  • the flowchart may be configured to be determined by one of the order P of 1-2A-3A-5-6 or the order Q of 1-2B-3B-4-5-6 according to the correlation determination result.
  • the other block except for the corresponding block is specified as a relative block
  • the reference block of the candidate group configuration Is changed to a higher block than the target block to identify a block having a horizontal relationship with the upper block as the counter block.
  • the order of Q may be a combination of a candidate group configuration based on a vertically related block.
  • the candidate group may be changed by changing a block unit based on the candidate group configuration. It may be an example of configuring. In the following explanations, redundant explanations will be omitted, and focus on the differences.
  • the block serving as the candidate group reference is changed to the first relative block.
  • the first relative block may be a block (here, higher block) having a vertical relationship with the target block.
  • a second relative block used for constructing a candidate group with respect to encoding information of the target block is specified.
  • the second relative block may be a block having a horizontal relationship with the reference block, and the reference block is an upper block.
  • candidate groups are formed in a predetermined order from the encoding information of the second relative block specified through the above process.
  • the intra prediction may be configured as follows.
  • the intra prediction of the prediction unit may include a reference pixel construction step, a prediction block generation step, a prediction mode determination step, and a prediction mode encoding step.
  • the image encoding apparatus may be configured to include a reference pixel constructing unit, a predictive block generating unit, and a prediction mode encoding unit for implementing a reference pixel constructing step, a predictive block generating step, a prediction mode determining step, and a prediction mode encoding step.
  • the intra prediction may be configured as follows.
  • the intra prediction of the prediction unit may include a prediction mode decoding step, a reference pixel construction step, and a prediction block generation step.
  • the image decoding apparatus may be configured to include a prediction mode decoding unit, a reference pixel construction unit, and a prediction block generation unit that implement the prediction mode decoding step, the reference pixel construction step, and the prediction block generation step.
  • the prediction mode decoder is performed by using the inverse method used by the prediction mode encoder. Can be.
  • the intra prediction may be performed by setting a coding block as a prediction block, or may be performed by splitting a coding block into one or more prediction blocks.
  • the coding block refers to a unit obtained through a separate partitioning process based on a tree or an index, and means a separate process from the splitting into prediction blocks.
  • the intra-picture prediction performed by splitting into one or more prediction blocks and performing the intra-picture prediction is called an intra-picture prediction in units of sub-blocks.
  • information indicating whether to split may be generated. For example, when the information is 1, partitioning is performed, and when the information is 0, partitioning is not performed.
  • information indicating the division direction such as horizontal or vertical may occur. For example, if the information is 0, it means horizontal division, and if it is 1, it means vertical division, and the opposite configuration may be possible. Alternatively, it may be determined according to state information such as the size, shape, and position of the target block.
  • the threshold size may be an integer of 2 or more, such as 2, 4, 8, 16, 32.
  • Information about the number of split blocks may additionally occur, and may be an integer of 2, 4, 8, or more. Alternatively, it may be implicitly determined according to the encoding setting.
  • the encoding setting may be defined according to one or more factors in the size, shape, position of the target block, state information such as intra prediction mode, image type (I / P / B), color component (Y / Cb / Cr), and the like. Can be.
  • the number of divisions may be four, otherwise it may be two.
  • the predetermined threshold size may be represented by W, H, W x H, and W * H by the width W and height H, and W and H may be integers of 4, 8, 16, or more. .
  • the following description focuses on the case of performing intra prediction on a coding block basis.
  • FIG. 12 is an exemplary diagram illustrating an intra prediction mode supported by an image encoding / decoding apparatus.
  • 67 prediction modes are composed of prediction mode candidate groups for intra prediction, of which 65 are directional modes (Nos. 2 to 66) and two are non-directional modes (DC, Planar). to be.
  • the directional mode may be divided into tilt (eg, dy / dx) or angle information (Degree). All or part of the prediction mode described in the above example may be included in the prediction mode candidate group of the luminance component or the chrominance component, and other additional modes may be included in the prediction mode candidate group.
  • a reconstruction block of another color space in which encoding / decoding is completed may be used for prediction of a target block by using correlation between color spaces, and may include a prediction mode supporting the target block.
  • a prediction mode supporting the target block For example, in the case of a chrominance component, a predicted block of the target block may be generated by using a reconstructed block of the luminance component corresponding to the target block. That is, the prediction block may be generated based on the reconstructed block in consideration of the correlation between color spaces, and may be included as an intra prediction mode for the color difference component.
  • the prediction mode candidate group may have the same candidate group as the prediction mode candidate group of the luminance component or additional prediction modes (color copy mode and color mode) regarding the chrominance component and some modes of the prediction mode candidate group of the luminance component.
  • the color copy mode may be a prediction mode related to a method for obtaining data for generating a prediction block from an area located in another color space, and the color mode may include a method of obtaining a prediction mode from an area located in another color space; May be an associated prediction mode.
  • the prediction mode candidate group may be adaptively determined according to the negative / decoding setting.
  • the number of candidate groups can be increased for the purpose of increasing the accuracy of prediction, and the number of candidate groups can be reduced for the purpose of reducing the amount of bits according to the prediction mode.
  • a candidate group (67. 65 directional modes and 2 non-directional modes), B candidate group (35. 33 directional modes and 2 non-directional modes), C candidate group (18. 17 directional modes) And one non-directional mode) may be selected, and the candidate group may be adaptively selected or determined according to the size and shape of the block.
  • the configuration of the prediction mode candidate group may vary according to the sub / decoding settings.
  • the prediction mode candidate group is equally configured between modes, or in FIG. 12, the number of modes between modes 18 and 34 is greater than the number of modes between modes 2 and 18. can do.
  • the candidate group may be adaptively configured according to the shape of the block (that is, square, rectangular_long, or rectangular_long). For example, if the width of the target block is greater than the height, the intra prediction modes belonging to the 2nd to the 15th are not used, and may be replaced with the intra prediction modes belonging to the 67th to 80th. On the other hand, if the width of the target block is smaller than the height, the intra prediction mode belonging to Nos. 53 to 66 may not be used, and may be replaced with the intra prediction mode belonging to the items -14 to -1.
  • an intra prediction is performed with one preset prediction mode candidate group (A candidate group) having an equal mode interval, but the main elements of the present invention are as described above. It may be changed and applied to the adaptive intra picture prediction setting.
  • the prediction mode supported when the shape of a block is square or rectangular may be a prediction mode different from the above example.
  • the prediction modes of the different prediction mode candidate groups or the same number of prediction mode candidate groups but the same block length are longer, and the prediction modes may be dispersed on the opposite side, or vice versa.
  • the prediction mode is described under the prediction mode setting (equal interval between the directional modes) supported regardless of the shape of the block as shown in FIG. 12, other cases may also be applied.
  • the index allocated to the prediction mode may be assigned to the index in a specific direction based on the preset prediction mode. For example, an index may be allocated in a clockwise direction from some diagonal modes (mode 2) as shown in FIG. 12.
  • the non-directional prediction mode may be assigned index information in preference to the directional mode, or may be allocated between the directional modes or at the end, which may be determined according to the encoding / decoding setting.
  • the present invention is not limited to the above example, and an index may be assigned under other settings, or various modification examples may be possible.
  • the prediction mode candidate group may be adaptively set, but a block (reference block) that is a reference for configuring the prediction mode candidate group may be a coding block or a prediction block (or a transform block).
  • a block (reference block) that is a reference for configuring the prediction mode candidate group may be a coding block or a prediction block (or a transform block).
  • the coding block is determined through the block dividing unit, it may be set as a prediction block, and when the coding block is determined, it may be divided into two or more prediction blocks.
  • a prediction mode candidate group by setting a coding block or a prediction block as a reference block.
  • the reference block of the prediction mode candidate group setting may be supported in addition to the above-mentioned units.
  • a block (upper block) placed in a vertical relationship with the reference block may be the target.
  • a coding block is a target block and an upper block having a vertical relationship with the coding block is a relative block.
  • the prediction block may be assumed to be a target block
  • the coding block may be assumed to be a relative block.
  • the reference block may be determined, and a prediction mode candidate group may be configured based on state information such as the size, shape, and position of the determined reference block.
  • the method of configuring the prediction mode candidate group based on one of the plurality of reference block candidates may be explicitly determined in units of a sequence, a picture, a slice, a tile group, a tile, a brick, a block, and the like.
  • support may be determined implicitly according to the encoding setting.
  • the encoding setting may include one or more elements such as state information such as size, shape, and position of a block (target block), image type (I / P / B), color component, whether intra prediction on a sub-block basis is applied, and the like. Can be defined by
  • the method (setting the upper block as a reference block) may be supported when the size of the target block is greater than or equal to a predetermined first threshold size.
  • the method may be supported when the size of the target block is less than or equal to the predetermined second threshold size.
  • the threshold size may be expressed as W, H, W x H, and W * H through the width (W) and height (H), and is a predetermined value in the encoding / decoding apparatus, where W and H are 4, It may be an integer of 1 or more, such as 8 and 16.
  • W * H can be an integer of 16, 32, 64 or more.
  • the first threshold size is less than or equal to the second threshold size.
  • the relative block may be defined in various ways.
  • the relative block (upper block) may be a block having a division depth of at least one less than the division depth of the coding block.
  • the block may be a block having a predetermined width C and a height D at predetermined upper left coordinates.
  • C and D may be an integer of 8, 16, 32 or more, and may be greater than or equal to the width and height of the target block.
  • C and D may be determined based on information about a block size (for example, the size of the largest transform block, the size of the largest coding block, etc.).
  • the prediction mode candidate group may be configured based on a predefined reference block (one of a coding block and a prediction block).
  • FIG. 13 is an exemplary diagram for describing a configuration of a reference pixel used for intra prediction according to an embodiment of the present invention.
  • the reference block for configuring the reference pixel is M ⁇ N.
  • the reference pixel configuration unit may configure a reference pixel used for intra prediction.
  • the reference pixel may be managed through a temporary memory (for example, an array ⁇ Array>. Primary, secondary array, etc.), may be generated and removed for each intra prediction process, and the size of the temporary memory may be referred to as a reference pixel. It can be determined according to the configuration of.
  • left, top, top left, top right, and bottom left blocks are used for intra prediction based on the reference block.
  • present invention is not limited thereto, and block candidate groups having other configurations may be used for intra prediction.
  • the candidate group of neighboring blocks for the reference pixel may be an example when following a raster or Z scan, and some of the candidate groups may be removed according to the scanning order, or other block candidate groups (eg, right , Lower, lower right block, etc. may be configured).
  • reference pixels used for intra prediction may be configured of adjacent pixels (Ref_L, Ref_T, Ref_TL, Ref_TR, and Ref_BL in FIG. 13) of the left, top, left top, right top, and bottom left blocks.
  • the reference pixel is generally composed of pixels of a neighboring block closest to the reference block (a in FIG. 13 is represented by a reference pixel line), but other pixels (b in FIG. 13 and other outer lines of pixels) May also be configured in the reference pixel.
  • Pixels adjacent to the reference block may be classified into at least one reference pixel line, and pixels closest to the reference block are ref_0 ⁇ for example, pixels having a distance between the pixel and the boundary pixel of the reference block.
  • p (-1, -1) to p (2m-1, -1), p (-1,0) to p (-1,2n-1) ⁇ and then adjacent pixels ⁇ e.g., The distance between the boundary pixel and the pixel is 2.
  • p (-2, -1) to p (-2,2n) ⁇ is ref_1, and then the adjacent pixel.
  • the distance between the boundary pixel and the pixel of the reference block is 3.p (-3, -3) to p (2m + 1, -3), p (-3, -2) to p (-3, 2n + 1) ⁇ may be divided into ref_2 and the like. That is, they may be classified as reference pixel lines according to pixel distances adjacent to boundary pixels of the reference block.
  • the number of supported reference pixel lines may be N or more, and N may be an integer of 1, 2, 3, 4, or more.
  • the reference pixel line candidate group is sequentially included in the reference pixel line nearest to the reference block, but is not limited thereto.
  • the candidate group may be sequentially configured as ⁇ ref_0, ref_1, ref_2>, or ⁇ ref_0, ref_1, ref_3>, ⁇ ref_0, ref_2, ref_3>, ⁇ ref_1, ref_2, ref_3 It may also be possible for the candidate group to be configured in such a manner as to exclude non-sequential or closest reference pixel lines such as >
  • Prediction may be performed using all reference pixel lines in the candidate group, or prediction may be performed using some reference pixel lines (one or more).
  • one of a plurality of reference pixel lines may be selected according to a negative / decoding setting to perform intra prediction using the reference pixel lines.
  • two or more of the plurality of reference pixel lines may be selected to perform intra prediction by using the reference pixel lines (for example, applying a weighted average to data of each reference pixel line).
  • the reference pixel line selection may be determined implicitly or explicitly.
  • it means that it is determined according to an encoding / decoding setting defined by one or a combination of two or more elements such as an image type, a color component, and a size / shape / position of a block.
  • the explicit case means that reference pixel line selection information may occur in a unit such as a block.
  • the width and height of the reference block are W and H, respectively, and the selected reference pixel line is refidx (where 0 is the closest pixel line), the following reference pixel (reference pixel range) can be obtained.
  • the reference pixel may be a position at which relative coordinates are calculated based on a predetermined coordinate of the reference block (the upper left side is set to ⁇ 0, 0>), and the position in the image of the reference pixel is the upper left coordinate of the reference block (a and b) can be confirmed by adding them to the x and y components, respectively.
  • a block (reference block) that is a reference for configuring a reference pixel may be a coding block or a prediction block (or a transform block).
  • a block (upper block) having a vertical relationship with the block may be used as a reference block to form a reference pixel.
  • a coding block is a target block and an upper block having a vertical relationship with the coding block is a relative block.
  • the prediction block may be assumed to be a target block
  • the coding block may be assumed to be a relative block.
  • the reference block may be determined, and a reference pixel (reference pixel candidate group) may be configured based on state information such as the size, shape, and position of the determined reference block.
  • a method of configuring a reference pixel based on one of the plurality of reference block candidates may be explicitly determined in units of a sequence, a picture, a slice, a tile group, a tile, a brick, a block, and the like.
  • support may be determined implicitly according to the encoding setting.
  • the encoding setting may include one or more elements such as state information such as size, shape, and position of a block (target block), image type (I / P / B), color component, whether intra prediction on a sub-block basis is applied, and the like.
  • state information such as size, shape, and position of a block (target block), image type (I / P / B), color component, whether intra prediction on a sub-block basis is applied, and the like.
  • the method may be supported when the size of the target block is greater than or equal to a predetermined first threshold size.
  • the method may be supported when the size of the target block is less than or equal to the predetermined second threshold size.
  • the threshold size may be expressed as W, H, W x H, and W * H through the width (W) and height (H), and is a predetermined value in the encoding / decoding apparatus, where W and H are 4, It may be an integer of 1 or more, such as 8 and 16.
  • W * H can be an integer of 16, 32, 64 or more.
  • the first threshold size is less than or equal to the second threshold size.
  • the method may be supported when intra prediction on a sub-block basis is applied and split into two or more blocks.
  • the prediction block (sub block) is the target block and the coding block is the relative block
  • the reference block may be determined as the target block or may be determined as the relative block.
  • the reference block may be set as a prediction block. Or vice versa.
  • the relative block may be defined in various ways.
  • the relative block (upper block) may be a block having a division depth of at least one less than the division depth of the coding block.
  • the block may be a block having a predetermined width C and a height D at predetermined upper left coordinates.
  • C and D may be an integer of 4, 8, 16 or more, and may be greater than or equal to the width and height of the target block.
  • C and D may be determined based on information about a block size (for example, the size of the largest transform block, the size of the largest coding block, etc.).
  • the reference pixel may be configured based on a predefined reference block (either one of a coding block and a prediction block).
  • FIG. 14 is a diagram illustrating a reference pixel configuration obtainable according to a reference block.
  • the reference pixel when (a) the reference pixel is configured adjacent to a block (hatched area) in which intra prediction is performed, (b) and (c) indicate some boundaries among blocks in which intra prediction is performed. In the case where the reference pixel is configured to be adjacent to and not adjacent to some boundary, (d) shows a case where the reference pixel is configured not to be adjacent to a block on which intra prediction is performed. This may be various cases that may occur according to the setting of the reference block.
  • FIG. 15 is a conceptual diagram illustrating a block adjacent to a target block of intra prediction.
  • the left side of FIG. 15 represents a block adjacent to the target block of the current color space
  • the right side represents a corresponding block of another color space.
  • prediction mode color copy mode
  • this may also be considered as a reference pixel since some areas of other color spaces may be used for intra prediction.
  • the target block may be understood to be set as a reference block in some examples described later.
  • the reference pixel component of the intra prediction according to the present invention may include a reference pixel generator, a reference pixel interpolator, a reference pixel filter, and the like, and may include all or part of the above configuration.
  • the reference pixel configuration unit may check the availability of the reference pixel to classify the available reference pixel and the unavailable reference pixel.
  • the availability of the reference pixel is determined to be unavailable when at least one of the following conditions is satisfied.
  • the same division unit as the reference block (units that cannot be referred to each other, for example, slices, tiles, etc.), but units such as slices or tiles have characteristics that can be referred to each other. If it does not belong to the exception processing, even if not in the same partition unit, it can be determined that it is unavailable if any one of the cases where encoding / decoding is not completed is satisfied. That is, when none of the above conditions are satisfied, it can be determined that it can be used.
  • the use of the reference pixel can be restricted by the negative / decoding settings.
  • the use of the reference pixel may be limited according to whether limited intra prediction (eg, constrained_intra_pred_flag) is performed.
  • the limited intra prediction may be performed when an attempt is made to prohibit the use of a block reconstructed by referencing from another image as a reference pixel when attempting to perform error robust encoding / decoding to an external factor such as a communication environment.
  • all reference pixel candidate blocks may be available.
  • a reference pixel candidate block is a condition for determining whether to use it according to encoding modes (Mode_Intra, Mode_InterD, and Mode_InterC).
  • encoding modes Mode_Intra, Mode_InterD, and Mode_InterC.
  • the above conditions may be determined according to various other encoding / decoding elements.
  • the reference pixel is composed of one or more blocks
  • the reference pixel may be classified into three cases, such as ⁇ usable for all>, ⁇ some for some use>, and ⁇ not for all use>. In all cases except when all are available, the reference pixels at the candidate block positions that are not available may be filled or generated.
  • the pixel at the corresponding position may be included in the reference pixel memory of the target block.
  • the pixel data may be copied as it is or included in the reference pixel memory through processes such as reference pixel filtering and reference pixel interpolation.
  • the pixel obtained through the reference pixel generation process may be included in the reference pixel memory of the target block.
  • the following shows an example of generating a reference pixel at an unusable block position using various methods.
  • the reference pixel may be generated using any pixel value.
  • the arbitrary pixel value means one pixel value (for example, the minimum value of the pixel value range) belonging to the pixel value range (for example, the pixel value range based on the bit depth or the pixel value range according to the pixel distribution in the corresponding image). Maximum value, median value, etc.). In detail, this may be an example applied when all of the reference pixel candidate blocks are unavailable.
  • the reference pixel may be generated from an area in which encoding / decoding of the image is completed.
  • the reference pixel may be generated from at least one usable block adjacent to the unusable block. In this case, at least one of extrapolation, interpolation, and copying may be used.
  • reference pixel filtering or reference pixel interpolation may be performed. For example, only reference pixel filtering may be performed, only reference pixel interpolation may be performed, and reference pixel filtering and reference pixel interpolation may be performed. Reference pixel filtering may precede or follow reference pixel interpolation, or may be performed in combination.
  • Reference pixel filtering may be a process performed for the purpose of reducing deterioration remaining in the reference pixel.
  • the reference pixel filtering may be one of a plurality of filters that can be divided into length and coefficient settings of various filter taps such as [1,2,1] / 4, [2,3,6,3,2] / 16, and the like.
  • a plurality of filtering may be performed by different types of filters.
  • the encoding setting includes status information (block size, shape, position, etc.), image type (I / P / B), and color of a reference block (target block or relative block ⁇ upper block>, where the target block is assumed). It may be defined based on components (Y / Cb / Cr), reference pixel line selection information, whether intra prediction on a sub-block basis is applied, intra prediction mode, and the like.
  • filtering may be performed when the size of the reference block is greater than / greater than a predetermined first threshold size, otherwise filtering may not be performed.
  • the threshold size may be expressed as W, H, W x H, W * H, etc. in width W and height H, and W and H may be integers of 4, 8, 16, 32, or more. .
  • W * H when expressed as the product of the width and height, such as W * H may be an integer of 16, 32, 64 or more.
  • the first threshold size is less than or equal to the second threshold size.
  • filtering may be performed, otherwise filtering may not be performed.
  • filtering may be performed when the shape of the reference block is rectangular and is long (or vertically long), or the filtering may not be performed.
  • the width / length ratio of the reference block is greater than or greater than a predetermined threshold, filtering may be performed. Otherwise, filtering may not be performed.
  • the threshold ratio may be set to 1: 2, 1: 3, 1: 4, 2: 3, and the like.
  • it may be preferable that the shape of the block is set in combination with the prediction mode.
  • filtering may be performed regardless of the color component, or filtering may be performed only if the reference block belongs to a predetermined color component (luminance or color difference).
  • the non-directional mode may include both DC and planar modes or only one of them. That is, the filtering may be performed in the planar mode, the filtering may not be performed in the DC mode, or vice versa.
  • filtering may be performed in a predetermined mode among the directional modes, and filtering may not be performed in a mode that is not.
  • the filtering may be performed in the diagonal mode (the directional mode other than the horizontal and vertical) of the directional mode, otherwise the filtering may not be performed.
  • the diagonal mode may include both a mode of referring to pixels of an integer unit and a mode of referring to pixels of an integer unit and a decimal unit, or only one of the two modes. That is, filtering may be performed in a mode that refers only to pixels of integer units, and filtering may not be performed to a mode that refers to pixels of integer units and fractional units or vice versa.
  • the mode of referring only to pixels in integer units corresponds to -14, -12, -10, -6, 2, 34, 66, 72, 78, and 80 of FIG. It may include at least one of the modes. That is, it may be a mode that does not perform reference pixel interpolation, and the prediction mode number may also change according to the configuration change of the prediction mode candidate group.
  • an exceptional situation in which filtering is performed in the horizontal or vertical mode may be applied.
  • Whether or not to perform filtering may be determined by considering (combining) all or some of the elements mentioned in the above example.
  • the above examples are some examples only, and various modifications may be possible.
  • the filter selection information may be determined explicitly or implicitly, which may be based on an encoding setting.
  • the encoding setting may be defined by the above-described various elements, and a description thereof may be derived through the above example, and thus a detailed description thereof will be omitted.
  • the reference pixel interpolation may not be performed in the prediction mode in which only integer units of pixels are referenced, and the reference pixel interpolation may be performed in the prediction mode in which the pixels in decimal units are referenced.
  • the pixel position at which interpolation is performed (ie, which fractional units are interpolated) depending on the prediction mode (e.g. directionality of the prediction mode, dy / dx, etc.) and the position of the reference pixel and the prediction pixel. And the like) can be determined.
  • one filter for example, the equation used to determine the filter coefficient or the length of the filter tap is assumed to be the same filter regardless of the precision of the decimal unit, except that the precision of the decimal unit is ⁇ 1/2, 7/32, 19/32> can be applied, or a filter in which the equations used to determine the length of the filter coefficients or filter taps can be applied. Hypothesis) can be selected and applied according to the decimal unit.
  • an integer pixel may be used as an input for interpolation of fractional pixels, and in the latter case, an input pixel may be changed in stages (for example, an integer pixel in a 1/2 unit). In the case of the / 4 unit, an integer and a 1/2 unit pixel, etc.) may be used, but the present invention is not limited thereto.
  • the reference pixel interpolation For the reference pixel interpolation, fixed or adaptive filtering may be performed, which may be determined according to an encoding setting.
  • the encoding setting may be defined based on state information of the reference block, image type, color component, reference pixel line selection information, whether intra prediction in units of sub blocks is applied, intra prediction mode, and the like.
  • Fixed filtering may perform reference pixel interpolation using one filter
  • adaptive filtering may perform reference pixel interpolation using one of a plurality of filters.
  • one of the plurality of filters may be implicitly determined or explicitly determined according to the encoding / decoding setting.
  • one or more types of filters may be selected and configured from 4-tap DCT-IF filter, 4-tap cubic filter, 4-tap Gaussian filter, 6-tap winner filter, 8-tap Kalman filter, and the like. It may also be possible for the filter candidates supported accordingly to be defined differently (e.g., some types of filters are the same or different, and short or long filter tabs, etc.).
  • the reference pixel interpolation filter setting may be determined by considering the reference pixel filtering setting. For reference, one example may be that the reference pixel filtering is not performed in the prediction mode in which the reference pixel interpolation is performed.
  • the reference block may be determined as one of a coding block, a prediction block, or an upper block, and a description thereof may be derived through the above-described example.
  • a reference pixel configuration in the case of performing intra prediction on a sub-block basis will be described.
  • Some of the above-described settings such as the plurality of reference pixel lines and reference pixel filtering may be configured or set in units of coding blocks.
  • Intra-prediction may be performed by selecting one line among the plurality of reference pixel lines, and deterioration of the reference pixel may be reduced by performing reference pixel filtering.
  • the target block and the adjacent block have a high correlation
  • performing prediction using two or more reference pixel lines than the one of the plurality of reference pixel lines reduces the quantization error and the like. Accuracy can be increased.
  • the reference pixel filtering may be performed even in a predetermined prediction mode, which may be effective in reducing deterioration of the reference pixel.
  • the intra prediction in units of sub-blocks may be a case where the correlation between the target block (prediction block) and the adjacent block is high.
  • prediction block since there is a characteristic in which the edge of the upper block (coding block) is shared in one direction (prediction mode), it is known in advance that all adjacent prediction blocks are in the same prediction direction.
  • reference pixel configuration and setting may be possible.
  • one of a plurality of reference pixel lines can be selected centering on a target block (encoding block), and reference pixel filtering and reference pixel interpolation can be followed by encoding settings defined by various encoding elements.
  • one predefined reference pixel line (closest line) is supported for the target block (prediction block), and reference pixel filtering, reference pixel interpolation has a fixed setting (eg, no filtering or one Using only interpolation filters, etc.).
  • a plurality of reference pixel lines predefined for the target block are supported (implicit).
  • the first prediction block (adjacent to the upper or left boundary of the encoding block) in the coding block performs intra prediction using one reference pixel line.
  • the second prediction block may be set as a plurality of reference pixel lines as the first prediction block in which the coding block is adjacent to the reference pixel line, and the intra prediction may be performed.
  • the third and subsequent prediction blocks may perform intra-picture prediction by setting a plurality of reference pixel lines as previous prediction blocks (first and second target blocks in this example) where encoding is completed.
  • the reference pixel filtering may be performed by considering not only a reference pixel line placed in one reference pixel line of the prediction block but also a reference pixel placed in another reference pixel line.
  • the reference pixel filtering may be applied to the reference pixels placed in the vertical direction on the plurality of reference pixel lines.
  • Reference pixel interpolation may also be performed by applying an adaptive setting.
  • the above example is a case of setting for intra prediction on a sub-block basis, and various modifications may be possible without being limited thereto. That is, the reference pixel configuration setting may be supported in consideration of a case in which the setting for intra prediction on a sub-block basis has a characteristic different from the general intra prediction (the intra prediction direction is shared).
  • the prediction block generator may generate a prediction block according to at least one prediction mode, and use a reference pixel based on the prediction mode.
  • the reference pixel may be used in a method such as extrapolation (directional mode) according to a prediction mode, and may be used in a method such as interpolation or average (DC) or copy (non-directional mode). have.
  • the prediction mode determiner performs a process for selecting an optimal mode among a plurality of prediction mode candidate groups.
  • block distortion eg, Distortion of target and reconstructed blocks.
  • a mode that is optimal in terms of coding cost may be determined using a sum-of-absolute difference (SAD), a sum of square difference (SSD), etc., and a rate-distortion technique that takes into account the amount of bits generated according to a corresponding mode.
  • the prediction block generated based on the prediction mode determined through the above process may be transmitted to the subtractor and the adder.
  • all prediction modes present in the prediction mode candidate group may be searched, or the optimal prediction mode may be selected through other decision processes for the purpose of reducing the amount of computation / complexity.
  • the first stage selects some modes that perform well in terms of image quality deterioration for all intra prediction prediction candidates, and the second stage considers not only the image quality degradation but also the amount of bits generated for the mode selected in the first stage.
  • the optimal prediction mode can be selected.
  • various methods of reducing the amount of computation / complexity may be applied.
  • the prediction mode determiner may generally be included only in the encoder, but may also be included in the decoder according to a sub / decoding setting. For example, when a template matching is included as a prediction method or a method of deriving an in-picture prediction mode in an adjacent region of the target block. In the latter case, it can be understood that the method of implicitly obtaining the prediction mode in the decoder is used.
  • the process is performed in units of target blocks, not reference blocks. That is, although the prediction mode candidate group configuration and the reference pixel configuration may not be set based on the target block, the prediction block acquisition and determination process may be a unit in which the target block is a reference.
  • the prediction mode encoder may encode the prediction mode selected by the prediction mode determiner.
  • index information corresponding to the prediction mode may be encoded, or the information about the prediction mode may be predicted.
  • the former may be a method applied to the luminance component and the latter may be a method applied to the color difference component, but is not limited thereto.
  • priority may be assigned to a predetermined prediction mode among the prediction mode candidate groups and set as a prediction value of the prediction mode.
  • priority may be assigned to a prediction mode that frequently occurs.
  • the priority may include at least one of vertical, horizontal, and predetermined diagonal modes, and in the case of the non-directional mode, at least one of the planar or DC modes. can do.
  • the predetermined diagonal mode is a prediction mode having predetermined slope information. For example, at least one of modes 2, 34, and 66 of FIG. 12 having an angle of 45 degrees or -45 degrees based on a horizontal or vertical mode. Other additional diagonal modes may be assigned priority.
  • a prediction value of the priority assignment mode may be set as at least one prediction mode among the prediction modes to which the priority is assigned.
  • the prediction mode selected as the prediction value of the priority allocation mode may be prioritized according to a predetermined order.
  • the prediction mode may be allocated in the order of Planar, DC, vertical, and horizontal modes.
  • planar mode may be set as a predicted value, and if two are supported, the planar and DC modes may be set as predicted values.
  • the priority allocation mode may be determined according to one or more elements in state information, image type, color component, etc. of the reference block (assuming a target block in this example).
  • the candidate group may be configured by using a predetermined prediction mode selection method among the prediction mode candidate groups and set as the prediction value of the prediction mode.
  • the method of selecting a predetermined prediction mode may include acquiring a prediction mode of an adjacent block of the reference block, acquiring a preset prediction mode, acquiring based on a prediction mode already included in the candidate group, and the like.
  • the prediction mode included in the candidate group is referred to as Most Probable Mode (MPM).
  • MPM may be configured in one prediction mode or in a plurality of prediction modes.
  • the number of MPMs (k. K is an integer of 1 or more, such as 1, 2, 3, 6, etc.) according to the number of prediction mode candidates. Can be determined.
  • the MPM is composed of a plurality of prediction modes, it may be referred to as an MPM candidate group.
  • MPM candidates may be supported under fixed settings or adaptive settings may be supported depending on various encoding / decoding factors.
  • the candidate group configuration may be determined according to which reference pixel layer is used among the plurality of reference pixel layers, and the candidate group configuration may be determined according to whether intra prediction is performed on a sub-block basis. have.
  • the fixed setting may mean that a predetermined candidate group composition rule is followed regardless of the information.
  • the MPM candidate group is configured under one setting, and it should be understood that the candidate group configuration regarding other MPM candidate groups as well as other intra prediction modes may be adaptive.
  • MPM is a concept supported for efficiently encoding a prediction mode
  • a candidate group may be configured as a prediction mode that is likely to occur in the prediction mode of a target block.
  • the MPM candidate group includes a preset prediction mode (or statistically frequently occurring prediction mode, including at least one of DC, Plaanr, vertical, horizontal, and some diagonal modes), adjacent blocks (left, top, top left, top right, At least one position in the lower left block, etc., for example, the left and the upper block) may be configured as a prediction mode.
  • the prediction modes of the adjacent blocks are obtained in L0 to L3 (left block), T0 to T3 (upper block), TL (upper left block), R0 to R3 (upper right block), and B0 to B3 (lower left block) in FIG. 15. can do.
  • Predefined priority when MPM candidates can be constructed from two or more subblock positions (e.g., L0, L2, etc.) in adjacent blocks (e.g., left block). Etc.), the prediction mode of the block may be configured in the candidate group.
  • the prediction mode of the subblock corresponding to the predefined position e.g, L0
  • a prediction mode of positions L3, T3, TL, R0, and B0 among adjacent blocks may be selected as a prediction mode of the adjacent block and included in the MPM candidate group.
  • the above description is in some cases configuring the prediction mode of the adjacent block in the candidate group, but is not limited thereto. In the example described below, it is assumed that a candidate mode is configured with a prediction mode of a predefined position.
  • a mode derived from one or more included prediction modes may be further configured as the MPM candidate group.
  • mode k directional mode
  • a mode that can be derived from the mode a mode having an interval of + a and -b on the basis of k. A and 1 are 1, 2, 3, etc.). Above integer may be further included in the MPM candidate group.
  • the MPM candidate group may be configured in the order of the prediction mode of the adjacent block, the preset prediction mode, the derived prediction mode, and the like.
  • the process of configuring the MPM candidate group may be completed by filling the maximum number of MPM candidates according to the priority. If the prediction mode coincides with the previously included prediction mode, the prediction mode may include a redundancy check process in which an order is passed to a candidate of the next priority without configuring the candidate group.
  • a prediction mode may be derived by selectively using either the priority assignment mode or the MPM candidate.
  • a flag regarding the selection information may occur, and the corresponding flag may indicate whether the prediction mode of the target block is set to the priority allocation mode.
  • the flag is 1, the prediction mode of the target block is set to the priority allocation mode. Otherwise, whether the prediction mode of the target block is derived from the MPM candidate, MPM index information, and the like may occur.
  • non-MPM index information may be generated among the prediction allocation mode except the priority allocation mode and the MPM candidate to derive the prediction mode of the target block. have.
  • the following description focuses on the description of the MPM candidate configuration (MPM candidate / non-MPM candidate), and assumes that the priority allocation mode is a part of candidates of the MPM candidate group configuration. However, when the priority assignment mode is explicitly supported, it is necessary to understand that the priority assignment mode is removed in the following embodiment.
  • candidate groups may be configured in the order of L-T-TL-TR-BL-Planar-DC-Vertical-Horizontal-Diagonal mode. It may be the case that a prediction mode of an adjacent block is preferentially configured in a candidate group and additional configuration of a preset prediction mode is performed.
  • candidate groups may be configured in the order of L-T-Planar-DC- ⁇ L + 1>- ⁇ L-1>- ⁇ T + 1>- ⁇ T-1>-Vertical-Horizontal-Diagonal mode. .
  • a prediction mode of some adjacent blocks and a part of a preset prediction mode are configured first, and a mode and a part of a preset prediction mode derived based on the assumption that a prediction mode in a direction similar to that of an adjacent block will occur will be configured. It may be the case.
  • the MPM candidate group may be binarized such as unary binarization or truncated rice binarization based on the index in the candidate group. That is, mode bits can be represented by allocating short bits to candidates having a small index and assigning long bits to candidates having a large index.
  • Modes not included in the MPM candidate group may be classified as non-MPM candidate groups.
  • the non-MPM candidate group may be classified into two or more candidate groups according to the encoding / decoding setting.
  • binarization such as fixed length binarization and truncated unary binarization may be used based on indexes in the non-MPM candidate group.
  • the non-MPM candidate group is classified into non-MPM_A (ideal A candidate group) and non-MPM_B (ideal B candidate group). It is assumed that the candidate group A (p. Number of MPM candidate groups or more) constitutes the candidate group in a prediction mode that is more likely to occur in the prediction mode of the target block than the candidate group B (q. Number of A candidate groups or more). At this time, the A candidate group configuration process may be added.
  • some prediction modes having even intervals (eg, 2nd, 4th, 6th, etc.) among the directional modes may be configured in the candidate A group or included in the preset prediction mode (eg, the MPM candidate group). Mode derived from the predicted mode).
  • the prediction mode remaining through the MPM candidate group configuration and the A candidate group configuration may be configured as a B candidate group, and an additional candidate group configuration process is not required.
  • Binarization such as fixed length binarization and truncated unary binarization, may be used based on indices in candidate A and candidate B groups.
  • non-MPM candidate group is composed of two or more, but is not limited thereto, and various modification examples may be possible.
  • the following is a process for the case of predicting and encoding a prediction mode.
  • mpm_flag On whether the prediction mode of the target block matches the MPM (or some modes in the MPM candidate group) may be checked.
  • the MPM index information (mpm_idx) may be additionally checked according to the configuration of the MPM (one or two or more). After that, the encoding process of the target block is completed.
  • non-MPM index information (remaining_idx) can be confirmed. After that, the encoding process of the target block is completed.
  • non-MPM candidate group includes a plurality (two in this example)
  • information (non_mpm_flag) about whether the prediction mode of the target block matches some prediction mode in the A candidate group may be checked.
  • the A candidate group index information (non_mpm_A_idx) may be checked. If the A candidate group does not match, the B candidate group index information (remaining_idx) may be checked. After that, the encoding process of the target block is completed.
  • the same prediction number index may be used for the prediction mode supported in the reference block, the prediction mode supported in the adjacent block, and the preset prediction mode.
  • the prediction mode supported by the reference block, the prediction mode supported by the adjacent block, and the preset prediction mode may use the same prediction number index or different prediction number indexes. Reference is made to FIG. 12 for the following description.
  • a prediction mode candidate group unification (or adjustment) process for configuring an MPM candidate group or the like may be performed.
  • the prediction mode of the target block may be one of prediction mode candidate groups of modes -5 to 61
  • the prediction mode of an adjacent block may be one of prediction mode candidate groups of modes 2 to 66.
  • a process of unifying it in the prediction mode encoding process may be performed. That is, the process may not be required when the fixed intra prediction mode candidate group configuration is supported, or the process may be required when the adaptive intra screen prediction mode candidate group configuration is supported, and a detailed description thereof will be omitted. .
  • encoding may be performed by assigning an index to a prediction mode belonging to a prediction mode candidate group.
  • the method of encoding the index corresponds to that.
  • the prediction mode candidate group is fixed and a fixed index is assigned to the prediction mode.
  • the fixed index allocation method may not be suitable.
  • an index may be allocated to a prediction mode according to an adaptive priority, and a method of encoding a corresponding index may be applied when a prediction mode of a target block is selected. Because of the adaptive configuration of the prediction mode candidate group, it is possible to efficiently encode the prediction mode by changing the indices assigned to the prediction modes. That is, the adaptive priority may be to assign a candidate having a high probability of being selected as the prediction mode of the target block to an index in which the short mode bit occurs.
  • the following presupposes that eight prediction modes including a prediction mode (directional mode and non-directional mode), a color copy mode, and a color mode preset in the prediction mode candidate group are supported (color difference component).
  • the preset prediction modes such as the directional mode, the non-directional mode, and the color copy mode may be easily classified into prediction modes in which the prediction methods are divided.
  • the color mode may be a directional mode or a non-directional mode, and there may be a possibility of overlapping with the preset prediction mode.
  • the color mode is a vertical mode
  • a case in which the color mode overlaps with the vertical mode which is one of the preset prediction modes may occur.
  • the number of candidate groups may be adjusted (8-> 7).
  • an index may be allocated by adding and considering other candidates when the overlapping case occurs, which will be described below on the assumption of this setting.
  • the adaptive prediction mode candidate group may be a supported configuration even when a variable mode such as a color mode is included. Therefore, when adaptive index allocation is performed, it can be regarded as an example of adaptive prediction mode candidate group configuration.
  • the following describes a case where adaptive index allocation is performed according to the color mode.
  • the basic index is assumed to be allocated in the order of Planar (0)-vertical (1)-horizontal (2)-DC (3)-CP1 (4)-CP2 (5)-CP3 (6)-C (7).
  • index allocation is performed in the above order.
  • the prediction mode corresponding to the index 7 of the color mode is filled.
  • the index (one of 0 to 3) of the matching prediction mode is filled with a preset prediction mode (Diagoanl down left).
  • Planar (0)-Vertical (1)-Diagoanal down left (2)-DC (3)-CP1 (4)-CP2 (5)-CP3 (6)-Horizontal Index allocation as shown in 7 may be performed.
  • the prediction mode corresponding to the index 0 is filled.
  • the preset prediction mode (Diagoanal down left) is filled in the index 7 of the color mode.
  • the existing index configuration may be adjusted.
  • the color mode is DC mode
  • DC (0)-Planar (1)-Vertical (2)-Horizontal (3)-CP1 (4)-CP2 (5)-CP3 (6)-Diagonal down left Index allocation as shown in 7 may be performed.
  • binarization such as fixed length binarization, unary binarization, truncated unary binarization, truncated Rice binarization, or the like may be used based on the index within the candidate group.
  • a method of dividing into a prediction mode, a prediction method, and the like into a plurality of prediction mode candidate groups, and assigning and encoding an index to a prediction mode belonging to the candidate group corresponds thereto.
  • candidate group selection information encoding may precede the index encoding.
  • the directional mode, the non-directional mode, and the color mode which are prediction modes for performing prediction in the same color space, may belong to one candidate group (or more S candidate groups), and the color copy, which is a prediction mode for performing prediction in another color space.
  • the mode may belong to one candidate group (or more than D candidate group).
  • the following presupposes that nine prediction modes including a prediction mode, a color copying mode, and a color mode that are preset in the prediction mode candidate group are supported (color difference component).
  • the S candidate group may have five candidates configured with a preset prediction mode and a color mode
  • the D candidate group may have four candidates configured with the color copy mode.
  • the S candidate group is an example of an adaptive mode candidate group that is adaptively configured, and an example of adaptive index allocation has been described above, and thus a detailed description thereof will be omitted.
  • the D candidate group is an example of a fixed prediction mode candidate group, a fixed index allocation method may be used. For example, an index allocation such as CP1 (0)-CP2 (1)-CP3 (2)-CP4 (3) may be performed.
  • Binarization such as fixed length binarization, unary binarization, truncated unary binarization, truncated Rice binarization, or the like, may be used based on the index within the candidate group.
  • various modifications may be possible without being limited to the above examples.
  • Candidate group configuration such as MPM for prediction mode encoding may be performed in units of blocks.
  • the process of constructing the candidate group may be omitted, and a predetermined candidate group may be used or a candidate group obtained by various methods may be used. This may be a configuration that can be supported for the purpose of reducing complexity.
  • one predefined candidate group may be used, or one of a plurality of predefined candidate groups may be used according to a sub / decoding setup.
  • a predefined candidate group such as ⁇ Planar-DC-vertical-horizontal-Diagonal down left ⁇ 66 of FIG. 12-Diagonal down right ⁇ 34 of FIG. 12> ⁇ may be used.
  • a candidate group of encoded blocks may be used.
  • a block in which encoding is completed may be selected based on an encoding order (a predetermined scan method, for example, z-scan, vertical scan, horizontal scan, etc.) or the left, top, left top, right top, bottom left of the reference block. It can be selected from adjacent blocks, such as.
  • adjacent blocks may be divided into reference units and subdivided units that can be referred to each other (for example, if each block has a slice or a tile to which the reference is different, for example, in the same tile group but different tiles). If you belong to an unreferenced split unit (for example, if the slice or tile to which each block belongs is different but has non-referenced attributes to each other, for example, if it belongs to a different tile group), Blocks can be excluded from candidates.
  • an unreferenced split unit for example, if the slice or tile to which each block belongs is different but has non-referenced attributes to each other, for example, if it
  • the adjacent block may be determined according to the state of the reference block. For example, when the reference block has a square shape, a candidate group of available blocks among blocks located according to a predetermined first priority may be borrowed (or shared). Alternatively, when the reference block has a rectangular shape, a candidate group of available blocks among blocks located according to the second priority may be borrowed. In this case, the second or third priority may be supported according to the width / length length ratio of the block.
  • the priority for selecting candidate blocks to be borrowed may be various configurations such as left-top-top-right-bottom-left-top, top-left-top-left-top-left. In this case, the first to third priorities may all have the same configuration, all have different configurations, or some components may have the same configuration.
  • the candidate group of the reference block may perform the borrowing in the adjacent block only when it exceeds or exceeds a predetermined threshold value.
  • the borrowing may be performed in an adjacent block only when the value is less than or less than a predetermined threshold.
  • the boundary value may be defined as a minimum size or a maximum size of a block that allows candidate group borrowing.
  • the boundary value may be expressed as a horizontal length (W), a vertical length (H), W x H, W * H, and the like of the block, and W and H may be integers of 4, 8, 16, 32, or more. .
  • a common candidate group may be configured in an upper block composed of a bundle of predetermined blocks, and lower blocks belonging to the upper block may use the candidate group.
  • the number of lower blocks may be an integer of 1 or more, such as 1, 2, 3, and 4.
  • the upper block may be an ancestor block (including a parent block) of the lower block or may be a block composed of any bundle.
  • the ancestor block may refer to a block before division of a previous step (a difference in division depth is 1 or more) of the division process for acquiring a lower block.
  • parent blocks of subblocks 0 and 1 of 4N ⁇ 2N may indicate 4N ⁇ 4N of a of FIG. 4.
  • the candidate group of the upper block may be borrowed (or shared) in the lower block only when the predetermined first threshold value is greater than or exceeded.
  • the borrowing in the lower block may be performed only when the value is less than / less than the second predetermined boundary value.
  • the boundary value may be defined as a minimum size or a maximum size of a block in which candidate group borrowing is allowed. Only one of the boundary values may be supported, or both may be supported, and the boundary value may be represented by the horizontal length (W), vertical length (H), W x H, W * H, and the like of the block, where W and H are It can be an integer of 8, 16, 32, 64 or more.
  • the candidate group of the lower block may borrow from the upper block only when the predetermined third threshold value or more / over.
  • the borrowing may be performed in an upper block only when the value is less than / less than a fourth threshold.
  • the boundary value may be defined as a minimum size or a maximum size of a block that allows candidate group borrowing. Only one of the boundary values may be supported, or both may be supported, and the boundary value may be represented by the horizontal length (W), vertical length (H), W x H, W * H, and the like of the block, where W and H are It can be an integer of 4, 8, 16, 32 or more.
  • the first boundary value (or the second boundary value) may be greater than or equal to the third boundary value (or the fourth boundary value).
  • candidate group borrowing may be selectively used based on any of the above-described embodiments, and candidate group borrowing may be selectively used based on at least two combinations of the embodiments 1-3. Further, the detailed configuration of each embodiment may also be selectively used based on any one, and may be selectively used according to a combination of one or more detailed configurations.
  • information about whether the candidate group is borrowed may be explicitly processed.
  • coding elements such as an image type and a color component may serve as input variables in the candidate group borrowing setting. The borrowing of candidate groups may be performed based on the information and the decoding / decoding settings.
  • the prediction related information generated by the prediction mode encoder may be transmitted to the encoder and may be included in the bitstream.
  • the reference block may be determined as one of a target block (encoding block, prediction block), and a relative block (upper block), and a description thereof may be derived through the above-described example.
  • the prediction mode of the block is not included in the candidate group when the candidate group is formed based on the correlation between the blocks.
  • a setting for changing the candidate group configuration rank to a subordinate order may be applied.
  • the methods according to the invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium.
  • Computer-readable media may include, alone or in combination with the program instructions, data files, data structures, and the like.
  • the program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention, or may be known and available to those skilled in computer software.
  • Examples of computer readable media may include hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter, as well as machine code such as produced by a compiler.
  • the hardware device described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.
  • the above-described method or apparatus may be implemented by combining all or part of the configuration or function, or may be implemented separately.
  • the present invention can be used to encode / decode an image.

Abstract

본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 대상 블록의 화면내 예측 모드 후보군을 구성하고, 상기 대상 블록의 화면내 예측 모드을 위한 참조 화소를 결정하며, 상기 참조 화소에 필터링 또는 보간 중 적어도 하나를 수행하며, 상기 화면내 예측 모드 후보군 및 상기 참조 화소에 기반하여, 상기 대상 블록의 화면내 예측을 수행할 수 있다.

Description

영상 부호화/복호화 방법 및 장치
본 발명은 영상 부호화 및 복호화 기술에 관한 것으로, 더욱 상세하게는, 화면내 예측에서의 부호화/복호화 방법 및 장치에 관한 것이다.
인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터에 대한 이용이 급증하고 있다. 따라서, 각종 시스템에서 영상 예측을 통해 다양한 서비스나 작업을 수행하기 위하여 영상 처리 시스템의 성능 및 효율 개선에 대한 필요성이 상당히 증가하고 있으나, 이러한 분위기에 호응할 수 있는 연구 개발 결과가 미흡한 실정이다.
이와 같이, 종래 기술의 영상 부호화 복호화 방법 및 장치에서는 영상 처리 특히 영상 부호화 또는 영상 복호화에 대한 성능 개선이 요구되고 있는 실정이다.
본 발명은 화면내 예측 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 화면내 예측을 위한 참조 화소를 구성하는 방법 및 장치를 제공한다.
또한, 본 발명은 참조 화소 필터링 및 보간을 수행하는 방법 및 장치를 제공하는 것을 목표로 한다.
또한, 본 발명은 화면내 예측 모드 후보군을 구성하는 방법 및 장치를 제공한다.
또한, 본 발명은 서브 블록 단위의 화면내 예측 방법 및 장치를 제공한다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 대상 블록의 화면내 예측 모드 후보군을 구성하고, 상기 대상 블록의 화면내 예측 모드을 위한 참조 화소를 결정하며, 상기 참조 화소에 필터링 또는 보간 중 적어도 하나를 수행하고, 상기 화면내 예측 모드 후보군 및 상기 참조 화소에 기반하여, 상기 대상 블록의 화면내 예측을 수행할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 필터링은, 상기 대상 블록의 크기, 형태, 위치, 컬러 성분, 참조 화소 라인, 서브 블록 단위의 화면내 예측이 적용되는지 여부 또는 화면내 예측 모드 중 적어도 하나에 기초하여 선택적으로 수행될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 화면내 예측 모드가 대각선 모드인 경우에는 상기 필터링이 수행되고, 그렇지 않은 경우에는 상기 필터링이 수행되는 않을 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대각선 모드는, 정수 단위의 화소만 참조하는 제1 모드 또는 소수 단위의 화소를 참조하는 제2 모드 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 화면내 예측 모드가 정수 단위의 화소만을 참조하는 제1 모드인 경우, 상기 참조 화소에 대한 보간은 수행되지 않고, 상기 대상 블록의 화면내 예측 모드가 소수 단위의 화소를 참조하는 제2 모드인 경우, 상기 참조 화소에 대한 보간은 수행될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 참조 화소는, 상기 대상 블록에 이웃한 복수의 참조 화소 라인 중 적어도 하나에 위치할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 화면내 예측 모드 후보군은, 적어도 하나의 우선권 할당 모드 또는 소정의 MPM(most probable mode)를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 우선권 할당 모드는, Planar 모드, DC 모드, 수직 모드 또는 수평 모드 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 화면내 예측은, 상기 대상 블록을 구성하는 서브 블록의 단위로 수행될 수 있다.
상기와 같은 본 발명에 따른 화면내 예측 방법을 사용하는 경우 효율적으로 화면내 예측 모드 후보군을 구성하여 대상 블록의 예측 모드를 표현하는 비트의 절감을 유도할 수 있어 부호화 성능을 향상시킬 수 있다.
본 발명에 따르면, 필터링 또는 보간된 참조 화소의 구성을 통해 부호화 성능을 향상시킬 수 있다.
본 발명에 따르면, 서브 블록 단위의 화면내 예측을 통해 부호화 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 블록 구성도이다.
도 4는 본 발명의 블록 분할부에서 획득할 수 있는 다양한 분할 형태를 나타낸 예시도이다.
도 5는 한 집안의 구성원과 그 혈연관계에 있는 인물들의 유전적 특성을 설명하기 위한 가계도의 일 예를 나타낸다.
도 6은 대상 블록과 수평적인 관계인 상대 블록의 다양한 배치 예를 나타낸다.
도 7은 대상 블록과 수직적인 관계인 상대 블록의 다양한 배치 예를 나타낸다.
도 8은 대상 블록과 수직적인 관계와 수평적인 관계인 상대 블록의 다양한 배치 예를 나타낸다.
도 9는 트리 종류에 따라 획득되는 블록 분할에 관한 예시도이다.
도 10은 QT, BT, TT로 인해 획득되는 분할 분할에 관한 예시도이다.
도 11은 분할 방식, 분할 설정에 기반하여 블록 간의 상관성 확인을 위한 예시 그림이다.
도 12는 영상 부호화/복호화 장치에 지원되는 화면내 예측 모드를 나타낸 예시도이다.
도 13은 본 발명의 일 실시예에 따른 화면내 예측에 사용되는 참조 화소 구성을 설명하기 위한 예시도이다.
도 14는 기준 블록에 따라 획득 가능한 참조 화소 구성에 관한 예시도이다.
도 15는 화면내 예측의 대상 블록과 인접한 블록을 나타내는 개념도이다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 대상 블록의 화면내 예측 모드 후보군을 구성하고, 상기 대상 블록의 화면내 예측 모드을 위한 참조 화소를 결정하며, 상기 참조 화소에 필터링 또는 보간 중 적어도 하나를 수행하고, 상기 화면내 예측 모드 후보군 및 상기 참조 화소에 기반하여, 상기 대상 블록의 화면내 예측을 수행할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 필터링은, 상기 대상 블록의 크기, 형태, 위치, 컬러 성분, 참조 화소 라인, 서브 블록 단위의 화면내 예측이 적용되는지 여부 또는 화면내 예측 모드 중 적어도 하나에 기초하여 선택적으로 수행될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 화면내 예측 모드가 대각선 모드인 경우에는 상기 필터링이 수행되고, 그렇지 않은 경우에는 상기 필터링이 수행되는 않을 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대각선 모드는, 정수 단위의 화소만 참조하는 제1 모드 또는 소수 단위의 화소를 참조하는 제2 모드 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 화면내 예측 모드가 정수 단위의 화소만을 참조하는 제1 모드인 경우, 상기 참조 화소에 대한 보간은 수행되지 않고, 상기 대상 블록의 화면내 예측 모드가 소수 단위의 화소를 참조하는 제2 모드인 경우, 상기 참조 화소에 대한 보간은 수행될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 참조 화소는, 상기 대상 블록에 이웃한 복수의 참조 화소 라인 중 적어도 하나에 위치할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 화면내 예측 모드 후보군은, 적어도 하나의 우선권 할당 모드 또는 소정의 MPM(most probable mode)를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 우선권 할당 모드는, Planar 모드, DC 모드, 수직 모드 또는 수평 모드 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 화면내 예측은, 상기 대상 블록을 구성하는 서브 블록의 단위로 수행될 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 것을 의미한다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 영상의 컬러 포맷(Color Format)에 따라 하나 이상의 컬러 공간으로 구성될 수 있다. 컬러 포맷에 따라 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 일 예로, YCbCr 컬러 구성에서 4:4:4, 4:2:2, 4:2:0, Monochrome(Y로만 구성) 등의 컬러 포맷이 지원될 수 있다. 일 예로, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때 색차 성분과 휘도 성분의 구성 비는 가로, 세로 1:2를 가질 수 있다. 일 예로, 4:4:4인 경우 가로, 세로 동일한 구성 비를 가질 수 있다. 상기 예처럼 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다.
영상은 영상 타입(예를 들어, 픽쳐 타입, 슬라이스 타입, 타일 타입 등)에 따라 I, P, B 등으로 분류할 수 있는데, I 영상 타입은 참조 픽쳐를 사용하지 않고 자체적으로 부/복호화되는 영상을 의미할 수 있고, P 영상 타입은 참조 픽쳐를 사용하여 부/복호화를 하되 전방향 예측만을 허용하는 영상을 의미할 수 있으며, B 영상 타입은 참조 픽쳐를 사용하여 부/복호화를 하며 전/후방향 예측을 허용하는 영상을 의미할 수 있으나, 부/복호화 설정에 따라 상기 타입의 일부가 결합(P와 B를 결합)되거나 다른 구성의 영상 타입이 지원될 수도 있다.
본 발명에서 발생하는 다양한 부/복호화 정보는 명시적(Explicit) 또는 명시적(Implicit)인 처리가 가능할 수 있다. 여기서 명시적인 처리는 부호화 정보에 관한 복수의 후보군 중 하나의 후보를 가리키는 선택 정보를 시퀀스, 슬라이스, 타일, 블록, 서브 블록 등에서 생성하여 이를 비트스트림에 수록할 수 있고, 복호화기에서 부호화기와 동일 수준의 단위에서 관련 정보를 파싱(Parsing)하여 복호화 정보로 복원하는 것으로 이해할 수 있다. 여기서 묵시적인 처리는 부/복호화 정보를 부호화기와 복호화기에서 동일한 과정, 규칙 등으로 처리되는 것으로 이해할 수 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 1을 참조하면, 영상 부호화 장치(105) 및 복호화 장치(100)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone) 또는 TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 120, 125) 또는 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 110, 115) 등을 구비하는 다양한 장치를 포함할 수 있다.
또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망 또는 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블 또는 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치(100)로 전송되어 영상 복호화 장치(100)에서 복호화되어 영상으로 복원되고 재생될 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 영상 부호화 장치(105)에서 영상 복호화 장치(100)로 전달될 수 있다.
전술한 영상 부호화 장치와 영상 복호화 장치는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화/복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치의 일부 구성은 영상 복호화 장치의 일부 구성과 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다.
따라서, 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다. 또한, 영상 복호화 장치는 영상 부호화 장치에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치를 중심으로 설명하기로 한다.
컴퓨팅 장치는 영상 부호화 방법 및/또는 영상 복호화 방법을 구현하는 프로그램이나 소프트웨어 모듈을 저장하는 메모리와 메모리에 연결되어 프로그램을 수행하는 프로세서를 포함할 수 있다. 여기서, 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록 구성도이다.
도 2를 참조하면, 영상 부호화 장치(20)는 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 부호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
예측부(200)는 소프트웨어 모듈인 예측 모듈(prediction module)을 이용하여 구현될 수 있고, 부호화할 블록에 대하여 화면내 예측 방식(Intra Prediction)이나 화면간 예측 방식(Inter Prediction)으로 예측 블록을 생성할 수 있다. 예측부(200)는 영상에서 현재 부호화하고자 하는 대상 블록(Target Block)을 예측하여 예측 블록을 생성할 수 있다. 다시 말해, 예측부(200)는 영상에서 부호화하고자 하는 대상 블록의 각 화소의 화소값(pixel value)을 화면내 예측 또는 화면간 예측에 따라 예측하여 생성된 각 화소의 예측 화소값(prediced pixel value)를 갖는 예측 블록을 생성할 수 있다. 또한, 예측부(200)는 화면내 예측 모드 또는 화면간 예측 모드와 같은 예측 모드에 대한 정보와 같은 예측 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 부호화부로 하여금 예측 모드에 대한 정보를 부호화하도록 할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수 있다.
화면간 예측부에서 참조 픽쳐에 기반하여 시간적 예측과 공간적 예측으로 구분할 수 있다. 시간적 예측의 경우 현재 픽쳐와 시간적으로 다른 픽쳐에서 움직임을 찾는 예측 방법일 수 있고, 공간적 예측의 경우 현재 픽쳐와 시간적으로 동일한 현재 픽쳐(부호화가 완료된 영역. 대상 블록에 인접한 기 설정된 영역)에서 움직임을 찾는 예측 방법일 수 있다. 이는 참조 픽쳐 리스트를 통해 통합 관리하거나 또는 부호화 모드를 구분하여 관리할 수 있다. 예를 들어, 참조 픽쳐 리스트에 현재 픽쳐의 이전 또는 이후의 부호화가 완료된 픽쳐와 현재 픽쳐를 혼합하여 구성할 수 있고, 부호화 모드를 Mode_Intra, Mode_InterD, Mode_InterC로 구분하여 이 중 Mode_InterD(이전, 이후 픽쳐 참조)와 Mode_InterC(현재 참조)로 구분하여 지원할 수 있다.
또한, 화면간 예측부에서 움직임 예측 방법에 따라 이동 움직임 모델과 이동 외 움직임 모델로 구분할 수 있다. 이동 움직임 모델의 경우 평행 이동만을 고려하여 예측을 수행하고, 이동 외 움직임 모델의 경우 평행 이동뿐만 아니라 회전, 원근, 줌 인/아웃(Zoom in/out) 등과 같은 움직임을 고려하여 예측을 수행할 수 있다. 단방향 예측을 가정할 때 이동 움직임 모델의 경우 하나의 움직임 벡터가 필요할 수 있지만, 이동 외 움직임 모델의 경우 하나 이상의 움직임 정보(예를 들어, 하나의 움직임 벡터 + 회전 각도/스케일 팩터, 둘 이상의 움직임 벡터 등. 다음은 둘 이상의 움직임 벡터 사용을 가정)가 필요할 수 있다. 이동 외 움직임 모델의 경우 각 움직임 벡터는 대상 블록의 좌상측 꼭지점, 우상측 꼭지점, 좌하측 꼭지점 등과 같이 대상 블록의 기설정된 위치에 적용되는 정보일 수 있고, 해당 움직임 벡터를 통해 대상 블록의 예측하고자 하는 영역의 위치를 화소 단위 또는 서브 블록 단위(4 x 4, 8 x 8과 같은 2 이상의 정수)로 획득할 수 있다. 화면간 예측부는 상기 움직임 모델에 따라 후술하는 일부 과정은 공통으로 적용될 수 있고 일부 과정은 개별적으로 적용될 수 있다.
화면간 예측부는 참조 픽쳐 구성부, 움직임 추정부, 움직임 보상부, 움직임 정보 결정부, 움직임 정보 부호화부를 포함할 수 있다. 참조 픽쳐 구성부는 현재 픽쳐를 중심으로 이전 또는 이후에 부호화된 픽쳐를 참조 픽쳐 리스트(L0, L1)에 포함할 수 있다. 상기 참조 픽쳐 리스트에 포함된 참조 픽쳐로부터 예측 블록을 획득할 수 있으며, 부호화 설정에 따라 현재 영상 또한 참조 픽쳐로 구성되어 참조 픽쳐 리스트 중 적어도 한 곳에 포함될 수 있다.
화면간 예측부에서 참조 픽쳐 구성부는 참조 픽쳐 보간부를 포함할 수 있으며, 보간 정밀도에 따라 소수 단위 화소를 위한 보간 과정을 수행할 수 있다. 예를 들어, 휘도 성분의 경우 8-tap DCT 기반의 보간 필터를 적용하고, 색차 성분의 경우 4-tap DCT 기반의 보간 필터를 적용할 수 있다.
화면간 예측부에서 움직임 추정부는 대상 블록과 상관성이 높은 블록을 참조 픽쳐를 통해 탐색하는 과정이며 FBMA(Full search-based block matching algorithm), TSS(Three step search) 등의 다양한 방법이 사용될 수 있고, 움직임 보상부는 움직임 추정 과정을 통해 예측 블록을 획득하는 과정을 의미한다.
화면간 예측부에서 움직임 정보 결정부는 대상 블록의 최적의 움직임 정보를 선정하기 위한 과정이 수행될 수 있으며, 움직임 정보는 스킵 모드(Skip Mode), 병합 모드(Merge Mode), 경쟁 모드(Competition Mode) 등의 움직임 정보 부호화 모드에 의해 부호화될 수 있다. 상기 모드는 움직임 모델에 따라 지원되는 모드가 결합되어 구성될 수 있으며, 스킵 모드(이동), 스킵 모드(이동 외), 병합 모드(이동), 병합 모드(이동 외), 경쟁 모드(이동), 경쟁 모드(이동 외)가 그에 대한 예가 될 수 있다. 부호화 설정에 따라 상기 모드 중 일부가 후보군에 포함될 수 있다.
상기 움직임 정보 부호화 모드는 적어도 하나의 후보 블록에서 대상 블록의 움직임 정보(움직임 벡터, 참조 픽쳐, 예측 방향 등)의 예측값을 획득할 수 있으며, 둘 이상의 후보 블록이 지원되는 경우에는 최적의 후보 선택 정보가 발생할 수 있다. 스킵 모드(잔차 신호 없음)와 병합 모드(잔차 신호 존재)는 상기 예측값을 그대로 대상 블록의 움직임 정보로 사용할 수 있고, 경쟁 모드는 대상 블록의 움직임 정보와 상기 예측값과의 차분치 정보가 발생할 수 있다.
대상 블록의 움직임 정보 예측값을 위한 후보군은 움직임 정보 부호화 모드에 따라 적응적이고 다양한 구성을 가질 수 있다. 대상 블록에 공간적으로 인접한 블록(예를 들어, 좌, 상, 좌상, 우상, 좌하 블록 등)의 움직임 정보가 후보군에 포함될 수 있고, 시간적으로 인접한 블록(예를 들어, 대상 블록과 대응 또는 상응하는 다른 영상 내 블록<중앙>을 포함하여 좌, 우, 상, 하, 좌상, 우상, 좌하, 우하 블록 등)의 움직임 정보가 후보군에 포함될 수 있으며, 공간적 후보와 시간적 후보의 혼합 움직임 정보(예를 들어, 공간적으로 인접한 블록의 움직임 정보와 시간적으로 인접한 블록의 움직임 정보를 통해 둘 이상 후보의 평균, 중앙값 등으로 획득되는 정보. 대상 블록 또는 대상 블록의 서브 블록 단위로 움직임 정보를 획득할 수 있음) 등이 후보군에 포함될 수 있다.
움직임 정보 예측값 후보군 구성을 위한 우선 순위가 존재할 수 있다. 상기 우선 순위에 따라 예측값 후보군 구성에 포함되는 순서가 정해질 수 있으며, 상기 우선 순위에 따라 후보군의 개수(움직임 정보 부호화 모드에 따라 정해짐)만큼 채워지면 후보군 구성을 완료할 수 있다. 이때, 공간적으로 인접한 블록의 움직임 정보, 시간적으로 인접한 블록의 움직임 정보, 공간적 후보와 시간적 후보의 혼합 움직임 정보 순서로 우선 순위가 정해질 수 있으나, 그 외의 변형 또한 가능하다.
예를 들어, 공간적으로 인접한 블록 중에서는 좌 - 상 - 우상 - 좌하 - 좌상 블록 등의 순서로 후보군에 포함할 수 있고, 시간적으로 인접한 블록 중에서는 우하 - 중 - 우 - 하 블록 등의 순서로 후보군에 포함할 수 있다.
감산부(205)는 대상 블록에서 예측 블록을 감산하여 잔차 블록(residual block)을 생성할 수 있다. 다시 말해, 감산부(205)는 부호화하고자 하는 대상 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호(residual signal)인 잔차 블록을 생성할 수 있다. 또한, 감산부(205)는 후술하는 블록 분할부를 통해 획득된 블록 단위 이외의 단위에 따라 잔차 블록을 생성할 수도 있다.
변환부(210)는 공간 영역에 속하는 신호를 주파수 영역에 속하는 신호로 변환할 수 있으며, 변환 과정을 거쳐 획득되는 신호를 변환 계수(Transformed Coeffcient)라고 한다. 예를 들어, 감산부로부터 전달받은 잔차 신호를 갖는 잔차 블록을 변환하여 변환 계수를 갖는 변환 블록을 획득할 수 있는데, 입력 받은 신호는 부호화 설정에 따라 결정되며 이는 잔차 신호에 한정되지 않는다.
변환부는 잔차 블록을 하다마드 변환(Hadamard Transform), 이산 사인 변환(DST Based-Transform: Discrete Sine Transform), 이산 코사인 변환(DCT Based-Transform: Discrete Cosine Transform) 등과 같은 변환 기법을 사용하여 변환할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 변환 기법이 사용될 수 있다.
상기 변환 기법 중 적어도 하나의 변환 기법이 지원될 수 있으며, 각 변환 기법에서 적어도 하나의 세부 변환 기법이 지원될 수 있다. 이때, 상기 세부 변한 기법은 각 변환 기법에서 기저 벡터의 일부가 달리 구성되는 변환 기법일 수 있다.
예를 들어, DCT의 경우 DCT-1 내지 DCT-8 중 하나 이상의 세부 변환 기법이 지원될 수 있고, DST의 경우 DST-1 내지 DST-8 중 하나 이상의 세부 변환 기법이 지원될 수 있다. 상기 세부 변환 기법의 일부를 구성하여 변환 기법 후보군을 구성할 수 있다. 일 예로, DCT-2, DCT-8, DST-7를 변환 기법 후보군으로 구성하여 변환을 수행할 수 있다.
변환은 수평/수직 방향으로 수행될 수 있다. 예를 들어, DCT-2의 변환 기법을 사용하여 수평 방향으로 1차원 변환을 수행하고, DST-7의 변환 기법을 사용하여 수직 방향으로 1차원 변환을 수행하여 총 2차원 변환을 수행함으로써 공간 영역의 화소값을 주파수 영역으로 변환할 수 있다.
고정적인 하나의 변환 기법을 사용하여 변환을 수행할 수 있거나 부/복호화 설정에 따라 변환 기법을 적응적으로 선택하여 변환을 수행할 수 있다. 이때, 적응적인 경우에는 명시적 또는 묵시적인 방법을 사용하여 변환 기법을 선택할 수 있다. 명시적인 경우에는 수평, 수직 방향에 적용되는 각각의 변환 기법 선택 정보 또는 변환 기법 세트 선택 정보가 블록 등의 단위에서 발생할 수 있다. 묵시적인 경우는 영상 타입(I/P/B), 컬러 성분, 블록의 크기/형태/위치, 화면내 예측 모드 등에 따라 부호화 설정이 정의될 수 있으며, 이에 따라 소정의 변환 기법이 선택될 수 있다.
또한, 부호화 설정에 따라 상기 일부 변환이 생략되는 경우가 가능할 수 있다. 즉, 명시적 또는 묵시적으로 수평/수직 단위 중 하나 이상을 생략할 수 있음을 의미한다.
또한, 변환부는 변환 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 역변환 과정에 사용할 수 있다.
양자화부(215)는 입력 받은 신호를 양자화할 수 있으며, 이때 양자화 과정을 거쳐 획득되는 신호를 양자화 계수(Quantized Coefficient)라고 한다. 예를 들어, 변환부로부터 전달받은 잔차 변환 계수를 갖는 잔차 블록을 양자화하여 양자화 계수를 갖는 양자화 블록을 획득할 수 있는데, 입력 받은 신호는 부호화 설정에 따라 결정되며 이는 잔차 변환 계수에 한정되지 않는다.
양자화부는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 등과 같은 양자화 기법을 사용하여 양자화할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 양자화 기법이 사용될 수 있다.
부호화 설정에 따라 양자화 과정은 생략할 수 있다. 예를 들어, 부호화 설정(예를 들어, 양자화 파라미터가 0. 즉, 무손실 압축 환경)에 따라 양자화 과정을 생략(역과정도 포함)할 수 있다. 다른 예로, 영상의 특성에 따라 양자화를 통한 압축 성능이 발휘되지 않는 경우에는 양자화 과정을 생략할 수 있다. 이때, 양자화 블록(M x N) 중 양자화 과정이 생략되는 영역은 전체 영역이거나 또는 일부 영역(M/2 x N/2, M x N/2, M/2 x N 등)일 수 있으며, 양자화 생략 선택 정보는 묵시적 또는 명시적으로 정해질 수 있다.
양자화부는 양자화 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 이를 역양자화 과정에 사용할 수 있다.
상기 예에서는 변환부와 양자화부를 통해 잔차 블록을 변환하고 양자화하는 가정 하에 설명하였지만, 잔차 블록을 잔차 신호를 변환하여 변환 계수를 갖는 잔차 블록을 생성하고 양자화 과정을 수행하지 않을 수 있으며, 잔차 블록의 잔차 신호를 변환 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 변환과 양자화 과정 모두 수행하지 않을 수 있다. 이는 부호화기 설정에 따라 결정될 수 있다.
역양자화부(220)는 양자화부(215)에 의해 양자화된 잔차 블록을 역 양자화한다. 즉, 역양자화부(220)는 양자화 주파수 계수열을 역양자화하여 주파수 계수를 갖는 잔차 블록을 생성한다.
역변환부(225)는 역양자화부(220)에 의해 역양자화된 잔차 블록을 역변환한다. 즉, 역변환부(225)는 역양자화된 잔차 블록의 주파수 계수들을 역변환하여 화소값을 갖는 잔차 블록, 즉 복원된 잔차 블록을 생성한다. 여기서, 역변환부(225)는 변환부(210)에서 사용한 변환한 방식을 역으로 사용하여 역변환을 수행할 수 있다.
가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 대상 블록을 복원한다. 복원된 대상 블록은 부호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 대상 블록의 다음 블록이나 향후 다른 블록, 다른 픽쳐를 부호화할 때 참조 픽쳐로서 사용될 수 있다.
필터부(235)는 디블록킹 필터, SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 화소 단위로 원본 영상과의 오프셋 차이를 복원할 수 있다. 이와 같은 후처리 필터는 복원된 픽쳐 또는 블록에 적용될 수 있다.
부호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 부호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면내 예측 또는 화면간 예측을 수행하는 예측부(200)에 제공될 수 있다.
엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 이를 엔트로피 부호화 기법 등을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다. 또한, 각 구성부로부터 전달되는 부호화 정보를 포함하는 부호화 데이터를 생성하여 비트스트림으로 출력할 수 있다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 블록 구성도이다.
도 3을 참조하면, 영상 복호화 장치(30)는 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330) 및 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.
또한, 예측부(310)는 다시 화면내 예측 모듈 및 화면간 예측 모듈을 포함하여 구성될 수 있다.
먼저, 영상 부호화 장치(20)로부터 전달된 영상 비트스트림이 수신되면, 엔트로피 복호화부(305)로 전달될 수 있다.
엔트로피 복호화부(305)는 비트스트림을 복호화하여 양자화된 계수들과 각 구성부로 전달되는 복호화 정보를 포함하는 복호화 데이터를 복호화할 수 있다.
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 예측 블록을 생성할 수 있다. 이때, 복호화된 픽쳐 버퍼(335)에 저장된 참조 영상에 기초하여, 디폴트(default) 구성 기법을 이용한 참조 픽쳐 리스트를 구성할 수도 있다.
화면간 예측부는 참조 픽쳐 구성부, 움직임 보상부, 움직임 정보 복호화부를 포함할 수 있으며, 일부는 부호화기와 동일한 과정을 수행하고 일부는 역으로 유도하는 과정을 수행할 수 있다.
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.
역양자화 및 역변환 과정을 거친 잔차 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블록킹(blocking) 현상을 제거하기 위하여 디블록킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.
도면에 도시하지 않았지만 영상 부호화/복호화 장치에 블록 분할부를 더 포함할 수 있다.
블록 분할부를 통해 다양한 단위과 크기의 블록으로 분할할 수 있다. 기본 부호화 단위(또는 최대 부호화 단위. Coding Tree Unit. CTU)는 영상 부/복호화 과정에서 예측, 변환, 양자화 등에 대한 기본(또는 시작) 단위를 의미할 수 있다. 이때, 기본 부호화 단위는 컬러 포맷(본 예에서 YCbCr)에 따라 하나의 휘도 기본 부호화 블록(또는, 최대 부호화 블록. Coding Tree Block. CTB)과 두 개의 기본 색차 부호화 블록으로 구성될 수 있으며, 컬러 포맷에 따라 각 블록의 크기가 정해질 수 있다. 그리고 분할 과정에 따라 부호화 블록(Coding Block. CB)이 획득될 수 있다. 부호화 블록은 일정한 제한에 따라 더 이상의 부호화 블록으로 분할되지 않은 단위로 이해할 수 있으며, 하위 단위로의 분할의 시작 단위로 설정될 수 있다. 본 발명에서 블록은 사각형 형태에만 제한하지 않고 삼각형, 원형 등의 다양한 형태를 포함하는 넓은 개념으로 이해할 수 있다.
후술하는 내용은 하나의 컬러 성분을 대상으로 하지만 컬러 포맷에 따른 비율(예를 들어, YCbCr 4:2:0의 경우 휘도 성분과 색차 성분의 가로 및 세로 길이 비율은 2:1)에 비례하여 다른 컬러 성분에 변경 적용될 수 있음을 이해하여야 한다. 또한, 다른 컬러 성분에 의존적인 블록 분할(예를 들어, Cb/Cr에서 Y의 블록 분할 결과에 의존적인 경우)이 가능할 수 있지만, 각 컬러 성분에 독립적인 블록 분할이 가능할 수 있음을 이해하여야 한다. 또한, 공통되는 하나의 블록 분할 설정(길이 비율에 비례하는 것은 고려)을 사용할 수 있지만, 컬러 성분에 따라 개별적인 블록 분할 설정이 사용되는 것 또한 고려하여 이해할 필요가 있다.
블록 분할부에서 블록은 M × N으로 표현될 수 있으며, 각 블록의 최대값과 최소값이 범위 내에서 획득될 수 있다. 예를 들어, 블록의 최대값을 256×256, 최소값을 4×4로 정할 경우, 2m×2n 크기의 블록(본 예에서 m과 n은 2부터 8까지의 정수) 또는 2m × 2m 크기의 블록(본 예에서 m과 n은 2부터 128까지의 정수) 또는 m × m 크기의 블록(본 예에서 m과 n은 4부터 256까지의 정수)을 획득할 수 있다. 여기서, m과 n은 동일하거나 동일하지 않을 수 있으며, 상기 최대값과 최소값 등의 블록이 지원되는 범위는 하나 이상 발생할 수 있다.
예를 들어, 블록의 최대 크기 및 최소 크기 등에 관한 정보가 발생할 수 있고, 일부 분할 설정에서의 블록의 최대 크기 및 최소 크기 등에 관한 정보가 발생할 수 있다. 여기서 전자의 경우 영상 내에서 발생 가능한 최대 및 최소 크기에 대한 범위 정보일 수 있고, 후자의 경우 일부 분할 설정에 따라 발생 가능한 최대 및 최소 크기에 대한 정보일 수 있다. 여기서 상기 분할 설정은 영상 타입(I/P/B), 컬러 성분(YCbCr 등), 블록 종류(부호화/예측/변환/양자화 등), 분할 종류(Index or Type), 분할 방식(Tree 방식에서 QT, BT, TT 등, Index 방식에서 SI2, SI3, SI4 등) 등에 의해 정의될 수 있다.
또한, 블록이 가질 수 있는 가로/세로 길이 비율(블록의 형태)에 대한 제한이 존재할 수 있으며, 이에 대한 경계값 조건이 설정될 수 있다. 이때, 임의의 경계값(k) 이하/미만의 블록만 지원될 수 있으며, k는 A/B(A는 가로, 세로 중 길거나 같은 값, B는 그 나머지 값)와 같은 가로와 세로의 길이 비율에 따라 정의될 수 있고, 1.5, 2, 3, 4 등과 같은 1 이상의 실수일 수 있다. 상기 예에서와 같이 영상에서의 하나의 블록의 형태에 관한 제한 조건이 지원되거나 또는 분할 설정에 따라 하나 이상의 제한 조건이 지원될 수 있다.
정리하면, 상기 설명과 같은 범위 및 조건과 후술하는 분할 설정 등에 의해 블록 분할의 지원 여부가 정해질 수 있다. 예를 들어, 블록(부모 블록)의 분할에 따른 후보(자식 블록)가 지원되는 블록 조건에 만족할 경우 해당 분할은 지원될 수 있고, 만족하지 않을 경우 해당 분할은 지원되지 않을 수 있다.
블록 분할부는 영상 부호화 장치 및 복호화 장치의 각 구성부에 관계되어 설정될 수 있으며, 이 과정을 통해 블록의 크기와 형태가 정해질 수 있다. 이때, 설정되는 블록은 구성부에 따라 달리 정의될 수 있으며, 예측부의 경우 예측 블록(Prediction Block), 변환부의 경우 변환 블록(Transform Block), 양자화부의 경우 양자화 블록(Quantization Block) 등이 이에 해당할 수 있다. 다만, 이에 한정되지 않고 다른 구성부에 따른 블록 단위가 추가로 정의될 수 있다. 본 발명에서는 각 구성부에서 입력과 출력이 직사각형 형태인 경우를 중심으로 설명하지만, 일부 구성부에서는 다른 형태(예를 들어, 직각 삼각형 등)의 입/출력이 가능할 수도 있다.
블록 분할부의 초기(또는 시작) 블록의 크기 및 형태는 상위 단위로부터 결정될 수 있다. 상기 초기 블록은 더 작은 크기의 블록으로 분할될 수 있으며, 블록의 분할에 따른 최적의 크기 및 형태가 결정되면 그 블록은 하위 단위의 초기 블록으로 결정될 수 있다. 여기서, 상위 단위는 부호화 블록, 하위 단위는 예측 블록 또는 변환 블록일 수 있으나, 이에 한정되지 않으며 다양한 변형의 예가 가능할 수 있다. 상기 예와 같이 하위 단위의 초기 블록이 정해지면 상위 단위와 같이 최적의 크기 및 형태의 블록을 찾기 위한 분할 과정이 수행될 수 있다.
정리하면, 블록 분할부는 기본 부호화 블록(또는 최대 부호화 블록)을 적어도 하나의 부호화 블록으로 분할을 수행할 수 있고, 부호화 블록은 적어도 하나의 예측 블록/변환 블록/양자화 블록으로 분할을 수행할 수 있다. 또한, 예측 블록은 적어도 하나의 변환 블록/양자화 블록으로 분할을 수행할 수 있고, 변환 블록은 적어도 하나의 양자화 블록으로 분할을 수행할 수 있다. 여기서, 일부 블록은 다른 블록과 종속적인 관계(즉, 상위 단위와 하위 단위에 의해 정의)일 수 있거나 독립적인 관계를 가질 수 있다. 일 예로, 예측 블록은 변환 블록의 상위 단위일 수 있거나 또는 변환 블록과 독립적인 단위일 수 있으며, 블록의 종류에 따라 다양한 관계 설정이 가능할 수도 있다.
부/복호화 설정에 따라 상위 단위와 하위 단위의 결합 여부가 정해질 수 있다. 여기서 단위 간의 결합은 상위 단위에서 하위 단위로의 분할을 수행하지 않고, 상위 단위의 블록(크기 및 형태)으로 하위 단위의 부/복호화 과정(예를 들어, 예측부, 변환부, 역변환부 등)을 수행함을 의미한다. 즉, 복수의 단위에서의 분할 과정이 공유되고 분할 정보는 그 중 하나의 단위(예를 들어, 상위 단위)에서 발생함을 의미할 수 있다.
일 예로, (부호화 블록이 예측 블록, 변환 블록과 결합될 경우) 부호화 블록에서 예측 과정, 변환 및 역변환 과정을 수행할 수 있다.
일 예로, (부호화 블록이 예측 블록과 결합될 경우) 부호화 블록에서 예측 과정을 수행할 수 있고, 부호화 블록과 동일하거나 더 작은 변환 블록에서 변환 및 역변환 과정을 수행할 수 있다.
일 예로, (부호화 블록이 변환 블록과 결합될 경우) 부호화 블록과 동일하거나 더 작은 예측 블록에서 예측 과정을 수행할 수 있고, 부호화 블록에서 변환 및 역변환 과정을 수행할 수 있다.
일 예로, (예측 블록이 변환 블록과 결합된 경우) 부호화 블록과 동일하거나 더 작은 예측 블록에서 예측 과정을 수행할 수 있고, 예측 블록에서 변환 및 역변환 과정을 수행할 수 있다.
일 예로, (어떤 블록에서도 결합되지 않은 경우) 부호화 블록과 동일하거나 더 작은 예측 블록에서 예측 과정을, 부호화 블록과 동일하거나 더 작은 변환 블록에서 변환 및 역변환 과정을 수행할 수 있다.
상기 예에서 부호화, 예측, 변환 블록에 관한 다양한 경우를 설명하였으나, 이에 한정하지 않는다.
상기 단위 간의 결합은 영상에서 고정적인 설정이 지원될 수 있거나 또는 다양한 부/복호화 요소를 고려하여 적응적인 설정이 지원될 수 있다. 여기서 상기 부/복호화 요소는 영상 타입, 컬러 성분, 부호화 모드(Intra/Inter), 분할 설정, 블록의 크기/형태/위치, 가로/세로의 길이 비, 예측 관련 정보(예를 들어, 화면내 예측 모드, 화면간 예측 모드 등), 변환 관련 정보(예를 들어, 변환 기법 선택 정보 등), 양자화 관련 정보(예를 들어, 양자화 영역 선택 정보, 양자화된 변환 계수 부호화 정보 등) 등을 포함할 수 있다.
상술한 바와 같이 최적의 크기 및 형태의 블록을 찾은 경우, 이에 대한 모드 정보(예를 들어, 분할 정보 등)가 생성될 수 있다. 모드 정보는 블록이 속하는 구성부에서 발생하는 정보(예를 들어, 예측 관련 정보 및 변환 관련 정보 등)과 함께 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서 동일 수준의 단위로 파싱되어 영상 복호화 과정에서 사용될 수 있다.
이하에서는 분할 방식에 대한 설명할 것이며, 설명의 편의를 위해 초기 블록이 정사각 형태인 것을 가정하지만, 초기 블록이 직사각 형태인 경우에도 동일하거나 유사하게 적용할 수 있으므로, 이에 한정되는 것은 아니다.
블록 분할부는 다양한 종류의 분할을 지원할 수 있다. 예를 들어, 트리 기반의 분할 또는 인덱스 기반의 분할을 지원할 수 있고, 그 외의 방법이 지원될 수 있다. 트리 기반의 분할은 다양한 종류의 정보(예를 들어, 분할 여부, 트리 종류, 분할 방향 등)로 분할 형태를 결정할 수 있고, 인덱스 기반의 분할은 소정의 인덱스 정보로 분할 형태를 결정할 수 있다.
도 4는 본 발명의 블록 분할부에서 획득할 수 있는 다양한 분할 형태를 나타낸 예시도이다. 본 예에서는 한 번의 분할 수행(또는 과정)을 통해 도 4와 같은 분할 형태를 획득하는 경우를 가정하지만, 이에 한정되지 않고 복수의 분할 동작을 통해 획득되는 경우 또한 가능할 수 있다. 또한, 도 4에 도시되지 않은 추가적인 분할 형태가 가능할 수 있다.
(트리 기반의 분할)
본 발명의 트리 기반의 분할에서 쿼드 트리(Quad Tree. QT), 바이너리 트리(Binary Tree. BT), 터너리 트리(Ternary Tree. TT) 등이 지원될 수 있다. 하나의 트리 방식이 지원되는 경우는 단일 트리 분할, 둘 이상의 트리 방식이 지원되는 경우는 다중 트리 분할이라 지칭할 수 있다.
QT의 경우 블록이 수평와 수직 방향으로 각각 2분할(즉, 4분할)되는 방식(n)을 의미하고, BT의 경우 블록이 수평 또는 수직 중 한 방향으로 2분할되는 방식(b 내지 g)을 의미하고, TT의 경우 블록이 수평 또는 수직 중 한 방향으로 3분할되는 방식(h 내지 m)을 의미한다.
여기서, QT의 경우 분할 방향을 수평과 수직 중 하나에 한정하여 4분할하는 방식(o, p)을 지원할 수도 있다. 또한, BT의 경우 균등한 크기를 갖는 방식(b, c)만 지원하거나 또는 비균등 크기를 갖는 방식(d 내지 g)만 지원하거나 또는 두 방식을 혼합 지원할 수 있다. 또한, TT의 경우 분할이 특정 방향에 치우치는 배치(좌 -> 우 또는 상 -> 하 방향으로 1:1:2, 2:1:1 등)를 갖는 방식(h, j, k, m)만 지원하거나 또는 중앙에 배치(1:2:1 등)되는 방식(i, l)만 지원하거나 또는 두 방식을 혼합 지원할 수 있다. 또한, 분할 방향을 수평과 수직 방향으로 각각 4분할(즉, 16분할)되는 방식(q) 또한 지원할 수 있다.
그리고 상기 트리 방식 중 수평 분할 방향에 한정하여 z분할하는 방식(b, d, e, h, i, j, o)을 지원하거나 또는 수직 분할 방향에 한정하여 z 분할하는 방식(c, f, g, k, l, m, p)을 지원하거나 또는 두 방식을 혼합 지원할 수 있다. 여기서, z는 2, 3, 4와 같은 2 이상 정수일 수 있다.
본 발명에서 QT는 n, BT는 b와 c, TT는 i와 l을 지원하는 경우를 가정하여 설명한다.
부/복호화 설정에 따라 상기 트리 분할 중 하나 이상의 방식이 지원될 수 있다. 예를 들어, QT를 지원할 수 있거나 QT/BT를 지원할 수 있거나 QT/BT/TT를 지원할 수 있다.
상기 예는 기본 트리 분할이 QT이며 기타 트리 지원 여부에 따라 BT와 TT가 추가 분할 방식에 포함되는 경우에 대한 예이지만, 다양한 변형이 가능할 수 있다. 이때, 기타 트리 지원 여부에 대한 정보(bt_enabled_flag, tt_enabled_flag, bt_tt_enabled_flag 등. 0 또는 1의 값을 가질 수 있고, 0이면 지원하지 않고 1이면 지원)는 부/복호화 설정에 따라 묵시적으로 정해지거나 또는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 명시적으로 결정될 수 있다.
분할 정보는 분할 여부에 대한 정보(tree_part_flag. 또는, qt_part_flag, bt_part_flag, tt_part_flag, bt_tt_part_flag. 0 또는 1의 값을 가질 수 있고, 0이면 분할되지 않고 1이면 분할)가 포함될 수 있다. 또한, 분할 방식(BT와 TT)에 따라 분할 방향(dir_part_flag. 또는, bt_dir_part_flag, tt_dir_part_flag, bt_tt_dir_part_flag. 0 또는 1의 값을 가질 수 있고, 0이면 <가로/수평>이고 1이면 <세로/수직>)에 대한 정보가 추가될 수 있으며, 이는 분할이 수행되는 경우에 발생 가능한 정보일 수 있다.
복수의 트리 분할이 지원되는 경우에는 다양한 분할 정보 구성이 가능할 수 있다. 다음은 하나의 깊이(Depth) 수준(즉, 지원되는 분할 깊이가 하나 이상으로 설정되어 재귀적인 분할이 가능할 수도 있지만 설명의 편의를 위한 목적)에서 분할 정보가 어떻게 구성되어 있는지에 대한 예로 가정하여 설명한다.
일 예(1)로, 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 분할이 종료된다.
만약 분할이 수행되는 경우라면 분할 종류에 대한 선택 정보(예를 들어, tree_idx. 0이면 QT, 1이면 BT, 2이면 TT)를 확인한다. 이때, 선택되는 분할 종류에 따라 분할 방향 정보를 추가로 확인하고 다음 단계(분할 깊이가 최대에 도달하지 않은 경우 등의 이유로 추가 분할이 가능하다면 다시 처음부터 시작하고, 분할이 불가한 경우라면 분할 종료)로 넘어간다.
일 예(2)로, 일부 트리 방식(QT)에 대한 분할 여부에 대한 정보를 확인하고 다음 단계로 넘어간다. 이때, 분할이 수행되지 않는 경우라면 일부 트리 방식(BT)의 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 일부 트리 방식(TT)의 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 분할이 종료된다.
만약 일부 트리 방식(QT)의 분할이 수행되는 경우라면 다음 단계로 넘어간다. 또한, 만약 일부 트리 방식(BT)의 분할이 수행되는 경우라면 분할 방향 정보를 확인하고 다음 단계로 넘어간다. 또한, 만약 일부 트리 분할 방식(TT)의 분할이 수행되는 경우라면 분할 방향 정보를 확인하고 다음 단계로 넘어간다.
일 예(3)로, 일부 트리 방식(QT)에 대한 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 일부 트리 방식(BT와 TT)의 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 분할이 종료된다.
만약 일부 트리 방식(QT)의 분할이 수행되는 경우라면 다음 단계로 넘어간다. 또한, 만약 일부 트리 방식(BT와 TT)의 분할이 수행되는 경우라면 분할 방향 정보를 확인하고 다음 단계로 넘어간다.
상기 예는 트리 분할의 우선 순위가 존재(2번과 3번 예)하거나 존재하지 않는 경우(1번 예)일 수 있으나, 다양한 변형의 예가 가능할 수 있다. 또한, 상기 예에서 현재 단계의 분할은 이전 단계의 분할 결과와는 무관한 경우를 설명하는 예이지만, 현재 단계의 분할이 이전 단계의 분할 결과에 의존적인 설정 또한 가능할 수 있다.
예를 들어, 1 내지 3번 예의 경우 이전 단계에서 일부 트리 방식의 분할(QT)이 수행되어 현재 단계로 넘어온 경우라면 현재 단계에서도 동일 트리 방식(QT)의 분할이 지원될 수 있다.
반면, 이전 단계에서 일부 트리 방식의 분할(QT)이 수행되지 않고 다른 트리 방식의 분할(BT 또는 TT)이 수행되어 현재 단계로 넘어온 경우라면 일부 트리 방식의 분할(QT)을 제외하고 일부 트리 방식의 분할(BT와 TT)이 현재 단계를 포함한 후속 단계에 지원되는 설정 또한 가능할 수 있다.
위와 같은 경우에는 블록 분할에 지원되는 트리 구성이 적응적일 수 있다는 것을 의미하므로, 전술한 분할 정보 구성 또한 달리 구성될 수 있음을 의미한다. (후술하는 예는 3번 예로 가정) 즉, 상기 예에서 일부 트리 방식(QT)의 분할이 이전 단계에서 수행되지 않았을 경우, 현재 단계에서는 일부 트리 방식(QT)은 고려하지 않고 분할 과정이 수행될 수 있다. 또한, 관련 트리 방식에 관한 분할 정보(예를 들어, 분할 여부에 대한 정보, 분할 방향 정보 등. 본 예<QT>에서는 분할 여부에 대한 정보)는 제거하여 구성될 수 있다.
상기 예는 블록 분할이 허용되는 경우(예를 들어, 블록 크기가 최대값과 최소값 사이의 범위 내에 존재, 각 트리 방식의 분할 깊이가 최대 깊이<허용 깊이>에 도달하지 않음 등)에 대한 적응적인 분할 정보 구성에 관한 경우이며, 블록 분할이 제한되는 경우(예를 들어, 블록 크기가 최대값과 최소값 사이의 범위에 존재하지 않음, 각 트리 방식의 분할 깊이가 최대 깊이에 도달함 등)에도 적응적인 분할 정보 구성이 가능할 수 있다.
이미 언급한 것과 같이 본 발명에서 트리 기반의 분할은 재귀적인 방식을 사용하여 수행될 수 있다. 예를 들어, 분할 깊이가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 N개의 서브 부호화 블록(이때, N은 2, 3, 4와 같은 2 이상의 정수)에서 수행된다.
상기 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있으며, 이러한 계층적 분할 방식은 분할 범위 및 분할 허용 깊이 등의 분할 설정에 따라 결정될 수 있다.
이때, 분할 정보를 표현하기 위한 비트스트림 구조는 하나 이상의 스캔 방법 중 선택할 수 있다. 예를 들어, 분할 깊이 순서 기준으로 분할 정보의 비트스트림을 구성할 수 있거나 분할 여부 기준으로 분할 정보의 비트스트림을 구성할 수 있다.
예를 들어, 분할 깊이 순서 기준의 경우 최초 블록 기준으로 현 수준의 깊이에서의 분할 정보를 획득한 후 다음 수준의 깊이에서의 분할 정보를 획득하는 방법이며, 분할 여부 기준의 경우 최초 블록 기준으로 분할된 블록에서의 추가 분할 정보를 우선적으로 획득하는 방법을 의미하며, 다른 추가적인 스캔 방법이 고려될 수 있다.
최대 블록의 크기와 최소 블록의 크기는 트리 종류에 상관없이(또는 모든 트리) 공통되는 설정을 가질 수 있거나 또는 각 트리에 따라 개별적인 설정을 가질 수 있거나 또는 둘 이상의 트리에 대한 공통되는 설정을 가질 수 있다. 이때 최대 블록의 크기는 최대 부호화 블록과 같거나 작게 설정될 수 있다. 만약 소정의 제 1 트리에 따른 최대 블록의 크기가 최대 부호화 블록과 동일하지 않다면, 제 1 트리의 최대 블록 크기에 도달할 때까지 소정의 제 2 트리 방식을 사용하여 묵시적으로 분할을 수행한다.
그리고 트리 종류에 상관없이 공통되는 분할 깊이가 지원될 수 있거나 또는 각 트리에 따라 개별적인 분할 깊이가 지원될 수 있거나 또는 둘 이상의 트리에 대한 공통되는 분할 깊이가 지원될 수 있다. 또는, 일부 트리에는 분할 깊이가 지원되고, 일부 트리에는 분할 깊이가 지원되지 않을 수 있다.
상기 설정 정보에 대한 명시적인 구문 요소가 지원될 수 있으며, 일부 설정 정보는 묵시적으로 정해질 수도 있다.
(인덱스 기반의 분할)
본 발명의 인덱스 기반의 분할에서 CSI(Constant Split Index) 방식과 VSI(Variable Split Index) 방식 등이 지원될 수 있다.
CSI 방식은 소정의 방향의 분할을 통해 k개의 서브 블록이 획득되는 방식일 수 있으며, k는 2, 3, 4 등 2 이상의 정수일 수 있다. 상세하게는, 블록의 크기 및 형태에 관계없이 상기 k값에 기반하여 서브 블록의 크기 및 형태가 정해지는 구성의 분할 방식일 수 있다. 여기서, 소정의 방향은 수평, 수직, 대각선(좌상 -> 우하 방향. 또는, 좌하 -> 우상 방향 등) 방향 중 하나 또는 둘 이상의 방향이 결합될 수 있다.
본 발명의 인덱스 기반의 CSI 분할 방식은 수평 또는 수직 중 한 방향으로 z개로 분할되는 후보를 포함할 수 있다. 이때, z는 2, 3, 4와 같은 2 이상 정수일 수 있으며, 각 서브 블록의 가로 또는 세로 길이 중 하나는 동일하고 다른 하나는 동일하거나 상이할 수 있다. 상기 서브 블록의 가로 또는 세로 길이의 비는 A1:A2:...: AZ로 A1 내지 AZ는 1, 2, 3과 같은 1 이상의 정수일 수 있다.
또한, 수평과 수직 방향으로 각각 x, y개로 분할되는 후보를 포함할 수 있다. 이때, x와 y는 1, 2, 3, 4와 같은 1 이상의 정수일 수 있지만, x와 y가 동시에 1인 경우(a가 이미 존재하므로)는 제한할 수 있다. 도 4의 경우 각 서브 블록의 가로 또는 세로 길이의 비율이 동일한 경우를 도시하고 있지만, 상이한 경우를 포함하는 후보를 포함할 수도 있다.
또한, 일부 대각선 방향(좌상 -> 우하 방향) 또는 일부 대각선 방향(좌하 -> 우상 방향) 중 한 방향으로 w개 분할되는 후보를 포함할 수 있으며, w는 2, 3과 같은 2 이상의 정수일 수 있다.
도 4를 참조하면, 각 서브 블록의 길이 비율에 따라 대칭적인 분할 형태(b)와 비대칭적인 분할 형태(d, e)로 구분할 수 있고, 특정 방향에 치우친 분할 형태(k, m)와 중앙에 배치되는 분할 형태(k)로 구분할 수 있다. 서브 블록의 길이 비율뿐만 아니라 서브 블록의 형태 등을 포함하는 다양한 부/복호화 요소에 의해 분할 형태를 정의할 수 있는데, 부/복호화 설정에 따라 지원되는 분할 형태가 묵시적으로 또는 명시적으로 정해질 수 있다. 그리하여 지원되는 분할 형태에 기반하여 인덱스 기반의 분할 방식에서의 후보군이 정해질 수 있다.
한편, VSI 방식은 서브 블록의 너비(w) 또는 높이(h)가 고정된 채로 소정의 방향의 분할을 통해 하나 이상의 서브 블록이 획득되는 방식일 수 있으며, w와 h는 1, 2, 4, 8 등과 같은 1 이상의 정수일 수 있다. 상세하게는, 블록의 크기 및 형태와 상기 w 또는 n값에 기반하여 서브 블록의 개수가 정해지는 구성의 분할 방식일 수 있다.
본 발명의 인덱스 기반의 VSI 분할 방식은 서브 블록의 가로 또는 세로 길이 중 하나를 고정하여 분할되는 후보를 포함할 수 있다. 또는, 서브 블록의 가로와 세로 길이를 고정하여 분할되는 후보를 포함할 수 있다. 서브 블록의 가로 또는 세로 길이가 고정되기 때문에 수평 또는 수직 방향으로 균등 분할을 허용하는 특징을 가질 수 있지만, 이에 한정되지 않는다.
분할 전 블록이 M x N이고 서브 블록의 가로 길이가 고정(w)되거나 또는 세로 길이가 고정(h)되거나 또는 가로와 세로 길이가 고정(w, h)되는 경우, 획득되는 서브 블록의 개수는 각각 (M*N)/w, (M*N)/h, (M*N)/w/h 일 수 있다.
부/복호화 설정에 따라 CSI 방식만 지원되거나 또는 VSI 방식만 지원될 수 있고 두 방식 모두 지원할 수도 있으며, 지원되는 방식에 대한 정보가 묵시적 또는 명시적으로 정해질 수 있다.
본 발명에서는 CSI 방식이 지원되는 경우를 가정하여 설명한다.
부/복호화 설정에 따라 상기 인덱스 분할 중 둘 이상의 후보를 포함하여 후보군을 구성할 수 있다.
예를 들어, {a, b, c}, {a, b, c, n}, {a 내지 g, n}과 같은 후보군을 구성할 수 있는데, 수평 또는 수직 방향으로 2분할되거나 수평과 수직 방향으로 각각 2분할되는 블록 형태처럼 일반적인 통계적인 특성에 기초하여 많이 발생할 것이라 예측되는 블록 형태를 후보군으로 구성하는 예일 수 있다.
또는, {a, b}, {a, o}, {a, b, o} 또는 {a, c}, {a, p}, {a, c, p}와 같은 후보군을 구성할 수 있는데, 각각 수평과 수직 방향으로 2, 4분할되는 후보를 포함한다. 이는 특정 방향의 분할이 많이 발생할 것이라 예측되는 블록 형태를 후보군으로 구성하는 예일 수 있다.
또는, {a, o, p} 또는 {a, n, q}와 같은 후보군을 구성할 수 있는데, 분할 전 블록보다 더 작은 크기를 갖는 분할이 많이 발생할 것이라 예측되는 블록 형태를 후보군으로 구성하는 예일 수 있다.
또는, {a, r, s}와 같은 후보군을 구성할 수 있는데, 분할 전 블록에서 다른 방식(트리 방식)을 통해 직사각 형태로 얻을 수 있는 최적의 분할 결과를 얻었을 것이라 판단하고 비사각 형태의 분할 형태를 후보군으로 구성하는 예일 수 있다.
상기 예와 같이 다양한 후보군 구성이 가능할 수 있으며, 하나 이상의 후보군 구성이 다양한 부/복호화 요소를 고려하여 지원될 수 있다.
상기 후보군 구성이 완료되면 다양한 분할 정보 구성이 가능할 수 있다.
예를 들어, 분할되지 않는 후보(a)와 분할되는 후보(b 내지 s)를 포함하여 구성되는 후보군에서 인덱스 선택 정보가 발생할 수 있다.
또는, 분할 여부를 나타내는 정보(분할 형태가 a인지 아닌지)가 발생할 수 있고, 분할이 수행되는 경우(a가 아닌 경우)에 분할되는 후보(b 내지 s)로 구성되는 후보군에서 인덱스 선택 정보가 발생할 수 있다.
상기 설명 외의 다양한 방식의 분할 정보 구성이 가능할 수 있으며, 상기 분할 여부를 나타내는 정보를 제외하고는 후보군에서 각 후보의 인덱스에 고정 길이 이진화, 가변 길이 이진화 등의 다양한 방법을 통해 이진 비트가 할당될 수 있다. 만약 후보군의 개수가 2개인 경우 인덱스 선택 정보에 1비트가 할당될 수 있고, 3개 이상인 경우 인덱스 선택 정보에 1비트 이상이 할당될 수 있다.
트리 기반의 분할 방식과 달리 인덱스 기반의 분할 방식은 많이 발생할 것이라 예측되는 분할 형태를 선별적으로 후보군에 구성하는 방식일 수 있다.
그리고 지원되는 후보군의 개수에 따라 인덱스 정보를 표현하기 위한 비트량이 증가할 수 있기 때문에, 트리 기반의 방식의 계층적 분할(재귀적인 분할)이 아닌 단일 계층 분할(예를 들어, 분할 깊이가 0으로 한정)에 적합한 방식일 수 있다. 즉, 한 번의 분할 동작을 지원하는 방식일 수 있으며, 인덱스 기반의 분할을 통해 획득된 서브 블록은 더 이상의 추가 분할은 불가능한 방식일 수 있다.
이때, 더 작은 크기를 갖는 동일한 종류의 블록으로의 추가 분할이 불가능한 경우(예를 들어, 인덱스 분할 방식을 통해 획득된 부호화 블록은 부호화 블록으로의 추가 분할이 불가)를 의미할 수 있으나, 다른 종류의 블록으로의 추가 분할이 불가능한 설정(예를 들어, 부호화 블록에서 부호화 블록뿐만 아니라 예측 블록으로의 분할도 불가) 또한 가능할 수 있다. 물론, 상기 예에 제한되지 않으며, 다른 변형의 예가 가능할 수도 있다.
다음은 부/복호화 요소 중 블록의 종류를 중심으로 블록 분할 설정이 정해지는 경우를 살펴본다.
우선, 분할 과정을 통해 부호화 블록이 획득될 수 있다. 여기서, 분할 과정은 트리 기반의 분할 방식이 사용될 수 있고, 트리 종류에 따라 도 4의 a(no split), n(QT), b, c(BT), i, l(TT) 등의 분할 형태 결과가 나올 수 있다. 부/복호화 설정에 따라 QT/QT+BT/QT+BT+TT 등과 같은 각 트리 종류의 다양한 조합이 가능할 수 있다.
후술하는 예는 상기 과정을 통해 획득된 부호화 블록을 기초로 예측 블록과 변환 블록이 최종 구획되는 과정을 나타내고, 각 구획된 크기에 기반하여 예측과 변환 및 역변환 과정이 수행되는 경우를 가정한다.
일 예(1)로, 부호화 블록의 크기 그대로 예측 블록이 설정되어 예측 과정을 수행할 수 있고, 부호화 블록(또는 예측 블록)의 크기 그대로 변환 블록이 설정되어 변환 및 역변환 과정을 수행할 수 있다. 예측 블록과 변환 블록의 경우 부호화 블록에 기반하여 설정되었기 때문에 따로 발생하는 분할 정보는 존재하지 않는다.
일 예(2)로, 부호화 블록의 크기 그대로 예측 블록이 설정되어 예측 과정을 수행할 수 있다. 변환 블록의 경우 부호화 블록(또는 예측 블록)을 기초로 분할 과정을 통해 변환 블록이 획득될 수 있고, 획득된 크기에 기반하여 변환 및 역변환 과정을 수행할 수 있다.
여기서, 분할 과정은 트리 기반의 분할 방식이 사용될 수 있고, 트리 종류에 따라 도 4의 a(no split), b, c(BT), i, l(TT), n(QT) 등의 분할 형태 결과가 나올 수 있다. 부/복호화 설정에 따라 QT/BT/QT+BT/QT+BT+TT 등과 같은 각 트리 종류의 다양한 조합이 가능할 수 있다.
여기서, 분할 과정은 인덱스 기반의 분할 방식이 사용될 수 있고, 인덱스 종류에 따라 도 4의 a(no split), b, c, d 등의 분할 형태 결과가 나올 수 있다. 부/복호화 설정에 따라 {a, b, c}, {a, b, c, d} 등과 같은 다양한 후보군 구성이 가능할 수 있다.
일 예(3)로, 예측 블록의 경우 부호화 블록을 기초로 분할 과정을 수행하여 예측 블록이 획득될 수 있고, 획득된 크기에 기반하여 예측 과정을 수행할 수 있다. 변환 블록의 경우 부호화 블록의 크기 그대로 설정되어 변환 및 역변환 과정을 수행할 수 있다. 본 예는 예측 블록과 변환 블록이 서로 독립적인 관계를 갖는 경우에 해당할 수 있다.
여기서, 분할 과정은 인덱스 기반의 분할 방식이 사용될 수 있고, 인덱스 종류에 따라 도 4의 a(no split), b 내지 g, n, r, s 등의 분할 형태 결과가 나올 수 있다. 부/복호화 설정에 따라 {a, b, c, n}, {a 내지 g, n}, {a, r, s} 등과 같은 다양한 후보군 구성이 가능할 수 있다.
일 예(4)로, 예측 블록의 경우 부호화 블록을 기초로 분할 과정을 수행하여 예측 블록이 획득될 수 있고, 획득된 크기에 기반하여 예측 과정을 수행할 수 있다. 변환 블록의 경우 예측 블록의 크기 그대로 설정되어 변환 및 역변환 과정을 수행할 수 있다. 본 예는 획득된 예측 블록 크기 그대로 변환 블록이 설정되는 경우일 수 있거나 또는 그 반대의 경우(변환 블록 크기 그대로 예측 블록이 설정)일 수 있다.
여기서, 분할 과정은 트리 기반의 분할 방식이 사용될 수 있고, 트리 종류에 따라 도 4의 a(no split), b, c(BT), n(QT) 등의 분할 형태가 나올 수 있다. 부/복호화 설정에 따라 QT/BT/QT+BT 등과 같은 각 트리 종류의 다양한 조합이 가능할 수 있다.
여기서, 분할 과정은 인덱스 기반의 분할 방식이 사용될 수 있고, 인덱스 종류에 따라 도 4의 a(no split), b, c, n, o, p 등의 분할 형태가 나올 수 있다. 부/복호화 설정에 따라 {a, b}, {a, c}, {a, n}, {a, o}, {a, p}, {a, b, c}, {a, o, p}, {a, b, c, n}, {a, b, c, n, p} 등과 같은 다양한 후보군 구성이 가능할 수 있다. 또한, 인덱스 기반의 분할 방식 중 VSI 방식이 단독으로 또는 상기 CSI 방식과 혼합되어 후보군이 구성될 수도 있다.
일 예(5)로, 예측 블록의 경우 부호화 블록을 기초로 분할 과정을 수행하여 예측 블록이 획득될 수 있고, 획득된 크기에 기반하여 예측 과정을 수행할 수 있다. 또한, 변환 블록의 경우도 부호화 블록을 기초로 분할 과정을 수행하여 예측 블록이 획득될 수 있고, 획득된 크기에 기반하여 변환 및 역변환 과정을 수행할 수 있다. 본 예는 부호화 블록을 기초로 예측 블록과 변환 블록 각각의 분할을 수행하는 경우일 수 있다.
여기서, 분할 과정은 트리 기반의 분할 방식과 인덱스 기반의 분할 방식이 사용될 수 있으며, 4번 예와 동일하거나 비슷하게 후보군이 구성될 수 있다.
상기 예는 각 종류의 블록의 분할 과정이 공유되는지 여부 등에 따라 발생 가능한 일부 경우를 설명하고 있지만, 이에 한정되지 않고 다양한 변형의 예가 가능할 수 있다. 또한, 블록의 종류뿐만 아니라 다양한 부/복호화 요소가 고려되어 블록 분할 설정이 정해질 수 있다.
이때, 부/복호화 요소는 영상 타입(I/P/B), 컬러 성분(YCbCr), 블록의 크기/형태/위치, 블록의 가로/세로 길이 비, 블록의 종류(부호화 블록, 예측 블록, 변환 블록, 양자화 블록 등), 분할 상태, 부호화 모드(Intra/Inter), 예측 관련 정보(화면내 예측 모드, 화면간 예측 모드 등), 변환 관련 정보(변환 기법 선택 정보 등), 양자화 관련 정보(양자화 영역 선택 정보, 양쟈화된 변환 계수 부호화 정보 등) 등이 포함될 수 있다.
(블록 간의 관계에 관한 설명)
도 5는 한 집안의 구성원과 그 혈연관계에 있는 인물들의 유전적 특성을 설명하기 위한 가계도의 일 예를 나타낸다. 설명의 편의를 위해 특정 성별(남)에 따른 수평적 및 수직적인 관계를 나타내기로 한다.
도 5를 참조하면, 대상 인물(본인)은 형, 제(동생)과 함께 수평적인 관계(a)를 가질 수 있고, 조부(할아버지), 부(아버지. 이상 조상), 자(아들), 손자(이상 후손)와 함께 수직적인 관계(b)를 가질 수 있다. 이때, 수평적인 관계에 놓인 인물들은 외모, 체격, 성격 등의 유전적인 요인이 유사한 경우가 존재할 수 있다. 또는, 일부 요소에는 유사하고 일부 요소에는 유사하지 않는 경우가 존재할 수 있다. 위와 같은 유전적인 요소의 전부 또는 일부의 유사성 여부는 다양한 환경 요인(어머니 포함) 등에 의해 결정될 수 있다.
상기 설명은 수직적인 관계에도 동일하거나 비슷한 적용이 가능할 수 있다. 예를 들어, 대상 인물의 유전적인 요소(외모, 체격, 성격)가 아버지와 유사한 경우가 존재할 수 있다. 또는, 대상 인물의 일부 유전적인 요소(외모, 체격)는 아버지와 유사하지만, 일부 유전적인 요소(성격)는 (어머니와 유사하고) 아버지와 유사하지 않을 수 있다.
다른 예로, 대상 인물은 할아버지(또는 손자)와 유전적으로 유사하고 할아버지는 손자와 유전적으로 유사할 수 있으나, 각 인물 간의 유사성 정도는 각 인물 간의 관계에 기반하여 결정될 수도 있다. 즉, 할아버지와 대상 인물 간의 유사성(2대 차이)은 높을 수 있고, 할아버지와 손자 간의 유사성(4대 차이)은 낮을 수 있다.
일반적으로 대상 인물의 특성 파악을 위해서는 직접적인 분석이 최우선일 수 있으나, 대상 인물의 부재가 발생하는 경우에는 직접적인 분석이 불가능하다. 이때, 상기 예와 같은 다양한 관계에 놓인 인물들의 간접적인 분석을 통해 대상 인물에 대한 특성에 대한 대략적인 파악이 가능할 수 있다. 물론, 대상 인물과 유사성이 높은 인물들에 대한 분석이 요구될 수 있다.
상기 예를 통해 다양한 혈연관계에 기반한 인물 간의 관계에 대해 설명하였는데, 이는 영상 압축을 위한 부호화에도 동일하거나 비슷한 적용이 가능할 수 있다. 여기서, 블록 기반의 부호화를 그 예로 들 것이다. 소정의 블록(대상 블록)의 부호화를 위해 대상 블록과 다양한 관계에 놓인 블록(상대 블록. Relative Block)의 정보를 사용/참조/참고할 수 있다.
여기서, 상대 블록의 정보는 화소값에 기반한 데이터일 수 있고, 부호화 과정에 사용되는 모드 정보에 기반한 데이터일 수 있고, 부호화 과정에 사용되는 설정 정보에 기반한 데이터일 수 있다. 예를 들어, 상대 블록의 공간 영역에서의 화소값 또는 주파수 영역에서의 계수값(또는 양자화된 계수)일 수 있다. 또는, 상대 블록의 부호화 과정에서 발생하는 모드 정보일 수 있다. 또는, 상대 블록의 부호화 과정에서 사용된 참조 설정에 관한 정보(참조 후보군 등)일 수 있다. 여기서, 화소값에 기반한 데이터 또는 모드 정보에 기반한 데이터가 참조 설정을 구성하는 정보일 수 있다.
본 발명에서 블록 간의 관계(대상 블록과 상대 블록. 대상 블록을 중심으로 설명)를 다음과 같이 정의할 수 있다.
- 수평적인 관계: 대상 블록은 상대 블록과 중복되는 영역이 존재하지 않은 경우(블록 간의 독립적인 관계)
- 수직적인 관계: 대상 블록은 상대 블록보다 크고 상대 블록을 포함하는 경우. 또는, 상대 블록보다 작으며 상대 블록에 포함되는 경우(블록 간의 종속적인 관계)
여기서, 수평적인 관계를 갖는 경우 상대 블록은 대상 블록이 속한 공간에 관계없이 위치할 수 있다. 즉, 상대 블록은 대상 블록과 시간적으로 동일한 공간에 속할 수 있고, 대상 블록과 시간적으로 다른 공간에 속할 수도 있다.
여기서, 수직적인 관계를 갖는 경우 상대 블록은 대상 블록이 속한 공간에 위치할 수 있다. 즉, 상대 블록은 대상 블록과 시간적으로 다른 공간에 속하지 않으나, 부호화 설정에 따라 시간적으로 다른 공간 내에서 대상 블록과 대응되는 영역에 기반하여 수직적인 관계를 갖는 상대 블록의 개념이 지원되는 경우 또한 가능할 수 있다.
도 6은 대상 블록과 수평적인 관계인 상대 블록의 다양한 배치 예를 나타낸다. 도 6을 참조하면, 대상 블록과 수평적인 관계에 놓인 블록은 시간적으로 동일한 공간(Curr)과 동일하지 않는 공간(Diff)에 속하는 블록으로 분류할 수 있다.
여기서, 상대 블록이 대상 블록(X)과 다른 컬러 성분에 속하더라도 시간적으로 동일한 공간에 속하는 것으로 간주하되, 수평적인 관계에 대한 일부 정의의 변경이 발생함(대상 블록과 동일한 크기, 위치를 갖는 상대 블록이 존재)을 이해하여야 한다. 여기서, 동일한 공간에 속하는 블록은 대상 블록과 인접한 (또는 최인접한) 블록(UL, U, UR, L, DL)과 인접하지 않은 (또는 멀리 인접한) 블록(F0, F1, F2)으로 분류할 수 있다.
동일한 공간에 속하는 블록 중 대상 블록과 인접한 블록은 좌, 상, 좌상, 우상, 좌하 방향 등에 최인접한 블록일 수 있으며, 이는 래스터 스캔(또는 Z-스캔. 2 x 2 기준으로 좌상 -> 우상 -> 좌하 -> 우하) 순서를 고려하여 이미 부호화가 완료된 블록을 대상으로 할 수 있다. 즉, 소정의 스캔 순서에 따라 인접한 블록의 위치가 결정될 수 있으며, 스캔 순서의 종류(inverse Z scan<우하 -> 좌하 -> 우상 -> 좌상>, clock-wise scan<좌상 -> 우상 -> 우하 -> 좌하>, counter clock-wise scan<좌상 -> 좌하 -> 우하 -> 우상> 등)에 따라 상기 위치의 블록 제거 또는 새로운 위치(우, 하, 우하 방향 등)의 블록 추가 등의 변경이 발생할 수도 있다.
또한, 대상 블록과 인접하지 않은 블록은 이미 부호화가 완료된 블록을 대상으로 할 수 있다. 이때, 대상 블록과 동일한 블록 단위(최대 부호화 블록 등)에 속할 수도 있고, 동일한 분할 단위(슬라이스, 타일 등)에 속할 수도 있다. 즉, 인접하지 않지만 상대 블록으로 포함될 수 있는 영역에 대한 범위(대상 블록 기준으로 수평, 수직 방향으로 x_offset, y_offset의 범위 내에 존재)를 두는 등의 제한적인 설정이 지원될 수도 있다. 본 발명에서 대상 블록과 수평적인 관계인 블록은 이미 부호화가 완료된 경우를 가정하지만, 이에 한정하지 않는다.
대상 블록의 부호화를 위해 수평적인 관계에 있는 상대 블록의 부호화 정보/참조 설정 등을 사용(참고)할 수 있다.
일 예로, 대상 블록의 예측값 생성을 위해 상대 블록의 화소값이 사용될 수 있다. 상세하게는, 화면내 예측에서 상대 블록의 화소값을 외삽, 내삽, 평균 등의 방법 또는 블록 매칭, 템플릿 매칭 등의 방법을 적용하여 대상 블록의 예측값을 획득할 수 있다. 또한, 화면간 예측에서 상대 블록의 화소값을 블록 매칭, 템플릿 매칭 등의 방법을 사용하여 대상 블록의 예측값을 획득할 수 있다. 이때, 블록 매칭 또는 템플릿 매칭은 동일한 공간에서 예측값을 찾는다는 측면에서 화면내 예측(Mode_Intra)으로 정의될 수 있거나 예측 방법에 따라 화면간 예측(Mode_Inter)으로 정의할 수 있으며, 추가 정의되는 다른 부호화 모드로 분류될 수도 있다.
여기서, 공간 영역에서의 화소값만을 대상으로 하였으나, 상대 블록의 주파수 영역에서의 계수값 중 전부 또는 일부를 대상 블록의 예측값(즉, 주파수 성분에 대한 예측에 사용)으로 사용할 수도 있다.
일 예로, 대상 블록의 모드 정보 부호화를 위해 상대 블록의 모드 정보가 사용될 수 있다. 상세하게는, 화면내 예측에서 상대 블록의 예측 정보(방향성 모드, 비방향성 모드, 움직임 벡터 등)가 대상 블록의 예측 정보의 부호화(MPM, non-MPM 등)에 사용될 수 있다. 또한, 화면간 예측에서 상대 블록의 예측 정보(움직임 벡터, 참조 픽쳐 등)가 대상 블록의 예측 정보의 부호화에 사용될 수 있다.
여기서, 화면내 예측의 예측 방법에 따라 대상 블록과 시간적으로 동일한 공간 및 동일한 컬러 성분에 속하는 상대 블록을 대상(외삽, 내삽, 평균 등을 사용하는 예측 모드)으로 할뿐만 아니라, 대상 블록과 시간적으로 동일한 공간 및 다른 컬러 성분에 속하는 상대 블록을 대상(다른 컬러 성분의 데이터를 복사하는 예측 모드)으로 할 수도 있다.
여기서, 화면간 예측의 경우 예측 정보에 대한 예시로 움직임 벡터, 참조 픽쳐를 대상으로 하였으나, 움직임 정보 부호화 모드, 움직임 예측 방향, 움직임 모델 등의 다양한 정보를 포함할 수 있다.
일 예로, 대상 블록의 참조 설정을 위해 상대 블록의 참조 설정을 사용할 수 있다. 상세하게는, 화면내 예측에서 상대 블록의 MPM 후보군을 대상 블록의 MPM 후보군으로 사용할 수 있다. 또한, 화면간 예측에서 상대 블록의 움직임 예측 후보군을 대상 블록의 움직임 예측 후보군으로 사용할 수 있다. 즉, 상기 후보군을 상대 블록에 기반하여 구성하였다 할지라도 대상 블록에서 따로 후보군 구성을 통하지 않고 상대 블록의 후보군을 그대로 사용할 수 있음을 의미한다.
상기 예를 통해 상대 블록은 대상 블록과 수평적인 관계를 갖는 하나의 블록임을 가정하여 설명하였지만 영상 내에 수많은 상대 블록이 존재할 수 있으며, 대상 블록의 부호화에 사용하기 위한 하나 이상의 상대 블록을 특정해야 한다. 다음의 case 구분은 하나의 예시일 뿐, 이에 한정되지 않고 다양한 case 구성 및 정의가 가능함을 이해할 필요가 있다.
여기서, 동일한 공간에 속하고 대상 블록에 인접한 블록을 상대 블록으로 특정할 수 있다(case 1). 또는, 동일한 공간에 속하고 대상 블록에 인접하지 않은 블록을 상대 블록으로 특정할 수 있다(case 2). 또는, 동일하지 않는 공간에 속하는 블록을 상대 블록으로 특정할 수 있다(case 3). 또는, (case 1) ~ (case 3)의 전부 또는 일부에 속하는 블록을 상대 블록으로 특정할 수 있다.
여기서, (case 1)의 경우 대상 블록과 인접한 좌, 상, 좌상, 우상 좌하 블록(L, U, UL, UR, DL)의 전부 또는 일부를 상대 블록으로 특정할 수 있다. (case 2)의 경우 대상 블록과 인접하지 않은 블록 중 하나 이상을 상대 블록으로 특정할 수 있다. (case 3)의 경우 대상 블록과 인접한 중앙, 좌, 우, 상, 하, 좌상, 우상, 좌하, 우하 블록(C, L, R, U, D, UL, UR, DL, DR)의 전부 또는 일부, 그리고 대상 블록과 인접하지 않는 블록 중 하나 이상을 상대 블록으로 특정할 수 있다.
상대 블록으로 특정하기 위해서는 다양한 확인 방법이 존재하는데, 우선 대상 블록을 기준으로 소정의 위치의 좌표를 포함하는 블록을 상대 블록으로 특정할 수 있다. 우선, 대상 블록(m x n)은 (a, b)의 좌상측 좌표를 기준으로 (a + m - 1, b + n - 1)의 범위를 갖는다 가정한다.
(case 1 or case 3) C 블록은 대상 블록과 각 픽쳐 내 위치가 동일한 경우를 가정하여 설명한다. 그러므로 동일한 영상(Curr)과 동일하지 않는 영상(Diff)에서 동일한 알파벳을 갖는 블록에 대한 설명이 공통될 수 있다. 단, (case 3의 경우) C 블록의 위치가 대상 블록과 픽쳐 내 위치가 동일하지 않는 경우 또한 가능하며, 후술하는 예(즉, Diff에 속하는 블록)는 C 블록의 위치에 따라 화소 위치가 변경될 수 있음을 이해하여야 한다.
C 블록은 (a, b), (a, b + n - 1), (a + m - 1, b), (a + m - 1, b + n - 1), (a + m/2 - 1, b + n/2 - 1), (a + m/2 + 1, b + n/2 - 1), (a + m/2 - 1, b + n/2 + 1), (a + m/2 + 1, b + n/2 + 1) 등 대상 블록의 내부 화소 중 소정의 위치의 화소를 포함하는 블록을 의미한다. 그리고 L 블록은 (a - 1, b), (a - 1, b + n - 1) 등 대상 블록의 왼쪽 경계 너머에 화소 중 소정의 위치의 화소를 포함하는 블록을 의미하고, U 블록은 (a, b - 1), (a + m - 1, b - 1) 등의 대상 블록의 위쪽 경계 너머에 화소 중 소정의 위치의 화소를 포함하는 블록을 의미한다. 또한, UL 블록은 (a - 1, b - 1) 등 대상 블록의 왼쪽 위 경계 너머에 화소 중 소정의 위치의 화소를 포함하는 블록을 의미하고, UR 블록은 (a + m, b - 1) 등 대상 블록의 오른쪽 위 경계 너머에 화소 중 소정의 위치의 화소를 포함하는 블록을 의미하며, DL 블록은 (a - 1, b + n) 등 대상 블록의 왼쪽 아래 경계 너머에 화소 중 소정의 위치의 화소를 포함하는 블록을 의미한다. 우, 하, 우하 방향의 경우 상기 설명에서 유도 가능하므로 생략한다.
상기 설명에서 각 방향의 블록에 존재하는 화소 중 하나의 위치의 화소를 포함하는 블록을 상대 블록으로 특정하는 예를 들었으나, 전부 또는 일부 방향에서 둘 이상의 상대 블록을 특정할 수도 있으며 이를 위한 둘 이상의 화소 위치가 정의될 수도 있다.
(case 2) Fk 블록(k는 0 ~ 2)은 (a - off_x, b), (a, b - off_y), (a - off_x, b - off_y) 등과 같이 수평/수직/대각선 등의 소정의 방향으로 소정의 길이(off_x, off_y 등)만큼 떨어진 화소를 포함하는 블록을 의미할 수 있다. 여기서, 상기 소정의 길이는 4, 8, 16 등과 같은 1 이상의 정수일 수 있으며, 대상 블록의 가로, 세로 길이에 기반하여 설정될 수도 있다. 또는, 최대 부호화 블록의 가로, 세로 길이에 기반하여 설정될 수도 있으며, 이에 관한 다양한 변형의 예가 가능할 수 있다. 소정의 길이는 상기 예와 같은 묵시적으로 설정될 수 있거나 또는 명시적인 값으로 관련 구문 요소가 발생할 수도 있다.
상대 블록을 특정하는 또 다른 방법으로, 대상 블록의 부호화 정보와 동일성/유사성을 갖는 모드 정보를 갖는 블록을 상대 블록으로 특정할 수 있다. 이때, 모드 정보는 현재 단계에서 부호화(또는, 사용/예측, 후보군 구성 등)를 하고자 하는 정보가 아닌 이미 부호화가 완료되거나 이미 결정된 다른 성질/의미를 갖는 정보를 의미한다. 상기 결정된 정보란 모드 결정 과정에서 이전 단계에서 결정된 정보 또는 복호화 과정에서 이전 단계에서 복원된 정보일 수 있다.
예를 들어, 대상 블록이 이동 외 움직임 모델을 사용하여 화면간 예측을 수행할 때, 이전에 부호화된 블록 중 이동 외 움직임 모델을 사용하여 부호화된 블록을 상대 블록으로 특정할 수 있다. 이때, 특정된 상대 블록의 이동 외 움직임 모델에 따른 움직임 벡터 정보가 대상 블록의 이동 외 움직임 모델에 따른 움직임 벡터 예측을 위한 후보군 구성에 사용될 수 있다.
상기 예에서 움직임 모델 정보가 대상 블록과 동일성/유사성을 확인하기 위해 사용된 다른 성질/의미를 갖는 정보를 의미하고, 상대 블록의 움직임 모델(이동 외 움직임 모델)에 따른 움직임 벡터가 대상 블록의 움직임 모델에 따른 움직임 벡터 예측 후보군 구성에 사용되는 정보일 수 있다. 이때, 상대 블록은 대상 블록에 인접할 수 있거나 인접하지 않을 수 있다. 대상 블록과 동일성/유사성을 갖는 모드가 적게 발생하는 경우에 대상 블록과 인접하지 않는 영역의 블록도 상대 블록으로 특정하여 사용/참조하고자 할 때 유용할 수 있다.
대상 블록의 부호화를 위해 사용/참조되는 상대 블록은 다음과 같은 사항을 고려하여 결정될 수 있다.
대상 블록의 부호화에 사용/참조하고자 하는 정보에 기반하여 상대 블록이 정해질 수 있다. 여기서, 대상 블록의 부호화에 사용/참조하고자 하는 정보는 예측을 위한 화소값 정보와 예측/변환/양자화/인루프 필터/엔트로피 부호화 등과 관련된 모드 정보, 그리고 예측/변환/양자화/인루프 필터/엔트로피 부호화 등에 관련된 참조 후보군 정보가 그 대상이 될 수 있다.
또한, 대상 블록의 상태 정보, 대상 블록이 속한 영상 정보 등에 기반하여 상대 블록이 결정될 수 있다. 여기서, 대상 블록의 상태 정보는 블록의 크기, 형태, 가로/세로 길이 비, 픽쳐/분할 단위(슬라이스, 타일 등)/최대 부호화 블록 등의 단위에서의 위치 등에 기반하여 정의될 수 있다. 여기서, 대상 블록이 속한 영상 정보는 영상 타입(I/P/B), 컬러 성분(Y/Cb/Cr) 등에 기반하여 정의될 수 있다.
또한, 대상 블록의 부호화 정보에 기반하여 상대 블록이 결정될 수 있다. 상세하게는, 대상 블록과 동일성/유사성이 존재하는 정보를 갖고 있는지에 기반하여 상대 블록이 결정될 수도 있다. 여기서, 동일성/유사성 확인을 위해 참조되는 정보는 예측/변환/양자화/인루프 필터/엔트로피 부호화 등과 관련된 모드 정보가 그 대상이 될 수 있다.
상기 예에서 언급된 전부 또는 일부 요소를 고려하여 상대 블록의 카테고리(전술한 case), 개수, 위치 등이 결정될 수 있다. 상세하게는, 어떤 카테고리가 선택되는지 결정될 수 있고, 선택된 카테고리에서 지원되는 상대 블록의 개수 및 위치가 결정될 수 있다. 이때, 각 카테고리에서 지원되는 블록의 개수는 m, n, o개 일 수 있으며, 이들은 0, 1, 2, 3, 5 등과 같은 0 이상의 정수일 수 있다.
상대 블록(블록 위치)은 대상 블록(또는 대상 블록이 속한 영상과 시간적으로 다른 영상에서 대상 블록과 대응되는 블록)을 중심으로 좌, 우, 상, 하, 좌상, 우상, 좌하, 우하, 중앙 등의 방향에서 정해질 수 있다. 예를 들어, 상기 방향으로 최인접한 블록에서 상대 블록이 정해질 수 있다. 또는, 상기 방향과 일정 범위/조건을 추가로 만족하는 블록 중에 상대 블록이 정해질 수 있다. 대상 블록이 속한 최대 부호화 블록과 다른 최대 부호화 블록에 속하거나 대상 블록의 가로, 세로 길이에 기반한 차이를 갖는 위치의 블록(예로, 좌, 상, 좌상 방향)일 수 있다.
또한, 상대 블록은 부호화 순서에 기반하여 정해질 수 있으며, 이때 부호화 순서는 래스터 스캔, z-스캔 등의 다양한 스캔 방식에 의해 정의될 수 있다. 일 예로, (부호화 순서가 가까운 것을 기준) 소정의 개수만큼의 블록을 상대 블록으로 포함할 수 있으며, 이때 소정의 개수는 0, 1, 2, 3 등과 같은 0 이상의 정수일 수 있다. 즉, 부호화 순서에 따라 FIFO(First-in, First-out) 등과 같은 메모리 관리 방식으로 상대 블록이 관리될 수 있으며, (case 2)에 발생 가능한 상대 블록을 결정(후보군에 포함하기 위한 결정)하는 예일 수 있다.
상대 블록이 하나가 지원되는 경우는 해당 블록의 정보만을 사용/참조할 수 있다는 것을 의미할 수 있다. 또한, 상대 블록이 복수 개가 지원되더라도 부호화 설정에 따라 복수 개의 상대 블록에 기반하여 하나의 정보가 유도될 수 있다. 일 예로, 화면간 예측에서 움직임 벡터 예측을 위해 좌, 상, 우상 블록과 같은 3개의 상대 블록이 특정되어 3개의 움직임 벡터가 지원될 수 있으나, 부호화 설정에 따라 3개 블록의 움직임 벡터의 중앙값(또는 평균) 등의 방법을 통해 하나의 움직임 벡터가 유도되어 대상 블록의 움직임 벡터 예측값으로 사용될 수도 있다.
상기 예의 경우 2개 이상의 후보를 지원함으로써 발생하는 최적의 후보 선택 정보 등이 발생하는 것을 줄일 수 있는 부호화 설정일 수 있으나, 대상 블록의 부호화 정보와 높은 상관성을 가진 하나의 후보가 유도되는 것을 기대하기는 어려울 수 있다. 그렇기 때문에 복수의 후보로 후보군을 구성하는 방법이 더 효율적일 수 있다. 물론, 후보군에 포함된 후보의 개수가 증가할수록 이를 표현하기 위한 정보량이 증가할 수도 있기 때문에, 효율적인 후보군을 구성하는 것이 중요하다.
그래서 전술한 다양한 예와 같은 상대 블록이 지원될 수 있으나, 일반적인 영상 특성 등을 고려하여 최적의 상대 블록을 특정하고 그에 기반하여 후보군을 구성하는 것이 필요할 수 있다. 본 발명에서는 하나 이상의 상대 블록에서 둘 이상의 정보를 통해 후보를 구성하는 경우를 가정하여 설명한다.
다음은 대상 블록과 수평적인 관계를 갖는 블록에 기반한 후보군 구성 및 부호화/복호화 과정을 나타낸다.
대상 블록의 부호화 정보를 위해 참조되는 블록을 특정한다(1). 특정된 블록의 부호화 정보를 소정의 순서에 따라 후보군을 구성한다(2). 대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택한다(3). 선택된 후보에 기반하여 영상 부호화/복호화 과정을 수행한다(4).
(1)에서는 대상 블록의 부호화 정보에 관한 후보군 구성을 위해 사용되는 상대 블록을 특정한다. 이때, 상대 블록은 대상 블록과 수평적인 관계를 갖는 블록일 수 있다. 전술한 것과 같은 다양한 카테고리의 상대 블록이 포함될 수 있으며, 대상 블록의 부호화 정보 외에 대상 블록의 상태 정보 등의 다양한 정보를 고려하여 상대 블록을 특정할 수 있음을 이미 전술하였다.
(2)에서는 상기 과정을 통해 특정되는 상대 블록의 부호화 정보를 소정의 순서에 따라 후보군을 구성한다. 여기서, 하나의 상대 블록의 부호화 정보에 기반하여 획득된 정보가 후보군에 포함될 수 있고, 복수의 상대 블록의 부호화 정보에 기반하여 획득된 정보가 후보군에 포함될 수도 있다. 이때, 후보군 구성 순서는 고정적인 순서가 지원될 수 있거나 또는 다양한 부호화 요소(상대 블록을 특정할 때 고려하는 요소 등)에 기반한 적응적인 순서가 지원될 수도 있다.
(3)에서는 대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택하며, (4)에서는 이에 기반하여 영상 부호화/복호화 과정을 수행할 수 있다.
상기 순서도는 블록 단위에서 확인 및 수행되는 과정일 수 있다. 여기서, 일부 순서(1, 2)의 경우 부호화 초기 단계에서 확인 및 수행되는 과정일 수도 있다. 상기 (1) 내지 (4)에서 언급되지 않은 내용이라 할지라도 전술한 다양한 실시예를 통해 유도 가능하므로, 이에 대한 상세한 설명은 생략한다. 일반적으로 수평적인 관계를 갖는 블록 중 어떤 블록이 대상 블록과의 높은 상관성을 갖는지 미리 확인하기에는 어려운 점이 존재한다. 수평적인 관계를 갖는 블록 중 대상 블록과 어떤 상관성을 갖는지를 미리 확인할 수 있는 방법에 관하여 후술한다. 또한, (3)에서 후보군 중 하나의 정보가 선택되는 경우를 설명하고 있으나, 부호화 정보의 종류, 부호화 설정 등에 따라 둘 이상의 정보가 선택되는 경우 또한 가능할 수 있으며, 이는 본 발명의 공통으로 적용 가능한 설명일 수 있다.
대상 블록과 상대 블록은 부호화/예측/변환/양자화/인루프 필터 등의 단위 중에 하나일 수 있으며, 대상 블록과 상대 블록은 동일한 단위로 설정될 수 있다. 예를 들어, 대상 블록이 부호화 블록일 경우 상대 블록 또한 부호화 블록일 수 있으며, 부호화 설정에 따라 다른 단위로 설정되는 변형 또한 가능할 수 있다.
도 7은 대상 블록과 수직적인 관계인 상대 블록의 다양한 배치 예를 나타낸다.
도 7은 재귀적인 트리 기반의 분할(QT)이 수행되는 경우이며, X와 A 내지 C 블록을 중심으로 설명한다. 분할 깊이가 0인 기본 부호화 블록(CTU. C 블록)에서 시작하여 분할 깊이가 증가함에 따라 B(1), X(2), A(3) 블록이 획득될 수 있다. 여기서 대상 블록과 수직적인 관계에 놓인 블록은 상위 블록(또는 조상 블록)과 하위 블록(또는 후손 블록)으로 분류할 수 있다. 이때, 대상 블록(X)의 상위 블록은 B, C 블록일 수 있고, 하위 블록은 A 블록일 수 있다. 여기서, 대상 블록과 상대 블록은 각각 상위 블록과 하위 블록으로 설정될 수 있거나 또는 각각 하위 블록과 상위 블록으로 설정될 수 있다.
예를 들어, 본 예에서는 대상 블록의 분할 깊이(k)를 기준으로 더 큰 값을 갖는 경우 상대 블록은 자(k+1), 손자(k+2) 블록일 수 있고, 더 작은 값을 갖는 경우 상대 블록은 부(k-1), 조부(k-2) 블록일 수 있다. 즉, 기존의 블록 간의 수직적인 관계를 정의하는 것에 추가로 상기 분할 깊이 등을 통해 블록 간의 세부적인 관계를 확인할 수 있다.
여기서, 상기 예와 같이 하나의 트리 방식이 지원되어 공통된 분할 깊이를 통한 비교가 가능할 수 있지만, 복수의 트리 방식이 지원되어 각 트리 방식에 따른 하나 이상의 분할 깊이가 지원되는 경우 상기 예와 같은 단순 분류가 아닌 분할 횟수, 각 분할 깊이 등을 고려하여 세부적인 관계를 확인할 수 있다.
예를 들어, 4M x 4N인 블록에서 QT가 1번이 수행되는 경우 2M x 2N 블록이 (QT) 분할 깊이 1에서 획득될 수 있지만, BT는 2번 수행되는 경우 2M x 2N 블록이 획득될 수 있지만, (BT) 분할 깊이는 2에서 획득될 수 있는 것과 같다. 이때, 4M x 4N 블록은 2M x 2N 블록 기준으로 부(QT) 또는 조부(BT) 블록일 수 있고, 반대로 자(QT) 또는 손자(BT) 블록일 수 있으며, 이는 블록 분할 결과에 기반하여 세부적인 관계가 정해질 수 있다.
상기 예의 경우 분할의 시작 단위가 최대 부호화 단위(최고 조상 블록, 블록이 가질 수 있는 최대 크기. 여기서는 부호화 단위 또는 블록임을 가정하지만 블록이 예측, 변환 등의 단위일 경우에는 최대 예측 블록, 최대 변환 블록 등으로 이해할 수도 있음)로 최대 부호화 단위를 벗어나는 수직적인 관계를 갖는 경우가 불가능한 제한이 발생하지만, 최대 부호화 단위와 같은 블록 분할 설정과 별개로 부호화 설정에 따라 수직적인 관계를 갖는 블록 구역을 자유롭게 지정할 수 있다. 본 발명에서는 최대 부호화 단위를 벗어나지 않는 수직적인 관계에 관한 경우를 가정한다. 또한, 트리 기반의 분할 방식을 중심으로 블록 간의 관계를 후술할 것이지만, 인덱스 기반의 분할 방식에도 동일하거나 비슷한 적용이 가능할 수 있음을 미리 언급한다.
대상 블록의 부호화를 위해 수직적인 관계에 있는 상대 블록의 부호화 정보/참조 설정 등을 사용할 수 있다. 설명의 편의를 위해 대상 블록은 상대 블록의 하위 블록인 경우를 가정한다. 이때, 상위 블록은 부호화, 예측, 변환 등을 수행하는 독립적인 단위가 아니며, 복수의 하위 블록들로 인해 구성되는 임시 단위일 수 있다. 즉, 부호화를 수행하는 독립적인 단위(즉, 더 이상 분할이 수행되지 않는 부호화/예측/변환 블록 등)를 획득하기 위한 블록 분할 과정의 시작 단위 또는 중간 단위임을 이해할 필요가 있다.
일 예로, 대상 블록의 예측값 생성을 위해 상대 블록의 참조 화소가 사용될 수 있다. 상세하게는, 화면내 예측에서 상대 블록의 참조 화소를 외삽, 내삽, 평균 등의 방법 또는 템플릿 매칭 등의 방법을 적용하여 대상 블록의 예측값을 획득할 수 있다. 또한, 화면간 예측에서 상대 블록의 참조 화소를 템플릿 매칭 등의 방법을 사용하여 대상 블록의 예측값을 획득할 수 있다.
여기서, 상대 블록의 참조 화소란 상대 블록 내에 위치하는 화소가 아니며, 상대 블록이 화면내 예측/화면간 예측을 수행하는 단위임을 가정하여 획득된 화소를 의미한다. 즉, 상대 블록(상위 블록)에 수평적인 관계에 위치한 블록(예로, 좌, 상, 좌상, 우상, 좌하 방향에 최인접)의 화소를 대상 블록(하위 블록)의 화면내 예측/화면간 예측에 사용함을 의미한다.
일 예로, 대상 블록의 참조 설정을 위해 상대 블록의 참조 설정을 사용할 수 있다. 상세하게는, 화면내 예측에서 상대 블록의 MPM 후보군을 대상 블록의 MPM 후보군으로 사용할 수 있다. 또한, 화면간 예측에서 상대 블록의 움직임 예측 후보군을 대상 블록의 움직임 예측 후보군으로 사용할 수 있다. 즉, 상기 후보군을 상대 블록에 기반하여 구성하였다 할지라도 대상 블록에서 따로 후보군 구성을 통하지 않고 상대 블록의 후보군을 그대로 사용할 수 있음을 의미한다.
상기 예는 대상 블록이 아닌 상대 블록을 중심으로 예측값 및 참조 설정이 정해지는 것이므로, 대상 블록과는 상관성이 떨어지는 정보를 사용하여 부호화를 수행하는 문제점이 발생할 수 있다. 다만, 공간적으로 완전 동떨어진 영역에서 관련 정보가 획득되는 것은 아니기 때문에 어느 정도의 상관성은 존재할 가능성이 높으며, 각 하위 블록 단위로 수행되어야 하는 과정을 상위 블록에서 공통되는 하나의 과정으로 통합하는 것과 동일하여 복잡도가 감소될 수 있다. 또한, 상위 블록에 속한 하위 블록의 병렬 처리가 가능할 수도 있다.
상기 예를 통해 상대 블록은 대상 블록과 수직적인 관계를 갖는 하나의 블록임을 가정하여 설명하였지만 영상 내 수많은 상대 블록이 존재할 수 있으며, 대상 블록의 부호화에 사용하기 위한 하나 이상의 상대 블록을 특정해야 한다.
다음은 수직적인 관계를 갖는 블록이 가질 수 있는 지원 조건/범위에 대한 설명을 나타내며, 후술하는 예에서 언급된 전부 또는 일부 요소에 기초하여 정해질 수 있다.
(case 1) 상위 블록은 소정의 제 1 문턱크기보다 작거나 같을 수 있다. 여기서, 제 1 문턱크기는 상위 블록이 가질 수 있는 최대 크기를 의미할 수 있다. 여기서, 제 1 문턱크기는 너비(W), 높이(H), W x H, W*H 등으로 표현될 수 있으며, W와 H는 8, 16, 32, 64 또는 그 이상의 정수일 수 있다. 여기서, 제 1 문턱크기를 갖는 블록은 최대 부호화 블록, 최대 예측 블록, 최대 변환 블록 등의 크기에 기반하여 설정될 수도 있다.
(case 2) 하위 블록은 소정의 제 2 문턱크기보다 크거나 같을 수 있다. 여기서, 제 2 문턱크기는 하위 블록이 가질 수 있는 최소 크기를 의미할 수 있다. 여기서, 제 2 문턱크기는 너비(W), 높이(H), W x H, W*H 등으로 표현될 수 있으며, W와 H는 4, 8, 16, 32 또는 그 이상의 정수일 수 있다. 단, 제 2 문턱크기는 제 1 문턱크기보다 작거나 같도록 설정될 수 있다. 여기서, 제 2 문턱크기를 갖는 블록은 최소 부호화 블록, 최소 예측 블록, 최소 변환 블록 등의 크기에 기반하여 설정될 수도 있다.
(case 3) 상위 블록의 크기에 기반하여 하위 블록의 최소 크기가 정해질 수 있다. 여기서, 상위 블록의 너비(W), 높이(H)를 기준으로 소정의 나눔값(p) 또는 쉬프트 연산값(q. 오른쪽 쉬프트 연산) 등이 너비와 높이 중 최소 하나에 적용되어 하위 블록의 최소 크기(예로, W%p 또는 H>>q 등)가 정해질 수 있다. 여기서, 나눔값은 2, 4, 8 또는 그 이상의 정수일 수 있고, 쉬프트 연산값(q)은 1, 2, 3 또는 그 이상의 정수일 수 있다.
(case 4) 하위 블록의 크기에 기반하여 상위 블록의 최대 크기가 정해질 수 있다. 여기서, 하위 블록의 너비(W), 높이(H)를 기준으로 소정의 곱셈값(r) 또는 쉬프트 연산값(s. 왼쪽 쉬프트 연산) 등이 너비와 높이 중 최소 하나에 적용되어 상위 블록의 최대 크기(예로, W*r 또는 H<<s 등)가 정해질 수 있다. 여기서, 곱셈값은 2, 4, 8 또는 그 이상의 정수일 수 있고, 쉬프트 연산값(s)은 1, 2, 3 또는 그 이상의 정수일 수 있다.
(case 5) 상위 블록의 크기와 분할 설정을 고려하여 하위 블록의 최소 크기가 정해질 수 있다. 여기서, 분할 설정은 분할 종류(트리 종류), 분할 깊이(공통 깊이, 트리별 개별 깊이) 등에 의해 정해질 수 있다. 예를 들어, 상위 블록에서 QT가 지원되는 경우에는 분할이 m번 수행되는 블록의 크기가 하위 블록의 최소 크기로 정해질 수 있고, BT(또는 TT)가 지원되는 경우에는 n번 분할이 수행되는 블록의 크기가 하위 블록의 최소 크기로 정해질 수 있으며, QT와 BT(또는 TT)가 지원되는 경우에는 l번 분할이 수행되는 블록의 크기가 하위 블록의 최소 크기로 정해질 수 있다. 여기서, m 내지 l은 1, 2, 3 또는 그 이상의 정수일 수 있으며, (한 번의 분할 동작으로 인해) 더 작은 블록으로 분할(또는 더 많은 개수로 분할)되는 트리의 분할 깊이(m)가 그렇지 않은 트리의 분할 깊이(n)보다 작거나 같도록 설정될 수 있다. 그리고 트리 분할이 혼합되는 경우의 분할 깊이(l)는 더 작은 블록으로 분할되는 트리의 분할 깊이(m)보다 크거나 같고, 그렇지 않은 트리의 분할 깊이(n)보다 작거나 같도록 설정될 수 있다.
또는, 하위 블록의 크기와 분할 설정을 고려하여 상위 블록의 최대 크기가 정해질 수도 있다. 이에 관한 설명에서 상기 예로부터 역으로 유도될 수 있으며 상세한 설명은 생략한다.
대상 블록의 부호화를 위해 사용/참조되는 상대 블록은 다음과 같은 사항을 고려하여 결정될 수 있다.
대상 블록의 부호화에 사용/참조하고자 하는 정보에 기반하여 상대 블록이 정해질 수 있다. 여기서, 대상 블록의 부호화에 사용/참조하고자 하는 정보는 예측을 위한 화소값 정보와 예측/변환/양자화/인루프 필터/엔트로피 부호화 등에 관련된 참조 후보군 정보가 그 대상이 될 수 있다.
또한, 대상 블록의 상태 정보, 대상 블록이 속한 영상 정보 등에 기반하여 상대 블록이 결정될 수 있다. 여기서, 대상 블록의 상태 정보는 블록의 크기, 형태, 가로/세로 길이 비, 픽쳐/분할 단위(슬라이스, 타일 등)/최대 부호화 블록 등의 단위에서의 위치 등에 기반하여 정의될 수 있다. 여기서, 대상 블록이 속한 영상 정보는 영상 타입(I/P/B), 컬러 성분(Y/Cb/Cr) 등에 기반하여 정의될 수 있다.
상기 예에서 언급된 전부 또는 일부 요소를 고려하여 상대 블록의 개수, 크기, 위치 등이 결정될 수 있다. 상세하게는, 수직적인 관계를 갖는 블록의 정보를 대상 블록의 부호화에 사용/참고할 지 결정할 수 있고, (사용/참고하는 경우) 상대 블록의 위치와 크기가 결정될 수 있다. 여기서, 상대 블록의 위치는 블록 내 소정의 좌표(예로, 좌상측 좌표)로 표현할 수 있고, 상대 블록의 크기는 너비(W)와 높이(H)로 표현할 수 있어, 이를 조합하여 상대 블록을 특정할 수 있다.
예를 들어, 하위 블록에 대한 특별한 범위 제한이 없는 경우 상대 블록에 속하는 모든 하위 블록(대상 블록)이 상대 블록의 부호화 정보를 사용/참조할 수 있다. 또는, 하위 블록에 대한 범위가 제한된다면, 상대 블록에 속하며 하위 블록에 대한 크기보다 큰 경우라면 상대 블록의 부호화 정보를 사용/참조할 수 있다. 또한, 상대 블록이 2개 이상 지원되는 경우라면, 상대 블록의 선택 정보가 추가로 발생할 수 있다.
다음은 대상 블록과 수직적인 관계를 갖는 블록에 기반한 후보군 구성 및 부호화/복호화 과정을 나타낸다.
참조되는 블록을 특정하기 위한 기준 블록을 결정한다(1). 결정된 기준 블록을 중심으로 대상 블록의 부호화 정보를 위해 참조되는 블록을 특정한다(2). 특정된 블록의 부호화 정보를 소정의 순서에 따라 후보군을 구성한다(3). 대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택한다(4). 선택된 후보에 기반하여 영상 부호화/복호화 과정을 수행한다(5).
(1)에서 대상 블록의 부호화 정보에 관한 후보군 구성을 위해 기준이 되는 블록(기준 블록)을 대상 블록 또는 제 1 상대 블록 중에서 결정한다. 여기서, 제 1 상대 블록은 대상 블록과 수직적인 관계를 갖는 블록(여기서, 상위 블록)일 수 있다.
(2)에서는 상기 과정을 통해 기준 블록이 결정되면 대상 블록의 부호화 정보에 관한 후보군 구성을 위해 사용되는 제 2 상대 블록을 특정한다. 여기서, 제 2 상대 블록은 기준 블록과 수평적인 관계를 갖는 블록일 수 있다. (3)에서는 상기 과정을 통해 특정되는 제 2 상대 블록의 부호화 정보를 소정의 순서에 따라 후보군을 구성한다. 수평적인 관계를 갖는 블록에 대한 설명은 수평적인 관계를 갖는 블록에 기반한 후보군 구성 및 부호화/복호화 과정뿐만 아니라 전술한 다양한 실시예를 통해 유도 가능하므로 상세한 설명은 생략한다.
(4)에서는 대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택하며, (5)에서 이에 기반하여 영상 부호화/복호화 과정을 수행할 수 있다.
이때, 블록 간의 수직적인 관계 설정에 기반하여 상위 블록과 하위 블록이 결정되면, 상위 블록에 기반한 후보군 구성 과정은 1번만 수행되기 때문에 하위 블록은 이를 사용/차용할 수 있다. 즉, 상기 순서도는 첫번째로 부호화/복호화가 수행되는 블록에서 발생 가능한 구성일 수 있다. 이미 상위 블록에 기반한 후보군 구성이 완료되었고 일부 순서(2, 3)에서 기준 블록이 상대 블록으로 결정된 경우라면 이미 구성된 후보군을 단순 사용/차용할 수 있다는 내용이 추가될 수도 있다.
상기 예에서는 상위 블록에 기반하여 후보군이 구성되면 하위 블록에서는 이를 단순 사용/차용하는 구성으로 설명되어 있으나, 이에 한정되지 않는다.
예를 들어, 상위 블록에 기반하여 후보군이 구성되더라도 일부 후보는 하위 블록에 상관없이 고정적일 수 있고, 일부 후보는 하위 블록에 기반하여 적응적일 수 있다. 즉, 하위 블록에 기반하여 일부 후보는 삭제/추가/변경될 수 있음을 의미한다. 이때, 하위 블록의 상위 블록 내 위치, 크기 등에 기반하여 상기 삭제/추가/변경이 수행될 수 있다.
즉, 일부 순서(2, 3)에서 기준 블록이 상대 블록으로 결정되었다 할지라도 이미 구성된 후보군에 전부 또는 일부 후보에 대한 변형이 반영된 후보군을 구성할 수 있다.
대상 블록과 상대 블록은 부호화/예측/변환/양자화/인루프 필터 등의 단위 중에 하나일 수 있으며, 대상 블록은 상대 블록과 동일한 단위이거나 또는 상위 단위일 수 있다. 예를 들어, 대상 블록이 부호화 블록일 경우 상대 블록은 부호화 블록일 수 있고, 대상 블록이 부호화 블록일 경우 상대 블록은 예측 블록 또는 변환 블록일 수 있다.
도 8은 대상 블록과 수직적인 관계와 수평적인 관계인 상대 블록의 다양한 배치 예를 나타낸다.
도 8은 재귀적인 트리 기반의 분할(쿼트 트리)이 수행되는 경우이며, X와 A 내지 G, p 내지 t 블록을 중심으로 설명한다. 분할 깊이가 0인 기본 부호화 블록(CTU)에서 시작하여 분할 깊이가 증가함에 q/r/t(1), p/D/E/F/s(2), A/B/C/G/X(3) 블록이 획득될 수 있다. 여기서 대상 블록과 수직적인 관계와 수평적인 관계에 놓인 블록으로 구분할 수 있다. 이때, 대상 블록(X)의 수직적인 관계를 갖는 상대 블록(상위 블록)은 p, q 블록(CTU 제외)일 수 있고, 수평적인 관계를 갖는 상대 블록은 A 내지 G 블록일 수 있다.
여기서, 일부 상대 블록의 경우 대상 블록의 분할 깊이(k)를 기준으로 더 작은 값을 갖는 블록뿐만 아니라 더 큰 값을 갖는 블록이 다수 존재하지만, 본 예에서는 상기 언급된 블록을 대상으로 하며, 대상 블록이 가장 분할 깊이가 큰 경우(즉, 더 이상 분할되지 않는 경우)를 가정한다.
블록 분할은 영상의 특성에 따라 분할 결과가 정해지며, 배경과 같은 평탄한 부분 또는 시간적인 변화가 거의 없는 영역에서는 블록 분할은 최소한으로 이뤄질 수 있고, 복잡한 패턴을 갖고 있는 부분 또는 시간적인 변화가 급격한 영역에서는 블록 분할은 많이 수행될 수 있다.
본 발명의 전술한 예를 통해 많은 수평적인 관계 또는 수직적인 관계를 갖는 블록을 대상 블록의 부호화에 사용/참조할 수 있음을 언급하였다. 후술하는 예를 통해 대상 블록을 중심으로 수평적인 관계를 갖는 블록과 수직적인 관계를 갖는 블록을 함께 고려하여 대상 블록의 부호화에 더 효율적으로 사용하는 방법에 대한 다양한 예시를 제시할 것이다. 그렇기 때문에 전술한 수평 및 수직적인 관계에 관한 설명이 후술하는 내용에 동일하거나 비슷하게 적용될 수 있음을 전제한다.
다음은 블록 분할의 종류(방식)에 따라 수평적인 관계에 놓인 블록 간의 상관성에 대한 다양한 경우를 살펴본다. 이때, 분할 방식은 QT, BT, TT가 지원되며, BT는 대칭 분할(SBT)되고, TT는 1:2:1 비율로 분할됨을 가정한다. 그리고 일반적인 수평 관계에 놓인 블록은 서로 상관성이 높거나 낮을 수 있음(일반적인 관계)을 전제한다. 그리고 각 경우에는 설명되는 하나의 트리 방식만 지원되는 경우를 전제한다.
도 9는 트리 종류에 따라 획득되는 블록 분할에 관한 예시도이다. 여기서, p 내지 r은 QT, BT, TT의 블록 분할 예시를 나타낸다. 블록 내 일부 영역의 특성이 달라 블록 자체의 부호화가 효율적이지 않는 경우에 블록 분할이 수행된다고 가정한다.
QT(p)의 경우 수평과 수직 방향으로 각각 2 분할되는데, 4개의 서브 블록 중 최소 하나의 서브 블록은 다른 특성을 갖는 것을 알 수 있다. 근데 서브 블록이 4개가 획득되어 어떤 특정 서브 블록이 다른 특징을 갖는 것인지 알 수가 없다.
예를 들어, A 내지 D 블록이 모두 다른 특성을 가질 수 있고, A 내지 D 블록 중 하나만 다른 특성을 갖고 나머지는 동일한 특성을 가질 수 있고, A와 B 블록이 동일한 특성을 갖고 C와 D 블록이 동일한 특성을 가질 수 있고, A와 C 블록이 동일한 특성을 갖고 B와 D 블록이 동일한 특성을 가질 수 있다.
만약 A와 B 블록, C와 D 블록이 각각 동일한 특성을 갖고 BT도 지원되는 경우라면 BT 중 수평 분할이 수행될 수 있지만, p와 같이 QT로 분할된 경우라면 A와 B 블록, C와 D 블록은 서로 다른 특성인 것을 알 수 있다. 단, 본 예에서는 QT만 지원되는 경우를 가정하기 때문에 상기 블록 간의 상관성을 정확히 파악할 수가 없다.
대상 블록(상기 서브 블록 중 하나)을 중심으로 분할 깊이가 1 차이인 상위 블록에서 QT만이 지원되어 분할된 경우라면, 대상 블록과 상대 블록(상기 서브 블록 중 대상 블록 외 블록)의 상관성은 높을 수 있거나 낮을 수 있다.
BT(q)의 경우 수평 또는 수직 방향 중 하나로 2분할되는데, 2개의 서브 블록(E와 F 블록)은 서로 다른 특성을 갖는 것임을 알 수 있다. 서브 블록 간의 특성이 동일하거나 비슷한 경우였다면 분할되지 않았을 것이라는 가정 하에 상기 정의로 유도될 수 있다. 대상 블록을 중심으로 분할 깊이가 1 차이인 상위 블록에서 BT만이 지원되어 분할된 경우라면, 대상 블록과 상대 블록의 상관성은 낮을 수 있다.
TT(r)의 경우 수평 또는 수직 방향 중 하나로 3분할되는데, 3개의 서브 블록의 중 최소 하나의 서브 블록은 다른 특성을 갖는 것임을 알 수 있다. 근데 3개의 서브 블록이 획득되어 어떤 특정 서브 블록이 다른 특징을 갖는 것인지 알 수가 없다.
예를 들어, G 내지 I 블록이 모두 다른 특성을 가질 수 있고, G와 H 블록이 동일한 특성을 갖고 I 블록은 다른 특성을 가질 수 있고, H와 I 블록은 동일한 특성을 갖고 G 블록은 다른 특성을 가질 수 있다.
만약 G와 H 블록이 동일한 특성을 갖고 I 블록은 다른 특성을 갖고 BT(비대칭)도 지원되는 경우라면 BT 중 수직 분할(3:1)이 수행될 수 있지만, r과 같이 TT로 분할된 경우라면 G와 H, I 블록은 서로 다른 특성인 것을 알 수 있다. 단, 본 예에서는 TT만 지원되는 경우를 가정하기 때문에 상기 블록 간의 상관성을 정확히 파악할 수가 없다. 대상 블록을 중심으로 분할 깊이가 1 차이인 상위 블록에서 TT만이 지원되어 분할된 경우라면, 대상 블록과 상대 블록의 상관성은 높을 수 있거나 낮을 수 있다.
상기 분할 방식 중 QT와 TT의 경우 블록 간의 상관성이 높거나 낮을 수 있다고 전술하였다. 만약 상기 분할 방식(예로, QT)만 지원되고, 하나를 제외한 나머지의 서브 블록의 부호화 정보를 알고 있는 경우(예로, D 블록)를 가정하자. D 블록을 제외한 나머지 서브 블록(A 내지 C)의 부호화 정보가 동일하거나 비슷할 경우에는 D 블록의 특성이 다르기 때문에 QT로 분할된 경우일 수 있다. 이와 같이 상위 블록에 속하는 하위 블록의 부호화 정보를 확인하여 상관성 정보를 파악하는 것 또한 가능하지만, 발생 확률이 적고 복잡한 경우일 수 있기 때문에 이에 관한 설명은 가능성만 언급하고 상세한 설명은 생략한다. 참고로, 상기의 경우 D 블록은 수평적인 관계의 블록과의 상관성이 낮기 때문에 D 블록의 상위 블록(A와 D를 포함하는 블록)의 후보군 구성 정보를 참조하는 수직적인 관계를 갖는 블록의 부호화 정보를 사용/참조할 수도 있다.
상기 예에서 상위 블록에서 하나의 트리 분할이 지원되는 경우에 서브 블록 간의 상관성에 관하여 설명하였다. 즉, 대상 블록의 부호화를 위해 수평적인 관계를 갖는 블록의 부호화 정보를 사용/참조할 때, 대상 블록과 상대 블록 간의 분할 상태(경로) 등을 확인함으로써 더욱 효율적으로 상대 블록의 부호화 정보를 사용/참조할 수 있다. 예를 들어, 후보군을 구성할 때 상관성이 낮다고 판단되는 블록의 정보는 제외하거나 낮은 우선 순위를 할당할 수 있다. 또는, 수직적인 관계를 갖는 블록의 정보, 참조 설정을 사용할 수 있다.
이때, 하나의 트리 분할이 지원되는 경우란 블록 분할에 하나의 트리 방식만 지원되는 경우를 포함할 수 있고, 복수의 트리 분할이 지원되더라도 각 트리 방식에 따른 블록의 최대값, 최소값, 최대 분할 깊이 등과 이전 분할 깊이에서 분할이 허용되지 않은 트리는 이후 분할 깊이에서 지원되지 않는 블록 분할 설정에 의해 하나의 트리 분할만 지원되는 경우 또한 포함할 수 있다. 즉, QT만 지원되어 QT를 사용하여 분할될 수 있고, QT/BT/TT가 지원되지만 해당 단계에서는 BT만 가능하여 BT를 사용하여 분할될 수 있다.
다음은 복수의 트리 분할이 지원되는 경우에 각 블록 간의 상관관계를 확인하는 경우를 살펴본다.
도 10은 QT, BT, TT로 인해 획득되는 분할 분할에 관한 예시도이다. 본 예에서 최대 부호화 블록은 64 x 64, 최소 부호화 블록은 8 x 8인 경우를 가정한다. 또한, QT가 지원되는 블록의 최대값은 64 x 64, 최소값은 16 x 16이고, BT가 지원되는 블록의 최대값은 32 x 32, 최소값은 블록의 가로/세로 길이 중 하나가 4이고 최대 분할 깊이가 3인 경우를 가정한다. 이때, TT는 BT와 함께 분할 설정이 정해지는 경우(묶여서 사용되는 경우)를 가정한다. 상측 블록(A 내지 M)에는 QT와 BT(QT, BT)가 지원되고, 좌하측 블록(N 내지 P)에는 비대칭 BT(ABT)가 추가 지원(QT, BT<또는, SBT>, ABT)되고, 우하측 블록(Q 내지 S)에는 TT가 추가 지원(QT, SBT, ABT, TT)되는 경우를 가정한다.
(기준 블록: B, C, D, E 을 포함하는 블록)
B 내지 E 블록은 QT(1번 분할)를 통해 획득될 수 있는 서브 블록일 수 있고, BT(1번 수직 분할 + 2번 수평 분할. 또는 1번 수평 분할 + 2번 수직 분할. 분할 횟수 3회)을 통해 획득될 수 있는 서브 블록일 수 있다.
QT가 지원되는 최대 블록크기가 16 x 16이기 때문에 B 내지 E 블록은 QT를 통해 획득 불가능하고, BT를 통해 분할된 서브 블록일 수 있다. 본 예에서는 BT 중 수평 분할이 수행(B+C/D+E)되고, 각 영역에서 수직 분할이 각각 수행(B/C/D/E)된 경우이다. 그렇기 때문에 전술한 것과 같이 동일한 상위 블록(부모 블록. 분할 깊이 1 차이)에서 BT로 획득된 B와 C 블록, D와 E 블록은 각각 상관성이 낮을 수 있다.
또한, B와 D 블록, C와 E 블록이 묶여서 분할이 수행된 것도 아니기 때문에 B와 D 블록, C와 E 블록은 각각 상관성이 낮을 수 있다. 만약 상관성이 높았다면 BT 중 수직 분할만 수행되고, 각 영역에서 분할을 수행하지 않을 수 있기 때문이다.
전술한 예를 통해 BT로 획득된 서브 블록 간의 상관성은 낮다고 언급하였으나 이는 동일한 상위 블록(부모 블록. 분할 깊이 1 차이)에 속하는 서브 블록에 한정되었으나, 본 예에서는 동일한 상위 블록(조부모 블록. 분할 깊이 2 차이)로 확장되어 블록 간의 상관성을 확인하는 경우일 수 있다.
(기준 블록: J, K, L, M 을 포함하는 블록)
J 내지 M 블록은 QT를 통해 획득될 수 있는 서브 블록일 수 있고, BT를 통해 획득될 수 있는 서브 블록일 수 있다.
QT와 BT 둘다 지원 가능한 범위이기 때문에 최적의 분할 형태로 트리 방식이 선택될 수 있다. 본 예에서는 QT가 수행된 경우이다. 전술한 예를 통해 QT를 통해 획득된 서브 블록 간의 상관성은 높거나 낮을 수 있다고 언급하였다. 하지만, 본 예에서는 서브 블록 간의 상관성이 달리 판단될 수 있는데, 이는 복수의 트리 분할이 지원되는 경우이기 때문이다.
J와 K 블록, L과 M 블록은 각각 상관성이 낮을 수 있고, J와 L 블록, K와 M 블록은 각각 상관성이 낮을 수 있다. 만약 J 내지 M 블록 중 수평, 수직 방향에 인접한 블록 간의 상관성이 높았다면, QT가 수행되지 않고 BT가 수행되더라도 상관성이 높은 영역은 분할되지 않을 수 있기 때문이다.
전술한 예를 통해 QT로 획득된 서브 블록 간의 상관성은 높거나 낮을 수 있다고 언급하였으나 이는 단일의 트리 방식이 지원되는 경우였으며, 본 예에서는 복수의 트리 방식이 지원될 경우 블록 분할에 관한 다양한 경우의 수에 기반하여 블록 간의 상관성을 확인하는 경우일 수 있다.
(기준 블록: N, O, P를 포함하는 블록)
N 내지 P 블록은 BT(1번 수평 분할 + 1번 수평 분할)를 통해 획득되는 서브 블록(2:1:1 비율)일 수 있다.
(대칭 BT<SBT>만 지원되는 경우) N와 O 블록은 상관성이 높을 수도 있고 낮을 수도 있다. N 블록의 경우 상위 블록에서 BT를 통해 획득되었기 때문에 O와 P 블록을 묶인 영역과는 상관성이 낮을 수 있다. 하지만, N 블록은 O와 P 블록과의 상관성까지 낮다고 할 수 없다. 물론, N 블록은 O와 P 블록과 상관성이 낮을 수 있다. 또는, N 블록은 O 블록과 상관성이 높고 P 블록과는 상관성이 낮을 수 있고, 그 반대의 경우가 가능할 수 있다.
본 예에서는 비대칭 BT<ABT>이 지원되는 경우일 수 있는데, N과 O 블록이 상관성이 높았다면 N과 O 블록의 영역이 묶여서 3:1 비율의 비대칭 BT의 수평 분할이 수행될 수 있다. 하지만, BT(SBT)가 2번 수행된 경우이기 때문에 N과 O 블록의 상관성이 낮을 수 있다.
(기준 블록: Q, R, S를 포함하는 블록)
Q 내지 S 블록은 TT(1번 수평 분할)를 통해 획득되는 서브 블록일 수 있다.
(TT만 지원되는 경우) Q와 S 블록은 상관성이 높을 수도 있고 낮을 수도 있다. 본 예에서는 비대칭 BT가 지원되는 경우일 수 있는데, Q와 R 블록이 상관성이 높았다면 Q와 R 블록의 영역이 묶여서 3:1 비율의 비대칭 BT 수평 분할이 수행될 수 있다. 하지만, TT가 수행된 경우이기 때문에 Q와 R 블록은 상관성이 낮을 수 있다.
상기 예와 같이 지원되는 분할 방식, 분할 설정 등에 기반하여 대상 블록과 수평적인 관계에 있는 상대 블록과의 상관성을 가늠할 수 있다. 다음을 통해 블록 간의 상관성 관계에 관한 다양한 경우를 살펴보자.
도 11은 분할 방식, 분할 설정에 기반하여 블록 간의 상관성 확인을 위한 예시 그림이다.
(a) 내지 (c)는 각각 QT, BT, TT가 수행된 경우이며, 상위 블록에서 각각 QT, BT, TT만 지원 가능한 경우일 수 있다. 전술한 것과 같이 QT와 TT의 경우 수평 또는 수직 방향으로 인접한 블록(A와 B 또는 A와 C) 간의 상관성이 높거나 낮을 수 있다. 이를 일반 관계라고 지칭한다. 한편, BT의 경우 수평 또는 수직 방향으로 인접한 블록(A와 B) 간의 상관성이 낮을 수 있다. 이를 특수 관계라 지칭한다.
(d)는 QT가 수행된 경우이며 QT와 BT가 지원 가능한 경우일 수 있다. 본 예에서 수평 또는 수직 방향으로 인접한 블록(A와 B 또는 A와 C) 간의 상관성은 낮은 특수 관계일 수 있다. 만약 상관성이 높다면 QT 대신 BT가 적용되었을 수 있다.
(e)는 BT가 수행된 경우(1번 수직 분할 + 1번 수평 분할)이며 QT와 BT가 지원 가능한 경우일 수 있다. A와 B의 경우 동일한 상위 블록에서 BT를 통해 분할된 경우이기 때문에 상관성이 낮은 특수 관계일 수 있다. A와 C의 경우 A와 C의 아래쪽 영역이 상관성이 높다면 함께 묶여서 분할이 수행될 수도 있지만, 부호화 비용 상 C로 분할된 경우일 수 있다. 물론, 그 외의 경우일 수도 있기 때문에 A와 C는 상관성이 높거나 낮은 일반 관계일 수 있다.
(f)는 BT가 수행된 경우(1번 수직 분할 + 1번 수직 분할)이며 BT와 TT가 지원 가능한 경우일 수 있다. A와 C의 경우 동일한 상위 블록에서 BT를 통해 분할된 경우이기 때문에 상관성이 낮은 특수 관계일 수 있다. A와 B의 경우 A와 B가 함께 묶여서 분할이 수행되는 경우(TT의 1:2:1 영역 중 2에 해당하는 부분)는 존재하지만, TT로 인해 왼쪽 영역의 추가 분할이 발생한다. 상기 경우 정확한 상관성 파악은 어렵기 때문에 A와 B는 상관성이 높거나 낮은 일반 관계일 수 있다.
(g)는 TT가 수행된 경우(1번 수직 분할)이며 BT(또는 SBT)와 ABT, TT가 지원 가능한 경우일 수 있다. 본 예에서 수평 또는 수직 방향으로 인접한 블록(A와 B 또는 A와 C) 간의 상관성은 낮은 특수 관계일 수 있다. 만약 상관성이 높다면 TT 대신 ABT가 적용되었을 수 있다.
(h)는 QT와 BT가 수행된 경우(BT는 2번 수직 분할)이며 QT와 BT가 지원 가능<1>하며 추가로 TT가 지원 가능<2>한 경우일 수 있다. A와 B의 경우 <1>의 상황에서는 A와 B가 묶여서 분할 가능한 경우는 존재하지 않기 때문에 상관성이 높거나 낮은 일반 관계일 수 있다. 하지만, <2>의 상황에서는 A와 B가 묶여서 분할 가능한 경우(BT 수평 분할 후. 상측은 BT 수직 분할, 하측은 TT 수직 분할)가 존재하지만, 그럼에도 불구하고 QT와 BT를 사용하여 분할된 것이기 때문에 상관성이 낮은 특수 관계일 수 있다. 본 예는 블록 간의 관계 확인을 위해 분할 깊이가 1 이상의 차이를 갖는 동일한 상위 블록(본 예에서 2 차이)에서 획득 가능한 블록 분할에 관한 경우의 수를 확인하는 경우일 수 있다.
전술한 다양한 예를 통해 대상 블록과 수평적인 관계를 갖는 상대 블록을 사용/참조하기 위해 블록 간의 상관관계를 가늠하는 경우를 확인하였다. 이때, 대상 블록과 동일한 공간에 속하고 인접한 상대 블록을 대상으로 할 수 있다. 특히, 대상 블록과 상대 블록은 수평 또는 수직 방향으로 인접한 블록일 수 있다.
블록 간의 상관관계는 다양한 정보에 기반하여 파악/가늠할 수 있다. 예를 들어, 대상 블록과 상대 블록의 상태 정보(블록의 크기, 형태, 위치 등)에 기반하여 블록 간의 상관관계를 확인할 수 있다.
여기서, 블록의 크기에 기반하여 상관관계를 파악하는 예로, 대상 블록과 맞닿은 경계(수평 또는 수직)에 인접한 상대 블록의 소정의 길이(가로 길이 또는 세로 길이)가 대상 블록의 소정의 길이보다 크거나 같으면 블록 간의 상관성이 많이 높거나 다소 낮을 수 있으며, 이를 일반 관계 A라 지칭한다. 만약 상대 블록의 소정의 길이가 대상 블록의 소정의 길이보다 작으면 블록 간의 상관성이 다소 높거나 많이 낮을 수 있으며, 이를 일반 관계 B라 지칭한다. 이때, 수평 경계를 맞닿은 경우(상측의 블록) 각 블록의 가로 길이, 수직 경계를 맞닿은 경우(좌측의 블록) 각 블록의 세로 길이가 비교될 수 있다.
여기서, 블록의 형태에 기반하여 상관관계를 파악하는 예로, 대상 블록이 직사각 형태일 때 가로/세로 길이 중 긴 쪽의 경계에 인접한 상대 블록과의 상관관계는 일반 관계 A이며, 짧은 쪽의 경계에 인접한 상대 블록과의 상관관계는 일반 관계 B일 수 있다.
상기 설명은 블록의 상태 정보에 기반하여 블록 간의 상관관계를 파악하는 일부 예시일 수 있으며, 다양한 변형의 예가 가능할 수 있다. 블록의 상태 정보뿐만 아니라 다양한 정보에 기반하여 블록 간의 상관관계를 파악하는 것이 가능할 수 있다.
다음은 대상 블록과 수평적인 관계를 갖는 상대 블록과의 상관관계를 확인하기 위한 과정을 설명한다.
(영상 내 블록 분할 설정 확인)
<1> 영상 내 블록 분할에 관한 다양한 설정 정보를 확인할 수 있다. 부호화/예측/변환 등의 단위(본 예에서 대상 블록은 부호화 단위라 가정)의 최대 블록 크기, 최소 블록 크기 등의 지원되는 범위 정보를 확인한다. 일 예로, 최대 부호화 블록은 128 x 128, 최소 부호화 블록은 8 x 8임을 확인할 수 있다.
<2> 지원되는 분할 방식을 확인하고, 각 분할 방식이 지원되는 최대 블록 크기, 최소 블록 크기, 최대 분할 깊이 등의 조건을 확인한다. 일 예로, QT가 지원되는 블록의 최대 크기는 128 x 128, 최소 크기는 16 x 16일 수 있고, BT와 TT가 지원되는 블록의 최대 크기는 각각 128 x 128, 64 x 64이고 최소 크기는 공통의 4 x 4이며 최대 분할 깊이는 4일 수 있다.
<3> 분할 방식에 할당되는 우선 순위와 같은 설정을 확인한다. 일 예로, QT로 분할이 되면 그 하위 블록(서브 블록)에서 또 QT가 지원될 수 있고, QT로 분할되지 않고 다른 방식으로 분할이 되면 그 하위 블록에서는 QT가 지원되지 않을 수 있다.
<4> 복수의 분할 방식이 지원되는 경우 분할 방식에 따라 중복되는 결과를 피하기 위해 일부 분할이 금지되는 조건을 확인할 수 있다. 일 예로, TT가 수행된 후 가운데 영역에 대해서는 BT의 수직 분할은 금지할 수 있다. 즉, 각 분할 방식에 따라 발생 가능한 중복되는 분할 결과를 막기 위해 사전에 금지되는 분할이 금지되는 설정 정보를 확인한다.
<1> 내지 <4>의 전부 또는 일부, 그리고 추가적인 다른 설정 정보를 확인하여, 영상 내 획득 가능한 블록 후보를 확인할 수 있다. 이는 후술하는 대상 블록과 상대 블록에 따라 획득 가능한 블록 후보를 확인하는데 참조될 수 있다.
(블록의 정보 확인)
대상 블록과 상대 블록의 크기, 형태, 위치 등의 상태 정보를 확인할 수 있다. 여기서, 블록의 위치가 픽쳐, 슬라이스, 타일 그룹, 타일, 브릭, 블록 등의 단위의 경계 위치하는지 또는 내부에 위치하는지 확인한다.
상기 단위 중 블록은 최대 부호화 블록으로 설정할 수 있는데, 최대 부호화 블록은 대상 블록의 상위 블록(최고 조상 블록)일 수 있으나 영상의 특성에 따라 획득되는 형태가 아닌 픽쳐 단위에서 일괄적으로 구획된 단위이다. 그렇기 때문에 대상 블록이 속한 최대 부호화 블록과 다른 최대 부호화 블록에 속한다면 블록 간의 상관관계는 확인할 수 없기 때문에 경계에 속하는지 확인하는 과정이 필요하다.
또한, 픽쳐, 슬라이스 등의 다른 단위는 최대 부호화 블록의 정수배로 구성되거나 또는 참조가 불가능한 설정을 가지고 있기 때문에, 경계가 아닌 경우에만 상관관계를 확인하는 과정이 수행될 수 있다. 즉, 경계가 아닌 경우에만 상관관계를 확인할 수 있다.
대상 블록과 상대 블록의 크기, 형태, 위치는 각 블록의 분할 상태 또는 각 블록이 획득된 분할 경로를 확인하는데 사용될 수 있다. 이에 관한 상세한 설명은 후술한다.
(분할 상태 확인 및 공통되는 상위 블록 확인)
대상 블록과 상대 블록의 분할 상태를 확인할 수 있다. 여기서 분할 상태는 각 블록이 획득된 분할 경로를 의미할 수 있다. 분할 상태 확인을 통해 각 블록의 상위 블록을 확인하는 과정이 수행될 수 있는데, 여기서 상위 블록이란 각 블록의 수직적인 관계를 갖는 블록을 의미할 수 있다. 각 블록의 크기, 형태, 위치 등의 상태 정보와 분할 경로에 기반하여 획득되는 상위 블록을 확인하는 과정이 수행된다.
일 예로, 대상 블록은 위치(좌상측 기준)가 (32, 32), 너비와 높이는 8 x 8, 분할 깊이는 p, 분할 경로는 (QT/1 - BT/h/0 - BT/v/1)과 같은 상태 정보가 획득될 수 있다. 상대 블록은 위치가 (24, 32), 너비와 높이는 8 x 8, 분할 깊이는 q, 분할 경로는 (QT/1 - BT/h/0 - BT/v/0)과 같은 상태 정보를 확인할 수 있다. 여기서, 분할 경로는 분할 방식/분할 방향(h는 수평, v는 수직. 없으면 생략)/분할 위치(QT의 경우 0 ~ 3, BT의 경우 0 ~ 1 등)로 표현될 수 있다.
본 예에서 대상 블록의 상위 블록(부모 블록, 분할 깊이 1 차이)은 (24, 32), 너비와 높이는 16 x 8, 분할 깊이는 p-1, 분할 경로는 (QT/1 - BT/h/0)과 같은 상태 정보가 획득될 수 있다. 본 예에서 상대 블록의 상위 블록(분할 깊이 q - 1)은 대상 블록의 상위 블록과 동일한 경우일 수 있다.
일 예로, 대상 블록은 위치가 (128, 64), 너비와 높이는 16 x 32, 분할 깊이는 p, 분할 경로는 (QT/3 - QT/2 - BT/v/1)과 같은 상태 정보가 획득될 수 있다. 상대 블록은 위치가 (120, 64), 너비와 높이는 8 x 32, 분할 깊이는 q, 분할 경로는 (QT/3 - QT/2 - BT/v/0 - BT/v/1)과 같은 상태 정보가 획득될 수 있다.
본 예에서 대상 블록의 상위 블록(부모 블록, 분할 깊이 1 차이)은 (112, 64), 너비와 높이는 32 x 32, 분할 깊이는 p - 1, 분할 경로는 (QT/3 - QT/2)와 같은 상태 정보가 획득될 수 있다.
반면, 상대 블록의 상위 블록(부모 블록, 분할 깊이 1 차이)은 (112, 64), 너비와 높이는 16 x 32, 분할 깊이는 q - 1, 분할 경로는 (QT/3 - QT/2 - BT/v/0)와 같은 상태 정보가 획득될 수 있다. 상대 블록의 상위 블록(조부모 블록, 분할 깊이 2 차이)은 (112, 64), 너비와 높이는 32 x 32, 분할 깊이 q - 2, 분할 경로는 (QT/3 - QT/2)와 같은 상태 정보가 획득될 수 있는데, 이는 대상 블록의 상위 블록(부모 블록)과 동일한 상위 블록임을 알 수 있다.
상기 예와 같이 분할 상태에 기반하여 각 블록의 상위 블록을 확인하는 과정이 수행될 수 있고, 공통의 상위 블록을 확인하는 과정이 수행될 수 있다.
정리하면, 대상 블록과 상대 블록을 기준으로 분할 깊이 차이가 1 이상인 상위 블록을 확인할 수 있다. 일 예로, 대상 블록과 분할 깊이 차이가 c인 상위 블록과 상대 블록과 분할 깊이 차이가 d인 상위 블록은 서로 동일할 수 있다. 이때, c와 d는 1, 2 또는 그 이상의 정수일 수 있고, c와 d는 동일하거나 동일하지 않을 수 있다.
여기서, 분할 깊이 차이가 큰 상위 블록을 확인하는 것은 복잡도나 상관관계 파악이 어려운 경우라 불필요할 수 있다. 예를 들어, 상위 블록이 최대 부호화 블록에서 공통되는 경우에는 블록 간의 상관성을 확인하기 어려운 상황일 수 있다.
이를 위해 상기 c와 d에 대한 소정의 제 1문턱값(최대값)이 존재할 수 있으며, 제 1문턱값은 1, 2 또는 그 이상의 정수일 수 있다. 또는, c와 d의 합에 관한 소정의 제 2문턱값이 존재할 수 있으며, 제 2문턱값은 2, 3 또는 그 이상의 정수일 수 있다. 즉, 상기 문턱값 조건을 벗어나는 경우에는 블록 간의 상관관계를 확인하지 않는다.
대상 블록과 상대 블록의 상위 블록이 동일한지 확인하기 위한 다양한 방법이 존재할 수 있다. 예를 들어, 상위 블록의 소정의 위치 또는 블록의 너비와 높이 정보로 확인할 수 있다. 상세하게는, 상위 블록의 좌상측 좌표와 블록의 너비와 높이 정보를 통해 동일한 상위 블록인지 여부를 확인할 수 있다.
(획득 가능한 후보 확인)
대상 블록과 상대 블록의 공통되는 상위 블록을 획득하면, 해당 상위 블록에서 획득 가능한 다양한 블록 분할의 경우의 수를 확인할 수 있다. 이는 블록 분할 설정과 상기 상위 블록의 분할 상태에 기반하여 확인할 수 있으며, 이에 대해서 전술한 다양한 예를 통해 언급하였으므로 상세한 설명은 생략한다.
(상관관계 확인)
블록 간의 상관관계를 확인하기 위하여 본 예에서는 다음과 같은 사항을 확인할 수 있다. 본 예에서는 각 블록에서 분할 깊이 차이의 최대값이 2인 경우를 가정한다.
<1> 상위 블록이 대상 블록과 상대 블록을 기준으로 분할 깊이 1의 차이가 나는 경우에는 지원 가능한 분할 방식을 확인한다.
하나의 분할 방식만 가능한 경우에는 분할 방식에 따라 상관관계를 결정할 수 있다. 만약 QT나 TT인 경우에는 일반 관계(상관성이 높거나 낮을 수 있음)로 설정하고, BT인 경우에는 특수 관계로 설정할 수 있다.
복수의 분할 방식이 가능한 경우에 대상 블록과 상대 블록이 묶여서 분할되는 경우가 존재하는지 확인한다. 만약 존재하면 특수 관계로 설정하고, 존재하지 않는다면 일반 관계로 설정한다.
<2> 상위 블록이 대상 블록과 상대 블록을 기준으로 최소 하나가 분할 깊이 2의 차이가 나는 경우에 지원 가능한 분할 방식을 확인한다.
하나의 분할 방식만 가능한 경우에는 분할 방식과 상관없이 일반 관계로 설정할 수 있다.
복수의 분할 방식이 가능한 경우에는 대상 블록과 상대 블록이 묶여서 분할되는 경우가 존재하는지 확인한다. 만약 존재하면 특수 관계로 설정하고, 존재하지 않는다면 일반 관계로 설정한다.
상기 예는 블록 간의 상관관계 확인을 위한 일부 경우이며, 이에 한정되지 않고 다양한 변형 및 추가되는 구성이 가능할 수 있다. 상기 과정을 통해 확인한 블록 간의 상관관계를 참조하여 대상 블록의 부호화에 사용/참조할 수 있다.
정리하면, 대상 블록과 상대 블록의 상관관계를 파악하기 위해 (영상 내 블록 분할 확인), (블록의 정보 확인), (분할 상태 확인 및 공통되는 상위 블록 확인), (획득 가능한 후보 확인), (상관관계 확인) 등의 과정 전부 또는 일부를 사용할 수 있으며, 상기 나열된 순서가 아닌 다양한 순서로 상관관계를 파악하는 과정이 수행될 수 있다. 또한, 상기 언급된 것에 한정되지 않고 일부 구성의 변경 또는 추가적인 구성 등의 결합을 통해 상관관계를 파악할 수 있다. 또는, 다른 구성의 상관관계 파악 과정이 수행될 수도 있으며, 상기 과정을 통해 파악한 블록 간의 상관관계에 기반하여 대상 블록의 부호화에 상대 블록의 정보를 사용/참조할 수 있다.
상기 과정을 통해 파악한 상관관계는 블록 간의 특성에 관한 절대적인 사실이 아닐 수 있으며, 블록 분할 등을 고려하여 블록 간의 상관관계를 가늠한 예측 정보일 수 있다. 따라서, 대상 블록의 부호화 정보를 위한 후보군 구성 등에 참고되는 정보일 수 있기 때문에, 상관성이 낮다고 판단되는 상대 블록을 후보군 포함에 제외할 수 있고, 확인된 상관관계가 정확하지 않을 가능성을 고려하여 후보군 구성에 관한 우선 순위를 후순위로 두거나 수직적인 관계를 갖는 상위 블록의 후보군 정보를 차용하는 등의 설정이 가능할 수 있다. 또한, 상기 예에서는 블록 간의 상관관계가 2가지로 분류되는 경우를 가정하였지만, 2, 3 또는 그 이상의 분류 카테고리가 지원될 수 있다.
블록 간의 상관관계를 대상 블록의 부호화(후보군 구성 등)에 사용/참조할 지 여부는 시퀀스, 픽쳐, 슬라이스, 타일 그룹, 타일, 브릭, 블록 등의 단위에서 명시적으로 정해질 수 있거나 또는 부호화 설정에 기반하여 묵시적으로 정해질 수 있다. 다음은 상기 부호화 설정을 구성하는 다양한 정보에 대한 예시를 살펴본다.
여기서, 대상 블록의 부호화에 사용/참조하고자 하는 정보에 따라 블록 간의 상관관계 참조여부가 정해질 수 있다. 예를 들어, 화면내 예측 모드 후보군 구성을 위해 블록 간의 상관관계를 고려할 수 있고, 화면간 예측 중 이동 외 움직임 모델을 표현하는 움직임 벡터 예측을 위해 후보군 구성을 위해 블록 간의 상관관계는 고려하지 않을 수 있다.
여기서, 대상 블록의 상태 정보, 대상 블록이 속한 영상 정보 등에 기반하여 블록 간의 상관관계 참조여부가 정해질 수 있다. 여기서, 대상 블록의 상태 정보는 블록의 크기, 형태, 가로/세로 길이 비, 픽쳐/분할 단위(슬라이스, 타일 등)/최대 부호화 블록 등의 단위에서의 위치 등에 기반하여 정의될 수 있다. 여기서, 대상 블록이 속한 영상 정보는 영상 타입(I/P/B), 컬러 성분(Y/Cb/Cr) 등에 기반하여 정의될 수 있다. 예를 들어, 소정의 범위에 속하는 블록의 크기를 갖는 경우에만 블록 간의 상관관계를 참조할 수 있고, 소정의 범위를 벗어나는 경우에는 블록 간의 상관관계를 참조할 수 없다. 이때, 소정의 범위는 제 1 문턱크기(최소값)과 제 2 문턱크기(최대값)에 의해 정의될 수 있고, 각 문턱 크기는 너비(W)와 높이(H)로 W, H, W x H, W*H로 표현될 수 있으며, W와 H는 4, 8, 16 등의 1 이상의 정수일 수 있다.
여기서, 상대 블록의 카테고리(수평적인 관계를 갖는 상대 블록의 위치 관련 설명에서 유도 가능)에 따라 블록 간의 상관관계 참조여부가 정해질 수 있다. 예를 들어, 상대 블록은 대상 블록과 동일한 공간에 속하고 인접한 블록일 수 있다. 만약 대상 블록과 동일한 공간에 속하더라도 인접하지 않는 상대 블록인 경우에는 상관 관계를 참조하지 않을 수 있다.
상기 예에서 언급된 전부 또는 일부 요소를 고려하여 부호화 설정이 정의될 수 있으며, 이에 따라 묵시적으로 블록 간의 상관관계 참조여부를 결정할 수 있다.
다음은 대상 블록과 수평적인 관계를 갖는 블록에 기반한 후보군 구성 및 부호화/복호화 과정을 나타낸다.
대상 블록과 참조 가능성이 존재하는 블록 간의 상관관계를 확인한다(1). 대상 블록의 부호화 정보를 위해 참조되는 블록을 상관관계에 기반하여 특정한다(2). 특정된 부호화 정보를 소정의 순서에 따라 후보군을 구성한다(3). 대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택한다(4). 선택된 후보에 기반하여 영상 부호화/복호화 과정을 수행한다(5).
(1)에서는 대상 블록과 상대 블록으로 고려될 가능성이 존재하는 블록 간의 상관관계를 확인한다. (2)에서는 대상 블록의 부호화 정보에 관한 후보군 구성을 위해 사용되는 블록을 (1)을 통해 확인된 상관관계에 기반하여 특정한다. 즉, 확인된 상관관계 결과에 기반하여 상대 블록으로 포함할지 여부를 결정하는 것을 의미할 수 있다. 물론, 전술한 수평적인 관계를 갖는 상대 블록의 특정을 설명한 내용이 본 예에서 함께 고려될 수 있다.
(3)에서는 상기 과정을 통해 특정되는 상대 블록의 부호화 정보를 소정의 순서에 따라 후보군을 구성한다. 이때, 소정의 순서는 (2)를 통해 포함되거나 포함되지 않는 상대 블록을 고려한 적응적인 순서가 지원될 수 있다. (4)에서는 대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택하며, (5)에서는 이에 기반하여 영상 부호화/복호화 과정을 수행할 수 있다.
상기 순서도는 상관관계에 기반하여 상관성이 낮다고 판단되는 블록은 상대 블록으로 포함하지 않는 경우일 수 있다.
다음은 대상 블록과 수평적인 관계를 갖는 블록에 기반한 후보군 구성 및 부호화/복호화 과정의 다른 예를 나타낸다.
대상 블록의 부호화 정보를 위해 참조되는 블록을 특정한다(1). 대상 블록과 특정된 블록 간의 상관관계를 확인한다(2). 대상 블록의 부호화 정보와 (2)를 통해 확인된 상관관계에 기반하여 소정의 순서를 결정하고 이에 따라 후보군을 구성한다(3). 대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택한다(4). 선택된 후보에 기반하여 영상 부호화/복호화 과정을 수행한다(5).
(1)에서는 대상 블록의 부호화 정보에 관한 후보군 구성을 위해 사용되는 상대 블록을 특정한다. (2)에서는 대상 블록과 상대 블록 간의 상관관계를 확인한다. (3)에서는 (2)를 통해 확인된 상관관계에 기반하여 후보군 포함 순서를 결정할 수 있다.
예를 들어, 상관성이 높거나 낮을 경우에는 기 정의된 순서를 따를 수 있고, 상관성이 높을 경우에는 해당 상대 블록을 선수위로 두는 순서에 따를 수 있고, 상관성이 낮을 경우에는 해당 상대 블록을 후순위로 두는 순서를 따를 수 있다.
이어서, (3)에서는 상기 과정을 통해 후보군 구성 순서가 정해지면 그 순서에 따라 후보군을 구성할 수 있다. (4)에서는 대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택하며, (5)에서는 이에 기반하여 영상 부호화/복호화 과정을 수행할 수 있다.
상기 순서도는 상관관계에 기반하여 후보군 포함 순서를 적응적으로 설정하는 경우일 수 있다.
다음은 대상 블록과 수평적인 또는 수직적인 관계를 갖는 블록에 기반한 후보군 구성 및 부호화/복호화 과정의 예를 나타낸다. 여기서, 참조되는 블록을 특정하기 위한 기준 블록은 대상 블록으로 설정되어 시작됨을 가정한다.
대상 블록과 참조 가능성이 존재하는 블록 간의 상관관계를 확인한다(1).
(대상 블록과 상관성이 낮다고 판단되는 블록이 소정의 개수 미만/이하)
대상 블록의 부호화 정보를 위해 참조되는 블록을 상관관계에 기반하여 특정한다(2A). 특정된 부호화 정보를 소정의 순서에 따라 후보군을 구성한다(3A).
(대상 블록과 상관성이 낮다고 판단되는 블록이 소정의 개수 초과/이상)
참조되는 블록을 특정하기 위한 기준 블록을 소정의 상위 블록으로 변경한다(2B). 변경된 기준 블록을 중심으로 대상 블록의 부호화 정보를 위해 참조되는 블록을 특정한다(3B). 특정된 블록의 부호화 정보를 소정의 순서에 따라 후보군을 구성한다(4B).
대상 블록의 부호화 정보에 기반하여 후보군 중 하나를 선택한다(5). 선택된 후보군에 기반하여 영상 부호화/복호화 과정을 수행한다(6)
상기 순서도는 상관관계 판단 결과에 따라 1 - 2A - 3A - 5 - 6의 순서(P) 또는 1 - 2B - 3B - 4 - 5 - 6의 순서(Q) 중 하나로 결정되는 구성일 수 있다. 상세하게는, 대상 블록과 상관성이 낮다고 판단되는 블록이 적을 경우에는 해당 블록을 제외한 나머지 블록을 상대 블록으로 특정하는 경우이고, 대상 블록과 상관성이 낮다고 판단되는 블록이 많을 경우에는 후보군 구성의 기준 블록을 대상 블록보다 상위 블록으로 변경하여 상위 블록의 수평적인 관계를 갖는 블록을 상대 블록으로 특정하는 경우이다.
P 순서의 경우 상관성이 낮다고 판단되는 블록을 상대 블록에 포함시키지 않는 전술한 일부 순서도 구성과 동일하므로 상세한 설명은 생략한다. Q의 순서는 수직적인 관계를 갖는 블록에 기반한 후보군 구성과 결합된 구성일 수 있는데, 대상 블록과 인접한 블록은 상관성이 낮은 블록으로 구성되어 있는 경우에 후보군 구성에 기준이 되는 블록 단위를 변경하여 후보군을 구성하는 예시일 수 있다. 다음 설명에서 이전과 중복적인 설명은 생략하고, 차이나는 부분에 집중한다.
(2B)에서 후보군 기준이 되는 블록을 제 1 상대 블록으로 변경한다. 여기서, 제 1 상대 블록은 대상 블록과 수직적인 관계를 갖는 블록(여기서, 상위 블록)일 수 있다.
(3B)에서 대상 블록의 부호화 정보에 관한 후보군 구성을 위해 사용되는 제 2 상대 블록을 특정한다. 여기서, 제 2 상대 블록은 기준 블록과 수평적인 관계를 갖는 블록일 수 있으며, 기준 블록은 상위 블록이다. (4B)에서는 상기 과정을 통해 특정되는 제 2 상대 블록의 부호화 정보를 소정의 순서에 따라 후보군을 구성한다.
여기서, 대상 블록과 상관성이 낮다고 판단되는 기준은 상기 순서도에서는 블록의 개수로 구분하는 경우를 설명하지만, 다양한 판단되는 기준의 설정이 가능할 수 있다.
상기 다양한 예를 통해 블록 간의 다양한 관계를 살펴보았고, 이를 이용하여 부호화/복호화가 수행되는 경우에 대해 살펴보았다. 후술하는 다양한 부호화/복호화 과정에서 전술한 블록 간의 관계에 기반한 알고리즘을 설명할 때, 상세한 설명을 덧붙이지 않더라도 전술한 다양한 실시예를 통해 제시한 설정 등이 동일하거나 비슷하게 적용될 수 있음을 이해하여야 한다.
(화면내 예측)
본 발명의 일 실시예에 따른 영상 부호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 포함할 수 있다. 또한, 영상 부호화 장치는 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 구현하는 참조 화소 구성부, 예측 블록 생성부, 예측 모드 부호화부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
본 발명의 일 실시예에 따른 영상 복호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 포함할 수 있다. 또한, 영상 복호화 장치는 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 구현하는 예측 모드 복호화부, 참조 화소 구성부, 예측 블록 생성부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
영상 복호화 장치의 참조 화소 구성부, 예측 블록 생성부는 영상 부호화 장치의 대응되는 구성과 동일한 역할을 수행하므로 상세한 설명은 생략하며, 예측 모드 복호화부는 예측 모드 부호화부에서 사용한 방식을 역으로 사용하여 수행될 수 있다.
(서브 블록 단위의 화면내 예측)
화면내 예측은 부호화 블록이 예측 블록으로 설정되어 수행될 수 있거나 또는 부호화 블록이 하나 이상의 예측 블록으로 분할되어 수행될 수 있다. 여기서, 부호화 블록은 트리 또는 인덱스 기반의 개별적인 분할 과정을 통해 획득된 단위를 의미하며, 예측 블록으로의 분할과는 별개의 과정을 의미한다. 여기서, 하나 이상의 예측 블록으로 분할되어 화면내 예측이 수행되는 것을 서브 블록 단위의 화면내 예측이라 지칭한다. 여기서, 부호화 블록에서 발생하는 하나의 예측 모드가 부호화 블록 내의 모든 예측 블록에 공유되는 설정을 가정하나, 이에 한정되지 않는다.
서브 블록 단위의 화면내 예측은 분할 여부를 나타내는 정보가 발생할 수 있다. 일 예로, 상기 정보가 1이면 분할을 수행함을 의미하고, 0이면 분할이 수행되지 않음을 의미한다. 분할이 수행된 경우에는 수평 또는 수직 등의 분할 방향을 나타내는 정보가 발생할 수 있다. 일 예로, 상기 정보가 0이면 수평 분할을 의미하고, 1이면 수직 분할을 의미하며, 이의 반대되는 구성이 가능할 수 있다. 또는, 대상 블록의 크기, 형태, 위치 등의 상태 정보에 따라 정해질 수 있다.
예를 들어, 대상 블록의 너비가 소정의 문턱크기보다 큰 경우 수평 방향으로 분할되고, 대상 블록의 높이가 소정의 문턱크기보다 큰 경우 수직 방향으로 분할될 수 있다. 여기서, 문턱크기는 2, 4, 8, 16, 32와 같은 2 이상의 정수일 수 있다.
분할 블록 개수에 관한 정보가 추가로 발생할 수 있으며, 2, 4, 8 또는 그 이상의 정수일 수 있다. 또는, 부호화 설정에 따라 묵시적으로 정해질 수 있다. 여기서, 부호화 설정은 대상 블록의 크기, 형태, 위치, 화면내 예측 모드 등의 상태 정보, 영상 타입(I/P/B), 컬러 성분(Y/Cb/Cr) 등에서 하나 이상의 요인에 따라 정의될 수 있다.
예를 들어, 대상 블록의 크기가 소정의 문턱 크기보다 큰 경우에는 분할 개수는 4개이고, 그렇지 않을 경우에는 2개일 수 있다. 여기서, 소정의 문턱크기는 너비(W)와 높이(H)에 의해 W, H, W x H, W*H로 표현될 수 있으며, W와 H는 4, 8, 16 또는 그 이상의 정수일 수 있다.
후술하는 예를 통해 부호화 블록 단위로 화면내 예측을 수행하는 경우를 중심으로 설명한다.
(화면내 예측 모드 후보군 구성)
도 12는 영상 부호화/복호화 장치에 지원되는 화면내 예측 모드를 나타낸 예시도이다.
도 12를 참조하면, 67개의 예측 모드가 화면내 예측을 위한 예측 모드 후보군으로 구성되어 있으며, 이 중 65개는 방향성 모드(2번 내지 66번)이고 2개는 비방향성 모드(DC, Planar)이다. 이때, 방향성 모드는 기울기(예를 들어, dy/dx) 또는 각도 정보(Degree)로 구분할 수 있다. 상기 예에서 설명되는 예측 모드의 전부 또는 일부가 휘도 성분 또는 색차 성분의 예측 모드 후보군에 포함될 수 있고, 그 외의 추가적인 모드가 예측 모드 후보군에 포함될 수 있다.
또한, 컬러 공간 간의 상관성을 이용하여 부/복호화가 완료된 다른 컬러 공간의 복원 블록을 대상 블록의 예측에 사용할 수 있고, 이를 지원하는 예측 모드를 포함할 수 있다. 예를 들어, 색차 성분의 경우, 대상 블록과 대응되는 휘도 성분의 복원된 블록을 이용하여 대상 블록의 예측 블록을 생성할 수 있다. 즉, 컬러 공간 간의 상관성을 고려하여 복원된 블록을 기반으로 예측 블록을 생성할 수 있으며, 색차 성분을 위한 화면내 예측 모드로 포함될 수 있다.
색차 성분의 경우 휘도 성분의 예측 모드 후보군과 동일한 후보군을 갖거나 휘도 성분의 예측 모드 후보군 중 일부 모드와 색차 성분에 관한 추가적인 예측 모드(컬러 복사 모드, 컬러 모드)가 예측 모드 후보군에 포함될 수 있다. 여기서, 컬러 복사 모드의 경우 다른 컬러 공간 내 위치한 영역으로부터 예측 블록 생성을 위한 데이터를 획득하는 방법과 관련된 예측 모드일 수 있고, 컬러 모드의 경우 다른 컬러 공간 내 위치한 영역으로부터 예측 모드를 획득하는 방법과 관련된 예측 모드일 수 있다.
부/복호화 설정에 따라 예측 모드 후보군을 적응적으로 결정할 수 있다. 예측의 정확도를 높이기 위한 목적으로 후보군의 수를 늘릴 수 있고, 예측 모드에 따른 비트량을 줄이기 위한 목적으로 후보군의 수를 줄일 수 있다.
예를 들어, A 후보군(67개. 65개 방향성 모드와 2개의 비방향성 모드), B 후보군(35개. 33개의 방향성 모드와 2개의 비방향성 모드), C 후보군(18개. 17개의 방향성 모드와 1개의 비방향성 모드) 등의 후보군 중 하나를 선택할 수 있으며, 블록의 크기와 형태에 따라 적응적으로 후보군 선택이 가능하거나 결정될 수 있다.
또한, 부/복호화 설정에 따라 예측 모드 후보군의 구성을 다양하게 가질 수 있다. 예를 들어, 도 12와 같이 모드 사이가 균등하게 예측 모드 후보군을 구성하거나, 도 12에서 18번과 34번 모드 사이의 모드 개수가 2번과 18번 모드 사이의 모드 개수보다 더 많이 후보군을 구성할 수 있다. 또는, 그 반대의 경우가 가능할 수 있으며, 블록의 형태(즉, 정사각, 직사각_가로가 긴 형태, 직사각_세로가 긴 형태 등)에 따라 적응적으로 후보군이 구성될 수 있다. 예를 들어, 대상 블록의 너비가 높이보다 큰 경우, 2번 내지 15번에 속한 화면내 예측 모드는 이용되지 않고, 67번 내지 80번에 속한 화면내 예측 모드로 대체될 수 있다. 반면, 대상 블록의 너비가 높이보다 작은 경우, 53번 내지 66번에 속한 화면내 예측 모드는 이용되지 않고, -14번 내지 -1번에 속한 화면내 예측 모드로 대체될 수 있다.
본 발명에서 특별한 언급이 없을 때, 균등한 모드 간격을 갖는 기 설정된 하나의 예측 모드 후보군(A 후보군)으로 화면내 예측을 수행하는 경우를 가정하여 설명하지만, 본 발명의 주요 요소가 상기 설명과 같은 적응적인 화면내 예측 설정에도 변경되어 적용이 가능할 수 있다.
도 12는 블록의 형태가 정사각 또는 직사각일 때 지원되는 예측 모드일 수 있다. 또한, 블록의 형태가 직사각일 때 지원되는 예측 모드는 상기 예와 다른 예측 모드일 수 있다. 예를 들어, 예측 모드 후보군의 개수가 다르다던가 또는 예측 모드 후보군의 개수는 같지만 블록의 길이가 긴 쪽의 예측 모드가 밀집, 그 반대쪽은 예측 모드가 분산될 수 있거나 또는 그 반대 상황일 수 있다. 본 발명에서는 도 12와 같이 예측 모드가 블록의 형태와 관계없이 지원되는 예측 모드 설정(방향성 모드 간에 등간격) 하에 설명하지만, 그 외의 경우 또한 적용할 수 있다.
예측 모드에 할당되는 인덱스는 기 설정된 예측 모드를 기준으로 특정 방향 순서로 인덱스를 할당할 수 있다. 예를 들어, 도 12와 같이 일부 대각선 모드(2번 모드)부터 시계 방향으로 인덱스가 할당될 수 있다. 또한, 비방향성 예측 모드는 방향성 모드에 우선하여 인덱스 정보가 할당될 수 있거나 또는 방향성 모드 사이에 할당될 수 있거나 맨 끝에 할당될 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 상기 예에 한정되지 않고 다른 설정 하에 인덱스가 할당될 수 있거나 다양한 변형의 예가 가능할 수 있다.
상기 설명에서 예측 모드 후보군을 적응적으로 설정할 수 있음을 언급하였는데, 예측 모드 후보군 구성의 기준이 되는 블록(기준 블록)은 부호화 블록 또는 예측 블록(또는 변환 블록)일 수 있다. 블록 분할부를 통해 부호화 블록이 결정되면 그대로 예측 블록으로 설정될 수 있고, 부호화 블록이 결정되면 둘 이상의 예측 블록으로 분할될 수 있음을 설명하였다.
즉, 부호화 블록 또는 예측 블록을 기준 블록으로 설정하여 예측 모드 후보군이 구성되는 경우가 가능할 수 있다. 또한, 상기 언급된 단위 외에 예측 모드 후보군 설정의 기준 블록이 지원될 수 있다. 일 예로, 기준 블록과 수직적인 관계에 놓인 블록(상위 블록)이 그 대상이 될 수 있다.
다음의 설명을 위해 부호화 블록을 대상 블록으로, 부호화 블록의 수직적인 관계를 갖는 상위 블록을 상대 블록으로 가정할 수 있다. 또는, 예측 블록을 대상 블록으로, 부호화 블록을 상대 블록으로 가정할 수 있다.
기준 블록을 결정하고, 결정된 기준 블록의 크기, 형태, 위치 등의 상태 정보에 기반하여 예측 모드 후보군을 구성할 수 있다.
복수의 기준 블록 후보 중 하나에 기반하여 예측 모드 후보군을 구성하는 방법은 시퀀스, 픽쳐, 슬라이스, 타일 그룹, 타일, 브릭, 블록 등의 단위에서 명시적으로 지원 여부가 정해질 수 있다. 또는, 부호화 설정에 따라 묵시적으로 지원 여부가 정해질 수도 있다. 이때, 상기 부호화 설정은 블록(대상 블록)의 크기, 형태, 위치 등의 상태 정보, 영상 타입(I/P/B), 컬러 성분, 서브 블록 단위의 화면내 예측이 적용되는지 여부 등에서 하나 이상의 요소에 의해 정의될 수 있다.
예를 들어, 대상 블록의 크기가 소정의 제 1 문턱크기보다 크거나 같을 때 상기 방법(상위 블록을 기준 블록으로 설정)이 지원될 수 있다. 또는, 대상 블록의 크기가 소정의 제 2 문턱크기보다 작거나 같을 때 상기 방법이 지원될 수 있다. 여기서, 문턱크기는 너비(W)와 높이(H)를 통해 W, H, W x H, W*H로 표현될 수 있으며, 부호화/복호화 장치에서 기 약속된 값으로, W와 H는 4, 8, 16과 같은 1 이상의 정수일 수 있다. 너비와 높이의 합으로 표현되는 경우에는 W*H는 16, 32, 64 또는 그 이상의 정수일 수 있다. 제 1 문턱크기는 제 2 문턱크기보다 작거나 같다.
만약 복수의 기준 블록이 지원되는 경우 상대 블록은 다양한 정의가 가능할 수 있다. (부호화 블록이 대상 블록인 경우) 상대 블록(상위 블록)은 부호화 블록의 분할 깊이보다 1 이상 적은 분할 깊이를 갖는 블록일 수 있다. 또는, 소정의 좌상측 좌표에 소정의 너비(C)와 높이(D)를 가진 블록일 수 있다. 여기서, C와 D는 8, 16, 32 또는 그 이상의 정수일 수 있으며, 대상 블록의 너비와 높이보다 크거나 같을 수 있다. 또한, C와 D는 블록 크기에 관한 정보(예를 들어, 최대 변환 블록의 크기, 최대 부호화 블록의 크기 등)에 기초하여 결정될 수도 있다.
만약 복수의 기준 블록을 지원하여 예측 모드 후보군을 구성하는 방법이 지원되지 않는 경우라면, 기 정의된 기준 블록(부호화 블록, 예측 블록 중에 하나)에 기반하여 예측 모드 후보군을 구성할 수 있다.
(참조 화소 구성 1)
도 13은 본 발명의 일 실시예에 따른 화면내 예측에 사용되는 참조 화소 구성을 설명하기 위한 예시도이다. 상세하게는, 참조 화소 구성을 위한 기준 블록이 M x N인 경우를 가정한다.
참조 화소 구성부에서는 화면내 예측에 사용되는 참조 화소를 구성할 수 있다. 이때, 참조 화소는 임시 메모리(예를 들어, 배열<Array>. 1차, 2차 배열 등)를 통해 관리될 수 있으며, 화면내 예측 과정마다 생성 및 제거될 수 있고 임시 메모리의 크기는 참조 화소의 구성에 따라 결정될 수 있다.
본 예에서는 기준 블록을 중심으로 좌, 상, 좌상, 우상, 좌하 블록이 화면내 예측에 사용되는 경우를 가정하여 설명하지만, 이에 한정되지 않고 다른 구성의 블록 후보군이 화면내 예측에 사용될 수도 있다.
예를 들어, 상기 참조 화소를 위한 이웃 블록의 후보군은 래스터 또는 Z 스캔을 따르는 경우의 일 예일 수 있으며, 스캔 순서에 따라 상기 후보군 중 일부를 제거할 수 있거나 또는 다른 블록 후보군(예를 들어, 우, 하, 우하 블록 등이 추가 구성)을 포함하여 구성될 수 있다.
도 13과 같이 화면내 예측에 사용되는 참조 화소는 좌, 상, 좌상, 우상, 좌하 블록의 인접한 화소(도 13의 Ref_L, Ref_T, Ref_TL, Ref_TR, Ref_BL)로 구성할 수 있다. 이때, 참조 화소는 기준 블록과 가장 인접한 이웃 블록의 화소들(도 13의 a. 이것을 참조 화소 라인으로 표현)로 구성하는 것이 일반적이나 그 외의 화소들(도 13의 b와 그 외의 바깥 라인의 화소들)도 참조 화소에 구성하는 것이 가능할 수 있다.
기준 블록과 인접한 화소는 적어도 하나의 참조 화소 라인으로 분류할 수 있는데, 기준 블록과 가장 인접한 화소는 ref_0{예를 들어, 기준 블록의 경계 화소와 화소 간 거리가 1인 화소들. p(-1,-1) ~ p(2m-1,-1), p(-1,0) ~ p(-1,2n-1)}, 그 다음 인접한 화소{예를 들어, 기준 블록의 경계 화소와 화소 간 거리가 2. p(-2,-2) ~ p(2m,-2), p(-2,-1) ~ p(-2,2n)}는 ref_1, 그 다음 인접한 화소{예를 들어, 기준 블록의 경계 화소와 화소 간 거리가 3. p(-3,-3) ~ p(2m+1, -3), p(-3,-2) ~ p(-3,2n+1)}는 ref_2 등으로 나눌 수 있다. 즉, 기준 블록의 경계 화소와 인접한 화소 거리에 따라 참조 화소 라인으로 분류할 수 있다.
여기서 지원되는 참조 화소 라인은 N개 이상일 수 있으며, N은 1, 2, 3, 4 또는 그 이상의 정수일 수 있다. 이때, 기준 블록에 최인접한 참조 화소 라인부터 순차적으로 참조 화소 라인 후보군에 포함되는 것이 일반적이나, 이에 한정되지 않는다. 예를 들어, N이 3일 경우 <ref_0, ref_1, ref_2>와 같이 순차적으로 상기 후보군이 구성될 수 있거나 또는 <ref_0, ref_1, ref_3>, <ref_0, ref_2, ref_3>, <ref_1, ref_2, ref_3>와 같이 순차적이지 않거나 최인접한 참조 화소 라인을 제외하는 구성으로 상기 후보군이 구성되는 것 또한 가능할 수 있다.
상기 후보군 내의 모든 참조 화소 라인을 사용하여 예측을 수행하거나 또는 일부 참조 화소 라인(하나 이상)을 사용하여 예측을 수행할 수 있다.
예를 들어, 부/복호화 설정에 따라 복수의 참조 화소 라인 중 하나가 선택되어 해당 참조 화소 라인을 사용하여 화면내 예측을 수행할 수 있다. 또는, 복수의 참조 화소 라인 중 둘 이상이 선택되어 해당 참조 화소 라인을 사용(예를 들어, 각 참조 화소 라인의 데이터에 가중치 평균 등을 적용)하여 화면내 예측을 수행할 수 있다.
여기서 참조 화소 라인 선택은 묵시적 또는 명시적으로 정해질 수 있다. 예를 들어, 묵시적인 경우에는 영상 타입, 컬러 성분, 블록의 크기/형태/위치 등의 요소 중 하나 또는 둘 이상의 조합에 따라 정의되는 부/복호화 설정에 따라 정해지는 것을 의미한다. 또한, 명시적인 경우는 블록 등의 단위에서 참조 화소 라인 선택 정보가 발생할 수 있음을 의미한다.
본 발명에서는 최인접한 참조 화소 라인을 사용하여 화면내 예측을 수행하는 경우를 중심으로 설명하지만, 후술하는 다양한 실시예가 복수의 참조 화소 라인을 사용하는 경우에도 동일하거나 비슷한 적용이 가능함을 이해하여야 한다.
기준 블록의 너비와 높이는 각각 W와 H, 선택된 참조 화소 라인은 refidx(0이면 최인접한 화소 라인)라고 가정하면 다음과 같은 참조 화소(참조 화소 범위)가 획득될 수 있다.
<기준 블록 좌측>
p(- 1 - refidx, - 1 - refidx) ~ p(- 1 - refidx, 2H -1)
<기준 블록 상측>
p(- refidx, - 1 - refidx) ~ p(2W - 1, - 1 - refidx)
상기 참조 화소는 기준 블록의 소정의 좌표(좌상측을 <0, 0>으로 설정)를 기준으로 상대적인 좌표가 계산된 위치일 수 있으며, 참조 화소의 영상 내 위치는 기준 블록의 좌상측 좌표(a, b)를 각각 x와 y 성분에 가산하여 확인할 수 있다.
상기 설명에서 참조 화소를 구성하는데 기준이 되는 블록(기준 블록)은 부호화 블록 또는 예측 블록(또는 변환 블록)일 수 있다. 또한, 상기 블록과 수직적인 관계를 갖는 블록(상위 블록)이 참조 화소를 구성하는데 기준 블록으로 사용될 수 있다.
다음의 설명을 위해 부호화 블록을 대상 블록으로, 부호화 블록의 수직적인 관계를 갖는 상위 블록을 상대 블록으로 가정할 수 있다. 또는, 예측 블록을 대상 블록으로, 부호화 블록을 상대 블록으로 가정할 수 있다.
기준 블록을 결정하고, 결정된 기준 블록의 크기, 형태, 위치 등의 상태 정보에 기반하여 참조 화소(참조 화소 후보군)를 구성할 수 있다.
복수의 기준 블록 후보 중 하나에 기반하여 참조 화소를 구성하는 방법은 시퀀스, 픽쳐, 슬라이스, 타일 그룹, 타일, 브릭, 블록 등의 단위에서 명시적으로 지원 여부가 정해질 수 있다. 또는, 부호화 설정에 따라 묵시적으로 지원 여부가 정해질 수도 있다. 이때, 상기 부호화 설정은 블록(대상 블록)의 크기, 형태, 위치 등의 상태 정보, 영상 타입(I/P/B), 컬러 성분, 서브 블록 단위의 화면내 예측이 적용되는지 여부 등에서 하나 이상의 요소에 의해 정의될 수 있다.
예를 들어, 대상 블록의 크기가 소정의 제 1 문턱크기보다 크거나 같을 때 상기 방법이 지원될 수 있다. 또는, 대상 블록의 크기가 소정의 제 2 문턱크기보다 작거나 같을 때 상기 방법이 지원될 수 있다. 여기서, 문턱크기는 너비(W)와 높이(H)를 통해 W, H, W x H, W*H로 표현될 수 있으며, 부호화/복호화 장치에서 기 약속된 값으로, W와 H는 4, 8, 16과 같은 1 이상의 정수일 수 있다. 너비와 높이의 합으로 표현되는 경우에는 W*H는 16, 32, 64 또는 그 이상의 정수일 수 있다. 제 1 문턱크기는 제 2 문턱크기보다 작거나 같다.
또한, 서브 블록 단위의 화면내 예측이 적용되어 둘 이상의 블록으로 분할되는 경우 상기 방법이 지원될 수 있다. 이때, 예측 블록(서브 블록)이 대상 블록이고 부호화 블록이 상대 블록일 경우, 기준 블록은 대상 블록으로 결정될 수 있거나 또는 상대 블록으로 결정될 수 있다. 여기서, 복수의 기준 후보 블록 중에 하나에 기반하여 참조 화소를 구성하는 방법이 사용되지 않는 경우, 기준 블록은 예측 블록으로 설정될 수 있다. 또는, 그 반대의 경우로 설정될 수도 있다.
만약 복수의 기준 블록이 지원되는 경우 상대 블록은 다양한 정의가 가능할 수 있다. (부호화 블록이 대상 블록인 경우) 상대 블록(상위 블록)은 부호화 블록의 분할 깊이보다 1 이상 적은 분할 깊이를 갖는 블록일 수 있다. 또는, 소정의 좌상측 좌표에 소정의 너비(C)와 높이(D)를 가진 블록일 수 있다. 여기서, C와 D는 4, 8, 16 또는 그 이상의 정수일 수 있으며, 대상 블록의 너비와 높이보다 크거나 같을 수 있다. 또한, C와 D는 블록 크기에 관한 정보(예를 들어, 최대 변환 블록의 크기, 최대 부호화 블록의 크기 등)에 기초하여 결정될 수도 있다.
만약 복수의 기준 블록을 지원하여 참조 화소를 구성하는 방법이 지원되지 않는 경우라면, 기 정의된 기준 블록(부호화 블록 또는 예측 블록 중에 하나)에 기반하여 참조 화소를 구성할 수 있다.
도 14는 기준 블록에 따라 획득 가능한 참조 화소 구성에 관한 예시도이다.
도 14를 참조하면, (a)는 화면내 예측이 수행되는 블록(빗금친 영역)에 인접하게 참조 화소가 구성되는 경우, (b)와 (c)는 화면내 예측이 수행되는 블록 중 일부 경계에는 인접하고 일부 경계에는 인접하지 않게 참조 화소가 구성되는 경우, (d)는 화면내 예측이 수행되는 블록에 인접하지 않게 참조 화소가 구성되는 경우를 나타낸다. 이는 기준 블록의 설정에 따라 발생 가능한 다양한 경우일 수 있다.
도 15는 화면내 예측의 대상 블록과 인접한 블록을 나타내는 개념도이다. 상세하게는, 도 15의 좌측은 현재 컬러 공간의 대상 블록과 인접한 블록을 나타내고, 우측은 다른 컬러 공간의 대응되는 블록을 나타낸다.
특히, 일부 예측 모드(컬러 복사 모드)가 지원되는 경우라면 다른 컬러 공간의 일부 영역이 화면내 예측에 사용될 수 있기 때문에 이 또한 참조 화소로 고려할 수 있다.
상기 도면은 대상 블록을 중심으로 인접한 블록을 나타내지만, 대상 블록이 후술하는 일부 예시에서는 기준 블록으로 설정되어 이해될 수도 있다.
(화면내 예측 전처리/참조 화소 구성 2)
본 발명의 화면내 예측의 참조 화소 구성부는 참조 화소 생성부, 참조 화소 보간부, 참조 화소 필터부 등을 포함할 수 있으며, 상기 구성의 전부 또는 일부를 포함하여 구성할 수 있다.
참조 화소 구성부에서 참조 화소 사용 가능성(Availability)을 확인하여 사용 가능한 참조 화소와 사용 불가한 참조 화소를 분류할 수 있다. 여기서 상기 참조 화소 사용 가능성은 다음의 조건 중 적어도 하나를 만족하는 경우에 사용 불가로 판단한다.
예를 들어, 픽쳐 경계 바깥에 위치하는 경우, 기준 블록과 동일한 분할 단위(예를 들어, 슬라이스, 타일 등과 같이 서로 참조가 불가능한 단위. 단, 슬라이스나 타일과 같은 단위라도 서로 참조 가능한 특성을 갖는 경우에는 동일한 분할 단위가 아니더라도 예외 처리)에 속하지 않는 경우, 부/복호화가 완료되지 않은 경우 중 하나라도 만족하는 경우에는 사용 불가로 판단할 수 있다. 즉, 상기 조건을 하나도 만족하지 않는 경우에는 사용 가능으로 판단할 수 있다.
또한, 부/복호화 설정에 의해 참조 화소 사용을 제한할 수 있다. 예를 들어, 상기 조건에 따라 사용 가능으로 판단된 경우라 할지라도 제한된 화면내 예측(예를 들어, constrained_intra_pred_flag)의 수행 여부에 따라 참조 화소 사용이 제한될 수 있다. 제한된 화면내 예측은 통신 환경 등의 외부 요인에 에러 강인한 부/복호화를 수행하고자 할 때 다른 영상으로부터 참조되어 복원된 블록을 참조 화소로 사용을 금지하고자 할 때 수행될 수 있다.
제한된 화면내 예측이 비활성화된 경우(예를 들어, I 영상 타입. 또는 P나 B 영상 타입에서 constrained_intra_pred_flag = 0)에 참조 화소 후보 블록은 모두 사용 가능할 수 있다.
또는, 제한된 화면내 예측이 활성화된 경우(예를 들어, P나 B 영상 타입에서 constrained_intra_pred_flag = 1)에 참조 화소 후보 블록은 부호화 모드(Mode_Intra, Mode_InterD, Mode_InterC)에 따라 사용 여부를 판단하는 조건으로 가정할 것이나, 이 외의 다양한 부/복호화 요소에 따라 상기 조건이 정해질 수도 있다.
참조 화소는 하나 이상의 블록으로 구성되어 있기 때문에 상기 참조 화소 가능성을 확인한 후 분류하면 <모두 사용 가능>, <일부 사용 가능>, <모두 사용 불가>와 같이 세 가지 경우로 분류할 수 있다. 모두 사용 가능한 경우를 제외한 나머지 경우에는 사용 불가한 후보 블록 위치의 참조 화소를 채우거나 생성할 수 있다.
참조 화소 후보 블록이 사용 가능한 경우에는 해당 위치의 화소를 대상 블록의 참조 화소 메모리에 포함할 수 있다. 이때, 상기 화소 데이터는 그대로 복사되거나 참조 화소 필터링, 참조 화소 보간 등의 과정을 통해 참조 화소 메모리에 포함할 수 있다. 또한, 참조 화소 후보 블록이 사용 불가한 경우에는 참조 화소 생성 과정을 통해 획득된 화소를 대상 블록의 참조 화소 메모리에 포함할 수 있다.
다음은 다양한 방법을 사용하여 사용 불가한 블록 위치의 참조 화소를 생성하는 예를 나타낸다.
예를 들어, 임의의 화소값을 사용하여 참조 화소를 생성할 수 있다. 여기서 임의의 화소값이란 화소값 범위(예를 들어, 비트 심도에 기초한 화소값 범위 또는 해당 영상 내 화소 분포에 따른 화소값 범위)에 속하는 하나의 화소값(예를 들어, 화소값 범위의 최소값, 최대값, 중앙값 등)일 수 있다. 상세하게는, 참조 화소 후보 블록이 모두 사용 불가한 경우에 적용되는 예일 수 있다.
또는, 영상의 부/복호화가 완료된 영역으로부터 참조 화소를 생성할 수 있다. 상세하게는, 사용 불가한 블록에 인접한 적어도 하나의 사용 가능한 블록으로부터 참조 화소를 생성할 수 있다. 이때, 외삽, 내삽, 복사 등의 방법 중 적어도 하나를 사용할 수 있다.
상기 참조 화소 구성을 완료한 후에 참조 화소 필터링 또는 참조 화소 보간을 수행할 수 있다. 예를 들어, 참조 화소 필터링만 수행할 수 있고, 참조 화소 보간만 수행할 수 있고, 참조 화소 필터링과 참조 화소 보간을 수행할 수 있다. 참조 화소 필터링이 참조 화소 보간에 선행하거나 후행할 수 있으며, 동시에 결합되어 수행될 수도 있다.
다음을 통해 참조 화소 보간과 참조 화소 필터링에 관하여 설명한다.
참조 화소 필터링은 참조 화소에 남아있는 열화를 줄여주기 위한 목적으로 수행되는 과정일 수 있다. 참조 화소 필터링에 [1,2,1] / 4, [2, 3, 6, 3, 2] / 16 등과 같이 다양한 필터 탭의 길이 및 계수 설정으로 구분 가능한 복수의 필터 중 하나일 수 있다. 또한, 필터의 종류를 달리하여 복수의 필터링이 수행될 수도 있다.
참조 화소 필터링은 명시적으로 수행 여부가 결정될 수 있거나 또는 부호화 설정에 따라 묵시적으로 수행 여부가 정해질 수 있다. 여기서, 부호화 설정은 기준 블록(대상 블록 또는 상대 블록<상위 블록>. 여기서, 대상 블록이라 가정)의 상태 정보(블록의 크기, 형태, 위치 등), 영상 타입(I/P/B), 컬러 성분(Y/Cb/Cr), 참조 화소 라인 선택 정보, 서브 블록 단위의 화면내 예측이 적용되는지 여부, 화면내 예측 모드 등에 기반하여 정의될 수 있다.
일 예로, 기준 블록의 크기가 소정의 제 1 문턱크기보다 이상/초과인 경우에는 필터링이 수행될 수 있고, 그렇지 않은 경우에는 필터링이 수행되지 않을 수 있다. 또는, 기준 블록의 크기가 소정의 제 2 문턱크기보다 이하/미만인 경우에는 필터링이 수행될 수 있고, 그렇지 않은 경우에는 필터링이 수행되지 않을 수 있다. 여기서, 문턱 크기는 너비(W)와 높이(H)으로 W, H, W x H, W*H 등으로 표현될 수 있고, W와 H는 4, 8, 16, 32 또는 그 이상의 정수일 수 있다. 특히, W*H와 같이 너비와 높이의 곱으로 표현되는 경우 16, 32, 64 또는 그 이상의 정수일 수 있다. 제 1 문턱크기는 제 2 문턱크기보다 작거나 같다.
일 예로, 기준 블록의 형태가 정사각 형태인 경우에는 필터링이 수행될 수 있고, 그렇지 않은 경우에는 필터링이 수행되지 않을 수 있다. 또는, 기준 블록의 형태가 직사각 형태이며 가로로 긴 형태(또는 세로로 긴 형태)일 때 필터링이 수행될 수 있고, 그렇지 않은 경우에는 필터링이 수행되지 않을 수 있다. 기준 블록의 가로/세로 비가 소정의 문턱값보다 초과/이상인 경우에는 필터링을 수행할 수 있고, 그렇지 않은 경우에는 필터링이 수행되지 않을 수 있다. 여기서, 문턱값 비율은 1:2, 1:3, 1:4, 2:3 등으로 설정될 수 있다. 여기서, 블록의 형태는 예측 모드와 결합되어 설정이 정해지는 것이 바람직할 수 있다.
일 예로, 기준 블록이 컬러 성분에 상관없이 필터링이 수행될 수 있거나 또는 소정의 컬러 성분(휘도 또는 색차)에 속하는 경우에만 필터링이 수행될 수 있다.
일 예로, 기준 블록의 예측 모드가 비방향성 모드인 경우에는 필터링이 수행될 수 있고, 그렇지 않은 경우에는 필터링이 수행되지 않을 수 있다. 여기서, 비방향성 모드는 DC와 Planar 모드 둘 다 포함하거나 둘 중에 하나만 포함될 수 있다. 즉, Planar 모드에는 필터링이 수행되고 DC 모드에는 필터링이 수행되지 않을 수 있거나 또는 그 반대일 수 있다. 또는, 방향성 모드 중 소정의 모드에는 필터링이 수행될 수 있고, 그렇지 않은 모드에는 필터링이 수행되지 않을 수 있다. 여기서, 소정의 모드는 방향성 모드 중 대각선 모드(수평과 수직이 아닌 방향성 모드)인 경우에는 필터링이 수행될 수 있고, 그렇지 않은 경우에는 필터링이 수행되지 않을 수 있다. 여기서, 대각선 모드 중 정수 단위의 화소만 참조하는 모드와 정수 단위와 소수 단위의 화소를 참조하는 모드 둘 다 포함하거나 또는 둘 중에 하나만 포함될 수 있다. 즉, 정수 단위의 화소만 참조하는 모드에는 필터링이 수행되고, 정수 단위와 소수 단위의 화소를 참조하는 모드에는 필터링이 수행되지 않을 수 있거나 또는 그 반대일 수 있다. 여기서, 정수 단위의 화소만 참조하는 모드는 도 12의 -14번, -12번, -10번, -6번, 2번, 34번, 66번, 72번, 78번, 80번에 해당하는 모드 중 적어도 하나를 포함할 수 있다. 즉, 참조 화소 보간을 수행하지 않는 모드일 수 있으며, 예측 모드 후보군의 구성 변경에 따라 상기 예측 모드 번호 또한 변경될 수 있다. 여기서, 수평 또는 수직 모드에 필터링이 수행되는 예외 상황이 적용될 수도 있다.
상기 예에서 언급된 전부 또는 일부 요소를 고려(결합)하여 필터링 수행 여부가 정해질 수 있다. 상기 예는 일부 예시일 뿐, 다양한 변형의 예가 가능할 수 있다.
필터링이 수행되는 경우 필터 선택 정보가 명시적 또는 묵시적으로 정해질 수 있으며, 이는 부호화 설정에 기반할 수 있다. 이때, 부호화 설정은 전술한 다양한 요소에 의해 정의될 수 있으며, 이에 관한 설명은 상기 예를 통해 유도가 가능하므로 상세한 설명은 생략한다.
참조 화소 보간은 전술한 것처럼 정수 단위의 화소만을 참조하는 예측 모드에는 참조 화소 보간이 수행되지 않고, 소수 단위의 화소가 참조되는 예측 모드에는 참조 화소 보간이 수행될 수 있다.
예측 모드(예를 들어, 예측 모드의 방향성. dy/dx 등)와 참조 화소 및 예측 화소의 위치에 따라 보간이 수행되는 화소 위치(즉, 어느 소수 단위가 보간되는지. 1/2 ~ 1/64 등에서 정해짐)가 정해질 수 있다. 이때, 소수 단위의 정밀도에 상관없이 하나의 필터(예를 들어, 필터 계수나 필터 탭의 길이를 결정하기 위해 사용되는 수학식은 동일한 필터를 가정. 단, 소수 단위의 정밀도<예로, 1/32, 7/32, 19/32>에 따라 계수만 조정되는 필터를 가정)가 적용될 수 있거나 또는 복수의 필터(예를 들어, 필터 계수나 필터 탭의 길이를 결정하기 위해 사용되는 수학식이 구분되는 필터를 가정) 중 하나가 소수 단위에 따라 선택되어 적용될 수 있다.
전자의 경우 소수 단위 화소의 보간을 위해 정수 단위의 화소를 입력으로 사용하는 예일 수 있고, 후자의 경우 단계별로 입력 화소를 달리하는 예(예를 들어, 1/2 단위의 경우 정수 화소 사용. 1/4 단위의 경우 정수와 1/2 단위 화소 사용 등)일 수 있으나, 이에 한정되지 않으며 본 발명에서는 전자인 경우를 중심으로 설명한다.
참조 화소 보간을 위해 고정적인 필터링 또는 적응적인 필터링을 수행할 수 있으며, 이는 부호화 설정에 따라 정해질 수 있다. 여기서, 부호화 설정은 기준 블록의 상태 정보, 영상 타입, 컬러 성분, 참조 화소 라인 선택 정보, 서브 블록 단위의 화면내 예측이 적용되는지 여부, 화면내 예측 모드 등에 기반하여 정의될 수 있다.
고정적인 필터링은 하나의 필터를 사용하여 참조 화소 보간을 수행할 수 있고, 적응적인 필터링은 복수의 필터 중 하나를 사용하여 참조 화소 보간을 수행할 수 있다.
이때, 적응적인 필터링의 경우 부/복호화 설정에 따라 복수의 필터 중 하나가 묵시적으로 정해질 수 있거나 명시적으로 결정될 수 있다. 이때, 필터의 종류는 4-tap DCT-IF 필터, 4-tap 큐빅 필터, 4-tap 가우시안 필터, 6-tap 위너 필터, 8-tap 칼만 필터 등에서 하나 이상 선택되어 구성될 수 있으며, 컬러 성분에 따라 지원되는 필터 후보군이 달리 정의되는 것(예를 들어, 필터의 종류가 일부는 같거나 다르거나, 그리고 필터 탭의 길이가 짧거나 길거나 등) 또한 가능할 수 있다.
참조 화소 보간 과정에서 수행되는 필터링과 참조 화소 필터링 과정에서 수행되는 필터링의 중복 수행에 따라 일부 화소의 왜곡이 발생할 수 있다. 이를 위해 참조 화소 필터링 설정과 함께 고려되어 참조 화소 보간 필터 설정이 정해질 수 있다. 참고로, 참조 화소 보간이 수행되는 예측 모드에는 참조 화소 필터링을 수행하지 않는 것이 하나의 예시일 수 있다.
상기 설명에서 기준 블록은 부호화 블록, 예측 블록, 또는 상위 블록 중에 하나로 결정될 수 있으며, 이에 관한 설명은 전술한 예를 통해 유도할 수 있다.
(참조 화소 구성 3)
서브 블록 단위의 화면내 예측이 수행되는 경우의 참조 화소 구성에 관하여 살펴본다. 전술한 복수의 참조 화소 라인과 참조 화소 필터링 등의 일부 설정은 부호화 블록 단위로 구성되거나 설정되는 예일 수 있다. 복수의 참조 화소 라인 중 하나의 라인을 선택하여 화면내 예측을 수행할 수 있고, 참조 화소 필터링을 수행하여 참조 화소의 열화를 줄여줄 수 있다.
다만, 대상 블록과 인접한 블록의 특성이 어떤 상관관계를 갖는지 정확히 알 수가 없기 때문에 참조 화소 구성 관련하여 일부는 명시적인 설정(참조 화소 라인 선택 정보)이 필요할 수 있고, 일부는 제한적인 설정(일부 예측 모드는 참조 화소 필터링을 금지)이 필요할 수 있다.
예를 들어, 대상 블록과 인접한 블록이 상관관계가 높은 경우라면 복수의 참조 화소 라인 중 하나를 선택하는 방식보다 참조 화소 라인을 둘 이상 사용하여 예측을 수행하는 것이 양자화 에러 등을 줄여줌으로써 더 예측의 정확도가 높아질 수 있다.
또는, 소정의 예측 모드에도 참조 화소 필터링을 수행할 수 있어, 참조 화소의 열화를 줄여주는데 효과적일 수 있다.
서브 블록 단위의 화면내 예측은 대상 블록(예측 블록)과 인접한 블록 간의 상관관계가 높음을 알 수 있는 경우일 수 있다. 특히, 상위 블록(부호화 블록)의 에지가 어떤 방향인지 하나의 정보로 공유(예측 모드)되는 특성이 존재하기 때문에, 인접한 예측 블록이 모두 동일한 예측 방향임을 사전에 알 수 있다.
서브 블록 단위의 화면내 예측이 수행될 때 다음과 같은 참조 화소 구성 및 설정이 가능할 수 있다. 우선, 대상 블록(부호화 블록)을 중심으로 복수의 참조 화소 라인 중 하나를 선택할 수 있고, 참조 화소 필터링, 참조 화소 보간을 다양한 부호화 요소에 의해 정의되는 부호화 설정에 따를 수 있음을 전제한다.
예를 들어, 대상 블록(예측 블록)을 위해 기 정의된 하나의 참조 화소 라인(최인접한 라인)이 지원되고, 참조 화소 필터링, 참조 화소 보간은 고정적인 설정(예로, 필터링을 수행하지 않거나 하나의 보간 필터만을 사용하는 등)에 의해 수행될 수 있다.
또는, 대상 블록을 위해 기 정의된 복수의 참조 화소 라인이 지원(묵시적)된다. 상세하게는, 부호화 블록 내 첫번째 예측 블록(부호화 블록 상측 또는 좌측 경계에 인접)은 하나의 참조 화소 라인을 사용하여 화면내 예측을 수행한다. 두번째 예측 블록은 부호화 블록이 인접한 참조 화소 라인과 부호화가 완료된 첫번째 예측 블록으로 복수의 참조 화소 라인으로 설정하여 화면내 예측을 수행할 수 있다. 세번째 이후의 예측 블록은 부호화가 완료된 이전 예측 블록(본 예에서 첫번째와 두번째 대상 블록)으로 복수의 참조 화소 라인을 설정하여 화면내 예측을 수행할 수 있다.
또한, 참조 화소 필터링은 예측 블록의 하나의 참조 화소 라인에 놓인 참조 화소 라인뿐만 아니라 다른 참조 화소 라인에 놓인 참조 화소까지 고려하여 수행될 수 있다. 상세하게는, 서브 블록의 분할 방향이 수평 분할이고 예측 모드는 수직 모드인 경우, 복수의 참조 화소 라인에 수직 방향으로 놓인 참조 화소에 참조 화소 필터링을 적용할 수 있다. 참조 화소 보간 또한 적응적인 설정을 적용하여 수행할 수 있다.
상기 예는 서브 블록 단위의 화면내 예측을 위한 설정에 관한 일부 경우이며, 이에 한정되지 않고 다양한 변형이 가능할 수 있다. 즉, 서브 블록 단위의 화면내 예측을 위한 설정은 일반적인 화면내 예측과 다른 특성(블록 내 예측 방향이 공유됨)인 경우를 고려하여 참조 화소 구성 설정이 지원될 수 있다.
(예측 수행 및 모드 결정)
예측 블록 생성부에서 적어도 하나의 예측 모드에 따라 예측 블록을 생성할 수 있으며, 상기 예측 모드에 기반하여 참조 화소를 사용할 수 있다. 이때, 참조 화소는 예측 모드에 따라 외삽(Extrapolation) 등의 방법(방향성 모드)에 사용될 수 있고, 내삽(Interpolation) 또는 평균(DC) 또는 복사(Copy) 등의 방법(비방향성 모드)에 사용될 수 있다.
예측 모드 결정부에서는 복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행된다. 일반적으로 블록의 왜곡{예를 들어, 대상 블록과 복원 블록의 Distortion. SAD(Sum of Absolute Difference), SSD(Sum of Square Difference 등}과 해당 모드에 따른 발생 비트량이 고려되는 율-왜곡(Rate-Distortion) 기법을 이용하여 부호화 비용 측면에서 최적인 모드를 결정할 수 있다. 상기 과정을 통해 결정되는 예측 모드에 기반하여 생성되는 예측 블록을 감산부와 가산부로 송신할 수 있다.
최적의 예측 모드를 결정하기 위해 예측 모드 후보군에 존재하는 모든 예측 모드를 탐색할 수 있거나 또는 연산량/복잡도 감소를 위한 목적으로 다른 결정 과정를 거처 최적의 예측 모드를 선정할 수 있다. 예를 들어, 첫번째 단계에서는 화면내 예측 모드 후보 전체에 대해 화질 열화 관점에서 좋은 성능을 보이는 일부 모드를 선정하고, 두번째 단계에서는 첫번째 단계에서 선정된 모드에 대해 화질 열화뿐만 아니라 발생 비트량까지 고려하여 최적의 예측 모드를 선정할 수 있다. 상기 방법 외 연산량/복잡도 감소 측면의 다양한 방법이 적용될 수 있다.
또한, 예측 모드 결정부는 일반적으로 부호화기에만 포함되는 구성일 수 있으나, 부/복호화 설정에 따라 복호화기에도 포함되는 구성일 수 있다. 예를 들어, 템플릿 매칭을 예측 방법으로 포함하거나 또는 화면내 예측 모드를 대상 블록의 인접한 영역에서 유도하는 방법을 포함하는 경우. 후자의 경우 예측 모드를 복호화기에서 묵시적으로 획득하는 방법이 사용되었다고 이해할 수 있다.
상기 과정은 기준 블록이 아닌 대상 블록 단위로 수행됨을 전제한다. 즉, 예측 모드 후보군 구성, 참조 화소 구성은 대상 블록을 기준으로 설정되지 않을 수도 있지만, 예측 블록 획득 및 결정 과정은 대상 블록이 그 기준이 되는 단위일 수 있다.
(예측 모드 후보군 구성 및 부호화)
예측 모드 부호화부에서는 예측 모드 결정부를 통해 선정된 예측 모드를 부호화할 수 있다. 예측 모드 후보군에서 상기 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있거나 또는 상기 예측 모드를 예측하여 그에 관한 정보를 부호화할 수 있다. 전자의 경우 휘도 성분에 적용되는 방법일 수 있고 후자의 경우 색차 성분에 적용되는 방법일 수 있으나 이에 한정되지 않는다.
일 예로, 예측 모드 후보군 중 소정의 예측 모드에 우선권을 할당하여 예측 모드의 예측값으로 설정할 수 있다. 일반적으로 많이 발생하는 예측 모드에 우선권이 할당될 수 있는데, 방향성 모드의 경우 수직, 수평, 소정의 대각선 모드 중에 적어도 하나를 포함할 수 있고, 비방향성 모드의 경우 Planar 또는 DC 모드 중에 적어도 하나를 포함할 수 있다. 여기서, 소정의 대각선 모드는 소정의 기울기 정보를 갖는 예측 모드로, 일 예로 수평 또는 수직 모드 기준으로 45도 또는 -45도의 각도를 갖는 도 12의 2번, 34번, 66번 모드 중 적어도 하나를 포함할 수 있으며, 이 밖의 추가적인 대각선 모드가 우선권이 할당될 수 있다.
상기 우선권이 할당된 예측 모드 중 적어도 하나의 예측 모드로 우선권 할당 모드의 예측값으로 설정할 수 있다. 이때, 우선권 할당 모드의 예측값으로 선정되는 예측 모드는 소정의 순서에 따라 우선 순위가 정해질 수 있으며, 일 예로 Planar, DC, 수직, 수평 모드의 순서로 할당될 수 있다.
만약 우선권 할당 모드가 하나가 지원되는 경우라면 Planar 모드가 예측값으로 설정되고, 2개가 지원되는 경우라면 Planar와 DC 모드가 예측값으로 설정될 수 있다.
상기 우선권 할당 모드는 기준 블록(본 예에서 대상 블록이라 가정)의 상태 정보, 영상 타입, 컬러 성분 등에서 하나 이상의 요소에 따라 정해질 수 있다.
일 예로, 예측 모드 후보군 중 소정의 예측 모드 선정 방법을 통해 후보군을 구성하여 예측 모드의 예측값으로 설정할 수 있다. 여기서, 소정의 예측 모드 선정 방법은 기준 블록의 인접한 블록의 예측 모드를 획득하기, 기 설정된 예측 모드를 획득하기, 후보군에 이미 포함되어 있는 예측 모드에 기반하여 획득하기 등을 포함할 수 있다.
본 발명에서는 상기 후보군에 포함되는 예측 모드를 MPM(Most Probable Mode)으로 지칭한다. MPM은 하나의 예측 모드로 구성할 수 있거나 또는 복수의 예측 모드로 구성할 수 있는데, 예측 모드 후보군 개수 등에 따라 MPM의 개수(k개. k는 1, 2, 3, 6 등과 같은 1 이상 정수)가 정해질 수 있다. MPM이 복수의 예측 모드로 구성되는 경우로 MPM 후보군이라 지칭할 수 있다.
MPM 후보군은 고정적인 설정 하에 지원될 수 있거나 또는 다양한 부/복호화 요소에 따라 적응적인 설정이 지원될 수 있다. 적응적인 설정에 대한 예를 들면, 복수의 참조 화소 계층 중 어떤 참조 화소 계층을 사용하는지에 따라 후보군 구성이 정해질 수 있고, 서브 블록 단위로 화면내 예측을 수행하는지 등에 따라 후보군 구성이 정해질 수 있다. 고정적인 설정이란 상기 정보와는 관계없이 기 정의된 후보군 구성 규칙을 따름을 의미할 수 있다.
설명의 편의를 위해 하나의 설정 하에 MPM 후보군 구성되는 경우를 가정하며, MPM 후보군뿐만 아니라 다른 화면내 예측 모드에 관한 후보군 구성 또한 적응적일 수 있음을 이해하여야 한다.
MPM은 예측 모드를 효율적으로 부호화하기 위해 지원되는 개념으로, 실제로 대상 블록의 예측 모드로 발생 가능성이 높은 예측 모드로 후보군을 구성할 수 있다.
예를 들어, MPM 후보군은 기 설정된 예측 모드(또는 통계적으로 자주 발생하는 예측 모드. DC, Plaanr, 수직, 수평, 일부 대각선 모드 등에서 적어도 하나 이상 포함), 인접한 블록(좌, 상, 좌상, 우상, 좌하 블록 등에서 적어도 하나 이상의 위치. 예로, 좌, 상 블록)의 예측 모드 등으로 구성할 수 있다. 이때, 인접한 블록의 예측 모드는 도 15에서 L0 내지 L3(좌 블록), T0 내지 T3(상 블록), TL(좌상 블록), R0 내지 R3(우상 블록), B0 내지 B3(좌하 블록)에서 획득할 수 있다.
인접한 블록(예를 들어, 좌 블록)에서 둘 이상의 서브 블록 위치(예를 들어, L0, L2 등)로부터 MPM 후보군을 구성할 수 있을 경우 기 정의된 우선 순위(예를 들어, L0 - L1 - L2 등)에 따라 해당 블록의 예측 모드를 후보군에 구성할 수 있다. 또는, 둘 이상 서브 블록 위치로부터 MPM 후보군을 구성할 수 없는 경우 기 정의된 위치(예를 들어, L0 등)에 해당하는 서브 블록의 예측 모드를 후보군에 구성할 수 있다. 상세하게는, 인접한 블록 중 L3, T3, TL, R0, B0 위치의 예측 모드를 해당 인접한 블록의 예측 모드로 선정하여 MPM 후보군에 포함할 수 있다. 상기 설명은 인접한 블록의 예측 모드를 후보군에 구성하는 일부 경우이며, 이에 한정되지 않는다. 후술하는 예에서 기 정의된 위치의 예측 모드를 후보군에 구성하는 경우를 가정한다.
또한, 하나 이상의 예측 모드가 MPM 후보군으로 구성되어 있는 경우 기 포함된 하나 이상의 예측 모드로부터 유도되는 모드 또한 MPM 후보군으로 추가 구성할 수 있다. 상세하게는, k번 모드(방향성 모드)가 MPM 후보군에 포함된 경우 해당 모드로부터 유도 가능한 모드(k 기준으로 +a, -b의 간격을 갖는 모드. a와 는 1, 2, 3 등의 1 이상의 정수)를 MPM 후보군에 추가로 포함할 수 있다.
MPM 후보군 구성을 위한 우선 순위가 존재할 수 있는데, 인접한 블록의 예측 모드 - 기 설정된 예측 모드 - 유도되는 예측 모드 등의 순서로 MPM 후보군을 구성할 수 있다. MPM 후보군을 구성하는 과정은 우선 순위에 따라 최대 MPM 후보 개수만큼 채우면 완료할 수 있다. 상기 과정에서 기 포함된 예측 모드와 일치하는 경우에는 해당 예측 모드는 후보군에 구성하지 않고 다음 우선 순위의 후보로 순서가 넘어가는 중복성 확인 과정이 포함될 수 있다.
상기 우선권 할당 모드 또는 MPM 후보 중 어느 하나를 선택적으로 이용하여 예측 모드가 유도될 수 있다. 상기 선택 정보에 관한 플래그가 발생할 수 있으며, 해당 플래그는 대상 블록의 예측 모드가 우선권 할당 모드로 설정되는지 여부를 나타낼 수 있다. 상기 플래그가 1인 경우 대상 블록의 예측 모드는 우선권 할당 모드로 설정되고, 그렇지 않은 경우, 대상 블록의 예측 모드는 MPM 후보로부터 유도되는지 여부, MPM 인덱스 정보 등이 발생할 수 있다. 여기서, 우선권 할당 모드 또는 MPM 후보 중에 대상 블록의 예측 모드가 유도되지 않는 경우에는 우선권 할당 모드와 MPM 후보를 제외한 나머지 예측 모드 중에서 non-MPM 인덱스 정보 등이 발생하여 대상 블록의 예측 모드가 유도될 수 있다.
다음은 설명의 편의를 위해 MPM 후보 구성(MPM 후보/non-MPM 후보)에 관한 설명을 중심으로 하며, 우선권 할당 모드는 MPM 후보군 구성의 일부 후보임을 가정하여 설명한다. 단, 우선권 할당 모드가 명시적으로 지원되는 구성일 경우에는 후술하는 실시예에서 우선권 할당 모드가 제거되는 것을 고려하여 이해할 필요가 있다.
다음은 MPM 후보군이 6개의 예측 모드로 구성되는 경우를 전제한다.
예를 들어, L - T - TL - TR - BL - Planar - DC - 수직 - 수평 - 대각선 모드 등의 순서로 후보군을 구성할 수 있다. 인접한 블록의 예측 모드를 후보군에 우선적으로 구성하며, 기 설정된 예측 모드를 추가 구성하고자 하는 경우일 수 있다.
또는, L - T - Planar - DC - <L+1> - <L-1> - <T+1> - <T-1> - 수직 - 수평 - 대각선 모드 등의 순서로 후보군을 구성할 수 있다. 일부 인접한 블록의 예측 모드와 기 설정된 예측 모드의 일부를 우선적으로 구성하며, 인접한 블록의 예측 모드와 비슷한 방향의 예측 모드가 발생할 것이라는 가정 하에 유도되는 모드와 기 설정된 예측 모드의 일부를 추가 구성하고자 하는 경우일 수 있다.
상기 예는 MPM 후보군 구성에 관한 일부 경우이며, 이에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
MPM 후보군은 후보군 내 인덱스에 기반하여 단항 이진화(Unary Binarization), 절단된 Rice 이진화(Truncated Rice Binarization) 등의 이진화가 사용될 수 있다. 즉, 작은 인덱스를 갖는 후보에는 짧은 비트를 할당하고, 큰 인덱스를 갖는 후보에는 긴 비트를 할당하여 모드 비트를 표현할 수 있다.
MPM 후보군에 포함되지 못한 모드는 non-MPM 후보군으로 분류될 수 있다. 또한, 부/복호화 설정에 따라 non-MPM 후보군은 2개 이상의 후보군으로 분류될 수 있다.
다음은 예측 모드 후보군에 방향성 모드와 비방향성 모드를 포함하는 67개의 모드가 존재하며 MPM 후보는 6개가 지원되어 non-MPM 후보군에 61개의 예측 모드로 구성되는 경우를 전제한다.
non-MPM 후보군이 하나로 구성되는 경우는 MPM 후보군 구성 과정에 포함되지 못한 예측 모드가 남은 것이기 때문에 추가적인 후보군 구성 과정은 요구되지 않는다. 그래서 non-MPM 후보군 내 인덱스에 기반하여 고정 길이 이진화(Fixed Length Binarization), 절단된 단항 이진화(Truncated Unary Binarization) 등의 이진화가 사용될 수 있다.
non-MPM 후보군이 둘 이상의 후보군으로 구성되는 경우를 가정하여 본 예에서 non-MPM 후보군은 non-MPM_A(이상 A 후보군)와 non-MPM_B(이상 B 후보군)으로 분류한다. A 후보군(p개. MPM 후보군 개수 이상)이 B 후보군(q개. A 후보군 개수 이상)보다 대상 블록의 예측 모드로 발생 가능성이 높은 예측 모드로 후보군을 구성한다고 가정한다. 이때, A 후보군 구성 과정이 추가될 수 있다.
예를 들어, 방향성 모드 중 균등한 간격(예를 들어, 2번, 4번, 6번 모드 등)을 갖는 일부 예측 모드를 A 후보군에 구성하거나 기 설정된 예측 모드(예를 들어, MPM 후보군에 포함된 예측 모드로부터 유도되는 모드 등)를 구성할 수 있다. 상기 MPM 후보군 구성과 A 후보군 구성을 통해 남은 예측 모드는 B 후보군으로 구성될 수 있으며, 추가적인 후보군 구성 과정은 요구되지 않는다. A 후보군와 B 후보군 내 인덱스에 기반하여 고정 길이 이진화, 절단된 단항 이진화 등의 이진화가 사용될 수 있다.
상기 예는 non-MPM 후보군이 둘 이상으로 구성되어 있는 일부 경우이며, 이에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
다음은 예측 모드를 예측하여 부호화하는 경우에 대한 과정을 나타낸다.
대상 블록의 예측 모드가 MPM(또는 MPM 후보군 내 일부 모드)과 일치하는지 여부에 대한 정보(mpm_flag)를 확인할 수 있다.
MPM과 일치하는 경우에 MPM의 구성(1개 또는 2개 이상)에 따라 MPM 인덱스 정보(mpm_idx)가 추가로 확인할 수 있다. 이후 대상 블록의 부호화 과정을 완료한다.
MPM과 일치하지 않는 경우에 non-MPM 후보군이 하나로 구성되어 있으면 non-MPM 인덱스 정보(remaining_idx)를 확인할 수 있다. 이후 대상 블록의 부호화 과정을 완료한다.
만약 non-MPM 후보군이 복수(본 예에서 2개)로 구성되어 있으면 대상 블록의 예측 모드가 A 후보군 내 일부 예측 모드와 일치하는지 여부에 대한 정보(non_mpm_flag)를 확인할 수 있다.
A 후보군과 일치하는 경우 A 후보군 인덱스 정보(non_mpm_A_idx)를 확인할 수 있고, A 후보군과 일치하지 않는 경우 B 후보군 인덱스 정보(remaining_idx)를 확인할 수 있다. 이후 대상 블록의 부호화 과정을 완료한다.
예측 모드 후보군 구성이 고정적인 경우에 기준 블록에서 지원되는 예측 모드와 인접한 블록에서 지원되는 예측 모드, 그리고 기 설정된 예측 모드는 동일한 예측 번호 인덱스를 사용할 수 있다.
한편, 예측 모드 후보군 구성이 적응적인 경우에는 기준 블록에서 지원되는 예측 모드와 인접한 블록에서 지원되는 예측 모드, 그리고 기 설정된 예측 모드는 동일한 예측 번호 인덱스를 사용하거나 다른 예측 번호 인덱스를 사용할 수 있다. 다음 설명을 위해 도 12를 참조한다.
상기 예측 모드 부호화 과정에서 MPM 후보군 등의 구성을 위한 예측 모드 후보군 통일(또는 조정) 과정이 수행될 수 있다. 예를 들어, 대상 블록의 예측 모드는 -5번 내지 61번 모드의 예측 모드 후보군 중 하나이고, 인접한 블록의 예측 모드는 2번 내지 66번 모드의 예측 모드 후보군 중 하나일 수 있다. 이 경우 인접한 블록의 예측 모드 일부(66번 모드)는 대상 블록의 예측 모드에 지원되지 않는 모드일 수 있기 때문에 예측 모드 부호화 과정에서 이를 통일시키는 과정이 수행될 수 있다. 즉, 고정적인 화면내 예측 모드 후보군 구성이 지원되는 경우에 요구되지 않는 과정일 수 있고, 적응적인 화면내 예측 모드 후보군 구성이 지원되는 경우에는 요구되는 과정일 수 있으며, 이에 대한 상세한 설명은 생략한다.
상기 MPM을 이용하는 방식과 달리 예측 모드 후보군에 속한 예측 모드에 인덱스를 할당하여 부호화를 수행할 수 있다.
예를 들어, 기 정의된 우선 순위에 따라 예측 모드에 인덱스를 할당하고 대상 블록의 예측 모드가 선정되면 해당 인덱스를 부호화하는 방법이 그에 해당한다. 이는 고정적으로 예측 모드 후보군이 구성되고 예측 모드에 고정적인 인덱스가 할당되는 경우를 의미한다.
또는, 예측 모드 후보군이 적응적으로 구성되는 경우에는 상기 고정적인 인덱스 할당 방법이 적합하지 않을 수 있다. 이를 위해 적응적인 우선 순위에 따라 예측 모드에 인덱스를 할당하고 대상 블록의 예측 모드가 선정되면 해당 인덱스를 부호화하는 방법을 적용할 수 있다. 이는 예측 모드 후보군의 적응적인 구성으로 인해 예측 모드에 할당되는 인덱스를 달리 하여 예측 모드를 효율적으로 부호화할 수 있다. 즉, 적응적인 우선 순위는 대상 블록의 예측 모드로 선정될 가능성이 높은 후보를 짧은 모드 비트가 발생하는 인덱스에 할당하고자 함일 수 있다.
다음은 예측 모드 후보군에 기 설정된 예측 모드(방향성 모드과 비방향성 모드), 컬러 복사 모드와 컬러 모드를 포함하는 8개의 예측 모드가 지원되는 경우(색차 성분)를 전제한다.
예를 들어, 기 설정된 예측 모드는 Planar, DC, 수평, 수직, 대각선 모드(본 예에서 Diagonal down left) 중에서 4개가 지원되고, 컬러 모드 1개(C)와 컬러 복사 모드 3개(CP1, CP2, CP3)가 지원되는 경우를 가정하자. 예측 모드에 할당되는 인덱스의 기본 순서는 기 설정된 예측 모드 - 컬러 복사 모드 - 컬러 모드 등으로 주어질 수 있다.
이때, 기 설정된 예측 모드인 방향성 모드, 비방향성 모드와 컬러 복사 모드는 예측 방법이 구분되는 예측 모드로 쉽게 구분할 수 있다. 다만, 컬러 모드의 경우 방향성 모드 또는 비방향성 모드일 수 있으며, 이는 기 설정된 예측 모드와 중복될 가능성이 존재할 수 있다. 일 예로, 컬러 모드가 수직 모드인 경우 기 설정된 예측 모드 중 하나인 수직 모드와 중복되는 경우가 발생할 수 있다.
부/복호화 설정에 따라 예측 모드 후보군의 수를 적응적으로 조정하는 경우 상기 중복적인 경우가 발생하면 후보군의 수를 조정(8개 -> 7개)할 수 있다. 또는, 예측 모드 후보군의 수를 고정적으로 유지하는 경우 상기 중복적인 경우가 발생하면 다른 후보를 추가 및 고려하여 인덱스를 할당할 수 있으며, 본 설정을 가정하여 후술한다. 또한, 적응적인 예측 모드 후보군은 컬러 모드와 같이 가변적인 모드를 포함하는 경우에도 지원되는 구성일 수 있다. 따라서 적응적인 인덱스 할당이 수행되는 경우는 적응적인 예측 모드 후보군 구성의 일 예로 간주할 수 있다.
다음은 컬러 모드에 따라 적응적인 인덱스 할당이 수행되는 경우를 설명한다. 기본 인덱스는 Planar(0) - 수직(1) - 수평(2) - DC(3) - CP1(4) - CP2(5) - CP3(6) - C(7)의 순서로 할당된다고 전제한다. 또한, 컬러 모드가 기 설정된 예측 모드와 일치하지 않는 경우에는 상기 순서로 인덱스 할당이 수행됨을 전제한다.
예를 들어, 컬러 모드가 기 설정된 예측 모드(Planar, 수직, 수평, DC 모드) 중 하나와 일치하는 경우에는 컬러 모드의 인덱스(7)에 일치하는 예측 모드가 채워진다. 일치하는 예측 모드의 인덱스(0 내지 3 중 하나)에는 기 설정된 예측 모드(Diagoanl down left)가 채워진다. 상세하게는, 컬러 모드가 수평 모드인 경우 Planar(0) - 수직(1) - Diagoanal down left(2) - DC(3) - CP1(4) - CP2(5) - CP3(6) - 수평(7)와 같은 인덱스 할당이 수행될 수 있다.
또는, 컬러 모드가 기 설정된 예측 모드 중 하나와 일치하는 경우에는 0번 인덱스에 일치하는 예측 모드가 채워진다. 그리고 컬러 모드의 인덱스(7)에 기 설정된 예측 모드(Diagoanal down left)가 채워진다. 이때, 채워진 예측 모드가 기존의 0번 인덱스가 아닌 경우(즉, Planar 모드가 아닌 경우)라면 기존 인덱스 구성이 조정될 수 있다. 상세하게는, 컬러 모드가 DC 모드인 경우 DC(0) - Planar(1) - 수직(2) - 수평(3) - CP1(4) - CP2(5) - CP3(6) - Diagonal down left(7)와 같은 인덱스 할당이 수행될 수 있다.
상기 예는 적응적인 인덱스 할당에 관한 일부 경우이며, 이에 한정되지 않고 다양한 변형의 예가 가능할 수 있다. 또한, 상기 후보군 내 인덱스에 기반하여 고정 길이 이진화, 단항 이진화, 절단된 단항 이진화, 절단된 Rice 이진화 등의 이진화가 사용될 수 있다.
다음은 예측 모드 후보군에 속한 예측 모드에 인덱스를 할당하여 부호화를 수행하는 다른 예를 살펴본다.
예를 들어, 예측 모드, 예측 방법 등으로 구분하여 복수의 예측 모드 후보군으로 분류하고 해당 후보군에 속한 예측 모드에 인덱스를 할당하여 부호화하는 방법이 그에 해당한다. 이 경우 후보군 선택 정보 부호화가 상기 인덱스 부호화에 선행할 수 있다. 일 예로, 동일한 컬러 공간에서 예측을 수행하는 예측 모드인 방향성 모드, 비방향성 모드, 컬러 모드가 하나의 후보군(이상 S 후보군)에 속할 수 있고, 다른 컬러 공간에서 예측을 수행하는 예측 모드인 컬러 복사 모드가 하나의 후보군(이상 D 후보군)에 속할 수 있다.
다음은 예측 모드 후보군에 기 설정된 예측 모드, 컬러 복사 모드와 컬러 모드를 포함하는 9개의 예측 모드가 지원되는 경우(색차 성분)를 전제한다.
예를 들어, 기 설정된 예측 모드는 Planar, DC, 수평, 수직, 대각선 모드 중에서 4개가 지원되고, 컬러 모드 1개(C)와 컬러 복사 모드 4개(CP1, CP2, CP3, CP4)가 지원되는 경우를 가정하자. S 후보군은 기 설정된 예측 모드와 컬러 모드로 구성되는 5개의 후보를 가질 수 있고, D 후보군은 컬러 복사 모드로 구성되는 4개의 후보를 가질 수 있다.
S 후보군은 적응적으로 구성되는 예측 모드 후보군의 일 예이고 적응적인 인덱스 할당에 관한 예는 전술하였으므로 상세한 설명은 생략한다. D 후보군은 고정적으로 구성되는 예측 모드 후보군의 일 예이므로 고정적인 인덱스 할당 방법을 사용할 수 있다. 예를 들어, CP1(0) - CP2(1) - CP3(2) -CP4(3)와 같은 인덱스 할당이 수행될 수 있다.
상기 후보군 내 인덱스에 기반하여 고정 길이 이진화, 단항 이진화, 절단된 단항 이진화, 절단된 Rice 이진화 등의 이진화가 사용될 수 있다. 또한, 상기 예에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
예측 모드 부호화를 위한 MPM 등의 후보군 구성은 블록 단위로 수행될 수 있다. 또는, 상기 후보군 구성 과정을 생략할 수 있으며, 소정의 후보군을 사용하거나 다양한 방법에 의해 획득된 후보군을 사용할 수 있다. 이는 복잡도 감소 등을 위한 목적으로 지원될 수 있는 구성일 수 있다.
일 예(1)로, 미리 정의된 하나의 후보군을 사용하거나 또는 부/복호화 설정에 따라 미리 정의된 복수의 후보군 중 하나를 사용할 수 있다. 예를 들어, MPM 후보군의 경우 {Planar - DC - 수직 - 수평 - Diagonal down left<도 12의 66번> - Diagonal down right<도 12의 34번>} 등의 미리 정의된 후보군을 사용할 수 있다. 또는, MPM 후보군 구성 중 인접한 블록이 모두 사용 불가한 경우에 구성되는 후보군을 본 예에 적용하는 것이 가능할 수 있다.
일 예(2)로, 부호화가 완료된 블록의 후보군을 사용할 수 있다. 이때, 부호화가 완료된 블록은 부호화 순서(소정의 스캔 방법. 예를 들어, z-scan, vertical scan, horizontal scan 등)에 기초하여 선정될 수 있거나 또는 기준 블록의 좌, 상, 좌상, 우상, 좌하 등의 인접한 블록에서 선정될 수 있다. 단, 인접한 블록은 기준 블록과 서로 참조 가능한 분할 단위(예를 들어, 각 블록이 속한 슬라이스나 타일이 다르더라도 참조 가능한 속성을 갖는 경우. 일 예로, 동일 타일 그룹에 속하지만 다른 타일인 경우)에 속하는 위치로 제한할 수 있으며, 참조 불가능한 분할 단위(예를 들어, 각 블록이 속한 슬라이스나 타일이 다른데 서로 참조 불가능한 속성을 갖는 경우. 일 예로, 다른 타일 그룹에 속하는 경우)에 속할 경우 해당 위치의 블록은 후보에서 제외할 수 있다.
여기서, 인접한 블록은 기준 블록의 상태에 따라 정해질 수 있다. 예를 들어, 기준 블록이 정사각 형태인 경우 소정의 제 1우선 순위에 따라 위치한 블록 중 이용 가능한 블록의 후보군이 차용(또는 공유)될 수 있다. 또는, 기준 블록이 직사각 형태인 경우 제 2우선 순위에 따라 위치한 블록 중 이용 가능한 블록의 후보군이 차용될 수 있다. 이때, 블록의 가로/세로 길이 비에 따라 제 2 또는 제 3우선 순위가 지원될 수 있다. 차용할 후보 블록의 선정을 위한 우선 순위는 좌 - 상 - 우상 - 좌하 - 좌상, 상 - 좌 - 좌상 - 우상 - 좌하 등의 다양한 구성이 가능할 수 있다. 이때, 상기 제 1 내지 3 우선 순위는 모두 동일한 구성을 갖거나 또는 모두 다른 구성을 갖거나 또는 일부 구성은 동일한 구성을 가질 수 있다.
기준 블록의 후보군은 소정의 경계값 이상/초과인 경우에만 인접한 블록에서의 차용을 수행할 수 있다. 또는, 소정의 경계값 이하/미만인 경우에만 인접한 블록에서의 차용을 수행할 수 있다. 여기서, 상기 경계값은 후보군 차용을 허용하는 블록의 최소 크기 또는 최대 크기로 정의될 수 있다. 상기 경계값은 블록의 가로 길이(W), 세로 길이(H), W x H, W*H 등으로 표현될 수 있으며, 상기 W와 H는 4, 8, 16, 32 또는 그 이상의 정수일 수 있다.
일 예(3)로, 소정의 블록의 묶음으로 구성된 상위 블록에서 공통의 후보군을 구성할 수 있고, 상위 블록 내에 속하는 하위 블록들이 해당 후보군을 사용할 수 있다. 이때, 하위 블록의 개수는 1, 2, 3, 4와 같은 1 이상의 정수일 수 있다.
여기서 상위 블록은 하위 블록의 조상 블록(부모 블록 포함)일 수 있거나 또는 임의의 묶음으로 구성된 블록일 수 있다. 이때, 조상 블록이란 하위 블록을 획득하기 위한 분할 과정 중 이전 단계(분할 깊이의 차이가 1 이상)의 분할 전 블록을 의미할 수 있다. 일 예로, 도 4의 b에서 4N x 2N의 0번과 1번 서브 블록의 부모 블록은 도 4의 a의 4N x 4N을 가리킬 수 있다.
상위 블록의 후보군은 소정의 제 1경계값 이상/초과인 경우에만 하위 블록에서의 차용(또는 공유)이 수행될 수 있다. 또는, 소정의 제 2경계값 이하/미만인 경우에만 하위 블록에서의 차용이 수행될 수 있다.
여기서, 상기 경계값은 후보군 차용이 허용되는 블록의 최소 크기 또는 최대 크기로 정의될 수 있다. 상기 경계값 중 하나만 지원되거나 둘 다 지원될 수 있으며, 경계값은 블록의 가로 길이(W), 세로 길이(H), W x H, W*H 등으로 표현될 수 있으며, 상기 W와 H는 8, 16, 32, 64 또는 그 이상의 정수일 수 있다.
반면, 하위 블록의 후보군은 소정의 제 3경계값 이상/초과인 경우에만 상위 블록에서 차용을 수행할 수 있다. 또는, 소정의 제 4경계값 이하/미만인 경우에만 상위 블록에서 차용을 수행할 수 있다.
여기서, 상기 경계값은 후보군 차용을 허용하는 블록의 최소 크기 또는 최대 크기로 정의될 수 있다. 상기 경계값 중 하나만 지원되거나 둘 다 지원될 수 있으며, 경계값은 블록의 가로 길이(W), 세로 길이(H), W x H, W*H 등으로 표현될 수 있으며, 상기 W와 H는 4, 8, 16, 32 또는 그 이상의 정수일 수 있다.
이때, 제 1경계값(또는 제 2경계값)은 제 3경계값(또는 제 4경계값)보다 크거나 같을 수 있다.
전술한 실시예 중 어느 하나에 기초하여 후보군 차용(또는 공유)이 선택적으로 이용될 수 있고, 실시예 1 내지 3 중 적어도 2개의 조합에 기초하여 후보군 차용이 선택적으로 이용될 수도 있다. 그리고 각 실시예의 세부 구성 또한 어느 하나에 기초하여 후보군 차용이 선택적으로 이용될 수 있고, 하나 이상의 세부 구성의 조합 등에 따라 선택적으로 이용될 수 있다.
또한, 후보군 차용 여부, 후보군 차용에 관여되는 블록의 속성(크기/형태/위치/길이비율), 분할 상태(분할 방식, 분할 종류, 분할 깊이 등) 등에 관한 정보가 명시적으로 처리될 수 있다. 또한, 영상 타입, 컬러 성분 등의 부호화 요소가 후보군 차용 설정에 입력 변수로 작용할 수 있다. 상기 정보 및 부/복호화 설정에 기초하여 후보군의 차용이 수행될 수 있다.
예측 모드 부호화부를 통해 생성되는 예측 관련 정보는 부호화부로 전송되어 비트스트림에 수록될 수 있다.
상기 설명에서 기준 블록은 대상 블록(부호화 블록, 예측 블록), 상대 블록(상위 블록) 중에 하나로 결정될 수 있으며, 이에 관한 설명은 전술한 예를 통해 유도할 수 있다.
또한, 예측 모드 후보군 구성에 참조되는 인접한 블록이 기준 블록과 상관성이 높거나 낮을 수 있는 경우를 가정하여 설명하였지만, 블록 간의 상관관계에 기반하여 후보군 구성 시에 해당 블록의 예측 모드를 후보군에 포함시키지 않거나, 후보군 구성 순위를 후순위로 변경하는 설정이 적용될 수 있음을 전술한 예를 통해 유도할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
본 발명은 영상을 부호화/복호화하기 위해 이용될 수 있다.

Claims (8)

  1. 대상 블록의 화면내 예측 모드 후보군을 구성하는 단계;
    상기 대상 블록의 화면내 예측 모드을 위한 참조 화소를 결정하는 단계;
    상기 참조 화소에 필터링 또는 보간 중 적어도 하나를 수행하는 단계; 및
    상기 화면내 예측 모드 후보군 및 상기 참조 화소에 기반하여, 상기 대상 블록의 화면내 예측을 수행하는 단계를 포함하는, 화면내 예측 방법.
  2. 제1항에 있어서,
    상기 필터링은, 상기 대상 블록의 크기, 형태, 위치, 컬러 성분, 참조 화소 라인, 서브 블록 단위의 화면내 예측이 적용되는지 여부 또는 화면내 예측 모드 중 적어도 하나에 기초하여 선택적으로 수행되는, 화면내 예측 방법.
  3. 제2항에 있어서,
    상기 대상 블록의 화면내 예측 모드가 대각선 모드인 경우에는 상기 필터링이 수행되고, 그렇지 않은 경우에는 상기 필터링이 수행되는 않는, 화면내 예측 방법.
  4. 제3항에 있어서,
    상기 대각선 모드는, 정수 단위의 화소만 참조하는 제1 모드 또는 소수 단위의 화소를 참조하는 제2 모드 중 적어도 하나를 포함하는, 화면내 예측 방법.
  5. 제1항에 있어서,
    상기 대상 블록의 화면내 예측 모드가 정수 단위의 화소만을 참조하는 제1 모드인 경우, 상기 참조 화소에 대한 보간은 수행되지 않고,
    상기 대상 블록의 화면내 예측 모드가 소수 단위의 화소를 참조하는 제2 모드인 경우, 상기 참조 화소에 대한 보간은 수행되는, 화면내 예측 방법.
  6. 제1항에 있어서,
    상기 참조 화소는, 상기 대상 블록에 이웃한 복수의 참조 화소 라인 중 적어도 하나에 위치하는, 화면내 예측 방법.
  7. 제1항에 있어서,
    상기 화면내 예측 모드 후보군은, 적어도 하나의 우선권 할당 모드 또는 소정의 MPM(most probable mode)를 포함하고,
    상기 우선권 할당 모드는, Planar 모드, DC 모드, 수직 모드 또는 수평 모드 중 적어도 하나를 포함하는, 화면내 예측 방법.
  8. 제1항에 있어서,
    상기 화면내 예측은, 상기 대상 블록을 구성하는 서브 블록의 단위로 수행되는, 화면내 예측 방법.
PCT/KR2019/007653 2018-06-25 2019-06-25 영상 부호화/복호화 방법 및 장치 WO2020004902A1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201980042714.XA CN112335249A (zh) 2018-06-25 2019-06-25 用于编码/解码图像的方法和装置
KR1020217002063A KR20210016053A (ko) 2018-06-25 2019-06-25 영상 부호화/복호화 방법 및 장치
US16/973,145 US11647179B2 (en) 2018-06-25 2019-06-25 Method and apparatus for encoding/decoding images
US18/193,738 US20230247191A1 (en) 2018-06-25 2023-03-31 Method and apparatus for encoding/decoding images
US18/499,652 US20240080440A1 (en) 2018-06-25 2023-11-01 Method and apparatus for encoding/decoding images

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20180072560 2018-06-25
KR10-2018-0072560 2018-06-25
KR10-2018-0076178 2018-06-30
KR20180076178 2018-06-30
KR10-2018-0076784 2018-07-02
KR20180076784 2018-07-02

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/973,145 A-371-Of-International US11647179B2 (en) 2018-06-25 2019-06-25 Method and apparatus for encoding/decoding images
US18/193,738 Continuation US20230247191A1 (en) 2018-06-25 2023-03-31 Method and apparatus for encoding/decoding images

Publications (1)

Publication Number Publication Date
WO2020004902A1 true WO2020004902A1 (ko) 2020-01-02

Family

ID=68987447

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/007653 WO2020004902A1 (ko) 2018-06-25 2019-06-25 영상 부호화/복호화 방법 및 장치

Country Status (4)

Country Link
US (3) US11647179B2 (ko)
KR (1) KR20210016053A (ko)
CN (1) CN112335249A (ko)
WO (1) WO2020004902A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3709643A1 (en) * 2019-03-11 2020-09-16 InterDigital VC Holdings, Inc. Intra prediction mode partitioning
WO2023034629A1 (en) * 2021-09-05 2023-03-09 Beijing Dajia Internet Information Technology Co., Ltd. Intra prediction modes signaling
CN117897727A (zh) * 2021-09-10 2024-04-16 创峰科技 用于编码网格表示的连接性信息编码方法和装置
US20230199196A1 (en) * 2021-12-21 2023-06-22 Mediatek Inc. Methods and Apparatuses of Frequency Domain Mode Decision in Video Encoding Systems
WO2024035762A1 (en) * 2022-08-09 2024-02-15 Innopeak Technology, Inc. Dynamic mesh geometry refinement component adaptive coding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140057516A (ko) * 2014-04-25 2014-05-13 주식회사 아이벡스피티홀딩스 예측 블록 생성 방법
KR101772851B1 (ko) * 2009-07-01 2017-08-29 소니 주식회사 화상 처리 장치 및 방법
KR20170120538A (ko) * 2010-04-09 2017-10-31 한국전자통신연구원 적응적 필터를 이용한 인트라 예측을 수행하는 영상 복호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
KR20180001479A (ko) * 2016-06-24 2018-01-04 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR101844698B1 (ko) * 2014-05-23 2018-04-02 후아웨이 테크놀러지 컴퍼니 리미티드 블록-예측 기법들에 사용하기 위한 사전-예측 필터링을 위한 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101663762B1 (ko) * 2010-07-20 2016-10-07 에스케이 텔레콤주식회사 다중 예측 필터를 이용하는 경쟁기반 인트라 예측 부호화/복호화 장치 및 방법
WO2014054267A1 (ja) * 2012-10-01 2014-04-10 パナソニック株式会社 画像符号化装置及び画像符号化方法
WO2014178563A1 (ko) * 2013-04-29 2014-11-06 인텔렉추얼 디스커버리 주식회사 인트라 예측 방법 및 장치
US10764576B2 (en) * 2016-05-04 2020-09-01 Microsoft Technology Licensing, Llc Intra-picture prediction using non-adjacent reference lines of sample values
CN117255195A (zh) * 2017-05-17 2023-12-19 株式会社Kt 用于解码视频的方法和用于编码视频的方法
WO2019004888A1 (en) * 2017-06-30 2019-01-03 Telefonaktiebolaget Lm Ericsson (Publ) ENCODING AND DECODING AN IMAGE BLOCK USING A CURVED INTRA-PREDICTION MODE

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101772851B1 (ko) * 2009-07-01 2017-08-29 소니 주식회사 화상 처리 장치 및 방법
KR20170120538A (ko) * 2010-04-09 2017-10-31 한국전자통신연구원 적응적 필터를 이용한 인트라 예측을 수행하는 영상 복호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
KR20140057516A (ko) * 2014-04-25 2014-05-13 주식회사 아이벡스피티홀딩스 예측 블록 생성 방법
KR101844698B1 (ko) * 2014-05-23 2018-04-02 후아웨이 테크놀러지 컴퍼니 리미티드 블록-예측 기법들에 사용하기 위한 사전-예측 필터링을 위한 방법 및 장치
KR20180001479A (ko) * 2016-06-24 2018-01-04 주식회사 케이티 비디오 신호 처리 방법 및 장치

Also Published As

Publication number Publication date
US20210250576A1 (en) 2021-08-12
US20240080440A1 (en) 2024-03-07
CN112335249A (zh) 2021-02-05
KR20210016053A (ko) 2021-02-10
US20230247191A1 (en) 2023-08-03
US11647179B2 (en) 2023-05-09

Similar Documents

Publication Publication Date Title
WO2019194485A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020004900A1 (ko) 화면내 예측 방법 및 장치
WO2016195453A1 (ko) 영상 부호화 및 복호화 방법과 영상 복호화 장치
WO2018026219A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017176030A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019112394A1 (ko) 채널들 간의 선택적인 정보 공유를 사용하는 부호화 및 복호화를 위한 방법 및 장치
WO2020004902A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020096389A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2017192011A2 (ko) 화면 내 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2017222237A1 (ko) 화면 내 예측 방법 및 장치
WO2016195460A1 (ko) 화면 내 예측에 대한 부호화/복호화 방법 및 장치
WO2016204478A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2016200242A1 (ko) 적응적인 디블록킹 필터링을 이용하는 영상 부호화 방법과 영상 복호화 방법 및 장치
WO2018174617A1 (ko) 블록 형태에 기반한 예측 방법 및 장치
WO2019017651A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018047995A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019107927A1 (ko) 양방향 인트라 예측 방법 및 장치
WO2020005046A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020005045A1 (ko) 머지 모드 기반의 인터 예측 방법 및 장치
WO2018097700A1 (ko) 필터링을 위한 방법 및 장치
WO2019190140A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2017222331A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018174457A1 (ko) 영상 처리 방법 및 이를 위한 장치
WO2018174618A1 (ko) 참조 블록을 사용하는 예측 방법 및 장치
WO2019139393A1 (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: 19824540

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20217002063

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 19824540

Country of ref document: EP

Kind code of ref document: A1