hot-pixel suppression in D800 and D4

Started Feb 17, 2013 | Discussions thread
OP Bernard Delley Senior Member • Posts: 1,799
inferring the HPS algorithm details

Here is my detective Procedure:

Black frames (lens cap, eyepiece cap, non VR lens ) with shorter exposure invariably have some (mostly moderately) hot pixels, even at low ISO. When the HPS algorithm is on, then the hot pixels are gone. With the Nikon models I looked at, there was always a threshold exposure time, above which the HPS is turned on. (none of the Canon used a HPS procedure. Pentax HPS use depends on exposure time and ISO)

Hypothesise an algorithm and test the hypothesis across all those millions of pixels in one or several black frames. If one pixel is found for which the hypothesis does not hold, then the hypothesis is rejected. A sharper hypothesis is rated better. The sharpest that is not rejected is the final winner.

Pixels with value equal or higher than any of the 8/12 surrounding pixels of same color may have been affected by a HPS procedure. This is test criterion C1 for the pixels that need to be looked at. At threshold 0 and ISO 1600, about 4.5 million on D800.

For the D4,  I relied thankfully on Oelund's black frames at

Results: for D800 and D4

threshold time for turning on HPS are different between D800 and D4 as mentioned at the begin of thread. Otherwise the HPS algoritm is the same. HPS depends now on Bayer color of the pixel in  question.

red: (same rule as used in D7000 for all colors):

if pixel has value exceeding the maxim of the 24 nearest pixels of any color (M24), it is reset to that max value. (so any red pixel satisfying C1 is als equal to M24.)


the HPS action threshold  is based on the max value of any of the 8 next neighbor pixels irrespective of color: M8.  Threshold value is 1.50* M8+0.5.   The action is to replace the hot pixel value with the maximum occurring among the 8 pixels of same (blue) color: S8. ( So any blue pixel satisfying C1 is either equal to S8. If not it is greater than S8 and smaller or equal 1.50*M8+0.5 )


the HPS action threshold  is based again on M8. Threshold value is 2.065*M8+0.5 . The action is to replace the hot pixel value with the maximum occurring among the 12 green pixels in the neighborhood: S12.  ( So any green pixel satisfying C1 is either equal S12, or it is greater than S12 and  smaller or equal 2.065*M8+0.5 )

Especially the number 2.065 is a bit surprising. It could be based on a resolution limit derived from the AA filter. If so, the D800E might have another value.

 Bernard Delley's gear list:Bernard Delley's gear list
Nikon D7200 Nikon D500 Nikon D850 Nikon AF-S Nikkor 14-24mm f/2.8G ED Nikon AF-S Micro-Nikkor 60mm F2.8G ED +10 more
Keyboard shortcuts:
FForum PPrevious NNext WNext unread UUpvote SSubscribe RReply QQuote BBookmark MMy threads
Color scheme? Blue / Yellow