YCbCr
Y(輝度)、Cb(青の色差)、Cr(赤の色差) / ワイシービーシーアール
RGBの映像を、明るさを表すYと、青と赤の色の差を表すCbとCrの3つの値に分けて持つ形式です。放送や動画のコーデックのほとんどがこの形で映像を記録・伝送しています。
- 構成
- Y(輝度)、Cb(青の色差 B-Y)、Cr(赤の色差 R-Y)
- Yの式(BT.709)
- Y = 0.2126R + 0.7152G + 0.0722B
- Yの式(BT.601)
- Y = 0.299R + 0.587G + 0.114B
- Yの式(BT.2020)
- Y = 0.2627R + 0.6780G + 0.0593B
- 値の範囲(8bit)
- Y 16〜235、Cb・Cr 16〜240(中心128)
- 値の範囲(10bit)
- Y 64〜940、Cb・Cr 64〜960(中心512)
- アナログでの呼び名
- YPbPr(コンポーネント信号)
- ffmpegでの形式名の例
- yuv420p、yuv422p10le
コーデックの仕様やffmpegのログに「YUV」「YCbCr」と出てきて、RGBと何が違うのか分からない。映像の世界では、色を赤・緑・青のまま持つことは少なく、明るさと色の差に分けて持つのが普通です。この分け方がYCbCrで、4:2:2や4:2:0といった表記もここから来ています。
YCbCrが使われる場面
放送の映像はほぼすべてYCbCrで流れています。SDIで送られる信号の多くは4:2:2のYCbCrで、XDCAM HD422、AVC-Intra、XAVC Intra、ProRes 422のような業務用のコーデックも、YCbCrの4:2:2で映像を記録します。H.264やH.265の配信用の動画は、ほとんどが4:2:0のYCbCrです。
逆に、CGの書き出しやVFXの作業ではRGBがよく使われます。DPXやOpenEXRの連番、ProRes 4444のように色を間引かない形式を選び、合成が終わってから放送用のYCbCrに変換します。
ffmpegを使う現場では、ピクセルフォーマットの名前としてYCbCrに出会います。yuv420p は8bitの4:2:0、yuv422p10le は10bitの4:2:2を指し、名前はYUVでも中身はYCbCrです。
YCbCrの仕組みとRGBとの違い
YCbCrでは、まずRGBから明るさのYを計算します。人の目は緑に最も敏感なので、BT.709ではYの約72%を緑が占めます。次に、青からYを引いた値をCb、赤からYを引いた値をCrとして、それぞれ決まった係数で範囲をそろえます。緑の色差を持たないのは、YとCb、Crから計算で戻せるからです。
この形にする理由は、人の目が明るさの細かさには敏感でも、色の細かさには鈍いことにあります。Yはそのまま残し、CbとCrだけを横や縦に間引いても、見た目の劣化はわずかです。これがクロマサブサンプリングで、4:2:2なら色の情報を横方向に半分、4:2:0なら縦横とも半分にしてデータ量を減らせます。
値の範囲には決まりがあり、10bitの映像ならYは黒が64、白が940です。CbとCrは512を中心に上下に振れ、512なら色のない灰色を表します。
YCbCrの変換で間違えやすい点
多いのは、変換の係数の取り違えです。SDのBT.601とHDのBT.709ではYを計算する係数が違うので、HDの映像をBT.601の係数でRGBに戻すと、色相や彩度が少しずれ、肌の色や緑の見え方が変わります。SD素材をHDにアップコンバートしたときや、係数の情報が付いていないファイルを読み込んだときに起きやすい問題です。
YCbCrとRGBを行き来するたびに、わずかな丸めの誤差が生まれます。特に8bitで変換を繰り返すと、グラデーションに段差が出やすくなります。編集の途中は10bit以上で扱い、変換の回数を減らすのが基本です。
YCbCrの値の範囲をどう解釈するかも間違えやすい点です。16〜235を黒から白として扱うか、0〜255を黒から白として扱うかで、黒の締まり具合が変わります。この問題はフルレンジとリミテッドレンジのページで扱っています。
よくある質問
YCbCrとYUVは同じですか
厳密には違います。YUVは主にアナログのPALで使われた色差信号の名前で、デジタルの映像で使うのはYCbCrです。ただ、ソフトやファイル形式の表記ではYUVがYCbCrの意味で使われることが多く、実務ではほぼ同じものとして扱われています。
YCbCrとRGBはどちらが画質が良いですか
同じビット深度で色を間引かない4:4:4なら、変換の丸め誤差を除けばほぼ同じ映像を表せます。画質の差が出るのは、YCbCrで色を間引く4:2:2や4:2:0を使ったときです。合成や色の加工を重ねる作業ではRGBか4:4:4、放送や配信の最終形は4:2:2や4:2:0のYCbCrというのが一般的な使い分けです。
YPbPrとYCbCrの違いは何ですか
YPbPrはアナログのコンポーネント信号の呼び名で、YCbCrはそれをデジタルの数値にしたものです。考え方は同じで、明るさと2つの色差に分けて送ります。
似ている形式との違い
| 名前 | 主に使う場面 | YCbCrとの違い |
|---|---|---|
| RGB | CG・VFX・画像ファイル | 赤・緑・青をそのまま持つ形式。色を間引けないのでデータ量が多いが、合成や色の加工で劣化しにくい |
| YUV | ソフトやファイル形式の表記 | 本来はアナログのカラーテレビ(主にPAL)の色差信号の名前。現在はYCbCrの意味で使われることが多い |
| クロマサブサンプリング | 色の情報の間引き | YCbCrのCbとCrを間引く方式のこと。4:2:2や4:2:0はYCbCrを前提にした表記 |
関連する用語
最終更新