Как стать автором
Обновить
49.4

Сжатие данных *

Упаковываем и распаковываем информацию

Сначала показывать
Порог рейтинга
Уровень сложности

Прогулка между пикселями

Время на прочтение8 мин
Количество просмотров17K
Этот пост относится к моей статье о вычислении точек на кривых Безье с помощью линейной интерполяции текстур. Расширенный метод распространяется на поверхности Безье и (многомерные) многочлены.

Первоначальное наблюдение состояло в том, что если произвести выборку по диагонали текстуры 2×2, то в качестве выходных данных получатся точки на квадратичной кривой Безье, а опорные точки кривой являются значениями пикселей, как на изображении ниже. Когда я говорю, что вы получаете квадратичную кривую Безье, то выражаюсь буквально и точно. Происходящее можно представить так: интерполяция текстуры буквально выполняет алгоритм де Кастельжо. (Примечание: если в примере ниже значения “B” не равны, то вторая опорная точка будет средним из этих двух значений: расширение злоупотребляет этим, чтобы аппроксимировать больше кривых в меньшее количество пикселей).


Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии1

Видео следующего поколения: представляем AV1

Время на прочтение12 мин
Количество просмотров33K
AV1 — это новый универсальный видеокодек, разработанный Альянсом за открытые медиа (Alliance for Open Media). Альянс взял за основу кодек VPX от Google, Thor от Cisco и Daala от Mozilla/Xiph.Org. Кодек AV1 превосходит по производительности VP9 и HEVC, что делает его кодеком не завтрашнего, а послезавтрашнего дня. Формат AV1 свободен от любых роялти и всегда останется таковым с разрешительной лицензией свободного и открытого ПО.

Тройственная платформа


Кто следил за развитием Daala, тот знает, что после формирования Альянса за открытые медиа (AOM) Xiph и Mozilla предложили наш кодек Daala как один из базисов для нового стандарта. Кроме него, компания Google представила свой кодек VP9, а Cisco представила Thor. Идея заключалась в том, чтобы создать новый кодек в том числе на основе этих трёх решений. С того момента я не публиковал никаких демо о новых технологиях в Daala или AV1; в течение долгого времени мы мало что знали об окончательном кодеке.

Около двух лет назад AOM проголосовал за то, чтобы основать фундаментальную структуру нового кодека на базе VP9, а не Daala или Thor. Компании-члены альянса хотели в кратчайший срок получить полезный кодек без роялти и лицензирования, поэтому выбрали VP9 как наименее рискованный вариант. Я согласен с таким выбором. Хотя Daala выдвинули кандидатом, но я всё-таки думаю, что и устранение блочных артефактов трансформацией внахлёст (lapping arrpoach), и техники частотной области в Daala тогда (да и сейчас) ещё недостаточно созрели для реального развёртывания. В Daala по-прежнему оставались нерешённые технические вопросы, а выбор в качестве отправной точки VP9 решал большинство этих проблем.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии11

Литературный архиватор

Время на прочтение5 мин
Количество просмотров6.9K
Прежде всего, поздравляю всех православных и им сочувствующих с пасхой и окончанием великого поста, всех остальных — с наступлением весны. В песочнице только месяц назад наконец утонул мой дебют про программирование на кириллице. Не знаю, что привлекло внимание читателей к зелени, но комментировали простынями, как настоящую статью. В своей простыне TrllServ предложил использовать задумку для архивации. Обожаю людей, которые умеют находить практическое применение идеям. Развернув блокнот, я попробовал набросать алгоритм на основе свойства своей кодировки, а именно — однозначной типизации символа по первым битам. Сжимать таким алгоритмом удобно именно текст, то есть статьи, книги или копипасты из интернетов — то, что состоит из слов, и где регистр букв имеет грамматическое значение. Впоследствии к простому алгоритму добавились средние, основанные на правилах русского языка, и всё это собралось в одну сложную программу, эффективно сжимающую учебник литературы. Назовём его «Литературный архиватор».
Читать дальше →
Всего голосов 25: ↑15 и ↓10+5
Комментарии45

Стойкое шифрование данных в PNG

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

Что ж, поздороваюсь с вами ещё раз: , и добро пожаловать под кат.
Поехали!
Всего голосов 27: ↑18 и ↓9+9
Комментарии24

Истории

Пакетная обработка изображений в Windows с ImageMagick. Часть I

Время на прочтение6 мин
Количество просмотров31K
ImageMagick — свободный и кроссплатформенный редактор для работы с графикой.
Он состоит из нескольких консольных утилит. Его возможностей не счесть, как звезд на небе.
В сети есть множество примеров, как пользоваться им. Но большинство из них для Linux или PHP. Для Windows же их кот наплакал. Настало время восполнить пробел.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии5

Эффективные методы сжатия данных при тренировке нейросетей. Лекция в Яндексе

Время на прочтение33 мин
Количество просмотров13K
Не так давно в Яндекс приезжал Геннадий Пехименко — профессор Университета Торонто и PhD Университета Карнеги-Меллон. Он прочитал лекцию об алгоритмах кодирования, которые позволяют обходить проблему ограничения памяти GPU при обучении глубоких нейронных сетей.


— Я вхожу в несколько групп Университета Торонто. Одна из них — Computer Systems and Networking Group. Есть еще моя собственная группа — EcoSystem Group. Как видно из названий групп, я не специалист непосредственно в машинном обучении. Но нейронные сети сейчас достаточно популярны, и людям, которые занимаются компьютерной архитектурой и сетями, компьютерными системами, приходится сталкиваться с этими приложениями на постоянной основе. Поэтому последние полтора-два года этой темой я тоже плотно занимаюсь.
Всего голосов 41: ↑41 и ↓0+41
Комментарии7

Как использовать сжатие ответа в ASP.Net Core

Время на прочтение4 мин
Количество просмотров5.8K

Воспользуйтесь преимуществами компонента промежуточной обработки для сжатия ответов (Response Compression Middleware) в ASP.Net Core, чтобы снизить требования к пропускной способности и повысить оперативность ваших приложений.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии4

Как у меня получилось взломать и распаковать ресурсы старой игры для PSX

Время на прочтение25 мин
Количество просмотров20K
«Вот бы распаковать эти игровые архивы и посмотреть что там внутри!», — наверное думал про себя, хотя бы раз, каждый геймер, который хотел понять, как устроена его любимая игра.

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

Я решил написать эту статью для того чтобы показать, что даже если вы столкнулись с очень редкой, старой или никому не нужной игрой, архивы которой не берет ни один «распаковщик», то даже с минимальными знаниями какого-нибудь языка программирования, вполне возможно вам удастся справится самому и стать первым, кто сможет распотрошить эту игру до косточек.

Так как само по себе, описание устройства игровых архивов вряд ли принесет какую-нибудь пользу, я опишу весь путь, который я проделал в ходе изучения игровых архивов, ход своих мыслей, а также ошибки, которые привели меня в тупики.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии22

Meltdown: влияет не только на производительность

Время на прочтение1 мин
Количество просмотров81K

Обновления безопасности


Компания Microsoft выпустила обновления безопасности для операционных систем Windows, исправляющие критические уязвимости в процессорах Intel, AMD и ARM, которые исправляют раскрытые на днях уязвимости Meltdown и Spectre. Патчи могут привести к снижению производительности на затронутых системах и не только. Ниже будут приведены 2 скриншота и пояснения к ним.

Экспресс-тест на примере 7-Zip


До установки обновления безопасности KB4056890 (версия 1607)
image

После установки обновления безопасности KB4056890 (версия 1607)
image

Читать дальше →
Всего голосов 98: ↑63 и ↓35+28
Комментарии188

HEIF — новый стандартный формат хранения изображений в iOS и MacOS

Время на прочтение4 мин
Количество просмотров31K

В этом году в операционных системах Apple изменился формат сохранения изображений по умолчанию. С выходом iOS 11 и MacOS High Sierra миллионы пользователей продукции яблочного гиганта получили возможность использовать новый формат хранения изображений HEIF. Он пришел на смену старому доброму JPEG, хотя многие и не знают, что это произошло. По расчетам Apple пользователи должны получить значительную экономию места на диске (до 50%) за счет большей эффективности сжатия при лучшем качестве картинки.

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии12

Инструкция как скомпилировать динамический модуль ngx_pagespeed для Nginx на Debian

Время на прочтение3 мин
Количество просмотров9.1K
Цель: Предоставить инструкцию по сборке динамического модуля, дать понимание принципа сборки динамического модуля для Nginx поставленного из репозитория Debian.

Целевая аудитория: Администраторы серверов, продвинутые администраторы сайтов, сео-оптимизаторы и просто те кто хочет добиться хорошей оценки от сервиса Google PageSpeed.

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

План действий такой:

1. Арендуем vps на час.
2. Собираем на арендованной vps динамический модуль на той же самой версии Nginx что была использована на боевом (это ВАЖНО!!!. Поддержка динамических модулей у Nginx появилась с версии 1.9.11).
3. Перекидываем модуль на новый сервер.
4. Конфигурируем Nginx.
5. Применяем настройки.
6. Замораживаем версию Nginx (Если это не сделать, то при ближайшем обновлении Nginx, произойдёт падение сервера. Причина в том что скомпилированный модуль будет работать только с конкретной версией Nginx. Если захотите обновиться, скомпилируете модуль для новой версии и обновитесь).

Или следим за тем что обновляем и своевременно добавляем новый собранный модуль.

Преимущество в том что боевой сервер не подвергается изменению и если Вам к примеру не понравится ngx_pagespeed, то вы просто уберёте строчки конфигурирующие его и сам модуль. Ну и если Вы используете несколько серверов с Nginx Вы можете один раз скомпилировать модуль для них всех.
Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии29

Резервное копирование для Zimbra Collaboration Suite

Время на прочтение3 мин
Количество просмотров5.4K
К сожалению, в бесплатной версии Zimbra Collaboration Suite нет встроенного механизма резервного копирования данных. Системным администраторам в компаниях, где решили внедрить это решение, приходится самим придумывать выходы из положения. Чаще всего используются скрипты, которые по времени делают полные резервные копии данных. Для небольших компаний это, конечно, выход, но когда количество пользователей достигает хотя бы 50, то хранение архивов с содержимым их почтовых ящиков начинает занимать непозволительно много места. Плюс восстановление данных становится очень долгой и проблематичной операцией. Нужно другое решение!

image
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии1

Нам нечего скрывать – все честно в HPE 3PAR Data Reduction Guarantee

Время на прочтение4 мин
Количество просмотров3.6K
Исполнилось 10 лет с того момента, когда Центробанк России начал требовать от банков раскрывать эффективную ставку по кредиту. Это было важное событие, которое умерило пыл маркетологов финансового сектора и приблизило смысл их рекламы к реальности. Клиенты банков с удивлением обнаружили, что они переплачивают в полтора-два раза по сравнению с заявленными ставками, и, вооруженные новыми знаниями, стали делать более осознанный выбор.

А в информационных технологиях такого контролирующего органа, как Центробанк, нет, поэтому беспредел продолжается. Одна из самых горячих тем – это экономия дискового пространства при использовании флеш-памяти. Да, SSD стоят уже не так дорого (особенно после скидок), но для того, чтобы сравняться по стоимости хранения с традиционными дисками, приходится учитывать возможности всех технологий сжатия данных. И вот тут фантазия отделов маркетинга становится буйной. Судя по сохранившимся ссылкам на форуме, эффективность технологий сжатия данных у одного из вендоров составила 933:1 (правда, в следующей версии операционной системы, новой и улучшенной, упала до 4:1 – но ведь прогресс не остановить?). Бесконечность – не предел. Но реальная жизнь предприятий, использующих системы хранения, отличается от мультипликационных фильмов. Мы здесь не в игрушки играем!

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии4

Ближайшие события

22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Укрощаем мультимедиа с помощью ffmpeg

Время на прочтение3 мин
Количество просмотров91K

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





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

Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии33

Время чудес, или Тормоза для конца света

Время на прочтение5 мин
Количество просмотров7K

Источник


Когда говорят «конец света», значит, хотят продать кукурузные хлопья,
а вот если говорят «без паники», тут уж дело серьезнее.
Стивен Кинг. «Буря столетия»


Говорят, что наиболее оптимистичные пессимисты верят в счастливый конец света. Применительно к телекому эта мысль имеет второе дно. Все учебные пособия по телекоммуникациям сходятся в одном: когда взамен медных линий стали применяться волоконно-оптические линии связи (ВОЛС) вкупе с лазерами, для отрасли наступило долгожданное и практически вечное счастье, по крайней мере в части обеспечения высокой пропускной способности для почти мгновенной (буквально со скоростью света) доставки множества информационных потоков. Так в отрасли началось время чудес. Да будет свет!


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


Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии10

Сжатие фотографий без видимой потери качества: опыт Yelp

Время на прочтение11 мин
Количество просмотров23K
На Yelp хранится более 100 миллионов пользовательских фотографий, от картинок ужинов и причёсок до одной из наших последних фич, #yelfies. Эти изображения составляют основную часть трафика для пользователей приложения и веб-сайта, а их хранение и передача обходятся недёшево. Стараясь предоставить людям наилучший сервис, мы усиленно работали над оптимизацией всех фотографий и добились среднего уменьшения размера на 30%. Это экономит людям время и трафик, а также сокращает наши расходы на обслуживание этих изображений. Ах да, и мы сделали это без ухудшения качества фотографий!

Исходные данные


Yelp хранит пользовательские фотографии уже 12 лет. Мы сохраняем lossless-форматы (PNG, GIF) как PNG, а все остальные форматы в JPEG. Для сохранения файлов используются Python и Pillow, а загрузки фотографий начинаются примерно с такого сниппета:

# do a typical thumbnail, preserving aspect ratio
new_photo = photo.copy()
new_photo.thumbnail(
    (width, height),
    resample=PIL.Image.ANTIALIAS,
)
thumbfile = cStringIO.StringIO()
save_args = {'format': format}
if format == 'JPEG':
    save_args['quality'] = 85
new_photo.save(thumbfile, **save_args)

Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии6

Тест Lossless-оптимизаторов изображений (PNG и JPG)

Время на прочтение3 мин
Количество просмотров20K
Для многих не секрет, что большинство изображений в форматах JPEG и PNG содержат избыточную информацию, которая может быть удалена без потери качества. Обычно это достигается за счет эвристических алгоритмов перебора различных параметров компрессии и выбора наименее затратного варианта. Применение оптимизаторов особенно важно на файлах, которые используются на посещаемых сайтах, для экономии дискового пространства, трафика и уменьшения времени загрузки страниц у пользователей. Программ такого типа довольно много и мы поставили себе цель найти какие же оптимизаторы сжимают лучше и работают быстро.

В тесте принимали участие следующие программы.

Для PNG:

1. Leanify 0.4.3 (x64)
2. pingo v0.79c
3. pinga v0.09
4. OptiPNG 0.7.6
5. pngout
6. PngOptimizer 2.5 (x64)
7. advpng aka AdvanceCOMP v1.23
8. ECT 0.6 (x64)
9. TruePNG 0.6.2.2
10. pngwolf-zopfli 1.1.1 (x64)

Для JPEG:

1. Leanify 0.4.3 (x64)
2. pingo v0.79c
3. ECT 0.6 (x64)
4. mozjpeg 3.2 (x64)
5. jhead 3.00
6. jpegoptim v1.4.4 (x64)
7. jpegtran
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии27

«Меньше некуда»: ученые из IBM сохранили информацию в атоме

Время на прочтение2 мин
Количество просмотров12K
Для сохранения одного бита информации на жестком диске требуется порядка 100 тыс. атомов. 8 марта ученые из IBM Research представили результаты своего исследования, в котором показали, что можно сохранить такое же количество информации всего в одном атоме. Распространение этой технологии позволит записать музыкальный каталог Apple из 26 миллионов песен на запоминающее устройство размером с небольшую монетку.

Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии8

Почему февральское обновление HPE 3PAR StoreServ – самое важное с момента запуска линейки

Время на прочтение6 мин
Количество просмотров8.5K
Анонс новых функциональных возможностей HPE 3PAR StoreServ от 13 февраля 2017 года был назван некоторыми комментаторами в корпоративном блоге самым важным с момента запуска
семейства 3PAR 7000 четыре года назад. Это очень громкое заявление. За это время в индустрии многое поменялось, флеш-накопители обогнали жесткие диски по объемам продаж, а некоторые компании, производящие системы хранения, потеряли свою независимость или вообще разорились.

Интересно, что 13 февраля были объявлены, по большому счету, только программные улучшения. Единственная аппаратная новинка – это четырехпортовые адаптеры для семейства 3PAR 8000. Это важная вещь для тех, кто использует File Persona или iSCSI, но звания «самого важного анонса» не заслуживает. Так в чем же дело?


Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

«Флеш всему голова»: IBM анонсировала линейку массивов хранения данных для облака

Время на прочтение3 мин
Количество просмотров3.9K
Мы в 1cloud стараемся освещать новости из мира технологий. Например, мы уже писали о необычных и революционных системах хранения данных и новых разработках, используемых в дата-центрах. Сегодня мы решили рассказать о том, что IBM Corp. обновила и дополнила свою линейку массивов хранения данных DS8880 их all-flash-версиями, имеющими большие объемы и поддерживающими работу с когнитивными и другими требовательными нагрузками.

Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии0