View Full Version : AviSynthShader + SuperRes
Pages :
1
2
3
4
5
6
7
8
[
9]
10
11
12
13
MysteryX
15th July 2016, 05:06
Version 1.5.4 is ready! (https://github.com/mysteryx93/AviSynthShader/releases/edit/v1.5.4)
What's new:
- MatrixIn/MatrixOut: Changed 601 to Rec601, 709 to Rec709.
- Fixed: It wasn't working on Windows 7
- All HLSL files now pre-compiled and included in DLL
- Much faster initialization
- ExecuteShader: Added Resource parameter. When true, it will only open internal resources without searching for a physical file
Note: You can use this with custom HLSL and compile them on-demand, but it may not work on Windows 7 due to missing D3dcompiler_47.dll. Pre-compiling all HLSL scripts into CSO files solves that problem.
loneboyz
15th July 2016, 07:17
Script 1.5.4 has been worked on my system
Many thank MysteryX!
MysteryX
15th July 2016, 07:46
I'm sure you'll enjoy the performance boost :)
luigizaninoni
15th July 2016, 12:11
1.5.4 solves all my issues. New shader.avsi works fine. No need to put all hlsl and cso in same directory. By the way, nnedi3_rpow2 works fine (64-bit, of course)
citroenfan
15th July 2016, 16:43
MisteryX, thank you for all your work.
I downloaded 1.5.4. version, but still unable to make it to work properly.
When tried to run it with avsmeter I got message "execute shader: process frame failed", shader.avsi, line 144.
Running W7 64bit
Nnedi3.dll v 0.9.4.22 for x86 (last version, ) is in C:\Program Files (x86)\AviSynth\plugins, there are also shader.avsi and shader.dll
avisynth 2.60.
please could you help me to resolve the problem?
thank you in advance.
my script
LoadPlugin("C:\PROGRA~2\GORDIA~1\DGMPGDec\DGDecode.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\shader.dll")
Import("C:\Program Files (x86)\AviSynth\plugins\Shader.avsi")
Import("C:\Users\XXX\Downloads\QTGMC-3.32.avsi")
file=("G:\TV\xxx.d2v")
mpeg2source(file)
ConvertToYV12(interlaced=true)
AssumeTFF()
QTGMC( Preset="Slower" )
SelectEven()
# CROPPING
crop(18,74,696,428)
Double="""nnedi3_rpow2(2, nns=4, cshift="Spline36Resize", fwidth=1280, fheight=720, Threads=2)"""
SuperRes(3, 1.00, 0, Double)
MysteryX
15th July 2016, 16:51
citroenfan, do the other shader methods, such as SuperResXBR, work?
jammupatu
15th July 2016, 17:10
Hi,
I can't get any 1.5 version to work. This latest one (1.5.4) doesn't crash with VDub / Avspmod / Avsmeter like the earlier 1.5 builds do, but it errors out with:
"ExecuteShader: ProcessFrame failed."
<path to plugindir>\Shader.avsi, line 144.
This is the example script which I ran today (I've tried multiple others, too):
ColorBars(pixel_type="YV12")
KNLMeansCL()
SuperResXBR(3, Str=1, Soft=.15, XbrStr=2.5, XbrSharp=1, fWidth=720, fHeight=576)
EDIT: SuperRes doesn't work either; same failure.
I'm running Nvidia 980 SLI and Intel 4600 graphics on Windows 10 (14388 Fast Ring). I can replicate this issue inside a virtual Windows 7. This situation affects both scenarios, 64 and 32 bit versions with either official Avisynth 2.6 or Avisynth+. Here is my current Avs info:
32 bit:
C:\Program Files\Avsmeter216>AVSMeter.exe -avsinfo
AVSMeter 2.2.9 (x86) - Copyright (c) 2012-2016 Groucho2004
Avisynth version string: AviSynth+ 0.1 (r1576, x86)
File version: 2.6.0.5
Avisynth Interface Version: 5
Muli-threading support: No
Linker/compiler version: 11.0
Avisynth DLL location: C:\Windows\SysWOW64\AviSynth.dll
Avisynth DLL time stamp: 2014-01-02, 19:14:26
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins
[Avisynth CPP 2.6 plugins]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins\eedi3.dll (0.9.2.1)
C:\Program Files (x86)\AviSynth+\plugins\ffms2.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins\KNLMeansCL.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins\masktools2.dll (2.1.0.0)
C:\Program Files (x86)\AviSynth+\plugins\mvtools2.dll (2.7.0.22)
C:\Program Files (x86)\AviSynth+\plugins\nnedi3.dll (0.9.4.22)
C:\Program Files (x86)\AviSynth+\plugins\RgTools.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins\Shader.dll (n/a)
[Avisynth CPP 2.5 plugins]
C:\Program Files (x86)\AviSynth+\plugins\LSMASHSource.dll (n/a)
64 bit:
C:\Program Files\Avsmeter216>AVSMeter64.exe -avsinfo
AVSMeter 2.2.9 (x64) - Copyright (c) 2012-2016 Groucho2004
Avisynth version string: AviSynth+ 0.1 (r2022, MT, x86_64)
File version: 0.1.0.0
Avisynth Interface Version: 6
Muli-threading support: Yes
Linker/compiler version: 14.0
Avisynth DLL location: C:\Windows\System32\AviSynth.dll
Avisynth DLL time stamp: 2016-07-08, 12:36:56
PluginDir+ (HKLM, x64): C:\Program Files (x86)\AviSynth+\plugins64+
PluginDir2_5 (HKLM, x64): C:\Program Files (x86)\AviSynth+\plugins64
[Avisynth CPP 2.6 plugins]
C:\Program Files (x86)\AviSynth+\plugins64+\DirectShowSource.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins64+\ImageSeq.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins64+\Shibatch.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins64+\TimeStretch.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins64+\VDubFilter.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins64\eedi3.dll (0.9.2.1)
C:\Program Files (x86)\AviSynth+\plugins64\ffms2.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins64\KNLMeansCL.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins64\masktools2.dll (2.1.0.0)
C:\Program Files (x86)\AviSynth+\plugins64\mvtools2.dll (2.7.0.22)
C:\Program Files (x86)\AviSynth+\plugins64\nnedi3.dll (0.9.4.22)
C:\Program Files (x86)\AviSynth+\plugins64\RgTools.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins64\Shader-x64.dll (n/a)
[Avisynth CPP 2.5 plugins]
C:\Program Files (x86)\AviSynth+\plugins64\LSMASHSource.dll (n/a)
EDIT: tested again with both, 32b and 64b, running r2043 of Avisynth+ and encountering same error.
KNLMeansCL has a parameter called device_id which you can use to force a specific graphics card to be used. Could this be helpful? I'm free for testing a debug logging enabled dll if needed etc.
BR,
-j-
PS. Here is a link to the 1.5.4 version without the need to login to Github: https://github.com/mysteryx93/AviSynthShader/releases/download/v1.5.4/AviSynthShader-1.5.4.zip
PS #2. Below is a dump of Windows Event viewer which shows 1.5.3 crash on that virtual W7:
Faulting application name: Veedub64.exe, version: 1.10.4.0, time stamp: 0x526d9af3
Faulting module name: Shader-x64.dll, version: 0.0.0.0, time stamp: 0x57737327
Exception code: 0x40000015
citroenfan
15th July 2016, 18:23
When replaced lines
Double="""nnedi3_rpow2(2, nns=4, cshift="Spline36Resize", fwidth=1280, fheight=720, Threads=2)"""
SuperRes(3, 1.00, 0, Double)
with line
SuperResXBR(3, Str=1, Soft=.15, XbrStr=2.5, XbrSharp=1, fWidth=720, fHeight=576)
get the message
ExecuteShader: ProcessFrame Failed... Shader.avsi line 220
Avisynth version string: AviSynth 2.60, build:Feb 20 2015 [03:16:45]
File version: 2.6.0.5
Avisynth Interface Version: 6
Muli-threading support: Yes
Linker/compiler version: 12.0
Avisynth DLL location: C:\Windows\SysWOW64\AviSynth.dll
Avisynth DLL time stamp: 2015-02-20, 02:18:42
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth\plugins
[Avisynth CPP 2.6 plugins]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll (n/a)
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\AutoAdjust.dll (2.5.0.0)
C:\Program Files (x86)\AviSynth\plugins\DirectShowSource.dll (2.6.0.2)
C:\Program Files (x86)\AviSynth\plugins\fturn-26.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\KNLMeansCL.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\MedianBlur2.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\msharpen.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\nnedi3.dll (0.9.4.22)
C:\Program Files (x86)\AviSynth\plugins\RgTools.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\SangNom2.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\TCannyMod.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\TEMmod.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\tmaskcleaner.dll (n/a)
[Avisynth CPP 2.5 plugins]
C:\Program Files (x86)\AviSynth\plugins\autolevels.dll (0.6.0.0)
C:\Program Files (x86)\AviSynth\plugins\avstp.dll (1.0.1.0)
C:\Program Files (x86)\AviSynth\plugins\Decomb.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\DePan.dll (1.10.1.0)
C:\Program Files (x86)\AviSynth\plugins\DePanEstimate.dll (1.9.2.0)
C:\Program Files (x86)\AviSynth\plugins\dfttest.dll (1.9.4.0)
C:\Program Files (x86)\AviSynth\plugins\DGDecode.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\dither.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\EEDI2.dll (0.9.2.0)
C:\Program Files (x86)\AviSynth\plugins\EEDI2_imp.dll (0.9.2.0)
C:\Program Files (x86)\AviSynth\plugins\eedi3.dll (0.9.1.0)
C:\Program Files (x86)\AviSynth\plugins\exinpaint.dll (0.2.0.0)
C:\Program Files (x86)\AviSynth\plugins\FFT3DFilter.dll (2.1.1.0)
C:\Program Files (x86)\AviSynth\plugins\flash3kyuu_deband.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\hqdn3d.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\mt_masktools-26.dll (2.0.48.0)
C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll (2.6.0.5)
C:\Program Files (x86)\AviSynth\plugins\nnedi.dll (1.3.0.0)
C:\Program Files (x86)\AviSynth\plugins\nnedi2.dll (1.6.0.0)
C:\Program Files (x86)\AviSynth\plugins\RemoveDirt.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\RemoveDirtS.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\RemoveDirtSSE2.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\RemoveGrain.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\RemoveGrainSSE2.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\RepairSSE2.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\SSE2Tools.dll (n/a)
C:\Program Files (x86)\AviSynth\plugins\tcanny.dll (1.0.0.0)
C:\Program Files (x86)\AviSynth\plugins\TCPDeliver.dll (1.0.0.6)
C:\Program Files (x86)\AviSynth\plugins\TDeint.dll (1.1.0.0)
C:\Program Files (x86)\AviSynth\plugins\TEdgeMask.dll (0.9.0.0)
C:\Program Files (x86)\AviSynth\plugins\TTempSmooth.dll (0.9.4.0)
C:\Program Files (x86)\AviSynth\plugins\VerticalCleanerSSE2.dll (n/a)
MysteryX
15th July 2016, 18:24
I would think this could be due to a multi-threading issue with MT_NICE_FILTER, but when you run it with AviSynth 2.6, it runs as MT_MULTI_INSTANCE, and it still crashes.
Your script doesn't have any MT either. Will have to investigate... Why would it work for luigizaninoni and not for citroenfan and jammupatu?
Out of curiosity, try setting argument PlanarOut=false
As for specifying the device, this is not possible with DirectX 9. If you have dual-graphics, you have to configure the application to use the desired card.
jammupatu
15th July 2016, 18:46
Out of curiosity, try setting argument PlanarOut=false
As for specifying the device, this is not possible with DirectX 9. If you have dual-graphics, you have to configure the application to use the desired card.
PlanarOut=false fixes both SuperRes and SuperResXBS for me on my physical Windows 10 machine. Didn't try on virtual W7. Avisynth+ gives only a blue frame on 64bit builds when using SuperResXBR. Don't know if this is intended?
AVS versions:
Avisynth 2.6.0 Alpha 5 [130918] 32 bit
Avisynth+ r2022 and r2043 64 bit
Script:
ColorBars(pixel_type="YV12")
KNLMeansCL(device_id=1)
## comment out the function not being tested
SuperResXBR(2, Str=1, Soft=.15, XbrStr=2.5, XbrSharp=1, fWidth=720, fHeight=576, PlanarOut=false)
#SuperRes(Upscale="""nnedi3_rpow2(2, cshift="Spline16Resize")""", PlanarOut=false)
Info()
Thanks for the info about the DX9 limitation.
BR,
-j-
citroenfan
15th July 2016, 18:53
with the argument "PlanarOut=false" script 1.5.4. now working.
thank you MysteryX for your time and effort to make all this and helping me!
Best regards!
jammupatu
15th July 2016, 19:13
Regarding the blue frame, I decided to test SuperResXBR PlanarOut=False on Avisynth+ r2043 with proper video and the video comes out seriously broken. See attached pic.
BR,
-j-
MysteryX
16th July 2016, 03:37
PlanarOut requires different texture formats and the compatibility of texture formats depend on the GPU driver.
For both of you, what graphic card are you using? If you have a dual-graphics, does if fail with both cards?
I haven't done much testing at all on the x64 version, will have to test.
citroenfan
16th July 2016, 05:26
I'm using Nvidia GeForce GTX 960 on Windows 7 64-bit
(model ASUS STRIX GTX 960 DirectCU II OC)
luigizaninoni
16th July 2016, 08:44
On my PC with Intel HD4000 everything works fine without further tweaks
On my other PC with Nvidia GTX960 I need to add PlanarOut=false otherwise I get the same error as Jammapatu:
"ExecuteShader: ProcessFrame failed."
<path to plugindir>\Shader.avsi, line 144.
jammupatu
16th July 2016, 16:22
Hi, GPU-Z reports the load for the filters is running on Nvidia 980. I tried to force IGPU Intel to be the first one in BIOS (it's normally set to PCI-E 1 which hosts the 1st Nvidia 980) and set default monitor to the Intel "powered" one but I can't shift the load from Nvidia to Intel. I'm running the AVS script in VDub and in VDub's settings I can't find a clear option how to force the rendering to a specific card. I didn't find any commands/functions for setting graphics card globally in the AVS script either and since DX 9.0c doesn't allow your function to "bind" a specific graphics card, the question goes: any ideas how to shift the load to a specific card? Perhaps a different processing program than VDub? I'm also thinking if the binding can even be done in the application layer level (=VDub in this case). I'm thinking it should be on the Avisynth level instead. (E.g. the "first level" communicating with the DX API.)
BR,
-j-
MysteryX
16th July 2016, 16:27
With AMD, there is a "Configure Switchable Graphics" to set applications on "High Performance" or "Power Saving"
jammupatu
16th July 2016, 16:46
Did the load shifting by brute force; disabled both 980s in Windows' Device Manager and fired up a VDub, loaded a script with SuperResXBR active and now the Intel IGPU had load. The filter also works fine - no frame corruption.
BR,
-j-
MysteryX
17th July 2016, 11:44
Could you try with PlanarIn=true and tell me whether that works? Compatibility may different for input or output textures.
jammupatu
18th July 2016, 08:38
Hi.
Plain "PlanarIn=true" gives "ExecuteShader: ProcessFrame Failed" -error.
"PlanarOut=False, PlanarIn=true" works - no frame corruption.
Tests done only with Avisynth+ 64b.
BR,
-j-
MysteryX
18th August 2016, 11:06
Version 1.5.5 is ready! (https://github.com/mysteryx93/AviSynthShader/releases/tag/v1.5.5)
What's new:
- Updated Avisynth headers
- Moved lock so that it doesn't cause all other filters to run as MT_SERIALIZED
- MT mode now set using SetCacheHints instead of using env2
- Planar format for precision 1 changed from D3DFMT_L8 to D3DFMT_A8 to see if it works better on NVidia cards
Please test PlanarOut with NVidia cards and tell me whether it works better. Test with 8-bit output; 16-bit output still won't work for sure.
Todo:
- Fix corruption with x64 build
- Fix PlanarOut in a nicer way, for both 8-bit and 16-bit output
- Add conversion support for Avisynth+'s new native 16-bit formats
Wilbert
21st August 2016, 17:56
I moved all the non-relevant posts which were not about the development of MysteryX's plugin to the usage forum.
MysteryX
21st August 2016, 18:12
Wilbert, I'll buy you a beer :D
jammupatu
22nd August 2016, 17:38
Version 1.5.5 is ready! (https://github.com/mysteryx93/AviSynthShader/releases/tag/v1.5.5)
What's new:
- Updated Avisynth headers
- Moved lock so that it doesn't cause all other filters to run as MT_SERIALIZED
- MT mode now set using SetCacheHints instead of using env2
- Planar format for precision 1 changed from D3DFMT_L8 to D3DFMT_A8 to see if it works better on NVidia cards
Please test PlanarOut with NVidia cards and tell me whether it works better. Test with 8-bit output; 16-bit output still won't work for sure.
Todo:
- Fix corruption with x64 build
- Fix PlanarOut in a nicer way, for both 8-bit and 16-bit output
- Add conversion support for Avisynth+'s new native 16-bit formats
Hi, still getting "ExecuteShader: ProcessFrame failed." on load without PlanarOut=False. (Shader.avsi line 220)
Test done on Avisynth+ 32 bit build r2172 MT.
BR,
-j-
MysteryX
22nd August 2016, 18:24
In that case I'll have to deactivate PlanarOut for NVIDIA cards altogether.
jammupatu
24th August 2016, 15:55
In that case I'll have to deactivate PlanarOut for NVIDIA cards altogether.
Ok. Thank you very much for this piece of software and the effort regarding NVidia cards.
BR,
-j-
Wilbert
27th August 2016, 18:42
http://forum.doom9.org/showthread.php?p=1777925#post1777925
MysteryX
28th August 2016, 16:39
I'm not finding the other thread. Was it deleted? There was some good value in it and some specifically requested to never delete it as they were learning a lot from it.
Wilbert
28th August 2016, 17:06
I'm not finding the other thread. Was it deleted? There was some good value in it and some specifically requested to never delete it as they were learning a lot from it.
Yes he deleted it.
Nevilne
28th August 2016, 17:12
And here I thought we had a mod finally doing something
MysteryX
28th August 2016, 18:19
I think we all have something to learn from that incident, and it has nothing to do with video editing.
TheFluff
29th August 2016, 00:34
I think the lesson is "don't touch the poop"
raffriff42
29th August 2016, 01:01
On the positive side, I played around with some, uh, "luma upscaling algorithms" during all this and kept coming back to SuperRes - it's got a nice balance of sharpness and edge smoothing. Kudos!
MysteryX
29th August 2016, 06:43
I have to admit there is one factor that is unique to 4k upscaling: the pixels are too small to distinguish individually, and this can definitely alter the subjective experience. That's something I cannot reproduce on a 768p display where I can clearly see each pixel.
wonkey_monkey
29th August 2016, 12:21
I have to admit there is one factor that is unique to 4k upscaling: the pixels are too small to distinguish individually, and this can definitely alter the subjective experience. That's something I cannot reproduce on a 768p display where I can clearly see each pixel.
Surely that depends how far you sit from the screen...
AzraelNewtype
29th August 2016, 21:43
Also the size of the screen. It's easier to see individual pixels standing immediately next to that person's 65" 4k display than regular using distance of an iPhone 4, whose shorter dimension has even fewer lines than 768.
CkJ
30th August 2016, 06:32
the pixels are too small to distinguish individually
You can see the pixels clearly if you see the image at full size (a.k.a full resolution). Full size means you only can see a part of the larger size image (e.g 4k) on your smaller size display screen (e.g 768p). And you need to drag the scroll bar to see other parts.
If you see a larger size image on a smaller size display screen with fullscreen mode, the larger image is auto downscaled to fit your display screen. In other words, you are seeing a thumbnail.
Here's the way it works. It wraps around other resizers. After doubling the image size (with NNEDI3 for example), it resizes it back down with Bicubic and compares it with the original, producing a diff map representing details that were lost while upscaling. Then, it does its magic from that diff map.
How it works if I do an invert? I mean using superres for downscaling. E.g: SuperRes(2, .5, 0, """spline36resize(width/2, height/2)""")
Since the magic is from diff map, I think superres seem to be good to add lost details while downscaling. :)
CkJ
30th August 2016, 08:23
Original
http://i.imgbox.com/OngUFK84.png
bilinearresize(width*2, height*2)
spline36resize(width/2, height/2)
http://i.imgbox.com/ejDwWZLp.png
bilinearresize(width*2, height*2)
SuperRes(2, .5, 0, """spline36resize(width/2, height/2)""")
http://i.imgbox.com/DQ12uffJ.png
MysteryX
30th August 2016, 17:03
You can see the pixels clearly if you see the image at full size (a.k.a full resolution). Full size means you only can see a part of the larger size image (e.g 4k) on your smaller size display screen (e.g 768p). And you need to drag the scroll bar to see other parts.
Yes I can see all pixels that way; but there's a difference between seeing all the pixels clearly from 2 foot away from a 768p screen, and looking 6 foot away from a 4K screen where the pixels are too tiny to see individually. In that case it is possible that sharper pixels would actually look better. Kind of like a large TV screen looks good from far away, but when you look close there are black lines separating each pixel, yet those close-up details don't matter to the user.
How it works if I do an invert? I mean using superres for downscaling. E.g: SuperRes(2, .5, 0, """spline36resize(width/2, height/2)""")
Since the magic is from diff map, I think superres seem to be good to add lost details while downscaling. :)
I don't know; SuperRes wasn't designed for that. You can try.
Downscaling is a pretty straightforward operation and there is generally very little difference between various algorithms. It is Upscaling that requires a lot more work because new pixels need to be created. If you see improvements with downscaling, great. Most likely you won't get much more than Bicubic with tweaked B and C values to match the sharpness you want.
musicvideos4k
30th August 2016, 18:32
Yes I can see all pixels that way; but there's a difference between seeing all the pixels clearly from 2 foot away from a 768p screen, and looking 6 foot away from a 4K screen where the pixels are too tiny to see individually. In that case it is possible that sharper pixels would actually look better. Kind of like a large TV screen looks good from far away, but when you look close there are black lines separating each pixel, yet those close-up details don't matter to the user.
I don't know; SuperRes wasn't designed for that. You can try.
Downscaling is a pretty straightforward operation and there is generally very little difference between various algorithms. It is Upscaling that requires a lot more work because new pixels need to be created. If you see improvements with downscaling, great. Most likely you won't get much more than Bicubic with tweaked B and C values to match the sharpness you want.
Not surprised you are the only one here understanding the point. Anything i upscale using common methods looks blurry and actually even watching the original with a simple bicubic PS 2.0 * MPC-HC custom presenter * + the own 4K TV Upscaling looks much better than SuperRES or SuperXBR upscale, which looks blurred out and crap.
So then i decided to improve the upscaling by making it look better than what you get using TV's 4K internal upscaling + bicubic from normal media players, and still better than using MadVR.
That's what i am doing, which ive explained several times = playback for 4K Big screens, not some 22-24 inches 1080p, 1440p or even tiny 4k monitors.
You must see the content fitting the size and pixels from a display, of course a 55-85 4K screen is not being watched from 50 centimeters away.
CkJ
30th August 2016, 18:44
Yes I can see all pixels that way; but there's a difference between seeing all the pixels clearly from 2 foot away from a 768p screen, and looking 6 foot away from a 4K screen where the pixels are too tiny to see individually. In that case it is possible that sharper pixels would actually look better. Kind of like a large TV screen looks good from far away, but when you look close there are black lines separating each pixel, yet those close-up details don't matter to the user.
Now I can understand what you mean by "tiny pixels". Pixels on a 55'' 4k TV screen are smaller than pixels on a 60'' 4k TV screen. Yes, a smaller pixel actually look better than a bigger pixel.
musicvideos4k
30th August 2016, 18:48
Now I can understand what you mean by "tiny pixels". Pixels on a 55'' 4k TV screen are smaller than pixels on a 60'' 4k TV screen. Yes, a smaller pixel actually look better than a bigger pixel.
You cannot see a 4K Pixel pattern on a tiny screen. What you are watching there is a thumbnail for your eyes, your eyes cannot see the actual pixels. Do you know the size for a pixel in a 4K 24" monitor? Even if you place your head in front the display you won't see the pixels. So, no, it does not look better, you are not seeing the pixels output, unless you are superman and you did not tell me yet. 4K looks better on bigger screens, where you can actually see what the pixels are outputting.
musicvideos4k
30th August 2016, 19:05
4K means there are 4*1920*1080 (for 16:9 AR) pixels. As far as I know a digital pixel has no size. Its size is the size of the pixel on a display screen.
No, I can, if that screen has 4*1920*1080 (for 16:9 AR) pixels.
The physical size of the pixel on the display. Every display got a pixel pattern showing R,G,B, some others using other methods of pixel patterns. The size of the pixel on a 4K Display cannot be seen if the display is tiny, you are watching a thumbnail for your eyes, literally you are being capped out by the limitations of the human eye.
That's why some people claims they see "better" a downscaled 4K to 1080p video on a 1080p display. The reason of this is the luma / chroma information is higher on a 4K image that when downsized to fit 1080p image/pixels it gets "compressed" and makes you believe is looking better.
This is what im doing for my upscale to 4K, but the opposite. I get the pixels to show what is supposed to be shown on a 4K screen:
http://imgur.com/a/uDaUd
The original is going to look blurry, even with the help of the 4k internal upscale + any resizer. The upscale is going to look cleaner and sharper, still looking the same natural aspect as the original frame. The reason of this is the added information to fit the display pixel pattern.
MysteryX
31st August 2016, 06:57
Let's not re-ignite this discussion here unless creating a separate threat. Just keeping focus to keep things constructive; plus it's a discussion that is only useful for those who have a 4k screen, which I don't.
Wilbert
2nd September 2016, 22:32
This time i did remove all non-relevant posts. I gave musicvideos4k a long weekend off.
Alex-Kid
13th September 2016, 06:54
Hello everybody, I read a lot of this thread and I would like to test this filter with some SD footage I have. However I keep getting the "ExecuteShader: ProcessFrame failed" message, no matter what function I use from Shader.avsi. For example:
avisource("BabyBlues.avi")
SuperXBR()
I'm guessing the issue could be in my video card: an ATI Radeon HD 4670, 512 MB. Am I wrong? If not, how can I get this to work with my footage?
I am on Win7 x64, Avisynth 2.6 MT, 3 GB RAM.
Alex-Kid
21st September 2016, 05:52
Does anybody know? I think my video card is too old, though it supports DX 10.1 (PS 4.1). What would be the minimum requirements on this?
brucethemoose
21st September 2016, 08:53
Does anybody know? I think my video card is too old, though it supports DX 10.1 (PS 4.1). What would be the minimum requirements on this?
SuperXBR() gives me a green screen on my DX11 6620G graphics. Not very helpful, I know... but notably, it isn't erroring out.
Also, what version of AviSynth are you using? I can't test it now, but on my 7950, all shaders on Avisynth+ x64 gave me an error when trying to encode. I might've had something configured wrong though.
Alex-Kid
21st September 2016, 22:36
I've tried AviSynth 2.6 MT only, maybe I should try other versions. I thought DX9 compatibility would be enough, as it's the version the filter use. Don't know what could I configure in my video card, or if I'm missing something else, like a specific shader driver for example.
MysteryX
19th October 2016, 06:43
Try with PlanarIn=false, PlanarOut=false
It only requires DX9; but some graphic cards don't support single-plane textures.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.