This article needs additional citations for verification .(February 2015) |
In computer graphics, planar is the method of arranging pixel data into several bitplanes of RAM. Each bit in a bitplane is related to one pixel on the screen. Unlike packed, high color, or true color graphics, the whole dataset for an individual pixel is not in one specific location in RAM, but spread across the bitplanes that make up the display. Planar arrangement determines how pixel data is laid out in memory, not how the data for a pixel is interpreted; pixel data in a planar arrangement could encode either indexed or direct color.
This scheme originated in the early days of computer graphics. The memory chips of this era can not supply data fast enough on their own to generate a picture on a TV screen or monitor from a large framebuffer. [1] By splitting the data up into multiple planes, each plane can be stored on a separate memory chip. These chips can then be read in parallel at a slower rate, allowing graphical display on modest hardware, like game consoles of the third and fourth generations and home computers of the 80s. The EGA video adapter on early IBM PC computers uses planar arrangement in color graphical modes for this reason. The later VGA includes one non-planar mode which sacrifices memory efficiency for more convenient access. [2]
Game consoles with a planar display organization include Sega´s Master System and Game Gear, Nintendo´s NES / SNES, and the PC Engine. [3]
The British 8-bit BBC Micro has partial elements of a planar pixel arrangement. The Slovak PP 01 includes a 24KB plane-based 8-colour graphics mode with a resolution of 256x256 pixels. The 16-bit Atari ST and Amiga platforms from the 80s and 90s were exclusively based on a planar graphics configuration alongside a powerful blitter. Amiga´s OCS graphics chipset works with 5 bitplanes which allows 2^5=32 colors per pixel, while later models with the AGA chipset can handle eight bitplanes (2^8=256 colors).
For the Sinclair (Amstrad) ZX Spectrum computer family and compatible systems, a graphics expansion named HGFX was developed in 2019. In 2022 it was implemented in FPGA-based hardware. The HGFX enables a memory organization that is compatible with the original ZX Spectrum system while taking up only 6144 bytes of the original video RAM. In addition, it provides two video-buffers, 256 indexed colours, a truecolour palette, and an HDMI output. The HGFX works with eight bitplanes. [4] Currently it is implemented as part of the eLeMeNt ZX computer. [5]
On a chunky display with 4-bits-per-pixel and a RGBI palette, each byte represents two pixels, with 16 different colors available for each pixel. Four consecutive pixels are stored in two consecutive bytes as follows:
Byte index | 0 | 1 | ||
---|---|---|---|---|
Byte value (decimal) | 1 | 35 | ||
Byte value (hexadecimal) | 0x01 | 0x23 | ||
Nybble value (binary) | 0000 | 0001 | 0010 | 0011 |
Nybble value (decimal) | 0 | 1 | 2 | 3 |
Resulting pixel | Black | Blue | Green | Cyan |
Whereas a planar scheme could use 2 bitplanes, providing for a 4 color display. Eight pixels would be stored as 2 bytes non-contiguously in memory:
Byte index | 0 | Byte value | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Bit index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | hexadecimal | decimal |
Plane 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0x50 | 80 |
Plane 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0x30 | 48 |
Resulting pixel | 0 | 1 | 2 | 3 | 0 | 0 | 0 | 0 |
In the planar example, 2 bytes represent 8 pixels with 4 available colors, where the packed pixel example uses 2 bytes to represent fewer pixels but with more colors. Adding planes will increase the number of colors available at the cost of requiring more memory. For example, using 4 planes makes 24=16 colors available, but it would then take 4 bytes to represent 8 pixels (making it equivalent in terms of memory usage and available colors to the packed arrangement example).
Planar arrangements offer space and time efficiencies over packed arrangements at bit depths that are not powers of 2. As an example, consider 3 bpp, allowing 8 colors. With planar arrangements, this simply requires 3 planes. With packed arrangements, supporting exactly 3 bpp would require either allowing pixels to cross byte boundaries (incurring time costs due to complications with addressing and unpacking pixels) or padding (incurring space costs, as each byte would store 2 pixels and have 2 unused bits); historically, this is one reason (though not necessarily the main one) packed pixels used bit depths that fit evenly into bytes.
Planar arrangements allow for faster bit depth switching: planes are added or discarded and (if colors are indexed) the palette is extended or truncated. Consequently, support for higher bit depths can be added with little to no impact on older software. Ease of bit depth switching also allow elements with different bit depths to be easily used together.
A disadvantage of planar arrangements is that more RAM address cycles are needed for scrolling and animations.
The Amiga 500, also known as the A500, was the first popular version of the Amiga home computer, "redefining the home computer market and making so-called luxury features such as multitasking and colour a standard long before Microsoft or Apple sold these to the masses". It contains the same Motorola 68000 as the Amiga 1000, as well as the same graphics and sound coprocessors, but is in a smaller case similar to that of the Commodore 128.
The Original Chip Set (OCS) is a chipset used in the earliest Commodore Amiga computers and defined the Amiga's graphics and sound capabilities. It was succeeded by the slightly improved Enhanced Chip Set (ECS) and the greatly improved Advanced Graphics Architecture (AGA).
Video Graphics Array (VGA) is a video display controller and accompanying de facto graphics standard, first introduced with the IBM PS/2 line of computers in 1987, which became ubiquitous in the IBM PC compatible industry within three years. The term can now refer to the computer display standard, the 15-pin D-subminiature VGA connector, or the 640 × 480 resolution characteristic of the VGA hardware.
In packed pixel or chunky framebuffer organization, the bits defining each pixel are clustered and stored consecutively. For example, if there are 16 bits per pixel, each pixel is represented in two consecutive (contiguous) 8-bit bytes in the framebuffer. If there are 4 bits per pixel, each framebuffer byte defines two pixels, one in each nibble. The latter example is as opposed to storing a single 4-bit pixel in a byte, leaving 4 bits of the byte unused. If a pixel has more than one channel, the channels are interleaved when using packed pixel organization.
Amiga Advanced Graphics Architecture (AGA) is the third-generation Amiga graphic chipset, first used in the Amiga 4000 in 1992. Before release AGA was codenamed Pandora by Commodore International.
A framebuffer is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Modern video cards contain framebuffer circuitry in their cores. This circuitry converts an in-memory bitmap into a video signal that can be displayed on a computer monitor.
The Enhanced Graphics Adapter (EGA) is an IBM PC graphics adapter and de facto computer display standard from 1984 that superseded the CGA standard introduced with the original IBM PC, and was itself superseded by the VGA standard in 1987. In addition to the original EGA card manufactured by IBM, many compatible third-party cards were manufactured, and EGA graphics modes continued to be supported by VGA and later standards.
The BMP file format or bitmap, is a raster graphics image file format used to store bitmap digital images, independently of the display device, especially on Microsoft Windows and OS/2 operating systems.
Interleaved Bitmap (ILBM) is an image file format conforming to the Interchange File Format (IFF) standard. The format originated on the Amiga platform, and on IBM-compatible systems, files in this format or the related PBM format are typically encountered in games from late 1980s and early 1990s that were either Amiga ports or had their graphical assets designed on Amiga machines.
Extra Half Brite, is a planar display mode of the Amiga computer.
Color depth or colour depth, also known as bit depth, is either the number of bits used to indicate the color of a single pixel, or the number of bits used for each color component of a single pixel. When referring to a pixel, the concept can be defined as bits per pixel (bpp). When referring to a color component, the concept can be defined as bits per component, bits per channel, bits per color, and also bits per pixel component, bits per color channel or bits per sample (bps). Modern standards tend to use bits per component, but historical lower-depth systems used bits per pixel more often.
Mode 13h is the standard 256-color mode on VGA graphics hardware introduced in 1987 with the IBM PS/2. It has a resolution of 320×200 pixels. It was used extensively in computer games and art/animation software of the late 1980s and early to mid-1990s. "13h" refers to the number of the mode in the VGA BIOS. The "h" stands for hexadecimal.
The Commodore 65 is a prototype computer created at Commodore Business Machines in 1990–1991. It is an improved version of the Commodore 64, and it was meant to be backwards-compatible with the older computer, while still providing a number of advanced features close to those of the Amiga.
Hold-And-Modify, usually abbreviated as HAM, is a display mode of the Commodore Amiga computer. It uses a highly unusual technique to express the color of pixels, allowing many more colors to appear on screen than would otherwise be possible. HAM mode was commonly used to display digitized photographs or video frames, bitmap art and occasionally animation. At the time of the Amiga's launch in 1985, this near-photorealistic display was unprecedented for a home computer and it was widely used to demonstrate the Amiga's graphical capability. However, HAM has significant technical limitations which prevent it from being used as a general purpose display mode.
A display list is a series of graphics commands that define an output image. The image is created (rendered) by executing the commands to combine various primitives. This activity is most often performed by specialized display or processing hardware partly or completely independent of the system's CPU for the purpose of freeing the CPU from the overhead of maintaining the display, and may provide output features or speed beyond the CPU's capability.
In computing, indexed color is a technique to manage digital images' colors in a limited fashion, in order to save computer memory and file storage, while speeding up display refresh and file transfers. It is a form of vector quantization compression.
The AAA chipset was intended to be the next-generation Amiga multimedia system designed by Commodore International. Initially begun as a secret project, the first design discussions were started in 1988, and after many revisions and redesigns the first silicon versions were fabricated in 1992–1993. The project was stymied in 1993 based on a lack of funds for chip revisions.
The original ZX Spectrum computer produces a one bit per pixel, bitmapped colour graphics video output. A composite video signal is generated through an RF modulator, and was designed for use with contemporary 1980s television sets.
The ColecoVision, SG-1000, CreatiVision, and first-generation MSX computers use the TMS9918A Video Display processor (VDP), which has its own 16 KiB of video memory that was not shared with main memory. Compared to the unified system and video memory used by other 8-bit computers of the time, such as the Apple II, ZX Spectrum, and Commodore 64, separate memory has the advantage of freeing up of the Z80 processor's 64 KiB address space for main RAM, and the VDP does not need to steal CPU cycles to access video memory. The disadvantage is that the program has to use the CPU's dedicated I/O instructions to command the VDP to manipulate the contents of the video RAM. This not only slows down video access but also makes the porting of games from unified-memory platforms more difficult. Attempts of porting ZX Spectrum games were often thwarted by this difference. Also, programmers had to learn to optimally use the more advanced capabilities of the VDP.