WO2000030036A1 - Rotation de donnees numerisees - Google Patents

Rotation de donnees numerisees Download PDF

Info

Publication number
WO2000030036A1
WO2000030036A1 PCT/US1999/026466 US9926466W WO0030036A1 WO 2000030036 A1 WO2000030036 A1 WO 2000030036A1 US 9926466 W US9926466 W US 9926466W WO 0030036 A1 WO0030036 A1 WO 0030036A1
Authority
WO
WIPO (PCT)
Prior art keywords
bits
square
color
row
size
Prior art date
Application number
PCT/US1999/026466
Other languages
English (en)
Inventor
Yung-Ho Shih
Original Assignee
Microsoft Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corporation filed Critical Microsoft Corporation
Publication of WO2000030036A1 publication Critical patent/WO2000030036A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/602Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation

Definitions

  • This invention relates generally to software for displaying image data, and more specifically to rotating image data.
  • the reduced size of the Palm-size PC means that certain sacrifices need to be made.
  • a typical Palm-size PC does not have fixed or removable disk drives such as hard disk, floppy disk, CD-ROM or DVD-ROM drives, with the persistent storage of a typical Palm-size PC comprising flash memory or volatile memory with a battery refresh.
  • the amount of RAM in the typical Palm- size PC is also limited, resulting in specialized operating systems capable of running in the resource limited environment of the Palm-size PC.
  • An example of such an operating system is the Windows CETM operating system from Microsoft Corporation.
  • Applications running on the Palm-size PC must also be capable of running in the resource limited environment described above.
  • Applications running on the Palm-size PC are typically specialized versions of applications available on the bigger siblings of the Palm-size PC, such as calendar programs, personal information managers, calculators and the like.
  • Display size, resolution and color capability are other aspects that are affected by the reduced size of the Palm-size PC.
  • the typical display of a standard PC has a diagonal length of between 14" and 21", a resolution ranging from 640 x 480 pixels to over 1280 x 1024 pixels, and is capable of displaying over sixteen million colors.
  • the typical Palm-size PC has a liquid crystal diode (LCD) display with a diagonal length of between 3.4" and 3.9", a resolution of 240 x 320 pixels, and is capable of a displaying four gray scale levels.
  • LCD liquid crystal diode
  • Designers have found that in the reduced size environment of a Palm-size PC, a portrait mode display is preferable to landscape mode.
  • a portrait mode display is one that is taller than it is wide, i.e. the screen is 240 x 320 pixels.
  • portrait LCDs typically are not as bright as landscape LCDs, and in addition, portrait LCDs typically exhibit an undesirable flicker.
  • the first solution uses what is known in the art as a dual-scan portrait LCD. Dual-scan LCDs are brighter and are able to provide a display that is typically flicker free. In addition the dual-scan LCD has the advantage that the display device interface used by a portrait mode application can avoid display driver overhead by writing directly to the dual-scan portrait LCD, since the display buffer and the display device orientation are the same. A significant disadvantage to the dual-scan LCD is that it costs approximately twice as much as a standard landscape LCD.
  • the second solution is to provide the Palm-size PC with a landscape LCD that has been physically rotated ninety degrees.
  • the system must maintain an intermediate screen buffer of pixels that must be rotated ninety degrees prior to insertion in the display buffer, thereby providing a portrait mode emulation using a landscape LCD.
  • the advantage of this solution is that an acceptable display quality can be achieved with a lower cost of goods.
  • a disadvantage with this solution is that direct screen writes to the display buffer are not possible, because the physical orientation of the screen does not match the orientation of the display buffer. This results in increased demands on the CPU and memory in a system with limited resources.
  • Previous systems have used various mechanisms to rotate image data in the screen buffer. In one system, the pixels are rotated one by one.
  • the bits representing the color or gray scale level for an individual pixel in the screen buffer are extracted from the original memory location in the screen buffer and placed into a temporary byte.
  • a memory location in the display buffer in which to place the pixel is then determined.
  • the new location will reflect the ninety degree rotation.
  • the rotated pixel value is written to image data comprising the display buffer by setting the appropriate bits in the new memory location with the bits from the temporary byte.
  • a table lookup scheme as is known in the art, is used to rotate the screen.
  • a major disadvantage with both systems is that each pixel value in the screen buffer is converted to a byte value before it is moved from the internal screen buffer into the proper location in the display buffer. This is due to the fact that to implement the methods described above, various operations such as shifting and bit masking must be performed on a single pixel value.
  • the smallest unit that most computers, including Palm-size PCs, can operate on is a byte.
  • multiple CPU cycles are used to rotate each pixel using the mechanisms in the above-described systems. This results in increased demand for CPU and power resources in a machine that typically has limited resources.
  • the rotated image data buffer may comprise a display buffer.
  • the system includes a graphics device driver that implements the rotation and maintains the display buffer.
  • One version of the computerized system includes an operating system providing a graphics interface library, and a graphics interface buffer maintained by the graphics interface library. In this system, the graphics interface buffer contains the image data prior to rotation. The method used to rotate the area divides the area into a square region of pixels, where each pixel has a number of bits specifying a color or gray scale level.
  • the size of a side of the square region is determined by the word size of the computer and the number of bits specifying the color. For each row in the square area, one or more bytes representing the row are expanded by multiplying by an expansion constant determined by the word size and the number of bits specifying the color. Extraneous bits are removed by performing a logical AND of the word with a filter constant determined by the number of bits specifying the color. Finally, the word is left shifted by a number of places determined by the index of the row in the square and the number of bits specifying the color. The result is placed in one of a plurality of expansion rows. A logical OR of the plurality of expansion rows produces a rotated square region of pixels. This rotated square region is then translated along an X and Y-axis and placed into a rotated image data buffer.
  • the image data buffer may comprise a display buffer used to refresh an LCD display.
  • the CPU operates on an entire row of pixels, not a pixel at a time. Individual pixels need not be converted to byte values. This results in improved efficiency in performing the screen rotation. Because of the improved efficiency, there is less demand for CPU cycles and power, allowing the Palm-size PC to operate longer on a given set of batteries.
  • FIG. 1 shows a diagram of the hardware and operating environment in conjunction with which embodiments of the invention may be practiced
  • FIG. 2 is a diagram showing the major components of a software system of one embodiment of the invention.
  • FIG. 3 is a representation of an image data buffer prior to being rotated ninety degrees
  • FIG. 4 is a representation of an image data buffer after being rotated ninety degrees
  • FIG. 5 is a sample of a pixel group within an image data buffer prior to being rotated ninety degrees
  • FIG. 6 is a sample of a pixel group within an image data buffer after being rotated ninety degrees
  • FIG. 7 is a flowchart illustrating a method according to one embodiment of the invention.
  • FIG. 1 a diagram of the hardware and operating environment in conjunction with which embodiments of the invention may be practiced is shown.
  • the description of FIG. 1 is intended to provide a brief, general description of suitable computer hardware and a suitable computing environment in conjunction with which the invention may be implemented.
  • the invention is described in the general context of computer-executable instructions, such as program modules, being executed by a computer, such as a personal computer.
  • program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
  • the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
  • the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote memory storage devices.
  • the exemplary hardware and operating environment of FIG. 1 for implementing the invention includes a general purpose computing device in the form of a computer 20, including a processing unit 21, a system memory 22, and a system bus 23 that operatively couples various system components include the system memory to the processing unit 21.
  • a general purpose computing device in the form of a computer 20, including a processing unit 21, a system memory 22, and a system bus 23 that operatively couples various system components include the system memory to the processing unit 21.
  • the computer 20 may be a conventional computer, a distributed computer, or any other type of computer; the invention is not so limited.
  • the system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • the system memory may also be referred to as simply the memory, and includes read only memory (ROM) 24 and random access memory (RAM) 25.
  • ROM read only memory
  • RAM random access memory
  • the computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
  • the hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical disk drive interface 34, respectively.
  • the drives and their associated computer-readable media provide nonvolatile storage of computer- readable instructions, data structures, program modules and other data for the computer 20. It should be appreciated by those skilled in the art that any type of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), and the like, may be used in the exemplary operating environment.
  • a number of program modules may be stored on the hard disk, magnetic disk 29, optical disk 31, ROM 24, or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37, and program data 38.
  • a user may enter commands and information into the personal computer 20 through input devices such as a keyboard 40 and pointing device 42.
  • Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
  • These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).
  • a monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48.
  • computers typically include other peripheral output devices (not shown), such as speakers and printers.
  • the computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 49. These logical connections are achieved by a communication device coupled to or a part of the computer 20; the invention is not limited to a particular type of communications device.
  • the remote computer 49 may be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 20, although only a memory storage device 50 has been illustrated in FIG. 1.
  • the logical connections depicted in FIG. 1 include a local-area network (LAN) 51 and a wide-area network (WAN) 52.
  • LAN local-area network
  • WAN wide-area network
  • Such networking environments are commonplace in office networks, enterprise-wide computer networks, intranets and the Internet, which are all types of networks.
  • the computer 20 When used in a LAN-networking environment, the computer 20 is connected to the local network 51 through a network interface or adapter 53, which is one type of communications device.
  • the computer 20 When used in a WAN-networking environment, the computer 20 typically includes a modem 54, a type of communications device, or any other type of communications device for establishing communications over the wide area network 52, such as the Internet.
  • the modem 54 which may be internal or external, is connected to the system bus 23 via the serial port interface 46.
  • program modules depicted relative to the personal computer 20, or portions thereof may be stored in the remote memory storage device. It is appreciated that the network connections shown are exemplary and other means of and communications devices for establishing a communications link between the computers may be used.
  • the computer in conjunction with which embodiments of the invention may be practiced may be a conventional computer, a distributed computer, or any other type of computer; the invention is not so limited.
  • a computer typically includes one or more processing units as its processor, and a computer-readable medium such as a memory.
  • the computer may also include a communications device such as a network adapter or a modem, so that it is able to communicatively couple other computers.
  • FIG. 2 presents a system level overview of an embodiment of the invention.
  • Operating system 200 comprises a set of software modules designed to control and manage the resources of a computer system.
  • operating system 200 is the Windows CE operating system from Microsoft Corporation.
  • Application 205 is a software application running under operating system 200 which, as one aspect of its operation, provides output to be displayed on display 230. Examples of applications include word processors, spreadsheet calculators, personal information managers, and e-mail programs.
  • Graphics interface library 210 is a library of functions that is typically provided by or with operating system 200 that provide for displaying graphical objects on a display. The functions implemented by graphics interface library 210 include functions that display objects such as polygons, lines and text. Graphics interface library 210 also includes functions that control the attributes of the graphical objects such as size, color, texture, position, and orientation. In one embodiment of the invention, graphics interface library 210 is a Graphics Device Interface (GDI) driver supporting the Graphics Device Interface from Microsoft Corporation.
  • GDI Graphics Device Interface
  • Interface display buffer 215 is a memory buffer holding image data comprising the internal representation of an output display buffer. The contents of the buffer are the pixel values that result from application calls to graphics interface library 210 functions. In one embodiment of the invention, interface display buffer 215 is a GDI display buffer.
  • Display driver 220 is a software module known in the art as a device driver.
  • Display driver 220 comprises software routines that interface with a hardware controller (not shown) that controls display 230.
  • the software routines in display driver 220 are typically written for a particular type of hardware controller and display 230. This is because different hardware manufacturers define different interfaces for their hardware, which results in specialized software requirements.
  • Display buffer 225 is a memory buffer containing image data for the pixels actually displayed on display 230.
  • the hardware controller for the display reads the pixel values from this buffer and uses them to cause display 230 to illuminate the appropriate pixels on the display at the proper color or gray scale level.
  • Display 230 is a hardware component that shows the output produced by application 205.
  • display 230 is a landscape Liquid Crystal Display (LCD) having a screen resolution of 240 x 320 pixels, with each pixel having a two bit gray scale level associated with it.
  • LCD Liquid Crystal Display
  • the invention is not so limited, and those skilled in the art will recognize that other display types, display resolutions, and pixel bit widths are possible and within the scope of the invention.
  • FIG. 3 shows a representation of image data for a portrait mode screen 300 maintained in the interface display buffer 215 (FIG. 2). Pixel values within the image buffer for screen 300 are located by specifying coordinates along X axis 305 and Y axis 310.
  • text area 315 represents an area of the screen that has been modified and must be rotated in order to be displayed properly.
  • FIG. 4 shows a representation of image data for a screen after it has been rotated according to the method described below.
  • Landscape Screen 400 is a graphical representation of a landscape mode LCD screen that has been physically rotated ninety degrees for use in a Palm-size PC.
  • Text area 415 is the result of rotating the image data for screen area 315 in the interface display buffer 215 and placing the rotated result in display buffer 225.
  • Application 205 desires to update the display on the Palm- size PC.
  • Application 205 calls functions within the graphics interface library 210 that cause a portion of interface display buffer 215 to be updated to reflect the desired changes.
  • Graphics interface library 210 then calls routines in graphics device driver 220 that update display 230.
  • Graphics device driver 220 reads the values from the modified area in graphics interface buffer 215, applies the method described below to rotate the area and updates display buffer 225.
  • Graphics device driver 220 then reads the image data values from display buffer 225 and causes the modified image to appear on display 230.
  • the computerized method is desirably realized at least in part as one or more programs running on a computer — that is, as a program executed from a computer-readable medium such as a memory by a processor of a computer.
  • the programs are desirably storable on a computer-readable medium such as a floppy disk, CD-ROM, or Compact Flash (CF) card for distribution, installation and execution on another (suitably equipped) computer.
  • the programs may also be stored on one computer system and transferred to another computer system via a network connecting the two systems, thus at least temporarily existing on a carrier wave or some other form of transmission.
  • FIG. 7 a flowchart is shown that illustrates a method for rotating image data according to an embodiment of the invention.
  • the method begins at block 705, where a check is made to determine if image data for an area of the screen is to be rotated. In one embodiment of the invention, this determination is made based on whether or not there exists a "dirty" area in the internal display buffer 215. A dirty area is one that has been modified by an application 205, but the results of the modification have not yet been displayed. In an alternative embodiment of the invention, the image data for an entire screen, whether modified or not, is rotated.
  • the method then proceeds to block 710, where the area is divided into square areas of pixels.
  • the size of a square is determined by the formula below:
  • W is the word size, in bits, of the particular CPU implementing the method.
  • B is the number of bits used to represent a color or gray scale level of a pixel.
  • W be evenly dividable by B, and that W and B have values such that the resultant S is an integer value.
  • the square area of pixels fits into one machine word, and rows of the square fit within even byte boundaries.
  • One embodiment of the invention runs on CPUs having a 32 bit word size and uses 2 bits to indicate color or gray scale level, resulting in a square area 4 x 4 pixels in size.
  • the CPU word size is 64 bits and 4 bits are used to represent color, resulting in a square area 4 x 4 pixels in size.
  • the word size is also 64 bits, however 1 bit is used to represent color.
  • a square area 8 x 8 pixels in size is used.
  • the CPU has 16 bit words, and 4 bits are used for color, resulting in a 2 x 2 pixel area.
  • S, W and B are possible and within the scope of the invention.
  • a row R represents a portion of a scan- line in the pixel buffer.
  • a row R fits within a single 8-bit byte, however the invention is not so limited.
  • a row R may take up a plurality of bytes. For example, in a system with a 64 bit word size where 4 bits are used to represent color or gray scale, a row would fit in 2 bytes.
  • the method prepares the row to be expanded by masking the low order bits for the last pixel in the row. This is done to prevent carry bits or other bits from being propagated into the expansion during subsequent arithmetic shifts performed on the expanded value.
  • one or more bytes comprising a value representing the color or gray scale level for the pixels in the row are expanded into a full word by multiplying the row value by an expansion constant.
  • the expansion constant is determined based on the word size W and bits per pixel B. The value, in effect, shifts the bits representing each pixel by individual amounts depending on the pixels position in the row.
  • the expansion constant is the hexadecimal value 0x41041 (a leading "Ox" is the C/C++ programming language standard for specifying hexadecimal, as opposed to decimal values).
  • the mask representing the expansion constant can be determined by performing an algorithm shown by the following C/C++ code fragment: int i;
  • Mask Mask ⁇ ⁇ M
  • M (S-1) * B where S and B have the values described above in reference to block 710.
  • the end result of the algorithm is to produce a value in which bit 0 is the least significant bit and where bits 0, M, 2*M, 3*M, 4*M etc. are 1, and all other bits are 0.
  • the low-order bits that were removed at block 720 are replaced by OR'ing the result from block 725 with the original one or more bytes forming the value for the row prior to the filtering performed at block 720.
  • extraneous bits are removed from the results from block 730 by performing a logical AND using a filter constant having a value determined according the number of bits per pixel B, and the number of pixels in a row S.
  • the mask value is hexadecimal 0x03030303.
  • the algorithm used to generate the mask is shown by the following C/C++ code fragment:
  • Mask Mask ⁇ ⁇ (S * B)
  • L is the number of bits to shift left
  • S is the number of pixels in one side of the square from block 710 above;
  • R is index of the current row, with the first row having an index of 0;
  • B is the number of bits per pixel used to represent color or gray scale level.
  • the shifted value is then placed in intermediate expansion row E R
  • the method then proceeds to block 737, which determines if any rows are remaining in the square that require processing in the above manner. If there are remaining rows to be expanded, the method proceeds to block 720.
  • the method proceeds to block 740, where the intermediate expansion rows are logically OR'ed together to produce a rotated square.
  • Xdisplay is the X axis value for the position of the rotated square in the display buffer;
  • alsal is the height of the internal screen buffer;
  • Yinternal is the Y axis value of the un-rotated square in the internal screen buffer
  • Ydisplay is the Y axis value for the position of the rotated square in the display buffer
  • Xinternal is the X axis value of the un-rotated square in the internal screen buffer.
  • FIG. 5 shows a square region of pixel color values in the internal screen buffer of a machine with a 32-bit word size and where 2 bits are used to represent color or gray scale.
  • the individual pixel values are labeled for convenience with the letters A - R, with the letters O and Q removed to improve readability.
  • the table below shows the resulting intermediate values at various points in the method described above.
  • a letter represents the two bit pixel color or gray scale value
  • the numeral 0 represent two bits having a zero value.
  • a method for rotating image data ninety degrees has been disclosed.
  • systems and methods for dividing an image data buffer containing pixels into square areas to be rotated has been described.
  • specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown.
  • the systems and methods described herein could be applied graphics rendering programs to provide a mechanism to rotate graphical images maintained by the application.
  • the system and methods described herein can be applied to computer systems other than Palm-size PCs, for example laptop and desktop PCs. This application is intended to cover any adaptations or variations of the present invention. Therefore, it is manifestly intended that this invention be limited only by the following claims and equivalents thereof.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

L'invention concerne un procédé permettant une rotation à quatre-vingt dix degrés de données numérisées. Dans un mode de réalisation de cette invention, un système informatisé comprend un système d'exploitation destiné à fournir une bibliothèque d'interfaces graphiques, ainsi qu'un tampon d'interfaces graphiques tenu à jour grâce à cette bibliothèque d'interfaces graphiques, ce tampon d'interfaces graphiques contenant des données numérisées dans lesquelles une première image écran est incluse. Ce système comporte également un pilote d'afficheur graphique destiné à mettre en oeuvre un procédé permettant une rotation d'une zone située à l'intérieur desdites données numérisées, ce procédé consistant tout d'abord en une division de cette zone en plusieurs régions pixelisées carrées, puis en une rotation de chaque carré. Enfin, ces carrés sont écrits dans un tampon de données numérisées comprenant un tampon écran tenu à jour par ledit pilote d'afficheur graphique.
PCT/US1999/026466 1998-11-13 1999-11-10 Rotation de donnees numerisees WO2000030036A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US19175198A 1998-11-13 1998-11-13
US09/191,751 1998-11-13

Publications (1)

Publication Number Publication Date
WO2000030036A1 true WO2000030036A1 (fr) 2000-05-25

Family

ID=22706799

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/026466 WO2000030036A1 (fr) 1998-11-13 1999-11-10 Rotation de donnees numerisees

Country Status (1)

Country Link
WO (1) WO2000030036A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0216501A2 (fr) * 1985-08-26 1987-04-01 Xerox Corporation Rotation d'images numérique
EP0677822A2 (fr) * 1994-04-15 1995-10-18 International Business Machines Corporation Rotation d'images numériques
EP0744711A2 (fr) * 1995-04-21 1996-11-27 Canon Kabushiki Kaisha Méthode et appareil pour rotation d'image

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0216501A2 (fr) * 1985-08-26 1987-04-01 Xerox Corporation Rotation d'images numérique
EP0677822A2 (fr) * 1994-04-15 1995-10-18 International Business Machines Corporation Rotation d'images numériques
EP0744711A2 (fr) * 1995-04-21 1996-11-27 Canon Kabushiki Kaisha Méthode et appareil pour rotation d'image

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Method for Rotating an 8x8 Bit Image", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 27, no. 8, New York, US, pages 4593 - 4595, XP002128057 *
ANONYMOUS: "Shift Register System for Image Orientation. January 1976.", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 18, no. 8, New York, US, pages 2633 - 2639, XP002128058 *

Similar Documents

Publication Publication Date Title
US6400851B1 (en) Rotating image data
US7746351B2 (en) Systems and methods for updating a frame buffer based on arbitrary graphics calls
US7262776B1 (en) Incremental updating of animated displays using copy-on-write semantics
US5801717A (en) Method and system in display device interface for managing surface memory
JP3240821B2 (ja) 高機能画像メモリlsi及びそれを用いた表示装置
US5742797A (en) Dynamic off-screen display memory manager
US6911984B2 (en) Desktop compositor using copy-on-write semantics
US20040160450A1 (en) Efficient graphics state management for zone rendering
JPH0469794B2 (fr)
US20050012753A1 (en) Systems and methods for compositing graphics overlays without altering the primary display image and presenting them to the display on-demand
JPH09245179A (ja) コンピュータグラフィックス装置
US6078306A (en) Basic input-output system (BIOS) read-only memory (ROM) with capability for vertical scrolling of bitmapped graphic text by columns
EP0579359B1 (fr) Méthode et dispositif de commande d'affichage
EP0284904B1 (fr) Système de visualisation pour une mémoire de police de symboles
US6950108B2 (en) Bandwidth reduction for rendering using vertex data
US7012616B1 (en) Display of images with transparent pixels
US20050012751A1 (en) Systems and methods for efficiently updating complex graphics in a computer system by by-passing the graphical processing unit and rendering graphics in main memory
US5553228A (en) Accelerated interface between processors and hardware adapters
CN112346890B (zh) 一种复杂图形离屏渲染方法及系统
US5446840A (en) System and methods for optimized screen writing
WO2000030036A1 (fr) Rotation de donnees numerisees
US6828976B2 (en) Method and apparatus for hardware acceleration of graphical fill in display systems
US20060092163A1 (en) Rendering images on a video graphics adapter
US5734873A (en) Display controller with accelerated drawing of text strings
JPS6327727B2 (fr)

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase