Acties:
  • 0 Henk 'm!

  • Zeror
  • Registratie: September 2003
  • Laatst online: 23:43

Zeror

Ik Henk 'm!

Topicstarter
Mede-auteur:
  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 00:04

Xander

Wij, ik en Xander, zaten net even te experimenteren waarom bepaalde kleuren in een afbeeldingsbestand (wij gebruikten PNG) minder bytes innemen dan andere kleuren. Het was duidelijk dat zwart de minste hoeveelheid bytes inneemt dan bijvoorbeeld wit of rood.

Maar waarom is dat eigenlijk? Hoe wordt een kleur opgebouwd in een afbeeldingsbestand dat de ene kleur kleiner is dan de andere?

Trans-life! :::: Nintendo ID: Zeror_rk / SW-6670-3316-6323 :::: BattleTag: Zerora#21213 :: Twitch: ZERORAh


Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Welkom in de wondere wereld van compressie, loss-less compressie in het geval van PNG, lossy compressie in het geval van JPG;)

Okay dit is erg plat gesteld, en aangezien dit tweakers is ga ik ongetwijfeld om de oren geslagen worden door allerlei mensen die veeeeeeel beter in compressie zijn en het tot op bit nivo gaan uitleggen.

Zwart is $000000 (rgb) en dat comprimeert best goed terug tot één $0 met een pointer om dit 8 keer te herhalen.
Een 'mooie' kleur is $0cafe0 en dat is nauwelijks te comprimeren, tenminste als deze in een groot vlak staat kun je dat terug brengen tot 50 x $0cafe0 om het vlak weer te vullen.

Dus hoe meer RGB waardes een kleur bevat, hoe minder goed deze comprimeert.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • Zeror
  • Registratie: September 2003
  • Laatst online: 23:43

Zeror

Ik Henk 'm!

Topicstarter
Ah, compressie. Die was ik even vergeten. Dat verklaart al een hoop.

Trans-life! :::: Nintendo ID: Zeror_rk / SW-6670-3316-6323 :::: BattleTag: Zerora#21213 :: Twitch: ZERORAh


Acties:
  • 0 Henk 'm!

  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 00:04
kwaakvaak_v2 schreef op woensdag 11 januari 2012 @ 10:23:
Zwart is $000000 (rgb) en dat comprimeert best goed terug tot één $0 met een pointer om dit 8 keer te herhalen.
Een 'mooie' kleur is $0cafe0 en dat is nauwelijks te comprimeren, tenminste als deze in een groot vlak staat kun je dat terug brengen tot 50 x $0cafe0 om het vlak weer te vullen.

Dus hoe meer RGB waardes een kleur bevat, hoe minder goed deze comprimeert.
Maar neem dan eens deze twee plaatjes:
Afbeeldingslocatie: http://tweakers.net/ext/f/DGDLxIR6hmgPrX9MIXor3kGh/full.png
Zwart - 846 bytes

Afbeeldingslocatie: http://tweakers.net/ext/f/odppg519qHjMajOA1BM64MX1/full.png
Wit - 1.486 bytes

Het ontgaat me even waarom #000000 beter te comprimeren is dan #ffffff. :P Het witte bestand is 75% groter.

(Dit zou ook aan Photoshop kunnen liggen trouwens, ik heb het niet met andere software geprobeerd)

edit:
PNGGauntlet maakt van beide bestanden een versie van slechts 125 bytes. Het ligt dus aan Photoshop, niet aan het PNG-formaat...

[ Voor 6% gewijzigd door Xander op 11-01-2012 11:46 ]

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 30-09 23:08

CoolGamer

What is it? Dragons?

Het is wel mogelijk om beide bestanden even groot te maken. Als de afbeeldingen upload naar http://www.pngoptimizer.com/ dan worden beide afbeeldingen teruggebracht naar 213 bytes. Photoshop gebruikt dus niet de meest efficiënte manier van opslaan, maar gewoon een snelle methode om het bestand op te slaan in PNG formaat.

Als je precies wilt weten waardoor het komt zal je het bestand moeten bekijken met een HEX-editor. Het bestandsformaat staat op Wikipedia.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waarom een bepaalde kleur beter compressed dan een ander is omdat 'ie meer voorkomt; dan moet je je eens hierin en/of hierin verdiepen.

#ffffff zou niet beter moeten compressen dan #000000 op vage bugs in bepaalde implementaties na (vermoed ik; ik ken de echte internals niet helemaal). PNG gebruikt DEFLATE welke weer bouwt op Huffman (achtige) technieken.
kwaakvaak_v2 schreef op woensdag 11 januari 2012 @ 10:23:
Zwart is $000000 (rgb) en dat comprimeert best goed terug tot één $0 met een pointer om dit 8 keer te herhalen.
Een 'mooie' kleur is $0cafe0 en dat is nauwelijks te comprimeren, tenminste als deze in een groot vlak staat kun je dat terug brengen tot 50 x $0cafe0 om het vlak weer te vullen.

Dus hoe meer RGB waardes een kleur bevat, hoe minder goed deze comprimeert.
Nope.
kwaakvaak_v2 schreef op woensdag 11 januari 2012 @ 10:23:
aangezien dit tweakers is ga ik ongetwijfeld om de oren geslagen worden door allerlei mensen die veeeeeeel beter in compressie zijn en het tot op bit nivo gaan uitleggen
* RobIII slaat kwaakvaak_v2 om de oren :P
Ook jij moet bovenstaande linkjes eens doornemen ;)

[ Voor 74% gewijzigd door RobIII op 11-01-2012 12:26 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Het zou helpen als ik zinnen niet alleen bedenk, maar ook daadwerkelijk in zou typen :O

Er miste een stukje in "Dus hoe meer RGB waardes een kleur bevat, hoe minder goed deze comprimeert." na de ,

Het had moeten zijn :

Dus hoe meer RGB waardes een kleur bevat. en hoe meer verschillende kleuren een afbeelding bevat,hoe minder goed deze comprimeert.

Maar goed, je mag slaan hoor ;) Het is al even geleden dat ik een RLE packer gemaakt hebt, en dat was op een 8-bit C64 en daar waren de kleuren gewoon fixed ingebakken in de VIC registers.

En adobe comprimeert een PNG alleen bij save for web, niet bij een normale save. Waarom ze dat nog steeds niet op een hoop hebben geveegd is mij ook een raadsel. Zelfde geld ook voor JPG trouwens.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 00:04
kwaakvaak_v2 schreef op woensdag 11 januari 2012 @ 13:25:
En adobe comprimeert een PNG alleen bij save for web, niet bij een normale save. Waarom ze dat nog steeds niet op een hoop hebben geveegd is mij ook een raadsel. Zelfde geld ook voor JPG trouwens.
FYI, bovenstaande plaatjes komen uit de save for web functie. :)

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Hrmm... als ik hier in photoshop New image doe, dan fill met 100% white save for web krijg ik precies dezelfde voorspelling als bij 100% black? (CS5 op OSX-Lion)

Driving a cadillac in a fool's parade.

Pagina: 1