Planar (computer graphics)

Last updated

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.

Contents

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]

Hardware with planar graphics

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]

Combining four one-bit planes into a final "four bits per pixel" (16-color) image Diagram of planar computer graphics.svg
Combining four one-bit planes into a final "four bits per pixel" (16-color) image

Examples

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 index01
Byte value (decimal)135
Byte value (hexadecimal)0x010x23
Nybble value (binary)0000000100100011
Nybble value (decimal)0123
Resulting pixelBlackBlueGreenCyan

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 index0Byte value
Bit index01234567hexadecimaldecimal
Plane 0010100000x5080
Plane 1001100000x3048
Resulting pixel01230000

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).

Advantages and disadvantages

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.

See also

Related Research Articles

<span class="mw-page-title-main">Amiga 500</span> Personal computer by Commodore

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.

<span class="mw-page-title-main">Original Chip Set</span> Chipset used in Amiga personal computer

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).

<span class="mw-page-title-main">Video Graphics Array</span> Computer display standard and resolution

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.

<span class="mw-page-title-main">Framebuffer</span> Portion of random-access memory containing a bitmap that drives a video display

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.

<span class="mw-page-title-main">Enhanced Graphics Adapter</span> IBM PC graphic adapter and display standard

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.

<span class="mw-page-title-main">ILBM</span> File format

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.

<span class="mw-page-title-main">Amiga Halfbrite mode</span>

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.

<span class="mw-page-title-main">Mode 13h</span> Standard 256-color mode on VGA graphics hardware

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.

<span class="mw-page-title-main">Commodore 65</span> Prototype computer

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.

<span class="mw-page-title-main">Hold-And-Modify</span> Display mode used in Commodore Amiga computers

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.

<span class="mw-page-title-main">ZX Spectrum graphic modes</span> Graphic modes of the ZX Spectrum computer

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.

References

  1. Rogers, David F. (1985). Procedural Elements for Computer Graphics . McGraw-Hill. p.  13. ISBN   0-07-053534-5.
  2. "VGA Hardware - OSDev Wiki". wiki.osdev.org. Retrieved September 4, 2017.
  3. "Planar vs Chunky Pixel organization" . Retrieved June 27, 2022.
  4. "HGFX". wiki.ilnx.cz. Retrieved June 22, 2022.
  5. "eLeMeNt ZX". sites.google.com/view/elementzx/home. Retrieved June 22, 2022.