This repo is a project of micro-nano system integrated design that aims to implement Guetzli, a perceptual JPEG encoder algorithm on Xilinx Zynq development board. We'll use Vivado RTL, HLS, and Embedded System.
Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality. Guetzli-generated images are typically 20-30% smaller than images of equivalent quality generated by libjpeg. Guetzli generates only sequential (nonprogressive) JPEGs due to faster decompression speeds they offer.
This project is a teamwork project. All 3 collaborators are from School of Microelectronics, SJTU. They are:
Yang Wenxi | @VenciFreeman |
---|---|
Luo Tian | @luotian12345 |
Liu Jianwei | liujianwei0225 |
- On Windows
- Get a copy of the source code, either by cloning this repository, or by downloading an archive and unpacking it.
- Install Visual Studio 2015 and vcpkg
- Install
libpng
using vcpkg:.\vcpkg install libpng
. - Cause the installed packages to be available system-wide:
.\vcpkg integrate install
. If you prefer not to do this, refer to vcpkg's documentation. - Open the Visual Studio project enclosed in the repository and build it.
- On MacOS
- To install using Homebrew:
- Install Homebrew
brew install guetzli
- To install using the repository:
- Get a copy of the source code, either by cloning this repository, or by downloading an archive and unpacking it.
- Install Homebrew or MacPorts
- Install
libpng
- To install using Homebrew:
In .\bin\x86\Release
:
- Add your images into
imgs/
- Edit the quality you need in py. or bat.
- Guetzli uses a large amount of memory. You should provide 300MB of memory per 1MPix of the input image.
- Guetzli uses a significant amount of CPU time. You should count on using about 1 minute of CPU per 1 MPix of input image.
- Guetzli assumes that input is in sRGB profile with a gamma of 2.2. Guetzli will ignore any color-profile metadata in the image.
- At least 2 methods to implement, quantitative comparison of trade-off;
- Performance: execution speed, throughput, etc;
- Design complexity: code / tool synergy;
- Cost: resource occupation.
- 2019/11/29:Team up;
- 2019/12/06:First defense;
- About 2019/12/28:Final defense.