Log in

View Full Version : Denoising high ISO video challenge


LigH
28th October 2021, 10:14
Hello there.

Recently I tried to capture some funny light show in the night, probably party event spotlights shining at clouds. But the used camera was not sensitive enough, even at ISO 12800 it is hardly noticable. But the noise is annoyingly heavy. I wonder if anyone has some experience with noise filters cooperating with a high gamma curve to reveal the last bit of the moving lights in the darkness.

Anyone interested? I uploaded a 410 MB AVC MOV to MediaFire (https://www.mediafire.com/file/gyhcu2mjzpd08fz/DSC_0071.MOV/file). A short best scene with reduced resolution as result will be suitable. So far I tried a quick test in VirtualDub2 with levels and different smoothers. But it seems to lack a median filter.

anton_foy
14th December 2021, 00:47
Hello there.

Recently I tried to capture some funny light show in the night, probably party event spotlights shining at clouds. But the used camera was not sensitive enough, even at ISO 12800 it is hardly noticable. But the noise is annoyingly heavy. I wonder if anyone has some experience with noise filters cooperating with a high gamma curve to reveal the last bit of the moving lights in the darkness.

Anyone interested? I uploaded a 410 MB AVC MOV to MediaFire (https://www.mediafire.com/file/gyhcu2mjzpd08fz/DSC_0071.MOV/file). A short best scene with reduced resolution as result will be suitable. So far I tried a quick test in VirtualDub2 with levels and different smoothers. But it seems to lack a median filter.

Hi your video is a bit strange? It shows only a tiny portion of video in the bottom left corner (see here: image (https://www.imagebam.com/view/ME5L2PF))
I used BASIQ(preset="high") on it just to test but the image is so small. Here is comparison to the original frame: original (https://www.imagebam.com/view/ME5L2PI)

EDIT: I notice a gamma difference that occurs with my script and I don't know why yet.

LigH
14th December 2021, 02:17
Thank you for trying... but I don't have an issue with this video when I decode it using FFMS2 / L-SMASH Works. Which decoder did you use to get only a small image in the frame?

And what video filter is BASIQ? All I can find via Google is a VST audio equalizer. Please link it for me so I can use it in AviSynth.

anton_foy
14th December 2021, 02:23
Thank you for trying... but I don't have an issue with this video when I decode it using FFMS2 / L-SMASH Works. Which decoder did you use to get only a small image in the frame?

And what video filter is BASIQ? All I can find via Google is a VST audio equalizer. Please link it for me so I can use it in AviSynth.

Here is basiq (https://forum.doom9.org/showthread.php?t=183302)

Hmm even looks like this when I played it with VLC aswell. Maybe I have some codec problems I did not know about before. I used LSMASH in my avisynth+-script.

Please report back of how or if basiq worked for you :)

EDIT: I noticed I forgot to include knlmeanscl in the requirements list. Will update that soon.

Selur
15th December 2021, 16:43
I get the same output as anton_foy tried FFVideoSource, LWLibavSource, LibavSMASHSource, DGDevcNV in Vapoursynth and Avisynth.
It's the same when I use MPC-HC or VLC for playback.
FFplay reports:
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002d00d929b40] st: 0 edit list: 1 Missing key frame while searching for timestamp: 1000
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002d00d929b40] st: 0 edit list 1 Cannot find an index entry before timestamp: 1000.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\Users\Selur\Desktop\DSC_0071.MOV':
Metadata:
major_brand : qt
minor_version : 537331968
compatible_brands: qt niko
creation_time : 2021-10-25T21:37:23.000000Z
Duration: 00:01:33.42, start: 0.000000, bitrate: 36692 kb/s
Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, smpte170m/bt709/bt470m, progressive), 1920x1080, 35134 kb/s, 50 fps, 50 tbr, 50k tbn (default)
Metadata:
creation_time : 2021-10-25T21:37:23.000000Z
vendor_id : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, 2 channels, s16, 1536 kb/s (default)
Metadata:
creation_time : 2021-10-25T21:37:23.000000Z
vendor_id : [0][0][0][0]
[swscaler @ 000002d0210ca600] [swscaler @ 000002d021d38c40] deprecated pixel format used, make sure you did set range correctly
....


Is the clip so dark, or is there something wrong? What does the clip look like for you?

videoh
15th December 2021, 17:22
I get the same output as anton_foy Me too.

LigH
15th December 2021, 23:19
Oh, sorry, it's so long ago ... I confused it with another one. :o

Yes, actually it is so dark. You may need a gamma factor of around 3 or 4 to actually notice any light in the sky, which will be pretty much covered up by the ISO noise.
_

PS: Actually ... uhm, it looks so much different with the VirtualDub2 levels filter than with the same AviSynth filter. Not sure why. I can't get the sky out of deep blackness.
_

PPS: Ah, the reason is the "coring". There is something about the luminance range... using Level with coring=false works like in VirtualDub2.

Try to work from this base:

LSMASHVideoSource("DSC_0071.MOV")
Levels(0,2.0,255,4,252,false)

Selur
16th December 2021, 06:00
Even with something like:
clip = core.std.Levels(clip=clip, min_in=0, max_in=40, min_out=0, max_out=255, planes=[0])
clip = adjust.Tweak(clip=clip, hue=0.00, sat=0.00, cont=1.00, coring=True)
you basically see nothing in the background

LigH
16th December 2021, 09:30
There are some very faint light spots moving across the sky. My hope was to enhance what has a little spatial and temporal relation by filtering the more random spots. So I guess something with a stronger median may be a chance.