У меня есть программа, в которой я генерирую потоки битов, примерно от 80 до 150 бит или около того, которые я хотел бы сжать, потому что я собираюсь превратить их в некую строку ASCII, чтобы люди могли передавать их вокруг.
Кто-нибудь знает хороший бесплатный компрессор с поддержкой битов, который может работать в таком потоке? Моя основная проблема со «стандартными опциями» заключается в том, что этот поток действительно должен рассматриваться как биты, а не байты, иначе структура теряется, а их служебные данные затопляют любое усиление.
Дополнительно:
Причина, по которой я хочу сжать эти потоки, заключается в том, что пользователи будут обрезать и вставлять их, возможно, используя что-то вроде кодировки base64, поэтому сохранение некоторых данных полезно.
Вот пример для тех, кто хотел бы его увидеть. Я добавлю форматирование, чтобы его было легче читать:
110 110 - This is a 6x6 grid (the maximum is 7x7, so we only need 3 bits!)
000000
011110
010010
010010
011110
000000 - This is one layout grid
000000
000000
001000
000100
000000
000000 - This is the second layout grid
Теперь перечислим несколько штук
010 11111111 - A piece is a 3-bit colour code, then an 8-bit list of 'on / off' bits.
001 10101010 - Another bit!
001 10101010 - Another, identical bit!
Причина, по которой я говорю, что это следует рассматривать как «биты», заключается в том, что существуют очевидные варианты сжатия, если рассматривать их как поток битов (в частности, обычно множество нулей в «сетке»), которые исчезают, когда вы рассматриваете его как байт поток.