
デジタルで扱われる色には、いろいろな系統があります。
PCではRGBが主なものですが、テレビなどでは別の色が使われます。JPEGやMPEGなどもまた別です。
というわけで、それぞれの形式の変換というのを見てみようかなと思ってみたりするところです。
赤、緑、青の光の三原色を数値化したものです。CRTなどの表示機器がこんなタイプなので、RGBがよく使われます。
古いPCでは、1ドットで8色しか使えなかったりしましたね。0:黒 1:青 2:赤 4:緑 と、これを足しあわせて 3:紫 5:水色 6:黄 7:白、こんな感じです。
最近では、階調が増えて各色256段階(8ビット)で16,777,216色表現できるのが当然のようになっています。特殊なものでは12bitや16bit階調まで可能なものがあるようです。これらは部分的な明るさを変えながら使えるようにしたものなのでしょう。デジタルカメラも、内部では16bit程度なのかもしれません。
PC/AT互換機、と呼ばれるものになってからは、RGBの並び順が変わったりしたかもしれません。それまでは8ビットの色を拡張した青赤緑の順でしたが、最近のものはRGBの順で赤緑青なのでしょうか。
互換性
いちばん明るい部分、いちばん暗い部分、などの基準は、ばらばらでした。が、いくつか規格も登場してきています。
DVI-DはRGBだが、HDMIはYUV対応だという・・・。ビデオ系の映像がYCbCr/YPbPrを使うとか。
基本的にはYCbCr系とRGB系のふたつですが、色がどのくらい幅広く表現できるか、また各種デバイス(機器)で同じ色を表現できるかということでいくつか規格っぽいものがあります。
6500kとか9300kとか5000kとかありますね。明るさの単位みたいなもの? 日本のテレビは9300k。他はだいたい6500kらしいです。映画を見るときは6500kがいいのか?
赤っぽいあれ? CRT時代の規格のひとつ、液晶でも対応製品はあります。xvYCC内ではYが16〜235、Cb,Crが16〜240(-0.5 〜 +0.5)の範囲内の色。BT.709と比べるとオーバーホワイトがない。
これも古くからあります。最近では液晶でこれに対応できるものがいくつか? それまでは液晶は色があんまり出なかったということかな。sRGBより広い色空間らしい。
YCbCr系の色規格。sRGBより広い色が扱える。が8bitカラーなので荒くなることも? sYCCはYCbCr系のRGBより広い色空間で、sRGBからITU-R BT.601とかいうのを使ってsYCCに変換できるらしいです。デジタルカメラのExif2.2などで使えるようです。
アナログとデジタルの色変換を規定したものでしょうか。ま、よくわかりませんがこんな感じらしいです。sRGBとsYCCの変換に使えるのかな。SD映像用らしいです。
アナログからの変換を想定したものなので、デジタルな場合は別途基準があるかもしれない。
Y ( 16 - 235 ) 1〜254なら許容範囲?
Cb,Cr ( 16 - 240 )
RGB デジタルで 16〜235 を想定。表示する場合は拡張した方がいいかも。
Y = 0.29900 * R + 0.58700 * G + 0.11400 * B Cb = 0.564 * (B - Y) = - 0.16874 * R - 0.33126 * G + 0.50000 * B Cr = 0.713 * (R - Y) = 0.50000 * R - 0.41869 * G - 0.08131 * B
アナログの場合の変換式なので、デジタルの場合はこの限りではないかもしれず。↓参照
[JPEG] のはアナログの例を無理やりデジタルにしてるな・・・間違えたか( _ _)
R = 219 * r + 16
G = 219 * g + 16
B = 219 * b + 16
アナログからデジタルへの変換例のようなので、この変換ではYCCからRGBにしたとき、0〜255ではなく16〜235になってしまいます。もともとデジタルなものは、あまり考えない方がいいかもしれません。
Y = (77 * R / 256) + (150 * G / 256) + (29 * B / 256) CB = - (44 * R / 256) - (87 * G / 256) + (131 * B / 256) + 128 CR = (131 * R / 256) - (110 * G / 256) - (22 * B /256) + 128
255ではなく256 なんでしょうか?
HDTV用の規格。YCbCrではなくYPbPrになるらしい。sRGBと同じ色域?
Y = 0.2126 * R + 0.7152 * G + 0.0722 * B PB = 0.5389 * (B-Y) = -0.1146 * R - 0.3854 * G + 0.5000 * B PR = 0.6350 * (R-Y) = 0.5000 * R - 0.4542 * G - 0.0458 * B
主に動画向けの色規格。sRGBを転がしてYCbCrに収まるようにYCbCr空間を拡張したもの? 主にソニーのビデオカメラ、ソニー、三菱電機 の液晶などが対応はじめてますね。カメラ向けの色規格(sYCC)で使われていない部分を拡張して、ディスプレイ側でも合わせたものです。sYCCの使われてないところ(sRGBに変換できない部分の多く)にもデータを詰め込むとx.v.YCCになるのかもしれません。MPEG系でもH.264でも使えるように規格化されていますが、使われるのは主に家庭用ビデオカメラで撮影された映像のみです。
x.v.Color用モードなんかは別にあるわけではなく、普通のテレビ表示の拡張として実現できます。→http://tb.itmedia.co.jp/tbs/anchordesk/articles/0711/19/news014.htmlで書かれているような判定フラグなんてありません。録画機の対応有無は、主にカメラとの接続ができるかできないか、映像変換の時に対応している(変な丸め込み、色域圧縮処理をしていない)か、ぐらいでしょうか。PLAYSTATION 3なんかだと、動画をただ再生できれば対応している、ということにもなりますし、HDMIのRGBモードだとx.v.Colorと似たような色域まで表現できる気がします。表示側の性能次第ですが。
xvYCC色空間の技術概略 (JEITAかどこかでの発表資料から)
BT.709上位互換のxvYCC709とBT.601上位互換のxvYCC601がある。
Yが16〜235、Cb, Crが1〜254。Cb',Cr'が-0.57〜+0.56 かな?
NTSCなどなどはちょっと違うかもしれないけど、もともとBT.709-5のような色規格がある。それより広い色を表現するもの。基準は曖昧? マンセルカラー・カスケードと呼ばれる色見本769色の内、従来は55%だったものがx.v.YCCでは100%に対応している。
PLAYSTATION 3では放送用のYCbCrの色域を越える色が出せる設定などがRGB/YCbCrの両方にあります。スーパーホワイトってx.v.Colorのこと?
対応機
参考
普通はRGB各8bit、YCbCrでも各8bitで表現されるようですが、各色階層が8bitより深い、10bit、12bit、16bit、3色あわせて30bit、36bit、48bitなどなどのいろいろに対応したもの。転送速度の速いHDMI 1.3に対応していないと無理なところもある。
どう言っているのか
VIERAのPZ800は最大18bit処理、Victor/JVCのEXEはDeep Color 36bit対応、と言っています。どちらが凄いでしょう?
PZ800の18bit というのは1色での色の階調のことなので、RGBの3色では54bitということになります。EXEの36bitはRGBに分けると12bitです。HDMIでは16bit/48bitまでしか対応していませんが、x.v.Colorなどで圧縮された映像を復元する場合に18bitで演算、表示したりしなかったりします。HDMIでの入力は16bitまでしか対応していないので、演算の中でRGBとの変換などで細かな誤差がないよう18bitまで取ってあるのでしょう。
どちらの基準で言っているのか、見分けられるようにしておきましょう。8〜23ビットで言う場合は大抵RGB各色に分けた場合。24〜48bit、それ以上の場合はRGBまとめた色のbit数のことを言っています。
sRGBを0〜1だとすると、マイナスから2とか3の明るさなどまで広げたものがあるようですよ。sYCCも収まるか?
YCC系の色を使っていると、RGBの光源では8bitで足りないことがなんとなくわかってきますかね。
PCでは、RGBで色を表示しますが、ほとんどの場合基準なんてありません。ビデオ再生などではどの色をどこにあわせていけばいいのでしょうか。
さてどうしたものでしょうね。
[しいしせねっと] [技術資料室][フォーマット編] [お問い合わせ]