Такая реализация теряет один бит цветности. Формат 565 - это 16бит, но тут старший бит используется как признак данные/rle.
И такой алгоритм rle с отдельным кодированием длин плохо работает с картинками у которых rle-последовательности небольшой длины. Worst case как принято говорить. У меня rle, но по другому сделан. Нет потери цвета и жмет лучше. Ну и прожка к нему для конвертирования jpg/png/bmp в сжатый формат тоже самописная. Чего только не сделаешь ради красоты