convertir eficientemente una cadena (o tupla) a una matriz de tipos

Tengo un código que toma una imagen PIL y la convierte en una matriz ctypes para pasarla a una función C:

w_px, h_px = img.size
pixels = struct.unpack('%dI'%(w_px*h_px), img.convert('RGBA').tostring())
pixels_array = (ctypes.c_int * len(pixels))(*pixels)

Pero estoy tratando con imágenes grandes, y desempacar tantos elementos en argumentos de función parece ser notablemente lento. ¿Qué es lo más simple que puedo hacer para obtener una aceleración razonable?

Solo estoy convirtiendo a una tupla como un paso intermedio, por lo que si es innecesario, mucho mejor.