Ответы пользователя по тегу Архивация данных
  • Разделить архив на 2 независимые части?

    saboteur_kiev
    @saboteur_kiev
    build engineer
    Никак.
    Современные архиваторы, как один из алгоритмов, используют в том числе и словари, то есть анализируя файл, повторяющиеся места сокращаются.
    Таким образом в первой половине файла есть данные, которые необходимы для распаковки оставшейся части файла. Извлечь кусок файла таким образом невозможно.
    Вам нужно изначально разбить файл на части, и запаковать их отдельными файлами.
    Ответ написан
  • Какой алгоритм сжатия данных использовать при архивации лог файлов?

    saboteur_kiev
    @saboteur_kiev
    build engineer
    "Стоит задача написать архиватор лог файлов"

    "Алгоритмов сжатия данных немало и у каждого своя спецификация.
    Как определить какой алгоритм сжатия данных нужно использовать для архивации файла, в котором много повторяющихся элементов?"

    У вас в задаче я не вижу требований, написать идеальный архиватор лог файлов.
    Вдобавок написать хотя бы простейший архиватор - уже нетривиальная задача для новичка, а судя по вопросу - вы новичок.

    Что я могу подсказать, так это свою догадку, что хотел ваш препод, но для этого нужно понять принципы алгоритмов сжатия по словарю - когда вы анализируете файл, находите в нем что-то похожее, составляете словарь похожих частей и сжимаете используя этот словарь.
    Так вот - в случае сжатия нескольких файлов, можно использовать словарь первого файла для сжатия второго и так далее.
    В архиваторах это называется solid архив.
    Его преимущество - меньший размер.
    Недостаток - при распаковке одного конкретного файла (например последнего), вам придется распаковать все предыдущие.
    Ответ написан
  • Какой формат архивов выбрать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    build engineer
    Воспользуйтесь проверенным архиавтором
    apt-get install rar

    Для множества файлов используйте solid (-s), для повышения сжатия используйте максимальное (-m5)
    rar a -ds -m5 -s -r myarchive /myfolder
    Ответ написан
  • Как решить проблему с tar incremental?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    build engineer
    Предположим у вас есть бэкапы
    1
    2
    3
    4

    Как очередной incremental бэкап должен узнать, что было забэкаплено в 2, 3, 4?
    Поэтому tar сохраняет мета-информацию.

    P.S. Виндовые архиваторы могут некорректно видеть содержимое .tar архива. Пользуйтесь портироавнным tar.
    Ответ написан
  • Как думаете, тексты, сжатые с помощью zlib сейчас, получится распаковать через 100 лет?

    saboteur_kiev
    @saboteur_kiev
    build engineer
    Конечно да.
    Все, что было сжато 100 лет назад, сейчас успешно разжимается, не говоря уж о том, что было сжато в 80-90е.
    Ответ написан
  • За счет чего достигается такой высокий уровень сжатия?

    saboteur_kiev
    @saboteur_kiev
    build engineer
    Есть хаос и есть порядок.
    Чем больше упорядоченной информации в файлах, тем больше закономерностей можно вычислить и сжать их до уровня хаоса.
    Ничего кардинально нового не придумали,

    Можете просто любым hexview-ером посмотреть что внутри файлов - уверен там просто удачно подобрались файлы с кучей нулей и повторов информации.
    Ответ написан
  • Как разархивировать rar архив с помощью cuda?

    saboteur_kiev
    @saboteur_kiev
    build engineer
    Пока что никто такое не делает.
    Для создания алгоритма архивации нужен именно CPU а не GPU. Тех задач, которые может посчитать GPU в процессе архивирования не так уж и много. То есть если алгоритм и реализовать, выхлоп будет ну 30-40%. Просто задачи не те.

    Зато какие минусы:
    Нестабильная работа на разных компах, поскольку видяшки все разные, частоты разные, синхронизация и вообще API для работы с GPU постоянно меняется. Для nvidia и ATI надо писать совершенно разное, и архиватор должен определять кучи моделей карт, чтобы знать чем пользоваться а чем нет.
    Основной приток производительности в GPU идет от распарралеливания однотипных процессов, в то время как для архивации важно учитывать все, что было сжато до, чтобы использовать это для дальнейшего сжатия.
    Грубо говоря: если для того, чтобы на экране нам нужно сделать эффект размытия, мы можем поделить экран на 100 кусочков и каждый размыть отдельно в отдельном потоке на GPU. Если же мы разделим на 100 кусочков архивируемый файл, и каждый кусочек будет архивировать отдельно, мы не сможем пользоваться наработками по первым кускам, чтобы благодаря обработанным данным сжать послеюущие. Парралелить процесс архивации получается крайне плохо, из-за этого смысл использования GPU отпадает. Нужно же понимать, что GPU это не супербыстрая железка, а железка, которая хорошо заточена под определенные задачи.

    Конечно попытки реализовать отдельные алгоритмы архивации есть, но из-за вышеупомянутого, степень сжатия очень маленькая, потому что можно реализовать только простые алгоритмы на кусках данных. Полноценный алгоритм, как в winrar полностью перенести в GPU невозможно, поэтому CUDA-архиваторы пока существуют просто в виде тестовых программок разных любителей попробовать, и до полноценного архиватора они не дотягивают.
    Ответ написан