{"id":756,"date":"2015-05-30T02:05:35","date_gmt":"2015-05-30T00:05:35","guid":{"rendered":"http:\/\/eskerahn.dk\/?p=756"},"modified":"2023-01-10T12:25:51","modified_gmt":"2023-01-10T11:25:51","slug":"principal-idea-for-smarter-image-sensor-technology","status":"publish","type":"post","link":"https:\/\/eskerahn.dk\/?p=756","title":{"rendered":"Principal ideas for smarter image sensor technology"},"content":{"rendered":"<p>Currently the limitation in the amount of photons that can be caught versus the noise, set a limit for the dynamic range.<\/p>\n<p>But what if the sensor output could not be over saturated?<\/p>\n<p><a href=\"https:\/\/eskerahn.dk\/?p=756\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-757\" src=\"https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/SignalSaturationLimit-1024x833.png\" alt=\"SignalSaturationLimit\" width=\"640\" height=\"521\" srcset=\"https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/SignalSaturationLimit-1024x833.png 1024w, https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/SignalSaturationLimit-150x122.png 150w, https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/SignalSaturationLimit-300x244.png 300w, https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/SignalSaturationLimit.png 1166w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p>The ideas are as follows.<\/p>\n<h3>Record time for saturation<\/h3>\n<p>Imaging if each sub pixel could EITHER register the number <em>n<\/em> of incoming photons during the shutter time <em>T<\/em> <strong>OR<\/strong> the time <em>t<\/em> it took to reach the saturation <em>N<\/em>, and could signal either\u00a0<em>n<\/em> or <em>t<\/em> back with a flag for which it is.<\/p>\n<p>That way all non saturated cells would have an <em>n<\/em>\u2264<em>N<\/em> as usual, but for all over saturated, we <span style=\"text-decoration: underline;\">calculate<\/span>\u00a0<em>n<\/em> = <em>N<\/em> \u00d7 <em>T<\/em>\/<em>t<\/em> , note\u00a0<em>N<\/em> &lt; <em>n<\/em> since <em>t<\/em>&lt;<em>T<\/em><\/p>\n<p>This should be great for HDR, or post adjusting the levels.<\/p>\n<p>I imaging something like this: For a shutter time <em>T<\/em> an easily invertible signal \u0192(<em>t<\/em>)\u00a0 is supplied to all subpixels. Each subpixels have electronics that detects overrun (transistor?), and a way to store the height of\u00a0\u0192 (micro capacitor?) when this happens. A readout should then consist of either of the two, and a flag of which it is. For the calculated <em>n<\/em> = <em>N<\/em> \u00d7 <em>T<\/em>\/\u0192<sup>-1<\/sup>(\u0192(<em>t<\/em>))<\/p>\n<p>A simple choice could be \u0192(<em>t<\/em>) =K \u00d7 <em>t<\/em>\/T and thus\u00a0 <em>n<\/em> = <em>N<\/em> \u00d7 K \/\u0192<\/p>\n<p>Of course this would be more complex -and thus more expensive- than a traditional sensor, but if it could be done, we would get WAY more dynamic range, without any reduction in the quality of the signal for what is still below the saturation limit. There are no more noise introduced, as the normal signal is unchanged<\/p>\n<p>Sure there is a limit on this as well, depending on the granulation\/accuracy of the \u0192(<em>t<\/em>). If this is close to zero, or if discrete a few step-sizes, the calculation will be inaccurate &#8211; but still way better than current unknown level where we have no idea where between <em>N<\/em> and \u221e the output should have been.<\/p>\n<p>If even more dynamic range than the linear function offers is wanted, another \u0192(<em>t<\/em>) could be used. If it grows quickly, the risk of division by a small integer or inaccurate value is reduced.<\/p>\n<p>E.g. a scaled (square) root function could be used. \u0192(<em>t<\/em>) =K \u00d7 <sup>\u03b1<\/sup>\u221a(<em>t<\/em>\/T) , <em>n<\/em> = <em>N<\/em> \u00d7 (K\/\u0192)<sup>\u03b1<\/sup> &#8211; But I believe that would be overkill.<\/p>\n<p>&nbsp;<\/p>\n<h3>Different Bayer filter<\/h3>\n<p>Why not replace the standard <em>passing<\/em> R, G, G, B filters, with filters <em>blocking<\/em> R, G, B and InfraRed (Ir)?<\/p>\n<p>So the recorded signal would be: (IrGB, IrRB, IrRG, RGB)<\/p>\n<p>The sum of this will be 3 x IrRGB. Subtracting each from a third of this gives\u00a0 (R, G, B, Ir).<\/p>\n<p>(The number that should be used is most likely a tad over 3 due to non-sharp filters, but that is a calibration issue &#8211; though poor filters would reduce the SNR)<\/p>\n<p>The same interpolation patters using 4 cells as usual Bayer could be used<\/p>\n<p><a href=\"https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-772\" src=\"https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW-300x181.png\" alt=\"PixelGrid_CMYW\" width=\"300\" height=\"181\" srcset=\"https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW-300x181.png 300w, https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW-150x91.png 150w, https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW.png 848w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW_45.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-774\" src=\"https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW_45-300x204.png\" alt=\"PixelGrid_CMYW_45\" width=\"300\" height=\"204\" srcset=\"https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW_45-300x204.png 300w, https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW_45-150x102.png 150w, https:\/\/eskerahn.dk\/wp-content\/uploads\/2015\/05\/PixelGrid_CMYW_45.png 836w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Though of course subtraction is a bad thing talking SNR, so this <em>may<\/em> render the whole idea problematic.<\/p>\n<p>Apart from numeric rounding issues, it should keep the same dynamic range, as everything will be the same except twice as fast shutter speed to catch the same info.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Currently the limitation in the amount of photons that can be caught versus the noise, set a limit for the dynamic range. But what if the sensor output could not be over saturated?<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6,5,4],"tags":[],"class_list":["post-756","post","type-post","status-publish","format-standard","hentry","category-compact-cameras","category-phonesphablets","category-resolution-and-noise","category-various-tech-stuff"],"_links":{"self":[{"href":"https:\/\/eskerahn.dk\/index.php?rest_route=\/wp\/v2\/posts\/756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eskerahn.dk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eskerahn.dk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eskerahn.dk\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/eskerahn.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=756"}],"version-history":[{"count":8,"href":"https:\/\/eskerahn.dk\/index.php?rest_route=\/wp\/v2\/posts\/756\/revisions"}],"predecessor-version":[{"id":5090,"href":"https:\/\/eskerahn.dk\/index.php?rest_route=\/wp\/v2\/posts\/756\/revisions\/5090"}],"wp:attachment":[{"href":"https:\/\/eskerahn.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eskerahn.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eskerahn.dk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}