Hold og modificer (bogstaveligt talt fra engelsk. "Hold and Change", bedre kendt som HAM ) er en unik videotilstand tilgængelig på personlige computere i Amiga -familien . Det fungerer efter princippet om at huske ( holde ) farven på den sidst viste pixel og derefter ændre dens røde ( R ), grønne ( G ) eller blå ( B ) komponenter. Dette gør det muligt for det klassiske Amiga - chipsæt at vise op til 4096 farver på skærmen, med 6 fysiske bits pr. punkt ( HAM6-tilstand ) brugt til at optage farven (i AGA - chipsæt HAM8 -tilstand).Der bruges 8 bit, hvilket giver mulighed for samtidig visning af 262.144 farver på skærmen).
Ulempen ved videotilstanden er, at nogle farveændringer kræver ændring af komponenterne af 3 pixels placeret ved siden af det punkt, hvis farve ændres. Derfor, hvis paletten til skærmen blev valgt uden held, kan billedartefakter forekomme , omtrent svarende til artefakter, der ses i en lignende JPEG -grafikinformationskomprimeringsalgoritme . En anden ulempe ved denne tilstand er vanskeligheden ved at bruge den til vektorgrafik .
Det var imidlertid denne tilstand, der gjorde det muligt for Amiga 1000 at blive verdens første multimedie - personlige computer , hvilket gav den en overvældende fordel i forhold til konkurrerende platforme. HAM - tilstanden gjorde det for første gang muligt at vise billeder på en computerskærm, samt nogle 3D-modeller med fotorealistisk kvalitet. Nogen tid senere dukkede hardware og software op til behandling og titel af videosekvensen. Således tillod HAM også Amiga at føre feltet for ikke-lineær videoredigering i mange år (selv efter sammenbruddet af Commodore Corporation i 1995), mens det forblev uopnåeligt med hensyn til omkostninger og den bedste softwaresupport.
Klassiske Amigaer baseret på OCS / ECS - chipsæt bruger kun 6 bit til at skrive farven på en prik. De fleste visningstilstande fungerer med farver indekseret i paletten, og 5 bit bruges til at skrive farveindekset. Derfor kan kun 25 (=32) farver vises på sådanne skærme på samme tid . Andre skærmtilstande gør det muligt at bruge den 6. bit til at angive farvens lysstyrke (pixels med den 6. farvebit indstillet vises med halv lysstyrke), det vil sige, at antallet af farver, der vises på samme tid, øges til 2×2 5 (=64).
HAM6-tilstand bruger 6 bits, hvoraf to typisk angiver, om de lagrede 4 bits var et indeks i en 16-farvepalet, eller om det var en ændring i en af farvekomponenterne (f.eks. de røde og grønne komponenter i den forrige viste pixel gemmes og skifter nu til blå). De gemte 4 bit bruges som den absolutte værdi for den modificerede RGB-komponent.
Følgende værdier er mulige:
I dette tilfælde skal linjen af pixels altid begynde med en af farverne, der er indekseret i paletten.
HAM6 tillader samtidig visning af ikke mere end 4096 farver, da algoritmen beskriver 12-bit grafik (4 bits for hver af farvekomponenterne), og 2 12 = 4096.
Den klassiske Amiga baseret på AGA -chipsættet bruger 8 bits (2 8 = 256 farver) til at gemme farven på en pixel, og HAM8 -tilstanden er også tilgængelig , som beskriver 18-bit grafik (6 bits pr. komponent). HAM8-tilstand tillader , at maksimalt 262.144 farver (218) vises samtidigt fra en palet på 16.777.216 farver (24-bit palet).
HAM -tilstanden blev oprindeligt implementeret i Amiga - chipsættet som en eksperimentel. For at citere Jay Miner (kendt som "faren" til Amigaen):
Hold and Modify opstod som et resultat af en tur, hvor jeg fik set militære flysimulatorer i aktion og få en form for VR -oplevelse . Implementeringen af NTSC på chippen betyder, at du kan beholde en farves nuance og ændre dens lysstyrke med kun fire bits. Da vi flyttede til RGB , sagde jeg, at denne funktion var blevet ubrugelig og bad ham, der var ansvarlig for at lave chiplayoutet, om at fjerne den. Han kom tilbage til mig og sagde, at dette ville efterlade et stort hul i midten af chippen, og at det ville tage ham mindst tre måneder at lave topologien om. Det havde vi selvfølgelig ikke råd til. Jeg troede ikke, at nogen nogensinde ville bruge det. Og her tog jeg fejl igen, for dette gav bare Amigaen den farvepalet, som resten manglede.
HAM -tilstand er ikke understøttet på AmigaOS 4 og MorphOS , og den chipsæt-orienterede software fra den klassiske Amiga viste sig at være inkompatibel med disse operativsystemer .