- PVSM.RU - https://www.pvsm.ru -

В Dropbox разработали алгоритм lossless-сжатия для файлов H.264 и JPEG

Во время хакатона Hack Week разработчики из компании Dropbox воплотили в жизнь вымышленный алгоритм Pied Piper [1] из сериала «Кремниевая долина» (комедийный сериал о нелёгкой жизни стартаперов).

Удивительно, но за несколько дней напряжённого кодинга удалось получить на базе OpenH264 [2] рабочее решение, которое демонстрирует компрессию до 13% для видеороликов H.264 и 22% на произвольных файлах JPEG. Повторим, это честное lossless-сжатие, когда сжатый файл можно вернуть в исходное состояние с точностью до бита.

Исходный код Pied Piper (losslessh264) опубликован на Github [3] под свободной лицензией BSD.

Смотревшим сериал «Кремниевая долина» вообще не нужно объяснять, что делает кодек Pied Piper. Разработчики скопировали из фильма всё: и его функциональность (компрессия и декомпрессия файлов без потери качества), и даже название. Разница только в том, что здесь не киношный вымысел, а реальность. Кодек создавался как будто в шутку, но он действительно работает.

«Шуточная» разработка способна сэкономить нешуточные деньги для Dropbox, ведь эта компания хранит на своих серверах экзабайты файлов [4] сотен тысяч корпоративных клиентов и индивидуальных пользователей. Даже экономия в 1% позволяет избавиться как минимум от полусотни серверных стоек, что тут говорить о сжатии на 13-22%.

Неудивительно, что Dropbox бросила на этот проект сразу десятерых программистов. Они доводят до ума версию кодека, первоначально созданную во время хакатона.

В Dropbox разработали алгоритм lossless-сжатия для файлов H.264 и JPEG - 1
Даниэль Райтер Хорн

Один из ведущих разработчиков Даниэль Райтер Хорн (Daniel Reiter Horn) говорит [5], что алгоритм исправляет некоторые устаревшие неэффективные методы кодирования, которые применяются для сжатия файлов H.264 и JPEG: «Например, почти все файлы JPEG сегодня сжимаются алгоритмом Хаффмана, но хорошо известно, что применение дополнительного арифметического кодера к существующим файлам JPEG даёт дополнительное сжатие на 10% без ущерба для файла. Наш алгоритм Pied Piper пытается достичь ещё большего эффекта, это более эффективный алгоритм кодирования, полностью совместимый с существующими форматами».

В Dropbox разработали алгоритм lossless-сжатия для файлов H.264 и JPEG - 2
Реализация дополнительной степени компрессии за счёт анализа предыдущих и последующих блоков с пикселами в кадре

На схеме [6] показано, что для реализации дополнительного сжатия используется более глубокий анализ предыдущих и последующих блоков с пикселами в кадре.

P.S. Вероятно, проект Pied Piper кому-то напоминает алгоритм архивации Бабушкина [7], но здесь всё-таки код открыт и каждый может самостоятельно проверить кодек в деле.

Автор: alizar

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/97097

Ссылки в тексте:

[1] Pied Piper: http://www.piedpiper.com/

[2] OpenH264: http://www.openh264.org/

[3] опубликован на Github: https://github.com/danielrh/losslessh264

[4] экзабайты файлов: https://www.quora.com/How-many-petabytes-does-Dropbox-host

[5] говорит: http://www.fastcompany.com/3050180/tech-forecast/these-engineers-just-built-their-own-pied-piper-compression-algorithm

[6] схеме: https://raw.githubusercontent.com/danielrh/losslessh264/master/PiedPiperAlgorithm.png

[7] алгоритм архивации Бабушкина: http://engineerblog.ru/algoritm-arhivatsii-babushkina/

[8] Источник: http://geektimes.ru/post/261058/