Domača » kako » Ali je format PNG brez izgube, ker ima parameter stiskanja?

    Ali je format PNG brez izgube, ker ima parameter stiskanja?

    Oblika zapisa PNG naj bi bila format brez izgube, ko pa sliko shranite kot datoteko PNG, morate izbrati raven stiskanja. Ali to pomeni, da format PNG navsezadnje ni brez izgube? Današnja pošta SuperUser Q&A pomaga razjasniti zmedo za radovednega bralca.

    Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.

    Vprašanje

    Bralnik SuperUser pkout želi vedeti, ali na kakovost slike PNG vpliva izbrana stopnja stiskanja:

    Kot sem razumel, datoteke PNG uporabljajo kompresijo brez izgube. Vendar pa, ko uporabljam urejevalnik slik, kot je Gimp, in poskušam shraniti sliko kot datoteko PNG, zahteva stopnjo stiskanja med 0 in 9.

    Če ima parameter stiskanja, ki vpliva na vizualno natančnost stisnjene slike, kako je potem PNG brez izgube? Ali mi lahko nekdo to pojasni? Ali dobim obnašanje brez izgube le, če nastavim stopnjo stiskanja na 9?

    Ali obstaja razlika v kakovosti slike, odvisno od izbrane stopnje stiskanja?

    Odgovor

    Sodelavci SuperUser LordNeckbeard in jjlin imajo odgovor za nas. Prvič, LordNeckbeard:

    PNG je stisnjen, vendar brez izgube

    Stopnja stiskanja je kompromis med velikostjo datoteke in hitrostjo kodiranja / dekodiranja. Če želite preveč posploševati, imajo podobni koncepti tudi ne-slikovni formati, kot je FLAC.

    Različni nivoji stiskanja, enak dekodirani izhod

    Čeprav so velikosti datotek različne zaradi različnih ravni stiskanja, bo dejanski dekodirani izhod enak. MD5 hashe dekodiranih izhodov lahko primerjate z ffmpeg z uporabo MD5 muxerja. To je najbolje prikazati z nekaterimi primeri.

    Ustvari datoteke PNG

    • Privzeto bo ffmpeg uporabil -compression_level 100 za izhod PNG.
    • Hiter, površen test je pokazal, da je 100 (najvišja stopnja stiskanja) trajalo približno trikrat dlje za kodiranje in petkrat dlje za dekodiranje kot 0 (najnižja stopnja stiskanja) v tem primeru.

    Primerjaj velikost datoteke

    Dekodiranje datotek PNG in Show MD5 hashes

    Ker sta obe razpršitvi enaki, ste lahko prepričani, da so dešifrirani izhodi (nestisnjene neobdelane datoteke) popolnoma enaki.

    Sledi odgovor jjlin:

    PNG je brez izgube. GIMP najverjetneje ne uporablja najboljše izbire besedila v tem primeru.

    Pomislite na to kot kakovost kompresije ali stopnja stiskanja. Z manjšim stiskanjem dobite večjo datoteko, vendar je za izdelavo potreben krajši čas, medtem ko pri višji kompresiji dobite manjšo datoteko, ki traja dlje,.

    Običajno dobite zmanjšanje donosov, t.j. ne toliko zmanjšanje velikosti v primerjavi s povečanjem časa, ki ga potrebujete, ko greste na najvišje ravni stiskanja, vendar je na vas.


    Imate kaj dodati pojasnilu? Zvok v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.