MC, ME   Motion Compensation, Motion Estimation   움직임 보상, 움직임 추정, 움직임 예측

(2023-08-14)

참조 프레임, 예측 프레임


1. `움직임 추정` 및 `움직임 보상`에 의한 영상 압축 (시간모델)

  ※ 크게, 매칭 단위에 따라, 다음 2가지로 구분되나,
     - 화소 순환 알고리즘 (Pixel Recursive Algorithm, PRA)
     - 블록 매칭 알고리즘 (Block Matching Algorithm, BMA)
     * 주로, 구현의 간단함 때문에 블록 매칭 기반의 알고리즘이 널리 사용됨

  ㅇ 움직임 추정 (ME, Motion Estimation)
     - 영상 프레임을 작은 블록들로 분할해놓고,
     - 시간 상으로, 현재 블록이 이동한 블록을 예측해보는 것
     - 따라서, 띄엄띠엄 산재된 앞,뒤 영상 만으로 예측(추정)할 수 있다면, 충분한 압축이 가능 

     * 블록 크기 단위 ☞ 아래 5.항 참조

  ㅇ 움직임 보상 (MC, Motion Compensation)
     - 사실상, 움직임 예측 만으로는 부정확하여, 이에 대한 보상이 필요함
     - 즉, 예측과 실제 간 차이(오차)에 대해, 
     - 부가적인 정보를 사용하여, 움직임 추정의 부정확성을 보상하는 것

  ※ 통상, (움직임 추정, 움직임 보상) 후에,
     - DPCM호프만 부호에 의한, 실질적인 무손실 압축을 수행하게 됨


2. 블록 매칭 기반의 `움직임 추정` 및 `움직임 보상`

  ㅇ 블록 기반의 `움직임 추정 (Motion Estimation)`
     - 현재 프레임 상의 부호화하려는 현재 블록이, 
        . 이전 또는 미래 프레임 (참조 프레임) 상의 어떤 블록으로부터 이동되었는지를,
        . 추정하는 과정을 말함
        . 즉, 현재 블록과 가장 유사한 블록을 찾아내는 것
     - 결국, 비디오 객체 또는 화면처리 단위 블럭 (Macro Block 등)이,
        . 시간 상으로 어느 위치로 움직였는지를 추정하는 것
     - 화면 간 시간중복성을 제거하기 위함
        . 동영상 압축비디오 영상처리 분야에서, 광범위하게 응용됨

  ㅇ 블록 기반의 `움직임 보상 (Motion Compensation)`
     - 부호화하려는 현재 블록과 예측 블록과의 차이에 대한 보상을 위해, 부가적인 정보로 활용코자, 
        . 오차 블록을 만드는 과정을 말함 
     - 전송시,
        . 오차 블록은, 인코딩되어 전송되며,
        . 이때, 움직임 벡터도 함께 전송됨    ☞ 움직임 벡터(MV) 참조
     - 수신측 디코더는,
        . 전송 받은 움직임 벡터를 사용하여, 예측 영역을 재생성하게되며,
        . 이 예측 영역에다가 복원된(보상된) 오차 블럭을 합성하여, 원래의 영상 블럭을 재구성함

     * 오차 블록 : 현재 블록에서 예측 블록을 뺀 것

  ㅇ 결국, 블록 기반의 움직임 추정이라함은,
     - 현재 프레임 내 이동된 목표 블록과 가장 일치하는 영역을,
     - 참조 프레임 영역 내에서 탐색하여 찾아내는 과정을 말함.

     * 참조 프레임 (reference frame)
        . 이전에 코딩되어 전송된, 1 이상의 과거 또는 미래의 프레임

     * 예측 프레임 (predict frame)
        . 참조 프레임으로부터 생성됨


3. 블록 일치 여부에 대한 최적화 판단 기준  

  ㅇ 현재 매크로블록화소값들과 예측(참조) 매크로블록화소값들 사이에서,
     - 일반적으로, MSE(평균제곱오차)가 최소가 되는 기준에 따라 블록을 찾아냄


4. 움직임 블록 크기 단위  :  화면을 일정한 크기의 단위로 나눔

  ※ 대부분의 비디오 압축 표준에서, 16 x 16 이 움직임 예측,보상의 기본 단위로 쓰임

  ㅇ MPEG-1/MPEG-2,H.261,H.263 등  :  16 x 16
     - 보통 16x16을 매크로블록 이라고 함 
        . (DCT변환 단위인 8 x 8 화소블록이 4개 모인것)

  ㅇ MPEG-4  :  16 x 16, 8 x 8

  ㅇ H.264/AVC  :  16 x 16, 16 x 8, 8 x 16, 8 x 8, 8 x 4, 4 x 8, 4 x 4 (가변 선택 가능)

움직임 추정/보상
   1. 움직임 추정/보상   2. 움직임 벡터   3. 매크로 블록   4. 영상 변환  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"