KR100318471B1 - Apparatus and method for block matching motion estimation using table lookup vector quantization - Google Patents

Apparatus and method for block matching motion estimation using table lookup vector quantization Download PDF

Info

Publication number
KR100318471B1
KR100318471B1 KR1019980028964A KR19980028964A KR100318471B1 KR 100318471 B1 KR100318471 B1 KR 100318471B1 KR 1019980028964 A KR1019980028964 A KR 1019980028964A KR 19980028964 A KR19980028964 A KR 19980028964A KR 100318471 B1 KR100318471 B1 KR 100318471B1
Authority
KR
South Korea
Prior art keywords
block
difference
motion estimation
subblocks
vector quantization
Prior art date
Application number
KR1019980028964A
Other languages
Korean (ko)
Other versions
KR20000008897A (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 KR1019980028964A priority Critical patent/KR100318471B1/en
Publication of KR20000008897A publication Critical patent/KR20000008897A/en
Application granted granted Critical
Publication of KR100318471B1 publication Critical patent/KR100318471B1/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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream

Landscapes

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

Abstract

1. 청구 범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

본 발명은 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 장치 및 그 방법에 관한 것임.The present invention relates to an apparatus and method for block matching motion estimation using table lookup vector quantization.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

본 발명은 움직임 추정 속도를 향상시키기 위해 테이블 룩업 벡터 양자화를 이용하여 부블록들간의 차이를 미리 계산하여 메모리에 저장시킨 후 움직임 추정시 메모리에 저장된 계산값을 이용하여 고속 블록 정합 움직임 벡터를 추정할 수 있는 블록 정합 움직임 추정 장치 및 그 방법을 제공하고자 함.In order to improve the motion estimation speed, the present invention uses a table lookup vector quantization to calculate a difference between subblocks in advance and store them in a memory, and then estimate fast block matched motion vectors using calculated values stored in the memory. The present invention provides a block matched motion estimation apparatus and a method thereof.

3. 발명의 해결방법의 요지3. Summary of Solution to Invention

본 발명은, 블록 정합 움직임 추정 장치에 적용되는 블록 정합 움직임 추정 방법에 있어서, 움직임 추정 탐색 영역내, 이전 프레임의 블록 및 움직임 추정하고자 하는 현재 프레임의 블록을 각각 다수의 부블록으로 분할하는 제 1 단계; 분할된 탐색영역내 상기 이전 프레임의 블록내 각 부블록들을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장하는 제 2 단계; 상기 현재 프레임의 블록내 부블록들을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장하는 제 3 단계; 테이블 룩업 벡터 양자화된 상기 이전 프레임의 블록내 부블록과 상기 현재 프레임의 블록내 부블록의 부블록간 차이값들을 읽고 이 차이값들을 합하여 블록간 차이를 계산하는 제 4 단계; 및 계산된 상기 현재 프레임 및 상기 이전 프레임의 블록간 차이중 가장 작은 블록간 차이를 찾아내어 해당 공간 위치 차이를 전송하는 제 5 단계를 포함함.The present invention provides a block-matched motion estimation method applied to a block-matched motion estimation apparatus, comprising: a first block for dividing a block of a previous frame and a block of a current frame to be motion estimated into a plurality of subblocks in a motion estimation search region; step; A second step of storing a vector quantization index by quantizing a table lookup vector of each subblock in the block of the previous frame in the divided search region; A third step of storing a vector quantization index by quantizing a sub-blocks in a block of the current frame by a table lookup vector; A fourth step of reading difference values between subblocks of a subblock in the block of the previous frame and a subblock in the block of the current frame and summing the difference values to calculate an interblock difference; And a fifth step of finding the smallest inter-block difference among the calculated inter-block differences of the current frame and the previous frame and transmitting the corresponding spatial position difference.

4. 발명의 중요한 용도4. Important uses of the invention

본 발명은 움직임 추정 등에 이용됨.The present invention is used for motion estimation and the like.

Description

테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 장치 및 그 방법{Apparatus and method for block matching motion estimation using table lookup vector quantization}Apparatus and method for block matching motion estimation using table lookup vector quantization

본 발명은 움직임 추정 장치(Motion Estimator)의 속도를 증가시키기 위해 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 장치 및 그 방법에 관한 것이다.The present invention relates to a block matched motion estimation apparatus and method using table lookup vector quantization in order to increase the speed of the motion estimator.

도 1 은 종래의 두 블록간 차이 계산 방식을 나타낸 설명도이다.1 is an explanatory diagram showing a conventional method for calculating the difference between two blocks.

도면에 도시된 바와 같이, 종래의 움직임 추정 방법에서는 두 블록간의 차이를 계산하기 위하여 각 화소간의 차이의 절대값의 합(Sum Absolute Difference)(이하, "SAD"라 함) 또는 각 화소간의 차이의 제곱의 합(Sum Squared Difference)(이하, "SSD"라 함)을 사용하기 때문에 많은 계산량이 요구된다. 예를 들어, 한 블록이 L 라인 및 L 화소로 이루어진 경우(즉, 블록의 크기가 L×L인 경우) SAD를 이용하는 종래의 방법에서는 두 블록간의 차이를 계산하기 위하여 L2번의 뺄셈 연산,L2-1번의 덧셈 연산 및 L2번의 비교 연산이 요구되며, SSD를 이용하는 종래의 방법에서는 L2번의 곱셈 연산 및 L2-1번의 덧셈 연산이 요구된다.As shown in the figure, in the conventional motion estimation method, a sum of absolute value (hereinafter referred to as "SAD") of the difference between each pixel or the difference between each pixel in order to calculate the difference between two blocks. Because of the sum squared difference (hereinafter referred to as "SSD"), a large amount of computation is required. For example, if a block is composed of L lines and L pixels (i.e., the block size is L × L), the conventional method using SAD uses L 2 subtraction operations, L to calculate the difference between the two blocks. 2-1 requires a single addition operation and comparison operation times L 2 is, in the conventional method using the SSD L 2 is a single multiply operation and add operations L 2-1 times are required.

또한, 움직임 추정 탐색 영역이 수평으로 +-I 화소이고, 수직으로 +-J 화소이며, 정수 정확도의 움직임 추정(integer-accuracy motion estimation)을 수행하는 경우(즉, 후보 움직임 벡터의 수가 (2×I+1)×(2×J+1)인 경우), 각 후보 움직임 벡터에서의 SAD를 구하기 위해서는 한 화소당 대략 각각 (2×I+1)×(2×J+1)번씩의 덧셈, 뺄셈 및 비교 연산이 필요하며, 후보 움직임 벡터들 중 최적의 움직임 벡터를 찾기 위해서는 한 블록당 (2×I+1)×(2×J+1)-1번의 비교 연산이 필요하다. 예를 들어, 움직임 추정 단위 블록의 크기가 16×16, 움직임 추정 탐색영역이 수평으로 +-16, 수직으로 +-16 화소인 경우, 한 화소당 대략 1089번씩의 덧셈과 뺄셈 및 1093번의 비교 연산이 필요하다.Further, when the motion estimation search region is horizontally + -I pixels, vertically + -J pixels, and performs integer-accuracy motion estimation (i.e., the number of candidate motion vectors is (2x). In the case of I + 1) × (2 × J + 1), in order to obtain the SAD in each candidate motion vector, approximately (2 × I + 1) × (2 × J + 1) additions per pixel, respectively, Subtraction and comparison operations are required, and (2 × I + 1) × (2 × J + 1) −1 comparison operations are required per block to find an optimal motion vector among candidate motion vectors. For example, if the size of the motion estimation unit block is 16 × 16, the motion estimation search area is + -16 horizontally, and + -16 vertically, the number of additions and subtractions is approximately 1089 times per pixel and 1093 comparison operations. This is necessary.

따라서, 종래의 움직임 추정 방법에서는 두 블록간의 차이를 계산하기 위하여 각 화소간 SAD 및 각 화소간 SSD 방식을 이용하기 때문에 많은 계산량이 요구되어 저비용의 실시간 구현에 많은 제약이 따르는 문제점이 있었다.Therefore, in the conventional motion estimation method, since the SAD between each pixel and the SSD between each pixel are used to calculate the difference between the two blocks, a large amount of computation is required, and thus there is a problem in that a low cost real-time implementation has many limitations.

본 발명은, 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 움직임 추정 속도를 향상시키기 위해 테이블 룩업 벡터 양자화를 이용하여 부블록들간의 차이를 미리 계산하여 메모리에 저장시킨 후 움직임 추정시 메모리에 저장된 계산값을 이용하여 고속 블록 정합 움직임 벡터를 추정할 수 있는 블록 정합 움직임 추정 장치 및 그 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems. In order to improve the motion estimation speed, the difference between the subblocks is pre-calculated using the table lookup vector quantization and stored in a memory, and then stored in the memory during motion estimation. An object of the present invention is to provide a block matched motion estimation apparatus and a method for estimating a fast block matched motion vector using a calculated value.

도 1 은 종래의 두 블록간 차이 계산 방식을 나타낸 설명도.1 is an explanatory diagram showing a conventional method for calculating the difference between two blocks.

도 2 는 일반적인 블록 정합 움직임 추정 구획도.2 is a general block matching motion estimation section.

도 3 은 본 발명에 따른 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 장치의 일실시예 구성도.3 is a block diagram of a block matching motion estimation apparatus using table lookup vector quantization according to an embodiment of the present invention.

도 4 는 본 발명에 따른 두 블록간 차이 계산 방식을 나타낸 일실시예 설명도.Figure 4 is an embodiment explanatory diagram showing a difference calculation method between two blocks according to the present invention.

도 5 는 본 발명에 따른 움직임 추정 단위인 블록과 벡터 양자화 단위인 부블록간의 관계를 나타낸 일실시예 설명도.5 is a diagram illustrating a relationship between a block that is a motion estimation unit and a subblock that is a vector quantization unit, according to an embodiment of the present invention.

도 6 은 본 발명에 따른 각 부블록의 계층 벡터 양자화를 나타낸 일실시예 설명도.6 is a diagram illustrating an embodiment of hierarchical vector quantization of each subblock according to the present invention;

도 7 은 본 발명에 따른 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 방법에 대한 일실시예 흐름도.7 is a flowchart illustrating a block matched motion estimation method using table lookup vector quantization according to the present invention.

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

301 : 주소 생성기 302 : 제 1 프레임 메모리301: address generator 302: first frame memory

303 : 제 2 프레임 메모리 304 : 제 1 테이블 메모리303: second frame memory 304: first table memory

305 : 블록 버퍼 306 : 제 2 테이블 메모리305: block buffer 306: second table memory

307 : 가산기 308 : 비교기307: adder 308: comparator

상기의 목적을 달성하기 위한 본 발명의 장치는, 블록 정합 움직임 추정 장치에 있어서, 이전 프레임 및 현재 프레임의 블록내 부블록을 테이블 룩업 벡터 양자화하기 위한 테이블을 저장하기 위한 제1 저장 수단; 이전 복호화된 프레임 및 상기 제1 저장 수단의 출력에 따라 상기 이전 복호화된 프레임의 벡터 양자화 인덱스를 저장하기 위한 제2 저장 수단; 부호화할 현재 프레임을 저장하기 위한 제3 저장 수단; 상기 제1 및 제3 저장 수단의 출력에 따라 상기 현재 프레임의 블록 및 그 블록내 부블록들의 벡터 양자화 인덱스를 저장하기 위한 제4 저장 수단; 상기 제2 및 제4 저장 수단의 출력에 따라 상기 제1 저장 수단의 데이터를 읽거나 상기 제2 내지 제4 저장 수단에 데이터를 쓰기 위해 주소를 생성하여 지정하기 위한 주소 생성 수단; 상기 제2 내지 제4 저장 수단의 출력에 따라 상기 테이블 룩업 벡터 양자화된 상기 이전 프레임의 블록내 부블록과 상기 현재 프레임의 블록내 부블록간의 차이를 읽어낼 수 있도록 미리 계산된 부블록간 차이값들을 저장하기 위한 제5 저장 수단; 상기 제5 저장 수단의 출력에 따라 상기 이전 및 현재 프레임의 블록간 차이를 구하기 위해 상기 이전 및 현재 프레임의 블록내 부블록의 차이를 더하기 위한 연산 수단; 및 상기 연산 수단으로부터의 계산된 블록간 차이값과 기준값을 비교하여 공간적 위치 차이를 획득하기 위한 비교 수단을 포함하여 이루어진것을 특징으로 한다.An apparatus of the present invention for achieving the above object comprises: a first block means for storing a table for quantizing a table lookup vector of subblocks in a block of a previous frame and a current frame; Second storage means for storing a vector quantization index of the previously decoded frame according to a previously decoded frame and the output of the first storage means; Third storage means for storing a current frame to be encoded; Fourth storage means for storing a vector quantization index of a block of the current frame and subblocks within the block according to the output of the first and third storage means; Address generating means for generating and specifying an address for reading data of the first storage means or writing data to the second to fourth storage means in accordance with the output of the second and fourth storage means; The difference value between subblocks precomputed to read the difference between the subblock in the block of the previous frame and the subblock in the block of the current frame according to the output of the second to fourth storage means. Fifth storage means for storing the data; Computing means for adding a difference between subblocks in blocks of the previous and current frames to obtain a difference between blocks of the previous and current frames according to the output of the fifth storage means; And comparing means for obtaining the spatial position difference by comparing the calculated inter-block difference value and the reference value from the computing means.

그리고, 본 발명은 블록 정합 움직임 추정 장치에 적용되는 블록 정합 움직임 추정 방법에 있어서, 움직임 추정 탐색 영역내, 이전 프레임의 블록 및 움직임 추정하고자 하는 현재 프레임의 블록을 각각 다수의 부블록으로 분할하는 제 1 단계; 분할된 탐색영역내 상기 이전 프레임의 블록내 각 부블록들을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장하는 제 2 단계; 상기 현재 프레임의 블록내 부블록들을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장하는 제 3 단계; 테이블 룩업 벡터 양자화된 상기 이전 프레임의 블록내 부블록과 상기 현재 프레임의 블록내 부블록의 부블록간 차이값들을 읽고 이 차이값들을 합하여 블록간 차이를 계산하는 제 4 단계; 및 계산된 상기 현재 프레임 및 상기 이전 프레임의 블록간 차이중 가장 작은 블록간 차이를 찾아내어 해당 공간 위치 차이를 전송하는 제 5 단계를 포함하여 이루어진 것을 특징으로 한다.The present invention provides a block matched motion estimation method applied to a block matched motion estimation apparatus, comprising: dividing a block of a previous frame and a block of a current frame to be motion estimated into a plurality of subblocks in a motion estimation search region; Stage 1; A second step of storing a vector quantization index by quantizing a table lookup vector of each subblock in the block of the previous frame in the divided search region; A third step of storing a vector quantization index by quantizing a sub-blocks in a block of the current frame by a table lookup vector; A fourth step of reading difference values between subblocks of a subblock in the block of the previous frame and a subblock in the block of the current frame and summing the difference values to calculate an interblock difference; And a fifth step of finding the smallest inter-block difference among the calculated differences between the blocks of the current frame and the previous frame and transmitting the corresponding spatial position difference.

본 발명은 움직임 추정기(motion estimator)의 블록(macroblock) 차이 계산 부분에 테이블 룩업 벡터 양자화(table lookup vector quantization) 기법을 도입하여 움직임 추정기의 속도를 증가시키는 것이다.The present invention introduces a table lookup vector quantization technique to a macroblock difference calculation part of a motion estimator to increase the speed of the motion estimator.

이를 위해, 본 발명에서는 대표적인 부블록들간의 차이를 미리 계산하여 메모리에 저장시킨 후 움직임 추정시에 사용하여 움직임 추정기에서 요구되는 많은 계산량을 테이블 룩업으로 대체함으로써 움직임 추정기의 속도를 향상시킬 수 있다.To this end, in the present invention, the speed of the motion estimator can be improved by precomputing the difference between the representative subblocks and storing it in a memory and using it for motion estimation by replacing a large amount of computation required by the motion estimator with a table lookup.

상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2 는 일반적인 블록 정합 움직임 추정 구획도이다.2 is a general block matched motion estimation partition diagram.

도면에 도시된 바와 같이, 현재 프레임의 움직임을 추정하고자 하는 블록은 다수의 두 블록간 차이 계산부에 공통적으로 사용되므로 다수의 두 블록간 차이 계산부에서 중복적으로 벡터 양자화할 필요가 없고, 다수의 두 블록간 차이 계산부중 하나의 두블록간 차이 계산부에서만 벡터 양자화한 후 나머지 두블록간 차이 계산부들에서 그 양자화 인덱스들을 이용할 수 있다.As shown in the figure, the block to estimate the motion of the current frame is commonly used in the difference calculation unit between a plurality of two blocks, there is no need to duplicate vector quantization in the difference calculation unit between a plurality of blocks, The quantization indices may be used by the vector quantization only in one difference calculation unit between two blocks of the two block differences.

현재 움직임 추정하고자 하는 블록의 움직임 추정 탐색 영역이 겹치므로(overlapped), 이전 프레임내 정수 위치의 모든 부블록들을 미리 벡터 양자화한 후 그 양자화 인덱스들을 메모리에 저장하여 두었다가 각 움직임 추정 탐색 영역내에 해당되는 양자화 인덱스들만을 메모리로부터 읽어서 사용할 수 있다. 물론 사용 가능한 메모리의 양이 충분하지 않을 경우에는 이전 영상 프레임의 일부분에 해당되는 양자화 인덱스들만 저장할 수도 있고, 각 움직임 추정 블록마다 새로이 양자화 인덱스를 구하여 사용할 수도 있다.Since the motion estimation search areas of the block to be estimated for current motion are overlapped, all subblocks of integer positions in the previous frame are vector quantized in advance, and the quantization indices are stored in a memory, and the corresponding motion estimation search areas are stored in the memory. Only quantization indices can be read from memory and used. Of course, when the amount of available memory is not sufficient, only quantization indexes corresponding to a part of the previous image frame may be stored, or a new quantization index may be obtained and used for each motion estimation block.

도 3 은 본 발명에 따른 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 장치의 일실시예 구성도이다.3 is a block diagram of an apparatus for estimating block matched motion using table lookup vector quantization according to an embodiment of the present invention.

도면에 도시된 바와 같이, 본 발명에 따른 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 장치는, 각 메모리에 있는 데이터를 읽거나 각 메모리에 데이터를 쓰기 위해 메모리 주소를 생성하여 지정하기 위한 주소 생성기(301), 이전 복호화된 프레임 및 이전 복호화된 프레임의 벡터 양자화 인덱스를 저장하기 위한 제 1 프레임 메모리(302), 부호화할 현재 프레임을 저장하기 위한 제 2 프레임 메모리(303), 이전 프레임 및 현재 프레임 블록의 각 부블록을 벡터 양자화하는데 필요한 테이블들을 저장하기 위한 제 1 테이블 메모리(304), 움직임 추정하고자 하는 현재 프레임의 블록 및 그 블록내 부블록들의 양자화 인덱스를 저장하기 위한 블록 버퍼(305), 벡터 양자화된 이전 프레임 및 현재 프레임의 부블록간의 차이를 미리 계산하여 계산값을 저장하기 위한 제 2 테이블 메모리(306), 블록간의 차이를 계산하기 위해 부블록들간의 차이를 가산하기 위한 가산기(307) 및 움직임 탐색 영역내 후보 블록과 현재 블록을 비교하여 가장 작은 블록 차이를 가지는 후보 블록을 찾아내기 위한 비교기(308)를 구비한다.As shown in the drawing, a block matched motion estimation apparatus using table lookup vector quantization according to the present invention includes an address generator for generating and designating a memory address for reading data in each memory or writing data to each memory. 301, a first frame memory 302 for storing a vector quantization index of a previous decoded frame and a previous decoded frame, a second frame memory 303 for storing a current frame to be encoded, a previous frame and a current frame block A first table memory 304 for storing the tables necessary to vector quantize each subblock of s, a block buffer 305 for storing the block of the current frame to be motion estimated and the quantization index of the subblocks in the block, vector Precalculates the difference between the quantized previous frame and the subblock of the current frame and stores the calculated value Second table memory 306 for calculating, an adder 307 for adding the difference between subblocks for calculating the difference between blocks, and a candidate having the smallest block difference by comparing the current block with a candidate block in the motion search region. Comparator 308 for finding the block.

도면에 도시된 바와 같이, 제 1 프레임 메모리(302)가 복호화된 이전 프레임을 읽어들여 저장하고, 주소 생성기(301)가 주소 1을 지정하여 제 1 프레임 메모리(302)에 저장된 이전 프레임의 화소값(데이터 1)을 읽는다.As shown in the figure, the first frame memory 302 reads and stores the decoded previous frame, and the address generator 301 designates the address 1 to store the pixel value of the previous frame stored in the first frame memory 302. Read (data 1)

이후, 주소 생성기(301)가 읽어온 이전 프레임의 화소값을 제 1 테이블 메모리(304)에 주소 2로 지정하여 이전 프레임내 정수 위치의 모든 부블록들을 테이블 룩업 벡터 양자화한 벡터 양자화 인덱스를 제 1 프레임 메모리(302)에 저장한다.Subsequently, the first table memory 304 assigns the pixel value of the previous frame read by the address generator 301 as address 2 to obtain a vector quantization index obtained by quantizing a table lookup vector of all subblocks of integer positions in the previous frame. The frame memory 302 is stored.

다음으로, 제 2 프레임 메모리(303)가 부호화할 현재 프레임을 읽어들여 저장하고, 주소 생성기(301)에 의해 지정된 주소 3을 이용하여 블록 버퍼(305)가 제 2 프레임 메모리(303)로부터 현재 프레임의 움직임 추정하고자 하는 블록(데이터 3)을 읽어 저장한다.Next, the second frame memory 303 reads and stores the current frame to be encoded, and the block buffer 305 uses the address 3 specified by the address generator 301 to store the current frame from the second frame memory 303. Read and store the block (data 3) to which the motion is to be estimated.

이어서, 주소 생성기(301)가 블록 버퍼(305)에 주소 4를 지정하여 현재 프레임의 블록내 화소값(데이터 4)을 읽고, 이 값을 제 1 테이블 메모리(304)에 주소 2로 지정하여 현재 프레임의 블록내의 모든 부블록들을 테이블 룩업 벡터 양자화한 벡터 양자화 인덱스(데이터 5)를 블록 버퍼(305)에 저장한다.The address generator 301 then assigns address 4 to the block buffer 305 to read the pixel value (data 4) in the block of the current frame, and assigns this value to the first table memory 304 as address 2 to present it. A vector quantization index (data 5) in which a table lookup vector quantizes all subblocks in a block of a frame is stored in the block buffer 305.

이후에, 제 2 테이블 메모리(306)가 이전 프레임의 블록내 부블록의 벡터 양자화 인덱스(데이터 6) 및 현재 프레임의 블록내 부블록의 벡터 양자화 인덱스(데이터 7)를 이용하여 부블록간의 차이를 읽어낸다.Thereafter, the second table memory 306 uses the vector quantization index (data 6) of the subblock in the block of the previous frame and the vector quantization index (data 7) of the subblock in the block of the current frame to determine the difference between the subblocks. Read it.

이후, 가산기(307)가 제 2 테이블 메모리(306)로부터 읽어낸 부블록간의 차이(데이터 8)를 더하여 블록간 차이를 계산하고, 비교기(308)가 가산기(307)에서 계산된 블록간 차이(데이터 9)가 최소 블록 차이인지를 비교하여 가장 작은 차이를 갖는 후보 블록과 현 블록의 공간적 위치 차이(데이터 10)를 찾아낸다. 찾아진 공간적 위치 차이가 바로 현 블록의 움직임 벡터이며 이는 복호기로 전송된다.Then, the adder 307 calculates the interblock difference by adding the difference between the subblocks (data 8) read out from the second table memory 306, and the comparator 308 calculates the interblock difference calculated by the adder 307 ( By comparing whether the data 9 is the minimum block difference, the spatial location difference (data 10) of the candidate block having the smallest difference and the current block is found. The spatial position difference found is the motion vector of the current block, which is transmitted to the decoder.

도 4 는 본 발명에 따른 두 블록간 차이 계산 방식을 나타낸 일실시예 설명도로서, 블록의 크기가 8×8, 부블록의 크기가 4×2인 경우에 관한 것이다.4 is a diagram illustrating an example of calculating a difference between two blocks according to the present invention, and relates to a case where a block size is 8x8 and a subblock is 4x2.

움직임 추정 방법은, 먼저 움직임 추정 참색영역내 임의 블록(도 4의 v) 및 움직임 추정하고자 하는 현재 블록(도 4의 u)을 각각 여러 부블록(subblock)으로 분할하는 A기능(도 4의 a), 분할된 탐색 영역내 임의 블록(도 4의 v)의 각 부블록들을 벡터 양자화하는 B기능(도 4의 b)과 현재 블록(도 4의 u)의 부블록들을 벡터 양자화하는 C기능(도 4의 c), 그리고 B기능과 C기능으로부터 양자화 인덱스(quantization index)들을 받아 미리 계산되어 메모리에 저장되어 있는 부블록 대표값들간의 차이값을 읽는 D기능(도 4의 d) 및 각 부블록들에 대한 차이값들을 더하는 E기능(예를 들면, 도 4의 e)으로 구성된다.The motion estimation method firstly divides an arbitrary block (v in FIG. 4) and a current block (u in FIG. 4) to be estimated into several subblocks (a in FIG. 4). ), A function B for vector quantizing each subblocks of an arbitrary block (v in FIG. 4) and a function C for vector quantizing subblocks of the current block (u in FIG. 4) in the divided search region. C) of FIG. 4 and D function (d of FIG. 4) for reading the difference between sub-block representative values pre-computed and stored in memory after receiving quantization indexes from B and C functions. E function (eg, e of FIG. 4) that adds the difference values for the blocks.

도면에 도시된 바와 같이, 두 블록간의 차이를 계산하기 위하여 먼저 각 입력 블록들을 두 블록으로 분해하고, 움직임 추정 탐색 영역내 임의 위치의 블록(v) 역시 움직임을 추정하고자 하는 현 프레임의 블록(u)과 같은 방법으로 분해된다. 분해된 각 부블록은 테이블 룩업 벡터 양자기(table lookup vector quantizer)를 통하여 벡터 양자화되며, 테이블 룩업 벡터 양자기는 계산없이 완전히 테이블 룩업(table lookup)으로만 이루어진다. 현 블록(u) 및 탐색영역내 임의 위치의 블록(v)은 서로 다른 테이블을 이용하여 벡터 양자화될 수 있다. 도 6의 경우처럼 부블록이 8개의 화소로 이루어진 경우 하나의 부블록을 벡터 양자화하기 위해서는 7번의 테이블 룩업(즉, 한 화소당 7/8번의 테이블 룩업)이 필요하다. 일반적으로 부블록의 크기가 M×N인 경우 한 화소당 평균 1-1/M×N번의 테이블 룩업이 필요하다. 테이블 룩업 계층 벡터 양자기의 설계 방법은 이미 발표된 여러 논문에서 자세히 설명되어 있다.As shown in the figure, in order to calculate the difference between the two blocks, each input block is first decomposed into two blocks, and a block v of the current frame for which the motion is to be estimated is also determined. Decompose in the same way. The decomposed subblocks are vector quantized through a table lookup vector quantizer, and the table lookup vector quantizer is composed entirely of table lookups without calculation. The current block u and the block v at any position in the search region may be vector quantized using different tables. As shown in FIG. 6, when the subblock is composed of eight pixels, seven table lookups (ie, 7/8 table lookups per pixel) are required to vector quantize one subblock. In general, when the size of the subblock is M × N, an average of 1-1 / M × N table lookups is required per pixel. The design method of the table lookup layer vector quantum is described in detail in several published papers.

각 블록들이 벡터 양자화되면 두 입력 블록내에 동일한 위치에 있는 두 부블록의 벡터 양자화 인덱스들이 두 블록간의 SAD를 근사적으로 계산하기 위해 이용된다. 예를 들어, 현 블록내 가장 왼쪽 위에 있는 부블록을 u'11, 이전 블록내 동일한 위치의 부블록을 v'11이라 하고, 각 블록이 벡터 양자기에 의해 양자화된 인덱스 값을 각각 i, j라 하면, 두 블록 u'11과 v'11간의 SAD는 미리 저장해 놓은 테이블내의(i, j)번째 값인 t(i, j)로 근사된다. t(i, j)는 양자화 인덱스 i에 해당되는 대표 벡터 xi와 양자화 인덱스 j에 해당되는 대표 벡터 xj간의 SAD를 미리 저장하여 테이블에 저장해 놓은 값이다. 대표 벡터 xj, xi들은 메모리에 저장될 필요가 없으며 이 대표 벡터들을 구하는 방법은 이미 많은 논문에서 발표된 여러 벡터 양자기 설계 방법중 임의의 것을 이용할 수 있다.Once each block is vector quantized, the vector quantization indices of the two subblocks at the same location in the two input blocks are used to approximate the SAD between the two blocks. For example, a unit block at the top in the leftmost current block u as '11, the previous block within the unit block of the same location, v' 11, and the index value of the quantization by the self each block the vector quantity, each i, j Assuming that, the two blocks u '11 and v' between SAD 11 is approximated with (i, j) th value of t (i, j) in the place previously stored table. t (i, j) is a value stored in advance in the SAD between the representative vector x i corresponding to the quantization index i and the representative vector x j corresponding to the quantization index j and stored in the table. Representative vectors x j and x i do not need to be stored in memory, and the method of obtaining these representative vectors may use any of several vector quantizer design methods already published in many papers.

이렇게 근사화된 각 부블록들간의 SAD를 모두 더하면 두 입력 블록들간의 SAD를 근사적으로 계산할 수 있다. 도 5의 경우처럼 하나의 블록이 8개의 부블록으로 구성된 경우 이를 위해서는 8번의 테이블 룩업과 7번의 덧셈이 필요하다. 일반적으로 블록의 크기가 L×L이고, 부블록의 크기가 M×N인 경우 L/M × L/N번의 테이블 룩업과 L/M × L/N - 1번의 덧셈 연산이 필요하다. 전술한 바와 같이 제안하는 움직임 추정 방법은 상당한 계산량의 감소를 가져온다.By adding all the SADs between the approximated subblocks, the SAD between the two input blocks can be approximately calculated. As shown in FIG. 5, when one block is composed of eight subblocks, eight table lookups and seven additions are required for this purpose. In general, when the block size is L × L and the subblock size is M × N, L / M × L / N table lookups and L / M × L / N−1 addition operations are required. As described above, the proposed motion estimation method leads to a significant reduction in computation.

예를 들어, 움직임 추정 단위인 블록의 크기가 16×16, 양자화 단위인 부블록의 크기가 4×2, 움직임 추정 탐색 영역이 수평으로 +-16, 수직으로 +-16 화소인 경우, 한 화소당 평균 140번의 테이블 룩업, 132번의 덧셈 및 4번의 비교 연산이 필요하다. 이는 종래의 방법(화소당 1089번의 덧셈과 뺄셈 및 1093번의 비교 연산)에 비해 매우 적은 연산량이라 할 수 있다.For example, if the size of a block in motion estimation unit is 16 × 16, the size of a subblock in quantization unit is 4 × 2, and the motion estimation search region is + -16 horizontally and + -16 vertically, one pixel. An average of 140 table lookups, 132 additions, and 4 comparison operations are required per session. This is a very small amount of computation compared to the conventional method (1089 addition and subtraction per pixel and 1093 comparison operations).

본 발명은 전술한 바와 같은 실시예의 파라미터외의 값에 대해서도 적용이 가능하다. 즉 블록의 크기가 8×8, 16×16 또는 그 외의 크기에 대해서도 적용 가능하며, 부블록의 크기도 4×2외의 값을 사용하는 것이 가능하다. 부블록의 크기를크게 하면 움직임 추정 정확도가 떨어지는 대신 요구되는 계산량이 적어져 속도가 더욱 증가하며, 부블록의 크기를 작게 하면 움직임 추정 정확도는 증가하는 대신 종래 방법에 대한 속도 증가량이 감소하게 된다. 또한, SAD외에도 SSD 또는 그 이외의 블록 차이 잣대(block difference measure)가 사용될 수 있다.The present invention can be applied to values other than the parameters of the above-described embodiments. That is, the size of the block can be applied to 8x8, 16x16, or other sizes, and the size of the subblock can also be used other than 4x2. Increasing the size of the subblock increases the speed by decreasing the amount of computation required instead of decreasing the accuracy of the motion estimation, and decreasing the size of the subblock increases the speed increase for the conventional method instead of increasing the accuracy of the motion estimation. In addition to the SAD, an SSD or other block difference measure may be used.

본 발명은 전구간 탐색 움직임 추정 방법(full-search motion estimation) 뿐만 아니라 3단계 움직임 추정 방법(3 step motion estimation) 등 여러 기존의 고속 움직임 추정 방법에도 적용될 수 있다. 전구간 탐색 움직임 추정 방법 및 3 단계 움직임 추정 방법 등 종래 고속 움직임 추정 방법의 원리는 종래에 발표된 여러 논문에서 쉽게 찾아볼 수 있다.The present invention can be applied to various existing fast motion estimation methods such as full-search motion estimation method as well as three step motion estimation method. The principle of the conventional fast motion estimation method, such as the global search motion estimation method and the three-step motion estimation method, can be easily found in various published papers.

도 5 는 본 발명에 따른 움직임 추정 단위인 블록과 벡터 양자화 단위인 부블록간의 관계를 나타낸 일실시예 설명도로서, 블록의 크기가 8×8이고, 부블록의 크기가 4×2인 경우를 나타낸다.FIG. 5 is a diagram illustrating a relationship between a block, which is a motion estimation unit, and a subblock, which is a vector quantization unit, according to an embodiment of the present invention. Indicates.

도 6 은 본 발명에 따른 각 부블록의 계층 벡터 양자화를 나타낸 일실시예 설명도로서, 벡터 양자화될 부블록의 크기가 4×2인 경우를 나타낸다.FIG. 6 is an exemplary explanatory diagram illustrating hierarchical vector quantization of each subblock according to the present invention, and illustrates a case where the size of the subblock to be quantized vector is 4 × 2.

도 7 은 본 발명에 따른 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 방법에 대한 일실시예 흐름도이다.7 is a flowchart illustrating a block matched motion estimation method using table lookup vector quantization according to the present invention.

도면에 도시된 바와 같이, 본 발명에 따른 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 방법은, 먼저 복호화된 이전 프레임의 화소값을 읽고(701), 이전 프레임의 정수 위치의 부블록을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장하며(702), 현재 프레임의 블록을 읽고(703), 현재 프레임의 블록내 부블록을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장한다(704).As shown in the figure, the block matched motion estimation method using the table lookup vector quantization according to the present invention first reads the pixel value of the decoded previous frame (701), and converts the subblock of the integer position of the previous frame into a table lookup vector. Quantization stores a vector quantization index (702), reads a block of the current frame (703), and stores a vector quantization index by quantizing a table lookup vector of subblocks in the block of the current frame (704).

이후, 후보 블록내 부블록들의 벡터 양자화 인덱스를 읽고(705), 현 블록 및 후보 블록내 부블록들의 벡터 양자화 인덱스로부터 부블록간 차이값들을 읽으며(706), 부블록간 차이값들을 더하여 블록 차이값을 계산한다(707).Then, the vector quantization index of the subblocks in the candidate block is read (705), the subblock difference values are read from the vector quantization index of the current block and the subblocks in the candidate block (706), and the block difference is added by adding the difference values between the subblocks. The value is calculated (707).

다음으로, 계산된 블록 차이값이 최소 블록 차이인지를 판단하여(708), 최소 블록 차이이면 후보 블록과 현 블록의 공간적 차이를 저장하며(709), 최소 블록 차이가 아니면 탐색 영역내에 후보 블록이 더 남아있는지를 판단하여(710) 후보 블록이 더 남아있으면 다음 후보 블록내 부블록들의 벡터 양자화 인덱스를 읽고(711), 현 블록 및 후보 블록내 벡터 양자화 인덱스로부터 부블록간 차이값을 읽는 과정부터 반복 수행한다.Next, it is determined whether the calculated block difference value is the minimum block difference (708). If the minimum block difference is determined, the spatial difference between the candidate block and the current block is stored (709). If there are still more candidate blocks (710), if there are still more candidate blocks, the method reads the vector quantization indexes of the subblocks in the next candidate block (711), and reads the difference between the subblocks from the vector quantization indexes in the current block and the candidate blocks. Repeat it.

한편, 최소 블록 차이가 아니면 탐색 영역내에 후보 블록이 더 남아있는지를 판단하여(710), 후보 블록이 더 남아있지 않으면 공간적 위치 차이를 전송하고(712), 현재 프레임에 블록이 더 남아있는지를 판단하여(713) 현재 프레임에 블록이 더 남아있지 않으면 다음 프레임을 처리하고, 현재 프레임에 블록이 더 남아있으면 현재 프레임의 다음 블록을 읽으며(714) 현재 프레임의 블록내 부블록을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장하는 과정을 반복 수행한다.On the other hand, if it is not the minimum block difference, it is determined whether more candidate blocks remain in the search area (710), if there are no more candidate blocks, the spatial position difference is transmitted (712), and whether more blocks remain in the current frame If there are no more blocks in the current frame (713), the next frame is processed. If there are more blocks in the current frame, the next block of the current frame is read (714). The process of storing the vector quantization index is repeated.

이상에서와 같이, 본 발명에서 제안된 방법은 종래의 기술에 비해 움직임 추정을 위해 훨씬 더 적은 연산량만을 필요로 한다. 예를 들어, 움직임 추정 단위인블록의 크기가 16×16, 양자화 단위인 부블록의 크기가 4×2, 움지임 추정 탐색영역이 수평으로 +-16, 수직으로 +-16 화소인 경우, 종래의 방법에서는 대략 화소당 평균 1089번의 덧셈과 뺄셈 및 1093번의 비교 연산이 요구되었으나, 본 발명에서는 한 화소당 평균 140번의 테이블룩업, 132번의 덧셈 및 4번의 비교연산만이 필요하다. 현재 동영상 코덱의 많은 계산량이 움직임 추정기에서 비롯됨을 감안할 때, 이러한 연산량의 감소는 성능이 낮은 컴퓨터에서도 실시간 소프트웨어 동영상 코덱의 구현을 가능하게 하며, 하드웨어로 구현할 경우에도 소모 전력을 줄여 이동통신에서의 응용에 적합하다.As mentioned above, the method proposed in the present invention only requires much less computation amount for motion estimation as compared to the prior art. For example, when the size of a block, which is a motion estimation unit, is 16 × 16, the size of a subblock, which is a quantization unit, is 4 × 2, and the moving search region is + -16 pixels horizontally and + -16 pixels vertically, The method requires approximately 1089 additions and subtractions and 1093 comparison operations per pixel. However, in the present invention, only 140 table lookups, 132 additions, and 4 comparisons are required per pixel. Given that much of the video codec's current computation comes from the motion estimator, this reduction in the amount of computation enables real-time software video codec implementation even on low-performance computers. Suitable for

본 발명에서는 부블록간의 차이잣대를 미리 계산하여 테이블에 저장하여 놓으므로, 실시간으로 계산하기 어려운 복잡한 차이잣대의 사용이 가능하다. 따라서, 동영상 압축 성능을 높일 수 있는 새로운 차이잣대를 움직임 추정을 위해 사용하는 것이 용이하다.In the present invention, since the difference between sub-blocks is calculated in advance and stored in a table, it is possible to use a complicated difference measure that is difficult to calculate in real time. Therefore, it is easy to use a new standard for motion estimation that can improve video compression performance.

본 발명에서는 메모리의 양과 움직임 추정 성능간의 트레이드오프(trade-off) 및 움직임 속도 및 추정 성능간의 트레이드 오프가 가능하여, 데스크탑 컴퓨터, 노트북 컴퓨터, PDA 등 사용환경에 따라 움직임 추정기를 적응적으로 구현하는 것이 가능하다.In the present invention, a trade-off between the amount of memory and the motion estimation performance and the trade-off between the motion speed and the estimation performance are possible, so that the motion estimator can be adaptively implemented according to the usage environment such as a desktop computer, a notebook computer, and a PDA. It is possible.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the spirit of the present invention for those skilled in the art to which the present invention pertains, and the above-described embodiments and accompanying It is not limited to the drawing.

그러므로, 전술한 바와 같은 본 발명은, 움직임 추정을 위해 블록간의 차이를 실제로 계산하는 대신 메모리에 미리 저장되어 있는 값들을 읽어냄으로써 움직임 추정시 필요한 계산량을 감소시킬 수 있는 효과가 있다.Therefore, the present invention as described above has the effect of reducing the amount of calculation required for motion estimation by reading values previously stored in the memory, instead of actually calculating the difference between blocks for motion estimation.

또한, 본 발명은 각 입력블록을 여러 부블록으로 분할하고 분할된 부블록들을 테이블룩업 벡터 양자화기를 통해 양자화한 후, 이 양자화 인덱스들을 이용하여 미리 계산되어 메모리에 저장된 양자화된 블록들간의 차이를 메모리로부터 읽어냄으로써 움직임 추정기에서 요구되는 많은 계산량을 테이블 룩업으로 대체하여 움직임 추정기의 속도를 향상시킬 수 있는 효과가 있다.In addition, the present invention divides each input block into several subblocks and quantizes the divided subblocks through a table lookup vector quantizer, and then stores the difference between the quantized blocks previously calculated using the quantization indices and stored in the memory. It is possible to improve the speed of the motion estimator by replacing the large amount of computation required by the motion estimator with a table lookup.

Claims (4)

블록 정합 움직임 추정 장치에 있어서,In the block-matched motion estimation apparatus, 이전 프레임 및 현재 프레임의 블록내 부블록을 테이블 룩업 벡터 양자화하기 위한 테이블을 저장하기 위한 제1 저장 수단;First storage means for storing a table for quantizing a table lookup vector of subblocks in a block of a previous frame and a current frame; 이전 복호화된 프레임 및 상기 제1 저장 수단의 출력에 따라 상기 이전 복호화된 프레임의 벡터 양자화 인덱스를 저장하기 위한 제2 저장 수단;Second storage means for storing a vector quantization index of the previously decoded frame according to a previously decoded frame and the output of the first storage means; 부호화할 현재 프레임을 저장하기 위한 제3 저장 수단;Third storage means for storing a current frame to be encoded; 상기 제1 및 제3 저장 수단의 출력에 따라 상기 현재 프레임의 블록 및 그 블록내 부블록들의 벡터 양자화 인덱스를 저장하기 위한 제4 저장 수단;Fourth storage means for storing a vector quantization index of a block of the current frame and subblocks within the block according to the output of the first and third storage means; 상기 제2 및 제4 저장 수단의 출력에 따라 상기 제1 저장 수단의 데이터를 읽거나 상기 제2 내지 제4 저장 수단에 데이터를 쓰기 위해 주소를 생성하여 지정하기 위한 주소 생성 수단;Address generating means for generating and specifying an address for reading data of the first storage means or writing data to the second to fourth storage means in accordance with the output of the second and fourth storage means; 상기 제2 내지 제4 저장 수단의 출력에 따라 상기 테이블 룩업 벡터 양자화된 상기 이전 프레임의 블록내 부블록과 상기 현재 프레임의 블록내 부블록간의 차이를 읽어낼 수 있도록 미리 계산된 부블록간 차이값들을 저장하기 위한 제5 저장 수단;The difference value between subblocks precomputed to read the difference between the subblock in the block of the previous frame and the subblock in the block of the current frame according to the output of the second to fourth storage means. Fifth storage means for storing the data; 상기 제5 저장 수단의 출력에 따라 상기 이전 및 현재 프레임의 블록간 차이를 구하기 위해 상기 이전 및 현재 프레임의 블록내 부블록의 차이를 더하기 위한 연산 수단; 및Computing means for adding a difference between subblocks in blocks of the previous and current frames to obtain a difference between blocks of the previous and current frames according to the output of the fifth storage means; And 상기 연산 수단으로부터의 계산된 블록간 차이값과 기준값을 비교하여 공간적 위치 차이를 획득하기 위한 비교 수단Comparison means for obtaining a spatial position difference by comparing the calculated inter-block difference value from said computing means with a reference value 을 포함하는 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 장치.Block matching motion estimation apparatus using table lookup vector quantization comprising a. 블록 정합 움직임 추정 장치에 적용되는 블록 정합 움직임 추정 방법에 있어서,In the block matching motion estimation method applied to the block matching motion estimation apparatus, 움직임 추정 탐색 영역내, 이전 프레임의 블록 및 움직임 추정하고자 하는 현재 프레임의 블록을 각각 다수의 부블록으로 분할하는 제 1 단계;Dividing a block of a previous frame and a block of a current frame to be motion estimated into a plurality of subblocks in a motion estimation search region; 분할된 탐색영역내 상기 이전 프레임의 블록내 각 부블록들을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장하는 제 2 단계;A second step of storing a vector quantization index by quantizing a table lookup vector of each subblock in the block of the previous frame in the divided search region; 상기 현재 프레임의 블록내 부블록들을 테이블 룩업 벡터 양자화하여 벡터 양자화 인덱스를 저장하는 제 3 단계;A third step of storing a vector quantization index by quantizing a sub-blocks in a block of the current frame by a table lookup vector; 테이블 룩업 벡터 양자화된 상기 이전 프레임의 블록내 부블록과 상기 현재 프레임의 블록내 부블록의 부블록간 차이값들을 읽고 이 차이값들을 합하여 블록간 차이를 계산하는 제 4 단계; 및A fourth step of reading difference values between subblocks of a subblock in the block of the previous frame and a subblock in the block of the current frame and summing the difference values to calculate an interblock difference; And 계산된 상기 현재 프레임 및 상기 이전 프레임의 블록간 차이중 가장 작은 블록간 차이를 찾아내어 해당 공간 위치 차이를 전송하는 제 5 단계A fifth step of finding the smallest block difference among the calculated blocks of the current frame and the previous frame and transmitting the corresponding spatial position difference 를 포함하는 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 방법.Block matching motion estimation method using a table lookup vector quantization comprising a. 제 2 항에 있어서,The method of claim 2, 상기 제 4 단계는,The fourth step, 현 블록 및 후보 블록내 부블록들의 벡터 양자화 인덱스로부터 부블록간 차이값들을 읽는 제 6 단계; 및A sixth step of reading difference values between subblocks from a vector quantization index of subblocks in the current block and the candidate block; And 부블록간 차이값들을 합하여 블록간 차이값을 계산하는 제 7 단계A seventh step of calculating the difference between blocks by adding the difference between subblocks 를 포함하는 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 방법.Block matching motion estimation method using a table lookup vector quantization comprising a. 제 3 항에 있어서,The method of claim 3, wherein 상기 제 5 단계는,The fifth step, 상기 계산된 블록간 차이값이 최소 블록 차이인지를 판단하는 제 8 단계;An eighth step of determining whether the calculated difference value between blocks is a minimum block difference; 상기 제 8 단계의 판단 결과, 최소 블록 차이이면 후보 블록과 현 블록의 공간적 위치 차이를 저장하여 탐색 영역내에 후보 블록이 더 남아있는지를 판단하는 제 9 단계;A ninth step of determining whether the candidate block remains in the search area by storing the spatial position difference between the candidate block and the current block if the minimum block difference is determined as the result of the eighth step; 상기 제 9 단계의 판단 결과, 후보 블록이 더 남아있으면, 다음 후보 블록내 부블록들의 양자화 인덱스를 읽고, 상기 제 6 단계부터 반복 수행하는 제 10 단계;A tenth step of reading quantization indices of subblocks in a next candidate block if the candidate block remains, and repeating the operation from the sixth step; 상기 제 9 단계의 판단 결과, 후보 블록이 더 남아있지 않으면, 공간적 위치 차이를 전송하고, 상기 현재 프레임에 블록이 더 남아있는지를 검사하는 제 11 단계;An eleventh step of transmitting a spatial position difference and checking whether more blocks remain in the current frame if there are no more candidate blocks as a result of the determination of the ninth step; 상기 제 11 단계의 검사 결과, 블록이 더 남아있으면 상기 현재 프레임의 다음 블록을 읽고 상기 제 5 단계의 벡터 양자화 인덱스 저장 과정부터 반복 수행하고, 블록이 더 남아있지 않으면 다음 프레임을 읽는 제 12 단계; 및A twelfth step of reading the next block of the current frame if more blocks remain, repeating from the storing step of the vector quantization index of the fifth step, and reading the next frame if no more blocks remain; And 상기 제 8 단계의 판단 결과, 최소 블록 차이가 아니면, 상기 제 9 단계의 후보 블록이 더 남아있는지를 판단하는 과정부터 수행하는 제 13 단계As a result of the determination of the eighth step, if it is not the minimum block difference, the thirteenth step is performed from the process of determining whether the candidate block of the ninth step remains 를 포함하는 테이블 룩업 벡터 양자화를 이용한 블록 정합 움직임 추정 방법.Block matching motion estimation method using a table lookup vector quantization comprising a.
KR1019980028964A 1998-07-16 1998-07-16 Apparatus and method for block matching motion estimation using table lookup vector quantization KR100318471B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980028964A KR100318471B1 (en) 1998-07-16 1998-07-16 Apparatus and method for block matching motion estimation using table lookup vector quantization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980028964A KR100318471B1 (en) 1998-07-16 1998-07-16 Apparatus and method for block matching motion estimation using table lookup vector quantization

Publications (2)

Publication Number Publication Date
KR20000008897A KR20000008897A (en) 2000-02-15
KR100318471B1 true KR100318471B1 (en) 2002-02-19

Family

ID=19544528

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980028964A KR100318471B1 (en) 1998-07-16 1998-07-16 Apparatus and method for block matching motion estimation using table lookup vector quantization

Country Status (1)

Country Link
KR (1) KR100318471B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100709376B1 (en) * 2001-07-05 2007-04-20 삼성전자주식회사 Searching apparatus for fast vector quantization encoding and method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970019678A (en) * 1995-09-29 1997-04-30 배순훈 Image Coding System Using Adaptive Vector Quantization and Its Motion Information Detection Method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970019678A (en) * 1995-09-29 1997-04-30 배순훈 Image Coding System Using Adaptive Vector Quantization and Its Motion Information Detection Method

Also Published As

Publication number Publication date
KR20000008897A (en) 2000-02-15

Similar Documents

Publication Publication Date Title
Chen et al. Rate-distortion optimal motion estimation algorithms for motion-compensated transform video coding
KR100839311B1 (en) Method for decoding video or image information, a computer-readable recording medium on which a computer-executable program for performing the method is recorded, and a system for providing video or image information
US20110261886A1 (en) Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
US7895250B2 (en) Fixed point integer division techniques for AC/DC prediction in video coding devices
US20110235718A1 (en) Nonlinear, prediction filter for hybrid video compression
JP2007202150A (en) Method of and apparatus for deciding encoding mode for variable block size motion estimation
CN1325220A (en) Motion-vector coding method
Tsang et al. Hash based fast local search for intra block copy (IntraBC) mode in HEVC screen content coding
US8050324B2 (en) Method and apparatus for selecting a reference frame for motion estimation in video encoding
CN1320830C (en) Noise estimating method and equipment, and method and equipment for coding video by it
US20160277767A1 (en) Methods, systems and apparatus for determining prediction adjustment factors
KR20050033098A (en) Method of hierarchical motion estimation
Kim et al. Fractal coding of video sequence using circular prediction mapping and noncontractive interframe mapping
KR100442844B1 (en) Method for coding a contour of an object by using a central point and a coding device using the coding method, especially in connection with very effectively performing a contour coding in a moving image as well as a contour coding in a still image
US6141449A (en) Coding mode determination system
KR100318471B1 (en) Apparatus and method for block matching motion estimation using table lookup vector quantization
CN115442617A (en) Video processing method and device based on video coding
JP5468383B2 (en) Method and apparatus for optimizing compression of a video stream
JP2005168028A (en) Arithmetic device for absolute difference, and motion estimation apparatus and motion picture encoding apparatus using same
Lu et al. Hybrid image compression scheme based on PVQ and DCTVQ
JP2017050744A (en) Image encoding apparatus, image encoding method and program
JP2007510344A (en) Power optimized array motion prediction method
Islam et al. Fast cu splitting and computational complexity minimization technique by using machine learning algorithm in video compression
JP2005516501A (en) Video image encoding in PB frame mode
Neagoe Predictive ordering and linear approximation for image data compression

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

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20131204

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20141205

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20151202

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20161206

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20171204

Year of fee payment: 17

EXPY Expiration of term