Hold And Modify

Da Wikipedia, l'enciclopedia libera.

L'HAM (acronimo dell'inglese "Hold-And-Modify") è una famiglia di modi video di tipo grafico della piattaforma Amiga.

La modalità HAM originaria, disponibile con i chipset OCS, ECS e AGA, permette di visualizzare sullo schermo tutti i 4.096 colori della palette usando solo 6 bit per pixel invece dei 12 bit per pixel che sarebbero necessari. L'HAM funziona sulle sequenze di pixel della stessa linea: dei 6 bitplane, due stabiliscono se verrà modificata una delle componenti RGB del pixel precedente, o se tutte e tre le componenti verranno prese da uno dei 16 colori della palette indicizzata.

Nei computer Amiga basati sul chipset AGA è disponibile anche una modalità HAM che usa 8 bitplane grazie al quale è possibile visualizzare 262.144 colori contemporaneamente. Per distinguerle le due modalità sono chiamate HAM6 (o HAM-6) e HAM8 (o HAM-8).

L'HAM può essere visto come una tecnica di compressione dati lossy, dove 12/18 bit di informazione colore vengono memorizzati in 6/8 bit di memoria (con riduzione della qualità), e vengono decompressi via hardware in tempo reale man mano che il buffer dello schermo viene letto e visualizzato.

Funzionamento del modo HAM6[modifica | modifica sorgente]

I chipset OCS e ECS supportano 16 livelli distinti per le componenti cromatiche rossa, verde e blu, per un totale di 4.096 colori possibili (16 * 16 * 16 = 4096). Ognuna delle 3 componenti richiede 4 bit di memoria (16 = 24), sicché sono necessari 12 bit per memorizzare un colore.

Tuttavia, i chipset OCS ed ECS supportano modi video con un massimo di 5 bit per pixel, quindi normalmente non si potrebbero visualizzare contemporaneamente più di 32 colori, scelti da una tavolozza di 4096. Durante il tracciamento dello schermo, i 5 bit di ogni pixel formano l'indice del colore da utilizzare dalla tavolozza.

La modalità EHB consente di aggiungere ai 5 bit per pixel un sesto bit. A differenza dei primi 5, usati per l'indice del colore, il sesto bit indica se il colore estratto dalla tavolozza va usato così com'è, oppure dimezzandone l'intensità. Anche così però non si hanno a disposizione che 64 colori.

L'HAM, invece, consente di visualizzare contemporaneamente tutti i 4.096 colori dell'Amiga. Per far questo utilizza 6 bit per pixel: 2 come bit di controllo, e 4 come bit di dati. Il colore del pixel è dunque determinato in base ai bit di controllo, secondo le seguenti quattro possibilità[1]

Bit controllo Effetto
00 da tavolozza (il colore viene preso dalla tavolozza usando come indice i 4 bit di dati);
01 modifica blu (usa il colore del pixel precedente modificato nella sua componente blu).
10 modifica rosso (usa il colore del pixel precedente modificato nella sua componente rossa);
11 modifica verde (usa il colore del pixel precedente modificato nella sua componente verde);

Funzionamento di HAM8[modifica | modifica sorgente]

Con l'AGA, le capacità grafiche di Amiga vennero migliorate. Si passò da 4 ad 8 bit per componente cromatica, per un totale di 16.777.216 di colori possibili. Da 6 bit per pixel si passò inoltre a 8 bit per pixel, che consentivano di indicizzare una tavolozza estesa a 256 colori.

Il modo HAM8 è del tutto analogo al modo HAM6: per ogni pixel si hanno sempre 2 bit di controllo, ma 6 bit di dati anziché 4, che possono essere usati per scegliere uno tra 64 colori dalla tavolozza, oppure per modificare i 6 bit più significativi di una delle componenti cromatiche del colore del pixel precedente. I 2 bit meno significativi rimangono invariati.

Vantaggi e svantaggi[modifica | modifica sorgente]

Nel 1985, quando fu lanciato l'Amiga, il modo HAM costituiva un vantaggio rispetto ai sistemi concorrenti, in quanto consenstiva al sistema di visualizzare foto digitalizzate e alcune immagini in rendering 3D ad un livello considerato "fotorealistico" per quel periodo.

Il modo HAM è solo un'approssimazione del truecolor. Possono essere necessari fino a tre pixel per passare da un colore ad un altro, sicché nel visualizzare cambiamenti repentini di colore, spesso presenti nelle foto digitalizzate, possono comparire evidenti frange multicolori.

Il modo HAM è inoltre difficile da usare nei giochi e nelle applicazioni dove il contenuto dello schermo va modificato. Se si fa scorrere lo schermo verso sinistra, fino a farne uscire un pixel "di base", i pixel successivi, da questo dipendenti, assumono colori errati. Questo effetto collaterale complica la gestione degli scorrimenti orizzontali. Una cosa analoga succede se un pixel "di base" viene inserito in una sequenza di pixel interdipendenti; per questo motivo è difficile disegnare BOB con il blitter senza rovinare l'immagine sottostante.

Note[modifica | modifica sorgente]

  1. ^ Andrea de Prisco, Tutta la grafica di Amiga in MC Microcomputer (Roma), Technimedia, maggio 1987, p. 144.

Riferimenti[modifica | modifica sorgente]

  • Amiga Hardware Reference Manual, Commodore-Amiga
  • Specification for the Advanced Amiga (AA) Chip Set, Commodore-Amiga

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]