text: it should be understood by one of ordinary skill in the art that film is composed of frames which are whole images while digital video is generally composed of fields which are one half of a whole film image . video fields are either designated as odd or even corresponding to the lines of an image frame which are represented by the field . digital video may also be composed of frames representing a whole image from a film frame . the term “ frame ” as used herein shall apply to both complete images and also to interlaced image fields . the term “ cluster ” as used herein refers to one or more frames ( film / video ). generally a cluster is a group of frames which compose a scene or a group of scenes from a film . clusters can be designated by an operator or may be automatically determined . the term “ color information ” shall refer to the digital data that is associated with color . for example r , g , b values for a pixel , field , frame or cluster . the term “ color parameter ” includes but is not limited to hue , saturation , and brightness . the term “ control setting ” as used herein refers to an arrangement of one or more color controls wherein each control sets a particular color parameter . a control setting causes color information from one or more film frames to be altered . for example , a control setting may include a brightness level , a hue level , and a saturation level and will alter the r , g , b color information . it should be understood by one of ordinary skill in the art that color may be represented in any of a number of color spaces such as munsell , ostwald , cie , rgb , and yuv for example and the invention as disclosed is not limited to any particular color space . throughout this disclosure it is assumed that the intended display mechanism for the digital video is fixed such that any variations between displays is no longer a variable . a system for color correction during a film - to - digital transfer is shown in fig1 . the system includes a digitization device 10 for receiving as input film frames 12 and outputting a digital video sequence 14 composed of video fields or frames 13 . the digitization device 10 samples the film and quantizes the color samples . in other embodiments , the digitization device receives a digital sample of the film and provides a mechanism for color correction . the digitization device is provided with adjustable controls 15 for changing color parameters 16 which adjusts the color information 17 in the digital representation and as a result the visual appearance in any particular display mechanism . for example , each color may have an associated control 15 for independent adjustment , such that in an r , g , b color space all of the red values may be increased or decreased . similarly controls may alter groups of colors such that the hue , saturation or brightness may be changed . for example , the brightness at high intensities can be adjusted to prevent “ ballooning ” and to get “ soft clipping ,” whereas brightness at low intensities can be adjusted to get sufficient detail in the dark areas of an image or a cluster . each possible control setting of these controls leads to a different color distribution of the color information for a cluster of frames . a processor 20 executing software 25 interacts with the digitization device for adjusting the color parameters 16 for a control setting 15 of the digitization device for the video transfer . although the following description shall refer to software , it should be understood by one of ordinary skill in the art that the software may be embodied on an integrated circuit or may be a combination of computer code and hardware . the software can be set to adjust the colors of a cluster of film frames either automatically or semi - automatically with input from a human operator . the software insures that conventional requirements on the distribution of color information within each cluster of video frames are satisfied while at the same time preserving information from the original distribution of colors . the problem of color correction is formulated in the context of constrained optimization . the conventional requirements on the distribution of colors will be referred to as “ constraints ”. the constraints are dependent on the display mechanism for the digital video representation . typical examples of constraints are “ blacks should look black ,” “ whites should appear white ,” and the overall average of the color channels should be “ gray .” a further constraint is that human skin should look like flesh . other possible constraints are that there should be limited “ banding ” and “ clipping ” in the dark and light areas of a video image when it is displayed on a display device . some constraints are most naturally addressed in the rgb color space , whereas other constraints may be better addressed in other color spaces . the software is therefore provided with the ability to change between color spaces . for example , some of the color fidelity issues referred to below are generally address in “ c b / c r color space ”, referring to a color coordinate system based on a luminance or intensity variable y = ρr + γg + βb where r , g , b stand for red , green and blue , and ρ , γ , β are positive parameters with ρ + γ + β = 1 . the other two components in this representation are c b = y − b and c y = y − r . thus c b / c r space is simply a linear transformation of r , g , b - space . fig2 a shows a 2 - d control space along with possible control settings within the control space wherein each control setting is indicated with a 1 . each constraint may be represented as a property of an empirical three - dimensional histogram of colors related to the totality of pixels in the corresponding sequence , which constitutes the cluster . some control settings yield a histogram which comply with the constraints , and some do not . the control settings which are within the space of all constraints are represented with a 1 * while the optimum setting is marked with a 1 **. the method for determining 1 ** will be explained below . fig3 a shows a representative 2 - dimensional version of the 3 - d histogram wherein only one color component is represented , which in this example is the color component red . this histogram represents the sampled color information from a cluster of frames prior to being altered by changes in the control settings of the digitization device . fig3 b - 3c show altered 2 - d color histograms of the histogram displayed in fig3 a . fig3 b shows a histogram wherein the control settings are changed thereby altering the histogram . the settings used to produce the color information of fig3 b comply with all of the constraints and therefore would reside within the shaded portion of the color space representation of fig2 a . fig3 c is also a histogram which contains altered color information which complies with all of the constraints and represents the optimal solution 1 ** from fig2 a . among the settings that respect the constraints , a method is defined for ordering the solutions and therefore finding an optimal setting in the sense of sharing as much information as possible with the distribution of colors in the film representation . fig4 is a flow chart showing the steps used to determine such a control setting . first a set of constraints are determined ( step 401 ). each constraint is a function which depends upon the color information . the constraints are defined by one or more variables which may be either set by an operator or automatically set within the constraint function . if the variables are automatically set this step may be bypassed . the constraints as well as the extent of automation of the constraints may be cluster - dependent . a first constraint is color fidelity . black regions in the original film representation should also look black ( when the digital material is displayed ), white regions should look white , flesh tones should appear natural . all of these constraints are based upon human perception . the corresponding quantitative constraint on the color distribution can be determined either automatically , for instance by identifying peaks near actual black ( in a 3d color histogram of the color information ) and requiring that the colors of the corresponding pixels be black , or with the assistance of an operator manually specifying a spatial region in one or more frames in the cluster that needs to look black . in the purely automated case , a constraint might be that a certain percentage of pixels for a cluster must be at full black ( r , g , b ,= 0 , 0 , 0 ), for instance 10 % of all pixels . in another variation which includes operator input , an operator could adjust the percentage variable for the constraint . the second constraint is balance , such that the overall mean of the empirical color distribution of the color information associated with the cluster should be gray . this implies that the average color of all the pixels in the cluster should lie on the diagonal ( r = g = b ) in the three - dimensional color space . in an automated version the particular level of gray would be automatically chosen . in a semi - automatic mode of operation , the particular level of grey might be specified by the operator . avoidance of clipping is another constraint . clipping occurs when a large number of pixels , usually very dark or very light , are assigned the same quantization level in the color histogram . this results from the quantization problem wherein shades between two colors must be associated with one of the two colors . clipping is detected by searching for certain peaks in the histogram which are indicative of clipping . such peaks normally occur at high or low light intensity levels and appear as a line on the histogram . such lines in the histogram usually indicate that too much detail has been lost in the quantization process from the high resolution of film to the lower resolution of digital video . the software can search for the slope of the line between pixel points having high or low light intensity levels to determine if clipping is occurring . one method of implementing the constraint is to identify a minimum slope in a set number of directions from a pixel for compliance . another constraint is the noise level of the color information . noise occurs when similar exposure values from the film get mapped to very different color information values . like the banding problem , noise is reflected in the shape of the color histogram , in this case , by gaps in the dark areas which indicate that similar values on the film have been mapped by the settings to very different values in the video realm . the corresponding constraint refers to the absence of such gaps . the constraint may be defined by a difference measurement in color between neighboring groups of pixels , such that if the difference measurement exceeds a threshold the constraint is complied with . clipping , banding and noise are relatively more objectionable in dark regions than in bright ones because the eye is more sensitive to detail in dark areas . therefore , the constraints may be defined to be more sensitive for a certain black level . taking into account one or more of such phenomena leads finally to a series of constraints on the color histogram . a digitized version of each film frame is either created through an a / d conversion in a digitization device or a digitized version is imported which includes the color information ( step 402 ). the digital film is then segmented into clusters which may contain one or more frames ( step 403 ). the cluster may be manually selected by a human operator of the digitization device or the cluster may be automatically created based upon characteristics of the digital information as is known to one of ordinary skill in the art . in other embodiments , the film frames may be divided into clusters prior to conversion to the digital domain . further , it should be understood that the constraints may be defined after the clusters are determined and in some embodiments in which the constraints are cluster dependent this is the preferred sequence of steps . a cluster is then selected for processing ( step 404 ). controls of the digitization device are then automatically set to a first setting of a plurality of possible settings which alters the color information for the cluster ( step 405 ). it should be understood by one of ordinary skill in the art that the changes to the control settings may be done within a processor which is located within the digitization device . further , it should be understood that the number of control settings cannot be an infinite number for a practical implementation . as a result , the control space having control settings must be limited to a finite number of values . for instance , gain may have a scale from 0 - 1 . 0 which potentially has an infinite number of levels however the parameter may be defined in 0 . 001 increments such that there are 1000 finite levels . similarly , this would hold true for all color parameters that make up a single control setting . the adjusted color information is then analyzed to see if it complies with all of the constraints ( step 406 ). if the color information of the control setting does comply with all of the constraints then the control setting is saved ( step 407 ). if the color information does not comply with all of the constraints the control setting is discarded ( step 408 ) this process is continued iteratively until all of the possible settings which comply with the constraints are identified ( step 409 ). more specifically , let f 1 , f 2 . . . , f n denote the video frames corresponding to a cluster , and consider a standard red , green , blue color representation so that f n =( f n , r , f n , g , f n , b ), where in turn each of the three components is a mapping from a lattice of pixels l to a range of intensity values , for example { 0 , 1 , . . . , 255 } (“ 8 bit quantization ”) or { 0 , 1 , . . . , 1023 } (“ 10 bit quantization ”). suppose the lattice l is of dimension l × w . and let hist ( r , g , b ) represent the color histogram derived from the cluster . the histogram is based on n × l × w color samples and defined , for each color point ( r , g , b ) in { 0 , 1 , . . . 2 b − 1 } 3 , where b is the number of bits in each color channel , as follows : hist ( r , g , b )=( nlw ) − 1 #{( n , x , y )∈{ 1 , 2 , . . . , n }× l : f n ( x , y )=( r , g , b )} let θ represent the possible range of settings on the digitization device . thus each θ ∈ θ corresponds to one control setting . each such setting θ then determines a potentially different histogram . the dependence on θ will be denoted by writing hist ( r , g , b ; θ ). the constraints determine a subset of settings , namely those for which hist ( r , g , b ; θ ) displays the desired properties . let θ c ⊂ θ denote the collection of control settings which comply with the constraints . a score is then calculated for the control setting . ( step 410 ) the score is determined based upon the shannon entropy of the color information . the entropy provides the mutual information between the distribution of color in the digital representations subject to the constraints . this is true since each control setting may be regarded as a perturbation or quantization of the possible values of the film color , and hence as a function y = g ( x ) where the random variable x represents the original color information at a randomly chosen pixel . the distribution of x is dependent on the film content and after quantization the number of possible values is reduced to a finite number . the maximization of the mutual information between x and y is a quantization of original color values which produces a video color histogram sharing as much information as possible with the distribution of colors in the film representation . the optimal control setting is equivalent to the setting which maximizes the entropy of y among all allowable control settings . this can be shown by : i ( x , y )= h ( y )− h ( y | x ) where h ( y | x ) is the conditional entropy of y given x . since y is a function of x , the conditional entropy of y given x is zero i . e . h ( y | x )= 0 . consequently , maximizing the mutual information over all functions g is the same as maximizing the entropy h ( g ( x )) over all g . the entropy of g ( x ) depends only on the statistical distribution of g ( x ), which in turn depends only on the particular function ( control setting ) g since the distribution of x is fixed and needn &# 39 ; t be explicitly considered . where the sum runs all 2 3b allowable ( r , g , b ) values and log represents log base 2 . the process repeats until all of the settings complying with the constraints have assigned scores based upon the entropy of the color information for the cluster . an optimal setting is then determined . optimality is determined based upon the control setting with the highest score . the optimal setting is defined to be the one setting which satisfies the constraints which maximizes the shannon entropy . the corresponding histogram hist ( r , g , b ; θ *) then represents the digital representation which best matches the film representation subject to the constraints . the setting which provides the optimal score is preferably selected , although any setting , may be chosen which satisfies all of the constraints ( step 411 ). this process continues until a control setting is chosen for all of the clusters ( step 412 ). preferably the optimal control setting is selected for all clusters , although control settings which comply with all of the constraints may also be selected . to find the optimal control setting , optimization techniques which are known in the art may be employed , such as global optimization . when certain constraints do not provide a linear mapping , other optimization techniques , such as , gradient methods or sub - optimal solutions , such as maximizing the score over a subset of control settings may be employed . it should be understood by one of ordinary skill in the art that wide variety of optimization techniques may be employed depending on the constraint functions . the method thus adjusts the settings in order to maximize the entropy of the color histogram , but confining the search over settings to those which implement the constraints . in another embodiment as shown in fig5 , the method for determining the optimal control setting is determined by first iteratively processing control settings until a control setting is found which meets all of the constraints ( step 501 ). next , the entropy of that control setting is determined as expressed above ( step 502 ). another set of control settings , proximate to the original set of control settings in the control space is then selected ( step 503 ). the entropy is calculated for the proximate settings . ( step 504 ). the entropy values are then compared . ( step 505 ). the control setting with the greater entropy is selected and saved . ( step 506 ). the process repeats to step 503 wherein another proximate control setting is selected from the control space . this process iteratively continues until the control setting in the control space which exhibits the maximum entropy is found ( step 507 ). computer code for searching for a maximum value is well known in the art and may be accomplished using many well known techniques . in an alternative embodiment , the disclosed apparatus and method for automated color control may be implemented as a computer program product for use with a computer system including digitization devices . such implementation may include a series of computer instructions fixed either on a tangible medium , such as a computer readable medium ( e . g ., a diskette , cd - rom , rom , or fixed disk ) or transmittable to a computer system , via a modem or other interface device , such as a communications adapter connected to a network over a medium . the medium may be either a tangible medium ( e . g ., optical or analog communications lines ) or a medium implemented with wireless techniques ( e . g ., microwave , infrared or other transmission techniques ). the series of computer instructions embodies all or part of the functionality previously described herein with respect to the system . those skilled in the art should appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems . furthermore , such instructions may be stored in any memory device , such as semiconductor , magnetic , optical or other memory devices , and may be transmitted using any communications technology , such as optical , infrared , microwave , or other transmission technologies . it is expected that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation ( e . g ., shrink wrapped software ), preloaded with a computer system ( e . g ., on system rom or fixed disk ), or distributed from a server or electronic bulletin board over the network ( e . g ., the internet or world wide web ). of course , some embodiments of the invention may be implemented as a combination of both software ( e . g ., a computer program product ) and hardware . still other embodiments of the invention are implemented as entirely hardware , or entirely software ( e . g ., a computer program product ). although various exemplary embodiments of the invention have been disclosed , it should be apparent to those skilled in the art that various changes and modifications can be made which will achieve some of the advantages of the invention without departing from the true scope of the invention . these and other obvious modifications are intended to be covered by the appended claims .