Tek ölçüt dosya boyutuysa AVIF kalite ayarı seçmek kolaydır. Zor olan, görüntüde ne kadar bozulmanın kabul edilebilir olduğuna karar vermektir. 40 kalite değeri, algısal kalite puanının 40 olduğu anlamına gelmez; her görselde aynı sonucu da garanti etmez. Farklı kaynak görseller, aynı kodlayıcı ayarlarına çok farklı tepkiler verebilir.
SSIMULACRA2, sıkıştırılmış ve çözülmüş bir görseli referans görselle karşılaştırarak bu farkı değerlendirmeye yardımcı olur. Ancak her görsel için kapsamlı bir kalite araması yapmak, normalde basit olan dönüştürme sürecini maliyetli bir kodlama işine dönüştürebilir. Amaç her dosyada kusursuz optimizasyon yerine web'de makul görsel kalite elde etmekse daha basit bir yol var: temsili bir örneklem üzerinde tek bir AVIF kalite değerini kalibre edin, sonuçları görsel olarak inceleyin ve koleksiyonun geri kalanı için bu değeri kullanın.
AVIF kalite değeri ile SSIMULACRA2 farklı sayılardır
AVIF kodlayıcısına verilen quality seçeneği, sıkıştırma işlemini yönlendiren bir ayardır. SSIMULACRA2 ise kodlanmış sonucun ölçümüdür. Ölçekleri birbirinin yerine kullanılamaz: AVIF quality: 40, SSIMULACRA2 puanının 40, 60 ya da başka herhangi bir sabit değer olacağı anlamına gelmez.
Bir kodlama sonucunu ölçmek için dosyayı çözün ve referansla karşılaştırın:
ssimulacra2 reference.png encoded-decoded.png
Daha yüksek SSIMULACRA2 puanları, algısal benzerliğin daha yüksek olduğunu gösterir. Resmî belgelerinde yaklaşık 50 puan orta, yaklaşık 70 puan ise yüksek kalite olarak tanımlanır. 60 eşiği pratik bir hedef olabilir; ancak bu, kabul edilebilir bir görselin evrensel tanımı değil, tercih edilen bir ölçüttür. Temsili sonuçları her zaman gerçekten görüntülenecekleri boyutta inceleyin.
Neden her görsel için kapsamlı optimizasyon pahalıya mal olur?
Katı kurallarla çalışan bir optimizasyon aracı, görseli farklı kalite değerlerinde tekrar tekrar kodlayabilir, her adayı SSIMULACRA2 ile ölçebilir ve ardından kabul edilebilir en küçük dosyayı tutabilir. Kolay sıkıştırılan bir görsel düşük kalite değerinde eşiği geçerken zor bir görsel daha yüksek kalite gerektirebildiğinden, bu yöntem çoğu zaman daha verimli sıkıştırma sağlar.
Dezavantajı, gereken kodlama sayısıdır. N görselin her biri için kabul edilebilir bir ayar bulmak üzere K aday kodlama gerekiyorsa, çözme ve puanlama işlemlerine ek olarak yaklaşık N × K kodlama yapılır. Pratikte yüksek işlem yoğunluğuna sahip AVIF kodlaması maliyetin büyük bölümünü oluşturabilir; SSIMULACRA2 metriğini hesaplamak mutlaka en pahalı aşama değildir.
Her klasör için tek bir kalite seçmek arama yükünü azaltır; ancak yine de örnekleme, ölçüm ve farklı gruplar için ayrı ayarları yönetme gerektirir. Ortak bir sunum kalitesi gereksinimi olan ve bazı istisnalara tolerans gösterilebilen koleksiyonlarda bu ek karmaşıklığa değmeyebilir.
| Strateji | Kalibrasyon işi | Temel ödünleşim |
|---|---|---|
| Görsel başına uyarlamalı kalite | Her görsel için birden fazla aday kodlama | İnce ayarlı kontrol, en yüksek kalibrasyon maliyeti |
| Grup başına uyarlamalı kalite | Her grubun örneklemi için birden fazla aday kodlama | Daha az işlem, ancak daha fazla yapılandırma ve gruba bağlı sonuçlar |
| Tek bir sabit kalite | Sınırlı bir kalibrasyon örnekleminde aday kodlamalar | Düşük operasyonel karmaşıklık; bazı görsellerin gereğinden fazla, bazılarının ise yetersiz sıkıştırılmasını kabul eder |
Önemli fark: ortalama puan mı, eşiği karşılama oranı mı?
Bir kalite değeri seçmeden önce “yeterince iyi” ifadesinin ne anlama geldiğini belirleyin. Yüzeysel olarak benzer görünen iki hedef, çok farklı kodlayıcı ayarlarına yol açar:
- Ortalama puan hedefi: örneklemdeki ortalama SSIMULACRA2 puanı yaklaşık 60 olmalı.
- Eşiği karşılama oranı hedefi: görsellerin yaklaşık %90'ı SSIMULACRA2 ≥ 60 puanına ulaşmalı; kalan görseller bu eşiğin altında kalabilir.
Bunlar eşdeğer değildir. Ortalama hesaplanırken kolay bir görseldeki yüksek puan, zor bir görseldeki düşük puanı dengeleyebilir. Örneğin, görsellerin yarısı 75, diğer yarısı 55 puan alırsa ortalama 65 olur; buna rağmen yalnızca yarısı 60 eşiğini karşılar.
Görsellerin çoğunun kabul edilebilir görünmesinin beklendiği ve az sayıdaki başarısızlığa tolerans gösterilebildiği genel bir web görseli iş akışında eşiği karşılama oranı genellikle daha kullanışlıdır. Şunu ölçün:
pass_rate = count(scores >= 60) / count(all_scores)
Ayrıca eşiğin altında kalan puanların dağılımını kaydedin ve en kötü görünen görselleri inceleyin. Görsellerin %9'unun 59 puan aldığı bir örneklem ile %9'unun 30 puan aldığı bir örneklem, eşiği karşılama oranları aynı olsa bile önemli ölçüde farklıdır.
Gerçek bir kalibrasyon çalışması ne gösterdi?
Keşif amaçlı bir AVIF kalibrasyonunda, uyarlamalı bir yöntem farklı görsel grupları için yaklaşık 30'ların ortasından 40'ların ortasına uzanan farklı kalite ayarları seçti. Bu beklenen bir sonuçtu: bazı gruplarda görseller belirlenen SSIMULACRA2 eşiğini erken geçerken birkaç zor örnek, çok daha yüksek kodlayıcı kalitesi gerektiriyordu.
Ancak uyarlamalı kural, gerçek sunum gereksiniminden daha katıydı. Her grupta test edilen görsellerin neredeyse tamamının eşiği geçmesini sağlamaya çalışıyor ve yalnızca çok sınırlı sayıda istisnaya izin veriyordu. Bu yaklaşım zor görselleri korur; ancak tek bir sıra dışı örnek yüzünden tüm grubun kalite değerini yükseltebilir.
Ölçümleri farklı bir hedefe göre yeniden değerlendirmek — yaklaşık her on görselden dokuzunun SSIMULACRA2 puanının 60 veya üzerinde olması — yaklaşık 39–40 düzeyinde tek bir AVIF kalite değerini makul bir uzlaşma haline getirdi. Bu karşılaştırmada 39 daha küçük çıktıları desteklerken 40, eşiğe yakın görseller için daha fazla pay bırakıyordu. Bu değerler kalibrasyon verilerinden ve sonraki analizden çıkarıldı; sabit kaliteyle tüm koleksiyonun dönüştürülmesi ve bağımsız olarak doğrulanması henüz yapılmamıştı. 39'un 40'a kıyasla dosya boyutunda tam olarak ne kadar avantaj sağladığı belirlenmedi.
Buradan çıkarılacak sonuç, AVIF kalite 39 veya 40'ın her yerde işe yaradığı değildir. Asıl sonuç, açıkça belirlenmiş bir kalite dağılımını karşılıyorsa sabit bir ayarın makul olabileceğidir. Farklı bir kodlayıcı, görsel çeşitliliği, renk işleme süreci veya algısal eşik farklı bir sonuca götürebilir.
AVIF kalitesi bir kez nasıl kalibre edilir?
- Kabul edilebilir başarısızlık oranını seçin. Örneğin, görsellerin yaklaşık %90'ının SSIMULACRA2 ≥ 60 puanına ulaşmasını şart koşun. Bunun esnek bir hedef mi yoksa kesin bir yayın koşulu mu olacağına karar verin.
- Gerçekten temsili bir örneklem oluşturun. Farklı boyutları, kaynak biçimlerini, renk geçişlerini, keskin kenarları, dokuları ve düşük ayrıntılı görselleri kapsayın. Gerçek iş yükünden rastgele örnek alın; aksi halde bir kategori dışarıda kalacaksa katmanlı örnekleme kullanın. Dosyaları yalnızca piksel başına sıkıştırılmış bayt sayısına göre seçmek, farklı aralıkları kapsamak için yararlı bir sezgisel yöntemdir; algısal açıdan temsili olmayı garanti etmez.
- Kodlayıcının küçük bir kalite aralığını test edin. Tüm kalite ölçeğini denemek yerine görsel olarak kabul edilebilir bir ayarın çevresindeki birkaç adayla başlayın. Örneğin aynı görsellerde 38, 39, 40 ve 42 gibi yakın değerleri test edin.
- Kodlama sürecini aynı tutun. Çözünürlüğü, yönlendirmeyi, renk dönüşümünü, kodlayıcı uygulamasını, işlem yoğunluğu ayarını, kroma alt örneklemesini, bit derinliğini ve ön işlemeyi sabit tutun. Filigran ekliyorsanız, sıkıştırılmış sonuçla karşılaştırılmadan önce referans görsel de aynı filigranı ve dönüşümleri içermelidir.
- Puanı ve boyutu birlikte kaydedin. Her aday için en az 60 puan alan görsellerin payını, eşik altındaki puan dağılımını ve aynı örneklemin toplam kodlanmış bayt sayısını hesaplayın. Bant genişliği tasarrufunu yalnızca kalite değerinden çıkarmayın.
- Eşiği geçemeyenleri inceleyin. Yüzlere, metinlere, ince çizgilere, renk geçişlerine ve hedeflenen görünüm için önemli olan diğer ayrıntılara bakın. Yalnızca yakınlaştırılmış karşılaştırmalarda değil, gerçekçi görüntüleme boyutlarında da kontrol edin.
- Yeterli olan en düşük kaliteyi seçin, ardından doğrulayın. Aday değeri, seçimi etkilememiş ayrı bir rastgele doğrulama örnekleminde test edin. %90 hedefine ulaşamamanın maliyeti yüksekse güvenlik payı bırakın ve örnekleme belirsizliğini ciddiye alın. Ara sıra başarısızlık kabul edilebiliyorsa daha agresif bir değer makul olabilir.
Bir kez kalibrasyon yapmak, gelecekteki değişiklikleri görmezden gelmek demek değildir. Kaynak görsellerin dağılımı, boyutlar, kodlayıcı sürümü, sunum sırasında uygulanan dönüşümler veya görsel gereksinimler değiştiğinde küçük bir örneklemle kontrolü tekrarlayın.
Sharp ve SSIMULACRA2 ile temel bir karşılaştırma
Bu basitleştirilmiş örnekte, aynı girdiden iki aday üretmek için Sharp'ın AVIF kodlayıcısı kullanılır. Bu, açıklama amaçlı bir kalibrasyon örneğidir; her projenin bu kodlayıcı seçeneklerini veya kalite değerlerini kullanması gerektiği iddiası değildir. sharp paketini kurduktan sonra kodu bir ES modülü olarak çalıştırın.
import sharp from 'sharp';
const source = 'sample.png';
const encoding = {
effort: 9,
chromaSubsampling: '4:4:4',
bitdepth: 8,
tune: 'iq',
lossless: false
};
// Use the same orientation and color conversion in both paths.
await sharp(source)
.rotate()
.toColourspace('srgb')
.png()
.toFile('reference.png');
for (const quality of [39, 40]) {
const encoded = `candidate-q${quality}.avif`;
await sharp(source)
.rotate()
.toColourspace('srgb')
.avif({ ...encoding, quality })
.toFile(encoded);
await sharp(encoded)
.png()
.toFile(`candidate-q${quality}.png`);
}
Ardından çözülmüş adayları hazırlanmış referansla karşılaştırın:
ssimulacra2 reference.png candidate-q39.png
ssimulacra2 reference.png candidate-q40.png
Gerçek bir testte bu süreci örneklenen tüm görseller için otomatikleştirin ve her adayın puanını ve dosya boyutunu toplayın. Üretim süreciniz görselleri yeniden boyutlandırıyor, kırpıyor, üzerlerine katman ekliyor veya başka biçimde dönüştürüyorsa karşılaştırma referansına da aynı işlemleri uygulayın. Aksi halde SSIMULACRA2, sıkıştırma kaybının yanı sıra dönüşümün etkisini de ölçer.
Genel bir kalite değeri seçildikten sonra üretimde kodlama, sıradan bir tek geçişli AVIF dönüşümüne dönüşür. Artık her görsel veya klasör için kalite araması yapmanız gerekmez. Bu, tekrarlanan deneme kodlamalarını ortadan kaldırır; her çıktı görseli için hâlâ gerekli olan tek kodlamanın maliyetini ortadan kaldırmaz.
Tek bir AVIF kalite değeri ne zaman yanlış seçimdir?
Sabit ayar bir ödünleşimdir, evrensel optimum değildir. Her görsel için asgari kalite sınırı sözleşmeyle belirlenmişse, görsel kusurlar kabul edilemiyorsa, kaynaklar arasında büyük farklar varsa veya her baytı optimize etmek ek hesaplama ve uygulama karmaşıklığına değiyorsa uyarlamalı kodlama hâlâ değerlidir.
Özellikle farklı görsel türlerinin bir arada bulunduğu koleksiyonlara dikkat edin. Fotoğraflar, düz renkli grafikler, ince yazılar ve önceden sıkıştırılmış kaynaklar aynı şekilde tepki vermek zorunda değildir. Bir tür kabul testini tekrar tekrar geçemiyorsa, az sayıda biçim veya içerik türüne özgü profil kullanmak iki uç yaklaşımın da önüne geçebilir: tek bir evrensel kalite ya da her görsel için tam optimizasyon.
Ayrıca kodlayıcı hızını kalibrasyon hızından ayırın. Tek kalite değeri kullanmak tekrarlanan denemeleri önler; ancak bütün görselleri çok yüksek effort değeriyle kodlamak yine de hesaplama açısından pahalı olabilir. Daha düşük işlem yoğunluğuna sahip bir kodlayıcı profili de geçerli bir optimizasyon seçeneğidir; yeter ki yeniden kalibrasyon yapın, çünkü kalite değeri ile puan arasındaki ilişki kodlayıcı seçenekleriyle değişebilir.
Pratik kural
SSIMULACRA2'yi mutlaka her görsel için üretim sürecinde çalıştırılması gereken bir adım olarak değil, kalibrasyon aracı olarak kullanın. Görsellerin gerçekte nasıl görüntüleneceğini yansıtan bir kalite hedefi seçin, temsili bir örneklemi birbirine yakın birkaç ayarda kodlayın, hem algısal puanları hem de bayt miktarlarını karşılaştırın, eşiği geçemeyenleri inceleyin ve toleransınızı karşılayan en düşük ayarı sabitleyin.
Keşif amaçlı bir kalibrasyonda yaklaşık 39–40 AVIF kalitesi, durmak için mantıklı bir nokta gibi görünüyordu. Bu, belirli bir eşik ve tolerans altında verilmiş bir karardı; evrensel bir ön ayar veya tüm koleksiyon için doğrulanmış bir karşılaştırma testi değildi. Daha geniş ölçekte uygulanabilecek ders daha basit: zaman ve işlem gücü sınırlıyken dikkatle doğrulanmış sabit bir kalite, her bir görseli durmadan optimize etmekten çoğu zaman daha pratiktir.