You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3a9fb0d
Browse filesBrowse the repository at this point in the historyBrowse files
blur() premultiplied the image into floats, ran the three box blurs on
four float channels (clamping the window to the image for every pixel)
and converted back: 205 ms for a 1920x1080 photo, slower than stackblur
(127 ms, 83 ms without alpha).
The box blurs now run on the pixels as 32-bit words: red and blue share a
sum as two 16-bit lanes, green and alpha another (a window of up to 257
pixels fits), and the average is a multiplication by 65536 / size. Each
box rounds to 8 bits. Opaque images need no conversion, transparent ones
are premultiplied in 8 bits first, as browsers (Skia) blur them. Radii
below 2 keep the exact gaussian kernel on floats, as does sharpen().
86 ms for the photo. Over 1298 corpus images at 5 radii: opaque results
within 1 of before (2 above radius 10); with alpha, the premultiplied
values (what compositing shows) within 2, the unpremultiplied color of
almost transparent pixels further off.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJgRK5qpwJEbHPuFv6kgAQ
0 commit comments