Ang PNG Format ba ay Walang Pagkawala Dahil Mayroon Ito Isang Parameter ng Kompresyon?

Ang format na PNG ay dapat na isang lossless format, ngunit kapag nag-save ka ng isang imahe bilang isang PNG file, hihilingin sa iyo na pumili ng antas ng compression. Nangangahulugan ba ito na ang format na PNG ay talagang hindi mawawala pagkatapos ng lahat? Ang post ng SuperUser Q&A ngayon ay nakakatulong na malinis ang pagkalito para sa isang mausisa na mambabasa.

Ang sesyon ng Tanong at Sagot ngayon ay dumating sa amin sa kabutihang loob ng SuperUser — isang subdibisyon ng Stack Exchange, isang pangkat na hinihimok ng pangkat ng mga web site ng Q&A.

Ang tanong

Nais malaman ng SuperUser reader pkout kung ang kalidad ng isang imahe ng PNG ay apektado ng napiling antas ng compression:

Tulad ng pagkaunawa ko dito, ang mga PNG file ay gumagamit ng lossless compression. Gayunpaman, kapag gumagamit ako ng isang editor ng imahe tulad ng Gimp at subukang i-save ang isang imahe bilang isang PNG file, humihiling ito para sa isang antas ng compression na umaabot sa pagitan ng 0 at 9.

Kung mayroon itong isang parameter ng compression na nakakaapekto sa visual na katumpakan ng naka-compress na imahe, paano ang pagkawala ng PNG pagkatapos? Maaari bang ipaliwanag ng isang tao sa akin ito? Nakakuha ba ako ng pag-uugali na walang pagkawala kapag itinakda ko ang antas ng compression sa 9?

Mayroon bang pagkakaiba sa kalidad ng imahe depende sa antas ng compression na iyong pinili?

Ang sagot

Ang mga tagapag-ambag ng SuperUser na LordNeckbeard at jrlin ay may sagot para sa amin. Una, LordNeckbeard:

Ang Compressed ay PNG, ngunit Lossless

Ang antas ng compression ay isang trade-off sa pagitan ng laki ng file at bilis ng pag-encode / decoding. Upang labis na gawing pangkalahatan, kahit na ang mga di-imahe na format tulad ng FLAC ay may magkatulad na mga konsepto.

Iba't ibang Mga Antas ng Pag-compress, Parehong Na-decode na Output

Bagaman magkakaiba ang mga laki ng file dahil sa iba't ibang mga antas ng compression, magkatulad ang aktwal na na-decode na output. Maaari mong ihambing ang mga hash ng MD5 ng na-decode na mga output na may ffmpeg gamit ang MD5 muxer. Ito ay pinakamahusay na ipinapakita sa ilang mga halimbawa.

Lumikha ng PNG Files

  • Bilang default, ang FFmpeg ay gagamit ng -compression_level 100 para sa output ng PNG.
  • Ang isang mabilis, sloppy test ay nagpakita na 100 (ang pinakamataas na antas ng compression) ay tumagal ng halos tatlong beses na mas mahaba upang ma-encode at limang beses na mas matagal upang ma-decode kaysa sa 0 (ang pinakamababang antas ng compression) sa halimbawang ito.

Paghambingin ang Laki ng File

I-decode ang PNG Files at Ipakita ang MD5 Hashes

Dahil ang parehong mga hash ay pareho, maaari kang makatiyak na ang naka-decode na output (ang hindi naka-compress na hilaw na mga file) ay eksaktong pareho.

Sinusundan ng sagot mula kay jrlin:

Ang PNG ay walang pagkawala. Malamang na hindi gumagamit ang GIMP ng pinakamahusay na pagpipilian ng mga salita sa kasong ito.

Isipin ito bilang kalidad ng compression o antas ng pag-compress. Sa mas mababang compression, nakakakuha ka ng isang mas malaking file, ngunit tumatagal ng mas kaunting oras upang makabuo, samantalang sa mas mataas na compression, nakakakuha ka ng isang mas maliit na file na mas matagal ang paggawa.

Kadalasan nakakakuha ka ng mga nagbabawas na pagbabalik, ibig sabihin hindi gaanong pagbawas sa laki kumpara sa pagtaas ng oras na aabutin kapag umakyat sa pinakamataas na antas ng compression, ngunit nasa sa iyo ito.

May maidaragdag sa paliwanag? Tumunog sa mga komento. Nais bang basahin ang higit pang mga sagot mula sa iba pang mga gumagamit ng Stack Exchange na may kaalaman sa tech? Suriin dito ang buong thread ng talakayan.


$config[zx-auto] not found$config[zx-overlay] not found