JPEG Sıkıştırma Nasıl Çalışır
Verimli görsel sıkıştırmanın adımlarının basit bir özeti
24. January 2025 yazan Bianca Palmer
Telefonunuzun veya kameranızın nasıl fotoğraf çekip birkaç saniye içinde bunu daha küçük, daha hızlı ve hâlâ net görünen bir JPEG olarak kaydettiğini hiç merak ettiniz mi? Arka planda, büyük görüntü dosyalarını orijinal boyutlarının çok küçük bir kısmına indirirken kaliteyi yüksek tutan güçlü bir süreç işler. Peki bu aslında nasıl çalışır? Bu rehberde JPEG sıkıştırmaayrıntılarına bakıyor ve bu görüntü sıkıştırma sürecinin nasıl işlediğini anlayabilmeniz için her adımı basit terimlerle açıklıyoruz.
JPEG nedir?
JPEG (Joint Photographic Experts Group'un kısaltması) en yaygın görüntü formatlarından biridir. Dijital fotoğrafları saklamak için sıklıkla tercih edilen formattır. JPEG'in en önemli avantajı, görüntü dosyalarını sıkıştırma yeteneği sayesinde fark edilir bir kalite kaybı olmadan çok daha küçük hale getirebilmesidir.
Örneğin, yüksek kaliteli sıkıştırılmamış bir görüntü 46 MB olabilir. JPEG'e sıkıştırıldıktan sonra aynı görüntü sadece 4,1 MB'a kadar küçülebilir. Peki bunu görüntüyü keskin tutarak nasıl yapar?
Cevap compression process, gözlerimizin çalışma şeklinden yararlanıp gereksiz verileri kaldıran sıkıştırma sürecinde yatar.
JPEG Ne Yapar?
Basitçe söylemek gerekirse, JPEG görüntüyü analiz eder ve gözlerimizin kolayca fark etmediği öğeleri kaldırır. Bir görüntüyü JPEG ile sıkıştırdığınızda, ne kadar sıkıştırma uygulanacağını kontrol edebilirsiniz. "Kalite" ayarını değiştirerek ne kadar alan tasarrufu yapmak istediğinize siz karar verirsiniz. Kalite %100'den %0'a düştükçe dosya boyutu da azalır.
Daha fazla sıkıştırma yaptıkça resmin çözünürlüğü aynı kalır, ancak bazı kusurlar veya "artifact"ler görünmeye başlayabilir. Bu kusurlar küçük kareler gibi görünür ve genellikle yakınlaştırmadığınız sürece fark edilmesi zordur. JPEG'in amacı, gözle fark edilir bir bozulma yaratmadan dosyayı mümkün olduğunca küçültmektir.
JPEG Sıkıştırmanın Adımları
JPEG sıkıştırma sadece tek bir işlem değildir; görüntü boyutunu küçültmek için tasarlanmış bir dizi adımdan oluşur. JPEG'i bu kadar verimli kılan beş temel adım şöyledir.
Adım 1: Renk Uzayı Dönüşümü
Görüntüler piksellerden oluşur ve her piksel, renkleri oluşturmak için birleşen kırmızı, yeşil ve mavi (RGB) bileşenlerine sahiptir. JPEG, bu RGB değerlerini farklı bir renk uzayına dönüştürerek başlar:
- Parlaklık (Luminance): Bu, pikselin parlaklığını veya açıklığını temsil eder ve genel görüntü kontrastını tanımlamak için önemlidir.
- Renk Bilgisi (Chrominance): Bu, ton ve doygunluk dahil renk bilgisini ifade eder.
Bu dönüşüm, insan gözünün renkten (chrominance) çok parlaklığa (luminance) daha duyarlı olduğu gerçeğinden yararlanır. Parlaklığı renkten ayırarak JPEG, sonraki adımlarda hedefli veri azaltımı yapılmasına ve en önemli görsel ayrıntıların korunmasına imkan tanır.
Bu adımda hiçbir veri kaybı olmaz, ancak görüntüyü verimli sıkıştırma için hazırlar.
Adım 2: Renk Alt Örnekleme / Chroma Subsampling
Chroma Subsampling bir renk uzayı dönüşümünden sonra uygulanan bir tekniktir. Gözlerimizin parlaklığa (luminance) kıyasla renkleri (chrominance) çok iyi algılamadığını söylemiştik, hatırlıyor musunuz?
JPEG bu durumdan, renk verisi miktarını azaltarak yararlanır. Mavi ve kırmızı chrominance görüntülerini dörder piksellik bloklar halinde ortalayarak küçültür. Böylece renk verisi çok daha küçük hale gelirken parlaklık (luminance) değişmeden kalır. Bu noktada bile görüntü zaten önemli ölçüde sıkıştırılmıştır.
Adım 3: Ayrık Kosinüs Dönüşümü (DCT)
Ayrık Kosinüs Dönüşümü (DCT) görüntü verisini dönüştürmek için kullanılan matematiksel bir tekniktir ve görüntünün bir piksel ızgarası olduğu uzamsal alandan, frekans alanına çevirir. Bu süreç, görüntünün hangi kısımlarında en önemli görsel bilgilerin bulunduğunu ve hangi kısımların atıktı.
DCT görüntüyü 8x8 bloklara ayırır ve her bloğu bir frekans değerleri koleksiyonuna dönüştürür. Daha yüksek frekanslar, piksel değerlerindeki hızlı değişimleri (kenarlar veya gürültü gibi) temsil eder ve bunlar insan gözü için genellikle daha az fark edilir, bu nedenle basitleştirilebilir veya kaldırılabilir.
Adım 4: Nicemleme
DCT uygulandıktan sonra, ortaya çıkan frekans verileri nicemlemeişleminden geçer. Bu adımda, frekans değerlerinin aralığı, nicemleme tablosu adı verilen sabitler kümesine bölünerek azaltılır. Bu işlem, frekans değerlerini basitleştirmek için onları yuvarlama anlamına gelir.
Daha yüksek frekans değerleri daha ağır nicemlenir, yani genel görüntü kalitesi için daha az önemli olduklarından daha fazla hassasiyet kaybederler. Bu dördüncü adım, görüntüyü temsil etmek için gerekli veri miktarını azaltarak dosyanın küçülmesini sağlar. Ancak, aşırı nicemleme özellikle yüksek sıkıştırma düzeylerinde bloklaşma veya bulanıklık gibi görünür yapıtlar oluşturabilir.
Adım 5: Çalışma Uzunluğu ve Huffman Kodlama
Nicemlemeden sonra veriler hala verimli depolama için yeterince sıkışık değildir. İşte bu noktada Çalışma Uzunluğu Kodlaması (RLE) ve Huffman Kodlama kullanılır.
Önce RLE, tekrar eden uzun veri dizilerini (sıfırlar gibi) her bir değeri tek tek saklamak yerine tekrar sayısını saklayarak basitleştirmek için kullanılır. Ardından, sıklıkla görülen değerleri daha kısa bit kodlarıyla değiştiren bir teknik olan Huffman Kodlama uygulanır ve dosya daha da küçülür.
These two kodlama yöntemleri dosya boyutunu, görüntü kalitesinin büyük kısmından ödün vermeden, önemli ölçüde azaltmak için birlikte çalışır.
Ek Notlar
JPEG çok verimli bir format olsa da dikkate alınması gereken birkaç önemli nokta vardır:
- Sıkıştırma Düzeyi: JPEG, kullanıcıların sıkıştırma düzeyini seçmesine izin verir, ancak daha yüksek sıkıştırma dosya boyutunu azaltırken bulanık kenarlar veya pikselleşme gibi görünür yapıtlar oluşturabilir. Bu durum, nicemleme tablosu değerlerinin çok yüksek olması ve daha fazla sıfır eklenmesine yol açması sonucunda dosya boyutu küçülürken görüntü kalitesinin düşmesinden kaynaklanır.
- Yüksek Frekans Verisi Kaybı: Nicemleme, yüksek frekans verilerinin (keskin kenarlar gibi ayrıntıların) hassasiyetini azaltır. Bu nedenle JPEG, yumuşak dokular için uygundur ancak keskin çizgiler ve vektör grafiklerde zorlanabilir.
- Vektör Grafikler İçin İdeal Değil: JPEG, şekillerin veya çizgilerin sınırlarında fark edilir yapıtlar oluşturabildiğinden vektör grafikleri sıkıştırmak için en iyi seçenek değildir.
Bu sınırlamalara rağmen JPEG, kısmen eski, iyi anlaşılır ve telif ücretsiz olduğu için en popüler görüntü formatı olmayı sürdürmektedir. Ancak WebP veya HEIF gibi daha yeni formatlar, kaliteden ödün vermeden daha iyi sıkıştırma oranları sundukları için belirli durumlarda cazip alternatiflerdir.
Sonuç Olarak
JPEG sıkıştırma algoritması, görüntü verisi yönetiminde kayda değer bir başarıdır. Görüntüleri daha küçük bloklara ayırarak, matematiksel dönüşümler uygulayarak ve Çalışma Uzunluğu ile Huffman Kodlama gibi verimli kodlama tekniklerini kullanarak, yüksek kaliteli görüntüleri çok daha küçük dosya boyutlarında saklamamıza olanak tanır.
JPEG'in, özellikle yüksek sıkıştırma düzeylerinde veya vektör grafiklerde bazı sınırlamaları olsa da, yaygın kullanımı ve fotoğrafik görüntüler için iyi sonuçlar sunma yeteneği onu kalıcı bir standart haline getirmektedir.