/ / Onko PNG-muoto häviötön, koska siinä on pakkausparametri?

Onko PNG-muoto häviötön, koska siinä on pakkausparametri?

Miten-on-the-png-formaatti-häviöttömästi koska-se-on-a-puristus-parametri-00

PNG-muodon oletetaan olevan häviötön-muodossa, mutta kun tallennat kuvan PNG-tiedostona, sinua pyydetään valitsemaan pakkaustaso. Tarkoittaako tämä, että PNG-muoto ei oikeastaan ​​ole häviötöntä? Tämän päivän SuperUser Q&A -viesti auttaa selvittämään uteliaan lukijan hämmennyksen.

Tämän päivän kysymys- ja vastausistunto on meille SuperUser-palvelun myötä - Stack Exchange -yksikön alaosasto, joka on yhteisön vetämä Q & A-verkkosivustojen ryhmittely.

Kysymys

SuperUser-lukija pkout haluaa tietää, vaikuttaako valittu pakkaustaso PNG-kuvan laatuun:

Kuten ymmärrän, PNG-tiedostot käyttävät häviötöntäpuristus. Kuitenkin, kun käytän kuvankäsittelyohjelmaa, kuten Gimp, ja yritän tallentaa kuvan PNG-tiedostona, se pyytää pakkaustasoa, joka vaihtelee välillä 0–9.

Jos sillä on pakkausparametri, joka vaikuttaapakatun kuvan visuaalinen tarkkuus, miten PNG sitten häviää? Voiko joku selittää tämän minulle? Saanko häviötöntä käyttäytymistä vain, kun asetan pakkaustasoksi 9?

Onko kuvan laadussa eroa valitsemasi pakkaustason mukaan?

Vastaus

SuperUser-avustajilla LordNeckbeardilla ja jjlinillä on vastaus meille. Ensin, LordNeckbeard:

PNG on pakattu, mutta häviötön

Pakkaustaso on kompromissi tiedostokokojen ja koodaus- / dekoodausnopeuden välillä. Liian yleistämiseksi jopa muilla kuin kuvatiedostomuodoilla, kuten FLAC, on samanlaiset käsitteet.

Eri pakkaustasot, sama dekoodattu lähtö

Vaikka tiedostokoko on erilainen johtuenerilaiset pakkaustasot, todellinen dekoodattu lähtö on identtinen. Voit verrata dekoodattujen ulostulojen MD5-tiivisteitä ffmpeg: ään MD5-soitinta käyttämällä. Tämä näkyy parhaiten joissain esimerkeissä.

Luo PNG-tiedostoja

miten-on-the-png-formaatti-häviöttömästi koska-se-on-a-puristus-parametri-01

  • Oletuksena ffmpeg käyttää -compression_level 100 PNG-ulostuloon.
  • Nopea, huolimaton testi osoitti, että 100: lla (korkein pakkaustaso) koodaus kesti noin kolme kertaa pidempään ja dekoodauksessa viisi kertaa kauemmin kuin 0 (alin pakkaustaso) tässä esimerkissä.

Vertaa tiedostokokoa

miten-on-the-png-formaatti-häviöttömästi koska-se-on-a-puristus-parametri-02

Dekooda PNG-tiedostot ja näytä MD5-hashit

miten-on-the-png-formaatti-häviöttömästi koska-se-on-a-puristus-parametri-03

Koska molemmat tiivisteet ovat samat, voit olla varma, että dekoodatut lähdöt (pakkaamattomat raakatiedostot) ovat täsmälleen samat.

Seurasi jjlinin vastaus:

PNG on häviötön. GIMP ei todennäköisesti käytä parhainta sanamuotoa tässä tapauksessa.

Ajattele sitä nimellä pakkauksen laatu tai pakkaustaso. Pienemmällä pakkauksella saat suuremman tiedoston, mutta sen tuottaminen vie vähemmän aikaa, kun taas suuremmalla pakkauksella saat pienemmän tiedoston, jonka tuottaminen vie kauemmin.

Tyypillisesti saat pieneneviä tuottoja, ts. Koon pieneneminen ei ole yhtä suuri verrattuna ajan lisääntymiseen, joka kuluu korkeimpaan pakkaustasoon nousemiseen, mutta se on sinun.


Onko jotain lisättävää selitykseen? Kuuntele kommentteja. Haluatko lukea lisää vastauksia muilta teknisesti hyödyllisiltä Stack Exchange -käyttäjiltä? Katso koko keskusteluketju täältä.