2009년 2월 23일 월요일

인코딩 용어 설명 - 코덱, 비트레이트, 키프레임

초보자가 동영상 인코딩을 처음 접하면, 모르는 용어가 많아서 혼란스러운 경우가 많습니다.

이러한 어려움을 줄이고자 동영상 인코딩시 알아야할 용어들을 정리해 봅니다.

* 코덱
동영상 파일은 음성과 영상 데이터로 이루어 지며, 파일의 크기를 줄이기 위해서 이 데이터를
압축하여서 저장하게 됩니다. ( 압축을 하지 않을 경우 최대 100배 정도 파일 크기가 커집니다. )
인코딩시 압축(COding)을 하고, 재생시 압축을 푸는(DECoding) 모듈을 합쳐서 코덱(CODEC)이라고 부릅니다.
영상 코덱은 MPEG4, XVID, DIVX, WMV 등이 많이 사용되며, 음성 코덱은 MP3,WMV,AAC 등이
보통 많이 사용됩니다.

* 비트레이트
동영상 인코딩시 사용되는 압축 방식은 손실압축입니다. 데이타의 양은 줄어들지만 원본의 데이타를 100% 보존하는것이 아니라 손실시키면서 줄이는 방식이므로 압축을 많이 할수록 화질/음질이 많이 떨어지게 됩니다.
비트레이트는 1초간의 영상/음성을 얼마만큼의 데이타를 차지하게 압축을 할것인지를 지정하는 단위 입니다.
비트레이트가 높을수록 압축율이 떨어지면서 화질/음질이 좋게 되고 비트레이트가 낮으면 인코딩된 파일의 크기는 줄어들지만 그만큼 화질/음질도 나빠지게 됩니다.
비트레이트의 정확한 단위는 BITS PER SECOND 이며 8BIT 는 1BYTE 이므로 800kbps 로 인코딩
된 동영상은 재생시간 1초당 100kbytes 의 크기를 가지게 됩니다.

* 키프레임
초기의 영상 코덱은 화면 한장 한장을 jpeg 처럼 이미지 파일로 압축하여 저장하는 방식을 사용 하였습니다.
이런방식은 구현하기 매우 쉽다는 장점이 있지만, 화면이 전혀 움직이지 않는 경우에도 많은 데이타를 사용하여야 하기 때문에 압축율을 높이기가 쉽지 않게 됩니다. 이러한 단점을 극복하기 위해서 mpeg 코덱부터는 영상의 변화율을 감지하여서 변화된 부분의 데이타만을 저장하는 방식으로 압축 효율을 높이기 시작하였습니다.
이러한 방식의 문제점은, 데이타가 화면의 변화된 내용만을 담고 있으므로 동영상 재생시 중간으로
점프하고자 할 경우 처리가 매우 어려워 지기 때문에 중간 중간에 키프레임이라는 영상의 모든 정보를 가지고 있는 부분을 만들어 두는 방식을 사용하게 됩니다.
보통의 경우 키프레임은 5~10초에 하나씩 만들게 되며 특수한 경우 1초 정도로 짧게 설정하여야 할
경우도 있습니다.
( 키프레임의 짧게 설정하면 탐색시 유리하지만, 용량대비 화질이 나빠지는 단점이 있습니다. )

댓글 없음: