Patent Publication Number: US-9424626-B2

Title: Sigma-delta ADC with integrated raw image scaling filter

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This application relates generally to digital image scaling. More specifically, this application relates to a raw domain image scaling system and method that maintains Bayer consistency. 
     2. Description of Related Art 
     In a digital image capturing system, it is common that the resolution requirement for still image capture is higher than that of video output. In such a case, a high-resolution camera capable of supporting the resolution requirement of still image capture is often used. When the camera is used in video mode to produce a video output stream, the data is scaled down to suit the resolution of the video output. For example, a particular image sensor with 8 million pixels (megapixels or MP) can give 8 MP still images. For the same image sensor in video mode, a resolution of 1080×1920 pixels, or approximately 2 MP, may suffice to produce 1080p high-definition (HD) video. Therefore, in 1080p video mode, the image data is scaled down 3× both vertically and horizontally to provide the desired output resolution. 
     This scaling may be performed either in the raw domain or the RGB domain. An advantage of scaling the image data in the raw domain to the desired video resolution is that it reduces the number of pixels that must be processed through the system. As a result, a majority of processing blocks in an image pipeline or post-processing section can be operated at a lower clock rate than the clock rate required to support full-resolution processing. Operating the processing section at a lower clock rate has significant advantages in reducing electromagnetic interference and reducing power consumption of the system. These advantages are especially valuable in such applications as mobile imaging. 
     The raw scaling step can be interpreted as a filtering procedure which calculates a weighted average of selected input raw pixels to produce the values of the output raw pixels. The weights used and the pixels selected in the weighted averaging has a large impact on the quality of the output image. To optimize the quality of the output images, a raw domain image scaling method called a “Bayer-consistent raw scaling” (BCRS) method may be used. 
     When BCRS or another raw domain image scaling method is implemented in an image sensor, it is necessary to incorporate additional circuits, either in the analog domain or in the digital domain (or both), to generate the scaled raw pixels. As a result, it can become necessary to increase the size of the circuit inside the sensor and increase the power consumption of the sensor. 
     Accordingly, there is a need to incorporate BCRS or another raw domain image scaling method in the sensor in a manner so as to optimize the quality, and match the resolution of the sensor and display, without resulting in a significant increase in circuit complexity and power consumption. 
     BRIEF SUMMARY OF THE INVENTION 
     Various aspects of the present disclosure relate to a system and method for processing raw image pixel information. The system and method respectively include an integrated decimation filter and raw image scaling filter. The decimation filter operates in the time domain; for example, to calculate a weighted average of time samples. The raw image scaling filter operates in the spatial domain; for example, to calculate a weighted average of spatial samples. The raw image pixel information is modulated by a sigma-delta analog-to-digital modulator. 
     In this manner, various aspects of the present disclosure provide for improvements in at least the underlying technical processes of image capturing and image processing. 
     This disclosure can be embodied in various forms, including business processes, computer-implemented methods, computer program products, computer systems and networks, user interfaces, application programming interfaces, hardware-implemented methods, signal processing circuits, image sensor circuits, application specific integrated circuits, field programmable gate arrays, and the like. The foregoing summary is intended solely to give a general idea of various aspects of the present disclosure, and does not limit the scope of the disclosure in any way. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
       These and other more detailed and specific features of various embodiments are more fully disclosed in the following description, reference being had to the accompanying drawings, in which: 
         FIG. 1  illustrates an exemplary block diagram of an image sensor according to various aspects of the present disclosure. 
         FIG. 2  illustrates an exemplary color filter for use with various aspects of the present disclosure. 
         FIG. 3  illustrates an exemplary (½)× scaling operation according to various aspects of the present disclosure. 
         FIGS. 4A and 4B  respectively illustrate an exemplary sigma-delta analog-to-digital converter according to various aspects of the present disclosure. 
         FIG. 5  illustrates another exemplary sigma-delta analog-to-digital converter according to various aspects of the present disclosure. 
         FIG. 6  illustrates several noise-shaping curves according to various aspects of the present disclosure. 
         FIG. 7  illustrates an exemplary block diagram of an image sensor according to various aspects of the present disclosure. 
         FIG. 8  illustrates an exemplary filtering representation for scaling according to various aspects of the present disclosure. 
         FIG. 9  illustrates an exemplary set of (⅓)× optimized filter coefficient arrays for use with various aspects of the present disclosure. 
         FIG. 10  illustrates an exemplary (⅓)× scaling operation according to various aspects of the present disclosure. 
         FIG. 11  illustrates an exemplary (¼)× scaling operation according to various aspects of the present disclosure. 
         FIG. 12  illustrates an exemplary image sensor with a three-column shared ADC configuration according to various aspects of the present disclosure. 
         FIG. 13  illustrates an exemplary image sensor with a three-column shared dual-port ADC configuration according to various aspects of the present disclosure. 
         FIG. 14  illustrates an exemplary schedule of an integrated RISF/ADCF for calculating an output R pixel value according to various aspects of the present disclosure. 
         FIG. 15  illustrates an exemplary schedule of an integrated RISF/ADCF for calculating an output G 2  pixel value according to various aspects of the present disclosure. 
         FIG. 16  illustrates an exemplary schedule of an integrated RISF/ADCF for calculating an output G 1  pixel value according to various aspects of the present disclosure. 
         FIG. 17  illustrates an exemplary schedule of an integrated RISF/ADCF for calculating an output B pixel value according to various aspects of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, numerous details are set forth, such as flowcharts, data tables, and system configurations. It will be readily apparent to one skilled in the art that these specific details are merely exemplary and not intended to limit the scope of this application. 
     [Imaging System] 
       FIG. 1  illustrates an exemplary block diagram of an imaging system comprising an image sensor  100  and an image signal processor (ISP)  200 . 
     Image sensor  100  includes a pixel array  101 , including a plurality of pixels  102  arranged in rows and columns. Individual pixels  102  include pixel elements such as a photosensitive element (for example, a photodiode) and associated control circuits (for example, transistors). Image sensor  100  further includes an analog raw scaling circuit  103 ; one or more analog-to-digital converters (ADCs)  104 , which convert the pixel data values into digital form; a digital raw scaling circuit  105 ; and an output buffer  106 . 
     ISP  200  includes an input buffer  201 ; a raw domain processing circuit  202 ; a demosaic circuit  203 ; one or more RGB domain processing circuits  204 , including an RGB scaling circuit  205 ; and an output buffer  206 . Various circuits within ISP  200  are operatively connected to a memory buffer  207 . 
     While the imaging system as particularly illustrated includes multiple image scaling blocks, it should be understood that some of these scaling blocks may be omitted; for example, RGB scaling circuit  205  may only be necessary where image scaling is performed in the RGB domain after demosaicing. Depending on the specific implementation in a practical imaging system, only raw domain scaling or only RGB domain scaling may be present, or both may be included. Additionally, the scaling blocks are not limited to the particular order illustrated in  FIG. 1 ; for example, a raw domain scaling block may be included in raw domain processing circuit  202 . When multiple scaling blocks are present, the user or system designer will be able to configure the system to select a desired scaling configuration to suit the needs of the system such as frame rate, power consumption, clock speed, and the like. 
     Various components of the imaging system may be implemented either in hardware, software, or a mixture of both. Examples of hardware implementations include application specific integrated circuit (ASIC), field programming logic array (FPGA), other programmable logic circuits, discrete circuit elements, and the like. Examples of software implementations include firmware in an embedded chip, software in digital signal processors (DSP), software in a simulator, software in a graphics processing unit (GPU), software in a general purpose central processing unit (CPU), and the like. A mixture of hardware and software may also be used wherein some blocks in the image sensor of  FIG. 1  are implemented in hardware, with the remaining blocks implemented in software. 
     The processing systems and techniques described herein improve the functioning of the image sensor by allowing it to produce output images of high quality with fewer artifacts, using an implementation which requires fewer components and less power. 
     To provide for color images, a color filter array (CFA) is provided with image sensor  100 , so that each pixel gives a data value corresponding to a single primary color.  FIG. 2  illustrates a so-called “Bayer” CFA for use with image sensor  101 . In this example, R represents the pixels coated or provided with optical red filters, which therefore give only red pixel values. Similarly, B represents the pixels coated or provided with optical blue filters, which therefore give only blue pixel values. Both G 1  and G 2  represent pixels coated or provided with green optical filters, which therefore give only green pixel values. Because the green pixels sharing a row with red pixels and the green pixels sharing a row with blue pixels may have different pixel characteristics due to cross-talk and other reasons, they are labeled with the different notations G 1  and G 2 , respectively. While the Bayer CFA illustrated in  FIG. 2  uses an RGB layout, the CFA is not particularly limited in this regard. For example, other color arrangements are possible such as red/green/blue/white (RGBW); cyan/magenta/yellow (CMY); cyan/magenta/yellow/green (CMYG); and the like. 
     In  FIG. 2 , The RGB Bayer CFA comprises a tiled or repeating arrangement of 2×2 blocks  112  of pixels  102 , comprising an R pixel in the upper left corner thereof, a G 1  pixel in the upper right corner thereof, a G 2  pixel in the lower left corner thereof, and a B pixel in the lower right corner thereof. One of ordinary skill in the art will readily recognize that other orderings are possible, such as B/G 2 /G 1 /R, G 1 /R/B/G 2 , G 2 /B/R/G 1 , and the like, as well as other primary color combinations. 
       FIG. 3  illustrates a general example of a scaling method where N=2; that is, having a scaling factor of (½)×. Here, the output data has a resolution in both the row and column directions which is ½ the resolution of the input data. In this example, a Bayer input region of 4×4 is processed to produce a 2×2 Bayer output region. As illustrated in  FIG. 3 , input raw data  301  is converted into scaled output data  302  by applying a scaling transformation  303 , illustrated in more detail with regard to  FIG. 8  below. 
       FIG. 4A  illustrates an exemplary sigma-delta (also referred to as “delta-sigma,” “ΔΣ,” or “ΣΔ”) ADC  400  for use with an imaging system such as the imaging system described above with regard to  FIG. 1 . For example, ADC  104  shown in  FIG. 1  may be implemented using sigma-delta ADC  400  illustrated in  FIG. 4A . 
     Specifically,  FIG. 4A  illustrates a first-order sigma-delta modulator  400  in the time domain. Sigma-delta ADC  400  includes a difference circuit  401 , an integrator  402 , a threshold comparator  403  (for example, a 1-bit ADC), a 1-bit digital-to-analog converter (DAC)  404 , and a filter  405 . Here, filter  405  is an integrated decimation filter and image scaling filter, where the decimation filter operates in the time domain and the image scaling filter operates in the spatial domain. Sigma-delta ADC  400  may be represented by a sigma-delta modulator, corresponding to elements  401 - 404 , which outputs to filter  405 . 
       FIG. 4B  illustrates an exemplary waveform at points (i)-(v) of  FIG. 4A . For ease of explanation, input waveform (i) is illustrated as a constant voltage waveform over the summing interval, although this disclosure is not particularly limited in this manner. Waveform (ii) illustrates a stream of delta impulses output from 1-bit DAC  404 . Waveforms (i) and (ii) are input to difference circuit  401 , and output as waveform (iii) which is equivalent to (i)-(ii). This difference is integrated in integrator  402  to produce waveform (iv). Waveform (iv) is compared to a threshold or reference voltage (illustrated as a dashed line in  FIG. 4B ) in threshold comparator  403  to produce waveform (v). Specifically, threshold comparator  403  generates a pulse beginning when waveform (iv) crosses the threshold, and sustains the pulse until waveform (iv) returns across the threshold again. 
       FIG. 5  illustrates another exemplary sigma-delta ADC  500  for use with an imaging system such as the imaging system described above with regard to  FIG. 1 . For example, ADC  104  shown in  FIG. 1  may be implemented using a sigma-delta ADC  500  illustrated in  FIG. 5 . 
     Specifically,  FIG. 5  illustrates a second-order sigma-delta modulator  500  in the time domain. Sigma-delta ADC  500  includes a first difference circuit  501 , a first integrator  502 , a second difference circuit  503 , a second integrator  504 , a threshold comparator  505 , a 1-bit DAC  506 , and a filter  507 . As above, filter  507  is an integrated decimation filter and image scaling filter, where the decimation filter operates in the time domain and the image scaling filter operates in the spatial domain. Sigma-delta ADC  500  may be represented by a sigma-delta modulator, corresponding to elements  501 - 506 , which outputs to filter  507 . 
     In other words, first-order sigma-delta ADC  400  contains a single differentiator-integrator pair and second-order sigma-delta ADC  500  contains two differentiator-integrator pairs in sequence. This can be extended to higher orders; for example, a third-order sigma-delta ADC will contain three differentiator-integrator pairs in sequence, a fourth-order sigma-delta ADC will contain four differentiator-integrator pairs, and so on. 
       FIG. 6  illustrates a comparison between noise-shaping curves of different-order sigma-delta modulators.  FIG. 6  represents the output corresponding to waveform (v) of  FIG. 4A  in the frequency domain. In  FIG. 6 , the vertical arrow represents the signal (that is, the waveform). The dashed line at frequency f d  represents conversion frequency of the decimation filter to which waveform (v) is output. The dashed line at frequency f s  represents the modulator&#39;s sampling frequency. 
       FIG. 6  also shows three noise-shaping curves: curve ( 1 ) corresponding to a first-order sigma-delta modulator; curve ( 2 ) corresponding to a second-order sigma-delta modulator; and curve ( 3 ) corresponding to a third-order sigma-delta modulator. As apparent from  FIG. 6 , higher-order sigma-delta modulators better confine the noise spectrum to higher frequencies and thus make it easier to filter out this noise. 
       FIG. 7  illustrates an exemplary implementation of the ADCs described in  FIG. 5 . Specifically,  FIG. 7  illustrates an image sensor  700  which is similar to image sensor  100  described above, except that elements  103 - 105  are implemented as a plurality of second-order sigma-delta ADCs  500 - 1  to  500 - n . For clarity of explanation, only two of the n sigma-delta ADCs are explicitly illustrated. 
     In  FIG. 7 , filters  507 - 1  to  507 - n  are illustrated as being downstream from the delta-sigma modulators. In this manner, raw scaling in the digital domain may be performed. Alternatively or additionally, filters may be placed upstream from the delta-sigma modulators so as to perform raw scaling in the analog domain. In implementations where filters are placed both upstream and downstream from the delta-sigma modulators, greater scaling flexibility may be achieved. For example, one can choose to filter either in the analog or digital domain, or may filter particular pixels (for example, filtering in the horizontal direction) in the analog domain and other pixels (for example, filtering in the vertical direction) in the digital domain. 
     As illustrated in  FIG. 7 , filters  507 - 1  to  507 - n  include decimation filters used to calculate the multi-bit output values from the outputs of the corresponding sigma-delta modulators. Specifically, the decimation filters respectively calculate weighted averages of time samples. Filters  507 - 1  to  507 - n  also include raw image scaling filter (RISF) circuits, which process the input raw pixels to give output raw pixels at the desired output resolution. Specifically, the RISF circuits calculate weighted averages of spatial samples. During operation, the RISF circuits calculate weighted averages of selected input raw pixels using filter coefficient values (as will be described in more detail below) for raw image scaling to give the output raw pixels. For example, filter coefficient values according to the BCRS method can be used to achieve high output image quality. 
     [Scaling] 
     In practical imaging system implementations, the raw domain scaling method can be implemented either in hardware or software, or a mixture of both. For software implementations, the calculations in the scaling method can be implemented using embedded processors, digital signal processors, general purpose processors, software simulation units, and the like. For hardware implementations, the calculations in the scaling method can be implemented using digital means or analog means. Digital implementation in hardware uses digital logic elements such as gates, latches, arithmetic units, and the like. The logic elements can be included into an ASIC, an FPGA, discrete elements, or other programmable circuits. Analog implementation in hardware can include capacitive or resistive circuit elements such as summing junctions, voltage or current dividers, operational amplifiers, and the like. 
     The raw scaling method can be considered a filtering process followed by decimation. Scaling occurs according to a scaling factor (1/N)×, where a Bayer input region of 2N×2N is processed to produce a 2×2 Bayer output region. 
       FIG. 8  illustrates a filtering process where weighted averages of the input raw pixels are calculated as values of the output raw pixels. This is referred to as an RISF filtering as above. Particularly,  FIG. 8  illustrates raw image scaling for a scaling factor (½)×; that is, the resolution of the image in both the horizontal and vertical direction are reduced by a factor of ½ the resolution of the input data. In the particularly illustrated filtering procedure, the pixel values of each red pixel are considered to be in a red pixel array R defined as {r 1,1 , r 1,2 , r 2,1 , r 2,2 }. Red pixel array R is operated on by a red filter coefficient array H defined as {h0, h1, h2, h3} to provide an output red pixel R′. Specifically, each element of red pixel array R is multiplied by the corresponding element of red filter coefficient array H. That is, the coefficients in the red filter array are weights to be applied to the corresponding pixel values in the red pixel array. The products are then added together and divided by the sum of all elements of red filter coefficient array H to produce the output red pixel R′. Mathematically, this is represented by the following expression (1): 
     
       
         
           
             
               
                 
                   
                     R 
                     ′ 
                   
                   = 
                   
                     
                       
                         
                           r 
                           
                             1 
                             , 
                             1 
                           
                         
                         ⁢ 
                         h 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         0 
                       
                       + 
                       
                         
                           r 
                           
                             1 
                             , 
                             2 
                           
                         
                         ⁢ 
                         h 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         1 
                       
                       + 
                       
                         
                           r 
                           
                             2 
                             , 
                             1 
                           
                         
                         ⁢ 
                         h 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         2 
                       
                       + 
                       
                         
                           r 
                           
                             2 
                             , 
                             2 
                           
                         
                         ⁢ 
                         h 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         3 
                       
                     
                     
                       
                         h 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         0 
                       
                       + 
                       
                         h 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         1 
                       
                       + 
                       
                         h 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         2 
                       
                       + 
                       
                         h 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         3 
                       
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     Similarly, the pixel values of each green pixel in red rows are considered to be in a first green pixel array G 1  defined as {g1 1,1 , g1 1,2 , g1 2,1 , g1 2,2 } and are operated on by a first green filter coefficient array I defined as {i0, i1, i2, i3} to output first green pixel G 1 ′; the pixel values of each green pixel in blue rows are considered to be in a second green pixel array G 2  defined as {g2 1,1 , g2 1,2 , g2 2,1 , g2 2,2 } and are operated on by a second green filter coefficient array J defined as {j0, j1, j2, j3} to output second green pixel G 2 ′; and the pixel values of each blue pixel are considered to be in a blue pixel array B defined as {b 1,1 , b 1,2 , b 2,1 , b 2,2 } and are operated on by a blue filter coefficient array K defined as {k0, k1, k2, k3} to output blue pixel B′. In this example, four filter weights are used for each color and therefore four input pixels are used to calculate each output pixel value. The region of support (that is, the number and location of pixels used) for the RISF may be changed, and the scaling factor may also be changed. 
     BCRS utilizes optimized filter coefficients, which are described here.  FIG. 9  illustrates an exemplary set of optimized filter coefficient arrays for a scaling factor (⅓)×. The filter coefficients are applied to the raw pixels in the spatial domain. In other words, the respective grids shown in the arrays of  FIG. 9  represent the pixel coordinates where each rectangle corresponds to a raw pixel. 
     One of ordinary skill will recognize that raw domain image scaling methods other than BCRS can be used in the current invention to achieve efficient implementations. Changing the raw domain scaling method simply requires changing the numerical values of individual filter weights and/or the regions of support of the filter. 
     An example of BCRS with a scaling factor of (⅓)× (that is, N=3) is illustrated in  FIG. 10 . In this case, the input raw image is divided into tiles of size 6×6, and from each 6×6 input tile the scaling method calculates a 2×2 block of the output image. As illustrated, each 6×6 input tile  1010  is divided into four 3×3 sub-tiles  1011 - 1014  that respectively represent the physical area of virtual pixel  1021 - 1024  in a block  1020  of a virtual image sensor having a lower resolution equal to the scaled resolution. That is, the virtual image sensor would have ⅓ the resolution both vertically and horizontally compared to the actual image sensor used for capturing the raw image data. 
     Sub-tiles  1011 - 1014  are identified by the color of the corresponding virtual pixel  1021 - 1024 , under the assumption that the virtual image sensor uses the same Bayer CFA as the actual image sensor. For example, sub-tile  1011  is identified as an R sub-tile because it corresponds to virtual pixel  1021 , which is positioned where the R filter would be in a Bayer CFA on the virtual image sensor. Similarly, sub-tile  1012  is identified as a G 1  sub-tile, sub-tile  1013  as a G 2  sub-tile, and  1014  as a B sub-tile. 
     A similar example of BCRS with a scaling factor of (¼)× is illustrated in  FIG. 11 . That is, the input raw image is divided into tiles of 8×8, and from each 8×8 input tile the scaling method calculates a 2×2 output block. Here, each 8×8 tile  1110  is divided into four 4×4 sub-tiles  1111 - 1114  that respectively represent the physical area of a virtual pixel  1121 - 1124  in a block  1120  of a virtual image sensor having a resolution equal to ¼ the resolution both vertically and horizontally compared to the actual image sensor. 
     In both  FIGS. 10-11 , the geometric pixel centers of the virtual pixels  1021 - 1024  and  1121 - 1124  are indicated by dashed lines. The corresponding physical locations are indicated by arrows in input tiles  1010  and  1110 ; these are collocated with the centers of the sub-tiles  1011 - 1014  and  1111 - 1114 . 
     Mathematically, the scaling process can be written as a convolution according to the following expression (2): 
     
       
         
           
             
               
                 
                   
                     y 
                     ⁡ 
                     
                       ( 
                       
                         m 
                         , 
                         n 
                         , 
                         t 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         k 
                         , 
                         l 
                       
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                         w 
                         ⁡ 
                         
                           ( 
                           
                             
                               m 
                               - 
                               k 
                             
                             , 
                             
                               n 
                               - 
                               l 
                             
                           
                           ) 
                         
                       
                       ⁢ 
                       
                         x 
                         ⁡ 
                         
                           ( 
                           
                             k 
                             , 
                             l 
                             , 
                             t 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     In this convolution, w(k,l) represents the filter coefficients such as those described above with regard to  FIG. 9 , x(k,l,t) is the input pixel at location (k,l) at time t, and y(m,n,t) is the output raw pixel at location (m,n) at time t. Both the input and output raw pixel values x(k,l,t) and y(m,n,t) are written with an explicit dependence on time. The RISF is a spatial filter where weighted averages of neighboring pixel values are calculated. The RISF coefficients are not dependent on time (that is, they are constant with respect to time), and hence the time index is not needed in w(k,l). 
     The preferred filter is a decimation filter for sigma-delta modulation, and is a time domain filter which operates on the output samples from a sigma-delta modulator at an oversampling ratio β. A sinc filter of length β with filter weights equal to a scaled version of the sinc function, which corresponds to a box function in the frequency domain, is frequently used. Mathematically, this is written according to the following expression (3): 
     
       
         
           
             
               
                 
                   
                     x 
                     ⁡ 
                     
                       ( 
                       
                         k 
                         , 
                         l 
                         , 
                         t 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       x 
                       ⁡ 
                       
                         ( 
                         
                           k 
                           , 
                           l 
                           , 
                           
                             β 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             v 
                           
                         
                         ) 
                       
                     
                     = 
                     
                       
                         
                           ∑ 
                           
                             p 
                             = 
                             
                               - 
                               ∞ 
                             
                           
                           ∞ 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             1 
                             β 
                           
                           ⁢ 
                           
                             sinc 
                             ( 
                             
                               
                                 
                                   β 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   v 
                                 
                                 - 
                                 p 
                               
                               β 
                             
                             ) 
                           
                           ⁢ 
                           
                             q 
                             ⁡ 
                             
                               ( 
                               
                                 k 
                                 , 
                                 l 
                                 , 
                                 p 
                               
                               ) 
                             
                           
                         
                       
                       ≈ 
                       
                         
                           ∑ 
                           
                             p 
                             = 
                             
                               
                                 β 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     v 
                                     - 
                                     
                                       1 
                                       2 
                                     
                                   
                                   ) 
                                 
                               
                               + 
                               1 
                             
                           
                           
                             β 
                             ⁡ 
                             
                               ( 
                               
                                 v 
                                 + 
                                 
                                   1 
                                   2 
                                 
                               
                               ) 
                             
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             1 
                             β 
                           
                           ⁢ 
                           
                             sinc 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   
                                     β 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     v 
                                   
                                   - 
                                   p 
                                 
                                 β 
                               
                               ) 
                             
                           
                           ⁢ 
                           
                             q 
                             ⁡ 
                             
                               ( 
                               
                                 k 
                                 , 
                                 l 
                                 , 
                                 p 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     Above, q(k,l,p) is the output sequence from the sigma-delta modulator which are binary samples (either 0 or 1) at β times the Nyquist rate. Since the impulse response of a sinc filter has infinite length, it is frequently truncated in practice as shown in expression (3) above. For convenience in practical implementations, the impulse may be shifted by half a sampling period in the output and therefore may be represented by the following expression (3′): 
     
       
         
           
             
               
                 
                   
                     x 
                     ⁡ 
                     
                       ( 
                       
                         k 
                         , 
                         l 
                         , 
                         t 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       x 
                       ⁡ 
                       
                         ( 
                         
                           k 
                           , 
                           l 
                           , 
                           
                             β 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             v 
                           
                         
                         ) 
                       
                     
                     ≈ 
                     
                       
                         ∑ 
                         
                           p 
                           = 
                           
                             
                               β 
                               ⁡ 
                               
                                 ( 
                                 
                                   v 
                                   - 
                                   1 
                                 
                                 ) 
                               
                             
                             + 
                             1 
                           
                         
                         
                           β 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           v 
                         
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           1 
                           β 
                         
                         ⁢ 
                         
                           sinc 
                           ⁡ 
                           
                             ( 
                             
                               
                                 
                                   β 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       v 
                                       - 
                                       
                                         1 
                                         2 
                                       
                                     
                                     ) 
                                   
                                 
                                 - 
                                 p 
                               
                               β 
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           q 
                           ⁡ 
                           
                             ( 
                             
                               k 
                               , 
                               l 
                               , 
                               p 
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     3 
                     ′ 
                   
                   ) 
                 
               
             
           
         
       
     
     Either expression (3) or (3′) may be used, and the particular choice of expression does not impact the output signal as an accurate representation of the analog input. Other decimation filters are also possible and will be apparent to one skilled in the art. 
     From the above expressions, the output pixel from the image sensor after image scaling can be written according to the following expression (4): 
     
       
         
           
             
               
                 
                   
                     y 
                     ⁡ 
                     
                       ( 
                       
                         m 
                         , 
                         n 
                         , 
                         t 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         ∑ 
                         
                           k 
                           , 
                           1 
                         
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           w 
                           ⁡ 
                           
                             ( 
                             
                               
                                 m 
                                 - 
                                 k 
                               
                               , 
                               
                                 n 
                                 - 
                                 l 
                               
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           x 
                           ⁡ 
                           
                             ( 
                             
                               k 
                               , 
                               l 
                               , 
                               t 
                             
                             ) 
                           
                         
                       
                     
                     = 
                     
                       
                         
                           ∑ 
                           
                             k 
                             , 
                             1 
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             w 
                             ( 
                             
                               
                                 m 
                                 - 
                                 k 
                               
                               , 
                               
                                 n 
                                 - 
                                 l 
                               
                             
                             ) 
                           
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 p 
                                 = 
                                 
                                   
                                     β 
                                     ⁡ 
                                     
                                       ( 
                                       
                                         v 
                                         - 
                                         1 
                                       
                                       ) 
                                     
                                   
                                   + 
                                   1 
                                 
                               
                               
                                 β 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 v 
                               
                             
                             ⁢ 
                             
                               
                                 1 
                                 β 
                               
                               ⁢ 
                               
                                 sinc 
                                 ( 
                                 
                                   
                                     
                                       β 
                                       ⁡ 
                                       
                                         ( 
                                         
                                           v 
                                           - 
                                           
                                             1 
                                             2 
                                           
                                         
                                         ) 
                                       
                                     
                                     - 
                                     p 
                                   
                                   β 
                                 
                                 ⁢ 
                                 
                                     
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 q 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     k 
                                     , 
                                     l 
                                     , 
                                     p 
                                   
                                   ) 
                                 
                               
                             
                           
                         
                       
                       = 
                         
                       ⁢ 
                       
                         
                           ∑ 
                           
                             k 
                             , 
                             1 
                           
                         
                         ⁢ 
                         
                           
                             [ 
                             
                               
                                 ∑ 
                                 
                                   p 
                                   = 
                                   
                                     
                                       β 
                                       ⁡ 
                                       
                                         ( 
                                         
                                           v 
                                           - 
                                           1 
                                         
                                         ) 
                                       
                                     
                                     + 
                                     1 
                                   
                                 
                                 
                                   β 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   v 
                                 
                               
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 
                                   w 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         m 
                                         - 
                                         k 
                                       
                                       , 
                                       
                                         n 
                                         - 
                                         l 
                                       
                                     
                                     ) 
                                   
                                 
                                 ⁢ 
                                 
                                   1 
                                   β 
                                 
                                 ⁢ 
                                 
                                   sinc 
                                   ( 
                                   
                                     
                                       
                                         β 
                                         ⁡ 
                                         
                                           ( 
                                           
                                             v 
                                             - 
                                             
                                               1 
                                               2 
                                             
                                           
                                           ) 
                                         
                                       
                                       - 
                                       p 
                                     
                                     β 
                                   
                                   ⁢ 
                                   
                                       
                                   
                                   ) 
                                 
                               
                             
                             ] 
                           
                           ⁢ 
                           
                             q 
                             ⁡ 
                             
                               ( 
                               
                                 k 
                                 , 
                                 l 
                                 , 
                                 p 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     Above, the term enclosed in square brackets represents the impulse response of the sinc filter scaled by the weights of the raw image scaling filter.  FIG. 7  shows an image sensor where the RISF has been integrated into the ADCF. In particular, the integrated ADCF/RISF in  FIG. 7  implements the logic to first calculate the following expression (5): 
     
       
         
           
             
               
                 
                   
                     s 
                     ⁡ 
                     
                       ( 
                       
                         m 
                         , 
                         n 
                         , 
                         p 
                         , 
                         k 
                         , 
                         l 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         p 
                         = 
                         
                           
                             β 
                             ⁡ 
                             
                               ( 
                               
                                 v 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                           + 
                           1 
                         
                       
                       
                         β 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         v 
                       
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                         w 
                         ⁡ 
                         
                           ( 
                           
                             
                               m 
                               - 
                               k 
                             
                             , 
                             
                               n 
                               - 
                               l 
                             
                           
                           ) 
                         
                       
                       ⁢ 
                       
                         1 
                         β 
                       
                       ⁢ 
                       
                         sinc 
                         ( 
                         
                           
                             
                               β 
                               ⁡ 
                               
                                 ( 
                                 
                                   v 
                                   - 
                                   
                                     1 
                                     2 
                                   
                                 
                                 ) 
                               
                             
                             - 
                             p 
                           
                           β 
                         
                         ⁢ 
                         
                             
                         
                         ) 
                       
                       ⁢ 
                       
                         q 
                         ⁡ 
                         
                           ( 
                           
                             k 
                             , 
                             l 
                             , 
                             p 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
     For each pixel location in the input image, the integrated ADCF/RISF calculates the output samples using an accumulator that either sums the scaled sinc filter impulse response or skips the accumulation depending on the binary sample q(k,l.p). This step is possible and can be calculated very easily because the samples q(k,l,p) have values equal to either 1 or 0. After the ADCF has completed calculation of the inner summation, the outer summation indexed by k,l are calculated by the RISF by communicating the partial sums between the accumulators. In a column-based ADC where one ADC is provided for a small number (for example, three) of columns, the pixels flow sequentially into the ADC and hence the summation over k,l can be performed accordingly. 
     [Implementation] 
     Image sensors typically use many ADCs in parallel to perform analog-to-digital conversion of many pixels simultaneously, so that high frame rates can be achieved. For example, according to a “column ADC” architecture, one or a plurality of columns (one-column, two-column sharing, three-column sharing, etc.) are connected to a single ADC. 
       FIG. 12  illustrates an exemplary implementation according to a three-column sharing ADC architecture. Image sensor  1200  includes a pixel array  1201  divided into a plurality of rows and columns. Respective columns are connected to column circuits, of which three are illustrated. Each column includes a multiplexer  1202 , a sigma-delta ADC  1203 , and a filter  1204 . To facilitate processing the Bayer structured data as shown in  FIG. 2 , the first ADC (that is, ADC  1203 - 1 ) is arranged such that it is connected to columns 0 (the left-most column), 2, and 4 via multiplexer  1202 - 1 . Similarly, the second ADC (that is, ADC  1203 - 2 ) is arranged such that it is connected to columns 1, 3, and 5 via multiplexer  1202 - 2 . The arrangement of ADCs and multiplexers for the entire pixel array is repeated in a similar fashion across the array. 
       FIG. 13  illustrates another exemplary implementation using dual-port sigma-delta ADCs. A dual-port sigma-delta ADC is a sigma-delta ADC cell which includes two independent ADCs in a single unit. These are distinguished as Port A and Port B. As illustrated in  FIG. 13 , image sensor  1300  includes a pixel array  1301  and a plurality of column circuits (of which one is illustrated) comprising, for the illustrated column circuit, a multiplexer  1302 - 1 , a dual-port sigma-delta ADC  1303 - 1 , and a pair of RISF/ADCF filters  1304 - 1   a  and  1304 - 1   b . Columns 0-5 are routed into ADC  1303 - 1  via multiplexer  1302 - 1 , such that the signals from columns 0, 2, and 4 are fed through input port IN a  and columns 1, 3, and 5 are fed through input port IN b . The output from output port OUT a  is connected to integrated RISF/ADCF  1304 - 1   a , whereas the output from output port OUT b  is connected to integrated RISF/ADCF  1304 - 1   b.    
       FIG. 14  shows the schedule of operation for an integrated RISF/ADCF to produce the first output red pixel (for example, output pixel  1021  of  FIG. 10 ), using the optimized BCRS of  FIG. 9 . In this example, the ADC works in a three-column sharing structure (for example, the structure of  FIG. 12  or  FIG. 13 ), and therefore there are three timing phases where each phase corresponds to a column of pixels to which the ADC is connected. To illustrate the processing steps of  FIG. 14 , reference is made to  FIG. 10 . Prior to row 0 phase 0, the accumulators used to store the partial sums are reset. During row 0 phase 0, the sigma-delta ADC takes an input from the red pixel  1011  of  FIG. 10 . This pixel is labeled as R(0,0) in  FIG. 14 . The sigma-delta modulator, operating at an oversampling ratio β, generates β binary samples which are labeled as r(0,0,0) to r(0,0,β−1) in  FIG. 14 . During this time, the filter coefficient with a weight value of 13 is presented by the RISF to an accumulator. In this embodiment, the filter weight is used to scale the decimator filter (sinc or other decimation filter) coefficients. The logic in the filter is arranged such that the filter weight value is accumulated if a binary value r(k,l,m) equals 1, and skipped otherwise. In this case, the accumulator output is calculated as a weighted sum of the scaling filter weight (here, 13) multiplied by the binary output of the sigma delta output and the decimation filter coefficient. For ease of illustration, the decimator coefficients (for example, of the sinc filter) are not shown in the schedules of  FIGS. 14-17 . It will be understood that they are present and are scaled by the RISF weights. 
     When this is completed the filter goes to row 0 phase 1 where the red pixel at row 0 column 2 of  FIG. 10  is presented to the sigma-delta ADC. This is labeled as R(0,2) in  FIG. 14 . The sigma-delta modulator generates the binary samples labeled as r(0,2,0) to r(0,2,β−1) in  FIG. 14 . During this period, the filter weight value 13 is presented, which is used with the sinc filter weights in the accumulation of s(m,n,p,k,l) if a binary value r(k,l,m) equals 1 and skipped otherwise. This procedure is repeated during row 0 phase 2 as shown in  FIG. 14 , where the filter weight value for this period equals 3. 
     At the end of row 0 phase 2, the filter has accumulated partial sums for the output red pixel value. The first output R value is not completely determined at this point because rows 2 and 4 have not yet been processed according to the RISF. The next step is determined by the particular image sensor implementation. In a preferred implementation where the image sensor includes a sequencer so that pixel rows can be read out (that is, presented to the ADC) in any arbitrary ordering, the next rows to be read will be row 2 and then row 4. In this case, processing for the output red pixel continues with row 2 and row 4 as shown in  FIG. 14 , in a similar manner to the process for row 0. At the end of row 4 phase 2, the sum required by the RISF and ADCF are computed. The sum is then divided by 64 for the RISF (which can be implemented as a right shift operation) and finally divided by β as required by the ADCF. After this step, the computed R pixel value is sent to the output, and the accumulator is reset. 
     Similarly, the first output G 2  pixel ( 1023  in  FIG. 10 ) can be computed using a schedule as shown in  FIG. 15 . In this schedule, the reading out of the rows is arranged in an ordering such that row 5 is read out first, followed by row 3, and then row 1. This is preferred so that the filter weight values can be presented in the same ordering as in  FIG. 14 . Therefore, considering the calculation of the first output R and G 2  pixels, the first six rows are read out in this example in the order 0→2→4→5→3→1. 
     The row ordering 0→2→4→5→3→1 above is an example where the ordering of presenting the filter coefficients is fixed. Other row orderings can be used; for example, 0→2→4→1→3→5. In such a case, the ordering of presenting the filter weights will be changed accordingly. 
     In a three-column sharing structure, the G 1  and B columns use a separate ADC from the R and G 2  columns. The output G 1  and B pixels are computed by their respective integrated RISF/ADCF in a similar fashion.  FIGS. 16 and 17  show an exemplary schedule of the integrated RISF/ADCF for computing the R and G 2  pixels. In this example, pixels from column 5 are fed to the sigma-delta module prior to column 3, which is prior to column 1. This ordering can be controlled by the multiplexers in  FIG. 12 or 13 . 
     In sensor embodiments where rows of pixels must be read out in a top-to-bottom ordering, an integrated RISF/ADCF can be implemented with additional storage and logic elements. 
     For example, the case of the schedule of  FIG. 14  at a point where the partial sum calculations for row 0 phase 2 have been completed is considered. In this case, because row 1 must be read out before row 2, the partial sum after the calculations in row 0 (specifically, immediately after row 0 phase 2) must be stored. This requires a memory element to store the R partial sum from the three columns. After the R partial sum is stored, the accumulator in the RISF is reset, and the pixels in the first three columns of row 1 are fed to the ADC. A similar procedure occurs for the other ADCs working in parallel in the image sensor. The integrated RISF/ADCF follows the schedule for row 1 phases 0-2 as listed in  FIG. 15 . After row 1 phase 2, the partial sum for the first G 2  pixel is stored. Concurrently, other ADCs are performing similar operations and the partial sum for other G 2  pixels are stored, one for each three columns. At this point, the stored partial sums for the R pixels are respectively loaded into the corresponding accumulators, and the procedure continues from row 2 phase 0 in  FIG. 14 . This alternating procedure continues until the end of row 4 phase 2, at which point the value in each accumulator is right-shifted and divided as required by the RISF and ADCF. The resulting R values, one from each RISF/ADCF, are sent to the output. Thereafter, the G 2  partial sums are loaded into the accumulators, and the schedule for row 5 in  FIG. 15  is followed. After row 5 phase 2, the value in each accumulator is right-shifted and divided according to the RISF and ADCF. The resulting G 2  values are send to the output. 
     Operation of the integrated RISF/ADCF is described above for image sensor embodiments with a three-column sharing architecture, for two different types of pixel readout ordering. The method can be extended in a straightforward manner to image sensors with other ADC column sharing structures, other readout orderings, and for other scaling factors, as will be readily recognized in the art. 
     CONCLUSION 
     With regard to the processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claims. 
     Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent upon reading the above description. The scope should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the technologies discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the application is capable of modification and variation. 
     All terms used in the claims are intended to be given their broadest reasonable constructions and their ordinary meanings as understood by those knowledgeable in the technologies described herein unless an explicit indication to the contrary in made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary. 
     The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.