KR20050033098A - 계층적 움직임 추정 방법 - Google Patents

계층적 움직임 추정 방법 Download PDF

Info

Publication number
KR20050033098A
KR20050033098A KR1020030069019A KR20030069019A KR20050033098A KR 20050033098 A KR20050033098 A KR 20050033098A KR 1020030069019 A KR1020030069019 A KR 1020030069019A KR 20030069019 A KR20030069019 A KR 20030069019A KR 20050033098 A KR20050033098 A KR 20050033098A
Authority
KR
South Korea
Prior art keywords
block
matching
motion estimation
motion vector
picture
Prior art date
Application number
KR1020030069019A
Other languages
English (en)
Other versions
KR100970726B1 (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 삼성전자주식회사
Priority to KR1020030069019A priority Critical patent/KR100970726B1/ko
Priority to US10/950,601 priority patent/US7433407B2/en
Priority to CNB2004100805859A priority patent/CN100401779C/zh
Publication of KR20050033098A publication Critical patent/KR20050033098A/ko
Application granted granted Critical
Publication of KR100970726B1 publication Critical patent/KR100970726B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step 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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • G06T2207/20052Discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

다양한 블록 모드로 움직임 추정이 가능한 계층적 움직임 추정 방법이 개시된다. 본 발명에 의한 계층적 움직임 추정 방법은, 최하위 서브 블록 단위로 계산된 정합 기준값들을 이용하여 상위 서브 블록 단위의 정합 기준값들을 계산하고, 다양한 블록 모드별로 계산된 다수의 정합 기준값들을 이용하여 입력 블록의 움직임 추정을 위한 블록 모드 및 모션 벡터를 결정한다. 본 발명에 의하면 계층적 움직임 추정 방법에 있어 다양한 블록 모드로 움직임 추정이 가능하고, 보다 빠른 속도로 움직임 추정해진다.

Description

계층적 움직임 추정 방법{Method of hierarchical motion estimation}
본 발명은 비디오 데이터의 계층적 움직임 추정에 관한 것으로서, 보다 상세하게는 다양한 블록 모드로 움직임 추정이 가능한 계층적 움직임 추정 방법에 관한 것이다.
비디오 데이터의 부호화 기술 중 하나인 움직임 추정은 소정의 측정 함수를 이용하여 현재 프레임 내의 매크로 블록과 가장 유사한 매크로 블록을 이전 프레임에서 탐색하여 양 매크로 블록의 위치의 차이를 나타내는 모션 벡터를 구하는 과정이다. 비디오 데이터의 부호화 과정에서 가장 많은 계산량을 필요로 하는 단계가 움직임 추정 단계이다.
전역 탐색(full search) 방식에 따른 현재 블록의 움직임 추정을 설명하면, 현재 블록이 16×16 사이즈의 매크로 블록인 경우, 현재 프레임 내의 매크로 블록과 가장 유사한 매크로 블록을 이전 프레임에서 탐색하여 양 매크로 블록의 위치의 차이를 나타내는 모션 벡터를 구한다. 움직임 추정에는 소정의 측정 함수를 이용하여 정합 기준값을 계산한다. 정합 기준값이 가장 작은 경우에 해당하는 이전 프레임 상의 매크로 블록이 현재 매크로 블록에 대응하는 이전 매크로 블록이 된다.
전술한 전역 탐색 방식을 이용한 움직임 추정의 경우 계산량이 매우 많아 실시간 비디오 데이터 부호화를 구현하는 것은 매우 어렵다.
움직임 추정 시 수행할 계산량을 줄이기 위한 다양한 고속 움직임 추정 기술들이 개발되었다. 고속 움직임 추정 기술 중 하나로 MRMCS(Muti-Resolution Multiple Candidate Search)가 있다.
도 1은 종래 기술에 따른 MRMCS의 개념도이다. 도 1을 참조하면, MRMCS는 부호화할 현재 블록과 이전 프레임이 원래 해상도를 가지는 하위 레벨(lower level)(104), 하위 레벨(104)의 원래 영상을 수평 및 수직으로 각각 2:1로 decimation하여 해상도를 낮춘 중간 레벨(Middle level)(102) 및 중간 레벨(102)의 영상을 다시 한번 수평 및 수직으로 각각 2:1로 decimation하여 해상도를 낮춘 상위 레벨(Upper level)(100)을 포함한다. MRMCS는 각 레벨에 따라 해상도가 서로 다른 3개의 영상을 이용하여 계층적으로 움직임 추정을 수행함으로써 고속 움직임 추정을 가능하게 한다.
보다 상세하게 종래 기술에 따른 MRMCS를 설명한다. 16×16 사이즈의 매크로 블록 단위로 움직임 추정을 하고, 움직임 추정의 탐색 범위는 [-16, +16]이라고 가정한다.
첫 번째 단계로, 상위 레벨(100)에서 원래 사이즈의 1/4로 줄어든 이전 프레임에 대해 원래 사이즈의 1/4인 4×4 사이즈의 현재 블록과 매칭되는 블록을 탐색한다. 탐색 범위는 원래 탐색 범위의 1/4인 [-4, +4]이다. 블록 정합 기준으로는 일반적으로 SAD(Sum of Absolute Differences) 함수를 사용한다. 상위 레벨(100)에서의 블록 탐색 결과 현재 블록과 가장 매칭되는 블록과 두 번째로 매칭되는 블록을 결정하고 각각의 경우의 모션 벡터를 구한다.
두 번째 단계로, 중간 레벨(102)에서는 상위 레벨(100)에서 결정한 두 개의 블록의 좌상측 꼭지점과 이미 부호화되어 모션 벡터가 정해진 매크로 블록들로서 현재 매크로 블록의 좌측, 상측 및 우상측에 위치한 3개의 매크로 블록들의 모션 벡터들의 중간값을 취하여 얻어진 모션 벡터가 가리키는 점의 세 개의 점을 중심으로 원래 사이즈의 1/2로 줄어든 이전 프레임에 대해 [-2, +2]의 부분 탐색을 수행하여 현재 블록과 가장 매칭되는 하나의 블록 및 모션 벡터를 구한다.
세 번째 단계로, 하위 레벨(104)의 이전 프레임, 즉 원래 크기의 이전 프레임에서 중간 레벨(102)에서 결정한 하나의 블록의 좌상측 꼭지점을 중심으로 [-2, +2]의 부분 탐색을 수행하여 현재 매크로 블록과 가장 매칭되는 하나의 매크로 블록 및 모션 벡터를 최종적으로 구한다.
최근에 개발된 H.264와 같은 비디오 데이터 부호화 표준에 채용된 움직임 추정 방법은 움직임 추정의 정확성 및 부호화 효율을 높이기 위해 16×16 사이즈의 블록뿐 아니라 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 사이즈의 서브 블록에 대한 움직임 추정을 수행한다.
도 2 및 도 3은 H.264 표준에서 이용하는 움직임 추정을 위한 다양한 블록 모드를 나타내는 도면이다. 도 2를 참조하면, 도 2의 (a) 내지 (d)는 각각 16×16 블록 모드, 16×8 블록 모드, 8×16 블록 모드 및 8×8 블록 모드를 나타낸다.
8×8 블록은 다시 도 3의 (a) 내지 (d)에 도시한 바와 같이 8×8 블록 모드, 8×4 블록 모드, 4×8 블록 모드 및 4×4 블록 모드로 움직임 추정이 수행된다.
그러나 종래의 MRMCS는 16×16 크기의 매크로 블록 또는 8×8 크기의 블록에 대한 움직임 추정만을 수행할 수 있도록 고안되어 H.264와 같이 다양한 사이즈의 블록들에 대해서는 이용할 수 없는 문제가 있다.
따라서 본 발명이 이루고자 하는 기술적 과제는, 다양한 블록 모드로 움직임 추정이 가능한 계층적 움직임 추정 방법을 제공하는데 있다.
상기 과제를 이루기 위해, 본 발명에 의한 계층적 움직임 추정 방법은,
상위 레벨의 현재 픽쳐 및 참조 픽쳐를 이용하여 상기 현재 픽쳐에 포함된 입력 블록의 적어도 하나의 모션 벡터 후보를 결정하는 단계; 상기 적어도 하나의 모션벡터 후보를 이용하여 중간 레벨의 현재 픽쳐 및 참조 픽쳐를 이용하여 상기 입력 블록의 모션 벡터 후보를 결정하는 단계; 상기 중간 레벨에서 결정된 모션 벡터 후보가 나타내는 참조 픽쳐 상의 참조 블록과 상기 입력 블록에 대해, 움직임 추정을 위한 다수의 블록 모드 중 최하위 블록 모드에 대응하는 최하위 서브 블록 단위로 소정의 측정함수를 이용하여 정합 기준값들을 계산하는 단계; 소정 탐색 범위 내에서 상기 참조 픽쳐 상의 상기 참조 블록의 위치를 변화시키면서 상기 정합 기준값 계산 단계를 반복하는 단계; 상기 최하위 서브 블록 단위로 계산된 다수의 정합 기준값들을 이용하여 상기 최하위 서브 블록 보다 큰 사이즈의 상위 서브 블록 단위로 상기 입력 블록과 상기 참조 블록간의 정합 기준값들을 계산하는 단계; 및 상기 계산된 다수의 정합 기준값들을 이용하여 상기 입력 블록의 움직임 추정을 위한 블록 모드 및 모션 벡터를 결정하는 단계를 포함한다.
또한, 상기 상위 서브 블록 단위로 상기 입력 블록과 상기 참조 블록간의 정합 기준값들을 계산하는 단계는 상기 상위 서브 블록에 포함된 적어도 두 개의 상기 최하위 서브 블록 단위로 계산된 적어도 두 개의 정합 기준값들을 더하는 것이 바람직하다.
또한, 상기 최하위 서브 블록은 4×4 사이즈의 블록인 것이 바람직하고, 상기 상위 서브 블록은 8×4, 4×8, 8×8, 16×8, 8×16 또는 16×16 중 적어도 하나의 사이즈의 블록인 것이 바람직하다.
또한, 정합 기준값 계산을 위한 상기 소정의 측정함수는 SAD(Sum of Absolute Difference) 함수, SATD((Sum of Absolute Transformed Difference) 함수 또는 SSD(Sum of Squared Difference) 함수 중 하나의 함수인 것이 바람직하다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.
도 4는 본 발명의 바람직한 실시예에 따른 비디오 데이터 부호화 장치의 블록도를 나타낸다.
도 4를 참조하면, 비디오 데이터 부호화 장치는 Transform/Quantizer(110), Dequantizer/Inverse transform(131), Deblocking filter(133), 픽쳐 재현부(135), Motion compensated predictor(137), Intra prediction부(139), Motion estimator(150), 감산부(170) 및 Entropy coding부(190)를 포함한다.
16×16 사이즈의 매크로 블록 단위로 비디오 데이터가 부호화 장치로 입력된다.
Transform/Quantizer(110)는 입력 매크로 블록을 소정 방식에 따라 변환한 후 양자화한다. 대표적인 영상 변환 기술로는 DCT(Discrete Cosing Transform)가 있다.
Dequantizer/Inverse transform(131)는 Transform/Quantizer(110)로부터 변환 후 양자화된 영상 데이터를 입력받아 역양자화 및 역변환한다.
Deblocking filter(133)는 Dequantizer/Inverse transform(131)로부터 역양자화 및 역변환된 영상 데이터를 입력받아 블록킹(blocking) 효과를 제거하기 위한 필터링을 수행한다.
픽쳐 재현부(135)는 필터링된 영상 데이터를 Deblocking filter(133)로부터 입력받아 픽쳐(picture) 단위로 영상을 재현하여 저장한다. 픽쳐는 프레임 단위의 영상이거나 필드 단위의 영상이다. 픽쳐 재현부(135)는 다수의 픽쳐를 저장할 수 있는 버퍼(도시되지 않음)를 구비한다. 버퍼에 저장된 다수의 픽쳐는 움직임 추정을 위해 제공되는 픽쳐로서 이하에서는 참조 픽쳐라 한다.
Motion estimator(150)는 부호화할 현재 매크로 블록을 입력받고, 픽쳐 재현부(135)에 저장된 적어도 하나의 참조 픽쳐를 제공받아 본 발명에 따른 계층적 움직임 추정 방법을 수행하여 블록 모드, 모션 벡터 또는 참조 픽쳐를 나타내는 인덱스를 포함한 모션 데이터를 출력한다. 또한, Motion estimator(150)는 도 2 및 도 3에 도시한 바와 같이 다양한 블록 모드에 따라 움직임 추정을 수행한다.
Motion compensated predictor(137)는 Motion estimator(150)로부터 입력된 모션 데이터에 따라, 픽쳐 재현부(135)에 저장된 다수의 참조 픽쳐들 중 움직임 추정에 이용된 참조 픽쳐로부터, 입력 매크로 블록에 대응하는 매크로 블록을 추출하여 출력한다.
감산부(170)는 입력 매크로 블록을 픽쳐간 예측 부호화하는 경우, Motion compensated predictor(137)로부터 입력 매크로 블록에 대응하는 참조 픽쳐 내의 매크로 블록을 입력받아 입력 매크로 블록과의 차분 연산을 수행하여 잔차 신호(residue signal)를 출력한다.
감산부(170)로부터 출력된 잔차 신호는 다시 Transform/Quantizer(110)에 의해 변환 및 양자화되고, Entropy coding부(190)에 의해 엔트로피 부호화되어 출력 비트 스트림이 생성된다.
Intra prediction부(139)는 참조 픽쳐를 이용하여 픽쳐간 예측 부호화가 아닌 픽쳐내 예측 부호화를 수행한다.
한편, 전술한 비디오 데이터 부호화 장치에 의해 생성된 비트 스트림을 복호화하는 비디오 데이터 복호부(decoder)(130)는 Dequantizer/Inverse transform(131), Deblocking filter(133), 픽쳐 재현부(135), Motion compensated predictor(137) 및 Intra prediction부(139)를 포함한다.
도 5는 본 발명의 바람직한 실시예에 따른 계층적 움직임 추정 방법의 흐름도를 나타낸다.
본 실시예에 따른 계층적 움직임 추정 방법은 도 1에 도시한 바와 같이 상위 레벨 및 중간 레벨에서와 같이 모션 벡터 후보를 결정한다. 16×16 사이즈의 현재 매크로 블록에 대해 본 발명에 따른 계층적 움직임 추정이 수행된다.
먼저, 상위 레벨에서 현재 블록의 두 개의 모션 벡터 후보를 결정한다(제310 단계). 즉, 원래 사이즈의 1/4로 줄어든 참조 픽쳐를 이용하여 원래 사이즈의 1/4인 4×4 사이즈의 현재 블록과 매칭되는 블록을 탐색하여 현재 블록과 가장 매칭되는 블록과 두 번째로 매칭되는 블록을 결정하고 각각의 경우의 모션 벡터를 구한다. 움직임 추정을 위한 전역 탐색 범위가 [-16, +16]인 경우, 상위 레벨에서의 탐색 범위는 원래 탐색 범위의 1/4인 [-4, +4]이다. 본 실시예에서 블록 정합 기준으로 SAD(Sum of Absolute Differences) 함수를 사용한다. 그러나 이에 한정하지 않으며 SATD(Sum of Absolute Transformed Difference) 함수 또는 SSD(Sum of Squared Difference) 함수 등의 다른 측정 함수를 사용할 수 있다.
상위 레벨에서 결정된 두 개의 모션벡터 후보를 이용하여 중간 레벨에서 현재 블록의 모션 벡터 후보를 결정한다(제320 단계). 중간 레벨에서는 상위 레벨에서 결정된 두 개의 모션벡터 후보뿐 아니라 이미 부호화되어 모션 벡터가 정해진 매크로 블록들로서 현재 매크로 블록에 인접한 매크로 블록들의 모션 벡터들을 이용한다. 도 6은 중간 레벨에서 현재 블록의 움직임 추정에 이용되는 인접 블록들을 나타내는 도면이다. 현재 매크로 블록 Bc의 좌측에 위치한 B3, 상측의 B1 및 우상측에 위치한 B2의 세 개의 블록들의 모션 벡터들을 이용한다.
즉, 중간 레벨에서는 상위 레벨에서 현재 블록과 가장 잘 매칭되는 블록으로 결정된 두 개의 참조 픽쳐 상의 블록의 좌상측 꼭지점과 현재 매크로 블록 Bc의 좌측에 위치한 B3, 상측의 B1 및 우상측에 위치한 B2의 세 개의 블록들의 모션 벡터들의 중간값(median value)을 취하여 얻어진 모션 벡터가 가리키는 점의 세 개의 점을 중심으로 [-2, +2]의 부분 탐색을 수행한다. 원래 사이즈의 1/2로 줄어든 참조 픽쳐 상에서 SAD 함수를 이용하여 계산된 정합 기준값이 최소가 되는 8×8 사이즈의 블록을 탐색한다. 정합기준값이 최소가 되는 참조 픽쳐 상의 블록이 결정되면, 현재 블록과 참조 픽쳐 상의 블록의 위치의 변화를 나타내는 모션 벡터가 결정된다.
중간 레벨에서 결정된 참조 픽쳐 상의 참조 블록과 입력 블록에 대해, 움직임 추정을 위한 다수의 블록 모드 중 최하위 블록 모드에 대응하는 최하위 서브 블록 단위로 소정의 측정함수를 이용하여 정합 기준값들을 계산한다(제330 단계).
본 발명에 따른 계층적 움직임 추정 방법은 도 2 및 도 3에 도시한 바와 같이 다양한 블록 모드를 이용한 움직임 추정을 지원한다. 최하위 블록 모드란 움직임 추정의 단위가 되는 블록의 사이즈가 가장 작은 블록 모드를 말하고 최하위 블록 모드에서 움직임 추정의 단위 블록을 최하위 서브 블록이라 한다. 도 2 및 도 3에 도시된 블록 모드 중 최하위 블록 모드는 4×4 블록 모드이고 최하위 서브 블록은 4×4 서브 블록이다. 본 실시예에 따른 최하위 서브 블록은 4×4 블록이다.
도 7a는 4×4 사이즈의 최하위 서브 블록 단위로 분할된 현재 매크로 블록을 나타낸다. 현재 매크로 블록의 사이즈는 16×16이므로 현재 매크로 블록은 도시한 바와 같이 B4×4(0) 내지 B4×4(15)의 16개의 4×4 서브 블록들로 분할된다.
중간 레벨에서 현재 블록의 모션 벡터 후보로 결정된 모션 벡터가 나타내는 하위 레벨의 참조 픽쳐 상의 블록(이하, 참조 블록이라 함)도 마찬가지로 16개의 4×4 서브 블록으로 분할한다. 현재 블록과 참조 블록의 서로 대응하는 최하위 서브 블록별로 SAD 함수를 이용하여 SAD4×4(0) 내지 SAD4×4(15)의 16개의 정합 기준값들을 계산한다. SAD4×4(k)는 현재 블록에 포함된 k번째 4×4 서브 블록과 참조 블록에 포함된 k번째 4×4 서브 블록을 대상으로 SAD 함수를 이용하여 계산된 정합 기준값이다.
하위 레벨의 참조 픽쳐 상에서 상기 참조 블록의 위치를 소정 탐색 범위 내에서 변화시키면서 제330 단계를 반복한다(제340 단계). 하위 레벨에서 [-2, +2]의 부분 탐색을 수행하는 경우, 참조 블록을 원래 위치에서 24회 이동시키고 그 때마다 현재 블록과 참조 블록간의 정합 기준값을 4×4 서브 블록 단위로 계산한다. 따라서 제330 단계와 제340 단계를 수행하면, SAD4×4(k)(0<=k<=15)가 25개씩 얻어진다.
제330 단계 및 제340 단계에서 4×4 서브 블록 단위로 계산된 현재 블록과의 정합 기준값들을 이용하여 4×4 크기의 최하위 서브 블록 보다 큰 사이즈의 상위 서브 블록 단위로 현재 블록과 참조 블록간의 정합 기준값들을 계산한다(제350 단계).
도 7b 내지 도 7g는 4×4 사이즈보다 큰 사이즈의 블록으로 분할된 현재 매크로 블록을 나타낸다. 도 7b는 8개의 8×4 사이즈의 서브 블록으로 분할된 경우이고, 도 7c는 8개의 4×8 사이즈의 서브 블록으로 분할된 경우이고, 도 7d는 4개의 8×8 사이즈의 서브 블록으로 분할된 경우이고, 도 7e는 2개의 16×8 사이즈의 서브 블록으로 분할된 경우이고, 도 7f는 2개의 8×16 사이즈의 서브 블록으로 분할된 경우이고, 도 7g는 서브 블록으로 분할되지 않은 현재 매크로 블록을 나타낸다.
도 7b에 도시한 바와 같은 8×4 사이즈의 서브 블록 단위로 현재 블록과 참조 블록를 대상으로 SAD 함수를 이용하여 계산된 정합 기준값을 SAD8×4(0) 내지 SAD8×4(7)이라 하면, 예컨대 SAD8×4(0)는 SAD4×4(0)과 SAD4×4 (1)을 더함으로써 구해지고, SAD8×4(2)는 SAD4×4(4)와 SAD4×4(5)을 더함으로써 구해진다.
도 7c에 도시한 바와 같은 4×8 사이즈의 서브 블록 단위로 현재 블록과 참조 블록을 대상으로 SAD 함수를 이용하여 계산된 정합 기준값을 SAD4×8(0) 내지 SAD4×8(7)이라 하면, 예컨대 SAD4×8(0)는 SAD4×4(0)과 SAD4×4 (4)을 더함으로써 구해지고, SAD4×8(1)는 SAD4×4(1)와 SAD4×4(5)을 더함으로써 구해진다.
SAD8×8, SAD16×8, SAD8×16 및 SAD16×16도 마찬가지 방식으로 미리 계산된 다수의 SAD4×4 중 적당한 몇 개의 값들을 더함으로써 구할 수 있다.
종래 기술에 따르면, 하위 레벨에서는 16×16 또는 8×8 사이즈의 현재 블록단위로만 중간 레벨에서 결정된 하나의 블록의 좌상측 꼭지점을 중심으로 [-2, +2]의 부분 탐색을 수행하여 현재 블록과 가장 매칭되는 하나의 블록 및 모션 벡터를 최종적으로 구한다. 그러나 본 발명에서는 최하위 서브 블록 단위로 부분 탐색을 하여 계산된 정합 기준값들을 이용하여 상위 서브 블록 단위의 정합 기준값들을 계산함으로써 종래와 같이 다양한 블록 모드 별로 일일이 정합 기준값을 계산할 필요가 없어 계산량을 감소시키고, 전역 탐색이 아닌 부분 탐색을 수행하기 때문에 움직임 추정에 소요되는 메모리 용량을 줄일 수 있다.
제330 단계 내지 제350 단계에서 계산된 다양한 서브 블록별 정합 기준값들을 이용하여 도 2 및 도 3에 도시한 바와 같은 다양한 블록 모드별 움직임 추정의 정확도 및 부호화시 발생하는 비트량의 대소를 판단하여 현재 매크로 블록의 움직임 추정을 위한 블록 모드 및 모션 벡터를 최종적으로 결정한다(제360 단계).
블록 모드마다 현재 블록과 참조 블록간의 정합 기준값들이 계산되면, 블록 모드별로 정합 기준값이 최소인 경우에 해당하는 참조 블록의 위치 및 모션 벡터를 결정할 수 있다. 블록 모드 별로 모션 벡터가 결정되면, 각각의 블록 모드에 따라 부호화하는 경우 발생하는 비트 량을 예측하여 블록 모드 별 발생 비트 량을 고려하여 최종적으로 현재 매크로 블록의 움직임 추정을 위한 블록 모드 및 모션 벡터를 결정한다.
움직임 추정을 위한 다양한 블록모드 별로 정합 기준값들이 계산되면, H.264와 같은 종래 기술에 따라 최종적으로 현재 매크로 블록의 움직임 추정을 위한 블록 모드 및 모션 벡터를 결정할 수 있으므로 최종적으로 블록 모드 및 모션 벡터를 결정하는 과정에 대한 보다 상세한 설명은 생략한다.
도 8a 및 도 8b는 종래 기술 및 본 발명에 따른 움직임 추정 방법의 성능을 나타내는 그래프이다. 도 8a는 H.264에서 사용하는 "Football"이라는 테스트 영상 시퀀스를 대상으로 종래의 MRMCS, 전역 탐색 방법 및 본 발명을 이용하여 각각 부호화한 경우의 PSNR(Peak Signal to Noise Ratio)을 나타낸다. 동일한 비트 레이트에서 본 발명에 따른 계층적 움직임 추정 방법을 이용하여 부호화된 영상의 PSNR은 전역 탐색 방법을 이용한 영상의 PSNR보다는 작으나 종래 MRMCS에 의해 부호화된 영상보다는 항상 크다.
도 8b는 H.264에서 사용하는 "Susie"라는 테스트 영상 시퀀스를 대상으로 종래 기술과 본 발명에 따라 부호화한 영상의 PSNR을 나타내는 그래프이다. "Susie"는 "Football" 보다 움직임이 작은 테스트 영상 시퀀스이므로 종래의 MRMCS, 전역 탐색 방법 및 본 발명에 따른 움직임 추정 방법의 3가지 방법에 따른 움직임 추정의 성능의 차이가 크지는 않다. 그러나, 도 8a의 그래프와 마찬가지로 동일한 비트 레이트에서 본 발명에 따른 계층적 움직임 추정 방법을 이용하여 부호화된 영상의 PSNR은 종래 MRMCS에 의해 부호화된 영상보다는 항상 크다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상 설명한 바와 같이, 본 발명은 다양한 블록 모드로 움직임 추정이 가능하고 보다 정확하게 움직임 추정이 가능한 계층적 움직임 추정 방법을 제공한다. 또한, 최하위 서브 블록 단위로 부분 탐색을 하여 계산된 정합 기준값들을 이용하여 상위 서브 블록 단위의 정합 기준값들을 계산함으로써 종래와 같이 다양한 블록 모드 별로 일일이 정합 기준값을 계산할 필요가 없어 고속 움직임 추정이 가능하여 실시간 비디오 데이터 부호화 구현에 적합하다. 본 발명에 따른 움직임 추정 방법을 하드웨어로 구현 시, 하위 레벨에서는 전역 탐색이 아닌 부분 탐색을 수행하기 때문에 움직임 추정에 소요되는 메모리 사이즈를 크게 줄일 수 있다.
도 1은 종래 기술에 따른 MRMCS의 개념도,
도 2 및 도 3은 H.264 표준에서 이용하는 움직임 추정을 위한 다양한 블록 모드를 나타내는 도면,
도 4는 본 발명의 바람직한 실시예에 따른 비디오 데이터 부호화 장치의 블록도,
도 5는 본 발명의 바람직한 실시예에 따른 계층적 움직임 추정 방법의 흐름도,
도 6은 중간 레벨에서 현재 블록의 움직임 추정에 이용되는 인접 블록들을 나타내는 도면,
도 7a 내지 도 7g는 다양한 서브 블록 단위로 분할된 현재 매크로 블록을 나타내는 도면,
도 8a 및 도 8b는 종래 기술 및 본 발명에 따른 움직임 추정 방법의 성능을 나타내는 그래프이다.

Claims (7)

  1. 계층적 움직임 추정 방법에 있어서,
    상위 레벨의 현재 픽쳐 및 참조 픽쳐를 이용하여 상기 현재 픽쳐에 포함된 입력 블록의 적어도 하나의 모션 벡터 후보를 결정하는 단계;
    상기 적어도 하나의 모션벡터 후보를 이용하여 중간 레벨의 현재 픽쳐 및 참조 픽쳐를 이용하여 상기 입력 블록의 모션 벡터 후보를 결정하는 단계;
    상기 중간 레벨에서 결정된 모션 벡터 후보가 나타내는 참조 픽쳐 상의 참조 블록과 상기 입력 블록에 대해, 움직임 추정을 위한 다수의 블록 모드 중 최하위 블록 모드에 대응하는 최하위 서브 블록 단위로 소정의 측정함수를 이용하여 정합 기준값들을 계산하는 단계;
    소정 탐색 범위 내에서 상기 참조 픽쳐 상의 상기 참조 블록의 위치를 변화시키면서 상기 정합 기준값 계산 단계를 반복하는 단계;
    상기 최하위 서브 블록 단위로 계산된 다수의 정합 기준값들을 이용하여 상기 최하위 서브 블록 보다 큰 사이즈의 상위 서브 블록 단위로 상기 입력 블록과 상기 참조 블록간의 정합 기준값들을 계산하는 단계; 및
    상기 계산된 다수의 정합 기준값들을 이용하여 상기 입력 블록의 움직임 추정을 위한 블록 모드 및 모션 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1 항에 있어서,
    상기 상위 서브 블록 단위로 상기 입력 블록과 상기 참조 블록간의 정합 기준값들을 계산하는 단계는 상기 상위 서브 블록에 포함된 적어도 두 개의 상기 최하위 서브 블록 단위로 계산된 적어도 두 개의 정합 기준값들을 더하는 것을 특징으로 하는 방법.
  3. 제1 항에 있어서,
    상기 최하위 서브 블록은 4×4 사이즈의 블록인 것을 특징으로 하는 방법.
  4. 제1 항에 있어서,
    상기 상위 서브 블록은 8×4, 4×8, 8×8, 16×8, 8×16 또는 16×16 중 적어도 하나의 사이즈의 블록인 것을 특징으로 하는 방법.
  5. 제1 항에 있어서,
    정합 기준값 계산을 위한 상기 소정의 측정함수는 SAD(Sum of Absolute Difference) 함수, SATD((Sum of Absolute Transformed Difference) 함수 또는 SSD(Sum of Squared Difference) 함수 중 하나의 함수인 것을 특징으로 하는 방법.
  6. 제1 항에 있어서,
    상기 참조 픽쳐 상의 상기 참조 블록의 위치를 변화시키면서 상기 정합 기준값 계산 단계를 반복하는 단계는 상기 참조 블록을 수직 또는 수평 방향으로 -2 화소 내지 +2 화소만큼 변화시키면서 상기 정합 기준값 계산 단계를 반복하는 것을 특징으로 하는 방법.
  7. 제1 항 내지 제6 항에 기재된 방법을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020030069019A 2003-10-04 2003-10-04 계층적 움직임 추정 방법 KR100970726B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020030069019A KR100970726B1 (ko) 2003-10-04 2003-10-04 계층적 움직임 추정 방법
US10/950,601 US7433407B2 (en) 2003-10-04 2004-09-28 Method for hierarchical motion estimation
CNB2004100805859A CN100401779C (zh) 2003-10-04 2004-10-08 用于分级运动估计的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030069019A KR100970726B1 (ko) 2003-10-04 2003-10-04 계층적 움직임 추정 방법

Publications (2)

Publication Number Publication Date
KR20050033098A true KR20050033098A (ko) 2005-04-12
KR100970726B1 KR100970726B1 (ko) 2010-07-16

Family

ID=34386738

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030069019A KR100970726B1 (ko) 2003-10-04 2003-10-04 계층적 움직임 추정 방법

Country Status (3)

Country Link
US (1) US7433407B2 (ko)
KR (1) KR100970726B1 (ko)
CN (1) CN100401779C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8599922B2 (en) 2008-12-02 2013-12-03 Samsung Electronics Co., Ltd. Apparatus and method of estimating motion using block division and coupling

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080037642A1 (en) * 2004-06-29 2008-02-14 Sony Corporation Motion Compensation Prediction Method and Motion Compensation Prediction Apparatus
US20060126726A1 (en) * 2004-12-10 2006-06-15 Lin Teng C Digital signal processing structure for decoding multiple video standards
US20060146932A1 (en) * 2004-12-30 2006-07-06 Krit Panusopone Method and apparatus for providing motion estimation with weight prediction
EP1753242A2 (en) * 2005-07-18 2007-02-14 Matsushita Electric Industrial Co., Ltd. Switchable mode and prediction information coding
KR101228109B1 (ko) * 2006-07-24 2013-01-31 삼성전자주식회사 움직임 예측장치 및 방법과 이를 채용하는 영상 부호화장치및 방법
US8009732B2 (en) * 2006-09-01 2011-08-30 Seiko Epson Corporation In-loop noise reduction within an encoder framework
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
US8265136B2 (en) * 2007-02-20 2012-09-11 Vixs Systems, Inc. Motion refinement engine for use in video encoding in accordance with a plurality of sub-pixel resolutions and methods for use therewith
US8432970B1 (en) 2007-12-14 2013-04-30 Marvell International Ltd. Block type selection
JP4309453B2 (ja) * 2007-12-26 2009-08-05 株式会社東芝 補間フレーム生成装置、補間フレーム生成方法及び放送受信装置
US20110135001A1 (en) * 2009-12-07 2011-06-09 Silicon Integrated Systems Corp. Hierarchical motion estimation method using dynamic search range determination
WO2011120221A1 (en) * 2010-03-31 2011-10-06 Intel Corporation Power efficient motion estimation techniques for video encoding
CN107707912B (zh) * 2011-12-28 2020-05-22 Jvc 建伍株式会社 动图像编码装置以及动图像编码方法
CN103716639B (zh) * 2013-12-25 2017-04-19 同观科技(深圳)有限公司 一种帧图像运动估计的搜索算法
EP3846133A4 (en) * 2018-08-30 2021-10-20 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE, AND TRIDIMENSIONAL DATA DECODING DEVICE
KR102681958B1 (ko) * 2018-12-18 2024-07-08 삼성전자주식회사 계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0734175B1 (en) * 1995-03-20 2000-06-28 Daewoo Electronics Co., Ltd Hierarchical motion vector estimation using multiple block sizes
KR100275694B1 (ko) * 1998-03-02 2000-12-15 윤덕용 실시간 동영상 부호화를 위한 초고속 움직임 벡터 추정방법
KR100359091B1 (ko) * 1998-11-18 2003-01-24 삼성전자 주식회사 움직임추정장치
KR100677082B1 (ko) * 2000-01-27 2007-02-01 삼성전자주식회사 움직임 추정기
US7079579B2 (en) * 2000-07-13 2006-07-18 Samsung Electronics Co., Ltd. Block matching processor and method for block matching motion estimation in video compression
KR100407691B1 (ko) * 2000-12-21 2003-12-01 한국전자통신연구원 계층탐색을 이용한 움직임 추정장치 및 방법
US6782052B2 (en) * 2001-03-16 2004-08-24 Sharp Laboratories Of America, Inc. Reference frame prediction and block mode prediction for fast motion searching in advanced video coding
DE60218928D1 (de) 2001-04-30 2007-05-03 St Microelectronics Pvt Ltd Effiziente Niedrigleistungsbewegungsschätzung für eine Video-Vollbildsequenz
KR100446235B1 (ko) 2001-05-07 2004-08-30 엘지전자 주식회사 다중 후보를 이용한 움직임 벡터 병합 탐색 방법
US6987866B2 (en) * 2001-06-05 2006-01-17 Micron Technology, Inc. Multi-modal motion estimation for video sequences
KR100408294B1 (ko) 2001-09-05 2003-12-01 삼성전자주식회사 저전송율 동영상 부호화에 적합한 움직임 추정 방법
JP4923368B2 (ja) 2001-09-17 2012-04-25 富士通株式会社 追跡型動きベクトル探索方法及び装置
TW548990B (en) 2001-12-31 2003-08-21 Univ Nat Chiao Tung Fast motion estimation method using N-queen pixel decimation
US7471725B2 (en) * 2003-03-26 2008-12-30 Lsi Corporation Segmented motion estimation with no search for small block sizes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8599922B2 (en) 2008-12-02 2013-12-03 Samsung Electronics Co., Ltd. Apparatus and method of estimating motion using block division and coupling

Also Published As

Publication number Publication date
US20050074064A1 (en) 2005-04-07
CN100401779C (zh) 2008-07-09
CN1604650A (zh) 2005-04-06
US7433407B2 (en) 2008-10-07
KR100970726B1 (ko) 2010-07-16

Similar Documents

Publication Publication Date Title
JP5422168B2 (ja) 動画像符号化方法および動画像復号化方法
CN110809887B (zh) 用于多参考预测的运动矢量修正的方法和装置
KR100510137B1 (ko) 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치
KR100970726B1 (ko) 계층적 움직임 추정 방법
KR101617740B1 (ko) 이미지들의 시퀀스를 인코딩하기 위한 방법 및 디바이스 및 이미지들의 시퀀스를 디코딩하기 위한 방법 및 디바이스
JP4662636B2 (ja) 動き推定とブロックマッチング・パターンの改良
RU2761511C2 (ru) Окно ограниченного доступа к памяти для уточнения вектора движения
TW201739252A (zh) 具有仿射運動補償的視訊編碼的方法以及裝置
KR100714698B1 (ko) 향상된 움직임 추정 방법, 상기 방법을 이용한 비디오인코딩 방법 및 장치
US7764740B2 (en) Fast block mode determining method for motion estimation, and apparatus thereof
JP4993676B2 (ja) 画像符号化装置及び画像符号化方法
KR20120030585A (ko) 동화상 부호화 장치, 동화상 부호화 방법, 동화상 부호화 프로그램, 동화상 복호 장치, 동화상 복호 방법 및 동화상 복호 프로그램
JP2006254349A (ja) 動きベクトル検出方法、動きベクトル検出装置およびコンピュータ上で動きベクトル検出処理を実行するコンピュータプログラム
WO2011064673A1 (en) Method of and apparatus for encoding video frames, method of and apparatus for decoding video frames
US9313496B2 (en) Video encoder and video encoding method as well as video decoder and video decoding method
KR20090087767A (ko) 영상의 인트라 예측 부호화 방법
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
JP4494803B2 (ja) 動き補償に基づいた改善されたノイズ予測方法及びその装置とそれを使用した動画符号化方法及びその装置
CN114650418A (zh) 解码方法、编码方法、装置及设备
JP7494403B2 (ja) 復号方法、符号化方法、装置、デバイスおよび記憶媒体
JP2007049553A (ja) 動画像符号化方法、装置及びプログラム
CN110876058B (zh) 一种历史候选列表更新方法与装置
WO2019150411A1 (ja) 映像符号化装置、映像符号化方法、映像復号装置、映像復号方法、及び映像符号化システム
KR100801974B1 (ko) 저비용 움직임 추정 장치 및 움직임 추정 방법
KR20040093605A (ko) 고속 움직임 추정을 위한 블록 모드 결정 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130627

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee