¿Acelerar un lanzamiento corto para flotar?

Tengo un short a float cast en C ++ que está bloqueando mi código.

El código se traduce desde un búfer de dispositivo de hardware que es nativo corto, esto representa la entrada de un contador de fotones de lujo.

float factor=  1.0f/value;
for (int i = 0; i < W*H; i++)//25% of time is spent doing this
{
    int value = source[i];//ushort -> int
    destination[i] = value*factor;//int*float->float
}

Algunos detalles

El valor debe ir de 0 a 2 ^ 16-1, representa los valores de píxeles de una cámara altamente sensible

Estoy en una máquina x86 multinúcleo con un procesador i7 (i7 960 que es SSE 4.2 y 4.1).

La fuente está alineada con un límite de 8 bits (un requisito del dispositivo de hardware)

W * H es siempre divisible por 8, la mayor parte del tiempo W y H son divisibles por 8

Esto me pone triste, ¿hay algo que pueda hacer al respecto?

Estoy usando Visual Studios 2012 ...

Respuestas a la pregunta(7)

Su respuesta a la pregunta