2014-12-04 228 views
0

假設我有一個2×2像素的16位灰度圖像,它是完全隨機的。 信息內容爲2 x 2 x 2字節= 8字節。壓縮的圖像格式

接下來,我在我現在形成邊界的2 x 2個初始像素之間雙向插值8 x 8時間像素。對於每個像素,我從彩虹色圖中查找一個3字節的RGB值。 如果我要存儲未壓縮的圖像,現在需要10 x 10 x 3字節= 300字節。

但是信息量並沒有增加太多。 一個超級智能壓縮算法應該能夠看看我的100像素,並推斷我做了什麼,並存儲最初的2 x 2灰度像素+彩色圖。

我應該使用哪種壓縮的現有圖像格式來存儲這樣的圖像?

+0

我覺得你的描述很難理解。你基本上是通過創建4個隨機的灰色角落,然後有中間的東西來製作一個10像素×10像素的網格(我認爲)?當你在無處不在中引入彩虹和3字節RGB顏色時,你失去了我。如何向我們展示這樣一個灰色角落和一箇中間色彩的圖像? – 2014-12-04 22:15:56

回答

1

取決於您是否需要圖像有損或無損。我會假設你想要無損。這取決於你對圖像做什麼以及你如何生成圖像。簡短的答案是16位PNG不透明是最好的通用格式。如果您使用有損圖像,JPEG通常會更好,但這取決於圖像的連續色調程度,如照片。 Google WebP是一種令人驚歎的格式,它經常吹走另一種格式,但目前還沒有很好的支持。

例如,如果您使用圖像作爲遊戲的紋理,則您需要pvr紋理的遊戲工具包。在iOS中使用PNG文件,但使用不同的字節順序,所以默認情況下PNG文件是重新編碼的,所以如果您要生成自己的PNG文件,則可以關閉再壓縮,如果確保以正確的字節順序編寫。

並非所有的PNG編碼器都是相同的。有些人比其他人更聰明。所以這取決於你有多少關心保存大小。 Photoshop很方便,但在創建小型PNG文件方面做得不錯。有很多開源工具可以做得更好。我根據情況選擇。通常取決於GUI和批處理選項的好壞。當我在代碼中壓縮時,這取決於我正在使用的環境。如果我在.NET中,我會查看關於如何篡改內置圖像類的特殊圖像工具包和有關StackOverflow的信息的成本。