Screen Saver in Linux - a spiral display of colors around a center of a pink

In a previous article I wrote a high level overview of the basics of Input/Output (I/O) devices for computers. These devices are the hardware that make a CPU useful for humans. One piece of I/O, display, is a key component of the interaction and works in an interesting way. The words you view on the screen are stored as bits in memory and displayed on monitor screens. This article provides an overview of how the graphics displayed on your monitor are a translation of 0's and 1's stored in your computer.

How Graphic Displays Work

The original computers did not have a graphic display. Output from software was printed out, which limited the amount of interaction with the computer. There were light bulb displays that were used to show the status of the computer and that the software was running. These displays were called monitors since they were used to check the status of the computer.

Eventually Cathode Ray Tubes (CRT) displays were connected and used for display of data in the computer. They would be connected with a computer and the user could see their commands and the results. The displayed information was stored in RAM. The first displays were in two colors that displayed characters on a screen. When information was displayed, bits in memory are turned off/on and represent pixels that make up characters, symbols and images displayed on the screen.

This method was not used to display images, although creating pictures out of ASCII characters was a method of displaying information in a different method. Eventually, as available RAM grew cheaper and plentiful, an entire 'page' of RAM would be set aside for displaying graphics on the monitor. Each pixel uses a location in memory to store the location and color associated with that pixel on the screen. Years ago the information for each pixel was stored in 4 bits of RAM. The combination of bits were associated with the colors. Four bits would allow the display of 8 different colors. The use of larger sets of bits allowed the use of more colors. Each color was assigned a number and eventually displays could support up to 256 colors while using this method of display. The bits storing color were stored in consecutive locations in RAM that were mapped to the graphic display. By setting the location of each pixel, it eliminated the need to store the coordinates of the pixel and save on memory.

The next innovation was the development of the Red, Green, Blue  (RGB) method of mapping the color of a pixel. Each pixel has three colors associated with it, Red, Green and Blue. Each color has a value associated with it. When these colors are mixed, new colors are created. A byte is set aside for each color which means that 255 shades of that color can be created. This results in over 16 million possible colors, although it may be hard to tell the difference when only one bit is changed for one of the values.

An Applie II monitor, turned off, sitting on a green cloth

Light is used to display the colors, so black is the absence of light and is represented by a value of #00000 in RGB. This value represents that none of the colors are set. For white, it is represented by #FFFFFF, where all of the colors are set to the maximum value. Red is #FF0000, Green is #00FF00 and Blue is #0000FF.

Animation is created by manipulating the pixels on the screen and shifting colors to create the illusion of movement. Early examples of animation were the pong games, where a ball bounced across a screen and players could use a paddle to bounce it in a different direction. This type of movement requires math formulas that generate coordinates for where an object will move to. The formulas also calculate the previous location so the old image can be erased. If you've seen an item repeating itself across a screen, you are seeing an example of the formula not erasing the old information and replacing it with the background.

When displaying animation, the movement would appear slow as the processor calculated the what pixels should be set or erased. This led to the use of a second page of RAM that could be swapped with the first page of graphic display. While the first page was displayed and waiting for input, the CPU would update the second page with new information. The pages would be swapped and animation would appear smoother. Other options included drawing two duplicate pages at first and only update the moving parts each time, in order to speed up processing and allow for a quicker swap of the pages.

As technology developed, independent graphic cards were created for managing the graphics on the screen. The graphic cards are optimized for many mathematical calculations to support high speed animation on the screen. The cards also contain a separate set of RAM that is only used for displaying the images that appear on your screen. With large amounts of RAM the graphics card processor can create static images and use other RAM to generate the animation which helps to speed up the display of items on the screen. For office software, there is not a large load of processing for the graphics card so a built-in video card is usually sufficient for the computer. For video games, where a world is simulated, a large amount of calculations are performed in order to create smooth, realistic images. For computers that are used for video games or graphic illustration, a separate graphics card is crucial in order to support the display of large, changing images on the monitor.

Processing pixels and plotting every single pixel on a screen requires a lot of CPU and graphics card processing. In order to save memory and increase speed, other methods of creating graphics have been developed. Vector based graphics describe an object using coordinates and math formulas to create the image. Instead of plotting every pixel, like a digital camera photo, the outlines of objects are mapped and colors are assigned to them. These vector objects use less memory. They can also increase or decrease in size without the loss of resolution. When a pixel based image is enlarged, the software has to interpolate and fill in pixels for the larger size. This can lead to a poor resolution and poorer graphics quality. A vector based image can be increased to almost any size and the software can fill in the pixels to create the image.

The Impacts of Graphic Displays

Two Digital Video Interface (DVI) connectors on the back of a Windows PC computer

With the use of RAM for graphics display, this led to the development of methods to reduce or remove the processing load from the central CPU and RAM. The requirement to use numbers to create images invented a new field of artwork for digital pictures. New tools had to be developed that translated lines and colors into 0's and 1's that a computer could understand. All of this translation, using mathematical formulas, required a great deal of processing power for this new medium.

The large amount of RAM required for raw images helped to fuel the research into better compression methods when the images were saved to files. Examples of these compression formats are JPEG, GIF and PNG formats for files. Each file format uses a different algorithm  to reduce the amount of space required to store files. As animation was added, new compression methods were developed for the files. Examples of compressed animation files are MPEG and MP4.  

The display of graphics on a computer is made using light. As a result the colors are mixed differently than they are when mixing colors with paint. Paint absorbs light while a monitor emits light. To mix paint colors, red, blue and yellow are the primary colors that are used to mix other colors. White is the absence of light while black is the combination of all colors. Colors on a monitor are created with the primary colors of red, green and blue mixed together. White is all of the colors while black is the absence of color on a monitor. This means that images displayed on a computer monitor may look slightly different when printed. Graphic illustrators can set their software to compensate for the differences by mapping the RGB colors to their printer colors.

Graphic designers use computer for generating graphics for print material. When graphics were created before computers, the colors would be based on the same principle of light absorption instead of emitting light. This meant that drawn graphic would print with accurate colors without extra steps.

If a computer graphic is to be printed they are created using a Cyan, Magenta, Yellow, Key/Black (CMYK) where a white canvas is the start and colors are added to absorb light and darken it. The CYMK color scheme is the standard used when printing. If the graphic is created with a RGB palette, the printed version may not accurately match the graphic as it is seen on the screen.

The display of graphics can also appear slightly different on monitors attached to different types of computers. A graphic that looks fine on a PC may appear darker or lighter when viewed on an Apple computer. For myself, I have had the experience of spending 30 minutes explaining these differences when the color blue was not displayed as expected on a customer's computer. The short explanation is that blue is not always the same blue on different computers or when printed. The long explanation is that the computer type, monitor type, gamma adjustment, background images and other factors can make 'blue' appear as a variation of blue on different computers.

The emission of light from a computer monitor can affect human tasks. Since light is emitted to display text, it can be tiring to read books and articles on a computer monitor. The glare can cause the eyes to get tired and reading on a large screen can require more eye movement, which increases the feeling of tiredness. Monitors also emit blue light, which has been found to make it more difficult to get to sleep at night. It is recommended that people take a break from computer monitors at night in order to reduce. There is also software that can reduce the amount of blue light emitted as it gets later in the day.

The display of text and graphics on computer monitors, smart phones and tablets is another complexity to be managed in computers. Fortunately for most of us, the operating system and software manage the differences well enough so that we are not overly aware of them. For most of us we may see some images that are slightly off when printing photographs ourselves. This can be corrected for by using a professional service to print our digital photographs using software that is better at translating the photos into a format that looks good in print. Meanwhile, graphic artists and animators work with these complex systems, tuning them to optimize the printing or display of computer graphics.

The next article will be a change, it will cover numbering systems and how they work with computers. It turns out that it is sometimes easier to work with computer data if it the numbers are represented in a different way. The article will be an overview of numbering systems commonly used with computers and how they are an integral part of software development.

Pictures by J.T. Harpster, prints of selected photos can be found at our Redbubble.

Help support our work on Patreon, get access to short stories and news about Shell Creek Publishing.