KR20060055555A - 규칙적 형태의 모션 검색 - Google Patents

규칙적 형태의 모션 검색 Download PDF

Info

Publication number
KR20060055555A
KR20060055555A KR1020067006128A KR20067006128A KR20060055555A KR 20060055555 A KR20060055555 A KR 20060055555A KR 1020067006128 A KR1020067006128 A KR 1020067006128A KR 20067006128 A KR20067006128 A KR 20067006128A KR 20060055555 A KR20060055555 A KR 20060055555A
Authority
KR
South Korea
Prior art keywords
motion
search
rectangular
video frame
points
Prior art date
Application number
KR1020067006128A
Other languages
English (en)
Other versions
KR100803405B1 (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 KR20060055555A publication Critical patent/KR20060055555A/ko
Application granted granted Critical
Publication of KR100803405B1 publication Critical patent/KR100803405B1/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/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/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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

직사각형 형태의 모선 검색 방법이 개시되었다. 본 방법의 일 실시예는 복수의 모션 검색 포인트 상에서 모션 측정을 수행하는 단계 -상기 복수의 모션 검색 포인트는 직사각형 검색 영역을 형성함-, 상기 모션 측정 결과에 기초해 상기 복수의 모션 검색 포인트 중에서 최소 모션 검색 포인트를 찾아내는 단계와, 만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 내측 영역 내에 있다면 상기 제1 비디오 프레임으로부터 상기 제2 비디오 프레임으로의 상기 화소 블록의 상기 상대적 움직임에 대응하는 모션 벡터를 찾아내는 단계를 포함한다.
데이터 압축, 모션 검색, 모션 벡터, DCT, 비디오 프레임

Description

규칙적 형태의 모션 검색{REGULAR-SHAPE MOTION SEARCH}
본 발명은 비디오 및 그래픽 신호 처리에 관한 것인데, 더 특정하게는 비디오 프레임 내에서 모션 검색을 실행하는 것에 관한 것이다.
비디오 데이터 압축은 쉽게 복원될 수 있는 중복 데이터(redundant data)를 제거하여 저장 공간이나 전송 대역폭을 감소시킨다. 전형적으로는, 비디오 데이터는, 화상의 대다수가 비디오 프레임들의 오브젝트들이 필드 내에서 움직일 때에 실질적으로 유사하게 되는 일련의 프레임들로 이루어진다. 이동 오브젝트들을 추적함으로써, 기록된 데이터량은 하나의 프레임에서 다른 프레임으로의 오브젝트들의 변화들로 감축되는 한편, 데이터의 나머지는 이전 프레임에 대해 기록된 데이터로 대체될 수 있다.
비디오 프레임 내의 화소(pixel)들의 블록이 어떻게 차순의 프레임 내에서 움직일 것인지를 추정하는 기존의 기울기 하강(gradient-descent) 방법은 풀 픽셀 다이아몬드 검색(full pixel diamond search)이라고 공통적으로 불린다. 풀 픽셀 다이아몬드 검색은 도1a 및 도1b에 도시된 두 개의 레벨을 사용하여 모션 검색을 수행한다. 도1a를 참조하면, 화소들의 측정값은 모션 검색의 제1 레벨에서 다이아몬드 검색 패턴 내의 9개의 검색 포인트(103)에서 수집된다. 모션 검색 포인트들 에서의 측정은 서로 비교되어 기준 프레임 내의 화소들의 블록의 각각의 검색 포인트가 현재 프레임 내의 화소들의 블록에 대해 얼마나 가까운지를 결정한다. 기준 프레임은 비디오 데이터 내의 이전 프레임일 수 있다. 만일 최근접 포인트가 다이아몬드 검색 패턴 내의 8개의 외측 포인트 중의 하나라면, 검색 패턴은 이 포인트에 중심을 둔 신규 위치로 시프트된다. 이런 경우에, 신규 검색 패턴은 구 검색 패턴과 공유하는 4개의 검색 포인트와 5개의 신규 검색 포인트를 갖는다. 따라서, 다이아몬드 검색 패턴이 2 그리드 라인만큼 우측으로 시프트되었을 때 5개의 신규 측정이 수행된다. 양 검색 패턴에 공통인 검색 포인트들에 대해서는 이전 측정들로부터의 데이터가 재사용될 수 있기 때문에 어떤 측정도 필요하지 않다.
만일 최상의 측정이 중심 포인트에서 이뤄지면, 다음 레벨의 검색은 도1b에 도시된 대로 수행된다. 이 레벨에서, 4개의 신규 모션 검색 포인트들(110)이 측정되고 이전 측정들로부터의 중심에 있는 포인트(105)의 데이터가 재사용된다. 최소 측정을 갖는 모션 검색 포인트는 풀 픽셀 검색 위치이다.
다이아몬드 검색은 패턴을 2 그리드만큼 시프트시키는 데에 단지 5번 또는 그 이상의 측정이 요구되기 정도이기 때문에 고속 알고리즘이다. 그러나, 다이아몬드 검색 패턴의 비규칙적 형태는 레지스터 파일 내에 저장된 측정 데이터에 대한 연산들을 복잡하게 만든다. 다이아몬드 검색의 몇몇 문제들에는 데이터의 어드레스 오프셋들을 추적하는 데에 있어서의 어려움, 저장 공간의 비효율적 사용, 및 듬성듬성한 샘플링 패턴에 기인한 진정 최소값들의 있을 수 있는 누락 등의 문제가 있다.
계산 요구의 방대한 양으로 인해, 모션 검색은 병렬 프로세서에 의해 보통은 수행된다. 하나의 그런 병렬 프로세서는 SIMD(Single Instruction Multiple Data)연산들을 사용한다. 예를 들어, 모션 검색의 한 측정은, 현재 프레임 내의 블록과 기준 프레임 내의 블록 간의 차의 L1-노름(norm) 척도인 절대차의 합(Sum of Absolute Different, SAD)이다. 모션 검색의 또 다른 측정은, 현재 프레임 내의 블록과 기준 프레임 내의 블록 간의 차의 L2-노름(유클리드 노름)의 제곱 척도인 제곱차의 합(Sum of Square Different, SSD)이다. 다중 데이터 엔트리들에 대한 SAD 및 SSD 측정은 SIMD 연산에 의해 수행될 수 있다. 전형적인 병렬 프로세서는 기억 장치 계층에 대한 데이터 액세스의 수를 감소시키기 위해서 큰 레지스터 파일을 갖는다. 검색 영역 내의 다이아몬드 검색 데이터는 보통은 이런 레지스터 파일에 기억된다. 병렬 프로세서는, 몇몇의 연속하는 열(column)들 내의 데이터 엔트리들의 절대 차의 합들을 계산하기 위해서 예를 들어 SAD 연산과 같은 병렬 연산으로 레지스터 파일 내의 다중 데이터 엔트리들에 액세스할 수 있다. 레지스터 파일 내의 다이아몬드 형태의 영역 내의 행(row)들은 다른 개수의 열들을 갖기 때문에 행들 내의 엔트리들의 SAD를 계산하기 위해서 다른 개수의 열들이 액세스될 수 있다. 결과적으로, 병렬 프로세서는 여러 행들 및 열들에 대한 다른 어드레스 오프셋들을 추적해야만 하고, 따라서 병렬 연산의 성능을 떨어뜨린다.
본 발명은 이하의 상세한 설명 및 첨부 도면들로부터 더 완전히 이해될 수 있는데, 이 첨부 도면들은 첨부된 청구범위를 도시된 특정 실시예들에만 국한시키 는 것으로 여겨져서는 안 되고 설명 및 이해를 위한 목적으로만 제시된 것으로 취급되어야 한다.
도1a는 다이아몬드 검색의 제1 레벨의 모션 검색 포인트들을 도시한 것이다.
도1b는 다이아몬드 검색의 제2 레벨의 모션 검색 포인트들을 도시한 것이다.
도2는 검색 영역의 일 실시예를 도시한 것이다.
도3은 직사각형 검색 패턴으로 모션 검색을 수행하는 처리의 일 실시예의 흐름도이다.
도4는 직사각형 검색 패턴의 일 실시예를 도시한 것이다.
도5는 병렬 프로세서 칩의 일 실시예를 도시한 것이다.
도6은 레지스터 파일의 예시적 실시예를 도시한 것이다.
도7은 비디오 인코더의 일 실시예를 도시한 것이다.
도8은 컴퓨터 시스템의 예시적 실시예를 도시한 것이다.
직사각형 형태의 모션 검색 방법이 개시된다. 직사각형 형태의 블록 모션 검색을 수행하는 방법의 일 실시예가, 직사각형 검색 영역 내의 복수의 모션 검색 포인트들에 대한 모션 측정을 수행하고, 모션 측정의 결과에 따라서 모션 검색 포인트들 중의 최소 모션 검색 포인트를 발견하고, 만일 최소 모션 검색 포인트가 직사각형 검색 영역의 내측 영역 내에 있다면 최소 모션 검색 포인트에 직사각형 검색 영역을 수렴시켜 제1 비디오 프레임으로부터 제2 비디오 프레임으로의 화소 블록의 상대적 움직임을 나타내는 모션 벡터를 발견하는 것을 포함한다.
이하의 설명에서, 많은 특정 상세 사항들이 제시된다. 그러나, 본 발명의 실시예들은 이런 특정한 상세 사항에 구애받지 않고 실시될 수 있다. 그 밖의 경우에는, 공지된 모듈들, 구조들, 및 테크닉들은 본 설명의 요점을 흐리지 않기 위해서, 자세하게 도시되지 않는다.
이하의 상세한 설명의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 연산들의 알고리즘 및 기호 표현에 의하여 제시된다. 이런 알고리즘 기술 및 표현은 자신들의 작업 내용을 그외의 당업자에게 효과적으로 전달하기 위해서 데이터 처리 분야에서 당업자에 의해 사용되는 수단이다. 알고리즘은 여기서 및 일반적으로 바라는 결과로 이끄는 연산들의 일관성 있는 시퀀스로 여겨진다. 이 연산들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 보통은, 반드시 그렇지는 않지만, 이런 양들은 저장되고, 트랜스퍼되고, 결합되고, 비교되고, 및 그외의 식으로 조작될 수 있는 전기적 또는 자기적 신호들의 형태를 취한다. 주로 공통 사용을 위한 목적으로, 때때로, 이런 신호들을 비트들, 값들, 성분들, 심볼들, 캐릭터들, 항(term)들, 숫자들 등과 같은 것으로 언급하는 것이 편리하다는 것이 알려져 있다.
그러나, 이런 용어들 및 유사한 용어들의 모든 것이 적합한 물리적 양들과 관련되어야 하고, 이런 양들에 적용되는 편리한 라벨들에 불과하다는 점을 염두에 두어야 한다. 이하의 논의에서 명백한 것처럼 그외의 식으로 명시적으로 언급되지 않는 한, 본 설명을 통해서 '처리(processing)' 또는 '컴퓨팅' 또는 '계산' 또는 '결정(determining)' 또는 '디스플레잉' 등과 같은 용어를 활용한 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전기적) 양들로서 표현되는 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 그외의 정보 저장, 전송 또는 표시용 장치들 내의 물리적 양들로서 유사하게 표현되는 그외의 데이터가 되도록 조작하고 변환하는, 컴퓨터 시스템 또는 유사한 전자적 컴퓨팅 장치의 액션 및 프로세스들을 지칭한다.
본 발명은 또한 여기의 연산들을 수행하는 장치들에 관련된다. 본 장치는 요구되는 목적을 위해 특별하게 구축될 수도 있고, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수도 있다. 이런 컴퓨터 프로그램은, 플로피 디스크를 포함하는 디스크들, 광 디스크들, CD-ROM들, 및 자기-광 디스크들, ROM들, RAM들, EPROM들, EEPROM들, 자기 또는 광 카드들, 또는 전자적 명령들을 저장하는 데에 적합한 임의 유형의 매체(각각은 컴퓨터 시스템 버스에 접속됨) 중의 임의 유형의 것과 같은 컴퓨터 판독 가능 저장 매체에 저장될 수 있는데, 이것들에만 한정되는 것은 아니다.
여기 제시된 연산들 및 디스플레이들은 임의의 특정 컴퓨터 또는 그외의 장치들에 원래적으로 관계되지는 않는다. 여러가지의 범용 시스템들이 여기의 교시에 따라서 프로그램들에 의해 사용될 수 있거나 또는 이 연산들을 실행하기 위해서 더 특수화된 장치들을 구축하는 것이 편리할 수도 있다. 다양한 이런 시스템들에 대해 요구되는 구조는 이하의 설명에서 보일 것이다. 또한, 본 발명은 임의의 특정 프로그래밍 언어를 기준으로 설명되지는 않는다. 다양한 프로그래밍 언어들이 여기 설명된 본 발명의 교시를 구현하는 데에 사용될 수 있다.
머신 판독 가능 매체는 머신(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하거나 전송하는 임의의 메커니즘을 포함한다. 예를 들어, 머신 판독 가능 매체는, ROM; RAM; 자기 디스크 저장 매체; 광 저장 매체; 플래시 메모리 장치들; 전기적, 광학적, 음향학적, 또는 그외의 형태로 전파되는 신호들 (예로, 반송파, 적외선 신호, 디지털 신호 등) 등을 포함할 수 있다.
일 실시예에서, 직사각형 검색 패턴이 하나의 비디오 프레임으로부터 또 다른 비디오 프레임으로의 화소 블록의 상대적 움직임을 결정하도록 검색 영역을 정의하기 위해서 사용된다. 비디오 프레임은 다중의 화소 블록을 포함할 수 있다. 도2는 기준 윈도우(200) 내의 검색 영역의 일 실시예를 보여준다. 도2을 참조하면, 기준 윈도우(200)는 16×16 그리드이다. 검색 영역(201)은 영역 내측에 16개의 모션 검색 포인트를 갖는 4×4 정사각형 형태를 갖는다. 정사각형은 등변 사각형이라는 점이 잘 알려져 있다. 4×4 정사각형이 여기서 예시적 목적을 위해서 사용된 것임을 알아야 한다. 예를 들어 4×8, 16×8, 16×16 등과 같은 다른 치수를 갖는 직사각형 검색 영역들이 그외의 실시예에서 사용될 수 있다. 도2를 다시 참조하면, 검색 영역은 예를 들어 포인트(220)과 같은 4개의 내측 검색 포인트들과 예를 들어 포인트(210)과 같은 정사각형 영역(201)의 에지들을 따른 12개의 검색 포인트들을 갖는다. 12개의 검색 포인트는 4개의 내측 포인트와 구별하여 외측 포인트들로 지칭된다. 일 실시예에서, 내측 포인트들 및 외측 포인트들의 각각은 기준 프레임 내의 화소 블록에 대응한다.
일 실시예에서, 하나 또는 그 이상의 화소 속성들의 측정이 검색 영역(201) 내의 각각의 모션 검색 포인트에서 이루어져서 기준 비디오 프레임 내의 또 다른 화소 블록과 매칭되는 현재 비디오 프레임 내의 화소 블록을 발견한다. 이 속성들은 화소 강도, 화소 색 등을 포함할 수 있다. 일 실시예에서, 각각의 검색 포인트에서의 화소 블록의 측정은 소정 기준에 기초해 기준 비디오 프레임 내의 화소 블록과 비교된다. 일 실시예에서, 두 개의 프레임 내의 화소 블록들의 화소들 간의 화소 강도의 절대차의 합(SAD)이 계산된다. 일 실시예에서, 최소 포인트로도 지칭되는 최소 SAD를 갖는 검색 포인트가 선택된다.
일 실시예에서, 검색이 수행되어 기준 비디오 프레임으로부터 현재 비디오 프레임으로의 화소 블록의 상대적 움직임을 발견한다. 최소 포인트가 정사각형 검색 영역 내의 내측 포인트들 중의 하나일 때, 기준 프레임 내의 최소 포인트에 중심을 둔 블록이 현재 프레임 내의 화소 블록의 최근접 매칭이 된다. 일단 기준 프레임 내의 화소 블록의 최근접 매칭이 발견되었다면, 기준 프레임으로부터 현재 프레임으로의 화소 블록의 상대적 움직임을 나타내는 모션 벡터가 결정될 수 있다.
일 실시예에서, 한 세트의 비디오 프레임을 갖는 비디오 데이터가, 제1 프레임을 압축 포맷의 기준 프레임으로서 저장하고 차순의 프레임들을 이전 프레임으로부터의 여러 화소 블록들의 모션 벡터들 및 모션 예측 레시듀(residue)들로서 저장함으로써 압축된다. 변환 코딩 및 엔트로피 코딩들과 같은 도구들이 제1 및 차순의 프레임을 압축하고 및/또는 저장하는 데에 사용될 수 있다. 압축된 비디오 데이터의 볼륨은 압축되지 않은 비디오 데이터보다 작고, 따라서 비디오 데이터를 전송하는 데에 사용되는 대역폭과 비디오 데이터를 저장하는 데에 사용되는 저장 공간의 둘 모두를 감축한다.
일 실시예에서, 최소 포인트가 외측 포인트들 중의 임의의 하나일 때 검색은 계속된다. 새로운 검색 영역이 발견된 최소 포인트에 실질적으로 중심을 두게 되도록 검색 영역이 시프트된다. 예를 들어, 도2를 다시 참조하면, 8개의 가능한 이동 방향들, 즉 네 개의 코너 조(corner case)와 네 개의 에지 조들이 있다. 새로운 검색 위치는 직사각형 검색 영역의 각각의 변 상에 있는 두 개의 코너 아닌 외측 에지 위치에 대해 공통적이다. 새로운 검색 영역들의 몇몇 예가 도2에 도시되었는데, 즉, 좌상 코너 조(203), 우 시프트 조(205), 및 하방 시프트 조(207)가 있다.
일 실시예에서, 두개의 검색 패턴에 대해 공통적인 모션 검색 포인트들의 측정이 시간 절약을 위해 재사용된다. 도2를 참조하면, 코너 조(203)에는 4개의 공통 모션 검색 포인트들, 즉 모션 검색 포인트들(223)이 있다. 따라서, 시프트된 검색 패턴에서 12개의 비공통 검색 포인트들의 측정이 수행된다. 우측 시프트 조(205) 또는 하방 시프트 조(207)와 같은 에지 조에서는, 8개의 공통 검색 포인트가 있다. 따라서, 시프트된 검색 패턴에서 8개의 비공통 검색 포인트의 측정이 수행된다. 환언하면, 검색 패턴이 2 그리드만큼 시프트했을 때 8번 또는 그 이상의 측정이 수행된다.
일 실시예에서, 4×4 검색 영역이, 타일(tile)들로 알려진 4개의 2×2 워크 패턴(walk pattern)으로 추가로 분할된다. 각각의 2×2 타일에 대해 하나씩 하나씩 모션 측정이 수행될 수 있다.
도3은 직사각형 검색 패턴으로 모션 검색을 수행하는 처리의 일 실시예의 흐름도이다. 이 처리는 하드웨어(예를 들어, 회로, 전용 회로 등), 소프트웨어(범용 컴퓨터 시스템 또는 전용 머신 상에서 돌아감), 또는 이 둘의 결합을 포함할 수 있는 프로세싱 로직에 의해 수행된다. 도3을 참조하면, 프로세싱 로직은 기준 비디오 프레임 내의 선택된 검색 개시 위치에 중심을 둔 기준 윈도우를 현재 프레임 내의 화소 블록에 대해 로드한다(처리 블록 310). 일 실시예에서, 기준 윈도우는 32×32 화소 어레이를 포함하고, 직사각형 검색 영역은 4×4 정사각형이다. 일 실시예에서, 4×4 정사각형 검색 영역은 네 개의 2×2 데이터부로 추가 분할된다. 데이터부는 타일로 또한 지칭될 수 있다. 일 실시예에서, 프로세싱 로직은 4 비트 마스크를 '1111'이 되도록 설정하여 정사각형 검색 영역의 네 개의 타일의 각각 내에서의 모션 측정을 턴 온하는데, 여기서 마스크의 각각의 비트는 정사각형 검색 영역 내의 별개의 타일에 대응한다(처리 블록 320).
일 실시예에서, 프로세싱 로직은 각각의 타일 내에서 모션 측정을 수행한다( 처리 블록 330). 프로세싱 로직은, 타일 워킹으로도 알려진, 또 다른 타일 상으로의 이동 전에 하나의 타일 내의 모션 측정을 완료할 수 있다. 일 실시예에서, 프로세싱 로직은 검색 영역 내의 검색 포인트에서 화소의 하나 또는 그 이상의 화소 속성을 측정한다. 속성들의 예들로는 화소 강도, 화소 색 등이 있다. 일 실시예에서, 프로세싱 로직은 측정된 속성의 SAD를 계산하여 16개의 모션 검색 포인트들 중에서 최소 SAD를 갖는 포인트를 찾는다(처리 블록 340).
일 실시예에서, 프로세싱 로직은 만일 최소 포인트가 검색 영역 내의 내측 포인트들 중의 하나라면, 검색을 종료한다(처리 블록 390). 만일 최소 포인트가 검색 영역의 외측 포인트들 중의 하나라면, 프로세싱 로직은 정사각형 검색 영역을 시프트하여 최소 포인트 상에 실질적으로 중심을 두도록 한다(처리 블록 360). 현재의 검색 영역과 시프트된 검색 영역이 중첩하므로, 중첩된 에리어 내의 모션 검색 포인트들에서 화소들을 측정하는 것은 불필요하다. 일 실시예에서, 프로세싱 로직은, 최소 포인트가 현재 검색 영역의 코너에 있을 때 검색 영역 양자에 공통적인 4개의 모션 검색 포인트들의 SAD 값들을 카피하거나, 또는 최소 포인트가 현재 검색 영역의 에지를 따라 있고 현재 검색 영역의 코너에 있지 않을 때 검색 영역 양자에 공통적인 8개의 모션 검색 포인트들의 SAD 값들을 카피한다. 일 실시예에서, 프로세싱 로직은 두개의 1로 또는 세개의 1로 마스크를 설정하여, 최소 포인트가 정사각형 검색 영역 내의 코너에 있는지의 여부에 따라서, 시프트된 검색 영역 내의 타일들의 2 또는 3에서의 모션 측정을 턴온한다(처리 블록 370).
일 실시예에서, 프로세싱 로직은 화소들의 또 다른 블록을 로드하고, 만일 시프트된 검색 영역의 화소 블록들 내의 화소들 중의 임의의 것이 기준 윈도우의 바깥에 있다면 이 블록의 중심을 재배치한다(처리 블록 380). 그후 프로세싱 로직은 처리 블록(330-380)을 반복한다. 일 실시예에서, 모션 검색은 어느 한 비디오 프레임으로부터 또 다른 비디오 프레임으로의 화소 블록의 상대적 움직임을 결정하기 위해 수행된다. 일 실시예에서, 프로세싱 로직은 전체 비디오 프레임을 저장하기보다는 어느 한 비디오 프레임으로부터 또 다른 비디오 프레임으로의 화소 블록들의 상대적 움직임을 나타내는 모션 벡터들을 저장함으로써 비디오 데이터를 압축한다.
일 실시예에서, 8×8, 4×8, 16×4 등과 같은 더 큰 직사각형 검색 패턴이 사용된다. 만일 최소 포인트가 직사각형 검색 영역의 에지 상에 또는 코너에 있지 않다면, 검색은 검색 영역을 축소함으로써 수렴(converge)된다. 일 실시예에서, 하위 화소(sub-pixel) 모션 벡터가 지원되고, 따라서 검색은 정수(integer) 모션 검색의 최소 포인트가 검색 영역의 내측 포인트들 중의 하나일 때 하위 화소 레벨로 지속된다. 도4는 직사각형 검색 패턴을 갖는 2 레벨의 계층적 모션 검색의 일 실시예를 보여준다. 도4를 참조하면, 제1 레벨의 직사각형 검색 패턴은 인접한 검색 포인트들이 2 화소만큼 떨어져 있는 4×4 = 16 검색 포인트들을 포함한다. 제1 레벨의 검색 후에, 만일 검색이 내측 검색 포인트(420)에 수렴한다면, 제2 레벨의 정수 포인트 모션 검색이 포인트(420) 주위에서 수행된다. 특히, 최소 포인트(420)에 이웃하고 있는 8개의 새로운 샘플 위치들(410)(도4에서 별표로 표시됨)이 제2 레벨 검색에서 측정된다. 9개의 위치들 중의 최소값을 갖는 위치가 수렴된 정수 위치이다. 일 실시예에서, 하위 화소 모션은 하프 픽셀(half-pixel) 해상도를 갖는다. 8개의 샘플 위치(410)에 의해 형성된 형태에 유사한 형태로 수렴된 정수 위치에 인접한 하프 픽셀 위치들에 있는 8개의 신규 샘플 위치들이 측정된다. 9개의 위치(8개의 하프 픽셀 위치들 더하기 수렴된 정수 위치) 중에서 최소값을 갖는 위치가 수렴된 하프 픽셀 위치이다.
도5는 병렬 프로세서 칩(500)의 일 실시예를 도시한 것이다. 병렬 프로세서 칩(500)은 병렬 프로세서(542)와 레지스터 세트(544)를 포함한다. 레지스터 세트는 레지스터 파일로도 지칭된다. 병렬 프로세서(542)는 인코더(551) 및 디코더(553)를 포함한다. 인코더의 일 실시예의 상세 사항이 도7을 참조하여 이하에 논의된다. 병렬 프로세서는 레지스터 파일(544)에 데이터를 기입하고 레지스터 파일(544)로부터 데이터를 판독한다. 일 실시예에서, 레지스터 파일(544)에 저장된 데이터는 열들 및 행들로 배열된다.
일 실시예에서, 병렬 프로세서(542)는 SIMD 아키텍처를 채택하고, 레지스터 파일(544)의 열 기반 및 행 기반 액세스를 지원한다. 병렬 프로세서(542)는 측정 데이터를 비디오 프레임 내의 직사각형 검색 영역에 대응하는 레지스터 파일 내로 로드한다. 일 실시예에서, 레지스터 파일(544)은 논리적으로 직사각형으로 배열되고, 따라서 비디오 프레임 내의 직사각형 검색 영역은 레지스터 파일 내의 영역에 편리하게 매핑될 수 있다. 레지스터 파일 내의 직사각형 영역들 내에 화소 데이터를 저장하는 것은 병렬 프로세서(542)로 하여금 병렬로 검색 영역들의 화소 데이터 에 대해 액세스하고 연산하는 것을 허용해 준다. 이런 병렬 액세스 능력은 병렬 프로세서(542)의 처리량을 증가시킨다.
도6은 레지스터 파일(600)의 예시적 실시예를 도시한 것이다. 정사각형(610) 내의 레지스터들은 비디오 프레임 내의 정사각형 검색 영역의 검색 포인트들의 데이터를 저장한다. 검색 영역의 최소 포인트가 정사각형의 우측 에지 상에 있다고 상정하면, 병렬 프로세서는 정사각형 검색 영역을 우측으로 시프트한다. 신규 검색 영역에 대응하는 데이터는 레지스터 파일(600) 내의 정사각형(620) 내의 레지스터들 내에 있다. 일 실시예에서, 레지스터 파일 내의 데이터의 위치들은 검색 포인트들의 위치들에 대응한다. 따라서, 병렬 프로세서(542)는 중첩된 검색 영역을 처리하는 데 있어서 레지스터 파일 내에 이미 저장된 데이터를 재사용함으로써 시간을 절약한다. 더 나아가, 데이터가 저장되는 위치들이 검색 포인트들의 위치들에 대응하기 때문에, 중첩 에리어 내의 검색 포인트들의 데이터를 레지스터 파일 내의 또 다른 위치에 카피하는 것도 불필요하다.
더욱이, 직사각형 검색 패턴의 사용은, 병렬 프로세서가 레지스터 파일 내의 직사각형 패턴들에 대한 어드레스 오프셋들을 쉽게 계산할 수 있기 때문에 레지스터 파일 내의 데이터의 재사용을 보다 쉽게 하여주는데, 여기의 직사각형 검색 패턴은 다이아몬드 검색 패턴 또는 롬버스(rhombus) 검색 패턴과는 달리, 논리적으로 직사각형 형태로 배열될 수 있다. 또한, 병렬 프로세서(542)는 데이터가 검색 영역들에 대응하는 직사각형 영역들에 저장될 때 레지스터 파일 내의 더 많은 데이터를 재사용할 수 있다.
도7은 비디오 인코더의 일 실시예를 보여준다. 비디오 인코더(700)는 MPEG 비디오 인코더일 수 있다. 인코더(700)는 이산 코사인 변환기(DCT)(710), 모션 보상기(720), 모션 추정기(730), 프레임 메모리(740), 클리핑을 수행하는 로직 회로(750), 가변 길이 코더(VLC)(760), 역 이산 코사인 변환기(IDCT)(770), 양자화부(780), 역양자화부(dequantization unit)(790), 주사부(scan unit)(792), 및 역 주사부(inverse scan unit)(794)를 포함한다.
일 실시예에서, 입력 비디오 데이터가 모션 추정기(730)에게 제공되는데, 이 추정기는 직사각형 모션 검색을 수행하여 현재의 비디오 프레임을 기준 비디오 프레임과 비교한다. 모션 추정기는 직사각형 모션 검색 외에도 롬버스 형태의 모션 검색과 같은 그외의 유형의 모션 검색을 수행할 수 있다. 출력은 VLC(760) 뿐만이 아니라 모션 보상기(720)에게도 제공된다. 모션 보상기는 프레임 메모리(740)로부터도 입력을 수신하여 입력 데이터에 대한 모션 보상을 결정하는데, 이 보상값은 감산기(705)에 의해 현재의 비디오 프레임으로부터 감산된다. 보상된 비디오 데이터는 DCT(710)로 입력된다. DCT(710)는 변환된 비디오 데이터를 양자화부(780)로 출력한다. 양자화부(780)는 양자화된 비디오 데이터를 주사부(792)로 출력한다.
일 실시예에서, 주사부(792)는 데이터를 데이터 성분들의 스트림으로 조직한다. 예를 들어, 주사부(792)는 8×8 양자화 변환된 비디오 데이터 블록을 지그재그 스캐닝하여 데이터 성분들의 스트림을 출력한다. 데이터 성분들의 대다수가 양자화 후에 제로가 되기 때문에, 데이터는 두 개의 변수, 즉 RUN 과 LEVEL의 조합으로서 포맷팅된다. RUN은 LEVEL에 있는 제로 아닌 값에 선행하는 제로들의 개수이다. 따라서, 양자화부의 출력은 (RUN, LEVEL) 심볼들의 시퀀스로 구성된다. 더 나아가, 양자화부는 데이터 압축이 MPEG-2 인코딩과 같이 손실 있는 압축 방법인 경우에 일부 정보를 버릴 수 있다. 주사부(792)는 이후 양자화된 데이터를 VLC(760)로 출력한다. 일 실시예에서, 양자화된 데이터는 데이터 성분들의 스트림으로서 조직된다. 일 실시예에서, VLC(760)는 후프만(Huffman) 룩업 테이블 세트를 통해 각각의 (RUN, LEVEL) 쌍을 패스시켜서 비트 패턴이 할당되도록 한다. 비트 패턴들은 다른 (RUN, LEVEL) 심볼들에 대한 다른 수의 비트를 가질 수 있는데, 즉, 비트 패턴들은 가변 길이들을 가질 수 있다.
VLC(760)외에도, 주사부(792)도 데이터를 역 주사부(794)로 출력한다. 역 주사부(794)는 비디오 데이터 스트림을 8×8 양자화 변환된 비디오 데이터 블록으로 리버스 백(reverse back)시킨다. 역 주사부(794)는 데이터를 역양자화부(790)로 출력한다. 역양자화부(790)는 데이터에 대해 행해진 양자화를 리버스시키고 이 데이터를 역 DCT(770)로 출력한다. 역 DCT(770)의 출력은 프레임 메모리(740)로부터의 데이터에 합산된다. 일 실시예에서, 이 합은 8비트 이상의 것, 즉 0 내지 255의 범위를 넘어서며, 따라서 이 합은 클리핑(750)을 수행하기 위해 로직 회로에 입력된다. 로직 회로(750)는 화소마다 입력을 트렁케이트(truncate)하여 데이터가 0 내지 255의 범위 내에 있도록 할 수 있다. 일 실시예에서, 0보다 작은 임의의 입력값이 제로에 할당되며, 255보다 큰 임의의 입력 값은 255에 할당되고, 한편, 0 내지 255 간의 임의의 값은 불변인 채로 남아 있다. 클리핑의 결과는 이후 프레임 메모리(740)에 저장된다. 프레임 메모리에 저장된 결과는 이후 미래의 비디오 프레임들 용의 기준 프레임으로서 사용될 수 있다.
도8은 컴퓨터 시스템(800)의 예시적 실시예를 도시하였다. 시스템(800)은 프로세서(810), DRAM(830), 메몰 컨트롤러(MCH)(820), 및 그래픽 칩(840)을 포함한다. 프로세서(810), DRAM(830), 및 그래픽 칩(840)은 MCH(820)에 결합된다.
일 실시예에서, 그래픽 프로세서(840)는 비디오 인코딩을 수행할 수 있는 병렬 프로세서이다. 그래픽 칩(840)은 레지스터 세트(844) 및 그래픽 프로세서(842)를 포함한다. 레지스터 세트(844)는 레지스터 파일로도 지칭된다. 일 실시예에서, 레지스터 파일은 열들 및 행들로 배열된다. 그래픽 프로세서(842)는 레지스터 세트(844)에 결합된다.
일 실시예에서, 그래픽 프로세서(842)는 직사각형 검색 패턴을 사용하여 비디오 프레임에서 모션 검색을 수행한다. 화소 블록 상의 직사각형 검색 패턴 내에 다수의 모션 검색 포인트들이 있다. 그래픽 프로세서(842)는 모션 검색 포인트의 각각에 대한 모션 측정들을 수행하여 모션 검색 포인트의 각각에 대한 SAD 값을 계산한다. 일 실시예에서, 최소 SAD 값을 갖는 모션 검색 포인트는 최소 포인트로서 식별된다. 만일 최소 포인트가 직사각형 검색 영역의 외측 포인트라면, 그래픽 프로세서(842)는 검색 영역을 시프트하여 최소 포인트에 중심을 두도록 하고 시프트된 검색 영역 내의 모션 검색 포인트들에 대한 모션 측정을 반복한다. 그렇지 않은 경우에는, 그래픽 제어기(842)는 검색을 끝내고, 화소 블록의 모션 벡터를 계산한다. 그래픽 프로세서(842)는 측정 데이터, SAD 값 또는 모션 벡터를 레지스터들(844) 내에 저장할 수 있다. 비디오 프레임 자체 대신에 비디오 프레임의 모션 검색 데이터를 저장함으로써, 그래픽 프로세서(842)는 비디오 데이터를 압축한다.
이상의 논의는 본 발명의 몇몇 예시적 실시예들을 기술한 것에 불과하다. 당업자는 이런 논의와 첨부 도면들 및 청구범위로부터, 여러 변형들이 청구범위의 사상 및 범위를 벗어나지 않고서 이루어질 수 있음을 쉽게 인식할 수 있다. 본 설명은 따라서 제한적인 의미에서가 아니라 예시적인 목적으로 주어진 것으로 간주해야 한다.

Claims (29)

  1. 기준 비디오 프레임에 대해 상대적으로 입력 비디오 데이터에 대한 모션 검색을 수행하여 복수의 모션 벡터를 생성하는 모션 추정기 -상기 모션 검색은 직사각형 모션 검색(rectangular motion search)을 포함함- 와,
    상기 모션 벡터들을 사용하여 상기 입력 비디오 데이터를 압축하는 가변 길이 코더(variable length coder)
    를 포함하는 비디오 인코더.
  2. 제1항에 있어서,
    상기 입력 비디오 데이터를 실수 도메인(real-domain)에서 변환하는 변환기와,
    상기 변환된 비디오 데이터를 양자화하는 양자화부
    를 더 포함하는 비디오 인코더.
  3. 제1항에 있어서,
    상기 모션 추정기에 결합되어 상기 기준 프레임을 저장하는 프레임 메모리
    를 더 포함하는 비디오 인코더.
  4. 기준 비디오 프레임에 대해 상대적으로 입력 비디오 데이터에 대한 모션 검 색을 수행하여 복수의 모션 벡터를 생성하는 단계 -상기 모션 검색은 직사각형 모션 검색을 포함함- 와,
    상기 모션 벡터들을 사용하여 상기 입력 비디오 데이터를 압축하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서,
    상기 입력 비디오 데이터를 실수 도메인에서 변환하는 단계와,
    상기 변환된 비디오 데이터를 양자화하는 단계
    를 더 포함하는 방법.
  6. 제4항에 있어서,
    상기 기준 프레임을 저장하는 단계
    를 더 포함하는 방법.
  7. 제1 비디오 프레임으로부터 제2 비디오 프레임으로의 화소 블록의 상대적 움직임을 결정하는 방법으로서,
    직사각형 검색 영역을 형성하는 복수의 모션 검색 포인트 상에서 모션 측정을 수행하는 단계와,
    상기 모션 측정 결과에 기초해 상기 복수의 모션 검색 포인트 중에서 최소 모션 검색 포인트를 찾아내는 단계와,
    만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 내측 영역 내에 있다면 상기 제1 비디오 프레임으로부터 상기 제2 비디오 프레임으로의 상기 화소 블록의 상기 상대적 움직임에 대응하는 모션 벡터를 찾아내는 단계
    를 포함하는 방법.
  8. 제7항에 있어서,
    만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 에지를 따라 또는 이것의 코너에 있다면, 상기 최소 모션 검색 포인트에 실질적으로 중심을 두도록 상기 직사각형 검색 영역을 재배치(repositioning)하여 상기 직사각형 검색 영역을 부분적으로 중첩시키는 단계 -상기 재배치된 직사각형 검색 영역은 제2 복수의 모션 검색 포인트를 포함함- 와,
    상기 제2 복수의 모션 검색 포인트 상에서 모션 측정을 수행하는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서, 상기 제2 복수의 모선 검색 포인트 상에서의 상기 모션 측정은 상기 직사각형 검색 영역과 상기 재배치된 직사각형 검색 영역 둘 모두 내에 있는 상기 복수의 모션 검색 포인트 중의 하나 또는 그 이상의 것을 제외시키는
    방법.
  10. 제7항에 있어서,
    상기 직사각형 검색 영역을 복수의 데이터부로 분할하는 단계 -상기 복수의 데이터부의 각각은 실질적으로 동일한 크기 및 복수의 모션 검색 포인트의 구별되는 서브세트를 가짐-
    를 더 포함하고,
    상기 모션 측정은 상기 복수의 데이터부의 각각에서 하나씩 수행되는
    방법.
  11. 제10항에 있어서, 상기 직사각형 검색 영역은 16개의 모션 검색 포인트를 갖는 정사각형 검색 영역인 방법.
  12. 제11항에 있어서, 상기 정사각형 검색 영역은 4개의 데이타부로 분할되고, 상기 4개의 데이터부의 각각은 4개의 구별되는 모션 검색 포인트를 갖는 방법.
  13. 제7항에 있어서,
    미세조정(refinement) 모션 검색을 수행하는 단계
    를 더 포함하고,
    상기 미세조정 모션 검색을 수행하는 단계는 만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 상기 내측 영역 내에 있다면 상기 최소 포인트에 상기 직사각형 검색 영역을 축소시키는 것을 포함하는
    방법.
  14. 제7항에 있어서, 만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 내측 영역 내에 있다면 상기 최소 포인트 주위에서 하위 화소(sub-pixel) 모션 검색을 수행하는 단계
    를 더 포함하는 방법.
  15. 비디오 데이터를 압축하는 방법으로서,
    기준 비디오 프레임으로서 제1 비디오 프레임을 정의하는 단계와,
    상기 기준 비디오 프레임에 대해 상대적으로 제2 비디오 프레임에 대한 모션 검색을 수행하여 상기 기준 비디오 프레임에 대해 상대적으로 상기 제2 비디오 프레임의 복수의 모션 벡터를 결정하는 단계와,
    상기 비디오 데이터를 상기 기준 비디오 프레임과 상기 제2 비디오 프레임의 상기 복수의 모션 벡터로 감축하는 단계
    를 포함하고,
    상기 모션 검색은,
    화소 블록 내의 직사각형 검색 영역을 형성하는 복수의 모션 검색 포인트 상에서 모션 측정을 수행하고,
    상기 모션 측정 결과에 기초해 상기 복수의 모션 검색 포인트 중에서 최소 모션 검색 포인트를 찾아내고,
    만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 내측 영역 내에 있다면 상기 제1 비디오 프레임으로부터 상기 제2 비디오 프레임으로의 상기 화소 블록의 상기 상대적 움직임에 대응하는 모션 벡터를 찾아내는 것
    을 포함하는
    방법.
  16. 제15항에 있어서, 상기 모션 검색을 수행하는 단계는,
    만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 에지를 따라 또는 이것의 코너에 있다면, 상기 최소 모션 검색 포인트에 실질적으로 중심을 두도록 상기 직사각형 검색 영역을 재배치하여 상기 직사각형 검색 영역을 부분적으로 중첩시키는 단계와,
    제2 복수의 모션 검색 포인트 상에서 모션 측정을 수행하는 단계
    를 더 포함하는
    방법.
  17. 제16항에 있어서,
    상기 제2 복수의 모선 검색 포인트 상에서의 상기 모션 측정은 상기 직사각형 검색 영역과 상기 재배치된 직사각형 검색 영역 둘 모두 내에 있는 상기 복수의 모션 검색 포인트 중의 하나 또는 그 이상의 것을 제외시키는
    방법.
  18. 제15항에 있어서,
    상기 직사각형 검색 영역을 복수의 데이터부로 분할하는 단계 -상기 복수의 데이터부의 각각은 실질적으로 동일한 크기 및 복수의 모션 검색 포인트의 구별되는 서브세트를 가짐-
    를 더 포함하고,
    상기 모션 측정은 상기 복수의 데이터부의 각각에서 하나씩 수행되는
    방법.
  19. 프로세서에 의해 실행되었을 때, 프로세서로 하여금 제1 비디오 프레임으로부터 제2 비디오 프레임으로의 화소 블록의 상대적 움직임을 결정하는 연산들을 수행하도록 야기하는 명령어들을 제공하는 머신 액세스 가능한 매체로서, 상기 연산들은,
    직사각형 검색 영역을 형성하는 복수의 모션 검색 포인트 상에서 모션 측정을 수행하는 단계와,
    상기 모션 측정 결과에 기초해 상기 복수의 모션 검색 포인트 중에서 최소 모션 검색 포인트를 찾아내는 단계와,
    만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 내측 영역 내에 있다면 상기 제1 비디오 프레임으로부터 상기 제2 비디오 프레임으로의 상기 화소 블록의 상기 상대적 움직임에 대응하는 모션 벡터를 찾아내는 단계
    를 포함하는
    머신 액세스 가능 매체.
  20. 제19항에 있어서, 상기 연산들은,
    만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 에지를 따라 또는 이것의 코너에 있다면, 상기 최소 모션 검색 포인트에 실질적으로 중심을 두도록 상기 직사각형 검색 영역을 재배치하여 상기 직사각형 검색 영역을 부분적으로 중첩시키는 단계와,
    제2 복수의 모션 검색 포인트 상에서 모션 측정을 수행하는 단계
    를 더 포함하는
    머신 액세스 가능 매체.
  21. 제19항에 있어서,
    상기 제2 복수의 모선 검색 포인트 상에서의 상기 모션 측정은 상기 직사각형 검색 영역과 상기 재배치된 직사각형 검색 영역 둘 모두 내에 있는 상기 복수의 모션 검색 포인트 중의 하나 또는 그 이상의 것을 제외시키는
    머신 액세스 가능 매체.
  22. 제19항에 있어서, 상기 연산들은,
    상기 직사각형 검색 영역을 복수의 데이터부로 분할하는 단계 -상기 복수의 데이터부의 각각은 실질적으로 동일한 크기 및 복수의 모션 검색 포인트의 구별되 는 서브세트를 가짐-
    를 더 포함하고,
    상기 모션 측정은 상기 복수의 데이터부의 각각에서 하나씩 수행되는
    머신 액세스 가능 매체.
  23. 제22항에 있어서,
    상기 직사각형 검색 영역은 16개의 모션 검색 포인트를 갖는 정사각형 검색 영역인 머신 액세스 가능 매체.
  24. 제23항에 있어서,
    상기 정사각형 검색 영역은 4개의 데이타부로 분할되고, 상기 4개의 데이터부의 각각은 4개의 구별되는 모션 검색 포인트를 갖는
    머신 액세스 가능 매체.
  25. DRAM 장치와,
    상기 DRAM 장치에 결합된 메모리 컨트롤러와,
    상기 메모리 컨트롤러에 결합된 병렬 프로세서 칩
    을 포함하는 시스템으로서,
    상기 병렬 프로세서 칩은,
    레지스터 파일을 정의하는 복수의 레지스터와,
    상기 복수의 레지스터에 결합된 병렬 프로세서 -상기 병렬 프로세서는 제1 비디오 프레임으로부터 제2 비디오 프레임으로의 화소 블록의 상대적 움직임을 결정하는 연산들을 수행하도록 동작가능함-
    를 포함하고,
    상기 연산들은,
    직사각형 검색 영역을 형성하는 복수의 모션 검색 포인트 상에서 모션 측정을 수행하는 단계와,
    상기 모션 측정 결과에 기초해 상기 복수의 모션 검색 포인트 중에서 최소 모션 검색 포인트를 찾아내는 단계와,
    만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 내측 영역 내에 있다면 상기 제1 비디오 프레임으로부터 상기 제2 비디오 프레임으로의 상기 화소 블록의 상기 상대적 움직임에 대응하는 모션 벡터를 찾아내는 단계
    를 포함하는
    시스템.
  26. 제25항에 있어서, 상기 연산들은,
    만일 상기 최소 모션 검색 포인트가 상기 직사각형 검색 영역의 에지를 따라 또는 이것의 코너에 있다면, 상기 최소 모션 검색 포인트에 실질적으로 중심을 두도록 상기 직사각형 검색 영역을 재배치하여 상기 직사각형 검색 영역을 부분적으로 중첩시키는 단계와,
    제2 복수의 모션 검색 포인트 상에서 모션 측정을 수행하는 단계
    를 더 포함하는
    시스템.
  27. 제26항에 있어서,
    상기 제2 복수의 모선 검색 포인트 상에서의 상기 모션 측정은 상기 직사각형 검색 영역과 상기 재배치된 직사각형 검색 영역 둘 모두 내에 있는 상기 복수의 모션 검색 포인트 중의 하나 또는 그 이상의 것을 제외시키는
    시스템.
  28. 제25항에 있어서, 상기 병렬 프로세서는 복수의 데이터 성분을 상기 레지스터 파일 내의 직사각형 영역 내로 로드하고, 상기 직사각형 영역은 상기 직사각형 검색 영역에 대응하는
    시스템.
  29. 제25항에 있어서,
    상기 메모리 컨트롤러에 결합된 마이크로프로세서
    를 더 포함하는 시스템.
KR1020067006128A 2003-09-30 2004-09-30 규칙적 형태의 모션 검색 KR100803405B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/676,577 US7400680B2 (en) 2003-09-30 2003-09-30 Rectangular-shape motion search
US10/676,577 2003-09-30

Publications (2)

Publication Number Publication Date
KR20060055555A true KR20060055555A (ko) 2006-05-23
KR100803405B1 KR100803405B1 (ko) 2008-02-13

Family

ID=34377424

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067006128A KR100803405B1 (ko) 2003-09-30 2004-09-30 규칙적 형태의 모션 검색

Country Status (7)

Country Link
US (1) US7400680B2 (ko)
EP (1) EP1668912B1 (ko)
JP (1) JP4405516B2 (ko)
KR (1) KR100803405B1 (ko)
CN (1) CN100352286C (ko)
TW (1) TWI265734B (ko)
WO (1) WO2005034519A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200031078A (ko) * 2017-06-30 2020-03-23 캐논 가부시끼가이샤 메모리 액세스가 감소된 fruc 모드에서 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7852940B2 (en) * 2005-10-20 2010-12-14 Qualcomm Incorporated Scalable motion estimation for video encoding
GB2431787B (en) * 2005-10-31 2009-07-01 Hewlett Packard Development Co A method of tracking an object in a video stream
US8488839B2 (en) * 2006-11-20 2013-07-16 Videosurf, Inc. Computer program and apparatus for motion-based object extraction and tracking in video
JP4843482B2 (ja) * 2006-12-27 2011-12-21 株式会社東芝 情報処理装置およびプログラム
US20090086820A1 (en) * 2007-09-28 2009-04-02 Edward Hong Shared memory with contemporaneous access for use in video encoding and methods for use therewith
US8041927B2 (en) * 2008-04-16 2011-10-18 Nec Corporation Processor apparatus and method of processing multiple data by single instructions
US8175160B1 (en) * 2008-06-09 2012-05-08 Nvidia Corporation System, method, and computer program product for refining motion vectors
WO2010006334A1 (en) 2008-07-11 2010-01-14 Videosurf, Inc. Apparatus and software system for and method of performing a visual-relevance-rank subsequent search
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
WO2010086018A1 (en) * 2009-01-29 2010-08-05 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for efficient hardware motion estimation
US9182981B2 (en) * 2009-11-23 2015-11-10 University Of Washington Systems and methods for implementing pixel-based reverse engineering of interface structure
US9413477B2 (en) 2010-05-10 2016-08-09 Microsoft Technology Licensing, Llc Screen detector
US9508011B2 (en) * 2010-05-10 2016-11-29 Videosurf, Inc. Video visual and audio query
US9311708B2 (en) 2014-04-23 2016-04-12 Microsoft Technology Licensing, Llc Collaborative alignment of images
TWI451767B (zh) * 2010-05-27 2014-09-01 Mstar Semiconductor Inc 視訊編碼系統、移動估算裝置及移動估算方法
US9838710B2 (en) * 2014-12-23 2017-12-05 Intel Corporation Motion estimation for arbitrary shapes
US20170332094A1 (en) * 2016-05-16 2017-11-16 Google Inc. Super-wide area motion estimation for video coding
CN107944392A (zh) * 2017-11-25 2018-04-20 周晓风 一种适用于小区卡口高密度人群监控视频目标标注的有效方法
JP6930418B2 (ja) * 2017-12-26 2021-09-01 株式会社Jvcケンウッド 画像切り出し装置及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10327415A (ja) * 1997-05-22 1998-12-08 Mitsubishi Electric Corp 動きベクトル検出装置
ES2276696T3 (es) * 1999-09-21 2007-07-01 Koninklijke Philips Electronics N.V. Metodo de estimacion de movimiento global.
TW550953B (en) * 2000-06-16 2003-09-01 Intel Corp Method of performing motion estimation

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200031078A (ko) * 2017-06-30 2020-03-23 캐논 가부시끼가이샤 메모리 액세스가 감소된 fruc 모드에서 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치
KR20220119755A (ko) * 2017-06-30 2022-08-30 캐논 가부시끼가이샤 메모리 액세스가 감소된 fruc 모드에서 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치
US11979578B2 (en) 2017-06-30 2024-05-07 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
US11979580B2 (en) 2017-06-30 2024-05-07 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
US11979579B2 (en) 2017-06-30 2024-05-07 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
US11979581B2 (en) 2017-06-30 2024-05-07 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses

Also Published As

Publication number Publication date
WO2005034519A8 (en) 2006-05-26
KR100803405B1 (ko) 2008-02-13
JP2007507987A (ja) 2007-03-29
US20050069037A1 (en) 2005-03-31
CN1607835A (zh) 2005-04-20
US7400680B2 (en) 2008-07-15
TWI265734B (en) 2006-11-01
CN100352286C (zh) 2007-11-28
WO2005034519A1 (en) 2005-04-14
JP4405516B2 (ja) 2010-01-27
EP1668912B1 (en) 2016-04-06
EP1668912A1 (en) 2006-06-14
TW200519774A (en) 2005-06-16

Similar Documents

Publication Publication Date Title
KR100803405B1 (ko) 규칙적 형태의 모션 검색
US10841614B2 (en) Low-complexity intra prediction for video coding
JP4700491B2 (ja) 適応係数スキャン順序付け
JP4425561B2 (ja) イメージおよびビデオ符号化のための2−d変換
JP3764457B2 (ja) 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、及びプログラム
JP3764458B2 (ja) 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、及びプログラム
JP4493215B2 (ja) ウェーブレット係数の方向性予測コード化法を用いた画像圧縮
JP2016532377A (ja) 固定幅可変長の画素サンプル値文字列のマッチングが強化された画像圧縮方法及び装置
KR20080042816A (ko) 변환 계수의 예측 코딩을 이용하여 디지털 미디어 데이터를인코딩하는 방법, 디지털 미디어 인코더, 디코더, 및컴퓨터 판독가능 기록 매체
JP2000507412A (ja) スプライト符号化
US9204157B2 (en) Video compression searching reference frame in hybrid growing-window and sliding-window
KR100235064B1 (ko) 재배열된 블록 기반 부호화 기법을 이용하여 비디오 신호의 물체영역을 부호화하기 위한 장치
JP6585776B2 (ja) 処理方法
Ramachandran et al. FPGA implementation of a novel, fast motion estimation algorithm for real-time video compression
Zhou et al. Approximate-DCT-derived measurement matrices with row-operation-based measurement compression and its VLSI architecture for Compressed Sensing
JP3620080B2 (ja) 動きベクトル検出回路
KR100928701B1 (ko) 화면 내 예측 부호화 가속 방법 및 장치
JPH06339134A (ja) 画像圧縮装置

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee