JPEGのフォーマットについて教えてください


以下のページを見ると
http://webs.lanset.com/crazy17/jp/lab/jpeg1.htm

JPEG には白黒(Grayscale)とカラーの二種類があります。白黒のほうは文字どおりなのですが、カラーは RGB 色モデルではなく YCbCr という色モデルを使っています。
YCbCr は原理的にカラーテレビの YUV 変調と同じで、特に新しい技術ではありません。
と記載されています。



そこで以下について教えていただけると助かります。

1) JPEGで使われているYUVにはYUV444やYUV420などのいろいろな種類があるのでしょうか。
それとも、特定のフォーマットが使用されているのでしょうか。

2) 複数の種類がある場合、それを区別するには、JPEGのフォーマットのどのフォーマット部分を見ればよいのでしょうか。

3) 複数の種類がある場合、それを区別するツールなどはあったりしますでしょうか。

お手数をおかけしますが、情報をお持ちの方がいらっしゃいましたら教えていただけると助かります。

回答の条件
  • 1人5回まで
  • 登録:2007/08/06 18:43:42
  • 終了:2007/08/07 14:50:21

ベストアンサー

id:katzchang No.4

katzchang回答回数10ベストアンサー獲得回数12007/08/07 14:45:50

ポイント43pt

恐らくですが、SOF0ヘッダに情報を持っているような気がします。

http://siisise.net/jpeg.htmlによると、SOF0ヘッダ(FFC0~)の「水平(0.5)/垂直(0.5)サンプリングファクタ 各1~4」という項目があるらしく、ここで管理しているようです。

例として、 http://webs.lanset.com/crazy17/jp/lab/jpeg1.htm の図3-2の画像では9Eバイト目からSOF0ヘッダで、

ダウンサンプル比 フレーム成分指定
パラメータ1(Y)
フレーム成分指定
パラメータ2(Cb)
フレーム成分指定
パラメータ3(Cr)
1:1 01 11 00 02 11 01 03 11 01
1:2 01 21 00 02 11 01 03 11 01
1:4 01 22 00 02 11 01 03 11 01

それぞれの成分の比率を求めると1:1:1=4:4:4、2:1:1=4:2:2、4:1:1となり、これがYUV444、YUV422、YUV411となるのではないかと推測します

ちなみにTSXBINというバイナリエディタでみると、JPEGフォーマットを解釈してくれました。

その他の回答(3件)

id:KUROX No.1

KUROX回答回数3542ベストアンサー獲得回数1402007/08/06 18:48:54

ポイント16pt

英語でよければJPEGの仕様はあります。

http://www.dcs.ed.ac.uk/~mxr/gfx/2d/JPEG.txt

id:k-kotori No.2

k-kotori回答回数118ベストアンサー獲得回数52007/08/06 19:19:42

ポイント11pt

1) JPEGで使われているYUVにはYUV444やYUV420などのいろいろな種類があるのでしょうか。

それとも、特定のフォーマットが使用されているのでしょうか。


http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/yuv.html


2) 複数の種類がある場合、それを区別するには、JPEGのフォーマットのどのフォーマット部分を見ればよいのでしょうか。


http://homepage1.nifty.com/sibaurataro/tanosii/di3.htm


3) 複数の種類がある場合、それを区別するツールなどはあったりしますでしょうか。


JPG同士を区別するツールはありません。

例えばJPGとGIFを区別するツールなどでしたら見かけます。

id:uraxurax

> 1) JPEGで使われているYUVにはYUV444やYUV420などのいろいろな種類があるのでしょうか。

> それとも、特定のフォーマットが使用されているのでしょうか。

> http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/yuv.html

YUVの種類が複数ある事は知っているのですが、JPEGに使われているものがどのようなものが使われているのかを知りたいです。。。。

> 2) 複数の種類がある場合、それを区別するには、JPEGのフォーマットのどのフォーマット部分を見ればよいのでしょうか。

> http://homepage1.nifty.com/sibaurataro/tanosii/di3.htm

どの方式のYUVが使われているかを区別する方法として拡張子を確認すると言うことでしょうか?

バイナリーエディターで開いた際に、どのようなデータが書かれているかを知りたいです。

2007/08/06 19:31:06
id:quintia No.3

quintia回答回数562ベストアンサー獲得回数712007/08/07 01:04:49

ポイント20pt

1.の回答 JFIF(俗に言うJPEG画像フォーマットのこと)の仕様書 http://www.dcs.ed.ac.uk/~mxr/gfx/2d/JPEG.txt の中に、subsampling 情報を示す様なヘッダはないですね。

http://www.ozhiker.com/electronics/pjmt/ のツールにもないです。


Paint Sho Pro に JFIF での保存時の設定で"クロマ サブサンプリング"という項目があったので、同じ画像を設定を別にして保存してみました。

上記のツールでも、バイナリデータを見ても、JFIF ヘッダ情報に変化はないです。

なので、ファイルフォーマットのメタデータにはその情報はないのだろうと思います。


他に参考にしたもの

http://ja.wikipedia.org/wiki/%E8%89%B2%E7%A9%BA%E9%96%93#YCbCr_....

http://en.wikipedia.org/wiki/YUV_4:2:2#Sampling_systems_and_rati...


質問にあるURLに書いてある通り、隣り合うピクセルなら色の変化よりも輝度の変化に視覚が敏感です。

なので輝度情報は1ピクセルごとに採って、色情報は2x2ピクセルで採ったり2x1ピクセルで採ったりするわけです(質問にあるURLでは"ダウンサンプリング"、他のページでは"Chroma Subsampling","サブサンプリング"と書かれていますね)。

簡単な例で言うと、隣り合うピクセルの色が 30,32,33,31 という変化をしているとして、これを2ピクセルでサブサンプリングして 31,31,32,32 と見なします(簡単に平均にしました)。

この2つの数字の列を三角関数のカーブで近似すると、前者のよりも後者の方が周波数の低い(周期の長い)成分が大きくなることが判るでしょうか。

http://ja.wikipedia.org/wiki/JPEG

DCTによる周波数領域への変換では、変換そのものでは情報量は削減されないが、低周波数成分にエネルギーが集まることを利用して、量子化による情報量削減と、エントロピー符号化での圧縮率向上を図っている。

とあります。

サブサンプリングをすることで周波数成分の高い方を削ぎ落とすことが、そのまま圧縮率向上に繋がるということでしょう。


1)については圧縮前のサンプリングのやり方であって、特定の手法はない(ただし一般的に使われるやり方はあるかもしれない)

2)3)JFIFのファイルからは判断できない

が答えかと。

id:katzchang No.4

katzchang回答回数10ベストアンサー獲得回数12007/08/07 14:45:50ここでベストアンサー

ポイント43pt

恐らくですが、SOF0ヘッダに情報を持っているような気がします。

http://siisise.net/jpeg.htmlによると、SOF0ヘッダ(FFC0~)の「水平(0.5)/垂直(0.5)サンプリングファクタ 各1~4」という項目があるらしく、ここで管理しているようです。

例として、 http://webs.lanset.com/crazy17/jp/lab/jpeg1.htm の図3-2の画像では9Eバイト目からSOF0ヘッダで、

ダウンサンプル比 フレーム成分指定
パラメータ1(Y)
フレーム成分指定
パラメータ2(Cb)
フレーム成分指定
パラメータ3(Cr)
1:1 01 11 00 02 11 01 03 11 01
1:2 01 21 00 02 11 01 03 11 01
1:4 01 22 00 02 11 01 03 11 01

それぞれの成分の比率を求めると1:1:1=4:4:4、2:1:1=4:2:2、4:1:1となり、これがYUV444、YUV422、YUV411となるのではないかと推測します

ちなみにTSXBINというバイナリエディタでみると、JPEGフォーマットを解釈してくれました。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません