2016-05-24 146 views
0

我有一個RGB JPEG圖像,它的重量約爲11 MB,分辨率爲7680 x 4320.我使用一個uchar4數組將其存儲在RAM中。 sizeof(uchar4)是4個字節,這是邏輯的。計算我使用的陣列的大小將是4 x 7680 x 4320 = 132710400字節= [大約] 126 MB並不難。因此,圖像在存儲在硬盤上時的重量僅爲11 MB,並且在加載到RAM後的重量爲126 MB。加載後圖像大小增加

+3

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

+0

@ Revolver_Ocelot,我不知道操作系統有嵌入式圖像壓縮機制。我認爲圖像在我們存檔時會被壓縮。 – Max

+2

這不是壓縮文件的操作系統,而是創建它的設備或應用程序。 JPEG格式的*整點*是壓縮的。 –

回答

4

所以實際上你的問題是爲什麼當它存儲在磁盤上時圖像大小更小,因爲內存大小實際上是你的預期,對吧?

不幸的是,您並未告訴我們使用哪種文件格式來存儲圖像,但基本上所有常見的圖像格式都不按原樣存儲像素值。他們首先應用壓縮算法。有些格式如PNG或GIF使用無損壓縮,其他像JPEG一樣使用有損壓縮,這意味着無論何時存儲圖像,圖像質量都會變差。但是,這些格式允許更好的壓縮。

所有壓縮算法都取決於圖像像素彼此不是(統計上)獨立的事實。附近的像素通常是相關的。這種關聯用於減少數據量。由於不同的圖像通常具有不同的相關性,因此即使像素數相同,圖像文件大小也可能會有所不同。

+0

這是JPEG格式。 – Max