2016-05-24 19 views
0

私は約11MBの重さのRGB JPEG画像とその解像度7680 x 4320を持っています。私はuchar4の配列を使ってRAMに格納します。 sizeof(uchar4)は4バイトで論理的です。私が使用する配列のサイズは、4 x 7680 x 4320 = 132710400 bytes = [約126 MB]と計算するのは難しくありません。だから、イメージはハードドライブに保存されているときには11 MB、RAMにロードされた後には126 MBの重さとなります。読み込み後に画像サイズが大きくなる

+3

https://en.wikipedia.org/wiki/Image_compression –

+0

@ Revolver_Ocelot、オペレーティングシステムに画像圧縮メカニズムが組み込まれていることはわかりませんでした。アーカイブすると画像が圧縮されると思った。 – Max

+2

ファイルを圧縮するのはOSではなく、作成したデバイスやアプリケーションです。 JPEG形式の*全体*は圧縮されています。 –

答えて

4

実際にあなたの質問は、メモリ上のサイズが実際にあなたが予想していたものなので、ディスクに保存すると画像サイズが小さくなるのはなぜですか?

残念ながら、画像を保存するファイル形式は教えてくれませんでしたが、基本的にすべての一般的な画像形式ではそのままの状態でピクセル値が保存されません。最初に圧縮アルゴリズムを適用します。 PNGやGIFなどの一部の形式では可逆圧縮が使用されますが、JPEGなどの可逆圧縮は画像が保存されるたびに画像品質が少し悪化することを意味します。しかし、これらのフォーマットはより良い圧縮を可能にします。

すべての圧縮アルゴリズムは、画像ピクセルが(統計的に)互いに独立していないという事実に依存します。近くのピクセルは通常相関します。この相関は、データの量を減らすために使用されます。異なる画像は典型的には相関が異なるため、画像ファイルのサイズは、画素数が同じであっても変化する可能性がある。

+0

これはJPEG形式です。 – Max

関連する問題