1. `움직임 추정` 및 `움직임 보상`에 의한 영상압축 (시간적 모델)
ㅇ 움직임 추정 (ME, Motion Estimation)
- 영상 프레임을 작은 블록들로 분할해놓고,
- 시간 상으로, 현재 블록이 이동한 블록을 예측해보는 것
* 블록 크기 단위 ☞ 아래 6.항 참조
ㅇ 움직임 보상 (MC, Motion Compensation)
- 예측과 실제 간 차이에 대해, 부가적인 정보를 사용하여,
- 움직임 추정의 부정확성을 보상하는 것
※ 통상, (움직임 추정, 움직임 보상) 후에,
- 데이터 압축을 위해, DPCM과 호프만 부호에 의한 무손실 압축을 수행하게 됨
2. 움직임 추정/보상 방식 구분
ㅇ 움직임 보상 프레임간 예측 방식 (Motion Compensated Interframe Prediction)
- 순방향 움직임 보상 프레임간 예측 (Forward prediction)
- 양방향 움직임 보상 프레임간 예측 (Bi-directional prediction)
ㅇ 매칭 단위에 따라,
- 화소 순환 알고리즘 (Pixel Recursive Algorithm, PRA)
- 블록 매칭 알고리즘 (Block Matching Algorithm, BMA)
* 구현의 간단함 때문에 블록 매칭 기반의 알고리즘이 널리 사용됨
3. 블록 매칭 기반의 `움직임 추정` 및 `움직임 보상`
ㅇ 블록 기반의 `움직임 추정 (Motion Estimation)`
- 현재 프레임 상의 부호화하려는 현재 블록이, 이전 또는 미래 프레임(참조 프레임)
상의 어떤 블록으로부터 이동되었는지를 추정하는 과정을 말함
. 즉, 압축하려는 현재 블록의 부호화시에 목표 블록과 가장 유사한 블록을 찾아내는 것
- 비디오 객체 또는 화면처리 단위 블럭(Macro Block 등)이 시간상으로 어느 위치로
움직였는지를 추정하는 것
. 화면 간 시간적 중복성을 제거하는 동영상 압축 등 비디오 영상처리 분야에
광범위하게 응용됨
ㅇ 블록 기반의 `움직임 보상(Motion Compensation)`
- 부호화하려는 현재 블록과 예측 블록과의 차이에 대한 부가적인 정보로써,
. 오차 블록을 만드는 과정을 말함
ㅇ 결국, 블록 기반의 움직임 추정이라함은,
- 현재 프레임이 이동된 목표 블록과 가장 일치하는 영역을,
. 참조 프레임 영역 내에서 탐색하여 찾아내는 과정을 말함.
* 참조 프레임 (reference frame)
. 이전에 코딩되어 전송된, 1 이상의 과거 또는 미래의 프레임
* 예측 프레임 (predict frame)
. 참조 프레임으로부터 생성됨
4. 블록 일치 여부에 대한 최적화 판단 기준
ㅇ 현재 매크로블록 내 화소값들과 예측(참조) 매크로블록 내 화소값들 사이에서,
- 일반적으로, MSE(평균제곱오차)가 최소가 되는 기준에 따라 블록을 찾아냄
5. `움직임 벡터 (Motion Vector)`
ㅇ 움직임이 어떻게 보상되었는지를 알려줌
- 현재 블록의 위치와 예측 블록(참조 블록)의 위치와의 차이 값을 말함
- 영상 코딩 후 움직임 벡터를 함께 전송하게 됨
6. 움직임 블록 크기 단위 : 화면을 일정한 크기의 단위로 나눔
ㅇ MPEG-1/MPEG-2,H.261,H.263 등 : 16x16
- 보통 16x16을 매크로블록 이라함 (DCT변환 단위인 8x8 화소블록 4개 모인것)
ㅇ MPEG-4 : 16x16, 8x8
ㅇ H.264/AVC : 16x16,16x8,8x16,8x8,8x4,4x8,4x4 (가변 선택 가능)