30Aug

Ar PNG formatas nesikeičia, nes jis turi kompresijos parametrą?

kaip-is-the-png-format-lossless-since-it-has-a-compression-parametras-00

PNG formatas turėtų būti be nuostolių formatas, tačiau kai išsaugote vaizdą kaip PNG failą, jūsų prašoma pasirinkti suspaudimo lygį.Ar tai reiškia, kad PNG formatas iš tikrųjų yra be nuostolių?Šiandien "SuperUser Q &" įrašas padeda išsiaiškinti įdomų skaitytoją.

Šiandienos klausimas &Atsakymų sesija ateina pas mus iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės pasidalijimo.

Klausimas

SuperUser skaitytuvas pkout nori žinoti, ar PNG atvaizdo kokybė priklauso nuo pasirinkto suspaudimo lygio:

. Kaip suprantu, PNG failai naudojami be nuostolingumo suspaudimo. Tačiau kai naudoju vaizdo redaktorių, pvz., "Gimp", ir bando išsaugoti vaizdą kaip PNG failą, jis prašo suglaudinimo lygį nuo 0 iki 9.

Jei jis turi suspaudimo parametrą, kuris turi įtakos suspausto vaizdo tikslumuivaizdas, kaip tada PNG be nuostolių?Ar kas nors, paaiškink tai man? Ar man be nuostolingumo elgiasi tik tada, kai aš nustatau suspaudimo lygį iki 9?

Ar vaizdų kokybė skiriasi priklausomai nuo jūsų pasirinkto suspaudimo lygio?

Atsakymas

SuperUser autoriai LordNeckbeard ir jjlin atsako už mus. Pirmiausia į viršų, LordNeckbeard:

PNG yra suspaustas, bet Lossless

. Suspaudimo lygis yra kompromisas tarp failo dydžio ir kodavimo / dekodavimo greičio. Kad pernelyg apibendrintumėte, net ne vaizdo formatai, pvz., FLAC, turi panašias sąvokas.

skirtingi suspaudimo lygiai, ta pati dekoduota išvestis

Nors failų dydžiai yra skirtingi dėl skirtingų suspaudimo lygių, faktinė dekoduota išvestis bus identiška. Galite palyginti iššifruotų išvesčių MD5 maišus su ffmpeg naudodami MD5 muxerį.Tai geriausiai parodyta su keletu pavyzdžių.

Sukurti PNG failus

how-is-the-png-format-lossless-since-it-has-a-compression-parameter-01

  • Pagal numatytuosius nustatymus ffmpeg naudos -compression_level 100 PNG išėjimui.
  • Greitas, apsunkintas bandymas parodė, kad 100( didžiausias suspaudimo lygis) tris kartus ilgiau trunka, kad būtų galima koduoti ir penkis kartus ilgiau dekoduoti šiame pavyzdyje negu 0( mažiausias suspaudimo lygis).

Palyginti failo dydį

how-is-the-png-format-lossless-since-it-has-a-compression-parameter-02

Išskleisti PNG failus ir parodyti MD5 hashes

how-is-the-png-format-lossless-since-it-has-a-compression-parameter-03

Kadangi abu maišai yra vienodi, galite būti tikri, kad dekoduoti išėjimai( nesuspaustų žaliavų failai) yra vienodi.

Po to, kai jjlin atsakymas:

PNG yra be nuostolių.Šiuo atveju GIMP greičiausiai nenaudoja geriausio formuluotės pasirinkimo.

Pagalvokite apie tai kaip kompresijos arba suspaudimo lygio kokybę.Naudodami mažesnį suspaudimą, gaunate didesnį failą, tačiau jis pagamina mažiau laiko, o naudojant didesnį suspaudimą, gaunate mažesnį failą, kuris užtrunka ilgiau.

Paprastai gaunate mažėjančią grąžą, t. Y. Ne tokį didelį dydžio sumažėjimą, palyginti su laiko padidėjimu, pasiektu didžiausiu suspaudimo lygiu, bet tai priklauso jums.

Ar ką nors įtraukti į paaiškinimą?Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.