- ベストアンサー
なぜ同じ中身なのにこうも変わってくるのでしょうか?
411MBのbmpファイルをJPGにしたら、275KBになったのですが、 なぜ同じ中身なのにこうも変わってくるのでしょうか? JPGファイルは圧縮されてるのですか? bmpの方が沢山の色が使われてるのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
BMP(Microsoft Windows Bitmap Image)は、平面画像のそれぞれのビットについて個別に色を指定しているもので、基本的には圧縮されていません。(Windows以外の形式や圧縮したものもある) JPEGは、大雑把に言うと、ある点の周囲の変化の度合いを調べて変化の度合いが少ない場合はサンプリングを減らし、変化が大きい緻密な部分ではサンプリングを減らし、かつそれぞれの点周囲の変化の度合いを関数に直してデータ量を減らしていきます。これを時間軸に対しても行うものがMPEGで動画に対して利用される。 よってデータ量は大幅に減らせますが、それぞれの画素の点の情報は持っていないため、元のデータに戻すことはできません。 GIFと言う画像形式がありますが、これは256色に限定されていますが、画像を横にスキャンして変化が現れるまでは「左に同じ(^^)」として情報を消してしまいます。この場合もデータ量は減ります(圧縮)が、元に戻に戻すことができます。(可逆) BMP--圧縮がされていない素のデータ(未圧縮) JPEG--圧縮されているが元に戻せない(非可逆圧縮) GIF--圧縮されているが元に戻せる(可逆圧縮) それ以外に、PNG,TIFFなど様々な形式があります。 詳しくは 画像ファイルフォーマット - Wikipedia ( http://ja.wikipedia.org/wiki/%E7%94%BB%E5%83%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88 ) とそれぞれのリンク先を読むと良いでしょう。 ちなみに縦縞と横縞のイラストを描いてGIFで保存するとそのデータ量が異なることからGIFの仕組みは良くわかるでしょう。 また、JPEG画像で変化の少ない青空部分の画像がおかしくなるのも、理解できるでしょう。
その他の回答 (3)
- Uncle_John
- ベストアンサー率57% (455/791)
失礼な表現、記載、誤記等ありましたらご容赦ください。 JPGやJPEGは圧縮ファイルです。理論的な話は後述の記載程度にして他の方にお任せします。 実感してもらいましょう。 (1)先ず、ペイントで日の丸を作ってください。 (2)何もせずに周の白を塗りつぶしで青、緑、黒で塗りつぶします。 赤以外、奇麗に塗りつぶせたかと思います。 (3)bmp形式で日の丸とか適当な名前で保存し、ペイントを閉じて再起動してそのBMPデータを読みだしてもきれいに塗りつぶしが出来ます。 (4)次に日の丸2とか適当な名前でかつJPGでディスク上に保存します。 この時点で多分圧縮されて元に戻せません。 (5)その状態で周囲を塗りつぶしで青、緑、黒で塗りつぶします。 どうなりましたか? 虫食い状態の塗りつぶしになりました。 なっていないならばJPGで保存したデータを呼び出して同じ事をやってみてください。 赤の部分を他の色で塗りつぶしても同じで虫食い状態です。 【難しいところは読み飛ばして頂いて結構です】 ビットマップは画面の1点に対しRGBの個別のデータを持っています。 白であれば24ビットビットマップタイプでR:255,G:255,B:255です。(FFFFFF→24ビット) 光の世界なのでR=赤、G=緑、B=青を光の三原色と呼ばれ絵具(減色法)と異なり加色法となります。 すべての色の光、もしくは三原色の光を混ぜると白になります。 絵具は三原色(緑ではなく黄色)も違えば全部混ぜると黒になります。 本居、JPGの具体的なソフト的圧縮方法は知りませんがJPGは不可逆の圧縮なので元に戻せません。 分かり易く言えば、一旦JPGで保存したデータはBMPデータに戻せないと言う事です。 写真などに特定の物を貼り付けたいならば、ソフト上で一旦加工してBMPで念のため保存し、そのデータをコピーする必要があり、写真(JPG)などに張り付ければ奇麗に貼り付けることが出来ます。 コピー先がJPGでもコピー元はBMPでないといけないということです。 試しにBMPの「日の丸」を写真などに貼りつけてみてください。 ただし、背景を指定出来て透過できるソフト上で貼り付けます。 ペイントであればJPGのデータを読み込んで「変形」「背景色を不透明にする」を選択してレ点チェックを外します。 BMPの日の丸をサンプルで全体、もしくは部分指定でコピーして貼り付けてみてください。 背景色はカラーボックスにでていますがペイントでは起動時は白です。他の色にもできます。 BMPで作成したデータをコピペすれば貼り付け先がJPGでも奇麗に貼り付けられます。 不可逆とは何かというとJPGで保存したデータをBMPで保存し直しても元に戻らない。ソフトツールを使っても、どんなに転んでも見た目上はともかく元のデータBMPデータには戻せないと言う事です。 ただし、JPGデータでも一旦BMPで保存し、ペイントで地道に塗り潰し直してBMP保存するか、別のソフト上で背景を奇麗に切り取ってBMPで保存できれば貼り付けは奇麗にできます。 この事が不可逆の意味です。 さて、JPGで塗りつぶしの部分はBMPに戻したところでデータがR:255,G:255,B:255になっていないが為に白が塗りつぶせなかった訳です。1bitでも異なれば虫食い状態です。 人の目にはBMPで言うとR:255,G:255,B:255(FFFFFF)の白もR:254,G:254,B:254(FEFEFE)の白も区別できませんがPCは違う色として認識していると言う事です。 JPGでは白の部分や赤の部分が連続するデータほど圧縮効率が上がります。 日の丸2のそのJPGデータと写真などのJPGデータを同じ大きさにして保存し、右クリックのプロパティでデータ容量などを比較してみてください。 これが圧縮効率です。映像次第で変わりますがソフトでも変わります。 デジカメの「fine・ファイン」「スーパーファイン」などこの効率がソフト的に違う訳です。 同じ面積、同じ写真でもこの設定でデータの細かさが違います。スーパーファインなどは圧縮効率が低くなりますがその分繊細になります。その一方でデータが大きくなりSDカードの容量で撮影枚数が減ることになります。
お礼
ありがとうございました。
- pluto1991
- ベストアンサー率30% (2021/6693)
簡単に言うとJPGは圧縮ファイルだからです。 画像の容量を小さくするためには、普通は「サイズ(面積)を小さくすれば、ファイルも小さくなる」 というのが当たり前の話ですよね。 でも、Jpegは「サイズは同じ、画像も同じなのにファイルが小さくなってる」 という奇跡を起こすことが出来るんです。 JPEG量子化率といいますが、 「ごくごくすごく似た色」ってあるでしょう。 それを「似ているけどやはり違う」ということで100%区別するのか、「この程度は同じ色と判断してよい」ということで80%区別するか。 というパーセンテージでファイルサイズがどんどん小さくなっていくんです。 PC画面で見たら全く同じサイズの同じ写真、なんですが、ピクセルが見えるまで拡大すると量子化率が違うことがわかります。 使用する用途によって使い分けるのが賢い使い方ですね。 前出のとおり、不可逆。 いちどJpeg変換してしまうと、元には戻せません。 Bmpは一ピクセルごとに色情報を持っているので膨大なデータ量になります。普通は使いません。100%のJpgにしてもファイルサイズは小さくなります。
お礼
ありがとうございました。
- te2kun
- ベストアンサー率37% (4556/12165)
>JPGファイルは圧縮されてるのですか? はい。非可逆圧縮 ですけど http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%83%88%E3%83%9E%E3%83%83%E3%83%97%E7%94%BB%E5%83%8F http://ja.wikipedia.org/wiki/JPEG
お礼
ありがとうございました。
お礼
ありがとうございました。