Deluan Quintão
fd4b3256e4
perf(artwork): compute the blurhash DCT separably ( #5989 )
...
The cosine basis factors into cosX[i][x] * cosY[j][y], so the pixel loop
does not need to visit every (i,j) pair. Each row now collapses to xComp
dot products, folded over yComp once per row: w*h*xComp + h*xComp*yComp
multiply-accumulates instead of w*h*xComp*yComp.
Encoding is ~60% faster at every input size, and ~80% faster at the 128px
size the artwork pipeline actually feeds it (263us -> 53us). Hashes are
byte-identical, so the existing golden-value specs cover the rewrite.
2026-08-19 16:20:38 -04:00
..
2026-08-19 16:20:38 -04:00
2026-08-09 15:03:27 -04:00
2026-08-19 10:35:15 -04:00
2026-08-09 15:03:27 -04:00
2026-08-14 21:07:56 -04:00
2026-08-14 21:07:56 -04:00
2026-03-13 18:11:12 -04:00
2026-03-13 18:11:12 -04:00
2026-08-09 15:03:27 -04:00
2026-08-10 14:10:05 -04:00
2026-08-14 21:07:56 -04:00
2026-03-13 09:35:59 -04:00
2026-03-13 09:35:59 -04:00
2026-08-09 15:03:27 -04:00
2026-03-13 18:11:12 -04:00
2026-03-13 09:35:59 -04:00
2026-08-14 21:07:56 -04:00
2026-08-14 21:07:56 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-15 10:36:14 -04:00
2026-08-15 11:01:36 -04:00
2026-08-09 15:03:27 -04:00
2026-08-19 09:28:25 -04:00
2026-08-19 09:28:25 -04:00
2026-08-14 21:07:56 -04:00
2026-08-14 21:07:56 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-14 09:43:13 -04:00
2026-08-14 09:43:13 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-16 13:24:07 -04:00
2026-08-16 13:24:07 -04:00
2026-04-26 18:16:14 -04:00
2026-08-14 21:07:56 -04:00
2026-08-14 21:07:56 -04:00
2026-08-14 21:07:56 -04:00
2026-08-09 15:03:27 -04:00
2026-08-11 10:42:39 -04:00
2026-08-09 15:03:27 -04:00
2026-08-09 15:03:27 -04:00
2026-08-14 21:07:56 -04:00
2026-08-15 10:36:14 -04:00
2026-08-14 21:07:56 -04:00