본문 바로가기
정보과학/영상통신시스템

(토론)H.264의 움직임 추정 기법

by J1소프트 2023. 10. 18.
728x90

1.서론
 H.264와 MPEG-4(Part 10 AVC)가 같은 부호화 표준이란 것을 알았다. H.264는 H.26L 방식을 토대로 차세대 동영상 압축 방식 개발을 위해 ISO/IEC의 MPEG과 ITU-T의 VCEG 이 서로 합의하고 양 기관 전문가들의 연합팀(JVT)을 공식적으로 출범시켜 2003년에 제정되었다.[1]
명칭에 대한 통일성 또한 함께 진행되었으면 더 좋았지 않을까 생각한다.

 

2장에서는 H.264가 가변 블록 크기 움직임 추정 등 선 발표된 표준화와 어떤 면에서 차별화 되고 현재 크게 이슈가 되고 있는가? 라는 기본적인 내용을 알아보기 위해서 H.264의 특징들을 살펴보고, 3장에서는 H.264의 움직임 추정 방법을 통해서 TSS(Three Step Search), FSS(Four Step Search) 방식 등과 같은 고속 움직임 추정 기법들이 왜 필요한지 알아보며, H.264에서 움직임 추정의 연산 시간을 단축하기 위한 고속 추정 기법들에는 어떤 것들이 있으며, 이들에 대한 기본적인 개념에 대해 4장에서 살펴보고, 5장의 결론으로 맺는다.

2.H.264 특징

1)가변 블록 크기 움직임 추정
2)복수참조영상
3)1/4화소 움직임 예측, 보상
4)4x4 정수 DCT
5)Rate-Distortion Optimization

 

H.264의 영상 압축 표준은 블록기반의 움직임 추정(motion estimation)을 수행 한다. 움직임 추정은 동영상 부호화에서 시간적 중복성을 제거하여 비트율을 줄이는데 큰 역할을 한다. 특히, H.264는 다양한 크기의 가변 블록 크기 움직임 추정(variable block-basedmotion
estimation)을 하여 부호화 효율에 있어 많은 이득을 제공한다.


또한 H.264 는 1/4화소 단위의 움직임 벡터 예측을 수행하여 더욱 정확한 움직임 추정으로 부호화 효율을 한층 향상 시켰다. 그리고 복수개의 참조 영상(multiple reference frames)을 지원하기 때문에 현재 블록과 중복성이 가장 많은 프레임의 블록을 참조영상으로 선택하여 이전 프레임만을 참조영상으로 사용할 때 보다 더욱 큰 부호화 효율을 얻을 수 있었다.
또한 움직임 추정에 쓰이는 가변블록 모드와 3가지의 공간예측 모드(Intra16×16, Intra4×4, IBLOCK), SKIP모드 등 모든 가능한 부호화 모드 중에서 가장 최적의 모드를 선택하기 위해 율-왜곡 최적화 기술을 사용하여 H.264 BP(Baseline Profile)의 부호화 효율을 더욱 향상 시켰다. 이러한 새로운 부호화 기술로 인해, H.264는 기존의 H.263이나 MPEG-4 SP에 비해 동일한 화질에서 압축률이 최대 1.5 ∼ 2배 가량 더 좋다는 것이 실험을 통해 밝혀졌다. 그러나 새로운 부호화 기술을 채택함으로써 연산량이 증가하여 복잡도면에서는 MPEG-4 SP 부호화기 보다 약 16배 높은 것으로 나타났다.[6]

3.H.264 움직임 추정 방식
 H.264 동영상 표준 부호화 방식의 높은 압축률 제공은 여러 기술에 채택되어 다양한 응용분야에 사용되는 기술적 동향에도 불구하고 높은 압축률에 따르는 계산량 증가의 문제로 인해 실시간 구현에 어려움이 따른다. 기본적으로 H.264 동영상 표준 부호화 방식의 전영역 탐색 방식에 따른 탐색 영역은 그림2와 같이 결정된다. 탐색 원점의 cx, cy 는 부호화된 인접 블록의 움직임 벡터 중간값(median)으로 결정 된다. 이와 같은 탐색 원점의 이동은 움직임 벡터의 정확도를 높이고 전송할 움직임 벡터 정보를 줄일 수 있는 장점이 있다. 그림2에서와 같이 ω 의 탐색 영역 크기를 갖는 경우 탐색 영역 내 정화소 수는 ( 2 ω + 1) 2 이 된다. H.264 동영상 표준 부호화 방식의 움직임 추정(motion estimation)은 1/4화소 위치까지 움직임을 추정한다. 그림3에서와 같이 결정된 정화소를 중심으로 8개의 1/2화소 위치에서 움직임을 추정하고 이후 결정된 위치를 중심으로 8개의 1/4화소 위치에서 움직임을 추정한다.
   



H.264 동영상 표준 부호화 방식은 가변크기 블록 움직임 추정 방식으로 인하여 매크로 블록(macro block)에 대한 반복적인 움직임 추정 연산으로 압축 효율은 개선되었지만 계산량이 증가하는 문제점이 나타난다. 매크로 블록을 세분화하는 각 크기별 모드(mode)는 그림4와 같다.[5]

4.고속 움직임 추정 기법들
 영상 압축에 있어서 핵심 기술은 움직임 추정이라 할 수 있다. 이에 H.264/AVC에서는 기존의 압축 기술에 비해 움직임 추정에 있어 그림4와 같이 7가지 가변 블록을 사용하여 보다 정확한 움직임 추정을 하게 된다. H.264/AVC는 움직임 추정을 수행할 때 정수 화소만이 아닌 1/4 화소 단위까지 탐색을 행하여 기존 압축 기술 방식에 비해 보다 세밀한 움직임까지 추정하게 된다. 기존 압축 기술의 경우 움직임 추정 시 참조하는 영상을 전 프레임 하나만을 참조했다. 이러한 단일 참조 영상의 경우 몇 가지 영상이 반복적으로 나타나는 현상이 발생할 경우 이로 인한 열화 현상이 심하게 발생하는데 H.264/AVC에서는 복수의 참조 영상을 통해 움직임 추정을 하여 반복적인 현상으로 인한 열화 현상이 줄어들게 된다.
최신 동영상 비디오 부호화 표준인 H.264/AVC는 가변 블록 등 추가된 움직임 추정을 통해 압축 효율이 우수한 장점을 가지게 된다. 하지만 높은 압축 효율과 좋은 영상 품질을 가지기 위해 움직임 추정 시 필요한 움직임을 찾기 위해서는 반복적인 연산이 필요하다. 이러한 반복적인 연산으로 인해 압축에 필요한 연산 양이 많아지고 연산 시간이 늘어나게 된다. 따라서 움직임 추정에 필요한 시간을 줄이기 위해 많은 고속 움직임 추정 알고리즘들이 제안되었다.


4-1.기존 움직임 추정 알고리즘

기존 고속 움직임 추정 알고리즘의 경우 특정 지점을 대표로 해서 움직임 벡터를 찾는 방식이 많다.
예를 들어 그림5의 Three Step Search(이하 TSS) 방식의 경우 처음 9개 지점의 Cost를 구한 뒤 그중 가장 최적의 Cost를 찾아 다시 주변 8개와 비교하고 최적의 Cost 주변에서 8개를 추가로 비교하게 된다.
New Three Step Search, Novel Four Step Search, Diamond Search, Hexagon Based Search, UMHexagonS와 같은 기존의 많은 고속 움직임 추정 알고리즘의 경우 또한 최적의 Cost 주변으로 다시 최적 값을 찾는 과정을 반복하게 된다. 이 경우 최적 Cost값 주변에서 다시 추정을 시작하므로 이전 추정 과정의 결과에 따라 종속적으로 추정을 하고 Mode 별로 최적 값의 방향이 다르게 되므로 SAD(Sum of Absolute Differences)를 공유할 수 없게 된다.


(SAD는 두 영상의 차이에 대한 비교를 위해 자주 사용된다. 일반적으로 두 신호의 차이를 비교할 때는  MSE (Mean Square Error)를 사용하여 에러의 정도를 판단한다. 하지만 영상의 경우 처리할 데이터의 양이 많고 동영상 인코딩 시 빠른 처리 시간을 요구하므로 곱하기와 루트를 사용하는 MSE에 비해 좀 더 연산이 간단한 SAD가 주로 사용되게 된다. 일반적인 SAD만을 사용하게 될 경우 수식적인 최적 값을 찾아 실제 움직임과 관계가 적게 되고 움직임 벡터가 불규칙해지는 문제점이 존재한다. 이로 인해 영상의 품질(PSNR)이 저하되고 인코딩된 비트수가 증가한다. 이러한 문제점을 줄이기 위해서 통계적으로 만들어진 라그랑제 상수를 더하여 Cost 함수를 만들게 된다.)

그리고 기존의 전 영역 탐색을 할 때에도 그림 5의 (a)와 같은 나선형 추정을 사용하면 최초의 시작점이 움직임 벡터의 예측 값에서 출발하므로 각 Mode 별로 탐색하는 영역이 달라져 SAD 값을 공유할 수 없게 된다. 따라서 SAD를 공유하기 위해서는 그림6의 (b)와 같은 움직임 탐색의 방식을 사용해야 한다. 그림6에서 하이라이트 된 지점은 움직임 벡터 추정의
               

시작부분이다. 그림6의 (a)에서의 시작점은 예측된 움직임 벡터에 해당하는 점이다. 그림6의 (b)에서는 움직임 벡터의 가장 가장자리 점이 된다. 그림6의 경우 움직임 추정 영역이 (-2~+2)인 경우를 예를 든 것인데 그림6에서 처럼 탐색 범위가 -2~+2 인 경우 (-2, -2) 지점이 시작 지점이 된다.[3]

4-2.기타 움직임 추정 알고리즘
고속 움직임 추정 방식은 TSS(3 Step Search), FSS(4 Step Search) 방식 등이 있으며 이들 방식의 변형된 형태가 주를 이루고 있다.
기타 효율적인 전 영역 추정을 위해 인접 서브 매크로 블록과 독립적인 새로운 움직임 예측 방식[3], 블록 정합 오류의 특성을 이용한 새로운 탐색 방법을 제안하며 주변 블록의 움직임 벡터의 상관도를 이용하여 초기 탐색 지점을 선택하는 알고리즘[4], 인접된 블록 간의 움직임 벡터의 국부 통계 특성이 유사한 특성을 이용하여 움직임 추정을 위한 블록의 탐색 영역을 결정하고, 결정된 움직임 탐색 영역 내에서 TSS 방식의 변형된 형태인 다단계 탐색 과정을 취하여 전영역 탐색 움직임 추정 방식과 유사한 압축 효율을 유지한 방식[5], 가변 블록 크기 움직임 추정 및 공간예측 부호화를 효율적으로 생략하여 부호화 모드 결정을 빠르게 수행하는 고속 모드 결정법[6] 등과 같이 관련 분야에 대한 활발한 연구가 진행 중 이다.

5.결론 및 의견
 H.264가 기존의 동영상 압축 표준에 비하여 부호화 성능을 비롯한 유연성 등 많은 진보된 장점을 가지는 표준이란 점은 2장의 H.264의 특징에서와 같이 알 수 있었다. 이러한 여러 가지 특징적인 기능들로 인하여 부호화기 및 복호기의 복잡도 역시 함께 증가하는 문제점을 가지고 있으며, 이러한 연산 시간이 증가하는 문제점을 해결하기 위하여 고속 움직임 추정과 같은 많은, 그리고 활발한 연구가 이루어지고 있음을 알 수 있었다. 특히 국내에서도 관련 자료와 연구 자료를 찾기에 어렵지 않을 정도로 많은 연구가 이루어지고 있었다.
4장에서 살펴본 TSS, NTSS, FSS, DS 등 주력을 이루고 있는 고속 움직임 추정 알고리즘의 경우 탐색점을 줄이는 방법 즉 탐색 영역을 중심으로 구현되는 것으로 이해했다. 그리고 관련 자료에서 이들 알고리즘들 역시 압축 효율성이 떨어지거나, 영상의 품질을 저하시키는 단점들도 함께 지적됨으로써 향후 많은 부분 개선의 여지를 짐작할 수 있었다.
H.264는 이미 실용화 단계에 접어들었고, H.264의 원리를 정확히 이해하여 효율적으로 부호화기 및 복호기를 구현하는 적용 기술이 매우 중요한 이슈임을 알 수 있었다.


[참고문헌]
[1]5주차 강의 내용(영상 부호화를 위한 표준)
[2]"차세대 동화상 부호화 방식 MPEG-4 AVC/H.264의 기술동향" 국제 테크노 정보 연구소
[3]최진하, 이원재, 김재석, "H.264/AVC의 효율적인 전 영역 움직임 추정을 위한 새로운 움직임 벡터 예측 방법 제안" 2007년 5월 전자공학회 44권
[4]정봉수, 전병우, "예측 움직임 벡터와 블록 정합 오류 특성을 이용한 고속 움직임 추정 알고리즘" 2003 성균관대
[5]윤성현, 최권열, 이성수, 홍민철, "H264 동영상 표준 부호화 방식을 위한 고속 움직임 추정 기법" 한국통신학회 05-11 Vol.30
[6]한기훈, 이영열, "H.264의 가변 블록 크기 움직임 추정 및 공간 예측 부호화 생략에 의한 고속 모드 결정법" 2003 전자공학회 40권
[7]"H.264/MPEG-4 PART10 AVC Video Coding" 2004 McubeWorks 백서
[8]석진욱, 김범호, 이정우, 조창식, "HD급 H.264 기술의 발전 동향" 2006년 2월 전자통신동향분석 21권 1호