YCbCr色空間はJPEG画像でどのように表現されますか?


9

24ビットの画像は、R、G、Bにそれぞれ8ビットを使用することを知っています。これは、RGBカラースペース専用です。24ビットJPEG画像のYCbCr色空間で、ビットはどのように配分されますか?

回答:


3

YCbCrにはいくつかの形式があります。一般的に言えば、目は彩度(Cb、Cr、色)の変化よりも輝度(Y、明るさ)の変化に敏感です。したがって、画質を維持しながら、一部の彩度情報を消去することが可能です。

したがって、最も「高価な」フォーマットは4:4:4で、各輝度(Y)コンポーネントに対して1つの赤の差分(Cr)と1つの青の差分(Cb)のコンポーネントがあります。

次に、前述の原則を適用すると、4:2:2があり、2つのY成分ごとに1つのCbと1つのCrがあります。そして、それはさらに4:1:1と4:2:0などに行きます。詳細はこちら


これらのパターンは、JPEGエンコーディングではなく、ビデオの周波数サンプリングを参照しているようです。
whuber

@whuber:ビデオコーディングの説明で頻繁に使用されますが、JPEGは、クロミナンスの2倍の解像度の輝度もサポートしています。JPEGの場合はオプションですが、彩度はフル解像度またはハーフ解像度のいずれかです。
ジェリーコフィン

1
GIMPは、JPEGを保存するときにデフォルトでクロマサブサンプリングを使用しますが、オーバーライドは簡単です。これがPhotoshopにも当てはまるかどうか思い出せません。
thomasrutter-

@ thomasrutter、Photoshopは、選択した品質設定に基づいてサブサンプリングを選択します。これは独立したオプションではありません。
Mark Ransom、2011

ちなみに、この数値は、Y、Pr、Pbの4水平ピクセルあたりのサンプル数を示しています。つまり、4:4:4は、3つのチャネルすべてがすべてのピクセルをサンプリングすることを意味します。4:2:2は、PrチャネルとPbチャネルが1秒ごとに水平方向にのみサンプリングすることを意味します。4:1:1(これは写真では使用されないと思いますが、ビデオでのみ使用されます)は、PrとPbが水平方向に4ピクセルごとにのみサンプリングすることを意味します 4:2:0は、このルールからの特別な逸脱です。Pbチャネルがないという意味ではありません。つまり、PrチャネルとPbチャネルは水平方向だけでなく、水平方向と垂直方向の両方で半分になっています。
thomasrutter

24

JPEGは、R、G、およびBチャネルごとに8ビットで開始する場合がありますが、JPEGに格納される場合は、まったく異なる「ビット深度」ではなく、値が特定の精度の周波数係数として格納されるという非常に異なる方法で格納されます。

JPEGでより重要なのは量子化率です。これは、圧縮の量子化段階で廃棄される情報に影響を与え、各係数の精度に影響します。この量子化率は、photoshopでJPEGを保存するときの「品質」設定によって設定されます。ただし、ラスターイメージの場合のようにビット深度とは関係ありません。JPEGエンコーダー/デコーダーは24ビットで開始/終了しますが、JPEG形式ではJPEGイメージにビット深度がないと言うこともできます。ラスター画像。

JPEGの保存に関連する他の主な要素は、クロマサブサンプリングタイプです。JPEGでは、輝度(明度)チャネルに対してカラー(PrおよびPb)チャネルの水平解像度または水平解像度と垂直解像度の両方を半分にするオプションがあります。解凍すると、カラーチャネルが補間され、ほとんどの写真の主題では、それほど大きな違いはありません。

ここでは、画像がJPEGに変換される方法の大まかな概要を示します。

  1. RGB値はY、Pb、Pr値に変換されます。YPbPr色空間は、最も詳細な輝度情報を1つのチャネルにのみ保持するため、効率的な圧縮に適しています。この変換は単純な算術演算であり、丸め誤差がある場合を除いて、完全に可逆です。

  2. クロマサブサンプリングを使用している場合(つまり、4:4:4モード以外の何かを使用している場合)、PbチャネルとPrチャネルのみの垂直および/または水平解像度が半分になります。したがって、これらのチャネルは、輝度チャネルとは異なるピクセル寸法を持っています。これにより、カラーチャネルの解像度が永久的に失われます。

  3. 各チャンネルで、画像は8ピクセルx 8ピクセルのブロックに分割されます。これにより、各チャンネルのそのようなブロックごとに64の線形値が得られます。チャネルがいずれかの次元で8ピクセルの倍数でない場合、エッジピクセルが繰り返されます(圧縮解除するとスローされます-したがって、8ピクセルの倍数の次元ではJPEG圧縮が常に効率的です。クロマサブサンプリング)。

  4. 各ブロックの64個の値は、空間ドメインから周波数ドメインへの変換を受けます。この場合、離散コサイン変換と呼ばれます。最終的に64個の係数が得られます。各係数は、そのブロックが占める領域の特定の周波数マップの振幅を表します。最初の値は最低周波数であり、これは事実上すべてのピクセルの平均値であり、ブロックの最高周波数成分を表す最後の値までです。ブロック内の後の値よりも前の値はすべて大きくずれており、最終的な画像の外観にとってより重要です。この操作は、十分な精度を使用している限り、完全に元に戻すことができます。

  5. 次に、量子化ステップがあり、前のステップで取得した64個の係数のそれぞれが何らかの数値(量子化係数と呼ばれます)で除算され、残りが捨てられます。これは、サンプルの精度が最も影響を受ける場所ですが、ロスレス圧縮と比較して、JPEGから大幅なスペース節約を得ることができます。前回の変換以降はすべて周波数領域にあるため、この精度の低下は、この変換前にピクセルのビット深度/精度を単に下げるよりも、知覚的な画質を維持するのに最適です。この手順の逆は、係数を除算した数と同じ数を乗算するだけですが、もちろん、余りを捨てたので、係数の精度が低くなります。その結果、品質が永久的に失われ、

  6. この量子化の後は、後の多くの係数がゼロになるのが一般的であるため、これらは破棄されます。次に、(ロスレス)可変長コーディングルーチンは、それぞれが異なる数のビットを使用する場合でも、残りのすべての係数を効率的な方法でエンコードします。

特定の量子化係数が特定のビット深度に等しいと言うことは不可能です。量子化はビット深度を減らすときのようにバンディングを与えないので、気づく部分から始めて全体的に知覚的損失を詳細に与えるからです。これは、その周波数に対して振幅が非常に小さいためです。


2
私の脳はちょうど爆発したと思います。
Nick Bedford、

クロマサブサンプリングは、「解像度の低下」を引き起こすだけではありません。特に赤いチャンネルで非常に目立つアーティファクトが発生します。
Mark Ransom、2011

@Mark Ransomこれらのアーティファクトは、カラーチャネルの解像度を半分にした結果と、解凍後にそれを考慮するために必要な補間にすぎません。解像度のぼやけによって引き起こされるもの以外の「注目すべきアーティファクト」が生成されることはありませんが、この補間を台無しにしたり、非常に単純な最近傍補間を実行したりするデコーダが存在する可能性があります。黒の詳細(または青のマゼンタなど)。これは、たとえば一部の初期のDVDプレーヤーでは一般的な問題でした。
thomasrutter

5
私は、jpeg-または本当に非可逆-画像圧縮の説明をよりよく理解しやすいと思ったことはないと思います。確実な+1
jay.lee

すみません、サブサンプリングがアーティファクトを引き起こすことを意味するつもりはありませんでした。量子化による既存のエラーが2倍になり、よりはっきりと見えるようになるだけです。サブサンプリングの目に見える効果は、ほんの少しのあいまいさだけではないことを知っておくことが重要だと思います。
Mark Ransom

1

ルーマ(Y)とは別のチャネルでクロマ(Cb Cr)を表すと、圧縮に別のプラスの効果があります。目に見える情報のほとんどは、輝度チャンネルにあります。人間の目は、クロマチャネルでの空間分解能の低下とより積極的な量子化の両方を許容します。そのため、積極的に圧縮された画像は、クロマのファイルスペースの約10%を消費し、残りの部分はルーマを消費しますが、それでもまともな見た目になります。

結局のところ、それは非可逆圧縮です。


-1

各チャネルで約8ビットですが、これを行うにはいくつかのわずかに異なる方法があります。詳細は、YCbCrに関するWikipediaの記事に記載されています。


これは質問で述べられました。より詳細な回答を提供してください。
Nick Bedford、

@ニック質問で「これ」はどこに述べられたのですか?現状の質問は、「24ビットJPEG画像のYCbCrカラースペースでは、ビットはどのように配分されるのですか?」質問を理解している人なら誰でもそうであるように、チャネルがY、Cb、Crであると仮定して、それらがどのように分布しているかを述べました。私の答えはウィキペディアの記事の正しい要約です。SEのポリシーは、コピー資料の卸売りではなく要約を提供することです(ただし、このサイトの他の場所にある長い引用の境界線の例を提供するのは簡単ですが)。
whuber

この種の答えは、完全な説明ほど優れているわけではありませんが、Wikipediaから切り取って貼り付けたり、Wikipediaの記事全体を言い換えたりするよりもはるかに優れていると思います。ウィキペディアが良ければ、それについて人々に知らせることは役に立ちます。そしてそれがあなたの答えが貢献しているすべてであるならば、前にいて、そして簡単な要約とリンクを与えることはまさに正しいことです。
プロフィールを読む
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.