nl.phhsnews.com


nl.phhsnews.com / Is het PNG-formaat verliesloos, omdat het een compressieparameter heeft?

Is het PNG-formaat verliesloos, omdat het een compressieparameter heeft?


Het PNG-formaat moet een verliesvrij formaat zijn, maar wanneer u een afbeelding opslaat als een PNG-bestand, wordt u gevraagd om kies een compressieniveau. Betekent dit dat het PNG-formaat eigenlijk helemaal geen verlies is? De SuperUser Q & A-post van vandaag helpt om de verwarring voor een nieuwsgierige lezer op te helderen.

De Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een door de gemeenschap gestuurde groep van Q & A-websites.

De vraag

SuperUser-lezer pkout wil weten of de kwaliteit van een PNG-afbeelding wordt beïnvloed door het gekozen compressieniveau:

Zoals ik het begrijp, gebruiken PNG-bestanden compressie zonder gegevensverlies. Wanneer ik echter een afbeeldingseditor zoals Gimp gebruik en probeer een afbeelding als een PNG-bestand op te slaan, wordt gevraagd om een ​​compressieniveau tussen 0 en 9.

Als het een compressieparameter heeft die de visuele precisie van de gecomprimeerde afbeelding, hoe gaat PNG dan verliesloos? Kan iemand me dit alstublieft uitleggen? Krijg ik verliesloos gedrag alleen wanneer ik het compressieniveau instelde op 9?

Is er een verschil in de kwaliteit van de afbeelding afhankelijk van het compressieniveau dat u kiest?

De antwoorden

Bijdragers van SuperUser LordNeckbeard en jjlin hebben het antwoord voor ons. Ten eerste, LordNeckbeard:

PNG is gecomprimeerd, maar Lossless

Het compressieniveau is een afweging tussen bestandsgrootte en coderings- / decoderingssnelheid. Om overmatig te generaliseren, hebben zelfs niet-afbeeldingsindelingen zoals FLAC vergelijkbare concepten.

Verschillende compressieniveaus, dezelfde gedecodeerde uitvoer

Hoewel de bestandsgrootten verschillend zijn vanwege de verschillende compressieniveaus, is de daadwerkelijke gedecodeerde uitvoer identiek. U kunt de MD5-hashes van de gedecodeerde uitgangen vergelijken met ffmpeg met behulp van de MD5 muxer. Dit wordt het beste weergegeven met enkele voorbeelden.

PNG-bestanden maken

  • Standaard gebruikt ffmpeg -compression_level 100 voor PNG-uitvoer.
  • Een snelle, slordige test toonde aan dat 100 (het hoogste compressieniveau) ongeveer drie keer duurde tijd langer om te coderen en vijf keer langer om te decoderen dan 0 (het laagste compressieniveau) in dit voorbeeld.

Vergelijk bestandsgrootte

Decodeer de PNG-bestanden en toon MD5 hashes

Aangezien beide hashes hetzelfde zijn, Er kan worden verzekerd dat de gedecodeerde uitgangen (de niet-gecomprimeerde onbewerkte bestanden) exact hetzelfde zijn.

Gevolgd door het antwoord van jjlin:

PNG is verliesvrij. GIMP gebruikt in dit geval waarschijnlijk niet de beste woordkeus.

Beschouw het als compressiekwaliteit of compressieniveau . Bij een lagere compressie krijgt u een groter bestand, maar dit kost minder tijd om te produceren, terwijl bij een hogere compressie u een kleiner bestand krijgt dat langer nodig heeft om te produceren.

Meestal krijgt u een afnemend rendement, dat wil zeggen niet zozeer in grootte afnemend vergeleken met de toename in tijd die nodig is om naar de hoogste compressieniveaus te gaan, maar het is aan jou.


Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread


Hoe vindt u Chrome-extensies die advertenties in webpagina's injecteren?

Hoe vindt u Chrome-extensies die advertenties in webpagina's injecteren?

Advertenties maken deel uit van het leven op internet, maar wanneer een gewetenloze extensie opzettelijk advertenties in uw browse-ervaring begint te injecteren, het is tijd om actie te ondernemen! De SuperUser Q & A-post van vandaag biedt het antwoord om een ​​gefrustreerde lezer te helpen zijn browse-ervaring op te ruimen.

(how-to)

Wanneer is het beter om #! / Bin / bash te gebruiken in plaats van #! / Bin / sh in een shellscript?

Wanneer is het beter om #! / Bin / bash te gebruiken in plaats van #! / Bin / sh in een shellscript?

Wanneer u een nieuw shellscript maakt, wilt u dit doen zeker dat het zo probleemloos mogelijk is, maar soms kan het een beetje verwarrend zijn om te weten welke shebang de beste is die je kunt gebruiken. In dat opzicht heeft de SuperUser Q & A-post van vandaag het antwoord op de vraag van een verwarde lezer.

(how-to)