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)