# ICER

ICER è un formato di file di compressione delle immagini basato su wavelet usato dai rover marziani della NASA. ICER presenta entrambe le modalità di compressione (lossy e lossless).
I Mars Exploration Rovers "Spirit" (MER-A) e "Opportunity" (MER-B) usano entrambi ICER. La compressione delle immagini integrata è ampiamente utilizzata per sfruttare al meglio le risorse del collegamento remoto. Mars Science Lab supporta l'uso di ICER per le sue videocamere di navigazione (ma tutte le altre videocamere utilizzano altri formati di file).
La maggior parte delle immagini MER sono compresse con il software di compressione immagini ICER. Le restanti immagini MER che vengono compresse utilizzano il software LOCO (Low Complexity Lossless Compression) modificato, una sottomodalità senza perdita di ICER.
ICER è un compressore di immagini basato su wavelet che consente un ottimo compromesso tra la quantità di compressione (espressa in termini di volume di dati compressi in bit/pixel) e il conseguente degrado della qualità dell'immagine (distorsione). ICER ha alcune somiglianze con JPEG2000, per quanto riguarda la selezione delle operazioni wavelet.
Lo sviluppo di ICER è stato guidato dal desiderio di ottenere prestazioni di compressione elevate soddisfacendo al contempo le esigenze specializzate delle applicazioni nello spazio profondo.

## Considerazioni pratiche

Per controllare la qualità dell'immagine e la quantità di compressione in ICER, l'utente specifica una quota di byte (il numero nominale di byte da utilizzare per memorizzare l'immagine compressa) e un parametro del livello di qualità (come obiettivo prefissato).
* ICER tenta di produrre un'immagine compressa che soddisfi il livello di qualità utilizzando il minor numero di byte compressi possibile.
* L'ICER interrompe la produzione di byte compressi una volta raggiunto il livello di qualità o la quota di byte, a seconda dell'evento che si verifica per primo.
Questa disposizione offre una maggiore flessibilità rispetto ai compressori (come il compressore JPEG utilizzato su Mars Pathfinder) che forniscono solo un singolo parametro per controllare la qualità dell'immagine. Utilizzando ICER, quando la preoccupazione principale è la larghezza di banda disponibile per trasmettere l'immagine compressa, è possibile impostare l'obiettivo di qualità su senza perdita e la quota di byte specificata determinerà la quantità di compressione ottenuta.
Quando l'unica considerazione importante è una qualità minima accettabile dell'immagine, è possibile specificare una quota di byte sufficientemente elevata e la quantità di compressione sarà determinata dal livello di qualità specificato.
Per ridurre il numero degli errori, ICER produce il flusso di bit compresso in pezzi o segmenti separati che possono essere decodificati in modo indipendente. Questi segmenti rappresentano regioni rettangolari dell'immagine originale, ma sono definiti nel dominio di trasformazione.
Se l'immagine fosse partizionata direttamente e la trasformazione wavelet applicata separatamente a ciascun segmento, in caso di compressione con perdita i confini tra i segmenti tenderanno ad essere evidenti nell'immagine ricostruita anche quando non vengono persi dati compressi.
Poiché ICER offre una flessibilità automatizzata nella scelta del numero di segmenti, l'efficacia della compressione può essere modulata con la protezione dalla perdita di pacchetti, adattando in tal modo i diversi tassi di errore del canale.
Più segmenti non sono sempre dannosi per l'efficacia della compressione: molte immagini vengono compresse in modo più efficace utilizzando da 4 a 6 segmenti (per immagini megapixel) perché diverse aree dell'immagine finiscono per far parte di segmenti diversi.

## Design comune al formato JPEG2000

JPEG 2000 ha alcuni punti in comune con il formato di compressione delle immagini ICER utilizzato per inviare le immagini dai rover Mars.
ICER (come JPEG 2000) è basato su wavelet e fornisce
* compressione progressiva.
* compressione senza perdita (utilizzando il compressore LOCO).
* compressione con perdita di dati.
* correzione dell'errore di contesto dell'immagine per limitare gli effetti della perdita di dati sul canale dello spazio profondo.
L'ICER offre prestazioni di compressione con perdita di dati competitive rispetto allo standard di compressione delle immagini JPEG2000.
Funzioni comuni ICER-JPEG 2000
* Entrambi offrono un numero variabile di riquadri immagine per aumentare l'efficacia della compressione sul canale dello spazio profondo. I riquadri delle immagini riducono le esigenze di memoria e tempi di elaborazione.
* Entrambi offrono una quota 'byte'.
* Entrambi offrono una quota di "qualità".

## Differenze tra ICER e JPEG 2000

JPEG2000 e ICER presentano molte importanti differenze interne
* JPEG 2000 utilizza la matematica a virgola mobile, mentre ICER utilizza solo la matematica di numeri interi. Pertanto ICER avrà buone prestazioni solo su CPU intere come il Transputer T414, mentre JPEG 2000 non funzionerà quando forzato in emulazione in virgola mobile.
* L'ICER fa capo ad un compressore LOCO (Low Complexity Lossless Compression) interno separato per una compressione delle immagini senza perdita.
* JPEG 2000 implementa un compressore lossless wavelet simmetrico a bassa complessità, ma ICER utilizza un compressore lossless non wavelet basato unicamente su interi.
* ICER e JPEG 2000 codificano gli spazi colore in modo diverso.
* ICER nella sua forma attuale comprime le immagini monocromatiche meglio delle immagini a colori grazie alle sue origini come formato di file interno della NASA Deep Space Network.
* L'ICER è soggetto a un superamento massimo dell'1% quando sono attive quote di byte e qualità. D'altro canto, i codec JPEG2000 sono in genere progettati per non superare mai le loro quote di byte.

## Quando si dovrebbe usare ICER o ICER 3D

ICER è stato creato per CPU di fascia bassa a 32 bit (essenzialmente computer embedded) su veicoli spaziali. Fu infine utilizzato per Mars Exploration Rovers. Non è mai stato usato per nessuna applicazione in tempo reale, solo in modalità quasi-realtime.
JPEG2000 è stato utilizzato da molte applicazioni di elaborazione delle immagini in tempo quasi reale e in tempo reale (Digital Cinema, Broadcast). I principali vantaggi del codec è che è privo di licenza (JPEG2000 PART1). Il comitato JPEG ha dichiarato: “È sempre stato un obiettivo forte del comitato JPEG che i suoi standard siano implementabili nella loro forma di base senza il pagamento di royalty e diritti di licenza [...] Sono stati raggiunti accordi con oltre 20 grandi organizzazioni che detengono numerosi brevetti in questo settore per consentire l'uso della loro proprietà intellettuale in connessione con lo standard senza il pagamento di canoni o royalties”. Il software di grafica remota di Hewlett-Packard utilizza un codec video chiamato HP3 (codec) che afferma di derivare dalla compressione Mars Rover - questa potrebbe essere un'implementazione in tempo reale di ICER.
ICER offre una nuova modalità chiamata Spectral + ICER che rende possibili livelli di distorsione di frequenza inferiore (ovvero errori di livello di grigio) con immagini ICER. Questa modalità è stata finora utilizzata solo con Mars Pathfinders, ma potrebbe vedere un'implementazione più ampia nello standard ICER .

## ICER 3D

I segmenti di contenimento degli errori in ICER-3D sono definiti spazialmente (nel dominio di trasformazione wavelet) in modo simile a JPEG 2000. I dati trasformati in wavelet sono partizionati più o meno come in ICER, tranne che in ICER-3D i segmenti si estendono attraverso tutte le bande spettrali. I segmenti di contenimento degli errori in ICER e ICER-3D sono definiti usando una forma non modificata dell'algoritmo di partizionamento rettangolo ICER.
In ICER-3D, i contesti sono definiti in base a due coefficienti vicini nella dimensione spettrale e nessun coefficiente vicino nello stesso piano spaziale. Ciò contrasta con lo schema di modellizzazione del contesto utilizzato dall'ICER, che utilizza informazioni precedentemente codificate da coefficienti spazialmente vicini.
ICER-3D sfrutta in parte le dipendenze dei dati 3D utilizzando una decomposizione wavelet 3D. La particolare decomposizione utilizzata da ICER-3D include ulteriori passaggi di decomposizione spaziale rispetto a una decomposizione 3-D Mallat. Questa decomposizione modificata offre vantaggi sotto forma di prestazioni quantitativamente migliorate di distorsione della frequenza e nell'eliminazione di artefatti di squillo spettrali.
ICER-3D sfrutta le proprietà di correlazione dei dati iperspettrali trasformati in wavelet usando una procedura di modellizzazione del contesto che enfatizza le dipendenze spettrali (piuttosto che spaziali) nei dati trasformati in wavelet. Ciò fornisce un guadagno significativo rispetto al modellatore di contesto spaziale alternativo considerato.
ICER-3D eredita anche la maggior parte delle importanti funzionalità di ICER, tra cui la compressione progressiva, la capacità di eseguire una compressione senza perdita e con perdita e un efficace schema di contenimento degli errori per limitare gli effetti della perdita di dati sul canale dello spazio profondo.