Pixelkodning i bildkomprimering hänvisar till tekniker som direkt manipulerar de numeriska värdena som representerar enskilda pixlar i en bild för att minska dess storlek. Det är ett avgörande steg i många bildkomprimeringsalgoritmer, som ofta arbetar i samband med andra tekniker som transformeringskodning (som DCT i JPEG) eller prediktiv kodning.
Här är en uppdelning av hur pixelkodning fungerar och olika tillvägagångssätt:
Grundidé: Det grundläggande målet är att representera pixeldata med färre bitar än den ursprungliga okomprimerade representationen (t.ex. 24 bitar per pixel för en äkta bild). Detta uppnås genom att utnyttja uppsägningar och mönster i pixeldata.
Vanliga pixelkodningstekniker:
* körlängd kodning (RLE): Detta är en enkel teknik som är effektiv för bilder med stora områden med enhetlig färg. Den ersätter sekvenser av identiska pixlar med ett enda värde som indikerar pixelvärdet och längden på körningen. Till exempel blir "AAAAAABBBBCC" "A6B3C2". Det är mycket effektivt för enkel grafik eller bilder med många solida regioner, men mindre effektiva för komplexa bilder med massor av detaljer och variation.
* entropikodning (Huffman -kodning, aritmetisk kodning): Dessa tekniker tilldelar kortare koder till oftare förekommande pixelvärden och längre koder till mindre frekventa. De utnyttjar den statistiska fördelningen av pixelvärden i bilden för att uppnå komprimering. Huffman-kodning använder koder med variabel längd baserad på en prefixfri kodtabell, medan aritmetisk kodning representerar hela symbolens sekvens som ett enda fraktioneringsnummer. Båda är mycket effektiva för att minska filstorleken.
* kvantisering: Detta innebär att minska antalet möjliga pixelvärden. Istället för att representera varje pixel med, säg, 256 nivåer av grå (8 bitar), kan det vara representerat med färre nivåer (t.ex. 16 nivåer med bara 4 bitar). Detta minskar bildens precision men uppnår betydande komprimering. Kvantisering används vanligtvis i samband med andra kompressionstekniker. Förlusten av precision bidrar till förlustkompression.
* Förutsägbar kodning: Detta tillvägagångssätt förutspår värdet på en pixel baserat på värdena på angränsande pixlar. Endast skillnaden (förutsägelsefel) mellan det faktiska pixelvärdet och det förutsagda värdet kodas, vilket minskar mängden data som behövs för att representera bilden. Differential Pulse Code Modulation (DPCM) är en vanlig form av förutsägbar kodning.
Förhållande till andra kompressionsmetoder:
Pixelkodning används ofta ensam. Det är vanligtvis ett sista steg * efter * andra transformationer. Till exempel:
* jpeg: Använder diskret kosinustransform (DCT) för att omvandla pixelblock till frekvenskoefficienter. Sedan minskar kvantiseringen precisionen hos dessa koefficienter, och slutligen används entropikodning (Huffman eller liknande) för att effektivt koda de kvantiserade koefficienterna. Således fungerar pixelkodning (kvantisering och entropikodning) på transformerade data.
* png: Använder en kombination av filtrering (prediktiv kodning) och avleder komprimering (baserat på LZ77, en form av ordbokskodning) för att komprimera råbildsdata mer effektivt efter tillämpning av en lämplig filtreringsmetod.
Sammanfattningsvis är pixelkodning en familj av tekniker som direkt manipulerar pixelvärden för att minska mängden data som krävs för att lagra eller överföra en bild. Dess effektivitet beror mycket på bildegenskaperna och den används ofta i samband med andra kompressionsmetoder för optimala resultat.