Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assembly optimisations - offer of code #7

Open
kupix opened this issue Jul 28, 2015 · 2 comments
Open

Assembly optimisations - offer of code #7

kupix opened this issue Jul 28, 2015 · 2 comments

Comments

@kupix
Copy link

kupix commented Jul 28, 2015

Would the Thor team consider using our library of video coding assembly optimisations? This is a collection of permissively licensed assembly with test and demonstration code aimed primarily at HEVC encoding and decoding using x86/x64/AVX2. Thor primitives could easily be added and it seems likely that transforms are already interchangeable.

https://github.com/kupix/hevcasm/tree/develop

Happy to adapt and improve (and rename!) the HEVCasm library to Cisco's requirements :) We'd eventually love it to be a one-stop-shop for all the optimised primitives you might need for an encoder or decoder of modern video formats. HEVCasm is currently in use in Parabola products and collaborative R&D projects.

The "primitives API" as exposed by HEVCasm is a natural interface already existing in most codec implementations. It could be used to enable reuse of some of the most time-consuming work between encoders and decoders of different formats. So many codecs come with their own primitives built in and this represents vast duplication of effort between projects - our goal is to rise above politics and egos to improve that situation!

@metajack
Copy link
Contributor

I wonder if any of HEVCasm could be used in Daala.

Is there a reason you don't have NEON support?

cc @tterribe @tdaede

@kupix
Copy link
Author

kupix commented Jul 28, 2015

It would be fantastic to support Daala primitives in HEVCasm. Focus has been on HEVC and 64-bit Windows/Linux - no reason why we couldn't also offer Daala functions and Neon for that matter if someone had the time and tools (or funding).

HEVCasm is a work in [very slow] progress. Philosophy is lowest common denominator language (C not C++ or C99) and lowest common denominator copyright license (BSD or MIT, not GPL or LGPL) for maximum compatibility with other projects.

Current project brings together assembly from f265 (now abandoned), libvpx and a few routines by Parabola. All wrapped in a consistent API with CPU detection and function pointer table management. In principle it could support any codec from JPEG to Daala - it's intended to be an old fashioned library from which you just link the parts you want.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants