前書き
配信画質を考える上で、参考となるであろう資料をここに収める。
この配信画質考はあくまで配信設定の参考として、配信者が自ら考えて設定するための
『参考資料』としての位置づけであり、無作為に導入してもたいした効果は上がらないであろう
事を事前に記載しておく。
つまり、ここに答えというものは存在しない。
あくまで可能性の展示室である。
単純に答えがほしいだけの方はお帰りいただこう。
なぜならまったく同じプレイ環境、PCスペックというものが存在しないため
他人の設定を流用したところで付け焼刃同然であるからだ。
CPUの石や、グラフィックボードのコアは、石ごとの個体差が存在する。
アタリ石、などという言葉を聞いた事はないか?
コレは、OC耐性が高いなど、性能のよいCPUコアなどを指して使われる事がある。
同じように、同じ商品を買ってきても固体ごとの誤差が存在する。
その誤差を埋めるのは配信者の努力と細かな設定、微調整である。
もしもこの先の項目を読もうとしているのならば、問おう。
軽い気持ちで高画質にしたい、そう思ったのであれば最も手軽な手段をお教えしよう。
高性能PCを買い、画面縮小率を下げ、ビットレートをあげ、画像の品質の数値を引き上げろ。
ここから先の修羅と酔狂の道を歩むのは、現状のマシンでビットレートも変えずにそれでもよい画質を提供したいと願う者と現状の自らの限界と思われる到達点に至った茨の道の求道者、そしてビットレートを下げなおかつ画質を維持したいという狂気の沙汰とも呼ばれかねない設定中毒者だけでよい・・・。
なお、ここはあくまで、著者が試したことと、見聞きし知った事をまとめたものである。
ここにすら存在しない知識をさらに求めるというのなら、莫大な知識と情報を溜め込んだネットという果てしなき電子の海に航海に出るがいい。
その結果として、難破し座礁し電子の藻屑と散るか、蓬莱の玉の枝を手にするかはあなたの情熱と追及の軌跡にかかっている。
執筆日(2009/10/5)
執筆者(HN:宵闇うさぎ)
以下、本セクションに入ります
基本項目のおさらい
ビットレート
秒間当たりでのデータ転送量、単純にこれの値を上げるだけで画質は「一定まで」は向上する。
ただし、それだけで鮮明な美しい画質は実現できない。
ビットレートが高くなればなるほど再生側のマシンに対しての要求スペックも上昇する。
1Mビットレートに達すると一部視聴者は再生画面がガクつくなどの事象が報告される。
あげすぎても無駄なビットレートが発生する事になる。
フレームレート
単位時間当たりに画面を更新する回数を指す
一般的に用いられるFPSは、秒間に何度描画するか、を意味する。
配信の場合、FPSが高くなると滑らかな描画が可能。
カクついて見えるというのは個人の主観による。
また、ゲームなどでは1秒60フレームに設定されている事が多い。
参考までに、テレビのFPSは29.97である
画面圧縮率
原寸の画面(取り込むゲーム画面)に対して、出力する画面サイズから算出される。
ゲーム画面1000*600 に対して、出力画面が500*300 である場合、圧縮率は50%となる。
圧縮率が上がるほど画質が落ちる事を理解しておこう
また、出力画面サイズはそのまま、視聴者が見る画面サイズになる。
その事を考慮に入れるとよいだろう。
まずは基本3項目についておさらいしてみよう。
単純に高画質にしたいのならば、以下4点に留意して設定してしまえばいい。
すなわち、画面圧縮率を低くして、ビットレートを高くして、画質の鮮明さを100に近づけ、フレームレート適度に設定すればいい。
しかし、ここを見に来る人はおそらくもっと細かい資料やらがほしいと思うので下へ進むよろし。
画質について詳細に数値化する事は出来ない。このため、やや理論よりのお話になる事を承知してほしい。
単純に、理論的な計算から画質指数を求める計算式と言うのを考えて見た。
フレームレート=秒間描画回数
ビットレート=秒間データ転送量
画像の品質=1~100(%指数表示)
画面圧縮率=画面圧縮率、として計算する場合
画質の計算式はこういうことになる。
画質ポイント=( ( 画像ビットレート値 ) ÷ ( フレームレート ( n )))×画面圧縮率(y))×画像の品質(1.00~0.01)
フレームレート(16)
画像ビットレート(600kbps)
画面圧縮率(50%)=0.5
画像の品質(100%)=1
を条件として計算式を出すと
18750=600000(kbpsのため)÷16×0.5×1
となる。
この際注意したいのが、フレームレートを下げすぎると配信する画面が紙芝居になることだ。
そのため、一定以上のフレームレートを出したい場合、ビットレートも連鎖してあがる事になる。
画像の品質数値の上下で、さらに必要ビットレートが激しく上下する。
ここにはPCの性能もかかわってくるのでよく考えて設定するといい。
つまり、1フレームに使うことが出来るビットレートが増えると画質が向上する事になる。
逆に、1フレームあたりに使うビットレートを下げすぎるとどうなるか?
圧縮エンコード中にフレームの欠落が発生してしまうことになる。
この欠落が発生すると、配信画面が紙芝居になるのだ。
このフレーム欠落の発生理論を推測してみると、筆者の考えではこうなる。
「激しい映像の変化が起きた場合、単位フレームあたりのビットレート制限を超越する」
この結果として、描画が行えなくなるためにフレーム処理が出来なくなるため、欠落としてWMEが処理を切り捨てている」
このため、欠落が発生しない程度に余裕を見る必要がある。
結局のところ、その境界の見極めはエンコードを行い、WMEの下部にある統計モニタから欠落したフレームの数を見るしかない。
ここでいうことはひとつで、フレームレートをある程度必要とするゲームを
それなりのサイズの画面でプレイし、その画面を配信する場合
圧縮率にもよるが、ビットレート下限というものが見えてくるということだ。
高画質を維持しながらビットレートを下げるには限界がある。
逆に、画質を気にしないなら大分ビットレートを下げる事は可能となるだろう。
次の項目の話に移ろう
次は圧縮タブの設定について話す
オーディオ形式
高くすればもちろん高音質になる。
ただし、配信においては出来る限りビットレートは画像に回したいのと
音質にまでこだわる人でなければ高くする必要はない。
一般的には「32kbps~48kbps」ぐらいである。
この項目にこだわる場合、ぜひ自分で録画をして音質を聴き比べてほしい。
気になるほどの差が出るかどうかで決めるとよいだろう。
ビデオサイズ
ここで設定した値が出力サイズになる
つまり、実画面とこの数値の差が圧縮率になる
サイズを大きくすると加速度的に(配信側の)マシンスペックを消費するため
適度なサイズに抑える必要がある。
圧縮率を下げようとして無理に出力サイズを上げるといろいろと連鎖的に悲惨なことになる。
参考までに述べると、配信側マシンスペックの高負荷と、ピクセル当たりの画像ビットレートの低下である。
ここを読む人ならこの言葉だけで理解できるはずであろう。
キーフレームの間隔
そもキーフレームとは何か?
言ってしまえば基準となる画像のことである。
動画と言うのは『基準画像→その画像がどのように変わったかの差分データ』の算出によって描画される。
そして、画面が大きく変わるときにキーフレームを入れてやると画面の切り替えが早く済むのだ。
これは、画面が大きく変わった場合、差分を取得するよりも丸ごと画像データを取得したほうがデータ量が少なくてすむ、という場合に限られる。
なぜならキーフレームは全画面データを取得するため、圧縮効率が悪いからなわけだが・・・
逆に言えば、1秒ごとにキーフレームを居れてやれば一定以上の画質劣化を防げるとも言える。
さらに逆を言うと、圧縮効率が悪いため一定以上の画質にはならない。
ついでに言うなら、差分算出により画質が鮮明化したのち、キーフレーム読み込みが発生するため
キーフレーム(低画質)→差分整地(高画質化)→キーフレーム再読み込み(画質劣化)
が頻繁に発生し続けるため、ぶっちゃけて多く入れすぎると画質が劣化するうえ
静止画すら常時ぼやけて鮮明になってを繰り返す笑える現象を招く。
コレを考えるとキーフレーム画質=差分検出画質と同等程度になる設定を模索する必要があるといえよう。
ちなみにキーフレーム以外は全部差分データであり、下の画像から差分を検出するため動いていないところには使われない事になる。
激しい動きが続くと画質がさらにさらに下がっていく理由はここにあると思われる。
つまり、差分整地だけでは追いきれない画面の変化が発生していると言うことなのだ。
画像の品質
この数値が低いほど画質が下がる変わりに圧縮がラクになり、フレームレート欠落が発生しにくくなる。
逆に、高くすると画質は高くなる変わり、圧縮負荷が急増し、フレームレートの欠落が発生し紙芝居の原因となる。
高スペックPC所持者であってもうかつに100にすると紙芝居になって泣きを見る事もある。
要注意。
ちなみにビットレートをあげるとこの値を高くする余裕が生まれる変わりに通信回線の帯域が著しく犠牲になるのは言うまでもない。
(スペックやグラボのエンコード能力自体でも変わると思われる。特にグラフィックボードに関してはGeForce8800GT以降、内部のプロセッサが変わっているためなにかしら違いが在ると思われるが、筆者のグラボは7900GTのため検証は出来ない、ここを読んだ方は自分で試していただきたい)
デコーダの複雑さ
ぶっちゃけ自動でいい。
ヘタにいじると画質の低減、エンコード負荷増大などろくな事がない。
配信する媒体(ノベルゲームなのかFPSなのか)によってまた変わるかもしれない。
総括
キーフレームは圧縮率が悪いため挿入頻度を上げると全体の画質上限が下がる。
逆に下げすぎると激しい動作の後なかなか画面が整地されないことになる。
大きな画面変動が多いゲームでは挿入頻度はよく考えるべきだろう。
画像の品質を極端に上げると紙芝居になる可能性が高い。
画像の品質をあげる場合、画像ビットレートも高くしてやる必要性が出てくるかもしれない。
以下に私の乱雑にとったメモを掲載する、私以外どころか私にとってもすでに暗号化した数値データであるが、興味があるなら解読して見るといい。
ただし解読に見合う価値があるかどうかについては保障しないが・・・
4-15
600
18-1=18=33_60
18-4=72=8.3_15
18-3=54=11.1_20
16-3=48=12.5_20
16-4=64=9.375_15
15-4=60=10_15
15-3=45=13.3_20
画質設定についての結論
結論から言うならば、画質がほしいからとビットレート「だけ」を高くしたところで画質は一定以上に上がる事はない。
ビットレートをあげることの恩恵があるとすればフレームの欠落が発生する場面が減ることだろうが、それにしても設定をきちんと構築しているのならばその配信媒体において、フレーム欠落の発生しないであろう設定を作れるはずである。
ただし、ビットレートをいじらなくてもいくらでも高い画質を作れると言うのもまた間違いだ。
ビットレート下限(と私は読んでいるが)一定以上の画質には、ビットレート下限と呼ばれるものが存在する。
この下限を下回ると画質が落ちたり、フレームが欠落する。
そのため、無駄に余剰ビットレートを出さずに、下限ビットレートを探し、そこに保険としていくらかビットレートを上乗せする、それこそがよい設定だと思っている。
たとえば、400kビットレートで下限設定できる画質で、700kビットレートにした場合、300kと言う無駄が発生するのだ。
リソースと言うものは無限ではない。
転送量制限・回線速度制限などが在る以上、必ず枯渇する資源である。
これを無駄に使わないように勤めたいものだ。
高いビットレートを否定するわけではない。
だが、高いビットレートを余すことなく使った無駄のない設定を実現してほしいと思う。
画質をあげるためにはそれ以外の要素が複雑に絡み合う事を理解してほしい。
これだけではいささか不親切なのでキーワードだけはリストアップしておこうと思う。
- ビットレート
- フレーム対ビットレート
- 分間キーフレーム数
- 画像の品質
- WMEパフォーマンス
- 画面圧縮率
- フィルタ補正
- グラフィックカード
以上のキィワードのうち、自分に思い当たる手を入れていない項目があるなら試して見るといい。
最後に筆者から余計なお世話を言わせてもらうならば、画質調整と言うのは配信においてのメインディッシュと言うわけではないだろう。
「画質の高い配信が良い配信でない」
コンビニで売っている週刊誌、中身が同じならおそらく誰もが立ち読みされておらず表紙の状態がきれいな雑誌を選んで買う事だろう。その程度である。
もちろん極端に画質の悪い配信ではつく筈の視聴者もつかなくなる可能性がある事は否定しないし、見づらい画面と言うのは見る人に負担を掛けるものだ。だが、ある程度を過ぎればそれもなくなるだろう。
だが、どこまで画質を求めるのか、自分の中にその指標だけを持ってほしい。
そしてその指標が高いというのならば、ビットレートをいじるだけなど一部を極端にいじった程度のお粗末な事はしないでほしい。
そして、画質をあげるというのは味のないパスタに塩だけぶちこむ作業ではない。
塩味、湯で加減、ソース、トッピング、付け合せ等、盛り皿、食器に至る複雑な要素を絡める複雑な作業であることをキモに命じてほしい。
そこまでしてやっとおいしいパスタになるのだ。
近年、ゲームプレイヤーのゲーム環境は向上している。
ハイビジョン映像、モニタのサイズ拡大に伴いオンラインゲームのプレイ画面も拡大している。
その画面を配信しようとすれば当然、画面の圧縮率も上がり、その負荷に対応するためにビットレートがある程度上がるのも当然だろう。
しかしそれに対して、プロバイダによる日間転送量制限と言うものは拡大されて居ない。
(一部制限のないプロバイダも在るようだがまだ数も少なく、場所によっては回線も不安定のようだ)
配信によるビットレートを劇的に増大させると言うことは、その上限の拡張されて居ない部分をボトルネックにする事になる。
特に配信において有志で鏡を出している人に対して無駄に莫大な負荷を掛けないためにも、その点においては注意してほしい。
ビットレートを下げろとか、画質を下げろといっているのではなく、無駄をなくしてほしい。
最後に
私は別に高ビットレート配信者に対して喧嘩を売るような目的でここを作成したわけではない。
理由もなく高ビットレートにしてみた、とか
ビットレートあげれば画質あがるんでしょ?音質あがるんでしょ?
という短絡な考え方をしないでほしいと言っているだけである。
あなたがもし、誰かの配信の画質を見て、その画質がすばらしいと思い、その画質を追おうとしたとしよう。
同じビットレート、同じ画面サイズで一度自分で確認してほしい。
同じ画質を手に居れる事が出来たのかを。
もしも手に入れられていないというのなら、それは貴方の設定が甘いということにほかならない。
そのとき貴方はどうするのか?
そのままのビットレートでやるもよし、望む結果が得られなかったからと戻すもよし。
さらに、細かい設定を追うも自由だ。
だが、ただ単にビットレートをあげて細かい設定も煮詰めずに「ウチって高画質でしょ?」などと言う発言をすれば、目の肥えたリスナーから突込みが入る事を覚悟してほしい。
|