KR101520027B1 - 움직임 추정 방법 및 장치 - Google Patents

움직임 추정 방법 및 장치 Download PDF

Info

Publication number
KR101520027B1
KR101520027B1 KR1020070061121A KR20070061121A KR101520027B1 KR 101520027 B1 KR101520027 B1 KR 101520027B1 KR 1020070061121 A KR1020070061121 A KR 1020070061121A KR 20070061121 A KR20070061121 A KR 20070061121A KR 101520027 B1 KR101520027 B1 KR 101520027B1
Authority
KR
South Korea
Prior art keywords
macroblocks
reference frame
motion estimation
macroblock
similarity
Prior art date
Application number
KR1020070061121A
Other languages
English (en)
Other versions
KR20080112568A (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 KR1020070061121A priority Critical patent/KR101520027B1/ko
Priority to US12/034,021 priority patent/US8576911B2/en
Publication of KR20080112568A publication Critical patent/KR20080112568A/ko
Application granted granted Critical
Publication of KR101520027B1 publication Critical patent/KR101520027B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • 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/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/436Methods 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 using parallelised computational arrangements
    • 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

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

본 발명은 효율적인 움직임 추정 방법에 관한 것으로, 움직임 추정 방법에 있어서, 현재 프레임의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록들을 수신하고, 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여 상기 현재 프레임내의 복수개의 메크로 블록들에 대하여 움직임 추정을 수행함으로써, 한정된 메모리 공간을 갖는 시스템의 성능을 향상시켜 효율적으로 움직임 추정을 수행한다.
움직임 추정, SIMD

Description

움직임 추정 방법 및 장치{Method and apparatus for motion estimation}
도 1은 종래 기술에 따른 움직임 추정에 관한 일 실시예를 도시한다.
도 2는 본 발명에 따른 움직임 추정 방법에 관한 흐름도를 도시한다.
도 3은 본 발명에 따른 움직임 추정에 관한 일 실시예를 도시한다.
도 4는 본 발명에 따른 복수개의 메크로 블록에 대하여 동시에 움직임 추정을 수행하는 방법에 관한 흐름도를 도시한다.
도 5는 본 발명에 따른 복수개의 메크로 블록에 대하여 동시에 움직임 추정을 수행하기 위한 멀티코어 시스템의 일 실시예를 도시한다.
도 6은 본 발명에 따른 SIMD 연산을 이용한 움직임 추정에 관한 일 실시예를 도시한다.
도 7은 본 발명에 따른 SIMD 연산을 이용한 움직임 추정시 레프런스 프레임내의 메크로 블록의 로드 방법에 관한 일 실시예를 도시한다.
도 8은 본 발명에 따른 움직임 추정 장치에 관한 블록도를 도시한다.
도 9는 도 8에서 도시된 움직임 추정부(820)의 구성의 일 실시예를 상세히 도시한다.
도 10는 본 발명에 따른 복수개의 메크로 블록에 대하여 동시에 움직임 추정을 수행하는 움직임 추정 장치(1000)에 관한 블록도를 도시한다.
본 발명은 움직임 추정 방법 및 그 장치에 관한 것으로, 특히 제한된 메모리를 가지는 프로세서에 의한 움직임 추정 방법 및 그 장치에 관한 것이다.
오늘날 인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상 통신등의 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대 용량의 저장 매체를 필요로 하며, 전송시에 넓은 대역폭을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축 코딩 기술이 필요하다.
데이터를 압축하는 기본적인 원리는 데이터의 중복 요소를 제거하는 것이다. 대표적인 비디오 부호화 기술은 인터-프레임 및 인트라-프레임 예측을 들 수 있다. 인트라-프레임 예측은 단일 프레임내에서 인접한 픽셀들간의 강한 상관도에 기초하여 영상을 부호화한다. 인터-프레임 예측은 비디오 시퀀스에 있어서 연속하는 프레임들 간에 유사성에 기초하여 영상을 부호화 한다.
움직이는 화면에서 급격한 변화가 없는 한 화면의 많은 부분들은 연속하는 프레임들 간에 거의 변화하지 않는다. 특히, 움직임 벡터 추정은 인터-프레임 예측에서 사용되는 대표적인 영상 부호화 기술 중 하나로써, 움직임 추정에 의해 계산된 움직임 벡터들을 차등 부호화함으로써 이미지를 처리하기 위한 기술이다.
일반적으로 어느 블록의 움직임 벡터는 인접 파티션의 움직임 벡터와 밀접한 상관 관계를 가진다. 그렇기 때문에 인접 파티션의 움직임 벡터로부터 현재 블록의 움직임 벡터를 추정하고 그 차분 벡터만을 부호화함으로써, 전송되는 데이터의 양을 줄일 수 있다.
도 1은 종래 기술에 따른 움직임 추정에 관한 일 실시예를 도시한다.
종래 기술에 따른 움직임 추정에 관한 일 실시예에서 현재 프레임내의 움직임 추정을 수행하고자 하는 메크로 블록(130)을 레퍼런스 프레임(110)내의 탐색 영역(120)과 비교함으로써 움직임 추정을 수행한다.
탐색 영역(120)은 일반적으로 현재 프레임내의 움직임 추정을 수행하고자 하는 메크로 블록(130)의 좌표로부터 일정 범위 내에 있는 레퍼런스 프레임(110)내의 영역이 된다.
프로세서내의 메모리에 레퍼런스 프레임(110)내의 탐색 영역(120)이 전송되면, 프로세서는 현재 프레임 내의 움직임 추정을 수행하고자 하는 메크로 블록(130)과 탐색 영역(120)을 비교하여 움직임 추정을 수행한다. 이 경우 현재 프레임 내의 메크로 블록(130)을 탐색 영역(120)내의 메크로 블록과 비교하고, 비교가 끝나면 한 픽셀 오른쪽에 위치한 메크로 블록과 비교함으로써 탐색 영역(120)내에서 현재 프래임 내의 메크로 블록(130)과 가장 유사한 메크로 블록을 찾는다.
다음 메크로 블록(131)에 대하여 움직임 추정을 수행하기 위하여 레퍼런스 프레임(110)내의 탐색 영역(121)을 프로세서내의 메모리로 전송하고, 전송이 완료되면 프로세서는 다음 메크로 블록(131)에 대하여 움직임 추정을 수행한다. 이와 같은움직임 추정의 경우에는 전송되는 데이터의 중복을 피할 수 없어 문제이다.
멀티코어 시스템에서의 병렬 프로세서(Parallel Processor)는 제한된 지역 메모리(Local memory)에만 접근하여 연산 처리를 수행하므로, 주 메모리(Main memory) 와 지역 메모리(Local memory)간의 DMA(Direct memory Access)를 통한 데이터 전송이 필요하다. 멀티코어 시스템에서 데이터의 효율적인 전송을 위해 병렬 프로세서(Parallel Processor)의 연산 과정 중에 백 그라운드로 DMA를 수행할 수 있도록 DMA 처리를 숨기는 것이 중요하다.
따라서, 적은 연산의 수행을 위한 많은 양의 데이터의 전송은 시스템의 성능을 저하시킬 수 있다. 특히나 비디오 데이터는 그 양이 방대하므로, 주 메모리와 지역 메모리간에 많은 데이터 전송이 필요하고, 결과적으로 데이터의 효율적인 사용이 비디오 처리의 성능에 큰 영향을 미치게 된다.
상술한 바와 같이 종래 기술에 따른 움직임 추정 방법은 데이터 전송에 있어서 중복되게 전송되는 영역이 상당부분 존재함으로 시스템의 성능을 크게 떨어뜨리게 된다. 따라서 보다 효율적으로 데이터를 사용하고, 연산을 수행함으로써 움직임 추정에 걸리는 시간을 단축시킬 필요가 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여, 데이터의 중복 전송을 방지하고, 병렬 처리를 수행함으로써 움직임 추정에 소요되는 시간을 단축시키기 위한 움직임 추정 방법 및 그 장치를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 하나의 특징은, 움직임 추정 방법에 있어서, 현재 프레임의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록들을 수신하는 단계; 상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여 상기 현재 프레임내의 복수개의 메크로 블록들에 대하여 움직임 추정을 수행하는 단계를 포함하는 것이다.
바람직하게는, 상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들은,상기 레퍼런스 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들 인 것이다.
바람직하게는, 상기 현재 프레임내의 복수개의 메크로 블록들은, 상기 현재 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들인 것이다.
바람직하게는, 상기 움직임 추정을 수행하는 단계는, 상기 현재 프레임내의 메크로 블록과 상기 수신된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 상기 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색하는 단계; 상기 검색된 메크로 블록과 이전에 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교하는 단계; 및 상기 비교 결과에 기초하여 상기 현재 프레임내의 메크로 블록과 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신하는 단계를 포함하는 것이다.
바람직하게는, 상기 유사도는 SAD(Sum of Absolute difference) 값이다.
바람직하게는, 상기 유사도가 가장 큰 메크로 블록에 대한 정보는, 움직임 추정에 기초하여 움직임 벡터인 것이다.
본 발명의 다른 하나의 특징은, 병렬 프로세서를 이용하여 움직임 추정을 수 행하는 방법에 있어서, 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정의 수행에 사용될 레퍼런스 프레임내의 복수개의 메크로 블록을 병렬 프로세서내의 저장공간으로 로드하는 단계; 및 상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여, 상기 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산을 동시에 수행하는 단계를 포함하는 것이다.
바람직하게는, 상기 움직임 추정을 위한 연산은 메크로 블록간 유사도를 나타내는 SAD(Sum of Absolute difference) 값에 관한 연산인 것이다.
바람직하게는, 상기 SAD 값에 관한 연산을 수행하는 단계는, 상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들과 상기 현재 프레임내의 복수개의 메크로 블록들간의 픽셀 값의 차이를 계산하는 단계; 및 상기 계산된 픽셀 값의 차이에 기초하여 상기 현재 프레임 내의 복수개의 메크로 블록 각각의 SAD 값을 계산하는 단계를 포함하는 것이다.
본 발명의 다른 하나의 특징은, 움직임 추정 장치에 있어서, 현재 프레임의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록들을 수신하는 수신부; 및 상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여 상기 현재 프레임내의 복수개의 메크로 블록들에 대하여 움직임 추정을 수행하는 움직임 추정부를 포함하는 것이다.
본 발명의 다른 하나의 특징은, 병렬 프로세서를 이용하여 움직임 추정을 수행하는 장치에 있어서, 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정의 수행에 사용될 레퍼런스 프레임내의 복수개의 메크로 블록이 로드되는 병렬 프로세 서내의 저장부; 및 상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여, 상기 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산을 동시에 수행하는 연산부를 포함하는 것이다.
도 2a는 본 발명에 따른 움직임 추정 방법에 관한 흐름도를 도시한다.
단계 210에서는 현재 프레임의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록들을 수신한다. 이 경우 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들은 레퍼런스 프레임내의 동일한 행이거나 동일한 열에 해당하는 메크로 블록 일 수 있다.
단계 220에서는 단계 210에서 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여 현재 프레임내의 복수개의 메크로 블록들에 대하여 움직임 추정을 수행한다. 단계 210에서 수신된 레프런스 프레임을 이용하여 움직임 추정을 수행할 현재 프레임내의 복수개의 메크로 블록들은 동일한 행이거나 동일한 열에 해당하는 메크로 블록 일 수 있다.
도 2b는 도 1의 단계 220에 관한 구체적인 흐름도를 도시한다.
단계 222에서는 현재 프레임내의 메크로 블록과 단계 210에서 수신된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색한다. 움직임 추정을 위한 메크로 블록간의 유사도는 SAD(Sum of Absolute difference)를 통하여 판단할 수 있다. 즉 SAD 값이 작은 메크로 블록이 현재 메크로 블록과 더 유사한 것으로 판단할 수 있다.
SAD값은 현재 프레임내의 움직임 추정을 수행할 메크로 블록과 레퍼런스 프 레임내의 메크로 블록의 픽셀별 차이를 구하고, 구해진 픽셀별 차이에 절대값을 취한 후 이들을 합함으로써 구해지게 된다. 따라서, 현재 프레임내의 메크로 블록과 레퍼런스 프레임내의 메크로 블록이 유사하면 픽셀별 차이가 작아지게 되고 SAD값도 작아지게 된다.
단계 224에서는 단계 222에서 검색된 유사도가 가장 큰 메크로 블록과 이전에 수신된 레프런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교한다. 이전에 수신된 레프런스 프레임내의 유사도가 가장 큰 메크로 블록에 대한 정보 및 유사도는 별도의 저장공간에 저장되어 있을 수 있다. 이 경우 단계 224에서는 별도의 저장공간으로부터 유사도를 전송받아 단계 222에서 검출된 메크로 블록의 유사도와 비교한다. 또한 메크로 블록에 대한 정보는 해당 메크로 블록의 위치 정보이며 이는 움직임 벡터일 수 있다.
단계 226에서는 단계 224에서의 비교 결과에 기초하여 단계 222에서 검출된 메크로 블록의 유사도가 이전에 수신된 레프런스 프레임내의 메크로 블록의 유사도보다 큰 경우에는 유사도가 가장 큰 메크로 블록에 대한 정보 및 유사도를 단계 222에서 검출된 메크로 블록에 관한 정보 및 유사도로 변경한다. 이는 앞서 설명한데로 별도의 저장공간에 저장될 수 있다.
도 3은 본 발명에 따른 움직임 추정에 관한 일 실시예를 도시한다.
도 3a는 로컬 메모리로 전송된 데이터를 이용하여 A1 메크로 블록(330-1)의 움직임 추정을 수행하는 실시예이다.
도 3a를 참조하면, 현재 프레임내의 복수개의 메크로 블록들(330)은 레퍼런 스 프레임(310)내의 메크로 블록과의 연산을 통하여 움직임 추정을 수행한다. 움직임 추정을 위해서는 현재 메크로 블록의 좌표로부터 소정범위 내인 탐색영역에 해당하는 레퍼런스 프레임내의 메크로 블록이 필요하다.
종래 기술에 의하면 레프런스 프레임내의 메크로 블록은 처리하고자 하는 현재 메크로 블록마다 탐색 영역을 지역 메모리(local memory)로 전송한다. 이 경우 데이터의 중복 전송이 발생하여 비 효율적임은 앞서 살펴본 바이다. 본 실시예에서, 레퍼런스 프레임내의 소정의 행에 해당하는 메크로 블록(340)을 지역 메모리로 한번에 전송한다. 본 실시예에서는 레퍼런스 프레임(310)내의 t1개(341)의 행을 한번에 전송한다.
A1 메크로 블록(330-1)의 움직임 벡터는 지역 메모리로 전송된 데이터(340)중 탐색영역에 해당하는 데이터(즉 데이터의 처음부터 SRx에 해당하는 영역)에 대하여 SAD 값을 계산함으로써 알 수 있다. 움직임 추정의 과정은 최소의 SAD값을 가질 때의 움직임 벡터를 구하는 것이 목적이므로 탐색 영역(320)의 전체에서 최소 SAD를 찾아야 한다. 따라서 전송된 데이터(340)의 처음부터 SRx에 해당하는 데이터의 SAD를 계산한 후 그 때의 움직임 벡터와 SAD 값을 테이블(350)에 저장한다. A1 메크로 블록(330-1)의 최소 SAD 값은 테이블(350)내의 A1 메크로 블록(330-1)에 대응하는 공간(350-1)에 저장된다.
도 3b는 로컬 메모리로 전송된 데이터를 이용하여 A2 메크로 블록(330-2)의 움직임 추정을 수행하는 실시예이다.
A2 메크로 블록(330-2)은 전송된 데이터(340)중 탐색 영역(320)에 해당하는 데이터(즉 전송된 데이터(340)의 처음부터 SRx + 메크로 블록 하나의 크기까지)에 대하여 SAD 값을 계산한다. 마찬가지로 최소의 SAD 값을 가질 때의 움직임 벡터와 SAD값은 테이블(350)내의 A2 메크로 블록(330-2)에 대응하는 공간(350-2)에 저장된다.
도 3c는 로컬 메모리로 전송된 데이터(340)를 이용하여 A6 메크로 블록(330-6)의 움직임 추정을 수행하는 실시예이다.
도 3c를 참조하면 A6 메크로 블록(330-6)의 경우 전송된 데이터(340)중 탐색 영역(320)에 해당하는 데이터는 A6 메크로 블록(330-6)의 위치를 기준으로 -SRx부터 +SRx에 해당하는 데이터이다. 전송된 데이터(340)중 탐색 영역(320)에 해당하는 데이터에 대하여 SAD 값을 계산하고, 이를 테이블(350)내의 대응하는 공간(350-6)에 저장한다.
도 3d는 로컬 메모리로 전송된 데이터(340)를 이용하여 A14 메크로 블록(330-14)의 움직임 추정을 수행하는 실시예이다.
도 3d를 참조하면 A14 메크로 블록(330-6)의 경우 전송된 데이터(340)중 탐색 영역(320)에 해당하는 데이터는 A14 메크로 블록(330-14)의 위치를 기준으로 -SRx부터 +SRx에 해당하는 데이터이다. 전송된 데이터(340)중 탐색 영역(320)에 해당하는 데이터에 대하여 SAD 값을 계산하고, 이를 테이블(350)내의 대응하는 공간(350-14)에 저장한다.
A14 메크로 블록(330-14)은 소정의 행에 마지막에 해당하는 메크로 블록으로써, 전송된 데이터(330)를 이용하여 소정의 행 모두에 대하여 움직임 추정을 수행 하였다.
도 3e는 로컬 메모리로 다음 데이터를 전송하여 움직임 추정을 수행하는 일 실시예를 도시한다.
다음에 전송될 데이터의 양은 프로세서의 성능에 따라 달라질 수 있으며, 한 픽셀에 해당하는 데이터가 전송될 수도 있다. 본 실시예에서는 T2 행(342)만큼이 전송되었다.
새롭게 전송된 데이터(340-1)를 이용하여 도 3a 내지 도 3d에서 상술한데로 현재 프레임내의 메크로 블록에 대하여 움직임 추정을 수행한다. 이 때 최소 SAD를 가지는 값이 검출된 경우 이 값과 테이블(350)에 저장되어 있는 최소 SAD 값을 비교하여 움직임 벡터값의 갱신 여부를 결정한다.
상술한 모든 과정을 레퍼런스 프레임내의 모든 행에 대하여 반복 수행함으로써, 현재 프레임내의 소정의 행에 해당하는 메크로 블록의 움직임 추정값을 얻을 수 있다. 이와 같이 각 행에 포함된 모든 메크로블록의 움직임 추정을 위해 한번의 DMA 전송을 수행하므로써, 기존의 방법에 비해 DMA 전송시 발생하는 오버해드(overhead)를 상당부분 줄이는 효과가 있다.
도 4는 본 발명에 따른 복수개의 메크로 블록에 대하여 동시에 움직임 추정을 수행하는 방법에 관한 흐름도를 도시한다.
단계 410에서는 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정을 수행하기 위하여 상기 레퍼런스 프레임내의 복수개의 메크로 블록을 병렬 프로세서내의 저장공간으로 로드한다. 단계 410에서의 저장공간은 움직임 연산을 수행하기 위한 병렬 프로세서내의 레지스터 일 수 있다.
단계 420에서는 단계 410에서 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여, 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산을 동시에 수행한다. 이 경우 움직임 추정에 관한 연산은 로드된 레퍼런스 프레임내의 복수개의 메크로 블록과 현재 프레임내의 복수개의 메크로 블록간의 유사도를 나타내는 SAD값에 관한 연산 일 수 있다.
SAD 값에 관한 연산은 단계 410에서 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들과 현재 프레임내의 복수개의 메크로 블록간의 픽섹 값의 차이를 계산한다. 계산된 픽셀 값의 차이에 기초하여 SAD 값을 계산한다. 이 때 복수개의 메크로 블록 각각에 대하여 별도로 SAD 값을 계산함으로써, 동시에 복수개의 메크로 블록에 대하여 움직임 추정을 수행한다.
도 5는 본 발명에 따른 복수개의 메크로 블록에 대하여 동시에 움직임 추정을 수행하기 위한 멀티코어 시스템의 일 실시예를 도시한다.
도 5a는 멀티코어 시스템을 도시한다.
멀티코어 시스템은 주 프로세서(510), 주 메모리(520), 지역 메모리(530) 및 병렬 프로세서(540)를 포함한다.
주 프로세서(510)은 주로 운영 체제를 수행하기 위해 사용되며, 주 메모리(main memory)에 접근하여 사용한다.
주 메모리(520)는 주 프로세서(510)의 동작에 필요한 데이터를 저장한다.
지역 메모리(530)는 병렬 프로세서(540)의 동작에 필요한 데이터를 저장한 다. 지역 메모리(530)는 주 메모리(520)로부터 데이터를 전송받으며, 이는 DMA(Direct Memory Access)에 의하여 수행된다.
병렬 프로세서(540)는 주로 연산 처리를 수행하기 위해 사용되며, 지역 메모리(530)에 접근하여 데이터를 처리한다.
멀티코어 시스템에서 주 메모리(520)의 데이터가 여러개의 병렬 프로세서(540)내의 지역 메모리(530)에 DMA를 통해 전송되며, 각 처리 결과가 다시 DMA를 통해 주 메모리(520)로 전송된다. 병렬 프로세서(540)는 주 메모리(520)에 접근할 수 없으며, 오직 지역 메모리(530)에만 접근할 수 있다.
이러한 멀티코어 시스템은 하나의 프로세서가 담당하던 연산을 다수개의 코어에 분산시킴으로써, 궁극적인 성능 향상을 얻을 수 있다. 따라서, 움직임 추정에 필요한 연산을 다수개의 코어에 분산시켜 움직임 추정의 성능을 향상시킬 수 있다.
이러한 멀티코어 시스템은 한번의 연산으로 복수개의 데이터를 처리하는 SIMD(Single Instruction Multiple Data) 연산을 수행할 수 있다.
도 5b는 SIMD 연산을 위한 레지스터 구조의 일 실시예를 도시한다.
128 Byte의 크기를 갖는 SIMD 레지스터(540)는 한번에 16개의 8-Byte(541) 또는 8개의 16-Byte(542)의 데이터를 처리한다. 또한, 한번에 4개의 32-Byte(543) 또는 2개의 64-Byte(544)의 데이터를 처리할 수 있다.
도 5c는 8개의 16-Byte 데이터에 대해 SIMD 연산을 수행하는 일 실시예를 도시한다.
제 1 레지스터(550)에 저장된 데이터와 제 2 레지스터(560)에 저장된 데이터 에 대하여 덧셈 연산을 수행한다. 한번의 덧셈 연산에 의하여 8개의 덧셈이 처리되며, 그 결과가 제 3 레지스터(570)에 저장된다. 이와 같이 단일 연산에 대해 한번에 여러 개의 데이터가 처리되기 때문에 한번에 하나씩 처리하는 것에 비해 처리 속도가 빠르다는 것을 알 수 있다.
도 6은 본 발명에 따른 SIMD 연산을 이용한 움직임 추정에 관한 일 실시예를 도시한다.
도 6을 참조하면, 블록의 크기는 4 X 4이다. 본 발명에서 크기가 4 X 4인 두개의 메크로 블록에 대한 SAD 값에 관한 연산을 동시에 수행할 수 있다. 그러나 화질 개선등의 이유로 블록의 크기를 2 X 2를 기준으로 움직임 추정을 수행하는 경우에는 4개의 블록에 대한 SAD 값에 관한 연산을 동시에 수행할 수 있음은 자명하다. 또한 도 6에서는 4 X 4 메크로 블록의 최 상위 행만을 표현한 것이며, SIMD 구조의 성능에 따라 한번에 모든 행에 대하여 SAD 값에 관한 연산을 수행할 수도 있음은 자명하다.
현재 프레임내의 움직임 추정을 수행할 복수개의 메크로 블록을 제 1 레지스터(610)으로 로드한다.
레퍼런스 프레임내의 움직임 추정에 사용될 복수개의 메크로 블록을 제 2 레지스터(620)으로 로드한다.
SAD 값에 의한 움직임 추정의 경우 픽셀 값의 차이를 계산한다. 실시예에 따라서는 마이너스 연산만을 수행하기 위하여, 제 1 레지스터(610)의 픽셀 값이 제 2 레지스터(620)의 픽셀 값보다 작은 경우에는 해당 픽셀의 바꿀 수 있다. 즉 제 1 레지스터(610)의 가장 왼쪽에 위치한 픽셀(611)이 제 2 레지스터(620)의 가장 왼쪽에 위치한 픽셀(621)보다 작은 경우에는 이 둘의 위치를 바꾼다. 따라서, 제 1 레지스터(610)에 제 2 레지스터에 있던 픽셀(621)이 로드되고, 제 2 레지스터에(620)에 제 1 레지스터에 있던 픽셀(611)이 로드된다.
로드가 완료되면 제 1 레지스터(610)에서 제 2 레지스터(620)를 뺀다. 이는 제 1 레지스터(610)의 각각의 픽섹 값들과 이에 대응하는 제 2 레지스터(620)내의 각각의 픽셀 값들의 차이를 의미한다.
연산이 완료되면, 이를 제 3 레지스터(630)에 저장할 수 있다. 제 3 레지스터(630)에 저장된 픽셀 값들은 현재 프레임내의 복수개의 메크로 블록에 대한 연산 값이므로, 각각의 메크로 블록에 대하여 별도로 합을 구한다. 본 실시예에서 제 3 레지스터(630)내의 좌측 네 개의 픽셀에 대하여 합을 구함으로써, 하나의 메크로 블록에 대한 SAD 값을 구한다. 또한 제 3 레지스터(630)내의 우측 네 개의 픽셀에 대하여 합을 구함으로써, 다른 하나의 메크로 블록에 대한 SAD 갑을 구한다.
도 7은 본 발명에 따른 SIMD 연산을 이용한 움직임 추정시 레프런스 프레임내의 메크로 블록의 로드 방법에 관한 일 실시예를 도시한다.
도 7을 참조하면, 연속적으로 SIMD 연산을 수행하기 위하여, 레퍼런스 프레임내의 움직임 추정에 사용될 복수개의 메크로 블록이 로드될 제 1 레지스터(710) , 제 2 레지스터(720), 연산 수행에 사용될 제 3 레지스터(730) 및 현재 프레임내의 복수개의 메크로 블록이 로드될 제 4 레지스터(740)를 포함한다.
도 7a를 참조하면, 제 1 레지스터(710) 및 제 2 레지스터(720)로 레퍼런스 프레임내의 움직임 추정에 사용될 복수개의 메크로 블록을 로드한다.
제 3 레지스터(730)는 실제 연산에 필요한 메크로 블록을 로드하며, 제 1 레지스터(710)에 있는 8개의 픽셀 값을 제 3 레지스터(730)로 로드한다.
제 4 레지스터(740)는 현재 프레임내의 움직임 추정을 수행할 복수 개의 메크로 블록이 로드된다.
제 3 레지스터(730)와 제 4 레지스터(740)에 메크로 블록이 모두 로드되면, 도 6에서 상술한바데로 움직임 추정에 관한 연산을 수행한다.
도 7b를 참조하면, 움직임 추정이 종료되면, 제 1 레지스터(710)내의 가장 왼쪽에 위치한 픽셀(711)을 제외한 나머지 펙셀과, 제 2 레지스터(720)내의 가장 왼쪽에 위치한 픽셀(721)을 제 3 레지스터(730)로 로드한다. 즉, 움직임 추정은 탐색 영역에서 픽셀별로 이동하며, 메크로 블록을 비교하는 것이기 때문에 한 픽셀 옆의 메크로 블록에 대하여 연산을 수행한다.
제 3 레지스터(730)에 해당 메크로 블록이 로드되면, 제 4 레지스터(740)과 움직임 추정에 해당하는 연산을 수행한다. 반복적으로 제 1 레지스터(710) 및 제 2 레지스터(720)에 있는 데이터를 제 3 레지스터(730)에 로드하여 연산을 수행한다. 8번의 수행이 완료되면 제 1 레지스터(710)내의 데이터는 모두 사용하였으므로, 제 1 레지스터(710)와 제 2 레지스터(720)의 위치를 바꾼 후, 제 1 레지스터(710)에 다음에 사용될 데이터를 로드할 수도 있다.
이러한 과정을 제 4 레지스터(740)에 로드된 현재 프레임내의 메크로 블록의 전 탐색 영역에 걸쳐 수행한다. 이 경우, 레퍼런스 프레임내의 메크로 블록을 병렬 프로세서내의 메모리로 전송하는 방법은 종래와 같이 필요한 탐색 영역 전체에 걸쳐 전송할 수도 있다. 그러나 도 2에서 상술된 본 발명에 따른 DMA 방법이 보다 효율적임은 자명하다.
도 8은 본 발명에 따른 움직임 추정 장치에 관한 블록도를 도시한다.
본 발명에 따른 움직임 추정 장치는 수신부(810), 움직임 추정부(820)을 포함한다.
수신부(810)는 현재 프레임의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록들을 수신한다. 수신되는 메크로 블록들은 동일한 행 또는 열에 해당하는 메크로 블록일 수 있다. 수신부(810)는 이와 동시에 현재 프레임내의 움직임 추정을 수행할 복수개의 메크로 블록들을 수신할 수도 있다. 수신부(810)는 병렬 프로세서 내의 로컬 메모리일 수도 있다.
움직임 추정부(820)는 수신부(810)로 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여 현재 프레임내의 복수개의 메크로 블록들에 대하여 움직임 추정을 수행한다. 현재 프레임내의 복수개의 메크로 블록들은 동일한 행 또는 열에 해당하는 메크로 블록일 수 있다.
움직임 추정은 수신부(810)로 수신된 레퍼런스 프레임내의 복수개의 메크로 블록과 현재 프레임내의 복수개의 메크로 블록들간의 유사도를 판단함으로써 수행될 수 있으며, 유사도는 SAD 값일 수 있다.
움직임 추정부(820)에 관한 설명은 도 9에서 자세히 후술한다.
도 9는 도 8에서 도시된 움직임 추정부(820)의 구성의 일 실시예를 상세히 도시한다.
도 8에서 도시된 움직임 추정부(820)의 구성의 일 실시예는 검색부(821), 저장부(822), 비교부(823) 및 제어부(824)를 포함한다.
검색부(821)는 수신부(810)로부터 전송받은 레퍼런스 프레임내의 메크로 블록과, 현재 프레임내의 메크로 블록간의 유사도를 계산하여 유사도가 가장 큰 레프런스 프레임내의 메크로 블록을 검색한다.
저장부(822)는 이전에 수신부(810)로 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록의 정보 및 유사도 값을 저장하고 있다. 메크로 블록의 정보는 움직임 추정 벡터 값일 수 있다.
비교부(823)는 검색부(821)로부터 수신부(810)로 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록에 관한 정보 및 유사도를 전송받는다. 또한 저장부(822)로부터 이전에 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록에 관한 정보 및 유사도를 전송받는다. 비교부(823)은 검색부(821) 및 저장부(822)로부터 전송받은 유사도를 비교한다.
제어부(824)는 비교부(823)로부터 비교 결과를 입력받아, 저장부(822)내의 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신한다. 일 예로, 검색부(821)로부터 비교부(823)로 입력된 유사도가 저장부(822)로부터 비교부(823)로 입력된 유사도보다 큰 경우에는 검색부(821)로부터 입력된 유사도 및 유사도를 갖는 메크로 블록에 대한 정보를 저장부에 저장함으로써 갱신한다.
도 10는 본 발명에 따른 복수개의 메크로 블록에 대하여 동시에 움직임 추정 을 수행하는 움직임 추정 장치(1000)에 관한 블록도를 도시한다.
본 발명에 따른 복수개의 메크로 블록에 대하여 동시에 움직임 추정을 수행하는 움직임 추정 장치(1000)는 저장부(1010) 및 연산부(1020)를 포함한다.
저장부(1010)는 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록을 로드한다. 저장부(1010)는 동시 연산이 가능한 병렬 프로세서 내의 저장 공간을 의미할 수도 있으며, 일 예로 병렬 프로세서 내의 레지스터 일 수 있다.
연산부(1020)는 저장부(1010)에 로딩된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여, 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산을 동시에 수행한다. 연산부(1020)에서 수행하는 움직임 추정을 위한 연산은 메크로 볼록간 유사도를 의미하는 SAD 값에 관한 연산일 수도 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본 질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명은 데이터의 중복 전송을 최소화하여 움직임 추정을 수행함으로써 한정된 메모리 공간을 갖는 시스템의 성능을 향상시키는 효과가 있다.
또한, 병렬 프로세서를 통하여 동시에 복수개의 메크로 블록에 대하여 움직임 추정을 수행함으로써, 움직임 추정의 처리시간을 단축함으로써 비디오 코덱, 화질 개선 처리, Object Tracking 등의 처리시간을 단축하는 효과가 있다.

Claims (20)

  1. 움직임 추정 방법에 있어서,
    현재 프레임의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록들을 수신하는 단계;
    상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여 상기 현재 프레임내의 복수개의 메크로 블록들에 대하여 움직임 추정을 수행하는 단계를 포함하고,
    상기 레퍼런스 프레임에 있어서 상기 복수개의 메크로 블록들 이외의 나머지 부분은 상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들이 상기 현재 프레임내의 복수개의 메크로 블록들을 위한 움직임 추정에 이용되는 시간 이후에 수신되고,
    상기 움직임 추정을 수행하는 단계는,
    상기 현재 프레임내의 메크로 블록과 상기 수신된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 상기 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색하는 단계;
    상기 검색된 메크로 블록과 이전에 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 현재 프레임내의 메크로 블록과 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  2. 제 1항에 있어서, 상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들은,
    상기 레퍼런스 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들 인 것을 특징으로 하는 움직임 추정 방법.
  3. 제 1항에 있어서, 상기 현재 프레임내의 복수개의 메크로 블록들은,
    상기 현재 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들인 것을 특징으로 하는 움직임 추정 방법.
  4. 삭제
  5. 제 1항에 있어서, 상기 유사도는 SAD(Sum of Absolute difference) 값에 기초하여 결정되는 것을 특징으로 하는 움직임 추정 방법.
  6. 제 1항에 있어서, 상기 유사도가 가장 큰 메크로 블록에 대한 정보는,
    움직임 추정에 기초하여 움직임 벡터인 것을 특징으로 하는 움직임 추정 방법.
  7. 병렬 프로세서를 이용하여 움직임 추정을 수행하는 방법에 있어서,
    현재 프레임내의 복수개의 메크로 블록들의 움직임 추정의 수행에 사용될 레퍼런스 프레임내의 복수개의 메크로 블록들을 상기 병렬 프로세서내의 저장공간으로 로드하는 단계; 및
    상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여, 상기 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산을 동시에 수행하는 단계를 포함하고,
    상기 레퍼런스 프레임에 있어서 상기 복수개의 메크로 블록들 이외의 나머지 부분은 상기 로드된 레퍼런스 프레임내의 메크로 블록들이 상기 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산에 이용되는 시간 이후에 로드되고,
    상기 움직임 추정에 관한 연산을 동시에 수행하는 단계는,
    상기 현재 프레임내의 메크로 블록과 상기 로드된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 상기 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색하는 단계;
    상기 검색된 메크로 블록과 이전에 로드된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 현재 프레임내의 메크로 블록과 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  8. 제 7항에 있어서, 상기 움직임 추정을 위한 연산은 메크로 블록간 유사도를 나타내는 SAD(Sum of Absolute difference) 값에 관한 연산인 것을 특징으로 하는 움직임 추정 방법.
  9. 제 8항에 있어서, 상기 SAD 값에 관한 연산을 수행하는 단계는,
    상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들과 상기 현재 프레임내의 복수개의 메크로 블록들간의 픽셀 값의 차이를 계산하는 단계; 및
    상기 계산된 픽셀 값의 차이에 기초하여 상기 현재 프레임 내의 복수개의 메크로 블록 각각의 SAD 값을 계산하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  10. 움직임 추정 장치에 있어서,
    현재 프레임의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록들을 수신하는 수신부; 및
    상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여 상기 현재 프레임내의 복수개의 메크로 블록들에 대하여 움직임 추정을 수행하는 움직임 추정부를 포함하고,
    상기 레퍼런스 프레임에 있어서 상기 복수개의 메크로 블록들 이외의 나머지 부분은 상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들이 상기 현재 프레임내의 복수개의 메크로 블록들을 위한 움직임 추정에 이용되는 시간 이후에 수신되고,
    상기 움직임 추정부는
    상기 현재 프레임내의 메크로 블록과 상기 수신된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 상기 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색하는 검색부;
    이전에 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록의 정보 및 유사도가 저장된 저장부;
    상기 검색된 메크로 블록과 상기 저장부에 저장된 이전에 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교하는 비교부; 및
    상기 비교 결과에 기초하여 상기 저장부의 상기 현재 프레임내의 메크로 블록과 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신하도록 제어하는 제어부를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  11. 제 10항에 있어서, 상기 수신부에 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들은,
    상기 레퍼런스 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들 인 것을 특징으로 하는 움직임 추정 장치.
  12. 제 10항에 있어서, 상기 현재 프레임내의 복수개의 메크로 블록들은,
    상기 현재 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들 인 것을 특징으로 하는 움직임 추정 장치.
  13. 삭제
  14. 제 10항에 있어서, 상기 유사도는,
    SAD(Sum of Absolute difference)값에 기초하여 결정되는 것을 특징으로 하는 움직임 추정 장치.
  15. 제 10항에 있어서, 상기 수신부는,
    병렬 프로세서 내의 메모리인 것을 특징으로 하는 움직임 추정 장치.
  16. 병렬 프로세서를 이용하여 움직임 추정을 수행하는 장치에 있어서,
    현재 프레임내의 복수개의 메크로 블록들의 움직임 추정의 수행에 사용될 레퍼런스 프레임내의 복수개의 메크로 블록이 로드되는 병렬 프로세서내의 저장부; 및
    상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여, 상기 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산을 동시에 수행하는 연산부를 포함하고,
    상기 레퍼런스 프레임에 있어서 상기 복수개의 메크로 블록들 이외의 나머지 부분은 상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들이 상기 현재 프레임내의 복수개의 메크로 블록들을 위한 움직임 추정에 이용되는 시간 이후에 로드되고,
    상기 연산부는,
    상기 현재 프레임내의 메크로 블록과 상기 로드된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 상기 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색하고,
    상기 검색된 메크로 블록과 이전에 로드된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교하고,
    상기 비교 결과에 기초하여 상기 현재 프레임내의 메크로 블록과 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신하는 것을 특징으로 하는 움직임 추정 장치.
  17. 제 16항에 있어서, 상기 움직임 추정을 위한 연산은 메크로 블록간 유사도를 나타내는 SAD(Sum of Absolute difference)값에 관한 연산인 것을 특징으로 하는 움직임 추정 장치.
  18. 제 17항에 있어서, 상기 연산부는,
    상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들과 상기 현재 프레임내의 복수개의 메크로 블록들간의 픽셀 값의 차이를 계산하고, 상기 계산된 픽셀 값의 차이에 기초하여 상기 현재 프레임 내의 복수개의 메크로 블록 각각의 SAD 값을 계산하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  19. 제 16항에 있어서, 상기 저장부는,
    상기 병렬 프로세서 내의 레지스터 인 것을 특징으로 하는 움직임 추정 장치.
  20. 제 1항 내지 제 3 항, 제 5 항 내지 제 9항 중 어느 한 항에 기재된 방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020070061121A 2007-06-21 2007-06-21 움직임 추정 방법 및 장치 KR101520027B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070061121A KR101520027B1 (ko) 2007-06-21 2007-06-21 움직임 추정 방법 및 장치
US12/034,021 US8576911B2 (en) 2007-06-21 2008-02-20 Method and apparatus for motion estimation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070061121A KR101520027B1 (ko) 2007-06-21 2007-06-21 움직임 추정 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20080112568A KR20080112568A (ko) 2008-12-26
KR101520027B1 true KR101520027B1 (ko) 2015-05-14

Family

ID=40136080

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070061121A KR101520027B1 (ko) 2007-06-21 2007-06-21 움직임 추정 방법 및 장치

Country Status (2)

Country Link
US (1) US8576911B2 (ko)
KR (1) KR101520027B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120014451A1 (en) * 2009-01-15 2012-01-19 Wei Siong Lee Image Encoding Methods, Image Decoding Methods, Image Encoding Apparatuses, and Image Decoding Apparatuses
US20100220786A1 (en) * 2009-02-27 2010-09-02 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for multiple reference picture motion estimation
US10603007B2 (en) 2009-11-27 2020-03-31 Qview Medical, Inc. Automated breast ultrasound equipment and methods using enhanced navigator aids
US10251621B2 (en) 2010-07-19 2019-04-09 Qview Medical, Inc. Automated breast ultrasound equipment and methods using enhanced navigator aids
US9826958B2 (en) 2009-11-27 2017-11-28 QView, INC Automated detection of suspected abnormalities in ultrasound breast images
US9439621B2 (en) 2009-11-27 2016-09-13 Qview, Medical Inc Reduced image reading time and improved patient flow in automated breast ultrasound using enchanced, whole breast navigator overview images
US9762898B2 (en) * 2010-02-01 2017-09-12 Kelly Y Kishore Method and system for parallelizing video compression
EP2658261A4 (en) * 2010-12-21 2015-06-24 Nec Corp Motion estimation device, motion estimation method, motion estimation program, and video image encoder
US9723315B2 (en) 2011-07-01 2017-08-01 Apple Inc. Frame encoding selection based on frame similarities and visual quality and interests
US20150110190A1 (en) * 2013-10-21 2015-04-23 Sony Corporation Method and apparatus for motion estimation
US12075074B2 (en) * 2021-09-24 2024-08-27 Apple Inc. Systems and methods for multi-core image encoding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541640A (en) * 1992-06-23 1996-07-30 Larson; Craig R. Videophone for simultaneous audio and video communication via a standard telephone line
JPH11203192A (ja) 1998-01-16 1999-07-30 Sony Corp 並列プロセッサおよび演算処理方法
US6360015B1 (en) * 1999-04-06 2002-03-19 Philips Electronics North America Corp. RAM-based search engine for orthogonal-sum block match motion estimation system
US7039115B1 (en) 2000-09-20 2006-05-02 General Instrument Corporation Processor allocation for channels in a video multi-processor system
EP1231793A1 (en) * 2001-02-09 2002-08-14 STMicroelectronics S.r.l. A process for changing the syntax, resolution and bitrate of MPEG bitstreams, a system and a computer program product therefor
US20030012281A1 (en) * 2001-07-09 2003-01-16 Samsung Electronics Co., Ltd. Motion estimation apparatus and method for scanning an reference macroblock window in a search area
CN1297134C (zh) 2001-07-09 2007-01-24 三星电子株式会社 用于扫描搜索区内参考宏块窗口的运动估计装置和方法
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US6931061B2 (en) 2002-11-13 2005-08-16 Sony Corporation Method of real time MPEG-4 texture decoding for a multiprocessor environment
KR20050078153A (ko) 2004-01-31 2005-08-04 주식회사 손랩 병렬처리 부호화기 및 그 방법

Also Published As

Publication number Publication date
US8576911B2 (en) 2013-11-05
KR20080112568A (ko) 2008-12-26
US20080316365A1 (en) 2008-12-25

Similar Documents

Publication Publication Date Title
KR101520027B1 (ko) 움직임 추정 방법 및 장치
US9667972B2 (en) Image coding device, image coding method, and image coding integrated circuit
US8218635B2 (en) Systolic-array based systems and methods for performing block matching in motion compensation
KR100486249B1 (ko) 움직임 추정 장치 및 탐색영역에서 레퍼런스매크로블록창의 스캐닝 방법
US8073057B2 (en) Motion vector estimating device, and motion vector estimating method
US20140049607A1 (en) Devices and Methods for Sparse Representation of Dense Motion Vector Fields for Compression of Visual Pixel Data
US10785498B2 (en) System and method of mapping multiple reference frame motion estimation on multi-core DSP architecture
US20070217515A1 (en) Method for determining a search pattern for motion estimation
US20160080766A1 (en) Encoding system using motion estimation and encoding method using motion estimation
JP2015536092A (ja) 標準に準拠した、モデルベースの映像符号化及び映像復号化
US20140169472A1 (en) Motion estimation engine for video encoding
US20060002472A1 (en) Various methods and apparatuses for motion estimation
JP6344398B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化用プログラム
JP4015084B2 (ja) 動きベクトル検出装置及び動きベクトル検出方法
KR100860690B1 (ko) 외부 메모리 액세스를 최소화하는 움직임 탐색 방법 및장치
JP4377693B2 (ja) 画像データ検索
US6665340B1 (en) Moving picture encoding/decoding system, moving picture encoding/decoding apparatus, moving picture encoding/decoding method, and recording medium
US9363524B2 (en) Method and apparatus for motion compensation reference data caching
JP2008060836A (ja) 動きベクトル探索方法及び装置
CN111901590A (zh) 一种用于帧间预测的细化运动矢量存储方法及装置
JP2007325119A (ja) 画像処理装置及び画像処理方法
CN114449294A (zh) 运动估计方法、装置、设备、存储介质和计算机程序产品
US6931066B2 (en) Motion vector selection based on a preferred point
US10075691B2 (en) Multiview video coding method using non-referenced view video group
US20040120402A1 (en) Motion estimation apparatus for image data compression

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20140217

Effective date: 20140923

S901 Examination by remand of revocation
E90F Notification of reason for final refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180423

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190422

Year of fee payment: 5