Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
11th October 2012, 00:05 | #14642 | Link | |
Nicolas Robidoux
Join Date: Mar 2011
Location: Montreal Canada
Posts: 269
|
Quote:
Although this is different than the sigmoidization I've used, I think that actually this may work better than any other fix because of the fact that conversion from Y'CbCr over and undershoots when converted to linear RGB. I really do. I don't want to go into a big lecture as to why, because the proof (or disproof) will be in the pudding. However, I'll also do the math for the fix that extends the S in a straight line past [0,1], in case you want to try that too. That would be my "second best fix". I really really don't like the mirroring solution. Last edited by NicolasRobidoux; 11th October 2012 at 00:12. |
|
11th October 2012, 02:26 | #14643 | Link |
Broadband Junkie
Join Date: Oct 2005
Posts: 1,859
|
NVIDIA pushed out new WHQL drivers supporting all cards yesterday.
306.97 WHQL English (WinVista/Win7/Win8 x64) 306.97 WHQL International (WinVista/Win7/Win8 x64) 306.97 WHQL English (WinVista/Win7/Win8 x86) 306.97 WHQL International (WinVista/Win7/Win8 x86) 306.81 WHQL English (WinXP x86) 306.81 WHQL International (WinXP x86) |
11th October 2012, 03:52 | #14644 | Link | |
Registered User
Join Date: Apr 2009
Posts: 1,019
|
Quote:
If you use a chroma algorithm that is too soft, colour bleeds out the edges of objects, and the brightness/saturation is reduced. (particularly with finer details) If you use one that is too sharp, objects can be brighter than they should be, and ringing becomes a problem. I've still never seen a sample from anyone using SoftCubic for Chroma that actually shows it to be beneficial, and I must say that I find it extremely rare for aliasing to be a problem with chroma. (at least using an algorithm that suffers from aliasing, nothing will fix it if it's a part of the source) I've actually been doing testing again recently due to the introduction of the anti-ringing filter. (and actually, have reviewed it a couple of times in the past - I don't think the post you linked to was the most up-to-date) I didn't really want to post anything yet though, because I haven't had the time to really look into it yet, and there has been a lot of interesting discussion regarding the scaling algorithms recently. (and technical discussion that is beyond me - my choices are based on observations and measurements from the final scaled images) It sounds like there could be some interesting developments in the near future, which I didn't want to detract from, nor did I want to write up a big post that could be outdated pretty quickly. For what it's worth though, the anti-ringing filter has noticeably changed the results - I'm actually quite liking Lanczos 3 with it so far with all the samples I've tried, but that is from very incomplete testing. I'm quite sure there will be samples where Lanczos is too sharp, and that I just haven't run into them yet. I don't know that I'm a fan of Jinc for Chroma though. There has only been one sample I've tried where it has looked best, and there were some noticeable drawbacks. |
|
11th October 2012, 04:46 | #14645 | Link | ||
Registered User
Join Date: Sep 2012
Posts: 47
|
I know that the focus right now is on greater things, but can anybody else check and confirm? MadVR does not work when the player is on a monitor in portrait mode for me (I've tried in previous versions as well as the most recent one, with MPC-HC; using Mobility Radeon HD 3650).
Seems like there have been a couple previous posts in this thread about this issue, but I did not find any resolution: Quote:
Quote:
Portrait / landscape can be set in AMD / Nvidia control panels or Windows "screen resolution" page. To be honest, I actually have some 256 x 384 content that could really use some high-quality upscaling to 1080 x 1620 size on a 1080p monitor. Well, having normal 4:3 / 16:9 content also work would be nice too, for whenever my main monitor is set to portrait (of course, changing the orientation and physically rotating the thing does not take more than half a minute, but still...). |
||
11th October 2012, 06:27 | #14646 | Link | |
Registered User
Join Date: Aug 2012
Posts: 12
|
Quote:
I think we should encourage people more to go after their own taste. I personally like Jinc 4 taps + anti ringing, 8 taps is a little too much ringing in my opinion. The sharpness difference between the two is almost forgetable. If some people are doubting look for the less ringing option. And of course you have to look at your GPU too. |
|
11th October 2012, 07:40 | #14647 | Link | |
Registered User
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,407
|
Quote:
tbh, Jinc 8 taps + anti-ring is too much for my video card (GTX 680) doing 720p/1080p -> 2560x1440. I did take your advice and try bicubic 75 and Mitchell-Netravali. I liked them and used bicubic 75 until recently, trying 3 tap Jinc + anti-ring for chroma now. I am just not convinced there is really a correct method. |
|
11th October 2012, 09:27 | #14648 | Link |
Registered User
Join Date: Aug 2006
Location: Stockholm/Helsinki
Posts: 805
|
Nicolas &... um... Mathias? =)
If the curve only is defined in [0,1], then I don't see the problem with clipping. Introducing a new curve for out-of-range values seems kind of arbitrary, and there's the convex/concave problem. Of course, I'm no expert on this, and I haven't even tried it myself. But it "feels" better to just extend the [0,1] input range to cover all possible values. Would that make it look weird? Or just clip it =). |
11th October 2012, 12:55 | #14650 | Link |
Nicolas Robidoux
Join Date: Mar 2011
Location: Montreal Canada
Posts: 269
|
The issue is where the BTB and WTW come from, and what is done with them.
Which I don't fully understand, so I have to go with my guts. ----- When solving real world problems, math should shadow the world, not the other way around. Cows are not spheres, (ir)regardless of how elegant the proof becomes with this assumption. The Grand Poobah of Postmodern Mathematics and Other Fuzzy Religions P.S. The sigmoid curve is a tool, not a prescription. Once you (meaning me) have decided that the way to deal with over and undershoots is more or less to stretch things exponentially near gamut extremes, it's a way of piecing two exponential curves smoothly given that one of them is upside down. Maybe piecing two gamma curves or other power laws would be better. Actually, I may have to try just that: Symmetrize a pair of gamma curves. Or something that evenly spreads over and undershoots computed explicitly from the filter kernel. (Numerical math nightmare.) Maybe. But the sigmoid curve seems to work well. Better than a few others I quickly tried. Probably cluelessly. Last edited by NicolasRobidoux; 11th October 2012 at 13:20. |
11th October 2012, 13:42 | #14651 | Link |
Software Developer
Join Date: Oct 2001
Location: Israel
Posts: 1,005
|
madshi:
I'm investigating the option to port some of ZP's MadVR OSD rendering to add side-by-side 3D support. So far, other than a negligible CPU overhead, it seems to quite easy to implement. The question is, wouldn't it be better to do it on the renderer rather than the player? Here's what I'm experimenting with (not sure it's the best approach, as I lack the 3D hardware for testing): I took the OSD image, made sure its width is mod 2 (to simplify things) and then what I do is this: I split the source image into two by taking every alternating vertical column of pixels, one column for the left eye and the next for the right-eye and splitting the source images into a left/right eye images. Then I half the X-Offset to compensate for the left/right scaling being performed on the target device and place the left image. For the right-eye image, I add half the video's width and half of the x-offset. Here's how it looks like: What do you think? P.S. I noticed in the OSD API's code there is an option to define a 'left' and 'right' bitmap for 3D. Does this code do anything or is it just a place holder for now? Last edited by Blight; 11th October 2012 at 14:10. |
11th October 2012, 13:43 | #14652 | Link | |
Registered User
Join Date: Apr 2009
Posts: 1,019
|
Quote:
Now that we have the anti-ringing filter for Chroma, I don't think Mitchell-Netravali is the best choice, as its main benefit was a lack of ringing, at the expense of other areas of image quality. As I said, the anti-ringing filter changes things. |
|
11th October 2012, 13:51 | #14653 | Link |
Nicolas Robidoux
Join Date: Mar 2011
Location: Montreal Canada
Posts: 269
|
This is in a different thread than what has been talked about, but if you wanted something a) cheap b) without ringing c) reasonably smooth, even when upsampling, then I would recommend tensor quadratic B-spline smoothing.
The footprint of the filter is really really tight: It's a square with width = 3 (compare to 4 with all the bicubics). What this scheme is: The (archetypal, meaning lost) "middle child" in the B-spline family, which goes like this: box filtering (width=1), bilinear (width=2), quadratic B-spline smoothing (width=3), cubic B-spline smoothing (width=4). It's basically for someone who likes the standard cubic B-spline smoothing but can't stand the blurriness. The quadratic version is sharper a nudge, without introducing the "ridges" that bilinear brings to the table.. ----- But then I don't really know what video people are after, in luma or chroma. Last edited by NicolasRobidoux; 11th October 2012 at 13:56. |
11th October 2012, 14:14 | #14654 | Link |
Software Developer
Join Date: Oct 2001
Location: Israel
Posts: 1,005
|
One other thing I forgot,
It seems that the latest builds are slower at existing FSE compared to v0.82.5 This is most evident when opening ZP's fullscreen navigation interfaces, it takes probably 200-300ms longer for the navigation GUI to appear. |
11th October 2012, 14:19 | #14656 | Link | |||
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
Quote:
However, after testing the new sigmoidized jinc on a few sample clips I found that I had to dial the contrast down from 11.5 to 7.5 to avoid problems and even then I'm finding that there's an improvement in some situations and things get worse in other situations. So I'm not really sure right now if sigmoidization is a good idea for video playback. For photo editing the situation is a bit different: There having a slider to play with is a great thing. For some images it improves the quality, and if it doesn't, you simply dial it down. However, a movie has tons of different scenes, some of which may benefit from sigmoidization and other scenes may get worse instead. I'm not really sure if that's an option I should offer. I'd like to offer options which in 99% of all cases at least don't make things worse. So right now I'm not sure if I'm going to offer sigmoidization as an option in future madVR builds. But I haven't fully decoded yet. Any thoughts on this? FWIW, it seems to be a good contrast algorithm, so it will come in handy when at some point in the future I'll add contrast/brightness/color controls to madVR. So even if I don't use it for resampling, the work we've done on it wasn't in vain in any case. Quote:
Quote:
Currently it doesn't do anything. The "right" bitmap is simply ignored. It's a placeholder for the future. |
|||
11th October 2012, 14:29 | #14657 | Link |
Nicolas Robidoux
Join Date: Mar 2011
Location: Montreal Canada
Posts: 269
|
Mathias:
If I have time (probably not), I'll have to think about the consequences of 4:2:0 w.r.t. to filter choice. ----- What I'm focusing on now is Y'CbCr, which in my understanding is the origin of the BTB and WTW in R'G'B' and linear RGB. (Almost always Y'CbCr is the "anchor" space, yes?) While I put together the "straight line extensions" pseudocode, could you please try the following if you have a minute, and tell me how it looks: Use sigmoidization on Y'CbCr values unmodified. No conversion to R'G'B' or RGB. Straight up. Maybe I'm off my rocker, but in practice this may actually work well. I don't want to go into a discussion of why I think so: If it sucks, my dirty heuristics don't matter. Part of it is that I'd really like to apply sigmoidization to a luminance or luma channel, and at this point I'm willing to pay the price of not sigmoidizing in linear light, which may or may not be the best for human viewers anyway. P.S. I'll try to wrap this up quickly. I realize that most likely you need to move on. Last edited by NicolasRobidoux; 11th October 2012 at 14:33. |
11th October 2012, 14:40 | #14658 | Link | |
Nicolas Robidoux
Join Date: Mar 2011
Location: Montreal Canada
Posts: 269
|
Quote:
----- So, you discovered "the safe contrast value business". Honestly, even 7.5 is a bit on the "showy" side. It it was not that I want things to look noticealy better than enlarging straight through sRGB most of the time, I'd have set the recommended value lower than 7.5. At 7, or 6.5, or even 5, 4, or 3. But then you can ask: Worth it? ----- So: No offense taken, truly. However, please quickly document what you try or tried and what "bugged you". ----- Should I put together the "straight line hair extensions" pseudo code, or just let it go? |
|
11th October 2012, 14:42 | #14659 | Link |
Nicolas Robidoux
Join Date: Mar 2011
Location: Montreal Canada
Posts: 269
|
Karl-Heinz-Otto:
My thought: Put sigmoidization out there with a request for comments, after having settled yourself on a value that seems to almost never do harm. (6.5?) Bad comments -> Bye. Last edited by NicolasRobidoux; 11th October 2012 at 14:44. |
11th October 2012, 15:05 | #14660 | Link |
Nicolas Robidoux
Join Date: Mar 2011
Location: Montreal Canada
Posts: 269
|
KHO:
Another thing: If you are willing to use low constrast, there comes a point where the WTW values are fine without modifying the sigmoidal function. (The BTB, really, are not an issue.) That is, you can use the formulation with A=0 and B=1 (which simplifies things a bit) and the atanh will not over or underflow ever without any ifs or buts. If I use that the largest WTW is 1.2143440435408780674380747705496 (this is the value you posted), you can use the "[0,1]" sigmoidal (which is perfectly symmetrical w.r.t. black and white interchange) in linear RGB safely as long as the contrast value a is STRICTLY LESS than 2.4173259816672438931 (you may want to push this down a fudge). Of course, the question arises as to whether this noticeably improves things. Interestingly, when sigmoidal-contrast (in ImageMagick) is actually used to increase the contrast by modifying the color histogram (which sigmoidization does not do ... much), contrast = 3 is considered to be about as far as one should push things. But this is a different context. P.S. I suck. Algebra mistake. Fixing. Last edited by NicolasRobidoux; 11th October 2012 at 15:13. |
Tags |
direct compute, dithering, error diffusion, madvr, ngu, nnedi3, quality, renderer, scaling, uhd upscaling, upsampling |
Thread Tools | Search this Thread |
Display Modes | |
|
|