a7x, a9 PDAF stripe noise technical analysis

Started 4 months ago | Discussions thread
pippo27 Regular Member • Posts: 293
An automatic fix (A7III, A9, A6000)
33

Hi,

(I hope this is not off-topic here)

JimKasson wrote:

The most-active thread devoted to of the PDAF stripe noise on some alpha FF cameras is about to fill up.

https://www.dpreview.com/forums/post/60833629

I'm starting this new thread in hopes that folks will start posting here before some of the discussions in the other thread can't be completed for lack of space.

Thanks, all!

I have been working on an automatic postprocessing fix for this (mostly out of curiosity, but also I got a bit "obsessed" about it since I saw that it can happen also on my a6000 -- and that I could reproduce it once I knew under what conditions it is likely to occur).

I have played with different things, and I believe what I have now, although still work-in-progress, is decent enough that I can share my results. It's not perfect of course (how can it be?), but I'll let the interested people judge for themselves.

First, a demonstration on RAWs from the A7III, taken from dpreview's gallery. All done in RawTherapee (a development version). For each picture I only turned on/off the automatic correction method, all the other settings are the same.

A somewhat technical explanation follows the pics.

How it works. First, by "standing on the shoulders of giants". I used a lot of infrastructure and correction algorithms already available in RawTherapee, mostly developed by Emil Martinec and Ingo Weyrich (and possibly others). I also used a lot of info that was made available in the other thread (by users "Tons o Glass 0 Class", "Horshak", "JimKasson" and "bclaff" especially), and a  lot of advice by Ilias Giarimis (user "dethis2" around here). Then, with all this, here's how the technique works:

  • it works in RAW, before demosaicing
  • the PDAF lines patterns posted here are used to know where to look for trouble
  • the lines are scanned, and green pixels are compared with their neighbours above and below. If they are significantly off (brighter), they are marked as suspicious
  • If at least 3 consecutive green pixels are flagged, they are marked as bad and they will be interpolated (by the existing support for bad pixel interpolation in RT). Also the blue (or red) pixels among them are marked as bad
  • also the lines immediately above and below the PDAF lines are scanned and handled as above (to account for the different reflections according to where the light source is -- as Horshak IIRC demonstrated)
  • finally, green equilibration is performed on the areas of the image with a high density of striping lines, with a threshold that is dynamically adjusted according to the number of pixels identified as bad in the area.

This is basically it. The technique is obviously not perfect, and it might benefit from further insights by all the knowledgeable people that post here. If anybody is interested, the code is here (called here). Currently only the A7III, A9 and A6000 are supported, because I only have the patterns for those cameras. If you have more and want to share, thanks in advance!

I hope this is interesting -- if not, sorry for the long post.

Post (hide subjects) Posted by
Arn
Keyboard shortcuts:
FForum PPrevious NNext WNext unread UUpvote SSubscribe RReply QQuote BBookmark MMy threads
Color scheme? Blue / Yellow