我正在使用不同版本的Windows測試一堆計算機上的JPEG解壓縮。所有這些計算機都安裝了.NET 4,我正在針對.NET 2和「任何CPU」平臺目標進行編譯。以下代碼在不同的系統上產生不同的輸出。JPEG解壓縮在Windows體系結構中不一致
Bitmap bmp = (Bitmap)Image.FromFile("test.jpg");
long datasum = 0;
for (int y = 0; y < bmp.Height; y++)
for (int x = 0; x < bmp.Width; x++)
datasum = datasum + bmp.GetPixel(x, y).R + bmp.GetPixel(x, y).G + bmp.GetPixel(x, y).B;
Console.WriteLine(datasum);
所有Win7 64位和WinXP 32位機器都會產生一個結果。所有的Win7 32位機器都會產生另一個結果。
任何想法爲什麼輸出會有所不同?
有何不同? JPEG是一種有損壓縮。在重建過程中,您可能會在反轉,顏色轉換或去量化過程中遇到浮點差異。 – jcopenha 2012-08-08 20:53:18
我用了很多黑色的512x512圖片,結果是5590758和5591908。雖然差異很小,但我不明白爲什麼XP會匹配Win7-64而不是Win7-32。也許有文件或網站解釋這種行爲? – Jono 2012-08-08 21:06:36
你真的好奇jpeg解壓縮嗎?還是在這裏工作有一個更大的問題? – 2012-08-08 22:34:55