logo Sign In

g-force

User Group
Members
Join date
24-Sep-2004
Last activity
16-Jul-2020
Posts
662

Post History

Post
#617679
Topic
[OUT - ruLes] Original Unaltered Trilogy restored using Laserdisc editions - A New Hope (Released)
Time

_,,,^..^,,,_ said:

g-force, AntcuFaalb, what do you think about the new denoiser?

I'd like to release a new version, but as my PC will do the conversion in FIVE days (OO_)I want to be sure it is good enough... Thanks to AntcuFaalb; he found that strange glitch - caused by the denoise filter - probably never noticed by anyone else, including me...

Maybe a little clip will be more explanatory! Please let me know which scene do you like to see, to show the new denoiser potential - around 30 seconds, if possible, as it will be dubbed in more than an hour...

 It's hard to tell with the .gif yo posted. I'm probably not the person to ask anyway, as I've never seen a denoiser that I like.

Post
#617417
Topic
[OUT - ruLes] Original Unaltered Trilogy restored using Laserdisc editions - A New Hope (Released)
Time

AntcuFaalb said:

_,,,^..^,,,_ said:

I'm testing new denoise filter - soon I'll post some screenshot comparisons.

Denoisers often do more harm than good, especially if they're temporal.

The best is the poorly-named MDeGrain1/2/3 IMO, but you still run the risk of artifacts if it's applied globally.

I think it's well named (or at least better than most functions). Motion-compensated degrain and the temporal radius afterwards. Why don't you think so, AntcuFaalb?

But I agree, artifacts are guaranteed. IF you have to denoise, best is to median with the original a couple different denoisers that don't produce the same artifacts.

Post
#616906
Topic
[OUT - ruLes] Original Unaltered Trilogy restored using Laserdisc editions - A New Hope (Released)
Time

Dude, this isn't too bad. A few things:

The combination of the residual grain being both large and slow-moving is not very appealing. There appears to be some other slight temporal issues that I can't tell are from the original capture, the denoising, or the median/average of the captures.

The audio looses sync slightly over the duration of the movie.

Any chance you could upload the best of the raw captures before combining them and post-processing? Might allow better feedback as to how to improve your final product.

-G

Post
#616696
Topic
Info: New colormatching script
Time

I've updated the script in the first post to optionally not perform the min/max matching like in the early version of the script that You_Too posted.

snicker,

we need to try to port your clipping removal to Avisynth. Any chance you could provide a tutorial on how you do it? I know you did already in another thread, but I can't seem to find it, and I remember not quite being able to follow it previously. Any chance you could take another stab at explaining it to us?

-G

Post
#616439
Topic
Info: New colormatching script
Time

Oh, one more thing AntcuFaalb, the script in the first post has the option to determine the correction from two different sources, and then apply it to a third. So you MAY get a bit more accurate results if you crop the GOUT and the rental copy to match each other first, and then apply the changes to the uncropped GOUT. The version that You_Too posted doesn't have this option, so I'll make an updated version after Christmas that has all the options of both scripts, and maybe a YUV version as well. I don't have my computer with me right now, otherwise I'd get on it sooner.

Post
#616418
Topic
Info: New colormatching script
Time

No prob, You_Too, I have also found some instances where if the colors are too different, doing the min/max on each channel can be dangerous. Thinking about making a version where you can have all, none, and everything in-between of the min/max matching. The original version that You_Too posted is safest in the mean time. No matter what, the scripts should be applied on a shot-by shot basis only, and the outputs checked carefully. Otherwise, have fun!

Post
#615287
Topic
Info: New colormatching script
Time

Hey Moth3r,

I wondered that as well, but I vote that it stays here for the following reasons:

1. It is stemming from a result of SW restoration specific challenges

2. I'm lazy, and don't visit the other thread often

3. We've had less relavent or simular threads here

Ultimately, your call. Of course we could always move it if and when it starts to be used for other purposes.

-G

Post
#615181
Topic
Info: New colormatching script
Time

Thanks for helping out snicker! So, You_Too, you might have better results with the average only (as opposed to the average/min/max) script I posted yesterday, and then doing a MergeLuma so the results don't affect the brightness at all.

I don't think this approach is going to get you a Blue Greedo however, as this is pretty much just a first-order approximation.

I'll wait to hear back on your results from experimenting before updating the script.

-G

Post
#615157
Topic
Info: New colormatching script
Time

Here is an avisynth script that I worked up that TRIES to match the colors of one source with another. Your mileage may vary. Feel free to comment, leave feedback, suggestions, examples etc. here.

Function RGBMatch(clip gref, clip bref, clip “input”, int “mix”)

{# v1.2 - by G-force

Make Red, Green and Blue channel average, (and min and max) of second clip match first clip

or optionally, make third clip match difference between first two

i.e., if the cropping is different between the sources, you could crop the sources first<

to better match each other and then only apply the result to the third (uncropped) clip

mix = how much min/max compensation to do, 0=none (average only), 255=fully match min/max (default)

input  = Default(input,bref)</span>

mix    = Default(mix,255)          </span>

global gref = gref

global bref = bref

global input = input

global mix = mix

scriptclip(bref,"""

grefrgb=gref.ConvertToRGB()

brefrgb=bref.ConvertToRGB()

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>inputrgb=input.ConvertToRGB()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>grefr = grefrgb.ShowRed().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>grefg = grefrgb.ShowGreen().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>grefb = grefrgb.ShowBlue().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>brefr = brefrgb.ShowRed().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>brefg = brefrgb.ShowGreen().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>brefb = brefrgb.ShowBlue().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>inr = inputrgb.ShowRed().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>ing = inputrgb.ShowGreen().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>inb = inputrgb.ShowBlue().ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y1r = AverageLuma(grefr)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y1g = AverageLuma(grefg)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y1b = AverageLuma(grefb)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y2r = ((255-mix)0+mixYplanemin(grefr))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y2g = ((255-mix)0+mixYplanemin(grefg))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y2b = ((255-mix)0+mixYplanemin(grefb))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y3r = ((255-mix)255+mixYplanemax(grefr))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y3g = ((255-mix)255+mixYplanemax(grefg))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>y3b = ((255-mix)255+mixYplanemax(grefb))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x1r = AverageLuma(brefr)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x1g = AverageLuma(brefg)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x1b = AverageLuma(brefb)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x2r = ((255-mix)0+mixYplanemin(brefr))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x2g = ((255-mix)0+mixYplanemin(brefg))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x2b = ((255-mix)0+mixYplanemin(brefb))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x3r = ((255-mix)255+mixYplanemax(brefr))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x3g = ((255-mix)255+mixYplanemax(brefg))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>x3b = ((255-mix)255+mixYplanemax(brefb))/255</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>#compute coefficients for y=ax^2+bx+c using min, avg, max</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>ar  = x1r==x2r? 0: x1r==x3r? 0: x2r==x3r? 0:</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”> \ (y3r-y1r+(x1r-x3r)(y1r-y2r)/(x1r-x2r))/((x1r-x3r)(x2r-x3r))</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>br  = x1r==x2r? 0:</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”> \ ((y2r-y1r)/(x2r-x1r))-ar*(x1r+x2r)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>cr  = y1r-arx1rx1r-br*x1r</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>ag  = x1g==x2g? 0: x1g==x3g? 0: x2g==x3g? 0:</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”> \ (y3g-y1g+(x1g-x3g)(y1g-y2g)/(x1g-x2g))/((x1g-x3g)(x2g-x3g))</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>bg  = x1g==x2g? 0:</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”> \ ((y2g-y1g)/(x2g-x1g))-ag*(x1g+x2g)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>cg  = y1g-agx1gx1g-bg*x1g</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>ab  = x1b==x2b? 0: x1b==x3b? 0: x2b==x3b? 0:</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”> \ (y3b-y1b+(x1b-x3b)(y1b-y2b)/(x1b-x2b))/((x1b-x3b)(x2b-x3b))</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>bb  = x1b==x2b? 0:</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”> \ ((y2b-y1b)/(x2b-x1b))-ab*(x1b+x2b)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>cb  = y1b-abx1bx1b-bb*x1b</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>inr=inr.MT_lut(“x x * “+string(ar)+” * x “+string(br)+” * + “+string(cr)+” +”).ConvertToRGB()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>ing=ing.MT_lut(“x x * “+string(ag)+” * x “+string(bg)+” * + “+string(cg)+” +”).ConvertToRGB()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>inb=inb.MT_lut(“x x * “+string(ab)+” * x “+string(bb)+” * + “+string(cb)+” +”).ConvertToRGB()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>MergeRGB(inr,ing,inb)</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>ConvertToYV12()</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>""")</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>
</span>

<span style=“font-size: 11px; line-height: 13.666666984558105px;”>Return(last)}</span>

Post
#613963
Topic
Harmy's STAR WARS Despecialized Edition HD - V2.7 - MKV (Released)
Time

Dude, the colors keep getting better! You know your going to end up going through the whole movie again to tweak the colors with your new skills/tools! You really need to have someone look at the IB scans and compare with where you are now to get more feedback on what is already close enough and what should be tweeked further. ;) (hint, hint)

-G

Post
#610705
Topic
Idea: a Collaboration for something better than the GOUT!
Time

pittrek said:

I tell it to you this way - I started myself a project VERY similar to this (using different sources for different shots). Then I started it again. And again. And again. And again .....

 

However if a reasonable amount of people is in, I would like to try it

 

I believe it! What the heck, could be fun, so count me in for whatever I can do to help.

-G

Post
#609481
Topic
STAR WARS - Special Widescreen Edition (Technidisc) (Released)
Time

bkev said:

Was the script custom made for this film or would it work on any LD capture?

I worked up the script for msycamore's transfer, but it should work with rainbowing in general. I don't mind if msycamore wants to post the script. It's not really a new idea or anything, just re-purposed for chroma from a brilliant concept by Didee over at the doom9 forum.

-G

Post
#607670
Topic
Harmy's STAR WARS Despecialized Edition HD - V2.7 - MKV (Released)
Time

Harmy,

You know I'm a big fan, and I also think you are a very reasonable person. I would like to request that you reconsider your position of limiting criticism of your work in PMs only. I realize that you would like to keep the magic alive for those that don't notice the very few small problems that exist, but to ask that we don't discuss it at all is a form of censorship that goes against what everyone here strives for. Ultimately it keeps us from the goal of attaining a truely high-quality version of the movies we all love and remember by artifically creating the sense that we are already there. (IMHO, you have put us really darn close).

Maybe a second thread could be created for suggestions for improvements? Or, just make this a free-for-all. 99% of the people that comment are still going to be in pure admiration of your work as a whole. And, you don't have to respond to each criticism if you don't want to.

Again, this is just one person's suggestion, and ultimately I will respect your wishes.

Keep up the GREAT work! Those last screenshots are great improvements!

-G

Post
#607284
Topic
Harmy's STAR WARS Despecialized Edition HD - V2.7 - MKV (Released)
Time

dr.olds said:

Harmy said:

Well, it's true that it kind of sucks having to go through these obscure ways to download something as small and simple as subtitles.

i agree . i'm creating/translating subtitles myself , and when i have finished it i do upload it to a simple database (like opensubs) , where everybody can get them without any trouble or signing up anywhere . why go a more difficult way ? i have no idea ...

Well, none of this stuff is easy... So if I can help by getting you a Spleen invite, send me a PM.

-G