16mm Film transfer image enhance

Comments

rs170a wrote on 5/12/2011, 9:02 AM
...find a copy of an old script called "Flicker Buddy,"...

There are times that I'm glad I'm a hoarder :)
Copy and save it as FlickerBuddy.js

Mike




/*
* Copyright (c) 2004, Folding Rain Filmworks Inc.
*
* author: Joe Howes (joeh@guild1.com)
*
* Sometimes Vegas' Smart Resample doesn't do a great job of determining
* when a video event in fact needs to be resampled.
*
* One area it fails in is taking certain Quicktime media in PAL format
* and placing them in an NTSC project or rendering them out as NTSC.
* Sometimes it's ok, but if you've ever used Quicktime media captured
* by another NLE (FCP, for instance), you'll notice severe
* flicker on your output monitor even if you check the "Reduce Interlace
* Flicker" switch. This can be a HUGE problem if you've got a large
* project in multiple files and you'll be outputting various formats
* (web, NTSC, PAL).
*
* The Flicker Buddy is a quick way to set your flicker and resample
* settings for either selected media or media with a certain type of
* extension (of course it defaults to 'mov' since I'm using it in a
* setting with lots of media captured in FCP).
*
* In my case, going from PAL Quicktimes captured in FCP and rendering
* to NTSC on Vegas, I had to reduce interlace flicker and disable
* resampling. All other media (AVI, other animations) were fine.
* When outputting PAL, I wanted to turn off 'Reduce Interlace Flicker'
* and enable 'Smart Resample' to get the render times back down.
*
*
* USAGE:
* If you have a certain set of media on the timeline you want to affect,
* select them and run the script. If you want to affect all media of a
* certain extension, just run the script. Set your options in the dialog
* box and click 'Apply'.
*
* v1.0: Oct. 23, 2004
*/

import System.Windows.Forms;
import System.Text;
import System.Collections;
import Sony.Vegas;


/**
* MAIN
*/
try {

var done = false; // If nothing is done, let the user know
var dlog = new FlickerBuddyDialog(); // The GUI


// Show the GUI
if (DialogResult.OK == dlog.ShowDialog()) {

// For each track
for (var track in Vegas.Project.Tracks) {

// If the track is not video, skip it
if (!track.IsVideo()) {
continue;
}

// For each event
for (var evnt in track.Events) {

var go = false;
var filePath = evnt.ActiveTake.Media.FilePath;

// If the user wants to affect selected events, and this
// event is selected, GO.
if (dlog.applyToSelectedEventsRadio.Checked && evnt.Selected) {

go = true;

// Otherwise if they want to affect certain file types and this
// event is that type, GO.
} else if (dlog.applyToEventsWExtRadio &&
filePath.EndsWith(dlog.extensionTextBox.Text)) {

go = true;

}

if (!go) {
continue;
}

// Update the settings
done = true;
evnt.ReduceInterlace = dlog.reduceInterlaceFlicker.Checked;

if (dlog.smartResampleRadio.Checked) {

evnt.ResampleMode = VideoResampleMode.Smart;

} else if (dlog.forceResampleRadio.Checked) {

evnt.ResampleMode = VideoResampleMode.Force;

} else if (dlog.disableResampleRadio.Checked) {

evnt.ResampleMode = VideoResampleMode.Disable;

}

}

}

}


// Only bother the user if no events or media were changed.
if (!done) {
MessageBox.Show("No events affected.", "Done!");
}

} catch (e) {
MessageBox.Show(e);
}



/**
* CLASS: FlickerBuddyDialog
* The GUI.
*/
class FlickerBuddyDialog extends Form {

var applyToSelectedEventsRadio : RadioButton;
var applyToEventsWExtRadio : RadioButton;
var extensionTextBox : TextBox;

var reduceInterlaceFlicker : CheckBox;
var smartResampleRadio : RadioButton;
var forceResampleRadio : RadioButton;
var disableResampleRadio : RadioButton;

var addFXButton : Button;
var removeFXButton : Button;

var applyButton : Button;
var cancelButton : Button;

var eventsGroup : GroupBox;
var settingsGroup : GroupBox;


/**
* CONSTRUCTOR
* Init everything.
*/
function FlickerBuddyDialog() {

this.Text = "Flicker Buddy";
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.StartPosition = FormStartPosition.CenterScreen;

this.Width = 272;
this.Height = 265;


// Events
applyToSelectedEventsRadio = new RadioButton();
applyToSelectedEventsRadio.Location = new System.Drawing.Point(10, 20);
applyToSelectedEventsRadio.Size = new System.Drawing.Size(200, 16);
applyToSelectedEventsRadio.Name = "applyToSelectedEventsRadio";
applyToSelectedEventsRadio.TabIndex = 1;
applyToSelectedEventsRadio.add_Click(this.selectedEventsOnClick);
applyToSelectedEventsRadio.Text = "Apply to Selected Events";

applyToEventsWExtRadio = new RadioButton();
applyToEventsWExtRadio.Location = new System.Drawing.Point(10, 40);
applyToEventsWExtRadio.Size = new System.Drawing.Size(180, 16);
applyToEventsWExtRadio.Name = "applyToEventsWExtRadio";
applyToEventsWExtRadio.TabIndex = 1;
applyToEventsWExtRadio.Checked = true;
applyToEventsWExtRadio.add_Click(this.eventsWExtOnClick);
applyToEventsWExtRadio.Text = "Apply to Events with Extension: ";

extensionTextBox = new TextBox();
extensionTextBox.Location = new System.Drawing.Point(190, 38);
extensionTextBox.Size = new System.Drawing.Size(45, 16);
extensionTextBox.Name = "extensionTextBox";
extensionTextBox.TabIndex = 1;
extensionTextBox.Text = "mov";


// Events ParamGroup
eventsGroup = new GroupBox();
eventsGroup.Controls.Add(applyToSelectedEventsRadio);
eventsGroup.Controls.Add(applyToEventsWExtRadio);
eventsGroup.Controls.Add(extensionTextBox);
eventsGroup.Location = new System.Drawing.Point(8, 8);
eventsGroup.Name = "eventsGroup";
eventsGroup.Size = new System.Drawing.Size(250, 70);
eventsGroup.TabIndex = 4;
eventsGroup.TabStop = false;
eventsGroup.Text = "Events";

this.Controls.Add(eventsGroup);


// Settings
reduceInterlaceFlicker = new CheckBox();
reduceInterlaceFlicker.Location = new System.Drawing.Point(10, 20);
reduceInterlaceFlicker.Size = new System.Drawing.Size(145, 18);
reduceInterlaceFlicker.Name = "replaceExistingFXCheck";
reduceInterlaceFlicker.TabIndex = 6;
reduceInterlaceFlicker.Checked = true;
reduceInterlaceFlicker.Text = "Reduce Interlace Flicker";

smartResampleRadio = new RadioButton();
smartResampleRadio.Location = new System.Drawing.Point(10, 50);
smartResampleRadio.Size = new System.Drawing.Size(200, 16);
smartResampleRadio.Name = "smartResampleRadio";
smartResampleRadio.TabIndex = 1;
smartResampleRadio.add_Click(this.selectedEventsOnClick);
smartResampleRadio.Text = "Smart Resample";

forceResampleRadio = new RadioButton();
forceResampleRadio.Location = new System.Drawing.Point(10, 70);
forceResampleRadio.Size = new System.Drawing.Size(200, 16);
forceResampleRadio.Name = "forceResampleRadio";
forceResampleRadio.TabIndex = 1;
forceResampleRadio.add_Click(this.selectedEventsOnClick);
forceResampleRadio.Text = "Force Resample";

disableResampleRadio = new RadioButton();
disableResampleRadio.Location = new System.Drawing.Point(10, 90);
disableResampleRadio.Size = new System.Drawing.Size(200, 16);
disableResampleRadio.Name = "disableResampleRadio";
disableResampleRadio.TabIndex = 1;
disableResampleRadio.add_Click(this.selectedEventsOnClick);
disableResampleRadio.Checked = true;
disableResampleRadio.Text = "Disable Resample";


// Settings ParamGroup
settingsGroup = new GroupBox();
settingsGroup.Controls.Add(reduceInterlaceFlicker);
settingsGroup.Controls.Add(smartResampleRadio);
settingsGroup.Controls.Add(forceResampleRadio);
settingsGroup.Controls.Add(disableResampleRadio);
settingsGroup.Location = new System.Drawing.Point(8, 90);
settingsGroup.Name = "settingsGroup";
settingsGroup.Size = new System.Drawing.Size(250, 115);
settingsGroup.TabIndex = 4;
settingsGroup.TabStop = false;
settingsGroup.Text = "Events";

this.Controls.Add(settingsGroup);


// Apply button
applyButton = new Button();
applyButton.DialogResult = System.Windows.Forms.DialogResult.OK;
applyButton.Text = "Assign";
applyButton.Left = 100;
applyButton.Top = 210;
AcceptButton = applyButton;
Controls.Add(applyButton);

// Cancel button
cancelButton = new Button();
cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
cancelButton.Text = "Cancel";
cancelButton.Left = 182;
cancelButton.Top = 210;
CancelButton = cancelButton;
Controls.Add(cancelButton);

}


/**
* FUNCTION: selectedEventsOnClick
*/
function selectedEventsOnClick(sender : Object, evt : System.EventArgs) {

extensionTextBox.Enabled = false;

}


/**
* FUNCTION: eventsWExtOnClick
*/
function eventsWExtOnClick(sender : Object, evt : System.EventArgs) {

extensionTextBox.Enabled = true;

}

}

WayneM wrote on 5/12/2011, 9:31 PM
I am looking into doing a "real" transfer, but since I have this DV copy and it is pretty clean I'm doing some learning/experimenting with it.

I spent some time looking for places to do the transfer. and was trying to see which HD transfer option at Digital Transfer Systems would be the best at the lowest cost. The most costly is done with a "Spirit telecine" and they also do frame by frame transfers with 1080 lines of resolution.

The Spirit Telecine is seems to be significantly more costly than the frame by frame HD transfer.

They happen to be within 40 minutes of me and their prices seem competitive. They will deliver in one of three 3 AVI codecs for PC users to an external hard drive. One of their pages mentions 1080P 4:2:2 . I'll have to do some research into the various options. It seems the most expensive transfer may not buy me much.

If someone knows, or is willing to take a look at the site (www.digitaltransfersystems.net) and suggest which method might provide the best output for my needs it would be appreciated.
WayneM wrote on 5/12/2011, 9:34 PM
Thanks much for posting the FlickerBuddy code!
WayneM wrote on 5/12/2011, 10:02 PM
I guess that would be a frame-by-frame transfer? Have you had any experience with a transfer by a Spirit 2K?

A company near me is offering that at at .243 / ft and the same .14 price for the frame by frame transfer.

Thanks
johnmeyer wrote on 5/13/2011, 11:21 AM
Try this Wikipedia article, which does a great job of comparing several frame-accurate transfer systems, including the Spirit products:

Telecine
WayneM wrote on 5/13/2011, 2:15 PM
Thanks John. Actually I printed that one out along with another article specifically on the Spirit technology. (http://en.wikipedia.org/wiki/Spirit_DataCine#SDC_2k_Spirit_DataCine) They are not real specific on the Digital Transfer Systems website about the exact Spirit model, but there are a couple places where they mention 2K output so I think it is that model.

BTW, as you did with Telecine in your post, how do I embed a URL in a word or phrase on this forum?

I also printed out a Wikipedia article on one of the major CODECS wanting a refresher on the 4:2:2 subsampling. I knew more about this stuff 5 years ago, but I haven't used it and the dedicated RAM got recycled :-)

It looks like the Spirit transfer, according to the verbiage on the website, is more faithful to the color. That would also give me more data to work with for any color correction. The one thing that has me drawing a blank is the statement about Spirit that "Best light is approximately 2.5:1 ratio." That seems to be a low number if they are talking about the dynamic light level range they can capture from the film.

I did register on Doom9 and while locked out from posting to you there, did want to comment that you use of a projector without a shutter struck me as incredibly innovative in combination with some of the available software to process the resulting data. My kudos to you!

The Curve you use and shared in your detailed posting of workflow reminded me how, as a long time Photoshop user, I hate the continuing poor design of that tool in Vegas. Do you know if when you save a setting there is anyway to peek at the data and recreate the curve exactly? Oh, and why can't I right click on the curve and see an option to reset? That would seem both obvious and easy to do.

Cheers!

Wayne
johnmeyer wrote on 5/13/2011, 2:44 PM
BTW, as you did with Telecine in your post, how do I embed a URL in a word or phrase on this forum?There is a "sticky" at the top of each forum that describes how to do this, and how to get italics, embed YouTube, etc. Here's a link to one of them:

Forum Markup


... you[r] use of a projector without a shutter struck me as incredibly innovative in combination with some of the available software to process the resulting data. My kudos to you!Thanks! I'm actually a little bit proud of that one.


Do you know if when you save a setting there is anyway to peek at the data and recreate the curve exactly? Oh, and why can't I right click on the curve and see an option to reset? Oh, and why can't I right click on the curve and see an option to reset? No; and I don't know; and beats me.

WayneM wrote on 5/13/2011, 3:44 PM
I actually did look at that company first. They seem to buy a lot of Ad words on Google. That shot of the transfer room is pretty amazing! When I worked up the total cost for my 15 minute film the minimum cost of $135 for the hard drive was a problem as was the $50 price to copy the file to a USB drive I already have.

When I found DTS it seemed a better fit for my needs. I'm still trying to compare their 14 ¢ / ft frame-by-frame transfer technology with "My Movie. . ." DTS's Spirit 2K sounds attractive at 24.3 ¢ / ft and the $20 for file transfer to my USB hard drive also sounds attractive.

If you wouldn't mind, take a look at the last three options in their technology comparison and let me know what you think. They are also only a short drive for me.
farss wrote on 5/13/2011, 3:51 PM
"If someone knows, or is willing to take a look at the site (www.digitaltransfersystems.net) and suggest which method might provide the best output for my needs it would be appreciated."

I took a look. The Spirit telecine is also "frame by frame", what they're offering for their "frame by frame" transfer is done using a Work Printer. If you consider the capital cost of the Spirit compared to the Work Printer it will give you some idea of the difference in the quality of what the result will be like. The Work Printer although a bargain for the money is using a conventional camera. The Spirit uses a purpose built imager designed specifically to capture as much of the dynamic range of film as possible.
This can be done because speed isn't an issue, it doesn't have to take 24 frames per second, in fact the Spirit can run at around 4 fps, some such machines run even slower so the imager can spend a lot of time taking the image. Also it doesn't take the whole frame at once. The imager is a single line CCD and the image is built up as the film moves continuously through the gate. Later models of the Spirit can also scan in infrared for dirt and dust removal.

What troubles me a bit about this company is their primary offering for output is all lossy consummer formats e.g. DV, HDV or BD disks. This seems backwards to me if you're planning to edit and grade the vision. They do offer HDCAM SR (POA) which is going to be very expensive for you to capture. What they should be offering is a discrete file per frame transfer onto say a HDD as 16bit TIFF or DPX files.

When it comes to film it's not just the number of pixels, it's the depth of the pixels that are significant. That's why as you've seen when you projected the film and captured it with a camcorder the result looks different. Wise men will argue for another century about how many bits you need to really "capture" film but 8 is certainly not enough if you're serious. This maybe significan in your case as your film is probably camera original.

Bob.
WayneM wrote on 5/13/2011, 4:36 PM
When I emailed DTS and told them what I was looking to do, they sent me to a page that isn't one of the really obvious ones. Here is where they sent me for lossless or low compression AVI files.

I think their focus is to drive volume so at the high level they talk about DVD & BD from your home movies and their website could be much better at helping find the different services.

Wayne
Serena wrote on 5/13/2011, 9:56 PM
You've triggered me to look for someone to transfer my 16mm home movies and certainly it isn't easy to look through the spin to discern the quality of the services offered. Promising that their service is "the best in the world" seems to be obligatory, so I have to presume that mostly they're being misleading. I don't think you've mentioned http://www.mymovietransfer.com/about_MMT.htmlanother one[/link].
bsuratt wrote on 5/14/2011, 5:22 AM
@Serena,

'This one ' was mentioned earlier in this thread. I have had a number of 8mm films transferred by this company recently and the quality was superb!

Been in business since 1987. They used to do only post house work but since demand for these services has fallen they created this "consumer division" to offer services at a lower cost to keep the machines busy.

The other company mentioned with the Spirit machines has only been in business 4 years may make a difference in your choice.

WayneM wrote on 5/14/2011, 8:24 AM
I've been digging into the information from DTS and MyMovie. Both leave questions unanswered calls are going to be needed. I have been leaning towards the one close to me, DTS, but the more I look at MyMovie (hate that name :-) the more I think they are what my project needs. The fact they are "only" SD does concern me a bit since I am transferring an edited version of the original camera stock. Some of that is pretty darn sharp.

The added $50 for user-supplied USB hard drive "load" seems excessive, but it is a deal compared to paying them $250 for a $60 drive (and that's a Seagate drive price)! I will pay to avoid compression and leaving, so to speak, any data on the cutting room floor. I may also request more details about the quality of the DV tapes they burn and if I would just capture them from my Mini-DV camera. I don't have a stand-alone Mini DV device.

I like the idea that I could have them (MyMovie) adjust the optics so I get every micron of the frame and crop in post. They mention CC and I would want to make sure they did anything scene by scene and not make my final CC more difficult!

John M already shared his experience with HD transfers. Has anyone compared an HD vs. SD transfer of 16mm camera stock.

Does anyone have experience with HD vs. SD transfers with either of these companies or a different company?

I also have a question about which CODEC to request the transfer in, but will start a new posting for that.

Thanks in advance for the input. . .

Wayne

johnmeyer wrote on 5/14/2011, 8:33 AM
This forum is not a very useful place to ask most of these questions. I suggest you try:

Filmshooting Forum

or

8mm Forum

You can also find a wealth of useful information with Google, such as:

Transfers

Except for Serena and farss, both of whom have already replied, you won't find many people here in this forum who have actually done a lot with film.
WayneM wrote on 5/14/2011, 3:04 PM
Thanks John.
Serena wrote on 5/14/2011, 5:29 PM
Wayne, have you checked with John about his transfer service?