logo Sign In

Color correcting the 2011 OT Blu Rays (* unfinished project *) — Page 2

Author
Time

Here's what you get when you re-map the blue channel so that 255 goes to 200 linearly:

original DVD:

Author
Time

Avisynth code:

luma=last

ConvertToRGB()

r=ShowRed()
g=ShowGreen()
b=ShowBlue().Levels(0, 1, 255, 0, 200)

MergeRGB(r,g,b)

ConvertToYV12()

MergeChroma(luma,last)

Author
Time
 (Edited)

Darth Editous said:

Shouldn't those converts be using matrix="rec709"?

DE

Yes; they should, assuming HD output. 

I actually quite like the yellow look of those screenshots, but only as a new look.

Author
Time
 (Edited)

No offense, but that setting not only makes the movie too much yellow, it also makes it even more dark.

And Chewtobacca: On avisynth wiki it says:

The second one (Rec.709) should be used when your source is DVD or HDTV:

ConvertToRGB(clip, matrix="rec709")

So it's not about output but input it seems.

Author
Time
 (Edited)

You_Too said:



And Chewtobacca: On avisynth wiki it says:


The second one (Rec.709) should be used when your source is DVD or HDTV:
<pre>ConvertToRGB(clip, matrix="rec709")</pre>


So it's not about output but input it seems.


It should technically be on both. Whatever you play the final output on should be expecting something that's been encoded with the rec709 matrix. The effect of using the wrong matrix is a slight remixing of RGB channels, which you may find gives a result more to your liking anyway.

DE

Author
Time

Thanks for the feedback guys!

Thanks DE, I forgot that avisynth defaults to rec. 601. Stupid!

Here's what you get by setting the blue output from 255 to 235, and overall gamma of 1.2

 

Author
Time

You_Too said:So it's not about output but input it seems.

Whenever you convert from RGB to YUV and back again, you have specify the matrix.  ConverttoYV12() is wrong if you intend to output HD.

Author
Time

Chewtobacca said:



You_Too said:So it's not about output but input it seems.


Whenever you convert from RGB to YUV and back again, you have specify the matrix.  ConverttoYV12() is wrong if you intend to output HD.


Unless you're happen to like the way it alters the colours - it's still valid in that sense.

DE

Author
Time

pittrek said:

Looks much better g-force !

 Thanks man. Still blinded by the slightly over-yellow but otherwise stellar colors of msycamore's capture.

Now to figure out why the reds are now magenta on the DVD/BRs...

Author
Time

Thought that has been running through MY mind on the topic - what if someone were to simply generate histograms from Adywan's CC'd HD broadcasts and then applied the histograms to the extracted BD files?  Much like the original ideas was with Paul and correcting the DVDs based on the GOUT.  It seems like that would be a better place to start than trying to find a global correction, no?  Only question I would have is of a technical nature - can you demux, CC, and recode without so much loss of data and compression that it ends up being better than the original CC'd HD broadcasts?

Author
Time

The images seem too dark, though.

And in the time of greatest despair, there shall come a savior, and he shall be known as the Son of the Suns.

Author
Time

LexX said:

The images seem too dark, though.

 Agreed.

Author
Time
Hi g-force. Do you have additional tweaks still planned or is that your "ideal" setting listed above for Star Wars? Thanks for all your work!
Author
Time
 (Edited)

Funcha said:

Hi g-force. Do you have additional tweaks still planned or is that your "ideal" setting listed above for Star Wars? Thanks for all your work!

 Sorry, been out of the loop a bit, I didn't even see this post.

Some major progress was made, it seems I was mistaken thinking things were too blue. They are actually too violet. Here is my latest script, it's not 100% yet, but probably as close as I'm gonna get without some feedback:

o4=last
mt_lutxy(o4,o4.Tweak(hue=-90,coring=false,starthue=315,endhue=135),"y",y=2,u=3,v=2)
mt_merge(o4,last,o4,luma=true,y=2,u=3,v=3)
Tweak(hue=-45)
SmoothCurve("0-0;128-158;255-255","0-0;20-0;128-128;255-235","0-62;50-67;100-102;128-125;255-252",dither=100,show=false)
Tweak(hue=50,sat=1.3)

You will need LaTo's plugin Smoothadjust, which you can get here:

http://forum.doom9.org/showthread.php?t=154971

Anyone willing to try it out and post some screencaps?

-G

Author
Time
Looks nice, from what little I've been able to sample on the MeGui video preview screen. Interestingly enough, I applied your script to Empire and Jedi and browsed a few scenes, which look quite excellent. Empire still maybe just slightly too blue, but overall a HUGE improvement. Vader's saber is a bright red in each too. Are you planning to do a set of settings for the latter two of the OT also? Thanks!
Author
Time
Finally got a chance to take a bit of a more detailed look at some scenes. Haven't rendered a final version yet. The blast flashes and explosions on the Blockade Runner look excellent. Love the saturated rich colors but not sure if they're maybe slightly too saturated. Flesh tones seem to shift slightly toward the sunburned in a few spots (blockade runner troopers). Not sure if that’s just something that would need to be tweaked by scene. The only other thing that seems to stick out to me is there appears to be ever so slight of a green tint to the movie now. Some shadow details appear to almost have a greenish cast, at least to my eyes and 3P0 at times almost appears to have a slightly greenish gold tint. Not sure if that was maybe your intent as I’m hearing supposedly some prints had this tint from others on this forum. Of course, this is very subjective so you may be seeing something entirely different. Thanks for your efforts!
Author
Time

Funcha said:

Finally got a chance to take a bit of a more detailed look at some scenes. Haven't rendered a final version yet. The blast flashes and explosions on the Blockade Runner look excellent. Love the saturated rich colors but not sure if they're maybe slightly too saturated. Flesh tones seem to shift slightly toward the sunburned in a few spots (blockade runner troopers). Not sure if that’s just something that would need to be tweaked by scene. The only other thing that seems to stick out to me is there appears to be ever so slight of a green tint to the movie now. Some shadow details appear to almost have a greenish cast, at least to my eyes and 3P0 at times almost appears to have a slightly greenish gold tint. Not sure if that was maybe your intent as I’m hearing supposedly some prints had this tint from others on this forum. Of course, this is very subjective so you may be seeing something entirely different. Thanks for your efforts!

Thanks for the feedback Funcha! I've had some time to work on this some more recently, and I am torn about the darks being green. It was originally a result of removing the overall magenta/violet tint, and I kinda like how it matches some 70mm prints, but maybe not a good representation of what the colors were intended to look like.

I'm also considering scaling back on the magenta-to-orange a bit, as some things that should be magenta are now just red. I hope to come to a compromise so that the blockade trooper explosions still look good though.

Could you give me a good example of the "sunburned" shift, so I know where to look to check that I don't go too far with anything?

-G

Author
Time

Okay, made some changes. I decreased the overall saturation boost as you suggested Funcha. Here's my most recent color tweaks:

dv1=mt_lutxy(last,last.Tweak(hue=-90,coring=false,starthue=315,endhue=135),"y",y=2,u=3,v=2)
dv2=last.Tweak(hue=-45,coring=false).SmoothCurve("0-0;255-255","0-0;255-255","0-0;128-128;255-128",dither=100,show=false,interp=0).Tweak(hue=45,coring=false)
dv3=mt_merge(dv2,dv1,last,luma=true,y=2,u=3,v=3)
mt_average(last,dv3,y=2,u=3,v=3)
mt_merge(last,last.Tweak(sat=1.5,coring=false),last,luma=true,y=3,u=3,v=3)
Tweak(hue=-45,coring=false)
SmoothCurve("0-0;128-158;255-255","0-0;128-128;255-235","0-20;128-125;255-255",dither=100,show=false)
Tweak(hue=50,sat=1.1,coring=false)

Feedback is much appreciated.

 

-G

Author
Time

skyjedi2005 said:

In Lowry's defense the final color grading was done before it was sent to them and fucked up by Lucas.  They were only given a 1080P master to work with its hard to recover detail that is not there, especially when you dvnr the hell out of a 1080 scan.  That was not even state of the art in 2004, despite the bs claims of the Lucas folks during the hype of the BD release.

Try that would have been state of the art circa 2001.

And would have been excusable for the dvd format because the sins of the dvnr would not show as bad.  To use that same master for the blu rays and not do a new 4k or 8k scan is laughable to say the least.

I couldn't agree more. Not that I personally have much if any love for the SE anyway. You look at all the previous releases - Laserdisc after Laserdisc it was a new Telecine all the time! Then, because Lucas is an arse, he refused to release the 1997 SE on DVD. In 2000, I think, he released the Special Editions on VHS and Laserdisc! How pathetic you don't even release it on the current technological medium. The DVD didn't come until 2004. The bluray didn't come until 2011. That's SEVEN full years later. Lucas has managed to make more changes to the thing, and only he can explain why, and yet he didn't do a new transfer. As for 8k scan, I think 4k would be well enough for these films, after all 1080p does reproduce "nearly all" of the resolution.

Noise Reduction is fine when done properly. Lucas on the other hand always wants far more than should be applied, he basically doesn't want to see evidence of his movie being shot on 35mm, he wants to be able to pretend it was shot in digital.

[ Scanning stuff since 2015 ]

Author
Time
 (Edited)

g-force said:

Here's what you get by setting the blue output from 255 to 235, and overall gamma of 1.2

SmoothCurve( "0-0;128-158;255-255", "0-0;20-0;128-128;255-235", "0-62;50-67;100-102;128-125;255-252", dither=100, show=false )
You will need LaTo's plugin Smoothadjust, which you can get here:

I believe there are 2 misguided approaches here. First is spectrum clipping , which should never be used (while data is present) because it removes that precious information. Always slide the spectrum to where you want it, for example by adjusting gamma (but gamma itself is too specialized for this application). Second is correction should be accomplished in RGB only. Other approaches (like with SmoothCurve() using YUY2, YV12, et al, colorspaces) are not intuitive and make unintended alterations in other parts of the spectrum.

For global correction, manipulate the spectrum in RGB colorspace by setting what should be picture greys to R=G=B greys. This technique is often called "white balance". Use a "curves" function (most paint programs have one, as in my example below) where one may set the "in" and "out" of any number of arbitrary points and the program re-curves the spectrum to fit. For this proof of concept, I selected test points at low=100 and high=200 (low, medium, and high points, equally spaced across the 0-255 range, would produce an even better result):


I used "the captured princess" shot as my representative sample because it had "without doubt" pure whites (white storm trooper armor under white illumination) from dark to bright -- the posted DVD originals are on the left; the resultant adjustments are on the right. Overall, it fixes everything quite well. However, due to a whole assortment of reasons, a single adjustment may not hold true throughout and exception-adjusts should be made on a shot-by-shot basis where needed.

For this proof-of-concept, the base line (unaltered) is Blue and adjustments for true greys were made to Red and Green, as shown. Points selected for testing were Blue at roughly "100" (shadow) and "200" (hi-light) on what should be truly white objects. This is science, so use an "eye-dropper tool" and get real numbers. Then adjust the corresponding Red and Green to also equal 100 and 200 on those points. In this case:
* Red_low_input = 100 ... Red_low_output = 110
* Red_high_input = 200 ... Red_high_output = 220
* Green_low_input = 100 ... Green_low_output = 110
* Green_high_input = 200 ... Green_high_output = 215
and the rest of the color spectrum takes care of itself.

Use an Avisynth filter to do this as would a paint program (I vaguely remember seeing one, some time ago, somewhere). Otherwise, you must manually extract the 0-255 point adjusts from on your paint program curve (tedious) and otherwise apply them in Avisynth.

Author
Time

Spaced Ranger said:

... (I vaguely remember seeing one, some time ago, somewhere).

I know that wasn't very helpful. So I found the references (have never implemented them myself ... but will):

GiCoCu - Reproduces Photoshop's handling of amp-files and Gimp's handling of color curve files in Avisynth
http://avisynth.org.ru/docs/english/externalfilters/gicocu.htm


Gradation Curves
- edit the gradation curves similar to those in paint programs, with data import & export, for VirtualDub
http://members.chello.at/nagiller/vdub/index.html
and development thread
http://forum.doom9.org/showthread.php?t=133191

Using VirtualDub plug-ins in AviSynth (last post)
http://forum.doom9.org/showthread.php?p=1018607

How to achieve "film look" on PAL DV source - informative & insightful on what is nearly the same as our color correctings (with refs to above plug-ins)
http://forum.doom9.org/showthread.php?t=87791

 

Author
Time

here's an updated script for anyone who's interested.

o4=last
o4.Tweak(hue=-45,coring=false).SmoothCurve("0-0;255-255","0-0;255-255","0-0;128-128;255-128",dither=100,show=false,interp=0).Tweak(hue=45,coring=false)
mt_average(o4,last,y=2,u=3,v=3)
mt_average(o4,last,y=2,u=3,v=3)
Tweak(hue=-45,coring=false)
SmoothCurve("0-0;128-158;255-255","0-0;20-0;128-128;255-235","0-40;128-128;255-255",dither=100,show=false)
Tweak(hue=45,coring=false)
x=Tweak(hue=-45,coring=false).mt_lut("x 3 -",y=2,u=2,v=3).Tweak(hue=45,coring=false)
mt_merge(last,x,last.SmoothCurve("0-0;128-128;255-0","0-0;255-255","0-0;255-255",dither=100,show=false),luma=true,y=2,u=3,v=3)
satmask=mt_lutxy(last,last.swapUV,"x 128 - 2 ^ y 128 - 2 ^ + 5.5 * .5 ^",y=2,u=2,v=3).VtoY().spline16resize(width(last),height(last))
mt_merge(last.Tweak(sat=1.7,coring=false),last.levels(0,1.5,255,0,255,coring=false),satmask,luma=true,y=3,u=3,v=3)