Большинство людей думают, что JPEG – это формат изображения, но на самом деле – это алгоритм сжатия изображения, который основан на разнице пикселей, в отличие от RLE и LZW, в которых сжатие происходит с помощью поиска одинаковых элементов. Кодирование с помощью JPEG производится в несколько этапов. В первую очередь происходит конвертирование цветового пространства типа LAB, потом часть информации о цвете отбрасывается. Затем происходит анализ блоков пикселей формата 8х8. Для всех блоков формируется форматы чисел. Для каждого блока отдельный формат. Разберём состав формата чисел и поймём, что означает каждая цифра. Первые несколько чисел показывают общий цвет блока, а последующие числа отражают второстепенные детали. Крупные детали делаются более заметными, потому что они более воспринимаются зрительным вниманием человека.
Теперь рассмотрим следующий этап. Часть чисел отбросится, в зависимости от выбранного вами уровня качества изображения. Ну а на последнем этапе применяется кодирование с помощью метода Хаффмана, чтобы более эффективно сжать конечные данные. Процесс восстановления данных проходит в обратном порядке.