我正在使用不同版本的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