DaVinci vs Camera Raw sharpness

My recent comment in @Utrecht’s thread confused me. I don’t have most of the original RAW files at hand, so I took one of @cpixip’s and put it into a typical timeline constellation, then compared it to what Camera Raw 9.1.1 is showing me. Ignoring the different exposure and temperature settings, the left image appears much crisper than the right one. Right one is DaVinci, both are at 100%.

Could anyone point me at one or two settings I might’ve messed up? Timeline resolution is at 4096x3040 and Timeline proxy resolution is “Full”.

:thinking:

1 Like

Well, I do not know exactly what confused you (Seems I am confused here as well…:wink: ), but let me give some details about that specific scan, from raw to final.

I do open the raw file RAW_00967.dng in daVinci with the following settings:

(Quite often, but not in this case, I push Shadows with +10 to +20 and reduce Highlights with corresponding negative values, that is -10 to -20. But again, this was not done with this sequence.)

My working resolution for intermediate work is 2600 x 1950 px. So I scale down the 4k image to this resolution and output the raw files to rec709 16-bit .tif- or .png-formats (basically for my own software).

The output of this raw → rec709 processing step is the following image:

Note that this image does not look like either of your raw developments.

1 Like

EDIT: I just realized I assumed 4096x3040 was the Pi HQ camera’s native resolution, but it’s actually 4056x3040! In my other projects I’m going with “center crop, no resizing”, so it doesn’t matter, but I put your frame into a fresh project, so that’s probably the reason it looks blurry. However, even with the correct dimensions it still doesn’t look quite as crisp. Might be a Camera Raw thing again. I’ll check it out.

Regarding the colors, though: I opened a fresh project and put your DNG in with the exact same settings in the RAW tab - the frame looks much different.
Do you still do color transformation?

1 Like

Out of curiosity, I opened the RAW_00967.dng file in RawTherapee. I don’t have DaVinci.

I left the program’s default settings, and this is the result:

By the way, RawTherapee indicates the image resolution is 4048x3032 px.

1 Like

OK, still confused. Loaded up RawTherapee (default settings) and compared with DaVinci.

Not the same frame, but I thought this one came out extra crisp and would make for a better comparison. DaVinci looks soft. It actually looks a bit as if DaVinci is applying noise reduction, but I can’t find any info on it. :face_with_monocle:

Edit: Tried playing with the blur radius in the color tab. Turning it to 0.47 (all channels, or green channel only) makes it look almost identical to the image outside of DaVinci. But obviously I’d like to know why it’s blurrier in the first place.

1 Like

Well, for starters: you did not use the settings which I used in the raw converter. For example, you did not lower the exposure setting to the value I used.

But I checked anyway again - there is no additional color transformation in the timeline, only the settings of the raw converter (which are in a way also a color transformation).

Just set your raw converter to the following settings:


… and I think you will get a very similar image. If not, set your color science to “DaVinci YRGB” and the Timeline color space to “Rec.709 (Scene)”.

Notice that there is a sharpness parameter already in the raw converter setting of DaVinci. In fact, RawTherapee has a similar setting, under “Raw” → “Capture Sharpening” which is ON by default. So “sharpness” is not a good defined property in an image developed from a raw, since how the raw image is sharpened depends on a developer’s choice (Sharpness = 10 in DaVinci, Capture Sharpening ON in RawTherapee). There’s no hidden noise reduction in DaVinci.

I assume that other raw converters have similar “tricks” in their sleves (I simply use no others and have not checked). Certainly, different debayer algorithms also yield very different results, depending on the image content.

So you will never get the same image with different raw converters. Of course, with enough post processing, you can make each of them similar to each other.

1 Like

Whaaat?
Doing things inbetween other things. I do not recommend… :face_exhaling:

The DaVinci Sharpness slider is really subtle.

When I turn off Capture Sharpening in RawTherapee the result looks about the same as DaVinci. Thanks for pointing that out. I had thought enough to turn down sharpening in Camera Raw before posting the initial comparison, but maybe the difference in brightness and contrast was/is deceiving (nevermind the resolution mismatch…). It’s clearly possible to make CR and DaVinci look more similar to each other.

Anyway. I’m glad it turns out it’s not an actual issue and just me having a sudden conspiracy. :joy:

If anyone has tips on sharpening Super 8 footage without making it look “wrong” in some way, please tell. :slight_smile:

2 Likes

That depends on what “looks wrong” to you…

Seriously, there are quite a lot of ways to sharpen footage in DaVinci. Here’s an example of a few:

From left to right:

  • SuperScale: just switched this “ON” in the inspector tab (Edit or Cut Page), using the default settings.
  • Color Sharpen: the usual sharpening found in each node in the Color Page. Settings were 0.47 for the radius, 0.50 for the scaling - your taste might vary.
  • OFX Sharpen: there is a sharpen plugin in the effects lib you can drag and drop on a node in the Color Page. It has a lot of settings. You can vary the sharpening effect of fine, medium sized and large details. Also, you can opt to sharpen only luminance, excluding chroma. Which is mostly a good idea.
  • Mid/Detail: is a simple value available on every color processing node. The setting used in the above example was 31.50.

The general problem with S8-footage is that any sharpening operation will also enhance the film grain. Some guys do actually like this somewhat artifical film look.

Especially in S8-material film grain structures can be very large, easily covering up small image details you might want to present to your audience. It gets worse when the film grain is sharpened by processing.

Ideally, you would want to enhance image detail as best as possible while leaving the film grain as uneffected as possible by the sharpening process.

In the extreme case, you might opt to get rid of the film grain all together.

Indeed, that’s my current mode of operation, as the degraining process also recovers image detail which is simply not visible before.

Once you are “grain-free”, you have a lot of of options for sharpening the footage - what works best depends on taste and source footage. You might even end up in selecting different sharpening options for different clips.

If you still want to have that “film look”, that is, give your audience the feeling that what they are watching is analog material, you can actually opt to add an artifical film look to your degrained, noise-free enhanced image, by employing DaVinci’s “Film Look Creator”. This may sound strange, but in essence this complicated setup allows you to precisely define the visual appearance of your footage while giving you the full range of sharpening options.

Summarizing this, the processing tactic is as follows: get rid of the analog film noise (by degraining) → sharpening only the image content → add simulated visual clues for “analog film”

Of course, the alternative option is to simply drop the degraining step and work just with the original, grainy image. That means however to sharpen image detail as well as film grain simultaniously in a single step.

From my experience, you can get good results with this simplified approach as well. But finding the sweet spot on the sharpening settings (not too much grain enhancement, but enough sharpening of the image details) can be quite challenging, especially if your footage is composed of scenes with different visual qualities (bright daylight = less film grain/darker scences = much more grain in darker areas/film stock with different grain characteristics, etc).

Here’s an example of what I mean (image below). Top-Left is the original source image. Bottom-Right is this source image sharpened (by an external sharpening filter, not DaVinci). Note that the image structures only improved marginally, while the film grain is notably “better” visible than in the original plate. That’s the type of result you can expect from the simplified approach skipping the denoising step.

Looking now at the denoising → sharpening pipeline, I have included two different results on the right side of the panel. These denoised results had the same sharpening filter applied as the lower-Right example, to make things comparable.

The top-Right denoise appears to be the sharpest image overall, but has still some film grain left. The lower-Right is degrained more and appears in certain image areas to be sharper than the Top-Right one. The choice of the noise reduction algorithm that delivers the best results depends mainly on the type of film stock.

So… looking into “sharpening Super 8 footage without making it look ‘wrong’ in some way” opens up an interesting rabbit hole - enjoy the journey!

5 Likes

@cpixip Thanks again for always sharing such interesting and valuable insights! :smiley:

In general. I’ve spent quite a bit of time myself trying to get the most out of sharpness in footage. The truth is, if your shot isn’t sharp to begin with, it’s really hard to recover that in post-processing.

Personally, I just apply a bit of noise reduction with Neat Video and a touch of sharpening — but not too much. In my experience, the more you try to “fix” it, the worse it tends to look in the end.

This holiday, I’ll be shooting a lot with a Super 8 camera and Ektachrome film, and making sure the subjects are in focus is my number one priority while filming. From the films I’ve been digitizing, I’ve noticed that this aspect often hasn’t received much attention.

Indeed, many of my films have scenes with the main subject out of focus.

It’s important to keep in mind that Super8 cameras, even the latest ones manufactured in the late 1970s, lacked an autofocus function. With moving subjects, it was difficult to keep them constantly in focus while filming.

@cpixip Thanks for taking the time.

The “not looking wrong” part, to me, is the difficulty to introduce sharpness without introducing digital artifacts (or sharpen the noise too much). De-noising as a first step does make sense, but DaVinci’s noise reduction has been kind of disappointing in that regard. As soon as I manage to make a frame look “nice”, during playback, there’s always one area that has become wobbly or has other kinds of artifacts in it.

In the video you’ve posted over here, for example: Super-8 enhancement, progress report - #35 by cpixip there is some funky movement in the mountains at around 0:50. I’ve found it near impossible to avoid things like these happening unless I turn down noise reduction so much it’s barely visible anymore. (NeatVideo seems to do better in that regard, but I’m currently too stingy to buy the Pro version).

That’s why I’ve mainly focused on slight sharpening. But as @Utrecht and @cpixip say: each clip is different and typically not of the same quality (focus, grain, lighting etc.), so you really have to adjust whatever filter on a clip-by-clip basis, if you want to do it right. So much work!

The Texture Pop filter seems to do a good job separating areas of the frame. I’ve found it possible to sort of “exclude” the grain from the areas I want sharpened. But I’m fairly sure I’m not ready to do this for each clip separately. Just leaving it here as another tool that hasn’t been mentioned yet. :slight_smile:

I suppose that is in part just the hot desert air deviating the image of the mountains in the background. Also, the denoising algorithms work much better on pre-stabilized material - which was not used in this old example piece. Nevertheless, degraining and frame-interpolation will introduce some artifacts in your footage. As always, it’s a creative choice what you prefer…

Hmm. I think it’s rather because of low framerate. There are big jumps between the frames in that scene due to hand-held zooming and short expoure times in bright daylight, and the algorithm tries to make sense of it.
I usually have a brief “wow” moment when I see heavily restored film footage, then I start seeing all the little “mistakes” :sweat_smile:. It’s a preference, as you say.

1 Like

Well, I gave you a second reason why some footage looks funny:

In fact, the artifacts still visible could be reduced further - however, I opted (at least for the time being) to base my degraining efforts on avisynth. Mainly for speed reasons, the avisynth code is quite fast. But for this reason, I am currently somewhat limited in the performance of the code. If I would want to improve this, it would probably mean to implement opencv on GPUs in order to get a decent speed. At least currently, I do not have the time for this and I consider the quality sufficient for Instagram or similar use.

What you referred to above is anyway stuff which is three years old. Here’s a new comparision between raw HDR footage and degrained one, with one of my current algorithms. It works on prestabilized imagery, making the live easier for the avisynth-script. So a lot of the previous artifacts are gone.

Note that an additional step I usually employ, namely pushing the frame rate from 18 fps to 30 fps, is not performed here. It’s still 18 fps footage

Hmm, do you know what is going on with the trees between the first 10 and 15 seconds of the video? That is an unusual (stabilization?) artifact that I haven’t seen before.

Otherwise, your sharpening always looks so good! I’ve gotten pretty close in the reels I’ve processed now, but I don’t think I’ve ever quite reached as nice a result as yours consistently are.

Yes… :joy:

The thing is: this comparison is done with old scan data from 2020. At that time, I was scanning by taking several different exposures of a frame and processed them into a single image via exposure-fusion. At that time is was not possible to capture raw data with available cheap cameras. So the scan in question used a see3Cam_CU135, a USB camera.

Now, my scanner is basically made out of plastic - which is not a very good idea to start with. Because of this, even just moving around the room tends to move frames a little bit in the camera view. It’s a quite shaky business.

Due to this specific behavior of my scanner, things are also always moving a little bit during the different exposures of a single frame as well. Most of the time I can compensate in software for this, as it is basically just a shift between different exposures.

In this specific case, the frame actually moved substantially during the capture of a single exposure, out of the capture range of my algorithm.

As the specific capture in question was covering the dark shadows of the image, this deviation is mostly visible in the dark areas of the trees to the left but not in the rest of the image. This creates this rather unusual artifact. Basically, it is a failure of the alignment part of my exposure fusion algorithm.

Nowadays I improved the timing between film movement and frame capture. I no longer work with exposure fusion, but with raw image data from the HQ camera.

The scanner is still sensitive to movements around the room, but I implemented in addition an algorithm which retakes images whenever a too strong frame movement during capture is detected So these funny movements do no longer occur in the captured footage.

1 Like

This is a good example of what is “looking wrong in some way”.
To me, anyway. :slight_smile:

Here, the bushes have a lot of artifacts.

And here (during playback), the area around the lake is all wobbly from trying to interpret the strong noise. When it zooms in afterwards, the landscapes “streaks”.

It’s probably near impossible to avoid something like that when using automated tools :neutral_face:

That’s not really a sensible goal. Of course you are going to introduce artifacts when you are trying to reconstruct a very noisy and/or wildly varying signal - there is no magic wand which breaks basic signal theory. The real question is more: does your audience notice these artifacts, and, even if they do notice them, are these glitches distracting enough that your target audience prefers the grainy/noisy version?

To add a little bit more technical detail: these restoration algorithms are a special kind of “AI” as it is called nowadays. Basically, they have a world model build in. That is, an idea how the undisturbed image should look like. Also, they have a corresponding noise model available. The goal of the algorithm is to best separate the noise from the image.

How good an algorithm performs depends heavily on the complexity of the world model. However, mainly for speed reasons, the model employed is normally rather simple: namely that there’s no difference in image structure between two or more neighboring frames. As long as the camera only sees a pure static frame, this is indeed a valid assumption. In this case, the central limit theorem assures you that you can get rid of any noise just by averaging sufficient enough neighboring frames.

But: a simple camera pan already breaks the basic assumption of this simple approach, as the image structure moves relative to the frame.

So the next improvement in terms of a world model is to allow for (ideally different) movements of parts of the scene. This brings one to optical flow/motion estimation algorithms. These algorithms are at the core of any decent denoising algorithm. A lot of improvement have been achieved here in recent years. The motion estimations available in avisynth are fast, but rather basic. And the results above are achieved by avisynth-scripts.

Actually, I think the quality displayed in the example footage is about the maximum what software based on avisynth can achieve. The implementation of newer and more robust algorithms for motion estimation will need to run for speed reasons on the GPU - which is a totally different world than avisynth. Current processing time for a 2600 x 1905 px image with avisynth processing times ranging between 1 to 4 fps - depending on the amount of “work” the algorithms is asked to perform.

Besides the world model for the appearance of our visual world, a good denoising will also need some idea of the noise present in the source. This is the reason why a NEAT denoiser or even DaVinci is asking you to select a textureless area in your footage - that image part is used to estimate the spatial statistics of your noise. Now, with S8-footage you have the added challenge that bright image areas have a very different statistic than the shadow areas, both in terms of temporal and spatial dimensions. Put it simple: with Kodachrome stock, there’s normally no noticable noise in bright image areas. However, in darker areas of the image, the noise caused by film grain easily covers up the remaining image structure, even with Kodachrome footage. Analog footage has a quite different noise print than digital footage.

So I do see a lot of opportunities for improving the current status of affairs. We’re not yet at an optimal solution. But: these are interesting times!

1 Like

I decided to upload the H.265 master of the original source clip discussed above so anybody can try out his own approach to improve the appearance of the footage.

Here’s the link: HDR Original.mov

Some background: this is a 3:24 long sequence out of a 68 min film. It features some challenges in terms of denoising. The footage was recorded 1981 on Kodachrome with a hand-held, rebranded Chinon-manufactured Super-8 camera.

The grain appears stronger than normal Kodachrome film stock, most probably because the footage was developed over a year after the inital exposure. Scanning was done with a USB3 camera and a Schneider Componon-S 50 mm at an original resolution of 2880 x 2160 px.

For each frame, five different exposures were captured and combined via an exposure-fusion algorithm into a 16 bit pseudo-HDR frame. A coarse colorgrade appropriate for the whole footage was applied and each scene in the 3:24 sec film clip stabilized independently. Only translation was corrected in the stabilization. The uploaded H.265 master has a reduced resolution of 1440 x 1080 px.

2 Likes

Funny enough, I actually enjoy working on files that I didn’t digitize myself—it’s a very different experience.

Just for fun, I tried to remove as much grain as possible (maybe too much) and, while I was at it, also got rid of the annoying dust spots.

  1. I did a pass in DaVinci using Neat (light touch; there’ll be more de-graining later), plus a slight stabilization to improve micro-stability.
  2. I ran a second pass with an Avisynth script that removes dust and applies a bit of de-graining.
  3. third pass with Topaz Video, which is way too aggressive both in sharpening and de-graining. 4)After that, I stacked those three outputs again in Resolve and blended their opacities to try to achieve the desired result (in other words, very little Topaz, more Avisynth, and a bit of the Neat version).
  4. I rendered those three into one file, and finally brought that into Resolve again to retime it at 25 fps. Since it’s a comparison, you don’t really notice, but when the clip stands alone the pans look much smoother.

And congratulations to those who read all the way to the end!
And thank you for making the file available.

3 Likes