目次
バンディングノイズを解消しよう!
波形モニターで色補正 まとめ &挑戦してくれた人紹介の記事で色補正後にヒストグラムに櫛状の抜けが出るというお話しをちょろっとしましたね。
ということで今回は、
トーンジャンプ・バンディングノイズ・階調飛び・マッハバンド
などと呼ばれている、
主にグラデーションの色の変化の境目部分に出る等高線のような縞模様を補正しよう!というわけです。
具体的にどんな状態かというと
えーと、昔のファミコン画面の背景のグラデーションがこんな風に境目がくっきり出ちゃってるみたいな・・・
本来は空の色の変化はもっと滑らか表示させたかったのでしょうが色数の制限で大きく色をまとめて縞々状に。
こんな極端ではないですが、画像や映像を色補正した時や圧縮した時に本来滑らかなグラデーション部分にバンディングが起きることがあります。
昔紹介しましたこちらの解説動画でまさにバンディングノイズの例を紹介していますのでわからない方は御覧ください。 楽しい気分になる動画でお気に入りです。
この動画でも同じようなバンディングノイズの解消方法を解説していますがこれから私が紹介する方法の方がより詳細で効果が高いと思います。
今回の記事のために用意した素材はこちら
うーん わかりますか? よく見るとグラデーションの境目に線が入ってますね?
拡大してコントラストを付けて見やすくすると
ほら、ファミコンみたいに色がまとめられて境目にくっきり線が見えてます。
階調飛びを消す手順はたったの2つ!
今回もAfterEffectsでやりますが他の補正ソフトでも大体同じことはできるかと思います。
① まず色深度をデフォルトの8bitチャンネル → 16bitチャンネルに変更
② 一番上に調整レイヤーでノイズHLSをかける
では具体的に見ていきましょう!
8bitを16bitにする
プロジェクトパネルの8bpcをAltキーを押しながらクリックすると数値が変化します
エフェクト「ノイズHLS」を適用する
調整レイヤーに入れたノイズHLSは一番上に配置します。
素材のサイズにもよりますが通常はまず0%で試して、変化がないようなら0.001など調整していきましょう。
これだけです。
では実際にどのように変化しているかを見てみましょう。
映像の変化を比較
それぞれを拡大して見やすいようにコントラストを付けたもので比較すると
■ 8bitから16bitにすると扱える色の階調が増えるので階調飛びが改善されます。
■ ノイズHLSはノイズを加えるエフェクトです。
ノイズHLSをかけた画像を見るとどういう原理でトーンジャンプが補正されているかわかりましたね?
すごく単純なのですが、全体に細か~いノイズを加えることでくっきり別れてしまった色の境目をファサファサ~と誤魔化してるということですね。 拡大しているのでザラザラして汚く見えるかもしれませんが等倍だと認識することは出来ない程度の極小のノイズです
ただノイズを加えるということは画像の劣化にもつながりかねないので、ノイズ量はまずはほとんど影響を与えにくい0%から様子を見ていきましょう。 ※今回はわかりやすいように強めに0.001%にしています
ヒストグラムの変化
今回はわざと初めから階調飛びを起こした画像を作成しているのでオリジナルの段階で櫛状に抜けが出ています。
通常は補正や圧縮の過程で隙間ができていくことが多いと思います。
オリジナル 8bit
オリジナル 16bit
ノイズHLS 16bit
はじめから思いっきりスカスカになってますが、順に隙間が埋まっていいくのが見て取れますね。
映像(画像)を見ても認識できない程度でもヒストグラムを見れば映像の劣化に気づくことが出来ます。
ただ櫛状になっても目で見て劣化していないならそこまで神経質に気にしなくてもいい場合もあるでしょうけど参考にはなると思います。
ちなみに
この時のウェーブフォームモニターはこんな感じ。
ヒストグラムと同じようにスカスカしてますね。
階調飛びが起きる仕組み
先日広島の宮島に撮影旅行に行ってきた時の素材です。
ウェアラブルカメラ。ドローン。の方で何度か紹介している一番良く使うカメラRX100 M3で撮影した宮島の夕景 ※もちろんサイズ縮小圧縮してます
櫛状にはなってなくてツルンとしてますね。
例えば上の夕景はメリハリが無いのでもっとくっきりさせるためにトーンカーブなどでコントラストをつけてみましょう。 暗部、明部までしっかり階調を使います。
はい、コントラストを高めて階調の幅を増やしました。
この時のヒストグラムはこんな風に変化しています。
ビヨーンと横に伸ばしたことでその間の色が表示できなくなって隙間ができちゃうんですね。
大雑把ですがこれがトーンジャンプが発生する仕組みのようです。
ただこの夕景の場合はヒストグラムで抜けが出ても肝心の画像の方は目で見ても全く劣化なんて認識できないと思います。
なのでこれでフィニッシュの場合はこのままでも問題ないかもしれません。
またはここからまた補正をしていくなら階調飛びを抑えておいた方が後の素材の劣化を防げるかもしれません。
こればっかりは素材の状態で判断していくしかないですねー。
さて、一応やってみますと
16bitにして調整レイヤーのノイズHLSを適用させたら ご覧の通り
また見事ツルンとした状態に戻りました。
この画像はサイズが5472×3648とものすごく大きいのでノイズ量は0でも0.001でもほぼ全く変化はなく、なんと1%に設定してみました。
それでも画像はノイズで荒れることなく拡大しても認識できるような変化はほぼ見えませんでした。 まあそれならやらなくてもいいじゃなんって話かもしれませんが・・・
マッハバンド補正のタイミングは?
16bpcに変更するのは一番最初からでいいのですが、ノイズHLSは補正の一番最後に一回だけかけたらいい?と思いがちですが、私の経験上では階調飛びがある状態で一旦書き出してしまうと後でそれを補正するのが困難になるので、縞々が画像に見られた時点で書き出す場合はその時の一番上の調整レイヤーにノイズHLSを適用させて書き出します。
というのも、
階調飛びがある状態で一旦映像を書き出し、その書き出された映像をAEに取り込んでノイズHLSを適用させた場合と、
階調飛びがある状態でノイズHLSを適用させて書き出した映像では、明らかに後者のほうが良い結果が得られたからです。
なので私は映像を書き出す時に補正すべき階調飛びが起きていたらその時にノイズHLSを適用させてから書き出すようにしています。
おまけ 色深度32bpcとは?
8bpcから16bpcに変えましょう!といいましたが更にその上の32bpcにはしなくていいのか?
Adobe公式ではこんな風に書いてますね。
色深度と広ダイナミックレンジカラー
色深度(またはビット深度)とは、1 つのピクセルで表示可能な色数を、1 チャンネル当たりのビット数(bpc)で表したものです。RGB チャンネル(赤、緑、青)あたりのビット数が多くなるほど、各ピクセルでより多くのカラーを表すことができます。After Effects では、8 bpc、16 bpc または 32 bpc のカラーを使用できます。
カラーのビット深度のほかに、ピクセル値を表すために使用する数値には、整数と浮動小数点があります。浮動小数点を使用すると、同じビット数ではるかに広い範囲を表現できます。After Effects では、32 bpc ピクセル値は浮動小数点値です。
8 bpc ピクセルでは、各カラーチャンネルの値を 0(黒)から 255(純色)まで指定できます。16 bpc ピクセルでは、各カラーチャンネルの値を 0(黒)から 32,768(純色)まで指定できます。3 つのカラーチャンネルのすべてに最大値、つまり純色の値が指定されている場合、結果色は白になります。32 bpc ピクセルには、0.0 未満や 1.0(純色)を超える値を指定できるので、After Effects の 32 bpc カラーは広ダイナミックレンジ(HDR)カラーでもあります。HDR の値は、白より明るくなることもあります。
結局32bpcはどんな時に使うかというと上のリンク先で説明されているように、炎のような白よりも高い明るさを再現できる、HDR(高ダイナミックレンジ)映像を扱う時のカラー補正やカラープロファイル変換の際にデータが失われるのを防ぐ目的がある時だそうです。
バンディング対策に32bit?
では16bpcよりも32bpcのほうがより多くの色が扱えるならバンディング対策にも32bpcにした方がいいんじゃないか?というとそうではなく、HDR映像を扱うのでないならば16bpcで充分であるだけでなく、多くのエフェクトが32bitに対応していないことや処理も重くなってしまうということからHDR映像を取り扱うという目的がないなら16bpc一択となるわけです。
なので通常色補正するする時はAfterEffectsの色深度は16bitにしておきましょう!
最後に
私が編集過程でバンディングノイズの問題に気づいてこれは困った!とまだバンディングノイズという言葉すら知らない状態で色々ググって今回の方法にたどり着いたわけですが、その時に参考にしたサイトであり、今回の記事の元ネタとなるのがAE 目黒区からの刺客さんの階調飛び対策という記事です。 合わせてご覧ください。