190 likes | 422 Views
Motion Estimation 알고리즘 (BMA). 광운대학교 전자공학과 멀티미디어연구실 오 승 준 sjoh@media.kwangwoon.ac.kr. Matching Criteria. where C(x+k , y+l) : pixels of the macroblock in the current frame R(x+i+k , y+j+l) : pixels of the reference picture ([-p,p] : search region) video coding standards : N=M= 16
E N D
Motion Estimation 알고리즘(BMA) 광운대학교 전자공학과 멀티미디어연구실 오 승 준 sjoh@media.kwangwoon.ac.kr
Matching Criteria where C(x+k , y+l) : pixels of the macroblock in the current frame R(x+i+k , y+j+l) : pixels of the reference picture ([-p,p] : search region) video coding standards : N=M=16 best matched block : MAE(i,j) is minimized, that is R(x+i,y+i) motion vector : (i,j)
Block Matching Algorithms 개요 (1/2) • Full-Search Method 최소 MAE찾을 수 있으나 computation complexity가 문제 where motion vector search location compare pixels 3 operation ( subtraction, absolute-value, addition) picture resolution : picture rate : F
Three-step Search (3SS) • Koga. et al. in 1981 • Algorithms : based on a coarse-to fine approach with logarithmic decreasing in step size • 초기 step size : d/2 ( d: the maximum motion displacement) • Process • 초기 step size로 9 군데에서 MAD 계산 • 최소 MAD 값의 위치 구함 • step size를 반으로 줄인 후 MAD가 최소 되는 점을 중심으로 8개의 점을 구한다. • 이 과정을 반복
2-D Logarithmic Search (2DLOG) • Jain in 1981 • Alogrithms : +-type search pattern in each step • 초기 step size : d/4 • Process • 초기 step size로 5 군데에서 MAD 계산 • if MADn < MADn-1, then step_size = step_size/2 • if step_size = 1, 인접 8개점에 대한 MAD를 구함 • 이 점이 motion vector 된다.
Orthogonal Search (OSA) • Puri 1987 • 초기 step size : d/2 • Process • search window 중심으로 1점을 잡고, 수평방향 양쪽에서 2점을 잡는다. 이 2점을 중심으로 수직으로 각각 2점을 잡는다 • 수평축 3점에 대한 최소의 MAD를 구한다 • 2)에서 구한 점을 중심으로 수직방향으로 같은 방법으로 MAD를 구한다. • After step_size= step_size/2, 같은 방법 반복
Cross Search (CSA) • Ghanbari in 1990 • Algorithms : X-type search • 초기 step size : d/2 • Process • search window 중심으로 1점을 잡고, 그 점을 중심으로 대각선 으로 1점씩 잡는다. • 5점에 대한 최소의 MAD를 구한다 • After step_size= step_size/2, 같은 방법 반복 • 새로운 4점에 대한 MAD를 구하여 이전의 BDM보다 작으면 step_size= step_size -1, +-type search, 크면 X-type search
New Three-Step Search (N3SS) • Liou in 1994 • Algorithms : 작은 움직임이 있는 비디오 시퀀스를 위하여 Three-step search 수정; halfway-stop technique • 적용 : 비디오 회의와 같이 motion vector가 중앙에 몰려 있는 경우. • Process • small motion인 경우 • 중심점 주변 8 점의 MAD를 구한다. (중앙점 주변에 motion vector가 있다고 가정.) • 최소 MAD 점 주변의 3점에 대한 MAD를 구한다. • 이 점이 motion vector • large motion인 경우 : three-step search와 동일
Four-Step Search (4SS) • Po and Ma in 1996 • Algorithms: small initial step-size with three-step search; halfway-stop technique • 적용:center-based characteristic of the real world video sequence • 초기 step-size : d/4.
4SS (계속) • Process • large motion인 경우 • 9 군데 MAD를 구한다. • 최소 MAD 점을 중심으로 step-size를 줄이지 않고 수행 (1,2,3 step 까지) • 네 번째 step에서 step-size를 하나 줄이고 motion vector를 찾는다. • small motion인 경우 • 9 군데 MAD를 구한다. • If 최소 MAD 점 = 중심, then step_size= then step_size -1 • otherwise, step size를 줄이지 않고 최소 MAD 점을 중심으로 다시 최소 MAD 점을 찾는다. Go to 3) • step-size를 줄이고 motion vector를 찾는다.
Block-Base Gradient Descent Search (BBGDS) • Liu and Feig in 1996 • Algorithms : very center-based search pattern • 적용 : small motion인 경우 좋은 성능 • step size =1 고정 • Process • 중앙 부분의 9개점의 BDM을 구한다. • search window의 중앙이 최소 MAD일 때까지 반복 수행
Hierarchical Block Matching Algorithm (HBMA) • Process • integer value ME 방법으로 mv를 찾는다. • Refine mv to1/2-pixel accuracy • bilinear interpolation으로 8개 half-pixel blocks 구함 • 8 개 1/2-pixel에 대한 MAD 계산; 중심점과 비교 • MAD가 최소 되는 점 = 1/2-pixel accurate mv
Half-pixel accurate motion vector • Process • 현재 frame과 reference frame을 interpolation • BMA로 integer-pel accuracy을 가지는 mv를 구함 • bilinear interpolation으로 8개 half-pel blocks을 얻음 • 8개 half-pel checking points의 MAD를 구함 • prediction performance가 현저히 증가 • 대부분의 video coding 표준에서 사용
Hybrid search algorithm (HSA) • 4SS와 BBGDS을 같이 사용 • 큰 동작일 경우: 4SS • 작은 동작일 경우: BBGDS