KR100195694B1 - Motion estimation method and apparatus - Google Patents
Motion estimation method and apparatus Download PDFInfo
- Publication number
- KR100195694B1 KR100195694B1 KR1019950013989A KR19950013989A KR100195694B1 KR 100195694 B1 KR100195694 B1 KR 100195694B1 KR 1019950013989 A KR1019950013989 A KR 1019950013989A KR 19950013989 A KR19950013989 A KR 19950013989A KR 100195694 B1 KR100195694 B1 KR 100195694B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- block
- motion
- reference block
- blocks
- 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/567—Motion estimation based on rate distortion criteria
-
- 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/174—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 slice, e.g. a line of blocks or a group of blocks
-
- 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
본 발명은 움직임 추정방법 및 장치에 관한 것으로, 4 x 8 또는 8 x 16 픽셀 크기의 레퍼런스 블럭의 소정의 서치 윈도우영역에서 처리한 후 움직임 벡터와 디스토션을 산출하도록 된 움직임 추정칩을 이용하여, 8 x 4 또는 16 x 8 픽셀 크기의 레퍼런스 블럭들을 파이프라인 모드로 처리하기 위한 방법에 있어서, 상기 8 x 4 또는 16 x 8 레퍼런스 블럭들이 슬라이스를 이루고, 이러한 슬라이스들이 평면적으로 배열되어 저장된 현재 프레임 메모리로부터 상기 레퍼런스 블럭들을 수직방향으로, 순차적으로 읽어 온 후 회전시켜 4 x 8 또는 8 x 16 크기의 레퍼런스 블럭으로 만들어 상기 회전된 레퍼런스 블럭들이 연속성을 갖고, 따라서 상기 움직임 추정 칩에서 파이프라인 모드로 처리될 수 있게 한다.The present invention relates to a method and apparatus for estimating motion, using a motion estimation chip configured to calculate motion vectors and distortions after processing in a predetermined search window area of a 4 x 8 or 8 x 16 pixel reference block. A method for processing a 4 x 16 or 8 x 8 pixel sized reference block in pipeline mode, wherein the 8 x 4 or 16 x 8 reference blocks form a slice, and the slices are arranged in a planar manner from a stored current frame memory. The reference blocks are read in the vertical direction, sequentially, and then rotated to form a 4 x 8 or 8 x 16 sized reference block so that the rotated reference blocks have continuity and are thus processed in pipeline mode in the motion estimation chip. To be able.
Description
제1도의 (a)는 MxN 블럭의 서치 윈도우를 도시한 도면,(A) of FIG. 1 shows a search window of an MxN block;
제1도의 (b)는 MxN 블럭을 도시한 도면,(B) of FIG. 1 shows an MxN block;
제2도는 본 발명에서 이용되는 움직임 추정 상용칩의 블럭도,2 is a block diagram of a motion estimation commercial chip used in the present invention;
제3도의 (c)는 제2도의 상용칩에 의한 4n x 8 레퍼런스 블럭의 서치 윈도우를 도시한 도면,(C) of FIG. 3 shows a search window of a 4n x 8 reference block by a commercial chip of FIG.
제3도의 (b)는 4n x 8 레퍼런스 블럭을 도시한 도면,(B) of FIG. 3 shows a 4n x 8 reference block,
제4도의 (a) 내지 (f)는 제2도의 상용칩에 의한 이니셜라이제이션 시퀀스의 타이밍을 도시한 타이밍도,(A) to (f) of FIG. 4 are timing charts showing the timing of the initialization sequence by the commercial chip of FIG.
제5도의 (a) 내지 (f)는 제2도의 상용칩에 의한 블럭 시퀀스의 타이밍을 도시한 타이밍도,(A) to (f) of FIG. 5 are timing charts showing the timing of the block sequence by the commercial chip of FIG.
제6도의 (가) 내지 (사)는 제2도의 상용칩에 의한 출력 타이밍을 도시한 타이밍도,(A) to (g) of FIG. 6 are timing charts showing the output timing by the commercial chip of FIG.
제7도는 제2도의 상용칩에 따른 파이프 라인모드에서 입력단계를 도시한 개략도,7 is a schematic diagram showing an input step in a pipeline mode according to a commercial chip of FIG.
제8도의 (a)는 일반적인 필드 프레임에서 사용되는 수직 1/2모드의 블럭을 도시한 도면,(A) of FIG. 8 shows a block of the vertical 1/2 mode used in a general field frame;
제8도의 (b)는 일반적인 수직 1/2 모드를 수행하는 종래방식의 블럭배열을 도시한 도면,(B) of FIG. 8 shows a conventional block arrangement for performing a general vertical 1/2 mode;
제9도의 (a)는 본 발명에 따라 수직 1/2 모드를 수행하기 위한 블럭 배열을 도시한 도면,(A) of FIG. 9 shows a block arrangement for performing a vertical 1/2 mode according to the present invention;
제9도의 (b)는 제9도의 (a)에 도시된 블럭이 회전되어 형성된 블럭배열을 도시한 도면,(B) of FIG. 9 shows a block arrangement formed by rotating the block shown in (a) of FIG.
제10도는 본 발명에 따른 움직임 추정기를 도시한 블럭도이다.10 is a block diagram illustrating a motion estimator according to the present invention.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
1 : 현 프레임 메모리 2 : 이전 프레임 메모리1: current frame memory 2: previous frame memory
3 : 제 1 데이타 형성기 4 : 제2 데이타 형성기3: first data generator 4: second data generator
5 : 움직임 추정기 6 : 제어기5: motion estimator 6: controller
본 발명은 영상신호의 움직임을 추정하는 기술에 관한 것으로, 특히 '수평 1/2 모드'를 지원할 수 있는 상용칩셋을 이용하여 '수직 1/2 모드'를 구현하기 위한 움직임 추정방법 및 장치에 관한 것이다.The present invention relates to a technique for estimating motion of an image signal, and more particularly, to a motion estimation method and apparatus for implementing 'vertical half mode' using a commercial chipset capable of supporting 'horizontal half mode'. will be.
일반적으로, 영상신호처리기술에서 '움직임 추정(motionestimation)'이란 연속되는 영상신호에서 현재 프레임(current frame)의 화소(pixel)들이 이전 프레임(previous frame)에 비해 어느 정도 움직였는지를 벡터로 표시한 움직임 벡터(motion vector)를 추정하여, 전체 영상을 전송하는 대신에, 이들 움직임 벡터를 전송함으로써 전송 정보를 줄이는 기술(즉, 영상압축)을 말하는 것이다.In general, 'motionestimation' in a video signal processing technique is a vector representation of 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, it refers to a technique (ie, image compression) that reduces transmission information by transmitting these motion vectors.
이러한 움직임 추정에서 널리 사용되는 블럭 정합 알고리즘(BMA: Block Matching Algorithm)은 화면의 움직임이 수평 또는 수직으로 평행 이동한 것으로 가정하여 움직임이 일어난 프레임(즉, 이전 프레임) 의 어느 위치에 있는 블럭영상과 가장 일치하는가를 추정하여 그 위치를 통해 움직임 벡터를 추정하는 방법이다. 이때, 블럭의 크기로는 8 x 8, 16 x 16( 가로 픽셀 수 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 to the block image at any position of the frame (ie, the previous frame) where the motion occurred. It is a method of estimating the best match and estimating a motion vector through the position. In this case, 8x8, 16x16 (the number of horizontal pixels x the number of vertical pixels) are mainly used as the size of the block.
여기서, 현재 프레임의 레퍼런스 블럭(reference block)과 가장 유사한 이전 블럭을 찾기 위하여 이전 프레임에서 레퍼런스 블럭의 위치를 중심으로 일정 범위 안을 찾게 되는데, 이러한 범위를 서치 윈도우(search window)라 하고, 이러한 서치 윈도우안에서 각 후보블럭(candidate block)과의 차를 디스토션(distortion)이라 하며, 두 블럭간의 유사정도를 나타낸다.Here, in order to find the previous block that is most similar to the reference block of the current frame, a 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 within the block is called distortion, and indicates the degree of similarity between the two blocks.
또한, 서치 윈도우안의 모든 후보블럭과 레퍼런스 블럭을 비교하는 것을 풀 서치 블럭매칭(full search block matching algorithm)이라 하며, 수식적으로 가장 일치하는 블럭을 찾기 위하여 연속된 두 프레임의 영상중에서, 이전 프레임을 f₁(x,y), 현재 프레임을 f₂(x,y)라 했을 때, f₂(x,y) 와 f₁(x-a,y-b)에서 a,b를 변화시켜 가면서 f₁(x-a,y-b)와 f₂(x,y)의 차를 구하여, 그 차가 최소가 되는 (a,b)를 움직임 벡터로 예측한다. 이와같이 블럭간의 최소오차를 구하는 방법을 평균절대오차(MAE:Mean Absolute Error) 방법이라 하며 다음 식과 같다.In addition, comparing all candidate blocks and reference blocks in the search window is called a full search block matching algorithm, and in order to find the best matching block, the previous frame is searched in the image of two consecutive frames. f₁ (x, y), assuming that the current frame is f₂ (x, y), f₁ (xa, yb) and f₂ (by changing a, b in f₂ (x, y) and f₁ (xa, yb) The difference of x, y) is obtained, and (a, b) for which the difference is minimum is predicted by the motion vector. In this way, the method of finding the minimum error between blocks is called Mean Absolute Error (MAE) method.
상기 식에서 Eabs는 평균절대오차값이고, B는 블럭 크기를 뜻하며, 따라서 상기 Eabs를 최소로하는(a,b)를 구하면 이것이 움직임 벡터가 된다.In the above equation, E abs is the mean absolute error value, B is the block size, so if you find (a, b) that minimizes E abs , this is the motion vector.
한편, 위에서 설명한 바와 같은 움직임 추정 기술이 반도체칩으로 구현된 것으로는 에스지에서-톰슨(SGS-THOMSON)사에서 제조된 STI3220이 있으며, 상기 STI3220은 제1도의 (b)와 같이 M x N(M=8 도는16, N-4n)크기의 레퍼런스 블럭과 제1도의 (a)에 도시된 바와 같이 수평방향으로 -8~+7,수직방향으로 -8~+7의 서치 윈도우를 갖는다.On the other hand, the motion estimation technique as described above is implemented as a semiconductor chip is STI3220 manufactured by SGS-THOMSON, the STI3220 is M x N (M) as shown in (b) of FIG. The reference block of size = 8 degrees (16, N-4n) has a search window of -8 to +7 in the horizontal direction and -8 to +7 in the vertical direction as shown in (a) of FIG.
이러한 상용칩은 제2도에 도시된 바와 같이 8비트의 픽셀 단위로 레퍼런스 블럭을 입력받기 위한 X포트와, 8비트 픽셀 단위로 서치 윈도우 데이타를 각각 입력받기 위한 A, B, C포트로 이루어진 데이타 포맷터와;256개의 프로세서 어레이; 16비트의 디스토션을 저장하기 위한 디스토션 (RAM); 디스토션을 비교하기 위한 디스토션 비교기; 디스토션 비교결과 최소 디스토션을 갖는 움직임 벡터와, 디스토션램을 억세스하기 위한 어드레스, 및 디스토션을 전달하기 위한 입출력버스(10B); 및 /RESET, OE /BSYNC, EC[3:0],H8,SQ신호를 입력하여 각종 동작을 제어하며 /MVSYNC, /DSYNCO. /DSYNC1신호의 타이밍을 발생하는 제어기로 구성되어 있다. 여기서, RESET신호는 상용칩을 리셋하기 위한 신호이고 OE는 출력 인에이블신호이며, /BSYNC는 시퀀스의 시작을 요구하는 타이밍신호이고, EC[0:3]는 에지 제어(edge control)를 위한 4비트의 데이타신호이고,/H8은 0이면 블럭의 수직크기가 8픽셀(즉, 4n x 8), 1이면 블럭의 수직 크기가 16픽셀(즉, 4n x 16)인 것을 뜻하고, /SQ신호는 0이면 블럭의 크기가 정방형 (8 x 8또는 16 x 16), 1이면 장방형인 것을 알려주기 위한 신호이다.As shown in FIG. 2, the commercial chip includes data consisting of an X port for receiving a reference block in 8-bit pixel units and an A, B, and C port for receiving search window data in 8-bit pixel units, respectively. A formatter; 256 processor arrays; Distortion (RAM) for storing 16-bit distortion; A distortion comparator for comparing the distortions; A distortion comparison result, the motion vector having the minimum distortion, an address for accessing the distortion RAM, and an input / output bus 10B for delivering the distortion; And / RESET, OE / BSYNC, EC [3: 0], H8, SQ signals to control various operations and / MVSYNC, / DSYNCO. It is composed of a controller that generates timing of the / DSYNC1 signal. Here, the RESET signal is a signal for resetting a commercial chip, OE is an output enable signal, / BSYNC is a timing signal requiring the start of a sequence, and EC [0: 3] is 4 for edge control. Bit is a data signal, / H8 means that the vertical size of the block is 8 pixels (ie 4n x 8), 1 means that the vertical size of the block is 16 pixels (ie 4n x 16), and the / SQ signal 0 is a signal for indicating that the block size is square (8 x 8 or 16 x 16), and 1 is rectangular.
상기와 같이 구성되는 상용칩의 4n x 8 레퍼런스 블럭은 제3도의 (b)에 도시된 바와 같이, 수평방향으로 4n 픽셀, 수직방향으로8픽셀로 이루어진 장방형이고, 이러한 레퍼런스 블럭의 서치 윈도우는 제3도의 (a)에 도시된 바와 같이, 8행(row), 15열(column)로 형성된 SWA1, SWC1, SWA2, SWB2, SWC2 서브 윈도우로 나누어져 있다. 그리고 이니셜라이제이션 시퀀스(initialization sequence)에서 A포트로는 SWA1, B포트로는 SWB1, C포트로는 SWC1이 입력되고, 블럭 시퀀스(block sequence)에서 A포트로는 SWA2, B 포트로는 SWB2, C 포트로는 SWC2, X 포트로는 레퍼런스 블럭이 각각 입력된다.The 4n x 8 reference block of the commercial chip constructed as described above has a rectangular shape consisting of 4n pixels in the horizontal direction and 8 pixels in the vertical direction, as shown in FIG. 3 (b). As shown in (a) of FIG. 3, it is divided into SWA1, SWC1, SWA2, SWB2, and SWC2 sub-windows formed in eight rows and fifteen columns. In the initialization sequence, SWA1 is input to A port, SWB1 to B port, SWC1 to C port, SWA2 to A port, SWB2 to B port, and so on. SWC2 is input to C port and reference block is input to X port, respectively.
즉, 움직임 추정칩인 SI3220은 동작모드가 이니셜라이제이션 시퀀스와 블럭 시퀀스로 이루어지는데, 이니셜라이제이션 시퀀스는 제 4도의 (a) 내지 (g)에 도시된 바와 같이 128클럭 사이클동안에 15열의 SWA1,SWB1,SWC1 블럭들을 로딩(loading)한다. 이때, 시퀀스의 시작은 BSYNC신호가 약 1 클럭동안 로우가 되면서 시작되어 처음 8클럭 동안은 데이타가 로딩되지 않고 칩이 내부적으로 초기화되며, 이후 120 클럭동안에 각 포트당 120픽셀(8 x 15 = 120)의 데이타를 로딩한다. 여기서 데이타가 로딩되는 순서는 첫번째 열부터 상하 수직방향으로 로딩하면서 순차적으로 15번째 열까지이다. 이때, SWA1, SWB1은 수직방향이 8픽셀이나, SWC1, SWC2는 7필셀인데 타이밍을 맞추기 위하여 8픽셀을 입력하므로, 제3도의 (a)에 점선으로 도시된 바와 같이, 1열이 추가로 로딩되어 있으며 움직임 벡터 계산에서는 제외된다.That is, the SI3220 motion estimation chip has an operation mode consisting of an initialization sequence and a block sequence. The initialization sequence includes 15 columns of SWA1, 128 during 128 clock cycles as shown in (a) to (g) of FIG. Loads SWB1 and SWC1 blocks. At this time, the sequence starts when the BSYNC signal goes low for about one clock, and the chip is initialized internally without data loading for the first eight clocks, and then 120 pixels (8 x 15 = 120) per port for 120 clocks. Load the data of). The order in which data is loaded is from the first column to the 15th column sequentially while loading in the vertical direction. At this time, SWA1 and SWB1 are 8 pixels in the vertical direction, but SWC1 and SWC2 are 7 pixels, but 8 pixels are input to match the timing. Thus, as shown by a dotted line in FIG. And excluded from motion vector calculations.
또한, 블럭 시퀀스는 제5도의 (a) 내지 (f)에 도시된 바와 같이, 32n(4n x 8=32n)클럭 동안에 SWA2, SWB2, SWC2와 레퍼런스 블럭을 로딩하는데, /SQ신호가 로우로서 레퍼런스 블럭이 정방형(예를 들면, 8x8, 16x16)이면 시퀀스의 시작에서 /BSYNC신호가 로우가 되는 것이 필수적이 아니지만 레퍼런스 블럭이 정방형이 아니면(/SQ=하이), 시퀀스의 시작에서 BSYNC신호가 로우가 되는 것이 필수적이다. 이와 같이 레퍼런스 블럭이 로딩된 후 각 후보 블럭에 대한 디스토션 계산이 이루어짐과 아울러, 서로 비교되어 최소치를 갖는 후보블럭의 움직임 벡터와 디스토션이 구해진 후 제 6 도의 (a) 내지 (g)에 도시된 타이밍으로 입출력버스(IOB)를 통해 출력된다.The block sequence also loads SWA2, SWB2, SWC2 and the reference block during 32n (4n x 8 = 32n) clocks, as shown in Figures 5 (a) to (f), where the / SQ signal is referenced as low. If the block is square (eg 8x8, 16x16), it is not essential that the / BSYNC signal goes low at the beginning of the sequence, but if the reference block is not square (/ SQ = high), the BSYNC signal goes low at the beginning of the sequence. It is essential to be. After the reference block is loaded as described above, distortion calculation is performed on each candidate block, and the motion vector and the distortion of the candidate block having the minimum value are compared with each other to obtain the timing shown in FIGS. 6A to 6G. It is output through I / O bus (IOB).
즉, 블럭시퀀스 (block sequence)가 수행된 후 다음 시퀀스의 M+30번째 클럭 사이클에서 제 6도의 (c)에 도시된 바와 같이 출력인에이블신호(OE)가 하이일 경우에 제 6 도의 (d)와 같이 /MVSYNC신호가 로우가 되는 타이밍에 입출력버스에 8비트의 움직임 벡터(MV)가 실리게 되고, 이어서 /DSYNCO가 로우가 되는 타이밍에 16비트의 디스토션중 상위 8비트(MSB)가 출력되고, 곧바로 이어서 /DSYNC1이 로우가 되는 타이밍에 디스토션의 하위 8비트(LSB)가 출력된다.That is, in the case where the output enable signal OE is high as shown in (c) of FIG. 6 in the M + 30th clock cycle of the next sequence after the block sequence is performed, FIG. When the / MVSYNC signal goes low, an 8-bit motion vector (MV) is loaded on the I / O bus, followed by the upper 8 bits (MSB) of the 16-bit distortion at the timing when / DSYNCO goes low. Immediately following, the lower 8 bits (LSB) of the distortion are output at the timing when / DSYNC1 goes low.
이와 같이 블럭 시퀀스가 수행되는 중에 입출력버스(IOB)를 통해 이전 블럭시퀀스의 움직임 벡터와 디스토션값을 리드할 수 있으며, 입출력버스에 특정 어드레스를 출력한 후 해당 어드레스의 디스토션 램을 억세스하여 디스토션 데이타를 읽어 올 수 있다.As such, during the block sequence, the motion vector and the distortion value of the previous block sequence can be read through the I / O bus, and a specific address is output to the I / O bus, and the distortion RAM of the corresponding address is accessed to generate the distortion data. You can read it.
이상에서 설명한 바와 같이, 수평, 수직 각 방향에 대해 -8~+7크기를 갖는 서치 윈도우에서 하나의 레퍼런스 블럭을 움직임 추정하는데 128 클럭의 이니셜라이제이션 시퀀스와 32n클럭의 블럭 시퀀스를 각각 한번씩 수행해야 한다. 그런데, 블럭간의 연속성이 유지될 경우 즉, k번째 서치 윈도우의 우측 15칼럼과 k+1 서치 윈도우의 좌측 15칼럼이 일치할 경우에는 한번의 이니셜라이제이션 시퀀스와 다수의 블럭 시퀀스만으로 다수의 레퍼런스 블럭에 대해 움직임 추정을 수행할 수 있으므로 시간을 절약할 수 있으며, 이러한 동작모드를 파이프라인 모드(pipeline mode)라 한다.As described above, in order to estimate the motion of one reference block in a search window having a size of -8 to +7 in each of the horizontal and vertical directions, an initializing sequence of 128 clocks and a block sequence of 32n clocks must be performed once. do. However, when the continuity between blocks is maintained, that is, when the right 15 column of the kth search window and the left 15 column of the k + 1 search window coincide with each other, a plurality of reference blocks are generated by only one initialization sequence and a plurality of block sequences. Since the motion estimation can be performed for, time can be saved, and this operation mode is called a pipeline mode.
움직임 추정칩이 파이프라인 모드로 동작되는 경우에 하나의 서치윈도우는 제7도에 도시된 바와 같이 3개의 단계로 나누어지는데, 제1단계 및 제2 단계의 블럭들은 이미 입력된 블럭들이고, 제3 단계의 블럭들은 현재의 서치 윈도우(k서치 윈도우)에서 레퍼런스 블럭과 함께입력된 블럭이다. 이와 같이 k서치 윈도우에서 제3 단계에서 입력된 블럭들은 움직임 벡터가 계산되면, 전체적으로 1블럭 시프드되어 k+1 서치 윈도우에서는 제2 단계의 블럭이 된다.When the motion estimation chip is operated in the pipeline mode, one search window is divided into three stages as shown in FIG. 7. The blocks of the first and second stages are already input blocks, and the third The blocks in the step are blocks entered together with the reference block in the current search window (k search window). As described above, when the motion vector is calculated, the blocks input in the third stage of the k search window are shifted by one block and become blocks of the second stage in the k + 1 search window.
한편, MPEG2에서는 프레임 픽쳐뿐만 아니라 필드 픽쳐에서도 움직임 추정이 가능하도럭 제안되었는데, 프레임 픽쳐에서 8 x 8 블럭단위로 움직임 추정을 하는 경우에 필드 픽쳐에서는 8 x 4 블럭단위로 움직임 추정을 할 필요가 있다. 이와 같이 필드 픽쳐에서 수직방향으로 프레임 픽쳐에 대해 픽셀이 반으로 감소되는 방식을 수직 1/2 모드라 한다.Meanwhile, in MPEG2, motion estimation is possible not only for frame pictures but also for field pictures. When motion estimation is performed in 8 x 8 block units in a frame picture, it is necessary to perform motion estimation in 8 x 4 block units in a field picture. have. As described above, a method in which the pixel is reduced in half with respect to the frame picture in the vertical direction in the field picture is referred to as vertical 1/2 mode.
그런데 앞서 설명한 바와 같이 STI3220칩은 4n x 8 또는 4n x 16에서, n=1일 경우에 수평 1/2 모드가 지원될 뿐 수직 1/2 모드는 지원되지 않는다. 즉, STI3220칩에서는 수평, 수직방향으로 각 -8~+7의 디폴트 서치 윈도우를 갖는 4 x 8 크기의 레퍼런스 블럭을 128 클럭 사이클의 이니셜라이제이션 시퀀스와 32클럭 사이클의 블럭 시퀀스로 처리한다.As described above, the STI3220 chip supports horizontal 1/2 mode when n = 1 at 4n x 8 or 4n x 16, but not vertical 1/2 mode. In other words, the STI3220 chip processes a 4 x 8 sized reference block with a default search window of -8 to +7 in the horizontal and vertical directions into an initialization sequence of 128 clock cycles and a block sequence of 32 clock cycles.
따라서, 수평 1/2 모드만을 지원하는 상용칩으로 수직 1/2 모드를 지원하기 위해서는 상기 칩으로 입력되기 전에 8 x 4 블럭을 회전시켜 4 x 8 블럭형태로 변환한 후 처리해야 한다.Therefore, in order to support the vertical 1/2 mode as a commercial chip supporting only the horizontal 1/2 mode, 8 x 4 blocks should be rotated and converted into a 4 x 8 block shape before being input to the chip.
예를 들어, 제8도의 (a)에 도시된 바와 같이 제1 슬라이스가 8 x 4의 블럭 1-1, 블럭 1-2, 블럭 1-3, 블럭 1-4,...로 이루어지고, 제2슬라이스가 8 x 4의 블럭 2-1, 블럭 2-2, 블럭 2-3, 블럭 2-4,...로 이루어지며, 제3 슬라이스가 8 x 4의 블럭 3-1, 블럭 3-2, 블럭 3-3, 블럭 3-4,...로 이루어질 경우에, 종래에는 이들 블럭들의 데이타를 수평 방향으로 순차적으로 가져와 회전시킨 후에 상기 상용칩에 의해 처리하였기 때문에 제8도의 (b)에 도시된 바와 같이, 인접 블럭간의 연속성이 무너져 파이프라인 모드를 사용하지 못하게 되는 문제점이 있었다.For example, as shown in (a) of FIG. 8, the first slice is composed of blocks 1-1, blocks 1-2, blocks 1-3, blocks 1-4, ... of 8 x 4, The second slice consists of blocks 2-1, blocks 2-2, blocks 2-3, blocks 2-4, ... of 8 x 4, and the third slice is blocks 3-1, block 3 of 8 x 4 -2, block 3-3, block 3-4, ..., since the data of these blocks are sequentially taken in the horizontal direction and rotated, and then processed by the commercially available chip as shown in FIG. As shown in FIG. 2), there is a problem that the continuity between adjacent blocks is broken and thus the pipeline mode cannot be used.
즉, 제8도의 (b)에 도시된 바와 같이 순차적으로 연속되는 블럭 1-1, 블럭 1-2, 블럭 1-3...을 회전시키면, 제8도의 (b)에 도시된 바와 같이 블럭 1-1과 블럭 1-2 사이의 연속되는 부분(굵은 선 a, b 부분)이 서로 떨어지고, 연속되지 않은 부분(c)이 인접되므로 파이프라인 모드를 사용할 수 없어, 매 블럭마다 이니셜라이제이션 시퀀스와 블럭 시퀀스를 반복해야 하므로 처리시간이 많이 걸리는 문제점이 있다.That is, as shown in (b) of FIG. 8, if blocks 1-1, blocks 1-2, blocks 1-3, etc. are sequentially rotated, the blocks as shown in (b) of FIG. 8 are rotated. Since the successive parts (bold lines a, b) between 1-1 and blocks 1-2 are separated from each other, and the non-contiguous parts (c) are adjacent to each other, pipeline mode cannot be used. Because it has to repeat the block sequence with, it takes a lot of processing time.
이에 본 발명은 상기와 같은 종래의 문제점을 해소하기 위하여 안출된 것으로, 수평 1/2 모드만 지원하는 움직임 추정칩을 사용하여 수직 1/2 모드를 지원함과 아울러 파이프라인 모드로 동작될 수 있도록 된 움직임 추정 방법 및 장치를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made in order to solve the above-mentioned problems, and it is possible to operate in a pipelined mode while supporting a vertical 1/2 mode using a motion estimation chip that supports only a horizontal 1/2 mode. Its purpose is to provide a motion estimation method and apparatus.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은 4 x 8 또는 8 x 16픽셀 크기의 레퍼런스 블럭을 소정의 서치 윈도우영역에서 처리한 후 움직임 벡터와 디스토션을 산출하도록 된 움직임 추정칩을 이용하여, 8 x 4 또는 16 x 8픽셀 크기의 레퍼런스 블럭들을 파이프라인 모드로 처리하기 위한 방법에 있어서,In order to achieve the above object, the method of the present invention uses a motion estimation chip configured to calculate a motion vector and distortion after processing a 4 x 8 or 8 x 16 pixel reference block in a predetermined search window area. A method for processing 8 x 4 or 16 x 8 pixel sized reference blocks in pipeline mode,
상기 8 x 4 또는 16 x 8레퍼런스 블럭들이 슬라이스를 이루고, 이러한 슬라이스들이 평면적으로 배열되어 저장된 현재 프레임 메모리로부터 상기 레퍼런스 블럭들을 수직방향으로, 순차적으로 읽어 온 후 회전시켜 4 x 8 또는 8 x 16크기의 레퍼런스 블럭으로 만들어The 8x4 or 16x8 reference blocks form a slice, and the slices are arranged in a plane and read the reference blocks in a vertical direction sequentially from the current frame memory stored and then rotated in a 4x8 or 8x16 size. Make it a reference block
상기 회전된 레퍼런스 블럭들이 연속성을 갖고, 따라서 상기 움직임 추정 칩에서 파이프라인 모드로 처리될 수 있게 하는 것을 특징으로 한다.The rotated reference blocks have continuity, and thus can be processed in pipeline mode in the motion estimation chip.
이하, 첨부된 도면을 참조하여 본 발명을 자세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail the present invention.
본 발명에 따른 움직임 추정방법은 제8도의 (a)에 도시된 바와 같이 8 x 4 또는 16 x 8 레퍼런스 블럭들이 슬라이스를 이루고, 이러한 슬라이스들이 평면적으로 배열되어 저장된 현재 프레임 메모리로부터 제9도의 (a)에 도시된 바와 같이 상기 레퍼런스 블럭들을 수직방향으로, 순차적으로 읽어 온 후 회전시켜 4 x 8 또는 8 x 16 크기의 레퍼런스 블럭으로 만들어 상기 회전된 레퍼런스 블럭들이 연속성을 갖고, 따라서 상기 움직임 추정 칩에서 파이프라인 모드로 처리될 수 있게 하는 것이다.In the motion estimation method according to the present invention, as shown in (a) of FIG. 8, 8 x 4 or 16 x 8 reference blocks form a slice, and the slices are arranged in a plane and stored in the current frame memory of FIG. As shown in Fig. 2), the reference blocks are sequentially read in a vertical direction, and then rotated to form a 4 x 8 or 8 x 16 sized reference block so that the rotated reference blocks have continuity, and thus the motion estimation chip To allow them to be processed in pipeline mode.
즉, 본 발명은 종래기술에서 이미 설명한 바와 같이 수평 1/2 모드 (블럭의 크기가 4 x 8, 8 x 16과 같이 수평방향이 수직방향의 1/2인 경우)만을 지원하는 상용칩을 이용하여 필드 픽쳐를 움직임 추정할 경우에 자주 사용되는 수직 1/2모드(블럭의 크기가 8 x 4, 16 x 8 과 같이 수직방향이 수평방향의 1/2인 경우)를 지원하기 위한 방법을 제공하기 위한것으로서, 제8도의 (a)에 도시된 바와 같이 제1 슬라이스가 8 x 4의 블럭 1-1, 블럭 1-2, 블럭 1-3, 블럭 1-4,...로 이어지고, 제2 슬라이스가 8 x 4의 블럭 2-1, 블럭 2-2, 블럭 2-3, 블럭 2-4,...로 이어지며,제3 슬라이스가 8 x 4 의 블럭 3-1, 블럭 3-2, 블럭 3-3, 블럭 3-4,...로 이어질 경우에, 제9도의 (a)에 도시된 바와 같이 블럭 1-1, 블럭 2-1,블럭 3-1..., 블럭 1-2, 블럭 2-2, 블럭 3-3,... 순으로, 수직방향으로 읽어들인 후 제9도의 (b)에 도시된 바와 같이, 90°회전시켜 4 x 8 블럭이 되게 하고, 따라서 회전된 블럭간에 연속부분(d)이 발생하도럭 한다.That is, the present invention uses a commercial chip that supports only the horizontal 1/2 mode (when the horizontal direction is 1/2 of the vertical direction, such as 4 x 8 and 8 x 16, as described in the prior art). To support the vertical 1/2 mode (when the size of the vertical direction is 1/2 of the horizontal direction such as 8 x 4 and 16 x 8), which is often used for motion estimation of field pictures. As shown in FIG. 8A, the first slice is followed by 8 × 4 blocks 1-1, block 1-2, block 1-3, block 1-4, ... 2 slices lead to 8 x 4, Block 2-1, Block 2-2, Block 2-3, Block 2-4, ..., and 3rd slice to 8 x 4, Block 3-1, Block 3- 2, block 3-3, block 3-4, ..., block 1-1, block 2-1, block 3-1 ..., block as shown in FIG. 1-2, block 2-2, block 3-3, ..., then read in the vertical direction and shown in FIG. Thus, the presented by rotating 90 ° 4 x 8 blocks described, and thus a continuous part (d) will occur between the rotated block and also trucks.
이와 같은 본 발명의 방법을 구현하기 위한 장치의 구성은 제10도에 도시된 바와 같이, 영상데이타를 입력받아 현 프레임 픽쳐의 데이타를 저장하고 있는 현 프레임 메모리(1)와; 상기 현 프레임 메모리(1)로부터 입력된 픽쳐의 데이타를 지연시켜 이전 프레임의 데이타를 저장하고 있는 이전 프레임 메모리(2); 상기 현 프레임 메모리(1)로부터 소정크기의 레퍼런스 블럭을 입력하여 회전시키는 제 1 데이타 형성기(3); 상기 이전 프레임 메모리 (2)으로부터 소정 크기의 서치 윈도우 데이타를 입력하여 회전시키는 제2 데이타 형성기(4); 상기 제 1 데이타 형성기(3)로부터 레퍼런스 블럭의 픽셀 데이타를 입력 받고, 상기 제2 데이타 형성기(4)로부터 서치 윈도우의 픽셀 데이타를 입력받아 움직임 벡터와 디스토션을 산출하는 움직임 추정기(5); 및 수직 1/2 모드의 데이타 포맷을 수평 1/2 모드의 데이타 포맷으로 변환되도록 상기 제1 및 제2 데이타 형성기(3,4)를 제어하고, 소정의 레퍼런스 블럭에 대해 움직임을 추정하도록 상기 움직임 추정기(5)를 제어하는 제어기 (6)로 구성되어 있다.As shown in FIG. 10, the apparatus for implementing the method of the present invention comprises a current frame memory 1 which receives image data and stores data of the current frame picture; A previous frame memory (2) for storing data of a previous frame by delaying data of a picture input from the current frame memory (1); A first data generator (3) for inputting and rotating a reference block of a predetermined size from the current frame memory (1); A second data generator (4) for inputting and rotating search window data of a predetermined size from the previous frame memory (2); A motion estimator (5) which receives pixel data of a reference block from the first data generator (3), receives pixel data of a search window from the second data generator (4), and calculates a motion vector and a distortion; And controlling the first and second data generators 3 and 4 to convert the data format of the vertical 1/2 mode to the data format of the horizontal 1/2 mode and to estimate the motion for a predetermined reference block. It consists of a controller 6 that controls the estimator 5.
상기와 같이 구성되는 본 발명의 장치에서 움직임 추정기(5)는 에스지에스사의 STI3220칩으로 구현되며, 이 칩의 동작은 종래기술에서 이미 설명한 바와 같이, X포트로 8비트의 레퍼런스 픽셀을 입력받고, A포트, B포트, C포트로 이전 프레임 픽쳐에 해당 레퍼런스 블럭의 서치 윈도우 영격에 해당되는 픽셀 데이타를 입력받아 이니셜라이제이션 시퀀스와 블럭 시퀀스를 수행하여 움직임 백터와 디스토션을 산출한 후 입출력(IOB) 포트를 통해 출력한다.In the apparatus of the present invention configured as described above, the motion estimator 5 is implemented by STI's STI3220 chip, and the operation of the chip receives an 8-bit reference pixel through the X port, as described in the related art. After inputting pixel data corresponding to the search window area of the reference block to the previous frame picture with port A, port B, and port C, performing initialization sequence and block sequence to calculate a motion vector and distortion, and then input / output (IOB). Output through the port.
이때, 상기 현제 프레임 메모리(1)에는 8 X 4 블럭 및 이들 블럭이 수평 라인상에 연이어 형성된 슬라이스들이 제8도의 (a)에 도시된 바와 같이 배열되어 저장되어 있으며, 제1 데이타 형성기(3)는 상기 현프레임 메모리(1)로부터 수직방향으로 블럭들을 읽어와 회전시켜 4 x 8 블럭을 만든다. 여기서, 회전되 블럭들 간에도 제9도의 (b)에 도시된 바와 같이 연속된 부분이 형성되므로, 움직임 추정기(5)가 지원하는 파이프라인 모드를 이용할 수 있다.At this time, in the current frame memory 1, 8 X 4 blocks and slices formed in succession on a horizontal line are arranged and stored as shown in (a) of FIG. 8, and the first data generator 3 Reads blocks from the current frame memory 1 in the vertical direction and rotates them to form 4 x 8 blocks. Here, since the continuous blocks are formed between the rotated blocks as shown in FIG. 9B, the pipelined mode supported by the motion estimator 5 can be used.
또한, 제2 데이타 형성기(4)는 이전 프레임 메모리(2)로부터 이전 픽쳐에서 특정 레퍼런스 블럭에 따른 서치 윈도우에 해당되는 픽셀 데이타를 입력받아 움직임 추정기(5)에 공급하는데, 제1 데이타 형성기와 마찬가지로 수직 1/2 모드의 데이타 포맷을 수평 1/2 모드의 데이타 포맷으로 변환한다. 이와 같이 제1 데이타 형성기 및 제2 데이타 형성기에서 데이타 포맷을 변환하는 것은 메모리에 저장된 픽셀 데이타를 읽어오는 순서를 변환시킴으로써 가능하다.In addition, the second data generator 4 receives pixel data corresponding to a search window according to a specific reference block in the previous picture from the previous frame memory 2 and supplies the pixel data to the motion estimator 5, similarly to the first data generator. Convert the data format of the vertical 1/2 mode to the data format of the horizontal 1/2 mode. As such, converting the data format in the first data generator and the second data generator is possible by changing the order of reading the pixel data stored in the memory.
이상에서 살펴 본 바와 같이, 본 발명에 따른 움직임 추정 방법 및 장치에 의해서, 수평 1/2 모드만을 지원하는 상용칩을 이용하여 필드픽쳐의 움직임 추정에서 자주 사용되는 수직 1/2 모드를 지원할 수 있으며, 특히 데이타의 연속성을 깨뜨리지 않아 파이프라인 모드로 처리 될 수 있으므로 움직임 추정의 처리속도를 개선할 수 있는 효과가 있다.As described above, the motion estimation method and apparatus according to the present invention can support the vertical 1/2 mode which is frequently used in the motion estimation of the field picture using a commercial chip that supports only the horizontal 1/2 mode. In particular, since it can be processed in pipeline mode without breaking the continuity of data, it can improve the processing speed of motion estimation.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950013989A KR100195694B1 (en) | 1995-05-30 | 1995-05-30 | Motion estimation method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950013989A KR100195694B1 (en) | 1995-05-30 | 1995-05-30 | Motion estimation method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960043920A KR960043920A (en) | 1996-12-23 |
KR100195694B1 true KR100195694B1 (en) | 1999-06-15 |
Family
ID=19415975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950013989A KR100195694B1 (en) | 1995-05-30 | 1995-05-30 | Motion estimation method and apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100195694B1 (en) |
-
1995
- 1995-05-30 KR KR1019950013989A patent/KR100195694B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR960043920A (en) | 1996-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0446001B1 (en) | Motion vector detection circuit used in hierarchical processing of moving picture signal | |
JP3089165B2 (en) | Motion vector search device | |
KR0167767B1 (en) | Motion detecting circuit for video images | |
US20080204602A1 (en) | Region-Based Motion Estimation Using Dynamic Asoect Ration Of Region | |
US20080192827A1 (en) | Video Processing With Region-Based Multiple-Pass Motion Estimation And Update Of Temporal Motion Vector Candidates | |
US5214751A (en) | Method for the temporal interpolation of images and device for implementing this method | |
WO2000060874A1 (en) | Motion estimation | |
KR0180170B1 (en) | A method of and an apparatus for estimating motion | |
KR940027563A (en) | Image data motion estimation method and apparatus for high definition television (HDTV) | |
JP4597103B2 (en) | Motion vector search method and apparatus | |
US6411652B1 (en) | Motion estimation | |
KR100195694B1 (en) | Motion estimation method and apparatus | |
JP3299671B2 (en) | Image motion detection device | |
US6990149B2 (en) | Circuit and method for full search block matching | |
JP2009070055A (en) | Block matching circuit and data updating method | |
JPH08315151A (en) | Method and circuit arrangement for undersampling in case of movement evaluation | |
KR100195697B1 (en) | Motion estimation method and apparatus | |
KR100195695B1 (en) | A field picture motion estimator | |
EP1420595B1 (en) | Motion vector selection in a video motion estimator based on a preferred reference point | |
KR970011540B1 (en) | Image correction system for a camcorder | |
JPH08123784A (en) | Method and device for processing data | |
US6968011B2 (en) | Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices | |
KR100195696B1 (en) | A frame picture motion estimator | |
KR100359091B1 (en) | Motion estimation device | |
US20080246643A1 (en) | Technique For Efficient Video Re-Sampling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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 |