KR20050033098A - 계층적 움직임 추정 방법 - Google Patents
계층적 움직임 추정 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 239000013598 vector Substances 0.000 claims abstract description 42
- 238000005259 measurement Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/238—Analysis of motion using block-matching using non-full search, e.g. three-step search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
- G06T2207/20052—Discrete 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
본 발명은 비디오 데이터의 계층적 움직임 추정에 관한 것으로서, 보다 상세하게는 다양한 블록 모드로 움직임 추정이 가능한 계층적 움직임 추정 방법에 관한 것이다.
비디오 데이터의 부호화 기술 중 하나인 움직임 추정은 소정의 측정 함수를 이용하여 현재 프레임 내의 매크로 블록과 가장 유사한 매크로 블록을 이전 프레임에서 탐색하여 양 매크로 블록의 위치의 차이를 나타내는 모션 벡터를 구하는 과정이다. 비디오 데이터의 부호화 과정에서 가장 많은 계산량을 필요로 하는 단계가 움직임 추정 단계이다.
전역 탐색(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 항에 있어서,상기 상위 서브 블록 단위로 상기 입력 블록과 상기 참조 블록간의 정합 기준값들을 계산하는 단계는 상기 상위 서브 블록에 포함된 적어도 두 개의 상기 최하위 서브 블록 단위로 계산된 적어도 두 개의 정합 기준값들을 더하는 것을 특징으로 하는 방법.
- 제1 항에 있어서,상기 최하위 서브 블록은 4×4 사이즈의 블록인 것을 특징으로 하는 방법.
- 제1 항에 있어서,상기 상위 서브 블록은 8×4, 4×8, 8×8, 16×8, 8×16 또는 16×16 중 적어도 하나의 사이즈의 블록인 것을 특징으로 하는 방법.
- 제1 항에 있어서,정합 기준값 계산을 위한 상기 소정의 측정함수는 SAD(Sum of Absolute Difference) 함수, SATD((Sum of Absolute Transformed Difference) 함수 또는 SSD(Sum of Squared Difference) 함수 중 하나의 함수인 것을 특징으로 하는 방법.
- 제1 항에 있어서,상기 참조 픽쳐 상의 상기 참조 블록의 위치를 변화시키면서 상기 정합 기준값 계산 단계를 반복하는 단계는 상기 참조 블록을 수직 또는 수평 방향으로 -2 화소 내지 +2 화소만큼 변화시키면서 상기 정합 기준값 계산 단계를 반복하는 것을 특징으로 하는 방법.
- 제1 항 내지 제6 항에 기재된 방법을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
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)
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)
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)
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 |
-
2003
- 2003-10-04 KR KR1020030069019A patent/KR100970726B1/ko not_active IP Right Cessation
-
2004
- 2004-09-28 US US10/950,601 patent/US7433407B2/en not_active Expired - Fee Related
- 2004-10-08 CN CNB2004100805859A patent/CN100401779C/zh not_active Expired - Fee Related
Cited By (1)
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 |