Reference Sources



The Independent JPEG Group (IJG) is responsible for the reference implementation of the original JPEG standard. The reference software from the Independent JPEG Group was a key to the success of the original JPEG standard and has found widespread adoption in applications of image coding. Particularly, all contemporary digital photo cameras support the capture of images in JPEG format as the common medium for image interchange, and all image viewers, image editors, and Web browsers can display JPEG images as common standard.

The IJG implementation was first publicly released in October 1991 and has been considerably developed since that time.

In June 2009, Independent JPEG Group published a new major release (version 7) of the software package to enable a new set of features for image coding application and therewith to continue the success story of JPEG.

In January 2010, Independent JPEG Group introduced a new release (version 8) with extensions providing the fundament for the next generation image coding standard.

In January 2013, Independent JPEG Group released version 9 with improvements for the new introduced lossless coding mode.

Version 9c was released in January 2018 and is the only true source reference JPEG codec.

JPEG 9 Logo

Filename Size Last modified Type 1,071 KB 14 Jan 2018 Zip Compressed Data
jpegsrc.v9c.tar.gz 1,005 KB 14 Jan 2018 Unix Tape Archive


CHANGE LOG for Independent JPEG Group’s JPEG Software

Version 9c 14-Jan-2018

jpegtran: add an option to the -wipe switch to fill the region
with the average of adjacent blocks, instead of gray out.
Thank to Caitlyn Feddock and Maddie Ziegler for inspiration.

Make range extension bits adjustable (in jpegint.h).
Thank to Robin Watts for suggestion.

Provide macros for fflush() and ferror() in jinclude.h in order
to facilitate adaption by applications using an own FILE class.
Thank to Gerhard Huber for suggestion.

Add libjpeg pkg-config file. Thank to Mark Lavi, Vincent Torri,
Patrick McMunn, and Huw Davies for suggestion.

Add sanity checks in cjpeg image reader modules.
Thank to Bingchang, Liu for reports.

Version 9b 17-Jan-2016

Improvements and optimizations in DCT and color calculations.
Normalize range limit array composition and access pattern.
Thank to Sia Furler and Maddie Ziegler for inspiration.

Use merged upsample with scaled DCT sizes larger than 8.
Thank to Taylor Hatala for inspiration.

Check for excessive comment lengths in argument parsing in wrjpgcom.c.
Thank to Julian Cohen for hint.

Add makefile.b32 for use with Borland C++ 32-bit (bcc32).
Thank to Joe Slater for contribution.

Document ‘f’ specifier for jpegtran -crop specification.
Thank to Michele Martone for suggestion.

Use defined value from header instead of hardwired number in rdswitch.c.
Thank to Robert Sprowson for hint.