Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DISPLAY OUTPUT ROTATION
Document Type and Number:
WIPO Patent Application WO/1991/000586
Kind Code:
A1
Abstract:
A system for reorienting stored images to be displayed on a screen (18) having a fixed scan pattern originating at one corner of the screen (18) to compensate for rotating the screen includes means (19a) for determining a new scan origin for the image and for reordering the stored image data to compensate for the rotation of the screen (18).

Inventors:
HAWKINS JEFFREY C (US)
WIEGMAN TIMOTHY L (US)
Application Number:
PCT/US1990/002978
Publication Date:
January 10, 1991
Filing Date:
May 25, 1990
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GRID SYSTEMS CORP (US)
International Classes:
G06F1/16; G06F3/0488; G06T3/60; G09G1/06; (IPC1-7): G09G1/06
Foreign References:
US4267555A1981-05-12
US4542377A1985-09-17
US4823080A1989-04-18
US4831368A1989-05-16
JPS5674765A1981-06-20
JPS5886486A1983-05-24
Attorney, Agent or Firm:
Krueger, Charles E. (One Market Plaza 2000 Steuart Towe, San Francisco CA, US)
Download PDF:
Claims:
WHAT IS CLAIMED IS;
1. A system for transforming stored image data representing a rectangular bitmapped image to compensate for rotation of a screen having a fixed scan pattern originating from one of the corners of the screen, said system comprising: means, responsive to an indication that the screen has been rotated in a given direction by a given amount, for determining a new starting address in memory for storing the image data; means, responsive to said indication, for allocating a selected number of rows and columns of storage locations to store the transformed image; and means for reordering and writing the image data to said allocated storage locations so that the image will be correctly displayed on the rotated screen.
2. A system for reorienting an original stored rectangular image to be displayed on a rectangular screen segment organized as a matrix of N rows and M columns of pixels, where N and M are integers, with each pixel location on the screen segment identified by a ycoordinate indexing the identity of the scan line row that included the pixel and an x coordinate indexing the column pixel position in the scan line row that includes the pixel, with the actual origin of the original image identified by the coordinates xa,ya, where the actual origin of a rectangular image is the location of the pixel in the image having the lowest values of the x and y coordinates and identifying the first row and column of the screen segment scan pattern that includes a pixel in the rectangular image, and with the original image formed of NR scan rows and NP pixel column positions in each row, said system comprising: means for selecting a new origin for the reoriented image that provides sufficient screen space to display the reoriented image; means for assigning NP scan line rows to the reoriented image and for assigning NR pixel positions in each scan line row to the reoriented image so that each row in the reoriented image corresponds to one of the columns of the original image; means for reordering the pixel data forming the original display to compensate for a rotation of the screen segment; determining the actual origin of the reoriented image; and means for displaying said reordered pixels from an said actual origin to display the correct image on the rotated screen.
Description:
DISPLAY OUTPUT ROTATION

BACKGROUND OF THE INVENTION Personal computers have been use in offices for a number of years. Advances in technology have allowed the creation of portable laptop computers that perform all the functions of the larger office models.

To date these computers include a monitor that displays texts and graphics generated by the computer. The monitor is a standard hardware unit that includes a screen and screen scanning circuitry. The screen is divided into a matrix of rows and columns of elemental image dots or pixels that form an image on the screen. The pixel images are formed seguentially row by row until the entire screen has been scanned and an the image is formed. Although each pixel is activated only once per scan, the scans are repeated so rapidly that a stable image appears. Generally, the screen is scanned starting at the top right hand corner. The monitor is supplied pixel data from a video memory and the is controlled by a dedicated video controller. The pixel data in the memory is stored at memory location addresses having a one-to-one correspondence with the screen coordinates of the pixel locations.

To date, the keyboard has been the most utilized interface for entering data and controlling the computer. This configuration has led to a fixed orientation between the monitor and the user that has allowed the standard scan system utilized to be effective.

However, as new uses for the computer are developed more versatile display systems will be reguired.

SUMMARY OF THE INVENTION

The present invention permits the rotation of a monitor screen as reguired for particular applications while maintaining a constant graphics display from a fixed viewpoint.

The system may operate with a standard monitor and video controller and thus facilitates compatibility with existing hardware and software.

If the screen is rotated then the scan origin will no longer be in the same position relative to an external viewpoint. However, from a users point of view, the origin of a rectangular array and the positions of characters on the rotated screen will still be referenced from a logical origin which is at the same corner as the actual scan pattern origin of the unrotated screen.

Further, a rectangular screen segment on the unrotated screen has an actual height equal to the number of horizontal pixel scan lines required to display the segment and an actual width s»qual to the number vertical pixel column positions required to form the actual image. If the screen is rotated, the logical height and width of the reoriented rectangular image will not necessarily correspond to the number rows and columns required to form the reoriented image. The present invention transforms the logical coordinates dimensions of a display defined relative to the logical origin of a rotated screen to actual coordinates and dimensions relative to the actual scan origin of the screen so that the user does not need to compensate for rotation of screen. These actual coordinates and dimensions are provided to application software so that the rotation of the screen is transparent to the application software.

According to one aspect of the invention, the pixel data forming a rectangular bit-mapped display is rearranged so that the display image appears constant when displayed on a rotated screen.

According to a further aspect of the invention, the bit-mapped character images in a font stored in memory are reoriented to compensate for rotation of the screen so that characters are displayed correctly when the screen is rotated. According to another aspect of the invention, if the screen display includes rectangular segments, or windows, the window boundaries are rotated and translated to form a reoriented window that compensates for the rotation of the

screen. If a section of the reoriented screen segment does not fit on the screen then that section is clipped and not displayed.

Other advantages and features of the invention will be apparent in view of the appended figures and following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of a standard video display system;

Fig. 2 is a schematic diagram illustrating the screen scan pattern;

Fig. 3 is a perspective view of a novel hand-held computer that employs the present invention; Fig. 4 are schematic views of different orientations of the screen of the hand-held computer depicted in Fig. 3;

Fig. 5 is a flow chart illustrating the window reorientation procedure;

Fig. 6 is a schematic diagram illustrating the reorientation of a window display;

Fig. 7 is a flow chart illustrating the bit mapped image reorientation procedure;

Fig. 8A-8B are schematic diagrams illustrating the reorientation of a bit mapped image; Figs. 9A and 9B depict the address space of the imag data for the unrotated and reoriented images;

Fig. 10 is a flow chart illustrating the data reordering procedure;

Figs. 11A-11D are schematic diagrams depicting reordered data;

Figs. 12A and B are schematic diagrams illustrating the unrotated and rotated font storage formats; and

Figs. 13 A and B are flow charts illustrating the font reorientation procedure.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The standard display system will now be briefly described with reference to Figs. 1 and 2 to facilitate the following description of the preferred embodiments. In Fig. 1 host processor 10 transfers the image data specifying the image to be displayed to a display memory 12. A video display controller 14 transfers display data to a monitor 16, having a screen 18, and generates control signals to control the display scan operation of the monitor 16. Program and other data is stored in a system memory 19.

The screen 18 is depicted in more detail in Fig. 2. The screen is organized into a matrix of pixel locations 20. Each pixel location is uniquely identified by an x-coordinate identifying the horizontal scan row 22 and a y-coordinate identifying the pixel column position 24 that includes the pixel. To form a simple monochromatic image the screen is scanned one row at time and the pixel location is either activated to form a black dot or not activated to form a white dot. Each row is scanned from right to left starting from the row at the top of the screen. When one scan is finished the next scan is started again from the actual scan origin 25, i.e., the point having the lowest value of x and y.

There is a direct mapping between the address space of the display memory 12 and the pixel locations of the screen 18. For the monochromatic display the image data consists of one bit for each pixel. Thus, it is possible to describe the image in terms of the pixel locations on the screen 18 or the address space of display memory 12.

Fig. 3 depicts a novel hand held computer that is compatible with office type personal computers but includes an interface that allows data and commands to be entered by writing with a pen 30 on the screen 18. The pen 30 is tethered to one side of the computer by a wire 32. The computer is especially useful for entering data while standing up. In the preferred embodiment the invention is implemented as reorientation software routines 19a stored in the system memory 19s.

Depending on the nature of the display and particular application, it may be desirable to present the display in a portrait 40 or landscape 42 orientation as depicted in Fig. 4. Further, it is more convenient for a right-handed person to have the pen 30 tethered on the right side of the computer and for a left-handed person to have the pen 30 tethered on the right side of the computer. When the screen is rotated the angle of the rotation is provided to the system through the user interface. For each orientation of the screen the origin 25 of the scan pattern is fixed to a particular physical point of the screen as illustrated in Fig. 4. Thus, if the image is reoriented to compensate for the rotation of the screen it must be changed to compensate for the shifting of the screen origin relative to the reoriented image.

Many application programs divide the display into screen segments, or windows, and simultaneously display different images in the windows. The window reorientation operation to compensate for screen rotation will now be described with reference to Figs. 5 and 6A and B.

In Fig. 6A, the screen is shown in its unrotated orientation with the actual screen origin 25 positioned at the upper right hand corner of the screen 18. A first window 62 has its actual origin 64, i.e., the pixel position in the imag having the lowest values of the actual x and y coordinates and identifying the first pixel position in the scan pattern that includes a pixel in the image, at coordinates x a ,y a with its actual height consisting of NR rows of pixels and its actual width consisting of NC column pixel positions in each row. Fig. 6B depicts a reoriented screen 18R that has bee rotated counterclockwise 90° (rotation east) and a reoriented first window 64R having dimensions changes and screen location changes to compensate for the rotation of the screen.

The actual screen scan origin 25 of the rotated screen 18R is at the bottom right hand corner of the rotated screen 18R. The pixel positions in each row are scanned from bottom to top and the rows are sequentially scanned from the left side of the reoriented screen 18R to the left side. A

reoriented window 62R has a logical origin 62L measured relative to the upper left-land corner of the rotated screen 18R. NC column positions in NR rows, offset relative to the actual origin 62A reoriented window 18R, are allocated to the reoriented window 18R.

As depicted in Fig. 6B, the dimensions of the screen 18 and window 62 may be such that the entire window will not fit on the screen when reoriented. The data that would normally be displayed in the section off the screen is not included in the display and the reoriented window 62R is clipped.

Referring now to Fig. 5, a procedure for reorienting the windows 60 is depicted. First, the pen contact overlay and screen orientations are set according to the current screen orientation. If the screen is rotated east or west the window dimensions, NR and NC, are swapped so that the reoriented window 62R is formed of NR column pixel positions in NC scan rows. The procedure then loops through each window in the list and determines whether the window must be clipped. If so, the dimensions are swapped and the necessary clipped data is not displayed. The fonts are then reoriented as described below.

If the screen is turned upside down (rotated south by 180°) then the dimension swap and clipping steps are not required. The windows dimensions need not be changed. The reorientation of a bit-mapped image will now be described with reference to the flow chart of Fig. 7 and Figs. 8A-8B. In Fig. 8A the screen is in an unrotated position with the screen origin 60 at the top right-hand corner. A rectangular bit-mapped image 78 has logical origin coordinates (x a/ y a ) 79 indicating the displacement from the screen origin 25, an actual width (W a ) of NC pixel column positions and an actual height (H a ) of NR rows. The screen has an actual width (SW a ) of M columns ' and an actual height (SH a ) of N rows.

In Fig. 8B the screen is rotated 90° counterclockwise (orient east) . The actual scan origin 25 of the rotated screen 18R is located at the lower left-hand corner of the rotated screen. However, the logical origin 79L of the rotated display 78R is displaced from the upper left-hand corner of the rotated

screen 18R. The actual origin 79A of the rotated display 78R is located at the lower left-hand corner of the rotated display 78R. The logical width and height of the rotated display 78R correspond to the number of columns and rows in the scan pattern required to form the rotated image 78R.

Referring to Fig. 7, the procedure for reorienting the rectangular display 78 will now be described. The orientation of the screen is determined by steps A, B, and C. If the screen has been rotated east, as in Fig. 8B, the coordinates of the actual origin (x a/ y a ) 79A and the actual height (H a ) and width (W a ) are assigned the values listed in step D. The values of the actual origin and height and width for the cases of a rotation west or east are listed in steps E and F. The calculation of the bytes per line of step G will be described with reference to Figs. 9A and B.

Figs. 9A and 9B illustrate the allocation of memory to store the bit-mapped images depicted in Figs. 8A and 8B respectively. In Fig. 9A it is assumed that the number of rows in the bit-mapped image (NR) is 10 and the number of columns (NC) is 6. The lowest address corresponds to the actual origin 79 of the unrotated display 78 and the row and column addresses of the pixel data are offset from the lowest address. In this example, each row word includes two bytes of data and 20 bytes of memory are required to store the pixel data of the unrotated image.

In Fig. 9B the lowest address corresponds to the actual origin 79A of the rotated image 78R. Note that the number of rows is now equal to NC and the number of columns is NR. The data in each row in filled to the nearest word boundary in the display memory 12. Because of the reorientation of the image, the column data of the unrotated image 78 is rewritten as row data of the reoriented image 78R. Only 12 bytes of memory are required to store the rotated imag because of better alignment of the row data to the word boundaries.

Thus the calculation of step G of Fig. 7 for an east or west orientation requires a determination of the number of

words required to store the column pixel data of the unrotated image.

The procedure for reordering data in a bit-mapped image to compensate for rotation of the screen 18 will now be described with reference to Figs. 10 and 11A-11D. Figs. 11A- lld depict the screen 18 and actual scan origin 25 for an unrotated, rotated east, rotated west, and rotated south screen respectively.

Referring now to Fig. 10, the screen orientation is determined and a temporary buffer is allocated for the display data. The procedure for determining the starting address and allocation of memory has been described above with reference to Fig. 7.

If the screen has been rotated east, the data in each column of the unrotated image data is reverse-ordered and written to the corresponding row in the temporary buffer. For a rotation west, the column numbers of the rotated image data are reverse-ordered and then each column is written to the corresponding row of the temporary buffer. For a rotation south, the row numbers of the unrotated image data are reverse ordered and each row is written to the corresponding row of the temporary buffer.

The old buffer is then freed and a variable is set to indicate that the image data has been reoriented to compensate for the rotation of the screen. Thus, when the image is displayed on the rotated screen it will be correctly displayed. The rotation of font characters stored in memory will now be described with reference to Figs. 12A and B and 13A and B. The font format is depicted in Figs. 12A and B. A font header encodes information, including orientation information, about the font characters. The characters are a bit-mapped images of standard height but varying widths. The beginning address of each character image is determined from a bit offset field 40 and the width of each character is determined from a character width field 42. The character image bit are stored in character fields 44. As illustrated with reference to Fig. 9, differing amounts of storage are required by the various orientations of an image. Thus, when the font is loaded unused

memory space 46 is allocated to compensate for the crossing memory word boundaries due to asymmetric characters. The actual character bits are rotated as described above for the bit-mapped display. The procedure for reorienting the fonts is depicted in Fig. 13A. A temporary buffer is allocated and the font is rotated as required. The orientation byte in the header is changed to reflect the orientation. As depicted in greater detail in Fig. 13B, the font data is copied into the temporary buffer the remainder of the buffer is initialized to 0. The character width and offset 42 and 44 is copied to the buffer. The character bit-mapped display is the rotated as described above and the width, offset, and other indices are updated. The procedure loops until all the characters in the font have been rotated.