Text optimization

Computer graphics processing and selective visual display system – Computer graphics display memory system – Logical operations

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C345S548000, C345S552000, C345S568000, C345S538000

Reexamination Certificate

active

06344856

ABSTRACT:

FIELD OF THE INVENTION
This invention relates to the field of computer graphics processors and particularly to methods of decreasing the processing time required to provide text data for display.
BACKGROUND TO THE INVENTION
Display adapters on computer systems based on the Intel x86 microprocessor architecture, in particular Color Graphics Adapter (CGA), Monochrome Display Adapter (MDA), Enhanced Graphics Adapter (EGA) and VGA have contained dedicated text modes. Text modes are fast and memory efficient because only two bytes are used to described each character (the two bytes defining the ASCII code for the character, and an attribute), but they do not look appealing when displayed because each character has a fixed cell size, and the display resolution that they are shown in is very low. With the advent of the graphical user interface (GUI) such as Windows (sold by Microsoft Corporation), scalable outline fonts, high resolution monitors and inexpensive memory, all native applications of the GUI have been required to be run in All Points Addressable (APA) mode, otherwise known as graphics mode. A notable difference between text mode and graphics mode was that each pixel could be individually addressed in graphics mode while only characters could be addressed in text mode.
Since GUIs operate in graphics mode, the amount of time spent creating the graphics by processing circuits of a computer (overhead) is very high. In graphics mode, text is dealt with as a graphic entity, with each pixel addressed. Since the computer communicates with the user in text as well as with images, performance of the computer in processing text is very important.
In order to improve performance of the computer, graphics accelerators were introduced. The graphics accelerator takes a load off the main computer processor, being designed specially to process graphics data with little call on the main processor.
In the Windows GUI, text is displayed by each character being rendered into an arbitrary sized monochrome bitmap, which is then passed to a display driver. The driver then causes the bitmap to be displayed. Graphics accelerator display drivers typically move the bitmap to an off-screen memory cache on the graphics accelerator, and then performs a monochrome to two color expansion bit block transfer (bitblt) from the off-screen to an on-screen memory. Since the main processor is not intensively used for this process, the host expansion bus of the computer to which both the main processor and the display driver are connected is not required to carry communication traffic between the main processor and the display driver, thus allowing faster communication between other elements connected to the expansion bus and the main processor.
In a monochrome expansion bitblt, an area of graphics memory is read. One bit is read for each destination pixel. If a bit is a ‘1’, then a foreground color and foreground ALU (processing) function are used to write a destination pixel. Otherwise a background color and background ALU function are used to write the destination pixel.
In a graphics accelerator such as the IBM model 8514/A or equivalents, sparse monochrome (i.e. only one bit in each byte) sources have been used for the color expansion of one destination pixel, as described in the immediately preceding paragraph.
Character bitmaps provided by the Windows GUI are mostly packed, that is, all bits per source byte are used during the bitblt, except that if a character width is not a multiple of 8, the bits at the end of every scan line are padded with zeroes until each scan line of the character has a length which is a multiple of 8.
Character bitmaps are rectangular. Accelerators generally draw these rectangles in an X major fashion, from left to right and from top to bottom, for memory performance reasons. Each character bitmap generally follows the previous in an X major fashion, from left to right and top to bottom, as when writing a left to right language, such as English.
SUMMARY OF THE INVENTION
The present invention provides an advantage of the use of a monochrome bitmap provided by the main processor, as in the text based architecture as described above, but rather than it being sparse as in the prior art, it is packed. Each bit of source datum defining a character is used in a color expansion process by the graphics accelerator. Since the character information is packed monochrome, the data passing to the graphics processor via the main expansion bus of the host computer is less than would be required if the full character bitmap were carried by the main expansion bus.
In accordance with an embodiment of the invention, a method of providing text data for display in a processor controlled apparatus is comprised of storing data defining a text character in a memory, in packed monochrome bit map form, addressing the memory to read the text character data, providing the text character to a graphics processor circuit, performing a bitblt operation on each bit of the text character while providing a color attribute, and storing the packed text character having a color attribute for subsequent display.
In accordance with another embodiment, where the full character bitmapped data provided by a GUI such as Windows is provided at a source, when the destination rectangle of a character advances in a Y direction, the source aligns to the nearest byte, i.e. the beginning of a scan line of pixels, even if the complete preceding line of pixels has not been completely read. This allows the bitmap data provided by Windows to be written directly to an off-screen memory cache without requiring modification, and therefore without requiring processing, by the main computer processor.
In accordance with this embodiment, a method of providing text data for display in a processor controlled apparatus is comprised of storing data defining a text character in a memory, performing a bit block transfer (bitblt) operation on the text character by moving a source block of pixels of the text character from a source portion of the memory to a destination portion of the memory, the bitblt operation being performed by (i) reading pixels in an X direction from the source block of pixels until the end of a destination block of pixels is reached while writing said pixels in an X direction to the destination portion of the memory, (ii) advising a destination block of pixels pointer in a Y direction which is orthogonal to the X direction and resetting the destination block to an X origin of said destination block of pixels, and (iii) reading a next line of the source block of pixels in an X direction from the beginning of a next byte of the source block of pixels while skipping any bits in the line of the source block of pixels remaining unread.
In accordance with another embodiment, destination side effects may be obtained automatically to place text characters in order depending on the type of language used. It will be recognized that European languages tend to be written with characters left to right, Asian languages tend to be written top to bottom, and Mediterranean languages tend to be written right to left. In this embodiment the direction of writing to a destination can be programmed, whereby in a bitblt, source characters are automatically stored at a destination with no displacement, with a right to left displacement, with a left to right displacement, with a top to bottom displacement, or with a bottom to top displacement, the width of the displacement also being programmable.
In accordance with another embodiment a method of providing text data for display in a processor controlled apparatus is comprised of storing data defining a text character in a graphics accelerator memory, performing a bit block transfer (bitblt) operation on the text character comprising reading source bits defining a block of text characters line by line in an X direction, defining a destination pointer for each block with X and Y coordinates, adding an offset to one of the X and Y coordinates, and writing the text character to a destination, whereby e

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Text optimization does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Text optimization, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Text optimization will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2974482

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.