KR100960847B1 - 비디오 인코딩을 위한 모션 추정 기술 - Google Patents

비디오 인코딩을 위한 모션 추정 기술 Download PDF

Info

Publication number
KR100960847B1
KR100960847B1 KR1020047020373A KR20047020373A KR100960847B1 KR 100960847 B1 KR100960847 B1 KR 100960847B1 KR 1020047020373 A KR1020047020373 A KR 1020047020373A KR 20047020373 A KR20047020373 A KR 20047020373A KR 100960847 B1 KR100960847 B1 KR 100960847B1
Authority
KR
South Korea
Prior art keywords
video block
circle
video
radius
difference value
Prior art date
Application number
KR1020047020373A
Other languages
English (en)
Other versions
KR20050012794A (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 KR20050012794A publication Critical patent/KR20050012794A/ko
Application granted granted Critical
Publication of KR100960847B1 publication Critical patent/KR100960847B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • 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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

비디오 인코딩 기술을 설명한다. 일 예에서, 비디오 인코딩 기술은 인코딩될 비디오 프레임내에서 비디오 블록들 세트와 연관된 모션 벡터들에 기초하여 탐색 공간에서 비디오 블록과 연관된 픽셀 위치를 식별하는 것을 포함하되, 세트의 비디오 블록들은 인코딩될 비디오 프레임의 현재 비디오 블록에 관련된 정의된 위치들에 공간적으로 위치하고 있다. 그후, 모션 추정 루틴은 식별된 픽셀 위치에서 현재 비디오 블록에 대해 초기화할 수 있다. 비디오 프레임내에서 비디오 블록들 세트와 연관된 모션 벡터들에 기초하여 탐색 공간내에서 비디오 블록과 연관된 픽셀 위치를 식별함으로써, 공간 리던던시의 현상은 인코딩 프로세스를 가속시키고 개선하기 위해 보다 쉽게 활용할 수 있다.
비디오 인코딩 기술, 모션 벡터, 모션 추정 루틴

Description

비디오 인코딩을 위한 모션 추정 기술{MOTION ESTIMATION TECHNIQUES FOR VIDEO ENCODING}
기술 분야
본 명세서는 디지털 비디오 프로세싱에 관한 것으로서, 특히, 비디오 시퀀스의 인코딩에 관한 것이다.
배경
디지털 비디오 기능은 디지털 TV, 디지털 직접 방송 시스템, 무선통신 장치, 개인휴대 정보단말기 (PDA), 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 디지털 리코딩 장치, 셀룰러 또는 위성 무선 전화 등을 포함하는 광범위한 장치들에 내장할 수 있다. 이들 및 다른 디지털 비디오 장치들은 풀 모션 (full motion) 비디오 시퀀스를 생성, 수정, 송신, 저장, 리코딩 및 재생하는데 있어서 종래의 아날로그 비디오 시스템에 비해 현저한 개선을 제공한다.
디지털 비디오 시퀀스를 인코딩하기 위한 많은 상이한 비디오 인코딩 표준들이 제정되었다. 예를 들면, MPEG (Moving Picture Experts Group) 는 MPEG-1, MPEG-2 및 MPEG-4 를 포함하는 많은 표준들을 개발해왔다. 다른 표준들으로는, ITU H.263, 캘리포니아주 쿠퍼티노 소재의 애플 컴퓨터사에 의해 개발된 QuickTimeTM 기술, 워싱턴주 레드몬드 소재의 마이크로소프트사에 의해 개발된 Video for WindowsTM, 인텔사에 의해 개발된 IndeoTM, 워싱턴주 시애틀 소재의 리얼 네트워크사의 RealVideoTM, 및 수퍼맥사에 의해 개발된 CinepakTM 을 포함한다. 이들 및 다른 표준들은, 또한 개발될 표준들을 포함하여 계속 발전할 것이다.
많은 비디오 인코딩 표준들은 데이터를 압축 방식으로 인코딩함으로써, 송신 레이트의 증대를 달성한다. 압축은 효과적인 이미지 프레임 송신을 위해 송신할 필요가 있는 데이터의 총량을 감소시킬 수 있다. 예를 들면, MPEG 표준은, 압축없이 달성될 수 있는 더 좁은 대역에 걸쳐, 비디오 및 이미지 송신을 용이하게 하도록 설계된 그래픽 및 비디오 압축 기술을 이용한다. 특히, MPEG 표준은 시간 또는 프레임간 상관 (interframe correlation) 이라 하는, 연속되는 이미지 프레임들 간의 유사성을 이용하는 비디오 인코딩 기술을 지원함으로써 프레임간 압축을 제공한다. 이 프레임간 압축 기술은, 비디오 프레임들의 픽셀-기반 표현을 모션 표현으로 변환함으로써, 프레임들에 걸친 데이터 리던던시를 활용한다. 또한, 비디오 인코딩 기술들은, 비디오 프레임들을 더 압축하기 위해서, 공간 또는 프레임내 상관이라 하는, 프레임들내에서의 유사성을 이용할 수도 있다. 일반적으로, 프레임내 압축은, 이산 코사인 변환 (Discrete Cosine Transform; DCT) 과 같은, 정지 이미지를 압축하기 위한 텍스쳐 인코딩 프로세스에 기초한다.
압축 기술을 지원하기 위해, 많은 디지털 비디오 장치들은 디지털 비디오 시퀀스 압축용 인코더 및 디지털 비디오 시퀀스 압축해제용 디코더를 구비하고 있다. 많은 경우에, 인코더 및 디코더는, 비디오 이미지의 시퀀스를 정의하는 프레임들내에서 픽셀들 블록에 대해 동작하는 통합 인코더/디코더 (코덱) 를 형성한다. 예를 들면, MPEG-4 표준에서, 일반적으로 전송장치의 인코더는 송신할 비디오 프레임을, 더 작은 이미지 블록들로 이루어지는 매크로블록들로 분할한다. 비디오 프레임내의 각각의 매크로블록에 대해, 인코더는 바로 앞의 비디오 프레임의 매크로블록들을 탐색하여 가장 유사한 매크로블록을 식별하고, 이전 프레임으로부터의 어떤 매크로블록을 인코딩에 사용하였는지 표시하는 모션 벡터에 따라서, 송신용 매크로블록들 간의 차이를 인코딩한다. 수신장치의 디코더는 모션 벡터 및 인코딩된 차이들을 수신하고, 모션 보상을 수행하여 비디오 시퀀스를 발생시킨다.
비디오 인코딩 프로세스는, 특히 모션 추정 기술을 사용할 때, 계산 집중적 (computationally intensive) 이다. 예를 들면, 인코딩될 비디오 블록들을 이전에 송신된 프레임들의 비디오 블록들과 비교하는 프로세스는 무수한 계산 횟수를 요한다. 특히 계산 자원이 보다 제한적이고 전력 소모가 관심사인 무선 장치 또는 다른 휴대용 비디오 장치용으로, 개선된 인코딩 기술이 요청되고 있다. 동시에, 압축의 개선이, 비디오 시퀀스의 효과적인 송신을 위해 요구되는 대역폭을 감소시키기 위해 요청되고 있다. 이들 요인들 가운데 하나 이상을 개선함으로써, 특히 무선 및 다른 제한된 대역폭의 환경에서, 비디오 시퀀스의 실시간 인코딩을 용이하게 하거나 개선시킬 수 있다.
요약
본 명세서는 비디오 시퀀스를 인코딩하는데 사용할 수 있는 비디오 인코딩 기술을 설명한다. 예를 들면, 비디오 인코딩 기술은, 인코딩될 비디오 프레임 내의 비디오 블록들 세트의 모션 벡터들에 기초하여, 탐색 공간에서 비디오 블록과 연관된 픽셀 위치를 식별하는 것을 수반할 수도 있다. 비디오 블록들 세트 내의 비디오 블록들은, 인코딩될 비디오 프레임의 현재 비디오 블록에 관해 정의된 위치에 위치되는 비디오 블록들을 포함할 수도 있다. 그후, 현재 비디오 블록에 대해 모션 추정 루틴을 식별된 픽셀 위치로 초기화할 수 있다. 비디오 프레임 내의 비디오 블록들 세트와 관련되는 계산된 모션 벡터들에 기초하여, 탐색 공간에서 비디오 블록과 연관된 픽셀 위치를 식별함으로써, 공간 리던던시 현상을 보다 쉽게 활용하여 인코딩 프로세스를 가속하고 개선할 수 있다. 여러 예에서, 초기화 위치는, 인코딩될 비디오 블록에 대해 정의된 위치에 위치되는 비디오 블록들 세트의 모션 벡터들에 기초한 선형 또는 비선형 함수를 이용하여, 계산할 수 있다. 예를 들면, 중앙값 함수, 평균 함수 또는 비디오 블록들 세트의 모션 벡터들에 기초한 가중치 함수를 이용할 수 있다.
비디오 프레임의 현재 비디오 블록을 인코딩하기 위하여 탐색 공간 내의 소정 픽셀 위치로 모션 추정 루틴을 초기화한 후에, 모션 추정 루틴을 수행하여 현재 비디오 블록을 인코딩할 수 있다. 인코딩 동안의 계산 횟수를 감소시키기 위해, 모션 추정 루틴은 탐색 공간 내의 비디오 블록들의 비포괄적인 (non-exhaustive) 탐색을 포함할 수 있다. 예를 들면, 모션 추정 루틴은 초기화된 픽셀 위치 주위에 반경 (R) 인 원을 정의하는 것, 및 그 원 내의 픽셀 위치들의 세트와 연관된 탐색 공간의 비디오 블록들과 인코딩될 현재 비디오 블록을 비교하는 것을 포함할 수 있다. 이 원은 적어도 5 개의 픽셀들을 포함하도록 충분히 클 수 있다. 그러나, 적어도 9 개의 픽셀들, 예컨대, 중심 픽셀 및 중심 픽셀을 둘러싸는 8개의 픽셀들을 포함하도록 충분히 큰 원을 정의함으로써, 모든 방향에서의 비디오 모션을 예상함으로써 프로세스를 개선할 수 있다. 또한, 더 크거나 더 작은 원들을 사용할 수 있다. 모션 추정 루틴은, 최소 차이값을 산출하는 비디오 블록을 식별하는 원 내의 픽셀 위치를 식별하는 것, 및 픽셀 위치가 원의 중심에 상응할 때, 최소 차이값을 산출하는 비디오 블록을 식별하는 원 내의 픽셀 위치에 의해 정의되는 모션 벡터를 이용하여 현재 비디오 블록을 인코딩하는 것을 더 포함할 수 있다.
그러나, 최소 차이값을 산출하는 비디오 블록을 식별하는 원 내의 픽셀 위치가 반경 (R) 인 원의 중심에 상응하지 않으면, 반경 (R') 인 새로운 원을, 최소 차이값을 산출하는 비디오 블록을 식별하는 원 내의 픽셀 위치 주위에 정의할 수 있다. 그 경우에, 모션 추정 루틴은 최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 원 내의 픽셀 위치를 결정하는 것, 및 그 픽셀 위치가 반경 (R') 인 원의 중심에 상응하면 그 픽셀 위치에 의해 정의되는 모션 벡터를 이용하여 현재 비디오 블록을 인코딩하는 것을 포함할 수 있다. 모션 추정 루틴은, 필요하면, 최소 차이값을 산출하는 비디오 블록이 원의 중심에 상응할 때까지, 유사한 방식으로 추가적인 원들을 계속 정의할 수 있다.
이하 더욱 상세하게 약술되는 이들 및 다른 기술은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 디지털 비디오 장치에서 구현할 수 있다. 소프트웨어에서 구현하면, 이 기술은, 실행시에 여기에 설명하는 하나 이상의 인코딩 기술을 수행하는 프로그램 코드를 구비한 컴퓨터 판독가능 매체와 관련될 수도 있다. 여러 실시형태들의 추가적 세부사항을 첨부 도면 및 이하 명세서에서 설명한다. 명세서, 도면, 및 청구범위로부터 다른 특징, 목적 및 이점을 명백하게 설명한다.
도면의 간단한 설명
도 1 은 인코딩된 비디오 데이터 시퀀스를 발신장치가 수신장치로 송신하는 시스템의 일 예를 나타낸 블록도이다.
도 2 는 디지털 비디오 시퀀스를 인코딩하는 비디오 인코더를 내장한 디지털 비디오 장치의 일 예를 나타낸 블록도이다.
도 3 은 비디오 데이터의 매크로블록의 일 예를 나타낸 개념도이다.
도 4 는 탐색 공간의 일 예를 나타낸 개념도이다.
도 5 는 디지털 비디오 장치에서 모션 추정 루틴을 초기화하도록 구현할 수 있는 비디오 인코딩 기술을 나타낸 흐름도이다.
도 6 내지 도 8 은 도 5 에 나타낸 것과 유사한 기술을 이용하여 현재 비디오 블록이 인코딩되어지는 예시적인 비디오 프레임들의 개념도들이다.
도 9 는 디지털 비디오 장치에서 모션 추정을 수행하도록 구현할 수 있는 비디오 인코딩 기술을 나타낸 흐름도이다.
도 10 내지 도 13 은 도 9 에서 나타낸 것과 유사한 비디오 인코딩 기술이 수행되어, 허용가능한 모션 벡터의 위치가 찾아지는 탐색 공간의 개념도들이다.
도 14 는 디지털 비디오 장치에서 실시간 비디오 인코딩을 증진하도록 구현 할 수 있는 비디오 인코딩 기술을 나타낸 흐름도이다.
상세한 설명
일반적으로, 본 명세서는 디지털 비디오 데이터의 인코딩을 개선하는데 이용될 수 있는 인코딩 기술에 관련한 것이다. 이 기술은, 소정의 시나리오에서 계산을 감소시키고, 프로세싱 시간을 단축시키고, 데이터 압축을 증대하고, 비디오 인코딩 동안에 전력 소모를 감소시키기 위해, 디지털 비디오 장치의 인코더에 의해 수행될 수 있다. 이러한 방식으로, MPEG-4 표준과 같은 표준들에 따른 비디오 인코딩을 개선할 수 있으며, 계산 자원이 더 제한적이고 전력 소모가 관심사인 무선 장치들 내에서 비디오 인코딩의 구현을 더 용이하게 할 수 있다. 또한, 이 기술들은, MPEG-4 디코딩 표준과 같은 디코딩 표준들과의 상호운용성 성능을 유지하도록 구성할 수 있다.
여기에 설명하는 비디오 인코딩 기술은 공간 리던던시의 현상을 활용하는 초기화 기술을 구현할 수 있다. 일반적으로, 공간 리던던시는 주어진 비디오 블록의 비디오 모션이, 주어진 비디오 블록에 공간적으로 근접한 다른 블록의 비디오 모션과 유사할지를 예측한다. 초기화 기술은, 효과적인 비디오 인코딩에 이용할 수 있는 비디오 블록을 포함할 확률이 매우 높은 탐색 공간 내의 위치에서 모션 추정을 초기화하는데 이 현상을 보다 쉽게 활용할 수 있다.
보다 구체적으로, 이 초기화 기술은, 모션 추정 루틴을 초기화할 수 있는 탐색 공간내의 위치, 즉, 모션 추정 루틴이 시작되는 탐색 공간내의 픽셀 위치를 식별하기 위해, 인코딩될 비디오 블록에 공간적으로 근접한 비디오 블록들에 대해 계산되는 모션 벡터들을 이용할 수 있다. 예를 들면, 이하 매우 상세하게 설명하는 바와 같이, 평균 픽셀 위치, 중앙값 픽셀 위치 또는 가중치 함수를 이용하여 계산된 픽셀 위치는, 인코딩될 현재 비디오 블록에 공간적으로 근접한 비디오 블록들에 대해, 이전에 결정된 모션 벡터들에 기초하여 계산할 수 있다. 또한, 다른 선형 또는 비선형 함수들을 사용할 수 있다. 어떤 경우에도, 모션 추정 루틴을 이러한 방식으로 초기화하는 것에 의해, 인코딩되고 있는 비디오 블록의 허용가능한 정합인, 탐색 공간내에서의 비디오 블록의 위치를 찾는데 요하는 비교수를 감소시킴으로써, 비디오 인코딩을 가속시킬 수 있다. 모션 추정 루틴은 탐색 공간 내에서의 비포괄적인 탐색을 포함할 수 있다. 이와 같이, 탐색 공간내의 초기화는 주어진 프로세싱 시간내에서 개선된 계산 결과를 산출할 수 있는 시작점을 제공하므로, 인코딩 프로세스의 중요한 부분일 수 있다.
또한, 초기화 이후에 허용가능한 모션 벡터를 신속하게 식별하기 위해 이용할 수 있는 모션 추정 기술을 설명한다. 모션 추정 기술은 탐색 공간의 비포괄적인 탐색을 수행함으로써, 수행되는 계산 횟수를 제한할 수 있다. 일 예에서, 모션 추정 루틴은 초기화된 픽셀 위치의 주위에 반경 (R) 인 원을 정의하는 것, 및 원 내의 픽셀 위치들 세트와 연관된 탐색 공간의 비디오 블록들과 인코딩될 현재 비디오 블록을 비교하는 것을 포함할 수 있다. 이 모션 추정 루틴은, 최소 차이값을 산출하는 비디오 블록을 식별하는 원 내의 픽셀 위치를 식별하는 것, 및 식별된 픽셀 위치가 원의 중심과 상응하면 그 식별된 픽셀 위치에 의해 정의되는 모션 벡터를 이용하여 현재 비디오 블록을 인코딩하는 것을 포함한다.
최소 차이값을 산출하는 비디오 블록을 식별하는 원 내의 식별된 픽셀 위치가 반경 (R) 인 원의 중심에 상응하지 않으면, 그 픽셀 위치의 주위에 새로운 반경 (R') 인 원을 정의할 수 있다. 반경 (R) 이 반경 (R') 과 동일할 수도 있으나, 본 기술은 그 관점에 한정되지 않는다. 어떤 경우라도, 모션 추정 루틴은, 최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 원 내의 픽셀 위치를 결정하는 것, 및 그 픽셀 위치가 반경 (R') 인 원의 중심에 상응하면 그 픽셀 위치에 의해 정의되는 모션 벡터를 이용하여 현재 비디오 블록을 인코딩하는 것을 더 포함할 수 있다. 모션 추정 루틴은, 필요하면, 최소 차이값을 산출하는 비디오 블록이 원의 중심에 상응할 때까지, 동일한 방식으로 추가적인 원들을 계속 정의할 수 있다. 많은 경우에서, 최소 차이값을 산출하는 비디오 블록은 초기 추정에 공간적으로 근접할 것이다. 최소 차이값을 산출하는 비디오 블록이 원의 중심에 상응할 때까지 원들을 정의함으로써, 허용가능한 모션 벡터를 매우 신속하고 정확히 지적하여, 불필요한 비교 및 계산을 감소시킬 수 있다.
또한, 특히 계산 자원이 제한적일 때, 실시간 인코딩을 개선하는데 사용할 수 있는 추가적인 인코딩 기술을 설명한다. 예를 들면, 비디오 프레임의 비디오 인코딩 동안에, 사용가능한 계산 자원을 모니터링할 수 있다. 비디오 프레임의 초반 비디오 블록들을 매우 신속하게 인코딩하면, 계산 절약분을 확인할 수 있다. 그 경우에, 동일한 비디오 프레임의 후속 비디오 블록들은, 초반 비디오 블록들과 연관된 계산 절약분은 후속 비디오 블록들의 인코딩에 충당할 수 있기 때문에, 만약 필요하면, 좀더 포괄적인 탐색기술들을 이용하여 인코딩될 수 있다.
여기에 설명되는 기술은 하나 이상의 이점을 제공할 수 있다. 예를 들면, 이 기술은 비디오 인코딩 동안에 전력 소모를 용이하게 감소시킬 수 있으며, 모션 추정 루틴을 가속시킴으로써 실시간 비디오 인코딩을 용이하게 할 수 있다. 또한, 이 기술은, 특히 계산 자원이 제한적일 때, 비디오 품질 및 압축의 관점에서 비디오 인코딩을 개선할 수 있다. 특히, 이 기술들은 종래의 다이아몬드 탐색 기술들과 같은 종래의 몇몇 탐색 기술들에 비하여, 데이터 압축 레벨을 개선할 수 있다. 여기에 설명되는 인코딩 기술은 무선 디지털 비디오 장치들에서나 또는 계산 자원 및 대역폭이 보다 제한적이고 전력 소모가 관심사인 휴대용 비디오 장치들에서 특히 유용할 수 있다.
도 1 은 인코딩된 비디오 데이터 시퀀스를 발신장치 (4) 가 통신링크 (6) 를 통해 수신장치 (8) 로 송신하는 시스템 (2) 의 일 예를 나타낸 블록도이다. 발신장치 (4) 및 수신장치 (8) 는 모두 디지털 비디오 장치이다. 특히, 발신장치 (4) 는 MPEG 에 의해 개발된 MPEG-4 와 같은 다양한 비디오 압축 표준들중 하나를 이용하여 비디오 데이터를 인코딩하고 송신한다. 다른 표준들은, MPEG-1, MPEG-2, 또는 MPEG 에 의해 개발된 다른 MPEG 표준들, ITU H.263 및 유사한 표준들, 캘리포니아주 쿠퍼티노 소재의 애플 컴퓨터사에 의해 개발된 QuickTimeTM 기술, 워싱턴주 레드몬드 소재의 마이크로소프트사에 의해 개발된 Video for WindowsTM, 인텔사에 의해 개발된 IndeoTM, 및 수퍼맥사에 의해 개발된 CinepakTM 을 포함한다.
통신링크 (6) 는 무선링크, 물리적 송신 라인, 인터넷, 공중교환전화망 (PSTN), 또는 근거리 통신망, 광역 통신망, 또는 인터넷 등의 세계 정보망 (global network) 과 같은 패킷기반 네트워크, 공중교환전화망 (PSTN), 또는 여러 링크들 및 네트워크들의 조합을 포함할 수 있다. 즉, 통신링크 (6) 는, 비디오 데이터를 발신장치 (4) 에서 수신장치 (8) 로 송신하기 위한, 어떤 적절한 통신 매체, 또는 다른 네트워크들 및 링크들의 집합체를 나타낸다.
발신장치 (4) 는 비디오 데이터를 인코딩 및 송신할 수 있는 어떤 디지털 비디오 장치일 수 있다. 예를 들면, 발신장치 (4) 는 디지털 비디오 시퀀스를 저장하기 위한 메모리 (22), 그 시퀀스를 인코딩하기 위한 비디오 인코더 (20), 및 그 인코딩된 시퀀스를 통신링크 (6) 를 통해 송신하기 위한 송신기 (14) 를 포함할 수 있다. 예를 들면, 비디오 인코더 (20) 는, 인코딩 기술들을 정의하는 프로그램가능 소프트웨어 모듈을 실행하는 디지털 신호 프로세서 (DSP) 를 구비할 수 있다.
또한, 발신장치 (4) 는 비디오 시퀀스를 캡쳐하고 캡쳐된 시퀀스를 메모리 (22) 에 저장하기 위해 비디오 카메라와 같은 이미지 센서 (23) 를 구비할 수도 있다. 어떤 경우에는, 발신장치 (4) 는 실시간 비디오 시퀀스를, 통신링크 (6) 를 통해서 송신할 수 있다. 그러한 경우에는, 수신장치 (8) 가 실시간 비디오 시퀀스를 수신할 수 있고 이 비디오 시퀀스를 사용자에게 표시할 수 있다.
수신장치 (8) 는 비디오 데이터를 수신하고 디코딩할 수 있는 어떤 디지털 비디오 장치일 수 있다. 예를 들면, 수신장치 (8) 는 인코딩된 디지털 비디오 시퀀스를 수신하기 위한 수신기 (15), 시퀀스를 디코딩하기 위한 디코더 (16), 및 시퀀스를 사용자에게 표시하기 위한 표시부 (18) 를 구비할 수 있다.
발신장치 (4) 및 수신장치 (8) 에 대한 대표적인 장치들은 컴퓨터 네트워크에 위치하는 서버, 워크스테이션 또는 다른 데스크탑 컴퓨팅 장치, 및 랩탑 컴퓨터 또는 개인휴대 정보단말기 (PDA) 와 같은 모바일 컴퓨팅 장치를 포함한다. 다른 실시예들은 디지털 TV 방송 위성 및 디지털 TV 와 같은 수신장치, 디지털 카메라, 디지털 비디오 카메라 또는 다른 디지털 리코딩 장치, 셀룰러 무선전화 및 비디오 기능을 갖는 위성 무선전화와 같은 디지털 비디오 전화, 다른 무선 비디오 장치 등을 포함한다.
어떤 경우에는, 발신장치 (4) 및 수신장치 (8) 는 디지털 비디오 데이터를 인코딩하고 디코딩하기 위한 인코더/디코더 (코덱) (미도시) 를 각각 포함한다. 그 경우에는, 발신장치 (4) 및 수신장치 (8) 양자는 메모리 및 표시부들뿐만 아니라 송신기 및 수신기를 포함할 수 있다. 이하 약술하는 많은 인코딩 기술들은 인코더를 포함하는 디지털 비디오 장치의 환경에서 설명한다. 그러나, 인코더가 코덱의 부분을 형성할 수 있다. 그 경우에는, 코덱은 DSP, 마이크로프로세서, 주문형 반도체 (ASIC), 별도의 하드웨어 컴포넌트, 또는 이들의 여러 조합들로 구현할 수 있다.
예를 들면, 발신장치 (4) 는, 비디오 데이터를 인코딩하기 위해, 비디오 프레임들의 시퀀스 내의 픽셀들의 블록들에 대해 동작한다. 예를 들면, 발신장치 (4) 의 비디오 인코더 (20) 는 송신되는 비디오 프레임을 픽셀들의 블록들 (비디오 블록들이라 함) 로 분할하는 모션 추정 인코딩 기술을 실행할 수도 있다. 비디오 프레임에서 각각의 비디오 블록에 대해, 발신장치 (4) 의 비디오 인코더 (20) 는, 메모리 (22) 에 저장된 비디오 블록들 중에서 이미 송신된 선행하는 비디오 프레임 (또는 후속 비디오 프레임) 을 탐색하여 유사한 비디오 블록을 식별하고, 인코딩에 사용되었던 이전의 프레임 (또는 후속 프레임) 으로부터 비디오 블록을 식별하는 모션 벡터에 따라서, 비디오 블록들간의 차이를 인코딩한다. 모션 벡터는, 다른 모션 벡터 포맷을 사용할 수 있지만, 비디오 블록의 상위 좌측 코너와 연관된 픽셀 위치를 정의할 수 있다. 어떠한 경우라도, 모션 벡터들을 이용하여 비디오 블록들을 인코딩함으로써, 비디오 데이터 스트림의 송신을 위한 요구 대역폭을 크게 감소시킬 수 있다. 어떤 경우에는, 발신장치 (4) 는, 계산 횟수를 감소시키고 전력을 유지하기 위해, 인코딩 프로세스 동안의 여러 비교 및 계산의 종료를 야기할 수 있는 프로그램가능 임계값들을 지원할 수 있다.
수신장치 (8) 의 수신기 (15) 는 모션 벡터들 및 인코딩된 차이들의 형태로, 인코딩된 비디오를 수신할 수 있다. 디코더 (16) 는 표시부 (18) 를 통해 사용자에게 표시하기 위한 비디오 시퀀스를 생성하기 위해 모션 보상 기술들을 수행한다. 또한, 수신장치 (8) 의 디코더 (16) 는 인코더/디코더 (CODEC) 로서 구현할 수 있다. 그 경우에, 발신장치 (4) 및 수신장치 (8) 양자가 디지털 비디오 시퀀스를 인코딩, 송신, 수신 및 디코딩할 수 있다.
도 2 는 여기에 설명하는 하나 이상의 기술들에 따라 디지털 비디오 시퀀스를 인코딩하는 비디오 인코더 (20) 를 내장하는 발신장치 (4) 와 같은, 디지털 비디오 장치 (10) 의 일 예를 나타낸 블록도이다. 예시적인 디지털 비디오 장치 (10) 는 모바일 컴퓨팅 장치, 개인휴대 정보단말기 (PDA), 무선 통신 장치, 무선 전화 등과 같은 무선 장치로서 나타나 있다. 그러나, 본 명세서의 기술들은 반드시 무선 장치들에 제한되지 않으며, 비무선 장치들을 포함하는 다른 디지털 비디오 장치들에도 쉽게 적용할 수 있다.
도 2 의 예에서, 디지털 비디오 장치 (10) 는 송신기 (14) 및 안테나 (12) 를 통해, 압축된 디지털 비디오 시퀀스를 송신한다. 비디오 인코더 (20) 는 비디오 시퀀스를 인코딩하고 그 인코딩된 디지털 비디오 시퀀스를 송신에 앞서 비디오 메모리 (22) 내에 버퍼링한다. 예를 들면, 전술한 바와 같이, 비디오 인코더 (20) 는 프로그램가능 디지털 신호 프로세서 (DSP), 마이크로프로세서, 하나 이상의 주문형 반도체 (ASIC), 특정의 하드웨어 컴포넌트, 또는 이들 장치들 및 컴포넌트들의 여러 조합들을 포함할 수 있다. 메모리 (22) 는 인코딩 프로세스 동안에 컴퓨터 판독가능 명령들 및 비디오 인코더 (20) 에 의한 사용을 위해 데이터를 저장할 수 있다. 예를 들면, 메모리 (22) 는 SDRAM (Synchronous Dynamic Random Access Memory), 플래시 메모리, EEPROM (Electrically Erasable Programmable Read Only Memory) 등을 포함할 수 있다.
어떤 경우에, 디지털 비디오 장치 (10) 는 비디오 시퀀스를 캡쳐하기 위해 이미지 센서 (23) 를 포함한다. 예를 들면, 이미지 센서 (23) 는 비디오 시퀀스를 캡쳐하고 인코딩에 앞서 그들을 메모리 (22) 에 저장할 수 있다. 또한, 이미지 센서 (23) 는, 실시간으로 비디오 인코딩을 개선하기 위해, 비디오 인코더 (20) 에 직접 연결될 수 있다. 이하 상세하게 설명되는, 초기화 루틴 및/또는 모션 추정 루틴들을 구현하는 인코딩 기술은 인코딩 프로세스를 가속시키고, 전력소모를 감소하고, 데이터 압축을 증대하고, 상대적으로 제한된 프로세싱 기능을 구비한 장치들 내에서 실시간 비디오 인코딩을 용이하게 할 수 있다.
예로써, 이미지 센서 (23) 는 카메라를 구비할 수 있다. 특히, 이미지 센서 (23) 는 전하 결합 소자 (Charge Coupled Device; CCD), 전하 주입 장치, 포토다이오드의 어레이, 상보성 금속 산화물 반도체 (Complimentary Metal Oxide Semiconductor; CMOS), 또는 비디오 이미지 또는 디지털 비디오 시퀀스를 캡쳐할수 있는 어떤 다른 감광 장치를 포함할 수 있다.
비디오 인코더 (20) 는 인코딩 알고리즘의 수행을 제어하기 위해 인코딩 콘트롤러 (24) 를 포함할 수 있다. 또한, 비디오 인코더 (20) 는 여기에 설명하는 모션 추정 기술들을 수행하기 위해 모션 추정기 (26) 를 포함할 수도 있다. 또한, 원하면, 비디오 인코더 (20) 는, 정지 이미지를 압축하기 위해 널리 사용되는 이산 코사인 변환 (DCT) 과 같은 프레임내 압축을 수행하기 위해 텍스쳐 인코더 (미도시) 와 같은 추가적인 컴포넌트들을 포함할 수 있다. 예를 들면, 텍스쳐 인코딩은, 모션 추정에 더하여, 또는 효과적인 모션 추정을 위해 프로세싱 기능이 너무 제한적인 시나리오에서 모션 추정을 대신하여 수행할 수 있다.
비디오 인코더 (20) 의 컴포넌트들은 DSP 상에서 실행되는 소프트웨어 모듈들을 포함할 수 있다. 또 다른 방법으로, 하나 이상의 비디오 인코더 (20) 의 컴포넌트들은, 여기에 설명되는 기술의 하나 이상의 양태를 수행하는, 구체적으로 설계된 하드웨어 컴포넌트들, 또는 하나 이상의 ASIC 을 포함할 수 있다.
도 3 은 메모리 (22) 내에 저장될 수 있는 매크로블록 (31) 의 형태로 비디오 블록의 예를 나타내고 있다. MPEG 표준들 및 다른 비디오 인코딩 방식들은 모션 추정 비디오 인코딩 동안에 매크로블록들의 형태로 비디오 블록들을 이용한다. MPEG 표준에서, "매크로블록" 이라는 용어는 비디오 프레임의 서브세트를 형성하는 픽셀값들의 16 ×16 집합체를 말한다. 원하는 이미지 품질을 달성하기 위해 각 픽셀을 정의하기 위해 보다 크거나 보다 작은 비트수가 또한 사용될 수 있으나, 각 픽셀값은 데이터의 바이트에 의해 표현할 수 있다. 매크로블록은 다수의 보다 작은 8 ×8 픽셀 이미지 블록 (32) 들을 포함할 수 있다. 그러나, 일반적으로, 여기에 설명되는 인코딩 기술은 16 바이트 ×16 바이트 매크로블록들, 8 바이트 ×8 바이트 이미지 블록들, 또는, 원하면, 다른 크기의 비디오 블록들과 같은, 어떤 정의된 크기의 블록들을 이용하여 동작할 수 있다.
도 4 는 메모리내에 저장할 수 있는 탐색 공간 (41) 의 일 예를 나타낸다. 탐색 공간 (41) 은 이전에 송신된 비디오 프레임 (또는 프레임들 시퀀스의 후속 비디오 프레임) 에 상응하는 비디오 블록들의 집합체이다. 탐색 공간은 그 전체에서 이전 또는 후속 비디오 프레임을, 또는 필요하면 비디오 프레임의 서브세트를 포함할 수 있다. 탐색 공간은, 나타낸 바와 같이 장방형 (rectangular-shaped) 이거나, 또는 다양한 모양 또는 크기를 가정할 수 있다. 어떤 경우라도, 비디오 인코딩 동안에, 인코딩될 현재 비디오 블록은 유사한 비디오 블록을 식별하는 모션 벡터에 따라서, 현재 비디오 블록과 탐색 공간내의 유사한 비디오 블록 간의 차이가 송신될 수 있도록, 탐색 공간 (41) 내의 블록들과 비교하여 적절한 정합을 식별한다.
초기화 기술들은 현재 비디오 블록 (42) 과 탐색 공간 (41) 내의 비디오 블록들의 초기 비교가 허용가능한 정합을 식별하도록 공간 리던던시 현상들을 활용할 수 있다. 예를 들면, 이하 설명되는 기술은, 비디오 블록 (42) 이 초기에 비교되어야 하는, 탐색 공간내의 비디오 블록을 식별할 수 있는 픽셀 위치 (43) 를 식별하기 위해 사용될 수 있다. 최적의 정합 비디오 블록에 근접한 위치에 대한 초기화는 최적의 모션 벡터의 위치를 찾을 가능성을 증대시키며, 허용가능한 모션 벡터의 위치를 찾기 위해 요구되는 평균 탐색수를 감소시킬 수 있다. 예를 들면, 초기화는, 모션 추정 루틴에 대한 개선된 개시점, 및 주어진 프로세싱 시간 주기내에서 개선된 계산 결과를 제공할 수 있다.
모션 추정 비디오 인코딩 동안에, 모션 추정기 (26) 는 인코딩될 현재 비디오 블록들을, 절대 차이의 합 (Sum of Absolute Difference; SAD) 기술 또는 제곱 차이의 합 (Sum of Squared Difference; SSD) 기술과 같은 비교 기술들을 이용하여, 이전 비디오 블록들과 비교할 수 있다. 또한, 다른 비교 기술들을 사용할 수 있다.
SAD 기술은, 현재 블록이 비교되고 있는 이전 블록의 픽셀값과, 인코딩될 현재 블록의 픽셀값들 사이의 절대 차이 계산을 수행하는 태스크를 수반한다. 이들 절대 차이 계산의 결과는, 합산, 즉, 누적되어 현재 비디오 블록과 현재 비디오 블록이 비교되고 있는 이전 비디오 블록간의 차이를 나타내는 차이값을 정의한다. 8 ×8 픽셀 이미지 블록에 대해, 64 차이가 계산되고 합산될 수 있으며, 16 ×16 픽셀 매크로블록에 대해, 256 차이가 계산되고 합산될 수 있다. 일반적으로, 보다 적은 차이값은 현재 비디오 블록에 비교되고 있는 비디오 블록이 보다 나은 정합이고, 따라서 높은 차이값들을 산출하는 비디오 블록들보다 모션 추정 인코딩에서의 사용을 위해 더 적합한 후보인 것을 나타낸다. 어떤 경우에는, 누적된 차이값이 정의된 임계값을 초과하면 계산을 종료할 수 있다. 그 경우에는, 현재 비디오 블록과 비교되고 있는 비디오 블록이 모션 추정 인코딩에서의 효과적인 사용을 위해 허용가능하지 않으므로, 추가적인 계산이 불필요할 수 있다.
또한, SSD 기술은, 현재 블록이 비교되고 있는 이전 블록의 픽셀값들과 인코딩될 현재 블록의 픽셀값들간의 차이 계산을 수행하는 태스크를 수반한다. SSD 기술에서, 절대 차이 계산의 결과가 제곱되고, 그후, 제곱된 값들은, 합산, 즉, 누적되어 현재 비디오 블록과 현재 비디오 블록이 비교되고 있는 이전 비디오 블록간의 차이를 나타내는 차이값을 정의한다. 또 다른 방법으로는, 평균자승오차 (Mean Square Error; MSE), 정규화된 교차 상관 함수 (Normalized Cross Correlation Function; NCCF), 또는 다른 적절한 비교 알고리즘과 같은 비교 기술들을 수행할 수 있다.
도 5 는 모션 추정 루틴을 이용하여 디지털 비디오 장치에서 구현할 수 있는 비디오 인코딩 기술을 나타낸 흐름도이다. 도 5 의 예에서, 비디오 인코더 (20) 는 탐색 공간 내의 초기화된 픽셀 위치를 계산하기 위해 중앙값 함수를 이용한다. 그러나, 예를 들면, 평균 또는 가중치 함수와 같은, 다른 선형 또는 비선형 함수들을 이용하여 동일한 원리들을 적용할 수 있다.
도 5 에 나타낸 바와 같이, 현재 비디오 블록의 인코딩을 초기화하기 위해, 인코딩 콘트롤러 (24) 는 인접한 비디오 블록들에 대한, 모션 벡터들의 중앙 X-좌표 픽셀 위치를 계산한다 (51). 유사하게, 인코딩 콘트롤러 (24) 는 인접한 비디오 블록들에 대해 모션 벡터들의 중앙 Y-좌표 픽셀 위치를 계산한다 (52). 즉, 인코딩될 현재 비디오 블록에 관련된, 정의된 위치에 위치하는 비디오 블록들 세트와 연관된 이미 계산된 모션 벡터들은 중앙 X 및 Y 좌표들을 계산하는데 사용된다. 인접한 비디오 블록들은 현재 비디오 블록에 관해 정의된 위치들에 위치되는 비디오 블록들 세트를 형성할 수도 있다. 예를 들면, 구현에 따라서, 비디오 블록 세트는 소정의 비디오 블록들을 포함하거나 배제하도록 정의할 수도 있다. 이후, 어떤 경우라도, 현재 비디오 블록의 모션 추정은 중앙 X 및 Y 좌표로 초기화된다 (53). 다음으로, 모션 추정기 (26) 는 종래의 탐색기술이나, 이하 매우 상세히 약술된 것과 유사한 탐색기술을 이용하여 현재 비디오 블록에 대한 허용가능한 모션 벡터를 탐색한다 (54).
도 6 은 도 5 에 나타낸 것과 유사한 기술을 이용하여 현재 비디오 블록을 인코딩하는 예시적인 비디오 프레임의 개념도이다. 특히, 현재 비디오 블록 (63) 의 모션 추정은, 현재 비디오 블록 (63) 에 대해 정의된 위치들에 위치된 비디오 블록들 세트에 연관된 미리 계산된 모션 벡터들을 이용하여 초기화될 수도 있다. 도 6 에서, 정의된 위치들에 위치하는 비디오 블록들 세트는 이웃1 (62A), 이웃2 (62B) 및 이웃3 (62C) 을 포함한다. 그러나, 전술한 바와 같이, 현재 비디오 블록 (63) 에 관해 여러 위치에 위치되는 비디오 블록들을 포함하거나 배제하기 위해, 비디오 블록들 세트를 여러 다른 포맷들로 정의할 수도 있다.
도 6 의 예에서, 현재 비디오 블록 (63) 의 모션 추정을 수행하기 위해, 탐색 공간내의 초기화된 위치를 다음 식으로 정의할 수 있다.
XInitial = Median (XMV1, XMV2, XMV3)
YInitial = Median (YMV1, YMV2, YMV3)
또 다른 방법으로는, 현재 비디오 블록 (63) 의 모션 추정을 위해 탐색 공간내의 초기화된 위치를 다음 식으로 정의할 수 있는 평균함수를 사용할 수도 있다.
XInitial = Mean (XMV1, XMV2, XMV3)
YInitial = Mean (YMV1, YMV2, YMV3)
또한, 인접한 비디오 블록들과 인코딩될 현재 비디오 블록간의 다른 선형 또는 비선형 수학식 또는 관계를 사용할 수도 있다.
어떤 경우라도, 모션 추정 탐색의 초기화된 위치를 정의하는 것에 의해 인코딩될 비디오 블록과 탐색 공간내의 비디오 블록간의 허용가능한 정합이 매우 신속하게 식별될 수 있는 확률을 증가시킴으로써, 인코딩을 가속시킬 수 있다. (도 6 과 비교하여) 도 7 에서 나타낸 바와 같이, 초기화된 위치를 생성하는데 사용되는 비디오 블록들 세트를 형성하는 인접 비디오 블록들은 현재 비디오 블록 (63) 의 위치에 관해 다르게 정의된 위치들에서의 블록들을 포함할 수 있다. 많은 경우에, 현재 비디오 블록 (63) 에 관해 이웃들 (62) 의 위치는 프레임 (61) 의 비디오 블록들이 인코딩되는 방향에 의존할 수 있다.
예를 들면, 이미 인코딩된 현재 비디오 블록 (63) 에 대한 인접 비디오 블록들은 일반적으로 이미 계산된 모션 벡터들을 갖지만, 아직 인코딩되지 않은 다른 인접한 비디오 블록들은 일반적으로 모션 벡터들을 갖지 않는다. 따라서, 현재 비디오 블록 (63) 에 대한 인접 비디오 블록들의 서브 세트를 포함하는 이웃들 (62A 내지 62C) (도 6) 은, 비디오 블록들의 인코딩하는 것이 프레임 (61) 의 맨 좌측 상단에서 시작하여, 좌측에서 우측으로, 위에서 아래로 진행하는 경우, 이용될 수도 있다. 또 다른 방법으로는, 현재 비디오 블록 (63) 에 대해 인접하는 비디오 블록들의 다른 서브 세트를 포함하는 이웃들 (62D 내지 62F) (도 7) 은, 비디오 블록들의 인코딩이 프레임 (61) 의 하위 맨 우측에서 시작하여, 우측에서 좌측으로, 아래에서 위로 진행하는 경우, 이용될 수도 있다. 초기화된 위치를 생성하는데 사용된 비디오 블록들의 세트에 대한 많은 다른 변형예를 본 명세서의 원리에 따라 정의할 수 있다. 예를 들면, 비디오 시퀀스에서 모션의 상위 레벨들이 발생하면, 바로 인접한 블록들보다 현재 비디오 블록 (63) 으로부터 훨씬 먼 현재 비디오 블록 (63) 에 관해 정의된 비디오 블록 위치들을 비디오 블록들 세트에 포함할 수도 있다.
도 5 의 초기화 기술은, 인접한 비디오 블록들에 대한 모션 벡터들이 그 점에서 사용할 수 없기 때문에, 인코딩될 프레임 (61) 의 제 1 비디오 블록에 대해 사용할 수 없다. 그러나, 초기화 루틴은 일단 인접한 비디오 블록들에 대한 하나 이상의 모션 벡터들을 식별하였으면, 그 후에 어느 때라도 시작할 수도 있다. 하나의 구체적인 경우에, 초기화 기술은 제 2 행에서 제 2 비디오 블록의 인코딩과 함께 시작할 수도 있다. 일반적으로, 그 점 이전에, 3 개의 인접한 이웃들에 대한 모션 벡터들을 정의하지 않는다. 그러나, 다른 경우에는, 초기화 루틴은 모션 벡터가 인코딩될 비디오 블록의 적어도 하나의 이웃에 대해 계산된 어떤 때에도 시작할 수도 있다.
도 8 에 나타낸 바와 같이, 현재 비디오 블록 (63) 에 대한 많은 이웃들과 d연관된 모션 벡터들은 탐색 공간 내의 초기화된 위치를 계산하는데 사용될 수도 있다. 보다 많은 모션 벡터들은 보다 많은 모션 벡터들을 보다 많은 이웃들에 대해 계산함에 따라, 현재 비디오 블록에 대한 모션 추정을 수행하기 위해 초기화된 위치를 계산하는데 사용될 수도 있다. 몇몇 경우에는, 공간 상관 현상을 보다 충분히 활용하기 위해, 현재 비디오 블록 (42) 에 공간적으로 인접한 이웃들과 연관된 모션 벡터들에게, 현재 비디오 블록 (42) 과 공간적으로 보다 멀리 떨어진 이웃들과 연관된 모션 벡터들보다 초기 위치 계산에서 보다 많은 가중치가 주어진다. 즉, 가중치 평균 및 가중치 중앙값과 같은 가중치 함수는 초기화된 픽셀 위치를 계산하기 위해 사용할 수도 있다. 예를 들면, 이웃들 1-4 (62A, 62B, 62C 및 62G) 와 연관된 모션 벡터들은, 이웃들 1-4 가 모션 추정 인코딩에 사용되는 비디오 블록에 통계적으로 유사하기 때문에 이웃들 5-10 (62H-62M) 과 연관된 모션 벡터들보다 보다 많은 가중치를 부여받는다. 이들 또는 다른 잠재적인 수정이 본 명세서의 견지에서 보다 명백해질 것이다.
도 9 는 모션 추정을 수행하기 위해 디지털 비디오 장치에서 구현할 수 있는 비디오 인코딩 기술을 나타낸 흐름도이다. 이 기술은 비디오 인코딩을 위해 요구하는 계산 횟수를 감소시키기 위해 탐색 공간에서 비디오 블록들의 비포괄적인 탐색을 포함할 수 있다. 나타낸 바와 같이, 인코딩 콘트롤러 (24) 는 프레임의 인접한 비디오 블록들에 대해 계산된 모션 벡터들에 기초하여 모션 추정을 초기화한다 (91). 예를 들면, 초기화 프로세스는 초기화를 위해 사용되는 이웃한 비디오 블록들이, 인코딩될 현재 비디오 블록에 관해 정의된 위치들에서 위치되는 비디오 블록들 세트를 포함하며, 도 5 에 나타낸 것과 유사한 프로세스를 포함할 수도 있다.
일단 초기화된 위치가 계산되면, 모션 추정기 (26) 는 초기화된 위치의 반경 (R) 인 원 내의 픽셀 위치들에 의해 정의되는 비디오 블록들 세트를 식별한다 (92). 예를 들면, 반경 (R) 은 적어도 5 개의 픽셀들을 포함하는 원으로 정의하기에 충분한 크기일 수도 있으나, 보다 큰 반경으로 정의할 수도 있다. 보다 바람직하게는, 반경 (R) 은 적어도 9 개의 픽셀들, 즉 초기화된 픽셀 위치와 그 초기화된 픽셀 위치를 바로 둘러싸는 모든 8 개의 픽셀 위치들을 포함하는 원으로 정의하도록 클 수도 있다. 초기화된 픽셀 위치, 및 그 초기화된 픽셀 위치를 바로 둘러싸는 모든 8 개의 픽셀 위치들의 포함은 초기화된 픽셀 위치에 대해 모든 가능한 방향으로의 모션을 예측하여 탐색기술을 개선시킬 수 있다.
그후, 모션 추정기 (26) 는, 원 내의 픽셀 위치들에 의해 정의되는 비디오 블록들과 인코딩될 현재 비디오 블록을 비교한다 (93). 다음으로, 모션 추정기 (26) 는 최소 차이값을 산출하는, 원내의 비디오 블록을 식별할 수 있다. 반경 (R) 의 원의 중심에 의해 정의된 비디오 블록이 최소 차이값, 즉, 사용된 비교 기술에 의해 정의된 최소 차이 메트릭을 산출하는 경우 (94 의 '예' 분기), 모션 추정기 (26) 는 반경 (R) 인 원의 중심에 의해 정의된 비디오 블록을 식별하는 모션 벡터를 이용하여 현재 비디오 블록을 인코딩한다 (95). 예를 들면, 전술한 SAD 또는 SSD 비교 기술을 이용할 수도 있다. 그러나, 반경 (R) 인 원의 중심에 의해 정의된 비디오 블록이 최소 차이값을 산출하지 않는 경우 (94 의 '아니오' 분기), 모션 추정기 (26) 는 최소 차이값을 산출하는 비디오 블록을 식별하는 픽셀 위치의 반경 (R') 내의 픽셀 위치들에 의해 정의되는 비디오 블록을 식별한다 (96).
그후, 모션 추정기 (26) 는, 반경 (R') 인 원 내의 픽셀 위치들에 의해 정의되는 비디오 블록들과 인코딩될 현재 비디오 블록을 비교한다 (93). 모션 추정기 (26) 는 가장 적은 값을 산출하는 반경 (R') 인 원 내의 비디오 블록을 식별할 수 있다. 반경 (R') 인 원의 중심에 의해 정의되는 비디오 블록이 최소 차이값, 즉, 이용된 비교 기술에 의해 정의되는 최소 차이 메트릭을 산출하는 경우 (94 의 '예' 분기), 모션 추정기 (26) 는, 반경 (R') 인 원의 중심에 의해 정의되는 비디오 블록을 식별하는 모션 벡터를 이용하여 현재 비디오 블록을 인코딩한다 (95). 그러나, 반경 (R') 인 원의 중심에 의해 정의되는 비디오 블록이 최소 차이값을 산출하지 않는 경우 (94 의 '아니오' 분기), 모션 추정기 (26) 는 반경 (R'') 등인 또 다른 원을 정의하는 프로세스를 계속한다.
최소 차이값을 산출한 픽셀 위치 주위에 정의되는 각각의 후속 원은, 원하면, 이전의 원과 동일한 반경, 또는 다른 반경을 가질 수 있다. 탐색 공간내에서 최소 차이값을 산출하는 비디오 블록을 식별하는, 가장 이전에 식별된 픽셀 위치에 대해 반경을 정의함으로써, 모션 추정에서의 사용을 위한 최적의 비디오 블록이 탐색 공간의 포괄적인 탐색을 요구하지 않고 신속하게 식별할 수 있다. 또한, 도 9 에 나타낸 탐색기술이, 다이아몬드 모양의 픽셀들 세트내의 중심에 위치한 픽셀에 연관된 비디오 블록의 차이값을 최소화하기 위해 동작하는 종래의 다이아몬드 탐색 기술들에 비하여 개선된 압축을 달성할 수 있음을 시뮬레이션을 통해 알 수 있다.
도 10 내지 도 13 은 도 9 에 나타낸 것과 유사한 비디오 인코딩 기술이, 허용가능한 모션 벡터의 위치를 찾을 수 있도록 수행되는 탐색 공간을 나타낸 개념도이다. 격자 (grid) 상의 각 점은 탐색 공간에서 고유한 비디오 블록을 식별하는 픽셀 위치를 나타낸다. 모션 추정 루틴은, 도 5 에 나타낸 초기화 루틴을 수행함으로써, 픽셀 위치 (X5, Y6) 에서 초기화될 수도 있다. 초기화된 위치 (X5, Y6) 를 찾으면, 모션 추정기 (26) 는 반경 (R) 의 원을 정의하고 반경 (R) 의 원내의 픽셀 위치들과 연관된 탐색 공간내의 비디오 블록들을 인코딩될 현재 비디오 블록과 비교한다. 그후, 모션 추정기 (26) 는 반경 (R) 인 원 내의 최소 차이값을 산출하는 비디오 블록을 식별할 수 있다.
모션 추정기 (26) 가, 최소 차이값을 산출하는 비디오 블록을 식별하는 픽셀 위치 (X6, Y7) 를 결정하면, 모션 추정기 (26) 는 도 11 에서 나타낸 바와 같이 픽셀 위치 (X6, Y7) 둘레에 반경 (R') 인 원을 정의한다. 그후, 모션 추정기 (26) 는 반경 (R') 인 원 내부의 픽셀 위치들과 연관된 탐색 공간내의 비디오 블록들을 인코딩될 현재 비디오 블록과 비교한다. 모션 추정기 (26) 는 픽셀 위치 (X6, Y8) 가 최소 차이값을 산출하는 비디오 블록을 식별한다고 결정하면, 모션 추정기 (26) 는, 도 12에 나타낸 바와 같이, 픽셀 위치 (X6, Y8) 주위에 반경 (R'') 인 또 다른 원을 정의한다. 그후, 모션 추정기 (26) 는 반경 (R'') 인 원 내의 픽셀 위치들과 연관된 탐색 공간내의 비디오 블록들을 인코딩될 현재 비디오 블록과 비교한다. 모션 추정기 (26) 가 픽셀 위치 (X7, Y9) 가 최소 차이값을 산출하는 비디오 블록을 식별한다고 결정하면, 모션 추정기 (26) 는, 도 13 에 나타낸 바와 같이, 픽셀 위치 (X7, Y9) 둘레에 반경 (R''') 인 또 다른 원을 정의한다. 그후, 모션 추정기 (26) 는 반경 (R''') 인 원 내의 픽셀 위치들과 연관된 탐색 공간내의 비디오 블록들을 인코딩될 현재 비디오 블록과 비교한다. 결국, 모션 추정기 (26) 는 원의 중심에 상응하는 최소 차이값을 산출하는 픽셀 위치를 찾아내야 한다. 그 점에서, 모션 추정기는 현재 비디오 블록에 대한 모션 벡터로서 원의 중심에 또한 상응하는 최소 차이값을 산출하는 픽셀 위치를 사용할 수 있다.
각각의 새로운 원을 정의함에 따라, 이전의 원에 포함되지 않았던 픽셀 위치들과 연관된 비교들만을 수행할 필요가 있다. 즉, 도 11 을 참조하면, 반경이 (R') 인 원에 관련하여, 픽셀 위치들 (Y8, X5), (Y8, X6), (Y8, X7), (Y7, X7) 및 (Y6, X7) 과 연관된 비디오 블록들만을 그 점에서 수행할 필요가 있다. 반경이 (R') 인 원내의 다른 픽셀 위치들과 연관된 비디오 블록들, 즉, (Y7, X5), (Y7, X6), (Y6, X5) 및 (Y6, X6) 은 반경 (R) 의 원에 관련하여 이미 수행하였다 (도 10).
반경 (R), (R'), (R''), (R''') 등은, 구현에 따라, 서로 동일하거나 다를 수 있다. 또한, 어떤 경우에는, 많은 픽셀들을 각각의 세트에 포함하도록 반경들을 정의할 수 있으며, 이것은 최적의 모션 벡터의 위치를 찾는 확률을 개선할 수 있다. 그러나, 보다 넓은 반경들은 어떤 주어진 탐색에 대한 계산 횟수를 증대시킬 수 있다. 그러나, 어떤 경우라도, 최소 차이값을 산출하는 각각의 픽셀 위치 주위에 원들을 정의하는 것은 다른 기술들에 비해 이점들을 가질 수 있다. 예를 들면, 원들이 픽셀 위치들 주위에 정의되면, 비교하는 동안에 인접한 모든 픽셀 위치를 검사할 수 있다. 즉, 중심 픽셀을 바로 둘러싸는 모든 8 개 픽셀 위치들을 정의된 원 내에 포함될 수도 있다. 또한, 탐색 공간내에서 모든 픽셀에 의해 정의되는 모든 가능한 비디오 블록의 비교를 요구하는 포괄적인 탐색은 회피될 수 있으며, 이것은 가속화된 비디오 인코딩을 초래할 수 있다.
도 14 는 비디오 인코딩을 실시간으로 개선하기 위해 디지털 비디오 장치에서 구현할 수 있는 또 다른 비디오 인코딩 기술을 나타낸 흐름도이다. 나타낸 바와 같이, 인코딩 콘트롤러 (24) 는 인코딩하고 있는 비디오 프레임의 현재 비디오 블록의 모션 추정을 초기화한다 (141). 예를 들면, 초기화 프로세스는 도 5 내지 도 8 을 참조하여 도시되고 설명된 바와 유사한 프로세스를 포함할 수 있으며, 탐색 공간내의 초기 픽셀을 식별한다. 또한, 초기화 프로세스는 현재 비디오 블록을 인코딩하기 위해 수행될 수 있는 탐색의 범위를 정의하는 단계를 포함할 수 있다. 현재 비디오 블록이 비디오 프레임에 대해 인코딩되는 제 1 비디오 블록이면, 탐색의 범위는 인코딩 콘트롤러 (24) 로 프로그래밍되는 디폴트값에 의해 정의될 수 있다.
초기화 이후에, 모션 추정기 (26) 는 현재 비디오 블록을 인코딩하기 위해 탐색 공간내의 모션 벡터들을 탐색한다 (142). 예를 들면, 탐색 및 인코딩 프로세스는, 도 9 내지 도 13 을 참조하여 도시되고 설명된 바와 유사한 프로세스를 포함할 수 있으며, 최소 차이값을 산출하는 픽셀 위치가 원의 중심에 상응할 때까지 픽셀 위치들 주위의 원들로 정의된다. 탐색의 범위는, 탐색이 발생할 수 있는 시간량을 제한함으로써 또는 사용된 원들의 크기를 제한함으로써, 제한될 수도 있다. 다시금, 탐색의 범위는 전술한 바와 같이, 초기화에 의해 정의될 수도 있다.
인코딩되고 있는 비디오 프레임이 추가적인 비디오 블록들을 포함하면 (143 의 '예' 분기), 인코딩 콘트롤러 (24) 는 프레임에 대해 남아있는 계산 자원량을 식별한다 (144). 그후, 인코딩 콘트롤러 (24) 는 인코딩되고 있는 비디오 프레임의 후속 비디오 블록의 모션 추정을 초기화한다 (141). 계산 절약이 초기 비디오 블록의 인코딩 동안에 실현되었으면, 사용가능한 자원량은 이전 비디오 블록을 인코딩하기 위해 사용가능한 자원에 비교하여 증가될 수 있다. 계산 자원은 비디오 인코더의 클럭속도, 및 초당 프레임으로 환산하여 송신되는 비디오 시퀀스의 희망하는 해상도에 의해 정의될 수 있다.
인코딩 콘트롤러 (24) 가, 인코딩되고 있는 비디오 프레임의 후속 비디오 블록 모션 추정을 초기화하면, 초기화 프로세스는 다시금 탐색 범위를 정의하는 프로세스를 포함한다. 그러나, 그 경우에, 탐색의 범위는 식별된 사용가능 계산 자원량에 기초할 수 있다. 따라서, 제 1 블록의 인코딩을 매우 신속하게 수행하면, 후속 비디오 블록들은 보다 포괄적인 탐색들을 이용하여 인코딩할 수 있다. 예를 들면, 보다 많은 계산 자원이 사용가능할 때, 픽셀 위치들 둘레에 원들을 정의하기 위해 사용되는 반경들을 증대할 수 있다. 계산 자원이 제한될 때, 인코딩될 비디오 블록들의 압축을 개선함으로써, 이들 또는 유사한 기술들이 비디오 인코딩의 품질을 실시간으로 개선할 수 있다. 일단 비디오 프레임의 모든 비디오 블록들이 인코딩되었으면 (143 의 '아니오' 분기), 장치 (10) 는 인코딩된 프레임을 송신기 (14) 및 안테나 (12) 를 통해 송신할 수 있다 (145).
표 1 은 다른 종래 기술들에 비교하여, 전술한 기술을 시뮬레이션하는 동안에 수집된 데이터를 나열한다. 인코딩을, 상대적으로 많은 모션량을 갖는 비디오 시퀀스에 대해 수행하였다. 또한, 종래의 다이아몬드 탐색 기술들 및 탐색 공간의 모든 비디오 블록들이 인코딩될 비디오 블록에 비교되는 포괄적인 탐색 기술을 이용하여, 동일한 비디오 시퀀스를 인코딩하였다. 각각의 기술에 대해, 표 1 은 파일 크기, 신호대 잡음 비율, 매크로블록당 평균 탐색수, 매크로블록당 최대 탐색수, 및 최악의 경우에 프레임에 대해 요구되는 탐색수를 나열한다. "원 탐색" 이라는 표지는 도 5 및 도 9 와 유사한 프로세스를 사용한 인코딩 기술을 지칭한다. 도 1 에 의해 알 수 있듯이, 여기에서 설명하는 기술들은 종래의 다이아몬드 탐색에 비하여, 감소된 탐색수로 개선된 압축을 달성할 수 있다. 여기에서 설명하는 기술들은 완전 탐색의 압축 레벨을 달성하지 않을 수 있다. 그러나, 본 예에서, 원 탐색 기술은, 다이아몬드 탐색에 대한 매크로블록당 21.3 탐색수, 및 완전 탐색에 대한 매크로블록당 1024 탐색수에 비교되어, 매크로블록당 평균 17.2 탐색수만을 요구하였다.
표 1
Figure 112004058997859-pct00001
많은 다른 실시형태들을 설명하였다. 예를 들면, 탐색을 수행하는 모션 추정 기술뿐만 아니라, 탐색 공간내에서 탐색을 초기화하는 비디오 인코딩 기술들을 설명하였다. 이 기술들은 소정의 시나리오에서 계산을 회피하고, 인코딩 프로세스를 가속시키고, 압축을 개선하고, 비디오 인코딩 동안에 전력소모를 감소시킴으로써, 비디오 인코딩을 개선할 수 있다. 이러한 방식으로, 인코딩 기술은 MPEG-4 와 같은 표준들에 따르는 비디오 인코딩을 개선시킬 수 있으며, 계산 자원이 더 제한되고 전력 소모가 관심사인 무선 장치내에서 비디오 인코딩의 구현을 더 용이하게 할 수 있다. 또한, 이 기술들은 MPEG-4 디코딩 표준과 같은 디코딩 표준들과의 상호운용성에 영향을 미치지 않을 수도 있다.
그럼에도 불구하고, 여러 변형예가 다음의 청구범위를 벗어나지 않고 이루어질 수 있다. 예를 들면, 초기화 루틴은 탐색 공간내에서 다수의 초기 픽셀 위치들을 계산하기 위해 확장될 수 있다. 예를 들면, 다른 선형 또는 비선형 함수들을, 인코딩될 비디오 블록에 관련된, 정의된 위치들에서 비디오 블록들 세트내의 모션 벡터들에 기초하여, 둘 이상의 초기화된 위치들을 계산하기 위해 사용할 수 있다. 또한, 인코딩될 비디오 블록에 관련된, 정의된 위치들에서 위치되는 비디오 블록들의 둘 이상의 다른 세트들을, 둘 이상의 초기화된 위치들을 계산하도록 이용할 수 있다. 몇몇 시나리오에서, 둘 이상의 초기화된 위치들의 계산이 인코딩 프로세스를 훨씬 더 가속시킬 수 있다. 이들 또는 다른 변형예가 본 명세서에 비추어 명백할 것이다.
여기에 설명되는 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것의 어떤 조합으로 구현할 수 있다. 소프트웨어에서 구현되면, 이 기술들은, MPEG-4 표준에 따른 비디오 스트림들을 인코딩하는 장치에서 실행될 때 전술한 하나 이상의 방법을 수행하는 프로그램 코드를 포함하는 컴퓨터 판독가능 매체와 관련될 수 있다. 그 경우에, 컴퓨터 판독가능 매체는, SDRAM 과 같은 RAM, ROM, NVRAM, EEPROM, 플래시 메모리 등을 포함할 수 있다.
프로그램 코드는 메모리상에 컴퓨터 판독가능 명령들의 형태로 저장할 수 있다. 그 경우에, 여기에 설명한 하나 이상의 기술을 수행하기 위해, DSP 와 같은 프로세서가 메모리에 저장된 명령들을 실행할 수 있다. 어떤 경우에는, 인코딩 프로세스를 가속시키기 위해 여러 하드웨어 컴포넌트들을 호출하는 DSP 에 의해 수행할 수도 있다. 다른 경우에, 비디오 인코더는, 마이크로프로세서, 하나 이상의 주문형 반도체 (ASIC), 하나 이상의 필드 프로그램가능 게이트 어레이 (FPGA), 또는 그 밖의 하드웨어-소프트웨어의 조합으로서 구현할 수 있다. 이들 또는 다른 실시형태들은 다음 청구항들의 범위내에 있다.

Claims (54)

  1. 비디오 프레임 내의 비디오 블록들 세트와 연관된 계산된 모션 벡터들에 기초하여 탐색 공간 내의 비디오 블록과 연관된 픽셀 위치를 식별하는 것으로서, 상기 비디오 블록들 세트 내의 비디오 블록들이 인코딩될 상기 비디오 프레임의 현재 비디오 블록에 관해 정의된 위치들에 위치되는, 상기 픽셀 위치를 식별하는 것, 및 상기 현재 비디오 블록에 대한 모션 추정 루틴을 상기 식별된 픽셀 위치로 초기화하는 것을 포함하는 인코딩 루틴을 이용하여, 비디오 프레임들을 인코딩하는 인코더; 및
    상기 인코딩된 비디오 프레임들을 송신하는 송신기를 구비하는, 비디오 프로세싱 디바이스.
  2. 제 1 항에 있어서,
    상기 픽셀 위치를 식별하는 것은, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들과 연관된 모션 벡터들에 기초하여 픽셀 좌표들 세트를 계산하는 것을 포함하는, 비디오 프로세싱 디바이스.
  3. 제 2 항에 있어서,
    상기 픽셀 좌표들 세트를 계산하는 것은, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들의 모션 벡터들에 기초하여 중앙값을 계산하는 것을 포함하는, 비디오 프로세싱 디바이스.
  4. 제 2 항에 있어서,
    상기 픽셀 좌표들 세트를 계산하는 것은, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들의 모션 벡터들에 기초하여 평균을 계산하는 것을 포함하는, 비디오 프로세싱 디바이스.
  5. 제 2 항에 있어서,
    상기 픽셀 좌표들 세트를 계산하는 것은, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 중 비디오 블록들의 모션 벡터들에 기초하여 가중치 함수를 계산하는 것을 포함하며,
    상기 비디오 블록들 세트 내의 비디오 블록들과 연관된 모션 벡터들은, 상기 비디오 블록들 세트 내의 비디오 블록들이 상기 현재 비디오 블록과 공간적으로 근접할수록, 상기 가중치 함수에서, 더욱 큰 가중치를 부여 받는, 비디오 프로세싱 디바이스.
  6. 제 1 항에 있어서,
    상기 인코더는,
    상기 식별된 픽셀 위치 주위에 반경 (R) 인 원을 정의하는 것;
    상기 원 내의 픽셀 위치들과 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하는 것;
    최소 차이값을 산출하는 비디오 블록을 식별하는 상기 원 내의 픽셀 위치를 식별하는 것; 및
    최소 차이값을 산출하는 비디오 블록을 식별하는 상기 원 내의 상기 식별된 픽셀 위치가 상기 원의 중심에 상응하는 경우, 최소 차이값을 산출하는 비디오 블록을 식별하는 상기 원 내의 상기 식별된 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 것을 포함하는 상기 모션 추정 루틴을 이용하여, 상기 현재 비디오 블록을 인코딩하는, 비디오 프로세싱 디바이스.
  7. 제 1 항에 있어서,
    상기 인코더는,
    상기 현재 비디오 블록을 인코딩하는데 이용 가능한 계산 자원량에 기초하여 수행할 계산 횟수를 동적으로 조절하는 것을 포함하는 상기 모션 추정 루틴을 이용하여, 상기 현재 비디오 블록을 인코딩하는, 비디오 프로세싱 디바이스.
  8. 비디오 프레임의 현재 비디오 블록을 인코딩하기 위해 탐색 공간 내의 픽셀 위치로 모션 추정 루틴을 초기화하는 것;
    상기 픽셀 위치 주위에 반경 (R) 인 원을 정의하는 것;
    상기 원 내의 픽셀 위치들 세트와 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하는 것;
    최소 차이값을 산출하는 비디오 블록을 식별하는 상기 원 내의 픽셀 위치를 식별하는 것; 및
    상기 식별된 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 식별된 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 것에 의해, 비디오 프레임들을 인코딩하는 인코더; 및
    상기 인코딩된 비디오 프레임들을 송신하는 송신기를 구비하는, 비디오 프로세싱 디바이스.
  9. 제 8 항에 있어서,
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 반경 (R) 인 원 내의 상기 식별된 픽셀 위치가 상기 원의 상기 중심에 상응하지 않을 경우,
    상기 인코더는,
    상기 반경 (R) 인 원의 상기 중심에 상응하지 않는 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 픽셀 위치 주위에 반경 (R') 인 다른 원을 정의하는 것;
    최소 차이값을 산출하는 비디오 블록을 식별하는 상기 반경 (R') 인 다른 원 내의 픽셀 위치를 식별하는 것; 및
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 반경 (R') 인 다른 원 내의 상기 픽셀 위치가 상기 반경 (R') 인 다른 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 것에 의해, 상기 비디오 프레임들을 인코딩하는, 비디오 프로세싱 디바이스.
  10. 제 9 항에 있어서,
    R 은 R' 과 동일한, 비디오 프로세싱 디바이스.
  11. 제 9 항에 있어서,
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 상기 픽셀 위치가 반경 (R') 인 상기 다른 원의 상기 중심에 상응하지 않을 경우,
    상기 인코더는,
    반경 (R') 인 상기 다른 원의 상기 중심에 상응하지 않는 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 픽셀 위치 주위에 반경 (R'') 인 또 다른 원을 정의하는 것;
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R'') 인 상기 또 다른 원 내의 픽셀 위치를 식별하는 것; 및
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 반경 (R'') 인 상기 또 다른 원 내의 상기 픽셀 위치가 반경 (R'') 인 상기 또 다른 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 반경 (R'') 인 상기 또 다른 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 것에 의해, 상기 비디오 프레임들을 인코딩하는, 비디오 프로세싱 디바이스.
  12. 제 8 항에 있어서,
    상기 장치는, 디지털 TV, 무선 통신 장치, 개인휴대 정보단말기 (PDA), 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 디지털 리코딩 장치, 비디오 기능을 가진 셀룰러 무선전화, 및 비디오 기능을 가진 위성 무선전화로 이루어진 그룹 중에서 선택되는, 비디오 프로세싱 디바이스.
  13. 비디오 프레임 내의 비디오 블록들 세트의 모션 벡터들에 기초하여 탐색 공간 내의 픽셀 위치를 식별하는 단계로서, 상기 비디오 블록들 세트 중의 상기 비디오 블록들이 인코딩될 상기 비디오 프레임의 현재 비디오 블록에 관해 정의된 위치들에 위치되는, 상기 픽셀 위치를 식별하는 단계; 및
    상기 현재 비디오 블록에 대한 모션 추정 루틴을 상기 식별된 픽셀 위치로 초기화하는 단계를 포함하는, 비디오 인코딩 방법.
  14. 제 13 항에 있어서,
    상기 현재 비디오 블록에 관해 정의된 위치들에 위치되는 상기 비디오 블록들 세트 중의 상기 비디오 블록들은 상기 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 비디오 인코딩 방법.
  15. 제 13 항에 있어서,
    상기 픽셀 위치를 식별하는 단계는, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들에 대해 계산된 모션 벡터들에 기초하여 픽셀 좌표들 세트를 계산하는 단계를 포함하는, 비디오 인코딩 방법.
  16. 제 15 항에 있어서,
    상기 픽셀 좌표들 세트를 계산하는 단계는, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들에 대해 계산된 모션 벡터들에 기초하여 중앙값을 계산하는 단계를 포함하는, 비디오 인코딩 방법.
  17. 제 15 항에 있어서,
    상기 픽셀 좌표들 세트를 계산하는 단계는, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들에 대해 계산된 모션 벡터들에 기초하여 평균을 계산하는 단계를 포함하는, 비디오 인코딩 방법.
  18. 제 15 항에 있어서,
    상기 픽셀 좌표들 세트를 계산하는 단계는, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들에 대해 계산된 모션 벡터들에 기초하여 가중치 함수를 계산하는 단계를 포함하며,
    상기 비디오 블록들 세트 내의 비디오 블록들과 연관된 모션 벡터들은, 상기 비디오 블록들 세트 내의 비디오 블록들이 상기 현재 비디오 블록과 공간적으로 근접할수록, 상기 가중치 함수에서, 더욱 큰 가중치를 부여 받는, 비디오 인코딩 방법.
  19. 제 13 항에 있어서,
    상기 모션 추정 루틴을 이용하여 상기 현재 비디오 블록을 인코딩하는 단계를 더 포함하는, 비디오 인코딩 방법.
  20. 제 19 항에 있어서,
    상기 모션 추정 루틴은,
    상기 식별된 픽셀 위치 주위에 반경 (R) 인 원을 정의하는 단계;
    상기 원 내의 픽셀 위치들과 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하는 단계;
    최소 차이값을 산출하는 비디오 블록을 식별하는 상기 원 내의 픽셀 위치를 식별하는 단계; 및
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 원 내의 상기 식별된 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 원 내의 상기 식별된 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 단계를 포함하는, 비디오 인코딩 방법.
  21. 제 20 항에 있어서,
    최소 차이값을 산출하는 비디오 블록을 식별하는 상기 원 내의 상기 식별된 픽셀 위치가 상기 원의 상기 중심에 상응하지 않을 경우,
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R) 인 상기 원내의 상기 식별된 픽셀 위치 주위에 반경 (R') 인 다른 원을 정의하는 단계;
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 픽셀 위치를 식별하는 단계; 및
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 상기 식별된 픽셀 위치가 반경 (R') 인 상기 다른 원의 중심에 상응하는 경우, 최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 상기 식별된 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 단계를 더 포함하는, 비디오 인코딩 방법.
  22. 제 19 항에 있어서,
    상기 모션 추정 루틴은 상기 현재 비디오 블록을 인코딩하는데 이용 가능한 계산 자원량에 기초하여 수행할 계산 횟수를 동적으로 조절하는 단계를 포함하는, 비디오 인코딩 방법.
  23. 비디오 프레임의 현재 비디오 블록을 인코딩하기 위해 탐색 공간 내의 픽셀 위치로 모션 추정 루틴을 초기화하는 단계;
    상기 픽셀 위치 주위에 반경 (R) 인 원을 정의하는 단계;
    상기 원 내의 픽셀 위치들 세트와 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하는 단계;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 원 내의 픽셀 위치를 식별하는 단계; 및
    상기 식별된 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 식별된 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 단계를 포함하는, 비디오 프로세싱 방법.
  24. 제 23 항에 있어서,
    상기 식별된 픽셀 위치가 상기 원의 상기 중심에 상응하지 않을 경우,
    상기 식별된 픽셀 위치 주위에 반경 (R') 인 다른 원을 정의하는 단계;
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 픽셀 위치를 식별하는 단계; 및
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 상기 식별된 픽셀 위치가 반경 (R') 인 상기 다른 원의 중심에 상응하는 경우, 최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 상기 식별된 픽셀 위치에 의해 정의된 모션 벡터를 이용하여, 상기 현재 비디오 블록을 인코딩하는 단계를 더 포함하는, 비디오 프로세싱 방법.
  25. 제 24 항에 있어서,
    R 은 R' 과 동일한, 비디오 프로세싱 방법.
  26. 제 24 항에 있어서,
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 상기 식별된 픽셀 위치가 반경 (R') 인 상기 다른 원의 상기 중심에 상응하지 않을 경우,
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R') 인 상기 다른 원 내의 상기 식별된 픽셀 위치 주위에 반경 (R'') 인 또 다른 원을 정의하는 단계;
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R'') 인 상기 또 다른 원 내의 픽셀 위치를 식별하는 단계; 및
    최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R'') 인 상기 또 다른 원 내의 상기 식별된 픽셀 위치가 반경 (R'') 인 상기 또 다른 원의 중심에 상응하는 경우, 최소 차이값을 산출하는 비디오 블록을 식별하는 반경 (R'') 인 상기 또 다른 원 내의 상기 식별된 픽셀 위치에 의해 정의된 모션 벡터를 이용하여, 상기 현재 비디오 블록을 인코딩하는 단계를 더 포함하는, 비디오 프로세싱 방법.
  27. 컴퓨터 실행가능 명령들을 저장하는 메모리; 및
    인코딩될 비디오 프레임의 현재 비디오 블록에 관해 정의된 위치들에 위치된, 상기 비디오 프레임 내의 비디오 블록들 세트와 연관된, 계산된 모션 벡터들에 기초하여 탐색 공간 내의 하나의 비디오 블록과 연관된 픽셀 위치를 식별하고,
    상기 현재 비디오 블록에 대한 모션 추정 루틴을 상기 식별된 픽셀 위치로 초기화하도록 하는, 상기 컴퓨터 실행가능 명령들을 실행하는 프로세서를 구비하는, 비디오 프로세싱 장치.
  28. 제 27 항에 있어서,
    상기 프로세서는, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치되는 상기 비디오 블록들 세트 내의 비디오 블록들과 연관된 모션 벡터들에 기초하여 중앙값을 계산함으로써 상기 픽셀 위치를 식별하는, 비디오 프로세싱 장치.
  29. 제 27 항에 있어서,
    상기 프로세서는, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들의 픽셀 좌표들에 기초하여 평균을 계산함으로써 상기 픽셀 위치를 식별하는, 비디오 프로세싱 장치.
  30. 제 27 항에 있어서,
    상기 프로세서는, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들의 모션 벡터들에 기초하여 가중치 함수를 계산함으로써 상기 픽셀 위치를 식별하며,
    상기 비디오 블록들 세트 내의 비디오 블록들과 연관된 모션 벡터들은, 상기 비디오 블록들 세트 내의 비디오 블록들이 상기 현재 비디오 블록과 공간적으로 근접할수록, 상기 가중치 함수에서, 더욱 큰 가중치를 부여 받는, 비디오 프로세싱 장치.
  31. 제 27 항에 있어서,
    상기 프로세서는 상기 컴퓨터 실행가능 명령들을 실행하여 상기 모션 추정 루틴을 수행하며,
    상기 모션 추정 루틴은,
    상기 식별된 픽셀 위치 주위에 반경 (R) 인 원을 정의하는 것;
    상기 원 내의 픽셀 위치들과 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하는 것;
    최소 차이값을 산출하는 비디오 블록을 식별하는 상기 원 내의 픽셀 위치를 식별하는 것; 및
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 원 내의 상기 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 것을 포함하는, 비디오 프로세싱 장치.
  32. 제 27 항에 있어서,
    상기 프로세서는, 상기 컴퓨터 실행가능 명령들을 실행하여 상기 모션 추정 루틴을 수행하며,
    상기 모션 추정 루틴은, 상기 현재 비디오 블록을 인코딩하는데 이용 가능한 계산 자원량에 기초하여 수행할 계산 횟수를 동적으로 조절하는 것을 포함하는, 비디오 프로세싱 장치.
  33. 컴퓨터 실행 가능 명령들을 저장하는 메모리; 및
    상기 컴퓨터 실행 가능 명령들을 실행하는 프로세서를 포함하고,
    상기 프로세서는,
    비디오 프레임의 현재 비디오 블록을 인코딩하기 위해 탐색 공간 내의 픽셀 위치로 모션 추정 루틴을 초기화하고;
    상기 픽셀 위치 주위에 반경 (R) 인 원을 정의하고;
    상기 원 내의 픽셀 위치들 세트와 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하고;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 원 내의 픽셀 위치를 식별하며;
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하도록 하는, 상기 컴퓨터 실행 가능 명령들을 실행하는, 비디오 프로세싱 장치.
  34. 제 33 항에 있어서,
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 반경 (R) 인 원 내의 상기 픽셀 위치가 상기 원의 상기 중심에 상응하지 않을 경우,
    상기 프로세서는,
    상기 반경 (R) 인 원의 상기 중심에 상응하지 않는 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 픽셀 위치 주위에 반경 (R') 인 다른 원을 정의하고;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 픽셀 위치를 식별하며;
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 반경 (R') 인 다른 원 내의 상기 픽셀 위치가 상기 반경 (R') 인 다른 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하도록 하는, 명령들을 실행하는, 비디오 프로세싱 장치.
  35. MPEG-4 표준에 따라 비디오 블록들을 인코딩하는 장치로서,
    상기 인코딩 장치는,
    인코딩될 비디오 프레임의 현재 비디오 블록에 관해 정의된 위치들에 위치되는, 상기 비디오 프레임 내의 비디오 블록들 세트와 연관된, 계산된 모션 벡터들에 기초하여 탐색 공간 내의 하나의 비디오 블록과 연관된 픽셀 위치를 식별하고,
    상기 현재 비디오 블록에 대한 모션 추정 루틴을 상기 식별된 픽셀 위치로 초기화하는, 인코딩 장치.
  36. 제 35 항에 있어서,
    상기 인코딩 장치는, 상기 MPEG-4 표준에 따라 상기 비디오 블록들을 인코딩하도록 하는 컴퓨터 판독 가능 명령들을 실행하는 디지털 신호 프로세서를 구비하는, 인코딩 장치.
  37. MPEG-4 표준에 따라 비디오 블록들을 인코딩하는 장치로서,
    상기 인코딩 장치는,
    비디오 프레임의 현재 비디오 블록을 인코딩하기 위해 탐색 공간 내의 픽셀 위치로 모션 추정 루틴을 초기화하고;
    상기 픽셀 위치 주위에 반경 (R) 인 원을 정의하고;
    상기 원 내의 픽셀 위치들 세트와 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하고;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 원 내의 픽셀 위치를 식별하며;
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는, 인코딩 장치.
  38. 제 37 항에 있어서,
    상기 인코딩 장치는 상기 MPEG-4 표준에 따라 상기 비디오 블록들을 인코딩하도록 하는 컴퓨터 판독 가능 명령들을 실행하는 디지털 신호 프로세서를 구비하는, 인코딩 장치.
  39. MPEG-4 표준에 따르는 비디오 시퀀스를 인코딩하는 장치에서 실행시,
    인코딩될 비디오 프레임의 현재 비디오 블록에 관해 정의된 위치들에 위치되는, 상기 비디오 프레임 내의 비디오 블록들 세트와 연관된, 계산된 모션 벡터들에 기초하여 탐색 공간 내의 하나의 비디오 블록과 연관된 픽셀 위치를 식별하고,
    상기 현재 비디오 블록에 대한 모션 추정 루틴을 상기 식별된 픽셀 위치로 초기화하는, 명령들을 포함하는 컴퓨터 판독가능 매체.
  40. 제 39 항에 있어서,
    상기 현재 비디오 블록에 관해 정의된 위치들에서의 상기 비디오 블록들은, 상기 현재 비디오 블록에 인접하는 비디오 블록들을 포함하는, 컴퓨터 판독가능 매체.
  41. 제 39 항에 있어서,
    실행 시, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들과 연관된 모션 벡터들에 기초하여 픽셀 좌표들 세트를 계산하는 것에 의해 상기 픽셀 위치를 식별하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  42. 제 41 항에 있어서,
    상기 픽셀 좌표 세트를 계산하는 것은, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치되는 상기 비디오 블록들 세트 내의 비디오 블록들의 모션 벡터들에 기초하여 중앙값을 계산하는 것을 포함하는, 컴퓨터 판독가능 매체.
  43. 제 41 항에 있어서,
    상기 픽셀 좌표들 세트를 계산하는 것은, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들의 모션 벡터들에 기초하여 평균을 계산하는 것을 포함하는, 컴퓨터 판독가능 매체.
  44. 제 41 항에 있어서,
    상기 픽셀 좌표 세트를 계산하는 것은, 상기 현재 비디오 블록에 관해 정의된 위치들에 위치된 상기 비디오 블록들 세트 내의 비디오 블록들과 관련되는 모션 벡터들에 기초하여 가중치 함수를 계산하는 것을 포함하며,
    상기 비디오 블록들 세트 내의 비디오 블록들과 연관된 모션 벡터들은, 상기 비디오 블록들 세트 내의 비디오 블록들이 상기 현재 비디오 블록과 공간적으로 근접할수록, 상기 가중치 함수에서, 더욱 큰 가중치를 부여 받는, 컴퓨터 판독가능 매체.
  45. 제 39 항에 있어서,
    실행 시, 상기 모션 추정 루틴을 이용하여 상기 현재 비디오 블록을 인코딩하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  46. 제 45 항에 있어서,
    상기 모션 추정 루틴은,
    상기 식별된 픽셀 위치 주위에 반경 (R) 인 원을 정의하는 것;
    상기 원 내의 픽셀 위치들과 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하는 것;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 원 내의 픽셀 위치를 식별하는 것; 및
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 것을 포함하는, 컴퓨터 판독가능 매체.
  47. 제 46 항에 있어서,
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R) 인 원 내의 상기 픽셀 위치가 상기 원의 상기 중심에 상응하지 않을 경우,
    상기 모션 추정 루틴은,
    상기 반경 (R) 인 원의 상기 중심에 상응하지 않는 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 픽셀 위치 주위에 반경 (R') 인 다른 원을 정의하는 것;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 픽셀 위치를 식별하는 것; 및
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 상기 픽셀 위치가 상기 반경 (R') 인 다른 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 것을 더 포함하는, 컴퓨터 판독가능 매체.
  48. 제 45 항에 있어서,
    상기 모션 추정 루틴은, 상기 현재 비디오 블록을 인코딩하는데 이용 가능한 계산 자원량에 기초하여 수행할 계산 횟수를 동적으로 조절하는 것을 포함하는, 컴퓨터 판독가능 매체.
  49. MPEG-4 표준에 따르는 비디오 시퀀스들을 인코딩하는 장치에서 실행 시,
    비디오 프레임의 현재 비디오 블록을 인코딩하기 위해 탐색 공간 내의 픽셀 위치로 모션 추정 루틴을 초기화하고;
    상기 픽셀 위치 주위에 반경 (R) 인 원을 정의하고;
    상기 원 내의 픽셀 위치들 세트와 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하고;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 원 내의 픽셀 위치를 식별하며;
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  50. 제 49 항에 있어서,
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R) 인 원 내의 상기 픽셀 위치가 상기 원의 상기 중심에 상응하지 않을 경우,
    상기 명령들은, 실행 시,
    상기 반경 (R) 인 원의 상기 중심에 상응하지 않는 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 픽셀 위치 주위에 반경 (R') 의 다른 원을 정의하고;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 픽셀 위치를 식별하며;
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 상기 픽셀 위치가 상기 반경 (R') 인 다른 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는, 컴퓨터 판독가능 매체.
  51. 제 50 항에 있어서,
    R 은 R' 과 동일한, 컴퓨터 판독가능 매체.
  52. 제 50 항에 있어서,
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R') 인 다른 원 내의 상기 픽셀 위치가 상기 반경 (R') 인 다른 원의 상기 중심에 상응하지 않을 경우,
    상기 명령들은, 실행 시,
    상기 반경 (R') 인 다른 원의 상기 중심에 상응하지 않는 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는 상기 픽셀 위치 주위에 반경 (R'') 인 또 다른 원을 정의하고;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 반경 (R'') 인 또 다른 원 내의 픽셀 위치를 식별하며;
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R'') 인 또 다른 원 내의 상기 픽셀 위치가 상기 반경 (R'') 인 또 다른 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 반경 (R'') 인 또 다른 원 내의 상기 픽셀 위치에 의해 정의된 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는, 컴퓨터 판독가능 매체.
  53. 비디오 프레임 내의 비디오 블록들 세트에 연관된 계산된 모션 벡터들에 기초하여 탐색 공간 내의 비디오 블록과 연관된 픽셀 위치를 식별하는 수단으로서, 인코딩될 상기 비디오 프레임의 현재 비디오 블록에 관해 정의된 위치들에 상기 비디오 블록들 세트의 상기 비디오 블록들이 위치하는, 상기 픽셀 위치를 식별하는 수단; 및
    상기 현재 비디오 블록에 대한 모션 추정 루틴을 상기 식별된 픽셀 위치로 초기화하는 수단을 구비하는, 비디오 프로세싱 장치.
  54. 비디오 프레임의 현재 비디오 블록을 인코딩하기 위해 탐색 공간 내의 픽셀 위치로 모션 추정 루틴을 초기화하는 수단;
    상기 픽셀 위치 주위에 반경 (R) 인 원을 정의하는 수단;
    상기 원 내의 픽셀 위치들 세트와 연관된 상기 탐색 공간의 비디오 블록들과 상기 현재 비디오 블록을 비교하는 수단;
    최소 차이값을 산출하는 비디오 블록을 식별하는, 상기 원 내의 픽셀 위치를 식별하는 수단; 및
    상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 픽셀 위치가 상기 원의 중심에 상응하는 경우, 상기 최소 차이값을 산출하는 상기 비디오 블록을 식별하는, 상기 원 내의 상기 식별된 픽셀 위치에 의해 정의되는 모션 벡터를 이용하여 상기 현재 비디오 블록을 인코딩하는 수단을 구비하는, 비디오 프로세싱 장치.
KR1020047020373A 2002-06-18 2003-06-18 비디오 인코딩을 위한 모션 추정 기술 KR100960847B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/176,028 US7817717B2 (en) 2002-06-18 2002-06-18 Motion estimation techniques for video encoding
US10/176,028 2002-06-18
PCT/US2003/019400 WO2003107680A2 (en) 2002-06-18 2003-06-18 Motion estimation techniques for video encoding

Publications (2)

Publication Number Publication Date
KR20050012794A KR20050012794A (ko) 2005-02-02
KR100960847B1 true KR100960847B1 (ko) 2010-06-07

Family

ID=29734037

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047020373A KR100960847B1 (ko) 2002-06-18 2003-06-18 비디오 인코딩을 위한 모션 추정 기술

Country Status (9)

Country Link
US (1) US7817717B2 (ko)
EP (1) EP1514424A2 (ko)
JP (1) JP2005530421A (ko)
KR (1) KR100960847B1 (ko)
CN (1) CN1663280A (ko)
AU (1) AU2003238294A1 (ko)
MY (1) MY139912A (ko)
TW (1) TWI286906B (ko)
WO (1) WO2003107680A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259878A1 (en) * 2004-05-20 2005-11-24 Broadcom Corporation Motion estimation algorithm
US20060120612A1 (en) * 2004-12-08 2006-06-08 Sharath Manjunath Motion estimation techniques for video encoding
EP1849304B9 (en) * 2005-01-28 2011-03-30 Thomson Licensing Method and apparatus for real-time frame encoding
TW200633539A (en) * 2005-03-09 2006-09-16 Pixart Imaging Inc Estimation method of motion vector based on distance weighted searching sequence
US8761259B2 (en) * 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction 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
US8112247B2 (en) * 2006-03-24 2012-02-07 International Business Machines Corporation Resource adaptive spectrum estimation of streaming data
KR101107254B1 (ko) * 2007-01-25 2012-01-20 삼성전자주식회사 인접 블록의 움직임 벡터를 이용한 움직임 벡터 추정 방법및 그 장치
GB2457694B (en) 2008-02-21 2012-09-26 Snell Ltd Method of Deriving an Audio-Visual Signature
TWI376645B (en) * 2008-07-29 2012-11-11 Sonix Technology Co Ltd Image processing methof of noise reduction and apparatus thereof
US8811485B1 (en) * 2009-05-12 2014-08-19 Accumulus Technologies Inc. System for generating difference measurements in a video processor
US8755437B2 (en) 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
AU2012208842B2 (en) 2011-01-19 2014-08-07 Hfi Innovation Inc. Method and apparatus for parsing error robustness of temporal Motion Vector Prediction
BR112013022522B8 (pt) * 2011-03-14 2022-05-31 Hfi Innovation Inc Método e aparelho para derivação de candidato de vetor de movimento e predição de candidato de vetor de movimento
US9154805B2 (en) 2012-09-12 2015-10-06 Advanced Micro Devices, Inc. Video and image compression based on position of the image generating device
US9973780B2 (en) 2013-10-31 2018-05-15 Microsoft Technology Licensing, Llc Scaled video for pseudo-analog transmission in spatial domain
US10284875B2 (en) 2016-08-08 2019-05-07 Qualcomm Incorporated Systems and methods for determining feature point motion
CN111818333B (zh) * 2020-06-16 2022-04-29 中国科学院深圳先进技术研究院 一种帧内预测方法、装置、终端及存储介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0250534B2 (en) 1985-12-24 1994-09-28 British Broadcasting Corporation Bandwidth compression for television signals
WO1987005770A1 (en) * 1986-03-19 1987-09-24 British Broadcasting Corporation Video signal processing for bandwidth reduction
GB8729878D0 (en) 1987-12-22 1988-02-03 Philips Electronic Associated Processing sub-sampled signals
US4979041A (en) 1988-01-28 1990-12-18 Massachusetts Institute Of Technology High definition television system
US5021882A (en) 1989-05-24 1991-06-04 Massachusetts Institute Of Technology Definition television systems
US4942666A (en) * 1989-11-28 1990-07-24 Chart Industries Ltd. Apparatus for measuring camber, caster and steering axis inclination of a vehicle
JPH0620050A (ja) 1992-07-03 1994-01-28 Matsushita Electric Ind Co Ltd 動画像信号の復号化装置と推定動きベクトル算出方法
US5508744A (en) * 1993-03-12 1996-04-16 Thomson Consumer Electronics, Inc. Video signal compression with removal of non-correlated motion vectors
JP3017384B2 (ja) 1993-07-19 2000-03-06 シャープ株式会社 特徴領域抽出装置
US5594504A (en) 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
US5552832A (en) 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
JPH08140101A (ja) 1994-11-11 1996-05-31 Kokusai Electric Co Ltd 動き検出方法及び動き検出装置及び画像送信装置
EP0720383B1 (en) * 1994-12-30 2000-09-13 Daewoo Electronics Co., Ltd Method and apparatus for detecting motion vectors in a frame decimating video encoder
US6020925A (en) * 1994-12-30 2000-02-01 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a video signal using pixel-by-pixel motion prediction
JPH08205154A (ja) 1995-01-27 1996-08-09 Kokusai Electric Co Ltd 動き補償フレーム間予測の動き検出方式及び装置
KR0171154B1 (ko) * 1995-04-29 1999-03-20 배순훈 특징점 기반 움직임 추정을 이용하여 비디오 신호를 부호화하는 방법 및 장치
US5757668A (en) 1995-05-24 1998-05-26 Motorola Inc. Device, method and digital video encoder of complexity scalable block-matching motion estimation utilizing adaptive threshold termination
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
KR100203656B1 (ko) * 1996-04-09 1999-06-15 전주범 윤곽 영상신호 부호화 장치
US6212237B1 (en) 1997-06-17 2001-04-03 Nippon Telegraph And Telephone Corporation Motion vector search methods, motion vector search apparatus, and storage media storing a motion vector search program
KR100251548B1 (ko) * 1997-11-01 2000-04-15 구자홍 디지털영상을위한움직임추정장치및방법
US6137837A (en) 1998-01-23 2000-10-24 Motorola, Inc. Motion estimation for digital video with reduced number of search window pixels
US6195389B1 (en) 1998-04-16 2001-02-27 Scientific-Atlanta, Inc. Motion estimation system and methods
JP2000069481A (ja) 1998-08-21 2000-03-03 Kdd Corp 動きベクトル検出装置
TW444507B (en) 1998-10-22 2001-07-01 Sony Corp Detecting method and device for motion vector
US6418166B1 (en) 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US6222883B1 (en) 1999-01-28 2001-04-24 International Business Machines Corporation Video encoding motion estimation employing partitioned and reassembled search window
WO2000070879A1 (en) 1999-05-13 2000-11-23 Stmicroelectronics Asia Pacific Pte Ltd. Adaptive motion estimator
KR100677082B1 (ko) 2000-01-27 2007-02-01 삼성전자주식회사 움직임 추정기
EP1152621A1 (en) 2000-05-05 2001-11-07 STMicroelectronics S.r.l. Motion estimation process and system.
US6876703B2 (en) 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
WO2002032145A1 (en) 2000-10-13 2002-04-18 Nanyang Technological University Centre For Signal Processing A hexagon-based fast search method for block motion estimation in video encoding

Also Published As

Publication number Publication date
KR20050012794A (ko) 2005-02-02
TWI286906B (en) 2007-09-11
US20030231712A1 (en) 2003-12-18
MY139912A (en) 2009-11-30
CN1663280A (zh) 2005-08-31
WO2003107680A2 (en) 2003-12-24
US7817717B2 (en) 2010-10-19
TW200402236A (en) 2004-02-01
JP2005530421A (ja) 2005-10-06
WO2003107680A3 (en) 2004-02-19
AU2003238294A1 (en) 2003-12-31
EP1514424A2 (en) 2005-03-16

Similar Documents

Publication Publication Date Title
KR100960847B1 (ko) 비디오 인코딩을 위한 모션 추정 기술
US7359559B2 (en) Video encoding techniques
KR100955152B1 (ko) 비디오 인코딩을 위한 다차원 인접 블록 예측
KR100937616B1 (ko) 계산적으로 제약된 비디오 인코딩
KR100964515B1 (ko) 비디오 인코딩을 위한 비-정수 픽셀 공유
JP2008523724A (ja) 動画像符号化のための動き推定技術
JPH09179987A (ja) 動きベクトル検出方法及び動きベクトル検出装置
KR101349111B1 (ko) 다중 참조 영상 검색 방법
KR100987581B1 (ko) 고속 움직임 추정을 위한 부분 블록정합 방법
KR101356821B1 (ko) 움직임 추정 방법
KR20120111516A (ko) 분류기를 이용한 움직임 벡터 추정 방법 및 이러한 방법을 사용하는 장치
Soongsathitanon et al. A novel orthogonal logarithmic search algorithm for low-bit-rate video coding
JP2006261950A (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
LAPS Lapse due to unpaid annual fee