MadVR Chroma Upscaling

From wiki.mikejung.biz
Jump to: navigation, search

MadVR Main Page 720p Chroma Upscaling Screens PotPlayer DSR 720p Image Doubling madVR Dithering Chroma Upscaling Benchmarks Nvidia Noise Reduction
PotPlayer Main Page 1080p Chroma Upscaling Screens PotPlayer Decoder Comparison 720p Image Upscaling Processing Options NNEDI3 Main Page Nvidia Edge Enhancement

MadVR NNEDI3 Chroma Upscaling Performance Results

For these madVR Chroma Upscaling performance tests I used the madVR default settings, and only modified madVR's Chroma Upscaling setting. I tested out various algorithms to see how much of a performance impact they had. Image quality is subjective so there is no way to test that out, however it's still helpful to know how expensive the algorithms are in terms of GPU requirements. As you can see from the chart / results below, NNEDI3 is the most demanding especially from 32 neuron and up. The madVR default option provides 1.45ms render times, while the 256 neuron NNEDI3 chroma upscaling took about 35.87ms to render each frame. Keep in mind that most of the time, once video playback exceeds 40ms frame render times, the video starts to get choppy because the GPU can't render frames fast enough, it has no choice but to "drop" frames to keep up.

I tested this out by using a 1080p video played using mpc-hc. My specs are: i7-4790k, GTX 970, lots of SSDs, 16GB RAM and running Windows 8.1.

With my GTX 970 I can use up to 128 NNEDI3 neurons for Chroma Upscaling, however usually I stick with 32 or 64 NNEDI3 neurons. I get around 30ms render times which results in 0 dropped frames and it's winter and NNEDI3 128 puts my GTX 970 at around 40% utilization which warms my room. If you don't want a warm room then idk what to tell you other than to not use NNEDI3. Again, only raise this past Lanczos or Jinc if you already maxed out the other options and have a few ms to spare. Usually you start to see dropped frames around 40ms per render. So if you are around 30ms already you might has well jack this setting up assuming you already doubled and quadrupled the Luma and Chroma resolution with NNEDI3 via the newish image doubling setting.

madVR Chroma Upscaling Overall Performance for Nvidia 900 series GPUs

If you have a GTX 970, or GTX 980 these results should be relevant. If you own a GTX 980 you will see slightly better results, but the trend will still be the same. You can probably get away with using NNEDI3 32 or 64 neurons, if you set this any higher you will probably see dropped frames for sub 720p videos. 1080p should be just fine, but the lower the resolution the more work madVR must do to upscale the video. Chroma Upscaling alone can cause render times of over 30ms with everything else left at the default, and once you start getting over 40ms you start to drop frames.

MadVR Chroma Upscaling Algorithm Overall Performance gtx970.png

Chroma Upscaling Average Render Time

Again, the Chroma Upscaling average render time results should be valid for most GTX 970 or GTX 980 GPUs. Higher render times means more GPU usage, it also means it takes longer to render each frame, which can be ok if your render times are low, but keep in mind that once you reach 40ms you might see a lot of dropped frames, if you notice this then make sure you leave this setting at the default madvr setting which is Bicubic 75.

Using NNEDI3 for Chroma Upscaling costs 5 times more than Jinc 3 taps in terms of GPU usage. You can see that the performance impact up until Jinc has been pretty small for chroma upscaling. I used a Nvidia GTX 970 for these tests, so if you are running a much slower card you should probably stick with Jinc or even BiCubic for this setting. If you are lucky enough to have a Nvidia GTX 980 or Titan X then you should have no issues using NNEDI3 64 neurons or up.

Bicubic 75 which is probably the safest setting to use if you want a balance of quality and performance. I used the latest version of MPC-HC, tested a 1080p video and recorded GPU and CPU utilization as well as frame render times with GPU Z and madVR's built in stats display (crtl + j).

I would suggest setting Chroma Upscaling last and raising it only if you are not getting dropped frames. The Internet tells me that Chroma Upscaling doesn't have a massive impact on quality and as you can see here, this setting can cause very high render time all on it's own.

If the images are too small, you can click on them to view their full resolution.

MadVR Chroma Upscaling Algorithm Performance gtx970.png

Chroma Upscaling GPU Usage

GPU usage is fairly low until you get into NNEDI3 32+ for Chroma Upscaling. In general, as render times per frame increased, so did GPU usage. Even if you have a GTX 980 you will run into a wall after NNEDI3 128 neurons. Utilizing your GPU as much as possible is not a bad thing, but just make sure you are not setting Chroma Upscaling too high right off the bat. Make sure you set image doubling and image upscaling before you tweak this setting. Most people find that image doubling provides better quality at a lower cost, which is true, especially if you use DXVA2 for image upscaling and image downscaling.

MadVR Chroma Upscaling Algorithm Performance gtx970 GPU usage.png

Chroma Upscaling CPU Usage

CPU usage is probably the most interesting area for this test run. Obviously GPU usage and render times are pretty closely linked, much like GPU usage and FPS for PCmasterrace games. CPU usage doesn't get too "high" until you get into NNEID3 64 neurons +. I'm running an i7-4790k, so if you have an older, slower CPU you may be bottle necked by the CPU and not the GPU. If you are using a low end CPU like a Celeron, Pentium, or AMD anything you might notice very high CPU usage. Make sure you check this to make sure your CPU isn't the bottleneck, if it is then try and stay away from NNEDI3 64 neurons and up. If you are running a newer Intel i5 or i7 and a Nvidia GTX 700 series card or up then NNEDI3 64 is a decent place to start.

If you configure some of the other madvr settings like Image Upscaling to use DXVA2 instead of Jinc or Spline, you will have a lot of GPU power to spare, so you might be able to set Chroma Upscaling to NNEDI3 128 neurons or more.

MadVR Chroma Upscaling Algorithm Performance gtx970 cpu.png

madVR Chroma Upscaling Image Quality Comparison 720p

You can find screenshots of 720p video playback using various chroma upscaling madvr settings here

Other MadVR Pages

MadVR Main Page 720p Chroma Upscaling Screens PotPlayer DSR 720p Image Doubling madVR Dithering Chroma Upscaling Benchmarks Nvidia Noise Reduction
PotPlayer Main Page 1080p Chroma Upscaling Screens PotPlayer Decoder Comparison 720p Image Upscaling Processing Options NNEDI3 Main Page Nvidia Edge Enhancement

.