WO2016195460A1 - 화면 내 예측에 대한 부호화/복호화 방법 및 장치 - Google Patents

화면 내 예측에 대한 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
WO2016195460A1
WO2016195460A1 PCT/KR2016/006013 KR2016006013W WO2016195460A1 WO 2016195460 A1 WO2016195460 A1 WO 2016195460A1 KR 2016006013 W KR2016006013 W KR 2016006013W WO 2016195460 A1 WO2016195460 A1 WO 2016195460A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
prediction
current
picture
mode
Prior art date
Application number
PCT/KR2016/006013
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 CN201680045604.5A priority Critical patent/CN107925759B/zh
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to CN202210551885.9A priority patent/CN115134595A/zh
Priority to US15/579,869 priority patent/US20180160113A1/en
Priority to EP21217947.7A priority patent/EP4013051A1/en
Priority to CN202210551268.9A priority patent/CN115134593A/zh
Priority to EP16803813.1A priority patent/EP3306920A4/en
Priority to CN202210551282.9A priority patent/CN115134594A/zh
Priority to EP19214067.1A priority patent/EP3654646A1/en
Priority to CN202210563176.2A priority patent/CN115134596A/zh
Priority to CN202210568332.4A priority patent/CN115134591A/zh
Publication of WO2016195460A1 publication Critical patent/WO2016195460A1/ko
Priority to US16/579,217 priority patent/US11368675B2/en
Priority to US17/742,059 priority patent/US20220321875A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal 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/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/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Definitions

  • the present invention relates to an image encoding and decoding technique. More particularly, the present invention relates to an encoding / decoding method and apparatus for a reference pixel configuration and an optimal probable mode (MPM) configuration in intra prediction.
  • MPM optimal probable mode
  • An object of the present invention for solving the above problems is to provide an image encoding / decoding method in which the intra prediction mode is improved.
  • Another object of the present invention is to provide an image encoding / decoding apparatus having an improved intra prediction mode.
  • an image encoding method for performing intra prediction includes considering a prediction mode of a current block and a neighboring block, and currently selecting boundary pixels in a neighboring block. Determining whether it is available as a reference pixel of the block, acquiring a reference pixel of the current block according to the determined result, generating an intra prediction predicted block based on the obtained reference pixel, and generating the predicted block It may include the step of encoding the current block using.
  • the reference pixel configured with a preset pixel value may be obtained.
  • the determining of whether the reference pixel is available may indicate whether the preset flag considers the prediction mode of the neighboring block.
  • the prediction mode of the neighboring block is intra prediction, it may be determined that the boundary pixel is available as the reference pixel of the current picture.
  • the prediction mode of the neighboring block is inter-screen prediction, it may be determined that the boundary pixel is not available as the reference pixel of the current picture.
  • the determining of whether the neighboring block is available as a reference pixel when the prediction mode of the neighboring block is inter-screen prediction, whether the boundary pixel is available as the reference pixel of the current picture is considered in consideration of the reference picture of the neighboring block. You can decide.
  • the reference picture is selected from List 0 storing data for reference pictures before the current picture or List 1 storing data for reference pictures after the current picture, and the current picture is listed in List 0 or List 1. May be included.
  • the reference picture of the neighboring block is the current picture, it may be determined that the boundary pixel is available as the reference pixel of the current picture.
  • the reference picture of the neighboring block is not the current picture, it may be determined that the boundary pixel is not available as the reference pixel of the current picture.
  • the reference picture of the neighboring block is an I picture
  • an image decoding method for performing intra prediction includes a bit stream including data about a prediction block of a current block and a block neighboring the current block.
  • Receiving extracting data from the received bitstream to confirm the prediction mode of the neighboring block, taking into account the prediction mode of the neighboring block, whether the boundary pixel in the neighboring block is available as a reference pixel of the current block Determining whether or not, according to the determined result, obtaining a reference pixel of the current block, generating an intra prediction predicted block based on the obtained reference pixel, and decoding the current block using the generated prediction block. It includes a step.
  • the reference pixel configured with a preset pixel value may be obtained.
  • the determining of whether the reference pixel is available may indicate whether the preset flag considers the prediction mode of the neighboring block.
  • the prediction mode of the neighboring block is intra prediction, it may be determined that the boundary pixel is available as the reference pixel of the current picture.
  • the prediction mode of the neighboring block is inter-screen prediction, it may be determined that the boundary pixel is not available as the reference pixel of the current picture.
  • the determining of whether the neighboring block is available as a reference pixel when the prediction mode of the neighboring block is inter-screen prediction, whether the boundary pixel is available as the reference pixel of the current picture is considered in consideration of the reference picture of the neighboring block. You can decide.
  • the reference picture is selected from List 0 storing data for reference pictures before the current picture or List 1 storing data for reference pictures after the current picture, and the current picture is listed in List 0 or List 1. May be included.
  • the reference picture of the neighboring block is the current picture, it may be determined that the boundary pixel is available as the reference pixel of the current picture.
  • the reference picture of the neighboring block is not the current picture, it may be determined that the pixels in the neighboring block are not available as the reference pixels of the current picture.
  • the reference picture of the neighboring block is an I picture
  • the one or more processors are configured to obtain data about a prediction block of a current block and a block neighboring the current block. After receiving the bit stream including the extracted bit stream, and extracting data from the received bit stream to confirm the prediction mode of the neighboring block, considering the prediction mode of the neighboring block, the boundary pixel in the neighboring block is referred to as the reference pixel of the current block. It determines whether or not is available, and according to the result of the determination, obtains the reference pixel of the current block, generates an intra prediction predicted block based on the obtained reference pixel, and decodes the current block using the generated prediction block can do.
  • an image encoding method for performing intra prediction may include determining whether each of a left block and an upper block of a current block is available for a reference pixel configuration of a current block. Selecting the most probable mode (MPM) candidate group based on the determined result, determining the redundancy of the prediction block derived from the intra prediction mode within the MPM candidate group, if it is determined that there is redundancy, The method may include selecting an MPM group using the prediction mode of the replacement block adjacent to the upper block, and performing an intra prediction mode encoding on the current block based on the selected MPM group.
  • MPM most probable mode
  • the determining of the availability may be determined as being unavailable when the left block and the upper block are present outside the image boundary or encoded by inter-screen prediction, or else available.
  • the MPM candidate group includes an intra prediction mode for a block determined to be available among the left block and an upper block, an intra prediction mode preset for the block determined to be unavailable, a planar prediction mode, and vertical. At least one of the prediction mode and the DC prediction mode may be selected.
  • redundancy when both the left block and the top block are available, the reference pixel values in two or more consecutive blocks among blocks located at the lower left, left, upper left, upper, and upper right of the current block may be used. Based on the calculated variance values, redundancy can be determined.
  • the method may include determining that there is redundancy.
  • the replacement block may be selected from neighboring blocks located at the lower left, the upper left, and the upper right of the current block.
  • the replacement block may be selected as a priority in clockwise or counterclockwise direction from one or more blocks.
  • the replacement block may be selected as a priority in a clockwise or counterclockwise direction among neighboring blocks located at the lower left, upper left and upper right of the current block.
  • the image decoding method for performing intra prediction whether the prediction mode for the current block is included in the Most Probable Mode (MPM) group from the received bit stream Extracting data for, determining, based on the data, whether the prediction mode for the current block is included in the MPM group, and if it is determined that the prediction mode for the current block is included in the MPM group, the received bit Extracting the MPM group index data of the current block from the stream, identifying a prediction mode for the current block in the MPM group based on the extracted MPM group index data, and based on the identified prediction mode, And performing intra prediction on the screen.
  • MPM Most Probable Mode
  • the MPM group determines whether or not each of the left block and the upper block of the current block is available for the reference pixel configuration of the current block, selecting a Most Probable Mode (MPM) candidate group based on the determined result; Determining the redundancy of the prediction block derived from the intra prediction mode in the MPM candidate group and if it is determined that there is redundancy, it may be selected using the prediction mode of the replacement block adjacent to the left block or adjacent to the upper block.
  • MPM Most Probable Mode
  • the determining of the availability may include determining that the left block and the upper block are unavailable when they exist outside the image boundary or encoded by inter-screen prediction, and otherwise, may be determined to be available.
  • the MPM candidate group includes an intra prediction mode for a block determined to be available among the left block and an upper block, an intra prediction mode preset for the block determined to be unavailable, a planar prediction mode, and vertical.
  • the prediction mode and the DC prediction mode may be selected.
  • determining the redundancy of the prediction block may include determining a reference pixel value in two or more consecutive blocks among blocks located at the lower left, the left, the upper left, the upper and the upper right of the current block when both the left block and the upper block are available. The determination can be made based on the dispersion value calculated for.
  • an intra prediction mode configured by referring to only boundary pixels between the unavailable block and the current block is selected and selected. If at least two of the predicted modes are included in the MPM candidate group, it may be determined that there is redundancy.
  • the replacement block may be selected from neighboring blocks located at the lower left, the upper left, and the upper right of the current block.
  • the replacement block may be selected as a priority in a clockwise or counterclockwise direction among the one or more blocks.
  • the replacement block may be selected as a priority in a clockwise or counterclockwise direction among neighboring blocks located at the lower left, upper left and upper right of the current block.
  • the one or more processors from the received bit stream, the prediction mode for the current block in the MPM group (Most Probable Mode) Extracts data about whether the MPM group is included in the prediction mode for the current block, and determines that the prediction mode for the current block is included in the MPM group based on the data. From the extracted bit stream, the MPM group index data of the current block is extracted, and then, based on the extracted MPM group index data, the prediction mode for the current block in the MPM group is checked to determine the prediction mode for the current block. Intra-prediction can be performed.
  • the MPM group determines whether or not each of the left block and the upper block of the current block is available for the reference pixel configuration of the current block, selecting a Most Probable Mode (MPM) candidate group based on the determined result; Determining the redundancy of the prediction block derived from the intra prediction mode in the MPM candidate group and if it is determined that there is redundancy, it may be selected using the prediction mode of the replacement block adjacent to the left block or adjacent to the upper block.
  • MPM Most Probable Mode
  • the determining of the availability may include determining that the left block and the upper block are unavailable when they exist outside the image boundary or encoded by inter-screen prediction, and otherwise, may be determined to be available.
  • an intra prediction mode configured by referring to only boundary pixels between the unavailable block and the current block is selected and selected. If at least two of the predicted modes are included in the MPM candidate group, it may be determined that there is redundancy.
  • the accuracy of prediction can be improved by improving the reference pixel configuration and the optimum possible mode configuration in the intra prediction.
  • FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of a video encoding apparatus according to an embodiment of the present invention.
  • FIG. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 4 is an exemplary diagram illustrating inter prediction of a P slice in an image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 5 is an exemplary diagram illustrating inter prediction of a B slice in an image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 6 is an exemplary diagram for describing a case in which a prediction block is generated in one direction in an image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 7 is an exemplary view configured from a reference picture list in an image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 8 is an exemplary diagram illustrating another example of performing inter prediction from a reference picture list in an image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 9 is an exemplary diagram for describing intra prediction in an image encoding method according to an embodiment of the present invention.
  • FIG. 10 is an exemplary diagram for explaining a prediction principle in a P slice or a B slice in an image encoding method according to an embodiment of the present invention.
  • 11 is an exemplary diagram for describing a process of obtaining a prediction block.
  • FIG. 12 is an exemplary diagram for describing a main process of an image encoding method according to an embodiment of the present invention in syntax in a coding unit.
  • FIG. 13 is an exemplary diagram for describing an example of supporting symmetric type division or asymmetric type division as in inter prediction when generating a predictive block through block matching in a current picture.
  • 15 is an exemplary diagram for describing an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
  • FIG. 16A is an exemplary diagram for describing whether reference pixels are used in consideration of an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
  • FIG. 16B is an exemplary diagram for explaining whether reference pixels are used in intra prediction according to an embodiment of the present invention, without considering a coding mode of a neighboring block.
  • 17 is still another exemplary diagram for describing an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
  • 18A is an exemplary diagram illustrating a case where an encoding mode of a neighboring block is intra prediction in intra prediction according to an embodiment of the present invention.
  • 18B illustrates an example of considering an encoding mode and a reference picture of a neighboring block in intra prediction according to an embodiment of the present invention.
  • 18C is another exemplary diagram for describing a case where an encoding mode of a neighboring block is not considered in intra prediction according to an embodiment of the present invention.
  • 19A is an exemplary diagram illustrating a method of obtaining a reference pixel when the available neighboring block is a block at the lower left end.
  • 19B is an exemplary diagram illustrating a method of obtaining a reference pixel when the available neighboring block is a block at the upper right end.
  • 19C is an exemplary diagram illustrating a method of obtaining a reference pixel when the available neighboring blocks are blocks at the lower left and upper right.
  • 19D is an exemplary diagram illustrating a method of acquiring a reference pixel when the available neighboring blocks are blocks at upper left and upper right.
  • FIG. 20 is a flowchart of an image encoding method according to an embodiment of the present invention.
  • 21 is an exemplary diagram illustrating an intra prediction mode of HEVC.
  • 22A is an exemplary diagram for describing a reference pixel used for current block prediction in a step of configuring a reference pixel.
  • 22B is an exemplary diagram for describing that additional pixels of a neighboring block are included in a reference pixel candidate group.
  • 23A, 23B, 24A, and 24B are exemplary diagrams for describing various mode directions with respect to a current block having a wider reference pixel that can be obtained in a reference pixel construction step.
  • 25 is a flowchart illustrating a process of determining an optimal mode for a general current prediction unit (or prediction block).
  • 26 is an exemplary diagram for determining a prediction mode for a current prediction unit (or block).
  • 27 is an exemplary diagram of grouping of prediction modes.
  • 28 to 32 are diagrams illustrating an MPM for a prediction mode using neighboring blocks other than the upper and left blocks.
  • MCM optimal mode
  • 34 is another flowchart illustrating an image encoding method of performing intra prediction according to an embodiment of the present invention.
  • first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • a video may be composed of a series of pictures, and each picture may be divided into a predetermined area such as a block.
  • the divided region may be referred to by various sizes or terms as well as a block, such as a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), and a transform unit (TU).
  • CTU coding tree unit
  • CU coding unit
  • PU prediction unit
  • TU transform unit
  • Each unit may be composed of one luminance block and two chrominance blocks, which may be configured differently according to the color format.
  • the size of the luminance block and the chrominance block may be determined according to the color format. For example, in the case of 4: 2: 0, the size of the chrominance block may have a length of 1/2 of the luminance block.
  • a picture, block, or pixel referred to for encoding or decoding the current block or the current pixel is referred to as a reference picture, a reference block, or a reference pixel.
  • the term "picture” described below may be used interchangeably with other terms having equivalent meanings, such as an image, a frame, and the like. If you grow up, you can understand
  • FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
  • the image encoding apparatus 12 and the decoding apparatus 11 may include a personal computer (PC), a notebook computer, a personal digital assistant (PDA), and a portable multimedia player (PMP). Player), PlayStation Portable (PSP: PlayStation Portable), wireless communication terminal (Wireless Communication Terminal), smart phone (Smart Phone), such as a user terminal such as a TV, or a server terminal such as an application server and a service server, etc.
  • a communication device such as a communication modem for communicating with a wired / wireless communication network, a memory 18 for storing various programs and data for encoding or decoding an image, inter or intra prediction for encoding or decoding, and executing a program. And a variety of devices including a processor (14) for operation and control The.
  • the image encoded in the bitstream by the image encoding apparatus 12 is real-time or non-real-time through the wired or wireless communication network (Network), such as the Internet, local area wireless communication network, wireless LAN network, WiBro network, mobile communication network or the like,
  • the image decoding apparatus may be transmitted to a video decoding apparatus through various communication interfaces such as a universal serial bus (USB), and may be decoded by the video decoding apparatus to restore and reproduce the video.
  • a universal serial bus USB
  • an image encoded in a bitstream by the image encoding apparatus may be transferred from the encoding apparatus to the decoding apparatus through a computer-readable recording medium.
  • FIG. 2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • the prediction unit 200 the subtraction unit 205, the transformation unit 210, the quantization unit 215, and the inverse quantization unit 220.
  • An inverse transform unit 225 an adder 230, a filter 235, a decoded picture buffer 240, and an entropy encoder 245.
  • 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, and an adder. 325, a filter unit 330, and a decoded picture buffer 335.
  • the above-described image encoding apparatus 20 and the image decoding apparatus 30 may be separate apparatuses, but may be made of one image encoding and decoding apparatus, depending on the implementation.
  • the predictor 200, the inverse quantizer 220, the inverse transform unit 225, the adder 230, the filter unit 235, and the memory 240 of the image encoding apparatus 20 may perform the image in the order described.
  • Descriptor 310, inverse quantizer 315, inverse transform unit 320, adder 325, filter unit 330 and memory 335 are at least the same as the elements of the decoding device 30. It may be implemented to include a structure or to perform at least the same function.
  • the entropy encoder 245 may correspond to the entropy decoder 305 when the function is reversed. Therefore, in the following detailed description of the technical elements and their operation principle, overlapping description of the corresponding technical elements will be omitted.
  • the image decoding apparatus 30 corresponds to a computing device that applies the image encoding method performed by the image encoding apparatus 20 to the decoding, the following description will focus on the image encoding apparatus 20.
  • the computing device may include a memory for storing a program or software module for implementing an image encoding method and / or an image decoding method, and a processor connected to the memory and executing a program.
  • the image encoding apparatus may be referred to as an encoder, and the image decoding apparatus may be referred to as a decoder.
  • the video encoding apparatus 20 may further include a divider.
  • the divider divides the input image into blocks (M ⁇ N) having a predetermined size.
  • M or N is any natural number of 1 or more.
  • the divider may include a picture divider and a block divider.
  • the size or shape of a block may be determined according to the characteristics and resolution of an image, and the size or shape of a block supported through the picture divider may be an M ⁇ N square shape in which the horizontal and vertical lengths are represented by an exponential power of 2 (256x256). , 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, etc.) or M ⁇ N rectangular shape.
  • the input image may be divided into 256x256 for a high resolution 8k UHD video, 128x128 for a 1080p HD video, and 16x16 for a WVGA video.
  • Information about the size or shape of such a block may be set in units of a sequence, a picture, a slice, and the like, and related information may be transmitted to the decoder. That is, it may be set in a sequence parameter set, a picture parameter set, a slice header, or a combination thereof.
  • a picture refers to a series of luminance (Y) components or entire luminance + chrominance (Y, Cb, Cr) components in a scene or picture, and a range of one picture is one frame or one field in some cases.
  • a slice may refer to one independent slice segment and multiple dependent slice segments that exist in the same access unit.
  • An access unit refers to a set of network abstraction layer (NAL) units associated with one coded picture.
  • the NAL unit is a syntax structure that organizes video compression bitstreams in a network-friendly format in the H.264 / AVC and HEVC standards. It is common to configure one slice unit as one NAL unit, and the system standard generally regards a NAL or a set of NALs constituting one frame as one access unit.
  • the information about the block size or the shape may be an explicit flag.
  • the block shape information, one length information when the block is square, and the rectangular shape may be rectangular.
  • each length information or difference value information between the horizontal length and the vertical length may be included.
  • the relevant information may be transmitted to the decoding apparatus by encoding in various ways.
  • information about mi or nj may be transmitted.
  • M and N are different
  • ) may be transmitted.
  • information about im or nj may be transmitted. Can be.
  • the encoder or the decoder may follow a basic setting prepared in advance.
  • the block shape may be set to a square shape which is a basic setting.
  • the step of checking the block size information in detail, in the step of checking the block size information through the difference value from the minimum size allowed for splitting (Minblksize) as in the above example, the syntax related to the difference value may be confirmed, but the minimum size allowed for splitting is possible. If the syntax related to (Minblksize) cannot be determined, it can be obtained from the default setting related to the minimum allowed partition size (Minblksize).
  • the size or shape of the block in the picture splitter may be implicitly determined according to the explicit transmission of related information from the encoder or the decoder or the characteristics and resolution of the image.
  • a block divided and determined through the picture divider may be used as a basic coding unit.
  • the block divided and determined through the picture splitter may be a minimum unit constituting a higher level unit such as a picture, a slice, a tile, and the like, and may be a coding block, a prediction block, or a transform block.
  • But may be a maximum unit of a block such as a quantization block, an entropy block, an inloop filtering block, and the like, but some blocks are not limited thereto and may be exceptions.
  • some may be applied in units larger than the block size described above, such as an in-loop filtering block.
  • the block partitioner performs partitioning on blocks such as encoding, prediction, transform, quantization, entropy, and in-loop filter.
  • the divider may be included in each component to perform a function.
  • the transform unit 210 may include a transform block divider and a quantization block 215.
  • the size or shape of the initial block of the block divider may be determined by the result of dividing the previous step or the higher level block. For example, in the case of an encoding block, a block obtained through the picture division unit as a previous step may be set as an initial block. Alternatively, in the case of a prediction block, a block obtained through a splitting process of an encoding block that is a higher level of the prediction block may be set as an initial block.
  • a block obtained through a splitting process of an encoding block that is a higher level of the transform block may be set as an initial block.
  • the condition for determining the size or shape of the initial block is not always fixed and there may be cases where some changes or exceptions.
  • the split state of the previous step or higher level block for example, the size of the coding block, the shape of the coding block, etc.
  • the setting condition of the current level for example, the size of the supported transform block, the shape of the transform block, etc.
  • Each of the combinations of at least one or more factors may affect the splitting operation of the current level (dividability or splittable block type, etc.).
  • the block partitioner may support a quadtree based partitioning scheme. That is, in the block before dividing, the block may be divided into four blocks each having a length of 1/2 each of the width and length. This is based on the original block (dep_0), the allowable division depth limit (dep_k, k is the number of division allowances, and the block size when the allowable division depth limit (dep_k) is (M >> k, N >> k)) Partitioning can be done repeatedly.
  • the quad-tree partition and the binary-tree partition may be symmetric partitions or asymmetric partitions, which may be determined depending on the encoder or decoder. In the video encoding method of the present invention will be described mainly in the symmetric division method.
  • the division flag div_flag may indicate whether each block is divided. If a value is 1, division is performed. If a value is 0, division is not performed. Alternatively, if the value is 1, division may be performed and additional division may be performed. If the value is 0, no division may be allowed without further division. Depending on conditions such as the minimum allowable division size and the allowable depth limit, the flag may consider only whether to divide or not to consider additional division.
  • the partition flag can be used in quadtree partitioning and also in binary tree partitioning.
  • the splitting direction may be one of a partition depth, a coding mode, a prediction mode, a size, a shape, a type (encoding, prediction, transform, quantization, entropy, in-loop filter, etc.) And at least one or more of the following factors, such as slice type, splitting allowable depth limit, splitting allowable minimum and maximum size, or a combination thereof.
  • the division flag only the width of the block may be divided into 1/2 or the length of 1/2 according to the division direction. For example, suppose that a block is M ⁇ N (M> N), which supports horizontal splitting when M is larger than N, and that the current splitting depth (dep_curr) is smaller than the splitting allowable depth limit to allow further splitting.
  • the division flag may be allocated with 1 bit, and if the corresponding value is 1, horizontal division may be performed, and if the division flag is 0, the division flag may no longer be divided.
  • the split depth may have one split depth for quad tree and binary tree splits, or each split depth for quad tree and binary tree splits.
  • the splitting allowance depth limit may include one splitting allowance depth limit in quad tree and binary tree splitting, and each splitting allowable depth limit in quadtree and binary tree splitting.
  • the above partition flag is assigned 1 bit, and if the value is 1, vertical partitioning is performed. If 0, no partitioning is performed.
  • flags (div_h_flag, div_v_flag) for horizontal division or vertical division may be supported, and binary division may be supported according to the flag.
  • the horizontal split flag (div_h_flag) or vertical split flag (div_v_flag) can indicate whether each block is split horizontally or vertically. If the horizontal split flag (div_h_flag) or vertical split flag (div_v_flag) is 1, horizontal or vertical split is performed. If 0, no horizontal or vertical division is performed. Alternatively, if each flag is 1, horizontal or vertical division may be performed, and horizontal or vertical division may be further performed. If the value is 0, horizontal or vertical division may not be performed, and further horizontal or vertical division may not be allowed. .
  • the flag may consider whether to divide or not to further divide depending on conditions such as a minimum allowable division size and a limited allowable depth limit.
  • a flag (div_flag / h_v_flag) for horizontal division or vertical division may be supported, and binary division may be supported according to the flag.
  • the division flag div_flag may indicate whether the image is divided horizontally or vertically, and the division direction flag h_v_flag may indicate the horizontal or vertical division direction. If the division flag div_flag is 1, division is performed. Horizontal or vertical division is performed according to the division direction flag h_v_flag. If 0, division or division is not performed.
  • the value is 1, horizontal or vertical splitting is performed according to the split direction flag (h_v_flag), and horizontal or vertical splitting is possible. If the value is 0, no horizontal or vertical splitting is performed, and further horizontal or vertical splitting is performed. Can be considered as not allowed.
  • the flag may consider whether to divide or not to further divide depending on conditions such as a minimum allowable division size and a limited allowable depth limit.
  • Such a split flag can also support horizontal and vertical splits, and can support binary tree splits according to the flags.
  • the division direction is predetermined, only one division flag of the two may be used or both division flags may be used as in the above example.
  • the possible block type may be divided into one of M ⁇ N, M / 2 ⁇ N, M ⁇ N / 2, and M / 2 ⁇ N / 2.
  • the flag may be encoded as 00, 01, 10, 11 (in the order of div_h_flag / div_v_flag).
  • the divided block shape may be divided into M ⁇ N, M / 2 ⁇ N, and M ⁇ N / 2, in which case the above flag is encoded as 00, 01, 10 (in the order of div_h_flag / div_v_flag) or , (in the order of div_flag / h_v_flag. h_v_flag is a flag indicating that the division direction is horizontal or vertical).
  • the overlap may mean that the horizontal division and the vertical division are performed at the same time.
  • the above-described quadtree splitting and binary tree splitting may be used alone or mixed according to the settings of the encoder or the decoder. For example, quadtree or binary tree splitting may be determined according to the block size or shape.
  • binary tree splitting may be supported when the size of the block M ⁇ M is greater than or equal to the block splitting threshold Thrblksize, and quadtree splitting may be supported when smaller.
  • the quad tree split is supported.
  • Binary tree splitting may be supported if M or N of (M ⁇ N) is less than or equal to the second splitting allowable maximum size Maxblksize2 and greater than or equal to the second splitting allowable minimum size Minblksize2. If the first split support range and the second split support range, which can be defined as the split allowable maximum size and the split allowable minimum size, overlap, the first or second splitting method is preferred according to the setting of the sub-or decoder. A ranking can be given.
  • the first division method may be quadtree division
  • the second division method may be binary tree division.
  • the first split minimum size Minblksize1
  • the second split maximum size Maxblksize2
  • the pre-split block is 64 ⁇ 64
  • the first split range and the second split range are included. Both belong to quad tree partition and binary tree partition.
  • the priority is given as the first division method (quad tree division in this example) according to a preset setting, when the division flag (div_flag) is 1, quad tree division is performed, and further quad tree division is possible, and when 0 Does not perform quad-tree splitting, and can be considered to no longer perform quad-tree splitting.
  • the flag may consider only whether to divide or not to consider additional division. If the partition flag div_flag is 1, the partition is divided into four blocks having a size of 32 ⁇ 32, and thus the quadtree split may be continued since the partition flag div_flag is larger than the first allowable minimum partition size Minblksize1. If 0, no additional quadtree splitting is performed, and since the current block size (64 ⁇ 64) is in the second splitting support range, binary tree splitting may be performed. If the division flag (in the order of div_flag / h_v_flag) is 0, the division is no longer performed. In the case of 10 or 11, the division flag may be horizontally divided or vertically divided.
  • the priority of the splitting method may be determined according to at least one or more of a slice type, an encoding mode, a luminance and a chrominance component, or a combination thereof.
  • various settings may be supported according to luminance and color difference components.
  • the quad tree or binary tree partition structure determined from the luminance component may be used as it is without additional information or decoding in the color difference component.
  • quad tree + binary tree may be supported for the luminance component and quad tree division for the chrominance component.
  • quad tree plus binary tree division may be supported in the luminance and chrominance components, but the division support range may or may not be equal to or proportional to the luminance and chrominance components.
  • the division support range of the color difference component may be N / 2 of the division support range of the luminance component.
  • I slice can support quad tree splitting
  • P slice can support binary tree splitting
  • B slice can support quad tree + binary tree splitting
  • quad tree splitting and binary tree splitting may be configured and supported according to various conditions.
  • the above examples are not specific only to the above-described cases, and may include cases where conditions of each other are reversed, may include one or more factors or combinations thereof mentioned in the above examples, and modifications may be made as other examples.
  • the above-mentioned division allowance depth limit may be determined according to at least one or more factors or a combination thereof in a division scheme (quad tree, binary tree), slice type, luminance and color difference component, encoding mode, and the like.
  • the division support range may be determined according to at least one factor or a combination thereof in a division scheme (quad tree, binary tree), slice type, luminance and chrominance component, encoding mode, and the like.
  • the maximum value and the minimum value are composed of exponential powers of k (assuming k is 2)
  • the exponential information of the maximum value and the minimum value may be encoded and transmitted to the decoding apparatus through various binarizations.
  • the difference between the exponent of the maximum value and the minimum value may be transmitted.
  • the transmitted information may be information on the difference between the index value of the minimum value and the index value.
  • information related to a flag may be generated and transmitted in units of a sequence, a picture, a slice, a tile, a block, and the like.
  • the block partition information may be represented by a quad tree, a binary tree, or a mixture of two tree methods.
  • the partition flag is encoded by various methods such as unary binarization and truncated unary binarization to decode related information. Can be delivered to the device.
  • the bitstream structure of the partition flag for representing partition information of the block may be selected from one or more scanning methods. For example, a bitstream of splitting flags may be configured based on a split depth order (from dep0 to dep_k), and a bitstream of splitting flags may be configured based on splitting.
  • the segmentation depth ordering method after obtaining segmentation information at the current level depth based on the first block, the segmentation information is obtained at the next level depth. This means a method of preferentially acquiring the additional partition information. In addition to this, another scan method not included in the above example may be included and selected.
  • the block dividing unit may generate and express index information of a predetermined block candidate group of a predetermined type instead of the above-described dividing flag.
  • the form of the block candidate group is, for example, a form of a divided block that can be included in a pre-division block, such as M ⁇ N, M / 2 ⁇ N, M ⁇ N / 2, M / 4 ⁇ N, 3M / 4 ⁇ N, M ⁇ N / 4, M ⁇ 3N / 4, M / 2 ⁇ N / 2, and the like.
  • the index information on the split block shape may be encoded through various methods such as fixed length binarization, short cut binarization, and truncated binarization.
  • the partition depth, encoding mode, prediction mode, size, shape, and type of the block may be combined with at least one or a combination of factors such as slice type, split depth limit, split minimum and maximum size. Accordingly, the split block candidate group may be determined.
  • candidate list1 is selected as (M ⁇ N, M / 2 ⁇ N / 2), (M ⁇ N, M / 2 ⁇ N, M ⁇ N / 2, M / 2 ⁇ N / 2) as candidate list2, (M ⁇ N, M / 2 ⁇ N, M ⁇ N / 2) as candidate list3, (M ⁇ N, M / 2 ⁇ N, M ⁇ N / 2, M / 4 ⁇ N, 3M / 4 ⁇ N, Assume that M ⁇ N / 4, M ⁇ 3N / 4, and M / 2 ⁇ N / 2 are candidate list4.
  • a split block candidate of candidate list3 may be supported when (M ⁇ N).
  • the split block candidate of the candidate list2 when M or N of M ⁇ N is greater than or equal to the boundary value blk_th, the split block candidate of the candidate list2 may be supported, and when the M ⁇ N is smaller than the boundary value blk_th, the split block candidate of the candidate list4 may be supported.
  • the candidate candidates when M or N is greater than or equal to the first boundary value blk_th_1, the candidate candidates are divided block candidates of the candidate list1 when the smaller or greater than or equal to the second boundary value blk_th_2 but smaller than the first boundary value blk_th_1.
  • the split block candidate of list4 when the split block candidate of list2 is smaller than the second boundary value blk_th_2, the split block candidate of candidate list4 may be supported.
  • a split block candidate of candidate list2 may be supported when the encoding mode is intra prediction, and a split block candidate of candidate list4 may be supported when inter prediction.
  • the bit structure according to binarization may be the same or different in each block.
  • the bit structure according to the binarization of the corresponding block candidate may vary.
  • a block shape according to horizontal division that is, M ⁇ N, M ⁇ N / 2, and M / 2 ⁇ N / 2 may be supported, and the divided block candidate group (M ⁇ N, M / 2 ⁇ N, M ⁇ N / 2, M / 2 ⁇ N / 2) and the binary bits of the index according to M ⁇ N / 2 of the current condition may be different.
  • a block used in encoding, prediction, transform, quantization, entropy, in-loop filtering, or the like information about the partition and the shape of the block may be expressed using one of a partition flag or a partition index method.
  • a block size limit and a partitioning allowance depth limit for partitioning and block shape support may be different.
  • encoding or decoding may be performed according to prediction block determination, transform block determination, quantization block determination, entropy block determination, in-loop filter determination, and the like.
  • the order of the above encoding or decoding process is not always fixed, some order may be changed or excluded.
  • the size and shape of each block may be determined according to the coding cost for each candidate of the size and shape of the block, and the segmentation related information such as the image data of each block and the size and shape of each block may be encoded.
  • the prediction unit 200 may be implemented using a prediction module, which is a software module, and may generate a prediction block by using an intra prediction method or an inter prediction method for a block to be encoded.
  • the prediction block is a block that is understood to closely match the block to be encoded in view of pixel difference, and may be determined by various methods including sum of absolute difference (SAD) and sum of square difference (SSD).
  • SAD sum of absolute difference
  • SSD sum of square difference
  • various syntaxes that may be used when decoding the image blocks may be generated.
  • the prediction block may be classified into an intra picture block and an inter picture block according to an encoding mode.
  • Intra prediction is a prediction technique using spatial correlation, and refers to a method of predicting a current block using reference pixels of blocks previously encoded, decoded, and reconstructed in the current picture. That is, in intra prediction, a brightness value reconstructed by prediction and reconstruction may be used as a reference pixel in an encoder and a decoder. Intra-picture prediction can be effective for flat regions with continuity and regions with constant orientation, and can be used for the purpose of guaranteeing random access and preventing error spread because of using spatial correlation.
  • Inter prediction uses a compression technique that removes duplication of data by using temporal correlation with reference to an image encoded in one or more past or future pictures. That is, the inter prediction may generate a prediction signal having high similarity by referring to one or more past or future pictures.
  • the encoder using inter prediction may search for a block having a high correlation with the block to be currently encoded in the reference picture, and transmit position information and a residual signal of the selected block to the decoder, and the decoder may select information of the transmitted image.
  • a reconstructed image may be configured by generating the same prediction block as the encoder and compensating the transmitted residual signal.
  • 4 is an exemplary diagram illustrating inter prediction of a P slice in an image encoding and decoding method according to an embodiment of the present invention.
  • 5 is an exemplary diagram illustrating inter prediction of a B slice in an image encoding and decoding method according to an embodiment of the present invention.
  • the inter prediction may generate an encoding block because a prediction block is generated from a previously encoded picture having a high correlation in time.
  • Current (t) may mean a current picture to be encoded and is based on a temporal flow of a picture picture or a picture order count (POC) based on a first temporal distance t before a POC of the current picture.
  • POC picture order count
  • a second reference picture t-2 having a second temporal distance t-2 before the first temporal distance t-1 having the first reference picture t-1.
  • inter-picture prediction that can be employed in the video encoding method of the present embodiment is performed by selecting the current block of the current picture (t) and the reference pictures t-1 and t-2.
  • motion estimation may be performed to find an optimal predicted block from reference pictures t-1 and t-2 with previously encoded blocks having high correlation.
  • an interpolation process is performed based on a structure in which at least one subpixel is arranged between two adjacent pixels as needed, and after finding an optimal prediction block, motion compensation is performed to find a final prediction block. You can find
  • inter-picture prediction that may be employed in the image encoding method of the present embodiment includes reference pictures that have already been encoded, which are present in both directions in time, based on the current picture (t). t-1, t + 1) may be generated. In addition, two prediction blocks may be generated from one or more reference pictures.
  • a reference picture list may be configured differently to generate a prediction block from the reference picture list. Basically, a reference picture existing before the current picture in time is allocated to list 0, and a reference picture existing after the current picture is assigned to list 1 and managed. When constructing reference picture list 0, if the reference picture allowance number of reference picture list 0 cannot be filled, reference pictures existing after the current picture may be allocated. Similarly, when configuring the reference picture list 1, if the number of reference pictures in the reference picture list 1 is not satisfied, the reference picture existing before the current picture may be allocated.
  • FIG. 6 is an exemplary diagram for describing a case in which a prediction block is generated in one direction in an image encoding and decoding method according to an embodiment of the present invention.
  • a prediction block may be found from previously encoded reference pictures t-1 and t-2, and in addition, the current picture ( In t)), the prediction block can be found from the region where encoding is already completed.
  • the image encoding and decoding method may configure a syntax for information related to a prediction candidate by mixing with an intra prediction mode.
  • n (n is any natural number) supports an intra prediction mode
  • one mode is added to the intra prediction candidate group to support n + 1 modes, and 2 M-1 ⁇ n + 1
  • a prediction mode may be encoded using M fixed bits satisfying ⁇ 2M .
  • it may be implemented to select from candidate groups of a probable prediction mode, such as most probable mode (MPM) of high efficiency video coding (HEVC). Further, encoding may be preferentially performed at a higher level of prediction mode encoding.
  • MPM most probable mode
  • HEVC high efficiency video coding
  • the image encoding method of this embodiment may configure syntax for related information by mixing with the inter prediction mode.
  • the motion or displacement related information may be used as additional related prediction mode information.
  • the motion or motion related information may include optimal candidate information among various vector candidates, difference between the optimal candidate vector and the actual vector, reference direction, reference picture information, and the like.
  • FIG. 7 is an exemplary view configured from a reference picture list in an image encoding and decoding method according to an embodiment of the present invention.
  • 8 is an exemplary diagram illustrating another example of performing inter prediction from a reference picture list in an image encoding and decoding method according to an embodiment of the present invention.
  • the image encoding method according to the present embodiment may perform inter prediction on a current block of a current picture (current (t)) from reference picture lists 0 and 1 respectively. have.
  • the reference picture list 0 may be configured as a reference picture before the current picture t, and t-1 and t-2 are picture order counts of the current picture t, respectively. Reference pictures having a first temporal distance t-1 and a second temporal distance t-2 before Count and POC are indicated.
  • reference picture list 1 may be configured as a reference picture after the current picture t, where t + 1 and t + 2 are the first temporal distance t + 1 after the POC of the current picture t, respectively. ), And reference pictures having a second temporal distance t + 2.
  • reference picture list construction show an example of configuring a reference picture list with reference pictures having a difference in temporal distance (based on POC in this example) of 1, but differently configuring the time difference between reference pictures. You may. That is, it means that the index difference between the reference pictures and the temporal distance difference between the reference pictures may not be proportional.
  • the list construction order may not be configured on a temporal distance basis. Details of this can be found in an example of configuring a reference picture list to be described later.
  • Prediction may be performed from reference pictures in the list according to the slice type (I, P, or B).
  • the current picture may be added to a reference picture list (reference list 0 and reference list 1) to perform encoding by inter prediction. .
  • the current picture t may be added to the reference picture list 0 or the current picture t may be added to the reference picture list 1. That is, the reference picture list 0 may be configured by adding a reference picture having a temporal distance t to the reference picture before the current picture t, and the reference picture list 1 may be configured to add a time to the reference picture after the current picture t. It may be configured by adding a reference picture that is a typical distance t.
  • the reference picture before the current picture can be assigned to reference picture list 0, and then the current picture (t) can be assigned, and when constructing reference picture list 1, after the current picture
  • the reference picture may be allocated to reference picture list 1 and then the current picture t may be allocated.
  • the current picture (t) may be assigned, and then the reference picture before the current picture may be assigned, and when configuring reference picture list 1, the current picture (t) is allocated, and then the current picture. Subsequent reference pictures can be assigned.
  • a reference picture before the current picture may be allocated, followed by a reference picture after the current picture, and a current picture t.
  • a reference picture after the current picture may be allocated, followed by a reference picture before the current picture, and a current picture t.
  • the above examples are not specific only to the above-described case, and may include cases where conditions of each other are reversed, and other examples may be modified.
  • Whether to include the current picture in each reference picture list is the same setting for the encoder or decoder.
  • Information on this may be transmitted in units of a sequence, a picture, a slice, and the like.
  • Information about this may be encoded through a method such as fixed length binarization, short cut binarization, or cut binarization.
  • the image encoding and decoding method selects a prediction block by performing block matching on the current picture t, and constructs a reference picture list including related information about the prediction block.
  • a reference picture list including related information about the prediction block.
  • the setting for each list configuration order and rules and the allowable number of reference pictures in each list may be different. This includes whether the current picture is included in the list (whether or not the current picture is included as the reference picture in the inter prediction). ), Slice type, list reconstruction parameter (may be applied to lists 0 and 1, or may be applied to lists 0 and 1 together), position in picture group (GOP), temporal hierarchical information (temporal id) It may be determined according to at least one or more of the factors, or a combination thereof, and may explicitly transmit related information in units of a sequence, a picture, and the like.
  • the reference picture list 0 may follow the list construction rule A.
  • the reference picture list 0 including the current picture in the list may be configured in the list.
  • Rule B, reference picture list 1 can follow list construction rule C, reference picture list 0 that does not contain the current picture can follow list construction rule D, reference picture list 1 can follow list construction rule E, list construction rule B and D, C and E may be the same.
  • the list construction rule may be configured in the same or modified manner as described in the reference picture list construction example.
  • the allowable number of the first reference pictures may be set, and if not included, the allowable number of the second reference pictures may be set.
  • the first reference picture allowable number and the second reference picture allowable number may be the same as or different from each other, and a difference between the first reference picture allowable number and the second reference picture allowable number may be set to 1 as a default setting.
  • all reference pictures may be a list reconstruction candidate group in slice A, and only some reference pictures may be included in the list reconstruction candidate group in slice B.
  • slice A or B may be classified into whether the current picture is included in the list, temporal hierarchical information, slice type, position in a group of pictures (GOP), and the like, and is divided into whether or not the candidate picture is included in the reference picture. It may be determined by a picture order count (POC) or reference picture index, a reference prediction direction (before and after the current picture), whether a current picture, and the like.
  • POC picture order count
  • reference picture index a reference prediction direction (before and after the current picture), whether a current picture, and the like.
  • inter-screen prediction since the reference block encoded by inter-screen prediction in the current picture can be used, inter-screen prediction can be allowed or used even in the motion prediction of the I slice.
  • the index allocation or the list construction order may be changed according to the slice type.
  • the amount of bits in video encoding can be reduced by binarization (fixed-length binarization, short cut-off binarization, truncated binarization, etc.) which makes the reference picture allowable number C of the reference picture list the maximum.
  • the amount of bits in the video encoding can be reduced by using.
  • the priority setting of the current picture may be configured in the same or modified manner as described in the reference picture list configuration example.
  • the prediction block may be generated through the existing inter prediction, but the inter prediction information may be expressed by excluding the reference picture information from the motion information in the inter prediction mode.
  • the method of performing block matching on the current picture may determine whether to support the block type according to the slice type. For example, block matching in the current block may be set to be supported in the I slice but not in the P slice or the B slice, and other examples may be modified.
  • the method of supporting block matching in the current picture may be determined in units of pictures, slices, tiles, or the like, or may be determined according to a position in a group of pictures (GOP), temporal layer information (temporal ID), and the like. have.
  • Such configuration information may be transmitted in units of a sequence, a picture, a slice, etc. from an image encoding process or an encoder to a decoder.
  • Setting information in units can be prioritized. For example, if the same or similar configuration information is processed in a sequence, a picture, or a slice, the picture unit may have priority rather than the sequence unit and the slice unit may have priority.
  • FIG. 9 is an exemplary diagram for describing intra prediction in an image encoding method according to an embodiment of the present invention.
  • the intra prediction method may include reference pixel padding, reference sample filtering, intra prediciton, and boundary filtering. It may include a series of steps.
  • the reference pixel filling step may be an example of a reference pixel configuring step
  • the reference pixel filtering step may be referred to as a reference pixel filter unit
  • the intra prediction may include a prediction block generation step and a prediction mode encoding step
  • boundary filtering May be an example of one embodiment of the post-processing filter step.
  • the intra prediction performed in the image encoding apparatus of the present embodiment may include a reference pixel construction step, a reference pixel filtering step, a prediction block generation step, a prediction mode encoding step, and a post-processing filtering step.
  • a reference pixel construction step may include a reference pixel construction step, a reference pixel filtering step, a prediction block generation step, a prediction mode encoding step, and a post-processing filtering step.
  • a reference pixel construction step may include a reference pixel construction step, a reference pixel filtering step, a prediction block generation step, a prediction mode encoding step, and a post-processing filtering step.
  • reference pixel configuration step reference pixel filtering step, prediction block generation step, prediction mode encoding step, and post-processing filtering step may be implemented in a form in which a processor connected to the memory stores software modules stored in the memory. Therefore, in the following description, for convenience of description, a functional unit generated by a combination of a software module implementing each step and a processor executing the same or a component performing a function of the functional unit may be referred to as a reference pixel component, a reference pixel filter, The prediction block generator, the prediction mode encoder, and the post-processing filter will be referred to as execution subjects of each step.
  • the reference pixel component configures the reference pixel to be used for prediction of the current block through filling the reference pixel. If the reference pixel does not exist or is unavailable, the reference pixel fill can be used for the reference pixel by copying a value from the available nearby pixel.
  • a decoded picture buffer (DPB) may be used to copy the value.
  • the intra prediction may perform the prediction using reference pixels of blocks previously encoded in the current picture.
  • neighboring blocks of the current block that is, adjacent pixels such as upper left, upper left, lower left, upper and upper right blocks
  • the candidate group of the neighboring block for the reference pixel is only an example of a raster scan or a z-scan according to the coding order of the blocks, and a scan such as an inverse z-scan may be performed.
  • adjacent pixels such as right, bottom right, and bottom blocks may be used as reference pixels in addition to the above blocks.
  • additional pixels other than the immediately adjacent pixel may be used in combination with the replacement or the existing reference pixel according to the staged configuration of the intra prediction.
  • reference pixels in decimal units may be generated by linear interpolation of reference pixels in integer units.
  • Modes for performing prediction through reference pixels located at integer units include some modes having vertical, horizontal, 45 degree, and 135 degree, and generating the reference pixel in a fractional unit is necessary for the above prediction modes. You can't.
  • Prediction modes with other directions except for the prediction mode are interpolated with an exponential power of 1/2, such as 1/2, 1/4, 1/8, 1/16, 1/32, and 1/64. It may have a precision or may have a precision of multiples of 1/2. This is because interpolation precision may be determined according to the number of supported prediction modes or the prediction direction of the prediction mode.
  • a fixed interpolation precision may always be supported in a picture, slice, tile, block, etc., or adaptive interpolation precision may be supported according to the size of a block, the shape of a block, the prediction direction of a supported mode, and the like.
  • the prediction direction of the mode may be expressed as inclination information or angle information of the direction indicated by the mode on a specific line reference (for example, the positive and negative x-axes on the coordinate plane).
  • interpolation may be performed through directly adjacent integer pixels, other interpolation methods may be supported.
  • One or more filter types and the number of taps for interpolation can support, for example, a 6-tap Wiener filter, an 8-tap Kalman filter, etc., and can determine which interpolation to perform based on the size of the block, the prediction direction, etc. have.
  • the related information may be transmitted in units of a sequence, a picture, a slice, a block, and the like.
  • the reference pixel filter unit may filter the reference pixel for the purpose of improving prediction efficiency by reducing deterioration remaining in the encoding process.
  • the reference pixel filter unit may implicitly or explicitly determine the type of the filter and whether the filtering is applied according to the size, shape, and prediction mode of the block. That is, even if the filter of the same tap (tap), the filter coefficient can be determined differently according to the filter type. For example, a three tap filter such as [1,2,1] / 4, [1,6,1] / 8 may be used.
  • the reference pixel filter unit may determine whether to apply filtering by determining whether to send additional bits or not. For example, in an implicit case, the reference pixel filter unit may determine whether filtering is applied based on characteristics (dispersion, standard deviation, etc.) of pixels in the neighboring reference block.
  • the reference pixel filter unit may determine whether filtering is applied when a related flag satisfies a preset hiding condition, such as a residual coefficient and an intra prediction mode.
  • a preset hiding condition such as a residual coefficient and an intra prediction mode.
  • the number of taps of the filter is, for example, a 3-tap such as [1,2,1] / 4 in a small block blk, and [2,3,6,3,2] / 16 in a large block blk.
  • the same 5-tap may be set, and the number of applications may be determined by whether to perform filtering, filtering once, or filtering twice.
  • the reference pixel filter unit may basically apply filtering to the nearest reference pixel of the current block.
  • additional reference pixels may also be considered in the filtering process. For example, filtering may be applied to the additional reference pixels by replacing the nearest reference pixel, and filtering may be applied to the additional reference pixels by being mixed with the nearest reference pixel.
  • the filtering may be applied fixedly or adaptively, which may include a size of a current block or a size of a neighboring block, a coding mode of a current block or a neighboring block, block boundary characteristics of a current block and a neighboring block (for example, a boundary of a coding unit).
  • Cognitive transformation unit, etc. the prediction mode or direction of the current block or neighboring block, the prediction method of the current block or neighboring block, the quantization parameter, etc. may be determined according to at least one or a combination thereof. . The decision on this may have the same setting in the encoder or the decoder (implicit), or may be determined in consideration of the encoding cost and the like (explicit).
  • the applied filter is a low pass filter, and the number of filter taps, filter coefficients, filter flag encoding, and the number of times the filter is applied may be determined according to various factors described above.
  • the information on the sequence, picture, Settings can be made in units such as slices and blocks, and related information can be transmitted to the decoder.
  • the prediction block generator may extrapolate or extrapolate the reference pixel through intra-prediction, interpolation such as an average value (DC) or planar mode of the reference pixel, or copy the reference pixel. Prediction block may be generated.
  • one or more prediction pixels may be generated by copying one reference pixel, or one or more prediction pixels may be generated by copying one or more reference pixels, and the number of copied reference pixels is copied. It may be equal to or less than the number of prediction pixels.
  • the prediction method may be classified into a directional prediction method and a non-directional prediction method, and in detail, the directional prediction method may be classified into a straight directional method and a curved directional method.
  • the linear directional method employs an extrapolation or extrapolation method, but the pixels of the prediction block are generated by reference pixels placed on the prediction direction line
  • the curve directional method employs an extrapolation or extrapolation method, but the pixels of the prediction block are reference lines on the prediction direction line. This means that the pixel is generated through the pixel, but the partial prediction direction of the pixel unit is allowed in consideration of the detailed direction of the block (for example, the edge ⁇ Edge>).
  • intervals between adjacent prediction modes may be equal or unequal, which may be determined according to the size or shape of a block. For example, when the current block acquires a block having the size and shape of M ⁇ N through the block splitter, when M and N are the same, the interval between prediction modes may be equal, and when M and N are different. The interval between prediction modes may be uneven. As another example, when M is larger than N, the vertically oriented modes may allocate finer spacing between prediction modes close to the vertical mode (90 degrees), and may allocate a wider spacing to a prediction mode far from the vertical mode.
  • the horizontally oriented modes can allocate finer spacing between prediction modes closer to the horizontal mode (180 degrees), and wider spacing to the far prediction mode to the horizontal mode.
  • the above examples are not specific only to the above-described case, and may include cases where conditions of each other are reversed, and other examples may be modified.
  • the interval between the prediction modes may be calculated based on a numerical value indicating the direction of each mode, and the direction of the prediction mode may be digitized by the slope information or the angle information of the direction.
  • the prediction block may be generated by including another method using spatial correlation.
  • a reference block using an inter prediction method such as motion search and compensation may be generated as a prediction block using the current picture as a reference picture.
  • the prediction block generation step may generate a prediction block using a reference pixel according to the prediction method. That is, the prediction block may be generated by directional prediction or non-directional prediction method such as extrapolation, interpolation, copying, and average of the existing intra prediction mode according to the prediction method, and the prediction block may be generated by using the inter prediction method. And other additional methods may be used.
  • the intra prediction method may be supported under the same configuration of an encoder or a decoder and may be determined according to a slice type, a block size, a block shape, and the like.
  • the intra prediction may be supported according to at least one or more of the aforementioned prediction methods or a combination thereof.
  • the intra prediction mode may be configured according to the supported prediction method.
  • the number of supported intra prediction modes may be determined according to the prediction method, slice type, block size, block shape, and the like.
  • the related information may be set and transmitted in units of a sequence, a picture, a slice, a block, and the like.
  • a prediction mode of the current block may be determined as a mode in which an encoding cost according to each prediction mode is optimal in terms of encoding cost.
  • the prediction mode encoder may use one or more neighboring block modes for the current block mode prediction for the purpose of reducing the prediction mode bits. It may be included as a mode (most_probable_mode (MPM)) candidate group having a high probability of being identical to the mode of the current block, and modes of neighboring blocks may be included in the candidate group. For example, the prediction mode of blocks such as the left, upper left, lower left, upper and upper right of the current block may be included in the candidate group.
  • MPM most_probable_mode
  • the candidate group of the prediction mode is selected from among factors such as the position of the neighboring block, the priority of the neighboring block, the priority in the splitting block, the size or shape of the neighboring block, a predetermined specific mode, and the prediction mode of the luminance block (if the color difference block).
  • the related information may be transmitted in units of a sequence, a picture, a slice, a block, and the like.
  • the left block among the neighboring blocks of the current block (M ⁇ M) is divided into three divided blocks by performing quad-tree splitting at the block division unit, and M / 2 ⁇ M / 2, M /
  • the prediction mode of the M / 2 ⁇ M / 2 block may be included as the mode prediction candidate of the current block based on the block size.
  • the upper block among the neighboring blocks of the current block (N ⁇ N) is divided into three binary blocks by performing binary tree partitioning at the block partitioning unit, and N / 4 ⁇ N and N / 4 ⁇ are divided from left to right.
  • the prediction mode of the first N / 4 ⁇ N block from the left to the mode prediction candidate of the current block according to a predetermined order (priority is assigned from left to right). It may include.
  • the prediction mode of the block adjacent to the current block is a directional prediction mode
  • the prediction mode adjacent to the prediction direction of the mode (the slope information or the angle information in the direction of the mode) is included in the mode prediction candidate group of the current block.
  • the preset modes (planar, DC, vertical, horizontal, etc.) may be included in preference according to the configuration or combination of prediction modes of the neighboring blocks.
  • a prediction mode having a high frequency of occurrence among the prediction modes of the neighboring block may be preferentially included.
  • the priority may mean not only the possibility of being included in the mode prediction candidate group of the current block, but also the possibility of being assigned a higher priority or index (that is, a higher probability of allocating fewer bits during binarization) in the candidate group configuration. have.
  • the maximum number of mode prediction candidates of the current block is k
  • the left block is composed of m blocks smaller than the vertical length of the current block
  • the upper block is n blocks smaller than the horizontal length of the current block.
  • the candidate block can be filled according to a predetermined order (left to right, top to bottom) when the divided block sum (m + n) of neighboring blocks is larger than k, and the divided block sum (m + n) of neighboring block partitions.
  • the prediction mode of the neighboring block left block, upper block
  • other neighboring blocks other than the neighboring block position for example, lower left, upper left, upper right, etc.
  • the prediction mode of the same block may also be included in the mode prediction candidate group of the current block.
  • the candidate block for prediction of the mode of the current block is not limited to a specific block position, and may use prediction mode information from at least one or more blocks among blocks located at the upper left, upper left, lower left, upper and upper right.
  • the prediction mode candidate group of the current block may be configured in consideration of various factors.
  • the prediction mode encoder may be classified into a mode (MPM) candidate group (referred to as candidate group 1 in this example) and a mode candidate group (referred to as candidate group 2 in this example) having a high probability of being identical to the mode of the current block.
  • the prediction mode encoding process may vary depending on which candidate group among the candidate groups belongs to.
  • the overall prediction mode may be configured as the sum of the prediction mode of candidate group 1 and the prediction mode of candidate group 2, and the number of prediction modes of candidate group 1 and the number of prediction modes of candidate group 2 may include the total number of prediction modes, slice type, block size, It may be determined according to one or more factors or a combination thereof, such as the shape of the block.
  • the same binarization may be applied or different binarizations may be applied according to the candidate group.
  • fixed-length binarization can be applied to candidate group 1
  • short-cutting binarization can be applied to candidate group 2.
  • the number of candidate groups is given as two examples, but the mode first candidate group having a high probability of being identical to the mode of the current block, the mode second candidate group having a high probability of being identical to the mode of the current block, and the like. It is extensible, and variations thereof are also possible.
  • the post-processing filtering step performed by the post-processing filter unit may include some prediction pixels among the prediction blocks generated in the previous process in consideration of high correlation between the reference pixel adjacent to the boundary of the current block and the neighboring block and the pixels in the adjacent current block. May be replaced with a value generated by filtering one or more reference pixels adjacent to a boundary and one or more of the prediction pixels, and a value obtained by quantifying a characteristic between reference pixels adjacent to a boundary of the block (eg, a difference in pixel values). , The gradient information, etc.) may be applied to the filtering process, and the prediction pixel may be replaced with a value generated.
  • another method having a similar purpose may be used.
  • the type of filter and whether filtering is applied may be determined implicitly or explicitly, and the position and number of reference pixels and current pixels used in the post-processing filter unit, types of prediction modes applied, and the like may be determined. It can be set in an encoder or a decoder, and related information can be transmitted in units of a sequence, a picture, a slice, and the like.
  • an additional post-processing process may be performed after generating the predictive block as in the block boundary filtering.
  • the post-processing filtering is performed by considering the characteristics of the pixels of the adjacent reference block, similar to the boundary filtering, of the current block reconstructed by adding the residual signal and the prediction signal obtained through the transformation, quantization, and vice versa after the residual signal is obtained. It can also be done.
  • the prediction block is selected or obtained through the above-described process, and the information from this process may include information related to the prediction mode, and after the acquisition of the prediction block, the prediction block may be transmitted to the transformer 210 for encoding the residual signal. Can be.
  • FIG. 10 is an exemplary diagram for explaining a prediction principle in a P slice or a B slice in an image encoding method according to an embodiment of the present invention.
  • the image encoding method may include a motion estimation module and interpolation steps.
  • Information about the motion vector, the reference picture index, and the reference direction generated in the motion prediction step may be transferred to the interpolation step.
  • a value stored in a decoded picture buffer (DPB) may be used.
  • the apparatus for encoding an image may perform motion estimation to find a block similar to the current block in previously encoded pictures.
  • the image encoding apparatus may perform interpolation of the reference picture for more accurate prediction than the precision of the decimal unit.
  • the image encoding apparatus obtains a prediction block through a predictor, and the information obtained in this process includes a motion vector, a reference picture index or a reference index, and a reference direction. ), And the residual signal encoding may then be performed.
  • the intra prediction is performed on the P slice or the B slice
  • the combination scheme as shown in FIG. 9 supporting inter prediction and intra prediction can be implemented.
  • 11 is an exemplary diagram for describing a process of obtaining a prediction block.
  • the image encoding method according to the present embodiment may include reference pixel padding, reference pixel filtering, intra prediction, boundary filtering, and motion. Motion estimation, and interpolation.
  • the prediction method in the I slice may be implemented in the configuration illustrated in FIG. 11 rather than the configuration illustrated in FIG. 9. That is, the apparatus for encoding an image may use information such as a motion vector, a reference picture index, and a reference direction that occur only in the P slice or the B slice as well as the prediction mode in the I slice, to generate the predictive block.
  • information that can be partially omitted may exist due to the property that the reference picture is present. For example, when the reference picture is the current picture, the reference picture index and the reference direction may be omitted.
  • the image encoding apparatus may not require block matching up to a fractional unit due to characteristics of an artificial image, such as computer graphics, so that the encoding may be set in the encoder.
  • a unit setting such as a sequence, a picture, a slice, and the like may be possible.
  • the apparatus for encoding an image may not perform interpolation of reference pictures used for inter prediction according to a setting of an encoder, and may perform various settings such as not interpolating only when block matching is performed on a current picture. can do. That is, the image encoding apparatus of the present embodiment may set whether to interpolate the reference pictures. In this case, it may be determined whether to interpolate to all reference pictures or some reference pictures constituting the reference picture list. For example, the image encoding apparatus does not interpolate when the characteristic of the image in which the reference block exists in the current block is an artificial image and does not need to perform block matching on a decimal basis. You can operate to interpolate when you need to.
  • the apparatus for encoding an image may set whether to apply block matching to a reference picture in which interpolation is performed on a block basis. For example, if a natural image and an artificial image are mixed, an interpolation is performed on a reference picture, but when a portion of the artificial image can be searched to obtain an optimal motion vector, the unit is assumed to be an integer unit. If the motion vector can be expressed, and if the optimal motion vector can be obtained by selectively searching the portion of the natural image, the motion vector can be expressed in another predetermined unit (assuming 1/4 unit here).
  • FIG. 12 is an exemplary diagram for describing a main process of an image encoding method according to an embodiment of the present invention in syntax in a coding unit.
  • curr_pic_BM_enabled_flag means a flag that allows block matching in a current picture and may be defined and transmitted in a sequence and picture unit. In this case, a process of generating a prediction block by performing block matching in the current picture is performed between screens. This may mean a case of operating through prediction.
  • cu_skip_flag which is an inter-screen description without encoding the residual signal, is a flag supported only in a P slice or a B slice except for an I slice. In this case, when curr_pic_BM_enabled_flag is on, block matching (BM) can be supported in the inter prediction mode even in an I slice.
  • the image encoding apparatus of the present embodiment may support skip when generating a predictive block through block matching on the current picture, and may support skip even in an intra-picture technique other than block matching. And depending on the condition, it may not support skipping in the I slice. Such skipping may be determined according to the encoder setting.
  • a prediction flag may be directly restored to a reconstructed block by block matching without encoding a residual signal by connecting to prediction_unit (), which is a prediction unit, through a specific flag, if (cu_skip_flag).
  • prediction_unit which is a prediction unit
  • the apparatus for encoding an image may classify a method of using a prediction block through block matching in a current picture as an inter prediction technique, and process such division through a pred_mode_flag, which is a specific flag.
  • the image encoding apparatus may set the prediction mode to the inter prediction mode MODE_INTER if pred_mode_flag is 0, and set the intra prediction mode MODE_INTRA to 1 when the pred_mode_flag is 0.
  • the video encoding apparatus of the present embodiment may use a structure of temporal correlation although I do not use temporal correlation in the I slice.
  • part_mode means information about the size and shape of a block divided in a coding unit.
  • FIG. 13 is an exemplary diagram for describing an example of supporting symmetric type division or asymmetric type division as in inter prediction when generating a predictive block through block matching in a current picture.
  • symmetrical types such as 2N ⁇ 2N, 2N ⁇ N, and N ⁇ 2N are used as in inter prediction.
  • (symmetric) division or asymmetric division such as nL ⁇ 2N, nR ⁇ 2N, 2N ⁇ nU, and 2N ⁇ nD may be supported.
  • the various block sizes and shapes may be determined according to the division method of the block division part.
  • the image encoding method according to the present embodiment may support 2N ⁇ 2N and N ⁇ N in the same way as a prediction block type used for conventional intra prediction.
  • the block partitioning unit supports a square shape through a quadtree partitioning method or a partitioning method according to a predefined block candidate group, and in the intra prediction, a rectangular tree partitioning method or a rectangular block partitioning predefined block candidate group is also rectangular.
  • the encoder may also set whether to apply skip to only the current picture among intra prediction, whether to apply to the existing intra prediction or other new intra prediction. Information on this may be transmitted in units of a sequence, a picture, a slice, and the like.
  • the subtractor 205 may generate a residual block by subtracting pixel values of the prediction block generated from the predictor 200 from pixel values of the current block to be encoded, thereby deriving a pixel difference value.
  • the transformer 210 receives the residual block, which is the difference between the current block and the prediction block generated through the intra prediction or the inter prediction, from the subtraction unit 205 and converts the residual block into a frequency domain.
  • Each pixel of the residual block corresponds to a transform coefficient of the transform block through the transform process.
  • the size and shape of the transform block may have a size equal to or smaller than the coding unit. In addition, the size and shape of the transform block may be the same as or smaller than the prediction unit.
  • the apparatus for encoding an image may perform transform processing by combining several prediction units.
  • the size or shape of the transform block may be determined through the block divider, and may support conversion of a square shape or a rectangular shape according to the block division.
  • the block division operation may be influenced according to a transform-related setting (size, shape, etc. of a supported transform block) supported by an encoder or a decoder.
  • the size and shape of each transform block may be determined according to the encoding cost for each candidate of the size and shape of the transform block, and split information such as image data of each transform block and the size and shape of each transform block may be encoded. .
  • the transform can be transformed by a one-dimensional transform matrix.
  • Each transformation matrix may be adaptively used in horizontal and vertical units (DCT, DST, etc.). Examples of adaptive use may be determined by various factors, such as the size of the block, the shape of the block, the type of the block (luminance and color difference), the encoding mode, the prediction mode information, the quantization parameter, and the encoding information of the neighboring block.
  • a DCT based transform matrix when the prediction mode is horizontal, a DCT based transform matrix may be used in the vertical direction, and a DST based transform matrix may be used in the horizontal direction.
  • a DCT based transform matrix In the vertical case, a DCT based transform matrix may be used in the horizontal direction, and a DST based transform matrix may be used in the vertical direction.
  • the transformation matrix is not limited to that derived from the above description. Information on this may be determined using an implicit or explicit method, and may be determined based on one or more factors or combinations of factors, such as a block size, a block shape, an encoding mode, a prediction mode, a quantization parameter, encoding information of a neighboring block, and the like.
  • the related information may be transmitted in units of a sequence, a picture, a slice, a block, and the like.
  • the partial transformation or the overall transformation may be omitted in consideration of the characteristics of the image.
  • one or both of the horizontal or vertical components can be omitted. This is because, when intra prediction or inter prediction is not performed well, a large difference between the current block and the prediction block occurs (that is, when the residual component is large), the encoding loss may be large when the conversion is performed. This may be determined according to at least one or more of factors, such as coding mode, prediction mode information, block size, block type, block type (luminance and color difference), quantization parameter, encoding information of a neighboring block, or a combination thereof. . According to the above conditions, it may be expressed using an implicit or explicit method, and information on this may be transmitted in units of a sequence, a picture, a slice, and the like.
  • the quantization unit 215 quantizes the residual component transformed by the transform unit 210.
  • the quantization parameter may be determined in units of blocks, and the quantization parameter may be set in units of a sequence, a picture, a slice, a block, and the like.
  • the quantization unit 215 may predict the current quantization parameter using one or more quantization parameters derived from neighboring blocks, such as the left, upper left, upper, upper right and lower left of the current block.
  • the quantization unit 215 may differ from the basic parameters transmitted in units of a sequence, a picture, a slice, or the like when the quantization parameter predicted from the neighboring block does not exist, that is, when the block is at the boundary of a picture, a slice, or the like. Value can be output or sent. If there is a quantization parameter predicted from the neighboring block, the difference value may be transmitted using the quantization parameter of the corresponding block.
  • the priority of a block for deriving a quantization parameter may be set in advance or transmitted in units of a sequence, a picture, a slice, and the like.
  • the residual block may be quantized through Dead Zone Uniform Threshold Quantization (DZUTQ), Quantization Weighted Matrix, or an improved technique. This may include one or more quantization techniques as candidates and may be determined by coding mode, prediction mode information, and the like.
  • DZUTQ Dead Zone Uniform Threshold Quantization
  • Quantization Weighted Matrix Quantization Weighted Matrix
  • the quantization unit 215 may set the quantization weighting matrix to apply to the inter picture coding, the intra picture coding unit, or the like, and may also place different weight matrices according to the intra prediction mode.
  • the quantization weight matrix may be configured by different quantization coefficients for each position of each frequency component, assuming that the size of the block is M ⁇ N and the block size is the same as the quantization block size.
  • the quantization unit 215 may be any one of several existing quantization methods, or may be used under the same configuration of an encoder or a decoder. Information on this may be transmitted in units of a sequence, a picture, a slice, and the like.
  • the inverse quantizers 220 and 315 and the inverse transformers 225 and 320 illustrated in FIGS. 2 and 3 may be implemented by performing the reverse processes in the transformer 210 and the quantizer 215. That is, the inverse quantization unit 220 may inverse quantize the quantized transform coefficients generated by the quantization unit 215, and the inverse transform unit 225 may inverse transform the inverse quantized transform coefficients to generate a reconstructed residual block. have.
  • the adders 230 and 324 illustrated in FIGS. 2 and 3 may generate a reconstructed block by adding the pixel values of the predicted block generated from the predictor to the pixel values of the reconstructed residual block.
  • the reconstruction block may be stored in the encoding and decoding picture buffers 240 and 335 and provided to the prediction unit and the filter unit.
  • the filter unit may apply an in-loop filter such as a deblocking filter, a sample adaptive offset (SAO), an adaptive loop filter (ALF), and the like to the reconstruction block.
  • the deblocking filter may filter the reconstructed block to remove distortion between block boundaries occurring in the encoding and decoding process.
  • SAO is a filter process for reconstructing the difference between the original image and the reconstructed image by an offset with respect to the residual block.
  • the ALF may perform filtering to minimize the difference between the prediction block and the reconstruction block.
  • the ALF may perform filtering based on a comparison value between the block reconstructed through the deblocking filter and the current block.
  • the entropy encoder 245 may entropy encode transform coefficients quantized through the quantizer 215.
  • techniques such as content adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), syntax-based context adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, and the like. Can be.
  • the entropy encoder 245 may include, in the encoded data, a bit string encoding the quantization coefficient and various pieces of information necessary for decoding the encoded bit string.
  • the encoded data may include a coded block shape, quantization coefficients, a bit string in which the quantization block is encoded, information necessary for prediction, and the like.
  • quantization coefficients two-dimensional quantization coefficients may be scanned in one dimension.
  • the quantization coefficient may have a different distribution depending on the characteristics of the image. In particular, in the case of intra prediction, since a distribution of coefficients may have a specific distribution according to a prediction mode, a scanning method may be set differently.
  • the entropy encoder 245 may be set differently according to the size of a block to be encoded.
  • the scan pattern may be preset or set as at least one of various patterns such as zigzag, diagonal, raster, and the like, and may be determined by encoding mode and prediction mode information, and under the same setting of the encoder and the decoder. Can be used. Information on this may be transmitted in units of a sequence, a picture, a slice, and the like.
  • the size of the quantized block (hereinafter, referred to as a quantization block) input to the entropy encoder 245 may be equal to or smaller than the size of the transform block.
  • the quantization block may be divided into two or more sub-blocks, and when divided, the scan pattern may be set to be the same as that of the existing quantization block or may be set differently.
  • zigzag may be applied to all subblocks, or a zigzag pattern is applied to a subblock located at the upper left of a block including a DC component.
  • Diagonal patterns can be applied to other blocks. This may also be determined according to coding mode, prediction mode information, and the like.
  • the start position of the scan pattern in the entropy encoder 245 basically starts from the upper left, but may start at the upper right, lower right or lower left according to the characteristics of the image, and selects one of two or more candidate groups.
  • the information on whether the information can be transmitted can be transmitted in units of a sequence, a picture, a slice, and the like.
  • Entropy encoding may be used as the encoding technique, but is not limited thereto.
  • the inverse quantization of the inverse quantization unit 220 and the inverse transformation of the inverse transform unit 225 illustrated in FIGS. 2 and 3 reversely structure the conversion structure of the quantization unit 215 in the quantization unit 215. And it can be implemented by combining the basic filter unit (235, 330).
  • the availability of reference pixels of neighboring blocks should be checked.
  • the availability of reference pixels is the position of the neighboring block, the position of the current block in the split block, and the current block. And at least one of factors such as boundary characteristics of neighboring blocks and combinations thereof.
  • an M ⁇ M block is divided into four M / 2 ⁇ M / 2 blocks (in this example, 0, 1, 2, and 3 index assignments in the raster scan direction) and the current block is 3
  • M / 2 ⁇ M / 2 blocks neighboring blocks located in a specific direction (upper right and lower left in this example) with respect to the current block are still in the same units as the picture, slice, or tile as the current block.
  • the reference pixel of the block cannot be used.
  • the availability of reference pixels of a neighboring block may be determined according to the boundary characteristics of the current block and the neighboring block (a boundary of a slice, a tile, etc.).
  • the reference pixel of a neighboring block in the case of a P or B slice, it is determined whether to use data with a high probability of error accumulation in an encoder / decoder to avoid error propagation over time. It can support configuration. According to this configuration information, it is possible to determine whether to use data having a high probability of error accumulation for predictive block generation.
  • a flag such as constrained_intra_pred_flag (CIP) of HEVC may play a similar role. The flag may determine whether to use a neighboring block encoded in an inter prediction mode with a high probability of accumulating errors among neighboring blocks referred to in intra prediction block generation. If the flag is 0, a reference pixel of a block encoded by inter prediction may not be used. If the flag is 1, a reference pixel of a block encoded by inter prediction may be used.
  • CIP constrained_intra_pred_flag
  • the prediction block may be filled with a predetermined value (eg, an intermediate value of a pixel value range having a bit depth) to generate the prediction block.
  • the prediction block may be generated by applying edge information or the like based on a predetermined value. For example, if the preset value is A, the right area including any pixel in the M? N block is filled with (A + B) and the other area is filled with (AC) in each area to form the prediction block.
  • B and C are parameters used to represent edge information.
  • the possibility of error accumulation may be determined by the number of neighboring blocks encoded by inter prediction and the number of reference pixels of the neighboring block. According to the determination, it may be determined whether the reference pixel of the block encoded through intra prediction is also used for prediction. For example, when less than N blocks of M neighboring blocks adjacent to the current block are blocks encoded by inter prediction, the reference pixels of the blocks may not be used to generate a prediction block, and may also be used in (MN) pictures. Reference pixels of blocks encoded by prediction may also be unavailable for prediction block generation. Since the number of blocks, which is the determination criterion, may be influenced according to the size or shape of the block, the number of blocks may be replaced with the number of reference pixels existing at positions to be used for prediction of the current block, and other factors may be considered.
  • the prediction block generated according to the use of the reference pixel may be affected. For example, if at least one or more of the neighboring blocks of the current block are available according to the reference pixel determination determined by the various factors, pixels derived from (eg, copied, averaged, etc.) the reference pixels of the available block. The reference pixel of the block that is not available may be replaced. As another example, when no block is available according to the availability of the reference pixel, the reference pixel of the block that is unavailable may be replaced with a predetermined value (for example, an intermediate value of a pixel value range having a bit depth).
  • a predetermined value for example, an intermediate value of a pixel value range having a bit depth
  • Substitution of a value derived from the available block may be prohibited according to the setting of the encoder or the decoder, in which case the prediction mode derived from the block cannot be used.
  • 15 is an exemplary diagram for describing an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
  • the neighboring block may have a square shape of M? M or a rectangular shape of M? N obtained through the block splitter, and may be encoded by either intra prediction or inter prediction according to an encoding mode.
  • the current block is the middle block
  • the block located at the upper left is Inter Inter prediction
  • the two blocks at the top are Intra prediction
  • the block at the upper right is again From there, we can assume the situation encoded by inter prediction, intra prediction, and intra prediction.
  • the block encoded by the inter prediction may be further classified according to a reference picture.
  • ref t encoded by inter-picture prediction Inter in FIG. 15, the reference picture indicates the current picture.
  • FIG. 16A is an exemplary diagram for describing whether reference pixels are used in consideration of an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
  • FIG. 16B is an exemplary diagram for explaining whether reference pixels are used in intra prediction according to an embodiment of the present invention, without considering a coding mode of a neighboring block.
  • FIG. 16A is an exemplary diagram for describing whether reference pixels are used in consideration of an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
  • FIG. 16B is an exemplary diagram for explaining whether reference pixels are used in intra prediction according to an embodiment of the present invention, without considering a coding mode of a neighboring block.
  • the reference pixel of the corresponding block cannot be used for prediction of the current block.
  • the current block may be used for prediction.
  • the pixel adjacent to the current block in the block that can be used as the reference pixel may be used as the reference pixel, and other additional pixels may be included.
  • the reference pixel of the coded block may be used for current block prediction. That is, pixels adjacent to the current block in the upper left, upper, upper right, left, and lower left blocks of the current block may be used as reference pixels.
  • 17 is still another exemplary diagram for describing an encoding mode of a neighboring block in intra prediction according to an embodiment of the present invention.
  • the neighboring block is represented as a reference picture used at this time.
  • other reference pictures may be added according to the reference direction of inter prediction.
  • the upper right block means a block located outside the picture range.
  • 18A to 18C illustrate an example of determining whether the pixel is usable as a reference pixel on the assumption that the encoding state is the same as that in FIG. 17.
  • 18A is an exemplary diagram illustrating a case where an encoding mode of a neighboring block is intra prediction in intra prediction according to an embodiment of the present invention.
  • 18B illustrates an example of considering an encoding mode and a reference picture of a neighboring block in intra prediction according to an embodiment of the present invention.
  • 18C is another exemplary diagram for describing a case where an encoding mode of a neighboring block is not considered in intra prediction according to an embodiment of the present invention.
  • neighboring blocks encoded by intra prediction in the encoding mode of FIG. 17 may be indicated by hatching.
  • the pixel in the corresponding block may be available as the reference pixel.
  • whether to consider the encoding mode of the neighboring block may be indicated according to the CIP flag and may be an example of the case where the CIP flag is 1.
  • a pixel in a block encoded by intra prediction in the encoding mode state of FIG. 17 may be used as a reference pixel.
  • the pixels in the block may be used as the reference pixel.
  • the pixel of the block may not be used as the reference pixel.
  • the use of the reference pixel may be determined based on at least one or more factors, or a combination thereof, such as the position of the neighboring block, the encoding mode of the neighboring block, the position of the current block in the split block, and the boundary characteristics of the current block and the neighboring block.
  • the reference picture may also be added as the factor.
  • it may be determined whether to use the prediction of the current block of the reference pixel of the corresponding block in consideration of the index of the reference picture of the neighboring block or a picture order count (POC).
  • the reference picture is specified to be the current picture, but the example can be extended to a reference picture having a different index or picture order count (POC).
  • various settings for the reference picture indexes L0 and L1 may be configured.
  • the reference picture thereof may be used as the reference pixel.
  • whether to consider the encoding mode of the neighboring block may be indicated according to the CIP flag, and thus may be an example for explaining the case where the flag is 1.
  • adjacent pixels in neighboring blocks may in principle be used as reference pixels.
  • the region expressed in the upper right side of the current block located in the middle may correspond to an area that is not available in any case because it is a portion without image data or an area outside the image.
  • Second, availability of a reference pixel with respect to a reference pixel of a neighboring block of the current block may be determined.
  • a reference pixel composed of a preset pixel value can be obtained.
  • the reference pixel can be configured with a middle value of the pixel's representation range. More specifically, a value can be assigned to the reference pixels with 1 ⁇ (bit depth-1), where the bit depth means the number of bits used to represent the pixel, so the example value is a pixel. It can mean the middle value of the expression range.
  • the neighboring block When determining that at least one neighboring block is available, one may consider the encoding mode of the neighboring block (left, top, top left, top right, bottom left block, etc.).
  • a preset flag indicating whether to consider an encoding mode may be used.
  • all the pixels in the neighboring blocks can be used as the reference pixel, and the flag can be indicated that the preset flag does not consider the encoding mode.
  • the neighboring block when the encoding mode of the neighboring block is inter-screen prediction, the neighboring block may be determined to be unavailable, and pixels in the neighboring block may not be used as the reference pixel.
  • the reference picture of the neighboring block may be checked and used as the reference pixel in the case of the current picture.
  • the reference picture is selected from List 0 storing data for reference pictures before the current picture or List 1 storing data for reference pictures after the current picture, and the current picture is the list 0 or the list. May be included in 1.
  • the reference picture of the neighboring block can be checked and used as a reference pixel when the I picture (except P or B) is used.
  • the above constraints should be understood as an example of determining whether pixels in neighboring blocks can be used as reference pixels in consideration of specific conditions. That is, the encoding mode of a neighboring block is inter-screen prediction, and it can be determined whether it is available as a reference pixel by referring to motion vectors, reference picture information, etc., which are encoding information about the neighboring block. In this case, a sequence and a picture are determined.
  • the above-described conditions can be set in units such as slices and slices.
  • the determination of whether the reference pixel is available according to an embodiment of the present invention may be based on the following flow.
  • the reference picture is checked by checking the reference picture list 0 (ref_idx_l0).
  • the reference picture is the current picture, it may be described as being available as a reference pixel of the current picture. However, this should be understood as an example.
  • the prediction mode may be checked to determine whether the current picture is the reference picture by checking whether the current picture is the unidirectional _L0, unidirectional _L1 or bidirectional.
  • 19A is an exemplary diagram illustrating a method of obtaining a reference pixel when the available neighboring block is a block at the lower left end.
  • 19B is an exemplary diagram illustrating a method of obtaining a reference pixel when the available neighboring block is a block at the upper right end.
  • 19C is an exemplary diagram illustrating a method of obtaining a reference pixel when the available neighboring blocks are blocks at the lower left and upper right.
  • 19D is an exemplary diagram illustrating a method of acquiring a reference pixel when the available neighboring blocks are blocks at upper left and upper right.
  • the hatched pixels may refer to adjacent pixels in a block in which neighboring blocks are determined to be available, and an arrow direction may refer to a direction constituted by reference pixels.
  • neighboring blocks may be determined to be available, but may be determined to be unavailable.
  • a pixel in a block determined to be unavailable is not available as a reference pixel, in which case it may be a question of how to configure adjacent pixels in the unavailable block.
  • the pixels adjacent to the unavailable area may be copied to fill the pixels adjacent to the current block among the unavailable areas. have.
  • values when the areas available as reference pixels are mixed, values may be copied and filled in either direction (left direction or downward direction), and there are available areas on both sides such as the top of the current block. In this case, it may be filled with values generated by using both pixels such as interpolation and average, or may be copied and filled in an area where only one side is available, such as the left or bottom left of the current block.
  • pixels located to the right including P (-1, -1) and P (blk_size, -1) at the upper right end of the current block may be available.
  • the values from P (0, -1) to P (blk_size-1, -1) may not be available.
  • P (x, y) ⁇ x is from 0 to blk_size-1
  • blk_size may mean a block size.
  • Pixels positioned below including P ( ⁇ 1,0) may not be available.
  • interpolation may be restricted when the positions of the available areas are not connected by vertical lines. Specifically, when the coordinates of both ends of the available area are compared, interpolation may be limited when x and y do not coincide with each other, such as P (-1, a) and P (b, -1). . If P (a, -1) and P (b, -1) are equal to each other, one of x and y can be interpolated.
  • interpolation may be performed when the available area is located on a vertical line.
  • FIG. 20 is a flowchart of an image encoding method according to an embodiment of the present invention.
  • an image encoding method of performing intra prediction may determine whether a boundary pixel in a neighboring block is available as a reference pixel of a current block in consideration of a prediction mode of each of the current block and a neighboring block.
  • operation S110 according to the determined result, obtaining a reference pixel of the current block in operation S120, generating an intra prediction prediction block based on the obtained reference pixel in operation S130, and using the generated prediction block. And encoding the current block (S140).
  • An image decoding method for performing intra prediction may include receiving a bit stream including data about a prediction block of a current block and a block neighboring a current block, and receiving data from the received bit stream. Extracting and checking the prediction mode of the neighboring block, considering the prediction mode of the neighboring block, determining whether a boundary pixel in the neighboring block is available as a reference pixel of the current block, and according to the determined result, The method may include obtaining a reference pixel of the current block, generating an intra prediction predicted block based on the obtained reference pixel, and decoding the current block using the generated prediction block.
  • the reference pixel configured with a preset pixel value may be obtained.
  • the determining of whether the reference pixel is available may indicate whether the preset flag considers the prediction mode of the neighboring block.
  • the prediction mode of the neighboring block is intra prediction, it may be determined that the boundary pixel is available as the reference pixel of the current picture.
  • the prediction mode of the neighboring block is inter-screen prediction, it may be determined that the boundary pixel is not available as the reference pixel of the current picture.
  • the determining of whether the neighboring block is available as a reference pixel when the prediction mode of the neighboring block is inter-screen prediction, whether the boundary pixel is available as the reference pixel of the current picture is considered in consideration of the reference picture of the neighboring block. You can decide.
  • the reference picture is selected from List 0 storing data for reference pictures before the current picture or List 1 storing data for reference pictures after the current picture, and the current picture is listed in List 0 or List 1. May be included.
  • the reference picture of the neighboring block is the current picture, it may be determined that the boundary pixel is available as the reference pixel of the current picture.
  • the reference picture of the neighboring block is not the current picture, it may be determined that the pixels in the neighboring block are not available as the reference pixels of the current picture.
  • the reference picture of the neighboring block is an I picture
  • the one or more processors receive a bit stream including data about a prediction block of a current block and a block neighboring the current block, and receives the received bit stream. After extracting the data from the stream, confirming the prediction mode of the neighboring block, and considering the prediction mode of the neighboring block, it is determined whether or not the boundary pixels in the neighboring block are available as reference pixels of the current block. Accordingly, a reference pixel of the current block may be obtained, an intra prediction prediction block may be generated based on the obtained reference pixel, and the current block may be decoded using the generated prediction block.
  • 21 is an exemplary diagram illustrating an intra prediction mode of HEVC.
  • each arrow direction may indicate a direction constituting a prediction block using a reference pixel for each prediction mode.
  • 22A is an exemplary diagram for describing a reference pixel used for current block prediction in a step of configuring a reference pixel.
  • pixels A 0 to P 0 and X 0 of blocks on the left, upper left, lower left, upper, and upper right sides of the current block may be included in the reference pixel candidate group.
  • p [0, -1] to p [(2 ⁇ M)-1, -1], p [-1,0] to p [-1, (2xN) -1], p [-1, -1] pixels may be included in the candidate group.
  • p [0, -1] may correspond to A 0
  • p [2 ⁇ M ⁇ 1, -1] may correspond to H 0
  • p [-1, -1] may correspond to X 0 . .
  • 2 ⁇ (M + N) +1 reference pixels may be included in the candidate group, which is at least one or a combination of factors such as a block size, a block shape, a prediction mode, a prediction method, and a slice type. It can be determined according to. For example, some reference pixels may be added to or excluded from the candidate group according to the prediction mode. As another example, some reference pixels may be added to or excluded from the candidate group according to a prediction scheme.
  • 22B is an exemplary diagram for describing that additional pixels of a neighboring block are included in a reference pixel candidate group.
  • the pixels of -1] to p [-2, (2 x N) -1] and p [-1, -1] may be included in the new reference pixel candidate group.
  • the first reference pixel line A0 to P0 and X0 may be divided into the second reference pixel line (A1 to P1, X0, X10, X01, and X11).
  • An additional reference pixel line may be included as a new reference pixel candidate group The order of the reference pixel lines may be determined based on the distance between the reference pixel and the current block.
  • the reference pixel line may be applied to the pixels of the blocks on the left, upper left, lower left, upper and upper right, or may constitute the reference pixel line in units of one neighboring block or two or more neighboring blocks. have.
  • the pixel line when the pixel line is configured for the pixels in the left block, the pixel of the block may be configured in the reference pixel line L.
  • Pixels of the corresponding blocks When the pixel line is configured for the upper, upper, and right blocks, Pixels of the corresponding blocks may be configured in the reference pixel line U. In this example, description will be made with reference to the reference pixel lines collectively applied to the neighboring blocks.
  • Whether to add additional reference pixel lines other than the existing reference pixel lines may be determined according to one or more factors or a combination thereof, such as a block size, a shape of a block, a prediction mode, a prediction method, and the like.
  • whether the existing reference pixel line is used or whether the additional reference pixel line is used may have various combinations of configurations. For example, the existing reference pixel line is always used, and it may be determined whether additional pixel lines are used thereto, or whether the existing reference pixel lines and additional pixel lines are used.
  • there are two or more additional pixel lines various combinations related to the above configuration are possible.
  • the reference pixel line is partially applied instead of collectively applied to the neighboring block, it may also have various combinations related to the above setting.
  • an allowable range of the reference pixel line can be set. That is, the information (maximum value) on how much to add the reference pixel line can be set in the encoder / decoder, which is determined by one of the factors such as the shape of the current or neighboring block, the size of the current or neighboring block, or the like. It can be determined according to the combination of. Although the order of the reference pixel line may be regarded as having a high priority when the number is small, the assumption about this may not lead to the binarization of related information. Index information or identifier information of the reference pixel line may be generated under a predetermined condition. The reference pixel line index or identifier information may be binarized by various methods such as unary binarization, truncated unary binarization, etc. In this regard, binarization may be determined according to the reference pixel line allowable maximum value information.
  • the combination may also have various combinations related to the above setting.
  • Information related to the reference pixel line may be transmitted in units of a sequence, a picture, a slice, a block, and the like.
  • the information to be encoded / decoded may be included in the prediction mode information in the prediction mode encoding step.
  • a process of checking whether the reference pixel is used in the neighboring block is performed. Whether or not the reference pixel is used may include at least one or more of factors such as the position of the neighboring block, the encoding mode of the neighboring block, the reference picture of the neighboring block, the position of the current block in the split block, the boundary characteristics of the current block and the neighboring block, or the like. It can be judged by a combination. Prediction of the current block may be performed by using the pixels determined to be available and the replaced pixel values of the pixel positions determined to be unavailable among the reference pixel candidate groups.
  • reference pixels in a fractional unit may be generated by using various interpolation methods of the omega pixels in integer units.
  • reference pixels of two or more reference pixel lines may be supported in the interpolation process.
  • 2D-filtering to interpolate the fractional pixels between four pixels may also be applied.
  • the reference pixel filtering step a process of applying filtering to the reference pixel obtained from the reference pixel configuration step will be described according to the case of having the wider reference pixel.
  • 23A, 23B, 24A, and 24B are exemplary diagrams for describing various mode directions with respect to a current block having a wider reference pixel obtainable in the reference pixel construction step. This is for describing the directions of the various prediction modes described above, but is not limited thereto. The description may be made under the assumption that the first reference pixel lines A0 to P0 and X0 and the second reference pixel lines A1 to P1, X0, X10, X01, and X11 are configured as reference pixel candidate groups.
  • filtering may be applied to the pixels included in the reference pixel candidate group, that is, the nearest pixels of the current block.
  • filtering considering the added reference pixel may be applied.
  • the reference pixels of the second reference pixel line are filtered to the reference pixels.
  • It may be an example of a mode (vertical, vertical) for applying a pixel generated by applying to the prediction
  • the reference pixels of the first reference pixel line specifically, the reference pixels A0, B0, C0 located in the first line , D0
  • the reference pixels A0, B0, C0 located in the first line , D0 may also be an example of a mode in which a pixel generated by applying filtering to the reference pixels is applied to prediction.
  • the reference pixels are filtered by referring to reference pixels of a second reference pixel line, specifically, reference pixels I1, J1, K1, and L1 located in the second row from the left of the current block. It may be an example of a mode (horizontal, horizontal) for applying the generated pixel to the prediction, and the reference pixels of the first reference pixel line, specifically, the reference pixels I0, J0, K0, L0 located in the first line. ) May also be an example of a mode in which a pixel generated by applying filtering to the reference pixels is applied to prediction.
  • the reference pixels of the second reference pixel line are referred to the reference pixels C1, D1, E1, F1, G1, and H1 located in the second row at the upper right of the current block.
  • the pixel generated by applying filtering to the pixels may be a mode (directional mode leading to the bottom left), and the reference pixels of the first reference pixel line, specifically, located in the first row at the top right of the current block.
  • the reference pixels B0, C0, D0, E0, F0, G0, and H0 may also be referred to as an example of a mode in which a pixel generated by applying filtering to the reference pixels is applied to prediction.
  • the reference pixels of the second reference pixel line specifically, the reference pixels J1, I1, X01, X11, X10, A1, and B1 positioned in the second row at the upper left of the current block, are described above.
  • the pixel generated by applying filtering to the reference pixels may be a mode (directional mode leading to the bottom right), and the reference pixels of the first reference pixel line, specifically, in the first row at the upper left of the current block.
  • An example of a mode in which a pixel generated by applying filtering to the reference pixels is also applied to prediction with reference to the located reference pixels K0, J0, I0, X0, A0, B0, and C0.
  • adaptive filtering may be performed according to the mode of the current block.
  • the reference pixel of the second reference pixel line is also applied to the filtering, not only the adaptive filtering is performed according to the mode of the current block, but the reference pixel applied to the filtering may also be adaptive. That is, the filtering of adjacent pixels of the current block may be independent of the prediction mode direction, and when the reference pixels of the second reference pixel line are also included in the filtering process, the direction of the modes as shown in FIGS. 22A, 22B, 23A, and 23B may be used.
  • the pixels on the line can be applied to the filtering.
  • the prediction block generation step a process of applying filtering to the reference pixel obtained from the configured reference pixel configuration step will be described according to the case of having the wider reference pixel.
  • the nearest reference pixel may be used for generating the prediction block.
  • a reference pixel used for generating a prediction block may be determined. For example, a prediction block may be generated with a first reference pixel according to a prediction mode, a prediction block may be generated with a second reference pixel, and predicted with reference pixels of a first reference pixel line and a second reference pixel line. Can be created in a block.
  • HEVC High Efficiency Video Coding
  • the related settings are not limited to the examples described below. Since HEVC has 35 modes, it is necessary to efficiently encode mode information after determining the optimal mode. To do this, we use the statistical characteristics of the image and the prediction mode. In general, when an image is divided into blocks, neighboring blocks often have similar characteristics. Therefore, when encoding a mode of a current block, information of a neighboring block is used. HEVC encodes the prediction mode of the current block based on the prediction modes of the left and upper blocks.
  • the most probable mode is a prediction mode that is likely to be a prediction mode of the current prediction unit, and a probability of the mode of the prediction unit near the current prediction unit having a mode similar to that of the current prediction unit is present. Because of the high can be selected from the mode of the neighboring block.
  • the prediction mode of the left prediction unit is referred to as left_PU_MPM and the prediction mode of the prediction unit above is represented as Above_PU_MPM based on the current prediction unit PU.
  • the prediction mode of the left prediction unit and the prediction mode of the upper prediction unit are different, the first best mode MPM [0] is the prediction mode of the left prediction unit, and the second best mode MPM [1] is the top prediction unit.
  • the prediction mode of may be set, and the third optimal mode (MPM [2]) may be set without any overlap among planar, DC, and vertical modes.
  • the prediction mode of the left prediction unit and the prediction mode of the upper prediction unit are the same, it is determined whether the same prediction mode is smaller than Mode 2, and if it is small, the planar, DC, and vertical modes are first selected. If it is set to greater than or equal to, the prediction mode of the left prediction unit may be set as the first, one less than, or greater than, the second and third optimal modes (MPM), respectively.
  • MPM second and third optimal modes
  • a mode that is likely to be predicted as a prediction mode of the current block may be classified and classified into a most probable mode (MPM) set or group. If the prediction mode of the neighboring block is the same as or similar to the prediction mode of the current block because the characteristics of the current block and the neighboring block are similar, there is a high probability of selecting one of the MPM groups. Can be done. If it does not occur, one of the modes, except for the best mode (MPM), may be binarized and one of them may be encoded to encode the prediction mode of the current block. In the case of HEVC, the number of modes in a group of the optimal mode (MPM) is set to 3, and it can be encoded using 1 or 2 bits.
  • MPM most probable mode
  • the embodiment according to the present invention does not limit the mode to be utilized as the best mode (MPM) to the left and top prediction units, and utilizes mode information from one or more blocks among the blocks at the left, top left, top, top right and bottom left. Can be.
  • priority may be set for which of the divided blocks refer to information of which block. For example, if the current block is 2N ⁇ 2N and two divided blocks are located on the left side of N ⁇ N, the mode of the upper N ⁇ N may be utilized according to the set rule, or the mode of the lower N ⁇ N mode. You can also use
  • the number of modes selected as the optimal mode may also be set in advance by the decoding apparatus or transmitted in units of a sequence, a picture, a slice, and the like.
  • the binarization for expressing the same may use various binarization methods such as fixed length or variable length.
  • binarization of a mode not classified as an optimal mode may also use various binarization methods.
  • a candidate group of the optimal mode MPM may be set for efficient binarization of a mode that is not classified into the optimal mode MPM.
  • M ⁇ 2 N of the total M modes may be binarized by a candidate group that is not classified as an optimal mode (MPM) group and 2N as a candidate group not classified as an optimal mode (MPM). For example, if there are 19 modes, N can be selected as 1, 2, 3, or 4, and the mode in the best mode (MPM) group is of variable length (N is 4, so 3 Can be expressed in a fixed length (4 bits).
  • a block located in a neighboring block is assumed to have a block having the same block shape and size as the current block.
  • the mode of the block determined to be unavailable according to the availability of the reference pixel of the neighboring block is DC.
  • the boundary pixel of the corresponding block is available as a reference pixel. For example, it is necessary to check whether the picture is not located at the boundary of the picture, slice, or the like, and whether the encoding modes are the same.
  • the coding mode is the inter prediction mode
  • the reference pixel of the corresponding block is set to unavailable.
  • the left block generates a prediction block in the current picture through block matching and is encoded by the inter prediction method
  • the reference pixel of the block may be determined to be unavailable.
  • a mode of the corresponding block may be included as an MPM candidate. Since the reference pixel of the left block is not available, the mode of the block may be set to DC and may be included as an MPM candidate.
  • the usable reference pixel and the unavailable reference pixel may be classified through a process of checking availability of reference pixels of a neighboring block.
  • the reference pixel determined as unavailable may fill each reference pixel location with a predetermined value (for example, an intermediate value of a range of pixel values having a bit depth) or a replacement value derived from the reference pixel determined as available. have.
  • a prediction block may be generated by using a pixel value of a reference pixel available for intra prediction and a substitute value of the unavailable reference pixel.
  • 26 is an exemplary diagram for determining a prediction mode for a current prediction unit (or block).
  • available reference pixels may be displayed in black, and other reference pixels may be displayed in colorless.
  • the unavailable reference pixel may be replaced with a predetermined value or a value derived from the available pixel.
  • the upper right pixel value of the block E may be copied and filled with the pixel values of the unavailable reference pixels of the blocks A, B, C, and D. That is, all reference pixels of blocks A, B, C, and D may have the same value as the upper right pixel of block E.
  • FIG. For example, all modes of generating a prediction block using blocks B and C as reference pixels may configure all prediction pixels of the prediction block with the same pixel value (the upper right pixel value of block E).
  • block A or block B since block A or block B is determined to be unavailable, it may have a DC mode as previously assumed. In this case, since the prediction mode of the block A is also set to DC, and the block B is also set to the DC, the probability that the mode determined as the optimal mode (MPM) (two occurrences of DC) is the prediction mode of the current block can be reduced. Therefore, it can be used by replacing the prediction mode of the available block adjacent to the current block.
  • MPM optimal mode
  • block A may replace and use the prediction mode of block E.
  • the prediction mode of block E and DC which is a block B prediction mode
  • the prediction mode of the current block may be selected as one mode of the MPM. You can increase your chances.
  • boundary pixels black parts in the figure
  • MPM [2] vertical mode.
  • Intra-prediction may be performed by copying to the boundary pixel of the.
  • the mode of the block E is not DC.
  • a prediction block having one pixel value (the upper right pixel value of block E) of all prediction blocks generated in the prediction mode may be generated. This may be because they all copied to the same pixel value.
  • left_PU_MPM the prediction mode of block E
  • the prediction mode of block E is one of planar, DC, vertical, horizontal, and groups 2 to 4
  • MPM [0] represents planar, DC, Vertical, horizontal, group 2 to 4 (groups 2, 3, 4)
  • MPM [1] is DC
  • MPM [2] is the block E mode of planar If not, it is a planar, and if it is a planar, it can be classified as vertical.
  • the prediction block is generated in the planar, DC, vertical, horizontal, group, 2, 3, or 4 modes, the same prediction block (if the reference pixel is composed of 100 pixel values, Even if the predictive block is generated using all pixels, 100 pixels will be generated, which is equivalent to packing the MPM in a redundant mode.
  • the prediction mode of block E is one of planar, DC, vertical, horizontal, or group 2 to 4
  • MPM [0 ] Is determined from planar, DC, vertical, horizontal, and groups 2 to 4
  • MPM [1] is assigned to group 1
  • the MPM [2] may be classified as one of the blocks that do not overlap with the MPM [1] belonging to the group 1. This is because the prediction block may differ slightly (at least 1 pixel) in each mode unless the reference pixels at the boundary of the E block are all composed of the same pixel value.
  • the prediction mode that is not selected as the optimal mode (MPM) may be binarized using existing fixed 5 bits, or may be encoded by binarizing only the mode in group 1.
  • the mode 2 through 9 (group 1) has 8 numbers (minus two can be reduced to 6 in the MPM), so it can be encoded using various binarization methods with bits shorter than fixed 5 bits. Can be.
  • the mode of block E is one of the modes of group 1
  • MPM [0] is the prediction mode of block E
  • MPM [1] is DC
  • MPM [2] is group 1 It can be configured as one mode that does not overlap with the prediction mode of block E (prediction block generated by DC or prediction block generated by planar, vertical, horizontal, group, 2, 3, 4 are the same. fetch). In this case, it may also be binarized and encoded in the above manner.
  • 27 is an exemplary diagram of grouping of prediction modes.
  • the prediction mode includes planar, DC, vertical, horizontal, group 1, group 2, group 3, and group. It can be assumed that it is classified as 4 (group 4).
  • group 4 Various settings are possible for grouping prediction modes into two or more groups, and the following groupings are classified under settings having similar directionalities.
  • Group 1 is up to prediction modes 2 to 9
  • Group 2 is up to prediction modes 11 to 17
  • Group 3 is up to prediction modes 18 to 25, and
  • Group 4 is up to The prediction modes may be referred to as 27 to 34.
  • prediction mode 0 may mean a planar
  • prediction mode 1 is DC
  • prediction mode 10 is horizontal
  • prediction mode 26 may be vertical.
  • 28 to 32 are diagrams illustrating an MPM for a prediction mode using neighboring blocks other than the upper and left blocks.
  • the prediction mode of block E may be substituted for block A, and the prediction mode of block D may be used instead of block B.
  • FIG. 28 the prediction mode of block E may be substituted for block A, and the prediction mode of block D may be used instead of block B.
  • the prediction mode of block D may be used in place of block A, and the prediction mode of block C may be used in place of block B.
  • the prediction mode of block A may be used as it is, and block B may be used instead of block B.
  • the prediction mode of the block B may be used as it is, and the prediction mode of the block C may be used in place of the block A.
  • FIG. 31 the prediction mode of the block B may be used as it is, and the prediction mode of the block C may be used in place of the block A.
  • block A may be replaced by the prediction mode of block E
  • block B may be replaced by the prediction mode of block D
  • block A may be replaced by the prediction mode of block D
  • block B may be replaced by the prediction mode of block C.
  • block A may be replaced with a prediction mode of block E
  • block B may be replaced with a prediction mode of block C. That is, the prediction mode of the blocks available in various combinations can be replaced.
  • MCM optimal mode
  • a black portion is a pixel used as a reference pixel, and pixels at the boundary between blocks A, B, C, and D have no or similar change in pixel value, and pixels at the boundary with block E are changed. Indicates that there is.
  • the same or similar prediction blocks may be generated to generate redundancy of the optimal mode (MPM) candidate group. .
  • blocks whose dispersions ⁇ A , ⁇ B , ⁇ C , ⁇ D , and ⁇ E with respect to the reference pixel values of each block are smaller than the boundary value Th may be classified.
  • the variances ⁇ A , ⁇ B , ⁇ C , and ⁇ D in FIG. 33 are smaller than the boundary value, and the variance ⁇ E of the block E is larger than the boundary value.
  • the redundancy of the optimal mode (MPM) candidate group may occur when the dispersion of two or more consecutive blocks is smaller than the boundary value.
  • the prediction block generated perpendicularly to the group 4 which is a prediction mode generated using only the block B and the block C, is It can be said to have the same or similar values.
  • group 4 and vertical modes can perform redundancy removal. If the reference pixels of the blocks A and C are the same or similar, the prediction mode generated using only the blocks A and C does not exist and thus need not be considered.
  • prediction blocks generated from horizontal, group 2, group 3, and vertical which are prediction modes generated using reference pixels of blocks A, D, and B, are the same or Since it has similar values, it can be determined that redundancy occurs.
  • the MPM candidate group may be reset by removing redundancy. Dispersion is mentioned for illustrative purposes of the above examples but is not limited thereto.
  • MPM [0] prediction mode of block A
  • MPM [1] prediction mode of block B
  • MPM [2] One of a planar, a DC, and a vertical (in accordance with the prediction mode of the block A and the prediction mode of the block B) may be set.
  • MPM [0] prediction mode of block A
  • MPM [1] one of group 1 modes
  • MPM [2] MPM [1]
  • It can be configured as one of group 1 modes that do not overlap.
  • the prediction mode of block A and the prediction mode of block B are the same and the two modes are larger than mode 2 (non-DC, planar), the two modes are horizontal.
  • MPM [1] one of group 1 modes
  • MPM [2] MPM [1] It can be configured to one of group 1 modes.
  • MPM [0] block A's prediction mode
  • MPM [1] block A's prediction mode 1
  • 34 is a flowchart illustrating an image encoding method of performing intra prediction according to an embodiment of the present invention.
  • step S220 selecting the most probable mode (MPM) candidate group, determining the redundancy of the prediction blocks derived from the intra prediction mode in the MPM candidate group (S230). Or selecting the MPM group using the prediction mode of the replacement block adjacent to the upper block (S240) and performing an intra prediction mode encoding on the current block based on the selected MPM group (S250). Can be.
  • MPM most probable mode
  • whether to be available may be determined to be unavailable when the left block and the top block exist outside the image boundary, or if they are encoded by inter-screen prediction. have.
  • the MPM candidate group includes an intra prediction mode for a block determined to be available among the left block and an upper block, an intra prediction mode preset for the block determined to be unavailable, a planar prediction mode, and vertical. At least one of the prediction mode and the DC prediction mode may be selected.
  • redundancy when both the left block and the upper block are available, reference pixels in two or more consecutive blocks among blocks located at the lower left, the left, the upper left, the upper and the upper right of the current block may be used. Based on the variance values calculated for the values, redundancy can be determined. For example, two or more consecutive blocks are selected and grouped, the dispersion values of the selected groups are respectively calculated, and it can be determined that there is redundancy when the calculated dispersion value is smaller than the boundary value.
  • the method may include determining that there is redundancy.
  • the replacement block may be selected from neighboring blocks located at the lower left, the upper left, and the upper right of the current block.
  • the replacement block may be selected as a priority in clockwise or counterclockwise direction from one or more blocks.
  • the replacement block may be selected as a priority in a clockwise or counterclockwise direction among neighboring blocks located at the lower left, upper left and upper right of the current block.
  • an image decoding method for performing intra prediction includes extracting data on whether a prediction mode for a current block is included in a Most Probable Mode (MPM) group from a received bit stream. Determining, based on the data, whether the prediction mode for the current block is included in the MPM group; if it is determined that the prediction mode for the current block is included in the MPM group, from the received bit stream, Extracting the MPM group index data, identifying a prediction mode for the current block in the MPM group based on the extracted MPM group index data, and performing intra prediction on the current block based on the identified prediction mode. It may include the step of performing.
  • MPM Most Probable Mode
  • the MPM group determines whether or not each of the left block and the upper block of the current block is available for the reference pixel configuration of the current block, selecting a Most Probable Mode (MPM) candidate group based on the determined result; Determining the redundancy of the prediction block derived from the intra prediction mode in the MPM candidate group and if it is determined that there is redundancy, it may be selected using the prediction mode of the replacement block adjacent to the left block or adjacent to the upper block.
  • MPM Most Probable Mode
  • the determining of the availability may include determining that the left block and the upper block are unavailable when they exist outside the image boundary or encoded by inter-screen prediction, and otherwise, may be determined to be available.
  • the MPM candidate group includes an intra prediction mode for a block determined to be available among the left block and an upper block, an intra prediction mode preset for the block determined to be unavailable, a planar prediction mode, and vertical.
  • the prediction mode and the DC prediction mode may be selected.
  • determining the redundancy of the prediction block may include determining a reference pixel value in two or more consecutive blocks among blocks located at the lower left, the left, the upper left, the upper and the upper right of the current block when both the left block and the upper block are available. The determination can be made based on the dispersion value calculated for.
  • an intra prediction mode configured by referring to only boundary pixels between the unavailable block and the current block is selected and selected. If at least two of the predicted modes are included in the MPM candidate group, it may be determined that there is redundancy.
  • the replacement block may be selected from neighboring blocks located at the lower left, the upper left, and the upper right of the current block.
  • the replacement block may be selected as a priority in a clockwise or counterclockwise direction among the one or more blocks.
  • the replacement block may be selected as a priority in a clockwise or counterclockwise direction among neighboring blocks located at the lower left, upper left and upper right of the current block.
  • one or more processors may determine whether a prediction mode for a current block is included in a Most Probable Mode (MPM) group from a received bit stream. Extract the data, and based on the data, determine whether the prediction mode for the current block is included in the MPM group, and if it is determined that the prediction mode for the current block is included in the MPM group, from the received bit stream, After extracting the MPM group index data of the block, on the basis of the extracted MPM group index data, the prediction mode for the current block in the MPM group is checked to perform intra prediction on the current block based on the identified prediction mode. Can be.
  • MPM Most Probable Mode
  • the MPM group determines whether or not each of the left block and the upper block of the current block is available for the reference pixel configuration of the current block, selecting a Most Probable Mode (MPM) candidate group based on the determined result; Determining the redundancy of the prediction block derived from the intra prediction mode in the MPM candidate group and if it is determined that there is redundancy, it may be selected using the prediction mode of the replacement block adjacent to the left block or adjacent to the upper block.
  • MPM Most Probable Mode
  • the determining of the availability may include determining that the left block and the upper block are unavailable when they exist outside the image boundary or encoded by inter-screen prediction, and otherwise, may be determined to be available.
  • an intra prediction mode configured by referring to only boundary pixels between the unavailable block and the current block is selected and selected. If at least two of the predicted modes are included in the MPM candidate group, it may be determined that there is redundancy.
  • international codecs such as MPEG-2, MPEG-4, H.264 or other codecs in which in-picture prediction technology is used, and media using these codecs, and high performance generally available to the video industry Highly efficient video encoding and decoding technology can be provided.
  • HEVC high efficiency image coding technology
  • standard codecs such as H.264 / AVC and intra picture prediction.

Abstract

화면 내 예측에 대한 부호화/복호화 방법 및 장치가 개시된다. 화면 내 예측을 수행하는 영상 복호화 방법은 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하는 단계, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인하는 단계, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및 생성한 예측 블록을 이용하여 현재 블록을 복호화하는 단계를 포함한다.

Description

화면 내 예측에 대한 부호화/복호화 방법 및 장치
본 발명은 영상 부호화 및 복호화 기술에 관한 것으로, 더욱 상세하게는, 화면내 예측에서의 참조 화소 구성과 최적 가능 모드(Most Probable Mode, MPM) 구성에 관한 부호화/복호화 방법 및 장치에 관한 것이다.
인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터에 대한 이용이 급증하고 있다. 따라서, 각종 시스템에서 영상 예측을 통해 다양한 서비스나 작업을 수행하기 위하여 영상 처리 시스템의 성능 및 효율 개선에 대한 필요성이 상당히 증가하고 있으나, 이러한 분위기에 호응할 수 있는 연구 개발 결과가 미흡한 실정이다.
이와 같이, 종래 기술의 영상 부호화 복호화 방법 및 장치에서는 영상 처리 특히 영상 부호화 또는 영상 복호화에 대한 성능 개선이 요구되고 있는 실정이다.
상기와 같은 과제를 해결하기 위한 본 발명의 목적은, 화면 내 예측 모드를 개선한 영상 부호화/복호화 방법을 제공하는데 있다.
본 발명의 다른 목적은, 화면 내 예측 모드를 개선한 영상 부호화/복호화 장치를 제공하는데 있다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 화면 내 예측을 수행하는 영상 부호화 방법은, 현재 블록과 이웃한 블록 각각의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및 생성한 예측 블록을 이용하여 현재 블록을 부호화하는 단계를 포함할 수 있다.
여기서, 참조 화소를 획득하는 단계는, 경계 화소가 현재 블록의 참조 화소로 이용 불가능한 것으로 결정되었으면, 미리 설정된 화소 값으로 구성한 참조 화소를 획득할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 미리 설정된 플래그가 이웃한 블록의 예측 모드를 고려할 것인지 여부를 지시할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 내 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측인 경우, 이웃한 블록의 참조 픽쳐를 고려하여, 경계 화소를 현재 픽쳐의 참조 화소로 이용가능한지 여부를 결정할 수 있다.
여기서, 참조 픽쳐는, 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 현재 픽쳐가 리스트 0 또는 리스트 1에 포함될 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐인 경우에는, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우에는, 경계 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 I 픽쳐인 경우, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
상술한 본 발명의 다른 목적을 달성하기 위한 본 발명의 다른 측면에 따른 화면 내 예측을 수행하는 영상 복호화 방법은, 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하는 단계, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인하는 단계, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및 생성한 예측 블록을 이용하여 현재 블록을 복호화하는 단계를 포함한다.
여기서, 참조 화소를 획득하는 단계는, 경계 화소가 현재 블록의 참조 화소로 이용 불가능한 것으로 결정되었으면, 미리 설정된 화소 값으로 구성한 참조 화소를 획득할 수 있다.
여기서 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 미리 설정된 플래그가 이웃한 블록의 예측 모드를 고려할 것인지 여부를 지시할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 내 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측인 경우, 이웃한 블록의 참조 픽쳐를 고려하여, 경계 화소를 현재 픽쳐의 참조 화소로 이용가능한지 여부를 결정할 수 있다.
여기서, 참조 픽쳐는, 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 현재 픽쳐가 리스트 0 또는 리스트 1에 포함될 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐인 경우에는, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우에는, 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 I 픽쳐인 경우, 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
상술한 본 발명의 다른 목적을 달성하기 위한 본 발명의 다른 측면에 따른 하나 이상의 프로세서들을 포함하는 영상 복호화 장치에서, 하나 이상의 프로세서들은, 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하고, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인한 후, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하고, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하며, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하고, 생성한 예측 블록을 이용하여 현재 블록을 복호화할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른, 화면 내 예측을 수행하는 영상 부호화 방법은, 현재 블록의 좌측 블록 및 상단 블록 각각에 대하여 현재 블록의 참조 화소 구성에 이용 가능한지 여부를 결정하는 단계, 결정한 결과를 기초로, MPM(Most Probable Mode) 후보군을 선정하는 단계, MPM 후보군 내의 화면 내 예측 모드에서 도출되는 예측 블록의 중복성을 판단하는 단계, 중복성이 있는 것으로 판단되면, 좌측 블록과 인접하거나 상단 블록과 인접한 대체 블록의 예측 모드를 이용하여 MPM군을 선정하는 단계 및 선정된 MPM군을 기초로, 현재 블록에 대한 화면 내 예측 모드 부호화를 수행하는 단계를 포함할 수 있다.
여기서, 이용 가능한지 여부를 결정하는 단계는, 좌측 블록 및 상단 블록 각각에 대하여, 영상 경계 밖에 존재 하거나, 화면 간 예측으로 부호화된 경우에는 이용 불가능으로 결정되고, 그 밖에는 이용 가능으로 결정될 수 있다.
여기서, MPM 후보군은, 좌측 블록 및 상단 블록 중 이용 가능으로 결정된 블록에 대한 화면 내 예측 모드, 이용 불가능으로 결정된 블록에 대해 미리 설정된 화면 내 예측 모드, 플레이너(Planar) 예측 모드, 수직(Vertical) 예측 모드 및 DC 예측 모드 중에서 적어도 하나를 포함하여 선정될 수 있다.
여기서, 중복성을 판단하는 단계는, 좌측 블록 및 상단 블록이 모두 이용 가능한 경우, 현재 블록의 좌하단, 좌측, 좌상단, 상단, 우상단에 위치한 블록들 중 연속하는 2 이상의 블록들 내의 참조 화소 값에 대하여 산출한 분산 값을 기초로, 중복성을 판단할 수 있다.
여기서, 중복성을 판단하는 단계는, 좌측 블록 또는 상단 블록 중 적어도 하나가 이용 불가능한 경우, 이용 불가능한 블록과 현재 블록 사이의 경계 화소들 만을 참조하여 구성되는 화면 내 예측 모드를 선정하는 단계 및 선정된 예측 모드 중 적어도 2개가 상기 MPM 후보군에 포함되어 있으면, 중복성이 있는 것으로 판단하는 단계를 포함할 수 있다.
여기서, 대체 블록은, 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 선택될 수 있다.
여기서 이웃 블록이, 하나 이상의 블록으로 구성된 경우에, 대체 블록은 하나 이상의 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택될 수 있다.
여기서, 대체 블록은, 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택될 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른, 화면 내 예측을 수행하는 영상 복호화 방법은, 수신된 비트 스트림으로부터, 현재 블록에 대한 예측 모드가 MPM(Most Probable Mode)군에 포함되어 있는지 여부에 대한 데이터를 추출하는 단계, 데이터를 기초로, 현재 블록에 대한 예측 모드가 MPM군에 포함되어 있는지 결정하는 단계, 현재 블록에 대한 예측 모드가 MPM군에 포함되어 있는 것으로 결정되면, 수신된 비트 스트림으로부터, 현재 블록의 MPM군 인덱스 데이터를 추출하는 단계, 추출된 MPM군 인덱스 데이터에 기초하여, 상기 MPM군에서 현재 블록에 대한 예측 모드를 확인하는 단계 및 확인된 예측 모드를 기초로, 현재 블록에 대한 화면 내 예측을 수행하는 단계를 포함할 수 있다.
여기서, MPM군은, 현재 블록의 좌측 블록 및 상단 블록 각각에 대하여 현재 블록의 참조 화소 구성에 이용 가능한지 여부를 결정하는 단계, 결정한 결과를 기초로, MPM(Most Probable Mode) 후보군을 선정하는 단계, MPM 후보군 내의 화면 내 예측 모드에서 도출되는 예측 블록의 중복성을 판단하는 단계 및 중복성이 있는 것으로 판단되면, 좌측 블록과 인접하거나 상단 블록과 인접한 대체 블록의 예측 모드를 이용하여 선정될 수 있다.
여기서, 이용 가능한지 여부를 결정하는 단계는, 좌측 블록 및 상단 블록 각각에 대하여, 영상 경계 밖에 존재 하거나, 화면 간 예측으로 부호화된 경우에는 이용 불가능으로 결정하고, 그 밖에는 이용 가능으로 결정할 수 있다.
여기서, MPM 후보군은, 좌측 블록 및 상단 블록 중 이용 가능으로 결정된 블록에 대한 화면 내 예측 모드, 이용 불가능으로 결정된 블록에 대해 미리 설정된 화면 내 예측 모드, 플레이너(Planar) 예측 모드, 수직(Vertical) 예측 모드 및 DC 예측 모드 중에서 선정될 수 있다.
여기서, 예측 블록의 중복성을 판단하는 것은, 좌측 블록 및 상단 블록이 모두 이용 가능한 경우, 현재 블록의 좌하단, 좌, 좌상단, 상단, 우상단에 위치한 블록들 중 연속하는 2 이상의 블록들 내의 참조 화소 값에 대하여 산출한 분산 값을 기초로, 판단할 수 있다.
여기서, 예측 블록의 중복성을 판단하는 단계는, 좌측 블록 또는 상단 블록 중 적어도 하나가 이용 불가능한 경우, 이용 불가능한 블록과 현재 블록 사이의 경계 화소들 만을 참조하여 구성되는 화면 내 예측 모드를 선정하고, 선정된 예측 모드 중 적어도 2개가 MPM 후보군에 포함되어 있으면, 중복성이 있는 것으로 판단할 수 있다.
여기서, 대체 블록은, 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 선택될 수 있다.
여기서, 이웃 블록이, 하나 이상의 블록으로 구성된 경우에, 대체 블록은 상기 하나 이상의 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택될 수 있다.
여기서, 대체 블록은, 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택될 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른 하나 이상의 프로세서들을 포함하는 영상 복호화 장치에서, 하나 이상의 프로세서들은, 수신된 비트 스트림으로부터, 현재 블록에 대한 예측 모드가 MPM(Most Probable Mode)군에 포함되어 있는지 여부에 대한 데이터를 추출하고, 데이터를 기초로, 현재 블록에 대한 예측 모드가 MPM군에 포함되어 있는지 결정하며, 현재 블록에 대한 예측 모드가 MPM군에 포함되어 있는 것으로 결정되면, 수신된 비트 스트림으로부터, 현재 블록의 MPM군 인덱스 데이터를 추출한 후, 추출된 MPM군 인덱스 데이터에 기초하여, MPM군에서 현재 블록에 대한 예측 모드를 확인하여 확인된 예측 모드를 기초로, 현재 블록에 대한 화면 내 예측을 수행할 수 있다.
여기서, MPM군은, 현재 블록의 좌측 블록 및 상단 블록 각각에 대하여 현재 블록의 참조 화소 구성에 이용 가능한지 여부를 결정하는 단계, 결정한 결과를 기초로, MPM(Most Probable Mode) 후보군을 선정하는 단계, MPM 후보군 내의 화면 내 예측 모드에서 도출되는 예측 블록의 중복성을 판단하는 단계 및 중복성이 있는 것으로 판단되면, 좌측 블록과 인접하거나 상단 블록과 인접한 대체 블록의 예측 모드를 이용하여 선정될 수 있다.
여기서, 이용 가능한지 여부를 결정하는 단계는, 좌측 블록 및 상단 블록 각각에 대하여, 영상 경계 밖에 존재 하거나, 화면 간 예측으로 부호화된 경우에는 이용 불가능으로 결정하고, 그 밖에는 이용 가능으로 결정할 수 있다.
여기서, 예측 블록의 중복성을 판단하는 단계는, 좌측 블록 또는 상단 블록 중 적어도 하나가 이용 불가능한 경우, 이용 불가능한 블록과 현재 블록 사이의 경계 화소들 만을 참조하여 구성되는 화면 내 예측 모드를 선정하고, 선정된 예측 모드 중 적어도 2개가 상기 MPM 후보군에 포함되어 있으면, 중복성이 있는 것으로 판단할 수 있다.
상술한 바와 같은 본 발명의 실시예에 따른 영상 부호화/복호화 방법 및 장치를 이용할 경우에는, 화면 내 예측에 있어 참조 화소 구성 및 최적 가능 모드 구성을 개선함으로써 예측의 정확도를 향상시킬 수 있다.
또한, 화면 내 예측에 있어 예측의 정확도를 높임으로써 영상의 부호화 효율을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 실시예에 따른, 영상 부호화 장치에 대한 구성도이다.
도 3은 본 발명의 실시예에 따른, 영상 복호화 장치에 대한 구성도이다.
도 4는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 P 슬라이스의 화면 간 예측을 나타낸 예시도이다.
도 5는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 B 슬라이스의 화면 간 예측을 나타낸 예시도이다.
도 6은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 단방향으로 예측 블록을 생성하는 경우를 설명하기 위한 예시도이다.
도 7은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 구성하는 예시도이다.
도 8은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 화면 간 예측을 수행하는 경우의 다른 예를 나타낸 예시도이다.
도 9는 본 발명의 일실시예에 따른 영상 부호화 방법에서 화면 내 예측을 설명하기 위한 예시도이다.
도 10은 본 발명의 일실시예에 따른 영상 부호화 방법에서 P 슬라이스나 B 슬라이스에서의 예측 원리를 설명하기 위한 예시도이다.
도 11은 예측 블록을 획득하는 과정을 설명하기 위한 예시도이다.
도 12는 본 발명의 일실시예에 따른 영상 부호화 방법의 주요 과정을 코딩 단위(coding unit)에서의 신택스로 설명하기 위한 예시도이다.
도 13은 현재 픽쳐에서 블록매칭을 통해 예측 블록을 생성할 경우, 화면 간 예측에서와 같이 대칭형(symmetric type) 분할 또는 비대칭형(asymmetric type) 분할을 지원하는 예를 설명하기 위한 예시도이다.
도 14는 화면 간 예측(Inter)에서 2N×2N, N×N을 지원할 수 있음을 설명하기 위한 예시도이다.
도 15는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 설명하기 위한 예시도이다.
도 16a는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려한 참조 화소 이용 가부을 설명하기 위한 예시도이다.
도 16b는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려하지 않은, 참조 화소 이용 가부을 설명하기 위한 예시도이다.
도 17은, 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 설명하기 위한 또 다른 예시도이다.
도 18a는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드가 화면 내 예측인 경우를 설명하는 예시도이다.
도 18b는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드와 참조 픽쳐를 고려한 것을 설명하는 예시도이다.
도 18c는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려하지 않는 경우를 설명하기 위한 또 다른 예시도이다.
도 19a은, 이용가능한 이웃한 블록이 좌하단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 19b는, 이용가능한 이웃한 블록이 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 19c는 이용가능한 이웃한 블록이 좌하단 및 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 19d는 이용가능한 이웃한 블록이 좌상단 및 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 20은 본 발명의 실시예에 따른 영상 부호화 방법의 흐름도이다.
도 21는 HEVC의 화면내 예측 모드를 설명하는 예시도이다.
도 22a는 참조 화소 구성 단계에서 현재 블록 예측에 사용되는 참조 화소를 설명하기 위한 예시도이다.
도 22b는 이웃 블록의 추가적인 화소가 참조 화소 후보군에 포함된 것을 설명하기 위한 예시도이다.
도 23a, 도 23b, 도 24a 및 도 24b는 참조 화소 구성 단계에서 획득 가능한 더 넓은 참조 화소를 갖는 현재 블록에 대하여, 다양한 모드 방향을 설명하기 위한 예시도이다.
도 25은 일반적인 현재 예측 유닛(또는 예측 블록)에 대한 최적 모드 결정 과정을 나타낸 흐름도이다.
도 26는 현재 예측 유닛(또는 블록)에 대한 예측 모드를 결정하기 위한 예시도이다.
도 27은 예측 모드에 대하여, 그룹화한 예시도이다.
도 28 내지 도 32은 상단 및 좌측의 블록 이외의 이웃한 블록을 활용하여 예측 모드에 대한 MPM을 구성하는 예시도이다.
도 33은 현재 블록과 이웃한 블록이 모두 이용 가능한 경우, 대체 블록으로 최적 모드(MPM)를 구성하는 예시도이다.
도 34은 본 발명의 실시예에 따른 화면 내 예측을 수행하는 영상 부호화 방법을 나타내는 다른 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 동영상은 일련의 픽쳐(Picture)로 구성될 수 있으며, 각 픽쳐들은 블록(Block)과 같은 소정의 영역으로 분할될 수 있다. 또한, 분할된 영역은 블록(Block)뿐 아니라, CTU(Coding Tree Unit), CU(Coding Unit), PU(Prediction Unit), TU(Transform Unit)과 같이 다양한 크기 또는 용어로 지칭할 수 있다. 각 유닛(Unit)은 하나의 휘도 블록과 두 개의 색차 블록으로 구성될 수 있으며, 이는 컬러 포맷에 따라 달리 구성될 수 있다. 또한, 컬러 포맷에 따라 휘도 블록과 색차 블록의 크기가 결정될 수 있다. 예를 들어, 4:2:0인 경우 색차 블록의 크기는 휘도 블록의 가로, 세로가 1/2인 길이를 가질 수 있다. 이 단위에 대해서는 기존의 HEVC 또는 H.264/AVC 등의 용어를 참조할 수 있다. 본 발명에서는 블록과 상기 용어들을 혼용하여 사용하였으나, 표준 기술에 따라 달리 이해될 수 있고, 그러한 표준 기술에 따른 부호화 및 복호화 과정에 따라 상응하는 용어 또는 단위로 이해되어야 한다.
또한, 현재 블록 또는 현재 화소를 부호화하거나 복호화하는데 참조되는 픽쳐, 블록 또는 화소를 참조 픽쳐(Reference Picture), 참조 블록(Reference Block) 또는 참조 화소(Reference Pixel)라고 한다. 또한, 이하에 기재된 "픽쳐(picture)"이라는 용어는 영상(image), 프레임(frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 1을 참조하면, 영상 부호화 장치(12) 및 복호화 장치(11)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 18), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 14) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(12)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 부호화 장치에서 복호화 장치로 전달될 수도 있다.
도 2는 본 발명의 일실시예에 따른 영상 부호화 장치에 대한 블록도이다. 도 3은 본 발명의 일실시예에 따른 영상 복호화 장치에 대한 블록도이다.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
또한, 본 실시예에 따른 영상 복호화 장치(30)는, 도 3에 나타낸 바와 같이, 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가산부(325), 필터부(330) 및 복호화 픽쳐 버퍼(335)를 포함할 수 있다.
전술한 영상 부호화 장치(20)와 영상 복호화 장치(30)는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화 및 복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치(20)의 예측부(200), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235) 및 메모리(240)는 기재된 순서대로 영상 복호화 장치(30)의 예측부(310), 역양자화부(315), 역변환부(320), 가산부(325), 필터부(330) 및 메모리(335)와 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다. 또한, 엔트로부 부호화부(245)는 그 기능을 역으로 수행할 때, 엔트로피 복호화부(305)에 대응될 수 있다. 따라서 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다.
그리고 영상 복호화 장치(30)는 영상 부호화 장치(20)에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치(20)를 중심으로 설명하기로 한다.
컴퓨팅 장치는 영상 부호화 방법 및/또는 영상 복호화 방법을 구현하는 프로그램이나 소프트웨어 모듈을 저장하는 메모리와 메모리에 연결되어 프로그램을 수행하는 프로세서를 포함할 수 있다. 그리고 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
본 실시예의 영상 부호화 장치의 각 구성요소를 좀더 구체적으로 설명하면 다음과 같다.
여기서, 영상 부호화 장치(20)는, 분할부를 더 포함할 수 있다. 분할부는 입력 영상을 정해진 크기의 블록(M×N)으로 분할한다. 여기서, M 또는 N은 1 이상의 임의의 자연수이다. 상세하게는, 분할부은 픽쳐 분할부와 블록 분할부로 구성될 수 있다. 블록은 영상의 특성 및 해상도 등에 따라 크기 또는 형태가 결정될 수 있고, 픽쳐 분할부를 통해 지원되는 블록의 크기 또는 형태는 가로 및 세로의 길이가 2의 지수승으로 표현되는 M×N 정사각 형태(256x256, 128x128, 64x64, 32x32, 16x16, 8x8, 4x4 등)이거나, M×N 직사각 형태일 수 있다. 예를 들어, 해상도가 높은 8k UHD급 영상의 경우 256x256, 1080p HD급 영상의 경우 128x128, WVGA급 영상의 경우 16x16 등 크기로 입력 영상을 분할할 수 있다.
이러한 블록의 크기 또는 형태에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위에서 설정이 가능하며, 관련 정보를 복호화기에 전송할 수 있다. 즉, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 슬라이스 헤더 또는 이들의 조합 단위에서 설정될 수 있다.
여기서, 시퀀스(sequence)는 몇 개의 관련 장면을 모아서 구성되는 구성단위를 가리킨다. 그리고 픽쳐(picture)는 하나의 장면 또는 픽쳐에서 일련의 휘도(Y) 성분 혹은 휘도 + 색차(Y, Cb, Cr) 성분 전체를 일컫는 용어로서, 한 픽쳐의 범위는 경우에 따라서 한 프레임 혹은 한 필드가 될 수 있다.
슬라이스(slice)는 동일 액세스 유닛(access unit) 안에 존재하는 하나의 독립 슬라이스 세그먼트와 다수의 종속 슬라이스 세그먼트를 말할 수 있다. 액세스 유닛은 한 장의 코딩된 픽쳐와 관련된 NAL(network abstraction layer) 유닛의 집합(set)을 의미한다. NAL 유닛은 H.264/AVC와 HEVC 표준에서 비디오 압축 비트스트림을 네트워크 친화적인 형식으로 구성한 구문 구조(syntax structure)이다. 한 슬라이스 단위를 하나의 NAL 유닛으로 구성하는 것이 일반적이며, 시스템 표준에서는 일반적으로 한 프레임을 구성하는 NAL 혹은 NAL 집합을 하나의 액세스 유닛으로 간주한다.
다시 픽쳐 분할부의 설명으로 되돌아가서, 블록 크기 또는 형태(M×N)에 대한 정보는 명시적 플래그로 이루어질 수 있는데, 구체적으로 블록 형태 정보, 블록이 정사각형인 경우에 하나의 길이 정보, 직사각형일 경우에는 각각의 길이 정보, 또는 가로와 세로 길이의 차이값 정보 등을 포함할 수 있다. 예를 들어, M과 N이 k의 지수승(k를 2라 가정)으로 구성되어 있을 경우(M=2m, N=2n), m과 n에 대한 정보를 단항 이진화, 절삭형 단항 이진화 등의 다양한 방법으로 부호화하여 관련 정보를 복호화장치에 전달할 수 있다. 또는, 픽쳐 분할부에서 지원하는 분할 허용 최소 크기(Minblksize)가 I×J(설명의 편의상 I=J라고 가정. I=2i,J=2j 일 경우), m-i 또는 n-j에 대한 정보를 전달할 수 있다. 다른 예로, M과 N이 다를 경우, m과 n의 차이값(|m-n|)을 전달할 수 있다. 또는, 픽쳐 분할부에서 지원하는 분할 허용 최대 크기(Maxblksize)가 I×J(설명의 편의상 I=J라고 가정. I=2i,J=2j 일 경우), i-m 또는 n-j에 대한 정보를 전달할 수 있다.
묵시적인 상황일 경우 예컨대, 관련 정보에 대한 신택스는 존재하나 부호화기 또는 복호화기에서 확인할 수 없는 경우에는, 부호화기나 복호화기는 미리 준비된 기본 설정을 따를 수 있다. 예를 들어, 블록 형태 정보를 확인하는 단계에서 관련 신택스를 확인할 수 없는 경우 블록 형태는 기본 설정인 정사각 형태로 둘 수 있다. 또는, 블록 크기 정보를 확인하는 단계, 상세하게는 상기 예와 같이 분할 허용 최소 크기(Minblksize)로부터의 차이값을 통해 블록 크기 정보를 확인하는 단계에서 차이값 관련 신택스는 확인할 수 있으나 분할 허용 최소 크기(Minblksize) 관련 신택스는 확인할 수 없는 경우 미리 준비된 분할 허용 최소 크기(Minblksize) 관련 기본 설정값으로부터 얻을 수 있다.
이와 같이, 픽쳐 분할부에서 블록의 크기 또는 형태는 부호화기 또는 복호화기에서 관련 정보를 명시적으로 전송하거나 또는 영상의 특성 및 해상도 등에 따라 묵시적으로 결정될 수 있다.
상기와 같이 픽쳐 분할부를 통해 분할 및 결정된 블록은 기본 부호화 단위로 사용될 수 있다. 또한, 픽쳐 분할부를 통해 분할 및 결정된 블록은 픽쳐, 슬라이스, 타일(tile) 등의 상위 레벨 단위를 구성하는 최소 단위일 수 있고, 부호화(Coding Block), 예측(Prediction Block), 변환(Transform Block), 양자화(Quantization Block), 엔트로피(Entropy Block), 인루프 필터(Inloopfiltering Block) 등의 블록의 최대 단위일 수 있으나, 일부 블록은 이에 한정되지 않고 예외도 가능하다.
예컨대, 인루프 필터링 블록과 같이 일부는 위에서 설명한 블록 크기보다 더 큰 단위로 적용될 수 있다.
블록 분할부는 부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 등의 블록에 대한 분할을 수행한다. 분할부는 각 구성에 포함되어 기능을 수행하기도 한다. 예컨대, 변환부(210)에 변환블록 분할부, 양자화부(215)에 양자화블록 분할부를 포함할 수 있다. 블록 분할부의 초기 블록의 크기 또는 형태는 이전 단계 또는 상위 레벨 블록의 분할 결과에 의해 결정될 수 있다. 예를 들어, 부호화 블록의 경우 이전 단계인 픽쳐 분할부를 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 또는, 예측 블록의 경우 예측 블록의 상위 레벨인 부호화 블록의 분할 과정을 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 또는, 변환 블록의 경우 변환 블록의 상위 레벨인 부호화 블록의 분할 과정을 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 상기 초기 블록의 크기 또는 형태를 결정하는 조건은 항상 고정적이지 않으며 일부가 변경되거나 예외인 경우가 존재할 수 있다. 또한, 이전 단계 또는 상위 레벨 블록의 분할 상태(예를 들어, 부호화 블록의 크기, 부호화 블록의 형태 등)와 현재 레벨의 설정 조건(예를 들어, 지원되는 변환 블록의 크기, 변환 블록의 형태 등) 각각 최소 하나 이상의 요인의 조합에 따라 현재 레벨의 분할 동작(분할 가능 여부, 분할 가능한 블록 형태 등)에 영향을 줄 수도 있다.
블록 분할부는 쿼드트리(Quad tree) 기반의 분할 방식을 지원할 수 있다. 즉, 분할 전 블록에서 가로 및 세로가 1/2씩의 길이를 갖는 4개의 블록으로 분할할 수 있다. 이는 최초 블록 기준(dep_0)으로 분할 허용 깊이 한계(dep_k, k는 분할 허용 횟수를 의미하고, 분할 허용 깊이 한계(dep_k)일 때의 블록 크기는 (M >> k, N >> k)임)까지 분할을 반복적으로 할 수 있다.
또한, 바이너리 트리 기반의 분할 방식을 지원할 수 있다. 이는 가로 또는 세로 중 하나의 길이가 분할 전 블록과 비교하여 1/2의 길이를 갖는 2개의 블록으로 분할할 수 있음을 나타낸다. 상기 쿼드 트리 분할과 바이너리 트리의 분할의 경우 대칭 분할(Symmetric Partition)이나 비대칭 분할(Asymmetric Partition)일 수 있으며, 이는 부호화기 또는 복호화기의 설정에 따라 어느 분할 방식을 따를지 정할 수 있다. 본 발명의 영상 부호화 방법에서 대칭 분할 방식 위주로 설명을 할 것이다.
분할 플래그(div_flag)를 통해 각 블록의 분할 여부를 나타낼 수 있으며, 해당 값이 1이면 분할을 수행하고, 값이 0이면 분할을 수행하지 않는다. 또는, 해당 값이 1이면 분할을 수행하고 추가 분할이 가능하며, 값이 0이면 분할을 수행하지 않고 더 이상의 분할을 허용하지 않을 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서만 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다.
분할 플래그는 쿼드트리 분할에서 사용 가능하고, 바이너리 트리 분할에서도 사용 가능하다. 바이너리 트리 분할에서는 분할 방향이 블록의 분할 깊이, 부호화 모드, 예측 모드, 크기, 형태, 종류(부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 등 중 하나일 수 있음. 또는, 휘도, 색차 중 하나일 수 있음) 그리고 슬라이스 타입, 분할 허용 깊이 한계, 분할 허용 최소 및 최대 크기 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다.
그 경우 분할 플래그에 따라 해당 분할 방향에 따라 즉, 블록의 가로만 1/2로 분할되거나 또는 세로만 1/2로 분할될 수 있다. 예를 들어, 블록이 M×N(M>N)으로 M이 N보다 클 때 가로 분할을 지원하며, 현재 분할 깊이(dep_curr)는 분할 허용 깊이 한계보다 작아서 추가 분할이 가능하다고 가정하면, 위의 분할 플래그는 1비트로 할당되어 해당 값이 1이면 가로 분할을 수행하고, 0이면 더 이상 분할하지 않을 수 있다. 분할 깊이는 쿼드 트리와 바이너리 트리 분할에 하나의 분할 깊이를 둘 수도 있고, 쿼드 트리와 바이너리 트리 분할에 각각의 분할 깊이를 둘 수도 있다. 또한, 분할 허용 깊이 한계는 쿼드 트리와 바이너리 트리 분할에 하나의 분할 허용 깊이 한계를 둘 수도 있고, 쿼드 트리와 바이너리 트리 분할에 각각의 분할 허용 깊이 한계를 둘 수도 있다.
다른 예로, 블록이 M×N (M>N)이고 N이 미리 설정된 분할 허용 최소 크기와 같아서 가로 분할을 지원하지 않는다면, 위의 분할 플래그는 1비트로 할당되어 해당 값이 1이면 세로 분할을 수행하고, 0이면 분할을 수행하지 않는다.
또한, 가로 분할 또는 세로 분할을 위한 플래그(div_h_flag, div_v_flag)를 각각 지원할 수 있으며, 상기 플래그에 따라 바이너리 분할을 지원할 수 있다. 가로 분할 플래그(div_h_flag) 또는 세로 분할 플래그(div_v_flag)를 통해 각 블록의 가로 또는 세로 분할 여부를 나타낼 수 있으며, 가로 분할 플래그(div_h_flag) 또는 세로 분할 플래그(div_v_flag)가 1이면 가로 또는 세로 분할을 수행하며, 0이면 가로 또는 세로 분할을 수행하지 않는다. 또는, 각 플래그가 1이면 가로 또는 세로 분할을 수행하며 가로 또는 세로의 추가 분할이 가능하고, 값이 0이면 가로 또는 세로 분할을 수행하지 않으며 더 이상의 가로 또는 세로의 추가 분할은 허용하지 않을 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다. 또는, 가로 분할 또는 세로 분할을 위한 플래그(div_flag/h_v_flag)를 지원할 수 있으며, 상기 플래그에 따라 바이너리 분할을 지원할 수 있다. 분할 플래그(div_flag)는 가로 또는 세로 분할 여부를 나타낼 수 있으며 분할 방향 플래그(h_v_flag)는 가로 또는 세로의 분할 방향을 나타낼 수 있다. 분할 플래그(div_flag)가 1이면 분할을 수행하며 분할 방향 플래그(h_v_flag)에 따라 가로 또는 세로 분할을 수행하며, 0이면 가로 또는 세로 분할을 수행하지 않는다. 또는, 해당 값이 1이면 분할 방향 플래그(h_v_flag)에 따라 가로 또는 세로 분할을 수행하며 가로 또는 세로의 추가 분할이 가능하고, 값이 0이면 가로 또는 세로 분할을 수행하지 않으며 더 이상의 가로 또는 세로 분할을 허용하지 않는 것으로 간주할 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다.
이러한 분할 플래그 또한 가로, 세로 분할을 위해 각각 지원할 수 있으며, 상기 플래그에 따라 바이너리 트리 분할을 지원할 수 있다. 또한, 분할 방향이 미리 결정되어 있는 경우, 상기 예와 같이 둘 중의 하나의 분할 플래그만 사용되거나, 두 분할 플래그 모두가 사용될 수 있다.
예를 들어, 상기의 플래그가 다 허용되면 가능한 블록의 형태는 M×N, M/2×N, M×N/2, M/2×N/2 중 어느 하나로 분할이 될 수 있다. 이 경우, 플래그는 (div_h_flag/div_v_flag순으로) 00, 01, 10, 11로 부호화될 수 있다. 위의 경우 상기 분할 플래그가 중첩되어 사용될 수 있는 설정에서의 예시이고, 상기 분할 플래그가 중첩되어 사용될 수 없는 설정 또한 가능하다. 예를 들어, 분할 블록 형태가 M×N, M/2×N, M×N/2로 분할 될 수 있으며, 이 경우 위의 플래그는 (div_h_flag/div_v_flag순으로) 00, 01, 10로 부호화되거나, (div_flag/h_v_flag순으로. h_v_flag는 분할 방향이 가로 또는 세로를 나타내는 플래그) 0, 10, 11로 부호화될 수 있다. 여기에서 중첩의 의미는 가로 분할과 세로 분할을 동시에 수행하는 것을 의미할 수 있다. 전술한 쿼드트리 분할 및 바이너리 트리 분할은 부호화기 또는 복호화기의 설정에 따라 어느 하나가 단독으로 사용되거나 혼용되어 사용될 수 있다. 예컨대, 블록 크기 또는 형태에 따라서 쿼드트리 또는 바이너리 트리 분할이 결정될 수 있다. 즉, 블록 형태가 M×N이고, M이 N보다 큰 경우에는 가로 분할, 블록 형태가 M×N이고, N이 M보다 큰 경우에는 세로 분할에 따라 바이너리 트리 분할이 지원될 수 있고, 블록 형태가 M×N이고, N과 M인 동일한 경우에는 쿼드트리 분할이 지원될 수 있다.
다른 예로, 블록(M×M)의 크기가 블록 분할 경계값(Thrblksize)보다 크거나 같은 경우는 바이너리 트리 분할이 지원될 수 있고, 그보다 작은 경우에는 쿼드트리 분할이 지원될 수 있다.
다른 예로, 블록(M×N)의 M 또는 N이 제 1 분할 허용 최대 크기 (Maxblksize1)보다 작거나 같고 제 1 분할 허용 최소 크기(Minblksize1)보다 크거나 같을 경우에는 쿼드 트리 분할을 지원하고, 블록(M×N)의 M 또는 N이 제 2 분할 허용 최대 크기(Maxblksize2)보다 작거나 같고 제 2 분할 허용 최소 크기(Minblksize2)보다 크거나 같을 경우에는 바이너리 트리 분할이 지원될 수도 있다. 만약 상기 분할 허용 최대 크기와 분할 허용 최소 크기로 정의할 수 있는 제 1 분할 지원 범위와 제 2 분할 지원 범위가 중복되는 경우에는, 부 또는 복호화기의 설정에 따라 제 1 또는 제 2 분할 방법 중의 우선순위가 주어질 수 있다. 본 예에서는 제 1의 분할 방법은 쿼드트리 분할, 제 2 분할 방법은 바이너리 트리 분할로 예를 들 수 있다. 예를 들어, 제 1 분할 허용 최소 크기(Minblksize1)이 16이고 제 2 분할 허용 최대 크기(Maxblksize2)가 64이며 분할 전 블록이 64×64 일 경우, 제 1 분할 지원 범위와 제 2 분할 지원 범위에 모두 속하므로 쿼드 트리 분할과 바이너리 트리 분할이 가능하다. 기설정에 따라 제 1 분할 방법(본 예에서는 쿼드 트리 분할)으로 우선 순위가 주어진다면, 분할 플래그 (div_flag)가 1일 경우에는 쿼드 트리 분할을 수행하며 추가 쿼드 트리 분할이 가능하고, 0일 경우에는 쿼드 트리 분할을 수행하지 않으며 더 이상 쿼드 트리 분할을 수행하지 않는 것으로 간주할 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서만 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다. 만약, 상기 분할 플래그(div_flag)가 1일 경우에는 32×32의 크기를 갖는 4개의 블록으로 분할이 되어 제 1 분할 허용 최소 크기(Minblksize1) 보다 크기 때문에 쿼드 트리 분할을 계속 수행할 수 있다. 만약, 0일 경우에는 추가적인 쿼드 트리 분할을 수행하지 않으며, 현재 블록 크기(64×64)가 상기 제 2 분할 지원 범위에 속하게 되므로 바이너리 트리 분할을 수행할 수 있다. 분할 플래그(div_flag/h_v_flag순으로)가 0일 경우에는 더 이상 분할을 수행하지 않으며, 10 또는 11인 경우에는 가로 분할 또는 세로 분할을 수행할 수 있다. 만약 분할 전 블록이 32×32이며 분할 플래그(div_flag)가 0이라 더 이상 쿼드 트리 분할을 하지 않고 제 2 분할 허용 최대 크기(Maxblksize2)가 16일 경우, 현재 블록의 크기(32×32)가 제 2 분할 지원 범위에 속하지 않으므로 더 이상의 분할을 지원하지 않을 수 있다. 위 설명에서 분할 방법의 우선순위는 슬라이스 타입, 부호화 모드, 휘도 및 색차 성분 등 중에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다.
다른 예로, 휘도 및 색차 성분에 따라 다양한 설정을 지원할 수 있다. 예를 들어, 휘도 성분에서 결정된 쿼드 트리 또는 바이너리 트리 분할 구조를 색차 성분에서는 추가적인 정보 부 또는 복호화없이 그대로 사용할 수 있다. 또는, 휘도 성분과 색차 성분의 독립적인 분할을 지원할 경우, 휘도 성분에는 쿼드 트리 + 바이너리 트리, 색차 성분에는 쿼드 트리 분할을 지원할 수도 있다. 또는, 휘도와 색차 성분에서 쿼드 트리 + 바이너리 트리 분할을 지원하되, 상기 분할 지원 범위가 휘도와 색차 성분에도 동일 또는 비례할 수도 있고, 그렇지 않을 수도 있다. 예를 들어, 컬러 포맷이 4:2:0인 경우일 경우, 색차 성분의 분할 지원 범위가 휘도 성분의 분할 지원 범위의 N/2일 수 있다.
다른 예로, 슬라이스 타입에 따라 다른 설정을 둘 수 있다. 예를 들어, I 슬라이스에서는 쿼드 트리 분할을 지원할 수 있고, P 슬라이스에서는 바이너리 트리 분할을 지원할 수 있고, B 슬라이스에서는 쿼드 트리 + 바이너리 트리 분할을 지원할 수 있다.
상기 예와 같이 쿼드 트리 분할 및 바이너리 트리 분할이 다양한 조건에 따라 설정 및 지원될 수 있다. 상기 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 상기 예에서 언급된 하나 이상의 요인 또는 이들의 조합되는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다. 위의 분할 허용 깊이 한계는 분할 방식(쿼드트리, 바이너리 트리), 슬라이스 타입, 휘도 및 색차 성분, 부호화 모드 등에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 또한, 상기 분할 지원 범위는 분할 방식(쿼드트리, 바이너리 트리), 슬라이스 타입, 휘도 및 색차 성분, 부호화 모드 등에서 최소 하나 이상의 요인에 또는 이들의 조합에 따라 결정될 수 있으며, 관련 정보는 분할 지원 범위의 최대값, 최소값으로 표현할 수 있다. 이에 대한 정보를 명시적 플래그로 구성할 경우, 최대값 및 최소값 각각의 길이 정보, 또는 최소값과 최대값의 차이값 정보 등을 표현할 수 있다. 예를 들어, 최대값과 최소값이 k의 지수승(k를 2라 가정)으로 구성되어 있을 경우, 최대값과 최소값의 지수 정보를 다양한 이진화를 통해 부호화하여 복호화 장치에 전달할 수 있다. 또는, 최대값과 최소값의 지수의 차이값을 전달할 수 있다. 이 때 전송되는 정보는 최소값의 지수 정보와 지수의 차이값 정보일 수 있다
전술한 설명에 따라 플래그와 관련한 정보들은 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 생성되고 전송될 수 있다.
상기 예시로 제시된 분할 플래그들로 쿼드 트리 또는 바이너리 트리 또는 두 트리 방식의 혼합을 통해 블록 분할 정보를 나타낼 수 있으며, 분할 플래그는 단항 이진화, 절삭형 단항 이진화 등의 다양한 방법으로 부호화하여 관련 정보를 복호화 장치에 전달할 수 있다. 상기 블록의 분할 정보를 표현하기 위한 분할 플래그의 비트스트림 구조는 1개 이상의 스캔 방법 중 선택할 수 있다. 예를 들어, 분할 깊이 순서(dep0에서 dep_k순서로) 기준으로 분할 플래그들의 비트스트림을 구성할 수 있고, 분할 여부 기준으로 분할 플래그들의 비트스트림을 구성할 수도 있다. 분할 깊이 순서 기준 방법에서는 최초 블록 기준으로 현 수준의 깊이에서의 분할 정보를 획득한 후 다음 수준의 깊이에서의 분할 정보를 획득하는 방법이며, 분할 여부 기준 방법에서는 최초 블록 기준으로 분할된 블록에서의 추가 분할 정보를 우선적으로 획득하는 방법을 의미하며, 이 외에도 위의 예에서 제시되지 않은 다른 스캔 방법이 포함되어 선택될 수 있다.
또한, 구현에 따라서, 블록 분할부는 전술한 분할 플래그가 아닌 미리 정의된 소정 형태의 블록 후보군에 대한 인덱스 정보를 생성하여 이를 표현할 수 있다. 블록 후보군의 형태는, 예를 들어, 분할 전 블록에서 가질 수 있는 분할 블록의 형태로서 M×N, M/2×N, M×N/2, M/4×N, 3M/4×N, M×N/4, M×3N/4, M/2×N/2 등을 포함할 수 있다. 위와 같이 분할 블록의 후보군이 결정되면 상기 분할 블록 형태에 대한 인덱스 정보를 고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등과 같은 다양한 방법을 통해 부호화할 수 있다. 위에서 설명한 분할 플래그와 같이 블록의 분할 깊이, 부호화 모드, 예측 모드, 크기, 형태, 종류 그리고 슬라이스 타입, 분할 허용 깊이 한계, 분할 허용 최소 및 최대 크기 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 분할 블록 후보군이 결정될 수 있다. 다음 설명을 위해서 (M×N, M/2×N/2)를 후보 list1, (M×N, M/2×N, M×N/2, M/2×N/2)를 후보 list2, (M×N, M/2×N, M×N/2)를 후보 list3, (M×N, M/2×N, M×N/2, M/4×N, 3M/4×N, M×N/4, M×3N/4, M/2×N/2)를 후보 list4라 가정한다. 예를 들어, M×N을 기준으로 설명할 때, (M=N)일 경우에는 후보 list2의 분할 블록 후보를, (M≠N)일 경우에는 후보 list3의 분할 블록 후보를 지원할 수 있다.
다른 예로, M×N의 M 또는 N이 경계값(blk_th)보다 크거나 같을 경우에는 후보 list2의 분할 블록 후보를, 그보다 작을 경우에는 후보 list4의 분할 블록 후보를 지원할 수 있다. 또는, M또는 N이 제 1 경계값(blk_th_1)보다 크거나 같을 경우에는 후보 list1의 분할 블록 후보를, 제 1 경계값(blk_th_1)보다는 작지만 제 2 경계값(blk_th_2)보다는 크거나 같을 경우에는 후보 list2의 분할 블록 후보를, 제 2 경계값(blk_th_2)보다 작을 경우에는 후보 list4의 분할 블록 후보를 지원할 수 있다.
다른 예로, 부호화 모드가 화면 내 예측인 경우 후보 list2의 분할 블록 후보를, 화면 간 예측인 경우 후보 list4의 분할 블록 후보를 지원할 수 있다.
상기와 같은 분할 블록 후보가 지원된다 하더라도 각각의 블록에서 이진화에 따른 비트 구성은 같을 수도, 다를 수도 있다. 예를 들어, 위의 분할 플래그에서의 적용과 같이 블록 크기 또는 형태에 따라 지원되는 분할 블록 후보가 제한된다면 해당 블록 후보의 이진화에 따른 비트 구성이 달라질 수 있다. 예컨대, (M>N)일 경우에는 가로 분할에 따른 블록 형태 즉, M×N, M×N/2, M/2×N/2를 지원할 수 있고, 분할 블록 후보군(M×N, M/2×N, M×N/2, M/2×N/2)에서의 M×N/2과 현재 조건의 M×N/2에 따른 인덱스의 이진 비트가 서로 다를 수 있다. 블록의 종류 예컨대 부호화, 예측, 변환, 양자화, 엔트로피, 인루프필터링 등에 사용되는 블록의 종류에 따라 분할 플래그 또는 분할 인덱스 방식 중 하나를 사용하여 블록의 분할 및 형태에 대한 정보를 표현할 수 있다. 또한, 각 블록 종류에 따라 분할 및 블록의 형태 지원에 대한 블록 크기 제한 및 분할 허용 깊이 한계 등이 다를 수 있다.
블록 단위의 부호화 또는 복호화 과정은 우선 부호화 블록이 결정된 후, 예측 블록 결정, 변환 블록 결정, 양자화 블록 결정, 엔트로피 블록 결정, 인루프 필터 결정 등의 과정에 따라 부호화 또는 복호화를 진행할 수 있다. 상기의 부호화 또는 복호화 과정에 대한 순서는 항상 고정적이지 않으며, 일부 순서가 변경되거나 제외될 수 있다. 상기 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 블록의 크기 및 형태가 결정되고, 결정된 각 블록의 영상 데이터 및 결정된 각 블록의 크기 및 형태 등의 분할 관련 정보들을 부호화할 수 있다.
예측부(200)는 소프트웨어 모듈인 예측 모듈(prediction module)을 이용하여 구현될 수 있고, 부호화할 블록에 대하여 화면 내 예측 방식이나 화면 간 예측 방식으로 예측 블록을 생성할 수 있다. 여기서, 예측 블록은 화소 차이의 관점에서, 부호화할 블록과 가깝게 일치하는 것으로 이해되는 블록이며, SAD(Sum of Absolute Difference), SSD(Sum of Square Difference)를 포함하는 다양한 방법으로 결정될 수 있다. 또한, 이때 영상 블록들을 복호화시에 사용될 수 있는 각종 구문(Syntax)들을 생성할 수도 있다. 예측 블록은 부호화 모드에 따라 화면 내 블록과 화면 간 블록으로 분류될 수 있다.
화면 내 예측(intra prediction)은 공간적인 상관성을 이용하는 예측 기술로, 현재 픽쳐 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 참조 화소들을 이용하여 현재 블록을 예측하는 방법을 말한다. 즉, 화면 내 예측은 예측과 복원으로 재구성된 밝기 값을 부호화기 및 복호화기에서 참조 화소로 사용할 수 있다. 화면 내 예측은 연속성을 갖는 평탄한 영역 및 일정한 방향성을 가진 영역에 대해 효과적일 수 있으며, 공간적인 상관성을 이용하기 때문에 임의 접근(random access)을 보장하고, 오류 확산을 방지하는 목적으로 사용될 수 있다.
화면 간 예측(inter prediction)은 하나 이상의 과거 또는 미래 픽쳐에서 부호화된 영상을 참조하여 시간적인 상관성을 이용하여 데이터의 중복을 제거하는 압축 기법을 이용한다. 즉, 화면 간 예측은 하나 이상의 과거 또는 미래 픽쳐를 참조함으로써 높은 유사성을 갖는 예측 신호를 생성할 수 있다. 화면 간 예측을 이용하는 부호화기에서는 참조 픽쳐에서 현재 부호화하려는 블록과 상관도가 높은 블록을 탐색하고, 선택된 블록의 위치 정보와 잔차(residue) 신호를 복호화기로 전송할 수 있고, 복호화기는 전송된 영상의 선택 정보를 이용하여 부호화기와 동일한 예측 블록을 생성하고 전송된 잔차 신호를 보상하여 복원 영상을 구성할 수 있다.
도 4는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 P 슬라이스의 화면 간 예측을 나타낸 예시도이다. 도 5는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 B 슬라이스의 화면 간 예측을 나타낸 예시도이다.
본 실시예의 영상 부호화 방법에서, 화면 간 예측은 시간적으로 높은 상관성이 있는 이전에 부호화된 픽쳐로부터 예측 블록을 생성하기 때문에 부호화 효율을 높일 수 있다. Current(t)는 부호화할 현재 픽쳐를 의미할 수 있고, 영상 픽쳐의 시간적인 흐름 혹은 픽쳐 오더 카운트(Picture Order Count, POC)기준으로 할 때 현재 픽쳐의 POC보다 이전의 제1 시간적인 거리(t-1)를 가지는 제1 참조픽쳐(t-1)와 제1 시간적인 거리보다 이전의 제2 시간적인 거리(t-2)를 가지는 제2 참조픽쳐(t-2)를 포함할 수 있다.
즉, 도 4에 도시한 바와 같이, 본 실시예의 영상 부호화 방법에 채용할 수 있는 화면 간 예측은 현재 픽쳐(current(t))의 현재 블록과 참조 픽쳐들(t-1, t-2)의 참조 블록들의 블록 매칭을 통해 상관성이 높은 블록을 이전에 부호화가 완료된 참조 픽쳐들(t-1, t-2)로부터 최적의 예측 블록을 찾는 움직임 추정을 수행할 수 있다. 정밀한 추정을 위해 필요에 따라 인접한 두 화소들 사이에 적어도 하나 이상의 부화소가 배열된 구조에 기반하는 보간(interpolation) 과정을 수행한 후, 최적의 예측 블록을 찾은 후에 움직임 보상을 하여 최종적인 예측 블록을 찾을 수 있다.
또한, 도 5에 도시한 바와 같이, 본 실시예의 영상 부호화 방법에 채용할 수 있는 화면 간 예측은 현재 픽쳐(current(t))을 기준으로 시간적으로 양방향에 존재하는 이미 부호화가 완료된 참조 픽쳐들(t-1, t+1)로부터 예측 블록을 생성할 수 있다. 또한, 1개 이상의 참조 픽쳐에서 2개의 예측 블록을 생성할 수 있다.
화면 간 예측을 통해 영상의 부호화를 수행할 경우, 최적의 예측 블록에 대한 움직임 벡터 정보와 참조 픽쳐에 대한 정보를 부호화한다. 본 실시예에서는 단방향 또는 양방향으로 예측 블록을 생성할 경우 참조 픽쳐 리스트를 달리 구성하여 해당 참조 픽쳐 리스트로부터 예측 블록을 생성할 수 있다. 기본적으로 시간적으로 현재 픽쳐 이전에 존재하는 참조 픽쳐는 리스트 0에 할당되고 현재 픽쳐 이후에 존재하는 참조 픽쳐는 리스트 1에 할당되어 관리될 수 있다. 참조 픽쳐 리스트 0를 구성할 때, 참조 픽쳐 리스트 0의 참조 픽쳐 허용 개수까지 채우지 못할 경우 현재 픽쳐 이후에 존재하는 참조 픽쳐를 할당할 수 있다. 이와 비슷하게 참조 픽쳐 리스트 1을 구성할 때, 참조 픽쳐 리스트 1의 참조 픽쳐 허용 개수까지 채우지 못할 경우 현재 픽쳐 이전에 존재하는 참조 픽쳐를 할당할 수 있다.
도 6은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 단방향으로 예측 블록을 생성하는 경우를 설명하기 위한 예시도이다.
도 6을 참조하면, 본 실시예에 따른 영상 부호화 및 복호화 방법에서는 기존과 같이 이전에 부호화된 참조 픽쳐(t-1, t-2)로부터 예측 블록을 찾을 수 있고, 이에 더하여 현재 픽쳐(current(t))에 이미 부호화가 완료된 영역으로부터 예측 블록을 찾을 수 있다.
즉, 본 실시예에 따른 영상 부호화 및 복호화 방법에서는, 시간적으로 높은 상관성이 있는 이전에 부호화된 픽쳐(t-1, t-2)로부터 예측 블록을 생성한 것뿐만 아니라 공간적으로 상관성이 높은 예측 블록을 함께 찾도록 구현될 수 있다. 그러한 공간적으로 상관성이 높은 예측 블록을 찾는 것은 화면 내 예측의 방식으로 예측 블록을 찾는 것에 대응할 수 있다. 현재 픽쳐에서 부호화가 완료된 영역으로부터 블록 매칭을 수행하기 위해, 본 실시예의 영상 부호화 방법은 화면 내 예측 모드와 혼합하여 예측 후보와 관련된 정보에 대한 신택스(syntax)를 구성할 수 있다.
예를 들어, n(n은 임의의 자연수) 가지의 화면 내 예측 모드를 지원하는 경우, 한 가지 모드를 화면 내 예측 후보군에 추가하여 n+1가지 모드를 지원하며 2M-1≤n+1<2M 를 만족시키는 M개의 고정 비트를 사용하여 예측 모드를 부호화할 수 있다. 또한, HEVC(high efficiency video coding)의 MPM(most probable mode)와 같이 가능성 높은 예측 모드의 후보군 중에서 선택하도록 구현될 수 있다. 또한, 예측 모드 부호화의 상위 단계에서 우선적으로 부호화할 수도 있다.
현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성할 경우, 본 실시예의 영상 부호화 방법은 화면 간 예측 모드와 혼합하여 관련된 정보에 대한 신택스를 구성할 수도 있다. 추가적인 관련 예측 모드 정보로는 움직임 또는 이동(motion or displacement) 관련 정보가 이용될 수 있다. 움직임 또는 이동 관련 정보는 여러 벡터 후보 중 최적의 후보 정보, 최적의 후보 벡터와 실제 벡터와의 차분치, 참조 방향, 참조 픽쳐 정보 등을 포함할 수 있다.
도 7은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 구성하는 예시도이다. 도 8은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 화면 간 예측을 수행하는 경우의 다른 예를 나타낸 예시도이다.
도 7을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐(current(t))의 현재 블록에 대하여 각기 참조 픽쳐 리스트(reference list 0, reference list 1)로부터 화면 간 예측을 수행할 수 있다.
도 7 및 도 8을 참조하면, 참조 픽쳐 리스트 0은 현재 픽쳐(t) 이전의 참조 픽쳐로 구성할 수 있는데, t-1, t-2는 각각 현재 픽쳐(t)의 픽쳐 오더 카운트(Picture Order Count, POC)보다 이전의 제1 시간적인 거리(t-1), 제2 시간적인 거리(t-2)를 가지는 참조 픽쳐들을 지시한다. 또한, 참조 픽쳐 리스트 1은 현재 픽쳐(t) 이후의 참조 픽쳐로 구성할 수 있는데, t+1, t+2는 각각 현재 픽쳐(t)의 POC보다 이후의 제1 시간적인 거리(t+1), 제2 시간적인 거리(t+2)를 가지는 참조 픽쳐들을 지시한다.
참조 픽쳐 리스트 구성에 관한 전술한 예들은 시간적인 거리(본 예에서는 POC 기준)의 차이가 1인 참조 픽쳐들로 참조 픽쳐 리스트를 구성하는 예를 나타내고 있으나, 참조 픽쳐간의 시간적인 거리 차이를 다르게 구성할 수도 있다. 즉, 참조 픽쳐들의 인덱스 차이와 참조 픽쳐들의 시간적인 거리 차이가 비례하지 않을 수 있다는 것을 의미한다. 또한, 리스트 구성 순서를 시간적인 거리 기준으로 구성되지 않을 수도 있다. 이에 대한 내용은 후술할 참조 픽쳐 리스트 구성 예에서 확인할 수 있다.
슬라이스 타입(I, P 또는 B)에 따라 리스트에 있는 참조 픽쳐로부터 예측을 수행할 수 있다. 그리고 현재 픽쳐(current(t))에서 블록 매칭을 통해 예측 블록을 생성할 경우, 참조 픽쳐 리스트(reference list 0, reference list 1)에 현재 픽쳐를 추가하여 화면 간 예측 방식으로 부호화를 수행할 수 있다.
도 8에 도시한 바와 같이 참조 픽쳐 리스트 0(reference list 0)에 현재 픽쳐(t)를 추가하거나 또는 참조 픽쳐 리스트 1(reference list 1)에 현재 픽쳐(t)를 추가할 수 있다. 즉, 참조 픽쳐 리스트 0은 현재 픽쳐(t) 이전의 참조 픽쳐에 시간적인 거리(t)인 참조 픽쳐를 추가하여 구성할 수 있고, 참조 픽쳐 리스트 1은 현재 픽쳐(t) 이후의 참조 픽쳐에 시간적인 거리(t)인 참조 픽쳐를 추가하여 구성할 수도 있다.
예를 들어, 참조 픽쳐 리스트 0를 구성할 때 현재 픽쳐 이전의 참조 픽쳐를 참조 픽쳐 리스트 0에 할당하고 이어 현재 픽쳐(t)를 할당할 수 있고, 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐 이후의 참조 픽쳐를 참조 픽쳐 리스트 1에 할당하고 이어 현재 픽쳐(t)를 할당할 수 있다. 또는, 참조 픽쳐 리스트 0를 구성할 때 현재 픽쳐(t)를 할당하고 이어 현재 픽쳐 이전의 참조 픽쳐를 할당할 수 있고, 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐(t)를 할당하고 이어 현재 픽쳐 이후의 참조 픽쳐를 할당할 수 있다. 또는, 참조 픽쳐 리스트 0을 구성할 때 현재 픽쳐 이전의 참조 픽쳐를 할당하고 이어 현재 픽쳐 이후의 참조 픽쳐를 할당하고 현재 픽쳐(t)를 할당할 수 있다. 이와 비슷하게 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐 이후의 참조 픽쳐를 할당하고 이어 현재 픽쳐 이전의 참조 픽쳐를 할당하고 현재 픽쳐(t)를 할당할 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다.
각 참조 픽쳐 리스트에 현재 픽쳐를 포함할 지 여부(예를 들어, 어떤 리스트에도 추가하지 않음 또는 리스트 0에만 추가 또는 리스트 1에만 추가 또는 리스트 0와 1에 같이 추가)는 부호화기 또는 복호화기에 동일한 설정이 가능하고, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송이 가능하다. 이에 대한 정보는 고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등의 방법을 통해 부호화될 수 있다.
본 실시예의 영상 부호화 및 복호화 방법은, 도 7의 방법과 달리, 현재 픽쳐(t)에서 블록 매칭을 수행하여 예측 블록을 선택하고, 이러한 예측 블록에 대한 관련 정보를 포함하는 참조 픽쳐 리스트를 구성하며, 이러한 참조 픽쳐 리스트를 영상 부호화 및 복호화에 이용하는데 차이가 있다.
참조 픽쳐 리스트 구성에 있어서 각 리스트 구성 순서 및 규칙, 각 리스트의 참조 픽쳐 허용 개수에 대한 설정을 달리할 수 있는데, 이는 현재 픽쳐의 리스트 포함여부(현재 픽쳐를 화면 간 예측에서의 참조 픽쳐로 포함할지 여부), 슬라이스 타입, 리스트 재구성 파라미터(리스트 0, 1에 각각 적용될 수도 있고, 리스트 0, 1에 같이 적용될 수도 있음), 픽쳐 집합(Group of Picture, GOP) 내의 위치, 시간적 계층 정보(temporal id) 등의 여러 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수도 있고, 명시적으로 관련 정보를 시퀀스, 픽쳐 등의 단위로 전송할 수 있다. 예를 들어, P 슬라이스인 경우 현재 픽쳐를 리스트에 포함하는 것과 관계없이 참조 픽쳐 리스트 0은 리스트 구성 규칙 A에 따를 수 있고, B 슬라이스인 경우 현재 픽쳐를 리스트에 포함하는 참조 픽쳐 리스트 0에는 리스트 구성 규칙 B, 참조 픽쳐 리스트 1에는 리스트 구성 규칙 C를 따를 수 있고, 현재 픽쳐를 포함하지 않는 참조 픽쳐 리스트 0에는 리스트 구성 규칙 D, 참조 픽쳐 리스트 1에는 리스트 구성 규칙 E에 따를 수 있으며, 리스트 구성 규칙 중 B와 D, C와 E는 같을 수도 있다. 리스트 구성 규칙은 상기 참조 픽쳐 리스트 구성 예에서 설명된 것과 같거나 변형된 방식으로 구성될 수 있다. 다른 예로, 현재 픽쳐를 리스트에 포함하는 경우에는 제 1 참조 픽쳐 허용 개수, 포함하지 않는 경우에는 제 2 참조 픽쳐 허용 개수를 설정할 수 있다. 제 1 참조 픽쳐 허용 개수와 제 2 참조 픽쳐 허용 개수는 같을 수도 있고 다를 수도 있으며, 제 1 참조 픽쳐 허용 개수와 제 2 참조 픽쳐 허용 개수의 차이가 1인 것을 기본 설정으로 둘 수도 있다. 다른 예로, 현재 픽쳐를 리스트에 포함하며 리스트 재구성 파라미터가 적용될 경우, 슬라이스 A에서는 모든 참조 픽쳐가 리스트 재구성 후보군이 될 수 있고, 슬라이스 B에서는 리스트 재구성 후보군에 일부 참조 픽쳐만 포함될 수 있다. 이 때, 슬라이스 A 또는 B는 현재 픽쳐의 리스트 포함여부, 시간적 계층 정보, 슬라이스 타입, 픽쳐 집합(Group of Picture, GOP) 내의 위치 등에 구분될 수 있고, 후보군에 포함 여부를 나누는 요인으로 참조 픽쳐의 픽쳐 오더 카운트(Picture Order Count, POC) 또는 참조 픽쳐 인덱스, 참조 예측 방향(현재 픽쳐 전후), 현재 픽쳐 여부 등에 의해 결정될 수 있다.
전술한 구성에 의하면, 현재 픽쳐에서 화면 간 예측으로 부호화된 참조 블록을 이용할 수 있으므로, I 슬라이스의 움직인 예측에서도 화면 간 예측을 허용 또는 이용할 수 있게 된다.
또한, 참조 픽쳐 리스트를 구성할 때, 슬라이스 타입에 따라 인덱스 할당 또는 리스트 구성 순서를 달리할 수 있다. I 슬라이스의 경우, 현재 픽쳐(current(t))에서 상기 참조 픽쳐 리스트 구성 예와 같이 우선순위를 높게 하여 더 적은 인덱스(예를 들어, idx=0, 1, 2와 같이)를 사용하고, 해당 참조 픽쳐 리스트의 참조 픽쳐 허용 개수(C)를 최대값으로 하는 이진화(고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등) 통해 영상 부호화에서의 비트량을 줄일 수 있다. 또한, P 또는 B 슬라이스의 경우, 현재 픽쳐에서 블록 매칭을 수행하여 현재 블록의 참조 픽쳐를 예측 후보로 선택할 확률이 다른 참조 픽쳐를 통해 예측 후보를 선택하는 확률보다 낮다고 판단되는 상황이라 하면, 현재 픽쳐의 블록 매칭에 대한 우선순위를 뒤로 설정하여 더 높은 인덱스(예를 들어, idx= C, C-1와 같이)를 사용하여 해당 참조 픽쳐 리스트의 참조 픽쳐 허용 개수를 최대값으로 하는 다양한 방법의 이진화를 통해 영상 부호화에서의 비트량을 줄일 수 있다. 위의 예에서 현재 픽쳐의 우선순위 설정은 상기 참조 픽쳐 리스트 구성 예에서 설명된 것과 같거나 변형된 방식으로 구성될 수 있다. 또한, 슬라이스 타입에 따라(예를 들어, I 슬라이스) 참조 픽쳐 리스트를 구성하지 않음으로써 참조 픽쳐에 대한 정보를 생략하는 것이 가능하다. 예컨대, 기존의 화면 간 예측을 통해 예측 블록을 생성하되 화면 간 예측 모드에서의 움직임 정보에서 참조 픽쳐 정보를 제외한 나머지로 화면간 예측 정보를 표현할 수 있다.
현재 픽쳐에서 블록 매칭을 수행하는 방식은 슬라이스 타입에 따라 지원 여부를 결정할 수 있다. 예를 들어, 현재 블록에서의 블록 매칭을 I 슬라이스에서는 지원하지만 P 슬라이스나 B 슬라이스에서는 지원하지 않도록 설정할 수도 있고, 다른 예로의 변형 또한 가능하다. 또한, 현재 픽쳐에서 블록 매칭을 지원하는 방식은 픽쳐, 슬라이스, 타일 등 단위로 지원 여부를 결정할 수도 있고, 픽쳐 집합(Group of Picture, GOP) 내의 위치, 시간적 계층 정보(temporal ID) 등에 따라 결정할 수도 있다. 이러한 설정 정보는 영상 부호화 과정이나 부호화기에서 복호화기로 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다. 또한, 상위 레벨 단위에서 위와 관련된 설정 정보 또는 신택스가 존재하며 설정 관련 동작이 온(on)되는 상황이라도 하위 레벨 단위에서 위와 동일한 설정 정보 또는 신택스가 존재할 때, 하위 레벨 단위에서의 설정 정보가 상위 레벨 단위에서의 설정 정보를 우선할 수 있다. 예를 들어, 동일 또는 유사한 설정 정보를 시퀀스, 픽쳐, 슬라이스에서 처리한다면, 시퀀스 단위보다는 픽쳐 단위가, 픽쳐 단위보다는 슬라이스 단위가 우선순위를 가질 수 있다.
도 9는 본 발명의 일실시예에 따른 영상 부호화 방법에서 화면 내 예측을 설명하기 위한 예시도이다.
도 9를 참조하면, 본 실시예에 따른 화면 내 예측 방법은, 참조 화소 채움(reference sample padding), 참조 화소 필터링(reference sample filtering), 화면 내 예측(intra prediciton) 및 경계 필터링(boundary filtering)의 일련의 단계들을 포함할 수 있다.
참조 화소 채움 단계는 참조 화소 구성 단계의 예시일 수 있고, 참조 화소 필터링 단계는 참조 화소 필터부로 지칭될 수 있고, 화면 내 예측은 예측 블록 생성 단계와 예측 모드 부호화 단계를 포함할 수 있으며, 경계 필터링은 후처리 필터 단계의 일실시예에 대한 예시일 수 있다.
즉, 본 실시예의 영상 부호화 장치에서 실행되는 화면 내 예측은 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 부호화 단계 및 후처리 필터링 단계를 포함할 수 있다. 여러 가지 환경 요인 예컨대, 블록 크기, 블록의 형태, 블록 위치, 예측 모드, 예측 방법, 양자화 파라미터 등에 따라서 전술한 과정들 중 하나 또는 일부는 생략될 수 있고, 다른 과정이 추가될 수도 있으며, 위에 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
전술한 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 부호화 단계 및 후처리 필터링 단계는 메모리에 저장되는 소프트웨어 모듈들을 메모리에 연결되는 프로세서가 실행하는 형태로 구현될 수 있다. 따라서 이하의 설명에서는 설명의 편의상 각 단계를 구현하는 소프트웨어 모듈과 이를 실행하는 프로세서의 조합에 의해 생성되는 기능부 또는 이러한 기능부의 기능을 수행하는 구성부로서 각각 참조 화소 구성부, 참조 화소 필터부, 예측 블록 생성부, 예측 모드 부호화부 및 후처리 필터부를 각 단계의 실행 주체로서 지칭하기로 한다.
각 구성요소를 좀더 구체적으로 설명하면, 참조 화소 구성부는 참조 화소 채움을 통해 현재 블록의 예측에 사용될 참조 화소를 구성한다. 참조 화소가 존재하지 않거나 이용 불가한 경우, 참조 화소 채움은 이용가능한 가까운 화소로부터 값을 복사 등의 방법을 하여 참조 화소에 사용할 수 있다. 값의 복사에는 복원된 픽쳐 버퍼(decoded picture buffer, DPB)가 이용될 수 있다.
즉, 화면 내 예측은 현재 픽쳐의 이전에 부호화가 완료된 블록들의 참조 화소를 사용하여 예측을 수행한다. 이를 위해, 참조 화소 구성 단계에서는 현재 블록의 이웃 블록 즉, 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 블록들 등과 같은 인접한 화소들을 주로 참조 화소로 사용한다. 상기 참조 화소를 위한 이웃 블록의 후보군은 블록의 부호화 순서를 래스터 스캔(raster scan) 또는 제트 스캔(z-scan)를 따를 경우의 예시일 뿐, 역 제트 스캔(inverse z-scan) 등과 같은 스캔이 부호화 순서 스캔 방식으로 사용될 경우에는 위의 블록들에 추가로 오른쪽, 오른쪽 아래, 아래 블록 등과 같은 인접 화소들도 참조 화소로 사용할 수 있다.
또한, 구현에 따라서 화면 내 예측의 단계별 구성에 따라 바로 인접한 화소 외의 추가적인 화소들이 대체 또는 기존 참조 화소와 혼합되어 사용될 수 있다.
또한, 화면 내 예측의 모드 중 방향성을 갖는 모드로 예측이 되는 경우, 정수 단위의 참조 화소를 선형 보간을 통해 소수 단위의 참조 화소를 생성할 수 있다. 정수 단위 위치에 존재하는 참조 화소를 통해 예측을 수행하는 모드는 수직, 수평, 45도, 135도를 갖는 일부 모드를 포함하며, 위 예측 모드들에 대해서는 소수 단위의 참조 화소를 생성하는 과정은 필요하지 않을 수 있다. 상기 예측 모드를 제외한 다른 방향성을 가진 예측 모드들은 보간되는 참조 화소는 1/2, 1/4, 1/8, 1/16, 1/32, 1/64 와 같이 1/2의 지수승의 보간 정밀도를 가질 수도 있고, 1/2의 배수의 정밀도를 가질 수도 있다. 이는 지원되는 예측 모드의 개수 또는 예측 모드의 예측 방향 등에 따라 보간 정밀도가 결정될 수 있기 때문이다. 픽쳐, 슬라이스, 타일, 블록 등에서 항상 고정적인 보간 정밀도를 지원할 수도 있고, 블록의 크기, 블록의 형태, 지원되는 모드의 예측 방향 등에 따라 적응적인 보간 정밀도가 지원될 수도 있다. 이 때, 모드의 예측 방향은 특정 선 기준(예를 들어, 좌표평면 상의 양<+>의 x축)으로 상기 모드가 가리키는 방향의 기울기 정보 또는 각도 정보로 표현될 수 있다.
보간 방법으로는 바로 인접한 정수 화소를 통해 선형 보간을 수행하기도 하지만 그 외의 보간 방법을 지원할 수 있다. 보간을 위해 1개 이상의 필터 종류 및 탭의 개수 예를 들어, 6-tap 위너 필터, 8-tap 칼만 필터 등을 지원할 수 있으며, 블록의 크기, 예측 방향 등에 따라 어떤 보간을 수행할 것인지를 결정할 수 있다. 또한, 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송될 수 있다.
참조 화소 필터부는 참조 화소를 구성한 후 부호화 과정에서 남아있는 열화를 줄여줌으로써 예측 효율을 높여줄 목적으로 참조 화소에 필터링을 수행할 수 있다. 참조 화소 필터부는, 블록의 크기, 형태 및 예측 모드에 따라 필터의 종류 및 필터링의 적용 유무를 묵시적 또는 명시적으로 결정할 수 있다. 즉, 같은 탭(tap)의 필터라도 필터 종류에 따라 필터 계수를 다르게 결정할 수 있다. 예를 들어, [1,2,1]/4, [1,6,1]/8과 같은 3 탭 필터를 사용할 수 있다.
또한, 참조 화소 필터부는, 추가적으로 비트를 보낼지 안 보낼지를 결정하여 필터링 적용 여부를 결정할 수 있다. 예를 들어, 묵시적인 경우, 참조 화소 필터부는 주변 참조 블록에서의 화소들의 특성(분산, 표준편차 등)에 따라 필터링 적용 여부를 판단할 수 있다.
또한, 참조 화소 필터부는, 관련 플래그가 잔차 계수, 화면 내 예측 모드 등에 기설정된 숨김(hiding) 조건을 만족하는 경우, 필터링 적용 여부를 판단할 수 있다. 필터의 탭수는, 예를 들어, 작은 블록(blk)에서는 [1,2,1]/4와 같은 3-tap, 큰 블록(blk)에서는 [2,3,6,3,2]/16과 같은 5-tap으로 설정될 수 있고, 적용 횟수는 필터링을 수행하지 않을 것인지, 1번 필터링할 것인지, 2번 필터링할 것인지 등으로 결정될 수 있다.
또한, 참조 화소 필터부는 현재 블록의 가장 인접한 참조 화소에 대해 기본적으로 필터링을 적용할 수 있다. 가장 인접한 참조 화소 외에 추가적인 참조 화소들 또한 필터링 과정에 고려될 수 있다. 예를 들어, 가장 인접한 참조 화소를 대체하여 추가적인 참조 화소들에 필터링을 적용할 수도 있고, 가장 인접한 참조 화소에 추가적인 참조 화소들을 혼용하여 필터링을 적용할 수도 있다.
상기 필터링은 고정적 또는 적응적으로 적용될 수 있는데, 이는 현재 블록의 크기 또는 이웃 블록의 크기, 현재 블록 또는 이웃 블록의 부호화 모드, 현재 블록과 이웃 블록의 블록 경계 특성(예를 들어, 부호화 단위의 경계인지 변환 단위의 경계인지 등), 현재 블록 또는 이웃 블록의 예측 모드 또는 방향, 현재 블록 또는 이웃 블록의 예측 방식, 양자화 파라미터 등의 요인 중에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정이 될 수 있다. 이에 대한 결정은 부호화기 또는 복호화기에 동일한 설정을 가질 수 있고(묵시적), 부호화 비용 등을 고려하여 결정될 수도 있다(명시적). 기본적으로 적용되는 필터는 저역통과 필터(low pass filter)이며, 위에 명시된 여러 요인에 따라 필터 탭수, 필터 계수, 필터 플래그 부호화 여부, 필터 적용 횟수 등이 결정될 수 있으며, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위에서 설정이 가능하며, 관련 정보를 복호화기에 전송할 수 있다.
예측 블록 생성부는 화면 내 예측에 있어서 참조 화소를 통해 외삽 또는 보외(extrapolation) 방식이나, 참조 화소의 평균값(DC) 또는 평면(planar) 모드와 같은 내삽(interpolation) 방식이나, 참조 화소의 복사(copy) 방식으로 예측 블록을 생성할 수 있다. 참조 화소의 복사의 경우 하나의 참조 화소를 복사하여 하나의 이상의 예측 화소를 생성할 수도 있고, 하나 이상의 참조 화소를 복사하여 하나 이상의 예측 화소를 생성할 수 있으며, 복사한 참조 화소의 개수는 복사된 예측 화소의 개수와 동일하거나 적을 수 있다.
또한, 상기 예측 방식에 따라 방향성 예측 방식과 비방향성 예측 방식으로 분류가 가능하며, 상세하게는 방향성 예측 방식은 직선 방향성 방식과 곡선 방향성 방식으로 분류가 가능하다. 직선 방향성 방식은 외삽 또는 보외 방식을 차용하나 예측 블록의 화소는 예측 방향 선상에 놓인 참조 화소를 통해 생성하며, 곡선 방향성 방식은 외삽 또는 보외 방식을 차용하나 예측 블록의 화소는 예측 방향 선상에 놓인 참조 화소를 통해 생성하되 블록의 세부 방향성(예를 들어, 에지<Edge>)를 고려하여 화소 단위의 부분적인 예측 방향의 변경이 허용되는 방식을 의미한다. 본 발명의 영상 부호화 및 복호화 방법에서 방향성 예측 모드의 경우 직선 방향성 방식 위주로 설명을 할 것이다. 또한, 상기 방향성 예측 방식의 경우 인접한 예측 모드 간의 간격은 균등하거나 비균등일 수 있으며, 이는 블록의 크기 또는 형태에 따라 결정될 수 있다. 예를 들어, 블록 분할부를 통해 현재 블록이 M×N의 크기와 형태를 갖는 블록을 획득했을 때, M과 N이 같을 경우에는 예측 모드 간의 간격은 균등일 수 있으며, M과 N이 다를 경우에는 예측 모드 간의 간격은 비균등일 수 있다. 다른 예로, M이 N보다 큰 경우에는 수직 방향성을 갖는 모드들은 수직 모드(90도)에 가까운 예측 모드 사이에는 더 세밀한 간격을 할당하고, 수직 모드에 먼 예측 모드에는 넓은 간격을 할당할 수 있다. N이 M보다 큰 경우에는 수평 방향성을 갖는 모드들은 수평 모드(180도)에 가까운 예측 모드 사이에는 더 세밀한 간격을 할당하고, 수평 모드에 먼 예측 모드에는 넓은 간격을 할당할 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다. 이 때, 예측 모드 간의 간격은 각 모드의 방향성을 나타내는 수치 기반으로 계산될 수 있으며, 예측 모드의 방향성은 방향의 기울기 정보 또는 각도 정보로 수치화될 수 있다.
또한, 위의 방법 외에 공간적인 상관성을 이용하는 다른 방법 등을 포함하여 예측 블록을 생성할 수 있다. 예를 들어, 현재 픽쳐를 참조 픽쳐 삼아 움직임 탐색 및 보상과 같은 화면 간 예측 방식을 이용한 참조 블록을 예측 블록으로 생성할 수 있다. 예측 블록 생성 단계는 상기 예측 방식에 따라 참조 화소를 사용하여 예측 블록을 생성할 수 있다. 즉, 상기 예측 방식에 따라 기존의 화면 내 예측 방식의 외삽, 내삽, 복사, 평균 등의 방향성 예측 또는 비방향성 예측 방식을 통해 예측 블록을 생성할 수 있고, 화면 간 예측 방식을 사용하여 예측 블록을 생성할 수 있으며, 그 외의 추가적인 방법도 사용될 수 있다.
상기 화면 내 예측 방식은 부호화기 또는 복호화기의 동일한 설정 하에 지원될 수 있으며, 슬라이스 타입, 블록의 크기, 블록의 형태 등에 따라 결정될 수 있다. 화면 내 예측 방식은 상기 언급된 예측 방식 중 최소 하나 이상의 방식 또는 이들의 조합에 따라 지원될 수 있다. 화면 내 예측 모드는 상기 지원되는 예측 방식에 따라 구성될 수 있다. 지원되는 화면 내 예측 모드의 개수는 상기 예측 방식, 슬라이스 타입, 블록의 크기, 블록의 형태 등에 따라 결정될 수 있다. 상기 관련 정보들은 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위에서 설정 및 전송이 가능하다.
예측 모드 부호화에 의해 실행되는 예측 모드 부호화 단계는 부호화 비용 측면에서 각 예측 모드에 따른 부호화 비용이 최적인 모드를 현재 블록의 예측 모드로 결정할 수 있다.
일례로, 예측 모드 부호화부는 예측 모드 비트를 줄이기 위한 목적으로 하나 이상의 이웃 블록의 모드를 현재 블록 모드 예측에 이용할 수 있다. 현재 블록의 모드와 동일할 확률이 높은 모드(most_probable_mode, MPM) 후보군으로 포함할 수 있는데, 이웃 블록의 모드들은 위의 후보군에 포함될 수 있다. 예를 들어, 현재 블록의 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 등의 블록의 예측 모드를 위의 후보군에 포함할 수 있다.
예측 모드의 후보군은 이웃 블록의 위치, 이웃 블록의 우선순위, 분할 블록에서의 우선순위, 이웃 블록의 크기 또는 형태, 기설정된 특정 모드, (색차 블록인 경우) 휘도 블록의 예측 모드 등의 요인 중 최소 하나 이상의 요인 또는 그들의 조합에 따라 구성될 수 있으며, 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송할 수 있다.
예를 들어, 현재 블록과 이웃한 블록이 2개 이상의 블록으로 분할되어 있을 경우, 분할된 블록 중 어느 블록의 모드를 현재 블록의 모드 예측 후보로 포함할 지는 부호화기 또는 복호화기의 동일한 설정하에 결정할 수 있다. 예를 들어, 현재 블록(M×M)의 이웃 블록 중 왼쪽 블록은 블록 분할부에서 쿼드 트리 분할을 수행하여 분할 블록이 3개로 구성되어 있으며 위에서 아래 방향으로 M/2×M/2, M/4×M/4, M/4×M/4의 블록을 포함할 경우, 블록 크기 기준으로 M/2×M/2 블록의 예측 모드를 현재 블록의 모드 예측 후보로 포함할 수 있다. 다른 예로, 현재 블록(N×N)의 이웃 블록 중 위쪽 블록은 블록 분할부에서 바이너리 트리 분할을 수행하여 분할 블록이 3개로 구성되어 있으며 왼쪽에서 오른쪽 방향으로 N/4×N, N/4×N, N/2×N의 블록을 포함할 경우, 기설정된 순서(왼쪽에서 오른쪽으로 우선순위가 할당됨)에 따라 왼쪽에서 첫번째 N/4×N 블록의 예측 모드를 현재 블록의 모드 예측 후보로 포함할 수 있다.
다른 예로, 현재 블록과 이웃한 블록의 예측 모드가 방향성 예측 모드일 경우, 해당 모드의 예측 방향과 인접한 예측 모드(상기 모드의 방향의 기울기 정보 또는 각도 정보 측면)를 현재 블록의 모드 예측 후보군에 포함할 수 있다. 또한, 기설정된 모드(planar, DC, 수직, 수평 등)은 이웃 블록의 예측 모드 구성 또는 조합에 따라 우선적으로 포함될 수 있다. 또한, 이웃 블록의 예측 모드 중 발생 빈도가 높은 예측 모드를 우선적으로 포함할 수 있다. 상기 우선순위는 현재 블록의 모드 예측 후보군에 포함될 가능성뿐만 아니라 상기 후보군 구성에서도 더 높은 우선 순위 또는 인덱스(즉, 이진화 과정에서 적은 비트를 할당 받을 확률이 높음을 의미)를 할당 받을 가능성을 의미할 수 있다.
다른 예로, 현재 블록의 모드 예측 후보군의 최대치가 k개이고, 왼쪽 블록은 현재 블록의 세로 길이보다 길이가 작은 m개의 블록으로 구성되며, 위쪽 블록은 현재 블록의 가로 길이보다 길이가 작은 n개의 블록으로 구성되면, 이웃 블록들의 분할 블록 합(m+n)이 k보다 클 때 기설정된 순서(왼쪽에서 오른쪽, 위쪽에서 아래쪽)에 따라 후보군을 채울 수 있고, 이웃 블록 분할들의 분할 블록 합(m+n)이 후보군의 최대치(k)보다 클 경우, 상기 이웃 블록(왼쪽 블록, 위쪽 블록)의 예측 모드에 상기 이웃 블록 위치 외 다른 이웃 블록(예를 들어, 왼쪽 아래, 왼쪽 위, 오른쪽 위 등)과 같은 블록의 예측 모드도 현재 블록의 모드 예측 후보군에 포함될 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다.
이와 같이, 현재 블록의 모드의 예측을 위한 후보 블록은 특정 블록 위치에만 한정하지 않으며 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위에 위치하는 블록 중 최소 하나 이상의 블록으로부터 예측 모드 정보를 활용할 수 있으며, 상기 예에서와 같이 여러 요인들을 고려하여 현재 블록의 예측 모드 후보군을 구성할 수 있다.
예측 모드 부호화부 현재 블록의 모드와 동일할 확률이 높은 모드(MPM) 후보군(본 예에서 후보군 1로 지칭함)과 그렇지 않은 모드 후보군(본 예에서 후보군 2로 지칭함)으로 분류할 수 있으며, 현재 블록의 예측 모드가 상기 후보군들 중 어느 후보군에 속하는지에 따라 예측 모드 부호화 과정이 달라질 수 있다. 전체 예측 모드는 후보군 1의 예측 모드와 후보군 2의 예측 모드의 합으로 구성될 수 있으며, 후보군 1의 예측 모드 개수와 후보군 2의 예측 모드 개수는 전체 예측 모드의 개수, 슬라이스 타입, 블록의 크기, 블록의 형태 등의 요인 중 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 상기 후보군에 따라 동일한 이진화를 적용하거나 다른 이진화를 적용할 수 있다. 예를 들어, 후보군 1에는 고정 길이 이진화를, 후보군 2에는 단삭 절단형 이진화를 적용할 수도 있다. 위의 설명에서 후보군의 개수를 2개로 예를 들었지만, 현재 블록의 모드와 동일할 확률이 높은 모드 제 1 후보군, 현재 블록의 모드와 동일할 확률이 높은 모드 제 2 후보군, 그렇지 않은 모드 후보군 등과 같이 확장이 가능하며, 이의 변형 또한 가능하다.
후처리 필터부에 의해 실행되는 후처리 필터링 단계는, 현재 블록과 이웃 블록의 경계에 인접한 참조 화소와 인접한 현재 블록 내의 화소 간에 상관성이 높은 특성을 고려하여 이전 과정에서 생성한 예측 블록 중 일부 예측 화소는 경계에 인접한 하나 이상의 참조 화소와 하나 이상의 상기 예측 화소를 필터링하여 생성된 값으로 대체할 수 있고, 상기 블록의 경계에 인접한 참조 화소들간의 특성을 수치화한 값(예를 들어, 화소값의 차이, 기울기 정보 등)을 필터링 과정에 적용하여 생성된 값으로 상기 예측 화소를 대체할 수 있고, 위의 방법 외에 비슷한 목적(참조 화소를 통해 예측 블록의 일부 예측 화소를 보정)을 갖는 다른 방법 등이 추가될 수 있다. 후처리 필터부에 있어서, 필터의 종류 및 필터링 적용 유무는 묵시적 또는 명시적으로 결정될 수 있으며, 후처리 필터부에 사용되는 참조 화소와 현재 화소의 위치 및 개수, 그리고 적용되는 예측 모드의 종류 등은 부호화기 또는 복호화기에서 설정 가능하고, 관련 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.
또한, 후처리 필터링 단계에서는 상기 블록 경계 필터링(boundary filtering)과 같이 예측 블록 생성 후 추가적인 후처리 과정을 진행할 수 있다. 또한, 잔차 신호 획득 후 변환, 양자화 과정 및 그 역과정을 거쳐서 얻게된 잔차 신호와 예측 신호를 합하여 복원된 현재 블록을 위의 경계 필터링과 비슷하게 인접한 참조 블록의 화소의 특성을 고려하여 후처리 필터링을 수행할 수도 있다.
최종적으로 전술한 과정을 통해 예측 블록을 선택 또는 획득하게 되며, 이 과정에서 나오는 정보는 예측 모드 관련 정보를 포함할 수 있고, 예측 블록의 획득 후 잔차 신호의 부호화를 위해 변환부(210)에 전달할 수 있다.
도 10은 본 발명의 일실시예에 따른 영상 부호화 방법에서 P 슬라이스나 B 슬라이스에서의 예측 원리를 설명하기 위한 예시도이다.
도 10을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 모션 예측(motion estimation module) 및 보간(interpolation) 단계들을 포함할 수 있다. 모션 예측 단계에서 생성되는 모션 벡터, 참조 픽쳐 인덱스, 참조 방향에 대한 정보는 보간 단계로 전달될 수 있다. 모션 예측 단계와 보간 단계에서는 복원된 픽쳐 버퍼(decoded picture buffer, DPB)에 저장되는 값을 이용할 수 있다.
즉, 영상 부호화 장치는, 이전의 부호화된 픽쳐들에서 현재 블록과 유사한 블록을 찾기 위해 모션 예측(motion estimation)을 실행할 수 있다. 또한, 영상 부호화 장치는 소수 단위의 정밀도보다 정밀한 예측을 위해 참조 픽쳐의 내삽(interpolation)을 실행할 수 있다. 최종적으로 영상 부호화 장치는 예측 변수(predictor)를 통해 예측 블록을 획득하게 되며, 이 과정에서 나오는 정보는 움직임 벡터(motion vector), 참조 픽쳐 인덱스(reference picture index 또는 reference index), 참조 방향(reference direction) 등이 있으며, 이후 잔차 신호 부호화를 진행할 수 있다.
본 실시예에서는 P 슬라이스나 B 슬라이스에서도 화면 내 예측을 수행하기 때문에 화면 간 예측과 화면 내 예측을 지원하는 도 9와 같은 조합 방식의 구현이 가능하다.
도 11은 예측 블록을 획득하는 과정을 설명하기 위한 예시도이다.
도 11을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 참조 화소 채움(reference sample padding), 참조 화소 필터링(reference sample filtering), 화면 내 예측(intra prediction), 경계 필터링(boundary filtering), 모션 예측(motion estimation), 및 보간(interpolation)의 단계들을 포함할 수 있다.
영상 부호화 장치는, 현재 픽쳐에서 블록 매칭을 지원하는 경우, I 슬라이스에서의 예측 방식은 도 9에 도시한 구성이 아닌 도 11에 도시한 구성으로 구현 가능하다. 즉, 영상 부호화 장치는 I 슬라이스에서 예측 모드뿐만 아니라 P 슬라이스나 B 슬라이스에서만 발생하는 움직임 벡터, 참조 픽쳐 인덱스, 참조 방향 등의 정보를 예측 블록 생성에 이용할 수 있다. 다만, 참조 픽쳐가 현재라는 특성으로 인해 부분 생략 가능한 정보가 존재할 수 있다. 일례로, 참조 픽쳐가 현재 픽쳐인 경우 참조 픽쳐 인덱스, 참조 방향은 생략 가능하다.
또한, 영상 부호화 장치는, 내삽(interpolation)을 적용하는 경우, 영상의 특성상 예컨대 컴퓨터 그래픽 등의 인공적인 영상의 특성상 소수 단위까지의 블록 매칭이 필요하지 않을 수 있기 때문에 이에 대한 수행 여부도 부호화기에서 설정할 수 있고, 이에 대해서 시퀀스, 픽쳐, 슬라이스 등의 단위 설정도 가능하다.
예를 들어, 영상 부호화 장치는, 부호화기의 설정에 따라 화면 간 예측에 사용되는 참조 픽쳐들의 내삽을 수행하지 않을 수 있고, 현재 픽쳐에서 블록 매칭을 하는 경우에만 내삽을 수행하지 않는 등의 다양한 설정을 할 수 있다. 즉, 본 실시예의 영상 부호화 장치는 참조 픽쳐들의 내삽 수행 여부에 대해 설정할 수 있다. 이 때, 참조 픽쳐 리스트를 구성하는 모든 참조 픽쳐 또는 일부 참조 픽쳐들에 내삽 수행 여부를 결정할 수 있다. 일례로, 영상 부호화 장치는, 어떤 현재 블록에서는 참조 블록이 존재하는 영상의 특성이 인공적인 영상이라 소수 단위로 블록 매칭을 할 필요가 없을 때에는 내삽을 수행하지 않고, 자연 영상이라 소수 단위로 블록 매칭을 할 필요가 있을 때는 내삽을 수행하도록 동작할 수 있다.
또한, 영상 부호화 장치는, 블록 단위로 내삽을 수행한 참조 픽쳐에서 블록 매칭 적용 여부에 대한 설정이 가능하다. 예를 들어, 자연 영상과 인공 영상이 혼합되어 있을 경우 참조 픽쳐에 내삽을 수행하되 인공적인 영상의 부분을 탐색하여 최적의 움직임 벡터를 얻을 수 있는 경우에는 일정 단위(여기에서 정수 단위라고 가정)로 움직임 벡터를 표현할 수 있으며, 또한 선택적으로 자연 영상의 부분을 탐색하여 최적의 움직임 벡터를 얻을 수 있는 경우에는 다른 일정 단위(여기에서는 1/4 단위라고 가정)로 움직임 벡터를 표현할 수 있다.
도 12는 본 발명의 일실시예에 따른 영상 부호화 방법의 주요 과정을 코딩 단위(coding unit)에서의 신택스로 설명하기 위한 예시도이다.
도 12를 참조하면, curr_pic_BM_enabled_flag는 현재 픽쳐에서 블록 매칭을 허용하는 플래그를 의미하고 시퀀스, 픽쳐 단위에서 정의 및 전송될 수 있으며, 이 때 현재 픽쳐에서 블록 매칭을 수행하여 예측 블록 생성하는 과정은 화면 간 예측을 통해 동작하는 경우를 의미할 수 있다. 그리고 잔차 신호를 부호화하지 않는 화면 간 기술인 cu_skip_flag는, I 슬라이스를 제외한 P 슬라이스나 B 슬라이스에서만 지원되는 플래그라고 가정할 수 있다. 그 경우, curr_pic_BM_enabled_flag가 온(on)이 되는 경우에 I 슬라이스에서도 블록 매칭(block maching, BM)을 화면 간 예측 모드에서 지원할 수가 있다.
즉, 본 실시예의 영상 부호화 장치는 현재 픽쳐에 블록 매칭을 통해 예측 블록을 생성하는 경우에 스킵(skip)을 지원할 수 있으며, 블록 매칭 외의 화면 내 기술의 경우에도 스킵을 지원할 수 있다. 그리고 조건에 따라 I 슬라이스에서 스킵을 지원하지 않을 수도 있다. 이러한 스킵 여부는 부호화기 설정에 따라 결정될 수 있다.
일례로, I 슬라이스에서 스킵을 지원할 경우, 특정 플래그인 if(cu_skip_flag)를 통해 예측 단위인 prediction_unit()으로 연결하여 잔차신호를 부호화하지 않고 블록 매칭을 통해 예측 블록을 복원 블록으로 바로 복원할 수 있다. 또한, 영상 부호화 장치는 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 사용하는 방법을 화면 간 예측 기술로 분류하고, 그러한 구분을 특정 플래그인 pred_mode_flag를 통해 처리할 수 있다.
즉, 영상 부호화 장치는, pred_mode_flag가 0이면 예측 모드를 화면 간 예측 모드(MODE_INTER)로 설정하고, 1이면 화면 내 예측 모드(MODE_INTRA)로 설정할 수 있다. 이것은 기존과 유사한 화면 내 기술이지만 기존의 구조와의 구분을 위해 I 슬라이스에서 화면 간 기술 또는 화면 내 기술로 분류될 수 있다. 즉, 본 실시예의 영상 부호화 장치는, I 슬라이스에서 시간적인 상관성을 이용하지 않지만 시간적인 상관성의 구조를 사용할 수 있다. part_mode는 부호화 단위에서 분할되는 블록의 크기 및 형태에 대한 정보를 의미한다.
도 13은 현재 픽쳐에서 블록매칭을 통해 예측 블록을 생성할 경우, 화면 간 예측에서와 같이 대칭형(symmetric type) 분할 또는 비대칭형(asymmetric type) 분할을 지원하는 예를 설명하기 위한 예시도이다.
도 13을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성하는 경우, 화면 간 예측에서와 같이 2N×2N, 2N×N, N×2N와 같은 대칭형(symmetric) 분할을 지원하거나, nL×2N, nR×2N, 2N×nU, 2N×nD와 같은 비대칭형(asymmetric) 분할을 지원할 수 있다. 이는 블록 분할부의 분할 방식에 따라 다양한 블록 크기 및 형태가 결정될 수 있다.
도 14는 화면 간 예측(Inter)에서 2N×2N, N×N을 지원할 수 있음을 설명하기 위한 예시도이다.
도 14를 참조하면, 본 실시예에 따른 영상 부호화 방법은, 기존의 화면 내 예측에 사용하는 예측 블록 형태와 같이 2N×2N 및 N×N을 지원할 수 있다. 이는 블록 분할부에서 쿼드트리 분할 방식 또는 미리 정의된 소정의 블록 후보군에 따른 분할 방식 등을 통해 정사각 형태를 지원한 예이며, 화면 내 예측에서도 바이너리 트리 분할 방식 또는 미리 정의돈 소정의 블록 후보군에 직사각 형태를 추가하여 다른 블록 형태 또한 지원할 수 있으며, 이에 대한 설정은 부호화기에서 설정이 가능하다. 또한, 화면 내 예측 중 현재 픽쳐에 블록 매칭을 할 경우에만 스킵을 적용할 것인지, 기존의 화면 내 예측에도 적용할 것인지, 그 외의 새로운 화면 내 예측에 적용할 것인지 또한 부호화기에서 설정 가능하다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다.
감산부(205)는 부호화할 현재 블록의 화소값으로부터 예측부(200)로부터 생성되는 예측 블록의 화소값들을 감산하여 화소 차이값을 도출함으로써, 잔차 블록을 생성할 수 있다.
변환부(210)는 감산부(205)에서 현재 블록과 화면 내 예측 또는 화면 간 예측을 통해 생성된 예측 블록과의 차분치인 잔차 블록을 전달받아 주파수 영역으로 변환한다. 변환 과정을 통해 잔차 블록의 각 화소는 변환 블록의 변환 계수에 대응된다. 변환 블록의 크기 및 형태는 부호화 단위와 같거나 작은 크기를 가질 수 있다. 또한, 변환 블록의 크기 및 형태는 예측 단위와 같을 수도 있고 작을 수도 있다. 영상 부호화 장치는 여러 예측 단위를 묶어서 변환 처리를 수행할 수 있다.
변환 블록의 크기 또는 형태는 블록 분할부를 통해 결정될 수 있으며, 블록 분할에 따라 정사각 형태 또는 직사각 형태의 변환을 지원할 수 있다. 부호화기 또는 복호화기에서 지원되는 변환 관련 설정 (지원되는 변환 블록의 크기, 형태 등)에 따라 상기 블록 분할 동작에 영향을 줄 수 있다.
상기 변환 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 변환 블록의 크기 및 형태가 결정되고, 결정된 각 변환 블록의 영상 데이터 및 결정된 각 변환 블록의 크기 및 형태 등의 분할 정보들을 부호화할 수 있다.
변환은 1차원 변환 매트릭스에 의해 변환될 수 있다. (DCT, DST 등) 수평, 수직 단위로 각 변환 매트릭스가 적응적으로 사용될 수 있다. 적응적 사용의 예로는 블록의 크기, 블록의 형태, 블록의 종류(휘도 및 색차), 부호화 모드, 예측 모드 정보, 양자화 파라미터, 이웃 블록의 부호화 정보 등의 여러 요인으로 결정될 수 있다.
예를 들어, 화면내 예측의 경우, 예측 모드가 수평일 경우에는 수직 방향으로는 DCT 기반의 변환 매트릭스가, 수평 방향으로는 DST 기반의 변환 매트릭스가 사용될 수도 있다. 수직일 경우에는 수평 방향으로는 DCT 기반의 변환 매트릭스가, 수직 방향으로는 DST 기반의 변환 매트릭스가 사용될 수 있다. 변환 매트릭스는 위의 설명에서 나온 것에 한정되지 않는다. 이에 대한 정보는 묵시적 또는 명시적인 방법을 사용하여 결정될 수 있으며, 블록의 크기, 블록의 형태, 부호화 모드, 예측 모드, 양자화 파라미터, 이웃 블록의 부호화 정보 등에 요인 중 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있으며, 상기 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송할 수 있다.
여기서, 명시적인 방법을 사용을 할 경우를 고려하면, 수평 및 수직 방향에 대한 2개 이상의 변환 매트릭스를 후보군으로 두고 있을 경우, 각 방향마다 어떤 변환 매트릭스를 사용했는지에 대한 정보를 각각 보낼 수도 있고, 또는 수평, 수직 방향에 대해 각각 어떤 변환 매트릭스를 사용했는지에 대한 각 하나의 쌍으로 묶어 2개 이상의 쌍을 후보군으로 두어 어떤 변환 매트릭스를 수평, 수직 방향에서 사용했는지에 대한 정보를 전송할 수도 있다.
또한, 영상의 특성을 고려하여 부분적인 변환 또는 전체적인 변환을 생략할 수 있다. 예를 들면, 수평 또는 수직 성분 둘 중 하나 또는 둘다 생략할 수 있다. 화면내 예측 또는 화면간 예측이 잘 이뤄지지 않아 현재 블록과 예측 블록의 차이가 크게 발생할 경우(즉, 잔차 성분이 클 때)에 이를 변환할 시 그에 따른 부호화 손실이 커질 수 있기 때문이다. 이는 부호화 모드, 예측 모드 정보, 블록의 크기, 블록의 형태, 블록의 종류(휘도 및 색차), 양자화 파라미터, 이웃 블록의 부호화 정보 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 위의 조건에 따라 묵시적 또는 명시적인 방법을 사용하여 이를 표현할 수 있고, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송이 가능하다.
양자화부(215)는 변환부(210)에서 변환된 잔차 성분의 양자화를 수행한다. 양자화 파라미터는 블록 단위로 결정이 되며, 양자화 파라미터는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 설정될 수 있다.
일례로, 양자화부(215)는 현재 블록의 왼쪽, 왼쪽 위, 위쪽, 오른쪽 위, 왼쪽 아래 등의 이웃 블록으로부터 유도된 1개 또는 2개 이상의 양자화 파라미터를 사용하여 현재 양자화 파라미터를 예측할 수 있다.
또한, 양자화부(215)는 이웃 블록으로부터 예측한 양자화 파라미터가 존재하지 않는 경우 즉, 블록이 픽쳐, 슬라이스 등의 경계에 있는 경우, 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송된 기본 파라미터와의 차분치를 출력 혹은 전송할 수 있다. 이웃 블록으로부터 예측한 양자화 파라미터가 존재하는 경우, 해당 블록의 양자화 파라미터를 사용하여 차분치를 전송할 수도 있다.
양자화 파라미터를 유도할 블록의 우선순위는 미리 설정할 수도 있고, 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송할 수 있다. 잔차 블록을 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization weighted matrix) 또는 이를 개량한 기법을 통해 양자화할 수 있다. 이는 1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다.
예를 들어, 양자화부(215)는 양자화 가중치 매트릭스를 화면 간 부호화, 화면 내 부호화 단위 등에 적용하기 위해 설정해 둘 수 있고, 또한 화면 내 예측 모드에 따라 다른 가중치 매트릭스를 둘 수도 있다. 양자화 가중치 매트릭스는 M×N의 크기로 블록의 크기가 양자화 블록 크기와 같다고 가정할 때, 각 주파수 성분의 위치마다 양자화 계수를 달리하여 구성할 수 있다. 그리고 양자화부(215)는 기존의 여러 양자화 방법 중 택일할 수도 있고, 부호화기 또는 복호화기의 동일한 설정하에 사용될 수도 있다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.
한편, 도 2, 3에 도시한 역양자화부(220,315) 및 역변환부(225,320)는 위의 변환부(210) 및 양자화부(215)에서의 과정을 역으로 수행하여 구현될 수 있다. 즉, 역양자화부(220)는 양자화부(215)에서 생성된 양자화된 변환 계수를 역양자화할 수 있고, 역변환부(225)는 역양자화된 변환 계수를 역변환하여 복원된 잔차 블록을 생성할 수 있다.
도 2, 3에 도시한 가산부(230, 324)는 상기 복원된 잔차 블록의 화소값에 예측부로부터 생성되는 예측 블록의 화소값을 가산하여 복원 블록이 생성될 수 있다. 복원 블록은 부호화 및 복호화 픽쳐 버퍼(240, 335)에 저장되어 예측부 및 필터부에 제공될 수 있다.
필터부는 복원 블록에 디블록킹 필터(Deblocking Filter), 적응적 샘플 오프셋(Sample Adaptive Offset, SAO), 적응적 루프 필터(Adaptive Loop Filter, ALF) 등과 같은 인루프 필터를 적용할 수 있다. 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해, 복원 블록을 필터링할 수 있다. SAO는 잔차 블록에 대하여, 화소 단위로 원본 영상과 복원 영상과의 차이를 오프셋으로 복원해주는 필터 과정이다. ALF는 예측 블록과 복원 블록 사이의 차이를 최소화하기 위해 필터링을 수행할 수 있다. ALF는 디블록킹 필터를 통해 복원된 블록과 현재 블록의 비교값을 기초로 필터링을 수행할 수 있다.
엔트로피 부호화부(245)는 양자화부(215)를 통해 양자화된 변환 계수들을 엔트로피 부호화할 수 있다. 예를 들어, 컨텐스트 적응 가변 길이 코딩(CAVLC), 컨텍스트 적응 2진 산술 코딩(CABAC), 구문 기반 컨텍스트 적응 2진 산술 코딩(SBAC), 확률 간격 파티셔닝 엔트로피(PIPE) 코딩 등의 기법을 수행할 수 있다.
엔트로피 부호화부(245)는 양자화 계수를 부호화한 비트열과 부호화된 비트열을 복호화하는데 필요한 다양한 정보들을 부호화 데이터에 포함할 수 있다. 부호화 데이터는 부호화된 블록 형태, 양자화 계수 및 양자화 블록이 부호화된 비트열 및 예측에 필요한 정보 등을 포함할 수 있다. 양자화 계수의 경우 2차원의 양자화 계수를 1차원으로 스캐닝할 수 있다. 양자화 계수는 영상의 특성에 따라 분포도가 달라질 수 있다. 특히, 화면 내 예측의 경우 계수의 분포가 예측 모드에 따라 특정한 분포를 가질 수 있기 때문에 스캔 방법을 달리 설정할 수 있다.
또한, 엔트로피 부호화부(245)는 부호화하는 블록의 크기에 따라 달리 설정될 수 있다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 적어도 어느 하나 이상으로 미리 설정하거나 후보로 설정할 수 있으며, 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있고, 부호화기와 복호화기의 동일한 설정하에 사용될 수 있다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.
엔트로피 부호화부(245)에 입력되는 양자화된 블록(이하, 양자화 블록)의 크기는 변환 블록의 크기와 같거나 작을 수 있다. 또한, 양자화 블록은 2개 이상의 서브 블록으로 분할될 수 있으며, 분할된 경우에 분할 블록에서 스캔 패턴은 기존의 양자화 블록과 동일하게 설정할 수도 있고, 다르게 설정할 수도 있다.
예를 들어, 기존의 양자화 블록의 스캔 패턴을 지그재그라고 할 경우, 서브 블록 모두에 지그재그를 적용할 수도 있고, 또는 DC 성분을 포함하는 블록의 좌측 상단에 위치하는 서브블록에 지그재그 패턴을 적용하고, 그 이외의 블록에는 대각선 패턴을 적용할 수 있다. 이 역시 부호화 모드, 예측 모드 정보 등에 따라 결정될 수 있다.
또한, 엔트로피 부호화부(245)에서 스캔 패턴의 시작 위치는 기본적으로 좌측 상단으로부터 시작을 하나, 영상의 특성에 따라 우측 상단, 우측 하단 또는 좌측 하단에서 시작할 수 있으며, 2개 이상의 후보군 중 어느 것을 선택했는지에 대한 정보를 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송할 수 있다. 부호화 기술로서는 엔트로피 부호화 기술이 사용될 수 있으나 이에 한정되지 않는다.
한편, 도 2 및 도 3에 도시한 역양자화부(220)의 역양자화 및 역변환부(225)의 역변환은 위의 양자화부(215)의 양장화 및 변환부(210)의 변환 구조를 반대로 구성하고 기본적인 필터부(235, 330)를 조합하는 것으로 구현 가능하다.
이하에서는, 앞서 설명한 참조 화소 구성 단계에 대하여 보다 상세히 설명한다.
본 발명의 실시예에 따른 화면내 예측을 수행할 때 이웃하는 블록의 참조 화소 이용 가부(availability)를 확인해야 하는데, 참조 화소 이용 가부는 이웃 블록의 위치, 분할 블록 내 현재 블록의 위치, 현재 블록과 이웃 블록의 경계 특성 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합으로 판단할 수 있다. 예를 들면, M×M 블록이 블록 분할부를 통해 4개의 M/2×M/2 블록(본 예에서 래스터 스캔방향으로 0, 1, 2, 3 인덱스 할당)으로 분할이 되었고 현재 블록은 3번의 M/2×M/2 블록일 경우, 현재 블록 기준으로 특정 방향(본 예에서는, 우측 상단과 좌측 하단)에 위치한 이웃 블록은 현재 블록과 같은 픽쳐, 슬라이스, 타일 등의 단위에 속하더라도 아직 부호화가 되어 있지 않기 때문에 상기 블록은 이용 불가라 판단되기 때문에 해당 블록의 참조 화소를 사용할 수가 없다. 다른 예로, 현재 블록과 이웃 블록의 경계 특성(슬라이스, 타일 등의 경계)에 따라 이웃 블록의 참조 화소 이용 가부가 결정될 수 있다.
이웃 블록의 참조 화소 이용 가부에 대한 다른 예로, P나 B 슬라이스일 경우 시간 흐름에 따른 오류 누적(Error Propogation)을 피하기 위한 목적으로 부호화기/복호화기에서 오류 누적 가능성이 높은 데이터의 사용의 여부를 결정하는 설정을 지원할 수 있다. 이 설정 정보에 따라 오류 누적 가능성이 높은 데이터를 예측 블록 생성에 사용할지 여부를 결정할 수 있는데, HEVC의 constrained_intra_pred_flag(CIP)와 같은 플래그가 위와 비슷한 역할을 수행할 수 있다. 상기 플래그는 화면 내 예측 블록 생성에 참조되는 이웃 블록 중 오류 누적 가능성이 높은 화면 간 예측 모드로 부호화된 이웃 블록의 사용 여부를 결정할 수 있다. 상기 플래그가 0이면 화면 간 예측으로 부호화된 블록의 참조화소를 사용할 수 없고, 상기 플래그가 1이면 화면 간 예측으로 부호화된 블록의 참조화소를 사용할 수 있다.
후술되는 예는 상기 플래그가 0이 아닐 때의 예측 블록을 생성하는 경우를 설명한다. 상기 플래그의 추가적인 설정으로 오류 누적 가능성과 관계없이 상기 참조 화소 이용 가부를 이용 불가로 하여 어떤 참조 화소도 예측에 사용되지 못하게 할 수 있다. 이 경우, 예측 블록은 어떤 참조 화소도 사용할 수 없기 때문에 기설정된 값(예를 들어, 비트 심도가 갖는 화소값 범위의 중간값)을 채워 예측 블록을 생성할 수도 있다. 또는, 기설정된 값 기준으로 에지 정보 등을 적용한 예측 블록을 생성할 수도 있다. 예를 들어, 기설정값은 A라고 할 경우 M?N 블록 내의 임의 화소 기준으로 임의의 화소를 포함한 오른쪽 영역은 (A+B), 그 외의 영역은 (A-C)를 각 영역에 채워 예측 블록을 생성할 수 있으며, 이 때 B와 C는 에지 정보를 표현하기 위해 사용된 파라미터를 의미한다.
또한, 상기 플래그의 추가적인 설정으로 오류 누적 가능성을 화면 간 예측으로 부호화된 이웃 블록의 개수, 이웃 블록의 참조 화소 개수 등으로 판단할 수도 있다. 상기 판단에 따라 화면 내 예측을 통해 부호화된 블록의 참조 화소도 예측에 사용 여부가 결정될 수 있다. 예를 들어, 현재 블록에 인접한 M개의 이웃 블록 중 N개 미만의 블록이 화면 간 예측으로 부호화된 블록일 경우, 상기 블록의 참조 화소를 예측 블록 생성에 사용할 수 없을 뿐만 아니라 (M-N)개의 화면 내 예측으로 부호화된 블록의 참조 화소도 예측 블록 생성에 사용할 수 없을 수 있다. 상기 판단 기준인 블록 개수는 블록의 크기 또는 형태에 따라 영향을 받을 수 있기 때문에 현재 블록의 예측에 사용될 위치에 존재하는 참조 화소 개수로 대체할 수 있고, 이외 다른 요소도 고려될 수 있다.
상기 참조 화소 이용 가부에 따라 생성되는 예측 블록이 영향을 받을 수 있다. 예를 들어, 상기 여러 가지 요인으로 결정된 참조 화소 이용 가부에 따라 현재 블록의 이웃 블록 중 최소 하나 이상이 이용가능할 경우, 이용 가능한 블록의 참조 화소로부터 유도(예를 들어, 복사, 평균 등)된 화소로 이용 불가한 블록의 참조 화소를 대체할 수 있다. 다른 예로, 참조 화소 이용 가부에 따라 이용가능한 블록이 없을 경우, 기설정된 값(예를 들어, 비트 심도가 갖는 화소값 범위의 중간값 등)으로 이용불가한 블록의 참조 화소를 대체할 수 있다.
부호화기 또는 복호화기의 설정에 따라 상기 이용 가능한 블록으로부터 유도된 값의 대체가 금지될 수도 있으며, 이 경우 해당 블록으로부터의 유도되는 예측 모드는 사용할 수 없다.
이하에서 이러한 내용을 도면을 참조하여 보다 자세히 설명한다.
도 15는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 설명하기 위한 예시도이다.
도 15를 참조하면, 현재 블록의 이웃 블록의 부호화 모드에 따라 해당 블록의 참조 화소를 예측 블록 생성에 사용 여부를 결정할 수 있다. 이때, 이웃 블록은 블록 분할부를 통해 획득된 M?M의 정사각 형태 또는 M?N의 직사각 형태일 수 있으며, 부호화 모드에 따라 화면 내 예측 또는 화면 간 예측 중 하나로 부호화 될 수 있다. 도 15에서 도시한 바와 같이, 현재 블록이 가운데 블록이라 하면, 좌상단에 위치한 블록은 화면 간 예측(Inter)으로, 상단에 위치한 두개의 블록은 화면 내 예측(Intra)으로, 우상단에 위치한 블록은 다시 그 안에 좌측에서부터 화면 간 예측, 화면 내 예측, 화면 내 예측으로 부호화 된 상황을 가정할 수 있다.
상기 화면 간 예측으로 부호화된 블록은 참조 픽쳐에 따라 추가 분류될 수 있다. 도 15의 화면 간 예측(Inter)로 부호화된 ref=t로 표현한 것은 참조 픽쳐가 현재 픽쳐를 지시한다.
상기와 같은 전제하에서 도 16a 및 도 16b를 설명한다.
도 16a는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려한 참조 화소 이용 가부을 설명하기 위한 예시도이다. 도 16b는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려하지 않은, 참조 화소 이용 가부을 설명하기 위한 예시도이다.
후술되는 예에서는 이웃한 블록의 부호화 모드를 고려할 지 여부는 CIP 플래그를 사용하여 설명한다. 구체적으로 CIP 플래그가 1을 지시하는 경우, 특정 부호화 모드(본 예에서는 화면 간 예측)로 부호화된 블록은 현재 블록의 예측에 사용될 수 없고, 0을 지시하는 경우, 어떤 부호화 모드의 블록 현재 블록의 예측에 사용될 수 있다.
도 16a를 참조하면, CIP 플래그가 1이고 이웃 블록이 화면 간 예측(Inter)으로 부호화 된 경우 해당 블록의 참조 화소는 현재 블록의 예측에 이용될 수 없다. 빗금으로 표시된, 화면 내 예측(Intra)으로 부호화된 블록의 이웃 블록의 참조 화소는 현재 블록이 예측에 이용될 수 있다.
여기서, 참조 화소로 활용 가능한 블록 내의 현재 블록과 인접한 화소가 참조 화소로서 이용될 수 있으며, 그 외 추가적인 화소도 포함될 수 있다.
도 16b를 참조하면, CIP 플래그가 0일 경우에 부호화된 블록의 참조 화소는 현재 블록 예측에 이용될 수 있다. 즉, 현재 블록의 좌상단, 상단, 우상단, 좌측, 좌하단 블록 내에 있는 현재 블록과 인접한 화소를 참조 화소로 이용할 수 있다.
도 17은, 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 설명하기 위한 또 다른 예시도이다.
도 17을 참조하면, 이웃 블록은 화면 내 예측(Intra), 화면 간 예측(Inter) 중 하나로 부호화가 되었으며, 이웃 블록이 화면 간 예측으로 부호화된 경우에는, 이때 사용된 참조 픽쳐에 대한 표시로서, ref=t는 참조 픽쳐가 현재 픽쳐인 것을 지시하고, ref=t-1은 참조 픽쳐가 현재 픽쳐 바로 이전 픽쳐인 것을 지시하며, ref=t-2는 참조 픽쳐가 현재 픽쳐의 두번째 전 픽쳐를 지시할 수 있으며, 화면 간 예측의 참조 방향 등에 따라 다른 참조 픽쳐도 추가될 수 있다. 우상단의 블록은 픽쳐 범위를 벗어난 곳에 위치한 블록을 의미한다.
도 17과 같은 부호화 상태를 전제로 하여, 참조 화소로 이용 가능 여부를 결정하는 예시를 도 18a 내지 도 18c에서 설명한다.
도 18a는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드가 화면 내 예측인 경우를 설명하는 예시도이다. 도 18b는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드와 참조 픽쳐를 고려한 것을 설명하는 예시도이다. 도 18c는 본 발명의 실시예에 따른 화면 내 예측에서, 이웃한 블록의 부호화 모드를 고려하지 않는 경우를 설명하기 위한 또 다른 예시도이다.
도 18a를 참조하면, 앞서 도 17의 부호화 모드에서 화면 내 예측으로 부호화된 이웃한 블록은 빗금으로 표시될 수 있다.
이와 같이 빗금으로 표시된 블록은, 화면 내 예측이기 때문에, 해당하는 블록 내의 화소를 참조 화소로 이용 가능할 수 있다.
또한, 이 경우에도, 이웃한 블록의 부호화 모드를 고려할 것인지 여부는 CIP 플래그에 따라 지시될 수 있고, CIP 플래그가 1인 경우에 대한 예시일 수 있다.
도 18b를 참조하면, 앞서 도 17의 부호화 모드 상태에서 화면 내 예측으로 부호화된 블록 내의 화소는 참조 화소로 이용될 수 있음은 앞서 설명한 바와 같다.
그러나, 도 18b에서는 이에 더하여, 이웃한 블록이 화면 간 예측으로 부호화된 경우라 하더라도, 이웃한 블록의 참조 픽쳐가 현재 픽쳐라면, 그러한 블록 내의 화소는 참조 화소로 이용될 수 있다. 또는, 이웃한 블록의 참조 픽쳐가 현재 픽쳐라면, 해당 블록의 화소는 참조 화소로 이용될 수 없을 수도 있다.
이것은 이웃한 블록의 참조 픽쳐가 현재 픽쳐라면, 픽쳐간의 시간적인 흐름에 따른 오류 누적(error propagation)이 발생하지 않기 때문에 이용 가능할 수 있다. 이와 반대로, 현재 픽쳐에서 참조한 블록이 이전 또는 이후 픽쳐로부터 부호화된 블록일 경우에는 오류 누적이 발생할 수도 있기 때문에 이용불가할 수 있다.
위와 같이 참조 화소 이용 가부는 이웃 블록의 위치, 이웃 블록의 부호화 모드, 분할 블록 내 현재 블록의 위치, 현재 블록과 이웃 블록의 경계 특성 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합으로 판단할 수 있으며, 참조 픽쳐도 상기 요인으로 추가될 수 있다. 상세하게는, 이웃 블록의 참조 픽쳐의 인덱스 또는 픽쳐 오더 카운트(Picture Order Count, POC) 등을 고려하여 해당 블록의 참조 화소의 현재 블록의 예측에 이용할 지 여부를 결정할 수 있다. 위의 예에서는 참조 픽쳐가 현재 픽쳐인 것을 특정하여 예를 들었으나, 다른 인덱스 또는 픽쳐 오더 카운트(Picture Order Count, POC)를 갖는 참조 픽쳐로의 확장이 가능하다. 또한, 화면 간 예측의 참조 방향이 단방향 예측(L0, L1)과 양방향 예측인 경우에도 참조 픽쳐 인덱스(L0, L1)에 대한 다양한 설정을 구성할 수도 있다.
이에 따라, 도 18a에서 빗금으로 표시된 블록(화면 내 예측된 블록)뿐만 아니라, 화면 간 예측으로 부호화되었고, 그에 대한 참조 픽쳐가 현재 픽쳐인 블록 내의 화소까지 참조 화소로 이용될 수 있다.
또한, 이 경우에도, 이웃한 블록의 부호화 모드를 고려할 것인지 여부는 CIP 플래그에 따라 지시될 수 있으므로, 플래그가 1인 경우를 설명하는 예시일 수 있다.
도 18c를 참조하면, 이웃한 블록 내의 인접한 화소들은 원칙적으로 모두 참조 화소로 이용할 수 있다.
다만, 가운데 위치한 현재 블록의 우측 상단에 표현된 영역은 영상 데이터가 없는 부분 또는 영상 밖의 영역이기 때문에 어느 경우에나, 이용가능하지 않은 영역에 해당할 수 있다.
앞서 도 15 내지 도 18c를 통하여 설명한 예시들을 정리하면 다음과 같다.
먼저 현재 블록의 이웃 블록의 참조 화소에 대한 참조 화소 이용 가능 여부(availability)를 결정할 수 있다.
만약 이웃한 모든 블록 내의 참조 화소가 이용 불가능(not available)한 것으로 결정될 경우에는 미리 설정한 화소 값으로 구성된 참조 화소를 획득할 수 있다. 예를 들면, 예를 들면, 픽셀의 표현 범위의 중간 값으로 참조 화소를 구성할 수 있다. 더 구체적으로는, 1 << (bit depth - 1)로 참조 화소들에 값을 할당할 수 있는데, 비트 심도(bit depth)는 픽셀을 표현하기 위해 사용되는 비트수를 의미하므로 예시의 값은 픽셀의 표현 범위의 중간값을 의미할 수 있다.
최소 하나 이상의 이웃한 블록이 이용 가능한 것으로 결정할 때, 이웃하는 블록(왼쪽, 위쪽, 왼쪽 위, 오른쪽 위, 왼쪽 아래 블록 등)의 부호화 모드를 고려할 수 있다.
또한, 부호화 모드를 고려하는지 여부를 지시하는 미리 설정된 플래그를 이용할 수 있다.
예를 들면, 부호화 모드를 고려하지 않고, 이웃한 블록 내의 화소 모두 참조 화소로 사용할 수 있고, 여기서, 미리 설정된 플래그가 부호화 모드를 고려하지 않는 것으로 지시할 수 있다.
여기서, 이웃한 블록의 부호화 모드가 화면간 예측인 경우, 이웃한 블록은 이용 불가능한 것으로 결정하여, 이웃한 블록 내의 화소는 참조 화소에 사용하지 않을 수 있다.
또한, 이웃한 블록의 부호화 모드가 화면간 예측인 경우라 하더라도, 이웃한 블록의 참조 픽쳐를 확인하여 현재 픽쳐일 경우에는 참조 화소로 사용할 수 있다.
여기서, 참조 픽쳐는, 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 현재 픽쳐가 상기 리스트 0 또는 상기 리스트 1에 포함될 수 있다.
또한, 이웃한 블록의 부호화 모드가 화면간 예측인 경우라 하더라도, 이웃한 블록의 참조 픽쳐를 확인하여 I 픽쳐(P나 B는 제외한)일 경우에는 참조 화소로 사용할 수 있다.
다만, 상기와 같은 제약 조건들은 특정 조건을 고려하여 이웃한 블록내의 화소를 참조 화소로 이용할 수 있는지 결정하는 예시로서 이해되어야 한다. 즉, 이웃한 블록의 부호화 모드가 화면간 예측이고, 그 이웃한 블록에 대한 부호화 정보인 움직임 벡터, 참조 픽쳐 정보 등을 참조하여 참조 화소로 이용 가능 여부를 결정할 수 있고, 이 경우, 시퀀스, 픽쳐, 슬라이스 등의 단위로 상기에서 예시한 조건을 설정할 수 있다.
본 발명의 실시예에 따른 참조 화소 이용 가능 여부 판단은 다음과 같은 흐름에 따를 수도 있다.
먼저, 현재 블록과 이웃한 블록이 픽쳐, 슬라이스, 타일 등의 경계 넘어 위치한지를 확인할 수 있다. 그 후, 이웃한 블록의 부호화 여부를 확인할 수 있다. 이후, 이웃한 블록의 슬라이스 타입을 확인하여 I 슬라이스일 경우에는 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능(available)한 것으로 설정할 수 있다. 만약 P 슬라이스 일 경우에는 단방향 예측이므로 참조 픽쳐 리스트 0(ref_idx_l0)를 확인하여 참조 픽쳐를 확인한다. 참조 픽쳐가 현재 픽쳐일 경우에는 현재 픽쳐의 참조 화소로 이용 가능(available)한 것으로 설명할 수 있다. 다만, 이것은 하나의 예로 이해되어야 한다. 현재 픽쳐가 참조 픽쳐가 아닌 경우는 이용 불가능(not available)한 것으로 설정할 수 있다. 만약 B 슬라이스 일 경우에는, 예측 모드를 확인하여 단방향_L0, 단방향_L1, 양방향인지 확인하여 현재 픽쳐를 참조픽쳐로 두는지를 확인한 후 참조 화소로의 이용 가능(available)여부를 확인할 수 있다.
도 19a은, 이용가능한 이웃한 블록이 좌하단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다. 도 19b는, 이용가능한 이웃한 블록이 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다. 도 19c는 이용가능한 이웃한 블록이 좌하단 및 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다. 도 19d는 이용가능한 이웃한 블록이 좌상단 및 우상단에 있는 블록인 경우, 참조 화소를 획득하는 방법을 설명하는 예시도이다.
도 19a 내지 19d를 참조하면, 빗금친 화소는 이웃한 블록이 이용가능한 것으로 결정된 블록 내의 인접한 화소들을 의미할 수 있고, 화살표 방향은 참조 화소로 구성되는 방향을 의미할 수 있다.
앞에서 설명한 바와 같이, 이웃한 블록은 이용 가능한 것으로 결정될 수 있으나, 이용 가능하지 않은 것으로 결정될 수 있다. 따라서, 이용 가능하지 않은 것으로 결정된 블록 내의 화소는 참조 화소로 이용할 수 없는데, 이러한 경우, 이용 불가능한 블록 내의 인접한 화소를 어떻게 구성해야 되는지 문제될 수 있다.
도 19a 및 도 19b를 참조하면, 현재 블록의 우상단이나 좌하단에 있는 화소만 참조 화소로 이용 가능한 경우, 이용 불가능한 영역과 맞닿아있는 화소를 복사하여 이용 불가능한 영역 중 현재 블록에 인접한 화소에 채울 수 있다.
도 19c를 참조하면, 현재 블록의 우상단 및 좌하단 모두에 이용가능한 영역이 있을 경우, 어느 한쪽의 이용 가능한 영역의 화소로부터 복사할 수도 있고 (<아래에서 위로, 그리고 왼쪽에서 오른쪽> 또는 <왼쪽에서 오른쪽, 그리고 위에서 아래로> 또는 <아래에서 위로, 오른쪽에서 왼쪽으로> 와 같이), 양 쪽의 화소의 평균값을 채울 수도 있으며, 선형 보간하여 채울 수도 있다.
도 19d를 참조하면, 참조 화소로 이용가능한 영역이 혼합되어 있을 경우, 어느 한쪽 방향(왼쪽방향, 아래방향)으로 값을 복사하여 채울 수도 있고, 현재 블록의 상단과 같이 양 쪽에 이용가능한 영역이 존재하는 곳에서는 보간, 평균 등 양 쪽의 화소를 활용하여 생성하는 값으로 채울 수도 있으며, 현재 블록의 좌 또는 좌하단과 같이 한 쪽만 이용가능한 영역이 존재하는 곳에서는 복사하여 채울 수도 있다.
도 19d를 참조하여 더 구체적으로 설명하면, 현재 블록의 우상단에 있는, P(-1, -1)과 P(blk_size, -1) 포함하여 오른쪽에 위치한 화소들은 이용 가능 할 수 있다. P(0, -1)부터 P(blk_size-1, -1)까지의 값은 이용 불가능(not available)할 수 있다. 이러한 경우 평균값으로 할당한다면, P(x, y){x는 0부터 blk_size-1까지, y는 1} = {P(-1, -1) + P(blk_size, -1)} + 1 /2의 값으로 할당할 수 있다. 이때, blk_size는 블록 크기를 의미할 수 있다.
P(-1,0)를 포함하여 아래쪽에 위치한 화소들은 이용 불가능(not available)할 수 있다. 이 때 P(x, y){x는 1, y는 0부터 2*blk_size-1} = P(-1, -1)으로 할당할 수 있다.
또한, 참조 화소의 위치에 따라 보간 수행 여부를 결정할 수 있다. 도 19c 와 같이 양 쪽에 이용가능(available)한 영역이 존재하더라도 이용가능(available)한 영역의 위치가 수직선으로 연결되어 있지 않은 경우에는 보간을 수행하는 것을 제한할 수 있다. 구체적으로, 이용 가능한 영역의 양 쪽 끝의 좌표를 비교하였을 때 P(-1, a), P(b, -1) 과 같이 x, y가 둘 중에 하나도 일치하지 않을 경우에는 보간 제한할 수 있다. 만약 P(a, -1), P(b, -1)과 같이 x, y 둘 중에 하나가 일치하는 경우에만 보간을 수행할 수 있다.
또한, 도 19d와 같이 양 쪽에 이용가능(available)한 영역이 존재하더라도 이용가능(available)한 영역의 위치가 수직선상에 놓여져 있을 경우에는 보간을 수행할 수 있다.
도 20은 본 발명의 실시예에 따른 영상 부호화 방법의 흐름도이다.
도 20을 참조하면, 화면 내 예측을 수행하는 영상 부호화 방법은, 현재 블록과 이웃한 블록 각각의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계(S110), 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계(S120), 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계(S130) 및 생성한 예측 블록을 이용하여 상기 현재 블록을 부호화하는 단계(S140)를 포함할 수 있다.
이에 대한 각 단계의 설명은, 상기 도 15 내지 18c를 참조할 수 있으므로 상세한 설명은 생략한다.
본 발명의 실시예에 따른 화면 내 예측을 수행하는 영상 복호화 방법은, 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하는 단계, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인하는 단계, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하는 단계, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및 생성한 예측 블록을 이용하여 현재 블록을 복호화하는 단계를 포함할 수 있다.
여기서, 참조 화소를 획득하는 단계는, 경계 화소가 상기 현재 블록의 참조 화소로 이용 불가능한 것으로 결정되었으면, 미리 설정된 화소 값으로 구성한 참조 화소를 획득할 수 있다.
여기서 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 미리 설정된 플래그가 이웃한 블록의 예측 모드를 고려할 것인지 여부를 지시할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 내 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측이면, 경계 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.
여기서, 참조 화소로 이용 가능한지 여부를 결정하는 단계는, 이웃한 블록의 예측 모드가 화면 간 예측인 경우, 이웃한 블록의 참조 픽쳐를 고려하여, 경계 화소를 현재 픽쳐의 참조 화소로 이용가능한지 여부를 결정할 수 있다.
여기서, 참조 픽쳐는, 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 현재 픽쳐가 리스트 0 또는 리스트 1에 포함될 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐인 경우에는, 경계 화소를 상기 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우에는, 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정할 수 있다.
여기서, 이웃한 블록의 참조 픽쳐가 I 픽쳐인 경우, 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정할 수 있다.
본 발명의 실시예에 따른 하나 이상의 프로세서들을 포함하는 영상 복호화 장치에서, 하나 이상의 프로세서들은, 현재 블록 및 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하고, 수신된 비트스트림으로부터 데이터를 추출하여, 이웃한 블록의 예측 모드를 확인한 후, 이웃한 블록의 예측 모드를 고려하여, 이웃한 블록 내의 경계 화소를 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하고, 결정한 결과에 따라, 현재 블록의 참조 화소를 획득하며, 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하고, 생성한 예측 블록을 이용하여 현재 블록을 복호화할 수 있다.
도 21는 HEVC의 화면내 예측 모드를 설명하는 예시도이다.
도 21를 참조하면, 휘도 성분(Intra_fromLuma, 35)에 대해서는, 총 35개의 예측 모드가 있는데, 플레이너(Intra_planar, 0), 평균(Intra_DC, 1)을 포함하여 다양한 방향성을 가진 예측 모드가 있을 수 있다. 각 화살표 방향은 각각의 예측 모드에 대하여, 참조 화소를 이용하여 예측 블록을 구성하는 구성하는 방향을 지시할 수 있다.
도 22a는 참조 화소 구성 단계에서 현재 블록 예측에 사용되는 참조 화소를 설명하기 위한 예시도이다.
도 22a를 참조하면, 현재 블록을 기준으로 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위의 블록의 화소(A0~P0, X0)들이 참조 화소 후보군에 포함될 수 있다. 예를 들어, M×N 블록의 경우 좌상측 좌표 기준으로 p[0, -1]~p[(2×M) - 1, -1], p[-1,0]~p[-1, (2×N)-1], p[-1, -1]의 화소가 상기 후보군에 포함될 수 있다. 여기서, p[0, -1]은 A0에 상응하고, p[2×M - 1, -1]은 H0에 상응하고, p[-1, -1]은 X0에 상응할 수 있다. 상기 예에서는 2×(M+N)+1개의 참조 화소가 후보군에 포함될 수 있는데, 이는 블록의 크기, 블록의 형태, 예측 모드, 예측 방식, 슬라이스 타입 등의 요인 중 최소 하나 이상 또는 이들의 조합에 따라 결정될 수 있다. 예를 들어, 예측 모드에 따라 일부 참조 화소가 후보군에 추가될 수도 있고, 제외될 수도 있다. 다른 예로, 예측 방식에 따라 일부 참조 화소가 후보군에 추가될 수도 있고, 제외될 수도 있다.
도 22b는 이웃 블록의 추가적인 화소가 참조 화소 후보군에 포함된 것을 설명하기 위한 예시도이다.
도 22b를 참조하면, 예를 들어 M×N 블록의 경우 블록 내의 좌상측 좌표 기준으로 p[-1, -2]~p[(2×M) - 1, -2], p[-2, -1]~p[-2, (2×N)-1], p[-1, -1]의 화소를 새로운 참조 화소 후보군에 포함될 수 있다. 기존 참조 화소와의 차이를 나타내기 위해 제 1 참조 화소 라인(A0~P0, X0), 제 2 참조 화소 라인((A1~P1, X0, X10, X01, X11)으로 구분지을 수 있으며, 그 외 추가적인 참조 화소 라인이 새로운 참조 화소 후보군으로 포함될 수 있다. 상기 참조 화소 라인의 순번은 참조 화소와 현재 블록 간의 거리에 기반하여 정해질 수 있다.
상기 참조 화소 라인은 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위의 블록의 화소들에 일괄적으로 적용된 경우일 수 있고, 하나의 이웃 블록 또는 둘 이상의 이웃 블록 단위로 참조 화소 라인을 구성할 수도 있다. 예를 들어, 왼쪽 블록의 화소를 대상으로 화소 라인을 구성할 때는 참조 화소 라인 L에 해당 블록의 화소를 구성할 수 있으며, 왼쪽 위, 위쪽, 오른쪽 위의 블록을 대상으로 화소 라인을 구성할 때는 참조 화소 라인 U에 해당 블록들의 화소를 구성할 수도 있다. 본 예에서는 이웃 블록에 일괄 적용되는 참조 화소 라인을 기준으로 설명할 것이다.
기존의 참조 화소 라인 외의 추가적인 참조 화소 라인을 추가할지 여부는 블록의 크기, 블록의 형태, 예측 모드, 예측 방식 등의 요인 중 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 또한, 기존의 참조 화소 라인의 사용 여부, 추가적인 참조 화소 라인의 사용 여부는 다양한 조합의 구성을 가질 수 있다. 예를 들어, 기존의 참조 화소 라인은 항상 사용하며 이에 추가적인 화소 라인 사용 여부가 결정될 수도 있으며, 기존 참조 화소 라인과 추가적인 화소 라인 사용 여부에 대해 각각 결정될 수도 있다. 이 밖에도 추가적인 화소 라인이 2가지 이상이라면 위의 설정과 관련한 다양한 조합이 가능하다. 또한, 참조 화소 라인이 이웃 블록에 일괄적으로 적용되지 않고 부분적으로 적용된 경우 역시 위의 설정과 관련한 다양한 조합을 가질 수 있다.
또한, 참조 화소 라인의 허용하는 범위를 설정할 수 있다. 즉, 참조 화소 라인을 얼마만큼 추가할지에 대한 정보(최대값)을 부호화기/복호화기에서 설정할 수 있으며, 이는 현재 또는 이웃 블록의 형태, 현재 또는 이웃 블록의 크기 등 중 하나의 요인에 따라 또는 이들의 조합에 따라 결정될 수 있다. 참조 화소 라인의 순번은 작은 숫자일 경우 우선 순위가 높다고 볼 수 있지만, 이에 대한 가정이 관련 정보의 이진화 과정에까지 이어지지 않을 수 있다. 기설정된 조건 하에 상기 참조 화소 라인의 인덱스 정보 또는 식별자 정보가 생성될 수 있다. 상기 참조 화소 라인 인덱스 또는 식별자 정보는 단항 이진화, 절삭 단항 이진화 등과 같은 다양한 방법을 이진화를 수행할 수 있으며, 이와 관련하여 상기 참조 화소 라인 허용 최대값 정보에 따라 이진화가 결정될 수 있다.
참조 화소 라인 구성에 이웃 블록들이 일괄적으로 적용된 경우와 그렇지 않을 경우 또한 위의 설정과 관련한 다양한 조합을 가질 수 있다. 상기 참조 화소 라인에 관련 정보들은 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송될 수 있다. 상기 부호화/복호화되는 정보는 예측 모드 부호화 단계에서 예측 모드 정보에 포함될 수 있다.
상기 과정을 통해 참조 화소 후보군을 구성한 후 이웃 블록의 참조 화소 이용 가부 여부를 확인하는 과정을 수행한다. 참조 화소 이용 가부 여부는 이웃 블록의 위치, 이웃 블록의 부호화 모드, 이웃 블록의 참조 픽쳐, 분할 블록 내 현재 블록의 위치, 현재 블록과 이웃 블록의 경계 특성 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합으로 판단할 수 있다. 참조 화소 후보군 중 상기 과정을 거쳐 이용 가능으로 판단된 화소들과 이용 불가로 판단된 화소 위치의 대체된 화소값들을 이용하여 현재 블록의 예측을 수행할 수 있다.
화면 내 예측 모드 중 방향성을 갖는 모드로 예측이 된 경우, 정수 단위의 참소 화소를 다양한 보간 방식을 통해 소수 단위의 참조 화소를 생성할 수 있다. 상기 예와 같이 참조 화소 라인이 추가가 될 경우, 둘 이상의 참조 화소 라인의 참조 화소들이 상기 보간 과정에 지원될 수 있다. 기존의 두 화소 사이의 소수 화소를 보간하는 1D-필터링 뿐만 아니라, 네 화소 사이의 소수 화소를 보간하는 2D-필터링 또한 적용될 수 있다.
참조 화소 필터링 단계에서는 상기 참조 화소 구성 단계로부터 획득한 참조 화소에 필터링을 적용하는 과정을 상기 더 넓은 참조 화소를 갖는 경우에 맞춰 설명할 것이다.
도 23a, 도 23b, 도 24a 및 도 24b는 상기 참조 화소 구성 단계에서 획득 가능한 더 넓은 참조 화소를 갖는 현재 블록에 대하여, 다양한 모드 방향을 설명하기 위한 예시도이다. 이것은, 앞서 설명한 다양한 예측 모드의 방향을 설명하기 위한 것으로 이에 한정되지 않는다. 또한, 제 1 참조 화소 라인(A0~P0, X0), 제 2 참조 화소 라인((A1~P1, X0, X10, X01, X11)을 참조 화소 후보군으로 구성한 가정 하에서의 설명일 수 있다.
제 1 참조 화소 라인만 참조 화소 후보군에 포함되어 있을 경우, 참조 화소 후보군에 포함된 화소들, 즉 현재 블록의 가장 인접한 화소들에 필터링을 적용할 수 있다. 추가적인 참조 화소 라인이 참조 화소 후보군에 포함될 경우에는 추가된 참조 화소를 고려한 필터링이 적용될 수 있다.
도 23a를 참조하면, 제 2 참조 화소 라인의 참조 화소들, 상세하게는 현재 블록의 상단에서 두 번째 줄에 위치한 참조 화소들(A1, B1, C1, D1)을 참조하여 상기 참조 화소들에 필터링을 적용하여 생성된 화소를 예측에 적용하는 모드(수직, vertical)의 예시 일 수 있고, 제 1 참조 화소 라인의 참조 화소들, 상세하게는 첫 번째 줄에 위치한 참조 화소들(A0, B0, C0, D0)도 함께 참조하여 상기 참조 화소들에 필터링을 적용하여 생성된 화소를 예측에 적용하는 모드의 예시일 수도 있다.
도 23b를 참조하면, 제 2 참조 화소 라인의 참조 화소들, 상세하게는 현재 블록의 좌에서 두번째 줄에 위치한 참조 화소들(I1, J1, K1, L1)을 참조하여 상기 참조 화소들에 필터링을 적용하여 생성된 화소를 예측에 적용하는 모드(수평, horizontal)의 예시 일 수 있고, 제 1 참조 화소 라인의 참조 화소들, 상세하게는 첫번째 줄에 위치한 참조 화소들(I0, J0, K0, L0)도 함께 참조하여 상기 참조 화소들에 필터링을 적용하여 생성된 화소를 예측에 적용하는 모드의 예시일 수도 있다.
도 24a를 참조하면, 제 2 참조 화소 라인의 참조 화소들, 상세하게는 현재 블록의 우상단에 두번째 줄에 위치한, 참조 화소들(C1, D1, E1, F1, G1, H1)을 참조하여 상기 참조 화소들에 필터링을 적용하여 생성된 화소를 예측에 적용하는 모드(좌하단으로 이어지는 방향성 모드)일 수 있고, 제 1 참조 화소 라인의 참조 화소들, 상세하게는 현재 블록 우상단에 첫번쨰 줄에 위치한, 참조 화소들(B0, C0, D0, E0, F0, G0, H0)도 함께 참조하여 상기 참조 화소들에 필터링을 적용하여 생성된 화소를 예측에 적용하는 모드의 예시일 수도 있다.
도 24b를 참조하면, 제 2 참조 화소 라인의 참조 화소들, 상세하게는 현재 블록의 좌상단에 두번째 줄에 위치한 참조 화소들(J1, I1, X01, X11, X10, A1, B1)을 참조하여 상기 참조 화소들에 필터링을 적용하여 생성된 화소를 예측에 적용하는 모드(우하단으로 이어지는 방향성 모드)일 수 있고, 제 1 참조 화소 라인의 참조 화소들, 상세하게는 현재 블록의 좌상단에 첫번째 줄에 위치한 참조 화소들(K0, J0, I0, X0, A0, B0, C0)도 함께 참조하여 상기 참조 화소들에 필터링을 적용하여 생성된 화소를 예측에 적용하는 모드의 예시일 수도 있다.
제 1 참조 화소 라인의 참조 화소로 필터링을 적용할 경우, 현재 블록의 모드에 따라 적응적인 필터링을 수행할 수 있다. 제 2 참조 화소 라인의 참조 화소도 필터링에 적용될 경우, 현재 블록의 모드에 따라 적응적인 필터링을 수행할 뿐 아니라, 필터링에 적용되는 참조 화소 또한 적응적일 수 있다. 즉, 현재 블록의 인접한 화소에 필터링은 예측 모드 방향과 무관할 수 있으며, 제 2 참조 화소 라인의 참조 화소도 함께 필터링 과정에 포함시킬 경우 도 22a, 도 22b, 도 23a, 도 23b와 같이 모드의 방향선상에 놓인 화소들이 필터링에 적용될 수 있다.
예측 블록 생성단계에서는 상기 구성된 참조 화소 구성 단계로부터 획득한 참조 화소에 필터링을 적용하는 과정을 상기 더 넓은 참조 화소를 갖는 경우에 맞춰 설명할 것이다.
제 1 참조 화소 라인을 참조 화소 후보군으로 갖는 방향성 예측 방식의 경우, 가장 인접한 참조 화소를 예측 블록 생성에 사용할 수 있다. 제 1 참조 화소 라인 외에 추가적인 참조 화소 라인이 지원될 경우 예측 블록 생성에 사용되는 참조 화소가 정해질 수 있다. 예를 들어, 예측 모드에 따라 제 1 참조 화소로 예측 블록을 생성할 수 있고, 제 2 참조 화소로 예측 블록에 생성할 수 있고, 제 1 참조 화소 라인과 제 2 참조 화소 라인의 참조 화소로 예측 블록에 생성할 수 있다.
이하에서, 예측 모드 부호화 단계에 대하여 좀 더 자세히 설명한다.
이때, 후술되는 예에서 HEVC 기준으로 설명될 것이며, 관련 설정(예측 모드 개수, 예측 모드 방향 등)이 후술되는 예에 한정되지 않는다. HEVC의 경우 모드가 35가지이기 때문에 최적의 모드를 결정한 후 이에 대해 효율적인 모드 정보의 부호화가 필요하다. 이를 위해 영상과 예측 모드의 통계적 특성을 이용한다. 일반적으로 영상을 여러 블록으로 나누었을 경우 이웃하는 블록들은 비슷한 특성을 갖는 경우가 많기 때문에, 현재 블록의 모드를 부호화할 경우에는 이웃 블록의 정보를 활용한다. HEVC는 왼쪽과 위쪽 블록의 예측 모드를 기반으로 현재 블록의 예측 모드를 부호화한다.
도 25는 일반적인 현재 예측 유닛(또는 예측 블록)에 대한 최적 모드 결정 과정을 나타낸 흐름도이다. 여기서, 최적 모드(Most Probable Mode, MPM)는 현재 예측 유닛의 예측 모드가 될 가능성이 높은 예측 모드로서, 현재 예측 유닛 주변에 있는 예측 유닛의 모드가 현재 예측 유닛의 모드와 비슷한 모드를 가질 확률이 높기 때문에 주변 블록의 모드 중에서 선택될 수 있다.
도 25를 참조하면, 현재 예측 유닛(PU)을 기준으로 왼쪽에 있는 예측 유닛의 예측 모드를 left_PU_MPM 이라 하고, 상단에 있는 예측 유닛의 예측 모드를 Above_PU_MPM으로 표현하였다. 구체적으로, 왼쪽 예측 유닛의 예측 모드와 위쪽 예측 유닛의 예측 모드가 다르면, 첫번째 최적 모드(MPM[0])는 왼쪽 예측 유닛의 예측 모드를, 두번째 최적 모드(MPM[1])를 위쪽 예측 유닛의 예측 모드로 정할 수 있고, 세번째 최적 모드(MPM[2])은 플레이너(Planar), DC, 수직(Vertical) 모드 중에서 중복이 없는 하나가 설정될 수 있다. 반면, 왼쪽 예측 유닛의 예측 모드와 위쪽 예측 유닛의 예측 모드가 같으면, 같은 예측 모드가, 모드 2보다 작은지 판단하여, 작다면, 첫번째부터 플레이너(Planar), DC, 수직(Vertical) 모드를 설정하고, 크거나 같다면, 왼쪽 예측 유닛의 예측 모드를 첫번째, 그보다 하나 작거나 큰 모드를 각각 두 번째, 세 번째 최적 모드(MPM)으로 설정할 수 있다.
정리하면, 도 25와 같이 현재 블록의 예측 모드로 가능성이 높아 보이는 모드를 최적 모드(most probable mode, MPM) 집합 또는 그룹으로 분류하여 부호화할 수 있다. 만약 현재 블록과 이웃 블록의 특성이 비슷해 이웃 블록의 예측 모드가 현재 블록의 예측 모드와 같거나 비슷할 경우가 발생한다면, MPM 그룹 중 하나의 모드로 선택될 확률이 높으며 짧은 비트를 할당하여 효율적인 부호화를 수행할 수 있다. 만약 발생하지 않는다면, 전체 모드 중 최적 모드(MPM)를 제외한 나머지의 모드를 이진화 하여 그 중 하나를 택하여 현재 블록의 예측 모드를 부호화할 수 있다. HEVC의 경우 최적 모드(MPM)의 그룹 내 모드 개수를 3개로 하여 1 또는 2 비트를 사용하여 부호화할 수 있다. 최적 모드(MPM) 그룹 중에서 선택되지 않을 경우에는 고정길이 5비트를 사용하여 부호화할 수 있다. 본 발명에 따른 실시예는 최적 모드(MPM)로 활용될 모드를 왼쪽, 위쪽 예측 유닛에 한정하지 않으며 왼쪽, 왼쪽 위, 위쪽, 오른쪽 위, 왼쪽 아래에 있는 블록 중 하나 이상의 블록으로부터 모드 정보를 활용할 수 있다. 또한, 이 중 하나가 2개 이상의 블록으로 분할되어 있는 경우 어느 분할된 블록 중 어떤 블록의 정보를 참조할 지에 대해 우선순위를 설정할 수도 있다. 예를 들어, 현재 블록을 2N×2N이고 왼쪽이 N×N으로 두 개의 분할된 블록이 위치해 있을 경우, 설정된 규칙에 따라 그 중 위쪽 N×N의 모드를 활용할 수도 있고, 아래쪽 N×N의 모드를 활용할 수도 있다.
최적 모드(MPM)로 선택되는 모드의 개수 또한 부, 복호화 장치에서 미리 설정하거나 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송할 수도 있다. 또한, 이를 표현하기 위한 이진화는 고정 길이 또는 가변 길이 등의 다양한 이진화 방법을 사용할 수도 있다. 그리고 최적 모드(MPM)로 분류되지 않은 모드의 이진화 또한 다양한 이진화 방법을 사용할 수 있다. 또한, 최적 모드(MPM)로 분류되지 않는 모드의 효율적인 이진화를 위해 최적 모드(MPM)의 후보군을 설정할 수 있다. 예를 들어, 총 M개의 모드 중 M - 2N개는 최적 모드(MPM) 그룹으로, 2N개는 최적 모드(MPM)로 분류되지 않는 후보군으로 두어 이를 각각 이진화할 수 있다. 예를 들면, 19개의 모드가 존재한다고 할 경우 N은 1, 2, 3, 4 중 하나로 선택이 가능하며, 최적 모드(MPM) 그룹에 있는 모드는 가변 길이로(N은 4라 가정하면 3개가 가능), 최적 모드(MPM)으로 분류되지 않는 후보군은 고정 길이로(4 비트)로 표현할 수 있다.
이하에서, 본 발명의 실시예에 따른, 현재 예측 유닛(또는 블록)에 대해 최적 모드(MPM, Most Probable Mode)를 결정하기 위한 구체적인 예를 살펴본다. 설명의 편의를 위해 이웃 블록에 위치하는 블록은 현재 블록과 같은 블록 형태 및 크기를 갖는 블록이 위치한다고 가정한다. 또한, 이웃 블록의 참조 화소 이용 가부(availability)에 따라 이용 불가로 판단되는 블록의 모드는 DC로 가정하자.
먼저, 이웃 블록의 모드 정보를 얻기 위해서는 해당 블록의 경계 화소를 참조 화소로 이용 가능한지 여부(availability)를 확인해야 한다. 예를 들어, 픽쳐나 슬라이스 등의 경계선에 위치하지 않았는지, 부호화 모드는 같은지 등을 확인해야 한다. 본 예에서는 참조 픽쳐가 무엇이든 간에 부호화 모드가 화면 간 예측 모드이면 해당 블록의 참조 화소는 이용 불가로 설정한다. (HEVC와 같이 왼쪽과 위쪽 모드를 MPM으로 활용) 왼쪽 블록이 블록 매칭을 통해 현재 픽쳐에서 예측 블록을 생성하고 화면 간 예측 방법으로 부호화 되었을 경우, 해당 블록의 참조 화소는 이용 불가로 결정될 수 있다. 위쪽 블록의 경우 화면 내 예측으로 부호화되었을 경우, 해당 블록의 모드(Vertical)을 MPM 후보로 포함할 수 있다. 왼쪽 블록의 참조 화소는 이용 불가이므로 해당 블록의 모드는 DC로 설정하고 이를 MPM 후보로 포함할 수 있다.
이웃 블록의 참조 화소 이용 가부(availability) 확인 과정을 통해 이용 가능한 참조 화소와 이용 불가한 참조 화소를 분류할 수 있다. 상기 이용 불가로 판단된 참조 화소는 기설정된 값(예를 들어, 비트 심도가 갖는 화소값의 범위의 중간값) 또는 이용 가능으로 판단된 참조 화소로부터 유도된 대체값을 각 참조 화소 위치에 채울 수 있다. 화면 내 예측에 이용 가능한 참조 화소의 화소값과 이용 불가한 참조 화소의 대체값을 사용하여 예측 블록을 생성할 수 있다.
도 26은, 현재 예측 유닛(또는 블록)에 대한 예측 모드를 결정하기 위한 예시도이다.
도 26을 참조하면, 이용 가능한 참조 화소는 검은색으로, 그렇지 않은 참조 화소는 무색으로 표시할 수 있다. 이용 불가한 참조 화소는 기설정된 값 또는 이용 가능한 화소로부터 유도된 값으로 대체할 수 있다. 도 26에서는 블록 E의 우측 상단 화소값을 복사하여 블록 A, B, C, D의 이용 불가한 참조 화소들의 화소값으로 채울 수 있다. 즉, 블록 A, B, C, D의 모든 참조 화소는 블록 E의 우측 상단 화소랑 같은 값일 수 있다. 예를 들어, 블록 B와 C를 참조 화소로 예측 블록을 생성하는 모든 모드는 동일 화소값(블록 E의 우측 상단 화소값)으로 예측 블록의 모든 예측 화소를 구성할 수 있다.
여기서, 블록 A나 블록 B는 이용 불가능한 것으로 판단되었기 때문에, 앞서 가정한 바와 같이, DC 모드를 가질 수 있다. 이 경우 블록 A의 예측 모드도 DC, 블록 B이 모드도 DC로 설정되기 때문에, 최적 모드(MPM)로 결정되는 모드(DC가 두개나 발생)가 현재 블록의 예측 모드일 확률이 줄어들 수 있다. 따라서 현재 블록과 이웃한 이용 가능(available)한 블록의 예측 모드로 대체하여 사용할 수 있다.
도 26을 참조하면, 블록 A는 블록 E의 예측 모드를 대체하여 사용할 수 있는데, 블록 E의 예측 모드 및 블록 B 예측 모드인 DC를 활용하면 현재 블록의 예측 모드가 MPM의 하나의 모드로 선택될 확률을 높일 수 있다. 이것은 일반적인 방법인 도 25의 흐름도에 따르면, MPM[0] = 플레이너(planar) 모드, MPM[1] = DC 모드, MPM[2] = 수직(vertical) 모드로 설정이 가능한데, 블록 E에서 우측 경계 화소들(도면의 검은 부분)이 이용 가능(available)하고 그 경계 화소들 중 최상단에 있는 화소 값을 위의 이용 불가능(unavailable)한 블록의 경계 화소에 복사하여 화면내 예측을 수행한다고 가정하면, 플레이너(planar), DC, 수직(vertical)으로부터 모두 같은 예측 블록을 생성하므로 모드의 중복성이 발생할 수 있기 때문이다. 따라서, 상기 설명한 바와 같이 대체 블록의 예측 모드를 사용하면 더 유리한 효과가 있을 수 있다.
다시, 도 26를 참조하여 구체적으로 설명하면, 만약 제한된 화면 내 예측(constrained Intra prediction)이 수행되었다고 할 경우, 도 26에 어둡게 표시된, 블록 E의 경계 화소들 중에서 우측 상단의 화소 값을, 블록 A의 경계 화소에 복사하여 화면 내 예측을 수행할 수 있다. 또한, 여기서 블록 E의 모드는 DC가 아니라고 가정한다. 이러한 가정 하에서, 플레이너(Planar), DC를 포함하여 수직(vertical), 수평(horizontal), 그룹2(group 2), 그룹3(group 3), 그룹4(group 4)의 모드로(각 예측 모드 그룹에 대해서는 후술하는 도 27을 참조) 예측 블록을 생성하면 상기 예측 모드로 생성되는 모든 예측 블록의 화소값은 하나(블록 E의 우측 상단 화소값)인 예측 블록을 생성할 수 있다. 왜냐하면 모두 같은 화소 값으로 복사하였기 때문일 수 있다. 따라서, 블록 E의 예측 모드가 블록 A를 대체하여 선택이 되고, 최적 모드(MPM)를 구성하여 부호화 할 경우, 도 25의 흐름도에 따라가보면, left_PU_MPM은 블록 E의 예측 모드, Above_PU_MPM은 블록 B의 예측 모드(즉 DC)이고 Left_PU_MPM과 Above_PU_MPM이 다르므로, MPM[0] = 블록 E의 예측 모드, MPM[1] = DC, MPM[2] = 플레이너(Planar) 또는 수직(vertical)(E 모드에 따라 결정되므로) 으로 후보군이 분류가 될 수 있다.
여기서 블록 E의 예측 모드가 플레이너(Planar), DC, 수직(vertical), 수평(horizontal), 그룹(group) 2 내지 4 중 하나의 모드라면 MPM[0]은 플레이너(Planar), DC, 수직(vertical), 수평(horizontal), 그룹 2 내지 4(group 2, 3, 4) 중에 하나가 되고, MPM[1]은 DC가 되며, MPM[2]는 블록 E의 모드가 플레이너(Planar)가 아니라면, 플레이너(Planar)이고, 플레이너(Planar)라면 수직(vertical)으로 분류될 수 있다. 그러나 위에 언급한 바와 같이 planar, DC, vertical, horizontal, group, 2, 3, 4의 모드로 예측 블록이 생성되었을 경우 같은 예측 블록(만약 100이라는 화소값으로 참조화소가 구성되었다면 이를 통해 위에 어떤 모드를 사용하여 예측 블록을 생성하더라도 모든 화소가 100일테니)이 생성되므로 중복적인 모드로 MPM을 꾸린 것과 같은 의미가 된다.
그렇기 때문에 만약 블록 E의 예측 모드가 플레이너(planar), DC, 수직(vertical), 수평(horizontal), 그룹 2 내지 4(group, 2, 3, 4) 중 하나의 모드가 된다면, MPM[0]은, 플레이너(planar), DC, 수직(vertical), 수평(horizontal), 그룹 2 내지 4(group, 2, 3, 4) 중에서 결정되고, MPM[1]은 그룹 1(group 1)에 속하는 모드 중 하나가 되며, MPM[2]는 그룹 1(group 1)에 속하는 MPM[1]과 중복되지 않는 블록 중 하나로 분류할 수 있다. 왜냐하면 E 블록의 경계에 있는 참조 화소가 모두 똑같은 화소값으로 구성되어 있지 않은 한 각각 모드마다 예측 블록이 조금(최소 1 화소)이라도 다를 수 있기 때문이다. 여기서, 최적 모드(MPM)로 선택되지 않은 예측 모드에 대해서는 기존의 고정 5비트를 사용하여 이진화를 할 수도 있고, 또는 그룹 1(group 1)에 있는 모드만을 대상으로 이진화를 하여 부호화할 수도 있다. 예를 들어, 모드 2부터 9까지(group 1) 8가지의 수를 가지므로(MPM에 포함된 2개를 빼면 6가지로 줄일 수 있음) 고정 5비트보다 더 짧은 비트로 다양한 이진화 방법을 통해 부호화할 수 있다.
또한, 만약 블록 E의 모드가 그룹 1(group 1)의 모드 중 하나라고 한다면, MPM[0]은 블록 E의 예측 모드, MPM[1]는 DC, MPM[2]는 그룹 1(group 1) 중 블록 E의 예측 모드와 중복되지 않는 하나의 모드로 구성할 수 있다(DC로 생성된 예측 블록이나 planar, vertical, horizontal, group, 2, 3, 4로 생성된 예측블록은 같으므로 group 1에서 가져옴). 이 경우 또한 위와 같은 방식으로 이진화하여 부호화할 수 있다.
도 27은 예측 모드에 대하여, 그룹화한 예시도이다.
도 27을 참조하면, 예측 모드는, 플레이너(Planar), DC, 수직(vertical), 수평(horizontal), 그룹 1(group 1), 그룹 2(group 2), 그룹 3(group 3), 그룹 4(group 4)로 분류된다고 가정할 수 있다. 예측 모드를 2개 이상 그룹으로 묶기 위한 다양한 설정이 가능하며, 아래의 그룹화는 비슷한 방향성을 갖는 설정 하에 분류된 것이다.
여기서 그룹 1(Group 1)은 예측 모드 2 내지 9까지, 그룹 2(Group 2)는 예측 모드 11 내지 17까지, 그룹 3(Group 3)은 예측 모드 18 내지 25까지, 그룹 4(Group 4)는 예측 모드 27 내지 34까지라고 할 수 있다. 또한 예측 모드 0은 플레이너(Planar), 예측 모드 1은 DC, 예측 모드 10은 수평(horizontal), 예측 모드 26은 수직(vertical)을 의미할 수 있다.
이하, 이러한 예측 모드를 전제로 하여 설명한다.
도 28 내지 도 32은 상단 및 좌측의 블록 이외의 이웃한 블록을 활용하여 예측 모드에 대한 MPM을 구성하는 예시도이다.
도 28를 참조하면, 블록 A를 대체하여 블록 E의 예측 모드를, 블록 B를 대체하여 블록 D의 예측 모드를 사용할 수 있다.
도 29을 참조하면, 블록 A를 대체하여 블록 D의 예측 모드를, 블록 B를 대체하여 블록 C의 예측 모드를 사용할 수 있다.
도 30를 참조하면, 블록 A의 예측 모드는 그대로 이용되고, 블록 B를 대체하여 블록 E의 예측 모드를 사용할 수 있다.
도 31를 참조하면, 블록 B의 예측 모드는 그대로 이용되고, 블록 A를 대체하여 블록 C의 예측 모드를 사용할 수 있다.
도 32을 참조하면, 블록 A는 블록 E의 예측 모드로, 블록 B는 블록 D의 예측 모드로 대체할 수 있고, 블록 A는 블록 D의 예측 모드로, 블록 B는 블록 C의 예측 모드로 대체할 수도 있으며, 블록 A는 블록 E의 예측 모드로, 블록 B는 블록 C의 예측 모드로 대체할 수도 있다. 즉, 다양한 조합으로 이용 가능한 블록의 예측 모드로 대체할 수 있다.
위에서의 예시들은 제한된 화면 내 예측(constrained Intra prediction)으로 인해 이용 불가능(not available)한 블록이 생겼을 때의 예로 설명을 하였으나 이웃하는 블록이 다 이용 가능(available)할 때에도 적용될 수 있다. 만약 이웃하는 블록의 참조 화소가 비슷하거나 같은 경우라면(예를 들어, 컴퓨터 캡쳐 화면의 경우) 이때에도 최적 모드(MPM)의 후보군 설정을 달리하여 부호화하는 것 또한 가능하다. 이하에서 이러한 경우를 살펴본다.
도 33은 현재 블록과 이웃한 블록이 모두 이용 가능한 경우, 대체 블록으로 최적 모드(MPM)를 구성하는 예시도이다.
도 33을 참조하면, 검게 표시된 부분은 참조 화소로 이용되는 화소로서, 블록 A, B, C, D와의 경계에 있는 화소는 화소 값의 변화가 없거나 비슷하고, 블록 E와의 경계에 있는 화소는 변화가 있는 것을 나타낸다.
이와 같은 상태에서, 상기 도 27에 표시된 그룹 2 내지 4(Group 2, 3, 4)에 있는 어떤 예측 모드를 사용하더라도 같거나 비슷한 예측 블록을 생성해서 최적 모드(MPM) 후보군의 중복성이 생길 수 있다.
먼저, 각 블록의 참조 화소 값에 대한 분산(σA, σB, σC, σD, σE)이 경계값(Th)보다 작은 블록을 분류할 수 있다. 도 33에서의 분산 σA, σB, σC, σD 는 경계값보다 작고, 블록 E의 분산 σE 는 경계값보다 크다고 가정하자. 이때, 최적 모드(MPM) 후보군의 중복성이 생기는 경우는 2개 이상의 연속하는 블록의 분산이 경계값보다 작은 경우에 발생할 수 있다. 예를 들어, 블록 B와 블록 C의 참조 화소가 같거나 비슷한 값을 가질 경우 블록 B와 블록 C만을 사용하여 생성되는 예측 모드인 그룹 4(group 4)과 수직(vertical)으로 생성되는 예측 블록은 같거나 유사한 값을 가진다고 볼 수 있다. 그래서 그룹 4(group 4)과 수직(vertical) 모드는 중복성 제거 과정을 수행할 수 있다. 만약 블록 A와 블록 C의 참조 화소가 같거나 비슷하다고 할 경우 블록 A와 블록 C만을 사용하여 생성되는 예측 모드가 존재하지 않으므로 고려할 필요가 없다.
먼저, 블록 A, D, B의 참조 화소를 사용하여 생성되는 예측 모드인 수평(horizontal), 그룹 2(group 2), 그룹 3(group 3), 수직(vertical)로부터 생성되는 예측 블록은 같거나 유사한 값을 가지므로 중복성이 발생한다고 판단할 수 있다.
블록 B, C의 참조 화소를 사용하여 생성되는 예측 모드인 수직(vertical), 그룹 4(group 4)로부터 생성되는 예측 블록이 같은 값을 가진다고 가정할 수 있으므로 이 모드들은 중복성이 존재한다고 판단할 수 있다.
블록 A, D, B, C의 참조 화소를 사용하여 생성되는 예측 모드인 수평(horizontal), 그룹 2(group 2), 그룹 3(group 3), 수직(vertical), 그룹 4(group 4), DC, 플레이너(Planar)로부터 생성되는 예측 블록이 같은 예측 블록을 가진다고 가정할 수 있으므로 이 모드들은 중복성이 발생한다고 판단할 수 있다. 즉, 연속하는 블록들의 분산을 계산(σADB, σBC, σADBC)하여 경계값보다 작은 경우 임을 확인할 수 있다.
도 33의 경우 A, D, B, C의 분산이 경계값보다 작을 경우이며 가장 많은 중복성을 발생시키는 경우라 확인할 수 있다. 그리고 위와 같이 중복성을 제거하여 MPM 후보군을 재설정할 수 있다. 분산은 위의 예의 설명을 위해 언급되었지만 이에 한정되지 않는다.
만약 블록 A의 예측모드와 블록 B의 예측모드가 다를 경우 위의 도 25을 참조하면, MPM[0] = 블록 A의 예측모드, MPM[1] = 블록 B의 예측모드, MPM[2] = (블록 A의 예측모드, 블록 B의 예측모드에 따라) 플레이너(Planar), DC, 수직(vertical) 중 하나가 설정될 수 있다. 만약, (둘 중에 하나가 group 1에, 나머지는 그 외의 경우) 블록 A의 예측모드가 위의 분산값의 비교를 통해 같은 예측 블록을 만든다고 분류된 수평(horizontal), 그룹(group) 2, 3, 수직(vertical), group 4, DC, 플레이너(Planar) 중 하나이고, 블록 B의 예측모드는 그룹(group) 1의 모드 중 하나이면 MPM[0] = 블록 A의 예측모드, MPM[1] = 블록 B의 예측모드, MPM[2] = group 1의 모드 중 블록 B의 예측모드와 중복되지 않는 모드로 구성이 될 수 있다. 두 모드가 모두 그룹(group) 1에 속할 경우에는 MPM[0] = 블록 A의 예측모드, MPM[1] = 블록 B의 예측모드, MPM[2] = 플레이너(Planar)로 구성될 수 있다. 만약 두 모드가 모두 그룹(group) 1에 속하지 않는다면, MPM[0] = 블록 A의 예측모드, MPM[1] = 그룹(group) 1의 모드 중 하나, MPM[2] = MPM[1]과 중복되지 않는 group 1의 모드 중 하나로 구성이 될 수 있다. 블록 A의 예측모드와 블록 B의 예측모드가 같고 두 모드가 모드 2(mode 2)보다 커서(DC, 플레이너(Planar)가 아닐 때) 도 25의 가운데로 빠질 때, 두 모드가 수평(horizontal), group 2, 3, 수직(vertical), group 4 중 하나라면 MPM[0] = 블록 A의 예측모드, MPM[1] = group 1 모드 중 하나, MPM[2] = MPM[1]과 중복되지 않는 group 1 모드 중 하나로 구성될 수 있다. 그렇지 않을 때는, MPM[0] = 블록 A의 예측모드, MPM[1] = 블록 A의 예측모드 1, MPM[2] = 블록 A의 예측모드 + 1로 구성될 수 있다. 만약 두 모드가 같고 두 모드가 mode2보다 작을 때(DC, 플레이너(Planar) 중 하나), MPM[0] = 플레이너(Planar), MPM[1] = 그룹(group) 1의 모드 중 하나, MPM[2] = MPM[1]과 중복되지 않는 그룹(group) 1의 모드 중 하나로 구성이 될 수 있다.
도 34은 본 발명의 실시예에 따른 화면 내 예측을 수행하는 영상 부호화 방법을 나타내는 흐름도이다.
도 34을 참조하면, 화면 내 예측을 수행하는 영상 부호화 방법은, 현재 블록의 좌측 블록 및 상단 블록 각각에 대하여 현재 블록의 참조 화소 구성에 이용 가능한지 여부를 결정하는 단계(S210), 결정한 결과를 기초로, MPM(Most Probable Mode) 후보군을 선정하는 단계(S220), MPM 후보군 내의 화면 내 예측 모드에서 도출되는 예측 블록의 중복성을 판단하는 단계(S230), 중복성이 있는 것으로 판단되면, 좌측 블록과 인접하거나 상단 블록과 인접한 대체 블록의 예측 모드를 이용하여 MPM군을 선정하는 단계(S240) 및 선정된 MPM군을 기초로, 현재 블록에 대한 화면 내 예측 모드 부호화를 수행하는 단계(S250)를 포함할 수 있다.
여기서, 이용 가능한지 여부를 결정하는 단계(S210)는, 좌측 블록 및 상단 블록 각각에 대하여, 영상 경계 밖에 존재 하거나, 화면 간 예측으로 부호화된 경우에는 이용 불가능으로 결정되고, 그 밖에는 이용 가능으로 결정될 수 있다.
여기서, MPM 후보군은, 좌측 블록 및 상단 블록 중 이용 가능으로 결정된 블록에 대한 화면 내 예측 모드, 이용 불가능으로 결정된 블록에 대해 미리 설정된 화면 내 예측 모드, 플레이너(Planar) 예측 모드, 수직(Vertical) 예측 모드 및 DC 예측 모드 중에서 적어도 하나를 포함하여 선정될 수 있다.
여기서, 중복성을 판단하는 단계(S230)는, 좌측 블록 및 상단 블록이 모두 이용 가능한 경우, 현재 블록의 좌하단, 좌측, 좌상단, 상단, 우상단에 위치한 블록들 중 연속하는 2 이상의 블록들 내의 참조 화소 값에 대하여 산출한 분산 값을 기초로, 중복성을 판단할 수 있다. 예를 들면, 연속하는 2 이상의 블록을 선정하여 그룹화하고, 선정한 그룹의 분산값을 각각 산출하며, 산출된 분산값이 경계값보다 작은 경우에 중복성이 있는 것으로 판단할 수 있다.
여기서, 중복성을 판단하는 단계(S230)는, 좌측 블록 또는 상단 블록 중 적어도 하나가 이용 불가능한 경우, 이용 불가능한 블록과 현재 블록 사이의 경계 화소들 만을 참조하여 구성되는 화면 내 예측 모드를 선정하는 단계 및 선정된 예측 모드 중 적어도 2개가 상기 MPM 후보군에 포함되어 있으면, 중복성이 있는 것으로 판단하는 단계를 포함할 수 있다.
여기서, 대체 블록은, 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 선택될 수 있다.
여기서 이웃 블록이, 하나 이상의 블록으로 구성된 경우에, 대체 블록은 하나 이상의 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택될 수 있다.
여기서, 대체 블록은, 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택될 수 있다.
본 발명의 실시예에 따른, 화면 내 예측을 수행하는 영상 복호화 방법은, 수신된 비트 스트림으로부터, 현재 블록에 대한 예측 모드가 MPM(Most Probable Mode)군에 포함되어 있는지 여부에 대한 데이터를 추출하는 단계, 데이터를 기초로, 현재 블록에 대한 예측 모드가 MPM군에 포함되어 있는지 결정하는 단계, 현재 블록에 대한 예측 모드가 MPM군에 포함되어 있는 것으로 결정되면, 수신된 비트 스트림으로부터, 현재 블록의 MPM군 인덱스 데이터를 추출하는 단계, 추출된 MPM군 인덱스 데이터에 기초하여, 상기 MPM군에서 현재 블록에 대한 예측 모드를 확인하는 단계 및 확인된 예측 모드를 기초로, 현재 블록에 대한 화면 내 예측을 수행하는 단계를 포함할 수 있다.
여기서, MPM군은, 현재 블록의 좌측 블록 및 상단 블록 각각에 대하여 현재 블록의 참조 화소 구성에 이용 가능한지 여부를 결정하는 단계, 결정한 결과를 기초로, MPM(Most Probable Mode) 후보군을 선정하는 단계, MPM 후보군 내의 화면 내 예측 모드에서 도출되는 예측 블록의 중복성을 판단하는 단계 및 중복성이 있는 것으로 판단되면, 좌측 블록과 인접하거나 상단 블록과 인접한 대체 블록의 예측 모드를 이용하여 선정될 수 있다.
여기서, 이용 가능한지 여부를 결정하는 단계는, 좌측 블록 및 상단 블록 각각에 대하여, 영상 경계 밖에 존재 하거나, 화면 간 예측으로 부호화된 경우에는 이용 불가능으로 결정하고, 그 밖에는 이용 가능으로 결정할 수 있다.
여기서, MPM 후보군은, 좌측 블록 및 상단 블록 중 이용 가능으로 결정된 블록에 대한 화면 내 예측 모드, 이용 불가능으로 결정된 블록에 대해 미리 설정된 화면 내 예측 모드, 플레이너(Planar) 예측 모드, 수직(Vertical) 예측 모드 및 DC 예측 모드 중에서 선정될 수 있다.
여기서, 예측 블록의 중복성을 판단하는 것은, 좌측 블록 및 상단 블록이 모두 이용 가능한 경우, 현재 블록의 좌하단, 좌, 좌상단, 상단, 우상단에 위치한 블록들 중 연속하는 2 이상의 블록들 내의 참조 화소 값에 대하여 산출한 분산 값을 기초로, 판단할 수 있다.
여기서, 예측 블록의 중복성을 판단하는 단계는, 좌측 블록 또는 상단 블록 중 적어도 하나가 이용 불가능한 경우, 이용 불가능한 블록과 현재 블록 사이의 경계 화소들 만을 참조하여 구성되는 화면 내 예측 모드를 선정하고, 선정된 예측 모드 중 적어도 2개가 MPM 후보군에 포함되어 있으면, 중복성이 있는 것으로 판단할 수 있다.
여기서, 대체 블록은, 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 선택될 수 있다.
여기서, 이웃 블록이, 하나 이상의 블록으로 구성된 경우에, 대체 블록은 상기 하나 이상의 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택될 수 있다.
여기서, 대체 블록은, 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택될 수 있다.
본 발명의 실시예에 따른 하나 이상의 프로세서들을 포함하는 영상 복호화 장치에서, 하나 이상의 프로세서들은, 수신된 비트 스트림으로부터, 현재 블록에 대한 예측 모드가 MPM(Most Probable Mode)군에 포함되어 있는지 여부에 대한 데이터를 추출하고, 데이터를 기초로, 현재 블록에 대한 예측 모드가 MPM군에 포함되어 있는지 결정하며, 현재 블록에 대한 예측 모드가 MPM군에 포함되어 있는 것으로 결정되면, 수신된 비트 스트림으로부터, 현재 블록의 MPM군 인덱스 데이터를 추출한 후, 추출된 MPM군 인덱스 데이터에 기초하여, MPM군에서 현재 블록에 대한 예측 모드를 확인하여 확인된 예측 모드를 기초로, 현재 블록에 대한 화면 내 예측을 수행할 수 있다.
여기서, MPM군은, 현재 블록의 좌측 블록 및 상단 블록 각각에 대하여 현재 블록의 참조 화소 구성에 이용 가능한지 여부를 결정하는 단계, 결정한 결과를 기초로, MPM(Most Probable Mode) 후보군을 선정하는 단계, MPM 후보군 내의 화면 내 예측 모드에서 도출되는 예측 블록의 중복성을 판단하는 단계 및 중복성이 있는 것으로 판단되면, 좌측 블록과 인접하거나 상단 블록과 인접한 대체 블록의 예측 모드를 이용하여 선정될 수 있다.
여기서, 이용 가능한지 여부를 결정하는 단계는, 좌측 블록 및 상단 블록 각각에 대하여, 영상 경계 밖에 존재 하거나, 화면 간 예측으로 부호화된 경우에는 이용 불가능으로 결정하고, 그 밖에는 이용 가능으로 결정할 수 있다.
여기서, 예측 블록의 중복성을 판단하는 단계는, 좌측 블록 또는 상단 블록 중 적어도 하나가 이용 불가능한 경우, 이용 불가능한 블록과 현재 블록 사이의 경계 화소들 만을 참조하여 구성되는 화면 내 예측 모드를 선정하고, 선정된 예측 모드 중 적어도 2개가 상기 MPM 후보군에 포함되어 있으면, 중복성이 있는 것으로 판단할 수 있다.
전술한 실시예에 의하면, 화면 내 예측 기술이 사용되고 있는 MPEG-2, MPEG-4, H.264 등의 국제 코덱 또는 기타 다른 코덱과 이 코덱들을 사용하는 매체, 그리고 영상 산업에 전반적으로 이용가능한 고성능 고효율의 영상 부호화 복호화 기술을 제공할 수 있다.
또한, 향후에는 현재의 고효율 영상 부호화 기술(HEVC) 및 H.264/AVC와 같은 표준 코덱과 화면 내 예측을 사용하는 영상 처리 분야에 적용이 예상된다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 화면 내 예측을 수행하는 영상 부호화 방법에 있어서,
    현재 블록과 이웃한 블록 각각의 예측 모드를 고려하여, 상기 이웃한 블록 내의 경계 화소를 상기 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계;
    결정한 결과에 따라, 상기 현재 블록의 참조 화소를 획득하는 단계;
    상기 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및
    상기 생성한 예측 블록을 이용하여 상기 현재 블록을 부호화하는 단계를 포함하는, 영상 부호화 방법.
  2. 청구항 1에 있어서,
    상기 참조 화소로 이용 가능한지 여부를 결정하는 단계는,
    상기 이웃한 블록의 예측 모드가 화면 간 예측인 경우, 상기 이웃한 블록의 참조 픽쳐를 고려하여, 상기 경계 화소를 상기 현재 픽쳐의 참조 화소로 이용가능한지 여부를 결정하는 것을 특징으로 하는, 영상 부호화 방법.
  3. 청구항 2에 있어서,
    상기 참조 픽쳐는, 상기 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 상기 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 상기 현재 픽쳐가 상기 리스트 0 또는 상기 리스트 1에 포함될 수 있는 것을 특징으로 하는, 영상 부호화 방법.
  4. 청구항 2에 있어서,
    상기 이웃한 블록의 참조 픽쳐가 현재 픽쳐인 경우에는, 상기 경계 화소를 상기 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정하는 것을 특징으로 하는, 영상 부호화 방법.
  5. 청구항 2에 있어서,
    상기 이웃한 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우에는, 상기 경계 화소를 상기 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정하는 것을 특징으로 하는, 영상 부호화 방법.
  6. 화면 내 예측을 수행하는 영상 복호화 방법에 있어서,
    현재 블록 및 상기 현재 블록과 이웃한 블록의 예측 모드에 관한 데이터를 포함하는 비트 스트림을 수신하는 단계;
    상기 수신된 비트스트림으로부터 상기 데이터를 추출하여, 상기 이웃한 블록의 예측 모드를 확인하는 단계;
    상기 이웃한 블록의 예측 모드를 고려하여, 상기 이웃한 블록 내의 경계 화소를 상기 현재 블록의 참조 화소로 이용 가능한지 여부를 결정하는 단계;
    결정한 결과에 따라, 상기 현재 블록의 참조 화소를 획득하는 단계;
    상기 획득한 참조 화소에 기초하여 화면 내 예측된 예측 블록을 생성하는 단계 및
    상기 생성한 예측 블록을 이용하여 상기 현재 블록을 복호화하는 단계를 포함하는, 영상 복호화 방법.
  7. 청구항 6에 있어서,
    상기 참조 화소로 이용 가능한지 여부를 결정하는 단계는,
    상기 이웃한 블록의 예측 모드가 화면 간 예측인 경우, 상기 이웃한 블록의 참조 픽쳐를 고려하여, 상기 경계 화소를 상기 현재 픽쳐의 참조 화소로 이용가능한지 여부를 결정하는 것을 특징으로 하는, 영상 복호화 방법.
  8. 청구항 7에 있어서,
    상기 참조 픽쳐는, 상기 현재 픽쳐 이전의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 0 또는 상기 현재 픽쳐 이후의 참조 픽쳐들에 대한 데이터를 저장하는 리스트 1에서 선택되고, 상기 현재 픽쳐가 상기 리스트 0 또는 상기 리스트 1에 포함될 수 있는 것을 특징으로 하는, 영상 복호화 방법.
  9. 청구항 7에 있어서,
    상기 이웃한 블록의 참조 픽쳐가 현재 픽쳐인 경우에는, 상기 경계 화소를 상기 현재 픽쳐의 참조 화소로 이용 가능한 것으로 결정하는 것을 특징으로 하는, 영상 복호화 방법.
  10. 청구항 7에 있어서,
    상기 이웃한 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우에는, 상기 이웃한 블록 내의 화소를 현재 픽쳐의 참조 화소로 이용 불가능한 것으로 결정하는 것을 특징으로 하는, 영상 복호화 방법.
  11. 화면 내 예측을 수행하는 영상 부호화 방법에 있어서,
    현재 블록의 좌측 블록 및 상단 블록 각각에 대하여 현재 블록의 참조 화소 구성에 이용 가능한지 여부를 결정하는 단계;
    결정한 결과를 기초로, MPM(Most Probable Mode) 후보군을 선정하는 단계;
    상기 MPM 후보군 내의 화면 내 예측 모드에서 도출되는 예측 블록의 중복성을 판단하는 단계;
    중복성이 있는 것으로 판단되면, 상기 좌측 블록과 인접하거나 상기 상단 블록과 인접한 대체 블록의 예측 모드를 이용하여 MPM군을 선정하는 단계 및
    선정된 MPM군을 기초로, 상기 현재 블록에 대한 화면 내 예측 모드 부호화를 수행하는 단계를 포함하는 영상 부호화 방법.
  12. 청구항 11에 있어서,
    상기 중복성을 판단하는 단계는,
    상기 좌측 블록 및 상기 상단 블록이 모두 이용 가능한 경우, 현재 블록의 좌하단, 좌측, 좌상단, 상단, 우상단에 위치한 블록들 중 연속하는 2 이상의 블록들 내의 참조 화소 값에 대하여 산출한 분산 값을 기초로, 중복성을 판단하는 것을 특징으로 하는, 영상 부호화 방법.
  13. 청구항 11에 있어서,
    상기 중복성을 판단하는 단계는,
    상기 좌측 블록 또는 상기 상단 블록 중 적어도 하나가 이용 불가능한 경우, 이용 불가능한 블록과 현재 블록 사이의 경계 화소들만을 참조하여 구성되는 화면 내 예측 모드를 선정하는 단계 및
    상기 선정된 예측 모드 중 적어도 2개가 상기 MPM 후보군에 포함되어 있으면, 중복성이 있는 것으로 판단하는 단계를 포함하는, 영상 부호화 방법.
  14. 청구항 11에 있어서,
    상기 대체 블록은, 상기 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 선택되는 것을 특징으로 하는, 영상 부호화 방법.
  15. 화면 내 예측을 수행하는 영상 복호화 방법에 있어서,
    수신된 비트 스트림으로부터, 현재 블록에 대한 예측 모드가 MPM(Most Probable Mode)군에 포함되어 있는지 여부에 대한 데이터를 추출하는 단계;
    상기 데이터를 기초로, 상기 현재 블록에 대한 예측 모드가 상기 MPM군에 포함되어 있는지 결정하는 단계;
    상기 현재 블록에 대한 예측 모드가 상기 MPM군에 포함되어 있는 것으로 결정되면, 상기 수신된 비트 스트림으로부터, 현재 블록의 MPM군 인덱스 데이터를 추출하는 단계;
    상기 추출된 MPM군 인덱스 데이터에 기초하여, 상기 MPM군에서 현재 블록에 대한 예측 모드를 확인하는 단계 및
    상기 확인된 예측 모드를 기초로, 현재 블록에 대한 화면 내 예측을 수행하는 단계를 포함하는, 영상 복호화 방법.
  16. 청구항 15에 있어서,
    상기 MPM군은,
    상기 현재 블록의 좌측 블록 및 상단 블록 각각에 대하여 현재 블록의 참조 화소 구성에 이용 가능한지 여부를 결정하는 단계;
    결정한 결과를 기초로, MPM(Most Probable Mode) 후보군을 선정하는 단계;
    상기 MPM 후보군 내의 화면 내 예측 모드에서 도출되는 예측 블록의 중복성을 판단하는 단계 및
    중복성이 있는 것으로 판단되면, 상기 좌측 블록과 인접하거나 상기 상단 블록과 인접한 대체 블록의 예측 모드를 이용하여 선정되는 것을 특징으로 하는, 영상 복호화 방법.
  17. 청구항 16에 있어서,
    상기 예측 블록의 중복성을 판단하는 단계는,
    상기 좌측 블록 및 상기 상단 블록이 모두 이용 가능한 경우, 현재 블록의 좌하단, 좌, 좌상단, 상단, 우상단에 위치한 블록들 중 연속하는 2 이상의 블록들 내의 참조 화소 값에 대하여 산출한 분산 값을 기초로, 판단하는 것을 특징으로 하는, 영상 복호화 방법.
  18. 청구항 16에 있어서,
    상기 예측 블록의 중복성을 판단하는 단계는,
    상기 좌측 블록 또는 상기 상단 블록 중 적어도 하나가 이용 불가능한 경우, 이용 불가능한 블록과 현재 블록 사이의 경계 화소들 만을 참조하여 구성되는 화면 내 예측 모드를 선정하고, 상기 선정된 예측 모드 중 적어도 2개가 상기 MPM 후보군에 포함되어 있으면, 중복성이 있는 것으로 판단하는 것을 특징으로 하는, 영상 복호화 방법.
  19. 청구항 16에 있어서,
    상기 대체 블록은, 상기 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 선택되는 것을 특징으로 하는, 영상 복호화 방법.
  20. 청구항 16에 있어서,
    상기 대체 블록은, 상기 현재 블록의 좌하단, 좌상단, 우상단에 위치한 이웃 블록 중에서 시계방향 또는 반 시계방향의 우선 순위로 선택되는 것을 특징으로 하는, 영상 복호화 방법.
PCT/KR2016/006013 2015-06-05 2016-06-07 화면 내 예측에 대한 부호화/복호화 방법 및 장치 WO2016195460A1 (ko)

Priority Applications (12)

Application Number Priority Date Filing Date Title
EP16803813.1A EP3306920A4 (en) 2015-06-05 2016-06-07 METHOD AND DEVICE FOR CODING AND DECODING INTRA-FRAME PREDICTION
CN202210551885.9A CN115134595A (zh) 2015-06-05 2016-06-07 用于执行帧间预测的图像编解码方法、比特流存储方法
US15/579,869 US20180160113A1 (en) 2015-06-05 2016-06-07 Method and device for encoding and decoding intra-frame prediction
EP21217947.7A EP4013051A1 (en) 2015-06-05 2016-06-07 Methods for encoding and decoding intra-frame prediction
CN202210551268.9A CN115134593A (zh) 2015-06-05 2016-06-07 用于执行帧间预测的图像编解码方法、比特流存储方法
CN201680045604.5A CN107925759B (zh) 2015-06-05 2016-06-07 用于编码和解码帧内预测的方法和设备
CN202210551282.9A CN115134594A (zh) 2015-06-05 2016-06-07 用于执行帧间预测的图像编解码方法、比特流存储方法
CN202210568332.4A CN115134591A (zh) 2015-06-05 2016-06-07 图像编解码方法、比特流存储方法
CN202210563176.2A CN115134596A (zh) 2015-06-05 2016-06-07 用于执行帧间预测的图像编解码方法、比特流存储方法
EP19214067.1A EP3654646A1 (en) 2015-06-05 2016-06-07 Methods for encoding and decoding intra-frame prediction based on block shape
US16/579,217 US11368675B2 (en) 2015-06-05 2019-09-23 Method and device for encoding and decoding intra-frame prediction
US17/742,059 US20220321875A1 (en) 2015-06-05 2022-05-11 Method and device for encoding and decoding intra-frame prediction

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20150079896 2015-06-05
KR20150079878 2015-06-05
KR10-2015-0079896 2015-06-05
KR10-2015-0079878 2015-06-05

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US15/579,869 A-371-Of-International US20180160113A1 (en) 2015-06-05 2016-06-07 Method and device for encoding and decoding intra-frame prediction
US16/579,217 Continuation US11368675B2 (en) 2015-06-05 2019-09-23 Method and device for encoding and decoding intra-frame prediction

Publications (1)

Publication Number Publication Date
WO2016195460A1 true WO2016195460A1 (ko) 2016-12-08

Family

ID=57440896

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/006013 WO2016195460A1 (ko) 2015-06-05 2016-06-07 화면 내 예측에 대한 부호화/복호화 방법 및 장치

Country Status (4)

Country Link
US (3) US20180160113A1 (ko)
EP (3) EP3654646A1 (ko)
CN (6) CN115134594A (ko)
WO (1) WO2016195460A1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019012980A (ja) * 2017-07-03 2019-01-24 日本放送協会 決定装置、符号化装置、復号装置及びプログラム
WO2019059482A1 (ko) * 2017-09-19 2019-03-28 삼성전자 주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
WO2019096221A1 (en) * 2017-11-17 2019-05-23 Fg Innovation Ip Company Limited Device and method for coding video data based on adjusted intra mode list
CN110248196A (zh) * 2018-03-07 2019-09-17 腾讯美国有限责任公司 用于调色板编解码的方法和设备
CN110583017A (zh) * 2017-04-28 2019-12-17 韩国电子通信研究院 图像编码/解码方法和装置、以及存储比特流的记录介质
CN110870312A (zh) * 2017-05-12 2020-03-06 2236008安大略有限公司 用于视频压缩中的帧内编码的方法和设备
WO2020139061A1 (ko) * 2018-12-28 2020-07-02 인텔렉추얼디스커버리 주식회사 화면 간 예측 부호화 및 복호화 방법 및 장치
US11381809B2 (en) 2018-01-15 2022-07-05 B1 Institute Of Image Technology, Inc. Intra prediction encoding/decoding method and apparatus for chrominance components

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2997097C (en) 2015-08-28 2022-06-07 Kt Corporation Method and device for processing video signal
WO2017082670A1 (ko) * 2015-11-12 2017-05-18 엘지전자 주식회사 영상 코딩 시스템에서 계수 유도 인트라 예측 방법 및 장치
US11095911B2 (en) * 2016-02-16 2021-08-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding image
US10390021B2 (en) * 2016-03-18 2019-08-20 Mediatek Inc. Method and apparatus of video coding
CN113810707A (zh) * 2016-04-29 2021-12-17 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
WO2017190288A1 (en) * 2016-05-04 2017-11-09 Microsoft Technology Licensing, Llc Intra-picture prediction using non-adjacent reference lines of sample values
US20190289301A1 (en) * 2016-05-23 2019-09-19 Kaonmedia Co., Ltd. Image processing method, and image encoding and decoding method using same
KR20180040319A (ko) * 2016-10-12 2018-04-20 가온미디어 주식회사 영상 처리 방법, 그를 이용한 영상 복호화 및 부호화 방법
WO2018012366A1 (ja) * 2016-07-13 2018-01-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法及び符号化方法
US10863186B2 (en) * 2016-08-26 2020-12-08 Sharp Kabushiki Kaisha Image decoding apparatus and image coding apparatus
US10506228B2 (en) * 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
WO2018066980A1 (ko) 2016-10-04 2018-04-12 김기백 영상 데이터 부호화/복호화 방법 및 장치
US20190253624A1 (en) * 2017-07-17 2019-08-15 Ki Baek Kim Image data encoding/decoding method and apparatus
EP3306938A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for binary-tree split mode coding
CN117692635A (zh) * 2016-10-14 2024-03-12 世宗大学校产学协力团 影像编码/解码方法及比特流的传送方法
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
WO2018123800A1 (ja) * 2016-12-27 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN110178371A (zh) * 2017-01-16 2019-08-27 世宗大学校产学协力团 影像编码/解码方法及装置
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
WO2018164504A1 (ko) 2017-03-09 2018-09-13 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
KR20200012957A (ko) * 2017-06-30 2020-02-05 후아웨이 테크놀러지 컴퍼니 리미티드 인터-프레임 예측 방법 및 디바이스
JP7150810B2 (ja) * 2017-07-06 2022-10-11 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート 画像復号方法及び画像符号化方法
CN117528071A (zh) * 2017-08-21 2024-02-06 韩国电子通信研究院 编码/解码视频的方法和设备以及存储比特流的记录介质
US10641957B2 (en) 2017-08-29 2020-05-05 Juniper Networks, Inc. Smooth waveguide structures and manufacturing methods
WO2019059107A1 (ja) * 2017-09-20 2019-03-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US10841610B2 (en) * 2017-10-23 2020-11-17 Avago Technologies International Sales Pte. Limited Block size dependent interpolation filter selection and mapping
WO2019156141A1 (ja) * 2018-02-08 2019-08-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP2021522713A (ja) 2018-04-24 2021-08-30 サムスン エレクトロニクス カンパニー リミテッド ビデオ符号化方法及びその装置、ビデオ復号方法及びその装置
CN112106360A (zh) * 2018-05-10 2020-12-18 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
WO2019234613A1 (en) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partition tree with partition into 3 sub-blocks by horizontal and vertical splits
CN110620926B (zh) * 2018-06-20 2022-01-04 浙江大学 一种帧内预测模式编解码方法及装置
KR20210016472A (ko) 2018-06-25 2021-02-15 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 화면내 예측 방법 및 장치
MX2020013451A (es) * 2018-06-26 2021-02-26 Interdigital Vc Holdings Inc Intraprediccion de referencia multiple usando pesos variables.
KR20210020924A (ko) * 2018-06-27 2021-02-24 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치
KR20200006932A (ko) * 2018-07-11 2020-01-21 인텔렉추얼디스커버리 주식회사 화면내 예측 기반의 비디오 코딩 방법 및 장치
WO2020015841A1 (en) * 2018-07-20 2020-01-23 Huawei Technologies Co., Ltd. Method and apparatus of reference sample interpolation for bidirectional intra prediction
AU2019330406B2 (en) * 2018-08-27 2023-02-02 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction
JP7290713B2 (ja) 2018-08-28 2023-06-13 鴻穎創新有限公司 ビデオデータをコーディングする装置及び方法
EP3818715B1 (en) * 2018-09-03 2024-04-03 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction
CN112806003B (zh) * 2018-09-06 2024-02-13 Lg 电子株式会社 使用mpm列表的基于帧内预测的图像编码方法及其装置
WO2020055290A1 (en) * 2018-09-13 2020-03-19 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction
US11445216B2 (en) * 2018-09-14 2022-09-13 Lg Electronics Inc. Image prediction method and apparatus for performing intra prediction
AU2019344407B2 (en) * 2018-09-21 2022-07-07 Huawei Technologies Co., Ltd. Intra prediction mode derivation based on neighboring blocks
CN111108749A (zh) * 2018-09-25 2020-05-05 北京大学 编码方法、解码方法、编码设备和解码设备
US11095885B2 (en) * 2018-10-05 2021-08-17 Tencent America LLC Mode list generation for multi-line intra prediction
WO2020073911A1 (en) 2018-10-09 2020-04-16 Huawei Technologies Co., Ltd. Devices and methods for image and video coding
CN112840654B (zh) * 2018-10-12 2024-04-16 韦勒斯标准与技术协会公司 使用多假设预测的视频信号处理方法和装置
KR20200041801A (ko) * 2018-10-12 2020-04-22 인텔렉추얼디스커버리 주식회사 영상 부호화/복호화 방법 및 장치
CN109561314B (zh) * 2018-10-26 2020-12-22 嘉兴奥恒进出口有限公司 带宽压缩的自适应模板预测方法
CN109413420B (zh) * 2018-10-26 2020-10-13 吉林建筑大学 带宽压缩中复杂纹理的双模式选择预测方法
CA3121409A1 (en) * 2018-11-29 2020-06-04 Huawei Technologies Co., Ltd. Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction
US11323748B2 (en) * 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
WO2020139006A2 (ko) * 2018-12-28 2020-07-02 한국전자통신연구원 화면 내 예측 모드 유도 방법 및 장치
US20220132109A1 (en) * 2019-02-21 2022-04-28 Lg Electronics Inc. Image decoding method and apparatus using intra prediction in image coding system
US11711534B2 (en) 2019-02-28 2023-07-25 Apple Inc. Method for encoding/decoding image signal, and device therefor
US11909964B2 (en) * 2019-03-08 2024-02-20 Sony Group Corporation Information processing device, information processing method, and program
CN110210283B (zh) * 2019-04-09 2021-05-14 深圳市梦网视讯有限公司 一种基于换装应用的图像处理方法和系统
WO2020207493A1 (en) * 2019-04-12 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Transform coding based on matrix-based intra prediction
WO2020224660A1 (en) * 2019-05-09 2020-11-12 Beijing Bytedance Network Technology Co., Ltd. Most probable mode list construction for screen content coding
WO2020262951A1 (ko) 2019-06-24 2020-12-30 현대자동차주식회사 동영상 데이터의 인트라 예측 코딩을 위한 방법 및 장치
US11432015B2 (en) * 2019-07-11 2022-08-30 Qualcomm Incorporated Adaptive loop filtering across raster-scan slices
CN117459744A (zh) 2019-07-20 2024-01-26 北京字节跳动网络技术有限公司 调色板模式使用指示的条件相关编解码
CN117221536A (zh) 2019-07-23 2023-12-12 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
WO2021018166A1 (en) * 2019-07-29 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Scanning order improvements for palette mode coding
CN113794884B (zh) * 2019-08-23 2022-12-23 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113794878B (zh) * 2019-09-23 2022-12-23 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
EP4070552A1 (en) * 2019-12-05 2022-10-12 InterDigital VC Holdings France, SAS Intra sub partitions for video encoding and decoding combined with multiple transform selection, matrix weighted intra prediction or multi-reference-line intra prediction
CN113099240B (zh) * 2019-12-23 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
US11831900B2 (en) * 2021-03-29 2023-11-28 Ati Technologies Ulc Video encoding/decoding using detected pattern of pixel intensity differences
US11863786B2 (en) * 2021-05-21 2024-01-02 Varjo Technologies Oy Method of transporting a framebuffer
CN117795961A (zh) * 2021-06-29 2024-03-29 株式会社Kt 基于帧内预测的视频信号编码/解码方法和装置以及存储比特流的记录介质
CN114513661B (zh) * 2022-04-20 2022-09-06 宁波康达凯能医疗科技有限公司 一种基于方向检测的帧内图像模式决策方法与系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120058379A (ko) * 2010-11-29 2012-06-07 에스케이 텔레콤주식회사 인트라예측모드의 중복성을 최소화하기 위한 영상 부호화/복호화 방법 및 장치
KR20130105114A (ko) * 2012-03-16 2013-09-25 주식회사 아이벡스피티홀딩스 인트라 예측 모드에서의 영상 복호화 방법
US20130301715A1 (en) * 2011-01-14 2013-11-14 Huawei Technologies Co., Ltd. Prediction method in coding or decoding and predictor
WO2014107083A1 (ko) * 2013-01-07 2014-07-10 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR20150000851A (ko) * 2011-07-01 2015-01-05 삼성전자주식회사 단일화된 참조가능성 확인 과정을 통해 인트라 예측을 수반하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5686499B2 (ja) * 2009-01-22 2015-03-18 株式会社Nttドコモ 画像予測符号化装置、方法及びプログラム、画像予測復号装置、方法及びプログラム、並びに、符号化・復号システム及び方法
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
EP2560386A1 (en) * 2011-08-15 2013-02-20 MediaTek, Inc Video processing apparatus and method
US9769472B2 (en) * 2011-08-17 2017-09-19 Mediatek Singapore Pte. Ltd. Method and apparatus for Intra prediction using non-square blocks
US9787982B2 (en) * 2011-09-12 2017-10-10 Qualcomm Incorporated Non-square transform units and prediction units in video coding
JP6017574B2 (ja) * 2011-10-24 2016-11-02 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 参照ピクチャマーキング
CN103200400B (zh) 2012-01-09 2018-03-16 中兴通讯股份有限公司 一种图像层和分片层的编解码方法、编解码器和电子设备
RS60786B1 (sr) * 2012-01-20 2020-10-30 Dolby Laboratories Licensing Corp Postupak mapiranja režima intra predikcije
CN104541510B (zh) * 2012-04-15 2018-08-24 三星电子株式会社 参考画面列表能够被改变的帧间预测方法及其设备
US20130336406A1 (en) 2012-06-14 2013-12-19 Qualcomm Incorporated Redundancy removal for merge/skip mode motion information candidate list construction
US9961358B2 (en) * 2013-04-09 2018-05-01 Mediatek Singapore Pte. Ltd. Method and apparatus for non-square intra mode coding
US9641853B2 (en) 2013-04-15 2017-05-02 Futurewei Technologies, Inc. Method and apparatus of depth prediction mode selection
US9451254B2 (en) 2013-07-19 2016-09-20 Qualcomm Incorporated Disabling intra prediction filtering
US20150110181A1 (en) 2013-10-18 2015-04-23 Samsung Electronics Co., Ltd. Methods for palette prediction and intra block copy padding
KR101908205B1 (ko) * 2014-02-21 2018-10-15 미디어텍 싱가폴 피티이. 엘티디. 인트라 화상 블록 카피에 기초한 예측을 이용하는 비디오 코딩 방법
JP2017532885A (ja) * 2014-09-26 2017-11-02 ヴィド スケール インコーポレイテッド 時間ブロックベクトル予測を用いたイントラブロックコピー符号化
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120058379A (ko) * 2010-11-29 2012-06-07 에스케이 텔레콤주식회사 인트라예측모드의 중복성을 최소화하기 위한 영상 부호화/복호화 방법 및 장치
US20130301715A1 (en) * 2011-01-14 2013-11-14 Huawei Technologies Co., Ltd. Prediction method in coding or decoding and predictor
KR20150000851A (ko) * 2011-07-01 2015-01-05 삼성전자주식회사 단일화된 참조가능성 확인 과정을 통해 인트라 예측을 수반하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
KR20130105114A (ko) * 2012-03-16 2013-09-25 주식회사 아이벡스피티홀딩스 인트라 예측 모드에서의 영상 복호화 방법
WO2014107083A1 (ko) * 2013-01-07 2014-07-10 엘지전자 주식회사 비디오 신호 처리 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3306920A4 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11943475B2 (en) 2017-04-28 2024-03-26 Intellectual Discovery Co., Ltd. Image encoding/decoding method and device, and recording medium storing bitstream
CN110583017B (zh) * 2017-04-28 2023-10-31 英迪股份有限公司 图像编码/解码方法和装置、以及存储比特流的记录介质
CN110583017A (zh) * 2017-04-28 2019-12-17 韩国电子通信研究院 图像编码/解码方法和装置、以及存储比特流的记录介质
CN110870312A (zh) * 2017-05-12 2020-03-06 2236008安大略有限公司 用于视频压缩中的帧内编码的方法和设备
CN110870312B (zh) * 2017-05-12 2023-10-03 黑莓有限公司 用于视频压缩中的帧内编码的方法和设备
EP3622711A4 (en) * 2017-05-12 2021-01-27 BlackBerry Limited METHODS AND DEVICES FOR INTRACODING IN VIDEO COMPRESSION
JP2019012980A (ja) * 2017-07-03 2019-01-24 日本放送協会 決定装置、符号化装置、復号装置及びプログラム
WO2019059482A1 (ko) * 2017-09-19 2019-03-28 삼성전자 주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
US10965942B2 (en) 2017-11-17 2021-03-30 FG Innovation Company Limited Device and method for coding video data based on adjusted intra mode list
WO2019096221A1 (en) * 2017-11-17 2019-05-23 Fg Innovation Ip Company Limited Device and method for coding video data based on adjusted intra mode list
US11381809B2 (en) 2018-01-15 2022-07-05 B1 Institute Of Image Technology, Inc. Intra prediction encoding/decoding method and apparatus for chrominance components
US11838499B2 (en) 2018-01-15 2023-12-05 B1 Institute Of Image Technology, Inc. Encoding/decoding method and apparatus for coding unit partitioning
CN110248196B (zh) * 2018-03-07 2022-10-11 腾讯美国有限责任公司 用于调色板编解码的方法和设备
CN110248196A (zh) * 2018-03-07 2019-09-17 腾讯美国有限责任公司 用于调色板编解码的方法和设备
WO2020139061A1 (ko) * 2018-12-28 2020-07-02 인텔렉추얼디스커버리 주식회사 화면 간 예측 부호화 및 복호화 방법 및 장치
US11792393B2 (en) 2018-12-28 2023-10-17 Intellectual Discovery Co., Ltd. Inter prediction encoding and decoding method using combination of prediction blocks, and computer-readable storage medium bitstream to be decoded thereby

Also Published As

Publication number Publication date
CN115134595A (zh) 2022-09-30
CN107925759A (zh) 2018-04-17
EP3306920A1 (en) 2018-04-11
EP3654646A1 (en) 2020-05-20
US20200021801A1 (en) 2020-01-16
CN115134594A (zh) 2022-09-30
EP3306920A4 (en) 2019-01-16
CN115134591A (zh) 2022-09-30
US20180160113A1 (en) 2018-06-07
CN115134593A (zh) 2022-09-30
CN115134596A (zh) 2022-09-30
EP4013051A1 (en) 2022-06-15
US11368675B2 (en) 2022-06-21
US20220321875A1 (en) 2022-10-06
CN107925759B (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
WO2016195460A1 (ko) 화면 내 예측에 대한 부호화/복호화 방법 및 장치
WO2016200242A1 (ko) 적응적인 디블록킹 필터링을 이용하는 영상 부호화 방법과 영상 복호화 방법 및 장치
WO2016195453A1 (ko) 영상 부호화 및 복호화 방법과 영상 복호화 장치
WO2019112394A1 (ko) 채널들 간의 선택적인 정보 공유를 사용하는 부호화 및 복호화를 위한 방법 및 장치
WO2019182385A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018030773A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2019172705A1 (ko) 샘플 필터링을 이용한 영상 부호화/복호화 방법 및 장치
WO2018124843A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019078629A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020005035A1 (ko) 처리율 향상을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019039806A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019240493A1 (ko) 문맥 적응적 이진 산술 부호화 방법 및 장치
WO2021107532A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020013532A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021015581A1 (ko) 기하학적 분할을 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2017176092A1 (ko) 움직임 예측 정보를 유도하는 방법 및 장치
WO2020060317A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020017910A1 (ko) 지역 조명 보상을 통한 효과적인 비디오 부호화/복호화 방법 및 장치
WO2021112651A1 (ko) 팔레트 모드를 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2018101685A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021112652A1 (ko) 영역 차등적 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2022019613A1 (ko) 기하학적 분할을 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2020071836A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019074273A1 (ko) 인터 예측 정보를 사용하는 방법 및 장치
WO2020139005A1 (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: 16803813

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15579869

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016803813

Country of ref document: EP