Abstract:
The present invention is particularly useful in the field of plasma display panels (PDPs) or other display devices wherein each video level is represented by a combination of bits according to a specific coding. In this case, when the algorithms used to improve picture quality are based on data stored in memories such as look-up tables (LUTs), the size of such tables may be quite huge. To improve picture quality in PDPs, an algorithm using metacode LUTs has been developed, using data stored in look-up tables. The invention proposes a way to reduce the amount of look-up tables needed for implementing metacodes. According to the invention, only some look-up tables of low size are stored and the other ones are achieved by extrapolation.

Description:
[0001]     The present invention relates to a method for generating a look-up table in the video picture field. It also relates to a circuit for implementing said method.  
         [0002]     The present invention is particularly useful in the field of plasma display panels (PDPs) or other display devices wherein each video level is represented by a combination of bits according to a specific coding. In this case, when the algorithms used to improve picture quality are based on data stored in memories such as look-up tables (LUTs), the size of such tables may be quite huge.  
       BACKGROUND OF THE INVENTION  
       [0003]     To understand the problem, the present invention will be described in relation with PDP but may be applicable to other types of display or other apparatus processing video data and requiring memories with huge size. T-o improve picture quality in PDPs, a lot of algorithms have been developed, using data stored in look-up tables. For example, in EP patent application 1 353 314, is described a method for improving grey scale fidelity portrayal based on a modification of the coding approach for each average power level (APL) that occurs at each frame. It is based on a Metacode concept wherein the subfield code based on subfield weights is replaced by a metacode based on subfield actual luminance. More specifically, for a given peak white level, the sustain pulses are distributed among the sub-fields, the number of pulses of a sub-field corresponding to its weighting. Then, the sub-field codes are mapped to luminance codes, which are re-ordered in a definite order. Moreover, the video levels are mapped to the available luminance codes and processed to achieve intermediate levels of luminance. Then, the luminance codes are mapped to the output sub-field codes. In this case, look-up tables are used at least for mapping the video levels to the luminance codes and for mapping the luminance codes to the output sub-field codes. These look-up tables, which contain, for example, luminance codes to be loaded for each new APL value, are stored in an external memory. These tables, called metacode look-up tables, are quite huge.  
         [0004]      FIG. 1  is a standard implementation circuit of a metacode coding unit as described in EP patent application 1 353 314. This unit comprises a first memory  100  comprising 1024×12 bits for handling 10 bits of input video resolution. A first metacode look up table is stored in this memory and is used for mapping the video levels to available luminance codes. It can include or not a degamma function. A new metacode look up table is loaded in the memory  100  each time the APL value changes. At the output of the memory  100 , 12 bits video signal is obtained. The available 12-bits correspond to 8-bits integer resolution and 4-bits fractional resolution. Then, the 12-bits of video signal YA [ 11 - 0 ] are forwarded to a dithering circuit  110 . In this circuit  110 , the 4-bits of fractional resolution are added with the 4-bits of dithering and then truncated.  
         [0005]     The video signal YB[ 7 , 0 ] from the circuit  110  is then forwarded to a second memory  120  comprising 256×16 bits. A second look-up table is stored in the memory  120  and is used to implement the transcoding step that is the step of mapping luminance codes to the output subfield codes.  
         [0006]     As mentioned previously, the memory  100  needs to be updated with a new metacode look-up table each time the APL value changes. A look-up table is provided for each APL value. These look-up tables are stored in an external memory  130 , e.g. a FLASH memory, EEPROM, . . . A metacode look-up table defines, for each video level and for a given APL value, a 12 bit code representative of the luminance code to be generated for achieving the video level. In case of a 10 bit APL value, an external memory with a size of 1024×1024×12=12 Mbit is needed.  
         [0007]     Moreover, if different metacode look-up tables are needed for each color, it increases the total size of the memory  130  to 36 Mbit. Furthermore, since the metacode look-up tables are different for each display mode used in the Plasma Display Panel, e.g. 60 Hz, 50 Hz, 75 Hz . . . it further increases the needs in terms of external memory: 108 Mbit for 3 modes.  
         [0008]     Therefore, one major problem of the implementation circuit of  FIG. 1  is the large size of the external memory  130 .  
         [0009]     It is the purpose of the present invention to propose a way to reduce the amount of data needed for implementing said metacode method by using a low number of metacode look-up tables and by extrapolating the other ones.  
         [0010]     In a general manner, the invention relates to a method for generating a look-up table for a given value of a parameter among N different values, whose output values can be approximated by a piecewise linear function of a variable (S(VAL)) depending on the given value.  
         [0011]     The method of the invention can be used for generating a metacode look-up table for a given value of average power level.  
         [0012]     It can also be used for generating other look-up tables in the video picture field.  
       SUMMARY OF THE INVENTION  
       [0013]     So, the invention proposes a method for generating a look-up table for a given value of a parameter among N different values, whose output values can be approximated by a piecewise linear function of a variable depending on the given value, characterized in that it comprises the following steps: 
        dividing the set of N values into P subsets of consecutive values, each piece of the piecewise linear function being in a different subset;     defining a look-up table for the two bound values of each subset i, called primary look-up table and secondary look-up table respectively,     defining, for each subset i, a delta look-up table corresponding to the difference between the secondary look-up table and the primary look-up table related to the subset i,     defining, for each one of said N values, an extrapolation coefficient in accordance with the value of a variable S for the given value and the values of the variable S for the two bound values of the subset i comprising the given value; and     computing a look-up table, for the given value in accordance with the related extrapolation coefficient, primary look-up table and delta look-up table.        
 
         [0019]     In the embodiment described here, the generated look-up table is a Metacode look-up table, the parameter is an average power level and the variable is a number of sustain pulses corresponding to the given value of the parameter.  
         [0020]     The bound level related to the primary look-up table of a subset of average power level values is the highest average power level value of the subset and the bound level related to the secondary look-up table of a subset of average power level values is the lowest average power level value of the subset.  
         [0021]     Preferably, the ratio between the value of the variable for one bound value in the subset i and the value of the variable S for the same bound value in the subset i+1 equals to a fixed parameter o. The parameter ox is defined as followed  
       α   =         S   MAX       S   MIN       N         
 
 where S MAX  is the value of the variable S for a peak white image and S MIN  for a full white image. The extrapolation coefficient equals to  
         C   ⁡     (   VAL   )       =         S   ⁡     (   VAL   )       -     S   ⁡     (     PMTC   i     )             S   ⁡     (     SMTC   i     )       -     S   ⁡     (     PMTC   i     )               
 
 where S(PMTC i ) is the value of the variable S for the highest bound value of the subset i; S(SMTC i ) is the value of the variable S for the lowest bound value of the subset i; and S(VAL) is the value of the variable for the given value. 
 
         [0022]     The computed look-up table equals to the sum of the output of the primary look-up table (PMTC i ) for the given value (VAL) and the output of the delta look-up table (PMTC i ) for the given value (VAL) weighted by the extrapolation coefficient for the given value (VAL).  
         [0023]     The invention concerns also a device for generating a look-up table for a given value of a parameter among N different values, whose output values can be approximated by a piecewise linear function of a variable depending on the given value, the set of N values being divided into P subsets of consecutive values, each piece of the piecewise linear function being in a different subset, characterized in that it comprises: 
        a first memory for storing, for each subset i, a primary look-up table associated to a bound value of the subset i,     a second memory for storing, for each subset i, a delta look-up table corresponding to the difference between a secondary look-up table and the primary look-up table related to the subset i, the secondary look-up table being associated to the other bound value of the subset i,     a third memory for storing, for each of said N values, an index indicating which primary look-up table in the first memory and which delta look-up table in the second memory have to be used for extrapolation,     a fourth memory for storing an extrapolation coefficient; for each one of said N values, the extrapolation coefficient associated to a given value being defined in accordance with the value of a variable S for said given value and the values of the variable S for the two bound values of the subset i comprising said given value; and     a computing block for generating a look-up table, for the given value in accordance with the related extrapolation coefficient, primary look-up table and delta look-up table.        
 
         [0029]     The above-mentioned method can be implemented in this device. 
     
    
     DRAWINGS  
       [0030]     Exemplary embodiments of the invention are illustrated in the drawings and are explained in more detail in the following description.  
         [0031]     In the figure:  
         [0032]      FIG. 1  is a schematic showing an implementation of a prior art method; and  
         [0033]      FIG. 2  is a schematic showing a possible implementation of the method according to the invention. 
     
    
     DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0034]     The present invention will be described with reference to the generation of metacode look-up tables for different Average Power Level or APL values.  
         [0035]     The goal of the invention is to reduce the number of look-up tables needed. Only some look-up tables will be predefined for some APL values and, for the other APL values, new look-up tables will be extrapolated from these predefined look-up tables.  
         [0036]     In the following specification, a metacode LUT, defined for a given APL value, defines for each input video level an output level expressing a luminance code to be used.  
         [0037]     According to the invention and as illustrated by  FIG. 2 , four look-up tables with a total size inferior to the size of the memory  130  of  FIG. 1  and an evaluation block are used to implement the metacode look-up tables for all APL values: 
        a first look-up table LUT 1  which comprises itself 16 metacode LUTs, called primary metacode LUTs; each primary metacode LUT comprises metacodes related to a specific APL value, called primary APL value; the primary APL values will be described below in the specification;     a second look-up table LUT 2  which comprises 16 delta LUTs corresponding to the difference between secondary metacode LUTs and said primary metacode LUTs; each secondary metacode LUT comprises metacodes related to a specific APL value, called secondary APL value; the secondary APL values will be described below in the specification;     a third look-up table LUT 3  which comprises, for each APL value, an index indicating which primary metacode LUT in LUT 1  and which delta LUT in LUT 2  have to be used for the extrapolation,     a fourth look-up table LUT 4  which comprises, for each APL value, the coefficient to be used for the extrapolation, and     an extrapolation block EXTRAPOL for calculating a LUT.        
 
         [0043]     As mentioned above, each subset of APL values comprises a primary APL value and a secondary APL value. The set of APL values comprises for example 1024 values from 0 to 1023 and is for example divided into 16 subsets of consecutive APL values. The primary APL value is the highest APL value (corresponding to the smallest number of sustain pulses) of the subset and the secondary APL value is the lowest APL value (corresponding to the highest number of sustain pulses) of the subset. A primary metacode LUT is defined for each primary APL value. These primary metacode LUTs are stored in the LUT 1 . A secondary metacode LUT is defined for,each secondary APL value but these secondary metacode LUTs are not stored in the LUT 1  or LUT 2 . They are only used for calculating the delta LUTs stored in LUT 2 .  
         [0044]     The Look-up table LUT 3  delivers, for each APL value, a pointer on the primary Metacode LUT which has to be used for generating the Metacode LUT of this APL value. The LUT  3  has a 10-bit input and a 4-bit output for selecting one of the 16 primary metacode LUTs.  
         [0045]     The notations used in the specification are the following ones: 
        PMTC i  represents the primary metacode LUT related to the subset i of APL values,     S(PMTC i ) represents the number of sustain pulses for the APL value (primary APL value) corresponding to the primary metacode LUT PMTC i ;     PMTC i (V) represents the output of the primary metacode LUT PMTC i  for the video level V;     SMTC i represents the secondary metacode LUT related to the subset i of APL values,     S(SMTC i ) represents the number of sustain pulses for the APL value corresponding to the secondary metacode LUT SMTC i ;     SMTC i (V) represents the output of the secondary metacode LUT SMTC i  for the video level V; and     S(X) represents of the number of sustain pulses for the APL value X.        
 
         [0053]     Some jumps can appear when switching from one primary metacode LUT to another one. For example, the smallest sub-field code value (1 sustain pulse for example) has a different (different in comparison with which value ?) relative value (which is equal to 1/total amount of sustain pulses) since the total amount of sustain pulses changes from one primary Metacode level to another one (from one APL value to another). The ratio of these two different values (which is equal to the ratio of the two different total amounts of sustain pulses of the two primary metacode LUTs) could create a jump.  
         [0054]     In order to have nearly the same visibility of possible jumps when switching from one primary Metacode to another one, these ratios should be equal as follows:  
           S   ⁡     (     PMTC   0     )         S   ⁡     (     PMTC   1     )         =         S   ⁡     (     PMTC   1     )         S   ⁡     (     PMTC   2     )         =     …   =         S   ⁡     (     PMTC   i     )         S   ⁡     (     PMTC     i   +   1       )         =     …   =         S   ⁡     (     PMTC   14     )         S   ⁡     (     PMTC   15     )         =   α                 
 
 This means that the division is made in a logarithmic way. The previous formula means that the 2 nd  the 3 rd , . . . and the 15 th  subsets of APL values have the same ratio between the number of sustain pulses of their smallest APL value and their highest value. If this ratio a: is also imposed to the first subset, we have  
       α   =         S   MAX       S   ⁡     (     PMTC   0     )         =         S   ⁡     (     PMTC   0     )         S   ⁡     (     PMTC   1     )         =     …   =         S   ⁡     (     PMTC   i     )         S   ⁡     (     PMTC     i   +   1       )         =     …   =       S   ⁡     (     PMTC   14     )         S   ⁡     (     PMTC   15     )                       
 
 where S MAX  is the number of sustain pulses for a peak white (low APL value) 
 
 When multiplying all terms together, we find that:  
         α   16     =         S   MAX       S   ⁡     (     PMTC   15     )         =       S   MAX       S   MIN             
 
 where S MIN  is the number of sustain pulses for a full white image. 
 
 So  
       α   =             S   MAX       S   MIN       16     ⁢           ⁢   and   ⁢           ⁢     S   ⁡     (     PMTC   i     )         =       S   MIN     ×     α     15   -   i               
 
         [0055]     This division in a logarithmic way is only a suggestion in order to have the same visibility of possible jumps when switching from one primary metacode LUT to another one; but it is possible to use a different division of the APL set. For example, it is possible to use a different division in order to have more subsets for the low values of APL, and less for the high values of APL.  
         [0056]     In an example given in the annex below, the set of APL values is divided in 16 subsets. The primary APL values (lowest APL value of each subset) are marked in bold characters and the secondary APL values (highest APL values: of each subset) are marked in black areas.  
         [0057]     This example is given for the following inputs: 
        Peak white image: 1100 sustain pulses     Full white image: 200 sustain pulses.        
 
         [0060]     The parameter a is equal to:  
       α   =           S   MAX       S   MIN       16     =         1100   200     16     ≈     1.1135   .             
 
         [0061]     The 16 primary APL values, used for the primary Metacode LUTs, are determined as indicated in the annex table. The maximal number of sustain pulses of the primary metacode LUT PMTC i  is 200×α i  sustain pulses, with i=0 . . . 15.  
         [0062]     The APL values are distributed as follows: 
    APL values from 0 to 135+Subset  15      APL values from 136 to 230+Subset  14      APL values from 231 to 318+Subset  13      APL values from 319 to 398+Subset  12      APL values from 399 to 473+Subset  11      APL values from 474 to 540+Subset  10      APL values from 541 to 604+Subset  9      APL values from 605 to 663+Subset  8      APL values from 664 to 716+Subset  7      APL values from 717 to 766+Subset  6      APL values from 767 to 812+Subset  5      APL values from 813 to 856+Subset  4      APL values from 857 to 898+Subset  3      APL values from 899 to 938+Subset  2      APL values from 939 to 978+Subset  1      APL values from 979 to 1023+Subset  0     
 
         [0079]     As an example, for the subset  15 , the primary APL value is 135 and the secondary APL value is 0. The maximal number of sustain pulses for the primary metacode LUT is 988 and for the secondary metacode LUT is 1100. The metacode LUTs related to APL values comprised between 1 and 134 of subset  15  are computed by extrapolation. It is an extrapolation in the sense that it is not an interpolation between two metacode LUTs related to different subsets. These metacode LUTs related to APL values 1 . . . 134 can be achieved by an interpolation between the primary metacode LUT related to the APL value 135 and the secondary Metacode LUT related to the APL value 0. The secondary metacode LUT is only used for the extrapolation. In a preferred embodiment, the extrapolation for the APL values of a subset i is made between the primary metacode LUT PMTC i  an d a delta LUT corresponding to the difference between primary metacode LUT PMTC i  and the secondary metacode LUT SMTC i . This difference LUT, noted LUT 2   i , is stored in the look up table LUT 2 . The values in the delta LUTs contained in this LUT 2  can be positive or negative, but a 8 bit resolution is enough.  
         [0080]     The value stored in the delta LUT related to the subset i in the LUT 2  and precalculated for a video level V is:  
         LUT   ⁢           ⁢     2   i     ⁢     (   V   )       =       64   ×     (         SMTC   i     ⁡     (   V   )       -       PMTC   i     ⁡     (   V   )         )       63         
 
 (Why the coefficient 64/63 ?) 
 
         [0081]     Preferably, for evaluating the look-up table LUT 2 , more resolution should be used for PMTC i (V) and SMTC i (V) than available for the LUT 1 .  
         [0082]     The extrapolation coefficient for an APL value belonging to the subset i, referenced C(APL), used for the extrapolation is the ratio of the difference between the number of sustain pulses of the current APL, NbSustain(APL), and S(PMTC i ) to the difference between S(SMTC i ) and S(PMTC i ). 6 bit resolution is enough for this coefficient.  
         C   ⁡     (   APL   )       =     63   ×         S   ⁡     (   APL   )       -     S   ⁡     (     PMTC   i     )             S   ⁡     (     SMTC   i     )       -     S   ⁡     (     PMTC   i     )                 
 
 (Why the coefficient 63 ?) 
 
         [0083]     The final extrapolation is: 
 
output( V )= LUT 1 i ( V )+( LUT 2 i ( V )× C ( APL ))/64 
 
 (Why the coefficient 64?) 
 
         [0084]     The primary Metacode LUTs are independent of the principle of the invention. Only, the other metacode LUTs are achieved from these primary metacode LUTs.  
         [0085]     A possible implementation of the method of the invention is illustrated by  FIG. 2  as indicated below. The look-up tables LUT 1 , LUT 2 , LUT 3  and LUT 4  are stored in four memories  101 ,  102 ,  103  and  104 . They can be included in an external memory (EPROM or FLASH) that can be read bit sequentially by a controller. The extrapolation is calculated by an extrapolation block  105 . This block is connected to the dithering block  110  of  FIG. 1 . In normal operation, at the end of every frame, new LUT 1   i  and LUT 2   i  data have to be downloaded by the controller depending on the APL value that has been computed during the active part of the video signal based on the video data.  
         [0086]     This method needs only (16×1024×(12+8)+1024×(6+4))×3×3=2.9 Mbit for 3 modes instead of 108 Mbit with the method implemented in  FIG. 1 .  
                               ANNEX