Либо это разные цвета, либо не та модель, либо не тот порядок байтов, либо ошибка в вычислениях. Попробуй по-разному, всего 6 вариантов:
1. RGB555, little endian, не используется старший бит
2. RGB555, little endian, не используется младший бит
3. RGB555, big endian, не используется старший бит
4. RGB555, big endian, не используется младший бит
5. RGB565, little endian
6. RGB565, big endian
Каждый из них даст совершенно разные результаты.
Либо вообще какая-то своя модель. Я ж не знаю, что там у тебя.
Добавлено позже:
norm(64, 136, 80) = (0.25, 0.53, 0.31)
(0.25, 0.53, 0.31) * 31 = (8, 17, 10)
bin(8, 17, 10) = (01000, 10001, 01010)
А 0xAA28 в RGB555 с младшим неиспользуемым битом равно (1, 01010, 10001, 01000), т.е., видимо, модель ABGR1555, либо же я запутался с порядком.