色空間である「RGB」に於ける「フルレンジ」と「リミテッドレンジ」の違いについて簡単に紹介。
※この記事は素人調べなので間違ってる可能性ありです(あと詳しい部分はかなり端折ってます)
RGB・YUVの違い
「RGB」「YUV」、どちらも「色空間」(カラースペース)の事です。
他にも色空間の種類には、「HSV」とか「CMY」とか色々ありますけど、パソコン内でメインで使用するのは「RGB」と「YUV」だけです。
※詳しくは以下の記事にて紹介しています。
フルレンジとリミテッドレンジの違い
「RGB」は通常、「0~255」の256階調で表示されますが、「16~235」限定の220階調で表示するモードがあります。
このように限定された階調でしか出力できない状態の事を「リミテッドレンジ」と言います。(もしくは「TVスケール」と呼んだりします)
逆に、全階調を表示できる状態の事を「フルレンジ」と言います。(もしくは「PCスケール」と呼んだりします)
フルレンジとリミテッドレンジに分かれてる理由
何故このように2種類に分かれているかというのは、テレビの「YUV」に影響しています。
テレビは元々「モノクロ」でしたが、現在は「カラー」に移行しています。
移行の際に、元々の「モノクロ」情報(Y成分)に、「カラー」情報(UV成分)を足すだけで、簡単にカラーに移行出来るという事で、「RGB」では無く、「YUV」が採用されました。
で、この「YUV」は、「輝度」(Y成分のこと)が標準で「16~235」の範囲しか使用されないので、RGBと相性が悪いのです。(ちなみに私たちが普段、スマホやデジカメで撮影する動画の全ては「YUV」形式の「リミテッドレンジ」です)
つまり、「フルレンジ」なソースをテレビで読み込むと、「リミテッドレンジ」で読み込む事になるので、範囲外の部分(0~15、236~255)は「黒浮き」(映像の所々に「黒色の点」が表示される)になったりしてしまうというわけです。
逆に、「リミテッドレンジ」なソースを「フルレンジ」で読み込むと、ソースファイル的には「16」で「黒色」、「235」で「白色」のつもりなのに、フルレンジなので、本来「黒色な部分」が薄い黒色っぽく見えたり、本来「白色な部分」が灰色っぽく見えたりするという事です。
どっちを使えば良いの?
「フルレンジ」に対応しているなら、「フルレンジ」で出力すべきです。
「リミテッドレンジ」は、単純に階調が少ないので「フルレンジ」より表せる色が少ないという事です。
つまり実質、「フルレンジ」より画質は劣るわけです。
実際の機器で置き換えると?
例えば「PS3」や「PS4」などのゲーム機で置き換えてみます。
基本的にテレビは「リミテッドレンジ」で出力しか受け付けないので、「リミテッドレンジ」で出力しなければなりません。
逆に、ゲーム画面を、パソコンのモニターなどに出力する(HDMIで)際は、「フルレンジ」で出力しなければなりません。(パソコンのモニタは全て「フルレンジ」なので)
こんな感じで「リミテッド」出力するか「フルレンジ」出力するか選べます |
---|
フルレンジに対応していないテレビでフルレンジ出力すると、(先述しましたが)「黒浮き」が発生したりしてしまいます。
AviUtlで「リミテッドレンジ」と「フルレンジ」を相互変換する方法
AviUtlには、「リミテッドレンジ」と「フルレンジ」を相互に変換する機能があります。
フィルター名で言う所の「拡張色調補正」です。(メニューの「設定」→「拡張色調補正の設定」)
- 「TV -> PC スケール補正」にチェックを入れれば、「フルレンジ」に変換できます(ちなみにフルレンジに変換する事を「YC伸張」と呼んだりします)
- 「PC -> TV スケール補正」にチェックを入れれば、「リミテッドレンジ」に変換できます
「リミテッドレンジ」な動画を「フルレンジ」に変換したい場合は、「TV -> PC スケール補正」にチェックを入れます。(かなり色鮮やかになります)
※ただし、ほとんどのエンコーダーは「リミテッドレンジ」として動画をエンコードしてしまいますので、コマンドオプションとして「フルレンジ出力」と指定してやらないといけません。
例えば、x264(x264guiEx)なら「–fullrange on」というオプションを追加する必要があります。
この記事は以上で終了です。
関連記事:ストレート変換とYC伸長の違い【RGB・YUV】(内容的にかなり同じです)
コメント