WO2011111954A2 - 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 - Google Patents

움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
WO2011111954A2
WO2011111954A2 PCT/KR2011/001492 KR2011001492W WO2011111954A2 WO 2011111954 A2 WO2011111954 A2 WO 2011111954A2 KR 2011001492 W KR2011001492 W KR 2011001492W WO 2011111954 A2 WO2011111954 A2 WO 2011111954A2
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
combination
resolution
image
encoding
Prior art date
Application number
PCT/KR2011/001492
Other languages
English (en)
French (fr)
Other versions
WO2011111954A3 (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 US13/583,533 priority Critical patent/US9491480B2/en
Publication of WO2011111954A2 publication Critical patent/WO2011111954A2/ko
Publication of WO2011111954A3 publication Critical patent/WO2011111954A3/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/567Motion estimation based on rate distortion criteria

Definitions

  • the present invention relates to a motion vector encoding / decoding method and apparatus using a motion vector resolution combination, and a video encoding / decoding method and apparatus using the same. More particularly, the present invention relates to a method and apparatus for adaptively selecting a combination of resolutions of motion vectors that are efficient in encoding an image, and determining and encoding motion vectors based on the combinations thereof to improve compression efficiency. The present invention also relates to a method and apparatus for improving the reconstruction efficiency of an image by receiving a bitstream from such a motion encoding apparatus and determining and decoding the motion vector correspondingly according to a combination of resolutions of selected motion vectors.
  • H.264 / AVC is the standard for the most highly compressed video codecs among the standardized video coders and decodes to date.
  • the H.264 / AVC standard includes intra prediction with directionality to improve compression efficiency, integer transform in 4x4 pixel units, and block mode with various sizes from 16x16 pixel size to 4x4 pixel size. Mode and a deblocking filter to predictively encode an image.
  • the H.264 / AVC standard performs motion estimation by interpolating images up to 1/2 pixel unit and 1/4 pixel unit in order to find a more accurate motion vector.
  • motion vector decoding corresponds to motion vector encoding
  • the present invention has a main object to improve compression efficiency by adaptively selecting a combination of resolutions of efficient motion vectors and determining and encoding motion vectors based thereon.
  • the present invention provides a coding cost calculator for calculating a coding cost according to a motion vector resolution for each combination of a plurality of motion vector resolutions including at least one or more motion vector resolutions. ; A resolution combination determiner that selects a combination of one motion vector resolution by using a coding cost calculated for each combination of motion vector resolutions; And a motion information encoder for outputting motion vector encoded data encoded with a motion vector determined according to a combination of selected motion vector resolutions.
  • a motion vector of the image is determined and determined according to a motion vector resolution for each combination of a plurality of motion vector resolutions including at least one motion vector resolution.
  • a predictor for generating a predictive image of the image using the vector A subtractor configured to generate a residual image by subtracting the image and the predicted image; A converter and quantizer for transforming and quantizing the residual image; And encoding the transformed and quantized residual images to generate image encoded data for each combination of motion vector resolutions, calculating encoding cost of image encoded data for each combination of motion vector resolutions, and encoding image encoded data for each combination of motion vector resolutions.
  • an apparatus for decoding a motion vector comprising: a resolution combination decompressor for decoding a combination of resolution index data extracted from a bitstream to restore a combination of motion vector resolutions; And a motion vector reconstructor for reconstructing the motion vector by decoding the motion vector encoded data extracted from the bitstream according to the combination of the reconstructed motion vector resolution.
  • motion vector encoded data extracted from a bitstream according to a combination of motion vector resolutions that are reconstructed by decoding resolution combination index data extracted from a bitstream is decoded.
  • a decoder to decode the motion vector by decoding, and to decode the encoded image extracted from the bitstream to restore the transformed and quantized residual image;
  • An inverse quantizer and an inverse converter that inverse quantizes and inverse transforms the transformed and quantized residual image to reconstruct the residual image;
  • a predictor for generating a predicted image of the image by using the reconstructed motion vector;
  • an adder for reconstructing the image by adding the residual image and the predictive image.
  • a method of encoding an image comprising: determining a motion vector of an image according to a motion vector resolution for each combination of a plurality of motion vector resolutions including at least one motion vector resolution; Generating a predicted image of the image using the determined motion vector; Generating a residual image by subtracting the image and the predictive image; Converting and quantizing the residual image; Encoding the transformed and quantized residual images to generate image encoded data for each combination of motion vector resolutions; Calculating the encoding cost of the image encoded data for each combination of the motion vector resolutions; Selecting a combination of motion vector resolutions by using encoding cost of image encoded data for each combination of motion vector resolutions; And generating a bitstream including encoded image encoded data using a motion vector determined according to the motion vector resolution according to the combination of the selected motion vector resolutions.
  • a method of decoding a motion vector comprising: reconstructing a combination of motion vector resolutions by decoding resolution combination index data extracted from a bitstream; And reconstructing the motion vector by decoding the motion vector encoded data extracted from the bitstream according to the combination of the reconstructed motion vector resolution.
  • the motion vector encoded data extracted from the bitstream according to the combination of the motion vector resolution, which is reconstructed by decoding the resolution combination index data extracted from the bitstream is decoded.
  • Restoring a motion vector by decoding Reconstructing the transformed and quantized residual image by decoding the image encoded data extracted from the bitstream; Inverse quantization and inverse transformation of the transformed and quantized residual image to reconstruct the residual image; Generating a predicted image of the image by using the reconstructed motion vector; And reconstructing the image by adding the residual image and the prediction image.
  • the compression efficiency can be improved by adaptively selecting a combination of resolutions of efficient motion vectors and determining and encoding the motion vectors based on the combinations.
  • FIG. 1 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention
  • FIG. 2 is an exemplary view showing a state of determining a motion vector through motion estimation according to an embodiment of the present invention
  • FIG. 3 is a block diagram schematically illustrating an encoder according to an embodiment of the present invention.
  • FIG. 4 is a block diagram schematically illustrating a motion vector encoding apparatus according to an embodiment of the present invention.
  • FIG. 5 is an exemplary diagram for describing a process of estimating a motion vector having a motion vector resolution of a small pixel unit using template matching according to an embodiment of the present invention
  • FIG. 6 is an exemplary view for explaining a process of selecting a motion vector according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating a motion vector encoding method according to an embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating a video encoding method according to an embodiment of the present invention.
  • FIG. 9 is a flowchart for explaining another example of implementing an image encoding method according to an embodiment of the present invention.
  • FIG. 10 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 11 is a block diagram schematically illustrating a decoder according to an embodiment of the present invention.
  • FIG. 12 is a block diagram schematically illustrating a motion vector decoding apparatus according to an embodiment of the present invention.
  • FIG. 13 is a flowchart for explaining a motion vector decoding method according to an embodiment of the present invention.
  • FIG. 14 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
  • the motion vector encoding apparatus (Motion Vector Encoding Apparatus), the motion vector decoding apparatus (Motion Vector Decoding Apparatus), the video encoding apparatus (Video Encoding Apparatus), and the video decoding apparatus (Video Decoding Apparatus) will be described later.
  • User terminals such as computers, notebook computers, personal digital assistants (PDAs), portable multimedia players (PMPs), PlayStation Portables (PSPs), mobile communication terminals, etc.
  • a server terminal such as an application server and a service server, and a communication device such as a communication modem for performing communication with various devices or a wired / wireless communication network, various programs and data for encoding or decoding a motion vector, or encoding or decoding an image.
  • Memory to save, run the program Means a variety of devices including a microprocessor for operation and control.
  • the motion vector or the image encoded in the bitstream by the motion vector encoding apparatus or the image encoding apparatus 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.
  • 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.
  • Is transmitted to the motion vector decoding apparatus or the image decoding apparatus through various communication interfaces such as a universal serial bus (USB), and the like, are decoded by the motion vector decoding apparatus and restored as a motion vector or decoded by the image decoding apparatus to the image. Can be recycled.
  • USB universal serial bus
  • a moving picture is composed of a series of pictures, and each picture is divided into a predetermined area such as a block.
  • the divided blocks are largely classified into intra blocks and inter blocks according to encoding methods.
  • An intra block refers to a block that is encoded by using an intra prediction coding method.
  • An intra prediction coding is performed by using pixels of blocks that are previously encoded, decoded, and reconstructed in a current picture that performs current encoding.
  • a prediction block is generated by predicting pixels of a block, and a difference value with pixels of the current block is encoded.
  • An inter block refers to a block that is encoded using inter prediction coding.
  • Inter prediction coding generates a prediction block by predicting a current block within a current picture by referring to one or more past or future pictures, and then generates a current block. This is a method of encoding a difference value with.
  • a picture referred to for encoding or decoding the current picture is referred to as a reference picture.
  • FIG. 1 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus 100 is an apparatus for encoding an image, and includes a predictor 110, a subtracter 120, a transformer and quantizer 130, and an encoder.
  • the encoder may include an encoder 140, an inverse quantizer and an inverse transformer 150, an adder 160, and a reference picture memory 170.
  • the predictor 110 determines a motion vector of an image according to a motion vector resolution for each combination of a plurality of motion vector resolutions including at least one motion vector resolution and uses the determined motion vector. Generate a predicted image of an image. That is, a motion including a motion vector and a reference frame index of the current block by estimating the motion of a block to be encoded in the predictor 110 input image (hereinafter referred to as a current block).
  • the prediction block of the current block is generated by determining motion information and compensating for the motion of the current block by using the determined motion information of the current block.
  • the predictor 110 further estimates the motion vector at a motion vector resolution that is not included in the combination of the motion vector resolutions selected by the encoder 140 among the available motion vector resolutions, and uses the estimated motion vector to estimate the predicted image. Can be generated.
  • the predictor 110 may estimate the motion vector of the motion vector resolution of the pixel unit not included in the motion vector resolution combination by using template matching (TM).
  • template matching refers to a method of estimating a motion vector of a current block by using pixels that are already encoded, decoded, and reconstructed among neighboring pixels (or adjacent pixels among neighboring pixels) of a current block to be encoded. A method of additionally estimating a motion vector using template matching will be described in detail with reference to FIGS. 5 and 6 in a later process.
  • the predictor 110 determines the motion information on a block basis and generates a prediction block in coding units (eg, blocks, slices, pictures, and picture groups (GOPs). of picture), and an image of each prediction block generated by performing the coding unit may be generated as a prediction image.
  • coding units eg, blocks, slices, pictures, and picture groups (GOPs). of picture
  • an image of each prediction block generated by performing the coding unit may be generated as a prediction image.
  • the input image may be an image (eg, an image corresponding to an arbitrary slice in an arbitrary picture) for a predetermined coding unit constituting a video
  • the prediction image may be an input image. It may be an image (eg, a slice image in which prediction blocks are collected) for a predetermined coding unit including prediction blocks generated by predicting blocks in the block.
  • the predicted image generated by the predictor 110 may be generated according to the motion vector resolution for each combination of the motion vector resolutions. That is, the predictor 110 determines a motion vector for each block in the input image according to the motion vector resolution for each combination of the motion vector resolutions, generates a prediction block using the motion vector, and generates a prediction image by collecting the generated prediction blocks.
  • the prediction image may be generated as many as the number of combinations of motion vector resolutions.
  • one prediction image may be generated for an image of a coding unit.
  • the subtractor 120 subtracts the input image and the prediction image to generate a residual image.
  • the residual image is an image generated by subtracting an input image and a prediction image to be encoded, and means an image including a residual signal that is a difference between a pixel of the input image and a pixel of the prediction image.
  • the predicted image generated by the predictor 110 is generated by the number of combinations of motion vector resolutions
  • the residual image generated by the subtractor 120 may be generated by the number of combinations of motion vector resolutions, and further estimated.
  • a prediction image is generated according to the motion vector, a residual image of the prediction image may be generated.
  • the converter and quantizer 130 transforms and quantizes the residual image. That is, the transformer and the quantizer 130 convert the residual signal of the residual image generated by the subtractor 120 into the frequency domain to generate a transformed residual image having a transform coefficient and convert the residual signal.
  • the transform coefficients of the residual image are quantized to generate transformed and quantized residual images.
  • a transform method used a method of transforming an image signal in a spatial domain into a frequency domain such as a Hadamard transform or a discrete cosine transform based integer transform is used.
  • various quantization techniques such as Dead Zone Uniform Threshold Quantization (DZUTQ) or quantization weighted matrix (DZUTQ) may be used.
  • DZUTQ Dead Zone Uniform Threshold Quantization
  • DZUTQ quantization weighted matrix
  • the encoder 140 encodes the transformed and quantized residual images to generate image encoded data for each combination of motion vector resolutions, calculates encoding cost of the image encoded data for each combination of motion vector resolutions, and calculates the image for each combination of motion vector resolutions.
  • the combination of the motion vector resolutions is selected using the encoding cost of the encoded data, and the encoded image encoded data is output using the motion vector determined according to the motion vector resolution according to the selected combination of the motion vector resolutions.
  • the entropy encoding technique may be used as a technique for encoding the quantized transform coefficients by the encoder 140, but various encoding techniques may be used without being limited thereto.
  • the encoder 140 will be described in detail with reference to FIGS. 2 and 3.
  • the inverse quantizer and inverse converter 150 inverse quantizes and inverse transforms the transformed and quantized residual image to reconstruct the residual image. That is, the inverse quantizer and the inverse transformer 150 inverse quantizes the transformed and quantized residual images transmitted from the transformer and the quantizer 130 to restore a residual image having a transform coefficient, and reconstructs the residual image having a transform coefficient. Inverse conversion restores a residual image having a residual signal. In this case, the inverse quantizer and the inverse transformer 150 may reconstruct the residual image by performing the transformed and quantized method in the inverse of the transformer and the quantizer 130.
  • the inverse quantizer and inverse transformer 150 do not inversely quantize and inversely transform all the transformed and quantized residual images transmitted from the transformer and quantizer 130, but a combination of motion vector resolutions selected by the encoder 140. Only the residual image of the predicted image generated by using the motion vector determined according to the transformed and quantized residual image may be inversely quantized and inversely transformed to restore only the residual image according to the combination of the corresponding motion vector resolutions.
  • the adder 160 reconstructs the input image by adding the residual image reconstructed by the inverse quantizer and the inverse transformer 150 and the predictive image generated by the predictor 110.
  • the reference picture memory 170 stores a reference picture in which reconstructed input pictures are accumulated by picture units, and the stored reference pictures may be used by the predictor 110 to predict the next input picture or the next picture.
  • the image encoding apparatus 100 may add an intra predictor, a deblocking filter, or the like for intra prediction in the predictor 110. It can be included as.
  • the subtractor 120 may generate a residual image by subtracting the input image and the prediction image generated by the intra predictor, and the transformer and quantizer 130 and the inverse quantizer and inverse transformer 150 may generate the residual image. Transform and quantization for and inverse transform and inverse quantization on the transformed and quantized residual image may be further performed.
  • the encoder 140 may generate image encoded data by encoding the transformed and quantized residual image, which is included in the bitstream.
  • the deblocking filter deblocks the input image to be reconstructed.
  • 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.
  • FIG. 2 is an exemplary view showing a state of determining a motion vector through motion estimation according to an embodiment of the present invention.
  • the predictor 110 finds a reference block that is the block most similar to the current block among predetermined search regions within several reference pictures that can be used to determine a motion vector of the current block, and finds a reference picture index and a reference block representing the reference picture.
  • the motion of the current block is estimated by acquiring the indicated motion vector as motion information.
  • a method of determining a motion vector may be represented by Equation 1 and Equation 2.
  • Equation 1 Denotes a motion vector of the current block, where the position of the motion vector may exist anywhere in the plurality of reference pictures. Represents the original current block, Is Indicates a reference block indicated by. Two blocks and Represents a function that calculates the sum of absolute values of differences in pixels between Stands for Lagrange Multiplier, Denotes a predictive motion vector, Indicates a reference picture index, which is an index to indicate a reference picture, Is Wow Difference between Represents a function for calculating the amount of bits required to encode a function, where mcost ( MV ) is Represents an encoding cost required for encoding motion information according to the present invention.
  • Equation 2 Represents the motion vector of the current block that is finally determined, Represents a motion search area.
  • the predictor 110 may determine a predetermined motion search region of several reference pictures. Angle that can be considered within The coding cost for is calculated using Equation 1 and has the lowest coding cost. Can be found using Equation 2 and determined as the motion vector of the current block. In Equation 1, the encoding cost is calculated as the rate-distortion cost, but the encoding cost is not necessarily calculated as the rate-distortion cost and may be calculated in various other ways.
  • Equation 3 Represents the same as described above through Equation 1, Denotes a block mode index for identifying an inter block mode.
  • S mode represents a set of interblock modes from blocks of 16x16 pixels to blocks of 4x4 pixels
  • Silver block mode Denotes a reconstructed block that is reconstructed by encoding and decoding the current block using silver
  • Wow represents a function for calculating the sum of squared errors of pixels in Silver block mode
  • Rate ( MV i , PMV , ref_idx , Coeff i ) is a block mode.
  • rdcost ( i ) is the block mode.
  • i * represents an index indicating the block mode of the current block that is finally determined.
  • the predictor 110 calculates encoding costs for several interblock modes by using Equation 3, and finds i * , which is an index indicating a block mode having a minimum encoding cost, by using Equation 4. It can be determined as the block mode of the final current block.
  • the encoding cost is calculated as a rate-distortion cost, but the encoding cost is not necessarily calculated as the rate-distortion cost as shown in Equation 3 and may be calculated in various other ways.
  • the predictor 110 calculates the encoding cost, but the present invention is not limited thereto.
  • the encoder 140 calculates the encoding cost and passes the calculated encoding cost to the predictor 110 so that the predictor 110 may calculate the encoding cost.
  • the motion vector may be determined.
  • the motion vector obtained through Equation 2 is predictively encoded, and the predictor 110 or the encoder 140 encodes a differential motion vector which is a difference value between the motion vector and its predicted motion vector as shown in Equation 5.
  • motion vectors are obtained by performing motion estimation at resolutions of integer pixel units, 1/2 pixel units, and 1/4 pixel units, and differential motion vectors of the obtained motion vectors are obtained. Is encoded using a code table to which a bit string for each multiple of quarter pixels as shown in Table 1 is assigned.
  • Long codewords are used to encode a motion vector having a small size, such as a codeword for encoding a motion vector having a resolution of 1/2 pixel and a resolution of a quarter pixel and a motion of a resolution of an integer pixel. This is because a codeword for encoding a vector is used together.
  • a combination of a plurality of motion vector resolutions including at least one motion vector is provided, and motion estimation and motion estimation are performed at a motion vector resolution according to each combination for each combination of motion vector resolutions. Compensation, encoding of residual images, encoding of motion vectors, and calculating a coding cost accordingly select a combination of motion vector resolutions having a minimum encoding cost and determine the motion vector resolution according to the motion vector resolution of the combination of the selected motion vector resolutions.
  • a bitstream including encoded image encoded data and motion vector encoded data is generated based on the.
  • FIG. 3 is a block diagram schematically illustrating an encoder according to an embodiment of the present invention.
  • the encoder 140 may include a predicted residual encoder 310 and a motion vector encoder 320.
  • the predictive residual encoder 310 encodes the transformed and quantized residual image to generate image encoded data for each combination of motion vector resolutions. That is, the predictive residual encoder 310 encodes the residual image transformed and quantized by the transformer and the quantizer 130. The residual residual encoder 310 encodes the transformed and quantized residual image for each combination of motion vector resolutions, and thus the image for each combination of motion vector resolutions. Generate encoded data.
  • the motion vector encoder 320 calculates the encoding cost of the image encoded data for each combination of the motion vector resolution, selects the combination of the motion vector resolutions using the encoding cost of the image encoded data for the combination of the motion vector resolution, and selects the selected motion vector.
  • the motion vector encoded data encoded by the motion vector determined according to the resolution of the motion vector according to the combination of resolutions is output. That is, the motion vector encoder 320 receives various pieces of information transmitted from the predictor 110 and the predictive residual encoder 310 in the process of encoding the image encoded data of the combination of the motion vector resolutions generated by the predictive residual encoder 310.
  • Calculates the encoding cost for encoding each image encoded data selects a combination of motion vector resolutions from among a combination of several motion vector resolutions, and uses a motion vector determined according to the selected combination of motion vector resolutions. Outputs the encoded motion vector encoded data.
  • the motion vector encoder 320 encodes a motion vector determined for each combination of the motion vector resolutions and calculates the motion vector encoding data for each combination of the motion vector resolutions when calculating the encoding cost for each combination of the motion vector resolutions.
  • the generated motion vector encoded data may be output without generating motion vector encoded data again.
  • the motion vector encoder 320 will be described in detail with reference to FIG. 4.
  • FIG. 4 is a block diagram schematically illustrating a motion vector encoding apparatus according to an embodiment of the present invention.
  • the motion vector encoding apparatus may be implemented as the motion vector encoder 320 in the encoder 140 described above with reference to FIG. 3.
  • the motion vector encoding apparatus is called a motion vector encoder 320.
  • the motion vector encoder 320 may include a coding cost calculator 410, a motion information encoder 430, and a resolution combination determiner 420.
  • the encoding cost calculator 410 calculates an encoding cost according to the motion vector resolution of each motion vector resolution combination for each combination of a plurality of motion vector resolutions including at least one motion vector resolution. That is, the encoding cost calculator 410 encodes the residual image, which is a difference between the predicted image and the input image generated by using the motion vector including the motion vector and the reference picture index determined according to the motion vector resolution for each combination of the motion vector resolutions. Calculate the cost of doing it.
  • the motion vector resolution may include one or more of an integer pixel resolution, a 1/2 pixel resolution, a 1/4 pixel resolution, and a 1/8 pixel resolution, but is not limited thereto. It may also include a pixel-by-pixel resolution.
  • the combination of the motion vector resolutions refers to a group including at least one or more of the motion vector resolutions available for motion estimation.
  • the usable motion vector resolution refers to a motion vector resolution that is previously promised to be used as the motion vector resolution in the image encoding apparatus 100, the image decoding apparatus or the motion vector encoding apparatus, and the motion vector decoding apparatus, which will be described later.
  • the available motion vector resolutions are motion vector resolutions of integer and 1/2 pixel units. If the video encoding apparatus and the video decoding apparatus have previously promised to use only motion vector resolutions of integer, 1/2 pixel, 1/4 pixel, and 1/8 pixel units, the available motion vector resolution is integer, 1/2 pixel. The motion vector resolution in units of 1/4, 1/8 pixels becomes the available motion vector resolution.
  • the combination may be composed of 15 kinds of the first to the fifteenth combination of the motion vector resolution as exemplarily shown in Table 2.
  • the type and combination of such motion vector resolutions are merely exemplary, and the number or type of motion vector resolutions may be used, and the combination of motion vector resolutions may be configured in various ways. For example, as shown in the above example, four types of motion vector resolutions may be used, but a combination of motion vector resolutions may be configured in ten types, and only two types of motion vector resolutions may be used.
  • the combination of motion vector resolution may consist of three, two, and the like.
  • the encoding cost calculator 410 is required when predicting and encoding the input image using the motion vector determined by estimating the motion at the resolution of the integer pixel unit included in the first combination of the motion vector resolutions.
  • the encoding cost is calculated as the encoding cost of the first combination and the prediction image is encoded using the motion vector determined by estimating the motion at a resolution of 1/2 pixel included in the second combination of the motion vector resolution.
  • the encoding cost required is calculated as the encoding cost of the second combination, and in this way the encoding cost of the third to fourteenth combinations is calculated, and an integer included in the fifteenth combination of the motion vector resolution, 1/2, 1 Coding required when predicting and encoding an input image using a motion vector determined by estimating motion at a resolution of 4/4 and 1/8 pixel units It calculates a cost for the coding of the 15 combinations.
  • the encoding cost calculator 410 determines at least one of a motion vector and a block mode for each block according to the motion vector resolution for each combination of motion vector resolution, and calculates an encoding cost by using at least one of the determined motion vector and the determined block mode. Can be calculated
  • the encoding cost calculator 410 may calculate the encoding cost by encoding the motion vector using a different code table according to the motion vector resolution for each combination of the motion vector resolutions. That is, the encoding cost calculator 410 may store a different code table in advance for each combination of motion vector resolutions and use the same to encode a motion vector having a motion vector resolution for each combination of motion vector resolutions.
  • a code table different for each combination of motion vector resolutions refers to a code table for encoding by considering only motion vectors having a motion vector resolution in a combination system of each motion vector resolution.
  • the code table for the first combination of motion vector resolutions is a code table for encoding by considering only motion vectors of resolution of integer pixel units
  • the code table for the twelfth combination of the vector resolutions is a code table for encoding in consideration of only motion vectors having resolutions of integer, 1/2, and 1/8 pixel units, as exemplarily shown in Table 4.
  • a code table for encoding a motion vector determined for each combination of motion vector resolutions is configured differently to be suitable for each combination of motion vector resolutions, and the selected motion vector resolution is selected.
  • the resolution combination determiner 420 selects a combination of motion vector resolutions by using an encoding cost calculated for each combination of motion vector resolutions. That is, the resolution combination determiner 420 compares the encoding cost for each combination of motion vector resolutions calculated by the encoding cost calculator 410 and selects a combination of motion vector resolutions having the smallest encoding cost.
  • the resolution combination determiner 420 may select a combination of motion vector resolutions for each coding unit including at least one of a block, a slice, a picture, and a picture group.
  • the resolution combination determiner 420 may select a combination of motion vector resolutions in the same manner as in Equation 6.
  • Equation 6 k represents a resolution combination index for identifying a combination of motion vector resolutions.
  • RDcost (k) represents a rate-distortion cost as an encoding cost incurred when all blocks in a coding unit are encoded using a combination of motion vector resolutions corresponding to the resolution combination index k .
  • k * represents a resolution combination index for identifying a combination of motion vector resolutions selected by resolution combination determiner 420.
  • the resolution combination index k * for identifying the combination of the motion vector resolutions selected by the resolution combination determiner 420 is included in the bitstream when encoded by the motion information encoder 430 and generated as the resolution combination index data.
  • the motion information encoder 430 outputs motion vector encoded data obtained by encoding a motion vector determined according to a combination of selected motion vector resolutions. That is, when a combination of motion vector resolutions is selected by the resolution combination determiner 420, the motion information encoder 430 selects from among motion vector encoded data generated in advance in the process of calculating the encoding cost by the encoding cost calculator 410.
  • the resolution combination determiner 420 outputs motion vector encoded data encoded by a motion vector determined according to the motion vector resolution of the combination of the motion vector resolutions selected by the resolution combination determiner 420.
  • the motion vector encoded data output from the motion information encoder 430 is also generated for each block in the predetermined coding unit such as a slice.
  • the motion vector encoded data may further include a reference picture index as well as a motion vector.
  • the motion information encoder 430 may output resolution combination index data by encoding a resolution combination index indicating a combination of the selected motion vector resolutions.
  • the resolution combination index data is additionally included in the bitstream and used to identify a combination of motion vector resolutions in the motion vector decoding apparatus or the image decoding apparatus.
  • a motion vector resolution that is not included in a combination of motion vector resolutions selected for each predetermined coding unit among the available motion vector resolutions generates an optimal coding efficiency in a part of regions or blocks within the predetermined coding unit.
  • a motion vector having a more efficient motion vector resolution is determined by estimating the motion in consideration of the motion vector resolution not included in the combination of the motion vector resolutions for each region or block encoding.
  • an embodiment of the present invention may use template matching.
  • FIG. 5 is an exemplary diagram for describing a process of estimating a motion vector having a motion vector resolution not included in a combination of motion vector resolutions using template matching according to an embodiment of the present invention.
  • the predictor 110 is most similar to a neighboring pixel of the current block in the reference picture at a motion vector resolution that is not included in the combination of motion vector resolutions selected by the encoder 140 among the available motion vector resolutions.
  • a reference block having adjacent pixels is found to obtain a motion vector indicating the reference block.
  • the search region for estimating the motion by using template matching at a motion vector resolution not included in the combination of the motion vector resolution may be limited to a peripheral region of the motion vector determined according to the combination of the selected motion vector resolution.
  • the peripheral area of the motion vector may be an area that is equally or differently spaced apart by a predetermined number of pixels with respect to the pixel indicated by the motion vector.
  • FIG. 6 is an exemplary diagram for describing a process of selecting a motion vector according to an embodiment of the present invention.
  • 6A illustrates a process of calculating an encoding cost for a motion vector determined according to a combination of motion vector resolutions selected by the encoder 140
  • 6B illustrates a motion vector selected by the encoder 140 among available motion vector resolutions.
  • a process of calculating a coding cost for a motion vector determined by using template matching at a motion vector resolution not included in the resolution combination is shown.
  • the encoding cost calculated by the method shown in 6A and 6B can be calculated using Equations 7 and 8, respectively.
  • Equation 7 and Equation 8 Represents the current template, which represents adjacent pixels in the current block, Is a motion vector determined according to the motion vector resolution selected by the resolution combination determiner 420.
  • Represents a reference template indicating adjacent pixels of the reference block indicated by Indicates the number of pixels in the current template and the reference template.
  • the distortion cost is taken as an encoding cost, but the encoding cost is not necessarily limited thereto and may be calculated in various ways.
  • the predictor 110 Since the motion vector having a small SAD among the SADs calculated using Equations 7 and 8 has better coding efficiency, the predictor 110 outputs the predicted block by compensating for the motion of the block using the corresponding motion vector. do. In this case, the predictor 110 may select a motion vector for each block in the coding unit. Therefore, the predictor 110 may output a predicted block whose motion is compensated using the estimated motion vector only when the selected motion vector for each block is a motion vector additionally estimated using template matching. If a motion vector determined according to a combination of motion vector resolutions is selected, a prediction block is not additionally generated.
  • additional information or any additional information for additionally encoding or identifying a motion vector that is estimated to be a motion vector resolution that is not included in the selected motion vector resolution combination among the available motion vector resolutions It is not necessary to encode information indicating whether the video encoded data encoded using the motion vector is included in the bitstream. This is because the image decoding apparatus may perform the same process as described with reference to FIGS. 5 and 6 in the same manner as the image encoding apparatus 100.
  • FIG. 7 is a flowchart illustrating a motion vector encoding method according to an embodiment of the present invention.
  • the motion vector encoder 320 calculates an encoding cost according to a motion vector resolution for each combination of a plurality of motion vector resolutions including at least one motion vector resolution (In operation S710, a combination of motion vector resolutions is selected using a coding cost calculated for each combination of motion vector resolutions (S720), and motion vector encoded data obtained by encoding a motion vector determined according to the selected combination of motion vector resolutions is output. (S730).
  • the motion vector resolution may include at least one of resolution in integer pixel units, resolution in 1/2 pixel units, resolution in 1/4 pixel units, and resolution in 1/8 pixel units.
  • the motion vector encoder 320 may further output resolution combination index data by encoding a resolution combination index indicating a combination of the selected motion vector resolutions.
  • the motion vector encoder 320 may select a combination of motion vector resolutions for each coding unit including one or more of blocks, slices, pictures, and picture groups, and may calculate a combination of motion costs calculated by the combination of motion vector resolutions.
  • a combination of motion vector resolutions having a small encoding cost can be selected as a combination of motion vector resolutions.
  • FIG. 8 is a flowchart illustrating an image encoding method according to an embodiment of the present invention.
  • the image encoding apparatus 100 determines a motion vector of an image according to a motion vector resolution for each combination of a plurality of motion vector resolutions including at least one motion vector resolution.
  • a predicted image of the image is generated using the determined motion vector (S820)
  • a residual image is generated by subtracting the image and the predicted image (S830)
  • the residual image is converted and quantized (S840).
  • encoding the quantized residual image to generate image encoded data for each combination of the motion vector resolutions (S850), calculating the encoding cost of the image encoded data for each combination of the motion vector resolutions (S860), and performing the image for each combination of the motion vector resolutions.
  • a combination of motion vector resolutions is selected using the encoding cost of the encoded data (S870).
  • a bitstream including encoded image coded data is generated using a motion vector determined according to the motion vector resolution according to the combination (S880).
  • the image encoding apparatus 100 estimates a motion vector having a motion vector resolution that is not included in the selected combination of motion vector resolutions among the available motion vector resolutions, and uses the motion vector having the estimated motion vector resolution to obtain an image.
  • the bitstream including the encoded image coded data may be generated by predictive encoding.
  • the image encoding apparatus 100 may estimate a motion vector having a motion vector resolution not included in the selected motion vector resolution combination by using template matching, and according to the motion vector determined according to the selected motion vector resolution combination.
  • a bitstream including encoded image encoded data may be generated.
  • FIG. 9 is a flowchart for explaining another example of implementing an image encoding method according to an embodiment of the present invention.
  • Steps S910 to S970 are the same as or similar to steps S810 to S870 described above with reference to FIG. 8, and thus a detailed description thereof will be omitted.
  • the image encoding apparatus 100 based on the motion vector determined according to the combination of the motion vector resolution and the motion vector resolution that are not included in the combination of the motion vector resolution selected in step S970 among the available motion vector resolutions.
  • a search area for motion estimation is determined (S980). For example, if a combination of motion vector resolutions including motion vector resolutions in integer, 1/2, and 1/8 pixel units is selected in step S870, the combination of motion vector resolutions selected from the available motion vector resolutions is not included.
  • the motion vector resolution is a motion vector resolution in units of 1/4 pixels. In this case, the image encoding apparatus 100 limits and sets the search region for additional motion estimation to the peripheral region of the motion vector determined according to the combination of the selected motion vector resolutions.
  • the image encoding apparatus 100 performs motion estimation using template matching at a motion vector resolution that is not included in the combination of the motion vector resolutions in the search area determined in operation S980, thereby causing the motion vector not included in the combination of the motion vector resolutions.
  • a motion vector of resolution is determined (S990). That is, as described above with reference to FIG. 5, the image encoding apparatus 100 further estimates the motion of each block in the slice at a 1/4 pixel unit by using the template matching to further estimate the motion of each block in the slice. Determines the motion vector of the motion vector resolution. In this case, as described above with reference to FIG.
  • the image encoding apparatus 100 does not include a motion vector determined according to a combination of the motion vector resolution selected in step S970 and a motion vector resolution using template matching in step S990.
  • a bitstream including image coded data encoded using a motion vector having high coding efficiency among motion vectors determined by performing motion estimation at a motion vector resolution may be output.
  • each step described above with reference to FIGS. 7 to 9 is not necessarily all performed, and some steps may be selectively omitted or added according to an implementation method or a need.
  • the order of each step is not necessarily determined as shown, and the order of some or all of the steps may be changed or even performed in parallel.
  • FIG. 10 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
  • the image decoding apparatus 1000 may include a decoder 1010, an inverse quantizer and an inverse converter 1020, a predictor 1030, an adder 1040, and a reference picture memory 1050. It can be configured to include.
  • the decoder 1010 decodes the motion vector encoded data extracted from the bitstream according to the combination of the motion vector resolution, which is recovered by decoding the resolution combination index data extracted from the bitstream, and restores the motion vector, and is extracted from the bitstream.
  • the encoded and decoded residual images are reconstructed by decoding the image encoded data. That is, the decoder 1010 extracts and decodes the resolution combination index data, the motion vector coded data, and the image coded data from the bitstream, respectively, to reconstruct the resolution combination index, the motion vector, and the transformed and quantized residual images.
  • the decoder 1010 decodes the motion vector encoded data by using a code table identified by the combination of the motion vector resolutions indicated by the reconstructed resolution combination index.
  • the decoder 1010 may decode by using an encoding technique such as entropy encoding.
  • the decoder 1010 may reversely decode the encoder 140 described above with reference to FIG. 1 to decode.
  • the inverse quantizer and inverse transformer 1020 inverse quantizes and inverse transforms the transformed and quantized residual image to reconstruct the residual image. That is, the inverse quantizer and inverse transformer 1020 inverse quantizes and inversely transforms the quantized transform coefficients of the transformed and quantized residual image transmitted by the decoder 1010 to reconstruct the residual image having the residual signal. In this case, the inverse quantizer and the inverse transformer 1020 may perform inverse quantization and inverse transformation by performing the transformation and quantization of the converter and quantizer 130 described above with reference to FIG. 1.
  • the reconstructed residual image is an image in a predetermined coding unit including several residual blocks, and the image of the coding unit may be various images such as a block, a slice, a picture, a picture group, and the like.
  • the predictor 1030 generates a predicted image of the image by using the reconstructed motion vector. That is, the predictor 1030 generates a prediction block by compensating for the motion of blocks to be encoded by using the motion vector reconstructed by the decoder 1010.
  • the prediction blocks are gathered in a predetermined coding unit to form a prediction image. .
  • the predictor 1030 is not a motion vector reconstructed by the decoder 1010, but a motion not included in the combination of motion vector resolutions indicated by the resolution combination index reconstructed by the decoder 1010 among the available motion vector resolutions.
  • the motion vector may be estimated at the vector resolution, and the prediction image may be generated using the motion vector having the motion vector resolution which is not included in the estimated motion vector resolution combination.
  • the predictor 1030 may use a coding cost calculated using a motion vector estimated by a motion vector resolution not included in a combination of a coding cost and a motion vector resolution calculated using the motion vector reconstructed by the decoder 1010.
  • the prediction image may be generated using a motion vector having a small encoding cost. In this case, the predictor 1030 may estimate a motion vector having a motion vector resolution that is not included in the combination of the motion vector resolutions using template matching.
  • the adder 1040 reconstructs the image by adding the residual image and the predicted image. That is, the adder 1040 reconstructs the image by adding the residual image reconstructed by the inverse quantizer and the inverse transformer 1020 and the predicted image generated by the predictor 1030.
  • the image reconstructed by the adder 1040 may be accumulated in units of pictures and output as a reconstructed image.
  • the image reconstructed by the adder 1040 may be stored in the reference picture memory 1050 to be used by the predictor 1030 to predict the next image.
  • the image decoding apparatus 1000 may include an intra predictor for intra prediction, a deblocking filter for deblocking filtering the reconstructed current block, and the like. It may further comprise.
  • FIG. 11 is a block diagram schematically illustrating a decoder according to an embodiment of the present invention.
  • the decoder 1010 may include a motion vector decoder 1110 and a predictive residual decoder 1120.
  • the motion vector decoder 1110 reconstructs the motion vector by decoding the motion vector encoded data extracted from the bitstream according to the combination of the motion vector resolution, which is recovered by decoding the resolution combination index data extracted from the bitstream.
  • the motion vector decoder 1110 will be described in detail with reference to FIG. 12.
  • the prediction residual decoder 1120 decodes the image coded data extracted from the bitstream to reconstruct the transformed and quantized residual image.
  • FIG. 12 is a block diagram schematically illustrating a motion vector decoding apparatus according to an embodiment of the present invention.
  • the motion vector decoding apparatus may be implemented as the motion vector decoder 1110 in the decoder 1010 described above with reference to FIG. 11.
  • the motion vector decoding apparatus is called a motion vector decoder 1110.
  • the motion vector decoder 1110 may include a resolution combination reconstructor 1210 and a motion vector reconstructor 1220.
  • the resolution combination reconstructor 1210 decodes the resolution combination index data extracted from the bitstream to reconstruct the combination of the motion vector resolutions. That is, the resolution combination reconstructor 1210 extracts and decodes the resolution combination index data from the bitstream to restore the resolution combination index, and restores the combination of the motion vector resolutions indicated by the reconstructed resolution combination index.
  • the resolution combination reconstructor 1210 may extract resolution limited index data from a header of a predetermined coding unit, such as a block header, a slice header, and a picture header of the bitstream.
  • the reconstructed motion vector resolution combination has information on the combination of motion vector resolutions for all blocks in the image of a predetermined coding unit. For example, assuming that the combination of the motion vector resolutions is the fifth combination of the motion vector resolutions shown in Table 2, the motion vectors of each block in the predetermined coding unit have only the motion vector resolution in integer pixels or 1/2 pixel units. .
  • the motion vector reconstructor 1220 reconstructs the motion vector by decoding motion vector encoded data extracted from the bitstream according to the combination of the reconstructed motion vector resolution. That is, the motion vector reconstructor 1220 extracts and decodes motion vector encoded data from the bitstream to reconstruct motion vectors of all blocks in a predetermined coding unit.
  • the motion vector resolution reconstructed by the resolution combination reconstructor 1210 is obtained.
  • the motion vector encoded data may be decoded by using a code table identified by a combination of. For example, assuming that the combination of the reconstructed motion vector resolutions is the first combination of the motion vector resolutions, the motion vector may be reconstructed by decoding the motion vector encoded data using a code table exemplarily shown in Table 3. .
  • the motion vector decompressor 1320 has a different code table according to the combination of motion vector resolutions and stores them in advance, and the code table is previously agreed with the motion vector encoder 430 or the image encoding apparatus 100. The same table is created.
  • FIG. 13 is a flowchart illustrating a motion vector decoding method according to an embodiment of the present invention.
  • the motion vector decoder 1110 decodes the resolution combination index data extracted from the bitstream to restore the combination of the motion vector resolutions (S1310), and the reconstructed motion.
  • the motion vector is reconstructed by decoding the motion vector encoded data extracted from the bitstream according to the combination of the vector resolutions (S1320).
  • the motion vector decoder 1110 may decode the motion vector encoded data using another code table according to the combination of the motion vector resolutions restored in operation S1310.
  • FIG. 14 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
  • the image decoding apparatus 1000 encodes a motion vector that is extracted from a bitstream according to a combination of motion vector resolutions that are reconstructed by decoding resolution combination index data extracted from a bitstream. Decode the data to restore the motion vector (S1410), decode the image coded data extracted from the bitstream to restore the transformed and quantized residual image (S1420), and inverse quantization and inverse transform the transformed and quantized residual image
  • the residual image is reconstructed (S1430), a predicted image of the image is generated using the reconstructed motion vector (S1440), and the image is reconstructed by adding the residual image and the predicted image (S1450).
  • the image decoding apparatus 1000 may generate a prediction image by using the motion vector reconstructed in operation S1410 as it is, but is not included in the combination of the motion vector resolution reconstructed in operation S1410 among the available motion vector resolutions.
  • a prediction image may be generated using a motion vector having a small encoding cost.
  • the image decoding apparatus 1000 may estimate the motion vector having the motion vector resolution which is not included in the combination of the motion vector resolutions by using the template matching.
  • each step described above with reference to FIGS. 13 and 14 is not necessarily all performed, and some steps may be selectively omitted or added.
  • the order of each step is not necessarily determined as shown, and the order of some or all of the steps may be changed or even performed in parallel.
  • a combination of the resolution of the motion vector resolution is determined and the combination of the resolution of the motion vector is determined for the blocks in the image of the predetermined coding unit such as a slice or the like. Since the motion vector can be encoded by using a code table suitable for, the amount of bits required for encoding the motion vector can be reduced, and as a result, the compression efficiency of the image can be improved.
  • both the video encoding apparatus 100 and the video decoding apparatus 1000 may perform the same. Since an additional motion estimation may be performed at a motion vector resolution not included in the combination of motion vector resolutions, the image may be encoded using motion vectors having various motion vector resolutions, thereby increasing the accuracy of prediction and suppressing generation of residual signals. In addition, since there is no need to additionally encode a motion vector having a motion vector resolution determined through additional motion estimation, the compression efficiency of the image may be further improved.
  • the motion vector encoding apparatus and the motion vector decoding apparatus have been described as being implemented as independent apparatuses, the motion vector encoding apparatus and the motion vector decoding apparatus are in one image encoding / decoding apparatus. It may be implemented. Such an image encoding / decoding apparatus may not only encode an image signal and transmit the encoded image signal to another image processing apparatus, but also may receive the encoded bitstream from another image processing apparatus and restore and reproduce the image signal.
  • the present invention is applied to a field, and is applied to a field of image compression processing for encoding or decoding a video and encoding or decoding a motion vector therefor to adaptively select a combination of resolutions of an efficient motion vector. Compression efficiency can be improved by determining and encoding a motion vector based on the motion vector.
  • the combination of resolutions of the motion vectors is adaptively selected and the motion vectors are determined and encoded accordingly, the motion vector resolution is determined based on the bitstream. It is a very useful invention to generate the effect of improving the reconstruction efficiency of the image by correspondingly restoring the combination and restoring the motion vector.

Abstract

본 발명은 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다. 본 발명은 움직임 벡터를 부호화하는 장치에 있어서, 적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별로 움직임 벡터 해상도에 따른 부호화 비용을 계산하고, 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 하나의 움직임 벡터 해상도의 조합을 선택하며, 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력하는 움직임 정보 부호화기를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치를 제공한다. 본 발명에 의하면, 효율적인 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그를 기초로 움직임 벡터를 결정하고 부호화함으로써 압축 효율을 향상시킬 수 있다.

Description

움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
본 발명은 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다. 더욱 상세하게는, 영상을 부호화하는 데 있어서 효율적인 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그를 기초로 움직임 벡터를 결정하고 부호화하여 압축 효율을 향상시키기 위한 방법 및 장치에 관한 것이다. 또한, 이와 같은 움직임 부호화 장치로부터 비트스트림을 수신하여 선택된 움직임 벡터의 해상도의 조합에 따라 상응적으로 움직임 벡터를 결정하고 복호화함으로써 영상의 복원 효율을 향상시키기 위한 방법 및 장치에 관한 것이다.
H.264/AVC은 현재까지 표준화된 비디오 코덱(Video Coder and Decode)들 중 가장 압축률이 뛰어난 비디오 코덱에 대한 표준이다. H.264/AVC 표준에는 압축 효율을 높이기 위하여 방향성을 고려한 인트라 예측(Intra Prediction), 4x4 화소 단위의 정수 변환(Integer Transform), 16x16 화소 크기부터 4x4 화소 크기까지의 다양한 크기를 가지는 블록 모드(Block Mode), 디블록킹 필터(Deblocking Filter) 등을 이용하여 영상을 예측 부호화한다. 이뿐만 아니라, H.264/AVC 표준에서는 더욱 정확한 움직임 벡터를 찾기 위하여 1/2 화소 단위와 1/4 화소 단위까지 영상을 보간하여 움직임 추정을 수행한다.
하지만, 전술한 바와 같이 H.264/AVC 표준에서는 1/2 화소 단위, 1/4 화소 단위 등 다양한 해상도로 움직임을 추정함으로써 다양한 해상도의 움직임 벡터를 결정하고 부호화하기 때문에 1/2 화소 단위, 1/4 화소 단위의 해상도의 움직임 벡터를 부호화하기 위해 긴 코드워드(Code Word)가 사용되므로, 작은 크기의 움직임 벡터를 부호화하기 위한 비트량이 증가하며 결과적으로 부호화되는 비트스트림의 비트량이 증가하여 압축 효율이 저하되는 문제점이 있다.
또한, 움직임 벡터 복호화는 움직임 벡터 부호화에 상응적으로 동작하기 때문에, 움직임 벡터 부호화의 압축 효율이 저하된 상태에서는 움직임 벡터 복호화의 고효율을 기대하기 어렵다는 문제점이 있다.
전술한 문제점을 해결하기 위해 본 발명은, 효율적인 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그를 기초로 움직임 벡터를 결정하고 부호화하여 압축 효율을 향상시키는 데 주된 목적이 있다.
또한, 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그에 따라 움직임 벡터를 결정 및 부호화한 경우, 비트스트림에 기초하여 움직임 벡터 해상도의 조합을 상응적으로 복원하고 움직임 벡터를 복원함으로써, 영상의 복원 효율을 향상시키는 데 주된 목적이 있다.
전술한 목적을 달성하기 위해 본 발명은, 움직임 벡터를 부호화하는 장치에 있어서, 적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별로 움직임 벡터 해상도에 따른 부호화 비용을 계산하는 부호화 비용 계산기; 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 하나의 움직임 벡터 해상도의 조합을 선택하는 해상도 조합 결정기; 및 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력하는 움직임 정보 부호화기를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치를 제공한다.
또한, 본 발명의 다른 목적에 의하면, 영상을 부호화하는 장치에 있어서, 적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 영상의 움직임 벡터를 결정하고 결정되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성하는 예측기; 영상과 예측 영상을 감산하여 잔여 영상을 생성하는 감산기; 잔여 영상을 변환 및 양자화하는 변환기 및 양자화기; 및 변환 및 양자화된 잔여 영상을 부호화하여 움직임 벡터 해상도의 조합별 영상 부호화 데이터를 생성하고, 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 계산하며, 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하며, 선택된 움직임 벡터 해상도의 조합에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 출력하는 부호화기를 포함하는 것을 특징으로 하는 영상 부호화 장치를 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 복호화하는 장치에 있어서, 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 움직임 벡터 해상도의 조합을 복원하는 해상도 조합 복원기; 및 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 움직임 벡터 복원기를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치를 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상을 복호화하는 장치에 있어서, 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원하는 복호화기; 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원하는 역 양자화기 및 역 변환기; 복원되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성하는 예측기; 및 잔여 영상과 예측 영상을 가산하여 영상을 복원하는 가산기를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상의 움직임 벡터를 부호화하는 방법에 있어서, 적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따른 부호화 비용을 계산하는 단계; 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하는 단계; 및 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력하는 단계를 포함하는 것을 특징으로 하는 움직임 정보 부호화 방법을 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상을 부호화하는 방법에 있어서, 적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 영상의 움직임 벡터를 결정하는 단계; 결정되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성하는 단계; 영상과 예측 영상을 감산하여 잔여 영상을 생성하는 단계; 잔여 영상을 변환 및 양자화하는 단계; 변환 및 양자화된 잔여 영상을 부호화하여 움직임 벡터 해상도의 조합별 영상 부호화 데이터를 생성하는 단계; 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 계산하는 단계; 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하는 단계; 및 선택된 움직임 벡터 해상도의 조합에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법을 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 복호화하는 방법에 있어서, 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 움직임 벡터 해상도의 조합을 복원하는 단계; 및 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법을 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상을 복호화하는 방법에 있어서, 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 단계; 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원하는 단계; 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원하는 단계; 복원되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성하는 단계; 및 잔여 영상과 예측 영상을 가산하여 영상을 복원하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법을 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 효율적인 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그를 기초로 움직임 벡터를 결정하고 부호화하여 압축 효율을 향상시킬 수 있다.
또한, 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그에 따라 움직임 벡터를 결정 및 부호화한 경우, 비트스트림에 기초하여 움직임 벡터 해상도의 조합을 상응적으로 복원하고 움직임 벡터를 복원함으로써, 영상의 복원 효율을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도,
도 2는 본 발명의 일 실시예에 따라 움직임 추정을 통해 움직임 벡터를 결정하는 모습을 나타낸 예시도,
도 3은 본 발명의 일 실시예에 따른 부호화기를 간략하게 나타낸 블록 구성도,
도 4는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 간략하게 나타낸 블록 구성도,
도 5는 본 발명의 일 실시예에 따라 템플릿 매칭을 이용하여 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하는 과정을 설명하기 위한 예시도,
도 6은 본 발명의 일 실시예에 따라 움직임 벡터를 선택하는 과정을 설명하기 위한 예시도,
도 7은 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도,
도 8은 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도,
도 9는 본 발명의 일 실시예에 따른 영상 부호화 방법이 구현되는 다른 예를 설명하기 위한 순서도,
도 10은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도,
도 11은 본 발명의 일 실시예에 따른 복호화기를 간략하게 나타낸 블록 구성도,
도 12는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 간략하게 나타낸 블록 구성도,
도 13은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도,
도 14는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하에서 후술할 움직임 벡터 부호화 장치(Motion Vector Encoding Apparatus), 움직임 벡터 복호화 장치(Motion Vector Decoding Apparatus), 영상 부호화 장치(Video Encoding Apparatus), 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 움직임 벡터를 부호화거나 복호화거나 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 움직임 벡터 부호화 장치 또는 영상 부호화 장치에 의해 비트스트림으로 부호화된 움직임 벡터 또는 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 움직임 벡터 복호화 장치 또는 영상 복호화 장치로 전송되어 움직임 벡터 복호화 장치에서 복호화되어 움직임 벡터로서 복원되거나 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
통상적으로 동영상은 일련의 픽처(Picture)로 구성되어 있으며, 각 픽처들은 블록(Block)과 같은 소정의 영역으로 분할된다. 영상의 영역이 블록으로 분할되는 경우에는 분할된 블록은 부호화 방법에 따라 크게 인트라 블록(Intra Block), 인터 블록(Inter Block)으로 분류된다. 인트라 블록은 인트라 예측 부호화(Intra Prediction Coding) 방식을 사용하여 부호화되는 블록을 뜻하는데, 인트라 예측 부호화란 현재 부호화를 수행하는 현재 픽처 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 화소를 이용하여 현재 블록의 화소를 예측함으로써 예측 블록을 생성하고 현재 블록의 화소와의 차분값을 부호화하는 방식이다. 인터 블록은 인터 예측 부호화(Inter Prediction Coding)를 사용하여 부호화되는 블록을 뜻하는데, 인터 예측 부호화란 하나 이상의 과거 픽처 또는 미래 픽처를 참조하여 현재 픽처 내의 현재 블록을 예측함으로써 예측 블록을 생성하고 현재 블록과의 차분값을 부호화하는 방식이다. 여기서, 현재 픽처를 부호화하거나 복호화하는데 참조되는 픽처를 참조 픽처(Reference Picture)라고 한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 영상을 부호화하는 장치로서, 예측기(Predictor, 110), 감산기(Subtracter, 120), 변환기 및 양자화기(Transformer and Quantizer, 130), 부호화기(Encoder, 140), 역 양자화기 및 역 변환기(Inverse Quantizer and Inverse Transformer, 150), 가산기(Adder, 160) 및 참조 픽처 메모리(Reference Picture Memory, 170)를 포함하여 구성될 수 있다.
예측기(110)는 적어도 하나 이상의 움직임 벡터 해상도(Motion Vector Resolution)를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 영상의 움직임 벡터(Motion Vector)를 결정하고 결정되는 움직임 벡터를 이용하여 영상의 예측 영상(Predicted Image)을 생성한다. 즉, 예측기(110) 입력 영상에서 부호화하고자 하는 블록(이하에서는 '현재 블록'(Current Block)이라 칭함)의 움직임을 추정하여 현재 블록의 움직임 벡터와 참조 프레임 색인(Reference Frame Index)를 포함하는 움직임 정보(Motion Information)를 결정하고, 결정된 현재 블록의 움직임 정보를 이용하여 현재 블록의 움직임을 보상함으로써 현재 블록의 예측 블록을 생성한다.
또한, 예측기(110)는 이용 가능한 움직임 벡터 해상도 중에서 부호화기(140)에 의해 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 움직임 벡터를 추가로 추정하고 추정된 움직임 벡터를 이용하여 예측 영상을 생성할 수 있다. 이때, 예측기(110)는 템플릿 매칭(TM: Template Matching)을 이용하여 움직임 벡터 해상도 조합에 포함되지 않은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정할 수 있다. 여기서, 템플릿 매칭이란 부호화하고자 하는 현재 블록의 주변 화소(또는 주변 화소 중 인접 화소)들 중 이미 부호화되고 복호화되어 기 복원된 화소들을 이용하여 현재 블록의 움직임 벡터를 추정하는 방법을 말한다. 템플릿 매칭을 이용하여 추가적으로 움직임 벡터를 추정하는 방법에 대해서는 후술하는 과정에서 도 5 및 도 6을 통해 상세히 설명한다.
또한, 예측기(110)는 블록 단위로 움직임 정보를 결정하고 예측 블록을 생성하는 과정을 부호화 단위(예를 들어, 블록(Block), 슬라이스(Slice), 픽처(Picture), 픽처 그룹(GOP: Group of Picture) 등)에 대해 수행할 수 있으며, 부호화 단위에 대해 수행하여 생성되는 각 예측 블록이 모인 영상이 예측 영상으로서 생성될 수 있다. 예를 들어, 부호화 단위가 슬라이스인 경우, 예측기(110)는 슬라이스 내의 각 블록에 대한 움직임을 추정하여 움직임 벡터를 결정하고 해당 움직임 벡터를 이용하여 생성되는 예측 블록을 슬라이스 단위로 모아 예측 영상을 생성할 수 있다. 따라서, 본 발명의 일 실시예에서 입력 영상은 동영상을 구성하는 소정의 부호화 단위에 대한 영상(예를 들어, 임의의 픽처 내의 임의의 슬라이스에 해당하는 영상)이 될 수 있으며, 예측 영상은 입력 영상 내의 블록들이 예측되어 생성되는 예측 블록들을 포함하는 소정의 부호화 단위에 대한 영상(예를 들어, 예측 블록들이 모여 구성되는 슬라이스 영상)이 될 수 있다.
또한, 예측기(110)에 의해 생성되는 예측 영상은 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 각각 생성될 수 있다. 즉, 예측기(110)는 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 입력 영상 내의 각 블록에 대해 움직임 벡터를 결정하고 그를 이용하여 예측 블록을 생성하고 생성되는 예측 블록을 모아 예측 영상을 생성하므로, 예측 영상은 움직임 벡터 해상도의 조합의 개수만큼 생성될 수 있다. 또한, 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추가로 추정하는 경우에는 부호화 단위의 영상에 대해 하나의 예측 영상이 생성될 수 있다.
감산기(120)는 입력 영상과 예측 영상을 감산하여 잔여 영상(Residual Image)을 생성한다. 여기서, 잔여 영상이란 현재 부호화하고자 하는 입력 영상과 예측 영상이 감산되어 생성되는 영상으로서, 입력 영상의 화소와 예측 영상의 화소의 차이인 잔여 신호를 포함하는 영상을 말한다. 또한, 예측기(110)에 의해 생성되는 예측 영상은 움직임 벡터 해상도의 조합의 개수만큼 생성되므로 감산기(120)에 의해 생성되는 잔여 영상도 움직임 벡터 해상도의 조합의 개수만큼 생성될 수 있으며, 추가로 추정된 움직임 벡터에 따라 예측 영상이 생성되는 경우 그 예측 영상의 잔여 영상이 생성될 수 있다.
변환기 및 양자화기(130)는 잔여 영상을 변환 및 양자화한다. 즉, 변환기 및 양자화기(130)는 감산기(120)에 의해 생성된 잔여 영상의 잔여 신호(Residual Signal)를 주파수 영역으로 변환하여 변환 계수(Transform Coefficient)를 가지는 변환된 잔여 영상을 생성하고 변환된 잔여 영상의 변환 계수를 양자화하여 변환 및 양자화된 잔여 영상을 생성한다. 이때, 사용되는 변환 방식으로는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반의 정수 변환(Discrete Cosine Transform Based Integer Transform) 등과 같은 공간 영역의 화상 신호를 주파수 영역으로 변환하는 기법이 이용되고, 양자화 방식으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization, 이하 'DZUTQ'라 칭함) 또는 양자화 가중치 매트릭스(Quantization Weighted Matrix) 등과 같은 다양한 양자화 기법이 이용될 수 있다.
부호화기(140)는 변환 및 양자화된 잔여 영상을 부호화하여 움직임 벡터 해상도의 조합별 영상 부호화 데이터를 생성하고, 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 계산하며, 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하며, 선택된 움직임 벡터 해상도의 조합에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 출력한다. 여기서, 부호화기(140)가 양자화된 변환 계수를 부호화하는 기술로서는 엔트로피 부호화(Entropy Encoding) 기술이 이용될 수 있으나, 반드시 이에 한정하지 않고 다른 다양한 부호화 기술이 이용될 수 있을 것이다. 부호화기(140)에 대해서는 도 2 및 도 3을 통해 상세히 설명한다.
역 양자화기 및 역 변환기(150)는 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원한다. 즉, 역 양자화기 및 역 변환기(150)는 변환기 및 양자화기(130)로부터 전달되는 변환 및 양자화된 잔여 영상을 역 양자화하여 변환 계수를 가지는 잔여 영상을 복원하고, 변환 계수를 가지는 잔여 영상을 다시 역 변환하여 잔여 신호를 가지는 잔여 영상을 복원한다. 이때, 역 양자화기 및 역 변환기(150)는 변환기 및 양자화기(130)에서 변환 및 양자화한 방식을 역으로 수행함으로써 잔여 영상을 복원할 수 있다. 또한, 역 양자화기 및 역 변환기(150)는 변환기 및 양자화기(130)로부터 전달되는 모든 변환 및 양자화된 잔여 영상을 역 양자화고 역 변환하는 것이 아니라 부호화기(140)에 의해 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터를 이용하여 생성되는 예측 영상의 잔여 영상이 변환되고 양자화된 잔여 영상만을 역 양자화 및 역 변환하여 해당 움직임 벡터 해상도의 조합에 따른 잔여 영상만을 복원할 수 있다.
가산기(160)는 역 양자화기 및 역 변환기(150)에 의해 복원되는 잔여 영상과 예측기(110)에 의해 생성되는 예측 영상을 가산하여 입력 영상을 복원한다. 참조 픽처 메모리(170)는 복원되는 입력 영상이 픽처 단위로 누적되어 구성되는 참조 픽처를 저장하며, 저장된 참조 픽처는 예측기(110)가 다음 입력 영상 또는 다음 픽처 등을 예측하는 데 활용될 수 있다.
도 1에서는 도시하지 않았지만, 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 예측기(110) 내에 인트라 예측(Intra Prediction)을 위한 인트라 예측기, 디블로킹 필터(Deblocking Filter) 등을 추가로 포함할 수 있다. 이 경우, 감산기(120)는 입력 영상과 인트라 예측기에 의해 생성되는 예측 영상을 감산하여 잔여 영상을 생성할 수 있으며, 변환기 및 양자화기(130) 및 역 양자화기 및 역 변환기(150)는 잔여 영상에 대한 변환 및 양자화와 변환 및 양자화된 잔여 영상에 대한 역 변환 및 역 양자화을 위한 연산을 추가로 수행할 수도 있다. 또한, 부호화기(140)는 변환 및 양자화된 잔여 영상을 부호화하여 영상 부호화 데이터를 생성할 수 있으며, 이러한 데이터는 비트스트림에 포함된다. 또한, 디블로킹 필터는 복원되는 입력 영상을 디블로킹 필터링한다. 여기서, 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, 블록 경계와 매크로블록 경계에 디블로킹 필터를 적용하거나 매크로블록 경계에만 디블로킹 필터를 적용하거나 디블로킹 필터를 사용하지 않는 방법 중 하나를 선택적으로 사용할 수 있다.
도 2는 본 발명의 일 실시예에 따라 움직임 추정을 통해 움직임 벡터를 결정하는 모습을 나타낸 예시도이다.
예측기(110)는 현재 블록의 움직임 벡터를 결정하기 위해 이용할 수 있는 여러 개의 참조 픽처 내의 소정의 탐색 영역 중에서 현재 블록과 가장 유사한 블록인 참조 블록을 찾아 해당 참조 픽처를 나타내는 참조 픽처 인덱스와 참조 블록을 지시하는 움직임 벡터를 움직임 정보로서 획득함으로써 현재 블록의 움직임을 추정한다. 이와 같이 움직임 벡터를 결정하는 방법을 수학식으로 나타내면 수학식 1과 수학식 2와 같이 나타낼 수 있다.
[수학식 1]
[규칙 제26조에 의한 보정 18.07.2011] 
Figure WO-DOC-MATHS-1
[수학식 2]
[규칙 제26조에 의한 보정 18.07.2011] 
Figure WO-DOC-MATHS-2
수학식 1에서,
Figure PCTKR2011001492-appb-I000003
는 현재 블록의 움직임 벡터를 나타내는데, 움직임 벡터의 위치는 여러 개의 참조 픽처 내에서 어디에서나 존재할 수 있다.
Figure PCTKR2011001492-appb-I000004
은 원래의 현재 블록을 나타내며,
Figure PCTKR2011001492-appb-I000005
Figure PCTKR2011001492-appb-I000006
가 지시하는 참조 블록을 나타낸다.
Figure PCTKR2011001492-appb-I000007
은 두 개의 블록
Figure PCTKR2011001492-appb-I000008
Figure PCTKR2011001492-appb-I000009
간의 화소의 차이에 대한 절대값의 합을 계산하는 함수를 나타내고,
Figure PCTKR2011001492-appb-I000010
은 라그랑제 곱셈자(Lagrange Multiplier)를 나타내며,
Figure PCTKR2011001492-appb-I000011
는 예측 움직임 벡터(Predictive Motion Vector)를 나타내며,
Figure PCTKR2011001492-appb-I000012
은 참조 픽처를 나타내기 위한 색인인 참조 픽처 색인을 나타내며,
Figure PCTKR2011001492-appb-I000013
Figure PCTKR2011001492-appb-I000014
Figure PCTKR2011001492-appb-I000015
간의 차이값과
Figure PCTKR2011001492-appb-I000016
을 부호화하기 위해 소요되는 비트량을 계산하기 위한 함수를 나타내며, 함수는 mcost(MV)는
Figure PCTKR2011001492-appb-I000017
에 따른 움직임 정보를 부호화하는 데 소요되는 부호화 비용을 나타낸다. 수학식 2에서,
Figure PCTKR2011001492-appb-I000018
는 최종적으로 결정되는 현재 블록의 움직임 벡터를 나타내며,
Figure PCTKR2011001492-appb-I000019
은 움직임 탐색 영역을 나타낸다.
따라서, 예측기(110)는 여러 개의 참조 픽처의 소정의 움직임 탐색 영역
Figure PCTKR2011001492-appb-I000020
내에서 고려될 수 있는 각
Figure PCTKR2011001492-appb-I000021
에 대한 부호화 비용을 수학식 1을 이용하여 계산하고 그 중 최소의 부호화 비용을 가지는
Figure PCTKR2011001492-appb-I000022
를 수학식 2를 이용하여 찾아 현재 블록의 움직임 벡터로서 결정할 수 있다. 수학식 1에서는 부호화 비용을 율-왜곡 비용으로 계산하는 것으로 예를 들었지만, 부호화 비용은 반드시 율-왜곡 비용으로 계산되어야 하는 것은 아니며 다른 다양한 방식으로 계산될 수도 있다.
현재 블록을 부호화하는 데 소요되는 부호화 비용을 계산하는 데에는 움직임 벡터뿐만 아니라 현재 블록의 블록 모드도 영향을 준다. 블록 모드를 결정하는 방법을 수학식으로 나타내면 수학식 3과 수학식 4와 같이 나타낼 수 있다.
[수학식 3]
[규칙 제26조에 의한 보정 18.07.2011] 
Figure WO-DOC-MATHS-3
[수학식 4]
[규칙 제26조에 의한 보정 18.07.2011] 
Figure WO-DOC-MATHS-4
수학식 3에서,
Figure PCTKR2011001492-appb-I000025
,
Figure PCTKR2011001492-appb-I000026
,
Figure PCTKR2011001492-appb-I000027
,
Figure PCTKR2011001492-appb-I000028
는 각각 수학식 1을 통해 전술한 바와 동일한 것을 나타내며,
Figure PCTKR2011001492-appb-I000029
는 인터 블록 모드를 식별하기 위한 블록 모드 색인을 나타내며. S mode 는 16x16 화소 크기의 블록으로부터 4x4 화소 크기의 블록까지의 인터 블록 모드의 집합을 나타내며,
Figure PCTKR2011001492-appb-I000030
은 블록 모드
Figure PCTKR2011001492-appb-I000031
를 이용하여 현재 블록을 부호화하고 복호화하여 복원되는 복원 블록을 나타내며,
Figure PCTKR2011001492-appb-I000032
Figure PCTKR2011001492-appb-I000033
Figure PCTKR2011001492-appb-I000034
간의 화소의 제곱 오차의 합을 계산하는 함수를 나타내고,
Figure PCTKR2011001492-appb-I000035
은 블록 모드
Figure PCTKR2011001492-appb-I000036
를 이용하여 현재 블록의 잔여 블록을 변환 및 양자화하여 생성되는 양자화된 변환 계수를 나타내며, Rate(MV i , PMV, ref_idx, Coeff i )는 블록 모드
Figure PCTKR2011001492-appb-I000037
를 이용하여 현재 블록을 부호화할 때,
Figure PCTKR2011001492-appb-I000038
Figure PCTKR2011001492-appb-I000039
간의 차이값,
Figure PCTKR2011001492-appb-I000040
와 양자화된 변환 계수를 부호화하기 위해 소요되는 비트량을 계산하기 위한 함수를 나타내며, rdcost(i)는 블록 모드
Figure PCTKR2011001492-appb-I000041
를 이용하여 현재 블록을 부호화하는 데 소요되는 부호화 비용을 나타낸다. 수학식 4에서, i * 는 최종적으로 결정되는 현재 블록의 블록 모드를 나타내는 색인을 나타낸다.
따라서, 예측기(110)는 여러 개의 인터 블록 모드에 대한 부호화 비용을 수학식 3을 이용하여 계산하고 그 중 최소의 부호화 비용을 가지는 블록 모드를 나타내는 색인인 i * 를 수학식 4를 이용하여 찾음으로써 최종적인 현재 블록의 블록 모드로서 결정할 수 있다. 수학식 3에서는 부호화 비용을 율-왜곡 비용으로 계산하는 것으로 예를 들었지만, 부호화 비용은 반드시 수학식 3과 같은 율-왜곡 비용으로 계산되어야 하는 것은 아니며 다른 다양한 방식으로 계산될 수도 있다.
도 2에서는, 예측기(110)가 부호화 비용을 계산하는 것으로 설명했지만, 반드시 이에 한정되지 않고 부호화기(140)가 부호화 비용을 계산하고 계산된 부호화 비용을 예측기(110)로 전달하여 예측기(110)가 움직임 벡터를 결정할 수도 있다.
한편, 수학식 2를 통해 구해진 움직임 벡터는 예측 부호화되는데, 예측기(110) 또는 부호화기(140)는 수학식 5와 같이 움직임 벡터와 그의 예측 움직임 벡터와의 차이값인 차분 움직임 벡터를 부호화한다.
[수학식 5]
[규칙 제26조에 의한 보정 18.07.2011] 
Figure WO-DOC-MATHS-5
이때, H.264/AVC와 같은 통상적인 동영상 압축 표준에서는 정수 화소 단위, 1/2 화소 단위, 1/4 화소 단위의 해상도로 움직임 추정을 수행하여 움직임 벡터를 구하고, 구해진 움직임 벡터의 차분 움직임 벡터를 표 1에 나타낸 바와 같은 1/4 화소 단위의 배수마다의 비트 스트링(Bit String)이 할당된 코드 테이블(Code Table)을 이용하여 부호화한다.
표 1
Figure PCTKR2011001492-appb-T000001
표 1을 통해 알 수 있듯이, 통상적인 압축 표준에서는 여러 가지 해상도의 움직임 벡터를 모두 부호화하기 위해 작은 크기의 움직임 벡터를 부호화하기 위해서도 긴 코드워드들이 사용되며, 결과적으로 움직임 벡터를 부호화하여 생성되는 움직임 벡터 부호화 데이터의 크기가 커져서 압축 효율이 저하된다. 예를 들어, 차분 움직임 벡터가 (3,2)인 경우 표 1을 참조하면, '3'이 부호화되기 위해서는 코드 번호(Code Number)가 '23'인 비트스트링 '00011000'이 사용되고 '2'가 부호화되기 위해서는 코드 번호가 '15'인 비트스트링 '0001000'이 사용된다. 이와 같이 작은 크기의 움직임 벡터를 부호화하기 위해 긴 코드워드들이 사용되는 것은 1/2 화소 단위의 해상도와 1/4 화소 단위의 해상도의 움직임 벡터를 부호화하기 위한 코드워드와 정수 화소 단위의 해상도의 움직임 벡터를 부호화하기 위한 코드워드를 함께 사용하기 때문이다.
이러한 문제점을 해결하기 위해 본 발명의 일 실시예에서는 적어도 하나 이상의 움직임 벡터를 포함하는 복수 개의 움직임 벡터 해상도의 조합을 마련하고, 움직임 벡터 해상도의 조합별로 각 조합에 따른 움직임 벡터 해상도로 움직임 추정, 움직임 보상, 잔여 영상의 부호화, 움직임 벡터의 부호화를 수행하고 그에 따른 부호화 비용을 계산하여 최소의 부호화 비용을 가지는 움직임 벡터 해상도의 조합을 선택하고 선택된 움직임 벡터 해상도의 조합의 움직임 벡터 해상도에 따라 결정된 움직임 벡터를 기초로 부호화된 영상 부호화 데이터와 움직임 벡터 부호화 데이터를 포함하는 비트스트림을 생성한다.
도 3은 본 발명의 일 실시예에 따른 부호화기를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 부호화기(140)는 예측 잔여 부호화기(Predicted Residual Encoder, 310) 및 움직임 벡터 부호화기(Motion Vector Encoder, 320)를 포함하여 구성될 수 있다.
예측 잔여 부호화기(310)는 변환 및 양자화된 잔여 영상을 부호화하여 움직임 벡터 해상도의 조합별 영상 부호화 데이터를 생성한다. 즉, 예측 잔여 부호화기(310)는 변환기 및 양자화기(130)에 의해 변환 및 양자화된 잔여 영상을 부호화하는데, 움직임 벡터 해상도의 조합별로 변환 및 양자화된 잔여 영상을 부호화하므로 움직임 벡터 해상도의 조합별로 영상 부호화 데이터를 생성한다.
움직임 벡터 부호화기(320)는 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 계산하며, 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하며, 선택된 움직임 벡터 해상도의 조합에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력한다. 즉, 움직임 벡터 부호화기(320)는 예측 잔여 부호화기(310)에 의해 생성되는 움직임 벡터 해상도의 조합별 영상 부호화 데이터가 부호화되는 과정에서 예측기(110)와 예측 잔여 부호화기(310)로부터 전달되는 각종 정보를 이용하여 각 영상 부호화 데이터가 부호화되는 데 소요되는 부호화 비용을 계산하고 그를 이용하여 여러 움직임 벡터 해상도의 조합 중 하나의 움직임 벡터 해상도의 조합을 선택하며, 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력한다. 이때, 움직임 벡터 부호화기(320)는 움직임 벡터 해상도의 조합별 부호화 비용을 계산할 때 이미 각 움직임 벡터 해상도의 조합별로 결정되는 움직임 벡터를 부호화하고 각 움직임 벡터 해상도의 조합별 움직임 벡터 부호화 데이터를 생성하므로, 움직임 벡터 해상도의 조합을 선택한 후 추가로 다시 움직임 벡터 부호화 데이터를 생성하지 않고 기 생성된 움직임 벡터 부호화 데이터를 출력할 수 있다. 움직임 벡터 부호화기(320)에 대해서는 도 4를 통해 상세히 설명한다.
도 4는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 간략하게 나타낸 블록 구성도이다.
*본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치는 도 3을 통해 전술한 부호화기(140)에서는 움직임 벡터 부호화기(320)로서 구현될 수 있다. 이하에서는 설명의 편의를 위해 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 움직임 벡터 부호화기(320)라 칭한다.
움직임 벡터 부호화기(320)는 부호화 비용 계산기(Coding Cost Calculator, 410), 움직임 정보 부호화기(Motion Information Encoder, 430) 및 해상도 조합 결정기(Resolution Combination Determiner, 420)를 포함하여 구성될 수 있다.
부호화 비용 계산기(410)는 적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별로 각 움직임 벡터 해상도의 조합의 움직임 벡터 해상도에 따른 부호화 비용을 계산한다. 즉, 부호화 비용 계산기(410)는 움직임 벡터 해상도의 조합별로 움직임 벡터 해상도에 따라 결정되는 움직임 벡터와 참조 픽처 색인을 포함하는 움직임 정보를 이용하여 생성되는 예측 영상과 입력 영상의 차이인 잔여 영상을 부호화하는 데 소요되는 비용을 계산한다.
여기서, 움직임 벡터 해상도는 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도 중 하나 이상을 포함할 수 있으나, 이에 한정되지 않고 더욱 작은 화소 단위의 해상도를 포함할 수도 있다. 또한, 움직임 벡터 해상도의 조합이란 움직임 추정에 이용 가능한 움직임 벡터 해상도들 중 적어도 하나 이상을 포함하고 있는 그룹을 의미하는 것이다. 이용 가능한 움직임 벡터 해상도란 영상 부호화 장치(100)와 후술할 영상 복호화 장치 또는 움직임 벡터 부호화 장치와 후술할 움직임 벡터 복호화 장치에서 움직임 벡터 해상도로 이용하기로 미리 약속하여 설정한 움직임 벡터 해상도를 말한다. 예를 들어, 영상 부호화 장치와 영상 복호화 장치가 정수와 1/2 화소 단위의 움직임 벡터 해상도만을 이용하기로 미리 약속한 경우 이용 가능한 움직임 벡터 해상도는 정수와 1/2 화소 단위의 움직임 벡터 해상도가 되며, 영상 부호화 장치와 영상 복호화 장치가 정수, 1/2 화소, 1/4 화소, 1/8 화소 단위의 움직임 벡터 해상도만을 이용하기로 미리 약속한 경우 이용 가능한 움직임 벡터 해상도는 정수, 1/2 화소, 1/4 화도, 1/8 화소 단위의 움직임 벡터 해상도가 이용 가능한 움직임 벡터 해상도가 된다.
일 예로, 이용 가능한 움직임 벡터 해상도가 전술한 바와 같이 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도라고 가정하면, 움직임 벡터 해상도의 조합은 표 2에 예시적으로 나타낸 바와 같이 움직임 벡터 해상도의 제 1 조합 내지 제 15 조합의 15 가지로 구성될 수 있다. 다만, 이러한 움직임 벡터 해상도의 종류와 그 조합은 예시적인 것일 뿐, 움직임 벡터 해상도의 종류는 더 많은 개수 또는 더 적은 개수가 이용될 수 있으며, 움직임 벡터 해상도의 조합도 더욱 다양하게 구성될 수 있다. 예를 들어, 전술한 예시와 같이 움직임 벡터 해상도의 종류가 4개가 이용되지만 그에 따른 움직임 벡터 해상도의 조합은 10가지로 구성될 수도 있으며, 움직임 벡터 해상도의 종류가 2개만이 이용될 수도 있고 그 경우 움직임 벡터 해상도의 조합은 3가지, 2가지 등으로 구성될 수도 있다.
표 2
Figure PCTKR2011001492-appb-T000002
따라서, 전술한 일 예의 경우, 부호화 비용 계산기(410)는 움직임 벡터 해상도의 제 1 조합에 포함된 정수 화소 단위의 해상도로 움직임을 추정하여 결정되는 움직임 벡터를 이용하여 입력 영상을 예측 부호화할 때 소요되는 부호화 비용을 제 1 조합의 부호화 비용으로 계산하고, 움직임 벡터 해상도의 제 2 조합에 포함된 1/2 화소 단위의 해상도로 움직임을 추정하여 결정되는 움직임 벡터를 이용하여 입력 영상을 예측 부호화할 때 소요되는 부호화 비용을 제 2 조합의 부호화 비용으로 계산하며, 이와 같은 방식으로 제 3 조합 내지 제 14 조합의 부호화 비용을 계산하며, 움직임 벡터 해상도의 제 15 조합에 포함된 정수, 1/2, 1/4, 1/8 화소 단위의 해상도로 움직임을 추정하여 결정되는 움직임 벡터를 이용하여 입력 영상을 예측 부호화할 때 소요되는 부호화 비용을 제 15 조합의 부호화 비용으로 계산한다.
또한, 부호화 비용 계산기(410)는 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 블록마다의 움직임 벡터와 블록 모드 중 하나 이상을 결정하고 결정된 움직임 벡터와 결정된 블록 모드 중 하나 이상을 이용하여 부호화 비용을 계산할 수 있다.
또한, 부호화 비용 계산기(410)는 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 다른 코드 테이블을 이용하여 움직임 벡터를 부호화하여 부호화 비용을 계산할 수 있다. 즉, 부호화 비용 계산기(410)는 각 움직임 벡터 해상도의 조합별로 다른 코드 테이블을 미리 저장하고 그를 이용하여 각 움직임 벡터 해상도의 조합별 움직임 벡터 해상도의 움직임 벡터를 부호화할 수 있다. 여기서, 각 움직임 벡터 해상도의 조합별로 다른 코드 테이블이란 각 움직임 벡터 해상도의 조합계 내의 움직임 벡터 해상도의 움직임 벡터만을 고려하여 부호화하기 위한 코드 테이블을 말한다.
따라서, 전술한 일 예의 경우, 움직임 벡터 해상도의 제 1 조합에 대한 코드 테이블은, 표 3에 예시적으로 나타낸 바와 같이, 정수 화소 단위의 해상도의 움직임 벡터만을 고려하여 부호화하기 위한 코드 테이블이고, 움직임 벡터 해상도의 제 12 조합에 대한 코드 테이블은, 표 4에 예시적으로 나타낸 바와 같이, 정수, 1/2, 1/8 화소 단위의 해상도의 움직임 벡터만을 고려하여 부호화하기 위한 코드 테이블이다.
표 3
Figure PCTKR2011001492-appb-T000003
표 4
Figure PCTKR2011001492-appb-T000004
따라서, 본 발명의 일 실시예에서는 전술한 바와 같이, 움직임 벡터 해상도의 조합별로 결정되는 움직임 벡터를 부호화하기 위한 코드 테이블을 각 움직임 벡터 해상도의 조합에 적합하도록 서로 다르게 구성하고, 선택되는 움직임 벡터 해상도의 조합에 따라 적응적으로 움직임 벡터 부호화에 이용되는 코드 테이블을 결정하여 이용함으로써, 움직임 벡터를 효율적으로 부호화하여 압축 효율을 향상시킬 수 있다.
해상도 조합 결정기(420)는 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택한다. 즉, 해상도 조합 결정기(420)는 부호화 비용 계산기(410)에 의해 계산되는 움직임 벡터 해상도의 조합별 부호화 비용을 서로 비교하여 가장 작은 부호화 비용을 가지는 움직임 벡터 해상도의 조합을 선택한다. 여기서, 해상도 조합 결정기(420)는 블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 부호화 단위마다 움직임 벡터 해상도의 조합을 선택할 수 있다.
이때, 해상도 조합 결정기(420)는 움직임 벡터 해상도의 조합을 수학식 6과 같은 방법으로 선택할 수 있다.
[수학식 6]
[규칙 제26조에 의한 보정 18.07.2011] 
Figure WO-DOC-MATHS-6
수학식 6에서, k는 움직임 벡터 해상도의 조합을 식별하기 위한 해상도 조합 색인을 나타낸다. RDcost(k)는 해상도 조합 색인 k에 해당하는 움직임 벡터 해상도의 조합을 이용하여 부호화 단위 내의 모든 블록을 부호화하였을 때 발생하는 부호화 비용으로서 율-왜곡 비용을 나타낸다. k * 는 해상도 조합 결정기(420)에 의해 선택되는 움직임 벡터 해상도의 조합을 식별하기 위한 해상도 조합 색인을 나타낸다. 이와 같이 해상도 조합 결정기(420)에 의해 선택되는 움직임 벡터 해상도의 조합을 식별하기 위한 해상도 조합 색인 k * 가 움직임 정보 부호화기(430)에 의해 부호화되어 해상도 조합 색인 데이터로서 생성되면 비트스트림에 포함된다.
움직임 정보 부호화기(430)는 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력한다. 즉, 움직임 정보 부호화기(430)는 해상도 조합 결정기(420)에 의해 움직임 벡터 해상도의 조합이 선택되면, 부호화 비용 계산기(410)에서 부호화 비용을 계산하는 과정에서 미리 부호화되어 생성된 움직임 벡터 부호화 데이터 중에서 해상도 조합 결정기(420)에 의해 선택된 움직임 벡터 해상도의 조합의 움직임 벡터 해상도에 따라 결정된 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력한다. 이때, 부호화 비용과 움직임 벡터 해상도의 조합은 각각 슬라이스와 같은 소정의 부호화 단위마다 계산되고 선택되므로, 움직임 정보 부호화기(430)에서 출력하는 움직임 벡터 부호화 데이터도 슬라이스와 같은 소정의 부호화 단위 내의 블록마다 생성된 움직임 벡터 부호화 데이터가 될 수 있다. 또한, 움직임 벡터 부호화 데이터에는 움직임 벡터뿐만 아니라 참조 픽처 색인을 추가로 포함할 수 있다.
이때, 움직임 정보 부호화기(430)는 선택된 움직임 벡터 해상도의 조합을 나타내는 해상도 조합 색인(Resolution Combination Index)을 부호화하여 해상도 조합 색인 데이터를 출력할 수 있다. 해상도 조합 색인 데이터는 비트스트림에 추가로 포함되며, 움직임 벡터 복호화 장치 또는 영상 복호화 장치에서 움직임 벡터 해상도의 조합을 식별하는 데 활용된다.
본 발명의 일 실시예에서는 이용 가능한 움직임 벡터 해상도 중에서 소정의 부호화 단위마다 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도가 소정의 부호화 단위 내의 일부의 영역 또는 블록에서 최적의 부호화 효율을 발생시키는 경우를 고려하기 위해, 각 영역 또는 블록을 부호화할 때마다 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도를 고려하여 움직임을 추정함으로써 더욱 효율적인 움직임 벡터 해상도의 움직임 벡터를 결정한다. 이를 위해, 본 발명의 일 실시예에서는 템플릿 매칭을 이용할 수 있다.
이하에서는 도 5 및 도 6을 통해, 이용 가능한 움직임 벡터 해상도 중에서 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도를 고려한 움직임 추정을 템플릿 매칭을 이용하여 수행하는 과정에 대해 설명한다.
도 5는 본 발명의 일 실시예에 따라 템플릿 매칭을 이용하여 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하는 과정을 설명하기 위한 예시도이다.
도 5에 도시한 바와 같이, 예측기(110)는 이용 가능한 움직임 벡터 해상도 중에서 부호화기(140)에 의해 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 참조 픽처에서 현재 블록의 인접 화소와 가장 유사한 인접 화소를 가지는 참조 블록을 찾아 참조 블록을 지시하는 움직임 벡터를 구한다. 이때, 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 템플릿 매칭을 이용하여 움직임을 추정하기 위한 탐색 영역은 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터의 주변 영역으로 제한될 수 있다. 여기서, 움직임 벡터의 주변 영역이란 움직임 벡터가 지시하는 화소를 중심으로 상하좌우로 동일하게 또는 다르게 소정 개수의 화소만큼 떨어진 영역일 수 있다.
도 6은 본 발명의 일 실시예에 따라 움직임 벡터를 선택하는 과정을 설명하기 위한 예시도이다.
6A는 부호화기(140)에 의해 선택되는 움직임 벡터 해상도의 조합에 따라 결정된 움직임 벡터에 대한 부호화 비용을 계산하는 과정을 나타낸 것이고, 6B는 이용 가능한 움직임 벡터 해상도 중에서 부호화기(140)에 의해 선택되는 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 템플릿 매칭을 이용하여 결정되는 움직임 벡터에 대한 부호화 비용을 계산하는 과정을 나타낸 것이다. 6A와 6B에 나타낸 방법으로 계산되는 부호화 비용은 각각 수학식 7과 수학식 8을 이용하여 계산될 수 있다.
[수학식 7]
[규칙 제26조에 의한 보정 18.07.2011] 
Figure WO-DOC-MATHS-7
[수학식 8]
[규칙 제26조에 의한 보정 18.07.2011] 
Figure WO-DOC-MATHS-8
수학식 7과 수학식 8에서,
Figure PCTKR2011001492-appb-I000046
은 현재 블록의 인접 화소를 나타내는 현재 템플릿을 나타내며,
Figure PCTKR2011001492-appb-I000047
은 해상도 조합 결정기(420)에 의해 선택되는 움직임 벡터 해상도에 따라 결정되는 움직임 벡터
Figure PCTKR2011001492-appb-I000048
가 지시하는 참조 블록의 인접 화소를 나타내는 참조 템플릿을 나타내며,
Figure PCTKR2011001492-appb-I000049
은 현재 템플릿과 참조 템플릿에 포함되는 화소의 개수를 나타내며,
Figure PCTKR2011001492-appb-I000050
은 해상도 조합 결정기(420)에 의해 선택되는 움직임 벡터 해상도에 포함되지 않은 움직임 벡터 해상도로 템플릿 매칭을 이용하여 결정되는 움직임 벡터
Figure PCTKR2011001492-appb-I000051
가 지시하는 참조 블록의 인접 화소를 나타내는 참조 템플릿을 나타낸다. 수학식 8과 수학식 9에서는 부호화 비용으로서 왜곡 비용을 예를 들었지만, 부호화 비용은 반드시 이에 한정되지 않고 다양한 방식으로 계산될 수 있다.
예측기(110)는 수학식 7과 수학식 8을 이용하여 계산되는 각 SAD 중에서 작은 SAD를 가지는 움직임 벡터가 부호화 효율이 더욱 좋으므로, 해당 움직임 벡터를 이용하여 블록의 움직임을 보상하여 예측 블록을 출력한다. 이때, 예측기(110)는 부호화 단위 내의 각 블록에 대해 움직임 벡터를 선택할 수 있다. 따라서, 예측기(110)는 각 블록에 대해 선택된 움직임 벡터가 템플릿 매칭을 이용하여 추가로 추정한 움직임 벡터인 경우에만 추정한 움직임 벡터를 이용하여 움직임이 보상된 예측 블록을 출력할 수 있으며, 기 선택된 움직임 벡터 해상도의 조합에 따라 결정된 움직임 벡터가 선택된 경우에는 예측 블록을 추가로 생성하지 않는다.
도 5 및 도 6을 통해 전술한 바와 같이, 이용 가능한 움직임 벡터 해상도 중 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 추정된 움직임 벡터에 대해서는 추가로 부호화하거나 그를 식별하기 위한 추가적인 정보 또는 어떠한 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터가 비트스트림에 포함되었는지를 나타내는 정보를 부호화하지 않아도 된다. 영상 복호화 장치에서는 영상 부호화 장치(100)와 마찬가지로 도 5 및 도 6을 통해 전술한 과정을 동일하게 수행할 수 있기 때문이다.
도 7은 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법에 따르면, 움직임 벡터 부호화기(320)는 적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따른 부호화 비용을 계산하고(S710), 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하며(S720), 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력한다(S730).
여기서, 움직임 벡터 해상도는 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도 중 하나 이상을 포함할 수 있다.
또한, 움직임 벡터 부호화기(320)는 선택된 움직임 벡터 해상도의 조합을 나타내는 해상도 조합 색인을 부호화하여 해상도 조합 색인 데이터를 추가로 출력할 수 있다.
단계 S720에서, 움직임 벡터 부호화기(320)는 블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 부호화 단위마다 움직임 벡터 해상도의 조합을 선택할 수 있으며, 움직임 벡터 해상도의 조합별로 계산된 부호화 비용 중 가장 작은 부호화 비용을 가지는 움직임 벡터 해상도의 조합을 움직임 벡터 해상도의 조합으로서 선택할 수 있다.
도 8은 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(100)는 적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 영상의 움직임 벡터를 결정하고(S810), 결정되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성하며(S820), 영상과 예측 영상을 감산하여 잔여 영상을 생성하며(S830), 잔여 영상을 변환 및 양자화하며(S840), 변환 및 양자화된 잔여 영상을 부호화하여 움직임 벡터 해상도의 조합별 영상 부호화 데이터를 생성하며(S850), 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 계산하며(S860), 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하며(S870), 선택된 움직임 벡터 해상도의 조합에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성한다(S880).
단계 S880에서, 영상 부호화 장치(100)는 이용 가능한 움직임 벡터 해상도 중에서 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하고, 추정된 움직임 벡터 해상도의 움직임 벡터를 이용하여 영상을 예측 부호화하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성할 수 있다. 이때, 영상 부호화 장치(100)는 템플릿 매칭을 이용하여 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정할 수 있으며, 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터에 따라 영상을 예측 부호화하는 데 소요되는 부호화 비용과 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터에 따라 영상을 예측 부호화하는 데 소요되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성할 수 있다.
도 9는 본 발명의 일 실시예에 따른 영상 부호화 방법이 구현되는 다른 예를 설명하기 위한 순서도이다.
단계 S910 내지 단계 S970은 도 8을 통해 전술한 단계 S810 내지 단계 S870과 동일 또는 유사하므로 상세한 설명은 생략한다.
단계 S970 이후에, 영상 부호화 장치(100)는 이용 가능한 움직임 벡터 해상도 중에서 단계 S970에서 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도와 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터를 기초로 움직임 추정을 위한 탐색 영역을 결정한다(S980). 예를 들어, 단계 S870에서 정수, 1/2, 1/8 화소 단위의 움직임 벡터 해상도를 포함하는 움직임 벡터 해상도의 조합이 선택되었다면, 이용 가능한 움직임 벡터 해상도 중에서 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도는 1/4 화소 단위의 움직임 벡터 해상도가 된다. 이때, 영상 부호화 장치(100)는 선택된 움직임 벡터 해상도의 조합에 따라 결정된 움직임 벡터의 주변 영역으로 추가적인 움직임 추정을 위한 탐색 영역을 제한하여 설정한다.
또한, 영상 부호화 장치(100)는 단계 S980에서 결정된 탐색 영역에서 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 템플릿 매칭을 이용하여 움직임 추정을 수행함으로써 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 결정한다(S990). 즉, 영상 부호화 장치(100)는 도 5를 통해 전술한 바와 같이, 템플릿 매칭을 이용하여 1/4 화소 단위의 움직임 벡터 해상도로 슬라이스 내의 각 블록에 대한 움직임을 추가로 추정하여 1/4 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 결정한다. 이때, 영상 부호화 장치(100)는 도 6을 통해 전술한 바와 같이, 단계 S970에서 선택된 움직임 벡터 해상도의 조합에 따라 결정된 움직임 벡터와 단계 S990에서 템플릿 매칭을 이용하여 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 움직임 추정을 수행하여 결정된 움직임 벡터 중 부호화 효율이 좋은 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 출력할 수 있다.
*도 7 내지 도 9를 통해 전술한 각 단계는 모두 반드시 수행되어야 하는 것은 아니며, 구현 방식이나 필요에 따라 일부의 단계가 선택적으로 생략되거나 추가될 수도 있다. 또한, 각 단계의 순서도 반드시 도시된 바와 같이 정해지는 것은 아니며, 일부 또는 전부의 단계의 순서가 변경되거나 심지어는 병행적으로 수행될 수도 있다.
도 10은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치(1000)는 복호화기(Decoder, 1010), 역 양자화기 및 역 변환기(1020), 예측기(1030), 가산기(1040) 및 참조 픽처 메모리(1050)를 포함하여 구성될 수 있다.
복호화기(1010)는 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원한다. 즉, 복호화기(1010)는 비트스트림으로부터 해상도 조합 색인 데이터, 움직임 벡터 부호화 데이터 및 영상 부호화 데이터를 각각 추출하고 복호화하여 해상도 조합 색인, 움직임 벡터와 변환 및 양자화된 잔여 영상을 복원한다. 이때, 복호화기(1010)는 복원되는 해상도 조합 색인이 나타내는 움직임 벡터 해상도의 조합에 의해 식별되는 코드 테이블을 이용하여 움직임 벡터 부호화 데이터를 복호화한다. 복호화기(1010)는 엔트로피 부호화와 같은 부호화 기술을 이용하여 복호화할 수 있으며, 도 1을 통해 전술한 부호화기(140)가 부호화하는 과정을 역으로 수행하여 복호화할 수 있다.
역 양자화기 및 역 변환기(1020)는 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원한다. 즉, 역 양자화기 및 역 변환기(1020)는 복호화기(1010)에 의해 전달되는 변환 및 양자화된 잔여 영상의 양자화된 변환 계수를 역 양자화 및 역 변환하여 잔여 신호를 가지는 잔여 영상을 복원한다. 이때, 역 양자화기 및 역 변환기(1020)는 도 1을 통해 전술한 변환기 및 양자화기(130)가 변환 및 양자화하는 과정을 역으로 수행하여 역 양자화 및 역 변환할 수 있다. 여기서, 복원되는 잔여 영상은 여러 잔여 블록을 포함하는 소정의 부호화 단위 내의 영상으로서, 부호화 단위의 영상은 블록, 슬라이스, 픽처, 픽처 그룹 등 다양한 영상일 수 있다.
예측기(1030)는 복원되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성한다. 즉, 예측기(1030)는 복호화기(1010)에 의해 복원되는 움직임 벡터를 이용하여 부호화하고자 하는 블록들의 움직임을 보상하여 예측 블록을 생성하는데, 예측 블록들이 소정의 부호화 단위로 모여 예측 영상을 구성한다.
또한, 예측기(1030)는 복호화기(1010)에 의해 복원되는 움직임 벡터가 아니라 이용 가능한 움직임 벡터 해상도 중 복호화기(1010)에 의해 복원되는 해상도 조합 색인이 나타내는 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 움직임 벡터를 추정하고, 추정된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 이용하여 예측 영상을 생성할 수 있다. 여기서, 예측기(1030)는 복호화기(1010)에 의해 복원되는 움직임 벡터를 이용하여 계산되는 부호화 비용과 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 추정되는 움직임 벡터를 이용하여 계산되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 예측 영상을 생성할 수 있다. 이때, 예측기(1030)는 템플릿 매칭을 이용하여 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정할 수 있다.
가산기(1040)는 잔여 영상과 예측 영상을 가산하여 영상을 복원한다. 즉, 가산기(1040)는 역 양자화기 및 역 변환기(1020)에 의해 복원되는 잔여 영상과 예측기(1030)에 의해 생성되는 예측 영상을 가산하여 영상을 복원한다.
가산기(1040)에 의해 복원되는 영상은 픽처 단위로 누적되어 복원 영상으로서 출력될 수 있으며, 참조 픽처 메모리(1050)에 저장되어 예측기(1030)가 다음 영상을 예측하는 데 활용될 수 있다.
도 10에서는 도시하지 않았지만, 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치(1000)는 인트라 예측을 위한 인트라 예측기, 복원된 현재 블록을 디블로킹 필터링(Deblocking Filtering)하는 디블록킹 필터기 등을 추가로 포함할 수 있다.
도 11은 본 발명의 일 실시예에 따른 복호화기를 간략하게 나타낸 블록 구성도이다.
복호화기(1010)는 움직임 벡터 복호화기(1110) 및 예측 잔여 복호화기(1120)를 포함하여 구성될 수 있다.
움직임 벡터 복호화기(1110)는 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원한다. 움직임 벡터 복호화기(1110)에 대해서는 도 12를 통해 상세히 설명한다.
예측 잔여 복호화기(1120)는 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원한다.
도 12는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치는 도 11을 통해 전술한 복호화기(1010)에서는 움직임 벡터 복호화기(1110)로서 구현될 수 있다. 이하에서는 설명의 편의를 위해 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 움직임 벡터 복호화기(1110)라 칭한다.
움직임 벡터 복호화기(1110)는 해상도 조합 복원기(Resolution Combination Reconstructor, 1210) 및 움직임 벡터 복원기(Motion Vector Reconstructor, 1220)를 포함하여 구성될 수 있다.
해상도 조합 복원기(1210)는 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 움직임 벡터 해상도의 조합을 복원한다. 즉, 해상도 조합 복원기(1210)는 비트스트림으로부터 해상도 조합 색인 데이터를 추출하고 복호화하여 해상도 조합 색인을 복원하고 복원되는 해상도 조합 색인이 나타내는 움직임 벡터 해상도의 조합을 복원한다. 이때, 해상도 조합 복원기(1210)는 비트스트림의 블록 헤더, 슬라이스 헤더, 픽처 헤더 등 소정의 부호화 단위의 헤더에서 해상도 제한 색인 데이터를 추출할 수 있다. 복원되는 움직임 벡터 해상도의 조합은 소정의 부호화 단위의 영상 내의 모든 블록에 대한 움직임 벡터 해상도의 조합에 대한 정보를 가지고 있다. 예를 들어, 움직임 벡터 해상도의 조합이 표 2에 나타낸 움직임 벡터 해상도의 제 5 조합이라고 가정하면, 소정의 부호화 단위 내의 각 블록의 움직임 벡터는 정수 화소 또는 1/2 화소 단위의 움직임 벡터 해상도만을 가진다.
움직임 벡터 복원기(1220)는 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원한다. 즉, 움직임 벡터 복원기(1220)는 비트스트림으로부터 움직임 벡터 부호화 데이터를 추출하고 복호화하여 소정의 부호화 단위 내의 모든 블록의 움직임 벡터를 복원하는데, 해상도 조합 복원기(1210)에 의해 복원되는 움직임 벡터 해상도의 조합에 의해 식별되는 코드 데이블을 이용하여 움직임 벡터 부호화 데이터를 복호화할 수 있다. 예를 들어, 복원된 움직임 벡터 해상도의 조합이 움직임 벡터 해상도의 제 1 조합이라고 가정하면, 표 3을 통해 예시적으로 나타낸 코드 테이블을 이용하여 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원할 수 있다. 이를 위해, 움직임 벡터 복원기(1320)는 움직임 벡터 해상도의 조합에 따라 다른 코드 테이블을 미리 구비하여 저장하고 있으며, 이러한 코드 테이블은 움직임 벡터 부호화기(430) 또는 영상 부호화 장치(100)와 미리 약속하여 동일하게 생성되는 테이블이다.
도 13은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법에 따르면, 움직임 벡터 복호화기(1110)는 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 움직임 벡터 해상도의 조합을 복원하고(S1310), 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원한다(S1320).
단계 S1320에서, 움직임 벡터 복호화기(1110)는 단계 S1310에서 복원되는 움직임 벡터 해상도의 조합에 따라 다른 코드 테이블을 이용하여 움직임 벡터 부호화 데이터를 복호화할 수 있다.
도 14는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(1000)는 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하고(S1410), 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원하며(S1420), 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원하며(S1430), 복원되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성하며(S1440), 잔여 영상과 예측 영상을 가산하여 영상을 복원한다(S1450).
단계 S1440에서, 영상 복호화 장치(1000)는 단계 S1410에서 복원되는 움직임 벡터를 그대로 이용하여 예측 영상을 생성할 수도 있지만, 이용 가능한 움직임 벡터 해상도 중에서 단계 S1410에서 복원되는 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하고, 단계 S1410에서 복원되는 움직임 벡터를 이용하여 계산되는 부호화 비용과 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 추정되는 움직임 벡터를 이용하여 계산되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 예측 영상을 생성할 수도 있다. 이때, 영상 복호화 장치(1000)는 템플릿 매칭을 이용하여 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정할 수 있다.
도 13 및 도 14를 통해 전술한 각 단계는 모두 반드시 수행되어야 하는 것은 아니며, 일부의 단계가 선택적으로 생략되거나 추가될 수도 있다. 또한, 각 단계의 순서도 반드시 도시된 바와 같이 정해지는 것은 아니며, 일부 또는 전부의 단계의 순서가 변경되거나 심지어는 병행적으로 수행될 수도 있다.
이상에서 전술한 바와 같이, 본 발명의 일 실시예에 따르면, 영상을 부호화할 때 슬라이스 등과 같은 소정의 부호화 단위의 영상 내의 블록들에 대해 효율적인 움직임 벡터의 해상도의 조합을 결정하고 움직임 벡터 해상도의 조합에 적합한 코드 테이블을 이용하여 움직임 벡터를 부호화할 수 있으므로, 움직임 벡터를 부호화하는 데 소요되는 비트량을 줄일 수 있으며 결과적으로 영상의 압축 효율을 향상시킬 수 있다.
이뿐만 아니라, 본 발명의 일 실시예에 따르면, 영상 부호화 장치(100)와 영상 복호화 장치(1000)가 모두 동일하게 수행할 수 있는 템플릿 매칭과 같은 움직임 추정 기술을 통해, 이용 가능한 움직임 벡터 해상도 중에서 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도로 추가적인 움직임 추정을 수행하여 다양한 움직임 벡터 해상도의 움직임 벡터를 이용하여 영상을 부호화할 수 있기 때문에 예측의 정확도를 높여 잔여 신호의 발생을 억제할 수 있을 뿐만 아니라, 추가적인 움직임 추정을 통해 결정되는 움직임 벡터 해상도의 움직임 벡터를 추가적으로 부호화할 필요가 없으므로 영상의 압축 효율을 더욱 향상시킬 수 있다.
또한, 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그에 따라 움직임 벡터를 결정 및 부호화한 경우, 비트스트림에 기초하여 움직임 벡터 해상도의 조합을 상응적으로 복원하고 움직임 벡터를 복원함으로써, 영상의 복원 효율을 향상시킬 수 있다.
이상에서, 본 발명의 실시예에 따른 움직임 벡터 부호화 장치 및 움직임 벡터 복호화 장치는 각각이 독립적인 장치로 구현된 것으로 설명하였지만, 움직임 벡터 부호화 장치 및 움직임 벡터 복호화 장치는 하나의 영상 부/복호화 장치 내에 구현될 수도 있다. 이와 같은 영상 부/복호화 장치는 영상신호를 부호화하여 다른 영상처리 장치로 전송할 수 있을 뿐만 아니라, 다른 영상처리 장치로부터 부호화된 비트스트림을 수신하여 영상신호를 복원하여 재생하는 것이 가능하다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명은 분야에 적용되어, 동영상을 부호화하거나 복호화하고 그를 위한 움직임 벡터를 부호화거나 복호하하는 영상 압축 처리 분야에 적용되어, 효율적인 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그를 기초로 움직임 벡터를 결정하고 부호화함으로써 압축 효율을 향상시킬 수 있으며, 움직임 벡터의 해상도의 조합을 적응적으로 선택하고 그에 따라 움직임 벡터를 결정 및 부호화한 경우에는 비트스트림에 기초하여 움직임 벡터 해상도의 조합을 상응적으로 복원하고 움직임 벡터를 복원함으로써 영상의 복원 효율을 향상시킬 수 있는 효과를 발생하는 매우 유용한 발명이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2010년 03월 08일 한국에 출원한 특허출원번호 제 10-2010-0020439 호에 대해 미국 특허법 119(a)조(35 U.S.C § 119(a))에 따라 우선권을 주장하면, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 동일한 이유로 우선권을 주장하면 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.

Claims (32)

  1. 영상 부/복호화 장치에 있어서,
    적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별로 움직임 벡터 해상도에 따른 부호화 비용을 계산하며, 상기 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 하나의 움직임 벡터 해상도의 조합을 선택하고, 상기 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 비트스트림으로 출력하는 움직임 벡터 부호화부; 및
    상기 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 움직임 벡터 해상도의 조합을 복원하며, 상기 복원되는 움직임 벡터 해상도의 조합에 따라 상기 비트스트림으로부터 추출되는 상기 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 움직임 벡터 복호화부
    를 포함하는 것을 특징으로 하는 영상 부/복호화 장치.
  2. 움직임 벡터를 부호화하는 장치에 있어서,
    적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별로 움직임 벡터 해상도에 따른 부호화 비용을 계산하는 부호화 비용 계산기;
    상기 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 하나의 움직임 벡터 해상도의 조합을 선택하는 해상도 조합 결정기; 및
    상기 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력하는 움직임 정보 부호화기
    를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  3. 제 2 항에 있어서, 상기 움직임 정보 부호화기는,
    상기 선택된 움직임 벡터 해상도의 조합을 나타내는 해상도 조합 색인을 부호화하여 해상도 조합 색인 데이터를 출력하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  4. 제 2 항에 있어서, 상기 해상도 조합 결정기는,
    블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 부호화 단위마다 상기 움직임 벡터 해상도의 조합을 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  5. 제 2 항에 있어서, 상기 움직임 벡터 해상도는,
    정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도 중 하나 이상을 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  6. 제 2 항에 있어서, 상기 해상도 조합 결정기는,
    상기 움직임 벡터 해상도의 조합별로 계산된 부호화 비용 중 가장 작은 부호화 비용을 가지는 움직임 벡터 해상도의 조합을 상기 움직임 벡터 해상도의 조합으로서 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  7. 제 2 항에 있어서, 상기 부호화 비용 계산기는,
    상기 움직임 벡터 해상도의 조합별로 다른 코드 테이블을 이용하여 움직임 벡터를 부호화하여 상기 부호화 비용을 계산하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
  8. 영상을 부호화하는 장치에 있어서,
    적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 상기 영상의 움직임 벡터를 결정하고 상기 결정되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하는 예측기;
    상기 영상과 상기 예측 영상을 감산하여 잔여 영상을 생성하는 감산기;
    상기 잔여 영상을 변환 및 양자화하는 변환기 및 양자화기; 및
    상기 변환 및 양자화된 잔여 영상을 부호화하여 움직임 벡터 해상도의 조합별 영상 부호화 데이터를 생성하고, 상기 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 계산하며, 상기 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하며, 상기 선택된 움직임 벡터 해상도의 조합에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 출력하는 부호화기
    를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  9. 제 8 항에 있어서, 상기 부호화기는,
    이용 가능한 움직임 벡터 해상도 중에서 상기 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하며, 상기 추정된 움직임 벡터 해상도의 움직임 벡터를 이용하여 상기 영상을 예측 부호화하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 것을 특징으로 하는 영상 부호화 장치.
  10. 제 9 항에 있어서, 상기 부호화기는,
    템플릿 매칭을 이용하여 상기 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하는 것을 특징으로 하는 영상 부호화 장치.
  11. 제 9 항에 있어서, 상기 부호화기는,
    상기 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터에 따라 상기 영상을 예측 부호화하는 데 소요되는 부호화 비용과 상기 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터에 따라 상기 영상을 예측 부호화하는 데 소요되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 것을 특징으로 하는 영상 부호화 장치.
  12. 움직임 벡터를 복호화하는 장치에 있어서,
    비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 움직임 벡터 해상도의 조합을 복원하는 해상도 조합 복원기; 및
    상기 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 움직임 벡터 복원기
    를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
  13. 제 12 항에 있어서, 상기 움직임 벡터 복원기는,
    상기 복원되는 움직임 벡터 해상도의 조합에 따라 다른 코드 테이블을 이용하여 상기 움직임 벡터 부호화 데이터를 복호화하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
  14. 영상을 복호화하는 장치에 있어서,
    비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 상기 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원하는 복호화기;
    상기 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원하는 역 양자화기 및 역 변환기;
    상기 복원되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하는 예측기; 및
    상기 잔여 영상과 상기 예측 영상을 가산하여 상기 영상을 복원하는 가산기
    를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  15. 제 14 항에 있어서, 상기 복호화기는,
    상기 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 이용 가능한 움직임 벡터 해상도 중 상기 복원되는 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하고, 상기 복원되는 움직임 벡터를 이용하여 계산되는 부호화 비용과 상기 추정되는 움직임 벡터를 이용하여 계산되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 움직임 벡터로서 복원하는 것을 특징으로 하는 영상 복호화 장치.
  16. 제 15 항에 있어서, 상기 복호화기는,
    템플릿 매칭을 이용하여 상기 복원되는 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하는 것을 특징으로 하는 영상 복호화 장치.
  17. 영상 부/복호화 방법에 있어서,
    적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별로 움직임 벡터 해상도에 따른 부호화 비용을 계산하며, 상기 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 하나의 움직임 벡터 해상도의 조합을 선택하고, 상기 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 비트스트림으로 출력하는 단계; 및
    상기 비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 움직임 벡터 해상도의 조합을 복원하며, 상기 복원되는 움직임 벡터 해상도의 조합에 따라 상기 비트스트림으로부터 추출되는 상기 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 단계
    를 포함하는 것을 특징으로 하는 영상 부/복호화 방법.
  18. 영상의 움직임 벡터를 부호화하는 방법에 있어서,
    적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따른 부호화 비용을 계산하는 단계;
    상기 움직임 벡터 해상도의 조합별로 계산된 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하는 단계; 및
    상기 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력하는 단계
    를 포함하는 것을 특징으로 하는 움직임 정보 부호화 방법.
  19. 제 18 항에 있어서, 상기 움직임 벡터 부호화 방법은,
    상기 선택된 움직임 벡터 해상도의 조합을 나타내는 해상도 조합 색인을 부호화하여 해상도 조합 색인 데이터를 출력하는 단계를 추가로 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
  20. 제 18 항에 있어서, 상기 움직임 벡터 해상도의 조합을 선택하는 단계는,
    블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 부호화 단위마다 상기 움직임 벡터 해상도의 조합을 선택하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
  21. 제 18 항에 있어서, 상기 움직임 벡터 해상도는,
    정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도 중 하나 이상을 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
  22. 제 18 항에 있어서, 상기 움직임 벡터 해상도의 조합을 선택하는 단계는,
    상기 움직임 벡터 해상도의 조합별로 계산된 부호화 비용 중 가장 작은 부호화 비용을 가지는 움직임 벡터 해상도의 조합을 상기 움직임 벡터 해상도의 조합으로서 선택하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
  23. 제 18 항에 있어서, 상기 부호화 비용을 계산하는 단계는,
    상기 움직임 벡터 해상도의 조합별로 다른 코드 테이블을 이용하여 움직임 벡터를 부호화하여 상기 부호화 비용을 계산하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
  24. 영상을 부호화하는 방법에 있어서,
    적어도 하나 이상의 움직임 벡터 해상도를 포함하는 복수 개의 움직임 벡터 해상도의 조합별 움직임 벡터 해상도에 따라 상기 영상의 움직임 벡터를 결정하는 단계;
    상기 결정되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하는 단계;
    상기 영상과 상기 예측 영상을 감산하여 잔여 영상을 생성하는 단계;
    상기 잔여 영상을 변환 및 양자화하는 단계;
    상기 변환 및 양자화된 잔여 영상을 부호화하여 움직임 벡터 해상도의 조합별 영상 부호화 데이터를 생성하는 단계;
    상기 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 계산하는 단계;
    상기 움직임 벡터 해상도의 조합별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 조합을 선택하는 단계; 및
    상기 선택된 움직임 벡터 해상도의 조합에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  25. 제 24 항에 있어서, 상기 비트스트림을 생성하는 단계는,
    이용 가능한 움직임 벡터 해상도 중에서 상기 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하는 단계;
    상기 추정된 움직임 벡터 해상도의 움직임 벡터를 이용하여 상기 영상을 예측 부호화하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  26. 제 25 항에 있어서, 상기 움직임 벡터를 추정하는 단계는,
    템플릿 매칭을 이용하여 상기 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하는 것을 특징으로 하는 영상 부호화 방법.
  27. 제 25 항에 있어서, 상기 영상을 예측 부호화하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 단계는,
    상기 선택된 움직임 벡터 해상도의 조합에 따라 결정되는 움직임 벡터에 따라 상기 영상을 예측 부호화하는 데 소요되는 부호화 비용과 상기 선택된 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터에 따라 상기 영상을 예측 부호화하는 데 소요되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 것을 특징으로 하는 영상 부호화 방법.
  28. 움직임 벡터를 복호화하는 방법에 있어서,
    비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 움직임 벡터 해상도의 조합을 복원하는 단계; 및
    상기 복원되는 움직임 벡터 해상도의 조합에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 단계
    를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
  29. 제 28 항에 있어서, 상기 움직임 벡터를 복원하는 단계는,
    상기 복원되는 움직임 벡터 해상도의 조합에 따라 다른 코드 테이블을 이용하여 상기 움직임 벡터 부호화 데이터를 복호화하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
  30. 영상을 복호화하는 방법에 있어서,
    비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 단계;
    상기 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원하는 단계;
    상기 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원하는 단계;
    상기 복원되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하는 단계; 및
    상기 잔여 영상과 상기 예측 영상을 가산하여 상기 영상을 복원하는 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  31. 제 30 항에 있어서, 상기 움직임 벡터를 복원하는 단계는,
    비트스트림으로부터 추출되는 해상도 조합 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 조합에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 단계;
    이용 가능한 움직임 벡터 해상도 중 상기 복원되는 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하는 단계;
    상기 복원되는 움직임 벡터를 이용하여 계산되는 부호화 비용과 상기 추정되는 움직임 벡터를 이용하여 계산되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 움직임 벡터로서 복원하는 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  32. 제 31 항에 있어서, 상기 움직임 벡터를 추정하는 단계는,
    템플릿 매칭을 이용하여 상기 복원되는 움직임 벡터 해상도의 조합에 포함되지 않은 움직임 벡터 해상도의 움직임 벡터를 추정하는 것을 특징으로 하는 영상 복호화 방법.
PCT/KR2011/001492 2010-03-08 2011-03-04 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 WO2011111954A2 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/583,533 US9491480B2 (en) 2010-03-08 2011-03-04 Motion vector encoding/decoding method and apparatus using a motion vector resolution combination, and image encoding/decoding method and apparatus using same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2010-0020439 2010-03-08
KR1020100020439A KR101418104B1 (ko) 2010-03-08 2010-03-08 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
WO2011111954A2 true WO2011111954A2 (ko) 2011-09-15
WO2011111954A3 WO2011111954A3 (ko) 2012-01-05

Family

ID=44563968

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/001492 WO2011111954A2 (ko) 2010-03-08 2011-03-04 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Country Status (3)

Country Link
US (1) US9491480B2 (ko)
KR (1) KR101418104B1 (ko)
WO (1) WO2011111954A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10536701B2 (en) 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120088488A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
KR101443865B1 (ko) * 2011-11-04 2014-09-25 연세대학교 산학협력단 인터 예측 방법 및 장치
US10531113B2 (en) * 2014-10-31 2020-01-07 Samsung Electronics Co., Ltd. Method and device for encoding/decoding motion vector
EP3314894B1 (en) * 2015-06-25 2024-03-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Refinement of a low-pel resolution motion estimation vector
CN116170585A (zh) * 2017-01-16 2023-05-26 世宗大学校产学协力团 影像编码/解码方法
CN116016921A (zh) * 2017-07-07 2023-04-25 三星电子株式会社 用于对运动矢量进行编码和解码的设备和方法
WO2019093597A1 (ko) * 2017-11-09 2019-05-16 삼성전자 주식회사 움직임 벡터 해상도에 기초하여 영상을 부호화하는 장치 및 방법, 및 복호화 장치 및 방법
CN111416982A (zh) * 2019-01-04 2020-07-14 北京三星通信技术研究有限公司 对运动矢量信息进行编/解码的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040098422A (ko) * 2003-05-15 2004-11-20 이영렬 움직임 벡터 탐색 방법
KR20060004060A (ko) * 2004-07-08 2006-01-12 삼성전자주식회사 다 해상도 기반의 움직임 벡터 추정 방법과 이를 구현하기위한 프로그램이 기록된 기록 매체
KR20060069811A (ko) * 2006-05-29 2006-06-22 엘지전자 주식회사 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741648B2 (en) * 2000-11-10 2004-05-25 Nokia Corporation Apparatus, and associated method, for selecting an encoding rate by which to encode video frames of a video sequence
US7194035B2 (en) * 2003-01-08 2007-03-20 Apple Computer, Inc. Method and apparatus for improved coding mode selection
US20050123038A1 (en) * 2003-12-08 2005-06-09 Canon Kabushiki Kaisha Moving image encoding apparatus and moving image encoding method, program, and storage medium
US7362809B2 (en) * 2003-12-10 2008-04-22 Lsi Logic Corporation Computational reduction in motion estimation based on lower bound of cost function
KR20050061762A (ko) * 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
US8224102B2 (en) * 2005-04-08 2012-07-17 Agency For Science, Technology And Research Method for encoding a picture, computer program product and encoder
US8094716B1 (en) * 2005-08-25 2012-01-10 Maxim Integrated Products, Inc. Method and apparatus of adaptive lambda estimation in Lagrangian rate-distortion optimization for video coding
KR101228109B1 (ko) * 2006-07-24 2013-01-31 삼성전자주식회사 움직임 예측장치 및 방법과 이를 채용하는 영상 부호화장치및 방법
US8929448B2 (en) * 2006-12-22 2015-01-06 Sony Corporation Inter sub-mode decision process in a transcoding operation
US8265136B2 (en) * 2007-02-20 2012-09-11 Vixs Systems, Inc. Motion refinement engine for use in video encoding in accordance with a plurality of sub-pixel resolutions and methods for use therewith
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
US8902972B2 (en) * 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
ATE536048T1 (de) * 2008-06-20 2011-12-15 Dolby Lab Licensing Corp Videokomprimierung unter mehreren verzerrungsnebenbedingungen
JP2009027762A (ja) * 2008-11-07 2009-02-05 Renesas Technology Corp 動き補償画像符号化装置及び符号化方法
CN101778275B (zh) * 2009-01-09 2012-05-02 深圳市融创天下科技股份有限公司 一种自适应时间域和空间域分辨率框架的图像处理方法
US20110013692A1 (en) * 2009-03-29 2011-01-20 Cohen Robert A Adaptive Video Transcoding
US8340188B2 (en) * 2010-01-08 2012-12-25 Research In Motion Limited Method and device for motion vector estimation in video transcoding using union of search areas

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040098422A (ko) * 2003-05-15 2004-11-20 이영렬 움직임 벡터 탐색 방법
KR20060004060A (ko) * 2004-07-08 2006-01-12 삼성전자주식회사 다 해상도 기반의 움직임 벡터 추정 방법과 이를 구현하기위한 프로그램이 기록된 기록 매체
KR20060069811A (ko) * 2006-05-29 2006-06-22 엘지전자 주식회사 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10536701B2 (en) 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution

Also Published As

Publication number Publication date
KR20110101443A (ko) 2011-09-16
KR101418104B1 (ko) 2014-07-16
US9491480B2 (en) 2016-11-08
US20130070846A1 (en) 2013-03-21
WO2011111954A3 (ko) 2012-01-05

Similar Documents

Publication Publication Date Title
WO2011111954A2 (ko) 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2010050706A2 (ko) 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2010044563A2 (ko) 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
WO2013109039A1 (ko) 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2011031030A2 (ko) 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2013002549A2 (ko) 영상 부호화/복호화 방법 및 장치
WO2010038961A2 (ko) 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2013070006A1 (ko) 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
WO2012015275A2 (ko) 블록 분할예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2010114283A9 (ko) 비디오 신호 처리 방법 및 장치
WO2011062392A2 (ko) 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2012099440A2 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
WO2010120113A2 (ko) 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2013002550A2 (ko) 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치
WO2012011672A2 (ko) 확장된 스킵모드를 이용한 영상 부호화/복호화 방법 및 장치
WO2010027182A2 (ko) 서브블록 내 임의 화소를 이용한 영상 부호화/복호화 방법 및 장치
WO2013069996A1 (ko) 변환을 이용한 주파수 도메인 상의 적응적 루프 필터를 이용한 영상 부호화/복호화 방법 및 장치
WO2013077659A1 (ko) 모션 벡터의 예측 부호화/복호화 방법 및 장치
WO2012077959A2 (ko) 노이즈성분을 위한 공간영역에서의 영상 부호화/복호화 방법 및 장치
WO2012021040A2 (ko) 필터링모드 생략가능한 영상 부호화/복호화 방법 및 장치
WO2012081917A2 (ko) 움직임정보 병합을 이용한 부호움직임정보생성/움직임정보복원 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2011052990A2 (ko) 적응적인 해상도 기반의 영상 부호화/복호화 방법 및 장치
WO2011053054A9 (ko) 움직임 벡터 해상도 제한을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR20150083826A (ko) 인터 예측을 이용한 영상 복호화 방법 및 장치
WO2011025301A2 (ko) 동영상 부호화를 위한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Legal Events

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

Ref document number: 11753559

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13583533

Country of ref document: US

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 14/12/2012)

122 Ep: pct application non-entry in european phase

Ref document number: 11753559

Country of ref document: EP

Kind code of ref document: A2