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

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

Info

Publication number
WO2020050704A1
WO2020050704A1 PCT/KR2019/011648 KR2019011648W WO2020050704A1 WO 2020050704 A1 WO2020050704 A1 WO 2020050704A1 KR 2019011648 W KR2019011648 W KR 2019011648W WO 2020050704 A1 WO2020050704 A1 WO 2020050704A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
prediction
mode
prediction mode
information
Prior art date
Application number
PCT/KR2019/011648
Other languages
English (en)
French (fr)
Inventor
김기백
Original Assignee
김기백
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to CN201980058599.5A priority Critical patent/CN112740699A/zh
Priority to AU2019336046A priority patent/AU2019336046B2/en
Application filed by 김기백 filed Critical 김기백
Priority to EP19856954.3A priority patent/EP3849193A4/en
Priority to CA3112936A priority patent/CA3112936A1/en
Priority to KR1020217010230A priority patent/KR20210046804A/ko
Priority to BR112021004326-8A priority patent/BR112021004326A2/pt
Priority to JP2021537423A priority patent/JP7453236B2/ja
Priority to RU2021109441A priority patent/RU2771250C1/ru
Priority to MX2021002548A priority patent/MX2021002548A/es
Priority to SG11202101877PA priority patent/SG11202101877PA/en
Publication of WO2020050704A1 publication Critical patent/WO2020050704A1/ko
Priority to US17/115,060 priority patent/US11128859B2/en
Priority to US17/115,852 priority patent/US11616944B2/en
Priority to PH12021550492A priority patent/PH12021550492A1/en
Priority to ZA2021/01432A priority patent/ZA202101432B/en
Priority to IL281260A priority patent/IL281260A/en
Priority to ZA2022/03000A priority patent/ZA202203000B/en
Priority to US18/095,740 priority patent/US20230171398A1/en
Priority to AU2024200258A priority patent/AU2024200258A1/en
Priority to JP2024032951A priority patent/JP2024063178A/ja

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/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Definitions

  • the present invention relates to an image encoding / decoding method and apparatus.
  • An object of the present invention is to provide a method and apparatus for deriving an intra prediction mode according to color components.
  • An object of the present invention is to provide a method and apparatus for configuring a reference pixel for intra prediction.
  • the present invention is to provide an image encoding / decoding method and apparatus for performing intra-prediction correction using arbitrary pixels.
  • the video encoding / decoding method and apparatus may determine an intra prediction mode of a target block, generate a prediction block of the target block based on the intra prediction mode, and correct the prediction block. have.
  • the intra-prediction mode of the target block may be determined as a mode in a prediction mode candidate group according to state information of the target block.
  • a prediction mode candidate group consisting of a directional mode and a non-directional mode
  • the color component of the target block is a color difference component
  • a prediction mode candidate group in which at least one of a directional mode, a non-directional mode, a color mode, or a color copy mode is supported may be referred to.
  • the prediction mode candidate group may be classified into a plurality of categories in consideration of the maximum number or priority of prediction modes that can be included in each category.
  • the prediction mode candidate group may be classified into a first category including a non-directional mode and a directional mode and a second category including a color copy mode.
  • first information specifying one of a plurality of categories is acquired, and an intra prediction mode of the target block is specified within a category according to the first information
  • the second information can be obtained.
  • the intra prediction mode of the target block may be determined from the specified category based on the first information and the second information.
  • the second information may not be obtained when only one prediction mode is included in a category according to the first information.
  • the method further includes constructing a reference pixel used for the intra prediction, wherein the reference pixel is all or part of a plurality of reference pixel lines supported by a decoding apparatus. Can belong to.
  • the method may further include performing at least one of a weighted filter or an interpolation filter on the configured reference pixel.
  • the step of correcting the prediction block is selectively performed based on predetermined encoding information, and the encoding information includes image type, color component, state information, and encoding.
  • Mode an intra prediction mode, whether intra prediction is applied on a sub-block basis, or at least one of a reference pixel line.
  • an intra prediction mode can be efficiently derived.
  • the efficiency of intra prediction can be improved through selective use of the reference pixel line and predetermined filtering.
  • the present invention it is possible to improve the accuracy of intra prediction and to improve the encoding performance by correcting the prediction block.
  • 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 an image 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 view showing various types of divisions that can be obtained in the block division unit of the present invention.
  • FIG. 5 is an exemplary diagram illustrating a prediction mode in intra-picture prediction according to an embodiment of the present invention.
  • FIG. 6 is a layout view of a target block and a block adjacent thereto according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating a method for correcting intra-picture prediction according to an embodiment of the present invention.
  • FIG. 8 is a layout view of pixels of a target block and adjacent blocks according to an embodiment of the present invention.
  • FIG. 9 is an exemplary diagram of a correction method based on multiple reference pixel lines according to an embodiment of the present invention.
  • FIG. 10 is a flowchart illustrating a method for correcting intra-prediction according to an embodiment of the present invention.
  • FIG. 11 is an exemplary diagram for an arbitrary pixel used for predictive pixel correction according to an embodiment of the present invention.
  • FIG. 12 is an exemplary view in which correction is performed based on an arbitrary pixel according to an embodiment of the present invention.
  • the video encoding / decoding method and apparatus may determine an intra prediction mode of a target block, generate a prediction block of the target block based on the intra prediction mode, and correct the prediction block. have.
  • the intra-prediction mode of the target block may be determined as a mode in a prediction mode candidate group according to state information of the target block.
  • a prediction mode candidate group consisting of a directional mode and a non-directional mode
  • the color component of the target block is a color difference component
  • a prediction mode candidate group in which at least one of a directional mode, a non-directional mode, a color mode, or a color copy mode is supported may be referred to.
  • the prediction mode candidate group may be classified into a plurality of categories in consideration of the maximum number or priority of prediction modes that can be included in each category.
  • the prediction mode candidate group may be classified into a first category including a non-directional mode and a directional mode and a second category including a color copy mode.
  • first information specifying one of a plurality of categories is acquired, and an intra prediction mode of the target block is specified within a category according to the first information
  • the second information can be obtained.
  • the intra prediction mode of the target block may be determined from the specified category based on the first information and the second information.
  • the second information may not be obtained when only one prediction mode is included in a category according to the first information.
  • the method further includes constructing a reference pixel used for the intra prediction, wherein the reference pixel is all or part of a plurality of reference pixel lines supported by a decoding apparatus. Can belong to.
  • the method may further include performing at least one of a weighted filter or an interpolation filter on the configured reference pixel.
  • the step of correcting the prediction block is selectively performed based on predetermined encoding information, and the encoding information includes image type, color component, state information, and encoding.
  • Mode an intra prediction mode, whether intra prediction is applied on a sub-block basis, or at least one of a reference pixel line.
  • first, second, A, and B can 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 other components.
  • first component may be referred to as a second component without departing from the scope of the present invention, and similarly, the second component may be referred to as a first component.
  • one or more color spaces may be configured according to a color format of an image. It may be composed of one or more pictures having a certain size or one or more pictures having a different size according to a color format.
  • color formats such as 4: 4: 4, 4: 2: 2, 4: 2: 0, and Monochrome (consisting only of Y) may be supported in the YCbCr color configuration.
  • YCbCr 4: 2: 0 one luminance component (Y in this example, Y) and two color difference components (Cb / Cr in this example) may be formed, and at this time, the composition of the color difference component and the luminance component
  • the ratio may have a width of 1: 2.
  • 4: 4: 4 it may have the same aspect ratio horizontally and vertically.
  • the video can be classified into I, P, B, etc. according to the video type (eg, picture type, slice type, tile group type, tile type, brick type, etc.), but the I video type does not use a reference picture. It may mean an image that is encoded by itself, and a P image type may be an image that is encoded using a reference picture, but only allows forward prediction, and the B image type is encoded using a reference picture, and the entire / Although it may mean an image that allows backward prediction, a part of the type may be combined (combining P and B) or an image type of a different configuration may be supported according to encoding settings.
  • the video type eg, picture type, slice type, tile group type, tile type, brick type, etc.
  • the I video type does not use a reference picture. It may mean an image that is encoded by itself, and a P image type may be an image that is encoded using a reference picture, but only allows forward prediction, and the B image type is encoded using a reference picture, and the entire
  • Various encoding / decoding information generated in the present invention may be explicit or implicit.
  • the explicit processing generates encoding / decoding information from sequences, slices, tile groups, tiles, bricks, blocks, sub-blocks, etc., and stores them in a bitstream. It can be understood as parsing related information and restoring the decoded information.
  • the implicit processing is that the encoding / decoding information is processed by the same process, rules, etc. in the encoder and 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 device 105 and the decoding device 100 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), a user terminal such as a smart phone (Smart Phone) or TV, or a server terminal such as an application server and a service server.
  • a communication device such as a communication modem for performing communication 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 a program And a processor (110, 115) for controlling.
  • the video encoded in the bitstream by the video encoding device 105 is real-time or non-real-time through the wired / wireless communication network, such as the Internet, a short-range wireless communication network, a wireless LAN network, a WiBro network or a mobile communication network, or a cable or general purpose It may be transmitted to the image decoding apparatus 100 through various communication interfaces such as a serial bus (USB), and then decoded by the image decoding apparatus 100 to be restored and reproduced as an image. Also, an image encoded in a 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.
  • a serial bus USB
  • the above-described image encoding device and image decoding device may be separate devices, but may be made into one image encoding / decoding device depending on implementation.
  • some components of the video encoding apparatus may be implemented to include at least the same structure or perform at least the same functions as substantially the same technical elements as some components of the video decoding apparatus.
  • the image decoding apparatus corresponds to a computing apparatus that applies an image encoding method performed by the image encoding apparatus to decoding, the following description will focus on the image encoding apparatus.
  • the computing device may include a memory that stores a program or software module that implements an image encoding method and / or an image decoding method, and a processor that is connected to the memory and performs a program.
  • the image encoding apparatus may be referred to as an encoder
  • the image decoding apparatus may be referred to as a decoder, respectively.
  • FIG. 2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • the video encoding apparatus 20 includes a prediction unit 200, a subtraction unit 205, a transformation unit 210, a quantization unit 215, an inverse quantization unit 220, and an inverse transformation unit 225, An adder 230, a filter unit 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 by using an intra prediction method or an inter prediction method for blocks 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 a pixel value of each pixel of a target block to be encoded in an image according to intra-prediction or inter-prediction, and then predicted pixel value of each pixel generated. ) Can be generated.
  • the prediction unit 200 transmits information necessary for generating a prediction block, such as information about a prediction mode, such as an intra prediction mode or an inter-screen prediction mode, to the encoding unit so that the encoding unit encodes information about the prediction mode.
  • a processing unit for performing prediction a processing unit for determining a prediction method and specific content may be determined according to encoding settings. For example, a prediction method, a prediction mode, and the like are determined in a prediction unit, and prediction can be performed in a transformation unit.
  • the inter-screen prediction unit may be divided into temporal prediction and spatial prediction based on the reference picture.
  • temporal prediction it may be a prediction method for finding motion in a picture that is temporally different from the current picture
  • spatial prediction motion may be performed in a current picture (encoding area, a predetermined area adjacent to a target block) that is temporally the same as the current picture. It can be a predictive method of finding. This can be managed through the reference picture list or managed by encoding mode.
  • the inter-screen prediction unit may be divided into a moving motion model and a non-moving motion model according to a motion prediction method.
  • prediction can be performed by considering only parallel movement
  • prediction can be performed by considering movement such as rotation, perspective, and zoom in / out as well as parallel movement.
  • movement such as rotation, perspective, and zoom in / out as well as parallel movement.
  • one motion vector may be required for a moving motion model, but one or more motion information (for example, one motion vector + rotation angle / scale factor, two or more motion vectors) for a non-movement motion model Etc. The following may require 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 an upper left vertex, a right upper vertex, and a lower left vertex of the target block, and to predict the target block through the corresponding motion vector
  • the location of the region can be obtained in units of pixels or sub-blocks (integers of 2 or more such as 4 x 4 and 8 x 8).
  • the inter-screen prediction unit may apply some processes described below in common and some processes individually according to the motion model.
  • the inter-screen prediction unit may include a reference picture construction unit, a motion estimation unit, a motion compensation unit, a motion information determination unit, and a motion information encoding unit.
  • the reference picture construction unit may include pictures encoded before or after the current picture in the reference picture lists L0 and L1.
  • a prediction block may be obtained from a reference picture included in the reference picture list, and a current picture may also be configured as a reference picture according to encoding settings and included in at least one of the reference picture lists.
  • the reference picture construction unit may include a reference picture interpolation unit, and may perform an interpolation process for a fractional unit pixel according to interpolation precision.
  • a reference picture interpolation unit may perform an interpolation process for a fractional unit pixel according to interpolation precision.
  • an 8-tap DCT-based interpolation filter may be applied to a luminance component
  • a 4-tap DCT-based interpolation filter may be applied to a chrominance component.
  • the motion estimation unit is a process of searching a block having a high correlation with a target block through a reference picture, and various methods such as full search-based block matching algorithm (FSBMA) and three step search (TSS) can be used.
  • the motion compensation unit means a process of obtaining a prediction block through a motion estimation process.
  • a process for determining the optimal motion information of the target block may be performed in the motion information determining unit, and the motion information may be skipped mode, merge mode, or competition mode. It can be encoded by a motion information encoding mode, such as.
  • the above modes may be configured by combining supported modes according to a motion model, skip mode (move), skip mode (other than move), merge mode (move), merge mode (other than move), competition mode (move), A competitive mode (other than mobile) can be an example. Depending on the encoding settings, some of the modes may be included in the candidate group.
  • the motion information encoding mode may obtain prediction values of motion information (motion vectors, reference pictures, prediction directions, etc.) of a target block from at least one candidate block, and when two or more candidate blocks are supported, optimal candidate selection information Can occur.
  • the prediction value can be used as the motion information of the target block as it is, and in the competition mode, the difference information between the motion information of the target block and the prediction value may occur.
  • 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 blocks spatially adjacent to the target block eg, left, top, left, right, bottom left blocks, etc.
  • temporally adjacent blocks eg, correspond to or correspond to the target block
  • the motion information of the left, right, top, bottom, top left, top right, bottom left, and bottom right blocks, including a block ⁇ center> in another image may be included in the candidate group, and mixed motion information of spatial and temporal candidates (for example, For example, information obtained as an average, a median, etc. of two or more candidates through motion information of spatially adjacent blocks and motion information of temporally adjacent blocks.
  • Motion information can be obtained in units of subblocks of a target block or a target block) Etc. may be included in the candidate group.
  • the order included 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.
  • priorities may be determined in the 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.
  • the candidate group in the order of left-upper-right-left-lower-left blocks, and among the temporally adjacent blocks, candidate groups in the order of right-lower-middle-right-lower blocks, etc. Can be included in the candidate group in the order of left-upper-right-left-lower-left blocks, and among the temporally adjacent blocks, candidate groups in the order of right-lower-middle-right-lower blocks, etc. Can be included in the candidate group in the order of left-upper-right-left-lower-left blocks, and among the temporally adjacent blocks, candidate groups in the order of right-lower-middle-right-lower blocks, etc. Can be included in the candidate group in the order of left-upper-right-left-lower-left blocks, and among the temporally adjacent blocks, candidate groups in the order of right-lower-middle-right-lower blocks, etc. Can be included in the candidate group in the order of left-upper-right-left-lower-left blocks, and among the tempor
  • the subtraction unit 205 may generate a residual block by subtracting the prediction block from the target block. In other words, the subtraction unit 205 calculates the 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 through the prediction unit, which is a residual signal in the form of a block. You can create a residual block. Also, the subtraction unit 205 may generate a residual block according to units other than the block unit obtained through the block division unit described later.
  • the transform unit 210 may convert a signal belonging to the spatial domain into a signal belonging to the frequency domain, and the signal obtained through the transform process is called a transformed coefficient.
  • a residual block having a residual signal received from a subtraction unit may be transformed to obtain a transform block having a transform coefficient, and the input signal is determined according to encoding settings, which is not limited to the residual signal.
  • the transform unit can transform the residual block using transform techniques such as Hadamard Transform, DST Based-Transform (Discrete Sine Transform), and Discrete Cosine Transform (DCT Based-Transform: Discrete Cosine Transform).
  • transform techniques such as Hadamard Transform, DST Based-Transform (Discrete Sine Transform), and Discrete Cosine Transform (DCT Based-Transform: Discrete Cosine Transform).
  • DST Based-Transform Discrete Sine Transform
  • DCT Based-Transform Discrete Cosine Transform
  • At least one conversion technique may be supported, and at least one detailed transformation technique may be supported in each transformation technique.
  • the detailed changed technique may be a transformation technique in which a part of the base vector is configured differently in each transformation technique.
  • DCT digital coherence tomography
  • DST digital tomography
  • a part of the detailed transformation technique may be configured to configure a candidate candidate for transformation technique.
  • DCT-2, DCT-8, and DST-7 may be configured as candidate transformation schemes to perform transformation.
  • the conversion can be performed in the horizontal / vertical direction.
  • the spatial domain by performing a one-dimensional transformation in the horizontal direction using the transformation technique of DCT-2 and a one-dimensional transformation in the vertical direction using the transformation technique of DST-7 to perform a total two-dimensional transformation.
  • the pixel value of can be converted into the frequency domain.
  • Transformation can be performed using one fixed transformation technique, or transformation can be performed by adaptively selecting a transformation technique according to encoding settings.
  • a transform technique 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 units such as blocks.
  • encoding settings may be defined according to an image type (I / P / B), color component, block size / shape / position, intra prediction mode, etc., and accordingly, a predetermined transformation technique may be selected.
  • the transform unit may transmit information necessary to generate a transform block to an encoder to encode it, transmit the information according to the bitstream, and transmit it to the decoder, and the decoder of the decoder parses the information to inverse transform Can be used in the process.
  • the quantization unit 215 may quantize an input signal, and a signal obtained through a quantization process is called 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 the transform unit, and the input signal is determined according to encoding settings, which is not limited to the residual transform coefficient.
  • the quantization unit may quantize the transformed residual block using quantization techniques such as Dead Zone Uniform Threshold Quantization, Quantization Weighted Matrix, etc., and is not limited thereto. Quantization techniques can be used.
  • the quantization process can be omitted.
  • a quantization process may be omitted (including an inverse process) according to an encoding setting (eg, a quantization parameter is 0, that is, a lossless compression environment).
  • a quantization process may be omitted if compression performance through quantization is not achieved according to the characteristics of an image.
  • a 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 quantization is performed.
  • Omission selection information may be determined implicitly or explicitly.
  • the quantization unit may transmit information necessary for generating a quantization block to an encoding unit to encode it, transmit the resulting information to a bitstream, transmit it to a decoder, and the decoder of the decoder parse this information and dequantize it. Can be used in the process.
  • the residual block is transformed into a residual signal to generate a residual block having a transform coefficient, and a quantization process may not be performed. Not only can the quantization process be performed without converting the residual signal into a transform coefficient, but also both the conversion and the quantization process may not be performed. This can be determined according to the encoder settings.
  • the inverse quantization unit 220 inversely quantizes the residual block quantized by the quantization unit 215. That is, the inverse quantization unit 220 inversely quantizes the quantized frequency coefficient sequence to generate a residual block having a frequency coefficient.
  • the inverse transform unit 225 inversely transforms the residual block quantized by the inverse quantization unit 220. That is, the inverse transform unit 225 inversely transforms the frequency coefficients of the inverse 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 an inverse transform using the transformed method used by the transform unit 210 in reverse.
  • the adder 230 restores the target block by adding the predicted block predicted by the predictor 200 and the residual block restored by the inverse transform unit 225.
  • the restored target block is stored as a reference picture (or reference block) in the coded 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 in the future.
  • the filter unit 235 may include one or more post-processing filter processes such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF).
  • the deblocking filter can remove block distortion caused by the boundary between blocks in the reconstructed picture.
  • the ALF may perform filtering based on a value obtained by comparing a reconstructed image with an original image after a block is filtered through a deblocking filter.
  • the SAO may restore an offset difference from an original image in units of pixels for a residual block to which a deblocking filter is applied. This post-processing filter can be applied to the reconstructed picture or block.
  • the coded picture buffer 240 may store blocks or pictures reconstructed through the filter unit 235.
  • the reconstructed block or picture stored in the coded picture buffer 240 may be provided to the prediction unit 200 that performs intra prediction or inter prediction.
  • the entropy encoding unit 245 scans the generated quantized frequency coefficient sequence according to various scan methods to generate a quantized coefficient sequence, and outputs the encoded quantization using an entropy encoding technique.
  • the scan pattern can be set to one of various patterns such as zigzag, diagonal, and raster. Also, it is possible to generate and output encoded data including encoding information transmitted from each component in 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 decoding unit 305, a prediction unit 310, an inverse quantization unit 315, an inverse transform unit 320, an adder / subtractor 325, a filter 330, and It may be configured to include a decoded picture buffer 335.
  • the prediction unit 310 may include an intra-screen prediction module and an inter-screen prediction module again.
  • an image bitstream transmitted from the image encoding apparatus 20 when received, it may be delivered to the entropy decoding unit 305.
  • the entropy decoding unit 305 may decode the bitstream and decode decoded data including quantized coefficients and decoding information transmitted to each component.
  • the prediction unit 310 may generate a prediction block based on data transmitted from the entropy decoding unit 305. At this time, based on the reference image stored in the decoded picture buffer 335, a reference picture list using a default configuration technique may be constructed.
  • the inter-screen prediction unit may include a reference picture construction unit, a motion compensation unit, and a motion information decoding unit, and some may perform the same process as the encoder and some may inversely.
  • the inverse quantization unit 315 may be provided as a bitstream to inverse quantize the quantized transform coefficients decoded by the entropy decoding unit 305.
  • the inverse transform unit 320 may generate a residual block by applying inverse DCT, inverse integer transform, or similar inverse transform techniques to transform coefficients.
  • the inverse quantization unit 315 and the inverse transformation unit 320 reversely perform the processes performed by the transformation 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 that are shared with the transform unit 210 and the quantization unit 215 may be used, and information about the transform and quantization process (eg, transform size, transform) from the image encoding apparatus 20 may be used.
  • Shape, quantization type, etc. can be used to reverse the transformation and quantization processes.
  • the residual block that has undergone the inverse quantization and inverse transformation processes may be added to the prediction block derived by the prediction unit 310 to generate a reconstructed image block.
  • the addition may be performed by the addition / subtraction unit 325.
  • the filter 330 may apply a deblocking filter to the reconstructed image block to remove blocking, if necessary, and additional loop filters before and after the decoding process to improve video quality You can also use
  • the reconstructed and filtered image blocks may be stored in the decoded picture buffer 335.
  • the image encoding / decoding device may further include a block division unit.
  • the basic coding unit (or maximum coding unit. Coding Tree Unit. CTU) may mean a basic (or start) unit for prediction, transformation, and quantization in the image encoding process.
  • the basic coding unit may be composed of one luminance basic coding block (or a maximum coding block. Coding Tree Block. CTB) and two basic color difference coding blocks according to a color format (YCbCr in this example), and a color format.
  • YCbCr luminance basic coding block
  • YCbCr color format
  • a coding block may be obtained according to the division process.
  • the coding block may be understood as a unit that is not divided into further coding blocks according to certain limitations, and may be set as a starting unit of division into lower units.
  • the block is not limited to a square shape, and can be understood as a wide concept including various shapes such as a triangle and a circle.
  • a block may be represented by M ⁇ N, and maximum and minimum values 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 block of 2 m ⁇ 2 n size (m and n are integers from 2 to 8 in this example) or a size of 2 m ⁇ 2 m Can obtain a block (in this example, m and n are integers from 2 to 128) or a block of size m ⁇ m (in this example, 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 blocks such as the maximum and minimum values are supported may occur.
  • information regarding a maximum size and a minimum size of a block may occur, and information regarding a maximum size and a minimum size of a block in some division settings may occur.
  • the segmentation settings include image type (I / P / B), color component (YCbCr, etc.), block type (coding / prediction / conversion / quantization, etc.), segmentation type (Index or Type), segmentation method (Tree type QT , BT, TT, etc., SI2, SI3, SI4, etc. in the Index method.
  • a boundary value condition may be set.
  • k is the ratio of the length of the width to the length, such as A / B (A is the same value as the length or length among B and A, and B is the remaining value). It can be defined according to, and may be one or more real numbers such as 1.5, 2, 3, 4, and the like.
  • a restriction condition regarding the shape of one block in an image may be supported, or one or more restriction conditions may be supported according to divisional settings.
  • whether or not block division is supported may be determined by the range and conditions as described above, and the division setting described later. For example, if a candidate (child block) according to the division of a block (parent block) satisfies a supported block condition, the division may be supported, and if not, the division may not be supported.
  • the block division unit may be set in relation to each component of the video encoding device and the decoding device, and the size and shape of the block may be determined through this process.
  • the block to be set may be defined differently according to the component, and a prediction block in a prediction unit, a transformation block in a transform unit, a quantization block in a quantization unit, and the like. You can.
  • the present invention is not limited thereto, and a block unit according to other components may be additionally defined.
  • the input and output of each component will be mainly described in a rectangular shape, but in some components, input / output of other shapes (for example, a right-angled triangle, etc.) may be possible.
  • the size and shape of the initial (or starting) block of the block partition may be determined from higher units.
  • the initial block may be divided into smaller-sized blocks, and if an optimal size and shape according to partitioning of blocks are determined, the block may be determined as an initial block of a lower unit.
  • the upper unit may be a coding block
  • the lower unit may be a prediction block or a transform block, but is not limited thereto, and examples of various modifications may be possible.
  • a partitioning process for finding the optimal size and shape of the block as the upper unit may be performed.
  • the block splitter may split the basic coding block (or the largest coding block) into at least one coding block, and the coding block may split into at least one prediction block / transformation block / quantization block. .
  • the prediction block may be split into at least one transform block / quantization block, and the transform block may be split into at least one quantization block.
  • some blocks may be dependent on other blocks (ie, defined by upper and lower units) or may have independent relationships.
  • the prediction block may be an upper unit of the transform block or an independent unit from the transform block, and various relations may be set according to the type of block.
  • Whether to combine the upper unit and the lower unit may be determined according to encoding settings.
  • the coupling between units does not perform division from the upper unit to the lower unit, but performs the coding process of the lower unit (eg, prediction unit, transform unit, inverse transform unit, etc.) in blocks (size and shape) of the upper unit.
  • the coding process of the lower unit eg, prediction unit, transform unit, inverse transform unit, etc.
  • the division process in a plurality of units is shared and the division information occurs in one unit (for example, an upper unit).
  • a prediction process, a transform process, and an inverse transform process may be performed in a coding block (when the coding block is combined with a prediction block and a transform block).
  • a prediction process may be performed in a coding block (when an encoding block is combined with a prediction block), and a transform and inverse transform process may be performed in a transform block equal to or smaller than the coding block.
  • a prediction process may be performed on a prediction block equal to or smaller than a 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 equal to or smaller than a coding block (when the prediction block is combined with a transformation block), and transformation and inverse transformation processes may be performed on the prediction block.
  • a prediction process may be performed in a prediction block equal to or smaller than a coding block (when not combined in any block), and a transformation and inverse transformation process may be performed in a transformation block equal to or smaller than the coding block.
  • the combination between the units may support fixed settings in an image or adaptive settings in consideration of various coding elements.
  • the encoding elements include image type, color component, encoding mode (Intra / Inter), segmentation setting, block size / shape / position, horizontal / vertical length ratio, and prediction related information (eg, intra prediction mode, Inter-screen prediction mode, etc., transformation-related information (eg, transformation technique selection information, etc.), quantization-related information (eg, quantization region selection information, quantized transformation coefficient encoding information, etc.).
  • mode information (eg, segmentation information, etc.) may be generated.
  • the mode information may be stored in a bitstream together with information (for example, prediction-related information and transformation-related information) generated by a component to which a block belongs, and transmitted to a decoder, and parsed in units of the same level in the decoder It can be used in the video decoding process.
  • the initial block is in the form of a square, but the initial block may be applied in the same or similar manner, but is not limited thereto.
  • the block division unit may support various kinds of division. For example, tree-based partitioning or index-based partitioning may be supported, and other methods may be supported.
  • the tree-based partitioning may determine a partitioning type based on various types of information (eg, whether or not partitioning, a tree type, a partitioning direction, etc.), and the index-based partitioning may determine a partitioning type using predetermined index information.
  • FIG. 4 is an exemplary view showing various types of divisions that can be obtained in the block division unit of the present invention.
  • a partition form as shown in FIG. 4 is obtained through one partitioning (or process), but is not limited thereto, and may also be possible when a partition is obtained through a plurality of partitioning operations.
  • additional partitioning forms not shown in FIG. 4 may be possible.
  • a quad tree QT
  • BT binary tree
  • TT ternary tree
  • one tree method it can be referred to as single tree splitting, and when more than one tree method is supported, multiple tree splitting.
  • QT it means the method (n) in which the blocks are divided into two in the horizontal and vertical directions (i.e., in four), and in the case of BT, the block is divided into two in either the horizontal or vertical directions (b to g). And, in the case of TT, it means a method (h to m) in which a block is divided into three in one direction, horizontal or vertical.
  • a method (q) in which the division direction is divided into four in each of the horizontal and vertical directions ie, 16 divisions) can also be supported.
  • z division (b, d, e, h, i, j, o) is limited to the horizontal division direction or z division (c, f, g) is limited to the vertical division direction. , k, l, m, p), or a mixture of the two.
  • z may be an integer of 2 or more, such as 2, 3, and 4.
  • one or more of the tree splitting schemes may be supported. For example, it can support QT, it can support QT / BT, or it can support QT / BT / TT.
  • the above example is an example of a case where the basic tree partition is QT and BT and TT are included in an additional partition scheme depending on whether other trees are supported, but various modifications may be possible.
  • information on whether other trees are supported (bt_enabled_flag, tt_enabled_flag, bt_tt_enabled_flag, etc. may have a value of 0 or 1, if 0 is not supported and is supported if 1) is implicitly determined according to encoding settings, or a sequence, picture, It can be explicitly determined in units of slices, tile groups, tiles, bricks, and the like.
  • the segmentation information may include information on whether or not segmentation is performed (tree_part_flag. Or qt_part_flag, bt_part_flag, tt_part_flag, bt_tt_part_flag.
  • the division direction (dir_part_flag. Or bt_dir_part_flag, tt_dir_part_flag, bt_tt_dir_part_flag. May have a value of 0 or 1 according to the division method (BT and TT), and if it is 0, ⁇ horizontal / horizontal> and 1 is ⁇ vertical / vertical>)
  • Information about can be added, and this may be information that can be generated when partitioning is performed.
  • splitting information configurations may be possible.
  • the following is an example of how split information is configured at one depth level (that is, one or more supported split depths may be set to allow recursive splitting, but for convenience of explanation). do.
  • the selection information for the segmentation type (eg, tree_idx. 0 is QT, 1 is BT, and 2 is TT). At this time, additionally check the segmentation direction information according to the selected segmentation type, and start again from the beginning if additional segmentation is possible due to the next step (eg, when the segmentation depth has not reached the maximum, or if segmentation is not possible) ).
  • QT information on whether to split for some tree schemes
  • BT information on whether to split some tree schemes
  • TT information on whether to split some tree schemes
  • the process goes to the next step.
  • partitioning of some tree schemes BT
  • partitioning direction information is checked and the process proceeds to the next step.
  • partitioning of some tree partitioning methods TT is performed, the partitioning direction information is checked and the process goes to the next step.
  • the process goes to the next step.
  • the splitting of some tree schemes (BT and TT) is performed, the splitting direction information is checked and the process goes to the next step.
  • the above example may be a case where the priority of tree splitting exists (examples 2 and 3) or does not exist (example 1), but various examples of variations may be possible.
  • the division of the current stage is an example for explaining a case irrelevant to the division result of the previous stage, but it may also be possible to set the division of the current stage depending on the division result of the previous stage.
  • the tree configuration supported for block division may be adaptive, and thus, the above-described division information configuration may also be configured differently.
  • the example to be described later is assumed to be the third example.
  • the segmentation information eg, information on whether or not segmentation, information on segmentation, etc. on the related tree method
  • the above example is adaptive for the case where block partitioning is allowed (for example, the block size is within a range between the maximum value and the minimum value, and the split depth of each tree method does not reach the maximum depth ⁇ allowable depth>, etc.).
  • This is the case for the configuration of segmentation information, and is adaptable even when block segmentation is limited (for example, the block size does not exist in the range between the maximum and minimum values, and the segmentation depth of each tree method reaches the maximum depth, etc.) It may be possible to configure the segmentation information.
  • tree-based partitioning in the present invention can be performed using a recursive scheme. For example, when the split flag of the coding block having the split depth k is 0, coding of the coding block is performed in the coding block having the split depth k, and when the split flag of the coding block having the split depth k is 1, the coding block is The encoding of is performed in N sub-coding blocks having a division depth of k + 1 according to the division method (where N is an integer of 2 or more such as 2, 3, 4).
  • the sub-encoding block may be set again as an encoding block (k + 1) and divided into sub-encoding blocks (k + 2) through the above process, and such a hierarchical division method may include segmentation settings such as a division range and an allowable depth of division. It can be determined according to.
  • the bitstream structure for representing the segmentation information can be selected from one or more scan methods.
  • the bitstream of the segmentation information may be configured based on the segmentation depth order, or the bitstream of the segmentation information may be constructed based on whether or not segmentation is performed.
  • the method is to obtain division information at the current level depth based on the first block, and to obtain the division information at the next level depth. It means a method of preferentially acquiring additional segmentation information in an existing block, and other additional scan methods may be considered.
  • the size of the maximum block and the size of the minimum block can have common settings regardless of the tree type (or all trees), or can have individual settings for each tree, or common settings for more than one tree. have. At this time, the size of the maximum block may be set equal to or smaller than the maximum encoding block. If the size of the maximum block according to the predetermined first tree is not the same as the maximum coding block, the implicit division is performed using the predetermined second tree method until the maximum block size of the first tree is reached.
  • a common split depth may be supported, or individual split depths may be supported according to each tree, or common split depths for two or more trees may be supported. Alternatively, a split depth may be supported for some trees, and a split depth may not be supported for some trees.
  • Explicit syntax elements for the setting information may be supported, and some setting information may be determined implicitly.
  • CSI constant split index
  • VSI variable split index
  • the CSI method may be a method in which k sub-blocks are obtained through division in a predetermined direction, and k may be an integer of 2 or more, such as 2, 3, 4, and the like.
  • k may be an integer of 2 or more, such as 2, 3, 4, and the like.
  • it may be a partitioning scheme of a configuration in which the size and shape of a sub-block is determined based on the k value regardless of the size and shape of the block.
  • one or two or more of the directions of the horizontal, vertical, and diagonal (upper left-> lower right direction. Or lower left-> upper right direction, etc.) directions may be combined.
  • the index-based CSI segmentation method of the present invention may include candidates that are divided into z pieces in one of horizontal and vertical directions.
  • z may be an integer of 2 or more, such as 2, 3, 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 horizontal or vertical 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.
  • candidates divided into x and y in the horizontal and vertical directions may be included.
  • x and y may be integers of 1 or more such as 1, 2, 3, and 4, but when x and y are 1 at the same time (a is already present), it may be limited.
  • the ratio of the horizontal or vertical length of each sub-block is the same, it is possible to include candidates including different cases.
  • w may be an integer of 2 or more, such as 2 or 3. .
  • a division type may be defined by various encoding elements including a sub-block length ratio as well as a sub-block length ratio, and a supported division type may be determined implicitly or explicitly according to encoding settings. Thus, candidate groups in the index-based partitioning scheme may be determined based on the supported partitioning scheme.
  • the VSI method may be a method in which one or more sub-blocks are obtained through division in a predetermined direction while the width (w) or the height (h) of the sub-block is fixed, and w and h are 1, 2, 4, It may be an integer of 1 or more such as 8.
  • 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 segmentation method of the present invention may include candidates that are divided by fixing one of the horizontal or vertical lengths of a sub-block. Alternatively, candidates that are divided by fixing the horizontal and vertical lengths of the sub-blocks may be included. 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 number of acquired sub-blocks is It may be (M * N) / w, (M * N) / h, (M * N) / w / h, respectively.
  • only the CSI method or only the VSI method may be supported, and both methods may be supported, and information on the supported method may be determined implicitly or explicitly.
  • a candidate group may be configured by including two or more candidates during the index division according to encoding settings.
  • candidate groups such as ⁇ a, b, c ⁇ , ⁇ a, b, c, n ⁇ , and ⁇ a to g, n ⁇ can be constructed, divided into two horizontally or vertically, or horizontally and vertically.
  • it may be an example of configuring a block type predicted to occur a lot based on general statistical characteristics, such as a block type divided into two, as candidate groups.
  • ⁇ a, b ⁇ , ⁇ a, o ⁇ , ⁇ a, b, o ⁇ , or ⁇ a, c ⁇ , ⁇ a, p ⁇ , ⁇ a, c, p ⁇ can form candidate groups, It includes candidates that are divided into 2 and 4 in the horizontal and vertical directions, respectively. This may be an example of configuring a block type that is predicted to generate a lot of partitions in a specific direction as a candidate group.
  • a candidate group such as ⁇ a, o, p ⁇ or ⁇ a, n, q ⁇ may be configured, for example, a candidate group having a block shape that is predicted to generate many partitions having a smaller size than a block before partitioning. You can.
  • candidate groups such as ⁇ a, r, s ⁇ may be constructed, and it is determined that the optimal division result that can be obtained in a rectangular shape through another method (tree method) in the block before division is obtained, and the It may be an example of configuring the division type as a candidate group.
  • various candidate group configurations may be possible, and one or more candidate group configurations may be supported in consideration of various coding elements.
  • index selection information may be generated in a candidate group including candidates (a) that are not divided and candidates (b to s) that are divided.
  • index selection information may be generated in a candidate group consisting of candidates (b to s) that are divided. You can.
  • Divided information may be configured in various ways other than the above description, and binary bits may be allocated to various indexes, such as fixed-length binarization and variable-length binarization, in the index of each candidate in the candidate group, except for information indicating whether or not the split is performed. have. If the number of candidate groups is 2, 1 bit may be allocated to the index selection information, and if 3 or more, 1 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 predicted to occur in a large number of candidate groups.
  • a single layer partition (for example, a split depth of 0) is not a tree-based hierarchical partition (recursive partition). Limited). That is, it may be a method supporting a single partitioning operation, and a sub-block obtained through index-based partitioning may be a method in which no further partitioning is possible.
  • an encoding block may be obtained through a division process.
  • a tree-based splitting method may be used for the splitting process, and a split type such as a (no split), n (QT), b, c (BT), i, l (TT) of FIG. 4 may be used depending on the tree type. Results may be obtained.
  • Various combinations of each tree type, such as QT / QT + BT / QT + BT + TT may be possible according to encoding settings.
  • the example described below represents a process in which a prediction block and a transform block are finally partitioned based on the coding block obtained through the above process, and assumes that a prediction, transform, and inverse transform process is performed based on each partition size.
  • a prediction block may be set as the size of an encoding block and a prediction process may be performed, and a transformation block may be set as the size of an encoding block (or prediction block) to perform transformation and inverse transformation processes.
  • a prediction block and the transform block split information generated separately is not present because it is set based on the coding block.
  • a prediction block may be set as the size of a coding block to perform a prediction process.
  • a transform block may be obtained through a splitting process based on an encoding block (or prediction block), and a transform and inverse transform process may be performed based on the obtained size.
  • a tree-based splitting method may be used for the splitting process, and a split type such as a (no split), b, c (BT), i, l (TT), n (QT) of FIG. 4 may be used according to the tree type. Results may be obtained.
  • Various combinations of each tree type such as QT / BT / QT + BT / QT + BT + TT, may be possible according to encoding settings.
  • an index-based partitioning method may be used, and a split type result such as a (no split), b, c, d of FIG. 4 may be obtained according to the index type.
  • Various candidate groups such as ⁇ a, b, c ⁇ , ⁇ a, b, c, d ⁇ may be configured according to encoding settings.
  • a prediction process may be obtained by performing a division process based on an encoding block, and a prediction process may be performed based on the obtained size.
  • the size of the coding block is set as it is, so that transform and inverse transform processes can be performed. This example may correspond to a case where the prediction block and the transform block have independent relationships with each other.
  • an index-based partitioning method may be used, and partitioning results such as a (no split), b to g, n, r, and s of FIG. 4 may be obtained according to the index type.
  • Various candidate groups such as ⁇ a, b, c, n ⁇ , ⁇ a to g, n ⁇ , ⁇ a, r, s ⁇ may be configured according to encoding settings.
  • a prediction process may be obtained by performing a division process based on an encoding block, and a prediction process may be performed based on the obtained size.
  • the size of the prediction block is set as it is, so that transform and inverse transform processes can be performed.
  • the present example may be a case in which a transform block is set as the obtained prediction block size or vice versa (a prediction block is set as it is in the transform block size).
  • a tree-based splitting method may be used for the splitting process, and splitting forms such as a (no split), b, c (BT), and n (QT) of FIG. 4 may be displayed according to the tree type.
  • splitting forms such as a (no split), b, c (BT), and n (QT) of FIG. 4 may be displayed according to the tree type.
  • Various combinations of each tree type, such as QT / BT / QT + BT, may be possible according to encoding settings.
  • an index-based partitioning method may be used, and partitioning forms such as a (no split), b, c, n, o, p of FIG. 4 may be generated according to the index type.
  • Various candidate groups such as ⁇ a, b, c, n ⁇ , and ⁇ a, b, c, n, p ⁇ may be possible.
  • the candidate group may be configured by the VSI scheme alone or by mixing with the CSI scheme.
  • a prediction process in the case of a prediction block, a prediction process may be obtained by performing a division process based on an encoding block, and a prediction process may be performed based on the obtained size.
  • a prediction block in the case of a transform block, a prediction block may be obtained by performing a splitting 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 each of the prediction block and the transform block based on the coding block.
  • a tree-based partitioning method and an index-based partitioning method may be used, and candidate groups may be configured in the same or similar manner to the fourth example.
  • block division settings may be determined by considering various coding elements as well as types of blocks.
  • the coding elements include image type (I / P / B), color component (YCbCr), block size / shape / position, horizontal / vertical length ratio of block, type of block (coding block, prediction block, transform block, Quantization block, etc.), split state, encoding mode (Intra / Inter), prediction-related information (in-picture prediction mode, inter-screen 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).
  • FIG. 5 is an exemplary diagram illustrating a prediction mode in intra-picture prediction according to an embodiment of the present invention.
  • 95 prediction modes may be supported for intra-picture prediction, 93 of which are directional modes and 2 are non-directional modes (DC, Planar).
  • the directional mode may be divided into slope (eg, dy / dx) or angle information (Degree).
  • prediction may be performed through a method such as averaging or interpolation of adjacent reference pixels of a block, and in the case of a directional mode, prediction may be performed through methods such as extrapolation or interpolation of adjacent reference pixels of a block. It can be a way.
  • blocks adjacent to the left, top, left, right, and left directions may exist, and a non-directional mode or vertical (up-> lower) using this as a starting point or a reference pixel of prediction, Prediction modes in the horizontal (left-> right), diagonal A (upper-> lower right), diagonal B-1 (upper-> lower left), and diagonal B-2 (lower-> right) directions may be supported. If a scan other than raster scan is supported, the directional mode may be defined differently.
  • the horizontal mode in a state in which the left block is unavailable and the right block is unavailable can perform prediction through extrapolation in the (right-> left) direction.
  • prediction may be performed through extrapolation in a predetermined direction (left-> right or right-> left) or prediction may be performed through interpolation of both blocks.
  • encoding is performed according to a raster scan or z scan order, and a description will be given on the assumption that pixels that can be referenced are located in the left, top, left, right, and left directions.
  • a reconstructed block of another color space which has been coded, may be used for prediction of a target block by using correlation between color spaces, and a prediction mode supporting the same may be included.
  • a prediction mode supporting the same may be included in the case of a color difference component.
  • a predicted block of a target block may be generated using a reconstructed block of a luminance component corresponding to the target block. That is, a prediction block may be generated based on the reconstructed block in consideration of correlation between color spaces, and may be included as an intra-picture prediction mode for color difference components.
  • the prediction group 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, color mode) regarding the color difference component and some of the prediction mode candidate groups of the luminance component may be included in the prediction mode candidate group.
  • the color copy mode may be a prediction mode related to a method for acquiring data for generating a prediction block from regions located in different color spaces, and in the case of a color mode, a method for obtaining a prediction mode from regions located in other color spaces and It may be a related prediction mode.
  • m and n modes (m and n are integers of 0, 1, 2, 3, or more), respectively, may be supported.
  • a predetermined data acquisition method for generating a predictive block may be predefined, and when two or more are supported, a data acquisition method for generating a predictive block is classified (for example, refer to obtain correlation) Location, etc. ⁇ 1> left, ⁇ 2> top, ⁇ 3> left + top area, etc.).
  • a predetermined position for obtaining a prediction mode may be predefined when one is supported, and a plurality of positions for obtaining a prediction mode (for example, ⁇ 1> center of a corresponding block, when two or more are supported) ⁇ 2> top left, ⁇ 3> top right, ⁇ 4> bottom left, ⁇ 5> bottom right, etc.) can be supported.
  • 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 color difference component, and other additional modes may be included in the prediction mode candidate group.
  • the prediction mode may mean all candidates of the supported intra prediction mode, and among them, a prediction mode candidate group may be configured in all or part of the configurations. At this time, the prediction mode candidate group may be configured according to the size and shape of the block (width / length ratio).
  • the number of prediction mode candidate groups may be determined according to the size of the block.
  • the size of the block may be classified into one of two or more ranges divided based on one or more predetermined threshold sizes (A x B, C x D, etc.), and a plurality of 11, 35, 67, etc. according to the classified range It may be determined as one of the number of candidate groups, or whether a color copy mode, a color mode, or the like is supported and the number may be determined.
  • the threshold size may be represented by width (W), height (H), W x H, etc., and W and H may be integers of 2 or more, such as 4, 8, 16, 32, and 64.
  • the configuration of the prediction mode candidate group may be determined according to the shape of the block (or the width / length ratio of the block).
  • the horizontal / vertical length ratio of the block may be classified into one of two or more ranges divided based on one or more predetermined threshold values, and a candidate group configuration may be determined according to the classified range.
  • the threshold value may be expressed as W / H (or H / W), and has an integer value of 1 or more such as 1, 2, 4, 8, 16, or 1, 1/2, 1/4 , 1/8, 1/16, and the like.
  • the intra prediction in the present invention it is assumed that 95 prediction modes as shown in FIG. 5 are supported for directional and non-directional modes, and a color mode and a color copy mode can be supported.
  • the prediction mode candidate group of luminance components is 67 in directional mode and non-directional mode
  • the prediction mode candidate group of chrominance component is 4 directional and non-directional modes, 1 color mode, and 3 color copy modes
  • a total of 8 is supported. Assume, but is not limited to this.
  • the following shows an example of the configuration of a prediction mode candidate group according to a horizontal / vertical length ratio of a block.
  • the prediction mode of 0 and 1 and the prediction mode of 2 to 66 mode are included in the prediction mode candidate group in the form of a square block.
  • the prediction mode added or excluded from the prediction mode candidate group (excluding the non-directional mode) of the square block when the block is in the form of a block may be configured as shown in the table above. It may be an example that is set on the assumption that a wide configuration is advantageous in terms of accuracy of prediction, but a configuration opposite thereto may also be possible.
  • the reference pixel configuration unit may configure a reference pixel used for intra prediction.
  • the reference pixel may be managed through a temporary memory (eg, array ⁇ Array>. 1st, 2nd array, etc.), and may be generated and removed for each intra prediction process, and the size of the temporary memory is a reference pixel It can be determined according to the configuration of.
  • a temporary memory eg, array ⁇ Array>. 1st, 2nd array, etc.
  • the block candidate group having a different configuration may be used for intra prediction.
  • a candidate group of neighboring blocks for the reference pixel may be an example of following a raster or Z scan, and some of the candidate groups may be removed according to a supported scan order or other block candidate groups (for example, , Right, lower, lower right block, etc. may be configured.
  • a pixel adjacent to the target block may be classified into at least one reference pixel layer, and the pixel closest to the target block is ref_0 ⁇ pixels having a difference in pixel value from a boundary pixel of the target block of 1.
  • p (-1, -1) to p (2m-1, -1), p (-1,0) to p (-1,2n-1) ⁇ and then adjacent pixels ⁇ border pixels and pixels of the target block Value difference 2.
  • p (-2, -2) to p (2m, -2), p (-2, -1) to p (-2,2n) ⁇ is ref_1, and the next adjacent pixel ⁇ the boundary of the target block Difference between pixel and pixel value 3.
  • the reference pixel may be classified into a plurality of reference pixel layers according to the pixel distance adjacent to the boundary pixel of the target block.
  • N or more reference pixel lines may be supported, and N may be an integer of 1, 2, 3, 4, or more.
  • the reference pixel lines that are closest to the target block are sequentially included in the reference pixel line candidate group, but are not limited thereto.
  • the candidate groups 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 to configure the candidate group with a configuration that excludes the 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 the encoding setting, and intra prediction may be performed using the reference pixel line.
  • two or more of the plurality of reference pixel lines may be selected and the corresponding reference pixel line may be used (eg, a weighted average may be applied to data of each reference pixel line) to perform intra prediction.
  • reference pixel line selection may be determined implicitly or explicitly.
  • implied means that it is determined according to encoding settings defined according to one or more combinations of elements such as image type, color component, and block size / shape / position.
  • explicit case means that reference pixel line selection information may be generated in units such as blocks.
  • the reference pixel line referred to for prediction may be considered as one of the main coding elements of the present invention. That is, the intra-prediction setting may be determined regardless of the reference pixel line selected, but the intra-prediction setting may be determined accordingly.
  • the reference pixel construction unit of the intra prediction of the present invention may include a reference pixel generation unit, a reference pixel interpolation unit, a reference pixel filter unit, and the like, and may include all or a part of the configuration.
  • the usable reference pixel and the unavailable reference pixel may be classified by checking the availability of the reference pixel in the reference pixel configuration unit. Here, it is determined that the possibility of using the reference pixel is unavailable when at least one of the following conditions is satisfied.
  • the same division unit as a target block for example, a unit that cannot be referred to each other, such as slices and tiles.
  • it may be judged as unavailable if any of the cases in which encoding is not completed is satisfied. That is, when none of the above conditions are satisfied, it can be determined as usable.
  • reference pixels can be restricted by encoding settings.
  • the use of the reference pixel may be limited according to whether or not limited intra prediction (eg, constrained_intra_pred_flag) is performed, even if it is determined to be usable according to the above conditions.
  • the limited intra-screen prediction may be performed when it is desired to prohibit the use of a restored block referenced from another image as a reference pixel in order to prevent error propagation to external factors such as a communication environment.
  • the reference pixel candidate block is assumed to be used as a condition for determining whether to use it according to the encoding mode (Mode_Intra, Mode_InterD, Mode_InterC)
  • the above conditions may be determined according to various other encoding elements.
  • Mode_Intra, Mode_Inter_D, and Mode_Inter_C may mean intra-frame prediction, inter-screen prediction (block matching, etc.) referenced by other pictures, and inter-screen prediction referenced by the current picture.
  • the setting that cannot be referenced may be general, but is not limited thereto.
  • the reference pixel is composed of one or more blocks, when the possibility of the reference pixel is confirmed and classified, it can be classified into three cases: ⁇ all usable>, ⁇ some usable>, and ⁇ not all usable>. In all other cases, the reference pixels at the unavailable candidate block positions 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 may be 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 is an example of generating a reference pixel at an unusable block location using various methods.
  • a reference pixel may be generated using an arbitrary pixel value.
  • the arbitrary pixel value is one pixel value (for example, a minimum value of the pixel value range) belonging to a pixel value range (for example, a pixel value range based on a bit depth or a pixel value range according to a pixel distribution in a corresponding image). Maximum, median, etc.).
  • it may be an example applied when all of the reference pixel candidate blocks are unavailable.
  • a reference pixel may be generated from a region where encoding of an image is completed.
  • a reference pixel may be generated from at least one usable block adjacent to an unusable block. At this time, at least one of methods such as extrapolation, interpolation, and copying can be used.
  • the reference pixel may target an area adjacent to the target block, and an area corresponding to the target block (in order to obtain predictive data) in another color space referenced in some prediction mode (eg, color copy mode, etc.) Region or its adjacent region).
  • some prediction mode eg, color copy mode, etc.
  • 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.
  • the reference pixel filtering may precede or follow the reference pixel interpolation, or may be performed by being combined simultaneously.
  • Filtering the reference pixel may be a process performed for the purpose of reducing deterioration remaining in the reference pixel. It 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 for filtering reference pixels. Also, a plurality of filtering may be performed by different types of filters.
  • the encoding setting is the state information of the target block (block size, shape, position, etc.), image type (I / P / B), color component (Y / Cb / Cr), reference pixel line selection information, sub-block unit It may be defined based on whether intra prediction is applied, intra prediction mode, or the like.
  • reference pixel interpolation may not be performed in a prediction mode in which only pixels of an integer unit are referenced, and reference pixel interpolation may be performed in a prediction mode in which pixels in a decimal unit are referred.
  • a pixel position (ie, which fractional unit is interpolated) to which interpolation is performed may be determined according to a prediction mode (eg, directionality of the prediction mode, dy / dx, etc.) and positions of the reference pixel and the prediction pixel.
  • a prediction mode eg, directionality of the prediction mode, dy / dx, etc.
  • one filter may be applied regardless of the precision of the decimal unit, or one of a plurality of filters (for example, a filter in which an equation used to determine the filter coefficient or the length of the filter tap is distinguished) is a decimal number. It can be selected and applied depending on the unit.
  • an integer unit pixel as an input for interpolation of a decimal unit pixel
  • an example of different input pixels in stages for example, an integer pixel is used for 1/2 unit. 1 / 4 units may be integers and 1/2 unit pixels, etc.
  • the present invention will be mainly described in the former case.
  • the encoding setting may be defined based on state information of a target block, image type, color component, reference pixel line selection information, whether intra prediction is applied in units of sub blocks, an intra prediction mode, and the like.
  • the fixed filtering may perform reference pixel interpolation using one filter
  • the adaptive filtering may perform reference pixel interpolation using one of a plurality of filters.
  • one of a plurality of filters may be determined implicitly or explicitly determined according to encoding settings.
  • the type of the filter may be configured by selecting one or more from a 4-tap DCT-IF filter, a 4-tap cubic filter, a 4-tap Gaussian filter, a 6-tap Wiener filter, and an 8-tap Kalman filter. Accordingly, it is also possible that the supported filter candidate groups are defined differently (for example, some types of filters are the same or different, and the length of the filter tap is short or long).
  • 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 according to the prediction mode, and may be used in a method such as interpolation or averaging (DC) or copying.
  • the prediction mode determination unit performs a process for selecting an optimal mode among a plurality of prediction mode candidate groups.
  • the distortion of a block ⁇ eg, the distortion of the target block and the reconstructed block.
  • the optimal mode in terms of encoding cost can be determined by using a rate-distortion technique that takes into account the amount of bits generated according to the mode and sum of square difference (SSD) and sum of square difference (SSD).
  • the prediction block generated based on the prediction mode determined through the above process may be transmitted to the subtraction unit and the addition unit.
  • the prediction mode encoding unit may encode the prediction mode selected through the prediction mode determination unit.
  • index information corresponding to the prediction mode may be encoded, or information on the prediction mode may be encoded by predicting the prediction mode.
  • the former may be a method applied to a luminance component, and the latter may be a method applied to a color difference component, but is not limited thereto.
  • the prediction mode When the prediction mode is predicted and coded, it can be classified into a plurality of categories (k. K is an integer of 2, 3, 4, or more) and managed.
  • K is an integer of 2, 3, 4, or more
  • one category may be configured as a prediction mode that is expected to match the prediction mode of the target block, and the other category is expected to be less likely to match the prediction mode. It can be configured in a prediction mode. That is, another category may be configured as a prediction mode that is not selected as a mode expected to match the prediction mode of the target block.
  • the prediction mode is classified into two categories, and it can be classified into more categories.
  • the first category may be configured as a prediction mode that is predicted to be highly likely to match the prediction mode of the target block
  • the second category is usually predicted as likely to match the prediction mode of the target block.
  • It may be configured as a prediction mode
  • the third category may be configured as a prediction mode that is predicted to be less likely to match the prediction mode of the target block. That is, the second category may be configured as a prediction mode that is expected to match the prediction mode of the target block among prediction modes that do not belong to the first category, and the third category is a prediction mode that does not belong to the first category and the second category. It can be composed of.
  • classification according to a prediction method may be possible. For example, it can be classified into a prediction method based on extrapolation, a prediction method based on interpolation / average, and a prediction method based on radiation.
  • the prediction method based on extrapolation may mean a directional mode
  • the prediction method based on interpolation / average may mean a non-directional mode
  • the prediction method based on radiation may be classified into a color copy mode
  • Other classifications may be possible.
  • the color mode may be distinguished from the directional or non-directional mode because it induces a prediction mode in a different color space, but it is assumed that it is classified into a directional / non-directional mode for convenience of explanation.
  • the first category When classified into two categories according to a prediction method, the first category may be configured as a directional / non-directional mode, and the second category may be configured as a color copy mode.
  • the first category may be configured in a directional mode
  • the second category may be configured in a non-directional mode.
  • the former can be applied to the intra prediction of the color difference component, and the latter may be an example applicable to the intra prediction of the luminance component.
  • the color copying mode is also applicable to the intra prediction mode of the color difference component in the following description, but it should be understood that even when the color copying mode is not included, the luminance component is not limited to the intra prediction mode. do.
  • the first category may be configured as a directional mode
  • the second category may be configured as a non-directional mode
  • the third category may be configured as a color copy mode.
  • the first category may be configured in a predetermined mode (eg, vertical, horizontal, diagonal A mode, etc.) among the directional modes
  • the second category may be configured in a predetermined mode (eg, diagonal B mode, etc.) among the directional modes.
  • the third category may be configured as a color copy mode.
  • the diagonal A mode may be configured as a diagonal mode using only integer pixels for prediction
  • the diagonal B mode may be configured as a diagonal mode using integer pixels and fractional pixels for prediction, but is not limited thereto.
  • the above description is an example of a configuration of a category, and is not limited thereto, and may be classified according to various predetermined criteria. In addition, a plurality of predetermined criteria may be mixed and applied to the category configuration.
  • selection information regarding to which category the prediction mode of the target block has occurred may occur, and candidate selection information within each category may occur. If there is only one candidate in the category, candidate selection information may be omitted.
  • Various syntax elements related to the category selection and candidate selection within the category may be possible. The following assumes that three categories are supported.
  • values of syntax elements supported for category selection may have a value of 0 to 2 (1 or more). For example, it may be possible to binarize the bits of ⁇ 0>, ⁇ 10>, and ⁇ 11> for the first to third categories. That is, one syntax element for category selection is supported, and index allocation and binarization for each category may be configured.
  • the value of the syntax element supported for category selection may have a value of 0 or 1 (a value of 1 or more is also possible).
  • first syntax element may be assigned ⁇ 0> for the first category and the second category, and ⁇ 1> for the third category.
  • another syntax element for selecting a detailed category for selecting one of the first category and the second category may be supported, and the corresponding syntax Elements may be assigned ⁇ 0> and ⁇ 1> for the first category and the second category.
  • one syntax element may be assigned ⁇ 0> for the first category, and ⁇ 1> for the second category and the third category.
  • first syntax element may be assigned ⁇ 0> for the first category, and ⁇ 1> for the second category and the third category.
  • another syntax element regarding subcategory selection selecting one of the second category and the third category may be supported, and the corresponding syntax Elements may be assigned ⁇ 0> and ⁇ 1> for the second category and the third category.
  • Each category may include at least one prediction mode.
  • the number of prediction modes of the first to third categories may be a, b, c, a may be less than or equal to b and c, and b may be less than or equal to c.
  • a is an integer from 1 to 5
  • b is an integer from 3 to 8
  • c is a number obtained by subtracting the number of a and b from the number of prediction mode candidates.
  • Variable length binarization or fixed length binarization such as Truncated Rice binarization, Truncated Binary binarization, and k-th Exp-Golomb binarization, may be applied to the prediction mode belonging to the category.
  • the configuration and setting of the category will be described on the assumption of a fixed case through an example described below, but adaptive setting (eg, number of categories, configuration of related flags, etc.) may be possible according to various encoding elements.
  • the coding elements include color components (luminance / color difference), block status information (eg, block size, shape, width / length ratio, position, etc.), image type (I / P / B), and sub-block units It may be defined based on whether intra prediction is applied, reference pixel line selection information, and the like.
  • the number of categories may be determined as one of two or three based on the encoding information.
  • a prediction mode is divided into a plurality of categories (three) based on a possibility to match the prediction mode, and a prediction mode is encoded based on category selection information and candidate selection information in the category.
  • criteria for category classification according to a prediction method are mixed for category construction may also be possible.
  • a description consisting of two categories may be derived, so detailed descriptions thereof will be omitted. do.
  • FIG. 6 is a layout view of a target block and a block adjacent thereto according to an embodiment of the present invention.
  • the target block may have high correlation with a block adjacent thereto, and not only prediction may be performed using adjacent reference pixels, but also the prediction mode of the adjacent block may be used for prediction of the prediction mode of the target block. Therefore, the prediction mode of the adjacent block of the target block can be selected as a candidate included in the first or second category.
  • prediction modes of all or part of the left, top, left, right, and bottom blocks of the target block may be considered as candidates included in the (previous) category.
  • (left / top), (left / top / right), (left / top / bottom), (left / top / left / right / bottom) may be considered.
  • At least one prediction mode may be selected from blocks in each direction. For example, one can be selected from L0 to L3 for the left block, and one can be selected from U0 to U3 for the upper block.
  • sub-blocks at a specific location eg, L3 for a left block and U3 for a top block
  • a prediction mode e.g., L3 for a left block and U3 for a top block
  • the prediction mode of the corresponding location block is unavailable (eg, if the corresponding block is not coded, if it is in a non-referable location, or if the encoding mode ⁇ Intra / Inter> is different, etc.), in the block of the corresponding direction, The prediction mode may not be selected.
  • (sub-block) priority for selecting a prediction mode may be supported (eg, L3-> L0-> L1-> L2, etc.), and accordingly, the prediction mode of available sub-blocks of the previous priority may be selected in the corresponding direction. It can be selected as a prediction mode. If the prediction mode of the sub-blocks of all positions is unavailable, the prediction mode may not be selected in the block in the corresponding direction.
  • priorities for including prediction modes obtained in blocks in each direction in a category may be supported. For example, left-> upper-> upper right-> lower left-> upper left, left-> upper-> lower left-> upper right-> upper left, upper-> left-> lower left-> upper right-> upper left, upper-> left-> lower left-> upper right-> upper left It may, but is not limited to this.
  • prediction mode candidate group there may be a prediction mode that generally occurs. For example, vertical and horizontal edges may be characteristics of many discoverable images, and many flat areas such as a background may also be found. Therefore, a predetermined prediction mode that is expected to occur a lot can be selected as a candidate included in the first or second category.
  • Priority for including the prediction mode in a category may be supported. For example, it is possible to set Planar-> DC-> Ver-> Hor, etc., but is not limited thereto.
  • the prediction modes of adjacent blocks are unavailable, it may be possible to replace and fill one or more of the predetermined prediction modes (eg, Planar, DC, etc.).
  • the predetermined prediction modes eg, Planar, DC, etc.
  • the prediction mode of the adjacent block of the target block and the preset prediction mode are referred to as prediction modes considered for the (previous) category configuration.
  • the above configuration may have difficulty in efficiently predicting the prediction mode of the target block. For example, when a difference of 1 or 2 occurs in the directional mode (based on the prediction mode in FIG. 5), a case in which prediction fails with the above configuration may occur.
  • a prediction mode derived based on a prediction mode of a neighboring block and a preset prediction mode may be considered in configuring a category candidate group.
  • a prediction mode having an interval of k may be considered as a derived prediction mode based on the prediction mode (direction mode in this example), and this may be selected as a candidate included in the first or second category.
  • k may be an integer of 1, 2, 3, 4 or more.
  • a prediction mode based on a prediction mode of a neighboring block or a preset prediction mode is Z
  • there may be a priority of the derived prediction mode such as Z-1, Z + 1, Z-2.
  • the priorities are determined in the order of absolute values such as 1 and 2, and (+ based on one absolute value), followed by ⁇ +> symbols, but not limited thereto. That is, it means that the interval information for filling the derived prediction mode may not start from 1 (eg, integers such as 4, 8, 12).
  • k intervals of a prediction mode derived based on a prediction mode of a neighboring block and a preset prediction mode may or may not be the same.
  • the prediction mode based on the prediction mode of the adjacent block or the preset prediction mode is X, Y, X-1, X + 1, Y-1, Y + 1 or X-1, Y-1, X
  • There may be a priority of the derived prediction mode such as + 1 and Y + 1.
  • X is preceded by Y, and after the ⁇ -> sign and the ⁇ +> sign appear alternately, or after one sign (negative in this example) is derived (based on one absolute value), another sign ( In this example, it is assumed that a positive number) is induced, but is not limited thereto.
  • a plurality of modes may be used as a reference mode of a derived mode, or a predetermined mode (ie, one of X, Y) may be used as a reference mode.
  • This may be classified according to a predetermined criterion, and the obtained block position (eg, a mode of a specific block among the left block and the upper block is set as a reference mode), the shape of the target block (eg, a horizontally long rectangular shape)
  • the mode of the upper block in case of a vertically long rectangular shape, set the mode of the left block as the reference mode, or vice versa, etc.
  • the slope information of the prediction mode eg, based on the vertical or horizontal mode
  • the direction left or right, up or down
  • a prediction mode derived from a preset prediction mode, a neighboring block, and a prediction mode derived based on the previous prediction mode may be included in the (previous) category.
  • Each category may include at least one prediction mode from a preset prediction mode, a prediction mode of an adjacent block, and a derived prediction mode, and is referred to as Group_A, Group_B, and Group_C, respectively, for convenience of explanation.
  • the first category may be configured in Group_A
  • the second category may be configured in Group_A
  • Group_B may be configured in Group_C
  • the third category may be configured in the remaining modes (in this case, Group_C). have.
  • the first category may be configured in Group_B
  • the second category may be configured in Group_A
  • Group_B Group_C
  • the third category may be configured in the remaining modes.
  • the first category may be configured in Group_A, Group_B
  • the second category may be configured in Group_A, Group_B, Group_C
  • the third category may be configured in the remaining modes.
  • the above example is an example of mode configuration according to category classification.
  • Group_A and Group_B included in a plurality of categories it can be understood that the remaining modes that are not configured in the previous category are configured in the subsequent categories.
  • mode configuration according to various categories may be possible without being limited to the above example.
  • the priority of the prediction mode for category configuration is supported, and when the mode configuration is completed as many as the number of categories of priority (eg, the first category) according to the category priority (eg, 1-2-3 category order), the remaining It is assumed that the configuration proceeds to the subordinated category (eg, second category, third category, etc.).
  • the subordinated category eg, second category, third category, etc.
  • the prediction mode belonging to Group_A may be Planar (index 0), and as the number of prediction modes increases, Group_A may be configured as a prediction mode having a lower priority.
  • the prediction mode belonging to Group_B may be a prediction mode belonging to Group_B from the next prediction mode (m + 1 index) of the prediction mode (index m) that is finally configured in the first category.
  • Group_B can be configured as a prediction mode of the next priority.
  • the third category may configure Group_C as the prediction mode remaining from the next prediction mode (n + 1 index) of the prediction mode (index n) that is finally configured in the second category.
  • the number of prediction modes of the first to third categories includes (1, 5, 61), (2, 4, 61), (4, 8, 55), etc.
  • the setting may be possible, and may be determined based on the number of prediction mode candidate groups.
  • the preset prediction mode may be a fixedly supported mode regardless of the encoding environment, and the derived prediction mode may be obtained by using a prediction mode that already exists in a candidate group as a reference mode.
  • the prediction mode of an adjacent block may be difficult to obtain depending on the state of an adjacent block (eg, a partition unit boundary, whether or not to be encoded, an encoding mode, etc.).
  • the states of adjacent blocks can be divided into (1) when all adjacent blocks are unavailable, (2) when some of the adjacent blocks are unavailable, and (3) when all of the adjacent blocks are available. The example can be described on the assumption that all adjacent blocks are available.
  • the prediction mode of adjacent blocks may be obtained from two or more blocks, and an example of the priority may be described on the assumption that the prediction mode of each block does not overlap.
  • Priority regarding category configuration may be adaptively set in consideration of the above factors. For example, an index corresponding to a prediction mode of an adjacent block may be removed from the priority, and an index related to a mode derived by using a prediction mode of an adjacent block as a reference mode may be removed. This may be a description that is commonly applied when the prediction mode of an adjacent block is a directional mode as well as a non-directional mode.
  • each prediction mode eg, directional mode
  • state information eg, the size and shape of the block
  • a process of unifying it into a common prediction mode candidate group configuration may precede the encoding process.
  • a predetermined range of prediction mode candidate group configurations for prediction mode encoding may be unified, and prediction mode encoding may be performed based on this.
  • the predetermined range may be configured as a prediction mode corresponding to 0 to 66 in FIG. 5, but is not limited thereto.
  • a process of mapping to the predetermined range may be performed, and mapping may be performed based on the directionality of the prediction mode. For example, in the case of a prediction mode that is outside the predetermined range, a mapping process to a prediction mode having characteristics similar to that of the prediction mode (eg, when the edge direction is the same). That is, the starting point and the prediction direction of the prediction are different, but the edge direction is Match)), and various other methods can be supported.
  • Prediction-related information generated through the above process may be transmitted to an encoder and stored in a bitstream.
  • a unit in which intra prediction is performed is referred to as a target block.
  • the target block may be set in various block units.
  • a target block of intra prediction for configuring a prediction mode candidate group, performing prediction, encoding a prediction mode, etc. may be selected as an encoding block.
  • a coding block is a unit in which a possibility that a coding block is equal to or not equal to a prediction block or a transform block is present (that is, it can be divided into two or more sub-blocks ⁇ a prediction block or a transform block> in the coding block)
  • the target block of prediction may be set as one of a coding block, a prediction block, and a transform block.
  • a coding block may be set as a target block in (prediction mode coding / prediction mode candidate group configuration / reference pixel configuration), etc.
  • a prediction block or transform block may be set as a target block in (reference pixel region setting / prediction), etc. Can be.
  • a coding block may be set as a target block in (prediction mode coding / prediction mode candidate group configuration), etc.
  • a prediction block or a transform block may be set as a target block in (reference pixel region setting / reference pixel configuration / prediction), etc. have.
  • the target block may be set to one of a coding block, a prediction block, and a transform block, and a target block unit having a detailed configuration may be determined according to coding settings.
  • 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 configuration unit, and a prediction block generation unit that implement a prediction mode decoding step, a reference pixel configuration step, and a prediction block generation step.
  • the reference pixel construction unit and the prediction block generation unit of the image decoding apparatus perform the same role as the corresponding configurations of the image encoding apparatus, a detailed description is omitted, and the prediction mode decoding unit is performed using the method used by the prediction mode encoding unit in reverse. You can.
  • FIG. 7 is a flowchart illustrating a method for correcting intra-picture prediction according to an embodiment of the present invention.
  • an intra prediction mode of a target block may be determined (S700), and a prediction block may be generated based on the intra prediction mode (S710).
  • the correction setting of the prediction block may be determined (S720), and correction of the prediction block may be performed (S730).
  • the intra-prediction of the target block may be selected within a candidate group of prediction modes obtained based on the state information of the target block, and one prediction mode may be determined.
  • a prediction mode candidate group consisting of a directional mode and a non-directional mode may be referred to, and in the case of a color difference component, a prediction mode candidate group in which a color mode or a color copy mode is supported for the directional mode and the non-directional mode may be referred to.
  • the classification according to the prediction method may be divided into a directional mode / non-directional mode / color copy mode, and each method may use extrapolation, interpolation or averaging, and copy methods, but is not limited thereto, and other modifications may be possible.
  • the directional mode may be capable of interpolation (bidirectional prediction) as well as extrapolation.
  • a reference region for intra prediction may be differently set according to each prediction method.
  • at least one of blocks in the left, top, left, top, right, and bottom directions of a target block may be set as a reference region.
  • at least one of blocks in the right, bottom, and bottom directions of the target block may be additionally set as a reference area in the case of extrapolation.
  • the adjacent sum region is not encoded, it may be derived and filled in one or more pixels of the encoded region.
  • a corresponding block in a color space different from the target block may be set as a reference area.
  • a prediction block may be generated based on the data of the reference region and the intra prediction mode.
  • the correction of the prediction block may be performed to reduce the occurrence of discontinuous boundary characteristics between adjacent blocks in a prediction block generated according to a predetermined prediction mode.
  • it since it may be counterproductive to perform correction according to image characteristics, it is necessary to perform correction in consideration of various coding elements.
  • the correction setting of the target block includes image type, color component, state information of the target block, encoding mode, intra prediction mode, and intra prediction in sub block units. It may be defined based on whether it is applied or not, reference pixel line selection information, and the like.
  • the setting information related to the correction is a lower unit (eg, former information is a block, a sub-block, etc.) or a higher unit (eg, The latter information can be explicitly generated in sequences, pictures, slices, tiles, etc.).
  • the correction setting may include whether or not correction is performed, the number of reference pixels used for correction, position, and weight. Even when correction is performed, correction may be performed on all or part of the pixels in the target block. For example, when the target block is m x n, correction may be performed on 1 to (mxn) pixels.
  • the intra prediction mode in which correction is supported may be determined according to whether or not it belongs to a predetermined prediction mode group.
  • a predetermined prediction mode group For example, Planar, DC, horizontal, vertical, diagonal mode (eg, top right direction, bottom right direction, left direction mode, etc. mode 2, 34, 66 of FIG. 5), color prediction mode group among the prediction mode groups can do.
  • a prediction mode derived from the prediction mode group eg, a mode having an interval of k based on a directional mode. In this case, k is an absolute value of 1, 2, 3, 4 or more
  • k is an absolute value of 1, 2, 3, 4 or more
  • the target block for which correction is supported may be smaller than or equal to a predetermined first threshold size.
  • the first threshold size may mean the maximum size that the target block can have.
  • a block for which correction is supported may be greater than or equal to a predetermined second threshold size.
  • the second threshold size may mean the minimum size that the target block can have.
  • the first threshold size and the second threshold size may be expressed as width (W), height (H), W x H, W * H, etc., and W and H are integers of 4, 8, 16, 32, or more. You can.
  • the first threshold size may be greater than or equal to the second threshold size.
  • FIG. 8 is a layout view of pixels of a target block and adjacent blocks according to an embodiment of the present invention.
  • pixels (a to p) in a target block, pixels (A to Q) in a block in which adjacent encoding has been completed, and pixels in a block in which adjacent encoding is not completed (aa to ii) are composed.
  • the pixel in the target block is corrected, and the pixel in the adjacent block can be referred to for correction.
  • the reference pixel of the adjacent block may be one of values obtained by not performing or performing the reference pixel pre-processing (eg, filtering the reference pixel). It may be determined on a block-by-block basis or may be determined on a pixel-by-pixel basis.
  • z and Z denote a prediction pixel and a correction pixel
  • a to c denote reference pixels used for correction
  • w0 to w3 denote weights applied to the correction.
  • the reference pixel and weight may be determined according to the number of reference pixels used for correction. At this time, the weight may be assigned a value in consideration of normalization including 0.
  • the position and number of the reference pixels may be determined according to the prediction mode of the target block.
  • a, b, and c are the upper left reference pixels (eg, ⁇ -1, -1>) outside the target block, and the x component of the target pixel And the corresponding reference pixel above the target block (eg, ⁇ x, -1>), and the y component of the target pixel and the reference pixel to the left of the corresponding or corresponding target block (eg, ⁇ -1, y>)
  • the upper left reference pixels eg, ⁇ -1, -1>
  • the x component of the target pixel And the corresponding reference pixel above the target block eg, ⁇ x, -1>
  • the y component of the target pixel and the reference pixel to the left of the corresponding or corresponding target block eg, ⁇ -1, y>
  • weights may be assigned to w2 and w3 to reflect the gradients of the reference pixels on the upper and left sides of the target block. This may be an example of setting a weight based on how much it changes from a reference pixel corresponding to the x and y components of the target pixel (eg, w1 is 0).
  • a weight with a negative sign is assigned to w0 to reflect a gradient of a reference pixel corresponding to a prediction direction
  • a weight with a positive sign is assigned to w3.
  • w2 is 0
  • a detailed description is omitted since the related description can be derived in the vertical mode.
  • the a, b, and c are the upper left reference pixels outside the target block, and reference pixels corresponding to or corresponding to the starting point of the prediction direction of the target block (eg, ⁇ x + y + 1, -1>), which may be set as a corresponding or corresponding reference pixel (eg, ⁇ -1, x + y + 1>) opposite to the starting point of the prediction direction of the target block.
  • the reference pixel is not acquired in an integer unit (ie, when interpolation is required in decimal units), it can be set to one of methods for substituting with one adjacent reference pixel or interpolating through the adjacent reference pixels. have.
  • weight may be assigned to w3 to reflect the degree of change of the reference pixel located at the starting point of the prediction direction and the reference pixel located on the opposite side.
  • This may be an example (eg, w1 and w2 are 0) of weight setting based on how much it changes from the reference pixel placed on the prediction direction line of the target pixel.
  • w1 and w2 are 0
  • FIG. 9 is an exemplary diagram of a correction method based on multiple reference pixel lines according to an embodiment of the present invention.
  • An example to be described later may be a configuration that can be supported separately from a configuration in which a reference pixel line to be used for intra prediction is selected from a plurality of reference pixel lines described above, and will be described based on this, but also applied to a mutually coupled configuration. It may be possible.
  • (a) shows an example for correction in the horizontal or vertical mode. Specifically, it may be an example of a case in which reference pixels of two or more reference pixel lines are used for correction.
  • the prediction mode of the target block is a vertical mode
  • accuracy of correction may be improved by setting a * as a reference pixel in addition to a.
  • a and a * may be applied to the aforementioned correction equation after obtaining a ** by applying a weighted average.
  • the accuracy of correction may be improved by setting b * as a reference pixel in addition to b, and after obtaining b ** by applying a weighted average to b and b * It can be applied to correction equations.
  • (b) shows an example of correction in diagonal mode. Specifically, it may be an example of a case in which reference pixels of two or more reference pixel lines are used for correction.
  • the accuracy of the correction can be improved by setting a * as a reference pixel in addition to a at the starting point of the prediction, or a ** is applied by weighting a and a * . After acquisition, it may be applied to the above-described correction formula.
  • the accuracy of the correction can be improved by setting b * as a reference pixel in addition to b at a position opposite to the starting point of the prediction, or after obtaining b ** by applying a weighted average of b and b * to the correction equation described above. You can also apply.
  • a reference pixel obtained based on one or more reference pixels of the starting point of the prediction or the opposite side of the starting point may be used for correction.
  • the reference pixel may be selected as a pixel placed on the direction line of the prediction mode.
  • the reference pixel located in the multiple reference pixel line is used for correction, see whether an image type, a color component, state information of a target block, an intra prediction mode, and an intra prediction mode in sub-block units are applied. Whether to support may be determined based on pixel line selection information and the like.
  • FIG. 10 is a flowchart illustrating a method for correcting intra-prediction according to an embodiment of the present invention.
  • an arbitrary pixel for correction of a target block is acquired (S900), a correction setting is determined based on the target block and an intra prediction mode (S910), and correction of the prediction block can be performed. (S920).
  • a block adjacent to the target block may be configured to be skewed in a specific direction (eg, an upper left direction), which is a situation that occurs due to an encoding order according to a raster scan or Z-scan method.
  • a specific direction eg, an upper left direction
  • the arbitrary number of pixels may be an integer of 1, 2 or more.
  • any pixel used for the correction of the target block may be determined among the pixels aa to ii of FIG. 8.
  • a pixel belonging to an area in which encoding has not been completed among adjacent blocks of the target block may be set as an arbitrary pixel.
  • the target block may be included in an arbitrary pixel selection target.
  • FIG. 11 is an exemplary diagram for an arbitrary pixel used for predictive pixel correction according to an embodiment of the present invention.
  • the lower right pixel in the target block in the case of (b) the lower right pixel outside the target block, in the case of (c) the lower and left pixels outside the target block, in the case of (d)
  • the lower pixel outside the target block in the case of (e), shows an example in which the right pixel outside the target block is determined as an arbitrary pixel (X, X1, X2).
  • Whether to perform correction using an arbitrary pixel may be explicitly related information may be generated or may be determined implicitly.
  • settings for an arbitrary pixel include image type, color component, state information of a target block, encoding mode, intra prediction mode, and a screen in a sub-block unit. It may be defined based on whether my prediction is applied, reference pixel line selection information, and the like.
  • setting information related to an arbitrary pixel eg, a flag on whether correction is performed using an arbitrary pixel in a block unit, etc. may be explicitly generated.
  • the setting for the arbitrary pixel may be configured including whether to use an arbitrary pixel (that is, whether to use an arbitrary pixel for correction), the number and location of arbitrary pixels.
  • the intra prediction mode for performing correction using an arbitrary pixel may be determined according to whether or not it belongs to a predetermined prediction mode group. For example, Planar, DC, horizontal, vertical, diagonal mode (eg, top right, bottom right, left bottom, etc. mode 2, 34, 66 of FIG. 5), color copy mode to configure the prediction group You can.
  • a prediction mode derived from the prediction mode group eg, a mode having an interval of k based on a directional mode. In this case, k is an absolute value of 1, 2, 3, 4 or more
  • k is an absolute value of 1, 2, 3, 4 or more
  • the target block for which correction is performed using arbitrary pixels may be smaller than or equal to a predetermined first threshold size, and the first threshold size may mean the maximum size that the target block can have. Alternatively, it may be greater than or equal to a predetermined second threshold size, and the second threshold size may mean a minimum size that the target block can have.
  • the threshold size may be expressed as width (W), height (H), W x H, W * H, etc., W and H may be integers of 4, 8, 16, 32 or more, and the first The threshold size may be greater than or equal to the second threshold size.
  • the above description may be understood as a content belonging to or combined with a sub-configuration to the above-mentioned correction setting through the previous embodiment, so a duplicate description is omitted.
  • the pixel value of the corresponding position can be obtained through various methods.
  • data regarding an arbitrary pixel position can be explicitly encoded.
  • the pixel value at the corresponding position may be encoded as it is (eg, based on a bit depth) or a value obtained by a predetermined division value (eg, a quantized value when used for quantization and correction) may be encoded.
  • two or more data candidate values for an arbitrary pixel position may be obtained in a region in which adjacent encoding of a target block is completed, and index information may be configured and encoded.
  • a pixel value at an arbitrary pixel position is 67
  • a first candidate value obtained in an adjacent region (eg, an upper region) of the target block is 70
  • a first candidate value obtained in an adjacent region (eg, a left region) of the target block When two candidates are supported with a total of two candidate values of 85, candidate value selection information (eg, selected as the first candidate value. 1-bit flag) may be encoded. At this time, the method mentioned in the example described later with respect to obtaining the candidate value may be used.
  • the candidate value may be supported by an integer of 2, 3, 4 or more.
  • a reference pixel may be obtained from a reference pixel at a predetermined position or a reference pixel corresponding to or corresponding to an arbitrary pixel position.
  • a predetermined position it can be obtained from a reference pixel (A, E, M in FIG. 8) at the upper left, upper, and left positions outside the target block, and the position based on the width or height of the target block at the position ( Reference pixels (I and Q in FIG. 8) on the upper right and lower left may be obtained.
  • a reference pixel corresponding to an arbitrary pixel position
  • a reference pixel eg, ⁇ x, -1>, ⁇ -1, y>, ⁇ x + y + 1 corresponding to an x or y component of an arbitrary pixel , -1>, ⁇ -1, x + y + 1>, etc.
  • the data value of one reference pixel among the reference pixels of the position may be obtained as it is as the data value of any pixel position, or may be randomly derived from values derived from two or more reference pixels (eg, weighted average according to distance, etc.) It can be obtained as the data value of the pixel position.
  • a reference pixel at a preset position among a plurality of reference pixels used at an arbitrary pixel position may be obtained as a data value at an arbitrary pixel position.
  • a value obtained by a predetermined process eg, a maximum value, a minimum value, a median value, etc.
  • a value obtained by a predetermined process eg, a weighted average, etc.
  • a predetermined process eg, a weighted average, etc.
  • A, E, and M of FIG. 8 are used as reference pixels, and are referred to as x, y, and z in examples described later.
  • Candidates 0 to 2 in the table above refer to a case where a reference pixel at a predetermined position is obtained as a data value at an arbitrary pixel position.
  • Candidates 3 to 6 refer to a case for acquiring data at an arbitrary pixel position by reflecting the degree of change of the target block. Specifically, it may correspond to a case in which the degree of change of the target block is obtained based on a reference pixel at a preset position.
  • the above example may be an example of a formula derived from a plurality of pixels, assuming that the target block has a square shape, and may be changed according to a horizontal / vertical length ratio of a block.
  • the data value of an arbitrary pixel position is not limited to the above example, and can be obtained through various methods.
  • FIG. 12 is an exemplary view in which correction is performed based on an arbitrary pixel according to an embodiment of the present invention.
  • (a) shows a process of interpolating between pixels using a reference pixel corresponding to an arbitrary block and an upper block, and thus, the left, right, top, left, and right directions of the target block obtained through this A process of performing correction using a reference pixel of.
  • the above process can be applied when correction is performed by reflecting gradients of reference pixels in the left and right directions. This may be different from the case in which the correction is performed based on the gradient of the reference pixel in the left direction.
  • (c) shows a process of interpolating between pixels using a reference pixel corresponding to an arbitrary pixel and a left block, and thus, an up, down, left, left, top, and left directions of the target block obtained through this A process of performing correction using a reference pixel of.
  • the above process can be applied when correction is performed by reflecting the gradients of the reference pixels in the up and down directions. This may be different from the case in which the correction is to be performed based on the gradient of the reference pixel in the upper direction.
  • (e) shows a process of interpolating between pixels using reference pixels corresponding to left and upper blocks, and the upper, lower, left, and right of the target block obtained through the interpolation
  • a process of performing correction using reference pixels in the upper left, upper right, lower left, and lower right directions is illustrated.
  • the reference pixel may have a configuration different from the previous equation that the reference pixel obtained based on an arbitrary pixel or an arbitrary pixel is included.
  • z and Z denote a prediction pixel and a correction pixel
  • a to e denote reference pixels used for correction
  • w0 to w5 denote weights applied to the correction.
  • the reference pixel and weight may be determined according to the number of reference pixels used for correction. At this time, the weight may be assigned a value in consideration of normalization including 0.
  • the location and number of the reference pixels may be determined according to the prediction mode of the target block, and various cases as illustrated in FIG. 12 may be possible.
  • the description of the other correction settings can be derived from the section on the previous equation, so a detailed description is omitted.
  • correction is performed in the intra prediction is described through various embodiments.
  • the correction is limited to a case performed after acquiring a prediction block, but may be performed by being reflected in an intra-screen prediction process (ie, a prediction block generation process).
  • the flag information generated in the correction process may be encoded / decoded in a configuration separate from the intra prediction mode, but may be combined with or dependent on the intra prediction mode. That is, it should be understood that it is not limited to additional or subsequent parts after the intra prediction process.
  • the methods according to the present invention can be implemented in the form of program instructions that can be executed through various computer means and can be recorded in computer readable media.
  • Computer-readable media may include program instructions, data files, data structures, or the like alone or in combination.
  • the program instructions recorded on the computer-readable medium may be specially designed and configured for the present invention or may be known and usable by 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 machine language codes such as those produced by a compiler, as well as high-level language codes that can be executed by a computer using an interpreter or the like.
  • the above-described hardware device may be configured to operate with at least one software module to perform the operation of the present invention, and vice versa.
  • the above-described method or apparatus may be implemented by combining all or part of its configuration or function, or may be implemented separately.
  • the present invention can be used to encode / decode video signals.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 대상 블록의 화면내 예측 모드를 결정하고, 화면내 예측 모드에 기반하여 대상 블록의 예측 블록을 생성하며, 생성된 예측 블록을 보정할 수 있다.

Description

영상 부호화/복호화 방법 및 장치
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것이다.
인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터에 대한 이용이 급증하고 있다. 따라서, 각종 시스템에서 영상 예측을 통해 다양한 서비스나 작업을 수행하기 위하여 영상 처리 시스템의 성능 및 효율 개선에 대한 필요성이 상당히 증가하고 있으나, 이러한 분위기에 호응할 수 있는 연구 개발 결과가 미흡한 실정이다.
이와 같이, 종래 기술의 영상 부호화 복호화 방법 및 장치에서는 영상 처리 특히 영상 부호화 또는 영상 복호화에 대한 성능 개선이 요구되고 있는 실정이다.
본 발명은, 컬러 성분에 따른 화면내 예측 모드 유도 방법 및 장치를 제공하는데 목적이 있다.
본 발명은 화면내 예측을 위한 참조 화소 구성 방법 및 장치를 제공하는데 목적이 있다.
본 발명은 임의의 화소를 사용하여 화면내 예측에 보정을 수행하는 영상 부호화/복호화 방법 및 장치를 제공하는 데 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 대상 블록의 화면내 예측 모드를 결정하고, 상기 화면내 예측 모드에 기반하여, 상기 대상 블록의 예측 블록을 생성하며, 상기 예측 블록을 보정할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 화면내 예측 모드는, 상기 대상 블록의 상태 정보에 따른 예측 모드 후보군 내의 모드로 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 컬러 성분이 휘도 성분인 경우, 방향성 모드와 비방향성 모드로 구성된 예측 모드 후보군을 참조하고, 상기 대상 블록의 컬러 성분이 색차 성분인 경우, 방향성 모드, 비방향성 모드, 컬러 모드 또는 컬러 복사 모드 중 적어도 하나가 지원되는 예측 모드 후보군을 참조할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 예측 모드 후보군은, 각 카테고리에 포함 가능하는 예측 모드의 최대 개수 또는 우선순위를 고려하여, 복수의 카테고리로 분류될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 예측 모드 후보군은, 비방향성 모드와 방향성 모드를 포함한 제1 카테고리 및 컬러 복사 모드를 포함한 제2 카테고리로 분류될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 복수의 카테고리 중 어느 하나를 특정하는 제1 정보를 획득하고, 상기 제1 정보에 따른 카테고리 내에서 상기 대상 블록의 화면내 예측 모드를 특정하는 제2 정보를 획득할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 화면내 예측 모드는, 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 특정된 카테고리로부터 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 제2 정보는, 상기 제1 정보에 따른 카테고리에 하나의 예측 모드만이 포함된 경우에는 획득되지 않을 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 화면내 예측에 사용되는 참조 화소를 구성하는 단계를 더 포함하되, 상기 참조 화소는, 복호화 장치에서 지원되는 복수의 참조 화소 라인 전부 또는 일부에 속할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 구성된 참조 화소에 가중 필터 또는 보간 필터 중 적어도 하나를 수행하는 단계를 더 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 예측 블록을 보정하는 단계는, 소정의 부호화 정보에 기초하여 선택적으로 수행되고, 상기 부호화 정보는, 영상 타입, 컬러 성분, 상태 정보, 부호화 모드, 화면내 예측 모드, 서브 블록 단위의 화면내 예측이 적용되는지 여부 또는 참조 화소 라인 중 적어도 하나를 포함할 수 있다.
본 발명에 따르면, 화면내 예측 모드를 효율적으로 유도할 수 있다.
본 발명에 따르면, 참조 화소 라인의 선택적 이용과 소정의 필터링을 통해 화면내 예측의 효율을 향상시킬 수 있다.
본 발명에 따르면, 예측 블록을 보정을 통해 화면내 예측의 정확도를 향상시키고, 부호화 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 블록 구성도이다.
도 4는 본 발명의 블록 분할부에서 획득할 수 있는 다양한 분할 형태를 나타낸 예시도이다.
도 5는 본 발명의 일 실시예에 따른 화면내 예측에서의 예측 모드를 나타낸 예시도이다.
도 6은 본 발명의 일 실시예에 따른 대상 블록과 그에 인접한 블록에 관한 배치도이다.
도 7은 본 발명의 일 실시예에 따른 화면내 예측의 보정 방법을 나타낸 순서도이다.
도 8은 본 발명의 일 실시예에 따른 대상 블록 및 인접한 블록의 화소에 관한 배치도이다.
도 9는 본 발명의 일 실시예에 따른 다중 참조 화소 라인에 기반한 보정 방법에 관한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 화면내 예측의 보정 방법을 나타낸 순서도이다.
도 11은 본 발명의 일 실시예에 따른 예측 화소 보정에 사용되는 임의의 화소에 대한 예시도이다.
도 12는 본 발명의 일 실시예에 따른 임의의 화소에 기반하여 보정이 수행되는 예시도이다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 대상 블록의 화면내 예측 모드를 결정하고, 상기 화면내 예측 모드에 기반하여, 상기 대상 블록의 예측 블록을 생성하며, 상기 예측 블록을 보정할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 화면내 예측 모드는, 상기 대상 블록의 상태 정보에 따른 예측 모드 후보군 내의 모드로 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 컬러 성분이 휘도 성분인 경우, 방향성 모드와 비방향성 모드로 구성된 예측 모드 후보군을 참조하고, 상기 대상 블록의 컬러 성분이 색차 성분인 경우, 방향성 모드, 비방향성 모드, 컬러 모드 또는 컬러 복사 모드 중 적어도 하나가 지원되는 예측 모드 후보군을 참조할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 예측 모드 후보군은, 각 카테고리에 포함 가능하는 예측 모드의 최대 개수 또는 우선순위를 고려하여, 복수의 카테고리로 분류될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 예측 모드 후보군은, 비방향성 모드와 방향성 모드를 포함한 제1 카테고리 및 컬러 복사 모드를 포함한 제2 카테고리로 분류될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 복수의 카테고리 중 어느 하나를 특정하는 제1 정보를 획득하고, 상기 제1 정보에 따른 카테고리 내에서 상기 대상 블록의 화면내 예측 모드를 특정하는 제2 정보를 획득할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 대상 블록의 화면내 예측 모드는, 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 특정된 카테고리로부터 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 제2 정보는, 상기 제1 정보에 따른 카테고리에 하나의 예측 모드만이 포함된 경우에는 획득되지 않을 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 화면내 예측에 사용되는 참조 화소를 구성하는 단계를 더 포함하되, 상기 참조 화소는, 복호화 장치에서 지원되는 복수의 참조 화소 라인 전부 또는 일부에 속할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 구성된 참조 화소에 가중 필터 또는 보간 필터 중 적어도 하나를 수행하는 단계를 더 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 예측 블록을 보정하는 단계는, 소정의 부호화 정보에 기초하여 선택적으로 수행되고, 상기 부호화 정보는, 영상 타입, 컬러 성분, 상태 정보, 부호화 모드, 화면내 예측 모드, 서브 블록 단위의 화면내 예측이 적용되는지 여부 또는 참조 화소 라인 중 적어도 하나를 포함할 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제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)인 처리가 가능할 수 있다. 여기서 명시적인 처리는 부호화/복호화 정보를 시퀀스, 슬라이스, 타일 그룹, 타일, 브릭(Brick), 블록, 서브 블록 등에서 생성하여 이를 비트스트림에 수록할 수 있고, 복호화기에서 부호화기와 동일 수준의 단위에서 관련 정보를 파싱(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)는 화면내 예측 모드 또는 화면간 예측 모드와 같은 예측 모드에 대한 정보와 같은 예측 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 부호화부로 하여금 예측 모드에 대한 정보를 부호화하도록 할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수 있다.
화면간 예측부에서 참조 픽쳐에 기반하여 시간적 예측과 공간적 예측으로 구분할 수 있다. 시간적 예측의 경우 현재 픽쳐와 시간적으로 다른 픽쳐에서 움직임을 찾는 예측 방법일 수 있고, 공간적 예측의 경우 현재 픽쳐와 시간적으로 동일한 현재 픽쳐(부호화가 완료된 영역. 대상 블록에 인접한 기 설정된 영역)에서 움직임을 찾는 예측 방법일 수 있다. 이는 참조 픽쳐 리스트를 통해 통합 관리하거나 또는 부호화 모드를 구분하여 관리할 수 있다.
또한, 화면간 예측부에서 움직임 예측 방법에 따라 이동 움직임 모델과 이동 외 움직임 모델로 구분할 수 있다. 이동 움직임 모델의 경우 평행 이동만을 고려하여 예측을 수행하고, 이동 외 움직임 모델의 경우 평행 이동뿐만 아니라 회전, 원근, 줌 인/아웃(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를 참조하면, 95개의 예측 모드는 화면내 예측을 위해 지원될 수 있으며, 이 중 93개는 방향성 모드이고 2개는 비방향성 모드(DC, Planar)이다. 이때, 방향성 모드는 기울기(예를 들어, dy/dx) 또는 각도 정보(Degree)로 구분할 수 있다.
비방향성 모드의 경우 블록의 인접한 참조 화소의 평균, 내삽 등의 방법을 통해 예측을 수행하는 방법일 수 있고, 방향성 모드의 경우 블록의 인접한 참조 화소의 외삽, 내삽 등의 방법을 통해 예측을 수행하는 방법일 수 있다.
방향성 모드의 경우 수직(상 -> 하/하 -> 상), 수평(좌 -> 우/우 -> 좌), 대각선 A(좌상 -> 우하/우하 -> 좌상), 대각선 B(우상 -> 좌하/좌하 -> 우상) 등의 방향성을 가질 수 있다.
일반적으로 래스터 스캔 등으로 부호화를 수행할 경우 좌, 상, 좌상, 우상, 좌하 방향에 인접한 블록이 존재할 수 있으며, 이를 예측의 시작점 또는 참조 화소로 삼은 비방향성 모드 또는 수직(상 -> 하), 수평(좌 -> 우), 대각선 A(좌상 -> 우하), 대각선 B-1(우상 -> 좌하), 대각선 B-2(좌하 -> 우상) 방향의 예측 모드가 지원될 수 있다. 래스터 스캔 외의 다른 스캔이 지원되는 경우에는 방향성 모드는 달리 정의될 수 있다.
예를 들어, 좌 블록은 이용 불가하고 우 블록은 이용 불가한 상태에서의 수평 모드는 (우 -> 좌) 방향의 외삽을 통해 예측을 수행할 수 있다. 또는, 좌 블록과 우 블록이 모두 이용 가능한 상태에서는 소정의 방향(좌 -> 우 또는 우 -> 좌)의 외삽을 통해 예측을 수행할 수 있거나 또는 양 블록의 내삽을 통해 예측을 수행할 수 있다. 본 발명에서는 래스터 스캔 또는 z 스캔 순서에 따라 부호화가 진행되며, 좌, 상, 좌상, 우상, 좌하 방향에 참조 가능한 화소가 위치하는 경우를 가정하여 설명한다.
또한, 컬러 공간 간의 상관성을 이용하여 부호화가 완료된 다른 컬러 공간의 복원 블록을 대상 블록의 예측에 사용할 수 있고, 이를 지원하는 예측 모드를 포함할 수 있다. 예를 들어, 색차 성분의 경우, 대상 블록과 대응되는 휘도 성분의 복원된 블록을 이용하여 대상 블록의 예측 블록을 생성할 수 있다. 즉, 컬러 공간 간의 상관성을 고려하여 복원된 블록을 기반으로 예측 블록을 생성할 수 있으며, 색차 성분을 위한 화면내 예측 모드로 포함될 수 있다.
색차 성분의 경우 휘도 성분의 예측 모드 후보군과 동일한 후보군을 갖거나 휘도 성분의 예측 모드 후보군 중 일부 모드와 색차 성분에 관한 추가적인 예측 모드(컬러 복사 모드, 컬러 모드)가 예측 모드 후보군에 포함될 수 있다. 여기서, 컬러 복사 모드의 경우 다른 컬러 공간 내 위치한 영역으로부터 예측 블록 생성을 위한 데이터를 획득하는 방법과 관련된 예측 모드일 수 있고, 컬러 모드의 경우 다른 컬러 공간 내 위치한 영역으로부터 예측 모드를 획득하는 방법과 관련된 예측 모드일 수 있다. 컬러 복사 모드와 컬러 모드의 경우 각각 m, n개(m, n은 0, 1, 2, 3 또는 그 이상의 정수)의 모드가 지원될 수 있다.
컬러 복사 모드가 1개 지원되는 경우 예측 블록 생성을 위한 소정의 데이터 획득 방법을 미리 정의할 수 있고, 2개 이상 지원되는 경우 예측 블록 생성을 위한 데이터 획득 방법을 구분(예로, 상관성 획득을 위해 참조하는 위치 등. <1>좌측, <2>상단, <3>좌측 + 상단 영역 등)하여 지원할 수 있다.
컬러 모드의 경우 1개 지원되는 경우 예측 모드 획득을 위한 소정의 위치가 미리 정의될 수 있고, 2개 이상 지원되는 경우 예측 모드 획득을 위한 복수의 위치(예로, 대응되는 블록의 <1>중앙, <2>좌상단, <3>우상단, <4>좌하단, <5>우하단 등)를 지원할 수 있다.
상기 예에서 설명되는 예측 모드의 전부 또는 일부가 휘도 성분 또는 색차 성분의 예측 모드 후보군에 포함될 수 있고, 그 외의 추가적인 모드가 예측 모드 후보군에 포함될 수 있다.
상기 예측 모드는 지원되는 화면내 예측 모드의 모든 후보를 의미할 수 있고, 이 중에 전부 또는 일부 구성으로 예측 모드 후보군을 구성할 수 있다. 이때, 블록의 크기, 형태(가로/세로 길이 비) 등에 따라 상기 예측 모드 후보군을 구성할 수 있다.
예를 들어, 블록의 크기에 따라 예측 모드 후보군의 개수가 정해질 수 있다. 이때, 블록의 크기는 하나 이상의 소정의 문턱크기(A x B, C x D 등)를 기준으로 구분되는 둘 이상의 범위 중에 하나로 분류될 수 있으며, 상기 분류된 범위에 따라 11, 35, 67 등과 복수의 후보군 개수 중 하나로 정해질 수 있거나 컬러 복사 모드, 컬러 모드 등의 지원 여부 및 개수가 정해질 수 있다. 이때, 상기 문턱크기는 너비(W), 높이(H), W x H 등으로 표현될 수 있으며, W와 H는 4, 8, 16, 32, 64 등과 같은 2 이상의 정수일 수 있다.
또는, 블록의 형태(또는 블록의 가로/세로 길이 비)에 따라 예측 모드 후보군의 구성이 정해질 수 있다. 이때, 블록의 가로/세로 길이 비는 하나 이상의 소정의 문턱값을 기준으로 구분되는 둘 이상의 범위 중에 하나로 분류될 수 있으며, 상기 분류된 범위에 따라 후보군 구성이 정해질 수 있다. 이때, 상기 문턱값은 W/H(또는 H/W) 등으로 표현될 수 있으며, 1, 2, 4, 8, 16 등과 같은 1 이상의 정수값을 갖거나 또는 1, 1/2, 1/4, 1/8, 1/16 등과 같은 0과 1 사이의 소수값을 가질 수 있다.
본 발명에서의 화면내 예측은 방향성 및 비방향성 모드를 위해 도 5와 같은 95개의 예측 모드가 지원되고, 컬러 모드와 컬러 복사 모드가 지원될 수 있는 경우를 가정한다. 또한, 휘도 성분의 예측 모드 후보군은 방향성 모드와 비방향성 모드로 67개, 색차 성분의 예측 모드 후보군은 방향성 및 비방향성 모드 4개, 컬러 모드 1개, 컬러 복사 모드 3개로 총 8개가 지원되는 경우를 가정하지만, 이에 한정되지 않는다. 상기 가정 외의 예측 모드 후보군에 포함되는 모드를 선정하기 위한 소정의 구성 기준이 존재할 수 있다.
다음은 블록의 가로/세로 길이 비에 따른 예측 모드 후보군의 구성의 일 예를 나타낸다.
ratio pred mode (inc) pred mode (exc)
16 67 ~ 80 2 ~ 15
8 67 ~ 78 2 ~ 13
4 67 ~ 76 2 ~ 11
2 67 ~ 72 2 ~ 7
1 - -
1/2 -6 ~ -1 61 ~ 66
1/4 -10 ~ -1 57 ~ 66
1/8 -12 ~ -1 55 ~ 66
1/16 -14 ~ -1 53 ~ 66
상기 표의 경우 정사각 블록 형태일 때 0과 1번의 예측 모드, 그리고 2번 내지 66번 모드의 예측 모드가 예측 모드 후보군에 포함되는 경우를 기준으로 설정한다. 직사각 블록 형태일 때 정사각 블록의 예측 모드 후보군(비방향성 모드 제외)에서 추가되거나 제외되는 예측 모드로 상기 표와 같은 후보 구성이 가능할 수 있는데, 이는 블록의 길이가 짧은 쪽보다 긴 쪽에서 예측 모드를 더 넓게 구성하는 것이 예측의 정확도 측면에서 유리하다는 가정 하에 설정되는 예일 수 있으나, 이에 반대되는 구성 또한 가능할 수 있다.
참조 화소 구성부에서는 화면내 예측에 사용되는 참조 화소를 구성할 수 있다. 이때, 참조 화소는 임시 메모리(예를 들어, 배열<Array>. 1차, 2차 배열 등)를 통해 관리될 수 있으며, 화면내 예측 과정마다 생성 및 제거될 수 있고 임시 메모리의 크기는 참조 화소의 구성에 따라 결정될 수 있다.
대상 블록을 중심으로 좌, 상, 좌상, 우상, 좌하 블록이 화면내 예측에 사용되는 경우를 가정하여 설명하지만, 이에 한정되지 않고 다른 구성의 블록 후보군이 화면내 예측에 사용될 수도 있다.
예를 들어, 상기 참조 화소를 위한 이웃 블록의 후보군은 래스터 또는 Z 스캔을 따르는 경우의 일 예일 수 있으며, 지원되는 스캔 순서에 따라 상기 후보군 중 일부를 제거할 수 있거나 또는 다른 블록 후보군(예를 들어, 우, 하, 우하 블록 등이 추가 구성)을 포함하여 구성될 수 있다.
한편, 대상 블록과 인접한 화소는 적어도 하나의 참조 화소 계층으로 분류할 수 있는데, 대상 블록과 가장 인접한 화소는 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>와 같이 순차적이지 않거나 최인접한 참조 화소 라인을 제외하는 구성으로 상기 후보군이 구성되는 것 또한 가능할 수 있다.
상기 후보군 내의 모든 참조 화소 라인을 사용하여 예측을 수행하거나 또는 일부 참조 화소 라인(하나 이상)을 사용하여 예측을 수행할 수 있다.
예를 들어, 부호화 설정에 따라 복수의 참조 화소 라인 중 하나가 선택되어 해당 참조 화소 라인을 사용하여 화면내 예측을 수행할 수 있다. 또는, 복수의 참조 화소 라인 중 둘 이상이 선택되어 해당 참조 화소 라인을 사용(예를 들어, 각 참조 화소 라인의 데이터에 가중치 평균 등을 적용)하여 화면내 예측을 수행할 수 있다.
여기서 참조 화소 라인 선택은 묵시적 또는 명시적으로 정해질 수 있다. 예를 들어, 묵시적인 경우에는 영상 타입, 컬러 성분, 블록의 크기/형태/위치 등의 요소 중 하나 또는 둘 이상의 조합에 따라 정의되는 부호화 설정에 따라 정해지는 것을 의미한다. 또한, 명시적인 경우는 블록 등의 단위에서 참조 화소 라인 선택 정보가 발생할 수 있음을 의미한다.
본 발명에서는 최인접한 참조 화소 라인을 사용하여 화면내 예측을 수행하는 경우를 중심으로 설명한다. 단, 예측에 참조되는 참조 화소 라인은 본 발명의 주요 부호화 요소 중에 하나로 고려될 수 있다. 즉, 선택되는 참조 화소 라인에 관계없이 화면내 예측 설정이 정해질 수 있지만, 그에 따른 화면내 예측 설정이 정해질 수도 있다.
본 발명의 화면내 예측의 참조 화소 구성부는 참조 화소 생성부, 참조 화소 보간부, 참조 화소 필터부 등을 포함할 수 있으며, 상기 구성의 전부 또는 일부를 포함하여 구성할 수 있다.
참조 화소 구성부에서 참조 화소 사용 가능성(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)에 따라 사용 여부를 판단하는 조건으로 가정할 것이나, 이 외의 다양한 부호화 요소에 따라 상기 조건이 정해질 수도 있다.
여기서, Mode_Intra, Mode_Inter_D, Mode_Inter_C는 각각 화면내 예측, 다른 픽쳐에서 참조하는 화면간 예측(블록 매칭 등), 현재 픽쳐에서 참조하는 화면간 예측을 의미할 수 있으며, Mode_Intra일 경우에는 참조가 가능하고 Mode_Inter인 경우에는 참조가 불가능한 설정이 일반적일 수 있으나 이에 한정되지 않는다.
참조 화소는 하나 이상의 블록으로 구성되어 있기 때문에 상기 참조 화소 가능성을 확인한 후 분류하면 <모두 사용 가능>, <일부 사용 가능>, <모두 사용 불가>와 같이 세 가지 경우로 분류할 수 있다. 모두 사용 가능한 경우를 제외한 나머지 경우에는 사용 불가한 후보 블록 위치의 참조 화소를 채우거나 생성할 수 있다.
참조 화소 후보 블록이 사용 가능한 경우에는 해당 위치의 화소를 대상 블록의 참조 화소 메모리에 포함할 수 있다. 이때, 상기 화소 데이터는 그대로 복사되거나 참조 화소 필터링, 참조 화소 보간 등의 과정을 통해 참조 화소 메모리에 포함할 수 있다. 또한, 참조 화소 후보 블록이 사용 불가한 경우에는 참조 화소 생성 과정을 통해 획득된 화소를 대상 블록의 참조 화소 메모리에 포함할 수 있다.
다음은 다양한 방법을 사용하여 사용 불가한 블록 위치의 참조 화소를 생성하는 예를 나타낸다.
예를 들어, 임의의 화소값을 사용하여 참조 화소를 생성할 수 있다. 여기서 임의의 화소값이란 화소값 범위(예를 들어, 비트 심도에 기초한 화소값 범위 또는 해당 영상 내 화소 분포에 따른 화소값 범위)에 속하는 하나의 화소값(예를 들어, 화소값 범위의 최소값, 최대값, 중앙값 등)일 수 있다. 상세하게는, 참조 화소 후보 블록이 모두 사용 불가한 경우에 적용되는 예일 수 있다.
또는, 영상의 부호화가 완료된 영역으로부터 참조 화소를 생성할 수 있다. 상세하게는, 사용 불가한 블록에 인접한 적어도 하나의 사용 가능한 블록으로부터 참조 화소를 생성할 수 있다. 이때, 외삽, 내삽, 복사 등의 방법 중 적어도 하나를 사용할 수 있다.
상기 예의 경우 참조 화소는 대상 블록을 중심으로 인접한 영역을 대상으로 할 수 있으며, 일부 예측 모드(예로, 컬러 복사 모드 등)에서 참조되는 다른 컬러 공간에서 대상 블록과 대응되는 영역(예측 데이터를 획득하는 영역 또는 그 인접한 영역) 또한 포함하여 고려될 수 있다.
상기 참조 화소 구성을 완료한 후에 참조 화소 필터링 또는 참조 화소 보간을 수행할 수 있다. 예를 들어, 참조 화소 필터링만 수행할 수 있고, 참조 화소 보간만 수행할 수 있고, 참조 화소 필터링과 참조 화소 보간을 수행할 수 있다. 참조 화소 필터링이 참조 화소 보간에 선행하거나 후행할 수 있으며, 동시에 결합되어 수행될 수도 있다.
참조 화소 필터링은 참조 화소에 남아있는 열화를 줄여주기 위한 목적으로 수행되는 과정일 수 있다. 참조 화소 필터링에 [1,2,1] / 4, [2, 3, 6, 3, 2] / 16 등과 같이 다양한 필터 탭의 길이 및 계수 설정으로 구분 가능한 복수의 필터 중 하나일 수 있다. 또한, 필터의 종류를 달리하여 복수의 필터링이 수행될 수도 있다.
참조 화소 필터링은 명시적으로 수행 여부가 결정될 수 있거나 또는 부호화 설정에 따라 묵시적으로 수행 여부가 정해질 수 있다. 여기서, 부호화 설정은 대상 블록의 상태 정보(블록의 크기, 형태, 위치 등), 영상 타입(I/P/B), 컬러 성분(Y/Cb/Cr), 참조 화소 라인 선택 정보, 서브 블록 단위의 화면내 예측이 적용되는지 여부, 화면내 예측 모드 등에 기반하여 정의될 수 있다.
참조 화소 보간은 정수 단위의 화소만을 참조하는 예측 모드에는 참조 화소 보간이 수행되지 않고, 소수 단위의 화소가 참조되는 예측 모드에는 참조 화소 보간이 수행될 수 있다.
예측 모드(예를 들어, 예측 모드의 방향성. dy/dx 등)와 참조 화소 및 예측 화소의 위치에 따라 보간이 수행되는 화소 위치(즉, 어느 소수 단위가 보간되는지)가 정해질 수 있다. 이때, 소수 단위의 정밀도에 상관없이 하나의 필터가 적용될 수 있거나 또는 복수의 필터(예를 들어, 필터 계수나 필터 탭의 길이를 결정하기 위해 사용되는 수학식이 구분되는 필터를 가정) 중 하나가 소수 단위에 따라 선택되어 적용될 수 있다.
전자의 경우 소수 단위 화소의 보간을 위해 정수 단위의 화소를 입력으로 사용하는 예일 수 있고, 후자의 경우 단계별로 입력 화소를 달리하는 예(예를 들어, 1/2 단위의 경우 정수 화소 사용. 1/4 단위의 경우 정수와 1/2 단위 화소 사용 등)일 수 있으나, 이에 한정되지 않으며 본 발명에서는 전자인 경우를 중심으로 설명한다.
참조 화소 보간을 위해 고정적인 필터링 또는 적응적인 필터링을 수행할 수 있으며, 이는 부호화 설정에 따라 정해질 수 있다. 여기서, 부호화 설정은 대상 블록의 상태 정보, 영상 타입, 컬러 성분, 참조 화소 라인 선택 정보, 서브 블록 단위의 화면내 예측이 적용되는지 여부, 화면내 예측 모드 등에 기반하여 정의될 수 있다.
고정적인 필터링은 하나의 필터를 사용하여 참조 화소 보간을 수행할 수 있고, 적응적인 필터링은 복수의 필터 중 하나를 사용하여 참조 화소 보간을 수행할 수 있다.
이때, 적응적인 필터링의 경우 부호화 설정에 따라 복수의 필터 중 하나가 묵시적으로 정해질 수 있거나 명시적으로 결정될 수 있다. 이때, 필터의 종류는 4-tap DCT-IF 필터, 4-tap 큐빅 필터, 4-tap 가우시안 필터, 6-tap 위너 필터, 8-tap 칼만 필터 등에서 하나 이상 선택되어 구성될 수 있으며, 컬러 성분에 따라 지원되는 필터 후보군이 달리 정의되는 것(예를 들어, 필터의 종류가 일부는 같거나 다르거나, 그리고 필터 탭의 길이가 짧거나 길거나 등) 또한 가능할 수 있다.
예측 블록 생성부에서 적어도 하나의 예측 모드에 따라 예측 블록을 생성할 수 있으며, 상기 예측 모드에 기반하여 참조 화소를 사용할 수 있다. 이때, 참조 화소는 예측 모드에 따라 외삽(Extrapolation) 등의 방법에 사용될 수 있고, 내삽(Interpolation) 또는 평균(DC) 또는 복사(Copy) 등의 방법에 사용될 수 있다.
예측 모드 결정부에서는 복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행된다. 일반적으로 블록의 왜곡{예를 들어, 대상 블록과 복원 블록의 Distortion. SAD(Sum of Absolute Difference), SSD(Sum of Square Difference 등}과 해당 모드에 따른 발생 비트량이 고려되는 율-왜곡(Rate-Distortion) 기법을 이용하여 부호화 비용 측면에서 최적인 모드를 결정할 수 있다. 상기 과정을 통해 결정되는 예측 모드에 기반하여 생성되는 예측 블록을 감산부와 가산부로 송신할 수 있다.
예측 모드 부호화부에서는 예측 모드 결정부를 통해 선정된 예측 모드를 부호화할 수 있다. 예측 모드 후보군에서 상기 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있거나 또는 상기 예측 모드를 예측하여 그에 관한 정보를 부호화할 수 있다. 전자의 경우 휘도 성분에 적용되는 방법일 수 있고 후자의 경우 색차 성분에 적용되는 방법일 수 있으나 이에 한정되지 않는다.
예측 모드를 예측하여 부호화하는 경우 복수의 카테고리(k개. k는 2, 3, 4 또는 그 이상의 정수)로 분류하여 관리할 수 있다. 예를 들어, 2개의 카테고리로 분류한다고 할 때, 하나의 카테고리는 대상 블록의 예측 모드와 일치할 것이라 예상되는 예측 모드로 구성될 수 있고, 다른 카테고리는 예측 모드와 일치할 가능성이 적다고 예상되는 예측 모드로 구성될 수 있다. 즉, 다른 카테고리는 대상 블록의 예측 모드와 일치할 것이라 예상되는 모드로 선정되지 못한 예측 모드로 구성될 수 있다.
상기 예의 경우 2개의 카테고리로 예측 모드를 분류하는 경우이며, 그 이상의 카테고리로 분류할 수도 있다. 3개의 카테고리로 분류할 때 제 1 카테고리는 대상 블록의 예측 모드와 일치할 가능성이 높다고 예상되는 예측 모드로 구성될 수 있고, 제 2 카테고리는 대상 블록의 예측 모드와 일치할 가능성이 보통으로 예상되는 예측 모드로 구성될 수 있고, 제 3 카테고리는 대상 블록의 예측 모드와 일치할 가능성이 적다고 예상되는 예측 모드로 구성될 수 있다. 즉, 제 2 카테고리는 제 1 카테고리에 속하지 못한 예측 모드 중에서 대상 블록의 예측 모드와 일치할 것이라 예상되는 예측 모드로 구성될 수 있고, 제 3 카테고리는 제 1 카테고리 및 제 2 카테고리에 속하지 못한 예측 모드로 구성될 수 있다.
카테고리 분류에 대한 다른 예로, 예측 방법에 따른 분류가 가능할 수 있다. 예를 들어, 외삽에 따른 예측 방법, 내삽/평균에 따른 예측 방법, 복사에 따른 예측 방법 등으로 분류할 수 있다. 여기서, 외삽에 따른 예측 방법은 방향성 모드를 의미할 수 있고, 내삽/평균에 따른 예측 방법은 비방향성 모드를 의미할 수 있고, 복사에 따른 예측 방법은 컬러 복사 모드로 분류할 수 있으며, 그 밖의 다양한 분류가 가능할 수 있다. 컬러 모드의 경우 다른 컬러 공간에서 예측 모드를 유도하기 때문에 상기 방향성 또는 비방향성 모드와 구분될 수 있으나, 설명의 편의를 위해 방향성/비방향성 모드로 분류되는 경우를 가정한다.
예측 방법에 따라 2개의 카테고리로 분류하는 경우 제 1 카테고리에는 방향성/비방향성 모드로 구성될 수 있고, 제 2 카테고리에는 컬러 복사 모드로 구성될 수 있다. 또는, 제 1 카테고리에는 방향성 모드로 구성될 수 있고, 제 2 카테고리에는 비방향성 모드로 구성될 수 있다. 전자의 경우 색차 성분의 화면내 예측에 적용 가능하고, 후자의 경우 휘도 성분의 화면내 예측에 적용 가능한 예일 수 있다. 후술하는 부분에서도 컬러 복사 모드가 포함된 경우 색차 성분의 화면내 예측 모드에 적용 가능함을 전제하지만, 컬러 복사 모드가 포함되지 않는 경우라도 휘도 성분의 화면내 예측 모드에만 한정되어 적용되지 않음을 이해하여야 한다.
만약 3개의 카테고리로 분류하는 경우 제 1 카테고리에는 방향성 모드로 구성될 수 있고, 제 2 카테고리에는 비방향성 모드로 구성될 수 있으며, 제 3 카테고리에는 컬러 복사 모드로 구성될 수 있다. 또는, 제 1 카테고리에는 방향성 모드 중 소정의 모드(예로, 수직, 수평, 대각선 A 모드 등)으로 구성될 수 있고, 제 2 카테고리에는 방향성 모드 중 소정의 모드(예로, 대각선 B 모드 등)으로 구성될 수 있고, 제 3 카테고리에는 컬러 복사 모드로 구성될 수 있다. 여기서, 대각선 A 모드의 경우 예측 시에 정수 화소만을 사용하는 대각선 모드, 대각선 B 모드의 경우 예측 시에 정수 화소 및 소수 화소를 사용하는 대각선 모드로 구성할 수 있으나, 이에 한정되지 않는다.
상기 설명은 카테고리의 구성에 관한 일 예이며, 이에 한정되지는 않고 다양한 소정의 기준에 따라 분류될 수 있다. 또한, 복수의 소정 기준이 혼합되어 카테고리 구성에 관하여 적용될 수 있다.
복수의 카테고리로 예측 모드를 구분할 경우 대상 블록의 예측 모드가 어떤 카테고리에서 발생했는지에 관한 선택 정보가 발생할 수 있고, 각 카테고리 내의 후보 선택 정보가 발생할 수 있다. 만약 카테고리 내의 후보가 1개일 경우에는 후보 선택 정보가 생략될 수 있다. 상기 카테고리 선택 및 카테고리 내 후보 선택에 관한 다양한 구문 요소 구성이 가능할 수 있다. 다음은 3개의 카테고리가 지원되는 경우를 가정한다.
* 카테고리 선택에 관한 하나의 구문 요소가 지원
본 예에서 카테고리 선택을 위해 지원되는 구문 요소의 값은 0 내지 2의 값(1 이상의 값)을 가질 수 있다. 일 예로, 제 1 내지 제 3 카테고리를 위해 <0>, <10>, <11>의 비트가 할당되는 이진화가 가능할 수 있다. 즉, 카테고리 선택을 위한 하나의 구문 요소가 지원되며, 각 카테고리에 대한 인덱스 할당 및 이진화가 적용되는 형식으로 구성될 수 있다.
* 카테고리 선택에 관한 복수의 구문 요소가 지원
본 예에서 카테고리 선택을 위해 지원되는 구문 요소의 값은 0 또는 1의 값(1 이상의 값 또한 가능)을 가질 수 있다.
일 예로, 하나의 구문 요소(제 1 구문 요소)는 제 1 카테고리와 제 2 카테고리를 위해 <0>이 할당되고, 제 3 카테고리를 위해 <1>이 할당될 수 있다. 이때, 상기 구문 요소가 <0>의 값을 가진 경우 제 1 카테고리와 제 2 카테고리 중에 하나를 선택하는 세부 카테고리 선택에 관한 다른 하나의 구문 요소(제 2 구문 요소)가 지원될 수 있으며, 해당 구문 요소는 제 1 카테고리와 제 2 카테고리를 위해 <0>, <1> 이 할당될 수 있다.
일 예로, 하나의 구문 요소(제 1 구문 요소)는 제 1 카테고리를 위해 <0>이 할당되고, 제 2 카테고리와 제 3 카테고리를 위해 <1>이 할당될 수 있다. 이때, 상기 구문 요소가 <1>의 값을 가진 경우 제 2 카테고리와 제 3 카테고리 중 하나를 선택하는 세부 카테고리 선택에 관한 다른 하나의 구문 요소(제 2 구문 요소)가 지원될 수 있으며, 해당 구문 요소는 제 2 카테고리와 제 3 카테고리를 위해 <0>, <1>이 할당될 수 있다.
상기 예는 카테고리 선택을 위한 구문 요소 구성에 관한 일 예이며, 다양한 변형 및 구성이 가능할 수 있다.
상기 각 카테고리는 적어도 하나의 예측 모드를 포함할 수 있다. 제 1 내지 제 3 카테고리의 예측 모드 수는 a, b, c일 수 있으며, a는 b와 c보다 적거나 같고, b는 c보다 적거나 같을 수 있다. 본 예에서 a는 1 ~ 5 사이의 정수, b는 3 ~ 8 사이의 정수, c는 예측 모드 후보군의 개수에서 a와 b의 개수를 감산한 개수라 가정한다. 상기 카테고리에 속하는 예측 모드에 Truncated Rice 이진화, Truncated Binary 이진화, k-th Exp-Golomb 이진화 등의 가변 길이 이진화 또는 고정 길이 이진화가 적용될 수 있다.
후술하는 예를 통해 카테고리의 구성 및 설정은 고정적인 경우를 가정하여 설명하지만, 다양한 부호화 요소에 따라 적응적인 설정(예로, 카테고리 개수, 관련 플래그 구성 등)이 가능할 수 있다. 여기서, 상기 부호화 요소는 컬러 성분(휘도/색차), 블록의 상태 정보(예로, 블록의 크기, 형태, 가로/세로 길이 비, 위치 등), 영상 타입(I/P/B), 서브 블록 단위의 화면내 예측이 적용되는지 여부, 참조 화소 라인 선택 정보 등에 기반하여 정의될 수 있다. 일 예로, 상기 부호화 정보에 기반하여 카테고리의 수가 2개 또는 3개 중 하나로 결정될 수 있다.
다음은 예측 모드와 일치할 가능성에 기반하여 복수의 카테고리(3개)로 예측 모드를 구분하고, 카테고리 선택 정보 및 카테고리 내의 후보 선택 정보에 기반하여 예측 모드를 부호화하는 예를 살펴본다. 단, 카테고리 구성을 위해 예측 방법에 따른 카테고리 분류에 대한 기준이 혼합되는 예 또한 가능할 수 있다. 또한, 제 1 카테고리와 제 2 카테고리 중 제 2 카테고리 부분을 제하거나 제 1 카테고리와 제 2 카테고리에 관한 설명을 통합할 경우 2개의 카테고리로 구성되는 설명이 유도될 수 있으므로, 이에 관한 상세한 설명은 생략한다.
도 6은 본 발명의 일 실시예에 따른 대상 블록과 그에 인접한 블록에 관한 배치도이다.
대상 블록은 그에 인접한 블록과 높은 상관성을 가질 수 있으며, 인접한 참조 화소를 사용하여 예측을 수행할 뿐 아니라 인접한 블록의 예측 모드 또한 대상 블록의 예측 모드의 예측에 사용할 수 있다. 그래서 대상 블록의 인접한 블록의 예측 모드를 제 1 또는 제 2 카테고리에 포함되는 후보로 선정할 수 있다. 이때, 대상 블록의 좌, 상, 좌상, 우상, 좌하 블록의 전부 또는 일부의 예측 모드를 (앞선) 카테고리에 포함되는 후보로 고려할 수 있다. 일 예로, (좌/상), (좌/상/우상), (좌/상/좌하), (좌/상/좌상/우하/좌상) 등이 고려될 수 있다.
인접한 블록의 예측 모드를 카테고리에 포함되는 후보로 고려할 때, 각 방향의 블록에서 적어도 하나의 예측 모드를 선정할 수 있다. 예를 들어, 좌 블록의 경우 L0 내지 L3에서 하나를 선정할 수 있고, 상 블록의 경우 U0 내지 U3에서 하나를 선정할 수 있다.
소정의 방향의 인접한 블록(본 예에서 좌, 상 블록)이 복수의 서브 블록으로 분할된 경우를 고려하여 예측 모드를 선정하기 위한 특정 위치의 서브 블록(예로, 좌 블록은 L3, 상 블록은 U3)이 정의될 수 있다. 만약 해당 위치 블록의 예측 모드가 사용 불가한 경우(예로, 해당 블록이 부호화가 되지 않은 경우, 참조 불가능한 위치에 있는 경우, 부호화 모드<Intra/Inter>가 다른 경우 등)라면, 해당 방향의 블록에서는 예측 모드를 선정하지 않을 수 있다.
또는, 예측 모드 선정을 위한 (서브 블록) 우선 순위가 지원(예로, L3 -> L0 -> L1 -> L2 등)될 수 있고, 그에 따라 앞선 순위의 이용 가능한 서브 블록의 예측 모드를 해당 방향의 예측 모드로 선정할 수 있다. 만약 모든 위치의 서브 블록의 예측 모드가 사용 불가한 경우라면, 해당 방향의 블록에서는 예측 모드를 선정하지 않을 수 있다.
그리고 각 방향의 블록에서 획득되는 예측 모드를 카테고리에 포함하기 위한 우선 순위가 지원될 수 있다. 예를 들어, 좌 -> 상 -> 우상 -> 좌하 -> 좌상, 좌 -> 상 -> 좌하 -> 우상 -> 좌상, 상 -> 좌 -> 좌하 -> 우상 -> 좌상 등의 설정이 가능할 수 있으며, 이에 한정되지 않는다.
예측 모드 후보군에 많은 예측 모드가 포함되어 있지만, 이 중에서 일반적으로 많이 발생하는 예측 모드가 존재할 수 있다. 예를 들어, 수직, 수평 방향의 에지는 많이 발견 가능한 영상의 특성일 수 있고, 배경과 같은 평탄한 영역 또한 많이 발견될 수 있다. 그래서 많이 발생할 것이라 예상되는 소정의 예측 모드를 제 1 또는 제 2 카테고리에 포함되는 후보로 선정할 수 있다.
상기 많이 발생할 것이라 예상되는 기 설정된 예측 모드의 후보로 비방향성 예측 모드인 Planar(0번), DC 모드(1번), 그리고 수평(18번), 수직(50번), 대각선 모드(2번, 34번, 66번 등)이 대상이 될 수 있다. 상기 예측 모드를 카테고리에 포함하기 위한 우선 순위가 지원될 수 있다. 예를 들어, Planar -> DC -> Ver -> Hor 등의 설정이 가능하며, 이에 한정되지 않는다.
인접한 블록의 예측 모드 중 전부 또는 일부가 이용 불가한 경우라면 상기 기설정된 예측 모드(예로, Planar, DC 등) 중 하나 이상을 대체하여 채우는 것이 가능할 수 있다.
상기 설명을 통해 대상 블록의 인접한 블록의 예측 모드와 기 설정된 예측 모드를 (앞선) 카테고리 구성을 위해 고려되는 예측 모드로 언급하였다. 그러나 예측 모드 후보군의 개수가 많을 경우, 상기 구성으로는 대상 블록의 예측 모드를 효율적으로 예측하는데 어려움을 겪을 수 있다. 일 예로, 방향성 모드에서 (도 5의 예측 모드 기준) 1, 2만큼의 차이가 발생할 경우, 상기 구성으로 예측에 실패하는 경우가 발생할 수 있다.
이를 위해 인접한 블록의 예측 모드와 기 설정된 예측 모드에 기반하여 유도되는 예측 모드를 카테고리 후보군 구성에 고려할 수 있다. 일 예로, 상기 예측 모드(본 예에서 방향성 모드)를 기준으로 k의 간격을 갖는 예측 모드를 유도되는 예측 모드로 고려할 수 있고, 이를 제 1 또는 제 2 카테고리에 포함되는 후보로 선정할 수 있다. 여기서, k는 1, 2, 3, 4 또는 그 이상의 정수일 수 있다.
여기서, 인접한 블록의 예측 모드 또는 기 설정된 예측 모드에 기반되는 예측 모드를 Z라 가정할 때, Z - 1, Z + 1, Z - 2와 같은 유도되는 예측 모드의 우선 순위가 존재할 수 있다. 본 예는 1, 2와 같은 절대값 순서로 우선 순위가 정해지고, (하나의 절대값 기준) <-> 부호에 이어 <+> 부호가 뒤따르는 경우를 가정하지만, 이에 한정되지 않는다. 즉, 상기 유도되는 예측 모드를 채우기 위한 간격 정보가 1부터 시작되지 않을 수 있음(예로, 4, 8, 12 등의 정수)을 의미한다. 그리고 인접한 블록의 예측 모드와 기 설정된 예측 모드에 기반하여 유도되는 예측 모드의 k 간격은 동일하거나 동일하지 않을 수 있다.
또한, 인접한 블록의 예측 모드 또는 기 설정된 예측 모드에 기반한 예측 모드가 X, Y라 가정할 때, X - 1, X + 1, Y - 1, Y + 1 또는 X - 1, Y - 1, X + 1, Y + 1와 같은 유도되는 예측 모드의 우선 순위가 존재할 수 있다. 본 예는 X가 Y에 앞선 순위를 갖고, <-> 부호와 <+> 부호가 번갈아 나타나거나 또는 하나의 부호(본 예에서 음수)가 (하나의 절대값 기준) 모두 유도된 후에 다른 부호(본 예에서 양수)가 유도되는 경우를 가정하지만, 이에 한정되지 않는다.
또한, 복수의 모드(본 예에서 X, Y)가 유도되는 모드의 기준 모드로 사용될 수 있거나 또는 그 중에 소정의 모드(즉, X, Y 중 하나)가 기준 모드로 사용될 수 있다. 이는 소정의 기준에 따라 분류가 가능할 수 있는데, 획득된 블록 위치(예로, 좌측 블록과 상측 블록 중 어느 특정 블록의 모드를 기준 모드로 설정), 대상 블록의 형태(예로, 가로로 긴 직사각 형태일 경우 좌측과 상측 중 상측 블록의 모드, 세로로 긴 직사각 형태일 경우 좌측 블록의 모드를 기준 모드로 설정. 또는 반대의 경우 등), 예측 모드의 기울기 정보(예로, 수직 또는 수평 모드를 기준으로 특정 방향<좌 또는 우, 상 또는 하>으로 더 기울어진 모드를 기준 모드로 설정)에 기반하여 정해질 수 있다.
정리하면, 기 설정된 예측 모드와 인접한 블록의 예측 모드, 그리고 앞선 예측 모드에 기반하여 유도되는 예측 모드를 (앞선) 카테고리에 포함할 수 있다.
각 카테고리는 기 설정된 예측 모드와 인접한 블록의 예측 모드, 그리고 유도되는 예측 모드 중 적어도 하나의 예측 모드가 포함될 수 있으며, 설명의 편의를 위해 각각 Group_A, Group_B, Group_C로 지칭한다.
예를 들어, 제 1 카테고리에는 Group_A에서 구성될 수 있고, 제 2 카테고리에는 Group_A, Group_B, Group_C에서 구성될 수 있고, 제 3 카테고리에는 나머지 모드(본 경우는 Group_C로 볼 수도 있음)가 구성될 수 있다.
또는, 제 1 카테고리에는 Group_B에서 구성될 수 있고, 제 2 카테고리에는 Group_A, Group_B, Group_C에서 구성될 수 있고, 제 3 카테고리에는 나머지 모드가 구성될 수 있다.
또는, 제 1 카테고리에는 Group_A, Group_B에서 구성될 수 있고, 제 2 카테고리에는 Group_A, Group_B, Group_C에서 구성될 수 있고, 제 3 카테고리에는 나머지 모드가 구성될 수 있다.
상기 예는 카테고리 구분에 따른 모드 구성에 관한 일 예이며, 복수의 카테고리에 포함되는 Group_A와 Group_B의 경우 앞선 카테고리에서 구성되지 못한 나머지 모드가 후속 카테고리에 구성되는 경우로 이해될 수 있다. 또한, 상기 예에 한정되지 않고 다양한 카테고리 구분에 따른 모드 구성이 가능할 수 있다.
다음은 카테고리 구성을 위한 예측 모드의 우선 순위가 지원되고, 카테고리 우선 순위(예로, 1 - 2 - 3 카테고리 순서)에 따라 선순위의 카테고리(예로, 제 1 카테고리)의 개수만큼 모드 구성이 완료되면 남은 모드를 후순위의 카테고리(예로, 제 2 카테고리, 제 3 카테고리 등)에 구성이 진행되는 경우를 가정한다.
후술하는 예에서 Planar(0번 인덱스 할당 가정) -> L -> A -> DC -> <L - 1> -> <L + 1> -> <A - 1> -> <A + 1> -> <L - 2> -> <L + 2> -> <A - 2> -> <A + 2> -> Ver -> Hor -> <Ver - 4> -> <Ver + 4> -> <Hor - 4> -> <Hor + 4> 등의 우선 순위가 지원되는 경우를 가정한다.
예를 들어, 제 1 카테고리의 예측 모드의 수가 1개인 경우, Group_A에 속하는 예측 모드는 Planar(0번 인덱스)일 수 있으며, 예측 모드의 수가 증가할수록 후순위의 예측 모드로 Group_A를 구성할 수 있다.
또한, 제 2 카테고리의 예측 모드의 수가 1개인 경우, 제 1 카테고리에 최종 구성된 예측 모드(m번 인덱스)의 다음 예측 모드(m+1번 인덱스)부터 Group_B에 속하는 예측 모드일 수 있으며, 예측 모드의 수가 증가할수록 후순위의 예측 모드로 Group_B를 구성할 수 있다.
또한, 제 3 카테고리는 제 2 카테고리에 최종 구성된 예측 모드(n번 인덱스)의 다음 예측 모드(n+1번 인덱스)부터 남은 예측 모드로 Group_C를 구성할 수 있다.
제 1 내지 제 3 카테고리의 예측 모드의 수(본 예는 예측 모드 후보군이 67개인 경우)는 (1, 5, 61), (2, 4, 61), (4, 8, 55) 등의 다양한 설정이 가능할 수 있으며, 예측 모드 후보군의 개수에 기반하여 정해질 수 있다.
상기 예에서 기 설정된 예측 모드는 부호화 환경과 상관없이 고정적으로 지원되는 모드일 수 있고, 유도되는 예측 모드는 이미 후보군에 존재하는 예측 모드를 기준 모드로 삼아 획득될 수 있다.
한편, 인접한 블록의 예측 모드는 인접한 블록의 상태(예로, 분할 단위 경계, 부호화 여부, 부호화 모드 등)에 따라 획득이 어려운 경우가 발생할 수 있다. 여기서, 인접한 블록의 상태는 (1) 인접한 블록 모두가 이용 불가한 경우, (2) 인접한 블록 일부가 이용 불가한 경우, (3) 인접한 블록 모두가 이용 가능한 경우로 구분할 수 있는데, 상기 우선 순위의 예는 인접한 블록 모두가 이용 가능한 경우를 가정하여 설명될 수 있다.
또한, 인접한 블록의 예측 모드는 둘 이상의 블록에서 획득될 수 있는데, 상기 우선 순위의 예는 각 블록의 예측 모드가 중복되지 않는 경우를 가정하여 설명될 수 있다.
또한, 인접한 블록의 예측 모드는 기 설정된 예측 모드와 중복되지 않는 경우를 가정하여 상기 우선 순위의 예가 설명될 수 있다.
카테고리 구성에 관한 우선 순위는 상기 요소를 고려하여 적응적으로 설정될 수 있다. 예를 들어, 인접한 블록의 예측 모드에 해당하는 인덱스는 상기 우선 순위에서 제거할 수 있고, 인접한 블록의 예측 모드를 기준 모드로 삼아 유도되는 모드에 관한 인덱스도 제거할 수 있다. 이는 인접한 블록의 예측 모드가 방향성 모드일뿐만 아니라 비방향성 모드인 경우에도 공통 적용되는 설명일 수 있다.
또한, 인접한 블록의 예측 모드가 중복되는 경우 중복되는 다른 예측 모드에 해당하는 인덱스와 유도되는 모드에 관한 인덱스를 제거할 수 있다. 또는, 상기 요소를 고려한 우선 순위가 복수 개가 지원되어 그에 따른 카테고리 구성이 가능할 수 있다.
본 발명의 화면내 예측에서는 지원되는 예측 모드 중에서 일부를 예측 모드 후보군으로 구성할 수 있음을 언급하였다. 이는 대상 블록의 상태 정보(예로, 블록의 크기, 형태 등)에 따라 각기 개별적인 예측 모드(예로, 방향성 모드)가 지원될 수 있음을 의미할 수 있다.
예측 모드 부호화를 위해 이를 공통되는 예측 모드 후보군 구성로 통일하는 과정이 상기 부호화 과정에 선행될 수 있다. 예를 들어, 예측 모드 부호화를 위한 소정의 범위의 예측 모드 후보군 구성으로 통일시킬 수 있고, 이에 기반하여 예측 모드 부호화를 수행할 수 있다. 이때, 상기 소정의 범위는 도 5의 0번 내지 66번에 해당하는 예측 모드로 구성할 수 있으나, 이에 한정되지 않는다.
상기 통일 과정은 상기 소정의 범위로 매핑하는 과정이 수행될 수 있는데, 예측 모드의 방향성에 기반하여 매핑이 수행될 수 있다. 일 예로, 상기 소정의 범위 밖에 존재하는 예측 모드의 경우 해당 예측 모드와 비슷한 특성을 갖는 예측 모드로 매핑 과정(예로, 에지 방향이 동일한 경우 등. 즉, 예측의 시작점과 예측 방향은 다르나 에지 방향이 일치하는 경우를 포함)을 수행할 수 있으며, 그 밖의 다양한 방법이 지원될 수 있다.
상기 과정을 통해 생성되는 예측 관련 정보는 부호화부로 전송되어 비트스트림에 수록될 수 있다.
상기 설명을 통해 화면내 예측이 수행되는 단위는 대상 블록이라 지칭하였다. 이때, 블록 설정에 따라 상기 대상 블록은 다양한 블록 단위로 설정될 수 있다.
일 예로, 부호화 블록이 예측 블록, 변환 블록과 동일한 단위인 경우(즉, 부호화 블록이 바로 예측 블록 또는 변환 블록으로 설정되는 경우), 참조 화소 영역 설정, 참조 화소 구성(참조 화소 필터링/참조 화소 보간), 예측 모드 후보군 구성, 예측 수행, 예측 모드 부호화 등을 위한 화면내 예측의 대상 블록은 부호화 블록으로 선정될 수 있다.
일 예로, 부호화 블록이 예측 블록, 변환 블록과 동일하거나 동일하지 않을 가능성이 존재하는 단위인 경우(즉, 부호화 블록에서 둘 이상의 서브 블록<예측 블록 또는 변환 블록>으로 분할될 수 있음), 화면내 예측의 대상 블록은 부호화 블록, 예측 블록, 변환 블록 중 하나로 설정될 수 있다.
예를 들어, (예측 모드 부호화/예측 모드 후보군 구성/참조 화소 구성) 등에 부호화 블록이 대상 블록으로 설정될 수 있고, (참조 화소 영역 설정/예측 수행) 등에 예측 블록 또는 변환 블록이 대상 블록으로 설정될 수 있다.
또는, (예측 모드 부호화/예측 모드 후보군 구성) 등에 부호화 블록이 대상 블록으로 설정될 수 있고, (참조 화소 영역 설정/참조 화소 구성/예측 수행) 등에 예측 블록 또는 변환 블록이 대상 블록으로 설정될 수 있다.
정리하면, 대상 블록은 부호화 블록, 예측 블록, 변환 블록 중에 하나로 설정될 수 있으며, 부호화 설정에 따라 세부 구성의 대상 블록 단위가 정해질 수 있다.
본 발명의 일 실시예에 따른 영상 복호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 포함할 수 있다. 또한, 영상 복호화 장치는 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 구현하는 예측 모드 복호화부, 참조 화소 구성부, 예측 블록 생성부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
영상 복호화 장치의 참조 화소 구성부, 예측 블록 생성부는 영상 부호화 장치의 대응되는 구성과 동일한 역할을 수행하므로 상세한 설명은 생략하며, 예측 모드 복호화부는 예측 모드 부호화부에서 사용한 방식을 역으로 사용하여 수행될 수 있다.
도 7은 본 발명의 일 실시예에 따른 화면내 예측의 보정 방법을 나타낸 순서도이다.
도 7을 참조하면, 대상 블록의 화면내 예측 모드를 결정하고(S700), 화면내 예측 모드에 기반하여 예측 블록을 생성할 수 있다(S710). 예측 블록의 보정 설정을 결정하고(S720), 예측 블록의 보정을 수행할 수 있다(S730).
대상 블록의 화면내 예측은 대상 블록의 상태 정보에 기반하여 획득되는 예측 모드 후보군 내에서 선정될 수 있으며, 그 중 하나의 예측 모드를 결정할 수 있다.
휘도 성분의 경우 방향성 모드와 비방향성 모드로 구성된 예측 모드 후보군를 참조할 수 있고, 색차 성분의 경우 방향성 모드와 비방향성 모드에 컬러 모드 또는 컬러 복사 모드가 지원되는 예측 모드 후보군을 참조할 수 있다.
이때, 예측 방법에 따른 구분은 방향성 모드/비방향성 모드/컬러 복사 모드로 구분할 수 있으며, 각 방법은 외삽, 내삽 또는 평균, 복사 방법을 사용할 수 있으나, 이에 한정되지 않고 다른 변형이 가능할 수 있다. 일 예로, 참조 화소 영역 설정에 따라 방향성 모드는 외삽 뿐만 아니라 내삽(양방향 예측)이 지원되는 경우가 가능할 수 있다.
정리하면, 각 예측 방법에 따라 화면내 예측을 위한 참조 영역이 달리 설정될 수 있는데, 외삽의 경우 대상 블록의 좌, 상, 좌상, 우상, 좌하 방향의 블록 중에 적어도 하나가 참조 영역으로 설정될 수 있고, 내삽의 경우 외삽의 경우에 추가로 대상 블록의 우, 하, 우하 방향의 블록 중 적어도 하나를 참조 영역으로 설정할 수 있다. 이때, 인접합 영역이 부호화가 되지 않은 경우라면 부호화된 영역의 하나 이상의 화소에서 유도하여 채울 수 있다. 또한, 복사의 경우 대상 블록과 다른 컬러 공간 내의 대응되는 블록이 참조 영역으로 설정될 수 있다.
상기 참조 영역의 데이터와 화면내 예측 모드에 기반하여 예측 블록을 생성할 수 있다.
예측 블록에 보정을 수행하는 것은 소정의 예측 모드에 따라 생성되는 예측 블록이 인접한 블록과의 불연속적인 경계 특성이 나타나는 것을 줄이기 위해 수행될 수 있다. 그러나 영상 특성에 따라 보정을 수행하는 것이 오히려 역효과가 날 수 있기 때문에 다양한 부호화 요소를 고려하여 보정을 수행하는 것이 필요하다.
예측 블록에 보정을 지원할 지 여부는 명시적으로 관련 정보가 생성될 수 있거나 또는 묵시적으로 정해질 수 있다. 그리고 시퀀스, 픽쳐 등의 상위 단위에서 보정을 지원하기로 결정되더라도 대상 블록의 보정 설정은 영상 타입, 컬러 성분, 대상 블록의 상태 정보, 부호화 모드, 화면내 예측 모드, 서브 블록 단위의 화면내 예측이 적용되는지 여부, 참조 화소 라인 선택 정보 등에 기반하여 정의될 수 있다. 또한, 보정 관련한 설정 정보(예로, 블록 단위의 보정을 수행할지에 관한 플래그, 보정에 적용되는 가중치 정보 등)가 하위 단위(예로, 전자의 정보는 블록, 서브 블록 등) 또는 상위 단위(예로, 후자의 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등)에 명시적으로 생성될 수 있다.
상기 보정 설정은 보정이 수행되는지 여부, 보정에 사용되는 참조 화소의 개수, 위치, 가중치 등을 포함하여 구성될 수 있다. 보정이 수행되는 경우라도 대상 블록 내 화소 전부 또는 일부에 보정이 수행될 수 있다. 예를 들어, 대상 블록이 m x n인 경우 1개 내지 (mxn)개의 화소에 보정이 수행될 수 있다.
여기서, (화소 단위) 보정이 적용되는지 여부, (보정이 수행될 때) 보정에 사용되는 참조 화소의 개수(1 ~ 5개), 위치, 가중치 등은 상기 보정 설정뿐만 아니라 블록 내 화소의 위치 등에 기반하여 설정될 수 있다.
여기서, 보정이 지원되는 화면내 예측 모드는 소정의 예측 모드 그룹에 속하는지 여부에 따라 정해질 수 있다. 예를 들어, Planar, DC, 수평, 수직, 대각선 모드(예로, 우상 방향, 우하 방향, 좌하 방향 모드 등. 도 5의 2, 34, 66번 모드), 컬러 복사 모드 중에서 상기 예측 모드 그룹을 구성할 수 있다. 또는, 상기 예측 모드 그룹에서 유도되는 예측 모드(예로, 방향성 모드 기준으로 k만큼의 간격을 갖는 모드. 이때, k는 절대값이 1, 2, 3, 4 또는 그 이상의 정수)를 더 포함하여 구성할 수 있다.
보정이 지원되는 대상 블록은 소정의 제 1 문턱크기보다 작거나 같을 수 있다. 여기서, 제 1 문턱크기는 대상 블록이 가질 수 있는 최대 크기를 의미할 수 있다.
또한, 보정이 지원되는 블록은 소정의 제 2 문턱크기보다 크거나 같을 수 있다. 여기서, 제 2 문턱크기는 대상 블록이 가질 수 있는 최소 크기를 의미할 수 있다.
여기서 제 1 문턱크기와 제 2 문턱크기는 너비(W), 높이(H), W x H, W*H 등으로 표현될 수 있으며, W와 H는 4, 8, 16, 32 또는 그 이상의 정수일 수 있다. 여기서 제 1 문턱크기는 제 2 문턱크기보다 크거나 같을 수 있다.
도 8은 본 발명의 일 실시예에 따른 대상 블록 및 인접한 블록의 화소에 관한 배치도이다.
도 8을 참조하면, 대상 블록 내의 화소(a ~ p), 인접한 부호화가 완료된 블록 내의 화소(A ~ Q), 인접한 부호화가 완료되지 않은 블록 내의 화소(aa ~ ii)로 구성되어 있다. 여기서, 대상 블록 내의 화소는 보정이 수행되고, 인접한 블록 내의 화소는 보정에 참조될 수 있다.
이때, 인접한 블록의 참조 화소는 참조 화소 전처리 과정(예로, 참조 화소 필터링)이 수행되지 않거나 수행되어 획득된 값 중에 하나일 수 있다. 이는 블록 단위에서 결정될 수 있거나 또는 화소 단위에서 결정될 수 있다.
다음은 예측 화소에 보정이 적용되어 보정 화소가 획득되는 수식을 나타낸다.
Z = (z * w0) + (a * w1) + (b * w2) + (c * w3)
여기서, z와 Z는 각각 예측 화소와 보정 화소를 의미하고, a 내지 c는 보정에 사용되는 참조 화소를 의미하며, w0 내지 w3은 보정에 적용되는 가중치를 의미한다. 보정에 사용되는 참조 화소 개수에 따라 상기 참조 화소 및 가중치는 정해질 수 있다. 이때, 가중치는 0을 포함하여 정규화를 고려한 값이 할당될 수 있다.
대상 블록의 예측 모드에 따라 상기 참조 화소의 위치 및 개수가 정해질 수 있다.
예를 들어, 대상 블록의 예측 모드가 Planar, DC, 수직, 수평 모드인 경우 상기 a, b, c는 대상 블록 밖의 좌상단 참조 화소(예로, <-1,-1>), 대상 화소의 x 성분과 대응 또는 상응되는 대상 블록의 상측의 참조 화소(예로, <x, -1>), 대상 화소의 y 성분과 대응 또는 상응되는 대상 블록의 좌측의 참조 화소(예로, <-1, y>)로 설정할 수 있다.
여기서, Planar, DC 모드의 경우 대상 블록의 상측과 좌측의 참조 화소 변화도를 반영하기 위해 w2와 w3에 가중치를 할당할 수 있다. 이는 대상 화소의 x와 y 성분에 대응되는 참조 화소로부터 얼마나 변화하는지에 기반한 가중치 설정의 일 예(예로, w1는 0)일 수 있다.
여기서, 수직 모드의 경우 예측 방향과 상응하는 참조 화소의 변화도를 반영하기 위해 w0에 음의 부호를 갖는 가중치를 할당하고, w3에는 양의 부호(즉, 반대되는 부호)를 갖는 가중치를 할당할 수 있다. 이는 대상 화소의 y 성분에 대응되는 참조 화소가 좌상단 참조 화소로부터 얼마나 변화하는지에 기반한 가중치 설정의 일 예(예로, w2는 0)일 수 있다. 수평 모드의 경우 수직 모드에서 관련 설명을 유도할 수 있으므로 상세한 설명은 생략한다.
또는, 대상 블록의 예측 모드가 대각선 모드인 경우 상기 a, b, c는 대상 블록 밖의 좌상단 참조 화소, 대상 블록의 예측 방향의 시작점에 대응 또는 상응하는 참조 화소(예로, <x+y+1, -1>), 대상 블록의 예측 방향의 시작점 반대쪽에 대응 또는 상응하는 참조 화소(예로, <-1, x+y+1>)로 설정할 수 있다. 이때, 상기 참조 화소가 정수 단위로 획득되지 않은 경우(즉, 소수 단위로 보간이 필요한 경우)에는 인접한 하나의 참조 화소로 대체하거나 또는 양쪽에 인접한 참조 화소를 통해 보간하여 획득하는 방법 중에 하나로 설정할 수 있다.
여기서, 우상 방향의 대각선 모드의 경우 예측 방향의 시작점에 위치한 참조 화소와 반대쪽에 위치하는 참조 화소의 변화도를 반영하기 위해 w3에 가중치를 할당할 수 있다. 이는 대상 화소의 예측 방향 선상에 놓인 참조 화소로부터 얼마나 변화하는지에 기반한 가중치 설정의 일 예(예로, w1와 w2는 0)일 수 있다. 좌하 방향의 대각선 모드의 경우 상기 모드에서 관련 설명을 유도할 수 있으므로 상세한 설명은 생략한다.
도 9는 본 발명의 일 실시예에 따른 다중 참조 화소 라인에 기반한 보정 방법에 관한 예시도이다.
후술하는 예는 전술한 복수의 참조 화소 라인에서 화면내 예측에 사용될 참조 화소 라인이 선택되는 구성과 별도로 지원될 수 있는 구성일 수 있으며, 그에 기반하여 설명할 것이나, 상호 결합되는 구성으로의 적용 또한 가능할 수 있다.
도 9를 참조하면, (a)는 수평 또는 수직 모드에서의 보정에 대한 예시를 나타낸다. 상세하게는, 둘 이상의 참조 화소 라인의 참조 화소가 보정에 사용되는 경우에 대한 예시일 수 있다.
대상 블록의 예측 모드가 수직 모드인 경우에는 a에 추가적으로 a*를 참조 화소로 설정함으로써 보정의 정확도를 향상시킬 수 있다. 또는, a와 a*를 가중치 평균을 적용하여 a**를 획득한 후에 전술한 보정 수식에 적용할 수도 있다.
이는 블록 분할이 영상 특성을 정확하게 구분되는 경계선을 갖게 수행될 수 없기 때문에, 대상 블록의 인접한 참조 화소를 예측 화소로 사용하는 것과 동일한 이유일 수 있다.
대상 블록의 예측 모드가 수평 모드인 경우에는 b에 추가적으로 b*를 참조 화소로 설정하여 보정의 정확도를 향상시킬 수 있으며, b와 b*에 가중치 평균을 적용하여 b**를 획득한 후에 전술한 보정 수식에 적용할 수 있다.
도 9를 참조하면, (b)는 대각선 모드에서의 보정에 대한 예시를 나타낸다. 상세하게는, 둘 이상의 참조 화소 라인의 참조 화소가 보정에 사용되는 경우에 대한 예시일 수 있다.
대상 블록의 예측 모드가 좌하 방향인 경우에는 예측의 시작점 위치의 a에 추가적으로 a*를 참조 화소로 설정함으로써 보정의 정확도를 향상시킬 수 있거나 또는 a와 a*를 가중치 평균을 적용하여 a**를 획득한 후에 전술한 보정 수식에 적용할 수도 있다.
또한, 예측의 시작점 반대쪽 위치의 b에 추가적으로 b*를 참조 화소로 설정함으로써 보정의 정확도를 향상시킬 수 있거나 또는 b와 b*를 가중치 평균을 적용하여 b**를 획득한 후에 전술한 보정 수식에 적용할 수도 있다.
대각선 모드의 경우 예측의 시작점 또는 시작점의 반대쪽 중에 하나 이상의 참조 화소에 기반하여 획득된 참조 화소를 보정에 사용할 수 있다. 이때, 상기 참조 화소는 예측 모드의 방향 선상에 놓인 화소를 대상으로 선정될 수 있다.
상기 예에서 다중 참조 화소 라인에 위치하는 참조 화소를 보정에 사용하는 경우는 영상 타입, 컬러 성분, 대상 블록의 상태 정보, 화면내 예측 모드, 서브 블록 단위의 화면내 예측 모드가 적용되는지 여부, 참조 화소 라인 선택 정보 등에 기반하여 지원여부가 정해질 수 있다.
도 10은 본 발명의 일 실시예에 따른 화면내 예측의 보정 방법을 나타낸 순서도이다.
도 10을 참조하면, 대상 블록의 보정을 위한 임의의 화소를 획득하고(S900), 대상 블록과 화면내 예측 모드에 기반하여 보정 설정을 결정하며(S910), 예측 블록의 보정을 수행할 수 있다(S920).
예측 블록의 보정을 위하여 대상 블록에 인접한 블록은 특정 방향(예로, 좌상단 방향)으로 치우쳐서 구성될 수 있는데, 이는 래스터 스캔 또는 Z-스캔의 방법에 따른 부호화 순서로 인해 발생하는 상황이다.
특정 방향에 치우친 참조 화소를 대상으로 예측 및 보정을 수행하는 것에 추가로 부호화가 완료되지 않은 영역의 데이터를 사용함으로써 예측의 정확도를 향상시킬 수 있다. 이를 위해 임의의 화소를 획득하는 과정이 수행될 수 있다. 이때, 임의의 화소 개수는 1, 2 또는 그 이상의 정수일 수 있다.
예를 들어, 대상 블록의 보정에 사용되는 임의의 화소는 도 8의 aa 내지 ii 화소 중에서 정해질 수 있다. 상세하게는, 대상 블록의 인접한 블록 중에 아직 부호화가 완료되지 못한 영역에 속한 화소가 임의의 화소로 설정될 수 있다.
또는, 도 8의 a 내지 p 화소 중에서 정해질 수 있다. 상세하게는, 대상 블록 또한 아직 부호화가 완료되지 못한 화소에 속하므로 임의의 화소 선정 대상에 포함될 수 있다.
도 11은 본 발명의 일 실시예에 따른 예측 화소 보정에 사용되는 임의의 화소에 대한 예시도이다.
도 11을 참조하면, (a)의 경우 대상 블록 내의 우하측 화소, (b)의 경우 대상 블록 바깥의 우하측 화소, (c)의 경우 대상 블록 바깥의 하측과 좌측 화소, (d)의 경우 대상 블록 바깥의 하측 화소, (e)의 경우 대상 블록 바깥의 우측 화소가 임의의 화소(X, X1, X2)로 정해지는 예시도를 나타낸다.
임의의 화소를 사용하여 보정을 수행할 지 여부는 명시적으로 관련 정보가 생성될 수 있거나 또는 묵시적으로 정해질 수 있다. 그리고 시퀀스, 픽쳐 등의 상위 단위에서 임의의 화소를 사용하기로 결정되더라도 임의의 화소에 관한 설정은 영상 타입, 컬러 성분, 대상 블록의 상태 정보, 부호화 모드, 화면내 예측 모드, 서브 블록 단위의 화면내 예측이 적용되는지 여부, 참조 화소 라인 선택 정보 등에 기반하여 정의될 수 있다. 또한, 임의의 화소 관련한 설정 정보(예로, 블록 단위로 임의의 화소를 사용하여 보정을 수행할지에 관한 플래그 등)가 명시적으로 생성될 수 있다.
상기 임의의 화소에 관한 설정은 임의의 화소를 사용할지 여부(즉, 보정에 임의의 화소를 사용할지 여부), 임의의 화소의 개수, 위치 등을 포함하여 구성될 수 있다.
여기서, 임의의 화소를 사용하여 보정을 수행하는 화면내 예측 모드는 소정의 예측 모드 그룹에 속하는지 여부에 따라 정해질 수 있다. 예를 들어, Planar, DC, 수평, 수직, 대각선 모드(예로, 우상 방향, 우하 방향, 좌하 방향 모드 등. 도 5의 2, 34, 66번 모드), 컬러 복사 모드 중에서 상기 예측 그룹을 구성할 수 있다. 또는, 상기 예측 모드 그룹에서 유도되는 예측 모드(예로, 방향성 모드 기준으로 k만큼의 간격을 갖는 모드. 이때, k는 절대값이 1, 2, 3, 4 또는 그 이상의 정수)를 더 포함하여 구성할 수 있다.
임의의 화소를 사용하여 보정이 수행되는 대상 블록은 소정의 제 1 문턱크기보다 작거나 같을 수 있으며, 제 1 문턱크기는 대상 블록이 가질 수 있는 최대 크기를 의미할 수 있다. 또는, 소정의 제 2 문턱크기보다 크거나 같을 수 있으며, 제 2 문턱크기는 대상 블록이 가질 수 있는 최소 크기를 의미할 수 있다. 여기서, 상기 문턱크기는 너비(W), 높이(H), W x H, W*H 등으로 표현될 수 있으며, W와 H는 4, 8, 16, 32 또는 그 이상의 정수일 수 있고, 제 1 문턱크기는 제 2 문턱크기보다 크거나 같을 수 있다.
상기 설명은 이전 실시예를 통해 언급한 보정 설정에 하위 구성에 속하거나 결합되는 내용으로 이해할 수 있으므로, 중복되는 설명은 생략한다. 후술하는 예에서는 도 11의 (a)로 임의의 화소가 설정되는 경우를 가정한다.
임의의 화소 위치는 아직 부호화가 완료되지 못한 영역이기 때문에 다양한 방법을 통해 해당 위치의 화소값을 획득할 수 있다.
예를 들어, 임의의 화소 위치에 관한 데이터를 명시적으로 부호화할 수 있다. 해당 위치의 화소값을 그대로 부호화(예로, 비트 심도에 기반함)할 수 있거나 소정의 나눔값(예로, 양자화. 보정에 사용 시에는 양자화된 값을 사용)으로 획득된 값을 부호화할 수 있다.
또는, 임의의 화소 위치에 관한 데이터 후보값을 대상 블록의 인접한 부호화가 완료된 영역에서 둘 이상 획득하고, 이에 대한 인덱스 정보를 구성하여 부호화할 수 있다. 일 예로, 임의의 화소 위치의 화소값이 67이고, 대상 블록의 인접한 영역(예로, 상측 영역)에서 획득된 제 1 후보값이 70, 대상 블록의 인접한 영역(예로, 좌측 영역)에서 획득된 제 2 후보값이 85로 총 2개의 후보가 지원될 때, 후보값 선택 정보(예로, 제 1 후보값으로 선정. 1비트 플래그)를 부호화할 수 있다. 이때, 상기 후보값 획득에 관하여 후술하는 예에서 언급되는 방법이 사용될 수도 있다. 상기 후보값은 2, 3, 4 또는 그 이상의 정수만큼 지원될 수 있다.
상기 예의 경우 임의의 화소 위치의 데이터에 대한 정보를 명시적으로 부호화하는 경우일 수 있으며, 묵시적으로 임의의 화소 위치의 데이터를 획득할 수 있다.
예를 들어, 소정의 위치의 참조 화소 또는 임의의 화소 위치에 대응 또는 상응하는 참조 화소에서 획득할 수 있다. 소정의 위치에 대한 예로, 대상 블록 바깥의 좌상측, 상측, 좌측 위치의 참조 화소(도 8의 A, E, M)에서 획득할 수 있으며, 상기 위치에서 대상 블록의 너비 또는 높이에 기반한 위치(우상측, 좌하측)의 참조 화소(도 8의 I, Q)가 획득될 수도 있다.
또한, 임의의 화소 위치에 대응되는 참조 화소의 예로, 임의의 화소의 x 또는 y 성분과 대응되는 참조 화소(예로, <x, -1>, <-1, y>, <x+y+1, -1>, <-1, x+y+1> 등)에서 획득될 수 있다.
상기 위치의 참조 화소 중에 하나의 참조 화소의 데이터값을 그대로 임의의 화소 위치의 데이터값으로 획득할 수 있거나 또는 둘 이상의 참조 화소에 기반하여 유도된 값(예로, 거리에 따른 가중치 평균 등)으로 임의의 화소 위치의 데이터값으로 획득할 수 있다.
예를 들어, 임의의 화소 위치에 사용되는 복수의 참조 화소 중 기 설정된 위치의 참조 화소를 임의의 화소 위치의 데이터값으로 획득할 수 있다. 또는, 복수의 참조 화소 중 소정의 프로세스(예로, 최대값, 최소값, 중앙값 등)으로 획득된 값으로 임의의 화소 위치의 데이터값으로 획득할 수 있다. 또는, 복수의 참조 화소 중 소정의 프로세스(예로, 가중치 평균 등)으로 획득된 값으로 임의의 화소 위치의 데이터값으로 획득할 수 있다.
다음은 복수의 참조 화소에 기반하여 임의의 화소 위치의 데이터값을 획득하는 방법에 관하여 설명한다. 도 8의 A, E, M이 참조 화소로 사용되는 경우를 가정하며, 후술하는 예에서는 x, y, z로 지칭한다.
Candidate 0 1 2 3 4 5 6
Pixel Value x y z y+z-x z+(y-x)/2 y+(z-x)/2 (y+z)/2
상기 표의 0번 내지 2번 후보는 소정의 위치의 참조 화소를 임의의 화소 위치의 데이터값으로 획득하는 경우를 의미한다. 3번 내지 6번 후보는 대상 블록의 변화도를 반영하여 임의의 화소 위치의 데이터를 획득하기 위한 경우를 의미한다. 상세하게는, 대상 블록의 변화도를 기 설정된 위치의 참조 화소에 기반하여 획득하는 경우에 해당할 수 있다.
상기 예는 대상 블록이 정사각 형태인 경우를 가정하여 복수의 화소에서 유도되는 수식의 일 예일 수 있으며, 블록의 가로/세로 길이 비에 따라 변경 적용될 수 있음을 이해하여야 한다. 또한, 임의의 화소 위치의 데이터값은 상기 예에 한정되지 않고, 다양한 방법을 통해 획득될 수 있다.
도 12는 본 발명의 일 실시예에 따른 임의의 화소에 기반하여 보정이 수행되는 예시도이다.
도 12를 참조하면, (a)는 임의의 화소와 상측 블록에 대응되는 참조 화소를 사용하여 그 사이를 보간하는 과정을 나타내고, 이를 통해 획득된 대상 블록의 좌, 우, 상, 좌상, 우상 방향의 참조 화소를 사용하여 보정을 수행하는 과정을 나타낸다.
상기 과정은 대상 블록의 예측 모드가 수직 모드인 경우에 좌, 우 방향의 참조 화소의 변화도를 반영하여 보정을 수행하고자 할 때 적용할 수 있다. 이는 기존의 경우 좌 방향의 참조 화소의 변화도에 기반하여 보정을 수행하고자 할때와 다른 점일 수 있다.
도 12를 참조하면, (c)는 임의의 화소와 좌측 블록에 대응되는 참조 화소를 사용하여 그 사이를 보간하는 과정을 나타내고, 이를 통해 획득된 대상 블록의 상, 하, 좌, 좌상, 좌하 방향의 참조 화소를 사용하여 보정을 수행하는 과정을 나타낸다.
상기 과정은 대상 블록의 예측 모드가 수평 모드인 경우에 상, 하 방향의 참조 화소의 변화도를 반영하여 보정을 수행하고자 할 때 적용할 수 있다. 이는 기존의 경우 상 방향의 참조 화소의 변화도에 기반하여 보정을 수행하고자 할때와 다른 점일 수 있다.
도 12를 참조하면, (e)는 임의의 화소와 좌측과 상측 블록에 대응되는 참조 화소를 사용하여 그 사이를 보간하는 과정을 나타내고, 이를 통해 획득된 대상 블록의 상, 하, 좌, 우, 좌상, 우상, 좌하, 우하 방향의 참조 화소를 사용하여 보정을 수행하는 과정을 나타낸다.
다음은 예측 화소에 보정이 적용되어 보정 화소가 획득되는 수식을 나타낸다. 이때, 참조 화소는 임의의 화소 또는 임의의 화소에 기반하여 획득된 참조 화소가 포함되는 것이 이전 수식과 다른 구성일 수 있다.
Z = (z * w0) + (a * w1) + (b * w2) + (c * w3) + (d * w4) + (e * w5)
여기서, z와 Z는 각각 예측 화소와 보정 화소를 의미하고, a 내지 e는 보정에 사용되는 참조 화소를 의미하며, w0 내지 w5는 보정에 적용되는 가중치를 의미한다. 보정에 사용되는 참조 화소 개수에 따라 상기 참조 화소 및 가중치는 정해질 수 있다. 이때, 가중치는 0을 포함하여 정규화를 고려한 값이 할당될 수 있다.
대상 블록의 예측 모드에 따라 상기 참조 화소의 위치 및 개수가 정해질 수 있으며, 도 12와 같은 다양한 경우가 가능할 수 있다. 그 밖의 보정 설정에 관한 설명은 이전 수식에 관한 부분에서 유도할 수 있으므로 상세한 설명은 생략한다.
다양한 실시예를 통해 화면내 예측에서 보정을 수행하는 경우를 설명하였다. 여기서, 보정은 예측 블록을 획득한 후에 수행되는 경우로 한정하여 설명하였지만, 화면내 예측 과정(즉, 예측 블록 생성 과정)에 반영되어 수행되는 경우가 가능할 수 있다.
또한, 보정 과정에서 생성되는 플래그 정보는 화면내 예측 모드와 별개의 구성으로 부호화/복호화될 수 있지만, 화면내 예측 모드와 결합되거나 의존적인 구성이 가능할 수 있다. 즉, 화면내 예측 과정 이후의 부가적 또는 후속적인 부분으로 한정되지 않음을 이해하여야 한다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
본 발명은 비디오 신호를 부호화/복호화하기 위해 이용될 수 있다.

Claims (9)

  1. 대상 블록의 화면내 예측 모드를 결정하는 단계;
    상기 화면내 예측 모드에 기반하여, 상기 대상 블록의 예측 블록을 생성하는 단계; 및
    상기 예측 블록을 보정하는 단계를 포함하되,
    상기 대상 블록의 화면내 예측 모드는, 상기 대상 블록의 상태 정보에 따른 예측 모드 후보군 내의 모드로 결정되는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 대상 블록의 컬러 성분이 휘도 성분인 경우, 방향성 모드와 비방향성 모드로 구성된 예측 모드 후보군을 참조하고,
    상기 대상 블록의 컬러 성분이 색차 성분인 경우, 방향성 모드, 비방향성 모드, 컬러 모드 또는 컬러 복사 모드 중 적어도 하나가 지원되는 예측 모드 후보군을 참조하는, 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 예측 모드 후보군은, 각 카테고리에 포함 가능하는 예측 모드의 최대 개수 또는 우선순위를 고려하여, 복수의 카테고리로 분류되는, 영상 복호화 방법.
  4. 제2항에 있어서,
    상기 예측 모드 후보군은, 비방향성 모드와 방향성 모드를 포함한 제1 카테고리 및 컬러 복사 모드를 포함한 제2 카테고리로 분류되는, 영상 복호화 방법.
  5. 제3항에 있어서,
    복수의 카테고리 중 어느 하나를 특정하는 제1 정보를 획득하는 단계; 및
    상기 제1 정보에 따른 카테고리 내에서 상기 대상 블록의 화면내 예측 모드를 특정하는 제2 정보를 획득하는 단계를 더 포함하되,
    상기 대상 블록의 화면내 예측 모드는, 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 특정된 카테고리로부터 결정되는, 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 제2 정보는, 상기 제1 정보에 따른 카테고리에 하나의 예측 모드만이 포함된 경우에는 획득되지 않는, 영상 복호화 방법.
  7. 제1항에 있어서,
    상기 화면내 예측에 사용되는 참조 화소를 구성하는 단계를 더 포함하되,
    상기 참조 화소는, 복호화 장치에서 지원되는 복수의 참조 화소 라인 전부 또는 일부에 속하는, 영상 복호화 방법.
  8. 제7항에 있어서,
    상기 구성된 참조 화소에 가중 필터 또는 보간 필터 중 적어도 하나를 수행하는 단계를 더 포함하는, 영상 복호화 방법.
  9. 제1항에 있어서,
    상기 예측 블록을 보정하는 단계는, 소정의 부호화 정보에 기초하여 선택적으로 수행되고,
    상기 부호화 정보는, 영상 타입, 컬러 성분, 상태 정보, 부호화 모드, 화면내 예측 모드, 서브 블록 단위의 화면내 예측이 적용되는지 여부 또는 참조 화소 라인 중 적어도 하나를 포함하는, 영상 복호화 방법.
PCT/KR2019/011648 2018-09-07 2019-09-09 영상 부호화/복호화 방법 및 장치 WO2020050704A1 (ko)

Priority Applications (19)

Application Number Priority Date Filing Date Title
CA3112936A CA3112936A1 (en) 2018-09-07 2019-09-09 Image encoding/decoding method and device
SG11202101877PA SG11202101877PA (en) 2018-09-07 2019-09-09 Image encoding/decoding method and device
EP19856954.3A EP3849193A4 (en) 2018-09-07 2019-09-09 IMAGE ENCODING/DECODING METHOD AND APPARATUS
AU2019336046A AU2019336046B2 (en) 2018-09-07 2019-09-09 Image encoding/decoding method and device
KR1020217010230A KR20210046804A (ko) 2018-09-07 2019-09-09 영상 부호화/복호화 방법 및 장치
BR112021004326-8A BR112021004326A2 (pt) 2018-09-07 2019-09-09 método e dispositivo de codificação/decodificação de imagem
JP2021537423A JP7453236B2 (ja) 2018-09-07 2019-09-09 画像符号化/復号化方法及び装置
RU2021109441A RU2771250C1 (ru) 2018-09-07 2019-09-09 Способ и устройство кодирования/декодирования изображения
MX2021002548A MX2021002548A (es) 2018-09-07 2019-09-09 Metodo y dispositivo de codificacion/decodificacion de imagenes.
CN201980058599.5A CN112740699A (zh) 2018-09-07 2019-09-09 图像编码/解码方法和装置
US17/115,060 US11128859B2 (en) 2018-09-07 2020-12-08 Image encoding/decoding method and device
US17/115,852 US11616944B2 (en) 2018-09-07 2020-12-09 Image encoding/decoding method and device
PH12021550492A PH12021550492A1 (en) 2018-09-07 2021-03-02 Image encoding/decoding method and device
ZA2021/01432A ZA202101432B (en) 2018-09-07 2021-03-02 Image encoding/decoding method and device
IL281260A IL281260A (en) 2018-09-07 2021-03-04 Method and device for image encoding/decoding
ZA2022/03000A ZA202203000B (en) 2018-09-07 2022-02-28 Image encoding/decoding method and device
US18/095,740 US20230171398A1 (en) 2018-09-07 2023-01-11 Image encoding/decoding method and device
AU2024200258A AU2024200258A1 (en) 2018-09-07 2024-01-15 Image encoding/decoding method and device
JP2024032951A JP2024063178A (ja) 2018-09-07 2024-03-05 画像符号化/復号化方法及び装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0107256 2018-09-07
KR20180107256 2018-09-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/115,060 Continuation US11128859B2 (en) 2018-09-07 2020-12-08 Image encoding/decoding method and device

Publications (1)

Publication Number Publication Date
WO2020050704A1 true WO2020050704A1 (ko) 2020-03-12

Family

ID=69723085

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/011648 WO2020050704A1 (ko) 2018-09-07 2019-09-09 영상 부호화/복호화 방법 및 장치

Country Status (15)

Country Link
US (3) US11128859B2 (ko)
EP (1) EP3849193A4 (ko)
JP (2) JP7453236B2 (ko)
KR (1) KR20210046804A (ko)
CN (1) CN112740699A (ko)
AU (2) AU2019336046B2 (ko)
BR (1) BR112021004326A2 (ko)
CA (1) CA3112936A1 (ko)
IL (1) IL281260A (ko)
MX (2) MX2021002548A (ko)
PH (1) PH12021550492A1 (ko)
RU (2) RU2022109978A (ko)
SG (1) SG11202101877PA (ko)
WO (1) WO2020050704A1 (ko)
ZA (2) ZA202101432B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200213595A1 (en) * 2018-12-31 2020-07-02 Comcast Cable Communications, Llc Methods, Systems, And Apparatuses For Adaptive Processing Of Non-Rectangular Regions Within Coding Units

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012087077A2 (ko) * 2010-12-23 2012-06-28 삼성전자 주식회사 영상 예측 단위에 대한 인트라 예측 모드 부호화 방법 및 장치, 및 영상 예측 단위에 대한 인트라 예측 모드 복호화 방법 및 장치
KR20140093869A (ko) * 2013-01-18 2014-07-29 연세대학교 산학협력단 인트라 예측 방법 및 장치, 그리고 영상 처리 장치
KR20140123008A (ko) * 2013-04-05 2014-10-21 삼성전자주식회사 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
JP2014220785A (ja) * 2013-03-29 2014-11-20 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム
KR20170104127A (ko) * 2017-08-30 2017-09-14 삼성전자주식회사 영상 부호화 방법 및 장치, 그 기록매체

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101503269B1 (ko) * 2010-04-05 2015-03-17 삼성전자주식회사 영상 부호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치, 및 영상 복호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치
US9025661B2 (en) * 2010-10-01 2015-05-05 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
AU2012200345B2 (en) * 2012-01-20 2014-05-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
KR102145439B1 (ko) * 2015-03-23 2020-08-18 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017018664A1 (ko) * 2015-07-28 2017-02-02 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
EP3367680B1 (en) * 2015-10-22 2020-07-01 LG Electronics Inc. Intra-prediction method and apparatus in video coding system
US11259047B2 (en) * 2016-04-06 2022-02-22 Kt Corporation Method and apparatus for processing video signal
CN117221601A (zh) * 2016-06-22 2023-12-12 Lx 半导体科技有限公司 图像编码/解码设备以及传输图像数据的设备
US11368681B2 (en) * 2016-07-18 2022-06-21 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium in which bitstream is stored
WO2018026166A1 (ko) * 2016-08-01 2018-02-08 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN109565591B (zh) * 2016-08-03 2023-07-18 株式会社Kt 用于对视频进行编码和解码的方法和装置
WO2018116925A1 (ja) 2016-12-21 2018-06-28 シャープ株式会社 イントラ予測画像生成装置、画像復号装置、および画像符号化装置
US10904568B2 (en) * 2017-03-09 2021-01-26 Kt Corporation Video signal processing method and device for intra prediction of coding or prediction blocks based on sample position based parameters
CN117395405A (zh) * 2017-04-28 2024-01-12 英迪股份有限公司 图像解码方法、图像编码方法和用于发送比特流的方法
US10742975B2 (en) * 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
CN111434109A (zh) * 2017-11-28 2020-07-17 韩国电子通信研究院 图像编码/解码方法和装置以及存储有比特流的记录介质
US10771781B2 (en) * 2018-03-12 2020-09-08 Electronics And Telecommunications Research Institute Method and apparatus for deriving intra prediction mode
JP2021522713A (ja) 2018-04-24 2021-08-30 サムスン エレクトロニクス カンパニー リミテッド ビデオ符号化方法及びその装置、ビデオ復号方法及びその装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012087077A2 (ko) * 2010-12-23 2012-06-28 삼성전자 주식회사 영상 예측 단위에 대한 인트라 예측 모드 부호화 방법 및 장치, 및 영상 예측 단위에 대한 인트라 예측 모드 복호화 방법 및 장치
KR20140093869A (ko) * 2013-01-18 2014-07-29 연세대학교 산학협력단 인트라 예측 방법 및 장치, 그리고 영상 처리 장치
JP2014220785A (ja) * 2013-03-29 2014-11-20 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム
KR20140123008A (ko) * 2013-04-05 2014-10-21 삼성전자주식회사 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
KR20170104127A (ko) * 2017-08-30 2017-09-14 삼성전자주식회사 영상 부호화 방법 및 장치, 그 기록매체

Also Published As

Publication number Publication date
AU2019336046B2 (en) 2024-02-15
PH12021550492A1 (en) 2021-11-08
JP7453236B2 (ja) 2024-03-19
RU2022109978A (ru) 2022-05-04
ZA202203000B (en) 2023-10-25
AU2024200258A1 (en) 2024-02-01
SG11202101877PA (en) 2021-03-30
RU2771250C1 (ru) 2022-04-29
ZA202101432B (en) 2024-02-28
JP2021536718A (ja) 2021-12-27
AU2019336046A1 (en) 2021-05-06
US11616944B2 (en) 2023-03-28
EP3849193A1 (en) 2021-07-14
US20230171398A1 (en) 2023-06-01
CA3112936A1 (en) 2020-03-12
EP3849193A4 (en) 2022-09-28
MX2021002548A (es) 2021-04-29
IL281260A (en) 2021-04-29
JP2024063178A (ja) 2024-05-10
MX2023007730A (es) 2023-07-06
US11128859B2 (en) 2021-09-21
KR20210046804A (ko) 2021-04-28
CN112740699A (zh) 2021-04-30
BR112021004326A2 (pt) 2021-07-20
US20210092365A1 (en) 2021-03-25
US20210092397A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
WO2020004900A1 (ko) 화면내 예측 방법 및 장치
WO2017204532A1 (ko) 영상 부호화/복호화 방법 및 이를 위한 기록 매체
WO2019194485A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018030773A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018012851A1 (ko) 영상 부호화/복호화 방법 및 이를 위한 기록 매체
WO2018066867A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020076143A1 (ko) 다중 가정 예측을 사용하는 비디오 신호 처리 방법 및 장치
WO2017171370A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018026118A1 (ko) 영상 부호화/복호화 방법
WO2018012886A1 (ko) 영상 부호화/복호화 방법 및 이를 위한 기록 매체
WO2019182385A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017192011A2 (ko) 화면 내 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2017176030A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018030599A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2016200242A1 (ko) 적응적인 디블록킹 필터링을 이용하는 영상 부호화 방법과 영상 복호화 방법 및 장치
WO2016195460A1 (ko) 화면 내 예측에 대한 부호화/복호화 방법 및 장치
WO2018097692A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018124843A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020005035A1 (ko) 처리율 향상을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018047995A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019017651A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020005045A1 (ko) 머지 모드 기반의 인터 예측 방법 및 장치
WO2020213963A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2017222331A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018101700A1 (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: 19856954

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021537423

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 122022017937

Country of ref document: BR

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 3112936

Country of ref document: CA

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112021004326

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 20217010230

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019856954

Country of ref document: EP

Effective date: 20210407

ENP Entry into the national phase

Ref document number: 2019336046

Country of ref document: AU

Date of ref document: 20190909

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 112021004326

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20210308