VideoHelp Forum
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 58
Thread
  1. Member
    Join Date
    Mar 2019
    Location
    Henderson, KY, USA
    Search PM
    I'm messing around with my capture card's (IO-DATA GV-USB2) proc-amp with GraphStudio. I have it running through AviSynth and the histogram. I'm able to get some good settings for most of my VHS tapes but I've noticed that there's a some extra stuff in the 236-255 range that still almost clips.

    Click image for larger version

Name:	gYtqd0z.png
Views:	233
Size:	830.0 KB
ID:	59526

    I adjusted everything to compensate for that, but it looks like it washes everything else out.

    Click image for larger version

Name:	AEIougH.png
Views:	166
Size:	740.6 KB
ID:	59527

    Should I not worry about that stuff? I want to get it just right before I start transfering this stuff.
    Quote Quote  
  2. Seems about right to me. I don't see a problem in the 236 .... 255 range with clipping for the 2 screenshots which you posted.
    The black seems to be elevated in the 2nd screenshot (-> washing out), I would leave the settings of the first screenshot and
    perhaps elevate the whites with something like
    Code:
    YLevels(16,1.0,235,16,250)
    You don't have to worry much about peaks extending occasionally into the 0...16 or 235....255 range. These are often just halo artefacts along edges.
    Last edited by Sharc; 24th Jun 2021 at 06:55.
    Quote Quote  
  3. Member
    Join Date
    Mar 2019
    Location
    Henderson, KY, USA
    Search PM
    Little update on this. I ended up over brightening but under contrasted as well. Gives me more flexibility in post. I'm very pleased with the end results, however I've noticed the histogram has invisible lines.
    Click image for larger version

Name:	NiG02Px.png
Views:	808
Size:	32.4 KB
ID:	59692

    What does this mean? I don't notice anything wrong in the final video. I have my brightness and contrast set to 40 above default and 40 below default respectively, 168/65.
    Quote Quote  
  4. Member
    Join Date
    Mar 2008
    Location
    United States
    Search Comp PM
    It might be better if you could get it a little closer.
    Can you post a sample video with the settings set as above?
    Quote Quote  
  5. The lines are rounding errors from integer math adjustments of the levels. They might show up as posterization artifacts on smooth shallow gradients.

    In your first image the black level is a tiny bit low but you can still recover the blacks in post. The bright levels look low in both the first and second image. In the second image. White text like that in the second image is usually at full brightness (though not always).
    Quote Quote  
  6. Member
    Join Date
    Mar 2019
    Location
    Henderson, KY, USA
    Search PM
    Originally Posted by davexnet View Post
    It might be better if you could get it a little closer.
    Can you post a sample video with the settings set as above?
    Sure thing. I have tweaked, tweaked with the histogram, and untweaked attached.

    Originally Posted by jagabo View Post
    The lines are rounding errors from integer math adjustments of the levels. They might show up as posterization artifacts on smooth shallow gradients.
    Thanks for the info. Honestly I really don't notice any for some reason. I know it's best to set levels before you capture but I have to do it for every tape transfer and since it depends on the tape and the content it'll be varying. That's why I chose to up the brightness and lower the contrast then expand it back out in post. It gives me some headroom.

    Originally Posted by jagabo View Post
    In your first image the black level is a tiny bit low but you can still recover the blacks in post. The bright levels look low in both the first and second image. In the second image. White text like that in the second image is usually at full brightness (though not always).
    Thanks for the tips! I remember using the RGBAdjust filter and it did help a little. However I don't want any lost detail, and it looks like adding that is clipping some of the whites. I'm not too sure though.
    Image Attached Files
    Last edited by ENunn; 5th Jul 2021 at 01:58.
    Quote Quote  
  7. Originally Posted by ENunn View Post
    .... That's why I chose to up the brightness and lower the contrast then expand it back out in post. It gives me some headroom.
    Your capture settings seem to be somewhat over-cautious to me, regarding the levels safety margin (e.g. the black level of the 'unfiltered.avi' is unnecessarily high), therefore the captured picture looks washed.
    But yes, you can tweak it with post processing. You could also apply 'dithering' to mask the lines in the histogram. Taking your 'unfiltered.avi', something like
    Code:
    Tweak(hue=0,sat=1.0,bright=-55,cont=1.5,coring=false,dither=true)
    .
    Last edited by Sharc; 5th Jul 2021 at 03:18. Reason: typo
    Quote Quote  
  8. Yes, given that you're adjusting the contrast by a factor of ~1.6 you only have about 138 different values between the black and white levels; rather than the 220 units you would have with a perfect cap with black at Y=16 and white at Y=235. If you had a very clean source the posterization would be visible in shallow gradients. But the noise inherent in VHS masks it.
    Quote Quote  
  9. Member Skiller's Avatar
    Join Date
    Oct 2013
    Location
    Germany
    Search PM
    Originally Posted by ENunn View Post
    however I've noticed the histogram has invisible lines.
    Image
    [Attachment 59692 - Click to enlarge]
    It's called banding and although it is not very visible with noisy analog sources, it's something to be avoided like the plague.
    Why is it there? Well it is there because all the so called "Pro-Amp" of your capture device does is it takes the already digitized video frames and applies a levels correction; and it does so at only 8 Bits precision.

    Only few capture devices have proper Proc-Amps which alter the actual signal voltage interpretation inside the DAC during the sampling of the analog signal to digital – not afterwards in the driver software.

    Therefore I recommend to always leave the Proc-Amp settings at default (or whatever settings do not touch the levels) and correct afterwards in AviSynth in high bitdepth. With these "fake" Proc-Amps there is nothing to be gained from them anyways. Any clipped brights for example are already gone at this point and cannot be recovered no matter the settings of the Proc-Amp.
    Last edited by Skiller; 5th Jul 2021 at 06:57.
    Quote Quote  
  10. Member
    Join Date
    Mar 2019
    Location
    Henderson, KY, USA
    Search PM
    Originally Posted by Skiller View Post
    It's called banding and although it is not very visible with noisy analog sources, it's something to be avoided like the plague.
    Fair :P I don't really notice any banding however. Adding dither=true fixed that up, and honestly I still cannot notice any differences between undithered and dithered.

    Originally Posted by Skiller View Post
    Therefore I recommend to always leave the Proc-Amp settings at default (or whatever settings do not touch the levels) and correct afterwards in AviSynth in high bitdepth. With these "fake" Proc-Amps there is nothing to be gained from them anyways. Any clipped brights for example are already gone at this point and cannot be recovered no matter the settings of the Proc-Amp.
    That's what I did at first, not in high bitdepth though. My capture card can only do 8-bit. If there was a 10-bit version of the GV-USB2 I'd pick it up in an instant :P

    I could hardly tell the difference between tweaked default proc-amp vs tweaked modified proc-amp, maybe the modified proc-amp had more detail added, however I can see why jagabo mentioned poisterization. I think I can notice it in one spot? It's hard to tell.

    Tweaked Default Proc-Amp
    Click image for larger version

Name:	OdjKVWb.png
Views:	113
Size:	594.4 KB
ID:	59709

    Tweaked Modified Proc-Amp
    Click image for larger version

Name:	YVyyyTp.png
Views:	103
Size:	597.4 KB
ID:	59710

    I guess I gotta experiment, or just leave it at defaults. I looked at the histogram on the modified proc-amp settings before I tweaked it and it didn't look like anything was lost compared to the defaults, but it could be just doing that to trick me or whatever.
    Quote Quote  
  11. Member Skiller's Avatar
    Join Date
    Oct 2013
    Location
    Germany
    Search PM
    Originally Posted by ENunn View Post
    My capture card can only do 8-bit.
    That's perfectly fine. Capturing at 8 Bits is good enough and usually the only option anyways. It's just that any tweaking should better be done at higher bitdepth (and then dithering down back to 8 Bits) to avoid the creation of banding.

    Originally Posted by ENunn View Post
    I think I can notice it in one spot? It's hard to tell.
    Both screenshots exhibit banding diagonally across the whole screen. However, with these early computer graphics you can never be 100% sure it wasn't originally rendered like this without dithering. I would look for a "natural" gradient (such as the sky).
    Quote Quote  
  12. Member
    Join Date
    Mar 2019
    Location
    Henderson, KY, USA
    Search PM
    Originally Posted by Skiller View Post
    That's perfectly fine. Capturing at 8 Bits is good enough and usually the only option anyways. It's just that any tweaking should better be done at higher bitdepth (and then dithering down back to 8 Bits) to avoid the creation of banding.
    Is seeing the invisible lines normal when I convert to 10-bit then tweak? This is with the modified proc-amp. Setting dither=true in Tweak mostly fixes it.
    Click image for larger version

Name:	CzFjVOs.png
Views:	85
Size:	55.4 KB
ID:	59713

    Originally Posted by Skiller View Post
    I would look for a "natural" gradient (such as the sky).
    Here you go!

    Untweaked Default Proc-Amp
    Click image for larger version

Name:	Utb9Xub.png
Views:	112
Size:	843.8 KB
ID:	59715

    Tweaked Default Proc-Amp Converted to 10-Bits
    Code:
    converttoyuv422(matrix="rec601", interlaced=true)
    convertbits(10)
    tweak(bright=3, cont=0.92, hue=0.0, sat=1.00, coring=false, dither=true)
    Click image for larger version

Name:	HwZspif.png
Views:	95
Size:	897.2 KB
ID:	59714

    Untweaked Modified Proc-Amp
    Click image for larger version

Name:	5btaTNv.png
Views:	89
Size:	852.9 KB
ID:	59716

    Tweaked Modified Proc-Amp Converted to 10-Bits
    Code:
    converttoyuv422(matrix="rec601", interlaced=true)
    convertbits(10)
    tweak(bright=-30, cont=1.20, hue=0.0, sat=1.00, coring=false, dither=true)
    Click image for larger version

Name:	bc6czNV.png
Views:	91
Size:	876.8 KB
ID:	59717
    Last edited by ENunn; 6th Jul 2021 at 12:34.
    Quote Quote  
  13. I think your last picture should be
    "Tweaked Modified Proc-Amp Converted to 10-bits", no?

    Looking at your 1st Forrest Gump picture I see no technical reason why you should modify or tweak anything, other than perhaps for personal taste.
    Quote Quote  
  14. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    In addition, if a restoration is planned, even a light filtering (i.e. GamMatch) or a denoise (i.e. TemporalDegrain2) fixes the original gaps in the histograms,
    probably because internally to the filters there is a convertion to a higher number of bits and a dithering operation.

    An example here: https://forum.videohelp.com/threads/401349-GV-USB2-Capture-Stick-What-s-In-It#post2615773
    Quote Quote  
  15. Originally Posted by lollo View Post
    even a light filtering (i.e. GamMatch) or a denoise (i.e. TemporalDegrain2) fixes the original gaps in the histograms,
    probably because internally to the filters there is a convertion to a higher number of bits and a dithering operation.
    Noise reduction is basically averaging nearby (spacial and/or temporal) pixels together -- that's what fills in the histogram/waveform gaps. For example between 100 and 102 there's a gap. Averaging those together gives you 101, filling in that gap.
    Quote Quote  
  16. Member Skiller's Avatar
    Join Date
    Oct 2013
    Location
    Germany
    Search PM
    Originally Posted by ENunn View Post
    Originally Posted by Skiller View Post
    I would look for a "natural" gradient (such as the sky).
    Here you go!
    I should have been more specific. Banding can be seen best in dark, smooth areas. A bright sky full of clouds is not smooth enough.
    A clear sky, preferably at night or dusk/dawn would exhibit banding easily if there is any. But really, any dark to medium bright texture-less area does it. Another instant where it can be spotted is during fades to and from black.

    Anyways, visually the two "Tweaked Default Proc-Amp" screenshot look about right to me.
    Quote Quote  
  17. VHS noise will largely mask small histogram gaps caused by integer rounding. The far left crop is the original with no histogram gaps. In the center left Tweak has caused histogram gaps but the video shows little posterization -- the noise in VHS has hidden it. In the center right Tweak has caused histogram gaps but KNLMeansCL has smoothed them away, there's very little posterization. In the right KNLMeansCL smoothed the video first (as if you had a noiseless video to start with) then Tweak caused histogram gaps, you clearly see posterization in the sky.
    Image Attached Files
    Quote Quote  
  18. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    Originally Posted by jagabo View Post
    Originally Posted by lollo View Post
    even a light filtering (i.e. GamMatch) or a denoise (i.e. TemporalDegrain2) fixes the original gaps in the histograms,
    probably because internally to the filters there is a convertion to a higher number of bits and a dithering operation.
    Noise reduction is basically averaging nearby (spacial and/or temporal) pixels together -- that's what fills in the histogram/waveform gaps. For example between 100 and 102 there's a gap. Averaging those together gives you 101, filling in that gap.
    True for denoising. However, GamMatch (working in RGB domain, so a conversion is needed) does not average any pixel in my understanding, and the effect is similar, although less effective.
    I tried to separate the effects of RGB conversion from the filter.

    Image
    [Attachment 59726 - Click to enlarge]


    Image
    [Attachment 59727 - Click to enlarge]
    Quote Quote  
  19. Member
    Join Date
    Mar 2019
    Location
    Henderson, KY, USA
    Search PM
    Originally Posted by Sharc View Post
    I think your last picture should be
    "Tweaked Modified Proc-Amp Converted to 10-bits", no?
    Whoops! Fixed.

    Originally Posted by Sharc View Post
    Looking at your 1st Forrest Gump picture I see no technical reason why you should modify or tweak anything, other than perhaps for personal taste.
    Yeah, personal preference :P

    Originally Posted by lollo View Post
    In addition, if a restoration is planned, even a light filtering (i.e. GamMatch) or a denoise (i.e. TemporalDegrain2) fixes the original gaps in the histograms,
    probably because internally to the filters there is a convertion to a higher number of bits and a dithering operation.
    Lucky me, I always do some processing (denoising, etc.) on my VHS captures.

    Originally Posted by Skiller View Post
    Anyways, visually the two "Tweaked Default Proc-Amp" screenshot look about right to me.
    Great! I don't do this type of stuff to anything else, only my VHS captures, so at least I got some reassurance.
    Quote Quote  
  20. Originally Posted by lollo View Post
    However, GamMatch (working in RGB domain, so a conversion is needed) does not average any pixel in my understanding, and the effect is similar, although less effective.
    Full range 8 bit RGB has about six times as many colors (finer gradations) as 8 bit limited range YUV. So making adjustments in RGB creates in-between colors that aren't in the YUV. Hence the filling of the histogram gaps upon returning to YUV.
    Quote Quote  
  21. Originally Posted by Skiller View Post
    Only few capture devices have proper Proc-Amps which alter the actual signal voltage interpretation inside the DAC during the sampling of the analog signal to digital – not afterwards in the driver software.

    Therefore I recommend to always leave the Proc-Amp settings at default (or whatever settings do not touch the levels) and correct afterwards in AviSynth in high bitdepth. With these "fake" Proc-Amps there is nothing to be gained from them anyways. Any clipped brights for example are already gone at this point and cannot be recovered no matter the settings of the Proc-Amp.
    Agree, when the capture device is an external USB converter for example one has no control over the device-internal A/D conversion (analog signal level, gain etc.) with the "fake" Proc-Amp driver tweaks. However, I imagine that it makes nevertheless sense to adjust the "fake" Proc-Amp settings in order to avoid generating Y'CbCr triplets which fall a priori outside the legal RGB range, hence getting a color distorted picture on the RGB monitor (which we then try to re-adjust afterwards in SW post processing.)
    Am I totally mislead?
    Quote Quote  
  22. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    However, I imagine that it makes nevertheless sense to adjust the "fake" Proc-Amp settings
    I do it. Even because the gaps in the Histograms are present also at default setting, then it makes no sense to search a "fake" setting to avoid them rather than search a setting to avoid incorrect levels.
    Quote Quote  
  23. Member Skiller's Avatar
    Join Date
    Oct 2013
    Location
    Germany
    Search PM
    Originally Posted by lollo View Post
    I do it. Even because the gaps in the Histograms are present also at default setting, then it makes no sense to search a "fake" setting to avoid them rather than search a setting to avoid incorrect levels.
    Years ago, with my SAA7134 based PCI capture card, I found the "neutral" Proc-Amp settings by selecting some random channel on it's analog tuner (since there was nothing connected, it resulted in classic tuner static) and enabling the histogram in VirtualDub's capture mode. Like this, while playing with the sliders for brightness and contrast, I could see the spikes and gaps in the histogram move and change until there were none left. This did, of course, produce slightly off levels in captures, but that could easily be corrected in post in high bitdeph, avoiding the banding that the Proc-Amp would produce at any other combination of settings. Otherwise, after the correction, it was exactly the same as if I captured with the right levels by adjusting the Proc-Amp in the first place. It still did capture everything that there is (after the DAC).

    Therefore...

    Originally Posted by Sharc View Post
    However, I imagine that it makes nevertheless sense to adjust the "fake" Proc-Amp settings in order to avoid generating Y'CbCr triplets which fall a priori outside the legal RGB range, hence getting a color distorted picture on the RGB monitor (which we then try to re-adjust afterwards in SW post processing.)
    Am I totally mislead?
    If you are going to do a levels correction in post, then I'd say my priority during capture would be to avoid the banding. Yes, the capture file itself will have incorrect levels but unless I would not want to do any post processing after capture, I do not see a problem with this. As long as there is no conversion to RGB before doing a levels correction in the capture's native Y'CbCr color space there really is nothing the fake Proc-Amp could do that SmoothLevels() in AviSynth for example could not (but better).
    Last edited by Skiller; 7th Jul 2021 at 15:13.
    Quote Quote  
  24. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    Yes, the capture file itself will have incorrect levels but unless I would not want to do any post processing after capture
    Yes, that's my strategy. It is a question of preferences. I want a capture that without any restoration is at his best, and I prefere a spiky histogram to incorrect levels, because I do not see this defect in real time vision, while I do see a level problem; but YMMV.

    And, if a do a restoration, I can fix spiky histogram as well as on the opposite strategy the levels can be fixed.
    Quote Quote  
  25. Member Skiller's Avatar
    Join Date
    Oct 2013
    Location
    Germany
    Search PM
    For that approach I can fully understand your reasoning.

    Also, you actually only have gaps rather than spikes in your histogram. It means the levels were expanded at some point (rather than squashed), so that everything is still there, nothing was thrown away. It's not nearly as bad as the opposite case (spiky histogram) where actual data was lost.
    Quote Quote  
  26. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    We are using opposite terminology.

    I call "spiky" a histogram showing a uniform distribution of the levels, but where a saw tooth pattern is "added" on top of that.
    An example here, that is almost always produced by my Hauppauge USB-Live2:

    Click image for larger version

Name:	spikes.png
Views:	106
Size:	917.1 KB
ID:	59746

    I refere to a "gap" histogram when it shows holes in the distribution.
    An example here, provided from a user of a IO Data GV-USB2 in another post:

    Click image for larger version

Name:	hist2.png
Views:	95
Size:	491.2 KB
ID:	59747

    I agree with you that the last should be avoided
    Last edited by lollo; 8th Jul 2021 at 02:48.
    Quote Quote  
  27. Originally Posted by Skiller View Post
    If you are going to do a levels correction in post, then I'd say my priority during capture would be to avoid the banding. Yes, the capture file itself will have incorrect levels but unless I would not want to do any post processing after capture, I do not see a problem with this. As long as there is no conversion to RGB before doing a levels correction in the capture's native Y'CbCr color space there really is nothing the fake Proc-Amp could do that SmoothLevels() in AviSynth for example could not (but better).
    Yes. As long as I can edit and level-adjust the capture's native Y'CbCr in post with AviSynth in YUV I see no problem. Without AviSynth (e.g. when using Vdub or NLE's which convert and operate in RGB) I would still have to rely on the "fake" Proc-Amp driver tweaks to prevent incorrect (illegal) RGB conversions, as I understand.
    It's not really a problem though because I normally have AviSynth in place anyway, so I could in this case skip the "fake Proc-Amp" adjustments and do all levels adjustments in AviSynth as you suggest.

    Btw, smoothadjust.dll v3.20 (SmoothLevels, SmoothTweak) seems to have a problem with >8bit sources (using convertbits(12) for example), or require some additional preprocessing ....
    Edit:
    I got the solution for SmoothAdjust here: https://forum.doom9.org/showthread.php?p=1946997#post1946997
    Last edited by Sharc; 8th Jul 2021 at 06:57.
    Quote Quote  
  28. Member Skiller's Avatar
    Join Date
    Oct 2013
    Location
    Germany
    Search PM
    Originally Posted by lollo View Post
    We are using opposite terminology.
    Well, maybe. I'm not sure we are talking about the same thing so let me show an example.


    First, we start with this gradient (made in Photoshop), free of banding, resulting in a smooth histogram:

    Image
    [Attachment 59758 - Click to enlarge]




    Now, let's expand this using Tweak(Cont=1.05, coring=false):

    Image
    [Attachment 59759 - Click to enlarge]


    It results in gaps/holes in the histogram, but none of the original data is actually lost. It's missing high bitdepth dithering to fill the gaps.



    And if we do the opposite thing and squash the original using Tweak(Cont=0.95, coring=false), this happens:

    Image
    [Attachment 59760 - Click to enlarge]



    Due to the squashing there are now spikes and some data is lost.



    Looking at your last screenshots, I'm not sure what to think of the tooth pattern added on top of the histogram. I don't recall having seen it before, nor do I have a clue how that would happen. Maybe the "classic" mode of the histogram provides more detail to answer that question.
    Your last screenshot looks exactly like the expanded example above.
    Last edited by Skiller; 8th Jul 2021 at 15:21.
    Quote Quote  
  29. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    Thanks for the examples, in fact we used the same words. What was unclear to me is when you said that my histogram showed gaps, while there are no gaps.

    I don't recall having seen it before, nor do I have a clue how that would happen. Maybe the "classic" mode of the histogram provides more detail to answer that question.
    I do not have a valid theory either. Same frame as before with "classic" histogram:

    Click image for larger version

Name:	spikes2.png
Views:	107
Size:	958.4 KB
ID:	59767
    Quote Quote  
  30. Member Skiller's Avatar
    Join Date
    Oct 2013
    Location
    Germany
    Search PM
    Originally Posted by lollo View Post
    What was unclear to me is when you said that my histogram showed gaps, while there are no gaps.
    You are right. That statement of mine applies only to the histogram of the OP in post #3. I mixed it up, sorry.


    Just had bit of playing around with that screenshot and possibly the histogram is "overlaid" like that simply because the video is of course interlaced and the two fields represent different points in time (the background and rain are changed between the two).
    If you put SeparateFields() beforehand that would eliminate it if interlacing is indeed the culprit here.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!