Adaptiv kodning

Adaptiv kodning hänvisar till varianter av entropikodningsmetoder för förlustfri datakomprimering . De är särskilt lämpade för strömmande data , eftersom de anpassar sig till lokala förändringar i datas egenskaper och inte kräver en första övergång av data för att beräkna en sannolikhetsmodell. Kostnaden som betalas för dessa fördelar är att kodaren och avkodaren måste vara mer komplexa för att hålla sina tillstånd synkroniserade, och mer beräkningskraft krävs för att fortsätta anpassa kodaren/avkodartillståndet.

Nästan alla datakomprimeringsmetoder involverar användningen av en modell , en förutsägelse av datasammansättningen. När data matchar den förutsägelse som modellen gör kan kodaren vanligtvis överföra innehållet i datan till en lägre informationskostnad genom att referera till modellen. Detta allmänna uttalande är lite missvisande eftersom allmänna datakomprimeringsalgoritmer skulle inkludera de populära LZW- och LZ77 -algoritmerna, som knappast är jämförbara med komprimeringstekniker som vanligtvis kallas adaptiva . Run-length-kodning och den typiska JPEG- komprimeringen med run length-kodning och fördefinierade Huffman-koder överför inte en modell. Många andra metoder anpassar sin modell till den aktuella filen och behöver överföra den utöver den kodade datan, eftersom både kodaren och avkodaren behöver använda modellen.

I adaptiv kodning är kodaren och avkodaren istället utrustade med en fördefinierad metamodell om hur de kommer att ändra sina modeller som svar på det faktiska innehållet i datan, och annars börjar med ett tomt blad, vilket innebär att ingen initial modell behöver vara överförs. När data överförs anpassar både kodare och avkodare sina modeller, så att om inte karaktären på datan förändras radikalt, blir modellen bättre anpassad till den data den hanterar och komprimerar den mer effektivt och närmar sig effektiviteten av den statiska kodningen.

Adaptiv metod

Encoder

  1. Initiera datamodellen enligt överenskommelse.
  2. Medan det finns mer data att skicka
    1. Koda nästa symbol med hjälp av datamodellen och skicka den.
    2. Ändra datamodellen baserat på den sista symbolen.

Avkodare

  1. Initiera datamodellen enligt överenskommelse.
  2. Medan det finns mer data att ta emot
    1. Avkoda nästa symbol med hjälp av datamodellen och mata ut den.
    2. Ändra datamodellen baserat på den avkodade symbolen.

Varje adaptiv kodningsmetod har en motsvarande statisk modellmetod , i vilken datamodellen förberäknas och sedan sänds med datan.

Statisk metod

Encoder

  1. Initiera datamodellen baserat på en första övergång av data.
  2. Överför datamodellen.
  3. Medan det finns mer data att skicka
    1. Koda nästa symbol med hjälp av datamodellen och skicka den.

Avkodare

  1. Ta emot datamodellen.
  2. Medan det finns mer data att ta emot
    1. Avkoda nästa symbol med hjälp av datamodellen och mata ut den.

Exempel

Adaptiv bildkodning användes av Cassini-Huygens hantverk för att vidarebefordra bilder från Saturnus . Endast cirka 5 % av bilderna visar några visuella tecken på skada. Eftersom rymdfarkosten har ett fel som korrigerar Flash-enheten och långa tidsramar mellan bildtagningshändelser, kan skadade bilder som denna förekomma. Det antas att antalet skadade, men oåterställbara bilder från Cassini-uppdraget är cirka 0,01 % eller mindre. [ behöver uppdateras ]

Cassini-kameran pekade mot Dione på ett avstånd av cirka 548 210 kilometer. Bilden togs med CL1- och CL2-filtren den 17 maj 2010.

Cassini förlustfri kompression

  • Både konverterade (8-bitars) och okonverterade (12-bitars) data kan komprimeras förlustfritt. Cassini-hårdvarudatakompressorn använder ett modifierat Huffman-kodningsschema som en del av sin adaptiva kompressor.
  • Varje komprimerad bild kan rekonstrueras på marken utan förlust av informationsinnehållet i bilden, förutsatt att bildentropin inte överstiger tröskeln där 2:1-komprimering uppnås.
  • På grund av kameraproblem och behovet av att minska filstorleken, finns det en liten modifiering av bildkodningsschemat så att varje komprimerad linje är effektivt bandbredd begränsad på antalet tillgängliga bitar för att koda den.