Memilih pengaturan kualitas AVIF itu mudah jika satu-satunya pertimbangan adalah ukuran berkas. Yang lebih sulit adalah menentukan seberapa jauh penurunan kualitas visual masih dapat diterima. Nilai kualitas 40 bukan berarti skor kualitas perseptualnya 40, dan tidak menjamin hasil yang sama untuk setiap gambar. Sumber gambar yang berbeda bisa menghasilkan respons yang sangat berbeda terhadap pengaturan enkoder yang identik.
SSIMULACRA2 membantu menjembatani perbedaan tersebut dengan membandingkan gambar terkompresi yang telah didekodekan dengan gambar referensi. Namun, melakukan pencarian kualitas secara menyeluruh untuk setiap gambar dapat mengubah proses konversi yang sederhana menjadi pekerjaan enkode yang mahal. Jika tujuannya adalah kualitas gambar web yang memadai, bukan optimalisasi sempurna untuk setiap berkas, ada pendekatan yang lebih sederhana: kalibrasikan satu pengaturan kualitas AVIF pada sampel yang representatif, periksa hasilnya secara visual, lalu gunakan pengaturan tersebut untuk seluruh koleksi lainnya.
Nilai kualitas AVIF dan skor SSIMULACRA2 adalah dua hal berbeda
Opsi quality yang diberikan kepada enkoder AVIF adalah instruksi untuk proses kompresi. SSIMULACRA2 adalah pengukuran hasil enkode. Skala keduanya tidak bisa dipertukarkan: AVIF quality: 40 tidak berarti SSIMULACRA2 = 40, 60, atau skor tetap lainnya.
Untuk mengukur hasil enkode, dekodekan gambar tersebut lalu bandingkan dengan referensinya:
ssimulacra2 reference.png encoded-decoded.png
Skor SSIMULACRA2 yang lebih tinggi menunjukkan kemiripan perseptual yang lebih besar. Dokumentasi resminya menyebut skor sekitar 50 sebagai kualitas sedang dan sekitar 70 sebagai kualitas tinggi. Ambang 60 bisa menjadi target praktis yang berguna, tetapi itu merupakan pilihan kebijakan kualitas, bukan definisi universal tentang gambar yang layak. Selalu periksa hasil yang representatif pada ukuran tampilan sebenarnya.
Mengapa optimalisasi menyeluruh per gambar membutuhkan banyak sumber daya
Pengoptimal yang ketat dapat mengenkode satu gambar berulang kali dengan nilai kualitas berbeda, mengukur setiap kandidat menggunakan SSIMULACRA2, lalu menyimpan hasil terkecil yang masih memenuhi syarat. Cara ini sering menghasilkan kompresi yang lebih efisien karena gambar yang mudah dikompresi mungkin sudah lolos pada kualitas rendah, sementara gambar yang sulit membutuhkan kualitas lebih tinggi.
Kelemahannya adalah jumlah proses enkode. Jika terdapat N gambar dan setiap gambar memerlukan K kandidat enkode untuk menemukan pengaturan yang dapat diterima, jumlah prosesnya berada pada orde N × K, belum termasuk dekode dan penghitungan skor. Dalam praktiknya, proses enkode AVIF dengan tingkat usaha tinggi dapat mendominasi biaya komputasi; menjalankan metrik SSIMULACRA2 sendiri belum tentu merupakan bagian yang mahal.
Memilih satu nilai kualitas untuk setiap folder mengurangi pekerjaan pencarian, tetapi tetap memerlukan pengambilan sampel, pengukuran, dan pemeliharaan pengaturan terpisah untuk berbagai kelompok. Untuk koleksi dengan kebutuhan penyajian yang konsisten dan toleransi tertentu terhadap hasil yang menyimpang, kompleksitas tambahan itu mungkin tidak sepadan.
| Strategi | Pekerjaan kalibrasi | Konsekuensi utama |
|---|---|---|
| Kualitas adaptif per gambar | Beberapa kandidat enkode untuk setiap gambar | Kontrol terperinci, biaya kalibrasi tertinggi |
| Kualitas adaptif per kelompok | Beberapa kandidat enkode untuk sampel tiap kelompok | Pekerjaan lebih sedikit, tetapi konfigurasi lebih rumit dan hasil bergantung pada kelompok |
| Satu nilai kualitas tetap | Kandidat enkode pada sampel kalibrasi terbatas | Operasional lebih sederhana, dengan sebagian gambar terkompresi terlalu banyak atau terlalu sedikit |
Perbedaan penting: skor rata-rata versus tingkat kelulusan
Sebelum memilih nilai kualitas, tentukan arti “cukup baik”. Dua tujuan yang sekilas mirip menghasilkan pengaturan enkoder yang sangat berbeda:
- Target skor rata-rata: rata-rata SSIMULACRA2 pada sampel sebaiknya sekitar 60.
- Target tingkat kelulusan: sekitar 90% gambar harus memperoleh SSIMULACRA2 ≥ 60, sedangkan sisanya boleh berada di bawah ambang tersebut.
Kedua tujuan itu tidak setara. Saat menghitung rata-rata, skor tinggi pada gambar sederhana dapat mengimbangi skor buruk pada gambar yang sulit. Misalnya, jika separuh gambar mendapat skor 75 dan separuh lainnya 55, rata-ratanya 65, tetapi hanya separuh gambar yang mencapai ambang 60.
Untuk alur kerja gambar web secara umum, ketika sebagian besar gambar harus terlihat layak dan sedikit kegagalan masih dapat ditoleransi, target tingkat kelulusan sering kali lebih berguna. Ukur:
pass_rate = count(scores >= 60) / count(all_scores)
Catat juga sebaran skor yang gagal dan periksa gambar dengan tampilan terburuk. Sampel dengan 9% gambar mendapat skor 59 sangat berbeda dari sampel dengan 9% gambar mendapat skor 30, meskipun tingkat kelulusannya sama.
Apa yang ditunjukkan oleh kalibrasi nyata
Dalam eksplorasi kalibrasi AVIF, prosedur adaptif memilih pengaturan kualitas yang berbeda untuk berbagai kelompok gambar, dengan rentang kira-kira dari pertengahan 30-an hingga pertengahan 40-an. Hal ini sesuai dugaan: sebagian kelompok berisi gambar yang sudah melewati ambang SSIMULACRA2 pada kualitas rendah, sedangkan beberapa sampel yang sulit memerlukan kualitas enkoder jauh lebih tinggi.
Namun, aturan adaptif tersebut lebih ketat daripada kebutuhan penyajian yang sebenarnya. Aturan itu berupaya membuat hampir semua gambar yang diuji dalam setiap kelompok mencapai ambang, dengan toleransi yang sangat terbatas untuk gambar yang menyimpang. Pendekatan ini melindungi gambar yang sulit, tetapi juga dapat menaikkan kualitas untuk seluruh kelompok hanya karena satu sampel yang tidak biasa.
Ketika pengukuran ditinjau ulang berdasarkan tujuan lain—sekitar sembilan dari sepuluh gambar mencapai SSIMULACRA2 60 atau lebih—satu nilai kualitas AVIF sekitar 39–40 tampak sebagai kompromi yang masuk akal. Dalam perbandingan tersebut, 39 lebih mengutamakan ukuran keluaran yang kecil, sedangkan 40 memberi ruang lebih bagi gambar yang skornya mendekati ambang. Nilai-nilai itu berasal dari data kalibrasi dan analisis lanjutan; konversi penuh dengan kualitas tetap dan validasi independen terhadap keseluruhan koleksi belum dilakukan. Manfaat pasti terhadap ukuran berkas dari penggunaan 39 dibandingkan 40 juga belum ditetapkan.
Pelajarannya bukan bahwa kualitas AVIF 39 atau 40 selalu cocok. Intinya, pengaturan tetap dapat menjadi pilihan yang wajar jika sesuai dengan distribusi kualitas yang dipilih secara eksplisit. Enkoder, komposisi gambar, alur pemrosesan warna, atau ambang perseptual yang berbeda dapat menghasilkan jawaban yang berbeda pula.
Cara mengalibrasi kualitas AVIF satu kali
- Tentukan tingkat kegagalan yang dapat diterima. Misalnya, syaratkan sekitar 90% gambar mencapai SSIMULACRA2 ≥ 60. Putuskan apakah itu target yang fleksibel atau persyaratan rilis yang ketat.
- Susun sampel yang benar-benar representatif. Sertakan beragam dimensi, format sumber, gradasi warna, tepi tajam, tekstur, dan gambar dengan sedikit detail. Ambil sampel acak dari beban kerja yang sebenarnya dan gunakan stratifikasi jika ada kategori yang berisiko tidak terwakili. Memilih berkas hanya berdasarkan jumlah byte terkompresi per piksel merupakan heuristik yang berguna untuk mencakup rentang karakteristik, bukan jaminan keterwakilan perseptual.
- Uji rentang kecil nilai kualitas enkoder. Mulailah dengan beberapa kandidat di sekitar pengaturan yang secara visual sudah dapat diterima, alih-alih mencoba seluruh skala kualitas. Misalnya, uji nilai yang berdekatan seperti 38, 39, 40, dan 42 pada gambar yang sama.
- Jaga agar alur enkode tetap identik. Pertahankan resolusi, orientasi, konversi warna, implementasi enkoder, tingkat usaha, subsampling kroma, kedalaman bit, dan prapemrosesan. Jika Anda menambahkan tanda air, gambar referensi harus memuat tanda air dan transformasi yang sama sebelum dibandingkan dengan hasil kompresi.
- Catat skor dan ukuran secara bersamaan. Untuk setiap kandidat, hitung proporsi gambar dengan skor minimal 60, distribusi skor di bawah ambang, serta total byte hasil enkode untuk sampel yang sama. Jangan menyimpulkan penghematan bandwidth hanya dari angka kualitas.
- Periksa gambar yang gagal. Amati wajah, teks, garis tipis, gradasi warna, dan detail lain yang penting untuk penyajian yang dituju. Periksa pada ukuran tampilan yang realistis, bukan hanya melalui perbandingan yang diperbesar.
- Pilih kualitas terendah yang memenuhi kebutuhan, lalu validasi. Uji kandidat tersebut pada sampel acak terpisah yang tidak digunakan saat memilihnya. Jika tidak tercapainya target 90% akan berdampak besar, sisakan margin keamanan dan perhitungkan ketidakpastian sampel dengan serius. Jika kegagalan sesekali dapat diterima, nilai yang lebih agresif mungkin masuk akal.
Kalibrasi satu kali bukan berarti mengabaikan perubahan berikutnya. Ulangi pemeriksaan pada sampel kecil ketika komposisi sumber, dimensi gambar, versi enkoder, transformasi penyajian, atau kebutuhan visual berubah.
Perbandingan sederhana dengan Sharp dan SSIMULACRA2
Contoh yang disederhanakan ini memakai enkoder AVIF milik Sharp untuk membuat dua kandidat dari input yang sama. Ini adalah contoh kalibrasi, bukan pernyataan bahwa semua proyek harus menggunakan opsi enkoder atau nilai kualitas tersebut. Jalankan sebagai modul ES setelah memasang sharp.
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`);
}
Kemudian bandingkan kandidat yang sudah didekodekan dengan referensi yang telah disiapkan:
ssimulacra2 reference.png candidate-q39.png
ssimulacra2 reference.png candidate-q40.png
Untuk pengujian nyata, otomatisasikan proses tersebut pada seluruh gambar sampel dan kumpulkan skor serta ukuran berkas untuk setiap kandidat. Jika alur produksi Anda mengubah ukuran, memangkas, menambahkan lapisan, atau mentransformasikan gambar dengan cara lain, terapkan operasi yang sama pada referensi pembanding. Jika tidak, SSIMULACRA2 juga akan mengukur sebagian dampak transformasi, bukan hanya penurunan kualitas akibat kompresi.
Setelah kualitas global dipilih, proses produksi menjadi konversi AVIF satu kali enkode per gambar seperti biasa. Anda tidak perlu lagi mencari kualitas untuk setiap gambar atau folder. Ini menghilangkan percobaan enkode berulang, tetapi bukan biaya satu proses enkode yang masih diperlukan untuk setiap gambar keluaran.
Kapan satu nilai kualitas AVIF bukan pilihan yang tepat
Pengaturan tetap adalah kompromi, bukan nilai optimal universal. Enkode adaptif tetap berguna ketika batas minimal kualitas setiap gambar diatur secara kontraktual, kegagalan visual tidak dapat diterima, sumber gambar sangat beragam, atau penghematan setiap byte membenarkan tambahan komputasi dan kompleksitas implementasi.
Berhati-hatilah terutama saat menangani jenis gambar campuran. Foto, grafis datar, teks berukuran kecil, dan sumber yang sebelumnya sudah dikompresi belum tentu bereaksi sama. Jika suatu kategori terus-menerus gagal dalam pengujian penerimaan, beberapa profil khusus berdasarkan format atau konten mungkin lebih efisien daripada kedua pendekatan ekstrem: satu kualitas universal atau optimalisasi penuh per gambar.
Bedakan juga kecepatan enkoder dari kecepatan kalibrasi. Menggunakan satu nilai kualitas menghindari percobaan berulang, tetapi mengenkode seluruh gambar dengan effort yang sangat tinggi tetap dapat menuntut komputasi besar. Profil enkoder dengan tingkat usaha lebih rendah juga merupakan optimalisasi yang sah, asalkan Anda melakukan kalibrasi ulang: hubungan antara pengaturan kualitas dan skor dapat berubah ketika opsi enkoder berubah.
Aturan praktisnya
Gunakan SSIMULACRA2 sebagai alat kalibrasi, bukan selalu sebagai langkah produksi wajib bagi setiap gambar. Pilih target kualitas yang mencerminkan cara gambar akan dilihat, enkode sampel representatif pada beberapa pengaturan yang berdekatan, bandingkan skor perseptual sekaligus jumlah byte, periksa hasil yang gagal, dan tetapkan pengaturan terendah yang memenuhi toleransi Anda.
Dalam satu eksplorasi kalibrasi, kualitas AVIF sekitar 39–40 tampak sebagai titik berhenti yang masuk akal. Keputusan itu dibuat berdasarkan ambang dan toleransi tertentu, bukan preset universal atau hasil tolok ukur yang sudah terkonfirmasi untuk seluruh koleksi. Pelajaran yang lebih umum dan dapat diterapkan adalah: ketika waktu dan sumber daya komputasi terbatas, kualitas tetap yang telah divalidasi dengan cermat sering kali lebih praktis daripada terus-menerus mengoptimalkan setiap gambar secara terpisah.