だって画力がないんだもの!

3DCGで創作すればいいじゃない?

VEGASのmp4の色が変な場合(白っぽい、暗い)の解決方法

f:id:yamato-tsukasa:20180813095639j:plain*1

実はVEGASはデュアルディスプレイが前提のソフトです。ですので、デュアルモニタ環境の人は、以下の設定をしてセカンダリモニタの色を見て編集して下さい。セカンダリモニタの色がファイル出力時の色になります。その場合、色味に違いが出ないのでこの記事の最初だけ読めばOKです(笑)ただ、「解決方法 手順2」は挿入した静止画像の色味の違いの解決方法なのでお役に立つかもしれません。

(目次)


セカンダリモニタがある場合 

 
1にチェックを入れる。おしまい。なお、シングルモニターの場合には何も起こらない。
 

シングルモニタの場合の解決方法

私のようにシングルモニタでビュー画面の色を見ると、出力されたファイルの色が異なる場合があります。特にmp4。その原因と対策のメモ。非常にややこしいのです。最終的に正しい色味のmp4ファイルを出力するためには、以下の手順を必ず踏まないと色が微妙に変化します。
 

手順

  1. VEGASにファイルを読み込ませたら、ビデオバストラックFXに「スタジオRGBからコンピュータRGBへ」というフィルタを適用する
  2. mp4ファイルを除いた静止画素材のトラックと、VEGASで生成したカラーマットやカラーバーのトラックについては、トラックFXに逆のフィルタ「コンピュータRGBからスタジオRGBへ」というフィルタを適用する。mp4ファイルのトラックにはこれを適用してはならない
  3. 編集が終わったら、必ずビデオバストラックFXのフィルタのチェックボックスOFFにしてからレンダリングを開始する(白っぽい映像をレンダリングしていいの?と思うでしょ、普通。だがそれでいいのです。レンダリング結果は編集中の色味になります)
  4. もし再編集する際には必ずビデオバストラックFXのフィルタのチェックボックスONに戻してから再編集する

では見ていきましょう。
 

タイムラインに乗せたmp4素材の色が変

素材はカラーバーと白い文字からなるmp4ファイル。
左側はmp4ファイルをVEGASのタイムラインに乗せた色味。
しかし、正しい色味は右側の画像です。本来、白文字は真っ白なのです。
 

VEGASのほうの色がくすんで白っぽくなる。白の階調が細かくなってかすかなグレーになる。
 

解決方法 手順1

ビデオバストラックのビデオ出力FXに「レベルフィルタ>スタジオRGBからコンピュータRGBへ」というフィルタを適用する。

手順は画像を参考にしてください。



ずらっと出てきた一覧からVEGAS レベルを選択(この画像は省略)

スタジオRGBからコンピュータRGBへを選択する。

f:id:yamato-tsukasa:20180813105113p:plain

コントラストが上がって色味が正常になったと思う。
 
 ここで別のjpeg画像を別トラックににドラッグ&ドロップしてみよう。
また、別のトラックにカラーマットを挿入してみよう。
すると今度は、挿入した静止画やカラーマットのコントラストが逆に上がったと思う。

f:id:yamato-tsukasa:20180813120546p:plain

試しにさっきのフィルタのチェックボックスをオン/オフしてみよう。触った瞬間に画面の色味が変わるはずだ。確認したら再びONに戻して。話を進める。

解決方法 手順2

コントラストが上がった挿入した静止画やカラーマットの色味を元に戻そう。 以下の2つの操作対象にする。
  1. 静止画素材のトラック
  2. VEGASで生成したカラーマットやカラーバーのトラック
上記1と2のトラックについては、トラックFXに逆のフィルタ「コンピュータRGBからスタジオRGBへ」というフィルタを適用する。
なお、mp4ファイルのトラックにはこれを適用してはならない。(色味が一番最初に戻ってしまう)
f:id:yamato-tsukasa:20180813104807p:plain
 
ずらっと出てきた一覧からVEGAS レベルを選択(この画像は省略)
 

f:id:yamato-tsukasa:20180813105650p:plain

コンピュータRGBからスタジオRGBへ」というフィルタを適用する。
 
 
 
これでついに、mp4トラックも画像トラックも正常な色味になりました。
これでいよいよ編集ができます。頑張って。
 
だが、このままレンダリングしてみると、今度は出力結果のmp4ファイルの色味がおかしい

解決方法 手順3

編集が終わったら、必ずビデオバストラックFXのフィルタのチェックボックスOFFにしてからレンダリングを開始する

f:id:yamato-tsukasa:20180813110013p:plain

f:id:yamato-tsukasa:20180813110529p:plain

白っぽい映像をレンダリングしていいの?と思うでしょ、普通。だがそれでいいのです。レンダリング結果は編集中の色味になります。
 
確認してみて下さい。
 

原因

PCはRGB 0-255、mp4はRGB 16-235

これを調べるのがめちゃくちゃ大変だった。丸々3日かかった。英語サイト見まくった。原因はVEGASのRGB 0-255のフルレンジとRGB 16-235のリミテッドレンジの内部変換にあります。
 

フルレンジとは、RGB 0-255のカラースペースであり、PCの画像やaviファイルの色味です。

リミテッドレンジとは、RGB 16-235の狭いカラースペースであり、mp4や放送映像の色味です。mp4という形式もブルーレイなどを経由してテレビで見るために映像の標準規格であるリミテッドレンジに従っています。
 

RGBのレンジの違いが色味の違い

VEGASは元々SONYが開発していたこともあり放送機材出身なのです。デュアルモニタ前提なのもココに理由があります。
 
PC環境は当然ながらフルレンジです。ですが放送用映像は規定によりリミテッドレンジでなければなりません。そこでVEGASはセカンダリモニタにリミテッドレンジの映像を出力し、PCでの内部処理はフルレンジで行います。そのため、メインモニタには仕組み上フルレンジの画像が映ります。
 
なので、デュアルモニタ環境の人はセカンダリモニタでリミテッドレンジを常に見られるので何も問題ないのです。が、シングルモニタの人は、なんとかしてVEGASから出力されるカラースペースをリミテッドレンジに変換しないと正しい色味が分かりません。
 
実は、全ての手順はリミテッドレンジとフルレンジとの相互変換の手順です。VEGASでは、リミテッドレンジ=スタジオRGBとと呼び、フルレンジ=コンピュータRGBと呼んでいます。勘のいい人はもうお気づきの通り、
  1. 編集中はVEGASからの出力をリミテッドレンジにそろえる
  2. レンダリングにはVEGASからフルレンジをレンダラーに渡す
ということです。もしセカンダリモニタがあれば上記1をVEGASがやってくれるのです。
 

画像ファイルはフルレンジで受け取るがmp4にするならリミテッドレンジにしないと

mp4トラックを除く画像トラックやカラーマットトラックにだけ逆のフィルタをかけた理由は、「VEGASはmp4ならリミテッドレンジ扱いだが、画像や内部生成画像などの特定のソースに対してはフルレンジで扱う」という仕様になっているため、手順1で全てのソースをリミテッドレンジにしてしまうと都合が悪いわけです。なので手順1の効果を画像やカラーマットに対して打ち消すために、逆のフィルタをかけたわけです。
 
しかし、レンダリング直前でもそのフィルタは解除していませんが、実はそれでいいのです。VEGASのプロジェクトは通常、VEGASのプロパティでピクセル形式がデフォルトでは8ビットとなっているのですが、図のように8ビットの場合と32ビット浮動小数点(ビデオレベル)の場合は、mp4形式で出力する場合において、全てリミテッドレンジにしてからレンダラーに渡さないといけないことになっています。そうしないと正しい色にならない仕様。
だから、mp4トラック以外にかけたフィルタを最後まで外していないのはこのため。
実を言うと、セカンダリモニタの人でもmp4出力する場合には画像トラックにこのフィルタが必要ってことになるのだが、どれだけの人が気付いていることやら。
 
f:id:yamato-tsukasa:20180813121452p:plain 
プロパティ>ピクセル形式>32ビット浮動小数点(全範囲)にすれば、フルレンジでレンダラーに渡すのですが、めちゃくちゃレンダリングが重くなります。そのかわりオーバーラップなどの合成処理が丁寧になるらしい(見た目では分からん)。映画用の3DCGでも扱わない限り触らないのが無難。32ビット浮動小数点(ビデオレベル)もごく限られた状況でしか選ぶメリットがないので非推奨だとどこかで読んだ。フルHDの夜景の2シーンをゆっくりとオーバーラップさせながら実験していた映像を記憶しているが、詳細はもう忘れましたw
要するに、今回の色問題の解決には無関係。普通の人は一番上の8ビットで全然問題ない。画質を追求する場合でも問題ない。一番下の32ビット浮動小数点(全範囲)を選ぶ必要がある人は、3DCG関係者で、かつその映像処理に関する知識があって、どうしてもこれを選ばなければならない理由がある人だけです。 
 

mp4ファイルにはレンダリング時に何もしていないけど?

 VEGASはmp4については最初から入力レベルがリミテッドレンジであることを知っているので、mp4については何のフィルタも必要ないのです。ただ、シングルモニタの見た目をユーザーにとって正しい色味に変更するためだけにビデオバストラックに「一時的」にフィルタをかけただけです。ビデオバストラックはレンダラーの直前にかけるフィルタを設定できるトラックです。なので、レンダリング直前にオフにすると、何もしていないのと一緒です。それで正解です。
 
そういう理由で、あんなややこしい手順になっているのです。
セカンダリモニタがあればこんなことがないのに。まぁ、VEGAS自体がセカンダリモニタ前提のソフトなのでしょうがないですが。あるいは一刻を争う映像をノートPCで編集するならば、多少の色味など誤差の範囲でしょう。
 
ですが、趣味用途で画質や編集にこだわった個人が、最後の出力で色味がおかしいってのは納得できませんよね?でもこれで解決です。
 

Firefox56系はYouTubeの色味が違うので注意

 専門外なのでよく分からないが、どうやらDirexct Xのバージョンかなんかの影響らしく、古いFirefox 56系ではYouTubeの色味がそもそもおかしい。それに気付かず泥沼にはまっていた。上記の謎に加えてブラウザの色の違いだ。悩みまくったよ。
 
なお、YouTubeの正しい色が出るのは、Google ChromeiOS製品のブラウザだ。

最後に

例えばこのような繊細な表現では、正しい色味でエンコードされていないとつらい。

f:id:yamato-tsukasa:20180813115825p:plain

MMDムービーの1カット
 
VEGASはプロ用ソフトなので複雑ですが、細かいことができるので納得いくまで質を追うことができます。あるいはかなり短時間で簡単な編集ができます。素材を重ねるだけで自動でオーバーラップしたりとかの使い勝手がアドビ製品より上です。
VEGAS 15からはnVIDIAのグラボを積んでいればハードウェアエンコードによりプレビュー用mp4を爆速で作れるからそれも便利。
 
色味問題に悩んだVEGASユーザーは、この記事で解決するといいですね。
VEGASでの編集を楽しんで下さい。
 
 

参考にしたサイトなど

以下の英語サイトを見れば、プロジェクトプロパティ>ピクセル形式>8ビット、の場合のデコーダ・エンコーダの振る舞いが詳しく書いてあるからそれを読んでくれ。

http://www.glennchan.info/articles/vegas/colorspaces/colorspaces.html


<レベルフィルタに関する参考動画>(私の動画ではないけれど)

https://www.youtube.com/watch?v=cRFAL-TJWWw

英語だけれど画面を見れば分かる。

*1:(注)この記事は旧ブログから抜粋して移転させた記事です。記事の前後が関連していません。