WO2016195453A1 - 영상 부호화 및 복호화 방법과 영상 복호화 장치 - Google Patents

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

Info

Publication number
WO2016195453A1
WO2016195453A1 PCT/KR2016/005998 KR2016005998W WO2016195453A1 WO 2016195453 A1 WO2016195453 A1 WO 2016195453A1 KR 2016005998 W KR2016005998 W KR 2016005998W WO 2016195453 A1 WO2016195453 A1 WO 2016195453A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
picture
candidate
current
motion vector
Prior art date
Application number
PCT/KR2016/005998
Other languages
English (en)
French (fr)
Inventor
정제창
김기백
김용훈
이정현
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to CN201680045584.1A priority Critical patent/CN108141604B/zh
Priority to EP16803806.5A priority patent/EP3306935A4/en
Priority to CN202210683068.9A priority patent/CN115002456A/zh
Priority to US15/579,903 priority patent/US20180176596A1/en
Priority to CN202210683144.6A priority patent/CN115086653A/zh
Priority to CN202210683142.7A priority patent/CN115002458A/zh
Priority to CN202210683069.3A priority patent/CN115002457A/zh
Priority to EP23153583.2A priority patent/EP4221202A1/en
Priority to CN202210683067.4A priority patent/CN115002455A/zh
Priority to CN202210683070.6A priority patent/CN115086652A/zh
Publication of WO2016195453A1 publication Critical patent/WO2016195453A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Definitions

  • the present invention relates to an image encoding and decoding technique. More particularly, the present invention relates to selecting and using prediction candidates from reference blocks of a reference picture including a current picture to derive motion information about a current block in image encoding and decoding.
  • the present invention relates to a video encoding and decoding method and a video decoding apparatus.
  • motion information of neighboring blocks of the current block is predicted from at least one reference picture before or after the current picture according to the inter prediction method, or the current picture according to the intra prediction method.
  • the motion vector of the current block is estimated by acquiring motion information from the reference block.
  • An object of the present invention for solving the above problems, motion vector candidate selection for selecting a prediction candidate from the reference blocks of the reference picture including the current picture in order to derive motion information for the current block in image encoding and decoding
  • a method, an image encoding and decoding method using the same, and an image decoding apparatus are provided.
  • Another object of the present invention is to provide an image encoding and decoding method using a motion vector difference when selecting a prediction candidate from reference blocks of a reference picture including a current picture to derive motion information about a current block in image encoding and decoding;
  • An image decoding apparatus is provided.
  • an image encoding method for the configuration of the reference pixel in the intra prediction obtaining a reference pixel of the current block from the neighboring block in the intra prediction for the current block, reference Performing adaptive filtering on the pixel, generating a prediction block of the current block by using a reference pixel to which the adaptive filtering is applied as an input value according to the prediction mode of the current block, and applying a post-processing filter adaptive to the prediction block.
  • a video encoding method comprising the step of applying.
  • the reference pixel of the current block may be obtained from the neighboring block.
  • the acquiring step may be determined according to the availability of neighboring blocks.
  • the availability of the neighboring block may be determined by the location of the neighboring block and / or a specific flag (constrained_intra_pred_flag).
  • a particular flag may have a value of 1 when a neighboring block is available. That may mean that the reference pixel of the corresponding block cannot be used for prediction of the current block when the prediction mode of the neighboring block is the inter screen mode.
  • the specific flag (constrained_intra_pred_flag) is determined according to the prediction mode of the neighboring block, and the prediction mode may be one of intra prediction or inter prediction.
  • the availability of the neighboring block becomes 'true' regardless of the prediction mode of the neighboring block, and when 1, 'true' when the prediction mode of the neighboring block is intra prediction. If the inter prediction, the availability of the neighboring block may be 'false'.
  • inter prediction may generate a prediction block by referring to one or more reference pictures.
  • the reference picture is managed through reference picture list 0 (List 0) and reference picture list 1 (List 1), and may include one or more past pictures, future pictures, and current pictures in List 0 and List 1.
  • List 0 and List1 may be adaptively determined whether to put the current picture in the reference picture list.
  • the information for determining whether to include the current picture in the reference picture list may be included in a sequence, a reference picture parameter set, and the like.
  • an image decoding method performed in a computing device comprising the steps of: acquiring, in sequence or picture, a flag relating to availability of a reference pixel of a neighboring block from an input bitstream; Determining a reference pixel availability of a neighboring block when performing intra prediction according to a flag; When the flag is 0, the reference pixel of the neighboring block is used for prediction of the current block regardless of the prediction mode of the neighboring block. When the flag is 1, the reference pixel of the neighboring block is used when the prediction mode of the neighboring block is intra prediction.
  • An image decoding method is provided, which is used for prediction of a current block and does not use reference pixels of a neighboring block for prediction of the current block when the prediction mode of the neighboring block is inter prediction.
  • inter prediction may generate a prediction block based on block matching in the reference picture.
  • the reference picture may be managed through List 0 in the P picture and List 0 and List 1 in the B picture.
  • the current picture may be included in List 0 in inter prediction.
  • the current picture may be included in List 1 in inter prediction.
  • the inclusion of the current picture in List 0 and List 1 may be determined based on a flag transmitted in a sequence parameter.
  • the inclusion of the current picture in the List 0 and the List 1 may be determined based on a flag transmitted in a picture parameter.
  • a method of constructing a spatial motion vector candidate (first candidate), determining whether a reference picture of a current block exists in a current picture, and determining the determining step. If the result is yes, a motion vector candidate selection method is provided, comprising adding a spatial motion vector candidate (second candidate) in another block of a current picture encoded prior to the current block.
  • the motion vector candidate selection method may further include adding a temporal motion vector candidate (third candidate) if the determination result of the determining step is no.
  • the motion vector candidate selection method may further include configuring a mixed list candidate including the first candidate, the second code, and the third candidate after the adding.
  • the method of selecting a motion vector candidate may include determining whether the current picture is a reference picture after configuring the mixed list candidate; And when the current picture is a reference picture and the number of motion vector candidates in the mixed list candidate is smaller than a preset number, adding a fixed candidate of preset fixed coordinates.
  • the motion vector candidate selection method if the current picture is not a reference picture and the number of motion vector candidates in the mixed list candidate is smaller than a preset number, adding (0, 0) as a fixed candidate is further included. It may include.
  • the other blocks of the current picture may include blocks that are encoded before the current block in the current picture as blocks facing the current block with a neighboring block of the current block interposed therebetween.
  • the other block of the current picture may be a block coded by inter-prediction prior to the current block.
  • a spatial motion vector candidate (first candidate); Determining whether a reference picture of the current block exists in the current picture; If the determination result of the determining step is YES, adding a spatial motion vector candidate (second candidate) in another block of the current picture encoded before the current block; If the determination result of the determining step is no, adding a temporal motion vector candidate (third candidate); And performing pixel filtering on the basis of the motion vector candidate including any one of the first candidate, and the second candidate and the third candidate.
  • the image encoding method may include: determining whether the current picture is a reference picture before performing the step; If the current picture is a reference picture and the number of motion vector candidates in the mixed list candidate is smaller than a preset number, adding fixed candidates of preset fixed coordinates; And if the current picture is not the reference picture and the number of motion vector candidates in the mixed list candidate is smaller than a preset number, adding (0, 0) as a fixed candidate.
  • the image encoding method may further include generating a prediction block through intra prediction, after the performing of the step; And performing prediction mode encoding on the generated prediction block.
  • a spatial motion vector candidate (first candidate); Determining whether a reference picture of the current block exists in the current picture; If the determination result of the determining step is YES, adding a spatial motion vector candidate (second candidate) in another block of the current picture encoded before the current block; If the determination result of the determining step is no, adding a temporal motion vector candidate (third candidate); And performing motion prediction based on at least one of the second candidate and the third candidate and a motion vector candidate including the first candidate.
  • the image encoding method may include: determining whether the current picture is a reference picture before performing the step; If the current picture is a reference picture and the number of motion vector candidates in the mixed list candidate is smaller than a preset number, adding fixed candidates of preset fixed coordinates; And if the current picture is not the reference picture and the number of motion vector candidates in the mixed list candidate is smaller than a preset number, adding (0, 0) as a fixed candidate.
  • the image encoding method may further include performing interpolation after the performing.
  • entropy decoding the encoded picture Inverse quantization of the decoded picture; Inversely transforming the quantized picture; Selecting a motion information prediction candidate for an inversely transformed image based on header information of the decoded picture; And decoding the inversely transformed image based on the additive subtracted image information obtained based on the motion information prediction candidate.
  • the selecting may include: a spatial motion vector candidate (first candidate) from a neighboring block of the current picture in the inverse transformed image, and a spatial motion vector candidate in another block of the current picture encoded before the current block ( The motion of the current block may be predicted based on the candidate group including the second candidate).
  • the selecting may include predicting a motion of the current block based on a candidate group to which a temporal motion vector candidate (third candidate) is further added.
  • the selecting may include forming a mixed list candidate group including the first candidate, the second code, and the third candidate, determining whether the current picture of the current block is a reference picture, and the current picture is If the reference picture is a number of motion vector candidates in the mixed list candidate, the fixed candidate having a predetermined fixed coordinate may be added.
  • the image decoding method may add (0, 0) as a fixed candidate if the current picture is not a reference picture and the number of motion vector candidates in the mixed list candidate is smaller than a preset number in the selecting step. have.
  • the other blocks of the current picture may include blocks that face the current block with the neighboring blocks of the current block interposed therebetween, and include blocks encoded by inter-screen prediction in the current picture prior to the current block.
  • an image encoding method for predicting motion information from an original image to generate a predictive image comprising: constructing a motion information prediction candidate group; Changing the motion vector of the candidate block belonging to the candidate group according to the precision unit of the motion vector of the current block; And obtaining a difference value obtained by subtracting the motion vector of the candidate block to which the precision unit is adjusted from the motion vector of the current block.
  • the changing may include scaling a motion vector according to a first distance between a current picture in which the current block is located and a reference picture, and a second distance between a picture of the candidate block and a reference picture of the candidate block.
  • the image encoding method may further include determining interpolation precision of each reference picture based on the average distance between the first distance and the second distance after the obtaining.
  • the changing may be omitted when the reference picture of the current block and the reference picture of the candidate block are the same.
  • the changing may include changing a motion vector of a neighboring block or a neighboring block to a motion vector precision unit of the current block according to the motion vector precision of the current block.
  • the neighboring block may place and position another block between the current block and the current block.
  • the neighboring block may be a block in which a motion vector is searched by inter-screen prediction prior to the current block.
  • a memory for storing a program or program code for entropy decoding the encoded video and generating a reconstructed video through inverse quantization and inverse transformation; And a processor coupled to the memory to execute the program, wherein the processor configures, by the program, a motion information prediction candidate group of the reconstructed image based on header information of the image obtained through the entropy decoding,
  • the image decoding apparatus provides a motion vector of a candidate block belonging to a candidate group according to the precision unit of the motion vector of the current block, and obtains a difference value obtained by subtracting the motion vector of the candidate block to which the precision unit is adjusted from the motion vector of the current block.
  • the processor when the processor wants to change the motion vector of the candidate block, the processor may include a first distance between the current picture in which the current block is located and a reference picture, and a second distance between the picture of the candidate block and the reference picture of the candidate block.
  • the motion vector can be scaled according to the distance.
  • the processor may determine the interpolation precision of each reference picture based on the average distance between the first distance and the second distance when the difference value is to be obtained.
  • the processor may skip the change process when the reference picture of the current block and the reference picture of the candidate block are the same.
  • the processor may change the motion vector of the neighboring block or the neighboring block to the motion vector precision unit of the current block according to the motion vector precision of the current block.
  • the neighboring block may be a block in which another block is placed and positioned between the current block and a motion vector is searched by inter-screen prediction prior to the current block.
  • the motion vector of the first neighboring block of the current block referring to the reference picture is equal to the first value. Or searching with a precision of a second value that is greater than the first value; Searching for a motion vector of a second neighboring block of the current block with a precision of a third value greater than the second value; And encoding first information about the motion vectors of the first block and the second block and matching information about the precision of the motion vectors.
  • the motion vector of the first neighboring block of the current block referring to the reference picture is equal to the first value.
  • searching with a precision of a second value greater than the first value searching for a motion vector of a second neighboring block of the current block with a precision of a third value greater than the second value, and
  • An image decoding method comprising: decoding an image based on matching information on precision and information on motion vectors of the first block and the second block.
  • information about the current picture or the current picture may be added to the end of the reference picture list 0 and the reference picture list 1.
  • the first value may be a true fraction.
  • the second value or the third value may be an integer.
  • the number of binary bits of the second value may be shorter than the number of binary bits of the third value.
  • the third value may have a precision of zero, that is, zero.
  • the first neighboring block or the second neighboring block may post and locate a block that is spatially different from the current block.
  • the first neighboring block or the second neighboring block may be a block encoded by inter-screen prediction before the current block.
  • the reference picture of the first neighboring block or the second neighboring block may be the current picture.
  • the motion vector of the first neighboring block or the second neighboring block may be searched by inter prediction.
  • a memory for storing a program or program code for image decoding, and a processor coupled to the memory, the processor by the program, interpolation of the reference picture
  • the precision has a first value
  • the motion vector of the first neighboring block of the current block referring to the reference picture is searched with a precision of a second value equal to or greater than the first value, Search for a motion vector of a second neighboring block of the current block with a precision of a third value greater than 2, and match matching information about the precision of the motion vectors and motion vectors of the first block and the second block.
  • An image decoding apparatus is provided which decodes an image based on information.
  • the motion vector candidate is effectively used for the image encoding and decoding in the image processing system or various systems including the image processing system.
  • the selection can improve the performance and efficiency of the device or system.
  • the reference block can be copied and used as a prediction block in the current picture, thereby improving performance and efficiency in image encoding and decoding.
  • the current picture is added to the reference picture list 0 (List 0) and the reference picture list 1 (List 1) of the motion vector while using intra block copy or block matching to extend the precision of the motion vector. Can improve performance and efficiency in encoding and decoding.
  • FIG. 1 is a view for explaining a system using a video encoding apparatus and / or a video decoding apparatus of the present invention.
  • FIG. 2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • FIG. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 4 is an exemplary 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 illustrates an example of configuring 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.
  • FIG. 11 is an exemplary diagram for describing a case where interpolation is performed in the image encoding method of FIG. 10.
  • FIG. 12 is a diagram for describing a main process of an image encoding method according to an embodiment of the present invention using syntax in a coding unit.
  • FIG. 13 illustrates an example of supporting symmetric type division or asymmetric type division as in inter prediction when generating a predictive block through block matching in the current picture used in FIG. 12. It is an illustration.
  • FIG. 14 is an exemplary diagram for explaining that 2Nx2N and NxN may be supported in inter prediction, such as intra prediction of FIG. 9.
  • FIG. 15 is a diagram for describing a process of performing a horizontal 1D filter on a pixel at positions (assuming x) of an image in an image encoding method according to an embodiment of the present invention.
  • 16 is an exemplary view of a current block and neighboring blocks according to a comparative example.
  • 17 is an exemplary view of a current block and neighboring blocks according to another comparative example.
  • FIG. 18 is an exemplary view of a current block and a neighboring block according to another comparative example.
  • FIG. 19 is an exemplary diagram of a current block and a neighboring block that can be employed in a video encoding method according to an embodiment of the present invention.
  • FIG. 20 illustrates that the temporal distance between a reference picture of a current block and a reference picture of a candidate block is greater than or equal to a predetermined distance in the image encoding method according to an embodiment of the present invention. It is an illustration for demonstrating the case included in a candidate group.
  • FIG. 21 is a diagram for describing a case in which a current picture is added to a prediction candidate group when a picture referred to by a current block is different from the current picture in the image encoding method according to an embodiment of the present invention.
  • FIG. 22 is a diagram for describing a case in which a current picture is added to a prediction candidate group when a picture referenced by a current block is a current picture in the image encoding method according to an embodiment of the present invention.
  • FIG. 23 is a flowchart illustrating an image encoding method according to another embodiment of the present invention.
  • FIG. 24 is a diagram for describing a case in which motion vector precision is different in units of blocks in FIG. 15.
  • FIG. 25 illustrates a case in which a motion vector precision of a block is determined according to interpolation precision of a reference picture in the image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 26 is a flowchart illustrating an image encoding and decoding method using a motion vector difference according to an embodiment of the present invention.
  • 27 to 32 are diagrams for describing a process of calculating a motion vector difference value for various cases when interpolation precision is determined in units of blocks in an image encoding and decoding method according to an embodiment of the present invention.
  • 33 to 36 are diagrams for describing a process of expressing a precision of a motion vector difference value in an image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 38 is a diagram for explaining that one picture may have two or more interpolation precisions in an image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 39 is a diagram illustrating a reference picture list when the current picture is an I picture in FIG. 38.
  • FIG. 40 is a diagram illustrating a reference picture list when the current picture is a P picture in FIG. 38.
  • FIG. 41 is a diagram illustrating a reference picture list when a current picture is B (2) in the image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 41 is a diagram illustrating a reference picture list when a current picture is B (2) in the image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 42 is a diagram illustrating a reference picture list when a current picture is B (5) in the image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 43 is a diagram for describing a process of determining the motion vector precision of each block according to the interpolation precision of the reference picture in the image encoding and decoding method 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 frame or a block.
  • the divided region is not only a block, but also 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.
  • HEVC high efficiency video coding
  • AVC advanced video coding
  • 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 view for explaining a system using a video encoding apparatus and / or a video decoding apparatus of the present invention.
  • a system using an image encoding apparatus and / or an image decoding apparatus includes a personal computer (PC), a notebook computer, a personal digital assistant (PDA), a portable multimedia player, User terminal 11 such as PMP, Playstation Portable (PSP), wireless communication terminal, smart phone, television, etc., or server terminal such as application server and service server ( 12).
  • PC personal computer
  • PDA personal digital assistant
  • PMP PMP
  • PGP Playstation Portable
  • wireless communication terminal smart phone
  • television etc.
  • server terminal such as application server and service server ( 12).
  • server terminal such as application server and service server ( 12).
  • the computing device may be a communication device such as a communication modem for communicating with various devices or a wired / wireless communication network, to encode or decode an image, or to predict an inter or intra screen for encoding and decoding.
  • various devices including a memory 18 for storing various programs and data, a processor 14 for executing and controlling a program, and the like.
  • the computing device may use a wired / wireless communication network such as an internet, a local area wireless communication network, a wireless LAN network, a WiBro network, a mobile communication network, or the like to encode an image encoded in a bitstream by an image encoding device in real time or in real time.
  • the image decoding apparatus may be transmitted to an image decoding apparatus through various communication interfaces such as a universal serial bus (USB), and then reproduced as a decoded image.
  • 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 (DPB) 240, and an entropy encoder 245.
  • the image encoding apparatus 20 may further include a divider 190.
  • 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 transformer 225, the adder 230, the filter 235, and the decoded picture buffer 240 of the image encoding apparatus 20 are described in the order described.
  • the elements are substantially the same as the predictor 310, the inverse quantizer 315, the inverse transformer 320, the adder 325, the filter 330, and the memory 335 of the image decoding apparatus 30. It may be implemented to include at least the same 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 corresponds to a computing device applying the image encoding method performed by the image encoding apparatus to the decoding, the following description will focus on the image encoding apparatus.
  • the computing device may include a memory for storing a program or software module for implementing an image encoding method and / or an image decoding method, and a processor connected to the memory and executing a program.
  • the image encoding apparatus may be referred to as an encoder, and the image decoding apparatus may be referred to as a decoder.
  • the dividing unit 190 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 190 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 the image, and the size or shape of the block supported by 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.
  • the input image may be divided into sizes such as 256 ⁇ 256 for a high resolution 8k UHD video, 128 ⁇ 128 for a 1080p HD video, and 16 ⁇ 16 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 and 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 (M ⁇ N) may be an explicit flag.
  • the block shape information, one length information when the block is square, and the rectangular one In this case, 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.
  • 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 confirming the block size information in more detail, in the step of confirming the block size information through the difference value from the minimum allowable partition size (Minblksize) as in the above example, the difference value related syntax can be confirmed but split If the syntax related to the minimum allowed size (Minblksize) cannot be determined, it can be obtained from the default setting related to the minimum allowed size (Minblksize).
  • the size or shape of the block in the picture splitter may be implicitly determined according to the encoder and / or the decoder to explicitly transmit related information 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 divider may be a minimum unit constituting a higher level unit such as a picture, a slice, a tile, and the like, and may include a coding block, a prediction block, and a transform block.
  • the block may be a maximum unit such as a transform block, a quantization block, an entropy block, an inloop filtering block, and the like, but some blocks are not limited thereto and may be exceptions. For example, 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 190 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.
  • a block obtained through the picture division unit as a previous step 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 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 conditions that determine the size or shape of the initial block are not always fixed and some may change or be exceptional.
  • 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 splitter may support a quadtree based split 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 may be symmetric partitions or asymmetric partitions, which may be determined according to the encoder / decoder configuration. In the video encoding method of the present embodiment, the description is based on a 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, split allowable depth limit, split allowable min / max size, or a combination thereof. Further, depending on the division flag and / or according to the division direction, that is, only the width of the block may be divided into half or only the length may be divided into 1/2.
  • 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 division flag is assigned with 1 bit, and if the value is 1, vertical division is performed. If 0, no division is performed.
  • flags for horizontal division or vertical division may be supported, respectively, 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.
  • 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
  • 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 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, 10, 01, 11 in the order of the horizontal division flag or the vertical division flag (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 horizontal or vertical split flags.
  • the division flag div_flag and the horizontal-vertical flag h_v_flag (the flag indicating the horizontal or vertical division direction) may be encoded as 0, 10, 11.
  • the overlap may mean that the horizontal division and the vertical division are performed at the same time.
  • quadtree splitting and binary tree splitting may be used alone or mixed according to the settings of the encoder and / or the decoder.
  • quadtree or binary tree splitting may be determined according to the size or shape of the block. That is, when the block shape is M ⁇ N, M is larger than N, the horizontal partition, and when the block shape is M ⁇ N, when N is larger than M, binary tree partitioning may be supported according to vertical partitioning. Is M ⁇ N, and if N and M are the same, quadtree splitting may be supported.
  • binary tree splitting may be supported when the size of the block M ⁇ M is larger than or equal to the block splitting threshold
  • quadtree splitting may be supported when the size of the block M ⁇ M is larger than or equal to the block splitting threshold.
  • quad tree splitting is supported.
  • Binary tree splitting may be supported if M or N of the block M ⁇ N is less than or equal to the second split maximum size Maxblksize2 and greater than or equal to the second split minimum size Minblksize2.
  • the priority of the first or the second splitting method depends on the settings of the encoder and the decoder. 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) is 16
  • the second split maximum size (Maxblksize2) is 64
  • the pre-split block is 64 ⁇ 64
  • the first split support range and the second split support range are not 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 additional 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 split 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 continuously performed since the split flag div_flag is larger than the first allowable minimum split 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.
  • the division flag in the order of div_flag / h_v_flag
  • the division flag may be horizontally divided or vertically divided. If the pre-division block is 32 ⁇ 32 and the partition flag (div_flag) is 0 and no further quadtree splitting is allowed and the second allowable maximum partition size Maxblksize2 is 16, the size of the current block (32 ⁇ 32) is zero. Since it does not belong to the two division support range, it may not support any further division.
  • 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 / color difference component, or a combination thereof.
  • various settings may be supported according to luminance and color difference components.
  • the quad tree or binary tree segmentation structure determined by the luminance component may be used as it is without additional information encoding / decoding in the color difference component.
  • the quadrature and binary trees may be supported for the luminance component and the quad tree division may be supported for the chrominance component.
  • quad tree division and binary tree division are supported in luminance and chrominance components, but the division support range may or may not be equal to or proportional to 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.
  • an I slice can support quad tree splitting
  • a P slice can support binary tree splitting
  • a B slice can support both quad tree splitting and 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-mentioned cases, and may include cases where conditions of each other are reversed, and may include one or more factors or combinations thereof mentioned in the above examples. It is possible.
  • the above-described division allowable depth limit may be determined according to at least one factor or a combination thereof in a split scheme (quad tree, binary tree), slice type, luminance / 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 / color difference component, encoding mode, etc. It can be expressed as maximum value or minimum value. When information about this is configured as an explicit flag, the length information of each of the maximum value and the minimum value, or the difference value information between the minimum value and the maximum value may be expressed.
  • 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.
  • 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.
  • 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.
  • candidates (M ⁇ N, M ⁇ N / 2) are candidate lists 1, (M ⁇ N, M / 2 ⁇ N, M ⁇ N / 2, and M / 2 ⁇ N / 2).
  • a split block candidate of candidate list3 may be supported when (M ⁇ N).
  • the divided block candidate of the candidate list2 may be supported, and when it is smaller than the divided block candidate of the candidate list4 may be supported.
  • the candidate candidates are divided block candidates of the list1 candidates.
  • the split block candidate of list2 is smaller than the second boundary value blk_th_2, the split block candidate of the 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 configuration 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 and 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 and decoding processes is not always fixed, and 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 terms of pixel difference, and may be determined by various methods including a sum of absolute difference (SAD) and a sum of square difference (SSD). In this case, 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, the brightness values reconstructed by intra prediction and reconstruction may be used as reference pixels in the encoder and the 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), and a first temporal distance (t-1) before the POC of the current picture. It may include a first reference picture having a second reference picture having a second temporal distance (t-2) before the first temporal distance.
  • 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.
  • the interpolation process is performed based on a structure in which at least one subpixel is arranged between two adjacent pixels as needed, and then the optimal prediction block is found and motion compensation is performed. 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, reference pictures existing before the current picture in time are allocated and managed in list 0 (L0), and reference pictures existing after the current picture may be allocated and managed in list 1 (L1).
  • reference picture list 0 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 also be implemented to select from candidate groups of high probability prediction modes, such as most probable mode (MPM) of HEVC. Further, encoding may be preferentially performed at a higher level of prediction mode encoding.
  • MPM most probable mode
  • 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 illustrates an example of configuring 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 video encoding method includes a first reference picture list (reference list 0 and L0) and a second reference picture list (reference list) for a current block of a current picture (current (t)). 1, L1) may perform inter prediction.
  • reference picture list 0 may be configured as a reference picture before the current picture (t), wherein t-1 and t-2 are the first before the POC of the current picture (t), respectively. Reference pictures having a temporal distance t-1 and a second temporal distance t-2 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 prediction block is generated through block matching on the current picture (current (t))
  • the current picture is added to the reference picture list (reference list 0 and / or reference list 1) to perform encoding by inter prediction. Can be.
  • 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 allocated, and then the reference picture before the current picture may be assigned.
  • 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.
  • Whether to include the current picture in each reference picture list depends on the same settings in the encoder / 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 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, respectively), position in a group of pictures (GOP), temporal hierarchical information, and so on. 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 first reference pictures may be set, and when not included, the allowable number of 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 divided into whether the current picture is included in the list, temporal layer information, slice type, position in the GOP, and the like, and the POC or reference picture index of the reference picture, reference prediction, and the like are included in the candidate group. It can be determined by the direction (before / after the current picture), whether the current picture is present, 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.
  • it is possible to omit information on the reference picture by not configuring the reference picture list according to the slice type (for example, I slice).
  • 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.
  • a 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 GOP, temporal layer information, and the like.
  • 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 the reference pixel configuring step
  • the reference pixel filtering step may be executed by the reference pixel filter unit
  • the intra prediction may include a prediction block generation step and a prediction mode encoding step
  • a boundary Filtering may be an example of one embodiment of a post-processing filter step.
  • the intra prediction performed in the image encoding method 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 a reference pixel filtering step
  • a prediction block generation step a prediction mode encoding step
  • a post-processing filtering step a post-processing filtering step.
  • one or some of the above-described processes may be omitted, and other processes may be added, and the order described above. It may be changed in a different order than.
  • 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 explanation, a function unit generated by a combination of a software module implementing each step and a processor executing the same, and / or a component performing a function of the functional unit, respectively, may be referred to as a reference pixel component and a reference pixel filter.
  • the prediction block generation unit, prediction mode encoding unit, and post-processing filter unit 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 via a method such as copying a value from the available nearby pixel. A restored picture buffer or a decoded picture buffer (DPB) may be used for copying a value.
  • DPB decoded picture buffer
  • 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, are mainly used as reference pixels.
  • 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 encoding order of the blocks, and a scan such as an inverse z-scan and the like.
  • a scan such as an inverse z-scan and the like.
  • 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 the process of generating reference pixels in decimal units for the above prediction modes It may not be necessary.
  • Reference pixels that are interpolated in prediction modes other than the prediction mode have an exponential power of 1/2, such as 1/2, 1/4, 1/8, 1/16, 1/32, 1/64. It may have interpolation precision or may have a precision of multiples of 1/2.
  • the 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 x axis 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 above filtering may be applied fixedly or adaptively, which may include the size of the current block or the size of the neighboring block, the encoding mode of the current block or the neighboring block, the block boundary characteristics of the current block and the neighboring block (eg, Whether a boundary or a boundary of a transformation unit, etc.), a prediction mode or direction of a current block or a neighboring block, a prediction method of the current block or a neighboring block, a quantization parameter, or the like. have.
  • the decision on this may have the same setting in the encoder / 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.
  • DC average value
  • 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>).
  • the directional prediction mode is mainly described as the linear directional method.
  • 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.
  • the vertically oriented modes may allocate finer spacing between prediction modes close to the vertical mode (90 degrees) and wider spacing between prediction modes farther from the vertical mode.
  • N is larger than M
  • 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 embodiments are not limited 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 inclination 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 by 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 the encoder / 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.
  • the prediction mode encoding step of performing prediction mode encoding may determine a mode in which an encoding cost is optimal according to each prediction mode as a prediction mode of a current block 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, a prediction mode of a block such as upper left, lower left, upper, 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 of the neighboring block of the current block (M ⁇ M) is divided into three divided blocks by performing quad-tree splitting in the block division unit, and M / 2 ⁇ M / 2,
  • 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 partition blocks by performing binary tree partitioning at the block partitioning unit, and N / 4 ⁇ N, N / 4 from left to right directions.
  • the prediction mode of the first N / 4 ⁇ N block from the left to the mode prediction candidate of the current block is set according to a predetermined order (priority is assigned from left to right). It can be included as.
  • the prediction mode of the block adjacent to the current block is the directional prediction mode
  • the prediction mode (the slope information or the angle information side of the direction of the mode) adjacent to the prediction direction of the mode is added to the mode prediction candidate group of the current block. It may include.
  • the preset modes 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 value of the mode prediction candidate group of the current block is k
  • the left block is composed of m blocks smaller than the length of the current block
  • the upper block is n blocks smaller than the width of the current block.
  • the candidate group may be filled according to a predetermined order (left to right, top to bottom), and the divided block sum of the neighboring block partitions (m +).
  • n) is larger than the maximum value k of candidate groups
  • the neighboring block other than the neighboring block position (for example, lower left, upper left, upper right, etc.) is not included in the prediction mode of the neighboring block (left block, upper block).
  • a prediction mode of a block such as 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 of the current block may be configured as a candidate group in consideration of various factors.
  • the prediction mode encoder may classify 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.
  • MPM mode
  • candidate group 1 a mode candidate group
  • candidate group 2 a mode candidate group having a high probability of being identical to the mode of the current block.
  • the prediction mode encoding process may vary depending on which of the candidate groups the prediction mode of the block 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 equal to the mode of the current block, the mode second candidate group having a high probability of being equal 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 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 prediction pixel may be replaced with a value generated by applying gradient information to the filtering process, and another method having a similar purpose (correcting some prediction pixels of the prediction block through the reference pixel) is added in addition to the above method. Can be.
  • 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.
  • the encoder / decoder can be set, 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 the prediction block generation, such as block boundary filtering.
  • the post-processing filtering is performed by considering the characteristics of the pixels of the adjacent reference block similarly to the boundary filtering of the current block reconstructed by adding the residual signal and the prediction signal obtained through the conversion / quantization process and the reverse process after acquiring the residual signal. 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.
  • FIG. 11 is an exemplary diagram for describing a case where interpolation is performed in the image encoding method of FIG. 10.
  • 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. 11 supporting inter prediction and intra prediction can be implemented.
  • the image encoding method according to the present embodiment may include reference pixel padding, reference pixel filtering, intra prediction, boundary filtering, 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, a reference direction, and the like that occur only in the P slice or the B slice as well as the prediction mode in the I slice. However, 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, and may not perform interpolation only when block matching is performed on the current picture. Can be. 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.
  • 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 a diagram for describing a main process of an image encoding method according to an embodiment of the present invention using syntax in a coding unit.
  • curr_pic_BM_enabled_flag means a flag that allows block matching in the 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 on the current picture may be performed. This may mean a case of operating through inter 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 method may support skip when a prediction block is generated through block matching on the current picture, and may also skip 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 video encoding apparatus may set the prediction mode to the inter prediction mode MODE_INTER, and if 1, set the prediction mode to the intra prediction mode MODE_INTRA.
  • This is similar to the existing on-screen technology, but may be classified as an inter-screen technology or an on-screen technology in the I slice to distinguish from the existing structure. That is, 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.
  • the syntax sps_curr_pic_ref_enabled_flag in the sequence parameter may be a flag for whether to use IBC.
  • a syntax called pps_curr_pic_ref_enabled_flag in a picture parameter may be a flag indicating whether IBC is used on a picture basis.
  • FIG. 13 illustrates an example of supporting symmetric type division or asymmetric type division as in inter prediction when generating a predictive block through block matching in the current picture used in FIG. 12. It is an illustration.
  • 2N ⁇ 2N, 2N ⁇ N, N ⁇ 2N, N ⁇ , as in inter prediction Symmetric splitting such as N may be supported, or asymmetric splitting such as nL ⁇ 2N, nR ⁇ 2N, 2N ⁇ nU, and 2N ⁇ nD may be supported.
  • FIG. 14 is an exemplary diagram for explaining that 2N ⁇ 2N and N ⁇ N may be supported in inter prediction, such as intra prediction of FIG. 9.
  • 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 setting can be set in the encoder.
  • the subtraction unit 205 may generate a residual block by subtracting pixel values of the prediction block generated from the prediction unit 200 from the pixel values of the current block to be encoded.
  • the transformer 210 receives the residual block, which is a difference between the current block and the prediction block generated through intra prediction or inter prediction, by 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 the transform-related settings (size, shape, etc. of a supported transform block) supported by the encoder / 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 transform matrix may be adaptively used in discrete cosine transform (DCT), discrete cosine transform (DST), and horizontal and vertical units.
  • Adaptive use may include, for example, determining based on a number of factors, such as block size, block type, block type (luminance / color difference), coding mode, prediction mode information, quantization parameters, encoding information of neighboring blocks, and the like. have.
  • 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 when the prediction mode is vertical, 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 one or more factors such as block size, block type, coding mode, prediction mode, quantization parameter, encoding information of a neighboring block, or a combination thereof.
  • 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. For example, one or both of the horizontal and vertical components can be omitted. This is because when intra prediction or inter prediction is not well performed, a large difference between the current block and the prediction block occurs, that is, when a residual component is large, the encoding loss may be large when the transform is performed. This may be determined according to at least one factor or a combination of factors such as an encoding mode, a prediction mode, a block size, a block type, a block type (luminance / color difference), a quantization parameter, and encoding information of a neighboring block. . 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 quantizer 215 (see FIG. 2) performs quantization of the residual component transformed by the transformer 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 the encoder / decoder. Information on this may be transmitted in units of a sequence, a picture, a slice, and the like.
  • the inverse quantization units 220 and 315 and the inverse transformers 225 and 320 illustrated in FIGS. 2 and 3 may be implemented by performing the reverse processes of the transform unit 210 and the quantization unit 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 units 235 and 330 may apply an in-loop filter such as a deblocking filter, a sample adaptive offset (SAO), an adaptive loop filter (ALP), or 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.
  • it may be implemented using other coding schemes other than context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), syntax based context adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy coding ( Techniques such as PIPE) coding can be performed.
  • CAVLC context adaptive variable length coding
  • CABAC context adaptive binary arithmetic coding
  • SBAC syntax based context adaptive binary arithmetic coding
  • PIPE probability interval partitioning entropy coding
  • 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).
  • interpolation is performed with a resolution of fractional units more accurate than integer units.
  • Such interpolation techniques include a discrete cosine transform based interpolation filter (DCT-IF).
  • DCT-IF discrete cosine transform based interpolation filter
  • HEVC high efficiency video coding
  • pixels are generated in units of 1/2 and 1/4 between integers, and the reference picture is interpolated.
  • the prediction block may be generated by performing matching.
  • Table 1 and Table 2 show the filter coefficients used in the luminance component and the chrominance component, respectively.
  • the DCT-IF filter of 8-tap for the luminance component and 4-tap for the chrominance component is used. Filters may be applied to the color difference components according to color formats. In case of 4: 2: 0 of YCbCr, the same filter as in Table 2 can be applied, and in 4: 4: 4, the same filter as in Table 1 or other filters can be applied, and not 4: 2. In the case of 2, the horizontal 1D 4-tap filter shown in Table 2 and the vertical 1D 8-tap filter shown in Table 1 may be applied.
  • FIG. 15 is a diagram for describing a process of performing a horizontal 1D filter on a pixel at positions (assuming x) of an image in an image encoding method according to an embodiment of the present invention.
  • a horizontal 1D filter may be applied to a subpixel at positions a, b, and c (assuming x) between a first pixel G and a second pixel H adjacent thereto. have. This is expressed as a formula as follows.
  • a vertical 1D filter may be applied to the subpixels at positions d, h, and n (assuming y). This is expressed as a formula as follows.
  • a 2D separable filter may be applied to the subpixels e, f, g, i, j, k, p, q, and r in the center.
  • the subpixel e is interpolated first with pixels in a direction perpendicular to a, and then interpolated using the pixels.
  • the horizontal 1D filter is performed as interpolating a between G and H, and the e value is obtained by performing a vertical 1D filter on the resulting subpixels. Similar operations can be performed on the color difference signal.
  • interpolation filters other than DCT-IF can also be used and the number of taps and filter types applied to each fractional unit can be varied. For example, an 8-tap Kalman filter on 1/2, a 6-tap Wiener filter on 1/4, and a 2-tap linear filter on 1/8 are used to calculate the filter coefficients by calculating fixed or filter coefficients, such as DCT-IF. It can also be encoded.
  • one interpolation filter can be used for a picture, different interpolation filters can be used for different regions according to characteristics of an image, and two or more reference pictures to which a plurality of interpolation filters are applied can be generated and one of them can be selected. have.
  • filters may be applied according to encoding information such as the type of the reference picture, the temporal layer, and the state of the reference picture (for example, whether or not it is a current picture).
  • the above-mentioned information can be set in units of sequence, picture, slice, etc., and can be transmitted in the unit.
  • motion estimation refers to a process of estimating which block on a base coded frame (reference frame) before or after temporally by dividing an image frame into small blocks. That is, motion estimation may be a process of finding a block most similar to a target block when encoding a current block to be compressed.
  • Block-based motion estimation may refer to a process of estimating which position a video object or a screen processing unit block (macro block, etc.) moved in time.
  • Motion compensation takes motion information (motion vector, reference picture index) for the optimal prediction block found in the motion estimation process in order to predict the current picture by taking at least a portion of a previously encoded reference picture to encode the current picture. It means to generate the prediction block of the current block based on. That is, motion compensation may refer to a process of creating an error block by a difference from a reference block found to be the most similar block to the current block to be encoded.
  • Motion prediction means finding a motion vector at the time of encoding for motion compensation.
  • the main techniques of motion prediction include skip, temporal prediction, and spatial prediction.
  • the motion vector predicted by the video encoding apparatus is zero due to the constant motion of the screen or the residual is sufficiently small. If it can be ignored, this means skipping encoding of the corresponding video block.
  • Temporal prediction may be mainly used for inter prediction, and spatial prediction or inter-view prediction may be mainly used for intra prediction.
  • the information obtained through the inter prediction may include information (unidirectional (L0, L1), bidirectional) for distinguishing the direction of the reference picture list, an index for distinguishing the reference picture in the reference picture list, a motion vector, and the like. Since the temporal correlation is used, the motion information can be efficiently encoded when the current block and the neighboring block have the same or similar motion vectors.
  • 16 is an exemplary view of a current block and neighboring blocks according to a comparative example.
  • 17 is an exemplary view of a current block and neighboring blocks according to another comparative example.
  • 18 is an exemplary view of a current block and a neighboring block according to another comparative example.
  • examples of the current block and the neighboring blocks A, B, C, D, and E are shown.
  • Candidate at least one of the spatially adjacent blocks of the current block that is, the upper left block (A), the upper block (B), the upper right block (C), the left block (D), and the lower left block (E). You can use it and use that information.
  • a block F or a neighboring block G in a co-located PU existing at a position corresponding to the current block in the selected reference picture may be candidates, and the information may be utilized. Although only two candidates are shown in FIG. 16, candidates for at least one of the top left, top, top right, left, bottom left, bottom, bottom right, and right sides in addition to the center block F in the same position as the current block are candidates. Can be made In this case, the position included in the candidate group may be determined according to the size of the current block, the correlation with the spatially adjacent candidate blocks, and the like in the picture type.
  • the selected reference picture may mean a picture having a distance of 1 or more between pictures existing before or after the current picture.
  • prediction unit may refer to a basic unit for performing a prediction operation of the prediction unit.
  • an area of a block that is spatially and temporally adjacent can be extended as follows.
  • FIG. 19 is an exemplary diagram of a current block and a neighboring block that can be employed in a video encoding method according to an embodiment of the present invention.
  • neighboring coding blocks of the current block in selecting a motion information prediction candidate, neighboring coding blocks of the current block, blocks of the same or close position in coordinates with the current block in the reference image (co) -located block) or candidate blocks of motion information can be efficiently selected by utilizing motion information of blocks that are not adjacent but are located in the same space.
  • blocks that are not adjacent but located in the same space are candidates for a block including at least one other block between the current block and the corresponding block determined based on information such as an encoding mode, a reference picture index, or preset coordinates. Can do it.
  • the image encoding method may encode the motion information using motion vector copy (MVC) or motion vector prediction (MVP).
  • MVC motion vector copy
  • MVP motion vector prediction
  • Motion vector copying is a technique for deriving a motion vector, and does not send a motion vector difference or a reference picture index, and uses a motion vector predictor as it is. This is somewhat similar to the merge mode of HEVC, but if the blending mode is to merge the motion vectors of blocks that are spatially or temporally adjacent, then the motion vector copy of the present embodiment spatially and temporally adjacent the motion vectors. This means that even blocks that do not (eg, H, I, J) are used with motion vectors. Given this meaning, motion vector copy is a different concept from the blending mode and a higher concept. And the purpose of motion vector prediction may be to make the minimum motion vector difference in generating the predictive block.
  • the motion vector copy can derive a reference direction, reference picture index, and motion vector prediction value from blocks of various candidate groups.
  • N candidate blocks may be selected from blocks of various candidate groups, and the motion vector may be transmitted by encoding index information of the optimal block among them.
  • the motion vector copy may bring the motion information of the block having the highest priority according to a predetermined criterion.
  • the motion vector copy may determine which is optimal for each candidate group in consideration of encoding cost.
  • n may be fixed to an encoder or a decoder and may be transmitted in units of separate sequences, pictures, slices, and the like. For example, it may be determined whether n is 1 or 2 or more based on information of neighboring blocks. In that case, if the motion vectors obtained from the blocks of the candidate group are similar compared to a predetermined criterion, it is judged to be meaningless to make two or more candidate groups and use a method such as mean or median (mvA, mvB, ..., mvJ). In this case, the motion vector prediction value may be generated with a fixed value. If it is not determined to be meaningless, two or more candidate groups may be provided to generate an optimal motion vector prediction value.
  • mvA, mvB, ..., mvJ mean or median
  • Motion vector prediction may operate similar to motion vector copying. However, the criteria for priority may be the same as or different from that of motion vector copy. In addition, the number n of candidate blocks may be the same or different. Information about this may be fixed to an encoder and / or a decoder, or may be transmitted separately in units of a sequence, a picture, a slice, and the like.
  • the setting of reference to the candidate group may be determined according to information of the type of the current picture, temporal layer information, and the like, and the information may be fixedly used or transmitted in units of sequence, picture, slice, and the like.
  • the setting of reference to the candidate group may be performed using only spatially adjacent blocks (A, B, C, D, E), or temporally adjacent to spatially adjacent blocks (A, B, C, D, E). It may include a setting using blocks H, I, J, or using blocks F, G spaced apart from spatially adjacent blocks A, B, C, D, E.
  • a spatially adjacent block may be prioritized and other blocks may be set as candidate groups.
  • the reference blocks can be checked for availability in the order described E ⁇ D ⁇ C ⁇ B ⁇ A ⁇ H ⁇ I ⁇ J.
  • Availability may be determined by the encoding mode of the candidate block, motion information, the position of the candidate block, and the like.
  • the motion information may include a motion vector, a reference direction, a reference picture index, and the like.
  • the current picture is an I picture
  • motion information exists only when the encoding mode is intra prediction (hereinafter, referred to as INTER) in the present embodiment. Therefore, in order of priority, first check if it is INTER. For example, if n is 3 and E is encoded as INTER, E checks the next D except from the candidate group. If D is encoded with INTER, since block matching is performed in the current picture, D has motion information, and D is added to the candidate group based on the motion information. Then n remains two. Then, the image encoding apparatus may check the priority again. Thus, when the last three candidates are filled, we stop searching for candidates.
  • Availability is not only used in the encoding mode but also in the case of bounary of pictures, slices, tiles and the like. In the case of a boundary, availability is checked as not available. If a determination result is equal to or similar to a candidate already filled, the corresponding block is excluded from the candidate, and the reference pixel component checks the availability of the next candidate.
  • INTER is different from the existing inter screen. That is, the INTER mode of the present embodiment is different from the inter prediction that generates the prediction block from the reference picture since the INTER mode utilizes an inter picture prediction structure to generate the prediction block from the current picture. That is, in the encoding mode of the present embodiment, a block matching method in the current picture may be classified into an INTER mode and intra (same as the existing intra).
  • the first candidate filled may not check availability. You can also check depending on the situation. That is, when the range of the motion vector of the candidate block is equal to or greater than a predetermined criterion or crosses a boundary of a picture, a slice, a tile, or the like, the application may be applied such that availability is not checked.
  • Block C is said to be different after a similarity check.
  • three blocks D, C, and A may be selected.
  • Block D shows similarity or not similar to current block after similarity check.
  • Block C appears to be the same or similar after a similarity check.
  • Example 3 The supplementary description of Example 3 and Example 4 above is as follows.
  • a constant candidate having fixed coordinates may be added as a motion vector candidate. That is, in the inter prediction mode of HEVC, a zero vector may be added.
  • the (0,0) vector does not exist in the current picture.
  • a pre-set virtual zero vector (-a, 0) can be added.
  • a of (-a, 0) or b of (0, -b) may be variously set in consideration of the horizontal or vertical size of the block.
  • the similarity check is also excluded to exclude candidate groups, but the similarity check may be set not to be performed. In that case, there is no need to send any information about which one to send, so assuming n equals 2, you can automatically determine whether to use the average of two values or which one to use. In this case, the index information on which of the two to use may be omitted. That is, the motion vector prediction value index may be omitted.
  • the availability is confirmed by configuring the entire candidate group into one group, but the present invention is not limited to such a configuration, and the candidate may be determined by checking the availability of the candidate in each candidate group by dividing into two or more groups. If the number n of candidate blocks is assumed to be 2, the maximum number of candidates in each group may be determined equally or individually. For example, as in the following embodiment, one in group 1_1 and one in group 1_2 may be determined, respectively. Of course, the priority of each group may also exist separately. In addition, if the availability check is first performed on the groups 1_1 and 1_2, and the criteria for the number of candidates of the motion vector are not satisfied, group 2 may be applied to fill the number of candidates. Group 2 may include constant candidates with fixed coordinates.
  • group classification criteria For example, the candidates of group 1_1, group 1_2 and group 2, availability check order or priority of each group, and group classification criteria are shown in order.
  • Group 1_1 ⁇ A, B, C, I, J ⁇ , (C ⁇ B ⁇ A ⁇ I ⁇ J), upper blocks based on current block
  • Group 1_2 ⁇ D, E, H ⁇ , (E ⁇ D ⁇ H), lower left and lower blocks based on current block
  • Group 2 ⁇ fixed candidate ⁇ , (-a, 0) ⁇ (0, -b), (-a, 0)
  • the image encoding apparatus of the present embodiment may spatially search for a motion vector copy candidate or a motion vector prediction candidate and generate candidate groups in a predetermined constant candidate order according to a search result.
  • MVP motion vector prediction
  • temporal candidates F and G will also be described.
  • the candidates are spatially searched, temporally searched, a mixed list is constructed and searched, and a fixed candidate is searched in the order described.
  • the candidates are prioritized and their availability checked accordingly. It is assumed that the candidate number n of the motion vectors is set to 2, and the priority is as described in parentheses.
  • Group 1_1 (A, B, C, I, J ⁇ , (C ⁇ B ⁇ A ⁇ I ⁇ J)
  • Group 1_2 ⁇ D, E, H ⁇ , (D ⁇ E ⁇ H)
  • group 1_1 of the two groups includes blocks immediately above, left upper, and right upper with respect to the current block, and group 1_2 is immediately adjacent to left based on the current block, and not immediately adjacent left. , And the blocks in the lower left.
  • the candidate block of the motion vector may be spatially searched by dividing into three groups.
  • the three groups can be classified as follows.
  • Group 1_1 ⁇ A, B, C ⁇ , (C ⁇ B ⁇ A)
  • Group 1_2 ⁇ D, E ⁇ , (D ⁇ E)
  • Group 1_3 ⁇ H, I, J ⁇ , (J ⁇ I ⁇ H)
  • group 1_1 of the three groups includes blocks immediately adjacent to the current block, adjacent upper left, and adjacent upper right, and group 1_2 immediately adjacent to the left immediately adjacent to the current block.
  • group 1_3 includes non-contiguous blocks with one or more block intervals from the current block.
  • candidate blocks of a motion vector may be spatially searched by dividing into three groups in another manner.
  • the three groups can be classified as follows.
  • Group 1_3 ⁇ A, C, E ⁇ , (E ⁇ C ⁇ A)
  • group 1_1 of the three groups includes a block located in the vertical direction with respect to the current block
  • group 1_2 includes an adjacent block located in the horizontal direction with respect to the current block
  • group 1_3 includes the current block. It includes the remaining adjacent blocks based on the block.
  • the candidate group can be set accordingly.
  • Candidate blocks for which the current block and the reference picture differ from each other based on the current block may be included in the candidate group, and vice versa in consideration of the time of distance between the reference picture of the current block and the reference picture of the candidate block.
  • the vector of the block may be scaled and added to the candidate group.
  • a candidate group scaled according to which picture is a reference picture of the current block may be added.
  • the candidate block may be included in the candidate group when the temporal distance is less than the candidate group.
  • the similarity check described above is a process of comparing and determining how similar the motion vector already included in the prediction candidate group to the newly added motion vector. According to the definition, it can be set to be true when the x and y components match perfectly, or to be true when they have a difference below a certain threshold value range.
  • FIG. 20 illustrates that the temporal distance between a reference picture of a current block and a reference picture of a candidate block is greater than or equal to a predetermined distance in the image encoding method according to an embodiment of the present invention. It is an illustration for demonstrating the case included in a candidate group.
  • FIG. 21 is a diagram for describing a case in which a current picture is added to a prediction candidate group when a picture referred to by a current block is different from the current picture in the image encoding method according to an embodiment of the present invention.
  • FIG. 22 is a diagram for describing a case in which a current picture is added to a prediction candidate group when a picture referenced by a current block is a current picture in the image encoding method according to an embodiment of the present invention.
  • the current picture of the reference time t is encoded before a predetermined time (t-1, t-2, t-3, t-4, t-5) in time.
  • the motion information prediction candidate of the current block may be selected from the received reference pictures rf1, rf2, rf3, rf4, rf5 and candidate blocks in the current picture encoded before the current block of the current picture.
  • the video encoding method includes a motion of a current block from reference pictures rf1, rf2, rf3, rf4, and rf5, which are previously encoded in time with respect to the current picture current (t).
  • An information prediction candidate can be selected.
  • the upper left block that refers to a picture having a difference of 3 or more in a temporal distance based on the second reference picture rf1.
  • scaling is not allowed and thus the corresponding moving vectors (mvA_x ', mvA_y') are not included in the candidate group, but other blocks have a temporal distance of less than 3 with respect to t-2. It is included in the candidate group through scaling.
  • the set of motion vectors (MVS) included in the candidate group is as follows.
  • MVS ⁇ (mvB_x ', mvB_y'), (mvC_x ', mvC_y'), (mvD_x ', mvD_y'), (mvE_x ', mvE_y') ⁇
  • the criterion of whether or not to include the motion vector in the candidate group may be the picture referenced by the current block or the center of the current picture. In this way, it is possible to determine whether to add a motion vector to the candidate group based on the distance between the pictures, and information about this, for example, a threshold or a picture based on the picture, can be transmitted through a sequence, a picture, a slice, and the like.
  • a solid line means a motion vector of each block
  • a dotted line means that it is scaled to fit the picture referred to by the current block.
  • POCcurr refers to a POC of a current picture
  • POCcurr_ref refers to a POC of a picture referred to by the current block
  • POCcan refers to a POC of a candidate block
  • POCcan_ref refers to a POC of a picture referenced by the candidate block.
  • the POC of the candidate block may indicate a POC as the present if the candidate block is spatially neighboring, and a POC different from the current if the block is a co-located block corresponding to the same position in the frame in time.
  • motion vectors that scale the motion vector for example, ⁇ (mvA_x ', mvA_y'), ( mvC_x ', mvC_y'), (mvD_x ', mvD_y'), (mvE_x ', mvE_y') ⁇ may be included in the candidate group.
  • the motion vectors ⁇ (mvA_x, mvA_y), (mvC_x) only when the current picture is different from the current picture, such as the current block (B_t). , mvC_y), (mvD_x, mvD_y), and (mvE_x, mvE_y) ⁇ may be included in the candidate group.
  • the motion vectors ⁇ (mvB_x, vB_y), (mvC_x, mvC_y) in the current picture t are candidate groups only when the picture referred to by the current block B_t is the current picture t. Can be added to In another expression, when referring to the same reference picture, that is, when referring to the same picture through reference picture index comparison, the corresponding motion vector may be added to the candidate group. The reason is that since the block matching is performed in the current picture t, motion information in the existing inter screens referring to other pictures is not necessary. In addition, even when the block matching is performed in the current picture t, the case where the reference picture index is different as in H.264 / AVC may be implemented in a manner of excluding from the candidate group.
  • the condition that the reference picture indicates the current picture is taken as an example, but may be extended to the case where the reference picture is not the current picture.
  • a setting such as 'except a block using a picture farther than the picture pointed to by the current block' may be used.
  • some blocks A, B, and E may be excluded from the candidate group because they are farther than the temporal distance t-2.
  • the candidate block can be included in the candidate group through scaling.
  • the candidate number n of the motion vectors is two.
  • the reference picture of the current block is not the current picture.
  • Group 1_1 includes blocks (A, B, C, I, J) that are near or not close relative to the current block, but the priorities for availability check of these blocks are as described below.
  • Group 1_2 includes the lower left and lower left blocks D, E, and H based on the current block, and the priorities for checking availability of these blocks are as follows.
  • a block indicated by a subscript s in a block symbol at the above priority refers to a block in which scaling is performed.
  • the availability is first confirmed with a predetermined priority for some blocks (A, B, C, I, J) of group 1_1 or some blocks (D, E, H) of group 1_2.
  • blocks that are scaled after scaling according to the distance between the current picture t and the reference picture of the candidate block Availability may be additionally checked according to a predetermined priority for (C_s, B_s, A_s, I_s, J_s, D_s, E_s, H_s).
  • the apparatus for encoding an image may determine a total of two candidates, one candidate in each group, and use the motion vector of the optimal candidate block among the candidate groups as the motion vector prediction value of the current block.
  • one candidate block is not obtained in one group, for example, group 1_1, it is also possible to find two candidate blocks in another group 1_2. That is, if two candidates are not filled from spatially adjacent blocks, candidate blocks may be found in the temporal candidate group.
  • a co-located block located at the same position in a temporally adjacent reference picture and a scaled block of the block may be used.
  • These blocks G, F, G_s, and F_s may have the following priorities (G ⁇ F ⁇ G_s ⁇ F_s).
  • availability is checked according to priorities.
  • the availability of the candidate block that has undergone the scaling process can be checked. If the reference picture of the current block indicates the current picture, it may not be performed.
  • each motion information is present in the reference pictures existing in the reference picture lists L0 and L1.
  • the availability is checked according to the priority of the preset candidate group. In this case, the priority is first confirmed to be encoded by bidirectional prediction.
  • motion information of the bidirectional prediction of the current block is referred to in reference pictures 1 at L0 and 0 at L1.
  • the motion information of the first candidate block is (mvA 1 , ref1) and (mvA 2 , ref0)
  • the second motion information of the candidate block is (mvB 1 ', ref1).
  • the apostrophe (') is a scaled vector. If the number of candidates after completion of spatial and temporal search is 2, but n is assumed to be 5, the one-way predicted blocks may be put as preliminary candidates according to a preset priority in the previous step.
  • new candidates may be added by combining scaled unidirectional candidates using the remaining motion vectors mvC, mvD, and mvE.
  • the motion information of each unidirectional predicted block is scaled according to the reference picture of the current block.
  • a new candidate may be combined with motion information of each of the bidirectional reference pictures L0 and L1 that have already been added. This part is not performed in situations such as unidirectional prediction. In addition, it is not performed even when the reference picture of the current block is the current picture.
  • a fixed candidate having a predetermined fixed coordinate may be added.
  • Fixed candidates with fixed coordinates such as (0,0), (-a, 0), (-2 * a, 0), (0, -b) can be used, and the number of fixed candidates according to the maximum number of candidates Can be set.
  • the fixed coordinates may be set as described above, or may be added as fixed candidates through a process such as an average, a weighted average, a median of at least two motion vectors included in the candidate group through the above process. If n is 5 and three so far are registered as candidates ((mvA_x, mvA_y), (mvB_x, mvB_y), (mvC_x, mvC_y) ⁇ , then fixed candidates with a predetermined priority are filled to fill the remaining two candidates. A candidate group may be included and fixed candidates may be added according to their priority.
  • the fixed candidate group is, for example, ((mvA_x + mvB_x) / 2, (mvA_y + mvB_y) / 2), ((mvA_x + mvB_x + mvC_x) / 3, (mvA_y + mvB_y + mvC_y) / 3), (median (mvA_x) , mvB_x, mvC_x), median (mvA_y, mvB_y, mvC_y)), and the like.
  • the fixed candidate may be set differently according to the reference picture of the current block.
  • fixed candidates may be set as (-a, 0), (0, -b), or (-2 * a, 0) .
  • the current picture is not a reference picture, It may also be set as (0,0), (-a, 0), (average (mvA_x, ...), average (mvA_y, 7)).
  • This information may be previously set in the encoder or the decoder, or may be transmitted in units of a sequence, a picture, a slice, and the like.
  • n 3 in the examples below.
  • the reference picture of the current block is the current picture
  • the reference picture of the current block B_t is two reference pictures rf1 and rf0.
  • rf0, rf1, rf2, rf3, rf4, rf5 and the like representing the reference picture and other pictures the numbers 0, 1, 2, 3, 4, and 5 are examples only applicable to the present embodiment and do not specify any meaning.
  • the reference picture of the current block is the current picture
  • the reference picture of the current block is one reference picture rf0.
  • the reference picture of the current block is one reference picture rf1, and the reference picture having a distance of 2 or more from the reference picture of the current block adds a condition to exclude from the candidate group.
  • the number x of (t-x) of the reference picture rfx-1 is purely a distance from the current picture t, scaling may not be supported from (t-2).
  • the current picture is a specific reference picture rf1.
  • MVC motion vector copy
  • temporal candidates F and G are also included.
  • Candidate groups include A, B, C, D, E, F, G, H, I, J.
  • search order is not determined, it is assumed here that the MVC candidates are searched spatially, searched temporally, a mixed list is constructed, and a fixed candidate is added.
  • the MVP part can be written by attaching the following content except for the scaling part.
  • availability can be checked without the scaling process.
  • the type of the reference picture, the distance to the reference picture of the current picture or the current block, etc. may be excluded from the candidate group.
  • candidates for bidirectional prediction may be made using a combination of candidates added to date as shown in Table 4 below.
  • a new candidate can be added to the motion vector candidate group by combining the candidate using the reference list LO and the candidate using the reference list L1. If five predetermined number of motion vectors cannot be filled, as shown in Table 4 (b), the next candidate of L0 and the candidate using L1 may be added to the candidate newly.
  • n is assumed to be 3.
  • the reference picture of the current block is the current picture.
  • encoding may be performed according to modes such as MVP and MVC for finding candidates for optimal motion information.
  • the encoding may be performed using MVC. That is, after skip flag processing, information about an optimal motion vector candidate may be encoded. If there is only one candidate, this part can be omitted.
  • a residual component that is a difference value between a current block and a prediction block may be encoded through a process such as transform and quantization.
  • the motion information is first checked whether the motion information is processed through MVC with priority, and if it is correct, information about a candidate group of the optimal motion vector may be encoded. If the motion information is not processed through MVC, the motion information may be processed through MVP. In case of MVP, information on an optimal motion vector candidate may be encoded. If there is only one candidate, motion information processing can be omitted. In addition, after encoding information such as a difference value, a reference direction, a reference picture index, and the like with a motion vector of the current block, the residual component may be encoded and then encoded through a process such as transformation and quantization.
  • FIG. 23 is a flowchart illustrating an image encoding method according to another embodiment of the present invention.
  • the motion vector selection method of the image encoding method basically constitutes a spatial motion vector candidate (S231), and determines whether a reference picture of the current block blk exists in the current picture. If the determination result is yes (Y, Y), it is made to add a spatial motion vector candidate of the current picture (S233).
  • the adding step (S233) indicates that the additional spatial motion vector candidate is identified and added to the current picture.
  • a method of adding a motion vector to a candidate group includes first configuring a motion vector of a spatially adjacent block as a candidate group through MVC, MVP, and the like, when the reference picture of the current block is the current picture, The motion information of the block in the current picture is added.
  • Blocks such as I, J, and H of FIG. 19 may correspond thereto.
  • the definition of these blocks is not immediately adjacent to the current block, but may refer to blocks recently encoded with INTER. These blocks may be expressed as 'additional' or 'additional' because they mean that a block obtained through MVC, MVP, and the like constitutes a candidate group from blocks different from each other.
  • a candidate group may be set from blocks of temporally adjacent pictures.
  • a candidate for bidirectional prediction may be configured using a combination of candidates added to date by constructing a mixed list.
  • a constant candidate may be included according to a reference picture of the current picture.
  • a fixed candidate having a predetermined fixed coordinate may be added.
  • a fixed candidate such as (0, 0) may be included in the candidate group of the motion vector.
  • the temporal motion vector candidate may be searched for and added (S234).
  • the image encoding apparatus implementing the motion vector selection method may configure a mixed list candidate including motion vector candidates configured in at least one of the above-described steps S231, S233, and S234 (S235).
  • the image encoding apparatus determines whether the current picture is the reference picture (S236), and if the current picture is the reference picture and the number of candidates for the mixed list is smaller than the number of candidates of the preset motion vector, the fixed fixed coordinates are preset.
  • the candidate may be added to the candidate group (S237).
  • the image encoding apparatus may configure (0, 0) to be added to the candidate group as a fixed candidate (S238).
  • the reference pixel filtering process of FIG. 9 may be performed, but is not limited thereto.
  • the interpolation step of FIG. 15 may be performed.
  • FIG. 24 is a diagram for describing a case in which motion vector precision is different in units of blocks in FIG. 15.
  • FIG. 18 illustrates a case in which a motion vector precision of a block is determined according to interpolation precision of a reference picture in the image encoding and decoding method according to an embodiment of the present invention.
  • each picture is interpolation precision depth information. That is, although FIG. 24 shows that the interpolation precision of each picture including the current picture t and the reference pictures t-1, t-2, and t-3 is fixed, the motion vector precision is adaptively determined in units of blocks. 25 is a case where the motion vector precision of a block is determined according to the interpolation precision of the reference picture. In FIG. 25, depth information of interpolation precision is
  • a motion vector prediction value may be generated based on the above-described selection of a motion information prediction candidate or a selection of a motion vector candidate.
  • the maximum number of candidates used for prediction of the motion vector may be set to three.
  • the candidate block may be limited to the left, top, and right upper blocks of the current block.
  • Candidate blocks can be set to neighboring blocks that are not spatially adjacent as well as temporally and spatially.
  • FIG. 26 is a flowchart illustrating an image encoding and decoding method using a motion vector difference according to an embodiment of the present invention.
  • the prediction unit may configure a motion information prediction candidate group and then obtain a difference value with the motion vector of the current block.
  • the motion vector of a block belonging to the candidate group may be changed according to the precision unit of the motion vector of the current block (S262).
  • a motion vector scaling process may be performed according to the distance of the reference picture of the motion vector of the current block, that is, the distance between the current picture and the reference picture, and the distance of the picture of the block belonging to the candidate group and the reference picture of the corresponding block. S264).
  • the prediction unit may acquire a motion vector difference value of the current block and the corresponding block based on the motion vectors scaled with one picture (S266).
  • 27 to 32 are diagrams for describing a process of calculating a motion vector difference value for various cases when interpolation precision is determined in units of blocks in an image encoding and decoding method according to an embodiment of the present invention.
  • the interpolation precision of the reference picture is the current picture (t) is an integer (Integer, Int), the first reference picture (t-1) is 1/4, the second reference picture (t-2) is 1/4, first It is assumed that 3 reference pictures t-3 are 1/2.
  • the blocks of (A1) may be expressed as the blocks of (A2) according to the motion vector precision.
  • the block of (A2) is set to the reference picture of the candidate blocks of (A3) and the current block.
  • Scaling may be performed in consideration of the distance of the reference picture. Blocks of the same reference picture do not scale.
  • the motion vector of the candidate block may be adjusted in consideration of the motion vector precision of the current block. In this embodiment, it is assumed that the upper right block is selected as the best candidate.
  • the denominator and the numerator are multiplied by 2 to change it to 1/4 unit.
  • the difference value MVD with the motion vector MVx of the current block may be obtained and encoded. If this is expressed as a formula, it is as follows.
  • MVD MVx-MVcan ⁇ (2/4, 1/4)
  • scaling is performed first and precision is later adjusted.
  • the present invention is not limited thereto, and precision may be performed first and scaling may be performed.
  • three blocks around the current block are candidate blocks for motion information encoding. It is assumed here that the interpolation precisions of the reference pictures are all equal to 1/8.
  • the blocks of (B1) may be represented like the blocks of (B2) in accordance with each motion vector precision. Since the reference picture of the current block and the reference picture of the candidate block are the same, the scaling process is omitted.
  • the motion vector of each of the candidate blocks of (B2) may be adjusted in consideration of the motion vector precision of the current block like the blocks of (B3).
  • the difference value MVD with the motion vector MVx of the current block is obtained and encoded.
  • the upper block is selected as the best candidate based on the current block located in the center of the lower line. If this is expressed as an expression, it is as follows.
  • MVD MVx-MVcan ⁇ (1/2, -1/2)
  • the interpolation precisions of the reference pictures are all the same.
  • the interpolation precision of the reference picture may be 1/8.
  • the blocks of (C1) may be expressed like the blocks of (C2) according to the motion vector precision. Since the reference picture of the current block is different from the reference picture of the candidate block, scaling may be performed to obtain blocks of (C3).
  • the motion vector of the candidate block may be adjusted like the blocks of C4 in consideration of the motion vector precision of the current block among the blocks of (C3).
  • the difference value MVD with the motion vector MVx of the current block may be obtained and encoded.
  • FIG. 29 it is assumed that the upper right block is selected as the best candidate based on the current block located in the lower center. If this is expressed as a formula, it is as follows.
  • MVD MVx-MVcan ⁇ (1/4, 3/4)
  • the interpolation precisions of the reference pictures are all the same.
  • the interpolation precision of the reference picture is 1/2.
  • the blocks of (D1) can be expressed like the blocks of (D2) in accordance with the motion vector precision.
  • the block may be invalid from the candidate group.
  • the motion vector of the candidate block may be adjusted like the block of D4 in consideration of the precision of the motion vector of the current block located in the lower center among the blocks of D3. Then, after selecting the best candidate MVcan among the candidate groups, the difference value MVD with the motion vector MVx of the current block may be obtained and encoded. In this embodiment, it is assumed that the co-located block is selected as the best candidate.
  • the above-described configuration is expressed as a formula below.
  • MVD MVx-MVcan ⁇ (2/4, 2/4)
  • the interpolation precisions of the reference pictures are all the same.
  • the interpolation precision of the reference picture may be 1/4.
  • the blocks of E1 may be expressed like the blocks of E2 according to the motion vector precision.
  • a block that uses the current picture located at the bottom center as a reference picture since the block matching is performed on the current picture rather than the general motion prediction, only the top block that performs the same operation remains a candidate and the rest are excluded from the candidate group. Can be.
  • the motion vector of the candidate block can be adjusted like the blocks of E3 in consideration of the motion vector precision of the current block.
  • the difference value MVD with the motion vector MVx of the current block may be obtained and encoded.
  • the upper block is selected as the best candidate.
  • MVD MVx-MVcan ⁇ (-5/2, -1/2)
  • the image encoding and decoding method according to the present embodiment may utilize information of reference blocks neighboring to encoding of the current block.
  • the encoding mode of the neighboring block and information according to the current block may be used.
  • the upper blocks E5 in FIG. 32 are cases when the current picture is an I picture, and shows a case where a predictive block is generated and encoded through block matching in the current picture.
  • Intra-prediction of the present embodiment which is applied to the method of the present embodiment in addition to the existing extrapolation-based method, may be represented by INTRA, and may include Inter when performing block matching on the current picture.
  • information such as a motion vector, a reference picture, and the like may be utilized.
  • the information of the corresponding blocks E5, E6, and E7 may be used for encoding the current block in the order described, and even blocks that are not immediately adjacent, for example, blocks of (E5).
  • blocks in which the encoding mode is inter and additionally checks a reference picture ref may also be used for encoding the current block.
  • the precision of the motion vector is determined according to the interpolation precision of the reference picture, for example, when the interpolation precision of the current picture is an integer unit, the motion vectors of the blocks encoded by Inter may be represented by an integer unit.
  • (E6) shows a case where the current picture is P or B.
  • FIG. Information of a reference block neighboring to encoding of the current block may be utilized. If the precision of the motion vector is determined according to the interpolation precision of the reference picture, the motion vector precision of each block may be set according to the interpolation precision of each reference picture.
  • (E7) is a case where the current picture is P or B, and the current picture is included as a reference picture.
  • the precision of the motion vector of each block may be determined according to the interpolation precision of the reference block.
  • (E8) is a case where the information of the co-located block is used for encoding the current block.
  • the precision of the motion vector of each block may be determined according to the interpolation precision of each reference picture.
  • the precision is adaptively encoded with respect to the difference value of the motion vector. That is, it may include a case where the interpolation precision of the reference picture is constant and the motion vector precision between blocks is constant. That is, the motion vector precision may be determined according to the interpolation precision of the reference picture.
  • 33 to 36 are diagrams for describing a process of expressing a precision of a motion vector difference value in an image encoding and decoding method according to an embodiment of the present invention.
  • the motion vector of the optimal candidate block among the candidate blocks is (a, b) and the motion vector of the current block is (c, d).
  • the reference pictures are the same.
  • the interpolation precision of the reference picture is 1/4.
  • the motion vector difference values c-a and d-b of the current block and the best candidate block must be obtained and sent to the decoder.
  • the blocks of F1 may be represented like the blocks of F2 according to the motion vector precision. Since the reference picture is the same and the motion vector precision of each block is the same, the blocks of F2 can be used for motion vector encoding.
  • the shorter bin index can be used by shifting the existing bin index from 8 and 4 to integer and using 2 and 1.
  • the bits 111111110 + 11110 must be transmitted for the above-described difference (8/4, 4/4), but information about the precision of the difference If you send and transmit a bit of 110 + 10 corresponding to (2/1, 1/1), shorter bits can be used, thereby improving coding efficiency.
  • the information about 11 (integer) and (2/1, 1/1) about the differential value may be sent.
  • the motion vector differential precision is applied to the x and y components together, but it is also possible to apply them separately.
  • (G1) may be expressed as (G2) in accordance with each motion vector precision. Since the reference pictures are the same and the motion vector precision of each block is the same, (G2) can be immediately used for motion vector encoding.
  • the difference can be expressed as (8/4, 5/4). If the precision of the motion vector difference value is applied to x and y of the optimal candidate block expressed as described above, x may be expressed as 2/1 in integer units and y in 5/4 in 1/4 units.
  • the range for the difference precision can be put in the candidate group from the maximum precision (1/4) to the minimum precision (integer).
  • the maximum precision (for example, 1/8) to the minimum precision may include at least two units of precision.
  • FIG. 37 is an example of a reference structure for a random access mode in a video encoding and decoding method according to an embodiment of the present invention.
  • a picture having a low temporal identifier (temporalID)
  • an I picture having a low ID and a P picture are respectively encoded, and then B (2) having a high ID is encoded.
  • the encoding proceeds in the order of encoding. It is assumed that a picture having a low ID as a reference picture is not referred to an ID higher than or equal to itself.
  • interpolation precision for example, any one of integer, 1/2, 1/4, 1/8, etc.
  • Interpolation precision of pictures used as a reference picture may be set differently. For example, in the case of an I picture having an ID of 0, when used as a reference picture of a certain picture, the distance between the pictures is calculated to have a distance of 1, 4, and 8 (for B4, B2, and P1 pictures). In the case of a P picture, it becomes 4, 2, 1 (B2, B6, B8). For ID B1, the distance is 2, 1, 1, 2 (B3, B5, B7, B6), and if ID is B3, the distance is 1, 1 (B4, B5).
  • interpolation precision of each reference picture may be determined based on an average distance from the referenced picture. In other words, the closer the reference picture is, the smaller the difference in movement is. Therefore, it is determined that detailed interpolation is necessary. Therefore, interpolation is performed to increase the interpolation precision (for example, 1/8) in B3 or B6, where the reference distance is short on average. If it is more than that, the interpolation precision can be reduced. For example, it can be lowered to 1/4 (see Case 1 in Table 6 below). On the contrary, since the farther reference pictures are determined to require more detailed interpolation precision, the above-described examples may be applied in the opposite manner.
  • interpolation may be performed on pictures that are often referred to.
  • interpolation may be performed by increasing the interpolation precision in B2, or another interpolation precision may be applied to a picture that is rarely referred to (see Case 2 in Table 6 below).
  • interpolation precision may be differently applied according to a temporal hierarchy. For example, interpolation may be performed more precisely for a picture having an ID of 0, and precision may be lowered for a picture having a different ID and vice versa (see Case 3 of Table 6 below).
  • inter prediction may be performed by setting interpolation precision in picture units.
  • Information related to this may be set under an appointment to an encoder or a decoder or transmitted in units of a sequence, a picture, and the like.
  • FIG. 38 is a diagram for explaining that one picture may have two or more interpolation precisions in an image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 38 an example of performing block matching on a current picture is illustrated. That is, FIG. 38 shows that self-reference is possible at I0, P1, and B2.
  • a picture having the same or lower ID can be used as the reference picture without referring to an ID higher than itself.
  • temporalID 2 or 3 it may be included when temporalID 2 or 3 is used as the current picture as a reference picture. This also means that the current picture can be used according to temporalID.
  • use as a reference picture may be determined according to the type of picture.
  • FIG. 38 is generally similar to that of FIG. 37, but it indicates that the interpolation precision when the current picture is used as the reference picture when encoding the current picture can be the same as the interpolation precision in the general case.
  • the case of FIG. 38 indicates that the interpolation precision may be different only when the current picture is the reference picture. That is, it indicates that one picture can have two or more interpolation precisions.
  • the motion vector precision of the block can be set in units of blocks of the picture to be encoded.
  • the default setting may be to use a predetermined motion vector precision, but in this embodiment, it means to support two or more candidates.
  • the motion vector of the block referring to the picture should be expressed in units of 1/4 in general.
  • the motion vector may be basically expressed in units of 1/4 according to the block, and may be further expressed in units of 1/2 or in units of integers.
  • Table 7 shows the matching according to the precision of the constant motion vector. For example, in order to express 1, it corresponds to 1 in integer units, but corresponds to 2 in 1/2 and 4 in 1/4. In the case of expressing 2, 4 corresponds to 2 and 1/2 units in integer units and 8 corresponds to 1/4 units.
  • the precision is doubled on the basis of the current precision of the block referring to the specific picture, the integer 1 becomes 1/2 and 1/2 becomes 1/4, so that the number for expressing this is doubled.
  • this is expressed in various binarizations such as unary binarization, rice truncated rice, and k-th order exp-golomb, the higher the precision, the more bits to express it.
  • the present embodiment expresses information about which precision unit the motion vector is found in the block unit, and uses the information for encoding and / or decoding. In that case, encoding and decoding can be performed more efficiently.
  • a motion vector is encoded using unary binarization, where the x component of the vector is 8/4 and the y component is 4/4, then a binarization bit of 111111110 + 11110 is required to represent it.
  • the above binarization bits may be expressed in 1/2 units (4/2, 2/2), and in this case, 11110 + 110.
  • it can be expressed in integer units (2, 1), in which case it can be expressed as 110 + 10.
  • 11 (precision unit) is transmitted if information on what precision unit is used to encode the motion vector (for example, 0 for 1/4, 10 for 1/2, and 11 for integer). It can be expressed as + 110 + 10, so that less bits can be used than 111111110 + 11110 in quarter units.
  • the motion vectors x and y components are 3/4, 1/4, they may not be expressed in integer or 1/2 units and thus may be expressed in 1110 + 10 of 1/4 units.
  • the encoding and decoding according to the present embodiment can be performed by transmitting information indicating that the motion vector precision of the corresponding block is 1/4.
  • the interpolation precision in the picture unit is fixed and the precision of the motion vector can be adaptively determined in the block unit.
  • the maximum precision of the motion vector in block units is equal to the interpolation precision of the reference picture.
  • the group of precisions supported in the present embodiment may be configured in various ways. For example, assuming that the interpolation precision of the reference picture is 1/8, the above precision integers 1/2, 1/4, 1/8 may be used, and (1/2, 1/4, 1/8). ), (1/4, 1/8), (integer, 1/2, 1/8), (1/4, 1/8), or the like, may be used by configuring two or more precisions.
  • These may be set in units of pictures, slices, and the like, and may be determined in consideration of encoding costs. Information on this may be transmitted in units of a sequence, a picture, a slice, and the like. In decoding, one set of the received groups may be selected and used to adaptively determine the motion vector precision on a block basis.
  • the index for precision selection may be expressed by fixed length binarization, unary binarization, and the like according to the number of candidate groups configured. Short bits may be allocated to the most likely or occurring units based on the precision of the reference picture, and vice versa.
  • 1/8 may be assigned to 0, 1/4 to 10, 1/2 to 110, and integer to 111. That is, the shortest bit can be assigned to 1/8 and the longest bit can be assigned to an integer.
  • a fixed length may be allocated regardless of the probability of occurrence. For example, integers may be assigned fixed lengths according to statistical occurrence frequencies, such as 00, 1/2 for 01, 1/4 for 10, and 1/8 for 11.
  • the reference picture when the reference picture is a specific picture, that is, when the reference picture is the current picture, priority may be given to a specific precision. When the reference picture is the current picture, high priority may be given to the integer. You can also assign the shortest bit to the basic precision of 1/8, followed by the shortest bit to the integer.
  • 0 can be assigned to 1/8, 10 to integer, 110 to 1/4, and 111 to 1/2.
  • the shortest bit may be assigned to an integer.
  • 0 can be assigned to an integer, 10 to 1/8, 110 to 1/4, and 111 to 1/2.
  • the image encoding and decoding method of the present embodiment can be applied more effectively in the case of an image in which a portion of the image is a screen content area such as a computer capture screen and at least another portion of the image is a general natural image area and the two areas are mixed. .
  • information of a reference block used for motion information prediction of the current block may be utilized.
  • the reference block used in this case may utilize information of the spatially adjacent first block.
  • the first block may include at least one block among upper left, upper, upper right and lower left based on the current block.
  • a reference block can contain not only co-located blocks, but also at least one block from the top left, top, top right, left, bottom left, bottom, bottom right, and right of the reference block (center block) at the same position as the current block.
  • the position included in the candidate group may be determined according to the picture type, encoding related parameters such as the current block size, mode, motion vector, reference direction, correlation with spatially adjacent candidate blocks, and the like.
  • the selected reference picture may mean a picture having a distance of 1 or more between pictures existing before or after the current picture.
  • the blocks may include, as candidates, blocks including at least one block between the current block and the corresponding block determined based on information such as an encoding mode or a reference picture index or preset coordinates.
  • the preset coordinates may be set to have a distance from the upper left coordinate of the current block vertically and horizontally.
  • the left block and the upper block are referenced when expressing the precision of the motion vector of the current block.
  • the precision of the motion vector will be represented by truncated unary binarization.
  • the bit configuration may be equal to 0-10-110-111. If the precision of the motion vector of the left block is 1/2 unit and the motion vector of the upper block is 1/2 unit, the current block is most likely to appear in 1/2 unit. By allocating short bits, you can binarize precision-related information.
  • Several units may include integers, 1/2, 1/4, and 1/8 units supported by the device, and 1/8 may be set as a reference unit.
  • the left block is 1/4 and the upper block is 1/8
  • relatively short bits may be allocated to 1/4 and 1/8
  • the other units may be allocated relatively long bits.
  • the shortest bit may be allocated to 1/8.
  • the reference unit is not included, such as 1/4 on the left and 1/2 on the top
  • the shortest bit may be allocated to the fixed position so as to utilize the fixed position first. For example, assuming that the left side has priority, you can assign the shortest bit to 1/4.
  • the motion information of the candidate block may be utilized.
  • the motion information may include a reference picture index, a reference direction, etc. in addition to the motion vector. For example, if the left side is 1/4 and the top is an integer, when the reference picture is checked, the left side has t-1, the upper side t-2 as the reference picture, and the current block is t-2. Priority may be given to a block having a picture, and the shortest bit may be allocated to an integer that is a precision of a motion vector of the block.
  • the motion vector precision may be adaptively or fixedly supported on a block-by-block basis according to information such as the type, type, etc. of the current picture while the interpolation precision is fixed on a picture basis.
  • motion vector precision when the current picture is used as a reference picture, motion vector precision may be adaptively used, or when the distance between the reference pictures is short, such as B4, B5, B7, and B9, for the purpose of finding finer motion. It is possible to adaptively support the motion vector precision in units of blocks for the picture, and to support the motion vector precision fixedly for other pictures.
  • temporal hierarchical information is 3
  • one of integers, 1/2, and 1/4 may be selected, and only 1/4 of the remaining IDs may be fixed, or the reference picture may be used.
  • an adaptive motion vector precision can be determined in units of blocks assuming that there may be an area having fine motion or an area that is not, and in the case of a picture that is not, a fixed motion vector precision may be supported. have.
  • two or more sets of different precision configurations may be supported. For example, at least 2, such as (1/2, 1/4), (integer, 1/2, 1/4), (1/2, 1/4, 1/8), (integer, 1/4), etc. More than one precision may be a candidate (see Table 8).
  • FIG. 39 is a diagram illustrating a reference picture list when the current picture is an I picture in FIG. 18.
  • a prediction block may be generated through block matching in the current picture.
  • the I picture is added to the reference picture (N).
  • the expression I * (0) means that the current picture is used as a reference picture when the current picture is encoded.
  • the image encoding and decoding apparatus may refer only to reference picture list 0 (L0).
  • temporal identifier for example, block matching may be allowed for the current picture only when it is an I picture, but not for other pictures.
  • the reference picture of an asterisk (*) may be omitted.
  • FIG. 40 is a diagram illustrating a reference picture list when the current picture is a P picture in FIG. 38.
  • a P picture is also added to the reference picture.
  • the expression P * (1) means that the P picture is used as the current picture when the current picture is encoded.
  • I (0) has a different meaning than I * (0) above. That is, since I * (0) performs motion searching during encoding, motion searching can be performed on a picture to which post-processing filtering such as a deblocking filter is not applied or partially applied, and I (0) is encoded. Since the post-processing filtering is a picture, the picture has the same POC, but may be a different picture due to the difference in filtering.
  • the motion search can be performed up to 1/8 units to find an optimal motion vector.
  • the motion search can be performed in integer units.
  • FIG. 41 is a diagram illustrating a reference picture list when a current picture is B (2) in the image encoding and decoding method according to an embodiment of the present invention.
  • FIG. 42 is a diagram illustrating a reference picture list when a current picture is B (5) in the image encoding and decoding method according to an embodiment of the present invention.
  • the motion picture is also searched according to the interpolation precision of each picture by adding the I picture (I (0)) and the P picture (P (1)) as reference pictures. It can be shown that up to the precision unit of the picture can be performed.
  • the motion picture is searched with a precision of 1/4 unit in the P picture, and the motion vector is searched with a precision of 1/8 unit in the I picture.
  • 43 is a diagram for describing a process of determining the motion vector precision of each block according to the interpolation precision of the reference picture in the image encoding and decoding method according to an embodiment of the present invention.
  • 44 is a diagram for describing a process of adaptively determining the motion vector precision of each block when the interpolation precision of each reference picture is fixed in the image encoding and decoding method according to an embodiment of the present invention.
  • the interpolation precision of the current picture is an integer Int
  • the interpolation precisions of the three reference pictures t-1, t-2, and t-3 are 1/4, 1/2, and 1, respectively.
  • the motion vector of each neighboring block may be searched with a precision corresponding to the interpolation precision of the corresponding reference picture.
  • the interpolation precisions of the current picture and the reference pictures are all equal to 1/4, when searching for a motion vector for neighboring blocks of the current block referring to the reference picture, the interpolation precision corresponds to a constant interpolation precision.
  • the motion vector of neighboring blocks can be searched with precision.
  • the interpolation precision of the reference pictures may be set even if the precision of the motion vector on a block basis is determined according to the implementation.
  • the precision of the motion vector is determined according to the interpolation precision of the reference picture, or the precision of the motion vector is determined in units of blocks while the interpolation precision is fixed.
  • the present invention is not limited to such a configuration.
  • the interpolation precision of the reference picture is also set, and it is also possible to mix the cases where the precision of the motion vector is determined in units of blocks.
  • the maximum precision of the motion vector is determined according to the precision of the referenced picture.
  • interpolation precision may be adaptively applied in units of pictures or blocks in inter prediction.
  • adaptive interpolation precision may be supported according to a temporal layer in a GOP structure, an average distance of a referenced picture, and the like.
  • the image encoding method may be replaced with the image decoding method when using the motion vector precision described above to decode the encoded image.
  • the image encoding and decoding method may be executed by an image processing apparatus or an image encoding and decoding apparatus including at least one means for encoding and decoding or a component that performs a function corresponding to the means.
  • 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.

Landscapes

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

Abstract

영상 부호화 및 복호화에서 현재 블록에 대한 움직임 정보를 유도하기 위해 현재 픽쳐를 포함한 참조 픽쳐의 참조 블록들로부터 예측 후보를 선택하고 이를 이용하는, 영상 부호화 및 복호화 방법과 영상 복호화 장치가 개시된다. 영상 부호화 및 복호화 방법은, 공간적 움직임 벡터 후보를 구성하는 단계, 현재 블록의 참조 픽쳐가 현재 픽쳐 내 존재하는지를 판단하는 단계, 상기 판단하는 단계의 판단 결과가 예이면, 현재 블록에 앞서 부호화된 현재 픽쳐의 다른 블록에서의 공간적 움직임 벡터 후보를 추가하는 단계를 포함한다.

Description

영상 부호화 및 복호화 방법과 영상 복호화 장치
본 발명은 영상 부호화 및 복호화 기술에 관한 것으로, 보다 상세하게는, 영상 부호화 및 복호화에서 현재 블록에 대한 움직임 정보를 유도하기 위해 현재 픽쳐를 포함한 참조 픽쳐의 참조 블록들로부터 예측 후보를 선택하고 이를 이용하는, 영상 부호화 및 복호화 방법과 영상 복호화 장치에 관한 것이다.
인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터 이용이 급증하고 있다. 따라서, 각종 시스템에서 영상 예측을 통해 다양한 서비스나 작업을 수행하기 위하여 영상 처리 시스템의 성능 및 효율 개선에 대한 필요성이 상당히 증가하고 있다.
한편, 기존의 영상 부호화 및 복호화 기술에서는 화면 간 예측 방식에 따라 현재 픽쳐 이전이나 이후의 적어도 하나의 참조 픽쳐에서 현재 블록의 주변 블록들에 대한 움직임 정보를 예측하거나, 화면 내 예측 방식에 따라 현재 픽쳐 내 참조 블록에서 움직임 정보를 획득하여 현재 블록에 대한 움직임 벡터를 추정하고 있다.
그러나 기존의 화면 간 예측은 픽쳐들 사이의 시간적인 예측 모드를 이용하여 예측 블록을 생성하기 때문에 계산 복잡도가 높은 단점이 있고, 화면 내 예측은 커다란 부호화 복잡도를 가지는 단점이 있다.
이와 같이, 종래 기술의 영상 부호화 및 복호화 방법에서는 영상 부호화 또는 영상 복호화에 대한 성능 개선이 여전히 요구되고 있다.
상기와 같은 과제를 해결하기 위한 본 발명의 목적은, 영상 부호화 및 복호화에서 현재 블록에 대한 움직임 정보를 유도하기 위해 현재 픽쳐를 포함한 참조 픽쳐의 참조 블록들로부터 예측 후보를 선택하는, 움직임 벡터 후보 선택 방법과 이를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치를 제공하는데 있다.
본 발명의 다른 목적은, 영상 부호화 및 복호화에서 현재 블록에 대한 움직임 정보를 유도하기 위해 현재 픽쳐를 포함한 참조 픽쳐의 참조 블록들로부터 예측 후보를 선택할 때, 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치를 제공하는데 있다.
본 발명의 또 다른 목적은, 영상 부호화 및 복호화에서 현재 블록에 대한 움직임 정보를 유도하기 위해 현재 픽쳐를 포함한 참조 픽쳐의 참조 블록들로부터 예측 후보를 선택할 때, 움직임 벡터 정밀성을 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에서는, 화면 내 예측에서의 참조 화소 구성에 관한 영상 부호화 방법으로서, 현재 블록에 대한 화면 내 예측에서 현재 블록의 참조 화소를 이웃 블록으로부터 획득하는 단계, 참조 화소에 적응적으로 필터링을 수행하는 단계, 적응적인 필터링이 적용된 참조 화소를 현재 블록의 예측 모드에 따라 입력값으로 사용하여 현재 블록의 예측 블록을 생성하는 단계, 예측 블록에 적응적인 후처리 필터를 적용하는 단계를 포함하는, 영상 부호화 방법이 제공된다.
여기서, 상기 획득하는 단계는, 현재 블록의 참조 화소를 상기 이웃 블록으로부터 획득할 수 있다.
여기서, 상기 획득하는 단계는, 이웃 블록의 이용가능성에 따라 결정될 수 있다.
여기서, 이웃 블록의 이용가능성은, 이웃 블록의 위치 및/또는 특정 플래그(constrained_intra_pred_flag)에 의해서 결정될 수 있다. 일례로, 특정 플래그는 이웃 블록이 이용가능할 때, 1의 값을 가질 수 있다. 그것은 이웃 블록의 예측 모드가 화면 간 모드일 때 해당 블록의 참조 화소를 현재 블록의 예측에 사용할 수 없음을 의미할 수 있다.
여기서, 특정 플래그(constrained_intra_pred_flag)는 이웃 블록의 예측 모드에 따라 결정되며, 예측 모드는 화면 내 예측 또는 화면 간 예측 중 하나일 수 있다.
여기서, 특정 플래그(constrained_intra_pred_flag)가 0일 때는, 이웃 블록의 예측 모드에 관계없이 이웃 블록의 이용가능성이 '참(true)'가 되고, 1일 때는 이웃 블록의 예측 모드가 화면 내 예측이면 '참'이 되고, 화면 간 예측이면 이웃 블록의 이용가능성이 '거짓(false)'이 될 수 있다.
여기서, 화면 간 예측은, 하나 이상의 참조 픽쳐로부터 참조하여 예측 블록을 생성할 수 있다.
여기서, 참조 픽쳐는, 참조 픽쳐 리스트 0(List 0)과 참조 픽쳐 리스트 1(List 1)을 통해 관리되며 하나 이상의 과거 픽쳐, 미래 픽쳐, 현재 픽쳐를 상기 List 0, List 1에 포함할 수 있다.
여기서, List 0 및 List1은, 참조 픽쳐 리스트에 현재 픽쳐를 넣을지가 적응적으로 결정될 수 있다.
여기서, 현재 픽쳐를 참조 픽쳐 리스트에 넣을지를 결정하는 정보는 시퀀스, 참조 픽쳐 파라미터 셋 등에 포함될 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에서는, 컴퓨팅 장치에서 수행되는 영상 복호화 방법으로서, 입력 비트스트림으로부터 이웃 블록의 참조 화소 이용가능성에 관한 플래그를 시퀀스 또는 픽쳐 단위로 획득하는 단계; 플래그에 따라 화면 내 예측을 수행할 때 이웃 블록의 참조 화소 이용가능성을 결정하는 단계; 플래그가 0일 때 이웃 블록의 예측 모드에 관계없이 이웃 블록의 참조 화소를 현재 블록의 예측에 사용하고, 플래그가 1일 때 이웃 블록의 예측 모드가 화면 내 예측인 경우에 이웃 블록의 참조 화소를 현재 블록의 예측에 사용하며, 이웃 블록의 예측 모드가 화면 간 예측인 경우에 이웃 블록의 참조 화소를 현재 블록의 예측에 사용하지 않는, 영상 복호화 방법이 제공된다.
여기서, 화면 간 예측은 참조 픽쳐에서 블록 매칭을 기반으로 예측 블록을 생성할 수 있다.
여기서, 참조 픽쳐는 P 픽쳐에서는 List 0을, B 픽쳐에서는 List 0과 List 1을 통해 관리될 수 있다.
여기서, 화면 간 예측에서 List 0에 현재 픽쳐를 포함할 수 있다.
여기서, 화면 간 예측에서 List 1에 현재 픽쳐를 포함할 수 있다.
여기서, 상기 List 0과 List 1에 현재 픽쳐를 포함하는 것은 시퀀스 파라미터에서 전송되는 플래그에 기반하여 결정될 수 있다.
여기서, 상기 List 0과 List 1에 현재 픽쳐를 포함하는 것은 픽쳐 파라미터에서 전송되는 플래그에 기반하여 결정될 수 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 공간적 움직임 벡터 후보(제1 후보)를 구성하는 단계, 현재 블록의 참조 픽쳐가 현재 픽쳐 내 존재하는지를 판단하는 단계, 및 상기 판단하는 단계의 판단 결과가 예이면, 상기 현재 블록에 앞서 부호화된 현재 픽쳐의 다른 블록에서의 공간적 움직임 벡터 후보(제2 후보)를 추가하는 단계를 포함하는, 움직임 벡터 후보 선택 방법이 제공된다.
여기서, 움직임 벡터 후보 선택 방법은, 상기 판단하는 단계의 판단 결과가 아니오이면 시간적 움직임 벡터 후보(제3 후보)를 추가하는 단계를 더 포함할 수 있다.
여기서, 움직임 벡터 후보 선택 방법은, 상기 추가하는 단계 후에, 상기 제1 후보, 상기 제2 부호 및 상기 제3 후보를 포함하는 혼합 리스트 후보를 구성하는 단계를 더 포함할 수 있다.
여기서, 움직임 벡터 후보 선택 방법은, 상기 혼합 리스트 후보를 구성하는 단계 후에, 상기 현재 픽쳐가 참조 픽쳐인지를 판단하는 단계; 및 상기 현재 픽쳐가 참조 픽쳐이고, 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, 미리 설정된 고정 좌표의 고정 후보를 추가하는 단계를 더 포함할 수 있다.
여기서, 움직임 벡터 후보 선택 방법은, 상기 현재 픽쳐가 참조 픽쳐가 아니고, 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, (0, 0)을 고정 후보로 추가하는 단계를 더 포함할 수 있다.
여기서, 상기 현재 픽쳐의 다른 블록은 상기 현재 블록의 주변 블록을 사이에 두고 상기 현재 블록과 마주하는 블록들로서 상기 현재 픽쳐에서 상기 현재 블록에 앞서 부호화된 블록을 포함할 수 있다. 상기 현재 픽쳐의 다른 블록은 상기 현재 블록에 앞서 화면 간 예측으로 부호화된 블록일 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에서는, 공간적 움직임 벡터 후보(제1 후보)를 구성하는 단계; 현재 블록의 참조 픽쳐가 현재 픽쳐 내 존재하는지를 판단하는 단계; 상기 판단하는 단계의 판단 결과가 예이면, 상기 현재 블록에 앞서 부호화된 현재 픽쳐의 다른 블록에서의 공간적 움직임 벡터 후보(제2 후보)를 추가하는 단계; 상기 판단하는 단계의 판단 결과가 아니오이면, 시간적 움직임 벡터 후보(제3 후보)를 추가하는 단계; 및 상기 제1 후보, 및 상기 제2 후보와 상기 제3 후보 중 어느 하나를 포함하는 움직임 벡터 후보를 토대로 참소 화소 필터링을 수행하는 단계를 포함하는, 영상 부호화 방법이 제공된다.
여기서, 영상 부호화 방법은, 상기 수행하는 단계 전에, 상기 현재 픽쳐가 참조 픽쳐인지를 판단하는 단계; 상기 현재 픽쳐가 참조 픽쳐이고, 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, 미리 설정된 고정 좌표의 고정 후보를 추가하는 단계; 및 상기 현재 픽쳐가 참조 픽쳐가 아니고, 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, (0, 0)을 고정 후보로 추가하는 단계를 더 포함할 수 있다.
여기서, 영상 부호화 방법은, 상기 수행하는 단계 후에, 화면 내 예측을 통해 예측 블록을 생성하는 단계; 및 상기 생성된 예측 블록에 대해 예측 모드 부호화를 수행하는 단계를 더 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 공간적 움직임 벡터 후보(제1 후보)를 구성하는 단계; 현재 블록의 참조 픽쳐가 현재 픽쳐 내 존재하는지를 판단하는 단계; 상기 판단하는 단계의 판단 결과가 예이면, 상기 현재 블록에 앞서 부호화된 현재 픽쳐의 다른 블록에서의 공간적 움직임 벡터 후보(제2 후보)를 추가하는 단계; 상기 판단하는 단계의 판단 결과가 아니오이면, 시간적 움직임 벡터 후보(제3 후보)를 추가하는 단계; 및 상기 제2 후보와 상기 제3 후보 중 적어도 어느 하나와 상기 제1 후보를 포함하는 움직임 벡터 후보를 토대로 모션 예측을 수행하는 단계를 포함하는, 영상 부호화 방법이 제공된다.
여기서, 영상 부호화 방법은, 상기 수행하는 단계 전에, 상기 현재 픽쳐가 참조 픽쳐인지를 판단하는 단계; 상기 현재 픽쳐가 참조 픽쳐이고, 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, 미리 설정된 고정 좌표의 고정 후보를 추가하는 단계; 및 상기 현재 픽쳐가 참조 픽쳐가 아니고, 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, (0, 0)을 고정 후보로 추가하는 단계를 더 포함할 수 있다.
여기서, 영상 부호화 방법은, 상기 수행하는 단계 후에, 내삽(interpolation)을 수행하는 단계를 더 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 부호화된 픽쳐를 엔트로피 복호화하는 단계; 복호화된 픽쳐를 역양자화하는 단계; 역양자화된 픽쳐는 역변환하는 단계; 상기 복호화된 픽쳐의 헤더 정보를 토대로 역변환된 영상에 대한 움직임 정보 예측 후보를 선택하는 단계; 및 상기 움직임 정보 예측 후보에 기반하여 획득한 가감산 영상 정보를 토대로 상기 역변환된 영상을 복호화하는 단계를 포함하는, 영상 복호화 방법이 제공된다.
여기서, 상기 선택하는 단계는, 상기 역변환된 영상 내 현재 픽쳐의 주변 블록으로부터의 공간적 움직임 벡터 후보(제1 후보), 및 상기 현재 블록에 앞서 부호화된 현재 픽쳐의 다른 블록에서의 공간적 움직임 벡터 후보(제2 후보)를 포함하는 후보군을 토대로 상기 현재 블록에 대한 움직임을 예측할 수 있다.
여기서, 상기 선택하는 단계는, 시간적 움직임 벡터 후보(제3 후보)가 더 추가된 후보군을 토대로 상기 현재 블록에 대한 움직임을 예측할 수 있다.
여기서, 상기 선택하는 단계는, 상기 제1 후보, 상기 제2 부호 및 상기 제3 후보를 포함하는 혼합 리스트 후보군을 구성하고, 상기 현재 블록의 현재 픽쳐가 참조 픽쳐인지를 판단하고, 상기 현재 픽쳐가 참조 픽쳐이고 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, 미리 설정된 고정 좌표의 고정 후보를 추가할 수 있다.
여기서, 영상 복호화 방법은, 상기 선택하는 단계에서 상기 현재 픽쳐가 참조 픽쳐가 아니고 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, (0, 0)을 고정 후보로 추가할 수 있다.
여기서, 상기 현재 픽쳐의 다른 블록은 상기 현재 블록의 주변 블록을 사이에 두고 상기 현재 블록과 마주하는 블록들로서 상기 현재 픽쳐에서 상기 현재 블록에 앞서 화면 간 예측으로 부호화된 블록을 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 원영상에서 움직임 정보를 예측하여 예측 영상을 생성하는 영상 부호화 방법에 있어서, 움직임 정보 예측 후보군을 구성하는 단계; 상기 후보군에 속한 후보 블록의 움직임 벡터를 현재 블록의 움직임 벡터의 정밀도 단위에 맞춰 변경하는 단계; 및 상기 현재 블록의 움직임 벡터에서 상기 정밀도 단위가 맞춰진 후보 블록의 움직임 벡터를 뺀 차분치를 구하는 단계를 포함하는, 영상 부호화 방법이 제공된다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 부호화 영상을 엔트로피 복호화하고 역양자화 및 역변환을 통해 복원 영상을 생성하는 영상 복호화 방법에 있어서, 상기 엔트로피 복호화를 통해 얻은 상기 영상의 헤더 정보를 토대로 상기 복원 영상의 움직임 정보 예측 후보군을 구성하는 단계; 상기 후보군에 속한 후보 블록의 움직임 벡터를 현재 블록의 움직임 벡터의 정밀도 단위에 맞춰 변경하는 단계; 및 상기 현재 블록의 움직임 벡터에서 상기 정밀도 단위가 맞춰진 후보 블록의 움직임 벡터를 뺀 차분치를 구하는 단계를 포함하는, 영상 복호화 방법이 제공된다.
여기서, 상기 변경하는 단계는, 상기 현재 블록이 위치한 현재 픽쳐와 참조 픽쳐와의 제1 거리와 상기 후보 블록의 픽쳐와 해당 후보 블록의 참조 픽쳐와의 제2 거리에 따라 움직임 벡터를 스케일링할 수 있다.
여기서, 영상 부호화 방법은, 상기 구하는 단계 후에, 상기 제1 거리와 상기 제2 거리의 평균 거리를 기반으로 각 참조 픽쳐의 보간 정밀도를 정하는 단계를 더 포함할 수 있다.
여기서, 상기 변경하는 단계는, 상기 현재 블록의 참조 픽쳐와 상기 후보 블록의 참조 픽쳐가 동일한 경우에 생략될 수 있다.
여기서, 상기 변경하는 단계는, 상기 현재 블록의 움직임 벡터 정밀도에 따라 이웃 블록 또는 주변 블록의 움직임 벡터를 상기 현재 블록의 움직임 벡터 정밀도 단위로 변경할 수 있다.
여기서, 상기 주변 블록은 상기 현재 블록과의 사이에 다른 블록을 게재하고 위치할 수 있다. 또한, 상기 주변 블록은 상기 현재 블록에 앞서 화면간 예측으로 움직임 벡터가 탐색된 블록일 수 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 부호화 영상을 엔트로피 복호화하고 역양자화 및 역변환을 통해 복원 영상을 생성하는 프로그램 또는 프로그램 코드를 저장하는 메모리; 및 상기 메모리에 연결되어 상기 프로그램을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 프로그램에 의해, 상기 엔트로피 복호화를 통해 얻은 상기 영상의 헤더 정보를 토대로 상기 복원 영상의 움직임 정보 예측 후보군을 구성하고, 상기 후보군에 속한 후보 블록의 움직임 벡터를 현재 블록의 움직임 벡터의 정밀도 단위에 맞춰 변경하고, 상기 현재 블록의 움직임 벡터에서 상기 정밀도 단위가 맞춰진 후보 블록의 움직임 벡터를 뺀 차분치를 구하는, 영상 복호화 장치가 제공된다.
여기서, 상기 프로세서는, 상기 후보 블록의 움직임 벡터를 변경하고자 할 때, 상기 현재 블록이 위치한 현재 픽쳐와 참조 픽쳐와의 제1 거리와 상기 후보 블록의 픽쳐와 해당 후보 블록의 참조 픽쳐와의 제2 거리에 따라 움직임 벡터를 스케일링할 수 있다.
여기서, 상기 프로세서는, 상기 차분치를 구하고자 할 때, 상기 제1 거리와 상기 제2 거리의 평균 거리를 기반으로 각 참조 픽쳐의 보간 정밀도를 정할 수 있다.
여기서, 상기 프로세서는, 상기 후보 블록의 움직임 벡터를 변경하고자 할 때, 상기 현재 블록의 참조 픽쳐와 상기 후보 블록의 참조 픽쳐가 동일한 경우에 변경 프로세스를 생략할 수 있다.
여기서, 상기 프로세서는, 상기 후보 블록의 움직임 벡터를 변경하고자 할 때, 상기 현재 블록의 움직임 벡터 정밀도에 따라 이웃 블록 또는 주변 블록의 움직임 벡터를 상기 현재 블록의 움직임 벡터 정밀도 단위로 변경할 수 있다.
여기서, 상기 주변 블록은 상기 현재 블록과의 사이에 다른 블록을 게재하고 위치하며, 상기 현재 블록에 앞서 화면간 예측으로 움직임 벡터가 탐색되는 블록일 수 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 참조 픽쳐의 보간 정밀도가 제1 값을 가질 때, 상기 참조 픽쳐를 참조하는 현재 블록의 제1 주변 블록의 움직임 벡터를 상기 제1 값과 동일하거나 상기 제1 값보다 큰 제2 값의 정밀도로 탐색하는 단계; 상기 제2 값보다 큰 제3 값의 정밀도로 상기 현재 블록의 제2 주변 블록의 움직임 벡터를 탐색하는 단계; 및 상기 제1 블록과 상기 제2 블록의 움직임 벡터들에 대한 제1 정보와 상기 움직임 벡터들의 정밀도에 대한 매칭 정보를 부호화하는 단계를 포함하는, 영상 부호화 방법이 제공된다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 참조 픽쳐의 보간 정밀도가 제1 값을 가질 때, 상기 참조 픽쳐를 참조하는 현재 블록의 제1 주변 블록의 움직임 벡터를 상기 제1 값과 동일하거나 상기 제1 값보다 큰 제2 값의 정밀도로 탐색하는 단계, 상기 제2 값보다 큰 제3 값의 정밀도로 상기 현재 블록의 제2 주변 블록의 움직임 벡터를 탐색하는 단계, 및 상기 움직임 벡터들의 정밀도에 대한 매칭 정보와 상기 제1 블록과 상기 제2 블록의 움직임 벡터들에 대한 정보를 토대로 영상을 복호화하는 단계를 포함하는, 영상 복호화 방법이 제공된다.
여기서, 현재 픽쳐 또는 현재 픽쳐에 대한 정보는 참조 픽쳐 리스트 0 및 참조 픽쳐 리스트 1의 마지막에 추가될 수 있다.
여기서, 제1 값은 진분수일 수 있다. 또한, 제2 값 또는 제3 값은 정수일 수 있다.
여기서, 매칭 정보를 포함하는 인덱스 내에서 제2 값의 빈도가 제3 값의 빈도보다 크면, 제2 값의 이진 비트 수는 제3 값의 이진 비트 수보다 짧을 수 있다.
여기서, 인덱스 내에서 제3 값의 빈도가 가장 크면, 제3 값은 제로(zero) 즉 0의 정밀도를 가질 수 있다.
여기서, 제1 주변 블록 또는 제2 주변 블록은, 현재 블록과 공간적으로 다른 블록을 게재하고 위치할 수 있다. 제1 주변 블록 또는 제2 주변 블록은 현재 블록에 앞서 화면간 예측으로 부호화된 블록일 수 있다.
여기서, 제1 주변 블록 또는 제2 주변 블록의 참조 픽쳐는 현재 픽쳐일 수 있다. 제1 주변 블록 또는 제2 주변 블록의 움직임 벡터는 화면간 예측에 의해 탐색될 수 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 영상 복호화를 위한 프로그램 또는 프로그램 코드를 저장하는 메모리, 및 상기 메모리에 연결되는 프로세서를 포함하되, 상기 프로세서는 상기 프로그램에 의해, 참조 픽쳐의 보간 정밀도가 제1 값을 가질 때, 상기 참조 픽쳐를 참조하는 현재 블록의 제1 주변 블록의 움직임 벡터를 상기 제1 값과 동일하거나 상기 제1 값보다 큰 제2 값의 정밀도로 탐색하고, 상기 제2 값보다 큰 제3 값의 정밀도로 상기 현재 블록의 제2 주변 블록의 움직임 벡터를 탐색하고, 상기 움직임 벡터들의 정밀도에 대한 매칭 정보와 상기 제1 블록과 상기 제2 블록의 움직임 벡터들에 대한 정보를 토대로 영상을 복호화하는, 영상 복호화 장치가 제공된다.
상술한 바와 같은 본 발명의 실시예에 따른 영상 부호화 및 복호화 방법과 영상 복호화 장치를 이용할 경우에는, 영상 처리 시스템이나 이러한 영상 처리 시스템을 구비하는 각종 시스템에서 영상 부호화 및 복호화를 위해 움직임 벡터 후보를 효과적으로 선택하여 장치 또는 시스템의 성능 및 효율을 개선할 수 있다.
또한, 움직임 벡터 후보 또는 움직임 정보 예측 후보의 효과적인 선택을 통해 영상 부호화 장치, 영상 복호화 장치 또는 영상 처리 시스템의 성능과 효율을 향상시킬 수 있는 장점이 있다.
특히, 움직임 벡터 차분치를 이용하여 움직임 벡터를 선택함으로써 블록이나 픽쳐의 정밀도에 따라 스케일링이나 정밀도 보정을 다양한 형태로 적용할 수 있고, 적용가능한 후보군 중에 최적의 후보를 선택하여 현재 블록의 움직임 벡터와의 차분치를 구비하고 이를 부호화에 이용함으로써 부호화 및 복호화 성능과 효율을 높일 수 있는 장점이 있다.
아울러, 움직임 벡터 정밀성을 이용하여 움직임 벡터를 선택함으로써 특히, 현재 픽쳐 내에서 참조 블록을 복사하여 예측 블록으로 활용할 수 있고, 그에 의해 영상 부호화 및 복호화에서의 성능과 효율을 향상시킬 수 있다.
또한, 움직임 벡터의 정밀성을 확장하도록 인트라 블록 카피(intra block copy) 또는 블록 매칭(block matching)을 이용하면서 움직임 벡터의 참조 픽쳐 리스트 0(List 0) 및 참조 픽쳐 리스트 1(List 1)에 현재 픽쳐를 넣어서 부호화 및 복호화에서의 성능과 효율을 향상시킬 수 있다.
도 1은 본 발명의 영상 부호화 장치 및/또는 영상 복호화 장치를 이용하는 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일실시예에 따른 영상 복호화 장치에 대한 블록도이다.
도 4는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 P 슬라이스의 화면 간 예측을 나타낸 예시도이다.
도 5는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 B 슬라이스의 화면 간 예측을 나타낸 예시도이다.
도 6은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 단방향으로 예측 블록을 생성하는 경우를 설명하기 위한 예시도이다.
도 7은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트를 구성하는 예시도이다.
도 8은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 화면 간 예측을 수행하는 경우의 다른 예를 나타낸 예시도이다.
도 9는 본 발명의 일실시예에 따른 영상 부호화 방법에서 화면 내 예측을 설명하기 위한 예시도이다.
도 10은 본 발명의 일실시예에 따른 영상 부호화 방법에서 P 슬라이스나 B 슬라이스에서의 예측 원리를 설명하기 위한 예시도이다.
도 11은 도 10의 영상 부호화 방법에서 내삽(interpolation)을 수행하는 경우를 설명하기 위한 예시도이다.
도 12는 본 발명의 일실시예에 따른 영상 부호화 방법의 주요 과정을 코딩 단위(coding unit)에서의 신택스로 설명하기 위한 도면이다.
도 13은 도 12에서 사용하는 현재 픽쳐에서 블록매칭을 통해 예측 블록을 생성할 경우, 화면 간 예측에서와 같이 대칭형(symmetric type) 분할 또는 비대칭형(asymmetric type) 분할을 지원하는 예를 설명하기 위한 예시도이다.
도 14는 도 9의 화면 내 예측(Intra)과 같이 화면 간 예측(Inter)에서 2Nx2N, NxN을 지원할 수 있음을 설명하기 위한 예시도이다.
도 15는 본 발명의 일실시예에 따른 영상 부호화 방법에서 영상의 a, b, c의 위치(x라고 가정)에 있는 화소에 대해서는 수평 1D 필터를 수행하는 과정을 설명하기 위한 도면이다.
도 16은 비교예에 따른 현재 블록과 주변 블록에 대한 예시도이다.
도 17은 다른 비교예에 따른 현재 블록과 주변 블록에 대한 예시도이다.
도 18은 또 다른 비교예에 따른 현재 블록과 주변 블록에 대한 예시도이다.
도 19는 본 발명의 일실시예에 따른 영상 부호화 방법에 채용할 수 있는 현재 블록과 주변 블록에 대한 예시도이다.
도 20은 본 발명의 일실시예에 따른 영상 부호화 방법에서 현재 블록의 참조 픽쳐와 후보 블록의 참조 픽쳐와의 시간적인 거리가 일정 거리 이상일 때는 후보군에서 제외하고 그 거리 미만일 때는 거리에 따라 스케일링한 후 후보군에 포함하는 경우를 설명하기 위한 예시도이다.
도 21은 본 발명의 일실시예에 따른 영상 부호화 방법에서 현재 블록이 참조하는 픽쳐가 현재 픽쳐와 다른 픽쳐일 때 현재 픽쳐를 예측 후보군에 추가하는 경우를 설명하기 위한 예시도이다.
도 22는 본 발명의 일실시예에 따른 영상 부호화 방법에서 현재 블록이 참조하는 픽쳐가 현재 픽쳐일 때 현재 픽쳐를 예측 후보군에 추가하는 경우를 설명하기 위한 예시도이다.
도 23은 본 발명의 다른 실시예에 따른 영상 부호화 방법에 대한 순서도이다.
도 24는 도 15에서 블록 단위로 움직임 벡터 정밀도가 다른 경우를 설명하기 위한 도면이다.
도 25는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐의 보간 정밀도에 따라 블록의 움직임 벡터 정밀도가 결정되는 케이스를 설명하기 위한 도면이다.
도 26은 본 발명의 일실시예에 따른 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법에 대한 흐름도이다.
도 27 내지 도 32는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 블록 단위로 보간 정밀도가 정해질 때 다양한 케이스에 대한 움직임 벡터 차분치 산출 과정을 설명하기 위한 도면들이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 33 내지 도 36은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 움직임 벡터 차분치의 정밀도에 대한 표현 과정을 설명하기 위한 도면들이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 37은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 임의 접근 모드에 대한 참조 구조의 예이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 38은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 하나의 픽쳐이지만 2개 이상의 보간 정밀도를 가질 수 있음을 설명하기 위한 도면이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 39는 도 38에서 현재 픽쳐가 I 픽쳐일 때의 참조 픽쳐 리스트를 나타낸 도면이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 40은 도 38에서 현재 픽쳐가 P 픽쳐일 때의 참조 픽쳐 리스트를 나타낸 도면이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 41은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 현재 픽쳐가 B(2)일 때 참조픽쳐 리스트를 나타낸 도면이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 42는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 현재 픽쳐가 B(5)일 때 참조픽쳐 리스트를 나타낸 도면이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 43은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐의 보간 정밀도에 따라 각 블록의 움직임 벡터 정밀도가 정해지는 과정을 설명하기 위한 도면이다.
[규칙 제91조에 의한 정정 20.06.2016] 
도 44는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 각 참조 픽쳐의 보간 정밀도가 고정된 경우에 각 블록의 움직임 벡터 정밀도가 적응적으로 정해지는 과정을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가진다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 것을 의미한다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 동영상은 일련의 픽쳐(Picture)로 구성될 수 있으며, 각 픽쳐들은 프레임 또는 블록(Block)과 같은 소정의 영역으로 분할될 수 있다. 또한, 분할된 영역은 블록(Block)뿐 아니라, 코딩 트리 유닛(Coding Tree Unit, CTU), 코딩 유닛(Coding Unit, CU), 예측 유닛(Prediction Unit, PU), 변환 유닛(Transform Unit, TU)과 같이 다양한 크기 또는 용어로 지칭할 수 있다. 각 유닛(Unit)은 하나의 휘도 블록과 두 개의 색차 블록으로 구성될 수 있으며, 이는 컬러 포맷에 따라 달리 구성될 수 있다. 또한, 컬러 포맷에 따라 휘도 블록과 색차 블록의 크기가 결정될 수 있다. 예를 들어, 4:2:0인 경우 색차 블록의 크기는 휘도 블록의 가로, 세로가 1/2인 길이를 가질 수 있다. 이 단위 및 용어에 대해서는 기존의 HEVC(high efficiency video coding) 또는 H.264/AVC(advanced video coding) 등의 용어를 참조할 수 있다.
또한, 현재 블록 또는 현재 화소를 부호화하거나 복호화하는데 참조되는 픽쳐, 블록 또는 화소를 참조 픽쳐(reference picture), 참조 블록(reference block) 또는 참조 화소(reference pixel)라고 한다. 또한, 이하에 기재된 "픽쳐(picture)"이라는 용어는 영상(image), 프레임(frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 영상 부호화 장치 및/또는 영상 복호화 장치를 이용하는 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 영상 부호화 장치 및/또는 영상 복호화 장치를 이용하는 시스템은 개인용 컴퓨터(personal computer, PC), 노트북 컴퓨터, 개인 휴대 단말기(personal digital assistant, PDA), 휴대형 멀티미디어 플레이어(portable multimedia player, PMP), 플레이스테이션 포터블(playstation portable, PSP), 무선 통신 단말기(wireless communication terminal), 스마트폰(smart phone), 텔레비전(TV) 등과 같은 사용자 단말기(11)이거나 응용 서버와 서비스 서버 등 서버 단말기(12)일 수 있다. 이러한 시스템은 컴퓨팅 장치로 지칭될 수 있다.
또한, 컴퓨팅 장치는 각종 기기 또는 유무선 통신망(network)과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 및 복호화를 위해 화면 간(inter) 또는 화면 내(intra) 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(18), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(14) 등을 구비하는 다양한 장치를 포함할 수 있다.
또한, 컴퓨팅 장치는 영상 부호화 장치에 의해 비트스트림(bitstream)으로 부호화된 영상을 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 복원된 영상으로 재생될 수 있다. 또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 부호화 장치에서 복호화 장치로 전달될 수도 있다.
도 2는 본 발명의 일실시예에 따른 영상 부호화 장치에 대한 블록도이다. 도 3은 본 발명의 일실시예에 따른 영상 복호화 장치에 대한 블록도이다.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(decorded picture buffer, DPB, 240) 및 엔트로피 부호화부(245)를 포함할 수 있다. 또한, 영상 부호화 장치(20)는 분할부(190)를 더 포함할 수 있다.
또한, 본 실시예에 따른 영상 복호화 장치(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)에 대응될 수 있다. 따라서 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다.
그리고 영상 복호화 장치는 영상 부호화 장치에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치를 중심으로 설명하기로 한다.
컴퓨팅 장치는 영상 부호화 방법 및/또는 영상 복호화 방법을 구현하는 프로그램이나 소프트웨어 모듈을 저장하는 메모리와 메모리에 연결되어 프로그램을 수행하는 프로세서를 포함할 수 있다. 그리고 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
본 실시예의 영상 부호화 장치의 각 구성요소를 좀 더 구체적으로 설명하면 다음과 같다.
분할부(190)는, 입력 영상을 정해진 크기의 블록(M×N)으로 분할한다. 여기서, M 또는 N은 1 이상의 임의의 자연수이다.
상세하게는, 분할부(190)은 픽쳐 분할부와 블록 분할부로 구성될 수 있다. 블록은 영상의 특성 및 해상도 등에 따라 크기 또는 형태가 결정될 수 있고, 픽쳐 분할부를 통해 지원되는 블록의 크기 또는 형태는 가로 및 세로의 길이가 2의 지수승으로 표현되는 M×N 정사각 형태(256×256, 128×128, 64×64, 32×32, 16×16, 8×8, 4×4 등)이거나, M×N 직사각 형태일 수 있다. 예를 들어, 해상도가 높은 8k UHD급 영상의 경우 256×256, 1080p HD급 영상의 경우 128×128, WVGA급 영상의 경우 16×16 등 크기로 입력 영상을 분할할 수 있다.
이러한 블록의 크기 또는 형태에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위에서 설정이 가능하며, 관련 정보를 복호화기에 전송할 수 있다. 즉, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 슬라이스 헤더 또는 이들의 조합 단위에서 설정될 수 있다.
여기서, 시퀀스(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) 등의 최대 단위일 수 있으나, 일부 블록은 이에 한정되지 않고 예외도 가능하다. 예컨대, 인루프 필터링 블록과 같이 일부는 위에서 설명한 블록 크기보다 더 큰 단위로 적용될 수 있다.
블록 분할부는 부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 등의 블록에 대한 분할을 수행한다. 분할부(190)는 각 구성에 포함되어 기능을 수행하기도 한다. 예컨대, 변환부(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_h_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, 10, 01, 11로 부호화될 수 있다.
위의 경우, 분할 플래그가 중첩되어 사용될 수 있는 설정에서의 예시이고, 분할 플래그가 중첩되어 사용될 수 없는 설정 또한 가능하다. 예를 들어, 분할 블록 형태가 M×N, M/2×N, M×N/2로 분할될 수 있으며, 이 경우 위의 플래그는 수평 또는 수직 분할 플래그들 순으로 00, 01, 10로 부호화되거나, 분할 플래그(div_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×N/2)를 후보 리스트1(list1), (M×N, M/2×N, M×N/2, M/2×N/2)를 후보 리스트2(list2), (M×N, M/2×N, M×N/2)를 후보 리스트3(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)를 후보 리스트4(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)는 부호화할 현재 픽쳐를 의미할 수 있고, 영상 픽쳐의 시간적인 흐름 혹은 POC(picture order count)를 기준으로 할 때 현재 픽쳐의 POC보다 이전의 제1 시간적인 거리(t-1)를 가지는 제1 참조픽쳐와 제1 시간적인 거리 이전의 제2 시간적인 거리(t-2)를 가지는 제2 참조픽쳐를 포함할 수 있다.
즉, 도 4에 도시한 바와 같이, 본 실시예의 영상 부호화 방법에 채용할 수 있는 화면 간 예측은 현재 픽쳐(current(t))의 현재 블록과 참조 픽쳐들(t-1, t-2)의 참조 블록들의 블록 매칭을 통해 상관성이 높은 블록을 이전에 부호화가 완료된 참조 픽쳐들(t-1, t-2)로부터 최적의 예측 블록을 찾는 움직임 추정을 수행할 수 있다. 정밀한 추정을 위해 필요에 따라 인접한 두 화소들 사이에 적어도 하나 이상의 부화소가 배열된 구조에 기반하는 보간(interpolation) 과정을 수행한 후, 최적의 예측 블록을 찾은 후 움직임 보상을 하여 최종적인 예측 블록을 찾을 수 있다.
또한, 도 5에 도시한 바와 같이, 본 실시예의 영상 부호화 방법에 채용할 수 있는 화면 간 예측은 현재 픽쳐(current(t))를 기준으로 시간적으로 양방향에 존재하는 이미 부호화가 완료된 참조 픽쳐들(t-1, t+1)로부터 예측 블록을 생성할 수 있다. 또한, 1개 이상의 참조 픽쳐에서 2개의 예측 블록을 생성할 수 있다.
화면 간 예측을 통해 영상의 부호화를 수행할 경우, 최적의 예측 블록에 대한 움직임 벡터 정보와 참조 픽쳐에 대한 정보를 부호화한다. 본 실시예에서는 단방향 또는 양방향으로 예측 블록을 생성할 경우 참조 픽쳐 리스트를 달리 구성하여 해당 참조 픽쳐 리스트로부터 예측 블록을 생성할 수 있다. 기본적으로 시간적으로 현재 픽쳐 이전에 존재하는 참조 픽쳐는 리스트 0(L0)에 할당하여 관리되고 현재 픽쳐 이후에 존재하는 참조 픽쳐는 리스트 1(L1)에 할당하여 관리될 수 있다.
참조 픽쳐 리스트 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의 MPM(most probable mode)와 같이 가능성 높은 예측 모드의 후보군 중에서 선택하도록 구현될 수 있다. 또한, 예측 모드 부호화의 상위 단계에서 우선적으로 부호화할 수도 있다.
현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성할 경우, 본 실시예의 영상 부호화 방법은 화면 간 예측 모드와 혼합하여 관련된 정보에 대한 신택스를 구성할 수도 있다. 추가적인 관련 예측 모드 정보로는 움직임 또는 이동(motion or displacement) 관련 정보가 이용될 수 있다. 움직임 또는 이동 관련 정보는 여러 벡터 후보 중 최적의 후보 정보, 최적의 후보 벡터와 실제 벡터와의 차분치, 참조 방향, 참조 픽쳐 정보 등을 포함할 수 있다.
도 7은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트를 구성하는 예시도이다. 도 8은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 화면 간 예측을 수행하는 경우의 다른 예를 나타낸 예시도이다.
도 7을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐(current(t))의 현재 블록에 대하여 제1 참조픽쳐 리스트(reference list 0, L0)와 제2 참조픽쳐 리스트(reference list 1, L1)로부터 화면 간 예측을 수행할 수 있다.
도 7 및 도 8을 참조하면, 참조 픽쳐 리스트 0은 현재 픽쳐(t) 이전의 참조 픽쳐로 구성할 수 있는데, t-1, t-2는 각각 현재 픽쳐(t)의 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)에 현재 픽쳐(current(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에 같이 적용될 수도 있음), GOP(Group of Picture) 내의 위치, 시간적 계층 정보(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는 현재 픽쳐의 리스트 포함 여부, 시간적 계층 정보, 슬라이스 타입, GOP 내의 위치 등에 구분될 수 있고, 후보군에 포함 여부를 나누는 요인으로 참조 픽쳐의 POC 또는 참조 픽쳐 인덱스, 참조 예측 방향(현재 픽쳐 전/후), 현재 픽쳐 여부 등에 의해 결정될 수 있다.
전술한 구성에 의하면, 현재 픽쳐에서 화면 간 예측으로 부호화된 참조 블록을 이용할 수 있으므로, I 슬라이스의 움직인 예측에서도 화면 간 예측을 허용 또는 이용할 수 있게 된다.
또한, 참조 픽쳐 리스트를 구성할 때, 슬라이스 타입에 따라 인덱스 할당 또는 리스트 구성 순서를 달리할 수 있다. I 슬라이스의 경우, 현재 픽쳐(current(t))에서 상기 참조 픽쳐 리스트 구성 예와 같이 우선순위를 높게 하여 더 적은 인덱스(예를 들어, idx=0, 1, 2와 같이)를 사용하고, 해당 참조 픽쳐 리스트의 참조 픽쳐 허용 개수(C)를 최대값으로 하는 이진화(고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등) 통해 영상 부호화에서의 비트량을 줄일 수 있다.
또한, P 또는 B 슬라이스의 경우, 현재 픽쳐에서 블록 매칭을 수행하여 현재 블록의 참조 픽쳐를 예측 후보로 선택할 확률이 다른 참조 픽쳐를 통해 예측 후보를 선택하는 확률보다 낮다고 판단되는 상황이라 하면, 현재 픽쳐의 블록 매칭에 대한 우선순위를 뒤로 설정하여 더 높은 인덱스(예를 들어, idx= C, C-1와 같이)를 사용하여 해당 참조 픽쳐 리스트의 참조 픽쳐 허용 개수를 최대값으로 하는 다양한 방법의 이진화를 통해 영상 부호화에서의 비트량을 줄일 수 있다.
위의 실시예에서 현재 픽쳐의 우선순위 설정은 상기 참조 픽쳐 리스트 구성 예에서 설명된 것과 같거나 변형된 방식으로 구성될 수 있다. 또한, 슬라이스 타입에 따라(예를 들어, I 슬라이스) 참조 픽쳐 리스트를 구성하지 않음으로써 참조 픽쳐에 대한 정보를 생략하는 것이 가능하다. 예컨대, 기존의 화면 간 예측을 통해 예측 블록을 생성하되 화면 간 예측 모드에서의 움직임 정보에서 참조 픽쳐 정보를 제외한 나머지로 화면간 예측 정보를 표현할 수 있다.
현재 픽쳐에서 블록 매칭을 수행하는 방식은 슬라이스 타입에 따라 지원 여부를 결정할 수 있다. 예를 들어, 현재 블록에서의 블록 매칭을 I 슬라이스에서는 지원하지만 P 슬라이스나 B 슬라이스에서는 지원하지 않도록 설정할 수도 있고, 다른 예로의 변형 또한 가능하다.
또한, 현재 픽쳐에서 블록 매칭을 지원하는 방식은 픽쳐, 슬라이스, 타일 등 단위로 지원 여부를 결정할 수도 있고, 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도)에 가까운 예측 모드 사이에는 더 세밀한 간격을 할당하고, 수평 모드에 먼 예측 모드에는 넓은 간격을 할당할 수 있다.
위의 실시예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다. 이때, 예측 모드 간의 간격은 각 모드의 방향성을 나타내는 수치 기반으로 계산될 수 있으며, 예측 모드의 방향성은 방향의 기울기 정보 또는 각도 정보로 수치화될 수 있다.
또한, 위의 방법 외에 공간적인 상관성을 이용하는 다른 방법 등을 포함하여 예측 블록을 생성할 수 있다. 예를 들어, 현재 픽쳐를 참조 픽쳐로 삼아 움직임 탐색 및 보상과 같은 화면 간 예측(inter prediction) 방식을 이용한 참조 블록을 예측 블록으로 생성할 수 있다.
예측 블록 생성 단계는 상기 예측 방식에 따라 참조 화소를 사용하여 예측 블록을 생성할 수 있다. 즉, 상기 예측 방식에 따라 기존의 화면 내 예측 방식의 외삽, 내삽, 복사, 평균 등의 방향성 예측 또는 비방향성 예측 방식을 통해 예측 블록을 생성할 수 있고, 화면 간 예측 방식을 사용하여 예측 블록을 생성할 수 있으며, 그 외의 추가적인 방법도 사용될 수 있다.
상기 화면 내 예측 방식은 부호화기/복호화기의 동일한 설정 하에 지원될 수 있으며, 슬라이스 타입, 블록의 크기, 블록의 형태 등에 따라 결정될 수 있다. 화면 내 예측 방식은 상기 언급된 예측 방식 중 최소 하나 이상의 방식 또는 이들의 조합에 따라 지원될 수 있다. 화면 내 예측 모드는 상기 지원되는 예측 방식에 따라 구성될 수 있다. 지원되는 화면 내 예측 모드의 개수는 상기 예측 방식, 슬라이스 타입, 블록의 크기, 블록의 형태 등에 따라 결정될 수 있다. 상기 관련 정보들은 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위에서 설정 및 전송이 가능하다.
예측 모드 부호화를 실행하는 예측 모드 부호화 단계는 부호화 비용 측면에서 각 예측 모드에 따른 부호화 비용이 최적인 모드를 현재 블록의 예측 모드로 결정할 수 있다.
일례로, 예측 모드 부호화부는 예측 모드 비트를 줄이기 위한 목적으로 하나 이상의 이웃 블록의 모드를 현재 블록 모드 예측에 이용할 수 있다. 현재 블록의 모드와 동일할 확률이 높은 모드(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 슬라이스에서의 예측 원리를 설명하기 위한 예시도이다. 도 11은 도 10의 영상 부호화 방법에서 내삽(interpolation)을 수행하는 경우를 설명하기 위한 예시도이다.
도 10을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 모션 예측(motion estimation module) 및 보간(interpolation) 단계들을 포함할 수 있다. 모션 예측 단계에서 생성되는 모션 벡터, 참조 픽쳐 인덱스, 참조 방향에 대한 정보는 보간 단계로 전달될 수 있다. 모션 예측 단계와 보간 단계에서는 복원된 픽쳐 버퍼(decoded picture buffer, DPB)에 저장되는 값을 이용할 수 있다.
즉, 영상 부호화 장치는, 이전의 부호화된 픽쳐들에서 현재 블록과 유사한 블록을 찾기 위해 모션 예측(motion estimation)을 실행할 수 있다. 또한, 영상 부호화 장치는 소수 단위의 정밀도보다 정밀한 예측을 위해 참조 픽쳐의 내삽(interpolation)을 실행할 수 있다. 최종적으로 영상 부호화 장치는 예측 변수(predictor)를 통해 예측 블록을 획득하게 되며, 이 과정에서 나오는 정보는 움직임 벡터(motion vector), 참조 픽쳐 인덱스(reference picture index 또는 reference index), 참조 방향(reference direction) 등이 있으며, 이후 잔차 신호 부호화를 진행할 수 있다.
본 실시예에서는 P 슬라이스나 B 슬라이스에서도 화면 내 예측을 수행하기 때문에 화면 간 예측과 화면 내 예측을 지원하는 도 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는 부호화 단위에서 분할되는 블록의 크기 및 형태에 대한 정보를 의미한다.
본 실시예와 관련하여 사용되는 일부 신택스를 예시하면 다음과 같다.
시퀀스 파라미터에서 sps_curr_pic_ref_enabled_flag라는 신택스는 IBC 사용 여부에 대한 플래그일 수 있다.
픽쳐 파라미터에서 pps_curr_pic_ref_enabled_flag라는 신택스는 픽쳐 단위로 IBC 사용 여부에 대한 플래그일 수 있다.
또한, pps_curr_pic_ref_enabled_flag라는 신택스의 온/오프(on/off)에 따라서 현재 픽쳐를 위한 NumPicTotalCurr를 늘릴지 말지를 결정할 수 있다.
참조 픽쳐 리스트 0를 만드는 과정에서, pps_curr_pic_ref_enabled_flag에 따라 현재 픽쳐를 참조 픽쳐에 넣을지를 결정하라 수 있다.
참조 픽쳐 리스트 1을 만드는 과정에서, pps_curr_pic_ref_enabled_flag에 따라 현재 픽쳐의 참조 픽쳐 리스트 추가 여부를 결정할 수 있다.
위의 구성에 의하면, 현재 픽쳐는 상기의 플래그들에 따라 화면 간(inter) 예측에서의 참조 픽쳐 리스트에 포함될지가 결정될 수 있다.
도 13은 도 12에서 사용하는 현재 픽쳐에서 블록매칭을 통해 예측 블록을 생성할 경우, 화면 간 예측에서와 같이 대칭형(symmetric type) 분할 또는 비대칭형(asymmetric type) 분할을 지원하는 예를 설명하기 위한 예시도이다.
도 13을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성하는 경우, 화면 간 예측에서와 같이 2N×2N, 2N×N, N×2N, N×N과 같은 대칭형(symmetric) 분할을 지원하거나, nL×2N, nR×2N, 2N×nU, 2N×nD와 같은 비대칭형(asymmetric) 분할을 지원할 수 있다.
도 14는 도 9의 화면 내 예측(Intra)과 같이 화면 간 예측(Inter)에서 2N×2N, N×N을 지원할 수 있음을 설명하기 위한 예시도이다. 이는 블록 분할부의 분할 방식에 따라 다양한 블록 크기 및 형태가 결정될 수 있다.
도 14를 참조하면, 본 실시예에 따른 영상 부호화 방법은, 기존의 화면 내 예측에 사용하는 예측 블록 형태와 같이 2N×2N 및 N×N을 지원할 수 있다. 이는 블록 분할부에서 쿼드트리 분할 방식 또는 미리 정의된 소정의 블록 후보군에 따른 분할 방식 등을 통해 정사각 형태를 지원한 예이며, 화면 내 예측에서도 바이너리 트리 분할 방식 또는 미리 정의돈 소정의 블록 후보군에 직사각 형태를 추가하여 다른 블록 형태 또한 지원할 수 있으며, 이에 대한 설정은 부호화기에서 설정이 가능하다.
또한, 화면 내 예측 중 현재 픽쳐에 블록 매칭을 할 경우(ref_idx = curr)에만 스킵(skip)을 적용할 것인지, 기존의 화면 내 예측에도 적용할 것인지, 그 외(else)의 파티션 형태(도 13 참조)를 가진 예측 블록에 대해서도 새로운 화면 내 예측에 적용할 것인지를 부호화기에 설정 가능하다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다.
감산부(205, 도 2 참조)는 부호화할 현재 블록의 화소값으로부터 예측부(200)로부터 생성되는 예측 블록의 화소값들을 감산하여 화소 차이값을 도출함으로써, 잔차 블록을 생성할 수 있다.
변환부(210, 도 2 참조)는 감산부(205)에서 현재 블록과 화면 내 예측 또는 화면 간 예측을 통해 생성된 예측 블록과의 차분치인 잔차 블록을 전달받아 주파수 영역으로 변환한다. 변환 과정을 통해 잔차 블록의 각 화소는 변환 블록의 변환 계수에 대응된다. 변환 블록의 크기 및 형태는 부호화 단위와 같거나 작은 크기를 가질 수 있다. 또한, 변환 블록의 크기 및 형태는 예측 단위와 같을 수도 있고 작을 수도 있다. 영상 부호화 장치는 여러 예측 단위를 묶어서 변환 처리를 수행할 수 있다.
변환 블록의 크기 또는 형태는 블록 분할부를 통해 결정될 수 있으며, 블록 분할에 따라 정사각 형태 또는 직사각 형태의 변환을 지원할 수 있다. 부호화기/복호화기에서 지원되는 변환 관련 설정 (지원되는 변환 블록의 크기, 형태 등)에 따라 상기 블록 분할 동작에 영향을 줄 수 있다.
상기 변환 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 변환 블록의 크기 및 형태가 결정되고, 결정된 각 변환 블록의 영상 데이터 및 결정된 각 변환 블록의 크기 및 형태 등의 분할 정보들을 부호화할 수 있다.
변환은 1차원 변환 매트릭스에 의해 변환될 수 있다. 예컨대, 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete cosine transform, DST), 수평, 수직 단위로 각 변환 매트릭스가 적응적으로 사용될 수 있다. 적응적 사용은 일례로 블록의 크기, 블록의 형태, 블록의 종류(휘도/색차), 부호화 모드, 예측 모드 정보, 양자화 파라미터, 이웃 블록의 부호화 정보 등의 여러 요인을 토대로 결정하는 것을 포함할 수 있다.
예를 들어, 화면 내 예측의 경우, 예측 모드가 수평일 경우에는, 수직 방향으로는 DCT 기반의 변환 매트릭스가, 수평 방향으로는 DST 기반의 변환 매트릭스가 사용될 수 있다. 또한, 예측 모드가 수직일 경우에는, 수평 방향으로는 DCT 기반의 변환 매트릭스가, 수직 방향으로는 DST 기반의 변환 매트릭스가 사용될 수 있다.
변환 매트릭스는 위의 설명에서 나온 것에 한정되지는 않는다. 이에 대한 정보는 묵시적 또는 명시적인 방법을 사용하여 결정될 수 있으며, 블록의 크기, 블록의 형태, 부호화 모드, 예측 모드, 양자화 파라미터, 이웃 블록의 부호화 정보 등의 요인들 중 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있으며, 상기 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송할 수 있다.
여기서, 명시적인 방법을 사용할 경우를 고려하면, 수평 및 수직 방향에 대한 2개 이상의 변환 매트릭스를 후보군으로 두고 있을 경우, 각 방향마다 어떤 변환 매트릭스를 사용했는지에 대한 정보를 보낼 수도 있고, 또는 수평, 수직 방향에 대해 각각 어떤 변환 매트릭스를 사용했는지에 대하여 각각 하나의 쌍으로 묶어 2개 이상의 쌍을 후보군으로 두어 어떤 변환 매트릭스를 수평, 수직 방향에서 사용했는지에 대한 정보를 전송할 수도 있다.
또한, 영상의 특성을 고려하여 부분적인 변환 또는 전체적인 변환을 생략할 수 있다. 예를 들면, 수평과 수직 성분들 중 어느 하나 또는 둘 모두를 생략할 수 있다. 화면 내 예측 또는 화면 간 예측이 잘 이뤄지지 않아 현재 블록과 예측 블록의 차이가 크게 발생할 경우 즉, 잔차 성분이 클 때, 이를 변환할 시 그에 따른 부호화 손실이 커질 수 있기 때문이다. 이는 부호화 모드, 예측 모드, 블록의 크기, 블록의 형태, 블록의 종류(휘도/색차), 양자화 파라미터, 이웃 블록의 부호화 정보 등의 요인들 중 최소 하나의 요인 도는 이들의 조합에 따라 결정될 수 있다. 위의 조건에 따라 묵시적 또는 명시적인 방법을 사용하여 이를 표현할 수 있고, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송이 가능하다.
양자화부(215, 도 2 참조)는 변환부(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)에 저장되어 예측부 및 필터부에 제공될 수 있다.
필터부(235, 330)는 복원 블록에 디블록킹 필터(Deblocking Filter), SAO(Sample Adaptive Offset), ALP(Adaptive Loop Filter) 등과 같은 인루프 필터를 적용할 수 있다. 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해, 복원 블록을 필터링할 수 있다. 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)를 조합하는 것으로 구현 가능하다.
다음으로, 본 발명의 영상 부호화 장치에 채용할 수 있는 보간(interpolation)에 대하여 간략히 설명하면 다음과 같다.
블록 매칭을 통한 예측의 정확성을 높이기 위해 정수 단위보다 정밀한 소수단위의 해상도로 보간을 수행하는데, 이러한 보간법으로는 DCT-IF(discrete cosine transform based interpolation filter) 등의 기술이 있다. HEVC(high efficiency video coding)에서의 보간법으로는 DCT-IF 기술을 사용하고 있는데, 예를 들어 정수 사이의 1/2, 1/4 단위로 화소를 생성하여 참조 픽쳐를 보간하고, 이를 참조하여 블록 매칭을 수행하여 예측 블록을 생성할 수 있다.
Figure PCTKR2016005998-appb-T000001
Figure PCTKR2016005998-appb-T000002
표 1과 표 2는 각각 휘도 성분과 색차 성분에서 사용되는 필터 계수를 보여주고 있는데, 휘도 성분에 대해서는 8-tap, 색차 성분에 대해서는 4-tap의 DCT-IF 필터가 사용된다. 색차 성분에 대해서도 색상 포맷(color format)에 따라 필터를 달리 적용할 수 있다. YCbCr의 4:2:0의 경우에는 표 2에서와 같은 필터를 적용할 수 있고, 4:4:4에서는 표 2가 아닌 표 1과 같은 필터나 그 외의 필터를 적용할 수 있고, 4:2:2일 경우 표 2와 같은 수평 1D 4-탭 필터(horizontal 1D 4-tap filter)와 표 1과 같은 수직 1D 8-탭 필터(vertical 1D 8-tap filter)를 적용할 수 있다.
도 15는 본 발명의 일실시예에 따른 영상 부호화 방법에서 영상의 a, b, c의 위치(x라고 가정)에 있는 화소에 대해서는 수평 1D 필터를 수행하는 과정을 설명하기 위한 도면이다.
도 15에 도시한 바와 같이, 제1 화소(G)와 이에 인접한 제2 화소(H) 사이의 a, b, c의 위치(x라고 가정)에 있는 부화소에 대해서는 horizontal 1D filter를 적용할 수 있다. 이를 수식으로 나타내면 다음과 같다.
x = ( f1*E + f2*F + f3*G + f4*H + f5*I + f6*J + 32 ) / 64
다음, d, h, n의 위치(y라고 가정)에 있는 부화소에 대해서는 vertical 1D filter를 적용할 수 있다. 이를 수식으로 나타내면 다음과 같다.
y = ( f1*A + f2*C + f3*G + f4*M + f5*R + f6*T + 32 ) / 64
그리고 중앙에 있는 부화소들 e,f,g,i,j,k,p,q,r에 대해서는 2D 분할가능 필터(2D separable filter)를 적용할 수 있다. 부화소 e를 예로 들면, a와 수직 방향에 있는 화소들을 먼저 보간한 후 그 화소들을 이용해 보간한다. 그리고 G 및 H 사이의 a를 보간하듯 horizontal 1D filter를 수행하고, 그로 인해 나온 부화소들을 대상으로 vertical 1D filter를 수행하여 e값을 얻을 수 있다. 그리고 색차 신호에 대해서도 이와 비슷한 동작을 수행할 수 있다.
위의 설명은 보간의 일부 설명일 뿐이다. DCT-IF 이외의 다른 필터 또한 사용이 가능하며 소수단위마다 적용되는 필터 종류 및 탭의 개수를 달리할 수 있다. 예를 들어, 1/2에는 8-tap 칼만 필터, 1/4에는 6-tap 위너 필터, 1/8에는 2-tap 선형 필터를 DCT-IF처럼 고정된 계수 또는 필터 계수를 계산하여 필터 계수를 부호화할 수도 있다. 위와 같이, 픽쳐에 대해 하나의 보간 필터를 사용할 수도 있고, 영상에 특성에 따라 영역마다 다른 보간 필터를 사용할 수도 있으며, 다수의 보간 필터를 적용한 2개 이상의 참조 픽쳐들을 생성하고 그 중에 하나를 선택할 수도 있다.
참조 픽쳐의 타입, 시간적 계층, 참조 픽쳐의 상태(예컨대, 현재 픽쳐인지 아닌지) 등의 부호화 정보에 따라 다른 필터가 적용될 수 있다. 위에서 언급한 정보들은 시퀀스, 픽쳐, 슬라이스 등의 단위로 설정이 가능하며, 그 단위로 전송 가능하다.
다음으로 본 실시예에 따른 영상 부호화 방법에 채용할 수 있는 움직임 추정(motion estimation), 움직임 보상(motion compensation) 및 움직임 예측(motion prediction)에 대한 개선된 기술을 상세히 설명하기 전에 이들 용어의 기본적인 의미를 정의하면 다음과 같다.
움직임 추정은 부호화하고자 하는 현재 블록의 움직임을 예측하는데 있어서 영상 프레임을 작은 블록으로 분할하여 시간적으로 이전 또는 이후의 기부호화된 프레임(참조 프레임) 상의 어떤 블록으로부터 이동되었는지를 추정하는 과정을 말한다. 즉, 움직임 추정은 압축하려는 현재 블록의 부호화시에 목표 블록과 가장 유사한 블록을 찾아내는 과정이라고 할 수 있다. 블록 기반의 움직임 추정은 비디오 객체 또는 화면처리단위 블록(macro block 등)이 시간상으로 어느 위치로 움직였는지를 추정하는 과정을 말할 수 있다.
움직임 보상은 현재 영상을 부호화하기 위하여 이전에 부호화된 참조 영상의 적어도 일부 영역을 가져와서 현재 영상을 예측하기 위하여 움직임 추정 과정에서 찾은 최적의 예측 블록에 대한 움직임 정보(모션 벡터, 참조 픽쳐 인덱스)를 바탕으로 현재 블록의 예측 블록을 생성하는 것을 의미한다. 즉, 움직임 보상은 부호화하려는 현재 블록과 가장 유사한 블록이라고 찾아낸 참조 블록과의 차이로써 오차 블록을 만드는 과정을 말할 수 있다.
움직임 예측은 움직임 보상을 위하여 부호화 시에 움직임 벡터를 찾는 것을 의미한다. 움직임 예측의 주요 기술로는 스킵(skip), 시간적 예측, 공간적 예측 등이 있으며, 스킵은 화면의 움직임이 일정하여 영상 부호화 장치에서 예측한 움직임 벡터의 크기가 제로(0)이거나, 잔차가 충분히 작아 무시할 수 있는 경우 해당 영상 블록의 부호화를 생략하고 넘어가는 것을 의미한다. 시간적 예측은 주로 화면 간 예측에 이용될 수 있고, 공간적 예측 또는 시점간 예측은 주로 화면 내 예측에 이용될 수 있다.
화면 간 예측를 통해 나오는 정보는, 참조 픽쳐 리스트 방향을 구분하는 정보(단방향(L0, L1), 양방향), 참조 픽쳐 리스트 내의 참조 픽쳐를 구분하는 인덱스, 움직임 벡터 등을 포함할 수 있다. 시간적인 상관성을 이용하기 때문에 현재 블록과 이웃하는 블록의 움직임 벡터가 같거나 비슷하게 나타나는 특성을 활용할 경우 효율적으로 움직임 정보를 부호화할 수 있다.
도 16은 비교예에 따른 현재 블록과 주변 블록에 대한 예시도이다. 도 17은 다른 비교예에 따른 현재 블록과 주변 블록에 대한 예시도이다. 도 18은 또 다른 비교예에 따른 현재 블록과 주변 블록에 대한 예시도이다.
도 16에 도시한 바와 같이, 현재 블록(current PU)과 주변 블록(A, B, C, D, E)의 대한 예시이다. 현재 블록의 공간적으로 인접한 블록들 즉, 왼쪽 위 블록(A), 위 블록(B), 오른쪽 위 블록(C), 왼쪽 블록(D) 및 왼쪽 아래 블록(E) 중 최소 1개 이상의 블록을 후보로 삼을 수 있고 그 정보를 활용할 수 있다.
또한, 선택된 참조 픽쳐에서 현재 블록에 상응하는 위치에 존재하는 참조 블록(co-located PU)내 블록(F)이나 그 주변 블록(G)을 후보로 삼을 수 있고 그 정보를 활용할 수 있다. 도 16에서는 2가지의 후보만 나타내지만 현재 블록과 동일한 위치의 가운데 블록(F) 이외에, 왼쪽 위, 위, 오른쪽 위, 왼쪽, 왼쪽 아래, 아래, 오른쪽 아래, 오른쪽 중 최소 1개 이상의 블록을 후보로 삼을 수 있다. 이때 후보군에 포함되는 위치는 픽쳐 타입에 현재 블록의 크기, 공간적으로 인접한 후보블록들과의 상관관계 등에 따라 결정될 수 있다. 그리고 선택된 참조 픽쳐는 현재 픽쳐의 이전 또는 이후에 존재하는 픽쳐 간의 거리가 1 이상인 픽쳐를 의미할 수 있다.
또한, 도 17 및 도 18에 도시한 바와 같이, 현재 블록(current PU)의 크기와 위치에 따라 특정한 블록의 정보를 활용하도록 구현될 수도 있다. 용어 예측 유닛(prediction unit, PU)은 예측부의 예측 작업을 수행하는 기본 단위를 지칭할 수 있다.
본 실시예의 영상 부호화 방법에서는 공간적, 시간적으로 인접한 블록의 영역을 다음과 같이 확장할 수 있다.
도 19는 본 발명의 일실시예에 따른 영상 부호화 방법에 채용할 수 있는 현재 블록과 주변 블록에 대한 예시도이다.
도 19를 참조하면, 본 실시예에 따른 영상 부호화 방법은 움직임 정보 예측 후보를 선택하는데 있어서, 현재 블록의 주변 부호화 블록들, 참조 영상에서의 현재 블록과 좌표상 동일하거나 근접한 위치의 블록들(co-located block), 또는 인접하진 않지만 같은 공간에 위치하는 블록들의 움직임 정보를 활용하여 효율적으로 움직임 정보의 후보 블록을 선택할 수 있다. 여기서, 인접하지는 않지만 같은 공간에 위치하는 블록들은 부호화 모드, 참조 픽쳐 인덱스 또는 미리 설정된 좌표 등의 정보를 기반으로 결정되는 현재 블록과 해당 블록 사이에 최소 1개 이상의 다른 블록을 포함하는 블록을 후보로 삼을 수 있다.
움직임 정보의 양을 줄이기 위하여, 영상 부호화 방법은 모션 벡터 카피(motion vector copy, MVC) 또는 모션 벡터 예측(motion vector prediction, MVP)를 사용하여 움직임 정보를 부호화할 수 있다.
모션 벡터 카피는 움직임 벡터를 유도하는 기술로서, 움직임 벡터 차분치(motion vector difference) 또는 참조 픽쳐 인덱스를 보내지 않고, 움직임 벡터 예측값(motion vector predictor)를 그대로 사용한다. 이것은 HEVC의 혼합 모드(merge mode)와 일부 유사지만, 혼합 모드는 공간적으로나 시간적으로 인접한 블록의 모션 벡터(motion vector)를 병합하는 것이라면, 본 실시예의 모션 벡터 카피는 모션 벡터를 공간적 및 시간적으로 인접하지 않는 블록들(일례로, H, I, J)에서도 모션 벡터를 갖다 사용한다는 것을 의미한다. 이러한 의미를 고려할 때, 모션 벡터 카피는 혼합 모드와는 다른 개념이고 더 상위 개념에 있다. 그리고 모션 벡터 예측의 목적은 예측 블록을 생성하는 데 있어서 최소의 모션 벡터 차이를 만드는 것일 수 있다.
모션 벡터 카피는, 도 19에 도시한 바와 같이, 다양한 후보군의 블록으로부터 참조 방향, 참조 픽쳐 인덱스, 움직임 벡터 예측값을 유도할 수 있다. 다양한 후보군의 블록으로부터 n개의 후보 블록을 선정하고, 그 중 최적인 블록에 대한 인덱스 정보를 부호화하여 움직임 벡터를 전송할 수 있다. 여기서, n이 1일 경우, 모션 벡터 카피는 미리 정해진 기준에 따라 우선순위가 제일 높은 블록의 움직임 정보를 가져다 쓸 수 있다. 또한, n이 2 이상일 경우, 모션 벡터 카피는 각기 후보군에 대해 어느 것이 최적인지를 부호화 비용을 고려하여 결정할 수 있다.
전술한 n에 대한 정보는 부호화기나 복호화기에 고정될 수 있고, 별도의 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다. 일례로, 이웃 블록들의 정보에 기반하여 n이 1인지 2 이상인지가 결정될 수 있다. 그 경우, 후보군의 블록으로부터 얻은 움직임 벡터들이 정해진 기준과 비교하여 비슷하면, 2개 이상의 후보군을 만드는 것은 무의미하다고 판단하고 평균 또는 중간(median)(mvA, mvB, …, mvJ)과 같은 방식을 이용하여 고정된 값으로 움직임 벡터 예측값을 생성할 수 있으며, 무의미하다고 판단되지 않으면 2개 이상의 후보군을 두어 최적의 움직임 벡터 예측값을 생성할 수 있다.
모션 벡터 예측도 모션 벡터 카피와 비슷하게 동작할 수 있다. 그러나 우선순위에 대한 기준은 모션 벡터 카피의 것과 같을 수도 있고 다를 수도 있다. 또한, 후보 블록의 개수(n)가 같을 수도 있고 다를 수도 있다. 이에 대한 정보는 부호화기 및/또는 복호화기에 고정될 수도, 따로 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수도 있다.
후보군에 대한 참조 여부에 대한 설정은 현재 픽쳐의 타입, 시간적 계층 정보(temporal id) 등의 정보에 따라 결정될 수도 있으며 이에 대한 정보는 고정되어 사용되거나 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다. 여기서, 후보군에 대한 참조 여부에 대한 설정은 예컨대 공간적으로 인접한 블록(A, B, C, D, E)만 사용하거나, 공간적으로 인접한 블록(A, B, C, D, E)과 시간적으로 인접한 블록(H, I, J)을 사용하거나, 또는 공간적으로 인접한 블록(A, B, C, D, E)과 공간적으로 떨어져 있는 블록(F, G)를 사용하는 설정을 포함할 수 있다.
다음은 "현재 픽쳐에 블록 매칭의 적용이 가능하다"는 설정에 대해 설명하면 다음과 같다.
먼저, I 픽쳐의 경우를 설명하면, 예를 들어, 공간적으로 근접한 블록을 먼저 우선순위에 놓고 그 외의 블록들을 후보군으로 설정할 수 있다. 일례로, 참조 블록들을 E → D → C → B → A → H → I → J의 기재된 순서대로 가용성(availability)을 확인할 수 있다. 가용성은 후보 블록의 부호화 모드, 움직임 정보, 후보 블록의 위치 등으로 판단될 수 있다. 움직임 정보는 움직임 벡터, 참조 방향, 참조 픽쳐 인덱스 등을 포함할 수 있다.
현재 픽쳐가 I 픽쳐이므로, 부호화 모드가 본 실시예의 화면 내 예측(이하, INTER)으로 되어있을 때만 움직임 정보가 존재한다. 그렇기 때문에 우선순위대로 볼 때 먼저 INTER인지 확인한다. 예를 들어, n이 3이고 E가 INTER로 부호화가 되었다면 E는 후보군에서 제외하고 그 다음의 D를 확인한다. D가 INTER로 부호화가 되었다면 현재 픽쳐에서 블록 매칭을 수행하기 때문에 움직임 정보를 갖고 있으며, 이러한 움직임 정보를 토대로 D를 후보군에 추가한다. 그러면 n은 2개가 남는다. 그런 다음, 영상 부호화 장치는 다시 우선순위를 확인해 볼 수 있다. 그렇게 해서 최종 3개의 후보가 채워지면 후보군 찾는 작업을 중단한다.
가용성은 부호화 모드로만 이용하는 것이 아니고 픽쳐, 슬라이스, 타일 등의 경계(boudnary)인 경우에도 이용할 수 있다. 경계인 경우, 가용성은 이용하지 않음(not available)으로 체크된다. 그리고 이미 채워진 후보와 같거나 비슷하다는 판단 결과가 나올 경우, 해당 블록은 후보에서 제외되고, 참조 화소 구성부는 그 다음 후보의 가용성을 체크하게 된다.
여기서 INTER는 기존의 화면 간 예측(inter)과 다르다. 즉, 본 실시예의 INTER 모드는 화면 간 예측(inter) 구조를 활용할 뿐 현재 픽쳐에서 예측 블록을 생성하기 때문에 참조 픽터에서 예측 블록을 생성하는 화면 간 예측과는 차이가 있다. 즉, 본 실시예의 부호화 모드에서는 현재 픽쳐에서 블록 매칭하는 방법을 INTER 모드와 intra(기존 intra와 동일함)로 분류하여 적용할 수 있다.
한편, 처음으로 채워진 후보는 가용성을 체크하지 않을 수 있다. 상황에 따라 체크도 가능하다. 즉, 후보 블록의 움직임 벡터의 범위가 일정 기준 이상이거나 픽쳐, 슬라이스, 타일 등의 경계(boundary)를 넘어가거나 할 때 가용성을 체크하지 않도록 적용할 수 있다.
이하에서는 전술한 부호화 과정에서 참조 블록들(도 19 참조)에 대하여 E → D → C → B → A → H → I → J의 기재된 순서대로 가용성을 체크하고 미리 정해진 개수(일례로, n=3)의 후보 블록을 얻는 과정에 대한 다양한 실시예를 설명하면 다음과 같다.
< 실시예 1 >
E (not coded) → D → C → B → A → H → I → J : E 제외
E (삭제) → D (Inter) → C → B → A → H → I → J : D 포함
E (삭제) → D (포함) → C (Inter) → B → A → H → I → J : C 포함
(블록 C는 유사성 체크(similarity check) 후 다르다고 나옴.)
E (삭제) → D (포함) → C (포함) → B (Intra) → A → H → I → J : B 제외
E (삭제) → D (포함) → C (포함) → B (삭제) → A (Inter) → H → I → J : A 포함 (블록 A는 유사성 체크 후 다르다고 나옴.)
위와 같이 3개의 블록들(D, C, A)을 선택할 수 있다.
< 실시예 2 >
E (Inter) → D → C → B → A → H → I → J : E 포함
E (포함) → D (Inter) → C → B → A → H → I → J : D 포함
(블록 D는 유사성 체크 후 현재 블록과 같거나 비슷하지 않다고 나옴.)
E (포함) → D (포함) → C (Inter) → B → A → H → I → J : C 제외
(블록 C는 유사성 체크 후 같거나 비슷하다고 나옴.)
E (포함) → D (포함) → C (삭제) → B (boundary) → A → H → I → J : B 제외
E (포함) → D (포함) → C (삭제) → B (삭제) → A (Intra) → H → I → J : A 제외
E (포함) → D (포함) → C (삭제) → B (삭제) → A (삭제) → H (Intra) → I → J : H 포함 (블록 H는 유사성 체크 후 다르다고 나옴.)
위와 같이 3개의 블록들(E, D, H)을 선택할 수 있다.
< 실시예 3 >
E (Intra) → D → C → B → A → H → I →J : E 제외
E (삭제) → D (Intra) → C → B → A → H → I → J : D 제외
E (삭제) → D (삭제) → C (Intra) → B → A → H → I → J : C 제외
E (삭제) → D (삭제) → C (삭제) → B (boundary) → A → H → I → J : B 제외
E (삭제) → D (삭제) → C (삭제) → B (삭제) → A (Intra) → H → I → J : A 제외
E (삭제) → D (삭제) → C (삭제) → B (삭제) → A (삭제) → H (Intra) → I → J : H 제외
E (삭제) → D (삭제) → C (삭제) → B (삭제) → A (삭제) → H (삭제) → I (Inter) → J : I 포함
E (삭제) → D (삭제) → C (삭제) → B (삭제) → A (삭제) → H (삭제) → I (포함) → J (Inter) : J 포함 (블록 J는 유사성 체크 후 다르다고 나옴.)
E (삭제) → D (삭제) → C (삭제) → B (삭제) → A (삭제) → H (삭제) → I (포함) → J (포함) : (-a,0) 포함
위와 같이 8개의 참조 블록들에 대한 가용성 체크에서 2개의 참조 블록들만이 후보 블록으로 선택되었으므로, 미리 설정된 후보 블록의 개수(n=3)를 채우기 위해 미리 설정된 고정 좌표 (-a, 0)을 후보로 추가할 수 있다.
< 실시예 4 >
Figure PCTKR2016005998-appb-I000001
위와 같이 8개의 참조 블록들에 대한 가용성 체크에서 1개의 참조 블록(A)만이 후보 블록으로 선택되었으므로, 미리 설정된 후보 블록의 개수(n=3)를 채우기 위해 미리 설정된 두 고정 좌표들 (-a, 0), (0, -b)를 후보로 추가할 수 있다.
위의 실시예 3과 실시예 4에 대하여 보충 설명하면 다음과 같다.
실시예 3에서 정해진 후보군에서 n개의 후보를 찾지 못한 경우, 움직임 벡터 후보로 고정 좌표를 갖는 고정(constant) 후보를 추가할 수 있다. 즉, HEVC의 화면 간 예측 모드에서는 영벡터(zero vector)가 추가될 수 있지만, 본 발명에서처럼 현재 픽쳐에서 블록매칭을 하는 경우, 현재 픽쳐에서 (0,0) 벡터는 존재하지 않기 때문에 실시예 3에서와 같이 미리 설정된 가상 영벡터 (-a, 0)를 추가할 수 있다.
또한, 실시예 4는 하나의 가상 영벡터를 추가한 상태에서도 가용성 체크를 통해 움직임 벡터의 후보 개수를 채우지 못한다면, 미리 설정한 다른 가상 영벡터 (0, -b)를 후보군에 더 추가할 수 있음을 나타낸다. 여기서, (-a, 0)의 a나 (0, -b)의 b는 블록의 가로 또는 세로 크기를 고려하여 다양하게 설정될 수 있다.
또한, 위의 설명에서는 유사성을 체크하여 후보군을 제외하기도 했는데, 이러한 유사성 체크는 수행하지 않도록 설정될 수도 있다. 그 경우, 어느 것을 보낼지에 대한 정보는 보낼 필요가 없기 때문에, n이 2라고 가정할 경우, 두 값의 평균을 사용하는지, 혹은 둘 중에 어느 하나를 사용하는지를 미리 정해진 설정에 따라 자동적으로 결정할 수 있고, 이때 2개 중 어떤 것을 사용할 것인지에 대한 인덱스 정보는 생략될 수 있다. 즉, 움직임 벡터 예측값 인덱스를 생략할 수 있다.
위의 설명에서는 전체 후보군을 하나의 그룹으로 구성하여 가용성을 확인하지만, 본 발명은 그러한 구성으로 한정되지 않고, 두 개 이상의 그룹으로 나누어 각각의 후보군에서 후보의 가용성을 확인하여 후보를 정할 수 있다. 여기에서 후보 블록의 개수(n)을 2로 가정하면, 각 그룹 내의 최대 후보 수를 동일 또는 개별적으로 정할 수 있다. 일례로, 아래의 실시예에서와 같이, 그룹 1_1에서 1개, 그룹 1_2에서 1개를 각각 정할 수 있다. 물론, 각 그룹의 우선순위도 별도로 존재할 수 있다. 또한, 그룹 1_1과 그룹 1_2에 대해 먼저 가용성 체크를 수행한 후 움직임 벡터의 후보 개수에 대한 기준을 만족하지 못하는 경우, 후보수를 채우기 위해 그룹 2를 적용할 수 있다. 그룹 2는 고정 좌표를 갖는 고정(constant) 후보를 포함할 수 있다.
예를 들면, 그룹 1_1, 그룹 1_2 및 그룹 2의 후보, 각 그룹의 가용성 체크 순서 또는 우선순위, 그리고 그룹 구분 기준을 순서대로 나타내면 다음과 같다.
그룹 1_1 = {A, B, C, I, J}, ( C → B → A → I → J), 현재 블록 기준으로 위쪽 블록들
그룹 1_2 = {D, E, H}, (E → D → H), 현재 블록 기준으로 왼쪽 및 왼쪽 아래 블록들
그룹 2 = {고정 후보}, (-a, 0) → (0, -b), (-a, 0)
위의 내용을 정리하면, 본 실시예의 영상 부호화 장치는 모션 벡터 카피 후보 또는 모션 벡터 예측 후보를 공간적으로 탐색하고 탐색 결과에 따라 미리 정해진 고정(constant) 후보 순으로 후보군을 생성할 수 있다.
이하에서는 모션 벡터 카피(MVC)와 모션 벡터 예측(MVP)에 대해서 구분하여 설명하기로 한다. 그 이유는, 스케일링 과정의 포함 여부가 다르기 때문이다.
모션 벡터 예측(MVP)에 대해 먼저 설명하면 다음과 같다.
P 픽쳐나 B 픽쳐의 경우
위에서 언급한 후보들(A, B, C, D, E, F, G, H, I, J)에 더하여 시간적인 후보(F, G)도 포함하여 설명하기로 한다. 본 실시예에서는 후보를 공간적으로 탐색하고, 시간적으로 탐색하고, 혼합 리스트를 구성하여 탐색하고, 고정(constant) 후보를 탐색하는 기재된 순서대로 진행한다고 가정한다.
먼저, 후보들의 우선순위를 정하고 그에 따라 가용성(availability)을 체크한다. 움직임 벡터의 후보 개수(n)는 2로 설정하고, 우선순위는 괄호 안에 기재한 바와 같다고 가정한다.
예를 들면, 공간적으로 탐색할 때 다음과 같은 그룹들로 분류할 수 있다.
그룹 1_1 = {A, B, C, I, J}, ( C → B → A → I → J)
그룹 1_2 = {D, E, H}, (D → E → H)
본 실시예에서 두 개의 그룹들 중 그룹 1_1은 현재 블록을 기준으로 바로 위쪽, 왼쪽 위쪽, 그리고 오른쪽 위쪽에 있는 블록들을 포함하고, 그룹 1_2는 현재 블록을 기준으로 바로 인접한 왼쪽, 바로 인접하지 않은 왼쪽, 그리고 왼쪽 아래에 있는 블록들을 포함한다.
다른 실시예로서, 세 개의 그룹들로 구분하여 움직임 벡터의 후보 블록을 공간적으로 탐색할 수 있다. 세 개의 그룹은 다음과 같이 분류 가능하다.
그룹 1_1 = {A, B, C}, (C → B → A)
그룹 1_2 = {D, E}, (D → E)
그룹 1_3 = {H, I, J}, (J → I →H)
본 실시예에서 세 개의 그룹들 중 그룹 1_1은 현재 블록을 기준으로 바로 인접한 위쪽, 인접한 왼쪽 위쪽, 그리고 인접한 오른쪽 위쪽에 있는 블록들을 포함하고, 그룹 1_2는 현재 블록을 기준으로 바로 인접한 왼쪽과 바로 인접한 왼쪽 아래에 있는 블록들을 포함하며, 그룹 1_3은 현재 블록과 하나 이상의 블록 간격을 둔 인접하지 않은 블록들을 포함한다.
또 다른 실시예로서, 또 다른 방식으로 세 개의 그룹들로 구분하여 움직임 벡터의 후보 블록을 공간적으로 탐색할 수 있다. 세 개의 그룹은 다음과 같이 분류 가능하다.
그룹 1_1 = {B}
그룹 1_2 = {D}
그룹 1_3 = {A, C, E}, (E → C → A)
본 실시예에서 세 개의 그룹들 중 그룹 1_1은 현재 블록을 기준으로 수직 방향에 위치하는 블록을 포함하고, 그룹 1_2는 현재 블록을 기준으로 수평 방향에 위치하는 인접한 블록을 포함하고, 그룹 1_3은 현재 블록을 기준으로 나머지 인접한 블록들을 포함한다.
위에서 살핀 바와 같이, P 픽쳐나 B 픽쳐에서는 참조 방향이나 참조 픽쳐 등의 참고 가능한 정보가 많기 때문에 그에 따라 후보군을 설정할 수 있다. 현재 블록을 기준으로 현재 블록과 참조 픽쳐가 다른 후보 블록에 대해서는 후보군에 포함할 수도 있고, 그 반대로 현재 블록의 참조 픽쳐와 후보 블록의 참조 픽쳐와의 시간적 거리(picture of count, POC)를 고려하여 해당 블록의 벡터를 스케일링한 후후보군에 추가할 수도 있다. 또한, 현재 블록의 참조 픽쳐가 어떤 픽쳐인지에 따라 스케일링한 후보군을 추가할 수도 있다. 또한, 현재 블록의 참조 픽쳐와 후보 블록의 참조 픽쳐와의 시간적인 거리가 일정 거리를 넘을 때는 후보군에서 제외하고 그 이하일 때는 스케일링한 블록을 후보군에 포함할 수도 있다.
전술한 유사성 체크(similarity check)란, 이미 예측 후보군에 포함된 움직임 벡터와 새롭게 추가하고자 하는 움직임 벡터가 얼마나 유사한지를 비교하고 결정하는 과정이다. 정의에 따라서, x, y 성분이 완벽하게 일치할 때, 참(true)이 되도록 설정되거나, 일정 문턱치(theshold value) 범위 이하의 차이를 가질 때 참(true)이 되도록 설정될 수 있다.
도 20은 본 발명의 일실시예에 따른 영상 부호화 방법에서 현재 블록의 참조 픽쳐와 후보 블록의 참조 픽쳐와의 시간적인 거리가 일정 거리 이상일 때는 후보군에서 제외하고 그 거리 미만일 때는 거리에 따라 스케일링한 후 후보군에 포함하는 경우를 설명하기 위한 예시도이다. 도 21은 본 발명의 일실시예에 따른 영상 부호화 방법에서 현재 블록이 참조하는 픽쳐가 현재 픽쳐와 다른 픽쳐일 때 현재 픽쳐를 예측 후보군에 추가하는 경우를 설명하기 위한 예시도이다. 그리고 도 22는 본 발명의 일실시예에 따른 영상 부호화 방법에서 현재 블록이 참조하는 픽쳐가 현재 픽쳐일 때 현재 픽쳐를 예측 후보군에 추가하는 경우를 설명하기 위한 예시도이다.
본 실시예에 따른 영상 부호화 방법은, 기준 시간(t)의 현재(current) 픽쳐에 대해 시간적으로 일정 시간(t-1, t-2, t-3, t-4, t-5)앞서 부호화된 참조 픽쳐들(rf1, rf2, rf3, rf4, rf5)과 현재 픽쳐의 현재 블록에 앞서 부호화된 현재 픽쳐 내 후보 블록들로부터 현재 블록의 움직임 정보 예측 후보를 선택할 수 있다.
도 20을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐(current(t))에 대해 시간적으로 앞서 부호화되는 참조 픽쳐들(rf1, rf2, rf3, rf4, rf5)로부터 현재 블록의 움직임 정보 예측 후보를 선택할 수 있다.
일례로, 현재 블록(B_t)이 제2 참조픽쳐(rf1)를 참조하여 부호화하는 경우, 제2 참조픽쳐(rf1)를 기준으로 시간적인 거리에서 3 이상의 차이가 있는 픽쳐를 참조하고 있는 왼쪽 위쪽 블록(A)의 경우, 스케일링이 허용되지 않아 해당 움직인 벡터(mvA_x', mvA_y')를 후보군에 포함하지 않지만, 그 외의 블록들은 t-2를 중심으로 3 미만의 시간적인 거리의 차이를 두고 있기 때문에 스케일링을 통해 후보군에 포함된다. 후보군에 포함되는 움직임 벡터의 집합(MVS)는 다음과 같다.
MVS = {(mvB_x', mvB_y'), (mvC_x',mvC_y'), (mvD_x', mvD_y'), (mvE_x', mvE_y')}
즉, 움직임 벡터를 후보군에 포함할 것이지 포함하지 않을 것인지에 대한 기준은 현재 블록이 참조하고 있는 픽쳐가 기준이 될 수도 있고 현재 픽쳐가 중심이 될 수도 있다. 이와 같이, 픽쳐 간의 거리를 통해 후보군에 움직임 벡터의 추가 여부를 결정할 수 있으며, 이에 대한 정보 예컨대 문턱치(threshold) 또는 어떤 픽쳐를 기준으로 하는지 등에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등을 통해 전송될 수 있다. 도 20에서 실선은 각 블록의 움직임 벡터를 의미하고, 점선은 현재 블록이 참조하는 픽쳐에 맞게 스케일링한 것을 의미한다. 이를 수식으로 나타내면 아래의 수학식 1과 같다.
[수학식 1]
scaled factor = (POCcurr - POCcurr_ref) / (POCcan - POCcan_ref)
수학식 1에서 POCcurr은 현재 픽쳐의 POC, POCcurr_ref는 현재 블록이 참조하는 픽쳐의 POC, POCcan은 후보 블록의 POC, POCcan_ref는 후보 블록이 참조하는 픽쳐의 POC를 의미한다. 여기서, 후보 블록의 POC는 공간적으로 이웃하는 후보블록이면 현재와 같은 POC, 시간적으로 프레임 내 동일한 위치에 대응되는 블록(co-located block)이면 현재와 다른 POC를 나타낼 수 있다.
예를 들면, 도 21에 나타내 바와 같이, 현재 블록(B_t)과 참조하는 픽쳐가 다른 경우에 스케일링을 하게 되면, 해당 움직임 벡터를 스케일링한 움직임 벡터들 예컨대, {(mvA_x', mvA_y'), (mvC_x', mvC_y'), (mvD_x', mvD_y'), (mvE_x', mvE_y')}를 후보군에 포함할 수도 있다. 이것은 HEVC처럼 참조 픽쳐 인덱스가 다르더라도 후보군에 포함하는 일반적인 경우와 달리 참조 픽쳐가 무엇인가에 따라 제약을 둘 수 있음을 나타낸다.
또한, 도 21에 나타내 바와 같이, 현재 블록(B_t)이 참조하는 픽쳐가 현재 픽쳐(t)와 다른 픽쳐(t-1, t-2, t-3)일 경우, 즉 일반적인 화면 간 예측(Inter)의 경우, 후보군의 픽쳐가 현재 픽쳐(t)를 가리킬 때는 후보군에 제외하고, 현재 픽쳐가 현재 블록(B_t)처럼 현재 픽쳐와 다른 픽쳐일 경우에만 해당 움직임 벡터{(mvA_x, mvA_y), (mvC_x, mvC_y), (mvD_x, mvD_y), (mvE_x, mvE_y)}를 후보군에 포함시킬 수 있다.
또한, 도 22에 나타내 바와 같이, 현재 블록(B_t)이 참조하는 픽쳐가 현재 픽쳐(t)일 때만 현재 픽쳐(t) 내 움직임 벡터들{(mvB_x,vB_y), (mvC_x, mvC_y)}이 후보군에 추가될 수 있다. 다른 표현으로는, 같은 참조 픽쳐를 가리킬 때 즉, 참조 픽쳐 인덱스 비교를 통해 동일한 픽쳐를 가리킬 때 해당 움직임 벡터를 후보군에 추가할 수 있다. 그 이유는 현재 픽쳐(t)에서 블록 매칭을 수행하기 때문에 다른 픽쳐를 참조하는 기존의 화면 간 예측(inter)에서의 움직임 정보는 필요가 없기 때문이다. 또한, 현재 픽쳐(t)에서 블록 매칭을 수행하는 경우를 제외하더라도, H.264/AVC에서와 같이 참조 픽쳐 인덱스가 다른 경우는 후보군에서 제외하는 방식으로 구현될 수 있다.
본 실시예에서는 참조 픽쳐가 현재 픽쳐를 가리킨다는 조건을 예로 들고 있지만 참조 픽쳐가 현재 픽쳐 아닌 경우에로 확장될 수 있다. 예를 들어, '현재 블록이 가리키고 있는 픽쳐보다 더 먼 픽쳐를 사용하는 블록은 제외한다'와 같은 설정을 사용할 수 있다. 도 16에 보면, 일부 블록(A, B, E)는 시간적 거리 t-2보다 더 멀리 있기 때문에 후보군에 제외될 수 있다.
본 실시예에서는 현재 블록과 참조픽쳐가 다르더라도 스케일링을 통해 후보군에 넣을 수 있다. 움직임 벡터의 후보 개수(n)을 2로 가정한다. 아래의 그룹 1_1과 그룹 1_2는 현재 블록의 참조 픽쳐가 현재 픽쳐가 아닌 경우이다.
그룹 1_1은 현재 블록을 기준으로 근접하거나 근접하지 않지만 위쪽에 있는 블록들(A, B, C, I, J)을 포함하고, 이 블록들의 가용성 체크를 위한 우선순위는 아래에 기재한 바와 같다.
우선순위: C → B → A → I → J → C_s → B_s → A_s → I_s → J_s
그룹 1_2는 현재 블록을 기준으로 근접하거나 근접하지 않는 왼쪽과 왼쪽 아래의 블록들(D, E, H)을 포함하고, 이 블록들의 가용성 체크를 위한 우선순위는 아래와 같다.
우선순위: D → E → H → D_s → E_s → H_s
위의 우선순위에서 블록 기호에 첨자(s)를 붙여 나타낸 블록은 스케일링을 수행한 블록을 지칭한다.
한편, 본 실시예의 변형예에서는, 그룹 1_1의 일부 블록들(A, B, C, I, J)이나 그룹 1_2의 일부 블록들(D, E, H)에 대하여 정해진 우선순위대로 먼저 가용성을 확인한 다음, Inter로 부호화되었지만 현재 블록의 참조 픽쳐와 달라서 후보군에 이용할 수 없음(not available)으로 판단된다면, 현재 픽쳐(t)와 후보 블록의 참조 픽쳐의 거리에 맞춰 스케일링을 수행한 후 스케일링한 블록들(C_s, B_s, A_s, I_s, J_s, D_s, E_s, H_s)에 대하여 미리 정해진 우선순위에 따라 추가적으로 가용성을 확인할 수 있다. 전술한 가용성 체크에 의하면, 영상 부호화 장치는 각각의 그룹에서 1개의 후보씩 총 2개의 후보를 결정할 수 있고, 후보군 중 최적의 후보 블록의 움직임 벡터를 현재 블록의 움직임 벡터 예측값으로 사용할 수 있다.
한편, 하나의 그룹 예컨대 그룹 1_1에서 하나의 후보 블록도 얻지 못한 경우, 다른 그룹 1_2에서 2개의 후보 블록을 찾는 것도 가능하다. 즉, 공간적으로 인접한 블록으로부터 2개의 후보가 채워지지 않았다면 시간적 후보군에서 후보 블록을 찾을 수 있다.
일례로, 현재 블록의 참조 픽쳐가 현재 픽쳐일 경우, 시간적으로 인접한 참조 픽쳐 내 동일한 위치에 위치하는 블록(co-located block)과 이 블록을 스케일링한 블록들 이용할 수 있다. 이러한 블록들(G, F, G_s, F_s)은 다음과 같은 우선순위 (G → F → G_s → F_s)를 가질 수 있다.
공간적으로 인접한 후보 블록들의 처리 과정과 같이, 우선순위에 맞춰 가용성을 확인한다. 후보 블록의 픽쳐와 후보 블록의 참조 픽쳐의 거리가 현재 픽쳐와 현재 블록의 참조 픽쳐와의 거리가 다른 경우, 스케일링 과정을 거친 후보 블록에 대해서도 가용성을 확인할 수 있다. 현재 블록의 참조 픽쳐가 현재 픽쳐를 가리킬 경우엔 수행하지 않을 수 있다.
혼합 리스트
현재 블록의 양방향 예측을 수행하여 참조 픽쳐 리스트(L0, L1)에 존재하는 참조 픽쳐에 각각의 움직임 정보가 있다고 할 경우. 미리 설정된 후보군의 우선순위에 따라 가용성(availability)을 확인한다. 이 경우 우선순위는 양방향 예측으로 부호화된 것을 먼저 확인한다.
만약 각각의 참조 픽쳐가 다를 경우, 스케일링을 수행한다. 앞서 공간적, 시간적으로 탐색하였을 때, 양방향 예측된 블록들만 후보군에 넣었을 때, 그리고 최대 후보수를 넘지 않았을 때에는 앞서 수행한 후보 블록 중 단방향 예측으로 부호화된 블록들을 예비 후보군에 넣은 후에 이들 후보들의 조합으로 양방향 예측을 위한 후보를 만들 수 있다.
Figure PCTKR2016005998-appb-T000003
우선 현재 블록의 양방향 예측의 움직임 정보는, L0에서 1번, L1에서 0번의 참조 픽쳐에서 참조된다고 가정하자. 표 5(a)의 경우 첫 번째로 후보에 들어간 블록의 움직임 정보는 (mvA1, ref1)와 (mvA2, ref0), 그리고 두 번째로 후보에 들어간 블록의 움직임 정보는 (mvB1’, ref1)와 (mvB2’, ref0)라고 하자. 여기에서 아포스트로피(’)의 의미는 스케일링된 벡터이다. 공간적, 시간적 탐색까지 마친 후의 후보수가 2개라고 할 경우, 다만 n은 5라고 가정하면, 앞선 단계에서 단방향 예측된 블록들을 미리 설정된 우선순위에 따라 예비 후보로 넣을 수 있다.
표 3(a)에서는 아직까지 최대 후보수만큼 채우지 못했기 때문에 나머지 움직임 벡터들 mvC, mvD, mvE를 이용한 스케일링된 단방향의 후보들을 조합하여 새로운 후보를 추가할 수 있다.
표 3(b)에서 각각 단방향 예측된 블록의 움직임 정보가 현재 블록의 참조 픽쳐에 따라 스케일링 된다. 여기에서 단방향의 후보들로 새로운 조합을 만드는 예를 선보였으나, 이미 추가된 양방향의 참조 픽쳐들(L0, L1) 각각의 움직임 정보들로 새로운 후보의 조합이 가능할 수 있다. 이 부분은 단방향의 예측 등의 상황에서는 수행하지 않는다. 또한, 현재 블록의 참조 픽쳐가 현재 픽쳐일 경우에도 수행하지 않는다.
고정(constant) 후보
만약 위의 과정을 통해 최대 후보수 n개(본 실시예에서는 2로 가정함)의 후보 블록을 구성하지 못하는 경우, 미리 설정된 고정 좌표를 갖는 고정(constant) 후보를 추가할 수 있다. (0,0), (-a,0), (-2*a,0), (0,-b)와 같은 고정 좌표를 갖는 고정 후보를 사용할 수 있으며, 최대 후보수에 맞춰 고정 후보의 개수를 설정할 수 있다.
위와 같은 고정 좌표를 설정할 수도 있고, 위의 과정을 통해 현재까지 후보군에 포함된 최소 2개 이상의 움직임 벡터의 평균, 가중치 평균, 중간값 등의 과정을 통해 고정 후보로 추가할 수 있다. 만약 n이 5이고 현재까지 3개가 후보{(mvA_x,mvA_y), (mvB_x, mvB_y), (mvC_x, mvC_y)}로 등록되어 있다면, 남은 2개의 후보를 채우기 위해 미리 정해진 우선순위를 가진 고정 후보들을 포함하는 후보군을 두고 그에 따른 우선순위에 따라 고정 후보를 추가할 수 있다. 고정 후보군은 예를 들면 {(mvA_x + mvB_x)/2, (mvA_y + mvB_y)/2), ((mvA_x + mvB_x + mvC_x)/3, (mvA_y + mvB_y + mvC_y)/3), (median(mvA_x, mvB_x, mvC_x), median(mvA_y, mvB_y, mvC_y)) 등과 같은 고정 후보들을 포함할 수 있다.
또한, 현재 블록의 참조 픽쳐에 따라 고정 후보를 다르게 설정할 수 있다. 예를 들어, 현재 픽쳐가 참조 픽쳐일 때는 (-a,0), (0,-b), (-2*a,0)과 같이 고정 후보를 설정할 수도 있고, 현재 픽쳐가 참조 픽쳐가 아닐 때는 (0,0), (-a,0), (average(mvA_x, …), average(mvA_y, …))과 같이 설정할 수도 있다. 이에 따른 정보는 부호화기나 복호화기에 미리 설정할 수 있고, 또는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.
이하에서는 고정 후보를 적용한 실시예들을 예를 들어 설명하기로 한다. 아래의 실시예들에서 n을 3이라고 가정한다.
<실시예 1 : n=3>
현재 블록의 참조 픽쳐는 현재 픽쳐일 때이고, 현재 블록(B_t)의 참조 픽쳐가 두 참조 픽쳐(rf1, rf0)라고 가정한다. 참조 픽쳐와 기타 픽쳐를 나타내는 rf0, rf1, rf2, rf3, rf4, rf5 등에서 숫자 0, 1, 2, 3, 4, 5는 본 실시예에서만 적용되는 예일 뿐 어떤 의미를 특정하지는 않는다.
(공간적 탐색: E → D → A → B → C → E_s → D_s → A_s → B_s → C_s)
E (Inter, rf0) → D → A → B → C → E_s → D_s → A_s → B_s → C_s : E 제외 (현재 블록의 참조 픽쳐는 현재 픽쳐이기 때문에)
E (삭제) → D (Inter, rf2) → A → B → C → E_s → D_s → A_s → B_s → C_s : D 제외
E (삭제) → D (삭제) → A (Inter, rf1) → B → C → E_s → D_s → A_s → B_s → C_s : A 포함
E (삭제) → D (삭제) → A (포함) → B (Inter, rf1) → C → E_s → D_s → A_s → B_s → C_s : B 포함 (유사성 체크 후 다르다고 나왔기 때문에)
E (삭제) → D (삭제) → A (포함) → B (포함) → C (Intra) → E_s → D_s → A_s → B_s → C_s : C 제외
E (삭제) → D (삭제) → A (포함) → B (포함) → C (삭제) → E_s → D_s → A_s → B_s → C_s : E_s 제외 (현재 블록의 참조 픽쳐가 현재 픽쳐이기 때문에 스케일링할 필요도 없이 제외)
E (삭제) → D (삭제) → A (포함) → B (포함) → C (삭제) → E_s (삭제) → D_s → A_s → B_s → C_s : D_s 포함 (유사성 체크 후 다르다고 나왔기 때문에. 그리고 D에서 참조 픽쳐가 달라서 제외되었고 여기에선 스케일링 되었기 때문에 참조 픽쳐인지를 비교할 필요가 없음)
<실시예 2 : n=3>
현재 블록의 참조 픽쳐는 현재 픽쳐일 때이고, 현재 블록의 참조 픽쳐는 하나의 참조 픽쳐(rf0)인 경우이다.
(공간적 탐색: E → D → A → B → C → E_s → D_s → A_s → B_s → C_s)
E (Inter, rf1) → D → A → B → C → E_s → D_s → A_s → B_s → C_s : E 제외
E (삭제) → D (Intra) → A → B → C → E_s → D_s → A_s → B_s → C_s : D 제외
E (삭제) → D (삭제) → A (Inter, rf0) → B → C → E_s → D_s → A_s → B_s → C_s : A 포함
E (삭제) → D (삭제) → A (포함) → B (Inter, rf0) → C → E_s → D_s → A_s → B_s → C_s : B 포함 (유사성 체크 결과에 따름)
E (삭제) → D (삭제) → A (포함) → B (포함) → C (Intra) → E_s → D_s → A_s → B_s → C_s : C 제외
E (삭제) → D (삭제) → A (포함) → B (포함) → C (삭제) → E_s → D_s → A_s → B_s → C_s : E_s부터 C_s 제외
아직 3개를 못 채웠으므로 고정 후보를 적용할 수 있고, 혹은 추가적인 후보군 H, I, J 등을 체크할 수 있다.
<실시예 3 : n=3>
현재 블록의 참조 픽쳐는 현재 픽쳐가 아닐 때, 현재 블록의 참조 픽쳐는 하나의 참조 픽쳐(rf1)이고, 그리고 현재 블록의 참조 픽쳐와의 거리가 2 이상인 참조 픽쳐는 후보군에 제외하는 조건을 추가한다. 여기에서 참조 픽쳐(rfx-1)의 (t-x)의 숫자 x를 순수하게 현재 픽쳐(t)부터의 거리라고 하면 (t-2)부터는 스케일링을 지원하지 않을 수 있다.
(공간적 탐색: E → D → A → B → C → E_s → D_s → A_s → B_s → C_s)
E (Intra) → D → A → B → C → E_s → D_s → A_s → B_s → C_s : E 제외
E (삭제) → D (Inter, rf2) → A → B → C → E_s → D_s → A_s → B_s → C_s : D 제외
E (삭제) → D (삭제) → A (Inter, rf1) → B → C → E_s → D_s → A_s → B_s → C_s : A 포함
E (삭제) → D (삭제) → A (포함) → B (Inter, rf3) → C → E_s → D_s → A_s → B_s → C_s : B 제외
E (삭제) → D (삭제) → A (포함) → B (삭제) → C (Inter, rf2) → E_s → D_s → A_s → B_s → C_s : C 제외
E (삭제) → D (삭제) → A (포함) → B (삭제) → C (삭제) → E_s (Intra) → D_s → A_s → B_s → C_s : E_s 제외
E (삭제) → D (삭제) → A (포함) → B (삭제) → C (삭제) → E_s (삭제) → D_s → A_s → B_s → C_s : D_s 포함 (유사성 체크, 스케일링한 움직임 벡터를 사용)
E (삭제) → D (삭제) → A (포함) → B (삭제) → C (삭제) → E_s (삭제) → D_s (포함) → A_s → B_s → C_s : A_s 제외 (이미 A가 포함)
E (삭제) → D (삭제) → A (포함) → B (삭제) → C (삭제) → E_s (삭제) → D_s (포함) → A_s (삭제) → B_s → C_s : B_s 제외 (참조 픽쳐가 2 이상이기 때문에)
E (삭제) → D (삭제) → A (포함) → B (삭제) → C (삭제) → E_s (삭제) → D_s (포함) → A_s (삭제) → B_s (삭제) → C_s : C_s 포함 (유사성 체크, 스케일링한 움직임 벡터 사용)
<실시예 4 : n=3>
현재 블록의 참조 픽쳐는 현재 픽쳐가 아닐 때, 현재 픽쳐는 특정 참조 픽쳐(rf1)임을 가정한다.
(공간적 탐색 : 공간적 탐색 과정을 통해 2개의 움직임 벡터 후보가 선택됨)
(시간적 탐색 : G → F → G_s → F_s)
G (Intra) → F → G_s → F_s : G 제외
G (삭제) → F (Inter, rf3) → G_s → F_s : F 제외 (여기에서 스케일된 팩터(scaled factor)가 1이 아니라고 가정한다. 즉, 현재 픽쳐와 현재 블록의 참조 픽쳐의 거리가 co-located block의 픽쳐와 해당 블록의 참조 픽쳐의 거리가 다르다.)
G (삭제) → F (삭제) → G_s → F_s : G_s 제외 (G가 Intra 이기 때문에)
G (삭제) → F (삭제) → G_s (삭제) → F_s : F_s 포함 (유사성 체크 후 다르다고 나왔기 때문이다. 여기에서 움직임 벡터는 스케일링된 벡터이기 때문에 어느 참조 픽쳐인지를 비교할 필요가 없다)
이하에서는 모션 벡터 카피(MVC)에 대해서 좀더 상세히 설명하기로 한다.
P 픽쳐나 B 픽쳐에 대한 설명
본 실시예에서는 시간적인 후보(F, G)도 포함한다고 가정한다. 후보군은 A, B, C, D, E, F, G, H, I, J를 포함한다. 탐색 순서가 정해져 있는 건 아니지만 여기에서는 MVC 후보를 공간적으로 탐색하고, 시간적으로 탐색하고, 혼합 리스트를 구성하여 탐색하고, 고정(constant) 후보를 추가하는 순으로 진행한다고 가정한다.
즉, 앞에 설명한 부분도 이와 같이 탐색 순서를 임의로 정해놓은 것이지 미리 정해진 순서를 사용한다는 것이 아니다. 우선순위를 정해두고 그에 따른 가용성을 체크한다. n을 5, 우선순위는 괄호안과 같다고 가정한다.
이하의 설명에서는 전술한 모션 벡터 예측(MVP)에서의 차이 부분에 대해서만 설명하기로 한다. MVP 부분은 앞 부분에서 스케일링에 대한 부분만 빼고 아래의 내용을 첨부하여 작성할 수 있다. 공간적인 후보에 대해서는 스케일링 과정은 생략한 채 가용성을 확인할 수 있다. 다만, MVC와 비슷하게 참조 픽쳐의 타입, 현재 픽쳐 또는 현재 블록의 참조 픽쳐와의 거리 등을 후보군에서 제외할 수도 있다.
혼합 리스트가 존재하는 경우, 아래의 표 4와 같이 현재까지 추가된 후보들의 조합으로 양방향 예측을 위한 후보를 만들 수 있다.
Figure PCTKR2016005998-appb-T000004
표 4(a)에 나타낸 바와 같이, 참조 리스트 LO를 사용하는 후보와 참조 리스트 L1 사용하는 후보를 조합하여 새로운 후보를 움직임 벡터 후보군에 추가할 수 있다. 미리 정해진 움직임 벡터 개수인 5개를 채우지 못하는 경우, 표 4(b)에 나타낸 바와 같이, L0의 다음 후보와 L1을 사용하는 후보를 조합하여 새롭게 후보에 추가할 수 있다.
전술한 움직임 벡터 후보 선택 과정을 예를 들어 설명하면 다음과 같다. 아래의 예에서 n은 3이라고 가정한다.
<실시예 5: n=3>
현재 블록의 참조 픽쳐는 현재 픽쳐가 아닐 때, 현재 블록의 참조 픽쳐 ref = 1이다. (공간적 탐색 : B → D → C → E → A → J → I → H)
B (Inter, rf3) → D → C → E → A → J → I → H : B 포함
B (포함) → D (Inter, rf1) → C → E → A → J → I → H : D 포함 (similarity check)
B (포함) → D (포함) → C (Intra) → E → A → J → I → H : C 제외
B (포함) → D (포함) → C (삭제) → E (Inter, rf0) → A → J → I → H : E 제외
B (포함) → D (포함) → C (삭제) → E (삭제) → A (Inter, rf3) → J → I → H : A 포함 (similarity check)
<실시예 6: n=3>
현재 블록의 참조 픽쳐는 현재 픽쳐일 때를 예를 들면 다음과 같다.
(공간적 탐색 : B → D → C → E → A → J → I → H)
B (Inter, rf1) → D → C → E → A → J → I → H : B 제외
B (삭제) → D (Intra) → C → E → A → J → I → H : D 제외
B (삭제) → D (삭제) → C (Inter, rf0) → E → A → J → I → H : C 포함
B (삭제) → D (삭제) → C (포함) → E (Inter, rf0) → A → J → I → H : E 포함 (similarity check)
B (삭제) → D (삭제) → C (포함) → E (포함) → A (Inter, rf2) → J → I → H : A 제외
B (삭제) → D (삭제) → C (포함) → E (포함) → A (삭제) → J (Inter, rf0) → I → H : J 포함 (similarity check)
위와 같이 최적의 움직임 정보의 후보를 찾는 MVP, MVC 등의 모드에 따라 부호화할 수 있다.
스킵 모드일 경우에는 MVC를 이용하여 부호화할 수 있다. 즉, 스킵 플래그 처리 후에 최적의 움직임 벡터 후보에 대한 정보를 부호화할 수 있다. 후보가 1개일 경우에는 이 부분을 생략할 수 있다. 움직임 벡터 차분치 등을 따로 부호화하지 않고 현재 블록과 예측 블록과의 차분치인 잔차 성분에 대해 변환 및 양자화 등의 과정을 통해 부호화할 수 있다.
스킵이 아니면 우선순위로 MVC를 통해 움직임 정보를 처리할지에 대해 먼저 확인과정을 거친 후 맞으면 최적의 움직임 벡터의 후보군에 대한 정보를 부호화할 수 있다. 만약 MVC를 통해 움직임 정보를 처리할 것이 아니면 MVP를 통해 움직임 정보를 처리할 수 있다. MVP의 경우 최적의 움직임 벡터 후보에 대한 정보를 부호화할 수 있다. 여기에서 후보가 1개인 경우 움직임 정보 처리를 생략할 수 있다. 그리고 현재 블록의 움직임 벡터와의 차분치, 참조 방향, 참조 픽쳐 인덱스 등의 정보를 부호화하고 잔차 성분을 얻은 다음 이에 대해 변환 및 양자화 등의 과정을 통해 부호화할 수 있다.
이후의 엔트로피 및 후처리 필터링 등 코덱에 대한 것은 상술한 설명과의 중복을 피하기 위해 생략한다.
전술한 영상 부호화 방법에 이용되는 움직임 벡터 선택 방법을 요약하면 다음과 같다.
도 23은 본 발명의 다른 실시예에 따른 영상 부호화 방법에 대한 순서도이다.
도 23을 참조하면, 본 실시예에 따른 영상 부호화 방법의 움직임 벡터 선택 방법은, 기본적으로 공간적 움직임 벡터 후보를 구성하고(S231), 현재 블록(blk)의 참조 픽쳐가 현재 픽쳐 내 존재하는지를 판단하고(S232), 상기 판단 결과가 예(yes, Y)이면, 현재 픽쳐의 공간적 움직임 벡터 후보를 추가(S233)하도록 이루어진다. 상기의 추가하는 단계(S233)는 추가적인 공간적 움직임 벡터 후보를 현재 픽쳐에서 확인하여 추가하는 것을 가리킨다.
즉, 본 실시예에서 움직임 벡터를 후보군에 추가하는 방법은, 먼저 공간적으로 인접해 있는 블록의 움직임 벡터를 MVC, MVP 등을 통해 후보군으로 구성하고, 현재 블록의 참조 픽쳐가 현재 픽쳐일 때, 같은 현재 픽쳐에 있는 블록의 움직임 정보를 추가하도록 이루어진다. 도 19의 I, J, H와 같은 블록이 이에 해당될 수 있다. 이 블록들의 정의는 현재 블록과 바로 인접하지는 않지만, 최근에 인터(INTER)로 부호화된 블록들을 일컬을 수 있다. 이러한 블록들은 MVC, MVP 등을 통해 얻은 블록과 공간적 위치가 다른 블록으로부터 후보군을 구성하는 것을 의미하므로, '추가' 또는 '추가적'이라고 표현될 수 있다.
만약 현재 블록의 참조 픽쳐가 현재 픽쳐가 아닐 경우에는, 시간적으로 인접한 픽쳐의 블록으로부터 후보군을 설정할 수 있다. 그리고 혼합 리스트를 구성하여 현재까지 추가된 후보들의 조합으로 양방향 예측을 위한 후보를 구성할 수 있다. 아울러, 현재 픽쳐의 참조 픽쳐에 따라 고정(constant) 후보를 포함시킬 수 있다. 또한, 현재 픽쳐가 참조 픽쳐일 경우에는 미리 설정된 고정 좌표를 갖는 고정 후보를 추가하고 현재 픽쳐가 참조 픽쳐가 아닌 경우에는 (0, 0) 등의 고정 후보를 움직임 벡터의 후보군에 포함시킬 수 있다.
한편, 상기 판단 단계(S232)에서의 판단 결과가 아니오(no, N)이면, 시간적 움직임 벡터 후보를 탐색하여 추가할 수 있다(S234).
다음, 움직임 벡터 선택 방법을 구현하는 영상 부호화 장치는, 상기의 단계들(S231, S233, S234) 중 적어도 하나 이상에서 구성된 움직임 벡터 후보들을 포함한 혼합 리스트 후보를 구성할 수 있다(S235).
다음, 영상 부호화 장치는, 현재 픽쳐가 참조 픽쳐인지를 확인하고(S236), 현재 픽쳐가 참조 픽쳐이고 혼합 리스트 후보의 개수가 미리 설정된 움직임 벡터의 후보 개수보다 작으면, 미리 설정한 고정 좌표의 고정 후보를 후보군에 추가할 수 있다(S237).
한편, 상기 확인 단계(S236)의 확인 결과, 현재 픽쳐가 참조 픽쳐가 아니면, 영상 부호화 장치는 (0, 0)을 고정 후보로 후보군에 추가되도록 구성할 수 있다(S238).
상술한 움직임 벡터 선택 방법에 의해 참조 화소 구성 과정이 완료되면, 도 9의 참조 화소 필터링(reference sample filtering) 과정을 진행할 수 있으나, 이에 한정되지는 않는다. 일례로, 움직임 벡터 선택 방법에 의해 참조 화소가 구성되고 이를 토대로 모션 예측 과정이 완료되면, 도 15의 보간(interpolation) 단계로 진행할 수 있다.
도 24는 도 15에서 블록 단위로 움직임 벡터 정밀도가 다른 경우를 설명하기 위한 도면이다. 도 18은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐의 보간 정밀도에 따라 블록의 움직임 벡터 정밀도가 결정되는 케이스를 설명하기 위한 도면이다.
도 24에서 각 픽쳐 아래쪽에 기재된 괄호 안 숫자(2)는 보간 정밀도 깊이 정보라고 가정한다. 즉, 도 24는 현재 픽쳐(t)와 참조 픽쳐들(t-1, t-2, t-3)을 포함한 픽쳐들 각각의 보간 정밀도는 고정되어 있지만, 블록 단위로 움직임 벡터 정밀도가 적응적으로 결정되는 경우이고, 도 25는 참조 픽쳐의 보간 정밀도에 따라 블록의 움직임 벡터 정밀도가 결정되는 경우이다. 도 25에서 보간 정밀도의 깊이 정보는
전술한 두 경우들 각각에서 전술한 '움직임 정보 예측 후보의 선택' 또는 '움직임 벡터 후보의 선택'에 기초하여 움직임 벡터 예측값을 생성할 수 있다.
본 실시예에서 움직임 벡터의 예측에 사용되는 최대 후보수는 3개로 설정될 수 있다. 여기에서, 후보 블록은 현재 블록의 왼쪽, 위쪽, 오른쪽 위 블록들로 한정될 수 있다. 후보 블록은 공간적으로뿐만 아니라 시간적 그리고 공간적으로 인접하지 않은 근처의 블록으로 설정가능하다.
도 26은 본 발명의 일 실시예에 따른 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법에 대한 흐름도이다.
도 26을 참조하면, 본 실시예에 따른 영상 복호화 방법은, 예측부에서 움직임 정보 예측 후보군을 구성한 후, 현재 블록의 움직임 벡터와의 차분치를 구할 수 있다.
좀더 구체적으로 설명하면, 먼저 후보군에 속한 블록의 움직임 벡터를 현재 블록의 움직임 벡터의 정밀도 단위에 맞춰 변경할 수 있다(S262).
다음, 현재 블록의 움직임 벡터의 참조 픽쳐의 거리 즉, 현재 픽쳐와 참조 픽쳐와의 거리 및 후보군에 속한 블록의 픽쳐와 해당 블록의 참조 픽쳐와의 거리에 따라 움직임 벡터 스케일링 과정을 수행할 수 있다(S264).
다음으로, 예측부는 하나의 픽쳐로 스케일링된 움직임 벡터들을 토대로 현재 블록과 해당 블록의 움직임 벡터 차분치를 획득할 수 있다(S266).
전술한 단계들을 통해 움직임 벡터 차분치를 획득하는 과정을 아래의 예시를 통해 좀더 구체적으로 설명하기로 한다.
도 27 내지 도 32는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 블록 단위로 보간 정밀도가 정해질 때 다양한 케이스들에 대한 움직임 벡터 차분치 산출 과정을 설명하기 위한 도면들이다.
픽쳐 단위로 보간 정밀도가 정해지는 경우
도 27에 나타낸 바와 같이, 현재 블록 주위의 3개의 블록이 움직임 정보 부호화를 위한 후보 블록이라고 가정한다. 여기서, 참조 픽쳐의 보간 정밀도는 현재 픽쳐(t)는 정수(integer, Int), 제1 참조 픽쳐(t-1)는 1/4, 제2 참조 픽쳐(t-2)는 1/4, 제3 참조 픽쳐(t-3)는 1/2이라고 가정한다.
도 27에서 (A1)의 블록들을 각각의 움직임 벡터 정밀도에 맞춰 (A2)의 블록들과 같이 표현할 수 있다.
현재 블록의 참조 픽쳐와 다른 참조 픽쳐를 가리키고 있는 블록에도 참조 픽쳐 간의 거리를 고려하여 스케일링을 통해 후보로 사용 가능하다고 설정하면, (A2)의 블록을 (A3)의 후보 블록들의 참조 픽쳐와 현재 블록의 참조 픽쳐의 거리를 고려하여 스케일링을 수행할 수 있다. 같은 참조 픽쳐의 블록은 스케일링하지 않는다. 스케일링을 수행할 때, 현재 픽쳐와 참조 픽쳐의 거리보다 작은 경우에는 반올림, 올림, 내림 중 하나를 선택하여 적용할 수 있다. 그런 다음, (A4)의 블록과 같이 현재 블록의 움직임 벡터 정밀도를 고려하여 후보 블록의 움직임 벡터를 조정할 수 있다. 본 실시예에서는 오른쪽 위 블록이 최적의 후보로 선택되었다고 가정한 것이다.
도 27에서 아래 가운데에 위치하는 현재 블록을 기준으로 오른쪽 위 블록만 1/2 단위이므로 이를 1/4단위로 바꿔주기 위해 분모와 분자에 2씩을 곱했지만, 만약 그 반대의 상황 예컨대, 1/8 단위에서 1/4 단위로 조정하는 경우에는, 이후 후보군 중 최적의 후보(MVcan)를 선택한 후 현재 블록의 움직임 벡터(MVx)와의 차분치(MVD)를 구하여 이를 부호화할 수 있다. 이를 수식으로 표현하면 아래와 같다.
MVD = MVx - MVcan → (2/4, 1/4)
전술한 실시예에서는 스케일링을 먼저 수행하고 나중에 정밀도를 조정하였으나, 이에 한정되지 않으며, 정밀도를 먼저 수행하고 스케일링을 수행할 수도 있다.
블록 단위로 보간 정밀도가 정해질 때, 현재 블록과 후보 블록들의 참조 픽쳐가 같다고 가정하는 경우
도 28에 나타낸 바와 같이, 현재 블록 주위의 3개의 블록들이 움직임 정보 부호화를 위한 후보 블록들이다. 여기서 참조 픽쳐의 보간 정밀도는 모두 1/8로 같다고 가정한다. (B1)의 블록들은 각각의 움직임 벡터 정밀도에 맞춰 (B2)의 블록들과 같이 표현될 수 있다. 현재 블록의 참조 픽쳐와 후보 블록의 참조 픽쳐가 같기 때문에 스케일링 과정은 생략된다.
다음, (B2)의 후보 블록들 각각의 움직임 벡터는 (B3)의 블록들과 같이 현재 블록의 움직임 벡터 정밀도를 고려하여 조정될 수 있다.
그런 다음, 후보군 중 최적의 후보(MVcan)를 선택한 후 현재 블록의 움직임 벡터(MVx)와의 차분치(MVD)를 구하여 이를 부호화 한다. 도 28에서는 아래 라인의 가운데에 위치하는 현재 블록을 기준으로 그 위쪽 블록이 최적의 후보로 선택된 것으로 가정한다. 이를 수식으로 표현하면 다음과 같다.
MVD = MVx - MVcan → (1/2, -1/2)
블록 단위로 보간 정밀도가 정해질 때, 현재 블록과 후보 블록들의 참조 픽쳐가 다른 경우
본 실시예에서 참조 픽쳐의 보간 정밀도는 모두 같다고 가정한다. 일례로 참조 픽쳐의 보간 정밀도는 모두 1/8일 수 있다.
도 29를 참조하면, (C1)의 블록들을 각각의 움직임 벡터 정밀도에 맞춰 (C2)의 블록들과 같이 표현할 수 있다. 그리고 현재 블록의 참조 픽쳐와 후보 블록의 참조 픽쳐가 다르기 때문에 스케일링을 수행하여 (C3)의 블록들을 얻을 수 있다.
다음, (C3)의 블록들 중에서 현재 블록의 움직임 벡터 정밀도를 고려하여 (C4)의 블록들과 같이 후보 블록의 움직임 벡터를 조정할 수 있다. 그 후, 후보군 중 최적의 후보(MVcan)를 선택한 후 현재 블록의 움직임 벡터(MVx)와의 차분치(MVD)를 구하여 이를 부호화할 수 있다. 도 29에서는 아래쪽 가운데에 위치하는 현재 블록을 기준으로 오른쪽 위쪽 블록이 최적의 후보로 선택된 것으로 가정한다. 이를 수식으로 표현하면 아래와 같다.
MVD = MVx - MVcan → (1/4, 3/4)
픽쳐 단위로 보간 정밀도가 정해질 때, 시간적으로 위치한 후보 블록도 포함하는 경우
본 실시예에서 참조 픽쳐의 보간 정밀도는 모두 같다고 가정한다. 일례로 참조 픽쳐의 보간 정밀도는 1/2이라고 가정한다. 도 30에 나타낸 바와 같이, (D1)의 블록들을 각각의 움직임 벡터 정밀도에 맞춰 (D2)의 블록들과 같이 표현할 수 있다. 현재 픽쳐를 참조 픽쳐로 삼는 블록의 경우, 일반적인 움직임 예측이 아니기 때문에 해당 블록은 후보군에서 제외(invalid)할 수 있다.
다음, 현재 블록의 참조 픽쳐와 후보 블록의 참조 픽쳐가 다르기 때문에 스케일링을 수행하여 (D3)의 블록들을 얻을 수 있다. 이때, co-located block의 픽쳐가 특정 참조 픽쳐(t-1)이라고 가정한다.
그 후, (D3)의 블록들 중에서 아래 가운데에 위치하는 현재 블록의 움직임 벡터 정밀도를 고려하여 (D4)의 블록과 같이 후보 블록의 움직임 벡터를 조정할 수 있다. 그런 다음, 후보군 중 최적의 후보(MVcan)를 선택한 후 현재 블록의 움직임 벡터(MVx)와의 차분치(MVD)를 구하여 이를 부호화할 수 있다. 본 실시예에서는 co-located 블록이 최적의 후보로 선택된 것으로 가정하고 있다. 전술한 구성을 수식으로 표현하면 다음과 같다.
MVD = MVx - MVcan → (2/4, 2/4)
블록 단위로 보간 정밀도가 정해질 때, 현재 블록이 현재 픽쳐를 참조하는 경우
본 실시예에서 참조 픽쳐의 보간 정밀도는 모두 같다고 가정한다. 일례로, 참조 픽쳐의 보간 정밀도는 1/4일 수 있다.
도 31에 도시한 바와 같이, (E1)의 블록들을 각각의 움직임 벡터 정밀도에 맞춰 (E2)의 블록들과 같이 표현할 수 있다. 아래쪽 가운데에 위치하는 현재 픽쳐를 참조 픽쳐로 삼는 블록의 경우, 일반적인 움직임 예측이 아닌 현재 픽쳐에서 블록 매칭을 수행하기 때문에 동일한 동작을 수행하는 위쪽 블록만 후보로 남고 나머지는 후보군에서 제외(invalid)될 수 있다.
현재 블록의 참조 픽쳐와 후보 블록의 참조 픽쳐가 같기 때문에 스케일링을 수행하지 않는다. 그런 다음, 현재 블록의 움직임 벡터 정밀도를 고려하여 (E3)의 블록들과 같이 후보 블록의 움직임 벡터를 조정할 수 있다.
그런 다음, 후보군 중 최적의 후보(MVcan)를 선택한 후 현재 블록의 움직임 벡터(MVx)와의 차분치(MVD)를 구하여 이를 부호화할 수 있다. 본 실시예에서 위쪽 블록이 최적의 후보로 선택된 것으로 가정한다. 전술한 과정의 결과를 수식으로 표현하는 다음과 같다.
MVD = MVx - MVcan → (-5/2, -1/2)
다음으로, 본 실시예에 따른 영상 부호화 및 복호화 방법은 현재 블록의 부호화에 이웃하는 참조 블록의 정보를 활용할 수 있다. 이와 관련하여, 도 32에 나타낸 바와 같이, 현재 블록을 중심으로 이웃 블록의 부호화 모드 및 그에 따른 정보를 이용할 수 있다.
도 32에서 위쪽의 블록들(E5)은 현재 픽쳐가 I 픽쳐일 때의 경우이며, 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성하여 부호화하는 경우를 나타내고 있다.
본 실시예의 화면내 예측은, 기존의 외삽 기반의 방법에 더하여 본 실시예의 방법을 적용한 것으로서, INTRA로 표현될 수 있으며, 현재 픽쳐에서 블록 매칭을 수행할 경우 Inter를 포함할 수 있다.
좀더 구체적으로 설명하면, Inter일 땐, 움직임 벡터, 참조 픽쳐 등의 정보 등을 활용할 수 있다. 이웃하는 블록 부호화 모드가 같은 경우에 해당 블록(E5, E6 및 E7)의 정보를 기재된 순서대로 현재 블록의 부호화에 활용할 수 있으며 바로 근접하지 않은 블록들도, 예를 들어, (E5)의 블록들에서 블록의 부호화 모드를 확인하여 후보 블록으로 추가하는 경우에 부호화 모드가 inter이고 추가적으로 참조 픽쳐(ref)를 확인하는데 ref가 t라고 표시된 블록들도 현재 블록의 부호화에 활용할 수 있다. 참조 픽쳐의 보간 정밀도에 따라 움직임 벡터의 정밀도가 정해지는 경우 예컨대, 현재 픽쳐의 보간 정밀도가 정수 단위인 경우, Inter로 부호화된 블록들의 움직임 벡터는 정수 단위로 표현될 수 있다.
(E6)는 현재 픽쳐가 P나 B일 때의 경우를 나타낸다. 현재 블록의 부호화에 이웃하는 참조 블록의 정보를 활용할 수 있다. 만약 참조 픽쳐의 보간 정밀도에 따라 움직임 벡터의 정밀도가 정해지는 경우, 각 참조 픽쳐의 보간 정밀도에 따라 각 블록의 움직임 벡터 정밀도가 설정될 수 있다.
(E7)은 현재 픽쳐가 P나 B의 경우이며, 현재 픽쳐가 참조 픽쳐로 포함되는 경우이다. 참조 블록의 보간 정밀도에 따라 각 블록의 움직임 벡터의 정밀도가 결정될 수 있다.
(E8)은 현재 블록의 부호화를 위해 co-located block의 정보를 활용하는 경우이다. 각각의 참조 픽쳐의 보간 정밀도에 따라 각 블록의 움직임 벡터의 정밀도가 결정될 수 있다.
이후의 부호화 및 복호화 과정에서는 움직임 정보를 부호화하는 과정이 적용될 수 있다. 다만, 본 실시예에서는 움직임 벡터의 차분치에 대해서 정밀도를 적응적으로 두어 부호화하게 된다. 즉, 참조 픽쳐의 보간 정밀도가 일정하고, 블록 간의 움직임 벡터 정밀도가 일정한 경우를 포함할 수 있다. 즉, 참조 픽쳐의 보간 정밀도에 따라 움직임 벡터 정밀도가 정해질 수 있다.
도 33 내지 도 36은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 움직임 벡터 차분치의 정밀도에 대한 표현 과정을 설명하기 위한 도면들이다.
본 실시예에서는 여러 후보블록 중 최적의 후보 블록의 움직임 벡터가 (a, b)이고 현재 블록의 움직임 벡터가 (c, d)라고 한다. 설명의 편의를 위해 참조 픽쳐가 같다고 가정한다.
도 33의 (F1)에 나타낸 바와 같이, 참조 픽쳐의 보간 정밀도는 1/4이라고 가정한다. 현재 블록과 최적의 후보 블록의 움직임 벡터 차분치(c-a, d-b)를 구해서 복호화기에 보내야 한다. 이를 위해, 본 실시예에서는 (F1)의 블록들을 각각의 움직임 벡터 정밀도에 맞춰 (F2)의 블록들과 같이 표현할 수 있다. 참조 픽쳐가 같고 각 블록의 움직임 벡터 정밀도가 같기 때문에 바로 (F2)의 블록들을 움직임 벡터 부호화에 활용할 수 있다.
즉, (F2)에 나타낸 바와 같이, 현재 블록의 움직임 벡터인 (c,d)가 (21/4, 10/4)이고, 최적의 후보 블록을 왼쪽 블록이라고 할 경우 왼쪽 블록의 움직임 벡터인 (a,b)는 (13/4, 6/4)이므로, 이들의 차분치를 나타내는 (c-d, d-b)는 (8/4, 4/4)가 된다. 움직임 벡터 정밀도가 1/4단위이므로, 아래 표 5와 같이 이진 인덱스(bin index)를 8과 4를 사용하여 처리할 수 있다. 다만, 움직임 벡터의 차분치에 대한 정밀도에 대한 정보를 보내준다면 이러한 정밀도를 더 짧은 비트 인덱스(bit index)를 할당하여 처리할 수 있다.
Figure PCTKR2016005998-appb-T000005
현재 블록의 움직임 벡터 차분치가 정수 단위의 정밀도를 갖는다는 정보를 전송하면, 기존의 bin index를 8과 4를 써야 할 것을 정수 단위로 옮겨 2와 1을 사용함으로써 더 짧은 bin index를 사용할 수 있다. 여러 가지 이진화 방법을 사용한다고 할 경우, 예컨대 단항 이진화를 사용하는 경우, 전술한 차분치인 (8/4, 4/4)를 위해 111111110 + 11110 의 비트를 전송해야 하지만, 차분치의 정밀도에 대한 정보를 보내주고 (2/1, 1/1)에 해당하는 110 + 10 의 비트를 전송하면, 더 짧은 비트를 사용할 수 있어 부호화 효율을 높일 수 있다.
도 34에 도시한 방식으로 움직임 벡터 차분치의 정밀도를 표현한다고 하면 위의 경우 11(정수)에 대한 정보와 차분치에 대한 (2/1, 1/1)에 대한 정보를 보내주면 된다.
전술한 실시예에서는, x와 y 성분에 대해 움직임 벡터 차분치 정밀도를 같이 적용했지만 개별적으로 적용하는 것도 가능하다.
도 35에서 (G1)을 각각의 움직임 벡터 정밀도에 맞춰 (G2)와 같이 표현할 수 있다. 참조 픽쳐가 같고, 각 블록의 움직임 벡터 정밀도가 같기 때문에 바로 (G2)를 움직임 벡터 부호화에 활용할 수 있다.
최적의 후보 블록은 현재 블록의 왼쪽 블록이라고 가정하는 경우, 이에 대한 차분치를 구하면 (8/4, 5/4)와 같이 표현 가능하다. 이렇게 표현되는 최적의 후보 블록의 x, y에 대해 움직임 벡터 차분치의 정밀도를 각각 적용한다면 x는 정수 단위로 2/1, y는 1/4 단위로 5/4로 표현할 수 있다.
움직임 벡터 차분치의 정밀도를 도 34의 표 형태 아래의 트리처럼 표현한다고 하면, x에 대해선 11(정수)에 대한 정보와 y에 대해선 0(1/4)에 대한 정보를 그리고 각각의 차분치 정보인 2/1과 5/4를 보내주면 된다(도 36 참조).
즉, 위의 경우에 도 36에 나타낸 바와 같이 차분치 정밀도에 대한 범위를 최대 정밀도(1/4)부터 최소 정밀도(정수)까지 후보군에 넣을 수 있다. 물론, 본 발명을 그러한 구성으로 한정되지 않고, 다양하게 후보군을 구성할 수 있다. 만약 최대 정밀도(일례로, 1/8)부터 최소 정밀도 중 최소 2개 단위의 정밀도를 포함하여 구성할 수도 있다.
도 37은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 임의 접근 모드에 대한 참조 구조의 예이다.
도 37을 참조하면, 우선 낮은 시간적 식별자(temporalID)를 갖는 픽쳐부터 순차적으로 부호화를 진행하는 경우, 낮은 ID를 갖는 I 픽쳐와 P 픽쳐가 각각 부호화한 후 다음, 높은 ID를 갖는 B(2)를 부호화하는 순서로 부호화가 진행된다. 자기보다 높거나 같은 ID는 참조하지 않고 낮은 ID를 갖는 픽쳐를 참조 픽쳐로 삼는다고 가정한다.
우선, 도 37을 중심으로 설명하면, 참조 픽쳐로 사용되는 픽쳐들의 보간 정밀도(일례로 정수, 1/2, 1/4, 1/8 등 중 어느 하나)를 고정하여 사용할 수 있고, 구현에 따라서 참조 픽쳐로 사용되는 픽쳐들의 보간 정밀도를 다르게 설정할 수 있다. 예를 들어, ID가 0인 I 픽쳐의 경우, 어떤 픽쳐의 참조 픽쳐로 사용될 때 픽쳐들 간의 거리를 계산하여 1, 4, 8(B4, B2, P1 픽쳐의 경우)의 거리를 갖는다. P 픽쳐의 경우 4, 2, 1(B2, B6, B8)이 된다. 그리고 ID가 1인 B2의 경우, 2, 1, 1, 2(B3, B5, B7, B6)의 거리를 갖고, ID가 B3인 경우, 1, 1(B4, B5)의 거리를 갖는다.
만약 참조되는 픽쳐와의 평균 거리를 기반으로 각 참조 픽쳐의 보간 정밀도를 정할 수 있다. 즉, 가까운 참조 픽쳐일수록 움직임의 차이가 적어서 세밀한 보간이 필요하다고 판단되므로, 참조되는 거리가 평균적으로 짧은 B3나 B6에는 보간 정밀도를 높여서 보간을 수행하고(일례로 1/8), 참조되는 거리가 그 이상인 경우에는 보간 정밀도를 낮춰서 사용할 수 있다. 일례로 1/4로 낮출 수 있다(아래의 표 6의 Case 1 참조). 반대로, 멀리 떨어진 참조 픽쳐일수록 더 세밀한 보간 정밀도가 필요하다고 판단되므로 그 경우, 위의 예시와 반대로 적용할 수 있다.
또한, 참조되는 경우가 많은 픽쳐에 더 세밀한 보간을 수행할 수도 있다. 예를 들어, B2에 보간 정밀도를 높여서 보간을 수행할 수도 있고, 참조되는 경우가 적은 픽쳐에 다른 보간 정밀도를 적용할 수도 있다(아래 표 6의 Case 2 참조).
또한, 시간적 계층에 따라 보간 정밀도를 다르게 적용할 수 있다. 예를 들어, ID가 0인 픽쳐에 대해서는 더 세밀하게 보간을 수행하고, 다른 ID의 픽쳐에 대해서는 정밀도를 낮출 수도 있고 그 반대로 수행할 수도 있다(아래 표 6의 Case 3 참조).
Figure PCTKR2016005998-appb-T000006
이와 같이 픽쳐 단위로 보간 정밀도를 설정하여 화면간 예측을 수행할 수 있다. 이와 관련된 정보는 부호화기나 복호화기에 약속하에 설정되거나 시퀀스, 픽쳐 등의 단위로 전송될 수 있다.
도 38은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 하나의 픽쳐이지만 2개 이상의 보간 정밀도를 가질 수 있음을 설명하기 위한 도면이다.
도 38을 참조하면, 현재 픽쳐에서 블록 매칭을 수행하는 경우를 예시한다. 즉, 도 38에서는 I0, P1 및 B2에서 자기 참조가 가능한 것을 보여준다.
본 실시예에서는, 자기보다 높은 ID는 참조하지 않고, 같거나 낮은 ID를 갖는 픽쳐를 참조 픽쳐로 사용할 수 있다. 실제로, 도 38에 도시하지는 않았지만, temporalID 2나 3까지 현재 픽쳐를 참조 픽쳐로 삼는 경우에 포함될 수 있다. 이것은 temporalID에 따라 현재 픽쳐를 삼을 수 있음을 의미하기도 한다. 시간적 식별자(temporalID) 이외에 픽쳐의 종류에 따라 참조 픽쳐로의 사용을 결정할 수 있다.
도 38의 경우는 도 37의 경우와 전체적으로 비슷하지만 현재 픽쳐를 부호화할 때 현재 픽쳐를 참조 픽쳐로 삼는 경우의 보간 정밀도를 일반적인 경우의 보간 정밀도와 같이 둘 수 있음을 나타낸다. 또한, 도 38의 경우는, 현재 픽쳐가 참조 픽쳐일 경우에만 보간 정밀도를 다르게 둘 수 있음을 나타낸다. 즉, 하나의 픽쳐이지만 2개 이상의 보간 정밀도를 가질 수 있다는 것을 나타낸다.
여기까지는 참조 픽쳐의 보간 정밀도가 정해지는 대로 움직임 벡터의 정밀도도 따라서 결정되는 기법을 설명한 것이다. 아래에서는 보간 정밀도와 상관없이 움직임 벡터의 정밀도가 결정되는 기법을 설명하기로 한다.
픽쳐의 보간 정밀도(일례로 1/4)는 고정되지만, 부호화하는 픽쳐의 블록 단위로 블록의 움직임 벡터 정밀도를 설정할 수 있다. 기본 설정은 정해져 있는 움직임 벡터 정밀도를 사용하는 것일 수 있으나, 본 실시예에서는 2개 이상의 후보를 지원하겠다는 것을 의미한다. 예를 들어, 참조 픽쳐의 보간 정밀도가 1/4이면 이 픽쳐를 참조하는 블록의 움직임 벡터는 통상 1/4의 단위로 표현되어야 한다. 하지만, 본 실시예에서는 움직임 벡터를 블록에 따라 기본적으로 1/4 단위로 표현할 수 있고, 추가로 1/2 단위로도 표현할 수 있거나 정수단위로도 표현할 수 있다.
Figure PCTKR2016005998-appb-T000007
표 7은 일정 상수의 움직임 벡터의 정밀도에 따른 매칭에 대한 내용이다. 예를 들어, 1을 표현하기 위해서는 정수 단위에서는 1에 해당하지만, 1/2에서는 2, 1/4에서는 4에 대응된다. 2를 표현하는 경우, 정수 단위에서 2, 1/2 단위에서는 4, 1/4 단위에서는 8에 대응된다.
특정 픽쳐를 참조하는 블록의 현재 정밀도 기준으로 정밀도가 2배 높아지면, 정수 1은 1/2이 되고, 1/2은 1/4이 되므로, 이를 표현하기 위한 숫자는 2배가 커진다. 이를 단항 이진화(unary binarization), Rice 이진화(truncated rice), k-th order exp-golomb 등의 다양한 이진화로 표현한다고 할 때, 정밀도가 높아질수록 그것을 표현하고자 하는 비트는 늘어난다.
만약, 보간 정밀도를 높여도 예를 들어 1/2에서 1/4로 높여도, 움직임 벡터는 낮은 정밀도 단위에서 찾게 되면(예컨대, 정수 또는 1/2), 그에 따른 비트량의 증가로 부호화 효율이 떨어질 수 있다. 이를 방지하기 위해 본 실시예에서는 블록 단위에서 어떤 정밀도 단위로 움직임 벡터를 찾았는지에 대해 정보를 표현해주고 이러한 정보를 부호화 및/또는 복호화에 이용한다. 그 경우, 부호화와 복호화를 더욱 효율적으로 수행할 수 있다.
예를 들면, 움직임 벡터를 단항 이진화(unary binarization)를 사용하여 부호화하는 경우, 여기서 벡터의 x 성분이 8/4이고 y 성분이 4/4라면, 이를 표현하기 위해서는 111111110 + 11110의 이진화 비트가 필요하다. 하지만, 본 실시예에 따르면, 위의 이진화 비트를 1/2 단위(4/2, 2/2)로 표현할 수 있고, 그 경우 11110 + 110으로 표현할 수 있다. 또한, 정수 단위(2,1)로 표현할 수 있으며, 그 경우 110 + 10으로 표현 가능하다.
그리고 움직임 벡터의 부호화에 어떤 정밀도 단위를 사용하였는지에 대한 정보(예를 들어, 1/4일 땐 0, 1/2일 땐 10, 정수일 땐 11)를 보낸다면, 전술한 경우에서 11(정밀도 단위) + 110 + 10으로 표현할 수 있어 1/4 단위의 111111110 + 11110보다 더 적은 비트량을 사용할 수 있다.
이와 같이, 해당 블록의 움직임 벡터 정밀도를 정수 단위로 표현한다는 정보를 본 실시예의 움직임 벡터의 부호화 결과와 함께 전송/수신함으로써 전송/수신되는 부호화 비트를 감소시키는 효과를 얻을 수 있다.
또한, 일례로서, 움직임 벡터 x, y 성분이 3/4, 1/4이라면, 이를 정수 또는 1/2 단위로 표현할 수 없으므로 1/4 단위의 1110 + 10으로 표현할 수 있다. 그 경우, 해당 블록의 움직임 벡터 정밀도를 1/4로 표현한다는 정보를 전송함으로써 본 실시예에 따른 부호화 및 복호화를 수행할 수 있다. 이와 같이, 픽쳐 단위의 보간 정밀도는 고정된 채 블록 단위로 움직임 벡터의 정밀도를 적응적으로 정할 수 있다. 블록 단위의 움직임 벡터의 최대 정밀도는 참조 픽쳐의 보간 정밀도와 동일하다.
또한, 본 실시예에서 지원되는 정밀도의 그룹은 다양하게 구성될 수 있다. 예를 들면, 참조 픽쳐의 보간 정밀도를 1/8로 가정하면, 위와 같은 정밀도 정수, 1/2, 1/4, 1/8을 사용할 수도 있고, (1/2, 1/4, 1/8), (1/4, 1/8), (정수, 1/2, 1/8), (1/4, 1/8) 등과 같이 2개 이상의 정밀도를 구성하여 사용할 수도 있다.
이들은 픽쳐, 슬라이스 등의 단위로 설정될 수 있으며 부호화 비용을 고려하여 결정될 수 있다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다. 또한, 복호화에서는 전송받은 그룹들 중 하나의 세트를 선택하여 블록 단위로 적응적으로 움직임 벡터 정밀도를 결정할 때 사용할 수도 있다.
또한, 본 실시예에서 정밀도 선택에 대한 인덱스는 구성되는 후보군의 개수에 따라 고정 길이 이진화(Fixed length), 단항 이진화 등으로 표현 가능하다. 참조 픽쳐의 정밀도를 기준으로 가장 많이 발생할 것 같거나 발생한 단위에 짧은 비트를 할당하고, 그 반대의 경우 긴 비트를 할당할 수 있다.
예를 들어, 1/8 단위가 가장 많이 발생할 것을 예상되는 경우, 1/8에는 0, 1/4에는 10, 1/2에는 110, 정수에는 111과 같이 할당할 수 있다. 즉, 1/8에 가장 짧은 비트를 할당하고, 정수에 가장 긴 비트를 할당할 수 있다.
또한, 1/4 단위가 가장 많이 발생하는 경우에는 1/4에 가장 짧은 비트를 할당하는 것이 가능하다. 또한, 구현에 따라서 발생 확률에 상관없이 고정 길이를 할당할 수도 있다. 예를 들어, 정수는 00, 1/2은 01, 1/4은 10, 1/8은 11과 같이 통계적인 발생 빈도수 등에 따라 고정 길이를 할당할 수 있다.
또한, 본 실시예에서는, 참조 픽쳐가 특정한 픽쳐인 경우 즉 참조 픽쳐가 현재 픽쳐인 경우, 특정 정밀도에 우선순위를 높게 줄 수 있다. 참조 픽쳐가 현재 픽쳐인 경우, 정수(integer)에 높은 우선순위를 줄 수 있다. 기본 정밀도인 1/8에 가장 짧은 비트를, 그 다음으로 정수에 짧은 비트를 할당할 수도 있다.
즉, 1/8에는 0, 정수에는 10, 1/4에는 110, 1/2에는 111을 할당할 수 있다. 또한, 구현에 따라서 정수에 가장 짧은 비트를 할당할 수도 있다. 예를 들어, 정수에는 0, 1/8에는 10, 1/4에는 110, 1/2에는 111을 할당할 수 있다.
위와 같이 할당할 수 있는 이유는, 스크린 컨텐츠가 포함된 영상의 경우, 해당 부분은 소수 단위까지 움직임 탐색을 수행하는 경우가 거의 없지만, 자연 영상 부분은 소수 단위까지 움직임 탐색을 수행하는 경우가 많기 때문이다.
즉, 본 실시예의 영상 부호화 및 복호화 방법은 영상의 일부분이 컴퓨터 캡쳐 화면과 같은 스크린 컨텐츠 영역이고 영상의 다른 적어도 일부분이 일반 자연 영상 영역으로서 두 영역들이 혼합되어 있는 영상의 경우에 더욱 효과적으로 적용될 수 있다.
또한, 본 실시예에서는 현재 블록의 움직임 정보 예측에 사용되는 참조 블록의 정보를 활용할 수 있다. 이 경우에 사용되는 참조 블록은 공간적으로 인접한 제1 블록의 정보를 활용할 수도 있다. 제1 블록은 현재 블록을 기준으로 왼쪽 위, 위, 오른쪽 위, 왼쪽 아래 중 최소 1개 이상의 블록을 포함할 수 있다.
또한, 선택된 참조 픽쳐에서 현재 블록에 상응하는 위치에 존재하는 참조 블록(co-located block)의 정보를 활용할 수도 있다. 참조 블록은 co-located block 뿐만 아니라 현재 블록과 동일한 위치의 참조 블록(가운데 블록)을 기준으로 왼쪽 위, 위, 오른쪽 위, 왼쪽, 왼쪽 아래, 아래, 오른쪽 아래, 오른쪽 중 최소 1개 이상의 블록을 후보로 삼을 수 있다. 이때 후보군에 포함되는 위치는 픽쳐 타입에 현재 블록의 크기, 모드, 움직임 벡터, 참조 방향 등의 부호화 관련 파라미터, 공간적으로 인접한 후보 블록들과의 상관관계 등에 따라 결정될 수 있다. 그리고 선택된 참조 픽쳐는 현재 픽쳐의 이전 또는 이후에 존재하는 픽쳐 간의 거리가 1 이상인 픽쳐를 의미할 수 있다.
또한, 본 실시예에서는 현재 블록과 인접하진 않지만 같은 공간에 위치하는 블록들의 정보를 활용할 수 있다. 상기 블록들은 부호화 모드 또는 참조 픽쳐 인덱스 또는 미리 설정된 좌표 등의 정보를 기반으로 결정되는 현재 블록과 해당 블록의 사이에 최소 1개 이상의 블록을 포함하는 블록을 후보로 포함할 수 있다. 미리 설정된 좌표는 현재 블록의 좌측 상단 좌표로부터 가로, 세로로 일정 거리의 간격을 갖도록 설정될 수 있다.
예를 들어, 왼쪽 블록과 위쪽 블록이 현재 블록의 움직임 벡터의 정밀도를 표현할 때 참조된다고 가정한다. 그리고 움직임 벡터의 정밀도를 절삭형 단항 이진화(truncated unary binarization) 방식으로 표현하기로 한다. 비트 구성은 0 - 10 - 110 - 111과 같을 수 있다. 왼쪽 블록의 움직임 벡터는 1/2 단위로, 위쪽 블록의 움직임 벡터는 1/2 단위로 정밀도가 결정되는 경우에 현재 블록은 1/2 단위로 움직임 벡터가 나타날 가능성이 높다고 판단하여 여러 단위 중 가장 짧은 비트를 할당하여 정밀도 관련 정보를 이진화할 수 있다. 여러 단위는 장치에서 지원하는 정수, 1/2, 1/4, 1/8 단위를 포함할 수 있고, 기준 단위로 1/8가 설정될 수 있다.
다른 예로서, 왼쪽 블록이 1/4, 위쪽 블록이 1/8인 경우, 1/4과 1/8에 비교적 짧은 비트를 할당하고, 나머지 다른 단위는 상대적으로 긴 비트를 할당할 수 있다. 이 경우에, 추가로 현재 기준 단위인 1/8이 포함되어 있을 때는 1/8에 가장 짧은 비트를 할당할 수도 있다. 또한, 왼쪽이 1/4, 위쪽이 1/2과 같이 기준단위가 포함되지 않는 경우에는 고정적인 위치를 먼저 활용하도록 고정적인 위치에 가장 짧은 비트를 할당할 수도 있다. 가령, 왼쪽이 우선순위가 있다고 가정하여 1/4에 가장 짧은 비트를 할당할 수 있다.
또한, 본 실시예에서는 후보 블록의 움직임 정보를 활용할 수 있다. 움직임 정보는 움직임 벡터 외에 참조 픽쳐 인덱스, 참조 방향 등을 포함할 수 있다. 일례로, 왼쪽이 1/4, 위쪽이 정수인 경우, 참조 픽쳐를 확인하였을 때 왼쪽은 t-1, 위쪽은 t-2를 참조 픽쳐로 가진 경우, 그리고 현재 블록이 t-2인 경우, 같은 참조 픽쳐를 가지는 블록에 우선순위를 주고, 해당 블록의 움직임 벡터의 정밀도인 정수에 가장 짧은 비트를 할당할 수도 있다.
위의 실시예를 간략히 나타내면 아래의 1) 내지 4)와 같다.
1) (1/2, 1/2) 1/2 - 1/8 - 1/4 - 정수
2) (1/4, 1/8) 1/8 - 1/4 - 1/2 - 정수
3) (1/4, 1/2) 1/4 - 1/2 - 1/8 - 정수
4) (1/4, 정수) 정수 - 1/4 - 1/8 - 정수
또한, 본 실시예에서는 픽쳐 단위로 보간 정밀도는 고정한 채로 현재 픽쳐의 타입, 종류 등의 정보에 따라 블록 단위로 움직임 벡터 정밀도를 적응적 또는 고정적으로 지원할 수 있다.
도 38에서와 같이 현재 픽쳐를 참조 픽쳐로 가지는 경우, 움직임 벡터 정밀도를 적응적으로 사용할 수도 있고, B4나 B5, B7, B9와 같이 참조 픽쳐 간의 거리가 짧은 경우 더 세밀한 움직임을 찾기 위한 목적으로 해당 픽쳐에 블록 단위의 움직임 벡터 정밀도를 적응적으로 지원하고 그 외의 픽쳐에서는 고정적으로 움직임 벡터 정밀도를 지원할 수 있다.
즉, 시간적 계층 정보(Temporal ID)가 3인 경우에는 정수, 1/2, 1/4 중 택일하여 지원하고, 나머지 ID에 대해서는 1/4만 고정되게 사용하는 방식을 이용하거나, 또는 참조 픽쳐와의 거리가 먼 P 픽쳐의 경우 세밀한 움직임을 갖는 영역도 있고 그렇지 않은 영역이 있을 수 있다고 가정하고 블록 단위로 적응적인 움직임 벡터 정밀도를 결정할 수 있고, 그렇지 않은 픽쳐의 경우 고정된 움직임 벡터 정밀도를 지원할 수도 있다.
또한, 구현에 따라서 정밀도의 구성을 달리한 세트를 2개 이상 두어 지원할 수도 있다. 예를 들어, (1/2, 1/4), (정수, 1/2, 1/4), (1/2, 1/4, 1/8), (정수, 1/4) 등 최소 2개 이상의 정밀도가 후보가 될 수 있다(표 8 참조).
Figure PCTKR2016005998-appb-T000008
픽쳐 단위로 보간 정밀도를 설정할 수 있는 경우
도 39는 도 18에서 현재 픽쳐가 I 픽쳐일 때의 참조 픽쳐 리스트를 나타낸 도면이다.
도 39를 참조하면, 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성할 수 있다. 참조 픽쳐(N)에 I 픽쳐가 추가가 된다. I*(0)라고 표현한 것은 현재 픽쳐를 부호화할 때 현재 픽쳐를 참조 픽쳐로 삼는다는 것을 의미한다.
픽쳐 단위로 보간 정밀도를 설정할 때, I 픽쳐에는 정수 단위까지만 정밀도를 허용하는 경우로서 보간을 하지 않는 경우에 해당된다. 영상 부호화 및 복호화 장치는 참조 픽쳐 리스트 0(reference list 0, L0)만을 참조할 수 있다.
또한, 픽쳐 타입이나 시간적인 식별자(temporalID) 등에 따라 현재 픽쳐를 참조 픽쳐로 삼는 것을 제한한다면, 예를 들어 I 픽쳐일 때만 현재 픽쳐에 블록 매칭이 허용될 수 있고 그 외 픽쳐에는 허용하지 않는 경우에는, 별표(*)의 참조 픽쳐는 생략될 수 있다.
도 40은 도 38에서 현재 픽쳐가 P 픽쳐일 때의 참조 픽쳐 리스트를 나타낸 도면이다.
도 40을 참조하면, P 픽쳐도 참조 픽쳐에 추가된다. P*(1)라고 표현한 것은 현재 픽쳐를 부호화할 때 P 픽쳐를 현재 픽쳐로 삼는다는 것을 의미한다. 여기에서 I(0)는 위의 I*(0)와 다른 의미를 가진다. 즉, I*(0)는 부호화 도중에 움직임 탐색을 수행하므로 디블록킹 필터(deblocking filter) 등의 후처리 필터링이 적용되지 않거나 부분 적용된 픽쳐에서 움직임 탐색을 할 수 있고, I(0)는 부호화가 끝난 후 후처리 필터링이 적용된 픽쳐이므로 같은 POC를 갖는 픽쳐이지만 필터링 적용의 차이로 인해 다른 픽쳐일 수 있다.
이전 I 픽쳐를 참조 픽쳐로 삼을 때 해당 픽쳐의 보간 정밀도가 1/8이기 때문에 움직임 탐색도 1/8 단위까지 수행하여 최적의 움직임 벡터를 찾을 수 있다. 현재 픽쳐(P*(1))를 참조 픽쳐로 삼을 때는 해당 픽쳐의 보간 정밀도가 정수이기 때문에 정수 단위로 움직임 탐색을 수행할 수 있다.
도 41은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 현재 픽쳐가 B(2)일 때 참조픽쳐 리스트를 나타낸 도면이다. 도 42는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 현재 픽쳐가 B(5)일 때 참조픽쳐 리스트를 나타낸 도면이다.
도 41을 참조하면, 현재 픽쳐가 B(2)일 때, I 픽쳐(I(0))와 P 픽쳐(P(1))를 참조 픽쳐로 추가하여 각 픽쳐의 보간 정밀도에 따라 움직임 탐색도 해당 픽쳐의 정밀도 단위까지 수행할 수 있음을 보여준다. 본 실시예에서, P 픽쳐에서는 1/4 단위의 정밀도로 움직임 벡터를 탐색하고, I 픽쳐에서는 1/8 단위의 정밀도로 움직임 벡터를 탐색할 수 있다.
또한, 도 42를 참조하면, 현재 픽쳐가 B(5)일 때, I 픽쳐와 P 픽쳐 중 어느 하나도 참조 픽쳐로 포함하지 않지만, 복수의 참조 픽쳐들 {B(2), B(4), B(3)}의 보간 정밀도에 따라 다른 정밀도로 움직임 벡터를 탐색할 수 있다.
도 43은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐의 보간 정밀도에 따라 각 블록의 움직임 벡터 정밀도가 정해지는 과정을 설명하기 위한 도면이다. 도 44는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 각 참조 픽쳐의 보간 정밀도가 고정된 경우에 각 블록의 움직임 벡터 정밀도가 적응적으로 정해지는 과정을 설명하기 위한 도면이다.
도 43을 참조하면, 현재 픽쳐의 보간 정밀도가 정수(Int)이고, 세 개의 참조 픽쳐들(t-1, t-2, t-3)의 보간 정밀도가 각각 1/4, 1/2 및 1/8일 때, 참조 픽쳐를 참조하는 현재 블록의 주변 블록들에 대한 움직임 벡터를 탐색할 때, 해당 참조 픽쳐의 보간 정밀도에 대응하는 정밀도로 각 주변 블록의 움직임 벡터를 탐색할 수 있다.
도 44를 참조하면, 현재 픽쳐와 참조 픽쳐들의 보간 정밀도가 1/4로 모두 동일할 때, 참조 픽쳐를 참조하는 현재 블록의 주변 블록들에 대한 움직임 벡터를 탐색할 때, 일정한 보간 정밀도에 대응하는 정밀도로 주변 블록들의 움직임 벡터를 탐색할 수 있다. 물론, 구현에 따라서 블록 단위의 움직임 벡터의 정밀도가 정해지더라도 참조 픽쳐들의 보간 정밀도는 각각 설정되는 것도 가능하다.
전술한 실시예에서 참조 픽쳐의 보간 정밀도에 따라 움직임 벡터의 정밀도가 정해지거나, 또는 보간 정밀도는 고정된 채 블록 단위로 움직임 벡터의 정밀도가 정해지는 것으로 설명하였다. 하지만, 본 발명을 그러한 구성을 한정되지 않는다. 참조 픽쳐의 보간 정밀도도 각각 설정이 되고, 블록 단위로 움직임 벡터의 정밀도가 정해지는 경우를 혼합하는 것도 가능하다. 이때, 움직임 벡터의 최대 정밀도는 참조되는 픽쳐의 정밀도에 따라 결정된다.
전술한 실시예에 의하면, 화면간 예측에서 픽쳐 또는 블록 단위로 보간 정밀도를 적응적으로 적용할 수 있다. 또한, GOP 구조에서의 시간적 계층(temporal layer), 참조되는 픽쳐의 평균 거리 등에 따라 적응적인 보간 정밀도를 지원할 수 있다. 아울러, 정밀도에 따른 인덱스 정보의 부호화에서 부호화 정보량을 감소시키고, 인덱스 정보의 다양한 방식의 부호화를 가능케 할 수 있다.
전술한 실시예에 있어서, 영상 부호화 방법은, 부호화된 영상을 복호화하기 위해 위에서 설명한 움직임 벡터 정밀성을 이용하는 경우, 영상 복호화 방법으로 대체되어 사용될 수 있다. 또한, 영상 부호화 및 복호화 방법은 부호화 및 복호화를 위한 적어도 하나의 수단이나 이러한 수단에 상응하는 기능을 수행하는 구성부를 구비하는 영상 처리 장치 혹은 영상 부호화 및 복호화 장치에 의해 실행될 수 있음은 물론이다.
전술한 실시예에 의하면, 화면 내 예측 기술이 사용되고 있는 MPEG-2, MPEG-4, H.264 등의 국제 코덱 또는 기타 다른 코덱과 이 코덱들을 사용하는 매체, 그리고 영상 산업에 전반적으로 이용가능한 고성능 고효율의 영상 부호화 복호화 기술을 제공할 수 있다. 또한, 향후에는 현재의 고효율 영상 부호화 기술(HEVC) 및 H.264/AVC와 같은 표준 코덱과 화면 내 예측을 사용하는 영상 처리 분야에 적용이 예상된다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 공간적 움직임 벡터 후보(제1 후보)를 구성하는 단계;
    현재 블록의 참조 픽쳐가 현재 픽쳐 내 존재하는지를 판단하는 단계;
    상기 판단하는 단계의 판단 결과가 예이면, 상기 현재 블록에 앞서 부호화된 현재 픽쳐의 다른 블록에서의 공간적 움직임 벡터 후보(제2 후보)를 추가하는 단계;
    상기 판단하는 단계의 판단 결과가 아니오이면, 시간적 움직임 벡터 후보(제3 후보)를 추가하는 단계; 및
    상기 제1 후보, 및 상기 제2 후보와 상기 제3 후보 중 어느 하나를 포함하는 움직임 벡터 후보를 토대로 참조 화소 필터링을 수행하는 단계를 포함하는,
    영상 부호화 방법.
  2. 청구항 1에 있어서,
    상기 수행하는 단계 전에,
    상기 현재 픽쳐가 참조 픽쳐인지를 판단하는 단계;
    상기 현재 픽쳐가 참조 픽쳐이고, 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, 미리 설정된 고정 좌표의 고정 후보를 추가하는 단계; 및
    상기 현재 픽쳐가 참조 픽쳐가 아니고, 상기 혼합 리스트 후보 내 움직임 벡터 후보의 개수가 미리 설정된 개수보다 작으면, (0, 0)을 고정 후보로 추가하는 단계를 더 포함하는, 영상 부호화 방법.
  3. 청구항 1에 있어서,
    상기 수행하는 단계 후에,
    화면 내 예측을 통해 예측 블록을 생성하는 단계; 및
    상기 생성된 예측 블록에 대해 예측 모드 부호화를 수행하는 단계를 더 포함하는, 영상 부호화 방법.
  4. 청구항 1에 있어서,
    상기 현재 픽쳐의 다른 블록은 상기 현재 블록의 주변 블록을 사이에 두고 상기 현재 블록과 마주하는 블록들로서 상기 현재 픽쳐에서 상기 현재 블록에 앞서 화면 간 예측으로 부호화된 블록을 포함하는, 영상 부호화 방법.
  5. 부호화 영상을 엔트로피 복호화하고 역양자화 및 역변환을 통해 복원 영상을 생성하는 영상 복호화 방법에 있어서,
    상기 엔트로피 복호화를 통해 얻은 상기 영상의 헤더 정보를 토대로 상기 복원 영상의 움직임 정보 예측 후보군을 구성하는 단계;
    상기 후보군에 속한 후보 블록의 움직임 벡터를 현재 블록의 움직임 벡터의 정밀도 단위에 맞춰 변경하는 단계; 및
    상기 현재 블록의 움직임 벡터에서 상기 정밀도 단위가 맞춰진 후보 블록의 움직임 벡터를 뺀 차분치를 구하는 단계를 포함하는, 영상 복호화 방법.
  6. 청구항 5에 있어서,
    상기 변경하는 단계는, 상기 현재 블록이 위치한 현재 픽쳐와 참조 픽쳐와의 제1 거리와 상기 후보 블록의 픽쳐와 해당 후보 블록의 참조 픽쳐와의 제2 거리에 따라 움직임 벡터를 스케일링하는, 영상 복호화 방법.
  7. 청구항 6에 있어서,
    상기 구하는 단계 후에,
    상기 제1 거리와 상기 제2 거리의 평균 거리를 기반으로 각 참조 픽쳐의 보간 정밀도를 정하는 단계를 더 포함하는, 영상 복호화 방법.
  8. 청구항 5에 있어서,
    상기 변경하는 단계는, 상기 현재 블록의 참조 픽쳐와 상기 후보 블록의 참조 픽쳐가 동일한 경우 생략되는, 영상 복호화 방법.
  9. 청구항 5에 있어서,
    상기 변경하는 단계는, 상기 현재 블록의 움직임 벡터 정밀도에 따라 이웃 블록 또는 주변 블록의 움직임 벡터를 상기 현재 블록의 움직임 벡터 정밀도 단위로 변경하는, 영상 복호화 방법.
  10. 청구항 9에 있어서,
    상기 주변 블록은 상기 현재 블록과의 사이에 다른 블록을 게재하고 위치하는, 영상 복호화 방법.
  11. 청구항 10에 있어서,
    상기 주변 블록은 상기 현재 블록에 앞서 화면간 예측으로 움직임 벡터가 탐색된 블록인, 영상 복호화 방법.
  12. 참조 픽쳐의 보간 정밀도가 제1 값을 가질 때, 상기 참조 픽쳐를 참조하는 현재 블록의 제1 주변 블록의 움직임 벡터를 상기 제1 값과 동일하거나 상기 제1 값보다 큰 제2 값의 정밀도로 탐색하는 단계;
    상기 제2 값보다 큰 제3 값의 정밀도로 상기 현재 블록의 제2 주변 블록의 움직임 벡터를 탐색하는 단계; 및
    상기 움직임 벡터들의 정밀도에 대한 매칭 정보를 토대로 상기 제1 블록과 상기 제2 블록의 움직임 벡터들에 대한 제1 정보를 복호화하는 단계를 포함하는,
    영상 복호화 방법.
  13. 청구항 12에 있어서,
    상기 제1 값은 진분수이고, 상기 제2 값 또는 상기 제3 값은 정수인, 영상 복호화 방법.
  14. 청구항 12에 있어서,
    상기 매칭 정보를 포함하는 인덱스 내에서 상기 제2 값의 빈도가 상기 제3 값의 빈도보다 크면, 상기 제2 값의 이진 비트 수는 상기 제3 값의 이진 비트 수보다 짧은, 영상 복호화 방법.
  15. 청구항 12에 있어서,
    상기 제1 주변 블록 또는 상기 제2 주변 블록은 상기 현재 블록에 앞서 화면간 예측으로 부호화된 블록이고, 상기 제1 주변 블록 또는 상기 제2 주변 블록의 참조 픽쳐는 상기 현재 픽쳐인, 영상 복호화 방법.
  16. 청구항 12에 있어서,
    상기 제1 주변 블록 또는 상기 제2 주변 블록은, 상기 현재 블록과 공간적으로 다른 블록을 게재하고 위치하는, 영상 복호화 방법.
  17. 영상 복호화를 위한 프로그램 또는 프로그램 코드를 저장하는 메모리; 및
    상기 메모리에 연결되는 프로세서를 포함하되,
    상기 프로세서는 상기 프로그램에 의해,
    참조 픽쳐의 보간 정밀도가 제1 값을 가질 때, 상기 참조 픽쳐를 참조하는 현재 블록의 제1 주변 블록의 움직임 벡터를 상기 제1 값과 동일하거나 상기 제1 값보다 큰 제2 값의 정밀도로 탐색하고, 상기 제2 값보다 큰 제3 값의 정밀도로 상기 현재 블록의 제2 주변 블록의 움직임 벡터를 탐색하고, 상기 움직임 벡터들의 정밀도에 대한 매칭 정보와 상기 제1 블록과 상기 제2 블록의 움직임 벡터들에 대한 정보를 토대로 영상을 복호화하는, 영상 복호화 장치.
  18. 청구항 17에 있어서,
    상기 제1 값은 진분수이고, 상기 제2 값 또는 상기 제3 값은 정수인, 영상 복호화 장치.
  19. 청구항 17에 있어서,
    상기 매칭 정보를 포함하는 인덱스 내에서 상기 제2 값의 빈도가 상기 제3 값의 빈도보다 크면, 상기 제2 값의 이진 비트 수는 상기 제3 값의 이진 비트 수보다 짧은, 영상 복호화 방법.
  20. 청구항 17에 있어서,
    상기 제1 주변 블록 또는 상기 제2 주변 블록은 상기 현재 블록에 앞서 화면간 예측으로 부호화된 블록이고, 상기 제1 주변 블록 또는 상기 제2 주변 블록의 참조 픽쳐는 상기 현재 픽쳐인, 영상 복호화 방법.
PCT/KR2016/005998 2015-06-05 2016-06-07 영상 부호화 및 복호화 방법과 영상 복호화 장치 WO2016195453A1 (ko)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN201680045584.1A CN108141604B (zh) 2015-06-05 2016-06-07 图像编码和解码方法和图像解码设备
EP16803806.5A EP3306935A4 (en) 2015-06-05 2016-06-07 Image encoding and decoding method and image decoding device
CN202210683068.9A CN115002456A (zh) 2015-06-05 2016-06-07 图像编码和解码方法和图像解码设备
US15/579,903 US20180176596A1 (en) 2015-06-05 2016-06-07 Image encoding and decoding method and image decoding device
CN202210683144.6A CN115086653A (zh) 2015-06-05 2016-06-07 图像编码和解码方法和图像解码设备
CN202210683142.7A CN115002458A (zh) 2015-06-05 2016-06-07 图像编码和解码方法和图像解码设备
CN202210683069.3A CN115002457A (zh) 2015-06-05 2016-06-07 图像编码和解码方法和图像解码设备
EP23153583.2A EP4221202A1 (en) 2015-06-05 2016-06-07 Image encoding and decoding method and image decoding device
CN202210683067.4A CN115002455A (zh) 2015-06-05 2016-06-07 图像编码和解码方法和图像解码设备
CN202210683070.6A CN115086652A (zh) 2015-06-05 2016-06-07 图像编码和解码方法和图像解码设备

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR10-2015-0079918 2015-06-05
KR20150079917 2015-06-05
KR10-2015-0079916 2015-06-05
KR20150079918 2015-06-05
KR20150079916 2015-06-05
KR10-2015-0079917 2015-06-05

Publications (1)

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

Family

ID=57441205

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/005998 WO2016195453A1 (ko) 2015-06-05 2016-06-07 영상 부호화 및 복호화 방법과 영상 복호화 장치

Country Status (4)

Country Link
US (1) US20180176596A1 (ko)
EP (2) EP3306935A4 (ko)
CN (7) CN115086653A (ko)
WO (1) WO2016195453A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019009502A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
CN110178371A (zh) * 2017-01-16 2019-08-27 世宗大学校产学协力团 影像编码/解码方法及装置
WO2019183986A1 (zh) * 2018-03-31 2019-10-03 华为技术有限公司 一种图像块的帧内模式预测方法及装置
CN110754086A (zh) * 2017-06-13 2020-02-04 高通股份有限公司 运动向量预测
CN114079774A (zh) * 2020-08-21 2022-02-22 北京三星通信技术研究有限公司 帧间预测信息的编解码方法及装置
RU2790325C2 (ru) * 2018-06-30 2023-02-16 Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. Способ и устройство для межкадрового предсказания на основе режима слияния

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2677193B1 (es) 2015-08-28 2019-06-19 Kt Corp Procedimiento y dispositivo para procesar señales de vídeo
KR102587638B1 (ko) 2016-06-09 2023-10-10 인텔 코포레이션 비디오 코딩을 위해 이웃 블록 패턴을 이용하는 모션 추정 방법 및 시스템
US10863186B2 (en) * 2016-08-26 2020-12-08 Sharp Kabushiki Kaisha Image decoding apparatus and image coding apparatus
US20190253624A1 (en) * 2017-07-17 2019-08-15 Ki Baek Kim Image data encoding/decoding method and apparatus
US20190238888A1 (en) * 2017-07-17 2019-08-01 Ki Baek Kim Image data encoding/decoding method and apparatus
KR102531386B1 (ko) 2016-10-04 2023-05-12 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
KR20200062365A (ko) * 2016-10-04 2020-06-03 김기백 영상 데이터 부호화/복호화 방법 및 장치
EP3306938A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for binary-tree split mode coding
US11575885B2 (en) * 2016-10-11 2023-02-07 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus and recording medium for storing bitstream
CN116320480A (zh) * 2016-12-22 2023-06-23 株式会社Kt 对视频进行解码或编码的方法和发送视频数据的方法
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
GB201700086D0 (en) * 2017-01-04 2017-02-15 Forbidden Tech Plc Codec
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
KR102559063B1 (ko) 2017-02-24 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US10630974B2 (en) * 2017-05-30 2020-04-21 Google Llc Coding of intra-prediction modes
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
GB2567861A (en) * 2017-10-27 2019-05-01 Sony Corp Image data encoding and decoding
US11070847B2 (en) * 2017-12-05 2021-07-20 Qualcomm Incorporated Intra-prediction with far neighboring pixels
JP2021518692A (ja) * 2018-03-30 2021-08-02 インターデジタル ヴイシー ホールディングス, インコーポレイテッド ビデオ符号化および復号化におけるクロマ量子化パラメータ調整
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US10587885B2 (en) * 2018-06-04 2020-03-10 Tencent America LLC Method and apparatus for merge mode with additional middle candidates in video coding
KR20200001554A (ko) * 2018-06-27 2020-01-06 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
EP3817381A4 (en) * 2018-06-29 2022-04-27 Electronics and Telecommunications Research Institute IMAGE DECODING/CODING APPARATUS AND METHOD FOR PROCESSING THROUGHPUT IMPROVEMENT, AND RECORDING MEDIA STORAGE OF A BITSTREAM
BR112020025916A2 (pt) * 2018-06-30 2021-03-16 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Método para decodificar um sinal de vídeo
CN110677668B (zh) * 2018-07-01 2022-06-21 北京字节跳动网络技术有限公司 空间运动压缩
US10904555B2 (en) * 2018-07-11 2021-01-26 Tencent America LLC Method and apparatus for video coding
AU2019303651B2 (en) * 2018-07-18 2023-04-20 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
KR102302201B1 (ko) * 2018-07-27 2021-09-14 삼성전자주식회사 서브 블록 기반으로 영상을 복호화하는 방법 및 장치, 부호화 방법 및 장치
US10523963B1 (en) * 2018-07-30 2019-12-31 Tencent America LLC Method and apparatus for merge mode in video coding
WO2020025041A1 (en) * 2018-08-03 2020-02-06 Mediatek Inc. Method and apparatus of enhanced intra block copying mode for video coding
US10827195B2 (en) * 2018-08-03 2020-11-03 Tencent America LLC Method and apparatus for unifying adjacent merge candidates and non-adjacent merge candidates
WO2020032526A1 (ko) * 2018-08-06 2020-02-13 엘지전자 주식회사 영상 코딩 시스템에서 컨스트럭티드 어파인 mvp 후보를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
CN112602322B (zh) 2018-08-28 2023-08-22 鸿颖创新有限公司 编码视频数据的装置和方法
CN117376586A (zh) * 2018-09-07 2024-01-09 华为技术有限公司 用于视频译码中帧内预测和帧间预测的插值滤波方法和装置
CN118200558A (zh) 2018-09-17 2024-06-14 三星电子株式会社 用于编码和解码运动信息的方法及用于编码和解码运动信息的装置
WO2020060316A1 (ko) 2018-09-20 2020-03-26 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN112823518B (zh) * 2018-10-08 2023-10-20 华为技术有限公司 用于译码块的几何划分块的帧间预测的装置及方法
US20200120339A1 (en) * 2018-10-11 2020-04-16 Mediatek Inc. Intra Prediction For Multi-Hypothesis
CN111083491A (zh) 2018-10-22 2020-04-28 北京字节跳动网络技术有限公司 细化运动矢量的利用
CN112889269B (zh) * 2018-10-23 2023-10-27 腾讯美国有限责任公司 视频解码方法及装置
BR112021008625A2 (pt) * 2018-11-08 2021-08-10 Guangdong Oppo Mobile Telecommunications Corp., Ltd. método de decodificação e codificação de vídeo e aparelho de decodificação e codificação de vídeo
CN111630865B (zh) 2018-11-12 2023-06-27 北京字节跳动网络技术有限公司 广义双向预测模式的线缓冲器减少
JP7182000B2 (ja) * 2018-11-16 2022-12-01 北京字節跳動網絡技術有限公司 インター-イントラ複合予測モードにおける重み
JP7241870B2 (ja) 2018-11-20 2023-03-17 北京字節跳動網絡技術有限公司 部分的な位置に基づく差分計算
CN113170202B (zh) * 2018-11-29 2023-11-10 华为技术有限公司 用于构建应用多假设预测的块的mpm列表的编码器、解码器及相应方法
JP7293361B2 (ja) * 2018-12-21 2023-06-19 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 予測コーディングのための補間フィルタ処理の方法および装置
CN113261295A (zh) * 2018-12-31 2021-08-13 北京字节跳动网络技术有限公司 具有MVD的Merge中距离索引与距离之间的映射
CN113261294B (zh) * 2019-01-02 2024-06-18 Lg电子株式会社 基于sbtmvp的帧间预测方法和设备
CN113273187A (zh) 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 基于仿射的具有运动矢量差(MVD)的Merge
KR20210122800A (ko) * 2019-02-15 2021-10-12 후아웨이 테크놀러지 컴퍼니 리미티드 인트라 서브 파티션 코딩 모드 도구로부터 서브 파티션의 크기를 제한하는 인코더, 디코더 및 대응하는 방법
CN113439443A (zh) * 2019-02-17 2021-09-24 北京字节跳动网络技术有限公司 帧内块复制Merge候选的信令通知
KR20210122818A (ko) * 2019-02-28 2021-10-12 삼성전자주식회사 영상의 부호화 및 복호화 장치, 및 이에 의한 영상의 부호화 및 복호화 방법
WO2020177755A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Usage of converted uni-prediction candidate
US11240516B2 (en) 2019-03-20 2022-02-01 Tencent America LLC Coding mode signaling for small blocks
EP3972250A4 (en) * 2019-05-13 2023-01-25 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR VIDEO ENCODING BASED ON VIDEO SIZE, AND METHOD AND APPARATUS FOR VIDEO DECODING BASED ON VIDEO SIZE
CN110213581B (zh) * 2019-05-20 2023-03-07 广州市数字视频编解码技术国家工程实验室研究开发与产业化中心 一种基于块划分模式跳过的编码方法、装置及存储介质
WO2021056215A1 (zh) * 2019-09-24 2021-04-01 深圳市大疆创新科技有限公司 运动估计方法、***和存储介质
CN111462170B (zh) * 2020-03-30 2023-08-25 Oppo广东移动通信有限公司 运动估计方法、运动估计装置、存储介质与电子设备
US20210385485A1 (en) * 2020-06-06 2021-12-09 Alibaba Group Holding Limited Angular weighted prediction for inter prediction
CN112055203B (zh) * 2020-08-22 2024-04-12 浙江大华技术股份有限公司 帧间预测方法、视频编码方法及其相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110112187A (ko) * 2010-04-05 2011-10-12 삼성전자주식회사 영상 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR20110139684A (ko) * 2009-03-06 2011-12-29 소니 주식회사 화상 처리 장치 및 방법
KR20140043759A (ko) * 2011-06-28 2014-04-10 엘지전자 주식회사 움직임 벡터 리스트 설정 방법 및 이러한 방법을 사용하는 장치
JP2014523714A (ja) * 2011-07-01 2014-09-11 クゥアルコム・インコーポレイテッド 適応型動きベクトル解像度を用いた映像コーディング
KR20140146541A (ko) * 2013-06-14 2014-12-26 삼성전자주식회사 움직임 정보를 획득하기 위한 방법

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2136565A1 (en) * 2008-06-19 2009-12-23 Thomson Licensing Method for determining a filter for interpolating one or more pixels of a frame, method for encoding or reconstructing a frame and method for transmitting a frame
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
WO2011142221A1 (ja) * 2010-05-11 2011-11-17 シャープ株式会社 符号化装置、および、復号装置
CN107105280B (zh) * 2010-12-14 2020-01-03 M&K控股株式会社 用于编码运动画面的设备
US9560352B2 (en) * 2011-01-28 2017-01-31 Sun Patent Trust Image coding method and image decoding method
WO2012148128A2 (ko) * 2011-04-24 2012-11-01 엘지전자 주식회사 인터 예측 방법과 이를 이용한 인코딩 방법, 디코딩 방법 및 장치
KR20130050405A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 시간 후보자 결정방법
US20130114717A1 (en) * 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
WO2013069976A1 (ko) * 2011-11-08 2013-05-16 주식회사 케이티 영상의 부호화 방법 및 장치, 그리고 영상의 복호화 방법 및 장치
US9392235B2 (en) * 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding
KR101960761B1 (ko) * 2011-11-24 2019-03-22 에스케이텔레콤 주식회사 모션 벡터의 예측 부호화/복호화 방법 및 장치
KR20130073826A (ko) * 2011-12-23 2013-07-03 한국전자통신연구원 시간적 머징 후보의 참조 픽쳐 인덱스 설정 방법 및 장치
EP3499895A1 (en) * 2012-01-18 2019-06-19 Electronics and Telecommunications Research Institute Device for encoding and decoding video
WO2013109124A1 (ko) * 2012-01-19 2013-07-25 삼성전자 주식회사 쌍방향 예측 및 블록 병합을 제한하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
SG11201406675WA (en) * 2012-04-16 2014-11-27 Samsung Electronics Co Ltd Method and apparatus for determining reference picture set of image
WO2013156678A1 (en) * 2012-04-16 2013-10-24 Nokia Corporation An apparatus, a method and a computer program for video coding and decoding
CN104604232A (zh) * 2012-04-30 2015-05-06 数码士控股有限公司 用于编码多视点图像的方法及装置,以及用于解码多视点图像的方法及装置
JP5613846B2 (ja) * 2012-05-09 2014-10-29 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 動きベクトル予測方法及び動きベクトル予測装置
WO2013176485A1 (ko) * 2012-05-22 2013-11-28 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US20130343459A1 (en) * 2012-06-22 2013-12-26 Nokia Corporation Method and apparatus for video coding
US9479778B2 (en) * 2012-08-13 2016-10-25 Qualcomm Incorporated Device and method for coding video information using base layer motion vector candidate
US10021388B2 (en) * 2012-12-26 2018-07-10 Electronics And Telecommunications Research Institute Video encoding and decoding method and apparatus using the same
US9277200B2 (en) * 2013-01-17 2016-03-01 Qualcomm Incorporated Disabling inter-view prediction for reference picture list in video coding
US9800857B2 (en) * 2013-03-08 2017-10-24 Qualcomm Incorporated Inter-view residual prediction in multi-view or 3-dimensional video coding
KR20130067280A (ko) * 2013-04-18 2013-06-21 엠앤케이홀딩스 주식회사 인터 예측 부호화된 동영상 복호화 방법
US20150016502A1 (en) * 2013-07-15 2015-01-15 Qualcomm Incorporated Device and method for scalable coding of video information
US10531116B2 (en) * 2014-01-09 2020-01-07 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110139684A (ko) * 2009-03-06 2011-12-29 소니 주식회사 화상 처리 장치 및 방법
KR20110112187A (ko) * 2010-04-05 2011-10-12 삼성전자주식회사 영상 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR20140043759A (ko) * 2011-06-28 2014-04-10 엘지전자 주식회사 움직임 벡터 리스트 설정 방법 및 이러한 방법을 사용하는 장치
JP2014523714A (ja) * 2011-07-01 2014-09-11 クゥアルコム・インコーポレイテッド 適応型動きベクトル解像度を用いた映像コーディング
KR20140146541A (ko) * 2013-06-14 2014-12-26 삼성전자주식회사 움직임 정보를 획득하기 위한 방법

Non-Patent Citations (1)

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

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110178371A (zh) * 2017-01-16 2019-08-27 世宗大学校产学协力团 影像编码/解码方法及装置
CN110754086A (zh) * 2017-06-13 2020-02-04 高通股份有限公司 运动向量预测
US11689740B2 (en) 2017-06-13 2023-06-27 Qualcomm Incorporated Motion vector prediction
US11196994B2 (en) 2017-07-06 2021-12-07 Samsung Electronics Co., Ltd. Video coding method and device, video decoding method and device
WO2019009502A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US11689721B2 (en) 2017-07-06 2023-06-27 Samsung Electronics Co.. Ltd. Video coding method and device, video decoding method and device
CN111919442A (zh) * 2018-03-31 2020-11-10 华为技术有限公司 一种图像块的帧内模式预测方法及装置
EP3764644A4 (en) * 2018-03-31 2021-06-09 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR INTRAFRAME MODE PREDICTION FOR PICTURE BLOCK
US11457222B2 (en) 2018-03-31 2022-09-27 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction of picture block
CN111919442B (zh) * 2018-03-31 2023-04-04 华为技术有限公司 一种图像块的帧内模式预测方法及装置
WO2019183986A1 (zh) * 2018-03-31 2019-10-03 华为技术有限公司 一种图像块的帧内模式预测方法及装置
RU2790325C2 (ru) * 2018-06-30 2023-02-16 Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. Способ и устройство для межкадрового предсказания на основе режима слияния
CN114079774A (zh) * 2020-08-21 2022-02-22 北京三星通信技术研究有限公司 帧间预测信息的编解码方法及装置
CN114079774B (zh) * 2020-08-21 2024-05-31 北京三星通信技术研究有限公司 帧间预测信息的编解码方法及装置

Also Published As

Publication number Publication date
CN108141604B (zh) 2022-07-05
US20180176596A1 (en) 2018-06-21
EP4221202A1 (en) 2023-08-02
CN115002458A (zh) 2022-09-02
CN115086652A (zh) 2022-09-20
CN115086653A (zh) 2022-09-20
CN115002455A (zh) 2022-09-02
CN108141604A (zh) 2018-06-08
EP3306935A4 (en) 2019-01-02
CN115002456A (zh) 2022-09-02
CN115002457A (zh) 2022-09-02
EP3306935A1 (en) 2018-04-11

Similar Documents

Publication Publication Date Title
WO2016195453A1 (ko) 영상 부호화 및 복호화 방법과 영상 복호화 장치
WO2016200242A1 (ko) 적응적인 디블록킹 필터링을 이용하는 영상 부호화 방법과 영상 복호화 방법 및 장치
WO2016195460A1 (ko) 화면 내 예측에 대한 부호화/복호화 방법 및 장치
WO2019112394A1 (ko) 채널들 간의 선택적인 정보 공유를 사용하는 부호화 및 복호화를 위한 방법 및 장치
WO2020004900A1 (ko) 화면내 예측 방법 및 장치
WO2019107927A1 (ko) 양방향 인트라 예측 방법 및 장치
WO2021015581A1 (ko) 기하학적 분할을 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2020050600A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020017873A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018174618A1 (ko) 참조 블록을 사용하는 예측 방법 및 장치
WO2021112652A1 (ko) 영역 차등적 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2020060317A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021112651A1 (ko) 팔레트 모드를 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2020256522A1 (ko) 영역 분할을 사용하는 영상 부호화 및 영상 복호화를 위한 방법 및 장치
WO2020067700A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2022019613A1 (ko) 기하학적 분할을 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2019074273A1 (ko) 인터 예측 정보를 사용하는 방법 및 장치
WO2019147067A1 (ko) 시간적 움직임 정보를 이용하는 영상 부호화 및 영상 복호화를 위한 방법 및 장치
WO2019117645A1 (ko) 예측 네트워크를 사용하는 영상의 부호화 및 복호화를 위한 방법 및 장치
WO2020256495A1 (ko) 참조 픽처를 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2021029720A1 (ko) 분할을 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2019182312A1 (ko) 기하 변환 참조 픽처를 이용한 영상 부호화/복호화 방법 및 장치
WO2024076220A1 (ko) 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2023055199A1 (ko) 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2023055146A1 (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: 16803806

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15579903

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

Country of ref document: EP