H.264に変換する環境は整ったものの、以前から疑問に思っていたビットレートをどのくらいにすればいいのかさっぱり分かりません。ぐぐってみるとMPEG-2の半分から3分の1くらいの圧縮率とか言われてますが、その数字をそのまま当てはめても大丈夫なのか心配になります。

そうやって調べていったところ、BPP(ピクセルあたりのビット数)というのを発見。


一言で言ってしまえば、縦と横の画素数とfps(1秒あたりのフレーム数)にBPPという係数を掛けることで、どのくらいのビットレートが必要なのかが分かるというもの。その表を抜粋したのがこちら。

品質
 動作   最高   高い   中   低 
 高度  0.225 0.175  0.125   0.100 
 中度  0.200 0.150 0.100 0.075
 低度  0.175 0.125 0.075 0.050
動作の定義 
高度:スポーツまたはミュージックビデオ
中度:映画
低度:ナレーター(ニュースや演説など)
上記URLに掲載されている表はおそらくRealVideoを使った場合の数字だと思います。そしてRealVideoについて紹介しているページによると、「H.264より15%低いビットレートで、同等品質を実現」と書かれています。


またH.264の場合、0.25より大きくしても(ビットレートを上げても)意味が無いという記事も見受けられます。


H.264のBPPの上限が0.25だとすると、上記の表の「最高・高度」はH.264の90%の値になり、10%減となります。15%ではなく控えめに10%で逆算してH.264の表を作った結果はこちら。

品質
 動作  最高 高い
 高度   0.250   0.194   0.139   0.111 
 中度  0.222 0.167 0.111 0.083
 低度  0.194 0.139 0.083 0.056

そして求められるビットレートは

横の画素数 x 縦の画素数 x fps x 上記係数 = 必要なビットレート

となりますので、そうやって求めてみたのがこちらの表になります(単位は全てMbps)。

画素数:1920 x 1080(主にBSデジタル)
 29.97fps    23.976fps
 動作  品質  動作  品質
最高 高い 最高 高い
高度  15.54   12.08   8.63   6.91  高度  12.43   9.67   6.91   5.52 
中度 13.81 10.36 6.91 5.18 中度 11.05 8.29 5.52 4.14
低度 12.08 8.63 5.18 3.45 低度 9.67 6.91 4.14 2.76

画素数:1440 x 1080(主に地上デジタル)
29.97fps       23.976fps    
 動作  品質  動作  品質
最高 高い  最高   高い 
高度  11.65   9.06   6.47   5.18  高度 9.32  7.25   5.18   4.14 
中度 10.36 7.77 5.18 3.88 中度 8.29 6.21 4.14 3.11
低度 9.06 6.47 3.88 2.59 低度 7.25 5.18 3.11 2.07

画素数:1280 x 720(HD720サイズ)
 29.97fps       23.976fps    
 動作  品質 動作 品質
 最高   高い  最高 高い
 高度   6.91 5.37  3.84   3.07   高度   5.52   4.30   3.07   2.46 
中度 6.14 4.60 3.07 2.30 中度 4.91 3.68 2.46 1.84
低度 5.37 3.84 2.30 1.53 低度 4.30 3.07 1.84 1.23

あとはエンコするときのフレームレートが分かればどのくらいのビットレートでエンコすればいいのか分かりますが、デジタル放送のフレームレートについてぐぐってみたところ、29.97fpsだそうです。


フレームレートがなぜ29.97fpsとか23.976fpsなのかの理由も書かれています。何かタイミングを合わせる関係上、このような数字になったというのを遙か昔に聞いたような覚えがあるのですが、それってアナログ時代の話であって、それをデジタルにしたとき切り離すことはできなかったんですかね。過去に撮ったコンテンツがそのまま使えなくなるからっていうのが理由なのかなぁ。難しいことは分からないけれど。

少なくともデジタル放送のビットレートでエンコードするのは無駄だというのが分かったのでよかったです。