This application is related to commonly assigned co-pending application Ser. No. 09/526,440 filed Mar. 16, 2000 entitled “MULTIPLE DISPLAY DEVICE DISPLAY CONTROLLER WITH VIDEO OVERLAY AND FULL SCREEN VIDEO OUTPUTS”, the specification of which is hereby incorporated by reference.
The present invention relates to a single controller system for multiple display output.
Video display controllers are known which are able to work with both RGB format video and YUV format video to combine two video surfaces from graphics memory to provide an overlay output. This is useful, for example, in the situation that a movie source in YUV format is obtained by decoding a video file from say a CD-ROM or DVD device, and written to a video surface in graphics memory. At the same time a computer environment desktop is stored in RGB format in another surface within graphics memory. These two surfaces can be combined to provide the YUV source within a window on the desktop. Because the video display controller handles the conversion, scaling and mixing of the two sources, the computer operating system or application program does not directly create the desired display, but rather instructs the display controller system to scale and combine the two sources as desired. The quality of display and efficiency of the computer system is thereby greatly enhanced. An example of such a system is described in U.S. Pat. No. 5,764,201 to Ranganathan.
In such displays controller systems, only one combined output of mixed format video is possible in which case the second output can only mirror what is being displayed by the first output. Furthermore, since only two surfaces (one RGB and one YUV) are being fetched one for each of only one RGB pixel path and only one YUV pixel path, the degree of flexibility is further limited, and it would be desirable to have greater control over surface selection, combination, scaling and output.
It is therefore a first object of the present invention to provide an apparatus and a method for controlling a single graphic controller system with a single memory subsystem having at least two display outputs, in which control of surface selection, conversion, combination, scaling and output is afforded without the limitations known in the prior art.
According to the invention, there is provided a method of providing a display output for at least two display devices using a single controller system. The method comprises:
providing a first display controller able to read from a graphics memory at least two first surfaces into at least two first pixel paths, convert the pixel format of at least one of the at least two first surfaces, scale at least one of the at least two first surfaces, and combine (at least one of blending and overlaying) the at least two first surfaces, where at least one of the first pixel paths supports any one of RGB and YUV pixel format and at least one of the pixel paths supports at least RGB pixel format; providing a second display controller able to read from a graphics memory at least two second surfaces, convert the pixel format of at least one of the at least two second surfaces, scale at least one of the at least two second surfaces, and combine the at least two second surfaces, where at least one of the pixel paths supports any one of RGB and the YUV pixel formats and at least one of the pixel paths supports at least an RGB pixel format;
causing the first display controller to select and read the first surfaces, convert the first surfaces into a like first format at least when the first surfaces are not all in the like first format, scaling at least one of the first surfaces, combining (at least one of blending and overlaying) the first surfaces to obtain a blended first surface, and outputting the combined first surface to provide a first output stream of pixel data;
causing the second display controller to select and read the second surfaces, convert the second surfaces into a like second format at least when the second surfaces are not in the like second format, scaling at least one of the second surfaces, combining (at least one of blending and overlaying) the second surfaces to obtain a blended second surface, and outputting the combined second surface to provide a second output stream of pixel data. In this way, flexibility is provided by selection of the first and second surfaces as well as scaling and combining of the first and second surfaces, whether the surfaces are in RGB format, YUV format or mixed RGB/YUV format. It will be appreciated that any of the surfaces could be common between the two controllers. This enables the same surface to be displayed on the two displays in different ways, formats and blended with different surfaces.
While the preferred embodiment suggests that any of the scalers be part of the controllers, the functioning of any of these scalers can be carried out by using the scaling capabilities of the graphic controller system's drawing engine whereby that particular scalar may be removed from the preferred embodiment.
Preferably, the first output stream and the second output stream are fed into a first multiplexer and a second multiplexer, an output of the first multiplexer being fed into a first display, and an output of the second multiplexer being fed into a second display, and the method further comprises causing the multiplexers to select a desired one of the output streams for display on the first and second displays.
Also preferably, the first display controller reads two first surfaces, has at least one controllable color space converters outputting a selected one of RGB and YUV pixel format, and two scaling units scaling an output of the two color space converters, and a combining unit receiving an output of the two scaling units. The method then preferably includes causing the two scaling units to scale each of the two first surfaces. While the preferred embodiment includes two scalers, fewer or more scalers can be used. As an example, the two scaling units can be replaced by one scaler scaling the output of the combining unit in a case where it is known that the two surfaces do not need to be scaled independently.
The single controller system may alternatively comprise a drawing engine scaler instead of any one or all backend scalers responsive to a scaling command to pre-scale at least one surface in the graphics memory and output a scaled version in a scaled surface in the graphics memory; and one of the steps of causing the first display controller and causing the second display controller may comprise one of scaling the at least one of the first surfaces and the at least one of the second surfaces, respectively, using the drawing engine and reading the at least one of the first surfaces and the at least one of the second surfaces, respectively, from the scaled surface.
While the description of the invention uses two controllers as the preferred embodiment, it can easily be extended or scaled to additional controllers.
Two independent display controllers (primary display and secondary display controller) each able to generate a stream of pixel data and associated synchronization signals (syncs) from pixel data contained in a display memory (surfaces). Each display controller can combine (overlay or blend) two or more surfaces using two or more pixel paths with or without scaling in a wide variety of pixel formats and color spaces. (Note that the number of surfaces can be more than two while still remaining within the scope and spirit of the invention). This provides a great deal of capability and flexibility, which enables a host of useful new features to the end user. The two display controllers can drive a variety of output ports including any combination of RGB D/A converters, video encoder, and TDMS Panel Link or LCD interface. This permits many display combinations such as two RGB monitors, two TV monitors, two flat panel displays or any mix of them.
The primary display controller can read two surfaces from display memory into two pixel paths. Each surface can be in any one of a variety of pixel data formats such as YUV (4:2:0, 4:4:2 etc.) and RGB (8, 16, 24, 32). The primary display controller can combine (overlay or blend) the two surfaces together. One or both of the surfaces can optionally be re-scaled using either one of or all of the backend scalers before or after being combined using the appropriate backend scaler or the 3D drawing engine into a display surface in memory before even being read by the display controller. A fixed or programmable color space converter is included in one or both pixel data paths, so that combined pixels are in the same color space. For example, a surface can be in YCbCr or YUV format (video) and is converted in RGB (graphic) format before being combined with the RGB Windows desktop. Typically, but not exclusively, this is used to display a video surface (video in a window) under a graphic overlay surface (e.g. 2D desktop). One of the overlay surface can be a graphic bitmap. Typically, but not exclusively, this is used to display a DVD sub-picture overlay (or blended) surface over a DVD decoded picture.
The secondary display controller can also simultaneously read 2 surfaces from display memory into two pixel paths and combine them together. The secondary display controller can be identical to the primary display controller, or it can support a subset of the full feature set. For example, the secondary display controller's main surface could either be in YCbCr (4:4:4, 4:2:2, 4:1:1, 4:2:0) or RGBalpha (8, 16, 24, 32 bpp) format which allows for various types of surfaces to be displayed (grabbed video from video input port, S/W decoded video, graphic images etc.). The second overlay surface can be a graphic bitmap or other type of surface. Typically, but not exclusively, this is used to display a DVD sub-picture overlay surface over a DVD decoded picture. Note that in single chip multi-display controllers of prior art, blending and scaling units are limited to one controller only and/or a total of only two pixel paths are present. This invention requires the incorporation of at least one of such units and at least two pixel paths in each of at least two controllers in order to increase flexibility.
One or more CRTCs can be set to convert a 16 or 32 bpp RGBalpha format into a YUV 4:2:2+ alpha format. When RGB32 is output as YUV 4:2:2+ alpha data (upper 8 bits out of RGB32), the alpha data is useful as a key signal. This mode is useful for outputting a Windows desktop surface as a standard video signal. It is also useful for using the video controller as a source of graphics plus key for professional video graphics and titling applications.
One of the main applications of the invention is where the second display can show a video image full screen while the main display maintains a separate image such as a fully interactive Windows desktop. The video from the second display can also be replicated on the first display within a window. For the video on both displays to have sub-picture blending, both controllers must have sub-picture blending units.
The invention will be better understood by way of the following detailed description of a preferred embodiment with reference to the appended drawings, in which:
Each CRTC contains one or more backend Scaler 14 (refer to
Typically, the graphics memory 50 and one or all encoders are external of the discrete device (ASIC) containing the CRTCs, the drawing engine and the graphics subsystem manager. A graphics device driver 31 is also external to the graphics card device 38 and sends the appropriate control signals to the graphics subsystem manager 36. A first display 26 and a second display 28 receive the data encoded by Encoder1 30 and Encoder2 32.
Although conversion to RGB format is illustrated and preferred over conversion to YUV format, both types of conversion are possible.
The operation and design of the blending units 18 and other units within the CRTCs Scaler 14, 16 and CSC 15 are general and well known to someone skilled in the art and are therefore not described here.
Instead of using the backend scaler 14, 16, the 3D drawing engine 60 of the graphics controller can also be used for pre-scaling surfaces and storing them in memory.
While the scaling capabilities of the 3D drawing engine 60 are typically used for scaling textures for 3D objects, the capability can be leveraged to scale any type of surface by treating the surfaces as a texture. This also allows a CRTC 11, 12 having only one scaler to blend surfaces both of which need to be scaled, and this allows a CRTC 11, 12 having no scaler to blend surfaces in which at least one of the surfaces has been scaled prior to blending.
In the embodiment of
It will be appreciated that CRTC1 11 and CRTC2 12 each read two surfaces from one memory 50, and that one or both of these surfaces may be the same surfaces in which case the same surface can be displayed in different ways. The present invention is also not limited to reading only two surfaces into two pixel paths, but a CRTC 11, 12 may be designed to be controlled to read three or more surfaces into three or more pixel paths.
Number | Name | Date | Kind |
---|---|---|---|
4875173 | Nakajima | Oct 1989 | A |
4926166 | Fujisawa et al. | May 1990 | A |
4965745 | Economy et al. | Oct 1990 | A |
5125043 | Karlsson | Jun 1992 | A |
5150109 | Berry | Sep 1992 | A |
5172103 | Kita | Dec 1992 | A |
5187776 | Yanker | Feb 1993 | A |
5195174 | Kagawa | Mar 1993 | A |
5227771 | Kerr et al. | Jul 1993 | A |
5327156 | Masukane et al. | Jul 1994 | A |
5479184 | Tokumitsu | Dec 1995 | A |
5488385 | Singhal et al. | Jan 1996 | A |
5539426 | Nishikawa et al. | Jul 1996 | A |
5585821 | Ishikura et al. | Dec 1996 | A |
5596346 | Leone et al. | Jan 1997 | A |
5694141 | Chee | Dec 1997 | A |
5710570 | Wada et al. | Jan 1998 | A |
5748044 | Xue | May 1998 | A |
5764201 | Ranganathan | Jun 1998 | A |
5767834 | Vouri et al. | Jun 1998 | A |
5805132 | Imaizumi et al. | Sep 1998 | A |
5841418 | Bril et al. | Nov 1998 | A |
5874928 | Kou | Feb 1999 | A |
5880709 | Itai et al. | Mar 1999 | A |
5910795 | Whittaker | Jun 1999 | A |
5977933 | Wicher et al. | Nov 1999 | A |
6018340 | Butler et al. | Jan 2000 | A |
6020863 | Taylor | Feb 2000 | A |
6028585 | Ishii et al. | Feb 2000 | A |
6084565 | Kiya | Jul 2000 | A |
6177946 | Sinclair et al. | Jan 2001 | B1 |
6297817 | Larson et al. | Oct 2001 | B1 |