Фрагментный шейдер - определите минимальные / максимальные значения для всего (монохромного) изображения и используйте их для дальнейших манипуляций с пикселями

Я хотел бы нормализоватьмонохромный Таким образом, пиксели изображения имеют минимальное значение черного цвета, максимальное значение белого цвета, а значения между ними распределены пропорционально. В настоящее время я делаю это в canvas в два этапа, но считаю, что в WebGL это должно быть быстрее.

Я могу представить, как манипулировать цветами с помощью фрагментного шейдера, но я не смог найти ни эффективного способа (1) определения фактического диапазона изображения, ни (2) подхода для передачи этой информации другому фрагментному шейдеру, который затем мог бы выполнить этот серый нормализация уровня.