В статье в общих чертах описана основная идея новой системы сжатия потокового видео, применяемой онлайн-кинотеатром Netflix.
Время чтения: 4мин.

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

Новый компрессионный алгоритм на основе открытого кодека VP9 различает эпизоды с большим количеством движений в кадре, например, драки или погони, и спокойные сцены с медленным развитием событий. Разные фрагменты фильма или телешоу кодируются с разным битрейтом, и получается экономия трафика на визуально простых сценах. Оптимальный способ кодирования определяется специальным алгоритмом с использованием технологии машинного обучения. В его основе лежит научное исследование, которое помогло определить "качественную" картинку с точки зрения человека.

Netflix

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

До сих пор для потокового воспроизведения Netflix почти всегда применял уже ставший стандартом видеокодек H.264/AVC, а для загрузки на Android-устройства использовалось сжатие с помощью кодека VP9, созданного Google. Этот алгоритм уменьшает размер файла на 36% при сохранении качества, но его не поддерживают устройства Apple.

Поэтому для "яблочных" гаджетов пришлось сервису кодировать скачиваемые ролики посредством профиля H.264/AVC High. Он уступает VP9 по степени сжатия, но все-таки уменьшает размер файла в среднем на 19%. А чтобы еще сэкономить место, видео разбивается на отрезки по 1-3 минуты, анализируется их сложность, и далее они кодируются с разным битрейтом.

Нечто подобное теперь реализовано для потокового видео. Правда, в реальности большого сокращения объема не произойдет, потому что компания стремится обеспечить наилучшее качество.