freerdp Primitives Library

The freerdp primitives library is intended to do run-time linking to a set of optimized routines and SIMD operations on arrays of data.  It is compatible (and can plug in) the Intel Integrated Performance Primitives (IPP) libraries, or it can be compiled independently of them.  Operations can cover the range simple arithmetic or logical operations to large scale reformatting, decoding, or encoding.  

Currently a selection of SSE operations are included. NEON, AVX, OpenCL and other flavors could easily be added as an extension.  Some of the color formatting routines from rfx_sse2 have been moved to the primitives library.  The library is not intended to be a comprehensive selection of operands and operators (like IPP); instead it covers known bottlenecks and slowdowns in current freerdp code (e.g. several 16-bit signed remoteFX operations). 

A set of tests in the "test" subdirectory check the functionality of the primitives as well as doing speed test comparisons between general-C, SSE/Neon, and (optionally) IPP versions of the same primitive.

For further information, see README.txt in the libfreerdp/primitives directory.