Ver Mensaje Individual
  #2  
Antiguo 09-01-2005
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
Supongo que el calculo que usas consiste en recorrer solamente una vez los pixeles de la imagen, es un algoritmo simple de modo que no hay forma de conseguir otro algoritmo que vaya mas rapido, ya que es imposible calcular el histograma sin acceder como minimo una vez a todos y cada uno de los pixeles.
Tampoco indicas cuanto tarda en ejecutarse para poder saber si realmente es demasiado tiempo, como referencia te puedo decir que el calculo que haces programado en Delphi para una imagen de 10 megabytes tarda menos de 2 decimas de segundo en un PIV a 2.4 Ghz (sin contar el tiempo de carga de la imagen en memoria desde el disco duro).
Si solo recorres una vez cada pixel, la lentitud podria venir o de que no hay suficiente memoria libre para cargar la imagen completa en memoria, o que utilices una forma muy lenta de acceder a los pixeles de la imagen, o que quizas el codigo hecho en C# no lo hayas compilado a codigo nativo.
Si no muestras ningun codigo fuente dificilmente se podra descubrir el problema.

En cuanto a la congestion del procesador , en general el procesador mientras esta ejecutando algo sea lo que sea siempre esta al 100%, si solo usase la mitad de ciclos libres (al 50% por ejemplo) el calculo tardaria el doble de tiempo, no teniendo otros threads que ejecutar, seria bastante tonto que el procesador desperdiciase su poder de calculo haciendo los calculos a mitad de su velocidad.

Saludos
Responder Con Cita