KR0185841B1 - A motion extimator for a video coder - Google Patents
A motion extimator for a video coder Download PDFInfo
- Publication number
- KR0185841B1 KR0185841B1 KR1019950028338A KR19950028338A KR0185841B1 KR 0185841 B1 KR0185841 B1 KR 0185841B1 KR 1019950028338 A KR1019950028338 A KR 1019950028338A KR 19950028338 A KR19950028338 A KR 19950028338A KR 0185841 B1 KR0185841 B1 KR 0185841B1
- Authority
- KR
- South Korea
- Prior art keywords
- motion estimation
- pixel
- motion
- integer
- memory
- Prior art date
Links
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/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
Abstract
본 발명은 영상 부호화기에서의 움직임 추정 장치에 관한 것으로서, 본 발명의 장치는 정수 화소 움직임 추정용 메모리(10)와 정수 화소 움직임 추정부(12)가 구비된 영상 부호화기에서의 움직임 추정 장치에 있어서, 반화소 단위의 움직임 추정을 위해 상기 정수 화소 움직임 추정용 메모리(10)로부터의 탐색 영역에 해당하는 영상 데이터를 저장하는 반화소 움직임 추정용 메모리(20); 및 정수 단위의 움직임 벡터를 중심으로 반화소 단위의 움직임 추정을 행한 뒤 움직임 벡터를 중심으로 반화소 단위의 움직임 추정을 행한 뒤 움직임 벡터를 출력하는 반화소 움직임 추정부(22)로 구성되어 있으며, 반화소 움직임 추정을 위한 메모리로 프레임 용량의 메모리를 사용하는 대신에 탐색 영역 용량의 메모리를 사용하므로써, 하드웨어의 비용을 감소시킬 수 있다는데 그 이점이 있다.The present invention relates to a motion estimation apparatus in an image encoder. The apparatus of the present invention is a motion estimation apparatus in an image encoder including an integer pixel motion estimation memory 10 and an integer pixel motion estimation unit 12. A half-pixel motion estimation memory 20 for storing image data corresponding to a search region from the integer pixel motion estimation memory 10 for motion estimation in units of half pixels; And a half-pixel motion estimator 22 for performing half-pixel-based motion estimation around an integer-based motion vector and performing half-pixel-based motion estimation around the motion vector, and outputting a motion vector. There is an advantage that the cost of hardware can be reduced by using the memory of the search area capacity instead of the memory of the frame capacity as the memory for half-pixel motion estimation.
Description
제1도는 반화소 단위의 움직임 추정을 나타낸 예시도.1 is an exemplary diagram illustrating motion estimation in units of half pixels.
제2도는 종래의 영상 부호화기에서의 움직임 추정 장치에 대한 블록도.2 is a block diagram of a motion estimation apparatus in a conventional image encoder.
제3도는 반화소 움직임 추정부에서 1 매크로블럭 처리시 필요한 정수 화소를 나타낸 예시도.3 is an exemplary diagram illustrating integer pixels required for one macroblock processing in a half-pixel motion estimation unit.
제4도는 본 발명의 영상 부호화기에서의 움직임 추정 장치에 대한 블록도.4 is a block diagram of a motion estimation apparatus in an image encoder of the present invention.
제5도는 반화소 움직임 추정시의 탐색 영역을 나타낸 예시도이다.5 is an exemplary diagram illustrating a search region in half pixel motion estimation.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
10 : 정수 화소 움직임 추정용 메모리10: memory for integer pixel motion estimation
12 : 정수 화소 움직임 추정부12: integer pixel motion estimation unit
20 : 반화소 움직임 추정용 메모리20: memory for half pixel motion estimation
22 : 반화소 움직임 추정부22: half-pixel motion estimation unit
본 발명은 움직임 추정 장치에 관한 것으로, 특히 영상 부호화기에 있어서 반화소 단위의 정확도로 움직임 추정을 하도록 되어진 영상 부호화기에 있어서 움직임 추정 장치에 관한 것이다.The present invention relates to a motion estimation apparatus, and more particularly, to a motion estimation apparatus in an image encoder configured to perform motion estimation with half-pixel accuracy.
HDTV(High Definition TV : 고선명 텔레비젼)나 비디오 폰과 같이 MPEG-2(Moving Picture Experts Group-2) 방식을 사용하는 영상 부호기는 영상 부호기로 전송하여야 할 데이터를 줄이기 위하여 여러 가지 데이터 압축 과정을 거치게 되는데, 그 데이터 압축 과정 중의 한가지 방법이 움직임 추정(motion estimation)이다.Video encoders that use the Moving Picture Experts Group-2 (MPEG-2) method, such as HDTV (High Definition TV) or video phones, undergo various data compression processes to reduce the data to be transmitted to the video encoder. One method of the data compression process is motion estimation.
일반적으로, 움직임 추정이라는 것은 연속되는 영상 신호에서 현재 프레임의 화소들이 이전 프레임의 화소들에 비해 어느 정도 움직였는지를 벡터로 표시한 움직임 벡터(motion vector)를 추정하는 것으로서, 전체 영상 데이터를 전송하는 대신에 상기와 같은 움직임 벡터를 전송함으로써 전송되는 영상 데이터의 양을 줄이는 영상 데이터 압축 기술을 말한다.In general, motion estimation is an estimation of a motion vector indicating how much the pixels of the current frame move with respect to the pixels of the previous frame in a continuous image signal, and transmits the entire image data. Instead, it refers to an image data compression technique that reduces the amount of image data transmitted by transmitting such motion vectors.
각 방식에서의 움직임 추정 방법에 대해서 살펴보면 다음과 같다.The motion estimation method in each method is as follows.
1) ATRC 방식(ADTV; Advanced TV)1) ATRC method (ADTV; Advanced TV)
ADTV 에 쓰이는 움직임 추정 방식은 MPEG에서 제안된 알고리즘은 반화소(half-pixel)의 정확도를 갖는 블록 정합 알고리즘(BMA : Block Matching Algorithm)을 채택하고 있다.As for the motion estimation method used in ADTV, the algorithm proposed in MPEG adopts a block matching algorithm (BMA) with half-pixel accuracy.
블록 정합 알고리즘(BMA)은 화면의 움직임이 수평 또는 수직으로 평행 이동한 것으로 가정하여 움직임 일어난 프레임(즉, 현재 프레임)의 블록 화상이 움직임이 일어나기 전 프레임(즉, 이전 프레임)의 어느 위치에 있는 블록 화상과 가장 잘 일치하는 가를 추정하여 그 위치를 통해 움직임 백터를 추정하는 방법이다.The Block Matching Algorithm (BMA) assumes that the motion of the screen is moved horizontally or vertically in parallel, so that the block image of the frame in which the movement occurred (i.e., the current frame) is at a position in the frame (i.e., the previous frame) before the movement occurs. It is a method of estimating a motion vector through its position by estimating whether it best matches a block picture.
ADTV에서 말하는 움직임 추정은 움직임 정도를 나타내는 2차원의 벡터를 계산해내는 과정을 말하며 이 벡터들을 움직임 벡터라 한다.Motion estimation in ADTV refers to the process of calculating a two-dimensional vector representing the degree of motion, which is called a motion vector.
ADTV에는 2가지의 움직임 추정이 사용되는데 하나는 현재의 화면을 만들기 위해 과거의 화면을 이용하여 포워드 움직임 추정을 하는 것이고, 다른 하나는 현재의 화면을 만들기 위해 미래의 화면을 이용하여 백워드 움직임 추정을 하는 것이다.Two types of motion estimation are used in ADTV, one for forward motion estimation using the past screen to make the current screen, and the other for backward motion estimation using the future screen to make the current screen. To do.
두가지 방법 모두 M*N 으로 미리 정해진 탐색 구간에서 왜곡이 가장 작은 블록을 찾아내어 움직임 벡터를 알아내게 된다.Both methods find the motion vector by finding the block with the least distortion in the predetermined search interval with M * N.
많이 쓰이는 오차(또는, 왜곡 : distortion) 측정 방법으로는 평균 자승 오차(MSE : Mean Squre Error)와 평균 절대 오차(MAE : Mean Absolute Error)가 있는데 계산상의 간편함과 하드웨어의 간단함으로 평균 절대 오차(MAE)가 주로 쓰인다.Popular error (or distortion) measurement methods include Mean Squre Error (MSE) and Mean Absolute Error (MAE). ) Is mainly used.
반화소 움직임 추정은 두 단계로 이루어지는데 처음의 탐색은 한화소(integer-pixel) 움직임 벡터를 얻기 위함이고 두 번째 탐색으로 처음에 얻은 화소 단위 움직임 벡터를 중심으로 반화소(half-pixel) 움직임 벡터를 구하게 된다.Half-pixel motion estimation consists of two steps: the first search is to obtain an integer-pixel motion vector and the half-pixel motion vector is centered around the first pixel-by-pixel motion vector obtained by the second search. Will be obtained.
ADTV에서는 입력되는 영상을 몇가지 종류로 구분하여 프레임별로 나누는데 I-프레임(Intra-frame), P-프레임(Predicted-frame), B-프레임(Bidirectional-predicted frame)이 3 가지이고 각 프레임 별 움직임 추정을 살펴보면 다음과 같다.In ADTV, input video is divided into several types and divided into frames. There are three types of I-frames, P-frames, and B-frames. Looking at it as follows.
I-프레임은 움직임 추정을 하지 않아 움직임 벡터는 없지만 다른 프레임의 움직임 추정에 쓰이고, P-프레임은 바로 전의 I-프레임 또는 P-프레임을 이용하여 포워드 움직임 추정을 하고 다른 P-프레임 이나 B-프레임 움직임 추정에 쓰이며, B-프레임은 전후의 I-프레임 또는 P-프레임을 이용하여 포워드 움직임 추정과 백워드 움직임 추정을 하고 또 포워드 움직임 보정된 프레임과 백워드 움직임 보정된 프레임 둘을 합하여 둘로 나눈 보간된 프레임을 만들어 이 3 가지 움직임 추정 결과중 이동된 블록의 차이(DBD : Displaced Block Differece)가 가장 작은 것을 택하여 움직임 벡터를 정하게 된다.I-frame does not estimate the motion, so there is no motion vector, but it is used to estimate the motion of another frame. P-frame uses the previous I-frame or P-frame to estimate forward motion, and another P-frame or B-frame. Used for motion estimation, B-frames use forward and backward I-frames or P-frames to perform forward motion estimation and backward motion estimation, and interpolate by dividing the forward motion compensated frame and the backward motion compensated frame in two. The motion vector is determined by selecting the smallest difference between the displaced block differences (DBD) among the three motion estimation results.
DBD 의 가장 작은 값이 보간된 것을 경우에는 포워드 움직임 벡터와 백워드 움직임 벡터 둘 다를 전송하게 된다.When the smallest value of the DBD is interpolated, both a forward motion vector and a backward motion vector are transmitted.
제1도는 반화소 단위의 움직임 추정을 나타낸 예시도로서, 제1도를 참조하여 반화소(half-pixel) 움직임 추정을 살펴보면 다음과 같다.FIG. 1 is an exemplary diagram showing motion estimation in units of half pixels. Referring to FIG. 1, half-pixel motion estimation will be described below.
정수 화소(integer-pixel)를 완전히 탐색한 후에 8개의 반화소(half-pixel) 위치에 대해 블록 정합 알고리즘(BMA : Block Matching Algorithm)을 수행한다.After a full search for integer-pixels, a block matching algorithm (BMA) is performed on eight half-pixel positions.
공간적으로 보간된 화소값 계산은 다음과 같이 한다.The spatially interpolated pixel value is calculated as follows.
2) G.I 사 방식(Digicipher)2) G.I Company (Digicipher)
G.I 사의 Digicipher system 제안서에 나와 있는 움직임 추정 방식은 상기에서 서술한 ATRC 사의 ADTV에 사용된 블록 정합 알고리즘(BMA)과 유사하지만 정확도에 있어서 반화소 움직임 추정을 하지 않기 때문에 ADTV보다 떨어진다.The motion estimation method shown in G.I's Digicipher system proposal is similar to the block matching algorithm (BMA) used in ATRC's ADTV described above, but is less than ADTV because it does not estimate half-pixel motion in accuracy.
그외의 다른 점을 살펴보면 우선 백워드 움직임 추정을 하지 않고 포워드 움직임 추정만을 하여 ADTV의 B-프레임이 없다. 즉, Digicipher의 프레임은 I-프레임과 P-프레임만으로 이루어져 있다.In other respects, there is no B-frame of ADTV by performing forward motion estimation without backward motion estimation. That is, Digicipher's frame consists of only I-frames and P-frames.
움직임 추정의단위는 매크로 블록으로 하는데 매크로 블록은 4*2 Y(휘도신호) 블록, U(색차신호) 1개 블록, V(색차신호) 1개 블록으로 이루어지므로 이 모든 블록들이 같은 움직임 벡터를 가지게 된다.The unit of motion estimation is a macro block, which is composed of 4 * 2 Y (luminance signal) blocks, 1 U (color difference signal) block, and 1 V (color difference signal) block. Have.
3) MIT 방식(ATVA-Progressive HDTv)3) MIT method (ATVA-Progressive HDTv)
MIT에서 제안하는 움직임 추정 방법은 시-공 압충 방식(Spatio-temporal constraint)에 바탕을 두는데, 이 방식은 화상의 변위가 프레임간에 일정한 율로 일어났다 가정하고, 그 변위율과 움직임 벡터와의 상관 관계를 나타내는 미분 방적식인 시-공 압축 방정식(Spatio-temporal constraint)을 찾아내에 그 근을 구함으로써 움직임 벡터를 추정하고자 하는 방식이다.The motion estimation method proposed by MIT is based on a spatial-temporal constraint, which assumes that image displacement occurs at a constant rate between frames, and correlates the displacement rate with the motion vector. It is a method to estimate the motion vector by finding a spatial-temporal constraint, which is a differential equation that represents.
이런 방식은 균일한 속도의 전송을 가정으로 하며 물체의 회전, 카메라 줌, 움직임 물체 전송 영역, 다른 움직임 벡터를 갖는 다중 물체 움직임에서는 유효하지 않다.This method assumes a uniform speed of transmission and is not valid for object rotation, camera zoom, moving object transmission areas, or multi-object motion with different motion vectors.
작은 구간 내에서 균일한 움직임 전송을 가정하고 움직임 추정이 불명확한 구간에서 움직임 보상을 억제하더라도 시-공 압축 방정식(Spatio-tempral constraint)에 바탕을 둔 움직임 추정과 보상에 의해 시간까지 상관성이 많이 감소된다.Even if the motion is assumed to be uniform within a small interval and the motion estimation is suppressed in the range where the motion estimation is uncertain, the correlation is greatly reduced by time due to the motion estimation and compensation based on the spatial-temporal constraint. do.
블록 정합 알고리즘(BMA)과 비교해서 이 방법은 블록 크기에 따라 계산양이 크게 줄어들고 노이즈가 있을 때나 없을 때나 잘 수행된다.Compared to the Block Matching Algorithm (BMA), this method greatly reduces the amount of computation depending on the block size and performs well with and without noise.
움직임 벡터는 휘도 신호로부터 추정되고 동일한 움직임 벡터는 휘도 신호(Y)와 색차 신호(U,V)에 대해 사용되며, 한 움기임 벡터는 매 32*32 화소 크기의 블록마다 얻어진다.The motion vector is estimated from the luminance signal and the same motion vector is used for the luminance signal Y and the chrominance signal U and V, with one dominant vector obtained for every 32 * 32 pixel block.
이전 부호화된 프레임과 움직임 벡터로부터 현재 프레임에 대해 예측이 이루어지고 부호화된 현재 프레임과 예측된 것과의 차가 계산되는데 이 차이를 움직임 보상된 차(motiron compensated residual)라 한다.Prediction is performed on the current frame from the previous coded frame and the motion vector, and a difference between the current frame and the predicted code is calculated. This difference is called a motion compensated residual.
이것은 각각의 Y. U. V 세 부분에 대해 얻어지며 상대적으로 화상 프레임에 대해 충분히 큰 에너지를 갖을 때(화면 변화가 있을 때) 움직임 보상이 무효화되고 화상 프레임 자체가 부호화된다.This is obtained for each of the three parts of Y. U. V and motion compensation is invalidated and the picture frame itself is encoded when it has relatively large energy for the picture frame (when there is a picture change).
4) Zenith 사와 ATT 사 방식(DSC-HDTV)4) Zenith and ATT (DSC-HDTV)
영상의 특성상 근접한 화소들의 화소값은 일반적으로 매우 근사한 값들로 구성되어 있는데, 그 이유는 물체의 경계 및 윤곽을 나타내는 선내의 화소들이 같은 물체를 표시하는데 사용되기 때문이다.Due to the nature of the image, the pixel values of adjacent pixels are generally composed of very close values because the pixels in the line representing the boundary and contour of the object are used to display the same object.
Zenith 사와 ATT 사는 이러한 영상의 특성을 이용하여 프레임 영상 데이터의 불필요한 중복성을 제거하므로써 효과적으로 움직음 추정하는 계층적 움직임 추정(hierachical mothion estimation) 방법을 사용하였다.Zenith and ATT used a hierarchical mothion estimation method that effectively estimates motion by eliminating unnecessary redundancy of frame image data by using the characteristics of these images.
또한, 전송 채널의 효율을 늘리기 위하여 Zenith 사와 ATT 사에서는 저해상도 움직임 추정(coarse motion estimation)과 고해성도 움직임 추정(fine motion estimation)의 2 단계 움직임 추정을 제안하였는데 그 제시된 방법을 구체적으로 살펴보면 다음과 같다.In addition, in order to increase the efficiency of the transmission channel, Zenith and ATT have proposed two-stage motion estimation of coarse motion estimation and fine motion estimation, which are described in detail as follows. .
먼저 필더를 사용하여 프레임 영상 신호와 이전 영상 신호의 중복성을 제거한다. 그로 인해, 해상도는 수평, 수직 방향을 각각 1/2 씩 줄어들게 된다.First, the filter is used to remove redundancy between the frame video signal and the previous video signal. As a result, the resolution is reduced by 1/2 each in the horizontal and vertical directions.
전체 면적이 1/4로 줄어든 저해상도 영상 신호로부터 저해상도 움직임 추정(coarse motion estimation)은 32*16(수평*수직) 화소 크기를 거의 블록 단위로 현재 프레임과는 이전 프레임의 화소값 차의 절대 값인 추정 오차를 비교함으로써 이루어 지는데, 이때 회도 성분만을 이용하고 이전 프레임 블록을 추정 오차를 비교함으로써 이루어 지는데, 이때 휘도 성분만을 이용하고 이전 프레임 블록을 탐색 구간 만큼 이동하며 얻은 추정 오차 중 가장 작은 것이 그 블록의 움직임 벡터가 된다.Coarse motion estimation from low-resolution video signals with a total area reduced to 1/4 estimates an absolute value of the pixel value difference of the previous frame from the current frame in units of 32 * 16 (horizontal * vertical) pixels, almost in blocks. This is done by comparing the errors, using only the components of the frequency and comparing the estimation error to the previous frame block, where the smallest of the estimated errors obtained by using only the luminance component and moving the previous frame block by the search interval Becomes the motion vector of.
상기와 같은 계층적 저해상도 화상에서의 블록 매칭은 원래의 고해상도 화상에 사용하였을 때보다 탐색 구간과 블록 크기가 1/4로 줄어들어 계산량이 현저하게 줄어든다.The block matching in the hierarchical low resolution image as described above reduces the search interval and the block size by a quarter compared to that used in the original high resolution image, thereby significantly reducing the calculation amount.
고해상도 움직임 추정은 저해상도 화상에서 구한 움직임 벡터를 이용하여 원래의 고해상도 화상에서의 움직임 벡터로 대치시키고 이를 다시 고해상도 움직임 벡터로 세분화 시킨다.High resolution motion estimation uses motion vectors obtained from low resolution images to replace them with motion vectors in the original high resolution images and subdivides them into high resolution motion vectors.
즉, 저해상도 화상에서의 16*8 블록 크기와 저해상도 움직임 벡터는 원래 해상도의 화상에서 수평, 수직 방향으로 각각 1/2씩 줄어든 것이므로 이들을 모두 2배 시키면 원래 화상의 블록 크기와 움직임 벡터가 된다.That is, since the 16 * 8 block size and the low resolution motion vector in the low resolution image are each reduced by 1/2 in the horizontal and vertical directions of the image having the original resolution, double the both to obtain the block size and the motion vector of the original image.
이는 다시 8*8의 작은 블록 크기로 뉘어지고, 각각의 작은 블록은 저해상도 움직임 벡터를 기점으로 다시 탐색 구간 만큼 이동하여 고해상도 움직임 벡터를 구한다.It is divided into 8 * 8 small block sizes, and each small block is moved back from the low resolution motion vector by the search interval to obtain a high resolution motion vector.
움직임 벡터 부호기는 각각 저해상도와 고해상도에서 추정한 움직임 벡터를 이용하여 다음 프레임의 화면을 추정하고 그에 대응되는 움직임 벡터를 선택한다.The motion vector encoder estimates the screen of the next frame using motion vectors estimated at low resolution and high resolution, respectively, and selects a motion vector corresponding thereto.
이것은 움직임 벡터를 압축하는데 있어서 비트율을 제한하기 위한 것인데, 채널 밴드 폭의 여백에 따라 저해상도 움직임 벡터만을 보내기도 하고 저해상도와 고해상도 움직임 벡터를 보내기도 한다.This is for limiting the bit rate in compressing the motion vector, and depending on the margin of the channel band width, it may send only a low resolution motion vector or a low resolution and high resolution motion vector.
움직임 추정에는 상기와 같은 여러 가지 방식이 있는데, MPEG-2에서는 반화소 단위의 정확도로 움직임 추정을 하는 기능을 갖고 있으며, 이러한 기능은 정수 화소 단위로 움직임 추정이 끝나면 그 결과로 나온 움직임 벡터를 이용하여 반화소 단위의 움직임 추정이 이루어진다.There are several methods for motion estimation as described above. In MPEG-2, motion estimation is performed with half-pixel accuracy. This function uses the resultant motion vector after motion estimation is completed in integer pixel units. Thus, half-pixel unit motion estimation is performed.
제2도는 종래의 영상 부호화기에서의 움직임 추정 장치에 대한 블록도로서, 정수 화소 단위의 움직임 추정을 위해 입력되는 영상 데이터중 I-화상(Intra-picture)과 P-화상(Predicted-picture)에 해당하는 기준 프레임(anchor frame)의 데이터를 저장하는 정수 화소 움직임 추정용 메모리(10)와; 현재 프레임의 데이터와 상기 정수 화소 움직임 추정용 메모리(10)로부터의 탐색 영역 데이터를 입력받아 정수 화소 단위의 움직음 추정을 행한 뒤 움직임 벡터를 출력하는 정수 화소 움직임 추정부(12); 반화소 단위의 움직음 추정을 위해 입력되는 영상 데이터 중 I-화상과 P-화상에 해당되는 기준 프레임(anchor frame)의 데이터를 저장하는 반화소 움직임 추정용 메모리(14); 및 정수 단위의 움직임 벡터를 중심으로 반화소 단위의 움직임 추정을 행한 뒤 움직임 벡터를 출력하는 반화소 움직임 추정부(16)로 구성된다.2 is a block diagram of a motion estimation apparatus in a conventional image encoder, and corresponds to an I-picture and a P-picture of image data input for motion estimation in units of integer pixels. An integer pixel motion estimation memory 10 for storing data of an anchor frame; An integer pixel motion estimation unit (12) which receives data of a current frame and search area data from the integer pixel motion estimation memory (10), performs motion estimation in units of integer pixels, and outputs a motion vector; A half-pixel motion estimation memory 14 for storing data of an anchor frame corresponding to an I-picture and a P-picture among image data inputted for half-pixel motion estimation; And a half-pixel motion estimation unit 16 for performing motion estimation in half-pixel units based on the motion vector in integer units and outputting the motion vector.
제3도는 반화소 움직임 추정부에서 1 매크로블럭 처리시 필요한 정수 화소를 나타낸 도면으로서, 제1도, 제2도와 함께 참조하여 종래의 영상 부호화기에서의 움직임 추정 장치에 대한 동작을 살펴보면 다음과 같다.FIG. 3 is a diagram illustrating integer pixels required for one macroblock processing by a half-pixel motion estimation unit. Referring to FIG. 1 and FIG. 2, operation of a motion estimation apparatus in a conventional image encoder is as follows.
입력되는 영상 데이터중 I-화상(Intra-picture)과 P-화상(Predicted-picture)에 해당하는 기준 프레임(anchor frame) 의 데이터가 정수 화소 움직임 추정용 메모리(10)와 반화소 움직임 추정용 메모리(14)에 각각 저장되는데, 각각의 메모리(10,14)에는 프레임 단위로 영상 데이터가 저장된다.Among the input image data, data of an integer frame corresponding to an I-picture and a P-picture are stored in the integer pixel motion estimation memory 10 and the half-pixel motion estimation memory. Each of the memory units 10 and 14 stores image data in units of frames.
정수 화소 움직임 추정부(12)에서는 현재 프레임의 데이터를 레퍼런스(reference)로 입력받고, 정수 화소 움직임 추정용 메모리(10)로부터 탐색 영역의 데이터를 입력받아 정수 화소 단위의 움직임 추정을 행한 뒤 가장 유사한 데이터를 찾아 이에 대한 움직임 벡터를 출력한다.The integer pixel motion estimation unit 12 receives the data of the current frame as a reference, receives data of the search area from the integer pixel motion estimation memory 10, performs motion estimation in units of integer pixels, and then most similarly. Find the data and output the motion vector for it.
상기와 같이 구해진 정수 단위의 움직임 벡터는 반화소 움직임 추정부(16)로 전달되고, 상기 반화소 움직임 추정부(16)에서는 이 정수 단위의 움직임 벡터를 중심으로 제1도와 같이 9 개의 반화소 단위의 경우에 대하여 움직임 추정을 행한다.The motion vector of the integer unit obtained as described above is transferred to the half-pixel motion estimation unit 16, and the half-pixel motion estimation unit 16 includes nine half-pixel units as shown in FIG. Motion estimation is performed for the case of.
1 매크로블럭(16 pixels * 16 pixels)의 반화소 움직임 추정을 위해서는 제3도와 같이 수평 및 수직으로 각각 두 화소씩 더 요구되며 이러한 입력 조건의 형태로 반화소 움직임 추정용 메모리(14)에서 데이터를 읽어 제1도와 같은 9 가지 경우에 대하여 현제 프레임과의 차이를 비교한 후 가장 유사한 즉, 에러값이 가장 작은 것을 선택하여, 이것을 정수 단위의 움직임 벡터중 최하위비트(LSB)에 추가하여 출력한다.In order to estimate a half-pixel motion of 1 macroblock (16 pixels * 16 pixels), two more pixels are required, horizontally and vertically, respectively, as shown in FIG. 3. In the nine cases as shown in FIG. 1, the difference between the current frame is compared and the most similar one, that is, the one having the smallest error value is selected, and this is added to the least significant bit (LSB) of the motion vectors in integer units and output.
상기와 같이 반화소 단위로 움직임 추정을 행하는 움직임 추정 장치를 실제 하드웨어로 구성하게 되면 매우 복잡하고 부피가 커지게 된다는 문제점이 발생하고, 특히 종래의 움직임 추정 장치는 반화소 움직임 추정을 위해 프레임 단위의 용량을 갖는 메모리를 사용하기 때문에 하드웨어의 비용이 증가된다는 문제점이 있었다.As described above, when a motion estimating device that performs motion estimation in units of half pixels is composed of real hardware, a problem arises that it becomes very complicated and bulky. In particular, a conventional motion estimating device uses a frame unit for half pixel motion estimation. There is a problem in that the cost of hardware is increased because of using a memory having a capacity.
따라서, 본 발명은 상기 와 같은 문제점을 해결하기 위해 안출된 것으로, 반화소 움직임 추정을 위한 영상 데이터를 탐색 영역 단위로 입력받아서 저장한 후 처리하도록 되어진 영상 부호화기에서의 움직임 추정 장치를 제공하는데 그 목적이 있다.Accordingly, an object of the present invention is to provide a motion estimation apparatus in an image encoder, which is designed to solve the above problems, and to receive and store image data for half-pixel motion estimation in units of search areas. There is this.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 움직임 추정장치는, 정수 화소 단위의 움직음 추정을 위해 입력되는 영상 데이터중 I-화상과 P-화상에 해당하는 기준 프레임의 데이터를 저장하는 정수 화소 움직음 추정용 메모리와 현재 프레임의 데이터와 상기 정수 화소 움직임 추정용 메모리부터의 탐색 영역 데이터를 입력받아 정수 화소 단위의 움직임 추정을 행한 뒤 움직임 벡터를 출력하는 정수 화소 움직임 추정부가 구비된 영상 부호화기에서의 움직임 추정 장치에 있어서,The motion estimation apparatus according to the present invention for achieving the above object, an integer pixel for storing the data of the reference frame corresponding to the I-picture and P-picture of the image data input for motion estimation in the unit of integer pixels In an image encoder including a motion estimation memory, data of a current frame, and search region data from the integer pixel motion estimation memory, and performing an integer pixel motion estimation and outputting a motion vector. In the motion estimation apparatus of
반화소 단위의 움직임 추정을 위해 상기 정수 화소 움직임 추정용 메모리부터의 탐색 영역에 해당하는 영상 데이터를 저장하는 반화소 움직임 추정용 메모리; 및A half-pixel motion estimation memory for storing image data corresponding to a search region from the integer pixel motion estimation memory for motion estimation in half-pixel units; And
정수 단위의 움직임 벡터를 중심으로 반화소 단위의 움직임 추정을 행한 뒤 움직임 벡터를 출력하는 반화소 움직임 추정부로 구성되어 있는 것을 특징으로 한다.And a half-pixel motion estimator for outputting a motion vector after performing motion estimation in half-pixel units around a motion vector in an integer unit.
이하, 첨부된 도면을 참조하여 본 발명에 대하여 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail with respect to the present invention.
제4도는 본 발명에 따른 영상 부호화기에서의 움직임 추정 장치에 대한 블록도로서, 본 발명의 움직임 추정 장치는 정수 화소 단위의 움직임 추정을 위해 입력되는 영상 데이터중 I-화상과 P-화상에 해당하는 기준 프레임의 데이터를 저장하는 정수 화소 움직임 추정용 메모리(10)와; 현재 프레임의 데이터와 상기 정수 화소 움직임 추정용 메모리(10)로부터의 탐색 영역 데이터를 입력받아 정수 화소 단위의 움직임 추정을 행한 뒤 움직임 벡터를 출력하는 정수 화소 움직임 추정부(12); 반화소 단위의 움직임 추정을 위해 상기 정수 화소 움직임 추정용 메모리(10)로부터의 탐색 영역에 해당하는 영상 데이터를 입력받아 저장하는 반화소 움직임 추정용 메모리(20); 및 정수 단위의 움직임 벡터를 중심으로 반화소 단위의 움직임 추정을 행한 뒤 움직임 벡터를 출력하는 반화소 움직임 추정부(22)로 구성되어 있다.4 is a block diagram of a motion estimation apparatus in an image encoder according to the present invention. The motion estimation apparatus of the present invention corresponds to an I-picture and a P-picture of image data input for motion estimation in units of integer pixels. An integer pixel motion estimation memory 10 for storing data of a reference frame; An integer pixel motion estimation unit (12) which receives data of a current frame and search area data from the integer pixel motion estimation memory (10), performs motion estimation in units of integer pixels, and outputs a motion vector; A half-pixel motion estimation memory 20 for receiving and storing image data corresponding to a search region from the integer pixel motion estimation memory 10 for motion estimation of a half pixel unit; And a half-pixel motion estimation unit 22 that performs motion estimation in half-pixel units based on the motion vector in integer units and outputs the motion vector.
이어서, 첨부한 도면을 참조하여 본 발명의 동작과 효과에 대해서 자세히 설명하기로 한다.Next, the operation and effects of the present invention will be described in detail with reference to the accompanying drawings.
제5도는 반화소 움직임 추정시의 탐색 영역을 나타낸 예시도로서, 제1도, 제3도, 제4도를 함께 참조하여 동작을 설명하면 다음과 같다.FIG. 5 is an exemplary diagram illustrating a search area when the half-pixel motion is estimated. Referring to FIG. 1, FIG. 5 will be described with reference to FIGS. 1, 3, and 4.
입력되는 영상데이터중 I-화상과 P-화상에 해당하는 기준 프레임(anchor frame)의 데이터가 정수 화소 움직임 추정용 메모리(10)에 저장되는데, 이 메모리(10)에는 프레임 단위로 영상 데이터가 저장된다.Among the input image data, data of an anchor frame corresponding to an I-picture and a P-picture are stored in the integer pixel motion estimation memory 10, which stores image data in units of frames. do.
정수 화소 움직임 추정부(12)에서는 현재 프레임의 데이터를 레퍼런스(reference)로 입력받고, 정수 화소 움직임 추정용 메모리(10)로부터 탐색 영역의 데이터를 입력받아 정수 화소 단위의 움직임 추정을 행한 뒤가장 유사한 데이터를 찾아 이에 대한 움직임 벡터를 출력한다.The integer pixel motion estimation unit 12 receives the data of the current frame as a reference, receives data of the search area from the integer pixel motion estimation memory 10, performs motion estimation in units of integer pixels, and then closes the most similarly. Find the data and output the motion vector for it.
반화소 움직임 추정용 메모리(20)에서는 정수 화소 움직임 추정용 메모리(10)로부터 탐색 영역 단위의 영상 데이터를 입력받아 저장하고, 상기 정수 화소 움직임 추정부(12)에서 출력된 정수 단위의 움직임 벡터에 따라 반화소 움직임 추정부(22)로 제3도와 같이 필요한 데이터를 출력한다.The half-pixel motion estimation memory 20 receives and stores image data in a search area unit from the integer pixel motion estimation memory 10, and stores the image data in the integer vector motion vector output from the integer pixel motion estimation unit 12. Accordingly, the half pixel motion estimation unit 22 outputs necessary data as shown in FIG. 3.
상기와 같이 반화소 움직임 추정용 메모리(20)로 프레임 용량의 메모리를 사용하는 대신에 탐색 영역 용량의 메모리를 사용하므로써, 하드웨어의 비용을 감소시킬 수 있다.As described above, instead of using the frame capacity memory as the half-pixel motion estimation memory 20, the cost of hardware can be reduced.
그런데, 제5도에 도시된 바와 같이 만일 정수 화소 움직임 추정을 행한 후 출력된 움직임 벡터가 정수 화소 움직임 추정의 탐색 영역 가장자리 부분에 있게 되면, 반화소 움직임 추정을 위하여 그 탐색 영역의 외부 화소도 필요하게 되는 경우가 발생한다.However, as shown in FIG. 5, if the motion vector outputted after performing the integer pixel motion estimation is at the edge of the search region of the integer pixel motion estimation, external pixels of the search region are also necessary for half pixel motion estimation. It happens.
그러나, 탐색 영역 내의 데이터만을 저장하는 반화소 움직임 추정용 메모리(20)에는 상기와 같은 탐색 영역 외부의 화소가 준재하지 않기 때문에 정수 화소 움직임 추정을 행한 후의 움직임 벡터가 가장자리에 있게 되면, 제1도의 9가지 경우중 탐색 영역 외부의 화소가 필요한 경우에 대해서는 강제적으로 제외시키고 나머지 탐색 영역 내부의 화소 만으로 계산할 수 있는 경우만을 고려하여 반화소 움직임 추정을 행하도록 한다.However, in the half-pixel motion estimation memory 20 that stores only the data in the search area, since the pixels outside the search area do not exist as described above, when the motion vector after performing the integer pixel motion estimation is at the edge, it is shown in FIG. Of the nine cases, if the pixel outside the search area is required, the half-pixel motion estimation is performed by considering only the case in which the pixel inside the remaining search area can be calculated only.
이와 같은 방법으로 반화소 움직임 추정을 하더라도 정수 화소 움직임 추정에서의 움직임 벡터가 탐색 영역의 가장자리에 존재하는 경우가 좀처럼 없을 뿐만 아니라 상기와 같은 움직임 벡터가 발생하더라도 제1도의 9가지 경우중 일부 경우에 대해서만 강제적으로 발생시키지 않도록 하는 것이기 때문에 화질에 큰 영향을 미치지는 않는다.Even if the half-pixel motion estimation is performed in this way, the motion vector in the integer pixel motion estimation is rarely present at the edge of the search area. Even if the motion vector is generated, in some of the nine cases of FIG. It does not have a big impact on image quality because it is not forcibly generated.
결국, 약간의 손실이 발생하긴 하지만 메모리의 용량을 대폭 감소시켜서 사용하게되므로 하드웨어의 비용을 줄일 수 있다.Eventually, there is some loss, but the use of memory is greatly reduced, which can reduce the cost of hardware.
이상에서 설명한 바와 같이 본 발명은 반화소 움직임 추정을 위한 메모리로 프레임 용량의 메모리를 사용하는 대신에 탐색 영역 용량의 메모리를 사용하므로써, 하드웨어의 비용을 감소시킬 수 있다는데 그 효과가 있다.As described above, the present invention has the effect that the cost of hardware can be reduced by using the memory of the search area capacity instead of the memory of the frame capacity as the memory for half-pixel motion estimation.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950028338A KR0185841B1 (en) | 1995-08-31 | 1995-08-31 | A motion extimator for a video coder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950028338A KR0185841B1 (en) | 1995-08-31 | 1995-08-31 | A motion extimator for a video coder |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970014396A KR970014396A (en) | 1997-03-29 |
KR0185841B1 true KR0185841B1 (en) | 1999-05-01 |
Family
ID=19425696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950028338A KR0185841B1 (en) | 1995-08-31 | 1995-08-31 | A motion extimator for a video coder |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0185841B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220058258A (en) | 2020-10-30 | 2022-05-09 | 주식회사 크리에이츠 | Method, system, and non-transitory computer-readable recording medium for supporting a virtual golf simulation |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6332002B1 (en) | 1997-11-01 | 2001-12-18 | Lg Electronics Inc. | Motion prediction apparatus and method |
KR100439183B1 (en) * | 2001-08-29 | 2004-07-05 | 한국전자통신연구원 | Stochastic sampling based pel motion estimation method |
KR100708183B1 (en) * | 2005-09-26 | 2007-04-17 | 삼성전자주식회사 | Image storing device for motion prediction, and method for storing data of the same |
-
1995
- 1995-08-31 KR KR1019950028338A patent/KR0185841B1/en not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220058258A (en) | 2020-10-30 | 2022-05-09 | 주식회사 크리에이츠 | Method, system, and non-transitory computer-readable recording medium for supporting a virtual golf simulation |
KR20230091077A (en) | 2020-10-30 | 2023-06-22 | 주식회사 크리에이츠 | Method, system, and non-transitory computer-readable recording medium for supporting a virtual golf simulation |
KR20240110536A (en) | 2020-10-30 | 2024-07-15 | 주식회사 크리에이츠 | Method, system, and non-transitory computer-readable recording medium for supporting a virtual golf simulation |
Also Published As
Publication number | Publication date |
---|---|
KR970014396A (en) | 1997-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4724459B2 (en) | Motion vector detection using adaptive time prediction | |
US6618439B1 (en) | Fast motion-compensated video frame interpolator | |
KR0181069B1 (en) | Motion estimation apparatus | |
US7720148B2 (en) | Efficient multi-frame motion estimation for video compression | |
US6192080B1 (en) | Motion compensated digital video signal processing | |
KR100287211B1 (en) | Bidirectional motion estimation method and system | |
US6859494B2 (en) | Methods and apparatus for sub-pixel motion estimation | |
KR100739281B1 (en) | Motion estimation method and appratus | |
US8514939B2 (en) | Method and system for motion compensated picture rate up-conversion of digital video using picture boundary processing | |
US20040114688A1 (en) | Device for and method of estimating motion in video encoder | |
KR100242406B1 (en) | Method for motion estimation using trajectory in a digital video encoder | |
KR20110039516A (en) | Speculative start point selection for motion estimation iterative search | |
KR20010043410A (en) | Method and apparatus for increasing video frame rate | |
KR20110036886A (en) | Simple next search position selection for motion estimation iterative search | |
KR100204478B1 (en) | Method of and apparatus for compensating the vacant space of image frames incurred by global motion | |
JP4328000B2 (en) | Moving picture coding apparatus and moving picture special effect scene detecting apparatus | |
US5579050A (en) | Apparatus for encoding a video signal using a search grid | |
KR0185841B1 (en) | A motion extimator for a video coder | |
KR100208984B1 (en) | Moving vector estimator using contour of object | |
Huang et al. | An adaptively refined block matching algorithm for motion compensated video coding | |
KR0185842B1 (en) | A motion estimator for a video coder | |
KR100240620B1 (en) | Method and apparatus to form symmetric search windows for bidirectional half pel motion estimation | |
KR0180161B1 (en) | Apparatus and method for processing a motion vector | |
KR0181068B1 (en) | Motion estimation apparatus | |
Tu et al. | Projection-based block-matching motion estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20111201 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20121203 Year of fee payment: 15 |
|
LAPS | Lapse due to unpaid annual fee |