Početna » kako da » Je li PNG format bez gubitaka budući da ima parametar kompresije?

    Je li PNG format bez gubitaka budući da ima parametar kompresije?

    PNG format trebao bi biti format bez gubitaka, ali kada spremite sliku kao PNG datoteku, od vas se traži da odaberete razinu kompresije. Znači li to da PNG format ipak nije bez gubitaka? Današnja postova za pitanja i odgovore tvrtke SuperUser pomažu razjasniti konfuziju za znatiželjnog čitatelja.

    Današnja sesija pitanja i odgovora dolazi nam ljubaznošću SuperUser-a, podjele Stack Exchangea, grupiranja web-lokacija za pitanja i odgovore u zajednici.

    Pitanje

    Čitač SuperUser pkout želi znati utječe li kvaliteta PNG slike odabrana razina kompresije:

    Koliko ja razumijem, PNG datoteke koriste kompresiju bez gubitaka. Međutim, kada koristim uređivač slika kao što je Gimp i pokušavam spremiti sliku kao PNG datoteku, ona traži razinu kompresije u rasponu od 0 do 9.

    Ako ima parametar kompresije koji utječe na vizualnu preciznost komprimirane slike, kako je onda PNG bez gubitaka? Može li mi netko objasniti ovo? Mogu li dobiti ponašanje bez gubitaka samo kada postavim razinu kompresije na 9?

    Postoji li razlika u kvaliteti slike ovisno o odabranoj razini kompresije?

    Odgovor

    Suradnici SuperUser LordNeckbeard i jjlin imaju odgovor za nas. Prvo gore, LordNeckbeard:

    PNG je komprimiran, ali bez gubitaka

    Razina kompresije je kompromis između veličine datoteke i brzine kodiranja / dekodiranja. Za pretjerano generaliziranje, čak i ne-slikovni formati kao što je FLAC imaju slične koncepte.

    Različite razine kompresije, isti dekodirani izlaz

    Iako su veličine datoteka različite zbog različitih razina kompresije, stvarni dekodirani izlaz bit će identičan. Možete usporediti MD5 hasheve dekodiranih izlaza s ffmpeg korištenjem MD5 muxera. To se najbolje može vidjeti s nekoliko primjera.

    Izradite PNG datoteke

    • Po defaultu, ffmpeg će koristiti -compression_level 100 za PNG izlaz.
    • Brz, neuredan test pokazao je da je 100 (najviša razina kompresije) trajalo otprilike tri puta dulje za kodiranje i pet puta dulje za dekodiranje od 0 (najniža razina kompresije) u ovom primjeru.

    Usporedite veličinu datoteke

    Dekodiranje PNG datoteka i Prikaži MD5 hashes

    Budući da su oba hash-a ista, možete biti sigurni da su dekodirani izlazi (nekomprimirane sirove datoteke) potpuno isti.

    Slijedi odgovor iz jjlin:

    PNG je bez gubitaka. GIMP najvjerojatnije ne koristi najbolji izbor teksta u ovom slučaju.

    Misli o tome kao kvaliteta kompresije ili stupanj kompresije. Uz nižu kompresiju dobivate veću datoteku, ali za produkciju je potrebno manje vremena, dok s većom kompresijom dobivate manju datoteku koja traje duže za izradu.

    Obično se smanjuje prinos, tj. Ne smanjuje se veličina u usporedbi s povećanjem vremena koje je potrebno za podizanje na najviše razine kompresije, ali na vama je.


    Imate li što dodati objašnjenju? Zvuk isključen u komentarima. Želite li pročitati više odgovora od drugih tehničkih korisnika Stack Exchangea? Pogledajte cjelokupnu temu za raspravu ovdje.