Beranda » bagaimana » Apakah Format PNG Rugi Karena Memiliki Parameter Kompresi?

    Apakah Format PNG Rugi Karena Memiliki Parameter Kompresi?

    Format PNG seharusnya menjadi format lossless, tetapi ketika Anda menyimpan gambar sebagai file PNG, Anda diminta untuk memilih level kompresi. Apakah ini berarti format PNG sebenarnya tidak lossless? Posting Q&A SuperUser hari ini membantu menjernihkan kebingungan bagi pembaca yang ingin tahu.

    Sesi Tanya Jawab hari ini datang kepada kami berkat SuperUser-subdivisi Stack Exchange, pengelompokan situs web Q&A berbasis komunitas.

    Pertanyaan

    Pkout pembaca SuperUser ingin tahu apakah kualitas gambar PNG dipengaruhi oleh tingkat kompresi yang dipilih:

    Seperti yang saya pahami, file PNG menggunakan kompresi lossless. Namun, ketika saya menggunakan editor gambar seperti Gimp dan mencoba untuk menyimpan gambar sebagai file PNG, ia meminta tingkat kompresi berkisar antara 0 dan 9.

    Jika memiliki parameter kompresi yang memengaruhi presisi visual gambar yang dikompresi, lalu bagaimana PNG lossless? Bisakah seseorang tolong jelaskan hal ini kepada saya? Apakah saya mendapatkan perilaku lossless hanya ketika saya mengatur level kompresi ke 9?

    Apakah ada perbedaan kualitas gambar tergantung pada level kompresi yang Anda pilih?

    Jawabannya

    Kontributor SuperUser, LordNeckbeard dan jjlin, memiliki jawaban untuk kami. Pertama, LordNeckbeard:

    PNG Terkompresi, tapi Tanpa Rugi

    Level kompresi adalah pertukaran antara ukuran file dan kecepatan encoding / decoding. Untuk terlalu menggeneralisasi, bahkan format non-gambar seperti FLAC memiliki konsep serupa.

    Tingkat Kompresi Yang Berbeda, Output Dekode yang Sama

    Meskipun ukuran file berbeda karena tingkat kompresi yang berbeda, output yang didekode sebenarnya akan identik. Anda dapat membandingkan hash MD5 dari hasil dekode dengan ffmpeg menggunakan muxer MD5. Ini paling baik ditunjukkan dengan beberapa contoh.

    Buat File PNG

    • Secara default, ffmpeg akan menggunakan -compression_level 100 untuk output PNG.
    • Pengujian yang cepat dan ceroboh menunjukkan bahwa 100 (level kompresi tertinggi) memerlukan kira-kira tiga kali lebih lama untuk mengkodekan dan lima kali lebih lama untuk memecahkan kode dari 0 (level kompresi terendah) dalam contoh ini.

    Bandingkan Ukuran File

    Dekode File PNG dan Perlihatkan MD5 Hashs

    Karena kedua hash adalah sama, Anda dapat yakin bahwa output yang di-decode (file mentah yang tidak dikompresi) persis sama.

    Diikuti oleh jawaban dari jjlin:

    PNG tidak rugi. GIMP kemungkinan besar tidak menggunakan pilihan kata terbaik dalam kasus ini.

    Anggap saja sebagai kualitas kompresi atau tingkat kompresi. Dengan kompresi yang lebih rendah, Anda mendapatkan file yang lebih besar, tetapi membutuhkan waktu lebih sedikit untuk menghasilkan, sedangkan dengan kompresi yang lebih tinggi, Anda mendapatkan file yang lebih kecil yang membutuhkan waktu lebih lama untuk menghasilkan.

    Biasanya Anda mendapatkan pengembalian yang berkurang, mis. Tidak sebanyak penurunan ukuran dibandingkan dengan peningkatan waktu yang dibutuhkan saat naik ke tingkat kompresi tertinggi, tetapi terserah Anda.


    Punya sesuatu untuk ditambahkan ke penjelasan? Berbunyi dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang mengerti teknologi lainnya? Lihat utas diskusi lengkap di sini.