Mój problem jest następujący:
W pamięci mam kolory RGB, powiedzmy:
0h : R0
1h : G0
2h : B0
3h : R1
4h : G1
5h : B1
6h : R2
7h : G2
8h : B2
itd.
(gdzie pod Ri, Gi, Bi kryją się wartości 0-255).
Chcę je skonwertować na liczby zmienno-przecinkowe pojedynczej precyzji, aby następnie pomnożyć każdą wartość przez odpowiednią liczbę (rownież REAL4).
Wszystkie wartości R przez 0,39; wszystkie wartości G przez 0,51; wszystkie wartości B przez 0,19.
Nasunęło mi się wykorzystanie rozszerzeń SSE/SSE2.
Ponieważ w jednym rejestrze XMM można spakować 4 wartości typu REAL4, chciałbym to skonstruować w następujący sposób:
I tutaj jest problem:
Czy da się skonwertować 3 bajty z pamięci do 3 liczb REAL4 w rejestrze XMM (tak jak na rysunku), pozostawiając ostatnie pole puste (albo wpisując tam cokolwiek, np. 0) ?
Wtedy można by łatwo przemnożyć wszystkie wartości RGB przez żądane liczby.