Как организован битовый поток идеи h264? / коды начала заголовка

Я пытался немного узнать о h264, просматривая битовый поток видеофайла с помощью шестнадцатеричного редактора. Я нашел здесь начальные коды для плоскостей видеообъекта ( 0x000001b6) и для i-кадров (0x000001b600).

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

Можно ли так смотреть файл в шестнадцатеричном редакторе? Какие еще существуют стартовые коды и как организован файл h264?


person Matt    schedule 28.04.2010    source источник


Ответы (1)


Начальный код 0x000001b6 применяется к видео mpeg-4 part 2, которое является простым профилем. Это соответствует таким кодекам, как XVID и DIVX. H.264 — это mpeg-4 часть 10, который представляет собой расширенный профиль кодирования видео. H.264 использует разные начальные коды.

Я не так хорошо знаком с частью 10, как с частью 2, но краткий просмотр стандарта (ISO 14496-10) показывает, что битовый поток разбит на секции, называемые единицами NAL. Этим устройствам предшествует 24-битный код 0x000001 для синхронизации в соответствии с разделом B.1.1. Следующий байт состоит из полей forbidden_zero_bit, nal_ref_idc и nal_unit_type согласно разделу 7.3.1.

Я не уверен, разделены ли эти блоки NAL на границах кадра или нет. Возможно, вам просто нужно получить стандарт, который описывает весь синтаксис битового потока.

person Jason B    schedule 28.04.2010
comment
Большое спасибо! Вместо этого я начал изучать mpeg4 part2, так как просто хотел получить краткий обзор того, как mpeg4 работает с битовым потоком! Спасибо еще раз! - person Matt; 30.04.2010