30Aug

Onko PNG-formaatti menettämättömiä, koska sillä on kompressioparametri?

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

PNG-formaatin on tarkoitus olla häviöttömästi muotoiltu, mutta kun tallennat kuvan PNG-tiedostona, sinua pyydetään valitsemaan pakkaustaso. Tarkoittaako tämä, että PNG-muoto ei todellakaan ole häviöttömiä?Nykyinen SuperUser Q & A -asiakirja auttaa selvittämään sekasortoa utelias lukija.

Tämän päivän kysymys &Vastausistunto tulee meille kohteliaasti SuperUser-osastoon Stack Exchange, yhteisöllinen ryhmittely Q & A verkkosivuilla.

Kysymys

SuperUser-lukija pkout haluaa tietää, vaikuttavatko PNG-kuvan laatuun valitun pakkaustason:

Kuten ymmärrän, PNG-tiedostot käyttävät häviöttömän pakkauksen. Kuitenkin, kun käytän kuvanmuokkausohjelmistoa, kuten Gimpia ja yritän tallentaa kuvan PNG-tiedostona, se pyytää pakkaustason, joka vaihtelee välillä 0 - 9.

Jos sillä on kompressioparametri, joka vaikuttaa pakatun tiedoston visuaaliseen tarkkuuteenkuva, miten PNG on häviöttömiä sitten? Voiko joku selittää minulle tämän? Saanko häviötöntä toimintaa vain, kun asetan pakkaustason 9: een?

Onko kuvan laadussa eroja valitun pakkaustason mukaan?

Vastaus

SuperUser-avustajat LordNeckbeard ja jjlin ovat meille vastaus. Ensin ylös, LordNeckbeard:

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

Puristustaso on kompromissi tiedoston koon ja koodauksen / dekoodauksen nopeuden välillä.Liian yleistymään jopa FLAC-kuvaformaatilla ei ole samanlaisia ​​käsitteitä.

Erilaiset kompressiotasot, sama dekoodattu lähtö

Vaikka tiedostokoot ovat erilaiset eri pakkaustasojen vuoksi, todellinen dekoodattu lähtö on identtinen. Voit verrata dekoodatuista lähdöistä MD5-lomakkeita ffmpeg: llä MD5-muxerilla. Tämä näkyy parhaiten muutamia esimerkkejä.

Luo PNG-tiedostot

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

  • Oletuksena ffmpeg käyttää -kompression_level 100 PNG-lähdölle.
  • Nopea, likainen testi osoitti, että 100( suurin puristustaso) kesti noin kolme kertaa kauemmin koodaamaan ja viisi kertaa pidempään dekoodaamaan kuin tässä esimerkissä( alin puristustaso).

Vertaa tiedoston kokoa

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

Decode PNG-tiedostot ja Näytä MD5-hälytykset

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

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

JJlinin vastaus:

PNG on häviöttömiä.GIMP ei todennäköisesti käytä parhaan mahdollisen sanamuodon valinta tässä tapauksessa.

Ajattele sitä -pakkauksen - tai -puristuksen tasona .Pienemmällä puristuksella saat isomman tiedoston, mutta sen tuottamiseen kuluu vähemmän aikaa, kun taas korkeammalla pakkauksella saat pienemmän tiedoston, joka kestää kauemmin tuottaa.

Tyypillisesti saat pienentävää tuottoa, eli ei ole niin paljon pienempiä kuin aika, joka kestää suurimman pakkaustason nousemisen, mutta se riippuu sinulle.

Onko sinulla jotain lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä?Katso koko keskusteluketju täältä.