KR100788023B1 - 움직임 벡터 추정 시스템 및 그 방법 - Google Patents

움직임 벡터 추정 시스템 및 그 방법 Download PDF

Info

Publication number
KR100788023B1
KR100788023B1 KR1020060062840A KR20060062840A KR100788023B1 KR 100788023 B1 KR100788023 B1 KR 100788023B1 KR 1020060062840 A KR1020060062840 A KR 1020060062840A KR 20060062840 A KR20060062840 A KR 20060062840A KR 100788023 B1 KR100788023 B1 KR 100788023B1
Authority
KR
South Korea
Prior art keywords
motion vector
macroblock
search window
comparison
horizontal motion
Prior art date
Application number
KR1020060062840A
Other languages
English (en)
Other versions
KR20070029044A (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 콴타 컴퓨터 인코포레이티드
Publication of KR20070029044A publication Critical patent/KR20070029044A/ko
Application granted granted Critical
Publication of KR100788023B1 publication Critical patent/KR100788023B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/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

Landscapes

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

Abstract

본 발명은 프레임의 매크로블록에 대한 출력 움직임 벡터를 추정하기 위한 움직임 벡터 추정 시스템 및 그 방법을 개시한다. 상기 움직임 벡터 추정 시스템은 이전 검색 윈도우로부터 화소 데이터의 재사용능력을 개선시키고 메모리 대역폭을 감소시키기 위해 각 매크로블록에 대응하는 검색 윈도우를 선택적으로 수평으로 이동시킬 수 있다.
프레임, 매크로블록, 출력 움직임 벡터, 움직임 벡터 추정 시스템, 검색 윈도우, 화소 데이터

Description

움직임 벡터 추정 시스템 및 그 방법{Motion vector estimation system and method thereof}
도 1은 종래의 비디오 인코더를 도시한 기능 블록도.
도 2a는 매크로블록 n에 대응하는 검색 윈도우를 도시하는 개략도.
도 2b는 매크로블록 m에 대응하는 오프셋이 없는 검색 윈도우를 도시한 개략도.
도 2c는 매크로블록 m에 대응하는 수평 오프셋(4b)을 갖는 검색 윈도우를 도시하는 개략도.
도 3은 본 발명의 제 1의 최적의 실시예에 따른 움직임 벡터 추정 시스템을 도시한 기능 블록도.
도 4는 본 발명의 제 1 최적의 실시예에 따른 움직임 벡터 추정 방법을 나타내는 플로차트.
도 5는 도 4에 나타낸 단계 S102를 상세히 나타낸 플로차트.
도 6는 본 발명에 기초한 실험결과를 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
10 :비디오 인코더 12 : 하드웨어 액셀레이터
14 : 중앙 처리 장치 16 : 메인 버스
18 : 버퍼 20 : 메인 메모리
30 : 벡터 추정 시스템 32 : 움직임 벡터 예측 회로
34 : 검색 윈도우 오프셋 검출 회로 36 : 검색 윈도우 메모리
38 : 움직임 벡터 검출 회로 40 : 제 1 가산기
42 : 제 2 가산기 44 : 움직임 벡터 메모리
46 : 제 1 프레임
발명의 분야
본 발명은 움직임 벡터 추정 시스템 및 그 방법에 관한 것으로서, 특히 메모리 대역폭을 감소시키고 움직임 벡터를 정확하게 추정할 수 있는 시스템 및 그 방법에 관한 것이다.
종래 기술의 설명
움직임 벡터 추정 시스템은 종래의 비디오 인코더에서 가장 중요한 부분이다. 움직임 벡터 추정 시스템은 화소 데이터를 판독하는 동안 많은 양의 계산뿐만아니라 많은 메모리 대역폭을 요구한다.
도 1를 참조하는데, 도 1은 종래의 비디오 인코더(10)를 도시하는 기능 블록도이다. 상기 비디오 인코더(10)는 움직임을 추정 및 계산하기 위한 하드웨어 액셀레이터(12) 및 다른 작업부하(workload)를 다루기 위한 중앙 처리 장치(central processing unit; CPU)(14)를 구비한다. 메인 버스(16)의 부하를 감소시키기 위해, 버퍼(18), 즉 검색 윈도우가 메인 메모리(20)로부터 화소 데이터를 획득하기 위해 이용된다. 이 후, 하드웨어 액셀레이터(12)는 후속 동작을 위해 버퍼(18)로부터 화소 데이터를 검색한다. [-r, r-1]의 검색 범위를 갖는 움직임 추정기에 있어서, 포함된 화소들의 수는 (2r+b)2이고, 여기서 매크로블록은 b*b 화소들로 구성된다. 예를 들면, 검색 범위가 [-32, 31]이고 매크로블록이 16*16 화소들로 구성되면, 움직임 추정기는 80*80 화소들을 포함하는 검색 윈도우를 로드해야하고; 검색 범위가 [-32, 31]로부터 [-16, 15]로 감소되면, 검색 윈도우는 상응하여 단지 48*48 화소들을 포함한다. 그러나, 검색 범위가 작아지면 복잡한 계산을 감소시키고 요구되는 메모리 대역폭을 낮추는 데 도움을 주지만, 넓은 검색 범위가 여전히 화질 및 비트 레이트를 향상시키기 위해 고선명 텔레비전(HDTV)과 같은 일부 어플리케이션들에 필요하다.
움직임 추정을 개선하기 위해, 미국 특허 제 6,078, 618 호 (이하, '618 특허)는 검색 윈도우를 확대하지 않고 검색 범위를 늘리기 위해 검색 윈도우의 오프셋을 추정하기 위한 시스템을 개시한다. 그러나, '618에 개시된 검색 윈도우는 그것이 로딩되는 동안 불규칙하게 되어 대역폭에 많은 부하가 걸리게 할 것이다.
도 2a 내지 도 2c를 참조하면, 도 2a는 매크로블록 n에 대응하는 검색 윈도우(22)를 도시하는 개략도이다. 도 2b는 매크로블록 m에 대응하는 오프셋 없는 검색 윈도우(24)를 도시하는 개략도이다. 도 2c는 매크로블록 m에 대응하는 수평 오 프셋(4b)을 갖는 검색 윈도우(26)를 도시한 개략도이다. 도 2a에 도시된 것과 같이, 검색 윈도우가 [-b, b-1]로서 설정되면, 매크로블록 n에 대응하는 검색 윈도우(22)는 9b2 화소들 (예컨대, 빗금 영역)을 포함하고, 여기서 b는 매크로블록의 사이즈와 동일하다. 도 2b에 도시된 것과 같이, 매크로블록 m에 대응하는 검색 윈도우(24)가 오프셋을 가지지 않으면, 즉 매크로블록 m이 검색 윈도우(24)의 중심에 있으면, 검색 윈도우들(24, 26)이 중첩하는 6b2 화소들(점선을 갖는 빗금 영역으로)이 로딩되고, 이후 움직임 추정기는 단지 남아 있는 3b2 화소들(실선에 의한 빗금 영역으로서)에 로딩될 필요가 있다. 그러나, 검색 윈도우가 가변이면, 도 2b에 도시된 아키텍쳐는 실패로 될 것이다. 도 2c에 도시된 것과 같이, 매크로블록 m에 대응하는 검색 윈도우(26)는 수평 오프셋(4b)을 가지며, 검색 윈도우들(24, 26)은 중첩하지 않는다. 바꾸어 말하면, 움직임 추정기는 이전에 저장된 검색 윈도우(22)의 화소 데이터를 재사용할 수 없고, 검색 윈도우(26)의 9b2 화소들은 다시 로딩되어야 한다. 상기 종래 기술에 있어서, 검색 윈도우가 가변 오프셋에 의해 이동될 수 있으면, 재로딩된 데이터는 대역폭에 많은 부하게 걸리게 한다.
그러므로, 본 발명의 범위는 전술한 문제들을 해결하기 위한 움직임 벡터 추정 시스템 및 그 방법을 제공하는 것이다.
발명의 요약
본 발명의 범위는 이전 검색 윈도우로부터 화소 데이터의 재사용능력을 개선하고 메모리 대역폭을 감소시키기 위해, 프레임의 매크로블록의 출력 움직임 벡터를 추정하기 위한 움직임 벡터 추정 시스템 및 그 방법을 제공하는 것이다.
본 발명의 바람직한 실시예에 따르면, 상기 움직임 벡터 추정 시스템은 제 1 프레임의 제 1 매크로블록의 출력 움직임 벡터를 추정하기 위해 이용된다. 상기 움직임 벡터 추정 시스템은 움직임 벡터 예측 회로, 검색 윈도우 오프셋 검출 회로, 검색 윈도우 메모리, 움직임 벡터 검출 회로, 제 1 가산기 및 제 2 가산기를 포함한다.
전술한 실시예에 있어서, 상기 움직임 벡터 예측 회로는 예측 수평 움직임 벡터 및 예측 수직 움직임 벡터를 생성하기 위해 이용된다. 상기 검색 윈도우 오프셋 검출 회로는 예측 수평 움직임 벡터 및 미리 정해진 임계치에 기초하여 이동된 수평 움직임 벡터를 생성하기 위해 이용된다. 이 후, 상기 검색 윈도우 오프셋 검출 회로는 이동된 수평 움직임 벡터에 의해 제 1 프레임의 제 1 매크로블록에 대응하는 검색 윈도우를 이동시키고, 여기서, 상기 이동된 검색 윈도우는 복수의 비교 매크로블록들을 포함한다. 상기 검색 윈도우 메모리는 이동된 검색 윈도우의 복수의 비교 매크로블록들을 선택적으로 저장하기 위해 사용된다. 움직임 벡터 검출 회로는 복수의 비교 매크로블록들로부터 기준 매크로블록을 선택하고 기준 매크로블록 및 제 1 매크로블록에 따라 비교 수평 움직임 벡터 및 비교 수직 움직임 벡터를 출력하기 위해 이용되고, 여기서, 제 1 매크로블록과 기준 매크로블록의 차이는 제 1 매크로블록과 비교 매크로블록들의 다른 매크로블록간의 차이와 비교해서 최소로 된다. 제 1 가산기는 제 1 프레임의 제 1 매크로블록의 출력 움직임 벡터의 수평 성분을 생성하기 위해 예측 수평 움직임 벡터, 이동된 수평 움직임 벡터, 및 비교 수평 움직임 벡터를 가산하기 위해 이용된다. 제 2 가산기는 제 1 프레임의 제 1 매크로블록의 출력 움직임 벡터의 수직 성분을 생성하기 위해 예측 수직 움직임 벡터와 비교 수직 움직임 벡터를 가산하기 위해 이용된다.
따라서, 각 매크로블록에 대응한 검색 윈도우는 이전 검색 윈도우로부터 화소 데이터의 재사용능력을 개선시키고 메모리 대역폭을 감소시키기 위해, 본 발명의 움직임 추정 시스템에 의해 선택적으로 이동될 것이다.
본 발명의 상기 이점 및 사상은 첨부 도면들과 함께 다음의 설명들에 의해 이해될 수 있다.
본 발명의 상세한 설명
도 3을 참조하는데, 도 3은 본 발명의 제 1의 최선의 실시예에 따른 움직임 벡터 추정 시스템(30)을 도시하는 기능 블록도이다. 움직임 벡터 추정 시스템(30)은 움직임 벡터 예측 회로(32), 검색 윈도우 오프셋 검출 회로(34), 검색 윈도우 메모리(36), 움직임 벡터 검출 회로(38), 제 1 가산기(40), 제 2 가산기(42) 및 움직임 벡터 메모리(44)를 구비한다. 이 실시예에 있어서, 상기 움직임 벡터 추정 시스템(30)은 제 1 프레임(46)의 제 1 매크로블록의 출력 움직임 벡터를 추정하기 위해 이용된다. 도 3에 도시된 것과 같이, 제 1 프레임(46)은 입력단을 통해 움직임 벡터 검출 회로(38)에 입력된다.
상기 실시예에 있어서, 움직임 벡터 예측 회로(32)는 예측 수평 움직임 벡터 Px 및 예측 수직 움직임 벡터 Py 를 생성하기 위해 이용된다. 상기 예측 수평 움직임 벡터 Px 및 미리 정해진 임계치 Pth 에 기초하여, 상기 검색 윈도우 오프셋 검출 회로(34)는 이동된 수평 움직임 벡터 Pxs 에 의해 제 1 프레임(46)의 제 1 매크로블록에 대응하는 검색 윈도우를 더 이동시키는 이동된 수평 움직임 벡터 Pxs 를 생성하기 위해 이용되고, 여기서 상기 이동된 검색 윈도우는 복수의 비교 매크로블록들을 포함한다. 검색 윈도우 메모리(36)는 상기 검색 윈도우 오프셋 검출 회로(34)에 연결되고 상기 이동된 검색 윈도우의 복수의 비교 매크로블록들을 선택적으로 저장하기 위해 이용된다. 상기 움직임 벡터 검출 회로(38)는 검색 윈도우 메모리(36)에 연결되어 상기 복수의 비교 매크로블록들로부터 기준 매크로블록을 선택하고 상기 기준 매크로블록과 상기 제 1 매크로블록에 따라 비교 수평 움직임 벡터 Pxc 와 비교 수직 움직임 벡터 Pyc를 출력하기 위해 이용되고, 여기서 상기 제 1 매크로블록과 상기 기준 매크로블록간의 차이는 제 1 매크로블록과 상기 비교 매크로블록들의 다른 매크로블록간의 차이와 비교해서 최소가 된다. 제 1 가산기(40)는 제 1 프레임(46)의 제 1 매크로블록의 출력 움직임 벡터의 수평 성분 MVx을 생성하기 위해 예측 수평 움직임 벡터 Px, 이동된 수평 움직임 벡터 Pxs 및 비교 수평 움직임 벡터 Pxc를 가산하기 위해 이용된다. 제 2 가산기(42)는 제 1 프레임(46)의 제 1 매크로블록의 출력 움직임 벡터의 수직 성분 MVy을 생성하기 위해 예측 수직 움직임 벡터 Py 와 비교 수직 움직임 벡터 Pyc를 가산하기 위해 이용된다. 끝으로, 움직임 벡터 추정 시스템(30)은 제 1 매크로블록의 출력 벡터를 생성하기 위해 수평 성분 MVx와 수직 성분 MVy를 조합할 것이다. 더욱이, 움직임 벡터 메모리(44)는 제 1 가산기(40)에 의해 생성된 수평 성분 MVx 및 제 2 가산기(42)에 의해 생성된 수직 성분 MVy을 저장하기 위해 이용된다.
상기 실시예에서, 이동된 수평 움직임 벡터 Pxs의 값는 0, 양의 미리 정의된 상수, 음의 미리 정해진 상수로 구성된 그룹으로부터 선택되고, 상기 미리 정의된 상수는 제 1 매크로블록의 사이즈와 같다. 예를 들면, 매크로블록이 16*16 화소들로 구성되면, 상기 미리 정의된 상수는 16으로 설정된다. 이 실시예에 있어서, r은 미리 정해진 검색 범위를 나타냄이 가정된다. 바꾸어 말하면, 검색 윈도우의 검색 범위는 [-r, r-1]로 설정된다. Px/r이 미리 정해진 임계값 Pth보다 크면 [Pth(Px/r>Pth)], 이동된 수평 움직임 벡터 Pxs의 값은 양의 미리 정해진 상수와 같다. 바꾸어 말하면, 검색 윈도우 오프셋 검출 회로(34)는 이동된 수평 움직임 벡터 Pxs에 의해 제 1 프레임(46)의 제 1 매크로블록의 검색 윈도우를 우측으로 이동시킬 것이다. Px/r이 미리 정해진 임계값의 음의 값보다 작거나 같으면 [Pth(Px/r
Figure 112006048208406-pat00001
-Pth)], 이동된 수평 움직임 벡터 Pxs의 값은 음의 미리 정의된 상수와 같다. 바꾸어 말하면, 검색 윈도우 오프셋 검출 회로(34)는 이동된 수평 움직임 벡터 Pxs에 의해 제 1 프레임(46)의 제 1 매크로블록의 검색 윈도우를 좌측으로 이동시킬 것이다. Px/r이 미리 정해진 임계값보다 크지도 미리 정해진 임계값 Pth 의 음의 값보다 작거나 같지도 않으면[(Px/r
Figure 112006048208406-pat00002
Pth 또는 (Px/r
Figure 112006048208406-pat00003
-Pth)], 이동된 수평 움직임 벡터 Pxs의 값은 0과 같다. 바꾸어 말하면, 검색 윈도우 검출 회로(34)는 제 1 프레임(46)의 제 1 매크로블록의 검색 윈도우를 이동시키지 않을 것이다.
상기 움직임 벡터 추정 시스템(30)에 따르면, 검색 윈도우는 이전 검색 윈도우로부터의 화소 데이터의 재사용능력을 개선시키고 메모리 대역폭을 감소시키기 위해, 매크로블록에 의해 우측으로 이동되고, 매크로블록에 의해 좌측으로 이동되거나 이동되지 않을 수 있다.
상기 실시예에 있어서, 미리 정해진 임계값 Pth은 실용상의 용도에 기초하여 검색 윈도우 오프셋 검출 회로(34) 또는 다른 구성요소들에 미리 저장될 수 있다. 다른 바람직한 실시예에 있어서, 미리 정해진 임계값 Pth은 0.5으로 설정될 수 있지만 이에 한정되는 것은 아니다.
도 4를 참조하면, 도 4는 본 발명의 제 1의 최선의 실시예에 따른 움직임 벡터 추정 방법을 나타낸 플로차트이다. 상기 움직임 벡터 추정 방법은 다음과 같은 단계들을 포함한다. 시작 단계에서, 단계 S100이 수행되어 예측 수평 움직임 벡터 Px 및 예측 수직 움직임 벡터 Py를 생성한다. 이 후, 단계 S102가 수행되어 예측 수평 움직임 벡터 Px 및 미리 정해진 임계치 Pth에 기초하여 이동된 수평 움직임 벡터Pxs를 생성하고 이동된 수평 움직임 벡터 Pxs에 의해 제 1 프레임(46)의 제 1 매크로블록에 대응하는 검색 윈도우를 이동시키고, 여기서 이동된 검색 윈도우는 복수의 비교 매크로블록들을 포함한다. 이동된 수평 움직임 벡터 Pxs의 값은 0, 양의 미리 정의된 상수, 및 음의 미리 정의된 상수로 구성된 그룹으로부터 선택된다. 이후 단계 S104가 수행되어 이동된 검색 윈도우의 복수의 비교 매크로블록들을 선택적으로 저장한다. 이후 단계 S106가 수행되어 복수의 비교 매크로블록들로부터 기준 매크로블록을 선택하고 기준 매크로블록 및 제 1 매크로블록에 따라 비교 수평 움직임 벡터 Pxc 및 비교 수직 움직임 벡터 Pyc를 출력하며, 여기서, 제 1 매크로블록과 기준 매크로블록간의 차이는 제 1 매크로블록과 비교 매크로블록들의 다른 매크로블록간의 차이에 비교해 최소로 된다. 이후 단계 S108가 수행되어 예측 수평 움직임 벡터 Px, 이동된 수평 움직임 벡터 Pxs 및 비교 수평 움직임 벡터 Pxc를 가산하고 제 1 프레임(46)의 제 1 매크로블록의 출력 움직임 벡터의 제 1 매크로블록의 출력 움직임 벡터의 수평 성분 MVx을 생성한다. 이후 단계 110가 수행되어 예측 수직 움직임 벡터 Py 및 비교 수직 움직임 벡터 Pyc를 가산하고 제 1 프레임(46)의 제 1 매크로블록의 출력 움직임 벡터의 수직 성분 MVy을 생성한다. 끝으로, 단계 S112가 수행되어 출력 움직임 벡터의 수평 성분 MVx 및 수직 성분 MVy을 저장하고 출력 움직임 벡터를 출력한다.
도 5를 참조하면, 도 5는 도 4에 도시된 단계 S102를 상세히 나타낸 플로우차트이다. 가정된다. r은 미리 정해진 검색 범위를 나타내는 것으로 가정된다. 바꾸어 말하면, 검색 윈도우의 검색 범위는 [-r, r-1]로서 설정된다. 단계 S102는 또한 다음과 같은 단계들을 더 포함한다. 단계 S1020가 수행되어 Px/r가 미리 정해진 임계치 Pth보다 큰지 또는 미리 정해진 임계치 Pth의 음의 값보다 작거나 같은지의 여부를 결정한다. Px/r > Pth이면, 이후 단계 S1022가 수행되고, Px/r ≤ -Pth이면, 이후 단계 S1024가 수행되고, 그렇지 않으면 이후 단계 S1026가 수행된다. 단계 S1022가 수행되어 양의 미리 정의된 상수와 같게 이동된 수평 움직임 벡터 Pxs의 값을 설정하고 이동된 수평 움직임 벡터 Pxs에 의해 제 1 프레임(46)의 제 1 매크로블록의 검색 윈도우를 우측으로 이동시킨다. 단계 S1024가 수행되어 음의 미리 정의된 상수와 같게 이동된 수평 움직임 벡터 Pxs의 값을 설정하고 이동된 수평 움직임 벡터 Pxs에 의해 제 1 프레임(46)의 제 1 매크로블록의 검색 윈도우를 좌측으로 이동시킨다. 단계 S1026가 수행되어 이동된 수평 움직임 벡터 Pxs의 값을 0과 같게 설정하고 제 1 프레임(46)의 제 1 매크로블록의 검색 윈도우를 이동시키지 않는다.
도 6을 참조하면, 도 6은 본 발명에 기초한 실험 결과를 나타낸다. 비트-레이트는 주성능 메트릭(main performance metric)이다. 상기 검색 윈도우는 [-16, 15]로 설정되고, 매크로블록은 16*16 화소들로 구성된다. 도 6는 다음과 같은 3개의 검색 방법들을 비교한 후의 실험결과를 나타낸다. 상기 3개의 검색방법은, (A) [-16, 15]; (B) 본 발명의 움직임 벡터 추정 시스템 및 그 방법에 의한 [-16, 15]; (C) [-32, 31]이다. 도 6에 도시된 것과 같이, 명백하게, (C)의 검색 윈도우가 가장 크기 때문에, (C)의 결과가 가장 양호하다. 한편, (B)의 결과는 (C)의 결과와 유사하다. 바꾸어 말하면, (C)에 비해, (B)는 거의 추가 대역폭을 요구하지 않는다. 따라서, 움직임 벡터 추정 시스템 및 그 방법은 효율을 효과적으로 향상시킨다.
종래 기술에 비해, 본 발명의 움직임 벡터 추정 시스템은 이전 검색 윈도우로부터의 화소 데이터의 재사용능력을 개선시키고 메모리 대역폭을 감소시키기 위해, 각 매크로블록의 검색 윈도우를 선택적으로 이동시키거나 이동시키지 않을 것이다. 더욱이, 본 발명의 아키텍쳐는 더 단순하고 그 코스트는 종래 기술보다 더 낮아진다.
상기 예 및 설명들로, 본 발명의 특징들 및 사상들은 희망적으로 잘 기술될 것이다. 이 기술분야에서 숙련된 사람들은 본 발명의 사상을 유지하면서 다양한 변형예들 및 변경예들이 만들어 질 수 있다는 것을 용이하게 발견할 수 있을 것이다. 따라서, 상기 개시내용은 첨부된 청구항들의 한계들 및 범위들에 의해서만 제한되는 것으로 해석되어야 한다.

Claims (12)

  1. 제 1 프레임의 제 1 매크로블록의 출력 움직임 벡터를 추정하는 움직임 벡터 추정 시스템에 있어서,
    예측 수평 움직임 벡터 및 예측 수직 움직임 벡터를 생성하기 위한 움직임 벡터 예측 회로;
    상기 예측 수평 움직임 벡터 및 미리 정해진 임계치에 기초하여 이동된 수평 움직임 벡터를 생성하는 검색 윈도우 오프셋 검출 회로로서, 상기 검색 윈도우 오프셋 검출 회로는 상기 이동된 수평 움직임 벡터에 의해 상기 제 1 프레임의 상기 제 1 매크로블록에 대응하는 검색 윈도우를 더 이동시키고, 상기 이동된 검색 윈도우는 복수의 비교 매크로블록들을 포함하는, 검색 윈도우 오프셋 검출 회로;
    상기 검색 윈도우 오프셋 검출 회로에 연결되어, 상기 이동된 검색 윈도우의 상기 복수의 비교 매크로블록들을 선택적으로 저장하기 위한 검색 윈도우 메모리;
    상기 검색 윈도우 메모리에 연결되어, 상기 복수의 비교 매크로블록들로부터 기준 매크로블록을 선택하고 상기 기준 매크로블록 및 상기 제 1 매크로블록에 따라 비교 수평 움직임 벡터 및 비교 수직 움직임 벡터를 출력하기 위한 움직임 벡터 검출 회로로서, 상기 제 1 매크로블록과 상기 기준 매크로블록간의 차이는 상기 제 1 매크로블록과 상기 비교 매크로블록들의 다른 매크로블록간의 차이와 비교해서 최소로 되는, 움직임 벡터 검출 회로; 및
    상기 제 1 프레임의 상기 제 1 매크로블록의 상기 출력 움직임 벡터의 수평 성분을 생성하기 위해 상기 예측 수평 움직임 벡터, 상기 이동된 수평 움직임 벡터, 및 상기 비교 수평 움직임 벡터를 가산하기 위한 제 1 가산기를 포함하는, 움직임 벡터 추정 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 프레임의 상기 제 1 매크로블록의 상기 출력 움직임 벡터의 수직 성분을 생성하기 위해 상기 예측 수직 움직임 벡터와 상기 비교 수직 움직임 벡터를 가산하기 위한 제 2 가산기를 더 포함하는, 움직임 벡터 추정 시스템.
  3. 제 2 항에 있어서,
    상기 제 1 가산기와 상기 제 2 가산기에 의해 각각 생성된 상기 출력 움직임 벡터의 상기 수평 성분 및 상기 수직 성분을 저장하기 위한 움직임 벡터 메모리를 더 포함하는, 움직임 벡터 추정 시스템.
  4. 제 1 항에 있어서,
    상기 이동된 수평 움직임 벡터의 값은 0, 양의 미리 정의된 상수, 및 음의 미리 정의된 상수로 구성된 그룹으로부터 선택되는, 움직임 벡터 추정 시스템.
  5. 제 4 항에 있어서,
    상기 미리 정의된 상수는 상기 제 1 매크로블록의 사이즈와 같은, 움직임 벡 터 추정 시스템.
  6. 제 5 항에 있어서,
    상기 이동된 수평 움직임 벡터의 상기 값은 Px/r이 상기 미리 정해진 임계치보다 크면 상기 양의 미리 정의된 상수와 동일하고, 상기 이동된 수평 움직임 벡터의 상기 값은 Px/r이 상기 미리 정해진 임계치의 음의 값보다 작거나 같으면 상기 음의 미리 정의된 상수와 같고, 상기 이동된 수평 움직임 벡터의 상기 값은 Px/r이 상기 미리 정해진 임계치보다 크지도 상기 미리 정해진 임계치의 음의 값보다 작거나 같지도 않으면 0과 같고, Px는 상기 예측 수평 움직임 벡터이고 r은 미리 정해진 검색 범위를 나타내는, 움직임 벡터 추정 시스템.
  7. 제 1 프레임의 제 1 매크로블록의 출력 움직임 벡터를 추정하기 위한 움직임 벡터 추정 방법에 있어서,
    예측 수평 움직임 벡터 및 예측 수직 움직임 벡터를 생성하는 단계;
    상기 예측 수평 움직임 벡터 및 미리 정해진 임계치에 기초하여 이동된 수평 움직임 벡터를 생성하고, 상기 이동된 수평 움직임 벡터에 의해 상기 제 1 프레임의 상기 제 1 매크로블록에 대응하는 검색 윈도우를 이동시키는 단계로서, 상기 이동된 검색 윈도우는 복수의 비교 매크로블록들을 포함하는, 수평 움직임 벡터를 생성하고 검색 윈도우를 이동시키는 단계;
    상기 이동된 검색 윈도우의 상기 복수의 비교 매크로블록들을 선택적으로 저장하는 단계;
    상기 복수의 비교 매크로블록들로부터 기준 매크로블록을 선택하고 상기 기준 매크로블록 및 상기 제 1 매크로블록에 따라 비교 수평 움직임 벡터 및 비교 수직 움직임 벡터를 출력하는 단계로서, 상기 제 1 매크로블록과 상기 기준 매크로블록간의 차이는 상기 제 1 매크로블록과 상기 비교 매크로블록들의 다른 매크로블록간의 차이와 비교해서 최소로 되는, 기준 매크로블록을 선택하고 비교 수평 움직임 벡터 및 비교 수직 움직임 벡터를 출력하는 상기 단계; 및
    상기 제 1 프레임의 상기 제 1 매크로블록의 상기 출력 움직임 벡터의 수평 성분을 생성하기 위해 상기 예측 수평 움직임 벡터, 상기 이동된 수평 움직임 벡터, 및 상기 비교 수평 움직임 벡터를 가산하는 단계를 포함하는, 움직임 벡터 추정 방법.
  8. 제 7 항에 있어서,
    상기 제 1 프레임의 상기 제 1 매크로블록의 상기 출력 움직임 벡터의 수직 성분을 생성하기 위해 상기 예측 수직 움직임 벡터와 상기 비교 수직 움직임 벡터를 가산하는 단계를 더 포함하는, 움직임 벡터 추정 방법.
  9. 제 8 항에 있어서,
    상기 출력 움직임 벡터의 상기 수평 성분 및 상기 수직 성분을 저장하는 단 계를 더 포함하는, 움직임 벡터 추정 방법.
  10. 제 7 항에 있어서,
    상기 이동된 수평 움직임 벡터의 값은 0, 양의 미리 정의된 상수, 및 음의 미리 정의된 상수로 구성된 그룹으로부터 선택되는, 움직임 벡터 추정 방법.
  11. 제 10 항에 있어서,
    상기 미리 정의된 상수는 상기 제 1 매크로블록의 사이즈와 같은, 움직임 벡터 추정 방법.
  12. 제 11 항에 있어서,
    상기 이동된 수평 움직임 벡터의 상기 값은 Px/r이 상기 미리 정해진 임계치보다 크면 상기 양의 미리 정의된 상수와 동일하고, 상기 이동된 수평 움직임 벡터의 상기 값은 Px/r이 상기 미리 정해진 임계치의 음의 값보다 작거나 같으면 상기 음의 미리 정의된 상수와 같고, 상기 이동된 수평 움직임 벡터의 상기 값은 Px/r이 상기 미리 정해진 임계치보다 크지도 상기 미리 정해진 임계치의 음의 값보다 작거나 같지도 않으면 0과 같고, Px는 상기 예측 수평 움직임 벡터이고 r은 미리 정해진 검색 범위를 나타내는, 움직임 벡터 추정 방법.
KR1020060062840A 2005-09-08 2006-07-05 움직임 벡터 추정 시스템 및 그 방법 KR100788023B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW094130821 2005-09-08
TW094130821A TWI277010B (en) 2005-09-08 2005-09-08 Motion vector estimation system and method

Publications (2)

Publication Number Publication Date
KR20070029044A KR20070029044A (ko) 2007-03-13
KR100788023B1 true KR100788023B1 (ko) 2007-12-21

Family

ID=37830024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060062840A KR100788023B1 (ko) 2005-09-08 2006-07-05 움직임 벡터 추정 시스템 및 그 방법

Country Status (3)

Country Link
US (1) US7912128B2 (ko)
KR (1) KR100788023B1 (ko)
TW (1) TWI277010B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130138301A (ko) * 2011-03-15 2013-12-18 인텔 코오퍼레이션 저 메모리 액세스 모션 벡터 유도

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
US20080225948A1 (en) * 2007-03-13 2008-09-18 National Tsing Hua University Method of Data Reuse for Motion Estimation
KR100904382B1 (ko) * 2007-08-23 2009-06-25 한국과학기술원 이종 파티션 간의 데이터 재사용을 위한 움직임 보상 방법,움직임 보상 회로 및 이를 포함하는 비디오 디코더
US8917769B2 (en) * 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US20110261885A1 (en) * 2010-04-27 2011-10-27 De Rivaz Peter Francis Chevalley Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding
CN102986224B (zh) 2010-12-21 2017-05-24 英特尔公司 用于增强的解码器侧运动向量导出处理的系统及方法
CN102088610B (zh) * 2011-03-08 2013-12-18 开曼群岛威睿电通股份有限公司 视频编解码器及运动估计方法
JP5933725B2 (ja) 2011-09-26 2016-06-15 インテル・コーポレーション ベクトル散乱演算機能及びベクトル収集演算機能を提供する命令及びロジック
US20150146784A1 (en) * 2013-11-26 2015-05-28 Vixs Systems Inc. Motion compensation with moving window
KR20180047763A (ko) 2016-11-01 2018-05-10 삼성전자주식회사 처리 장치들 및 그 제어 방법들

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010010044A (ko) * 1999-07-15 2001-02-05 구자홍 엠펙-2 압축/복원시스템에서의 동영상 복원방법
KR20010076707A (ko) * 2000-01-27 2001-08-16 윤종용 움직임 추정기
KR20020078336A (ko) * 2001-04-09 2002-10-18 엘지전자 주식회사 이중모드 움직임 추정 방법 및 장치
KR20020085269A (ko) * 2001-05-07 2002-11-16 엘지전자 주식회사 다중 후보를 이용한 움직임 벡터 병합 탐색 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715016A (en) * 1995-04-05 1998-02-03 Graphic Communication Laboratories Motion estimation method and apparatus for calculating a motion vector
US5731850A (en) * 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
FR2742248B1 (fr) * 1995-12-06 1998-01-23 Thomson Multimedia Sa Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement
JPH1079947A (ja) * 1996-09-03 1998-03-24 Mitsubishi Electric Corp 動きベクトル検出装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010010044A (ko) * 1999-07-15 2001-02-05 구자홍 엠펙-2 압축/복원시스템에서의 동영상 복원방법
KR20010076707A (ko) * 2000-01-27 2001-08-16 윤종용 움직임 추정기
KR20020078336A (ko) * 2001-04-09 2002-10-18 엘지전자 주식회사 이중모드 움직임 추정 방법 및 장치
KR20020085269A (ko) * 2001-05-07 2002-11-16 엘지전자 주식회사 다중 후보를 이용한 움직임 벡터 병합 탐색 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130138301A (ko) * 2011-03-15 2013-12-18 인텔 코오퍼레이션 저 메모리 액세스 모션 벡터 유도
KR101596409B1 (ko) * 2011-03-15 2016-02-23 인텔 코포레이션 저 메모리 액세스 모션 벡터 유도

Also Published As

Publication number Publication date
TWI277010B (en) 2007-03-21
US7912128B2 (en) 2011-03-22
US20070053440A1 (en) 2007-03-08
TW200710758A (en) 2007-03-16
KR20070029044A (ko) 2007-03-13

Similar Documents

Publication Publication Date Title
KR100788023B1 (ko) 움직임 벡터 추정 시스템 및 그 방법
US8391362B2 (en) Motion vector estimation apparatus and motion vector estimation method
US8787461B2 (en) High-performance block-matching VLSI architecture with low memory bandwidth for power-efficient multimedia devices
JP5044568B2 (ja) 予測誘導間引き探索を使用する動き推定
US20200007862A1 (en) Method of adaptive filtering for multiple reference line of intra prediction in video coding, video encoding apparatus and video decoding apparatus therewith
US20050265454A1 (en) Fast motion-estimation scheme
US7782957B2 (en) Motion estimation circuit and operating method thereof
US20070217514A1 (en) Adaptive Motion Estimation
US20070098075A1 (en) Motion vector estimating device and motion vector estimating method
KR20100017645A (ko) 동적 움직임 벡터 분석방법
US20110158319A1 (en) Encoding system using motion estimation and encoding method using motion estimation
US20150172702A1 (en) Fractional-pel interpolation filter method, filter device and electronic device using the same
US8254459B2 (en) Adaptive motion estimation
US20090316044A1 (en) Method and Associated Apparatus for Determining Motion Vectors
US8184709B2 (en) Low-power and high-throughput design of fast motion estimation VLSI architecture for multimedia system-on-chip design
US11516481B2 (en) Video encoding method and video encoding device
US6356592B1 (en) Moving image coding apparatus
US20090304293A1 (en) Motion estimation method and related apparatus for efficiently selecting motion vector
US20050047502A1 (en) Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding
CN100461865C (zh) 运动矢量估计系统
CN110708546B (zh) 多功能视频编码的帧内模式选择划分方法、系统及存储介质
US20160360225A1 (en) Complementary Vectors
US10687065B2 (en) Image processing apparatus and image processing method related to motion compensation
US8634669B2 (en) Fast implementation of context selection of significance map
US20150049801A1 (en) Intra refresh method for video encoding and a video encoder for performing the same

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131122

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161104

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20171012

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181011

Year of fee payment: 12