I bought the new 4K release of this movie. It's certainly better detailed than the old Blu-Ray, but the old blu-ray looks so much more lively, or less dull. It's whites actually look white, instead of a duller greyish color.
The old one is certainly oversaturated and overblown, but is there any way to make the duller looking 4K restoration a bit brighter, and more colored looking like the older Blu-Ray release?
New 4k restoration
https://forum.videohelp.com/images/imgfiles/II6lw3h.png
Older 1080p
https://forum.videohelp.com/images/imgfiles/Bnu3aD9.png
Comparison
https://slow.pics/c/nP9qMbJy
New 4k restoration
https://forum.videohelp.com/images/imgfiles/e8bReO2.png
Older 1080p
https://forum.videohelp.com/images/imgfiles/gci1N8U.png
Comparison
https://slow.pics/c/oKZJgpiQ
New 4k restoration
https://forum.videohelp.com/images/imgfiles/sIA13E0.png
Older 1080p
https://forum.videohelp.com/images/imgfiles/UvHn7zU.png
Comparison
https://slow.pics/c/ruTXZZHA
New 4k restoration
https://forum.videohelp.com/images/imgfiles/6GAUKWX.png
Older 1080p
https://forum.videohelp.com/images/imgfiles/ay0okht.png
Comparison
https://slow.pics/c/oVwjsJNd
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 27 of 27
Thread
-
Last edited by killerteengohan; 29th Nov 2022 at 18:46.
-
Is it possible that the file you have is a Dolby Vision file? Consequently the washed out colours.
SONY 75" Full array 200Hz LED TV, Yamaha A1070 amp, Zidoo UHD3000, BeyonWiz PVR V2 (Enigma2 clone), Chromecast, Windows 11 Professional, QNAP NAS TS851 -
I don't think 1080p Blu-Rays have Dolby Vision. It's a typical 1080p Blu-Ray with a 4k rescan/remaster for the source. This was not from an UHD 4K Blu-Ray with Dolby Vision. I do not have the proper disc drive to rip the 4K UHD disc. The set came with both UHD 4K and 1080p Blu-Ray. I'm using the 1080p disc.
I don't think the colors are washed out. The overall image just looks less vibrant or quite dim in comparison.Last edited by killerteengohan; 30th Nov 2022 at 00:16.
-
I ended up trying something I remembered Jagabo teaching me a couple years ago called YLevelsS.
Code:smoothtweak(saturation=1.05, brightness=0, contrast=1.00, dither=-1, interp=0, limiter=false) YLevelsS(16,1.3,255,0,255) FastLineDarkenMOD(strength=22, thinning=0)
I still didnt quite get the whites I had hoped for, but it looks much more acceptable.Last edited by killerteengohan; 30th Nov 2022 at 10:18.
-
To get the warmer and bright whites, and darker blacks, in the second pair of images:
Code:RGBAdjust(r=248.0/202.0, g=241.0/204.0, b=230.0/206.0)
[Attachment 67905 - Click to enlarge]
Getting the other colors to match will be very hard in AviSynth. -
I don't need the colors to be 100% identical. Anything more lively or brighter than the source is good enough for me colors wise.
Thanks for trying to help. I was just finished trying 3 different things when I noticed your reply. It looks like you suggested RGBAdjust, but with less altering than I did when I tried it.
I tried pasting the settings you suggested over the ones in my attempt, but everything changes too drastically. It's a bit overkill, but it did do the job on the whites that's for sure.
This is what I tried before seeing your reply.
I lowered the 16 down to 0 and I think that looks a bit better than 16 did.
Code:smoothtweak(saturation=1.05, brightness=-1, contrast=1.00, dither=-1, interp=0, limiter=false) YLevelsS(0,1.3,255,0,255) FastLineDarkenMOD(strength=22, thinning=0)
I also tried ColorYUV out, and I think it's colors look more natural than YlevelsS.
Code:smoothtweak(saturation=1.05, brightness=-1, contrast=1.00, dither=-1, interp=0, limiter=false) coloryuv(off_y=9, off_u=0, off_v=0) FastLineDarkenMOD(strength=22, thinning=0)
Lastly I tried this, and it actually looked even better to me. The whites kinda dull down a bit compared to YLevelsS or ColorYUV, but everything else when it comes to colors looks better to me. The only thing I wish didn't happen is the white/grey tint it appears to gain from the brightening. Kind of dulls the blacks. I tried the line thinner to help with blacks.
Code:ConvertToYV24(matrix="rec709", chromaresample="point") MergeChroma(PointResize(width, height, 0, 1)) ConvertToRGB32(matrix="rec709") RGBAdjust(rg=1.20, gg=1.20, bg=1.20, rb=-1, gb=-1, bb=-1, r=1.00, g=1.00, b=1.00) ConvertToYV12(matrix="rec709", chromaresample="point") FastLineDarkenMOD(strength=22, thinning=0) smoothtweak(saturation=1.05, brightness=-1, contrast=1.00, dither=-1, interp=0, limiter=false)
ColorYUV vs RGBAdjust
https://slow.pics/c/0eaBwvlx
I like the colors of the RGBAdjust, and the whites of the ColorYUV as you can see in the comparison example.
Is there a change to the RGBAdjust version I tried, that you would suggest to affect only whites?
I realize I probly cant get it perfect, but I think if anyone would know how to make just that slight adjustment to white, you would.
I am content with the RGBAdjust result I got if there's no adjustment I can make that I like.
Honestly compared to the source, I think it looks much better and more like I was hoping. This looks much more like a classic cartoon now.
Source vs RGBAdjust
https://slow.pics/c/U6PlrAuE
If I could get the white a bit more like ColorYUV did, and lessen the white tint from the brightening a little, I think I'd have it 100% how I would like.Last edited by killerteengohan; 1st Dec 2022 at 10:42.
-
Do you happen to have any idea why RGBAdjust seems to be eating away or thinning black lines? Most noticeable on reds and oranges. The ColorYUV and YLevelsS dont seem to affect them.
I realize its going through conversions, but can I stop that or lessen the extent of it?
https://slow.pics/c/rRXj1cyQ
https://slow.pics/c/U6PlrAuE -
Raising the gamma (rg=1.20, gg=1.20, bg=1.20) makes the dark edges around the black lines lighter. That makes the lines look thinner.
[Attachment 67908 - Click to enlarge]
Oops, I noticed that I left out a line in my earlier RGBAdjust() suggestion. It should have read:
Code:RGBAdjust(rb=-24, gb=-24, bb=-24) RGBAdjust(r=248.0/202.0, g=241.0/204.0, b=230.0/206.0)
Last edited by jagabo; 30th Nov 2022 at 18:22.
-
I thought it was the conversion from YV into RGB, and back to YV degrading them from all the conversions. I guess it's just the gamma's fault.
Isn't RGB gamma essentially the same thing as adjusting Y?
I will give your fixed suggestion a try when I can later tonight. -
I thought it was essentially the same thing since those both raised the levels and made it brighter.
I noticed the left side of the video, about maybe the first 30 vertical rows of pixels is brighter looking than the rest of the image. It's pretty distracting to see a brighter/whiter bar along the left side of the video. Can you think of a way to lower it down to match with the rest of the video or make it less obvious?
Here is a sample video clip.
https://mega.nz/file/89oG0RrR#9_TpFD7MjStL6OYOkfuNG-QVuHKrqqpumt6ID_OBmK4 -
Pretty subtle. But try this:
Code:########################################################################## # # Fill a rectangular box with a specified color. # ########################################################################## function BoxFill(clip v, int x, int y, int w, int h, int color) { BlankClip(v, color=color) Crop(0, 0, w, h) Overlay(v, last, x, y) } ########################################################################## LWLibavVideoSource("00800 Clip.m2ts", cache=false, prefer_hw=2) Crop(232,0,-232,-0) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(18, 0, 9, height, $FFFFFF).Blur(1.0).Blur(1.0) dark = ColorYUV(gain_y=-3) Overlay(last, dark, mask=mask) mask = mask.BoxFill(0, 0, 40, mask.height, $FFFFFF) mask = mask.BilinearResize(mask.width/16, mask.height).Spline16Resize(mask.width, mask.height) dark = ColorYUV(gain_y=-3) Overlay(last, dark, mask=mask)
Last edited by jagabo; 2nd Dec 2022 at 16:27.
-
Here's an example of Gamma adjustment:
Let's say your brightness levels are
0-----10-----20-----30-----40-----50-----60
and you are supposed to have reference brightness levels in the range between 10-90 (keeping legal overshoot and undershoot still within the range of 0-100).
yours would be too low overall, plus not using full range
simply adding 10 to everything linearly would make it
10-----20-----30-----40-----50-----60-----70
which is better for the low end, but doesn't use the full range
simply multiplying everything by 1.5 (90/60) linearly would make it
0-----15-----30-----45-----60-----75-----90
which stretches the range out but still leaves the low end too low.
instead multiplying everything by 1.333 (80/60), and then adding 10 would give you
10-----23-----37-----50-----63-----77-----90
which puts you exactly in the target range.
(btw, another way would be to add the 10 and then do the multiplication, but it might give you slightly different numbers, and to do it optimally, you need to do the exact reciprocal of how it got there)
but if the values are still TOO DARK for your intention, due to non-linearity in the transfer function of the camera's sensor, or to perceived non-linearity in TV pixels, etc, you need to apply a NON-LINEAR function. Gamma.
so your value might now be
10-----28-----42-----55-----66-----79-----90
which expands the difference distance on the low end and then curves to contract the difference distance on the high end.
********
In fact, those non-linearities already do exist in sensors, displays, your eyes/brain, etc, so they do need to be taken into account.
Scott -
Yes, raising gamma increases the contrast in the dark areas and decreases contrast in the bright areas. In other words, it brings out dark detail at the cost of less bright detail. Decreasing gamma does the opposite.
In this image the letter O appears in each 32x32 block. At the top left the background of the box is at RGB=0, the latter at RGB=4. As you move to the right the letter and the background increase by one unit (background 1 letter 5, background 2 letter 6, etc.) Each successive row increases everything by 16, up to a background of 255. You should be able to see all the letters except the few brightest ones (where the letter is clamped to 255 rather than being 4 units higher than the background).
source:
[Attachment 67953 - Click to enlarge]
RGBAdjust(rg=2.0, gg=2.0, bg=2.0):
[Attachment 67951 - Click to enlarge]
RGBAdjust(rg=0.5, gg=0.5, bg=0.5):
[Attachment 67952 - Click to enlarge]
In the gamma 2.0 image you can see the letter more easily against the background in the dark areas (ie, more contrast in the darks) but the bright letters are less visible (ie, less contrast in the brights). In the gamma 0.5 image it's the opposite. In both cases blacks stay at 0, whites stay at 255. -
Thanks, I will try that after dinner tonight and get back with you. I only see whats on the left side. I don't see another one anywhere that looks like it could be 100 pixels wide.
The only other idea I came up with is something you and poison taught me quite a while back with edgemask for filtering only the left and right sides outer few pixels, but I have adjusted it for this and hope it will work for this purpose as well.
Code:baradjustment = last.smoothtweak(saturation=1.00, brightness=-3, contrast=1.00, dither=-1, interp=0, limiter=false) edgemask = BlankClip(last).Crop(260,0,0,0).AddBorders(260,0,0,0,color=$ffffff).ColorYUV(levels="TV->PC") Overlay(last, baradjustment, mask=edgemask)
-
-
I tried the boxfill idea you suggested, and the edgemask idea.
Both of them work a little bit, but I can see a clear straight line where brightness differences meet for both ways.
The boxfill method you can see a darker area on the right half of it now. It is better though that's for sure, and was a good idea.
https://slow.pics/c/Z26G236j
Update: After tinkering with the settings one by one, and learning how boxfill works, I see why I was seeing the darker area or straight line I did, and made changes to it that made it much less obvious to non existant. That's pretty cool what that filter can do.
This may be quite handy in the future with certain much older material. I am glad to know about this one existing.
The edgemask method looks like it matches it better and gets all the white better, but you can see a very clear and obvious difference in brightness between the edgemask line and the original where they meet. It looks like a darker straight bar now instead and the line between the two can clearly be seen.
https://slow.pics/c/d84IdRKO
Maybe you can suggest a way to blend or blur that edgemask in the overlay so, its not as obvious of difference like that where they meet? -
That's why downscaled and upscaled the mask after creating it -- to blur the edges. You can also try something like BinomialBlur() with a large radius.
It's a matter of blurring the mask just the right amount and at just the right position. I'll leave it up to you to fine tune it. Here's a hint: Interleave() the image and the mask to see how well they match. -
I was wondering why you used blur(1.0).blur(1.0) at the end of the mask. I will try out the interleave tomorrow.
The boxfill helped out nicely for the earlier scene. There's about 5 minutes in the beginning with lots of lighter vertical stripes.
I think it worked out nicely.
With lines
https://slow.pics/c/n0x5jbP5
With lines masked
https://slow.pics/c/M2XZYi9q
Code:dark = ColorYUV(gain_y=-2) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(898, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) Overlay(last, dark, mask=mask) mask2 = BlankClip(width=width, height=height, color=$000000).BoxFill(588, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) Overlay(last, dark, mask=mask2) mask3 = BlankClip(width=width, height=height, color=$000000).BoxFill(1459, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) Overlay(last, dark, mask=mask3) mask4 = BlankClip(width=width, height=height, color=$000000).BoxFill(1266, 0, 12, height, $FFFFFF).Blur(1.0).Blur(1.0) Overlay(last, dark, mask=mask4) mask5 = BlankClip(width=width, height=height, color=$000000).BoxFill(1303, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) Overlay(last, dark, mask=mask5)
Last edited by killerteengohan; 3rd Dec 2022 at 22:15.
-
Since I only wanted to use those stripe masks on a certain set of frames, is there a way to make it so I can do all of this in single call to replaceframessimple?
Code:dark = ColorYUV(gain_y=-200) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(898, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(last, dark, mask=mask) ReplaceFramesSimple(last, filtered, mappings="[1127 8537]") mask2 = BlankClip(width=width, height=height, color=$000000).BoxFill(588, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered2 = Overlay(last, dark, mask=mask2) ReplaceFramesSimple(last, filtered2, mappings="[1127 8537]") mask3 = BlankClip(width=width, height=height, color=$000000).BoxFill(1459, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered3 = Overlay(last, dark, mask=mask3) ReplaceFramesSimple(last, filtered3, mappings="[1127 8537]") mask4 = BlankClip(width=width, height=height, color=$000000).BoxFill(1266, 0, 12, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered4 = Overlay(last, dark, mask=mask4) ReplaceFramesSimple(last, filtered4, mappings="[1127 8537]") mask5 = BlankClip(width=width, height=height, color=$000000).BoxFill(1303, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered5 = Overlay(last, dark, mask=mask5) ReplaceFramesSimple(last, filtered5, mappings="[1127 8537]")
Last edited by killerteengohan; 4th Dec 2022 at 12:38.
-
I gave up trying to optimize the 5 boxfills into 1 replaceframes call. No ideas came to mind.
I got this looking much better thanks to all the help I got.
https://slow.pics/c/euVLFL3P
Thanks a lot for the help.
I just have one last question I would like to ask.
You guys described the cause of what I brought up with the lines. I was just wondering, is there anything I can do to reduce, or reverse that some?
I tried a mergeluma hoping to get the line thickness back some. I also tried a mergechroma instead after that, but they completely undid the brightening I was after with the RGBAdjust. I tried a line darkener, but it didn't really seem to affect thickness. -
You're using ReplaceFramesSimple() five times on the same range, adding the adjustments. Do all the adjustments first then use ReplaceFramesSimple() only once at the end.
To keep the black line thickness use an edge mask to Overlay the original (or otherwise adjusted) black lines. -
Thats what I wanted to do, but I'm not quite understanding how I would write that out. I tried this, but I can only specify using one of them in the replaceframes line?
Code:dark = ColorYUV(gain_y=-200) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(898, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(last, dark, mask=mask) mask2 = BlankClip(width=width, height=height, color=$000000).BoxFill(588, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered2 = Overlay(last, dark, mask=mask2) mask3 = BlankClip(width=width, height=height, color=$000000).BoxFill(1459, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered3 = Overlay(last, dark, mask=mask3) mask4 = BlankClip(width=width, height=height, color=$000000).BoxFill(1266, 0, 12, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered4 = Overlay(last, dark, mask=mask4) mask5 = BlankClip(width=width, height=height, color=$000000).BoxFill(1303, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered5 = Overlay(last, dark, mask=mask5) ReplaceFramesSimple(last, filtered5, mappings="[1127 8537]")
-
You're creating 5 different filtered videos then only using the last one, filtered5. You want to accumulate all the filters into one video then ReplaceFramesSimple(). You don't need to use a different name for each mask (unless you want to use them for something else later).
Code:WhateverSource() dark = ColorYUV(gain_y=-200) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(898, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(last, dark, mask=mask) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(588, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(filtered, dark, mask=mask) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(1459, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(filtered, dark, mask=mask) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(1266, 0, 12, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(filtered, dark, mask=mask) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(1303, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(filtered, dark, mask=mask) ReplaceFramesSimple(last, filtered, mappings="[1127 8537]")
Code:WhateverSource() dark = ColorYUV(gain_y=-200) mask = BlankClip(width=width, height=height, color=$000000) mask = mask.BoxFill(898, 0, 6, height, $FFFFFF) mask = mask.BoxFill(588, 0, 6, height, $FFFFFF) mask = mask.BoxFill(1459, 0, 6, height, $FFFFFF) mask = mask.BoxFill(1266, 0, 12, height, $FFFFFF) mask = mask.BoxFill(1303, 0, 6, height, $FFFFFF) mask = mask.Blur(1.0).Blur(1.0) filtered = Overlay(last, dark, mask=mask) ReplaceFramesSimple(last, filtered, mappings="[127 137]")
Last edited by jagabo; 6th Dec 2022 at 06:49.
-
Code:
dark = ColorYUV(gain_y=-2) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(898, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(last, dark, mask=mask) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(588, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(filtered, dark, mask=mask) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(1459, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(filtered, dark, mask=mask) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(1266, 0, 12, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(filtered, dark, mask=mask) mask = BlankClip(width=width, height=height, color=$000000).BoxFill(1303, 0, 6, height, $FFFFFF).Blur(1.0).Blur(1.0) filtered = Overlay(filtered, dark, mask=mask) ReplaceFramesSimple(last, filtered, mappings="[1127 8537]")
I can make all those masks into one single mask? how? -
-
"You don't need to use a different name for each mask (unless you want to use them for something else later)."
I was always under the impression that if you named them the same, and used that name in an overlay or call for something else, it would use them all at the same time, and one would be used over top of the other multiple separate times. Basically I figured if I named them all the same but adjusted saturation for only the first one, I would have expected it carry over the saturation change into all of them, and all of them would have changed saturation because of it doing every single line with that name at the same time. Understand what I was believing?
Apparently it only uses the most recent one previous to the current call instead of all at once?
Code:WhateverSource() dark = ColorYUV(gain_y=-200) mask = BlankClip(width=width, height=height, color=$000000) mask = mask.BoxFill(898, 0, 6, height, $FFFFFF) mask = mask.BoxFill(588, 0, 6, height, $FFFFFF) mask = mask.BoxFill(1459, 0, 6, height, $FFFFFF) mask = mask.BoxFill(1266, 0, 12, height, $FFFFFF) mask = mask.BoxFill(1303, 0, 6, height, $FFFFFF) mask = mask.Blur(1.0).Blur(1.0) filtered = Overlay(last, dark, mask=mask) ReplaceFramesSimple(last, filtered, mappings="[127 137]")
Similar Threads
-
VLC Correct Levels
By chris319 in forum Software PlayingReplies: 0Last Post: 28th Aug 2021, 22:39 -
VHS tape reversed and flipped over, can the dull side damage heads?
By agisthos in forum CapturingReplies: 5Last Post: 5th Jun 2021, 23:49 -
991018 - Avidemux to show brighter images
By hamidi2 in forum Newbie / General discussionsReplies: 6Last Post: 8th Jan 2021, 14:09 -
Dull/Washed out looking video
By killerteengohan in forum RestorationReplies: 13Last Post: 11th Jun 2020, 22:03 -
levels are wrong?
By max_cady in forum RestorationReplies: 8Last Post: 22nd Apr 2020, 09:20