Вы можете размыть с помощью матрицы свертки .
В зависимости от системы вы можете использовать более старые вещи с плавающей запятой, целочисленную арифметику или более новые операции SSE.
Если вы используете байт для представления значения цвета, вот общий алгоритм:
calculate sum of convolution matrix (in blur matrix that would be 9)
Clear destination register
load each byte under convolution matrix
multiply each byte with its corresponding number in the convolution matrix
place the sum into the destination register
divide destination register with the sum of convolution matrix
store the destination register into destination buffer