что дает сжатие диска для экономии места

Эта опция в Windows 10 дает до 15% свободного места на диске

При нехватке места на диске в Windows 10 и более ранних версиях многие пользователи рассчитывают на флажок Сжать этот диск для экономии места. Разберемся, стоит ли его включать, и сколько гигабайт свободного места можно получить, в этой статье.

Как работает функция Сжать этот диск в Windows

Опция стала доступна при введении формата накопителя NTFS. На FAT она будет неактивна. При включении сжатия Windows на лету архивирует записываемые файлы. В некоторых случаях, например, для текстов, это дает заметную экономии дискового пространства. В случае видеороликов — почти никакой.

Эффективность сжатия подчиняется тому же закону, как и архивация. Используется похожий алгоритм.

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

Какой эффект дает включение Сжатия диска и когда его стоит включить

Проверить, сколько места освободит Windows, если вы включите Сжать диск для экономии места, можно самостоятельно. Войдите в свойства накопителя и установите эту галку.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Сжать можно только сам диск или все папки на нем.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

В моем случае на диске D хранятся видеоролики, игры. Эффект составил чуть меньше 20 Гб. В условиях моего SSD вна 256 Гб это серьезная цифра.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Сжатие диска C принесет меньше пользы. По следующим соображениям:

Для накопителей с данными, особенно редко используемыми, сжатие имеет смысл. Но тут стоит учитывать тип файлов. Тексты сжимаются эффективнее, фото и видео почти нет. А вот замедление чтения/записи гарантированно. Хотя оно может оказаться незаметным, если на компьютере стоит производительный процессор и достаточно оперативной памяти.

Источник

Что значит сжать диск для экономии места

В свойствах диска можно сжать его для экономии места. Что это за функция ещё стоит разобраться. Процессор должен обладать достаточной мощностью, чтобы сжатие и распаковка выполнялись незаметно. Сжатие может оказать положительное влияние на быстродействие.

Эта статья расскажет, что значит и как сжать диск для экономии места. Давайте разбираться на практике. Для всех дисков сжатие по умолчанию отключено. И большинство даже не знают о его существовании. Возможно, случайно увидели такую возможность и не знают, а стоит ли?

Сжать диск для экономии места. Что это?

Если же включить сжатие диска, Вы можете сэкономить место, однако без затрат не обойтись. Как ранее вспоминалось, сжатие использует вычислительную мощность центрального процессора. Каждый раз, когда Вы обращаетесь к файлу, он предварительно распаковывается.

Что нужно знать?

Важно! Ни в коем случае не сжимайте диск (C:). Сжатие системного раздела может привести к различным проблемам. Как в сбое драйверов, так и вплоть к работе Windows 10. Без переустановки системы не обойтись. Это будет проще, чем попытаться вручную устранить баги.

Как сжать диск для экономии места

На панели откройте Проводник или сразу Этот компьютер и выберите Свойства локального диска. На примере Локального диска (F:) установим отметку Сжать этот диск для экономии места.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Выберите, как сжать: Вы хотите применить это изменение только к диску F:\ или также ко всем вложенным папкам и файлам. Нас интересует именно К диску и ко всем вложенным папкам…

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Для тестирования был выбран малоиспользуемый раздел жёсткого диска, а именно F:\. Конечно же, его файловая система NTFS. Он используется как небольшое «облако». Для хранения резервных копий, старых работ и некоторых данных. Спустя 3 часа получилось:

ДоПосле
Занято:
67.8 Гб | 72 849 559 552 байт
Занято:
65.3 Гб | 70 207 975 424 байт
Свободно:
29.8 Гб l 32 008 036 352 байт
Свободно:
32.2 Гб | 34 649 620 480 байт
Локальный диск (F:) | Файловая система: NTFS | Объём: 97.6 Гб

Это ещё далеко не всё. Можно попробовать сжать отдельную папку. Например, папку Скрины игр смотрю раз в несколько лет, только чтобы поностальгировать… Открываем её Свойства > Другие атрибуты и ставим отметку Сжимать содержимое для экономии места на диске.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Функция сжатия содержимого сейчас бесполезна. Всё из-за доступности как обычных HDD, так и быстрых SSD накопителей. Скорость сжатия зависит от Вашего накопителя, мощности ЦП и количества данных. Все файлы перед последующим использованием будут расшифрованы!

Источник

Сжатие 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 — он-то нам и нужен:

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Выберите Компьютер в любом расположении ярлыка окна и появится знакомый вам список видимых системой томов. Нам остаётся снять галочку у атрибута Сжимать этот диск для экономии места нужного диска (он системный) из контекстного меню, проводя декомпрессию:

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Перезагружаемся (по необходимости несколько раз) и проверяем, пошла ли загрузка. Если нет, осталось вручную восстановить загрузочную запись.

Источник

Сжатие диска в Windows.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

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

На компьютерах с файловой системой NTFS имеется функция для сжатия файлов и каталогов (директорий, папок, дисков, томов), встроенная в операционную систему Windows. Благодаря этому, на жестком диске станет больше свободного места.

Давайте разберемся, что означает сжать диск, что будет, если сжать диск «С»? В этой ситуации не все так очевидно, как кажется на первый взгляд.

Сжать диск для экономии места: что это?

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

Windows перезаписывает данные, в итоге, они занимает меньше места на локальном диске. Вроде бы все нормально, но в этом есть свои нюансы:

Следует учесть, что если сжать системный раздел, то при частом сжатии увеличится фрагментация сжатых файлов, следовательно замедлится чтение и запись файлов, а это влияет на производительность работы системы.

Процесс сжатия диска занимает некоторое время, зависящее от величины места, которое занимают файлы на данном томе. Сжатие диска — обратимая операция. Пользователь может отменить сжатие тома, если в этом больше нет необходимости.

Учитывая все вышеизложенное, приходим к следующим выводам:

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

Можно ли сжимать диск «С»? Да, но делать это следует только в некоторых ситуациях. Например, если не хватает места для установки нужного обновления, или для получения на компьютер каких-то важных файлов из интернета.

После получения нужных данных, выполните очистку диска, а затем отключите сжатие тома в Windows.

В этом руководстве вы найдете несколько инструкций о том, как сжать жесткий диск несколькими способами, или как отменить сжатие диска, папки или файла.

Как сжать диск «С» на Windows из Проводника

Сейчас я покажу, как сжать диск «С» в Проводнике Windows. Предположим, что нам по каким-либо причинам потребовалось сжать системный диск на компьютере.

Выполните следующие действия:

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Здесь предложено два варианта сжатия:

По умолчанию активирована опция для применения изменений к диску и всем вложенным папкам и файлам.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

В результате применения сжатия, на диске появилось больше свободного места.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Процесс сжатия любого другого локального диска проводится аналогичным образом.

Как сжать файл или папку в командной строке

С помощью системного средства: командной строки пользователь может сжать папку или файл на диске компьютера.

Запустите командную строку от имени администратора.

Для сжатия папки со всем содержимым, в окне интерпретатора командной строки выполните команду:

Для выполнения сжатия файла выполните команду:

Как сжать папку или файл в Windows

В операционной системе Windows процесс сжатия папки или файла проходит подобным способом, похожим на сжатие диска.

Проделайте следующие действия:

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Здесь необходимо выбрать подходящий вариант:

После этого запустится процесс сжатия папки.

В окне Проводника на сжатых папках и файлах появятся знаки, предупреждающие о том, что данные элементы были сжаты.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Отмена сжатия диска из Проводника

Для отмены сжатия потребуется провести обратную операцию. Все действия почти идентичны тем, которые выполнялись при процессе сжатия.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Запрещение сжатия дисков из Редактора локальной групповой политики

В операционных системах Windows Pro (Профессиональной) Windows Enterprise (Корпоративной) пользователи могут воспользоваться системным инструментом: редактором локальной групповой политики, для запрещения сжатия всех дисков.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Для обратной операции: отмены запрета сжатия, войдите в настройки групповой политики, в окне «Запретить сжатие на всех томах NTFS» выберите параметр «Не задано».

Как отменить сжатие файла или папки

Пользователь имеет возможность в любой момент времени отменить сжатие папки или файла. Для этого необходимо выполнить следующие шаги:

Отмена сжатия папки или файла в командной строке

При помощи командной строки можно выполнить обратную операцию: отключить сжатие папки или файла.

Запустите командную строку от имени администратора.

Для отмены сжатия папки, выполните следующую команду:

Выполните эту команду для отмены сжатия отдельного файла:

Выводы статьи

Если пользователь сталкивается с необходимостью сжатия диска для экономии места, он может выполнить сжатие диска, сжать отдельную папку или файл, при помощи средств операционной системы Windows. Этими способами можно освободить немного дискового пространства на компьютере.

Источник

О странном методе экономии места на жестком диске

Очередной пользователь хочет записать на жесткий диск новый кусок данных, но ему не хватает свободного места для этого. Удалять тоже ничего не хочется, так как «все очень важное и нужное». И что нам с ним делать?

Такая проблема встает ни у него одного. На наших жестких дисках покоятся терабайты информации, и это количество не стремится уменьшаться. Но насколько она уникальна? В конце-концов, ведь все файлы это лишь наборы бит определенной длины и, скорее всего, новая не сильно отличается от той, что уже хранится.

Понятное дело, что искать уже хранящиеся куски информации на жестком диске — задача если не провальная, то как минимум не эффективная. С другой стороны, ведь если разница небольшая, то можно немного и подогнать.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

TL;DR — вторая попытка рассказать о странном методе оптимизации данных с помощью JPEG-файлов, теперь в более понятной форме.

О битах и разнице

Если взять два полностью случайных куска данных, то в них совпадает в среднем половина содержащихся битов. И правда, среди возможных раскладов для каждой пары (’00, 01, 10, 11′) ровно половина имеет совпадающие значения, тут все просто.

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

Между чем и чем тогда можно разницу устранять? Ну то есть, записываемый пользователем новый файл — просто последовательность бит, с которой самой по себе мы ничего сделать не можем. Тогда надо просто найти на жестком диске такие биты, чтобы их можно было изменять без необходимости хранить разницу, чтобы можно было пережить их потерю без серьезных последствий. Да и изменять есть смысл не просто сам файл на ФС, но какую-то менее чувствительную информацию внутри него. Но какую и как?

Методы подгонки

На помощь приходят файлы, сжатые с потерями. Все эти jpeg, mp3 и прочие хоть и являются сжатием с потерями, содержат кучу бит, доступных для безопасного изменения. Можно использовать продвинутые техники, незаметным образом модифицирующие их составляющие на различных участках кодирования. Подождите. Продвинутые техники… незаметная модификация… одни биты в другие… да это же почти что стеганография!

И правда, встраивание одной информации в другую как ни что напоминает ее методы. Импонирует также незаметность проведенных изменений для человеческих органов чувств. Вот в чем пути расходятся — так это в секретности: наша задача сводится к внесению пользователем на свой жесткий диск дополнительной информации, ему она только повредит. Забудет еще.

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

О шакалах

Если уж сжимать, то самое сжимаемое в мире. Речь идет, конечно же, о JPEG-файлах. Мало того, что существует тонна инструментария и существующих методов для встраивания в него данных, так он является самым популярным графическим форматом на этой планете.

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Тем не менее, чтобы не заниматься собаководством, нужно ограничить свое поле деятельности в файлах этого формата. Никто не любит одноцветные квадратики, возникающие из-за излишнего сжатия, поэтому нужно ограничиться работой с уже сжатым файлом, избегая перекодирования. Конкретнее — с целочисленными коэффициентами, которые и остаются после операций, отвечающих за потери данных — ДКП и квантования, что прекрасно отображено на схеме кодирования (спасибо вики национальной библиотеки им. Баумана):
что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Существует множество возможных методов оптимизации jpeg-файлов. Есть оптимизация без потерь (jpegtran), есть оптимизация «без потерь», которые на самом деле еще какие вносят, но нас они не волнуют. Ведь если пользователь готов встраивать одну информацию в другую ради увеличения свободного места на диске, то он свои изображения либо давно оптимизировал, либо совсем этого делать не хочет из-за боязни потери качества.

Под такое условия подходит целое семейство алгоритмов, с которым можно ознакомиться в этой хорошей презентации. Самым продвинутым из них является алгоритм F5 за авторством Андреаса Вестфелда, работающий с коэффициентами компоненты яркости, так как человеческий глаз наименее чувствителен именно к ее изменениям. Более того, он использует методику встраивания, основанную на кодировании матрицы, благодаря чему позволяет можно совершать тем меньше их изменений при встраивании одного и того же количества информации, чем больше размер используемого контейнера.

Сами изменения при этом сводятся к уменьшению абсолютного значения коэффициентов на единицу в определенных условиях (то есть, не всегда), что и позволяет использовать F5 для оптимизации хранения данных на жестком диске. Дело в том, что коэффициент после такого изменения, скорее всего, будет занимать меньшее число бит после проведения кодирования Хаффмана из-за статистического распределения значений в JPEG, а новые нули дадут выигрыш при кодировании их с помощью RLE.

Необходимые модификации сводятся к устранению части, отвечающей за секретность (парольной перестановки), которая позволяет экономить ресурсы и время выполнения, и добавления механизма работы с множеством файлов вместо одного за раз. Более подробно процесс изменения читателю вряд ли будет интересен, поэтому переходим к описанию реализации.

Высокие технологии

Для демонстрации работы такого подхода я реализовал метод на чистом Си и провел ряд оптимизаций как по скорости выполнения, так и по памяти (вы не представляете, сколько эти картиночки весят без сжатия даже до DCT). Кросс-платформенность достигнута использованием комбинации библиотек libjpeg, pcre и tinydir, за что им спасибо. Все это собирается ‘make»ом, поэтому пользователи Windows для оценки хотят установить себе какой-нибудь Cygwin, либо разбираться с Visual Studio и библиотеками самостоятельно.

Реализация доступна в форме консольной утилиты и библиотеки. Подробнее про использование последней желающие могут ознакомиться в ридми в репозитории на гитхабе, ссылку на который я приложу в конце поста.

Как использовать?

С осторожностью. Используемые для упаковки изображения выбираются поиском по регулярному выражению в заданной корневой директории. По завершению файлы можно перемещать, переименовывать и копировать по желанию в ее пределах, менять файловую и операционные системы и пр. Однако, стоит быть крайне аккуратным и никак не изменять непосредственное содержимое. Потеря значения даже одного бита может привести к невозможности восстановления информации.

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

Демонстрация работы

Чтобы показать эффективность работы метода, я загрузил коллекцию из 225 абсолютно бесплатных фотографий собак с сервиса Unsplash и отрыл в документах большую pdf-ку на 45 метров второго тома Искусства Программирования Кнута.

Последовательность довольно прост:

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Распакованный файл все еще можно и нужно читать:

что дает сжатие диска для экономии места. Смотреть фото что дает сжатие диска для экономии места. Смотреть картинку что дает сжатие диска для экономии места. Картинка про что дает сжатие диска для экономии места. Фото что дает сжатие диска для экономии места

Как видно, с исходных 633 + 36 == 669 мегабайт данных на жестком диске мы пришли к более приятным 551. Такая радикальная разница объясняется тем самым уменьшением значений коэффициентов, влияющим на их последующее сжатие без потерь: уменьшение одного всего лишь на единичку может спокойно «срезать» парочку байт с итогового файла. Тем не менее, это все равно потери данных, пусть и крайне небольшие, с которыми придется мириться.

К счастью, для глаза они не заметны абсолютно. Под спойлером (так как habrastorage не умеет в большие файлы) читатель может оценить разницу как на глаз, так и их интенсивность, полученную вычитанием значений измененной компоненты из оригинальной: оригинал, с информацией внутри, разница (чем тусклее цвет, тем меньше различие в блоке).

Вместо заключения

Смотря на все эти сложности, купить жесткий диск или залить все в облако может показаться куда более простым решением проблемы. Но хоть сейчас мы и живем в такое прекрасное время, нет никаких гарантий, что завтра все еще можно будет выйти в интернет и залить куда-нибудь все свои лишние данные. Или придти в магазин и купить себе очередной жесткий диск на тысячу терабайт. А вот использовать уже лежащие дома можно всегда.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *