Bit blit
Il termine Bit blit, che sta per bit block transfer (scritto anche BITBLT, BIT BLT, BitBLT, Bit BLT, Bit Blt ecc..), indica un'operazione di computer grafica nella quale una o più bitmap sono combinate insieme utilizzando una funzione booleana.[1]
Descrizione
Una bit blit coinvolge almeno 2 bitmap, quella di origine e quella di destinazione. Possono essere coinvolte anche altre bitmap: in questo caso esse vengono utilizzate come "maschere", per modificare i bit della bitmap di origine. Le funzioni booleane che possono essere applicate sono AND, OR, XOR e NOT, usate singolarmente oppure combinate a formare funzioni più complesse.[2][1]
Le moderne tecniche di grafica hanno quasi del tutto sostituito le operazioni eseguite sui singoli bit con altre che creano effetti grafici più complessi, come la manipolazione del canale alfa, per via del fatto che le bit blip non permettono di ottenere risultati che rispecchiano i reali effetti di combinazione di luci o inchiostri. Alcuni programmi utilizzano ancora un'operazione di XOR per tracciare rettangoli di evidenziatura: usando questa tecnica è possibile infatti ottenere una trama di riempimento inusuale, che ben si evidenzia dal resto dell'immagine.[3]
Origini
Il nome deriva dalle routine BitBLT che gli sviluppatori software dello Xerox PARC crearono per gestire la grafica dei computer che progettarono negli anni settanta, come lo Xerox Alto, il primo computer a essere messo in commercio con un'interfaccia grafica basata sulla metafora della scrivania: le routine servivano per semplificare la gestione dell'immagine ed il tracciamento degli oggetti mediante lo spostamento di blocchi di dati all'interno della memoria video del computer. Lo sviluppo fu condotto da Dan Inglass e dal suo gruppo, composto da Larry Tesler, Bob Sproull e Diana Merry.[4][5]
Blitter
In seguito, per accelerare ulteriormente i calcoli ed alleggerire il carico di lavoro sulle CPU le tecniche di bit blit furono implementate anche in hardware mediante lo sviluppo di appositi coprocessori denominati Blitter. Nonostante tra gli anni settanta ed i primi anni ottanta fossero stati sviluppati dei controller video capaci di eseguire anche operazioni di bit blit, il primo vero chip sviluppato e creato solo per questo scopo fu l'Amiga Blitter, integrato nel chipset originale dei primi computer Amiga: esso era in grado di spostare o modificare blocchi rettangolari di grafica ma anche singole linee dell'immagine.[6]
Il Blitter di Amiga fu così famoso e fondamentale per il successo del computer che anche Atari Corporation decise di svilupparne uno da integrare nelle versioni aggiornate dell'Atari ST, i modelli Mega e STE. Denominato BLiTTER, BLock Image TransferrER, non fu però molto utilizzato perché gli sviluppatori software tendevano a produrre giochi e programmi compatibili anche con i modelli più vecchi, che ne erano sprovvisti. [7][8] Atari integrò un blitter anche nelle sue console Atari Lynx e Atari Jaguar.
Le moderne GPU
Le moderne GPU, discendenti dei primi chip blitter, eseguono operazioni di grafica 3D molto più complesse ed avanzate rispetto alle semplici bit blit a 2D,[9] ciò nonostante in alcune di esse sono ancora presenti delle unità blitter.[10]. Anche alcuni SoC integrano delle unità blitter, come ad esempio quelli prodotti da Texas Instruments.[11]
Note
- ^ a b Julio Sanchez, Maria P. Canton, Displaying Bit-Mapped images, in Software solutions for engineers and scientists, CRC Press, 2007, p. 690.
- ^ BLIT FAQ (TXT), su paradox.atari.org, Paradox Atari. URL consultato il 20/05/2015.
- ^ Graphics Context - Quick on the draw: XOR, su eclipse.org. URL consultato il 24/05/2015.
- ^ Eric Steven Raymond, Chapter 2. History: A Brief History of User Interfaces, su The first GUIs, catb.org. URL consultato il 24/05/2015.
- ^ Dan Inglass, Inter-Office Memorandum - Bit BLT (PDF), su bitsavers.informatik.uni-stuttgart.de, Xerox PARC. URL consultato il 24/05/2015.
- ^ Caratteristiche dell'Amiga Blitter, su amigadev.elowar.com, Amiga Developers Docs. URL consultato il 24/05/2015.
- ^ Appearance of BLiTTER, su sillyventure.eu, SillyVenture.
- ^ Atari ST(E) BLiTTER (TXT), su paradox.atari.org. URL consultato il 24/05/2015.
- ^ Technology that changed the gaming: the Commodore Amiga, su blitterandtwisted.com, BlitterAndTwisted. URL consultato il 24/05/2015.
- ^ Elenco di link alla documentazione delle unità blitter di alcune moderne GPU, su renderingpipeline.com, Renderingpipeline.org. URL consultato il 24/05/2015.
- ^ Bitblit User's Guide, su processors.wiki.ti.com, Texas Instruments. URL consultato il 24/05/2015.