The present invention relates generally to the rendering of data in a video graphics system, and more particularly to a method and apparatus for rendering active video using more than one video adapter.
The prior art configuration of
In general, the control circuitry associated with the local bus of
Therefore, a system that allows for a video-input signal to be displayed on a primary adapter, or any of a number of secondary video adapters, would be advantageous.
It should be understood that the figures included herein illustrate specific embodiments of the present invention. Other embodiments of the present invention may exist. Specific elements illustrated with the embodiments herein are not intended to represent actual size, location relationships between the components.
In accordance with the present invention, a video source is received by a first video adapter. The video source is captured in the video memory associated with the first VGA. The stored video source is associated with a window of an existing application. When the window of the existing application is shifted to coincide with the video memory of a second graphics adapter, the first graphics adapter performs a memory access function across a systems bus to the appropriate video memory location with the second graphics adapter to allow the rendering of that portion of the video now residing on a second monitor. Such remote rendering allows for active video signals to be displayed on any secondary or primary video graphics adapter. This is an advantage over the prior art, which precluded the displaying of active video graphics on secondary graphics adapters.
The portion 300 may include discrete add-on cards in a general purpose computer, components integrated on a mother board, such as Application Specific Integrated circuits (ASICs) or data processors. This bus 340 may be any number of connectors, including ribbon cable connecting two separate add-on boards, a bus integrated onto a mother board, or connector pins associated with a bus where the video decoder actually plugs into the graphics adapter 340.
In operation, a video-in signal is received at the video decoder 310. The video-in signal can be representative of any number of video signals. For example, the video-in could be a compressed video signal such as an MPEG video signal, a DVD video signal, a video signal from a VCR, a television, or any other video source. The video decoder 310 converts the video-in to a video source signal usable by the graphics adapter 320. Once the video-in conversion process is completed by the decoder 310, the video source is transmitted across the dedicated local bus 340 to the graphics adapter 320. In other embodiments, the dedicated video bus 340 could be connected to other peripheral boards as well. However, in accordance with this specific embodiment, video data will not be transmitted across the system bus 350. The data transmitted across the bus 340 is captured into the video memory 322 by the graphics adapter 320. Once captured at the video memory 322, it is possible to retrieve the data from the video memory 322 and display it visually onto the monitor 324.
During normal operation the system 300 will be used in conjunction with an operating system, such as Windows 98 by Microsoft. Applications run under such an operating system would display the active video data, received by the video decoder and subsequently captured in the video memory 322, within an application window on monitor 324. The application window is specified by the operating system, and the graphics adapter renders data from the video memory 322 such that it can be displayed within the application window on monitor 324.
If the application window is moved to a different monitor, or a portion of the window is moved to a different monitor, such as monitor 334 associated with graphics adapter 330, the following sequence of events will occur. The operating system, in response to the user's inputs, would transmit operating system commands indicating the new window location. These operating system commands are interpreted by the graphics adapters 320 and 330 at memory 322. In response, the graphics adapter 330 will recognize that a portion of its video memory is to be displayed. However, all of the video data to be displayed is still being received and stored by the graphics adapter 320. Therefore, it is necessary for graphics adapter 320 to recognize the application window previously being displayed exclusively on monitor 324 is now at least partially being displayed on monitor 334. In response, the graphics adapter 320 will determine that portion of it video memory 322 that is now to be displayed by the adapter 330. This portion of the memory 322 will be sent to the adapter 330 using a transfer technique, such as a DMA transfer. DMA hardware capable of transmitting the video to the appropriate video memory location in video memory 332 can be located on VGA 320.
Once the video data associated with the screen 334 is stored within the video memory 332, it is possible for the graphics adapter 330 to render this data as an image on the monitor 334. Note that in one embodiment, as video input continues to be received at the decoder, and transmitted across the dedicated local bus 340 to the graphics adapter 320, it would be necessary for a DMA controller within the graphics adapter 320 to continue to transfer the data from the video memory 322 across the PCI bus to the video memory 332 of graphics adapter 330. In this manner, it is possible for video data to be displayed on multiple display devices.
In one embodiment of the present invention, the video source data received on a dedicated local bus 340 will continue to be stored in the video memory 322, and the portion of video memory 320 needed at the remote graphics adapter 330 would be transmitted across the PCI bus as received and/or needed. In another embodiment, it would be possible to incorporate appropriate hardware to the graphics adapter 320 capable of monitoring data being received across the remote local bus 340, and transferring data that is rendered only on the adapter 330 directly to the adapter 330 without first saving it to memory 322. In a specific embodiment where video is to be mirrored on the monitors 324 and 334, it would be necessary for the video memory 322, and the video memory 332 to contain the same data information. Note, however, the video information stored within each of the two memories 322 and 332 would not necessarily be stored at the same memory location within each of the respective memories 322, and 332.
In accordance with the present invention, either graphics adapter 320, or the graphics adapter 330 may be the primary graphics adapter. The term “primary graphics adapter” refers specifically to the plug-and-play terminology of Windows 98 operating system, where the first video graphics adapter recognized during the start-up routine is considered the primary video adapter by the operating system. Under Windows 98, only a primary adapter can be operationally connected to a video decoder as indicated in
Yet another advantage of the present invention is that multiple video sources can be associated with the system 300. For example, a second video source 315 can be connected through its own dedicated bus to the graphics adapter 330. The video source 315 can be a second video decoder, television, videocassette recorder, or any other video source. The second video source 315 provides a video-out signal (a video source) to the adapter 330, which would be a video source relative to the adapter 330. In this situation, it would be possible for the multiple video-in sources to be displayed upon any of the monitoring devices of the present system. It should also be understood by one skilled in the art that the present invention is not limited to two graphics adapters or two video decoders. For example, a video wall concept could be used. A video wall refers to a technique whereby multiple display devices are stacked on top and beside each other in an array fashion to display a video image on a large scale. For example, four monitors can be arranged in a 2-by-2 grid, where each monitor would be displaying approximately one-quarter of the video-in signal. Using this technique, the video-in signal would be received by the video decoder 310 transmitted across dedicated bus 340 to the graphics adapter 320 and stored in its memory 322. Next, the DMA associated with the graphics adapter 321 will transmit one-quarter of the data stored in video memory 322 to a first video memory, a second quarter to a second video memory, and the third quarter to a third video memory. Thereby, each of the video memories would have approximately a quarter of the data, and all of the data it needs to display its quadrant on the wall monitor.
The system of
The other units include random access memory (RAM) 412, read-only memory (ROM) 414, and input/output (I/O) adapter 422 for connecting peripheral devices, a user interface adapter 420 for connecting user interface devices, a communication adapter 424 for connecting the system 400 to a data processing network, and a video/graphic controller for displaying video and graphic information.
The I/O adapter is further connected to disk drives 447, printers 445, removable storage devices 446, and tape units (not shown) via bus 402. Other storage devices may also be interface to the bus 412 through the I/O adapter 422.
The user interface adapter 420 is connected to a keyboard device 440 and a mouse 441. Other user interface devices such as a touch screen device (not shown) may also be coupled to the system bus 402 through the user interface adapter 420.
A communication adapter 424 is connected to bridge 450 and/or modem 451. Furthermore, a video/graphic controller 426S connects the system bus 402 to a display device 460.
In operation, the bus 402 could correspond to the PCI bus 350 of
One method of recognizing the video decoder 310 on remote bus 340 is put forth in patent application, entitled “Method and Apparatus for Configuring a Computer System, filed on Mar. 19, 1999, and having application Ser. No. 09/272,464, owned by instant Assignee and is hereby incorporated by reference.
Next, in step 511, an application start-up occurs. In a specific embodiment, the application is an active video application whereby an active video signal is received and displayed within a window opened by, or for, the application. For example, if a user chooses to watch a television program on a computer screen, an application capable of displaying such a television program would be executed.
During start-up of the video application, a window would be defined and transmitted across the system by the operating system. As part of the system information, the first video graphics controller will interpret the operating system information and, as a result, begin storing the actual video source information within its memory for display in the window itself. With an operation system such as Windows 98, this would be accomplished by the primary video graphics adapter. Therefore, the primary video graphics adapter will capture the data, and render it onto the screen in the window defined by the system.
Next, at step 512, a window move command is interpreted by a second video graphics adapter. This occurs when a user input defines that a window is supposed to be displayed at least partially on a second display device. For example, if a user drags a window displaying active video graphics from a first monitor across to a second monitor, a command would be transmitted across the operating system and intercepted by both the first video graphics adapter and the second video graphics adapter. In other embodiments, it would be possible to display a portion of the window on each of the two display devices, or it would be possible even to have multiple windows displaying the same video data on multiple systems.
Once the first video system recognizes that a portion of the window has moved to a monitor controlled by a different video controller, it will send the captured video to the second VGA. Generally, this would be accomplished across the system bus, such as the PCI bus. This is done generally by a direct memory access (DMA) type device that is controlled by the adapter that monitors systems calls, and is aware of the new location in the other adapter where to map the captured data. One of ordinary skill in the art will recognize that in other implementations, instead of having a DMA sending the captured data to the second video graphics adapters memory, it would be possible to intercept the data before it is stored in the first VGA's memory, thereby keeping just one copy at the location needed (the second VGA).
Next, at step 514, the video data associated with each of the VGA's, now stored in their respective local memories, is rendered in a normal manner such that it is displayed on a screen.
The present invention has been put forth in terms of specific embodiments not intended to be limiting to the invention itself. Other specific implementations of the present invention are possible. For example, in
Number | Name | Date | Kind |
---|---|---|---|
4695966 | Takakura et al. | Sep 1987 | A |
4760388 | Tatsumi et al. | Jul 1988 | A |
4876651 | Dawson et al. | Oct 1989 | A |
4897812 | Lessard et al. | Jan 1990 | A |
4949169 | Lumelsky et al. | Aug 1990 | A |
4949279 | Takakura et al. | Aug 1990 | A |
4965559 | Dye | Oct 1990 | A |
5014128 | Chen | May 1991 | A |
5018076 | Johary et al. | May 1991 | A |
5113517 | Beard et al. | May 1992 | A |
5119080 | Kajimoto et al. | Jun 1992 | A |
5254984 | Wakeland | Oct 1993 | A |
5275565 | Moncrief | Jan 1994 | A |
5361078 | Caine | Nov 1994 | A |
5374940 | Corio | Dec 1994 | A |
5379052 | Walck et al. | Jan 1995 | A |
5396257 | Someya et al. | Mar 1995 | A |
5434590 | Dinwiddie et al. | Jul 1995 | A |
5454075 | Kudo | Sep 1995 | A |
5461679 | Normile et al. | Oct 1995 | A |
5471577 | Lightbody et al. | Nov 1995 | A |
5500654 | Fujimoto | Mar 1996 | A |
5523769 | Lauer et al. | Jun 1996 | A |
5526024 | Gaglianello et al. | Jun 1996 | A |
5557734 | Wilson | Sep 1996 | A |
5559525 | Zenda | Sep 1996 | A |
5574836 | Broemmelsiek | Nov 1996 | A |
5657046 | Noble et al. | Aug 1997 | A |
5694141 | Chee | Dec 1997 | A |
5694150 | Sigona et al. | Dec 1997 | A |
5712664 | Reddy | Jan 1998 | A |
5736968 | Tsakiris | Apr 1998 | A |
5764964 | Dwin et al. | Jun 1998 | A |
5784035 | Hagiwara et al. | Jul 1998 | A |
5838334 | Dye | Nov 1998 | A |
5874928 | Kou | Feb 1999 | A |
5923307 | Hogle, IV | Jul 1999 | A |
5926187 | Kim | Jul 1999 | A |
5943064 | Hong | Aug 1999 | A |
5956046 | Kehlet et al. | Sep 1999 | A |
5959639 | Wada | Sep 1999 | A |
5977933 | Wicher et al. | Nov 1999 | A |
6020890 | Kohda | Feb 2000 | A |
6072476 | Harada et al. | Jun 2000 | A |
6088005 | Walls et al. | Jul 2000 | A |
6219695 | Guttag et al. | Apr 2001 | B1 |
6262695 | McGowan | Jul 2001 | B1 |
6292200 | Bowen et al. | Sep 2001 | B1 |
6297785 | Sommer et al. | Oct 2001 | B1 |
6297817 | Larson et al. | Oct 2001 | B1 |
6323854 | Knox et al. | Nov 2001 | B1 |
6340959 | Inamori | Jan 2002 | B1 |
6344836 | Suzuki | Feb 2002 | B1 |
6501441 | Ludtke et al. | Dec 2002 | B1 |
6509911 | Shimotono | Jan 2003 | B1 |
6573913 | Butler et al. | Jun 2003 | B1 |
6583771 | Furuhashi et al. | Jun 2003 | B1 |
20020067318 | Matsuzaki et al. | Jun 2002 | A1 |