Мне нужна минимальная разница для похожих блоков по 1000 байт. Эти блоки будут отличаться не более чем на 20% битов. Перевернутые биты будут похожи на радиопомехи — случайным образом перевернутые биты с равномерным распределением по всему блоку. Вот мой псевдокод, использующий сжатие XOR и lzo:
minimal_diff=lzo(XOR(block1,block2))
Поскольку блоки небольшие, я использую сжатие lzo в надежде, что этот формат сжатия имеет минимальный шаблон.
Я рассмотрел такие алгоритмы, как xdelta и bsdiff, но они не будут работать для случайного статического шума, подобного этому. Они больше ориентированы на поиск смещенных последовательностей байтов.
Могут ли здесь работать коды исправления ошибок для создания минимальной разницы? Как именно?
Точные алгоритмы были бы хороши. Если это просто теория исследовательской работы, а не реализованная, то меня это не интересует.
ПРИМЕЧАНИЕ. Одинаковые биты в каждом блоке выстраиваются в линию. Сдвига нет. Есть только случайные перестановки битов шума, которые различают блоки.