KR20060130299A - 움직임 추정 프로세서 - Google Patents

움직임 추정 프로세서 Download PDF

Info

Publication number
KR20060130299A
KR20060130299A KR1020050050900A KR20050050900A KR20060130299A KR 20060130299 A KR20060130299 A KR 20060130299A KR 1020050050900 A KR1020050050900 A KR 1020050050900A KR 20050050900 A KR20050050900 A KR 20050050900A KR 20060130299 A KR20060130299 A KR 20060130299A
Authority
KR
South Korea
Prior art keywords
block data
horizontal processing
search block
data
search
Prior art date
Application number
KR1020050050900A
Other languages
English (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 KR1020050050900A priority Critical patent/KR20060130299A/ko
Publication of KR20060130299A publication Critical patent/KR20060130299A/ko

Links

Images

Classifications

    • 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/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/97Matching pursuit coding

Landscapes

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

Abstract

본 발명의 움직임 추정 프로세서는, 이전 프레임 내 탐색 블록 데이터와 현재 프레임내 레퍼런스 블록 데이터를 입력받아 k개의 픽셀들에 대한 SAD(Sum Absolute Difference) 연산을 수행하여 최소 SAD 블록 및 그에 대응하는 움직임 벡터를 출력한다. 따라서, 적은 클럭 사이클 내에 매크로 블록 또는 블록의 정합을 판단할 수 있다. 그러므로 움직임 추정 프로세서의 동작 속도가 향상된다.

Description

움직임 추정 프로세서{MOTION ESTIMATION PROCESSOR}
도 1a는 크기가 N*N인 레퍼런스 블록을 보여주는 도면;
도 1b는 움직임 벡터가 p인 경우 이전 프레임 내 비교 블록과 현재 프레임 내 레퍼런스 블록을 보여주는 도면;
도2는 매 클럭 사이클당 하나의 픽셀에 대한 계산을 처리하는 일반적인 프로세싱 단위 요소를 보여주는 도면;
도3은 매 클럭 사이클당 4개의 픽셀에 대한 계산을 처리하는 본 발명의 바람직한 실시예에 따른 프로세싱 단위 요소(PE)의 도면;
도 4는 도 3에 도시된 프로세싱 단위 요소를 포함하여 수평 16개의 후보지점에 대한 16개의 SAD를 동시에 계산하는 본 발명의 바람직한 실시예에 따른 수평 프로세싱 배열(H_PE)의 구조를 보여주는 도면;
도 5는 도 4에 도시된 수평 프로세싱 배열을 이용하여 수평 32개의 후보지점에 대한 32개의 SAD를 동시에 계산하는 본 발명의 바람직한 실시예에 따른 수직 프로세싱 배열의 구조를 보여주는 도면;
도 6은 하나의 메모리 워드가 32비트로 구성되어 있을 경우 레퍼런스 블록 데이터를 보여주는 도면;
도 7은 탐색 영역 데이터를 보여주는 도면;
도 8은 도 4에 도시된 수평 프로세싱 배열 내 프로세싱 단위 요소들의 입력 단자들로 매 사이클마다 입력되는 신호들을 정리하여 보여주는 도면;
도 9는 수평 프로세싱 배열들의 입력 단자들로 입력되는 신호들을 보여주는 도면; 그리고
도 10은 수평 프로세싱 배열들의 입력 단자들로 입력되는 데이터의 위치 즉, 레퍼런스 블록과 탐색 블록의 위치를 보여주는 도면이다.
본 발명은 영상 처리 프로세서에 관한 것으로, 좀 더 구체적으로는 움직임 추정 프로세서에 관한 것이다.
동영상 압축 표준에 의한 압축 수행은 한 프레임 내에서의 공간적 중복성과 프레임간 시간적 중복성을 제거함으로써 이루어진다. 시간적 중복성 제거는 8x8 픽셀로 이루어진 블록 또는 16x16 픽셀로 이루어진 매크로 블록 단위로 휘도 성분에 대해 움직임 추정 과정을 거쳐 이전 프레임과 현재 프레임간의 움직임을 나타내는 움직임 벡터를 구하고 이 움직임 벡터에 의해 결정된 이전 블록에 대해 움직임 보상을 수행하여 현재 블록과 움직임 보상된 이전 블록간의 차를 이산여현부호화, 양자화 및 가변장부호화의 단계를 거쳐 압축 비트스트림을 생성한다.
움직임 추정은 동영상 압축의 여러 단계 중 처리 시간이 가장 많이 걸리는 단계로써 동영상 압축의 성능을 결정하는 중대한 부분이다. 최근 모바일 환경에서 의 동영상 압축에 대한 요구가 작은 사이즈와 낮은 동작 주파수에서 비디오 캠코더에서의 동영상 압축과 동일한 VGA급 이미지의 초당 30프레임 압축을 요구함에 따라 한 매크로 블록의 처리를 2000클럭 사이클 이내에서 이루어져야 한다. 이 사양을 맞추기 위하여 움직임 추정 단계의 처리 시간을 줄이는 것이 절대적으로 필요하다. 움직임 추정은 매크로 블록 또는 블록 단위로 현재 프레임의 매크로 블록 또는 블록과 가장 비슷한 이전 프레임에서의 매크로 블록 또는 블록을 찾는 블록 정합 알고리즘을 사용한다. 블록 정합 기준의 기준으로는 여러 가지가 있으나 픽셀당 차분의 절대치의 평균값(Mean Absolute Difference:MAD)을 이용하는 것이 하드웨어로 구현이 용이하며 가장 많이 사용된다.
일반적으로 동영상 압축 시스템에서 움직임 추정 시 매크로 블록 또는 블록 단위의 픽셀당 차분의 절대치 합(Sum Absolute Difference:SAD) 계산은 매 클럭 사이클당 하나의 픽셀에 대한 차분의 절대치를 더함으로써 구하였다. 이것은 탐색 영역 내 한 지점에서의 정합을 위한 계산 시간이 정합 판단의 단위요소를 이루는 픽셀 수와 동일한 사이클 만큼 소요함을 의미하고, 탐색 영역 내 모든 점에서의 움직임 추정은 많은 클럭 사이클을 요구하여 한 매크로 블록 처리시간이 길어지는 문제를 가지고 있다.
따라서 본 발명의 목적은 동작 속도가 향상된 움직임 추정 프로세서를 제공하는데 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 의하면, 움직임 추정 프로세서는: 이전 프레임 내 제 1 탐색 블록 데이터와 제 2 탐색 블록 데이터 그리고 현재 프레임내 레퍼런스 블록 데이터를 입력받아 k개의 픽셀들에 대한 SAD(Sum Absolute Difference) 연산을 수행하고, 최소 SAD를 출력하는 제 1 수평 프로세싱 배열 블록과, 각각이 지연된 제 1 탐색 블록 데이터와 지연된 제 2 탐색 블록 데이터 그리고 지연된 레퍼런스 블록 데이터를 입력받아 k개의 픽셀들에 대한 SAD(Sum Absolute Difference) 연산을 수행하고, 최소 SAD를 출력하는 복수의 제 2 수평 프로세싱 배열 블록들, 그리고 상기 제 1 및 제 2 수평 프로세싱 배열 블록들로부터의 최소 SAD들 중 최소 SAD 및 그에 대응하는 움직임 벡터를 출력하는 제어 블록을 포함한다.
바람직한 실시예에 있어서, 상기 제 1 수평 프로세싱 배열 블록은, 제 1 선택 신호에 응답해서 상기 제 1 탐색 블록 데이터와 상기 제 2 탐색 블록 데이터 중 어느 하나를 출력하는 제 1 멀티플렉서, 그리고 상기 제 1 멀티플렉서로부터 출력되는 데이터, 상기 제 2 탐색 블록 데이터 및 상기 현재 프레임내 레퍼런스 블록 데이터를 입력받아 상기 SAD 연산을 수행하는 제 1 수평 프로세싱 배열을 포함한다.
이 실시예에 있어서, 상기 제 2 수평 프로세싱 배열 블록들 각각은, 상기 제 1 탐색 블록 데이터를 입력받아 지연시키는 제 1 지연기와, 상기 제 2 탐색 블록 데이터를 입력받아 지연시키는 제 2 지연기와, 제 2 선택 신호에 응답해서 상기 제 1 지연기에 의해 지연된 제 1 탐색 블록 데이터와 상기 상기 제 2 지연기에 의해 지연된 제 2 탐색 블록 데이터 중 어느 하나를 출력하는 제 2 멀티플렉서와, 상기 레퍼런스 블록 데이터를 입력받아 지연시키는 제 3 지연기, 그리고 상기 제 2 멀티플렉서로부터 출력되는 데이터, 상기 제 2 탐색 블록 데이터 및 상기 제 3 지연기에 의해 지연된 레퍼런스 블록 데이터를 입력받아 상기 SAD 연산을 수행하는 제 2 수평 프로세싱 배열을 포함한다.
이 실시예에 있어서, 상기 제 2 수평 프로세싱 배열 블록들 내 상기 제 1 지연기들, 상기 제 2 지연기들 및 상기 제 3 지연기들 각각은 직렬로 연결된다.
이 실시예에 있어서, 상기 제 1 내지 제 3 지연기들은 입력된 신호를 클럭 신호의 1 사이클만큼 지연시킨다.
이 실시예에 있어서, 상기 제어 블록은 상기 제 1 선택 신호 및 상기 제 2 선택 신호들을 출력한다.
이 실시예에 있어서, 상기 제 1 및 제 2 수평 프로세싱 배열들 각각은, 각각이 상기 제 1 탐색 블록 데이터와 상기 제 2 탐색 블록 데이터 및 상기 레퍼런스 블록 데이터를 입력받아서 n 픽셀들에 대한 상기 SAD 연산을 수행하는 복수의 프로세싱 단위 요소들을 포함한다.
이 실시예에 있어서, 상기 프로세싱 단위 요소들 각각은, 상기 n 픽셀들에 각각 대응하며, 상기 레퍼런스 블록 내 대응하는 픽셀의 데이터 및 상기 제 1 탐색 블록 데이터의 차를 계산하는 n 개의 차분기들과, 상기 차분기들에 각각 대응하고, 대응하는 차분기로부터 출력되는 차값의 절대값을 계산하는 n 개의 절대값 계산기들, 그리고 상기 절대값 계산기들로부터 출력되는 절대값들을 누산하는 n 개의 누 산기들을 포함한다.
이와 같은 구성에 의해서 적은 클럭 사이클 내에 매크로 블록 또는 브록의 정합을 판단할 수 있다. 그러므로 움직임 추정 프로세서의 동작 속도가 향상된다.
(실시예)
본 발명에서는 움직임 추정 단계에서의 처리 시간을 줄이기 위하여 4개의 픽셀에 대한 계산을 동시에 수행 가능한 프로세싱 단위 요소(PE)와 이 프로세싱 단위 요소로 이루어진 움직임 추정 프로세싱 배열 구조를 제안하여 적은 수의 프로세싱 단위 요소를 이용하여 움직임 추정을 수행함으로써 작은 사이즈로 VGA급 이미지에 대한 동영상 압축을 초당 30프레임이 가능하게 한다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
블록 매칭을 이용한 움직임 추정 알고리즘은 인접한 두 프레임간의 움직임을 블록 단위로 움직임을 계산한다. 블록 매칭 움직임 추정을 위해서 현재 프레임은 NxN 사이즈의 레퍼런스 블록(Reference Block)으로 나뉘어진다. 움직임 추정에서 허용되는 최대 움직임 변위(Displacement) 또는 움직임 벡터가 p일 경우, 탐색 영역인 (N+2p)x(N+2p) 사이즈의 이전 프레임 내에 있는 각 블록들과 비교하여 가장 유사한 블록에 대한 움직임 벡터를 구한다. 이후의 설명에서는 이해의 용이함을 위하여 레퍼런스 블록의 사이즈가 16x16, 움직임 변위를 -16에서 +15에 대한 풀서치(Full Search)에 대해서 기술한다. 도 1a는 크기가 N*N인 레퍼런스 블록을 보여주고 있고, 도 1b는 움직임 벡터가 p인 경우 현재 프레임 내 레퍼런스 블록과 이전 프레임 내 비교 블록을 보여주고 있다.
블록 정합의 기준으로 여러 가지가 사용되며, 그중 SAD 또는 MAD는 하드웨어 구현의 용이하기 때문에 널리 이용된다. SAD는 레퍼런스 블록과 탐색 영역 내에 존재하는 하나의 블록간에 동일 위치의 픽셀 간 차분 신호의 절대치의 합이고 MAD는 그 합의 평균값이다. 탐색 영역의 하나의 후보지점에서 차분 신호의 절대치의 합을 구하기 위해서는 도2의 구조를 갖는 프로세싱 단위 요소가 일반적으로 사용된다.
일반적인 프로세싱 단위 요소는 차분기(210), 절대값 계산기(220) 그리고 누산기(230)로 이루어진다. 래치(240)는 누산기(230)로부터 출력되는 SAD를 저장한다.
16x16 사이즈의 레퍼런스 블록에 대해 한 후보지점에서의 계산 시간은 256 클럭 사이클이 소요된다. 그러므로, 한 프레임의 SAD를 계산하는데에는 많은 시간이 소요된다.
레퍼런스 블록과 탐색 영역 내 비교 블록의 데이터는 메모리에 저장되는데, 일반적으로 메모리의 한 워드에는 여러 픽셀이 동시에 저장된다. 메모리의 워드 사이즈가 32비트로 구성된다고 할 때, 8비트의 픽셀 데이터 4개가 하나의 워드를 구성하게 된다. 본 발명에서는 메모리를 한 번 억세스하여 읽은 데이터를 동시에 처리할 수 있는 프로세싱 단위 요소 구조를 제안한다.
도 3은 본 발명의 바람직한 실시예에 따른 프로세싱 단위 요소의 구조를 보여주고 있다.
프로세싱 단위 요소(PE)(300)는 차분기들(311-314)을 포함하는 차분 회로 (310), 절대값 계산기들(3121-324), 가산기들(330, 361-364), 래치들(340, 381), 디멀티플렉서(350), 누산기들(371-374) 그리고 쉬프터(382)를 포함한다.
프로세싱 단위 요소(300)의 입력인 현재 프레임 내 레퍼런스 블록 데이터(CI[31:0])와 이전 프레임 내 탐색 블록 데이터(PHI[23:0], PMI[7:0])는 32비트, 즉 4개의 픽셀이 동시에 가해진다. 본 발명의 바람직한 실시예에 따른 프로세싱 단위 요소(300)는 SAD를 계산하는 차분기(311), 절대치 계산회로(321) 그리고 누산기(371)가 4 개의 픽셀에 각각 대응하도록 4 세트 포함한다.
탐색 블록 데이터(PHI[23:0], PMI[7:0])는 쉬프터(382)를 통과하여 하위 데이터만 선택함으로써 데이터 패스를 줄이는 것이 가능하다. 선택된 탐색 영역 데이터(PHI[23:0])와 레퍼런스 데이터(CI[31:0])는 래치(381)와 쉬프터(382)를 통하여 배열 내 다음 프로세싱 단위 요소들로 전달되어진다.
누산기들(371-374)을 차분신호의 절대치를 누적할 때 디멀티플렉서(350) 및 선택 신호(SEL_B[1:0])에 의해서 누산기를 선택할 수 있게 함으로써, 레퍼런스 블록의 사이즈를 8x8, 8x16, 16x8 또는 16x16로 계산 가능하다. 도 3에 도시된 프로세싱 단위 요소(300)에 의해서 SAD0-SAD3이 출력된다.
도 6은 하나의 메모리 워드가 32비트로 구성되어 있을 경우 레퍼런스 블록 데이터를 그리고 도 7은 탐색 영역 데이터를 보여주고 있다. 메모리의 워드가 32비트이으로 한 워드당 4개의 픽셀이 저장된다.
도 3에 도시된 프로세싱 단위 요소를 포함하여 수평 16개의 후보지점에 대한 16개의 SAD를 동시에 계산하는 본 발명의 바람직한 실시예에 따른 수평 프로세싱 배열(H_PE)(400)의 구조가 도 4에 도시되어 있다.
도 4를 참조하면, 수평 프로세싱 배열(400)은 플립플롭들(401-404), 멀티플렉서들(411-414), 프로세싱 단위 요소들(422-424) 그리고 수평 프로세싱 배열 제어 블록(430)을 포함한다. 프로세싱 단위 요소들(422-424) 각각은 도 3에 도시된 구성을 포함한다.
신호들 PIO[31:0] 및 PI1[31:0] 각각은 이전 프레임 내 탐색 블록의 데이터이고, 신호 CI[31:0]는 현재 프레임의 레퍼런스 블록 데이터이다. 탐색 블록들의 데이터는 메모리로부터 도굴된다.
멀티플렉서들(411-414)은 수평 프로세싱 배열 제어 블록(430)에서 발생된 선택 신호들(HSEL0-HSEL3) 중 대응하는 선택 신호에 응답해서 탐색 블록의 데이터 중 하위 7 비트를 대응하는 프로세싱 단위 요소(PE)의 PMI 단자로 입력한다. 프로세싱 단위 요소들(421-424)은 입력 단자들(CI, PHI, PMI)로 입력되는 신호들에 응답해서 SAD 신호들(SAD0-SAD3)을 출력한다. 수평 프로세싱 배열 제어 블록(430)은 프로세싱 단위 요소들(421-424)로부터 입력된 SAD들 중 최소 SAD들(MSAD0~MSAD3)을 출력한다. 도 8은 도 4에 도시된 수평 프로세싱 배열(400) 내 프로세싱 단위 요소들(422-424)의 입력 단자들(PHI, PMI)로 매 사이클마다 입력되는 신호들을 정리하여 보여주고 있다.
도 4에 도시된 수평 프로세싱 배열(400)을 이용하여 수평 32개의 후보지점에 대한 32개의 SAD를 동시에 계산하는 본 발명의 바람직한 실시예에 따른 수직 프로세싱 배열의 구조가 도 5에 도시되어 있다.
도 5를 참조하면, 수직 프로세싱 배열(500)은 수평 프로세싱 배열 블록들(551-554)을 포함한다. 수평 프로세싱 배열 블록(551)은 멀티플렉서(511)와 수평 프로세싱 배열(521)을 포함한다. 수평 프로세싱 배열 블록(552)은 플립플롭들(501, 504, 531), 멀티플렉서(512) 그리고 수평 프로세싱 배열(522)을 포함한다. 수평 프로세싱 배열 블록(553)은 플립플롭들(502, 505, 532), 멀티플렉서(513) 그리고 수평 프로세싱 배열(523)을 포함한다. 수평 프로세싱 배열 블록(554)은 플립플롭들(503, 506, 533), 멀티플렉서(514) 그리고 수평 프로세싱 배열(524)을 포함한다.
플립플롭들(501-503)은 직렬로 연결되고, 플립플롭들(504-506)은 직렬로 연결되고, 그리고 플립플롭들(531-533)은 직렬로 연결된다.
수평 프로세싱 배열들(521-524) 각각은 도 4에 도시된 구성을 포함한다. 수평 프로세싱 배열들(521-524)의 입력 단자들(HPI0, HPI1)로 입력되는 신호들이 도 9에 정리되어 있다. 도 10은 수평 프로세싱 배열들(521-524)의 입력 단자들(HPI0, HPI1)로 입력되는 데이터의 위치 즉, 레퍼런스 블록과 탐색 블록의 위치를 보여주는 도면이다.
플립플롭 쌍(501, 504)은 신호들(PI0[31:0], PI1[31:0])을 클럭 신호(미 도시됨)의 1 사이클만큼 지연시킨다. 플립플롭 쌍(502, 505)은 플립플롭 쌍(501, 504)으로부터 출력되는 신호들을 1사이클만큼 지연시킨다. 플립플롭 쌍(503, 506)은 플립플롭 쌍(502, 505)으로부터 출력되는 신호들을 1사이클만큼 지연시킨다.
멀티플렉서(511)는 수직 프로세싱 배열 제어 블록(540)으로부터 출력되는 선 택 신호들(VSEL0-VSEL3) 중 대응하는 선택 신호에 응답해서 신호들(PI0[31:0], PI1[31:0]) 중 어느 하나를 대응하는 수평 프로세싱 배열(H_PE)의 입력단(HPI1)으로 전달한다.
플립플롭들(531-533)은 직렬로 연결되고, 현재 프레임의 레퍼런스 블록 데이터를 1 사이클만큼씩 지연시켜서 대응하는 수평 프로세싱 배열(522-524)로 전달한다.
수직 프로세싱 배열 제어 블록(540)은 선택 신호들(VSEL_0-VSEL_3)을 발생하며, 수평 32개의 후보지점에 대한 32개의 SAD를 계산하고, 최종 선택된 SAD(S_SAD)와 움직임 벡터(M_V)를 출력한다.
도 3에 도시된 프로세싱 단위 요소(300)는 4 개의 픽셀에 대한 SAD를 한 사이클에 계산할 수 있다. 도 4에 도시된 수평 프로세싱 배열(400)은 도 3에 도시된 프로세싱 단위 요소(300)를 4 개 포함하여 수평 16 개 지점에 대한 16 개의 SAD를 동시에 계산할 수 있다. 또한, 도 5에 도시된 수직 프로세싱 배열(500)도 4에 도시된 수평 프로세싱 배열(400)을 4 개 포함하여 수평 32 개의 후보 지점에 대한 32 개의 SAD들을 동시에 계산하고, 4 개의 수평 프로세싱 배열들(512-524)에 의해서 구해진 SAD들 중에서 최소값을 선택하고, 선택된 최소 SAD에 대응하는 움직임 벡터를 결정한다.
이와 같은 수직 프로세싱 배열(500)은 움직임 추정 프로세서뿐만 아니라 계층적 움직임 추정 알고리즘의 구현에도 사용될 수 있다.
예시적인 바람직한 실시예를 이용하여 본 발명을 설명하였지만, 본 발명의 범위는 개시된 실시예에 한정되지 않는다는 것이 잘 이해될 것이다. 따라서, 청구범위는 그러한 변형 예들 및 그 유사한 구성들 모두를 포함하는 것으로 가능한 폭넓게 해석되어야 한다.
이와 같은 본 발명에 의하면, 현재 프레임의 데이터와 이전 프레임의 데이터 흐름을 제어함으로써 적은 클럭 사이클 내에 매크로 블록 또는 블록의 정합을 판단할 수 있다. 그러므로 움직임 추정 프로세서의 동작 속도가 향상된다.

Claims (8)

  1. 이전 프레임 내 제 1 탐색 블록 데이터와 제 2 탐색 블록 데이터 그리고 현재 프레임내 레퍼런스 블록 데이터를 입력받아 k개의 픽셀들에 대한 SAD(Sum Absolute Difference) 연산을 수행하고, 최소 SAD를 출력하는 제 1 수평 프로세싱 배열 블록과;
    각각이 지연된 제 1 탐색 블록 데이터와 지연된 제 2 탐색 블록 데이터 그리고 지연된 레퍼런스 블록 데이터를 입력받아 k개의 픽셀들에 대한 SAD(Sum Absolute Difference) 연산을 수행하고, 최소 SAD를 출력하는 복수의 제 2 수평 프로세싱 배열 블록들; 그리고
    상기 제 1 및 제 2 수평 프로세싱 배열 블록들로부터의 최소 SAD들 중 최소 SAD 및 그에 대응하는 움직임 벡터를 출력하는 제어 블록을 포함하는 움직임 추정 프로세서.
  2. 제 1 항에 있어서,
    상기 제 1 수평 프로세싱 배열 블록은,
    제 1 선택 신호에 응답해서 상기 제 1 탐색 블록 데이터와 상기 제 2 탐색 블록 데이터 중 어느 하나를 출력하는 제 1 멀티플렉서; 그리고
    상기 제 1 멀티플렉서로부터 출력되는 데이터, 상기 제 2 탐색 블록 데이터 및 상기 현재 프레임내 레퍼런스 블록 데이터를 입력받아 상기 SAD 연산을 수행하 는 제 1 수평 프로세싱 배열을 포함하는 움직임 추정 프로세서.
  3. 제 2 항에 있어서,
    상기 제 2 수평 프로세싱 배열 블록들 각각은,
    상기 제 1 탐색 블록 데이터를 입력받아 지연시키는 제 1 지연기와;
    상기 제 2 탐색 블록 데이터를 입력받아 지연시키는 제 2 지연기와;
    제 2 선택 신호에 응답해서 상기 제 1 지연기에 의해 지연된 제 1 탐색 블록 데이터와 상기 상기 제 2 지연기에 의해 지연된 제 2 탐색 블록 데이터 중 어느 하나를 출력하는 제 2 멀티플렉서와;
    상기 레퍼런스 블록 데이터를 입력받아 지연시키는 제 3 지연기; 그리고
    상기 제 2 멀티플렉서로부터 출력되는 데이터, 상기 제 2 탐색 블록 데이터 및 상기 제 3 지연기에 의해 지연된 레퍼런스 블록 데이터를 입력받아 상기 SAD 연산을 수행하는 제 2 수평 프로세싱 배열을 포함하는 움직임 추정 프로세서.
  4. 제 3 항에 있어서,
    상기 제 2 수평 프로세싱 배열 블록들 내 상기 제 1 지연기들, 상기 제 2 지연기들 및 상기 제 3 지연기들 각각은 직렬로 연결된 움직임 추정 프로세서.
  5. 제 4 항에 있어서,
    상기 제 1 내지 제 3 지연기들은 입력된 신호를 클럭 신호의 1 사이클만큼 지연시키는 움직임 추정 프로세서.
  6. 제 3 항에 있어서,
    상기 제어 블록은 상기 제 1 선택 신호 및 상기 제 2 선택 신호들을 출력하는 움직임 추정 프로세서.
  7. 제 3 항에 있어서,
    상기 제 1 및 제 2 수평 프로세싱 배열들 각각은,
    각각이 상기 제 1 탐색 블록 데이터와 상기 제 2 탐색 블록 데이터 및 상기 레퍼런스 블록 데이터를 입력받아서 n 픽셀들에 대한 상기 SAD 연산을 수행하는 복수의 프로세싱 단위 요소들을 포함하는 움직임 추정 프로세서.
  8. 제 7 항에 있어서,
    상기 프로세싱 단위 요소들 각각은,
    상기 n 픽셀들에 각각 대응하며, 상기 레퍼런스 블록 내 대응하는 픽셀의 데이터 및 상기 제 1 탐색 블록 데이터의 차를 계산하는 n 개의 차분기들과;
    상기 차분기들에 각각 대응하고, 대응하는 차분기로부터 출력되는 차값의 절대값을 계산하는 n 개의 절대값 계산기들; 그리고
    상기 절대값 계산기들로부터 출력되는 절대값들을 누산하는 n 개의 누산기들을 포함하는 움직임 추정 프로세서.
KR1020050050900A 2005-06-14 2005-06-14 움직임 추정 프로세서 KR20060130299A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050050900A KR20060130299A (ko) 2005-06-14 2005-06-14 움직임 추정 프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050050900A KR20060130299A (ko) 2005-06-14 2005-06-14 움직임 추정 프로세서

Publications (1)

Publication Number Publication Date
KR20060130299A true KR20060130299A (ko) 2006-12-19

Family

ID=37810747

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050050900A KR20060130299A (ko) 2005-06-14 2005-06-14 움직임 추정 프로세서

Country Status (1)

Country Link
KR (1) KR20060130299A (ko)

Similar Documents

Publication Publication Date Title
KR101578052B1 (ko) 움직임 추정 장치 및 이를 구비하는 동영상 부호화 장치
KR100793976B1 (ko) 움직임 추정 회로 및 그 동작 방법
EP1120747A2 (en) Motion estimator
EP1775963A1 (en) Motion vector detecting device, and motion vector detecting method
US5949486A (en) Unit for detecting motion vector for motion compensation
KR100226684B1 (ko) 반화소 움직임 추정장치
US7236634B2 (en) Image encoding of moving pictures
Cetin et al. An adaptive true motion estimation algorithm for frame rate conversion of high definition video and its hardware implementations
US20050013367A1 (en) Low complexity block size decision for variable block size motion estimation
Akin et al. High performance hardware architectures for one bit transform based single and multiple reference frame motion estimation
Akin et al. High performance hardware architectures for one bit transform based motion estimation
Baek et al. A fast array architecture for block matching algorithm
KR20060130299A (ko) 움직임 추정 프로세서
KR20030025058A (ko) 완전 탐색블록 정합회로 및 완전 탐색블록 정합방법
EP1420595A1 (en) Motion vector selection in a video motion estimator based on a preferred reference point
Campos et al. Integer-pixel motion estimation H. 264/AVC accelerator architecture with optimal memory management
Ndili et al. Fast algorithm and efficient architecture for integer and fractional motion estimation
KR100359091B1 (ko) 움직임추정장치
Pyen et al. An efficient hardware architecture for full-search variable block size motion estimation in H. 264/AVC
KR100204087B1 (ko) 전역탐색 블럭정합 움직임 추정기
Biswas et al. An efficient VLSI architecture for motion estimation using new three step search algorithm
Ismail A Complete Verification of a Full Search Motion Estimation Engine
US8270478B2 (en) Method and apparatus for computing a sliding sum of absolute differences
Dias et al. Efficient motion vector refinement architecture for sub-pixel motion estimation systems
Hiramori et al. A study on fast motion estimation algorithm

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination