FreeRDP/FreeRDP — pull request #1939 by dpoe (2014-07-02 20:45:03+00:00)
Title: add YCoCg->RGB and 16-to-32bit SSE

This adds SSE versions of YCoCg->RGB colorspace conversion (used by EGFX) and 16-to-32bit RGB colorspace conversion. The former is roughly 16 times faster than the C code (depending on the client); the latter, 8 times. You can run prim_test in the libfreerdp/primitives/test library to measure it yourself to get numbers relevant to your client.

I also added a much faster copy of ExtractCodeId in bitmap_decode (this was a performance bottleneck when it was a switch statement.)

This code still uses posix_memalign directly since the wrapper for it has moved around a few times during development and it's been hard to track. I'd recommend changing that to the current wrapper.

I have only compiled and tested this code on Linux.