KR100205146B1 - Motion estimation method in digital video encoder - Google Patents

Motion estimation method in digital video encoder Download PDF

Info

Publication number
KR100205146B1
KR100205146B1 KR1019960039567A KR19960039567A KR100205146B1 KR 100205146 B1 KR100205146 B1 KR 100205146B1 KR 1019960039567 A KR1019960039567 A KR 1019960039567A KR 19960039567 A KR19960039567 A KR 19960039567A KR 100205146 B1 KR100205146 B1 KR 100205146B1
Authority
KR
South Korea
Prior art keywords
search
processor
array
motion vector
search area
Prior art date
Application number
KR1019960039567A
Other languages
Korean (ko)
Other versions
KR19980020898A (en
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 KR1019960039567A priority Critical patent/KR100205146B1/en
Publication of KR19980020898A publication Critical patent/KR19980020898A/en
Application granted granted Critical
Publication of KR100205146B1 publication Critical patent/KR100205146B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field

Landscapes

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

Abstract

본 발명은 어레이 프로세서를 이용하여 이전 프레임의 탐색 영역에 대한 기준 영역의 움직임 벡터를 검출하는 방법으로서, 이전 프레임에 대한 소정 탐색 영역의 픽셀값을 상기 어레이 프로세서에 입력하는 제 1 단계와; 어레이 프로세서에 상기 기준 영역에 대한 픽셀값을 입력하는 제 2 단계와; 탐색 영역에 대한 상기 기준 영역의 움직임 벡터를 검출하는 제 3 단계와; 이전 프레임에 새로운 탐색 영역을 설정하고, 상기 어레이 프로세서에 저장된 탐색 영역과 중복되지 않은 픽셀값만을 새로운 상기 어레이 프로세서에 입력하고, 상기 제 3 단계로 궤환하는 제 4 단계를 구비한다. 즉, 본 발명은 프로세서 어레이를 이용하여 움직임 벡터의 검출시 기준 블록에 중복되지 않는 이전 프레임 데이터들을 프로세서 어레이에 순차적으로 입력하므로써 짧은 시간에 움직임 벡터를 검출할 수 있다는 효과가 있다.The present invention provides a method for detecting a motion vector of a reference region for a search region of a previous frame using an array processor, comprising: a first step of inputting a pixel value of a predetermined search region for a previous frame to the array processor; Inputting a pixel value for the reference region into an array processor; Detecting a motion vector of the reference region with respect to the search region; And a fourth step of setting a new search area in a previous frame, inputting only pixel values not overlapping with the search area stored in the array processor to the new array processor, and returning to the third step. That is, the present invention has an effect that the motion vector can be detected in a short time by sequentially inputting previous frame data not overlapped with the reference block when the motion vector is detected using the processor array.

Description

디지털 비데오 인코더 시스템에서 움직임 예측 방법Motion Prediction Method in Digital Video Encoder System

본 발명은 디지털 비디오 인코더 시스템에서의 영상 신호 압축 기술에 관한 것으로서, 더욱 상세하게는 영상 신호의 움직임을 예측하여 압축하는 디지털 비데오 인코더 시스템에서 움직임 예측 방법에 관한 것이다. 디지털 비디오 인코더 시스템 개발 기술 중에서 가장 핵심이 되는 기술은 영상 신호의 압축 기술이다. 영상 신호의 압축은 영상 신호에 내재하는 색 신호간 중복성, 공간적 중복성, 시간적 중복성, 통계적 중복성을 제거함으로써 얻어진다. 이 중 시간적 중복성 제거를 통해서 가장 많은 압축이 이루어지며, 이를 위해 움직임 추정 및 보상 기법이 사용된다. 움직임 벡터를 구하는 방법중에서 가장 보편적으로 쓰이고 있고, 실제로 제안된 4가지 완전 디지털 방식중 3 방식이 채택하고 있는 BMA(Blocking Matching Algorithm)는 화면의 움직임이 수평, 수직으로 평행이동한 것으로 가정하여 움직임이 일어난 프레임의 블록 화상이 움직임이 일어나기 전 프레임의 어느 위치에 있는 블록 화상과 가장 일치하는가를 추정하여 그 위치를 통상 움직임 벡터를 추정하는 방법이다. 일반적으로 블록 크기는 8×8이나 16×16을 쓰고 있는 것이 보통인데, 이는 블록의 크기를 크게 하면 전송해야 하는 움직임 벡터의 비트율이 떨어지는 대신 블록안에 여러 가지 움직임이 있을 때는 신뢰도가 떨어지는 점을 고려한 블록의 크기이다. 움직임의 범위는 이론적으로 -∞부터 +∞까지 이지만 실질적, 계산 시간이나 하드웨어의 복잡도를 고려하여 그 탐색 구간을 결정하게 된다. 즉, 도1과 같이 움직임 추정을 해서 구해진 이전 프레임의 블록을 현재 프레임의 블록으로 움직임 보상을 하게 되면 중복성을 제거하게 되는 것이다. 여기서 제1a도는 다음 프레임을 예측하기 위하여 사용된 이전 프레임의 블록들을 도시한 것이고, 제1b도는 운동 보상을 위해 현재 블록 위치로 재조정된 이전 프렘의 블록을 도시한 것이다. 수식적으로는, 가장 일치하는 블록을 찾기 위하여, 연속된 두 프레임의 화상중에서, 이전 프레임을 f1(x,y), 현재 프레임을 f2(x,y)라 했을 때, f2(x,y)와 f1(x-α,y-β)에서 f1(α,β)를 변환시켜가면서 f1(x-α,y-β)와 f2(x,y)의 차를 구하여 그 차가 최소가 되는 를 움직임 벡터로 예측하는 방법을 쓰게 되는데, 프레임간의 차이를 구하는 식은 평균 절대 오차(Eabs)를 주로 사용한다.The present invention relates to a video signal compression technique in a digital video encoder system, and more particularly, to a motion prediction method in a digital video encoder system for predicting and compressing a motion of a video signal. The core technology among digital video encoder system development technology is the compression technology of video signal. The compression of the video signal is obtained by removing the redundancy, spatial redundancy, temporal redundancy, and statistical redundancy among the color signals inherent in the video signal. Among them, the most compression is achieved by eliminating temporal redundancy. For this purpose, motion estimation and compensation techniques are used. The BMA (Blocking Matching Algorithm), which is the most commonly used method of motion vectors, and is adopted by three of the four proposed all-digital methods, assumes that the motion of the screen is moved horizontally and vertically. It is a method of estimating which position of a block image of a frame most coincides with a block image of a frame before motion occurs and estimating the normal motion vector of the position. In general, the block size is usually 8 × 8 or 16 × 16. This means that the larger the block size, the lower the bit rate of the motion vector to be transmitted. The size of the block. The range of motion is theoretically from -∞ to + ∞, but in practice, the search interval is determined in consideration of computation time or hardware complexity. That is, redundancy is eliminated when motion compensation is performed on the blocks of the previous frame obtained by the motion estimation as shown in FIG. Here, FIG. 1a shows the blocks of the previous frame used to predict the next frame, and FIG. 1b shows the blocks of the previous prem that have been readjusted to the current block position for motion compensation. Mathematically, the when to find the best matching block, in the image of the two frames in a row, the previous frame f d 1 (x, y), f 2 (x, y) of the current frame, f 2 (x , y) and f 1 (x-α, y-β) are converted to f 1 (α, β), and the difference between f 1 (x-α, y-β) and f 2 (x, y) is obtained. We use the method of predicting the minimum value of the difference as a motion vector. The formula for calculating the difference between frames mainly uses the mean absolute error (E abs ).

[수식][Equation]

여기서 |B|는 블록 크기를 뜻한다.Where | B | stands for block size.

이와 같은 움직임 추정을 위한 탐색 영역은 넓으면 넓을수록 더 좋은 성능을 보이며 고화질 텔레비젼과 같이 해상도가 높은 영상의 경우 더욱 더 넓은 탐색 영역을 필요로 하는데 약 수평으로 -128~127화소, 수직 -32~31화소의 탐색의 영역을 필요로 한다.The wider the search area for motion estimation, the better the performance. The higher the resolution, such as high-definition television, the wider the search area is required. 31 area of search is required.

종래에는 이러한 움직임 탐색을 고속으로 실현하기 위하여 2 레벨 탐색 방법 어레이(array) 프로세서 사용을 도입하였다.Conventionally, the use of a two-level search method array processor has been introduced to realize such motion search at high speed.

이를 구체적으로 이하에서 설명한다.This will be described in detail below.

먼저 2 레벨 탐색이란 저해상도의 프레임에 대하여 움직임 벡터를 대강 찾은 뒤 고해상도의 프레임에 대하여 저해상도에서 찾은 벡터를 중심으로 다시 정교하게 찾는 것이다.First, two-level search is to find a motion vector roughly for a frame of low resolution, and then search for the high resolution frame in detail based on the vector found at low resolution.

저해상도의 영상을 톱 레벨 영상이라 부르고, 고해상도의 영상을 버텀 레벨이라 부른다. 예를 들어 버텀 레벨의 영상의 해상도가 2048×1024라고 할 때, 저해상도의 영상은 고해상도의 영상을 1/8로 축소하는 것이라고 하면 해상도가 256×128이 된다.Low-resolution images are called top-level images, and high-resolution images are called bottom levels. For example, assuming that the resolution of a bottom level image is 2048 × 1024, a resolution of a low resolution image is 256 × 128 when a high resolution image is reduced to 1/8.

탐색 영역이 수평으로 -128~127화소, 수직으로 -32~31화소의 경우 탑 레벨에서는 수평 -16~15화소, 수직으로 -4~3화소만을 탐색하게 된다. 즉, 고해상도의 영역에서 바로 탐색할 때보다 탐색 영역이 1/(8×8)로 줄어들게 되며 버텀 레벨에서는 탑 레벨에서 구한 움직임 벡터를 중심으로 수평 -4~3, 수직 -4~3화소만을 탐색하거나 이보다 약간 넓은 영역을 탐색하면 되는데, 대게 탑 레벨에서 탐색한 화소와 같이 수평 -16~15화소, 수직으로 -4~3화소만을 탐색하게 된다.If the search area is -128 to 127 pixels horizontally, and -32 to 31 pixels vertically, only 16-15 pixels horizontally and -4 to 3 pixels vertically are searched at the top level. That is, the search area is reduced to 1 / (8 × 8) than when searching directly in the high-resolution area, and at the bottom level, only horizontal -4 to 3 and vertical -4 to 3 pixels are searched based on the motion vector obtained from the top level. Or you can search a slightly wider area, usually like -16 to 15 pixels horizontally and -4 to 3 pixels vertically, just like the pixels you searched at the top level.

프로세서 어레이를 사용하는 경우를 보면, 도2에서와 같이 현재 블록 (1)에 대하여 이전 프레임의 해당 블록이 어디에 위치하고 있는가를 찾는 것이 움직임을 찾는 일이다. 해당 블록의 움직임 벡터의 크기가 해상도가 높아짐에 따라 그 크기도 커지게 되므로 계산량이 증가하게 된다. 이렇게 증가되는 계산량을 감당하기 위하여 블록 매칭 프로세서 어레이들을 사용하게 된다.In the case of using the processor array, as shown in Fig. 2, finding where the corresponding block of the previous frame is located with respect to the current block (1) is to find the motion. As the size of the motion vector of the block increases as the resolution increases, the amount of computation increases. Block matching processor arrays are used to handle this increased computation.

도2에서와 같이 블록 매칭을 위한 프로세서 어레이(PE11∼PEuv)들이 u×v개만큼 모여 있고 각 프로세서 어레이(PE11∼PEuv)들은 블록 매칭을 위하여 기준 블록(REF1, REF2,...)과 이전 프레임의 탐색 영역 데이터(FD1,FD2,...)를 입력으로 받아들여 MSE(Mean Square Error) 또는 MAE(Mean Absolute Error)를 각각 한가지 움직임 벡터에 대하여 계산한다.As shown in FIG. 2, u × v processor arrays PE11 to PEuv for block matching are gathered, and each processor array PE11 to PEuv is moved from the reference blocks REF1, REF2, ... to block matching. The search area data (FD1, FD2, ...) of the frame is taken as an input, and a mean square error (MAS) or mean absolute error (MAE) is calculated for one motion vector.

프로세서 어레이 수가 u×v만큼 있으므로 수평으로 u만큼의 움직임과 수직으로 v만큼의 움직임을 예측할 수 있다.Since the number of processor arrays is u × v, we can predict u movement horizontally and v movement vertically.

소정 지연 시간(d) 후에 프로세서 어레이(PE11∼PEuv)로부터 구해진 MAE 또는 MSE는 출력 콘트롤러(10)에서 비교되고, 출력 콘트롤러(10)는 각 프로세서 어레이(PE11∼PEuv)로부터 검출된 MAE 또는 MSE중 가장 작은 값이 가장 작은 MAE/MSE 1, MAE/MSE 2,...와 해당 움직임 벡터(VEC1,VEC2,...)를 출력하게 된다.After the predetermined delay time d, the MAE or MSE obtained from the processor arrays PE11 to PEuv is compared at the output controller 10, and the output controller 10 is the MAE or MSE detected from each processor array PE11 to PEuv. The smallest value will output the smallest MAE / MSE 1, MAE / MSE 2, ... and the corresponding motion vectors (VEC1, VEC2, ...).

이러한 과정을 예를들어 설명하면 다음과 같다.An example of this process is as follows.

먼저, 도3과 같이 움직임 탐색 영역(FD)이 6×6 픽셀이고, 움직임 탐색을 위한 기준 블록(REF)이 2×2 픽셀로 구성되어 있다고 가정한다. 이때, 어레이 프로세서(PE11∼PEuv)는 움직임 벡터의 수와 같은 5×5의 개수로 구성할 수 있다. 즉, 움직임 벡터는 도4와 같이 수평, 수직 방향으로 각각 -2,-1,0,+1,+2인 성분이 존재하므로 25개의 움직임 벡터가 존재할 수 있으며, 이 25개의 움직임 벡터를 검출하기 위하여는 도5와 같이 25개의 어레이 프로세서(PE11∼PEuv)가 사용되어야 하는 것이다. 각 어레이 프로세서(PE11~PE55)는 해당 움직임 벡터에 대하여 탐색영역(FD)과 기준 블록(REF)간의 매칭을 실시한다. 매칭은 상술한 바와 같이 MAE 또는 MSE에 의한 방법을 채용할 수 있다. 즉, 도4의 탐색 영역(FD)내 픽셀값(P29,P30,P35,P36)과 기준 블록(REF)의 픽셀값(R1,R2,R3,R4)간의 MAE는 다음 수식 1에 의하여 검출할 수 있다.First, as shown in FIG. 3, it is assumed that the motion search area FD is 6 × 6 pixels, and the reference block REF for the motion search is configured by 2 × 2 pixels. At this time, the array processors PE11 to PEuv may be configured with a number of 5 × 5 equal to the number of motion vectors. That is, since there are components of -2, -1,0, + 1, + 2 in the horizontal and vertical directions as shown in FIG. 4, 25 motion vectors may exist, and the 25 motion vectors may be detected. For this purpose, 25 array processors PE11 to PEuv should be used as shown in FIG. Each array processor PE11 to PE55 performs matching between the search area FD and the reference block REF with respect to the corresponding motion vector. Matching may employ a method by MAE or MSE as described above. That is, the MAE between the pixel values P29, P30, P35, and P36 in the search area FD of FIG. 4 and the pixel values R1, R2, R3, and R4 of the reference block REF may be detected by Equation 1 below. Can be.

[수식1][Equation 1]

MAE=(|P29-R1|+|P30-R2|+|P35-R3|+|P36-R4|)MAE = (| P29-R1 | + | P30-R2 | + | P35-R3 | + | P36-R4 |)

이에 반하여 MSE는 식 2에 의하여 검출할 수 있다.On the contrary, MSE can be detected by Equation 2.

[수식2][Equation 2]

MSE=(P29-R1)2+(P30-R2)2+(P35-R3)2+(P36-R4)2))MSE = (P29-R1) 2 + (P30-R2) 2 + (P35-R3) 2 + (P36-R4) 2 ))

따라서, 어레이 프로세서(PE55)는 탐색 영역(FD)의 픽셀값(P1,P2,P7,P8)과 기준 블록(REF)의 픽셀값(R1,P2,R3,R4)와의 MAE 또는 MSE를 상기 수식 1,2에 따라 산출하게 되며, 어레이 프로세서(PE55)외의 프로세서(PE11~PE54) 역시 각각의 탐색 영역에 대한 MAE 또는 MSE를 구하게 된다. 이와 같이 각 어레이 프로세서(PE11~PE55)에서 검출된 MAE 또는 MSE중 가장 작은 MAE 또는 MSE를 갖는 어레이 프로세서(PE11~PE55 둘중 하나)의 프로세서의 위치가 움직임 벡터가 된다. 즉, 어레이 프로세서(PE11)가 가장 적은 MAE 또는 MSE를 구한 경우에 움직임 벡터는(+2,+2)가 되어지며, 어레이 프로세서(PE55)가 가장 작은 MAE 또는 MSE를 구한 경우에 움직임 벡터는 (-2,-2)가 되어진다.Accordingly, the array processor PE55 may calculate the MAE or MSE of the pixel values P1, P2, P7, and P8 of the search area FD and the pixel values R1, P2, R3, and R4 of the reference block REF. The calculation is performed according to 1, 2, and the processors PE11 to PE54 other than the array processor PE55 also obtain MAE or MSE for each search area. As such, the position of the processor of the array processor (one of PE11 to PE55) having the smallest MAE or MSE among the MAEs or MSEs detected by the array processors PE11 to PE55 becomes a motion vector. That is, when the array processor PE11 obtains the smallest MAE or MSE, the motion vector becomes (+ 2, + 2), and when the array processor PE55 obtains the smallest MAE or MSE, the motion vector becomes ( -2, -2).

도6에는 이러한 탐색 영역(FD)과 기준 영역(REF)간의 MAE 또는 MSE를 구하는 어레이 프로세서의 블록도가 도시되어 있다.6 shows a block diagram of an array processor for obtaining a MAE or MSE between such search region FD and reference region REF.

도시된 바와 같이 입력단(A)을 통하여는 탐색 영역의 픽셀 값들이 인가되어 탐색 메모리(101)에 저장된다. 이때, 탐색 메모리(101)에 저장되는 픽셀값은 다음과 같다. 즉, 어레이 프로세서(PE55,PE54,PE53,PE52,PE51)의 탐색 메모리(101) 각각에는 탐색 영역(FD)의 픽셀값들중 2개의 행의 픽셀값들이 입력된다. 즉, 어레이 프로세서(PE55)에는 픽셀값(P1,P2,P7,P8)이 어레이 프로세서(PE54)에는 픽셀값(P2,P3,P8,P9)이, 어레이 프로세서(PE53)에는 픽셀값(P3,P4,P9,P10)이, 어레이 프로세서(PE52)에는 픽셀값((P4,P5,P10,P11)이 그리고, 어레이 프로세서(PE51)에는 픽셀값(P5,P6,P11,P12)이 입력되어지는 것이다.As shown in the drawing, the pixel values of the search area are applied and stored in the search memory 101 through the input terminal A. FIG. At this time, the pixel values stored in the search memory 101 are as follows. That is, pixel values of two rows of the pixel values of the search area FD are input to each of the search memories 101 of the array processors PE55, PE54, PE53, PE52, and PE51. That is, the pixel values P1, P2, P7, and P8 are arranged in the array processor PE55, the pixel values P2, P3, P8, and P9 are arranged in the array processor PE54, and the pixel values P3, P3, and the like are arranged in the array processor PE53. P4, P9, P10, pixel values (P4, P5, P10, P11) are input to the array processor PE52, and pixel values P5, P6, P11, P12 are input to the array processor PE51. will be.

이러한 방식으로 어레이 프로세서(PE41-45)에는 2행 및 3행에 해당하는 탐색 영역(FD)의 필셀값들이 각각 인가되며, 어레이 프로세서(PE31-35)에는 3행 및 4행에 해당하는, 어레이 프로세서(PE21-25)에는 4행 및 5행에 해당하는, 그리고 어레이 프로세서(PE11-15)에는 5행 및 6행에 해당하는 탐색 영역(FD)의 픽셀값들이 각각 저장되는 것이다.In this manner, the pixel values of the search region FD corresponding to two rows and three rows are applied to the array processor PE41-45, and the array corresponding to three rows and four rows to the array processor PE31-35, respectively. Pixels of the search area FD corresponding to four and five rows are stored in the processor PE21-25, and five and six rows are respectively stored in the array processor PE11-15.

이때, 기준 블록(REF)영역의 픽셀값들은 탐색 영역(FD)의 제 5행 및 제 6행의 픽셀값이 어레이 프로세서(PE11-PE15)에 입력되어질 때에 동시에 단자(B)를 통하여 입력되어지며, 탐색 영역(FD)의 픽셀값들에 대한 입력이 종료되면 연산기(102)는 탐색 메모리(101)내의 픽셀값과 기준 블록(REF)영역의 픽셀값들에 대한 MAE 또는 MSE를 검출하여 출력하는 것이다.At this time, the pixel values of the reference block REF are input through the terminal B at the same time when the pixel values of the fifth and sixth rows of the search area FD are input to the array processors PE11-PE15. When the input of the pixel values of the search area FD is finished, the operator 102 detects and outputs the MAE or MSE of the pixel values of the search memory 101 and the pixel values of the reference block REF area. will be.

이와 같이 각 어레이 프로세서(P11-P55)에서 검출된 MAE/MSE는 출력 콘트롤러(10)에 인가되며, 출력 콘트롤러(10)는 이 MAE/MSE들중 가장 작은 값을 출력한 어레이 프로세서(PE41-45들중 하나)에 할당된 움직임 벡터을 탐색 영역(FD)에 대한 기준 블록(REF)의 움직임 벡터로서 출력하는 것이다.In this way, the MAE / MSE detected by each array processor P11-P55 is applied to the output controller 10, and the output controller 10 outputs the smallest value among the MAE / MSE array processors PE41-45. And the motion vector assigned to one of the two components is output as the motion vector of the reference block REF for the search area FD.

여기서, 이전 프레임 데이터의 탐색 영역(FD1,FD2,...)들은 기준 블록(REF1,REF2,...)과 매칭을 위하여 프로세서 어레이(PE11~PEuv)들로 순차적으로 입력되어진다. 탐색 영역(FD1,FD2,...)는 프로세서 어레이(PE11~PEuv)로 순차적으로 입력되어지나, 기준 블록(REF1,REF2,...)은 각 프로세서 어레이(PE11~PEuv)에 병렬로 동시에 입력되어 해당 벡터에 해당하는 영역에서 기준 블록(REF1,REF2,...)과 비교하여 MSE 또는 MAE를 계산해낸다.Here, the search areas FD1, FD2, ... of the previous frame data are sequentially input to the processor arrays PE11 to PEuv to match the reference blocks REF1, REF2, .... The search areas FD1, FD2, ... are sequentially input to the processor arrays PE11 through PEuv, while the reference blocks REF1, REF2, ... are simultaneously connected in parallel to the respective processor arrays PE11 through PEuv. The MSE or MAE is calculated by comparing with the reference blocks (REF1, REF2, ...) in the area corresponding to the input vector.

즉, 도7과 같이 프로세서 어레이(PE11~PEuv)로 이전 프레임 데이터의 탐색 영역(FD1)이 입력되어지면서 기준 블럭(REF1)이 입력되어 움직임을 예측하게 되며, 기준 블록(REF1)가 입력되어지고 난 뒤, 소정 지연 시간(d)뒤에 해당 움직임 벡터(VEC1)와 MAE/MSE1를 구할 수 있다.That is, as shown in FIG. 7, the search area FD1 of the previous frame data is input to the processor arrays PE11 to PEuv, and the reference block REF1 is input to predict the movement, and the reference block REF1 is input. After that, the motion vector VEC1 and MAE / MSE1 can be obtained after a predetermined delay time d.

계속해서 다른 영역에서 다른 두 번째 기준 블록(REF1)에 대한 움직임 예측을 위하여 탐색 영역(FD2)과 기준 블록(REF2)를 입력시키고, 소정 시간(d)경과 뒤 벡터(VEC2)와 MAE/MSE2를 구할 수 있다.Subsequently, a search region FD2 and a reference block REF2 are inputted to predict motion of another second reference block REF1 in another region, and a vector VEC2 and MAE / MSE2 after a predetermined time d are inputted. You can get it.

그러나, 이와 같은 방법으로 움직임 벡터를 검출하는 종래의 방법은 상술한 바와 같이 기준 블록들에 대응하여 이전 프레임 데이터의 탐색 영역들을 프로세서 어레이(PE11~PEuv)에 각각 입력하여야 하므로 움직임 벡터를 검출하는데 많은 시간이 소요된다는 문제가 있었다.However, in the conventional method of detecting a motion vector in this manner, since the search areas of the previous frame data must be input to the processor arrays PE11 to PEuv respectively corresponding to the reference blocks as described above, there are many methods for detecting the motion vector. There was a problem that it took time.

본 발명은 이러한 문제를 해결하기 위한 것으로서, 본 발명의 목적은 프로세서 어레이를 이용하여 움직임 벡터의 검출시 기준 블록에 중복되지 않는 이전 프레임 데이터들을 프로세서 어레이에 순차적으로 입력하므로써 짧은 시간에 움직임 벡터를 검출할 수 있게 한 디지털 비데오 인코더 시스템에서 움직임 예측 방법을 제공하는데 있다. 본 발명에 따른 디지털 비데오 인코더 시스템에서 움직임 예측 방법은, 어레이 프로세서를 이용하여 이전 프레임의 탐색 영역에 대한 기준 영역의 움직임 벡터를 검출한 방법으로서, 이전 프레임에 대한 소정 탐색 영역의 픽셀값을 상기 어레이 프로세서에 입력하는 제1단계와; 어레이 프로세서에 상기 기준 영역에 대한 픽셀값을 입력하는 제2단계와; 탐색 영역에 대한 상기 기준 영역의 움직임 벡터를 검출하는 제3단계와; 이전 프레임에 새로운 탐색 영역을 설정하고, 상기 어레이 프로세서에 저장된 탐색 영역과 중복되지 않은 픽셀값만을 새로운 상기 어레이 프로세서에 입력하고, 상기 제3단계로 궤환하는 제4단계를 구비한다.SUMMARY OF THE INVENTION The present invention has been made to solve this problem, and an object of the present invention is to detect a motion vector in a short time by sequentially inputting previous frame data into a processor array that does not overlap the reference block when the motion vector is detected using the processor array. The present invention provides a motion prediction method in a digital video encoder system. A motion prediction method in a digital video encoder system according to the present invention is a method of detecting a motion vector of a reference region with respect to a search region of a previous frame by using an array processor, wherein the pixel values of a predetermined search region for a previous frame are obtained. A first step of inputting to a processor; Inputting a pixel value for the reference region into an array processor; Detecting a motion vector of the reference region with respect to the search region; And a fourth step of setting a new search area in a previous frame, inputting only pixel values not overlapping with the search area stored in the array processor to the new array processor, and returning to the third step.

제1도는 블록 정합 방식에 의한 운동 보상 방식을 도시한 도면.1 is a diagram illustrating a motion compensation method using a block matching method.

제2도는 움직임 벡터를 검출하기 위한 종래의 어레이 프로세서의 블록도.2 is a block diagram of a conventional array processor for detecting a motion vector.

제3도는 탐색 영역과 기준 블록의 일예를 도시한 도면.3 is a diagram illustrating an example of a search area and a reference block.

제4도는 탐색 영역에 대한 기준 블록의 움직임 벡터를 구하는 상태를 도시한 도면.4 is a diagram illustrating a state of obtaining a motion vector of a reference block with respect to a search area.

제5도는 종래 어레이 프로세서내에 탐색 영역 및 기준 블록의 데이터가 입력되는 상태를 도시한 블록도.5 is a block diagram showing a state in which data of a search area and a reference block are input into a conventional array processor.

제6도는 어레이 프로세서의 블록도.6 is a block diagram of an array processor.

제7도는 종래 움직임 벡터를 검출하기 위한 어레이 프로세서의 입출력도.7 is an input / output diagram of an array processor for detecting a conventional motion vector.

제8도는 본 발명에 따른 움직임 프로세서의 입출력도.8 is an input / output diagram of a motion processor according to the present invention.

제9도는 본 발명에 따른 어레이 프로세서내에 탐색 영역 및 기준 블록의 데이터가 입력되는 상태를 도시한 블록도.9 is a block diagram showing a state in which data of a search area and a reference block are input into an array processor according to the present invention.

제10도는 본 발명에 따른 어레이 프로세서에 인가되는 탐색 영역을 도시한 도면.10 illustrates a search region applied to an array processor in accordance with the present invention.

제11도는 본 발명에 따른 기준 블록과 탐색 영역과의 관계를 도시한 도면.11 is a diagram illustrating a relationship between a reference block and a search region according to the present invention.

제12도는 본 발명에 따라 탐색 영역의 데이터가 어레이 프로세서에 연속적으로 입력되는 상태를 도시한 도면.12 illustrates a state in which data in a search region is continuously input to an array processor according to the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

10 : 출력 콘트롤러 101 : 탐색 메모리10: output controller 101: search memory

102 : 연산기102: operator

이하, 본 발명의 일 실시예를 첨부된 도면을 따라 상세히 설명한다.Hereinafter, an embodiment of the present invention will be described in detail with the accompanying drawings.

본 발명자는 인접한 기준 블록인 경우 제7도와 같이 반복하지 않아도 움직임 벡터를 찾을 수 있는 효율적인 방법을 알아내었다. 즉, 탐색 영역이 서로 중복되어 있는 경우, 소정의 제1기준 블록에 대한 탐색 영역과 제2기준 블록에 대한 탐색 영역이 중복된 경우 중복되지 않은 영역의 데이터만을 입력시키고 제2기준 블록에 대한 움직임 벡터를 구할 수 있다. 이것을 제8도에 나타내었다.The inventors have found an efficient way to find a motion vector without having to repeat it as shown in FIG. 7 when it is an adjacent reference block. That is, when the search areas overlap each other, when the search area for the predetermined first reference block and the search area for the second reference block overlap, only the data of the non-overlapping area is input and the motion for the second reference block is duplicated. You can get a vector. This is shown in FIG.

도8에서 프로세서 어레이(PE11~PEuv)들은 이전 프레임 데이터의 탐색 영역( FD1) 및 기준 블록(REF1)을 각각 입력하여 해당 벡터에 해당하는 영역에서 기준 블록(REF1)과 비교하여 MSE 또는 MAE를 계산해낸다.In FIG. 8, the processor arrays PE11 to PEuv respectively input a search region FD1 and a reference block REF1 of previous frame data, and calculate MSE or MAE by comparing with the reference block REF1 in the region corresponding to the vector. Do it.

그리고, 출력 콘트롤러(10)는 소정 시간(d)후에 각 프로세서 어레이(PE11~PEuv)로부터 검출된 MAE 또는 MSE중 가장 작은 값이 가장 작은 MAE/MSE1 해당 움직임 벡터(VEC1)를 출력하게 된다.After a predetermined time d, the output controller 10 outputs the corresponding motion vector VEC1 having the smallest value of the smallest value of the MAE or MSE detected from each of the processor arrays PE11 to PEuv.

여기서, 탐색 영역(FD1)과 다음 입력되는 탐색 영역(FD2)의 픽셀이 대부분 동일하고 일부분이 상이한 경우에, 상이한 픽셀만을 프로세서 어레이(PE11~PEuv)내에서 대치하면 프로세서 어레이(PE11~PEuv)는 프레임 데이터(FD2)를 입력한 것과 동일하게 된다. 따라서, 프로세서 어레이(PE11~PEuv)들은 탐색 영역(FD1)의 처리후에 새로운 탐색 영역(FD2)의 데이터(D2)만을 입력하고, 탐색 영역에서 제외된 탐색 영역(FD1)의 데이터를 삭제하는 것이다.Here, when the pixels of the search area FD1 and the next input search area FD2 are mostly the same and partly different from each other, if only the different pixels are replaced in the processor arrays PE11 to PEuv, the processor arrays PE11 to PEuv are replaced. It becomes the same as that which inputs frame data FD2. Therefore, the processor arrays PE11 to PEuv input only the data D2 of the new search area FD2 after the processing of the search area FD1 and delete the data of the search area FD1 excluded from the search area.

마찬가지로 프로세서 어레이(PE11~PEuv)는 계속해서 기준 블록 3,4,5....에 대하여 반복할 수 있는데, 이것은 프로세서 어레이(PE11~PEuv)의 구조상 이전 프레임 데이터(FD2,FD3,...)로 입력된 데이터(D2,D3.,,,)가 새로운 프레임의 데이터가 입력되면서 이에 대응하는 데이터가 순차적으로 빠져 나가기 때문이다.Similarly, the processor arrays PE11 to PEuv can be repeated for the reference blocks 3, 4, and 5, ..., which are the previous frame data (FD2, FD3, ...) in the structure of the processor arrays PE11 to PEuv. This is because the data (D2, D3. ,,,) inputted as) is sequentially inputted as data of a new frame is inputted.

이를 구현하기 위하여 본원 발명자는 도9에 도시된 바와 같이 어레이 프로세서의 1개행(PE01-PE05)을 더 구성하였다.In order to implement this, the inventor further configured one row (PE01-PE05) of the array processor as shown in FIG.

그리고, 이 어레이 프로세서(PE00-PE55)에 도10의 탐색 영역(FD)의 픽셀값을 초기 입력할 때에는 도시된 바와 같이 탐색 영역(FD1)의 1,2,3,4,5,6행의 픽셀값을 입력하고(즉 1,2,3,4,5,6행의 픽셀들이 초기 탐색 영역을 형성하게 된다.),이 탐색 영역(FD1)에 대한 기준 블록(REF1)의 움직임 벡터를 검출하게 된다.When the pixel values of the search area FD shown in FIG. 10 are initially input to the array processors PE00-PE55, the first, second, third, fourth, fifth and sixth rows of the search area FD1 are shown as shown. Input a pixel value (i.e., 1, 2, 3, 4, 5, 6 rows of pixels form an initial search region) and detect the motion vector of the reference block REF1 for this search region FD1. Done.

그리고, 초기 입력에 의한 1,2,3,4,5,6행에 대한 기준 블록(REF1)의 움직임 벡터의 검출이 종료하면, 제2기준 블록 (REF2)에 대한 새로운 제2탐색 영역(FD2)을 설정하여야 하며, 3,4,5,6,7,8행이 새로운 탐색 영역임(FD2)을 알 수 있다. 이때, 3,4,5행의 픽셀 데이터들은 초기 탐색 영역(FD1)과 중복되어지며, 따라서, 어레이 프로세서(PE31-PE35,PE21-PE25,PE11-PE15)내의 픽셀값은 변경이 필요하지 않음을 알 수 있다. 즉, 어레이 프로세서(PE01-PE05,PE51-PE55,PE41-PE55)에 제2탐색 영역(FD2)에 대한 픽셀값만을 새로이 입력하면 제2기준 블록(REF2)에 대한 2탐색 영역(FD2)내의 움직임 벡터를 구할 수 있는 것이다. 이와 동일한 방법으로 제 3,4... 기준 블록(REF3,REF4,...)의 제3,4... 탐색 영역(FD3,FD4,...)에 대한 움직임 벡터를 구할수 있는 것이다. 도9에는 탐색 영역을 새로이 설정하여 움직임 벡터를 검출하기 위해 어레이 프로세서(PE01-PE55)에 인가되는 픽셀의 행들이 순차적으로 도시되어 있다.When the detection of the motion vector of the reference block REF1 for the first, second, third, fourth, fifth, and sixth rows by the initial input ends, the new second search area FD2 for the second reference block REF2 is completed. ), And it can be seen that rows 3, 4, 5, 6, 7, and 8 are new search areas (FD2). At this time, the pixel data of 3, 4, 5 rows overlaps the initial search region FD1, and thus, the pixel values in the array processors PE31-PE35, PE21-PE25, PE11-PE15 do not need to be changed. Able to know. That is, when a new pixel value for the second search area FD2 is newly input to the array processors PE01-PE05, PE51-PE55, PE41-PE55, the motion in the second search area FD2 with respect to the second reference block REF2 is newly input. You can get a vector. In the same way, the motion vector of the third, fourth, search regions FD3, FD4, ... of the third, fourth, reference blocks REF3, REF4, ... can be obtained. . 9 sequentially shows rows of pixels applied to the array processors PE01-PE55 to newly set the search area to detect the motion vector.

도11도에 탐색 영역과 기준 블록의 관계를 나타내었다. 도11에서 a는 화면(P)내에서 도5b에 도시된 기준 블록(REF)중 하나에 대한 탐색 영역(S)을 표시한 것이다. 이 탐색 영역(S)은 세로 M×m이고 가로 N×n인 블록이다. 각 프로세서 어레이(PE11~PEuv)는 해당 벡터에 대한 탐색 영역(S)을 저장하고 있다가 기준 블록(REF)과 매칭하여 MAE/MSE를 구한다. 이때, 비교되는 영역은 도11c에서 빗금친 부분으로 나타낸 부분과 같다.11 illustrates a relationship between a search area and a reference block. In FIG. 11, a shows a search area S for one of the reference blocks REF shown in FIG. 5B in the screen P. FIG. This search area S is a block that is vertical M × m and horizontal N × n. Each processor array PE11 to PEuv stores a search area S for the corresponding vector and then matches the reference block REF to obtain a MAE / MSE. At this time, the area to be compared is the same as the part indicated by hatched in Fig. 11C.

도11d는 탐색 영역(S)이 프로세서 어레이(PE11~PEuv)로 입력되어질 때 입력되어지는 데이터의 순서를 예로써 나타내었다.FIG. 11D shows, as an example, the order of data to be input when the search area S is input to the processor arrays PE11 to PEuv.

프로세서 어레이(PE11~PEuv)가 모든 탐색 영역(S)의 데이터를 받아들여 한번에 MAE/MSE를 모든 벡터에 대하여 구할 수는 없다.The processor arrays PE11 to PEuv cannot receive data of all the search areas S, and cannot obtain MAE / MSE for all vectors at once.

왜냐하면 탐색 영역(S)이 넓은 경우 프로세서 어레이(PE11~PEuv)가 움직임 벡터의 개수만큼 존재하여야 하므로 탐색 영역이 넓은 겨우 불가능하게 된다. 그러므로 탐색은 여러번 나누어서 이루어져야 하는데 전체 영역을 α로 나누어서 탐색하는 예를 나타내었다. 첫 번째 (M×m)×(N×m/ )에 대하여 매칭을 실시하고 두 번째 (M×m)×(N×n/α)에 대하여 실시한다. 이렇게 비교하여 α개의 탐색 영역 부분에 대하여 수행한 뒤 가장 작은 MAE/MSE를 갖는 움직임 벡터를 구하게 된다.Because the search area S is large, since the processor arrays PE11 to PEuv must exist as many as the number of motion vectors, the search area is not easily wide. Therefore, the search must be divided into several times, and the whole area is divided by α to show an example. Matching is performed for the first (M × m) × (N × m /) and for the second (M × m) × (N × n / α). This comparison is performed on the α search region parts to obtain a motion vector having the smallest MAE / MSE.

그러나, 탐색 영역이 작아서 움직임 벡터의 개수가 작은 경우, 탐색 영역에 대하여 한 번에 움직임 벡터를 프로세서 어레이(PE11~PEuv)를 이용하여 구할 수 있다. 그리고, 인접한 기준 블록에 대하여 탐색을 계속해서 수행하는 경우 도12와 같이 새로운 탐색 영역 (M×m)×n만큼의 블록이 빠져나가고 빠져 나간 만큼에 (M×m)×n만큼의 새로운 블록(n1)이 프로세서 어레이(PE11~PEuv)에 입력되어지므로 계속해서 인접한 기준 블록에 대해서 탐색이 가능해진다.However, when the number of motion vectors is small because the search area is small, the motion vectors may be obtained at one time using the processor arrays PE11 to PEuv. In the case where the search is continuously performed with respect to the adjacent reference block, as shown in FIG. 12, as many blocks as the new search area (M × m) × n escapes and exit, new blocks as much as (M × m) × n ( Since n1) is input to the processor arrays PE11 to PEuv, the search can be continued for adjacent reference blocks.

즉, 본 발명에서는 상술하였듯이 프로세서 어레이(PE11~PEuv)가 탐색 영역 전체에 대하여 한번에 MAE/MSE를 계산할 수 없는 경우, 프로세서 어레이(PE11~PEuv)가 계산할 수 있는 탐색 영역만큼을 나누어서 계산할 수 있다.That is, in the present invention, as described above, when the processor arrays PE11 to PEuv cannot calculate the MAE / MSE for the entire search area at once, the processor arrays PE11 to PEuv can be divided by the search areas that can be calculated by the processor arrays PE11 to PEuv.

이렇게 한 슬라이스(slice)에 대하여 움직임 벡터을 예측한 경우 프로세서 어레이(PE11~PEuv)로 입력되어지는 탐색 영역의 데이터량은 다음과 같다.When a motion vector is predicted for one slice as described above, the data amount of the search area input to the processor arrays PE11 to PEuv is as follows.

1개의 기준 블록(REF)에 대하여 움직임 벡터를 추정하기 위한 탐색 영역 입력 데이터량=(M×m)×(N×n)Search area input data amount for estimating a motion vector with respect to one reference block REF = (M × m) × (N × n)

K개의 기준 블록 (REF)에 대한 탐색 영역 입력 데이터량=K×(M×m)×(N×n)Search area input data amount for K reference blocks REF = K × (M × m) × (N × n)

프로세서 어레이(PE11~PEuv)의 제한에 의하여 탐색 영역(S) 전체에 대하여 한번에 움직임 벡터를 찾지 못하고 일부 블록에 대해서만 움직임을 예측한 경우 11d도에서와 같이 인접 기준 블록에 대해서도 이전 탐색 영역에 인접한 (M×m)×n블록을 계속해서 프로세서 어레이(PE11~PEuv)에 입력시키므로써 연속해서 인접한 일부 탐색 영역의 블록에 대해서만 연속적으로 움직임 벡터를 추정할 수 있다.When the motion vector is not found at once for the entire search area S due to the limitation of the processor arrays PE11 to PEuv, and the motion is predicted for only some blocks, the adjacent search block is adjacent to the previous search area as shown in FIG. By continuously inputting M × m) × n blocks into the processor arrays PE11 to PEuv, the motion vector can be estimated continuously only for blocks of some consecutively searched adjacent search areas.

도11d의 1번 블록으로부터 시작해서 인접 블록 (M×m)×n블럭을 사용해서 연속적으로 인접한 기준 블록에 대하여 움직임을 추정한 경우 다시 2번 블록으로 출발해서 인접한 기준 블록에 대하여 움직임 추정을 실시하고 α번째 블록에 대해서까지 반복한다.In the case where motion is estimated with respect to successive adjacent reference blocks using the adjacent block (M × m) × n blocks starting from block 1 in FIG. 11D, starting with block 2 again, motion estimation is performed with respect to the adjacent reference block. And repeat for the α-th block.

α번 반복하는 동안 해당 탐색 영역에 대하여 움직임 벡터와 MAE/MSE를 α개 구할 수 있다. α개 구한 까닭은 탐색 영역을 α등분 하였기 때문이다.During iteration α times, α motion vectors and MAE / MSEs can be obtained for the corresponding search region. The reason for obtaining α is because the search area is divided into α.

구해진 α개의 MAE/MSE, 움직임 벡터에 대하여 가장 작은 MAE/MSE에 대한 움직임 벡터가 해당 기준 블록의 최종적인 움직임 벡터가 된다.The obtained motion vectors for the smallest MAE / MSEs and the motion vectors for the smallest MAE / MSEs are the final motion vectors of the corresponding reference block.

이때 소요된 계산량을 살펴보면 다음과 같다.The calculation amount required here is as follows.

기준 블록(REF1)에 대하여 탐색 영역(FD1)을 프로세서 어레이에 입력시킨 데이터량=(M×m)×(N×n/a)Data amount into which the search area FD1 is input to the processor array with respect to the reference block REF1 = (M x m) x (N x n / a)

이후의 순차적인 블록(REF2, ...)를 위한 입력 데이터량=(M×m)×nInput data amount for subsequent sequential blocks (REF2, ...) = (M × m) × n

서브 블록 탐색을 위하여 한 슬라이스 내의 K개 기준 블록에 대하여 프로세서 어레이에 입력된 데이터량=(M×m)×((K-1)×n×N×a/a)Amount of data input to the processor array for K reference blocks in one slice for sub-block searching = (M × m) × ((K−1) × n × N × a / a)

α반복하여 최동 움직임 벡터를 구하기 위하여 프로세서 어레이에 입력된 데이터량 The amount of data input to the processor array to repeat α to obtain the most motion vector.

2가지 움직임 벡터 방법에서는 나타난 입력 데이터량을 살펴보면 전체 탐색 영역에 대하여 각 기준 블록에 대한 움직임을 찾은 뒤 K개의 기준 블록에 대하여 계속해서 찾기 위하여 읽어들인 탐색 영역의 입력 데이터량=AIn the two motion vector methods, the amount of input data shown is the input data amount of the search area read in order to find the motion for each reference block for the entire search area and then continue to search for the K reference blocks.

서브 탐색 영역 블록에 대하여만 먼저 움직임을 추정하고 (M×m)×n의인접 영역의 블록을 계속해서 프로세서 어레이로 읽어들여서 K개의 인접 기준 블록에 대하여 움직임을 추정한 뒤, 나누어진 탐색 영역의 수만큼 차례로 반복하여 최종의 움직임 벡터를 추정하기 위하여 입력된 탐색 영역의 데이터=B라고 하면,First, the motion is estimated only for the sub-search area block, and the block of the neighboring area of (M × m) × n is continuously read into the processor array to estimate the motion for K adjacent reference blocks, and then In order to estimate the final motion vector by repeating the sequence, the data of the input search area = B,

이다. to be.

K는 보통 N보다 10배이상 큰수이고, α는 1이상의 정수이므로 전체적으로 N/α만큼 빠르게 움직임을 예측할 수 있는 방법이 된다.Since K is usually 10 times larger than N, and α is an integer of 1 or more, it is a method of predicting movement as fast as N / α as a whole.

즉, 본 발명은 프로세서 어레이를 이용하여 움직임 벡터의 검출시 기준 블록에 중복되지 않는 이전 프레임 데이터들을 프로세서 어레이에 순차적으로 입력하므로써 짧은 시간에 움직임 벡터를 검출할 수 있다는 효과가 있으며, 하드웨어의 복잡성과 처리 속도 사이의 최적점을 찾을 수 있다. 즉, 탐색영역의 크기가 프로세서 어레이(PE11-PEuv)로 충분히 처리할 수 있는 크기라면 α는 1이 되고, 이때 속도의 이득은 N배가 되고, 탐색 영역의 크기가 프로세서 어레이(PE11-PEuv)로 처리할 수 없을 경우, α배 만큼 하드웨어를 간단히 하며, N/a만큼 처리 속도 이득을 얻는다.That is, the present invention has an effect that the motion vector can be detected in a short time by sequentially inputting the previous frame data not overlapped with the reference block when the motion vector is detected using the processor array, and the complexity of the hardware Find the optimal point between processing speeds. That is, if the size of the search area is large enough to be processed by the processor array PE11-PEuv, α is 1, and the gain of the speed is N times, and the size of the search area is the processor array PE11-PEuv. If not, the hardware is simplified by α times and the processing speed gain is obtained by N / a.

Claims (1)

어레이 프로세서를 이용하여 이전 프레임의 탐색 영역에 대한 기준 영역의 움직임 벡터를 검출한 방법으로서, 이전 프레임에 대한 소정 탐색 영역의 픽셀값을 상기 어레이 프로세서에 입력하는 제1단계와; 상기 어레이 프로세서에 상기 기준 영역에 대한 픽셀값을 입력하는 제2단계와; 상기 탐색 영역에 대한 상기 기준 영역의 움직임 벡터를 검출하는 제3단계와; 상기 이전 프레임에 새로운 탐색 영역을 설정하고, 상기 어레이 프로세서에 저장된 탐색 영역과 중복되지 않은 픽셀값만을 새로운 상기 어레이 프로세서에 입력하고, 상기 제3단계로 궤환하는 제4단계를 구비하는 디지털 비데오 인코더 시스템에서 움직임 예측 방법.A method of detecting a motion vector of a reference region for a search region of a previous frame by using an array processor, comprising: a first step of inputting a pixel value of a predetermined search region for a previous frame to the array processor; Inputting a pixel value for the reference area into the array processor; Detecting a motion vector of the reference region with respect to the search region; And a fourth step of setting a new search area in the previous frame, inputting only pixel values not overlapping with the search area stored in the array processor to the new array processor, and returning to the third step. Motion prediction method
KR1019960039567A 1996-09-12 1996-09-12 Motion estimation method in digital video encoder KR100205146B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960039567A KR100205146B1 (en) 1996-09-12 1996-09-12 Motion estimation method in digital video encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960039567A KR100205146B1 (en) 1996-09-12 1996-09-12 Motion estimation method in digital video encoder

Publications (2)

Publication Number Publication Date
KR19980020898A KR19980020898A (en) 1998-06-25
KR100205146B1 true KR100205146B1 (en) 1999-07-01

Family

ID=19473541

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960039567A KR100205146B1 (en) 1996-09-12 1996-09-12 Motion estimation method in digital video encoder

Country Status (1)

Country Link
KR (1) KR100205146B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1297134C (en) * 2001-07-09 2007-01-24 三星电子株式会社 Moving estimating device and method for reference macro block window in scanning search area
KR101374851B1 (en) * 2006-01-10 2014-03-14 톰슨 라이센싱 Methods and apparatus for parallel implementations of 4:4:4 coding

Also Published As

Publication number Publication date
KR19980020898A (en) 1998-06-25

Similar Documents

Publication Publication Date Title
KR100534207B1 (en) Device and method for motion estimating of video coder
US8130835B2 (en) Method and apparatus for generating motion vector in hierarchical motion estimation
US5838828A (en) Method and apparatus for motion estimation in a video signal
JP3247105B2 (en) Method and apparatus for estimating motion in a moving image frame
EP1262073B1 (en) Methods and apparatus for motion estimation using neighboring macroblocks
KR100482898B1 (en) Method, device, and video display device including the device for estimating motion vectors
US6483876B1 (en) Methods and apparatus for reduction of prediction modes in motion estimation
US8218635B2 (en) Systolic-array based systems and methods for performing block matching in motion compensation
EP0395293B1 (en) Motion estimator
JP3089165B2 (en) Motion vector search device
US6690728B1 (en) Methods and apparatus for motion estimation in compressed domain
US8135224B2 (en) Generating image data
KR100984953B1 (en) Image data retrieval
EP3104612B1 (en) Complementary vectors
KR100205146B1 (en) Motion estimation method in digital video encoder
JP2672468B2 (en) Motion detection circuit using spatial information and method thereof
EP1420595B1 (en) Motion vector selection in a video motion estimator based on a preferred reference point
US6968011B2 (en) Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices
KR100208984B1 (en) Moving vector estimator using contour of object
KR100926440B1 (en) Block matching motion estimation apparatus for picture coding
KR0180162B1 (en) Apparatus and method for processing a motion vector
KR970003099B1 (en) Motion vector estimating apparatus considering covered/uncovered region
JP2931783B2 (en) Motion vector search device
JP4274430B2 (en) Motion vector detection device
IE901502A1 (en) Motion estimator

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: 20060327

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee