Ved hjelp av Googles WebP Bildeformat med åpne Verktøy på Linux

Googles WebM-prosjektet, det frie og åpne video codec basert på VP8, tilbyr fristende fordeler for fans av Linux og åpen kildekode: bedre kvalitet, pluss full støtte i nettleseren og andre programmer , takket være mangel av royalty-krevende patentholdere. Ofte oversett i WebM historien er andre
media format avduket av Google samtidig: WebP, et lossy stillbildeformat sies å gi bedre-enn-JPEG kvalitet til betydelig slankere filstørrelser. Er WebP klar til å fortrenge kjedelig gammelt bilde format? La oss ta en titt på gratis verktøy tilgjengelig for skriving, konvertering, og vise WebP filer for å finne ut.

Bildet er alt

For det første må vi forstå hva WebP er
. Formatet er lossy, som standard JPEG, noe som betyr at den bruker komprimering for å fjerne bytes på en måte som (forhåpentligvis) øyet vil ikke merke. JPEG-filer vanligvis dele bildet inn i 8-by-8 blokker, og deretter utføre en diskret cosinus transform (DCT) på hver blokk, og kaste ut noen av de minst signifikante siffer data i de resulterende høye frekvenser. Det er der de fleste av størrelse besparelsene kommer fra; våre øyne er ikke like følsomme for at høyfrekvente data, så JPEG feie dem under teppet.

Det er faktisk ganske mange alternativer som er definert av JPEG codec standard (inkludert tapsfri komprimering), som er det gir opphav til JPEG " kvalitet " innstillingen – som du skru kvaliteten ned når du eksporterer et bilde, tilpasser algoritme for å kaste ut mer og mer informasjon. Men hovedpunkt er fortsatt den samme.

WebP komprimering er i hovedsak en tilpasning av et enkelt bilde av WebM video. Det også, bryter bildet i blokker (selv om 4-by-4 i størrelse, i stedet for 8-by-8), men i stedet for JPEG s DCT og høyfrekvente bit-chopping trinn, bruker den intra-bildekoding algoritme fra WebM. Intra-ramme-koding er den kodende ned
innenfor en enkelt ramme, i motsetning til mellom to etterfølgende rammer, og WebM metode involvert konstruere en forutsigelse for hver blokk basert på blokkene ved siden av den. Koderen lagrer spådommer og forskjellene mellom de spådommer og de virkelige inngangs blokker i utdatafilen – hvis spådommen går bra, som det skal for de fleste halvtonebilder som bilder, er utgangs mindre enn den rå innspill – og resultatet komprimert med lossless teknikker.

Det morsomme er at WebM vegring prediksjon algoritme kan bruke flere forskjellige teknikker, som kan generere bedre resultater enn JPEG er one-size-fits-all tilnærming. På den annen side er det kodeken vesentlig mer komplisert matematisk, slik at koding tar lengre tid. Det er mulig å parallelize dekoding av WebP bilder, men så minst betrakteren slipper å investere merkbart mer tid

Google Toolkit

Google gir en ". Referanse gjennomføringen " verktøykasse kalt libwebp for nedlasting på Google Code. Pakken er for tiden på versjonsnummer 0.1, og omfatter to kommandolinjeverktøy, en statisk bibliotek og C header-filer for bruk med andre programmer. Alle er lisensiert under BSD-stil begreper som brukes av WebM-prosjektet som helhet. Binære pakker er gitt for 32-bit og 64-bit Linux, samt Mac OS X og Windows, og en kildekode arkiv er tilgjengelig, også.

For å komme i gang med Linux-pakke, vil du trenger å pakke ut arkivet, flytte cwebp og dwebp binærfiler inn i katalogen du ønsker, og å sørge for at du har kjøretillatelse. De er knyttet mot libjpeg og libpng, men det er ingen Installerinsprogrammet inkludert i pakken, så det er ingen kontroll aktivert for å sikre at du har begge bibliotekene installert. De er grunnleggende fare i disse dager, skjønt, så du nesten helt sikkert gjør.

WebP Biblioteket heter libwebp.a og kan brukes til å legge til WebP koding og dekoding støtte til et program. Den medfølgende README filen beskriver koding og dekoding APIer, deriblant flere koding funksjoner for ulike RGB datatyper, samt pseudokode. De nødvendige overskrifter er gitt i og quot; " katalogen. For en utvikler som ønsker å implementere WebP, er dette et godt utgangspunkt, men å eksperimentere med formatet, CLI verktøy er en raskere måte å begynne.

Encoding WebP

tar The cwebp verktøy en PNG eller JPEG-bilde som input, og konverterer den til WebP-formatet. Den dwebp verktøyet tar en WebP bildet og konverterer den til en tapsfri PNG. Dette gjør at du kan vise påvirker av dine WebP konverterings eksperimenter selv uten en WebP-støtte klient app (som det er få i øyeblikket).

Cwebp eksponerer flere nivåer av algoritmiske justeringer du kan leke deg med å finpusse komprimeringsresultater eller å undersøke de ulike parametrene av format. Det enkleste alternativet er -kvalitet NN.NN
flagg, som tar et desimaltall i området 0 til 100. 100 representerer den høyeste kvalitet, og dermed den største filstørrelsen. For referanse, er standard kvalitetsinnstilling 75. Dermed mest grunnleggende bruk av cwebp ville være cwebp filename.png, noe som vil gi en 75-kvalitet WebP utskriftsbildet, og gi den navnet filename.webp.

Neste trappe opp i kompleksitet er å bruke cwebp innebygde forhåndsinnstillinger, som hver leverer et komplett utvalg av giver innstillinger med ett slag. Forhåndsinnstillingene er foto, bilde, tegning, ikon og tekst, og du bruker dem ved å levere forhåndsinnstillingen du vil etter -preset kommandolinjealternativet, som i cwebp -preset tegning filename.png. Bruke -preset overstyrer alle andre kommandolinjebrytere du forsyningen som argumenter

Dessverre, verken web-basert eller nedlastbar dokumentasjon går i detalj om nøyaktig hvilke parameter hver forhåndsinnstilte sett &ndash.; og det er mange parametere som er tilgjengelige. For de som søker de mest komplekse justeringer mulig, cwebp omfatter elleve kommandolinjebrytere for å finpusse enkelte kodingen parametere. Den fullstendige listen er:

 -f styrke deblocking filter, heltall 0 til 100, standard 20-m grundighet av komprimeringsmetoden alternativ undersøkelse, heltall 0 6, standard 4-SNS romlig støy-shaping, heltall 0 til 100, standard 80-segments antall segmenter som brukes av SNS algoritmer, helt tall 1 til 4, standard 4-skarphet filter skarphet, helt tall 0 til 7-sterk bruk " sterk " filtrere heller enn " enkelt, " Standard off-pass rekke analyser passerer, helt tall 1 til 10 størrelse målstørrelse i byte-PSNR target peak signal-til-støy-forholdet i decibels.-af automatisk justering filter styrke, standard off-pre pre-prosessering filter, heltall 


Her igjen, er tilgjengeligheten av parametrene hyggelig, men dokumentasjonen er sporadisk i dag. Google hevder at 30-40 reduksjoner% størrelse enn JPEG med ingen merkbar tap i kvalitet er gjennomsnittlig, med enda større besparelser mulige under visse omstendigheter. Jeg har sett brukere som hevder 80% reduksjon, selv om de ikke har deres fulle testdata tilgjengelig. Det er et galleri side på WebP-område som inneholder eksempler på bilder og – enda viktigere – beskriver cwebp innstillingene som brukes til å lage dem.

dekoding WebP

Størrelse besparelsene er stor, men med mindre du er en bestemt image arkivar, det er ingen vits å bytte til et nytt format med mindre folk kan se
de resulterende filene. For WebP visning, er det flere interessante alternativer å vurdere.

Først inkluderer WebP toolkit den dwebp omformer verktøyet. Som cwebp, er det bare kommando-linje, og bare konverterer en WebP-fil inn i en tapsfri output file. Den grunnleggende syntaks er grei, dwebp filename.webp. Du kan angi en alternativ filnavn med -o outputfilename.png
bryteren. Som standard dwebp produserer PNGs, men du kan også konvertere til PPM-filer med -ppm flagg eller til PGM med -pgm flagget.

Det faktum at du bare kan konvertere til denne lite sett med lossless filformater forråder det faktum at dwebp er utformet for eksperimentering bare, slik at du kan sammenligne cwebp koding tester og kontrast dem med JPEG og andre formater på jakt etter gjenstander. Men kan noen i den virkelige verden dekode WebP bilder? Overraskende, ja.

Google har inkludert WebP-støtte i Chrome og Chromium siden versjon 9, slik at du kan vise WebP innhold direkte i enten nettleseren. Det er derfor en god idé å se på WebP galleriet nevnt ovenfor i Chrome i stedet for en annen nettleser, siden du kan gjøre direkte kvalitetssammenligninger i stedet for å gå gjennom konvertitt til tapsfri prosess. Det er også mye raskere å åpne dine egne bilder i Chrome enn å re-konvertere dem med dwebp. Opera lagt WebP-støtte i sin nyeste utvikling snapshots, så støtte er rett rundt hjørnet.

Firefox ennå ikke har støtte for WebP, selv i nettopp utgitt Firefox 4, selv om det er flekker rettet mot neste utgivelse syklus. Normalt ville legge Firefox støtte for en ny media format gis av en nettleser plug-in, men i tilfelle av WebP dette ikke er nødvendig. Det er fordi Firefox 4 har innebygd dekoding av WebM videoinnhold, og som du husker, en WebP bilde er hemmelig bare et enkelt bilde av WebM-video.

Siden WebM dekoding er levert av Gecko renderer og ikke av en plug-in, kan det utnyttes av Javascript. En liten Javascript-skript som heter Weppy er vert på GitHub som kan ta en .webp < img > element og konverterer den til en single-frame WebM < video > element. Så hvis du ønsker å publisere WebP innhold direkte på nettet for nytelse av Firefox-brukere, kan du gjøre det ved å inkludere weppy.js i din side – besøkende vil aldri selv vet det forskjell. Du kan lese mer om Weppy funksjonalitet og se eksempelkode på forfatterens blogg.

Hvis visningsverktøy synes nettleser-sentrisk, det er nettopp fordi WebP er ment som en web-publisering format, ikke et arkivformat som TIFF eller et bilderedigerings format som XCF eller OpenRaster. Men WebP-støtte er langsomt sildret ut til andre programmer; det er en Photoshop plug-in, og støtte for åpen kildekode-programmer er trolig kommer til å komme gjennom fortsatt utvikling av libwebp. Det har ikke kommet på en ny måte ennå, men det er noe å se på.

De million-pixel spørsmålet gjenstår Will WebP Erstatt en betydelig del av JPEG andel Blant Nett Bilder?
Det er for tidlig å si. Det har vært andre JPEG-utskiftninger i det siste, blant annet JPEG2000, og selv blant profesjonelle grafikere, noen husker dem. Men WebP har en fordel de fleste andre løsninger ikke:. Det er gratis av royalty-bærende patenter, som den opprinnelige JPEG format

Multimedia formatkriger – særlig når de forholder seg til Web – er en forståelig hett tema for Linux og åpen kildekode-brukere, fordi de ofte innebære vanskelige spørsmål som programvarepatenter, royalties, og åpne standarder. WebP er gratis og åpen status gir det en etappe opp, men ikke en gratis pass. Google hevder at til tross for rask vekst
av video på nettet, stillbilder fortsette å stå for en betydelig større del av søke båndbredden brukes. Jeg er ikke sikker på at besparelsene for en bestemt lite område størrelse er en make-or-break deter, men hvis et stort bilde publisering lageret som Flickr skulle vedta WebP, ville besparelsene være enorme, og formatet en suksess over natten.