Hogyan működnek a képformátumok és hogyan javítja azokat a WebP
A mély tanulás a jövő: hogyan lehet differenciáltan edzeni, és milyen lehetőségei lesznek
Van még néhány dolog a Google I/O folyamatban. Az egyik az "új" képkodek a Web számára: WebP (Web - Kép, nem törte meg a fejét a névvel). Azért mondom "új", mert már régen létezett, de nem árt, ha áttekintést adunk neki.

Az első dolog megérteni, miért teszi a Google ezt az erőfeszítést. Három fő kodekünk vagy formátumunk van: JPEG, PNG és GIF, amelyek 1991-ből, 1996-ból és 1987-ből származnak. Azóta sok minden változott, de még így is működnek ezek a kodekek. ról ről.
A JPEG-t a leggyakrabban használják nem csak az interneten, hanem azon kívül is. A legnagyobb előnye a tömörítési képessége, amely akár 100: 1-re is felmehet (egy 100 KB-os kép 1 KB-os fájlban van tárolva). De természetesen ennek az erőteljes tömörítésnek megvannak a hátrányai: a minőség romlása. Később meglátjuk, miért történik ez, de biztos vagyok benne, hogy a JPG-k tárgyai, torzulásai mindannyiunk számára ismerősek.
Akkor megvan a GIF formátum. A formátum valóban elég rossz: bár a tömörítés veszteségmentes, problémánk van, vagyis csak 256 színt tudunk képviselni. Hogy ötletet adjon neked, a normál képernyő több millió színt képvisel. Ennek eredményeként a GIF nem jó minőségű formátum, és valójában csak egyszerű logókhoz és animációkhoz használják (csak ez teszi lehetővé őket).
Végül van PNG. Ez egy veszteségmentes formátum, amely támogatja az átláthatóságot. A probléma az, hogy nem ér el olyan magas tömörítést, mint a JPEG, ezért csak kis képekkel és kevés színnel használják.
A WebP egyetlen formátumban egyesíti a PNG, GIF és JPEG előnyeit.
Végül három különböző formátummal rendelkezünk, és mindegyik olyan mezőben jeleskedik, ahol a többieknek semmi köze nincs: JPEG a kis fájlokhoz, a PNG a kiváló minőségű és átlátszó, valamint a GIF az animációkhoz.
A WebP célja, hogy ezeket az előnyöket egyetlen fájlban egyesítse. Veszteséges tömörítéssel rendelkezik a fájlméret csökkentése érdekében, veszteségmentes a minőség fenntartása érdekében (és még mindig kisebb fájlok, mint a PNG), támogatja az átlátszóságot és az animációkat. A végleges formátum, gyerünk. Hogyan csinálják a Google-on?
Hogyan működnek a képkodekek?
Ahhoz, hogy megértsük, miért van szükség a WebP-re, meg kell látnunk a kép kodekek működését. Vegye figyelembe, hogy több egyszerűsítést fogok végrehajtani, hogy jobban megértsük.
Először is emlékezzünk arra, hogy a kép nem más, mint egy sor pont vagy képpont, ahol minden egyes pozícióban megvan a piros, zöld és kék mennyiség, amely a pixel színét alkotja.
A minőségi képtömörítés elvesztése két alapelven alapszik (a legfontosabb, sokkal több van). A legfontosabb az, hogy az emberi szem nem képes megkülönböztetni sok apró színváltozást. A második pedig, hogy rövidebb egy pontsorozat mentése függvényként. Például, amit rövidebb menteni, egy vonal ötven pontját vagy annak függvényét (y = ax + b ha valaki nem emlékszik)?
Nem tudjuk észlelni az apró színváltozásokat, miért mentenénk őket?
Úgy tűnik, hogy amit mondtam, nem függ össze, de valójában az. Azt mondtuk, hogy a kép nem más, mint egy pontsorozat, így ábrázolhatjuk ezeket a pontokat egy grafikonon, majd felépíthetünk egy függvényt, amely közelíti ezeket a pontokat.
Ez a funkció sok nagyon kicsi csúccsal jelenik meg. Várj, nem mondtuk, hogy ilyen apró változásokat nem észlel a szem? Nos, nekünk könnyű: szabaduljunk meg azoktól a tüskéktől. "Egyengessük" a függvényt. Így rövidebb lesz, és könnyebben menthetjük. A következő képen egy diagram látható arról, hogy mi történik.
JPEG-ben ezt (többé-kevésbé) kvantálási folyamatnak nevezzük. A kérdés az, hogy mi történik, ha átmegyünk "ellapítani" a funkciót? Hogy elveszítjük a részleteket. A színek szó szerint laposabbak: elveszítjük a kontrasztot. Minden képpont sokkal jobban hasonlít a többire, és ezért jelennek meg a műtárgyak. Sokat eltúlozva ez történik egy valós képen, ha túlmegyünk a tömörítésen: