동영상 인코딩 방식은 크게 인터레이스와 프로그레시브로 나눌 수 있습니다.
프로그레시브는 하나의 프레임을 프레임 그대로 저장하는 방식이고,
인터레이스는 하나의 프레임을 두 개의 필드로 나눠서 저장하는 방식입니다.
인터레이스 인코딩 방식을 그림으로 보면 아래와 같습니다.
인터레이스로 촬영된 영상(프레임)이라면 인코딩 또한 위 그림처럼 인터레이스 방식으로 하는 것이 적합하겠죠.
H.264/AVC의 인터레이스 인코딩 방식은 다시 두 가지로 나눌 수 있는데 PAFF와 MBAFF입니다.
PAFF(Picture Adaptive Frame Field)는 프레임 레벨에서 프로그레시브와 인터레이스를 선택하는 방식이고
MBAFF(MacroBlock Adaptive Frame Field)는 매크로블럭 레벨에서 프로그레시브와 인터레이스를 선택하는 방식입니다.
예를 들어 0부터 9까지 총 10장의 화면을 인코딩한다고 가정했을 때
PAFF 방식은 다음과 같이 각각의 프레임을 프로그레시브 또는 인터레이스 중 하나로 자유롭게 선택해서 인코딩하는 것이 가능합니다.
p i p i p i p p p i
즉, 인터레이스가 적합할지 또는 프로그레시브가 적합할지를 프레임 단위로 판별해서 인코딩하는 방식입니다.
MBAFF 방식은 한 단계 더 올라가서 매크로블럭 단위로 인터레이스 또는 프로그레시브를 판별하는 방식입니다.
즉, 하나의 프레임 내에서도 프로그레시브로 인코딩되는 매크로블럭과 인터레이스로 인코딩되는 매크로블럭이 함께 존재할 수 있습니다.
예를 들어 맨위 그림의 왼쪽 프레임을 MBAFF로 인코딩한다고 가정해보면
가로줄이 보이는 부분만 인터레이스로 인코딩하고 나머지 부분은 프로그레시브로 인코딩하는 것도 가능하다는 것이죠.
H.264/AVC 표준에서는 MBAFF를 사용하는 경우 위 아래로 두 개의 매크로블럭이 짝을 이뤄서 인코딩됩니다.
이렇게 하면 해당 매크로블럭들을 필드로 인코딩하게 되더라도 16x16의 매크로블럭 크기를 그대로 사용할 수 있기 때문입니다.
x264의 인터레이스 인코딩 방식도 MBAFF입니다.
PAFF를 지원하지 않기 때문에 x264에서 --tff 또는 --bff를 사용하면 항상 MBAFF로만 인코딩됩니다.
그런데 MBAFF를 사용하면 모든 매크로블럭들이 프로그레시브로 인코딩되는 경우도 생각해 볼 수 있습니다.
MBAFF가 사용됐을 뿐 모든 매크로블럭이 프로그레시브로 인코딩된다면 일반적인 프로그레시브 인코딩과도 별 차이가 없겠죠.
이처럼 MBAFF를 사용하는 동시에 모든 매크로블럭을 프로그레시브로 인코딩되도록 만드는 옵션이 --fake-interlaced 입니다.
블루레이 표준이 25p 또는 30p를 지원하지 않기 때문에 어쩔 수 없이 50i 또는 60i로 인코딩해야 할 때 사용되는 옵션이고
블루레이 디스크를 제작하는 경우가 아니라면 굳이 사용할 필요는 없겠죠.
그리고 차세대 압축 표준인 H.265/HEVC 에서는 따로 인터레이스 인코딩 관련 압축 기술들이 포함되지 않는다고 합니다.
대신 인터레이스 영상인지 여부만 표시해주는 헤더 정보가 추가된다고 하네요.
촬영이나 디스플레이 등이 프로그레시브로 전환되면서 인터레이스 포맷은 점점 사라져가는 것 같습니다.
'인코딩 일반' 카테고리의 다른 글
Q-pel과 H-pel: 부화소 움직임 예측(Sub-pixel Motion Estimation) (8) | 2013.06.16 |
---|---|
H.264/AVC 표준의 In-Loop Deblocking Filter (2) | 2013.05.19 |
DTS-HD Master Audio와 TrueHD (3) | 2013.03.22 |
x264의 --level 옵션 (17) | 2013.02.25 |
레벨 조정과 컬러 매트릭스 (17) | 2013.02.14 |