15 poin oleh xguru 2022-02-23 | Belum ada komentar. | Bagikan ke WhatsApp
  • Untuk membuat kecepatan GIF animasi secepat mungkin, Frame Delay harus diatur ke 20ms, bukan 10ms. Mengapa begitu?
  • Animasi mulai didukung sejak GIF 89a
    • Delay dapat diatur untuk tiap frame
    • Waktu tunggu sebelum berpindah ke frame berikutnya dinyatakan dalam satuan 1/100 detik (10ms)
    • Dapat diatur dari 0 hingga 0xffff (delay sekitar 10 menit)
  • Apa yang terjadi jika diatur ke 0? Spesifikasi tidak memberi jawaban yang persis, tetapi menyebutkan dua hal
    • Saat decoding GIF, tiap frame harus diproses tanpa delay
    • Nilai delay hanya digunakan ketika bukan 0
    • Artinya, jika diatur ke 0 maka frame tersebut harus diperlakukan sebagai "digabung dengan frame sebelumnya dan diproses sebagai gambar statis"
      • Dengan begitu, ukuran bisa diperkecil dengan memasukkan frame yang hanya menyimpan bagian yang bergerak
  • Masalahnya, tidak ada yang mendukung delay 0
    → Sebagian besar program yang mendukung GIF memaksa nilai 2 (20ms) ke bawah menjadi nilai yang lebih besar
    • QT menyesuaikan dengan IE/FF: (delay < 2 ? 10: delay) * 10
    • Chrome menyesuaikan dengan FF: untuk mencegah iklan berkedip menggunakan 0, nilai 10ms ke bawah diperlakukan sebagai 100ms
    • FF menyesuaikan dengan IE dan Opera: jika 0~10, disesuaikan menjadi 100ms
    • IE 5 menyesuaikan dengan Netscape yang lambat: jika 50 ke bawah maka dipatok ke 100
  • Kesamaan dari kode-kode di atas adalah bahwa 0~1 tidak disesuaikan ke 2, melainkan ke 10 (100ms)
    • Artinya, 10 sama dengan 100, dan 20 adalah yang paling cepat

Kesimpulan

  • Tidak ada yang merender sesuai spesifikasi GIF, padahal menurut saya seharusnya begitu
  • Saat ini, untuk mendapatkan GIF tercepat, gunakan 2 (20ms) alih-alih 1 (10ms)
  • Jika semua orang mengimplementasikan spesifikasi GIF dengan benar
    • GIF dengan delay 10ms bisa didukung
    • Satu frame tunggal animasi GIF bisa mendukung lebih dari 256 warna
    • Kebingungan bahwa memberi delay kecil justru membuatnya lebih lambat bisa dihilangkan
    • Kita bisa membuat GIF yang hanya berisi area yang diperbarui per frame untuk meningkatkan rasio kompresi

Belum ada komentar.

Belum ada komentar.