The present invention relates to a display apparatus and a method for synthesizing multi-screen display data and displaying the synthesized data on the same screen.
There exist interactive display screens on most of the electronic devices for displaying various data, curves, graphs, images and the like on the display terminal (for example, CRT (cathode ray tube) or LCD (liquid crystal display)) through the cooperation of software and hardware. Conventional display techniques map a display terminal onto a two-dimensional array (which corresponds to a physical device called video memory), each pixel on the display terminal is mapped onto an element of the two-dimensional array, whose value is the color code of the pixel, and the ordinate and abscissa of the pixel are the two indices of the two-dimensional array. That is, the pixel with indices (x, y) on the display terminal is mapped onto the element A(x, y) of the two-dimensional array. The system calculates the values of the two-dimensional array based on the graph to be displayed and writes them into corresponding positions of the video memory and then the display driving module reads the display data out of the video memory and transforms them into pixel matrix information, and finally displays the picture on the display terminal. A window refers to a particular region opened on the display terminal for displaying, specific contents, such as a menu, dialogue boxes, charts, images and the like. A window corresponds to a set of display data stored in corresponding positions of the video memory. To display a window is to write display data of the window into the corresponding positions thereof in the video memory.
In the above mentioned display architecture, the display terminal is in one-to-one correspondence with the video memory. Every updating of the display screen is in correspondence with the updating operation of the display data in the video memory. In case of frequently opening and closing of certain windows, it implies the frequent write-in of display data into the video memory and thus a relatively high bandwidth is required. Practically, however, many of such write-in operations into the video memory are unnecessary. For example, a menu, dialogue box and the like are frequently required to the displayed on the display terminal. When some instructions are entered by the user, next menu or dialogue box may overlap cut ones. In reverse, when other instructions are entered by the user, the overlapping menus or dialogue boxes will disappear level by level, lastly the original display will recover on the display terminal. The physical operations corresponding to the above mentioned display variation processes on the display terminal are as follows: display data of the menus or dialogue boxes are written into the video memory in order. When a certain menu or dialogue box disappears, the display data overlapped by it are re-written into the video memory. Since the portion on the display terminal overlapped by the menu or dialogue box remains the same when it pops out, when the menu or dialogue box disappears, it is obviously an unnecessary operation to re-write the same data into the video memory. This causes a low efficiency of the display of windows and the consumption of extra processing resources and memory bandwidth. As for such types of devices as the desk top computers, such kind of consumption may be negligible because the processing capability of CPU and the bandwidth are sufficiently high. However, as for the majority of the embedded systems with limited resources, increasing the processing capability of CPU and the memory bandwidth means significant cost.
It is, therefore, an object of the present invention is to resolve the above technical problem by providing a multi-screen synthesizing display apparatus and method. According to present invention, the consumption of the processing resources and the memory bandwidth is relatively low, and display of multiple windows can be realized without increasing the processing overhead and the memory bandwidth, so the performance of various kinds of electronic devices with display ability can be increased while the cost can be decreased.
The advantageous effects of the present invention lie in that: the present invention maps the physical display terminal into a plurality of logical screens, and to display various pictures is mapped into writing data into different logical screens. When windows are displayed, different windows may be written into same or different logical screens; different windows are correlated to window registers with different priority levels. The display data of multiple logical screens are synthesized into a final display screen to be displayed on the physical terminal according to specific overlapping rule. The operations of pop-out, closing or switching and etc of windows can be realized by changing the synthesizing mode. The alternation of window needs not to repeatedly write-in the display data, thus the overhead for the CPU to process the display task and the bandwidth occupied by writing into the video memory can be reduced. It is not necessary to read out data of all the logical screens when reading the display data, but only the data of the logical screen corresponding to each pixel shall be read out according to the windows overlapping rule. That is, the bandwidth occupied by reading video memory is not increased, thus the processing speed for the CPU of various electronic devices having display ability can be improved, and the display efficiency can be increased and the display cost can be decreased as well.
The features and advantages of the present invention will be explained in detail in the embodiments with reference to the accompanying figures.
The display driving module 6 does not directly map all the data in a single logical screen onto the display terminal 7, but retrieve data from each of the possible logical screens and synthesizes them into a final screen through the logical screen synthesizing module 5 based on a specific rule. The final screen is mapped onto the display terminal 7. Here, the logical screen synthesizing module 5 may be an FPGA (Field Programmable Crate-Array) or an ASIC (Application Specific Integate Circuit).
Further, the window register stack 8 includes multiple sets of window registers M, each set of window registers is defined for each of the windows to be displayed on the display terminal, referred as window register set {WINm0, WINm1}, where m=0, 1, . . . M. Here, ‘m’ indicates the identification of the window register set and can be further used to indicates the priority level of the register set. That is, the display windows are in one-to-one correspondence with the sets of window registers. In present embodiment, each set of window registers is composed of two registers and assigned with a predetermined priority level, shown in Table 1. Based on the priority level, the set of registers are correlated with a window. The window registers can be in any types of memory known in the art. The position coordinates of the window and the identification of its corresponding logical screen are written into the corresponding window register set.
The definition of each set of window registers is shown in Table 1.
Here, x0, y0 are the abscissa and ordinates of the pixel on the upper left corner and x1, y1 are the abscissa and ordinates of the pixel on the lower right corner of a window, respectively. These coordinates define the physical location of the window on the display terminal, which are referred to as the window location coordinates for determining the size and location of the window. SID represents an identification of a logical screen corresponding to the window, that is, identifies the logical screen where the display data of the window are stored. The addresses in the video memory where the window display data are stored can be calculated from x0, y0, x1, y1, and SID. Since there is a one-to-one correspondence relation from each of the logical screens to the display terminal, x0, y0, x1, y1 determine a unique location of the window on the display terminal, and SID determines which logical screen it relates to. Therefore, data of which logical screen are in correspondence with that window can be calculated by a reverse mapping. The enabling bit En is an active/inactive flag of the window, e.g., setting the enabling bit En to “1” means that the window is active, and resetting it to “0” means that the window is inactive.
In present embodiment, the window register set WIN0 is specified to be of the lowest priority level, the window register set WINM is of the highest priority, M>1. Of course, the window register set WINM may be specified to have lowest priority level and WIN0 has the highest priority level. The priority level of each set of window registers can be set in advance. When multiple windows overlap each other, it is specified that the priority level of a window which covers other windows in part or totally in the overlapping region is higher than that of the covered windows. That is, a window corresponding to a set of window registers of higher priority overlaps windows corresponding to other sets of windows register of lower priority levels. Each of the windows is set to correspond to individual set of window registers with priority levels different from each other according to the requirements of display. When a window is required to be displayed, the logical screen mapping unit 3 performs the following operations: writing display data of the window into its corresponding logical screen by storing them in the video memory; assigning a corresponding set of window registers to the window based on its display priority level, writing position coordinates of the window and the identification of the mapped logical screen into the corresponding window register set pertaining to the window; and setting the enabling bit to be active (e.g. to “1”). Consequently, the logical screen synthesizing module 5 maps the data of the window onto the display terminal and displays them. In this way, to close a window only needs to modify the enabling bit En in the window register set so as to make it inactive, then the logical screen synthesizing module make the window disappear from the display terminal by changing the mapping mode. When multiple windows are overlapped, what is needed to do is only to write the display data of the multiple windows once into different logical screens and store the location coordinates of each window and the identification of the corresponding logical screen into individual set of window registers with particular priority level. The embedded display of the windows can be realized by scheduling and managing individual sets of window registers, and it is not necessary to redraw the portion covered by a window when the window is closed.
The synthesis of logical screens is performed by the logical screen synthesizing module 5, which can be in the form of hardware circuit. The display terminal displays individual pixels on the screen in a scanning mode according to specific timing. The logical screen synthesizing module 5 maps the data retrieved from a logical screen onto the pixels to be displayed on the display terminal under control of the display timing. Please note that, although as many as N+1 logical screens have been defined, it is not necessary to retrieve and synthesize all the data in the logical screens from the video memory, but only the data in the logical screens to which the display pixels correspond uniquely after the application of the window priority rule have to be applied.
The process begins with scanning display pixels at step 10 and then proceeds to step 11.
At Step 11, the current pixel (x, y) is detected and determined to reside which active windows by means of the coordinates (x, y) of the current pixel. An active window refers to a window that shall be displayed on the display terminal and the enabling bit of the corresponding window register set is enabled. The specific detecting process includes: comparing the abscissa x of the pixel (x,y) to the x0 and x1 of the window coordinates written into the down register set, and comparing the ordinate y of the pixel (x,y) to the y0 and y1 of the window coordinates written into the window register set. If the condition x0≦x≦x1 and y0≦y≦y1 are satisfied, then it is determined that the coordinates (x,y) of the current pixel reside in the window corresponding to the window register set. An active set of window registers that contains the coordinates (x,y) of the current pixel, are referred to as a candidate. Preferably, the candidate window register set can be obtained in two ways. One is to compare the coordinates (x,y) of the current pixel to the window location coordinates written into all the sets of window registers. A detecting result is outputted based on the comparison no matter whether the set of window register is active or not, but only those active sets of window registers are considered as dates and allowed to participate in the priority sequencing of step 12. The another way is to detect first whether the enabling bit En of a set of window registers is active or not, the coordinates (x,y) of the current pixel are compared to the window location coordinates written into the set of window register only when it is active, otherwise the next register set is detected. Then the process proceeds to step 12;
At Step 12, one set of window registers with the highest priority level among the candidates are hit as a selected set of window registers (please note that a priority level is assigned to each of the window registers in advance). The window overlapping rule specifies that a window corresponding to a set of window registers of higher priority level overlaps windows corresponding to other sets of window registers of lower priority levels. Based on the detecting results of the pixel (x, y) on all windows, it can be determined that the pixel (x, y) shall be located within an active set of window registers (assumed to be WINs) which has the highest priority. Then the process proceeds to step 13.
At Step 13, the display data Ar(x, y) are read out of a logical screen ‘r’ from the video memory based on the SID designated by the selected window register WINs. Then the process proceeds to step 14.
At Step 14, the display data Ar(x, y) is mapped onto the display terminal pixel (x, y) to be displayed by the display driving module 6. Then the process proceeds to step 15.
At Step 15, after the pixel (x, y) having been display repeating the above steps to scan the next pixel.
In the case that the pixel (x, y) is not confined in any of the active windows, the background display data are displayed on the display terminal. Here, the background display data are mapped onto a designated logical screen. When any of the active windows does not contain the pixel (x, y), the display data corresponding to the current pixel (x, y) are read out directly from the designated logical screen and mapped onto the display terminal.
In the present invention, the display of multilevel windows corresponds to the operation of writing display data into different logical screens in the video memory, and various flexible windows overlapping modes correspond to the management of the window register sets by software. The display data need not to be repeatedly written when the windows are switched, thus the overhead for the CPU to process display tasks and the bandwidth occupied by wry the display data can be reduced. When the Display data are read, it is not necessary to read out data of all the logical screens, but only the data of the logical screen corresponding to the current pixel are read according to the windows overlapping rule. That is, the bandwidth occupied by reading the video memory is not increased. The cost expended is only the increment of the capacity of the video memory while this usually does not result in the significant increment of cost. For example, the resolution of a display terminal is 1280×1024, and the word length of the display data is 16 bits, defining one logical screen requires 2.5 MB of memory space, and expanding to 4 logical screens requires 10 MB of memory space. Currently, the rapid development of the semiconductor technology reduces the price per unit of memory to a very low level, for example, the minimum capacity of the marketing DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory) is 16 MB. That is, expanding from 2.5 MB to 10 MB needs not to pay extra expenditure.
Number | Date | Country | Kind |
---|---|---|---|
2006 1 0034494 | Mar 2006 | CN | national |
Number | Name | Date | Kind |
---|---|---|---|
4658351 | Teng | Apr 1987 | A |
4704697 | Kiremidjian et al. | Nov 1987 | A |
4868765 | Diefendorff | Sep 1989 | A |
4954818 | Nakane et al. | Sep 1990 | A |
5129055 | Yamazaki et al. | Jul 1992 | A |
5146335 | Kim et al. | Sep 1992 | A |
5286505 | Hartson et al. | Feb 1994 | A |
5398074 | Duffield et al. | Mar 1995 | A |
5657096 | Lukacs | Aug 1997 | A |
5737011 | Lukacs | Apr 1998 | A |
5835360 | Jansen | Nov 1998 | A |
5892511 | Gelsinger et al. | Apr 1999 | A |
5923307 | Hogle, IV | Jul 1999 | A |
6018340 | Butler et al. | Jan 2000 | A |
6046777 | Patton et al. | Apr 2000 | A |
6348868 | Chou | Feb 2002 | B1 |
6348933 | Walls et al. | Feb 2002 | B1 |
6822659 | Marion et al. | Nov 2004 | B2 |
7071944 | MacInnis et al. | Jul 2006 | B2 |
7154558 | Yui et al. | Dec 2006 | B2 |
7356823 | Martyn | Apr 2008 | B2 |
7598958 | Kelleher | Oct 2009 | B1 |
7616206 | Danilak | Nov 2009 | B1 |
20020075407 | Cohen-Solal | Jun 2002 | A1 |
20030063893 | Read | Apr 2003 | A1 |
20050286639 | Aggarwal et al. | Dec 2005 | A1 |
20060150225 | Hegg et al. | Jul 2006 | A1 |
20060257099 | Potrebic et al. | Nov 2006 | A1 |
20070103590 | Azar et al. | May 2007 | A1 |
20070140537 | Heigl et al. | Jun 2007 | A1 |
20070174778 | Johnson et al. | Jul 2007 | A1 |
Number | Date | Country |
---|---|---|
1713264 | Dec 2005 | CN |
Entry |
---|
Microsoft Corporation, Microsoft Windows XP Screen Dumps, Microsoft Corporation, pp. 1-2. |
Number | Date | Country | |
---|---|---|---|
20070216700 A1 | Sep 2007 | US |