Ok, I think it’s time to summarize some bits and pieces distributed over this thread.
First of all: I think everybody agrees that it is possible to enhance existing Super-8 color-reversal scans.
Mostly, that stuff is done with the help of avisynth-scripts and appropriate libraries. Here are again, for reference, links to various scripts which were developed over time: one of the first was the initial avisynth-script of Freddy Van de Putte. Later, Dideé and others introduced TemporalDegrain 1.23, which @dgalland and me are considering to be more stable than the newer TemporalDegrainV2. There are various other restoration scripts around, most notably John Meyer’s version.
Avisynth and the installation of these libraries is not easy, as there are multiple and non-compatible versions of the libraries floating around. I think the easiest way to get a working system together is described in @dgalland’s gitrepository (in french, google translate).
Below I represent restoration results on a very specifc footage. It is an over 40 years old Kodachrome 40 film stock which was developed more than a year after the initial exposure. That is probably the reason why it shows a somewhat more pronounced film grain than usual Kodachrome 40 stock. Also, little black speckles can be seen in some areas.
Many of the scenes in this short clip are backlit, so film grain is paired with reduced contrast in shadow areas. In addition, there is a lot of dirt visible in this scan - the film was not cleaned beforehand.
The frames were scanned at a resolution of 2880 x 2160 px, with five different exposures per frame. The best single exposure of the original scans is displayed in the top-left corner of the clip shown below. As you can see, my scanner is not particulary good at sprocket registration.
The left subframe marked “Source” is the result of sprocket-registration and exposure fusion. At that point in the pipeline, the image is scaled down to a resolution of 2016 x 1512 px. This is the resolution all further processing was performed. The final resolution was set to 960 x 720 px.
The right subframe is actually divided into three sections, displaying the results of three different scripts. The left “DeGrain” part is the current result of my own restauration script, still a work in progress. The middle “TemporalDegrain A” part shows the result of the following simple script (following @dgalland’s suggestion for the TemporalDegrain 1.23 filter):
amp = 4.0
size = 1.6
denoise = source.TemporalDegrain(sad1=800,sad2=600,degrain=3,blksize=16)
blurred = denoise.FastBlur(size )
TemporalDegrain_A = denoise.mt_lutxy( blurred, "x "+String(amp)+" scalef 1 + * y "+String(amp)+" scalef * -", use_expr=2)
Here, “FastBlur” is an additional avisynth-library which can be downloaded here.
Finally, to the right, the result of the following short script
denoise = source.TemporalDegrain(sad1=800,sad2=600,degrain=3,blksize=16)
TemporalDegrain_B = denoise.UnsharpMask(30,3,0).blur(0.8).UnsharpMask(50,2,0).blur(0.8)
is displayed. This is the “sharpening”-filter proposed by Freddy Van de Putte (videoFred).
I think one can state that generally, some form of degraining with a little bit of post processing does enhance the quality of the footage. “TemporalDegrain B” seems to be as sharp as the original source footage, but with basically all the distracting film grain gone. So I think it’s fair to state that the post processing with the videoFred-filter (“TemporalDegrain B”) seems to be tuned to the actual resolution one can expect out of color-reversal Super-8 material.
However, if we employ a different post processing scheme (the one used with “TemporalDegrain A” as well as “DeGrain”), we actually recover more than what meets the eye in the original source. This is due to the fact that noise reduction and super-resolution algorithms are very similar at the basic level.
Of course, reconstruction errors become also more visible as you “enhance” the footage - so any final look will probably be a balance between “TemporalDegrain A” and “TemporalDegrain B”.