人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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



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

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

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

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

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


●質問者: uraxurax
●カテゴリ:インターネット
✍キーワード:JPEG RGB カラー テレビ フォーマット
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● KUROX
●16ポイント

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

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


2 ● k-kotori
●11ポイント

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を区別するツールなどでしたら見かけます。

◎質問者からの返答

> 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が使われているかを区別する方法として拡張子を確認すると言うことでしょうか?

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


3 ● quintia
●20ポイント

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のファイルからは判断できない

が答えかと。


4 ● katzchang
●43ポイント ベストアンサー

恐らくですが、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フォーマットを解釈してくれました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ