Skip to content

Thasia v0.4.2

Choose a tag to compare

@github-actions github-actions released this 20 Jun 21:00

Changed

  • Bilateral filter — range weights are now precomputed into a 511-entry lookup table, eliminating exp() from the innermost pixel loop. Moire reduction is significantly faster at equivalent quality.
  • Tone cleanup — smoothstep mapping is now precomputed into a 256-entry lookup table per image instead of running floating-point math per pixel.
  • Color enhancement — sRGB-to-linear expansion for Oklab conversion is now precomputed into a 256-entry lookup table, replacing three powf(2.4) calls per pixel on color pages.
  • Bilateral filter raw access — neighbor luma is now computed directly from the raw byte slice already in cache, removing the redundant get_pixel abstraction call per neighbor.
  • Auto-crop allocation — grayscale images now borrow the existing luma buffer for crop detection instead of always allocating a converted copy.
  • Image tone classification — tone is now classified once per image in the transform pipeline and passed through to the encoder, eliminating two redundant sampling passes per conversion.
  • WebP compression effort — encoder method raised from default (4) to maximum (6) for smaller output at the same quality setting. Thread-level set to 0 to prevent libwebp competing with Rayon for cores.
  • AVIF encoder speed — large-image tier lowered from speed 6 to 5, huge-image tier from 6 to 4 for meaningfully smaller files. Grayscale images additionally benefit from one extra effort level via the existing speed-subtract logic (floor removed).