I understand that NTSC-J has a different black level than plain old NTSC. I have a couple of imported DVDs, and when played on the PC they are indeed showing slightly more washed out than they should be. Now the question is, what would be the exact tweaking to recover a proper level? I want it to be as accurate as possible, maybe someone here has the exact filter for that.
I've tried Tweak(bright=-16.0) as I had found a suggestion of doing just that, but it comes out too dark, so I'd rather have a tried and true setting, one that can be mathematically justified instead of eyeballing it.
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 10 of 10
Thread
-
-
You can use a waveform monitor (histogram() in avisynth) to help guide your adjustments
There is not necessarily any exact or "tried and true setting", because many different things might have occurred between the original source and what you have for that specific DVD . -
Well I guess you're right, but there ought to be a baseline. I mean a DVD might have a poor color grading, but it does not change the fact that you'll want to compensate the difference in format first. If I understand correctly NTSC-J are 7.5% "brighter" (more precisely blacks are 7.5% less deep) but can this be offset without crushing the levels altogether? Adjusting for 7.5% brightness would be -19.125 on a 255-scale (Tweak) and that's quite dark. But I'm not sure Tweak is using a linear scale for this.
-
The digital level for reference black is the same for NTSC-J, Y=16. The "7.5%" is for analog equipment
You can use levels, curves if you don't like tweak
Also tweak() and levels() clip Y data 16-235, unless you use coring=false - another reason you should use scopes to monitor your adjustmentsLast edited by poisondeathray; 18th Feb 2022 at 09:38.
-
The problem is I has no knowledge on how to read level histograms or waveforms. I can see on the histograms that the black level is floored at 16, but that's about it. I'm trying to apply this transform Levels(16, 1, 235, 0, 255, coring=false) but it does look a bit too much.
The digital level for reference black is the same for NTSC-J, Y=16 -
Maybe this will help: https://forum.videohelp.com/threads/340804-colorspace-conversation-elaboration#post2121568
Yes. Limited range YUV (used for almost all commercial distribution) has full black at Y=16, full white at Y=235. Upon conversion to RGB for display full black (and everything below it) becomes RGB=0, full white (and everything above it) RGB=255, and everything between the two stretched linearly. -
OK so I took a better look at my footage armed with this information. Pure white shows off correctly at 235 (just bordering the yellow top-zone) but blacks are higher than 16, with a floor obviously too high, which is why it looks a little washed out
[Attachment 63449 - Click to enlarge]
First, you can notice there's a bit of noise in the yellow zones, it's not much but it's there, I suppose it can be safely ignored for the purpose of regrading the footage?
So, my goal should be to lower the floor to be bording the yellow bottom-zone of 16, is that right? However I do not want to lower the whites, so using tweak to lower the brightness is not the correct approach. I believe my best bet is to use Levels(X, 1, 235, 16, 235, coring=false) and find which value of X to use. Technically speaking it should be the current floor value. But how do I find this value, beside trial and error? Can Histogram give me an actual minimum value I can use? -
Yes. Those are typically from sharpening filters and compression artifacts (DCT ringing). That's why there is headroom and footroom in the limited range spec.
Yes -- assuming that area is supposed to be full black.
Yes, again assuming the peak is supposed to be full white.
It's one way. You can also use ColorYUV, Tweak, etc. But Levels() is pretty intuitive for this kind of adjustment.
Histogram can't give you a value. But looking at the graph, the bottom yellow bar is 16 units thick. So the distance between the bar and the dark patch above it about 6 to 8 units. Try something like Levels(8, 1, 255, 0, 235, coring=false).
ColorYUV(analyze=true) reports a "loose minimum" value. That ignores the lowest percent or so of values -- ie, ignores some of that noise. -
Alright this is starting to make sense thank you very much. One last thing though, you say Levels(8, 1, 255, 0, 235, coring=false) but it should be Levels(8, 1, 255, 0, 255, coring=false) to keep the whites at their current level right? Unless I misunderstood something on the usage of levels.
-
Yes, you are correct. It should be Levels(8, 1, 255, 0, 255, coring=false). Sorry for the typo. I originally wrote Levels(8, 1, 235, 0, 235, coring=false) but when I tested that the output was clamped at 235 (I didn't realize this but it always clamps to the output range, regardless of the coring setting). When I posted I changed the first 235 to 255 but forgot to change the second).
Last edited by jagabo; 18th Feb 2022 at 19:40.
Similar Threads
-
Help needed ASAP with color issue (Background same color as shirt talent)
By marciano999 in forum EditingReplies: 0Last Post: 13th Jul 2020, 10:40 -
Calculation of Color Rate - NTSC
By GrouseHiker in forum CapturingReplies: 81Last Post: 1st Jun 2020, 23:06 -
Interlacing Problems Ripping Futruama NTSC DVDs
By Geardan in forum DVD RippingReplies: 8Last Post: 15th Mar 2019, 12:34 -
Can't figure out how to convert PAL DVDs to NTSC MKV.
By MJ in forum Newbie / General discussionsReplies: 25Last Post: 12th Dec 2017, 03:30 -
Why NTSC DVDs shows black horizontal stripes?
By arpcpro in forum DVD & Blu-ray PlayersReplies: 8Last Post: 30th Apr 2017, 16:31