1. Field of the Invention
This invention relates to a method of generating on-screen display (OSD) images, such as OSD images in a keyboard, video, mouse (KVM) switch system.
2. Description of the Related Art
In a keyboard, video, mouse (KVM) switch system, generally shown in
In addition to communicating with the selected computer 12, the user console 11 can communicate with and control the KVM switch 13. For example, the user using the user console 11 can log on to the KVM switch 13, change the settings of the KVM switch, select one of the multiple computers 12 to control, etc. The KVM switch 13 implements an on-screen display (OSD) system to assist the user in communicating with the KVM switch. The OSD system generates images such as menus for display on the monitor 11a of the user console 11, and the user uses the keyboard 11b or mouse 11c to generate input signals for the KVM switch 13 in response to the OSD display.
One conventional method of generating an OSD display involves the KVM switch 13 generating bitmap images, compressing the bitmap images, and sending the compressed bitmap images to the user console 11. A bit-map (or raster) image is one of the two or more graphic types (the other being vector). Bitmap-based images are comprised of pixels in a grid. Each pixel or “bit” in the image contains information about the color to be displayed. Bitmap images have a fixed resolution and cannot be resized without losing image quality. Common bitmap-based formats are JPEG, GIF, TIFF, PNG, PICT, and BMP. Most bitmap images can be converted to other bitmap-based formats very easily. Bitmap images tend to have much large file sizes than vector graphics and they are often compressed to reduce their size. Although many graphics formats are bitmap-based, bitmap (BMP) is also a graphic format. The user console 11 decompresses the bitmap images and displays them on the monitor 11a. In other words, the entire OSD image is generated as a bitmap image by the KVM switch 13. This OSD generating method requires a relatively large amount of bitmap image data to be transmitted to the console. In addition, calculating bitmap images of the OSD is executed by the KVM switch 13, which increases the burden of the processor on the KVM switch. Moreover, if the monitors for different user consoles have different properties such as resolution, the KVM switch has to generate different bitmap images for the different monitors.
In another conventional method of generating OSD displays, the KVM switch 13 generate OSD images and overlays them with video signal from the computer 12 and transmits the video signal to the console 11. Then console displays the video signals in the same way as the video signal from the computer 12 is normally displayed, whereby the OSD image is displayed on the console monitor. Most conventional KVM switch systems adopt this method for OSD display on local consoles (i.e. consoles located within a relatively short range from the KVM switch and connected by a dedicated connection). This method requires more memory resource for the KVM switch 13 if multiple consoles are present.
Some KVM system uses the console 11 to generate OSD images. The console 11 receives from the KVM switch 13 data regarding system configuration, such as username, network address, etc. The data does not specify the actual user interface that will be displayed on the console monitor, and the console creates the user interface for itself. After the user finishes the relevant operations, the console may send instructions to the KVM switch, such as instructions regarding user logon, and the KVM switch interprets and executes the instructions. This method requires the console to be adapted for the particular KVM switches it communicates with because different KVM switches may use different system data format, etc. The console can also be provided with the ability to communicate with multiple different KVM switches, but this increases the resource requirements for the console. Under this scheme, both the console 11 and the KVM switch 13 are involved communication for each instruction. This method is used in KVM systems where the console is connected to the KVM switch via CAT5 cables, as well as KVM systems where the console is connected to the KVM switch over a network such as the Internet (referred to as KVM over IP).
b illustrates a KVM system in which a number of remote consoles 11 are coupled to the KVM switch 13 via a network 10 and respective console-side devices 17. The network 10 may be a local area network (LAN), wide area network (WAN), the Internet, Ethernet, Intranet, etc. The console-side device 17 can be any computing device, such as a desktop computer. The remote console 11 and the console-side device 17 may also be integrated in a laptop computer. A local console 18 may also be connected to the KVM switch 13.
c illustrates a KVM system in which a number of consoles 11 located remotely are coupled to the KVM switch 13 via respective console modules 19 and respective CAT5 interfaces 19a. The console module 19 functions to transform video signals in differential mode form the KVM switch 13 to single end signals readable for the monitor 11a of the console 11.
The above OSD generating methods are also employed in general server-client systems (generally shown in
Vector graphics are used widely in image generation. A vector image is one of the two major graphic types (the other being bitmap). Vector graphics are made up of many individual objects. Each of these objects can be defined by mathematical statements and has individual properties assigned to it such as color, fill, and outline. Vector graphics are resolution independent because they can be output to the highest quality at any scale.
The present invention is directed to a method for generating OSD images that substantially obviates one or more of the problems due to limitations and disadvantages of the related art.
An object of the present invention is to provide an improved method for generating OSD images displayed on a user console.
Additional features and advantages of the invention will be set forth in the descriptions that follow and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims thereof as well as the appended drawings.
To achieve these and other advantages and in accordance with the purpose of the present invention, as embodied and broadly described, the present invention provides a method implemented in a KVM switch system for generating an OSD image, the KVM switch system including a KVM switch and a user console connected to the switch, the user console including a monitor, the method including: the KVM switch transmitting drawing commands descriptive of OSD images to the user console; the user console processing the drawing commands received from the KVM switch to generate bitmap images for OSD; and the user console displaying the bitmap images for OSD on the monitor of the user console.
In another aspect, the present invention provides, in a KVM switch system including a KVM switch and a user console connected to the switch, a method implemented in the KVM switch, which includes: generating drawing commands descriptive of on-screen display (OSD) images; and transmitting the drawing commands to the user console.
In another aspect, the present invention provides, in a KVM switch system including a KVM switch and a user console connected to the switch, the user console including a monitor, a method implemented in the user console, which includes: receiving from the KVM switch drawing commands descriptive of OSD images; processing the received drawing commands to generate bitmap images for OSD; and displaying the bitmap images for OSD on the monitor of the user console.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
a-1c schematically illustrate KVM switch systems in which embodiments of the present invention may be implemented.
d schematically illustrates a server-client system in which embodiments of the present invention may be implemented.
As required, a detailed illustrative embodiment of the present invention is disclosed herein. However, techniques, systems and operating structures in accordance with the present invention may be embodied in a wide variety of forms and modes, some of which may be quite different from those in the disclosed embodiment. Consequently, the specific structural and functional details disclosed herein are merely representative, yet in that regard, they are deemed to afford the best embodiment for purposes of disclosure and to provide a basis for the claims herein, which define the scope of the present invention. The following presents a detailed description of the preferred embodiment (as well as some alternative embodiments) of the present invention.
Embodiments of the present invention provide an improved method for generating OSD images for the user console in a keyboard, video, mouse (KVM) system. The KVM system in which the method can be implemented has the same general configuration as the ones shown in
In this disclosure, the term “console side” or “console side system” generally refer to the user console 11 in the system of
In an on-screen display (OSD) image generating method according to an embodiment of the present invention, as schematically illustrated in
In addition to the steps described above, the console side processor may store on the console side resources useful in generating OSD images. Such resources may include text data, vector graphic data, bitmap image data, etc. The resources are transmitted from the KVM switch 13 to the console side once, and are stored in and managed by the console side processor for future use. These resources are later used to generate OSD images by the console side processor based on drawing commands received from the KVM switch 13. For example, the KVM switch 13 may transmit text, graphics or image data representing an icon to the console side processor, where the icon is identified by a resource identifier. The data representing the icon is stored on the console side. Later, the KVM switch 13 may transmit a drawing command to the console side processor referring to the particular resource identifier, and the console side processor draws the icon using the stored resource. The console side processor may also send requests to the KVM switch 13 to request particular resources. For example, if the console side processor receives a drawing command that refers to a resource identifier for an icon, but the console side processor has not already received that resource from the KVM switch 13, the console side processor sends a request to the KVM switch to request the resource.
Further, the drawing commands may include macros, each macro representing a series of drawing commands. For example, a macro may represent a series of commands that draw an icon and certain text associated with the icon. The KVM switch 13 may transmit a series of drawing commands to the console side processor, and instructs the console side processor to define the series of drawing commands as a macro which is identified by a macro identifier. The macros are stored on the console side and managed by the console side processor. Later, the KVM switch 13 may transmit a drawing command to the console side processor referring to the macro identifier, and the console side processor executes the series of drawing commands represented by that macro to draw the images.
After step S32, or if no request for resources from the console side processor is received (“N” in step S31), the KVM switch 13 determines whether the transmission buffer contains any drawing command to be transmitted to the console side processor (step S33). A separate process executed by the KVM switch 13 (not shown in
As shown in
Tables 1 and 2 below present exemplary program code of programs executed by the KVM switch (server) and the console side processor (client), respectively. It should be understood that they are only examples and the invention is not limited to any particular software implementation.
By transmitting drawing commands from the KVM switch to the console side and generating OSD images at the console side, the OSD generating method described above has the advantages of being highly modular, fast and portable.
Although a KVM switch system (
As pointed out earlier, in conventional methods of generating OSD display, different KVM switches may require different consoles or different console software to ensure that the KVM switch and the console can correctly cooperate with each other. Further, the KVM switch may be required to perform different calculation for different consoles. Embodiments of the present invention provide a universal method for OSD image generation. Using such methods according to embodiments of the present invention, the console side processor only has to interpret and execute OSD drawing commands from the KVM switch. This allows the same console side structure to be used with different KVM switch systems. For the same KVM switch, different consoles can display the same user interface display, even on consoles systems that run under different operating systems. The KVM switch sends the same drawing commands to different console side processors regardless of the console hardware requirements such as the monitor resolution. Another advantage of the OSD generating method according to embodiments of the present invention is the reduced memory demand on the KVM switch. The conventional method that transmits compressed OSD images from the KVM switch to the console requires large memory capacity for the KVM switch to support concurrent multiple users.
It will be apparent to those skilled in the art that various modification and variations can be made in the OSD generating method of the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover modifications and variations that come within the scope of the appended claims and their equivalents.