The image buffer stores the raw image that is being displayed and the size of this buffer will depend on resolution and color depth. The graphics LCD system works similar to a CRT picture tube in that the LCD display is refreshed continuously and updated horizontally line-by-line. The digital voltage generator in this block is the digital equivalent of a picture tube. It reads the image buffer pixel by pixel and generates scan waveforms which have an individual line for each data bit. For 16-bit image data, the scan waveform will have 5R, 5B and 6G lines. There will also be some additional control signals like clock and horizontal and vertical sync pulses. This digital waveform is then fed into gate driver which is highly glass technology specific and probably a high voltage technology. For a 16-bit QVGA display, the clock output frequency tends to be in the neighborhood of 4MHz to keep a 60 fps update rate. A hardware module and significant CPU power will be required to do this. All of these blocks combined together make-up basic raster similar to turning a TV on without any TV signal. Ideally, display screen should include menus, buttons, icons. For this functionality, an intelligent device like an MCU which runs a graphics library for high quality graphics is required. This library will take simple inputs like the button size, color and a few other parameters and determine which pixel should be displayed in which color to create required image. This process is called software rendering. The graphics solution can be a CPU resource intensive system. Consider a worse case example of 16-bit color QVGA display with an application trying to fill the whole screen with one color. This requires that each Byte in the 156kBytes of image RAM gets updated with that color data requiring a CPU tens of milli-seconds to complete. In this kind of system, hardware support, such as a graphical accelerator, can help by instructing that locations be filled in certain blocks with a fixed color in micro seconds. After that, the hardware may take tens of milli-seconds to update all data while the CPU is free to do other tasks. The graphics accelerator is an optional block which is not available on many LCD controllers.