Jump to content

Film vs Digital - Dynamic Range


Recommended Posts

<blockquote>

<p>Vijay>> If you used a 16 bit ADC and mapped 0 to black and 65,525 to white, you'd still see the exact same dynamic range from the paper print.<br>

Bernie: Yes, but you'd still only see a max of 16 stops represented. (remember Vijay, STOPS is what is important in this discussion).</p>

</blockquote>

<p>Then you didn't get the point of the experiment. If you take two values like 000000 and FFFFFF, you effectively have <em>one bit</em> of information, not sixteen. The point was to show you how one bit mapped to a dynamic range larger than one stop.</p>

 

<blockquote>

<p>Vijay>> You want to build, next to each other, a staircase and a ramp that go from the ground to 10 feet up. Your dynamic range is the 10 feet<br>

No it's not. 10/0 = infinity (or 'not defined'). Not that I want to keep using pure engineering terms, but this was to show you a flaw in your analogy.</p>

</blockquote>

<p>Thats exactly true. Its an infinite dynamic range without the carpet. Exactly as it is for electronic devices; if the noise floor is at zero, it translates to infinite dynamic range. Sorry for the imprecision in my language before, I was tired last night.</p>

Link to comment
Share on other sites

  • Replies 900
  • Created
  • Last Reply

Top Posters In This Topic

<p><em>Helen: I got that from your table. Then I used your data to illustrate a point and you told me that my data was wrong! AAAAAAAAAGH. What's the point?</em></p>

<p>And I already explained why you had to choose endpoints the way I described. You used my data, but interpreted it incorrectly and I pointed that out. I also showed you that what you were pointing out was just the error margin of the quantization and if you went from 14 to 16 bits and chose one step up from bottom and one step down from top, it wouldn't make an appreciable difference to the dynamic range (like 2 stops worth).</p>

 

Link to comment
Share on other sites

<blockquote>

<p>Helen: There's no such discrete quantity as 'four stops of tonal information' other than a dynamic range.</p>

</blockquote>

<p>True, and my mistake. Last night I was tired and said stuff that is not precise or not true. I meant 4 bits worth of tonal information; i.e., sixteen tones. Map those tones to anything - no relation to stops at all. Thanks for pointing it out.</p>

Link to comment
Share on other sites

<p>Helen,</p>

<p><em>"The ADC may only know the top of the lowest riser and the bottom of the top riser."</em></p>

<p>I think that you meant 'the output from the ADC can only tell you the top of the lowest riser and the bottom of the top riser'. Maybe you were in a rush, or maybe you are just clueless.</p>

<p>Best,<br>

Helen</p>

Link to comment
Share on other sites

<p>Vijay,</p>

<p>I chose the endpoints for exactly the reasons I explained. (referring to your 3-bit ADC example) Every input below 127 mV gets output as the lowest ADC output value and every input above 896 mV gets output as the highest output value. That was given in your data. Therefore you cannot set the lower limit any lower than 127 mV because you cannot know where it is from the information the ADC gives you. You cannot set the upper limit any higher than 896 mV because you cannot know where it is from the information the ADC gives you.</p>

<p>If you disagree with this, please explain how you can set any other upper or lower value as a valid limit, and what happens if that limit is exceeded (ie if you accept any wider limit you may as well call it infinity - which is a conclusion that has no practical use). Remember that 'out of range' just won't work for a camera (unless you want to challenge that, which you appear not to have done).</p>

<p>Best,<br>

Helen</p>

Link to comment
Share on other sites

<p>Helen, consider what happens if you have just one bit. This puts a threshold at 512 mV, so that 1 uV to just below 512 mV is encoded by the ADC as 0, and from 512 mV to just below 1023 mV is encoded as 1.</p>

<p>If we did what you said, we'd have to put the range limits as 512 mV and 512 mV; getting a dynamic range of 0. However, when the reproduction system reproduces the tones from the values 0 and 1, it reconstructs pure black and pure white (or the dynamic range of the paper or whatever); i.e., 1 uV and 1023 mV.</p>

<p>The point is that the same engineering convention for choosing range endpoints (that I described) is used for both the sampling system and the reconstruction system. Thats why you can't choose the values you chose for the sampling system.</p>

Link to comment
Share on other sites

<p>I think this thought experiment might settle things. Consider the simple limiting case of a 1-bit ADC. Let's assume we have a 5 stop scene, a 5 stop imaging sensor producing an output of 0 to 1 volts, and a 1-bit ADC with an input range of 0 to 1 volts. Any pixels in the highest of the 5 stops will result in the sensor producing a voltage between 0.5 and 1 volts which will result in the ADC outputting a value of 1. Any pixels that are found in the lower 4 stops will result in the sensor producing a voltage between 0 and 0.5 volts which will result in the ADC outputting a 0. I think we are all agreed on this.<br /> <br /> What does the ADC output of 1 represent? Pure white?<br /> Now for the important question: What does the ADC output of 0 represent?<br /> <br /> According to Bernie's line of thought, the 0 would represent the second highest stop, and the resulting print will be very high key. But, if the ADC output is interpreted to match its input, then the 0 output should be interpreted as black (or the darkest stop), resulting in black and white ortho-litho print (with the full 5 stop range, although with no gray tones in the middle).</p>

<p>(Actually, I'm not sure where the dividing line typically falls for an ortho-litho image -- just below the highest stop, or in the middle stop?)</p>

Link to comment
Share on other sites

<p>A one-bit system can't be said to be linear or logarithmic or anything, because there is no proportional response. There is only one change in input that produces a change in output. Therefore it can't really be used as an example, I think - it will only mislead...</p>

<p>I think that Vijay is confusing the dynamic range that a device can handle with the dynamic range that a device will respond to. They may not be the same thing, as demonstrated by the examples he gave. His example ADC can handle a higher dynamic range than it responds to. That is not unusual.</p>

<p>Best,<br>

Helen</p>

Link to comment
Share on other sites

<blockquote>

<p>Rob: I think this thought experiment might settle things.</p>

</blockquote>

<p>One can only hope. (Let me put forward the other half of the story, that of the DAC; maybe that will clarify things somewhat.)</p>

<p>Keep in mind that when reconstructing the analog equivalent of the binary codes, an n-bit DAC (digital to analog converter) will split up its own output voltage range in exactly 2^n - 1 equal steps; when it sees a binary code of 0000, it immediately makes its output voltage 0 (or more precisely, at its own noise floor); when it sees 1111, it will put out the max voltage it can - say 8 V (purposely kept different from our 1024 mV of the ADC to show that there need be no relation between the input of the ADC and the output of the DAC) and so on.</p>

<p>Thus, the DAC in the path that finally interprets the binary value and prints out a tone or lights up monitor pixels will place 0 and FFFF at the extremes of its own output dynamic range, and if multiple stops end up squashed on the same tone, so be it.</p>

<p>So if you take a 1 bit ADC that takes 10uV - 512 mV and converts it to 0; and 512 mV to 1024 mV and converts it to 1 and you feed this to a one bit DAC whose output dynamic range is 0 to 100 V, then it will convert the binary 0 to 1 uV (or its noise floor), and the binary 1 to 100 V.</p>

<p>If you take the DAC's output and feed it to a CRT or to a printer, you will get black and white; the full dynamic range that the monitor or paper can handle.</p>

Link to comment
Share on other sites

<blockquote>

<p>Helen: A one-bit system can't be said to be linear or logarithmic or anything, because there is no proportional response.</p>

</blockquote>

<p>A switching system isn't linear to begin with. It is a sampled, discrete time, discrete value system that is used as a representation of a linear system. Proportional is an incorrect term to apply here; a binary value is "proportional" because you interpret it to be so. It is a sampled system, and the samples are stored as binary codes. You could store them as the Roman alphabet if you wanted, as long as there existed a device that could convert back to voltages.</p>

<p>Consider what happens if you divide a range into three steps instead of four. Now no halving or doubling (as in stops) will ever get you an accurate binary output. Yet the ADC is "linear" because the step size is constant.</p>

 

<blockquote>

<p>Therefore it can't really be used as an example, I think - it will only mislead...</p>

</blockquote>

<p>I'm sorry, the theory of discrete time and discrete value systems doesn't forbid using 1-bit ADCs or DACs or whatever. The theory is exactly the same regardless of bits. In fact if you open up a textbook on discrete time and discrete value systems, you'll find hundreds of formulae dealing with every aspect including linearity - that generalize to n bits, n being any natural number.</p>

<p>So I disagree, the 1-bit example doesn't mislead, it only serves to enlighten.</p>

 

<blockquote>

<p>I think that Vijay is confusing the dynamic range that a device can handle with the dynamic range that a device will respond to.</p>

</blockquote>

<p>I don't see the distinction, because the ADC is useless without the DAC; you can't <em>see</em> binary values, so they have to be converted back to voltages or tones. DACs follow the same conventions as ADCs; they use the range endpoints as I described. So if DACs don't see the distinction, neither do I.</p>

 

<blockquote>

<p>His example ADC can handle a higher dynamic range than it responds to. That is not unusual.</p>

 

</blockquote>

<p>Sure, but the DAC treats it as if it were the dynamic range "handled" rather than "responded to"; actually the DAC makes no such distinction.</p>

 

Link to comment
Share on other sites

<p>Vijay,</p>

<p><em>"So if you take a 1 bit ADC that takes 10uV - 512 mV and converts it to 0; and 512 mV to 1024 mV and converts it to 1 and you feed this to a one bit DAC whose output dynamic range is 0 to 100 V, then it will convert the binary 0 to 1 uV (or its noise floor), and the binary 1 to 100 V.</em><br>

<em>If you take the DAC's output and feed it to a CRT or to a printer, you will get black and white; the full dynamic range that the monitor or paper can handle."</em></p>

<p>That tells you absolutely nothing about the signal that was input to the original ADC other than some of it was below 512 mV and some of it was above 512 mV. That is all it tells you.</p>

<p>Best,<br /> Helen</p>

Link to comment
Share on other sites

<p>Vijay,<br>

 <br>

<em>"I don't see the distinction, because the ADC is useless without the DAC; you can't <em>see</em> binary values, so they have to be converted back to voltages or tones. DACs follow the same conventions as ADCs; they use the range endpoints as I described. So if DACs don't see the distinction, neither do I."</em><br>

 <br>

In the post that you are responding to I did not mention a DAC, I simply referred to an ADC. You added the DAC. You keep doing this - you add things in to my posts that aren't there. Why why why?<br>

 <br>

I'll try again. I believe that you are confusing the input range that an ADC can tolerate with the input range that produces a response - ie a change in the output. You gave an example of a 3-bit ADC that changed the output from 0 to 1 when the input changed from 127 mV to 128 mV; and from 6 to 7 when the input changed from 895 mV to 896 mV. The ADC could accept a signal higher or lower than that, but the output would not change. I don't mind if you want to change those values - it is the principle I'm still trying to get across. There is no point in quoting a wider input range than the input range that will cause a change in the ADC output. That is a very simple, but important concept. DACs have nothing to do with it, and I did not mention them.<br>

 <br>

Best,<br>

Helen</p>

Link to comment
Share on other sites

<blockquote>

<p>Helen: That tells you absolutely nothing about the signal that was input to the original ADC other than some of it was below 512 mV and some of it was above 512 mV. That is all it tells you.</p>

 

</blockquote>

<p>I know it tells you nothing more but this is consistent with information theory. You <em>do</em> throw away information. If you choose a 1-bit system it throws away lots of information. If you want it to tell you more (i.e., give you more information about intermediate tones) then you have to increase the bit depth. Of course the information content of an 8-bit sampled system is higher than an equivalent 1-bit sampled system. This has to do with number of tones but not dynamic range of either the input (input of the ADC) or the output (the output of the DAC).</p>

<p>This is why a convention is in place that is used throughout the theory of sampled and switched systems: interpret that as the maximum of that range. DACs follow this convention for the reconstruction process. Indeed if they didn't, they couldn't ever recreate the two ultimate steps of a range. Actually its not even a convention: it is about continuity of ranges as I previously explained.</p>

<p>So yes, if you input 511 mV and 513 mV to the ADC, after reconstruction you'd get back Vmin and Vmax from the DAC. The quantization error in this case is huge; spanning half the entire range, but the working of the system treats a range of 511 mV - 513 mV as exactly the same as 10 uV - 1024 mV, i.e., the full dynamic range.</p>

<p>There is no confusion here; it is the way we design electronics; it is consistent with what happens regardless of bit depth; so that a consistent theory may be built for switching systems that does not vary based on the bit depth chosen.</p>

Link to comment
Share on other sites

<p>That confirms it. You are confused about why it is very important to realise the difference between the input range that an ADC can handle and the input range that produces a change in the ADC's output, and I have no idea how to explain it another way right now. Maybe someone else could try. This might be the crux of the problem.</p>

<p>Best,<br /> Helen</p>

<p>PS</p>

<p><em>"I know it tells you nothing more but this is consistent with information theory."</em></p>

<p>That is priceless. I couldn't agree more.</p>

Link to comment
Share on other sites

<blockquote>

<p>In the post that you are responding to I did not mention a DAC, I simply referred to an ADC. You added the DAC. You keep doing this - you add things in to my posts that aren't there. Why why why?</p>

</blockquote>

<p>The conversation doesn't have to be limited in scope to only the terms that you use or that are currently in use, Helen. If I'm called to explain something, I may have to invoke something that is external but relevant to the current conversation. You are arguing with me about something that is a very well understood component and telling me how it <em>should</em> or <em>might</em> work; yet I have designed these components and so have others who are telling you how they <em>actually</em> work.</p>

<p>If you are an electrical engineer specializing in information theory or discrete time signal processing, then you should know exactly what I'm getting at. If you are not, then relax, I'm trying to elucidate the design of such systems - don't treat this as if it were an argument with limits or bounds. It is a process of learning, please accept it that way.</p>

<p>DACs have everything to do with it, I'm afraid. You see final tones on a print or monitor. It is DACs that interpret binary codes and make out of it something that you see. You can't argue about ADCs and final tones on a print without considering what the DAC in the chain might be doing.</p>

<p>Your argument about ranges couldn't be answered without invoking DACs because you didn't realize that not having range discontinuities is by itself the reason to choose range endpoints as I described. I tried, didn't get across, so I went the DAC route.</p>

Link to comment
Share on other sites

<blockquote>

<p>That confirms it. You are confused about why it is very important to realise the difference between the input range that an ADC can handle and the input range that produces a change in the ADC's output, and I have no idea how to explain it another way right now. Maybe someone else could try. This might be the crux of the problem.</p>

 

</blockquote>

<p>In engineering we don't care about the difference. If someone else thinks differently, please provide some reference material so I can educate myself better. Merely <em>stating</em> that the difference is "very important" isn't enough.</p>

Link to comment
Share on other sites

<blockquote>

When you are in a hole, stop digging. At least for a while.

 

 

</blockquote>

<p>Sorry Helen, for all your apparent sophistication of language you haven't argued from a position of <em>knowledge</em> . You have merely argued; so you see the hole but fail to see who's in it.</p>

<p>If you have the knowledge, the proof of my position is simple: <em>a dynamic range is a max and a min, which is two states, which only needs one bit to represent.</em></p>

<p>If you feel the need to argue further after this statement, you display a lack of knowledge.</p>

<p>I am not saying this to insult you, Helen. I'm saying it so that you stop with your hostility and continue this discussion in a manner befitting technical people.</p>

Link to comment
Share on other sites

<p>Wow, I see you all been at it while I had a little sleepy. Even though I said I will bow out, I thought I might just address a couple of things. I'll mainly address Rob's stuff, but first I wanted to point out something Vijay said. Vijay in your 1 bit example where you were essentially doing a reductio ad absurdum on choosing the limits in your system for DR purposes, you said the lower and upper limit would be 512mV and DR would be 0. Even though I technically don't care about DR anymore, that is wrong isn't it. DR would be max/min = 512/512 = 1.</p>

<p>Robs stuff:</p>

<blockquote>

<p>I think this is wrong (and this gets to the heart of the matter). The number of stops I could distinguish is determined by the range that the 8-bit print is capable of displaying. If the 8-bit ADC is fronted by an imaging sensor capable of recording a 50 stop scene and the printer is capable of printing over 50 stops, then the max value that travels through this system will represent a tone that is 50 stops greater than the tone represented by the minimum value, and this will be expressed in the print (regardless of the number of bits in the ADC).</p>

 

</blockquote>

<p>Rob this is a wrong interpretation. You need to set out an example on paper and place the top of the brightest stop at just clipping, and halve your way down the exposure scale. You will find that you can only show 8 stops of information as a max. If your printer is capable of printing over 50 stops, then it would require a 50 bit RIP. In my example I was using an 8bit printer. But if you want to use a 50 bit printer that is fine as well. What would happen is this: Your 8 stop digital file would be chopped up into 2^50 pieces. This doesn't mean it is now magically showing 50 stops of info. It also doesn't mean it is showing 50 bits of accurate info. Every 2^42nd level would contain the original data point out of the 8 bit ADC, and every level in between would be interpolated (ie. not real, made up). A further point on this matter follows from your other quote:</p>

 

<blockquote>

<p>But, if the ADC output is interpreted to match its input, then the 0 output should be interpreted as black (or the darkest stop), resulting in black and white ortho-litho print (with the full 5 stop range, although with no gray tones in the middle).</p>

 

</blockquote>

<p>There is inherent weirdness in an approach like this. You are saying a print with just black and white on it contains 5 stops of info. How exactly will you know this after the fact? If I gave you a print of a 10 stop scene captured with the same 1 bit ADC, it will look EXACTLY the same as the 5stop scene print in your analogy. It is IMPOSSIBLE to tell the difference after the fact. The only thing you can know for certain is that the scene contain at least 1 stop. Once again this is the point I have been making. For photographic purposes, you can only capture N stops of meaningful scene data with an N-bit ADC.</p>

Link to comment
Share on other sites

<blockquote>

<p>Bernie: DR would be max/min = 512/512 = 1.</p>

</blockquote>

<p>0 stops. Stops, Bernie, stops. Your favorite unit. I thought you'd recognize it even before I started saying the first syllable: s... (I forgot to mention it, sorry.)</p>

<p>Bernie - make a printer output a page that has its top half black and its bottom half white. Then use a spotmeter and read the reflected light values off from the black and white parts in EV. That is your dynamic range, in stops. How many bits does it need to store this information in digital form? Just one bit, because there are only two states to encode - black and white.</p>

<p>Many stops of dynamic range, one bit worth of tonal range (2 tones), one bit needed to record it. QED.</p>

Link to comment
Share on other sites

<blockquote>

<p>Bernie - make a printer output a page that has its top half black and its bottom half white. Then use a spotmeter and read the reflected light values off from the black and white parts in EV. That is your dynamic range, in stops.</p>

 

</blockquote>

<p>I've already said I agree with this. The DR of the print or monitor has nothing to do with the DR of the scene.</p>

<p>Further to this (I think), I wanted to make a comment about this DAC business. While I'm technically not supposed to be caring, I wanted to add a bit of support to Helen's case. The DAC can only recreate as much information as is contained in the output from the ADC. I don't see the relevance of the DAC, except maybe for simplicity sake to say that the DAC can handle ALL the info coming off the ADC. If the ADC can only show say 8 stops of info, then the DAC, AT MOST, could only recreate 8 stops of scene referred info. The physical dynamic range of the print or monitor may far exceed this (or it may not), but this has nothing to do with scene referred data. The print/monitor will still only show show a max of 8 stops of scene data (but I agree that it may stretch this, interpolate it, compress it or whatever).</p>

Link to comment
Share on other sites

<p>Vijay,</p>

<p>OK, I'll have one more attempt.</p>

<p>Purpose: To demonstrate that there is an important practical distinction between the input range that an ADC can tolerate and the input dynamic range that an ADC responds to.</p>

<p>As the example, we will take Vijay's 3-bit ADC:</p>

<p><em>"Now if we move to a 3-bit ADC with the same input range, the table looks like:<br /> <br /> 1 uV - 127 mV : 0<br /> 128 mV - 255 mV : 1<br /> 256 mV - 383 mV : 2<br /> 384 mV - 511 mV : 3<br /> 512 mV - 639 mV : 4<br /> 640 mV - 767 mV : 5<br /> 768 mV - 895 mV : 6<br /> 896 mV - 1023 mV : 7<br /> <br /> Once again, the minimum is 1 uV and the maximum is 1023 mV, with the exact same DR."</em><br>

<em><br /> </em><br>

I have already explained that an 'out of range' signal will not work with an ADC (or CCD-PGA-ADC chain) used in a camera, and Vijay has not challenged that, so Vijay's table means that the ADC outputs as follows:</p>

<p>Input under 128 mV; output = 0<br>

Input 896 mV or over; output = 7</p>

<p>Vijay says that the dynamic range is 1023 mV/1 µV = 1 023 000:1<br>

An input of 1 µV will produce an output of 0, an input of 1023 mV will produce an output of 7.</p>

<p>That is the 'standard' way that the input range of an ADC is defined.</p>

<p>But think about it. Does this have any bearing on the discussion? I've suggested that the <em>Integer linear output from an ADC sets an intrinsic relationship between the bit depth and the maximum dynamic range (of the incoming signal) that can possibly be represented by those bits.</em></p>

<p>What sets the dynamic range that is represented by the output from this ADC? What does an output of 0 mean? It means nothing other than the incoming signal was below 128 mV. An input analogue value of 1 µV produces an output of 0. An input of 24.896 mV produces an output of 0. The lowest input signal that causes a change in the output is a change that occurs at 128 mV. That is the lowest input that can be considered as being represented (however coarsely) by the output. Nothing and nobody can analyse the output pixel value map and say 'The input value here was 1 µV', or 100 mV, or any other value below 128 mV. However the presence of two adjacent pixels, one of which has a value of 0 and one of which has a value of 1 could lead to the deduction that here the input value changed from one side of 128 mV to the other side of 128 mV and the output switched accordingly. 128 mV is represented in some manner. This cannot be said of any lower input voltage.</p>

<p>In the absence of any other value, 128 mV looks like the lowest input value that we can say is represented in some way by the output. If we choose any other lower input value, we can equally well choose any other value that is lower than 128 mV. If 1 µV, why not 0.5 µV? It would produce the same output of 0.</p>

<p>I will not bore you with the same argument at the other end, but using Vijay's numbers it comes out at 896 mV.</p>

<p>We have, therefore, two values: the lowest and the highest values that can be said to be represented by something in the output. The dynamic range that produces a response in the output is a mere 896/128 = 6.5.</p>

<p>Now it doesn't matter what the exact numbers are. What I am trying to get across is that in a camera, in terms of the output, it does not matter what the input range of the ADC is, but it does matter what the input range that causes a change in the output is.</p>

<p>Best,<br>

Helen</p>

 

Link to comment
Share on other sites

<p>Bernie, understand this: the dynamic range is lost the moment the first transducer comes into the picture. The output of the photodiodes is technically a function of their input, not equal to their input.</p>

<p>Then you go digital with an ADC - the digital side loses actual voltage information from the input - completely, regardless of whether it is a 14-bit ADC or a 1-bit ADC. The DAC now has to "create" a dynamic range in volts from binary or other codes. It can only do this by mapping a value (any value actually, but 0000 for convenience) to its minimum output; and a different value (any value, but FFFF for convenience) to its maximum output. Then comes the printer/paper combination. It has to convert volts to densities, and the dynamic range of that is different from that of the original scene. In fact tonal information is lost as well as regards which binary value maps to which exact color and density.</p>

<p>Because you lose information at every step, you have to <em>calibrate</em> your entire workflow. If that information had been preserved faithfully, you'd not need calibration at all.</p>

<p>Now when you say a DR of ten stops, why do you assume that intermediate stops of tonal information need to be present? It doesn't have to be a continuous scale. In fact, if there are just two tones that have 10 stops difference, the dynamic range is 10 stops. If you have a hundred tones in between, that doesn't change the endpoints or the dynamic range. It remains 10 stops.</p>

<p>You need more bits to represent more tones, but not the two endpoints. One bit carries enough information to distinguish two states that define dynamic range.</p>

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...