Hacker News new | ask | show | jobs
by matylla 2422 days ago
Core Image by itself is worth investing in a proper (Apple) hardware. Now that we can write custom Metal kernels and plug them straight into Core Image is even more beneficial. We can come up with any pixel modifications that will be executed within the GPU context. Precompiled kernels anyone? :)

The foundation of any image processing pipeline on MacOS/iOS is Image IO that offers crazy fast codecs for over a dozen different image formats. Even though I had to write extra integrations for WebP and animated GIFs it was really worth the effort. Native HEIC/HEIF support (reading and writing) is also neat.

Apple's CoreML is another piece of software I am using more and more at Pixaven. The ease of testing and deployment of new ML models is just amazing (and yes, I am learning a lot along the way).

1 comments

What baffles me is why doesn't NVIDIA offer a cross platform CoreImage counterpart. They do have nvjpeg for decoding, they have video codecs built in (so presumably HEIF should be doable also), but there isn't much available, as far as I can tell, if you want very high quality image manipulation with NVIDIA GPUs. I get that they're focused on 3D and deep learning now, but this is even useful for deep learning: I'd love to have hardware image decode and my entire image augmentation pipeline on the GPU and only do IO and perhaps some gnarly loss and metric computations on the CPU. Some of this is doable with NVIDIA DALI, but it doesn't seem to offer enough of a perf advantage to bother with it so far.

What would be great is if they offered similar capabilities to CoreImage (that is, quality-focused, flexible image processing) that I could use everywhere I can use CUDA.

I second that. High performance image processing with NVIDIA means writing low level CUDA, something I am not willing to invest my time in (at least for now). Translating all the code and custom kernels I wrote for Core Image would be quite a hassle to put it mildly.