The following is what I think is going on in the Sony A7S. I have to assume that the notches in the histogram are caused by the camera applying a scaling factor to digital values that come out of the ADU (Analogue Digital Unit). Why on earth it does this I don't know but the evidence strongly suggests that it does.
Below are 4 columns of figures. Column 1 is a list of integer values with no gaps - it represents a nice linear gradient coming from some theoretical image. Column 2 has a scalar multiplier of 1.11 applied (this is just an arbitrary value as an illustration). If the camera could write floating point numbers into the raw file then those are the numbers it would write. But it can't, so it converts them to the nearest integer, shown in column 3. Notice that the gaps now appear - the values 15 and 25 are missing. Column 4 is the ratio of columns 2 and 3. A ratio greater than 1 is where the integer is higher than the "true" floating point number and a ratio less than 1 is where the integer is less than the "true" floating point number.
10 11.10 11 0.991
11 12.21 12 0.983
12 13.32 13 0.976
13 14.43 14 0.970
14 15.54 16 1.030
15 16.65 17 1.021
16 17.76 18 1.014
17 18.87 19 1.007
18 19.98 20 1.001
19 21.09 21 0.996
20 22.20 22 0.991
21 23.31 23 0.987
22 24.42 24 0.983
23 25.53 26 1.018
24 26.64 27 1.014
25 27.75 28 1.009
26 28.86 29 1.005
27 29.97 30 1.001
When we take lots of flat frames, there will (usually) be subtle intensity variations in each one which means that when we average them out in the creation of a master flat we get something very close to the true floating point data represented by column 2. So when we divide the actual raw integer data (column 3) by this master we are left with the ripple effect shown in column 4.
Here is a graph of that effect:
Note how the amplitude of the ripple decreases as the values become higher. It is this ripple that we observe as concentric rings in the exposure calibrated with a flat.
One other point to note is that in a real image this "ripple" will be masked by shot noise which will hide the ripple. To show the ripple (i.e. the concentric rings), we need underexposure which keeps the pixel values low and the amplitude of the ripple high. To show the ripple we also want a very low ISO to avoid too much shot noise masking the data ripple. This is why in my real world examples in the earlier post I deliberately used a low ISO and underexposure.
One final point. It is possible to take a whole load of flat frames with a low ISO and accidentally underexposed. A master flat created from these can have the ripple actually encoded into the master flat. This will introduce concentric rings into the final stacked image. When it happened to me the only solution was to shoot a new set of flats.
The way to mitigate the concentric ring effect is to use higher ISOs and/or make sure data are well exposed. I have proved that concentric rings can easily be found in the Sony A7S because of this assumed scaling of integer data in all channels (i.e. R, G and B).
Edited by sharkmelley, 29 November 2016 - 06:24 PM.