Blitter

Blitter ( eng.  Blitter ) - inițial un cip sau o parte a unui coprocesor grafic care copiază și suprapune rapid fragmente de imagine în memorie (acest proces se numește bit-blit ), care eliberează resursele CPU și accelerează lucrul cu grafica. Numele provine de la acronimul BLIT (în engleză:  BLock Image Transfer ). Aplicația principală a blitterului a fost în lucrul cu grafica 2D și transformările aferente.

Nevoia unui Blitter

Inițial, procesarea bitmap a folosit zone din memoria principală care au fost procesate de CPU . Lucrul cu grafica (suport pentru sprites , umplerea unei zone cu culoare) ar putea necesita o mulțime de resurse.

Odată cu îmbunătățirea hardware-ului grafic ( framebuffer ), au fost acceptate rezoluții mai mari și adâncimi de culoare . Jocurile care au folosit pe deplin caracteristicile grafice ar necesita în mod normal viteze mari cu transferuri multiple de date în memorie. O astfel de muncă necesită o mulțime de resurse de la CPU, luându-i timp pentru a lucra cu alte sarcini.

Blitting nu este singura soluție pentru procesarea grafică de înaltă performanță. O soluție mai comună a fost utilizarea tehnologiei sprite . Imaginile mici (sprite) au fost plasate deasupra imaginii de fundal independent de aceasta. De regulă, la afișarea următoarei linii orizontale de pixeli ( linia de scanare ) a ecranului, cipul video a analizat ce sprite-uri l-au lovit și pentru fiecare pixel de fundal afișat a verificat dacă era suprapus de pixeli sprite, schimbând culoarea dacă este necesar. Acest lucru a eliminat necesitatea copierii masive a memoriei de către procesor, dar a necesitat ca cipul video să acceseze frecvent memoria sprite, care a fost adesea alocată unui banc separat de memorie fizică.

Dezavantajul acestei abordări a fost că logica de procesare a sprite-urilor a fost codificată în cip, iar numărul de imagini procesate simultan a fost limitat - de la două ( Atari 2600 ) la opt ( Commodore 64 ) sprite-uri și o astfel de consolă de jocuri precum Famicom / NES putea scoate până la 64 de sprite-uri pe ecran, dar nu mai mult de 8 sprite-uri într-o singură linie, cu un număr mai mare dintre ele, de regulă, acestea au început să „faie cu ochiul”, stingându-se și pornind într-o ordine diferită. .

În tehnologia blitter, numărul de obiecte este limitat doar de performanța dispozitivului în sine și de cantitatea de memorie pe care o folosește. Odată cu creșterea performanței computerului, acest avantaj a anulat avantajele utilizării sprite-urilor și, în cele din urmă, sistemele de procesare a sprite-urilor au fost transformate în blittere. Cu toate acestea, aproape toate computerele cu apariția manipulatoarelor de tip mouse sunt capabile să afișeze cel puțin un sprite hardware - cursorul propriu-zis al mouse- ului.

Apariția blitterului în computere

Pentru a rezolva problema, dezvoltatorii de computere au creat un dispozitiv special. Atunci când procesează grafica, CPU ar trimite descrierea operațiunii bit-blit necesare către blitter, care ar procesa majoritatea operațiunilor grafice 2D în paralel și, prin urmare, ar accelera aplicațiile.

Primele dispozitive asemănătoare blitterului au apărut în consolele de jocuri Bally Astrocade , renumite pentru capabilitățile lor bogate de procesare grafică pentru acea vreme. O secțiune de memorie până la adresa 0x4000 a fost alocată în consolă, iar când s-a încercat să scrie în ea, a fost apelat cipul grafic.

Un dispozitiv care implementează pe deplin funcțiile unui blitter a apărut pentru prima dată în computerele Commodore Amiga , pentru care Commodore a primit brevetul US 4874164. Aparatură de  computer personal pentru transferul în bloc al datelor de imagine bi-map ).

Blitter-uri în computerele moderne

Toate procesoarele grafice moderne au funcții inerente capacităților blitter-ului, dar accesul la acestea este ascuns și nu este recomandat, mai ales atunci când lucrați cu grafică tridimensională.

API-urile moderne ( Direct3D și OpenGL ) vă obligă să descrieți întregul cadru și apoi să îl desenați de la zero. Mutarea datelor direct în framebuffer este mai puțin eficientă și poate fi considerată o practică de programare proastă. Dispozitivele moderne au deja un set de funcții de procesare a imaginii (rotire, zoom și transparență) care sunt ușor accesibile printr-un API. Utilizarea texturilor pentru a reda poligoane face ca blitterele să fie depășite. Cu toate acestea, această tehnologie și-a găsit aplicația în subsistemele grafice moderne cu consum redus de energie.

Note

  1. Brevetul SUA Nr. 4 874 164. Aparatură computer personală pentru transferul în bloc al datelor de imagine mapate pe biți . Descrierea brevetului pe site-ul Oficiului pentru Brevete și Mărci din SUA .