Abstract:
A system and corresponding method for adjusting the brightness and color of MPEG encoded video images. A digital versatile disk player capable of decoding a previously encoded MPEG video signal and adjusting the brightness and color of the entire previously encoded MPEG video signal based on a subset of information contained in the encoded input signal. The brightness and color adjustments are performed while the encoded MPEG video signal is in the frequency (dct) domain before motion compensation is performed. The digital versatile disk player also determines whether the particular block to be decoded is of a predetermined type and decodes such block accordingly.

Description:
NOTICE OF COPYRIGHT 
     A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. 
     FIELD OF THE INVENTION 
     The present invention generally related to MPEG video decoders and, more particularly, to a system and corresponding algorithm for adjusting the,brightness and color information of MPEG encoded video images. 
     BACKGROUND OF THE INVENTION 
     In the Motion Pictures Experts Group (MPEG) video standard, a sequence is comprised of a series of video frames. Each video frame in the sequence is subdivided into a number of rectangular information blocks, each containing a pixel, portion of the image. These information blocks are referred to as macroblocks. The pixel portions of the image are represented by a series of bits of data. In the MPEG video, standard, the data bits are encoded in a particular fashion. With respect to the attributes of the encoded image, the data bits contain information relating to the brightness (luminance) and color (chrominance) of the encoded image. 
     An MPEG decoder is used to decode the information present in each of the macroblocks to provide an image on a suitable display device. In the MPEG decoding methodology, motion compensation is performed on the image frames to adjust the image for any motion relative to the previous or subsequent reference frames. When the motion compensation stage is not a separate module within the MPEG decoder; the brightness and color controls are adjusted after the motion compensation and before display. To adjust the brightness and color, conventional decoders need to adjust all the pixel values comprising the image, which is a time consuming task. If a separate module performs the motion compensation, conventional decoders provide no means for controlling brightness and color. 
     SUMMARY OF THE INVENTION 
     The aforementioned and related drawbacks associated with known MPEG decoding schemes are substantially reduced or eliminated by the present invention. The present invention is directed to a system and corresponding method for adjusting the brightness and color of MPEG encoded video images. The disclosed system is a digital versatile disk player capable of decoding a previously encoded MPEG video signal and adjusting the brightness and color of the entire previously encoded MPEG video signal based on a subset of information contained in the encoded input signal. The disclosed system is capable of performing the brightness and color adjustment while the encoded MPEG video signal is in the frequency (dct) domain before motion compensation is performed. The digital versatile disk player of the present invention also includes means for determining whether the particular block to be decoded is of a predetermined type and decoding such block accordingly. 
     The present invention is embodied within a larger video display system comprising means for providing an input video signal having a plurality of encoded frames comprised of encoded macroblocks; decoding means for providing a plurality of decoded macroblocks comprised of decoded blocks, the decoding means including means for adjusting the brightness of the image represented by the encoded blocks contained within each macroblock in response to a first subset of data present in the, plurality of encoded blocks; and means for providing an output video signal in response to the plurality of decoded macroblocks, wherein the output signal is formatted to be displayed as a conventional video image. In a preferred embodiment of the present invention, the decoding means further includes means for adjusting the color of the image represented by the encoded macroblocks in response to a second subset of data present in the plurality of encoded blocks. 
     In a preferred embodiment of the present invention, the color and brightness properties of a decoded image in the frequency (dct) domain are adjusted by detecting whether the immediate macroblock is an intra block; extracting the luminance and chrominance blocks from the intra block; and adjusting the DC pixel component in the frequency domain, of each of the luminance blocks, wherein the brightness property of the image blocks is adjusted. For the chrominance blocks within the intra block, adjusting the DC pixel component in the frequency domain adjusts the color property of the image block. 
     An advantage of the present invention is that it provides the ability to independently control the brightness and color properties of decoded images when the last segments of decoding, e.g. IDCT (inverse discrete cosine transform) and/or motion compensation, are performed in a separate module. 
     Another advantage of the present invention is that it enhances the performance of MPEG video decoder devices. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The aforementioned and related advantages and features of the present invention will become apparent upon review of the detailed description of the invention, taken in conjunction with the following drawings, where like numerals represent like elements, in which: 
     FIG. 1 is a schematic representation of the structure of a video frame and macroblocks within a video frame; 
     FIG. 2 is a schematic representation of two types of coded macroblocks included in an encoded video frame; 
     FIG. 3 is a block diagram of a digital versatile disk player incorporating a decoder module that performed the brightness and color adjustment algorithm of the present invention; 
     FIG. 4 is a block diagram of the decoder module that performs the brightness and color adjustment algorithm of the present invention; and 
     FIG. 5 is a flow chart illustrating the operating steps performed by the decoder module illustrated in FIG.  4 . 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The system and corresponding method for adjusting the brightness and color information of MPEG encoded video images will now be described with reference to FIGS. 1-5. In the MPEG video standards, a digital image is comprised of a series of frames. Some of the descriptions of the MPEG standards herein may not be applicable to all MPEG standards, however, the present invention is not limited to a particular MPEG standard. The appropriate standard for an application is known to those skilled in the art. FIG. 1 is a schematic representation of a video frame. As shown in FIG. 1, each frame is comprised of a series of blocks, referred to as macroblocks. In a preferred embodiment of the present invention, each macroblock is comprised of 4 luminance blocks and 2 chrominance blocks, each block containing 8×8=64 pixels A pixel is comprised of a series of bits of data, represented as: {X 1 ,X 2 ,X 3  . . . X N } where N is a positive integer. Adjusting the brightness of a macroblock requires modification of 4×64 pixels. Adjusting each of the color components U and V requires modification of 64 pixels. A typical video frame consists of 24-30 frames per second, with each frame containing 300-5000 macroblocks depending on the resolution. Correspondingly, adjusting the brightness and color of an image using conventional techniques requires substantial computational effort. The present invention is directed to a computational algorithm which reduces the number of calculations that have to be performed when adjusting the brightness and color of a decoded image. The computational method will now be described with reference to the remaining figures. 
     FIG. 3 is a block diagram of a digital versatile disk (DVD) player  10  that performs the improved brightness and color adjustment algorithm according to the present invention. The DVD player  10  includes a navigation unit  12  and a corresponding video unit  14  which provides an output video signal to a display device  20  on line  21 . In a preferred embodiment of the present invention, the display device  20  is a computer monitor. The video unit  14  includes a video decoder module  15  and a video display module  18 . The decoder module  15  decodes the input video signal provided by the navigation unit  12  and provides the brightness and color adjustment to the encoded image according to the present invention. 
     The navigation unit  12 , in FIG. 3, accepts a digital media element such as, for example, a digital versatile disk  11  having digital information, i.e. audio, video and other complementary information stored thereon. The navigation unit  12  demultiplexes the information from disk  11 , providing the encoded video information on a first data line (VIDEO); and audio and other complementary information on the AUDIO and COMP lines, respectively. The encoded information (image) present on the VIDEO line is transferred to the video unit  14  through the video decoder module  15 . The video decoder module  15  receives the encoded video bit stream from the navigation unit  12 . 
     FIG. 4 is an exploded schematic diagram of the decoder module  15  of the present invention. As shown in FIG. 4, the decoder module  15  includes a Variable Length Decoder (VLD)  16  which represents the initial decoding of the video signal, as well as performing other required decoding tasks well known in the art, such as Inverse Scan and Inverse Quantization. An IDCT (inverse discrete cosine transform) module is provided which performs the inverse discrete cosine transformation to prepare the signal for the motion compensation stage. The IDCT module transforms the signal from the frequency domain to the space (spatial) domain to process the video signal for motion compensation and display. 
     As discussed above, the video signal is comprised of a number of video frames, which are further subdivided into macroblocks. In a preferred embodiment, each video frame is comprised of macroblocks that are 16 pixels ×16 pixels in size. Each 16×16 macroblock  100  consists of six blocks of size (8×8) with the first blocks Y 0 , Y 1 , Y 2 , Y 3  containing luminance information and the remaining two blocks U and V containing the Cb and Cr chrominance information, respectively. In the preferred embodiment the video stream luminance and chrominance information is ordered, Y 0 Y 1 Y 2 Y 3 UV. Each luminance block represents brightness information of an 8×8 pixel region in the macroblock 16×16 pixel region; and the two chrominance blocks represent the color information for the 16×16 pixel region. The values in these blocks represent the information in a transformed domain called a dct (frequency) domain; which is obtained during encoding by a conventional algorithm performed on the corresponding space domain. In the conventional decoding methodology, an IDCT is performed on all components in the block in the dct (frequency) domain before the Motion Compensation stage and any brightness or color adjustment thereafter. The first component in the block in dct domain is the DC pixel component or average of all the pixels. The algorithm of the present invention adds or subtracts a certain value to/from this component in the dct domain; that is, before the IDCT is performed. This results in the addition or subtraction of a corresponding value to all components in the regular space domain once the IDCT makes the transformation. This enables the present invention to change the brightness and color in the dct domain by changing only the first component. 
     The component macroblocks in a frame within the MPEG encoded video image are divided into two types: intra coded (intra block) and non intra coded (non intra block). FIG. 2 is a representation of these two types of coded macroblocks. An intra block is encoded independently, with only information from the block itself. No motion compensation is performed on intra blocks. Motion compensation is performed at the macroblock level for non intra blocks through use of the reference block(s) to provide improved compression. Non intra blocks are derived indirectly from one or more intra blocks. For the present invention, only the brightness and color properties of the intra coded blocks are adjusted. The non intra blocks will be inherently changed similarly since the blocks used to derive the non intra blocks will have been adjusted prior. 
     The luminance and chrominance properties of the intra blocks are adjusted by Brightness Color Adjustment module  17  of the decoder module  15  based on the algorithm, shown in Table 1, applied to each macroblock of the image. The algorithm is coded in the preferred programming language, though other suitable programming languages can also be used. 
     
       
         
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 Algorithm for adjusting luminance and chrominance of intra blocks, 
               
               
                 shown for 11 bit implementation where boundary maximum value 
               
               
                 is 1023 and minimum is −1024. 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 if(base.mb_block.macroblock_type &amp; MACROBLOCK_INTRA) 
               
             
          
           
               
                   
                 { 
               
               
                   
                 for (comp=0; comp&lt;4; comp++) 
               
             
          
           
               
                   
                 { 
               
               
                   
                 base.block[comp][0]+=BrightnessControl; 
               
               
                   
                 if(base.block[comp][0] &gt; 1023) 
               
             
          
           
               
                   
                 base.block[comp][0] = 1023; 
               
             
          
           
               
                   
                 else if(base.block[comp][0] &lt; −1024) 
               
             
          
           
               
                   
                 base.block[comp][0] = −1024; 
               
             
          
           
               
                   
                 } 
               
             
          
           
               
                   
                 base.block[4][0] += UControl; 
               
             
          
           
               
                   
                 if(base.block[4][0] &gt; 1023) 
               
             
          
           
               
                   
                 base.block[4][0] = 1023; 
               
             
          
           
               
                   
                 else if(base.block[4][0] &lt; −1024) 
               
             
          
           
               
                   
                 base.block[4][0] = −1024; 
               
             
          
           
               
                   
                 base.block[5][0] += VControl; 
               
             
          
           
               
                   
                 if(base.block[5][0] &gt; 1023) 
               
             
          
           
               
                   
                 base.block[5][0] = 1023; 
               
             
          
           
               
                   
                 else if(base.block[5][0] &lt; −1024) 
               
             
          
           
               
                   
                 base.block[5][0] = −1024; 
               
             
          
           
               
                   
                 } 
               
               
                   
                   
               
             
          
         
       
     
     The algorithm in Table 1 assumes 11 bits are used to represent the brightness of a pixel and 11 bits to represent the chrominance. Although the preferred arithmetic precision for the present invention uses 11 bits, the present invention is not limited tb that number of bits. For a different number of bits per pixel arithmetic precision, the boundary constants in the algorithm would change, thereby adjusting the maximum value (e.g. 1023) and minimum value (−1024) constants shown in the table for 11 bit arithmetic precision. By further example, for an 8 bit implementation, the boundary constant value would be set to 127 for the maximum and −128 for the minimum, since that is the range of numbers represented by 8 bits arithmetic precision. 
     As illustrated above, the video decoder module  15  adjusts the DC element (represented by dimension fixed to [0] in the two dimensional base.block array variable) of the four luminance (brightness) and chrominance (color) blocks (U, V) respectively, when such corresponding properties require adjustment. Preferably there are four brightness blocks (Y 0 , Y 1 , Y 2 , Y 3 ) and two color blocks (U, V) in the macroblock. Accordingly, when the first component of the brightness and color intra blocks are adjusted, the remaining blocks within the video frame will be adjusted accordingly since the non intra blocks are encoded/decoded using the information contained in the intra blocks. Consequently, by performing the brightness and color adjustment method in the frequency (dct) domain as in the present invention, the total number of computation steps required to be performed are substantially reduced. By reducing the number of computations required to adjust the brightness and color properties of a video image, the overall efficiency of the DVD player is improved. The present invention will reduce the amount of computations necessary for brightness and/or color adjustment to less than {fraction (1/64)} th  of the prior method which made adjustments after the IDCT transformation to the spatial domain. In addition to performance gains, the present invention: makes the brightness and color adjustment possible for the systems in which motion compensation and display are done in a separate module which the decoder does not have access to. After adjusting the brightness and color properties of the decoded image, a separate motion compensation module  13  performs standard motion compensation to provide an output signal. The output signal is then transferred to the video display module  18  (in FIG. 3) on line  22 . The video display module  18 , shown in FIG. 3, processes the decoded video signal from line  22  and provides an output, on line  21 , suitable for the display device  20 . 
     The computational steps performed by the video decoder module  15  to adjust the brightness and color properties of an MPEG decoded image will now be described with reference to FIG.  5 . FIG. 5 is a flow chart illustrating the adjustment algorithm according to the present invention. For the first step, if the current block is an intra block then the algorithm continues, otherwise the next macroblock is processed. The next step adjusts the brightness control by applying a BrightnessControl factor to each component of the four luminance blocks, preferably Y 0 , Y 1 , Y 2 , Y 3 . The algorithm also bounds the adjusted component value within limits based on the arithmetic precision. The limits are the maximum and minimum values that can be represented by the number of bits used to represent the brightness, U chrominance and V chrominance of a pixel. As shown in Table 1 above, the preferred number of bits to represent the brightness, U chrominance and V chrominance of a pixel is 11 bits each. The next step adjusts the color Cb control by applying a UControl factor to the U block component, with the result also bounded. The next step adjusts the color Cr control by applying a VControl factor to the V block component; and similarly bounds the result. 
     The foregoing detailed description of the invention has been provided for the purposed of illustration and description. Although a preferred embodiment of the present invention has been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to the precise embodiment disclosed, and that various changes and modifications to the invention are possible in light of the above teaching. Accordingly, the scope of the present invention is to be defined by the claims appended hereto.