View Full Version : Deblocking and Deringing without ffdshow
BloodySword
24th May 2015, 20:05
Hi all,
do any of you know a possibility to deblock and dering H.263, VP1-6F and other codecs that produce blocking artefacts and do not have any in-loop filter without ffdshow?
I tried ffdshow before but Nic's deblock/dering is really slow on my Xeon E5-2367v3... Perhaps because it is not compiled with correct SIMD instructions? Who knows. mplayer deblocking works, but looks ugly.
Any ideas?
I use LAV Filters and madVR on MPC-BE (all together 64 bit).
System specs:
OS: Windows 8.1 Pro 64-Bit
CPU: 1x Xeon E5-2367v3
GPU: GeForce GTX Titan X
RAM: 32 GByte Kingston ValueRAM reg ECC DDR4-2133
MB: Asus X99-E WS
PWR: Corsair AX860
SSD: Intel 750 Series NVMe PCIe-card 400 GB
HDD: 4TB HGST 7200RPM 64MB Cache
Display: NEC MultiSynch EA244WMi connected via DisplayPort
vood007
24th May 2015, 21:01
You know you can use Avisynth with FFDShow in realtime. For bad quality / low resolution stuff aWarpsharp2 and flash3kyuu_deband after upscaling can do wonders. There is a stand-alone version of x264īs deblock available as avisynth filter too.
LoRd_MuldeR
24th May 2015, 21:13
You generally cannot do proper Deblocking and/or Deringing independent from the decoder.
That's because the Deblocking/Deringing filter needs to be optimized for the individual video format (e.g. it needs to know where the block boundaries are) and it uses information that the decoder usually doesn't forward (e.g. per-block quantizers).
So the Deblocking/Deringing filter either has to be integrated with the video decoder, as is the case with ffdshow, or it has to be implemented as "blind post-processing" (i.e. assume a user-defined quantizer). The latter clearly gives inferior results.
BloodySword
24th May 2015, 21:23
You generally cannot do proper Deblocking and/or Deringing independent from the decoder.
That's because the Deblocking/Deringing filter needs to be optimized for the individual video format (e.g. it needs to know where the block boundaries are) and it uses information that the decoder usually doesn't forward (e.g. per-block quantizers).
So the Deblocking/Deringing filter either has to be integrated with the video decoder, as is the case with ffdshow, or it has to be implemented as "blind post-processing" (i.e. assume a user-defined quantizer). The latter clearly gives inferior results.
Thanks, I am aware of that. Best thing is still in-loop deblocking and deringing. But there's no chance to use that on any H.263 codec. ;)
I have decoded the formats using ffdshow, so I did not use the video processor, instead I used the full decoder and used deblocking.
Do you have any explanation why Nic's deblocking filter is so slow for me? Look at my system specs. Should not be any problem.
Do you have any recommendation of a ffdshow built?
You know you can use Avisynth with FFDShow in realtime. For bad quality / low resolution stuff aWarpsharp2 and flash3kyuu_deband after upscaling can do wonders. There is a stand-alone version of x264īs deblock available as avisynth filter too.
I didn't try that because first of all I use 64 bit MPC-BE and second I don't think that this would have performance because avisynth is generally very slow on moving frame data into and out.
Stand-Anoine x264 deblocking? How should this work, it needs to be in-loop in the decoder, I thought?!
foxyshadis
25th May 2015, 10:57
You generally cannot do proper Deblocking and/or Deringing independent from the decoder.
That's because the Deblocking/Deringing filter needs to be optimized for the individual video format (e.g. it needs to know where the block boundaries are) and it uses information that the decoder usually doesn't forward (e.g. per-block quantizers).
So the Deblocking/Deringing filter either has to be integrated with the video decoder, as is the case with ffdshow, or it has to be implemented as "blind post-processing" (i.e. assume a user-defined quantizer). The latter clearly gives inferior results.
Quant-adaptive deblocking isn't all it's cracked up to be, except in the most extreme cases, because matrices are so wildly different. Deblock_QED works quite well with zero knowledge. If someone recreated it as a shader, I bet it'd be quite handy. (Denoising shaders already exist, for instance using ToYUV->RemoveGrain11->RemoveGrain4->ToRGB from the FineSharp package, ignoring the sharpening part.)
XRyche
26th May 2015, 01:17
JanWillem32 over at http://forum.doom9.org/showthread.php?t=157634 makes some rather comprehensive debanding/denoiseing shaders for his experimental custom EVR renderer that I use for some rather bad quality late 90's, early 2000's TIVO and VHS TV rips. At a high enough strength they do deblock, of course you'll lose some detail. Considering the content I use them for a little detail lose is a small price to pay. I'm reasonably sure he'd be willing to adapt them to whatever software player you would want to use them with. They are currently optimized to use with LMS since that's what his custom EVR renderer uses. It isn't a "delicate" solution, more of a "brute force" solution, but hey, it works for me.
These are just my personal observations. I am in no way, shape, or form an expert like most on this forum. Just a normal user who knows next to nothing and uses what works for himself, so take my suggestion as simply a suggestion and not advice from a "guru".
BloodySword
26th May 2015, 17:26
JanWillem32 over at http://forum.doom9.org/showthread.php?t=157634 makes some rather comprehensive debanding/denoiseing shaders for his experimental custom EVR renderer that I use for some rather bad quality late 90's, early 2000's TIVO and VHS TV rips. At a high enough strength they do deblock, of course you'll lose some detail. Considering the content I use them for a little detail lose is a small price to pay. I'm reasonably sure he'd be willing to adapt them to whatever software player you would want to use them with. They are currently optimized to use with LMS since that's what his custom EVR renderer uses. It isn't a "delicate" solution, more of a "brute force" solution, but hey, it works for me.
These are just my personal observations. I am in no way, shape, or form an expert like most on this forum. Just a normal user who knows next to nothing and uses what works for himself, so take my suggestion as simply a suggestion and not advice from a "guru".
Thanks for sharing your Idea, I really appreciate it.
However, It don't think this is the solution I would use. I just have some low bitrate H.263 videos, mostly MPEG-4 ASP like XviD and DivX 5, etc. Your "crowbar" solution is a bit too much, I would loose too much detail. :/
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.