Machine Learning in Linux: FBCNN – JPEG artifacts removal

In essence, Machine Learning is the practice of using algorithms to parse data, learn insights from that data, and then make a determination or prediction. The machine is ‘trained’ using huge amounts of data.

In other words, Machine Learning is about building programs with tunable parameters (typically an array of floating point values) that are adjusted automatically so as to improve their behavior by adapting to previously seen data.

Machine learning architectures have arisen in recent years that include JPEG-style artifact mitigation as part of AI-driven upscaling/restoring routines.

JPEG is a popular image compression algorithm and format due to its simplicity and fast encoding/decoding speeds. However, given that the compression algorithm is lossy, it can introduce annoying artifacts. Each time an image is saved in this format it is compressed and “non-essential” data is discarded. The result of compression is that an image can suffer from blockiness, mosquito noise (around edges) and color degradation.

FBCNN (flexible blind convolutional neural network) is software which seeks to remove artifacts from JPEGs while preserving the integrity of the images. It decouples the quality factor from the JPEG image via a decoupler module and then embeds the predicted quality factor into the subsequent reconstructor module through a quality factor attention block for flexible control.


Clone the project’s GitHub repository with the command:

$ git clone

Change into the newly created directory.

$ cd FBCNN

You’re now ready to run the Python code.

Next page: Page 2 – In Operation and Summary

Pages in this article:
Page 1 – Introduction and Installation
Page 2 – In Operation and Summary

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments