Ar PNG formatas nėra prarastas, nes jis turi suspaudimo parametrą?

Manoma, kad PNG formatas yra be nuostolių, tačiau išsaugant vaizdą kaip PNG failą, jūsų paprašoma pasirinkti glaudinimo lygį. Ar tai reiškia, kad PNG formatas iš tikrųjų nėra nuostolingas? Šiandien pateikiamas „SuperUser“ klausimų ir atsakymų įrašas padeda išaiškinti painiavą smalsiam skaitytojui.

Šiandien vykstanti klausimų ir atsakymų sesija yra „SuperUser“ - „Stack Exchange“, bendruomenės valdomos Q&A svetainių grupės, padalinys.

Klausimas

„SuperUser“ skaitytojo paketas nori sužinoti, ar pasirinktas glaudinimo lygis turi įtakos PNG vaizdo kokybei:

Kaip suprantu, PNG failai naudoja glaudinimą be nuostolių. Tačiau kai naudoju vaizdų redagavimo priemonę, pvz., „Gimp“, ir bandau išsaugoti vaizdą kaip PNG failą, jis prašo nustatyti glaudinimo lygį nuo 0 iki 9.

Kaip tada yra PNG nuostoliai, jei jis turi suglaudinimo parametrą, kuris turi įtakos suglaudinto vaizdo vizualiniam tikslumui? Ar kas nors gali man tai paaiškinti? Ar elgiuosi be nuostolių tik tada, kai nustatau suspaudimo lygį iki 9?

Ar skiriasi vaizdo kokybė priklausomai nuo pasirinkto glaudinimo lygio?

Atsakymas

„SuperUser“ bendraautoriai LordNeckbeard ir jjlin turi mums atsakymą. Pirmiausia, LordNeckbeard:

PNG yra suspaustas, bet be nuostolių

Suspaudimo lygis yra kompromisas tarp failo dydžio ir kodavimo / dekodavimo greičio. Pernelyg apibendrinant, net ir ne vaizdo formatai, tokie kaip FLAC, turi panašias sąvokas.

Skirtingi suspaudimo lygiai, ta pati dekoduota išvestis

Nors failų dydžiai skiriasi dėl skirtingų suspaudimo lygių, faktinė iškoduota išvestis bus identiška. Naudodami MD5 duslintuvą, galite palyginti iššifruotų išėjimų MD5 maišos su ffmpeg. Tai geriausia parodyti su keliais pavyzdžiais.

Sukurti PNG failus

  • Pagal numatytuosius nustatymus „ffmpeg“ PNG išvesties naudos -compression_level 100.
  • Greitas, aplaistytas testas parodė, kad šiame pavyzdyje 100 (aukščiausias suspaudimo lygis) užkoduoti reikėjo maždaug tris kartus ilgiau, o dekoduoti - penkis kartus ilgiau nei 0 (žemiausias suspaudimo lygis).

Palyginkite failo dydį

Iškoduokite PNG failus ir parodykite MD5 maišas

Kadangi abu maišos yra vienodi, galite būti tikri, kad iššifruoti išėjimai (nesuglaudinti neapdoroti failai) yra visiškai vienodi.

Po to atsakė jjlin:

PNG yra be nuostolių. GIMP šiuo atveju greičiausiai nenaudoja geriausio žodžių pasirinkimo.

Pagalvokite apie tai, kaip kokybės suspaudimo ar lygio suspaudimo . Esant mažesniam glaudinimui, gausite didesnį failą, tačiau jo gamybai reikia mažiau laiko, tuo tarpu esant didesniam glaudinimui, mažesnį failą, kurio gamyba užtruks ilgiau.

Paprastai jūs gaunate mažėjančią grąžą, t. Y. Ne tiek sumažėja dydis, kiek laiko padidėjimas, kurio reikia, kai pasiekiate aukščiausią suspaudimo lygį, tačiau tai priklauso nuo jūsų.

Turi ką pridėti prie paaiškinimo? Nuskambėk komentaruose. Norite perskaityti daugiau atsakymų iš kitų technologijas išmanančių „Stack Exchange“ vartotojų? Peržiūrėkite visą diskusijų temą čia.