맨위로가기

움직임 보상

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

움직임 보상은 비디오 압축 기술로, 프레임 간의 움직임을 보상하여 비디오 데이터의 압축 효율을 높이는 데 사용된다. 이 기술은 영화의 연속된 프레임 간의 유사성을 활용하며, 프레임 간의 차이, 즉 움직임 정보를 저장하여 데이터 크기를 줄인다. 움직임 보상은 I 프레임, P 프레임, B 프레임과 같은 다양한 프레임 유형을 사용하여 구현되며, 블록 기반 움직임 보상(BMC)과 같은 다양한 기법이 사용된다. 이 기술은 비디오 압축뿐만 아니라 프레임 속도 변환 등 다양한 분야에 응용되며, 초기에는 아날로그 비디오에서 시작하여 디지털 비디오 압축 표준의 발전에 기여했다.

더 읽어볼만한 페이지

  • H.26x - H.262/MPEG-2 파트 2
    H.262/MPEG-2 파트 2는 디지털 TV 및 DVD 등에 사용되는 영상 압축 표준으로, HDTV 카메라의 비압축 영상 스트림을 효율적으로 압축하기 위해 다양한 화면 샘플링 기술을 활용하며, DVD-Video, HDV, XDCAM 등에서 활용된다.
  • H.26x - H.264/MPEG-4 AVC
    H.264/MPEG-4 AVC는 ITU-T와 ISO/IEC가 공동 개발한 비디오 코딩 표준으로, 높은 압축 효율과 다양한 기능을 제공하며, 블루레이 디스크, HD DVD 등에서 필수적인 비디오 압축 형식으로 사용된다.
  • 영상 압축 - 데이터 압축
    데이터 압축은 디지털 데이터의 크기를 줄여 저장 공간을 절약하고 전송 속도를 향상시키는 기술로, 모르스 부호에서 시작하여 ZIP, JPEG, LZ77 등 다양한 방식으로 발전해 왔으며, 무손실 압축과 손실 압축으로 나뉘고 최근에는 인공지능 기술을 활용하여 효율성을 높여 다양한 분야에서 활용되고 있다.
  • 영상 압축 - VP9
    VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다.
  • 영상 기술 - 애니메이션
    애니메이션은 정지된 이미지나 사물을 연속적으로 보여 움직임처럼 보이게 하는 시각 매체로, 실사 촬영 외 기술로 이미지를 움직이는 창작물을 의미하며, 제작 기법과 표현 방식에 따라 다양한 종류로 나뉘고 여러 매체를 통해 다양한 목적으로 활용된다.
  • 영상 기술 - 디지털 시네마
    디지털 시네마는 1990년대 후반부터 확산된 영화 제작 및 상영 방식으로, 스타워즈 에피소드 1과 돌비 디지털의 출시를 기점으로 DCI 표준화 및 VPF 모델 도입을 통해 극장 시스템이 전환되었으며, 현재 4K 해상도, 레이저 프로젝터 등의 기술 발전과 새로운 콘텐츠 배급 방식을 통해 향상된 관람 경험을 제공하지만 필름 옹호론과 단점에 대한 비판도 존재한다.
움직임 보상
개요
유형비디오 압축 기술
목표비디오 프레임을 효율적으로 예측하고 생성
관련 기술움직임 추정
설명움직임 보상은 이전 및/또는 미래 프레임을 참조하여 비디오 시퀀스의 프레임을 예측하는 데 사용되는 알고리즘입니다.
활용비디오 압축에서 움직임 보상은 이전 프레임과 현재 프레임 사이의 움직임을 설명함으로써 비디오 데이터를 압축하는 기술입니다.
작동 방식
기본 원리현재 프레임의 각 영역에 대해, 이전 프레임에서 가장 유사한 영역을 찾아 해당 영역의 움직임 벡터를 기록합니다.
움직임 벡터움직임 벡터는 현재 프레임의 영역이 이전 프레임에서 얼마나 이동했는지를 나타냅니다.
예측수신기(디코더)는 움직임 벡터와 이전 프레임의 정보를 사용하여 현재 프레임을 예측합니다.
장점시간적 중복성을 제거하여 압축 효율을 높일 수 있습니다.
비디오 데이터의 크기를 줄여 저장 및 전송에 용이합니다.
프레임 간 예측과의 관계
관계움직임 보상은 프레임 간 예측의 핵심 기술입니다.
프레임 간 예측프레임 간 예측은 이전 또는 이후 프레임을 사용하여 현재 프레임을 예측하는 기술입니다.
활용움직임 보정을 통해 프레임 간 예측의 정확도를 높일 수 있습니다.
표준
지원 표준H.264/MPEG-4 AVC
H.265/HEVC
MPEG-2

2. 프레임 간 예측

동영상은 이전 프레임과 현재 프레임이 매우 유사하다는 특징을 가지고 있다. 프레임 간 예측은 이러한 특징을 이용하여 이전 프레임으로부터 현재 프레임을 예측하는 기술이다. 프레임 간 예측을 사용하면 입력 이미지와 예측 이미지의 차이만 부호화하면 되므로 매우 높은 압축률을 달성할 수 있다. 프레임 간 예측에는 전방 예측, 후방 예측, 양방향 예측 방법이 있다.

프레임 간 예측의 종류는 다음과 같다.


  • I 프레임
  • P 프레임
  • B 프레임

2. 1. I 프레임, P 프레임, B 프레임

'''I 프레임''' (Intra-coded Frame영어)

: 프레임 간 예측을 사용하지 않고 부호화되는 프레임. 인트라 프레임 또는 키 프레임이라고도 한다.

'''P 프레임''' (Predicted Frame영어)

: 전방 예측만을 사용하여 부호화되는 프레임. MPEG에서 이미지는 이전 P 프레임에서 예측된다.[2]

'''B 프레임''' (Bi-directional Predicted Frame영어)

: 전방 예측, 후방 예측, 양방향 예측 중 하나를 선택하여 부호화되는 프레임. MPEG에서 이미지는 이전 또는 이후 P 프레임 양방향에서 예측된다.[2] B-프레임은 이미지 시퀀스가 순서대로 전송 및 저장되어야 하므로, 향후 프레임을 사용하여 B-프레임을 생성해야 하므로 더 복잡하다.[2]

3. 움직임 보상 (Motion Compensation)

움직임 보상(Motion Compensation)은 프레임 간 예측에서 발생하는 움직임을 보정하는 핵심 기술이다.

영상 압축에서 움직임 보상은 참조할 영상과 현재 부호화할 영상의 차이(잔차)를 부호화하고, 참조 영상이 어느 정도 거리에 있는지를 나타내는 벡터를 사용하는 방식으로 이루어진다.

일반적으로 영화의 많은 프레임에서 한 프레임과 다른 프레임 간의 유일한 차이점은 카메라의 움직임 또는 프레임 내 객체의 움직임 때문에 발생한다.

3. 1. 움직임 보상의 원리

영상 압축 표준에서 움직임 보상은 참조할 영상과 현재 부호화할 영상 간의 차이(잔차)를 부호화하고, 참조 영상이 어느 정도 거리에 있는지를 나타내는 벡터를 사용하는 방식으로 이루어진다. 영화의 많은 프레임에서 한 프레임과 다른 프레임 간의 차이는 주로 카메라나 프레임 내 객체의 움직임으로 인해 발생한다. 따라서 비디오 파일에서 한 프레임을 나타내는 정보의 상당 부분은 다음 프레임에 사용되는 정보와 동일하다.

움직임 보상을 사용하면 비디오 스트림에는 일부 전체(참조) 프레임이 포함된다. 그 사이의 프레임에 대해서는 이전 프레임을 다음 프레임으로 변환하는 데 필요한 정보만 저장된다.

''Elephants Dream'' 영화에서 연속된 두 프레임을 캡처하여 움직임 보상 작동 방식을 간단하게 나타낼 수 있다. 아래 표에서 볼 수 있듯이, 두 프레임 간의 하단(움직임 보상) 차이는 이전 이미지보다 훨씬 적은 세부 정보를 포함하므로 나머지보다 훨씬 더 잘 압축된다. 따라서 보상된 프레임을 인코딩하는 데 필요한 정보는 차이 프레임보다 훨씬 작다. 움직임 보상 코딩(움직임 추정, 움직임 보상)은 인코딩 복잡성의 90% 이상을 차지한다.

유형예시 프레임설명
원본
화면에 표시되는 전체 원본 프레임.
차이
원본 프레임과 다음 프레임 간의 차이.
움직임 보상 차이
원본 프레임과 다음 프레임 간의 차이, 2 픽셀 오른쪽으로 이동. 프레임을 이동하면 카메라의 패닝이 보상되므로 두 프레임 간에 더 큰 겹침이 발생한다.



MPEG에서 이미지는 이전 프레임(P 프레임) 또는 이전 및 이후 프레임 양방향(B 프레임)에서 예측된다. B 프레임은 이미지 시퀀스가 순서대로 전송 및 저장되어야 하므로, 향후 프레임을 사용하여 B 프레임을 생성해야 하므로 더 복잡하다.[2]

모션 보상을 사용하여 프레임을 예측한 후, 코더는 잔차를 찾아 압축하고 전송한다.

프레임 간 예측은 움직임 보상이라는 기술과 밀접하게 관련되어 있다. 일반적인 동영상에서는 이전 프레임과 현재 프레임이 완전히 같지 않고, 프레임 내의 물체가 움직이거나 카메라가 패닝을 함으로써 프레임 간에 움직임이 있다. 움직임 보상은 프레임 간 예측에서 이러한 움직임을 보완한다. 구체적으로, 현재 프레임을 예측하는 경우, 움직임만큼 이동시킨 위치의 이미지를 사용한다. 움직임 보상을 수행하기 위해서는 이미지의 움직임 양을 추정하는 움직임 벡터 탐색(Motion Estimation)이 필요하다. 부호화할 경우에는, 이 움직임 벡터(Motion Vector)도 함께 부호화한다.

또한, 카메라가 패닝한 경우를 제외하고, 프레임 전체가 동일한 방향으로 움직이는 경우는 적다. 프레임 내에서는 물체에 따라 움직임이 다르다. 따라서 프레임을 여러 영역으로 분할하고, 작은 영역마다 움직임 보상을 수행한다. MPEG에서는 16×16 픽셀 단위의 직사각형 블록(매크로 블록, Macroblock)을 사용하는 경우가 많다.

3. 2. 움직임 벡터 탐색 (Motion Estimation)

영상 압축 표준에서 움직임 보상은 참조 영상과 현재 부호화할 영상의 차이(잔차)를 부호화하는 방식으로 이루어진다. 움직임 보상을 위해 이미지의 움직임 양을 추정하는 '''움직임 벡터 탐색'''(Motion Estimation, ME)이 필요하며, 부호화 시에는 이 움직임 벡터(Motion Vector, MV)도 함께 부호화된다.

움직임 벡터 탐색은 현재 프레임의 각 블록에 대해 참조 프레임 내에서 가장 유사한 블록을 찾는 과정이다. 효율적인 움직임 벡터 탐색 알고리즘은 압축 성능에 큰 영향을 미친다. 일반적으로 움직임 보상 코딩(움직임 추정, 움직임 보상)은 인코딩 복잡성의 90% 이상을 차지한다.[2]

MPEG에서는 이미지를 이전 프레임(P 프레임) 또는 이전 및 이후 프레임 양방향(B 프레임)에서 예측한다. B 프레임은 이미지 시퀀스가 순서대로 전송 및 저장되어야 하므로, 향후 프레임을 사용하여 B 프레임을 생성해야 하므로 더 복잡하다.[2] 모션 보상을 사용하여 프레임을 예측한 후, 코더는 잔차를 찾아 압축하고 전송한다.

블록 움직임 보상(Block Motion Compensation, BMC)은 움직임 보상 이산 코사인 변환(MC DCT)이라고도 하며, 가장 널리 사용되는 움직임 보상 기술이다.[3] BMC에서 프레임은 픽셀 블록(예: MPEG의 16×16 픽셀의 매크로 블록)으로 분할된다. 각 블록은 참조 프레임의 동일한 크기의 블록에서 예측된다. 블록은 예측된 블록의 위치로 이동하는 것 외에는 어떤 방식으로도 변환되지 않는다. 이 이동은 ''움직임 벡터''로 표현된다.

인접 블록 벡터 간의 중복성을 활용하기 위해 (예: 여러 블록으로 덮인 단일 움직이는 객체의 경우) 비트 스트림에서 현재 움직임 벡터와 이전 움직임 벡터의 차이만 인코딩하는 것이 일반적이다. 이 차분 과정의 결과는 패닝이 가능한 전역 움직임 보상과 수학적으로 동일하다. 인코딩 파이프라인에서 더 나아가면, 엔트로피 부호화는 제로 벡터 주변의 움직임 벡터의 결과적인 통계적 분포를 활용하여 출력 크기를 줄인다.

블록을 정수가 아닌 픽셀 수만큼 이동할 수 있는데, 이를 ''서브 픽셀 정밀도''라고 한다. 중간 픽셀은 인접 픽셀을 보간하여 생성된다. 일반적으로 반 픽셀 또는 사분 픽셀 정밀도(Qpel, H.264 및 MPEG-4/ASP에서 사용)가 사용된다. 서브 픽셀 정밀도의 계산 비용은 보간에 필요한 추가 처리와 인코더 측에서 평가해야 할 잠재적 소스 블록 수가 훨씬 많기 때문에 훨씬 더 높다.

블록 움직임 보상의 주요 단점은 블록 경계에서 불연속성(블로킹 아티팩트)이 발생한다는 것이다. 이러한 아티팩트는 사람의 눈으로 쉽게 발견되는 날카로운 수평 및 수직 가장자리의 형태로 나타나며, 잔여 프레임의 변환 코딩에 사용되는 푸리에 관련 변환의 계수를 양자화하여 가짜 가장자리와 링잉 효과(고주파 서브 밴드의 큰 계수)를 생성한다.[4]

블록 움직임 보상은 ''현재'' 프레임을 겹치지 않는 블록으로 나누고, 움직임 보상 벡터는 해당 블록이 ''어디에서'' 왔는지 알려준다. (일반적인 오해는 ''이전 프레임''이 겹치지 않는 블록으로 나뉘고 움직임 보상 벡터가 해당 블록이 ''어디로'' 이동하는지 알려주는 것이다). 소스 블록은 일반적으로 소스 프레임에서 겹친다. 일부 비디오 압축 알고리즘은 이전에 전송된 여러 다른 프레임의 조각으로 현재 프레임을 조립한다.

프레임은 미래 프레임에서 예측할 수도 있다. 그러면 미래 프레임은 예측된 프레임 전에 인코딩해야 하므로 인코딩 순서가 실제 프레임 순서와 반드시 일치하지 않는다. 이러한 프레임은 일반적으로 예측된 프레임 바로 앞이나 뒤에 오는 I- 또는 P-프레임의 두 방향에서 예측된다. 이러한 양방향 예측 프레임을 B-프레임이라고 한다. 예를 들어 코딩 방식은 IBBPBBPBBPBB가 될 수 있다.

또한 움직임 보상을 위해 삼각형 타일의 사용도 제안되었다. 이 체계에서 프레임은 삼각형으로 타일링되고, 다음 프레임은 이러한 삼각형에 아핀 변환을 수행하여 생성된다.[5] 아핀 변환만 기록/전송된다. 이는 확대/축소, 회전, 이동 등을 처리할 수 있다.

'''가변 블록 크기 움직임 보상'''(VBSMC)은 인코더가 블록의 크기를 동적으로 선택할 수 있도록 하는 BMC(블록 기반 움직임 보상)의 사용이다. 비디오를 코딩할 때, 더 큰 블록을 사용하면 움직임 벡터를 나타내는 데 필요한 비트 수를 줄일 수 있으며, 더 작은 블록을 사용하면 인코딩할 예측 잔여 정보의 양을 줄일 수 있다. 다른 연구 분야에서는 블록 경계를 넘어 가변 형상 특징 메트릭을 사용하여 프레임 간 벡터를 계산하는 방식을 연구했다.[6] H.261MPEG-1 비디오와 같은 구형 설계는 일반적으로 고정 블록 크기를 사용하지만, H.263, MPEG-4 Part 2, H.264/MPEG-4 AVC, 및 VC-1과 같은 최신 설계는 인코더가 움직임을 나타내는 데 사용할 블록 크기를 동적으로 선택할 수 있도록 한다.

'''겹침 블록 움직임 보상'''(OBMC)은 예측 정확도를 높일 뿐만 아니라 블로킹 현상도 피할 수 있기 때문에 이러한 문제에 대한 훌륭한 해결책이다. OBMC를 사용할 때 블록은 일반적으로 각 차원에서 두 배 더 크고, 모든 8개의 인접 블록과 사분면 단위로 겹쳐진다. 따라서 각 픽셀은 4개의 블록에 속한다. 이러한 방식에서 각 픽셀에 대해 4개의 예측이 있으며, 이는 가중 평균으로 합산된다. 이러한 목적을 위해 블록은 4개의 겹침 윈도우의 합이 모든 위치에서 1과 같은 속성을 갖는 윈도우 함수와 연관된다.

OBMC의 복잡성을 줄이는 방법에 대한 연구에 따르면 윈도우 함수에 대한 기여도는 대각선으로 인접한 블록에 대해 가장 작다. 이 기여에 대한 가중치를 0으로 줄이고 다른 가중치를 동일한 양만큼 늘리면 품질에 큰 손실 없이 복잡성이 크게 줄어든다. 이러한 방식에서 각 픽셀은 4개가 아닌 3개의 블록에 속하며, 8개의 인접 블록을 사용하는 대신 보상할 각 블록에 대해 4개만 사용된다. 이러한 방식은 H.263 부록 F 고급 예측 모드에서 찾을 수 있다.

3. 3. 예측 벡터 (Predicted Motion Vector)

영상 압축 표준에서 움직임 보상은 주변 블록 또는 이전 프레임의 영상의 움직임 벡터 값을 이용하여 현재 예측된 움직임 벡터와의 차이값을 전송하는 방식으로 이루어진다. 이를 통해 전송 비트 양을 줄여 압축 효율을 높인다.

H.264/MPEG-4 AVC에서는 좌측, 상단, 좌상단 블록의 움직임 벡터를 참조하여 예측 벡터를 결정한다. 고효율 비디오 코딩(HEVC)에서는 좌측, 상단, 이전 프레임으로부터 최대 5개의 예측 벡터를 생성하여 그 중 적절한 값을 선택한다.

3. 4. SKIP 모드

화면의 움직임이 일정하여 영상 압축 기술이 예측한 움직임 벡터의 크기가 0이고, 잔차가 충분히 작아 무시할 수 있을 경우에는 두 데이터를 생략하고 넘어간다.

3. 5. 양방향 예측 (Bi-directional Prediction)

양방향 예측은 하나의 영상을 참조하는 대신, 두 개의 영상에서 참조하여 합성된 영상을 사용하는 기술이다. 두 개의 영상을 사용하므로 복잡도가 높지만, 그만큼 성능 효율이 뛰어나다.[2] 양방향 예측을 사용하여 부호화된 프레임을 B-프레임이라고 하며, 이러한 기술이 사용되지 않은 프레임을 P-프레임이라고 부른다.

MPEG에서 이미지는 이전 프레임(P 프레임) 또는 이전 및 이후 프레임 양방향으로(B 프레임)에서 예측된다. B 프레임은 이미지 시퀀스가 순서대로 전송 및 저장되어야 하므로, 향후 프레임을 사용하여 B 프레임을 생성해야 하므로 더 복잡하다.[2]

모션 보상을 사용하여 프레임을 예측한 후, 코더는 잔차를 찾아 압축하고 전송한다.

양방향 예측을 사용하면 예측 정확도가 높아진다. 예측 정확도가 높아지면 화질이 향상됨과 동시에 차분으로 부호화하는 부호량도 감소하여 매우 유리하다. 한편, 양방향 예측을 사용하여 부호화하려면 두 개의 예측 프레임 사이의 움직임 벡터 예측을 수행해야 하므로 처리량이 증가한다.

3. 6. 움직임 보상 정밀도

움직임 보상 정밀도는 움직임 벡터가 움직임을 얼마나 정확하게 표현하는지를 나타내는 척도이다. 움직임 벡터는 정수가 아닌 픽셀 수만큼 블록을 이동할 수 있는데, 이를 ''서브 픽셀 정밀도''라고 한다. 중간 픽셀은 인접 픽셀을 보간하여 생성된다. 일반적으로 반 화소 또는 1/4 화소 정밀도(Qpel, H.264 및 MPEG-4/ASP에서 사용)가 사용된다.[3]

H.261에서는 1 화소(풀 펠) 정밀도의 움직임을 추정하여 움직임 보상을 했다. 서브 픽셀 정밀도를 사용하면 보간에 필요한 추가 처리와 인코더 측에서 평가해야 할 잠재적 소스 블록 수가 훨씬 많기 때문에 계산 비용이 더 높다.

3. 6. 1. 소수 화소 정밀도 (Fractional Pixel Precision)

MPEG-1에서는 H.261에서 사용되던 정수 화소(풀 펠) 정밀도 움직임 보상에 더해, 반 화소(하프 펠) 정밀도의 움직임 보상이 가능해졌다. 물체의 움직임은 정확히 정수 화소 단위로 일어날 확률이 낮기 때문에, 정수 화소 미만 정밀도(소수 화소 정밀도)를 이용하는 것은 매우 중요하다. 소수 화소 단위로 어긋난 위치의 이미지를 생성하려면, 화소와 화소 사이의 값을 얻어야 하는데, 이 값은 필터링을 통해 화소를 내삽하여 얻는다. 소수 화소 정밀도 움직임 보상은 필터링의 로우패스 필터 효과 덕분에 예측에 사용되는 이미지의 노이즈를 억제하는 효과도 있다.

움직임 정밀도는 MPEG-4 비주얼 버전 1까지는 반 화소 단위였으나, 어드밴스드 심플 프로파일(ASP) 등을 포함하는 버전 2에서는 1/4 화소(쿼터 펠) 정밀도가 도입되었고, H.264에서도 사용된다. 이는 특히 천천히 패닝하는 영상에서 효과적이며, 움직임 정보만으로 대부분의 이미지를 재구성할 수 있게 한다.

움직임 정밀도를 높일수록 예측 이미지 품질은 향상되지만, 움직임 부호화에 필요한 부호량도 증가한다. 따라서 "어느 수준까지 정밀도를 높이는 것이 효과적인가?"에 대한 논의가 이루어졌다. 연구에 따르면 이미지 종류에 따라 다르지만, 1/8 화소 정밀도까지 유효하다는 것이 이론적으로 밝혀졌다. 그러나 정밀도를 높이면 연산량이 매우 커지고, 1/8 화소와 1/4 화소 간 압축 효율 차이가 거의 없으며, 이미지에 따라 압축 효율이 오히려 저하될 수 있다는 문제 때문에 1/8 화소 정밀도가 실용화될 가능성은 낮다.

3. 7. 움직임 보상 단위

움직임 보상은 프레임을 작은 블록 단위로 나누어 수행하는 것이 일반적이다. MPEG에서는 주로 16x16 픽셀 크기의 매크로 블록을 사용하며, H.263, MPEG-4에서는 8x8 픽셀 단위, H.264에서는 4x4 픽셀 단위까지 세분화된 블록을 사용하기도 한다. 영상의 특성에 따라 움직임 보상 단위를 다르게 선택할 수 있는데, 예를 들어 H.264에서는 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 등 다양한 크기의 블록을 선택할 수 있다.

3. 7. 1. 블록 기반 움직임 보상 (Block-based Motion Compensation)

블록 움직임 보상(Block Motion Compensation, BMC)은 움직임 보상 이산 코사인 변환(MC DCT)이라고도 불리며, 가장 널리 사용되는 움직임 보상 기술이다.[3] BMC는 프레임을 픽셀 블록(예: MPEG의 16×16 픽셀의 매크로 블록)으로 분할하여 각 블록을 참조 프레임의 동일한 크기의 블록에서 예측한다. 각 블록은 예측된 블록의 위치로 이동하는 것 외에는 어떤 방식으로도 변환되지 않으며, 이 이동은 ''움직임 벡터''로 표현된다.

인접 블록 벡터 간의 중복성을 활용하기 위해 (예: 여러 블록으로 덮인 단일 움직이는 객체의 경우) 비트 스트림에서 현재 움직임 벡터와 이전 움직임 벡터의 차이만 인코딩하는 것이 일반적이다. 이 차분 과정의 결과는 패닝이 가능한 전역 움직임 보상과 수학적으로 동일하다. 인코딩 파이프라인에서 더 나아가면, 엔트로피 부호화는 제로 벡터 주변의 움직임 벡터의 결과적인 통계적 분포를 활용하여 출력 크기를 줄인다.

블록을 정수가 아닌 픽셀 수만큼 이동할 수 있는데, 이를 ''서브 픽셀 정밀도''라고 한다. 중간 픽셀은 인접 픽셀을 보간하여 생성된다. 일반적으로 반 픽셀 또는 사분 픽셀 정밀도(Qpel, H.264 및 MPEG-4/ASP에서 사용)가 사용된다. 서브 픽셀 정밀도의 계산 비용은 보간에 필요한 추가 처리와 인코더 측에서 평가해야 할 잠재적 소스 블록 수가 훨씬 많기 때문에 훨씬 더 높다.

블록 움직임 보상의 주요 단점은 블록 경계에서 불연속성(블로킹 아티팩트)이 발생한다는 것이다. 이러한 아티팩트는 사람의 눈으로 쉽게 발견되는 날카로운 수평 및 수직 가장자리의 형태로 나타나며, 잔여 프레임의 변환 코딩에 사용되는 푸리에 관련 변환의 계수를 양자화하여 가짜 가장자리와 링잉 효과(고주파 서브 밴드의 큰 계수)를 생성한다.[4]

블록 움직임 보상은 ''현재'' 프레임을 겹치지 않는 블록으로 나누고, 움직임 보상 벡터는 해당 블록이 ''어디에서'' 왔는지 알려준다. (일반적인 오해는 ''이전 프레임''이 겹치지 않는 블록으로 나뉘고 움직임 보상 벡터가 해당 블록이 ''어디로'' 이동하는지 알려주는 것이다). 소스 블록은 일반적으로 소스 프레임에서 겹친다. 일부 비디오 압축 알고리즘은 이전에 전송된 여러 다른 프레임의 조각으로 현재 프레임을 조립한다.

MPEG에서는 이미지를 이전 프레임(P 프레임) 또는 이전 및 이후 프레임 양방향(B 프레임)에서 예측한다. B 프레임은 이미지 시퀀스가 순서대로 전송 및 저장되어야 하므로, 향후 프레임을 사용하여 B 프레임을 생성해야 하므로 더 복잡하다.[2]

프레임 간 예측은 움직임 보상(Motion compensation영어)이라고 불리는 기술과 떼려야 뗄 수 없는 관계에 있다. 일반적인 동영상에서는 이전 프레임과 현재 프레임이 완전히 같지 않고, 프레임 내의 물체가 움직이거나 카메라가 패닝을 함으로써 프레임 간에 움직임이 있다. 움직임 보상은 프레임 간 예측에서 이러한 움직임을 보완하는 것이다. 구체적으로는, 현재 프레임을 예측하는 경우, 움직임만큼 이동시킨 위치의 이미지를 사용한다. 움직임 보상을 수행하기 위해서는 이미지의 움직임 양을 추정하는 움직임 벡터 탐색(ME: Motion Estimation영어)이 필요하다. 부호화할 경우에는, 이 움직임 벡터(MV: Motion Vector영어)도 함께 부호화한다.

또한, 카메라가 패닝한 경우를 제외하고, 프레임 전체가 동일한 방향으로 움직이는 경우는 적다. 프레임 내에서는 물체에 따라 움직임이 다르다. 따라서 프레임을 여러 영역으로 분할하고, 작은 영역마다 움직임 보상을 수행한다. MPEG에서는 16×16 픽셀 단위의 직사각형 블록(매크로 블록, Macroblock영어)을 사용하는 경우가 많다. 움직임 보상의 단위도 중요하다. 일반적으로 MPEG-2까지는 16×16 픽셀의 블록 단위였던 예측 단위도, H.263MPEG-4에서 8×8 픽셀 단위가 도입되었고, H.264에서는 4×4 픽셀 단위까지 세분화되었다. 하지만, 영상의 윤곽 부분을 제외하면, 일반적인 동영상에서는 넓은 영역이 같은 방향으로 움직이는 경우가 많다. 그렇기 때문에 항상 세분화하는 것은 낭비이며, 개별 블록마다 움직임 정보를 전송하는 만큼 압축 효율이 저하된다. 따라서 어떤 단위로 분할할지를 선택할 수 있다. 예를 들어 H.264에서는 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 중에서 선택 가능하다. 즉, 현재 프레임 간 예측을 사용한 부호화에서는 영역 분할 정보와 개별 영역별 움직임 정보가 필요하다.

3. 7. 2. 가변 블록 크기 움직임 보상 (Variable Block-size Motion Compensation, VBSMC)

H.264/MPEG-4 AVC 등에서 사용되는 가변 블록 크기 움직임 보상(VBSMC)은 영상의 특성에 따라 블록의 크기를 동적으로 선택하여 움직임 보상을 수행하는 방식이다.[6] 움직임 보상은 현재 프레임을 예측할 때, 움직임 벡터를 이용하여 움직임만큼 이동시킨 위치의 이미지를 사용하여 프레임 간 예측에서 움직임을 보완하는 기술이다.

일반적으로 비디오를 코딩할 때, 더 큰 블록을 사용하면 움직임 벡터를 나타내는 데 필요한 비트 수를 줄일 수 있다. 반면, 더 작은 블록을 사용하면 인코딩할 예측 잔여 정보의 양을 줄일 수 있다. H.261, MPEG-1과 같은 구형 설계는 고정 블록 크기를 사용하지만, H.263, MPEG-4 Part 2, H.264/MPEG-4 AVC, VC-1과 같은 최신 설계는 인코더가 움직임을 나타내는 데 사용할 블록 크기를 동적으로 선택할 수 있도록 한다.[6]

MPEG에서는 16×16 픽셀 단위의 직사각형 블록(매크로 블록)을 사용하는 경우가 많다. 움직임 보상의 단위는 MPEG-2까지는 16×16 픽셀의 블록 단위였지만, H.263 및 MPEG-4에서 8×8 픽셀 단위가 도입되었고, H.264에서는 4×4 픽셀 단위까지 세분화되었다. 하지만 영상의 윤곽 부분을 제외하면, 일반적인 동영상에서는 넓은 영역이 같은 방향으로 움직이는 경우가 많다. 따라서 항상 세분화하는 것은 낭비이며, 개별 블록마다 움직임 정보를 전송하는 만큼 압축 효율이 저하된다.

H.264에서는 움직임 보상 단위를 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 중에서 선택 가능하다. 즉, 현재 프레임 간 예측을 사용한 부호화에서는 영역 분할 정보와 개별 영역별 움직임 정보가 필요하다.[6]

3. 7. 3. 겹침 블록 움직임 보상 (Overlapped Block Motion Compensation, OBMC)

'''겹침 블록 움직임 보상'''(Overlapped Block Motion Compensation, OBMC)은 예측 정확도를 높이고 블로킹 현상을 줄이는 데 효과적인 방법이다. OBMC에서는 블록들이 서로 겹쳐지게 되는데, 일반적으로 각 차원에서 두 배 더 큰 블록을 사용하고, 모든 8개의 인접 블록과 사분면 단위로 겹친다. 따라서 각 픽셀은 4개의 블록에 속하게 되며, 각 픽셀에 대해 4개의 예측값이 만들어지고, 이 예측값들은 가중 평균으로 합산된다. 이때, 각 블록은 4개의 겹침 윈도우의 합이 모든 위치에서 1이 되는 속성을 갖는 윈도우 함수와 연관된다.[4]

OBMC의 복잡성을 줄이기 위한 연구에 따르면, 윈도우 함수에 대한 기여도는 대각선으로 인접한 블록에서 가장 작다. 이 기여에 대한 가중치를 0으로 줄이고 다른 가중치를 동일한 양만큼 늘리면, 품질 저하를 최소화하면서 복잡성을 크게 낮출 수 있다. 이렇게 하면 각 픽셀은 4개가 아닌 3개의 블록에 속하게 되며, 8개의 인접 블록 대신 보상할 각 블록에 대해 4개만 사용된다. 이러한 방식은 H.263 부록 F 고급 예측 모드에서 사용된다.[4]

3. 8. 전역 움직임 보상 (Global Motion Compensation, GMC)

MPEG-4 버전 2에서는 화면 전체의 움직임을 아핀 변환 등으로 표현하여 프레임 단위로 움직임 보상을 수행하는 전역 움직임 보상(GMC: Global Motion Compensation)이 도입되었다. 이는 카메라의 팬, 틸트, 줌과 같이 화면 전체가 동일한 움직임을 나타내는 경우, 하나의 움직임 정보로 전체 화면의 움직임을 효과적으로 표현할 수 있기 때문이다. 전역 움직임 보상은 매크로 블록 단위의 움직임 보상과 함께 사용된다.[2]

전역 움직임 보상(GMC)은 다음과 같은 카메라 움직임을 모델링한다:

  • 돌리(Dolly) — 카메라를 앞이나 뒤로 이동
  • 트랙(Track) — 카메라를 좌우로 이동
  • 붐(Boom) — 카메라를 위아래로 이동
  • 팬(Pan) — 카메라를 Y축으로 회전시켜 시야를 좌우로 이동
  • 틸트(Tilt) — 카메라를 X축으로 회전시켜 시야를 위아래로 이동
  • 롤(Roll) — 시야 축을 중심으로 회전


GMC는 움직이는 물체가 없는 정지된 장면에 가장 적합하며 다음과 같은 장점을 가진다.

  • 몇 개의 매개변수만으로 비디오 시퀀스에서 주로 나타나는 움직임을 모델링하여 비트율 점유율을 최소화한다.
  • 프레임을 분할하지 않아 분할 경계에서 발생하는 인공물을 방지한다.
  • 프레임에서 동일한 공간 위치에 있는 픽셀의 직선(시간 방향)은 실제 장면에서 연속적으로 움직이는 점에 해당하여 시간 방향의 불연속성을 방지한다.


MPEG-4 ASP는 세 개의 기준점을 사용하여 GMC를 지원하지만, 일부 구현에서는 하나의 기준점만 사용될 수 있다. 하나의 기준점은 변환 움직임만 허용하며, 블록 기반 움직임 보상에 비해 큰 이점을 제공하지 못할 수 있다.

하지만, 프레임 내에 움직이는 객체가 있는 경우에는 GMC만으로는 충분하지 않으므로, 로컬 움직임 추정도 함께 사용해야 한다.

4. 워핑 예측 (Warping Prediction)

프레임 간 예측을 수행하는 방법 중 하나로 워핑 예측이 있다. 블록 단위로 프레임 간 예측을 수행하는 경우, 필연적으로 블록 간 경계에 블록 노이즈가 발생한다. 워핑 예측은 이 문제를 해결하기 위해 개발된 기술이다.

5. 3D 영상 부호화 기술

움직임 보상은 입체 영상 부호화에 활용된다.

영상에서 ''시간''은 종종 세 번째 차원으로 간주된다. 그러나, 영상 부호화 기술은 추가적인 차원으로 확장될 수 있다.

JPEG 2000웨이블릿을 사용하며, 이는 적응적인 방식으로 블록 사이의 간극 없이 움직임을 부호화하는 데에도 사용될 수 있다. 분수 픽셀 아핀 변환은 인접 픽셀 간의 번짐을 유발한다. 더 높은 내부 해상도가 사용되지 않으면 델타 이미지는 주로 이미지 흐림 현상에 대항한다. 델타 이미지는 웨이블릿으로 부호화될 수도 있어, 적응형 블록의 경계가 일치하게 된다.

2D+델타 부호화 기술은 H.264 및 MPEG-2 호환 부호화를 활용하며, 입체 영상 간의 압축을 위해 움직임 보상을 사용할 수 있다.

6. 역사

움직임 보상 개념은 1929년 영국의 R.D. 켈이 프레임 간에 변경된 아날로그 비디오 장면의 일부만 전송하는 아이디어를 제안하면서 시작되었다.[7] 1959년에는 NHK 연구원인 Y. 타키, M. 하토리, S. 타나카가 시간 차원에서 예측적인 인터 프레임 비디오 코딩을 제안하여 프레임 간 움직임 보상 개념을 발전시켰다.[7]

실질적인 움직임 보상 비디오 압축은 움직임 보상 DCT (MC DCT) 코딩의 개발과 함께 등장했다.[8] MC DCT는 블록 움직임 보상(BMC)이라고도 불리며, 1972년 나시르 아흐메드가 처음 이미지 압축을 위해 제안한 손실 블록 압축 변환 코딩 기술인 DCT 코딩[9]과 시간 차원의 예측적 움직임 보상을 결합한 하이브리드 코딩 알고리즘이다.[7]

1974년 서던캘리포니아 대학교의 알리 하비비는 예측 코딩과 변환 코딩을 결합한 하이브리드 코딩을 도입했지만,[10][11] 처음에는 공간 차원의 인트라 프레임 코딩에만 제한되었다. 1975년 존 A. 로즈와 거너 S. 로빈슨은 하비비의 알고리즘을 시간 차원으로 확장하여 인터 프레임 움직임 보상 하이브리드 코딩을 개발했다.[7][13] 이들은 DCT와 고속 푸리에 변환 (FFT)를 실험하여 DCT가 더 효율적임을 확인했다.[14][13]

1977년 웬시옹 첸은 C.H. 스미스 및 S.C. 프랄릭과 함께 고속 DCT 알고리즘을 개발했고,[15] 1979년 아닐 K. 자인과 자스완트 R. 자인은 움직임 보상 DCT 비디오 압축을 더욱 발전시켰다.[16][7] 1981년 첸은 움직임 보상 DCT 또는 적응적 장면 코딩이라고 하는 실용적인 비디오 압축 알고리즘을 개발했다.[7] 움직임 보상 DCT는 1980년대 후반부터 비디오 압축의 표준 코딩 기술이 되었다.[17][3]

최초의 디지털 비디오 코딩 표준은 1984년 CCITT (현재 ITU-T)에서 개발한 H.120이었지만,[18] 움직임 보상 DPCM 코딩을 사용하여 비효율적이었다.[7] H.261 표준은 1988년 움직임 보상 DCT 압축을 기반으로 개발되어 최초의 실용적인 비디오 코딩 표준이 되었다.[18] 이후 모든 주요 비디오 코딩 표준 (H.26x 및 MPEG 형식 포함)에 움직임 보상 DCT 압축이 채택되었다.[17][3]

7. 응용 분야

움직임 보상은 영화의 많은 프레임에서 한 프레임과 다른 프레임 간의 유일한 차이점이 카메라나 프레임 내 객체의 움직임 결과라는 사실을 이용한다. 비디오 파일을 예로 들면, 한 프레임을 나타내는 정보의 상당 부분이 다음 프레임에 사용된 정보와 동일하다는 것을 의미한다.

움직임 보상을 사용하면, 비디오 스트림에는 일부 전체(참조) 프레임이 포함되며, 그 사이의 프레임에 대해 저장되는 유일한 정보는 이전 프레임을 다음 프레임으로 변환하는 데 필요한 정보이다.


  • 비디오 압축
  • 24fps 영화를 60Hz LCD 또는 100Hz 인터레이스 음극선관에서 재생하기 위한 프레임 속도 변경

참조

[1] 서적 Design of Digital Video Coding Systems: A Complete Compressed Domain Approach https://books.google[...] CRC Press 2001
[2] 웹사이트 MPEG-2 FAQ http://bmrc.berkeley[...] 2009-02-20
[3] 서적 Proceedings of the International Computer Conference 2006 on Wavelet Active Media Technology and Information Processing: Chongqing, China, 29-31 August 2006 https://books.google[...] World Scientific 2006
[4] 논문 Characterizing perceptual artifacts in compressed video streams International Society for Optics and Photonics 2014
[5] 논문 Model-based image coding advanced video coding techniques for very low bit-rate applications 1995
[6] 서적 Motion Compensated Video Coding - PhD Thesis http://eprints.notti[...] University of Nottingham
[7] 웹인용 History of Video Compression https://www.itu.int/[...] Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6) 2002-07
[8] 서적 Video on demand: Research Paper 94/68 https://researchbrie[...] House of Commons Library 1994
[9] 간행물 How I Came Up With the Discrete Cosine Transform https://www.scribd.c[...] 1991-01
[10] 간행물 Hybrid Coding of Pictorial Data 1974
[11] 간행물 Learning for Video Compression
[12] 서적 Multimedia Signal Coding and Transmission https://books.google[...] Springer 2015
[13] 간행물 Combined Spatial And Temporal Coding Of Digital Image Sequences International Society for Optics and Photonics 1975-10-30
[14] 서적 Image Sequence Analysis https://books.google[...] Springer Science & Business Media 1981
[15] 간행물 A Fast Computational Algorithm for the Discrete Cosine Transform 1977-09
[16] 서적 High Definition Television: The Creation, Development and Implementation of HDTV Technology https://books.google[...] McFarland 2014
[17] 서적 Standard Codecs: Image Compression to Advanced Video Coding https://books.google[...] Institution of Engineering and Technology 2003
[18] 웹인용 The History of Video File Formats Infographic http://www.real.com/[...] 2012-04-22
[19] 웹사이트 動き補償
[20] 웹사이트 電子情報通信学会『知識の森』 2群-5編-4章 https://www.ieice-hb[...] 電子情報通信学会



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com