Помогите по формату потока данных определить метод сжатия данных.
Поток данных содержит серии блоков (1 бит флаг и данные).
Блок начинается с флага
1 - блок будет содержать сырые данные (8 бит)
0 - блок будет ссылаться на существующие блоки с указанием смещения и длинны блоков (12 бит на смещение и 4 бита на длину)
Пример потока данных с флагом 1
1 // флаг
01001110 N // данные
1 // флаг
01100001 a // данные
1 // флаг
01101101 m // данные
1 // флаг
01100101 e // данные
Пример потока данных с флагом 0
0 // флаг
000000000111 // смещение
0000 // длина