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 > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 30th July 2015, 01:36   #1  |  Link
Elegant
Registered User
 
Join Date: Jul 2014
Posts: 55
EEDI3 v0.9.2 (x86/x64)

Hi guys, I noticed that EEDI3 did not have a x64 version after firesledge's mod. I've quickly updated this filter to support x64 as well as the 2.6 API.

Further information can be found in the readme as well as on my GitHub.
Attached Files
File Type: 7z EEDI3_v0_9_2_1.7z (128.1 KB, 473 views)
Elegant is offline   Reply With Quote
Old 31st July 2015, 02:56   #2  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,664
Thanks for another updated plugin! Any interest in adding support for the additional planar colorspaces in AviSynth 2.6? Also can you please add the option to use FTurn in eedi3_rpow2? This yields a nice speed increase. The optimized FTurn code is already integrated into the AviSynth+ core so there's no real improvement there but it does benefit AviSynth 2.6/MT users. A bit more info here.
Reel.Deel is offline   Reply With Quote
Old 21st March 2018, 21:31   #3  |  Link
mp3dom
Registered User
 
Join Date: Jul 2003
Location: Italy
Posts: 1,135
Sorry to bump, but this version (EEDI3 0.9.2.1 by Elegant x64) have something really wrong with YUY2.
Even this
Code:
colorbars(width=720,height=480,pixel_type="yuy2")
eedi3(0)
Is enough to output wrong colorbars.
This affects the x64 version ONLY and only YUY2 colorspace, since it works fine in YV12 (x86 version works fine in both YUY2 and YV12)
mp3dom is offline   Reply With Quote
Old 22nd March 2018, 17:01   #4  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
mp3dom, there is asm in source, have you tried use C only

Code:
   opt (default: 0)

      Sets which cpu optimizations to use. Possible settings:

         0 = auto detect
         1 = use c
         2 = use sse2
Just to give someone who speaks asm a clue. [EDIT: Or as x64 prob, then probably intrinsic rather than asm]

EDIT: memcpy_amd_asm_x64.asm does indeed contain asm, I thought asm not supported on x64(???).

EDIT: I dont see anything obviously wrong in the C YUY2->YV22->YUY2 routines
Code:
void PlanarFrame::convYUY2to422(const uint8_t *src,uint8_t *py,uint8_t *pu,uint8_t *pv,int pitch1,int pitch2Y,int pitch2UV,
	int width,int height)
{
	if (((cpu&CPU_SSE2)!=0) && useSIMD && (((size_t(src)|pitch1)&15)==0))
		convYUY2to422_SSE2(src,py,pu,pv,pitch1,pitch2Y,pitch2UV,width,height);
	else
	{
		if (((cpu&CPU_MMX)!=0) && useSIMD) convYUY2to422_MMX(src,py,pu,pv,pitch1,pitch2Y,pitch2UV,width,height);
		else
		{
			width >>= 1;
			for (int y=0; y<height; ++y)
			{
				int x_1=0,x_2=0;

				for (int x=0; x<width; ++x)
				{
					py[x_1] = src[x_2];
					pu[x] = src[x_2+1];
					py[x_1+1] = src[x_2+2];
					pv[x] = src[x_2+3];
					x_1+=2;
					x_2+=4;
				}
				py += pitch2Y;
				pu += pitch2UV;
				pv += pitch2UV;
				src += pitch1;
			}
		}
	}
}


void PlanarFrame::conv422toYUY2(uint8_t *py,uint8_t *pu,uint8_t *pv,uint8_t *dst,int pitch1Y,int pitch1UV,int pitch2,
	int width,int height)
{
	if (((cpu&CPU_SSE2)!=0) && useSIMD && ((size_t(dst)&15)==0))
		conv422toYUY2_SSE2(py,pu,pv,dst,pitch1Y,pitch1UV,pitch2,width,height);
	else
	{
		if (((cpu&CPU_MMX)!=0) && useSIMD) conv422toYUY2_MMX(py,pu,pv,dst,pitch1Y,pitch1UV,pitch2,width,height);
		else
		{
			width >>= 1;
			for (int y=0; y<height; ++y)
			{
				int x_1=0,x_2=0;

				for (int x=0; x<width; ++x)
				{
					dst[x_2] = py[x_1];
					dst[x_2+1] = pu[x];
					dst[x_2+2] = py[x_1+1];
					dst[x_2+3] = pv[x];
					x_1+=2;
					x_2+=4;
				}
				py += pitch1Y;
				pu += pitch1UV;
				pv += pitch1UV;
				dst += pitch2;
			}
		}
	}
}
EDIT: Looks like uses MASM assembler, so presumably x64 asm just not supported in compiler.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 24th March 2018 at 20:07.
StainlessS is offline   Reply With Quote
Old 23rd March 2018, 13:13   #5  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
This one perhaps? (The x86 version is even a bit faster for me than 0.9.2.1)
https://github.com/pinterf/EEDI3/releases/tag/v0.9.2.2
pinterf is offline   Reply With Quote
Old 23rd March 2018, 14:15   #6  |  Link
DJATOM
Registered User
 
DJATOM's Avatar
 
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
Since you forked and currently working on eedi3... I'd like to request Y8 support. U=false, V=false is just bad since sometimes I need to feed 873p descales for antialiasing and it's just not even mod2.
I did such modification on my local copy near 1 year ago, but didn't yet posted it on github.
__________________
Me on GitHub
PC Specs: Ryzen 5950X, 64 GB RAM, RTX 2070
DJATOM is offline   Reply With Quote
Old 23rd March 2018, 15:28   #7  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Yeah, it was just a quick mod, Y8, YV16 and YV24 paths are being reconstructed. (YUY2 is like YV16, RGB24 is like YV24 inside)
pinterf is offline   Reply With Quote
Old 23rd March 2018, 16:09   #8  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
And another quick one:
https://github.com/pinterf/EEDI3/releases/tag/v0.9.2.3

Please test.

Code:
    v0.9.2.3 - March 23, 2018
       - Y8, YV16 and YV24 colorspaces as input: go live.

    v0.9.2.2 - March 23, 2018
       - Moved to Visual Studio 2017
       - Removed external asm files (integrated/replaced with intrinsics)
       - Update Avisynth headers
       - fix YUY2 x64 artifacts
       - https://github.com/pinterf/EEDI3
pinterf is offline   Reply With Quote
Old 23rd March 2018, 16:24   #9  |  Link
DJATOM
Registered User
 
DJATOM's Avatar
 
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
Tested via RDP, don't see any issues with my scripts (it works with y8 internally).
__________________
Me on GitHub
PC Specs: Ryzen 5950X, 64 GB RAM, RTX 2070
DJATOM is offline   Reply With Quote
Old 23rd March 2018, 16:56   #10  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Part Man - Part Machine, thanx muchly Pinterf

EDIT: To below post:
Welcome back RD, its aways nice when you get back out of jail again.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 24th March 2018 at 04:31.
StainlessS is offline   Reply With Quote
Old 24th March 2018, 04:14   #11  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,664
Quote:
Originally Posted by StainlessS View Post
Part Man - Part Machine, thanx muchly Pinterf
Indeed! Thanks pinterf!

------------------

I've been away for sometime but I'm glad to see some of you are still going strong.
Reel.Deel is offline   Reply With Quote
Old 24th March 2018, 14:43   #12  |  Link
mp3dom
Registered User
 
Join Date: Jul 2003
Location: Italy
Posts: 1,135
Thanks to all for this quick fix and also additional colorspaces support!
mp3dom is offline   Reply With Quote
Old 2nd December 2020, 12:57   #13  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by pinterf View Post
Yeah, it was just a quick mod, Y8, YV16 and YV24 paths are being reconstructed. (YUY2 is like YV16, RGB24 is like YV24 inside)
can we got HBD too?

there are https://github.com/HomeOfVapourSynth...ourSynth-EEDI3 maybe help with adding HBD and sse4.1, avx, avx512 optimization
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 3rd December 2020, 08:17   #14  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Quote:
Originally Posted by real.finder View Post
can we got HBD too?

there are https://github.com/HomeOfVapourSynth...ourSynth-EEDI3 maybe help with adding HBD and sse4.1, avx, avx512 optimization
Not from me, it's not a five minutes job.
pinterf is offline   Reply With Quote
Old 28th November 2022, 18:10   #15  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,153
EEDI3CL supports HBD now
https://github.com/Asd-g/AviSynthPlus-EEDI3CL/releases
kedautinh12 is offline   Reply With Quote
Old 23rd July 2023, 00:43   #16  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,153
EEDI3CL 1.0.2
Code:
Fixed crashing when unsupported Avs+ used by explicitly throwing error.
Changed the required Avs+ version.
Used libraries:

OpenCL-SDK v2023.04.17.
boost_1_82_0.7z.
https://github.com/Asd-g/AviSynthPlus-EEDI3CL/releases
kedautinh12 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 00:22.


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