しいしせねっとわーく
[技術資料室] [ネットワーク編] [フォーマット辞典] [Java編] [Linuxメモ] [ハード部屋]
[映像編] [JPEG] [CRTの端子] [HDMI] [DV] [QRコード]

フォーマット辞典 色規格 色色々編

Last update  12/16/2019 00:00:37

デジタルで扱われる色には、いろいろな系統があります。

PCではRGBが主なものですが、テレビなどでは別の色が使われます。JPEGやMPEGなどもまた別です。

というわけで、それぞれの形式の変換というのを見てみようかなと思ってみたりするところです。

RGB

赤、緑、青の光の三原色を数値化したものです。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がいいのか?

sRGB (IEC 61966-2-1 1999年)

赤っぽいあれ? CRT時代の規格のひとつ、液晶でも対応製品はあります。xvYCC内ではYが16~235、Cb,Crが16~240(-0.5 ~ +0.5)の範囲内の色。BT.709と比べるとオーバーホワイトがない。

AdobeRGB

これも古くからあります。最近では液晶でこれに対応できるものがいくつか? それまでは液晶は色があんまり出なかったということかな。sRGBより広い色空間らしい。

sYCC (IEC 61966-2-1)

YCbCr系の色規格。sRGBより広い色が扱える。が8bitカラーなので荒くなることも? sYCCはYCbCr系のRGBより広い色空間で、sRGBからITU-R BT.601とかいうのを使ってsYCCに変換できるらしいです。デジタルカメラのExif2.2などで使えるようです。

ITU-R BT.601-5

アナログとデジタルの色変換を規定したものでしょうか。ま、よくわかりませんがこんな感じらしいです。sRGBとsYCCの変換に使えるのかな。SD映像用らしいです。

アナログからの変換を想定したものなので、デジタルな場合は別途基準があるかもしれない。

Y ( 16 - 235 ) 1~254なら許容範囲?
Cb,Cr ( 16 - 240 )

RGB デジタルで 16~235 を想定。表示する場合は拡張した方がいいかも。

RGB アナログ色 (0~1) → YCrCb アナログ色(0~1)

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] のはアナログの例を無理やりデジタルにしてるな・・・間違えたか( _ _)

アナログrgb(0~1) → デジタルRGB(16~235)

R = 219 * r + 16

G = 219 * g + 16

B = 219 * b + 16

アナログからデジタルへの変換例のようなので、この変換ではYCCからRGBにしたとき、0~255ではなく16~235になってしまいます。もともとデジタルなものは、あまり考えない方がいいかもしれません。

デジタルRGB(16~235) → デジタルYCbCr(16~235/16-240)

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 なんでしょうか?

ITU-R BT.709 (1990年)

HDTV用の規格。YCbCrではなくYPbPrになるらしい。sRGBと同じ色域を持っているようだ? Rec.709 などともいう

アナログ用変換式?

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

ビデオの圧縮に使われる色の間引き方の名称

RGBのままで動画を作るのもありですが、効率よく圧縮するためには輝度と色情報に分けるのがいいので↑や↓のようになります。その精度でもいろいろあって名前がついてたりします。

YUV422だとかYUV411だとかYUV420? なにそれ? と、圧縮する場合にはいろいろあるんですが、輝度以外の情報を縦半分や横半分等々にします。

x.v.YCC色空間 ( IEC61966-2-4 通称 x.v.Color )

主に動画向けの色規格。BT.709の拡張。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色空間の(技術的)内容

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色の内、従来sRGBは55.8%だったものがsYCCでは94.3%、x.v.YCCでは100%に対応している。

色空間 メディア色域包括率
表面色 フィルム Ink Jet 印刷 全色票
IEC61966-2-1: sRGB 55.8% 64.2% 62.4% 83.9% 67.5%
IEC61966-2-1: sYCC 94.3% 93.6% 95.5% 98.7% 95.7%
IEC61966-2-4: xvYCC 100.0% 99.9% 99.3% 100.0% 99.8%

表はJEITAより

PLAYSTATION 3では放送用のYCbCrの色域を越える色が出せる設定などがRGB/YCbCrの両方にあります。スーパーホワイトってx.v.Colorのこと?

対応機

参考

Deep 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の色空間を広げたもの

sRGBを0~1だとすると、マイナスから2とか3の明るさなどまで広げたものがあるようですよ。sYCCも収まるか?

YCC系の色を使っていると、RGBの光源では8bitで足りないことがなんとなくわかってきますかね。

HD以降の色

テレビもデジタル化して以降、色が増えているので簡単に分類から

DeepColorは一旦忘れるのがいいのかな。

色の規格はITU-R BT.709からITU-R BT.2020、BT.2100へと進化しています。どれがどう関連しているのかわかりにくいのでいろいろとまとめてみたい。

従来の色はSDRと呼ばれ、明るさや階調を増やしたHDRという括りが出てきました。

Logとカラーグレーディングって何、というのも混ぜてみようかと。

で、色規格 (放送規格)

  BT.601(NTSC?) sRGB BT.709 BT.1886 BT.2020 BT.2100 DCI-P3 DisplayHDR 400 DisplayHDR 600 DisplayHDR 1000
解像度 SD   1920x1080   4K, 8K FHD,4K,8K        
ビット深度     8bit   10/12bit 10/12bit   10bit/8bit 10bit/8bit 10bit/8bit
フレームレート(最大) 60   60p   120p 120p        
輝度 SDR
100cd/㎡
80cd/㎡ SDR SDR SDR(HDR)
100cd/㎡
SDR,HDR
1000cd/㎡
~10000cd/㎡
48cd/㎡ 最低 0.4nit
全黒0.1cd/㎡以下
最大 400cd/㎡
最低 0.1nit
全黒0.1cd/㎡以下
最大 600cd/㎡
最低 0.05nit
全黒0.1cd/㎡以下
最大 1000cd/㎡
白色点 6774K/
9300K(NTSC日本)
D65     D65   6302K      
ガンマ 2.2 2.2 1.9 2.4 ?   2.6      
NTSC比   72%                
色域     sRGB/Rec.709/(xvColor) sRGB/Rec.709 Rec.2020 Rec.2020   BT.709 95%以上 BT.709 99%以上
DCI-P3 90%以上
BT.709 99%以上
DCI-P3 90%以上

xvYCC(x.v.Color)はSDRなのかHDRなのかまだ不明。BT.709時代のHDRっぽいもの。

色域と輝度?

HDRが出てきて今までの色の規格を整理してみると、色域を拡張してきた歴史であるようです。HDRは輝度の方を拡張しているのでいろいろと。ビット深度の方も4Kでは10bitが標準的になってきているようなので、そういうカメラなどを用意した方がいいのかもしれません。

4K放送はBT.2020にPQやHLGをのせたHDRらしいです。実質BT.2100。階調はSDRでも10bitが標準っぽいので8bit時代もそろそろ終わりそうです。SDRのガンマはBT.709と同じ0.45とか。

BT.2100はBT.2020にPQとHLGを標準として取り込んだもの。BT.2020は4K,8K用だったが、BT.2100はHD(1920x1080)も含む。色としてはPQとHLGが標準かオプションかの違いでほぼ同じ。

HDR10はテレビ、ディスプレイが対応しているPanasonic,SONYがまとめたっぽい規格のような規格ではないなにか。HDR10+はPanasonicなどが規格としてまとめたHDR10の拡張で動的に明るさのピークが変更できるらしい。DisplayHDRはHDR10対応と明るさ、色域などについて定めたVESAによるディスプレイの規格。

今の主流は撮影時にはHLGなどで記録され、パッケージ化でPQ方式にまとめられ、HDR10対応のディスプレイで見る、感じなのかどうか。

明るさを基準にすると、BT.601は100nit程度、PQが1000から10000nit程度を想定していて、市販されているテレビはHDR対応でも300から400nitくらい。DisplayHDRだと1000nit,1400nitくらいまである。

PCではどうなのか?

PCでは、RGBで色を表示しますが、ほとんどの場合基準なんてありません。ビデオ再生などではどの色をどこにあわせていけばいいのでしょうか。

DisplayHDR

ディスプレイにもようやく、VESAがDisplayHDRという規格を出してきました。

[しいしせねっと] [技術資料室][フォーマット編] [お問い合わせ]