Abstract:
Film grain patterns can be modeled in the frequency domain by estimating the cut frequencies that define a 2D band-pass filter. The film grain parameters can be conveyed in accordance with the ITU-T H.264|MPEG-4 AVC standard in an SEI message allowing film grain reinsertion at a decoder.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application Ser. No. 60/498,945, filed Aug. 29, 2003, the teachings of which are incorporated herein. 
     
    
     TECHNICAL FIELD  
       [0002]     This invention relates to a technique for modeling film grain patterns in the frequency domain.  
       BACKGROUND ART  
       [0003]     Motion picture film typically contains signal-dependent noise, often referred to as film grain, resulting from the process of exposure and development of the photographic film. Such noise yields a characteristic quasi-random pattern or texture, caused by the physical granularity of the photographic emulsion. Alternatively, signal-dependent noise can occur as result of subsequent editing of the images. The grain pattern can be simulated for video compression purposes.  
         [0004]     The ITU-T H.264|MPEG-4 AVC video compression standard has accepted in its Fidelity Range Extensions Amendment the inclusion of a film grain SEI (Supplemental Enhancement Information) message. The film grain SEI message conveys a series of parameters allowing film grain simulation at the receiver. For the ITU-T H.264|MPEG-4 AVC compression standard, parameters in the SEI message can be specified according to two different models: the auto-regressive model and the frequency-filtering model. Both models allow characterizing the film grain pattern (size and shape), intensity and color correlation through different sets of parameters for different intensity levels. In particular, the frequency-filtering model characterizes the film grain pattern by specifying a set of cut frequencies that define a 2D band-pass filter in the frequency domain. Note that ITU-T H.264|MPEG-4 AVC only standardizes the syntax necessary to transmit the cut frequencies but does not provide a method for computing them for a video sequence with film grain.  
         [0005]     Thus, there exists a need for a technique allowing the automatic modeling of the film grain pattern in the frequency domain as specified by the frequency-filtering model in ITU-T H.264|MPEG-4 AVC compression standard. Results for this technique could be used either for automatic film grain modeling applications or as the initialization step for a film grain assisted-modeling process.  
       BRIEF SUMMARY OF THE INVENTION  
       [0006]     Briefly, in accordance with a preferred embodiment, there is provided a method for modeling (i.e., characterizing) film grain patterns in the frequency domain. The method comprises the steps of (1) transforming an set of homogeneous film grain samples received as an input to the process to the frequency domain, thereby yielding a set of transform coefficients having a particular pattern; (2) analyzing the pattern created by the transformed coefficients; and (3) estimating the cut frequencies of a 2D frequency filter that can effectively simulate the pattern of transform coefficients by filtering random noise. The cut frequencies established by this method can be conveyed in an SEI message in accordance with the ITU-T H.264|MPEG-4 AVC standard allowing film grain simulation and reinsertion at a decoder. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]      FIG. 1  depicts in flow chart form the steps of a method for characterizing film grain patterns in accordance with the present principles; and  
         [0008]      FIG. 2  depicts in flow chart form a variation of film grain characterization method of  FIG. 1 .  
     
    
     DETAILED DESCRIPTION  
       [0009]      FIG. 1  depicts in flow chart form the steps of a method in accordance with present principles for modeling a film grain pattern in the frequency domain upon receipt of a series of film grain samples representing a homogeneous film grain pattern. As discussed in greater detail hereinafter, the method of the present principles parameterizes the pattern of the input samples by analyzing the size and shape of the structures forming the grain. Because grain can form differently depending on film exposure, homogeneous film grain samples are typically those associated with similar luminance values measured on the film image. Film grain samples at the input of the process could be any group (or groups) of neighboring pixels that retains information about the film grain size and shape. In the illustrated embodiment, we will assume for simplicity that the film grain samples are arranged in square blocks of N×N pixels with a particular transform implementation based on a DCT of squared blocks of N×N pixels, although other transforms, such as a Fast Fourier Transform work equally as well.  
         [0010]     The method of the present principles assumes that modeling of the film grain present in I grain [x, y, c] occurs in accordance with the relationship: 
 
 I   grain   [x,y,c]=I   without grain   [x,y,c]+G[x,y,c]   (1) 
 
 where G[x, y, c] represents the simulated grain at pixel coordinates (x, y) for color component c. G[x, y, c] is computed as: 
 
 G[x,y,c]=p*Q[x,y,c]+u*G[x,y,c− 1]  (2) 
 
 where the parameter p is the standard deviation of the random noise and the parameter u models the cross-color correlation among different color components. More particularly, the term Q[c] comprises a two-dimensional random field generated by filtering blocks b of N×M random values, which have been generated with a normalized Gaussian distribution N(0,1). In a particular embodiment, the band-pass filtering of blocks b can be performed in the frequency domain by the following three steps: 
 
 Step 1: Transform 
 
 B=DCT   —   N×M ( b ) 
 
         [0011]     Step 2: Frequency Filtering  
                                                                                 for( y=0; y&lt;N; y++)                for( x= 0; x&lt;M; x++)                if ( (x &lt; LOW_HF &amp;&amp; y &lt; LOW_VF) ∥                x &gt; HIGH_HF ∥ y &gt; HIGH_VF)           B[x, y] = 0;                      
 
 where LOW_HF and LOW_VF are the low Horizontal and Vertical cut frequencies, respectively, and HIGH_HF and HIGH_VF are the high Horizontal and Vertical cut frequencies, respectively. The cut frequencies define the boundaries between preserved and filtered coefficients when a film grain image is mapped in the frequency domain and serve to characterize the size of the grain. 
 
 Step 3: Inverse Transform 
 
 b′=IDCT   —   N×M ( B ) 
 
         [0012]     Finally, Q[c] is formed by combining the filtered blocks b′ into a composite image. Low pass filtering of the block transitions will reduce possible “blockiness.” Although M and N could take any value, in practice squared blocks of 16×16, 8×8 or 4×4 pixels work best. Note also that other transforms, such as the Fast Fourier Transform (FFT), could replace the DCT process in Steps 1 and 3.  
         [0000]     By these principles, modeling the film grain patterns is equivalent to extracting the cut frequencies LOW_HF, LOW_VF, HIGH_HF and HIGH_VF that characterize the band-pass filter in the frequency domain.  
         [0013]     The method of the present principles commences upon execution of step  101 , in which each block of N×N pixels undergoes a Discrete Cosine Transform, with subsequent storage of the resulting arrays of N×N coefficients during step  102 . During step  103 , a check occurs to decide whether a need exists for more blocks with film grain samples in order to obtain more coefficients for storage. Ordinarily, all blocks of film grain samples available at the input undergo a transform. However, to reduce memory requirements or computational load, processing could stop after a certain number of blocks have undergone a transform. Following storage of a sufficient number of transformed blocks, step  104  occurs, whereupon a mean block (B mean ) is computed by averaging the coefficients from all the stored blocks. Assuming K as the number of stored blocks, the averaging process for the coefficient at position [x,y] can be formulated as follows:  
                 B   mean     ⁡     [     x   ,   y     ]       =       1   K     ⁢       ∑     i   =   0       K   -   1       ⁢       B   i     ⁡     [     x   ,   y     ]                   (   3   )             
 
 Next, steps  105  and  106  occur typically in parallel. During step  105 , a horizontal mean vector B H  is computed by averaging the N frequency coefficients of each row of B mean  in accordance with the relationship:  
                 B   H     ⁡     [   y   ]       =       1   N     ⁢       ∑     n   =   0       N   -   1       ⁢       B   mean     ⁡     [     n   ,   y     ]                   (   4   )             
 
 In a particular embodiment, it is possible to avoid the influence of the DC coefficient on the average of the first row with the relationship:  
           B   H     ⁡     [   0   ]       =       1     N   -   1       ⁢       ∑     n   =   1       N   -   1       ⁢       B   mean     ⁡     [     n   ,   0     ]               
 
 During step  106 , the vertical mean vector is computed by averaging the N frequency coefficients of each column of B mean  in accordance with the relationship:  
                 B   V     ⁡     [   x   ]       =       1   N     ⁢       ∑     n   =   0       N   -   1       ⁢       B   mean     ⁡     [     x   ,   n     ]                   (   5   )             
 
 In a particular embodiment, it is possible to avoid the influence of the DC coefficient on the average of the first column with the relationship:  
           B   V     ⁡     [   0   ]       =       1     N   -   1       ⁢       ∑     n   =   1       N   -   1       ⁢       B   mean     ⁡     [     0   ,   n     ]               
 
         [0014]     From the frequency vectors, selection of the horizontal and vertical cut frequencies occurs during steps  107  and  108 , respectively, to estimate the film grain size. As seen in  FIG. 1 , steps  107  and  108  typically occur in parallel. Horizontal cut-frequency selection during step  107  occurs in the following manner. First, the components in the horizontal mean vector undergo low-pass filtering to avoid spurious peaks. In the illustrated embodiment, such low pass filtering of the horizontal mean vector occurs by convolving the mean vector with a filter of impulse response h[n] in accordance with the relationship:  
                 B   H   ′     ⁡     [   n   ]       =         ∑     i   =   1     n     ⁢         B   H     ⁡     [   i   ]       ⁢     h   ⁡     [     n   -   i     ]           =       (       B   H     *   h     )     ⁡     [   n   ]                 (   6   )             
 
 For example, a 3-tap linear filter with coefficients w 0 , w 1 , and w 2  could be applied to each coefficient in accordance with the relationship: 
 
 B′   H   [n]=w   0   ·B   H   [n− 1]+ w   1   ·B   H   [n]+w   2   ·B   H   [n+ 1], 0 ≦n≦N− 1  (7) 
 
 Observe that in order to apply the filtering on the edges of the mean vector B it is necessary to pad the original mean vector so that the samples for n&lt;0 and n&gt;N−1 are defined. 
 
         [0015]     Next, the mean value of B′ H  is computed by averaging its components in accordance with the relationship:  
                     ⁢         B   _     H   ′     =       1   N     ⁢       ∑     n   =   0       N   -   1       ⁢       B   H   ′     ⁡     [   n   ]                     (   8   )             
 
 Thereafter, the vector B′ H  is represented as a curve, and its intersection points with the average value {overscore (B)}′ H  are computed. If a single intersection point is found, the index n of the closest component in B′ H  is chosen as the value of the horizontal high cut frequency; the horizontal low cut frequency is assumed to be 0. If two intersection points are found, the indexes of the closest components are found for each one. The lowest value will correspond to the low horizontal cut frequency whereas the highest value will correspond to the high horizontal cut frequency. If more than two intersection points are found, no spatial correlation is detected. The horizontal low cut frequency is assumed to be 0, and the horizontal high cut frequency is assumed to be N−1, indicating to the film grain simulation function that no frequency filtering is required to imitate the original grain. 
 
         [0016]     The same procedure described for selecting the horizontal cut frequency occurs during step  108  to select the vertical cut frequency using the vertical frequency vector B V . At the completion of steps  107  and  108 , the method of  FIG. 1  yields four cut frequencies (LOW_HF, HIGH 13  HF, LOW_VF, HIGH_VF) that characterize both the size and the elongation of the grain. Elongated grain occurs when LOW_HF≠LOW_VF and/or HIGH_HF≠HIGH_VF.  
         [0017]      FIG. 2  illustrates an alternative grain modeling method, where it is possible to constrain the grain to circular shapes. This implies that the horizontal and vertical cut frequencies remain the same. The method of  FIG. 2  contains many steps in common with the method of  FIG. 1 . Therefore, like reference numerals have been used in  FIG. 2  as in  FIG. 1  to describe like steps. The method of  FIG. 2  differs from that of  FIG. 1  in that, the vertical and horizontal frequency vectors (B H  and B V ) are averaged during step  109  of  FIG. 2  to create single frequency vector (B). Then, the same procedure is performed during steps  107  and  108  in  FIG. 2  to estimate low and high cut frequencies as is performed during steps  107  and  108  of  FIG. 1 .  
         [0018]     The foregoing describes a technique for modeling a film grain pattern in the frequency domain.