Tag Archives: image processing

Compressing PBR material texture sets with sparsity and k-SVD dictionary learning

Introduction In this blog post, I am going to continue exploration of compressing whole PBR texture sets together (as opposed to compressing each texture from the set separately) and using the fact that those textures are strongly correlated. In my … Continue reading

Posted in Code / Graphics | Tagged , , , , , , , , , , | 5 Comments

Dimensionality reduction for image and texture set compression

In this blog post I am going to describe some of my past investigations on reducing the number of channels in textures / texture sets automatically and generally – without assuming anything about texture contents other than correspondence to some … Continue reading

Posted in Code / Graphics | Tagged , , , , , , , , | 9 Comments

“Optimizing” blue noise dithering – backpropagation through Fourier transform and sorting

Introduction This will be a blog post that is second in an (unanticipated) series on interesting uses of the JAX numpy autodifferentiation library, as well as an extra post in my very old post series on dithering in games and … Continue reading

Posted in Code / Graphics | Tagged , , , , , , , , | 2 Comments

Bilinear texture filtering – artifacts, alternatives, and frequency domain analysis

In this post we will look at one of the staples of real-time computer graphics – bilinear texture filtering. To catch your interest, I will start with focusing on something that is often referred to as “bilinear artifacts”, trapezoid/star-shaped artifact … Continue reading

Posted in Code / Graphics | Tagged , , , , , | 4 Comments

Using JAX, numpy, and optimization techniques to improve separable image filters

In today’s blog post I will look at two topics: how to use JAX (“hyped” new Python ML / autodifferentiation library), and a basic application that is follow-up to my previous blog post on using SVD for low-rank approximations and … Continue reading

Posted in Code / Graphics | Tagged , , , , , , , , , , | 5 Comments

Separate your filters! Separability, SVD and low-rank approximation of 2D image processing filters

In this blog post, I explore separable convolutional image filters: how can we check if a 2D filter is separable, and how to compute separable approximations to any arbitrary 2D filter represented in a numerical / matrix form using SVD. Continue reading

Posted in Code / Graphics | Tagged , , , , , , , , , , , | 9 Comments

Local linear models and guided filtering – an alternative to bilateral filter

Intro In this blog post I am going to describe an alternative tool for the graphics and image processing programmers’ toolbox – guided filtering. Guided filtering is a really handy tool that I learned about from my coworkers, and I … Continue reading

Posted in Code / Graphics | Tagged , , , , , , , , | 3 Comments