Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
after looking at this more than is healthy - i would say the difference in the noise iis due to the truncation of the bits making 12 bits look a bit darkerAs for the increased "coarse noise" observed may be coming from
additional pixels with the raw values between zero and four getting
clipped to zero. These are not necessarily issues with coarser
quantization of 12-bit vs 14-bit, if indeed all the structure noted
in the OP is due to clipping of blacks in Nikon raw data.
this is the 2 LSB's of the 14bit data - nothing else and shifted in
the program into a 16 bit value for import into photoshop
I was interested to see is it possible to extract a little more contours and textures from the above image , and used a quick method:
Wouldn't it be better to do the following mapping, assuming 0 is the clipping of ADC values 0 to k-1:I get something similar when I do the exercise (my random number is
really evenly split among 0-3):
http://theory.uchicago.edu/~ejm/pix/20d/tests/noise/dpr/0to3_randomize0s-2.jpg
The shading is happening because if you take a histogram of a small
patch of the couch before randomizing the zero values, it looks like
this:
0 1750
1 437
2 379
3 286
One clearly sees the effect of the clipping in the excess of pixels
having the value zero modulo four. And after adding a random number
in the range 0-3 to each pixel having the value 0 mod 4, a similar
(but not identical) patch from the same area has a histogram
0 459
1 959
2 926
3 805
I think I showed in a different example using a 1D3 (which does not clip blacks in the raw data), that if the data is not clipped, there is no structure in the last two bits; and that if one clips the blacks, a correlation between the average brightness and the last two bits is introduced. So in that example, any procedure that removes the effect of clipping the blacks must effectively randomize the last two bits entirely, and the remnants of the image must disappear.Wouldn't it be better to do the following mapping, assuming 0 is the
clipping of ADC values 0 to k-1:
if pixel = 0 then pixel = random(0, k-1)
else pixel = pixel + k
i.e., shift the non-zero pixels by k too. Then clip some low order
bits (it would help with k was a power of 2) and see what it looks
like?
Why not to make a thorough practical check of this? You need a night scene with lamps and deep shadows; and a little dcraw or DNG converter hack. Next, you need a 1D MkII and 1D MkIII to compare and of course to take it all to Canon forum.I think I showed in a different example using a 1D3 (which does notWouldn't it be better to do the following mapping, assuming 0 is the
clipping of ADC values 0 to k-1:
if pixel = 0 then pixel = random(0, k-1)
else pixel = pixel + k
i.e., shift the non-zero pixels by k too. Then clip some low order
bits (it would help with k was a power of 2) and see what it looks
like?
clip blacks in the raw data), that if the data is not clipped, there
is no structure in the last two bits;
i am not seeing a negative in your example - i see dark areas that are dark in the original picture still being dark - to me a negative would have light where it was dark before0 459
1 959
2 926
3 805
In other words you have pushed the excess of zero values and evenly
distributed the zeros among all four values, leaving a deficit of
zero values relative to the other three. Now one sees the negative
of the original clipped image.
Better would be to add a random number from 1-3 to the values that are zero; otherwise the regions that were zero will have less noise grain and might still be visible to the eye.however it still could be the zeros are skewing the data but perhaps
the solution is just to make the zeros a 2 and scale the LSB from 1-3
that would do as well, if you are talking about the original raw file vs any interpolated or processed version of it. Unless I'm overlooking another effect, it should be valid to throw out the corrupted data and examine the rest, at least statistically in patches. However, don't look at the interpolated data since that will have data with zeros interacting with nonzero data through the interpolation. Better to look at the individual green channels, eg using IRIS.or just look at a dark area and see if there are more 1 and 2 values
vice 3
OK.i can't do that right now but will give it a try in the near future
Well it makes sense, in theory because, those additional 2 bits in the 14-bit files also contribute to the intensity of a particular pixel. The 12 bit files don't have it, so a 14 bit pixel could be up to (2^2) (2^14) or 4/16384 or 0.0244140625% brighter than a 12-bit pixel.after looking at this more than is healthy - i would say the
difference in the noise iis due to the truncation of the bits making
12 bits look a bit darker
if you round up the 12 bit vaue - that is add 2 to the 14 bit before
truncating it appears brighter
I went back and did a more careful job analyzing the crease of the couch, both in the last two bits of the original raw green1 channel data, and in the version I posted with the zero values replaced by random numbers from 0 to 3. This time I overlayed the two so I could draw a crop from the same area and look at the histogram. In the original data one has for this crop from the couch cornerBetter would be to add a random number from 1-3 to the values thathowever it still could be the zeros are skewing the data but perhaps
the solution is just to make the zeros a 2 and scale the LSB from 1-3
are zero; otherwise the regions that were zero will have less noise
grain and might still be visible to the eye.
that would do as well, if you are talking about the original raw fileor just look at a dark area and see if there are more 1 and 2 values
vice 3
vs any interpolated or processed version of it. Unless I'm
overlooking another effect, it should be valid to throw out the
corrupted data and examine the rest, at least statistically in
patches. However, don't look at the interpolated data since that
will have data with zeros interacting with nonzero data through the
interpolation. Better to look at the individual green channels, eg
using IRIS.
Sorry this was garbled -- when the histogram is rising, larger numbers are more populated and the gradation of the populations of the last two bits are 3> 2> 1. When the histogram is falling, the smaller numbers are more populated and the gradation of the populations is 1> 2> 3.In part this is because
both the part of the histogram which is rising from left to right and
the part which is falling from left to right is present. On the
rising part, there is a gradation in level populations 01> 2> 3. When
both are present, the total population evens out.
Why not to look at the blue channel? That may give you some more information on how exactly and why the data looks clipped.I went back and did a more careful job analyzing the crease of the
couch, both in the last two bits of the original raw green1 channel
and that little slope is information that is absent in 12bit dataSorry this was garbled -- when the histogram is rising, larger
numbers are more populated and the gradation of the populations of
the last two bits are 3> 2> 1. When the histogram is falling, the
smaller numbers are more populated and the gradation of the
populations is 1> 2> 3.
so blue is going to be less sensitive and fewer in number -Why not to look at the blue channel? That may give you some more
information on how exactly and why the data looks clipped.