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.

 

Go Back   Doom9's Forum > General > Subtitles

Reply
 
Thread Tools Search this Thread Display Modes
Old 19th July 2013, 17:15   #1  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,856
xy-VSFilter Project (High Performance VSFilter Compatible Subtitle Filters)

Our project was first publicly released in 2011, with the goal of bringing VSFilter performance closer to that of Libass. We succeeded.
xy-VSFilter has been included in most well known codec packs (CCCP, K-Lite, Shark, KCP), as well as distributed with players like Zoom Player.

Now in 2013, we bring XySubFilter, a collaboration with madshi (developer of madVR) using a brand-new subtitle interface for high quality rendering.
__________

Stable Release
The current xy-VSFilter stable version is: 3.0.0.306 (git 9a21450)
The current XySubFilter stable version is: 3.1.0.752 (git 7cdd471)

xy-VSFilter .zip Archive (32-bit) | xy-VSFilter .zip Archive (64-bit)

Debug Symbols for XySubFilter 3.0.0.306

Installation Instructions

Troubleshooting Q&A


XySubFilter .zip Archive (32-bit) | XySubFilter .zip Archive (64-bit)

Debug Symbols for XySubFilter 3.1.0.752

Note: XySubFilter requires a compatible subtitle consumer. We recommend madVR 0.87.5+ or MPC-HC 1.7.2+ (EVR-CP)

After downloading XySubFilter, you must ensure to run the 'Install' bat (not only replace) or else XySubFilter's autoload helper required for entering the DirectShow graph with external subtitles will not be installed.
__________

Preview Release

The current xy-VSFilter beta version is: None
The current XySubFilter beta version is: None
__________

What Is Different

Recent Changelog
Old Changelog

Significantly faster overall compared to Libass.
Up to multiple orders of magnitude faster than VSFilter 2.41
  • High resolution subtitle rendering (XySubFilter only)
  • External support for PGS/HDMV subtitles (XySubFilter only)
  • New Style Override Dialog (XySubFilter only)
  • Force Default Style (XySubFilter only)
  • Support U+10000-U+10FFFF UTF-8 encoded character (XySubFilter only)
  • Subpics are now drawn directly in YUV/RGB as needed to improve performance
  • Official VSFilter always rendered subtitles in RGB and did a RGB -> YUV conversion when outputting YUV formats
  • Floating-point Gaussian Blur implementation (higher quality + significantly faster with large blur values)
  • More efficient Border code (higher quality + up to 12x faster with large border sizes)
  • More efficient Clip code (significantly faster + up to 1.8GB reduction in RAM usage when rendering gradients)
  • More efficient Color Conversion, Chroma Placement, Alpha Blending, and Rasterization code (SSE2 optimized)
  • Alpha blending on dirty areas of the frame only
  • Alpha-blending with sub-sampled/interlaced chroma where applicable
  • Addition of numerous caches to speed up animated effects
  • Proper implementation of animation detection to speed up static typesetting
  • New script parser to speed up loading of very large subtitle scripts
  • 75% reduction in CPU load overhead when idle

__________

Create New Bug Report

Reported Issues List

Last edited by cyberbeing; 7th October 2018 at 18:35.
cyberbeing is offline   Reply With Quote
Old 19th July 2013, 17:16   #2  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,856
MPC-HC & MPC-BE Users:


Failure to do so with xy-VSFilter (VSFilter.dll) will result in it being blocked and not used.

Failure to do so with XySubFilter will in result in horrible performance since the ISR will be rendering subtitles with madVR at the same time as XySubFilter.
If you are not achieving near-identical performance with XySubFilter+madVR compared to xy-VSFilter+madVR, this is the most likely reason why.

Last edited by cyberbeing; 7th December 2014 at 03:37.
cyberbeing is offline   Reply With Quote
Old 19th July 2013, 17:16   #3  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,856
Reserved
cyberbeing is offline   Reply With Quote
Old 19th July 2013, 17:21   #4  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,126
From what I can see, XySubFilter should combine all advantages of the MPC-HC internal subtitle renderer (high-resolution rendering, DXVA decoding compatability) with all advantages of VSFilter (correct colors, correct drawing of all ASS effects) and all advantages of xy-VSFilter (less CPU consumption etc). So for madVR users it should be the ultimate subtitle rendering solution. Of course rendering subtitles at a higher resolution does come with a cost (slightly higher CPU and GPU consumption), but it shouldn't be too much, I hope...

There's one limitation: The combination of XySubFilter + madVR only works properly if your GPU is able to perform alpha blending in more than 8bit. Some older GPUs (e.g. NVidia 9xxx series up to 2xx or maybe 3xx) can only perform alpha blending up to 10bit. For these GPUs you have to enable the madVR option "use 10bit image buffer instead of 16bit". Newer generation GPUs have no problem performing alpha blending at 16bit. Very very old GPUs might not even be able to do alpha blending at 10bit. If you have such a GPU you may have to stick with xy-VSFilter or the internal MPC-HC subtitle renderer.

Last edited by madshi; 19th July 2013 at 17:38.
madshi is offline   Reply With Quote
Old 19th July 2013, 18:04   #5  |  Link
zero9999
Registered User
 
Join Date: Oct 2011
Posts: 52
Quote:
Originally Posted by madshi View Post
There's one limitation: The combination of XySubFilter + madVR only works properly if your GPU is able to perform alpha blending in more than 8bit. Some older GPUs (e.g. NVidia 9xxx series up to 2xx or maybe 3xx) can only perform alpha blending up to 10bit. For these GPUs you have to enable the madVR option "use 10bit image buffer instead of 16bit". Newer generation GPUs have no problem performing alpha blending at 16bit. Very very old GPUs might not even be able to do alpha blending at 10bit. If you have such a GPU you may have to stick with xy-VSFilter or the internal MPC-HC subtitle renderer.
Quote:
<__ar> tp7, with that alpha blending issue, uh i managed to trigger it by changing rgb levels from pc -> auto in the most recent one i built. when i changed it back to pc it worked fine.
...
<__ar> tp7, yeah so changing RGB Level from Auto->PC in xy_sub_filter settings fixes the black box problem.
<__ar> leaving it on tv or auto
<__ar> causes the alpha blending to fail
any idea why this would fix the issue?
zero9999 is offline   Reply With Quote
Old 19th July 2013, 20:34   #6  |  Link
Warlock
Registered User
 
Join Date: Mar 2012
Posts: 29
Quote:
Originally Posted by madshi View Post
From what I can see, XySubFilter should combine all advantages of the MPC-HC internal subtitle renderer (high-resolution rendering, DXVA decoding compatability) with all advantages of VSFilter (correct colors, correct drawing of all ASS effects) and all advantages of xy-VSFilter (less CPU consumption etc). So for madVR users it should be the ultimate subtitle rendering solution. Of course rendering subtitles at a higher resolution does come with a cost (slightly higher CPU and GPU consumption), but it shouldn't be too much, I hope...

There's one limitation: The combination of XySubFilter + madVR only works properly if your GPU is able to perform alpha blending in more than 8bit. Some older GPUs (e.g. NVidia 9xxx series up to 2xx or maybe 3xx) can only perform alpha blending up to 10bit. For these GPUs you have to enable the madVR option "use 10bit image buffer instead of 16bit". Newer generation GPUs have no problem performing alpha blending at 16bit. Very very old GPUs might not even be able to do alpha blending at 10bit. If you have such a GPU you may have to stick with xy-VSFilter or the internal MPC-HC subtitle renderer.
The GeForce 8600GT has alpha blending?
This here is another question I have. When the XySubFilter is installed, looks like this:

http://i.imgur.com/Qr8zLGo.jpg

When the xy-VSFilter looks like this:

http://i.imgur.com/q3XaV74.jpg

It's supposed to be so even with the XySubFilter installed? Another thing I noticed was regarding the pin info generated by lav. When the xy-VSFilter is installed, the pin info output equals pin info input, in the case of the video image is 720p. Already in XySubFilter, Pin out information generated is 2048x720. Is that correct?

Last edited by Warlock; 19th July 2013 at 21:30.
Warlock is offline   Reply With Quote
Old 20th July 2013, 00:29   #7  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,856
Quote:
Originally Posted by Warlock View Post
The GeForce 8600GT has alpha blending?
This here is another question I have. When the XySubFilter is installed, looks like this:

http://i.imgur.com/Qr8zLGo.jpg

When the xy-VSFilter looks like this:

http://i.imgur.com/q3XaV74.jpg

It's supposed to be so even with the XySubFilter installed?
What was the problem in these images? Those screenshots seem to be of karaoke effects hardsubbed into the video during encoding.

If the issue is xy-VSFilter loading instead of XySubFilter with madVR, we are awaiting MPC-HC to apply a fix for this.

Quote:
Originally Posted by Warlock View Post
Another thing I noticed was regarding the pin info generated by lav.
...
Pin out information generated is 2048x720. Is that correct?
madVR always requests frame size padded to common texture widths from the video decoder, this is normal.
cyberbeing is offline   Reply With Quote
Old 19th July 2013, 18:03   #8  |  Link
wanezhiling
Registered User
 
Join Date: Apr 2011
Posts: 1,159
@madshi, can you post an standard ass/ssa sample file and screenshots between 16bit and 10bit/8bit? Then we can be sure if our GPUs is capable of "XySubFilter + madVR".
wanezhiling is offline   Reply With Quote
Old 19th July 2013, 18:47   #9  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 9,447
Quote:
Originally Posted by wanezhiling View Post
@madshi, can you post an standard ass/ssa sample file and screenshots between 16bit and 10bit/8bit? Then we can be sure if our GPUs is capable of "XySubFilter + madVR".
There is no big difference visible that you can easily screenshot between 16 or 10-bit, you would notice if your GPU is not compatible when the subtitles have a black opaque box around them.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 19th July 2013 at 18:53.
nevcairiel is offline   Reply With Quote
Old 19th July 2013, 19:10   #10  |  Link
wanezhiling
Registered User
 
Join Date: Apr 2011
Posts: 1,159
Quote:
Originally Posted by nevcairiel View Post
You would notice if your GPU is not compatible when the subtitles have a black opaque box around them.
Thx, got it.


http://forum.doom9.org/showpost.php?...postcount=1398
@cyberbeing, why XySubFilter is still in filter chains under such situations?
wanezhiling is offline   Reply With Quote
Old 19th July 2013, 18:13   #11  |  Link
pirlouy
_
 
Join Date: May 2008
Location: France
Posts: 627
I don't manage to get *.srt subtitles to work.

Windows 7 x64
MadVR 0.86.9
Lav Filters 0.58.1
XySubFilter 3.1.0.546
MPC-BE dev 3073 32bits

I don't have the green arrow in systray. Which filter is responsible to detect .srt file (with the same name as the video file) ?

Embed subtitles are working though. FYI, I have uninstalled xy-VSFilter in order to have only XySubFilter.
__________________
Windows 10 x64; 1080p 60" TV, GTX 750; mpv or madVR+LAV Filters+MPC-BE

Last edited by pirlouy; 19th July 2013 at 18:15.
pirlouy is offline   Reply With Quote
Old 19th July 2013, 18:25   #12  |  Link
Soukyuu
Registered User
 
Soukyuu's Avatar
 
Join Date: Apr 2012
Posts: 169
I can confirm setting RGB output level to PC fixes the opaque box problem for me (260GTX) without having to switch to 10bit image buffer.

edit: how well threaded is XySubFilter? I'm still having dropped frames on some overstyled subtitles, without my CPU hitting 50% usage. Shouldn't be an I/O problem since I also tested playing back the same video from a RAM disk and it stuttered just as bad. madvr's OSD shows subtitle queue dropping to 0 so XySubFilter should be the one causing it. My CPU is an AMD Phenom II X4 970BE@4GHz.

Last edited by Soukyuu; 19th July 2013 at 18:46.
Soukyuu is offline   Reply With Quote
Old 19th July 2013, 21:48   #13  |  Link
Soukyuu
Registered User
 
Soukyuu's Avatar
 
Join Date: Apr 2012
Posts: 169
Quote:
Originally Posted by Soukyuu View Post
I can confirm setting RGB output level to PC fixes the opaque box problem for me (260GTX) without having to switch to 10bit image buffer.
As a follow up to that, if I set the RGB output to "auto", then turn off the "optimize subtitle quality for performance instead of quality", the opaque box goes away as well!

@madshi: You should think about renaming that one btw, it is confusing to read, maybe something like "optimize subtitles rendering for performance instead of quality"
Soukyuu is offline   Reply With Quote
Old 19th July 2013, 19:19   #14  |  Link
Overdrive80
Anime addict
 
Overdrive80's Avatar
 
Join Date: Feb 2009
Location: Spain
Posts: 625
Great, is big new. Thanks for your effort.
__________________
Intel i7-6700K + Noctua NH-D15 + Z170A XPower G. Titanium + Kingston HyperX Savage DDR4 2x8GB + Nvidia GTX750 2GB DDR5 + SSD Vertex 4 256 GB + Antec EDG750 80 Plus Gold Mod + Corsair 780T Graphite
Overdrive80 is offline   Reply With Quote
Old 19th July 2013, 20:38   #15  |  Link
TheShadowRunner
Registered User
 
TheShadowRunner's Avatar
 
Join Date: Feb 2004
Posts: 399
Thank you for this beta of xySubFilter, I just tested and have a couple of questions / bugs to report:
My setup: WinXP SP3, Zoom Player Max, xySubFilter beta 3.1.0.546 (removed all traces of previous XYVSfilter/VSFilter), madVR 0.86.9, newest Haali 1.13.138.14.

Bugs:
1. The subtitles never display when they are embedded!? (for exemple all the matroska files I tested).
madVR does report "subtitle queue 7-8/8" so I know the filter is connected.
On the property page of xySubFilter, Language is empty and grayed out, like if it wasn't able to load the subtitle track at all.
"Loading when needed" with "External" and "Embedded" checked.
Please see: xysubfilterbug.png
External subtitles are picked up and work correctly.

2. The "PAR compensation" setting doesn't stick. I chose "Accurate Size", restart playback, and it's reset to "Disabled". (even tried to force automatic_par_compensation to reg_dword value 3, no go)

Questions:
3. What is the purpose (if any) of the option "Render To Original Video Size" when "Use Original Video Size" is selected in the dropdown menu?

4. What is the difference between "Auto" and "Guess" settings for the YCbCr matrix ?
Please let me know!
__________________
XP SP3 / Geforce 8500 / Zoom Player
TheShadowRunner is offline   Reply With Quote
Old 19th July 2013, 20:53   #16  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 5,080
at 1: try lavfilter haali is so old the page is even down.
huhn is offline   Reply With Quote
Old 19th July 2013, 20:55   #17  |  Link
TheShadowRunner
Registered User
 
TheShadowRunner's Avatar
 
Join Date: Feb 2004
Posts: 399
Quote:
Originally Posted by huhn View Post
at 1: try lavfilter haali is so old the page is even down.
This very Haali was released a month ago. And it works perfectly fine with XY-VSFilter/VSFilter, that's not it.
(edit: as you can see on the picture i linked, the subtitle track was auto-selected correctly in XYSubFilter context menu)
__________________
XP SP3 / Geforce 8500 / Zoom Player

Last edited by TheShadowRunner; 19th July 2013 at 21:07.
TheShadowRunner is offline   Reply With Quote
Old 19th July 2013, 21:13   #18  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 5,080
that's "normal" that xysubfilter is loaded with every file at least for me. it's maybe a bug.

when i start a file without subtitle i get the same filter like you with "(xySubFilter connected with madvr, none)".

i just tryed haali and it works after i block xyvobsub.
huhn is offline   Reply With Quote
Old 19th July 2013, 21:08   #19  |  Link
DarkSpace
Registered User
 
Join Date: Oct 2011
Posts: 204
Quote:
Originally Posted by TheShadowRunner View Post
PAR compensation
PAR Compensation broke, use Layout Resolution instead (set it to anamorphic-corrected video size).
Quote:
Originally Posted by TheShadowRunner View Post
What is the purpose (if any) of the option "Render To Original Video Size" when "Use Original Video Size" is selected in the dropdown menu?
Those two are totally separate things.
Render To Original Video Size makes XySubFilter output subtitles at video resolution instead of using the scaled output resolution.
Use Original Video Size sets the Layout Resolution to use the original video size.
Quote:
Originally Posted by TheShadowRunner View Post
What is the difference between "Auto" and "Guess" settings for the YCbCr matrix ?
Auto uses the ASS script's YCbCr Matrix flag if it's present and otherwise defaults to using TV.601 (or, for PC-range content, PC.601) YUV values.
Guess chooses the YUV values to use by resolution, although I don't know if it attempts to read the YCbCr Matrix field first.
DarkSpace is offline   Reply With Quote
Old 19th July 2013, 22:22   #20  |  Link
TheShadowRunner
Registered User
 
TheShadowRunner's Avatar
 
Join Date: Feb 2004
Posts: 399
Quote:
Originally Posted by DarkSpace View Post
PAR Compensation broke, use Layout Resolution instead (set it to anamorphic-corrected video size).
I don't have any "Layout Resolution" setting anywhere in XYSubFilter 3.1.0.546.
I only see "Renderer Layout Options" with 3 possibilities:
-Use Original Video Size
-Use AR adjusted video size
-Customize..

So...??

Quote:
Those two are totally separate things.
Render To Original Video Size makes XySubFilter output subtitles at video resolution instead of using the scaled output resolution.
Use Original Video Size sets the Layout Resolution to use the original video size.
I understand the theory, I think. Will have to try in real world. ^^;

Quote:
Auto uses the ASS script's YCbCr Matrix flag if it's present and otherwise defaults to using TV.601 (or, for PC-range content, PC.601) YUV values.
Guess chooses the YUV values to use by resolution, although I don't know if it attempts to read the YCbCr Matrix field first.
Alright, thanks for this precision.
__________________
XP SP3 / Geforce 8500 / Zoom Player
TheShadowRunner is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 06:11.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.