CCIR601(ITU-R BT.601、TVスケール)、PCスケール、俺様スケール、AviUtl、TMPGEnc(MPEG-2エンコード時)、キャプチャーボード(設定、A/D精度)、のメモ
基本的に以下の説明の色変換式はRGBではなく、YUV(Y/Cb/Cr)です。
色の規格
CCIR601 ITU-R BT.601 (TVスケール) |
輝度(Y) 16〜235(240) 色差(UV) 16〜240 16が真っ黒、235が真っ白 + 解像度がNTSC時720×486(480) |
PCスケール |
輝度(Y) 0〜255 色差(UV) 0〜255 0が真っ黒、255が真っ白 |
大前提としてPCで表示される映像は全てPCスケールの範囲(0〜255)になってます。
キャプチャ時の色設定がCCIR601(ITU-R BT.601)であろうが、PCスケールであろうが、俺様スケールであろうが、おかまいなしにPCスケールの範囲で表示されます。
何故なら色を表示するモニターがPC用だからです。
キャプチャボードのA/D変換精度による適応スケール
8bit |
60〜210 CCIR601スケールだと階調が表現しきれませんが、結局はCCIR601に補正する事になるので先にCCIR601に設定しておいたほうが後々楽です。 |
9bit |
16〜235 CCIR601スケールで適合 PCスケール(0〜255)の設定では階調が表現しきれません。 |
10bit |
0〜255が理想 しかし、地上波等のアナログ放送はCCIR601を超えて情報が送られるのでPCスケール(0〜255)では白飛び黒潰れの恐れがあります。なのでCCIR601に合わせるのが無難と言えば無難。ただし、表現されるはずの階調がある程度失われます。 |
キャプチャーボードをCCIR601に設定していると、TV上での真っ白を235、真っ黒を16としてキャプチャする訳ですが、PCは0〜255まで対応出来るわけで、アナログチューナーが発生させる、実際には見えなくても良い、真っ白以上と真っ黒以上の範囲まで対応できます。
ようするに0〜15と236〜255の範囲のデーターもキャプチャ出来るという事です。
8bit精度では階調が表現しきれず、9bit精度で必要十分、10bit精度が理想、という事になります。
結局どの精度でもCCIR601(ITU-R BT.601)に合わせるのが無難でしょう。
なお、これは無圧縮RGB24bit(各色8bit 2の8乗 2×2×2×2×2×2×2×2=256すなわち0〜255の範囲、3色分R(0〜255)G(0〜255)B(0〜255)、計24bit、表現可能な階調 256×256×256=16777216色 )での場合であり、色変換式がYUY2 16bit精度の場合や、コーデックの設定により表現可能な階調は変化します。
アナログキャプチャボードの色範囲を調整する
キャプチャボードの色範囲をPCスケール範囲でのCCIR601(ITU-R BT.601)へ合わせる方法
信用できるパターンジェネレータから発信されたSMPTEカラーバーを使って輝度と彩度の上限をCCIR601(ITU-R BT.601)用に設定します。
※なお、先に書いたSAA7130-TVPCIの設定はCCIR601(ITU-R BT.601)にしてあります。
※DV(たぶん)やDVD、D-VHS(・・・はだいたい)MPEG-2のデコード設定がストレート変換の場合もCCI601(ITU-R BT.601)準拠です。
キャプチャボードの色範囲をPCスケールへ合わせる方法
信用できるパターンジェネレータから発信されたSMPTEカラーバーを使って輝度と彩度の上限をPCスケール用に設定します。
※DVD、D-VHSのMPEG-2のデコード設定を伸張にした場合もPCスケールです。
CCIR601(ITU-R BT.601)、PCスケールとは輝度と彩度のバランスによるものでキャプチャーボードの特性とは無関係です。調整(出来れば)すればどちらにでもなります。(ハズ゙)
それ以外の設定は全て『俺様スケール』となりPCスケール、CCIR601(ITU-R BT.601)スケールのどれにも当てはまりません。スケール関係なしのただの動画データですね。
CCIR601(16〜235)に設定してキャプチャされたデータは全て(基本的に)PCスケール補正が必要です。
PCスケール(0〜255)で初めからキャプチャするように調整した場合は、(基本的な)補正の必要はありません。
俺様スケールには俺様専用補正が開発されていることと思います。一般的だと思われますが、汎用的には通用しません。
人によってPCスケール補正が必要だというのと、いや必要ない、という意見が出るのは、自分専用の俺様スケールでキャプチャしてるからでしょう。
例えば・・・
・ 私はPCスケールでキャプチャしてるのでPCスケール補正(に順ずる補正)は必要ありません。
・ 私はCCIR601(ITU-R BT.601)スケールでキャプチャしてるのでPCスケール補正(に順ずる補正)しています。
・ 情報の損失を限りなく少なくしたいのでCCIR601(ITU-R BT.601)スケールでキャプチャし、そのまま保存し、再生時にPCスケール補正がかかるような環境に調整しています。
・ 階調の損失を限りなく少なくしたいのでPCスケールでキャプチャしています。
など、今の自分のキャプチャ設定、環境を完全に把握して理論的に説明できるでしょうか。
それはともかく、
地上波チューナーからの映像はCCIR601(ITU-R BT.601)を超えた範囲で情報を送ってくれるのでその誤差を知る必要があります。
これはチューナーの資質によるのでチューナーごと、理想は放送局レベルでの誤差を把握するのが理想です。
※TV局のカラーバーを使ってCCIR601(ITU-R BT.601)用に調整した場合はそのチューナー専用の調整であり、オールマイティーにキャプチャする為の基準としては
使えません。また、放送局が発信するカラーバーがSMPTE準拠なのかどうかがわかりません。
AGC(オート ゲイン コントロール)が付いてるとCCI601(ITU-R BT.601)に調整しても送られてくる信号により自動で補正されてしまいます。
たとえばゴーストリダクションチューナー等で輝度が変化するのはこれが働いてるからです。(たぶん)
AGCは切ったほうが補正の幅は把握しやすいでしょう・・・。
なお、CCIR601(ITU-R BT.601)でキャプチャデータを単純にTMPGEncの『YUVデーターをCCIR601ではなくて、basic、YcbCrで出力する』にチェックを付けてDVD用のMPEG-2にエンコードした場合、プレイヤーで再生させると生でTVを見た映像とほぼ同じになります。『ほぼ』なのは再生するDVDプレイヤーにもメーカーで色調が調整されてる場合がほとんどだからです。アナログに変換され出力される時点でフィルタがかかってます。
※例えば、SMPTEカラーバーをDVDプレイヤー用のMPEG-2としてエンコードし、それを再生させてCCIR601(ITU-R BT.601)用に設定した場合。それは、そのDVDプレイヤーのアナログ出力専用に調整した事になります。オールマイティーにキャプチャする為の基準としては信用できません。
SMPTEカラーバーとそれを使ってCCIR601(ITU-R BT.601)用にきっちり調整した場合のメリット (波形表示プラグイン及び、ヒストグラムを理解する必要はありますが)
1)キャプチャ後の色補正がPCスケール補正(に準ずる補正)以外、基本的に必要なし。
2)チップのA/D変換精度が9bit以上の場合、必要十分な階調が得られる。色情報が『豊富』という事。
3)白とび、黒潰れが、出力する側の原因以外では発生しない・・・と思う。
4)最もわかり辛い、輝度と彩度のバランスが把握できる。彩度が高い、低いの境界がはっきり把握できる。これこそ色補正で最も重要な項目ナリ。最重要。
5)4)を細かく説明すると
1 輝度の最大値と最小値が把握できる。
2 輝度と彩度のバランスを取るポイントが把握できる。
3 色相の変化を把握しやすい。
4 キャプチャボードの特性が把握でき、キャプチャボードとカラーバーとの誤差が数値としてしっかり把握できる。
5 彩度の最大値が把握できる。(仮)
6 1〜5の数値がしっかり把握できるため、色調補正で弄る項目が最小で済む。余計なのを弄らないで済む。
7 補正の幅がきっちりわかってるのでキャプチャ→自分デフォルト設定でほぼ全ての映像に対応できる。
8 ようするに色の補正が簡単。
デメリット
限界を超えた補正をするには勇気が必要。
AviUtlのPCスケール補正とTMPGEncの『YUVデーターをCCIR601ではなくて、basic、YcbCrで出力する』の違い。 (最終的にTMPGEncでMPEG化する時)
なおMPEG-2のデコード設定は、再生時にPCスケール補正(Y/C伸張)する場合です。(これで普通です)
カッコの意味
( ) |
PCスケール(0〜255)範囲内での数値。 なお、(16〜235)は、PCスケールの範囲(0〜255)内での(0〜15 CCIR601(16〜235) 236〜255)の範囲という意味にもなります。 |
{ } |
PCスケール(0〜255)範囲内での(0〜255)範囲。 |
( ) |
CCIR601(16〜235)範囲での数値。PC画面ではPCスケール補正(Y/C伸張)されて表示される部分です。 |
{ } |
CCIR601(16〜235)範囲での(16〜235)範囲。PC画面ではPCスケール補正(Y/C伸張)されて表示される部分です。 なお、{16〜235}の場合、TVではCCIR601の規定で16(PCスケールでは0)〜235(PCスケールでは255)で表示、PCではPCスケール補正して(0〜255)の範囲で表示されてるという事です。 |
[ ] |
MPEG-2のデータとして存在できる範囲。[0〜15] [236〜255] の範囲はデータとして存在してるけど、普通に再生する場合、TVでは見えなくて良い、PCでは見えない範囲という事です。 |
わかりにくい・・・
TMPGEnc
TMPGEncで、MPEG-2を作成する場合、基本的にPCスケール{0〜255}をCCIR601{16〜235}に収縮してエンコードするようになってます。
だから、キャプチャボードがCCIR601用{0〜15(16〜235)236〜255}に調整されていた場合、(大前提としてPCで表示されてる場合、全てにおいてPCスケールとなってます)
PCスケールの範囲内で{0〜15(16〜235)236〜255}のデーターのうち、0を16、255を235に収縮します。
すなわち、結果的に[{0〜15(16〜235)236〜255}]が[0〜15{16〜28(29〜217)218〜235} 236〜255]になってしまいます。
PCで見て薄く見えるものはTVで見ても薄く見えるままです。
CCIR601ではなくbasic、YCbCrで出力する、と
{0〜(16〜235)〜255}のデーターのうち、0〜15は真っ白以上の情報、236〜255の範囲が真っ黒以上の情報となり、16が0、235が255相当になります。
すなわち[{0〜15(16〜235)236〜255}]が[0〜15{16〜235}236〜255]となります。
薄く見えるものが、濃く、くっきりします。
MPEG-2は[0〜255]の情報が格納されます、しかし、再生されるときは[0〜15{16〜235}236〜255]のうち、{16〜235}部分のみが見えることになります。
{16〜235}の範囲が正しく調整されたTVや※PCでは見えます。それ以外は見えません。というか、見えないようにTVを調整します。
※PCのモニターの場合は{16〜235}を伸張しての{0〜255}という事になります。なのでPCモニターでは[0〜15] [236〜255]範囲が見える事は絶対にありえません。(ストレート変換時除く)
AviUtl
PCスケール補正した場合、0〜15が真っ白、236〜255が真っ黒になります。この範囲のデーターが全て消えます。
{0〜15(16〜235)236〜255}が[0{16〜235}255]になります。(0〜15)の部分が0、(236〜255)が255となり潰れます。
このため、情報の欠落が発生します。が、見えなくて良い範囲なので問題ないといえば問題ありません。ただし、失った情報は元には戻せません。
PCスケール補正 PCで表示される範囲(0〜255)内の{0〜15(16〜235)236〜255}の(16〜235)範囲を {0〜255}にY/C伸張します。PCで見る為の補正とは厳密には違います。
TVスケール補正 PCで表示される範囲(0〜255)内の{0〜255}の範囲をPCで表示される{0〜255}の範囲を(16〜235)にY/C収縮します。TVで見る為の補正とは意味が全然違います。
補足
TMPGEncで『YUVデーターをCCIR601ではなくて、basic、YcbCrで出力する』にした場合、
0〜15は真っ白以上の情報、236〜255の範囲が真っ黒以上の情報となます。この範囲のデーターは消えずに残ります。
[{0〜15(16〜235)236〜255}]が[0〜15{16〜235}236〜255]となります。
見た目はAviUtlと同じですが、TVやPCで見えなくても良い範囲の情報が消えずに残る為、ビットレートが余分に消費されます。
拘るなら情報の欠落がない分、こちらのほうが有利とは思います。
なお、AviUtlでPCスケール補正をかけるなどして0〜255範囲にきっちり調整してあるのに、またこれをすると、再生時に白飛びまくりの黒潰れまくりになります。
なお、この情報の残り具合というのはあくまで最終的にTMPGEncでMPEG-2にエンコードする場合であり、AVIに変換するとAviUtlもTMPGEncでも同じ結果になります。
(言葉では上手く説明できない・・・)
後書
以上が、色範囲に関して自分なりに理解してるところです。自分なりなので間違ってる可能性が大いにあります。
間違ってたら是非連絡下さい。キャプチャーボードのA/D変換精度の所もかなり曖昧です。
キャプチャーボードをCCIR601(ITU-R BT.601)に調整してもボードによって色が変わります。
色数が違ってくると思います。AIW-RADEONはかなり退色してるんじゃないかな。色数を知るソフトがあるのでこれも調べてみようかな。
ほんと、この『信用出来る』カラーバーというのが一般には入手困難なのがキャプチャー後の色補正が人によりけりになる1番の原因かと。
ReelTimeも全面的には信用できませんし。ReelTimeのカラーバーが正確という事が持ってる機材ではどうやっても調べきれないからです。
めざせあにぺぐに載ってる、ADVC-100とDAC-2のカラーバーの精度だとちょっと心配。
受けてる機材が業務用なので精度誤差は確実でしょう。あーいう絶対的に信用できる機材があればもっと正確に調整できるのになー。
個人で買うには高すぎますし、大げさです。
それと、GNBさんの波形表示プラグインは、実はとてつもない価値があります。フリーで使える事に感謝しなくてはなりません。
色の説明用のメモはつづく。それにしても後どれだけ説明しないと駄目なんだろう・・・。
どうでもいいですが、色の事を知るのと色の補正が上手いのとは別次元の事なので、自分が作った物を真似しても意味ないです。
やはりどうしても自分の環境にあった調整になってしまいますので・・・。特にPC用は。
間違ってるかもしれないので無断転用転載禁止。
どうでもいいメモ。
TMPGEncで手動24fps化する場合、テロップが入る瞬間のフィールドに気を付けるべし。
テロップ部にインターレースを残さない事。
Coprright © 2002 2003 ICZ