Рубрика «сжатие» - 2

Доброго утра Хабру. Читал вчера статью о хэш-стеганографии через социальные сети, и пришла мне в голову мысль сделать что-то более оптимальное в плане объёма выходных данных. Получилось что-то более-менее работоспособное и даже оптимизированное (в отличие от proof-of-concept romabibi), поэтому, как и обещал, пишу статью.

Что ж, поздороваюсь с вами ещё раз: Стойкое шифрование данных в PNG - 1, и добро пожаловать под кат.
Читать полностью »

Сегодня в магазинах приложений для платформ iOS и Android существует ограничение на размер приложения в 100 МБ. Магазин Apple для приложений, которые не укладываются в этот лимит, запрещает закачку при помощи мобильного интернета. В  Google Play же это строгий лимит на размер APK – все, что не укладывается в него, должно быть вынесено в файлы дополнений. Для пользователей с платным трафиком закачка большого приложения может быть довольно затратной, поэтому его размер нужно стараться уменьшить всеми силами.

Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения - 1


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

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

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

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

Некоторое время назад мне потребовалось сжимать данные прямо в памяти, причём не использовать для этого ничего стороннего — т.е. пользоваться встроенными в систему возможностями. Выбор пал на Cabinet.dll в качестве средства для сжатия данных и на интерфейс IStream для работы с данными в памяти. Ничего подобного в интернете я не нашёл, поэтому решил поделиться наработками.Читать полностью »

Контринтуитивный метаматериал может привести к созданию теплоустойчивых электронных схем

Распечатанные на 3D-принтере структуры сжимаются при нагреве - 1

Практически все твёрдые материалы, от резины и стекла до гранита и стали, расширяются при нагревании. Лишь в очень редких случаях определённые материалы идут против системы и сжимаются при нагреве. К примеру, холодная вода сжимается, если её нагревать от 0 до 4 градусов Цельсия, до того, как начать расширяться.

Инженеры MIT и Южно-калифорнийского университета внесли новое добавление в этот класс странных материалов. Команда под руководством Николаса Фанга [Nicholas X. Fang], адъюнкт-профессора инженерной механики из MIT создала звездообразные структуры, состоящие из соединённых перекладин, или ферм. Эти структуры размером с кубик сахара быстро сжимаются, будучи нагретыми до 282 градусов Цельсия.
Читать полностью »

ZSON: расширение PostgreSQL для прозрачного сжатия JSONB - 1

Недавно мы выложили на GitHub ZSON. ZSON — это расширение к PostgreSQL для прозрачного сжатия JSONB-документов. Сжатие осуществляется путем выделения строк, наиболее часто встречающихся в ваших документах, и построения словаря с этими строками. Притом строки могут быть не только ключами документа, но и значениями или, например, строками из вложенных массивов. В некоторых случаях ZSON позволяет уменьшить размер базы до двух раз и увеличить количество транзакций в секунду на 10%. В shared buffers документы хранятся в сжатом виде, за счет чего память тоже экономится.

Интересно? Читайте дальше, и вы узнаете, как пользоваться всем этим хозяйством на практике.
Читать полностью »

Назовите самый лучший формат сжатия текстур. Может это PNG, ETC, PVRTC, S3TC, или ещё какой-нибудь? Вопрос непростой, но очень важный. От ответа зависят качество визуального оформления, скорость работы и размеры Android-приложений. Дело осложняется тем, что универсального «самого лучшего формата» попросту не существует. Всё зависит от потребностей разработчика.

Сжатие текстур в Android: сравнение форматов и примеры кода - 1

Технология наложения текстур на двумерные или трёхмерные модели широко применяется в компьютерной графике. Делается это для того, чтобы улучшить детализацию объектов, которые представлены моделями. Android поддерживает множество форматов сжатия текстур, каждый из них обладает собственными преимуществами и недостатками.
Читать полностью »

Привет! Я с коллегами оптимизирую имеющиеся каналы. Нас постоянно путают то с оптическими уплотнителями, то с инженерами-кабельщиками, то, вообще, с грузчиками.

Истории из практики оптимизации сети - 1

А наша работа – это разбор стека протоколов и его полная перекомпоновка под особенности канала, настройка оптимальных размеров фрейма, сбор нескольких пакетов на канал с большим latency в один, дедупликация, обычное сжатие, разбор SSL и пересборка с тем же сертификатом. Решается это в самом простом случае установкой специального железа на принимающей и передающей стороне. Поскольку до каждой точки надо добраться, мы ещё и работаем выездными инженерами. И, как у любых выездных инженеров, историй у нас море. Ниже я расскажу несколько, только поменяю ряд второстепенных обстоятельств, чтобы нельзя было узнать заказчика.

Например, идут ночные работы в очень крупном магазине. Админ заказчика и наш инженер зашли в час ночи в серверную, работают. Инженер вышел в туалет, вернулся. Через пару минут – стук в дверь. Открывают — и сразу влетает ГБР с автоматами, сразу ногами по корпусу, мордой в пол и в наручники.

Потом подъезжают полиция и главный по магазину. Главный оценивает ситуацию и веско заявляет:
— Вот этого знаю, это наш админ. А вот этого не знаю. Забирайте. Читать полностью »

Часть первая – историческая.

Введение

Существующие алгоритмы сжатия данных можно разделить на два больших класса – с потерями, и без. Алгоритмы с потерями обычно применяются для сжатия изображений и аудио. Эти алгоритмы позволяют достичь больших степеней сжатия благодаря избирательной потере качества. Однако, по определению, восстановить первоначальные данные из сжатого результата невозможно.
Алгоритмы сжатия без потерь применяются для уменьшения размера данных, и работают таким образом, что возможно восстановить данные в точности такими, какие они были до сжатия. Они применяются в коммуникациях, архиваторах и некоторых алгоритмах сжатии аудио и графической информации. Далее мы рассмотрим только алгоритмы сжатия без потерь.
Основной принцип алгоритмов сжатия базируется на том, что в любом файле, содержащем неслучайные данные, информация частично повторяется. Используя статистические математические модели можно определить вероятность повторения определённой комбинации символов. После этого можно создать коды, обозначающие выбранные фразы, и назначить самым часто повторяющимся фразам самые короткие коды. Для этого используются разные техники, например: энтропийное кодирование, кодирование повторов, и сжатие при помощи словаря. С их помощью 8-битный символ, или целая строка, могут быть заменены всего лишь несколькими битами, устраняя таким образом излишнюю информацию.
Читать полностью »

Думаю, всем читателям хабра хорошо известны алгоритмы энтропийного сжатия с использованием префиксных кодов (алгоритмы Шеннона-Фано, Хаффмана и др.). Особенностью этих алгоритмов является тот факт, что длина кода определённого символа зависит от частоты этого символа в закодированном сообщении. Соответственно при декодировании сообщения необходимо иметь таблицу частот. Данная статья посвящена рассмотрению малоизученной, но важной задачи – передаче частот исходного алфавита.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js