비디오 인코딩시 용량대비 최적의 화질을 보여주는 비트레이트를 쉽게 정할 수는 없습니다.
컨텐츠의 내용이나, 화면의 변화량, 전체적인 색감 등에 따라 천차만별이니까요.
그래도 나름 스스로의 기준 즉, 저 만의 매직 넘버를 찾기 위해 나와있는 컨텐츠들의 비트레이트를 알아봤습니다.
대상은 [다크 나이트]입니다.
1. 블루레이 버전
[다크 나이트]의 블루레이는 ㅎㄷㄷ한 화면의 엄청난 정보량을 깔끔하게 보여주는 극강의 타이틀입니다.
이 물건은 VC1 코덱을 사용하며, 1920x1280, 23.976 fps를 30.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로 압축되었단 뜻입니다.
이 물건은 VC1 코덱을 사용하며, 1920x1280, 23.976 fps를 30.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으로 압축된 것이네요.
그리고, 이 영화의 러닝타임은 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으로 압축된 것이군요.
(러닝타임은 역시 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, 24fps는 2592 kbps가 되는군요.
덧1. 파일의 용량을 알 때 비트레이트를 계산할 때는 아래와 같이 계산하면 됩니다.
파일 크기(Byte) / 시간(초) * 8 / 1024 = 파일 크기(Byte) / 시간(초) / 128 kbps
덧2. 파일의 용량과 해상도를 알 때 압축률을 계산할 때는 아래와 같이 계산하면 됩니다.
(폭 x 높이 x 3 x fps x 시간(초)) / 파일 크기(Byte)
저는 100M 용량 제한 때문에 크기에 맞춰 정합니다.
답글삭제오.. 이거 갈무리 해뒀다가 언젠가 유용하게 쓸만한 정보네요. 감사용~
답글삭제(자막작업 중간보고...
토요일: 친구 결혼식+피로연→술떡실신
일요일: 할아버지 구순→밤늦게 귀가
오늘: 슈퍼몸살, 내일부터 짬짬이 달리겠습니다ㅠㅠ)
@도아 - 2009/02/16 19:47
답글삭제아... 그런 고민할 필요 없는 상황도 있군요... ㅎㅎㅎ
@okto - 2009/02/16 22:34
답글삭제1. 조만간 이걸 쉽게 계산해주는 프로그램을 올릴 거라능
2. 천천히 하시라능~ 지금도 사무실이고, 회의 하다 잠시 쉰 거라능
[quote]저는 립을 전혀 업으로 삼지도 않을 뿐더러[/quote]
답글삭제라고 하시긴 했지만 언젠가 어디선가 검색하다가 ~~~.h264.bluenlive.mkv 와 같은 녀석이 찾아지면 바로 다운로드 들어가겠습니다.
@jvm - 2009/02/20 05:53
답글삭제하늘이 두 쪽나도 그런 버전은 안 돌아다닐 겁니다. ㅎㅎㅎ
흠... 인터, 인트라 프레임, 모션 디텍, 엔트로피 코딩,등등등... 을 고려하면 영상에 따라 모두 틀릴텐데요. 이런 계산은 맞지 않다고 봅니다.
답글삭제@yofule - 2009/03/30 18:56
답글삭제1. 본문에 적었듯이 "나만의" 매직 넘버를 정했다는 뜻입니다.
2. 계산이 맞지 않다뇨? 인코딩 방법에 무관하게 계산은 계산입니다. 코덱이 바뀌거나 코덱의 설정이 바뀌면 계산식이 바뀌나요?
3. 혹시... 난독증이신가요?