JPEG, जो कि संयुक्त फोटोग्राफिक विशेषज्ञ समूह के लिए है, डिजिटल छवियों के लिए हानिपूर्ण संपीड़न की एक सामान्यतः उपयोग की जाने वाली विधि है, विशेष रूप से डिजिटल फोटोग्राफी द्वारा निर्मित उन छवियों के लिए। संपीड़न की डिग्री को समायोजित किया जा सकता है, जिससे संग्रहण आकार और छवि गुणवत्ता के बीच एक चयन योग्य व्यापार की अनुमति मिलती है। JPEG आमतौर पर छवि गुणवत्ता में थोड़े बोधगम्य नुकसान के साथ 10:1 संपीड़न प्राप्त करता है।
JPEG संपीड़न एल्गोरिथ्म JPEG मानक के मूल में है। प्रक्रिया एक डिजिटल छवि से शुरू होती है जिसे उसके विशिष्ट RGB रंग स्थान से YCbCr नामक एक अलग रंग स्थान में परिवर्तित किया जाता है। YCbCr रंग स्थान छवि को चमक (Y) में अलग करता है, जो चमक के स्तर का प्रतिनिधित्व करता है, और क्रोमिनेंस (Cb और Cr), जो रंग की जानकारी का प्रतिनिधित्व करता है। यह पृथक्करण फायदेमंद है क्योंकि मानवीय आँख रंग की तुलना में चमक में बदलाव के प्रति अधिक संवेदनशील होती है, जिससे संपीड़न को चमक से अधिक रंग की जानकारी को संपीड़ित करके इसका लाभ उठाने की अनुमति मिलती है ।
एक बार छवि YCbCr रंग स्थान में हो जाती है, तो JPEG संपीड़न प्रक्रिया में अगला कदम क्रोमिनेंस चैनलों को डाउनसैंपल करना है। डाउनसैंपलिंग क्रोमिनेंस जानकारी के रिज़ॉल्यूशन को कम करता है, जो आमतौर पर छवि की कथित गुणवत्ता को महत्वपूर्ण रूप से प्रभावित नहीं करता है, क्योंकि मानवीय आँख रंग विवरण के प्रति कम संवेदनशील होती है। यह चरण वैकल्पिक है और छवि गुणवत्ता और फ़ाइल आकार के बीच वांछित संतुलन के आधार पर इसे समायोजित किया जा सकता है।
डाउनसैंपलिंग के बाद, छवि को ब्लॉकों में विभाजित किया जाता है, आमतौर पर आकार में 8x8 पिक्सेल। फिर प्रत्येक ब्लॉक को अलग से संसाधित किया जाता है। प्रत्येक ब्लॉक को संसाधित करने में पहला कदम असतत कोसाइन ट्रांसफॉर्म (DCT) को लागू करना है। DCT एक गणितीय संक्रिया है जो स्थानिक डोमेन डेटा (पिक्सेल मान) को आवृत्ति डोमेन में बदल देती है। परिणाम आवृत्ति गुणांकों का एक मैट्रिक्स है जो छवि ब्लॉक के डेटा को उसके स्थानिक आवृत्ति घटकों के संदर्भ में दर्शाता है।
DCT से प्राप्त आवृत्ति गुणांकों को फिर क्वांटिज़ किया जाता है। क्वांटिज़ेशन इनपुट मानों के एक बड़े सेट को एक छोटे सेट में मैप करने की प्रक्रिया है - JPEG के मामले में, इसका मतलब आवृत्ति गुणांकों की परिशुद्धता को कम करना है। यहीं पर संपीड़न का हानिपूर्ण भाग होता है, क्योंकि कुछ छवि जानकारी को त्याग दिया जाता है। क्वांटिज़ेशन चरण को एक क्वांटिज़ेशन टेबल द्वारा नियंत्रित किया जाता है, जो यह निर्धारित करता है कि प्रत्येक आवृत्ति घटक पर कितना संपीड़न लागू किया जाता है। क्वांटिज़ेशन टेबल को उच्च छवि गुणवत्ता (कम संपीड़न) या छोटे फ़ाइल आकार (अधिक संपीड़न) के पक्ष में समायोजित किया जा सकता है।
क्वांटिज़ेशन के बाद, गुणांकों को एक ज़िगज़ैग क्रम में व्यवस्थित किया जाता है, जो ऊपरी-बाएँ कोने से शुरू होता है और एक पैटर्न का अनुसरण करता है जो उच्च आवृत्ति वाले लोगों पर कम आवृत्ति वाले घटकों को प्राथमिकता देता है। ऐसा इसलिए है क्योंकि कम आवृत्ति वाले घटक (जो छवि के अधिक समान भागों का प्रतिनिधित्व करते हैं) उच्च आवृत्ति वाले घटकों (जो महीन विवरण और किनारों का प्रतिनिधित्व करते हैं) की तुलना में समग्र रूप से अधिक महत्वपूर्ण होते हैं।
JPEG संपीड़न प्रक्रिया में अगला कदम एन्ट्रॉपी कोडिंग है, जो दोषरहित संपीड़न की एक विधि है। JPEG में उपयोग की जाने वाली एन्ट्रॉपी कोडिंग का सबसे सामान्य रूप हफ़मैन कोडिंग है, हालांकि अंकगणितीय कोडिंग भी एक विकल्प है। हफ़मैन कोडिंग अधिक बार होने वाली घटनाओं को छोटे कोड और कम बार होने वाली घटनाओं को लंबे कोड असाइन करके काम करता है। चूंकि ज़िगज़ैग ऑर्डरिंग समान आवृत्ति गुणांकों को एक साथ समूहित करता है, इसलिए यह हफ़मैन कोडिंग की दक्षता को बढ़ाता है।