If-Koubou

Je li PNG format bez gubitka jer ima komprimirani parametar?

Je li PNG format bez gubitka jer ima komprimirani parametar? (Kako da)

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 zapravo nije bez gubitka? Danas SuperUser Q & A pomaže razjasniti zbunjenost znatiželjnom čitatelju.

Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.

Pitanje

SuperUser čitač pkout želi znati je li kvaliteta PNG slike pod utjecajem odabrane razine kompresije:

Kao što sam je razumio, PNG datoteke koriste kompresiju bez gubitaka. Međutim, kada koristim uređivača 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 gubitka? Može li mi netko objasniti ovo? Dobivam li ponašanje bez gubitaka samo kada postavim razinu kompresije na 9?

Postoji li razlika u kvaliteti slike ovisno o razini kompresije koju odaberete?

Odgovor

Suradnici SuperUser-a LordNeckbeard i jjlin imaju odgovor za nas. Prvo, Lord Neckbeard:

PNG je komprimiran, ali bez gubitka

Razina kompresije je kompromis između veličine datoteke i brzine kodiranja / dekodiranja. Da bi pretjerano generalizirali, čak i formati slikovnih slika, kao što je FLAC, imaju slične pojmove.

Različite razine kompresije, isti dekodirani output

Iako su veličine datoteke različite zbog različitih razina kompresije, stvarni dekodirani izlaz će biti identičan. Možete usporediti MD5 ishešene dekodirane izlaze s ffmpeg pomoću MD5 muxera. Ovo se najbolje prikazuje s nekim primjerima.

Izradi PNG datoteke

  • Prema zadanim postavkama, ffmpeg će koristiti -compression_level 100 za PNG izlaz.
  • Brzo, neuredno ispitivanje pokazalo je da 100 (najviša razina kompresije) traje otprilike tri puta duže za kodiranje i pet puta dulje od dekodiranja od 0 (najniža razina kompresije) u ovom primjeru.

Usporedba veličine datoteke

Dekodirati PNG datoteke i prikazati MD5 Hashes

Budući da su oba hashe iste, možete biti sigurni da su dekodirani izlazi (ne komprimirani sirovi datoteke) točno isti.

Slijedi odgovor jjlina:

PNG je bez gubitaka. GIMP najvjerojatnije neće koristiti najbolji izbor riječi u ovom slučaju.

Razmislite o tome kao kvalitetu kompresije ili stupanj kompresije, S nižom kompresijom dobivate veću datoteku, ali je potrebno manje vremena za proizvodnju, a kod veće kompresije dobivate manju datoteku koja traje duže.

Obično dobivate smanjenje povrata, tj. Ne toliko smanjenje veličine u usporedbi s povećanjem vremena koje je potrebno prilikom uspona do najviših razina kompresije, ali to ovisi o vama.

Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.