Bit blit

from Wikipedia, the free encyclopedia

In computer graphics, a bit blit (for bit block image transfer ; also known as BitBlt or similarly for bit block transfer ) is an operation that is responsible for quickly copying and moving memory contents ( blitting ). Bit blit can be implemented either as a software procedure or as a function of a hardware-based graphics output ( graphics card , chip or chipset ); in the case of a dedicated chip, this is also called a blitter .

Bit Blit goes back to the so-called RasterOp specification by Newman and Sproull, a function for bit-by-bit copying of memory blocks, which was, however, still very limited. A hardware implementation of the RasterOp function was presented by VLSI Technology in 1986. This chip had no DMA function and could therefore hardly relieve the main processor.

graphic

Blitting is mainly used to speed up graphics output. Image areas are shifted, copied, manipulated bit by bit or two raster graphics parts are combined into one. The CPU is not loaded when using the blitter, provided that it is capable of DMA . The concept was developed by Dan Ingalls at the Xerox PARC research center for the Xerox Alto computer. In older computers, the CPU was often too slow to quickly copy large blocks of data into memory. The task was taken over by a special chip or co-processor, the aforementioned blitter. Many home computers such as the Amiga ( Amiga Blitter , already with DMA acceleration since 1985) and some Atari ST models (including the Mega ST series from 1987 and the STE series from 1989) had a blitter. This also made it possible to keep the CPU busy with other tasks while the blitter was manipulating screen data.

Blitting also found its way into the world of PC-compatible x86 processor computers. At first, such graphics cards were also known as "Windows accelerators" because they relieved the processor of the need to transfer data over the ISA bus . If this is done within the graphics card by the graphics processor in a separate graphics RAM, the CPU and normal memory are also relieved here. This is also referred to as 2D acceleration. Like the later introduced 3D acceleration, it is the responsibility of the graphics processor.

A classic example of blitting is moving a window in a graphical user interface. A large memory block (the window content) must be moved from one memory location (original position) to another memory location (target position). If this happens without hardware acceleration, such as in the safe mode of Windows XP or using the X11 - vesa driver, this process can be followed: The window is not moved as a whole, but in pieces. In addition, the graphical user interface is usually blocked during this time. Earlier surfaces such as Windows 3.1 or Windows 95 therefore only drew the frame during the move process and only moved the window contents when the target position was determined. In addition, the resolutions and thus the data volumes were lower.

literature

  • William Newman and Robert Sproull: Principles of Interactive Computer Graphics . McGraw Hill, 1978
  • John Atwood: 16160 RasterOp Chip Data Sheet . Silicon Compilers, 1984
  • User Manual for the Atari ST Bit-Block Transfer Processor (BLiTTER) , The Atari Corporation, Sunnyvale, June 1987

Web links