初心を忘れずに4Kで動画を作る

4Kでの動画制作が徐々に浸透してきていますが、今回は初心に戻って、動画の書き出しについて必要な知識をまとめてみることにしました。その中でも、Web動画のエンコーディングで最も使われているH264について、後半は話を絞って書いてみようと思います。

解像度にビットレートは関係無い

まず原則として解像度とデータ量は直接的には関係ありません。小さいデータ量でも4K動画は作ることが出来ます。ただ画質は悪くなります。高解像度=高ビットレートでは無いですが、高画質のものを高解像度で見るためには高ビットレートでのエンコーディングが必要になる、ということです。

ビットレートは適正値が解像度によって大体決まっている

高精度の映像 / 音を表現するために、高いビットレートが必要です。

全体のビットレート = 映像のビットレート + 音声のビットレート x チャンネル数

動画収録したり、編集した動画を書き出したりする時、ビットレートが動画ファイルサイズをほぼほぼ決めます。ビットレートは1秒間に転送されるデータ量(ビット数)です。Adobe Premiereで使われる単位は映像はMbps、音声はKbpsです。Bit per second = bpsと書きます。(Mはミリオン、Kはキロ)これが決まれば1秒間に最大どれだけの情報を転送する必要があるかを決められます。

720Pや4Kなどそれぞれの解像度に適したビットレート。

解像度に見合った画質で映像放送するための適正基準値が存在します。一番みんながよく使うであろう動画サイトはYouTubeだと思いますが、そこが推奨しているビットレートはこんな感じ。


参照元:YouTube

Vimeoはこんな感じです。


参照元:Vimeo

ビット(bit)もバイト(Byte)もデータ量を表す単位

動画サイズやデータ転送速度はバイト(Byte)で表すことが多いです。Premiereでの動画書き出し設定値はビット(Bit)を使います。よく見かけるのはビットレートの値で、MbpsとかKbpsってやつです。PremiereではMbps、DaVinci ResolveではKbpsを書き出し設定で決めます。でも別にそうじゃないといけないってわけでは無く、MB/sやGB/sを動画の書き出し設定で使っても良いのですが、やっぱり慣れてるものはMbpsかKbpsですね。

「1ダース=12」の理由と「1 バイト=8bit」の理由は同じ

ByteとBitは常に簡単な計算で変換することが出来ますが、なぜ1Byteが8Bitなのか?それは「1ダースの卵=12個の卵」と似た理由で、人がそう決めたからです。過去の実験と失敗から「1Byte = 8Bit」が最終的に都合が良かったからだそうです。60年代から70年代には国際基準として決められた話のようですが、それ以前はもともと「1Byte = 6Bit」だったそうです。

Bitは実は省略語で「Binary Digit」のことです。つまり2進法です。

一般的な市販のコンピューターは、2進法で全ての情報を管理しているらしいですが、0か1の羅列で説明するということです。8Bitは256個の数字や言葉を表現することが出来ますが、その際はそれで十分だったので「8Bit=1Byte」になったとか読みました。(本当かは知りません)ちなみにCDは1サンプルあたり16Bit=2Byteなので、サンプリングが65536通りまで出せる、といった感じです。

HDから4Kに進化する過程で大事になる要素

動画をWeb用に書き出す場合、H264とH265が主流です。H264で動画を書き出す場合、PremiereやAvidでは、解像度の他にも以下のようなことを聞かれます。今までは1080Pまでの書き出しだったので気にしなくても良かったのですが、今後は少し注意して見てみてください。

プロファイル - Baseline, Main, High

プロファイルとは、転送先(動画を見るサイト)がデコードする際に必要な情報です。ベースラインはかなり昔の規格なので、ほとんど使われません。MainはPremiereの書き出しでH264を選んだ時に選ばれるもので、You-Tubeでも使われますが少し古いです。Mainのレベル4.1が標準ですが、これはFull HDも30フレームまで対応しているから、普段はMainで書き出していても再生する際には問題にならなかったんだと思います。

<追加編集 09/15/2017>
カラーサブサンプリングはプロファイルによって固定されている様です。ただしYouTubeにアップした動画は全て再エンコードされてYUV420になります。

また以下の情報ソース(2016年度)によると徐々にH.264からVP9というコーデックへの再エンコーディングが始まっているそうです。主な理由はデータを軽量化してYouTubeのサーバー維持費を安くするためだそうです。V9はH.264と比べ圧縮効率が2倍ほどあるそうですが、YouTubeの場合は同程度の画質になる様に圧縮して、データ量をH.264よりも更に小さくすることでコスト削減を狙っているようですので、必ずしも画質向上というわけでは無い様です。

参考リンク:【Youtube】WebM(VP9)とMP4(H.264)の違い【詳細統計情報】

レベル - Level

レベルはそれぞれの動画の最大ビットレート、解像度、フレームレートを限定します。そして、プロファイルとのコンビネーションで出力する動画の設定値を固定します。UHD、4K DCIの動画を書き出そうと思うとレベルを5.1に設定する必要があります。以下、Main 4.1とHigh5.1の規格の違いです。(1番左がレベル、1番右が解像度とフレームレートの最高規格です。残りの数値はとりあえず無視してください。)

(注)「プロファイル」と「レベル」の設定は、H.264 など MPEG のバリエーションを使用する形式に該当。
注釈*メディアエンコーダーの書き出し設定リファレンス

最大のビット深度

ビット深度の高いカメラで撮影した素材を最高の色深度のまま書き出す際に必要です。基本的にクリックしておく方が良いです。


DaVinci Resolve 12.5の場合は、「最高品質でディベイヤーをクリックしてください」(上)

Adobe Premiereの場合は「Render at Maximum Depthをクリック - 英語ですみません」(上)

動画のデータ量が膨大で、Web視聴が大変に…

4K動画を書き出すとファイルサイズが大きくなります。LTEでも高画質でストリームしようと思うと途中で映像が固まったりフレーム落ちしたります。そのために工夫を凝らしてファイルサイズを小さくした方が良いです。(ビットレートを下げる)そのためにH264はビットレートを3種類の方法で設定することが出来ます。

CBR, VBR 1パス, VBR 2パス

VBR 1パスは基本的には使いません。CBRだと1番データが重くストリーミングの際に影響が出ます。VimeoのサイトにはCBRは使わないでください、とまで書いてます。VBR 2パスがベストだと思います。なぜかを簡単に説明します。CBRはConstant Bit Rateと言って、常に同じビットレート(Bit Rate)でエンコードすることです。情報量が多いカットをエンコードするために高いビットレートが必要ですが、CBRで高い基準にしてしまうと、情報量がそれほど必要無いカットでも高いビットレートで書き出すために総合的なファイルサイズが大きくなります。

VBR(Variable Bit Rate)はその問題を解決するために生まれました。Variableとは変化するという意味です。つまり必要が無いところではエンコードに使うビットレートを下げ、情報量が多い部分だけ適切な高ビットレートまで設定を上げるというものです。その結果トータルのサイズを下げることが出来ます。では何故VBR 1パスは使わないのか?

VBRが高いビットレートでエンコードする場所は、動画によって違います。パソコンも書き出す際に、どこが情報量が多い箇所かを判断する必要があります。2パスを設定すると、動画全体を一通りソフトウェアが検査(パス)した上で、どこが一番情報量が多いかを判別出来ます。そして2パス目で実際に動画をエンコードすることをVBR 2パス言います。VBR1パスはパスを一度しか行いません。そのため、パソコンも高ビットレートでエンコードする箇所を正しく診断しないままに書き出すので、情報密度の差が比較的に大きいカット割りが動画の前半に並ぶと、そこを基準として最大ビットレートを設定します。そのために後半でさらに複雑なカットが出てくると綺麗にエンコード出来なくなるというわけです。

そのためにVBR2パスにしましょう。ちなみにターゲット・ビットレートと最大ビットレートを設定することが必要ですが、それについてはVimeoは以下のように説明してくれているので、そちらを読んでみてください。


参照元:Vimeo

4K動画をエンコードする

今まで気にもしなかったことも、気にする必要があることが少しでも感じ取って頂ければ良いかなと思って書きました。ここに書いた情報が最も的確な情報では無いかもしれませんが、参考までに読んで頂いてありがとうございます。他のサイトでも参考になるものがあればコメントにシェアしていただけると嬉しいです。

18クリップする
クリップしておくと
あとからいつでも
見返したりできます。

    コメント

    • 岩崎航輔
      いつもとても参考になる記事拝見させていただいております。恐縮ですがご質問させていただいてもよろしいでしょうか。
      使用ソフトはAfterEffectsなのですが、Adobe Media Encoderで書き出し設定をしていたのでPremiereと設定画面の差異はないかと思います。
      短いモーショングラフィックスの動画を作成していまして、仮編をH264で書き出し送ったところ「文字に影のようなものがついて立体に見える」とご指摘を受けました。
      確かに、言われてみればよく見るとテキストやロゴ(全て赤色)の右側が1pxほど色が濃く潰れて立体のように見えなくもなっていました(普通の人はほぼ気付かないレベルですが、)
      3Dレイヤーにはしていましたが2D素材なので厚みはないし、もちろん編集画面で拡大しても何もなっていません。
      Media Encoderを介さずQuicktimeのロスレス圧縮でmovで書き出しすると綺麗に出ますので、おそらくH264に圧縮する過程でピクセルが潰れてそのように見えるのかなと思いまして、スクリーンショットでも貼れればもっと簡単に伝えられるんですが笑

      1920x1080FHD 30fps mp4の動画です。
      試して見たのは
      ・Media EncoderのYoutube FHDプリセット
      ・VBR2パスでターゲットビットレートを最大まで上げる(50Mbps)
      ・CBRで50Mbps書き出し
      ・Youtube 4Kプリセット書き出し(コンポジションがFHDですので無意味ですが)
      ・Render at Maximum Depthにチェックを入れる

      試して見ましたが全て効果がありませんでした、、
      説明下手で申し訳ありませんが何かアドバイス頂けますと幸いに思います。

      失礼しました。
    • UMA

      UMAuma

      17.09.08
      横から失礼しますが、1ピクセルということは、Media Encoderで書き出せるH.264がYUV420までだからではないでしょうか。
    • Hiroki Kamada
      こちら返信遅れてすみません。原因なんだったんでしょう...動いている文字とその背景明るさの差などから圧縮の際に影の様なものが出来るのかもしれませんが、問題解決しましたでしょうか?あまりヘルプ出来ずすみません。

      UMAさんもコメントありがとうございます。
    • teen

      teenteen

      18.12.17
      ど素人ですみません。教えていただきたいことがあります。iphoneX(設定4K60F)で撮影して写真(アプリ)からドラック&ドロップしたデータをPRORES
      442HQに変換するとデータサイズがものすごく大きくなっているのですが(情報から確認)そういうものなのでしょうか?
    • Hiroki Kamada
      TEENさん

      iPhone X 4K 60FPSで撮影したものを解像度やフレームレートを下げず、コーデックだけProres422HQに変えて変換する場合はデータサイズが大きくなります。iPhone Xは撮影時にかなり圧縮されるコーデックを使用しますが、Prores422HQは圧縮率が大きくないです。それから残念ながらデータサイズが大きくなっても撮影時以上に画質は良くならないです。
    • teen

      teenteen

      18.12.17
      早速のご回答ありがとうございます!とってもありがたいです!

      ということはiPhoneで撮影した場合はそのまま編集に使用した方が良いということでしょうか?
    • Hiroki Kamada
      iPhoneで撮影した場合はそのまま編集しても大丈夫だと思います!元データのコーデックが編集ソフトに対応していなかったり、伝送データが大きすぎてワソコンでのプレイバックが遅くなる場合に、データ変換をすることが多いです。
    • teen

      teenteen

      18.12.17
      こんなど素人に、丁寧に教えてくださって感謝です!!ありがとうございました!!