2016-02-09 171 views
0

我想要使用Encoder.Quality值進行壓縮後計算/估計圖像文件大小(.jpg)是多少。 這裏我估計之前不應該進行任何壓縮,有沒有公式可以做到這一點?在不執行壓縮的情況下計算/估計壓縮文件大小

有沒有粗略的估計。我想將圖像文件大小減少到< 250kb,而無需進行迭代壓縮。

有基於圖像(JPG)的寬度,高度和深度(DPI)等任何Encoder.Quality值估計...

在此先感謝。

+0

我認爲迭代壓縮比其他任何計算/估計都快。但是,您應該壓縮到內存,而不是將文件寫入磁盤。 – wimh

+2

不可能回答 - 你甚至不提及算法。儘管如此,除了最低效的算法外,壓縮比取決於數據,無法計算。您只能根據算法,內容類型(例如剪貼畫,照片)和質量等級製作推薦人 –

+0

我已訪問鏈接http://stackoverflow.com/questions/2094064/how-to-resize-a-picture -to-a-specific-file-size –

回答

1

最終,直到你做出實際的壓縮,你才能知道。另一方面,(香農的)數據熵通常是壓縮文件比特率的良好估計。爲獲得最佳精度,您需要計算數據的離散餘弦變換(DCT),並應用與您不想使用的質量Q相對應的量化。但是,您也可以嘗試在原始域中應用量化,然後計算熵。您也可以嘗試評估圖像的一部分,並將壓縮的比特率外推到整個圖像。最後,如果您正在壓縮的圖像類型或多或少是均勻的 - 即,您可以獲得大多數圖像的相似壓縮比率 - 您可以創建一個查找表來獲得您的估計值。如果你的圖像不是同質的,你也可以嘗試對圖像進行分類(也可能基於熵),併爲每個類使用不同的查找表。

+0

我同意沒有準確的估計,但我的意圖是找到至少粗略的估計。 –

+0

你有兩個(可能是粗糙的)估計量:基於熵和基於平均壓縮大小的估計量。如果你需要幫助計算熵,你可以在線獲得一些啓發(例如http://www.csharpprogramming.tips/2013/07/Data-Entropy.html)。 – mhernandez