Алгоритм, подобный LZSS , вероятно, будет хорошим выбором для встроенной платформы. Это простые алгоритмы, и им не нужно много памяти.
LZS это тот, с кем я знаком. Он использует словарь 2 КБ для сжатия и распаковки (словарь является самым последним 2 КБ потока несжатых данных). ( LZS был запатентован HiFn , однако, насколько я могу судить, срок действия всех патентов истек.)
Но я вижу, что ATmega328 , используемый в недавних Arduinos, имеет только 512 байтов до 2 КБ SRAM, поэтому, возможно, даже LZS слишком велик для него. Я уверен, что вы могли бы использовать вариант со словарем меньшего размера, но я не уверен, каких коэффициентов сжатия вы бы достигли.