Trochę blit

W grafice komputerowej bit blit (do przesyłania obrazu bloków bitowych ; znany również jako BitBlt lub podobnie do przesyłania bloków bitowych ) jest operacją odpowiedzialną za szybkie kopiowanie i przenoszenie zawartości pamięci ( blitting ). Bit blit można zaimplementować jako procedurę programową lub jako funkcję sprzętowego wyjścia graficznego ( karta graficzna , chip lub chipset ); w przypadku dedykowanego chipa nazywa się to również blitterem .

Bit Blit wraca do tak zwanej specyfikacji RasterOp Newmana i Sproull, funkcji służącej do kopiowania bloków pamięci bit po bicie, która była jednak nadal bardzo ograniczona. Sprzętową implementację funkcji RasterOp zaprezentowała firma VLSI Technology w 1986 roku. Ten układ nie miał funkcji DMA i dlatego nie mógł odciążyć głównego procesora.

graficzny

Blitting służy głównie do przyspieszania grafiki. Obszary obrazu są przesuwane, kopiowane, przetwarzane bit po bicie lub dwie części grafiki rastrowej są łączone w jedną. CPU nie jest ładowany podczas korzystania z blitter, pod warunkiem, że jest zdolny do DMA . Koncepcja została opracowana przez Dana Ingallsa w centrum badawczym Xerox PARC dla komputera Xerox Alto . W starszych komputerach procesor był często zbyt wolny, aby szybko kopiować duże bloki danych do pamięci. Zadanie przejął specjalny chip lub koprocesor, wspomniany blitter. Wiele komputerów domowych, takich jak Amiga ( Amiga Blitter , z akceleracją DMA od 1985 r.) I niektóre modele Atari ST (w tym seria Mega ST z 1987 r. I seria STE z 1989 r.) Miały blitter. Umożliwiło to również zajęcie procesora innymi zadaniami, podczas gdy blitter manipulował danymi na ekranie.

Blitting trafił również do świata komputerów PC z procesorami x86 . Początkowo takie karty graficzne były również nazywane „akceleratorami Windows”, ponieważ zwalniały procesor z konieczności przesyłania danych po magistrali ISA . Jeśli zostanie to zrobione na karcie graficznej przez procesor graficzny w oddzielnej graficznej pamięci RAM, procesor i normalna pamięć RAM również zostaną tutaj zwolnione. Nazywa się to również przyspieszeniem 2D. Podobnie jak później wprowadzona akceleracja 3D, za to odpowiada procesor graficzny.

Klasycznym przykładem blittingu jest przesuwanie okna w graficznym interfejsie użytkownika. Duży blok pamięci (zawartość okna) musi zostać przeniesiony z jednej lokalizacji pamięci (pozycja pierwotna) do innej lokalizacji pamięci (pozycja docelowa). Jeśli dzieje się to bez akceleracji sprzętowej, na przykład w trybie awaryjnym systemu Windows XP lub przy użyciu sterownika X11 - vesa , można postępować zgodnie z następującym procesem: Okno nie jest przenoszone w całości, ale w częściach. Ponadto graficzny interfejs użytkownika jest zwykle w tym czasie zablokowany. Dlatego wcześniejsze powierzchnie, takie jak Windows 3.1 lub Windows 95, rysowały ramkę tylko podczas procesu przenoszenia i przenosiły zawartość okna tylko wtedy, gdy została określona pozycja docelowa. Ponadto rozdzielczości, a tym samym wolumeny danych, były niższe.

literatura

  • William Newman i Robert Sproull: Zasady interaktywnej grafiki komputerowej . McGraw Hill, 1978
  • John Atwood: Karta danych układu 16160 RasterOp . Silicon Compilers, 1984
  • Podręcznik użytkownika procesora transferu bloków bitowych Atari ST (BLiTTER) , The Atari Corporation, Sunnyvale, czerwiec 1987

linki internetowe