KR20010076707A - 움직임 추정기 - Google Patents

움직임 추정기 Download PDF

Info

Publication number
KR20010076707A
KR20010076707A KR1020000004049A KR20000004049A KR20010076707A KR 20010076707 A KR20010076707 A KR 20010076707A KR 1020000004049 A KR1020000004049 A KR 1020000004049A KR 20000004049 A KR20000004049 A KR 20000004049A KR 20010076707 A KR20010076707 A KR 20010076707A
Authority
KR
South Korea
Prior art keywords
data
absolute difference
output
memory
shift register
Prior art date
Application number
KR1020000004049A
Other languages
English (en)
Other versions
KR100677082B1 (ko
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 KR20000004049A priority Critical patent/KR100677082B1/ko
Priority to EP20000311043 priority patent/EP1120747A3/en
Priority to CNB011012854A priority patent/CN1157956C/zh
Priority to JP2001016271A priority patent/JP3863376B2/ja
Priority to US09/770,235 priority patent/US6690730B2/en
Publication of KR20010076707A publication Critical patent/KR20010076707A/ko
Application granted granted Critical
Publication of KR100677082B1 publication Critical patent/KR100677082B1/ko

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/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/43Hardware specially adapted for motion estimation or compensation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

동영상의 압축 과정에서 사용되는 움직임 추정을 고속으로 수행할 수 있는 움직임 추정기가 개시된다. 본 움직임 추정기는 이전 탐색 영역의 데이터를 라인별로 저장하는 복수 개의 메모리 영역을 구비하는 이전 탐색 영역 메모리와 현재 처리 영역의 데이터를 라인별로 저장하는 현재 처리 영역 메모리를 구비하는 제1 메모리부와, 복수 개의 메모리 영역으로부터 순환적으로 출력되는 이전 탐색 영역의 데이터를 시프트시켜 출력하는 이전 탐색 영역 데이터 공급부와, 이전 탐색 영역 데이터 공급부로부터 출력된 이전 탐색 영역의 데이터를 선택하는 제1 스위칭부와, 현재 처리 영역 메모리로부터 출력되는 현재 처리 영역의 데이터를 행별로 선택하는 제2 스위칭부와, 선택된 이전 처리 영역의 데이터와 현재 처리 영역 데이터의 절대차합(sum of absolute difference)을 계산하는 복수 개의 절대차합 계산부가 병렬로 접속된 계산부, 및 계산부의 일단의 절대차합 계산부들로부터 출력된 절대차합 데이터를 입력하여 시프트를 수행하고 시프트된 데이터와 다음 단의 절대차합 계산부로부터 출력된 SAD(절대차합) 값을 합하여 부분 SAD 값을 출력하는 시프트 레지스터부를 포함하는 것을 특징으로 한다. 본 움직임 추정기는 처리 속도가 빠르고, 특히, 반화소 단위의 탐색을 빠르고 효율적으로 수행할 수 있다.

Description

움직임 추정기{Motion estimator}
본 발명은 움직임 추정기에 관한 것으로, 더 상세하게는 동영상의 압축 과정에서 사용되는 움직임 추정을 고속으로 수행할 수 있는 움직임 추정기에 관한 것이다.
움직임 추정은, 비디오 코더에서, 입력되는 비디오 데이터의 시간적인 중복을 제거함으로써 압축 효율을 높이기 위하여 사용된다. 대부분의 일반적인 동영상 압축 표준들은 블록 기반의 코더이고, 이러한 블록 기반의 코더에서는 블록 정합 알고리즘(block matching algorithm)이 사용된다. 블록 정합 알고리즘은 블록 단위로 움직임 추정을 수행하는 알고리즘을 일컫는다. 블록 정합 알고리즘에 따르면, 이전 프레임의 탐색 영역 내에 위치하는 후보 블록들 중에서 현재 프레임의 블록과 가장 유사한 블록을 찾는다. 이 때, 얻어지는 현재 프레임의 처리블록과 이전 프레임의 가장 유사한 후보 블록 사이의 상대적인 위치의 차이는 움직임 벡터(motion vector: MV)라 불리운다. 움직임 추정을 위해서는 SAD(sum of absolute defferences) 값을 계산하는 것이 일반적이다. 16×16 블록을 단위로 하여 움직임 추정을 수행할 경우, SAD 값과 움직임벡터(MV)는 각각,
과 같이 계산된다. 여기서,는 현재 프레임의 블록 데이터,는 이전 프레임의 후보 블록의 데이터,는 움직임 벡터 후보를 나타낸다.
이와같은 계산을 기초로 하여 실제 움직임 추정기를 설계할 때는, 움직임 추정의 성능과 연산량이 고려되어야 한다. 움직임 추정에 있어서 연산량의 대부분은 SAD 값을 계산하는 것이 차지한다. 즉, 하나의 SAD 값을 계산하기 위해서는 뺄샘,절대값, 및 누적 연산을 수행하여야 하고, 특히, 이러한 계산량은 처리 블록의 크기에 비례한다. 따라서, 종래의 움직임 추정 방법에 따르면, 연산량이 많아 움직임 추정을 위하여 시간이 많이 소요된다는 문제점이 있다.
상기 문제점을 해결하기 위한 다른 종래의 움직임 추정 방법으로써 계층적 움직임 추정 방법이 제안되었다. 도 1에는 상기 계층적 움직임 추정 방법을 설명하기 위한 도면을 나타내었다. 도 1에 나타낸 계층적 움직임 추정 방법에 따르면, 하위계층의 이미지를 서브 샘플링함에 의하여 중간 계층, 및 상위 계층의 서브 샘플링된 이미지를 생성한다. 다음으로, 서브 샘플링된 상위 계층의 이미지에 대하여 SAD 값을 계산함으로써 중간 계층의 이미지에 대한 초기 탐색 영역 후보를 선택하고, 주변 매크로 블록과의 상관 관계를 사용하여 탐색 영역 후보를 더 선택한다. 이제, 선택된 초기 탐색 영역 후보들에 대하여 SAD 값을 계산함으로써 하위 계층의 이미지에 대한 그 SAD 값이 최소가 되는 지점의 최종 움직임 벡터(MV)를 구한다.
이러한 방법은 전역 탐색 방법에 비하여 성능 저하는 극히 적고, 처리 속도는 빠르다. 하지만, 보다 고속으로 움직임 추정을 수행하고자 하는 요구가 여전히 존재한다.
본 발명이 이루고자 하는 기술적 과제는 고속으로 움직임 추정을 수행하는 움직임 추정기를 제공하는 것이다.
도 1은 종래의 계층적 움직임 추정 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 움직임 추정기의 구조를 도시한 블록도이다.
도 3은 도 2의 움직임 추정기의 제1 메모리, 부분 SAD 계산부, 및 보간부를 상세히 도시한 도면이다.
도 4는 이전 탐색 영역의 데이터가 메모리에 배치되는 순서를 설명하기 위한 도면이다.
도 5는 4×4 픽셀로 이루어지는 현재 처리 블록의 데이터가 도 3의 계산부내의 레지스터들에 배치되는 순서를 나타낸 도면이다.
도 6은 도 2의 움직임 추정기에서의 데이터 흐름을 설명하기 위한 도면이다.
도 7은 본 발명에 따른 움직임 추정기에서 적용되는 반화소 단위의 탐색 과정을 설명하기 위한 도면이다.
도 8은 도 2에 도시한 움직임 추정기의 보간부의 일예를 나타낸 블록도이다.
도 9는 도 2의 본 발명에 따른 움직임 추정기에서 반화소 단위의 탐색을 적용하였을 경우의 움직임 추정기에서의 데이터 흐름을 설명하기 위한 도면이다.
도 10은 본 발명의 실시예에 따른 움직임 추정기에서 적용되는 계층적 탐색에 사용된 중간 계층 및 하위 계층에서의 탐색 영역을 설명하기 위한 도면이다.
도 11은 도 2에 도시한 움직임 추정기에서 주변 매크로 블록의 상관관계를 이용하여 초기 탐색점을 하나 더 선정하기 위한 22 시프트 레지스터의 구성예를 나타낸 도면이다.
도 12는 이전 탐색 영역의 데이터를 수직 방향으로 4:1 데시메이션(decimation)하는 과정을 설명하기 위한 도면이다.
도 13은 상위 계층에서의 데이터 처리 흐름을 설명하기 위한 도면이다.
도 14는 이전 탐색 영역의 데이터를 수직 방향으로 2:1 데시메이션(decimation)하는 과정을 설명하기 위한 도면이다.
도 15는 중간 계층에서의 데이터 처리를 설명하기 위한 도면이다.
도 16은 중간 계층에서의 데이터 처리 흐름을 설명하기 위한 도면이다.
도 17은 하위 계층에서의 데이터 처리를 설명하기 위한 도면이다.
도 18은 하위 계층에서의 데이터 처리 흐름을 설명하기 위한 도면이다.
상기 과제를 이루기 위하여 본 발명에 따른 움직임 추정기는 영상 데이터 프레임을 압축하기 위하여 움직임 추정을 수행하는 움직임 추정기에 있어서, 이전 탐색 영역의 데이터를 라인별로 저장하는 복수 개의 메모리 영역을 구비하는 이전 탐색 영역 메모리와, 현재 처리 영역의 데이터를 라인별로 저장하는 현재 처리 영역 메모리를 구비하는 제1 메모리부; 복수 개의 메모리 영역으로부터 순환적으로 출력되는 이전 탐색 영역의 데이터를 시프트시켜 출력하는 이전 탐색 영역 데이터 공급부; 이전 탐색 영역 데이터 공급부로부터 출력된 이전 탐색 영역의 데이터를 선택하는 제1 스위칭부; 현재 처리 영역 메모리로부터 출력되는 현재 처리 영역의 데이터를 행별로 선택하는 제2 스위칭부; 선택된 이전 처리 영역의 데이터와 현재 처리 영역 데이터의 절대차합(sum of absolute difference)을 계산하는 복수 개의 절대차합 계산부가 병렬로 접속된 계산부; 및 계산부의 일단의 절대차합 계산부들로부터 출력된 절대차합 데이터를 입력하여 시프트를 수행하고 시프트된 데이터와 다음 단의 절대차합 계산부로부터 출력된 SAD(절대차합) 값을 합하여 부분 SAD 값을 출력하는 시프트 레지스터부;를 포함하는 것을 특징으로 한다.
또한, 상기 계산부는 탐색 영역의 크기를 p라 할 때 p 개의 절대차합 계산부가 병렬로 접속되고, 상기 시프트레지스터부는 2p +1 시프트레지스터를 구비하는 것이 바람직하다.
또한, 상기 움직임 추정기는 입력 데이터를 버퍼링하는 버퍼; 버퍼로부터 출력된 데이터를 25 시프트하는 25 시프트레지스터; 부분 SAD 값과 25 시프트 레지스터로부터 출력된 데이터를 가산하여 SAD 값을 출력하는 가산기; 가산기로부터 출력된 SAD 값을 사용하여 움직임 벡터를 생성하는 SAD 비교 및 움직임 벡터 생성부; 및 움직임 벡터값을 20 시프트시켜 SAD 비교 및 움직임 벡터 생성부로 출력하는 20 시프트레지스터;를 더 포함하는 것이 바람직하다.
또한, 상기 움직임 추정기는 3 계층으로 계층적 움직임 추정을 수행할 때 중간 계층에서 주변 매크로 블록이 가지는 움직임 벡터의 상관관계를 이용하여 초기 탐색점을 추가로 얻기 위하여 22 시프트 동작을 수행하는 22 시프트레지스터;를 더 포함하는 것이 바람직하다.
또한, 상기 움직임 추정기는 움직임 추정을 수행하기 위하여 현재 데이터와 이전 탐색 영역 데이터를 구분하여 제1 메모리에 저장되도록 제어하고, 움직임 추정 제어부의 처리 상황에 따라 부분 SAD 계산부로 데이터를 공급하도록 제어하는 DMA 제어부; DMA 제어부로부터 출력된 제어신호에 응답하여 움직임 추정 동작을 제어하는 움직임 추정 제어부; 및 계산된 부분 SAD 값을 저장하는 제2 메모리부;를 더 포함하는 것이 바람직하다.
또한, 상기 제1 메모리는, 세 영역의 이전 탐색 영역 메모리와, 현재 처리 영역 메모리로 구분되고, 상기 계산부는, 이전 탐색 영역의 데이터와 현재 처리 영역의 데이터를 사용하여 절대차합을 계산하는 제1 절대차합 계산부; 제2 절대차합 계산부; 제3 절대차합 계산부; 및 제4 절대차합 계산부;를 구비하며, 상기 시프트 레지스터부는, 상기 제1 절대차합 계산부로부터 출력된 절대차합 데이터를 9 시프트시켜 출력하는 제1 9시프트레지스터; 상기 제1 9시프트레지스터의 출력 데이터와 상기 제2 절대차합 계산부의 출력 데이터를 합산하는 제1 가산기; 상기 제2 절대차합 계산부로부터 출력된 절대차합 데이터를 9 시프트시켜 출력하는 제2 9시프트레지스터; 상기 제2 9시프트레지스터의 출력 데이터와 상기 제3 절대차합 계산부의 출력 데이터를 합산하는 제2 가산기; 제3 계산부로부터 출력된 절대차합 데이터를 9 시프트시켜 출력하는 제3 9시프트레지스터; 상기 제3 9시프트레지스터의 출력 데이터와 상기 제4 절대차합 계산부의 출력 데이터를 합산하는 제3 가산기;를 구비하는 것이 바람직하다.
또한, 상기 제1 절대차합 계산부는 레지스터들(CR0, CR1, CR2, CR3)과, 일 입력단은 상기 레지스터들(CR0, CR1, CR2, CR3)의 출력단에 접속되고 타 입력단은 스위치들에 접속된 감산기들(SUB)을 구비하고, 상기 제2 절대차합 계산부는 레지스터들(CR4, CR5, CR6, CR7)과, 일 입력단은 상기 레지스터들(CR4, CR5, CR6, CR7)의 출력단에 접속되고 타 입력단은 스위치들에 접속된 감산기들(SUB)을 구비하며, 상기 제3 절대차합 계산부는 레지스터들(CR8, CR9, CR10, CR11)과, 일 입력단은 상기 레지스터들(CR8, CR9, CR10, CR11)의 출력단에 접속되고 타 입력단은 스위치들에 접속된 감산기들(SUB)을 구비하고, 상기 제4 절대차합 계산부는 레지스터들(CR12, CR13, CR14, CR15)과, 일 입력단은 상기 레지스터들(CR12, CR13, CR14, CR15)의 출력단에 접속되고 타 입력단은 스위치들에 접속된 감산기들(SUB)을 구비하는 것이 바람직하다.
또한, 상기 움직임 추정기는 이전 탐색 영역의 데이터를 보간하여 보간된 데이터를 출력하는 보간부;를 더 포함하는 것이 바람직하다.
또한, 상기 움직임 추정기는 이전 탐색 영역에 해당하는 데이터와 현재 처리블록에 해당하는 데이터를 구분하는 동작을 수행하고, 처리 상황에 따라 상기 이전 탐색 영역 데이터 공급부와 상기 계산부로 데이터를 공급하도록 제어하는 DMA 제어부를 더 포함하는 것이 바람직하다.
이하 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명하기로 한다.
도 2에는 본 발명의 실시예에 따른 움직임 추정기의 구조를 블록도로써 도시하였다. 본 실시예의 움직임 추정기는 3 계층의 계층적 움직임 추정 방법을 기초로 한다. 하위 계층에서는 16×16 블록, 중간 계층에서는 8×8 블록, 및 상위 계층에서는 4×4 블록에 대하여 SAD 계산이 수행된다. 즉, 중간 계층은 하위 계층을 1/2 데시메이션한 계층이고, 상위 계층은 중간 계층을 1/2 데시메이션한 계층이다. 또한, 상위 계층에서는 ±4 픽셀 단위의 탐색이 수행되고, 중간 계층 및 하위 계층에서는 ±2 픽셀단위의 탐색이 수행된다. 또한, 본 실시예의 움직임 추정기는 하위 계층의 정화소 단위의 추정이 완료된 다음에 상기 하위 계층에 대하여 반화소 단위의 추정을 사용한다. 또한, 본 실시예에서는 본 출원인에 의하여 출원되고 본 명세서에 참조로써 통합되는 대한민국 특허출원 98-6718 호에서 개시된 개선된 움직임 추정 방법을 예로써 사용한다. 상기 특허출원에 개시된 움직임 추정 방법에 따르면, 중간 계층에서 선택된 매크로 블록 후보에 하위 계층에서 주변 매크로 블록들과의 상관 관계를 이용하여 적어도 하나 이상의 매크로 블록 후보를 추가로 선택한다.
도 2를 참조하면, 본 발명의 실시예에 따른 움직임 추정기는 제1메모리(200), 부분 SAD 계산부(210: PE), 보간부(212), 가산기(220), 및 버퍼(222)를 구비한다. 또한, 상기 움직임 추정기는 25 시프트레지스터(230), SAD 비교 및 움직임 벡터 생성부(240), 22 시프트레지스터(250), DMA 제어부(260), 움직임 추정 제어부(270), 및 제2 메모리(280)를 구비한다. 제1 메모리는 이전 탐색 영역 메모리(202)와 현재 처리 영역 메모리(204)로 구분된다.
동작을 설명하면, DMA 제어부(260)는 움직임 추정을 수행하기 위하여 현재 데이터와 이전 탐색 영역 데이터를 구분하여 제1 메모리(200)에 저장되도록 제어한다. 또한, DMA 제어부(260)는 움직임 추정 제어부(270)의 처리 상황에 따라 부분 SAD 계산부(210: PE)로 데이터를 공급하도록 제어한다.
부분 SAD 계산부(210: PE)는 현재 처리 블록 데이터와 이전 탐색 영역 데이터를 입력하여 부분 SAD 값을 계산한다. 또한, 상기 움직임 추정기는 22 시프트 레지스터(250)를 구비함으로써 3 계층으로 계층적 움직임 추정을 수행할 때 중간 계층에서 주변 매크로 블록이 가지는 움직임 벡터의 상관관계를 이용하여 초기 탐색점을 얻는다.
도 3에는 도 2의 움직임 추정기의 제1 메모리(200), 부분 SAD 계산부(210), 및 보간부(212)를 상세히 도시하였다. 도 3을 참조하면, 제1 메모리(200)는 세 영역의 이전 탐색 영역 메모리(이전 탐색영역 메모리_A, 이전 탐색영역 메모리_B, 이전 탐색영역 메모리_C)와, 현재 처리 영역 메모리로 구분된다. 또한, 부분 SAD 계산부(210)는 이전 탐색 영역 데이터 공급부(30), 계산부(32), 및 시프트레지스터부(34)를 구비한다. 또한, 현재 처리 영역 메모리의 출력단과 계산부(32)의 사이, 보간부(212)의 출력단과 계산부(32)의 사이, 및 이전 탐색 영역 데이터 공급부(30)와 계산부의 사이에는 스위치들이 구비된다. 본 실시예에서 상기 스위치들은 움직임 추정 제어부(270)에 의하여 제어된다.
이전 탐색 영역 데이터 공급부(30)는 제1 이전 탐색 영역 데이터 공급부(30a), 제2 이전 탐색 영역 데이터 공급부(30b), 및 제3 이전 탐색 영역 데이터 공급부(30c)를 구비한다. 계산부(32)는 제1 절대차합 계산부(322), 제2 절대차합 계산부(324), 제3 절대차합 계산부(326), 및 제4 절대차합 계산부(328)를 구비한다. 시프트레지스터부(34)는 제1 9시프트레지스터(340), 제2 9시프트레지스터(344),제3 9시프트레지스터(348), 및 가산기들(342, 346, 350)을 구비한다.
동작을 설명하면, 부분 SAD 계산부(210)는 이전 탐색 영역 메모리와 현재 처리 영역 메모리로부터 이전 탐색 영역에 해당하는 데이터와 현재 처리 블록에 해당하는 데이터를 입력하여 부분 SAD 값을 계산한다. DMA 제어부(260)는 이전 탐색 영역에 해당하는 데이터와 현재 처리 블록에 해당하는 데이터를 구분하는 동작을 수행한다. 부분 SAD 계산부(210)는 4×4 블록에 대하여 -4 ~ +4 탐색 영역까지만 연산할 수 있기 때문에 본 실시예에 따른 움직임 추정기는 가산기(220), 버퍼(222), 및 25 시프트레지스터(230)를 구비하여 4×4 블록 보다 큰 블록에 대하여 SAD 값을 얻는다.
부분 SAD 계산부(210: PE)는 이전 탐색 영역 메모리들(이전 탐색 영역 메모리_A, 이전 탐색 영역 메모리_B, 이전 탐색 영역 메모리_C)에 의한 세 채널과, 현재 처리 영역 메모리에 의한 하나의 채널을 통하여 각각 이전 탐색 영역 데이터와 현재 처리 영역 데이터를 입력받는다.
도 4에는 이전 탐색 영역의 데이터가 메모리에 배치되는 순서를 나타내었다. 도 4를 참조하면, 이전 탐색 영역의 첫 번째 라인의 데이터는 이전 탐색 영역 메모리_A, 두 번째 라인의 데이터는 이전 탐색 영역 메모리_B, 세 번째 라인의 데이터는 이전 탐색 영역 메모리_C로부터 각각 출력된다. 다음으로, 이전 탐색 영역의 네 번째 라인의 데이터는 다시 이전 탐색 영역 메모리_A로부터 출력된다. 도 4에서 이전 탐색 영역 메모리_A로부터 출력되는 데이터는 ○, 이전 탐색 영역 메모리_B로부터 출력되는 데이터는 ◇, 이전 탐색 영역 메모리_C로부터 출력되는 데이터는 □로 나타내었다.
또한, 부분 SAD 계산부(210)에는 현재 처리 영역 메모리로부터 현재 처리 영역 데이터가 입력된다. 도 5에는 4×4 픽셀로 이루어지는 현재 처리 영역의 데이터가 도 3의 계산부내의 레지스터들에 배치되는 순서를 나타내었다. 4×4 픽셀로 이루어지는 현재 처리 영역의 데이터는 도 5에 나타낸 바와 같이 도 3의 레지스터들(CR0, CR1, ..., CR15)에 로드된다. 이와같이, 현재 처리 영역 데이터들이 각 레지스터들(CR0, CR1, ..., CR15)에 저장되는 동안, 이전 탐색 영역의 데이터들도 레지스터들(PAR0, PAR1, ..., PAR4, PBR1, ..., PBR4, PCR0, ..., PCR4)에 로드된다. 레지스터들에 데이터 로드가 완료되면, 부분 SAD 계산부(210)의 차계산기(SUB)들은 이전 탐색 영역 데이터와 현재 처리 영역 데이터 사이의 차이값을 계산한다. 다음으로, 도시하지 않은 절대차 계산부는 상기 차이값을 입력하여 상기차이값의 절대값을 출력된다. 각 절대차 계산부들의 출력은 각 픽셀들에 해당하는 연산값들이고, 이 연산값들은 현재 처리 영역 데이터의 수평 성분들끼리 더해진다. 이로써, 이전 탐색 영역 데이터가 한번 입력될 때, 현재 처리 영역의 각 라인에 대하여 차의 절대값이 계산된다.
이후의 설명을 위하여 도 4에 나타낸 이전 탐색 영역 데이터에서 최좌측 최상단의 데이터를,에서 오른쪽으로 한 픽셀 만큼 시프트한 위치의 픽셀 데이터를로 정의하고,에서 오른쪽으로 두 픽셀 만큼 시프트한 위치의 픽셀 데이터를로 정의한다. 또한,에서 밑으로 한 픽셀 시프트한 위치의 픽셀 데이터를,에서 밑으로 두 픽셀 시프트한 위치의 픽셀 데이터를로 정의한다.
이와 동일하게, 도 5에 나타낸 현재 처리 영역에서 최좌측상단의 데이터를,에서 오른쪽으로 한 픽셀 만큼 시프트한 위치의 픽셀 데이터를로 정의하고,에서 오른쪽으로 두 픽셀 만큼 시프트한 위치의 픽셀 데이터를로 정의한다. 또한,에서 밑으로 한 픽셀 시프트한 위치의 픽셀 데이터를,에서 밑으로 두 픽셀 시프트한 위치의 픽셀 데이터를로 정의한다.
이와 같이 정의하면, 레지스터(CR0)에는 데이터가 로드되고, 레지스터(CR1)에는 데이터가 로드된다. 또한, 레지스터(CR4)에는 데이터가 로드되고, 레지스터(CR5)에는 데이터가 로드되며, 레지스터(CR15)에는 데이터가 로드된다.
부분 SAD 계산부(210)는 현재 처리 영역내에서 하나의 라인씩에 대하여 연산을 수행함으로, 제1 계산부(322), 제2 계산부(324), 제3 계산부(326), 및 제4 계산부(328)의 가산기로부터 출력되는 연산 결과값,,, 및은 각각,
와 같다. 연산 결과값,,, 및은 현재 처리 영역 데이터의 첫 번째, 두 번째, 세 번째, 및 네 번째 라인에 대한 연산 결과에 해당한다.를 행,를 열을 나타내는 양의 수라 할 때, 이전 탐색 영역 데이터를로 나타내면, 이전 탐색 영역 데이터와 현재 처리 영역 데이터의 첫 번째, 두 번째, 세 번째, 및 네 번째 라인에 대한 연산 결과는 각각,,, 및로 나타내어진다. 이러한 표현에 따르면, 탐색 영역의최좌측상단에 대한 SAD 값은,
와 같이 나타낼 수 있다. 이전 탐색 영역 데이터는 부분 SAD 계산부(210)로 한 라인씩 입력되므로, 수학식 4에서 구해지는 SAD 값이 첫 번째로 구해지는 SAD 값이 된다.
는 첫 번째 라인에 대한 연산에 의하여 구해진다. 하지만,는 이전 탐색 영역 데이터의 두 번째 라인이 입력되어야 구할 수 있고,는 세 번째 라인,는 네 번째 라인이 입력되어야 구할 수 있다. 즉,는 탐색 영역(search area)을 -p ~ +p로 할 때, 2p + 1에 해당하는 시간 차이가 발생한다. 따라서,를 더하기 위해서 2p + 1 클록 만큼의 지연이 필요하다. 본 실시예에서는 탐색 영역을 -4 ~ +4로 하므로, 9 클록 만큼의 지연이 필요하며, 시프트 레지스터부(34)의 9 시프트레지스터들(340, 344, 348)이 이러한 지연 동작을 수행한다. 다시 도 3a를 참조하여 상세히 설명하면, 제1 9시프트레지스터(340)는 제1 절대차합 계산부(322)로부터 출력된 절대차합 데이터를 9 시프트시켜 출력한다. 제1 가산기(342)는 제1 9시프트레지스터(340)의 출력 데이터와 제2 절대차합 계산부(324)의 출력 데이터를 합산한다. 제2 9시프트레지스터(344)는 제2 절대차합 계산부(324)로부터 출력된 절대차합 데이터를 9 시프트시켜 출력한다. 제2 가산기(346)는 제2 9시프트레지스터(344)의 출력 데이터와 제3 절대차합 계산부(326)의 출력 데이터를 합산한다. 제3 9시프트레지스터(348)는 제3 절대차합계산부(326)로부터 출력된 절대차합 데이터를 9 시프트시켜 출력한다. 제3 가산기(350)는 제3 9시프트레지스터(348)의 출력 데이터와 제4 절대차합 계산부(328)의 출력 데이터를 합산한다. 제3 가산기(350)로부터 출력된 데이터는 주어진 탐색 영역에 대한 부분 SAD 값이다.
도 6을 참조하면, 본 실시예에 따른 움직임 추정기에서는를 더하기 위해서 9 클록의 지연이 필요하다. 또한, 본 실시예에 따른 움직임 추정기에서는 첫 번째 라인을 레지스터부(34)에 로딩하는데 필요한 9 클록 만큼의 처리 지연을 제외한 다른 처리 지연은 발생하지 않는다. 즉, 빗금 무늬의,,, 및가 매 클록마다 순차적으로 구해지고, 다음으로 점 무늬의,,, 및가 매 클록마다 순차적으로 구해진다. 따라서, 4×4 픽셀의 탐색 영역을 전역 탐색(full searching)에 의하여 각각의 SAD 값을 구하는데 필요한 총 시간은 초기 데이터 로딩 시간을 제외할 때 9×12 클록, 즉, 108 클록에 해당한다.
또한, 본 발명에 따른 움직임 추정기는 정화소 단위의 탐색을 완료하면, 정화소 탐색을 통하여 구한 움직임 벡터 지점(motion vecter point)을 기준으로 반화소 단위의 탐색을 수행한다.
보간부(212)는 3 개의 이전 탐색 영역 메모리들(이전 탐색 영역 메모리_A, 이전 탐색 영역 메모리_B, 이전 탐색 영역 메모리_C)로부터 데이터를 받아들인다.
도 7을 참조하여 본 발명의 실시예에 따른 움직임 추정기에서 적용되는 반화소 단위의 탐색 과정을 설명한다. 반화소 단위의 탐색을 수행하기 위해서는 탐색점이 결정되어야 한다. 반화소 단위의 탐색점을 각각,, 및라 하면, 이들 탐색점들은 각각,
과 같이 정의된다. 예를들어,에 해당하는 탐색점은 70,에 해당하는 탐색점은 72,에 해당하는 탐색점은 74로 참조된다. 또한,에 해당하는 탐색점은 76,에 해당하는 탐색점은 78로 참조된다.
도 8에는 참고로 상기 움직임 추정기의 보간부(212)의 일예를 나타내었다. 도 8을 참조하면, 예를들어, 보간부(212)는 레지스터들(PAR0, PBR0, PCR0), 또는 레지스터들(PAR1, PBR1, PCR1), 레지스터들(PAR2, PBR2, PCR2), 레지스터들(PAR3, PBR3, PCR3), 및 레지스터들(PAR4, PBR4, PCR4) 중에서 각각 두 레지스터들로부터 이전 탐색 영역 데이터를 선택하여 입력하고, 수학식 5a, 5b, 및 5c에 나타낸 등식에 따라 보간을 수행함으로써,, 및픽셀값을 구하고, 스위치에 의하여 순차적으로 출력된다.
이로써, 보간부(212)는 최상위비트(MSB: most significant bit)와 최하위비트(LSB: least significant bit)를 포함하여 4 비트의 보간된 데이터를 출력한다. 계산부(32)의 입력 데이터 선택을 수행하는 스위치는 보간부(212)의 출력단자로 절환되고, 계산부(32) 및 시프트레지스터부(34)에 의하여 보간된 데이터에 대한 부분 SAD 값이 구해진다.
즉, 본 발명에 따른 움직임 추정기는 한 번 이전 프레임 영역 데이터를 데이터를 읽어들임으로써,, 및에 해당하는 탐색점의 픽셀값을 동시에 생성할 수 있다. 따라서, 본 발명에 따른 움직임 추정기는 종래기술의 움직임 추정기에 비하여 처리 속도가 빠르다.
또한, 한 4×4 영역에 대한 움직임 추정이 완료되고 나서, 다음의 4×4 영역에서 움직임 추정을 하는 경우. 예를들어,에 해당하는 탐색점(76),에 해당하는 탐색점(78)의 픽셀값은 이미 읽은 이전 탐색 영역 데이터를 시프트 라이트 함으로써 구할 수 있다. 따라서, 본 발명에 따른 움직임 추정기는 특히 반화소 단위의 탐색을 빠르고 효율적으로 수행할 수 있다.
도 9에는 도 2의 나타낸 움직임 추정기에 반화소 단위의 탐색을 적용하였을 경우의 데이터 흐름을 나타내었다. 도 9를 참조하면, 상기 움직임 추정기에서는 하나의 4×4 블록에 대한 반화소 단위의 탐색이 24 클록 동안에 완료된다.
한편, 본 실시예에 따른 움직임 추정기에 구비된 부분 SAD 계산부(210)의 처리 단위는 4×4 블록이다. 이러한 움직임 추정기를 3 계층(layer)의 계층적 탐색(hierachica search)에 사용할 때, 상위 계층의 경우는 4×4 블록내에서 -4 ~ +4 픽셀의 탐색 영역에 대하여 전역 탐색을 수행하고, 중간 계층의 경우는 8×8 블록내에서 -2 ~ +2 픽셀의 탐색 영역에 대하여 탐색을수행하며, 하위 계층의 경우는 16×16 블록내에서 -2 ~ +2 픽셀의 탐색 영역에 대하여 탐색을 수행한다.
본 실시예에 따른 움직임 추정기의 부분 SAD 계산부(210)는 4×4 블록을 계산할 수 있다. 따라서, 8×8 블록의 중간계층과 16×16 블록의 하위 계층에 대하여 움직임 추정을 수행하기 위해서는 계층들을 각각 4 개 및 16 개의 블록들로 나누어 계산한 다음, 결과값들을 더해주는 것이 필요하다. 하지만, 중간 계층 및 하위 계층에서는 탐색 영역이 도 10에 도시한 바와 같이 -2 ~ +2 픽셀에 해당하므로, 한 번 탐색을 수행하면 25 포인트에 대한 부분 SAD 값을 구할 수 있다. 이를 위하여, 도 2를 참조하면, 본 발명에 따른 움직임 추정기는 25 시프트레지스터(230)를 구비한다. 상기 움직임 추정기는 부분 SAD 값을 25 시프트레지스터(230)에 입력시키고, 다음의 부분 SAD 값이 출력될 때마다 25 시프트레지스터(230)에 저장된 데이터를 시프트시켜, 다음의 4×4 블록의 부분 SAD 값과 더함으로써 중간 계층 및 하위 계층의 탐색 작업을 수행하는 것이 가능하다.
한편, 본 실시예에 따른 움직임 추정기는 3 개의 초기 탐색점중 하나를 주변 매크로 블록과의 상관관계를 사용하여 선택한다. 주변 매크로 블록의 위치는 도 11에 도시한 바와 같이 정할 수 있다. 입력 영상 프레임의 좌상단 왼쪽으로부터 수평 방향으로 움직임 벡터를 구하기 때문에, 현재 처리 블록과 현재 처리 블록의 위에 위치한 매크로 블록 사이의 거리는 입력 영상 프레임의 수평 방향 매크로 블록 수와 같다. 따라서, 입력 영상 프레임이 352×288 화소의 CIF 형식의 영상인 것을 가정하면 입력 영상 프레임의 최대 크기는 수평 방향으로 22 개의 매크로 블록에 해당한다. 따라서, 본 발명의 타실시예에 따르면, 22 시프트 레지스터 어레이(1100) 및 중간값 계산부(1102)을 더 구비한다. 22 시프트 레지스터 어레이(1100)는 주변 매크로 블록들에 대한 움직임 벡터값을 입력하고, 중간값 계산부(1102)는 이들의 중간값을 움직임 벡터 후보로써 출력함으로써, 주변 매크로 블록과의 상관 관계를 이용하여 움직임 벡터 후보를 더 선정한다. 선정된 움직임 벡터 후보는 중간 계층의 초기 탐색점으로써 사용된다.
본 발명의 실시예에 따른 움직임 추정기에 적용되는 3 계층의 계층적 탐색에서 상위 계층 데이터는 원 데이터를 4:1 데시메이션(decimation)한 값들로 이루어진다. 본 실시예에서, 데시메이션은 원 데이터를 매 4 샘플마다 하나씩 취하는 방법을 사용한다. 현재 처리 영역의 데이터는 하나의 현재 처리 영역 메모리에 저장되어 있으므로, 수평 및 수직 방향으로 매 4 샘플마다 하나씩 취한다. 이전 탐색 영역의 데이터는 세 이전 탐색 영역 메모리에 나뉘어 저장되어 있기 때문에 수평 방향의 데시메이션은 현재 처리 영역의 데이터의 경우와 동일하게 매 4 샘플마다 하나씩 취하지만, 수직 방향의 데시메이션은 도 12에 도시한 바와 같이 수행된다. 즉, 본 실시예에 따르면, 이전 탐색 영역 메모리는 탐색 영역 데이터의 첫 번째 라인이 이전 탐색 영역 메모리_A, 두 번째 라인이 이전 탐색 영역 메모리_B, 세 번째 라인이 이전 탐색 영역 메모리_C에 저장하는 순서에 따라 저장되어 있으므로, 도 2의 DMA 제어부(260)는 어드레스를 4 씩 증가시키고, 이전 탐색 영역 메모리_A, 이전 탐색 영역 메모리_B, 및 이전 탐색 영역 메모리_C의 순으로 읽어 내도록 제어할 것이 요구된다.
메모리로부터 읽은 데이터는 부분 SAD 계산부(210)의 각 레지스터에 저장되고 -4 ~ +4 블록의 탐색 영역에 대하여 전역 탐색을 수행함으로써 최소의 SAD 값을 가지는 두 위치를 중간 계층의 초기 탐색점으로써 선택한다. 상위 계층에서의 데이터 처리 흐름은 도 13에 나타낸 바와 같다. 도 13은 기본적으로 도 6과 동일하므로 더이상 설명하지 않는다.
중간 계층의 데이터는 하위 계층의 데이터를 2:1 데시메이션함으로써 얻어진다. 따라서, 현재 처리 영역 메모리와 이전 탐색 영역 메모리로부터 수평 및 수직 방향으로 2 씩 어드레스를 증가시킴으로써 도 14에 도시한 바와 같이 메모리의 읽음 및 건너뜀을 수행한다. 이전 탐색 영역 데이터는 3 개의 메모리들에 나뉘어 저장되어 있으므로 수직 방향으로는 이전 탐색 영역 메모리_A, 이전 탐색 영역 메모리_B, 이전 탐색 영역 메모리_C의 순서로 데이터를 읽어온다. 이로써, 이전 탐색 영역의 데이터에 대한 수직 방향으로의 2:1 데시메이션(decimation)이 이루어진다.
중간 계층에서는 상위 계층에서 찾은 2 개의 초기 탐색점과 22 시프트레지스터(250)에서 얻어지는 움직임 벡터 후보에 해당하는 1 개의 초기 탐색점을 중심점으로 하여 결정되는 8×8 블록에 대하여 -2 ~ +2 탐색 영역의 전역 탐색을 수행하여 부분 SAD 값을 구한다. 부분 SAD 계산부(210)는 4×4 블록을 단위로 탐색을 수행하도록 설계되어 있으므로, 8×8 블록의 중간 계층에 대하여 탐색을 수행하기 위해서는 도 15에 나타낸 바와 같이 현재 프레임의 8×8 블록을 4 개의 4×4 블록으로 나누어 탐색을 수행한다. 즉, 처음 4×4 블록에 대하여 -2 ~ +2 탐색 영역에 걸쳐 25 포인트의 부분 SAD 값을 구하여 상기 부분 SAD 값을 25 시프트레지스터(230)에 저장한다. 이제, 가산기(220)에 의하여 상기 부분 SAD 값과 다음 4×4 블록에 대한 부분 SAD 값과 더한다. 이러한 과정을 4 번 반복함으로써 8×8 블록에 대한 SAD 값을 구한다. 이렇게 3 개의 초기 탐색점들에 대한 -2 ~ +2 탐색 영역에 의하여 최소의 SAD 값을 가지는 위치를 하위 계층의 초기 탐색점으로 사용한다. 중간 계층에서의 데이터 처리 흐름은 도 16에 나타낸 바와 같다. 도 16을 참조하면, 중간 계층에서는를 더하기 위해서 5 클록의 지연이 필요하다. 즉, 빗금 무늬의,,, 및가 매 클록마다 순차적으로 구해지고, 다음으로 점 무늬의,,, 및가 매 클록마다 순차적으로 구해진다.
하위계층의 데이터는 원 데이터로 구성된다. 중간 계층에서 찾은 초기 탐색점을 중심점으로 하여 16×16 블록에 대하여 -2 ~ +2 탐색 영역에서 걸쳐 전역 탐색을 수행하여 최소의 SAD 값을 가지는 위치를 구한다. 상기 위치로부터 정화소 단위의 탐색에 의한 최종 움직임 벡터가 구해진다. 하위계층에 대한 움직임 추정은 도 17에 도시한 바와 같이 16×16 블록에 대하여 수행되고, 부분 SAD 계산부(210)는 4×4 블록을 기준으로 처리를 수행하므로, 4×4 블록 단위의 탐색을 16 번 반복함으로써 16×16 블록에 대한 SAD 값을 구한다. 하위 계층에서의 데이터 처리 흐름은 도 18에 나타낸 바와 같다. 도 18에 나타낸 하위 계층에서의 데이터 처리 흐름은 ±2 픽셀의 탐색을 수행되는 중간 계층에서의 데이터 흐름을 나타낸 도 16과 동일하므로 더이상 설명하지 않는다.
상술한 바와 같이, 본 발명에 따른 움직임 추정기는 처리 속도가 빠르고, 특히, 반화소 단위의 탐색을 빠르고 효율적으로 수행할 수 있다.

Claims (9)

  1. 영상 데이터 프레임을 압축하기 위하여 움직임 추정을 수행하는 움직임 추정기에 있어서,
    이전 탐색 영역의 데이터를 라인별로 저장하는 복수 개의 메모리 영역을 구비하는 이전 탐색 영역 메모리와, 현재 처리 영역의 데이터를 라인별로 저장하는 현재 처리 영역 메모리를 구비하는 제1 메모리부;
    복수 개의 메모리 영역으로부터 순환적으로 출력되는 이전 탐색 영역의 데이터를 시프트시켜 출력하는 이전 탐색 영역 데이터 공급부;
    이전 탐색 영역 데이터 공급부로부터 출력된 이전 탐색 영역의 데이터를 선택하는 제1 스위칭부;
    현재 처리 영역 메모리로부터 출력되는 현재 처리 영역의 데이터를 행별로 선택하는 제2 스위칭부;
    선택된 이전 처리 영역의 데이터와 현재 처리 영역 데이터의 절대차합(sum of absolute difference)을 계산하는 복수 개의 절대차합 계산부가 병렬로 접속된 계산부; 및
    계산부의 일단의 절대차합 계산부들로부터 출력된 절대차합 데이터를 입력하여 시프트를 수행하고 시프트된 데이터와 다음 단의 절대차합 계산부로부터 출력된SAD(절대차합) 값을 합하여 부분 SAD 값을 출력하는 시프트 레지스터부;를 포함하는 것을 특징으로 하는 움직임 추정기.
  2. 제1항에 있어서,
    상기 계산부는 탐색 영역의 크기를 p라 할 때 p 개의 절대차합 계산부가 병렬로 접속되고, 상기 시프트레지스터부는 2p +1 시프트레지스터를 구비하는 것을 특징으로 하는 움직임 추정기.
  3. 제1항 또는 제2항 중 어느 한 항에 있어서,
    입력 데이터를 버퍼링하는 버퍼;
    버퍼로부터 출력된 데이터를 25 시프트하는 25 시프트레지스터;
    부분 SAD 값과 25 시프트 레지스터로부터 출력된 데이터를 가산하여 SAD 값을 출력하는 가산기;
    가산기로부터 출력된 SAD 값을 사용하여 움직임 벡터를 생성하는 SAD 비교 및 움직임 벡터 생성부; 및
    움직임 벡터값을 20 시프트시켜 SAD 비교 및 움직임 벡터 생성부로 출력하는 20 시프트레지스터;를 더 포함하는 것을 특징으로 하는 움직임 추정기.
  4. 제1항에 있어서,
    3 계층으로 계층적 움직임 추정을 수행할 때 중간 계층에서 주변 매크로 블록이 가지는 움직임 벡터의 상관관계를 이용하여 초기 탐색점을 추가로 얻기 위하여 22 시프트 동작을 수행하는 22 시프트레지스터;를 더 포함하는 것을 특징으로 하는 움직임 추정기.
  5. 제1항에 있어서,
    움직임 추정을 수행하기 위하여 현재 데이터와 이전 탐색 영역 데이터를 구분하여 제1 메모리에 저장되도록 제어하고, 움직임 추정 제어부의 처리 상황에 따라 부분 SAD 계산부로 데이터를 공급하도록 제어하는 DMA 제어부;
    DMA 제어부로부터 출력된 제어신호에 응답하여 움직임 추정 동작을 제어하는 움직임 추정 제어부; 및
    계산된 부분 SAD 값을 저장하는 제2 메모리부;를 더 포함하는 것을 특징으로 하는 움직임 추정기.
  6. 제1항에 있어서,
    상기 제1 메모리는,
    세 영역의 이전 탐색 영역 메모리와, 현재 처리 영역 메모리로 구분되고,
    상기 계산부는,
    이전 탐색 영역의 데이터와 현재 처리 영역의 데이터를 사용하여 절대차합을 계산하는 제1 절대차합 계산부; 제2 절대차합 계산부; 제3 절대차합 계산부; 및 제4 절대차합 계산부;를 구비하고,
    상기 시프트 레지스터부는,
    상기 제1 절대차합 계산부로부터 출력된 절대차합 데이터를 9 시프트시켜 출력하는 제1 9시프트레지스터; 상기 제1 9시프트레지스터의 출력 데이터와 상기 제2 절대차합 계산부의 출력 데이터를 합산하는 제1 가산기; 상기 제2 절대차합 계산부로부터 출력된 절대차합 데이터를 9 시프트시켜 출력하는 제2 9시프트레지스터; 상기 제2 9시프트레지스터의 출력 데이터와 상기 제3 절대차합 계산부의 출력 데이터를 합산하는 제2 가산기; 제3 계산부로부터 출력된 절대차합 데이터를 9 시프트시켜 출력하는 제3 9시프트레지스터; 상기 제3 9시프트레지스터의 출력 데이터와 상기 제4 절대차합 계산부의 출력 데이터를 합산하는 제3 가산기;를 구비하는 것을 특징으로 하는 움직임 추정기.
  7. 제6항에 있어서,
    상기 제1 절대차합 계산부는 레지스터들(CR0, CR1, CR2, CR3)과, 일 입력단은 상기 레지스터들(CR0, CR1, CR2, CR3)의 출력단에 접속되고 타 입력단은 스위치들에 접속된 감산기들(SUB)을 구비하고, 상기 제2 절대차합 계산부는 레지스터들(CR4, CR5, CR6, CR7)과, 일 입력단은 상기 레지스터들(CR4, CR5, CR6, CR7)의 출력단에 접속되고 타 입력단은 스위치들에 접속된 감산기들(SUB)을 구비하며, 상기 제3 절대차합 계산부는 레지스터들(CR8, CR9, CR10, CR11)과, 일 입력단은 상기 레지스터들(CR8, CR9, CR10, CR11)의 출력단에 접속되고 타 입력단은 스위치들에 접속된 감산기들(SUB)을 구비하고, 상기 제4 절대차합 계산부는레지스터들(CR12, CR13, CR14, CR15)과, 일 입력단은 상기 레지스터들(CR12, CR13, CR14, CR15)의 출력단에 접속되고 타 입력단은 스위치들에 접속된 감산기들(SUB)을 구비하는 것을 특징으로 하는 움직임 추정기.
  8. 제1항에 있어서,
    이전 탐색 영역의 데이터를 보간하여 보간된 데이터를 출력하는 보간부;를 더 포함하는 것을 특징으로 하는 움직임 추정기.
  9. 제1항에 있어서,
    이전 탐색 영역에 해당하는 데이터와 현재 처리 블록에 해당하는 데이터를 구분하는 동작을 수행하고, 처리 상황에 따라 상기 이전 탐색 영역 데이터 공급부와 상기 계산부로 데이터를 공급하도록 제어하는 DMA 제어부를 더 포함하는 것을 특징으로 하는 움직임 추정기.
KR20000004049A 2000-01-27 2000-01-27 움직임 추정기 KR100677082B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR20000004049A KR100677082B1 (ko) 2000-01-27 2000-01-27 움직임 추정기
EP20000311043 EP1120747A3 (en) 2000-01-27 2000-12-12 Motion estimator
CNB011012854A CN1157956C (zh) 2000-01-27 2001-01-17 运动估计器
JP2001016271A JP3863376B2 (ja) 2000-01-27 2001-01-24 動き推定器
US09/770,235 US6690730B2 (en) 2000-01-27 2001-01-29 Motion estimator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20000004049A KR100677082B1 (ko) 2000-01-27 2000-01-27 움직임 추정기

Publications (2)

Publication Number Publication Date
KR20010076707A true KR20010076707A (ko) 2001-08-16
KR100677082B1 KR100677082B1 (ko) 2007-02-01

Family

ID=19642130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20000004049A KR100677082B1 (ko) 2000-01-27 2000-01-27 움직임 추정기

Country Status (5)

Country Link
US (1) US6690730B2 (ko)
EP (1) EP1120747A3 (ko)
JP (1) JP3863376B2 (ko)
KR (1) KR100677082B1 (ko)
CN (1) CN1157956C (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030073141A (ko) * 2002-03-08 2003-09-19 주식회사 엘지이아이 Mpeg-4 비디오 코덱에서 움직임 벡터 코딩을 위한움직임 벡터 메모리 최소화 방법
US6928116B2 (en) 2003-05-20 2005-08-09 Pantech Co., Ltd. Motion estimation method using multilevel successive elimination algorithm
KR100621137B1 (ko) * 2004-02-27 2006-09-13 세이코 엡슨 가부시키가이샤 동화상 부호화 장치 및 동화상 처리장치
KR100657274B1 (ko) * 2004-08-24 2006-12-14 삼성전자주식회사 인트라 예측방법 및 그 방법을 사용한 영상처리장치
KR100686393B1 (ko) * 2005-04-07 2007-03-02 주식회사 텔레칩스 하드웨어 구현에 적합한 움직임 예측 장치 및 그 방법
KR100788023B1 (ko) * 2005-09-08 2007-12-21 콴타 컴퓨터 인코포레이티드 움직임 벡터 추정 시스템 및 그 방법
KR100846780B1 (ko) * 2003-11-10 2008-07-16 삼성전자주식회사 움직임 벡터 추정 방법 및 장치
KR100970726B1 (ko) * 2003-10-04 2010-07-16 삼성전자주식회사 계층적 움직임 추정 방법
KR100973083B1 (ko) * 2008-12-31 2010-07-29 전자부품연구원 어레이 기반의 움직임 벡터 추출기 및 그 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4765194B2 (ja) * 2001-05-10 2011-09-07 ソニー株式会社 動画像符号化装置、動画像符号化方法、動画像符号化プログラム格納媒体及び動画像符号化プログラム
US6987866B2 (en) * 2001-06-05 2006-01-17 Micron Technology, Inc. Multi-modal motion estimation for video sequences
US7236177B2 (en) * 2001-12-04 2007-06-26 Qualcomm Incorporated Processing digital video data
US7940844B2 (en) 2002-06-18 2011-05-10 Qualcomm Incorporated Video encoding and decoding techniques
US7817717B2 (en) * 2002-06-18 2010-10-19 Qualcomm Incorporated Motion estimation techniques for video encoding
KR20040008359A (ko) * 2002-07-18 2004-01-31 삼성전자주식회사 계층적 움직임 벡터 탐색을 이용한 움직임 추정 방법 및장치 및 그를 적용한 동영상 부호화 시스템
EP1395061A1 (en) * 2002-08-27 2004-03-03 Mitsubishi Electric Information Technology Centre Europe B.V. Method and apparatus for compensation of erroneous motion vectors in video data
CN101394563B (zh) * 2003-07-15 2011-10-19 汤姆森许可公司 具有利用快速搜索块匹配的运动估计器的视频编码器
TWI239474B (en) * 2004-07-28 2005-09-11 Novatek Microelectronics Corp Circuit for counting sum of absolute difference
CN100339976C (zh) * 2004-08-09 2007-09-26 Thomson宽带研发(北京)有限公司 多模多尺度运动估计的超大规模集成电路体系结构及方法
US20060120455A1 (en) * 2004-12-08 2006-06-08 Park Seong M Apparatus for motion estimation of video data
EP1729518A1 (en) * 2005-05-31 2006-12-06 Novatek Microelectronics Corp. Circuit for computing sums of absolute difference
TWI444047B (zh) * 2006-06-16 2014-07-01 Via Tech Inc 用於視訊解碼的去方塊效應濾波器、視訊解碼器與圖形處理單元
US8275049B2 (en) 2006-06-16 2012-09-25 Via Technologies, Inc. Systems and methods of improved motion estimation using a graphics processing unit
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
US8090024B2 (en) * 2007-06-25 2012-01-03 Sigma Designs, Inc. Methods for processing two data frames with scalable data utilization
CN101212682B (zh) * 2007-12-22 2011-06-15 深圳市同洲电子股份有限公司 一种运动搜索区域的数据加载装置和方法
US8098733B2 (en) * 2008-03-10 2012-01-17 Neomagic Corp. Multi-directional motion estimation using parallel processors and pre-computed search-strategy offset tables
US8982952B2 (en) * 2008-06-02 2015-03-17 Broadcom Corporation Method and system for using motion vector confidence to determine a fine motion estimation patch priority list for a scalable coder
CN102790884B (zh) * 2012-07-27 2016-05-04 上海交通大学 一种基于分层运动估计的搜索方法及其实现系统
TW201409994A (zh) 2012-08-30 2014-03-01 Novatek Microelectronics Corp 立體視訊的編碼方法與編碼裝置
CN103686190A (zh) * 2012-09-07 2014-03-26 联咏科技股份有限公司 立体视频的编码方法与编码装置
EP2772189A1 (en) * 2013-02-28 2014-09-03 Koninklijke Philips N.V. Apparatus and method for determining vital sign information from a subject
CN103974077B (zh) * 2014-05-14 2017-04-19 东南大学 一种用于h.264编码的整数运动估计快速搜索方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05300497A (ja) * 1992-04-21 1993-11-12 Mitsubishi Electric Corp 画像処理装置及びディジタル信号処理プロセッサ
US5706059A (en) * 1994-11-30 1998-01-06 National Semiconductor Corp. Motion estimation using a hierarchical search
FR2728091B1 (fr) * 1994-12-13 1997-01-31 Thomson Consumer Electronics Procede de selection de vecteurs mouvement et dispositif de traitement d'images mettant en oeuvre ledit procede
US6549575B1 (en) * 1996-11-07 2003-04-15 International Business Machines Corporation. Efficient, flexible motion estimation architecture for real time MPEG2 compliant encoding
US6118901A (en) * 1997-10-31 2000-09-12 National Science Council Array architecture with data-rings for 3-step hierarchical search block matching algorithm
KR100275694B1 (ko) * 1998-03-02 2000-12-15 윤덕용 실시간 동영상 부호화를 위한 초고속 움직임 벡터 추정방법
DE69801209T2 (de) * 1998-03-20 2001-11-08 St Microelectronics Srl Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
TW376659B (en) * 1998-05-21 1999-12-11 Nat Science Council Motion estimator using 3-step hierarchical search block-matching algorithm
JPH11346369A (ja) * 1998-06-01 1999-12-14 Nec Corp 動ベクトル検出回路
US6259737B1 (en) * 1998-06-05 2001-07-10 Innomedia Pte Ltd Method and apparatus for fast motion estimation in video coding
US6363117B1 (en) * 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
JP2001251632A (ja) * 1999-12-27 2001-09-14 Toshiba Corp 動きベクトル検出方法および装置並びに動きベクトル検出プログラム
US6563874B1 (en) * 2000-06-23 2003-05-13 Hitachi America, Ltd. Fast search method for motion estimation

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030073141A (ko) * 2002-03-08 2003-09-19 주식회사 엘지이아이 Mpeg-4 비디오 코덱에서 움직임 벡터 코딩을 위한움직임 벡터 메모리 최소화 방법
US6928116B2 (en) 2003-05-20 2005-08-09 Pantech Co., Ltd. Motion estimation method using multilevel successive elimination algorithm
KR100970726B1 (ko) * 2003-10-04 2010-07-16 삼성전자주식회사 계층적 움직임 추정 방법
KR100846780B1 (ko) * 2003-11-10 2008-07-16 삼성전자주식회사 움직임 벡터 추정 방법 및 장치
US8170104B2 (en) 2003-11-10 2012-05-01 Samsung Electronics Co., Ltd. Apparatus and method for motion vector prediction
KR100621137B1 (ko) * 2004-02-27 2006-09-13 세이코 엡슨 가부시키가이샤 동화상 부호화 장치 및 동화상 처리장치
KR100657274B1 (ko) * 2004-08-24 2006-12-14 삼성전자주식회사 인트라 예측방법 및 그 방법을 사용한 영상처리장치
KR100686393B1 (ko) * 2005-04-07 2007-03-02 주식회사 텔레칩스 하드웨어 구현에 적합한 움직임 예측 장치 및 그 방법
KR100788023B1 (ko) * 2005-09-08 2007-12-21 콴타 컴퓨터 인코포레이티드 움직임 벡터 추정 시스템 및 그 방법
KR100973083B1 (ko) * 2008-12-31 2010-07-29 전자부품연구원 어레이 기반의 움직임 벡터 추출기 및 그 방법

Also Published As

Publication number Publication date
EP1120747A3 (en) 2004-05-19
US20010028681A1 (en) 2001-10-11
JP3863376B2 (ja) 2006-12-27
CN1316856A (zh) 2001-10-10
EP1120747A2 (en) 2001-08-01
KR100677082B1 (ko) 2007-02-01
JP2001218215A (ja) 2001-08-10
CN1157956C (zh) 2004-07-14
US6690730B2 (en) 2004-02-10

Similar Documents

Publication Publication Date Title
KR100677082B1 (ko) 움직임 추정기
KR101578052B1 (ko) 움직임 추정 장치 및 이를 구비하는 동영상 부호화 장치
JP3715283B2 (ja) 動画像の画像圧縮符号化方法及び装置
US10785498B2 (en) System and method of mapping multiple reference frame motion estimation on multi-core DSP architecture
JP2008538433A (ja) 領域ベース複数パス動き推定及び時間的動きベクトル候補の更新を用いたビデオ処理
JPH08140094A (ja) 動きベクトル探索装置
Wang et al. A fast algorithm and its VLSI architecture for fractional motion estimation for H. 264/MPEG-4 AVC video coding
US8509567B2 (en) Half pixel interpolator for video motion estimation accelerator
US8135224B2 (en) Generating image data
KR100416444B1 (ko) 모션벡터선택방법및이방법을수행하는이미지처리장치
Ruiz et al. An efficient VLSI architecture of fractional motion estimation in H. 264 for HDTV
Baglietto et al. Parallel implementation of the full search block matching algorithm for motion estimation
JP2008060836A (ja) 動きベクトル探索方法及び装置
US6380987B1 (en) Motion vector detection circuit enabling high-speed search of motion vector
JP4101645B2 (ja) 動きベクトル検出装置,動きベクトル検出方法,プログラム,および記録媒体
JP3580612B2 (ja) 動画像符号化装置の動き検出装置
US20040120402A1 (en) Motion estimation apparatus for image data compression
KR100926440B1 (ko) 영상부호화를 위한 블록 매칭 움직임 추정 장치
KR100359091B1 (ko) 움직임추정장치
JP4155102B2 (ja) 画素値演算装置、動画像符号化装置及び動画像復号化装置
KR100277890B1 (ko) 엠펙-2에 따른 움직임 벡터 추정 장치
JP3698501B2 (ja) 動きベクトル検出装置
KR100274014B1 (ko) Mpeg2용 반 화소 이동벡터 추출장치
JP4160855B2 (ja) ブロックマッチング画像処理装置
KR0155815B1 (ko) 화소 보간을 위한 반올림 연산장치

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee