Компрессия h 264. Программы для воспроизведения видеозаписи.264 и H.264

Всё более популярным становится формат компрессии видеосигнала H.264. Подробную информацию о преимуществах, которые даёт его использование, вы сможете найти в статье, приведенной ниже. Напомним, что формат сжатия видео H.264 явился совместной разработкой двух международных организаций по стандартизации и ISO/IEC; этот формат также известен под названием MPEG-4 Part 10 AVC (Advanced Video Coding, продвинутая кодировка видеосигнала).

Сжимать еще сильнее

Аппетиты видеонаблюдения в отношении объемов хранения данных и пропускной способности сетей растут: никто не хочет упустить возможность воспользоваться большой частотой кадров и высоким разрешением. Отсюда и ожидания большей эффективности от методов сжатия видеосигнала. Кодер формата H.264 способен уменьшить размер файла, содержащего цифровое видео, более чем на 80% по сравнению с сигналом, сжатым по алгоритму формата Motion JPEG, при аналогичных показателях визуального качества. В сравнении с наиболее "ходовой" разновидностью формата MPEG-4 -- MPEG-4 Part 2 Simple Profile (SP) -- кодек H.264 обычно выигрывает 40-50 процентов от объема видеофайлов.

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

По моему личному мнению (то есть мнению Джона Блема - прим. ред.) , формат H.264 почти окончательно вытеснит MPEG-4 (Part 2) в течение буквально нескольких лет. А поставщики решений управления видеонаблюдением примутся встраивать поддержку нового формата уже в ближайшем будущем, равно как и все ведущие производители видеокамер.

Ложка дегтя

Есть, однако, и факторы, сдерживающие восторг от новинки -- ведь, по сути, разработка находится еще в самом начале пути. Да, кодек позволяет снизить нагрузку на сети передачи данных и сэкономить на приобретении средств хранения видеоинформации. Но его использование возможно только в условиях применения высокопроизводительных камер. Новый алгоритм сжатия использует значительно более сложную математику, чем предыдущие стандарты -- скажем, процедура декодирования примерно вдвое превосходит аналогичную процедуру у MPEG-4 Part 2 SP по объемам вычислений -- соответственно этому растет и запрос к вычислительной мощности систем. При этом собственно стандартом H.264 стал относительно давно -- около пяти лет назад, и в некоторых отраслях -- исключая нашу с вами -- уже взят на вооружение. Скажем, он используется в новом поколении потребительских DVD-дисков высокого разрешения (формат Blu-ray).

Как это работает

H.264 является гибридным стандартом блочного кодирования видеоданных с использованием компенсации движения. Собственно компенсация основана на использовании векторов перемещения областей кадра для предсказания изменений в изображении. Поскольку для видеоизображений характерна высокая степень корреляции между двумя последовательными кадрами, возможно использовать это для кодирования не картинки целиком, а лишь векторов перемещения различных частей изображения; кодируется при этом предсказанная разница между текущим кадром и его областями, присутствующими на других кадрах (так называемых ссылочных) в смещенном относительно оригинального положения виде. Эта техника называется "промежуточное предсказание".

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

Стандартом H.264 предусматривается разбиение изображения на макроблоки размером до 16х16 пикселов каждый. Макроблоки объединяются в группы -- одну или несколько -- обычно в порядке сканирования. Таким образом, отдельное изображение может быть закодировано как одна или несколько групп. Использование группирования макроблоков позволяет применять различные методы коррекции ошибок, различные типы кодирования макроблоков, а также такие инструменты, как раздельное кодирование полукадров (на правах групп) при чересстрочной развертке.

В цветных видеоизображениях кодирование яркостной составляющей происходит отдельно от цветовой; учитывая особенности человеческого зрения, при этом, как правило, используется поддискретизация цветового сигнала относительно яркостного. По большому счету, фундаментальных отличий нового формата от предыдущих стандартов кодирования видеосигнала (включая MPEG-4 Part 2) нет: все они так или иначе основаны на разбиении на блоки и являются гибридными.

Новые средства

Помимо улучшений, которым подверглись уже существующие средства кодирования, формат H.264 предусматривает и ряд новых инструментов. Наиболее важными из них являются встроенный адаптивный деблокирующий фильтр, позволяющий существенно снизить блокинг-искажения изображения, запись более чем двух ссылочных кадров для более точного предсказания, деление макроблоков на блоки меньшего размера (вплоть до 4х4 пиксела), предсказание в инфракодировании, а также применение целочисленного преобразования взамен применявшегося в более ранних стандартах дискретного косинусного преобразования (DCT).

В формат H.264 входит принципиальное решение сетевого интерфейса передачи видеоданных (network abstraction layer, NAL), который, будучи установлен поверх программного механизма кодирования видеосигнала (video coding layer, VCL), берет на себя функцию эффективного представления цифрового видео в формате, обеспечивающем легкую интеграцию с целым набором различных протоколов и механизмов передачи данных -- это весьма привлекательно для сетей, работающих на основе Интернет-протокола (IP).

Что в итоге?

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

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

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

Джон Блем, директор компании Milestone по информационным технологиям.

/ от

Тип компрессии Н.264, больше известный под названием MPEG-4 Part 10 Advanced Video Codec, достаточно быстро стал превалирующим стандартом видеокомпрессии для телевизионной индустрии.

Четвертое поколение кодеков, H.264 становится популярным даже среди контента для ведущих мобильных устройств. Производители устанавливают поддержку кодека практически во все устройства. Такая универсальность предполагает использование кодека повсеместно. Но это же качество делает кодек гораздо сложнее в настройках для оптимального использования, чем его предшественники. Он требует более высоких технологических мощностей для кодирования и декодирования процессов, что ограничивает его использование в устройствах низшей ценовой категории.

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

Что такое H.264?

H.264/MPEG-4 part10 AVC – передовая, на сегодняшний день, технология компрессии –результат коллективной работы команды известной как Joint Video Team (JVT). Группа была основана членами ITU (International Telecommunication Union) и (MPEG) Motion Picture Expert Group и опубликовала свой первый технический документ – спецификацию ITU-T H.264 и ISO/IES MPEG-4 Part 10 в 2003 году. Тогда же команда специалистов заверила, что кодек будет адоптирован и принят в производство телекоммуникационной и телевизионной индустрией уже вскоре.

Спецификация MPEG-4 определяет 27 отдельных и часто совместимых стандартов, названных Частями (Part), которые могут применяться в телевидении. Но некоторые из них не совместимы и не имеют никакого отношения к стандарту Part 10. Только Н.264 эквивалентен спецификации MPEG4 Part10. Что бы избежать конфузов следует придерживаться только этих понятий в подборе оборудования для производства.

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

Вещателям наиболее интересен Constrained Baseline Profile, который используется для интернет вещания и вещания для мобильных устройств с 2009 года. Для телевизионного наземного вещания используется Main Profile. Scalable High и Scalable High-Intra профиль, который был выделен из профиля High в 2007 году используется в видео продакшен и в некоторых широкополосных сетях. Также H.264 был стандартизирован для 3D видео начиная с 11-ой версии, учитывая возможное его применение в будущем в 3D телевидении.

H.264 унаследовал от своих предыдущих трех поколений кодеков основные направления в методиках кодирования, но с более развитым математическим аппаратом и с соответственными преимуществами.

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

— Выбор различных алгоритмов кодирования для оптимального просчета процессов и контроль над их многообразием – особенность кодека. Это важно в оптимизации кодирования для узких полос пропускания и устройств с ограниченным разрешением.

Преимущества H.264

Кодек имеет несколько преимуществ, а именно:

— Низкий bit rate при высоком уровне качества. Это особенно важно для кабельных, спутниковых, а в Украине особенно важно для эфирных, операторов. Вместо одного канала с кодированием MPEG2, можно вместить два — с кодированием H.264. Это существенно удешевляет вещание и дает возможность вещать в приемлемом качестве там, где технологии передачи данных ограничены в полосе пропускания.

— Приемлемое качество изображение при низком bit rate. Это качество можно использовать в ограниченных полосах пропускания, например для мобильных устройств. Во многих случаях MPEG-4 является единственным возможным стандартом вещания при низком bit rate.

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

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

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

Оптимизация H.264 для телевидения

С гибкостью приходят и сложности. И H.264 не исключение. Установки кодера H.264 для вашего решения могут быть простыми, если выбрать их нажатием одной кнопки «по умолчанию». На самом деле оптимальная настройка кодера очень сложна. Только одна популярная библиотека настроек кодека H.264 имеет более 200 конфигураций.

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

Есть несколько критичных пунктов, которые особенно важны для H.264.

Постоянный (CBR) и переменный (VBR) bit rate. При постоянном bit rate, а приблизительно половина трафика имеет CBR, нет никаких вопросов относительно сложности или других факторов, которые бы расширяли полосу пропускания. Это очень хорошее качество для потоков для мобильных устройств, потому что они имеют узкую полосу пропускания и не очень мощный процессор, которому легче обрабатывать постоянный поток данных без пиковых нагрузок. CBR также удобно использовать в интернет вещании, используя адаптивный стриминг. Потому что плеер автоматически переключается вперед и назад между различными потоками. А CBR помогает плееру синхронизироваться и воспроизводить видео бесшовно и стабильно.

Но CBR не оптимален со стороны качества, потому что поток не изменяется в зависимости от динамики и сложности видео. В то время как специфика VBR позволяет в необходимых сложных местах повышать bit rate и снижать степень сжатия для получения более качественного изображения. Это необходимо в сценах с быстрым движением мелких предметов. С другой стороны, больше битов — шире полоса пропускания. Это может создать большие проблемы. Поэтому если вы нуждаетесь в качественном H.264, скачайте фильм заранее.

— Размеры макроблока . Подобно другим кодекам H.264 создает в захваченном кадре индивидуальные распределения, называемые макроблоками. Компрессия видео и компенсационная технология, которая создает магическое сжатие каждого макроблока, в конечном счете, прогнозирует кадр, рассчитываемый из разницы между конечным и начальным макроблоками. Старые кодеки имели фиксированную величину макроблока 16х16 пикселей, но H.264 позволяет выбирать изменять этот размер. Несмотря на то, что минимальный размер блока составляет 4х4 пикселя, в особых случаях блоки могут уменьшаться до 1 пикселя, то есть не компрессироваться.

Малые, средние и большие блоки, чередуясь в кадрах, адаптивно регулируют процесс кодирования, способствуя получению оптимального изображения и в значительной мере определяя нагрузку процессора во время real-time кодирования. Для кодирования в вещательных решениях предпочтительно использовать минимальные макроблоки, но настолько что бы не вызвать пропуска кадров или других задержек связанных с отставанием компрессора. Увеличение размера макроблоков можно добиться, при необходимости, путем предварительной фильтрации изображения (например, блюринг). Главное определиться с компромиссом этих параметров.

Большинство профессиональных кодеров имеет возможность автоматически изменять размер макроблока при смене размера выходного кадра.

-GOP структура. Group of Picture (GOP) обычно изменяется так часто, как требуется вставить полный кадр, для воспроизведения прогнозируемых кадров без существенных потерь. Ваш выбор настроек может существенно повлиять на процесс кодирования. Большинство кодеров имеют автоматическую возможность вовремя вставлять в сцену полный кадр. Однако некоторый контент, например, как новости, имеет частые смены сцен, и частая автоматическая вставка полных кадров может привести к большим задержкам. Я помню одно такое устройство, которое не стартовало, если в новом футаже не было первого полного кадра. Ну, это из ряда вон, но увеличение структуры GOP за счет полных кадров может создать дополнительную задержку потока на 1-2 секунды. Если кэш устройства переполнится, то зрителей начнут раздражать стоп-кадры и рассыпание видео.

Таким образом, используя некоторые настройки кодека можно адаптировать изображение для конкретных задач.

P.S. Я бы не стал питать больших иллюзий по поводу качества вещания DVB-T2 в Украине. Используемый профиль с 8-битным преобразованием не позволит, даже при самых оптимальных решениях, поднять четкость ТВЛ выше 400. То есть четкость останется на том же уровне, что и сейчас. А размеры экранов в домохозяйствах за последние годы выросли в два раза. Да, конечно, уйдут эфирные помехи и шумы в зонах слабого и неуверенного приема. Но добавятся природные искажения, вносимые кодированием со скоростью потока всего лишь 2,5 мБс. Выход один – очень нежно фильтровать высокие частоты, увеличивая размер макроблоков, но без фанатизма. Как это сделать в отдельно взятой телекомпании с, как правило, непредсказуемым контентом – отдельная головная боль главных инженеров.

H.264, MPEG-4 Part 10 или AVC (Advanced Video Coding) - лицензируемый стандарт сжатия видео, предназначенный для достижения высокой степени сжатия видеопотока при сохранении высокого качества. Применяется для более рационального использования устройств хранения и передачи данных. Кодер H.264 без ущерба для качества изображения может снижать размер файла цифрового видео более чем на 80% по сравнению с форматом Motion JPEG и на 50% - по сравнению со стандартом MPEG-4 Part 2. Что означает гораздо меньшие требования к полосе пропускания для передачи и объему памяти для хранения видеофайла. Или же, с другой стороны, возможность получения гораздо лучшего качества видеоизображения при той же скорости передачи данных. На сегодняшний день формат H.264 является одним из самых прогрессивных и отвечающих современным требованиям алгоритмов компрессии.

Стандарт H.264 предназначен для технических решений в следующих областях:

  • Трансляции по сети, через спутник, через DSL соединения и т.д.
  • Интерактивный или постоянные хранения данных на оптических и магнитных носителях (DVD, HDD)
  • Потоковое мультимедиа по сети и т.д.

Благодаря своим преимуществам перед MPEG-4 и M-JPEG, H.264 может стать форматом номер один в системах видеонаблюдения. Сжатие видеоизображения заключается в удалении избыточных видеоданных или сокращении их объема, благодаря чему файлы с оцифрованным видео удается эффективно передавать по сети и хранить. При сжатии к исходному видеоизображению применяется определенный алгоритм. Применение обратного алгоритма позволяет практически без потерь восстановить оригинальное видеоизображение. В стандарте H.264 технология сжатия видеоизображения вышла на новый уровень: появилась более совершенная схема внутреннего предсказания, используемая для кодирования I-кадров. Благодаря этой схеме количество битов, необходимых для хранения I-кадра, значительно снижается, а качество изображения остается неизменным. Получить такой результат удается за счет использования моноблоков меньшего размера. Поиск совпадающих пикселов теперь осуществляется среди ранее закодированных пикселов, расположенных по краям нового макроблока. Значения этих пикселов используются повторно. В результате объем, который занимает изображение, значительно уменьшается.

В H.264, кроме того, усовершенствован механизм поблочной компенсации движения, который используется для кодирования P- и B-кадров. Кодировщик H.264 может по своему выбору осуществлять поиск совпадающих блоков (с точностью до субпиксела) в произвольном количестве областей одного или нескольких опорных кадров. Размер и форма блока также могут меняться, если при этом совпадение получается более точным. Для построения областей кадра, в которых нет совпадающих блоков, используются моноблоки с внутренним кодированием. Столь гибкий подход к компенсации движения оправдывает себя, например, при наблюдении за людными местами, когда требуется обеспечить также и качество изображения. Для компенсации движения выделяется большая часть ресурсов, отведенных видеокодеру. Поэтому от того, каким образом и насколько полно реализован этот алгоритм, зависит эффективность сжатия видеоизображения кодировщиком H.264.

При использовании H.264 удается также уменьшить количество артефактов блочности, характерных для Motion JPEG и других стандартов MPEG. Для этой цели в цикле кодирования используется внутренний фильтр деблокинга. В результате применения адаптивных алгоритмов удается сгладить края блоков и получить на выходе видеоизображение почти идеального качества.

В системах видеонаблюдения H.264, скорее всего, будет использоваться, в первую очередь, для решения задач, требующих больших скоростей передачи данных и высокого разрешения, например, в системах наблюдения за автомагистралями, в аэропортах и казино, где 30 к/с является нормой. В таких системах применение новой технологии позволит снизить требования к ширине каналов и объемам дискового пространства и приведет к значительной экономии.

  • Перевод

H.264 - стандарт сжатия видео. И он вездесущ, его используют для сжатия видео в интернете, на Blu-ray, телефонах, камерах наблюдения, дронах, везде. Все сейчас используют H.264.

Нельзя не отметить технологичность H.264. Он появился в результате 30-ти с лишним лет работы с одной единственной целью: уменьшение необходимой пропускной способности канала для передачи качественного видео.

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

Зачем вообще сжимать что-либо?

Видео в несжатом виде это последовательность двумерных массивов, содержащих информацию о пикселях каждого кадра. Таким образом это трёхмерный (2 пространственных измерения и 1 временной) массив байтов. Каждый пиксель кодируется тремя байтами - один для каждого из трёх основных цветов (красный, зелёный и синий).

1080p @ 60 Hz = 1920x1080x60x3 => ~370 Мб/с данных.

Этим практически невозможно было бы пользоваться. Blu-ray диск на 50Гб мог бы вмещать всего около 2 мин. видео. С копированием так же будет не легко. Даже у SSD возникнут проблемы с записью из памяти на диск.

Поэтому да, сжатие необходимо.


Обязательно отвечу на этот вопрос. Но сперва я покажу кое-что. Взгляните на главную страницу Apple:

Я сохранил изображение и приведу в пример 2 файла:

Это впечатляет, какие еще приёмы существуют?

Цветовая обработка

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

В телевизорах, цвета RGB преобразуются в YCbCr, где Y это компонента яркости (по сути яркость черно-белого изображения), а Cb и Cr компоненты цвета. RGB и YCbCr эквиваленты в плане информационной энтропии.

Зачем же тогда усложнять? RGB разве не достаточно?

Во времена чёрно-белых телевизоров, была только компонента Y. А с началом появления цветных телевизоров у инженеров встала задача о передаче цветного RGB изображения вместе с чёрно-белым. Поэтому вместо двух каналов для передачи, было решено кодировать цвет в компоненты Cb и Cr и передавать их вместе с Y, а цветные телевизоры уже сами будут преобразовывать компоненты цвета и яркости в привычный им RGB.

Но вот в чём хитрость: компонента яркости кодируется в полном разрешении, а компоненты цвета лишь в четверть. И этим можно пренебречь, т.к. глаз/мозг плохо различает оттенки. Таким образом можно уменьшить размер изображения в половину и с минимальными отличиями. В 2 раза! Машина будет весить 10 кг!

Данная технология кодирования изображения со снижением цветового разрешения называется цветовой субдискретизацией . Она используется повсеместно уже давно и относится не только к H.264.

Это самые значительные технологии в уменьшении размера при сжатии с потерями. Нам удалось избавиться от большинства детализации и сократить информацию о цвете в 2 раза.

А можно ещё больше?

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

Компенсация движения

H.264 стандарт, который позволяет компенсировать движения.
Компенсация движения? Что это?

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

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

И это именно то, что H.264 делает. H.264 разбивает изображение на макроблоки, обычно 16х16, которые используются для расчёта движения. Один кадр остаётся статичным, обычно его называют I-кадр , и содержит всё. Последующие кадры могут быть либо P-кадры , либо B-кадры . В P-кадрах вектор движения кодируется для каждого макроблока на основе предыдущих кадров, таким образом декодер должен использовать предыдущие кадры, взяв последний из I-кадров видео и постепенно добавляя изменения последующих кадров пока не дойдёт до текущего.

Ещё интереснее обстоят дела с B-кадрами, в которых расчёт производится в обоих направлениях, на основании кадров идущих до и после них. Теперь вы понимаете почему видео в начале статьи весит так мало, это всего лишь 3 I-кадра, в которых мечутся макроблоки.

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

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

Выглядит впечатляюще. Теперь что?

Теперь мы подведём черту, используя традиционное энтропийное кодирование без потерь. Почему нет?

Энтропийное кодирование

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

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

Вот теперь всё! В основе H.264 лежат вышеупомянутые технологии. В этом и заключаются приёмы стандарта.

Отлично! Но меня разбирает любопытство узнать, сколько же весит теперь наша машина.

Исходное видео было снято в нестандартном разрешении 1232x1154. Если посчитать, то получится:

5 сек. @ 60 fps = 1232x1154x60x3x5 => 1.2 Гб
Сжатое видео => 175 Кб

Если соотнести результат с оговорённой массой машины в одну тонну, то получится вес равный 0.14 кг. 140 граммов!

Да, это магия!

Конечно же я в очень упрощённом виде изложил результат десятилетних исследований в этой сфере. Если захотите узнать больше, то


В ближайшее время хочу выложить заметку про HD плеер WD TV Live, поэтому коснусь больной для железных плееров темы – почему возникают проблемы с проигрыванием видео. Зачастую причина в в неоправданно навороченном H.264 потоке. Стандарт H.264 предусматривает множество механизмов компрессии сигнала, вот таблица , в которой каждому профилю ставится в соответствие набор возможностей, которые могут быть задействованы в потоке. Профили бывают например такие - Constrained Baseline Profile (CBP), Baseline Profile (BP), Main Profile (MP), High Profile (HiP) и др. Еще есть понятие уровня , который определяет численные ограничения в рамках конкретного профиля. Уровни обозначаются парой чисел от 1.0 до 5.1. Профиль принято записывать в виде @L, например можно встретить такие обозначения – [email protected] или [email protected].

За эталон качества принято считать поток с Blu-Ray диска, его видеопоток соответствует профилю [email protected]. По данным таблицы [email protected] накладывает максимальное ограничение на поток – 62500 Kbps и обеспечивает следующие режимы (привожу самые высокие): 1,280×[email protected] (9), 1,920×1,[email protected] (4), 2,048×1,[email protected] (4). Число после @ – это частота кадров, а число в скобках – количество reference frames (или reframes). Reframes – это количество кадров на которые может ссылаться текущий в процессе декодирования. Этот параметр накладывает требования на объем памяти декодера и возможно его увеличение еще влечет некоторую дополнительную нагрузку на декодер. Так вот для Blu-Ray в full hd разрешении этот параметр равен всего лишь 4-ем. На тех blu-ray, что были под рукой проверил – это действительно так, как и соответствие данному профилю. Однако видео скачанное из сети нередко имеет выставленные более высокие профили, а количество reframes иногда достигает 19! Посмотреть свойства потока можно бесплатной утилитой . Я проделал это и обнаружил что порядка 20% имеющихся фильмов имеет завышенные reframes и завышенные профили. В этом подмножестве достаточно типичен профиль [email protected]. Для информации приведу его характеристики: поток до 300000 Kbps (!), максимальные режимы: 1,920×1,[email protected] (16), 4,096×2,[email protected] (5), 4,096×2,[email protected] (5). Такой безумный битрейт физически не поддерживается blu-ray диском (максимальный битрейт – 48 Mbit) и он не пролезает через 100 Mbps сетку, судя по максимальным разрешениям профиль предназначен для кодирования видео для цифровых кинотеатров. Почему так происходит понятно – люди просто выставляют все на максимум и сжимают, совершенно не включая голову, а в итоге имеем проблемы, с которыми к счастью героически борются создатели HD плееров, но с переменным успехом. Скоро напишу о том, как получается у них бороться.