2009년 2월 15일 일요일

H.264 비디오 인코딩시 적절한 비트레이트?

사용자 삽입 이미지

비디오 인코딩시 용량대비 최적의 화질을 보여주는 비트레이트를 쉽게 정할 수는 없습니다.
컨텐츠의 내용이나, 화면의 변화량, 전체적인 색감 등에 따라 천차만별이니까요.

그래도 나름 스스로의 기준 즉, 저 만의 매직 넘버를 찾기 위해 나와있는 컨텐츠들의 비트레이트를 알아봤습니다.
대상은 [다크 나이트]입니다.


1. 블루레이 버전

[다크 나이트]의 블루레이는 ㅎㄷㄷ한 화면의 엄청난 정보량을 깔끔하게 보여주는 극강의 타이틀입니다.
이 물건은 VC1 코덱을 사용하며, 1920x1280, 23.976 fps30.72 Mbps의 비트레이트로 인코딩되었습니다.
(편의상 24 fps로 통칭하겠습니다)

이걸 1초당 정보량으로 계산해보겠습니다.
일단 영화의 raw 데이터는 1초당 1920x1280x24x3 B = 176,947,200 B 즉, 168.75 MB입니다.
이것이 30.72 Mbps = 3.84 MB/s로 인코딩된 것이니 1/44로 압축된 것이군요.

다시 말해, [다크 나이트]는 VC1으로 1/44로 압축되었단 뜻입니다.



2. 립버전 - 1080P

1080P 립버전은 H.264로 인코딩되었으며, 용량은 15.7816 GB입니다.
그리고, 이 영화의 러닝타임은 2:32:13 즉, 9133 초입니다.

나누기를 해보면 1.77 MB/s가 되는군요.
여기서 오디오의 크기를 비디오의 대략 1/10인 0.17 MB/s로 가정하면 1.6 MB/s 정도의 비트레이트가 되는군요.
H.264로 1/105.5... 생각하기 편하게 1/100으로 압축된 것이네요.



3. 립버전 - 720P

720P 립버전 역시 H.264로 인코딩되었으며, 해상도는 1280x720, 24fps이고, 용량은 5.8854 GB입니다.
(러닝타임은 역시 9133 초입니다)

나누기를 해보면 0.66 MB/s가 되고, 역시 오디오는 0.17 MB/s로 가정하면 0.49 MB/s가 되는군요.

한편, raw 데이터는 1초당 1280x720x24x3 B = 66,355,200 B 즉, 63.28125 MB입니다.

H.264로 1/129.1... 생각하기 편하게 1/130으로 압축된 것이군요.


제가 결정한 매직 넘버는 1/150입니다.

위에서 언급한 컨텐츠들은 극강의 화질을 유지한 상태에서의 비트레이트이기도 하거니와, 저는 립을 전혀 업으로 삼지도 않을 뿐더러 나름의 기준을 잡기 위한 것일 뿐이라 약간 작은 크기도 상관이 없을 것 같더군요.

1/150가 어느 정도인가 즉, 해상도에 따라 몇 kbps의 비트레이트인가를 계산하려면 아래와 같이 하면 됩니다.

폭 x 높이 x 3 x fps x 8 / 1024 / 150 kbps = 폭 x 높이 x fps / 6400 kbps


그렇다면 1280 x 720, 24fps의 동영상이 있다면 3456 kbps로 인코딩해야겠군요. ^^;;;

1/200이라면 8533.3으로 나누면 됩니다. 그럼 1280 x 720, 24fps2592 kbps가 되는군요.


덧1. 파일의 용량을 알 때 비트레이트를 계산할 때는 아래와 같이 계산하면 됩니다.

파일 크기(Byte) / 시간(초) * 8 / 1024 = 파일 크기(Byte) / 시간(초) / 128 kbps


덧2. 파일의 용량과 해상도를 알 때 압축률을 계산할 때는 아래와 같이 계산하면 됩니다.

(폭 x 높이 x 3 x fps x 시간(초)) / 파일 크기(Byte)



댓글 8개:

  1. 저는 100M 용량 제한 때문에 크기에 맞춰 정합니다.

    답글삭제
  2. 오.. 이거 갈무리 해뒀다가 언젠가 유용하게 쓸만한 정보네요. 감사용~



    (자막작업 중간보고...

    토요일: 친구 결혼식+피로연→술떡실신

    일요일: 할아버지 구순→밤늦게 귀가

    오늘: 슈퍼몸살, 내일부터 짬짬이 달리겠습니다ㅠㅠ)

    답글삭제
  3. @도아 - 2009/02/16 19:47
    아... 그런 고민할 필요 없는 상황도 있군요... ㅎㅎㅎ

    답글삭제
  4. @okto - 2009/02/16 22:34
    1. 조만간 이걸 쉽게 계산해주는 프로그램을 올릴 거라능



    2. 천천히 하시라능~ 지금도 사무실이고, 회의 하다 잠시 쉰 거라능

    답글삭제
  5. [quote]저는 립을 전혀 업으로 삼지도 않을 뿐더러[/quote]

    라고 하시긴 했지만 언젠가 어디선가 검색하다가 ~~~.h264.bluenlive.mkv 와 같은 녀석이 찾아지면 바로 다운로드 들어가겠습니다.

    답글삭제
  6. @jvm - 2009/02/20 05:53
    하늘이 두 쪽나도 그런 버전은 안 돌아다닐 겁니다. ㅎㅎㅎ

    답글삭제
  7. 흠... 인터, 인트라 프레임, 모션 디텍, 엔트로피 코딩,등등등... 을 고려하면 영상에 따라 모두 틀릴텐데요. 이런 계산은 맞지 않다고 봅니다.

    답글삭제
  8. @yofule - 2009/03/30 18:56
    1. 본문에 적었듯이 "나만의" 매직 넘버를 정했다는 뜻입니다.



    2. 계산이 맞지 않다뇨? 인코딩 방법에 무관하게 계산은 계산입니다. 코덱이 바뀌거나 코덱의 설정이 바뀌면 계산식이 바뀌나요?



    3. 혹시... 난독증이신가요?

    답글삭제