KR20040016878A - 서브 픽셀 움직임 추정을 위한 방법 및 장치 - Google Patents

서브 픽셀 움직임 추정을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20040016878A
KR20040016878A KR10-2003-7015975A KR20037015975A KR20040016878A KR 20040016878 A KR20040016878 A KR 20040016878A KR 20037015975 A KR20037015975 A KR 20037015975A KR 20040016878 A KR20040016878 A KR 20040016878A
Authority
KR
South Korea
Prior art keywords
subpel
search
pixel
candidate
block
Prior art date
Application number
KR10-2003-7015975A
Other languages
English (en)
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 KR20040016878A publication Critical patent/KR20040016878A/ko

Links

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
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Landscapes

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

Abstract

본 발명은 픽셀 블록의 서브 펠 움직임 추정 방법 및 장치를 제공한다. 픽셀 블록의 움직임 추정 프로세스 동안의 다양한 풀 펠과 서브 펠 서치 사이에서 잉여인 서치 포인트는 버려진다. 각 잉여인 서치 포인트에서 블록 또는 서브 블록에 대한 매칭 코스트는 계산되지 않고 따라서 저장되지 않는다.

Description

서브 픽셀 움직임 추정을 위한 방법 및 장치{METHODS AND APPARATUS FOR SUB-PIXEL MOTION ESTIMATION}
상당히 많은 양의 디지털 데이터가 디지털 텔레비전 시스템 등에서 송신되어야 한다. 디지털 텔레비전 신호는 비디오, 오디오 및, 다른 데이터[전자 프로그래밍 가이드(Electronic Programming Guide;EPG)등과 같은]를 포함한다. 그러한 디지털 신호의 효율적인 방송을 제공하기 위해, 송신되어야 하는 데이터의 양을 최소화하도록 디지털 신호를 압축하는 것이 유리하다.
텔레비전 신호의 비디오 영역은 함께 모여서 동영상을 제공하는 비디오 "프레임(frame)"의 시퀀스(sequence)로 이루어진다. 디지털 텔레비전 시스템에서, 비디오 프레임의 각 라인은 연속된 디지털 데이터 비트, 즉 픽셀(여기서는 "pels"이라고도 함)에 의해 정의된다. 각 비디오 프레임은 2개의 필드(field)로 만들어지는데, 각각은 프레임 라인의 반을 포함한다. 예컨대, 첫번째 또는 홀수 필드는 비디오 프레임의 모든 홀수번째의 라인을 포함하지만, 두번째 또는 짝수 필드는 그 비디오 프레임의 짝수번째의 라인을 포함한다. 텔레비전 신호의 각 비디오 프레임을 정의하기 위해서 많은 양의 데이터가 필요하다. 예컨대, 내셔널 텔레비전 표준 위원회(National Television Standards Committee;NTSC) 텔레비전 신호의 하나의 비디오 프레임을 제공하기 위해서 7.4 메가비트(megabit)가 필요하다. 이것은 빨강, 녹색 및, 파랑의 각 주요 컬러를 위해 480 라인 x 640 픽셀 디스플레이가 8비트의 강도값(intensity)과 함께 사용된다는 것을 가정한다. 고해상도 텔레비전은 각 비디오 프레임을 제공하기 위해 실질적으로 더 많은 데이터를 필요로 한다. 이러한 데이터 양을 감당하기 위해서, 데이터는 압축되어야 한다.
디지털 비디오 압축 기술은 종래의 통신 채널로 디지털 비디오 신호의 효율적인 송신을 가능하게 한다. 그러한 기술은 비디오 신호에서 중요한 정보의 더 효율적인 표시를 유도하기 위해 인접한 픽셀 사이의 상관관계(correlation)를 이용하는 압축 알고리즘(compression algorithms)을 사용한다. 가장 우수한 압축 시스템은 더 간결한 데이터를 위해서 공간 상관관계를 이용할 뿐만 아니라, 인접한 프레임 사이의 유사성을 이용할 수 있다. 그러한 시스템에서, 움직임 보상[차동 인코딩(differential encoding)이라고 알려진]이 실제 프레임과 실제 프레임의 예상(prediction) 사이의 차이만을 송신하기 위해 사용된다. 예상은 동일한 비디오 시퀀스의 이전(또는 다음) 프레임으로부터 유도된다. 그러한 움직임 보상 시스템(motion compensation system)에서, 움직임 벡터는 예컨대, 현재 프레임으로부터의 픽셀 데이터 블록을 이전 프레임의 유사한 데이터 블록과 비교함으로써 유도된다. 움직임 추정기(motion estimator)는 이전 프레임으로부터의 데이터 블록이현재 프레임에서 사용되기 위해 어떻게 조정되어야만 하는가를 결정한다.
움직임 보상은 비디오 코덱(codec)에서 비디오 프레임(및/또는 필드) 사이의 임시적인 잉여(temporal redundancy)를 이용하기 위한 수단으로서 널리 사용된다. 대부분의 표준에 기초한 비디오 디코더(예컨대, 동영상 전문가 그룹(Moving Picture Experts' Group;MPEG) 표준 1 및 2를 구현하는 것들)는 픽셀 블록 당 1개 또는 2개의 병진(translational) 움직임 벡터(MV)를 허용한다. 이러한 MV는 비디오 인코더에서 움직임 추정(ME) 프로세스에 의해 계산된다. 가장 신뢰할만한 ME 알고리즘, 풀 서치 블록 매칭 알고리즘(Full Search Block Matching Algorithm;FS-BMA)은 기준으로서 참조 소프트웨어에서 널리 사용된다. FS-BMA는 서치 영역에서 모든 가능한 후보(candidate)와 매치하려고 하기 때문에 높은 계산 복잡도를 필요로 하고, 따라서 실시간 비디오 인코더에 대해서는 실용적이지 않게 된다. 다양한 "빠른" 서치 알고리즘이 실시간 인코더에서 제안되었고 사용되었다. 이러한 대부분의 기술은 전체 서치 수를 감소시키기 위해 서치 영역의 부분만을 이용함으로써 서치의 질을 희생한다. 그러나, 현재 대부분의 빠른 알고리즘은 풀 펠 해상도(full pel resolution) ME에 에 초점을 맞추고, 해프 펠(half pel)에는 적용할 수 없다. 최종적인 해프 펠 MV를 달성하기 위해, 인코더는 빠른 알고리즘으로 인한 풀 펠 주위의 해프 펠 위치에서 풀 서치를 수행한다.
움직임 보상된 차이를 최소화하기 위해, 일반적으로 비디오 코덱은 조밀한 움직임 필드와 미세한 MV 해상도를 이용해야 한다. 모든 8x8 픽셀 블록에 대해 해프 펠 정확도를 갖는 단일 MV는 현재 비디오 코덱에 보통 사용된다. 더 높은 정확도(8번째 픽셀 까지)를 갖는 더 작은 블록 사이즈(2x2와 4x4)를 위한 MV는 작은 목적물의 움직임을 추적하는데 유용하고, 그러한 시스템은 현재 차세대 비디오 코덱에서 개발되고 있다. MV 해상도가 증가할수록 서치 포인트의 수가 지수함수적으로 증가하므로, MV가 서브 픽셀 해상도를 가질 때 ME의 복잡성은 더해진다. 이러한 부가적인 서치 포인트를 처리하기 위해, 대부분의 실시간 인코더는 모든 서브 픽셀 서치 포인트에서 FS-BMA를 수행하지 않는 계층적 시도(hierarchical approach)를 채택한다. 대신에, 풀 펠 위치와 일치하는 서치 포인트 만이 먼저 서치된다. 풀 펠 서치에서 최적으로 매치된 후보를 둘러싸는 해프 펠 위치에서의 서치 포인트가 이어서 서치된다. 이러한 프로세스는 원하는 정확도가 달성될 때 까지 반복된다. 풀 펠 ME를 위한 빠른 ME 알고리즘이 적용된다고 할지라도 대부분의 인코더가 이러한 레벨에서 풀 서치를 수행하기 때문에 서브 픽셀 ME의 복잡성은 매우 중요하다. 예컨대, 아래에 설명되는 베이스라인(baseline) ME 방법에서, 이것은 모든 16x16 블록에 대해 18 서브 픽셀 서치 포지션에 이른다.
참조 소프트웨어 구현에서 보통 사용되는 베이스라인 ME 방법은 3가지 주요 작업을 포함한다. 즉, 16x16 블록에 대한 풀 펠 서치[16x16 블록은 일반적으로 매크로블록(macroblock), 또는 MB로 알려져 있다], 16x16 블록에 대한 해프 펠 서치 및, 8x8 서브 블록에 대한 해프 펠 서치이다. 도 1은 그러한 종래의 베이스라인 방법[도 1에서 경계 효과(boundary effect)는 무시된다]의 예를 보여준다. 도 1에서, "X"는 첫번째 작업으로부터의 서치 포인트를 나타내고, "+"는 두번째 작업으로부터의 서치 포인트를 나타내며, "O"는 세번째 작업으로부터의 서치 포인트를 나타낸다. 첫번째 작업(16x16 풀 펠 서치)은 최적으로 매치되는 블록을 찾기 위해 참조 프레임 서치 윈도우의 풀 펠 포지션에서 현재 블록을 모든 후보와 매치시킨다. 첫번째 작업에서 최적으로 매치된 블록은 도 1에서 참조부호 "10"으로 나타내어 진다. 첫번째 작업을 위한 서치 윈도우는 현재 블록으로서 동일한 좌표에서 중심에 있고, 사용자에 의해 지시된 양 만큼 각 방향으로 확장된다. 두번째 작업(16x16 해프 펠 서치)은 도 1에서 참조부호 "20"으로 표시된 새로운 최적 매치된 해프 펠 블록의 위치를 정하기 위해 서치 윈도우의 해프 펠 포지션에서 현재 블록을 모든 후보와 매치시킨다. 두번째 작업 서치의 서치 윈도우 중심은 첫번째 작업으로부터의 최적 매치된 블록(10)의 포지션에 있고, 각 사이드(side)는 전체 9개의 후보 블록(즉, 도 1에서 "+"로 표시된 9개의 서치 포인트)에 대해 1/2 펠 만큼 확장된다. 세번째 작업(8x8 해프 펠 서치)은 4개의 최적 매치된 8x8 해프 펠 서브 블록(도 1에서 30, 32, 34, 36으로 표시된)을 얻기 위해 현재 블록의 4개 서브 블록(현재 16x16 블록을 4개의 균등한 8x8 서브 블록으로 나눔으로써 얻어진)을 그들의 각 윈도우에서 해프 펠 포지션에서의 모든 후보와 매치시킨다. 각 세번째 작업의 서치에 대한 서치 윈도우 중심은 두번째 작업에서의 최적 매치된 블록(20)의 대응하는 서브 블록 위치에 있고, 각 사이드는 전체 9개의 후보 블록에 대해 1/2 펠(+/- 1*0.5 펠) 만큼 확장된다.
서치의 질은 향상시키거나 유지하면서, 종래 기술에 의한 ME 프로세스에 비해 수행되는 서치와 계산의 수가 감소된 ME 알고리즘을 제공하는 것이 바람직하다. 상기 서술된 베이스라인 방법에서 수행된 적어도 2개의 서치 사이에서 잉여 서치포인트를 버림으로써(즉, 첫번째와 세번째 작업, 두번째와 세번째 작업, 첫번째와 두번째 작업 중 하나 사이의 잉여 서치 포인트를 버림으로써), 서치와 계산의 수를 감소시키는 것은 더욱 바람직하다. 1/2 펠, 1/4 펠, 1/8 펠, 그리고 그 이상의 더 높은 서브 픽셀 해상도로 쉽게 확장할 수 있는 ME 프로세스를 제공하는 것은 더욱 바람직하다.
본 발명의 방법 및 장치는 다음의 그리고 다른 장점을 제공한다.
본 발명은 일반적으로 디지털 데이터의 압축에 관한 것이다. 특히, 본 발명은 디지털 비디오 신호를 인코딩하기 위해 서브 픽셀 움직임 추정을 제공하는 방법 및 장치에 관한 것이다.
도 1은 종래의 움직임 추정 기술을 나타낸 도면,
도 2는 도 1에 의한 종래의 움직임 추정 기술의 작업 사이의 잉여를 나타낸 도면,
도 3은 도 1에 의한 종래의 움직임 추정 기술의 작업 사이의 다른 잉여를 나타낸 도면,
도 4는 본 발명의 일실시예를 나타낸 도면,
도 5는 본 발명의 다른 실시예를 나타낸 도면,
도 6은 본 발명에 따른 인코더의 블록 다이어그램을 나타낸 도면,
도 7a 및 도 7b는 본 발명의 두번째 작업(도 7a)과 본 발명의 세번째 작업(도 7b)의 플로우차트를 나타낸 도면이다.
본 발명은 디지털 비디오 신호를 인코딩하기 위해 서브 픽셀 움직임 추정을 제공하는 방법 및 장치에 관한 것이다. 첫번째 작업에서, 두번째 비디오 프레임의 현재의 픽셀 블록에 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에 있는 다수의 후보 픽셀 블록으로부터 최적 매치된 풀 펠 픽셀 블록을 찾기 위해 첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역에서 풀 펠 서치가 수행된다. 현재의 픽셀 블록은 두번째 작업에서 사용되기 위해 N개의 현재 픽셀 서브 블록으로 나뉘어진다. 두번째 작업에서, 두개의 서치가 수행된다: (1) N개의 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 두번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 서브 블록으로부터 N개의 개별 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해 첫번째 비디오 프레임의 두번째 미리 정의된 서치 영역에서 첫번째 서브 펠 서치 및; (2) 두번째 비디오 프레임의 현재의 픽셀 블록에 가장 가까운 매치인 두번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 블록으로부터 최적 매치된 서브 펠 픽셀 블록을 찾기 위해 두번째 미리 정의된 서치 영역에서 두번째 서브 펠 서치. 세번째 작업에서, N개의 현재 픽셀 서브 블록 각각에 대해 세번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 서브 블록으로부터 새로운 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해 세번째 미리 정의된 서치 영역에서 N개의 개별 서브 펠 서치가 수행된다. 다음의 적어도 하나에 대한 서치 포인트와 매칭 코스트가 저장된다: (1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트 및; (4) 세번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트.
그러나, 잉여인 서치 포인트에 대한 매칭 코스트가 계산되지 않고 저장되지 않도록, (1) 세번째 작업 동안의 첫번째와 세번째 작업; (2) 두번째 작업 동안의 첫번째와 두번째 작업 및; (3) 세번째 작업 동안의 두번째와 세번째 작업 중 적어도 하나 사이에서 잉여인 서치 포인트는 저장되지 않는다. 이러한 방법으로, 서치 시간과 프로세싱 코스트가 종래 기술에 의한 풀 서치에 비해 감소된다.
본 발명이 프레임 사이의 서치와 관련하여 여기에서 서술되었다고 하더라도, 서치는 동일한 프레임의 다른 필드 사이에서도(또는 번갈아) 행해질 수 있다는 것을 이해해야 한다. 발명의 상세한 설명과 청구범위에서 "프레임"이란 용어의 사용은 모든 구현, 즉 다른 프레임 사이의 서치 또는 동일한 프레임 또는 다른 프레임의 다른 필드 사이의 서치를 포함하기 위함이다.
이하, 예시도면을 참조하여 본 발명에 따른 실시예를 상세히 설명한다.
다음의 상세한 설명은 바람직한 실시예만을 제공하고, 본 발명의 범위, 적용 가능성, 또는 구성을 한정하지 않는다. 대신에, 바람직한 실시예의 다음의 상세한 설명은 당업자에게 본 발명의 바람직한 실시예를 구현하는데 가능한 설명을 제공한다. 첨부된 청구항에서 제시되는 본 발명의 기본 개념과 범위를 벗어나지 않는 한 기능과 구성요소의 배열에서 다양한 변화가 가능하다는 것을 이해해야 한다.
일반적으로, 본 발명은 도 1을 참조하여 상기에서 서술한 베이스라인 방법의 첫번째, 두번째, 세번째 작업의 다양한 풀 펠(full pel) 및 서브 펠(sub-pel) 서치사이의 잉여 서치 포인트를 버림으로써 개선된 움직임 추정 프로세스를 제공한다. 각각의 그러한 잉여 서치 포인트(redundant search point)에서 블록 또는 서브 블록에 대한 매칭 코스트(matching cost)가 계산되지 않고, 따라서 저장되지 않는다. 예컨대, 도 1을 참조하여 설명된 베이스라인 ME 알고리즘의 두번째 및 세번째 작업 사이에 수많은 숨겨진 잉여가 존재한다. 그러한 잉여의 일 예는 두번째 작업에서 현재 블록(움직임 추정을 이용하여 인코드될 블록)과 그것의 최적 매치된(best matched) 블록 사이의 매칭 및, 세번째 작업에서 현재 블록과 윈도우 중심에서의 블록 사이의 4개의 매칭이다. 도 2는 세번째 작업에서의 4개의 매칭이 동일한 오프셋(offset)을 가지고 함께 수행된다는 가정 하에 덜 위장된(less disguised) 방식에 의한 잉여를 나타낸다. 도 2는 두번째와 세번째 작업 사이의 잉여 서치 포인트를 나타낸다. "X"는 첫번째 작업으로부터의 서치 포인트를 나타내고(즉, 최적 매치된 블록 10), "+"는 두번째 작업으로부터의 서치 포인트를 나타내며, "O"는 세번째 작업으로부터의 서치 포인트를 나타낸다. 화살표는 두번째 작업의 결과에 기인한 움직임 벡터를 나타낸다(즉, 중심이 첫번째 작업 풀 펠 서치로부터 최적 매치된 블록(10)에 위치한 서치 윈도우에서 9개의 후보 블록으로부터의 최적 매치된 16x16 해프 펠 블록). 잉여가 3개의 다른 케이스, 즉 중심(center)에서, 사이드(side)에서, 코너(corner)에서 그룹화될 수 있다는 것은 도 2로부터 명백하다. 첫번째 케이스(중심)에서, 두번째 작업의 최적 매치된 블록이 중심에 있기 때문에(미도시), 세번째 작업의 모든 서치 포인트는 잉여이다. 두번째 케이스(사이드)에서, 최적 매치된 블록(10)은 세번째 작업의 서치 윈도우(12;search window)의 사이드에 있고, 세번째 작업에서 6개의 서치 포인트는 잉여이다. 세번째 케이스(코너)에서, 두번째 작업에서 최적 매치된 블록(10)이 세번째 작업에서 서치 윈도우의 코너에 있기 때문에, 세번째 작업에서 4개의 서치 포인트는 잉여이다. 두번째 작업에서 최적 매치된 블록(10)이 동일한 확률로 발생한다고 가정하면, 세번째 작업에서 잉여 서치 포인트는 9개의 가능한 포지션(position) 중에서 (9+6+6+6+6+4+4+4+4)/9=5.4 포인트이고, 또는 약 60.5% 잉여이다.(두번째와 세번째 작업에 대한 서치 범위가 +/-1*0.5 펠 대신 +/-2*0.5 펠이라면, 잉여는 약 57.8%이다.) 어쨋든, 잉여는 44.4%(4개의 잉여 포인트)와 100%의 범위에 있다.
이러한 발명의 개념은 첫번째, 두번째, 세번째 사이의 잉여를 제거하기 위해 적용될 수 있다. 도 3은 도 2에서 사용된 것과 동일한 가정 하에서의 이러한 잉여를 나타낸다. 또한, 첫번째와 두번째 작업으로부터의 정보를 결합하면 3가지 다른 케이스가 존재한다. "X"는 첫번째 작업으로부터의 서치 포인트를 나타내고, "+"는 두번째 작업으로부터의 서치 포인트를 나타내며, "O"는 세번째 작업으로부터의 서치 포인트를 나타낸다. 첫번째 작업으로부터 최적 매치된 블록은 블록(10)이다. 첫번째 케이스(중심)에서, 두번째 작업의 최적 매치된 블록이 중심에 있고, 첫번째 작업으로부터의 정보가 이 케이스에서는 도움이 되지 않으므로 어떠한 서치도 필요하지 않다. 두번째 케이스(사이드)에서, 두번째와 세번째 작업 사이의 상기 언급된 6개의 잉여(도 2)와 비교할 때 7개의 잉여가 존재한다. 유사하게, 세번째 케이스(코너)에서, 세번째 작업에서 이제 7개의 잉여가 존재한다. 두번째 작업에서의 최적 매치된 블록이 동일한 확률로 발생한다고 다시 가정하면, 세번째 작업에서의 잉여서치 포인트는 9개의 가능한 포인트 중에서 (9+7+7+7+7+7+7+7+7)/9=7.2 포인트이고, 또는 약 80.2% 잉여이다. 사실, 세번째 작업에서는 최대 2개의 새로운 포지션이 서치되어야 한다. 잉여 범위는 77.8% 와 100% 사이라고 예상된다.
도 1 내지 도 3은 종래 기술에 의한 움직임 추정방법에서의 잉여를 보여준다는 것을 인식해야 하며, 이것은 단지 비교를 위해 여기에 서술되었다. 도 1 내지 도 3과 관련하여 서술된 특정한 서치 범위, 서치 해상도 및, 블록 사이즈는 단지 예를 위해 제공되었다.
도 4에 나타낸 실시예에서는, 첫번째 비디오 프레임(50)과 두번째 비디오 프레임(60)으로부터의 픽셀 블록 사이의 움직임 추정을 위한 방법이 제공된다. 당업자는 "첫번째" 비디오 프레임과 "두번째" 비디오 프레임이라는 용어가 반드시 비디오 스트림(stream)에서, 특히 MPEG 시스템에서 프레임의 타이밍을 나타내는 것이 아니라는 것을 인식할 것이다. "첫번째"와 "두번째" 호칭은 단지 동일한 시퀀스에서 두개의 비디오 프레임 사이를 구별짓기 위해서 여기에 사용되며, 때로는 첫번째 비디오 프레임이 두번째 비디오 프레임을 앞서거나, 두번째 비디오 프레임의 다음에 올 수 있다는 것을 인식해야 한다. 더욱이, 때로는 첫번째와 두번째 비디오 프레임 사이에 프레임이 존재할 수 있다. 또한, 상기 언급한 바와 같이, 여기에서 그리고 청구범위에서 사용된 "프레임"이란 용어는 필드 사이의 움직임 추정을 포함하도록 의도되고, 동일한 또는 다른 프레임이 될 수 있다.
본 발명에 따르면, 두번째 비디오 프레임(60)으로부터의 현재 픽셀 블록(즉, 인코드될 픽셀 블록)은 첫번째 작업(100)에서 적응적으로 프로세스된다. 현재의 픽셀 블록과, 현재 픽셀 블록의 현재의 픽셀 서브 블록은 두번째 작업(200)에서 적응적으로 프로세스된다. 이어서 현재의 픽셀 서브 블록은 세번째 작업(300)에서 적응적으로 프로세스된다. 결과적으로, 첫번째 비디오 프레임(50)의 서치 포인트는 (1) BMB로 표시된 첫번째 작업(100)으로부터의 픽셀 블록; (2) 상기 풀 블록이 BMSPB로 표시되고, 상기 서브 블록이 BMSB1,BMSB2,BMSB3,…,BMSBn으로 표시된, 두번째 작업(200)으로부터의 픽셀 블록과 복수의 픽셀 서브 블록 및; (3) NBMSB1,NBMSB2,NBMSB3,…,NBMSBn으로 표시된, 세번째 작업(300)으로부터의 복수의 픽셀 서브 블록에 대해 발견된다. 이러한 블록과 서브 블록(BMB,BMSPB,BMSB1,BMSB2,BMSB3,…,BMSBn,NBMSB1,NBMSB2,NBMSB3,…,NBMSBn)은 각 작업의 완료에 따라 얻어진 현재의 픽셀 블록 또는 현재의 픽셀 서브 블록에 대해 가장 낮은 매칭 코스트를 제공한다. 매칭 코스트는 첫번째, 두번째, 세번째 작업 동안 찾아진 첫번째 프레임(50)으로부터의 블록 및 서브 블록(후보 블록 또는 서브 블록)과, 두번째 프레임(60)으로부터의 현재 블록 또는 현재 서브 블록 사이에서의 왜곡의 측정이다.
BMB 표시는 첫번째 작업에서 얻어진 최적 매치된 풀 펠 블록을 나타낸다. BMSPB 표시는 두번째 작업에서 얻어진 최적 매치된 서브 펠 블록을 나타낸다. BMSB1,BMSB2,BMSB3,…,BMSBn 표시는 두번째 작업에서 얻어진 N 개의 최적 매치된 서브 펠 서브 블록을 나타낸다. NBMSB1,NBMSB2,NBMSB3,…,NBMSBn 표시는 세번째 작업에서 얻어진 N 개의 새로운 최적 매치된 서브 펠 서브 블록을 나타낸다.
이러한 프로세스 도중, (1) 세번째 작업(300) 동안의 첫번째 및 세번째작업(100,300); (2) 두번째 작업(200) 동안의 첫번째 및 두번째 작업(100,200); (3) 세번째 작업(300) 동안의 두번째 및 세번째 작업(200,300) 중 적어도 하나 사이에서 잉여인 서치 포인트는 버려진다. 결과적으로, 잉여인 서치 포인트에 대해 매칭 코스트가 계산되지 않으므로, 서치 시간과 프로세싱 코스트(cost)가 감소된다. 도 2 및 도 3을 참조하여 상기에서 설명한 바와 같이, 3개의 작업 중 서치 사이의 잉여인 서치 포인트의 수가 77%에서 100% 까지로 높기 때문에, 시간과 프로세싱 절약은 상당할 수 있다.
첫번째 작업(100)에서, 풀 펠 서치는 두번째 비디오 프레임(60)에서 현재 픽셀 블록에 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에 있는 다수의 후보 픽셀 블록으로부터 최적 매치된 풀 펠 픽셀 블록(BMB)을 찾기 위해 첫번째 비디오 프레임(50)의 첫번째 미리 정의된 서치 영역에서 수행될 수 있다. 현재 픽셀 블록은 두번째 작업(200)에서 사용하기 위해 N 개의 현재 픽셀 서브 블록으로 나뉘어질 수 있다. 두번째 작업(200)에서, 2번의 서치가 수행된다:(1) N 개 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 두번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 서브 블록으로부터 N 개의 별도 최적 매치된 서브 펠 픽셀 서브 블록(예컨대, BMSB1,BMSB2,BMSB3,…,BMSBn)을 찾기 위해 첫번째 비디오 프레임의 두번째 미리 정의된 서치 영역에서의 첫번째 서브 펠 서치와; (2) 두번째 비디오 프레임(60)에서 현재 픽셀 블록에 가장 가까운 매치인 두번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 블록으로부터 최적 매치된 서브 펠 픽셀 블록 BMSPB를 찾기 위해 두번째 미리 정의된 서치 영역에서의 두번째 서브 펠 서치. 세번째 작업(300)에서, N 개의 현재 픽셀 서브 블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn)의 각각에 대해 세번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 서브 블록으로부터 새로운 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해 N 개의 개별 서브 펠 서치가 세번째 미리 정의된 서치 영역에서 수행된다.
소정의 서치 영역에서 후보 블록 또는 서브 블록의 수는 블록과 서브 블록과 서치 영역의 해상도(예컨대, 풀 펠, 해프 펠, 쿼터(quarter) 펠, 등) 뿐만 아니라, 서치 영역의 사이즈와 블록 또는 서브 블록의 사이즈에 의존한다는 것을 알아야 한다. 예컨대, +/-0.5 펠의 서치 범위는 9개의 후보 8x8 해프 펠 픽셀 서브 블록에 대응하는 9개의 서치 포인트를 제공한다.
세번째(300) 작업에서의 새로운 최적 매치된 서브 펠 서브 블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn)은 세번째 작업(300)에서의 각각의 후보 서브 펠 서브 블록을 세번째 미리 정의된 서치 영역에서의 다른 후보 서브 펠 서브 블록 뿐만 아니라, 두번째(200) 작업으로부터의 각 최적 매치된 서브 펠 서브 블록(BMSB1,BMSB2,BMSB3,…,BMSBn)과 비교함으로써 결정된다. 당업자라면 두번째 서치 동안 발견된 최적 매치된 서브 펠 서브 블록과 비교할 때, 세번째 서치 동안 발견된 더 최적으로 매치된 서브 블록이 존재할 수 없다는 것을 이해할 것이다. 그러한 경우에, 세번째 작업에서 하나 이상의 새로운 최적 매치된 서브 펠 서브 블록이 두번째 작업으로부터의 상응하는 최적 매치된 서브 펠 서브 블록을 포함할 것이다. 더욱이, 두번째와 세번째 미리 정의된 서치 영역이 중첩되는 곳에서, 세번째작업으로부터의 하나 이상의 후보 서브 펠 서브 블록이 두번째 작업으로부터의 하나 이상의 N 개의 최적 매치된 서브 펠 서브 블록과 동일할 것이다. 이러한 예에서, 세번째 작업으로부터의 하나 이상의 새로운 최적 매치된 서브 펠 서브 블록이 두번째 작업으로부터의 상응하는 최적 매치된 서브 펠 서브 블록을 포함할 것이다.
(1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록(예컨대, BMB)에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록(예컨대, BMSB1,BMSB2,BMSB3,…,BMSBn)에 대한 서치 포인트와 매칭 코스트 ;(3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록(예컨대, BMSPB)에 대한 서치 포인트와 매칭 코스트; (4) 세번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록(예컨대, NBMSB1,NBMSB2,MBMSB3,…,BMSBn)에 대한 서치 포인트와 매칭 코스트 중 적어도 하나가 저장될 것이다. 이러한 저장된 서치 포인트는 잉여가 아닌 서치 포인트이고, 어느 블록과 서브 블록이 가장 낮은 매칭 코스트를 갖는가(즉, 어느 것이 현재 블록 또는 현재 서브 블록에 가장 가까운 매치인가)를 결정하기 위해 각 서치 포인트에 대한 상응하는 매칭 코스트는 서로 비교될 수 있다(즉, 블록과 비교되는 블록 및 서브 블록과 비교되는 서브 블록). 잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트는 계산되지 않고 저장되지 않는다.
당업자는 단순히 각각의 작업으로부터의 최적 매치된 블록과 서브 블록 뿐만 아니라, 모든 잉여가 아닌 후보 블록과 서브 블록이 저장되도록 발명이 구현될 수 있다는 것을 인식할 것이다. 예컨대, 첫번째 작업으로부터의 모든 풀 펠 후보 픽셀블록이 저장될 것이고, 첫번째 작업으로부터의 후보 풀 펠 블록에 대해 잉여가 아닌 두번째 작업으로부터의 모든 후보 서브 펠 픽셀 블록이 저장될 것이고, 두번째 작업으로부터의 모든 후보 서브 펠 픽셀 서브 블록이 저장될 것이고, 두번째 작업으로부터의 후보 서브 펠 픽셀 블록에 대해 잉여가 아닌 세번째 작업으로부터의 모든 후보 서브 펠 픽셀 서브 블록이 저장될 것이다. 이러한 방법은 여전히 더 빠른 서치 타임을 제공하면서도 상기 언급된 종래 기술에 의한 "풀 서치"와 매우 비슷하다. 또한, 잉여가 아니라면, 각 작업에서 최적 매치된 블록 또는 서브 블록이라고 결정되는 블록과 서브 블록 만이 저장될 것이다. 예컨대, 첫번째 작업(즉, BMB)으로부터의 최적 매치된 풀 펠 픽셀 블록, 두번째 작업(즉, BMSPB,BMSB1,BMSB2,BMSB3,…,BMSBn)으로부터의 N 개의 개별 최적 매치된 서브 펠 픽셀 서브 블록과 최적 매치된 서브 펠 픽셀 서브 블록, 세번째 작업(즉, NBMSB1,NBMSB2,NBMSB3,…,NBMSBn)으로부터의 N 개의 개별 새로운 최적 매치된 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트 만을 저장하도록 구현될 것이다. 이러한 방법은 종래 기술에 의한 풀 서치 방법에 비해 서치 시간에 있어서 실질적인 개선을 제공하고, 동일한 또는 더 우수한 결과를 제공한다.
두번째 비디오 프레임에서 현재의 픽셀 블록을 인코딩 하기 위한 하나 이상의 움직임 벡터는 (1) 세번째 작업으로부터의 N 개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn); 또는 (2) 두번째 작업으로부터의 최적 매치된 서브 펠 픽셀 블록(BMSPB) 중 하나에 기초하여 계산될 수 있다. 세번째 작업으로부터의 N 개의 새로운 최적 매치된 서브 펠 서브블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn) 또는 두번째 작업으로부터의 최적 매치된 서브 펠 블록(BMSPB)이 사용되는가는 최적 매치된 서브 펠 블록의 매칭 코스트와 N 개의 새로운 최적 매치된 서브 펠 서브 블록의 매칭 코스트의 합의 비교에 기초한다. 예컨대, N 개의 새로운 최적 매치된 서브 펠 서브 블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn)에 대한 매칭 코스트의 합이 최적 매치된 서브 펠 블록(BMSPB) 보다 작다면, N 개의 새로운 최적 매치된 서브 펠 서브 블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn)은 움직임 벡터를 계산하기 위해 사용될 것이고, 반대로도 마찬가지이다. 그러나, 단일 블록을 인코딩하는 것과 비교할 때 4개의 서브 블록을 인코딩하는데 더 많은 비트가 필요하다는 사실 때문에, 본 발명은 서브 블록의 매칭 코스트의 합이 블록의 매칭 코스트 보다 단지 약간 작은 경우라면 블록을 인코딩하는 것을 더 선호하여 구현될 것이다.
첫번째 미리 정의된 서치 영역은 두번째 비디오 프레임(60)의 현재 픽셀 블록에 상응하는 위치에서 첫번째 비디오 프레임(90)의 중심에 두어질 것이다. 두번째 미리 정의된 서치 영역은 첫번째 작업 동안 발견된 최적 매치된 픽셀 블록(BMB)에서 중심에 두어질 것이다. 세번째 미리 정의된 서치 영역은 두번째 작업 도중 발견된 최적 매치된 서브 펠 픽셀 블록(BMSPB)에서 중심에 두어질 것이다. 세번째 미리 정의된 서치 영역은 N 개의 개별 서브 펠 서브 블록 서치의 각각에 상응하는 N 개의 서치 윈도우를 가질 것이다.
예컨대, 도 4에 도시된 실시예에서, 세번째 미리 정의된 서치 영역은 두번째 작업으로부터의 블록(BMSPB)에서 중심에 있는 첫번째 프레임(50)의 픽셀 블록을 포함할 것이다. 도 4가 N 개의 서브 블록이 풀 블록을 구성한다고 가정하므로, 세번째 미리 정의된 서치 영역의 N 섹션에 상응하여 N 개의 서치 윈도우가 제공될 것이다. 도 4에 도시된 예에서, N 개의 서브 펠 서브 블록 서치가 두번째 작업(200)과 세번째 작업(300)의 양자에서 수행된다는 것을 인식해야 한다. 세번째 작업(300)에서의 각 서브 펠 서브 블록 서치는 각각의 서치 윈도우에서의 후보 서브 블록만의 사이와, 두번째 작업(200)으로부터의 최적 매치된 서브 블록 중 상응하는 하나와의 비교를 야기할 것이다. 예컨대, 새로운 최적 매치된 서브 펠 서브 블록(NBMSB1)이 되는 세번째 작업의 N 개의 서브 펠 서치의 첫번째는, N 개의 서치 윈도우의 첫번째에서의 모든 후보 서브 펠 서브 블록을, 두번째 작업(예컨대, BMSB1)에서 상응하는 최적 매치된 서브 펠 서브 블록과 먼저, 이어서 서치 윈도우의 상호간 후보 서브 블록과 차례로 비교한다. 매번 후보 서브 블록은, 서치에서 그 때 까지, 후보 블록이 되는, 새로운 최적 매치된 서브 펠 서브 블록에 대해 비교되고 있는 서브 블록 보다 더 좋은 매치이다.
첫번째 비디오 프레임(50)에서 첫번째 미리 정의된 서치 영역은 두번째 비디오 프레임(60)에서 현재 픽셀 블록의 상응하는 위치 주위의 일반 영역을 포함할 것이다. 두번째 미리 정의된 서치 영역은 최적 매치된 픽셀 블록을 넘어 적어도 하나의 서브 펠 만큼[예컨대, 첫번째 작업(100)에서 얻어진 블록(BMB)] 모든 방향으로 확장될 것이다. N 개의 서치 윈도우 각각은 두번째 작업(200) 동안 발견된 최적 매치된 서브 펠 블록(예컨대, BMSPB)으로부터 얻어진 각각의 서브 펠 픽셀 서브 블록을 넘어 적어도 하나의 서브 펠 만큼 모든 방향으로 확장될 것이다.
본 발명의 일실시예에서, 세번째 작업(300)으로부터의 복수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트는 N 개의 새로운 최적 매치된 서브 펠 서브 블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn)에 대한 서치 포인트와 매칭 코스트를 적어도 포함할 것이다. 이러한 실시예에서, 두번째 비디오 프레임에서 현재 픽셀 블록을 인코딩하기 위한 하나 이상의 움직임 벡터는 (1) 세번째 작업(300)으로부터의 N 개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn); 또는 (2) 두번째 작업(200)으로부터의 최적 매치된 서브 펠 픽셀 블록(BMSPB) 중 하나에 기초하여 계산될 것이다.
본 발명의 다른 실시예에서, (1) 첫번째 작업(100)으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업(200)으로부터의 복수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업(200)으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트 및; (4) 세번째 작업(300)으로부터의 복수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트의 각각이 저장된다. 잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않도록, (1) 첫번째와 세번째 작업; (2) 첫번째와 두번째 작업 및; (3) 두번째와 세번째 작업의 각각 사이에서 잉여인 서치 포인트는 버려진다.
교대로, 첫번째 작업(100)으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트는 저장된다. 이러한 실시예에서, 잉여인 서치 포인트에 위치한 후보 블록에 대한 매칭 코스트가 계산되지 않도록, 첫번째와 두번째 작업사이에서 잉여인 서치 포인트는 버려진다.
도 5에 도시된 바와 같은 본 발명의 다른 실시예에서, N 개의 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에 있는 다수의 후보 풀 펠 픽셀 서브 블록으로부터 N 개의 별도 최적 매치된 풀 펠 픽셀 서브 블록(BMFSB1,BMFSB2,BMFSB3,…,BMFSBn)을 찾기 위해, 첫번째 작업(100)은 첫번째 비디오 프레임(50)의 첫번째 미리 정의된 서치 영역에서 수행된 풀 펠 서치를 포함할 수도 있다. (1) 첫번째와 두번째 작업; (2) 첫번째와 세번째 작업 중 적어도 하나 사이에서 잉여인 서치 포인트가 버려질 수 있도록, 첫번째 작업(100)으로부터의 복수의 후보 풀 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트가 저장된다. 그러한 잉여 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트는 계산되지 않는다.
본 발명의 다른 실시예에서, 두번째 작업(200)으로부터의 복수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트가 저장된다. 이러한 실시예에서,잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않도록, 두번째와 세번째 작업 사이에서 잉여인 서치 포인트는 버려진다.
각 미리 정의된 서치 영역은 정사각형의 픽셀 블록, 직사각형의 픽셀 블록, 다이아몬드 모양의 픽셀 블록, 또는 불규칙적인 모양의 픽셀 블록이 될 수 있다. 그러나, 당업자라면 서치 영역의 특정한 모양은 발명의 개념에 결정적이지 않다는 것을 인식할 것이다. 본 발명은 변하는 사이즈와 모양을 갖는 서치 영역을 이용하여 구현될 수 있다.
두번째와 세번째 작업에 대해, 당업자라면 각 블록과 픽셀 서브 블록에 대한 첫번째 비디오 프레임(50)의 픽셀 데이터는 첫번째와 두번째 작업에 대한 서브 펠 해상도로 인터폴레이트될(interpolated) 필요가 있을 것이라는 것 또한 인식할 것이다.
본 발명의 일실시예에서, n과 m이 임의의 양의 정수이고 p가 임의의 분수일 때, 두번째 작업(200)의 서치 범위는 가로 방향으로 +/-n*p 펠, 세로 방향으로 +/-m*p 펠이 될 수 있다. 그러한 실시예에서, 두번째 미리 정의된 서치 영역 중심으로부터의 세번째 작업(300)의 서치 포인트 거리가 (1) 가로 방향에서 n*p 펠보다 작거나 동일하고; (2) 세로 방향에서 m*p 펠보다 작거나 동일한 경우, 세번째 작업(300)의 서치 포인트는 두번째 작업의 서치 포인트에 대해 잉여라고 생각된다. 잉여인 서치 포인트에 위치한 후보 블록에 대한 매칭 코스트는 계산되지 않는다. 이러한 실시예에서 서브 펠 서치는 (1) p가 0.5와 동일한 경우 1/2 펠 서치; (2) p가 0.25와 동일한 경우 1/4 펠 서치 또는; (3) p가 0.125와 동일한 경우 1/8 펠 서치 중 하나를 포함할 수 있다.
첫번째 작업(100)은 각 후보 블록과 현재의 픽셀 블록 사이의 매칭 코스트를 계산하는 것으로 구성될 수 있다. 최적 매치된 풀 펠 픽셀 블록(BMB)이 가장 작은 매칭 코스트를 제공하는 후보 픽셀 블록이도록, 각 후보 블록으로부터의 각 매칭 코스트는 이전에 발견된 가장 작은 매칭 코스트와 차례로 비교될 수 있다.
첫번째 서브 펠 서치에서, 두번째 작업(200)은 각 후보 서브 펠 서브 블록과 N 개의 현재 픽셀 서브 블록의 각 하나 사이의 매칭 코스트를 계산하는 것으로 구성될 수 있다. N 개의 최적 매치된 서브 펠 픽셀 서브 블록(BMSB1,BMSB2,BMSB3,…,BMSBn)이 N 개의 현재 서브 블록 각각에 대해 가장 작은 매칭 코스트를 제공하는 N 개의 후보 서브 펠 픽셀 서브 블록이도록, 각 후보 서브 펠 서브 블록으로부터의 각 매칭 코스트는 각 현재 서브 블록에 대해 이전에 발견된 가장 작은 매칭 코스트와 차례로 비교될 수 있다. 두번째 작업(200)의 두번째 서브 펠 서치에서, 각 서브 펠 후보 블록과 현재의 픽셀 블록 사이의 매칭 코스트가 계산될 수 있다. 최적 매치된 서브 펠 픽셀 블록(BMSPB)이 가장 작은 매칭 코스트를 제공하는 후보 서브 펠 픽셀 블록이도록, 각 후보 서브 펠 블록으로부터의 각 매칭 코스트는 이전에 발견된 가장 작은 매칭 코스트와 차례로 비교될 수 있다.
두번째 작업(200)에서, 첫번째 서브 펠 서치와 두번째 서브 펠 서치는 동시에 수행될 수 있다. 이러한 실시예에서, 각 후보 서브 펠 픽셀 블록에 대한 매칭 코스트는 N 개의 서브 펠 픽셀 서브 블록의 매칭 코스트의 합으로 이루어진다.
세번째 작업(300)은 각 후보 서브 펠 서브 블록과 N 개의 현재 픽셀 서브 블록의 각각의 하나 사이의 매칭 코스트를 계산하는 것으로 구성될 수 있다. N 개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록(NBMSB1,NBMSB2,NBMSB3,…,NBMSBn)이 N 개의 현재 서브 블록의 각각에 대해 가장 작은 매칭 코스트를 제공하는 N 개의 후보 픽셀 서브 블록이도록, 각 후보 서브 펠 서브 블록으로부터의 각 매칭 코스트는 각 현재 서브 블록에 대해 이전에 발견된 가장 작은 매칭 코스트와 차례로 비교될 수 있다.
서브 블록의 N이라는 수는 1보다 큰 임의의 양의 정수가 될 수 있다는 것을이해해야 한다. 즉, 본 발명은 풀 픽셀 블록이 임의의 수의 서브 블록으로 이루어지도록 구현될 수 있다. 예컨대, 픽셀 블록이 16x16 픽셀 블록으로 이루어지는 경우, 서브 블록은 8x8 픽셀 블록, 6x6 픽셀 블록, 4x4 픽셀 블록, 또는 2x2 픽셀 블록으로 이루어질 수 있다. 블록이 8x8 픽셀 블록으로 이루어지는 경우, 서브 블록은 6x6 픽셀 블록, 4x4 픽셀 블록, 또는 2x2 픽셀 블록으로 이루어질 수 있다. 당업자라면 홀수 사이즈의 블록(예컨대, 9x9, 3x9 등)과 서브 펠 사이즈의 블록(예컨대, 8.5x8.5, 9.5x9.5 등)을 포함하여 많은 다른 블록과 서브 블록 사이즈의 결합이 존재하고, 본 발명을 구현하기 위해 사용될 수 있다는 것을 이해할 것이다.
서브 펠 서치는 1/2 서치, 1/4 서치, 1/8 서치, 또는 더 높은 해상도의 서치를 포함할 수 있다. 더욱이, 본 발명이 첫번째 작업(100)과 두번째 작업(200)의 풀 펠 서치와 관련하여 서술되었다고 하더라도, 두번째 작업(200)과 세번째 작업(300)의 남은 서브 펠 서치가 더 높은 해상도의 서브 펠 서치를 포함하고, 이러한 풀 펠 서치가 사실상 서브 펠 서치를 포함한다는 것을 당업자라면 이해할 것이다. 즉, 상기 서술된 풀 펠 서치는 서브 펠 서치로, 예컨대, 해프 펠 서치(half-pel search)로 쉽게 대체될 수 있다. 이러한 관점에서, 상기 서술된 서브 펠 서치는, 예컨대, 1/4 펠 서치(quater-pel searchs) 또는 1/8 펠 서치(eight-pel searchs) 등이 될 수 있다.
본 발명이 첫번째, 두번째, 세번째 작업과 관련하여 상기에서 서술되었다고 하더라도, 이러한 표시는 본 발명을 쉽게 설명하기 위해 여기에서 사용되었다는 것을 인식해야 한다. 더욱이, 본 발명은 여기에 사용된 용어에 의해 단지 첫번째와두번째 작업만을 가지고 구현될 수 있다. 또한, 본 발명은 3개 작업 이상을 가지고 구현될 수 있다. 예컨대, 첫번째 작업은 풀 펠 블록 서치를 포함할 수 있고, 두번째 작업은 해프 펠 블록 서치와 멀티플(multiple) 해프 펠 서브 블록 서치를 포함할 수 있고, 세번째 작업은 멀티플 해프 펠 서브 블록 서치를 포함할 수 있고, 네번째 작업은 멀티플 쿼터 펠(quater pel) 서브 블록 서치를 포함할 수 있다. 상기 언급된 바와 같이, 본 발명은 1/8 펠과 그 이상의 더 높은 해상도의 서치에도 확장될 수 있다.
픽셀 서브 블록은 각각 동일한 픽셀 수를 포함할 수 있다. 픽셀 서브 블록은 각각이 동일한 픽셀 수를 포함하는 동일한 모양의 픽셀 블록을 포함할 수 있다.
본 발명을 구현하는 다음의 방법은, 예컨대, 도 6에 도시된 인코더(500)에서 수행될 수 있다. 당업자라면 도 6의 인코더(500)가 본 발명을 구현하기 위해 사용될 수 있는 단지 인코더의 하나의 예이고, 본 발명을 구현할 때 동일한 결과를 가지고 인코더 구성 요소의 형식과 배열에서 다양한 변화가 당업자에 의해 가능하다는 것을 인식할 것이다.
도 6에 나타낸 바와 같이, 움직임 추정을 이용하여 현재의 픽셀 블록을 인코딩하기 위한 인코더(500)가 제공된다. 제1움직임 추정기(510;motion estimator)가 첫번째 작업에서 두번째 비디오 프레임으로부터의 현재의 픽셀 블록을 적응적으로 프로세싱하기 위해 제공된다. 제2움직임 추정기(520)가 두번째 작업에서 상기 현재의 픽셀 블록과 상기 현재의 픽셀 블록의 현재의 픽셀 서브 블록을 적응적으로 프로세싱하기 위해 제공된다. 제3움직임 추정기(530)가 세번째 작업에서 상기 현재의픽셀 서브 블록을 적응적으로 프로세싱하기 위해 제공된다. 결정 모듈(540;decision module)이 (1) 첫번째 작업으로부터의 픽셀 블록; (2) 두번째 작업으로부터의 블록과 복수의 픽셀 서브 블록 및; (3) 세번째 작업으로부터의 복수의 픽셀 서브 블록에 대해 첫번째 비디오 프레임에서 서치 포인트를 결정하기 위해 제공되고, 상기 현재의 픽셀 블록과 상기 현재의 픽셀 서브 블록 중 하나에 대해 가장 낮은 매칭 코스트를 제공한다. 상기에서 언급한 바와 같이, (1) 세번째 작업 동안 첫번째와 세번째 작업; (2) 두번째 작업 동안 첫번째와 두번째 작업 및; (3) 세번째 작업 동안 두번째와 세번째 작업의 적어도 하나 사이에서 잉여인 서치 포인트는 버려진다.
인코더(500)는 또한 첫번째 비디오 프레임(참조 프레임)을 저장하기 위한 제1프레임 저장장치(550)와 두번째 비디오 프레임(현재 프레임)을 저장하기 위한 제2프레임 저장장치(560)을 포함한다. 디지털 비디오 신호(501)는 제2프레임 저장장치(560)로 제공된다. 움직임 보상기(570;motion compensator)는 결정 모듈(540)로부터의 가장 낮은 매칭 코스트를 가지고 상기 블록 또는 상기 서브 블록의 적어도 하나를 이용해서 현재의 픽셀 블록을 예상하기 위해 제공된다.
풀 펠 서치 동안의 첫번째 작업에서, 상기 두번째 비디오 프레임[제2프레임 저장장치(560)]의 현재의 픽셀 블록에 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에 있는 최적 매치된 풀 펠 픽셀 블록을 찾기 위해, 제1움직임 추정기(510)는 상기 두번째 비디오 프레임[제2프레임 저장장치(560)에서]으로부터의 풀 펠 현재 픽셀 블록을 상기 첫번째 비디오 프레임[제1프레임 저장장치(550)에서]의 첫번째 미리 정의된 서치 영역으로부터의 다수의 후보 풀 펠 픽셀 블록과 비교한다.
제2움직임 추정기(520)는 (1) 첫번째 서브 펠 서치 동안 두번째 작업에서, N 개의 현재 픽셀 서브 블록 각각에 대해 가장 가까운 매치인 두번째 미리 정의된 서치 영역에서 N 개의 개별 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해, 현재의 픽셀 블록을 나눔으로써 얻어진 N 개의 현재 픽셀 서브 블록을 상기 첫번째 비디오 프레임[서브 펠 인터폴레이터(590)를 통해 제1프레임 저장장치(550)에서]의 두번째 미리 정의된 서치 영역으로부터의 다수의 후보 서브 펠 픽셀 서브 블록과 비교하고; (2) 두번째 서브 펠 서치 동안 두번째 작업에서, 현재 픽셀 블록에 가장 가까운 매치인 두번째 미리 정의된 서치 영역에서 최적 매치된 서브 펠 픽셀 블록을 찾기 위해, 현재 픽셀 블록을 두번째 미리 정의된 서치에서의 다수의 후보 서브 펠 픽셀 블록과 비교한다.
세번째 작업 서브 펠 서치에서, N 개의 현재 픽셀 서브 블록 각각에 대해 세번째 미리 정의된 서치 영역의 새로운 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해, 제3움직임 추정기(530)는 N 개의 현재 픽셀 서브 블록을 상기 첫번째 비디오 프레임(제1프레임 저장장치(550)에서)의 세번째 미리 정의된 서치 영역으로부터의 다수의 후보 서브 펠 픽셀 서브 블록과 비교한다.
결정 모듈(540)은 제1, 제2, 제3움직임 추정기 중 적어도 하나로부터 어느 블록과 서브 블록이 가장 낮은 매칭 코스트를 갖는지 결정한다. 메모리[움직임 추정기 저장장치(580)]는, (1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 복수의 후보 서브펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (4) 세번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트 중 적어도 하나를 저장하기 위해 제공된다. 상기에서 언급한 바와 같이, 잉여의 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트는 움직임 추정기 저장장치(580)에 의해 계산되지 않고 저장되지 않는다. 움직임 추정기 저장장치(580)는 각 움직임 추정기에 대해 별개의 메모리 장치로 구성되거나, 또는 각 움직임 추정기에 상응하는 동일한 메모리 장치의 분할된 섹션으로 구성될 수 있다. 메모리 장치는 하드 드라이브, 광학 디스크, 또는 다른 적당한 타입의 대용량 저장 장치, 또는 장치들의 결합 등의 다양한 형태를 가질 수 있다.
움직임 보상기(570)는 (1) 세번째 작업으로부터의 N 개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록; 또는 (2) 두번째 작업으로부터의 최적 매치된 서브 펠 픽셀 블록 중 하나에 기초하여 두번째 비디오 프레임(제2프레임 저장장치(560)에서)에서 현재의 픽셀 블록을 예상한다. 현재의 블록과 이것의 예상(prediction) 사이의 차이(나머지;residual)가 계산된다[감산 기능(595)]. 이러한 차이는 이어서 DCT(discrete cosine transform)와 양자화 동작[quantizer operation;예컨대, DCT와 양자화기(600)에서]을 수행받는다. 이어서, 결과는 압축된 비트 출력(620;인코드된 비트스트림)을 생성하기 위해 가변 길이 코더(610;variable length coder)로 프로세스되고, 이어서 적당하게 디코드될 수 있다. 또한 결과는 역 양자화 및 DCT 동작(630)을 수행받고, 이어서 합산기(640)에서 움직임 보상된 예상에 합산된다.합산기(640)의 출력은 일반적으로 디코더가 블록에 대해 생성하는 것과 동일하고, 이러한 블록은 제1 프레임 저장장치(550)에 다시 저장된다. 합산기(640)의 출력은 프레임 저장장치(550)에 저장되기 전에 프레임 지연(642)에서 지연될 수 있다.
도 6은 제1프레임 저장장치(550)에 저장된 참조 프레임이 재구성된(reconstructed) 참조 프레임인 경우의 구현을 나타내고, 본 발명은 비디오 신호(501)에서 수신된 대로의 원래의 비디오 프레임을 이용하여서도 구현될 수 있다는 것을 인식해야 한다.
인터폴레이터(590)는, 두번째와 세번째 작업 동안, 픽셀 블록과 서브 블록 각각에 대해 첫번째 비디오 프레임[제1프레임 저장장치(550)에서]의 픽셀 데이터를 서브 펠 해상도로 인터폴레이팅 하기 위해 제공된다. 이러한 인터폴레이션은 블록에 의해 블록에 대해 또는 필요한 서브 블록 기반에 의해 서브 블록에 대해 발생할 수 있고(도 6에 도시된 것 처럼), 또한 첫번째 비디오 프레임이 한번 인터폴레이트될 수 있고 결과는 두번째와 세번째 작업에서 필요한 사용을 위해 메모리에 저장될 수 있다.
첫번째 작업에서, 제1움직임 보상기(510)는 각 후보 블록과 현재 픽셀 블록 사이의 매칭 코스트를 계산한다. 이어서, 최적 매치된 풀 펠 픽셀 블록이 가장 낮은 매칭 코스트를 제공하는 후보 픽셀 블록이도록, 결정 모듈(540)은 각 후보 블록으로부터의 각 매칭 코스트를 이전에 발견된 가장 낮은 매칭 코스트와 차례로 비교한다.
두번째 작업에서, 제2움직임 추정기(520)는, 첫번째 서브 펠 서브 블록 서치에서, 각 후보 서브 펠 서브 블록과 N 개의 현재 픽셀 서브 블록의 각각 하나와의 사이의 매칭 코스트를 계산한다. N 개의 최적 매치된 서브 펠 픽셀 서브 블록이 N 개의 현재 서브 블록의 각각에 대해 가장 낮은 매칭 코스트를 제공하는 N 개의 후보 서브 펠 픽셀 서브 블록이도록, 결정 모듈(540)은 각 후보 서브 펠 서브 블록으로부터의 각 매칭 코스트를 차례로 각 현재 서브 블록에 대해 이전에 발견된 가장 낮은 매칭 코스트와 비교한다. 두번째 서브 펠 서치에서, 제2움직임 추정기(520)는 각 서브 펠 후보 블록과 현재 픽셀 블록 사이의 매칭 코스트를 계산한다. 최적 매치된 서브 펠 픽셀 블록이 가장 낮은 매칭 코스트를 제공하는 후보 서브 펠 픽셀 블록이도록, 결정 모듈(540)은 각 후보 서브 펠 블록으로부터의 각 매칭 코스트를 이전에 발견된 가장 낮은 매칭 코스트와 차례로 비교한다.
세번째 작업에서, 제3움직임 추정기(530)는 각 후보 서브 펠 서브 블록과 N 개의 현재 픽셀 서브 블록의 각각의 하나와의 사이의 매칭 코스트를 계산한다. N 개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록이 N 개의 현재 서브 블록의 각각에 대해 가장 낮은 매칭 코스트를 제공하는 N 개의 후보 픽셀 서브 블록이도록, 결정 모듈(540)은 각 후보 서브 펠 서브 블록으로부터의 각 매칭 코스트를 차례로 각 현재 서브 블록에 대해 이전에 발견된 가장 낮은 매칭 코스트와 비교한다.
본 발명의 특정한 구현이 도 7(도 7a 및 7b)에 의한 플로우차트에 개설된다. 도 7에 도시된 구현은 세번째 작업에서 잉여인 서치 포인트를 제거함으로써 인코더 복잡도를 감소시킨다. 첫번째와 두번째 작업으로부터의 정보가 이용될 때, 세번째 작업에서의 절약이 약 80%라고 하더라도, 이것은 FS-BMA가 첫번째 작업에서 16x16풀 펠 서치에 대해 사용된다는 것을 가정한다. 도 7에 도시된 구현에서, 본 발명이 첫번째 작업에 대해 풀 펠 서치 또는 빠른 서치(MVFAST)를 수행하기 위해 구현될 수 있기 때문에, 첫번째 작업은 세번째 작업에 통합되지 않는다. 대신, 도시된 실시예는 두번째와 세번째 작업 사이의 잉여만을 제거한다(결과적으로 세번째 작업에서 약 60% 절약).
본 발명의 개념을 이용해서 빠른 알고리즘을 구현하는 여러가지 방법이 있지만, 도 7에 도시된 실시예는 두번째 작업에서의 16x16 해프 펠 블록 매칭 코스트를 4개의 8x8 해프 펠 서브 블록 매칭 코스트로 분할하고, 두번째 작업에서 16x16 해프 펠 서치를 수행하면서, 4개의 최적 8x8 해프 펠 서브 블록의 위치와 매칭 코스트만을 저장한다. "매칭 코스트"는 후보 블록 또는 서브 블록과 움직임 보상을 이용하여 인코드될 상응하는 블록 또는 서브 블록 사이의 비교를 나타낸다. 매칭 코스트는, 예컨대 블록 또는 서브 블록 사이 왜곡의 측정 등의, 후보 블록 또는 서브 블록과 인코드될 블록 또는 서브 블록 사이의 절대 차이(absolute difference)의 합일 수 있다.
도 7a는 두번째 작업을 나타내고, 도 7b는 세번째 작업을 나타낸다. 첫번째 작업에서, 첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역에서 풀 펠 서치가 두번째 비디오 프레임의 현재 픽셀 블록에 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에서의 다수의 후보 픽셀 블록으로부터 최적 매치된 풀 펠 16x16 픽셀 블록을 찾기 위해 수행된다. 첫번째 작업은 종래에 잘 알려져 있기 때문에 플로우차트에 나타나 있지 않다.
도 7a에 도시된 두번째 작업을 위해, 현재의 16x16 픽셀 블록은 4개의 현재 8x8 픽셀 서브 블록으로 나뉘어 진다. 첫번째 비디오 프레임의 두번째 미리 정의된 서치 영역에서 첫번째 해프 펠 서치가, 4개의 현재 8x8 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 두번째 미리 정의된 서치 영역에서 다수의 후보 해프 펠 8x8 픽셀 서브 블록으로부터 4개의 별도 최적 매치된 해프 펠 8x8 픽셀 서브 블록을 찾기 위해 수행된다. 또한, 두번째 미리 정의된 서치 영역에서 두번째 해프 펠 서치가 두번째 비디오 프레임의 현재 16x16 픽셀 블록에 가장 가까운 매치인 두번째 미리 정의된 서치 영역에서 다수의 후보 해프 펠 16x16 픽셀 블록으로부터 최적 매치된 해프 펠 16x16 픽셀 블록을 찾기 위해 동시에 수행된다.
도 7a에 도시된 바와 같이, 두번째 미리 정의된 서치 영역에서 각 후보 해프 펠 16x16 블록은 후보 서브 블록 1, 후보 서브 블록 2, 후보 서브 블록 3, 후보 서브 블록 4의 4개의 후보 해프 펠 8x8 서브 블록으로 나뉘어 진다. 각 후보 서브 블록은 특정 후보 서브 블록에 대한 매칭 코스트를 결정하기 위해 상응하는 현재 8x8 서브 블록과 비교된다. 이어서, 후보 서브 블록은 최적 매치된 8x8 해프 펠 서브 블록을 결정하기 위해 다음 오프셋에서 후보 서브 블록에 비교된다.
예컨대, 도 7a에서, 미리 정의된 서치 영역의 첫번째 오프셋에서, 후보 서브 블록 1, 후보 서브 블록 2, 후보 서브 블록 3, 후보 서브 블록 4는 첫번째 16x16 후보 블록으로부터 얻어진 4개의 8x8 해프 펠 서브 블록에 상응할 것이다. 이러한 4개의 8x8 해프 펠 서브 블록의 각각과 현재 16x16 블록으로부터 얻어진 4개의 현재 8x8 풀 펠 서브 블록 사이의 매칭 코스트가 계산된다. 이것은 두번째 작업의 시작이기 때문에, 어떠한 현재 최적 매치된 8x8 서브 블록도 비교를 위해 존재하지 않고, 따라서 디폴트(default)에 의한 후보 서브 블록 1, 후보 서브 블록 2, 후보 서브 블록 3, 후보 서브 블록 4는 최적 매치된 8x8 해프 펠 서브 블록이 된다. 이어서, 서치 윈도우의 다음 블록이 현재 최적 매치된 블록에 비교될 수 있도록, 오프셋이 증가한다. 보여진 예에서, 두번째 작업이 두번째 미리 정의된 서치 영역에서 해프 펠 서치를 수반하면서, 오프셋은 0.5 펠 만큼 증가할 것이다. 즉, 두번째 미리 정의된 서치 영역에서 다음 후보 16x16 블록의 위치는 이러한 두번째 오프셋에서 1/2 펠 만큼 이동한다(서치 윈도우에서 임의의 가능한 방향으로).
후보 서브 블록 1 , 후보 서브 블록 2 , 후보 서브 블록 3 , 후보 서브 블록 4 위치는 다음의(두번째) 오프셋에서 16x16 해프 펠 블록을 이루는 4개의 8x8 해프 펠 서브 블록에 의해 대체된다. 이어서, 두번째 오프셋에서 4개의 8x8 해프 펠 서브 블록에 대한 매칭 코스트는 이전의 오프셋으로부터의 상응하는 최적 매치된 서브 블록에 비교된다. 만일 두번째 오프셋에서의 서브 블록이 각각의 현재 서브 블록에 대해 더 좋은 매치라면, 그러한 서브 블록은 이전의 최적 매치된 서브 블록을 대체하며, 최적 매치된 서브 블록으로 저장될 것이다. 만일 두번째 오프셋에서의 서브 블록이 각각의 현재 서브 블록에 대해 더 좋은 매치가 아니라면, 최적 매치된 서브 블록은 변하지 않을 것이다. 이러한 프로세스는 두번째 미리 정의된 서치 영역에서 가능한 각 오프셋에 대해 반복되고, 결과적으로 4개의 최적 매치된 8x8 해프 펠 서브 블록이 된다.
더욱이, 각 오프셋이 증가한 후, 서브 블록의 매칭 코스트는 후보 16x16 해프 펠 블록에 대한 매칭 코스트를 제공하기 위해 합산된다. 이러한 매칭 코스트는 8x8 해프 펠 서브 블록과 관련하여 상기에서 설명된 것과 동일한 방법으로 이전의 최적 매치된 16x16 해프 펠 블록과 비교된다. 만일 매칭 코스트의 합이 이전에 발견한 것보다 더 좋은 매치가 된다면, 그 때 까지의 이전의 최적 매치된 16x16 해프 펠 블록은 그 때 까지의 4개의 8x8 최적 매치된 서브 블록에 상응하는 16x16 해프 펠 블록에 의해 대체된다. 이러한 프로세스는 두번째 미리 정의된 서치 영역에서 각 오프셋에 대해 반복되고, 결과적으로 두번째 미리 정의된 서치 영역에서 새로운 최적 매치된 16x16 해프 펠 블록이 된다. 두번째 작업의 시작에서의 최적 매치된 16x16 블록은 첫번째 작업에서 얻어진 16x16 최적 매치된 풀 펠 블록이 될 것이다.
도 7b에 도시된 바와 같이, 일단 두번째 미리 정의된 서치 영역이 고갈되면(즉, 모든 오프셋이 서치됨), 세번째 작업이 시작된다. 세번째 작업에서, 4개의 개별 해프 펠 서치가 4개의 현재 8x8 픽셀 서브 블록의 각각에 대해 세번째 미리 정의된 서치 영역에 있는 다수의 후보 해프 펠 8x8 픽셀 서브 블록으로부터 새로운 최적 매치된 해프 펠 8x8 픽셀 서브 블록을 찾기 위해 세번째 미리 정의된 서치 영역에서 수행된다. 세번째 작업에서 비교 프로세스는 도 7a의 최적 매치된 8x8 해프 펠 서브 블록을 찾기 위한 두번째 작업과 관련하여 상기에서 서술한 것과 유사하다. 그러나, 세번째 작업에서 잉여 서치 포인트는 매칭 코스트가 잉여 서치 포인트를 위해 계산되지 않거나 저장되지 않도록 버려진다. 세번째 작업의 시작에서, 각 서치에 대한 새로운 최적 매치된 서브 블록은 두번째 작업(도 7a) 동안 발견된 각각의 최적 매치된 8x8 해프 펠 서브 블록에 상응한다. 즉, 세번째 작업(도 7b)의첫번째 서브 펠 서치에서 사용된 최초의 최적 매치된 서브 블록이 두번째 작업(도 7a)의 첫번째 서치로부터의 최적 매치된 8x8 해프 펠 서브 블록이다.
세번째 작업에서 각각의 4개의 개별 해프 펠 8x8 서브 블록 서치에 대해, 세번째 미리 정의된 서치 윈도우에서 각각의 후보 해프 펠 8x8 서브 블록이 각각의 매칭 코스트를 얻기 위해 현재 16x16 블록에서 얻어진 4개의 현재 8x8 서브 블록에 비교된다. 4개의 서치(즉, 후보 서브 블록 1 , 후보 서브 블록 2 , 후보 서브 블록 3 , 후보 서브 블록 4)에 대한 각각의 후보 서브 블록을 위한 매칭 코스트는 그 때 까지 발견된 새로운 최적 매치된 서브 블록에 비교된다. 그러나, 각 오프셋에서, 세번째 미리 정의된 서치 영역에서 현재 서치 포인트는 두번째 작업 동안 발견된 서치 포인트에 상응하는지를 결정하기 위해 우선 다시 관찰될 것이다. 그렇다면, 그러한 서치 포인트에 위치한 8x8 해프 펠 서브 블록은 잉여로 결정되고 고려되지 않을 것이다. 따라서, 이러한 잉여 서치 포인트에 대한 매칭 코스트는 계산되지 않을 것이며, 오프셋은 다음 위치로 증가될 것이다.
세번째 미리 정의된 서치 영역은 각 4개의 8x8 해프 펠 서브 블록 서치 각각에 대해 4개의 개별 서치 윈도우로 나뉘어진다.
도 7b에 도시된 예에서 서치 포지션은 두번째 작업 서치 중심으로부터의 거리가 가로 방향에서 n*0.5 보다 작거나 같다면, 그리고 세로 방향에서 m*0.5 보다 작거나 같다면 잉여로 생각된다. 도 7에 도시된 실시예는 해프 펠 서치를 구현하므로, 두번째와 세번째 작업에서의 서치 범위는 둘다 가로 방향에서 +/-n*0.5 펠이고, 세로 방향에서 +/-m*0.5 펠이라고 생각된다(n과 m은 임의의 정수).
서치 포인트가 잉여가 아니라면, 그러한 오프셋에서 8x8 해프 펠 서브 블록에 대한 매칭 코스트는 계산될 것이고, 그 때 까지 발견된 새로운 최적 매치된 8x8 해프 펠 서브 블록의 매칭 코스트에 비교될 것이다. 매칭 코스트가 더 작다면, 그러한 오프셋에서 8x8 해프 펠 서브 블록은 새로운 최적 매치된 서브 블록을 대체할 것이고, 그렇지 않다면, 오프셋은 증가한다.
이러한 프로세스는 세번째 미리 정의된 서치 영역에서 가능한 각 오프셋에 대해 반복되고, 결과적으로 4개의 새로운 최적 매치된 8x8 해프 펠 서브 블록이 된다. 인코드될 현재 16x16 풀 펠 블록은 세번째 작업으로부터의 4개의 새로운 최적 매치된 8x8 해프 펠 서브 블록에서 얻어진 움직임 벡터, 또는 두번째 작업으로부터의 최적 매치된 16x16 해프 펠 블록에서 얻어진 움직임 벡터에 기초하여 인코드된다.
이러한 방법은 낮은 복잡도와 메모리 저장을 요구하지만, 종래의 풀 서치와는 동일하지 않다. (모든 9개의 매칭 코스트를 저장하는 것 등의 본 발명의 다른 구현은 종래의 풀 서치와 동일한 결과를 제공하기 위해 사용될 수 있다.) 이러한 구현에서, 두번째 작업에서 발견된 최적 매치된 블록이 세번째 작업에 대한 서치 윈도우의 바깥에 있을 수 있다. 도 2는 이러한 가능성을 나타낸다. 두번째 작업에서 (단지)"+" 포지션의 어떤 것이라도 세번째 작업 후의 최적 매치된 블록이 된다면, 이러한 구현으로부터 계산된 MV는 종래의 풀 서치와 다르게 될 것이다. 그러나, 왜곡의 관점에서 볼 때, 제안된 구현을 이용한 최적 매치된 블록의 왜곡이 종래의 풀 서치 보다 더 작게 되도록 보장되기 때문에, 이러한 불일치는 종래의 풀서치에 비해 항상 개선으로 이끈다.
제안된 구현은 첫번째와 두번째 작업을 세번째 작업으로 통합하도록 확장될 수 있다. 첫번째 작업을 세번째 작업으로 통합할 때 부가적인 가능성이 존재한다. 예컨대, 첫번째 작업에서 16x16 풀 펠 블록 서치는 4개의 8x8 풀 펠 서브 블록 서치로 분할될 수 있다. 이어서, 첫번째 작업에서 발견된 최적 8x8 풀 펠 서브 블록은 세번째 작업에서 8x8 해프 펠 서브 블록에 대해 비교될 수 있고, 서치 범위와 정확도 사이에서 트래이드오프(tradeoff)를 야기한다. 앞에서와 같이, 그러한 구현을 가지고, 종래의 풀 서치에 비해 개선된 결과를 얻는 것이 가능하다.
상기에서 설명된 구현은 MPEG-4와 다른 비디오 압축 표준에 대해 표준을 따르는 8x8 서브 블록의 해프 펠 ME에 대한 효율적인 방법을 제공한다. 도 7에 도시된 방법은 서치의 질을 낮추지 않고 8x8 ME에 대한 전체 서치 수를 평균적으로 60% 이상 감소시킬 수 있다. 어떤 경우에는, 질을 약간 개선할 수도 있다. 제안된 방법은 1/2 펠, 1/4 펠, 1/8 펠과 그 이상 등의 더 높은 서브 픽셀 해상도로 쉽게 확장될 수 있다.
발명이 특정 사이즈의 블록과 픽셀 서브 블록에서 풀 펠과 해프 펠 서치를 수행하는 것과 관련하여 설명되었지만, 당업자라면 본 발명이 도 7에 도시된 특정 실시예에 제한되지 않는다는 것을 인식할 것이다. 본 발명은 변하는 사이즈의 픽셀 블록과 서브 블록에 대해 1/4 펠, 1/8 펠 서치로 확장될 수 있다.
이제, 본 발명이 디지털 비디오 신호를 인코딩하기 위한 서브 픽셀 움직임 추정 방법 및 장치를 제공한다는 것을 이해할 것이다.
다양한 실시예와 관련하여 본 발명이 설명되었지만, 청구항에서 개시되는 본 발명의 기본 개념과 정신을 벗어남이 없이 다수의 변형과 개작이 가능하다.

Claims (64)

  1. 첫번째 비디오 프레임과 두번째 비디오 프레임으로부터의 픽셀 블록 사이에 움직임 추정 방법에 있어서,
    첫번째 작업에서 두번째 비디오 프레임으로부터의 현재의 픽셀 블록을 적응적으로 프로세싱하는 단계;
    두번째 작업에서 상기 현재의 픽셀 블록과 상기 현재의 픽셀 블록의 현재 픽셀 서브 블록을 적응적으로 프로세싱하는 단계;
    세번째 작업에서 상기 현재의 픽셀 서브 블록을 적응적으로 프로세싱하는 단계;
    상기 현재의 픽셀 블록과 상기 현재의 픽셀 서브 블록 중 하나에 대해 가장 낮은 매칭 코스트를 제공하는, (1) 상기 첫번째 작업으로부터의 픽셀 블록; (2) 상기 두번째 작업으로부터의 복수의 픽셀 서브 블록과 블록 및; (3) 상기 세번째 작업으로부터의 복수의 픽셀 서브 블록에 대해 첫번째 비디오 프레임에서 서치 포인트를 찾는 단계 및;
    (1) 세번째 작업 동안의 첫번째와 세번째 작업; (2) 두번째 작업 동안의 첫번째와 두번째 작업 및; (3) 세번째 작업 동안의 두번째와 세번째 작업 중 적어도 하나 사이에서 잉여인 서치 포인트를 버리는 단계를 구비하여 이루어진 것을 특징으로 하는 움직임 추정 방법.
  2. 제1항에 있어서,
    첫번째 작업에서, 두번째 비디오 프레임의 현재의 픽셀 블록에 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에 있는 다수의 후보 픽셀 블록으로부터 최적 매치된 풀 펠 픽셀 블록을 찾기 위해 첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역에서 풀 펠 서치를 수행하는 단계;
    현재의 픽셀 블록을 N개의 현재 픽셀 서브 블록으로 나누는 단계;
    두번째 작업에서, (1) N개의 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 두번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 서브 블록으로부터 N개의 개별 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해 첫번째 비디오 프레임의 두번째 미리 정의된 서치 영역에서 첫번째 서브 펠 서치 및; (2) 두번째 비디오 프레임의 현재의 픽셀 블록에 가장 가까운 매치인 두번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 블록으로부터 최적 매치된 서브 펠 픽셀 블록을 찾기 위해 두번째 미리 정의된 서치 영역에서 두번째 서브 펠 서치를 수행하는 단계 및;
    세번째 작업에서, N개의 현재 픽셀 서브 블록 각각에 대해 세번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 서브 블록으로부터 새로운 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해 세번째 미리 정의된 서치 영역에서 N개의 개별 서브 펠 서치를 수행하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 움직임 추정 방법.
  3. 제2항에 있어서,
    (1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트 및; (4) 세번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트 중 적어도 하나를 저장하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 움직임 추정 방법.
  4. 제3항에 있어서, 잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않고 저장되지 않는 것을 특징으로 하는 움직임 추정 방법.
  5. 제3항에 있어서,
    (1) 세번째 작업으로부터의 N개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록 또는; (2) 두번째 작업으로부터의 최적 매치된 서브 펠 픽셀 블록 중 하나에 기초하여 두번째 비디오 프레임의 현재의 픽셀 블록을 인코딩하기 위해 하나 이상의 움직임 벡터를 계산하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 움직임 추정 방법.
  6. 제3항에 있어서,
    첫번째 미리 정의된 서치 영역이 두번째 비디오 프레임의 현재 픽셀 블록에 상응하는 위치에서 첫번째 비디오 프레임의 중심에 있고,
    두번째 미리 정의된 서치 영역이 첫번째 작업 동안 발견된 최적 매치된 픽셀 블록에서 중심에 있고,
    세번째 미리 정의된 서치 영역이 두번째 작업 동안 발견된 최적 매치된 서브 펠 픽셀 블록에서 중심에 있고, 상기 세번째 미리 정의된 서치 영역은 N개의 개별 서브 펠 서브 블록 서치의 각각에 상응하는 N개의 서치 윈도우를 갖는 것을 특징으로 하는 움직임 추정 방법.
  7. 제6항에 있어서,
    첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역은 두번째 비디오 프레임의 현재 픽셀 블록의 상응하는 위치 주위의 일반 영역을 포함하는 것을 특징으로 하는 움직임 추정 방법.
  8. 제6항에 있어서,
    두번째 미리 정의된 서치 영역이 첫번째 작업에서 얻어진 최적 매치된 픽셀 블록을 넘어 적어도 한 서브 펠 만큼 모든 방향으로 확장되는 것을 특징으로 하는 움직임 추정 방법.
  9. 제6항에 있어서,
    N개의 서치 윈도우 각각이 두번째 작업 동안 발견된 최적 매치된 서브 펠 블록으로부터 얻어진 각 서브 펠 픽셀 서브 블록을 넘어 적어도 한 서브 펠 만큼 모든 방향으로 확장되는 것을 특징으로 하는 움직임 추정 방법.
  10. 제3항에 있어서,
    세번째 작업으로부터의 복수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트는 N개의 새로운 최적 매치된 서브 펠 서브 블록에 대한 적어도 서치 포인트와 매칭 코스트를 포함하고,
    두번째 비디오 프레임의 현재 픽셀 블록을 인코딩하기 위한 하나 이상의 움직임 벡터는 (1) 세번째 작업으로부터의 N개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록; 또는 (2) 두번째 작업으로부터의 최적 매치된 서브 펠 픽셀 블록 중 하나에 기초하여 계산되는 것을 특징으로 하는 움직임 추정 방법.
  11. 제3항에 있어서,
    (1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 다수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트 및; (4) 세번째 작업으로부터의 다수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트의 각각이저장되고,
    잉여 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않도록, (1) 첫번째와 세번째 작업; (2) 첫번째와 두번째 작업 및; (3) 두번째와 세번째 작업의 각각 사이에서 잉여인 서치 포인트가 버려지는 것을 특징으로 하는 움직임 추정 방법.
  12. 제3항에 있어서,
    첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트가 저장되고,
    잉여인 서치 포인트에 위치한 후보 블록에 대한 매칭 코스트가 계산되지 않도록, 첫번째와 두번째 작업 사이에서 잉여인 서치 포인트가 버려지는 것을 특징으로 하는 움직임 추정 방법.
  13. 제3항에 있어서, 첫번째 작업에서,
    N개의 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에 있는 다수의 후보 풀 펠 픽셀 서브 블록으로부터 N개의 개별 최적 매치된 풀 펠 픽셀 서브 블록을 찾기 위해 첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역에서 풀 펠 서치를 수행하는 단계;
    첫번째 작업으로부터의 복수의 후보 풀 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트를 저장하는 단계 및;
    잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않도록, (1) 첫번째와 두번째 작업 및; (2) 첫번째와 세번째 작업의 적어도 하나 사이에서 잉여인 서치 포인트를 버리는 단계를 더 구비하여 이루어진 것을 특징으로 하는 움직임 추정 방법.
  14. 제3항에 있어서,
    두번째 작업으로부터의 복수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트가 저장되고,
    잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않도록, 두번째와 세번째 작업 사이에 잉여인 서치 포인트가 버려지는 것을 특징으로 하는 움직임 추정 방법.
  15. 제3항에 있어서,
    각 미리 정의된 서치 영역이 정사각형의 픽셀 블록, 직사각형의 픽셀 블록, 다이아몬드 모양의 픽셀 블록, 또는 불규칙적인 모양의 픽셀 블록 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  16. 제3항에 있어서,
    두번째와 세번째 작업에 대해, 각 픽셀 블록과 서브 블록에 대한 첫번째 비디오 프레임의 픽셀 데이터를 서브 펠 해상도로 인터폴레이팅 하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 움직임 추정 방법.
  17. 제3항에 있어서,
    두번째 작업의 서치 범위가 가로 방향으로 +/-n*p 펠, 세로 방향으로 +/-m*p 펠이고, n과 m이 임의의 양의 정수이고 p가 임의의 분수이며,
    두번째 미리 정의된 서치 영역 중심으로부터 세번째 작업의 서치 포인트 거리가 (1) 가로 방향에서 n*p 펠보다 작거나 동일하고; (2) 세로 방향에서 m*p 펠보다 작거나 동일한 경우, 세번째 작업의 서치 포인트는 두번째 작업의 서치 포인트에 대해 잉여라고 생각되고,
    잉여인 서치 포인트에 위치한 후보 블록에 대한 매칭 코스트가 계산되지 않는 것을 특징으로 하는 움직임 추정 방법.
  18. 제17항에 있어서,
    상기 서브 펠 서치는 (1) p가 0.5와 동일한 경우 1/2 펠 서치; (2) p가 0.25와 동일한 경우 1/4 펠 서치 또는; (3) p가 0.125와 동일한 경우 1/8 펠 서치 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  19. 제3항에 있어서,
    첫번째 작업이,
    각 후보 블록과 현재의 픽셀 블록 사이의 매칭 코스트를 계산하는 단계및;
    각 후보 블록으로부터의 각 매칭 코스트를 이전에 발견된 가장 낮은 매칭 코스트와 차례로 비교하는 단계를 구비하여 이루어지고,
    최적 매치된 풀 펠 픽셀 블록이 가장 낮은 매칭 코스트를 제공하는 후보 픽셀 블록인 것을 특징으로 하는 움직임 추정 방법.
  20. 제19항에 있어서, 매칭 코스트가 후보 블록과 현재 블록 사이의 왜곡 측정을 포함하는 것을 특징으로 하는 움직임 추정 방법.
  21. 제3항에 있어서,
    두번째 작업이,
    첫번째 서브 펠 서치에서,
    각 후보 서브 펠 서브 블록과 N개의 현재 픽셀 서브 블록의 각각 하나와의 사이에서 매칭 코스트를 계산하는 단계 및;
    각 후보 서브 펠 서브 블록으로부터의 각 매칭 코스트를 차례로 각 후보 서브 블록에 대한 이전에 발견된 가장 낮은 매칭 코스트와 비교하는 단계를 구비하여 이루어지고,
    N 개의 최적 매치된 서브 펠 픽셀 서브 블록은 N개의 현재 서브 블록 각각에 대해 가장 낮은 매칭 코스트를 제공하는 N 개의 후보 서브 펠 픽셀 서브 블록이며,
    두번째 서브 펠 서치에서,
    각 서브 펠 후보 블록과 현재의 픽셀 블록 사이의 매칭 코스트를 계산하는 단계 및;
    각 후보 서브 펠 블록으로부터의 각 매칭 코스트를 차례로 이전에 발견된 가장 낮은 매칭 코스트와 비교하는 단계를 구비하여 이루어지고,
    최적 매치된 서브 펠 픽셀 블록은 가장 낮은 매칭 코스트를 제공하는 후보 서브 펠 픽셀 블록인 것을 특징으로 하는 움직임 추정 방법.
  22. 제21항에 있어서,
    두번째 작업에서, 상기 첫번째 서브 펠 서치와 상기 두번째 서브 펠 서치는 동시에 수행되고,
    각 후보 서브 펠 픽셀 블록에 대한 매칭 코스트는 서브 펠 픽셀 서브 블록의 N 개의 매칭 코스트의 합을 포함하는 것을 특징으로 하는 움직임 추정 방법.
  23. 제21항에 있어서,
    매칭 코스트가 후보 서브 펠 블록과 현재의 블록 또는 후보 서브 펠 서브 블록과 현재의 서브 블록 중 하나 사이의 왜곡 측정을 포함하는 것을 특징으로 하는 움직임 추정 방법.
  24. 제3항에 있어서,
    세번째 작업이,
    각 후보 서브 펠 서브 블록과 N 개의 현재 픽셀 서브 블록의 각각 하나와의 사이의 매칭 코스트를 계산하는 단계 및;
    각 후보 서브 펠 서브 블록으로부터의 각 매칭 코스트를 차례로 각 현재 서브 블록에 대해 이전에 발견된 가장 낮은 매칭 코스트와 비교하는 단계를 구비하여 이루어지고,
    N 개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록은 N 개의 현재 서브 블록의 각각에 대해 가장 낮은 매칭 코스트를 제공하는 N 개의 후보 픽셀 서브 블록인 것을 특징으로 하는 움직임 추정 방법.
  25. 제24항에 있어서, 매칭 코스트는 후보 서브 펠 서브 블록과 현재의 서브 블록 사이의 왜곡 측정을 포함하는 것을 특징으로 하는 움직임 추정 방법.
  26. 제3항에 있어서, N은 1 보다 큰 임의의 양의 정수인 것을 특징으로 하는 움직임 추정 방법.
  27. 제1항에 있어서, 상기 서브 펠 서치는 1/2 펠 서치, 1/4 펠 서치, 또는 1/8 펠 서치 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  28. 제1항에 있어서,
    상기 블록은 16x16 픽셀 블록을 포함하고,
    상기 서브 블록은 8x8 픽셀 블록, 6x6 픽셀 블록, 4x4 픽셀 블록, 또는 2x2 픽셀 블록 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  29. 제1항에 있어서,
    상기 블록은 8x8 픽셀 블록을 포함하고,
    상기 서브 블록은 6x6 픽셀 블록, 4x4 픽셀 블록, 또는 2x2 픽셀 블록 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  30. 제1항에 있어서, 상기 픽셀 서브 블록 각각은 동일한 픽셀 수를 포함하는 것을 특징으로 하는 움직임 추정 방법.
  31. 제1항에 있어서, 각 픽셀 서브 블록은 각각이 동일한 픽셀 수를 포함하는 동일한 모양의 픽셀 블록을 포함하는 것을 특징으로 하는 움직임 추정 방법.
  32. 첫번째 비디오 프레임과 두번째 비디오 프레임으로부터의 픽셀 블록 사이의 움직임 추정 장치에 있어서,
    첫번째 작업에서 두번째 비디오 프레임의 현재의 픽셀 블록을 적응적으로 프로세싱하는 제1움직임 추정기;
    두번째 작업에서 상기 현재의 픽셀 블록과 상기 현재의 픽셀 블록의 현재 픽셀 서브 블록을 적응적으로 프로세싱하는 제2움직임 추정기;
    세번째 작업에서 상기 현재의 픽셀 서브 블록을 적응적으로 프로세싱하는 제3움직임 추정기 및;
    상기 현재의 픽셀 블록과 상기 현재의 픽셀 서브 블록 중 하나에 대해 가장 낮은 매칭 코스트를 제공하는, (1) 상기 첫번째 작업으로부터의 픽셀 블록; (2) 상기 두번째 작업으로부터의 복수의 픽셀 서브 블록과 블록 및; (3) 상기 세번째 작업으로부터의 복수의 픽셀 서브 블록에 대해 첫번째 비디오 프레임의 서치 포인트를 결정하는 결정 모듈을 구비하여 구성되고,
    (1) 세번째 작업 동안의 첫번째와 세번째 작업; (2) 두번째 작업 동안의 첫번째와 두번째 작업 및; (3) 세번째 작업 동안의 두번째와 세번째 작업 중 적어도 하나 사이에서 잉여인 서치 포인트는 버려지는 것을 특징으로 하는 움직임 추정 장치.
  33. 제32항에 있어서,
    상기 첫번째 비디오 프레임을 저장하는 제1프레임 저장장치;
    상기 두번째 비디오 프레임을 저장하는 제2프레임 저장장치 및;
    결정 모듈로부터의 가장 낮은 매칭 코스트를 가지고 상기 블록 또는 상기 서브 블록 중 적어도 하나를 이용하여 현재의 픽셀 블록을 예상하는 움직임 보상기를 더 구비하여 구성되고,
    제1움직임 추정기는, 풀 펠 서치 동안 첫번째 작업에서, 두번째 비디오 프레임의 현재의 픽셀 블록에 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에서 최적 매치된 풀 펠 픽셀 블록을 찾기 위해, 상기 두번째 비디오 프레임의 현재의 픽셀 블록을 상기 첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역으로부터의 다수의 후보 풀 펠 픽셀 블록과 비교하고,
    제2움직임 추정기는 (1) 첫번째 서브 펠 서치 동안 두번째 작업에서, N개의 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 두번째 미리 정의된 서치 영역에서 N개의 개별 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해, 현재의 픽셀 블록을 나눔으로써 얻어진 N 개의 현재 픽셀 서브 블록을 상기 첫번째 비디오 프레임의 두번째 미리 정의된 서치 영역으로부터의 다수의 후보 서브 펠 픽셀 서브 블록과 비교하고, (2) 두번째 서브 펠 서치 동안 두번째 작업에서, 현재의 픽셀 블록에 가장 가까운 매치인 두번째 미리 정의된 서치 영역에서 최적 매치된 서브 펠 픽셀 블록을 찾기 위해, 현재의 픽셀 블록을 두번째 미리 정의된 서치에서 다수의 후보 서브 펠 픽셀 블록과 비교하고,
    제3움직임 추정기는, 세번째 작업 서브 펠 서치에서, N개의 현재 픽셀 서브 블록 각각에 대해 세번째 미리 정의된 서치 영역에서 새로운 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해, N 개의 현재 픽셀 서브 블록을 첫번째 비디오 프레임의 세번째 미리 정의된 서치 영역으로부터의 다수의 후보 서브 펠 픽셀 서브 블록과 비교하고,
    결정 모듈은 제1, 제2, 제3움직임 추정기 중 적어도 하나로부터의 어느 블록과 서브 블록이 가장 낮은 매칭 코스트를 갖는가를 결정하는 것을 특징으로 하는움직임 추정 장치.
  34. 제33항에 있어서,
    (1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트 및; (4) 세번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트 중 적어도 하나를 저장하는 메모리를 더 구비하여 구성된 것을 특징으로 하는 움직임 추정 장치.
  35. 제34항에 있어서, 잉여 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않고 저장되지 않는 것을 특징으로 하는 움직임 추정 장치.
  36. 제34항에 있어서,
    상기 움직임 보상기가 (1) 세번째 작업으로부터의 N개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록 또는; (2) 두번째 작업으로부터의 최적 매치된 서브 펠 픽셀 블록 중 하나에 기초하여 두번째 비디오 프레임의 현재의 픽셀 블록을 예상하는 것을 특징으로 하는 움직임 추정 장치.
  37. 제34항에 있어서,
    첫번째 미리 정의된 서치 영역이 두번째 비디오 프레임의 현재 픽셀 블록에 상응하는 위치에서 첫번째 비디오 프레임의 중심에 있고,
    두번째 미리 정의된 서치 영역이 첫번째 작업 동안 발견된 최적 매치된 픽셀 블록에서 중심에 있고,
    세번째 미리 정의된 서치 영역이 두번째 작업 동안 발견된 최적 매치된 서브 펠 픽셀 블록에서 중심에 있고, 상기 세번째 미리 정의된 서치 영역은 N 개별 서브 펠 서브 블록 서치의 각각에 상응하는 N개의 서치 윈도우를 갖는 것을 특징으로 하는 움직임 추정 장치.
  38. 제37항에 있어서,
    첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역은 두번째 비디오 프레임의 현재 픽셀 블록의 상응하는 위치 주위의 일반 영역을 포함하는 것을 특징으로 하는 움직임 추정 장치.
  39. 제37항에 있어서,
    두번째 미리 정의된 서치 영역이 첫번째 작업에서 얻어진 최적 매치된 픽셀 블록을 넘어 적어도 한 서브 펠 만큼 모든 방향으로 확장되는 것을 특징으로 하는 움직임 추정 장치.
  40. 제37항에 있어서,
    N개의 서치 윈도우 각각이 두번째 작업 동안 발견된 최적 매치된 서브 펠 블록으로부터 얻어진 각 서브 펠 픽셀 서브 블록을 넘어 적어도 한 서브 펠 만큼 모든 방향으로 확장되는 것을 특징으로 하는 움직임 추정 장치.
  41. 제34항에 있어서,
    세번째 작업으로부터의 복수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트는 N개의 새로운 최적 매치된 서브 펠 서브 블록에 대한 적어도 서치 포인트와 매칭 코스트를 포함하고,
    움직임 보상기는 (1) 세번째 작업으로부터의 N개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록; 또는 (2) 두번째 작업으로부터의 최적 매치된 서브 펠 픽셀 블록 중 하나에 기초하여 두번째 비디오 프레임의 현재의 픽셀 블록을 예상하는 것을 특징으로 하는 움직임 추정 장치.
  42. 제34항에 있어서,
    (1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 다수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트 및; (4) 세번째 작업으로부터의 다수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트의 각각이 저장되고,
    잉여 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않도록, (1) 첫번째와 세번째 작업; (2) 첫번째와 두번째 작업 및; (3) 두번째와 세번째 작업의 각각 사이에서 잉여인 서치 포인트가 버려지는 것을 특징으로 하는 움직임 추정 장치.
  43. 제34항에 있어서,
    첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트가 저장되고,
    잉여인 서치 포인트에 위치한 후보 블록에 대한 매칭 코스트가 계산되지 않도록, 첫번째와 두번째 작업 사이에서 잉여인 서치 포인트가 버려지는 것을 특징으로 하는 움직임 추정 장치.
  44. 제34항에 있어서,
    첫번째 작업에서,
    상기 첫번째 움직임 추정기가, 첫번째 작업 풀 펠 서치에서, N개의 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에서 N개의 개별 최적 매치된 풀 펠 픽셀 서브 블록을 찾기 위해, N 개의 현재 픽셀 서브 블록을 첫번째 미리 정의된 서치 영역으로부터의 다수의 후보 풀 펠 픽셀서브 블록과 비교하고,
    첫번째 작업으로부터의 복수의 후보 풀 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트가 저장되고,
    잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않도록, (1) 첫번째와 두번째 작업 및; (2) 첫번째와 세번째 작업의 적어도 하나 사이에서 잉여인 서치 포인트가 버려지는 것을 특징으로 하는 움직임 추정 장치.
  45. 제34항에 있어서,
    두번째 작업으로부터의 복수의 후보 서브 펠 서브 블록에 대한 서치 포인트와 매칭 코스트가 저장되고,
    잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않도록, 두번째와 세번째 작업 사이에 잉여인 서치 포인트가 버려지는 것을 특징으로 하는 움직임 추정 장치.
  46. 제34항에 있어서,
    각 미리 정의된 서치 영역이 정사각형의 픽셀 블록, 직사각형의 픽셀 블록, 다이아몬드 모양의 픽셀 블록, 또는 불규칙적인 모양의 픽셀 블록 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  47. 제34항에 있어서,
    두번째와 세번째 작업 동안, 각 픽셀 블록과 서브 블록에 대한 첫번째 비디오 프레임의 픽셀 데이터를 서브 펠 해상도로 인터폴레이팅하는 인터폴레이터를 더 구비하여 구성된 것을 특징으로 하는 움직임 추정 장치.
  48. 제34항에 있어서,
    두번째 작업의 서치 범위가 가로 방향으로 +/-n*p 펠, 세로 방향으로 +/-m*p 펠이고, n과 m이 임의의 양의 정수이고 p가 임의의 분수이며,
    두번째 미리 정의된 서치 영역 중심으로부터 세번째 작업의 서치 포인트 거리가 (1) 가로 방향에서 n*p 펠보다 작거나 동일하고; (2) 세로 방향에서 m*p 펠보다 작거나 동일한 경우, 세번째 작업의 서치 포인트는 두번째 작업의 서치 포인트에 대해 잉여라고 생각되고,
    잉여인 서치 포인트에 위치한 후보 블록에 대한 매칭 코스트가 계산되지 않는 것을 특징으로 하는 움직임 추정 장치.
  49. 제48항에 있어서,
    상기 서브 펠 서치는 (1) p가 0.5와 동일한 경우 1/2 펠 서치; (2) p가 0.25와 동일한 경우 1/4 펠 서치 또는; (3) p가 0.125와 동일한 경우 1/8 펠 서치 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  50. 제34항에 있어서,
    제1움직임 보상기가 각 후보 블록과 현재의 픽셀 블록 사이의 매칭 코스트를 계산하고,
    결정 모듈이 각 후보 블록으로부터의 각 매칭 코스트를 이전에 발견된 가장 낮은 매칭 코스트와 차례로 비교하며,
    최적 매치된 풀 펠 픽셀 블록이 가장 낮은 매칭 코스트를 제공하는 후보 픽셀 블록인 것을 특징으로 하는 움직임 추정 장치.
  51. 제50항에 있어서, 매칭 코스트가 후보 블록과 현재 블록 사이의 왜곡 측정을 포함하는 것을 특징으로 하는 움직임 추정 장치.
  52. 제34항에 있어서,
    첫번째 서브 펠 서치에서,
    제2움직임 추정기는 각 후보 서브 펠 서브 블록과 N개의 현재 픽셀 서브 블록의 각각 하나와의 사이에서 매칭 코스트를 계산하고;
    결정 모듈은 각 후보 서브 펠 서브 블록으로부터의 각 매칭 코스트를 차례로 각 후보 서브 블록에 대한 이전에 발견된 가장 낮은 매칭 코스트와 비교하고,
    N 개의 최적 매치된 서브 펠 픽셀 서브 블록은 N개의 현재 서브 블록 각각에 대해 가장 낮은 매칭 코스트를 제공하는 N 개의 후보 서브 펠 픽셀 서브 블록이며,
    두번째 서브 펠 서치에서,
    제2움직임 보상기는 각 서브 펠 후보 블록과 현재의 픽셀 블록 사이의 매칭 코스트를 계산하고;
    결정 모듈은 각 후보 서브 펠 블록으로부터의 각 매칭 코스트를 차례로 이전에 발견된 가장 낮은 매칭 코스트와 비교하고,
    최적 매치된 서브 펠 픽셀 블록은 가장 낮은 매칭 코스트를 제공하는 후보 서브 펠 픽셀 블록인 것을 특징으로 하는 움직임 추정 장치.
  53. 제52항에 있어서,
    두번째 작업에서, 상기 첫번째 서브 펠 서치와 상기 두번째 서브 펠 서치는 동시에 수행되고,
    각 후보 서브 펠 픽셀 블록에 대한 매칭 코스트는 서브 펠 픽셀 서브 블록의 N 개의 매칭 코스트의 합을 포함하는 것을 특징으로 하는 움직임 추정 장치.
  54. 제52항에 있어서, 매칭 코스트가 후보 서브 펠 블록과 현재의 블록 또는 후보 서브 펠 서브 블록과 현재의 서브 블록 중 하나 사이의 왜곡 측정을 포함하는 것을 특징으로 하는 움직임 추정 장치.
  55. 제34항에 있어서,
    제3움직임 추정기는 각 후보 서브 펠 서브 블록과 N 개의 현재 픽셀 서브 블록의 각각 하나와의 사이의 매칭 코스트를 계산하고;
    결정 모듈은 각 후보 서브 펠 서브 블록으로부터의 각 매칭 코스트를 차례로 각 현재 서브 블록에 대해 이전에 발견된 가장 낮은 매칭 코스트와 비교하며,
    N 개의 새로운 최적 매치된 서브 펠 픽셀 서브 블록은 N 개의 현재 서브 블록의 각각에 대해 가장 낮은 매칭 코스트를 제공하는 N 개의 후보 픽셀 서브 블록인 것을 특징으로 하는 움직임 추정 장치.
  56. 제55항에 있어서, 매칭 코스트는 후보 서브 펠 서브 블록과 현재의 서브 블록 사이의 왜곡 측정을 포함하는 것을 특징으로 하는 움직임 추정 장치.
  57. 제34항에 있어서, N은 1 보다 큰 임의의 양의 정수인 것을 특징으로 하는 움직임 추정 장치.
  58. 제32항에 있어서, 상기 서브 펠 서치는 1/2 펠 서치, 1/4 펠 서치, 또는 1/8 펠 서치 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  59. 제32항에 있어서,
    상기 블록은 16x16 픽셀 블록을 포함하고,
    상기 서브 블록은 8x8 픽셀 블록, 6x6 픽셀 블록, 4x4 픽셀 블록, 또는 2x2픽셀 블록 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  60. 제32항에 있어서,
    상기 블록은 8x8 픽셀 블록을 포함하고,
    상기 서브 블록은 6x6 픽셀 블록, 4x4 픽셀 블록, 또는 2x2 픽셀 블록 중 하나를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  61. 제32항에 있어서, 상기 픽셀 서브 블록 각각은 동일한 픽셀 수를 포함하는 것을 특징으로 하는 움직임 추정 장치.
  62. 제32항에 있어서, 각 픽셀 서브 블록은 각각이 동일한 픽셀 수를 포함하는 동일한 모양의 픽셀 블록을 포함하는 것을 특징으로 하는 움직임 추정 장치.
  63. 픽셀 블록의 움직임 추정 방법에 있어서,
    첫번째 작업에서, 두번째 비디오 프레임의 현재의 픽셀 블록에 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에 있는 다수의 후보 픽셀 블록으로부터 최적 매치된 풀 펠 픽셀 블록을 찾기 위해 첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역에서 풀 펠 서치를 수행하는 단계;
    현재의 픽셀 블록을 N개의 현재 픽셀 서브 블록으로 나누는 단계;
    두번째 작업에서, (1) N개의 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 두번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 서브 블록으로부터 N개의 개별 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해 첫번째 비디오 프레임의 두번째 미리 정의된 서치 영역에서 첫번째 서브 펠 서치 및; (2) 두번째 비디오 프레임의 현재의 픽셀 블록에 가장 가까운 매치인 두번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 블록으로부터 최적 매치된 서브 펠 픽셀 블록을 찾기 위해 두번째 미리 정의된 서치 영역에서 두번째 서브 펠 서치를 수행하는 단계;
    세번째 작업에서, N개의 현재 픽셀 서브 블록 각각에 대해 세번째 미리 정의된 서치 영역에 있는 다수의 후보 서브 펠 픽셀 서브 블록으로부터 새로운 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해 세번째 미리 정의된 서치 영역에서 N개의 개별 서브 펠 서치를 수행하는 단계;
    (1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트 및; (4) 세번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트 중 적어도 하나를 저장하는 단계 및;
    잉여인 서치 포인트에 대한 매칭 코스트가 계산되지 않고 저장되지 않도록, (1) 세번째 작업 동안의 첫번째와 세번째 작업; (2) 두번째 작업 동안의 첫번째와 두번째 작업 및; (3) 세번째 작업 동안의 두번째와 세번째 작업 중 적어도 하나 사이에서 잉여인 서치 포인트를 버리는 단계를 구비하여 이루어진 것을 특징으로 하는 움직임 추정 방법.
  64. 픽셀 블록의 움직임 추정 장치에 있어서,
    첫번째 비디오 프레임을 저장하는 제1프레임 저장장치;
    두번째 비디오 프레임을 저장하는 제2프레임 저장장치;
    첫번째 작업 풀 펠 서치에서, 두번째 비디오 프레임의 현재의 픽셀 블록에 가장 가까운 매치인 첫번째 미리 정의된 서치 영역에서 최적 매치된 풀 펠 픽셀 블록을 찾기 위해, 상기 두번째 비디오 프레임의 현재의 픽셀 블록을 상기 첫번째 비디오 프레임의 첫번째 미리 정의된 서치 영역으로부터의 다수의 후보 풀 펠 픽셀 블록과 비교하는 제1움직임 추정기;
    (1) 두번째 작업 첫번째 서브 펠 서치에서, N개의 현재 픽셀 서브 블록의 각각에 대해 가장 가까운 매치인 두번째 미리 정의된 서치 영역에서 N개의 개별 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해, 현재의 픽셀 블록을 나눔으로써 얻어진 N 개의 현재 픽셀 서브 블록을 상기 첫번째 비디오 프레임의 두번째 미리 정의된 서치 영역으로부터의 다수의 후보 서브 펠 픽셀 서브 블록과 비교하고, (2) 두번째 작업 두번째 서브 펠 서치에서, 현재의 픽셀 블록에 가장 가까운 매치인 두번째 미리 정의된 서치 영역에서 최적 매치된 서브 펠 픽셀 블록을 찾기 위해, 현재의 픽셀 블록을 두번째 미리 정의된 서치에서 다수의 후보 서브 펠 픽셀 블록과 비교하는 제2움직임 추정기;
    세번째 작업 서브 펠 서치에서, N개의 현재 픽셀 서브 블록 각각에 대해 세번째 미리 정의된 서치 영역에서 새로운 최적 매치된 서브 펠 픽셀 서브 블록을 찾기 위해, N 개의 현재 픽셀 서브 블록을 첫번째 비디오 프레임의 세번째 미리 정의된 서치 영역으로부터의 다수의 후보 서브 펠 픽셀 서브 블록과 비교하는 제3움직임 추정기;
    제1, 제2, 제3움직임 추정기 중 적어도 하나로부터의 어느 블록과 서브 블록이 가장 낮은 매칭 코스트를 갖는가를 결정하는 결정 모듈;
    결정 모듈로부터의 가장 낮은 매칭 코스트를 가지고 상기 블록 또는 상기 서브 블록 중 적어도 하나를 이용하여 현재의 픽셀 블록을 예상하는 움직임 보상기 및;
    (1) 첫번째 작업으로부터의 적어도 하나의 후보 픽셀 블록에 대한 서치 포인트와 매칭 코스트; (2) 두번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트; (3) 두번째 작업으로부터의 적어도 하나의 후보 서브 펠 픽셀 블록에 대한 서치 포인트와 매칭 코스트 및; (4) 세번째 작업으로부터의 복수의 후보 서브 펠 픽셀 서브 블록에 대한 서치 포인트와 매칭 코스트 중 적어도 하나를 저장하는 메모리를 구비하여 구성되고,
    잉여인 서치 포인트에 위치한 후보 블록과 서브 블록에 대한 매칭 코스트가 계산되지 않고 저장되지 않도록, (1) 세번째 작업 동안의 첫번째와 세번째 작업; (2) 두번째 작업 동안의 첫번째와 두번째 작업 및; (3) 세번째 작업 동안의 두번째와 세번째 작업 중 적어도 하나 사이의 잉여인 서치 포인트가 버려지는 것을 특징으로 하는 움직임 추정 장치.
KR10-2003-7015975A 2001-07-27 2002-07-25 서브 픽셀 움직임 추정을 위한 방법 및 장치 KR20040016878A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/917,185 2001-07-27
US09/917,185 US6859494B2 (en) 2001-07-27 2001-07-27 Methods and apparatus for sub-pixel motion estimation
PCT/US2002/023783 WO2003013143A2 (en) 2001-07-27 2002-07-25 Methods and apparatus for sub-pixel motion estimation

Publications (1)

Publication Number Publication Date
KR20040016878A true KR20040016878A (ko) 2004-02-25

Family

ID=25438458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7015975A KR20040016878A (ko) 2001-07-27 2002-07-25 서브 픽셀 움직임 추정을 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US6859494B2 (ko)
EP (1) EP1413144A2 (ko)
KR (1) KR20040016878A (ko)
CN (1) CN1533675A (ko)
CA (1) CA2449048A1 (ko)
MX (1) MXPA04000785A (ko)
WO (1) WO2003013143A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100747544B1 (ko) * 2006-03-31 2007-08-08 엘지전자 주식회사 움직임 추정 방법 및 장치
KR101434776B1 (ko) * 2012-01-17 2014-08-27 후지쯔 가부시끼가이샤 이미지의 코너 포인트를 정정하기 위한 방법 및 장치와 이미지 프로세싱 디바이스

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143609A (ja) * 2001-08-21 2003-05-16 Canon Inc 画像処理装置、画像処理方法、記録媒体及びプログラム
KR100924850B1 (ko) * 2002-01-24 2009-11-02 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
US8175159B2 (en) * 2002-01-24 2012-05-08 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
JP4724351B2 (ja) * 2002-07-15 2011-07-13 三菱電機株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
KR100508975B1 (ko) * 2003-05-20 2005-08-17 주식회사 팬택 다층 레벨 연속 제거 알고리즘을 이용한 동영상 움직임추정 방법
US7788605B1 (en) * 2003-05-22 2010-08-31 Apple Inc. Morphing between views of data
US7720148B2 (en) * 2004-03-26 2010-05-18 The Hong Kong University Of Science And Technology Efficient multi-frame motion estimation for video compression
US20060002474A1 (en) * 2004-06-26 2006-01-05 Oscar Chi-Lim Au Efficient multi-block motion estimation for video compression
TWI274297B (en) * 2004-11-19 2007-02-21 Aiptek Int Inc Method for deciding partition types of macro block
US7536487B1 (en) * 2005-03-11 2009-05-19 Ambarella, Inc. Low power memory hierarchy for high performance video processor
US7860165B2 (en) * 2005-05-20 2010-12-28 Microsoft Corporation Framework for fine-granular computational-complexity scalable motion estimation
US20060285597A1 (en) * 2005-06-20 2006-12-21 Flextronics International Usa, Inc. Reusing interpolated values in advanced video encoders
WO2007078800A1 (en) * 2005-12-15 2007-07-12 Analog Devices, Inc. Motion estimation using prediction guided decimated search
KR100772390B1 (ko) * 2006-01-23 2007-11-01 삼성전자주식회사 방향 보간 방법 및 그 장치와, 그 보간 방법이 적용된부호화 및 복호화 방법과 그 장치 및 복호화 장치
US9307122B2 (en) * 2006-09-27 2016-04-05 Core Wireless Licensing S.A.R.L. Method, apparatus, and computer program product for providing motion estimation for video encoding
US8213509B2 (en) * 2006-10-06 2012-07-03 Calos Fund Limited Liability Company Video coding on parallel processing systems
US20080310514A1 (en) * 2007-06-14 2008-12-18 Texas Instruments Incorporated Adaptive Density Search of Motion Estimation for Realtime Video Compression
KR101403343B1 (ko) 2007-10-04 2014-06-09 삼성전자주식회사 부화소 움직임 추정을 이용한 인터 예측 부호화, 복호화방법 및 장치
KR100922898B1 (ko) * 2007-12-17 2009-10-20 한국전자통신연구원 IP 미디어의 QoE 보장형 영상품질 측정장치 및측정방법
US8379727B2 (en) * 2008-09-26 2013-02-19 General Instrument Corporation Method and apparatus for scalable motion estimation
US8218644B1 (en) 2009-05-12 2012-07-10 Accumulus Technologies Inc. System for compressing and de-compressing data used in video processing
US8705615B1 (en) 2009-05-12 2014-04-22 Accumulus Technologies Inc. System for generating controllable difference measurements in a video processor
KR101451286B1 (ko) * 2010-02-23 2014-10-17 니폰덴신뎅와 가부시키가이샤 움직임 벡터 추정 방법, 다시점 영상 부호화 방법, 다시점 영상 복호 방법, 움직임 벡터 추정 장치, 다시점 영상 부호화 장치, 다시점 영상 복호 장치, 움직임 벡터 추정 프로그램, 다시점 영상 부호화 프로그램 및 다시점 영상 복호 프로그램
BR112012020993A2 (pt) * 2010-02-24 2016-05-03 Nippon Telegraph & Telephone método de codificação de vídeo de múltiplas visões , método de decodificação de vídeo de múltiplas visões, aparelho de codificação de vídeo de múltiplas visões, aparelho de decodificação de vídeo de múltiplas visões , e programa
TWI403175B (zh) * 2010-06-11 2013-07-21 Ind Tech Res Inst 畫面內預測模式最佳化方法與影像壓縮方法以及裝置
CN102547258B (zh) * 2010-12-14 2015-05-20 联芯科技有限公司 一种帧间编码中子象素搜索方法、运动搜索方法及其模块
EP2839654A4 (en) * 2012-04-20 2015-11-18 Intel Corp EFFICIENT FRACTIONAL MOTION ESTIMATION IN TERMS OF PERFORMANCE AND BANDWIDTH
US9781418B1 (en) * 2012-06-12 2017-10-03 Google Inc. Adaptive deadzone and rate-distortion skip in video processing
US9179155B1 (en) 2012-06-14 2015-11-03 Google Inc. Skipped macroblock video encoding enhancements
US9350970B2 (en) * 2012-12-14 2016-05-24 Qualcomm Incorporated Disparity vector derivation
US10477233B2 (en) * 2015-09-30 2019-11-12 Apple Inc. Predictor candidates for motion estimation search systems and methods
US11197009B2 (en) * 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels
US11202070B2 (en) 2019-05-30 2021-12-14 Hulu, LLC Parallel bi-directional intra-coding of sub-partitions

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093720A (en) 1990-08-20 1992-03-03 General Instrument Corporation Motion compensation for interlaced digital television signals
US5398079A (en) 1993-01-27 1995-03-14 General Instrument Corporation Half-pixel interpolation for a motion compensated digital video system
TW283289B (ko) 1994-04-11 1996-08-11 Gen Instrument Corp
US5638128A (en) 1994-11-08 1997-06-10 General Instrument Corporation Of Delaware Pixel interpolation filters for video decompression processor
KR100234264B1 (ko) * 1997-04-15 1999-12-15 윤종용 타겟윈도우 이동을 통한 블록 매칭방법
JP3813320B2 (ja) 1997-08-27 2006-08-23 株式会社東芝 動きベクトル検出方法および装置
US6278735B1 (en) * 1998-03-19 2001-08-21 International Business Machines Corporation Real-time single pass variable bit rate control strategy and encoder
US6438168B2 (en) * 2000-06-27 2002-08-20 Bamboo Media Casting, Inc. Bandwidth scaling of a compressed video stream

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100747544B1 (ko) * 2006-03-31 2007-08-08 엘지전자 주식회사 움직임 추정 방법 및 장치
KR101434776B1 (ko) * 2012-01-17 2014-08-27 후지쯔 가부시끼가이샤 이미지의 코너 포인트를 정정하기 위한 방법 및 장치와 이미지 프로세싱 디바이스
US9092844B2 (en) 2012-01-17 2015-07-28 Fujitsu Limited Method and apparatus for correcting corner point of image and image processing device

Also Published As

Publication number Publication date
CN1533675A (zh) 2004-09-29
MXPA04000785A (es) 2004-06-03
EP1413144A2 (en) 2004-04-28
CA2449048A1 (en) 2003-02-13
US20030021344A1 (en) 2003-01-30
US6859494B2 (en) 2005-02-22
WO2003013143A2 (en) 2003-02-13
WO2003013143A3 (en) 2004-02-12

Similar Documents

Publication Publication Date Title
KR20040016878A (ko) 서브 픽셀 움직임 추정을 위한 방법 및 장치
US11856220B2 (en) Reducing computational complexity when video encoding uses bi-predictively encoded frames
US7609763B2 (en) Advanced bi-directional predictive coding of video frames
US8401079B2 (en) Image coding apparatus, image coding method, image decoding apparatus, image decoding method and communication apparatus
US5731850A (en) Hybrid hierarchial/full-search MPEG encoder motion estimation
US7426308B2 (en) Intraframe and interframe interlace coding and decoding
CA2452632C (en) Method for sub-pixel value interpolation
EP0637894B1 (en) Apparatus and method for detecting motion vectors to half-pixel accuracy
US20030156646A1 (en) Multi-resolution motion estimation and compensation
RU2444856C2 (ru) Способ кодирования видеосигнала и способ декодирования, устройства для этого и носители хранения информации, которые хранят программы для этого
WO2003058945A2 (en) Coding dynamic filters
US20060120455A1 (en) Apparatus for motion estimation of video data
KR100246167B1 (ko) 듀얼프라임 움직임 추정시스템 및 방법
KR100238893B1 (ko) 참조 움직임 벡터수에 기초한 움직임 벡터 부호화 방법 및 그 장치
KR100235355B1 (ko) 개선된 움직임 추정 장치 및 그 추정 방법
KR100240620B1 (ko) 양방향의 반화소 움직임 추정을 위한 대칭 탐색 윈도우를 형성하는 방법 및 장치
KR102111437B1 (ko) 인트라 모드를 이용한 쿼터 픽셀 해상도를 갖는 영상 보간 방법 및 장치
KR0134496B1 (ko) 적응적 주사방식을 이용한 동영상 부호화장치
KR100238891B1 (ko) 개선된 움직임 추정 장치 및 그 추정 방법
AU2007237319B2 (en) Method for sub-pixel value interpolation

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid