KR100195734B1 - A motion estimator being extended search windows - Google Patents
A motion estimator being extended search windows Download PDFInfo
- Publication number
- KR100195734B1 KR100195734B1 KR1019960007972A KR19960007972A KR100195734B1 KR 100195734 B1 KR100195734 B1 KR 100195734B1 KR 1019960007972 A KR1019960007972 A KR 1019960007972A KR 19960007972 A KR19960007972 A KR 19960007972A KR 100195734 B1 KR100195734 B1 KR 100195734B1
- Authority
- KR
- South Korea
- Prior art keywords
- motion
- search window
- motion estimation
- absolute error
- error value
- 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/57—Motion estimation characterised by a search window with variable size or shape
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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 block, e.g. a macroblock
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 움직임 추정장치에 관한 것으로 움직임 추정칩을 복수개 사용하여 현재 프레임의 매크로블럭과 이전 프레임의 확장된 서치 윈도우 데이타를 입력받아 순방향 움직임 추정하는 순방향 움직임 추정부(10); 움직임 추정칩을 복수개 사용하여 현재 프레임의 매크로블럭과 이후 프레임의 확장된 서치 윈도우 데이타를 입력받아 역방향 움직인 추정하는 역방향 움직임 추정부(20); 각 매크로블럭에 대한 순방향 움직임 벡터 및 그 절대에러값과 역방향 움직임 벡터 및 그 절대에러값을 저장하기 위한 메모리(40); 상기 순방향 움직임 추정부와 역방향 움직임 추정부로부터 움직임 벡터와 절대에러값을 입력받고, 상기 메모리에 저장된 움직임 벡터와 절대에러값을 입력받아 이들을 각각 비교하여 최소에러값을 갖는 순방향 벡터 및 역방향 벡터를 산출하는 비교 및 선택 수단(30)으로 구성되어 적은 메모리와 비교적 간단한 회로로 서치 윈도우를 확정할 수 있는 효과가 있다.The present invention relates to a motion estimating apparatus, comprising: a forward motion estimating unit (10) for receiving a macroblock of a current frame and extended search window data of a previous frame by using a plurality of motion estimation chips; A backward motion estimator 20 which receives a macroblock of a current frame and extended search window data of a subsequent frame by using a plurality of motion estimation chips and performs backward motion estimation; A memory 40 for storing the forward motion vector and its absolute error value and the reverse motion vector and its absolute error value for each macroblock; The motion vector and the absolute error value are input from the forward motion estimation unit and the backward motion estimation unit, and the motion vectors and the absolute error values stored in the memory are received and compared with each other to calculate a forward vector and a reverse vector having a minimum error value. The comparison and selection means 30 are effective in determining the search window with a small memory and a relatively simple circuit.
Description
제1도는 본 발명에 따른 움직임 추정장치를 도시한 블럭도.1 is a block diagram showing a motion estimation apparatus according to the present invention.
제2도는 (a) 내지 (c는 본 발명에 따른 서치 윈도우 확장을 설명하기 위하여 도시한 도면.2 is a diagram illustrating (a) to (c) for explaining a search window extension according to the present invention;
제3도는 제1도에 도시된 비교 및 선택부가 처리하는 동작흐름을 도시한 흐름도이다.FIG. 3 is a flowchart showing an operation flow processed by the comparison and selection unit shown in FIG.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
10 : 순방향 움직임 추정부 20 : 역방향 움직임 주정부10: forward motion estimation unit 20: reverse motion state
30 : 비교 및 선택부 12, 14, 22, 24 : 움직임 추정칩30: comparison and selection unit 12, 14, 22, 24: motion estimation chip
40 : 메모리(SRAM)40: Memory (SRAM)
본 발명은 영상신호의 움직임 추정장치(Motion Estimator)에 관한 것으로, 특히 소정의 서치 윈도우(Search Window)를 갖는 움직임 추정장치를 복수개 연결하므로서 서치 윈도우를 확장할 수 있는 움직임 추정장치에 관한 것이다.The present invention relates to a motion estimator of a video signal, and more particularly, to a motion estimator capable of expanding a search window by connecting a plurality of motion estimators having a predetermined search window.
일반적으로, 영상신호 처리기술에서 '움직임 추정(motion estimation)'이란 연속적인 영상신호에서 현재 프레임(current frame)의 화소(pixel)들이 이전 프레임(previous frame)에 비해 어느 정도 움직였는지를 벡터로 표시한 움직임 벡터(motion vector)를 추정하여, 전체 영상을 전송하는 대신에, 이들 움직임 벡터를 전송함으로써 전송정보를 줄이는 기술(즉, 영상압축)을 말하는 것이다.In general, 'motion estimation' in a video signal processing technique indicates, in vector, how much the pixels of a current frame move compared to a previous frame in a continuous video signal. Instead of estimating a motion vector and transmitting the entire image, a technique of reducing transmission information by transmitting these motion vectors (ie, image compression) is described.
이러한 움직임 추정에서 널리 사용되는 블럭 정합 알고리즘(BMA : Block Matching Algorithm)은 화면의 움직임이 수평 또는 수직으로 평행 이동한 것으로 가정하여, 움직임이일어난 프레임(즉, 현재 프레임)의 블럭영상이 움직임이 일어나기전 프레임(즉, 이전 프레임)의 어느 위치에 있는 블럭영상과 가장 일치하는가를 추정하여 그 위치를 움직임 벡터로서 추정하는 방법이다. 이때, 블럭의 크기로는 8x8, 16x16(가로 픽셀 수x세로 픽셀 수)을 주로 사용한다.The Block Matching Algorithm (BMA), which is widely used in such motion estimation, assumes that the screen motion is moved horizontally or vertically in parallel, so that the block image of the frame where the motion occurs (that is, the current frame) may be moved. It is a method of estimating which position of the previous frame (that is, the previous frame) is the best match and estimating the position as a motion vector. In this case, 8x8, 16x16 (the number of pixels by the number of pixels by the number of pixels) are mainly used as the size of the block.
여기서, 현재 프레임의 레퍼런스 블럭(reference block)과 가장 유사한 이전 블럭을 찾기 위하여 이전 프레임에서 레퍼런스 블럭의 위치를 중심으로 일정 범위 안을 찾게 되는데, 이러한 범위를 서치 윈도우(search window)라 하고, 이러한 서시 윈도우안에서 각 후보블럭(candidate block)과의 차를 디스토션(distortion; 또는 절대에러(AE)라고도 한다)이라 하며, 두 블럭간의 유사정도를 나타낸다.Here, in order to find the previous block that is most similar to the reference block of the current frame, the search is performed within a predetermined range around the position of the reference block in the previous frame. Such a range is called a search window. The difference between each candidate block is called a distortion (also called an absolute error (AE)), and indicates the degree of similarity between two blocks.
또한, 서치 윈도우안의 모든 후보블럭과 레퍼런스 블럭을 비교하는 것을 풀 서치 블럭매칭(full search block matching algorithm)이라 하며, 수식적으로 가장 일치하는 블럭을 찾기 위하여 연속된 두 프레임의 영상중에서, 이전 프레임을 f1(x,y), 현재 프레임을 f2(x,y)라 했을 때, f2(x,y),와 f1(x-a, y-b)에서 a,b를 변화시켜 가면서 f1(x-a, y-b)와 f2(x,y)의 차를 구하여, 그 차가 최소가 되는 (a,b)를 움직일 벡터로 예측한다.In addition, comparing all candidate blocks and reference blocks in the search window is called a full search block matching algorithm. f 1 (x, y), when d f 2 (x, y) of the current frame, f 2 (x, y) , and f 1 in the (xa, yb) going to change the a, b f 1 (xa Find the difference between yb) and f 2 (x, y), and predict the (a, b) at which the difference is the minimum as a vector to move.
이와 같잉 블럭간의 최소오차를 구하는 방법을 평균절대오차(MAE:Mean Absolute Error) 방법이라 하며, 평균절대오차는 다음 식1으로 구해진다.The minimum error between the blocks is called a mean absolute error (MAE) method, and the average absolute error is obtained by the following equation.
상기 식1에서 Eabs는 평균절대오차값이고, B는 블럭 크기를 뜻하며, 따라서 상기 Eabs를 최소로하는 (a,b)를 구하면 이것이 움직임 벡터가 된다.In Equation 1, E abs is the average absolute error value, B is the block size, so if (a, b) is obtained to minimize the E abs is a motion vector.
한편, 상기와 같은 움직임 추정을 수행하기 위한 장치는 단일칩으로 구현되어 시중에서도 구할 수 있는데, 이러한 상용칩들은 대부분 좁은 범위의 서치 윈도우 밖에 제공하지 못하기 때문에 서치 윈도우를 확장하기 위해서는 소정의 서치 윈도우를 갖는 움직임 추정칩을 복수개 사용해야 한다.On the other hand, the device for performing the motion estimation as described above is implemented in a single chip can be obtained on the market. Since most of these commercial chips provide only a narrow range of search window, a predetermined search window is required to expand the search window. A plurality of motion estimation chips with
이와 같이 복수개의 움직임 추정칩을 사용할 경우에는 각 움직임 추정칩마다 발생되는 움직임 벡터(MV)와 절대 에러값(AE)을 각각 저장해 놓고 이를 동시에 비교하여 가장 작은 절대에러값(AE)을 갖는 움직임 벡터를 찾아야 하고, 각 움직임 추청칩들은 서브 윈도우(sub window)를 구성하고 있으므로 서브 윈도우의 위치에 따라 적절히 스케일링(scaling)되어야 한다.In the case of using a plurality of motion estimation chips as described above, a motion vector (MV) and an absolute error value (AE) generated for each motion estimation chip are stored, respectively, and compared at the same time to have a motion vector having the smallest absolute error value (AE). Since each motion tracking chip constitutes a sub window, it should be properly scaled according to the position of the sub window.
그런데 이와 같이 복수개의 움직임 추정칩을 사용하여 확장된 서치 윈도우를 구성할 경우에 절대에러치(AE)를 비교하여 선택하는 로직의 버퍼용량이 커야 하고, 이를 위해 별도의 메모리가 요구됨과 아울러 요구되는 연산이 증가하여 회로가 복잡해지는 문제점이 있다. 특히 수직 및 수평 방향으로 서치 윈도우가 넓어짐에 따라 요구되는 움직임 추정칩 수는 훨씬 많아지므로 더욱 복잡해진다. 따라서 가능한한 적은 수의 움직임 추정칩을 사용하여 서치 윈도우를 확장하는 것이 바람직하다.However, when configuring an extended search window using a plurality of motion estimation chips as described above, the buffer capacity of the logic to select and compare absolute error (AE) must be large, and a separate memory is required for this purpose. There is a problem that the circuitry becomes complicated due to the increase in the operation. In particular, as the search window widens in the vertical and horizontal directions, the number of motion estimation chips required becomes much more complicated. Therefore, it is desirable to extend the search window using as few motion estimation chips as possible.
이에 본 발명은 수직방향으로 복수개의 움직임 추정칩을 사용하고, 수평방향으로는 시분할에 의한 반복처리에 의해 적은 메모리의 적은 연산으로 처리할 수 있도록 된 서치 윈도우가 확장된 움직임 추정장치를 제공하는데 그 목적이 있다.Accordingly, the present invention provides a motion estimation apparatus in which a search window is expanded so that a plurality of motion estimation chips can be used in the vertical direction and can be processed in a small operation of less memory by repetitive processing by time division in the horizontal direction. There is a purpose.
상기와 같은 목적을 달성하기 위하여 본 발명의 장치는, 소정의 서치 윈도우를 갖는 움직임 추정칩을 복수개 사용하여 서치 윈도우를 확장하기 위한 움직임 추정장치에 있어서, 상기 우직임 추정칩을 복수개 사용하여 현재 프레임의 매크로블럭과 이전 프레임의 확장된 서치 윈도우 데이타를 입력받아 순방향 움직임 추정하는 순방향 움직임 추정수단; 상기 움직임 추정칩을 복수개 사용하여 현재 프레임의 매크로블럭과 이후 프레임의 확장된 서치 윈도우 데이타를 입력받아 역방향 움직임 추정하는 역방향 움직임 추정수단; 각 매크로블럭에 대한 순방향 움직임 벡터 및 그 절대에러값과 역방향 움직임 벡터 및 그 절대에러값을 저장하기 위한 메모리; 및 상기 순방향 움직임 추정수단과 역방향 움직임 추정수단으로부터 움직임 벡터와 절대에러값을 입력받고, 상기 메모리에 저장된 움직임 벡터와 절대에러값을 입력받아 이들을 각각 비교하여 최소 절대에러값을 갖는 순방향 움직임 벡터 및 역방향 움직임 벡터를 산출하는 비교 및 선택수단으로 구성되는 것을 특징으로 한다.In order to achieve the above object, the apparatus of the present invention is a motion estimation apparatus for extending a search window by using a plurality of motion estimation chips having a predetermined search window, wherein the current frame is provided using a plurality of the right-sided estimation chips. Forward motion estimation means for receiving forward motion macro data and expanded search window data of a previous frame; Reverse motion estimation means for receiving a macroblock of a current frame and extended search window data of a subsequent frame by using the plurality of motion estimation chips and performing backward motion estimation; A memory for storing the forward motion vector and its absolute error value and the backward motion vector and its absolute error value for each macroblock; And a forward motion vector and an absolute error value from the forward motion estimation means and the backward motion estimation means, and receive the motion vectors and the absolute error values stored in the memory, and compare them, respectively. And means for comparing and selecting means for calculating a motion vector.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 발명에 따라 멀티 칩(Multi chip)을 이용하여 서치 윈도우를 확장한 움직임 추정장치는 제1도에 도시된 바와 같이, 순방향 움직임 추정부(10), 역방향 움직임 추정부(20), 비교 및 선택부(30), 및 메모리(40)로 구성되고, 순방향 움직임 추정부(10)는 소정의 서치 윈도우를 갖는 2개의 움직임 추정칩(ME1,2; 12,14)으로 구현되어 수직방향으로 서치 윈도우가 확장되어 있고, 역방향 움직임 추정부(20)도 소정의 서치 윈도우를 갖는 2개의 움직임 추정칩(ME1,2: 22,24)으로 구현되어 수직방향으로 서치 윈도우가 확장되어 있으며, 메모리(40)는 바람직하게는 SRAM으로 구현되어 있다.According to the present invention, a motion estimator that extends a search window by using a multi chip, as illustrated in FIG. 1, has a forward motion estimator 10 and a backward motion estimator 20. The forward motion estimator 10 is composed of a unit 30 and a memory 40, and the forward motion estimator 10 is implemented by two motion estimation chips ME1, 2; 12, 14 having a predetermined search window. Is extended, the backward motion estimator 20 is also implemented by two motion estimation chips ME1,2: 22,24 having a predetermined search window, and the search window is extended in the vertical direction, and the memory 40 Is preferably implemented in SRAM.
여기서, 순방향 및 역방향 움직임 추정부를 구현하는 제1 내지 제4 움직임 추정칩(12, 14, 22, 24)은 제2도의 (a)에 도시된 바와 같이, 16x16 매크로 블럭에 대하여 제2도의 (b)에 도시된 바와 같이 -8/+7의 서치 윈도우를 제공할 수 있다. 따라서 순방향 및 역방향 움직임 추정부는 제2도의 (b)에 도시된 바와 같은 서치 윈도우를 갖는 2개의 움직임 추정칩을 사용하므로서, 제2도의 (c)에 도시된 바와 같이 수직방향으로 -16/+15의 서치 윈도우를 갖도록 확장된다. 이때 수평방향으로의 서치 윈도우를 확장하기 위해서는 시분할 방법을 사용할 수 있으며, 본 발명의 실시예에서는 한 슬라이스에 대하여 한 블럭씩 시프트하면서 4번 반복하여 움직임 추정함하므로서 서치 윈도우를 수평방향으로 -32/+31까지 확장한다.Here, the first to fourth motion estimation chips 12, 14, 22, and 24 implementing the forward and reverse motion estimation units are shown in (b) of FIG. 2 with respect to the 16x16 macroblock as shown in (a) of FIG. As shown in Fig. 1, a search window of -8 / + 7 may be provided. Therefore, the forward and backward motion estimator uses two motion estimation chips having a search window as shown in (b) of FIG. 2, and thus -16 / + 15 in the vertical direction as shown in (c) of FIG. It is extended to have a search window of. In this case, a time division method may be used to extend the search window in the horizontal direction, and in the embodiment of the present invention, the search window is repeatedly measured four times while shifting by one block for one slice. Expands to +31
본 발명의 실시예에서는 움직임 추정칩이 16x16 매크로블럭에 대하여 -8/+7의 서치 윈도우를 제공하는 경우를 예로 들어 설명하였으나, 본 발명의 기술적 사상은 이러한 실시에에 한정되지 않고 임의의 서치 윈도우에 대해서도 적용될 수 있다. 예컨대, 움직임 추정칩이 -16/+15의 서치 윈도우를 제공한다면 본 발명의 실시에에서와 같이 칩 2개를 사용하면 수직방향으로 -32/+31의 서치 윈도우를 제공할 수 있다.In the embodiment of the present invention, a case in which the motion estimation chip provides a search window of -8 / + 7 for a 16x16 macroblock has been described as an example. However, the technical idea of the present invention is not limited to this embodiment. Applicable for For example, if the motion estimation chip provides a search window of -16 / + 15, using two chips as in the embodiment of the present invention can provide a search window of -32 / + 31 in the vertical direction.
제1도를 참조하면, 순방향 움직임 추정부의 제1 움직임 추정칩(12)은 도시되지 않은 현대 프레임 버퍼로부터 움직임 추정할 매크로 블럭(MB)을 입력받고, 도시되지 않은 이전 프레임 버퍼로부터 서치 윈도우(SW1-U)를 입력받아 서치 윈도우상의 후보블럭과 매크로블럭을 비교하여 절대에러가 최소인 움직임벡터와 그 절대에러값(fwd-mv-U)을 출력하고, 순방향 움직임 추정부의 제2 움직임 추정칩(14)은 도시되지 않은 현재 프레임 버퍼로부터 움직임 추정할 매크로 블럭(MB)을 입력받고, 도시되지 않은 이전 프레임 버퍼로부터 서치 윈도우(SW1-D)를 입력받아 서치 윈도우상의 후보블럭과 매크로블럭을 비교하여 절대에러가 최소인 움직임벡터와 그 절대에러값(fwd-mv-D)을 출력한다.Referring to FIG. 1, the first motion estimation chip 12 of the forward motion estimation unit receives a macro block MB to estimate motion from a modern frame buffer (not shown), and searches for a search window (SW1) from a previous frame buffer (not shown). -U) is inputted, and the candidate block on the search window is compared with the macroblock to output a motion vector having the minimum absolute error and its absolute error value (fwd-mv-U), and a second motion estimation chip of the forward motion estimation unit ( 14) receives a macro block MB for motion estimation from a current frame buffer (not shown), receives a search window (SW1-D) from a previous frame buffer (not shown), and compares the candidate blocks on the search window with the macro blocks. Outputs the motion vector with the minimum absolute error and its absolute error value (fwd-mv-D).
이때 제1 움직임 추정칩(12)으로 입력되는 서치 윈도우는 제2도의 (c)에 도시된 바와 같이, 이전 프레임 상에 형성된 -16/+15 서치 윈도우의 상측부분(SW1-U)이고, 제2 움직임 추정칩(14)으로 입력되는 서치 윈도우는 이전 프레임 상에 형성된 -16/+15 서치 윈도우의 하측부분(SW1-D)이다.At this time, the search window input to the first motion estimation chip 12 is the upper portion SW1-U of the -16 / + 15 search window formed on the previous frame, as shown in FIG. The search window input to the two motion estimation chip 14 is the lower portion SW1 -D of the -16 / + 15 search window formed on the previous frame.
또한, 역방향 움직임 추정부의 제3 움직임 추정칩(22)은 도시되지 않은 현재 프레임 버퍼로부터 움직임 추정할 매크로 블럭(MB)을 입력받고, 도시되지 않은 이후 프레임 버퍼로부터 서치 윈도우(SW2-U)를 입력받아 서치 윈도우상의 후보블럭과 매크로블럭을 비교하여 절대에러가 최소인 움직임벡터와 그 절대에러값(bwd-mv-U)을 출력하고, 역방향 움직임 추정부의 제4 움직임 추정칩(24)은 도시되지 않은 현재 프레임 버퍼로부터 움직임 추정할 매크로 블럭(MB)을 입력받고, 도시되지 않은 이후 프레임 버퍼로부터 서치 윈도우(SW2-D)를 입력받아 서치 윈도우상의 후보블럭과 매크로블럭을 비교하여 절대에러가 최소인 움직임벡터와 그 절대에러값(bwd-mv-D)을 출력한다.In addition, the third motion estimation chip 22 of the backward motion estimation unit receives a macro block MB to estimate motion from a current frame buffer (not shown), and inputs a search window SW2-U from a frame buffer not shown. And compares the candidate block on the search window with the macroblock and outputs a motion vector having the minimum absolute error and its absolute error value (bwd-mv-U), and the fourth motion estimation chip 24 of the backward motion estimation unit is not shown. After receiving the macro block (MB) to estimate the motion from the current frame buffer, the search window (SW2-D) is input from the frame buffer (not shown), and compares the candidate block and the macroblock on the search window with the minimum absolute error. Outputs the motion vector and its absolute error value (bwd-mv-D).
이때 제3 움직임 추정칩(22)으로 입력되는 서치 윈도우는 제2도의 (c)에 도시된 바와 같이, 이후 프레임상에 형성된 -16/+15 서치윈도우의 상측부분(SW2-U)이고, 제4 움직임 추정칩(24)으로 입력되는 서치 윈도우는 이후 프레임상에 형성된 -16/+15 서치 윈도우의 하측부분(SW2-D)이다.At this time, the search window input to the third motion estimation chip 22 is the upper portion SW2-U of the -16 / + 15 search window formed on the frame, as shown in FIG. The search window input to the four motion estimation chip 24 is the lower portion (SW2-D) of the -16 / + 15 search window formed on the next frame.
그리고 위에서 설명한 바와 같은 움직임 추정 기술이 반도체칩으로 구현된 것으로는 에스지에스-톰슨(SGS-THOMSON)사에서 제조된 ST13220이 있으며, 상기 ST13220은 제2도의 (a) 및 (b)와 같이 16x16 매크로블럭에 대해서 수평방향으로 -8~+7, 수직방향으로 -8~+7의 서치 윈도우를 제공할 수 있다.In addition, the motion estimation technique described above is implemented as a semiconductor chip, which is ST13220 manufactured by SGS-THOMSON, which is a 16x16 macro as shown in (a) and (b) of FIG. A search window of -8 to +7 in the horizontal direction and -8 to +7 in the vertical direction can be provided for the block.
한편, 제1도에 있어서, 비교 및 선택부(30)는 제3도에 도시된 흐름도와 같은 동작을 수행하는데, 순방향 움직임 추정부의 제1 움직임 추정칩(12)으로부터 이전 프레임의 상측 윈도우로부터 추정한 움직임 벡터와 절대에러값(fwd-mv-U)을 입력받고, 순방향 움직임 추정부의 제2 움직임 추정칩(14)으로부터 이전 프레임의 하측 윈도우로부터 추정한 움직임 벡터와 절대에러값(fwd-mv-D)을 입력받으며, 역방향 움직임 추정부의 제3움직임 추정칩(22)으로부터 이후 프레임의 상측 윈도우로부터 측정한 움직임 벡터와 절대에러값(bwd-mv-U)을 입력받고, 역방향 움직임 추정부의 제4 움직임 추정칩(24)으로부터 이후 프레임의 하측 윈도우로부터 추정한 움직임 벡터와 절대에러값(bwd-mv-D)을 입력받아, 이들 절대에러값을 비교하여 절대에러값이 적은 순방향 움직임 벡터와 역방향 움직임 벡터 및 절대에러값(MV)을 메모리(40)에 저장한다. 이때, 메모리(40)에 이전에 처리된 순방향 및 역방향 움직임 벡터와 절대에러값(fwd-min-mv bwd-min-mv)이 저장되어 있으며, 다음 식2 및 식3과 같이, 절대에러가 최소인 순방향 움직임 벡터(New-fwd-MV) 및 역방향 움직임 벡터(New-bwd-MV)를 구해 메모리(40)에 저장한다.Meanwhile, in FIG. 1, the comparison and selection unit 30 performs the same operation as the flowchart shown in FIG. 3, which is estimated from the upper window of the previous frame from the first motion estimation chip 12 of the forward motion estimation unit. The motion vector and the absolute error value (fwd-mv-) estimated from the lower window of the previous frame are received from the second motion estimation chip 14 of the forward motion estimation unit by receiving one motion vector and the absolute error value (fwd-mv-U). D) and a motion vector and an absolute error value (bwd-mv-U) measured from the upper window of the next frame from the third motion estimation chip 22 of the backward motion estimation unit. The motion vector and the absolute error value (bwd-mv-D) estimated from the lower window of the subsequent frame are input from the motion estimation chip 24, and these absolute error values are compared to the forward motion vector having the small absolute error value. And stores the motion vector direction and the absolute error value (MV) in the memory (40). At this time, the previously processed forward and backward motion vectors and absolute error values (fwd-min-mv bwd-min-mv) are stored in the memory 40, and the absolute errors are minimum as shown in Equations 2 and 3 below. The in forward motion vector New-fwd-MV and the backward motion vector New-bwd-MV are obtained and stored in the memory 40.
즉, 한 슬라이스를 4번에 걸쳐 처리하는 동안에 상기 식2에서와 같이, 제1 움직임 추정칩(12)으로부터 입력되는 움직임 벡터의 절대에러치(fwd-mv-U)와 제2 움직임 추정칩(14)으로부터 입력되는 움직임 벡터의 절대에러치(fwd-mv-D), 및 메모리(40)에 저장된 이전 사이클의 순방향 최소 움직임 벡터의 절대에러치(fwd-min-mv)를 비교하여 이중 절대에러치가 최소인 움직임 벡터가 상기 새로운 순방향 움직임 벡터(New-fwd-MV)가 되고, 제3 움직임 추정칩으로부터 입력되는 움직임 벡터의 절대에러치(bwd-mv-U)와 제4 움직임 추정칩으로부터 입력되는 움직임 벡터의 절대에러치(bwd-mv-D), 및 메모리(40)에 저장된 이전 사이클의 역방향 최소 움직임 벡터의 절대에러지(bwd-min-mv)를 비교하여 이중 절대에러치가 최소인 움직임 벡터가 새로운 역방향 움직임 벡터(New-bwd-MV)가 된다.That is, during the processing of one slice four times, as in Equation 2, the absolute error value (fwd-mv-U) of the motion vector input from the first motion estimation chip 12 and the second motion estimation chip ( Double absolute error by comparing the absolute error (fwd-mv-D) of the motion vector inputted from 14) and the absolute error (fwd-min-mv) of the forward minimum motion vector of the previous cycle stored in the memory 40. The motion vector having the smallest value becomes the new forward motion vector (New-fwd-MV) and is input from the absolute error value (bwd-mv-U) and the fourth motion estimation chip of the motion vector input from the third motion estimation chip. The absolute error (bwd-mv-D) of the motion vector is compared with the absolute error (bwd-min-mv) of the backward minimum motion vector of the previous cycle stored in the memory 40. The vector becomes a new backward motion vector (New-bwd-MV).
여기서, 움직임 벡터와 해당 절대에러값은 한쌍으로 취급되므로 동일하게 지정되어 사용되나 서로 비교되는 것은 해당 벡터의 절대에러값이고, 최종적으로 선택되어 출력되는 것은 절대에러값이 최소인 움직임 벡터이다. 그리고 상기 식2,3으로 구해진 순방향 혹은 역방향의 새로운 움직임 벡터(New-fwd-MV. New-bwd-MV)는 메모리(40)에 저장되면 이전 사이클의 최소 움직임 벡터(fwd-mon-mv, bwd-min-mv)가 되고, 이와 같은 과정이 4번 처리되면 최종적으로 해당 매크로블럭의 움직임 벡터와 절대에러가 저장된다.Here, since the motion vector and the corresponding absolute error value are treated as a pair, they are designated and used in the same manner, but compared with each other are absolute error values of the corresponding vector, and finally selected and outputted are motion vectors having a minimum absolute error value. When the forward or backward new motion vector (New-fwd-MV. New-bwd-MV) obtained by Equations 2 and 3 is stored in the memory 40, the minimum motion vector (fwd-mon-mv, bwd) of the previous cycle is stored. -min-mv), and this process is performed four times, and finally the motion vector and the absolute error of the macroblock are stored.
이어서, 제3도를 참조하여 본 발명의 동작을 좀 더 상세히 설명하면 다음과 같다.Next, the operation of the present invention will be described in more detail with reference to FIG. 3.
본 발명의 바람직한 실시예에서 한 프레임의 영상(picture)은 34 슬라이스로 이루어져 있고, 하나의 슬라이스는 60개의 매크로블럭으로 이루어져 있으며, 본 발명에 따라 부호화할 경우에 슬라이스당 4번의 움직임 추정이 요구된다. 즉, 본 발명의 실시예에서는 수직방향의 서치 윈도우 확장은 움직임 추정칩을 복수개 사용하므로서 이루어지고, 수평 방향의 서치 윈도우 확장은 시분할에 의해 반복 처리 하므로서 이루어진다.In a preferred embodiment of the present invention, a picture of one frame consists of 34 slices, one slice consists of 60 macroblocks, and four motion estimations per slice are required when encoding according to the present invention. . That is, in the embodiment of the present invention, the search window expansion in the vertical direction is performed by using a plurality of motion estimation chips, and the search window expansion in the horizontal direction is performed by repetitive processing by time division.
제3도에 있어서, 먼저 슬라이스 카운트값을 0으로 초기화하고(slice-count=0:101), 이어서 해당 슬라이스에 대해 처리하기 위하여 슬라이스 카운트값을 1증가시킨다(slice-court++:102), 이어서 하나의 슬라이스에 대해 4번 움직임 추정하기 위하여 반복횟수를 0으로 초기화(rep-count=0:103)한 후 반복횟수값을 1 증가시킨다(rep-count++:104), 이어서 매크로블럭의 카운트값을 0으로 초기화(MB-count=1:105)한 후 매크로블럭의 카운트값을 증가시칸다(MB-count++106). 이어서 순방향 움직임 추정부의 제1 움직임 추정칩(12)과 제2 움직임 추정칩(14)으로부터 한쌍의 순방향 움직임 벡터(fwd-mv-U, fwd-mv-D)를 입력받고, 역방향 움직임 추정부의 제3 움직임 추정칩(22)과 제4 움직임 추정칩(24)으로부터 한쌍의 역방향 움직임 벡터(bwd-mv-U, bwd-mv-D)를 입력받아 반복횟수(rep-count)를 참조하여 스케일링한다(107), 이와 동시에 메모리(40)로부터 이전 사이클에서의 최소 순방향 움직임 벡터(fwd-min-mv)와 역방향 움직임 벡터(bwd-mon-mv)를 읽어 온다(108).In FIG. 3, first, the slice count value is initialized to 0 (slice-count = 0: 101), and then the slice count value is increased by one (slice-court ++: 102) to process the slice, then one. In order to estimate 4 motions for the slice of, the repetition count is initialized to 0 (rep-count = 0: 103), and the repetition count value is increased by 1 (rep-count ++: 104), and then the count value of the macroblock is 0. After initializing with (MB-count = 1: 105), increase the count value of the macroblock (MB-count ++ 106). Subsequently, a pair of forward motion vectors (fwd-mv-U and fwd-mv-D) are input from the first motion estimation chip 12 and the second motion estimation chip 14 of the forward motion estimator, A pair of backward motion vectors (bwd-mv-U and bwd-mv-D) are received from the third motion estimation chip 22 and the fourth motion estimation chip 24 and scaled with reference to the repetition count (rep-count). At the same time, 108 reads the minimum forward motion vector fwd-min-mv and the backward motion vector bwd-mon-mv from the memory 40 from the memory 40 at the same time.
이어서, 앞서 설명한 식2에서 따라 새로운 순방향 최소 움직임 벡터(New-fwd-MV)를 구함과 아울러 상기 식3에 따라 새로운 역방향 움직임 벡터(New-bwd-MV)를 구하여 이들을 메모리(SRAM:40)에 저장한다(109,110). 이어서 매크로블럭의 카운트값(MB-count)이 60이상 인지를 판단(MB-count60?)하여(111), 이하이면 상기 106 단계로 돌아가 다음 매크로블럭에 대해서 상기과정(106, 107, 108, 109, 110, 111)을 반복하고, 매크로블럭의 카운트값이 60이상이면 반복횟수(rep-count)가 4번 이하인지를 판단하여(112), 이하이면 다시 104 단계로 돌아가 동일한 슬라이스에 대해서 이상의 과정(104, 105,106,107,108,110,111,112)을 반복한다. 이이서 반복횟수(rep-count)가 4를 초과하면 슬라이스 카운트 값이 34이상인지를 판단하여(113), 34이하이면 동일한 픽쳐의 다음 슬라이스에 대해서 상기의 과정(102~113)을 반복하고, 34를 초과하면 다음 픽쳐(프레임)을 입력받아 처음부터 다시 시작한다(114).Subsequently, a new forward minimum motion vector (New-fwd-MV) is obtained according to Equation 2 described above, and a new backward motion vector (New-bwd-MV) is obtained according to Equation 3, and these are stored in a memory (SRAM: 40). Store (109, 110). Subsequently, it is determined whether the count value (MB-count) of the macroblock is 60 or more (MB-count60?), And if it is less than or equal to 111, the process returns to step 106 and the process (106, 107, 108, 109) for the next macroblock. , 110, 111) and if the count value of the macroblock is 60 or more, it is determined whether the repetition count (rep-count) is 4 or less (112). Repeat (104, 105, 106, 107, 108, 110, 111, 112). If the repetition count (rep-count) exceeds 4, it is determined whether the slice count value is 34 or more (113). If the value is less than 34, the above steps (102 to 113) are repeated for the next slice of the same picture. If it exceeds 34, the next picture (frame) is input and restarted from the beginning (114).
이상에서 설명한 바와 같이 소정의 서치 윈도우를 제공하는 움직임 칩을 복수개 사용하여 수직방향으로 서치 윈도우를 확장하고, 수평방향으로의 서치윈도우 확장은 시분할 기법을 이용하여 동일한 슬라이스에 대하여 소정수 반복하므로서 적은 메모리의 비교적 간단한 회로로 서치 윈도우를 확장할 수 있는 효과가 있다.As described above, the search window is expanded in the vertical direction by using a plurality of motion chips that provide a predetermined search window, and the search window expansion in the horizontal direction is repeated by a predetermined number of times for the same slice using a time division technique. In this relatively simple circuit, the search window can be extended.
예컨대, 수직, 수평, 방향으로 -8/+7의 서치 윈도우를 갖는 움직임 추정칩으로 수직방향으로 +16/-15, 수평방향으로 -32/+31만큼 서치 윈도우를 확장할 경우 적어도 8개의 움직임 추정칩이 필요하고(역방향 움직임 주정가지를 고려하면 적어도 16개), 이들 8개의 움직임 추정칩이 출력하는 움직임 벡터와 절대에러값을 저장 및 비교하기 위하여 복잡한 연산회로가 요구되나 본 발명에서는 2개의 움직임 추정칩(역방향 움직임 추정까지를 고려하면 4개)을 사용하여 구현할 수 있다.For example, a motion estimation chip having a search window of -8 / + 7 in the vertical, horizontal, and direction directions of at least 8 motions when the search window is extended by + 16 / -15 in the vertical direction and -32 / + 31 in the horizontal direction. Estimation chips are required (at least 16 in consideration of the reverse motion main branch), and complex computational circuits are required to store and compare the motion vectors output from these eight motion estimation chips with absolute error values. It can be implemented using a motion estimation chip (four considering the backward motion estimation).
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960007972A KR100195734B1 (en) | 1996-03-22 | 1996-03-22 | A motion estimator being extended search windows |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960007972A KR100195734B1 (en) | 1996-03-22 | 1996-03-22 | A motion estimator being extended search windows |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970068660A KR970068660A (en) | 1997-10-13 |
KR100195734B1 true KR100195734B1 (en) | 1999-06-15 |
Family
ID=19453748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960007972A KR100195734B1 (en) | 1996-03-22 | 1996-03-22 | A motion estimator being extended search windows |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100195734B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100479255B1 (en) * | 2001-08-16 | 2005-03-30 | 이상욱 | Apparatus for estimating video motion of video compression system |
-
1996
- 1996-03-22 KR KR1019960007972A patent/KR100195734B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970068660A (en) | 1997-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100492127B1 (en) | Apparatus and method of adaptive motion estimation | |
EP1987676B1 (en) | Method and apparatus for determining motion between video images | |
EP1430724B1 (en) | Motion estimation and/or compensation | |
KR100226684B1 (en) | A half pel motion estimator | |
US20080260033A1 (en) | Hybrid hierarchical motion estimation for video streams | |
US20070133683A1 (en) | Motion vector estimation device and motion vector estimation method | |
US8155213B2 (en) | Seamless wireless video transmission for multimedia applications | |
EP1859627B1 (en) | Global motion estimation | |
US20050281335A1 (en) | Apparatus and method for estimating hybrid block-based motion | |
US6996177B1 (en) | Motion estimation | |
EP0734175A1 (en) | Hierarchical motion vector estimation using multiple block sizes | |
WO2003085599A1 (en) | Motion estimation unit and method of estimating a motion vector | |
KR100195734B1 (en) | A motion estimator being extended search windows | |
US9225994B2 (en) | Global motion estimation using reduced frame lines | |
EP1420595B1 (en) | Motion vector selection in a video motion estimator based on a preferred reference point | |
US20090148067A1 (en) | Image processing method and related apparatus for performing image processing operation according to image blocks in horizontal direction | |
KR100359091B1 (en) | Motion estimation device | |
US6968011B2 (en) | Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices | |
KR20010034374A (en) | Device and method for detecting moving vector | |
KR100204480B1 (en) | A motion estimator | |
KR100413002B1 (en) | Apparatus and method for block matching by using dispersed accumulate array in video coder | |
KR100195697B1 (en) | Motion estimation method and apparatus | |
Chan et al. | Search strategy for partial distortion elimination in motion estimation | |
KR970003099B1 (en) | Motion vector estimating apparatus considering covered/uncovered region | |
KR100195728B1 (en) | A 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: 20110201 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |