WO2011053054A9 - 움직임 벡터 해상도 제한을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 - Google Patents
움직임 벡터 해상도 제한을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 Download PDFInfo
- Publication number
- WO2011053054A9 WO2011053054A9 PCT/KR2010/007548 KR2010007548W WO2011053054A9 WO 2011053054 A9 WO2011053054 A9 WO 2011053054A9 KR 2010007548 W KR2010007548 W KR 2010007548W WO 2011053054 A9 WO2011053054 A9 WO 2011053054A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- resolution
- image
- encoding
- decoding
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
Definitions
- the present invention relates to a motion vector encoding / decoding method and apparatus using a motion vector resolution limitation, and an image encoding / decoding method and apparatus using the same. More particularly, the present invention relates to a method and an apparatus for improving compression efficiency by determining and encoding a motion vector by adaptively limiting the resolution of the motion vector in encoding an image.
- 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.
- an embodiment of the present invention has a main object to improve compression efficiency by determining and encoding a motion vector by adaptively limiting the resolution of the motion vector.
- an embodiment of the present invention provides an apparatus for encoding / decoding an image, wherein the motion vector of the image is determined and determined according to the limited step-by-step motion vector resolution in which the motion vector resolution is limited step by step.
- Generate a predictive image of the image by using a motion vector, subtract, transform, and quantize the image and the predictive image, and then encode the resultant to generate image coded data for each step, and calculate encoding cost of the image coded data for each step.
- Vector resolution Video encoder for encoding the display limitations index showing a step of outputting the display limitations index data; And decoding the motion vector encoded data extracted from the bitstream in accordance with the limitation of the motion vector resolution, which is obtained by decoding the resolution limit index data extracted from the bitstream, and converting and quantized from the bitstream.
- An image decoder for restoring an image by restoring a residual image, inverse quantization and inverse transform, and generating a prediction image of the image by using the restored motion vector, and adding the residual image and the prediction image to restore the image. It provides a video encoding / decoding apparatus comprising a.
- the motion vector resolution is determined and determined according to the motion vector resolution of the step-by-step limited motion vector resolution
- a predictor for generating a predictive image of the image using the motion 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 restriction image encoding data, calculating encoding cost of the restriction phase encoding image data, and selecting a restriction level of the motion vector resolution using the encoding cost of the restriction encoding image encoding data.
- a video encoding apparatus is provided.
- the bit according to the limitation step of the motion vector resolution to be recovered by decoding the resolution limit index data extracted from the bitstream A decoder which decodes motion vector encoded data extracted from the stream to reconstruct the motion vector, and decodes the encoded video extracted from the bitstream to reconstruct 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; And an adder for reconstructing the image by adding the residual image and the predictive image.
- an embodiment of the present invention in the encoding device for a motion vector, encoding cost calculator for calculating the encoding cost according to the motion vector resolution of the step-by-step limited motion vector resolution ;
- a limiting resolution determiner which selects a limiting step of the motion vector resolution using the encoding cost calculated in the limiting step;
- a motion information encoder for encoding the motion vector coded data in which the motion vector determined according to the limiting step of the selected motion vector resolution is encoded and the resolution limit index indicating the limiting step of the selected motion vector resolution to output resolution limit index data.
- an embodiment of the present invention in the apparatus for decoding a motion vector, a limitation for restoring the motion vector resolution limitation step by decoding the resolution limitation index data extracted from the bitstream Resolution restorer; And a motion vector reconstructor for reconstructing the motion vector by decoding the motion vector encoded data extracted from the bitstream according to the limiting step of the reconstructed motion vector resolution.
- an embodiment of the present invention in the method for encoding / decoding an image, determines the motion vector of the image according to the limited step-by-step motion vector resolution in which the motion vector resolution is limited step by step. Generating a predicted image of the image by using the determined motion vector, subtracting, transforming, and quantizing the image and the predicted image, and encoding the same to generate image coded data for each step, and encoding the image coded data for each step. Calculates a cost, selects a restriction step of motion vector resolution using the encoding cost of the restriction-level image coded data, and encodes image coded data encoded using a motion vector determined according to the motion vector resolution according to the selected restriction step.
- the image encoding step by encoding the limited resolution index indicating a limiting step of the emitter which outputs a resolution of the display limitations index data; And decoding the motion vector encoded data extracted from the bitstream in accordance with the limitation of the motion vector resolution, which is obtained by decoding the resolution limit index data extracted from the bitstream, and converting and quantized from the bitstream.
- An image decoding step of restoring a residual image, inverse quantization and inverse transformation, and restoring the image, generating a predicted image of the image using the restored motion vector, and adding the residual image and the predicted image to restore the image It provides a video encoding / decoding method comprising a.
- a method of encoding an image comprising: determining a motion vector of an image according to a step-by-step motion vector resolution in which the motion vector resolution is limited step by step; 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 coded data for each step; Calculating a coding cost of the image coded data for each step; Selecting a limiting step of the motion vector resolution using the encoding cost of the video encoding data for each step; And generating a bitstream including image coded data encoded using the motion vector determined according to the motion vector resolution according to the selected limiting step and resolution limit index data indicating the limiting step of the selected motion vector resolution.
- a video encoding method is provided.
- an embodiment of the present invention to achieve another object of the present invention, in the method for decoding an image, the bit according to the limitation step of the motion vector resolution to be recovered by decoding the resolution limit index data extracted from the bitstream Reconstructing the motion vector by decoding the motion vector coded data extracted from the stream; 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.
- an embodiment of the present invention in the method for encoding a motion vector of the image, calculating the encoding cost according to the motion vector resolution of the step-by-step limited motion vector resolution ; Selecting a limiting step of the motion vector resolution using the encoding cost calculated in the limiting step; And encoding the motion vector encoded data encoded with the motion vector determined according to the limiting step of the selected motion vector resolution and the resolution limit index indicating the limiting step of the selected motion vector resolution to output resolution limit index data.
- a motion vector encoding method is provided.
- an embodiment of the present invention to achieve another object of the present invention, in the method for decoding a motion vector, the step of restoring the limit of the motion vector resolution by decoding the resolution limit index data extracted from the bitstream ; And reconstructing the motion vector by decoding the motion vector encoded data extracted from the bitstream according to the limiting step of the reconstructed motion vector resolution.
- the compression efficiency can be improved by adaptively limiting the resolution of the motion vector to determine and encode the motion vector.
- 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 an example of implementing a motion vector encoding method according to an embodiment of the present invention
- FIG. 9 is a flowchart illustrating a video encoding method according to an embodiment of the present invention.
- FIG. 10 is a flowchart for explaining another example of implementing an image encoding method according to an embodiment of the present invention.
- FIG. 11 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
- FIG. 12 is a block diagram schematically illustrating a decoder according to an embodiment of the present invention.
- FIG. 13 is a block diagram schematically illustrating a motion vector decoding apparatus according to an embodiment of the present invention.
- FIG. 14 is a flowchart illustrating a motion vector decoding method according to an embodiment of the present invention.
- 15 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.
- Computer Notebook Computer, Personal Digital Assistant (PDA), Portable Multimedia Player (PMP), PlayStation Portable (PSP), Wireless Communication Terminal (Wireless Communication Terminal), Smartphone ( It may be a user terminal such as a smart phone) or a TV, or a server terminal such as an application server or a service server, and may encode, decode, encode, or decode an image, a communication device such as a communication modem for communicating with various devices or a wired / wireless communication network.
- Various programs and data for predicting inter or intra may mean a variety of devices including a memory for storing, a microprocessor for executing and controlling a program.
- 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.
- 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.
- 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 scheme. Intra prediction coding is performed by using pixels of blocks that have been 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 in a current picture by referring to one or more past pictures or future pictures, and then generates a current block. This is a method of encoding the 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 subtractor 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 the image according to the limited step-by-step motion vector resolution in which the motion vector resolution is limited in stages, and uses the determined motion vector to predict the image.
- the motion vector and the reference frame index of the current block are estimated by estimating the motion of a block to be encoded in the predictor 110 input image (hereinafter referred to as a current block). Determining the motion information (Motion Information) including, and by using the determined motion information of the current block to compensate for the motion of the current block to generate a prediction block of the current block.
- the predictor 110 further estimates a motion vector having a motion vector resolution of a pixel unit larger than the minimum motion vector resolution according to the limitation of the motion vector resolution selected by the encoder 140, and predicts the motion vector using the estimated motion vector.
- An image can be generated.
- the predictor 110 may estimate a motion vector having a smaller motion unit resolution 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 later with reference to FIGS. 5 and 6.
- the process of determining the motion information in units of blocks of the predictor 110 and generating a prediction block is performed by a coding unit (eg, a block, a slice, a picture, and a picture group (GOP). Picture), etc., and an image obtained by collecting each prediction block generated by performing the coding unit may be generated as a prediction image.
- a coding unit eg, a block, a slice, a picture, and a picture group (GOP). Picture
- an image obtained by collecting each prediction block generated by performing the coding unit may be generated as a prediction image.
- the predictor 110 determines a motion vector by estimating the motion of each block in the slice, and generates a prediction image by collecting the prediction blocks generated using the motion vector in units of slices. can do.
- 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 step. That is, the predictor 110 determines a motion vector for each block in the input image according to the motion vector resolution for each step, generates a prediction block using the prediction vector, and generates a prediction image by collecting the generated prediction blocks. As many as the number of limiting steps of the vector resolution may be generated. In addition, when a motion vector having a motion vector resolution of a pixel unit smaller than the minimum motion vector resolution according to the selected motion vector resolution is further estimated, 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 residual image generated by the subtractor 120 may be generated as many as the number of limiting steps of the motion vector resolution.
- a prediction image is generated according to the estimated 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 the limited-level image coded data, calculates the encoding cost of the limited-step image coded data, and uses the encoding cost of the limited-step image coded data to obtain the motion vector resolution.
- a restriction step is selected, and the encoded image data is encoded using a motion vector determined according to the motion vector resolution according to the selected restriction step.
- 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 inversely quantizes and inverse transforms all the transformed and quantized residual images transmitted from the transformer and quantizer 130, but limits the motion vector resolution selected by the encoder 140. Only the residual image according to the limitation of the motion vector resolution may be reconstructed by performing inverse quantization and inverse transformation on the residual image of the predicted image generated using the motion vector determined according to the step, and transforming only the residual image.
- 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.
- MV represents a motion vector of a current block, and the position of the motion vector may exist anywhere in several reference pictures.
- org represents the original current block
- ref MV represents a reference block indicated by MV .
- SAD ( org , ref MV ) represents a function that calculates the sum of absolute values for the difference of pixels between org and ref MV
- ⁇ represents a Lagrange Multiplier
- PMV represents a predictive motion vector.
- Ref_idx represents a reference picture index, which is an index representing a reference picture
- Rate ( MV , PMV , ref_idx ) represents a function for calculating the difference between MV and PMV and the amount of bits required to encode ref_idx .
- Mcost ( MV ) represents an encoding cost required for encoding motion information according to MV.
- MV * represents a motion vector of the current block that is finally determined
- S MV represents a predetermined motion search region.
- the predictor 110 may determine a predetermined motion search region of several reference pictures.
- S MV The coding cost for each MV that can be considered within is calculated using Equation 1, and the MV having the smallest coding cost can be found using Equation 2 and determined as the motion vector of the current block.
- 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 org, ⁇ , PMV, ref_idx each represent the same as described above through Equation 1, i represents a block mode index for identifying an interblock mode , and S mode from a block of 16x16 pixel size Rec i represents a reconstructed block which is recovered by encoding and decoding the current block using block mode i , and SSD ( org , rec i ) represents org and rec i.
- MV i represents a function for calculating a pixel sum of the square error between
- Coeff i represents the quantized transform coefficients produced by the transform, and both the residual block of the current block by using the block mode
- i Rate (MV i, PMV , ref_idx , Coeff i) is and for coding the current block by using the block mode, i, calculating the bit rate required for encoding the MV and the difference value, ref_idx, and the quantized transform coefficient between PMV
- rdcost (i) represents the coding cost of encoding the current block by using the block mode, i.
- i * is 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 transfers 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.
- an embodiment of the present invention restricts the motion vector resolution stepwise to perform motion estimation, motion compensation, encoding of the residual image, and encoding of the motion vector at the limited motion vector resolution of each step.
- the cost is calculated to select a limit of motion vector resolution having a minimum encoding cost, and a bitstream including image encoded data and motion vector encoded data encoded at the selected motion vector resolution of the selected limit level is generated.
- 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 coded data for each step. 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 in the step of limiting the motion vector resolution. Generates video coded data.
- the motion vector encoder 320 calculates an encoding cost of the image coded data for each step, selects a restriction step of the motion vector resolution using the encoding cost of the image coded data for each step, and according to the motion vector resolution according to the selected restriction step.
- the motion vector encoded data obtained by encoding the determined motion vector is output. That is, the motion vector encoder 320 receives various types of information transmitted from the predictor 110 and the predictive residual encoder 310 in the process of encoding the image coded data of each step of the limitation of the motion vector resolution generated by the predictive residual encoder 310. Calculate the encoding cost for encoding each image coded data, select the motion vector resolution limit step among the motion vector resolution limit steps, and determine according to the limit level of the selected motion vector resolution.
- the motion vector encoded data obtained by encoding the motion vector to be output is output.
- the motion vector encoder 320 encodes a motion vector that is already determined by the limitation step of each motion vector resolution and generates motion vector encoded data for each restriction step when calculating the encoding cost for each restriction step of the motion vector resolution. After selecting the limit of the vector resolution, the generated motion vector encoded data may be output without generating the 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 limited resolution determiner 420.
- the encoding cost calculator 410 calculates the encoding cost according to the motion vector resolution of the step-by-step limited motion vector resolution. That is, the encoding cost calculator 410 is required to encode a 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 step. Calculate the cost.
- 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 step of limiting the motion vector resolution refers to a group formed step by step in order of increasing motion vector resolution in a set of motion vector resolutions that can be used for motion estimation.
- the first limiting step is a group containing only resolution in integer pixel units
- the second limiting step of motion vector resolution is a group including resolution in integer pixel units and resolution in 1/2 pixel units
- motion vector resolution is the resolution in integer pixel unit, 1/2 It may be a group including a resolution in units of pixels, a resolution in units of 1/4 pixels and a resolution in units of 1/8 pixels.
- the encoding cost calculator 410 predicts and encodes the input image using the motion vector determined by estimating the motion at the resolution of the integer pixel unit included in the first limiting step of the motion vector resolution.
- An input image is calculated by using the motion vector determined by calculating the encoding cost required as the encoding cost of the first constraint step and estimating the motion at a resolution of 1/2 pixel unit, which is an integer included in the second constraint stage of the motion vector resolution.
- the coding cost required for predictive coding is calculated as the coding cost of the second limiting step, and the motion is estimated using the integer, 1/2, and 1/4 pixel resolutions included in the third limiting step of the motion vector resolution.
- the encoding cost required to predict-encode the input image using the determined motion vector is calculated as the encoding cost of the third limited step.
- the encoding cost is calculated as the encoding cost of the fourth restriction stage.
- the encoding cost calculator 410 may determine at least one of a motion vector for each block and a block mode according to the motion vector resolution for each step, and calculate an encoding cost using at least one of the determined motion vector and the determined block mode. For example, the encoding cost calculator 410 may calculate the encoding cost considering the motion vector and the block mode using Equation 6.
- cost ( k ) represents the encoding cost of each step.
- Equation 6 k represents a resolution limit index for identifying a limit step of motion vector resolution.
- the considered motion vector resolution is up to 1/2 k pixel units. Therefore, in the above example, k becomes 0, 1, 2, and 3, respectively, when the resolution limit index indicates the first to fourth limit steps of the motion vector resolution.
- N MB denotes the number of blocks (macroblock or subblock in which a motion vector is determined) existing in a coding unit (eg, slice) in which a limiting step of motion vector resolution and a coding cost are respectively selected and calculated.
- i * m represents a block mode for the block in the coding unit.
- the N_MB value may have a positive integer value.
- N_MB 1, the N_MB value is a case where the limit level of the motion vector resolution is determined for every subblock.
- 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 step. That is, the encoding cost calculator 410 may store another code table in advance for each step of limiting the motion vector resolution and use the same to encode a motion vector of the motion vector resolution for each step by step.
- another code table for each step of limiting the motion vector resolution refers to a code table for encoding considering only the motion vector of the motion vector resolution within the limit step of each motion vector resolution.
- the code table for the first limiting step of the motion vector resolution is a code table for encoding considering only the motion vector having the resolution of the integer pixel unit
- the code table for the second limit step of the motion vector resolution is a code table for encoding by considering only the motion vector having the resolution of integer, 1/2 pixel unit.
- the code table for the third limiting step is a code table for encoding by considering only motion vectors of resolutions of integer, 1/2, and 1/4 pixel units.
- the code table for the fourth constraint step as exemplarily shown in Table 5, is a motion of resolution in integer, 1/2, 1/4, and 1/8 pixel units. Code table for encoding by considering only vectors.
- the code table for encoding the motion vector determined by the step of limiting the motion vector resolution is configured and used differently to be suitable for the step of limiting the motion vector resolution.
- the compression efficiency can be improved by encoding the vector efficiently.
- the limited resolution determiner 420 selects a limited step of the motion vector resolution by using the encoding cost calculated in the limited step. In other words, the limited resolution determiner 420 compares the encoding costs of the limited stages calculated by the encoding cost calculator 410 with each other and selects the restriction of the motion vector resolution having the smallest encoding cost.
- the limited resolution determiner 420 may select a limit step of the motion vector resolution for each coding unit including at least one of a block, a slice, a picture, and a picture group.
- the limited resolution determiner 420 may calculate the motion vector resolution having the smallest encoding cost among the limited step coding costs calculated by summing the coding costs for all the blocks in the coding unit as shown in Equation 6 in the step of limiting the motion vector resolution.
- the restriction step can be selected in the same manner as in Equation 7.
- Equation 7 k denotes a resolution limit index, and k * denotes a resolution limit index for identifying a limit step of the motion vector resolution selected by the limit resolution determiner 420.
- the resolution limit index k * for identifying the limit level of the motion vector resolution selected by the limited resolution determiner 420 is included in the bitstream when encoded by the motion information encoder 430 and generated as the resolution limit index data. .
- k is represented by ⁇ 0, 1, 2, 3 ⁇ , and does not necessarily mean that the value of k should have only one value of ⁇ 0, 1, 2, 3 ⁇ . Therefore, k has an integer value of 0 or more and may have one or more values.
- the motion information encoder 430 outputs motion vector encoded data obtained by encoding a motion vector determined according to a limitation step of the selected motion vector resolution. That is, when the motion vector encoder 430 selects the limit of the motion vector resolution by the limited resolution determiner 420, the motion vector coded data is generated by encoding in advance in the process of calculating the encoding cost by the encoding cost calculator 410. The motion vector encoded data obtained by encoding the motion vector determined according to the motion vector resolution of the limited step selected by the limited resolution determiner 420 is output.
- the motion vector coded data output from the motion information encoder 430 is also determined for each block in the predetermined coding unit such as a slice. It may be generated motion vector encoded data.
- the motion vector encoded data may further include a reference picture index as well as a motion vector.
- the restriction information of the motion vector resolution is determined, and a unit for encoding the information may be not limited to a slice unit but may be a small subblock unit to a large frame and an entire sequence.
- the motion information encoder 430 may output resolution restriction index data by encoding a resolution restriction index indicating a restriction level of the selected motion vector resolution.
- the resolution limit index data is additionally included in the bitstream, and used to identify the limiting step of the motion vector resolution in the motion vector decoding apparatus or the image decoding apparatus.
- 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.
- the predictor 110 is presently present in the reference picture at a motion vector resolution of a pixel unit smaller than the minimum motion vector resolution among the motion vector resolutions included in the motion vector resolution limiting step selected by the encoder 140.
- a reference block having an adjacent pixel most similar to the adjacent pixels of the block 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 of a small pixel unit may be limited to a peripheral region of the motion vector determined according to the limiting step 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 the limitation of the motion vector resolution selected by the encoder 140
- 6B illustrates a process of limiting the motion vector resolution selected by the encoder 140.
- a process of calculating a coding cost for a motion vector determined by using template matching at a motion vector resolution of a pixel unit smaller than the minimum motion vector resolution is shown.
- the coding costs calculated by the methods shown in 6A and 6B can be calculated using Equations 8 and 9, respectively.
- T org ( i ) represents a current template representing adjacent pixels of the current block
- N T denotes a pixel of the pixel included 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 the small SAD among the SADs calculated using Equations 8 and 9 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 the motion vector determined according to the limit of the motion vector resolution is selected, the prediction block is not additionally generated.
- the image coded data encoded by using additional information or any motion vector for additionally encoding or identifying the bit is encoded. It is not necessary to encode information indicating whether the stream is included. 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 the encoding cost according to the motion vector resolution in which the motion vector resolution is limited step by step (S710), A step of limiting the motion vector resolution is selected using the encoding cost (S720), and motion vector encoded data encoded by the motion vector determined according to the limit of the selected motion vector resolution 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 limit index data by encoding a resolution limit index indicating a limit step of the selected motion vector resolution.
- the motion vector encoder 320 may determine at least one of a motion vector for each block and a block mode according to the motion vector resolution for each step, and calculate a coding cost using at least one of the determined motion vector and the determined block mode.
- the coding cost can be calculated by encoding the motion vector using a different code table according to the motion vector resolution for each step.
- the motion vector encoder 320 may select a restriction step of the motion vector resolution for each coding unit including one or more of blocks, slices, pictures, and picture groups, and encode the smallest of the encoding costs calculated for each restriction step.
- the limiting step with cost can be selected as the limiting step of the motion vector resolution.
- FIG. 8 is a flowchart for explaining an example of implementing a motion vector encoding method according to an embodiment of the present invention.
- the motion vector resolution that the motion vector encoder 320 can use to determine the motion vector is resolution in integer pixels, resolution in 1/2 pixel, resolution in 1/4 pixel, and 1/8 pixel. Assuming a resolution of and coding unit is a slice, a process of encoding a motion vector is illustrated.
- the motion vector encoder 320 calculates cost (0), which is an encoding cost when encoding an image, by considering only a motion vector having a motion vector resolution of an integer pixel unit as a first limiting step of the motion vector resolution (S810). That is, the motion vector encoder 320 performs motion estimation on the motion vector resolution in integer pixel units by using Equation 1 and Equation 2 for all blocks in the slice in the input image. A motion vector is determined, and a block mode according to the motion vector determined by the motion vector resolution in units of integer pixels is determined using Equation 3 and Equation 4.
- the motion vector encoder 320 predictively encodes each block according to the determined motion vector and the block mode to generate image coded data for each block of which the motion vector resolution is limited in units of integer pixels.
- the encoding cost for each image encoded data is calculated using the, and the encoding cost for all blocks in the slice is summed to calculate the encoding cost cost (0) for the first limiting step of the motion vector resolution as shown in Equation (6).
- the motion vector encoder 320 when the motion vector encoder 320 predictively encodes each block to generate image coded data, the motion vector encoder 320 also predicts and encodes a motion vector having a motion vector resolution of an integer pixel unit. Encode using a code table.
- the motion vector encoder 320 calculates cost (1), which is an encoding cost when encoding an image, by considering only a motion vector having a motion vector resolution of an integer and 1/2 pixel unit as a second limiting step of the motion vector resolution. (S820). That is, the motion vector encoder 320 performs motion estimation on the motion vector resolutions of integer pixel units and 1/2 pixel units using Equation 1 and Equation 2 for all blocks in the slice in the input image. A motion vector having a motion vector resolution of a unit or 1/2 pixel unit is determined, and a block mode according to a motion vector determined by an integer pixel unit or a motion vector resolution of a unit of 1/2 pixel using Equations 3 and 4 Determine.
- the motion vector encoder 320 predictively encodes each block according to the determined motion vector and the block mode, and generates image coded data for each block of which the motion vector resolution is limited only in integer pixel units and 1/2 pixel units. Equation 3 and Equation 4 are used to calculate the encoding cost for each piece of image encoded data and add the encoding cost for all the blocks in the slice to calculate the encoding cost cost for the second limited step of motion vector resolution as shown in Equation 6. Calculate 1).
- the motion vector encoder 320 predictively encodes each block to generate image coded data
- the motion vector encoder 320 also predicts and encodes a motion vector having a motion vector resolution of an integer pixel unit or 1/2 pixel unit, as shown in Table 3 below. Encode using the code table for the second constraint step of.
- the motion vector encoder 320 is a third limitation step of the motion vector resolution, which is a cost cost of encoding an image by considering only a motion vector having a motion vector resolution of integer, 1/2, and 1/4 pixel units. 2) is calculated (S830). That is, the motion vector encoder 320 moves all the blocks in the slice in the input image using the equation 1 and the equation 2 at the motion vector resolution of integer pixel unit, 1/2 pixel unit and 1/4 pixel unit. By performing the estimation, a motion vector having a motion vector resolution of an integer pixel unit, 1/2 pixel unit, or 1/4 pixel unit is determined, and an integer pixel unit, 1/2 pixel unit or A block mode according to a motion vector determined by a motion vector resolution of a quarter pixel unit is determined.
- the motion vector encoder 320 predicts and encodes each block according to the determined motion vector and the block mode, so that an image of each block whose motion vector resolution is limited to an integer pixel unit, 1/2 pixel unit, and 1/4 pixel unit only. Generating encoded data, calculating encoding cost for each image encoded data using Equation 3 and Equation 4, summing the encoding cost for all blocks in the slice, and limiting the motion vector resolution as shown in Equation 6. Calculate the coding cost cost (2) for.
- the motion vector encoder 320 predictively encodes each block to generate image coded data
- the motion vector encoder 320 also predicts and encodes a motion vector having a motion vector resolution of integer pixel unit, 1/2 pixel unit, or 1/4 pixel unit. As shown in FIG. 4, encoding is performed using a code table for a third limit step of motion vector resolution.
- the motion vector encoder 320 encodes an image by encoding only a motion vector having a motion vector resolution of integer, 1/2, 1/4, and 1/8 pixel units as a fourth limiting step of the motion vector resolution.
- the cost (3) is calculated (S840). That is, the motion vector encoder 320 uses equations 1 and 2 for all blocks in the slice in the input image to be integer pixel units, 1/2 pixel units, 1/4 pixel units, and 1/8 pixel units. By performing motion estimation at a motion vector resolution of, a motion vector having a motion vector resolution of integer pixel unit, 1/2 pixel unit, 1/4 pixel unit, or 1/8 pixel unit is determined.
- a block mode according to a motion vector determined by a motion vector resolution of an integer pixel unit, 1/2 pixel unit, 1/4 pixel unit, or 1/8 pixel unit is determined.
- the motion vector encoder 320 predictively encodes each block according to the determined motion vector and the block mode, and the motion vector resolution is increased only in integer pixel units, 1/2 pixel units, 1/4 pixel units, and 1/8 pixel units.
- Generate image encoding data for each limited block calculate encoding cost for each image encoding data using equations (3) and (4), add the encoding cost for all blocks in the slice, and add the motion vector as shown in (6).
- the coding cost cost (3) for the fourth limiting step of resolution is calculated.
- the motion vector encoder 320 predictively encodes each block to generate the image coded data
- the motion vector resolution moves in the integer pixel unit, 1/2 pixel unit, 1/4 pixel unit, or 1/8 pixel unit.
- the vector is also predictively encoded using a code table for the fourth limited step of motion vector resolution, as shown in Table 5.
- the motion vector encoder 320 selects a limit step of the motion vector resolution having the smallest cost () among cost (0), cost (1), cost (2), and cost (3) (S850). That is, the motion vector encoder 320 calculates a resolution limit index corresponding to a cost having a minimum value among cost (0), cost (1), cost (2), and cost (3) calculated in steps S810 to S840. Equation 7 is used to select.
- the motion vector encoder 320 encodes the motion vector and the resolution limit index determined according to the limit of the selected motion vector resolution (S860). That is, the motion vector encoder 320 encodes the motion vector determined according to the restriction of the motion vector resolution selected in step S850 among the motion vectors determined according to the restriction step of each motion vector resolution when calculating the encoding cost in steps S810 to S840.
- the encoded motion vector encoded data is outputted, and the resolution limited index representing the limited level of the motion vector resolution selected in step S850 is encoded to output the resolution limited index data.
- restriction index data may be inserted into a block header or a slice header of the bitstream. If the coding unit is a picture other than a slice, it will be inserted into the picture header.
- steps S810 to S840 are illustrated and described as being sequentially performed, but steps S810 to S840 may be performed in a changed order or in parallel.
- FIG. 9 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 limited step-by-step motion vector resolution in which the motion vector resolution is limited step by step (S910), and determines the determined motion vector.
- Generate the coded image of the restriction stage (S950) calculate the encoding cost of the image coded data of the restriction stage (S960), and select the restriction stage of the motion vector resolution using the encoding cost of the image encoding data of the restriction stage (S970).
- Image coded using the motion vector determined according to the motion vector resolution according to the selected restriction step A bitstream including the data stream is generated (S980).
- the image encoding apparatus 100 estimates a motion vector having a motion vector resolution of a pixel unit smaller than the minimum motion vector resolution according to the limiting step of the selected motion vector resolution, and moves the estimated motion vector resolution of a small pixel unit.
- the image may be predictively encoded using a vector to generate a bitstream including encoded image encoded data.
- the image encoding apparatus 100 may estimate a motion vector having a motion vector resolution of a small pixel unit by using template matching, and predictively encode an image according to a motion vector determined according to a limitation step of the selected motion vector resolution.
- a bitstream including image encoded data encoded using a motion vector having a small encoding cost among encoding costs required to predict and encode an image according to a motion vector having a motion vector resolution of a small pixel. Can be generated.
- FIG. 10 is a flowchart for explaining another example of implementing an image encoding method according to an embodiment of the present invention.
- Steps S1010 to S1070 are the same as or similar to steps S910 to S970 described above with reference to FIG. 9, and thus a detailed description thereof will be omitted.
- the image encoding apparatus 100 determines according to the motion vector resolution of the pixel unit smaller than the minimum motion vector resolution among the motion vector resolutions within the limit of the motion vector resolution selected in step S1070 and the limit of the selected motion vector resolution.
- a search region for motion estimation is determined based on the motion vector, in step S1080. For example, in step S1070, if a limiting step of motion vector resolution including a motion vector resolution in integer pixel units and 1/2 pixel units is selected, the minimum motion vector resolution is a motion vector resolution in units of 1/2 pixel, which is the minimum. do.
- the image encoding apparatus 100 minimizes the motion vector resolution in the 1/4 pixel unit and the motion vector resolution in the 1/8 pixel unit that is smaller than the motion vector resolution in the 1/2 pixel unit.
- the resolution is determined as the motion vector resolution in pixels smaller than the vector resolution.
- step S1070 the step of limiting the motion vector resolution including the motion vector resolution of the integer pixel unit and the half pixel unit is selected. Therefore, additional motion estimation is performed to the peripheral region of the motion vector determined when the encoding cost is calculated in step S1060. Set to limit the search area.
- the image encoding apparatus 100 determines a motion vector having a smaller motion unit resolution by performing motion estimation using template matching at a motion vector resolution of a smaller pixel unit in the search area determined in operation S1080 (S1090). ). That is, as described above with reference to FIG. 5, the image encoding apparatus 100 moves a motion of each block in a slice at a motion vector resolution of 1/4 pixel unit and a motion vector resolution of 1/8 pixel unit using template matching. Is further estimated to determine a motion vector with a motion vector resolution of 1/4 pixel unit or with a motion vector resolution of 1/8 pixel unit. In this case, as described above with reference to FIG.
- the image encoding apparatus 100 uses the motion vector determined according to the limit of the motion vector resolution selected in step S1070 and the template matching in step S1090 to a motion vector resolution in small pixel units.
- a bitstream including image coded data encoded using a motion vector having good encoding efficiency among the motion vectors determined by performing motion estimation may be output.
- FIG. 11 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
- the image decoding apparatus 1100 may include a decoder 1110, an inverse quantizer and an inverse converter 1120, a predictor 1130, an adder 1140, and a reference picture memory 1150. It can be configured to include.
- the decoder 1110 reconstructs the motion vector by decoding motion vector encoded data extracted from the bitstream according to the motion vector resolution limiting step, which is obtained by decoding the resolution limit index data extracted from the bitstream, and extracting from the bitstream.
- the transformed and quantized residual images are reconstructed by decoding the encoded image encoded data. That is, the decoder 1110 extracts and decodes the resolution limited index data, the motion vector encoded data, and the image encoded data from the bitstream, respectively, to restore the resolution limited index, the motion vector, and the transformed and quantized residual images.
- the decoder 1110 decodes the motion vector encoded data by using the code table identified by the motion vector resolution limit step indicated by the reconstructed resolution limit index.
- the decoder 1110 may decode using an encoding technique such as entropy encoding.
- the decoder 1110 may reversely decode the encoder 140 described above with reference to FIG. 1 to decode.
- the inverse quantizer and inverse transformer 1120 inverse quantizes and inverse transforms the transformed and quantized residual image to reconstruct the residual image. That is, the inverse quantizer and inverse transformer 1120 inverse quantizes and inversely transforms the quantized transform coefficients of the transformed and quantized residual image transmitted by the decoder 1110 to reconstruct the residual image having the residual signal.
- the inverse quantizer and the inverse converter 1120 may perform inverse quantization and inverse transformation by performing the transformation and quantization of the converter and the quantizer 1130 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 1130 generates a predicted image of the image by using the reconstructed motion vector. That is, the predictor 1130 generates a prediction block by compensating for the motion of blocks to be encoded by using the motion vector reconstructed by the decoder 1110, and the prediction blocks are collected in a predetermined coding unit to form a prediction image. .
- the predictor 1130 is not a motion vector reconstructed by the decoder 1110, but a pixel unit smaller than the minimum motion vector resolution according to the limit of the motion vector resolution indicated by the resolution limit index reconstructed by the decoder 1110.
- a motion vector having a motion vector resolution of H may be estimated, and a prediction image may be generated using the motion vector having a motion vector resolution of a small pixel unit.
- the predictor 1130 may determine a smaller encoding cost between the encoding cost calculated using the motion vector reconstructed by the decoder 1110 and the encoding cost calculated using the motion vector estimated with the motion vector resolution of a small pixel.
- the branch may generate a prediction image by using a motion vector.
- the predictor 1130 may estimate a motion vector having a motion vector resolution of a small pixel unit by using template matching.
- the adder 1140 reconstructs the image by adding the residual image and the predicted image. That is, the adder 1140 reconstructs the image by adding the residual image reconstructed by the inverse quantizer and the inverse transformer 1120 and the predicted image generated by the predictor 1130.
- the image reconstructed by the adder 1140 may be accumulated in picture units and output as a reconstructed image.
- the image reconstructed by the adder 1140 may be stored in the reference picture memory 1150 and used by the predictor 1130 to predict the next image.
- the image decoding apparatus 1100 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. 12 is a block diagram schematically illustrating a decoder according to an embodiment of the present invention.
- the decoder 1110 may include a motion vector decoder 1210 and a predictive residual decoder 1220.
- the motion vector decoder 1210 reconstructs the motion vector by decoding the motion vector coded data extracted from the bitstream according to the limitation of the motion vector resolution, which is obtained by decoding the resolution limit index data extracted from the bitstream.
- the motion vector encoder 1210 will be described in detail with reference to FIG. 13.
- the predictive residual decoder 1220 reconstructs the transformed and quantized residual image by decoding image encoded data extracted from the bitstream.
- FIG. 13 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 1210 in the decoder 1110 described above with reference to FIG. 12.
- the motion vector decoding apparatus according to an embodiment of the present invention is called a motion vector decoder 1210.
- the motion vector decoder 1210 may include a restricted resolution reconstructor 1310 and a motion vector reconstructor 1320.
- the limited resolution decompressor 1310 decodes the resolution limited index data extracted from the bitstream to restore the limiting step of the motion vector resolution. That is, the limited resolution restorer 1310 extracts and decodes the resolution limited index data from the bitstream to restore the resolution limited index, and restores the limiting step of the motion vector resolution indicated by the reconstructed resolution limited index.
- the limited resolution reconstructor 1310 may extract the resolution limited index data from a header of a predetermined coding unit such as a block header, a slice header, a picture header, and the like of the bitstream.
- the restraining step of the reconstructed motion vector resolution has limit information of the motion vector resolution for all blocks in the image of a predetermined coding unit. For example, assuming that the limiting step of the motion vector resolution is the second step of the motion vector resolution, the motion vectors of all blocks within a predetermined coding unit have only the motion vector resolution of integer pixels or 1/2 pixel units.
- the motion vector reconstructor 1320 reconstructs the motion vector by decoding motion vector coded data extracted from the bitstream according to the limitation of the reconstructed motion vector resolution. That is, the motion vector decompressor 1320 extracts and decodes motion vector encoded data from the bitstream to reconstruct motion vectors of all blocks within a predetermined coding unit, and the motion vector resolution restored by the limited resolution decompressor 1310.
- the motion vector encoded data may be decoded using the code table identified by the restriction step of. For example, assuming that the limiting step of the motion vector resolution is the second step of the motion vector resolution, 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 includes a different code table in advance and stores the code table according to the limitation of the motion vector resolution, and the code table is previously agreed with the motion vector encoder 430 or the image encoding apparatus 100. This is the same table.
- FIG. 14 is a flowchart illustrating a motion vector decoding method according to an embodiment of the present invention.
- the motion vector decoder 1210 decodes the resolution limit index data extracted from the bitstream to restore the limit of the motion vector resolution (S1410).
- the motion vector is reconstructed by decoding the motion vector encoded data extracted from the bitstream according to the motion vector resolution limiting step (S1420).
- the motion vector decoder 1210 may decode the motion vector encoded data using another code table according to the limitation of the motion vector resolution restored in operation S1410.
- 15 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
- the image decoding apparatus 1100 is a motion vector extracted from a bitstream in accordance with a limitation step of motion vector resolution, which is reconstructed by decoding resolution limited index data extracted from a bitstream.
- Decode the encoded data to restore the motion vector (S1510) decode the image coded data extracted from the bitstream to restore the transformed and quantized residual image (S1520), and inverse quantization and inverse transformation of the transformed and quantized residual image Reconstruct the residual image (S1530), generate a predicted image of the image using the reconstructed motion vector (S1540), and reconstruct the image by adding the residual image and the predicted image (S1550).
- the image decoding apparatus 1100 may generate a prediction image by using the motion vector reconstructed in operation S1510, but the pixel smaller than the minimum motion vector resolution according to the limit of the motion vector resolution restored in operation S1510.
- a prediction image may also be generated using a motion vector having.
- the image decoding apparatus 1100 may estimate a motion vector having a motion vector resolution of a small pixel unit by using template matching.
- each step described above with reference to FIGS. 14 and 15 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.
- the motion vectors of the motion vectors when encoding an image, it is determined by limiting the resolution of motion vectors for blocks in an image of a predetermined coding unit such as blocks and slices, and limited motion vector resolution. Since the motion vectors of the motion vectors can be encoded using a code table suitable for the limited motion vector resolution, the amount of bits required to encode the motion vectors can be reduced, and consequently, the compression efficiency of the image can be improved.
- the image encoding apparatus 100 and the image decoding apparatus 1100 may perform more than a limited motion vector resolution through a motion estimation technique such as template matching that can be performed in the same manner. Since additional motion estimation can be performed at a smaller pixel-by-pixel motion vector resolution, the image can be encoded using motion vectors with more detailed motion vector resolution. Since it is not necessary to additionally encode a motion vector having a determined fine motion vector resolution, the compression efficiency of an image may be further improved.
- a motion estimation technique such as template matching
- the image encoding / decoding apparatus connects the encoded data output terminal of the image encoding apparatus 100 of FIG. 1 to the bitstream (encoding data) input terminal of the image decoding apparatus 1100 of FIG. Can be implemented.
- An image encoding / decoding apparatus determines a motion vector of the image according to a limited step-by-step motion vector resolution in which the motion vector resolution is limited step by step, and predicts the image of the image by using the determined motion vector. Generate and subtract, transform, and quantize the image and the predictive image, and then encode the image to generate the limited-level image coded data, calculate the encoding cost of the limited-step image coded data, and encode the encoded image data of the limited-step image. Selects a limiting step of the motion vector resolution using; and is a resolution limit index indicating a limiting step of the image coded data encoded using the motion vector determined according to the motion vector resolution according to the selected limiting step and the selected motion vector resolution.
- the motion vector is decoded by decoding the motion vector encoded data extracted from the bitstream according to a video encoding apparatus for encoding and outputting the resolution limited index data and the motion vector resolution, which is obtained by decoding the resolution limited index data extracted from the bitstream. And reconstructing the image by reconstructing and inversely transforming and quantizing the bitstream from the bitstream, and reconstructing the image by inverse quantization and inverse transformation.
- the prediction image of the image is generated using the reconstructed motion vector.
- an image decoder for reconstructing the image.
- an image encoder may be implemented by the image encoding apparatus 100 according to an embodiment of the present invention, and the image decoder is an image decoding apparatus according to an embodiment of the present invention. It is possible to implement (1100).
- a motion vector of the image is determined according to a limited step-by-step motion vector resolution in which the motion vector resolution is limited in stages, and the predicted image of the image is determined using the determined motion vector.
- the image encoding method comprising: encoding and outputting the display limitations index data; And decoding the motion vector encoded data extracted from the bitstream in accordance with the limitation of the motion vector resolution, which is obtained by decoding the resolution limit index data extracted from the bitstream, and converting and quantized from the bitstream.
- An image decoding step of restoring a residual image, inverse quantization and inverse transformation, and restoring the image, generating a predicted image of the image using the restored motion vector, and adding the residual image and the predicted image to restore the image It includes.
- the image encoding step may be implemented as an image encoding step according to an embodiment of the present invention
- the image decoding step is an image decoding step according to an embodiment of the present invention. It can be implemented.
- the present invention is applied to an image compression processing field that encodes or decodes a video and encodes or decodes a motion vector therefor, thereby adaptively limiting the resolution of the motion vector to thereby remove the motion vector. It is a very useful invention that produces the effect of improving the compression efficiency by determining and encoding.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
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는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도,
도 15는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 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), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다.
또한, 움직임 벡터 부호화 장치 또는 영상 부호화 장치에 의해 비트스트림으로 부호화된 움직임 벡터 또는 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(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)이라 칭함)의 움직임을 추정하여 현재 블록의 움직임 벡터(Motion Vector)와 참조 프레임 색인(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]
[수학식 2]
수학식 1에서, MV는 현재 블록의 움직임 벡터를 나타내는데, 움직임 벡터의 위치는 여러 개의 참조 픽처 내에서 어디에서나 존재할 수 있다. org는 원래의 현재 블록을 나타내며, ref
MV 는 MV가 지시하는 참조 블록을 나타낸다. SAD(org, ref
MV )는 org와 ref
MV 간의 화소의 차이에 대한 절대값의 합을 계산하는 함수를 나타내고, λ는 라그랑제 곱셈자(Lagrange Multiplier)를 나타내며, PMV는 예측 움직임 벡터(Predictive Motion Vector)를 나타내며, ref_idx는 참조 픽처를 나타내는 색인인 참조 픽처 색인을 나타내며, Rate(MV, PMV, ref_idx)는 MV와 PMV 간의 차이값과 ref_idx를 부호화하기 위해 소요되는 비트량을 계산하기 위한 함수를 나타내며, mcost(MV)는 MV에 따른 움직임 정보를 부호화하는 데 소요되는 부호화 비용을 나타낸다. 수학식 2에서, MV
* 는 최종적으로 결정되는 현재 블록의 움직임 벡터를 나타내며, S
MV 는 소정의 움직임 탐색 영역을 나타낸다.
따라서, 예측기(110)는 여러 개의 참조 픽처의 소정의 움직임 탐색 영역 S
MV
내에서 고려될 수 있는 각 MV에 대한 부호화 비용을 수학식 1을 이용하여 계산하고 그 중 최소의 부호화 비용을 가지는 MV를 수학식 2를 이용하여 찾아 현재 블록의 움직임 벡터로서 결정할 수 있다. 수학식 1에서는 부호화 비용을 율-왜곡 비용으로 계산하는 것으로 예를 들었지만, 부호화 비용은 반드시 율-왜곡 비용으로 계산되어야 하는 것은 아니며 다른 다양한 방식으로 계산될 수도 있다.
현재 블록을 부호화하는 데 소요되는 부호화 비용을 계산하는 데에는 움직임 벡터뿐만 아니라 현재 블록의 블록 모드도 영향을 준다. 블록 모드를 결정하는 방법을 수학식으로 나타내면 수학식 3과 수학식 4와 같이 나타낼 수 있다.
[수학식 3]
[수학식 4]
수학식 3에서, org,λ,
PMV,
ref_idx는 각각 수학식 1을 통해 전술한 바와 동일한 것을 나타내며, i는 인터 블록 모드를 식별하기 위한 블록 모드 색인을 나타내며, S
mode 는 16x16 화소 크기의 블록으로부터 4x4 화소 크기의 블록까지의 인터 블록 모드의 집합을 나타내며, rec
i 는 블록 모드 i를 이용하여 현재 블록을 부호화하고 복호화하여 복원되는 복원 블록을 나타내며, SSD(org, rec
i )는 org와 rec
i 간의 화소의 제곱 오차의 합을 계산하는 함수를 나타내고, Coeff
i 는 블록 모드 i를 이용하여 현재 블록의 잔여 블록을 변환 및 양자하여 생성되는 양자화된 변환 계수를 나타내며, Rate(MV
i , PMV, ref_idx, Coeff
i )는 블록 모드 i를 이용하여 현재 블록을 부호화할 때, MV와 PMV 간의 차이값, ref_idx와 양자화된 변환 계수를 부호화하기 위해 소요되는 비트량을 계산하기 위한 함수를 나타내며, rdcost(i)는 블록 모드 i를 이용하여 현재 블록을 부호화하는 데 소요되는 부호화 비용을 나타낸다. 수학식 4에서, i
* 는 최종적으로 결정되는 현재 블록의 블록 모드를 나타내는 색인이다.
따라서, 예측기(110)는 여러 개의 인터 블록 모드에 대한 부호화 비용을 수학식 3을 이용하여 계산하고 그 중 최소의 부호화 비용을 가지는 블록 모드를 나타내는 색인인 i
* 를 수학식 4를 이용하여 찾음으로써 최종적인 현재 블록의 블록 모드로서 결정할 수 있다. 수학식 3에서는 부호화 비용을 율-왜곡 비용으로 계산하는 것으로 예를 들었지만, 부호화 비용은 반드시 수학식 3과 같은 율-왜곡 비용으로 계산되어야 하는 것은 아니며 다른 다양한 방식으로 계산될 수도 있다.
도 1에서는, 예측기(110)가 부호화 비용을 계산하는 것으로 설명했지만, 반드시 이에 한정되지 않고 부호화기(140)가 부호화 비용을 계산하고 계산된 부호화 비용을 예측기(110)로 전달하여 예측기(110)가 움직임 벡터를 결정할 수도 있다.
한편, 수학식 2를 통해 구해진 움직임 벡터는 예측 부호화되는데, 예측기(110) 또는 부호화기(140)는 수학식 5와 같이 움직임 벡터와 그의 예측 움직임 벡터와의 차이값인 차분 움직임 벡터를 부호화한다.
[수학식 5]
이때, H.264/AVC와 같은 통상적인 동영상 압축 표준에서는 정수 화소 단위, 1/2 화소 단위, 1/4 화소 단위의 해상도로 움직임 추정을 수행하여 움직임 벡터를 구하고, 구해진 움직임 벡터의 차분 움직임 벡터를 표 1에 나타낸 바와 같은 1/4 화소 단위의 배수마다의 비트 스트링(Bit String)이 할당된 코드 테이블(Code Table)을 이용하여 부호화한다.
표 1을 통해 알 수 있듯이, 통상적인 압축 표준에서는 여러 가지 해상도의 움직임 벡터를 모두 부호화하기 위해 작은 크기의 움직임 벡터를 부호화하기 위해서도 긴 코드워드들이 사용되며, 결과적으로 움직임 벡터를 부호화하여 생성되는 움직임 벡터 부호화 데이터의 크기가 커져서 압축 효율이 저하된다. 예를 들어 표 1을 참조하며, 차분 움직임 벡터가 (3,2)인 경우, '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) 및 제한 해상도 결정기(Restricted Resolution Determiner, 420)를 포함하여 구성될 수 있다.
부호화 비용 계산기(410)는 움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따른 부호화 비용을 계산한다. 즉, 부호화 비용 계산기(410)는 제한 단계별 움직임 벡터 해상도에 따라 결정되는 움직임 벡터와 참조 픽처 색인을 포함하는 움직임 정보를 이용하여 생성되는 예측 영상과 입력 영상의 차이인 잔여 영상을 부호화하는 데 소요되는 비용을 계산한다.
여기서, 움직임 벡터 해상도는 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도 중 하나 이상을 포함할 수 있으나, 이에 한정되지 않고 더욱 작은 화소 단위의 해상도를 포함할 수도 있다. 또한, 움직임 벡터 해상도의 제한 단계란 움직임 추정에 이용할 수 있는 움직임 벡터 해상도의 집합에서 움직임 벡터 해상도가 큰 순서에 따라 단계적으로 형성된 그룹을 의미하는 것이다.
일 예로, 이용 가능한 움직임 벡터 해상도가 전술한 바와 같이 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도라고 가정하면, 움직임 벡터 해상도의 제 1 제한 단계는 정수 화소 단위의 해상도만이 포함된 그룹이 되며, 움직임 벡터 해상도의 제 2 제한 단계는 정수 화소 단위의 해상도와 1/2 화소 단위의 해상도가 포함된 그룹이 되며, 움직임 벡터 해상도의 제 3 단계는 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도 및 1/4 화소 단위의 해상도가 포함된 그룹이 되며, 움직임 벡터 해상도의 제 4 단계는 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도가 포함된 그룹이 될 수 있다.
따라서, 전술한 일 예의 경우, 부호화 비용 계산기(410)는 움직임 벡터 해상도의 제 1 제한 단계에 포함된 정수 화소 단위의 해상도로 움직임을 추정하여 결정되는 움직임 벡터를 이용하여 입력 영상을 예측 부호화할 때 소요되는 부호화 비용을 제 1 제한 단계의 부호화 비용으로 계산하고, 움직임 벡터 해상도의 제 2 제한 단계에 포함된 정수, 1/2 화소 단위의 해상도로 움직임을 추정하여 결정되는 움직임 벡터를 이용하여 입력 영상을 예측 부호화할 때 소요되는 부호화 비용을 제 2 제한 단계의 부호화 비용으로 계산하며, 움직임 벡터 해상도의 제 3 제한 단계에 포함된 정수, 1/2, 1/4 화소 단위의 해상도로 움직임을 추정하여 결정되는 움직임 벡터를 이용하여 입력 영상을 예측 부호화할 때 소요되는 부호화 비용을 제 3 제한 단계의 부호화 비용으로 계산하며, 움직임 벡터 해상도의 제 4 제한 단계에 포함된 정수, 1/2, 1/4, 1/8 화소 단위의 해상도로 움직임을 추정하여 결정되는 움직임 벡터를 이용하여 입력 영상을 예측 부호화할 때 소요되는 부호화 비용을 제 4 제한 단계의 부호화 비용으로 계산한다.
또한, 부호화 비용 계산기(410)는 제한 단계별 움직임 벡터 해상도에 따라 블록마다의 움직임 벡터와 블록 모드 중 하나 이상을 결정하고 결정된 움직임 벡터와 결정된 블록 모드 중 하나 이상을 이용하여 부호화 비용을 계산할 수 있다. 예를 들어, 부호화 비용 계산기(410)는 수학식 6을 이용하여 움직임 벡터와 블록 모드를 고려한 부호화 비용을 계산할 수 있다. cost(k)는 제한 단계별 부호화 비용을 나타낸다.
[수학식 6]
수학식 6에서, k는 움직임 벡터 해상도의 제한 단계를 식별하기 위한 해상도 제한 색인을 나타낸다. 이때, 고려되는 움직임 벡터 해상도는 1/2 k 화소 단위까지 이다. 따라서, 전술한 일 예에서, 해상도 제한 색인이 움직임 벡터 해상도의 제 1 제한 단계 내지 제 4 제한 단계를 나타내는 경우 k는 각각 0, 1, 2, 3이 된다. N
MB 는 움직임 벡터 해상도의 제한 단계와 부호화 비용이 각각 선택되고 계산되는 부호화 단위(예를 들어, 슬라이스) 내에 존재하는 블록(움직임 벡터가 결정되는 매크로블록 또는 서브블록)의 개수를 나타내며, m은 각 블록을 식별하기 위한 블록 색인(Block Index)를 나타내며, i
*
m 은 부호화 단위 내의 블록에 대한 블록 모드를 나타낸다. rdcost
{
m,k
}(i
*
m )는 움직임 벡터 해상도의 제한 단계에 따라 결정되는 부호화 단위 내의 각 블록의 블록 모드와 움직임 벡터를 이용하여 각 블록을 부호화할 때 소요되는 부호화 비용을 계산하기 위한 함수이다. 이 과정에서 N_MB값은 양의 정수값을 가질 수 있으며, N_MB = 1인 경우에는 매 서브 블록마다 움직임벡터 해상도의 제한 단계를 결정하는 경우이다.
또한, 부호화 비용 계산기(410)는 제한 단계별 움직임 벡터 해상도에 따라 다른 코드 테이블을 이용하여 움직임 벡터를 부호화하여 부호화 비용을 계산할 수 있다. 즉, 부호화 비용 계산기(410)는 각 움직임 벡터 해상도의 제한 단계별로 다른 코드 테이블을 미리 저장하고 그를 이용하여 각 제한 단계별 움직임 벡터 해상도의 움직임 벡터를 부호화할 수 있다. 여기서, 각 움직임 벡터 해상도의 제한 단계별로 다른 코드 테이블이란 각 움직임 벡터 해상도의 제한 단계 내의 움직임 벡터 해상도의 움직임 벡터만을 고려하여 부호화하기 위한 코드 테이블을 말한다.
따라서, 전술한 일 예의 경우, 움직임 벡터 해상도의 제 1 제한 단계에 대한 코드 테이블은, 표 2에 예시적으로 나타낸 바와 같이, 정수 화소 단위의 해상도의 움직임 벡터만을 고려하여 부호화하기 위한 코드 테이블이고, 움직임 벡터 해상도의 제 2 제한 단계에 대한 코드 테이블은, 표 3에 예시적으로 나타낸 바와 같이, 정수, 1/2 화소 단위의 해상도의 움직임 벡터만을 고려하여 부호화하기 위한 코드 테이블이며, 움직임 벡터 해상도의 제 3 제한 단계에 대한 코드 테이블은, 표 4에 예시적으로 나타낸 바와 같이, 정수, 1/2, 1/4 화소 단위의 해상도의 움직임 벡터만을 고려하여 부호화하기 위한 코드 테이블이며, 움직임 벡터 해상도의 제 4 제한 단계에 대한 코드 테이블은, 표 5에 예시적으로 나타낸 바와 같이, 정수, 1/2, 1/4, 1/8 화소 단위의 해상도의 움직임 벡터만을 고려하여 부호화하기 위한 코드 테이블이다.
표 3
따라서, 본 발명의 일 실시예에서는 전술한 바와 같이, 움직임 벡터 해상도의 제한 단계별로 결정되는 움직임 벡터를 부호화하기 위한 코드 테이블을 각 움직임 벡터 해상도의 제한 단계에 적합하도록 서로 다르게 구성하고 이용함으로써, 움직임 벡터를 효율적으로 부호화하여 압축 효율을 향상시킬 수 있다.
제한 해상도 결정기(420)는 제한 단계별로 계산된 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택한다. 즉, 제한 해상도 결정기(420)는 부호화 비용 계산기(410)에 의해 계산되는 제한 단계별 부호화 비용을 서로 비교하여 가장 작은 부호화 비용을 가지는 움직임 벡터 해상도의 제한 단계를 선택한다. 여기서, 제한 해상도 결정기(420)는 블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 부호화 단위마다 움직임 벡터 해상도의 제한 단계를 선택할 수 있다.
이때, 제한 해상도 결정기(420)는 움직임 벡터 해상도의 제한 단계별로 수학식 6과 같이 부호화 단위 내의 모든 블록에 대한 부호화 비용을 합산하여 계산된 제한 단계별 부호화 비용 중에 가장 작은 부호화 비용을 가지는 움직임 벡터 해상도의 제한 단계를 수학식 7과 같은 방법으로 선택할 수 있다.
[수학식 7]
수학식 7에서, k는 해상도 제한 색인을 나타내며, k
* 는 제한 해상도 결정기(420)에 의해 선택되는 움직임 벡터 해상도의 제한 단계를 식별하기 위한 해상도 제한 색인을 나타낸다. 이와 같이 제한 해상도 결정기(420)에 의해 선택되는 움직임 벡터 해상도의 제한 단계를 식별하기 위한 해상도 제한 색인 k
* 가 움직임 정보 부호화기(430)에 의해 부호화되어 해상도 제한 색인 데이터로서 생성되면 비트스트림에 포함된다. 수학식 7에서, k가 {0, 1, 2, 3}인 것으로 나타낸 것은 예시적인 것일 뿐, k의 값이 반드시 {0, 1, 2, 3} 중에 하나의 값만을 가져야 한다는 것은 아니다. 따라서, k는 0 이상의 정수의 값을 가지며 한 개 이상의 복수 개의 값을 가질 수 있다.
움직임 정보 부호화기(430)는 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력한다. 즉, 움직임 정보 부호화기(430)는 제한 해상도 결정기(420)에 의해 움직임 벡터 해상도의 제한 단계가 선택되면, 부호화 비용 계산기(410)에서 부호화 비용을 계산하는 과정에서 미리 부호화되어 생성된 움직임 벡터 부호화 데이터 중에서 제한 해상도 결정기(420)에 의해 선택된 제한 단계의 움직임 벡터 해상도에 따라 결정된 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력한다. 이때, 부호화 비용과 움직임 벡터 해상도의 제한 단계는 각각 슬라이스와 같은 소정의 부호화 단위마다 계산되고 선택되므로, 움직임 정보 부호화기(430)에서 출력하는 움직임 벡터 부호화 데이터도 슬라이스와 같은 소정의 부호화 단위 내의 블록마다 생성된 움직임 벡터 부호화 데이터가 될 수 있다. 또한, 움직임 벡터 부호화 데이터에는 움직임 벡터뿐만 아니라 참조 픽처 색인을 추가로 포함할 수 있다. 이때 움직임 벡터 해상도의 제한 정보가 결정되고 그 정보가 부호화되는 단위는 슬라이스 단위로 한정하지 않고 작게는 서브블록 단위부터 크게는 프레임 및 시퀀스 전체까지 될 수 있다.
이때, 움직임 정보 부호화기(430)는 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인(Resolution Restriction Index)을 부호화하여 해상도 제한 색인 데이터를 출력할 수 있다. 해상도 제한 색인 데이터는 비트스트림에 추가로 포함되며, 움직임 벡터 복호화 장치 또는 영상 복호화 장치에서 움직임 벡터 해상도의 제한 단계를 식별하는 데 활용된다.
이하에서는 도 5 및 도 6을 통해 템플릿 매칭을 이용하여 선택된 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하는 방법과 선택된 움직임 벡터 해상도의 움직임 벡터 또는 선택된 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 선택하는 방법을 설명한다.
도 5는 본 발명의 일 실시예에 따라 템플릿 매칭을 이용하여 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하는 과정을 설명하기 위한 예시도이다.
도 5에 도시한 바와 같이, 예측기(110)는 부호화기(140)에 의해 선택된 움직임 벡터 해상도 제한 단계에 포함되는 움직임 벡터 해상도 중 최소의 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도로 참조 픽처에서 현재 블록의 인접 화소와 가장 유사한 인접 화소를 가지는 참조 블록을 찾아 참조 블록을 지시하는 움직임 벡터를 구한다. 이때, 작은 화소 단위의 움직임 벡터 해상도로 템플릿 매칭을 이용하여 움직임을 추정하기 위한 탐색 영역은 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터의 주변 영역으로 제한될 수 있다. 여기서, 움직임 벡터의 주변 영역이란 움직임 벡터가 지시하는 화소를 중심으로 상하좌우로 동일하게 또는 다르게 소정 개수의 화소만큼 떨어진 영역일 수 있다.
도 6은 본 발명의 일 실시예에 따라 움직임 벡터를 선택하는 과정을 설명하기 위한 예시도이다.
6A는 부호화기(140)에 의해 선택되는 움직임 벡터 해상도의 제한 단계에 따라 결정된 움직임 벡터에 대한 부호화 비용을 계산하는 과정을 나타낸 것이고, 6B는 부호화기(140)에 의해 선택되는 움직임 벡터 해상도의 제한 단계에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도로 템플릿 매칭을 이용하여 결정되는 움직임 벡터에 대한 부호화 비용을 계산하는 과정을 나타낸 것이다. 6A와 6B에 나타낸 방법으로 계산되는 부호화 비용은 각각 수학식 8과 수학식 9를 이용하여 계산될 수 있다.
[수학식 8]
[수학식 9]
수학식 8과 수학식 9에서, T
org (i)는 현재 블록의 인접 화소를 나타내는 현재 템플릿을 나타내며, 는 제한 해상도 결정기(420)에 의해 선택되는 움직임 벡터 해상도에 따라 결정되는 움직임 벡터 MV
* 가 지시하는 참조 블록의 인접 화소를 나타내는 참조 템플릿을 나타내며, N
T 는 현재 템플릿과 참조 템플릿에 포함되는 화소의 개수를 나타내며, 는 제한 해상도 결정기(420)에 의해 선택되는 움직임 벡터 해상도에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도로 템플릿 매칭을 이용하여 결정되는 움직임 벡터 MV
*
T 가 지시하는 참조 블록의 인접 화소를 나타내는 참조 템플릿을 나타낸다. 수학식 8과 수학식 9에서는 부호화 비용으로서 왜곡 비용을 예를 들었지만, 부호화 비용은 반드시 이에 한정되지 않고 다양한 방식으로 계산될 수 있다.
예측기(110)는 수학식 8과 수학식 9를 이용하여 계산되는 각 SAD 중에서 작은 SAD를 가지는 움직임 벡터가 부호화 효율이 더욱 좋으므로, 해당 움직임 벡터를 이용하여 블록의 움직임을 보상하여 예측 블록을 출력한다. 이때, 예측기(110)는 부호화 단위 내의 각 블록에 대해 움직임 벡터를 선택할 수 있다. 따라서, 예측기(110)는 각 블록에 대해 선택된 움직임 벡터가 템플릿 매칭을 이용하여 추가로 추정한 움직임 벡터인 경우에만 추정한 움직임 벡터를 이용하여 움직임이 보상된 예측 블록을 출력할 수 있으며, 기 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정된 움직임 벡터가 선택된 경우에는 예측 블록을 추가로 생성하지 않는다.
도 5 및 도 6을 통해 전술한 바와 같이, 작은 화소 단위의 움직임 벡터 해상도로 추정된 움직임 벡터에 대해서는 추가로 부호화하거나 그를 식별하기 위한 추가적인 정보 또는 어떠한 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터가 비트스트림에 포함되었는지를 나타내는 정보를 부호화하지 않아도 된다. 영상 복호화 장치에서는 영상 부호화 장치(100)와 마찬가지로 도 5 및 도 6을 통해 전술한 과정을 동일하게 수행할 수 있기 때문이다.
도 7은 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법에 따르면, 움직임 벡터 부호화기(320)는 움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따른 부호화 비용을 계산하고(S710), 제한 단계별로 계산된 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하며(S720), 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력한다(S730).
여기서, 움직임 벡터 해상도는 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도 중 하나 이상을 포함할 수 있다.
또한, 움직임 벡터 부호화기(320)는 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인을 부호화하여 해상도 제한 색인 데이터를 추가로 출력할 수 있다.
단계 S710에서, 움직임 벡터 부호화기(320)는 제한 단계별 움직임 벡터 해상도에 따라 블록마다의 움직임 벡터와 블록 모드 중 하나 이상을 결정하고 결정된 움직임 벡터와 결정된 블록 모드 중 하나 이상을 이용하여 부호화 비용을 계산할 수 있으며, 제한 단계별 움직임 벡터 해상도에 따라 다른 코드 테이블을 이용하여 움직임 벡터를 부호화하여 부호화 비용을 계산할 수 있다.
단계 S720에서, 움직임 벡터 부호화기(320)는 블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 부호화 단위마다 움직임 벡터 해상도의 제한 단계를 선택할 수 있으며, 제한 단계별로 계산된 부호화 비용 중 가장 작은 부호화 비용을 가지는 제한 단계를 움직임 벡터 해상도의 제한 단계로서 선택할 수 있다.
도 8은 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법이 구현되는 일 예를 설명하기 위한 순서도이다.
도 8에서는 움직임 벡터 부호화기(320)가 움직임 벡터를 결정하는 데 이용할 수 있는 움직임 벡터 해상도가 정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도이고, 부호화 단위가 슬라이스인 것으로 가정할 때, 움직임 벡터를 부호화하는 과정을 예시적으로 나타내었다.
움직임 벡터 부호화기(320)는 움직임 벡터 해상도의 제 1 제한 단계로서 정수 화소 단위의 움직임 벡터 해상도의 움직임 벡터만을 고려하여 영상을 부호화할 때의 부호화 비용인 cost(0)을 계산한다(S810). 즉, 움직임 벡터 부호화기(320)는 입력 영상 내의 슬라이스 내에 있는 모든 블록에 대해 수학식 1과 수학식 2를 이용하여 정수 화소 단위의 움직임 벡터 해상도로 움직임 추정을 수행함으로써 정수 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 결정하고, 수학식 3과 수학식 4를 이용하여 정수 화소 단위의 움직임 벡터 해상도로 결정되는 움직임 벡터에 따른 블록 모드를 결정한다. 또한, 움직임 벡터 부호화기(320)는 결정되는 움직임 벡터와 블록 모드에 따라 각 블록을 예측 부호화하여 정수 화소 단위로 움직임 벡터 해상도가 제한된 각 블록에 대한 영상 부호화 데이터를 생성하고 수학식 3과 수학식 4를 이용하여 각 영상 부호화 데이터에 대한 부호화 비용을 계산하고 슬라이스 내의 모든 블록에 대한 부호화 비용을 합산하여 수학식 6과 같이 움직임 벡터 해상도의 제 1 제한 단계에 대한 부호화 비용 cost(0)을 계산한다. 이때, 움직임 벡터 부호화기(320)는 각 블록을 예측 부호화하여 영상 부호화 데이터를 생성할 때, 정수 화소 단위의 움직임 벡터 해상도의 움직임 벡터도 예측 부호화하는데 표 2와 같이 움직임 벡터 해상도의 제 1 제한 단계에 대한 코드 테이블을 이용하여 부호화한다.
또한, 움직임 벡터 부호화기(320)는 움직임 벡터 해상도의 제 2 제한 단계로서 정수, 1/2 화소 단위의 움직임 벡터 해상도의 움직임 벡터만을 고려하여 영상을 부호화할 때의 부호화 비용인 cost(1)을 계산한다(S820). 즉, 움직임 벡터 부호화기(320)는 입력 영상 내의 슬라이스 내에 있는 모든 블록에 대해 수학식 1과 수학식 2를 이용하여 정수 화소 단위와 1/2 화소 단위의 움직임 벡터 해상도로 움직임 추정을 수행함으로써 정수 화소 단위 또는 1/2 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 결정하고, 수학식 3과 수학식 4를 이용하여 정수 화소 단위 또는 1/2 화소 단위의 움직임 벡터 해상도로 결정되는 움직임 벡터에 따른 블록 모드를 결정한다. 또한, 움직임 벡터 부호화기(320)는 결정되는 움직임 벡터와 블록 모드에 따라 각 블록을 예측 부호화하여 정수 화소 단위와 1/2 화소 단위만으로 움직임 벡터 해상도가 제한된 각 블록에 대한 영상 부호화 데이터를 생성하고 수학식 3과 수학식 4를 이용하여 각 영상 부호화 데이터에 대한 부호화 비용을 계산하고 슬라이스 내의 모든 블록에 대한 부호화 비용을 합산하여 수학식 6과 같이 움직임 벡터 해상도의 제 2 제한 단계에 대한 부호화 비용 cost(1)을 계산한다. 이때, 움직임 벡터 부호화기(320)는 각 블록을 예측 부호화하여 영상 부호화 데이터를 생성할 때, 정수 화소 단위 또는 1/2 화소 단위의 움직임 벡터 해상도의 움직임 벡터도 예측 부호화하는데 표 3과 같이 움직임 벡터 해상도의 제 2 제한 단계에 대한 코드 테이블을 이용하여 부호화한다.
또한, 움직임 벡터 부호화기(320)는 움직임 벡터 해상도의 제 3 제한 단계로서 정수, 1/2, 1/4 화소 단위의 움직임 벡터 해상도의 움직임 벡터만을 고려하여 영상을 부호화할 때의 부호화 비용인 cost(2)을 계산한다(S830). 즉, 움직임 벡터 부호화기(320)는 입력 영상 내의 슬라이스 내에 있는 모든 블록에 대해 수학식 1과 수학식 2를 이용하여 정수 화소 단위, 1/2 화소 단위와 1/4 화소 단위의 움직임 벡터 해상도로 움직임 추정을 수행함으로써 정수 화소 단위, 1/2 화소 단위 또는 1/4 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 결정하고, 수학식 3과 수학식 4를 이용하여 정수 화소 단위, 1/2 화소 단위 또는 1/4 화소 단위의 움직임 벡터 해상도로 결정되는 움직임 벡터에 따른 블록 모드를 결정한다. 또한, 움직임 벡터 부호화기(320)는 결정되는 움직임 벡터와 블록 모드에 따라 각 블록을 예측 부호화하여 정수 화소 단위, 1/2 화소 단위와 1/4 화소 단위만으로 움직임 벡터 해상도가 제한된 각 블록에 대한 영상 부호화 데이터를 생성하고 수학식 3과 수학식 4를 이용하여 각 영상 부호화 데이터에 대한 부호화 비용을 계산하고 슬라이스 내의 모든 블록에 대한 부호화 비용을 합산하여 수학식 6과 같이 움직임 벡터 해상도의 제 3 제한 단계에 대한 부호화 비용 cost(2)을 계산한다. 이때, 움직임 벡터 부호화기(320)는 각 블록을 예측 부호화하여 영상 부호화 데이터를 생성할 때, 정수 화소 단위, 1/2 화소 단위 또는 1/4 화소 단위의 움직임 벡터 해상도의 움직임 벡터도 예측 부호화하는데 표 4와 같이 움직임 벡터 해상도의 제 3 제한 단계에 대한 코드 테이블을 이용하여 부호화한다.
또한, 움직임 벡터 부호화기(320)는 움직임 벡터 해상도의 제 4 제한 단계로서 정수, 1/2, 1/4, 1/8 화소 단위의 움직임 벡터 해상도의 움직임 벡터만을 고려하여 영상을 부호화할 때의 부호화 비용인 cost(3)을 계산한다(S840). 즉, 움직임 벡터 부호화기(320)는 입력 영상 내의 슬라이스 내에 있는 모든 블록에 대해 수학식 1과 수학식 2를 이용하여 정수 화소 단위, 1/2 화소 단위, 1/4 화소 단위와 1/8 화소 단위의 움직임 벡터 해상도로 움직임 추정을 수행함으로써 정수 화소 단위, 1/2 화소 단위, 1/4 화소 단위 또는 1/8 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 결정하고, 수학식 3과 수학식 4를 이용하여 정수 화소 단위, 1/2 화소 단위, 1/4 화소 단위 또는 1/8 화소 단위의 움직임 벡터 해상도로 결정되는 움직임 벡터에 따른 블록 모드를 결정한다. 또한, 움직임 벡터 부호화기(320)는 결정되는 움직임 벡터와 블록 모드에 따라 각 블록을 예측 부호화하여 정수 화소 단위, 1/2 화소 단위, 1/4 화소 단위와 1/8 화소 단위만으로 움직임 벡터 해상도가 제한된 각 블록에 대한 영상 부호화 데이터를 생성하고 수학식 3과 수학식 4를 이용하여 각 영상 부호화 데이터에 대한 부호화 비용을 계산하고 슬라이스 내의 모든 블록에 대한 부호화 비용을 합산하여 수학식 6과 같이 움직임 벡터 해상도의 제 4 제한 단계에 대한 부호화 비용 cost(3)을 계산한다. 이때, 움직임 벡터 부호화기(320)는 각 블록을 예측 부호화하여 영상 부호화 데이터를 생성할 때, 정수 화소 단위, 1/2 화소 단위, 1/4 화소 단위 또는 1/8 화소 단위의 움직임 벡터 해상도의 움직임 벡터도 예측 부호화하는데 표 5와 같이 움직임 벡터 해상도의 제 4 제한 단계에 대한 코드 테이블을 이용하여 부호화한다.
이후, 움직임 벡터 부호화기(320)는 cost(0), cost(1), cost(2), cost(3) 중에서 가장 작은 cost()를 가지는 움직임 벡터 해상도의 제한 단계를 선택한다(S850). 즉, 움직임 벡터 부호화기(320)는 단계 S810 내지 단계 S840을 통해 계산된 cost(0), cost(1), cost(2), cost(3) 중에서 최소값을 가지는 cost에 해당하는 해상도 제한 색인을 수학식 7을 이용하여 선택한다.
움직임 벡터 해상도의 제한 단계가 선택되면 움직임 벡터 부호화기(320)는 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정된 움직임 벡터와 해상도 제한 색인을 부호화한다(S860). 즉, 움직임 벡터 부호화기(320)는 단계 S810 내지 단계 S840에서 부호화 비용을 계산할 때 각 움직임 벡터 해상도의 제한 단계에 따라 결정된 움직임 벡터 중에서 단계 S850에서 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정된 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터를 출력하고, 단계 S850에서 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인을 부호화하여 해상도 제한 색인 데이터를 출력한다. 이러한 제한 색인 데이터는 비트스트림의 블록 헤더 또는 슬라이스 헤더에 삽입될 수 있는데, 만약 부호화 단위가 슬라이스가 아닌 픽처라면 픽처 헤더에 삽입될 것이다.
도 7 및 도 8을 통해 전술한 각 단계는 모두 반드시 수행되어야 하는 것은 아니며, 일부의 단계가 선택적으로 생략되거나 추가될 수도 있다. 또한, 각 단계의 순서도 반드시 도시된 바와 같이 정해지는 것은 아니며, 일부 또는 전부의 단계의 순서가 변경되거나 심지어는 병행적으로 수행될 수도 있다. 예를 들어, 도 8에서는 단계 S810 내지 단계 S840이 순차적으로 수행되는 것으로 도시하고 설명했지만, 단계 S810 내지 단계 S840은 그 순서가 변경되어 수행되거나 병행하여 수행될 수도 있다.
도 9는 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(100)는 움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따라 영상의 움직임 벡터를 결정하고(S910), 결정되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성하며(S920), 영상과 예측 영상을 감산하여 잔여 영상을 생성하며(S930), 잔여 영상을 변환 및 양자화하며(S940), 변환 및 양자화된 잔여 영상을 부호화하여 제한 단계별 영상 부호화 데이터를 생성하며(S950), 제한 단계별 영상 부호화 데이터의 부호화 비용을 계산하며(S960), 제한 단계별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하며(S970), 선택된 제한 단계에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성한다(S980).
단계 S980에서, 영상 부호화 장치(100)는 선택된 움직임 벡터 해상도의 제한 단계에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하고, 추정된 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 이용하여 영상을 예측 부호화하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성할 수 있다. 이때, 영상 부호화 장치(100)는 템플릿 매칭을 이용하여 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정할 수 있으며, 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터에 따라 영상을 예측 부호화하는 데 소요되는 부호화 비용과 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터에 따라 영상을 예측 부호화하는 데 소요되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성할 수 있다.
도 10은 본 발명의 일 실시예에 따른 영상 부호화 방법이 구현되는 다른 예를 설명하기 위한 순서도이다.
단계 S1010 내지 단계 S1070은 도 9를 통해 전술한 단계 S910 내지 단계 S970과 동일 또는 유사하므로 상세한 설명은 생략한다.
단계 S1070 이후에, 영상 부호화 장치(100)는 단계 S1070에서 선택된 움직임 벡터 해상도의 제한 단계 내의 움직임 벡터 해상도 중에서 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도와 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터를 기초로 움직임 추정을 위한 탐색 영역을 결정한다(S1080). 예를 들어, 단계 S1070에서 정수 화소 단위와 1/2 화소 단위의 움직임 벡터 해상도를 포함하는 움직임 벡터 해상도의 제한 단계가 선택되었다면, 최소 움직임 벡터 해상도는 최소인 1/2 화소 단위의 움직임 벡터 해상도가 된다. 이 경우, 영상 부호화 장치(100)는 1/2 화소 단위의 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도인 1/4 화소 단위의 움직임 벡터 해상도와 1/8 화소 단위의 움직임 벡터 해상도를 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도로서 결정한다. 또한, 단계 S1070에서 정수 화소 단위와 1/2 화소 단위의 움직임 벡터 해상도를 포함하는 움직임 벡터 해상도의 제한 단계가 선택되었으므로, 단계 S1060에서 부호화 비용을 계산할 때 결정된 움직임 벡터의 주변 영역으로 추가적인 움직임 추정을 위한 탐색 영역을 제한하여 설정한다.
또한, 영상 부호화 장치(100)는 단계 S1080에서 결정된 탐색 영역에서 작은 화소 단위의 움직임 벡터 해상도로 템플릿 매칭을 이용하여 움직임 추정을 수행함으로써 더 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 결정한다(S1090). 즉, 영상 부호화 장치(100)는 도 5를 통해 전술한 바와 같이, 템플릿 매칭을 이용하여 1/4 화소 단위의 움직임 벡터 해상도와 1/8 화소 단위의 움직임 벡터 해상도로 슬라이스 내의 각 블록에 대한 움직임을 추가로 추정하여 1/4 화소 단위의 움직임 벡터 해상도 또는 1/8 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 결정한다. 이때, 영상 부호화 장치(100)는 도 6을 통해 전술한 바와 같이, 단계 S1070에서 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정된 움직임 벡터와 단계 S1090에서 템플릿 매칭을 이용하여 작은 화소 단위의 움직임 벡터 해상도로 움직임 추정을 수행하여 결정된 움직임 벡터 중 부호화 효율이 좋은 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 출력할 수 있다.
도 11은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치(1100)는 복호화기(Decoder, 1110), 역 양자화기 및 역 변환기(1120), 예측기(1130), 가산기(1140) 및 참조 픽처 메모리(1150)를 포함하여 구성될 수 있다.
복호화기(1110)는 비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원한다. 즉, 복호화기(1110)는 비트스트림으로부터 해상도 제한 색인 데이터, 움직임 벡터 부호화 데이터 및 영상 부호화 데이터를 각각 추출하고 복호화하여 해상도 제한 색인, 움직임 벡터와 변환 및 양자화된 잔여 영상을 복원한다. 이때, 복호화기(1110)는 복원되는 해상도 제한 색인이 나타내는 움직임 벡터 해상도의 제한 단계에 의해 식별되는 코드 테이블을 이용하여 움직임 벡터 부호화 데이터를 복호화한다. 복호화기(1110)는 엔트로피 부호화와 같은 부호화 기술을 이용하여 복호화할 수 있으며, 도 1을 통해 전술한 부호화기(140)가 부호화하는 과정을 역으로 수행하여 복호화할 수 있다.
역 양자화기 및 역 변환기(1120)는 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원한다. 즉, 역 양자화기 및 역 변환기(1120)는 복호화기(1110)에 의해 전달되는 변환 및 양자화된 잔여 영상의 양자화된 변환 계수를 역 양자화 및 역 변환하여 잔여 신호를 가지는 잔여 영상을 복원한다. 이때, 역 양자화기 및 역 변환기(1120)는 도 1을 통해 전술한 변환기 및 양자화기(1130)가 변환 및 양자화하는 과정을 역으로 수행하여 역 양자화 및 역 변환할 수 있다. 여기서, 복원되는 잔여 영상은 여러 잔여 블록을 포함하는 소정의 부호화 단위 내의 영상으로서, 부호화 단위의 영상은 블록, 슬라이스, 픽처, 픽처 그룹 등 다양한 영상일 수 있다.
예측기(1130)는 복원되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성한다. 즉, 예측기(1130)는 복호화기(1110)에 의해 복원되는 움직임 벡터를 이용하여 부호화하고자 하는 블록들의 움직임을 보상하여 예측 블록을 생성하는데, 예측 블록들이 소정의 부호화 단위로 모여 예측 영상을 구성한다.
또한, 예측기(1130)는 복호화기(1110)에 의해 복원되는 움직임 벡터가 아니라 복호화기(1110)에 의해 복원되는 해상도 제한 색인이 나타내는 움직임 벡터 해상도의 제한 단계에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하고, 추정된 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 이용하여 예측 영상을 생성할 수 있다. 여기서, 예측기(1130)는 복호화기(1110)에 의해 복원되는 움직임 벡터를 이용하여 계산되는 부호화 비용과 작은 화소 단위의 움직임 벡터 해상도로 추정되는 움직임 벡터를 이용하여 계산되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 예측 영상을 생성할 수 있다. 이때, 예측기(1130)는 템플릿 매칭을 이용하여 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정할 수 있다.
가산기(1140)는 잔여 영상과 예측 영상을 가산하여 영상을 복원한다. 즉, 가산기(1140)는 역 양자화기 및 역 변환기(1120)에 의해 복원되는 잔여 영상과 예측기(1130)에 의해 생성되는 예측 영상을 가산하여 영상을 복원한다.
가산기(1140)에 의해 복원되는 영상은 픽처 단위로 누적되어 복원 영상으로서 출력될 수 있으며, 참조 픽처 메모리(1150)에 저장되어 예측기(1130)가 다음 영상을 예측하는 데 활용될 수 있다.
도 11에서는 도시하지 않았지만, 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치(1100)는 인트라 예측을 위한 인트라 예측기, 복원된 현재 블록을 디블로킹 필터링(Deblocking Filtering)하는 디블록킹 필터기 등을 추가로 포함할 수 있다.
도 12는 본 발명의 일 실시예에 따른 복호화기를 간략하게 나타낸 블록 구성도이다.
복호화기(1110)는 움직임 벡터 복호화기(1210) 및 예측 잔여 복호화기(1220)를 포함하여 구성될 수 있다.
움직임 벡터 복호화기(1210)는 비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원한다. 움직임 벡터 부호화기(1210)에 대해서는 도 13을 통해 상세히 설명한다.
예측 잔여 복호화기(1220)는 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원한다.
도 13은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치는 도 12를 통해 전술한 복호화기(1110)에서는 움직임 벡터 복호화기(1210)로서 구현될 수 있다. 이하에서는 설명의 편의를 위해 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 움직임 벡터 복호화기(1210)라 칭한다.
움직임 벡터 복호화기(1210)는 제한 해상도 복원기(Restricted Resolution Reconstructor, 1310) 및 움직임 벡터 복원기(Motion Vector Reconstructor, 1320)를 포함하여 구성될 수 있다.
제한 해상도 복원기(1310)는 비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 움직임 벡터 해상도의 제한 단계를 복원한다. 즉, 제한 해상도 복원기(1310)는 비트스트림으로부터 해상도 제한 색인 데이터를 추출하고 복호화하여 해상도 제한 색인을 복원하고 복원되는 해상도 제한 색인이 나타내는 움직임 벡터 해상도의 제한 단계를 복원한다. 이때, 제한 해상도 복원기(1310)는 비트스트림의 블록 헤더, 슬라이스 헤더, 픽처 헤더 등 소정의 부호화 단위의 헤더에서 해상도 제한 색인 데이터를 추출할 수 있다. 복원되는 움직임 벡터 해상도의 제한 단계는 소정의 부호화 단위의 영상 내의 모든 블록에 대한 움직임 벡터 해상도의 제한 정보를 가지고 있다. 예를 들어, 움직임 벡터 해상도의 제한 단계가 움직임 벡터 해상도의 제 2 단계라고 가정하면, 소정의 부호화 단위 내의 모든 블록의 움직임 벡터는 정수 화소 또는 1/2 화소 단위의 움직임 벡터 해상도만을 가진다.
움직임 벡터 복원기(1320)는 복원되는 움직임 벡터 해상도의 제한 단계에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원한다. 즉, 움직임 벡터 복원기(1320)는 비트스트림으로부터 움직임 벡터 부호화 데이터를 추출하고 복호화하여 소정의 부호화 단위 내의 모든 블록의 움직임 벡터를 복원하는데, 제한 해상도 복원기(1310)에 의해 복원되는 움직임 벡터 해상도의 제한 단계에 의해 식별되는 코드 데이블을 이용하여 움직임 벡터 부호화 데이터를 복호화할 수 있다. 예를 들어, 움직임 벡터 해상도의 제한 단계가 움직임 벡터 해상도의 제 2 단계라고 가정하면, 표 3을 통해 예시적으로 나타낸 코드 테이블을 이용하여 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원할 수 있다. 이를 위해, 움직임 벡터 복원기(1320)는 움직임 벡터 해상도의 제한 단계에 따라 다른 코드 테이블을 미리 구비하여 저장하고 있으며, 이러한 코드 테이블은 움직임 벡터 부호화기(430) 또는 영상 부호화 장치(100)와 미리 약속하여 동일하게 생성되는 테이블이다.
도 14는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법에 따르면, 움직임 벡터 복호화기(1210)는 비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 움직임 벡터 해상도의 제한 단계를 복원하고(S1410), 복원되는 움직임 벡터 해상도의 제한 단계에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원한다(S1420).
단계 S1420에서, 움직임 벡터 복호화기(1210)는 단계 S1410에서 복원되는 움직임 벡터 해상도의 제한 단계에 따라 다른 코드 테이블을 이용하여 움직임 벡터 부호화 데이터를 복호화할 수 있다.
도 15는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(1100)는 비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하고(S1510), 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원하며(S1520), 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원하며(S1530), 복원되는 움직임 벡터를 이용하여 영상의 예측 영상을 생성하며(S1540), 잔여 영상과 예측 영상을 가산하여 영상을 복원한다(S1550).
단계 S1540에서, 영상 복호화 장치(1100)는 단계 S1510에서 복원되는 움직임 벡터를 그대로 이용하여 예측 영상을 생성할 수도 있지만, 단계 S1510에서 복원되는 움직임 벡터 해상도의 제한 단계에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하고, 단계 S1510에서 복원되는 움직임 벡터를 이용하여 계산되는 부호화 비용과 작은 화소 단위의 움직임 벡터 해상도로 추정되는 움직임 벡터를 이용하여 계산되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 예측 영상을 생성할 수도 있다. 이때, 영상 복호화 장치(1100)는 템플릿 매칭을 이용하여 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정할 수 있다.
도 14 및 도 15를 통해 전술한 각 단계는 모두 반드시 수행되어야 하는 것은 아니며, 일부의 단계가 선택적으로 생략되거나 추가될 수도 있다. 또한, 각 단계의 순서도 반드시 도시된 바와 같이 정해지는 것은 아니며, 일부 또는 전부의 단계의 순서가 변경되거나 심지어는 병행적으로 수행될 수도 있다.
이상에서 전술한 바와 같이, 본 발명의 일 실시예에 따르면, 영상을 부호화할 때 블록 및 슬라이스 등과 같은 소정의 부호화 단위의 영상 내의 블록들에 대한 움직임 벡터의 해상도를 제한하여 결정하고 제한된 움직임 벡터 해상도의 움직임 벡터들을 제한된 움직임 벡터 해상도에 적합한 코드 테이블을 이용하여 부호화할 수 있으므로, 움직임 벡터를 부호화하는 데 소요되는 비트량을 줄일 수 있으며 결과적으로 영상의 압축 효율을 향상시킬 수 있다.
이뿐만 아니라, 본 발명의 일 실시예에 따르면, 영상 부호화 장치(100)와 영상 복호화 장치(1100)가 모두 동일하게 수행할 수 있는 템플릿 매칭과 같은 움직임 추정 기술을 통해, 제한된 움직임 벡터 해상도보다 더 작은 화소 단위의 움직임 벡터 해상도로 추가적인 움직임 추정을 수행하여 더욱 세밀한 움직임 벡터 해상도의 움직임 벡터를 이용하여 영상을 부호화할 수 있기 때문에, 예측의 정확도를 높여 잔여 신호의 발생을 억제하면서도 추가적인 움직임 추정을 통해 결정되는 세밀한 움직임 벡터 해상도의 움직임 벡터를 추가적으로 부호화할 필요가 없으므로 영상의 압축 효율을 더욱 향상시킬 수 있다.
한편, 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치는 도 1의 영상 부호화 장치(100)의 부호화데이터 출력단을 도 11의 영상 복호화 장치(1100)의 비트스트림(부호화데이터) 입력단에 연결함으로써 구현할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 장치는, 움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따라 상기 영상의 움직임 벡터를 결정하고 상기 결정되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하고 상기 영상과 상기 예측 영상을 감산하고 변환 및 양자화한 후 부호화하여 제한 단계별 영상 부호화 데이터를 생성하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 계산하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하며, 상기 선택된 제한 단계에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터 및 상기 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인을 부호화하여 해상도 제한 색인 데이터를 출력하는 영상 부호화기 및 비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 상기 비트스트림으로부터 변환 및 양자화된 잔여 영상을 복원하고 역 양자화 및 역 변환하여 영상을 복원하고, 상기 복원되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하고 상기 잔여 영상과 상기 예측 영상을 가산하여 상기 영상을 복원하는 영상 복호화기를 포함한다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 장치에서 영상 부호화기는 본 발명의 일 실시예에 따른 영상 부호화 장치(100)로 구현 가능하며, 영상 복호화기는 본 발명의 일 실시예에 따른 영상 복호화 장치(1100)로 구현 가능하다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 방법은, 움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따라 상기 영상의 움직임 벡터를 결정하고 상기 결정되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하고 상기 영상과 상기 예측 영상을 감산하고 변환 및 양자화한 후 부호화하여 제한 단계별 영상 부호화 데이터를 생성하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 계산하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하며, 상기 선택된 제한 단계에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터 및 상기 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인을 부호화하여 해상도 제한 색인 데이터를 출력하는 영상 부호화단계; 및 비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 상기 비트스트림으로부터 변환 및 양자화된 잔여 영상을 복원하고 역 양자화 및 역 변환하여 영상을 복원하고, 상기 복원되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하고 상기 잔여 영상과 상기 예측 영상을 가산하여 상기 영상을 복원하는 영상 복호화단계를 포함한다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 방법에서, 영상 부호화단계는 본 발명의 일 실시예에 따른 영상 부호화 단계로 구현 가능하며, 영상 복호화단계는 본 발명의 일 실시예에 따른 영상 복호화 단계로 구현 가능하다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 동영상을 부호화하거나 복호화하고 그를 위한 움직임 벡터를 부호화거나 복호하하는 영상 압축 처리 분야에 적용되어, 움직임 벡터의 해상도를 적응적으로 제한하여 움직임 벡터를 결정하고 부호화함으로써 압축 효율을 향상시킬 수 있는 효과를 발생하는 매우 유용한 발명이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2009년 10월 30일 한국에 출원한 특허출원번호 제10-2009-0104411호 및 2010년 10월 29일 한국에 출원한 특허출원번호 제 10-2010-0106747 호에 대해 미국 특허법 119(a)조(35 U.S.C § 119(a))에 따라 우선권을 주장하면, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 동일한 이유로 우선권을 주장하면 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.
Claims (39)
- 영상을 부호화/복호화하는 장치에 있어서,움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따라 상기 영상의 움직임 벡터를 결정하고 상기 결정되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하고 상기 영상과 상기 예측 영상을 감산하고 변환 및 양자화한 후 부호화하여 제한 단계별 영상 부호화 데이터를 생성하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 계산하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하며, 상기 선택된 제한 단계에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터 및 상기 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인을 부호화하여 해상도 제한 색인 데이터를 출력하는 영상 부호화기; 및비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 상기 비트스트림으로부터 변환 및 양자화된 잔여 영상을 복원하고 역 양자화 및 역 변환하여 영상을 복원하고, 상기 복원되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하고 상기 잔여 영상과 상기 예측 영상을 가산하여 상기 영상을 복원하는 영상 복호화기를 포함하는 것을 특징으로 하는 영상 부호화/복호화 장치.
- 영상을 부호화하는 장치에 있어서,움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따라 상기 영상의 움직임 벡터를 결정하고 상기 결정되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하는 예측기;상기 영상과 상기 예측 영상을 감산하여 잔여 영상을 생성하는 감산기;상기 잔여 영상을 변환 및 양자화하는 변환기 및 양자화기; 및상기 변환 및 양자화된 잔여 영상을 부호화하여 제한 단계별 영상 부호화 데이터를 생성하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 계산하며, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하며, 상기 선택된 제한 단계에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터 및 상기 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인을 부호화하여 해상도 제한 색인 데이터를 포함하는 비트스트림을 생성하는 부호화기를 포함하는 것을 특징으로 하는 영상 부호화 장치.
- 제 2 항에 있어서, 상기 부호화기는,상기 선택된 움직임 벡터 해상도의 제한 단계에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하고, 상기 추정된 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 이용하여 상기 영상을 예측 부호화하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 것을 특징으로 하는 영상 부호화 장치.
- 제 3 항에 있어서, 상기 부호화기는,템플릿 매칭을 이용하여 상기 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하는 것을 특징으로 하는 영상 부호화 장치.
- 제 3 항에 있어서, 상기 부호화기는,상기 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터에 따라 상기 영상을 예측 부호화하는 데 소요되는 부호화 비용과 상기 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터에 따라 상기 영상을 예측 부호화하는 데 소요되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 출력하는 것을 특징으로 하는 영상 부호화 장치.
- 영상을 복호화하는 장치에 있어서,비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 상기 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원하는 복호화기;상기 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원하는 역 양자화기 및 역 변환기;상기 복원되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하는 예측기; 및상기 잔여 영상과 상기 예측 영상을 가산하여 상기 영상을 복원하는 가산기를 포함하는 것을 특징으로 하는 영상 복호화 장치.
- 제 6 항에 있어서, 상기 복호화기는,상기 복원되는 움직임 벡터 해상도의 제한 단계에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하고 상기 복원되는 움직임 벡터를 이용하여 계산되는 부호화 비용과 상기 추정되는 움직임 벡터를 이용하여 계산되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 움직임 벡터로서 복원하는 것을 특징으로 하는 영상 복호화 장치.
- 움직임 벡터를 부호화하는 장치에 있어서,움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따른 부호화 비용을 계산하는 부호화 비용 계산기;상기 제한 단계별로 계산된 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하는 제한 해상도 결정기; 및상기 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터 및 상기 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인을 부호화하여 해상도 제한 색인 데이터를 출력하는 움직임 정보 부호화기를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
- 제 8항에 있어서, 상기 제한 해상도 결정기는,블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 부호화 단위마다 상기 움직임 벡터 해상도의 제한 단계를 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
- 제 8항에 있어서, 상기 움직임 벡터 해상도는,정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도 중 하나 이상을 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
- 제 8 항에 있어서, 상기 제한 해상도 결정기는,상기 제한 단계별로 계산된 부호화 비용 중 가장 작은 부호화 비용을 가지는 제한 단계를 상기 움직임 벡터 해상도의 제한 단계로서 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
- 제 8항에 있어서, 상기 부호화 비용 계산기는,제한 단계별 움직임 벡터 해상도에 따라 블록마다의 움직임 벡터와 블록 모드 중 하나 이상을 결정하고 상기 결정된 움직임 벡터와 상기 결정된 블록 모드 중 하나 이상을 이용하여 부호화 비용을 계산하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
- 제 8 항에 있어서, 상기 부호화 비용을 계산하는 단계는,상기 제한 단계별 움직임 벡터 해상도에 따라 다른 코드 테이블을 이용하여 움직임 벡터를 부호화하여 상기 부호화 비용을 계산하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
- 움직임 벡터를 복호화하는 장치에 있어서,비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 움직임 벡터 해상도의 제한 단계를 복원하는 제한 해상도 복원기; 및상기 복원되는 움직임 벡터 해상도의 제한 단계에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 움직임 벡터 복원기를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
- 제 14 항에 있어서, 상기 움직임 벡터 복원기는,상기 복원되는 움직임 벡터 해상도의 제한 단계에 대응하는 코드 테이블을 이용하여 상기 움직임 벡터 부호화 데이터를 복호화하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
- 제 14항에 있어서,상기 해상도 제한 색인 데이터는,움직임 벡터 해상도 제한 단계 별로 계산된, 제한 단계별 움직임 벡터 해상도에 따른 부호화 비용에 기초하여 생성된 것을 특징으로 하는 움직임 벡터 복호화 장치.
- 제 14 항에 있어서,상기 해상도 제한 색인 데이터는 블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 복호화 단위마다 포함된 것을 특징으로 하는 움직임 벡터 복호화 장치.
- 제 14 항에 있어서,상기 복원된 움직임 벡터 해상도 제한 단계는 1/8 화소 단위의 해상도를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
- 제 16항에 있어서,상기 제한 단계별 움직임 벡터 해상도에 따른 부호화 비용은, 제한 단계별 움직임 벡터 해상도에 따라 결정된 움직임 벡터와 블록 모드 중 하나 이상을 이용하여 계산된 것을 특징으로 하는 움직임 벡터 복호화 장치.
- 영상을 부호화/복호화하는 방법에 있어서,움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따라 상기 영상의 움직임 벡터를 결정하고 상기 결정되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하고 상기 영상과 상기 예측 영상을 감산하고 변환 및 양자화한 후 부호화하여 제한 단계별 영상 부호화 데이터를 생성하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 계산하고, 상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하며, 상기 선택된 제한 단계에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터 및 상기 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인을 부호화하여 해상도 제한 색인 데이터를 출력하는 영상 부호화단계; 및비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하며, 상기 비트스트림으로부터 변환 및 양자화된 잔여 영상을 복원하고 역 양자화 및 역 변환하여 영상을 복원하고, 상기 복원되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하고 상기 잔여 영상과 상기 예측 영상을 가산하여 상기 영상을 복원하는 영상 복호화단계를 포함하는 것을 특징으로 하는 영상 부호화/복호화 방법.
- 영상을 부호화하는 방법에 있어서,움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따라 상기 영상의 움직임 벡터를 결정하는 단계;상기 결정되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하는 단계;상기 영상과 상기 예측 영상을 감산하여 잔여 영상을 생성하는 단계;상기 잔여 영상을 변환 및 양자화하는 단계;상기 변환 및 양자화된 잔여 영상을 부호화하여 제한 단계별 영상 부호화 데이터를 생성하는 단계;상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 계산하는 단계;상기 제한 단계별 영상 부호화 데이터의 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하는 단계; 및상기 선택된 제한 단계에 따른 움직임 벡터 해상도에 따라 결정되는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터 및 상기 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
- 제 21 항에 있어서, 상기 비트스트림을 생성하는 단계는,상기 선택된 움직임 벡터 해상도의 제한 단계에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하는 단계;상기 추정된 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 이용하여 상기 영상을 예측 부호화하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
- 제 22 항에 있어서, 상기 움직임 벡터를 추정하는 단계는,템플릿 매칭을 이용하여 상기 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하는 것을 특징으로 하는 영상 부호화 방법.
- 제 22 항에 있어서, 상기 영상을 예측 부호화하여 부호화된 영상 부호화 데이터를 포함하는 비트스트림을 생성하는 단계는,상기 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터에 따라 상기 영상을 예측 부호화하는 데 소요되는 부호화 비용과 상기 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터에 따라 상기 영상을 예측 부호화하는 데 소요되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 이용하여 부호화된 영상 부호화 데이터를 출력하는 것을 특징으로 하는 영상 부호화 방법.
- 영상을 복호화하는 방법에 있어서,비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 복원되는 움직임 벡터 해상도의 제한 단계에 따라 상기 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 단계;상기 비트스트림으로부터 추출되는 영상 부호화 데이터를 복호화하여 변환 및 양자화된 잔여 영상을 복원하는 단계;상기 변환 및 양자화된 잔여 영상을 역 양자화 및 역 변환하여 잔여 영상을 복원하는 단계;상기 복원되는 움직임 벡터를 이용하여 상기 영상의 예측 영상을 생성하는 단계; 및상기 잔여 영상과 상기 예측 영상을 가산하여 상기 영상을 복원하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
- 제 25 항에 있어서, 상기 움직임 벡터를 복원하는 단계는,상기 복원되는 움직임 벡터 해상도의 제한 단계에 따른 최소 움직임 벡터 해상도보다 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하는 단계;상기 복원되는 움직임 벡터를 이용하여 계산되는 부호화 비용과 상기 추정되는 움직임 벡터를 이용하여 계산되는 부호화 비용 중 작은 부호화 비용을 가지는 움직임 벡터를 움직임 벡터로서 복원하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
- 제 26 항에 있어서, 상기 움직임 벡터를 추정하는 단계는,템플릿 매칭을 이용하여 상기 작은 화소 단위의 움직임 벡터 해상도의 움직임 벡터를 추정하는 것을 특징으로 하는 영상 복호화 방법.
- 영상의 움직임 벡터를 부호화하는 방법에 있어서,움직임 벡터 해상도가 단계적으로 제한된 제한 단계별 움직임 벡터 해상도에 따른 부호화 비용을 계산하는 단계;상기 제한 단계별로 계산된 부호화 비용을 이용하여 움직임 벡터 해상도의 제한 단계를 선택하는 단계; 및상기 선택된 움직임 벡터 해상도의 제한 단계에 따라 결정되는 움직임 벡터가 부호화된 움직임 벡터 부호화 데이터 및 상기 선택된 움직임 벡터 해상도의 제한 단계를 나타내는 해상도 제한 색인 데이터를 출력하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
- 제 28 항에 있어서, 상기 제한 단계를 선택하는 단계는,블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 부호화 단위마다 상기 움직임 벡터 해상도의 제한 단계를 선택하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
- 제 28 항에 있어서, 상기 움직임 벡터 해상도는,정수 화소 단위의 해상도, 1/2 화소 단위의 해상도, 1/4 화소 단위의 해상도 및 1/8 화소 단위의 해상도 중 하나 이상을 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
- 제 28항에 있어서, 상기 제한 단계를 선택하는 단계는,상기 제한 단계별로 계산된 부호화 비용 중 가장 작은 부호화 비용을 가지는 제한 단계를 상기 움직임 벡터 해상도의 제한 단계로서 선택하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
- 제 28항에 있어서, 상기 부호화 비용을 계산하는 단계는,제한 단계별 움직임 벡터 해상도에 따라 블록마다의 움직임 벡터와 블록 모드 중 하나 이상을 결정하고 상기 결정된 움직임 벡터와 상기 결정된 블록 모드 중 하나 이상을 이용하여 부호화 비용을 계산하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
- 제 28 항에 있어서, 상기 부호화 비용을 계산하는 단계는,상기 제한 단계별 움직임 벡터 해상도에 따라 다른 코드 테이블을 이용하여 움직임 벡터를 부호화하여 상기 부호화 비용을 계산하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
- 움직임 벡터를 복호화하는 방법에 있어서,비트스트림으로부터 추출되는 해상도 제한 색인 데이터를 복호화하여 움직임 벡터 해상도의 제한 단계를 복원하는 단계; 및상기 복원되는 움직임 벡터 해상도의 제한 단계에 따라 비트스트림으로부터 추출되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터를 복원하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
- 제 34항에 있어서,상기 해상도 제한 색인 데이터는,움직임 벡터 해상도 제한 단계별로 계산된, 제한 단계별 움직임 벡터 해상도에 따른 부호화 비용에 기초하여 생성된 것을 특징으로 하는 움직임 벡터 복호화 방법.
- 제 34 항 또는 제 35항에 있어서, 상기 움직임 벡터를 복원하는 단계는,상기 복원되는 움직임 벡터 해상도의 제한 단계에 대응하는 코드 테이블을 이용하여 상기 움직임 벡터 부호화 데이터를 복호화하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
- 제 34 항 또는 제 35항에 있어서,상기 해상도 제한 색인 데이터는 블록, 슬라이스, 픽처 및 픽처 그룹 중 하나 이상을 포함하는 복호화 단위마다 포함된 것을 특징으로 하는 움직임 벡터 복호화 방법.
- 제 34 항 또는 제 35항에 있어서,상기 복원된 움직임 벡터 해상도 제한 단계는 1/8 화소 단위의 해상도를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
- 제 34 항 또는 제 35항에 있어서,상기 제한 단계별 움직임 벡터 해상도에 따른 부호화 비용은, 제한 단계별 움직임 벡터 해상도에 따라 결정된 움직임 벡터와 블록 모드 중 하나 이상을 이용하여 계산된 것을 특징으로 하는 움직임 벡터 복호화 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2009-0104411 | 2009-10-30 | ||
KR20090104411 | 2009-10-30 | ||
KR1020100106747A KR101449683B1 (ko) | 2009-10-30 | 2010-10-29 | 움직임 벡터 해상도 제한을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
KR10-2010-0106747 | 2010-10-29 |
Publications (3)
Publication Number | Publication Date |
---|---|
WO2011053054A2 WO2011053054A2 (ko) | 2011-05-05 |
WO2011053054A3 WO2011053054A3 (ko) | 2011-08-04 |
WO2011053054A9 true WO2011053054A9 (ko) | 2012-01-19 |
Family
ID=43922877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2010/007548 WO2011053054A2 (ko) | 2009-10-30 | 2010-10-29 | 움직임 벡터 해상도 제한을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101449683B1 (ko) |
WO (1) | WO2011053054A2 (ko) |
Cited By (1)
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140122193A (ko) * | 2013-04-05 | 2014-10-17 | 삼성전자주식회사 | 현재 영상이 참조 영상이 되는지 여부를 결정하는 방법과 그 장치 |
KR102349788B1 (ko) * | 2015-01-13 | 2022-01-11 | 인텔렉추얼디스커버리 주식회사 | 영상의 부호화/복호화 방법 및 장치 |
KR20220029762A (ko) | 2018-02-28 | 2022-03-08 | 삼성전자주식회사 | 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치 |
CN112565767B (zh) * | 2020-06-04 | 2022-04-01 | 腾讯科技(深圳)有限公司 | 视频解码方法、视频编码方法及相关设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276513A (en) * | 1992-06-10 | 1994-01-04 | Rca Thomson Licensing Corporation | Implementation architecture for performing hierarchical motion analysis of video images in real time |
KR970000683B1 (ko) * | 1993-05-31 | 1997-01-16 | 삼성전자 주식회사 | 해상도 가변 적응적 화상압축/복원방법 및 장치 |
JP2008258769A (ja) * | 2007-04-02 | 2008-10-23 | Canon Inc | 画像符号化装置及びその制御方法、並びに、コンピュータプログラム |
JP2009027762A (ja) * | 2008-11-07 | 2009-02-05 | Renesas Technology Corp | 動き補償画像符号化装置及び符号化方法 |
-
2010
- 2010-10-29 WO PCT/KR2010/007548 patent/WO2011053054A2/ko active Application Filing
- 2010-10-29 KR KR1020100106747A patent/KR101449683B1/ko active IP Right Grant
Cited By (1)
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 |
---|---|
WO2011053054A2 (ko) | 2011-05-05 |
KR20110048004A (ko) | 2011-05-09 |
WO2011053054A3 (ko) | 2011-08-04 |
KR101449683B1 (ko) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2013109039A1 (ko) | 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2010044563A2 (ko) | 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법 | |
WO2010050706A2 (ko) | 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2020071830A1 (ko) | 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치 | |
WO2020071829A1 (ko) | 히스토리 기반 영상 코딩 방법 및 그 장치 | |
WO2011111954A2 (ko) | 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2010027182A2 (ko) | 서브블록 내 임의 화소를 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2010120113A2 (ko) | 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2011145819A2 (ko) | 영상 부호화/복호화 장치 및 방법 | |
WO2013002549A2 (ko) | 영상 부호화/복호화 방법 및 장치 | |
WO2010038961A2 (ko) | 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2011031030A2 (ko) | 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2010114283A9 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2011031044A2 (ko) | 고해상도 동영상의 부호화/복호화 방법 및 장치 | |
WO2013070006A1 (ko) | 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치 | |
WO2012081879A1 (ko) | 인터 예측 부호화된 동영상 복호화 방법 | |
WO2012011672A2 (ko) | 확장된 스킵모드를 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2012099440A2 (ko) | 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법 | |
WO2012015275A2 (ko) | 블록 분할예측을 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2011142603A2 (ko) | 영상의 필터링 방법 및 장치와 그를 이용한 부호화/복호화를 위한 방법 및 장치 | |
WO2012046979A2 (ko) | 주파수 마스크 테이블을 이용한 주파수변환 블록 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2013002550A2 (ko) | 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치 | |
WO2013077659A1 (ko) | 모션 벡터의 예측 부호화/복호화 방법 및 장치 | |
WO2017048008A1 (ko) | 영상 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2011021910A2 (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: 10827138 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase in: |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS (EPO FORM 1205A DATED 02-08-2012) |
|
122 | Ep: pct app. not ent. europ. phase |
Ref document number: 10827138 Country of ref document: EP Kind code of ref document: A2 |