Norbert Federa 04518f0b42 codec: fixed and accelerated RemoteFX ycbcr-to-rgb decoder
The current ycbcr decoder was loosing some bits because cr/cb was multiplied by
the shifted factors.
Instead one should multiply by the non-shifted factors and shift the result.
The effects of these lost bits are easily seen by comparing the colors of a
RemoteFX session with the colors of a plain RDP session - they are just wrong ;)

I've replaced the bit-magic from the non non-accelerated version (rfx_decode.c)
and replaced it with simple float multiplications using the compiler's implicit
integer conversions. On several test machines this was even a little bit faster.

The accelerated SSE2 ycbcr decoder (rfx_sse2.c) was completely changed in order
to make use of the SSE2 signed 16-bit integer multiplication.
Fortunately the factors in the conversion matrix are so small that we can
easily shift them to the maximum possible 16-bit signed integer value without
loosing any information and use _mm_mulhi_epi16 which takes the upper 16 bits
of the 32-bit result.

The SSE2 ycbcr decoder is now much simpler and about 40 percent faster.
2011-12-27 16:18:02 +01:00
2011-11-11 14:26:28 -05:00
2011-11-13 17:30:09 -05:00
2011-06-30 15:12:51 -04:00
2011-07-25 20:27:35 +10:00

FreeRDP: A Remote Desktop Protocol Client
=========================================

FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) following the Microsoft Open Specifications.

Resources
---------

Website: http://www.freerdp.com/
Wiki: http://www.freerdp.com/wiki/
Sources: http://www.freerdp.com/git/
API doc: http://www.freerdp.com/api/

IRC channel: #freerdp @ irc.freenode.net
Mailing list: https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Microsoft Open Specifications
-----------------------------

Information regarding the Microsoft Open Specifications can be found at:
http://www.microsoft.com/openspecifications/

Compilation
-----------

Instructions on how to get started compiling FreeRDP can be found on the wiki:
http://www.freerdp.com/wiki/doku.php?id=compilation


Description
No description provided
Readme 84 MiB
Languages
C 87.6%
C++ 3.3%
CMake 3.2%
Objective-C 2.7%
Java 1.9%
Other 1.2%