KR101520027B1 - 움직임 추정 방법 및 장치 - Google Patents
움직임 추정 방법 및 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
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
도 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항에 있어서, 상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들은,상기 레퍼런스 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들 인 것을 특징으로 하는 움직임 추정 방법.
- 제 1항에 있어서, 상기 현재 프레임내의 복수개의 메크로 블록들은,상기 현재 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들인 것을 특징으로 하는 움직임 추정 방법.
- 삭제
- 제 1항에 있어서, 상기 유사도는 SAD(Sum of Absolute difference) 값에 기초하여 결정되는 것을 특징으로 하는 움직임 추정 방법.
- 제 1항에 있어서, 상기 유사도가 가장 큰 메크로 블록에 대한 정보는,움직임 추정에 기초하여 움직임 벡터인 것을 특징으로 하는 움직임 추정 방법.
- 병렬 프로세서를 이용하여 움직임 추정을 수행하는 방법에 있어서,현재 프레임내의 복수개의 메크로 블록들의 움직임 추정의 수행에 사용될 레퍼런스 프레임내의 복수개의 메크로 블록들을 상기 병렬 프로세서내의 저장공간으로 로드하는 단계; 및상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여, 상기 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산을 동시에 수행하는 단계를 포함하고,상기 레퍼런스 프레임에 있어서 상기 복수개의 메크로 블록들 이외의 나머지 부분은 상기 로드된 레퍼런스 프레임내의 메크로 블록들이 상기 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산에 이용되는 시간 이후에 로드되고,상기 움직임 추정에 관한 연산을 동시에 수행하는 단계는,상기 현재 프레임내의 메크로 블록과 상기 로드된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 상기 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색하는 단계;상기 검색된 메크로 블록과 이전에 로드된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교하는 단계; 및상기 비교 결과에 기초하여 상기 현재 프레임내의 메크로 블록과 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 방법.
- 제 7항에 있어서, 상기 움직임 추정을 위한 연산은 메크로 블록간 유사도를 나타내는 SAD(Sum of Absolute difference) 값에 관한 연산인 것을 특징으로 하는 움직임 추정 방법.
- 제 8항에 있어서, 상기 SAD 값에 관한 연산을 수행하는 단계는,상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들과 상기 현재 프레임내의 복수개의 메크로 블록들간의 픽셀 값의 차이를 계산하는 단계; 및상기 계산된 픽셀 값의 차이에 기초하여 상기 현재 프레임 내의 복수개의 메크로 블록 각각의 SAD 값을 계산하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 방법.
- 움직임 추정 장치에 있어서,현재 프레임의 움직임 추정에 사용되는 레퍼런스 프레임내의 복수개의 메크로 블록들을 수신하는 수신부; 및상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여 상기 현재 프레임내의 복수개의 메크로 블록들에 대하여 움직임 추정을 수행하는 움직임 추정부를 포함하고,상기 레퍼런스 프레임에 있어서 상기 복수개의 메크로 블록들 이외의 나머지 부분은 상기 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들이 상기 현재 프레임내의 복수개의 메크로 블록들을 위한 움직임 추정에 이용되는 시간 이후에 수신되고,상기 움직임 추정부는상기 현재 프레임내의 메크로 블록과 상기 수신된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 상기 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색하는 검색부;이전에 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록의 정보 및 유사도가 저장된 저장부;상기 검색된 메크로 블록과 상기 저장부에 저장된 이전에 수신된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교하는 비교부; 및상기 비교 결과에 기초하여 상기 저장부의 상기 현재 프레임내의 메크로 블록과 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신하도록 제어하는 제어부를 포함하는 것을 특징으로 하는 움직임 추정 장치.
- 제 10항에 있어서, 상기 수신부에 수신된 레퍼런스 프레임내의 복수개의 메크로 블록들은,상기 레퍼런스 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들 인 것을 특징으로 하는 움직임 추정 장치.
- 제 10항에 있어서, 상기 현재 프레임내의 복수개의 메크로 블록들은,상기 현재 프레임내의 동일한 행 또는 열에 해당하는 메크로 블록들 인 것을 특징으로 하는 움직임 추정 장치.
- 삭제
- 제 10항에 있어서, 상기 유사도는,SAD(Sum of Absolute difference)값에 기초하여 결정되는 것을 특징으로 하는 움직임 추정 장치.
- 제 10항에 있어서, 상기 수신부는,병렬 프로세서 내의 메모리인 것을 특징으로 하는 움직임 추정 장치.
- 병렬 프로세서를 이용하여 움직임 추정을 수행하는 장치에 있어서,현재 프레임내의 복수개의 메크로 블록들의 움직임 추정의 수행에 사용될 레퍼런스 프레임내의 복수개의 메크로 블록이 로드되는 병렬 프로세서내의 저장부; 및상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들을 이용하여, 상기 현재 프레임내의 복수개의 메크로 블록들의 움직임 추정에 관한 연산을 동시에 수행하는 연산부를 포함하고,상기 레퍼런스 프레임에 있어서 상기 복수개의 메크로 블록들 이외의 나머지 부분은 상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들이 상기 현재 프레임내의 복수개의 메크로 블록들을 위한 움직임 추정에 이용되는 시간 이후에 로드되고,상기 연산부는,상기 현재 프레임내의 메크로 블록과 상기 로드된 레퍼런스 프레임내의 메크로 블록들간의 유사도를 계산하여, 상기 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록을 검색하고,상기 검색된 메크로 블록과 이전에 로드된 레퍼런스 프레임내의 유사도가 가장 큰 메크로 블록간의 유사도를 비교하고,상기 비교 결과에 기초하여 상기 현재 프레임내의 메크로 블록과 유사도가 가장 큰 레퍼런스 프레임내의 메크로 블록에 대한 정보 및 유사도를 갱신하는 것을 특징으로 하는 움직임 추정 장치.
- 제 16항에 있어서, 상기 움직임 추정을 위한 연산은 메크로 블록간 유사도를 나타내는 SAD(Sum of Absolute difference)값에 관한 연산인 것을 특징으로 하는 움직임 추정 장치.
- 제 17항에 있어서, 상기 연산부는,상기 로드된 레퍼런스 프레임내의 복수개의 메크로 블록들과 상기 현재 프레임내의 복수개의 메크로 블록들간의 픽셀 값의 차이를 계산하고, 상기 계산된 픽셀 값의 차이에 기초하여 상기 현재 프레임 내의 복수개의 메크로 블록 각각의 SAD 값을 계산하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 장치.
- 제 16항에 있어서, 상기 저장부는,상기 병렬 프로세서 내의 레지스터 인 것을 특징으로 하는 움직임 추정 장치.
- 제 1항 내지 제 3 항, 제 5 항 내지 제 9항 중 어느 한 항에 기재된 방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
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)
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)
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 | 주식회사 손랩 | 병렬처리 부호화기 및 그 방법 |
-
2007
- 2007-06-21 KR KR1020070061121A patent/KR101520027B1/ko active IP Right Grant
-
2008
- 2008-02-20 US US12/034,021 patent/US8576911B2/en not_active Expired - Fee Related
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 |