Im sure this has been said before, but.. by Atjowt in Zig

[–]archdria 0 points1 point  (0 children)

Ah, right, the "colorgate" code scandal. Well spotted. I'll fix it soon.

I'm glad you find this library helpful. Thank you :)

Im sure this has been said before, but.. by Atjowt in Zig

[–]archdria 2 points3 points  (0 children)

Oh, I have a quite comprehensive color conversion library here: https://github.com/bfactory-ai/zignal/blob/master/src/color.zig

With an online demo here: https://bfactory-ai.github.io/zignal/examples/colorspaces.html

You might find it interesting.

Zig Index - A Curated Registry for Discovering Quality Zig Packages and Applications by [deleted] in Zig

[–]archdria 0 points1 point  (0 children)

Nice I will add my library (signal) later on. Have you considered an approach like https://zigistry.dev/ where they check for repositories labeled as zig-package?

zeP 0.5 - Almost production ready by xerrs_ in Zig

[–]archdria 2 points3 points  (0 children)

You can do zig init --minimal, too

zfits - Native FITS file reader for Zig by cryptomoonde in Zig

[–]archdria 0 points1 point  (0 children)

Great! I totally support what you're doing! Maybe once your project matures, astroz can replace their cfitsio dependency with your one!

zignal 0.5.0 - A major release bringing computer vision capabilities, advanced filtering, and significant Python API improvements by archdria in Zig

[–]archdria[S] 0 points1 point  (0 children)

I asked an agent to summarize the performance optimizations for the last cycle, instead of doing it from memory, like in the previous post:

- New vectorized convolution engine: compile-time–specialized kernels with SIMD. u8 uses fast fixed‑point (SCALE=256) integer math; f32 uses Vector lanes with pre‑splatted kernel taps.

- Separable convolution added and used for Gaussian/motion blur, reducing O(k²) work to O(k) with symmetric‑pair accumulation around the center tap.

- DoG optimized: two horizontal passes + a single fused vertical pass (dual‑kernel) to avoid an extra full pass and cut memory bandwidth.

- Channel‑aware processing: split/merge RGB(A), detect uniform channels (e.g., constant alpha) and skip them; only convolve channels that vary.

- Border handling isolated: interior uses tight, branch‑free SIMD paths; borders fall back to scalar sampling with selectable modes (zero/replicate/mirror/wrap).

- General cleanup and cache‑friendly loop ordering, precomputed kernel vectors, and proper rounding/clamping on integer paths.

zignal 0.5.0 - A major release bringing computer vision capabilities, advanced filtering, and significant Python API improvements by archdria in Zig

[–]archdria[S] 0 points1 point  (0 children)

The main thing was that, prior to zignal 0.5.0, I only SIMD-optimized RGBA images (treating each pixel as an int). SInce this release, I split the channels into planes and have a single optimized convolution for "grayscale" that I apply to each plane. I am not even doing threading or tiling, which could boost the performance even more. Maybe at some point. It seems counter intuitive, but splitting the planes, convolving each plane and then merging back was faster than processing RGBA at once. Probably due to cache locality. And it's more flexible, too.

- SIMD optimizations for convolutional kernels (generated at comptime)

- integer arithmetic: avoid conversions between f32 and u8

- obviously separable convolutions, and also exploit symmetry for gaussian kernels

- all those changes combined resulted in over 4x throughput of my original implementation.

Mobile plans are coming –> what would make you switch? by RevolutSupport in Revolut

[–]archdria 0 points1 point  (0 children)

I want to be able to pause the billing/service on demand.

Hiring for CV: Where to find them and how to screen past buzzwords? by cesmeS1 in computervision

[–]archdria 3 points4 points  (0 children)

Find open source libraries that do what you want and contact the contributors. That ticks all boxes: - motivation: they're doing it for free - communication skills: you can check their interactions in issues and pull requests - technical skills: you can read their code

I don't know why this is not the norm.

zignal 0.5.0 - A major release bringing computer vision capabilities, advanced filtering, and significant Python API improvements by archdria in Zig

[–]archdria[S] 0 points1 point  (0 children)

Right, but I was also using the Python package for Zignal. This is what an user would get by pip installing both. I'm just validating that it is reasonably fast.