İlginizi Çekebilir
  1. Ana Sayfa
  2. Teknoloji

JPG, JPEG Nedir? Ayrık Kosinüs Dönüşümü Nedir?

bu yazımda JPG, JPEG Nedir? konusuna biraz bakalım istiyorum. Çünkü bu konu sinüs ve fourier dönüşümü ile yakınen ilgili bir konudur. Bu sebeple de bu yazımda JPG, JPEG ile sinüs konusunun ne ilgili olduğuna biraz değinmek istiyorum.

JPG, JPEG Nedir? Ayrık Kosinüs Dönüşümü Nedir?
PG, JPEG Nedir? Ayrık Kosinüs Dönüşümü Nedir?
+ - 0

Merhaba arkadaşlar bu yazımda JPG, JPEG Nedir? konusuna biraz bakalım istiyorum. Çünkü bu konu sinüs ve fourier dönüşümü ile yakınen ilgili bir konudur. Bu sebeple de bu yazımda JPG, JPEG ile sinüs konusunun ne ilgili olduğuna biraz değinmek istiyorum.

Başlamadan önce Discord sunucuma katılmayı unutmayın. :D

JPG, JPEG Nedir?

Dijital görüntüler için, özellikle dijital fotoğrafçılık tarafından üretilen görüntüler için yaygın olarak kullanılan bir kayıplı sıkıştırma yöntemidir.  Hareketsiz resimlerin kodlanması olarak adlandırılır

JPEG, tipik olarak, görüntü kalitesinde çok az algılanabilir kayıpla 10:1 sıkıştırma elde eder.  “JPEG” terimi , 1992’de standardı oluşturan Joint Photographic Experts Group‘un kısaltmasıdır. JPEG dosyalarının dosya adı uzantısı genellikle veya .JPEG/JFIF, maksimum 65.535×65.535 piksel görüntü boyutunu, dolayısıyla 1:1 en boy oranı için 4 gigapiksele kadar destekler .

JPEG, Discrete Cosine Transform’a (DCT) (ayrık kosinüs dönüşümü) dayalı kayıplı bir sıkıştırma biçimi kullanır.  Sıkıştırma yöntemi genellikle kayıptır, yani bazı orijinal görüntü bilgileri kaybolur ve geri yüklenemez, bu da görüntü kalitesini etkiler.

Yani fotoğraf makinesinin deklanşörüne bastığınız anda, vihaz önceden girilmiş sinüs tabloları ile gelen veriyi çarparak görseli oluşturur. Bu şablonlar çekimde istenen kaliteye göre değişiklik gösterir. Discrete Cosine Transform’a (DCT) (ayrık kosinüs dönüşümü) dediğimiz şeyde aslında adında anlaşılacağı gibi bir sinüs konisinüs hesap şablonlarıdır. Bu dönüşüm görselleştirilmesi aşağıdaki gibidir.

jpg jpeg nedir Dctjpeg

 

PEG standardı , bir görüntünün bir bayt akışına nasıl sıkıştırılacağını ve yeniden bir görüntüye nasıl sıkıştırılacağını tanımlayan codec bileşenini belirtir , ancak bu akışı içermek için kullanılan dosya biçimini tanımlamaz. Exif ve JFIF standartları , JPEG sıkıştırılmış görüntülerin değişimi için yaygın olarak kullanılan dosya biçimlerini tanımlar.

JPEG standartları resmi olarak Bilgi teknolojisi – Sürekli tonlu hareketsiz görüntülerin dijital sıkıştırması ve kodlanması olarak adlandırılır.

Tipik kullanım 

JPEG sıkıştırma algoritması, yumuşak ton ve renk varyasyonlarıyla gerçekçi sahnelerin fotoğraflarında ve resimlerinde en iyi şekilde çalışır. Bir görüntü için kullanılan veri miktarının azaltılmasının duyarlı sunum için önemli olduğu web kullanımı için, JPEG’in sıkıştırma avantajları JPEG’i popüler hale getirir. JPEG/ Exif de dijital kameralar tarafından kaydedilen en yaygın formattır.

Bununla birlikte, JPEG, bitişik pikseller arasındaki keskin kontrastların fark edilebilir yapaylıklara neden olabileceği, çizimler ve diğer metinsel veya ikonik grafikler için pek uygun değildir. Bu tür görüntüler TIFF, GIF, PNG gibi kayıpsız bir grafik biçiminde veya ham görüntü biçiminde daha iyi kaydedilir. JPEG standardı kayıpsız bir kodlama modu içerir, ancak bu mod çoğu üründe desteklenmez.

 

JPEG Sıkıştırması

JPEG, ayrık kosinüs dönüşümüne(DCT)  dayalı kayıplı bir sıkıştırma biçimi kullanır. Bu matematiksel işlem, video kaynağının her karesini/alanını uzamsal (2B) alandan frekans alanına (diğer adıyla dönüşüm alanı) dönüştürür.

İnsan psiko-görsel sistemine gevşek bir şekilde dayanan bir algısal model, yüksek frekanslı bilgileri, yani yoğunluktaki keskin geçişleri ve renk tonunu atar. Dönüştürme alanında, bilgiyi azaltma işlemine nicemleme denir. Daha basit bir ifadeyle, nicemleme, büyük bir sayı ölçeğini (her sayının farklı oluşumları ile) daha küçük bir sayıya en uygun şekilde indirgemek için bir yöntemdir ve dönüşüm alanı, daha az katkıda bulunan yüksek frekans katsayıları nedeniyle görüntünün uygun bir temsilidir.

Genel resme diğer katsayılardan daha fazla, yüksek sıkıştırılabilirliğe sahip karakteristik olarak küçük değerlerdir. Kuantize edilmiş katsayılar daha sonra sıralanır ve kayıpsız olarak çıkış bit akışına paketlenir. Hemen hemen tüm JPEG yazılım uygulamaları, kullanıcının sıkıştırma oranı (ve diğer isteğe bağlı parametreler) üzerinde kontrol sağlamasına izin vererek, kullanıcının daha küçük dosya boyutu için resim kalitesinden ödün vermesine olanak tanır. Gömülü uygulamalarda (benzer bir DCT sıkıştırma şeması kullanan miniDV gibi), parametreler uygulama için önceden seçilir ve sabitlenir.

Idct-animation

Solda: bir dizi temel işlevden oluşturulan son bir görüntü. Sağda: görüntüyü oluşturan DCT temel fonksiyonlarının her biri ve karşılık gelen ağırlık katsayısı. Orta: katsayı ile çarpıldıktan sonra temel fonksiyon: bu bileşen son görüntüye eklenir. Anlaşılır olması için, bu örnekteki 8×8 makroblok, çift doğrusal enterpolasyon kullanılarak 10x büyütülür.

 

JPEG Dosya Adı Uzantıları 

JPEG sıkıştırması kullanan dosyalar için en yaygın dosya adı uzantıları.jpg ve .jpeg, olsa da .jpe.jfifve .jifayrıca kullanılır. JPEG verilerinin diğer dosya türlerine gömülmesi de mümkündür – TIFF kodlu dosyalar genellikle bir JPEG görüntüsünü ana görüntünün küçük resmi olarak gömer; ve MP3 dosyaları , ID3v2 etiketinde bir JPEG kapak resmi içerebilir

 

.

Ayrık Kosinüs Dönüşümü

Ayrık bir kosinüs dönüşümü ( DCT ), farklı frekanslarda salınan kosinüs fonksiyonlarının toplamı cinsinden sonlu bir veri noktaları dizisini ifade eder.

İlk olarak 1972’de Nasir Ahmed tarafından önerilen DCT, sinyal işleme ve veri sıkıştırmada yaygın olarak kullanılan bir dönüştürme tekniğidir. Dijital görüntüler ( küçük yüksek frekanslı bileşenlerin atılabileceği JPEG ve HEIF gibi), dijital video ( MPEG ve H.26x gibi ) dahil olmak üzere çoğu dijital ortamda kullanılır.), dijital ses ( Dolby Digital , MP3 ve AAC gibi ), dijital televizyon ( SDTV , HDTV ve VOD gibi ), dijital radyo ( AAC+ ve DAB+ gibi ) ve konuşma kodlaması ( AAC-LD , Siren ve Opus gibi) ). DCT’ler, dijital sinyal işleme , telekomünikasyon cihazları, ağ bant genişliğini azaltma gibi bilim ve mühendislikteki sayısız diğer uygulamalar için de önemlidir.Kısmi diferansiyel denklemlerin sayısal çözümü için kullanım ve spektral yöntemler .

Ayrık kosinüs dönüşümünün en yaygın varyantı, genellikle basitçe “DCT” olarak adlandırılan tip II DCT’dir. Bu, ilk olarak Ahmed tarafından önerilen orijinal DCT idi. Bunun tersi, tip III DCT, buna uygun olarak genellikle “ters DCT” veya “IDCT” olarak adlandırılır. İlişkili iki dönüşüm , gerçek ve tek fonksiyonların DFT’sine eşdeğer olan ayrık sinüs dönüşümü (DST) ve örtüşen DCT’ye dayanan değiştirilmiş ayrık kosinüs dönüşümüdür (MDCT).veri. Çok boyutlu DCT’ler (MD DCT’ler), DCT kavramını MD sinyallerine genişletmek için geliştirilmiştir. MD DCT’yi hesaplamak için birkaç algoritma vardır. DCT uygulamasının hesaplama karmaşıklığını azaltmak için çeşitli hızlı algoritmalar geliştirilmiştir. Bunlardan biri, çeşitli ISO/IEC ve ITU-T uluslararası standartlarında kullanılan standart DCT’nin bir tamsayı yaklaşımı olan DCT  (IntDCT) tamsayısıdır

Blok sıkıştırma olarak da bilinen DCT sıkıştırması, verileri ayrık DCT blok kümeleri halinde sıkıştırır. DCT blokları, standart DCT için 8×8 piksel ve 4×4 ile 32×32 piksel arasında çeşitli tamsayı DCT boyutları dahil olmak üzere bir dizi boyuta sahip olabilir . DCT, güçlü bir “enerji sıkıştırma” özelliğine sahiptir,  yüksek veri sıkıştırma oranlarında yüksek kalite elde etme yeteneğine sahiptir . Bununla birlikte, yoğun DCT sıkıştırması uygulandığında bloklu sıkıştırma yapaylıkları görünebilir.

 

Gerekli teknik bilgileri aldıktan sonra devam edelim. 

 

Bir önceki yazıda bahsettiğim sinüs, sinüs dalgası ve fourier fonksiyonunu, zamansal olarak değilde mekansal olarak çalıştırdığımızda bize JPEG sıkıştırma algoritmasının temel mantığını vermektedir. Yani ne kadar çok epiçemberimiz var ise o kadar hassas ölçümler yapabiliyoruz. Bu da, ne kadar az çember kullanırsak ölçümlerin de o kadar kayıplı olacağı anlamını verir. Bu video sıkıştırma algoritmalarında da kullanılan bir yöntemdir. Bu, her 10 dakikalık videonun neden farklı boyutlarda olduğunu da cevaplıyor. Çünkü ne kadar az karmaşa varsa hesaplamak ve çözümlemek o kadar kolay oluyor ve boyutlar azalıyor.

Bu kayıpları genellikle videolarda veya jpeglerde gradient geçiş olan kısımlarda görebilirsiniz. Normal şartlarda gradient pürüssüz bir geçiş sağlarken videolarda ve jpeglerde geçişin basamak basamak olduğunu görebilirsiniz. Bu genellikle kodlama yani sıkıştırma algoritmalarının yakın tonlar içeren geniş geçiş noktalarını daha fazla sıkıştırması sonucu oluşmaktadır.

Ek olarak bu, özellikle çekilen videolarda, daha çekim esnasında yapılıyor. Bir videoyu tek renk arka planda çekmek ile bir ormanda çekmek arasında büyük fark olacaktır. Ormanda çekilen bir resim veya video her zaman tek renk veya az karmaşı olan arkaplanda çekilen resim ve videodan boyut olarak çok daha büyük olacaktır.

Yine önceki yazıdan referans alırsak, karmaşası çok fazla olan görselin modellenmesi için çok sayıda epiçember gerekeceği için ve her çember için en az iki farklı parametresi olacaktır. İnanılmaz sayılara çıkan epiçemberler düşüldüğünde boyutun neden büyüğü anlam kazanıyor.

 

Sonuç Olarak

Matematik, evrenle ilgili çok fazla veriyi sıkıştırıp, sadeleştirip daha az veriyle onları anlama sanatı diyebiliriz. Daire üzerine çivi çakıp, çivinin gölgesini izlemekten yola çıkılarak JPEG resim formatının ortaya çıkmasına matematik ve fizik sebep olmuştur.

Karmaşa arttıkça hesaplama zorlanır. Bu zorlama ne zaman cihazın işlem gücünü aşarsa kayıplar başlar. Örneğin bir maçta bir olay olur ve konfetiler atılır. O konfetiler ne kadar çoksa görüntü de bir an çamur gibi olur. Bu noktada da fourier çalışır ama cihazın işlem kapasitesi aşıldığından dolayı kalite düşer.


JPG, JPEG Nedir? yazımda bu kadardı arkadaşlar. Diğer yazılarda görüşmek üzere…

Teknoloji hakkında diğer yazılarım için bağlantıya tıklayabilirsiniz. Programlama konuları hakkında daha fazla yazı için tıklayabilirsiniz. C# Eğitim Seti sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Discord sunucuma katılmayı unutmayın. :D

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)