All Projects → camilleg → unblock

camilleg / unblock

Licence: BSD-3-Clause license
Remove 8x8-pixel artifacts from JPEGs.

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to unblock

Markov-Random-Field-Project
This project has two parts. In part one, we use markov random field to denoise an image. In Part two, we use similar model for image segmentation.
Stars: ✭ 97 (+506.25%)
Mutual labels:  denoising-images
FPGAmp
720p FPGA Media Player (RISC-V + Motion JPEG + SD + HDMI on an Artix 7)
Stars: ✭ 190 (+1087.5%)
Mutual labels:  motion-jpeg
findpeaks
The detection of peaks and valleys in a 1d-vector or 2d-array (image)
Stars: ✭ 121 (+656.25%)
Mutual labels:  denoising-images
ImageEnhanceViaFusion
It is a Java implementation of underwater images and videos enhancement by fusion
Stars: ✭ 58 (+262.5%)
Mutual labels:  denoising-images
Voice-Denoising-AN
A Conditional Generative Adverserial Network (cGAN) was adapted for the task of source de-noising of noisy voice auditory images. The base architecture is adapted from Pix2Pix.
Stars: ✭ 42 (+162.5%)
Mutual labels:  denoising-images
TWSC-ECCV2018
Matlab Code for "A Trilateral Weighted Sparse Coding Scheme for Real-World Image Denoising, ECCV 2018".
Stars: ✭ 83 (+418.75%)
Mutual labels:  denoising-images

UnBlock

Remove 8x8-pixel "blocky" artifacts from a heavily compressed JPEG image.

How to build on Ubuntu 18 through 22

sudo apt install g++ libpng-dev make

make

This also works on Windows 10 or 11, within WSL.

How to run

./unblock in.bmp out.bmp

./unblock in.png out.png

How to test

make test

Software used

This is a wrapper around an algorithm by John Costella. His webpage includes before-and-after pictures showing the algorithm's effectiveness.

Instead of porting John's C# source code to C/C++, I built on Alexander Balakhnin's C port, in the context of a plugin for AviSynth, based on John's own 2007 C port of "the Costella libraries."

Files in .bmp format are read and written by EasyBMP, files in .png format by libpng. Why not .jpg for a JPEG utility? Because my source images are still frames from mjpeg-format video. Extracting frames in a lossless format avoids the further degradation that happens with ffmpeg -i in.avi -vcodec jpg ....

The journal article Stitched Panoramas from Low-Cost Airborne Video Cameras demonstrates an application of this software. The article is summarized in the MIT Technology Review.

Bugs

An image whose width is not a multiple of 16 pixels may misbehave.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].