¿Debo entender que deben promediarse los colores de todos los pixeles de un recuadro? Si es ese el caso, aquí dejo la solución:
http://jsfiddle.net/jefebrondem/745Ds/
Esta vez me he preocupado más de crear un API reaprovechable que de la eficiencia en sí.
Edit.: Tengo dudas a la hora de manipular el tipo Uint8ClampedArray. Quizá hay maneras más directas de extraer los elementos de 4 en 4 y obtener el color en RGBA.