コンテンツへスキップ

データレベルのお話(一部訂正)

今更データレベルの話題を取り上げるのは、「そんなこと知っているよ」と叱られそうですが、時々これに関することがやって来て慌てることがあります。そんな時のために今回はデータレベルについての解説を書いてみたいと思います。

コンピュータが扱っている色情報は、RGB三種類の値の組合せで表現していて、0から255までの256段階で表現することが一般的です。10進数256は2進数で表すと2を8回掛け合わせたことになり、この8を使って8bitと言うこともあります。もっと繊細な色を表現したりデータとして保存するために、10bitや12bit、16bitなどもあります。

ビデオ信号は今やコンピュータと仲が良くなっていますが、昔々は映像信号と先に述べた0-255のデータという、まったく異なる世界で表現していました。今でも二つの表現する世界があることは変わっていませんが、大抵の場合は一旦コンピュータの表現世界の中で処理をして、その後目的の世界に変換しています。ビデオ信号はIREレベルというモノサシがあって、WFM波形モニターの目盛りにある0から100%のスケールを使います。しっかりとした波形モニターでは、0%以下と100%以上も表示領域があることがわかります。ビデオ信号はこれらの「はみ出した」領域の信号レベルも存在できるのです。ただし、あまり上下にはみ出しすぎると信号として破綻するため、規制された上限と下限レベルはあります。

コンピュータは0から255の範囲しか存在しないため、ビデオ信号の0%と100%から外れたレベルをどのように扱うかで昔は苦心していました。これらのはみ出した部分のレベルのことを、スーパーホワイトやスーパーブラックと呼ぶことがあります。具体的にはビデオのIREレベルで105%や108%をスーパーホワイト、-5%などの0%以下をスーパーブラックと呼びます。スーパーブラックはなくても大きな問題にはならないのですが、スーパーホワイトが表現できなくて100%以上を強制的にカットされてしまうと、撮影時のビデオエンジニアは困ったことになります。これらの事情を考慮して使われるようになったのが、データレベルの考え方です。コンピュータの0-255は、データレベルやフルレンジなどと呼ばれ、映像信号をデジタル化したものをビデオレベル(ビデオデータ)と呼んでいます。呼び方はアプリケーションや機器によって違うこともありますが、指し示している意味や目的は単一です。

データレベルの背景や事情が見えて来たところで、私たちが日常でデータレベルとどのように付き合っていくかのテクニックを説明します。今回はDaVinci Resolveを使った場合の前提で解説を進めます。DaVinci Resolveは内部処理では0%以下のマイナスレベルも深海くらいに深く、100%以上の天空も宇宙に突き抜けるくらいの青天井(上限がない意味)で表現できます。入出力で使うメディアファイルには0-255などの制限があるので、Resolveへの出入りの際になんらかの制限と解除(データの解釈)が必要であることが想像できます。ここで使っている仕組みが、データレベルの切り替え機能です。入出力の際に必要になるので、Import後のClipAttributes設定の中、書き出し時のExport処理であるDeliverのビデオ設定の中に見つけることができます。また、ビデオ信号としてResolveシステムから外に出すビデオインターフェースの設定部、VTRからのキャプチャー時の設定の中にもデータレベルの設定項目があります。このようにResolveから外部とやりとりする際にはデータレベルを意識することが必要なのです。

現実的にはどのようにデータレベルを使い分けるかは、意外と簡単です。何も考えさえしなければ(笑)。Resolveのデータレベルの選択肢は、Auto、Video、Fullの三択です。ここはAutoにしておけば、Resolveが良きに計らってくれます。データレベルのことを中途半端に理解していて、意図的にFullやVideoにすると足元をすくわれることがあります。要注意です。Autoにしておけば、Resolveの外界であるメディアファイルのコーデックに合わせて、データレベルを調整してくれます。具体的にはRGBコーデックの場合にはFull、YCbCrコーデックの場合はVideoの選択をしてくれています。Fullを選択すると、デジタルデータの値(code value)の修正/調整はされません。Videoの場合はResolveで100%(255)だったところは、code value235に下げられ、code value0は16に上げられます。レベル空間の中で、内側に収束される処理が加わっています。厳密に見れば、これによって少しだけ階調のどこかの部分で欠損が出ているはずです。これが問題になることは少ないとは思いますが。

メディアファイルをResolveに取り込む際には、逆の処理がかかります。YCbCr系のメディアファイルでcode value235だったものは、Resolveに取り込まれると255としてマッピングされます。ブラックも同様で、code value16がResolve内では0になります。Fullを選択すると、これらのレベル修正は行われません。Autoにしておけば、メディアファイルのコーデックタイプをResolveが判断して良きに計らってくれます。時にはFull/Videoのデフォルト設定では困るケースがあるかもしれず、そんな時のためにユーザーが選択できるようになっています。

Resolveではデータレベルの選択のところに、Retain sub-black and super-white dataのチェックボックスがあります。以前はなかったのですが、これにチェックをつけると、データ領域が0-255以上のダイナミックレンジの広いコーデックの際に諧調が維持できるのだと思います。私はそのようなコーデックをまだ使ったことがないので、残念ながら具体的な事例はありません。Resolveのマニュアルでは下記のように書かれていますので、該当する方は参考にしてみてください。

このチェックボックスをオンにすると、オーバーシュートとアンダーシュートを保持するメディアファイル、選択したデータレベルの最大および最小データレベルを超えるデータを出力するように選択できます。これは、エクスポート先のビデオフォーマットおよびコーデックでサポートされています。さもなければ、DaVinci Resolveは信号のこれらの「範囲外」の部分をクリップして、あなたの成果物が、あなたがグレードで守っているどんなQC基準にも違反しないようにしてください。

今回のことを確かめるために、一枚の画像ファイルをIllustratorで作成しました。それをTIFFにしたものが上記のものです。検証される際にこのようなものがあると確認が楽になるので、興味がある方はご自由にダウンロードしてお使いください。単純なチャートですのでご自身で作られても良いかと思います。データレベルは映像信号とコンピュータを橋渡しする欠かせない機能ですが、間違った運用をするとクオリティ劣化に直結する重要なことの一つです。今回の解説をもとにして上手に付き合っていってください。

4 thoughts on “データレベルのお話(一部訂正)

  1. TS

    こんにちは。

    "Retain sub-black and super-white data"は、VideoレベルのYUV素材を出力するときに、スーパーホワイトとスーパーブラックを維持するために使うものだと思っておりました。

    Videoレベルの素材を色調整せずVideoレベルで書き出す場合、これにチェックを入れると実写のスーパーホワイトやカラーバーのPLUGEがクリップされず出力されますので、Resolveを単純なファイル(コーデックや解像度)変換ソフトとして使うときに便利だと思います。

    反面、Resolveのスコープで見ることができない10bit CV 0〜1023 の範囲外の信号が出力されるので、グレーディング後に使うのはちょっと危険だと思っています(私の理解不足かもしれませんが)。

    返信
  2. yamaq

    TSさん、コメントいただきましたありがとうございます。

    実のところこの辺りの情報が収集できていないので、ご指摘いただけて助かります。参考にさせていただきます。

    返信

yamaq にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。