Алгоритм сжатия, который позволяет случайное чтение / запись в файл?

У кого-нибудь есть лучший алгоритм сжатия, который позволил бы случайное чтение / запись?

Я думаю, что вы можете использовать любой алгоритм сжатия, если вы пишете его в блоках, но в идеале я не хотел бы распаковывать целый блок за раз. Но если у вас есть предложения по простому способу сделать это и как узнать границы блоков, пожалуйста, дайте мне знать. Если это является частью вашего решения, пожалуйста, дайте мне знать, что вы делаете, когда данные, которые вы хотите прочитать, выходят за границы блока?

В контексте ваших ответов, пожалуйста, предположите, что размер рассматриваемого файла составляет 100 ГБ, и иногда я захочу прочитать первые 10 байтов, а иногда я захочу прочитать последние 19 байтов, а иногда я захочу прочитать 17 байты в середине.,

1 ответ

Решение

Разве эти люди никогда не слышали о "сжатых файловых системах", которые существовали с тех пор, как в 1993 году Stac Electronics подала в суд на Microsoft за технологию сжатых файловых систем?

Я слышал, что LZS и LZJB - популярные алгоритмы для людей, реализующих сжатые файловые системы, которые обязательно требуют как чтения с произвольным доступом, так и записи с произвольным доступом.

Возможно, самое простое и лучшее, что нужно сделать, - включить сжатие файловой системы для этого файла и позволить ОС разобраться с деталями. Но если вы настаиваете на том, чтобы обрабатывать его вручную, возможно, вы можете получить некоторые советы, прочитав о прозрачном сжатии файлов NTFS.

Другие вопросы по тегам