zee944
16th November 2008, 19:53
I regularly do projects where I have multiple cuts on multiple prints of the same movie, and I marry them into one.
Sometimes it's quite hard to fit them together and make them look like they're from the same source. Setting the right luma levels and right colors are especially tricky. This is how I do it recently:
At first, I try to adjust gamma or contrast to achieve similar luma levels to the reference footage.
Levels(0, <gamma level>, 255, 0, 255, coring=false)
ColorYUV(cont_y=50, cont_u=50, cont_v=50)
It's often not satisfiing, so I've to go the more difficult way. I start VirtualDub, load "gradation curves" filter (by Alexander Nagiller), and draw an arbitrary levels curve in "RGB weighted" mode. Drawing the artbitrary curve is the most time-consuming part of the whole method.
http://i179.photobucket.com/albums/w286/zee944/gradation_curves.jpg
I save it as an .amp file and I load it in VirtualDub with GiCoCu filter.
ConvertToRGB32
MergeChroma(GiCoCU("arbitrary_levels_curve.amp",photoshop=true).ConvertToYUY2,last.ConvertToYUY2)
Setting up the colours is tricky too. I usually compare the reference video with the new video by looking at them and the values RGBAdjust(Analyze=True) shows. In a few cases it's enough to set the same R, G, B values in the new video. But this is rare. In half of the cases the solution is the reference values with the same multiplier. So if the reference R, G, B values were 100, 70 and 140, then 130, 91 and 182 (multiplier = 1.3) will maintain the same relation between the colours and would work. In the other half the cases, slightly different values are the good ones. To sum it up, the original RGB values are good for a take-off, the rest needs lots of trying instead of calculating.
RGBAdjust(1.232, 1.058, 0.977)
Sometimes I adjust saturation, too.
Tweak(sat=0.8)
An example:
http://i179.photobucket.com/albums/w286/zee944/TD_sample_original.jpg
http://i179.photobucket.com/albums/w286/zee944/TD_sample_new.jpg
http://i179.photobucket.com/albums/w286/zee944/TD_sample_new_adjusted.jpg
Question to those who are experienced in this kind of thing:
1. The most time-consuming thing is to draw an arbitrary levels curve. Is there a way I could (half-)automate it? If you have a 'reference' frame and the same frame from another print, how would you do it yourself?
2. Can the optimal color balance be foolproofly calculated? A larger bare surface can ruin my simple calculation. ColourLike() (http://forum.doom9.org/showthread.php?t=96308) is for the same goal, but I could never get it to work, and just by judging from the thread it isn't free of side effects.
If I can't improve it, I hope at least this will give a few ideas to others.
Thanks for any input.
Sometimes it's quite hard to fit them together and make them look like they're from the same source. Setting the right luma levels and right colors are especially tricky. This is how I do it recently:
At first, I try to adjust gamma or contrast to achieve similar luma levels to the reference footage.
Levels(0, <gamma level>, 255, 0, 255, coring=false)
ColorYUV(cont_y=50, cont_u=50, cont_v=50)
It's often not satisfiing, so I've to go the more difficult way. I start VirtualDub, load "gradation curves" filter (by Alexander Nagiller), and draw an arbitrary levels curve in "RGB weighted" mode. Drawing the artbitrary curve is the most time-consuming part of the whole method.
http://i179.photobucket.com/albums/w286/zee944/gradation_curves.jpg
I save it as an .amp file and I load it in VirtualDub with GiCoCu filter.
ConvertToRGB32
MergeChroma(GiCoCU("arbitrary_levels_curve.amp",photoshop=true).ConvertToYUY2,last.ConvertToYUY2)
Setting up the colours is tricky too. I usually compare the reference video with the new video by looking at them and the values RGBAdjust(Analyze=True) shows. In a few cases it's enough to set the same R, G, B values in the new video. But this is rare. In half of the cases the solution is the reference values with the same multiplier. So if the reference R, G, B values were 100, 70 and 140, then 130, 91 and 182 (multiplier = 1.3) will maintain the same relation between the colours and would work. In the other half the cases, slightly different values are the good ones. To sum it up, the original RGB values are good for a take-off, the rest needs lots of trying instead of calculating.
RGBAdjust(1.232, 1.058, 0.977)
Sometimes I adjust saturation, too.
Tweak(sat=0.8)
An example:
http://i179.photobucket.com/albums/w286/zee944/TD_sample_original.jpg
http://i179.photobucket.com/albums/w286/zee944/TD_sample_new.jpg
http://i179.photobucket.com/albums/w286/zee944/TD_sample_new_adjusted.jpg
Question to those who are experienced in this kind of thing:
1. The most time-consuming thing is to draw an arbitrary levels curve. Is there a way I could (half-)automate it? If you have a 'reference' frame and the same frame from another print, how would you do it yourself?
2. Can the optimal color balance be foolproofly calculated? A larger bare surface can ruin my simple calculation. ColourLike() (http://forum.doom9.org/showthread.php?t=96308) is for the same goal, but I could never get it to work, and just by judging from the thread it isn't free of side effects.
If I can't improve it, I hope at least this will give a few ideas to others.
Thanks for any input.