Hold And Modify: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nuova pagina: Il modo '''Hold and Modify''' (più comunemente detto '''HAM''') è un modo video non standard del computer Commodore Amiga. Permette di visualizzare tutti e 4.096 colors della...
 
Botcrux (discussione | contributi)
m Bot: Aggiungo template {{interprogetto}} (FAQ)
 
(40 versioni intermedie di 24 utenti non mostrate)
Riga 1:
[[File:Screen color test Amiga 4096colors HAM.png|thumb|right|Esempio di immagine a 4.096 colori visualizzata su Amiga in modalità HAM]]
Il modo '''Hold and Modify''' (più comunemente detto '''HAM''') è un modo video non standard del computer [[Commodore]] [[Amiga]]. Permette di visualizzare tutti e 4.096 colors della palette dell'Amiga, usando solo 6 [[bit per pixel]], invece dei 12 bit per pixel che sarebbero necessari normalmente.
Con '''Hold-And-Modify''', spesso indicata con la sua sigla HAM, si intende una famiglia di modalità [[video]] di tipo grafico proprie della [[piattaforma (informatica)|piattaforma]] [[Amiga]].
 
La modalità HAM originaria, disponibile con i [[chipset]] [[Original Chip Set|OCS]], [[Enhanced Chip Set|ECS]] e [[Advanced Graphics Architecture|AGA]], permette di visualizzare sullo schermo tutti i 4.096 colori disponibili 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 bit a disposizione, due fungono da bit di controllo e stabiliscono il significato dei restanti quattro bit: se cioè verrà modificata una delle componenti [[RGB]] del pixel precedente, o se tutte e tre le componenti verranno prese da uno dei 16 colori di una particolare [[Tavolozza (informatica)|palette]] indicizzata.
Il modo HAM può essere visto come una tecnica di [[compressione dati lossy]], dove 12 bit di informazione di colore vengono memorizzati in 6 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.
 
IlNei modo HAM originario è supportato dal [[Originalcomputer Amiga chipset|OCS]],più disponibile nei primi Amiga. Negli Amigarecenti basati sul chipset [[Advanced Graphics Architecture|AGA]], è disponibile anche ununa nuovo modomodalità HAM che usa 8 bitplane,bit grazie alalla quale è possibile visualizzare 262.144 colori contemporaneamente. Per distingueredistinguerle ile due modi,modalità vennerosono chiamatichiamate "'''HAM6"''' (o '''HAM-6''') e "'''HAM8"''' (o '''HAM-8''').
Il modo 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.
 
Il modo L'HAM può essere visto come una tecnica di [[compressione dati lossy]], dove 12/18 bit di informazione di colore vengono memorizzati in 6/8 bit di memoria (con riduzione della qualità), e vengono decompressi via hardware in [[Sistema real-time|tempo reale]] man mano che illa buffermemoria dello schermovideo viene lettoletta e visualizzatovisualizzata dal processore grafico.
Il modo HAM originario è supportato dal [[Original Amiga chipset|OCS]], disponibile nei primi Amiga. Negli Amiga basati sul chipset [[Advanced Graphics Architecture|AGA]], è disponibile anche un nuovo modo HAM che usa 8 bitplane, grazie al quale è possibile visualizzare 262.144 colori contemporaneamente. Per distinguere i due modi, vennero chiamati "HAM6" e "HAM8".
 
== Funzionamento deldella modomodalità HAM6 ==
[[File:Amiga 500-3000 HAM6.jpg|thumb|right|I colori ottenibili in modalità HAM6]]
I chipset [[Original AmigaChip chipsetSet|OCS]] e [[Enhanced Chip Set|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 = 2<sup>4</sup>), sicchéquindi sono necessari 12 bit per memorizzare un colore.
 
Tuttavia, i chipset OCS ed ECS supportano modimodalità video con un massimo di 5 bit per pixel, sicchéquindi normalmente non si potrebbero visualizzare contemporaneamente più di 32 colori, scelti da una [[tavolozza (informatica)|tavolozza]] di 4096. Durante il tracciamento dello schermo, i 5 bit di ogni pixel formano l'indice del colore da utilizzare dalla tavolozza.
I chipset [[Original Amiga chipset|OCS]] e [[Enhanced Chip Set|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 = 2<sup>4</sup>), sicché sono necessari 12 bit per memorizzare un colore.
 
IlLa modalità [[ModoExtra Half HalfbriteBrite|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.
Tuttavia, i chipset OCS ed ECS supportano modi video con un massimo di 5 bit per pixel, sicché normalmente non si potrebbero visualizzare contemporaneamente più di 32 colori, scelti da una [[tavolozza (informatica)|tavolozza]] di 4096. Durante il tracciamento dello schermo, i 5 bit di ogni pixel formano l'indice del colore da utilizzare dalla tavolozza.
 
Il modo L'HAM, invece, consente di visualizzare contemporaneamente tutti i 4.096 colori dell'di 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à:<ref>{{RivistaVG|mc|63|144|5|1987|titolo=Tutta la grafica di Amiga|autore=Andrea de Prisco}}</ref>
Il [[Modo Halfbrite]] 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.
{| class="wikitable"
! 2 bit di controllo || 4 bit di dati|| Effetto
|-
*'''Da| tavolozza''':<code>00</code> || <code>XXXX</code> || da tavolozza (il colore viene preso dallada una tavolozza, di 16 colori usando come indice i 4 bit di dati.);
|-
*'''Modifica| Blu''':<code>01</code> || <code>BBBB</code> || modifica blu (usa il colore del pixel precedente, modificato nella sua componente blu.)
|-
*'''Modifica| Rosso''':<code>10</code> || <code>RRRR</code> || modifica rosso (usa il colore del pixel precedente, modificato nella sua componente rossa.)
|-
*'''Modifica| Verde''':<code>11</code> || <code>GGGG</code> || modifica verde (usa il colore del pixel precedente, modificato nella sua componente verde.)
|}
 
== Funzionamento didella modalità HAM8 ==
Il modo 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à:
Con l'[[Advanced Graphics Architecture|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.
*'''Da tavolozza''': il colore viene preso dalla tavolozza, usando come indice i 4 bit di dati.
*'''Modifica Rosso''': usa il colore del pixel precedente, modificato nella sua componente rossa.
*'''Modifica Verde''': usa il colore del pixel precedente, modificato nella sua componente verde.
*'''Modifica Blu''': usa il colore del pixel precedente, modificato nella sua componente blu.
 
IlLa modomodalità HAM8 è del tutto analogoanaloga al modoad 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 i 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 della componente cromatica rimangono invariati.
== Funzionamento di HAM8 ==
{| class="wikitable"
! 2 bit di controllo || 6 bit di dati|| Effetto
|-
| <code>00</code> || <code>XXXXXX</code> || da tavolozza (il colore viene preso da una tavolozza di 64 colori usando come indice i 6 bit di dati);
|-
| <code>01</code> || <code>BBBBBB</code> || modifica blu (usa il colore del pixel precedente modificato nella sua componente blu)
|-
| <code>10</code> || <code>RRRRRR</code> || modifica rosso (usa il colore del pixel precedente modificato nella sua componente rossa)
|-
| <code>11</code> || <code>GGGGGG</code> || modifica verde (usa il colore del pixel precedente modificato nella sua componente verde)
|}
 
== Vantaggi e svantaggi ==
Con l'[[Advanced Graphics Architecture]], 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.
Nel 1985, quando fu lanciato l'Amiga, il modo HAM costituiva un vantaggio rispetto ai sistemi concorrenti, in quanto consenstivaconsentiva 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. Inoltre questa modalità, per le sue caratteristiche che costringono il processore grafico a ricalcolare in tempo reale i colori dell'immagine, è intrinsecamente più lenta delle altre modalità grafiche di Amiga, tanto da aver fatto valutare a [[Jay Miner]], il progettista del [[Original Chip Set#Blitter|Blitter]], l'opportunità di eliminarla dalla versione definitiva del chip<ref>{{Cita web|lingua=en|titolo=A history of the Amiga, part 2: The birth of Amiga|url=https://arstechnica.com/gadgets/2007/08/a-history-of-the-amiga-part-2/3/|autore=Jeremy Reimer|data=13 agosto 2007|accesso=24-05-2015}} - Traduzione in italiano del testo in [http://www.recensopoli.it/2010/12/tecnopoli-una-storia-dellamiga-parte-2_18.html Una storia dell'Amiga, parte 2]</ref>.
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.
 
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 i BOB (gli ''[[Sprite (informatica)|sprite]]'' di Amiga) con il Blitter senza rovinare l'immagine sottostante.
== Vantaggi e svantaggi==
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.
 
== Note ==
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.
<references />
 
==Bibliografia==
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.
 
==Riferimenti==
* ''Amiga Hardware Reference Manual'', Commodore-Amiga
* ''Specification for the Advanced Amiga (AA) Chip Set'', Commodore-Amiga
 
== Voci Correlatecorrelate ==
*[[ModoExtra HalfbriteHalf Brite]]
 
==Riferimenti Esterni==
 
* Demo animati del modo [http://www.randelshofer.ch/animations/anims/eric_w_schwartz/AmigaHopAnim.HAMVE.html HAM-6] e del modo [http://www.randelshofer.ch/animations/anims/eric_w_schwartz/AmigaHopAnim.HAM8VE.html HAM-8] (richiede [[Piattaforma Java|Java]]).
 
== Altri progetti ==
[[Categoria: Amiga]]
{{interprogetto}}
 
== Collegamenti esterni ==
[[en:Amiga Hold-and-Modify]]
* Demo animati del modo [http://www.randelshofer.ch/animations/anims/eric_w_schwartz/AmigaHopAnim.HAMVEHAM.html HAM-6] e del modo [http://www.randelshofer.ch/animations/anims/eric_w_schwartz/AmigaHopAnim.HAM8VEHAM8.html HAM-8] (richiede [[Piattaforma Java|Java]]).
[[de:Hold-And-Modify Modus]]
{{Amiga}}
[[fr:Mode HAM]]
{{Portale|Informatica}}[[Categoria: Amiga]]
[[ru:Hold and modify]]