WebP

WebP, Google tarafından geliştirilmiş olup, JPEG, PNG veya GIF resim biçimlerine kıyasla daha küçük veya daha iyi görünen resimler oluşturmak için tasarlanmıştır.

WebP formatı Eylül 2010'da duyurulmuştur ve destek kütüphanesi Nisan 2018'de 1.0 sürümüne ulaşmıştır. Format desteği yıllar içinde artmıştır ve Mayıs 2021 itibarıyla WebP, dünya çapında kullanılan web tarayıcılarının %94'ü tarafından desteklenmektedir.

WebP hem kayıplı hem de kayıpsız sıkıştırma kullanan bir görüntü formatıdır. Güncel olarak Google'ın elinde bulunan, On2 Technologies'in Google tarafından satın alınmasıyla edinilen teknolojiye dayanılarak geliştirilmiştir.

WebP resim biçimi ilk olarak 30 Eylül 2010'da web'deki kayıplı sıkıştırma işlemelerinde kullanılan gerçek renkli grafikler için yeni bir açık standart olarak duyuruldu ve JPEG resim biçimine benzer görüntü kalitesinde daha küçük dosyalar için üretildi.

18 Kasım 2011'de Google, kayıpsız sıkıştırma ve kayıpsız ve kayıplı modlarda JPEG'in aksine şeffaflık desteğini test etmeye başladı; destek varsayılan olarak libwebp 0.2.0'da (16 Ağustos 2012) etkinleştirilmiştir. Google'ın ölçümlerine göre, PNG'den WebP'ye dönüşüm, web'de bulunan PNG'lerle oranla dosya boyutunda %45 azalma ve pngcrush ve PNGOUT ile yeniden sıkıştırılan PNG'lere kıyasla %28 azalma ile sonuçlanır.

WebP ilk olarak Google tarafından 30 Eylül 2010'da web'de kayıplı sıkıştırılmış gerçek renkli grafikler için yeni bir açık format olarak duyuruldu ve eski JPEG şemasıyla karşılaştırılabilir görüntü kalitesinde daha küçük dosyalar üretmiştir. Google'ın On2 Technologies'i satın alarak edindiği teknolojiye dayanmaktaydı. VP8 video formatının bir türevi olarak, WebM multimedya konteyner formatının kardeş projesidir. WebP ile ilgili yazılım, bir BSD lisansı altında yayınlanmaktadır.

3 Ekim 2011'de Google, animasyon, ICC profili, XMP ve Exif meta verileri ve döşeme (maksimum 16384 × 16384 döşemeden çok büyük görüntüleri birleştirmek) için WebP desteğine izin veren bir "Genişletilmiş Dosya Biçimi" eklenmiştir. Animasyon desteği, eski animasyonlu GIF'i animasyonlu WebP'ye dönüştürmeye izin vermektedir.

18 Kasım 2011'de Google, yeni bir kayıpsız sıkıştırma modunu ve hem kayıpsız hem de kayıplı modlarda şeffaflık (alfa kanalı) desteğini duyurdu; destek, libwebp 0.2.0'da (16 Ağustos 2012) varsayılan olarak etkinleştirilmiştir. ] Google'ın Kasım 2011'deki ölçümlerine göre, PNG'den WebP'ye dönüştürme, web'de bulunan PNG'lerle başlarken dosya boyutunda %45 ve pngcrush ve PNGOUT ile yeniden sıkıştırılan PNG'lere kıyasla %28'lik bir azalmayla sonuçlanmıştır.

Temmuz 2016'da Apple, macOS Sierra ve iOS 10'un erken beta sürümlerine WebP desteği eklemiş, ancak daha sonra iOS 10'un GM tohum sürümlerinde ve Eylül 2016'da yayınlanan macOS Sierra'da destek kaldırılmıştır. Eylül 2020'de Safari'de WebP sürüm 14ile web desteği eklenmiştir.

WebP'nin kayıplı sıkıştırma algoritması, VP8 video formatının çerçeve içi kodlamasını ve bir kap formatı olarak Kaynak Değişim Dosyası Formatını (RIFF) temel alır. Bu haliyle, sekiz bit renk derinliğine ve 1:2 (YCbCr 4:2:0) oranında kroma alt örneklemeli bir parlaklık-krominans modeline sahip blok tabanlı bir dönüşüm şemasıdır. Daha fazla içerik olmadan, zorunlu RIFF kapsayıcısının ek meta verileri de tutabilmesine rağmen yalnızca yirmi baytlık bir ek yükü vardır. WebP görüntülerinin kenar uzunluğu 16.383 piksel ile sınırlıdır.

WebP, blok tahminine dayanmaktadır. Her blok, üstündeki üç bloktan ve bir bloktan soluna doğru olan değerlere dayanır (blok kod çözme raster tarama sırasında yapılır: soldan sağa ve yukarıdan aşağıya). Dört temel blok tahmini modu vardır: yatay, dikey, DC (tek renk) ve TrueMotion. Yanlış tahmin edilen veriler ve tahmin edilmeyen bloklar, ayrı bir kosinüs dönüşümü veya bir Walsh–Hadamard dönüşümü ile 4×4 piksellik bir alt blokta sıkıştırılır. Yuvarlama hatalarını önlemek için her iki dönüşüm de sabit nokta aritmetiği ile yapılır. Çıktı, entropi kodlaması ile sıkıştırılır. WebP ayrıca paralel kod çözme için açık desteğe sahiptir.

Referans uygulaması, Linux (cwebp) için bir komut satırı programı biçimindeki dönüştürücü yazılımından ve WebM'de olduğu gibi kod çözme için bir programlama kitaplığından oluşmaktadır. Açık kaynak topluluğu, dönüştürücüyü Windows gibi diğer platformlara hızlı bir şekilde taşımayı başarmıştır.

WebP'nin kayıpsız sıkıştırması, VP8 ile ilgisi olmayan daha yeni bir format, Google yazılım mühendisi Jyrki Alakuijala tarafından tasarlanmıştır. Farklı renk kanalları için özel entropi kodları, geriye doğru referans mesafelerinin 2B lokalitesinden ve son kullanılan renklerin renk önbelleğinden yararlanma gibi gelişmiş teknikleri kullanmaktadır. Bu, sözlük kodlama, Huffman kodlama ve renk indeksleme dönüşümü gibi temel teknikleri tamamlar. Bu biçim, özyinelemeli tanımlama kullanır: yerel entropi kodu seçimi gibi tüm kontrol görüntüleri, tüm görüntünün kendisiyle aynı şekilde kodlanır.

Microsoft Edge'in EdgeHTML tabanlı sürümleri, bir tarayıcı uzantısı aracılığıyla WebP'yi destekler (varsayılan olarak yüklüdür). Microsoft Edge'in EdgeHTML tabanlı sürümleri, katı güvenlik kuralları ile “Uygulama Koruması” modunda çalışırken WebP resim biçimi uzantısı da dahil olmak üzere platform uzantılarını desteklemez. Ocak 2020'den sonra yayımlanan Microsoft Edge sürümleri Chromium tarayıcısını temel aldığından, WebP desteği ek platform uzantılarına gerek kalmadan yerleşik olarak bulunur.