Abstract:
A device and method for playing digital video are disclosed. The device includes multiple graphics processing units. The method involves using the multiple graphics processors to decode and output compressed audiovisual stream to a display and a speaker. Audiovisual bit streams possibly containing multi-stream video are efficiently decoded and displayed by sharing decoding-related tasks among multiple graphical processing units.

Description:
RELATED APPLICATIONS 
       [0001]    This application claims priority to Provisional Application Ser. No. 61/569,968, filed on Dec. 13, 2011, having inventors David Glen et al., titled “VIDEO PLAYER WITH MULTIPLE GRAPHICS PROCESSORS”, and is incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates generally to digital video players, and more particularly to efficient utilization of graphics processors in digital video players. 
       BACKGROUND OF THE INVENTION 
       [0003]    Digital video has become widely available to consumers and businesses. Standardized digital video distribution formats and associated digital video players have helped to make digital video commonplace. In particular, DVD, Blu-ray Discs and digital video downloading have become popular media for digital content distribution along with players and a wide array of media content targeted for DVD distribution. 
         [0004]    The success of DVD has been due in part to its ability to distribute large amounts of recorded digital data and its relatively low cost. In addition to video content, DVDs are also often used to distribute other digital content such as software, electronic documentation, digital music and the like. As such DVD drives are among the most common peripherals in a typical modern PC. 
         [0005]    Although DVD provides improved video playback features including menus and optional subtitles which were not available in older analog technologies such as VHS (video home system), the resolution of digital video stored on DVDs is standard definition (SD). Lately however, newer formats such as Blu-ray, which encode video in high definition (HD) resolution, have become increasingly popular. HD resolutions can be as high as 1920×1080 pixels. 
         [0006]    The standards and technologies behind Blu-ray allow for a much larger capacity disc than DVD, which enables the encoding of substantially more data onto a medium (i.e., Blu-ray disc). In addition, other beneficial features that enhance the user experience including surround sound audio, picture-in-picture (PIP) video and higher quality video compression algorithms such as the H.264 or the VC-1 standard are available in Blu-ray. 
         [0007]    Unfortunately however, these enhancements add substantially to the computational load of data processing subsystems in video player devices that decode video content encoded using these formats. Accordingly newer video players require more powerful computing resources. This, in turn, often entails the use of newer graphics processing engines with a much larger number of transistors, and consequently an increase in power consumption commensurate with the increased number of transistors. Not surprisingly, this adds to the cost of video players. 
         [0008]    In some computing devices, a built-in integrated graphics processor (IGP) may already be provided. However, as many existing IGPs may not be capable of decoding HD content, a more powerful graphics processing unit (GPU) is often added to such computing devices by way of a graphics expansion card to enable decoding of Blu-ray distributed motion video. This often makes an existing IGP superfluous. 
         [0009]    Furthermore, a powerful GPU often consumes power at consumption levels that may be too high for its practical use in a mobile computing device such as a laptop. Such a powerful graphics card, incorporated into video players may include multiple graphics processing units and other processing blocks which consume more power. As a result, it is sometimes necessary to exclude advanced graphics capabilities from graphics cards intended for use in mobile, battery operated video players. 
         [0010]    Accordingly, there remains a need to conserve power and efficiently utilize available computing resources in computing devices that are used as high definition digital video players. 
       SUMMARY OF EMBODIMENTS OF THE INVENTION 
       [0011]    In accordance with an aspect of the present invention, there is provided a method of operating a video device comprising an input for receiving a plurality of compressed streams corresponding to different image layers, a processing engine comprising a first graphics processing unit (GPU), a second GPU, memory interconnected to at least one of said first GPU and second GPU and a display output interface. The method comprises: (i) reading and decoding plurality of compressed streams via the input using the first GPU to form a plurality of source images to be composited; (ii) compositing in the memory, corresponding ones of the source images using the second GPU, to form display images; and (iii) outputting the display images by way of the display output interface. 
         [0012]    In accordance with another aspect of the present invention, there is provided a method of operating a video device. The device comprises: an input for receiving a plurality of compressed video streams corresponding to different image layers, a processing engine comprising: a first graphics processing unit (GPU), a second GPU, memory and a display output interface each interconnected to at least one of the first GPU and second GPU, the method comprising: (i) reading and decoding the plurality of compressed video streams via the input to form a plurality of source images to be composited, using the first GPU; (ii) compositing in the memory, corresponding ones of the source images to form a display image, using the first GPU; and (iii) outputting the display images to an interconnected display through the display output interface, using the second GPU. 
         [0013]    In accordance with yet another aspect of the present invention, there is provided a method of operating a computing device comprising: an input for receiving a plurality of compressed video streams corresponding to different image layers, a processing engine comprising: a first graphics processing unit (GPU), a second GPU, a processor, memory and a display output interface each interconnected to at least one of the first and second GPUs. The method comprises: (i) reading and decoding a first one of the plurality of streams to form a plurality of video frames, using the first GPU; (ii) reading and decoding a second one of the plurality of streams to form graphics segments, using the first GPU; (iii) compositing the graphics segments to form a plurality of overlay images, using the first GPU; (iv) compositing in the memory, corresponding ones of the video frames and the overlay images using the first GPU, to form a plurality of display images; (v)compositing the display images with user interface elements of a video application to form a video application window for display using one of the first and second GPUs; and (vi) compositing the video application window with other application windows and a background desktop image, to form an output screen for display on a display interconnected to the display interface. 
         [0014]    In accordance with yet another aspect of the present invention, there is provided a digital video player device comprising: (i) an input for receiving a plurality of streams, each corresponding to one of a plurality of image layers; (ii) a graphics processing engine comprising a first graphics processing unit (GPU) and a second GPU; (iii) memory in communication with the first and second GPUs; and (iv) a display output interface. The input receives the streams; the graphics processing engine processes the streams to from images corresponding to the plurality of image layers using the first GPU and compositing in the memory, corresponding ones of the images from display images, the second GPU outputting the display images to an interconnected display through the display output interface. 
         [0015]    Other aspects and features of the present invention will become apparent to those of ordinary skill in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0016]    In the figures which illustrate by way of example only, embodiments of the present invention, 
           [0017]      FIG. 1  is a block diagram of a conventional video player device in the form of a personal computer; 
           [0018]      FIG. 2  is a block diagram of a personal computer adapted to function as a video player device exemplary of an embodiment of the present invention; 
           [0019]      FIG. 3  is a flowchart depicting major steps involved in presenting a multi-layered image constructed from multiple streams using an exemplary computing device; 
           [0020]      FIG. 4  is a simplified block diagram of video decoding and processing stages typically performed by a video player device exemplary of an embodiment of the present invention; 
           [0021]      FIG. 5  is a further simplified block diagram of video decoding and audio decoding stages performed by a video player device exemplary of an embodiment of the present invention; and 
           [0022]      FIG. 6  is a block diagram of another embodiment video player device exemplary of another embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0023]      FIG. 1  illustrates a simplified block diagram of a conventional video player device  100  in the form of a computer. Device  100  includes an optical drive  102 , a processing engine  104 , and memory  108 . Processing engine  104  interconnects optical drive  102 . 
         [0024]    Processing engine  104  may contain a graphics processing unit (GPU)  114 , a general purpose processor  106 , a memory interface circuit  120  (sometimes called the “North Bridge”), and input-output (I/O) interface circuit  122  (sometimes called the “South Bridge”). A speaker  116  interconnected to processing engine  104  is used to output audio encoded onto a medium such as an optical disc after decompression by processing engine  104 . A display  118 , interconnected to processing engine  104 , is used to display images and video decoded by device  100 . 
         [0025]    Device  100  may be a dedicated video player (e.g., a Blu-ray player) capable of decoding and displaying encoded digital video distributed using a medium; or a computing device such as a personal computer (PC) or a laptop computer, equipped with an optical drive. A bus, such as the serial advanced technology attachment (SATA) bus or a similar suitable bus may be used interconnect drive  102  with processing engine  104 . Processor  106  may be a central processing unit (CPU) with an AMD x86 based architecture. GPU  114  may be part of a Peripheral Component Interconnect Express (PCIe) graphics card. Memory  108  may be shared by processor  106  and GPU  114  using memory interface circuit  120 . Alternately, GPU  114  may have its own local memory. 
         [0026]    In operation, a suitable medium such as an optical disc containing audiovisual content that may include multiple image layers (e.g., Blu-ray disc), may be loaded into drive  102 . Device  100  reads encoded data from the disc placed in drive  102  and decodes, composites decoded frames and/or images, and renders final images. Device  100  may also decode and output audio content onto speaker  116 . 
         [0027]    The final image output by device  100  may be the result of compositing many source images corresponding to individual image layers. In Blu-ray, for example, multiple streams corresponding to primary video, secondary video, background, presentation graphics and interactive graphics may be present. The source images to be composited typically have a composition order so that a background image is placed behind a foreground image when compositing to form an output image. Compositing may of course involve more than two source images. 
         [0028]    Blu-ray discs contain encoded streams can be decoded, and composited for presentation. For example the secondary video may be a picture-in-picture (PIP) video, and frames from the secondary video are displayed inside corresponding frames from the primary video. 
         [0029]    Typically, both the primary and secondary video streams may be compressed streams. Compressed video streams may, for example, be received in the form of a multiplexed sequence of packets known as packetized elementary stream (PES). The compression may utilize MPEG-2, H.264, VC-1 or similar compression standard. In addition, other streams containing images to be composited may be present. For example, in Blu-ray, there are two graphics streams (the interactive graphics stream and the presentation graphics stream) that are decoded into graphics images and composited with frames from the primary and secondary streams. Graphics images may be used to display subtitles, menus and the like. 
         [0030]    A video stream, as used herein, refers to a data stream that may be decoded or interpreted to form a series of moving images that are to be presented in a sequence. Moving images in a video stream may represent an image plane. Image plane can be overlaid or composited to form images ultimately presented to a viewer. Example video streams include MPEG elementary streams, Bluray presentation graphics and interactive graphics streams, Bluray primary and secondary video streams (e.g. VC-1, H.264, MPEG-2), text subtitle streams. Other video streams will be apparent to those of ordinary skill. 
         [0031]    Displaying multi-stream video increases the computational load on player device  100  as each stream needs to be decoded into frames by processing engine  104  and compositing of corresponding frames is required before presentation. The composited image may then be displayed on display  118  using a display interface such as a HDMI, DVI, DisplayPort, VGA or analog TV output interface, or a suitable wireless display interface (e.g. WiDi). 
         [0032]    Processing each video stream may consume an appreciable amount of power. Each image plays may have full HD resolution (1920×1080 pixels). In addition, there may be digital components in device  100 , such as an integrated graphics processor (IGP)  124  that may not be utilized as they may lack the capability to decode HD video. However, although not used, an IGP may nonetheless consume appreciable amounts of static power. As will be appreciated by those skilled in the art, in some integrated circuit process technologies, static power consumption rivals dynamic power consumption. 
         [0033]    Thus, in embodiments exemplary of the present invention, an improved player device and method of operation may be used to decode digital video efficiently, utilizing available computing resources while also limiting power consumption. Notably, each of the video streams in multi-stream video inputs may be decoded and/or processed independently and thus concurrently. In addition, decoding and outputting audio to an interconnected speaker may also be performed independently of the video frames. 
         [0034]    Accordingly,  FIG. 2  depicts a simplified block diagram of a video player device  200  exemplary of an embodiment of the present invention. Device  200  includes an optical drive  202 , a processing engine  204 , and a block of memory  208 . Player device  200  may be interconnected to a display  218  using a display output interface such as the digital visual interface (DVI) or the high-definition multimedia interface (HDMI). Optical drive  202  and processing engine  204  may be interconnected using SATA bus. 
         [0035]    Processing engine  204  may contain multiple graphics processing units (GPUs)  214 A,  214 B (individually and collectively GPUs  214 ), a general purpose processor  206 , a memory interface circuit  220  (“North Bridge”), and an I/O interface circuit  222  (“South Bridge”). Processor  206 , memory  208  and GPUs  214  may be in communication with memory interface circuit  220 . A speaker  216  may be interconnected to an audio output of processing engine  204  using an audio processor  224 . After encoded audio from a Blu-ray disc (BD) in optical drive  202  is decompressed by processing engine  204 , decoded audio data is received by speaker  216 . 
         [0036]    Device  200  may be a personal computer (PC), or a laptop computer, or a dedicated Blu-ray player. GPU  214 A may be part of an integrated graphics processor (IGP) formed as an integrated circuit on a motherboard of device  200 , while GPU  214 B may be part of a PCI Express (PCIe) graphics card. 
         [0037]    GPU  214 B may have replaced own local video memory  226 . Alternately, a portion of memory  208  may be used by one or both of GPUs  214 A,  214 B. Memory  208  may be part of the system memory for device  200  and thus may be used by processor  206  as well. Data stored in local memory  226 , or in portions of memory  208  accessible by GPUs  214 A,  214 B may include commands, textures, off-screen buffers, and other temporary data generated for rendering. Of course, software, in the form of processor executable instructions for processor  206  and/or GPUs  214 A,  214 B to decode and display compressed video, may also be loaded into memory  208  prior to execution. 
         [0038]    In operation, software executing on processor  206 , in conjunction with one or more graphics processing units may be used to decode and display video from compressed multi-stream data. Compressed video streams may be stored on an optical disc such as BD, and may be read by optical drive  202 . 
         [0039]    As noted above, compressed video data from each stream corresponding to an image layer in a BD, as well as compressed audio data from one or more sources may be received as packetized elementary streams, that are then multiplexed together; for example in the form of MPEG-2 Transport Stream or similar (e.g., VC-1, H.264) stream. 
         [0040]    In one embodiment, processor  206  may be used to de-multiplex the received transport stream (e.g., MPEG-2 Transport Stream), into packets of primary or secondary video and/or presentation or interactive graphics streams, each corresponding an image layer (sometimes called a plane). One of the GPUs (e.g., GPU  214 B) may subsequently decode the packet contents to form video frames and graphics overlay images, while a second GPU (e.g. GPU  214 A) may be used to composite the decoded images to form a multi-layer display image. 
         [0041]    When de-multiplexing, processor  206  may store individual video or graphics streams corresponding to each of the image layers in separate stream buffers in memory  208  for example. An application software (such as PowerDVD) or a device driver for the GPUs may then direct GPU  214 B, and GPU  214 A to read stored streams from the stream buffers and decode the corresponding video frames or images. 
         [0042]      FIG. 3  depicts a flowchart S 300  illustrating several major steps involved in presenting a multi-layered image constructed from multiple streams (e.g., from a BD) using exemplary device  200  in the form of a computing device. As will be detailed below, several compositing steps may be involved in presenting images from a Blu-ray disc to an interconnected display terminal. 
         [0043]    In addition to decoding the primary (and secondary) video frames (S 302 ), graphics or overlay images (i.e., presentation and/or interactive images) need to be composited from the graphics streams. The graphics streams in Blu-ray include syntactical elements called segments such as a Graphics Object Segment, Composition Segment and Palette Segment. A Composition Segment defines the appearance of a graphics display; a Graphics Object Segment represents run-length compressed bitmap data and a Palette Segment contains color and transparency data for translating color indexes (which may be 8-bits) to full color values. 
         [0044]    Device  200  is may thus decode a graphics stream (presentation or interactive) to provide the segments required to construct or composite the overlay image (S 304 ). The first composition step may thus involve construction of the graphics image using the decoded segments (S 306 ). 
         [0045]    Once the graphics images are formed (S 306 ), then corresponding video frames (primary or, both primary and secondary) and graphics images (presentation and/or interactive) may be composited in a second composition step (S 308 ) to form a display image for display. The display image may incorporate all available information provided in the Blu-ray disc. 
         [0046]    If device  200  is a computing device, the composited final Blu-ray image is typically displayed within an application window (such as the PowerDVD application). Accordingly, a third composition step (S 310 ) may be performed to position the image within the user interface elements of the application window. Finally, a fourth composition step (S 312 ) may be used to display the application window (including its user interface elements and the Blu-ray display image), along with other application windows and desktop background of a computing device. 
         [0047]    In one embodiment GPU  214 B may read and decode all of the video and graphics streams, while GPU  214 A composites corresponding decoded images to form a final image for display onto interconnected display  218 . 
         [0048]    In another embodiment, GPU  214 B may composite segments from the graphics streams to form graphics images, decode primary (and secondary) video frames, form the Blu-ray image and composite the Blu-ray image with the application user interface. On the other hand GPU  214 A may composite the image formed by GPU  214 B (i.e., the Blu-ray image within the user interface elements of the player application such as PowerDVD) with other application unrelated windows and desktop background image, to form the screen output on display  218 . 
         [0049]    As will be appreciated, the division of concurrent computational tasks within processing engine  204  should correspond with the relative capabilities of GPUs  214 A,  214 B—that is, the more demanding of the concurrent tasks should normally be assigned to the more powerful GPU. For example, the graphics driver software may direct the more powerful GPU (e.g., GPU  214 B) to decode and process the primary video stream while using the less powerful GPU (e.g., GPU  214 A) to decode and process the secondary video, from a BD. 
         [0050]      FIGS. 4 and 5  show simplified logical diagrams of the decoding and compositing stages performed by device  200 . As depicted in  FIG. 5 , two major stages are identified as decoding stage  302  and compositing stage  304 . Decoding stage  302  may be performed using software executing on processor  206 , and hardware acceleration provided by GPU  214 A, GPU  214 B, or both. As well, de-multiplexed audio may be decoded by audio decoder  404 . 
         [0051]    For example, a compressed bit stream, in the form of a transport stream, may be received as an input by device  200 . Each of the N streams corresponding to a graphics layer in the received transport stream may be de-multiplexed into N packetized elementary streams (PES) and subsequently decoded by GPU  214 B in decoding stages  302 - 1 ,  302 - 2 , . . . ,  302 -N corresponding to the first, second, . . . , N th  graphics layers of video. As may be appreciated, decoding of each stream may involve several operations including an entropy decoding stage  306 , an inverse transform stage  308  and a motion compensation stage  310 . In addition to the N video streams, one or more audio streams (not shown) from the transport stream may also be de-multiplexed and decoded as needed. 
         [0052]    As noted above, decoding, compositing and displaying may be accomplished using GPUs  214 A,  214 B with software executing on processor  206  coordinating the process. Notably, device  200  may be a Blu-ray player capable of decoding a Blu-ray disc (BD) placed in optical drive  202  and processor  206  may download software that can be used to provide multi-stream video, animations, picture-in-picture and audio mixing from the BD. The downloaded software may, for example, be written in the Java™ programming language specified for the Blu-ray disc, called Blu-ray Disc Java (BD-J), and provided as Java archive (JAR) files. These JAR files maybe downloaded from a Blu-ray disc in drive  202 , onto memory  208  or some other cache memory, by processor  206  and executed in a Java Virtual Machine (JVM) also running in processing engine  204  to provide interactivity, subtitles, secondary video, animation and the like. These features are provided as image layers to be composited together for display and may include an interactivity graphics layer, subtitle graphics layer, secondary video layer, primary video layer and the background layer. Each image corresponding to an image layer may be independent of all other layers and may have a full HDTV resolution. 
         [0053]    Device  200  may also connect to a network such as the Internet through a peripheral network interface card (not shown) in electrical communication with I/O interface circuit  222 . If network connection is available to device  200 , dynamic content updates may be performed by the BD-J software to download new trailers for movies on a BD, to get additional subtitle options, to download add-on bonus materials and the like. Processor  206  may coordinate these tasks to be shared by GPUs  214 A,  214 B in parallel. For example, processor  206  may execute BD-J applications (called applets or xlets) to download games and trailers and utilize GPU  214 A to provide the resulting animation, or display downloaded trailers, while GPU  214 B may be used to provide hardware acceleration for decoding and displaying the main video layer from a BD in drive  202 . 
         [0054]    Decoded frames from each stream corresponding to an image layer may be composited or alpha-blended in compositing stage  304 . As depicted, compositing stage  304  involves α-weighting stages  312  in which individual color components of decoded frame pixels from several layers are linearly combined as will be detailed below. 
         [0055]    Alternately, instead of alpha-blending, keying may be used. Keying, sometimes called color keying or chroma keying, involves identifying a single preselected color or a relatively narrow range of colors (usually blue or green) and replacing portions of an image that match the preselected color by corresponding pixels of an alternate image or video frame. In background keying, pixels of the background image are replaced, while in foreground keying, pixels of a foreground object are keyed and subsequently replaced. 
         [0056]    As may be appreciated, entropy decoding stage  306 , inverse transform stage  308  and motion compensation stage  310  may be computationally intensive. Inverse transform stage  308  typically involves a standard inverse transform operation to be performed on square blocks of entropy decoded values obtained from MPEG-2 and/or H.264 encoded video sequences. This may be a very demanding operation and may thus be performed using the more powerful GPU (e.g. GPU  214 B). 
         [0057]    Decoded frames from each of the video and/or graphics streams corresponding to separate image layers, may be composited in compositing stage  304  by GPU  214 A. As noted above, compositing refers to the combining of digital images (video frames or graphics images) from multiple image layers, to form a final image for presentation. To compose the final image, a color component of a foreground pixel F at location (x, y) of the foreground image is linearly combined with a corresponding color component of a background pixel B at the same location (x, y), using an opacity value (or equivalently transparency value) for pixel F—called the alpha channel or alpha value (denoted α F )—to form the combined final pixel C (x, y). Pixel B may be stored or otherwise represented as (r B , g B , b B , α B ) in which r b , g B , b B  and α B  represent the red, green, blue and opacity values respectively. Alpha values used in computations may range from 0 (denoting complete transparency) to 1 (denoting full opacity). A background image is typically fully opaque and thus α B  may be set to 1 or omitted. Typically, in picture-in-picture applications, alpha values are not used. Instead a composition window is defined to display secondary video within the primary video. 
         [0058]    Foreground pixel F at location (x, y) is also stored as (r F , g F , b F  α F ) where r F , g F , b F , α F  represent the red, green, blue and opacity values respectively. Thus, for final pixel C at (x, y) the red green and blue color components (r c , g c , b c ) are computed as 
         [0000]        r   c =(α F ) r   F +(1−α F ) r   B  
 
         [0000]        g   c =(α F ) g   F +(1−α F ) g   B  
 
         [0000]        b   c =(α F ) b   F +(1−α F ) b   B  
 
         [0059]    Hence, while GPU  214 B may be used to perform decoding stage  302 ; GPU  214 A may be used to perform alpha-blending in accordance with the equations above—in α-weighting stages  312 —and sum the resulting α-weighted values in compositing stage  304 . The composited final image is then displayed on the interconnected display device. 
         [0060]    The blending operation depicted, may also be performed in other color spaces such as the YCbCr color space. If source images to be composited are in different color spaces, then at least one image should be converted into another color space so that both source images are in the same color space. 
         [0061]    GPU  214 B, may reside on a PCIe card with a dedicated compositing engine, such as, for example, a Radeon graphics card supplied by AMD. Memory  208  may be loaded with an appropriate device driver for the graphics card hosting GPU  214 B. 
         [0062]    In variations of the above embodiment, GPU  214 A and GPU  214 B may be formed differently. For example, GPUs  214 A,  214 B may each reside on a separate PCIe card. Alternately, GPUs  214 A,  214 B can reside on the same PCIe card. As can be appreciated numerous alternative physical embodiments of GPUs  214 A,  214 B are possible. In addition, GPUs  214 A,  214 B may have same architecture and capabilities; or may have different architectures and different capabilities. 
         [0063]    In alternate method of operation of device  200 , GPU  214 B may decode a first set of image layers—for example in Blu-ray, the background, primary video and secondary video—while GPU  214 B decodes a second set of image layers (e.g., the presentation graphics for subtitles and the interactive graphics stream for menus). Interestingly, if GPU  214 A forms part of an IGP, then GPU  214 B, which may form part of a PCIe graphics card, need not be powerful enough to decode all of the image layers in Blu-ray (i.e., the primary and secondary video, background and the graphics streams) by itself. The requisite computational load of decoding and displaying video is shared between the two GPUs  214 A,  214 B. Thus, unlike the case in conventional device  100  (i.e., IGP  124 ), any existing IGP in device  200  (incorporating GPU  214 A) can be fully utilized, together with GPU  214 B to decode and display video. 
         [0064]    Yet another embodiment of the present invention is depicted schematically in  FIG. 6 . The device depicted in  FIG. 6  may be substantially similar to device  200  depicted in  FIG. 2  except for its interconnection to multiple displays and the presence of additional GPUs inside the processing engine. Like parts are similarly numbered, but suffixed with a prime (′) in  FIG. 6  for to distinguish them from their counterparts in  FIG. 2 . 
         [0065]    In  FIG. 6 , a video player device  200 ′ includes an optical drive  202 ′, a processing engine  204 ′ and a block of memory  208 ′. A bus such as the SATA bus may interconnect optical drive  202 ′ and processing engine  204 ′. Processing engine  204 ′ may contain multiple graphics processing units (GPUs)  214 A′,  214 B′,  214 C′,  214 D′ (individually and collectively GPUs  214 ′), a general purpose processor  206 ′, an audio processor  224 ′, a memory interface circuit  220 ′ (“North Bridge”), and an I/O interface circuit  222 ′ (“South Bridge”). A speaker  216 ′ is interconnected to an audio output of processing engine  204 ′. Decoded audio data is received by speaker  216 ′, using an audio processor  224 ′. Device  200 ′ may be interconnected to each of multiple displays  218 A′,  218 B′,  218 C′,  218 D′ (individually and collectively displays  218 ′) through individual display output interfaces corresponding to each GPU  214 A′,  214 B′,  214 C′,  214 D′. 
         [0066]    In the embodiments noted above, compressed audiovisual data need not necessarily come from an optical drive. Any suitable medium such as a hard disk containing the compressed audiovisual data may be used to provide input to the input interface of the processing engine  204  (or  204 ′). 
         [0067]    Advantageously, exploiting the organization of digital video data (e.g., on a Blu-ray disc), through the use of multiple GPUs in parallel allows cost reduction and power conservation. As even idle (i.e., not actively switching) circuitry that is supplied with power (such as an unused IGP  124 ), may nonetheless consume appreciable amounts of static power, the utilization of an otherwise idle (in conventional decoders) GPU to decode video and audio helps reduce overall power consumption in a video decoder/player. 
         [0068]    In addition, for computers that already have an IGP, a graphics card with a less capable, inexpensive but power-efficient GPU may be used in lieu of a powerful but expensive and power-hungry GPU, to decode multi-stream high definition content, by concurrently utilizing of both the efficient GPU and the IGP in accordance with embodiments described herein. As powerful graphics card with power-hungry GPUs would be avoided, the overall cost of video decoder devices may be reduced accordingly. 
         [0069]    Of course, the above described embodiments are intended to be illustrative only and in no way limiting. The described embodiments of carrying out the invention are susceptible to many modifications of form, arrangement of parts, details and order of operation. The invention, rather, is intended to encompass all such modification within its scope, as defined by the claims.