US20080001972A1 - Method and apparatus for independent video and graphics scaling in a video graphics system - Google Patents
Method and apparatus for independent video and graphics scaling in a video graphics system Download PDFInfo
- Publication number
- US20080001972A1 US20080001972A1 US11/855,676 US85567607A US2008001972A1 US 20080001972 A1 US20080001972 A1 US 20080001972A1 US 85567607 A US85567607 A US 85567607A US 2008001972 A1 US2008001972 A1 US 2008001972A1
- Authority
- US
- United States
- Prior art keywords
- graphics
- video
- stream
- scaled
- format
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000006837 decompression Effects 0.000 claims description 5
- 239000000203 mixture Substances 0.000 claims description 2
- 101100437784 Drosophila melanogaster bocks gene Proteins 0.000 claims 1
- 238000002156 mixing Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
- G09G5/397—Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0247—Flicker reduction other than flicker reduction circuits used for single beam cathode-ray tubes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/12—Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
- G09G2340/125—Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/04—Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
- G09G2370/042—Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller for monitor identification
Definitions
- the invention relates generally to video graphics processing and more particularly to a method and apparatus for independent video and graphics scaling in a video graphics system.
- Video information and rendered graphical images are being combined in an increasing number of applications. Examples include animated icons, on-screen menus, video windows in a graphical display, etc. Typically, in these applications the video information is generated separately from the graphical information and the two must be combined before being output to a display device.
- video information is received in a format with a non-square pixel raster suitable for an expected screen aspect ratio.
- the aspect ratio is determined based on the ratio between the width of the screen or display area and the height of the screen.
- graphics rendering systems typically format the graphics information based on a square pixel raster.
- the wasted memory bandwidth is especially problematic in video graphics systems that display real time video.
- the demands of the video portion of the display are very demanding upon the memory, and efficient utilization of the memory by the graphics portion of the display is crucial.
- the video information requires the entire display, but the graphics information merely requires a small amount of screen space.
- prior art scaling systems where the graphics scaling controls the amount of scaling allowed for the video display information, memory corresponding to the entire display would need to be allocated for graphics information. Considering only the small amount of memory is needed to store the limited amount of graphics information, the majority of the memory allocated for graphics information is wasted.
- FIG. 1 illustrates a block diagram of a video graphics circuit in accordance with the present invention
- FIG. 2 illustrates a block diagram of a video graphics display engine in accordance with the present invention
- FIG. 3 illustrates a block diagram of an alternate video graphics display engine in accordance with the present invention.
- FIG. 4 illustrates a flow chart of a method for displaying video graphics data in accordance with the present invention.
- the present invention provides a method and apparatus for independent video and graphics scaling in a video graphics system. This is accomplished by receiving a video data stream that includes video data in a first format. A graphics data stream is also received, and the graphics data stream includes graphics data in a second format. The video data of the video data stream is scaled based on a ratio between the first format and a selected video format to produce a scaled video stream. Similarly, the graphics data of the graphics data stream is scaled based on a ratio between the second format and a selected graphics format in order to produce a scaled graphics stream. The scaled video stream and the scaled graphics stream are then merged to produce a video graphics output stream. By scaling the video data stream separately from the graphics data stream prior to merging the two streams, independent scaling of the two streams is accomplished in a mixed video graphics display.
- the independent scaling of the two streams is important in the maintenance of proper aspect ratios when video data is received in a first format and graphics data is received in a second format while both must be scaled to match the desired format of the selected video format.
- video information is presented in a non-square pixel format. This first format is typically utilized in television-type displays.
- the graphics information is typically configured in a square pixel format, which is compatible with computer monitors and the like.
- An example of an application in which the dual scaling approach is beneficial is High Definition Television (HDTV) in which both square and non-square pixel formats are possible.
- HDMI High Definition Television
- Independent scaling of the video information and the graphical information allows memory to be allotted based on the needs of each type of display information. By separating the scaling operations between the video data path and the graphics data path, the two paths become more independent. Thus, when the video information requires a large amount of memory, such as in a television display that includes a small, animated graphics element in one corner, the graphical data need not be allocated as much memory. Independent scaling allows for more efficient use of the system memory, which in turn allows for faster processing of the video and graphics display information.
- the display aspect ratio in a video graphics system is determined based on the height and width of the screen and its resolution.
- HDTV may have a display that is 1920 ⁇ 1080 pixels.
- the image that is eventually displayed on such a screen may be composed of both video information and graphical information.
- the video information may have an initial aspect ratio of 720 ⁇ 480.
- the graphical information which may have an initial aspect ratio corresponding to a computer monitor may have dimensions of 640 ⁇ 480.
- the video information In order to be accurately displayed on the HDTV screen, the video information must be scaled to suit the aspect ratio of the output screen. The same requirement applies to the graphical information. By allowing these two types of information to be scaled independently in this type of a system, maximum flexibility can be provided in terms of data storage and scaling.
- FIG. 1 illustrates a video graphics integrated circuit that includes a frame buffer 10 , a video scaler 20 , a graphics scaler 30 , and a merging block 40 .
- the frame buffer 10 stores video data and graphics data.
- the video data stored in the frame buffer 10 may be video data corresponding to an MPEG data stream that is received and decoded by video engine 16
- the graphics data may be the product of graphics engine 18 .
- Video data can include a variety of video data formats that are recognized in the industry, including YUV, RGB, YCrCb, YPrPb, and the like.
- this data format is converted to a different format for display, and in such cases, the color conversion can take place at various points in the system.
- color conversion can include the operations of gamma correction and color adjustment.
- the video data and the graphics data may be received by the video graphics system in a unitary stream which is then divided between the received video data and the received graphics data, both of which are stored in the frame buffer 10 .
- a stream of video and graphics data may be transmitted for display on a device such as a HDTV set.
- the video data may include video images typically associated with a television display, and the graphics data might include menu information or a spinning logo to be displayed in a small portion of the screen.
- the video scaler 20 is operably coupled to the frame buffer 10 and receives video data 12 which the video scaler 20 scales to produce a scaled video data stream 22 .
- the scaling performed by the video scaler 20 is based on a ratio between the eventual display aspect ratio and the aspect ratio of the images in the video data stream 12 .
- the graphics scaler 30 receives graphics data 14 from the frame buffer 10 and scales the graphics data 14 to produce scaled graphics data stream 32 .
- the graphics scaler 30 scales the graphics data 14 based on the aspect ratio of the graphics portion of the display, and the aspect ratio of the graphics data in its current form.
- the merging block 40 receives the scaled video data stream 22 and the scaled graphics data stream 32 and merges the two data streams to form video graphics output stream 42 .
- the video graphics output stream 42 combines the scaled versions of both the video stream and the graphics stream in order to produce the output, which may be eventually provided to a monitor or television set for display.
- the circuit illustrated in FIG. 1 provides more flexibility than prior art solutions that included only one scaler.
- FIG. 2 illustrates a video graphics display engine that includes a controller 140 , a video scaler 160 , a graphics scaler 170 , and a merging block 180 .
- the video graphics display engine further includes a first memory block 112 and a second memory block 114 .
- Each of the memory blocks stores video and/or graphics data for display.
- the first memory block 112 and the second memory block 114 are portions of a frame buffer 110 included in the video graphics system.
- the video graphics display engine illustrated in FIG. 2 is preferably implemented on a single integrated circuit that may contain additional circuitry. In one embodiment, such a system receives a video graphics signal which contains both video data and graphical data, and the system separates the video data from the graphics data and stores each in its respective portion of the frame buffer 110 .
- the video information is video information that may be received in a compressed MPEG format.
- the graphics data stored in the frame buffer 110 is generated by a graphics engine 115 , which may perform graphics rendering operations based on input from an external processor.
- the video data in the memory may be generated by video engine 113 , which may receive and decode a video data stream and generate video images that are then stored as video data in the frame buffer 1 10 .
- the video scaler 160 is adapted to receive video data stream 122 , which is preferably retrieved from the first memory block 112 . If the video data stream 122 is stored in the first memory block 112 as a compressed video stream 116 , a video decompression block 120 may be employed in the system to decompress the compressed video stream 116 .
- the video scaler 160 scales video images in the video data stream 122 based on a ratio between the video images which are presented in a first format in the video data stream 122 and an output video image format.
- the result of the scaling of the video data stream 122 is a scaled video stream 164 .
- the video scaler 160 may be at least partially controlled by control signals 150 received from the controller 140 .
- the control signals 150 provide details about the display, including synchronization signals and formatting parameters.
- the graphics scaler scales graphical images, or data, in the graphics data stream 132 based on the ratio between the graphics images received in the graphics data stream 132 and the desired output graphics image.
- the graphics data stream 132 is retrieved from the second memory block 114 . If the data is stored in the second memory block 114 in a compressed format, the graphics decompression block 130 is used to convert the compressed graphics stream 118 to the graphics data stream 132 .
- the aspect ratio of the images in the graphics data stream 132 may not match the aspect ratio of the eventual display. In such a case, the graphics scaler must adjust this aspect ratio in order to suit the requirements of the eventual display.
- One example is converting square pixels to a non-square pixel format.
- the scaling of the graphics data stream 132 is independent of the scaling of the video data stream 122 .
- the aspect ratio of the images in the video data stream 122 may be completely different from the aspect ratios of the images in the graphics data stream 132 , and the video scaler 160 and the graphics scaler 170 can independently adjust the aspect ratios to suit the requirements of the display.
- the graphics scaler 170 scales the graphics data stream 132 to produce scaled graphics stream 174 based on control information 148 received from the controller 140 .
- the control information 148 received from the controller 140 provides the graphics scaler 170 with the information it requires in order to perform the scaling function. This information can include synchronization signals, display characteristics, or information that will eventually aid in merging the video and graphics streams.
- the controller 140 provides synchronization information to both the video scaler 160 and the graphics scaler 170 .
- the controller 140 receives boundary information regarding the display and provides control signals to the scaler blocks in order to allow the scalers to correctly scale the image data.
- the controller 140 includes a graphics controller 142 and a video controller 144 that are synchronized with a synchronization signal 146 .
- the graphics controller 142 issues the control information 148 required by the graphics scaler 170 .
- the video controller 144 produces the control information 150 for the video scaler 160 . If the video information and the graphics information are eventually to be combined, synchronization of the graphics controller 142 and the video controller 144 is important. If the video information and the graphics information are not to be combined, synchronization is not required to produce the discrete video display and graphics display signals 168 and 178 .
- the merging block 180 is operably coupled to the video scaler 160 and the graphics scaler 170 .
- the merging block 180 combines the scaled video stream 164 with scaled graphics stream 174 to produce a video graphics output stream 182 .
- the merging performed by the merging block 180 is based on merging control information 152 received from the controller 140 .
- the merging control information 152 may include synchronization signals, boundary information, blending ratios, or other information that affects the merging performed by the merging block 180 .
- the merging block 180 may perform an alpha blending of the scaled video stream 164 and the scaled graphics stream 174 . This may be accomplished via the alpha blend block 190 .
- Alpha blending produces translucent or transparent effects in the combination of the video images and the graphics images. For example, a graphical logo displayed on the screen may be partially or fully translucent to allow the video images at the same location to be seen “behind” the translucent graphical logo. The video images are blended with the logo to produce the visual effect of translucence.
- the merging block 180 may also include a pixel rate adjusting block 192 .
- the pixel rate adjusting block 192 can alter the pixel rate of the video graphics output stream 182 such that more efficient scaling of the images of the video data stream 122 or the graphics data stream 132 is possible. For example, if the horizontal portion of the aspect ratio of the output display is close to a multiple of the horizontal portion of the aspect ratio of the input data stream 122 , the video pixel rate of the video graphics output stream 122 may be altered to change the horizontal dimension of the output display. If the dimension is altered to form the multiple of the horizontal portion of the aspect ratio of the video data stream 122 , the ratio between the output stream and the input stream may become a simple number. Because scaling can require many mathematical operations, the video scaler can perform scaling much more efficiently with such a simple ratio than with a complex ratio that would require much more processing power.
- the system may be equipped with display drivers 166 and/or 176 .
- the display driver 166 receives the scaled video stream 164 from the video scaler 160 and produces a video display signal 168 for display.
- the display driver 176 receives the scaled graphics stream 174 and produces graphics display signal 178 .
- the display drivers 166 and 176 may be capable of providing an analog output, a digital output, or both.
- the display engine of FIG. 2 may further include a video flicker removal block 162 and/or a graphics flicker removal block 172 .
- Flicker removal attenuates vertical spatial frequencies that appear to flicker when the image is displayed on an interlaced television or monitor. For example, a pattern of alternating white and black lines will flicker if all of the white lines are displayed on even fields and all of the black lines on odd fields. Flicker removal will gray out this pattern to produce a more uniform intensity in both of the fields. Flicker removal may be accomplished by performing a weighted average of the pixels surrounding a target pixel to determine the resulting value for the target pixel.
- the weighted average typically only uses surrounding pixels that are vertically aligned on the display with the target pixel. This phenomenon is normally only encountered with graphics displays and therefore it is more likely that the graphics flicker removal block 172 would be included in the system. However, video flicker removal may become an issue for certain applications and in such cases the video flicker removal block 162 would be desirable.
- the video flicker removal block 162 is coupled to the video scaler 160 and the video flicker removal may occur during the scaling process.
- the graphics flicker removal block 172 is coupled to the graphics scaler 170 and the graphics flicker removal may occur during the scaling of the graphics data. In other embodiments, the flicker removal circuitry may be fully integrated into the scaling circuitry of the scaling blocks.
- the system illustrated in FIG. 2 may be expanded to include a plurality of video scalers and/or graphics scalers.
- the appropriate number of video scalers and graphic scalers may be included in the system in order to accommodate the multiple data streams.
- control circuitry receives boundary information regarding the display and provides control signals to the scaler blocks in order to allow the scalers to correctly scale the data streams.
- Each of the scalers 310 - 315 receives control information from one of a plurality of control blocks, or controllers, 320 - 322 .
- One controller may control all of the scalers for a single display or multiple, synchronized controllers may be used to control each of the scaling blocks that feeds a particular display.
- a plurality of merging blocks 350 - 352 receive the scaled data streams from the plurality of scalers 310 - 315 and merge the scaled data to produce the plurality of display signals 360 - 362 .
- the merging performed by the merging blocks 350 - 352 may be based on additional control information received from the control blocks 320 - 322 .
- the merging blocks may also perform alpha blending or pixel rate adjusting.
- the display signals 360 - 362 may be analog, digital, or configurable such that either an analog or a digital system can be driven by a particular output signal.
- the system illustrated in FIG. 3 may be designed to be both flexible and reconfigurable such that as the display needs change, couplings within the system can be altered to provide the required data paths for video and graphics information.
- multiple scaling engines By allowing multiple scaling engines to independently scale multiple data streams, many different display formats can be accommodated with minimal waste of memory resources. It should be apparent to one skilled in the art that once the dependence of multiple data streams on a single scaling engine is removed, many different combinations of the independent scaling engines is possible. For example, multiple scaling engines may be cascaded in series to achieve a number of differently scaled intermediate streams and a final data stream, all of which could be merged with other data streams in separate or common merging blocks.
- the circuit illustrated in FIG. 3 is implemented as an integrated circuit that includes the plurality of scalers 310 - 315 , the plurality of controllers 320 - 322 , and the plurality of merging blocks 350 - 352 .
- the memory blocks 300 - 303 utilized by such an integrated circuit may all be located external to the integrated circuit. However, in other embodiments, one or more of the memory blocks 300 - 303 may be included in the integrated circuit. It should be apparent to one of ordinary skill in the art that tradeoffs exist between die area of the integrated circuit, which will increase by including the memory in the integrated circuit, and speed of memory accesses from the memory blocks, which will increase by including the memory in the integrated circuit.
- FIG. 4 illustrates a flow chart of a method for displaying video graphics data.
- a video data stream is received that includes video data in a first format.
- the first format corresponds to the aspect ratio of the video images.
- the video data stream may be from a frame buffer or it may be provided by a different source. If the video data stream is received in a compressed format, at step 202 , the compressed video data stream is decompressed.
- a graphics data stream is received.
- the graphics data stream may be fetched from a frame buffer or another memory in a video graphics circuit.
- the graphics data stream includes graphics data in a second format, which preferably corresponds to the aspect ratio of the graphics images in the stream.
- the second format may include alpha information for the graphics images, where the alpha information is scaled along with the other portions of the graphics images. If the graphics data stream is received in a compressed format it is decompressed at step 206 in order to produce a graphics data stream in an uncompressed format.
- the video data stream is scaled to produce a scaled video stream.
- the scaling performed at step 208 is based on the ratio between the first format and a selected video format.
- the first format may be the aspect ratio of the images in the video data stream.
- the selected video format may be the aspect ratio of the display used in conjunction with the method.
- the scaling may also be based on video data control information that may include synchronization information, boundary information, and other relevant scaling information.
- the scaling performed at step 208 may further include step 210 which removes flicker from the video data stream.
- the graphics data is scaled based on a ratio between the second format and the selected graphics format in order to produce a scaled graphics stream.
- the scaling of the graphics data may be based upon the aspect ratio of the images within the graphics stream compared with the aspect ratio of the display.
- the scaling may also be based on graphics data control information that may include synchronization, boundary information, and other relevant scaling information.
- Step 212 may include the removal of the flicker from the scaled graphics stream, which is accomplished in step 214 . It should be noted that the receipt and scaling of the video data and the graphics data may be performed in parallel, and the sequential ordering of the steps in the Figure should not be viewed as a limitation.
- the video graphics output stream is converted to the display compatible format. This may include converting the digital stream into an analog signal for display on a television set or formatting the digital data to a preferred format for a digital display device.
- the method of FIG. 4 allows the video information and graphics information for display to be scaled independently of each other. This allows memory in a frame buffer of a video graphics integrated circuit to be allocated in a flexible and efficient manner such that large blocks of memory are not left idle or wasted. Reducing the amount of memory required for either the video or the graphics portion of the display also relieves some of the bandwidth burden on the frame buffer. If fewer memory locations are used, fewer data reads and writes will be required to maintain these locations, which results in additional available memory bandwidth.
- the efficient use of memory and the reduced bandwidth usage allows the system to display images in a more efficient and faster manner.
- the method also allows for maximum flexibility in terms of display windows for video, graphics, or a combination of the two.
Abstract
A method and apparatus for independent video and graphics scaling in a video graphics system is accomplished by receiving a video data stream, wherein the video data stream includes video data in a first format. A graphics data stream is also received, and the graphics data stream includes graphics data in a second format. The video data of the video data stream is scaled based on a ratio between the first format and a selected video format to produce a scaled video stream. Similarly, the graphics data of the graphics data stream is scaled based on a ratio between the second format and a selected graphics format in order to produce a scaled graphics stream. The scaled video stream and the scaled graphics stream are then merged to produce a video graphics output stream.
Description
- This application is a continuation of co-pending U.S. application Ser. No. 09/213,748, filed Dec. 17, 1998, entitled “METHOD AND APPARATUS FOR INDEPENDENT VIDEO AND GRAPHICS SCALING IN A VIDEO GRAPHICS SYSTEM”, having as inventors Edward G. Callway et al., owned by instant assignee and incorporated in its entirety herein by reference.
- The invention relates generally to video graphics processing and more particularly to a method and apparatus for independent video and graphics scaling in a video graphics system.
- Video information and rendered graphical images are being combined in an increasing number of applications. Examples include animated icons, on-screen menus, video windows in a graphical display, etc. Typically, in these applications the video information is generated separately from the graphical information and the two must be combined before being output to a display device.
- In many cases, video information is received in a format with a non-square pixel raster suitable for an expected screen aspect ratio. The aspect ratio is determined based on the ratio between the width of the screen or display area and the height of the screen. In contrast to the video information, graphics rendering systems typically format the graphics information based on a square pixel raster.
- In prior art systems that combined separately generated video and graphics display information, the scaling of the video information to match the aspect ratio of the display was based upon the scaling of the graphics information, and the limitations of the graphics scaling controlled the limitations of the video scaling. This technique was suitable for computer graphics displays in which a small window was allotted to video display. In other systems, such as televisions that used closed captioning, graphics scaling systems were not present, and graphics data was rendered to non-square pixel graphics. In this case, the graphics information was limited by the video raster limitations.
- Systems in which the video scaling is a subset of the graphics scaling require large amounts of memory to contain both the video information and the graphical information. This is problematic and wasteful in video systems that display or process only a small amount of graphics data. For example, if the video display information uses the entire display screen while the graphics display information requires only a small portion of the display, the amount of memory allotted to the graphics information will need to encompass the entire frame in order to allow the video information to use the entire frame.
- Allocating large amounts of memory in the video graphics circuit to graphics information when a smaller amount of memory is adequate wastes both memory storage space and memory bandwidth. The wasted memory bandwidth is especially problematic in video graphics systems that display real time video. In such systems, the demands of the video portion of the display are very demanding upon the memory, and efficient utilization of the memory by the graphics portion of the display is crucial. For example, in the case where an animated icon is superimposed on a video display, the video information requires the entire display, but the graphics information merely requires a small amount of screen space. In prior art scaling systems where the graphics scaling controls the amount of scaling allowed for the video display information, memory corresponding to the entire display would need to be allocated for graphics information. Considering only the small amount of memory is needed to store the limited amount of graphics information, the majority of the memory allocated for graphics information is wasted.
- Therefore, a need exists for a video graphics system that allows video information and graphical information to be scaled independently.
-
FIG. 1 illustrates a block diagram of a video graphics circuit in accordance with the present invention; -
FIG. 2 illustrates a block diagram of a video graphics display engine in accordance with the present invention; -
FIG. 3 illustrates a block diagram of an alternate video graphics display engine in accordance with the present invention; and -
FIG. 4 illustrates a flow chart of a method for displaying video graphics data in accordance with the present invention. - Generally, the present invention provides a method and apparatus for independent video and graphics scaling in a video graphics system. This is accomplished by receiving a video data stream that includes video data in a first format. A graphics data stream is also received, and the graphics data stream includes graphics data in a second format. The video data of the video data stream is scaled based on a ratio between the first format and a selected video format to produce a scaled video stream. Similarly, the graphics data of the graphics data stream is scaled based on a ratio between the second format and a selected graphics format in order to produce a scaled graphics stream. The scaled video stream and the scaled graphics stream are then merged to produce a video graphics output stream. By scaling the video data stream separately from the graphics data stream prior to merging the two streams, independent scaling of the two streams is accomplished in a mixed video graphics display.
- The independent scaling of the two streams is important in the maintenance of proper aspect ratios when video data is received in a first format and graphics data is received in a second format while both must be scaled to match the desired format of the selected video format. In many systems, video information is presented in a non-square pixel format. This first format is typically utilized in television-type displays. In graphics systems, the graphics information is typically configured in a square pixel format, which is compatible with computer monitors and the like. An example of an application in which the dual scaling approach is beneficial is High Definition Television (HDTV) in which both square and non-square pixel formats are possible. Separate scaling of the video and graphics information allows both streams to be scaled to suit the type of display format that is selected.
- Independent scaling of the video information and the graphical information allows memory to be allotted based on the needs of each type of display information. By separating the scaling operations between the video data path and the graphics data path, the two paths become more independent. Thus, when the video information requires a large amount of memory, such as in a television display that includes a small, animated graphics element in one corner, the graphical data need not be allocated as much memory. Independent scaling allows for more efficient use of the system memory, which in turn allows for faster processing of the video and graphics display information.
- The display aspect ratio in a video graphics system is determined based on the height and width of the screen and its resolution. For example, HDTV may have a display that is 1920×1080 pixels. The image that is eventually displayed on such a screen may be composed of both video information and graphical information. When received, the video information may have an initial aspect ratio of 720×480. Similarly, the graphical information which may have an initial aspect ratio corresponding to a computer monitor may have dimensions of 640×480. In order to be accurately displayed on the HDTV screen, the video information must be scaled to suit the aspect ratio of the output screen. The same requirement applies to the graphical information. By allowing these two types of information to be scaled independently in this type of a system, maximum flexibility can be provided in terms of data storage and scaling.
- The invention can be better understood with reference to
FIGS. 1-4 .FIG. 1 illustrates a video graphics integrated circuit that includes aframe buffer 10, avideo scaler 20, agraphics scaler 30, and a mergingblock 40. Theframe buffer 10 stores video data and graphics data. The video data stored in theframe buffer 10 may be video data corresponding to an MPEG data stream that is received and decoded byvideo engine 16, and the graphics data may be the product ofgraphics engine 18. Video data can include a variety of video data formats that are recognized in the industry, including YUV, RGB, YCrCb, YPrPb, and the like. In some cases this data format is converted to a different format for display, and in such cases, the color conversion can take place at various points in the system. Throughout this specification, it is understood that the positioning of the specific circuitry that performs the color conversion is not crucial to the general teachings provided herein. It is also understood that color conversion can include the operations of gamma correction and color adjustment. - In another embodiment, the video data and the graphics data may be received by the video graphics system in a unitary stream which is then divided between the received video data and the received graphics data, both of which are stored in the
frame buffer 10. Such a stream of video and graphics data may be transmitted for display on a device such as a HDTV set. The video data may include video images typically associated with a television display, and the graphics data might include menu information or a spinning logo to be displayed in a small portion of the screen. - The
video scaler 20 is operably coupled to theframe buffer 10 and receivesvideo data 12 which thevideo scaler 20 scales to produce a scaled video data stream 22. The scaling performed by thevideo scaler 20 is based on a ratio between the eventual display aspect ratio and the aspect ratio of the images in thevideo data stream 12. Similarly, thegraphics scaler 30 receivesgraphics data 14 from theframe buffer 10 and scales thegraphics data 14 to produce scaledgraphics data stream 32. The graphics scaler 30 scales thegraphics data 14 based on the aspect ratio of the graphics portion of the display, and the aspect ratio of the graphics data in its current form. - The merging
block 40 receives the scaled video data stream 22 and the scaledgraphics data stream 32 and merges the two data streams to form videographics output stream 42. The videographics output stream 42 combines the scaled versions of both the video stream and the graphics stream in order to produce the output, which may be eventually provided to a monitor or television set for display. By allowing the video data and the graphics to be scaled independently and later combined to produce a final output stream, the circuit illustrated inFIG. 1 provides more flexibility than prior art solutions that included only one scaler.FIG. 2 illustrates a video graphics display engine that includes acontroller 140, avideo scaler 160, agraphics scaler 170, and a mergingblock 180. Preferably, the video graphics display engine further includes afirst memory block 112 and asecond memory block 114. Each of the memory blocks stores video and/or graphics data for display. More preferably, thefirst memory block 112 and thesecond memory block 114 are portions of aframe buffer 110 included in the video graphics system. The video graphics display engine illustrated inFIG. 2 is preferably implemented on a single integrated circuit that may contain additional circuitry. In one embodiment, such a system receives a video graphics signal which contains both video data and graphical data, and the system separates the video data from the graphics data and stores each in its respective portion of theframe buffer 110. Preferably, the video information is video information that may be received in a compressed MPEG format. - In another embodiment, the graphics data stored in the
frame buffer 110 is generated by agraphics engine 115, which may perform graphics rendering operations based on input from an external processor. Similarly, the video data in the memory may be generated byvideo engine 113, which may receive and decode a video data stream and generate video images that are then stored as video data in the frame buffer 1 10. - The
video scaler 160 is adapted to receivevideo data stream 122, which is preferably retrieved from thefirst memory block 112. If thevideo data stream 122 is stored in thefirst memory block 112 as acompressed video stream 116, avideo decompression block 120 may be employed in the system to decompress thecompressed video stream 116. - The
video scaler 160 scales video images in thevideo data stream 122 based on a ratio between the video images which are presented in a first format in thevideo data stream 122 and an output video image format. The result of the scaling of thevideo data stream 122 is a scaledvideo stream 164. When scaling thevideo data stream 122, thevideo scaler 160 may be at least partially controlled bycontrol signals 150 received from thecontroller 140. Preferably, the control signals 150 provide details about the display, including synchronization signals and formatting parameters. - The graphics scaler scales graphical images, or data, in the
graphics data stream 132 based on the ratio between the graphics images received in thegraphics data stream 132 and the desired output graphics image. Preferably, thegraphics data stream 132 is retrieved from thesecond memory block 114. If the data is stored in thesecond memory block 114 in a compressed format, thegraphics decompression block 130 is used to convert the compressed graphics stream 118 to thegraphics data stream 132. - The aspect ratio of the images in the
graphics data stream 132 may not match the aspect ratio of the eventual display. In such a case, the graphics scaler must adjust this aspect ratio in order to suit the requirements of the eventual display. One example is converting square pixels to a non-square pixel format. Note that the scaling of thegraphics data stream 132 is independent of the scaling of thevideo data stream 122. The aspect ratio of the images in thevideo data stream 122 may be completely different from the aspect ratios of the images in thegraphics data stream 132, and thevideo scaler 160 and the graphics scaler 170 can independently adjust the aspect ratios to suit the requirements of the display. - Preferably, the graphics scaler 170 scales the
graphics data stream 132 to produce scaled graphics stream 174 based oncontrol information 148 received from thecontroller 140. Thecontrol information 148 received from thecontroller 140 provides the graphics scaler 170 with the information it requires in order to perform the scaling function. This information can include synchronization signals, display characteristics, or information that will eventually aid in merging the video and graphics streams. - In one embodiment, the
controller 140 provides synchronization information to both thevideo scaler 160 and thegraphics scaler 170. Preferably, thecontroller 140 receives boundary information regarding the display and provides control signals to the scaler blocks in order to allow the scalers to correctly scale the image data. In another embodiment, thecontroller 140 includes agraphics controller 142 and avideo controller 144 that are synchronized with asynchronization signal 146. In such an embodiment, thegraphics controller 142 issues thecontrol information 148 required by thegraphics scaler 170. Similarly, thevideo controller 144 produces thecontrol information 150 for thevideo scaler 160. If the video information and the graphics information are eventually to be combined, synchronization of thegraphics controller 142 and thevideo controller 144 is important. If the video information and the graphics information are not to be combined, synchronization is not required to produce the discrete video display and graphics displaysignals 168 and 178. - The merging
block 180 is operably coupled to thevideo scaler 160 and thegraphics scaler 170. The mergingblock 180 combines the scaledvideo stream 164 with scaled graphics stream 174 to produce a videographics output stream 182. Preferably, the merging performed by the mergingblock 180 is based on mergingcontrol information 152 received from thecontroller 140. The mergingcontrol information 152 may include synchronization signals, boundary information, blending ratios, or other information that affects the merging performed by the mergingblock 180. - The merging
block 180 may perform an alpha blending of the scaledvideo stream 164 and the scaledgraphics stream 174. This may be accomplished via thealpha blend block 190. Alpha blending produces translucent or transparent effects in the combination of the video images and the graphics images. For example, a graphical logo displayed on the screen may be partially or fully translucent to allow the video images at the same location to be seen “behind” the translucent graphical logo. The video images are blended with the logo to produce the visual effect of translucence. - The merging
block 180 may also include a pixel rate adjusting block 192. The pixel rate adjusting block 192 can alter the pixel rate of the videographics output stream 182 such that more efficient scaling of the images of thevideo data stream 122 or thegraphics data stream 132 is possible. For example, if the horizontal portion of the aspect ratio of the output display is close to a multiple of the horizontal portion of the aspect ratio of theinput data stream 122, the video pixel rate of the videographics output stream 122 may be altered to change the horizontal dimension of the output display. If the dimension is altered to form the multiple of the horizontal portion of the aspect ratio of thevideo data stream 122, the ratio between the output stream and the input stream may become a simple number. Because scaling can require many mathematical operations, the video scaler can perform scaling much more efficiently with such a simple ratio than with a complex ratio that would require much more processing power. - The display engine illustrated in
FIG. 2 may also include a digital-to-analog converter (DAC) 184 which converts the videographics output stream 182, which is in a digital format, to ananalog display signal 186. Typically, television sets require an analog display signal. However, in other embodiments displaydriver 188 may be included in the system to provide a suitable output signal for digital display devices. Thedisplay driver 188 is adapted to receive the digital videographics output stream 182 and present in it for display on a digital device via thedigital display signal 189. - In other embodiments there may be a need to display the video information alone or the graphics information alone. In such instances, the system may be equipped with
display drivers 166 and/or 176. Thedisplay driver 166 receives the scaledvideo stream 164 from thevideo scaler 160 and produces a video display signal 168 for display. Similarly, thedisplay driver 176 receives the scaled graphics stream 174 and producesgraphics display signal 178. Thedisplay drivers - In video graphics applications, removal of flicker can be important to maintaining a clean, continuous display image. In order to accomplish this, the display engine of
FIG. 2 may further include a videoflicker removal block 162 and/or a graphicsflicker removal block 172. Flicker removal attenuates vertical spatial frequencies that appear to flicker when the image is displayed on an interlaced television or monitor. For example, a pattern of alternating white and black lines will flicker if all of the white lines are displayed on even fields and all of the black lines on odd fields. Flicker removal will gray out this pattern to produce a more uniform intensity in both of the fields. Flicker removal may be accomplished by performing a weighted average of the pixels surrounding a target pixel to determine the resulting value for the target pixel. The weighted average typically only uses surrounding pixels that are vertically aligned on the display with the target pixel. This phenomenon is normally only encountered with graphics displays and therefore it is more likely that the graphicsflicker removal block 172 would be included in the system. However, video flicker removal may become an issue for certain applications and in such cases the videoflicker removal block 162 would be desirable. The videoflicker removal block 162 is coupled to thevideo scaler 160 and the video flicker removal may occur during the scaling process. Similarly, the graphicsflicker removal block 172 is coupled to thegraphics scaler 170 and the graphics flicker removal may occur during the scaling of the graphics data. In other embodiments, the flicker removal circuitry may be fully integrated into the scaling circuitry of the scaling blocks. - Note that the system illustrated in
FIG. 2 may be expanded to include a plurality of video scalers and/or graphics scalers. In such a system there may be multiple sources of video data or multiple sources of graphics data that need to be scaled for output to a common display. In such cases, the appropriate number of video scalers and graphic scalers may be included in the system in order to accommodate the multiple data streams. - In other systems, there may be multiple displays that are driven by the same video data and graphics data. In such system, the needs of the displays may vary, and in such cases multiple video and/or graphics scalers may be employed to scale the same video and graphics data streams to suit the needs of each of the individual displays. Note that in such systems the appropriate control circuitry will also need to be implemented. As described earlier, the control circuitry receives boundary information regarding the display and provides control signals to the scaler blocks in order to allow the scalers to correctly scale the data streams.
-
FIG. 3 illustrates a potential multi-scaler system that includes a plurality of memory blocks 300-303 that store video data, graphics data or both video and graphics data. A plurality of scalers 310-315 are coupled to the memory block 300-303. The plurality of scalers may include specific video scalers or graphics scalers, or the scalers may be general purpose scalers that can scale either type of data. As is illustrated, multiple scalers can be coupled to a single memory, thus allowing video and graphics data to be shared between multiple scalers. Data decompression and flicker removal blocks as illustrated inFIG. 2 may be included in the system ofFIG. 3 if required. - Each of the scalers 310-315 receives control information from one of a plurality of control blocks, or controllers, 320-322. One controller may control all of the scalers for a single display or multiple, synchronized controllers may be used to control each of the scaling blocks that feeds a particular display. A plurality of merging blocks 350-352 receive the scaled data streams from the plurality of scalers 310-315 and merge the scaled data to produce the plurality of display signals 360-362. The merging performed by the merging blocks 350-352 may be based on additional control information received from the control blocks 320-322. As in
FIG. 2 , the merging blocks may also perform alpha blending or pixel rate adjusting. The display signals 360-362 may be analog, digital, or configurable such that either an analog or a digital system can be driven by a particular output signal. - Multiple merging blocks may share a single scaled data stream. This is illustrated in
FIG. 3 where mergingblocks scaler 312. In such an instance, the control blocks 320 and 321 are preferably synchronized bysynch signal 325. This ensures that the scaling operations directed by the control blocks are compatible and will be performed at the proper rate with respect to each of the displays. - Note that the system illustrated in
FIG. 3 may be designed to be both flexible and reconfigurable such that as the display needs change, couplings within the system can be altered to provide the required data paths for video and graphics information. By allowing multiple scaling engines to independently scale multiple data streams, many different display formats can be accommodated with minimal waste of memory resources. It should be apparent to one skilled in the art that once the dependence of multiple data streams on a single scaling engine is removed, many different combinations of the independent scaling engines is possible. For example, multiple scaling engines may be cascaded in series to achieve a number of differently scaled intermediate streams and a final data stream, all of which could be merged with other data streams in separate or common merging blocks. - Preferably, the circuit illustrated in
FIG. 3 is implemented as an integrated circuit that includes the plurality of scalers 310-315, the plurality of controllers 320-322, and the plurality of merging blocks 350-352. The memory blocks 300-303 utilized by such an integrated circuit may all be located external to the integrated circuit. However, in other embodiments, one or more of the memory blocks 300-303 may be included in the integrated circuit. It should be apparent to one of ordinary skill in the art that tradeoffs exist between die area of the integrated circuit, which will increase by including the memory in the integrated circuit, and speed of memory accesses from the memory blocks, which will increase by including the memory in the integrated circuit. Including the memory in the integrated circuit will also reduce the number of component parts required to implement the system shown inFIG. 3 . These tradeoffs will likely be taken into account in designing the circuit for various applications, and it should be understood that the invention described herein encompasses all such variations. -
FIG. 4 illustrates a flow chart of a method for displaying video graphics data. Atstep 200, a video data stream is received that includes video data in a first format. Preferably, the first format corresponds to the aspect ratio of the video images. The video data stream may be from a frame buffer or it may be provided by a different source. If the video data stream is received in a compressed format, atstep 202, the compressed video data stream is decompressed. - At
step 204, a graphics data stream is received. As with the video data stream, the graphics data stream may be fetched from a frame buffer or another memory in a video graphics circuit. The graphics data stream includes graphics data in a second format, which preferably corresponds to the aspect ratio of the graphics images in the stream. The second format may include alpha information for the graphics images, where the alpha information is scaled along with the other portions of the graphics images. If the graphics data stream is received in a compressed format it is decompressed atstep 206 in order to produce a graphics data stream in an uncompressed format. - At
step 208, the video data stream is scaled to produce a scaled video stream. The scaling performed atstep 208 is based on the ratio between the first format and a selected video format. As stated earlier, the first format may be the aspect ratio of the images in the video data stream. The selected video format may be the aspect ratio of the display used in conjunction with the method. The scaling may also be based on video data control information that may include synchronization information, boundary information, and other relevant scaling information. The scaling performed atstep 208 may further includestep 210 which removes flicker from the video data stream. Atstep 212, the graphics data is scaled based on a ratio between the second format and the selected graphics format in order to produce a scaled graphics stream. As with the video data, the scaling of the graphics data may be based upon the aspect ratio of the images within the graphics stream compared with the aspect ratio of the display. The scaling may also be based on graphics data control information that may include synchronization, boundary information, and other relevant scaling information. Step 212 may include the removal of the flicker from the scaled graphics stream, which is accomplished instep 214. It should be noted that the receipt and scaling of the video data and the graphics data may be performed in parallel, and the sequential ordering of the steps in the Figure should not be viewed as a limitation. - At
step 216, the scaled video stream and the scaled graphics stream are merged to produce a video graphics output stream. This output stream is typically in a digital format and may be suitable for direct display on devices that accept a digital stream. The merging performed atstep 216 may include an alpha blending operation that provides translucent effects. In other words, the graphics information may have a varying level of opaqueness, thus allowing a viewer to see video information through the graphics data or vice-versa. - At
step 218, the video graphics output stream is converted to the display compatible format. This may include converting the digital stream into an analog signal for display on a television set or formatting the digital data to a preferred format for a digital display device. - As was described with respect to
FIGS. 2 and 3 , the method ofFIG. 4 may be utilized in a system that includes a plurality of display devices. In such a case, the video data or graphics data may be scaled based on a plurality of selected video formats in order to produce a plurality of scaled video streams and/or scaled graphics streams. Each scaling step in such a system would be performed independently of the other scaling operations. Preferably, the scaling factors in each of the scaling operations is based on the ratio between the selected video format and the format of the video or graphics data which is being scaled. - The method of
FIG. 4 allows the video information and graphics information for display to be scaled independently of each other. This allows memory in a frame buffer of a video graphics integrated circuit to be allocated in a flexible and efficient manner such that large blocks of memory are not left idle or wasted. Reducing the amount of memory required for either the video or the graphics portion of the display also relieves some of the bandwidth burden on the frame buffer. If fewer memory locations are used, fewer data reads and writes will be required to maintain these locations, which results in additional available memory bandwidth. - Thus, the efficient use of memory and the reduced bandwidth usage allows the system to display images in a more efficient and faster manner. The method also allows for maximum flexibility in terms of display windows for video, graphics, or a combination of the two. These are significant advantages over prior art systems in which a single scaler curtails the flexibility of the video and graphics scaling in the system. In such systems, either the video information or the graphics information controlled scaling in the system and the other was required to meet the requirements set. These limitations are not experienced by the method and apparatus described herein.
- It should be understood that the implementation of other variations and modifications of the invention in its various aspects should be apparent to those of ordinary skill in the art, and that the invention is not limited to the specific embodiments described. For example, additional processing may be performed after scaling prior to merging the video information with the graphics information to produce the output for display. It is therefore contemplated to cover by the present invention, any and all modifications, variations, or equivalents that fall within the spirit and scope of the basic underlying principles disclosed and claimed herein.
Claims (15)
1. A video graphics display engine comprising:
a video scaler adapted to receive a video data stream in a first format, wherein the video scaler scales video images in the video data stream based on a ratio between the video images in the first format and an output video image to produce a scaled video stream;
a graphics scaler adapted to receive a graphics data stream in a second format,
wherein the graphics scaler scales graphics images in the graphics data stream based on a ratio between the graphics images in the second format and an output graphics image to produce a scaled graphics stream;
a merging block operably coupled to the video scaler and the graphics scaler, wherein the merging block combines the scaled video stream and the scaled graphics stream to produce a video graphics output stream;
a single frame buffer operably coupled to the graphics scaler and to the video scaler, the single frame buffer further comprises a first memory block and a second memory block, wherein the stream of video data is fetched from the first memory block and the stream of graphics data is fetched from the second memory block; and
a graphics flicker removal block operably coupled to the graphics scaler, wherein the graphics flicker removal block removes flicker from the scaled graphics stream.
2. A video graphics display engine comprising:
a video scaler adapted to receive a video data stream in a first format, wherein the video scaler scales video images in the video data stream based on a ratio between the video images in the first format and an output video image to produce a scaled video stream;
a graphics scaler adapted to receive a graphics data stream in a second format,
wherein the graphics scaler scales graphics images in the graphics data stream based on a ratio between the graphics images in the second format and an output graphics image to produce a scaled graphics stream;
a merging block operably coupled to the video scaler and the graphics scaler, wherein the merging block combines the scaled video stream and the scaled graphics stream to produce a video graphics output stream;
a single frame buffer operably coupled to the graphics scaler and to the video scaler, the single frame buffer further comprises a first memory block and a second memory block, wherein the stream of video data is fetched from the first memory block and the stream of graphics data is fetched from the second memory block; and
a video flicker removal block operably coupled to the video scaler, wherein the video flicker removal block removes flicker from the scaled video stream.
3. A video graphics display engine comprising:
a video scaler adapted to receive a video data stream in a first format, wherein the video scaler scales video images in the video data stream based on a ratio between the video images in the first format and an output video image to produce a scaled video stream;
a graphics scaler adapted to receive a graphics data stream in a second format,
wherein the graphics scaler scales graphics images in the graphics data stream based on a ratio between the graphics images in the second format and an output graphics image to produce a scaled graphics stream;
a merging block operably coupled to the video scaler and the graphics scaler, wherein the merging block combines the scaled video stream and the scaled graphics stream to produce a video graphics output stream; and
a single frame buffer operably coupled to the graphics scaler and to the video scaler, the single frame buffer further comprises a first memory block and a second memory block, wherein the stream of video data is fetched from the first memory block and the stream of graphics data is fetched from the second memory block,
wherein the merging block further comprises circuitry which configures a pixel rate of the video graphics output stream to produce a preferred video scaling ratio, wherein the preferred video scaling ratio is based on the ratio between the video images in the first format and the output video image.
4. A video graphics display engine comprising:
a video scaler adapted to receive a video data stream in a first format, wherein the video scaler scales video images in the video data stream based on a ratio between the video images in the first format and an output video image to produce a scaled video stream;
a graphics scaler adapted to receive a graphics data stream in a second format,
wherein the graphics scaler scales graphics images in the graphics data stream based on a ratio between the graphics images in the second format and an output graphics image to produce a scaled graphics stream;
a merging block operably coupled to the video scaler and the graphics scaler, wherein the merging block combines the scaled video stream and the scaled graphics stream to produce a video graphics output stream; and
a single frame buffer operably coupled to the graphics scaler and to the video scaler, the single frame buffer further comprises a first memory block and a second memory block, wherein the stream of video data is fetched from the first memory block and the stream of graphics data is fetched from the second memory block,
wherein the merging block further comprises circuitry which configures a pixel rate of the video graphics output stream to produce a preferred graphics scaling ratio, wherein the preferred graphics scaling ratio is based on the ratio between the graphics images in the second format and the output graphics image.
5. A video graphics display engine comprising:
a video scaler adapted to receive a video data stream in a first format, wherein the video scaler scales video images in the video data stream based on a ratio between the video images in the first format and an output video image to produce a scaled video stream;
a graphics scaler adapted to receive a graphics data stream in a second format,
wherein the graphics scaler scales graphics images in the graphics data stream based on a ratio between the graphics images in the second format and an output graphics image to produce a scaled graphics stream;
a merging block operably coupled to the video scaler and the graphics scaler, wherein the merging block combines the scaled video stream and the scaled graphics stream to produce a video graphics output stream;
a single frame buffer operably coupled to the graphics scaler and to the video scaler, the single frame buffer further comprises a first memory block and a second memory block, wherein the stream of video data is fetched from the first memory block and the stream of graphics data is fetched from the second memory block; and
a graphics decompression block operably coupled to the graphics scaler, wherein the graphics decompression block receives a compressed stream of graphics data and decompresses the compressed stream of graphics data to produce the graphics data stream.
6. A method for displaying video graphics data comprising:
receiving a video data stream, wherein the video data stream includes video data in a first format;
allocating a first block of a memory in a frame buffer for storing the video data stream, the allocating based upon memory needs of the video data stream;
receiving a graphics data stream, wherein the graphics data stream includes graphics data in a second format;
allocating a second block of the memory in a frame buffer for storing the graphics data stream, the allocating based upon memory needs of the graphics data stream;
scaling the video data based on a ratio between the first format and a selected video format to produce a scaled video stream;
scaling the graphics data based on a ratio between the second format and a selected graphics format to produce a scaled graphics stream; and
merging the scaled video stream and the scaled graphics stream to produce a video graphics output stream,
wherein scaling the video data further comprises removing the flicker from the scaled video stream.
7. A method for displaying video graphics data comprising:
receiving a video data stream, wherein the video data stream includes video data in a first format;
allocating a first block of a memory in a frame buffer for storing the video data stream, the allocating based upon memory needs of the video data stream;
receiving a graphics data stream, wherein the graphics data stream includes graphics data in a second format;
allocating a second block of the memory in a frame buffer for storing the graphics data stream, the allocating based upon memory needs of the graphics data stream;
scaling the video data based on a ratio between the first format and a selected video format to produce a scaled video stream;
scaling the graphics data based on a ratio between the second format and a selected graphics format to produce a scaled graphics stream; and
merging the scaled video stream and the scaled graphics stream to produce a video graphics output stream,
wherein scaling the video data further comprises removing the flicker from the scaled graphics stream.
8. A method for displaying video graphics data comprising:
receiving a video data stream, wherein the video data stream includes video data in a first format;
allocating a first block of a memory in a frame buffer for storing the video data stream, the allocating based upon memory needs of the video data stream;
receiving a graphics data stream, wherein the graphics data stream includes graphics data in a second format;
allocating a second block of the memory in a frame buffer for storing the graphics data stream, the allocating based upon memory needs of the graphics data stream;
scaling the video data based on a ratio between the first format and a selected video format to produce a scaled video stream;
scaling the graphics data based on a ratio between the second format and a selected graphics format to produce a scaled graphics stream; and
merging the scaled video stream and the scaled graphics stream to produce a video graphics output stream,
wherein receiving the graphics data stream further comprises receiving the graphics data stream in a compressed format, wherein the graphics data stream is decompressed prior to scaling.
9. A video graphics circuit comprising:
a plurality of memory blocks, wherein each of the plurality of memory blocks stores at least one of video data and graphics data;
a plurality of video scalers, wherein each of the plurality of video scalers is coupled to at least one of the plurality of memory blocks, wherein each video scaler of the plurality of video scalers independently scales at least a portion of the video data to produce a scaled video data stream of a plurality of scaled video data streams independent from the other scaled video data streams of the plurality of scaled video data streams;
a plurality of graphics scalers, wherein each of the plurality of graphics scalers is coupled to at least one of the plurality of memory blocks, wherein each graphics scaler of the plurality of graphics scalers independently scales at least a portion of the graphics data to produce a scaled graphics data stream of a plurality of scaled graphics data streams independent from the other scaled graphics data streams of the plurality of scaled graphics data streams; and
a plurality of merging blocks, wherein each of the merging blocks is operably coupled to at least one video scaler of the plurality of video scalers and at least one graphics scaler of the plurality of graphics scalers such that each of the merging blocks receives a plurality of scaled data streams, wherein each merging block combines received scaled data streams to produce a video graphics output stream of a plurality of video graphics streams.
10. The video graphics circuit of claim 9 , wherein the plurality of video scalers, the plurality of graphics scalers, and the plurality of merging bocks are included in an integrated circuit.
11. The video graphics circuit of claim 10 , wherein at least a portion of the plurality of memory blocks is included in the integrated circuit.
12. The video graphics circuit of claim 9 further comprises a plurality of controllers, wherein each of the plurality of controllers is operably coupled to at least one scaler of a combined set of scalers that includes the plurality of graphics scalers and the plurality of video scalers, wherein each of the plurality of controllers provides separate control information that controls independent scaling by scalers to which it is coupled.
13. The video graphics circuit of claim 12 , wherein each of the plurality of controllers provides merging control information to one of the plurality of merging blocks, wherein the merging control information is used in combining the received scaled data stream by each merging block.
14. The video graphics circuit of claim 9 , wherein each of the plurality of merging blocks perform alpha blend operations to combine the received scaled data streams.
15. The video graphics circuit of claim 9 , wherein the plurality of merging blocks produces the plurality of video graphics output streams in at least one of an analog display format and a digital display format.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/855,676 US20080001972A1 (en) | 1998-12-17 | 2007-09-14 | Method and apparatus for independent video and graphics scaling in a video graphics system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/213,748 US7365757B1 (en) | 1998-12-17 | 1998-12-17 | Method and apparatus for independent video and graphics scaling in a video graphics system |
US11/855,676 US20080001972A1 (en) | 1998-12-17 | 2007-09-14 | Method and apparatus for independent video and graphics scaling in a video graphics system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/213,748 Continuation US7365757B1 (en) | 1998-12-17 | 1998-12-17 | Method and apparatus for independent video and graphics scaling in a video graphics system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080001972A1 true US20080001972A1 (en) | 2008-01-03 |
Family
ID=38876140
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/213,748 Expired - Lifetime US7365757B1 (en) | 1998-12-17 | 1998-12-17 | Method and apparatus for independent video and graphics scaling in a video graphics system |
US11/855,676 Abandoned US20080001972A1 (en) | 1998-12-17 | 2007-09-14 | Method and apparatus for independent video and graphics scaling in a video graphics system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/213,748 Expired - Lifetime US7365757B1 (en) | 1998-12-17 | 1998-12-17 | Method and apparatus for independent video and graphics scaling in a video graphics system |
Country Status (1)
Country | Link |
---|---|
US (2) | US7365757B1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050249436A1 (en) * | 2004-05-04 | 2005-11-10 | Andy Chiu | Apparatus and method for scaling digital data |
US20060101151A1 (en) * | 2001-11-08 | 2006-05-11 | Northrop Grumman Corporation | Methodology for fast file transfer protocol |
US20060268012A1 (en) * | 1999-11-09 | 2006-11-30 | Macinnis Alexander G | Video, audio and graphics decode, composite and display system |
US20060290817A1 (en) * | 2002-04-01 | 2006-12-28 | Canon Kabushiki Kaisha | Multi-screen synthesis apparatus, method of controlling the apparatus, and program for controlling the apparatus |
US20080062304A1 (en) * | 2006-09-07 | 2008-03-13 | Claude Villeneuve | Method and apparatus for displaying at least one video signal on at least one display |
US20100053709A1 (en) * | 2008-08-27 | 2010-03-04 | Masanori Minami | Image processing apparatus, image forming apparatus, image processing method, and computer-readable storage medium containing image processing program |
US20100118184A1 (en) * | 2008-11-12 | 2010-05-13 | Canon Kabushiki Kaisha | Image display apparatus |
US20120056983A1 (en) * | 2010-09-03 | 2012-03-08 | Eita Shuto | Electronic Apparatus and Image Processing Method |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9668011B2 (en) * | 2001-02-05 | 2017-05-30 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Single chip set-top box system |
US7057627B2 (en) * | 2001-03-05 | 2006-06-06 | Broadcom Corporation | Video and graphics system with square graphics pixels |
US6864896B2 (en) * | 2001-05-15 | 2005-03-08 | Rambus Inc. | Scalable unified memory architecture |
US20030023958A1 (en) * | 2001-07-17 | 2003-01-30 | Patel Mukesh K. | Intermediate language accelerator chip |
JP4519658B2 (en) * | 2005-01-04 | 2010-08-04 | 株式会社東芝 | Playback device |
JP4417854B2 (en) * | 2005-01-04 | 2010-02-17 | 株式会社東芝 | Playback device |
JP4737991B2 (en) | 2005-01-04 | 2011-08-03 | 株式会社東芝 | Playback device |
US8004542B2 (en) * | 2005-01-17 | 2011-08-23 | Kabushiki Kaisha Toshiba | Video composition apparatus, video composition method and video composition program |
TWI262725B (en) * | 2005-06-30 | 2006-09-21 | Cheertek Inc | Video decoding apparatus and digital audio and video display system capable of controlling presentation of subtitles and method thereof |
JP4625781B2 (en) * | 2006-03-22 | 2011-02-02 | 株式会社東芝 | Playback device |
US7970859B2 (en) * | 2006-11-09 | 2011-06-28 | Raritan Americas, Inc. | Architecture and method for remote platform control management |
US20080129751A1 (en) * | 2006-12-04 | 2008-06-05 | George Lyons | Smart Blanking Graphics Controller, Device Having Same, And Method |
US8681180B2 (en) * | 2006-12-15 | 2014-03-25 | Qualcomm Incorporated | Post-render graphics scaling |
FR2912237A1 (en) * | 2007-02-07 | 2008-08-08 | Thomson Licensing Sas | IMAGE PROCESSING METHOD |
KR20090054836A (en) * | 2007-11-27 | 2009-06-01 | 삼성전자주식회사 | The apparatus for displaying image and the method thereof |
US9124847B2 (en) * | 2008-04-10 | 2015-09-01 | Imagine Communications Corp. | Video multiviewer system for generating video data based upon multiple video inputs with added graphic content and related methods |
JP2011048040A (en) * | 2009-08-26 | 2011-03-10 | Sony Corp | Video signal processing apparatus, method of processing video signal, and program |
US8730328B2 (en) | 2011-10-06 | 2014-05-20 | Qualcomm Incorporated | Frame buffer format detection |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574572A (en) * | 1994-09-07 | 1996-11-12 | Harris Corporation | Video scaling method and device |
US5764201A (en) * | 1996-01-16 | 1998-06-09 | Neomagic Corp. | Multiplexed yuv-movie pixel path for driving dual displays |
US5784046A (en) * | 1993-07-01 | 1998-07-21 | Intel Corporation | Horizontally scaling image signals using digital differential accumulator processing |
US5912710A (en) * | 1996-12-18 | 1999-06-15 | Kabushiki Kaisha Toshiba | System and method for controlling a display of graphics data pixels on a video monitor having a different display aspect ratio than the pixel aspect ratio |
US5912210A (en) * | 1994-04-12 | 1999-06-15 | International Business Machines Corporation | Enhancement of persistent currents in high TC superconductors |
US5914753A (en) * | 1996-11-08 | 1999-06-22 | Chrontel, Inc. | Apparatus and method to convert computer graphics signals to television video signals with vertical and horizontal scaling requiring no frame buffers |
US6014125A (en) * | 1994-12-08 | 2000-01-11 | Hyundai Electronics America | Image processing apparatus including horizontal and vertical scaling for a computer display |
US6028589A (en) * | 1995-10-13 | 2000-02-22 | Apple Computer, Inc. | Method and apparatus for video scaling and convolution for displaying computer graphics on a conventional television monitor |
US6064437A (en) * | 1998-09-11 | 2000-05-16 | Sharewave, Inc. | Method and apparatus for scaling and filtering of video information for use in a digital system |
US6078328A (en) * | 1998-06-08 | 2000-06-20 | Digital Video Express, Lp | Compressed video graphics system and methodology |
US6094226A (en) * | 1997-06-30 | 2000-07-25 | Cirrus Logic, Inc. | System and method for utilizing a two-dimensional adaptive filter for reducing flicker in interlaced television images converted from non-interlaced computer graphics data |
US6121978A (en) * | 1998-01-07 | 2000-09-19 | Ati Technologies, Inc. | Method and apparatus for graphics scaling |
US6189064B1 (en) * | 1998-11-09 | 2001-02-13 | Broadcom Corporation | Graphics display system with unified memory architecture |
US6208354B1 (en) * | 1998-11-03 | 2001-03-27 | Ati International Srl | Method and apparatus for displaying multiple graphics images in a mixed video graphics display |
US6307559B1 (en) * | 1995-07-13 | 2001-10-23 | International Business Machines Corporation | Method and apparatus for color space conversion, clipping, and scaling of an image during blitting |
US20020158865A1 (en) * | 1998-04-27 | 2002-10-31 | Dye Thomas A. | Graphics system and method for rendering independent 2D and 3D objects using pointer based display list video refresh operations |
-
1998
- 1998-12-17 US US09/213,748 patent/US7365757B1/en not_active Expired - Lifetime
-
2007
- 2007-09-14 US US11/855,676 patent/US20080001972A1/en not_active Abandoned
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784046A (en) * | 1993-07-01 | 1998-07-21 | Intel Corporation | Horizontally scaling image signals using digital differential accumulator processing |
US5912210A (en) * | 1994-04-12 | 1999-06-15 | International Business Machines Corporation | Enhancement of persistent currents in high TC superconductors |
US5574572A (en) * | 1994-09-07 | 1996-11-12 | Harris Corporation | Video scaling method and device |
US6014125A (en) * | 1994-12-08 | 2000-01-11 | Hyundai Electronics America | Image processing apparatus including horizontal and vertical scaling for a computer display |
US6307559B1 (en) * | 1995-07-13 | 2001-10-23 | International Business Machines Corporation | Method and apparatus for color space conversion, clipping, and scaling of an image during blitting |
US6028589A (en) * | 1995-10-13 | 2000-02-22 | Apple Computer, Inc. | Method and apparatus for video scaling and convolution for displaying computer graphics on a conventional television monitor |
US5764201A (en) * | 1996-01-16 | 1998-06-09 | Neomagic Corp. | Multiplexed yuv-movie pixel path for driving dual displays |
US5914753A (en) * | 1996-11-08 | 1999-06-22 | Chrontel, Inc. | Apparatus and method to convert computer graphics signals to television video signals with vertical and horizontal scaling requiring no frame buffers |
US5912710A (en) * | 1996-12-18 | 1999-06-15 | Kabushiki Kaisha Toshiba | System and method for controlling a display of graphics data pixels on a video monitor having a different display aspect ratio than the pixel aspect ratio |
US6094226A (en) * | 1997-06-30 | 2000-07-25 | Cirrus Logic, Inc. | System and method for utilizing a two-dimensional adaptive filter for reducing flicker in interlaced television images converted from non-interlaced computer graphics data |
US6121978A (en) * | 1998-01-07 | 2000-09-19 | Ati Technologies, Inc. | Method and apparatus for graphics scaling |
US20020158865A1 (en) * | 1998-04-27 | 2002-10-31 | Dye Thomas A. | Graphics system and method for rendering independent 2D and 3D objects using pointer based display list video refresh operations |
US6078328A (en) * | 1998-06-08 | 2000-06-20 | Digital Video Express, Lp | Compressed video graphics system and methodology |
US6064437A (en) * | 1998-09-11 | 2000-05-16 | Sharewave, Inc. | Method and apparatus for scaling and filtering of video information for use in a digital system |
US6208354B1 (en) * | 1998-11-03 | 2001-03-27 | Ati International Srl | Method and apparatus for displaying multiple graphics images in a mixed video graphics display |
US6189064B1 (en) * | 1998-11-09 | 2001-02-13 | Broadcom Corporation | Graphics display system with unified memory architecture |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060268012A1 (en) * | 1999-11-09 | 2006-11-30 | Macinnis Alexander G | Video, audio and graphics decode, composite and display system |
US7667715B2 (en) * | 1999-11-09 | 2010-02-23 | Broadcom Corporation | Video, audio and graphics decode, composite and display system |
US20060101151A1 (en) * | 2001-11-08 | 2006-05-11 | Northrop Grumman Corporation | Methodology for fast file transfer protocol |
US8312159B2 (en) * | 2001-11-08 | 2012-11-13 | Northrop Grumman Systems Corporation | Methodology for fast file transfer protocol |
US7768576B2 (en) * | 2002-04-01 | 2010-08-03 | Canon Kabushiki Kaisha | Multi-screen synthesis apparatus, method of controlling the apparatus, and program for controlling the apparatus |
US20060290817A1 (en) * | 2002-04-01 | 2006-12-28 | Canon Kabushiki Kaisha | Multi-screen synthesis apparatus, method of controlling the apparatus, and program for controlling the apparatus |
US20050249436A1 (en) * | 2004-05-04 | 2005-11-10 | Andy Chiu | Apparatus and method for scaling digital data |
US20080062304A1 (en) * | 2006-09-07 | 2008-03-13 | Claude Villeneuve | Method and apparatus for displaying at least one video signal on at least one display |
US20100053709A1 (en) * | 2008-08-27 | 2010-03-04 | Masanori Minami | Image processing apparatus, image forming apparatus, image processing method, and computer-readable storage medium containing image processing program |
US8625177B2 (en) * | 2008-08-27 | 2014-01-07 | Sharp Kabushiki Kaisha | Image processing apparatus, image forming apparatus, image processing method, and storage medium, each of which performs, on monochrome image data to image display device, or two-color image data, color matching process of reducing differences in color between image to be outputted by image display device and image to be outputted by printing apparatus |
EP2187383A3 (en) * | 2008-11-12 | 2011-01-05 | Canon Kabushiki Kaisha | Image display apparatus |
US20100118184A1 (en) * | 2008-11-12 | 2010-05-13 | Canon Kabushiki Kaisha | Image display apparatus |
US8446529B2 (en) * | 2008-11-12 | 2013-05-21 | Canon Kabushiki Kaisha | Image display apparatus |
US20120056983A1 (en) * | 2010-09-03 | 2012-03-08 | Eita Shuto | Electronic Apparatus and Image Processing Method |
US8736668B2 (en) * | 2010-09-03 | 2014-05-27 | Kabushiki Kaisha Toshiba | Electronic apparatus and image processing method |
Also Published As
Publication number | Publication date |
---|---|
US7365757B1 (en) | 2008-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080001972A1 (en) | Method and apparatus for independent video and graphics scaling in a video graphics system | |
KR100386579B1 (en) | format converter for multi source | |
US6166772A (en) | Method and apparatus for display of interlaced images on non-interlaced display | |
US8723891B2 (en) | System and method for efficiently processing digital video | |
JP2656737B2 (en) | Data processing device for processing video information | |
US6545724B1 (en) | Blending text and graphics for display on televisions | |
US6567091B2 (en) | Video controller system with object display lists | |
EP0951777B1 (en) | Method and apparatus for scaling and reducing flicker with dynamic coefficient weighting | |
JP3268779B2 (en) | Variable pixel depth and format for video windows | |
US7030934B2 (en) | Video system for combining multiple video signals on a single display | |
KR20070026609A (en) | Device and method of downscaling and blending two high resolution images | |
WO1998020670A2 (en) | System for converting computer graphics to television format with scaling requiring no frame buffers | |
TW511073B (en) | A method and apparatus in a computer system to generate a downscaled video image for display on a television system | |
US7893943B1 (en) | Systems and methods for converting a pixel rate of an incoming digital image frame | |
KR20030032625A (en) | Multi-display system and a method using the same | |
US20010009419A1 (en) | Image data displaying system, image drawing apparatus, image drawing method and image drawing program | |
US7400333B1 (en) | Video display system with two controllers each able to scale and blend RGB and YUV surfaces | |
KR20010032565A (en) | Flicker filter and interlacer implemented in a television system displaying network application data | |
EP0932977B1 (en) | Apparatus and method for generating on-screen-display messages using field doubling | |
EP1511002A2 (en) | Information processing apparatus, semiconductor device for display control and video stream data display control method | |
US20020113891A1 (en) | Multi-frequency video encoder for high resolution support | |
US7460175B2 (en) | Supersampling of digital video output for multiple analog display formats | |
KR100228490B1 (en) | Screen display apparatus and method of maximizing the expression of an information in an internet television | |
Othman | Interactive data services for television: display and user interface issues | |
Greenberg et al. | High‐performance system‐on‐silicon pixelated‐display‐controller IC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ATI TECHNOLOGIES ULC, CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ATI INTERNATIONAL SRL;REEL/FRAME:023574/0593 Effective date: 20091118 Owner name: ATI TECHNOLOGIES ULC,CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ATI INTERNATIONAL SRL;REEL/FRAME:023574/0593 Effective date: 20091118 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |