• 締切済み

画像の容量の決まり方

縦ピクセル×横ピクセル×使う色数 と聞いたのですが、何か描いてあるものと白紙(or一色で塗り潰し)では容量が違うのはなぜですか? ド素人ですが、詳しい方お願いします。

みんなの回答

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.2

まず、パソコンで色を扱う場合についてですがWindows付属の「ペイント」を起動してみてください。 そしたら「色の編集」。 その中に「赤」「緑」「青」が数値で指定できる場所があります。 この数値は0~255まで指定でき、その色の要素の明るさ(レベル)となります。 光の3原色になるので、この3種類の数値ですべての色を表すことができます。 指定できる数値が0~255と言うことは8ビット(2の8乗=1バイト)となり、これが3色分あるので1ドット表すのに3バイト必要となります。 無圧縮の画像なら単純計算でサイズを求めることができますが、圧縮されていると画像の複雑さによって圧縮後のサイズが変化します。 JPEGの場合は圧縮率というパラメーターで更に変化します。 圧縮は「同じ数値が連続しているところは単純化してしまう」というのが基本的な考え。 例えば10という数字が100個並んでいるとしたら「10を100個並べる」よりも「10が100個ある」としたほうが文字数が少なくなります。 画像の場合は左右のつながりだけではなく上下及び斜めに対しても行われます。 更にJPEGの場合は隣り合った色が肉眼で見分けがつかない程度の変化なら同じ数値にしてしまうため、GIFやTIFFと比べるとサイズはずっと少なくなります。圧縮率は「見分けがつかない変化」のしきい値と思ってください。

noname#146098
質問者

お礼

分かりやすい回答、ありがとうございます。 jpegやgifなどについても調べてみます。

回答No.1

まず、一口に「画像」といってもさまざまな形式があります。 大きく分けて「無圧縮」と「圧縮」に分けられます。BMP(ビットマップ)画像などは無圧縮画像で、この場合、単純に色の情報を左上から右に向かって、上から下に向かって順番に情報として記録します。つまり例えば、 白赤赤黒赤赤赤・・ といった具合(正式にはカラーコードと呼ばれる、コンピュータが利用する情報になります) この場合は、単純に縦×横×色数に比例して大きくなります。 しかし、これでは容量が非常に大きくなってしまうため、これを「圧縮」するやり方があります。それが「GIF」や「JPEG」といわれる画像形式です。デジタルカメラで撮影した画像はほとんどの場合、JPEGになります。 この場合、例えば色をそのまま記録するのではなく、似通った色をまとめてしまったり、連続した色の情報は「連続している」という情報に変換してしまったりします。つまり、次のような色の並びの場合 黒黒黒黒黒黒黒赤赤赤赤赤 そのまま記録するよりも 黒×7赤×5 という情報にしてしまった方が短くなりますね。そのため、白紙などの場合は「全部白」という情報に圧縮できるために、小さくできるというわけです。

noname#146098
質問者

お礼

回答ありがとうございます。 わかりやすい例えでした。

関連するQ&A