No has pensado en usar alguna biblioteca de tratamiento de imágenes, como openCV, CImage y cosas así, esas operaciones las hacen muy rápido, aunque claro, tienes que usar en memoria su formato de imagen, supongo que a lo mejor te puedes meter en las tripas a ver que hacen, aunque yo no me atrevería.Pasar una imagen de RGB a escala de grises es algo muy simple, incluso usando el promedio (como dijo gatiori) se obtiene un resultado cercano al esperado.
Yo lo decía más que nada porque se quejaba del tiempo que tardaba, yo las uso para otras cosas y en eso no se pierde nada de tiempo, pero vosotros sabéis mucho más que yo, desde luego :DBueno, en lo que tarda es en mostrarla en pantalla en realidad.