logo Sign In

Williarob

User Group
Members
Join date
9-Apr-2007
Last activity
16-Jun-2025
Posts
915
Web Site
http://www.thestarwarstrilogy.com

Post History

Post
#1050969
Topic
Info: James Bond - Laserdisc Preservations: 1962-1971
Time

Sorry Guys, I lost it. I recorded the 1 am show Saturday night/Sunday Morning and was going to transfer it from the DVR this morning, but it’s gone. It was there when I went to bed last night but now it’s gone. I can see it in the list of deleted items but I can’t restore it. I think it’s because I made the mistake of watching 30 minutes of the Oscars last night while waiting for other shows to start and evidently my DVR decided to record the Oscars for me after I switched over, and it bumped OHMSS since it was the biggest file on there to make room. When the OSCARS ended and I hadn’t switched back, it just deleted that recording too. I called Verizon and spoke with their technicians but they tell me that it was essentially ‘taped over’ so it is gone and I can’t get it back.

MGM HD currently has no titles at all On Demand, and OHMSS is not scheduled to air again any time soon, so I’m pretty disappointed at the moment. If it comes on again I’ll try again and next time I’ll lock it to prevent deletion.

Post
#1044076
Topic
GOUT Technicolor regrade (single pass) (* unfinished project * - lots of info)
Time

Mavimao said:

If I’m not mistaken, if the Bluray were GOUT synced, one could apply these colors easily, right?

No, it’s not a matter of being sync’d. The GOUT appears to have had a single color correction applied to it, which allows us to apply a single LUT to correct the whole film. For example, if the GOUT is 10 points too red, it is 10 points too red on every frame, therefore we can apply a universal correction to reduce the red by 10 points and the whole film will look better.

On the blu-ray, the colors are all over the place, so this sort of universal correction will only improve some of the shots, while making others look worse. While the whole blu-ray can be greatly improved with a single LUT (as JawsTDS proves here http://originaltrilogy.com/post/id/1042832, it would not be possible to match the colors of all the shots in a single pass).

Post
#1043094
Topic
The theatrical colors of the Star Wars trilogy
Time

I realize this issue has largely been put to bed and I’m not trying to start any new arguments about it - I think we’ve all agreed that the shot is supposed to be at least a little green, but I was flicking through my UK souvenir program of Star Wars and spotted this, so I scanned it in:

Imgur

Obviously not a reliable color reference for many reasons, but interesting because I’ve never seen the Leia and R2 shot look so green anywhere else.

Post
#1041763
Topic
GOUT Technicolor regrade (single pass) (* unfinished project * - lots of info)
Time

Unfortunately, a single pass regrade of the SSE probably won’t be so easy: It uses several different sources and most scenes were graded independently, more than once, by more than one person… And then I applied a one size fits all LUT on top of that to get it to where it is now.

Edit: Never mind, I see that’s not what you were suggesting: Use the regraded GOUT as a guide to regrade the SSE.

Post
#1039298
Topic
Neverar's A New Hope Technicolor Recreation <strong>(Final Version Released!)</strong>
Time

Chewtobacca said:

Williarob said:
…all you need is the following levels adjustment in AVISynth…

It’s unlikely to be as straight forward as that (or it would have been spotted long ago)…

I agree, but what else can it be? If the white data can be recovered it has to have a value 255 or less, because the blu-rays are 8-bit RGB color.

Post
#1039269
Topic
Neverar's A New Hope Technicolor Recreation <strong>(Final Version Released!)</strong>
Time

So the blu-rays were encoded RGB Full, rather than RGB limited?

As I understand it, TVs use a video range from 16-235. It considers levels below 16 to be black, and information above 235 is white. A calibrated TV will never display anything below 16 as anything other than black. Most will also treat everything over 235 as white since it should not exist in video content.

PCs are different and use a range from 0-255. There is no data below 0 or above 255 with an 8-bit video signal as there are only 256 possible values. In short, this is much simpler to understand as the TV concepts of Blacker-than-Black and Whiter-than-White do not exist.

Therefore to make the conversion between RGB Full (“PC Mode”) and RGB Limited (“TV Mode”) all you need is the following levels adjustment in AVISynth

// PC to TV ; scales a [0,255] clip to [16,235]:
Levels(0, 1, 255, 16, 235, coring=false)

Post
#1036197
Topic
Star Wars DVD Covers
Time

I’ve had most (but not all!) of the old covers being posted here, sitting on a hard disk for years. Since the photobucket links will probably eventually die and leave these pages looking rather bare, I have uploaded about 4 GB (so far) to my site. Many of them are the same as posted above, but at a higher resolution.

I’m still generating the pages to host them so not all of them are accessible yet but they will be soon.

http://thestarwarstrilogy.com/starwars/page/Star-Wars-Cover-Art-Archive

http://thestarwarstrilogy.com/starwars/page/The-Empire-Strikes-Back-Cover-Art-Archive

http://thestarwarstrilogy.com/starwars/page/Return-of-the-Jedi-Cover-Art-Archive

… more to come

Post
#1036135
Topic
Neverar's A New Hope Technicolor Recreation <strong>(Final Version Released!)</strong>
Time

towne32 said:

Williarob said:

(1978 Swedish bootleg)

I don’t doubt that it was a bit green in theaters. But the bootleg (as with any amateur video from that era) has a lot of color artifacts that look green even in the black bars. Balanced out it might look a bit more mild and really not too bad at all (I think some of the balances of people’s own colorations here can look nice too even when green).

I agree with you completely, but I thought I’d throw it out there because it definitely looks green.

I’m not 100% certain, but I believe this was an in theater recording (a telesync rather than a telecine). Not sure if they recorded the ambient audio or if it was done in the booth and connected directly to the sound equipment there, but I’m pretty sure I could hear an audience cheering and clapping at the end when they get their medals. Modern cameras of course have things like auto white balance and can color correct on the fly, but I doubt consumer grade cameras in the '70s could do that. I don’t have the original tape and I didn’t make the capture myself, but it certainly doesn’t look like any attempt has been made to color correct it. Of course it is a very old tape, and it had to be captured digitally so make of it what you will.

I’m not sure how useful it is for reference purposes but I checked and this particular bootleg does not appear to be on the spleen. (704x576, 25 fps, interlaced, MPEG 2, English Audio, Hardcoded Sweedish Dutch Subs, 3.77 GB). If you would like to upload a copy of this to the spleen, send me a PM.

Quality is about what you’d expect, which is to say absolutely awful by today’s standards!

Post
#1036073
Topic
Neverar's A New Hope Technicolor Recreation <strong>(Final Version Released!)</strong>
Time

It was green in '77, but revised when the telecines were created for home video. Then we watched it this way for the next 35 years so that’s how we expect it to look - interestingly, the 35mm 1997 SE print has the same revised color timing on this shot as the home video releases:

Imgur

But it wasn’t like that in Theaters:

Imgur

(1978 Swedish Dutch bootleg)

Post
#1029331
Topic
Neverar's A New Hope Technicolor Recreation <strong>(Final Version Released!)</strong>
Time

I use After Effects for stabilization. I find the image registration is more useful to me for overlaying one source on top of another, for example when erasing CGI dinosaurs…

I was just reading above a little about the troubles adjusting 3P0 and wondered if you had tried out 3D LUT Creator? http://3dlutcreator.com/ It makes adjusting individual colors real simple.

Color Cone is another great tool for this: (http://www.picture-instruments.com/home/index.php)

Post
#1029311
Topic
Neverar's A New Hope Technicolor Recreation <strong>(Final Version Released!)</strong>
Time

NeverarGreat said:

Williarob said:

NeverarGreat said:

UnitéD2 said:

Thanks to you Neverar and another question : when you recruit color from another source, does it mean you combine luminance information from the BR and chrominance from the source ?

That’s it exactly. I usually replace 50-90% of the chroma with the improved source, sometimes just a few gradients or a small part of the frame, but sometimes the entire frame gets the chroma replaced. In the first 4 reels, I’ve probably replaced the entire color of just 5 or 6 shots, but reel 6 in particular has such horrible color problems that during the dogfight it’s used on probably 1/3 of the shots. It’s surprisingly effective, but it’s essential to make sure everything is registered throughout the shot or you get worse problems like color fringing.

What tools do you use for image registration? Or do you do it manually? I’ve tried Elastix, some ImageJ plugins, and Photoshop’s Auto align layers usually works pretty well.

I’ve done it manually so far, the same process that I used for registering the lightsabers in the Obi/Vader battle. I’ve tried Auto Align Layers on some warped sources and it didn’t improve things, so I didn’t even consider it for this purpose. I suppose that would work though. It would need to be individual images run through as a batch process, right?

That’s right. The weird thing is though, I can only seem to batch it in Photoshop CS3. All newer versions just skip right over the image alignment. I’ve tried it in every version! And it doesn’t matter if I use a recorded action, or pure Javascript, either way, it just doesn’t do the alignment unless I run it in CS3. But here is the script:

/// Begin Script

// options
var folder1 = “Z:/Reel1/Working/{ShotNumber}/Source1”;
var folder2 = “Z:/Reel1/Working/{ShotNumber}/Source2”;
var OutputFolder = “Z:/Reel1/Working/{ShotNumber}/Registered”;

var startFrame = 1;
var endFrame = 150;

cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };

// Loop through the Print A frames
for(var x = startFrame; x <= endFrame; x++)
{
// convert number to 6 digit, 0 padded string Id
var frameId = x+"";
while (frameId.length < 6) frameId = “0” + frameId; // pad fileId with 0s

// open the print A file
var printADocRef = new File(folder1 + "/Print_A_" + frameId + ".tif");
var printADoc = open(printADocRef);

// open the matching print B file
var printBDocRef = new File(folder2 + "/Print_B_" + frameId + ".tif");
var printBDoc =  open(printBDocRef);

// activate the Print A
app.activeDocument = app.documents.getByName( "Print_A_" + frameId + ".tif" );
		
// select all & copy (SelectAllAndCopy)
app.doAction("SelectAllAndCopy","Default Actions.atn");

// activate the print B doc
app.activeDocument = app.documents.getByName( "Print_B_" + frameId + ".tif" );
	
// perform the alignment
Align();

    // Note: to run your own recorded action(s) use:
//app.doAction("MyActionName","Default Actions.atn");

// remove the print B layer to minimize file size.
app.activeDocument.layers["Layer 0"].remove();

/*
// optional: save the file as a psd
var psd_Opt = new PhotoshopSaveOptions();
psd_Opt.layers = true; // Preserve layers.
psd_Opt.embedColorProfile = true; // Preserve color profile.
psd_Opt.annotations = true; // Preserve annonations.
psd_Opt.alphaChannels = true; // Preserve alpha channels.
psd_Opt.spotColors = true; // Preserve spot colors.
// Save active document in the Auto Save folder
app.activeDocument.saveAs( File( OutputFolder + "/Debug_R1_" + frameId + ".psd" ), psd_Opt, true );
*/

// set the new filename and path
var myFilePath = OutputFolder + "/Print_A_" + frameId + ".tif";

// tiff file options
var tiffFile = new File(myFilePath);
tiffSaveOptions = new TiffSaveOptions();
tiffSaveOptions.byteOrder = ByteOrder.IBM;
tiffSaveOptions.layers = false;
tiffSaveOptions.transparency = false;
tiffSaveOptions.alphaChannels = false;
tiffSaveOptions.interleaveChannels = false;
tiffSaveOptions.embedColorProfile = false;
tiffSaveOptions.imageCompression = TIFFEncoding.TIFFLZW;
tiffSaveOptions.saveImagePyramid = false;

// finally save out the document 
app.activeDocument.saveAs(tiffFile, tiffSaveOptions, true, Extension.LOWERCASE);

// close all open documents
while (documents.length > 0) {
	app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}

} // loop to the next pair of files

// !!! No editing necessary below this line !!!

// Helper functions
function inArray(needle,haystack)
{
var count=haystack.length;
for(var i=0;i<count;i++)
{
if(haystack[i]===needle){return true;}
}
return false;
}

//
//==================== AlignAndFix ==============
//
function Align() {
// Set
function step1(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty(cTID(‘Lyr ‘), cTID(‘Bckg’));
desc1.putReference(cTID(‘null’), ref1);
var desc2 = new ActionDescriptor();
desc2.putUnitDouble(cTID(‘Opct’), cTID(’#Prc’), 100);
desc2.putEnumerated(cTID('Md '), cTID(‘BlnM’), cTID(‘Nrml’));
desc1.putObject(cTID('T '), cTID('Lyr '), desc2);
executeAction(cTID(‘setd’), desc1, dialogMode);
};

// Set
function step2(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty(cTID(‘Chnl’), sTID(“selection”));
desc1.putReference(cTID(‘null’), ref1);
desc1.putEnumerated(cTID('T '), cTID(‘Ordn’), cTID(‘None’));
executeAction(cTID(‘setd’), desc1, dialogMode);
};

// Paste
function step3(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
desc1.putEnumerated(cTID(‘AntA’), cTID(‘Annt’), cTID(‘Anno’));
executeAction(cTID(‘past’), desc1, dialogMode);
};

// Select
function step4(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putName(cTID('Lyr '), “Layer 0”);
desc1.putReference(cTID(‘null’), ref1);
desc1.putBoolean(cTID(‘MkVs’), false);
executeAction(cTID(‘slct’), desc1, dialogMode);
};

// Select
function step5(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putName(cTID('Lyr '), “Layer 1”);
desc1.putReference(cTID(‘null’), ref1);
desc1.putEnumerated(sTID(“selectionModifier”), sTID(“selectionModifierType”), sTID(“addToSelectionContinuous”));
desc1.putBoolean(cTID(‘MkVs’), false);
executeAction(cTID(‘slct’), desc1, dialogMode);
};

// Align
function step7(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putEnumerated(cTID('Lyr '), cTID(‘Ordn’), cTID(‘Trgt’));
desc1.putReference(cTID(‘null’), ref1);
desc1.putEnumerated(cTID(‘Usng’), cTID(‘ADSt’), sTID(“ADSContent”));
desc1.putEnumerated(cTID(‘Aply’), sTID(“projection”), cTID(‘Auto’));
executeAction(cTID(‘Algn’), desc1, dialogMode);
};

// Select
function step8(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putName(cTID('Lyr '), “Layer 0”);
desc1.putReference(cTID(‘null’), ref1);
desc1.putBoolean(cTID(‘MkVs’), false);
executeAction(cTID(‘slct’), desc1, dialogMode);
};

// Hide
function step9(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var list1 = new ActionList();
var ref1 = new ActionReference();
ref1.putName(cTID('Lyr '), “Layer 1”);
list1.putReference(ref1);
desc1.putList(cTID(‘null’), list1);
executeAction(cTID('Hd '), desc1, dialogMode);
};

// Set
function step10(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty(cTID(‘Chnl’), sTID(“selection”));
desc1.putReference(cTID(‘null’), ref1);
var ref2 = new ActionReference();
ref2.putEnumerated(cTID(‘Chnl’), cTID(‘Chnl’), cTID(‘Trsp’));
desc1.putReference(cTID('T '), ref2);
executeAction(cTID(‘setd’), desc1, dialogMode);
};

// Crop
function step11(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
executeAction(cTID(‘Crop’), desc1, dialogMode);
};

step1(); // Set
step2(); // Set
step3(); // Paste
step4(); // Select
step5(); // Select
step7(); // Align
step8(); // Select
//step9(); // Hide
step10(); // Set
step11(); // Crop

};

/// End Script

Most of the bottom part is just the recorded actions converted to Javascript. Just copy it and paste it into a text editor, edit the file paths and the filenames and your start and end numbers and then save it with a .jsx extension. It assumes the images are numbered as a tiff image sequence, e.g. “Print_A_000001.tif”.

To run it, just go to “File -> Scripts -> Browse…” But like I say, I can only get it to work in CS3. If you can make it work in other versions, do let me know!

It works well on most scenes in the film, though not on star fields, smoke filled corridors or especially high motion sequences where frames are just a blur and there are no edges to be found and lined up.