Kas PNG-vorming on kadunud, kuna sellel on tihendusparameeter?

PNG-vorming peaks olema kadudeta vorming, kuid kui salvestate pildi PNG-failina, palutakse teil valida tihendusaste. Kas see tähendab, et PNG-vorming pole tegelikult ikkagi kadudeta? Tänane SuperUseri Q&A postitus aitab uudishimuliku lugeja jaoks segadust puhastada.

Tänane küsimuste ja vastuste seanss saabub meile SuperUseri kaudu - see on Stack Exchange'i alajaotus, mis on kogukonna juhitud Q&A veebisaitide rühmitus.

Küsimus

SuperUseri lugeja pkout soovib teada, kas valitud tihendusaste mõjutab PNG-pildi kvaliteeti:

Nagu ma aru saan, kasutavad PNG-failid kadudeta tihendamist. Kui ma aga kasutan sellist pildiredaktorit nagu Gimp ja üritan pilti PNG-failina salvestada, nõuab see tihendustaset vahemikus 0 kuni 9.

Kui sellel on tihendusparameeter, mis mõjutab tihendatud pildi visuaalset täpsust, kuidas on siis PNG kadudeta? Kas keegi saaks mulle seda selgitada? Kas mul on kadudeta käitumine ainult siis, kui seadsin tihendustasemeks 9?

Kas pildi kvaliteedis on erinev sõltuvalt teie valitud tihendusastmest?

Vastus

SuperUseri kaastöötajatel LordNeckbeardil ja jjlinil on meie jaoks vastus. Kõigepealt üles, LordNeckbeard:

PNG on tihendatud, kuid kadudeta

Pakkimistase on kompromiss faili suuruse ja kodeerimise / dekodeerimise kiiruse vahel. Liigseks üldistamiseks on isegi mitte-pildivormingutel nagu FLAC sarnased mõisted.

Erinevad tihendustasemed, sama dekodeeritud väljund

Kuigi failide suurused on erineva tihendustaseme tõttu erinevad, on tegelik dekodeeritud väljund identne. Dekodeeritud väljundite MD5 räsi saate võrrelda ffmpegiga, kasutades MD5 muxerit. Seda on kõige parem näidata mõne näite abil.

PNG-failide loomine

  • Vaikimisi kasutab ffmpeg PNG-väljundiks -compression_level 100.
  • Kiire ja lohakas test näitas, et 100 (kõrgeim tihendusaste) kodeerimine võttis selles näites umbes kolm korda kauem ja viis korda kauem kui 0 (madalaim tihendusaste).

Võrdle faili suurust

Dekodeerige PNG-failid ja kuvage MD5 räsi

Kuna mõlemad räsid on samad, võite olla kindel, et dekodeeritud väljundid (tihendamata toored failid) on täpselt samad.

Järgneb jjlini vastus:

PNG on kadudeta. GIMP ei kasuta antud juhul tõenäoliselt parimat sõnastuse valikut.

Mõelge sellele kokkusurumise kvaliteet või kokkusurumise tase. Väiksema tihendamise korral saate suurema faili, kuid selle tootmine võtab vähem aega, suurema tihendamise korral aga väiksema faili, mille tootmine võtab kauem aega.

Tavaliselt saate vähenevat tootlust, st mitte nii suurt suuruse vähenemist kui aja suurenemine, mis kulub kõrgeimatele tihendustasemetele minnes, kuid see on teie otsustada.

Kas teil on selgitusele midagi lisada? Heli kommentaarides välja. Kas soovite lugeda rohkem vastuseid teistelt tehnikatarkust pakkuvatelt Stack Exchange'i kasutajatelt? Tutvuge täieliku arutelulõngaga siin.