WO2010085064A2 - 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법 - Google Patents

움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법 Download PDF

Info

Publication number
WO2010085064A2
WO2010085064A2 PCT/KR2010/000248 KR2010000248W WO2010085064A2 WO 2010085064 A2 WO2010085064 A2 WO 2010085064A2 KR 2010000248 W KR2010000248 W KR 2010000248W WO 2010085064 A2 WO2010085064 A2 WO 2010085064A2
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
prediction mode
prediction
encoding
predicted
Prior art date
Application number
PCT/KR2010/000248
Other languages
English (en)
French (fr)
Other versions
WO2010085064A3 (ko
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 CN201080013412.9A priority Critical patent/CN102362498B/zh
Publication of WO2010085064A2 publication Critical patent/WO2010085064A2/ko
Publication of WO2010085064A3 publication Critical patent/WO2010085064A3/ko
Priority to US13/190,265 priority patent/US9070179B2/en
Priority to US13/846,494 priority patent/US8908981B2/en
Priority to US14/717,973 priority patent/US9363531B2/en
Priority to US14/718,036 priority patent/US9445118B2/en
Priority to US14/718,027 priority patent/US9420304B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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

Definitions

  • the present invention relates to a motion vector encoding / decoding apparatus and method, and an image encoding / decoding apparatus and method using the same. More specifically, the present invention relates to a method and apparatus for improving coding efficiency and compression efficiency by selecting a motion vector for prediction as a more accurate motion vector in a field of image processing for encoding and decoding a video, and encoding the video with a small bit amount.
  • the predicted motion vector (PMV: also called “predicted motion vector”) for the motion vector of the current block is calculated from the motion vector of the neighboring block.
  • PMV predicted motion vector
  • DMV residual signal
  • difference value residual value
  • the encoding efficiency increases as the predictive motion vector is accurate for efficient compression.
  • Predictive encoding efficiency can be further improved by selecting and using the most suitable one for predictive encoding.
  • the simplest motion vector predictive encoding method for this purpose is to encode information on which prediction value is used for motion vector predictive encoding.
  • the current H.264 / AVC standard uses the horizontal component of motion vectors of neighboring blocks (left, top, top right). The median of each of the and vertical components is used as a predicted motion vector (PMV) for predictive coding of the motion vector.
  • PMV predicted motion vector
  • a predetermined default method known in encoding and decoding which is an intermediate value, is determined, and information about which prediction value is used by encoding and decoding a predicted value (predicted motion vector) is used. This eliminates the need for coding.
  • the existing method using a predetermined default method of the median in advance has the advantage of maintaining improved coding efficiency without transmitting additional information on which motion vector is used as the predictive motion vector, but using the median prediction used.
  • the problem is that the motion vector is not the optimal predicted motion vector that always generates the minimum amount of bits required to encode the difference vector.
  • the video compression encoding method includes a variety of more sophisticated encoding methods to compete according to a predetermined coding criterion, and then select a coding method showing an optimal coding efficiency evaluated according to a predetermined criterion, thereby increasing the coding efficiency.
  • the compressed data is stored or transmitted in a bitstream according to a predetermined rule (or protocol) promised between the encoder and the decoder.
  • each element constituting the bitstream is called a syntax element.
  • the encoder should encode a motion vector.
  • the encoder has various motion vectors within a search range and finds an optimal one among them.
  • information indicating whether a prediction motion vector is used may be regarded as an example of a syntax element.
  • a difference with a predetermined predefined prediction motion vector such as an intermediate value, may be encoded.
  • it may be adaptive to use some predictive motion vector in some cases and another predictive motion vector in other cases. In this case, it is also necessary to inform the decoder how to select the predictive motion vector. Information indicating this can also be an example of a syntax element.
  • One preferred solution to solve this problem is to decode the value of the syntax element determined by the encoder according to a predetermined coding criterion, and the decoder decodes a predetermined syntax element through its own estimation of the syntax element. By estimating by itself, the encoder does not have to store or transmit the corresponding syntax element value to the decoder.
  • this method cannot be applied in all cases. Therefore, this method can be selectively used only in some cases where the decoder can equally estimate the syntax element determined by the encoder.
  • a method of selective syntax transmission that does not transmit the corresponding syntax element but in other cases, transmits a syntax element through a process of estimating a predetermined syntax element using the value of the pre-decoded image or the decoding process itself. Since the decoder must determine whether there is a Syntax Element, there is a problem in that a syntax element parsing process and a decoding process cannot be separated. In addition, when an error is included in a decoding result or a decoding process required for a predetermined syntax element estimating whether a syntax element exists, a syntax element may be normally determined.
  • the decoder may try to parse it even though it did not send the syntax element, or the decoder might decide that it does not need to read it even though it sent the syntax element. It can cause fatal obstacles. For this reason, attempts to increase coding efficiency by selectively sending or not sending syntax elements have not yet become commonplace. However, the present invention seeks to provide a method and apparatus that fundamentally solves these conventional problems.
  • the technical field of the present invention relates to a syntax element encoding / decoding method of still images and moving images used to achieve the above object, and an apparatus thereof.
  • An object of the present invention for solving the above problems is to select a predicted motion vector more accurately by enabling the selection of a predicted motion vector for a current motion vector using a plurality of motion vector prediction modes, and thereby The amount of coding bits is reduced and the performance of motion prediction and / or motion compensation is improved.
  • the present invention provides the decoding apparatus with information to find the prediction motion vector instead of directly informing the decoding apparatus of the prediction motion vector used for encoding while improving encoding efficiency by selecting a more accurate prediction motion vector.
  • the decoding apparatus By sharing the function to find with the decoding apparatus, the increase in the amount of encoding bits for additional information generated to inform the predicted motion vector is reduced, thereby further improving the encoding efficiency and the decoding efficiency.
  • the present invention is to determine whether the syntax exists in the bitstream according to the decoding result of the syntax elements constituting the bitstream of the image, the number of cases that exist (or does not exist) within a predetermined unit and In this case, it is necessary to inform the decoder of the value separately so that a syntax element parsing process and a decoding process can be separated.
  • the present invention provides an apparatus for encoding a motion vector, comprising: a prediction motion vector selector for selecting an optimal prediction motion vector from a candidate motion vector set of a current block; A prediction mode determiner that selects one motion vector prediction mode from among a plurality of motion vector prediction modes and determines the motion vector prediction mode of the current block based on a predetermined criterion determined with the motion vector decoding apparatus; And determine an optimal predicted motion vector or a default motion predictive vector as the predicted motion vector for the current motion vector according to the determined motion vector prediction mode, and encode a difference vector between the current block and the determined predicted motion vector, and according to the determined motion vector prediction mode. And an encoder for selectively encoding and outputting the determined motion vector prediction mode.
  • the plurality of motion vector prediction modes include a competitive prediction mode and a non-competitive prediction mode
  • the prediction mode determiner determines whether the motion vector prediction mode of the current block is the non-competitive prediction mode based on a predetermined decision criterion with the motion vector decoding apparatus.
  • the competitive prediction mode or the non-competitive prediction mode may be selected as the motion vector prediction mode of the current block.
  • the prediction mode determiner may determine the non-competitive prediction mode as the motion vector prediction mode of the current block when the optimal prediction motion vector is the same as the default prediction motion vector.
  • the optimal prediction motion vector is the same as the default prediction motion vector
  • One or more candidate motion vectors may be one or more of the same case, and an optimal prediction motion vector selected from two or more candidates and not all of the same candidate motion vectors is the same as the default prediction motion vector.
  • the encoder may further include: a first encoder for generating and encoding a difference vector by determining a default motion prediction vector as a prediction motion vector when the determined motion vector prediction mode is a non-competitive prediction mode; When the determined motion vector prediction mode is a competitive prediction mode, a differential vector is generated and encoded by determining an optimal predicted motion vector or a default predicted motion vector as a predicted motion vector according to whether the motion vector decoding apparatus can predict the optimal predicted motion vector. A second encoder; And a third encoder that encodes the determined motion vector prediction mode only when the determined motion vector prediction mode is the competitive prediction mode.
  • the determined motion vector prediction mode may consist of one bit, and may indicate a competitive prediction mode or a non-competitive prediction mode according to a bit value, and the encoded motion vector prediction mode may be inserted into a slice header or a picture header of the bitstream.
  • the current block is selected by selecting one motion vector prediction mode from among a plurality of motion vector prediction modes based on a predetermined criterion determined by the motion vector decoding apparatus. Determining as a motion vector prediction mode of the signal; Determining a predicted motion vector for the current motion vector according to the selected motion vector prediction mode; Encoding a difference vector between the current motion vector and the determined predicted motion vector; Selectively encoding a motion vector prediction mode determined according to the determined motion vector prediction mode; And generating and outputting a bitstream including an encoded difference vector and an encoded motion vector prediction mode.
  • the apparatus for decoding a motion vector it is determined whether the motion vector prediction mode of the current block is a non-competitive prediction mode according to a predetermined criterion determined with the motion vector encoding apparatus, and the encoding is performed.
  • a difference vector decoder configured to decode the difference vector to restore and output the difference vector
  • a prediction mode decoder configured to decode the encoded motion vector prediction mode to reconstruct and output the motion vector prediction mode
  • a first predicted motion vector determiner that determines the default predicted motion vector as the predicted motion vector for the current motion vector when the motion vector prediction mode of the current block is the non-competitive prediction mode; If the motion vector prediction mode of the current block is not the non-competitive prediction mode, the second predictive motion vector determiner determines the optimal predicted motion vector or the default predicted motion vector as the predicted motion vector for the current motion vector according to the reconstructed motion vector prediction mode.
  • a motion vector decompressor for reconstructing the current motion vector by adding the determined predicted motion vector and the reconstructed difference vector.
  • a method of decoding a motion vector comprising: reconstructing a motion vector prediction mode and a difference vector by decoding a coded motion vector prediction mode and a coded difference vector; Determining whether the motion vector prediction mode of the current block is a non-competitive prediction mode according to a predetermined criterion determined by the motion vector encoding apparatus; If the determined motion vector prediction mode is a non-competitive prediction mode, determining a default predicted motion vector as a predicted motion vector for the current motion vector of the current block; If the determined motion vector prediction mode is a competitive prediction mode other than the non-competitive prediction mode, the optimal predicted motion vector or the default predicted motion vector selected from the candidate motion vector set is replaced with the current motion vector of the current block based on the reconstructed motion vector prediction mode. Determining a predicted motion vector for the target; And reconstructing the current motion vector by adding the determined predicted motion vector and the difference vector.
  • the encoded motion vector prediction mode includes bits indicating the number of motion vector prediction modes and bits indicating the number of motion vector prediction modes
  • the motion vector decoding method includes one of all blocks reconstructed in the current slice or the current picture.
  • the decoding apparatus can determine the occurrence of the error and perform follow-up measures to conceal the error or solve the error. Therefore, it is possible to prevent a decoder failure from occurring and improve the performance of the decoder.
  • FIG. 1 is an exemplary diagram showing a block for encoding a motion vector according to an embodiment of the present invention
  • FIG. 2 is a block diagram schematically illustrating a motion vector encoding apparatus according to an embodiment of the present invention
  • FIG. 3 is a block diagram schematically illustrating a motion vector decoding apparatus according to an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a motion vector encoding method according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating an embodiment of a motion vector encoding method according to an embodiment of the present invention
  • FIG. 6 is a flowchart illustrating a process of selecting a candidate motion vector set according to an embodiment of the present invention
  • FIG. 7 is a flowchart illustrating a process of selecting a predictive motion vector according to an embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating a process of determining whether an optimal predictive motion vector is predictable according to an embodiment of the present invention
  • FIG. 9 is a flowchart illustrating a process of encoding a current motion vector using an optimal predictive motion vector according to an embodiment of the present invention.
  • FIG. 10 is a flowchart illustrating a process of encoding a current motion vector using a default predicted motion vector according to an embodiment of the present invention
  • FIG. 11 is a flowchart illustrating a process of performing third encoding according to an embodiment of the present invention.
  • FIG. 12 is an exemplary diagram for explaining a case of collecting and encoding a motion vector prediction mode and the number of motion vector prediction modes according to an embodiment of the present invention
  • FIG. 11 is a flowchart illustrating a motion vector decoding method according to an embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating a specific implementation of a motion vector decoding method according to an embodiment of the present invention
  • FIG. 13 is a flowchart illustrating a process of determining a default predicted motion vector as a predicted motion vector for a current motion vector according to an embodiment of the present invention
  • FIG. 14 is a flowchart for explaining a motion vector decoding method according to another embodiment of the present invention.
  • FIG. 15 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
  • 16 is an exemplary diagram illustrating a specific implementation of an image encoding device according to an embodiment of the present invention.
  • FIG. 17 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 18 is an exemplary view illustrating a specific implementation of an image decoding apparatus according to an embodiment of the present invention.
  • the video encoding apparatus, the video decoding apparatus, the motion vector encoding apparatus, and the motion vector decoding apparatus include a personal computer (PC), a notebook computer, a personal digital assistant (PDA), and a portable multimedia player (PMP).
  • PC personal computer
  • PDA personal digital assistant
  • PMP portable multimedia player
  • PSP Portable Multimedia Player
  • PSP PlayStation Portable
  • PSP Mobile Communication Terminal
  • the present invention refers to various apparatuses including various programs for decoding or various programs for encoding or decoding motion vectors, a memory for storing data, a microprocessor for executing and operating programs, and the like.
  • an image encoded in a bitstream by an image encoding apparatus or a motion vector encoding apparatus may be real-time or non-real-time, through a wired / wireless communication network such as the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, a mobile communication network, or the like. It may be transmitted to an image decoding apparatus or a motion vector decoding apparatus through a communication interface such as a universal serial bus (USB), so that the image or motion vector may be restored and reproduced.
  • a wired / wireless communication network such as the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, a mobile communication network, or the like.
  • a communication interface such as a universal serial bus (USB)
  • FIG. 1 is an exemplary diagram illustrating a block for encoding a motion vector according to an embodiment of the present invention.
  • block D is a "current block” corresponding to a motion vector to be encoded
  • blocks A, B, and C are “near blocks” for block D.
  • MV A , MV B , MV C And MV D Is a motion vector (MV) of blocks A, B, C, and D, and each is a horizontal component (MV).
  • vertical components MV A y , MV B y , MV C y And MV D y Is defined as having
  • the motion vector MV of the block D which is the current block D Is called the current motion vector.
  • the predicted motion vector (PMV D ) for the current motion vector is a motion vector (MV A , MV B and MV C ) of neighboring blocks (block A, block B, block C ). It can be seen that it is calculated as a variable of a specific function (F ()).
  • the predicted motion vector (PMV D ) for the current motion vector is calculated by using a function for calculating a median Median as a specific function F (). That is, the predicted motion vector PMV D for the current motion vector is obtained as the median Median for the motion vectors MV A , MV B and MV C of the neighboring blocks (blocks A, B, and C ). will be.
  • the predicted motion vector PMV D with respect to the current motion vector MV D calculated in this manner is represented by Equation 2.
  • the current motion vector (MV D) when determined that (PMV D), to be compressed by using the equation (3) using a predictive motion vector (PMV D) the soothing motion vector differential vector can be obtained a (DMV D differential motion Vector), the difference vector (DMV D) is encoded by a predetermined method a pre-defined, such as entropy encoding transmission do.
  • Equation 2 As illustrated in FIG. 1, when the value of the current motion vector MV D is (2,0), using Equation 2 according to the conventional method of calculating the predicted motion vector PMV D through an intermediate value, The predicted motion vector PMV D becomes (2,1).
  • the intermediate value is a predictive motion vector, so that both the encoding apparatus and the decoding apparatus know, so that it is not necessary to encode and transmit additional information about which motion vector is used as the predictive motion vector of the current motion vector. Encoding efficiency can be improved.
  • the encoding apparatus is a concept including a motion vector encoding apparatus and an image encoding apparatus
  • the decoding apparatus is a concept including a motion vector decoding apparatus and an image decoding apparatus. The motion vector encoding apparatus, the motion vector decoding apparatus, the image encoding apparatus, and the image decoding apparatus will be described in detail in the following process.
  • the predicted motion vector PMV D calculated using the median value may be different from the actual current motion vector MV D.
  • (2,1) which is the predicted motion vector (PMV D ) calculated using the median
  • (2,0) which is the current motion vector (MV D )
  • differential vector by using a third difference to the encoded ask (DMV D) vector (DMV D) is (0, -1).
  • (2,0) which is the motion vector (MV A ) of the block A
  • (2,0) which is the actual current motion vector (MV D )
  • the differential signal (D DMV) to be encoded. That is, a prediction motion vector calculated using the median than using the (2,1) (PMV D), predict the (2,0) of the block A motion vector (MV A) the motion vector (PMV D ) Can reduce the amount of bits used to encode the difference vector (DMV D ) as (0,0).
  • the motion vector MV A of the block A is converted to the predicted motion vector PMV D. It is impossible to use). If, additional to whether a motion vector (MV A) the block A predicted motion vector even with a (PMV D), used as MV A, MV B and MV C which motion vector is a predictive motion vector (PMV D) from Since information must be transmitted together, there is another problem in that it is not possible to guarantee whether the compression efficiency is improved by encoding additional information.
  • the embodiment of the present invention proposes an efficient method for notifying the decoding apparatus of the selected prediction motion vector while improving encoding efficiency by selecting a more accurate prediction motion vector, thereby encoding additional information generated to inform the prediction motion vector. Also, the problem of bit increase due to the present invention will be solved.
  • the motion vector prediction mode is skipped in the bitstream to be transmitted or stored, thereby improving the coding efficiency, but without knowing whether the motion vector prediction mode is omitted. Parsing is enabled to allow the decoding apparatus to operate stably.
  • the motion vector prediction mode refers to a prediction mode of a motion vector for identifying how to predict the motion vector.
  • a block (block A, block B, block C and block D) and a motion vector MV A , MV B , MV C and MV D corresponding thereto, which are exemplarily illustrated in FIG. 1, are generally used in the following process.
  • the motion vectors MV A , MV B , MV C and MV D are illustrated as two-dimensional vectors having vertical and horizontal components, but this is for convenience of description and is not limited thereto. You can apply it as a vector.
  • the neighboring blocks of the current block (block D) are shown as only three blocks A, B, and C according to spatial proximity in FIG. 1, this is for convenience of description, but is not limited thereto. There may be one or more peripheral blocks in the vicinity.
  • the motion vector prediction mode includes a competitive prediction mode and a non-competing prediction mode.
  • the competitive prediction mode refers to a mode in which there are several methods for predicting the current motion vector and competes with each other.
  • the non-competitive prediction mode predicts only one method because there are not many methods for predicting the current motion vector. Say mode.
  • the non-competitive prediction mode is determined as the motion vector prediction mode. This is because the encoding apparatus and the decoding apparatus can find the same predictive motion vector by themselves without further exchanging information for identifying which candidate motion vector is used as the predictive motion vector.
  • the non-competitive prediction mode is the motion vector. Determined as the prediction mode. This is because the decoding apparatus obtains a predetermined default prediction motion vector by itself, such as a median value, and checks whether the default prediction motion vector is the same as the optimal prediction motion vector predicted through a predetermined process. This is because the decoding apparatus may know that the default prediction motion vector may be used as the prediction motion vector when the and optimal prediction motion vectors are the same, even if the decoding apparatus does not exchange additional information with the encoding apparatus.
  • the decoding apparatus may know that the motion vector prediction mode is the non-competitive prediction mode by itself, and may use the default predicted motion vector as the prediction motion vector. Therefore, the case of determining the aforementioned non-competitive prediction mode is referred to as a non-competitive case.
  • the decoding apparatus may use the default predicted motion vector as the predicted motion vector, and it may know for itself whether the current block corresponds to the non-competitive prediction mode. Therefore, the encoding apparatus does not need to further encode and transmit information indicating that the current block corresponds to the non-competitive prediction mode. That is, in this case, encoding and transmission of the motion vector prediction mode may be omitted.
  • 'competition case' non-competitive case
  • the decoding apparatus does not receive additional information from the encoding apparatus, which motion vector of the candidate motion vectors is used as the predicted motion vector. Since it is unknown, the encoding apparatus must additionally encode and transmit information about the same.
  • the motion vector prediction mode corresponding to the contention case is referred to as a competitive prediction mode.
  • the additional information indicates which motion vector of the candidate motion vectors is to be used as the prediction motion vector to recover the current motion vector. Tells.
  • the additional information may be used by the decoding apparatus to reconstruct the current motion vector, using a motion vector (optimal predicted motion vector) selected according to a predetermined criterion or method among candidate motion vectors, or a predefined value such as an intermediate value.
  • Information indicating whether to use a default predicted motion vector may be used. This information is a motion vector prediction mode.
  • the optimal predicted motion vector only means a predicted motion vector of the current motion vector obtained according to a predetermined criterion or method, but does not mean that the predicted motion vector thus obtained is always an optimal predicted value.
  • the additional information is to use the optimal predictive motion vector, it is the case that the decoding apparatus is able to predict the optimal predictive motion vector, so that the prediction is possible (that is, predictable), the motion vector prediction mode is 1 It can be expressed as a bit flag, but the flag can be expressed as '1'.
  • the additional information is to use the default prediction motion vector, it is the case that the encoding apparatus determines that the optimum prediction motion vector cannot be predicted, and thus the prediction is not possible (that is, when it is not predictable). It can be expressed as a bit flag, but the flag can be expressed as '0'.
  • FIG. 2 is a block diagram schematically illustrating a motion vector encoding apparatus according to an embodiment of the present invention.
  • the motion vector encoding apparatus 200 may include a predictive motion vector selector 210, a motion vector prediction mode selector 220, a first encoder 230, and a second encoder ( 240 and the third encoder 250 may be configured.
  • the predictive motion vector selector 210 selects a candidate motion vector set, which is a set of candidate motion vectors that can be used as a predictive motion vector, with respect to the current motion vector of the current block, and selects a predicted motion vector from the selected candidate motion vector set. .
  • the method of selecting the predicted motion vector from the candidate motion vector set may vary.
  • the candidate motion vector that minimizes the difference from the current motion vector in the candidate motion vector set may be selected as the predicted motion vector.
  • the predicted motion vector selected from the candidate motion vector set by the predictive motion vector selector 210 is hereinafter referred to as an optimal predictive motion vector for convenience of description.
  • the optimal prediction motion vector is defined as a specific example, and in the embodiment of the present invention, the optimal prediction motion vector is the prediction motion of the current motion vector obtained according to a predetermined criterion or method as described above. Means vector.
  • the prediction mode determiner 220 determines whether the optimal predicted motion vector selected by the predictive motion vector selector 210 will be used for reconstructing the current motion vector or the default predicted motion vector by the motion vector decoding apparatus, and the result of the determination. In this case, one of the competitive prediction mode and the non-competitive prediction mode is selected to determine the motion vector prediction mode. In this case, when the motion vector prediction mode corresponds to the non-competitive prediction mode, the motion vector decoding apparatus may know for itself whether the block to be decoded corresponds to the non-competition prediction mode. Can raise.
  • the prediction mode determiner 220 determines the non-competitive prediction mode as the motion vector prediction mode of the current block.
  • the motion vector selected from the plurality of different candidate motion vectors that is, the optimal prediction motion vector is selected as the prediction motion vector as well as the case where the optimal prediction motion vector is the same as the default prediction motion vector. If there is no candidate motion vector, if there is only one candidate motion vector, there may be two or more candidate motion vectors but all may be the same.
  • the candidate motion vector that can be used as the prediction motion vector in the prediction motion vector selector 210 does not exist (in this case, since there is no candidate motion vector that can be used as the prediction motion vector) 0 or 0). If one or both are the same, both the motion vector encoding apparatus 200 and the motion vector decoding apparatus will find the same optimal predicted motion vector, and the found optimal predicted motion vector is the default predicted motion vector. This is because
  • the motion vector encoding apparatus 200 and the motion vector decoding apparatus share the same prediction motion vector by sharing a predetermined determination process in which the same result occurs even if the optimal prediction motion vector is selected through any prediction mode. You can choose.
  • the difference vector which is the difference between the current motion vector and the predicted motion vector, is encoded by the first encoder 230.
  • the first encoder 230 operates when the motion vector prediction mode is determined as the non-competitive prediction mode in the prediction mode determiner 220, and determines the default motion prediction vector as the prediction motion vector for the current motion vector, and determines the current motion vector.
  • the difference vector of the predicted motion vector is calculated and the calculated difference vector is encoded.
  • the second encoder 230 operates when the prediction mode determiner 220 determines that the motion vector prediction mode is the competitive prediction mode, and the prediction is determined according to the bit flag value of the motion vector prediction mode determined by the prediction mode determiner 220.
  • a predefined default predicted motion vector e.g., motion vector prediction
  • a motion vector i.e., an optimal predicted motion vector (e.g., when the bit flag value of the motion vector prediction mode is '1') or an intermediate value
  • the bit flag value of the mode is '0')
  • the difference vector calculated by encoding the difference vector between the current motion vector and the predicted motion vector is encoded.
  • the third encoder 250 encodes the motion vector prediction mode of the blocks in which the motion vector prediction mode is determined as the competitive prediction mode by the prediction mode determiner 220 among the blocks in a predetermined unit (for example, a slice, a picture, etc.). do.
  • the third encoder 250 separately encodes the motion vector prediction mode of the blocks in which the motion vector prediction mode is determined as the competitive prediction mode among the blocks in the predetermined unit, so that the motion vector decoding apparatus corresponds to the competitive prediction mode from the bitstream.
  • the parsing process is performed independently of the decoding process of restoring the current motion vector or restoring texture information of the block.
  • the third encoder 250 encodes a current motion vector, for example, a predetermined coding unit (for example, a slice unit or a picture unit, or less) existing above a coding unit (for example, a macroblock unit or a block unit).
  • a current motion vector for example, a predetermined coding unit (for example, a slice unit or a picture unit, or less) existing above a coding unit (for example, a macroblock unit or a block unit).
  • a coding unit for example, a macroblock unit or a block unit.
  • a coding unit for example, a macroblock unit or a block unit.
  • the upper unit may be a slice unit, but is not limited thereto and may be a larger unit than a slice unit such as a picture unit.
  • the number of motion vector prediction modes of the blocks in which the motion vector prediction mode is determined as the competitive prediction mode among the blocks in the higher unit is determined.
  • information that identifies i.e., the number of motion vector prediction modes to transmit or store
  • number_mv_mode_flag_minus1 which is one less than the total number in FIG. 12
  • Information identifying the number of information about the motion vector prediction mode that is, the bit flag indicating the motion vector prediction mode
  • bit values of the bit flag may be listed, and FIG.
  • the third encoder 250 identifies information for the number of motion vector prediction modes and moves by that number. While information on the prediction mode vector may be encoded using an encoding technique such as entropy encoding, or compression encoded in a variety of lossless compression scheme, it may still transmit without compression.
  • the difference vector encoded by the first encoder 230 or the second encoder 240 is inserted into the bitstream, and the motion prediction mode encoded by the third encoder 250 is also inserted into the bitstream.
  • a difference vector encoded by a multiplexer and a coded motion prediction mode may be inserted into the bitstream.
  • the motion prediction mode encoded by the third encoder 250 when it is inserted into the bitstream, it may be inserted before the difference vector is inserted in the bitstream, and may be inserted into different headers according to higher units. For example, if the upper unit is a slice unit, it may be inserted into a slice header. If the upper unit is a picture unit, it may be inserted into a picture header.
  • the encoded bitstream is transmitted and decoded to the motion vector decoding apparatus through a transmission channel such as a wired, wireless or storage medium.
  • FIG. 3 is a block diagram schematically illustrating a motion vector decoding apparatus according to an embodiment of the present invention.
  • the motion vector decoding apparatus 300 includes a prediction mode decoder 310, a motion vector prediction mode determination and a differential vector decoder 320, and a first prediction motion vector determiner. 330, a second predicted motion vector determiner 340, and a motion vector reconstructor 350.
  • the encoded motion vector prediction mode and the encoded difference vector which are encoded by the motion vector encoding apparatus 200 and inserted into the bitstream, are different from each other in advance between the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300. It is decoded according to a predetermined unit. That is, the encoded motion vector prediction mode is decoded in an upper unit, and the encoded difference vector is decoded in a lower unit, that is, in a block unit.
  • a motion vector prediction mode encoded from a bitstream and a coded differential vector are distinguished from each other by a demultiplexer, and the motion vector prediction mode encoded in a higher unit is a prediction mode decoder 310. ), And the encoded difference vector for each block is input to the motion vector prediction mode determination and the difference vector decoder 320. If the current block is encoded in the SKIP mode, there is no difference vector. Therefore, there is no encoded difference vector input to the motion vector prediction mode determination and the difference vector decoder 320.
  • the prediction mode decoder 310 outputs a reconstructed motion vector prediction mode by decoding a coded motion vector prediction mode of blocks corresponding to a competitive prediction mode in an upper unit, and the output motion vector prediction mode is a storage medium such as a memory.
  • the motion vectors determined by the motion vector prediction mode which are stored in the second prediction motion vector determiner 340 are sequentially read one by one each time the second prediction motion vector determiner 340 determines the prediction motion vector of each block. To decide.
  • the reconstructed motion vector prediction mode includes bits indicating the number of motion vector prediction modes and bits indicating the number of motion vector prediction modes, and the prediction mode decoder 310 first determines the number of motion vector prediction modes.
  • the number of motion vector prediction modes is determined by reading the indicating bits, the number of bits are read sequentially, and the bits indicating the number of motion vector prediction modes are read, the motion vector prediction mode is parsed, and the parsed motion vector prediction is parsed. Only bits indicating the mode are output and stored.
  • the prediction mode decoder 310 parses the motion vector prediction modes corresponding to higher units classified in the bitstream through parsing when the motion vector prediction modes are represented as shown in FIG. 12 without additional compression such as entropy encoding.
  • the motion vector prediction mode is restored. If entropy coding or other lossless compression coding is performed, the motion vector prediction mode is restored by decoding through an inverse process corresponding to each encoding method. In any case, the decoding process of the motion vector prediction mode is performed independently of a previous or subsequent decoding process (for example, decoding of the encoded difference vector or decoding of the encoded texture information).
  • the differential vector decoder 320 determines whether the motion vector prediction mode of the current block to be decoded is a non-competitive prediction mode through a predetermined determination process shared between the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300. If it is not in the non-competitive prediction mode, it is determined as the competitive prediction mode.
  • the method of determining whether the differential vector decoder 320 determines whether the motion vector prediction mode of the current block is the non-competitive prediction mode is the same as or similar to the method of the prediction mode determiner 220 described above with reference to FIG. Description is omitted.
  • the difference vector decoder 320 decodes the encoded difference vector to reconstruct the difference vector of the current block. At this time, the difference vector decoder 320 outputs (0,0) as a decoded difference vector when there is no encoded difference vector as in the encoding according to the SKIP mode.
  • the difference vector decoder 320 informs the first predicted motion vector determiner 330 that the current block is the non-competitive prediction mode, and then selects the default predicted motion vector of the current block.
  • the second prediction motion vector determiner 340 determines that the current block is the competitive prediction mode, and is determined according to the reconstructed motion vector prediction mode. The motion vector is determined as the predicted motion vector of the current block.
  • the first predictive motion vector determiner 330 operates when the current block is in a non-competitive prediction mode, and uses the default predicted motion vector determined in a manner promised to the motion vector encoding apparatus 200 as the predicted motion vector for the current motion vector.
  • the second prediction motion vector determiner 340 operates when the current block is in the competitive prediction mode, and is selected from among a set of candidate motion vectors selectable according to the motion vector prediction mode reconstructed by the prediction mode decoder 310, that is, The optimal predicted motion vector or the default predicted motion vector determined in a manner promised to the motion vector encoding apparatus 200 is determined as the predicted motion vector for the current motion vector.
  • the second prediction motion vector determiner 340 should use the optimal prediction motion vector (for example, motion vector prediction). It should be determined whether the value of the bit flag of the mode is '1' or whether the default predicted motion vector should be used (eg, the value of the bit flag of the motion vector prediction mode is '0'). To this end, the second predictive motion vector determiner 340 sequentially reads the bits of the motion vector prediction mode, which are reconstructed and stored by the prediction mode decoder 310, one by one each time the predicted motion vector determiner of each block is determined. The motion vector determined by the vector prediction mode is determined as the predicted motion vector of each block.
  • the optimal prediction motion vector for example, motion vector prediction. It should be determined whether the value of the bit flag of the mode is '1' or whether the default predicted motion vector should be used (eg, the value of the bit flag of the motion vector prediction mode is '0'). To this end, the second predictive motion vector determiner 340 sequentially reads the bits of the motion vector prediction mode, which are reconstructed and stored by
  • the second predictive motion vector determiner 340 is the prediction motion vector of each block.
  • a bit indicating a motion vector prediction mode is sequentially read, and the value of the read bit is checked to determine whether to use an optimal predicted motion vector or a default predicted motion vector. (For example, if the value of the read bit is '1', it is determined to use the optimal predictive motion vector, and if the value of the read bit is '0', the default prediction motion vector is determined.) .
  • the motion vector reconstructor 350 may perform a prediction motion vector (optimum prediction motion vector or default prediction motion vector) and a differential vector decoder 320 determined by the first prediction motion vector determiner 330 or the second prediction motion vector determiner 340. ) Reconstructs the current motion vector of the current block by adding the reconstructed difference vector.
  • a prediction motion vector optimum prediction motion vector or default prediction motion vector
  • a differential vector decoder 320 determined by the first prediction motion vector determiner 330 or the second prediction motion vector determiner 340.
  • FIG. 4 is a flowchart illustrating a motion vector encoding method according to an embodiment of the present invention.
  • the motion vector encoding apparatus 200 selects a predicted motion vector for the current motion vector according to the selected motion vector prediction mode among the plurality of motion vector prediction modes (S410), and encodes a difference vector between the current motion vector and the selected predicted motion vector.
  • the motion vector prediction mode is encoded according to the selected motion vector prediction mode in operation S430, and a bitstream including the encoded difference vector and the encoded motion vector prediction mode is generated and output in operation S440.
  • the motion vector encoding apparatus 200 encodes the motion vector prediction mode according to the selected motion vector prediction mode, wherein the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 perform the motion vector prediction mode of the current block. If it is assumed that the decision process for determining the P / S is shared, the motion vector prediction mode may be omitted without encoding the motion vector prediction mode when the motion vector prediction mode is the non-competitive prediction mode, and the motion vector prediction mode may be encoded only in the competitive prediction mode.
  • the optimal prediction motion vector determined by the presence of a plurality of candidate motion vectors that are all the same or may be used is the default. If it is the same as the predictive motion vector, the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 may recognize that the same result occurs even if the optimal predictive motion vector is selected through any motion vector prediction mode. Therefore, in such a case, the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 share the same optimal prediction motion vector by sharing a predetermined determination process that the same result occurs even if the optimal prediction motion vector is selected through any prediction mode. Can be selected.
  • the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 can determine whether to store (or transmit) the motion vector prediction mode by sharing a predetermined determination process, the non-competitive prediction mode is used. Since the difference vectors generated and encoded using the determined predicted motion vector may be identical, the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 may determine default predicted motion vectors determined in a mutually promising manner. It is selected as the predicted motion vector for the current motion vector.
  • the motion vector encoding apparatus 200 selects a default prediction motion vector determined in a preset manner as a prediction motion vector for the current motion vector.
  • the motion vector encoding apparatus 200 determines whether to use the optimal motion prediction vector or the default prediction motion vector as the prediction motion vector. do. To this end, the motion vector encoding apparatus 200 selects one candidate motion vector from among a plurality of candidate motion vectors as a prediction motion vector (ie, an optimal prediction motion vector) of the current motion vector by using a predetermined method. Through the same process, whether the motion vector decoding apparatus 300 can select the same motion vector as the optimal prediction motion vector selected by the motion vector encoding apparatus 200 as the optimal prediction motion vector, that is, the motion vector encoding apparatus 200 The motion vector decoding apparatus 300 determines whether the optimal prediction motion vector selected in FIG.
  • a value indicating a predictable mode may be assigned to a bit representing the motion vector prediction mode (eg, For example, '1') is selected, and an optimal predicted motion vector is selected as the predicted motion vector for the current motion vector.
  • a value indicating a non-predictable mode may be assigned to a bit representing the motion vector prediction mode (for example, For example, '0') is selected, and a default predicted motion vector is selected as the predicted motion vector for the current motion vector.
  • the motion vector encoding method according to an embodiment of the present invention described above with reference to FIG. 4 may be embodied as shown in FIG. 5.
  • FIG. 5 is a flowchart illustrating an embodiment of a motion vector encoding method according to an embodiment of the present invention.
  • the motion vector encoding apparatus 200 selects a candidate motion vector set for a current motion vector of a current block (S500), selects an optimal predicted motion vector from the selected candidate motion vector set (S502).
  • the motion vector prediction mode is selected to determine whether the motion vector prediction mode is the non-competitive prediction mode by selecting a motion vector prediction mode of the current block.
  • the current motion vector is encoded using the default prediction motion vector (S510).
  • the motion vector encoding apparatus 200 determines whether there are remaining blocks in which all of the blocks in the higher unit of the block have not been performed in steps S500 to S510 (S512), and if there are remaining blocks, step S500.
  • step S500 the procedure of steps S500 to S510 is performed on the remaining blocks, and when there is no remaining block, a third encoding is performed to encode a motion vector prediction mode for a block within a higher unit (S514).
  • the motion vector encoding apparatus 200 inserts and outputs the current motion vector (that is, the difference vector) encoded in step S508 or S510 and the motion vector prediction mode encoded in step S514 into the bitstream.
  • the motion vector encoding apparatus 200 determines whether the motion vector prediction mode is a non-competitive prediction mode according to a predetermined criterion shared with the motion vector decoding apparatus 300 in advance (or may skip the encoding accordingly).
  • a predetermined criterion shared with the motion vector decoding apparatus 300 in advance (or may skip the encoding accordingly).
  • Judge whether the encoding of the motion vector prediction mode can be omitted, that is, whether the motion vector prediction mode is the non-competitive prediction mode is determined by sharing the predetermined determination process between the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300. In this case, it may be determined by determining whether the motion vector prediction mode corresponds to a case where it is possible to know which motion vector prediction mode to use without exchanging information on the motion vector prediction mode.
  • the optimal prediction motion vector selected therefrom is the default prediction motion vector. Is the same as the non-competitive prediction mode. Therefore, whether the encoding of the motion vector prediction mode can be omitted, that is, whether the motion vector prediction mode is the non-competitive prediction mode, is generated and encoded by the difference vector and the optimal prediction motion vector generated and encoded by the default predictive motion vector. It is judged by the condition that it is known that the difference vectors are the same. Since it has been described above with reference to FIG. 2, a detailed description thereof will be omitted.
  • step S504 When it is determined in step S504 that the motion vector prediction mode is a non-competitive prediction mode, or in step S506, when the motion vector decoding apparatus 300 cannot predict the optimal predicted motion vector selected in step S502, the motion vector encoding apparatus in step S514 ( 200 does not encode the motion vector prediction mode. However, if it is determined in step S506 that the motion vector prediction mode is the non-competitive prediction mode, and in step 506, the motion vector decoding apparatus 300 can predict the optimal predicted motion vector selected in step S502, the motion vector encoding apparatus (step S514). 200 encodes a motion vector prediction mode of the block.
  • the motion vector encoding apparatus 200 collects and encodes motion vector prediction modes of blocks corresponding to the contention prediction mode in a block of an upper unit instead of a block unit. To this end, the motion vector encoding apparatus 200 may determine the motion vector prediction mode of the block corresponding to the competitive prediction mode among the blocks in the higher unit by the number of motion vector prediction modes (for example, bits indicating the same) and the number thereof.
  • a motion vector prediction mode (eg, a bit representing it) is encoded, which may be encoded without compression or encoded using lossless compression encoding.
  • the motion vector encoding apparatus 200 collects and encodes the motion vector prediction modes of the blocks corresponding to the competitive prediction mode among the blocks in the higher unit, the motion vector encoding apparatus 200 determines whether there is a remaining block in the higher unit through step S512, and Steps S500 to S512 are performed on all blocks in a unit to obtain a motion vector prediction mode of a block corresponding to a competitive prediction mode in all blocks in a different unit, and then encoded in step S514.
  • the encoded difference vector and the motion vector prediction mode encoded in step S512 are inserted as syntax of the bitstream, respectively.
  • the bitstream is transmitted to the motion vector decoding apparatus 300 through a transmission channel such as a wired, wireless or storage medium.
  • step S500, step S502, step S506, step S508, and step S510 of the above-described steps will be described in detail with reference to FIGS. 6, 7, 8, 9, and 12 through FIG. 5.
  • FIG. 6 is a flowchart illustrating a process of selecting a candidate motion vector set according to an embodiment of the present invention.
  • operation S500 of selecting a candidate motion vector set searching for one or more neighboring blocks with respect to the current block in operation S600 and movement of the searched one or more neighboring blocks is performed.
  • the candidate motion vector set selected in the above-described candidate motion vector set selection step (S500) is a block A, a block, which is a neighboring block at the left, top, and right upper sides of the block D, which is the current block.
  • ⁇ MV A , MV B , MV C ⁇ consisting of motion vectors of B and block C.
  • the candidate motion vector set may select more various motion vectors as a set of candidate motion vectors (candidate motion vector sets) according to an implementation method or needs.
  • the motion vector of the same position block of the picture previously existing on the time axis or the motion vector of the block located on the upper left side on the spatial axis may be used as the candidate motion vector.
  • another motion vector eg, an average value or a median value of several motion vectors selected using these motion vectors may be included.
  • step S600 may include one or more first blocks at the same position as the current block in one or more of a picture that exists before and a picture that exists after; And one or more of one or more second blocks at positions adjacent to the current block on the spatial axis as one or more neighboring blocks.
  • Step S602 further includes: each motion vector in the one or more first blocks; Each motion vector in the one or more second blocks; And an average or median value for one or more of each motion vector in the first block and each motion vector in the second block; One may be calculated as a motion vector of at least one neighboring block found.
  • the above-described candidate motion vector set may be defined in various ways on the premise that the encoding apparatus 200 and the decoding apparatus 300 know in advance.
  • the candidate motion vectors may be configured with only the candidate motion vectors having different values.
  • FIG. 7 is a flowchart illustrating a process of selecting a predicted motion vector according to an embodiment of the present invention.
  • operation S502 at least one candidate motion vector included in a set of candidate motion vectors selected by using a predefined selection function between the encoding apparatus 200 and the decoding apparatus 300. Calculating a selection function value for each (S700); And selecting one candidate motion vector as an optimal prediction motion vector based on the calculated selection function values (S702).
  • selection function value may include a bit amount required to encode a difference vector with a current motion vector for each of one or more candidate motion vectors included in the selected candidate motion vector set; A magnitude of the difference vector from the current motion vector for each of the one or more candidate motion vectors included in the selected candidate motion vector set; And an amount of bits required to encode the motion vector prediction mode; It may also include one or more of these, or a combination of one or more of them.
  • bit amount of the difference vector is used as the selection function value, in step S702 described above, for example, the bit amount required to encode the difference vector for each of one or more candidate motion vectors included in the selected candidate motion vector set is determined.
  • the candidate motion vector which is the minimum value among the calculated bit amounts, may be selected as the optimal prediction motion vector.
  • the predicted motion vector selection step (S502) in addition to the method of selecting the optimal predicted motion vector based on the above-described bit amount based on the selection function value, one of one or more candidate motion vectors included in the selected candidate motion vector set.
  • the optimal predicted motion vector may also be selected using a rate-distortion optimization method that considers the amount of bits required for encoding when a motion vector is selected and the reconstruction quality to be generated.
  • the Lagrangian Cost function in Equation 4 may be used as a selection function for selecting an optimal prediction motion vector.
  • J is the Lagrange cost
  • D is the error between the original and reconstructed images
  • is the Lagrange multiplier
  • R H is the amount of bits required to encode the motion vector prediction mode
  • R M is the amount of bits required to encode the difference vector of the current motion vector.
  • J, D, R H , and R M are all defined according to n indicating a picture number where a current block is located and k indicating a block number. Therefore, it can be selectively applied in picture or block units.
  • R H in Equation 4 is the amount of bits required for motion vector prediction mode encoding
  • R M is a difference vector for the encoded current motion vector.
  • the calculation method depends on the motion vector prediction mode. That is, when the motion vector prediction mode indicates that the decoding apparatus 300 cannot predict the optimal predicted motion vector, R M is a predicted motion vector generated by a predefined default method such as a median calculation. In other words, it is the amount of bits required to encode the difference vector between the default predicted motion vector and the current motion vector.
  • R M is the amount of bits required to encode the difference vector between the selected optimal predicted motion vector and the current motion vector. .
  • Equation 5 may also be used to select the optimal predicted motion vector. Equation 5 is expressed by assuming that the current motion vector of the current block to be encoded is MV D , which is the motion vector of block D in FIG. 1.
  • PMV enc is the selected optimal prediction motion vector
  • PMVC is one element (motion vector) belonging to the candidate motion vector set CS, which is a set of candidate motion vectors selectable as the prediction motion vector of the current motion vector MV D.
  • h () is a selection function for selecting a predicted motion vector that is optimal for differentially encoding the current motion vector MV D from the predicted motion vector.
  • a bit amount required to differentially encode a current motion vector is used, or a bit amount required to differentially encode a current motion vector and a bit amount required to encode a motion vector prediction mode. Can be used.
  • the size of the difference vector which is the difference between the current motion vector and the predicted motion vector, may be used instead of the actual amount of bits to simplify the calculation.
  • the definition of the selection function h () may be defined and used in various ways on the premise that the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 know in advance.
  • one candidate motion vector (PMVC) that optimizes the selection function h () is optimized from the candidate motion vector set (CS) that includes the candidate motion vector that is a candidate of the prediction motion vector. It can be selected as a vector (PMV enc ).
  • FIG. 8 is a flowchart illustrating a process of determining whether an optimal predictive motion vector is predictable according to an embodiment of the present invention.
  • the determination of whether the optimal prediction motion vector is predictable may be included in a candidate motion vector set selected using a predetermined determination function between the encoding apparatus 200 and the decoding apparatus 300.
  • Calculating a decision function value for each of the one or more candidate motion vectors (S800); Selecting one candidate motion vector of the one or more candidate motion vectors as an estimated prediction motion vector for the current motion vector based on the calculated determination function value (S802); Comparing the selected estimated predicted motion vector and the selected optimal predicted motion vector (S804); And determining whether the selected optimal predicted motion vector is predictable by the decoding apparatus 300 according to the comparison result (S806).
  • Determining whether the above-described predicted motion vector is predictable (S506) is described again using the expression in Equation 5, using the optimal predicted motion vector PMV enc selected in the previous predicted motion vector selection step S502.
  • the difference vector calculated according to the above-described method, a finite number of candidate motion vectors that can be candidates for the predictive motion vector, a reference picture to be used for motion compensation, information of neighboring blocks already reconstructed, and motion compensation for pixel values.
  • the residual signal it is determined whether the optimal predicted motion vector selected in the previous step S502 is predictable by the motion vector decoding apparatus 300.
  • DMV D MV D -PMV enc
  • PMV dec which is an estimated predicted motion vector, is found by using a predetermined decision method such as Equation (6).
  • the determination function g () is determined by the motion vector encoding apparatus 200, and the motion vector decoding apparatus 300 determines the optimal predicted motion vector by using the information of the difference vector and the neighboring blocks which have already been reconstructed.
  • the motion vector encoding apparatus 200 determines whether the PMV enc can be predicted. This determination function g () is also used when the motion vector decoding apparatus 300 predicts the predicted motion vector.
  • the determination function g () may be defined in various ways under the assumption that the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 know the definition in advance, and specific embodiments of the determination function g () may be defined. Will be described later.
  • the motion vector encoding apparatus 200 calculates in advance PMV dec which is an estimated predicted motion vector to be found by the motion vector decoding apparatus 300, and then DMV which is the difference vector provided by the motion vector decoding apparatus 300.
  • PMV dec which is an estimated predicted motion vector to be found by the motion vector decoding apparatus 300
  • DMV which is the difference vector provided by the motion vector decoding apparatus 300.
  • the motion vector decoding apparatus 300 may determine the motion vector encoding apparatus 200.
  • the motion vector encoding apparatus 200 determines that the optimal predicted motion vector PMV enc directly selected by the motion vector 200 is equal to the estimated predicted motion vector PMV dec estimated by the motion vector decoding apparatus 300. It is determined that the prediction of the optimal predicted motion vector PMV enc in the vector decoding apparatus 300 is possible, and in other cases, the prediction is impossible.
  • the motion vector encoding apparatus 200 may determine between the optimal predicted motion vector PMV enc directly selected by the motion vector and the estimated predicted motion vector PMV dec estimated by the motion vector decoding apparatus 300. When the difference is smaller than the predetermined boundary value, it may be determined that the prediction of the optimal predicted motion vector PMV enc in the motion vector decoding apparatus 300 is possible, and in other cases, the prediction may be determined to be impossible. .
  • Another example of a method for determining whether the optimal predicted motion vector PMV enc is predictable by the motion vector decoding apparatus 300 is as follows.
  • the optimal predicted motion vector PMV enc and the estimated predicted motion may occur. Even if the vectors PMV dec are not equal, the motion vector decoding apparatus 300 determines that the optimal predicted motion vector PMV enc can be predicted using the estimated predicted motion vector PMV dec , and other than that. In this case, it is determined that it cannot be predicted.
  • the motion vector decoding apparatus 300 estimates the estimated predicted motion vector (PMV dec ).
  • the selected estimated prediction motion vector and the selected optimal prediction motion vector are equal to or less than a predetermined boundary value. If so, the selected optimal predicted motion vector may be determined to be predictable by the motion vector decoding apparatus 300.
  • the decoding apparatus 300 may determine that the selected optimal predicted motion vector is predictable.
  • the motion vector encoding apparatus 200 uses the determination function (g () in Equation 6) defined between the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 to determine the determination function.
  • a value is calculated (S800), and a candidate motion vector having a minimum decision function value is selected as the estimated prediction motion vector (PMV dec ) based on the calculated decision function value (S802). Thereafter, the estimated predicted motion vector PMV dec is compared with the optimal predicted motion vector PMV enc (S804), and finally it is determined whether it is predictable (S806).
  • the predefined determination function between the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 may be realized in various forms.
  • a function using template matching (TM) and a function using boundary pixel matching (BM) can be used.
  • a template matching pixel index set is an index indicating a relative position of selected pixels based on a given designated block position. It can be defined as a set, for example, the position of the surrounding M pixels adjacent to the left, top left and top of the designated block. Of course, other methods are possible if necessary. In general, if the number of pixels indicated by the TMS is more accurate, more accurate matching is possible.
  • the template matching method includes, after selection of all candidate predictive motion vector sets (CS) selectable as the predictive motion vectors, the pixels indicated by the TMS for the reference block designated by each candidate motion vector in the selected candidate predictive motion vector set;
  • the difference between the pixels indicated by the TMS for the current block is calculated by using Equation 7 (an embodiment of Equation 6), and the matching error is calculated according to each candidate motion vector, which has the lowest matching error. It is selected as the estimated prediction motion vector (PMV dec ) mentioned above.
  • (PMVC + DMV) in f (PMVC + DMV, i) represents the pixel position indicated by index i around the reference block in the reference picture indicated by index i (included in TMS), and f (PMVC + DMV , i) means the pixel value at this position.
  • C (i) means a pixel value around the current block indicated by the index i.
  • DMV) which is an embodiment of the determination function, predicts the motion of the candidate motion vector PMVC, which is one element of the candidate motion vector set CS, to the difference vector DMV D provided by the motion vector encoding apparatus 200.
  • the corrected block obtained by motion compensation of the block is provided.
  • the sum of squared errors (Sum of Squared Error) is used in Equation 7, but other methods such as a sum of absolute difference (SAD) may be possible depending on the application.
  • the estimated predicted motion vector PMV dec denotes a candidate motion vector PMVC that minimizes g (PMVC
  • pixels indicated by a template matching pixel index (TMS) for the reference block designated by each of the one or more candidate motion vectors included in the selected candidate motion vector set, and the current are displayed.
  • TMS template matching pixel index
  • Predefined determination by calculating the pixel value difference of the pixels indicated by the template matching pixel index for the block, and calculating the matching error for each of the one or more candidate motion vectors as a determination function value based on the calculated pixel value difference. You can calculate the value of the judgment function by executing the function.
  • boundary matching pixel index set BMS Boundary Matching Index Set
  • BM boundary pixel matching
  • the motion vector decoding apparatus 300 After selecting all the candidate motion vector sets CS selectable as the predictive motion vectors, to determine which candidate motion vectors PMVC among the candidate motion vector sets CS are the most optimal, the current reconstructed ones encoded with motion compensation In order to calculate how smoothly a block is connected to its neighbors at the block boundary, boundary pixel matching is performed to determine a candidate motion vector (PMVC) from the candidate motion vector set (CS) that minimizes the boundary pixel matching matching error. The estimated prediction motion vector PMV dec is selected. This is called a predicted motion vector selected by the motion vector decoding apparatus 300.
  • the process is calculated as PMVC + DMV using the candidate motion vector PMVC, which is one element of the candidate motion vector set CS, and the difference vector DMV determined by the motion vector encoding apparatus 200.
  • PMVC candidate motion vector
  • DMV difference vector determined by the motion vector encoding apparatus 200.
  • a prediction motion vector for generating a reconstructed block having the highest boundary matching with the reconstructed pixels around the block is determined.
  • the matching error of each candidate motion vector is calculated as the sum of squares of the difference values.
  • SAD sum of absolute difference
  • C (i) is a candidate motion vector calculated as PMVC + DMV using the candidate motion vector PMVC, which is one element of the candidate motion vector set CS, and the DMV determined by the motion vector encoding apparatus 200.
  • f (i) means a pixel value immediately adjacent to the pixel designated by the index i of the BMS among the boundary pixels in the neighboring block adjacent to the current block.
  • Equation 8 a boundary pixel matching error is calculated for each candidate motion vector PMVC in the candidate motion vector set CS, and among the candidate motion vectors generating the least matching error, the estimated motion vector ( PMV dec ). This is called a predicted motion vector selected by the motion vector decoding apparatus 300.
  • step S800 a candidate motion vector calculated using the difference vector determined by the motion vector encoding apparatus 200 and the candidate motion vector for each of one or more candidate motion vectors included in the selected candidate motion vector set is included.
  • the index of the boundary matching pixel index set (BMS) among the reconstructed pixels of the current block reconstructed by adding the value of the designated reference block and the residual signal according to the motion compensation calculated by the motion vector encoding apparatus 200 is designated.
  • the decision function value may be calculated by performing a predetermined decision function.
  • the motion vector encoding apparatus 200 may determine an estimated prediction motion vector having a minimum matching error determined according to a predetermined determination method such as template matching or boundary pixel matching. PMV dec ).
  • step S804 the selected estimated prediction motion vector PMV dec is compared with the optimal prediction motion vector PMV enc selected in step S502.
  • the motion vector decoding apparatus 300 may determine the optimal predicted motion vector of the current motion vector of the current block. It can be determined that can be predicted, otherwise it can not be predicted.
  • the motion vector decoding apparatus 300 can predict the optimal prediction motion vector of the current motion vector of the current block. It may be.
  • FIG. 9 is a flowchart illustrating a process of encoding a current motion vector using an optimal predictive motion vector according to an embodiment of the present invention.
  • encoding a current motion vector using an optimal predicted motion vector may include determining the selected optimal predicted motion vector as a predicted motion vector for the current motion vector (S900); Calculating a difference vector between the current motion vector and the selected optimal predicted motion vector (S902); And (S904) or the like, by encoding the calculated difference vector, encoding the current motion vector and transmitting a motion vector prediction mode indicating the predictability to the third encoder 250.
  • FIG. 10 is a flowchart illustrating a process of encoding a current motion vector using a default predicted motion vector according to an embodiment of the present invention.
  • the step S510 of encoding the current motion vector using the default prediction motion vector may include determining a preset default prediction motion vector as a prediction motion vector for the current motion vector (S1000); Calculating a difference vector between a current motion vector and a preset default predicted motion vector (S1002); Determining whether the motion vector prediction mode in operation S504 is a non-competition prediction mode (S1004); When the motion vector prediction mode is not the non-competitive prediction mode, that is, the omission of the motion vector prediction mode is not possible, the motion vector prediction mode encoding the current motion vector and indicating the unpredictability by encoding the calculated difference vector may include a third encoder.
  • the motion vector prediction mode is the non-competitive prediction mode, that is, when it is possible to omit the motion vector prediction mode, encoding the current motion vector by encoding the calculated difference vector and omitting the encoding of the motion vector prediction mode (S1008), etc. It includes.
  • the preset default predicted motion vector in step S1002 is a median of the motion vectors of one or more neighboring blocks adjacent to the current block, and is preset between the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300. do.
  • FIG. 11 is a flowchart illustrating a process of encoding a motion vector prediction mode according to an embodiment of the present invention.
  • the motion vector prediction mode may be encoded by calculating and encoding the number of motion vector prediction modes existing in an independent coding unit corresponding to a predetermined non-independent coding unit in which a motion vector exists. Step S1110; And collecting and encoding the motion vector prediction mode existing in the independent coding unit corresponding to the upper portion of the predetermined non-independent coding unit in which the motion vector exists (S1120).
  • FIG. 12 is an exemplary diagram for describing a case of collecting and encoding the number of motion vector prediction modes and the motion vector prediction modes according to an embodiment of the present invention.
  • a method of collecting and encoding a motion vector prediction mode and a number of motion vector prediction modes present in a higher layer in higher units such as a slice unit that is an independent coding unit corresponding to a higher layer rather than a block unit in which a motion vector is encoded. Able to know.
  • FIG. 13 is a flowchart illustrating a motion vector decoding method according to an embodiment of the present invention.
  • the motion vector decoding apparatus 300 decodes a bitstream, restores a difference vector between a current motion vector and a predicted motion vector, and a motion vector prediction mode of the current motion vector (S1300), and determines the motion vector prediction mode.
  • a prediction motion vector of the current motion vector is selected based on the selected motion vector (S1302), and the current motion vector is restored using the selected prediction motion vector (S1304).
  • the motion vector encoding apparatus 200 may selectively convert a separately encoded motion vector prediction mode and a difference vector from each other by a predetermined predetermined independent or previously promised between the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300. Decode according to non-independent units. That is, it is determined whether a motion vector prediction mode exists through a predetermined determination process between the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300.
  • the motion vector prediction mode is defined as the non-competitive prediction mode, and in step S1302, the prediction motion vector is selected as the default prediction motion vector. If it is determined in step S1300 that the motion vector prediction mode exists, a bit value indicating the motion vector prediction mode of the block is read from the motion vector prediction mode of the block corresponding to the competitive prediction mode in the higher unit reconstructed in step S1300. The motion vector indicated by this value is selected as the predicted motion vector of the corresponding block.
  • the motion vector decoding apparatus 300 may determine that the bit value indicating the motion vector prediction mode is the competitive vector prediction mode but the unpredictable mode (for example, when the bit value is '0'). We then select a default predicted motion vector that is determined according to the promised scheme.
  • the bit value indicating the motion vector prediction mode indicates the predictable mode while the motion vector prediction mode is the competitive prediction mode (for example, the bit value is '1').
  • one candidate motion vector is selected from among a plurality of candidate motion vectors as a prediction motion vector of the current motion vector, that is, an optimal prediction motion vector by using a predetermined method.
  • the predetermined method may be a method based on one of template matching and boundary pixel matching.
  • FIG. 14 is a flowchart illustrating a specific implementation of a motion vector decoding method according to an embodiment of the present invention.
  • the motion vector decoding apparatus 300 decodes a motion vector prediction mode encoded by the motion vector encoding apparatus 200 and an encoded difference vector (S1400); Determining whether a motion vector prediction mode exists (S1402); Determining whether the decoded motion vector prediction mode indicates predictable or unpredictable (S1404); If the decoded motion vector prediction mode indicates predictable, a selectable candidate motion vector set is selected as a predictive motion vector for reconstructing the current motion vector of the current block, and an optimal predictive motion vector is selected from the selected candidate motion vector set.
  • Determining the selected optimal predicted motion vector as a predicted motion vector with respect to the current motion vector (S1406); If the motion vector prediction mode does not exist or the decoded motion vector prediction mode indicates unpredictable, determining a default predicted motion vector determined according to a preset method as a predicted motion vector for the current motion vector (S1408); And reconstructing the current motion vector of the current block by adding the predicted motion vector and the decoded difference vector determined in step S1406 or S1408 (S1410).
  • the encoded difference vector in operation S1400 may be a difference vector between the current motion vector and the preset default predicted motion vector, or may be a difference vector between the current motion vector and the optimal predicted motion vector.
  • 15 is a flowchart illustrating a process of determining a default predicted motion vector as a predicted motion vector with respect to a current motion vector according to an embodiment of the present invention.
  • the default predicted motion vector is determined as the predicted motion vector for the current motion vector according to an embodiment of the present invention.
  • Selecting a possible candidate motion vector set (S1500); Computing a determination function value for each of one or more candidate motion vectors included in the selected candidate motion vector set by using a determination function commonly defined by the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300. (S1502); And selecting a candidate motion vector having a minimum value among the calculated determination function values as an optimal prediction motion vector, and selecting the selected optimal prediction motion vector as a prediction motion vector for the current motion vector (S1504).
  • the optimal predicted motion vector determined by the motion vector decoding apparatus 300 as a predicted motion vector for the current motion vector is an estimated predicted motion estimated by the motion vector decoding apparatus 300 by the motion vector decoding apparatus 200. It may be equal to the vector PMV dec or may show a difference in a predetermined boundary value.
  • the motion vector decoding apparatus 300 indicates a template matching pixel index set (TMS) for a reference block designated by each of one or more candidate motion vectors included in the selected candidate motion vector set. Compute the pixel value difference between the pixels indicated by the template matching pixel index and the pixel corresponding to the current block, and calculate a matching error for each of the one or more candidate motion vectors based on the calculated pixel value difference.
  • TMS template matching pixel index set
  • the motion vector decoding apparatus 300 calculates each of one or more candidate motion vectors included in the selected candidate motion vector set by using the difference vector determined by the motion vector encoding apparatus 200 and the corresponding candidate motion vectors.
  • Boundary Matching Set (BMS) among the reconstructed pixels of the current block reconstructed by adding the reference block value designated by the candidate candidate motion vector and the residual signal according to the motion compensation calculated by the motion vector encoding apparatus 200 (BMS) A pixel value designated by an index within the pixel; And a matching error for each of the one or more candidate motion vectors, based on the difference between the pixel designated by the index of the boundary matching pixel index set among the boundary pixels in the neighboring block adjacent to the current block and the adjacent pixel value, as a determination function value. .
  • 16 is a flowchart illustrating a motion vector decoding method according to another embodiment of the present invention.
  • the motion vector decoding method provided by the motion vector decoding apparatus 300 may include a motion vector prediction mode encoded by the motion vector encoding apparatus 200 and a coded difference. Decoding the vector (S1600); Determining whether a motion vector prediction mode exists (S1602); Determining whether the decoded motion vector prediction mode indicates predictable or unpredictable (S1604); If the decoded motion vector prediction mode indicates predictable, a selectable candidate motion vector set is selected as a predictive motion vector for reconstructing the current motion vector of the current block, and an optimal predictive motion vector is selected from the selected candidate motion vector set.
  • a motion vector prediction mode encoded by the motion vector encoding apparatus 200 and a coded difference. Decoding the vector (S1600); Determining whether a motion vector prediction mode exists (S1602); Determining whether the decoded motion vector prediction mode indicates predictable or unpredictable (S1604); If the decoded motion vector prediction mode indicates predictable, a selectable candidate motion vector set is selected as a predictive motion vector for reconstructing the current motion vector of the current block
  • Determining the selected optimal predicted motion vector as a predicted motion vector for the current motion vector (S1606); If the motion vector prediction mode does not exist or the decoded motion vector prediction mode indicates unpredictable, determining a default predicted motion vector determined according to a preset method as a predicted motion vector for the current motion vector (S1608); Reconstructing the current motion vector of the current block by adding the predicted motion vector determined in step S1606 or step S1608 and the decoded difference vector (S1610); A normal decoding determination step (S1612) using the number of motion vector prediction modes; And an optional additional processing step (S1614) for abnormal decoding.
  • a motion vector prediction mode of a block to be encoded or decoded independently and independently under the premise that the motion vector encoding apparatus 200 and the motion vector decoding apparatus 300 share a predetermined predetermined decision process. Can determine whether or not is a non-competitive prediction mode. Therefore, only the bits distinguishing between the predictable mode and the unpredictable mode are transmitted only when the motion vector prediction mode of the block is the competitive prediction mode. By omitting the encoding, the amount of bits required to encode the current motion vector can be greatly reduced.
  • the motion vector encoding apparatus 200 determines whether the motion vector prediction mode of the block is the non-competitive prediction mode. That is, when an error occurs in a reconstructed motion vector of a previously decoded neighboring block and is reconstructed into a motion vector other than the motion vector used for encoding, whether the motion vector prediction mode of the block to be decoded is a non-competitive prediction mode. In the determination, an error may occur, which may cause a decoder crash.
  • the motion vector decoding apparatus 300 reads the bit value of the reconstructed motion vector prediction mode to read the bit value. Accordingly, the predictable mode or the unpredictable mode is determined to determine the optimal predicted motion vector or the default predicted motion vector as the predicted motion vector for the current block.
  • the bit value of the reconstructed motion vector prediction mode should not be read.
  • the bit value of the motion vector prediction mode to be used in the block is abnormally used, the bit value becomes insufficient when the bit value of the motion vector prediction mode restored in the block is subsequently read. And the entire process of decoding the image may be stopped.
  • a bit indicating a motion vector prediction mode that is, a bit indicating a predictable mode and / or Or bits indicating the number of motion vector prediction modes are encoded together and inserted into the bitstream in higher units such as slice units or picture units higher than the block units in which the motion vectors are determined.
  • the motion vector decoding apparatus 300 parses an encoded motion vector prediction mode inserted into higher units from a bitstream and decodes independently of a decoding process performed in block units.
  • the number of motion vector prediction modes obtained by acquiring the number of motion vector prediction modes and the number of blocks in which the motion vector prediction mode exists among the decoded blocks are different from each other. You can determine that an error has occurred and follow up. That is, the motion vector decoding apparatus 300 may determine whether an error occurs by using the number of motion vector prediction modes, and if it is determined that the error has occurred, reset the motion vector itself or track the error to restore the normal motion vector. You can try
  • decoding the encoded motion vector prediction mode and the encoded difference vector It is calculated through the step S1402 of determining whether the motion vector prediction mode exists until all the blocks in the upper unit such as the slice and the number of motion vector prediction modes acquired in S1400 are sliced as a predetermined independent coding unit. If the number of motion vector prediction modes is different, it may be determined that the corresponding bitstream has not been normally decoded. If the corresponding bitstream is not normally restored, motion vector recovery may be attempted in various ways through an optional additional processing step (S1614) for abnormal decoding.
  • the number of motion vector prediction modes delivered by the motion vector encoding apparatus 200 is calculated after all decoding processes for the upper unit (eg, a slice) are completed.
  • the number of motion vector prediction modes is large, it may be assumed that all of the remaining motion vector prediction modes are ignored and none of the motion vector prediction modes exist.
  • the number of motion vector prediction modes is smaller than the number of motion vector prediction modes calculated after the decoding process for the higher unit is finished, an error occurs in the stored (or transmitted) bitstream and thus cannot be normally restored. Since it means that it is not possible, the image may be restored by applying an error concealment method, ignoring the stored bitstream itself.
  • FIG. 17 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus 1700 may include a texture encoder 1710, a motion vector encoder 1720, and a multiplexer 1730.
  • the texture encoder 1710 predicts a current block according to a current motion vector of a current block to be encoded in an input image, encodes a residual block that is a difference between the current block, and a prediction block, and outputs an encoded texture.
  • the texture encoder 1710 will be described in detail with reference to FIG. 18 in a later process.
  • the motion vector encoder 1720 selects a motion vector prediction mode of one of the plurality of motion vector prediction modes, selects a prediction motion vector for the current motion vector according to the selected motion vector prediction mode, and selects a current motion vector and the selected prediction motion.
  • the difference vector which is a difference between the vectors, is encoded, and the motion vector prediction mode is encoded according to the selected motion vector prediction mode to output the encoded difference vector and the encoded motion vector prediction mode.
  • the motion vector encoder 1720 performs the same or similar function as that of the motion vector encoding apparatus 200 described above with reference to FIG. 2, a detailed description thereof will be omitted.
  • the multiplexer 1730 generates and outputs a bitstream including an encoded texture, an encoded difference vector, and an encoded motion vector prediction mode.
  • the slice is not a block unit into which the texture and the coded difference vector encoded in the bitstream are inserted.
  • the video decoding apparatus may independently decode the encoded motion vector prediction mode.
  • FIG. 18 is a diagram illustrating a specific implementation of an image encoding device according to an embodiment of the present invention.
  • the above-described image encoding apparatus 1700 including the specific configuration of the texture encoder 1710 may be represented by the image encoding apparatus 1800 illustrated in FIG. 18.
  • the texture encoder 1710 includes a predictor 1810, a subtractor 1820, a transformer 1830, a quantizer 1840, an encoder 1850, an inverse quantizer including a motion estimator 1812 and a motion compensator 1814. 1860, inverse converter 1870, adder 1880, and deblocking filter 1890.
  • the predictor 1810 predicts the current block to generate and output the predicted block. That is, the predictor 1810 generates a predicted block having a predicted pixel value of each pixel by predicting a pixel value of each pixel of the current block to be encoded in the image. do.
  • the predictor 1810 may include a motion vector estimator 1812 and a motion compensator 1814.
  • the motion vector estimator 1812 is a block unit (eg, 16 ⁇ 16 block, 16 ⁇ 8 block, 8 ⁇ 16 block, 8 ⁇ 8 block, 8 ⁇ ) corresponding to the block mode or the preset block mode for the current block.
  • the current motion vector is determined by estimating the motion vector of the current block with reference to one or more reference pictures (4 blocks, 4x8 blocks, 4x4 blocks).
  • the current motion vector determined by the motion vector estimator 1812 is output to the motion vector encoder 1720, and the difference vector and the motion vector prediction mode are encoded by the motion vector encoder 1720.
  • the motion vector estimator 1812 estimates the motion vector of the current block by using the reference picture to determine the current motion vector, and thus a detailed description thereof will be omitted.
  • the motion compensator 1814 generates and outputs a prediction block of the current block by using the current motion vector output from the motion vector estimator 1812. That is, the motion compensator 1814 outputs a block indicated by the current motion vector in the reference picture as a prediction block.
  • the subtractor 1820 subtracts the prediction block from the current block to generate a residual block. That is, the subtractor 1820 calculates a difference between the pixel value of each pixel of the current block to be encoded and the predicted pixel value of each pixel of the prediction block predicted by the predictor 1810 to obtain a residual signal in the form of a block. Creates a residual block with
  • Converter 1830 and quantizer 1840 transform and quantize the residual block to output the quantized residual block. That is, the transformer 1830 and the quantizer 1840 transform the residual signal of the residual block into the frequency domain, convert each pixel value of the residual block into a transform coefficient, and quantize the residual block having the frequency coefficient. Quantization).
  • the transformer 1830 is a residual using a variety of transformation techniques for transforming the image signal of the spatial axis to the frequency axis, such as a Hadamard transform, Discrete Cosine Transform Based Transform (DCT based Transform)
  • DCT based Transform Discrete Cosine Transform Based Transform
  • the signal can be converted into the frequency domain, and the residual signal converted into the frequency domain becomes a conversion coefficient.
  • the quantizer 1840 may convert the transformed residual block into dead zone uniform threshold quantization (DZUTQ), a quantization weighted matrix, or an improved quantization technique. Can be quantized using DZUTQ), a quantization weighted matrix, or an improved quantization technique.
  • the encoder 1850 encodes the residual block output from the quantizer 1840 and outputs an encoded texture. That is, the encoder 1850 scans the quantized frequency coefficients, transform coefficients, or residual signals of the residual block according to various scan methods such as zigzag scan to generate quantized transform coefficient sequences, transform coefficient sequences, or signal sequences, and entropy coding. Encoding is performed using various encoding techniques such as a technique.
  • the encoded texture output from the encoder 1850 is generated and output as a bitstream in the multiplexer 1730 together with the encoded difference vector and the encoded motion vector prediction mode output from the motion vector encoder 1720.
  • Inverse quantizer 1860 and inverse transformer 1870 inverse quantize and inverse transform the quantized residual block. That is, the inverse quantizer 1860 and the inverse transformer 1870 inversely quantize the quantized frequency coefficients of the angularized residual block to generate a residual block having transform coefficients, and inversely transform the inverse quantized residual block to convert pixel values. Generates a residual block, that is, a restored residual block.
  • the inverse quantizer 1860 and the inverse converter 1870 may perform inverse transformation and inverse quantization using the above-described transformation scheme and quantization scheme inversely.
  • the adder 1880 reconstructs the current block by adding the predicted block predicted by the predictor 1810 and the residual block reconstructed by the inverse transformer 1870.
  • the deblocking filter 1890 deblocks and filters the restored current block and outputs the deblocked filter.
  • the deblocking filtering refers to an operation of reducing block distortion generated by encoding an image in block units, and applying a deblocking filter to a block boundary and a macroblock boundary, or applying a deblocking filter only to a macroblock boundary or a deblocking filter. You can optionally use one of the methods that does not use.
  • the transformer 1830 and the quantizer 1840 may be implemented as a first encoder and the encoder 1850 may be implemented as a second encoder, which should not be included in the texture encoder 1710. It may optionally be included depending on how it is implemented. That is, the residual signal output from the subtractor 1820 does not necessarily have to be transformed and quantized, and may perform only one of the transformed and quantized, and even both the transformed and quantized may be omitted. In this case, the inverse quantizer 1860 and the inverse transformer 1870 may also be selectively included depending on whether to perform the transformation and / or quantization. In addition, the deblocking filter 1890 is not necessarily included in the texture encoder 1710, and may be selectively included according to an implementation manner.
  • the image encoded in the bitstream by the image encoding apparatus 1800 is real-time or non-real-time through a wired or wireless communication network such as the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, a mobile communication network, or the like.
  • the image decoding apparatus may be transmitted to a video decoding apparatus to be described later through a communication interface such as a universal serial bus (USB), decoded by a video decoding apparatus to be described later, and restored and reproduced.
  • a communication interface such as a universal serial bus (USB)
  • 19 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
  • the image decoding apparatus 1900 may include a demultiplexer 1910, a motion vector decoder 1920, and a texture decoder 1930.
  • the demultiplexer 1910 extracts and outputs an encoded texture, an encoded difference vector, and an encoded motion vector prediction mode from the bitstream.
  • the encoded texture is output to the texture decoder 1930, and the encoded difference vector and the encoded motion vector prediction mode are output to the motion vector decoder 1920.
  • the demultiplexer 1910 may parse and extract a motion vector prediction mode encoded in an upper unit of a block unit such as a slice header or a picture header of a bitstream.
  • the motion vector decoder 1920 decodes the coded difference vector and the coded motion vector prediction mode to reconstruct the difference vector and the motion vector prediction mode, and reconstructs the current motion vector of the current block based on the reconstructed motion vector prediction mode.
  • the prediction motion vector is selected, and the reconstructed difference vector and the selected prediction motion vector are added to reconstruct the current motion vector. Since the motion vector decoder 1920 performs the same or similar functions as the motion vector decoding apparatus 300 described above with reference to FIG. 3, a detailed description thereof will be omitted.
  • the texture decoder 1930 decodes the encoded texture to reconstruct the residual block, and adds the predicted block and the reconstructed residual block that predict the current block by using the current motion vector reconstructed by the motion vector decoder 1920. Restore and print the current block.
  • a detailed implementation example of the texture decoder 1930 will be described with reference to FIG. 20 in a later process.
  • FIG. 20 is an exemplary view illustrating a specific implementation of an image decoding apparatus according to an embodiment of the present invention.
  • the above-described image decoding apparatus 1900 including the specific configuration of the texture decoder 1930 may be represented by the image encoding apparatus 2000 illustrated in FIG. 20.
  • the texture decoder 1930 may include a decoder 2010, an inverse quantizer 2020, an inverse transformer 2030, a motion compensator 2040, an adder 2050, and a deblocking filter 2060. .
  • the decoder 2010 decodes the encoded texture output from the demultiplexer 1910 to restore the quantized residual block.
  • Inverse quantizer 2020 and inverse converter 2030 perform the same or similar functions as inverse quantizer 1860 and inverse converter 1870 described above with reference to FIG. However, in the case where the image encoding apparatus 1800 performs only one or none of transform and quantization of the residual block, the inverse quantizer 1860 and the inverse transformer 1870 may also perform only one or none accordingly. have.
  • the motion compensator 2040 predicts the current block by using the reconstructed current motion vector output from the motion vector decoder 1930 and outputs a prediction block. That is, the motion compensator 2040 generates and outputs a block indicated by the current motion vector reconstructed from at least one reference picture as a prediction block.
  • the adder 2050 adds the reconstructed residual block output from the inverse transformer 2030 and the predictive block output from the motion compensator 2040 to reconstruct and output the current block.
  • the deblocking filter 2060 deblocks and filters the restored current block and outputs the deblocking filter.
  • the motion vector prediction mode includes a competitive prediction mode and a non-competitive prediction mode.
  • the competitive prediction mode the motion vector prediction mode indicating the unpredictability of the optimal prediction motion vector and the motion vector prediction mode indicating the predictability of the optimal prediction motion vector have been described.
  • the optimal prediction motion vector means a prediction motion vector selected from a finite number of candidate motion vector sets according to a predetermined criterion or method, and does not mean that the prediction value of the selected prediction motion vector is always optimal. .
  • the competitive prediction mode may be understood as a mode that can be used for encoding and / or decoding the current motion vector after selecting a prediction motion vector other than the default prediction motion vector according to a predetermined method.
  • the prediction motion vector may be selected by a predetermined method from the plurality of candidate motion vector sets as described above.
  • the motion vector closer to the current motion vector can be selected as the predictive motion vector, thereby minimizing the bit amount according to the encoding of the difference vector.
  • the efficiency can be improved.
  • the motion vector encoding apparatus 200 does not directly inform the motion vector decoding apparatus 300 to find the selected predictive motion vector, while improving the encoding efficiency by selecting a more accurate predictive motion vector.
  • the motion vector encoding apparatus 200 does not directly inform the motion vector decoding apparatus 300 to find the selected predictive motion vector, while improving the encoding efficiency by selecting a more accurate predictive motion vector.
  • the motion vector decoding apparatus 300 determines that an error occurs by itself and detects an error. Subsequent actions can be taken to conceal or resolve errors, thereby improving the performance of the decoder by preventing the decoder from failing.
  • encoding can be performed with a small bit amount, thereby providing a satisfactory service to a user.
  • a larger effect can be expected in a wireless mobile environment, which may have a relatively small bandwidth, a large data loss and a delay compared to a wired environment.
  • An embodiment of the present invention is a method of further improving MVOP.
  • This enhanced MVOP method can support SKIP mode and allow for independent parsing.
  • the improved MVOP method averaged about 4.46% (1.66% for QCIF, 3.60% for CIF and 6.84% for HD sequences) compared to KTA 2.0 software. ) Shows an improvement in BDBR performance.
  • the previous MVOP method constructs a candidate set using all candidate PMVs available for the current block to select a more precise predictive motion vector (PMV).
  • the candidate set consists of a combination of horizontal and vertical components of the motion vector of the spatio-temporal neighboring blocks.
  • the encoder selects an optimal PMV from the candidate set using the modified rate-distortion optimization method.
  • the decoder predicts an optimal PMV by using a template matching method. In order to select the best PMV with the lowest template matching error, all available candidate sets are tested.
  • DMV transmitted differential motion vector
  • This more advanced MVOP method uses one bit of additional information ( mvop_flag ) to signal whether or not the decoder should use the predicted optimal PMV.
  • Previous MVOP methods did not support SKIP mode. For example, even if the proposed method has a DMV of 0 and satisfies all other SKIP conditions, the macroblock is encoded in P16x16 mode and not in SKIP mode. In the more advanced MVOP method, the MVOP method can be extended to use this SKIP mode more effectively.
  • Non-contention mode indicates that optimal PMV selection does not make much difference. There are two cases here. The first is when there is only one candidate PMV for PMV selection. In this case, it is obvious to both the encoder and the decoder which prediction value to use. This happens when the surrounding motion vectors are all the same or not all valid. The encoder (and decoder) will use the same available PMV equally. The second is when the predictable best PMV is equal to the median PMV (ie, the predicted best PMV and the median PMV are the same). Therefore, in this mode, the encoder (and decoder) uses the available PMV or median PMV. Therefore, the decoder can recognize these two cases without additional information from the encoder, and thus does not use flags separately.
  • the decoder may recognize that it is a contention mode. In this mode the decoder should be instructed whether or not to use the predicted optimal PMV. For this purpose, the 1 bit flag mvop_flag is used. If the mvop_flag flag is 1, the DMV is decoded using the optimal PMV predicted using template matching. If the flag is 0, the decoder uses the median PMV to decode the DMV.
  • mvop_flag is transmitted only in contention mode.
  • an unintended flag bit may be read incorrectly, which causes a decoder crash problem.
  • a grammar partitioning method has been newly proposed that completely separates the parsing process from the decoding process and eliminates potential decoder crash issues. As seen in Table 1, and completely separated from the by encoding the mvop_flag in the slice of num_mvop_flag_minus1 and as the number that represents all mvop_flag number contained in the slice into the slice header information, parsing (parsing process), the decoding process (decoding process) .
  • the parsing process reads and stores mvop_flag in the slice.
  • the decoding process selectively reads the stored mvop_flag according to the determination of the contention mode or not. So there is no other syntax change.
  • the proposed MVOP method can satisfy the requirements of independent parsing and avoid the decoder crash problem.
  • the proposed method also has the additional advantage of detecting whether the bitstream has a transmission error. For example, if the number of all contention modes that are always known after decoding all slices is not equal to num_mvop_flag_minus1 + 1 , this means that there is an error in the bitstream. Thus, in such a case, if so designed, it is possible to use another decryption method that can minimize errors.
  • the improved MVOP is implemented by modifying the KTA 2.0 software.
  • the experiments were run under common test conditions for the baseline profile, and performance was measured in terms of BDBR and BDPSNR. For a more practical comparison, the performance of the motion vector competition (MVC) method is also reported.
  • MVC motion vector competition
  • the MVC method uses two PMV candidates (spatial and temporal MV), which is the case with the best MVC performance. All comparisons were anchored to the KTA 2.0 software results.
  • Table 2 compares the proposed MVOP and MVC methods using CS SPTP based on KTA 2.0 software.
  • the experimental results in Table 2 show that the proposed MVOP method has the performance of 1.658% (QCIF) ⁇ 6.838% (HDTV) on average compared to KTA 2.0 software.
  • the proposed MVOP method shows better performance at high resolution than at low resolution. It should be noted that while the improved MVOP method always shows improved performance over KTA 2.0 software, the MVC method sometimes decreases performance in QCIF.
  • Table 3 shows a direct comparison of the performance of the MVOP method with the MVC method anchored using BDBR and BDPSNR.
  • the proposed MVOP method shows about 1.899% improvement in BDBR compared to the MVC method. Performance improvements are greater at higher resolutions.
  • the MVOP method may have a relative advantage because the optimal PMV can be used without additional information signaling indicating the optimal PMV.
  • the MVC method requires more additional information to indicate the optimal PMV when the number of candidate PMVs increases. Therefore, the relative coding gain of the MVOP method is expected to increase as the number of PMVs increases.
  • the present invention is applied to a motion vector encoding or decoding technique and a video service or a multimedia streaming service, so that a video can be encoded with a small bit amount, thereby providing a satisfactory service to a user.
  • it is a very useful invention that can expect a greater effect in a wireless mobile environment that can have a relatively small bandwidth, large data loss and delay compared to a wired environment.

Abstract

본 발명은 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법에 관한 것이다. 본 발명은 현재 블록의 후보 움직임 벡터 집합에서 최적 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택기; 움직임 벡터 복호화 장치와 미리 약속된 판단 기준에 근거하여 복수 개의 움직임 벡터 예측 모드 중 하나의 움직임 벡터 예측 모드를 선택하여 현재 블록의 움직임 벡터 예측 모드로서 결정하는 예측 모드 결정기; 및 결정된 움직임 벡터 예측 모드에 따라 최적 예측 움직임 벡터 또는 디폴트 움직임 예측 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로서 결정하고 현재 블록과 결정된 예측 움직임 벡터 간의 차분 벡터를 부호화하며, 결정된 움직임 벡터 예측 모드에 따라 결정된 움직임 벡터 예측 모드를 선택적으로 부호화하여 출력하는 부호화기를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치. 본 발명에 의하면, 움직임 벡터를 부호화하는 데 소요되는 비트량을 줄일 수 있어 부호화 효율을 향상시킬 수 있을 뿐만 아니라, 복호화 과정에서 오류가 발생한 경우에도 복호화기 장애가 발생하는 것을 방지하여 복호화기의 성능을 향상시킬 수 있다.

Description

움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
본 발명은 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법에 관한 것이다. 더욱 상세하게는, 동영상을 부호화 및 복호화하는 영상 처리 분야에서 예측을 위한 움직임 벡터를 더욱 정확한 움직임 벡터로 선택하고 적은 비트량으로 부호화하여 부호화 효율 및 압축 효율을 향상시키는 방법 및 장치에 관한 것이다.
근래에 멀티미디어 기술은 비약적으로 발전하고 있으며, 이에 따라 오디오, 이미지, 동영상 등을 포함한 고품질의 멀티미디어 데이터들에 대한 수요도 증가하고 있다. 따라서 제한된 네트워크 환경에서 이러한 멀티미디어 데이터들을 전송하거나 저장하고 다시 읽어내는 (Retrieve) 수요를 충족시키기 위해 고효율의 동영상 압축에 관한 국제 표준이 제정되고 있다. 특히 동영상의 경우, 동영상 압축에 관한 국제표준으로 ISO/IEC JTC1/SC29 MPEG 그룹 및 ITU-T VCEG 그룹이 제정한 H.264/AVC MPEG-4 Part.10 표준은 높은 압축 효율을 달성하기 위해 가변블록 크기에서의 움직임예측 및 보상(Variable block size motion estimation and compensation), 화면 내 예측부호화(Intra prediction) 등의 다양한 예측부호화 방법들을 사용하고 있다. 예측부호화는 데이터간에 존재하는 상관도(Correlation)을 줄일 수 있는 효과적인 방법으로 다양한 데이터들의 압축에 널리 사용된다. 특히 움직임 벡터는 주변 블록의 움직임 벡터와 밀접한 상관관계를 가지고 있기 때문에, 주변 블록의 움직임 벡터로부터 현재 블록의 움직임 벡터에 대한 예측값(PMV: Predicted Motion Vector, "예측 움직임 벡터"라고도 함)을 계산한 후 현재 블록의 움직임 벡터의 값 그 자체를 부호화하지 않고 그 예측값에 대한 차분 벡터(DMV: Differential Motion Vector, "잔차신호", "차분값"이라고도 함)만을 부호화함으로써 부호화해야 할 비트량을 상당히 줄여 부호화 효율을 높힐 수 있다.
일반적으로 이러한 예측 움직임 벡터를 이용한 움직임 벡터 부호화에서는 효율적인 압축을 위하여 예측 움직임 벡터가 정확할수록 부호화 효율이 증대된다. 따라서 단지 공간적 인접블록의 움직임 벡터뿐만 아니라, 시간적, 공간적 또는 시공간적으로 인접한 블록의 움직임 벡터 또는 그들을 조합하여 계산된 또 다른 움직임 벡터들로 이루어진 유한한 개수의 예측 움직임 벡터 대상들을 생성하고 그 중에서 움직임 벡터 예측부호화에 가장 적당한 것을 선택하여 사용하면 예측부호화 효율을 더욱 높일 수 있다. 이 경우, 예측 부호화된 움직임 벡터 데이터로부터 원래의 움직임 벡터를 올바르게 복원하기 위해서는 유한한 개수의 예측 움직임 벡터 대상들 중에 어떤 예측 움직임 벡터가 사용되었는지 알아야 한다. 이를 위한 가장 간단한 움직임 벡터 예측부호화 방법은 움직임 벡터 예측부호화를 위하여 어떤 예측값을 사용하였는지에 대한 정보를 함께 부호화하는 것이다. 또는 이러한 예측 움직임 벡터 선택을 가리키기 위한 추가적인 데이터 부호화에 소요되는 비트량 발생을 제거하기 위해, 현재의 H.264/AVC 표준은 주변 블록(좌측, 상단, 우측상단)이 가지는 움직임 벡터들의 수평 성분과 수직 성분 각각의 중간값(Median)을 움직임 벡터의 예측 부호화를 위한 예측 움직임 벡터(PMV: Predicted Motion Vector)로 사용한다. 이 방법은 중간값이라는 부호화와 복호화에 있어 공히 알고 있는 소정의 디폴트 방법을 정하고, 부호화나 복호화에 있어 이 디폴트 방법을 사용하여 예측값(예측 움직임 벡터)을 산출함으로써 어떤 예측값을 사용하였는지에 대한 정보를 함께 부호화할 필요를 없애는 것이다. 중간값의 소정의 디폴트 방법을 사전에 정의하여 사용하는 기존 방법은, 어떤 움직임 벡터가 예측 움직임 벡터로 사용되었는지에 대한 추가적인 정보의 전송 없이 향상된 부호화 효율을 유지할 수 있다는 장점이 있지만 사용한 중간값인 예측 움직임 벡터가 차분 벡터를 부호화하는데 소요되는 비트량을 항상 최소로 발생시키는 최적의 예측 움직임 벡터가 아니라는 문제점이 있다.
일반적으로 동영상 압축 부호화 방법에서는 보다 정교한 다양한 부호화 방법을 구비하여 소정의 부호화 기준에 따라 경쟁시킨 후, 그 중에서 소정의 기준에 따라 평가된 최적의 부호화 효율을 보이는 부호화 방법을 선택함으로써 부호화 효율을 증대시키고 있다. 이렇게 압축된 데이터는 부호화기와 복호화기 사이에 기 약속된 소정의 규정(또는 규약)에 따라 비트스트림으로 저장 또는 전송되는데, 이때 비트스트림을 구성하는 각각의 요소를 신택스요소(Syntax Element)라 한다. 예를 들어, 시간적 중복성을 제거하는 움직임 보상 방법을 이용하여 영상을 압축부호화할때 부호화기는 움직임 벡터를 부호화하여야 하는데 탐색범위내에있는 움직임 벡터들을 다양하게 구비해 두었다가 그중 최적의 것을 찾은 후 상기에 설명한 것과 같이 어떤 예측움직임 벡터를 사용했는지 여부를 복호화기에 시그널링 한다. 이 경우 어떤 예측움직임 벡터를 사용했는지 여부를 알리는 정보를 신택스요소(Syntax Element)의 한 예로 볼 수 잇다. 또는, 어떤 예측움직임 벡터를 사용했는지 여부를 그대로 알려주는 대신, 중간값과 같이 소정의 미리 정의된 어떤 예측 움직임 벡터와의 차이를 부호화 하게 할 수도 있다. 또는 적응적으로 어떤 경우에는 소정의 어떤 예측움직임 벡터를 사용하고, 다른 경우에는 또 다른 예측움직임 벡터를 사용하게 할 수 있다. 이 경우는 또한 예측움직임 벡터 선택을 어떻게 하여야 할 것인가를 복호화기에 알려주어야 하는데 이를 알리는 정보 또한 신택스요소(Syntax Element)의 한 예가 될 수 있다.
보다 다양하고 정교한 부호화 방법을 사용하여 압축한 데이터를 복호화기가 제대로 복호화하려면 비트스트림에 많은 신택스요소(Syntax Element) 정보가 추가되어야 한다. 이 경우, 이러한 신택스요소(Syntax Element) 정보를 전송 또는 저장하기 위해 발생하는 비트량이 증가하여 정지영상 또는 동영상을 부호화하는데 필요한 데이터 량을 증가시킨다. 뿐만 아니라, 보다 다양하고 정교한 부호화 방법을 사용함으로써 부호화효율을 증가시킬 수 있지만, 어떤 부호화 방법을 어떻게 사용하였는지 여부를 복호화기에 알려주어야 적정한 복호화가 가능하다. 따라서 이런한 정보를 전송 또는 저장 하여야만 하는데, 이때 정교한 부호화방법을 사용하여 얻은 부호화 효율증가 보다도 복호화기에 어떤 부호화방법을 사용했는지 여부를 알려주거나 표현하는 오버헤드가 더 많은 비트를 차지 한다면 즉, 이를 시그널링하는 신택스요소(Syntax Element)의 증가 효과가 더 크다면 오히려 압축 성능을 저하시키는 원인이 되기도 한다.
이러한 문제를 해결하기 위한 하나의 바람직한 해결책은 부호화기가 소정의 부호화 기준에 따라 결정한 신택스요소(Syntax Element)의 값을, 복호화기가 복호화 과정에서 자체적인 소정의 신택스요소(Syntax Element) 추정 과정을 통해 복호화기가 스스로 추정함으로써, 부호화기가 복호화기로 해당 신택스요소(Syntax Element)값을 저장 또는 전송하지 않아도 되도록 하는 것이다. 그러나 복호화기는 다양한 판단 및 결정을 수행할 수 있는 부호화기에 비해 매우 제한적인 추정 과정만을 수행할 수 있으므로, 모든 경우에 이러한 방법을 적용할 수는 없다는 단점이 있다. 따라서 부호화기가 결정한 신택스요소(Syntax Element)를 복호화기가 동일하게 스스로 추정할 수 있는 일부의 경우에만 이러한 방법을 선택적으로 사용할 수 있다. 그러나 일부경우에만 해당 신택스요소를 전송하지않고 나머지 경우에는 전송하는 선택적 신택스전송의 방법은, 기 복호화된 영상의 값이나 복호화 과정을 자체를 이용한 소정의 신택스요소(Syntax Element) 추정 과정을 통해 신택스요소(Syntax Element)의 존재 유무를 복호화기가 판단해야 하므로 신택스요소(Syntax Element) 분석(Parsing) 과정과 복호화(Decoding) 과정이 분리될 수 없다는 문제점이 발생한다. 뿐만 아니라 신택스요소(Syntax Element)의 존재 유무를 판단하는 소정의 신택스요소(Syntax Element) 추정 과정에 필요한 복호화결과나 복호화 과정에 오류가 포함될 경우, 신택스요소(Syntax Element)의 존재 유무를 정상적으로 판단할 수 없으므로, 해당 신택스요소를 보내지 않았는데도 복호화기는 이를 읽으려고(parsing) 하거나, 해당 신택스요소를 보냈는데도 복호화기는 이를 읽지(parsing) 않아도된다고 판단하는 경우가 생길 수 있어 파싱이나 복호화(decoding) 과정에 심각하고 치명적인 장해를 유발할 수 있다. 이런 이유로 선택적으로 신택스요소를 보내거나 안보내는 방식으로 부호화효율을 높이려는 시도는 아직 보편화되고 있지않다. 그러나 본 발명은 종래의 이러한 문제를 근본적으로 해결하는 방법과 장치를 제공하려 한다.
따라서 선택적인 신택스요소(Syntax Element)의 전송 및 저장의 생략을 통해 보다 높은 부호화 효율을 달성하는 동시에 상기와 같은 문제점을 해결하기 위해서는 이러한 신택스요소(Syntax Element)를 위한 새로운 신택스요소(Syntax Element) 부호화/복호화 방법이 필요하다. 본 발명의 기술분야는 상기와 같은 목적을 달성하기 위해 사용되는 정지영상 및 동영상의 신택스요소(Syntax Element) 부호화/복호화 방법과 그 장치에 관한 것이다.
전술한 문제점을 해결하기 위한 본 발명의 목적은, 복수의 움직임 벡터 예측 모드를 이용하여 현재 움직임 벡터에 대한 예측 움직임 벡터의 선택이 가능하도록 하여 더욱 정확하게 예측 움직임 벡터를 선택하고, 이를 통해 차분 벡터의 부호화 비트량을 감소시키고 움직임 예측 및/또는 움직임 보상의 성능을 향상시키는 데 있다.
또한, 본 발명은, 부호화 장치는 더욱 정확한 예측 움직임 벡터를 선택하여 부호화 효율을 향상시키면서도 부호화에 이용된 예측 움직임 벡터를 직접 복호화 장치로 알리는 대신에, 예측 움직임 벡터를 찾기 위한 정보를 복호화 장치로 주거나 찾기 위한 함수를 복호화 장치와 공유함으로써, 예측 움직임 벡터를 알리기 위해 발생하는 추가적인 정보에 대한 부호화 비트량 증가를 줄여줌으로써, 부호화 효율 및 복호화 효율을 더욱 향상시키는 데 있다.
또한, 본 발명은 영상의 비트스트림을 구성하는 신택스 요소 중 복호화된 결과에 따라 신택스가 비트스트림에 존재하는지 여부를 알수 있는 경우, 소정의 단위 내에 있는 존재하는(또는 비존재하는) 경우의 개수와 그때의 값을 복호화기에 별도로 알려주도록 하여 신택스 요소(Syntax Element) 파싱(Parsing) 과정과 복호화(Decoding) 과정이 분리될 수 있도록 하는 데 있다.
전술한 목적을 달성하기 위해 본 발명은, 움직임 벡터를 부호화하는 장치에 있어서, 현재 블록의 후보 움직임 벡터 집합에서 최적 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택기; 움직임 벡터 복호화 장치와 미리 약속된 판단 기준에 근거하여 복수 개의 움직임 벡터 예측 모드 중 하나의 움직임 벡터 예측 모드를 선택하여 현재 블록의 움직임 벡터 예측 모드로서 결정하는 예측 모드 결정기; 및 결정된 움직임 벡터 예측 모드에 따라 최적 예측 움직임 벡터 또는 디폴트 움직임 예측 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로서 결정하고 현재 블록과 결정된 예측 움직임 벡터 간의 차분 벡터를 부호화하며, 결정된 움직임 벡터 예측 모드에 따라 결정된 움직임 벡터 예측 모드를 선택적으로 부호화하여 출력하는 부호화기를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
여기서, 복수 개의 움직임 벡터 예측 모드는 경쟁 예측 모드 및 비경쟁 예측 모드를 포함하며, 예측 모드 결정기는 움직임 벡터 복호화 장치와 미리 약속된 판단 기준에 근거하여 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하여 경쟁 예측 모드 또는 비경쟁 예측 모드를 현재 블록의 움직임 벡터 예측 모드로서 선택할 수 있다.
또한, 예측 모드 결정기는 최적 예측 움직임 벡터가 디폴트 예측 움직임 벡터와 동일한 경우, 비경쟁 예측 모드를 현재 블록의 움직임 벡터 예측 모드로서 결정할 수 있다. 이때, 최적 예측 움직임 벡터가 디폴트 예측 움직임 벡터와 동일한 경우는 후보 움직임 벡터 집합 내에 현재 블록의 현재 움직임 벡터에 대하여 예측 움직임 벡터로 사용할 수 있는 후보 움직임 벡터가 없는 경우, 후보 움직임 벡터가 한 개인 경우, 후보 움직임 벡터가 두 개 이상이지만 모두 동일한 경우 및 두 개 이상이고 모두 동일하지는 않은 후보 움직임 벡터 중에서 선택되는 최적 예측 움직임 벡터가 디폴트 예측 움직임 벡터와 동일한 경우 중 하나 이상일 수 있다.
또한, 부호화기는 결정된 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우, 디폴트 움직임 예측 벡터를 예측 움직임 벡터로서 결정하여 차분 벡터를 생성하고 부호화하는 제 1 부호화기; 결정된 움직임 벡터 예측 모드가 경쟁 예측 모드인 경우, 움직임 벡터 복호화 장치가 최적 예측 움직임 벡터를 예측할 수 있는지 여부에 따라 최적 예측 움직임 벡터 또는 디폴트 예측 움직임 벡터를 예측 움직임 벡터로서 결정하여 차분 벡터를 생성하고 부호화하는 제 2 부호화기; 및 결정된 움직임 벡터 예측 모드가 경쟁 예측 모드인 경우에만 결정된 움직임 벡터 예측 모드를 부호화하는 제 3 부호화기를 포함할 수 있다.
또한, 결정된 움직임 벡터 예측 모드는 한 개의 비트로 구성되며, 비트값에 따라 경쟁 예측 모드 또는 비경쟁 예측 모드를 나타낼 수 있으며, 부호화된 움직임 벡터 예측 모드는 비트스트림의 슬라이스 헤더 또는 픽처 헤더에 삽입될 수 있다.
또한, 본 발명의 다른 목적에 의하면, 움직임 벡터를 부호화하는 방법에 있어서, 움직임 벡터 복호화 장치와 미리 약속된 판단 기준에 근거하여 복수 개의 움직임 벡터 예측 모드 중 하나의 움직임 벡터 예측 모드를 선택하여 현재 블록의 움직임 벡터 예측 모드로서 결정하는 단계; 선택된 움직임 벡터 예측 모드에 따라 현재 움직임 벡터에 대한 예측 움직임 벡터를 결정하는 단계; 현재 움직임 벡터와 결정된 예측 움직임 벡터 간의 차분 벡터를 부호화하는 단계; 결정된 움직임 벡터 예측 모드에 따라 결정된 움직임 벡터 예측 모드를 선택적으로 부호화하는 단계; 및 부호화된 차분 벡터 및 부호화된 움직임 벡터 예측 모드를 포함하는 비트스트림을 생성하여 출력하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법을 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 복호화하는 장치에 있어서, 움직임 벡터 부호화 장치와 미리 약속한 판단 기준에 따라 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하고, 부호화된 차분 벡터를 복호화하여 차분 벡터를 복원하고 출력하는 차분 벡터 복호화기; 부호화된 움직임 벡터 예측 모드를 복호화하여 움직임 벡터 예측 모드를 복원하여 출력하는 예측 모드 복호화기; 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우, 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 제 1 예측 움직임 벡터 결정기; 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드가 아닌 경우, 복원된 움직임 벡터 예측 모드에 따라 최적 예측 움직임 벡터 또는 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 제 2 예측 움직임 벡터 결정기; 및 결정된 예측 움직임 벡터와 복원된 차분 벡터를 가산하여 현재 움직임 벡터를 복원하는 움직임 벡터 복원기를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치를 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 복호화하는 방법에 있어서, 부호화된 움직임 벡터 예측 모드 및 부호화된 차분 벡터를 복호화하여 움직임 벡터 예측 모드 및 차분 벡터를 복원하는 단계; 움직임 벡터 부호화 장치와 미리 약속한 판단 기준에 따라 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하는 단계; 판단된 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우에는 디폴트 예측 움직임 벡터를 현재 블록의 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계; 판단된 움직임 벡터 예측 모드가 비경쟁 예측 모드가 아닌 경쟁 예측 모드인 경우에는 복원된 움직임 벡터 예측 모드에 근거하여 후보 움직임 벡터 집합에서 선택한 최적 예측 움직임 벡터 또는 디폴트 예측 움직임 벡터를 현재 블록의 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계; 및 결정된 예측 움직임 벡터와 차분 벡터를 가산하여 현재 움직임 벡터를 복원하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법을 제공한다.
여기서, 부호화된 움직임 벡터 예측 모드는 움직임 벡터 예측 모드의 개수를 나타내는 비트 및 개수만큼의 움직임 벡터 예측 모드를 나타내는 비트를 포함하며, 움직임 벡터 복호화 방법은 현재 슬라이스 또는 현재 픽처 내에서 복원된 모든 블록 중 경쟁 예측 모드에 해당하는 블록의 개수와 움직임 벡터 예측 모드의 개수를 비교하여 모든 움직임 벡터가 정상적으로 복호화되었는지 여부를 판단할 수 있다.
이상에서 설명한 바와 같이 본 발명에 의하면, 영상의 블록을 예측할 때 이용되는 예측 움직임 벡터를 실제의 움직임 벡터와 더욱 근접한 움지임 벡터로 선택할 수 있으므로, 움직임 벡터를 부호화하는 데 소요되는 비트량을 줄일 수 있어 부호화 효율을 향상시킬 수 있을 뿐만 아니라, 전송 시의 오류 등 복호화 과정에서 오류가 발생한 경우에도, 복호화 장치가 스스로 오류의 발생을 판단하여 오류를 은닉하거나 오류를 해결하는 후속 조치를 수행할 수 있으므로, 복호화기 장애가 발생하는 것을 방지하여 복호화기의 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 움직임 벡터에 대한 부호화를 위한 블록을 나타낸 예시도,
도 2는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 간략하게 나타낸 블록 구성도,
도 3은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 간략하게 나타낸 블록 구성도,
도 4는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도,
도 5는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법의 구체화된 구현예를 나타낸 순서도,
도 6은 본 발명의 일 실시예에 따라 후보 움직임 벡터 집합을 선정하는 과정을 설명하기 위한 순서도,
도 7은 본 발명의 일 실시예에 따라 예측 움직임 벡터를 선택하는 과정을 설명하기 위한 순서도,
도 8은 본 발명의 일 실시예에 따라 최적 예측 움직임 벡터의 예측 가능 여부를 판단하는 과정을 설명하기 위한 순서도,
도 9는 본 발명의 일 실시예에 따라 최적 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 부호화하는 과정을 설명하기 위한 순서도,
도 10는 본 발명의 일 실시예에 따라 디폴트 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 부호화하는 과정을 설명하기 위한 순서도,
도 11는 본 발명의 일 실시예에 따라 제 3 부호화를 수행하는 과정을 설명하기 위한 순서도,
도 12는 본 발명의 일 실시예에 따라 움직임 벡터 예측 모드의 개수 및 움직임 벡터 예측 모드를 모아서 부호화하는 경우의 규정을 설명하기 위한 예시도,
도 11은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도,
도 12는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법의 구체적인 구현 예를 설명하기 위한 순서도,
도 13은 본 발명의 일 실시예에 따라 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 과정을 설명하기 위한 순서도,
도 14는 본 발명의 다른 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도,
도 15는 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도,
도 16은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구체적인 구현 예를 나타낸 예시도,
도 17은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도,
도 18은 본 발명의 일 실시예에 따른 영상 복호화 장치의 구체적인 구현 예를 나타낸 예시도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하에서 후술할 영상 부호화 장치와 영상 복호화 장치, 움직임 벡터 부호화 장치와 움직임 벡터 복호화 장치는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화기 위한 각종 프로그램 또는 움직임 벡터를 부호화거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치 또는 움직임 벡터 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치 또는 움직임 벡터 복호화 장치로 전송될 수 있어 영상 또는 움직임 벡터로 복원되고 재생될 수 있다.
도 1은 본 발명의 일 실시예에 따른 움직임 벡터에 대한 부호화를 위한 블록을 나타낸 예시도이다.
도 1에서, 블록 D는 부호화할 움직임 벡터에 해당하는 "현재 블록"이고, 블록 A, 블록 B 및 블록 C는 블록 D에 대한 "주변 블록"로 가정한다. 도 1을 참조하면, MVA, MVB, MVC 및 MVD는, 블록 A, 블록 B, 블록 C, 블록 D가 갖는 움직임 벡터(Motion Vector: MV)이고, 각각은 수평 성분(MVA x, MVB x, MVC x 및 MVD x)과 수직 성분(MVA y, MVB y, MVC y 및 MVD y)을 가지는 것으로 정의한다. 여기서, 현재 블록인 블록 D의 움직임 벡터 MVD를 현재 움직임 벡터라 한다.
수학식 1
Figure PCTKR2010000248-appb-M000001
수학식 1을 참조하면, 현재 움직임 벡터에 대한 예측 움직임 벡터(PMVD: Predicted Motion Vector)는 주변 블록(블록 A, 블록 B, 블록 C)의 움직임 벡터(MVA, MVB 및 MVC)를 특정 함수(F())의 변수로 하여 계산됨을 알 수 있다.
H.264/AVC 표준에서, 현재 움직임 벡터에 대한 예측 움직임 벡터(PMVD: Predicted Motion Vector)는 중간값(Median)을 계산하는 함수를 특정 함수(F())로 하여 계산된다. 즉, 현재 움직임 벡터에 대한 예측 움직임 벡터(PMVD)는 주변 블록(블록 A, 블록 B, 블록 C)의 움직임 벡터(MVA, MVB 및 MVC)에 대한 중간값(Median)으로 구해지는 것이다. 이러한 방식으로 계산된 현재 움직임 벡터(MVD)에 대한 예측 움직임 벡터(PMVD)는 수학식 2와 같이 표현된다.
수학식 2
Figure PCTKR2010000248-appb-M000002
수학식 1(또는 수학식 2)를 이용하여 현재 움직임 벡터(MVD)의 예측 움직임 벡터(PMVD)가 구해지면, 수학식 3을 사용하여 압축해야 할 현재 움직임 벡터(MVD)에서 이에 대한 예측 움직임 벡터(PMVD)를 차분한 움직임 벡터인 차분 벡터(DMVD: Differential Motion Vector)를 구할 수 있으며, 이 차분 벡터(DMVD)는 엔트로피 부호화 등의 미리 정의된 소정의 방법에 의해 부호화되어 전송된다.
수학식 3
Figure PCTKR2010000248-appb-M000003
도 1에 예시된 것처럼, 현재 움직임 벡터(MVD)의 값이 (2,0)인 경우, 중간값을 통해 예측 움직임 벡터(PMVD)를 계산하는 종래 방식에 따른 수학식 2를 이용하면, 예측 움직임 벡터(PMVD)는 (2,1)이 된다.
이와 같이, 중간값을 예측 움직임 벡터로 하는 것은, 부호화 장치와 복호화 장치가 모두 알 수 있도록 함으로써, 어떤 움직임 벡터가 현재 움직임 벡터의 예측 움직임 벡터로 사용되었는지에 대한 추가적인 정보를 부호화하여 전송할 필요가 없으므로 부호화 효율을 향상시킬 수 있다. 여기서, 부호화 장치란 움직임 벡터 부호화 장치와 영상 부호화 장치를 포함하는 개념이며, 복호화 장치란 움직임 벡터 복호화 장치와 영상 복호화 장치를 포함하는 개념이다. 움직임 벡터 부호화 장치, 움직임 벡터 복호화 장치, 영상 부호화 장치 및 영상 복호화 장치에 대해서는 후술하는 과정에서 상세히 설명한다.
하지만, 전술한 바와 같이, 중간값을 이용하여 계산된 예측 움직임 벡터(PMVD)는 실제의 현재 움직임 벡터(MVD)와 다를 수 있다. 도 1의 예시에서 보면, 중간값을 이용하여 계산된 예측 움직임 벡터(PMVD)인 (2,1)은 현재 움직임 벡터(MVD)인 (2,0)와 다름을 알 수 있으며, 수학식 3을 이용하여 차분 벡터(DMVD)를 구하면 부호화할 차분 벡터(DMVD)는 (0,-1)이 된다.
만약, 블록 A의 움직임 벡터(MVA)인 (2,0)을 예측 움직임 벡터(PMVD)로 사용하면 실제의 현재 움직임 벡터(MVD)인 (2,0)과 다르지 않고, 수학식 3을 이용하여 차분 벡터(DMVD)를 구해보면 부호화할 차분 벡터(DMVD)는 (0,0)이 된다. 즉, 중간값을 이용하여 계산된 예측 움직임 벡터(PMVD)인 (2,1)를 사용하는 것보다, 블록 A의 움직임 벡터(MVA)인 (2,0)을 예측 움직임 벡터(PMVD)로 사용하는 것이 차분 벡터(DMVD)가 (0,0)이 되어 이를 부호화하는 데 소용되는 비트량을 감소시킬 수 있다.
하지만, 중간값을 이용하는 방식에서는 현재 움직임 벡터(MVD)의 예측 움직임 벡터(PMVD)를 계산하기 위해서 항상 중간값을 사용해야 하므로, 블록 A의 움직임 벡터(MVA)를 예측 움직임 벡터(PMVD)로 사용하는 것이 불가능하다. 만약, 블록 A의 움직임 벡터(MVA)를 예측 움직임 벡터(PMVD)로 사용한다고 하더라도, MVA, MVB 및 MVC 중에서 어떤 움직임 벡터가 예측 움직임 벡터(PMVD)로 사용되었는지에 대한 추가적인 정보를 함께 전송해야 하므로, 추가적인 정보를 부호화함으로써 압축 효율의 향상 여부를 보장할 수 없는 또 다른 문제점이 있다.
따라서, 본 발명의 실시예에서는 복수 개의 움직임 벡터 예측 모드를 이용하여 예측 움직임 벡터를 선택할 수 있도록 함으로써 더욱 정확하게 예측 움직임 벡터를 선택할 수 있도록 하고, 이를 통해 중간값을 예측 움직임 벡터로 선택하여 발생하는 문제점을 해결하고자 한다. 또한, 본 발명의 실시예에서는 더욱 정확한 예측 움직임 벡터를 선택하여 부호화 효율을 향상시키면서도, 선택된 예측 움직임 벡터를 복호화 장치에 알리기 위한 효율적인 방법을 제안함으로써, 예측 움직임 벡터를 알리기 위해 발생하는 추가적인 정보의 부호화로 인한 비트량 증가의 문제점도 해결하고자 한다. 또한, 본 발명의 실시예에서는 소정의 경우 비트스트림에서 움직임 벡터 예측 모드를 생략하여 전송 또는 저장하도록 하여 부호화 효율을 향상시키면서도 움직임 벡터 예측 모드가 생략되었는지 여부를 알지 못하여도 복호화 장치에서의 비트스트림의 파싱(Parsing)이 가능하도록 하여 복호화 장치가 안정적으로 동작할 수 있도록 한다. 여기서, 움직임 벡터 예측 모드란 움직임 벡터를 어떠한 방식으로 예측하는지를 식별하기 위한 움직임 벡터의 예측 모드를 말한다.
도 1을 통해 예시적으로 나타낸, 블록(블록 A, 블록 B, 블록 C 및 블록 D) 및 그에 대한 움직임 벡터인 MVA, MVB, MVC 및 MVD는 후술하는 과정에서 전반적으로 이용된다. 단, 도 1에서, 움직임 벡터(MVA, MVB, MVC 및 MVD)를 수직 성분과 수평 성분을 가지는 이차원적인 벡터로 도시하였으나, 이는 설명의 편의를 위한 것이지 이에 한정되지 않고 n차원 움직임 벡터로 확대하여 적용할 수 있다. 또한, 도 1에서는 현재 블록(블록 D)의 주변 블록을 공간적인 인접성에 따라 3개의 블록 A, 블록 B 및 블록 C로만 나타내었으나, 이도 설명의 편의를 위한 것이지 이에 한정되지 않고, 시간적 또는 공간적으로 주변에 있는 하나 이상의 주변 블록이 있을 수 있다.
본 발명의 일 실시예에 따른 움직임 벡터 예측 모드는 경쟁 예측 모드(Competing Prediction Mode))와 비경쟁 예측 모드(Non-competing Prediction Mode)를 포함한다. 여기서, 경쟁 예측 모드란 현재 움직임 벡터를 예측하는 방식이 여러 가지가 존재하여 서로 경쟁하는 하는 모드를 말하고, 비경쟁 예측 모드란 현재 움직임 벡터를 예측하는 방식이 여러가지가 존재하지 않아서 하나의 방식으로만 예측하는 모드를 말한다.
현재 움직임 벡터의 예측 움직임 벡터로 사용할 수 있는 후보 움직임 벡터가 없거나, 하나이거나, 하나 이상이라도 모든 후보 움직임 벡터가 모두 동일한 경우, 비경쟁 예측 모드가 움직임 벡터 예측 모드로서 정해진다. 이는, 부호화 장치와 복호화 장치는 상호 간에 어떤 후보 움직임 벡터를 예측 움직임 벡터로서 사용했는지를 식별하기 위한 정보를 추가로 교환하지 않아도 스스로 동일한 예측 움직임 벡터를 찾을 수 있기 때문이다.
또한, 후보 움직임 벡터가 복수 개이고 서로 다르더라도 소정의 과정을 통해 선택한 최적 예측 움직임 벡터가 수학식 2를 통해 전술한 중간값과 같이 사전에 정해진 디폴트 예측 움직임 벡터와 동일한 경우에도 비경쟁 예측 모드가 움직임 벡터 예측 모드로서 정해진다. 이는 복호화 장치가 스스로 중간값과 같은 사전에 정해진 디폴트 예측 움직임 벡터를 구한 후, 디폴트 예측 움직임 벡터가 소정의 과정을 통해 예측된 최적 예측 움직임 벡터와 동일한지 여부를 스스로 확인할 수 있으며, 디폴트 예측 움직임 벡터와 최적 예측 움직임 벡터가 동일한 경우에는 디폴트 예측 움직임 벡터를 예측 움직임 벡터로 사용하면 된다는 것을 복호화 장치가 추가적인 정보를 부호화 장치와 교환하지 않아도 알 수 있기 때문이다.
즉, 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우에는, 복호화 장치는 스스로 움직임 벡터 예측 모드가 비경쟁 예측 모드임을 알 수 있으며, 디폴트 예측 움직임 벡터를 예측 움직임 벡터로 사용하면 된다는 것을 알 수 있다. 따라서, 전술한 비경쟁 예측 모드로 결정되는 경우를 비경쟁 경우라고 하며, 비경쟁 경우에는 복호화 장치가 디폴트 예측 움직임 벡터를 예측 움직임 벡터로서 사용하면 된다는 것과 현재 블록이 비경쟁 예측 모드에 해당하는지 여부를 스스로 알 수 있으므로, 부호화 장치는 현재 블록이 비경쟁 예측 모드에 해당한다는 정보를 추가로 부호화하여 전송하지 않아도 된다. 즉, 이 경우, 움직임 벡터 예측 모드의 부호화 및 전송은 생략될 수 있다.
한편, 전술한 경우 즉, 비경쟁 경우에 해당하지 않는 경우(이하 '경쟁 경우'라 칭함)에는 복호화 장치가 부호화 장치로부터 추가적인 정보를 받지 않으면 후보 움직임 벡터 중 어떤 움직임 벡터를 예측 움직임 벡터로 사용했는지를 알 수 없으므로, 부호화 장치는 이에 대한 정보를 추가로 부호화하여 전송해야 한다. 이와 같이, 경쟁 경우에 해당하는 움직임 벡터 예측 모드를 경쟁 예측 모드라고 한다. 이 경우, 현재 블록이 경쟁 예측 모드에 해당함을 알리는 정보를 추가로 부호화하여 전송해야 하는데, 추가적인 정보는 현재 움직임 벡터를 복원하기 위해 복호화 장치가 후보 움직임 벡터 중 어떤 움직임 벡터를 예측 움직임 벡터로 사용할 것인지를 알려준다. 예를 들어, 추가적인 정보는 복호화 장치에서 현재 움직임 벡터를 복원하는 데, 후보 움직임 벡터 중 미리 정해진 기준 또는 방법에 따라 선택된 움직임 벡터(최적 예측 움직임 벡터)를 사용할 지 아니면 중간값과 같은 사전에 정의된 디폴트 예측 움직임 벡터를 사용할지를 알려 주는 정보가 될 수 있는데, 이 정보가 움직임 벡터 예측 모드이다.
여기서, 최적 예측 움직임 벡터라 함은 미리 정해진 기준 또는 방법에 따라 얻어진 현재 움직임 벡터의 예측 움직임 벡터를 의미하는 것일 뿐, 이와 같이 구해진 예측 움직임 벡터가 항상 최적 예측값이라는 것을 의미하는 것은 아니다. 또한, 추가적인 정보가 최적 예측 움직임 벡터를 사용하는 것이라면, 부호화 장치에서 복호화 장치가 최적 예측 움직임 벡터를 예측할 수 있다고 판단한 경우이므로 예측이 가능한 경우(즉, 예측 가능 경우)이며, 움직임 벡터 예측 모드를 1비트의 플래그로 표현하되 플래그를 '1'과 같이 표시할 수 있다. 또한, 추가적인 정보가 디폴트 예측 움직임 벡터를 사용하는 것이라면, 부호화 장치에서 복호화 장치가 최적 예측 움직임 벡터를 예측할 수 없다고 판단한 경우이므로 예측이 불가능한 경우(즉, 예측 불가능 경우)이며, 움직임 벡터 예측 모드를 1비트의 플래그로 표현하되 플래그를 '0'과 같이 표시할 수 있다.
도 2는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치(200)는 예측 움직임 벡터 선택기(210), 움직임 벡터 예측 모드 선택기(220), 제 1 부호화기(230), 제 2 부호화기(240) 및 제 3 부호화기(250)를 포함하여 구성될 수 있다.
예측 움직임 벡터 선택기(210)는 현재 블록의 현재 움직임 벡터에 대하여 예측 움직임 벡터로 사용할 수 있는 후보 움직임 벡터의 집합인 후보 움직임 벡터 집합을 선정하고, 선정된 후보 움직임 벡터 집합에서 예측 움직임 벡터를 선택한다. 후보 움직임 벡터 집합에서 예측 움직임 벡터를 선택하는 방법은 다양할 수 있는데, 예를 들어, 후보 움직임 벡터 집합에서 현재 움직임 벡터와의 차이를 최소화하는 후보 움직임 벡터를 예측 움직임 벡터로 선택할 수 있다. 이와 같이, 예측 움직임 벡터 선택기(210)에 의해 후보 움직임 벡터 집합에서 선택된 예측 움직임 벡터를 이하에서는 설명의 편의를 위해 최적 예측 움직임 벡터라고 한다. 다만, 이는 설명의 편의를 위해 구체적인 예로서 최적 예측 움직임 벡터를 정의한 것일 뿐, 본 발명의 실시예에서 최적 예측 움직임 벡터는 이미 전술한 바와 같이 미리 정해진 기준 또는 방법에 따라 얻어지는 현재 움직임 벡터의 예측 움직임 벡터를 의미한다.
예측 모드 결정기(220)는 예측 움직임 벡터 선택기(210)에서 선택된 최적 예측 움직임 벡터를 움직임 벡터 복호화 장치에서 현재 움직임 벡터를 복원하는 데 사용할 것이지 아니면 디폴트 예측 움직임 벡터를 사용할 것인지 여부를 판단하여, 판단 결과에 따라 경쟁 예측 모드 또는 비경쟁 예측 모드 중 하나를 선택하여 움직임 벡터 예측 모드로서 결정한다. 이때, 움직임 벡터 예측 모드가 비경쟁 예측 모드에 해당하는 경우, 움직임 벡터 복호화 장치에서 복호화하고자 하는 블럭이 비경쟁 예측 모드에 해당하는지 여부를 스스로 알수 있으므로, 움직임 벡터 예측 모드의 부호화 및 전송을 생략하여 압축 효율을 높힐 수 있다.
여기서, 예측 모드 결정기(220)는 예측 움직임 벡터 선택기(210)에서 선택한 최적 예측 움직임 벡터가 디폴트 예측 움직임 벡터와 동일한 경우, 비경쟁 예측 모드를 현재 블록의 움직임 벡터 예측 모드로서 결정한다. 비경쟁 예측 모드를 현재 블록의 움직임 벡터 예측 모드로서 결정하는 경우는, 복수 개의 서로 다른 후보 움직임 벡터 중에서 선택한 움직임 벡터 즉, 최적 예측 움직임 벡터가 디폴트 예측 움직임 벡터와 동일한 경우뿐만 아니라, 예측 움직임 벡터로 선택할 수 있는 후보 움직임 벡터가 존재하지 않는 경우, 후보 움직임 벡터가 존재하더라도 하나만 있는 경우, 후보 움직임 벡터가 두 개 이상 존재하지만 모두 동일한 경우가 될 수 있다. 이는 예측 움직임 벡터 선택기(210)에서 예측 움직임 벡터로 사용할 수 있는 후보 움직임 벡터가 존재하지 않거나(이 경우, 예측 움직임 벡터로 사용할 수 있는 후보 움직임 벡터가 존재하지 않으므로 사용할 수 있는 후보 움직임 벡터를 모두 (0,0)으로 정의할 수도 있다.) 하나 또는 모두 동일한 경우, 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치는 모두 동일한 최적 예측 움직임 벡터를 찾을 것이며 찾아진 최적 예측 움직임 벡터는 디폴트 예측 움직임 벡터와 동일하게 되기 때문이다.
따라서, 전술한 비경쟁 경우에는 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치는 어떠한 예측 모드를 통해 최적 예측 움직임 벡터를 선택하더라도 동일한 결과가 발생하는 소정의 판단 과정을 공유함으로써, 동일한 예측 움직임 벡터를 선택할 수 있다. 이와 같은 비경쟁 경우, 현재 움직임 벡터와 예측 움직임 벡터의 차이인 차분 벡터는 제 1 부호화기(230)에 의해 부호화된다.
제 1 부호화기(230)는 예측 모드 결정기(220)에서 움직임 벡터 예측 모드가 비경쟁 예측 모드로 결정되는 경우 동작하며, 디폴트 움직임 예측 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하고, 현재 움직임 벡터와 예측 움직임 벡터의 차분 벡터를 계산하여 계산된 차분 벡터를 부호화한다.
제 2 부호화기(230)는 예측 모드 결정기(220)에서 움직임 벡터 예측 모드가 경쟁 예측 모드로 판단되는 경우 동작하며, 예측 모드 결정기(220)에서 결정한 움직임 벡터 예측 모드의 비트 플래그값에 따라 결정되는 예측 움직임 벡터(즉, 최적 예측 움직임 벡터(예를 들어, 움직임 벡터 예측 모드의 비트 플래그값이 '1'인 경우) 또는 중간값과 같이 사전에 정의된 디폴트 예측 움직임 벡터(예를 들어, 움직임 벡터 예측 모드의 비트 플래그값이 '0'인 경우))를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하고, 현재 움직임 벡터와 예측 움직임 벡터의 차분 벡터를 계산하여 계산된 차분 벡터를 부호화한다.
제 3 부호화기(250)는 소정의 단위(예를 들어, 슬라이스, 픽처 등) 내의 블록들 중 예측 모드 결정기(220)에 의해 움직임 벡터 예측 모드가 경쟁 예측 모드로 결정된 블록들의 움직임 벡터 예측 모드를 부호화한다. 제 3 부호화기(250)가 소정의 단위 내의 블록들 중 움직임 벡터 예측 모드가 경쟁 예측 모드로 결정된 블록들의 움직임 벡터 예측 모드를 별도로 부호화하는 것은, 움직임 벡터 복호화 장치가 비트스트림으로부터 경쟁 예측 모드에 해당하는 움직임 벡터 예측 모드를 움직임 벡터 예측 모드를 파싱할 때, 파싱 과정을 현재 움직임 벡터를 복원하거나 블록의 텍스처(Texture) 정보를 복원하는 복호화(Decoding) 과정과 독립적으로 수행하기 위한 것이다.
즉, 제 3 부호화기(250)는 현재 움직임 벡터를 부호화는 부호화 단위(예를 들어, 매크로블록 단위 또는 블록 단위)의 상위에 존재하는 소정의 부호화 단위(예를 들어, 슬라이스 단위 또는 픽처 단위, 이하에에서는 상위에 존재하는 소정의 부호화 단위를 '상위 단위'라 칭함)에 존재하는 움직임 벡터 예측 모드를 모아서 부호화한다. 이때, 상위 단위는 슬라이스 단위일 수 있지만, 반드시 이에 한정되지 않고 픽처 단위와 같은 슬라이스 단위보다 더 큰 단위가 될 수도 있다.
여기서, 제 3 부호화기(250)는 도 12에 도시한 바와 같이, 움직임 벡터 예측 모드를 부호화할 때, 상위 단위 내의 블록들 중에서 경쟁 예측 모드로 움직임 벡터 예측 모드가 결정된 블록의 움직임 벡터 예측 모드의 개수(즉, (즉, 전송 또는 저장하는 움직임 벡터 예측 모드의 개수)를 식별하는 정보(예를 들면, 비트값이 될 수 있으며, 도 12에는 전체 개수보다 하나 작은 값인 "num_mv_mode_flag_minus1"로 표시함)와 그 개수만큼의 움직임 벡터 예측 모드에 대한 정보(즉, 움직임 벡터 예측 모드를 나타내는 비트 플래그)를 식별하는 정보(예를 들면, 비트 플래그의 비트값들이 나열될 수 있으며, 도 12에는 "mv_mode_flag[i], 0 ≤ i ≤ num_mv_mode_flag_minus1"로 표시함)를 부호화한다. 이때, 제 3 부호화기(250)는 움직임 벡터 예측 모드의 개수를 식별하는 정보와 그 개수만큼의 움직임 벡터 예측 모드에 대한 정보를 엔트로피 부호화와 같은 부호화 기법을 이용하여 부호화하거나 다양한 비손실 압축 방식으로 부호화하여 압축할 수도 있지만, 압축하지 않고 그대로 전송할 수도 있다.
제 1 부호화기(230) 또는 제 2 부호화기(240)에 의해 부호화된 차분 벡터는 비트스트림에 삽입되며, 제 3 부호화기(250)에 의해 부호화된 움직임 예측 모드도 비트스트림에 삽입된다. 이를 위해, 도 2에는 도시하지 않았지만, 멀티플렉서(Multiplexer)에 의해 부호화된 차분 벡터와 부호화된 움직임 예측 모드가 비트스트림에 삽입될 수 있다. 다만, 제 3 부호화기(250)에 의해 부호화된 움직임 예측 모드는 비트스트림에 삽입될 때, 비트스트림 중에서 차분 벡터가 삽입되기 이전에 삽입될 수 있는데, 상위 단위에 따라 다른 헤더에 삽입될 수 있다. 예를 들어, 상위 단위가 슬라이스 단위라면 슬라이스 헤더에 삽입될 수 있으며, 상위 단위가 픽처 단위라면 픽처 헤더에 삽입될 수 있다.
이와 같이 부호화된 비트스트림은 유선, 무선 또는 저장매체 등의 전송 채널을 통해 움직임 벡터 복호화 장치로 전송되어 복호화된다.
도 3은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 간략하게 나타낸 블록 구성도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치(300)는 예측 모드 복호화기(310), 움직임 벡터 예측 모드 판단 및 차분 벡터 복호화기(320), 제 1 예측 움직임 벡터 결정기(330), 제 2 예측 움직임 벡터 결정기(340) 및 움직임 벡터 복원기(350)를 포함하여 구성될 수 있다.
움직임 벡터 부호화 장치(200)에 의해 부호화되어 비트스트림에 삽입된 부호화된 움직임 벡터 예측 모드와 부호화된 차분 벡터는 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300) 사이에 미리 약속된 서로 다른 소정의 단위에 따라 복호화된다. 즉, 부호화된 움직임 벡터 예측 모드는 상위 단위로 복호화되고, 부호화된 차분 벡터는 그 하위 단위 즉, 블록 단위로 복호화된다.
이를 위해, 도 3에는 도시하지 않았지만, 디멀티플렉서(Demultiplexer)에 의하여 비트스트림으로부터 부호화된 움직임 벡터 예측 모드와 부호화된 차분 벡터가 구분되며, 상위 단위로 부호화된 움직임 벡터 예측 모드는 예측 모드 복호화기(310)에 입력되고, 각 블록에 대한 부호화된 차분 벡터는 움직임 벡터 예측 모드 판단 및 차분 벡터 복호화기(320)로 입력된다. 만일, 현재 블록이 SKIP 모드로 부호화된 경우는 차분 벡터도 존재하지 않으므로, 움직임 벡터 예측 모드 판단 및 차분 벡터 복호화기(320)로 입력되는 부호화된 차분 벡터는 없다.
예측 모드 복호화기(310)는 상위 단위 내의 경쟁 예측 모드에 해당하는 블록들의 부호화된 움직임 벡터 예측 모드를 복호화하여 복원된 움직임 벡터 예측 모드를 출력하며, 출력된 움직임 벡터 예측 모드는 메모리와 같은 저장 매체에 저장되어 제 2 예측 움직임 벡터 결정기(340)에서 각 블록의 예측 움직임 벡터를 결정할 때마다 하나씩 순차적으로 읽혀져서, 순차적으로 읽혀지는 움직임 벡터 예측 모드에 의해 결정되는 움직임 벡터를 각 블록의 예측 움직임 벡터로 결정하도록 한다. 이때, 복원된 움직임 벡터 예측 모드는 움직임 벡터 예측 모드의 개수를 나타내는 비트와 그 개수만큼의 움직임 벡터 예측 모드를 나타내는 비트를 포함하는데, 예측 모드 복호화기(310)는 우선 움직임 벡터 예측 모드의 개수를 나타내는 비트를 읽어서 움직임 벡터 예측 모드의 개수를 파악하고, 그 개수만큼의 비트를 차례로 읽어 그 개수만큼의 움직임 벡터 예측 모드를 나타내는 비트를 읽어들임으로써 움직임 벡터 예측 모드를 파싱하며, 파싱한 움직임 벡터 예측 모드를 나타내는 비트만을 출력하여 저장되도록 한다.
또한, 예측 모드 복호화기(310)는 비트스트림 내에 구분되어 있는 상위 단위에 해당하는 움직임 벡터 예측 모드들이 엔트로피 부호화 등의 추가 압축 과정 없이 도 12에 도시된 것처럼 표현된 경우에는 파싱 과정을 통해 파싱하여 움직임 벡터 예측 모드를 복원하며, 만일 엔트로피 부호화 또는 여타의 무손실 압축 부호화가 수행된 경우에는 각 부호화 방법에 해당하는 역 과정을 통하여 복호화하여 움직임 벡터 예측 모드를 복원한다. 어떤 경우에 해당하던지, 이러한 움직임 벡터 예측 모드의 복호화 과정은 이전 또는 이후의 복호화 과정(예를 들면, 부호화된 차분 벡터의 복호화 과정 또는 부호화된 텍스쳐 정보의 복호화 과정 등)과 독립적으로 수행된다.
차분 벡터 복호화기(320)는 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)가 서로 공유하고 있는 소정의 판단 과정을 통해 현재 복호화하고자 하는 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하고, 비경쟁 예측 모드가 아니라면 경쟁 예측 모드로 판단한다. 여기서, 차분 벡터 복호화기(320)가 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하는 방법은 도 2를 통해 전술한 예측 모드 결정기(220)에서 판단하는 방법과 동일 또는 유사하므로 상세한 설명은 생략한다. 또한, 차분 벡터 복호화기(320)는 부호화된 차분 벡터를 복호화하여 현재 블록의 차분 벡터를 복원한다. 이때, 차분 벡터 복호화기(320)는 SKIP 모드에 따른 부호화와 같이 부호화된 차분 벡터가 없는 경우에는 (0,0)을 복호화된 차분 벡터로 출력한다.
또한, 차분 벡터 복호화기(320)는 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우, 제 1 예측 움직임 벡터 결정기(330)로 현재 블록이 비경쟁 예측 모드임을 알려서 디폴트 예측 움직임 벡터를 현재 블록의 예측 움직임 벡터로 결정하도록 하고, 현재 블록의 움직임 벡터 예측 모드가 경쟁 예측 모드인 경우, 제 2 예측 움직임 벡터 결정기(340)로 현재 블록이 경쟁 예측 모드임을 알려서 복원된 움직임 벡터 예측 모드에 따라 결정되는 움직임 벡터를 현재 블록의 예측 움직임 벡터로 결정하도록 한다.
제 1 예측 움직임 벡터 결정기(330)는 현재 블록이 비경쟁 예측 모드인 경우 동작하며, 움직임 벡터 부호화 장치(200)와 서로 약속된 방식으로 결정되는 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정한다.
제 2 예측 움직임 벡터 결정기(340)는 현재 블록이 경쟁 예측 모드인 경우에 동작하며, 예측 모드 복호화기(310)에서 복원한 움직임 벡터 예측 모드에 따라 선택 가능한 후보 움직임 벡터 집합 중에 선정된 움직임 벡터 즉, 최적 예측 움직임 벡터 또는 움직임 벡터 부호화 장치(200)와 서로 약속된 방식으로 결정되는 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정한다.
여기서, 제 2 예측 움직임 벡터 결정기(340)는 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드가 아닌 경우 즉, 경쟁 예측 모드인 경우, 최적 예측 움직임 벡터를 사용하여야 할지(예를 들어, 움직임 벡터 예측 모드의 비트 플래그의 값이 '1'인지) 또는 디폴트 예측 움직임 벡터를 사용해야 할지(예를 들어, 움직임 벡터 예측 모드의 비트 플래그의 값이 '0'인지) 여부를 결정해야 한다. 이를 위해, 제 2 예측 움직임 벡터 결정기(340)는 각 블록의 예측 움직임 벡터를 결정할 때마다 예측 모드 복호화기(310)에 의해 복원되어 저장된 움직임 벡터 예측 모드의 비트를 하나씩 순차적으로 읽어서, 읽혀지는 움직임 벡터 예측 모드에 의해 결정되는 움직임 벡터를 각 블록의 예측 움직임 벡터로 결정한다. 이때, 예측 모드 복호화기(310)에 의해 복원되어 저장되는 움직임 벡터 예측 모드의 비트는 움직임 벡터 예측 모드를 나타내는 비트만으로 구성되어 있으므로, 제 2 예측 움직임 벡터 결정기(340)는 각 블록의 예측 움직임 벡터를 결정하기 위한 움직임 벡터 예측 모드를 얻기 위해 움직임 벡터 예측 모드를 나타내는 비트를 순차적으로 읽고, 읽어들인 비트의 값을 확인하여 최적 예측 움직임 벡터를 사용할지 또는 디폴트 예측 움직임 벡터를 사용할지 여부를 결정한다(예를 들어, 읽어들인 비트의 값이 '1'인 경우 최적 예측 움직임 벡터를 사용하는 것으로 결정하고, 읽어들인 비트의 값이 '0'인 경우 디폴트 예측 움직임 벡터를 사용하는 것으로 결정한다.).
움직임 벡터 복원기(350)는 제 1 예측 움직임 벡터 결정기(330) 또는 제 2 예측 움직임 벡터 결정기(340)에서 결정된 예측 움직임 벡터(최적 예측 움직임 벡터 또는 디폴트 예측 움직임 벡터)와 차분 벡터 복호화기(320)가 복원한 차분 벡터를 더하여 현재 블록의 현재 움직임 벡터를 복원한다.
이하에서는 전술한 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치(200)에 의한 움직임 벡터 부호화 방법을 도 4 내지 도 12를 참조하여 상세하게 설명한다.
도 4는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도이다.
움직임 벡터 부호화 장치(200)는 복수 개의 움직임 벡터 예측 모드 중 선택된 움직임 벡터 예측 모드에 따라 현재 움직임 벡터에 대한 예측 움직임 벡터를 선택하고(S410), 현재 움직임 벡터와 선택된 예측 움직임 벡터 간의 차분 벡터를 부호화하며(S420), 선택된 움직임 벡터 예측 모드에 따라 움직임 벡터 예측 모드를 부호화하며(S430), 부호화된 차분 벡터 및 부호화된 움직임 벡터 예측 모드를 포함하는 비트스트림을 생성하여 출력한다(S440).
단계 S430에서, 움직임 벡터 부호화 장치(200)는 선택된 움직임 벡터 예측 모드에 따라 움직임 벡터 예측 모드를 부호화하는데, 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)가 현재 블록의 움직임 벡터 예측 모드를 결정하는 판단 과정을 공유한다는 가정 한다면, 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우에는 움직임 벡터 예측 모드를 부호화하지 않고 생략하며, 경쟁 예측 모드인 경우에만 움직임 벡터 예측 모드를 부호화할 수 있다.
예를 들어, 현재 움직임 벡터에 대한 예측 움직임 벡터로 사용할 수 있는 후보 움직임 벡터가 존재하지 않거나(이 경우, 예측 움직임 벡터로 사용할 수 있는 후보 움직임 벡터가 존재하지 않으므로, 사용할 수 있는 후보 움직임 벡터를 모두 (0,0)으로 정의할 수도 있다.) 하나만 있거나, 사용할 수 있는 복수 개의 후보 움직임 벡터가 존재하더라도 모두 동일하거나, 사용할 수 있는 서로 다른 복수 개의 후보 움직임 벡터가 존재하여 결정한 최적 예측 움직임 벡터가 디폴트 예측 움직임 벡터와 동일하다면, 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)는 어떠한 움직임 벡터 예측 모드를 통해 최적 예측 움직임 벡터를 선택하더라도 동일한 결과가 발생함을 알 수 있다. 따라서, 이러한 경우, 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)는 어떠한 예측 모드를 통해 최적 예측 움직임 벡터를 선택하더라도 동일한 결과가 발생한다는 소정의 판단 과정을 공유함으로써 동일한 최적 예측 움직임 벡터를 선택할 수 있다.
이와 같이, 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)가 소정의 판단 과정을 공유함으로써, 움직임 벡터 예측 모드의 저장(또는 전송) 여부를 판단할 수 있는 경우, 비경쟁 예측 모드에 의해 결정되는 예측 움직임 벡터를 이용하여 생성되고 부호화된 차분 벡터는 동일할 것임을 알 수 있으므로, 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)는 서로 약속된 방식으로 결정되는 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로서 선택한다.
단계 S410에서, 움직임 벡터 부호화 장치(200)는 선택된 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우에는, 기 설정된 방식으로 결정되는 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 선택한다.
또한, 단계 S410에서, 움직임 벡터 부호화 장치(200)는 선택된 움직임 벡터 예측 모드가 비경쟁 예측 모드가 아닌 경우에는, 예측 움직임 벡터로서 최적 움직임 예측 벡터를 사용할지 또는 디폴트 예측 움직임 벡터를 사용할지 여부를 결정한다. 이를 위해, 움직임 벡터 부호화 장치(200)는 소정의 방법을 이용하여 복수 개의 후보 움직임 벡터 중에서 하나의 후보 움직임 벡터를 현재 움직임 벡터의 예측 움직임 벡터(즉, 최적 예측 움직임 벡터)로 선택한다. 그리고 이와 동일한 과정을 통하여 움직임 벡터 복호화 장치(300)가 움직임 벡터 부호화 장치(200)에서 선택한 최적 예측 움직임 벡터와 동일한 움직임 벡터를 최적 예측 움직임 벡터로서 선택할 수 있는지 여부 즉, 움직임 벡터 부호화 장치(200)에서 선택한 최적 예측 움직임 벡터가 움직임 벡터 복호화 장치(300)에서 예측할 수 있는지 여부를 판단한다.
만일, 움직임 벡터 복호화 장치(300)가 선택할 최적 예측 움직임 벡터가 움직임 벡터 부호화 장치(200)가 선택한 최적 예측 움직임 벡터와 동일하면, 움직임 벡터 예측 모드를 나타내는 비트를 예측 가능 모드를 나타내는 값(예를 들면, '1')으로 결정하고, 현재 움직임 벡터에 대한 예측 움직임 벡터로서 최적 예측 움직임 벡터를 선택한다. 하지만, 움직임 벡터 복호화 장치(200)가 선택할 최적 예측 움직임 벡터가 움직임 벡터 부호화 장치(200)가 선택한 최적 예측 움직임 벡터와 동일하지 않다면 움직임 벡터 예측 모드를 나타내는 비트를 예측 불가능 모드를 나타내는 값(예를 들면, '0')으로 결정하고, 현재 움직임 벡터에 대한 예측 움직임 벡터로서 디폴트 예측 움직임 벡터를 선택한다.
도 4를 통해 전술한 본 발명으 일 실시예에 따른 움직임 벡터 부호화 방법은 도 5에 나타낸 바와 같이 구체화되어 구현될 수 있다.
도 5는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법의 구체화된 구현예를 나타낸 순서도이다.
도 5를 참조하면, 움직임 벡터 부호화 장치(200)는 현재 블록의 현재 움직임 벡터에 대한 후보 움직임 벡터 집합을 선정하고(S500), 선정된 후보 움직임 벡터 집합에서 최적 예측 움직임 벡터를 선택하며(S502), 현재 블록의 움직임 벡터 예측 모드를 선택하여 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하며(S504), 단계 S504의 판단 결과, 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우에는 움직임 벡터 복호화 장치(300)에서 최적 예측 움직임 벡터를 예측할 수 있는지 여부를 판단하며(S506), 단계 S506의 판단 결과, 예측할 수 있는 경우에는 최적 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 부호화하며(S508), 단계 S506의 판단 결과, 예측할 수 없는 경우 또는 단계 S504의 판단 결과, 움직임 벡터 예측 모드가 비경쟁 예측 모드가 아닌 경우 즉, 경쟁 예측 모드인 경우에는 디폴트 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 부호화한다(S510).
또한, 움직임 벡터 부호화 장치(200)는 블록의 상위 단위 내의 모든 블록 내에서 단계 S500 내지 단계 S510의 절차가 수행되지 않은 남은 블록이 있는지 여부를 판단하여(S512), 남은 블록이 있는 경우에는 단계 S500으로 진행하여 남은 블록에 대해 단계 S500 내지 단계 S510의 절차를 수행하며, 남은 블록이 없는 경우에는 상위 단위 내의 블록에 대한 움직임 벡터 예측 모드를 부호화하는 제 3 부호화를 수행한다(S514).
또한, 움직임 벡터 부호화 장치(200)는 단계 S508 또는 단계 S510에서 부호화된 현재 움직임 벡터(즉, 차분 벡터)와 단계 S514에서 부호화된 움직임 벡터 예측 모드를 비트스트림에 삽입하여 출력한다.
단계 S504에서, 움직임 벡터 부호화 장치(200)는 움직임 벡터 복호화 장치(300)와 사전에 공유하고 있는 소정의 판단 기준에 따라 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부(그에 따라 부호화를 생략할 수 있는지 여부)를 판단한다. 여기서, 움직임 벡터 예측 모드의 부호화를 생략할 수 있는지 여부 즉, 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부는 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)가 소정의 판단 과정을 공유함으로써, 상호 간에 움직임 벡터 예측 모드에 대한 정보를 교환하지 않아도 어떤 움직임 벡터 예측 모드를 사용해야 하는지를 알 수 있는 경우에 해당하는지 여부를 판단함으로써 판단할 수 있다. 즉, 후보 예측 움직임 벡터의 개수가 0 또는 1이거나, 하나 이상 있더라도 모두 동일한 경우 또는 후보 예측 움직임 벡터의 개수가 두 개 이상 복수 개이며 서로 동일하지 않더라도 그를 통해 선택된 최적 예측 움직임 벡터가 디폴트 예측 움직임 벡터와 동일한 경우가 비경쟁 예측 모드에 해당한다. 따라서, 움직임 벡터 예측 모드의 부호화를 생략할 수 있는지 여부 즉, 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부는 디폴트 예측 움직임 벡터에 의해 생성되고 부호화된 차분 벡터와 최적 예측 움직임 벡터에 의해 생성되고 부호화된 차분 벡터가 동일함을 알 수 있다는 조건에 의해 판단된다. 이에 대해서는 도 2를 통해 전술하였으므로 상세한 설명은 생략한다.
단계 S504에서 움직임 벡터 예측 모드가 비경쟁 예측 모드라고 판단된 경우 또는 단계 S506에서, 움직임 벡터 복호화 장치(300)가 단계 S502에서 선택된 최적 예측 움직임 벡터를 예측할 수 없는 경우, 단계 S514에서 움직임 벡터 부호화 장치(200)는 움직임 벡터 예측 모드를 부호화하지 않는다. 하지만, 단계 S506에서 움직임 벡터 예측 모드가 비경쟁 예측 모드라고 판단되고 단계 506에서, 움직임 벡터 복호화 장치(300)가 단계 S502에서 선택된 최적 예측 움직임 벡터를 예측할 수 있는 경우, 단계 S514에서 움직임 벡터 부호화 장치(200)는 블록의 움직임 벡터 예측 모드를 부호화한다.
또한, 움직임 벡터 부호화 장치(200)는 단계 S514에서, 움직임 벡터 예측 모드를 부호화할 때, 블록 단위가 아닌 상위 단위의 블록 내에서 경쟁 예측 모드에 해당하는 블록들의 움직임 벡터 예측 모드들을 모아서 부호화한다. 이를 위해, 움직임 벡터 부호화 장치(200)는 상위 단위 내의 블록들 중 경쟁 예측 모드에 해당하는 블록의 움직임 벡터 예측 모드를 움직임 벡터 예측 모드의 개수(예를 들어, 그를 나타내는 비트) 및 그 개수만큼의 움직임 벡터 예측 모드(예를 들어, 그를 나타내는 비트)를 부호화하는데, 압축 없이 부호화하거나 무손실 압축 부호화를 이용하여 부호화할 수 있다. 이때, 움직임 벡터 부호화 장치(200)는 상위 단위 내의 블록들 중 경쟁 예측 모드에 해당하는 블록들의 움직임 벡터 예측 모드들을 모아서 부호화하므로, 단계 S512를 통해 상위 단위 내에 남은 블록이 존재하는지 여부를 판단하여 상위 단위 내의 모든 블록들에 대해 단계 S500 내지 단계 S512를 수행하여 상이 단위 내의 모든 블록 내에서 경쟁 예측 모드에 해당하는 블록의 움직임 벡터 예측 모드를 구한 후 단계 S514에서 부호화한다.
최종적으로 부호화된 차분 벡터와 S512 단계에 의해 부호화된 움직임 벡터 예측 모드는 각각 비트스트림의 신택스(Syntax)로서 삽입된다. 비트스트림은 유선, 무선 또는 저장매체 등의 전송 채널을 통해 움직임 벡터 복호화 장치(300)로 전송된다.
이하에서는 도 5를 통해 전술한 각 단계 중 단계 S500, 단계 S502, 단계 S506, 단계 S508, 단계 S510에 대해 도 6, 도 7, 도 8, 도 9 및 도 12를 참조하여 각각 상세하게 설명한다.
도 6은 본 발명의 일 실시예에 따라 후보 움직임 벡터 집합을 선정하는 과정을 설명하기 위한 순서도이다.
도 6를 참조하면, 본 발명의 일 실시예에 따라 후보 움직임 벡터 집합을 선정하는 단계(S500)는, 현재 블록에 대한 하나 이상의 주변 블록을 검색하는 단계(S600), 검색된 하나 이상의 주변 블록의 움직임 벡터를 각각 산출하는 단계(S602) 및 각각 산출된 후보 움직임 벡터를 취합하여 후보 움직임 벡터 집합으로 선정하는 단계(S604) 등을 포함한다.
도 1에 나타낸 예시를 참조하면, 전술한 후보 움직임 벡터 집합 선정 단계(S500)에서 선정된 후보 움직임 벡터 집합은, 현재 블록인 블록 D의 좌측, 상단, 우측 상단에 있는 주변 블록인 블록 A, 블록 B 및 블록 C가 가지는 움직임 벡터들로 이루어진 {MVA, MVB, MVC}가 된다. 하지만, 더욱 일반적으로는 후보 움직임 벡터 집합은 구현 방법이나 필요에 따라 보다 다양한 움직임 벡터들을 후보 움직임 벡터들의 집합(후보 움직임 벡터 집합)으로 선정할 수 있다.
예를 들어, 시간축 상으로 이전에 존재하는 픽처의 동일 위치 블록의 움직임 벡터나 공간축 상으로 좌측 상단에 위치한 블록의 움직임 벡터도 후보 움직임 벡터로 사용할 수 있다. 또한 이들 움직임 벡터들을 이용하여 선정된 또 다른 움직임 벡터(예를 들어, 몇 개의 움직임 벡터의 평균값이나 중간값 등)도 포함될 수 있다.
따라서, 단계 S600는, 시간축 상에서 이전에 존재하는 픽처(Picture) 및 이후에 존재하는 픽처 중 하나 이상의 픽처에서 현재 블록과 동일한 위치에 있는 하나 이상의 제 1 블록; 및 공간축 상으로 현재 블록에 인접한 위치에 있는 하나 이상의 제 2 블록 중 하나 이상을 하나 이상의 주변 블록으로 검색할 수 있다.
또한 단계 S602는, 하나 이상의 제 1 블록에서의 각각의 움직임 벡터; 하나 이상의 제 2 블록에서의 각각의 움직임 벡터; 및 제 1 블록에서의 각각의 움직임 벡터와 제 2 블록에서의 각각의 움직임 벡터 중 하나 이상에 대한 평균값 또는 중간값; 중 하나를 검색된 하나 이상의 주변 블록의 움직임 벡터로 산출할 수도 있다.
전술한 후보 움직임 벡터 집합은 그 정의를 부호화 장치(200)와 복호화 장치(300)가 사전에 알고 있다는 전제 하에 다양한 방법으로 정의될 수 있다. 또한 후보 움직임 벡터 집합을 구성하는 원소인 후보 움직임 벡터 중 일부 또는 전부가 동일한 값을 갖는 경우, 서로 다른 값을 갖는 후보 움직임 벡터들만의 집합으로 구성할 수도 있다.
도 7은 본 발명의 일 실시예에 따라 예측 움직임 벡터를 선택하는 과정을 설명하기 위한 순서도이다.
도 7을 참조하면, 예측 움직임 벡터 선택 단계(S502)는, 부호화 장치(200) 및 복호화 장치(300) 간에 기 정의된 선택 함수를 이용하여 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대한 선택 함수값을 계산하는 단계(S700); 및 계산된 선택 함수값들에 근거하여 하나의 후보 움직임 벡터를 최적 예측 움직임 벡터로 선택하는 단계(S702) 등을 포함한다.
일 예로서, 전술한 "선택 함수값"은, 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대한 현재 움직임 벡터와의 차분 벡터를 부호화하는데 소요되는 비트량; 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대한 현재 움직임 벡터와의 차분 벡터의 크기; 및 움직임 벡터 예측 모드를 부호화하는데 소요되는 비트량; 중 하나 이상 또는 하나 이상을 조합한 것을 포함할 수도 있다.
만약 차분 벡터의 비트량을 선택 함수값으로 이용하는 경우, 전술한 단계 S702에서는, 일 예로, 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대한 차분 벡터를 부호화하는데 소요되는 비트량을 계산하고, 계산된 비트량 중 최소값이 되는 후보 움직임 벡터를 최적 예측 움직임 벡터로 선택할 수 있다.
또한, 예측 움직임 벡터 선택 단계(S502)는, 전술한 비트량을 선택 함수값에 근거하여 최적 예측 움직임 벡터를 선택하는 방식 이외에도, 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 중의 하나의 움직임 벡터를 선택했을 경우 발생하는 부호화에 소요되는 비트량과 이때 발생할 복원화질을 같이 고려하는 율-왜곡 최적화(Rate-Distortion Optimization) 방식을 이용하여서도 최적 예측 움직임 벡터를 선택할 수도 있다.
전술한 예측 움직임 벡터 선택 단계(S502)에서는, 수학식 4에서의 라그랑제 코스트(Lagrangian Cost) 함수를 최적 예측 움직임 벡터를 선택하기 위한 선택 함수로 이용할 수 있다.
수학식 4
Figure PCTKR2010000248-appb-M000004
여기서, J는 라그랑제 코스트, D는 원 영상과 복원 영상 간의 오차, λ는 라그랑제 승수이다. RH은 움직임 벡터 예측 모드를 부호화하는데 소요되는 비트량이고, RM은 현재 움직임 벡터의 차분 벡터를 부호화하는데 소요되는 비트량이다. 수학식 4에서의 J, D, RH, RM은 모두 현재 블록이 위치하는 픽처 번호를 표시하는 n과 블록 번호를 표시하는 k에 따라 정의된다. 따라서, 픽처 또는 블록 단위에서 선택적으로 적용될 수 있는 것이다.
또한, 최적 예측 움직임 벡터 선택하는 과정에서 원 영상과 복원 영상 간의 오차인 D가 변하지 않는 경우 또는 계산상의 편의를 위해, 라그랑제 코스트 J를 산출하는 수학식 4에서 D와 λ를 제거하여 식을 간략화할 수도 있다.
움직임 벡터 부호화 방법에 의해 발생하는 라그랑제 코스트를 산정하는 과정에서 수학식 4의 RH는 움직임 벡터 예측 모드 부호화에 소요되는 비트량이고, RM은 부호화된 현재 움직임 벡터에 대한 차분 벡터에 소요되는 비트량으로서, 그 계산 방법은 움직임 벡터 예측 모드에 따라 달라진다. 즉, 움직임 벡터 예측 모드가 복호화 장치(300)에서 최적 예측 움직임 벡터를 예측할 수 없음을 지시하는 경우, RM은 중간값(Median) 계산과 같이 사전에 정의된 디폴트 방법에 의해 생성된 예측 움직임 벡터 즉, 디폴트 예측 움직임 벡터와 현재 움직임 벡터 간의 차분 벡터를 부호화하는데 소요되는 비트량이다. 또한, 움직임 벡터 예측 모드가, 복호화 장치(300)에서 최적 예측 움직임 벡터를 예측할 수 있음을 지시하는 경우, RM은 선택된 최적 예측 움직임 벡터와 현재 움직임 벡터 간의 차분 벡터을 부호화하는데 소요되는 비트량이 되는 것이다.
또한, 전술한 예측 움직임 벡터 선택 단계(S502)에서는 수학식 4에서의 라그랑제 코스트(Lagrangian Cost) 함수를 이용하여 최적 예측 움직임 벡터를 선택하는 것 이외에도, 좀 더 일반화된 선택 함수의 식이 포함된 수학식 5를 이용하여 최적 예측 움직임 벡터를 선택할 수도 있다. 단, 수학식 5는 부호화할 현재 블록의 현재 움직임 벡터를 도 1에서의 블록 D의 움직임 벡터인 MVD로 가정하여 표현되었다.
수학식 5
Figure PCTKR2010000248-appb-M000005
수학식 5에서, PMVenc는 선택된 최적 예측 움직임 벡터이고, PMVC는 현재 움직임 벡터 MVD의 예측 움직임 벡터로 선택 가능한 후보 움직임 벡터들의 집합인 후보 움직임 벡터 집합(CS)에 속하는 하나의 원소(움직임 벡터)를 의미한다. "h()"는 현재 움직임 벡터 MVD를 그 예측 움직임 벡터와 차분하여 부호화하는데 최적인 예측 움직임 벡터를 선택하기 위한 선택 함수이다.
전술한 선택 함수 h()의 일례로 현재 움직임 벡터를 차분하여 부호화하는데 소요되는 비트량을 사용하거나, 현재 움직임 벡터를 차분하여 부호화하는데 소요되는 비트량과 움직임 벡터 예측 모드를 부호화하는데 소요되는 비트량의 합을 사용할 수 있다. 또한, 계산을 간단히 하기 위해 실제 소요되는 비트량 대신 현재 움직임 벡터와 예측 움직임 벡터와의 차이인 차분 벡터의 크기를 사용할 수도 있다. 더욱 일반적으로는 선택 함수 h()의 정의를 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)가 사전에 미리 알고 있다는 전제 하에 다양한 방법으로 정의하여 사용할 수 있다. 이러한 선택 함수 h()가 주어지면, 예측 움직임 벡터의 후보인 후보 움직임 벡터를 포함하는 후보 움직임 벡터 집합(CS)으로부터 선택 함수 h()를 최적화하는 하나의 후보 움직임 벡터(PMVC)를 최적 예측 움직임 벡터(PMVenc)로 선택할 수 있다.
도 8은 본 발명의 일 실시예에 따라 최적 예측 움직임 벡터의 예측 가능 여부를 판단하는 과정을 설명하기 위한 순서도이다.
도 8을 참조하면, 최적 예측 움직임 벡터의 예측 가능 여부를 판단하는 단계(S506)는 부호화 장치(200) 및 복호화 장치(300) 간에 기 정의된 판단 함수를 이용하여 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대한 판단 함수값을 계산하는 단계(S800); 계산된 판단 함수값에 근거하여 하나 이상의 후보 움직임 벡터 중 하나의 후보 움직임 벡터를 현재 움직임 벡터에 대한 추정 예측 움직임 벡터로 선택하는 단계(S802); 선택된 추정 예측 움직임 벡터 및 선택된 최적 예측 움직임 벡터를 비교하는 단계(S804); 및 비교 결과에 따라 선택된 최적 예측 움직임 벡터가 복호화 장치(300)에서 예측 가능한지를 판단하는 단계(S806) 등을 포함한다.
전술한 예측 움직임 벡터 예측가능 여부를 판단하는 단계(S506)를 수학식 5에서의 표현을 이용하여 다시 설명하면, 앞선 예측 움직임 벡터 선택 단계(S502)에서 선택된 최적 예측 움직임 벡터(PMVenc)를 사용하여 계산된 차분 벡터와, 예측 움직임 벡터의 후보가 될 수 있는 유한한 개수의 후보 움직임 벡터와, 움직임 보상에 사용할 참조 픽처와, 이미 복원된 주변 블록의 정보와, 화소값에 대한 움직임 보상에 따른 잔차 신호를 이용하여, 앞선 단계(S502)에서 선택된 최적 예측 움직임 벡터가 움직임 벡터 복호화 장치(300)에서 예측 가능한지 여부를 판단한다.
이를 위해, 움직임 벡터 복호화 장치(300)는 움직임 벡터 부호화 장치(200)가 계산하여 전송할 현재 움직임 벡터(MVD)에 대한 차분 벡터인 DMVD(=MVD-PMVenc)와 이미 복원된 주변 블록의 정보와 움직임 보상에 사용할 참조 픽처를 이용하여, 수학식 6과 같은 소정의 결정 방법을 이용하여 추정 예측 움직임 벡터인 PMVdec를 찾는다.
수학식 6
Figure PCTKR2010000248-appb-M000006
수학식 6에서, 판단 함수인 g()는, 움직임 벡터 부호화 장치(200)가 계산하여 전송할 차분 벡터 및 이미 복원된 주변 블록의 정보를 이용하여, 움직임 벡터 복호화 장치(300)가 최적 예측 움직임 벡터(PMVenc)를 예측할 수 있는지를 움직임 벡터 부호화 장치(200)에서 판단하기 위한 함수이다. 또한, 이 판단 함수 g()는 움직임 벡터 복호화 장치(300)에서 예측 움직임 벡터를 예측할 때도 사용된다.
판단 함수 g()는 그 정의를 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)가 사전에 알고있다는 전제 하에 다양한 방법으로 정의될 수 있으며, 이러한 판단 함수 g()에 대한 구체적인 실시예를 후술한다.
수학식 6에 의해, 움직임 벡터 부호화 장치(200)는 움직임 벡터 복호화 장치(300)가 찾아낼 추정 예측 움직임 벡터인 PMVdec를 미리 계산한 후, 움직임 벡터 복호화 장치(300)가 제공된 차분 벡터인 DMVD(=MVD-PMVenc) 및 이미 복원된 주변 블록의 정보를 이용하여, 최적 예측 움직임 벡터(PMVenc)를 예측하여 올바르게 복원된 영상 데이터를 얻어낼 수 있는지 여부를 검사한다. 즉, 움직임 벡터 부호화 장치(200)는 나중에 움직임 벡터 복호화 장치(300)가 수행할 최적 예측 움직임 벡터를 찾아내는 과정을 미리 수행하여 그 결과를 부호화 시에 이용하는 것이다.
전술한 단계 S804 및 단계 S806에 대한 몇가지 구현 예를 아래에서 설명한다. 먼저, 움직임 벡터 복호화 장치(300)에 의해 최적 예측 움직임 벡터(PMVenc)가 예측 가능한지를 판단하기 위한 방법의 일 예는 다음과 같다.
단계 S506에서 수학식 6을 통해 계산된 추정 예측 움직임 벡터(PMVdec)가 단계 S502에서 선택된 최적 예측 움직임 벡터(PMVenc)가 같을 경우, 움직임 벡터 복호화 장치(300)는 움직임 벡터 부호화 장치(200)가 제공한 차분 벡터(DMVD)에 자신이 추정한 예측 움직임 벡터인 추정 예측 움직임 벡터(PMVdec)를 더하여 정확한 현재 움직임 벡터 MVD를 복원함으로써 올바르게 복원된 영상 데이터를 얻어낼 수 있다. 따라서, 움직임 벡터 부호화 장치(200)는 자신이 직접 선택한 최적 예측 움직임 벡터(PMVenc)와 움직임 벡터 복호화 장치(300)가 찾아낼 것으로 추정하는 추정 예측 움직임 벡터(PMVdec)가 같은 경우에는, 움직임 벡터 복호화 장치(300)에서의 최적 예측 움직임 벡터(PMVenc)에 대한 예측이 가능하다고 판정하고, 그 이외의 경우는 경우에는 예측이 불가능하다고 판정한다.
또는, 구현 예에 따라, 움직임 벡터 부호화 장치(200)는 자신이 직접 선택한 최적 예측 움직임 벡터(PMVenc)와 움직임 벡터 복호화 장치(300)가 찾아낼 것으로 추정하는 추정 예측 움직임 벡터(PMVdec ) 간의 차이가 소정의 경계값보다 작은 경우에는, 움직임 벡터 복호화 장치(300)에서의 최적 예측 움직임 벡터(PMVenc)에 대한 예측이 가능하다고 판정하고, 그 이외의 경우에는 예측이 불가능하다고 판정할 수도 있다.
움직임 벡터 복호화 장치(300)에 의해 최적 예측 움직임 벡터(PMVenc)가 예측 가능한지를 판단하기 위한 방법의 다른 예는 다음과 같다. 영상의 압축율이 높을 경우, 영상의 화소값의 변화가 크지 않을 경우, 또는 영상의 움직임 벡터의 변화가 그리 크지 않을 경우 등에는 비록 최적 예측 움직임 벡터(PMVenc)와 추정 예측 움직임 벡터(PMVdec)가 같지 않더라도, 추정 예측 움직임 벡터(PMVdec)를 사용하여 복원한 움직임 벡터(즉, MV'D = DMVD + PMVdec )를 사용하여 움직임 보상된 영상 데이터와, 최적 예측 움직임 벡터(PMVenc)를 사용하여 복원한 움직임 벡터(즉, MVD = DMVD + PMVenc )를 사용하여 움직임 보상된 영상 데이터가 같은 경우가 발생할 수 있는데, 이러한 경우, 최적 예측 움직임 벡터(PMVenc)와 추정 예측 움직임 벡터(PMVdec)가 같지 않더라도, 움직임 벡터 복호화 장치(300)가 추정 예측 움직임 벡터(PMVdec)를 이용하여 최적 예측 움직임 벡터(PMVenc)를 예측할 수 있다고 판정하고, 그 이외의 경우에는 예측할 수 없다고 판정한다.
움직임 벡터 복호화 장치(300)에 의해 최적 예측 움직임 벡터(PMVenc)가 예측 가능한지를 판단하기 위한 방법의 또 다른 예는 다음과 같다. 더욱 더 압축율을 높이기 위하여 추정 예측 움직임 벡터(PMVdec)를 사용하여 얻어진 복원된 영상 데이터와 최적 예측 움직임 벡터(PMVenc)를 사용하여 얻어질 복원된 영상 데이터가 소정의 경계값 이하로 차이가 날 경우에도(예를 들어, 두 복원된 영상데이터 사이의 SAD(Sum of Absolute Difference)가 소정의 경계값 이하로 차이가 날 경우), 움직임 벡터 복호화 장치(300)가 추정 예측 움직임 벡터(PMVdec)를 이용하여 최적 예측 움직임 벡터(PMVenc)를 예측가능하다고 판정하고, 그 이외의 경우에는 움직임 벡터 복호화 장치(300)가 추정 예측 움직임 벡터(PMVdec)를 이용하여 최적 예측 움직임 벡터(PMVenc)를 예측할 수 없다고 판정한다.
이상에서 전술한 예측가능 여부 판단의 몇 가지의 구현 예를 다시 설명하면, 전술한 단계 S804 및 단계 S806에서는, 선택된 추정 예측 움직임 벡터와 선택된 최적 예측 움직임 벡터가 동일하거나 소정의 경계값 이하로 차이가 날 경우, 선택된 최적 예측 움직임 벡터가 움직임 벡터 복호화 장치(300)에서 예측가능하다고 판단할 수 있다.
또한, 전술한 단계 S804 및 단계 S806에서는, 선택된 추정 예측 움직임 벡터를 이용하여 복원한 영상 데이터가 선택된 최적 예측 움직임 벡터를 이용하여 복원한 영상 데이터와 동일하거나 소정의 경계값 이하로 차이가 날 경우, 선택된 최적 예측 움직임 벡터가 복호화 장치(300)에서 예측 가능하다고 판단할 수도 있다.
도 8를 참조하면, 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화장치(300) 간에 미리 정의된 판단 함수(수학식 6에서의 g())를 이용하여 움직임 벡터 부호화 장치(200)는 판단 함수값을 계산하고(S800), 계산된 판단 함수값을 토대로 수학식 6과 같이 최소값의 판단 함수값을 갖는 후보 움직임 벡터를 추정 예측 움직임 벡터(PMVdec)로 선택한다(S802). 이후, 추정 예측 움직임 벡터(PMVdec)와 최적 예측 움직임 벡터(PMVenc)를 비교하여(S804), 최종적으로 예측가능 여부를 판단하게 된다(S806).
움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화장치(300) 간에 미리 정의된 판단 함수는 다양한 형태로 실현될 수 있다.
수학식 6의 판단 함수 g()로서는, 템플릿 매칭(TM: Template Matching)을 이용한 함수, 경계 화소 정합(BM: Boundary Matching)을 사용한 함수를 사용할 수 있다.
먼저, 템플릿매칭(TM: Template Matching)을 이용한 판단 함수를 아래에서 설명하면, 탬플릿 매칭 화소 인덱스 집합(TMS: Template Matching Set)은 주어진 지정된 블록의 위치를 기준으로, 선택된 화소들의 상대적 위치를 나타내는 인덱스 집합으로 정의할 수 있는데, 예를 들어, 지정된 블록의 좌측, 좌측 상단 및 상단에 인접한 주변의 M개 화소의 위치이다. 필요에 따라 다른 방법도 가능함은 물론이다. 일반적으로 TMS가 지시하는 화소의 수가 많으면 더욱 정확한 매칭이 가능하나 계산량이 많아진다. 템플릿 매칭 방법은, 예측 움직임 벡터로 선택 가능한 모든 후보 예측 움직임 벡터 집합(CS)의 선정 이후, 선정된 후보 예측 움직임 벡터 집합 내의 각각의 후보 움직임 벡터가 지정하는 참조 블록에 대해 TMS가 가리키는 화소들과 현재 블록에 대해 TMS가 지시하는 화소들의 차이를 수학식 7(수학식 6의 일 실시예)을 이용하여 계산하여 각각의 후보 움직임 벡터에 따른 정합 오류를 계산한 후 이중 가장 최소의 정합 오류를 가지는 것을 앞에서 언급한 추정 예측 움직임 벡터(PMVdec)로 선정한다.
수학식 7
Figure PCTKR2010000248-appb-M000007
수학식 7에서, f(PMVC+DMV, i)에서 (PMVC+DMV)는 인덱스 i(TMS에 포함됨)가 가리키는 참조 픽처 내의 참조 블록 주변의 인덱스 i 가 나타내는 화소 위치를 나타내고, f(PMVC+DMV, i)는 이 위치에서의 화소값을 의미한다. 또한 C(i)는 인덱스 i가 지시하는 현재 블록 주변의 화소값을 의미한다.
판단 함수의 일 실시예인 g(PMVC|DMV)는 움직임 벡터 부호화 장치(200)가 제공하는 차분 벡터(DMVD)에 후보 움직임 벡터 집합(CS) 중의 한 원소인 후보 움직임 벡터(PMVC)를 예측 움직임 벡터로 사용하여 해당블록의 움직임 벡터를 PMVC+DMV로 계산한 후, 이 움직임 벡터를 이용하여 해당 블록을 움직임 보상하여 얻어진 복원된 블록이 얼마나 올바른지를 산정한 값을 제공한다. 이를 산정하기 위하여 수학식 7에서는 차이의 제곱합(Sum of Squared Error)을 사용하였지만, 응용에 따라 SAD(sum of Absolute difference) 등 다른 방법도 가능하다. 추정 예측 움직임 벡터(PMVdec)는 판단 함수의 일 실시예인 g(PMVC|DMV)를 최소로 하는 후보 움직임 벡터(PMVC)를 의미한다.
즉, 도 8에서 단계 S800는, 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각이 지정하는 참조 블록에 대해 탬플릿 매칭 화소 인덱스 집합(TMS: Template Matching Set)이 지시하는 화소들과 현재 블록에 대해 탬플릿 매칭 화소 인덱스가 지시하는 화소들의 화소값 차이를 계산하고, 계산된 화소값 차이에 근거하여, 하나 이상의 후보 움직임 벡터 각각에 대한 정합 오류를 판단 함수값으로 계산함으로써, 기정의된 판단 함수를 수행하여 판단 함수값을 계산할 수 있다.
다음으로, 경계화소정합(BM: Boundary Matching)을 이용한 판단 함수를 설명하면, 전술한 일 실시예의 TMS와 유사하게, 경계 매칭 화소 인덱스 집합 BMS(Boundary Matching Index Set)는 현재 블록 내의 최좌측 및 최상단에 위치한 화소값의 위치를 가리키는 인덱스의 집합으로 정의할 수 있다. 응용에 따라 현재 블록 내의 블록 경계에 위치한 전부 또는 일부의 화소들의 위치로 정의하는 것도 가능함은 물론이다.
예측 움직임 벡터로 선택 가능한 모든 후보 움직임 벡터 집합(CS)을 선정한 이후, 후보 움직임 벡터 집합(CS) 중의 어느 후보 움직임 벡터(PMVC)가 가장 최적인지를 알기 위해, 움직임 보상으로 부호화된 것을 복원한 현재 블록이 그 주변 블록들과 불록 경계에서 얼마나 부드럽게 연결되는 지를 산정하기 위해 경계 화소 매칭을 수행하여 이 경계 화소 매칭 정합 오류를 최소화하는 후보 움직임 벡터(PMVC)를 후보 움직임 벡터 집합(CS) 중에서 정하여 이를 추정 예측 움직임 벡터(PMVdec)로 선택한다. 이를 움직임 벡터 복호화 장치(300)가 선정한 예측 움직임 벡터라 한다.
이 과정을 좀 더 자세히 설명하면, 후보 움직임 벡터 집합(CS) 중의 한 원소인 후보 움직임 벡터(PMVC)와 움직임 벡터 부호화 장치(200)가 결정한 차분 벡터(DMV)를 사용하여 PMVC+DMV로 계산된 후보 움직임 벡터가 지정하는 참조 블록의 값과 움직임 벡터 부호화 장치(200)가 계산한 차분 벡터를 더하여 현재 블록의 화소값을 복원 한 후, 각각의 후보 움직임 벡터에 따라 움직임 보상 복원된 현재 블록 중에서 현재 블록 주변의 기 복원된 화소들과의 경계 정합도가 가장 높은 복원블록을 생성하는 예측 움직임 벡터를 결정한다. 이를 위해, 수학식 8과 같이 차이값의 제곱합으로 각각의 후보 움직임 벡터가 가지는 정합 오류를 계산한다. 물론 SAD(Sum of Absolute Difference) 등 다른 방법으로 정합오류를 계산할 수 있음은 자명하다.
수학식 8
Figure PCTKR2010000248-appb-M000008
수학식 8에서, C(i)는 후보 움직임 벡터 집합(CS) 중의 한 원소인 후보 움직임 벡터(PMVC)와 움직임 벡터 부호화 장치(200)가 결정한 DMV를 사용하여 PMVC+DMV로 계산된 후보 움직임 벡터가 지정하는 참조 블록의 값과 움직임 벡터 부호화 장치(200)가 계산한 움직임 보상에 따른 화소의 잔차 신호를 더하여 복원된 현재 블록의 복원 화소 중 경계 매칭 화소 인덱스 집합 BMS(Boundary Matching Set) 내의 인덱스 i가 지정하는 화소값을 의미한다. 또한, f(i)는 현재 블록에 인접하는 주변 블록 내의 경계 화소 중 BMS의 인덱스 i가 지정하는 화소와 바로 인접하는 화소값을 의미한다. 수학식 8을 사용하여 후보 움직임 벡터 집합(CS) 내의 각각의 후보 움직임 벡터(PMVC)에 대해 경계 화소 정합 오류가 계산되고, 그 중 최소의 정합 오류를 발생하는 후보 움직임 벡터를 추정 예측 움직임 벡터(PMVdec)로 선택한다. 이를 움직임 벡터 복호화 장치(300)가 선정한 예측 움직임 벡터라 한다.
즉, 도 8에서 단계 S800는 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대하여 움직임 벡터 부호화 장치(200)에서 결정한 차분 벡터와 해당 후보 움직임 벡터를 사용하여 계산된 후보 움직임 벡터가 지정하는 참조 블록의 값과 움직임 벡터 부호화 장치(200)가 계산한 움직임 보상에 따른 잔차 신호를 더하여 복원된 현재 블록의 복원 화소 중 경계 매칭 화소 인덱스 집합(BMS:Boundary Matching Set) 내의 인덱스가 지정하는 화소값; 및 현재 블록에 인접하는 주변 블록 내의 경계화소 중 경계 매칭 화소 인덱스 집합의 인덱스가 지정하는 화소와 인접한 화소값의 차이에 근거하여, 하나 이상의 후보 움직임 벡터 각각에 대한 정합 오류를 판단 함수값으로 계산함으로써, 기 정의된 판단 함수를 수행하여 판단 함수값을 계산할 수도 있다.
도 8을 참조하여 단계 S506단계를 정리하면, S800 및 S802단계에서, 움직임 벡터 부호화 장치(200)는 템플릿 매칭 또는 경계 화소 매칭 등의 정해진 결정 방법에 따라 결정된 최소 정합 오류를 갖는 추정 예측 움직임 벡터(PMVdec)를 선택한다.
단계 S804에서는, 선택된 추정 예측 움직임 벡터(PMVdec)와 단계 S502에서 선택한 최적 예측 움직임 벡터(PMVenc)가 동일한지 여부를 비교한다. 단계 S806에서는, 전술한 판단 방식에 따라, 추정 예측 움직임 벡터(PMVdec)와 최적 예측 움직임 벡터(PMVenc)가 동일하다면 움직임 벡터 복호화 장치(300)가 현재 블록의 현재 움직임 벡터의 최적 예측 움직임 벡터를 예측할 수 있는 것으로 판단하고, 그렇지 않은 경우에는 예측할 수 없다고 판단한다. 또한, 전술한 것처럼, 추정 예측 움직임 벡터(PMVdec)와 최적 예측 움직임 벡터(PMVenc)가 동일하지 않더라도 각각을 이용하여 복원된 복원 영상이 동일하거나, 그 차이가 소정의 경계치보다 작은 경우는 이 두개의 추정 예측 움직임 벡터(PMVdec)와 최적 예측 움직임 벡터(PMVenc)가 같다고 간주하여 움직임 벡터 복호화 장치(300)가 현재 블록의 현재 움직임 벡터의 최적 예측 움직임 벡터를 예측할 수 있는 것으로 판단할 수도 있다.
도 9는 본 발명의 일 실시예에 따라 최적 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 부호화하는 과정을 설명하기 위한 순서도이다.
도 9를 참조하면, 최적 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 부호화하는 단계(S508)는 선택된 최적 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계(S900); 현재 움직임 벡터와 선택된 최적 예측 움직임 벡터의 차분 벡터를 계산하는 단계(S902); 및 계산된 차분 벡터를 부호화함으로써 현재 움직임 벡터를 부호화하고 예측 가능을 지시하는 움직임 벡터 예측모드를 제 3 부호화기(250)에 전달하는 단계(S904) 등을 포함한다.
도 10는 본 발명의 일 실시예에 따라 디폴트 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 부호화하는 과정을 설명하기 위한 순서도이다.
도 10를 참조하면, 디폴트 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 부호화하는 단계(S510)는 기설정된 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계(S1000); 현재 움직임 벡터와 기 설정된 디폴트 예측 움직임 벡터의 차분 벡터를 계산하는 단계(S1002); S504 단계에 의한 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하는 단계(S1004); 움직임 벡터 예측 모드가 비경쟁 예측 모드가 아닌 경우 즉, 움직임 벡터 예측 모드의 생략이 불가능한 경우, 계산된 차분 벡터를 부호화함으로써 현재 움직임 벡터를 부호화하고 예측 불가능을 지시하는 움직임 벡터 예측 모드를 제 3 부호화기(250)에 전달하는 단계(S1006); 및 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우 즉, 움직임 벡터 예측 모드의 생략이 가능한 경우, 계산된 차분 벡터를 부호화함으로써 현재 움직임 벡터를 부호화하고 움직임벡터 예측 모드의 부호화를 생략하는 단계(S1008) 등을 포함한다.
단계 S1002에서의 기 설정된 디폴트 예측 움직임 벡터는, 현재 블록에 인접하는 하나 이상의 주변 블록의 움직임 벡터의 중간값(Median)이고, 움직임 벡터 부호화 장치(200) 및 움직임 벡터 복호화 장치(300) 간에 기 설정된다.
도 11는 본 발명의 일 실시예에 따라 움직임 벡터 예측 모드를 부호화하는 과정을 설명하기 위한 순서도이다.
도 11를 참조하면, 움직임 벡터 예측 모드를 부호화하는 단계(S514)는 움직임 벡터가 존재하는 소정의 비독립적 부호화 단위의 상위에 해당하는 독립적 부호화 단위 내에 존재하는 움직임 벡터 예측 모드의 개수를 계산하고 부호화하는 단계(S1110); 및 움직임 벡터가 존재하는 소정의 비독립적 부호화 단위의 상위에 해당하는 독립적 부호화 단위 내에 존재하는 움직임 벡터 예측 모드를 모아서 부호화하는 단계(S1120) 등을 포함한다.
도 12는 본 발명의 일 실시예에 따라 움직임 벡터 예측 모드의 개수 및 움직임 벡터 예측 모드를 모아서 부호화하는 경우의 규정을 설명하기 위한 예시도이다.
도 12를 참조하면, 움직임 벡터가 부호화되는 블록 단위가 아닌 상위에 해당하는 독립적 부호화 단위인 슬라이스 단위와 같은 상위 단위로 상위 내에 존재하는 움직임 벡터 예측 모드의 개수 및 움직임 벡터 예측 모드를 모아서 부호화하는 것을 알 수 있다.
이하에서는, 도 3을 참조하여 전술한 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치(300)에 의한 움직임 벡터 복호화 방법을 도 13 내지 도 15를 참조하여 더욱 상세하게 설명한다.
도 13은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도이다.
도 13을 참조하면, 움직임 벡터 복호화 장치(300)는 비트스트림을 복호화하여 현재 움직임 벡터와 예측 움직임 벡터 간의 차분 벡터 및 현재 움직임 벡터의 움직임 벡터 예측 모드를 복원하고(S1300), 움직임 벡터 예측 모드에 근거하여 현재 움직임 벡터의 예측 움직임 벡터를 선택하하며(S1302), 선택된 예측 움직임 벡터를 이용하여 현재 움직임 벡터를 복원한다(S1304).
단계 S1300에서, 움직임 벡터 부호화 장치(200)는 선택적으로 부호화된 움직임 벡터 예측 모드와 차분 벡터를 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300) 사이에 미리 약속된 서로 다른 소정의 독립적 또는 비독립적 단위에 따라 복호화한다. 즉, 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300) 사이에 기 약속된 소정의 판단 과정을 통해 움직임 벡터 예측 모드의 존재 여부를 판단한다.
만약, 움직임 벡터 예측 모드가 존재하지 않는 것으로 판단되면 움직임 벡터 예측 모드를 비경쟁 예측 모드로 정의하고, 단계 S1302에서 예측 움직임 벡터를 디폴트 예측 움직임 벡터로 선택한다. 만약, 단계 S1300에서 움직임 벡터 예측 모드가 존재하는 것으로 판단되면, 단계 S1300에서 복원된 상위 단위 내의 경쟁 예측 모드에 해당하는 블록의 움직임 벡터 예측 모드로부터 해당 블록의 움직임 벡터 예측 모드를 나타내는 비트값을 읽고, 이 값이 지시하는 움직임 벡터를 해당 블록의 예측 움직임 벡터로 선택한다.
단계 S1302에서, 움직임 벡터 복호화 장치(300)는 움직임 벡터 예측 모드를 나타내는 비트값이 움직임 벡터 예측 모드가 경쟁 예측 모드이지만 예측 불가능 모드를 나타내는 경우(예를 들어, 비트값이 '0'인 경우), 기 약속된 방식에 따라 결정되는 디폴트 예측 움직임 벡터를 선택한다. 또한, 단계 S1302에서, 움직임 벡터 복호화 장치(300)는 움직임 벡터 예측 모드를 나타내는 비트값이 움직임 벡터 예측모드가 경쟁 예측 모드이면서 예측 가능 모드를 나타내는 경우(예를 들어, 비트값이 '1'인 경우), 소정의 방법을 이용하여 복수 개의 후보 움직임 벡터 중에서 하나의 후보 움직임 벡터를 현재 움직임 벡터의 예측 움직임 벡터 즉, 최적 예측 움직임 벡터로 선택한다. 여기서, 소정의 방법은 탬플릿 매칭 및 경계 화소 매칭 중 하나에 기초한 방법일 수 있다.
이하에서는 도 13을 참조하여 전술한 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법의 구체적인 구현 예를 도 14 및 도 15를 참조하여 더욱 상세하게 설명한다.
도 14는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법의 구체적인 구현 예를 설명하기 위한 순서도이다.
도 14를 참조하면, 움직임 벡터 복호화 장치(300)는 움직임 벡터 부호화 장치(200)에 의해 부호화된 움직임 벡터 예측 모드와 부호화된 차분 벡터를 복호화하는 단계(S1400); 움직임 벡터 예측 모드의 존재 여부를 판단하는 단계(S1402); 복호화된 움직임 벡터 예측 모드가 예측 가능을 지시하는지 또는 예측 불가능을 지시하는지를 판단하는 단계(S1404); 복호화된 움직임 벡터 예측 모드가 예측 가능을 지시하면, 현재 블록의 현재 움직임 벡터를 복원하기 위한 예측 움직임 벡터로 선택가능한 후보 움직임 벡터 집합을 선정하고, 선정된 후보 움직임 벡터 집합에서 최적 예측 움직임 벡터를 선택하며, 선택된 최적 예측 움직임 벡터를 현재 움직임벡터에 대한 예측 움직임 벡터로 결정하는 단계(S1406); 움직임 벡터 예측 모드가 존재하지 않거나 복호화된 움직임 벡터 예측모드가 예측 불가능을 지시하면, 기 설정된 방식에 따라 결정되는 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계(S1408); 및 S1406 단계 또는 S1408 단계에서 결정된 예측 움직임 벡터와 복호화된 차분 벡터를 더하여 현재 블록의 현재 움직임 벡터를 복원하는 단계(S1410) 등을 포함한다.
S1400 단계에서의 부호화된 차분 벡터는, 현재 움직임 벡터와 기 설정된 디폴트 예측 움직임 벡터의 차분 벡터이거나, 현재 움직임 벡터와 최적 예측 움직임벡터의 차분 벡터일 수 있다.
도 15는 본 발명의 일 실시예에 따라 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 과정을 설명하기 위한 순서도이다.
도 15를 참조하면, 본 발명의 일 실시예에 따라 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계(S1406)는 현재 블록의 현재 움직임 벡터를 복원하기 위한 예측 움직임 벡터로 선택가능한 후보 움직임 벡터 집합을 선정하는 단계(S1500); 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)에서 공통적으로 정의된 판단 함수를 이용하여, 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대하여 판단 함수값을 계산하는 단계(S1502); 및 계산된 판단 함수값 중에서 최소값을 갖는 후보 움직임 벡터를 최적 예측 움직임 벡터로 선택하고, 선택된 최적 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 선택하는 단계(S1504) 등을 포함한다.
단계 S1504에서, 움직임 벡터 복호화 장치(300)가 현재 움직임 벡터에 대한 예측 움직임 벡터로서 결정한 최적 예측 움직임 벡터는 움직임 벡터 부호화 장치(200)에서 움직임 벡터 복호화 장치(300)가 찾을 것으로 추정한 추정 예측 움직임 벡터(PMVdec)와 동일하거나 소정 경계값의 차이를 보일 수 있다.
또한, 단계 S1502에서, 움직임 벡터 복호화 장치(300)는 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각이 지정하는 참조 블록에 대해 탬플릿 매칭 화소 인덱스 집합(TMS: Template Matching Set)이 지시하는 화소들과 현재 블록에 대해 탬플릿 매칭 화소 인덱스가 지시하는 화소들의 화소값 차이를 계산하고, 계산된 화소값 차이에 근거하여, 하나 이상의 후보 움직임 벡터 각각에 대한 정합 오류를 판단 함수값으로 계산한다.
또한 단계 S1502에서, 움직임 벡터 복호화 장치(300)는 선정된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대하여 움직임 벡터 부호화 장치(200)에서 결정한 차분 벡터와 해당 후보 움직임 벡터를 사용하여 계산된 후보 움직임 벡터가 지정하는 참조 블록의 값과 움직임 벡터 부호화 장치(200)가 계산한 움직임 보상에 따른 잔차 신호를 더하여 복원된 현재 블록의 복원 화소 중 경계 매칭 화소 인덱스 집합(BMS:Boundary Matching Set) 내의 인덱스가 지정하는 화소값; 및 현재 블록에 인접하는 주변 블록 내의 경계 화소 중 경계 매칭 화소 인덱스 집합의 인덱스가 지정하는 화소와 인접한 화소값의 차이에 근거하여, 하나 이상의 후보 움직임 벡터 각각에 대한 정합 오류를 판단 함수값으로 계산한다.
도 16은 본 발명의 다른 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도이다.
도 16을 참조하면, 본 발명의 다른 실시예에 따라 움직임 벡터 복호화 장치(300)에 의해 제공되는 움직임벡터 복호화 방법은, 움직임 벡터 부호화 장치(200)에 의해 부호화된 움직임 벡터 예측 모드와 부호화된 차분 벡터를 복호화하는 단계(S1600); 움직임 벡터 예측 모드의 존재여부를 판단하는 단계(S1602); 복호화된 움직임 벡터 예측 모드가 예측가능을 지시하는지 예측 불가능을 지시하는지를 판단하는 단계(S1604); 복호화된 움직임 벡터 예측 모드가 예측가능을 지시하면, 현재 블록의 현재 움직임 벡터를 복원하기 위한 예측 움직임 벡터로 선택가능한 후보 움직임 벡터 집합을 선정하고, 선정된 후보 움직임 벡터 집합에서 최적 예측 움직임 벡터를 선택하며, 선택된 최적 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계(S1606); 움직임 벡터 예측 모드가 존재하지 않거나 복호화된 움직임 벡터 예측 모드가 예측 불가능을 지시하면, 기 설정된 방식에 따라 결정되는 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계(S1608); 단계 S1606 또는 단계 S1608에서 결정된 예측 움직임 벡터와 복호화된 차분 벡터를 더하여 현재 블록의 현재 움직임 벡터를 복원하는 단계(S1610); 움직임 벡터 예측 모드의 개수를 이용한 정상 복호화 판단 단계(S1612); 및 비정상 복호화를 위한 선택적 추가 처리 단계(S1614) 등을 포함할 수 있다.
본 발명의 실시예에서는 움직임 벡터 부호화 장치(200)와 움직임 벡터 복호화 장치(300)가 미리 약속된 소정의 판단 과정을 공유한다는 전제 하에서, 스스로 그리고 독립적으로 부호화 또는 복호화하고자 하는 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단할 수 있으므로, 블록의 움직임 벡터 예측 모드가 경쟁 예측 모드인 경우에만 예측 가능 모드와 예측 불가능 모드를 구분하는 비트만을 전송하고 비경쟁 예측 모드인 경우에는 움직임 벡터 예측 모드에 대한 부호화를 생략함으로써, 현재 움직임 벡터를 부호화하는 데 소요되는 비트량을 크게 절감할 수 있다.
이때, 움직임 벡터 부호화 장치(200)가 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하기 위해서는 이전에 복호화한 주변 블록의 정보가 정확하다는 또 다른 전제가 부합해야 한다. 즉, 이전에 복호화한 주변 블록의 복원된 움직임 벡터에 오류가 발생하여 부호화할 때 사용한 움직임 벡터가 아닌 다른 움직임 벡터로 복원된 경우, 복호화하고자 하는 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단할 때, 오류가 발생하여 그로 인해 부호화 장애(Decoder Crash)가 발생할 수 있다.
예를 들어, 이전에 복호화한 주변 블록의 복원된 움직임 벡터에 오류가 없는 경우, 복호화하고자 하는 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드라고 가정한 상태에서, 만약 이전에 복호화한 주변 블록의 복원된 움직임 벡터에 오류가 발생하고 그로 인해 복호화하고자 하는 블록의 움직임 벡터 예측 모드가 경쟁 예측 모드로 판단이 되었다면, 움직임 벡터 복호화 장치(300)는 복원한 움직임 벡터 예측 모드의 비트값을 읽어서 읽혀진 비트값에 따라 예측 가능 모드 또는 예측 불가능 모드를 판단하여 최적 예측 움직임 벡터 또는 디폴트 예측 움직임 벡터를 현재 블록에 대한 예측 움직임 벡터로 결정한다. 하지만, 이전에 복호화한 주변 블록의 복원된 움직임 벡터에 오류가 없었다면, 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드라고 판단될 것이므로, 복원한 움직임 벡터 예측 모드의 비트값을 읽지 말아야 하며, 그로 인해 이후 블록에서 이용해야할 움직임 벡터 예측 모드의 비트값이 비정상적으로 사용된 결과를 초래하여, 이후 블록에서 복원된 움직임 벡터 예측 모드의 비트값을 읽으려할 때 비트값이 부족하게 되며, 이 경우 복호화기 장애가 발생하여 영상을 복호화하는 전체 과정이 중단될 수 있다.
따라서, 이러한 문제점을 해결하기 위해, 본 발명의 실시예에서는 움직임 벡터 부호화 장치(200)에서 움직임 벡터 예측 모드를 부호화할 때, 움직임 벡터 예측 모드를 나타내는 비트(즉, 예측 가능 모드를 나타내는 비트 및/또는 예측 불가능 모드를 나타내는 비트)뿐만 아니라, 움직임 벡터 예측 모드의 개수를 나타내는 비트를 함께 부호화하여 움직임 벡터가 결정되는 블록 단위보다 상위인 슬라이스 단위 또는 픽처 단위 등의 상위 단위로 비트스트림에 삽입한다.
또한, 움직임 벡터 복호화 장치(300)에서는 후술하는 바와 같이, 비트스트림으로부터 상위 단위로 삽입된 부호화된 움직임 벡터 예측 모드를 파싱하여 블록 단위로 진행되는 복호화 과정과는 독립적으로 복호화하며, 움직임 벡터 예측 모드를 나타내는 비트를 출력할 뿐만 아니라, 움직임 벡터 예측 모드의 개수를 획득하여 획득한 움직임 벡터 예측 모드의 개수와 복호화된 블록 중 움직임 벡터 예측 모드가 존재하는 블록의 개수를 비교하여 그 개수가 다른 경우, 오류가 발생한 것으로 판단하여 후속 조치를 취할 수 있다. 즉, 움직임 벡터 복호화 장치(300)는 움직임 벡터 예측 모드의 개수를 이용하여 오류의 발생 여부를 스스로 판단할 수 있으며, 오류가 발생한 것으로 판단되면 스스로 리셋하거나 스스로 오류를 추적하여 움직임 벡터의 정상적인 복원을 시도할 수 있다.
이러한 움직임 벡터 복호화 장치(300)의 동작을 도 16을 통해 설명하면, 움직임 벡터 예측 모드의 개수를 이용한 정상 복호화 판단 단계(S1612)는 부호화된 움직임 벡터 예측 모드와 부호화된 차분 벡터를 복호화하는 단계(S1400)에서 획득한 움직임 벡터 예측 모드의 개수와 소정의 독립적 부호화 단위인 슬라이스와 같은 상위 단위 내의 모든 블록이 모두 복호화 될 때까지 움직임 벡터 예측 모드의 존재 여부를 판단하는 단계(S1402)를 통해 계산된 움직임 벡터 예측 모드의 개수가 다를 경우, 해당 비트스트림이 정상적으로 복호화되지 못한 것으로 판단할 수 있다. 만약 해당 비트스트림이 정상적으로 복원되지 못한 경우, 비정상 복호화를 위한 선택적 추가 처리 단계(S1614)를 통해 다양한 방법으로 움직임벡터 복원을 시도할 수 있다.
예를 들어, 움직임 벡터 부호화 장치(200)가 전달한(또는 단계 S1400를 통해 획득한) 움직임 벡터 예측 모드의 개수가 해당 상위 단위(예를 들면, 슬라이스)에 대한 복호화 과정이 모두 종료된 후에 계산된 움직임 벡터 예측 모드의 개수에 비해 많은 경우, 남은 움직임 벡터 예측 모드의 모임을 무시하고 모두 움직임 벡터 예측 모드가 존재하지 않는 것으로 가정할 수 있다. 반면에, 움직임 벡터 예측 모드의 개수가 상위 단위에 대한 복호화 과정이 모두 종료된 후에 계산된 움직임 벡터 예측 모드의 개수에 비해 적은 경우, 저장(또는 전송)된 비트스트림에 오류가 발생해 정상적으로 복원되지 못했음을 의미하므로 저장(또는 전송)된 비트스트림 자체를 무시하고 오류 은닉(Error Concealment) 방법을 적용해 영상을 복원할 수도 있다.
도 4 내지 도 16에서 도시한 순서도와 그를 통한 설명에서의 각 단계의 순서는 본 발명의 실시예를 설명하기 위한 구현 예에 불구하다. 따라서, 각 단계의 순서는 구현 방식에 따라 변경될 수 있다. 즉, 일부 또는 전부의 단계에 대한 순서는 선택적으로 변경될 수 있으며, 경우에 따라서는 일부 또는 전부의 단계가 병행적으로 수행될 수도 있을 것이다.
도 17은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 부호화 장치(1700)는 텍스처 부호화기(1710), 움직임 벡터 부호화기(1720) 및 멀티플렉서(1730)를 포함하여 구성될 수 있다.
텍스처 부호화기(1710)는 입력 영상에서 부호화하고자 하는 현재 블록의 현재 움직임 벡터에 따라 현재 블록을 예측하여 현재 블록과 예측 블록 간의 차인 잔여 블록을 부호화하여 부호화된 텍스처(Texture)를 출력한다. 텍스처 부호화기(1710)에 대해서는 후술하는 과정에서 도 18을 통해 상세히 설명한다.
움직임 벡터 부호화기(1720)는 복수 개의 움직임 벡터 예측 모드 중 하나의 움직임 벡터 예측 모드를 선택하고, 선택된 움직임 벡터 예측 모드에 따라 현재 움직임 벡터에 대한 예측 움직임 벡터를 선택하며, 현재 움직임 벡터와 선택된 예측 움직임 벡터 간의 차인 차분 벡터를 부호화하며, 선택된 움직임 벡터 예측 모드에 따라 움직임 벡터 예측 모드를 부호화하여 부호화된 차분 벡터 및 부호화된 움직임 벡터 예측 모드를 출력한다. 여기서, 움직임 벡터 부호화기(1720)는 도 2를 통해 전술한 움직임 벡터 부호화 장치(200)의 기능과 동일 또는 유사한 기능을 수행하므로 상세한 설명을 생략한다.
멀티플렉서(1730)는 부호화된 텍스처, 부호화된 차분 벡터 및 부호화된 움직임 벡터 예측 모드를 포함하는 비트스트림을 생성하여 출력한다. 여기서, 멀티플렉서(1730)는 움직임 벡터 부호화기(1720)로부터 출력되는 부호화된 움직임 벡터 예측 모드를 비트스트림에 삽입하는 데 있어서, 비트스트림에서 부호화된 텍스처 및 부호화된 차분 벡터가 삽입되는 블록 단위가 아닌 슬라이스 단위 또는 픽처 단위 등의 상위 단위에 삽입함으로써, 영상 복호화 장치에서 부호화된 움직임 벡터 예측 모드를 독립적으로 복호화할 수 있도록 할 수 있다.
도 18은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구체적인 구현 예를 나타낸 예시도이다.
도 17을 통해 전술한 영상 부호화 장치(1700)를 텍스처 부호화기(1710)의 구체적인 구성을 포함하여 나타내면, 도 18에 도시한 영상 부호화 장치(1800)로 나타낼 수 있다.
텍스처 부호화기(1710)는 움직임 추정기(1812)와 움직임 보상기(1814)를 포함하는 예측기(1810), 감산기(1820), 변환기(1830), 양자화기(1840), 부호화기(1850), 역 양자화기(1860), 역 변환기(1870), 가산기(1880) 및 디블로킹 필터(1890)를 포함하여 구성될 수 있다.
예측기(1810)는 현재 블록을 예측하여 예측 블록을 생성하고 출력한다. 즉, 예측기(1810)는 영상에서 부호화하고자 하는 현재 블록의 각 화소의 화소값(Pixel Value)을 예측하여 예측된 각 화소의 예측 화소값(Predicted Pixel Value)을 갖는 예측 블록(Predicted Block)을 생성한다. 이러한 예측기(1810)는 인터 예측을 수행하는 경우에는 도시한 바와 같이, 움직임 벡터 추정기(1812) 및 움직임 보상부(1814)를 포함하여 구성될 수 있다.
움직임 벡터 추정기(1812)는 현재 블록에 대한 블록 모드 또는 기 설정된 블록 모드에 대응하는 블록 단위(예를 들어, 16×16 블록, 16×8 블록, 8×16 블록, 8×8 블록, 8×4 블록, 4×8 블록, 4×4 블록)로 하나 이상의 참조 픽처를 참조하여 현재 블록의 움직임 벡터를 추정하여 현재 움직임 벡터를 결정한다. 움직임 벡터 추정기(1812)에 의해 결정된 현재 움직임 벡터는 움직임 벡터 부호화기(1720)로 출력되고, 움직임 벡터 부호화기(1720)에 의해 차분 벡터와 움직임 벡터 예측 모드가 부호화된다.
여기서, 움직임 벡터 추정기(1812)가 참조 픽처를 이용하여 현재 블록의 움직임 벡터를 추정하여 현재 움직임 벡터를 결정하는 것에 대해서는 당업자에게 자명하므로 이에 대한 상세한 설명은 생략한다.
움직임 보상기(1814)는 움직임 벡터 추정기(1812)로부터 출력되는 현재 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성하고 출력한다. 즉, 움직임 보상기(1814)는 참조 픽처에서 현재 움직임 벡터가 지시하는 블록을 예측 블록으로 출력한다.
감산기(1820)는 현재 블록에서 예측 블록을 감산하여 잔여 블록(Residual Block)을 생성한다. 즉, 감산기(1820)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측기(1810)에서 예측한 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔여 신호(Residual Signal)를 갖는 잔여 블록을 생성한다.
변환기(1830) 및 양자화기(1840)는 잔여 블록을 변환 및 양자화하여 양자화된 잔차 블록을 출력한다. 즉, 변환기(1830) 및 양자화기(1840)는 잔여 블록의 잔여 신호를 주파수 영역으로 변환하여 잔여 블록의 각 화소값을 변환 계수(Transform Coefficient)로 변환하고, 주파수 계수를 갖는 잔여 블록을 양자화(Quantization)한다.
여기서, 변환기(1830)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반 변환(DCT based Transform: Discrete Cosine Transform Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔여 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔여 신호가 변환 계수가 된다. 또한, 양자화기(1840)는 변환된 잔여 블록을 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization, 이하 'DZUTQ'라 칭함), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다.
부호화기(1850)는 양자화기(1840)로부터 출력되는 잔여 블록을 부호화하여 부호화된 텍스처를 출력한다. 즉, 부호화기(1850)는 잔여 블록의 양자화 주파수 계수, 변환 계수 또는 잔여 신호를 지그재그 스캔과 같은 다양한 스캔 방식에 따라 스캔하여 양자화 변환 계수열, 변환 계수열 또는 신호열을 생성하고 엔트로피 부호화(Entropy Coding) 기법 등 다양한 부호화 기법을 이용하여 부호화한다.
부호화기(1850)로부터 출력되는 부호화된 텍스처는 움직임 벡터 부호화기(1720)로부터 출력되는 부호화된 차분 벡터 및 부호화된 움직임 벡터 예측 모드와 함께 멀티플렉서(1730)에서 비트스트림으로 생성되어 출력된다.
역양자화기(1860) 및 역 변환기(1870)는 양자화된 잔여 블록을 역 양자화(Inverse Quantization)하고 역 변환(Inverse Transform)한다. 즉, 역양자화기(1860) 및 역 변환기(1870)는 앙자화된 잔여 블록의 양자화 주파수 계수들을 역 양자화하여 변환 계수를 갖는 잔여 블록을 생성하고, 역 양자화된 잔여 블록을 역 변환하여 화소값을 갖는 잔여 블록 즉, 복원된 잔여 블록을 생성한다. 여기서, 역양자화기(1860) 및 역 변환기(1870)는 전술한 변환 방식과 양자화 방식을 역으로 사용하여 역 변환 및 역 양자화할 수 있다.
가산기(1880)는 예측기(1810)에서 예측된 예측 블록과 역 변환기(1870)에 의해 복원된 잔여 블록을 가산하여 현재 블록을 복원한다. 디블록킹 필터기(1890)는는 복원된 현재 블록을 디블로킹 필터링하여 출력한다. 여기서, 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, 블록 경계와 매크로블록 경계에 디블로킹 필터를 적용하거나 매크로블록 경계에만 디블로킹 필터를 적용하거나 디블로킹 필터를 사용하지 않는 방법 중 하나를 선택적으로 사용할 수 있다.
도 18에서, 변환기(1830) 및 양자화기(1840)는 제 1 부호화기로 구현되고 부호화기(1850)를 제 2 부호화기로 구현될 수 있는데, 제 1 부호화기는 텍스처 부호화기(1710)에 포함되어야 하는 것은 아니며, 구현 방식에 따라 선택적으로 포함될 수 있다. 즉, 감산기(1820)로부터 출력되는 잔여 신호는 변환과 양자화가 반드시 수행되어야 하는 것은 아니며 변환 및 양자화 중 어느 하나만을 수행할 수도 있으며, 심지어는 변환 및 양자화가 모두 생략될 수도 있다. 이 경우, 역 양자화기(1860), 역 변환기(1870)도 변환 및/또는 양자화의 수행 여부에 따라 선택적으로 포함될 수 있다. 또한, 디블로킹 필터(1890)도 텍스처 부호화기(1710)에 반드시 포함되어야 하는 것은 아니며, 구현 방식에 따라 선택적으로 포함될 수 있다.
이상에서 전술한 바와 같이, 영상 부호화 장치(1800)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 후술할 영상 복호화 장치로 전송되어 후술할 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
도 19는 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치(1900)는 디멀티플렉서(1910), 움직임 벡터 복호화기(1920) 및 텍스처 복호화기(1930)를 포함하여 구성될 수 있다.
디멀티플렉서(1910)는 비트스트림으로부터 부호화된 텍스처, 부호화된 차분 벡터 및 부호화된 움직임 벡터 예측 모드를 추출하여 출력한다. 여기서, 부호화된 텍스처는 텍스처 복호화기(1930)로 출력되고, 부호화된 차분 벡터 및 부호화된 움직임 벡터 예측 모드는 움직임 벡터 복호화기(1920)로 출력된다. 이때, 디멀티플렉서(1910)는 비트스트림의 슬라이스 헤더 또는 픽처 헤더 등 블록 단위 이상의 상위 단위에서 부호화된 움직임 벡터 예측 모드를 파싱하여 추출할 수 있다.
움직임 벡터 복호화기(1920)는 부호화된 차분 벡터 및 부호화된 움직임 벡터 예측 모드를 복호화하여 차분 벡터 및 움직임 벡터 예측 모드를 복원하고, 복원된 움직임 벡터 예측 모드에 근거하여 현재 블록의 현재 움직임 벡터에 대한 예측 움직임 벡터를 선택하며, 복원된 차분 벡터와 선택된 예측 움직임 벡터를 더하여 현재 움직임 벡터를 복원한다. 움직임 벡터 복호화기(1920)는 도 3을 통해 전술한 움직임 벡터 복호화 장치(300)와 동일 또는 유사한 기능을 수행하므로 상세한 설명은 생략한다.
텍스처 복호화기(1930)는 부호화된 텍스처를 복호화하여 잔여 블록을 복원하고, 움직임 벡터 복호화기(1920)에 의해 복원된 현재 움직임 벡터를 이용하여 현재 블록을 예측한 예측 블록과 복원된 잔여 블록을 가산하여 현재 블록을 복원하고 출력한다. 텍스처 복호화기(1930)의 구체적인 구현 예에 대해서는 후술하는 과정에서 도 20을 통해 설명한다.
도 20은 본 발명의 일 실시예에 따른 영상 복호화 장치의 구체적인 구현 예를 나타낸 예시도이다.
도 19를 통해 전술한 영상 복호화 장치(1900)를 텍스처 복호화기(1930)의 구체적인 구성을 포함하여 나타내면, 도 20에 도시한 영상 부호화 장치(2000)로 나타낼 수 있다.
텍스처 복호화기(1930)는 복호화기(2010), 역 양자화기(2020), 역 변환기(2030), 움직임 보상기(2040), 가산기(2050) 및 디블로킹 필터(2060)를 포함하여 구성될 수 있다.
복호화기(2010)는 디멀티플렉서(1910)로부터 출력되는 부호화된 텍스처를 복호화하여 양자화된 잔여 블록을 복원한다. 역 양자화기(2020)와 역 변환기(2030)는 도 18을 통해 전술한 역 양자화기(1860) 및 역 변환기(1870)와 동일 또는 유사한 기능을 수행하므로 상세한 설명은 생략한다. 다만, 영상 부호화 장치(1800)에서 잔여 블록을 변환 및 양자화 중 하나만을 수행하거나 하나도 수행하지 않은 경우, 역 양자화기(1860) 및 역 변환기(1870)도 그에 따라 하나만을 수행하거나 하나도 수행하지 않을 수 있다.
움직임 보상기(2040)는 움직임 벡터 복호화기(1930)로부터 출력되는 복원된 현재 움직임 벡터를 이용하여 현재 블록을 예측하여 예측 블록을 출력한다. 즉, 움직임 보상기(2040)는 하나 이상의 참조 픽처에서 복원된 현재 움직임 벡터가 지시하는 블록을 예측 블록으로 생성하여 출력한다.
가산기(2050)는 역 변환기(2030)로부터 출력되는 복원된 잔여 블록과 움직임 보상기(2040)로부터 출력되는 예측 블록을 가산하여 현재 블록을 복원하고 출력한다. 디블로킹필터(2060)는 복원된 현재 블록을 디블로킹 필터링하여 출력한다.
전술한 본 발명의 실시예에 따르면, 움직임 벡터 예측 모드는 경쟁 예측 모드와 비경쟁 예측 모드를 포함한다. 경쟁 예측 모드의 일 예로서 최적 예측 움직임 벡터의 예측 불가능을 나타내는 움직임 벡터 예측모드와 최적 예측 움직임벡터의 예측 가능을 나타내는 움직임 벡터 예측 모드가 설명되었다. 여기서, 최적 예측 움직임 벡터라 함은 미리 정해진 기준 또는 방법에 따라 유한한 개수의 후보 움직임벡터 집합 중에서 선택된 예측 움직임 벡터를 의미하는 것으로, 선택된 예측 움직임 벡터의 예측값이 항상 최적이 되는 것을 의미하는 것은 아니다.
또한, 경쟁 예측 모드는 디폴트 예측 움직임 벡터가 아닌 다른 예측 움직임 벡터를 미리 정해진 소정 방법에 따라 선택한 후 현재 움직임 벡터의 부호화 및/또는 복호화에 이용할 수 있는 모드로 이해될 수 있다. 이 경우, 전술한 바와 같은 복수 개의 후보 움직임 벡터 집합에서 소정 방법에 의해 예측 움직임 벡터가 선택될 수 있다.
이상에서 전술한 본 발명의 실시예에 따르면, 움직임 벡터 예측 모드를 선택할 수 있도록 함으로써 현재 움직임 벡터와 더욱 근접한 움직임 벡터를 예측 움직임 벡터로 선택할 수 있으므로, 차분 벡터의 부호화에 따른 비트량을 최소화함으로써 부호화 효율을 향상시킬 수 있다.
또한, 본 발명의 실시예에 따르면, 더욱 정확한 예측 움직임 벡터를 선택하여 부호화 효율을 향상시키면서도, 움직임 벡터 부호화 장치(200)는 선택된 예측 움직임 벡터를 직접 움직임 벡터 복호화 장치(300)로 알리지 않고, 찾을 수 있도록 정보, 예컨대 움직임 벡터 예측 모드를 전송하거나 그를 찾기 위한 함수를 공유함으로써, 예측 움직임 벡터를 알리기 위해 발생하는 추가적인 정보에 대한 부호화 비트량 증가를 줄여줌으로써, 부호화 효율 및 복호화 효율을 더욱 향상시킬 수 있다.
또한, 본 발명의 실시예에 따르면, 전송 시의 오류 등으로 인해 이전에 복원된 주변 블록의 움직임 벡터에 오류가 발생한 경우에도, 움직임 벡터 복호화 장치(300)가 스스로 오류의 발생을 판단하여 오류를 은닉하거나 오류를 해결하는 후속 조치를 수행할 수 있으므로, 복호화기 장애가 발생하는 것을 방지하여 복호화기의 성능을 향상시킬 수 있다.
또한, 이러한 본 발명의 실시예를 움직임 벡터 부호화 및 복호화 기술을 영상 서비스 또는 멀티미디어 스트리밍 서비스에 적용하면, 적은 비트량으로 부호화를 가능하게 함으로써, 사용자에게 만족도 높은 서비스를 제공해줄 수 있다. 특히, 유선 환경에 비해 상대적으로 작은 대역폭, 큰 데이터 손실 및 지연 등을 가질 수 있는 무선 이동 환경에서는 더욱 큰 효과를 기대할 수 있다.
이하에서는 본 발명의 실시예를 도출하는 과정에서의 연구 결과물에 대해 설명한다.
본 발명의 실시예는 MVOP를 더욱 향상시킨 방법이다. 이 향상된 MVOP 방법은 SKIP 모드를 지원할 수 있으며, 독립적인 파싱(independent parsing)이 가능하다. 베이스라인 프로파일(Baseline profile)을 위한 VCEG 공통실험조건(common test condition) 하에서, 향상된 MVOP 방법은 KTA 2.0 소프트웨어와 비교하여 약 평균 4.46%(1.66% for QCIF, 3.60% for CIF and 6.84% for HD 시퀀스)의 BDBR 성능 향상이 있음을 보여준다.
이전 MVOP 방법은 더욱 정밀한 예측 움직임 벡터(PMV)를 선택하기 위해서 현재 블록에 대해 사용가능한 모든 후보 PMV를 이용해 후보 집합을 구성한다. 후보 집합은 시/공간적 주변 블록들의 움직임 벡터의 수평 및 수직 성분의 조합으로 구성된다. 부호화기는 수정된 율-왜곡 최적화 방법을 이용하여 후보 집합 중에서 최적의 PMV를 선택한다. 복호화기는 템플릿 정합 방법을 이용하여 스스로 최적의 PMV를 예측한다. 템플릿 정합 오류가 가장 적은 최적의 PMV를 선택하기 위해서, 모든 사용가능한 후보 집합이 테스트된다. 최종적으로, 전송되는 차분 움직임 벡터(DMV)는 이게 예측된 PMV와 더해져 움직임 벡터로 계산된다.
더욱 향상된 이 MVOP 방법에서는 1 비트의 추가적인 정보 (mvop_flag)를 사용하여, 복호화기가 예측된 최적의 PMV를 사용하여야 하는지 아닌지를 신호한다. 이전 MVOP 방법은 SKIP 모드를 지원하지 않았다. 예를 들어, 제안된 방법이 0인 DMV를 갖고 다른 모든 SKIP 조건을 만족한다 하더라도, 해당 매크로블록은 SKIP 모드가 아닌 P16x16 모드로 부호화 된다. 더욱 향상된 MVOP 방법에서는 이런 SKIP 모드를 보다 효과적으로 사용할 수 있도록 MVOP 방법을 확장할 수 있다.
이전의 MVOP 방법에서 복호화기는 어떤 PMV를 사용했는지를 모호성없이 예측할 수 없고 이 경우 어떤 예측값을 사용하여야 하는지를 플래그가 알려줘야 하므로, 1 비트의 추가적인 정보(mvop_flag)가 필요하다. 이러한 이유로 이전의 MVOP 방법에서는 세 가지의 다른 움직임 벡터 부호화 모드(예외 모드, 대체 모드, 경합 모드)가 고려되었으나, 더욱 향상된 MVOP 방법에서는 이러한 움직임 벡터 부호화 모드를 다음과 같이 간략화하였다.
비경쟁 예측 모드
비경합 모드는 최적의 PMV 선택이 별다른 차이를 주지 않음을 나타낸다. 여기에는 다음과 같은 두 가지 경우가 존재한다. 첫 번째는 PMV 선택을 위해 오직 하나의 후보 PMV만이 존재하는 경우이다. 이 경우, 어느 예측치를 사용하여야 하는가는 부호화기/복호화기 모두에 자명하다. 이런 경우는 주변 움직임 벡터들이 모두 동일하거나 모두 유효하지 않은 경우에 발생한다. 부호화기(그리고 복호화기)는 사용 가능한 오직 하나의 PMV를 동일하게 사용하게 된다. 두 번째는 예측 가능한 최적의 PMV가 중간값 PMV와 같은 경우이다 (즉, 예측된 최적의 PMV와 중간값 PMV가 동일하다). 그러므로 이 모드에서는 , 부호화기(그리고 복호화기)는 사용가능한 PMV 나 중간값 PMV를 사용한다 . 그러므로, 복호화기는 이러한 두 경우를 부호화기로부터 추가적인 정보없이 인식할 수 있으므로, 플래그를 별도로 사용하지 않는다.
경쟁 예측 모드
만약 하나의 블록이 위에서 설명된 비경쟁 예측 모드가 아닌 경우, 복호화기는 경합 모드임을 인지할 수 있다. 이 모드에서 복호화기는 예측된 최적의 PMV를 사용하여야 하는지 아닌지 여부를 지시받아야 한다. 이러한 목적을 위하여, 1 비트 플래그인 mvop_flag가 사용된다. 만약 mvop_flag 플래그가 1이라면, DMV는 템플릿 정합을 사용해 예측된 최적의 PMV를 이용하여 복호화되고, 플래그가 0이라면, 복호화기는 DMV를 복호화하기 위하여 중간값 PMV를 사용한다.
독립적 파싱
추가적인 정보에 대한 비트량을 줄이기 위해 오직 경합 모드에 한하여 mvop_flag가 전송된다. 이전에 제안된 우리의 MVOP 방법에서는 mvop_flag를 읽을지 않을지 결정할 때, 주변의 복원된 영상 데이터를 사용해야 한다. 따라서, 이것은 독립파싱(independent parsing) 조건을 만족할 수 없다. 뿐만 아니라 참조 영상에 전송 오류가 발생할 경우, 의도되지 않은 플래그 비트를 잘못 읽을 수 있으므로, decoder crash 문제를 야기하는 원인이 된다.
파싱과정(parsing 프로세스)을 복호화과정(dedoding 프로세스)에서 완전히 분리시켜 잠재적인 복호화기 크래쉬(crash) 문제를 없애는 문법파티셔닝방법이 새롭게 제안되었다. 표 1에 보이는 바와 같이, 슬라이스 내에 포함된 모든 mvop_flag 개수를 나타내는 num_mvop_flag_minus1와 그 개수만큼의 슬라이스내의 mvop_flag를 슬라이스 헤더 정보로 부호화함으로써, 파싱과정(parsing 프로세스)을 복호화과정(decoding 프로세스)에서 완전히 분리시켰다.
파싱과정은 슬라이스내의 mvop_flag 를 읽어 저장한다. 그리고 복호화(decoding) 과정은 경합 모드인지아닌지의 결정에 따라 저장된 mvop_flag를 각각 선택적으로 읽어온다. 따라서 또 다른 syntax 변화는 없다. 이러한 방법을 사용함으로써, 제안된 MVOP 방법은 독립파싱(independent parsing)의 요구사항을 만족할 수 있고, decoder crash 문제도 피할 수 있다. 또한 제안된 방법은 비트스트림이 전송 오류를 갖고 있는지의 여부를 발견할 수 있다는 추가적인 이점을 가지고 있다. 예를 들어, 슬라이스를 모두 복호화한 후에 항상 알 수 있는 모든 경합 모드의 개수가 num_mvop_flag_minus1+1 와 같지 않은 경우에는 비트스트림에 오류가 있음을 의미한다. 따라서 이러한 경우에는 그렇게 설계되었다면오류를 최소화 할 수 있는 또 다른 복호화 방법을 사용하도록 할 수 있다.
표 1
Figure PCTKR2010000248-appb-T000001
실험 결과
향상된 MVOP는 KTA 2.0 소프트웨어를 고쳐 구현되었다. 실험은 baseline 프로파일에 대한 공통실험조건(common test condition) 하에서 실행되었으며, 성능은 BDBR과 BDPSNR 측면에서 측정되었다. 보다 실용성있는 비교를 위하여, MVC(움직임벡터 경쟁) 방법의 성능도 보고 되었다. MVC 방법은 두 개의 PMV 후보(공간 및 시간 MV)를 사용하며, 이는 가장 뛰어난 MVC 성능을 보이는 경우이다. 모든 비교는 KTA 2.0 소프트웨어결과를 앵커(anchor)로 하였다.
CS SPTP 를 이용한 실험결과
표 2
Figure PCTKR2010000248-appb-T000002
표 3
Figure PCTKR2010000248-appb-T000003
표 2는 CSSPTP를 사용한 제안된 MVOP과 MVC 방법을 KTA 2.0 소프트웨어를 기준으로 비교한 것이다. 표 2에서의 실험결과는 제안된 MVOP 방법이 KTA 2.0 소프트웨어와 비교하여 평균적으로 1.658 % (QCIF) ~ 6.838% (HDTV)의 성능을 가지고 있음을 보여준다. 제안된 MVOP 방법은 저해상도보다는 고해상도에서 보다 나은 성능을 보인다. 개선된 MVOP 방법은 KTA 2.0 소프트웨어에 비해 항상 향상된 성능을 보여주고 있음에 반해, MVC 방법은 QCIF에서 성능이 감소하는 경우도 있다는 점에 주목해야 한다.
표 3은 BDBR과 BDPSNR을 이용하여 MVC 방법을 앵커로 향상된 MVOP 방법의 성능을 직접 비교한 것을 보여준다. 제안된 MVOP 방법은 MVC 방법과 비교하여 BDBR에서 대략 1.899% 향상된 성능을 보인다. 성능개선은 고해상도에서 더 크다. MVOP 방법은 최적의 PMV를 가르키는 추가적인 정보 시그널링 없이 최적의 PMV를 사용할 수 있기 때문에 상대적인 이점을 가질 수 있다. MVC 방법은 후보 PMV의 수가 증가하는 경우에 최적의 PMV를 가르키기 위해 보다 많은 추가 정보를 필요로 한다. 그러므로, MVOP 방법의 상대적인 부호화 이득은 PMV의 수가 증가할 수록 더욱 커질것으로 예상된다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명은 움직임 벡터를 부호화하거나 복호화 기술과 영상 서비스 또는 멀티미디어 스트리밍 서비스 분야에 적용되어, 적은 비트량으로 영상을 부호화할 수 있도록 함으로써, 사용자에게 만족도 높은 서비스를 제공해줄 수 있으며, 특히, 유선 환경에 비해 상대적으로 작은 대역폭, 큰 데이터 손실 및 지연 등을 가질 수 있는 무선 이동 환경에서는 더욱 큰 효과를 기대할 수 있는 매우 유용한 발명이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2009년 1월 23일 한국에 출원한 특허출원번호 제 10-2009-0006308 호에 대해 미국 특허법 119(a)조(35 U.S.C § 119(a))에 따라 우선권을 주장하면, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 동일한 이유로 우선권을 주장하면 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.

Claims (11)

  1. 움직임 벡터를 부호화하는 장치에 있어서,
    현재 블록의 후보 움직임 벡터 집합에서 최적 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택기;
    움직임 벡터 복호화 장치와 미리 약속된 판단 기준에 근거하여 복수 개의 움직임 벡터 예측 모드 중 하나의 움직임 벡터 예측 모드를 선택하여 현재 블록의 움직임 벡터 예측 모드로서 결정하는 예측 모드 결정기;
    상기 결정된 움직임 벡터 예측 모드에 따라 상기 최적 예측 움직임 벡터 또는 디폴트 움직임 예측 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로서 결정하고 상기 현재 블록과 상기 결정된 예측 움직임 벡터 간의 차분 벡터를 부호화하며, 상기 결정된 움직임 벡터 예측 모드에 따라 상기 결정된 움직임 벡터 예측 모드를 선택적으로 부호화하여 출력하는 부호화기
    를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  2. 제 1 항에 있어서,
    상기 복수 개의 움직임 벡터 예측 모드는 경쟁 예측 모드 및 비경쟁 예측 모드를 포함하며, 상기 예측 모드 결정기는 상기 움직임 벡터 복호화 장치와 미리 약속된 판단 기준에 근거하여 상기 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하여 상기 경쟁 예측 모드 또는 상기 비경쟁 예측 모드를 상기 현재 블록의 움직임 벡터 예측 모드로서 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  3. 제 2 항에 있어서, 상기 예측 모드 결정기는,
    상기 최적 예측 움직임 벡터가 상기 디폴트 예측 움직임 벡터와 동일한 경우, 상기 비경쟁 예측 모드를 상기 현재 블록의 움직임 벡터 예측 모드로서 결정하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  4. 제 3 항에 있어서,
    상기 최적 예측 움직임 벡터가 상기 디폴트 예측 움직임 벡터와 동일한 경우는 상기 후보 움직임 벡터 집합 내에 상기 현재 블록의 현재 움직임 벡터에 대하여 예측 움직임 벡터로 사용할 수 있는 후보 움직임 벡터가 없는 경우, 후보 움직임 벡터가 한 개인 경우, 후보 움직임 벡터가 두 개 이상이지만 모두 동일한 경우 및 두 개 이상이고 모두 동일하지는 않은 후보 움직임 벡터 중에서 선택되는 최적 예측 움직임 벡터가 상기 디폴트 예측 움직임 벡터와 동일한 경우 중 하나 이상인 것을 특징으로 하는 움직임 벡터 부호화 장치.
  5. 제 1 항에 있어서, 상기 부호화기는,
    상기 결정된 움직임 벡터 예측 모드가 비경쟁 예측 모드인 경우, 상기 디폴트 움직임 예측 벡터를 상기 예측 움직임 벡터로서 결정하여 상기 차분 벡터를 생성하고 부호화하는 제 1 부호화기;
    상기 결정된 움직임 벡터 예측 모드가 경쟁 예측 모드인 경우, 상기 움직임 벡터 복호화 장치가 상기 최적 예측 움직임 벡터를 예측할 수 있는지 여부에 따라 상기 최적 예측 움직임 벡터 또는 상기 디폴트 예측 움직임 벡터를 상기 예측 움직임 벡터로서 결정하여 상기 차분 벡터를 생성하고 부호화하는 제 2 부호화기; 및
    상기 결정된 움직임 벡터 예측 모드가 상기 경쟁 예측 모드인 경우에만 상기 결정된 움직임 벡터 예측 모드를 부호화하는 제 3 부호화기
    를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  6. 제 5 항에 있어서, 상기 결정된 움직임 벡터 예측 모드는,
    한 개의 비트로 구성되며, 비트값에 따라 상기 경쟁 예측 모드 또는 상기 비경쟁 예측 모드를 나타내는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  7. 제 1 항에 있어서, 상기 부호화된 움직임 벡터 예측 모드는,
    상기 비트스트림의 슬라이스 헤더 또는 픽처 헤더에 삽입되는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  8. 움직임 벡터를 부호화하는 방법에 있어서,
    움직임 벡터 복호화 장치와 미리 약속된 판단 기준에 근거하여 복수 개의 움직임 벡터 예측 모드 중 하나의 움직임 벡터 예측 모드를 선택하여 현재 블록의 움직임 벡터 예측 모드로서 결정하는 단계;
    상기 선택된 움직임 벡터 예측 모드에 따라 현재 움직임 벡터에 대한 예측 움직임 벡터를 결정하는 단계;
    상기 현재 움직임 벡터와 상기 결정된 예측 움직임 벡터 간의 차분 벡터를 부호화하는 단계;
    상기 결정된 움직임 벡터 예측 모드에 따라 상기 결정된 움직임 벡터 예측 모드를 선택적으로 부호화하는 단계; 및
    상기 부호화된 차분 벡터 및 상기 부호화된 움직임 벡터 예측 모드를 포함하는 비트스트림을 생성하여 출력하는 단계
    를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
  9. 움직임 벡터를 복호화하는 장치에 있어서,
    움직임 벡터 부호화 장치와 미리 약속한 판단 기준에 따라 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하고, 부호화된 차분 벡터를 복호화하여 차분 벡터를 복원하고 출력하는 차분 벡터 복호화기;
    부호화된 움직임 벡터 예측 모드를 복호화하여 움직임 벡터 예측 모드를 복원하여 출력하는 예측 모드 복호화기;
    상기 현재 블록의 움직임 벡터 예측 모드가 상기 비경쟁 예측 모드인 경우, 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 제 1 예측 움직임 벡터 결정기;
    상기 현재 블록의 움직임 벡터 예측 모드가 상기 비경쟁 예측 모드가 아닌 경우, 상기 복원된 움직임 벡터 예측 모드에 따라 최적 예측 움직임 벡터 또는 상기 디폴트 예측 움직임 벡터를 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 제 2 예측 움직임 벡터 결정기; 및
    상기 결정된 예측 움직임 벡터와 상기 복원된 차분 벡터를 가산하여 상기 현재 움직임 벡터를 복원하는 움직임 벡터 복원기
    를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
  10. 움직임 벡터를 복호화하는 방법에 있어서,
    부호화된 움직임 벡터 예측 모드 및 부호화된 차분 벡터를 복호화하여 움직임 벡터 예측 모드 및 차분 벡터를 복원하는 단계;
    움직임 벡터 부호화 장치와 미리 약속한 판단 기준에 따라 현재 블록의 움직임 벡터 예측 모드가 비경쟁 예측 모드인지 여부를 판단하는 단계;
    상기 판단된 움직임 벡터 예측 모드가 상기 비경쟁 예측 모드인 경우에는 디폴트 예측 움직임 벡터를 현재 블록의 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계;
    상기 판단된 움직임 벡터 예측 모드가 상기 비경쟁 예측 모드가 아닌 경쟁 예측 모드인 경우에는 상기 복원된 움직임 벡터 예측 모드에 근거하여 후보 움직임 벡터 집합에서 선택한 최적 예측 움직임 벡터 또는 상기 디폴트 예측 움직임 벡터를 현재 블록의 현재 움직임 벡터에 대한 예측 움직임 벡터로 결정하는 단계; 및
    상기 결정된 예측 움직임 벡터와 상기 차분 벡터를 가산하여 상기 현재 움직임 벡터를 복원하는 단계
    를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
  11. 제 10 항에 있어서,
    상기 복원된 움직임 벡터 예측 모드는 움직임 벡터 예측 모드의 개수를 나타내는 비트 및 상기 개수만큼의 움직임 벡터 예측 모드를 나타내는 비트를 포함하며, 상기 움직임 벡터 복호화 방법은 현재 슬라이스 또는 현재 픽처 내에서 복원된 모든 블록 중 상기 경쟁 예측 모드에 해당하는 블록의 개수와 상기 움직임 벡터 예측 모드의 개수를 비교하여 모든 움직임 벡터가 정상적으로 복호화되었는지 여부를 판단하는 단계를 추가로 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
PCT/KR2010/000248 2009-01-23 2010-01-15 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법 WO2010085064A2 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201080013412.9A CN102362498B (zh) 2009-01-23 2010-01-15 选择性进行语法元素编码/解码的装置和方法、以及使用其对图像进行编码/解码的装置和方法
US13/190,265 US9070179B2 (en) 2009-01-23 2011-07-25 Method and apparatus for selectively encoding/decoding syntax elements, and apparatus and method for image encoding/decoding using same
US13/846,494 US8908981B2 (en) 2009-01-23 2013-03-18 Method and apparatus for selectively encoding/decoding syntax elements, and apparatus and method for image encoding/decoding using same
US14/717,973 US9363531B2 (en) 2009-01-23 2015-05-20 Apparatus and method for motion vector encoding/decoding, and apparatus and method for image encoding/decoding using same
US14/718,036 US9445118B2 (en) 2009-01-23 2015-05-20 Apparatus and method for motion vector encoding/decoding, and apparatus and method for image encoding/decoding using same
US14/718,027 US9420304B2 (en) 2009-01-23 2015-05-20 Apparatus and method for motion vector encoding/decoding, and apparatus and method for image encoding/decoding using same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2009-0006308 2009-01-23
KR1020090006308A KR101590511B1 (ko) 2009-01-23 2009-01-23 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/190,265 Continuation-In-Part US9070179B2 (en) 2009-01-23 2011-07-25 Method and apparatus for selectively encoding/decoding syntax elements, and apparatus and method for image encoding/decoding using same

Publications (2)

Publication Number Publication Date
WO2010085064A2 true WO2010085064A2 (ko) 2010-07-29
WO2010085064A3 WO2010085064A3 (ko) 2010-09-23

Family

ID=42356306

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2010/000248 WO2010085064A2 (ko) 2009-01-23 2010-01-15 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법

Country Status (4)

Country Link
US (5) US9070179B2 (ko)
KR (1) KR101590511B1 (ko)
CN (4) CN102362498B (ko)
WO (1) WO2010085064A2 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103039076A (zh) * 2010-09-24 2013-04-10 松下电器产业株式会社 图像编码方法、图像解码方法、图像编码装置及图像解码装置
CN103329537A (zh) * 2011-01-21 2013-09-25 Sk电信有限公司 基于预测运动矢量索引编码产生/恢复运动信息的设备和方法及用于使用该运动信息进行视频编码/解码的设备和方法
CN103477637A (zh) * 2011-02-10 2013-12-25 松下电器产业株式会社 动态图像编码方法、动态图像编码装置、动态图像解码方法、动态图像解码装置、及动态图像编解码装置
US8908981B2 (en) 2009-01-23 2014-12-09 Sk Telecom Co., Ltd. Method and apparatus for selectively encoding/decoding syntax elements, and apparatus and method for image encoding/decoding using same
US9699474B2 (en) 2011-10-28 2017-07-04 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10321152B2 (en) 2011-10-28 2019-06-11 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5422168B2 (ja) 2008-09-29 2014-02-19 株式会社日立製作所 動画像符号化方法および動画像復号化方法
KR101702553B1 (ko) * 2009-07-04 2017-02-03 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
US8908755B2 (en) * 2010-07-16 2014-12-09 Sony Corporation Multi-parameter motion for efficient prediction in video compression
GB2487200A (en) 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
WO2012096551A2 (ko) * 2011-01-15 2012-07-19 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 방법 및 장치
KR101377528B1 (ko) 2011-01-15 2014-03-27 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 방법 및 장치
GB2491589B (en) 2011-06-06 2015-12-16 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of image
GB2493210B (en) * 2011-07-29 2014-04-23 Canon Kk Method and device for error concealment in motion estimation of video data
WO2013031071A1 (ja) * 2011-09-02 2013-03-07 パナソニック株式会社 動画像復号装置、動画像復号方法、及び集積回路
US9300975B2 (en) * 2011-09-11 2016-03-29 Texas Instruments Incorporated Concurrent access shared buffer in a video encoder
RU2616441C1 (ru) 2011-11-08 2017-04-14 Кт Корпорейшен Способ декодирования видеосигнала
CN104247432B (zh) 2011-11-11 2019-06-11 Ge视频压缩有限责任公司 使用深度图估计和更新的高效多视点编码
WO2013068548A2 (en) 2011-11-11 2013-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient multi-view coding using depth-map estimate for a dependent view
EP2781091B1 (en) 2011-11-18 2020-04-08 GE Video Compression, LLC Multi-view coding with efficient residual handling
CN109905705B (zh) * 2012-01-13 2023-05-02 夏普株式会社 图像解码装置
HRP20211943T8 (hr) * 2012-01-19 2022-05-13 Electronics And Telecommunications Research Institute Uređaj za kodiranje/dekodiranje slike
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US10200709B2 (en) 2012-03-16 2019-02-05 Qualcomm Incorporated High-level syntax extensions for high efficiency video coding
WO2014053514A1 (en) 2012-10-01 2014-04-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scalable video coding using base-layer hints for enhancement layer motion parameters
CN103338377A (zh) * 2013-07-11 2013-10-02 青岛海信信芯科技有限公司 用于确定运动估计中最优运动矢量的方法
US10116933B2 (en) * 2013-10-14 2018-10-30 Mediatek Inc. Method of lossless mode signaling for video system with lossless and lossy coding
WO2015113510A1 (en) * 2014-01-29 2015-08-06 Mediatek Inc. Method and apparatus for adaptive motion vector precision
CN105338363B (zh) * 2014-07-30 2018-12-14 联想(北京)有限公司 一种视频帧的编码及解码方法和装置
WO2017048008A1 (ko) * 2015-09-17 2017-03-23 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
GB2543492B (en) * 2015-10-16 2021-11-10 Digital Barriers Services Ltd Data Compression
CN107046645B9 (zh) 2016-02-06 2020-08-14 华为技术有限公司 图像编解码方法及装置
CN106170089B (zh) * 2016-08-25 2020-05-22 上海交通大学 基于h.265的多路编码方法
WO2019072371A1 (en) 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. MEMORY ACCESS WINDOW FOR PREDICTION SUB-BLOCK MOTION VECTOR CALCULATION
WO2019147079A1 (ko) * 2018-01-25 2019-08-01 주식회사 윌러스표준기술연구소 서브블록 기반의 모션 보상을 이용한 비디오 신호 처리 방법 및 장치
CN108390871B (zh) * 2018-02-09 2020-05-22 西安交通大学 一种基于自回归模型帧预测的雷达数据压缩方法
CN109361922B (zh) * 2018-10-26 2020-10-30 西安科锐盛创新科技有限公司 预测量化编码方法
US10931954B2 (en) * 2018-11-20 2021-02-23 Sony Corporation Image coding modes selection for an embedded codec circuitry
JP7164813B2 (ja) * 2018-11-21 2022-11-02 日本電信電話株式会社 予測装置、予測方法、及びプログラム。
CN113489997A (zh) * 2021-05-27 2021-10-08 杭州博雅鸿图视频技术有限公司 一种运动矢量预测方法、装置、存储介质及终端
WO2023072216A1 (en) * 2021-10-28 2023-05-04 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
TWI821103B (zh) * 2022-01-10 2023-11-01 聯發科技股份有限公司 在視訊編解碼系統中使用邊界匹配進行重疊塊運動補償的方法和裝置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004208258A (ja) * 2002-04-19 2004-07-22 Matsushita Electric Ind Co Ltd 動きベクトル計算方法
KR100606140B1 (ko) * 2004-11-09 2006-08-01 (주)씨앤에스 테크놀로지 적응적 모드 결정에 의한 움직임 예측방법
KR20070093305A (ko) * 2006-03-13 2007-09-18 삼성전자주식회사 최적인 예측 모드를 적응적으로 적용하여 동영상을부호화하는 방법 및 장치, 동영상을 복호화하는 방법 및장치

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557331A (en) * 1993-03-11 1996-09-17 Matsushita Electric Industrial Co., Ltd. Image encoding method, an image encoding circuit, an image encoding apparatus, and an optical disk
JPH1079949A (ja) * 1996-09-04 1998-03-24 Oki Electric Ind Co Ltd 画像符号化装置、画像復号化装置及び画像伝送システム
US6185312B1 (en) * 1997-01-28 2001-02-06 Nippon Telegraph And Telephone Corporation Method for embedding and reading watermark-information in digital form, and apparatus thereof
KR100226722B1 (ko) * 1997-07-30 1999-10-15 구자홍 동영상 움직임 벡터 추정 방법
US6404817B1 (en) * 1997-11-20 2002-06-11 Lsi Logic Corporation MPEG video decoder having robust error detection and concealment
US6972774B2 (en) * 2000-02-21 2005-12-06 Fujitsu Limited Image processing system for inserting plurality of images into composite area, and medium
JP4244492B2 (ja) * 2000-03-24 2009-03-25 ソニー株式会社 情報処理装置、情報配信システム、情報処理方法、及び記録媒体
US6687384B1 (en) * 2000-03-27 2004-02-03 Sarnoff Corporation Method and apparatus for embedding data in encoded digital bitstreams
KR100727910B1 (ko) * 2000-10-11 2007-06-13 삼성전자주식회사 하이브리드형 고속 움직임 추정 방법 및 그 장치
US20040022202A1 (en) * 2002-08-05 2004-02-05 Chih-Lung Yang Method and apparatus for continuously receiving images from a plurality of video channels and for alternately continuously transmitting to each of a plurality of participants in a video conference individual images containing information concerning each of said video channels
US20040247031A1 (en) * 2002-03-14 2004-12-09 Makoto Hagai Motion vector detection method
US7230745B1 (en) * 2002-04-08 2007-06-12 Captaris, Inc. Document transmission and routing with recipient control, such as facsimile document transmission and routing
KR20040099100A (ko) * 2002-04-19 2004-11-26 마쯔시다덴기산교 가부시키가이샤 움직임 벡터 계산 방법
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
US7450642B2 (en) * 2002-11-13 2008-11-11 Sony Corporation Fast motion vector prediction method
KR100560843B1 (ko) * 2003-04-10 2006-03-13 에스케이 텔레콤주식회사 비디오 부호기에서 적응 움직임 벡터의 탐색 영역을결정하는 방법 및 장치
EP1610560A1 (en) * 2004-06-24 2005-12-28 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating and for decoding coded picture data
JP2007228560A (ja) * 2006-01-25 2007-09-06 Matsushita Electric Ind Co Ltd 動画像符号化方法および動画像符号化装置
EP1835749A1 (en) * 2006-03-16 2007-09-19 THOMSON Licensing Method for coding video data of a sequence of pictures
TW200814785A (en) * 2006-09-13 2008-03-16 Sunplus Technology Co Ltd Coding method and system with an adaptive bitplane coding mode
US8379733B2 (en) * 2006-09-26 2013-02-19 Qualcomm Incorporated Efficient video packetization methods for packet-switched video telephony applications
KR101365567B1 (ko) * 2007-01-04 2014-02-20 삼성전자주식회사 영상의 예측 부호화 방법 및 장치, 그 복호화 방법 및 장치
KR100901874B1 (ko) * 2007-07-11 2009-06-09 한국전자통신연구원 비디오 인코딩을 위한 인터 모드 결정 방법
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
JP5045371B2 (ja) * 2007-10-30 2012-10-10 Kddi株式会社 動画像の各画素の前景背景分類装置、方法及びプログラム
KR101348601B1 (ko) * 2008-01-31 2014-01-16 삼성전자주식회사 적응적인 임장감 향상 예측에 따른 임장감 향상 시스템 및방법
TWI398169B (zh) * 2008-12-23 2013-06-01 Ind Tech Res Inst 移動向量之編碼模式選擇方法及其相關編碼模式選擇裝置,及其機器可讀取媒體
KR101590511B1 (ko) * 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101356613B1 (ko) * 2009-08-21 2014-02-06 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
US8194918B2 (en) * 2010-02-05 2012-06-05 Seiko Epson Corporation Embedded message extraction for visible watermarking
US9848197B2 (en) * 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004208258A (ja) * 2002-04-19 2004-07-22 Matsushita Electric Ind Co Ltd 動きベクトル計算方法
KR100606140B1 (ko) * 2004-11-09 2006-08-01 (주)씨앤에스 테크놀로지 적응적 모드 결정에 의한 움직임 예측방법
KR20070093305A (ko) * 2006-03-13 2007-09-18 삼성전자주식회사 최적인 예측 모드를 적응적으로 적용하여 동영상을부호화하는 방법 및 장치, 동영상을 복호화하는 방법 및장치

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8908981B2 (en) 2009-01-23 2014-12-09 Sk Telecom Co., Ltd. Method and apparatus for selectively encoding/decoding syntax elements, and apparatus and method for image encoding/decoding using same
US9445118B2 (en) 2009-01-23 2016-09-13 Sk Telecom Co., Ltd. Apparatus and method for motion vector encoding/decoding, and apparatus and method for image encoding/decoding using same
US9420304B2 (en) 2009-01-23 2016-08-16 Sk Telecom Co., Ltd. Apparatus and method for motion vector encoding/decoding, and apparatus and method for image encoding/decoding using same
US9363531B2 (en) 2009-01-23 2016-06-07 Sk Telecom Co., Ltd. Apparatus and method for motion vector encoding/decoding, and apparatus and method for image encoding/decoding using same
US9070179B2 (en) 2009-01-23 2015-06-30 Sk Telecom Co., Ltd Method and apparatus for selectively encoding/decoding syntax elements, and apparatus and method for image encoding/decoding using same
US9621915B2 (en) 2010-09-24 2017-04-11 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
CN103039076A (zh) * 2010-09-24 2013-04-10 松下电器产业株式会社 图像编码方法、图像解码方法、图像编码装置及图像解码装置
CN103039076B (zh) * 2010-09-24 2016-03-16 松下电器(美国)知识产权公司 图像编码方法、图像解码方法、图像编码装置及图像解码装置
US8848805B2 (en) 2010-09-24 2014-09-30 Panasonic Intellectual Property Corporation Of America Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US9392298B2 (en) 2010-09-24 2016-07-12 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US8861592B2 (en) 2010-09-24 2014-10-14 Panasonic Intellectual Property Corporation Of America Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10298926B2 (en) 2010-09-24 2019-05-21 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11166018B2 (en) 2010-09-24 2021-11-02 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US9930334B2 (en) 2010-09-24 2018-03-27 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11895293B2 (en) 2010-09-24 2024-02-06 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10798381B2 (en) 2010-09-24 2020-10-06 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
CN103329537B (zh) * 2011-01-21 2016-08-10 Sk电信有限公司 一种视频解码的设备和方法
CN106131571A (zh) * 2011-01-21 2016-11-16 Sk电信有限公司 视频解码设备
CN103329537A (zh) * 2011-01-21 2013-09-25 Sk电信有限公司 基于预测运动矢量索引编码产生/恢复运动信息的设备和方法及用于使用该运动信息进行视频编码/解码的设备和方法
CN106131571B (zh) * 2011-01-21 2019-03-26 Sk电信有限公司 视频解码设备
EP2675167A4 (en) * 2011-02-10 2016-10-19 Sun Patent Trust PROCESS FOR CODING MOVING IMAGES, DEVICE FOR CODING MOVING IMAGES, METHOD FOR DECODING MOVING IMAGES, DEVICE FOR DECODING MOVING IMAGES AND DEVICE FOR CODING / DECODING MOVING IMAGES
CN103477637A (zh) * 2011-02-10 2013-12-25 松下电器产业株式会社 动态图像编码方法、动态图像编码装置、动态图像解码方法、动态图像解码装置、及动态图像编解码装置
US9699474B2 (en) 2011-10-28 2017-07-04 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10567792B2 (en) 2011-10-28 2020-02-18 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10631004B2 (en) 2011-10-28 2020-04-21 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10321152B2 (en) 2011-10-28 2019-06-11 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10893293B2 (en) 2011-10-28 2021-01-12 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11115677B2 (en) 2011-10-28 2021-09-07 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US10045047B2 (en) 2011-10-28 2018-08-07 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11356696B2 (en) 2011-10-28 2022-06-07 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11622128B2 (en) 2011-10-28 2023-04-04 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11831907B2 (en) 2011-10-28 2023-11-28 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US9912962B2 (en) 2011-10-28 2018-03-06 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
US11902568B2 (en) 2011-10-28 2024-02-13 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus

Also Published As

Publication number Publication date
CN104935939A (zh) 2015-09-23
US20150256848A1 (en) 2015-09-10
CN105072449A (zh) 2015-11-18
US9070179B2 (en) 2015-06-30
CN102362498B (zh) 2015-07-29
KR20100086864A (ko) 2010-08-02
CN105072449B (zh) 2017-09-29
US20130279819A1 (en) 2013-10-24
CN104935939B (zh) 2018-05-01
WO2010085064A3 (ko) 2010-09-23
CN105072448A (zh) 2015-11-18
US20150256849A1 (en) 2015-09-10
CN102362498A (zh) 2012-02-22
US20110317930A1 (en) 2011-12-29
US9420304B2 (en) 2016-08-16
KR101590511B1 (ko) 2016-02-02
US20150256847A1 (en) 2015-09-10
US8908981B2 (en) 2014-12-09
US9363531B2 (en) 2016-06-07
US9445118B2 (en) 2016-09-13
CN105072448B (zh) 2017-09-29

Similar Documents

Publication Publication Date Title
WO2010085064A2 (ko) 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
WO2020166897A1 (ko) Dmvr 기반의 인터 예측 방법 및 장치
WO2010044563A2 (ko) 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
WO2011087321A2 (en) Method and apparatus for encoding and decoding motion vector
WO2020218793A1 (ko) Bdpcm에 기반한 영상 코딩 방법 및 그 장치
WO2013002557A2 (ko) 움직임 정보의 부호화 방법 및 장치, 그 복호화 방법 및 장치
WO2011053022A2 (en) Method and apparatus for encoding/decoding image with reference to a plurality of frames
WO2011037420A2 (ko) 인접 화소를 이용한 인터 예측 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2019017694A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2020184991A1 (ko) Ibc 모드를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020017892A1 (ko) 서브블록 단위의 시간적 움직임 벡터 예측을 위한 방법 및 그 장치
WO2021137597A1 (ko) Ols에 대한 dpb 파라미터를 사용하는 영상 디코딩 방법 및 그 장치
WO2020130617A1 (ko) 비디오 데이터를 처리하기 위한 방법 및 장치
WO2021141227A1 (ko) 영상 디코딩 방법 및 그 장치
WO2021125700A1 (ko) 예측 가중 테이블 기반 영상/비디오 코딩 방법 및 장치
WO2021141477A1 (ko) 머지 후보들의 최대 개수 정보를 포함하는 시퀀스 파라미터 세트를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020262931A1 (ko) 비디오/영상 코딩 시스템에서 머지 데이터 신택스의 시그널링 방법 및 장치
WO2020251340A1 (ko) 움직임 벡터 예측 기반 영상/비디오 코딩 방법 및 장치
WO2019245228A1 (ko) 어파인 모션 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2018182185A1 (ko) 병렬 처리를 위한 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
WO2021125702A1 (ko) 가중된 예측에 기반한 영상/비디오 코딩 방법 및 장치
WO2021137598A1 (ko) Dpb 관리 프로세스를 포함하는 영상 디코딩 방법 및 그 장치
WO2021112633A1 (ko) 동일 위치 픽처에 관한 정보를 포함하는 픽처 헤더에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020256492A1 (ko) 비디오/영상 코딩 시스템에서 중복 시그널링 제거 방법 및 장치
WO2020251320A1 (ko) 서브블록 단위의 시간적 움직임 벡터 예측자 후보 기반 영상 또는 비디오 코딩

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080013412.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10733617

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 11/11/11)

122 Ep: pct application non-entry in european phase

Ref document number: 10733617

Country of ref document: EP

Kind code of ref document: A2