Компьютерное делопроизводство — Учебное пособие (Громов Е.С.)
7 архивация данных
Архивирование – упаковка (сжатие) папки, файла или группы файлов для того, чтобы уменьшить место, занимаемое ими на диске, при обмене информацией по сети Интернет, а также при создании резервных копий на магнитных лентах, дискетах или СD-дисках.
Архиваторами называют специальные программы (диспетчеры архивов), которые позволяют сжимать файлы, значительно уменьшая их в размере. Вместо одного или нескольких исходных файлов вы получаете один файл архива, в котором в сжатом виде находятся все файлы. В любой момент вы можете извлечь файлы из архива, восстановив их исходный размер.
Сжатие информации и размещение ее в архиве часто называют упаковкой, а обратная операция называется, соответственно, распаковкой. Поэтому архиваторы иногда называют упаковщиками. Таким образом, если кто-либо говорит об архивации, сжатии или упаковке, то речь идет об одной и той же операции.
Простой алгоритм сжатия информации позволяет заменять длинные последовательности одинаковых символов одним символом и количеством повторов. Одинаковая последовательность символов часто встречается при растровом кодировании изображения. При этом друг за другом следуют коды точек одинакового цвета, например, белого. Например, вместо строки «NNNNNNNNNNNNNNN» пишем 15«N».
Архиватор — что это такое! И как им пользоваться!
Видно, что такая запись занимает значительно меньше места. В современных архиваторах используются и другие, более сложные методы сжатия. Все методы основаны на статистике сжимаемой информации. Другими словами, наиболее часто встречаемые символы кодируются наименьшим числом бит. Соответственно, редко встречаемые символы кодируются более длинной последовательностью бит.
Большинство архиваторов пользуются несколькими методами одновременно, чем достигается наибольшая степень сжатия или сжатый размер файла по отношению к его исходному размеру. Существуют упаковщики, которые архивируют графические изображения с потерей информации, т.е. при распаковке получившийся рисунок не совсем совпадает с исходным, но отличия на глаз практически не заметны, при этом обеспечивается высокий коэффициент сжатия.
Основными характеристиками программ-архиваторов являются:
сервис (набор функций архиватора);
степень сжатия — отношение размера исходного файла к размеру упакованного файла.
Степень сжатия зависит от конкретной информации, которую надо сжимать. Лучше всего сжимаются текстовые файлы и рисунки. Но некоторые файлы так оптимально организованы, что их практически нельзя сжать. В среднем файлы можно сжать в полтора-два раза, хотя отдельные файлы сжимаются в сто раз и более.
Степень сжатия файла характеризуется коэффициентом Кс, отражающим процентное отношение объема сжатого файла Vс, к объему исходного файла V0:
Лучшие архиваторы позволяют реализовывать следующие функции:
создавать архивные файлы из отдельных (или всех) файлов текущего каталога и его подкаталогов, загружая в один архив до 32 000 файлов;
УРОК 24. Архивация файлов (7 класс)
добавлять файлы в архив;
извлекать и удалять файлы из архива;
просматривать содержимое архива;
просматривать содержимое архивированных файлов, осуществлять поиск строк в архивированных файлах;
вводить в архив комментарии к файлам, добавлять информацию о создателе архива, времени и дате последних изменений, внесенных в архив;
создавать многотомные архивы;
создавать самораспаковывающиеся архивы как в одном томе, так и в виде нескольких томов;
запоминать в архиве пути к файлам;
сохранять в архиве несколько поколений (версий) одного и того же файла;
переупорядочивать архивный файл по размерам файлов, именам, расширениям, дате и времени модификации, коэффициенту сжатия и др.;
обеспечивать защиту информации в архиве и доступ к файлам, помещенным в архив, защищать каждый из помещенных в архив файлов циклическим кодом;
тестировать архив, проверять сохранность в нем информации, в том числе и с помощью паролей-
восстанавливать файлы (частично или полностью) из разрушенных (поврежденных) архивов;
поддерживать типы архивов, созданных другими архиваторами. Например, архиватор оболочки FAR Manager 1.6 поддерживает 14 архивных форматов.
Наибольшее распространение имеют способы сжатия данных в форматах arj, zip и rar. Для операционной системы MS-DOS чаще всего используют программы Arj.exe, PKZip.exe/PKUNZip.exe или Rar.exe/UNRar.exe, а для Windows 95/98/NT — WinArj, WinZip или WinRar.
Почти все архиваторы позволяют создавать удобные самораспаковывающиеся архивы (SFX — Self-extracting-архивы) — файлы с расширением ехе. Для распаковки такого архива не требуется программы-архиватора, достаточно запустить архив *.ехе как программу. Многие архиваторы позволяют создавать многотомные (распределенные) архивы, которые могут размещаться на нескольких дискетах.
Наиболее часто используются архивы ARJ и ZIP. Программы ARJ.EXE, РКZIP.ЕХЕ, PKUNZIP.EXE, WinZip распространяются как Shareware — условно бесплатные. Это означает, что после того, как вы получили программу, попробовали ее в работе и решили использовать в дальнейшем, вы должны зарегистрировать эту программу, послав разработчику некоторую небольшую сумму денег, указанную в сопроводительных текстовых файлах. После этого разработчик пришлет вам копию программы, которая при запуске будет выдавать сообщение о том, что она зарегистрирована на ваше имя и используется на легальных основаниях.
Стоит упомянуть о так называемых невидимых архиваторах. Эти специальные программы сжимают все файлы на диске. Невидимыми эти архиваторы называются потому, что вы работаете так же, как и с обычным диском, и не знаете, что он сжат. Программа упаковывает информацию в момент записи на диск и распаковывает при чтении.
Практически вы работаете с диском большей емкости, но с меньшей скоростью работы. В последнее время винчестеры большого объема стоят не так дорого, поэтому лучше не использовать сжатие диска. Вы немного выиграете в свободном месте на диске, но потеряете в надежности хранения информации.
Современный архиватор WinZip для операционной системы Windows, который позволяет работать с архивами всех самых популярных форматов.
Архиватор ARJ.EXE — это одна из наиболее удобных и многофункциональных программ архивации.
Термин «архивация» не совсем точен. Главное назначение программ-архиваторов — сжатие файлов с целью экономии памяти. Поскольку со сжатыми файлами часто невозможно работать по их прямому назначению, их используют для хранения копий файлов, т.е. для их архивации. Сжатию (уплотнению) могут быть подвергнуты: файлы, папки, диски.
Сжатие файлов и папок необходимо либо для их транспортировки, либо для резервного копирования, либо для обмена информацией по сети Интернет. Уплотнение дисков применяют для повышения эффективности использования их рабочего пространства (обычно для дисков недостаточной емкости).
Существует много программ-архиваторов, имеющих различные показатели по степени и времени сжатия, эти показатели могут быть разными для различных файлов (текстовых, графических, исполняемых и т.д.), то есть один архиватор хорошо сжимает текстовый файл, а другой — исполняемый.
Архиватором (упаковщиком) называется программа, позволяющая за счет применения специальных методов сжатия информации создавать копии файлов меньшего размера, а также объединять копии нескольких файлов в один архивный файл, из которого можно при необходимости извлечь файлы в их первоначальном виде.
Весь спектр существующих сегодня архиваторов можно разделить на три группы, которые мы условно назовем файловыми, программными и дисковыми.
Файловые архиваторы позволяют упаковывать один или несколько файлов (например, все содержимое данного подкаталога вместе с вложенными в него подкаталогами) в единый архивный файл. Размер последнего, как правило, меньше, чем суммарный размер исходных файлов, но воспользоваться запакованными программами или данными, пока они находятся в архиве, нельзя, пока они не будут распакованы. Для распаковки архивного файла обычно используется тот же самый архиватор.
Программные архиваторы действуют иначе. Они позволяют упаковать за один прием один единственный файл — исполняемую программу ЕХЕ-типа, но зато так, что заархивированная программа будет сразу после ее запуска на исполнение самораспаковываться в оперативной памяти и тут же начинать работу.
Дисковые архиваторы позволяют программным способом увеличить доступное пространство на жестком диске. Типичный дисковый архиватор представляет собой резидентный драйвер, который незаметно для пользователя архивирует любую записываемую на диск информацию и распаковывает ее обратно при чтении. Однако операции чтения/записи файлов несколько замедляются, поскольку процессору требуется время для упаковки и распаковки.
Для архивирования используются специальные программы — архиваторы или диспетчеры архивов. Наиболее известные архиваторы: WinZip; WinRar; WinArj. Эти программы обеспечивают возможность использования и других архиваторов, поэтому, если на компьютере, куда перенесены сжатые в них файлы, отсутствуют указанные программы, архивы можно распаковать с помощью другого архиватора. До сих пор широко используются и соответствующие программы, созданные в MS DOS, но способные работать и в Windows.
Почти все архиваторы позволяют создавать удобные самораспаковывающиеся архивы (SFX – Self-extracting-архивы) – файлы с расширением .ехе. Для распаковки такого архива не требуется программы-архиватора, достаточно запустить архив *.ехе как программу. Многие архиваторы позволяют создавать многотомные (распределенные) архивы, которые могут размещаться на нескольких дискетах.
Основными характеристиками программ-архиваторов являются:
Источник: studfile.net
Кодеки новой эпохи: HEVC, AV1, VVC и нейросети
Хотя новые стандарты кодеков появляются каждые десять лет, все они основаны на пиксельной математике — манипулировании значениями отдельных пикселей в видеокадре для удаления информации, не важной для восприятия. Другие математические операции уменьшают объём данных после первоначального кодирования.
В новом поколении кодеков алгоритмы машинного обучения используются для анализа и понимания визуального содержания видео, выявления избыточных данных и более эффективного сжатия. Вместо написанных вручную алгоритмов, тут применяют методы Software 2.0, основанные на обучении. Данная область развивается на протяжении десятилетий, но в последние годы получила сильный толчок.
Все знают, что в 2017 году произошёл прорыв в разработке ИИ благодаря изобретению трансформеров. В свою очередь, они основаны на концепции внимания, которую придумали в 90-е. Эта техника впервые позволила соотносить друг с другом отдельные части текста или видеокадра.
Нейросеть при сжатии кадра видит его целиком и распознаёт объекты, в то время как традиционные кодеры работают на уровне макроблоков или фрагментов. Благодаря изобретению внимания, нейросеть получила «понимание» общей структуры входных данных, возможность уделять больше внимания одним частям и игнорировать другие. Это был качественный переход, результаты которого начинают появляться сейчас.
▍ Традиционные кодеки
Примечание. «Традиционные» не означает «устаревшие». На данный момент именно традиционные кодеки обеспечивают самое эффективное сжатие видео, причём с каждым новым кодеком коэффициент сжатия возрастает на десятки процентов. Нейросетевые кодеки (о них ниже) пока не доказали своё качество настолько, чтобы уверенно признавать будущее за ними. Пока что наилучший результат по качеству (PSNR) показывают гибридные модели — традиционные кодеки с нейросетевыми улучшениями, такие как NeutronStar и Night-Watch с декодерами по 100−300 МБ.
Кодек H.264 (AVC) отлично служил нам 20 лет, а благодаря свободной библиотеке OpenH264 кто угодно может его использовать без всяких условий и роялти. Но пришло время посмотреть на более современные альтернативы:
- H.265 (HEVC) — официальный наследник AVC пока не получил большого распространения на популярных платформах из-за необходимости платить лицензионные отчисления. Свободные проекты типа Firefox намеренно отказываются от его поддержки примерно по той же причине. HEVC разработан десять лет назад и уже рассматривается как кандидат на списание в утиль, так и не взлетев.
- AOMedia Video 1 (AV1) — свободная альтернатива HEVC, которую выпустил в 2018 году консорциум компаний во главе с Google в качестве замены предыдущему свободному кодеку VP9.
- H.266 (VVC), Versatile Video Coding — новый стандарт сжатия, опубликованный в июле 2020 года. Вычислительная сложность сжатия увеличилась в несколько раз (до десяти), по сравнению с HEVC, сложность декомпрессии выросла вдвое.
HEVC | 2 часа 34 минуты | 1 минута 14 секунд |
AV1 | 18 часов 54 минуты | 1 минута 42 секунды |
VVC | 2 дня 10 часов 35 минут | 2 минуты 42 секунды |
Наибольшей поддержкой индустрии пользуется AV1. Кажется, все крупнейшие видеоплатформы (YouTube, Netflix и проч.) пытаются внедрить поддержку этого свободного кодека, который по уровню сжатия превосходит платный HEVC.
Примечание: на разрешении 4K тесты показывают небольшое превосходство HEVC.
В то же время рабочие группы VCEG и MPEG тоже не спят в шапку. Выпустив H.266 (VVC), они сейчас параллельно работают над двумя кодеками нового поколения: Essential Video Coding (EVC) и Low Complexity Enhancement Video Coding (LCEVC), причём некоторое подмножество кодеков EVC (Type I) будет свободно от лицензионных отчислений.
▍ Netflix и ИИ-кодеки
В марте 2023 года компания Apple неожиданно купила стартап WaveOne, который разрабатывает ИИ-алгоритмы для сжатия видео.
Эта сделка дала определённый сигнал, в каком направлении развивается индустрия видеокомпрессии. Возможно, в будущем новые алгоритмы для оптимального сжатия будут создаваться по модели Software 2.0, то есть генерироваться в нейросетях. Если в двух словах, схема работает следующим образом: «Разработчик устанавливает цели и создаёт грубый скелет кода (т. е. архитектуру нейронной сети), который определяет подмножество программного пространства для поиска, а дальше использовать имеющиеся в его распоряжении вычислительные ресурсы для поиска в этом пространстве программы, которая работает». На выходе он получает программное обеспечение в виде весов для модели. Результат написания программы выглядит примерно так:
Новый подход позволит создавать принципиально более сложное ПО, недоступное для понимания человеку.
Кодеки для сжатия видео — одно из самых очевидных применений Software 2.0, потому что они и сейчас уже практически недоступны для понимания из-за своей сложности. То есть с использованием нейросетевого «чёрного ящика» ничего особо не изменится…
Если Apple вложилась в эту технологию, то она явно рассчитывает использовать её в своих многочисленных продуктах для видеообработки, а может, и в недавно представленном шлеме дополненной реальности. Кодеки такая вещь — если они действительно эффективно работают, то применение найдётся везде, где передаётся видеосигнал.
О технологии ИИ-кодеков WaveOne известно, что у неё алгоритм и кодек зависят от контента, то есть смыслового содержания кадра:
В рекламных материалах они приводят пример, где приоритет кодирования с повышенной детализацией отдаётся лицам и тексту, в то время как фон можно сжимать выше среднего.
Сразу после продажи Apple официальный сайт WaveOne был закрыт, но его можно посмотреть в веб-архиве. Там краткое описание сжатия с учётом тематики видео и семантики (конкретных объектов на видео). Приводятся ссылки на научные работы.
Очевидно, что при учёте контента коэффициент сжатия можно сильно повысить, а общее качество видео субъективно вырастет, поскольку области человеческого внимания будут максимально детализированы. Нужно только понять, куда направлено человеческое внимание при просмотре видео. Лица и текст — это самый очевидный вариант.
WaveOne — далеко не единственный стартап, который разрабатывает технологии сжатия видео с помощью ИИ. По мнению экспертов, сжатие с учётом смыслового контента (content-aware encoding, CAE) получило развитие после 2015 года, когда компания Netflix первой в мире внедрила технологию CAE-сжатия видеопотока.
Если кто-то смотрел эфир Netflix, то мог заметить специфическую компрессию без особых артефактов. Иногда создаётся впечатление, что видео вообще передаётся без сжатия, хотя это физически невозможно исходя из размера несжатых кадров, да и по трафику видно, что идёт сжатый поток.
Такого качества трудно добиться стандартными кодеками вроде H.264 и H.265. На самом деле это проприетарная технология CAE-сжатия Netflix, разработанная с помощью ИИ, в которой кодек генерируется для каждого фильма и даже для отдельных фрагментов (per-tile/per-chunk encoding).
Если взять видеопоток Netflix, закодировать его простым H.265/HEVC или AV1, то даже с максимальными настройками качества материал визуально испортится. Судя по всему, на торрентах не найдёшь кино с тем же качеством, что в эфире Netflix, как бы ни печально это было… Возможно, благодаря данному факту компания в своё время и нарастила клиентскую базу (и сократила расходы на трафик). Вот так ИИ-кодеки нового поколения используются в бизнесе уже сейчас, принося реальные деньги.
Сравнение одного кадра при кодировании разными кодеками, источник: WaveOne
По независимым тестам, качество CAE-кодеков пока уступает тому же AV1, не говоря уже о других кодеках с нейронным улучшением, типа NeutronStar и Night-Watch. Судя по всему, Netflix применяет их дополнительно к основным кодекам HEVC и AV1, чтобы сэкономить трафик и местами улучшить качество картинки. Например, поставить нейронный препроцессинг видеопотока, как делает стартап iSize.
Однако ИИ-кодек WaveOne визуально превосходит конкурентов на том же битрейте, хотя нейросеть ориентируется не на математические характеристики типа сигнал/шум (SNR), индекс структурного сходства (SSIM) и пиковое отношение сигнал/шум (PSNR), а конкретно на человеческое восприятие. Да, это субъективно. Но есть научный факт, что человек замечает малейшие искажения черт лица, но не обращает практически никакого внимания на остальные (фоновые) детали, поэтому сжатие с учётом контента имеет смысл.
К сожалению, Netflix не просто держит в секрете свои практики, но строжайше охраняет их как коммерческую тайну. Аналогично поступают Harmonic, WaveOne и другие стартапы в этой области. Как мы писали выше, Apple вообще удалила сайт с описанием технологии сразу после её покупки. Из-за этого замедляется общественный прогресс в создании CAE-кодеков нового поколения.
Дальнейший прогресс в сжатии видео (а потом — в области обычных архиваторов и другого ПО) тесно связан с прогрессом в области машинного обучения. Среди компаний, которые используют ИИ для улучшения стандартных кодеков, можно назвать Bitmovin, Beamr и NGCodec, которую купила AMD.
Возможно, в будущем мы увидим принципиально новые подходы к сжатию. Например, кодек Vnova понижает разрешение видео перед передачей, чтобы сэкономить трафик — и апскейлит его на стороне клиента, восстанавливая что-то похожее на оригинал, но в высоком разрешении. По такой логике, можно вообще передавать только текстовое описание и генерировать картинку на приёмном устройстве. Будем надеяться, до такого не дойдёт…
Источник: habr.com