Skip to content

Vertsineu/jpegify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jpegify

A C++ image converter that supports BMP and JPEG formats with encoding/decoding capabilities.

Features

  • Convert between BMP and JPEG formats
  • Generate random noise images for testing
  • Support for baseline JPEG (SOF0) encoding/decoding
  • Limited support for progressive JPEG (SOF2) decoding

Build

xmake

The executable will be generated in build/linux/x86_64/release/jpegify.

Usage

Convert Images

Convert between BMP and JPEG formats:

./jpegify input.bmp output.jpg
./jpegify input.jpg output.bmp

Supported formats: .bmp, .jpg, .jpeg

Generate Noise Image

Create a random noise image with specified dimensions:

./jpegify --noise <width> <height> <output_file>

Example:

./jpegify --noise 512 512 noise.jpg
./jpegify -n 1920 1080 noise.bmp

Implementation Details

  • JPEG Encoding: Baseline sequential DCT (SOF0) with 4:2:0 chroma subsampling
  • JPEG Decoding: Full support for baseline (SOF0), limited support for progressive (SOF2)
  • Color Space: YCbCr color space conversion with proper subsampling/upsampling
  • DCT/IDCT: 2D discrete cosine transform using matrix multiplication
  • Huffman Coding: Standard JPEG Huffman tables for entropy encoding/decoding

License

See LICENSE file for details.

About

A C++ image converter that supports BMP and JPEG formats with encoding/decoding capabilities.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published