На Хабре в блоге Intel регулярно появляются статьи с описанием технологий и инструментов, созданных в стенах Intel. Многие из них так или иначе связаны с обработкой и анализом видео и изображений. Это такие продукты как, например, Intel Media Server Studio или Intel RealSense. Однако, существует набор инструментов, не так широко представленных в медиа пространстве, но не менее значимых для такой категории разработчиков, как создатели медиа кодеков. Именно этот пробел мы и попытаемся восполнить в данном топике. Речь пойдет про Intel Video Pro Analyzer (Intel VPA) и Intel Stress Bitstreams and Encoder (Intel SBE), а также про те возможности, что скрываются за этими названиями.
Для начала определимся с предметом, сущностью, с которой работают вышеназванные инструменты. Это битовые стримы. Битовый стрим – это то, что получается после того, как отработал видео энкодер. Битовый стрим – это поток битов, отвечающий спецификации того или иного кодека. Если мы заглянем в спецификацию большинства кодеков, то увидим, что этот битстрим представляет из себя ничто иное как набор синтаксических элементов данного кодека различной длины. Это, к примеру, ширина и высота картинки, профиль кодирования, коэффициенты трансформации, различные битовые флаги и т.д. Для стандарта HEVC это сотни синтаксических элементов. После кодирования эти битовые стримы доходят до пользователей, помещенные в различные медиа контейнеры – avi, mp4, mpeg ts и т.д. Но разработчики кодеков в основном работают именно с битовыми стримами. Разработчики ПО, дизайнеры, инженеры – электронщики, тестеры имеют свои инструменты для работы. Почему же разработчикам кодеков их не иметь?
Для начала определимся с предметом, сущностью, с которой работают вышеназванные инструменты. Это битовые стримы. Битовый стрим – это то, что получается после того, как отработал видео энкодер. Битовый стрим – это поток битов, отвечающий спецификации того или иного кодека. Если мы заглянем в спецификацию большинства кодеков, то увидим, что этот битстрим представляет из себя ничто иное как набор синтаксических элементов данного кодека различной длины. Это, к примеру, ширина и высота картинки, профиль кодирования, коэффициенты трансформации, различные битовые флаги и т.д. Для стандарта HEVC это сотни синтаксических элементов. После кодирования эти битовые стримы доходят до пользователей, помещенные в различные медиа контейнеры – avi, mp4, mpeg ts и т.д. Но разработчики кодеков в основном работают именно с битовыми стримами. Разработчики ПО, дизайнеры, инженеры – электронщики, тестеры имеют свои инструменты для работы. Почему же разработчикам кодеков их не иметь?