Die Komprimierung mittels JPEG ist verlustbehaftet. Es werden mehreren Schritte (mehrstufiges Kompressionsverfahren) für das optimale Ergebnis durchlaufen. Bei geringer Komprimierungsstufe kann das menschliche Auge keinen Unterschied zu dem Original-Bild feststellen.
Colortransform
Im ersten Schritt wird das Bild in einem geeignetem Farbraum konvertiert. In der Regel handelt es sich dabei um den YUV-Farbraum, welcher Helligkeit und Kontrast in einem Kanal, die Farbwerte in zwei anderen Kanälen speichert.
Downsampling
Da das menschliche Auge Helligkeitsunterschiede besser als Farbunterschiede wahrnehmen kann, werden zur Komprimierung zwei oder vier benachbarte Pixel im Farbwert gemittelt und zu einem einzigen zusammengefasst.
DCT
Mithilfe des DCT (Diskrete Kosinus Transformation) wird das Bild für die Weiterbearbeitung in 8x8 Pixelblöcken geteilt. Das DCT interpretiert die Helligkeits- und Farbwerte pro Block als Amplituden und stellt die Informationen für die Quantisierung bereit.
Quantisierung
Die vom DCT entstandenen Amplituden werden durch einem vom Benutzer festgelegten Faktor dividiert und gerundet, wobei viele Werte gleich Null werden.
Huffman-Codierung
Die entstandene Zahlenmatrix wird codiert, in dem alle Nullen hintereinander geschrieben und zusammengefasst werden. Ist diese Reduzierung der Daten vollzogen, wird jedem übrigen Wert über die Huffmann-Codierung ein Binärcode zugewiesen. Bei der Huffmann-Codierung wird erneut Speicherplatz gespart, in dem häufig auftretende Werte ein kurzer Binär-Code zugewiesen wird.
Im Gegensatz zu der LZW- oder RLE-Kompression kann JPEG durch das Zusammenfassen und Anpassen mehrerer Pixel auch Bilder mit unruhigen Strukturen gut komprimieren.