Quantcast Restoring a bunch of VHS workout videos? - Page 2 - digitalFAQ Forum
Go Back    Forum > Digital Video > Video Project Help > Capture, Record, Transfer

Reply
 
LinkBack Thread Tools
  #21  
11-22-2018, 09:53 PM
sanlyn sanlyn is offline
Premium Member
 
Join Date: Aug 2009
Location: N. Carolina and NY, USA
Posts: 3,648
Thanked 1,264 Times in 971 Posts
Quote:
Originally Posted by nai1ed View Post
which filters do you think would be best for this project?
I can post more detailed suggestions and some samples later. But there is no such thing as one-size-fits-all for every video. Many tapes will have common problems with common solutions, some will be wrecks like your sample that require special treatment. In any case, the only "filter" that should ever be applied to lossless captures are the proc amp controls for managing levels. Cleanup occurs after capture.
Reply With Quote
Someday, 12:01 PM
admin's Avatar
Ads / Sponsors
 
Join Date: ∞
Posts: 42
Thanks: ∞
Thanked 42 Times in 42 Posts
  #22  
11-23-2018, 08:07 AM
nai1ed nai1ed is offline
Free Member
 
Join Date: Nov 2018
Posts: 14
Thanked 0 Times in 0 Posts
I might try using my EliteVideo BVP-4+ to adjust colors. It supports Svideo in/out so I shouldn't lose any quality.
Reply With Quote
  #23  
11-23-2018, 08:14 PM
sanlyn sanlyn is offline
Premium Member
 
Join Date: Aug 2009
Location: N. Carolina and NY, USA
Posts: 3,648
Thanked 1,264 Times in 971 Posts
Quote:
Originally Posted by nai1ed View Post
I might try using my EliteVideo BVP-4+ to adjust colors. It supports Svideo in/out so I shouldn't lose any quality.
That would make some changes, although usually simple tint controls can't correct specific target areas of the spectrum. And in YUV they only correct one color at a time, not two colors simultaneously. But you can give it a try.

All I can say about the day-after Thanksgiving cleanup is oh my aching back. Had to help my sister after 45 relatives stuffed themselves and it took all day because her hubby hurt his back (Likely story, Sam!)... then I had a long drive back home. I'll clean up all my script data and filter links and post details tomorrow. Sorry for the delay.
Reply With Quote
  #24  
11-23-2018, 08:22 PM
nai1ed nai1ed is offline
Free Member
 
Join Date: Nov 2018
Posts: 14
Thanked 0 Times in 0 Posts
No worries, I know how crazy holidays can get, but luckily I had Thursday and Friday off from work so it makes all worth the while. I'll be eating leftover turkey all next week
Reply With Quote
  #25  
11-24-2018, 09:19 AM
sanlyn sanlyn is offline
Premium Member
 
Join Date: Aug 2009
Location: N. Carolina and NY, USA
Posts: 3,648
Thanked 1,264 Times in 971 Posts
I wish I had a history of the tape from which you made your sample. In any case I think you know beforehand that many of its original elements can't be restored. Detail can't be recreated from nothing. Sharpening won't help because edges are oversharpened (black halos) and then badly smeared, and in some cases edges don't even exist. Between edges, detail suffers from the same smearing, blurring, and ghosting. I used a sharpener for chroma-only, which worked to a small (very small) extent to relieve some color smearing. But let's face it: the original images are wrecked.

All one can do is try to work on tape noise and overall color balance. Some of the noise was permanently embedded by tape dubbing. When playing this sample look at the left-hand corner of the room where you see a closed doorway, and the vertical edges in that corner will "wiggle" and shift. Some edges in the large central flag on the wall also wiggle a bit and show some aliasing (sawtooth edges) during motion. These distortions are the result of scanline timing errors from the original source player(s). Those errors can't be eliminated afterward. They could be fixed only during the original dub.

Color response is convoluted, a mix of distortions and discolorations between the original player and recording VCR. Blacks and very dark grays are colors that should consist of equal RGB proportions of Red, Green, and Blue. Pure black would have RGB values of 0,0,0. Dark "video black" would have RGB values of 16, 16, 16, and a very dark gray that would be shadows in a black object would be 32,32,32. There are no such colors in the supposedly black objects and shadows of the sample. In the foreground there are some black robed figures and the square tops of black graduation caps, but none of the caps can be made to look convincingly black or dark gray. No matter how the blacks are manipulated with color controls, each has a distinct and different non-black color cast. White is another color that has equal proportions of red, green, and blue. The white-gowned figures would in reality be slightly off-white; the nearest one could achieve is something approaching RGB 185, 185, 185, or somewhere in that general range -- but the corrupt variations are pretty wide here, mostly with yellowish or reddish shadowy smears that should be neutral. Some colors in the sample simply don't look real. It has the strangest looking greens I've ever seen.

If it were not for all the tape noise and scanline errors from the original player, one could skip the denoising filters and just try for a partial effort at color correction. The noise smoothers I used were the built-in cleaning features of QTGMC, which also helped with the color stains and discolorations (i.e, chroma noise). There was a magenta stain across the top border and chromatic distortions elsewhere that were cleaned a bit with Avisynth using what are called anti-rainbow filters (cnr2 and Bifrost) and a VirtualDub chroma cleaner called Color Camcorder Denoise (aka "CCD"). An avisynth special sharpener was used for color-only edge contrast enhancement to clear up a little of the chroma bleeding and smearing around the few distinct edges that could be found.

Much of the visual confusion that one experiences when viewing this video is partially due to the blackish and bright opposing edge halos, especially on the white robed figures. The halos themselves have a whitish sharpened edge. Unfortunately the only thing halo cleaners can do with this type of distortion is to calm it a little. It can't be eliminated because the objects don't have cleanly defined or stable contours anyway.

On less damaged video you could use the same filters but at different settings, especially for QTGMC. One could have used more softening and smoothing filtration here but, seriously, the video is already borked to begin with and more filtering would look even worse.

Below is the Avisynth script I used on the way to making the attached mpeg encode. Like any program code, avisynth executes statements in the order in which they occur in the script.

Code:
Import("D:\Avisynth 2.5\plugins\MDG2.avs")

AviSource ("J:\forum\faq\nai1ed\A\sample1.avi")
ColorYUV(cont_y=-25)
Levels(16,0.90,255,16,245,dither=true,coring=false)
Tweak(sat=0.6,StartHue=275,EndHue=340,dither=true,coring=false)
Tweak(sat=0.75,StartHue=160,EndHue=275,dither=true,coring=false)
Tweak(sat=1.3,StartHue=60,EndHue=160,dither=true,coring=false)

AssumeTFF()
SeparateFields()
FixVHSOversharp(20,16,12)
FixVHSOversharpL(20,12,8)
Cnr2(mode="ooo", scdthr=255.0, ln=255, lm=222, un=255, um=255, vn=255, vm=255)
Weave()

ConvertToYV12(interlaced=true)
QTGMC(preset="medium",FPSdivisor=2,ChromaMotion=true,border=true,\
   ChromaNoise=true,GrainRestore=0.3,sharpness=0.7)
MDG2()
BiFrost(interlaced=false)
MergeChroma(aWarpSharp2(depth=20).aWarpSharp2(depth=10))
AddGrainC(1.25,1.25)
Crop(4,0,0,-12).AddBorders(2,6,2,6)
ConvertToRGB32(matrix="Rec601",interlaced=false)
This script was saved as a text file with the Avisynth file extension of .avs ("Sample1_00.avs"). I ran the script by opening VirtualDub, clicking "File..." -> "Open video file...", then locating the .avs file and selecting it. VirtualDub considers an .avs script to be an incoming "video", not a text file. With the script open in VirtualDub I loaded VDub filters and adjusted them. Then with the desired filters applied, I clicked "File..." -> "Save as AVI...". I gave the output a name and location, and saved the Avisynth output and the VDub filter results at the same time in one AVI. The script processed at about 5 frames per second (yes, QTGMC and MDG2 are slow filters). Before saving it I adjusted VDub to output YV12 color and Lagarith lossless compression, all ready for MPEG encoding. Huffyuv can't compress YV12. Huff is YUY2 or RGB only. I use Huffyuv for capture because it's easy on the CPU, but In use Lagarith for RGB, YUY2, and YV12 working files (https://lags.leetcode.net/codec.html).

The settings of the VDub filters I used were saved in a .vcf file. The .vcf settings file is attached. You load a .vcf by clickinbg "File..." -> "Load processing settings...", then locate and select the saved .vcf. A vcf should be saved in a folder with your video project, not with your plugins. The VDUb filters I used must be present in your VDub plugins or the .vcf will simply display an error message. The three filters I used were:
(1) Color Camcorder Denoise v1.7, http://www.digitalfaq.com/forum/atta...ove-ccd_v17zip.
(2) gradation curves 1.45, http://www.digitalfaq.com/forum/atta...1&d=1489408797.
(3) ColorMill 2.1, http://www.digitalfaq.com/forum/atta...colormill21zip.
The .zip downloads above also contain documentation.

Two other useful tools I used for analyzing color in Virtualdub's GUI were the ColorTools histogram/vectorscope filter and the CSamp pixel reader for getting the RGB pixel values. Because you have Win7 or Win10 you need the updated version of ColorTools (http://www.digitalfaq.com/forum/atta...1&d=1487006540).
CSamp is a freestanding desktop tool that needs no installer: http://www.digitalfaq.com/forum/atta...on-dv-csampzip.
CSamp comes with its own small help file.
Some previous examples of using these VDub filters are in an earlier post Information Overload #3, in a thread that contains other examples of scripts and filters form a not-so-great video sample.()

VirtualDub and Avisynth filters usually come as .zip files. Don't download new filters directly into your plugin folders. The Zips contain the filter plus several other files, all of which would soon have your plugin folders in a dysfunctional mess. Instead, create a new folder somewhere (call it "Filters" -- clever, huh?). Then for each new filter that you download create a subfolder with the filter's name. Download into those subfolders and unzip there. Then load just a copy of the filter itself into your plugins. Thus, you'll always know where the original filter and its documentation are located. Virtualdub filter files have a .vdf extension.

Note: Avisynth, VirtualDub, and all of its filters and lossless codecs mentioned here are 32-bit versions. They work just fine in 64-bit Windows. There are 64-bit filter versions in development, but they're in limited numbers and many are still buggy.

The version of Avisynth I'm using is version 2.6.0 32-bit (May 2015)
https://www.videohelp.com/download/A...xe?r=GHpWsrmmg
The default Windows install folder is Program Files (x86)\Avisynth, although you can create an "Avisynth" folder anywhere and direct the installer to use that folder. Avisynth installs only its own folder, help files, and a plugins folder, plus a few registry entries. The only .dll it installs is the 32-bit Avisynth.dll in the SYSWOW64 folder. In 32-bit Windows, it's installed in System32. The only file association you need to make when the installer runs is to associate .avs files with Notepad, so that when you double-click an .avs file it automatically opens in Notepad.

You uninstall Avisynth by going into its program folder and executing uninstall.exe. Or, open its program group in your program listing and look for "Uninstall Avisynth". When it's uninstalled it removes its registry entries and Avisynth.dll, but it leaves the program folder and plugins intact.

Like any popular video software, Avisynth has its home page: http://avisynth.nl/index.php/Main_Page. It's filled with links that will take you to places you never dreamed of visiting, but the links that most people start with are under the label "New to Avisynth - Start Here". Under that heading you'll quickly discover that the first two introductory links are in reverse logical order. Rather than start with the first link listed, go to "Getting started - An introductory guide" (http://avisynth.nl/index.php/Getting_started). This tutorial page works well, but they tell you to open test scripts in MediaPlayer. Forget that. The newest MediaPlayer versions are dysfunctional to begin with -- just stick with VirtualDub for running scripts.

Of course you will need some filters, which Avisynth and VirtualDub call plugins. While you certainly won't need all of the plugins shown in the two links that follow, it's nice to know you have a choice. You build up your toolbox as you go along, and you'll find that some plugins keep showing up everywhere in projects because they solve common and frequent problems.
Main page for current Avisynth plugins: http://avisynth.nl/index.php/External_filters
Favorite source for VirtualDub plugins: http://www.infognition.com/VirtualDubFilters/
There are additional archive sites all over the internet.

It looks intimidating. But, then, some very inexperienced people have accomplished marvelous things with Avisynth and VIrtualdub. They learn most of it from following project threads in video forums. Software like Adobe Premiere and AfterEffects, or the old SONY Vegas Pro, and many other pricey packages are even more complicated. Avisynth and VirtualDub don't get that difficult. And They're free!

I'll get into the script and filter details in the next post.


Attached Files
File Type: vcf VirtualDub Settings.vcf (3.7 KB, 0 downloads)
File Type: mpg sample1_for_DVD.mpg (4.97 MB, 12 downloads)
Reply With Quote
  #26  
11-24-2018, 09:53 AM
sanlyn sanlyn is offline
Premium Member
 
Join Date: Aug 2009
Location: N. Carolina and NY, USA
Posts: 3,648
Thanked 1,264 Times in 971 Posts
The big problems with badly degraded video are the extra filtering and the processing time they consume. Then there is the fact that the results can't look as good as a source that's more or less intact to begin with. A lot of damage just can't be repaired. On other hand, even a so-called "clean" analog source still needs some work, and one still needs a toolbox of effective filters to get improved results. The difference between a poor source and a good source is the vast difference in the quality of the results.

Below are script and filter details for the script in the preceding post:

Import("D:\Avisynth 2.5\plugins\MDG2.avs")
It happens that the MDG2 plugin is a script-coded .avs file. Avisynth plugins come in three formats: .dll, .avsi, and .avs. A .dll and an .avsi plugin load automatically when a script calls for them. An .avs is a plain text file whose coded text must be explicitly imported into your script using the Import() function. You could also copy the text yourself into the bottom of your script, but it's a pain and some of the .avs filters have hundreds of lines of code.
Import(): http://avisynth.nl/index.php/Internal_functions#Import.

AviSource ("J:\forum\faq\nai1ed\A\sample1.avi")
The AviSource() function open and decodes many video codecs if the codec is installed on your PC. Once decoded, the file as AVisynth delivers it is uncompressed. If you want compressed output, you'll have to recompreess it yourself, for instance by telling VirtualDub to do it.
AviSource(): http://avisynth.nl/index.php/AviSource.

ColorYUV(cont_y=-25)
Levels(16,0.90,255,16,245,dither=true,coring=false )
Tweak(sat=0.6,StartHue=275,EndHue=340,dither=true, coring=false)
Tweak(sat=0.75,StartHue=160,EndHue=275,dither=true ,coring=false)
Tweak(sat=1.3,StartHue=60,EndHue=160,dither=true,c oring=false)

ColorYUV() is a multi-faceted builtin function that works on contrast, gamma, high end extension, black levels, and so forth. Its wiki page gives you a whole catalog of things it can adjust. Here, it's used to lower contrast. There are different kinds of contrast controls; with ColorYUV, contrast expands pixel values (luminance) from the center outward in each direction or, with negative values it shrinks pixel values toward the middle. Because a histogram showed luminance extending outside safe values at both ends of the dark-to-bright spectrum, cont_y was used to shrink the response curve toward the middle of the spectrum. As you can guess by its name, it works only in YUV colorspaces.
ColorYUV(): http://avisynth.nl/index.php/ColorYUV

The builtin Levels() function works on luminance pixel values and on gamma (midtone response). Here, it adjusts luminance levels to stay within the range y=16-235. RGB display will expand YUV from 16-235 to 0-255. If the YUV range is already darker than 16 or brighter than 235, an RGB display or process will destroy the out of range values (aka "clipping"). The numbers in the Levels() command indicate the following values, in this order: input dark values, desired gamma, input bright values, desired dark output adjust, desired bright output adjust. Dither and coring are explained on the Levels() wiki page (http://avisynth.nl/index.php/Levels).

The Tweak() statements (http://avisynth.nl/index.php/Tweak) adjust saturation in the YUV color range shown by the numbers in the startHue and endhue values. The numbers reflect the positions of colors in degrees around the YUV color wheel:



The images below are YUV vectorscopes that display measured saturation values. The vectorscope on the left shows the original saturation pattern before filtering. The pattern indicates an oversupply of saturation in the blue-cyan and green-yellow areas, and a deficit in red. The vectorscope on the right shows the more evenly balanced result of the Tweak and ColorYUV statements with reduced blue-cyan/yellow levels and more populated reds.



Avisynth histograms/vectorscopes: http://avisynth.nl/index.php/Histogram

AssumeTFF()
SeparateFields()
FixVHSOversharp(20,16,12)
FixVHSOversharpL(20,12,8)
CNR2(mode="ooo", scdthr=255.0, ln=255, lm=222, un=255, um=255, vn=255, vm=255)
Weave()

Avisynth's default field order priority for interlaced or telecined video is Bottom Field First (BFF). But most of the time you'll encounter Top Field First (TFF). AssumeTFF() informs Avisynth that the current video's field order is TFF. Then, SeparateFields() breaks apart each interlaced frame into its two half-height image fields. This is a non-destructive form of deinterlace, which will be required by the Avisynth filters that immediately follow.
AssumeTFF(): http://avisynth.nl/index.php/Parity
SeparateFields(): http://avisynth.nl/index.php/SeparateFields

FixVHSOversharp(20,16,12) and FixVHSOversharpL(20,12,8) go after edge halos and ghosting on right and left edges respectively. These two filters aren't enough to completely fix the ugly edge halos in the clip, and in fact will simply soften edge halos a bit -- which is what is desired here because of the over-sharpened halos themselves. The numeric values in the syntax for the two FixVHSOversharp commands are explained in the help file that comes with the filter and are actually copied from the documented samples. FixVHSOversharp works only in a YUY2 colorspace.

CNR2 is a chroma filter that helps neutralize color streaks and blotches. The values that follow the CNR2 command are actually defaults except for "mode="ooo" which activates a "wide" disturbance detection for Y (luma), U (yellow-blue), and V (red-green) channels. The scdthr, ln, lm, un, um, vn, and vm set luminance and chroma filtering limits for scene changes, luma, U, and V channels. The numbers shown are defaults except for the "222" which tends to reflect an average peak value for luminance "hot spots" in VHS video. You could probably use all values at default 255 with no problems.
FixVHSOvershartp.dll: http://www.digitalfaq.com/forum/atta...ll_20030723zip.
CNR2.dll is at http://www.digitalfaq.com/forum/atta...d-cnr2_v261zip.

Weave() is the function that puts all the separated fields back into their original order and position in the interlaced frames. http://avisynth.nl/index.php/Weave.

ConvertToYV12(interlaced=true)
QTGMC(preset="medium",FPSdivisor=2,ChromaMotion=tr ue,border=true,\
ChromaNoise=true,GrainRestore=0.3,sharpness=0.7)

Your sample clip used YUY2 color, preferred because it's more like the YPbPr color in VHS, but the filters that follow require YV12 color. Leave these conversions to Avisynth, which does it with great precision (many editors make a mess of YV12 conversions). For any colorspace conversion you must tell Avisynth whether or not the video is interlaced. Note that telecined video, the conversion of film speed to 29.97fps by inserted qdditional fields, is considered a form of interlace. Other conversion function parameters can be used, but usually you'll just ignore them and use defaults.
ConvertToYV12(): http://avisynth.nl/index.php/Convert

With QTGMC you come to one of the heavy-hitters. This is a deinterlacer. In using complex motion-compensated algorithms and additional support filters to deinterlace as cleanly as possible (something most deinterlacers don't do), one side effect of QTGMC is that it also denoises in several ways. It reduces grain, cleans edges, and smooths uneven motion to a certain extent. The preset="medium" parameter sets up a reasonably efficient denoising level (there are faster presets and slower ones). FPSdivisor=2 is a special parameter that discards alternate fields and maintains the original 29.97fps framerate. This is a decision you'll have to make: field decimation can make for less smooth motion that interlaced or double-rate video. If you retained all fields, interlacing would play at 59.94 fields per second. if you double-rate interlace, the video would play at 59.94 frames per second. But there's not that much motion in your clip. Sports video would be a different story. I decided to discard fields because of all the interlace damage and noise inflicted on this tape. The normal way would be to retain all fields, run special filters to calm buzzing edges and combing, and re-interlace after filtering -- but with this damaged video the edge noise and excessive combing would be intolerable.

The extra cleanup parameters that are activated in the QTGMC statement are ChromaMotion (consider chroma, not just luma, when analyzing motion), border (pad a little vertically to avoid top or bottom border flutter), ChromaNoise (clean color noise as well as luma noise (grain)), Grainrestore (restore a very small amount of original grain to avoid a plastic over-filtered look), and reduce Sharpness a little so sharpened halos won't look worse.

QTGMC and its pile of support files and extra filters come as a 32-bit package. The .zip file contains all updates as of November 2017 (subsequent updates require a different version of QTGMC that you won't need for a long while, if ever). Most of the support files are popular standalone filters in their own right. The .zip also has links to required Microsoft VisualC++ runtimes if you don't have them. There are quick read-me files in the zip, as well as all of the original documentation that comes with the support files. READ the READ-ME's first! Ignore them at your peril. The3 complete QTGMC .zip package and all its subfolders is at:
http://www.digitalfaq.com/forum/atta...g-qtgmc_newzip

MDG2()
BiFrost(interlaced=false)
MergeChroma(aWarpSharp2(depth=20).aWarpSharp2(dept h=10))
AddGrainC(1.25,1.25)

MDG2.avs is a packaged version of the MDegrain2 function that comes with MVTools2.dll. It's a degrainer that also helps to smooth buzzy edges. It requires MVTools2, which comes with QTGMC. it also requires aWarpSharp.dll (see remarks, 2 paragraphs below).

Bifrost is another color and stain cleaner. You have to tell it whether or not your video is interlaced. At this point in the script, your video isn't interlaced. You can get Bifrost_v2.zip at http://www.digitalfaq.com/forum/atta...-bifrost_v2zip.

MergeChroma(aWarpSharp2(depth=20).aWarpSharp2(dept h=10)) combines the results of chroma-only sharpening with luma from previous statements. In short, this tells aWarpSharp2 to sharpen only the color channels, not the luma channel, because luma is already oversharpened. This tends to "tighten" colors closer around the edges they belong to. It won't clean up the chroma smearing mess entirely, but it helps. Get aWarpSharp2_2015.zip at
http://www.digitalfaq.com/forum/atta...sharp2_2015zip. It also requires the Microsoft VisualC++ runtime 2013 (which you will need for some other filters later), and you can get it at http://www.microsoft.com/en-us/downl....aspx?id=40784.
MergeChroma: http://avisynth.nl/index.php/Merge

AddGrainC is an old standby used by dozens of more complex filters. It adds a small amount of very fine film-like grain to mask hard macroblock edges and to avoid an over-filtered or posterized look. AddGrainC.dll and the 2012 VisualC++ runtime installs with the QTGMC package. Or get AddGrainC and the 2012 runtime separately at http://avisynth.nl/index.php/AddGrainC.

Crop(4,0,0,-12).AddBorders(2,6,2,6)
These two commands remove unwanted border pixels and replace them with new black ones. Crop() removes edge pixels in this order: 4 left border pixels, zero top border pixels, zero right border pixels, and 12 bottom border pixels. The bottom pixels are head-switching noise. Cropping might seem simple, but there are very stringent rules. You can see the rules in a small grid near the bottom of Crop's wiki page, linked below. Next, AddBorders() gives you brand-new black border pixels in the same order processing order but it attempts to center the original image in the frame: add 2 left border pixels, 6 top border pixels, 2 right border pixels, and 6 bottom border pixels. The default border color is black but you can choose many other colors.
Crop(): http://avisynth.nl/index.php/Crop
AddBorders(): http://avisynth.nl/index.php/AddBorders

ConvertToRGB32(matrix="Rec601",interlaced=false) is another colorspace conversion, this time for use by the VirtualDub filters that will be applied to the script's output. As usual, you must tell conversion functions whether or not your video is interlaced (at this point, it isn't) -- not making this clear can screw up your colors. The color matrix used for standard definition video is "Rec601", which is a flavor of RGB that VirtualDub will use. VirtualDub filters run in RGB color. if you don't make the conversion here, VirtualDub will do it when you load its filters. But Avisynth can usually do it more cleanly.

Without this conversion, your output at the end of this script is YV12 color. If you want to save the script as YV12 at this point, you'll need a lossless compressor other than huffyuv, which can't compress YV12. I suggest Lagarith, since it's mainstreamn, recognized by media players and editors, and makes slightly smaller files than huffyuv. Here's Lagarith's link again: https://lags.leetcode.net/codec.html.

Using the Virtualdub filters:


The Avisynth script makes some initial levels and color corrections in YUV color. These were basic adjustments that are easier in the original colorspace, and are often not possible after conversion to other color systems. This particular video sample required work in the saturation department that would have been difficult in other software. Fortunately most videos don't require a bunch of Tweak statements as tricky as those used in the script.

After the basic corrections in YUV, color controls in VirtualDub can tweak the results and target certain areas more specifically. Shadows in bright objects still looked a little blue-green (those would be the midtone range centered at about RGB 128 in the middle of the spectrum). Flesh tones weren't quite right (rather orange-y, often grayed out, and very badly smeared), so adding a little warmth with Colormill and reducing cyan with gradation curves helped somewhat.

The image below shows the Red, Green, and Blue adjustment panes in the Gradation Curve plugin, as used in processing the sample clip.



Red is at the far left. The diagonal line for Red is curved upward, which increases the brightness of reds from the darkest values (at the bottom) to the brightest vales (at the top). There's a kink in the curve near the top of Red's vertical line intended to calm a slight red peak in the brighter reds. In the Green and Blue panes, both colors are lowered slightly across most of the range, but Green are lowered a little more at the high end to correct whites that were too green, and both Green and Blue vertical lines are raised somewhat in the darks (at the bottom) to correct darker colors that were too red. The curves plugin is similar to curves in Adobe Photoshop, Premiere Pro, and other high-end apps. Its .zip package comes with documentation.

The adjustments needed to correct whites, grays, and other areas of the spectrum were determined by using the Csamp pixel reader to analyze pixels that were supposed to be whites, grays, or blacks. the RGB values shown by Csamp would indicate why those pixel colors were "off'. If a supposedly white pixel measured R185 G210 B213, it would indicate that those pixels didn't look white because there was too much green and blue and not enough red. So the bright colors would be manipulated to make Red, Green and Blue have similar values such as R200, G200 B200. Those values would equal white with about the same brightness as before.

The filters and settings ultimately used were saved in the .vcf file attached to the preceding post.

Speeding up Avisynth scripts for testing VirtualDub filters:
If you're running a script in VirtualDub and adding VDub filters at the same time, a slow Avisynth script can make scrolling thru the video very difficult while trying to adjust filters. Plugins like QTGMC can be very slow at certan settings and with very noisy video. You can temporarily make the script run faster if you comment-out some statements to prevent their execution. For example you can use Avisynth's comment in this statement:

Code:
QTGMC(preset="medium",FPSdivisor=2,ChromaMotion=true,border=true,\
   ChromaNoise=true,GrainRestore=0.3,sharpness=0.7)
and change it into this statement, which prevents QTGMC fromn running:
Code:
# QTGMC(preset="medium",FPSdivisor=2,ChromaMotion=true,border=true,\
#    ChromaNoise=true,GrainRestore=0.3,sharpness=0.7)
Any text that follows the cross-hatch or pound character (#) is converted to a comment, which is ignored by Avisynth. After making this change, in VirtualDub hit the F2 key (or click "File..." -> "Reopen video file") to reload the script at the point where you stopped scrolling. And don't forget to remove the comment marks when you're ready to save the file!

All I can add at this point is that I hope your other videos are in much better shape. If you wish you can submit a better sample from a workout tape to see how much better things can look.


Attached Images
File Type: png Before and After YUV vectorscopes.png (49.2 KB, 99 downloads)
File Type: png RGB Curves R.png (158.5 KB, 102 downloads)
Reply With Quote
  #27  
11-24-2018, 05:07 PM
nai1ed nai1ed is offline
Free Member
 
Join Date: Nov 2018
Posts: 14
Thanked 0 Times in 0 Posts
Thanks so much for your help. There is a lot here for me to digest, but I'll go through it step by step and try to understand it all.
Reply With Quote
Reply




Similar Threads
Thread Thread Starter Forum Replies Last Post
How to get good quality restoring Youtube videos? ciccioschumacher Restore, Filter, Improve Quality 24 10-04-2017 11:56 AM
Help restoring dot crawl, dropouts, and grain on VHS videos? zack82 Restore, Filter, Improve Quality 18 04-29-2014 08:35 PM
VCR Help: Restoring EP VHS recordings to DVD imacoltfan Restore, Filter, Improve Quality 16 07-26-2012 05:33 AM
Preferred list of equipment to buy for transferring / restoring videos ? cc4npg Capture, Record, Transfer 1 02-07-2012 12:57 AM
How to Convert AC3/MP2 to WAV for Restoring Audio lordsmurf Restore, Filter, Improve Quality 8 03-10-2009 02:42 PM

Thread Tools



 
All times are GMT -5. The time now is 03:23 AM