9 poin oleh GN⁺ 2025-06-26 | 2 komentar | Bagikan ke WhatsApp
  • Format file PNG direvisi kembali setelah 20 tahun dan mendapatkan kembali posisinya seperti dulu
  • Spesifikasi kali ini mencerminkan banyak teknologi modern, termasuk dukungan resmi untuk HDR, APNG (animasi), dan data Exif
  • Pengembangan dilakukan bersama oleh perusahaan IT besar dan perusahaan penyiaran seperti Adobe, Apple, dan Google
  • Spesifikasi terbaru sudah didukung oleh berbagai program seperti Chrome, Safari, dan Photoshop
  • Ke depannya juga direncanakan pembaruan tambahan seperti teknologi kompresi yang lebih baik serta encoding/decoding paralel

Pendahuluan: Kebangkitan dan pentingnya PNG

  • Baru-baru ini, format file PNG diperbarui dengan spesifikasi baru setelah keluar dari stagnasi selama sekitar 20 tahun
  • Lembaga-lembaga besar seperti Library of Congress AS, Library and Archives Canada, dan National Archives of Australia mengadopsi PNG sebagai format yang direkomendasikan secara resmi
  • Melalui spesifikasi baru ini, PNG mendapatkan kembali daya saing di pasar dan menunjukkan inovasinya

Fitur dan karakteristik baru

Dukungan HDR yang tepat dan kompatibilitas masa depan

  • PNG baru menyediakan dukungan HDR (High Dynamic Range)
  • Pada gambar perbandingan ruang warna Rec. 2020 dan Rec. 709, area yang lebih luas (segitiga luar) menunjukkan warna yang dapat direpresentasikan oleh gambar HDR
  • Informasi HDR ini hanya membutuhkan tambahan 4 byte (beserta overhead chunk PNG yang sudah ada)
  • Penulis awal seperti Chris Lilley dan para pakar teknis utama turut menjelaskan teknologi baru ini dengan jelas

Pengakuan resmi untuk APNG (Animated PNG)

  • Animated PNG (APNG), yang pertama kali diusulkan oleh Mozilla dan didukung Firefox, kini juga dimasukkan ke dalam spesifikasi resmi
  • Sebelumnya hanya didukung oleh sebagian perangkat lunak, tetapi sekarang telah diadopsi luas oleh berbagai program

Dukungan resmi untuk data Exif

  • Melalui Exif, metadata seperti hak cipta, informasi kamera, dan informasi GPS dapat disimpan
  • Hal ini menjamin utilitas tinggi dalam pembuatan dan penyimpanan gambar, serta pengelolaan hak cipta

Peningkatan umum dan perbaikan kesalahan

  • Perbaikan errata dan klarifikasi pada spesifikasi lama juga dilakukan bersamaan

Latar belakang dan proses pengembangan

  • Spesifikasi PNG terakhir dirilis sekitar 20 tahun lalu (3 setengah tahun sebelum peluncuran iPhone)
  • Pengembangan dimulai lagi setelah W3C Timed Text Working Group (standardisasi teknologi subtitle) mengajukan kebutuhan dukungan HDR pada PNG
  • Setelah usulan diajukan, perusahaan teknologi besar seperti Adobe, Apple, BBC, Google, MovieLabs, dan W3C ikut berpartisipasi bersama
  • Konsorsium yang kuat terbentuk, menjadikan PNG kembali sebagai format gambar generasi berikutnya
  • Saat ini, dua pembaruan lanjutan juga sudah sedang dipersiapkan

Kondisi penerapan yang sudah luas

  • Berbagai program seperti Chrome, Safari, Firefox, iOS/macOS, Photoshop, DaVinci Resolve, dan Avid Media Composer mendukung spesifikasi PNG terbaru
  • Dukungan juga meluas di perusahaan penyiaran serta perangkat keras dan tooling terkait
  • Newsticker, banner skor olahraga, dan gambar siaran lainnya adalah contoh penggunaan HDR PNG baru

Rencana ke depan

  • Pada edisi berikutnya, direncanakan peningkatan lebih lanjut pada kompatibilitas HDR & SDR
  • Selain itu, metode kompresi yang lebih ditingkatkan serta encoding/decoding paralel juga sedang didorong
  • Edisi keempat diperkirakan akan menjadi pembaruan yang relatif singkat, dan setelah itu edisi kelima akan dikembangkan berdasarkan riset teknologi kompresi

2 komentar

 
carnoxen 2025-06-26

Awalnya APNG ditolak oleh organisasi itu dengan alasan bukan standar untuk gambar, lalu sekarang baru diakui juga ya.

 
GN⁺ 2025-06-26
Opini Hacker News
  • Menyatakan bahwa dirinya adalah penulisnya, sekaligus mempersilakan pertanyaan kapan saja

    • Menekankan bahwa PNG kali ini bukan format yang sepenuhnya baru, melainkan versi pembaruan dari format yang ada

    • Menyatakan bahwa format ini menawarkan kompatibilitas mundur yang sangat tinggi

    • Menjelaskan bahwa program-program lama pun tetap bisa membaca file PNG baru sebaik mungkin, misalnya tetap dapat mengenali bahwa itu adalah foto apel merah

    • Merangkum poin inti karena cara kerja internal PNG bisa menimbulkan kebingungan

      • File PNG tersusun dari berbagai chunk data
      • Setiap chunk memiliki nama, sehingga program dapat begitu saja melewati chunk yang tidak dikenali atau tidak diperlukan
      • Menegaskan bahwa hanya ada satu image stream
    • Mengatakan akan bagus jika ada file contoh yang memanfaatkan fitur spesifikasi PNG baru, khususnya halaman demo tempat orang bisa langsung mengunduh animasi atau gambar HDR untuk menguji kompatibilitas program

    • Saya mendukung metaformat dan tooling umum

      • Memberi contoh struktur seperti Office Open XML atau ePub, yang bisa di-parse hanya dengan pustaka zip dan XML
      • Menjelaskan dari pengalaman bahwa PNG juga punya struktur yang hampir mirip dengan Interchange File Format (IFF), tetapi sebelumnya spesifikasinya sedikit berbeda sehingga tidak mungkin membuat parser IFF yang benar-benar generik untuk mem-parse PNG dan file keluarga IFF sekaligus
      • Menunjukkan bahwa IFF mudah diimplementasikan dan punya keunggulan dalam kompresi data, tetapi selama ini hanya dipakai untuk kegunaan terbatas seperti data game lama atau audio AIFF·RIFF, dan menilai salah satu alasan tooling umum tidak berkembang adalah kurangnya kompatibilitas antara PNG dan IFF
      • Mengungkapkan harapan bahwa jika PNGv3 membuat file PNG secara resmi menjadi file IFF, popularitas PNG bisa menjadi pijakan untuk memperluas ekosistem IFF umum (misalnya libiff) dan dipakai juga untuk mendefinisikan format-format baru
      • Menyebut bahwa dirinya pernah langsung membuat parser PNG/IFF, dan menambahkan bahwa tidak mudah sekadar memodifikasi PNG agar kompatibel dengan IFF sambil tetap menjaga kompatibilitas mundur, terutama untuk parser perangkat keras
      • Mengusulkan agar struktur IFF yang dimodifikasi dan dipakai PNG didokumentasikan secara terpisah sebagai standar metaformat baru, yakni IFF 2.0
      • Berharap IFF 2.0 meresmikan profil yang kompatibel dengan PNGv2 serta profil yang juga mencakup IFFv1 seperti AIFF/RIFF, demi mendorong tooling IFF umum
      • Lebih jauh lagi, dalam profil greenfield baru untuk format baru yang disesuaikan dengan lingkungan modern, misalnya pemeriksaan integritas bisa memakai hash modern alih-alih CRC, himpunan karakter nama chunk bisa diperluas, dan struktur untuk menyimpan informasi atribut setiap chunk bisa dibuat lebih efisien
      • Menilai bahwa struktur seperti ini sebaiknya tetap memungkinkan transcoding untuk IFFv1 dan PNGv2, dan bahwa deklarasi profil strategis seperti cara HTML5 menggabungkan dan mengakomodasi HTML4 dan XHTML adalah pendekatan yang diinginkan
      • Menekankan bahwa pada akhirnya fokusnya bukan pada detail, melainkan pada tujuan desain: meminimalkan perbedaan antara format lama dan baru serta memperluas ekosistem tooling
  • Di tool menggambar berbasis web saya, saya memakai trik menyimpan representasi JSON dokumen di field komentar PNG

    • Dengan begitu, file yang disimpan bisa langsung dipakai sebagai gambar, sekaligus bisa dimuat kembali ke editor

    • Keuntungannya, folder unduhan tidak dipenuhi file JSON yang sulit dikenali

    • Memang menarik, tetapi agak sulit menjelaskan kepada pengguna mengapa file disimpan sebagai .png, atau mengapa datanya hilang jika dibuka lalu disimpan lagi di Paint dan sejenisnya

    • Krita juga menyimpan pengaturan kuas dengan cara seperti ini, tetapi jika datanya terlalu banyak bisa menimbulkan masalah tak terduga

    • Macromedia Fireworks sudah memakai PNG sebagai format penyimpanan default sejak 20 tahun lalu

      • Tentu saja saat itu bukan JSON yang dimasukkan
    • Banyak frontend pembuat gambar AI juga menggunakannya dengan cara serupa

      • Prompt atau pengaturan disimpan di komentar gambar, sehingga hanya dengan membuka gambarnya saja pengaturan bisa diambil kembali, atau bahkan seluruh workflow bisa dimuat seperti di ComfyUI
      • Sebenarnya saya rasa cara seperti ini cukup umum dipakai di tool yang menangani gambar
    • Macromedia Fireworks menyimpan file Fireworks di dalam PNG,

      • file Illustrator(AI) dari Adobe sebenarnya adalah PDF,
      • dan file PSD Photoshop juga bisa disimpan di dalam TIFF
      • Karena itu, di Photoshop beberapa layer bisa terlihat, tetapi di software lain yang muncul hanya satu layer
  • Spesifikasi ini lebih dekat ke formalisasi dari sesuatu yang sebenarnya sudah diimplementasikan luas

    • Walaupun disebut PNG generasi berikutnya, kalau tetap membutuhkan decoder baru mungkin lebih pas disebut PNG2

    • JPEG-XL pada dasarnya sudah memenuhi syarat codec lossless yang diinginkan kebanyakan orang

      • Masalahnya ada pada kecepatan encoding/decoding dan sumber daya
    • Saat ini codec gambar lossless terbaik adalah HALIC

    • Jika melihat thread diskusi HALIC, sebenarnya LEA 0.5 disebut lebih unggul

    • Sejujurnya, saya sempat mengabaikan JPEG XL karena untuk sementara saya mengira format itu hanya untuk "gambar raksasa"

    • Saya memakai png di tool anotasi gambar computer vision (XLabel)

      • Label kelas disimpan langsung di metadata gambar sehingga tidak perlu menyimpan file teks terpisah
      • Ke depan saya ingin membuat format ekstensi yang cocok untuk kegunaan seperti ini
    • Kompresi lossless WebP termasuk yang terbaik di industri, tetapi tetap tidak dipakai luas

      • Ini menunjukkan bahwa yang lebih penting bukan sekadar performa terbaik pada kompresi lossless, melainkan adopsi ekosistem
    • Masalah kecepatan encoding/decoding bisa membaik seiring waktu

      • Ini benar-benar pernah terjadi dalam ekosistem jpg di masa lalu
  • Kabar terbaiknya adalah dukungan resmi untuk data Exif akhirnya dimasukkan

    • Sebelumnya pun data kustom bisa ditulis di header, tetapi dukungan Exif sangat disambut baik

    • Sebagai catatan, saya penasaran apakah Exif punya field untuk giroskop (rotasi) atau akselerasi (gravitasi)

      • Saya sering merasa sayang karena informasi semacam ini tidak ada di foto dari aplikasi kamera Google, padahal berguna untuk koreksi otomatis atau penyusunan panorama setelahnya
    • Ada field akselerasi (Exif.Photo.Acceleration) dan field untuk ketinggian (Exif.Photo.CameraElevationAngle), tetapi tidak mendukung ketiga sumbu sekaligus

      • Ada juga sensor lingkungan (kondisi sekitar), tetapi hanya item tertentu yang ditetapkan oleh penyusun spesifikasi
      • Exif.Photo.MakerNote adalah area bebas tempat vendor dapat menyimpan informasi yang mereka inginkan, dan batas ukurannya cukup besar sampai-sampai memadai untuk merekam data 9-sumbu
    • Exif bisa menimbulkan kebingungan tergantung bagaimana rotasi ditangani saat rendering gambar

      • Decoder lama dan baru bisa menampilkan gambar secara berbeda tergantung apakah rotasi Exif diterapkan atau tidak
      • Karena tidak ada rekomendasi decoder yang spesifik untuk rotasi Exif, bug seperti rotasi ganda pun sering terjadi, misalnya lingkungan desktop dan pustaka masing-masing sama-sama memprosesnya
      • Yang ada hanya kalimat rekomendasi yang ambigu: "jika decoder tidak dapat secara terpisah mengetahui apakah data Exif dapat dipercaya, maka data Exif harus dianggap hanya bernilai dokumenter"
      • Demi kompatibilitas mundur penuh, menurut saya dibutuhkan panduan yang tegas seperti "jangan pernah melakukan rotasi"
    • Tidak ada field standar untuk merekam data akselerometer atau sistem navigasi inersia kamera

    • Kenyataannya banyak situs web menghapus sebagian besar data Exif saat unggahan

      • Karena sebagian field berpotensi disalahgunakan untuk pelacakan lokasi atau pelanggaran privasi
    • Secara pribadi, saya berharap orang memakai XMP alih-alih Exif

      • Struktur Exif aneh dan pada dasarnya seperti menyisipkan gambar TIFF ke dalam PNG
  • Spesifikasi PNG kali ini secara resmi mengodifikasi praktik yang sudah luas digunakan

    • Codec terbaik harus bisa berjalan di mana saja, di aplikasi apa pun, di shell OS, API, Linux, dan sebagainya

    • Format seperti HEIC atau AV1 bahkan sulit dipratinjau jika tidak ada dukungan di tingkat OS

    • Format yang belum benar-benar berlaku umum tidak seharusnya menjadi default platform

    • Saya bekerja menangani banyak format gambar, termasuk format langka yang hanya dipakai di bidang tertentu

      • Mendukung berbagai format secara sungguh-sungguh adalah tantangan yang sangat besar
      • Bahkan pustaka yang di permukaan menulis dukungan jpg/tif/heic belum tentu benar-benar sanggup menangani, misalnya, jpeg 30GB atau seluruh metadata tanpa masalah
    • Spesifikasi baru ini justru bisa lebih membingungkan daripada HEIC atau AV1

      • Sebelum membuka file, kita sama sekali tidak tahu codec apa yang ada di dalam PNG tersebut
  • Ini pertama kalinya saya melihat HDR dipakai dengan makna "ruang warna yang lebih luas", bukan secara jelas sebagai perluasan kecerahan dan rasio kontras

  • Saya bertanya-tanya apakah ini sudah terlambat

    • Dan JPEG XL sebenarnya sudah menyediakan semua fitur ini (kompresi lossy/lossless, animasi, HDR, Exif, dll.) serta teknik kompresi canggih (finite state entropy, ZStandard, dan lain-lain)

    • Menurut saya tidak perlu ada pembaruan PNG terpisah, cukup pakai JPEG XL saja

    • Kenyataannya, "tinggal diadopsi saja" itu tidak sesederhana itu

      • Status dukungan browser untuk JPEG XL: setelah 5 tahun, baru ada satu browser yang mendukung
      • Jika vendor browser tidak mengimplementasikannya, pengembang dan pengguna pada praktiknya tidak bisa memakai format baru
    • Soal penyebutan "teknik kompresi canggih (ZStandard, dll.)"

      • ZStandard justru bisa kurang cocok untuk mengompresi angka dengan perubahan yang konsisten, misalnya gradasi
      • Bzip2 lebih baik di sisi ini, dan lebih cocok ketika dua variabel seperti perulangan dalam dan luar berkorespondensi dengan channel warna seperti pada contoh
      • Data dunia nyata memang tidak sesederhana itu karena ada noise, tetapi perbandingan algoritme seperti ini tetap saja berbeda dari kondisi nyata
    • "Tidak perlu pembaruan PNG, tinggal adopsi JPEG XL saja"

      • Kalau begitu, itu harus dibicarakan ke Google
      • Faktanya, Google menghentikan dukungan JPEG XL di Chrome (isu terkait), dan akibatnya perluasan ekosistem pun terhambat
    • Saya tidak paham mengapa harus membuat standar lain lagi (varian turunan)

      • Situasinya sudah cukup membingungkan, tetapi yang terus bertambah justru standar baru tanpa nilai jual yang khas
  • Sekarang GIF bisa digantikan oleh APNG (alpha blending + latar belakang transparan + kompresi lossless), jadi nuansa web era 2000-an bisa hidup kembali

    • Saya penasaran apakah Animated SVG juga punya standar

      • Dulu saya pernah melihat animasi SVG berbasis JavaScript, seperti avatar chatbot, tetapi saya tidak tahu apakah ada framework standar untuk itu
    • Animated SVG memang ada

    • Setahu saya sekarang banyak GIF diganti video tanpa suara (misalnya mp4) karena kompresinya lebih baik

      • Saya penasaran apakah Animated PNG benar-benar kompetitif dibanding format video seperti AV1
    • Di sebagian besar layanan yang mendukung unggahan GIF, dukungan untuk APNG atau animated WEBP hampir tidak ada

      • Dukungan backend praktis mendekati nol, dan itu sangat membuat frustrasi
    • Jika video pendek diubah menjadi grafis animasi, sejak awal WEBP sebenarnya lebih baik daripada APNG

      • Jika GIF dipakai sebagai format perantara, APNG masih lumayan kompetitif
      • Sekarang AVIF adalah pilihan terbaik
    • Beberapa tahun lalu saya pernah memakai pustaka Lottie (Bodymovin)

      • Animasi dibuat di Adobe After Effects, lalu diekspor sebagai svg dan json, kemudian lottie JS memudahkan penerapan animasi di web
      • Saya merasa tool dan DX (pengalaman pengembang) untuk animasi web berbasis vektor masih kurang matang
      • Saya juga penasaran dengan informasi tooling dan DX di sisi animated PNG
  • Dari klaim di PR bahwa "banyak program sudah mendukung spesifikasi PNG baru"

    • Pernyataan bahwa Photoshop mendukung APNG itu keliru

      • Saya kecewa karena pengenalan APNG adalah item kedua di What's new, tetapi kenyataannya Photoshop tidak mendukungnya
    • Photoshop mendukung bagian HDR, tetapi tidak mendukung bagian APNG

  • Seseorang menyebut bahwa orang perlu mengelola ketidakpastian waktu/tanggal secara konsisten lewat software

    • Perlu ada cara menangani informasi waktu yang samar seperti "foto dipindai pada 2025, isinya sekitar Paskah, antara 1920~1940"

    • EXIF memiliki field DateTimeDigitized

    • Di Google Photos dan Apple Photos, tanggal bisa ditetapkan langsung, tetapi sebenarnya tidak disimpan ke EXIF

      • Saat berpindah platform, gambar tanpa EXIF mengalami masalah karena informasi tanggal ikut hilang