Log in

View Full Version : madVR - high quality video renderer (GPU assisted)


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 [319] 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329

AndreaMG
2nd December 2012, 10:17
Hi @madshi,
I think it has already been asked, but since I think it could be helpful for a lot of us I just wanted to ask if for you is high priority or not: it could be awesome to be able to select the appropriate upscaling algorithms depending on the resolution of the video without everytime having to do ctrl+j to see if frame dropping is occuring and then via shortcut keys adopting another less demanding algorithm. If too difficult to implement I guess it would be great to implement it just for 720 videos. Thanks :)

nx6
2nd December 2012, 11:01
it could be awesome to be able to select the appropriate upscaling algorithms depending on the resolution of the video without everytime having to do ctrl+j to see if frame dropping is occuring and then via shortcut keys adopting another less demanding algorithm.

Different algorithms have different visual effects. Judging one or the other to be "better" is a perceptual thing. While Jinc maybe the darling of the moment around here, I personally use Spline 3-taps with no anti-ringing filter. Other people undoubtedly have setups they prefer for the type of content they play most, so it wouldn't be possible to set up this system without adding the complexities of multiple user-defined profiles for different "levels"of up-scaling.

Also, I sometimes have frames drop right at the very start of playback or when jumping from Windowed to Fullscreen view, I wouldn't want MadVR automatically "downshifting" the method of up-scaling because of these dropped frames when it's only a temporary issue.

AndreaMG
2nd December 2012, 11:18
Also, I sometimes have frames drop right at the very start of playback or when jumping from Windowed to Fullscreen view, I wouldn't want MadVR automatically "downshifting" the method of up-scaling because of these dropped frames when it's only a temporary issue.
But I do not want MadVR to automatically switch scaling algorithms based on framdrops, where did I say that? The problem for me (and for many others I guess) mostly occours while playing 720p videos with the same demanding upscale algorithms that runs perfectly fine with SD resolutions;) I agree with you that every one has his preferences (mine is Jinc), I simply would like a feature (don't know though if easy to implement) like the following one: if video resolution is less than 720 pixels height than use these user define upscale settings, if not use these otheres. Hope I made myself clearer :)

nx6
2nd December 2012, 11:33
Okay, I read that as you wanted it to use a given algorithm but if frame dropping was occurring it should change itself to a lower one. :S

It's more then the resolution that determines of something is going to play back smoothly or not anyway. The 720p video could be in a less demanding h264 profile from one file to another, or just lower bitrate, not to mention frame rates can vary...

AndreaMG
2nd December 2012, 11:50
The 720p video could be in a less demanding h264 profile from one file to another, or just lower bitrateYou are right, for sure out there there are 720p videos that could be easily upscaled with the same SD heavy settings, that said I by far prefer to have the choice to play ALWAYS a 720p video with lower upscale settings and "taking the risk" that some of those 720 videos could have run the same even with highest settings than having almost every time a play a 720p video to manually change the upscale algorithm:) That said please notice that playing a 720p video with a less demanding upscale algorithm is not necessarly a bad thing, for what I understood the upscale quality of algorithms is much more noticible the lowest the native resolution is.

noee
2nd December 2012, 11:57
But I do not want MadVR to automatically switch scaling algorithms based on framdrops, where did I say that? The problem for me (and for many others I guess) mostly occours while playing 720p videos with the same demanding upscale algorithms that runs perfectly fine with SD resolutions;) I agree with you that every one has his preferences (mine is Jinc), I simply would like a feature (don't know though if easy to implement) like the following one: if video resolution is less than 720 pixels height than use these user define upscale settings, if not use these otheres. Hope I made myself clearer :)

You can already do this with a "hacky" launcher of your own if you can code a little.

Create a drop target that you might drag and drop a movie onto (MKV or some such).

Use something like mediainfo.dll to get the file properties, then instantiate a madVR settings object to set the scaling algo based on some set of rules against the file props (ie. rez, bitrate, etc.).

THen, launch the player with the movie file.

It's hacky because your player of choice can't already be running with a madVR instance.....and other reasons that maybe aren't so obvious.

IMO, this type of functionality might be better in the player rather than the renderer, but either way, it's handy to have. :)

AndreaMG
2nd December 2012, 11:59
It's more then the resolution that determines of something is going to play back smoothly or not anyway. I agree, but at least for me (GTX 460M overclocked) jinc has such an impact on the GPU that makes the difference between SD and 720p videos. Other things like for instance high bitrates do not have the same performance hit;)

AndreaMG
2nd December 2012, 12:01
You can already do this with a "hacky" launcher of your own if you can code a little.
:)
Thanks, not an option:D

madshi
2nd December 2012, 12:09
Right now, for debugging the problem I'm having. Also you could more easily switch back and forth to see the difference (some screens allow non-60Hz input while still displaying at 60).

But for something actually useful - changing the refresh rate takes time and sometimes messes with background programs. When watching random short videos, I'd rather just stick to 60Hz, even in fullscreen.
IMO it fits nicely with the other on/off keyboard shortcuts already present.
Maybe later, but not now.

Hi @madshi,
I think it has already been asked, but since I think it could be helpful for a lot of us I just wanted to ask if for you is high priority or not: it could be awesome to be able to select the appropriate upscaling algorithms depending on the resolution of the video without everytime having to do ctrl+j to see if frame dropping is occuring and then via shortcut keys adopting another less demanding algorithm. If too difficult to implement I guess it would be great to implement it just for 720 videos. Thanks :)
Yes, it has already been asked. And as I said before, there will be a solution for this some time in the future, but not soon.

AndreaMG
2nd December 2012, 12:13
Maybe later, but not now.
Yes, it has already been asked. And as I said before, there will be a solution for this some time in the future, but not soon.Thanks a lot:)

Razoola
2nd December 2012, 15:31
I personally don't like the idea of madVR changing scaling algos based on frame drops. I guess because there are many thing that can cause framedrops that are not related to GPU being overstressed. I would say a better solution would be to have the ability to choose different scaling algos based on video sizes, format and framerate.

secvensor
2nd December 2012, 15:31
image upscaling - Jink 4 or 8 select
go to
croma upscaling - Jink 3
go to
image downscaling - Spline 4
go to
image upscaling - Jink 4 or 8 be in false
http://i47.fastpic.ru/big/2012/1202/e6/0115d0d97537bce1e48d3337773b49e6.png

ajp_anton
2nd December 2012, 16:37
I personally don't like the idea of madVR changing scaling algos based on frame drops. I guess because there are many thing that can cause framedrops that are not related to GPU being overstressed. I would say a better solution would be to have the ability to choose different scaling algos based on video sizes, format and framerate.Just base it on rendering times.

mindbomb
2nd December 2012, 17:04
Very rarely people really benefit from [hardware acceleration].

There are ivy bridge ulv chips out there that are only dual core and are low frequency. I imagine high bitrate h264 would have noticeably higher cpu usage when decoded through software.
So, I think even with modern platforms, it is still possible to get a benefit.
And if you do a lot of multitasking or run something cpu intensive in the background, performance with software decoding can dip.
Lastly, you have this video decoding stuff taking up valuable die space on your gpu, might as well use it.

dansrfe
2nd December 2012, 17:09
Hardware acceleration should be used whenever possible. And to quote nevcairiel:

Hardware decoders usually use less power, because they are running in fixed-function hardware and not in general-purpose hardware like the CPU.
Additionally, some slower/older CPUs may have issues with complex formats (especially VC-1 interlaced requires quite some CPU because the decoder isn't well optimized for multi-threading)

DXVA2 Native uses the least power, and if you don't need software post-processing like ffdshow raw or VSFilter, you can use it and benefit the most from it. If you use such post-processing, i would recommend either CUVID or DXVA2-CB, as thats most likely your active GPU, and QuickSync only works if the Intel GPU is active.

nevcairiel
2nd December 2012, 18:36
For a fast PC, power usage is the only possible advantage you get, and some people just don't care and prefer the more reliable software decoder, which is just fine. /me shrugs

Vyral
2nd December 2012, 18:56
In my case, DXVA CB cause many dropped & delayed frames with all algorithms, is it normal ?
Right now, I set Lav with no Hardware Acceleration and I have 0 dropped or delayed frames.

nevcairiel
2nd December 2012, 20:31
DXVA CB doesn't work well on AMD before the 7000 series, AMD doesn't like when you copy stuff from the GPU to the system memory.

pirlouy
2nd December 2012, 21:30
Personally, I don't like DXVA because you're dependent of GPU drivers, and I don't trust AMD drivers (I don't trust Intel or Nvidia either).

DragonQ
2nd December 2012, 21:56
For a fast PC, power usage is the only possible advantage you get, and some people just don't care and prefer the more reliable software decoder, which is just fine. /me shrugs
Also, for people like me who have a powerful CPU and relatively weak GPU (i7-920 @ 3.8 GHz + GTS250), using software decoding might result in a quieter system because it stops the GPU fan kicking in.

DragonQ
2nd December 2012, 22:49
I'm sure I've mentioned this before but auto-detection of deinterlacing seems to be broken for some HDTV (UK) streams in MKVs (maybe other types of files too, dunno). The same streams in TS files deinterlace fine, and the MKVs deinterlace fine in EVR too. Using LAV Splitter/Video/Audio.

EDIT: On second thoughts, I think this is probably an issue in MKV Merge. My older MKVs work fine, newer ones don't. If it is, Mosu needs to know why the interlacing isn't detected properly so can you help with this please madshi? Samples:

TS - deinterlaced automatically (http://www.mediafire.com/?7tucr1niyy7bdug)
MKV - not deinterlaced automatically (http://www.mediafire.com/?38100ag5n0gkft0)

Mangix
2nd December 2012, 22:55
Also, for people like me who have a powerful CPU and relatively weak GPU (i7-920 @ 3.8 GHz + GTS250), using software decoding might result in a quieter system because it stops the GPU fan kicking in.

using DXVA2 versus CUVID should keep clocks lower though.

and a GTS 250 is not that weak. it was the highest end stuff a couple of years back(remember that it's a rebranded 9800 GTX)

DragonQ
2nd December 2012, 23:10
Yeah but mine sucks, the fan's default setting is 100% and it seems to happily switch between 17-30% fan whilst idling in Windows, let alone playing videos, resulting in constant whining.

Thank Jebus for MSI Afterburner! ;)

leeperry
3rd December 2012, 00:04
but there's also the story of some GPU's enabling their high performance speeds profile when using CUVID, isn't it? The GTX600 serie is not too power hungry but the 500 can quickly become a power hog...so in that case, only a wattmeter could really tell what your best option is I'm afraid.

You can already do this with a "hacky" launcher of your own if you can code a little.
[..] it's handy to have.
http://forum-images.hardware.fr/icones/smilies/whistle.gif I don't really care myself but I've never had the opportunity to use this emoticon: :script:

it could be awesome to be able to select the appropriate upscaling algorithms depending on the resolution of the video
and talking about dead horse feature requests, that'd be really great if we could disable the "windowed/exclusive" OSD messages at some point http://forum-images.hardware.fr/images/perso/slynoel.gif

noee
3rd December 2012, 00:21
I don't really care myself but I've never had the opportunity to use this emoticon:

It's currently part of a broader htpc controller app that configures (LAV, madVR, Windows Audio, multi-mon, etc.) externally, can't really split it out. Maybe at some point. Anyway, you'd hate it, it's C#.... :scared:

But for jRiver users (and probably MPC and others, haven't looked), it's not difficult to script-monkey AutoHotkey to do the same, albeit even more hacky as it changes the madVR scaler after the video starts playing...

wanezhiling
3rd December 2012, 03:05
For a fast PC, power usage is the only possible advantage you get, and some people just don't care and prefer the more reliable software decoder, which is just fine. /me shrugs

LAV CUVID always run @ max power...

strumf666
3rd December 2012, 03:19
I just installed PotPlayer build 34665 which has pixelshaders built-in but they don't appear to work with madvr. I use lavfilters for splitting and decoding, I am using hd4k for graphics atm (my amd 7750 is in rma...) in dxva2cb. Advice appreciated :)

nx6
3rd December 2012, 07:19
Hardware acceleration should be used whenever possible. And to quote nevcairiel:

If we're going to bring up nev (and madshi for that matter)'s personal views into this I seem to remember both of them advocating software decoding as the better solution because:


It wont break due to GPU driver changes/goofy "support" for certain formats in hardware.
More consistent, reliable decoding.
It balances the playback load more evenly over the entire machine and lets the GPU resources be focused on rendering without added decoding duties


'Course they may have changed their views with recent performance improvements in both their respective projects. So I'd like to hear if they think differently.

DXVA is more what I would turn to if my system was simply too underpowered to handle something on CPU for decoding. It's nice for low-end HTPCs and Netbook playback in other words.

toniash
3rd December 2012, 09:36
I just installed PotPlayer build 34665 which has pixelshaders built-in but they don't appear to work with madvr. I use lavfilters for splitting and decoding, I am using hd4k for graphics atm (my amd 7750 is in rma...) in dxva2cb. Advice appreciated :)
This build doesn't have support por PS in Madvr yet, you must wait for a new version
:mad:

DragonQ
3rd December 2012, 11:26
I'm sure I've mentioned this before but auto-detection of deinterlacing seems to be broken for some HDTV (UK) streams in MKVs (maybe other types of files too, dunno). The same streams in TS files deinterlace fine, and the MKVs deinterlace fine in EVR too. Using LAV Splitter/Video/Audio.

EDIT: On second thoughts, I think this is probably an issue in MKV Merge. My older MKVs work fine, newer ones don't. If it is, Mosu needs to know why the interlacing isn't detected properly so can you help with this please madshi? Samples:

TS - deinterlaced automatically (http://www.mediafire.com/?7tucr1niyy7bdug)
MKV - not deinterlaced automatically (http://www.mediafire.com/?38100ag5n0gkft0)

Did some more testing - if I take an old TS file (from 10/11/2012) and mux it as I normally would with MKVMerge, the resulting MKV file deinterlaces properly and plays smoothly in MadVR. If I do exactly the same thing with a file recorded yesterday (02/12/2012), the resulting MKV is treated as progressive and the playback speed changes all over the place in certain parts. So now I'm thinking maybe something has changed on the broadcaster's end, which is causing a break somewhere along the chain. Very interested to solve this mystery! :)

By the way, this is all on my desktop and is nothing to do with the "MadVR reports deinterlacing failed" message on Arrandale. This is just failed auto-detection of interlaced material.

A summary of the problems for me:

1) All TS files with AAC audio:
- EVR: TS plays fine, MKV plays fine.
- MadVR: TS plays fine, MKV is treated as progressive so not deinterlaced.

2) Older TS files (e.g. from 10/11/2012) with AC3 audio:
- EVR: TS plays fine, MKV plays fine.
- MadVR: TS plays fine, MKV plays fine.

3) Newer TS files (e.g. from 02/12/2012) with AC3 audio:
- EVR: TS plays fine, MKV plays slowly (46-48 fps) with playback speed jumping all over the place and a really dodgy graph.
- MadVR: TS plays fine, MKV is treated as progressive so not deinterlaced and also playback speed is all over the place.

strumf666
3rd December 2012, 15:24
This build doesn't have support por PS in Madvr yet, you must wait for a new version
:mad:
Thanks for answering.

petri234
3rd December 2012, 17:53
Don't know if this has been mentioned yet, but DXVA decoding with default settings crashes MPC-HC for me about 50% of the time when viewing 23.976p material. This only happens when skipping forward or backward, however if the player does not crash, I can skip forward safely as many times as I please. I am using LAV filters and a laptop with ATI 4670.

manma
3rd December 2012, 21:21
I'm not sure if I understand completely yet. Can increasing or decreasing queue sizes help reduce dropped frames? Ever since I set up yCMS color calibration with madvr, I've had a good amount frame dropping, and I need to do something to make up for the performance loss. Is there anything I can do other than get another GPU (not an option, as I'm on a laptop).

Nekomata
3rd December 2012, 23:05
can i use this with lav filter?

ryrynz
3rd December 2012, 23:27
Of course, you really shouldn't ask the same question in two different threads.

HauntingShock
4th December 2012, 02:07
Could anyone give me a step-by-step procedure to enable the "Save Image" option in MPC-HC? I'm using MadVR and it says that it's not supported... but how come I could see those people here have it working?

I got the official build 1.6.4.6052.

dansrfe
4th December 2012, 02:23
Could anyone give me a step-by-step procedure to enable the "Save Image" option in MPC-HC? I'm using MadVR and it says that it's not supported... but how come I could see those people here have it working?

I got the official build 1.6.4.6052.

Always install the latest build from here: http://xhmikosr.1f0.de/mpc-hc (http://xhmikosr.1f0.de/mpc-hc/?folder=bXBjLWhj)

wanezhiling
4th December 2012, 02:25
Official build doesnt support that, use nightly buildhttp://xhmikosr.1f0.de/mpc-hc/

6233638
4th December 2012, 03:50
Going back to the discussion about default scaling algorithms, since getting this GT610 (still waiting on my replacement GTX570) I am obviously right at the bottom end of what video cards will support madVR, which has had me re-evaluating things from a performance vs image quality perspective.

I've also had the opportunity to watch a few more films than I normally would recently, and having a larger sample group is always good to have to spot issues that show up in real-world content rather than test patterns or a small selection of specific samples. In particular, I noticed quite a few problems showing up from using Bilinear for Chroma upscaling, just from watching films.


I really don't think that having Bilinear as the default for Chroma is a good choice. As Chroma is only ever a 2x scaling operation, the performance impact of using a better scaling algorithm seems to be minimal in most cases.

While not related to selecting good defaults, in my testing, I also happened to come across a use-case for Jinc 8. There are some images I came across where using Jinc 8 AR for Chroma was the only option that looked really good, being the only choice that avoided aliasing and maintained the correct brightness/saturation for Chroma. This is not an endorsement of using it, as there are most likely problems using it with other images (as there tends to be with higher-tap filters) but I thought it was interesting.

The only other algorithm that looked decent with this image was SoftCubic 100, which was too dull/desaturated, but avoided most of the aliasing.

http://www.abload.de/img/chromaalqe9.jpg
Jinc 8 AR SoftCubic 100 Spline 3 AR Bicubic 75
At lower values, both Jinc and SoftCubic started to show the same aliasing problems as the others. While it may look good in this example, I don't recommend using SoftCubic Chroma scaling at all, as it tends to give poor results in most other images.


But going back to selecting good defaults for madVR, here's an example where using the default Lanczos 3 AR Luma with Bilinear Chroma looks particularly bad:
http://www.abload.de/img/bilinearm3ofx.jpg (http://www.abload.de/img/bilinearm3ofx.jpg)

This had a rendering time of almost 90ms.

In comparison, Bicubic 75 Chroma with SoftCubic 80 Luma (which requires no AR filter) has a rendering time of 32ms:
http://www.abload.de/img/bc75nmp6a.jpg (http://www.abload.de/img/bc75nmp6a.jpg)

Changing Chroma from Bicubic 75 to Bilinear with SoftCubic 80 Luma only drops rendering times by 2ms, to 30ms total.


And as a "reference" image, this is Lanczos 3 AR Luma with Jinc 8 AR Chroma. (395ms!)
http://www.abload.de/img/jincu0r2u.jpg (http://www.abload.de/img/jincu0r2u.jpg)


Now I don't suggest that SoftCubic 80 be the default for Luma at all, but I worry that Lanczos 3 AR will be too taxing for a lot of hardware.
I wish I had access to an Intel HD 4000 to test performance with, because that seems like a reasonable card to use as the "minimum spec" for the defaults.


Here are some numbers from that particular test though:

Bicubic Luma scaling: Bilinear Chroma: 30ms
Bicubic 75 Chroma: 32ms
Jinc 3 Chroma: 64ms
Lanczos 3 Luma: Bilinear Chroma: 45ms
Bicubic 75 Chroma: 47ms
Jinc 3 Chroma: 78ms
DXVA2 Luma: Bilinear Chroma: 50ms
Bicubic 75 Chroma: 59ms
Jinc 3 Chroma: 290ms
Bicubic AR Luma: Bilinear Chroma: 61ms
Bicubic 75 Chroma: 63ms
Jinc 3 Chroma: 94ms
Lanczos 3 AR Luma: Bilinear Chroma: 86ms
Bicubic 75 Chroma: 88ms
Jinc 3 Chroma: 119ms


While I didn't do testing on them individually, all the Bicubic variants (Mitchell-Netravali, Catmull-Rom, Bicubic, SoftCubic) should result in the same rendering times, and Lanczos/Spline tend to give roughly the same results as well.

From looking at those numbers, I think that it would probably be best to use Bicubic 75 Chroma, which can be a significant visual improvement over Bilinear in many cases (often a close visual match to Lanczos or Jinc) for a minimal performance hit compared to Bilinear.

While I know that some people prefer softer Chroma settings, Bicubic 75 still seems to be the best balance between ringing/aliasing and maintaining the correct brightness/saturation for Chroma with a minimal performance hit. I wouldn't use it for Luma, but I've found almost nothing where it has caused problems for Chroma.


It may not be my personal preference, but I would then probably suggest using either Lanczos 3 or Spline 3 (probably Spline due to the reduced ringing) without the AR filter as the default for Luma upscaling.

The rendering times I posted are for comparative purposes from upscaling Blu-ray beyond 1080p, which is not indicative of real-world use (typically DVD or 720p up to 1080p) so I haven't run into any performance issues with playback when testing those settings yet. (almost 50ms would imply dropping frames)

If you're really wanting to reduce rendering times for your default, I would probably go with some level of SoftCubic for the Luma upscaling, but I know that's too soft for a lot of people. It does manage to avoid aliasing and ringing very well at higher levels though. EDIT: Or Mitchell-Netravali might be a better choice. The other Bicubic variants probably have too much ringing or aliasing to be suitable for the default Luma algorithm.



And now that I've overclocked the card (1GHz GPU/720MHz RAM) I seem to be able to play Blu-ray downscaled in linear light using Catmull-Rom AR without any problems, though it is probably still too taxing on some systems.

I still need to do a good performance and image quality test for downscaling algorithms. It's really not a priority for me though, as I use a 1080p native display, and the only time I downsample is when I have something playing at the side of a web browser, which is never a film, and therefore not particularly important to me as far as image quality is concerned.

HauntingShock
4th December 2012, 03:56
Always install the latest build from here: http://xhmikosr.1f0.de/mpc-hc (http://xhmikosr.1f0.de/mpc-hc/?folder=bXBjLWhj)
Official build doesnt support that, use nightly buildhttp://xhmikosr.1f0.de/mpc-hc/

Thanks :D

I've encountered that site and those builds before but I thought it was untrusted... looks like I'm wrong.

iamhacked
4th December 2012, 04:46
From looking at those numbers, I think that it would probably be best to use Bicubic 75 Chroma, which can be a significant visual improvement over Bilinear in many cases (often a close visual match to Lanczos or Jinc) for a minimal performance hit compared to Bilinear.

While I know that some people prefer softer Chroma settings, Bicubic 75 still seems to be the best balance between ringing/aliasing and maintaining the correct brightness/saturation for Chroma with a minimal performance hit. I wouldn't use it for Luma, but I've found almost nothing where it has caused problems for Chroma.


It may not be my personal preference, but I would then probably suggest using either Lanczos 3 or Spline 3 (probably Spline due to the reduced ringing) without the AR filter as the default for Luma upscaling.

The rendering times I posted are for comparative purposes from upscaling Blu-ray beyond 1080p, which is not indicative of real-world use (typically DVD or 720p up to 1080p) so I haven't run into any performance issues with playback when testing those settings yet. (almost 50ms would imply dropping frames)

If you're really wanting to reduce rendering times for your default, I would probably go with some level of SoftCubic for the Luma upscaling, but I know that's too soft for a lot of people. It does manage to avoid aliasing and ringing very well at higher levels though. The other Bicubic variants probably have too much ringing or aliasing to be suitable for the default Luma algorithm.



And now that I've overclocked the card (1GHz GPU/720MHz RAM) I seem to be able to play Blu-ray downscaled in linear light using Catmull-Rom AR without any problems, though it is probably still too taxing on some systems.

I still need to do a good performance and image quality test for downscaling algorithms. It's really not a priority for me though, as I use a 1080p native display, and the only time I downsample is when I have something playing at the side of a web browser, which is never a film, and therefore not particularly important to me as far as image quality is concerned.
Nice point. I have a Dimension E521 (AMD Athlon™ 64 X2, 1GB RAM, Nvidia GeForce 6150LE) and using Bicubic 50 for chroma upscaling does look better than Bilinear. However, any number above 50 will cause 720p video to stutter (using LAV filters). Using Bicubic for luma/image upscaling will cause video to stutter as well. Bilinear seems to be the only option for luma upscaling to me.

ajp_anton
4th December 2012, 04:47
I wish I had access to an Intel HD 4000 to test performance with, because that seems like a reasonable card to use as the "minimum spec" for the defaults.

HD 3000 at 1700MHz, is that close enough to HD 4000?
1920x1080 -> 2560x1440
Default (lanc3 AR / bilinear) renders at around 41ms.

6233638
4th December 2012, 05:25
HD 3000 at 1700MHz, is that close enough to HD 4000?
1920x1080 -> 2560x1440
Default (lanc3 AR / bilinear) renders at around 41ms.Thanks. That seems like Lanczos 3 AR Luma, Bilinear Chroma is pushing it, and you're likely to experience frame drops. (or just avoid them)

I'd really need to have one myself to use the same material and settings to do a proper comparison/test though.

I would be interested in seeing what your numbers are for Bicubic 75 Chroma & Lanczos 3 without AR for Luma with the same material though. I really think that using Bilinear for Chroma is too much of a compromise, even if it would let you use Lanczos 3 AR.

In the test I posted above, those settings almost halved rendering times - as good as it can look, I think the anti-ringing filter is probably too demanding to have enabled as a default.

Nice point. I have a Dimension E521 (AMD Athlon™ 64 X2, 1GB RAM, Nvidia GeForce 6150LE) and using Bicubic 50 for chroma upscaling does look better than Bilinear. However, any number above 50 will cause 720p video to stutter (using LAV filters). Using Bicubic for luma/image upscaling will cause video to stutter as well. Bilinear seems to be the only option for luma upscaling to me.

That's interesting, I was under the impression that all the Bicubic variations (Mitchell-Netravali, Catmull-Rom, Bicubic, and SoftCubic) were all the same algorithm with adjusted values, that wouldn't change the load they put on the GPU. I certainly don't see a meaningful change between them. (less than 0.5ms)



EDIT: And from doing some extra testing, at least with some scale factors (I don't know if it will change dynamically) Nvidia basically using Bilinear scaling with the DXVA2 option. (results are slightly different) So it's even worse than I thought, considering that with madVR's Bilinear Luma scaling I was getting render times of about 3ms compared to the 50ms+ of DXVA2.

EDIT2: Actually, it's worse than that - if you use DXVA2 for Luma upscaling, Chroma upscaling is basically ignored. Unless DXVA2 is handled a lot better on AMD/Intel, I wonder if it should actually be removed.

It's maybe not identical to the bilinear option in madVR, but the results are still equally bad. DXVA2 Luma, Bilinear Chroma (http://www.abload.de/img/dxva2-bilinearbqjp5.jpg)
DXVA2 Luma, Lanczos 8 AR Chroma (http://www.abload.de/img/dxva2-lanczos-8-aradjsi.jpg)
Bilinear Luma, Bilinear Chroma (http://www.abload.de/img/bilinear-bilinear0cjzp.jpg)
Bilinear Luma, Lanczos 8 AR Chroma (http://www.abload.de/img/bilinear-lanczos-8-ardqko8.jpg)
The DXVA2 results are a little smoother when compared to Bilinear in madVR (is chroma being filtered?) but you can see that there's almost no difference between Bilinear Chroma and Lanczos 8 AR when you use DXVA2 scaling.

Render times are considerably higher with DXVA2 scaling as well.

ajp_anton
4th December 2012, 16:14
Thanks. That seems like Lanczos 3 AR Luma, Bilinear Chroma is pushing it, and you're likely to experience frame drops. (or just avoid them)

I'd really need to have one myself to use the same material and settings to do a proper comparison/test though.

I would be interested in seeing what your numbers are for Bicubic 75 Chroma & Lanczos 3 without AR for Luma with the same material though. I really think that using Bilinear for Chroma is too much of a compromise, even if it would let you use Lanczos 3 AR.Lanc3 + BC75: 32ms
Remember I upscale 1080p to 1440p, not what most people do, so I'd say speedwise 41ms it's just fine. And today it's 38ms. It seems to depend a little on what's in the actual image (which I find a little strange, unless it's because of the AR).

720p -> 1080p:
Lanc3 AR + bilinear: 28ms
Lanc3 + bicubic: 27ms

mindbomb
4th December 2012, 17:58
I have an interesting problem. With hardware deinterlacing on my radeon, it doubles the frame rate, and thus, halves the movie frame interval, requiring even faster rendering than I can manage. Can I disable this in the registry somehow to keep the frame rate the same?

DragonQ
4th December 2012, 18:04
If the material is interlaced, that's what's supposed to happen (50/60p after deinterlacing). If it's progressive material in an "interlaced wrapper" (e.g. films or dramas in a TV stream) then it should be detected as such and deinterlaced using "weave", reproducing the original progressive image (25/30p after deinterlacing).

MSL_DK
4th December 2012, 18:07
This question has probably been asked before ... What scaling algorithms is recommended for blu-ray, no bad rips, only original blu-ray.

MSL_DK
4th December 2012, 19:28
I do not know if it's ycms who fails or it is the way madVR handle ycms ... but something's wrong

madvr pixel shader

https://dl.dropbox.com/u/111324524/Images%20for%20Sharing/madVR/PS.JPG

madvr ycms

https://dl.dropbox.com/u/111324524/Images%20for%20Sharing/madVR/MVR_ycms.JPG

DarkSpace
4th December 2012, 19:50
Many thanks for this piece of work, it's really great! However, I'd like to report a possible bug:
When switching the screen refresh rate (manually, not using the automatic Refresh Rate Changer) to 120Hz on my Laptop's internal 1080p screen, madVR stops outputting a picture. The Media Player window still changes its size to the video resolution in Windowed Mode, but both Fullscreen Exclusive and Windowed Mode only show a black picture. Interestingly, the Debug OSD (already enabled from before swit) doesn't display in Windowed mode, but in FSE, it briefly shows an additional lineDesktop Composition Rate: 120.000Hz [there are a few trailing zeros, but I couldn't count them]before that line vanishes, but the interesting part is that it showsdisplay 0.000000Hz It doesn't update during playback at all, and when the playback is paused, it only updates the Render Queue. I have included a Debug Log of a few seconds of video playing for both Windowed Mode (http://www.mediafire.com/?b5uad99uxu19q69) and FSE (http://www.mediafire.com/?9oav500tz05zv6k). Also interesting is that while the screen stays blank except for the Debug OSD, the FSE seekbar does show up, albeit with a delay of a few seconds. Also, after a while, it seems MPC-HC just hangs, because audio also stops playing. In the case of the Debug logs, the audio stopped at around 25 seconds.
I should mention that EVR-CP works perfectly fine.
My Setup:

AMD Radeon HD 670M with up-to-date drivers
Windows 7 Ultimate
MPC-HC 1.6.5.6291
LAV Filters 0.54.1
ReClock 1.8.7.9
madVR 0.85.1

I did use the search and didn't find anything alike. Unfortunately, I don't have any other screens capable of 120Hz at all, so I can't test if it's maybe my drivers' fault.

sneaker_ger
4th December 2012, 20:54
Problem 2:
It seems to only be related to DXVA2 decoding, not the scaling. I created a log. (Opened video, seeked once, waited a few seconds, seeked again, waited a few seconds, seeked again, waited a few seconds, then closed the player)
Out-of-order/jerkyness on all three seeks. It looks a bit like this happens until the decoder has caught up after the seek. Not really sure.

log (https://rapidshare.com/files/318478037/madVR_0.85.1_dxva2_out_of_order.7z) (mirror (http://www.mediafire.com/?y3zry4qs4a84znk))
sample (https://rapidshare.com/files/1350258742/worldwarz-p1tt-tlr1_h1080p.mkv) (mirror (http://www.mediafire.com/?etaya7ybam4r0dd))

MPC-HC
Win 7 x64
HD 5850 (Cat 12.11 Beta 8)
I've tested with NVidia 9400, LAV 54.1 and my latest madVR sources on win7 x64 and I can't reproduce any issues here. Seeking works just fine without any issues. Can you please double check with LAV 54.1, and with the next madVR build?

Catalyst 12.11 beta 11 seems to have fixed the issue.