A C++ image converter that supports BMP and JPEG formats with encoding/decoding capabilities.
- 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
xmakeThe executable will be generated in build/linux/x86_64/release/jpegify.
Convert between BMP and JPEG formats:
./jpegify input.bmp output.jpg
./jpegify input.jpg output.bmpSupported formats: .bmp, .jpg, .jpeg
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- 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
See LICENSE file for details.