Сжатие файлов на что влияет
Сжатие Windows: файлы, папки и диски. Ошибки сжатия.
Во времена моей юности сжатие являлось чуть ли не самой обращаемой к ней функцией — диски по 7 — 20 гБ никак не могли вместить в себя всю нужную информацию. И именно для этого сжатие и существует: освободить место на жёстком диске. Когда вы сжимаете файл или папку, данные, используя специальный алгоритм Windows, перезаписываются и после операции занимают меньшее количество кластеров. При обращении к файлу в следующем сеансе система производит обратный процесс, перед тем как вы сможете увидеть хоть бит нужной информации. А на это, как понимаете, нужно время и ресурсы системы.
Функция сжатия файлов с момента появления Windows находилась в составе утилиты очистки дисков. Но со времён Windows 7 перекочевала в отдельную струю: разработчики посчитали, что проблем с нехваткой пространства компьютера стало меньше, да и сжатие огромного количества файлов сильно замедляет функционал Windows: при активации этой функции система сжимала все файлы подряд, а это значит там могли оказаться и жизненно важные параметры, к которым обращение во время текущего сеанса сиюминутно… Сейчас освободить пространство легко с помощью других утилит, которые работают в другом направлении, отыскивая мусорные файлы и/или проводя дефрагментацию. В конце концов, любая программа-архиватор умеет гораздо больше, чем описываемая функция. Однако она есть, знакомимся с ней.
Кстати
Функция и подход к сжатию в Windows 10 серьёзно изменился и, кажется (пока, по крайней мере) в куда более лучшую сторону. Но об этом отдельной статьёй.
Пару абзацев теории…
Файловая система NTFS использует параметр «единица сжатия» с целью определить степень разбиения, гранулярности потока байтового диапазона, а также их выравнивание или группирование по блокам. Размер этой самой единицы зависит только от размера кластера в системе NTFS. До последнего момента для расчёта размера кластера используется такая таблица:
Как видите, начиная с определённого момента начинаются исключения: «родное» NTFS-сжатие перестаёт работать на томах и разделах, размер кластера которых выбран более чем 4 КБ. Для размеров от 8 КБ начинает использоваться сжатие для разреженных файлов. Такие файлы — очередной конёк файловой системы NTFS, который позволяет создавать приложениям файлы очень больших размеров, которые, как это ни странно звучит, могут превышать размер родительской директории. Это происходит потому, что львиная доля содержимого таких файлов (а порой и полностью) заполняется нолями или нолевыми цепочками. При этом файловая система логические кластеры таким цепочкам не предоставляет. А NTFS создаёт лишь «указатель места заполнения виртуального количества кластеров». Причём здесь сжатие? NTFS, работая над сжатием файла или папки, разделяет поток данных по тому же принципу. При этом процесс сжатия для каждого файла индивидуален; степень сжатия и последующие с файлом операции очень зависят от его реального размера.
Сжатие файлов и папок
Функция доступна из контекстного меню по нажатии правой мышкой по нужному файлу/папке. Она здесь:
Активируем функцию, сжатие началось. После этого можно будет заставить Windows подсвечивать сжатые файлы. Это же легко проделать с целым диском. Найдём в Windows Explorer список томов и также вызовем контекстное меню правой мышкой:
Сжатие дисков и файлов. О чём нужно знать?
Сжатие. Чего делать нельзя.
Как вы уже поняли, сжатие Windows — это не та функция, с которой стоит баловаться. Однако понимание функции сжатия (хотя бы в пределах абзацев вверху статьи) может помочь вам определить корень появившихся ошибок. Самые типичные из них, и в этом может быть вина именно функции сжатия:
Не сжимайте диск с установленной на ней операционной системой! Системный диск С: подвергать этой процедуре нельзя. Чаще всего от этого страдают драйверы устройств, отказывая в запуске целому набору устройств, только что, казалось бы, работавших. После окончания процедуры сжатия операционная система в новом сеансе, скорее всего, уже не загрузится. Но если — не знаю, что вас заставило — вы на это решитесь, не трогайте хотя бы корневые директории.
После сжатия система не загружается…
Если я с советами опоздал, и вы уже столкнулись с отказом запуска системы после сжатия, знайте, что сжатыми оказались те немногие, но архиважные для загрузки системы файлы. А во время запуска системы процедура «де-сжатия» не предусмотрена. Как итог: система не запускается или идёт постоянный перезапуск Windows. Возможно появление ошибок типа
«Какой-то там файл» is compressed
Press Ctrl+Alt+Del to restart
Самый простой способ, который не всегда, к сожалению, работает, это загрузочный диск с Windows. Если его под рукой нет, его вполне легально можно скачать из сети (начиная с версии 7 и позднее), имея рабочий компьютер и выход в сеть. Вот утилита, которая вам в этом поможет (а вот здесь я восстанавливаю Windows после повреждения с её помощью):
Я в таких случаях всегда пользуюсь универсальным вариантом — это внешний бокс с установленным внутри жёстким диском, на котором всегда наготове целая куча образов загрузочных дисков Windows любой модели и разрядности: от Windows XP до Win10 32-х и 64-х. И не парюсь по поводу бесчисленных дисков и флешек.
выберите язык и в окне установки выберите пункт Восстановление системы:
Утилита найдёт вашу систему, продолжите кнопкой Загрузить драйверы:
Появится окно с выбором места хранения драйверов и по нажатии кнопки ОК появится Проводник Windows — он-то нам и нужен:
Выберите Компьютер в любом расположении ярлыка окна и появится знакомый вам список видимых системой томов. Нам остаётся снять галочку у атрибута Сжимать этот диск для экономии места нужного диска (он системный) из контекстного меню, проводя декомпрессию:
Перезагружаемся (по необходимости несколько раз) и проверяем, пошла ли загрузка. Если нет, осталось вручную восстановить загрузочную запись.
Простым языком о том, как работает сжатие файлов
Авторизуйтесь
Простым языком о том, как работает сжатие файлов
Сжатие файлов позволяет быстрее передавать, получать и хранить большие файлы. Оно используется повсеместно и наверняка хорошая вам знакомо: самые популярные расширения сжатых файлов — ZIP, JPEG и MP3. В этой статье кратко рассмотрим основные виды сжатия файлов и принципы их работы.
Что такое сжатие?
Сжатие файла — это уменьшение его размера при сохранении исходных данных. В этом случае файл занимает меньше места на устройстве, что также облегчает его хранение и передачу через интернет или другим способом. Важно отметить, что сжатие не безгранично и обычно делится на два основных типа: с потерями и без потерь. Рассмотрим каждый из них по отдельности.
Сжатие с потерями
Такой способ уменьшает размер файла, удаляя ненужные биты информации. Чаще всего встречается в форматах изображений, видео и аудио, где нет необходимости в идеальном представлении исходного медиа. MP3 и JPEG — два популярных примера. Но сжатие с потерями не совсем подходит для файлов, где важна вся информация. Например, в текстовом файле или электронной таблице оно приведёт к искажённому выводу.
MP3 содержит не всю аудиоинформацию из оригинальной записи. Этот формат исключает некоторые звуки, которые люди не слышат. Вы заметите, что они пропали, только на профессиональном оборудовании с очень высоким качеством звука, поэтому для обычного использования удаление этой информации позволит уменьшить размер файла практически без недостатков.
13–15 декабря, Онлайн, Беcплатно
Аналогично файлы JPEG удаляют некритичные части изображений. Например, в изображении с голубым небом сжатие JPEG может изменить все пиксели на один или два оттенка синего вместо десятков.
Чем сильнее вы сжимаете файл, тем заметнее становится снижение качества. Вы, вероятно, замечали такое, слушая некачественную музыку в формате MP3, загруженную на YouTube. Например, сравните музыкальный трек высокого качества с сильно сжатой версией той же песни.
Сжатие с потерями подходит, когда файл содержит больше информации, чем нужно для ваших целей. Например, у вас есть огромный файл с исходным (RAW) изображением. Целесообразно сохранить это качество для печати изображения на большом баннере, но загружать исходный файл в Facebook будет бессмысленно. Картинка содержит множество данных, не заметных при просмотре в социальных сетях. Сжатие картинки в высококачественный JPEG исключает некоторую информацию, но изображение выглядит почти как оригинал.
При сохранении в формате с потерями, вы зачастую можете установить уровень качества. Например, у многих графических редакторов есть ползунок для выбора качества JPEG от 0 до 100. Экономия на уровне 90 или 80 процентов приводит к небольшому уменьшению размера файла с незначительной визуальной разницей. Но сохранение в плохом качестве или повторное сохранение одного и того же файла в формате с потерями ухудшит его.
Посмотрите на этот пример.
Оригинальное изображение, загруженное с Pixabay в формате JPEG. 874 КБ:
Результат сохранения в формате JPEG с 50-процентным качеством. Выглядит не так уж плохо. Вы можете заметить артефакты по краям коробок только при увеличении. 310 КБ:
Исходное изображение, сохранённое в формате JPEG с 10-процентным качеством. Выглядит ужасно. 100 КБ:
Где используется сжатие с потерями
Как мы уже упоминали, сжатие с потерями отлично подходит для большинства медиафайлов. Это крайне важно для таких компаний как Spotify и Netflix, которые постоянно транслируют большие объёмы информации. Максимальное уменьшение размера файла при сохранении качества делает их работу более эффективной.
Сжатие без потерь
Сжатие без потерь позволяет уменьшить размер файла так, чтобы в дальнейшем можно было восстановить первоначальное качество. В отличие от сжатия с потерями, этот способ не удаляет никакую информацию. Рассмотрим простой пример. На картинке ниже стопка из 10 кирпичей: два синих, пять жёлтых и три красных.
Вместо того чтобы показывать все 10 блоков, мы можем удалить все кирпичи одного цвета, кроме одного. Используя цифры, чтобы показать, сколько кирпичей каждого цвета было, мы представляем те же данные используя гораздо меньше кирпичей — три вместо десяти.
Это простая иллюстрация того, как осуществить сжатие без потерь. Та же информация сохраняется более эффективным способом. Рассмотрим реальный файл: mmmmmuuuuuuuoooooooooooo. Его можно сжать до гораздо более короткой формы: m5u7o12. Это позволяет использовать 7 символов вместо 24 для представления одних и тех же данных.
Где используется сжатие без потерь
ZIP-файлы — популярный пример сжатия без потерь. Хранить информацию в виде ZIP-файлов более эффективно, при этом когда вы распаковываете архив, там присутствует вся оригинальная информация. Это актуально для исполняемых файлов, так как после сжатия с потерями распакованная версия будет повреждена и непригодна для использования.
Другие распространённые форматы без потерь — PNG для изображений и FLAC для аудио. Форматы видео без потерь встречаются редко, потому что они занимают много места.
Сжатие с потерями vs сжатие без потерь
Теперь, когда мы рассмотрели обе формы сжатия файлов, может возникнуть вопрос, когда и какую следует использовать. Здесь всё зависит от того, для чего вы используете файлы.
Скажем, вы только что откопали свою старую коллекцию компакт-дисков и хотите оцифровать её. Когда вы копируете свои компакт-диски, имеет смысл использовать формат FLAC, формат без потерь. Это позволяет получить мастер-копию на компьютере, которая обладает тем же качеством звука, что и оригинальный компакт-диск.
Позже вы, возможно, захотите загрузить музыку на телефон или старый MP3-плеер. Здесь не так важно, чтобы музыка была в идеальном качестве, поэтому вы можете конвертировать файлы FLAC в MP3. Это даст вам аудиофайл, который по-прежнему достаточно хорош для прослушивания, но не занимает много места на мобильном устройстве. Качество MP3, преобразованного из FLAC, будет таким же, как если бы вы создали сжатый MP3 с оригинального CD.
Тип данных, представленных в файле, также может определять, какой вид сжатия подходит больше. В PNG используется сжатие без потерь, поэтому его хорошо использовать для изображений, в которых много однотонного пространства. Например, для скриншотов. Но PNG занимает гораздо больше места, когда картинка состоит из смеси множества цветов, как в случае с фотографиями. В этом случае с точки зрения размера файлов лучше использовать JPEG.
Проблемы во время сжатия файлов
Бесполезно конвертировать формат с потерями в формат без потерь. Это пустая трата пространства. Скажем, у вас есть MP3-файл весом в 3 МБ. Преобразование его в FLAC может привести к увеличению размера до 30 МБ. Но эти 30 МБ содержат только те звуки, которые имел уже сжатый MP3. Качество звука от этого не улучшится, но объём станет больше.
Также стоит иметь в виду, что преобразовывая один формат с потерями в аналогичный, вы получаете дальнейшее снижение качества. Каждый раз, когда вы применяете сжатие с потерями, вы теряете больше деталей. Это становится всё более и более заметно, пока файл по существу не будет разрушен. Помните также, что форматы с потерями удаляют некоторые данные и их невозможно восстановить.
Заключение
Мы рассмотрели как сжатие файлов с потерями, так и без потерь, чтобы увидеть, как они работают. Теперь вы знаете, как можно уменьшить размер файла и как выбрать лучший способ для этого.
Алгоритмы, которые определяют, какие данные выбрасываются в методах с потерями и как лучше хранить избыточные данные при сжатии без потерь, намного сложнее, чем описано здесь. На эту тему можно почитать больше информации здесь, если вам интересно.
Что такое сжатие файлов?
От чего зависит сжатие файла?
От чего зависит сжатие файла? Это одно из самых простых действий, которое может сделать пользователь, для того чтобы уменьшить размер файла, что такое сжатие изображения и как настроить, мы уже знаем. Сжатие используется для:
В целом, сжатие данных это алгоритм, который позволяет избавиться от избытка исходных данных, которые содержаться в исходном файле. Есть такое понятие, как сжатый атрибут. Это один из методов сжатия файла. Такое сжатие помогает сохранить место в хранилище.
Для осуществления данного способа есть несколько способов. В персональных компьютерах есть автоматическая опция для показа сжатых файлов. При его использовании данные исходного файла не утрачиваются, и он воспроизводится как обычный файл.
Распаковка файла осуществляется за счет возможностей Windows. Но при закрытии файл сжимается снова. Это значительная экономия памяти. Лучше сжимать файлы, которые практически не используются.
Размер памяти современных ПК позволяет хранить большой объем информации, поэтому нет необходимости в компрессии, об этом подробнее можно на курсах SEO с нуля можно узнать.
Файлы, которыми нужно пользоваться часто лучше не сжимать, т.к. распаковка потребует дополнительной вычислительной мощности. Использовать сжатие можно с помощью проводника и командной строки.
От чего зависит степень сжатия файлов?
От чего зависит степень сжатия файлов? Зависит данный показатель от множества факторов. Например, программы, которая используется для уменьшения, метод, тип исходника. Самая большая степень сжатия у фотографий, текстовых файлов. Самая меньшая степень сжатия – у загрузочных модулей и программ. Архивы практически не поддаются сжатию.
Степень сжатия – это основной параметр архивации. Есть специальная формула, которая характеризует степень сжатия. Есть специальные программы, которые помогают создавать архивы. Такие программы позволяют избавиться от лишней информации исходника:
Сжать можно сразу несколько файлов одновременно. Архив – это файл, который может содержать большое количество файлов. Вся информация, которая касается файлов тоже храниться в архиве. Для формирования архивов можно обратиться за помощью к специалистам IT и продвижения SEO, они всегда смогут помочь.
Для чего используется сжатие файлов?
Для чего используется сжатие файлов? К архивации прибегают в нескольких случаях. Например, для сохранения свободного места в хранилище устройства.
Меньший объем файлов позволяет не только их проще хранить, но и без труда переносить с устройства на устройство. При ведении контекстной рекламы Яндекс тоже можно использовать сжатые файлы, например, изображения.
Время копирования заархивированных файлов кратно меньше. К тому же, такие файлы больше защищены, как от взлома, так и от компьютерных вирусов. Коэффициент сжатия можно вычислить по формуле.
Где объем сжатого файла делится на объем исходника, затем умножается на 100%. В итоге получается степень сжатия. Заархивированные файлы можно как упаковать, так и распаковать. Если файлы даже в архиве очень большие, то хранить их можно на нескольких дисках, которые называют томами.
За счет чего происходит сжатие файлов?
За счет чего происходит сжатие файлов? Посмотрим, какие программы помогают уменьшать объем исходников. Есть не менее десятка специализированных программ. У каждой есть свой набор специальных функций. Производители подобных программ есть как за рубежом, так и в России.
Чаще всего упаковка и распаковка фалов проводится одной программой, но бывает и так, что для каждой операции своя. Есть файлы, которые обладают свойством самораспаковывания. Суть в том, что исполняемый модуль способен к саморазархивации.
Чаще всего при распаковке файлов программы сохраняют его на жесткий диск. Но есть и программы, которые создают упакованный исполняемый модуль. При этом в программном файле сохраняется имя и расширение, он загружается на жесткий диск, распаковывается и после этого начинает работать. После работы можно вернуть его обратно в архив.
Программы архиваторы помогают архивировать файлы, просматривать их, создавать архивы из большого количества томов. Архивные файлы можно протестировать, они позволяют вводить комментарии. В архиве можно хранить несколько версий исходника.
Что даёт сжатие файлов?
Что дает сжатие файлов? Сейчас люди обмениваются большим количеством информации. Информация обновляется постоянно. Старая информация заменяет новую, большинство данных приходится сохранять. Для того чтобы она не занимала много места на устройствах хранения лучше запаковывать файлы в архив. Есть специальные облачные хостинги что это такое, мы уже знаем.
При сжатии нужно руководствоваться тем, что файл сохранит свои исходные показатели по качеству, информативности, цветопередаче и т.д. Сжатие используется, например, при загрузке файлов в социальных сетях, где есть лимит по тяжести загруженных файлов.
Сжатые файлы используются в деловых переписках, особенно если у получателя на корпоративном сервере есть лимит по объему полученной информации в одном письме. Архивирование используется для сохранения памяти на устройствах.
Алгоритмы сжатия данных без потерь
Часть первая – историческая.
Введение
История
Иерархия алгоритмов:
Хотя сжатие данных получило широкое распространение вместе с интернетом и после изобретения алгоритмов Лемпелем и Зивом (алгоритмы LZ), можно привести несколько более ранних примеров сжатия. Морзе, изобретая свой код в 1838 году, разумно назначил самым часто используемым буквам в английском языке, “e” и “t”, самые короткие последовательности (точка и тире соотв.). Вскоре после появления мейнфреймов в 1949 году был придуман алгоритм Шеннона — Фано, который назначал символам в блоке данных коды, основываясь на вероятности их появления в блоке. Вероятность появления символа в блоке была обратно пропорциональна длине кода, что позволяло сжать представление данных.
Дэвид Хаффман был студентом в классе у Роберта Фано и в качестве учебной работы выбрал поиск улучшенного метода бинарного кодирования данных. В результате ему удалось улучшить алгоритм Шеннона-Фано.
Ранние версии алгоритмов Шеннона-Фано и Хаффмана использовали заранее определённые коды. Позже для этого стали использовать коды, созданные динамически на основе данных, предназначаемых для сжатия. В 1977 году Лемпель и Зив опубликовали свой алгоритм LZ77, основанный на использования динамически создаваемого словаря (его ещё называют «скользящим окном»). В 78 году они опубликовали алгоритм LZ78, который сначала парсит данные и создаёт словарь, вместо того, чтобы создавать его динамически.
Проблемы с правами
Рост популярности Deflate
Большие корпорации использовали алгоритмы сжатия для хранения всё увеличивавшихся массивов данных, но истинное распространение алгоритмов произошло с рождением интернета в конце 80-х. Пропускная способность каналов была чрезвычайно узкой. Для сжатия данных, передаваемых по сети, были придуманы форматы ZIP, GIF и PNG.
Том Хендерсон придумал и выпустил первый коммерчески успешный архиватор ARC в 1985 году (компания System Enhancement Associates). ARC была популярной среди пользователей BBS, т.к. она одна из первых могла сжимать несколько файлов в архив, к тому же исходники её были открыты. ARC использовала модифицированный алгоритм LZW.
Фил Катц, вдохновлённый популярностью ARC, выпустил программу PKARC в формате shareware, в которой улучшил алгоритмы сжатия, переписав их на Ассемблере. Однако, был засужен Хендерсоном и был признан виновным. PKARC настолько открыто копировала ARC, что иногда даже повторялись опечатки в комментариях к исходному коду.
Но Фил Катц не растерялся, и в 1989 году сильно изменил архиватор и выпустил PKZIP. После того, как его атаковали уже в связи с патентом на алгоритм LZW, он изменил и базовый алгоритм на новый, под названием IMPLODE. Вновь формат был заменён в 1993 году с выходом PKZIP 2.0, и заменой стал DEFLATE. Среди новых возможностей была функция разбиения архива на тома. Эта версия до сих пор повсеместно используется, несмотря на почтенный возраст.
Формат изображений GIF (Graphics Interchange Format) был создан компанией CompuServe в 1987. Как известно, формат поддерживает сжатие изображения без потерь, и ограничен палитрой в 256 цветов. Несмотря на все потуги Unisys, ей не удалось остановить распространение этого формата. Он до сих пор популярен, особенно в связи с поддержкой анимации.
Слегка взволнованная патентными проблемами, компания CompuServe в 1994 году выпустила формат Portable Network Graphics (PNG). Как и ZIP, она использовала новый модный алгоритм DEFLATE. Хотя DEFLATE был запатентован Катцем, он не стал предъявлять никаких претензий.
Сейчас это самый популярный алгоритм сжатия. Кроме PNG и ZIP он используется в gzip, HTTP, SSL и других технологиях передачи данных.
К сожалению Фил Катц не дожил до триумфа DEFLATE, он умер от алкоголизма в 2000 году в возрасте 37 лет. Граждане – чрезмерное употребление алкоголя опасно для вашего здоровья! Вы можете не дожить до своего триумфа!
Современные архиваторы
ZIP царствовал безраздельно до середины 90-х, однако в 1993 году простой русский гений Евгений Рошал придумал свой формат и алгоритм RAR. Последние его версии основаны на алгоритмах PPM и LZSS. Сейчас ZIP, пожалуй, самый распространённый из форматов, RAR – до недавнего времени был стандартом для распространения различного малолегального контента через интернет (благодаря увеличению пропускной способности всё чаще файлы распространяются без архивации), а 7zip используется как формат с наилучшим сжатием при приемлемом времени работы. В мире UNIX используется связка tar + gzip (gzip — архиватор, а tar объединяет несколько файлов в один, т.к. gzip этого не умеет).
Прим. перев. Лично я, кроме перечисленных, сталкивался ещё с архиватором ARJ (Archived by Robert Jung), который был популярен в 90-х в эру BBS. Он поддерживал многотомные архивы, и так же, как после него RAR, использовался для распространения игр и прочего вареза. Ещё был архиватор HA от Harri Hirvola, который использовал сжатие HSC (не нашёл внятных объяснений — только «модель ограниченного контекста и арифметическое кодирование»), который хорошо справлялся со сжатием длинных текстовых файлов.
В 1996 году появился вариант алгоритма BWT с открытыми исходниками bzip2, и быстро приобрёл популярность. В 1999 году появилась программа 7-zip с форматом 7z. По сжатию она соперничает с RAR, её преимуществом является открытость, а также возможность выбора между алгоритмами bzip2, LZMA, LZMA2 и PPMd.
В 2002 году появился ещё один архиватор, PAQ. Автор Мэтт Махоуни использовал улучшенную версию алгоритма PPM с использованием техники под названием «контекстное смешивание». Она позволяет использовать больше одной статистической модели, чтобы улучшить предсказание по частоте появления символов.
Будущее алгоритмов сжатия
Конечно, бог его знает, но судя по всему, алгоритм PAQ набирает популярность благодаря очень хорошей степени сжатия (хотя и работает он очень медленно). Но благодаря увеличению быстродействия компьютеров скорость работы становится менее критичной.
С другой стороны, алгоритм Лемпеля-Зива –Маркова LZMA представляет собой компромисс между скоростью и степенью сжатия и может породить много интересных ответвлений.
Ещё одна интересная технология «substring enumeration» или CSE, которая пока мало используется в программах.
В следующей части мы рассмотрим техническую сторону упомянутых алгоритмов и принципы их работы.