Estoy probando la descompresión de JPEG en un grupo de computadoras con diferentes versiones de Windows. Todas estas computadoras tienen instalado .NET 4 y estoy compilando contra .NET 2 y el objetivo de la plataforma "Cualquier CPU". El siguiente código produce resultados diferentes en diferentes sistemas.Descompresión de JPEG inconsistente en las arquitecturas de 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);
Todas las máquinas Win7 de 64 bits y WinXP de 32 bits producen un resultado. Y todas las máquinas Win7 de 32 bits producen otro resultado.
¿Alguna idea de por qué la salida sería diferente?
¿Cuán diferente? JPEG es una compresión con pérdida. Durante la reconstrucción, podría encontrarse con diferencias de punto flotante durante el dct inverso, la transformación de color o la descuantificación. – jcopenha
Utilicé una imagen de 512x512 con mucho negro y obtengo los resultados de 5590758 y 5591908. Si bien la diferencia es pequeña, no entiendo por qué XP coincidiría con Win7-64, pero no con Win7-32. Tal vez hay un documento o sitio que explica tal comportamiento? – Jono
¿De verdad eres tan curioso sobre la descompresión jpeg? ¿O hay un problema mayor en el trabajo aquí? –