Video and graphics system with parallel processing of graphics windows
First Claim
1. A display engine comprising:
- an input for receiving data representing graphics from a memory, wherein the data representing graphics defines a plurality of graphics windows;
one or more processing elements capable of blending the plurality of graphics windows in parallel to generate blended graphics to be blended with video; and
a plurality of processing pipelines, each pipeline being capable of processing one of the plurality of graphics windows to place in a common format for blending in the processing elements.
6 Assignments
0 Petitions
Accused Products
Abstract
A display engine of a video and graphics system includes one or more processing elements and receives graphics from a memory. The graphics data define multiple graphics layers, and the processing elements process two or more graphics layers in parallel to generate blended graphics. Alpha values may be used while blending graphics. The processing elements may be integrated on an integrated circuit chip with an input for receiving the graphics data and other video and graphics components. The display engine may also include a graphics controller for receiving two or more graphics layers in parallel, for arranging the graphics layers in an order suitable for parallel processing, and for providing the arranged graphics layers to the processing elements. The blended graphics may be blended with HDTV video or SDTV video, which may be extracted from compressed data streams such as an MPEG Transport stream.
-
Citations
36 Claims
-
1. A display engine comprising:
-
an input for receiving data representing graphics from a memory, wherein the data representing graphics defines a plurality of graphics windows;
one or more processing elements capable of blending the plurality of graphics windows in parallel to generate blended graphics to be blended with video; and
a plurality of processing pipelines, each pipeline being capable of processing one of the plurality of graphics windows to place in a common format for blending in the processing elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
a graphics controller for receiving the plurality of graphics windows in parallel from the processing pipelines, for arranging the graphics windows in an order suitable for parallel processing, and for providing the arranged graphics windows to the one or more processing elements.
-
-
4. The display engine of claim 1, wherein each pipeline monitors whether its graphics window is in range for blending, and if it is not in the range, puts out a pixel equivalent to a transparent one so that it will have no effect on a net output when blended with graphics windows from other pipelines.
-
5. The display engine of claim 1, wherein each graphics window comprises a plurality of pixels, and the graphics windows are processed in the processing pipelines in parallel and in synchronization such that the graphics windows are aligned to each other pixel by pixel in the processing pipelines.
-
6. The display engine of claim 1, wherein if a particular processing pipeline is not ready, then all pipelines stall and wait for the particular pipeline to become ready again.
-
7. The display engine of claim 3, wherein the graphics controller synchronizes the processing pipelines and stalls the pipelines if necessary so that the graphics windows processed in the processing pipelines are aligned in order to be blended together in the processing elements.
-
8. The display engine of claim 3, wherein the graphics controller orders the graphics windows in accordance with a window depth order.
-
9. The display engine of claim 3, wherein each processing pipeline comprises a graphics converter for converting the format of one of the plurality of graphics windows to the common format, and for providing it to the graphics controller.
-
10. The display engine of claim 9 wherein each processing pipeline comprises a CLUT for converting the format of said one of the plurality of graphics windows from a CLUT format to the common format.
-
11. The display engine of claim 1 further comprising:
a graphics filter for receiving and spatially processing the blended graphics prior to compositing the blended graphics with the video.
-
12. The display engine of claim 11 wherein the spatial processing includes filtering.
-
13. The display engine of claim 11 wherein the spatial processing includes scaling.
-
14. The display engine of claim 1 wherein a plurality of alpha values are used to blend the plurality of graphics windows to generate the blended graphics.
-
15. The display engine of claim 14 wherein the plurality of alpha values include at least one alpha value per each of the plurality of graphics windows.
-
16. The display engine of claim 15 wherein the plurality of alpha values include at least one alpha value per each of the plurality of pixels.
-
17. The display engine of claim 14 wherein the plurality of alpha values are blended to generate at least one composite alpha value.
-
18. The display engine of claim 11 further comprising a plurality of line buffers, and wherein the blended graphics include a plurality of lines of pixels, and each of the plurality of lines of pixels is loaded into one of the plurality of line buffers to be provided to the graphics filter.
-
19. The display engine of claim 1 wherein the one or more processing elements include three graphics blenders, and wherein at least two graphics windows are blended together in each of first two of the graphics blenders in parallel, and outputs of the first two of the graphics blenders are provided to the last graphics blender for blending to generate the blended graphics.
-
20. A method of blending a plurality of graphics windows to generate blended graphics comprising the steps of:
-
receiving data representing graphics, the data representing graphics defining the plurality of graphics windows, wherein each graphics window comprises a plurality of pixels;
processing the graphics windows, each graphics window in one of processing pipelines, in parallel and in synchronization such that the graphics windows are aligned to each other pixel by pixel in the processing pipelines; and
blending two or more of the plurality of graphics windows in parallel to generate the blended graphics to be blended with video. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
arranging two or more graphics windows in an order suitable for parallel processing.
-
-
22. The method of blending a plurality of graphics windows of claim 21 further comprising the step of:
converting formats of the plurality of graphics windows to a common format.
-
23. The method of blending a plurality of graphics windows of claim 22 wherein the step of converting the format of the plurality of graphics windows to a common format comprises the step of converting the format of the plurality of graphics windows from one or more CLUT formats to the common format.
-
24. The method of blending a plurality of graphics windows of claim 20 further comprising the step of spatially processing the blended graphics.
-
25. The method of blending a plurality of graphics windows of claim 24 wherein the step of spatially processing the blended graphics comprises the step of filtering the blended graphics.
-
26. The method of blending a plurality of graphics windows of claim 24 wherein the step of spatially processing the blended graphics comprises the step of scaling the blended graphics.
-
27. The method of blending a plurality of graphics windows of claim 20 wherein the step of blending two or more of the plurality of graphics windows in parallel comprises the step of blending two or more of the plurality of graphics windows in parallel using a plurality of alpha values.
-
28. The method of blending a plurality of graphics windows of claim 27 wherein the plurality of alpha values include at least one alpha value per each of the plurality of graphics windows.
-
29. The method of blending a plurality of graphics windows of claim 28 wherein each of the plurality of graphics windows includes a plurality of pixels, and the plurality of alpha values include at least one alpha value per each of the plurality of pixels.
-
30. The method of blending a plurality of graphics windows of claim 28 further comprising the step of:
blending the plurality of alpha values to generate at least one composite alpha value.
-
31. A system comprising:
-
a transport processor for receiving a plurality of compressed data streams, at least one of the plurality of compressed data streams including video data;
a video decoder for decoding the video data to generate decoded video data;
a display engine for receiving a plurality of graphics windows and for blending them in parallel to generate blended graphics; and
a video compositor for blending the decoded video data with the blended graphics. - View Dependent Claims (32, 33, 34, 35, 36)
-
Specification