WO2012053796A2 - 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법 - Google Patents

차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법 Download PDF

Info

Publication number
WO2012053796A2
WO2012053796A2 PCT/KR2011/007736 KR2011007736W WO2012053796A2 WO 2012053796 A2 WO2012053796 A2 WO 2012053796A2 KR 2011007736 W KR2011007736 W KR 2011007736W WO 2012053796 A2 WO2012053796 A2 WO 2012053796A2
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
resolution
differential motion
differential
search
Prior art date
Application number
PCT/KR2011/007736
Other languages
English (en)
French (fr)
Other versions
WO2012053796A3 (ko
Inventor
송진한
임정연
한종기
이영렬
문주희
김해광
전병우
장명훈
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to US13/880,004 priority Critical patent/US20130202047A1/en
Priority to CN201180049929.8A priority patent/CN103155560B/zh
Publication of WO2012053796A2 publication Critical patent/WO2012053796A2/ko
Publication of WO2012053796A3 publication Critical patent/WO2012053796A3/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • Embodiments of the present invention relate to a differential motion vector encoding / decoding apparatus and a video encoding / decoding apparatus and method using the same.
  • a differential motion vector encoding / decoding apparatus for estimating a motion vector with different resolutions for each search region and adaptively encoding / decoding a differential motion vector corresponding to the resolution to increase compression and reconstruction efficiency.
  • FIG. 1 is a diagram illustrating a configuration of an encoder according to a conventional H.264 / AVC.
  • an encoder based on H.264 / AVC encodes input image data by performing intra prediction / inter prediction, transform quantization, entropy coding, and the like.
  • inter prediction is a process for removing temporal redundancy
  • intra prediction is for removing spatial redundancy.
  • the deduplicated data is compressed during the transformation and quantization steps. This compressed data is made into a bitstream through an entropy encoder.
  • a video is composed of a series of pictures, and each picture is divided into a predetermined area such as a macroblock, and the macroblock is a reference unit of image encoding and decoding.
  • Macroblocks are broadly classified into intra macroblocks and inter macroblocks according to encoding methods.
  • An intra macroblock refers to a macroblock that is encoded by using an intra prediction coding method of intra prediction.
  • Intra prediction encoding is a method of generating a prediction block by predicting a pixel of a current block by using pixels of blocks that have been previously encoded, decoded, and reconstructed in a current picture that performs current encoding, and encoding a difference value with a pixel of the current block. That's the way.
  • An inter macroblock refers to a macroblock that is encoded by using inter prediction coding of inter prediction.
  • Inter prediction encoding is a method of generating a prediction block by predicting a current block in a current picture with reference to one or more past pictures or future pictures, and encoding a difference value with the current block.
  • a picture referred to for encoding or decoding the current picture is referred to as a reference picture.
  • FIG. 1 is a block diagram of a video encoding apparatus schematically showing a video encoding apparatus according to H.264 / AVC.
  • the inter predictor performs inter prediction by dividing a macroblock into units of 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, 8 ⁇ 8, 8 ⁇ 4, 4 ⁇ 8, and 4 ⁇ 4 blocks.
  • the inter prediction encodes the difference between the two blocks by finding the block having the highest coding efficiency in the previously coded frame of the block to be currently coded.
  • the process of finding a block with high coding efficiency is a step of estimating a motion vector.
  • the method of estimating the motion vector of the current block selects the motion vector having the lowest cost among the many candidate motion vectors according to Equation 1 as the optimal motion vector.
  • Distortion means the sum of the absolute values of the difference between the current block and the block indicated by the motion vector
  • Rate is the value predicted for encoding the estimated motion vector
  • means the Lagrange product
  • the process of encoding the estimated motion vector is as follows. First, a predicted motion vector (PMV) predicted from neighboring blocks of the current block is calculated, and then a difference vector between the PMV and the motion vector found for the current block is calculated.
  • PMV predicted motion vector
  • motion can be predicted and used in integer units, but motion can be predicted more precisely in half-pixel or quarter-pixel increments. This is because the image is not only moved in integer pixels but can be moved in half pixels or quarter pixels. Therefore, when predicting only integer pixels, coding efficiency decreases in an image moving by half or quarter pixel units.
  • JM software a conventional video codec, estimates motion vectors up to integer pixels, half pixels, and quarter pixels, and then selects the current motion vector with the best resolution and the block to be coded. To compress the signal.
  • KTA software can find more precise motion by estimating the motion vector from integer pixel unit to 1/8 pixel unit.
  • the reference picture has only integer pixel values and no half or quarter pixels have values.
  • a half pixel or quarter pixel value is generated using a given integer pixel value.
  • JM a method of making half pixel and quarter pixel values, as shown in Fig. 2, produces half pixel values with six integer pixel values around. Further, a quarter pixel and a half pixel and an integer pixel are obtained by using a bi linear interpolation method.
  • KTA another reference software, KTA, can generate motion vectors up to 1/8 pixel units, and the method is shown in FIG. 3.
  • the conventional differential motion vector encoding method may be performed through the tables of FIGS. 4 and 5.
  • 4 and 5 illustrate codebooks for encoding differential motion vectors when using resolutions of motion vectors up to 1/4 and 1/8 pixel units, respectively.
  • the encoding method obtains the differential motion vectors of the x-axis and the y-axis, respectively, and makes a bit string using a code number corresponding to the differential motion vector among the values shown in FIGS. 4 and 5.
  • FIG. 6 is a diagram showing the configuration of a decoder based on H.264 / AVC.
  • the block data values coming from the encoder are subjected to entropy decoding, inverse quantization, and inverse transformation in order to produce differential block signal values containing quantization errors.
  • a differential motion vector value is generated using a codebook as shown in FIG. 4 or 5, and a motion vector value is generated by calculating PMV in the same manner as an encoder.
  • the reconstructed image is generated by adding the motion compensation block from the reference image to the differential block signal value containing the quantization error using the motion vector.
  • 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.
  • estimating a high resolution motion vector has the advantage of finding a reference block that is highly correlated with the current coding block, but it is variable considering all resolution vectors ranging from a low resolution motion vector value to a high resolution motion vector value. Since the length codeword is used, the compression efficiency can be lowered. For example, if a specific frame can be encoded using only integer vectors or motion vectors of 1/2 pixel units, if you use a variable-length codebook that takes into account all resolutions from integer pixel units to 1/8 pixel units, Because of the codewords considering unused 1/4 pixels and 1/8 pixels, the lengths of variable length codewords of frequently used integer pixels and 1/2 pixel code vectors may be increased, resulting in low compression efficiency. . On the contrary, in some cases, due to the characteristics of internal pixel values in a specific frame, the compression efficiency may be high when variable length codewords considering motion vectors of all resolutions from integer pixel units to 1/8 pixel units are used.
  • the embodiment of the present invention has been devised to efficiently solve the above-described problem, and estimates a motion vector at different resolutions for each search region, and accordingly compresses the differential motion vector by adaptively encoding / decoding corresponding to the resolution. And a differential motion vector encoding / decoding apparatus and method for improving the reconstruction efficiency, and an image encoding / decoding apparatus and method using the same.
  • the image encoding / decoding apparatus for achieving the above object sets the resolution of different motion vectors for each search region around the predicted motion vector of the current block, and corresponds to each search region.
  • an image decoder extracting the differential motion vector from the bitstream and decoding the extracted differential motion vector according to the resolution corresponding to the area to which the differential motion vector belongs among the respective search areas.
  • an apparatus for encoding a differential motion vector comprising: an area resolution setting unit configured to set resolutions of different motion vectors for each search area around a predicted motion vector of a current block; A motion estimator for estimating motion at a resolution corresponding to each search area to generate a motion vector; A differential motion vector calculator configured to calculate a differential motion vector between the generated motion vector and the predicted motion vector; And a differential motion vector encoder which encodes the calculated differential motion vector at a resolution corresponding to the generated motion vector.
  • the differential motion vector encoding apparatus may further include a threshold encoder that encodes the threshold of each search region at the maximum resolution of the corresponding region and transmits the threshold value of the search region to the decoder as a bitstream.
  • the resolution setting unit for each region may set resolutions of different motion vectors for each search region to values agreed with the decoder.
  • the resolution setting unit for each region may set the resolution for each search region such that the resolution of the motion vector is lowered as the distance from the predicted motion vector of the current block increases.
  • the resolution setting unit for each region may set the resolution for each search region such that the resolution of the motion vector increases as the distance from the predicted motion vector of the current block increases.
  • the resolution setting unit for each region may set different resolutions of the motion vectors for each search region by varying sections of each search region according to the x-axis direction and the y-axis direction based on the predicted motion vector of the current block.
  • a differential motion vector decoding apparatus comprising: a threshold decoding unit configured to extract and decode a threshold value encoded at a maximum resolution for each search region in a bitstream received from an encoder; An area resolution setting unit for setting resolutions of different motion vectors for each search area based on the decoded thresholds; And a differential motion vector decoder extracting the differential motion vector from the bitstream and decoding the extracted differential motion vector according to the resolution corresponding to the area to which the differential motion vector belongs among the respective search areas.
  • a differential motion vector decoding apparatus for achieving the above object is a resolution for each region for dividing a search region by a threshold value mutually agreed with an encoder and setting resolutions of different motion vectors for each search region.
  • Setting unit And a differential motion vector decoder extracting the differential motion vector from the bitstream and decoding the extracted differential motion vector according to the resolution corresponding to the area to which the differential motion vector belongs among the respective search areas.
  • an image encoding / decoding method sets resolutions of different motion vectors for each search area around a predicted motion vector of a current block, and corresponds to each search area.
  • the differential motion vector encoding method may further include encoding a threshold value of each search region at the maximum resolution of the corresponding region and transmitting the encoded value to the decoder as a bitstream.
  • resolutions of different motion vectors for each search region may be set to values agreed with the decoder.
  • the resolution may be set for each search area such that the resolution of the motion vector is lowered as the distance from the predicted motion vector of the current block increases.
  • the resolution may be set for each search area such that the resolution of the motion vector increases as the distance from the predicted motion vector of the current block increases.
  • the resolution setting step may set the resolution of the different motion vector for each search area by varying the sections of each search area according to the x-axis direction and the y-axis direction around the predicted motion vector of the current block.
  • the compression and reconstruction efficiency in the case of using a variable length codebook by estimating a motion vector at different resolutions for each search region and adaptively encoding / decoding a differential motion vector corresponding to the resolution To increase.
  • 1 is a diagram schematically showing a structure of an encoder according to H.264 / AVC.
  • FIG. 2 is a diagram illustrating a method of generating a half pixel and a quarter pixel value in a video codec JM.
  • FIG. 3 is a diagram illustrating a method of estimating a motion vector up to 1/8 pixel unit in KTA, which is reference software.
  • FIG. 4 is a diagram illustrating an example of a codebook for encoding a differential motion vector of a conventional quarter pixel unit.
  • FIG. 5 is a diagram illustrating an example of a codebook for encoding a differential motion vector of a conventional 1/8 pixel unit.
  • FIG. 6 is a diagram schematically illustrating a structure of a decoder according to H.264 / AVC.
  • FIG. 7 is a diagram schematically illustrating an apparatus for encoding a differential motion vector according to an embodiment of the present invention.
  • FIG. 8 is a diagram illustrating two-dimensional division of a search region based on a predicted motion vector of the current block.
  • FIG. 9 is a diagram illustrating region division of a search region in one dimension based on a predicted motion vector of the current block.
  • FIG. 10 is a diagram illustrating an example in which a resolution type of a motion vector available for each search area decreases as the distance from the predicted motion vector of the current block decreases, and the resolution of the motion vector decreases.
  • FIG. 11 is a diagram illustrating an example of a codebook for encoding a differential motion vector according to FIG. 10.
  • FIG. 12 is a diagram illustrating an example in which the types of resolutions of the available motion vectors for each search area increase as the distance from the predicted motion vector of the current block increases, and the resolution of the motion vectors increases.
  • FIG. 13 is a diagram illustrating an example of a codebook for encoding a differential motion vector according to FIG. 12.
  • FIG. 14 is a diagram illustrating an example of arbitrarily setting a type of resolution that can be used for each search area irrespective of a distance based on a predicted motion vector of a current block.
  • FIG. 15 is a diagram illustrating an example of a codebook for encoding a differential motion vector according to FIG. 14.
  • FIG. 16 is a diagram illustrating an example in which a region division for a search region is set differently according to an x-axis and a y-axis based on a predicted motion vector of a current block.
  • FIG. 17 is a diagram illustrating an example of determining a motion vector for each section about an x-axis of FIG. 16.
  • FIG. 18 is a diagram illustrating an example of a codebook for encoding a differential motion vector of FIG. 17.
  • FIG. 19 is a diagram illustrating an example of determining a motion vector for each section about the y-axis of FIG. 16.
  • FIG. 20 is a diagram illustrating an example of a codebook for encoding a differential motion vector of FIG. 19.
  • 21 is a diagram schematically showing an apparatus for decoding a differential motion vector according to an embodiment of the present invention.
  • 22 is a diagram schematically illustrating an apparatus for decoding a differential motion vector according to another embodiment of the present invention.
  • FIG. 23 is a flowchart illustrating a differential motion vector encoding method of the differential motion vector encoding apparatus of FIG. 7.
  • 24 is a diagram illustrating an example of setting a resolution application region of a motion vector in a quadrangular shape.
  • 25 is a diagram illustrating an example of setting a resolution application region of a motion vector in a rhombus shape.
  • FIG. 26 is a diagram illustrating a change in syntax due to a threshold value transmitted to a decoder.
  • FIG. 27 is a flowchart illustrating a differential motion vector decoding method by the differential motion vector decoding apparatus of FIG. 21.
  • FIG. 28 is a flowchart illustrating a differential motion vector decoding method by the differential motion vector decoding apparatus of FIG. 22.
  • FIG. 29 is a diagram illustrating an example in which all threshold values that are currently encoded and used in all reference frames are equally used.
  • 30 is a diagram illustrating an example of using different threshold values for all reference images.
  • a video encoding apparatus (Video Encoding Apparatus), a video decoding apparatus (Video Decoding Apparatus) to be described below is a personal computer (PC), notebook computer, personal digital assistant (PDA), portable multimedia player (PMP) : Portable Multimedia Player (PSP), PlayStation Portable (PSP: PlayStation Portable), Mobile Communication Terminal (Mobile Communication Terminal), and the like, and may be used to encode a video or a communication device such as a communication modem for communicating with various devices or a wired or wireless communication network. It refers to various devices having various programs for decoding and a memory for storing data, a microprocessor for executing and controlling a program.
  • PC personal computer
  • PDA personal digital assistant
  • PMP portable multimedia player
  • PSP Portable Multimedia Player
  • PSP PlayStation Portable
  • Mobile Communication Terminal Mobile Communication Terminal
  • the image encoded in the bitstream by the video encoding apparatus is real-time or non-real-time through the wired or wireless communication network, such as the Internet, local area wireless communication network, wireless LAN network, WiBro network, mobile communication network, or the like, or a cable, universal serial bus (USB: Universal)
  • the image decoding apparatus may be transmitted to a video decoding apparatus through a communication interface such as a serial bus, decoded by the video decoding apparatus, reconstructed, and played back.
  • the technique described in the present invention is not limited to the motion vector estimation unit (eg, macroblock, 16x16, 16x8, 8x16, 8x8, 4x8, 8x4, 4x4) used in the existing H.264 or KTA,
  • the size of the vector estimation block is not limited.
  • the present technology may be used when the motion vector estimation unit is square, rectangular, triangular, and various other forms.
  • the differential motion vector encoding apparatus 700 includes a resolution setting unit 710 for each region, a motion estimation unit 720, a differential motion vector calculating unit 730, a differential motion vector encoding unit 740, and The threshold encoder 750 may be included.
  • the resolution setting unit 710 sets resolutions of different motion vectors for each search area based on the predicted motion vector of the current block.
  • the conventional encoding of differential motion vectors uses motion vectors of the same resolution in all regions around the predicted motion vectors.
  • the differential motion vector encoding apparatus 700 estimates motion vectors having different resolutions for each search region based on the predicted motion vectors, unlike the conventional differential motion vector encoding method.
  • the resolution setting unit 710 for each region sets the resolution for each search region such that the resolution of the motion vector is lower as the distance from the prediction motion vector becomes farther, or the distance is far from the prediction motion vector of the current block. As the resolution increases, the resolution of the motion vector may be set for each search area.
  • the available resolution may be variously set according to the distance based on the predicted motion vector of the current block, without being limited thereto.
  • different search vectors may be set for each search region by varying sections of the search region according to directions based on the predicted motion vector of the current block.
  • the resolution setting unit 710 for each area may calculate a threshold value for each area of each search area by using the current image and the reference image.
  • a method of calculating a threshold is not limited, and a table (codebook) for encoding a differential motion vector may be generated using a threshold of a predetermined search region.
  • the motion estimation unit 720 generates a motion vector by estimating the motion at a resolution corresponding to each search area set by the resolution setting unit 710 for each area.
  • the differential motion vector calculator 730 calculates a differential motion vector between the motion vector generated by the motion estimator 720 and the predicted motion vector.
  • the differential motion vector encoder 740 encodes the differential motion vector calculated by the differential motion vector calculator 730 with a resolution corresponding to the motion vector generated by the motion estimation unit 720.
  • the threshold encoder 750 encodes the threshold value of each search region at the maximum resolution of the region and transmits the threshold value of the search region to the decoder as a bitstream.
  • the resolution setting unit 710 for each region uses a threshold value indicating a range of an area promised with the decoder, and thus different movements for each search region. It may be implemented to set the resolution of the vector.
  • FIG. 8 is a diagram illustrating region division of a search region in two dimensions based on a predicted motion vector of a current block
  • FIG. 9 is a diagram illustrating region segmentation of a search region in one dimension based on a predicted motion vector of a current block. to be.
  • a search region for estimating a motion vector according to a distance based on the predicted motion vector of the current block may be divided.
  • FIG. 8 and FIG. 9 show that each area is divided at the same interval, the present invention is not limited thereto and each area may be set at different intervals.
  • the divided search regions have motion vectors of different resolutions in each region. For example, area A uses motion vector resolution up to 1 / 8pel, area B uses motion vector resolution up to 1/4 pel, area C uses motion vector resolution up to 1 / 2pel, and area D uses integer resolution.
  • the motion vector is encoded.
  • FIG. 10 is a diagram illustrating an example in which a type of resolution of a usable motion vector decreases as the distance of each search area increases with respect to the predicted motion vector of the current block.
  • the resolution setting unit 710 for each region is up to 1/8 resolution in the A region, up to 1/4 resolution in the B region, 1/2 resolution in the C region, and finally 1 / in the D region. It may be set to estimate the motion vector in consideration of up to 1 resolution.
  • the size of the differential motion vector is between -2/8 and 2/8, then in the area A, 3/8 to 8/8 and -3/8 If it exists between -8/8, it can be set to B area, and if it exists between 9/8-16/8 and -9/8 to -16/8, it can be set to C area and D area if it exists in other area.
  • the range of each region described herein is only an example in consideration of 1/8 resolution, but is not limited thereto.
  • the threshold encoder 750 encodes the threshold of each search region to inform the region set in the decoder.
  • the threshold may be encoded and used according to the maximum resolution. For example, when only up to a 1/4 pixel area is used, the threshold encoder 750 encodes the threshold value in units of 1/4 pixels and transmits the threshold value to the decoder. Since the above example uses up to a 1/8 pixel region, the threshold encoder 750 generates a threshold value in units of 1/8 pixels and transmits the threshold value to the decoder. The embodiment according to the present invention does not limit the method of transmitting the threshold value. Using the above example, the codebook of FIG. 5 is newly designed, as shown in FIG. 11.
  • FIG. 11 is a codebook for encoding a differential motion vector according to FIG. 10, and is written in Exponential Golomb Code as shown in FIG. 4 or 5.
  • Exponential Golmb Code counts the number of zeros before the first one and counts how many bits are read after the first one. 4 and 5 manufactured in the conventional manner, and FIG. 11 produced in the manner according to the embodiment of the present invention, have the same relationship between the code number and the bit string since the codebook is produced in the same manner. Only the differential motion vector value indicated by each code number is different.
  • a differential motion vector is coded with an Exponential Golomb Code, a code number is assigned to a smaller value first, and if it is the same size, a code number is assigned to a positive value first. This method is used equally by the encoder and the decoder.
  • a codebook for a differential motion vector is prepared using the example shown in FIG. 10, it can be written as shown in FIG. 11. Since area A supports up to 1/8 resolution, the motion vector is closely searched as shown in FIG. On the other hand, since the B region finds the motion vector considering the 1/4 resolution, the motion vector of 3/8, 5/8, 7/8, corresponding to 1/8 resolution is excluded from the codebook. In the C area, since the resolution is considered to be 1/2 resolution, the motion vectors of the points corresponding to 1/4 resolution and 1/8 resolution are 9/8, 10/8 (5/4), 11/8, 13/8, 14 / 8 (7/4) and 15/8 are excluded from the codebook. Finally, in the area D, only 1/1 resolution is considered, so points corresponding to 1/2, 1/4, and 1/8 resolutions are excluded from the codebook.
  • the existing algorithm indicates the second integer pixel 8/8 (1).
  • the fourth integer pixel is used. 3/1 (24/8).
  • the resolution type becomes smaller as the distance from the prediction motion vector of the current block becomes smaller is described as an example. It may be set.
  • the motion vector can be estimated by considering 1/1 resolution in area A, 1/2 resolution in B area, 1/4 resolution in C area, and 1/8 resolution in D area. Can be.
  • the magnitude of the differential motion vector is between -3/8 and 3/8, the area A, 4/8 to 12/8 and -4/8 to -12 / If it is between 8, it can be set to B area, and if it is between 13/8 to 20/8 and -13/8 to -20/8, it can be set to C area and D area if it exists in other area.
  • a codebook for a differential motion vector is prepared using the example shown in FIG. 12, it can be written as shown in FIG. 13. Since area A supports up to 1/1 resolution, a motion vector is created only at a 1/1 resolution position as shown in FIG. On the other hand, in the B region, motion vectors are searched for up to 1/2 resolution, so motion vectors corresponding to 1/4 and 1/8 resolutions are 5/8, 6/8 (3/4), 7/8, and 9/8. , 11/8 is excluded from the codebook. In the area C, up to 1/4 resolution is considered, and motion vectors 13/8, 15/8, 17/8, and 19/8 corresponding to 1/8 resolution are excluded from the codebook. Finally, since D is considered up to 1/8, the motion vector is found for all resolutions.
  • the type of resolution available for each search region may be arbitrarily set based on the predicted motion vector of the current block regardless of the distance.
  • FIG. 14 is a diagram illustrating an example of arbitrarily setting types of resolutions available for each search area regardless of a distance from a predicted motion vector of a current block
  • FIG. 15 is a codebook for encoding a differential motion vector according to FIG. 14. A diagram showing an example.
  • each threshold value for each search region may be encoded by the threshold encoder 750 and then transmitted to the decoder, or the transmission of the threshold value may be omitted by the encoder and the decoder promising to use the threshold values for each search region. You may.
  • the information about the resolution combination of motion vectors used in each region divided by the thresholds for each search region may also be used as promised at the transmitter and the receiver, or may be transmitted after encoding information about the resolution combination at the encoder. .
  • the search area setting for the x-axis and the y-axis may be differently set as shown in FIG. 16. That is, the threshold value used in each of the x-axis and the y-axis may be different values.
  • an example of determining a motion vector for each x-axis section may be illustrated in FIG. 17, and a codebook for encoding a differential motion vector of an x-axis according to an embodiment of the present disclosure may be illustrated in FIG. 18.
  • an example of determining a motion vector for each y-axis interval may be illustrated in FIG. 19, and a codebook for encoding a differential motion vector of the y-axis according to an embodiment of the present disclosure may be illustrated as illustrated in FIG. 20.
  • An embodiment of the differential motion vector decoding apparatus 2100 may include a threshold decoder 2110, an area-specific resolution setting unit 2120, and a differential motion vector decoding unit 2130.
  • the threshold decoder 2110 extracts and decodes a threshold value for each search region from the bitstream received from the encoder.
  • the threshold value is a threshold value for each area of each search area set by the differential motion vector encoding apparatus 700 according to an embodiment of the present invention, and is encoded at the maximum resolution among the resolutions of the motion vectors available in each area. It is.
  • the resolution setting unit 2120 for each region sets resolutions of different motion vectors for each search region based on the threshold values decoded by the threshold decoder 2110. That is, the resolution setting unit 2120 for each region may know the available motion vector resolution in each region for each search region set by the differential motion vector encoding apparatus 700 based on each of the decoded threshold values. For example, when the threshold value of the region A of FIG. 10 is extracted and decoded from the bitstream, it can be seen that the application region of the region A is -2/8 to 2/8, and thus the motion available in the region. Since the maximum resolution of the vector is encoded by 1/8, it can be seen that a motion vector resolution within the maximum resolution of 1/8 can be used.
  • the differential motion vector decoder 2130 extracts the differential motion vector from the bitstream, and decodes the differential motion vector according to the resolution corresponding to the area to which the differential motion vector belongs among the respective search areas.
  • the differential motion vector decoder 2130 may generate the codebook as shown in FIG. 11 by sequentially arranging the differential motion vectors in the order of the bitstrings based on the decoded threshold values of the respective search areas.
  • the bitstring and the index number (code number) assigned to each bitstring are preferably generated the same as the bitstring used in the differential motion vector encoding apparatus 700 and the index number assigned to each bitstring. Do.
  • an embodiment of the differential motion vector decoding apparatus 2200 may include an area-specific resolution setting unit 2210 and a differential motion vector decoding unit 2220.
  • the resolution setting unit 2210 for each region may set resolutions of different motion vectors for each search region to values agreed with the encoder.
  • the resolution setting unit 2210 for each region may set the resolution of each search region and the usable motion vector as shown in FIG. 10 in agreement with the encoder.
  • the differential motion vector decoder 2220 extracts the differential motion vector from the bitstream, and decodes the differential motion vector according to the resolution corresponding to the area to which the differential motion vector belongs among the respective search areas.
  • FIG. 23 is a flowchart illustrating a differential motion vector encoding method of the differential motion vector encoding apparatus of FIG. 7.
  • the resolution setting unit 710 for each region sets resolutions of different motion vectors for each search area around the predicted motion vector of the current block (S2310). To this end, the resolution setting unit 710 for each region sets the resolution for each search region such that the resolution of the motion vector is lower as the distance from the prediction motion vector becomes farther, or the distance is far from the prediction motion vector of the current block. As the resolution increases, the resolution of the motion vector may be set for each search area. Alternatively, the available resolution may be variously set according to the distance based on the predicted motion vector of the current block, without being limited thereto. In addition, different search vectors may be set for each search area by different sections of the search area according to the x and y axis directions based on the predicted motion vector of the current block.
  • the shape of the search area may be set as shown in FIGS. 24 and 25.
  • 24 is a diagram illustrating a case in which the search region is set in a quadrangle shape
  • FIG. 25 is a diagram illustrating a case in which the search region is set in a rhombus shape.
  • a search region is encoded in two dimensions, it may be easier to compress a motion vector.
  • the resolution is determined and used as shown in FIG. 10
  • the x-axis and the y-axis are encoded in FIG.
  • 2D if a difference value is found to be larger among the difference motion values of the x-axis and the y-axis, the smaller value of the difference value can directly calculate its resolution.
  • the differential motion vector currently encoded with the differential motion value for the x-axis is considered to be up to 1/4 of the motion. It can be seen that. Therefore, instead of using the codebook considering 1/8, the y-axis can use the codebook considering 1/4.
  • the encoding of the differential motion vector according to the embodiment of the present invention can set the search region in various ways, and the method of setting the search region is not limited.
  • the resolution setting unit 710 for each region may calculate a threshold value for each region of each search region using the current image and the reference image.
  • a method of calculating a threshold is not limited, and a table (codebook) for encoding a differential motion vector may be generated using a threshold of a predetermined search region.
  • the threshold encoder 750 encodes the threshold of each search region at the maximum resolution of the corresponding region and transmits the threshold value of the search region to the decoder as a bitstream (S2320).
  • the threshold value encoding unit 750 may encode and insert the gap between the slice header and the coding unit block as illustrated in FIG. 26.
  • the coded threshold is used by the decoder to decode the current frame.
  • FIG. 26 is a diagram illustrating a method of adding a threshold to a slice header and transmitting the differential motion vector according to an embodiment of the present invention. As shown in FIG. 26, the above-mentioned threshold value is encoded and sent after the slice header.
  • the resolution setting unit 710 for each region has a threshold value indicating a range of the area promised with the decoder. It may be implemented to set the resolution. In this case, the encoding of the threshold may be omitted.
  • the motion estimator 720 generates a motion vector by estimating the motion at a resolution corresponding to each search area set by the resolution setting unit 710 for each area (S2330).
  • the differential motion vector calculator 730 calculates a differential motion vector between the motion vector generated by the motion estimation unit 720 and the predicted motion vector (S2340).
  • the differential motion vector encoder 740 encodes the differential motion vector calculated by the differential motion vector calculator 730 with a resolution corresponding to the motion vector generated by the motion estimation unit 720 (S2350).
  • FIG. 27 is a flowchart illustrating a differential motion vector decoding method by the differential motion vector decoding apparatus of FIG. 21.
  • the threshold decoder 2110 extracts and decodes a threshold value for each search region from a bitstream received from an encoder (S2710).
  • the area resolution setting unit 2120 sets resolutions of different motion vectors for each search area based on the threshold values decoded by the threshold decoder 2110 (S2720). That is, the resolution setting unit 2120 for each region may know the available motion vector resolution in each region for each search region set by the differential motion vector encoding apparatus 700 based on each of the decoded threshold values.
  • the differential motion vector decoder 2130 extracts the differential motion vector from the bitstream, and decodes the differential motion vector according to the resolution corresponding to the area to which the differential motion vector belongs among the respective search areas (S2730).
  • the differential motion vector decoder 2130 may generate the codebook as shown in FIG. 11 by sequentially arranging the differential motion vectors in the order of the bitstrings based on the decoded threshold values of the respective search areas.
  • the bitstring and the index number (code number) assigned to each bitstring are preferably generated the same as the bitstring used in the differential motion vector encoding apparatus 700 and the index number assigned to each bitstring. Do.
  • FIG. 28 is a flowchart illustrating a differential motion vector decoding method by the differential motion vector decoding apparatus of FIG. 22.
  • the resolution setting unit 2210 for each region may set resolutions of different motion vectors for each search region to values agreed with the encoder (S2810).
  • the resolution setting unit 2210 for each region may set the resolution of each search region and the usable motion vector as shown in FIG. 10 in agreement with the encoder.
  • the differential motion vector decoder 2220 extracts the differential motion vector from the bitstream, and decodes the differential motion vector according to the resolution corresponding to the area to which the differential motion vector belongs among the respective search areas (S2820).
  • a method of using a threshold when a video is compressed and decoded using a plurality of reference pictures will be described.
  • To decode the current image first, information is read from a slice header, a threshold is read, and data of a coding unit block is read. The decoded threshold is used for each reference picture to decode the current frame through motion compensation.
  • FIG. 29 shows an example of using the same threshold values that are currently encoded in all reference frames.
  • FIG. 30 shows an example of using a threshold value differently according to characteristics of the reference image.
  • the embodiment of the present invention estimates a motion vector at different resolutions for each search region, and accordingly uses a variable length codebook by adaptively encoding / decoding a differential motion vector corresponding to the resolution. It is a very useful invention that produces the effect of increasing the compression and recovery efficiency.

Landscapes

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

Abstract

차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치는, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 움직임 추정부; 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 차분 움직임벡터 계산부; 및 계산된 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 차분 움직임벡터 부호화부를 포함하는 것을 특징으로 한다.

Description

차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
본 발명의 실시예는 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법에 관한 것이다. 보다 상세하게는, 탐색 영역별로 서로 다른 해상도로 움직임벡터를 추정하고, 그에 따라 차분 움직임 벡터를 해상도에 대응하여 적응적으로 부호화/복호화함으로써 압축 및 복원 효율을 높일 수 있는 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
도 1은 종래의 H.264/AVC에 따른 부호화기의 구성을 도시한 도면이다. 도 1에 도시한 바와 같이, H.264/AVC에 따른 부호화기는 화면 내 예측/화면 간 예측, 변환 양자화, 엔트로피 코딩 등을 수행하여 입력된 영상 데이터를 부호화한다. 이때, 화면 간 예측은 시간적 중복성을 제거하기 위한 과정이고, 화면 내 예측은 공간적 중복성을 제거하기 위한 것이다. 중복성이 제거된 데이터는 변환과 양자화 단계를 거치면서 압축이 된다. 이렇게 압축된 데이터는 엔트로피 인코더를 통해서 비트스트림으로 만들어진다.
통상적으로 동영상은 일련의 픽처(Picture)로 구성되어 있으며, 각 픽처들은 매크로블록(Macroblock)과 같은 소정의 영역으로 분할되며 매크로블록은 영상 부호화 및 복호화의 기준단위가 된다. 매크로블록은 부호화 방법에 따라 크게 인트라 매크로블록(Intra Macroblock), 인터 매크로블록(Inter Macroblock)으로 분류된다. 인트라 매크로블록은 화면 내 예측하는 방식의 인트라 예측 부호화(Intra Prediction Coding) 방식을 사용하여 부호화되는 매크로블록을 뜻한다. 인트라 예측 부호화란 현재 부호화를 수행하는 현재 픽처 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 화소를 이용하여 현재 블록의 화소를 예측함으로써 예측 블록을 생성하고 현재 블록의 화소와의 차분값을 부호화하는 방식이다. 인터 매크로블록은 화면 간 예측하는 방식의 인터 예측 부호화(Inter Prediction Coding)를 사용하여 부호화되는 매크로블록을 뜻한다. 인터 예측 부호화란 하나 이상의 과거 픽처 또는 미래 픽처를 참조하여 현재 픽처 내의 현재 블록을 예측함으로써 예측 블록을 생성하고 현재 블록과의 차분값을 부호화하는 방식이다. 여기서, 현재 픽처를 부호화하거나 복호화하는데 참조되는 픽처를 참조 픽처(Reference Picture)라고 한다.
도 1은 H.264/AVC에 따른 영상 부호화 장치를 개략적으로 나타낸 영상 부호화 장치의 블록 구성도이다.
도 1을 참조하면, 인터 예측기은 매크로 블록을 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4블록 단위로 분할하여 인터 예측을 수행한다. 인터 예측은 현재 코딩하려는 블록을 이전에 코딩된 프레임(frame)에서 가장 코딩효율이 높은 블록을 찾아서 두 블록 간의 차이를 부호화한다. 이렇게 코딩효율이 높은 블록을 찾는 과정이 움직임 벡터를 추정하는 단계이다. 현재 블록의 움직임 벡터를 추정하는 방식은 많은 후보 움직임 벡터 중에서 다음의 수학식 1에 따라 발생하는 비용이 가장 작은 움직임 벡터를 최적의 움직임 벡터로 선택한다.
수학식 1
Figure PCTKR2011007736-appb-M000001
여기서 Distortion은 현재 블록과 움직임 벡터가 가리키는 블록과의 차이의 절대값의 합을 의미하며 Rate는 추정된 움직임 벡터를 부호화할 때 발생되는 비트를 예측한 값이며 λ는 라그랑지 곱을 의미한다.
추정된 움직임 벡터를 부호화하는 과정은 다음과 같다. 먼저, 현재 블록의 주위 블록들로부터 예측된 예측 움직임 벡터(PMV)를 계산한 후, 이 PMV와 현재 블록에 대해서 찾아진 움직임 벡터와의 차분 벡터를 계산한다.
이렇게 움직임 벡터를 추정할 때 움직임을 정수 단위로 예측하여 사용할 수 있지만 좀더 정교하게 반 화소 혹은 1/4 화소 단위로 움직임을 예측할 수 있다. 이러한 이유는 영상이 정수 화소 단위로만 움직이는 것이 아니라 반 화소 혹은 1/4화소 단위로 움직임이 가능하기 때문이다. 따라서 정수 화소로만 예측하면 반 화소 혹은 1/4 화소 단위로 움직이는 영상에선 부호화 효율이 떨어지게 된다.
이런 점을 고려하여 종래의 비디오 코덱인 JM software는 움직임 벡터를 정수화소 단위, 반 화소 단위, 그리고 1/4화소 단위까지 추정한 후, 현재 코딩하려는 블록과 압축효율이 가장 좋은 해상도의 움직임 벡터를 사용하여 신호를 압축한다. 또한, KTA software에서는 더 정확한 움직임 벡터를 추정하기 위하여 정수 화소 단위부터 1/8 화소 단위까지 움직임 벡터를 추정함으로써 더욱 정밀한 움직임을 찾을 수 있게 되었다. 하지만, 참조 영상은 정수 화소 값만 가지고 있고 반 화소 혹은 1/4 화소는 값을 가지지 못한다. 따라서 반 화소 혹은 1/4 화소 값을 만들기 위해서 주어진 정수 화소 값을 이용하여 반 화소 혹은 1/4화소 값을 만들어 내게 된다.
종래의 비디오 코덱인 JM에서의 반 화소와 1/4 화소 값을 만드는 방법은 도 2에 나타낸 바와 같이, 반 화소는 주위에 6개의 정수 화소 값을 가지고 반화소 값을 만들어 낸다. 또한, 1/4 화소는 주변에 반 화소와 정수 화소를 bi linear 보간(interpolation) 방법을 이용하여 구하게 된다. 반면에, 또 다른 Reference software인 KTA에서는 1/8 화소 단위까지 움직임 벡터를 만들 수 있으며, 그 방법은 도 3에 나타낸 바와 같다.
종래의 차분 움직임 벡터 부호화 방법은 도 4 및 도 5의 테이블(Table)을 통해서 이루어질 수 있다. 도 4 및 도 5는 각각 1/4, 1/8 화소 단위까지 움직임 벡터의 해상도를 사용하는 경우, 차분 움직임 벡터를 부호화하기 위한 코드북을 나타낸다. 부호화 방법은 x축과 y축의 차분 움직임 벡터를 각각 구하고, 도 4 및 도 5에 제시한 값들 중 해당 차분 움직임 벡터에 대응하는 코드 번호를 이용하여 비트 스트링을 만들게 된다.
도 6은 H.264/AVC에 따른 복호화기의 구성을 나타낸 도면이다. 부호화기로부터 들어온 블록 데이터 값은 엔트로피 디코딩, 역양자화 및 역변환을 차례로 거쳐서 양자화 에러가 들어간 차분 블록 신호 값이 만들어지게 된다. 현재 블록이 인터로 코딩된 블록이면 도 4 또는 도 5와 같은 코드북을 이용하여 차분 움직임 벡터값을 만들게 되고, 인코더와 동일한 방법으로 PMV를 계산하여 움직임 벡터값을 만들게 된다. 이렇게 만들어진 움직임 벡터를 이용하여 참조 영상으로부터 움직임 보상 블록을 가지고 양자화 에러가 들어간 차분 블록 신호 값과 가산하여 복원 영상을 만들게 된다.
도 4 또는 도 5를 통해 알 수 있듯이, 통상적인 압축 표준에서는 여러 가지 해상도의 움직임 벡터를 모두 부호화하기 위해 작은 크기의 움직임 벡터를 부호화하기 위해서도 긴 코드워드들이 사용되며, 결과적으로 움직임 벡터를 부호화하여 생성되는 움직임 벡터 부호화 데이터의 크기가 커져서 압축 효율이 저하된다. 예를 들어 도 4를 참조하여, 차분 움직임 벡터가 (3,2)인 경우, '3'이 부호화되기 위해서는 코드 번호(Code Number)가 '23'인 비트스트링 '000011000'이 사용되고 '2'가 부호화되기 위해서는 코드 번호가 '15'인 비트스트링 '000010000'이 사용된다. 이와 같이 작은 크기의 움직임 벡터를 부호화하기 위해 긴 코드워드들이 사용되는 것은 1/2 화소 단위의 해상도와 1/4 화소 단위의 해상도의 움직임 벡터를 부호화하기 위한 코드 워드와 정수 화소 단위의 해상도의 움직임 벡터를 부호화하기 위한 코드워드를 함께 사용하기 때문이다.
이와 같이, 높은 해상도의 움직임 벡터를 추정하는 것은 현재 코딩 블록과 상관성이 매우 높은 참조 블록을 찾을 수 있다는 장점이 있지만, 낮은 해상도의 움직임 벡터값부터 높은 해상도의 움직임 벡터값까지 모든 해상도 벡터를 고려한 가변길이 코드워드를 이용하기 때문에 압축효율이 낮아질 수 있다. 예를 들어, 특정 프레임 에서는 정수 화소 또는 1/2 화소 단위의 움직임 벡터만 사용해서 부호화할 수 있는 경우, 정수 화소 단위부터 1/8화소 단위까지의 모든 해상도를 고려하는 가변길이 코드북을 사용한다면, 사용되지도 않는 1/4 화소 및 1/8 화소를 고려하는 코드워드 때문에, 빈번하게 사용되는 정수 화소 및 1/2 화소 코드벡터의 가변길이 코드워드의 길이가 길어지게 되어 압축효율이 낮아질 수 있다. 반대로 어떤 경우에는, 특정 프레임에서는 내부 화소 값들의 특성 때문에, 정수 화소 단위부터 1/8 화소 단위까지 모든 해상도의 움직임 벡터를 고려하는 가변길이 코드워드들을 사용하는 경우에 압축 효율이 높을 수 있다.
본 발명의 실시예는 전술한 문제점을 효율적으로 해결하기 위하여 창안된 것으로서, 탐색 영역별로 서로 다른 해상도로 움직임벡터를 추정하고, 그에 따라 차분 움직임 벡터를 해상도에 대응하여 적응적으로 부호화/복호화함으로써 압축 및 복원 효율을 높일 수 있는 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법을 제공하는 것을 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 장치는, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하며, 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하고, 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 영상 부호화기; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치는, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 움직임 추정부; 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 차분 움직임벡터 계산부; 및 계산된 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 차분 움직임벡터 부호화부를 포함하는 것을 특징으로 한다.
차분 움직임벡터 부호화 장치는, 각각의 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송하는 임계값 부호화부를 더 포함할 수 있다.
영역별 해상도 설정부는 복호기와 상호 약속된 값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수 있다.
또한, 영역별 해상도 설정부는, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 낮아지도록 탐색 영역별로 해상도를 설정할 수도 있다.
또는, 영역별 해상도 설정부는, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 높아지도록 탐색 영역별로 해상도를 설정할 수도 있다.
또한, 영역별 해상도 설정부는, 현재블록의 예측 움직임벡터를 중심으로 x축 방향과 y축 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수도 있다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 차분 움직임벡터 복호화 장치는, 부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 최대 해상도로 부호화된 임계값을 추출하여 복호화하는 임계값 복호화부; 복호화된 각각의 임계값에 기초하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 차분 움직임벡터 복호화부를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 차분 움직임벡터 복호화 장치는, 부호화기와 상호 약속된 임계값으로 탐색 영역을 구분하고 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 차분 움직임벡터 복호화부를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 방법은, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하며, 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하고, 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 영상 부호화 단계; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 영상 복호화 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 차분 움직임벡터 부호화 방법은, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 단계; 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 단계; 및 계산된 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 단계를 포함하는 것을 특징으로 한다.
차분 움직임벡터 부호화 방법은, 각각의 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송하는 단계를 더 포함할 수 있다.
해상도 설정단계는, 복호기와 상호 약속된 값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수 있다.
또한, 해상도 설정단계는, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 낮아지도록 탐색 영역별로 해상도를 설정할 수 있다.
또는, 해상도 설정단계는, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 높아지도록 탐색 영역별로 해상도를 설정할 수 있다.
또한, 해상도 설정단계는, 현재블록의 예측 움직임벡터를 중심으로 x축 방향과 y축 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수도 있다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 차분 움직임벡터 복호화 방법은, 부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 최대 해상도로 부호화된 임계값을 추출하여 복호화하는 단계; 복호화된 각각의 임계값에 기초하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 차분 움직임벡터 복호화 방법은, 부호화기와 상호 약속된 임계값으로 탐색영역을 구분하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 실시예에 따르면, 탐색 영역별로 서로 다른 해상도로 움직임벡터를 추정하고, 그에 따라 차분 움직임 벡터를 해상도에 대응하여 적응적으로 부호화/복호화함으로써 가변길이 코드북을 사용하는 경우의 압축 및 복원 효율을 높일 수 있게 된다.
도 1은 H.264/AVC에 따른 부호화기의 구조를 개략적으로 도시한 도면이다.
도 2는 비디오 코덱인 JM에서 반화소와 1/4 화소 값을 만드는 방법을 나타낸 도면이다.
도 3은 Reference software인 KTA에서 1/8 화소 단위까지 움직임벡터를 추정하는 방법을 나타낸 도면이다.
도 4는 종래의 1/4 화소단위의 차분 움직임벡터를 부호화하기 위한 코드북의 예를 나타낸 도면이다.
도 5는 종래의 1/8 화소단위의 차분 움직임벡터를 부호화하기 위한 코드북의 예를 나타낸 도면이다.
도 6은 H.264/AVC에 따른 복호화기의 구조를 개략적으로 도시한 도면이다.
도 7은 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치를 개략적으로 도시한 도면이다.
도 8은 현재블록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역 분할을 2차원으로 나타낸 도면이다.
도 9는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역 분할을 1차원으로 나타낸 도면이다.
도 10은 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 탐색 영역별 사용 가능한 움직임벡터의 해상도의 종류가 적어지며, 움직임벡터의 해상도가 낮아지는 경우의 예를 나타낸 도면이다.
도 11은 도 10에 따라 차분 움직임벡터를 부호화하기 위한 코드북의 일 예를 나타낸 도면이다.
도 12는 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 탐색 영역별 사용 가능한 움직임벡터의 해상도의 종류가 많아지며, 움직임벡터의 해상도가 높아지는 경우의 예를 나타낸 도면이다.
도 13은 도 12에 따라 차분 움직임벡터를 부호화하기 위한 코드북의 일 예를 나타낸 도면이다.
도 14는 현재블록의 예측 움직임벡터를 중심으로 거리에 관계없이 탐색 영역별로 사용 가능한 해상도의 종류를 임의로 설정한 예를 나타낸 도면이다.
도 15는 도 14에 따라 차분 움직임벡터를 부호화하기 위한 코드북의 일 예를 나타낸 도면이다.
도 16은 현재브록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역분할을 x축 및 y축에 따라 다르게 설정한 예를 나타낸 도면이다.
도 17은 도 16의 x축에 대한 구간별 움직임벡터를 결정하는 예를 나타낸 도면이다.
도 18은 도 17에 대한 차분 움직임벡터를 부호화하기 위한 코드북의 예를 나타낸 도면이다.
도 19는 도 16의 y축에 대한 구간별 움직임벡터를 결정하는 예를 나타낸 도면이다.
도 20은 도 19에 대한 차분 움직임벡터를 부호화하기 위한 코드북의 예를 나타낸 도면이다.
도 21은 본 발명의 일 실시예에 따른 차분 움직임벡터 복호화 장치를 개략적으로 도시한 도면이다.
도 22는 본 발명의 다른 실시예에 따른 차분 움직임벡터 복호화 장치를 개략적으로 도시한 도면이다.
도 23은 도 7의 차분 움직임벡터 부호화 장치에 의한 차분 움직임벡터 부호화 방법을 나타낸 흐름도이다.
도 24는 움직임벡터의 해상도 적용 영역을 사각형 형태로 설정하는 경우의 예를 나타낸 도면이다.
도 25는 움직임벡터의 해상도 적용 영역을 마름모 형태로 설정하는 경우의 예를 나타낸 도면이다.
도 26은 복호화기로 전송되는 임계값으로 인한 신택스의 변화를 예시한 도면이다.
도 27은 도 21의 차분 움직임벡터 복호화 장치에 의한 차분 움직임벡터 복호화 방법을 나타낸 흐름도이다.
도 28은 도 22의 차분 움직임벡터 복호화 장치에 의한 차분 움직임벡터 복호화 방법을 나타낸 흐름도이다.
도 29는 모든 참조 프레임에서 현재 부호화하여 들어온 임계값을 모두 동일하게 사용할 경우의 예를 나타낸 도면이다.
도 30은 모든 참조 영상에 다른 임계값을 사용하는 경우의 예를 나타낸 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하에서 후술할 영상 부호화 장치(Video Encoding Apparatus), 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
본 발명에서 설명하는 기술은 기존의 H.264 나 KTA에서 사용되는 움직임 벡터 추정 단위 (예, 매크로 블록, 16x16, 16x8, 8x16, 8x8, 4x8, 8x4, 4x4)에 한정되어 적용되는 것은 아니며, 움직임 벡터 추정 블록의 크기도 한정하지 않는다. 또한, 본 발명 기술은 움직임 벡터 추정단위가 정사각형, 직사각형, 삼각형, 및 그 외 다양한 형태일 때도 사용될 수 있다.
도 7은 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치를 개략적으로 도시한 도면이다. 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치(700)는 영역별 해상도 설정부(710), 움직임 추정부(720), 차분 움직임벡터 계산부(730), 차분 움직임벡터 부호화부(740) 및 임계값 부호화부(750)를 포함할 수 있다.
영역별 해상도 설정부(710)는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정한다. 종래의 차분 움직임 벡터의 부호화는 예측 움직임벡터를 중심으로 모든 영역에서 같은 해상도의 움직임 벡터를 사용하고 있다. 그러나 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치(700)는 기존의 차분 움직임 벡터 부호화의 방식과 다르게 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 해상도의 움직임벡터를 추정하도록 한다. 이를 위해, 영역별 해상도 설정부(710)는 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 낮아지도록 탐색 영역별로 해상도를 설정하거나, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 높아지도록 탐색 영역별로 해상도를 설정할 수 있다. 또는, 이에 한정하지 않고 현재블록의 예측 움직임벡터를 중심으로 거리에 따라 사용 가능한 해상도가 다양하게 설정될 수도 있다. 또한, 현재블록의 예측 움직임벡터를 중심으로 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수도 있다.
이때, 영역별 해상도 설정부(710)는 현재 영상과 참조 영상을 이용하여 탐색 영역별 각각의 영역에 대한 임계값을 계산할 수 있다. 본 발명의 실시예에서는 임계값을 계산하는 방법은 제한하지 않으며, 정해진 탐색 영역의 임계값을 이용하여 차분 움직임벡터의 부호화를 위한 테이블(코드북)을 만들 수 있다.
움직임 추정부(720)는 영역별 해상도 설정부(710)에 의해 설정된 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성한다.
차분 움직임벡터 계산부(730)는 움직임 추정부(720)에 의해 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산한다.
차분 움직임벡터 부호화부(740)는 차분 움직임벡터 계산부(730)에 의해 계산된 차분 움직임벡터를 움직임 추정부(720)에 의해 생성된 움직임벡터에 대응하는 해상도로 부호화한다.
임계값 부호화부(750)는 각각의 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송한다. 이때, 임계값 부호화부(750)를 통해 각각의 탐색 영역을 복호기에 알리는 대신에, 영역별 해상도 설정부(710)가 복호기와 상호 약속된 영역의 범위를 나타내는 임계값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하도록 구현될 수도 있다.
도 8은 현재블록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역 분할을 2차원으로 나타낸 도면이며, 도 9는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역 분할을 1차원으로 나타낸 도면이다. 도 8 및 도 9에 나타낸 바와 같이 현재블록의 예측 움직임벡터를 중심으로 거리에 따라 움직임벡터의 추정을 위한 탐색영역이 분할될 수 있다. 도 8 및 도 9에는 각각의 영역이 동일한 간격으로 분할된 것으로 도시하였지만, 이에 한정되는 것은 아니며 각각의 영역은 서로 다른 간격으로 설정될 수도 있다.
이렇게 분할된 탐색 영역은 각각의 영역에서 서로 다른 해상도의 움직임 벡터를 가지게 된다. 예를 들어, A영역은 1/8pel까지 움직임 벡터 해상도를, B영역은 1/4 pel까지 움직임 벡터 해상도를, C영역은 1/2pel까지 움직임 벡터 해상도를, 마지막으로 D영역은 정수 해상도를 이용하여 움직임 벡터를 부호화하게 된다.
도 10은 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별 거리가 멀어질수록 사용 가능한 움직임벡터의 해상도의 종류가 적어지는 경우의 예를 나타낸 도면이다. 도 10에 나타낸 바와 같이, 영역별 해상도 설정부(710)는 A영역에서는 1/8 해상도까지, B영역은 1/4 해상도까지, C영역은 1/2 해상도까지, 마지막으로 D영역은 1/1 해상도까지 고려해서 움직임벡터를 추정하도록 설정될 수 있다. 예를 들어, 1/8 해상도를 고려해서 차분 움직임벡터를 만들 때 차분 움직임벡터의 크기가 -2/8 ~ 2/8 사이에 존재하면 A 영역, 3/8 ~ 8/8과 -3/8 ~ -8/8 사이에 존재하면 B 영역, 9/8 ~ 16/8와 -9/8 ~ -16/8 사이에 존재하면 C 영역, 그 외의 영역에 존재할 경우 D 영역으로 설정할 수 있다. 여기에 기재한 각각의 영역의 범위는 1/8 해상도를 고려한 경우의 일 예일 뿐이며 이에 한정된 것은 아니다.
이와 같이 영역이 설정이 되면, 임계값 부호화부(750)는 복호화기에 설정된 영역을 알려주기 위하여 각각의 탐색 영역의 임계값을 부호화하는데 이 임계값은 최대 해상도에 맞게 부호화하여 사용될 수 있다. 예를 들어, 1/4픽셀 영역까지만 사용할 경우, 임계값 부호화부(750)는 임계값을 1/4 픽셀 단위로 부호화하여 복호화기에 전송한다. 전술한 예제는 1/8 픽셀 영역까지 사용하기 때문에 임계값 부호화부(750)는 1/8픽셀 단위로 임계값을 만들어 복호화기에 전송한다. 본 발명에 따른 실시예에서는 임계값을 전송하는 방법에 대해서는 제한하지 않는다. 이와 같은 예시를 이용하여 도 5의 코드북을 새롭게 디자인하면 도 11과 같이 만들어진다.
도 11은 도 10에 따라 차분 움직임 벡터를 부호화하기 위한 코드북인데, 도 4 또는 도 5와 같이 Exponential Golomb Code로 작성된다. Exponential Golmb Code는 첫 번째 1이 나오긴 전까지의 0의 개수를 카운트 하여 카운트 된 값으로 첫 번째 1 이후에 몇 비트를 읽을지 계산하는 방식이다. 기존 방식으로 제작된 도 4 및 도 5, 그리고 본 발명의 실시예에 따른 방식으로 만들어진 도 11은 같은 방식으로 코드북이 만들어지기 때문에 코드번호와 비트 스트링 사이의 관계는 동일하다. 단지 각 코드번호가 가리키는 차분 움직임 벡터값만 다르게 된다. 또한, Exponential Golomb Code로 차분 움직임 벡터가 코딩될 때 크기가 작은 값에 코드번호가 먼저 할당이 되며 같은 크기일 경우 양수인 값에 먼저 코드번호가 할당이 된다. 이런 방식은 부호화기와 복호화기가 동일하게 사용한다.
본 발명의 실시예에서는 차분 움직임 벡터를 비트스트링으로 부호화할 때 Exponential Golomb Code를 사용하는 경우를 예시로 설명했으나, 본 발명은 이를 한정하지 않으며, 다른 코딩 방법을 사용할 수 있다.
도 10에서 제시된 예시를 이용하여 차분 움직임 벡터에 대한 코드북을 작성하면 도 11과 같이 작성할 수 있다. A영역은 1/8 해상도까지 지원하기 때문에, 도 11에서 보는 바와 같이 촘촘하게 움직임 벡터를 찾는다. 반면 B영역은 1/4 해상도까지 고려하여 움직임 벡터를 찾기 때문에 1/8 해상도에 해당하는 3/8, 5/8, 7/8, 의 움직임벡터를 코드북에서 제외한다. C영역에서는 1/2 해상도까지 고려하기 때문에 1/4 해상도와 1/8 해상도에 해당하는 포인트들의 움직임 벡터 9/8, 10/8(5/4), 11/8, 13/8, 14/8(7/4), 15/8를 코드북에서 제외한다. 마지막으로, D영역에서는 1/1 해상도만 고려하기 때문에 1/2, 1/4, 1/8 해상도에 해당하는 포인트들을 코드북에서 제외한다.
도 5와 도 11을 비교해 보면 인덱스번호(코드번호)가 같은 15번이더라도 기존의 알고리즘은 2번째 정수 화소 8/8(1)를 가리키고 있지만, 본 발명의 실시예에 따른 코드북에서는 4번째 정수 화소 3/1(24/8)를 가리키고 있다. 이후, 즉 D 영역에서는 본 발명의 실시예에 따른 차분 움직임벡터 부호화 방법은 정수 화소만을 인덱싱하기 때문에 더 적은 비트만 사용하여 다음 정수 화소로 이동이 가능하다.
이상에서는 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 사용 가능한 해상도 종류가 적어지는 경우를 예로 설명하였지만, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 사용 가능한 해상도 종류가 많아지도록 설정될 수도 있다.
도 12는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별 거리가 멀어질수록 사용 가능한 움직임벡터의 해상도의 종류가 많아지며, 움직임벡터의 해상도가 촘촘해지는 경우의 예를 나타낸 도면이다. 도 12에 나타낸 바와 같이 A영역에서는 1/1 해상도까지, B영역은 1/2 해상도까지, C영역은 1/4 해상도까지, 마지막으로 D영역은 1/8 해상도까지 고려해서 움직임벡터를 추정할 수 있다. 1/8 해상도를 고려해서 차분 움직임 벡터를 만들 때 차분 움직임벡터의 크기가 -3/8 ~ 3/8 사이에 존재하면 A 영역, 4/8 ~ 12/8와 -4/8 ~ -12/8 사이에 존재하면 B 영역, 13/8 ~ 20/8와 -13/8 ~ -20/8 사이에 존재하면 C 영역, 그 외의 영역에 존재할 경우 D 영역으로 설정할 수 있다.
도 12에서 제시된 예를 이용하여 차분 움직임벡터에 대한 코드북을 작성하면 도 13과 같이 작성할 수 있다. A 영역은 1/1 해상도까지 지원하기 때문에, 도 13에서 보는 바와 같이 1/1 해상도 위치에서만 움직임벡터를 만든다. 반면, B 영역은 1/2 해상도까지 고려하여 움직임 벡터를 찾기 때문에 1/4, 1/8 해상도에 해당하는 움직임벡터 5/8, 6/8(3/4), 7/8, 9/8, 11/8를 코드북에서 제외한다. C영역에서는 1/4 해상도까지 고려하기 때문에 1/8 해상도에 해당하는 움직임벡터 13/8, 15/8, 17/8, 19/8를 코드북에서 제외한다. 마지막으로 D영역에서는 1/8까지 고려하기 때문에 모든 해상도에 대해서 움직임 벡터를 찾게 된다.
또한, 현재블록의 예측 움직임벡터를 중심으로 거리에 관계없이 탐색 영역별로 사용 가능한 해상도의 종류를 임의로 설정할 수도 있다.
도 14는 현재블록의 예측 움직임벡터를 중심으로 거리에 관계없이 탐색 영역별로 사용 가능한 해상도의 종류를 임의로 설정한 예를 나타낸 도면이며, 도 15는 도 14에 따라 차분 움직임벡터를 부호화하기 위한 코드북의 일 예를 나타낸 도면이다.
전술한 예시들에서와 같이 탐색 영역별 각각의 영역을 설정하는 다양한 임계 값들이 사용될 수 있으며, 임계값으로 구분되는 각 영역에서 사용되는 움직임벡터의 해상도 조합들이 다양하게 존재할 수 있다. 이때, 탐색 영역별 각각의 임계값은 임계값 부호화부(750)에 의해 부호화된 후 복호화기로 전송될 수 있으며, 또는 부호화기와 복호화기가 탐색 영역별 임계값들을 약속하여 사용함으로써 임계값의 전송을 생략할 수도 있다. 탐색 영역별 임계값들로 구분되는 각 영역에서 사용되는 움직임벡터들의 해상도 조합에 관한 정보 또한 송신단과 수신단에서 약속된 상태로 사용될 수도 있으며, 또는 해상도 조합에 관한 정보를 인코더에서 부호화한 후 전송할 수도 있다.
또한, 앞에서 언급한 예시 외에도 x축과 y축에 대한 탐색 영역별 설정을 도 16에 도시한 바와 같이 각각 다르게 설정할 수도 있다. 즉, x축과 y축 각각에서 사용하는 임계값이 다른 값일 수 있다. 이때, x축 구간별 움직임 벡터를 결정하는 예는 도 17과 같이 나타낼 수 있으며, x축의 차분 움직임 벡터를 본 발명의 실시예에 따라 부호화하기 위한 코드북은 도 18과 같이 나타낼 수 있다. 또한, y축 구간별 움직임 벡터를 결정하는 예는 도 19와 같이 나타낼 수 있으며, y축의 차분 움직임 벡터를 본 발명의 실시예에 따라 부호화하기 위한 코드북은 도 20과 같이 나타낼 수 있다.
도 21은 본 발명의 일 실시예에 따른 차분 움직임벡터 복호화 장치를 개략적으로 도시한 도면이다. 차분 움직임벡터 복호화 장치(2100)의 일 실시예는, 임계값 복호화부(2110), 영역별 해상도 설정부(2120) 및 차분 움직임벡터 복호화부(2130)를 포함할 수 있다.
임계값 복호화부(2110)는 부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 임계값을 추출하여 복호화한다. 여기서, 임계값은 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치(700)에 의해 설정된 탐색 영역별 각각의 영역에 대한 임계값으로서, 각각의 영역에서 사용 가능한 움직임벡터의 해상도 중 최대 해상도로 부호화되어 있다.
영역별 해상도 설정부(2120)는 임계값 복호화부(2110)에 의해 복호화된 각각의 임계값에 기초하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정한다. 즉, 영역별 해상도 설정부(2120)는 복호화된 각각의 임계값에 기초하여 차분 움직임벡터 부호화 장치(700)에 의해 설정된 탐색 영역별 각각의 영역에서의 사용 가능한 움직임벡터 해상도를 알 수 있다. 예를 들어, 비트스트림으로부터 도 10의 A 영역에 대한 임계값을 추출하여 복호화한 경우, 그에 따라 A 영역의 적용구간이 -2/8 ~ 2/8임을 알 수 있으며, 그 영역에서 사용 가능한 움직임벡터의 최대 해상도인 1/8로 부호화되어 있으므로, 최대 해상도 1/8 이내의 움직임벡터 해상도가 사용될 수 있음을 알 수 있다.
차분 움직임벡터 복호화부(2130)는 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 차분 움직임벡터를 복호화한다. 이때, 차분 움직임벡터 복호화부(2130)는 복호화된 각각의 탐색 영역의 임계값에 기초하여 비트스트링의 순서에 따라 순차적으로 차분 움직임벡터를 나열하여 도 11과 같은 코드북을 생성할 수 있다. 이 경우, 비트스트링 및 각각의 비트스트링에 할당된 인덱스번호(코드번호)는 차분 움직임벡터 부호화 장치(700)에서 사용하는 비트스트링 및 각각의 비트스트링에 할당된 인덱스번호와 동일하게 생성되는 것이 바람직하다.
도 22는 본 발명의 다른 실시예에 따른 차분 움직임벡터 복호화 장치를 개략적으로 도시한 도면이다. 도면을 참조하면, 차분 움직임벡터 복호화 장치(2200)의 실시예는 영역별 해상도 설정부(2210) 및 차분 움직임벡터 복호화부(2220)를 포함할 수 있다.
영역별 해상도 설정부(2210)는 부호화기와 상호 약속된 값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수 있다. 예를 들어, 영역별 해상도 설정부(2210)는 부호화기와 상호 약속하여 도 10과 같은 각각의 탐색 영역의 구간 및 사용 가능한 움직임벡터의 해상도를 동일하게 설정할 수 있다.
차분 움직임벡터 복호화부(2220)는 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 차분 움직임벡터를 복호화한다.
도 23은 도 7의 차분 움직임벡터 부호화 장치에 의한 차분 움직임벡터 부호화 방법을 나타낸 흐름도이다.
도 7 및 도 23을 참조하면, 영역별 해상도 설정부(710)는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정한다(S2310). 이를 위해, 영역별 해상도 설정부(710)는 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 낮아지도록 탐색 영역별로 해상도를 설정하거나, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 높아지도록 탐색 영역별로 해상도를 설정할 수 있다. 또는, 이에 한정하지 않고 현재블록의 예측 움직임벡터를 중심으로 거리에 따라 사용 가능한 해상도가 다양하게 설정될 수도 있다. 또한, 현재블록의 예측 움직임벡터를 중심으로 x축과 y축방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수도 있다. 예를 들어, 탐색 영역의 형상은 도 24 및 도 25와 같이 설정될 수도 있다. 여기서, 도 24는 사각형 형태로 탐색영역을 설정하는 경우를 나타낸 도면이며, 도 25는 마름모 형태로 탐색영역을 설정하는 경우를 나타낸 도면이다. 이처럼 탐색 영역을 2차원으로 부호화 하게 되면 움직임 벡터를 압축하는데 있어서 좀더 용이한 경우가 있다. 예를 들어 도 10에서 제시한 방법처럼 해상도를 결정해서 사용할 경우, 기존의 1차원에선 x축과 y축을 도 11을 통해서 각각 부호화하였다. 하지만 2차원에선 x축, y축 각각의 차분 움직임 값 중에서 차분 값이 더 큰 것을 찾으면 차분 값이 작은 값은 자신의 해상도를 바로 계산할 수 있다. 예를 들어 x축에 대한 차분 움직임 값이 B 영역에 있고 y축에 대한 차분 움직임 값이 A 영역에 있다면, x축에 대한 차분 움직임 값으로 현재 부호화되는 차분 움직임 벡터는 1/4까지 움직임을 고려한 것을 알 수 있다. 때문에 y축은 1/8까지 고려한 코드북을 사용하는 대신에 1/4까지 고려한 코드북을 사용할 수 있다. 이 외에도 본 발명의 실시예에 따른 차분 움직임벡터의 부호화는 다양한 방법으로 탐색영역을 설정할 수 있으며 탐색영역을 설정하는 방식은 제한을 두지 않는다.
영역별 해상도 설정부(710)는 현재 영상과 참조 영상을 이용하여 탐색 영역별 각각의 영역에 대한 임계값을 계산할 수 있다. 본 발명의 실시예에서는 임계값을 계산하는 방법은 제한하지 않으며, 정해진 탐색 영역의 임계값을 이용하여 차분 움직임벡터의 부호화를 위한 테이블(코드북)을 만들 수 있다.
임계값 부호화부(750)는 각각의 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송한다(S2320). 이때, 임계값 부호화부(750)는 임계값을 전송할 필요가 있을 때 부호화해서 도 26에 도시한 바와 같이 슬라이스 헤더(Slice header)와 부호화 단위블록 사이에 삽입하여 전송할 수 있다. 부호화된 임계값은 복호화기에서 복호화하여 현재 프레임을 복호화할 때 사용한다.
도 26은 본 발명의 실시예에 따른 차분 움직임벡터 부호화 방법에서 임계값을 슬라이스 헤더에 추가하여 전송하는 방법을 보여주고 있다. 도 26에 나타낸 바와 같이, 슬라이스 헤더 뒤에 위에선 언급한 임계값을 부호화하여 보내주게 된다.
임계값 부호화부(750)를 통해 각각의 탐색 영역을 복호기에 알리는 대신에, 영역별 해상도 설정부(710)가 복호기와 상호 약속된 영역의 범위를 나타내는 임계값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하도록 구현될 수도 있다. 이 경우, 임계값의 부호화는 생략될 수 있다.
움직임 추정부(720)는 영역별 해상도 설정부(710)에 의해 설정된 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성한다(S2330).
차분 움직임벡터 계산부(730)는 움직임 추정부(720)에 의해 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산한다(S2340).
차분 움직임벡터 부호화부(740)는 차분 움직임벡터 계산부(730)에 의해 계산된 차분 움직임벡터를 움직임 추정부(720)에 의해 생성된 움직임벡터에 대응하는 해상도로 부호화한다(S2350).
도 27은 도 21의 차분 움직임벡터 복호화 장치에 의한 차분 움직임벡터 복호화 방법을 나타낸 흐름도이다.
도 21 및 도 27을 참조하면, 임계값 복호화부(2110)는 부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 임계값을 추출하여 복호화한다(S2710).
영역별 해상도 설정부(2120)는 임계값 복호화부(2110)에 의해 복호화된 각각의 임계값에 기초하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정한다(S2720). 즉, 영역별 해상도 설정부(2120)는 복호화된 각각의 임계값에 기초하여 차분 움직임벡터 부호화 장치(700)에 의해 설정된 탐색 영역별 각각의 영역에서의 사용 가능한 움직임벡터 해상도를 알 수 있다.
차분 움직임벡터 복호화부(2130)는 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 차분 움직임벡터를 복호화한다(S2730). 이때, 차분 움직임벡터 복호화부(2130)는 복호화된 각각의 탐색 영역의 임계값에 기초하여 비트스트링의 순서에 따라 순차적으로 차분 움직임벡터를 나열하여 도 11과 같은 코드북을 생성할 수 있다. 이 경우, 비트스트링 및 각각의 비트스트링에 할당된 인덱스번호(코드번호)는 차분 움직임벡터 부호화 장치(700)에서 사용하는 비트스트링 및 각각의 비트스트링에 할당된 인덱스번호와 동일하게 생성되는 것이 바람직하다.
도 28은 도 22의 차분 움직임벡터 복호화 장치에 의한 차분 움직임벡터 복호화 방법을 나타낸 흐름도이다.
도 22 및 도 28을 참조하면, 영역별 해상도 설정부(2210)는 부호화기와 상호 약속된 값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수 있다(S2810). 예를 들어, 영역별 해상도 설정부(2210)는 부호화기와 상호 약속하여 도 10과 같은 각각의 탐색 영역의 구간 및 사용 가능한 움직임벡터의 해상도를 동일하게 설정할 수 있다.
차분 움직임벡터 복호화부(2220)는 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 차분 움직임벡터를 복호화한다(S2820).
다음에, 복수 개의 참조 영상을 사용하여 비디오를 압축 및 복호화하는 경우, 임계값을 사용하는 방법을 설명한다. 현재 영상을 복호화하려면 우선 슬라이스 헤더에서 정보를 읽고 임계값을 읽으며, 부호화 단위블록의 데이터를 읽게 된다. 이때 복호된 임계값은 현재 프레임을 움직임 보상을 통해 복호화하기 위하여 각 참조영상들에 대해서 사용된다.
도 29는 모든 참조 프레임(Reference frame)에서 현재 부호화하여 들어온 임계값을 모두 동일하게 사용할 경우의 예를 나타낸다. 또 다른 예로 다양한 참조 영상을 사용할 경우, 참조 영상의 특성에 따라 임계값을 다르게 사용하는 경우의 예를 도 30에 나타내었다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명의 실시예는, 탐색 영역별로 서로 다른 해상도로 움직임벡터를 추정하고, 그에 따라 차분 움직임 벡터를 해상도에 대응하여 적응적으로 부호화/복호화함으로써 가변길이 코드북을 사용하는 경우의 압축 및 복원 효율을 높일 수 있는 효과를 발생하는 매우 유용한 발명이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2010년 10월 18일 한국에 출원한 특허출원번호 제 10-2010-0101439 호에 대해 미국 특허법 119(a)조(35 U.S.C § 119(a))에 따라 우선권을 주장하면, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 동일한 이유로 우선권을 주장하면 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.

Claims (18)

  1. 영상 부호화/복호화 장치에 있어서,
    현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하며, 각각의 상기 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하고, 생성된 상기 움직임벡터와 상기 예측 움직임벡터 사이의 차분 움직임벡터를 생성된 상기 움직임벡터에 대응하는 해상도로 부호화하는 영상 부호화기; 및
    비트스트림으로부터 상기 차분 움직임벡터를 추출하며, 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 상기 차분 움직임벡터를 복호화하는 영상 복호화기
    를 포함하는 것을 특징으로 하는 영상 부호화/복호화 장치.
  2. 차분 움직임벡터 부호화 장치에 있어서,
    현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부;
    각각의 상기 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 움직임 추정부;
    생성된 상기 움직임벡터와 상기 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 차분 움직임벡터 계산부; 및
    계산된 상기 차분 움직임벡터를 생성된 상기 움직임벡터에 대응하는 해상도로 부호화하는 차분 움직임벡터 부호화부
    를 포함하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  3. 제 2항에 있어서,
    각각의 상기 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송하는 임계값 부호화부
    를 더 포함하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  4. 제 2항에 있어서,
    상기 영역별 해상도 설정부는,
    복호기와 상호 약속된 값으로 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  5. 제 2항에 있어서,
    상기 영역별 해상도 설정부는,
    상기 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 낮아지도록 상기 탐색 영역별로 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  6. 제 2항에 있어서,
    상기 영역별 해상도 설정부는,
    상기 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 높아지도록 상기 탐색 영역별로 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  7. 제 2항에 있어서,
    상기 영역별 해상도 설정부는,
    상기 현재블록의 예측 움직임벡터를 중심으로 x축 방향과 y축 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  8. 차분 움직임벡터 복호화 장치에 있어서,
    부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 최대 해상도로 부호화된 임계값을 추출하여 복호화하는 임계값 복호화부;
    복호화된 각각의 상기 임계값에 기초하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 및
    상기 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 상기 차분 움직임벡터를 복호화하는 차분 움직임벡터 복호화부
    를 포함하는 것을 특징으로 하는 차분 움직임벡터 복호화 장치.
  9. 차분 움직임벡터 복호화 장치에 있어서,
    부호화기와 상호 약속된 임계값으로 탐색영역을 구분하고 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 및
    비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 상기 차분 움직임벡터를 복호화하는 차분 움직임벡터 복호화부
    를 포함하는 것을 특징으로 하는 차분 움직임벡터 복호화 장치.
  10. 영상 부호화/복호화 방법에 있어서,
    현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하며, 각각의 상기 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하고, 생성된 상기 움직임벡터와 상기 예측 움직임벡터 사이의 차분 움직임벡터를 생성된 상기 움직임벡터에 대응하는 해상도로 부호화하는 영상 부호화 단계; 및
    비트스트림으로부터 상기 차분 움직임벡터를 추출하며, 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 상기 차분 움직임벡터를 복호화하는 영상 복호화 단계
    를 포함하는 것을 특징으로 하는 영상 부호화/복호화 방법.
  11. 차분 움직임벡터 부호화 방법에 있어서,
    현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계;
    각각의 상기 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 단계;
    생성된 상기 움직임벡터와 상기 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 단계; 및
    계산된 상기 차분 움직임벡터를 생성된 상기 움직임벡터에 대응하는 해상도로 부호화하는 단계
    를 포함하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  12. 제 11항에 있어서,
    각각의 상기 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송하는 단계
    를 더 포함하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  13. 제 11항에 있어서,
    상기 해상도 설정단계는,
    복호기와 상호 약속된 값으로 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  14. 제 11항에 있어서,
    상기 해상도 설정단계는,
    상기 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 낮아지도록 상기 탐색 영역별로 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  15. 제 11항에 있어서,
    상기 해상도 설정단계는,
    상기 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 높아지도록 상기 탐색 영역별로 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  16. 제 11항에 있어서,
    상기 해상도 설정단계는,
    상기 현재블록의 예측 움직임벡터를 중심으로 x축 방향과 y축 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  17. 차분 움직임벡터 복호화 방법에 있어서,
    부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 최대 해상도로 부호화된 임계값을 추출하여 복호화하는 단계;
    복호화된 각각의 상기 임계값에 기초하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 및
    상기 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 상기 차분 움직임벡터를 복호화하는 단계
    를 포함하는 것을 특징으로 하는 차분 움직임벡터 복호화 방법.
  18. 차분 움직임벡터 복호화 방법에 있어서,
    부호화기와 상호 약속된 임계값으로 탐색영역을 구분하고 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 및
    비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 상기 차분 움직임벡터를 복호화하는 단계
    를 포함하는 것을 특징으로 하는 차분 움직임벡터 복호화 방법.
PCT/KR2011/007736 2010-10-18 2011-10-18 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법 WO2012053796A2 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/880,004 US20130202047A1 (en) 2010-10-18 2011-10-18 Apparatus and method for video encoding/decoding
CN201180049929.8A CN103155560B (zh) 2010-10-18 2011-10-18 对差分运动矢量编码/解码的设备和方法以及利用该设备和方法对视频编码/解码的设备和方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20100101439A KR101479130B1 (ko) 2010-10-18 2010-10-18 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
KR10-2010-0101439 2010-10-18

Publications (2)

Publication Number Publication Date
WO2012053796A2 true WO2012053796A2 (ko) 2012-04-26
WO2012053796A3 WO2012053796A3 (ko) 2012-06-21

Family

ID=45975713

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/007736 WO2012053796A2 (ko) 2010-10-18 2011-10-18 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법

Country Status (4)

Country Link
US (1) US20130202047A1 (ko)
KR (1) KR101479130B1 (ko)
CN (1) CN103155560B (ko)
WO (1) WO2012053796A2 (ko)

Cited By (1)

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

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102466902B1 (ko) * 2014-10-31 2022-11-14 삼성전자주식회사 움직임 벡터 부복호화 방법 및 장치
KR102349788B1 (ko) * 2015-01-13 2022-01-11 인텔렉추얼디스커버리 주식회사 영상의 부호화/복호화 방법 및 장치
CN106331703B (zh) 2015-07-03 2020-09-08 华为技术有限公司 视频编码和解码方法、视频编码和解码装置
EP3264768A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with adaptive motion information refinement
WO2019192491A1 (en) * 2018-04-02 2019-10-10 Mediatek Inc. Video processing methods and apparatuses for sub-block motion compensation in video coding systems
US20200068214A1 (en) * 2018-08-27 2020-02-27 Ati Technologies Ulc Motion estimation using pixel activity metrics
EP3906690A4 (en) * 2019-01-04 2022-10-19 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR ENCODING/DECODING MOTION VECTOR INFORMATION

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060004060A (ko) * 2004-07-08 2006-01-12 삼성전자주식회사 다 해상도 기반의 움직임 벡터 추정 방법과 이를 구현하기위한 프로그램이 기록된 기록 매체
KR20070094298A (ko) * 2006-03-17 2007-09-20 주식회사 팬택앤큐리텔 다 해상도 탐색 방법을 이용한 움직임 벡터 추출 방법 및장치
KR20070108571A (ko) * 2002-01-24 2007-11-12 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
WO2008056934A1 (en) * 2006-11-07 2008-05-15 Samsung Electronics Co., Ltd. Method of and apparatus for video encoding and decoding based on motion estimation
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US8340188B2 (en) * 2010-01-08 2012-12-25 Research In Motion Limited Method and device for motion vector estimation in video transcoding using union of search areas
US9357228B2 (en) * 2010-05-27 2016-05-31 The Hong Kong University Of Science And Technology Motion estimation of images

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070108571A (ko) * 2002-01-24 2007-11-12 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
KR20060004060A (ko) * 2004-07-08 2006-01-12 삼성전자주식회사 다 해상도 기반의 움직임 벡터 추정 방법과 이를 구현하기위한 프로그램이 기록된 기록 매체
KR20070094298A (ko) * 2006-03-17 2007-09-20 주식회사 팬택앤큐리텔 다 해상도 탐색 방법을 이용한 움직임 벡터 추출 방법 및장치

Cited By (1)

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

Also Published As

Publication number Publication date
KR101479130B1 (ko) 2015-01-07
CN103155560A (zh) 2013-06-12
WO2012053796A3 (ko) 2012-06-21
US20130202047A1 (en) 2013-08-08
KR20120039967A (ko) 2012-04-26
CN103155560B (zh) 2016-11-09

Similar Documents

Publication Publication Date Title
WO2012053796A2 (ko) 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
WO2013070006A1 (ko) 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
WO2013002549A2 (ko) 영상 부호화/복호화 방법 및 장치
WO2011004986A2 (ko) 영상 부호화/복호화 방법 및 장치
WO2010050706A2 (ko) 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2013069932A1 (ko) 영상의 부호화 방법 및 장치, 및 복호화 방법 및 장치
WO2013005941A2 (ko) 영상 부호화 및 복호화 방법과 장치
WO2011145819A2 (ko) 영상 부호화/복호화 장치 및 방법
WO2011149291A2 (ko) 비디오 신호의 처리 방법 및 장치
WO2011068331A2 (ko) 비디오 인코딩 장치 및 그 인코딩 방법, 비디오 디코딩 장치 및 그 디코딩 방법, 및 거기에 이용되는 방향적 인트라 예측방법
WO2012099440A2 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
WO2011062392A2 (ko) 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2011052897A2 (ko) 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2011145836A2 (ko) 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
WO2011019246A2 (en) Method and apparatus for encoding/decoding image by controlling accuracy of motion vector
WO2013002550A2 (ko) 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치
WO2012015275A2 (ko) 블록 분할예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2013109039A1 (ko) 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2012033344A2 (ko) 효과적인 화면내 예측모드 집합 선택을 이용한 영상 부호화/복호화 방법 및 장치
WO2012011672A2 (ko) 확장된 스킵모드를 이용한 영상 부호화/복호화 방법 및 장치
CN103202016A (zh) 用于视频译码的自适应运动向量分辨率信令
WO2012046979A2 (ko) 주파수 마스크 테이블을 이용한 주파수변환 블록 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2016114539A1 (ko) 영상의 부호화 및 복호화 방법 및 장치
WO2017043766A1 (ko) 비디오 부호화, 복호화 방법 및 장치
WO2011108879A2 (ko) 영상 부호화 장치, 그 영상 부호화 방법, 영상 복호화 장치 및 그 영상 복호화 방법

Legal Events

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

Ref document number: 201180049929.8

Country of ref document: CN

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

Ref document number: 11834596

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 13880004

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

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

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

122 Ep: pct application non-entry in european phase

Ref document number: 11834596

Country of ref document: EP

Kind code of ref document: A2