knusperli

A deblocking JPEG decoder

  • Owner: google/knusperli
  • Platform:
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Knusperli

The goal of Knusperli is to reduce blocking artifacts in decoded JPEG images, by
interpreting quantized DCT coefficients in the image data as an interval, rather
than a fixed value, and choosing the value from that interval that minimizes
discontinuities at block boundaries.

Left: a traditional JPEG decoder (Imagemagick 6.9.7-4). Right: Knusperli.

Lena JPEG, zoomed Lena Knusperli, zoomed

Lena JPEG Lena Knusperli

Building

Knusperli builds with Bazel:

CC=gcc bazel build :knusperli
bazel-bin/knusperli input.jpg output.png

Details

A JPEG encoder quantizes DCT coefficients by rounding coefficients to the
nearest multiple of the elements of the quantization matrix. For every
coefficient, there is an interval of values that would round to the same
multiple. A traditional decoder uses the center of this interval to reconstruct
the image. Knusperli instead chooses the value in the interval that reduces
discontinuities at block boundaries. The coefficients that Knusperli uses, would
have rounded to the same values that are stored in the JPEG image.

Disclaimer

This is not an officially supported Google product.

Main metrics

Overview
Name With Ownergoogle/knusperli
Primary LanguageC++
Program languagePython (Language Count: 3)
Platform
License:Apache License 2.0
所有者活动
Created At2018-03-08 10:06:34
Pushed At2023-09-10 02:05:58
Last Commit At2021-01-12 22:51:33
Release Count0
用户参与
Stargazers Count468
Watchers Count19
Fork Count27
Commits Count11
Has Issues Enabled
Issues Count9
Issue Open Count6
Pull Requests Count2
Pull Requests Open Count4
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private