JPEGそれはバサックウォークです。値は相対的なサンプリングレートを示します。 最高サンプリングレートはY(2)です。 CbとCrのサンプリングレートは1です。 最も高いサンプリングレートを使用して、ピクセルに正規化します。
2Y = Cb = Cr。Y = 1/2Cb = 1/2Cr。
その方向のYピクセルの値ごとに、CbとCrのピクセル値の1/2を使用します。
JPEG標準のようなものもあります。
4Y = 3CB = 1CR Y = 3/4CB = 1/4のCr
又は
3Y = 2CB = 1CR Y = 2/3CB = 1/3CR
しかし、ほとんどデコーダはそれを処理できませんでした。
「4:4:4」、「4:2:2」、「4:4:0」のようなラベルは、JPEG規格にないラベルです。まあまあ、私はそれらの言葉がどこから来たのか分からず、彼らは直感的ではありません(ゼロサンプリングはありません)。
この問題を別の方法で見てみましょう。しかし、最初に、JPEG標準自体は実装可能ではないことに注意しなければなりません。画像をエンコードするために必要なことは未定義であり、標準は不必要なもので広がっています。
スキャンがインターリーブされている場合(3つのコンポーネントすべて)、最小符号化単位(MCU)でエンコードされます。 MCUは、8×8の符号化ブロックで構成されています。
サンプリングレートは、MCU内の8x8ブロックの数を指定します。
あなたはCbの場合はY + 1x1、Crの場合は1x1です。これは、合計4つの8×8ブロックがMCU内にあることを意味します。上記で他の理論値を述べたが、MCUの最大ブロック数は10です。したがって、4x4 + 3x3 + 2x2は不可能です。
JPEG標準では、ブロックがイメージ内のピクセルにどのようにマップされているかについては言及していません。私たちは通常、最大値を使用し、2x1ゾーンまたは16x8ピクセルを波乗りさせます。
しかし、すごみのすべての種類は、次のような、標準の下で可能である:おそらくピクセルの16×16ブロックにMCUマップを意味するだろう
Y = 2×1、Cbの= 1×2およびCr = 1x1の
あなたのデコーダはおそらくこれをサポートしません。あるいは、MCAが16x8ブロックのピクセルにマップされ、Cbコンポーネントが8方向にさらに値を持つことを意味する可能性があります。
これを実際に見るための最終的な方法は、Y成分を基準点として使用することです。 Yは、X方向とY方向のサンプリングレートとして常に1または2(おそらくは4)を持ち、CbとCrのレートは1(と多分2)になると定義します.Yコンポーネントは常に画像内のピクセルを定義します。この偉大な詳細な回答のため
Y Cb Cr
1x1, 1x1, 1x1
2x2, 1x1, 1x1
4x4, 1x1, 1x1
2x1, 1x1, 1x1
1x2, 1x1, 1x1
ありがとう:
これらはその後、現実的な可能性になります。 – juFo