Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
MPEG2-TS(Transport Stream (Transport Stream); также известный как TS, TP, MPEG-TS или M2T) — это протокол связи для звука, изображения и данных. Впервые он был использован при передаче DVD-программ в реальном времени. разница: Формат MPEG2 в программах DVD, точнее MPEG2-PS, полное название — Program. Stream (поток программы), а полное имя TS — Transport. Поток (транспортный поток). MPEG2-PS в основном используется для хранения программ фиксированной продолжительности, таких как фильмы на DVD, и позволяет добавлять субтитры и другие программные операции. MPEG-TS в основном используется для передачи программ в реальном времени, например телепрограмм в реальном времени. Проще говоря, отрезание первой части VOB-файла на DVD (или повреждение данных) приведет к тому, что весь файл невозможно будет декодировать, а телепрограммы можно будет декодировать (просматривать) в любой момент, когда Телевизор включен. Таким образом, особенностью формата MPEG2-TS является то, что его можно декодировать независимо, начиная с любого сегмента видеопотока.
(1) Поток ES (Элементарный поток, элементарный поток): поток элементарного кода, непрерывный поток кода несегментированного аудио, видео или другой информации. (2) Поток PES (пакетированный элементарный поток, пакетированный элементарный поток): Поток ES основного кодового потока разделяется на пакеты данных разной длины по мере необходимости, и добавляется заголовок пакета для формирования потока PES упакованного элементарного кодового потока. (3) Поток PS (программный поток): поток кода, который организует несколько компонентов программы в соответствии с их взаимными отношениями и добавляет описания отношений между каждым компонентом. Поток PS — это контейнер инкапсуляции для мультиплексирования цифрового аудио, видео и т. д. Это один или несколько потоков PES с общей временной разверткой, объединенных в общий поток, в основном используемый для хранения программ. Длина пакета не является фиксированной и большой. После потери информации о синхронизации получатель не может определить положение синхронизации следующего пакета, что приведет к синхронизации и серьезной потере информации. Потоковая передача PS подходит для сред с небольшими битовыми ошибками и хорошими каналами, таких как студии, домашние условия и носители данных. (4) Поток TS (транспортный поток): он организует несколько компонентов программы в соответствии с их взаимными отношениями, добавляет описания отношений каждого компонента и информацию о составе программы и дополнительно инкапсулирует их в поток транспортного кода. Поток TS упаковывает видео, аудио, PSI и другие данные в транспортные пакеты для передачи. В основном используется для передачи программ. Длина пакета передачи TS фиксирована и обычно составляет 188 байт. (5) Поток TS и поток PS — это два выходных кодовых потока, определенные в стандарте MPEG-2. В формате TS любой сегмент видеопотока можно декодировать независимо, а в формате PS — нет. Поскольку поток TS обладает высокой способностью противостоять ошибкам передачи, кодовые потоки MPEG-2, передаваемые в настоящее время в среде передачи, в основном используют формат пакета потока TS. (6) Воспроизведение потока TS: перед воспроизведением измените суффикс файла потока TS на .mpg или .mpeg и откройте его для воспроизведения с помощью проигрывателя, который может напрямую воспроизводить поток MPEG-TS (подойдет любой обычный проигрыватель). ). (7) Преимущества потока TS: ① Динамическое распределение полосы пропускания: поскольку длина пакета передачи TS фиксирована, указанную общую полосу частот канала можно гибко распределять в режиме реального времени для видео, аудио и информации данных через PID. Используя эту функцию, ключ дешифрования можно вставить в поток TS в режиме реального времени до того, как платная программа будет транслироваться и отправлена большинству пользователей. ② Масштабируемость: позволяет повторно использовать мультиплексированный поток транспортного кода с другими базовыми потоками видео- и аудиокода для создания потока TS более высокого уровня, занимающего широкую полосу пропускания. ③ Масштабируемость ④ Защита от помех ⑤ Стоимость приемника низкая. (8) Процесс формирования потока ТС: ① Сжимайте [единицу отображения] для создания [единицы ввода], а последовательные [единицы ввода] образуют базовый поток кода. ② Упакуйте ES (базовый поток кода) для формирования PES. ③ Добавьте информацию о времени (PTS/DTS) в пакет PES. ④ Распределите содержимое пакета PES на серию пакетов передачи фиксированной длины. ⑤ Добавьте информацию о времени (PCR) в пакет передачи. ⑥ Добавьте в пакет передачи информацию, специфичную для программы (PSI). ⑦ Непрерывно выводить транспортные пакеты для формирования потока MPEG-TS с постоянной скоростью передачи данных.
На следующем рисунке показан подробный процесс реализации единого кодового потока на этапе кодирования в системе MPEG-2:
Рисунок 1-1 Процесс кодирования MPEG-2 TS
(1) После аналого-цифрового преобразования элементарный поток ES получается посредством кодирования со сжатием MPEG-2. Объем данных этого потока велик и представляет собой только информацию выборки кадров IPB. (2) С помощью упаковщика PES упакуйте и вставьте логотип PTS/DTS в каждый кадр для программирования PES. То, что изначально было форматом потока, теперь представляет собой сегментированную форму пакетов данных. (3) ПЭС упаковывается в пакеты ПС или ТС для хранения по мере необходимости.
MPEG-2 предусматривает, что длина транспортного пакета TS составляет 188 байт. Однако среда связи добавит к пакету байты проверки ошибок, в результате чего длина пакета будет отличаться от 188 байт. Например: В правилах DVB длина пакета составляет 204 байта: ① При прохождении через модулятор после каждого пакета передачи добавляется 16-байтовый код прямого исправления ошибок Рида-Соломона, образуя таким образом 204-байтовый пакет данных. После модуляции всегда остается 204 байта пакетов данных. ② Перед модуляцией вставьте код RS или фиктивный код RS в мультиплексор. В правилах ATSC в качестве длины пакета используется 208 байт: добавляются 20 байтов кода прямого исправления ошибок RS (Рида-Соломона). В отличие от DVB, ATSC предусматривает, что коды RS могут появляться только в модулированных потоках TS. Все пакеты TS разделены на части заголовка и полезной нагрузки. В пакет TS можно заливать много чего (заполненное заполняет часть payload), в том числе: видео, аудио, данные (включая PSI, SI и любую другую форму данных).
Поток TS представляет собой формат битового потока на основе пакетов. Каждый пакет имеет размер 188 байтов (или 204 байта, с добавлением 16 байтов данных проверки CRC после 188 байтов, а остальные форматы такие же). Весь поток TS имеет следующий вид:
Для анализа информации заголовка см. 1.4.1. Адаптивная область пакета TS состоит из четырех частей: длины адаптивной области, различных индикаторов флагов, информации, относящейся к вставленным флагам, и данных заполнения. Часть флага состоит из 8 частей: индикатор разрыва связи, индикатор произвольного доступа, индикатор оптимизации ES, флаг PCR, флаг контакта, флаг выделенных данных передачи, флаг исходной PCR и флаг расширения адаптивной области. Важным является поле PCR в части флага, которое может предоставлять данные синхронизации для тактовой частоты кодека 27 МГц для синхронизации. Процесс заключается в использовании PLL для сравнения локальной фазы PCR во время декодирования с входной мгновенной фазовой синхронизацией PCR, чтобы определить, синхронизирован ли процесс декодирования. Если нет, используйте эту мгновенную фазу PCR для регулировки тактовой частоты. Поскольку в цифровых изображениях используются сложные и разные алгоритмы кодирования сжатия, данные каждого изображения различны, что делает невозможным получение тактовой информации непосредственно из начала сжатых и закодированных данных изображения. С этой целью адаптивные области некоторых (но не всех) пакетов TS выбираются для передачи информации о синхронизации. Следовательно, адаптивная область выбранного пакета TS может использоваться для измерения битов управления и важной управляющей информации информации пакета. Адаптивную область не обязательно отправлять с каждым пакетом. Объем отправки в основном определяется параметром метки времени, специфичным для передачи, выбранного пакета TS. Индикатор произвольного доступа и метка контакта в метке обеспечивают произвольную точку входа для потока сжатых I-кадров данных при изменении программы, а также обеспечивают удобство вставки локальных программ. Данные заполнения в адаптивной области обусловлены тем, что длина пакета PES не может быть преобразована в целое число, кратное размеру пакета TS. Последний пакет TS сохраняет небольшую часть полезной емкости и заполняется байтами заполнения. Это может предотвратить опустошение буфера и его заполнение. поддерживать Общая скорость передачи данных остается постоянной.
В заголовке пакета TS содержится информация о передаче: синхронизация, есть ли ошибки, есть ли скремблирование, PCR (опорный такт программы) и другие флаги. Длина заголовка пакета TS не фиксирована, первые 32 бита (4 байта) фиксированы, за ними может следовать поле адаптации (поле адаптации). 32 бита (4 байта) — это минимальный заголовок. Структура заголовка фиксирована следующим образом:
typedef struct TS_packet_header
{
unsigned sync_byte : 8;
unsigned transport_error_indicator : 1;
unsigned payload_unit_start_indicator : 1;
unsigned transport_priority : 1;
unsigned PID : 13;
unsigned transport_scrambling_control : 2;
unsigned adaption_field_control : 2;
unsigned continuity_counter : 4;
} TS_packet_header;
PID — это уникальный идентификационный знак в потоке TS, а содержимое пакетных данных определяется PID. Если PID в заголовке пакета в потоке TS равен 0x0000, то пакетными данными этого пакета является таблица DVB PAT, а не другие типы данных (такие как видео, аудио или другая бизнес-информация). В следующей таблице приведены значения PID для некоторых таблиц, эти значения фиксированы и не подлежат изменению.
поверхность | Значение ПИД |
---|---|
PAT | 0x0000 |
CAT | 0x0001 |
TSDT | 0x0002 |
EIT,ST | 0x0012 |
RST,ST | 0x0013 |
TDT,TOT,ST | 0x0014 |
Информация, передаваемая полезной нагрузкой в пакете TS, включает два типа: ① Видео, аудио PES пакеты и вспомогательные данные; ② Информация, специфичная для программы PSI. Конечно, пакет TS также может быть пустым. Пустые пакеты используются для заполнения потока TS и могут быть вставлены или удалены во время ремультиплексирования. При повторном использовании системы потоки видео и аудио ES должны быть упакованы для формирования потоков видео и аудио PES. Вспомогательные данные (например, информация телетекста) не должны быть упакованы в пакеты PES. Длина пакета PES не фиксирована, аудиопакет PES меньше или равен 64 КБ, а видеопакет обычно представляет собой один пакет PES на кадр. Пакет PES изображения обычно передается множеством пакетов TS. MPEG-2 предусматривает, что пакет PES должен передаваться целым числом пакетов TS. Если последний пакет TS, содержащий пакет PES, не заполнен, он заполняется байтами заполнения, когда формируется новый пакет PES, для начала передачи необходимо использовать новый пакет TS; (1) Связанные с ПЭУ PES — это упакованный ES со вставленными PTS и DTS. Обычно один PES представляет собой один кадр изображения.
Рисунок 1-2. Состав пакета пакетированного элементарного потока (PES).
PES упаковывается в потоки TS или PS, и часто один PES делится на несколько пакетов TS. ① Начальный код пакета PES: Префикс кода начала пакета представляет собой фиксированную структуру кодового слова, а его значение равно 0x000001, которое используется для синхронизации пакетов PES как на отправляющей, так и на принимающей стороне. ② Длина PES-пакета: Длина пакета PES является переменной. Поле длины пакета PES имеет два байта, общая длина которых составляет 16 бит. Таким образом, максимальная длина пакета PES составляет 65535 байт. ③ PES-заголовок: Функции заголовка PES варьируются в зависимости от конкретных приложений, включая управление скремблированием, приоритет, скорость потока ES и CRC и т. д., среди которых есть две важные задачи: PTS и DTS. Как видите, PTS/DTS включен в пакет PES. Эти два параметра являются ключом к решению проблемы синхронного отображения видео и звука и предотвращению переполнения или опустошения входного буфера декодера. ПТСповерхностьшоу Единица отображения появляется в целевом декодере системы (STD: system target декодера), поверхность DTS указывает время, когда все байты единицы доступа удаляются из буфера декодирования ES STD. Каждый заголовок I, P и Б-кадр имеет PTS и DTS, но PTS и DTS одинаковы для Б-кадр, и нет необходимости отмечать DTS Б-кадр. Для I-кадров и P-кадров они должны быть сохранены в буфере переупорядочения декодера перед отображением, а затем отображены после задержки (переупорядочение должно быть отмечено соответственно). (2) Информация, специфичная для программы PSI (программа Specific Information) Для управления различными типами пакетов данных TS необходимы некоторые специальные пакеты TS для установления взаимосвязи между каждым пакетом данных TS. Информация, содержащаяся в этих специальных пакетах TS, является информацией, специфичной для программы. В разных стандартах он имеет разные названия: ① В MPEG-2 называется PSI; ② Стандарт DVB расширяет PSI в соответствии с фактическими потребностями, что называется информацией SI; ③ В стандарте ATSC это информация PSIP; В MPEG-2 предусмотрены следующие методы описания информации PSI:
ITU-T Rec.H.222.0 | ISO/IEC Как определено в 13818-1 PSI-поверхность может быть разделена на один или несколько сегментов и помещена в пакеты транспортного потока. Абзац — это грамматическая структура, используемая для объединения ITU-T Rec.H.222.0 | ISO/IEC Как определено в 13818-1PSIповерхность отображается в пакет транспортного потока. 1)PATповерхность Поток TS содержит одну или несколько поверхностей PAT. Поверхность PAT передается пакетом TS с PID 0x0000. Его функция заключается в предоставлении каждому мультиплексированному транспортному потоку включенной программы и номера программы, а также позиции PMT соответствующей программы, то есть номера TS. пакет ПМТ. ПИД,Также указано местоположение NIT.,То есть значение PID пакета TS NIT.
2)PMTповерхность PMT используется в транспортном потоке для указания положения видео, аудио и данных, составляющих определенный набор программ в транспортном потоке, то есть значения соответствующего пакета TS. PID и расположение поля Program Clock Reference (PCR) для каждой программы.
Тип исходного потока
Для потоков PS каждый заголовок пакета PES содержит PTS и DTS, коды идентификации потока, которые используются для различения ES с различными свойствами. Пакеты PES затем мультиплексируются в пакеты PS через мультиплексор PS. Фактически пакет PES разбивается на более мелкие пакеты PS. Во время декодирования демультиплексор разлагает PS на пакеты PES, а распаковщик затем разлагает пакеты PES на видео и аудио ES и, наконец, вводит их в соответствующие декодеры для декодирования. Один вопрос: Как обеспечить синхронизацию видео и звука при декодировании каждого ES? Помимо взаимодействия между PTS и DTS, еще одним важным параметром является SCR (системная тактовая частота). Во время кодирования PTS, DTS и SCR генерируются STC (системными часами времени). Во время декодирования STC восстанавливает и использует локальную фазу SCR и вводит ее через контур фазовой автоподстройки частоты (мгновенная фаза SCR). lock сравнивается, чтобы определить, синхронизирован ли процесс декодирования. Если он не синхронизирован, этот мгновенный SCR используется для настройки локальной тактовой частоты 27 МГц. Наконец, PTS, DTS и SCR работают вместе, чтобы решить проблему одновременного воспроизведения видео и аудио. Отрывок в формате PS выглядит следующим образом:
Длина пакетов PS относительно большая и переменная, и в основном используется в безошибочных средах, поскольку чем она длиннее, тем сложнее синхронизироваться, а в случае потери пакетов также сложнее провести повторную сборку. Поэтому PS подходит для редактирования информации о программах и применения приложений локального содержания.
ссылка:«Точки знания кодека MPEG-4видео»
MPEG-4 означает «Группа экспертов по движущимся изображениям 4». Это набор стандартов кодирования сжатия аудио- и видеоинформации. Он установлен «Группой экспертов по движущимся изображениям» при Международной организации по стандартизации (ISO) и Международной электротехнической комиссии. (IEC Group (MPEG), первая версия была принята в октябре 1998 года, а вторая версия — в декабре 1999 года. Формат MPEG-4 в основном используется для потоковой передачи онлайн, оптических дисков, передачи голоса (видеотелефония) и телевещания.
Хотя H.264 — это стандарт кодека нового поколения.,Стремясь к более высокой эффективности кодирования и лаконичной форме выражения поверхности,Также предлагает очень хорошее качество видео.,На данный момент это самый эффективный метод сжатия видео.,Однако из-за внедрения различных новых технологий кодирования в H.264,Это приводит к резкому увеличению вычислительной нагрузки кодека.,Не идеально подходит для систем кодеков на базе портативных и беспроводных устройств.,В сравнении,На основе простой архитектуры(Simple Профиль, SP) и MPEG-4 Стандарт SP очень подходит для таких систем.
Особенности MPEG-4:
MPEG-4: Выдающейся особенностью стандарта MPEG-4 является работа на основе контента, доступ и передача аудио- и видеоданных. Стандарт MPEG-4 представляет собой открытую, гибкую и расширяемую структурную форму. В любое время можно добавлять новые эффективные шаблоны алгоритмов, а декодеры можно настраивать на месте в соответствии с требованиями различных приложений.
По сравнению с MPEG-1, MPEG-2 и H.264, MPEG-4 уделяет больше внимания интерактивности и гибкости мультимедийных систем. Наиболее существенным отличием является то, что он использует концепцию объектно-ориентированного кодирования, то есть во время кодирования сцена делится на несколько видео- и аудиообъектов, которые связаны между собой во времени и пространстве, и кодируются отдельно и мультиплексируются перед передачей на устройство. Принимающая сторона декодирует разные объекты отдельно. Наконец, синтезируйте необходимое видео и аудио. Это облегчает различное кодирование и операции с разными объектами, а также способствует интеграции разных типов данных.
Он не только поддерживает мультимедийную связь со скоростью передачи данных ниже 64 кбит/с, но также поддерживает видеоприложения вещательного и телевизионного уровня. MPEG-4 будет широко использоваться в цифровом телевидении, динамических изображениях, мультимедийном мониторинге в реальном времени, мультимедийных системах, основанных на хранении и поиске контента, визуальных играх, видеоконференциях на основе моделей лица, интерактивных мультимедийных приложениях, студийном телевидении и т. д. Продвижение Окончательная интеграция трех основных сетей телекоммуникаций, компьютеров, радио и телевидения станет основным направлением стандартов сжатия в будущем.
MPEG-4 может использовать разные инструменты кодирования и декодирования для разных приложений, а также предлагает концепцию профиля. Класс — это подмножество набора инструментов, которые могут реализовать определенную функцию MPEG-4. Профиль позволяет пользователям выбирать и использовать соответствующие инструменты MPEG-4 в соответствии со своими потребностями, и при построении декодера нет необходимости готовить соответствующие алгоритмы декодирования для всех алгоритмов кодирования, используемых в MPEG-4.
MPEG-4Стандарт определяет многиевизуальные инструменты,Каждый инструмент выполняет работу по кодированию. Каждый класс имеет свой набор поддерживаемых инструментов.,Адаптироваться к использованию в различных средах。Simpile профиль в основном использует следующие видеоинструменты:
i.Iкодирование кадра(I-VOP),внутреннийVOP:Кодируйте только свою собственную информацию。MPEG-4Стандарт будет8Область пикселей 8 становится блоком, а 1616Область пикселя называется макроблоком.(macroblock)。IЕсть толькоintraкусок,Блоки **intra** сжимаются только внутри кадра. I-кадр — это независимый кадр, служащий основой для прогнозирования.,Имеет меньшую степень сжатия.
ii.Pкодирование кадра(P-VOP),Односторонний прогнозируемый VOP: Он кодируется с использованием технологии компенсации движения, основанной на расположенном перед ним VOP. P-кадр содержит внутриблочный и межблочный, P-кадр интер (межкадровый) Блок использует изображение перед этим кадром в качестве опорного значения для выполнения прогнозирования движения. из-за использования Одностороннее прогнозирование движения,PКадры могут иметь умеренную степень сжатия.。MPEG-4видео Есть еще один видБ-кадр(Двустороннее предсказаниеVOP,B-VOP),Прогнозирование двунаправленного движения с использованием двух изображений из прошлого и будущего,Можно получить более высокую степень сжатия,Но его расчетная сумма также является самой большой среди трех типов кадров. Простой профиль не поддерживает B-каркасы.
Четвертая категорияVOP (Плоскость видеообъекта):внутреннийVOP(I-VOP)、Односторонний прогнозируемый VOP (P-VOP)、Двунаправленный прогнозируемый VOP (B-VOP)、Панорамный ВОП (С-ВОП).
iii. Прогнозирование переменного/постоянного тока. Прогнозирование AC/DC выполняется на блочной основе. Поскольку данные изображения имеют пространственную корреляцию, при внутриблочном кодировании значение компонента DC/AC (AC/DC) верхнего левого блока изображения после преобразования DCT может использоваться для прогнозирования значения компонента DC/AC нижнего правого блока. .
iv.разделение данных(Data Partition)。существоватьвидео При кодировании данных,Закодированные данные можно разделить на текстуры,Три части: вектор движения и управляющее слово. на принимающей стороне,Ошибки в управляющих словах оказывают наибольшее влияние на декодирование.,вектор движения секунда,Текстура оказывает минимальное влияние. Поскольку для кодирования каналов,Хорошая помехоустойчивость означает введение большей избыточности в поток кода. так,Если источник данных закодирован, разделите эти три части.,Используйте разные методы кодирования канала соответственно,Это может максимально улучшить помехоустойчивость при передаче с низкой полосой пропускания.
v. Обратный VLC (обратный VLC). Для обычного кодирования VLC,Если в потоке кода есть ошибка,Никакие последующие данные не могут быть декодированы. Поверхность обратного кода VLC специально разработана.,Декодирование может осуществляться и в обратном направлении. так,Если возникает ошибка во время передачи данных в инвертированном кодировании VLC,Может декодировать вперед с конца потока кода VLC.,Решайте до тех пор, пока не ошибетесь,Таким образом, можно успешно восстановить больше потоков кода. Инвертированный VLC повышает помехоустойчивость кодирования,Но за это приходится платить более низкой эффективностью кодирования, чем у обычного VLC.
vi. короткая голова header)。MPEG-4существовать В процессе кодирования в качестве завершения кодового потока добавляется множество управляющих слов.。Если используется короткая головка,Многие управляющие слова будут опущены.,Декодер будет декодировать в соответствии с фиксированной конфигурацией протокола. Короткие заголовки жертвуют некоторой гибкостью кодирования.,В обмен на эффективность и скорость кодирования.
Декодирование MPEG-4 — это процесс вызова соответствующих инструментов для управления кодовым потоком на основе управляющей информации в кодовом потоке.
MPEG-4 состоит из ряда подстандартов.,позвонил в министерство,Включает следующие разделы. Для медиакодеков,фокуссосредоточиться наPart2,Part 3,Part 10。 Часть 1 (ИСО/МЭК 14496-1): Система Описывает метод синхронизации и микширования видео и аудио (мультиплексирование, сокращенно MUX). Определяет формат контейнера MP4 и поддерживает интуитивно понятные и интерактивные функции, такие как меню DVD. Часть 2 (ИСО/МЭК 14496-2): Видео Определяет кодек для различной визуальной информации, включая видео, неподвижные текстуры, компьютерную графику и многое другое. Для видеочасти одним из наиболее часто используемых «Профилей» является «Расширенный». Simple Profile (ASP), например, кодировка XviD принадлежит MPEG-4Part 2. Включая 3ivx, DivX4/Project Mayo,DivX 5,Envivio,ffmpeg/ffds,pegable,Nero Digital, QuickTime, Sorenson, XviD и другие распространенные видеоформаты. Важно отметить, что Divx 3.11,MS MPEG-4, RV9/10, VP6 и WMV9 не относятся к стандартному стандарту MPEG-4. Часть 3 (ИСО/МЭК 14496-3): Аудио Определяет набор кодеков для кодирования различных аудиосигналов. Включает расширенное кодирование звука (расширенное Audio Кодировка, сокращенно AAC) Несколько вариантов и других инструментов кодирования аудио/речи. То есть аудиостандарты AAC, включая LCAAC, HE AAC и т. д. поддерживают кодирование каналов 5.1, что позволяет добиться лучших результатов при более низкой скорости передачи данных (по сравнению с MP3, OGG и т. д.). Часть 4 (ИСО/МЭК 14496-4): Консистенция Определены процедуры тестирования соответствия других частей настоящего стандарта. Часть 5 (ИСО/МЭК 14496-5): Справочное программное обеспечение Программное обеспечение предоставляется для демонстрации функций и иллюстрации функций других частей настоящего стандарта. Часть 6 (ИСО/МЭК 14496-6): Структура интеграции передачи мультимедиа. Это DMIF: Доставка Multimedia Integration Framework Часть 7 (ИСО/МЭК 14496-7): Оптимизированное эталонное программное обеспечение. Приводятся примеры оптимизированных реализаций (здесь реализация относится к части 5). Часть 8 (ИСО/МЭК 14496-8): Передается по IP-сети. Определяет способ передачи контента MPEG-4 по IP-сетям. Часть 9 (ИСО/МЭК 14496-9): Эталонное оборудование. Решения по проектированию аппаратного обеспечения предназначены для демонстрации того, как функции других частей настоящего стандарта могут быть реализованы в аппаратном обеспечении. Часть 10 (ИСО/МЭК 14496-10): Расширенное кодирование видео, также известное как ITU. H.264, часто пишется как H.264/AVC. Или называется Advanced Video Coding (Расширенное кодирование видео). Video Кодирование, сокращенно AVC): определяет видеокодек (кодек), AVC и XviD оба относятся к кодировке MPEG-4, но поскольку AVC принадлежит к MPEG-4Part 10. По техническим характеристикам лучше MPEG-4. XviD Part2 нуждается в доработке. С технической точки зрения это то же самое, что и ITU-T. Стандарт H.264 является последовательным, поэтому он называется MPEG-4. AVC/H.264。 Часть 11 (ИСО/МЭК 14496-11): Описание сценария и механизм приложения. Интерактивные медиа доступны для нескольких профилей, включая версии 2D и 3D. Пересмотренный MPEG-4 Part 1:2001 и две редакции Части 1. Он определяет механизм приложения (доставка, жизненный цикл, формат, поведение загружаемых приложений с байт-кодом Java), формат двоичного сценария. (BIFS:Binary Format for Сцена), расширяемый текстовый формат MPEG-4 (текстовый формат, использующий XMLописывать мультимедийный контент MPEG-4), описание поверхности системного уровня. Это MPEG-4 BIFS, XMT, MPEG-J в части 21. Часть 12 (ИСО/МЭК 14496-12): формат медиафайлов на основе ISO. Определяет формат файла для хранения медиаконтента. Часть 13 (ИСО/МЭК 14496-13):IP Управление и защита интеллектуальной собственности (IPMP) for Intellectual Property Management and Защита) расширение. Часть 14 (ИСО/МЭК 14496-14): формат файла MPEG-4. Определяет формат видеофайла для хранения контента MPEG-4 на основе части 12. Часть 15 (ИСО/МЭК 14496-15): формат файла AVC. Определяет формат файла на основе Части 12 для хранения видеоконтента Части 10. Часть 16 (ИСО/МЭК 14496-16): Расширение платформы анимации (AFX : Animation Framework eXtension)。 Часть 17 (ИСО/МЭК 14496-17): формат синхронизированных текстовых субтитров. Часть 18 (ИСО/МЭК 14496-18): Сжатие и потоковая передача шрифтов (для общедоступных форматов шрифтов). Часть 19 (ИСО/МЭК 14496-19): Поток синтезированного материала (Синтезированный Texture Stream)。 Часть 20 (ИСО/МЭК 14496-20): Простое представление поверхности сцены (LASeR: Lightweight Scene Representation)。 Часть 21 (ИСО/МЭК 14496-21): расширение MPEG-J для рендеринга (рендеринг). Часть 22 (ИСО/МЭК 14496-22): Открытый формат шрифта (Открытый Font Format)。 Часть 23 (ИСО/МЭК 14496-23): Символическая музыкальная поверхность. Music Representation)。 Часть 24 (ИСО/МЭК 14496-24): Звук и взаимодействие с системой (Аудио and systems interaction)。 Часть 25 (ИСО/МЭК 14496-25): Модель сжатия 3D-графики (3D Graphics Compression Model)。 Часть 26 (ИСО/МЭК 14496-26): Проверка целостности звука. Определите тестовые аудиоданные с помощью ISO/IEC 14496-3 Последовательен ли метод (Аудио conformance)。 Часть 27 (ИСО/МЭК 14496-27): проверка целостности 3D-графики. Определите тестовые трехмерные графические данные с помощью ISO/IEC. 14496-11:2005, ISO/IEC 14496-16:2006, ISO/IEC 14496-21:2006 и ISO/IEC. 14496-25:2009 Согласован ли метод (3D Graphics conformance)。
Давайте сначала проанализируем его иерархическую структуру. Ее можно разделить на 5 уровней (соответствующая картина очень ясна):
В MPEG-4 представлен видеообъект VO (Видео Объект), поддерживающая интерактивные функции на основе контента и иерархическое расширение (классификация в воздушной области, классификация во временной области). Видеообъектом может быть любая область видеосцены, а время его существования может быть сколь угодно большим. Видео объектная плоскость ВОП (Видео Object Plane)дав каждый конкретный моментвидеообъект。Таким образом, сцена в каждом кадре последовательности изображений,Рассматривается как состоящий из VOP разных плоскостей видеообъектов.,тот же объектнепрерывныйVOPназываетсяVO。видеообъект Можетдавидео Люди или конкретный пейзаж в эпизоде,как диктор в телевизионных новостях,Или движущаяся машина по телевизору, это также может быть двухмерная или трехмерная графика, синтезированная с помощью компьютерных технологий.
Процесс кодирования и декодирования MPEG-4 выполняется на VOP. Таким образом, входная видеопоследовательность может быть разделена на несколько видеообъектов посредством анализа.,V0P формируется после кодирования одного и того же ВО. Кодирование VOP использует принципы кодирования, аналогичные принципам предыдущего стандарта MPEG: такие алгоритмы, как DCT и оценка движения. Поскольку V0P может иметь любую форму,Следовательно, система кодирования должна обрабатывать информацию о форме.,Это сильно отличается от традиционного стандарта кодирования видео, который может обрабатывать только прямоугольные последовательности кадров. В MPEG-4,Прямоугольные рамки считаются частным случаем V0P.,В это время системе кодирования не требуется обрабатывать информацию о форме.,Переродился во что-то похожее на MPEG. 2м. 263 традиционное кодирование видео.
Потоки кода MPEG4 часто начинаются следующим образом:
00 00 01 B0 F5 00 00 01 B5 09 00 00 01 00 00 00
01 20 08 86 84 00 3F 18 58 21 20 A3 1F 00 00 01
B2 58 76 69 44 30 30 36 32 00 00 01 B6
Согласно стандарту, определение выглядит следующим образом: 00 00 01 B0 — это метка начала последовательности видеообъекта (VISOBJSEQ_START_CODE), а последующие данные имеют только один бит F5. Поверхность указывает, что типы профиля и уровня этой последовательности кодирования видеообъекта — XVID_PROFILE_AS_L4. Значения типа профиля определены в xvid.h. 00 00 01 B5 — это флаг начала видеообъекта (VISOBJ_START_CODE), за которым следует только одно шестнадцатеричное значение 09. Из этого бита данных можно получить номер версии видеообъекта, информацию о типе видео и типе видеосигнала. 00 00 01 00 — флаг начала видеообъекта (VIDOBJ_START_CODE), 00 00 01 20 — это флаг начала слоя видеообъекта (VIDOBJLAY_START_CODE), а последующие 11-битные шестнадцатеричные данные более важны. Соотношение сторон VOP, форма видеообъекта, разрешение изображения и другие данные, необходимые для декодирования, получаются из этих 11-битных данных. . 00 00 01 B2 — это флаг начала пользовательских данных (USERDATA_START_CODE), имеется 8 бит шестнадцатеричных пользовательских данных. 00 00 01 B6 — это метка начала VOP (VOP_START_CODE). Каждые закодированные данные VOP начинаются с заголовка идентификации VOP. Если используется шестнадцатеричная поверхность данных, значение равно 00. 00 01 Б6. При декодировании используйте 00 00 01 B6 определяет, является ли это началом VOP, и считывает тип кодирования, значение квантования и другие параметры из данных после заголовка VOP, чтобы завершить декодирование кадра VOP. Сразу за VOP идет 2-битный Знак используется для обозначения того, является ли данный Фрейм I Frame,P Frame,B Рамка или S Frame(GMS-VOP)。 Признаки следующие: 00: I Frame 01: P Frame 10: B Frame 11: S Frame 00 00 01 Два старших бита следующего байта после b6, 00поверхность указывают на I. frame, 01поверхность ПоказыватьP рама, 10 поверхностей ПоказыватьB рамка. Просто объяснить это можно картинкой. На картинке ниже начинается первый VOS, а второй — I. Frame:
Существуют две международные организации, которые разрабатывают технологии кодирования и декодирования видео. Одна из них — «Международный союз электросвязи (ITU-T)», которая разрабатывает такие стандарты, как H.261, H.263, H.263+ и т. д., и Другой - «Международный союз электросвязи (ITU-T)». Организация по стандартизации (ISO). Она разработала такие стандарты, как MPEG-1, MPEG-2, MPEG-4 и т. д. H.264 — это совместная группа по видео (JVT, Joint), созданная совместно двумя организациями (Группа экспертов по кодированию видео ITU-T (VCEG) и Группа экспертов по движущимся изображениям ISO/IEC (MPEG)). Video Это стандарт цифрового видеокодека с высокой степенью сжатия, совместно разработанный группой ITU-T, поэтому он одновременно является стандартом H.264 ITU-T и стандартом усовершенствованного кодирования видео MPEG-4 ISO/IEC (Advanced Video Coding). Video Кодирование, AVC) 10 место часть. Поэтому будь то MPEG-4 AVC、MPEG-4 Part 10 или ИСО/МЭК 14496-10, все относятся к H.264. Каждая основная часть стандарта H264 включает в себя Access Unit разделитель (разделитель единицы доступа), SEI (дополнительная информация расширения), первичный coded изображение (базовое кодирование изображения), избыточное Coded Изображение (избыточное кодирование изображения). И мгновенное Decoding Обновление (IDR, мгновенное обновление декодирования), гипотетическое Reference Декодер (HRD, гипотетическое эталонное декодирование), Гипотетический Stream Планировщик (HSS, гипотетический планировщик потоков). Преимущества: (1) Низкая скорость кода (Низкая Bit Скорость): и MPEG2 и MPEG4 По сравнению с ASP и другими технологиями сжатия при том же качестве изображения объем данных, сжатых с помощью технологии H.264, составляет всего 1/8 от MPEG2 и 1/3 от MPEG4. (2) Высококачественные изображения: H.264 обеспечивает непрерывное, плавное изображение высокого качества (качество DVD). (3) Высокая отказоустойчивость: H.264 предоставляет необходимые инструменты для устранения таких ошибок, как потеря пакетов, которые легко возникают в нестабильных сетевых средах. (4) Высокая сетевая адаптируемость: H.264 обеспечивает уровень сетевой абстракции (сетевой уровень). Abstraction Layer), позволяющий легко передавать файлы H.264 в различных сетях (таких как Интернет, CDMA, GPRS, WCDMA, CDMA2000 и т. д.). Самым большим преимуществом H.264 является высокая степень сжатия данных. При тех же условиях качества изображения степень сжатия H.264 более чем в 2 раза выше, чем у MPEG-2, и в 1,5–2 раза выше, чем у MPEG-4. Например, если размер исходного файла составляет 88 ГБ, он становится 3,5 ГБ после сжатия с использованием стандарта сжатия MPEG-2 со степенью сжатия 25:1 и становится 879 МБ после сжатия с использованием стандарта сжатия H.264. от 88 ГБ до 879 МБ. Степень сжатия H.264 достигает поразительного показателя 102:1. Низкая скорость кода (Low Bit Скорость) играет важную роль в высокой степени сжатия H.264, а также MPEG-2 и MPEG-4. По сравнению с ASP и другими технологиями сжатия, технология сжатия H.264 значительно сэкономит пользователям время загрузки и стоимость трафика данных. Особо стоит отметить, что H.264 не только имеет высокую степень сжатия, но также обеспечивает высококачественное и плавное изображение. Благодаря этому видеоданные, сжатые с помощью H.264, требуют меньшей пропускной способности при передаче по сети. H.264/AVC может работать на различных скоростях и широко используется в службах потоковой передачи мультимедиа, видео по запросу, видеоиграх и мобильных мультимедийных коммуникациях с низкой скоростью передачи данных в Интернете/интранете. (видео Мобильные телефоны и т. д.), интерактивные мультимедийные приложения, мультимедийный мониторинг в реальном времени, цифровое телевидение и студийное телевидение, виртуальные видеоконференции и т. д. имеют тенденцию доминировать в вышеуказанных областях и имеют очень широкие перспективы развития и применения.
(1) Поле и кадр: Поле или кадр видео можно использовать для создания кодированного изображения. В телевидении для уменьшения мерцания большой площади кадр делится на два переплетающихся поля. (2) Срез: в каждом изображении несколько макроблоков расположены в виде срезов. Фильмы делятся на фильмы I, фильмы B, фильмы P и некоторые другие фильмы. Слайс I содержит только макроблоки I, срез P может содержать макроблоки P и I, а срез B может содержать макроблоки B и I.
Назначение срезов — ограничить распространение и передачу битовых ошибок, чтобы срезы кодирования были независимы друг от друга. При прогнозировании определенного фрагмента нельзя использовать макроблоки в других фрагментах в качестве опорных изображений, чтобы ошибка прогнозирования в определенном фрагменте не распространялась на другие фрагменты. (3) Макроблок: кодированное изображение обычно делится на несколько макроблоков. Макроблок состоит из яркостного пикселя размером 16×16 и дополнительного пикселя 8×8. Cb и 8×8 Состоит из блоков пикселей цвета Cr. (4) Связь между данными: В структуре H.264 закодированные данные видеоизображения называются кадром. Кадр состоит из одного фрагмента (среза) или нескольких фрагментов. Слайс состоит из одного или нескольких макроблоков (МБ). Макроблок состоит из 16 составных фрагментов. данных ×16 юв. Макроблок — это базовая единица кодирования H264. (5) Три разные формы данных в процессе кодирования H264: ① Битовая строка данных SODB -->Самые оригинальные закодированные данные, то есть данные VCL; ② RBSP Полезная нагрузка необработанной последовательности байтов --->Конечный бит (RBSP) добавляется после SODB trailing биты: один бит «1», несколько бит «0») для выравнивания байтов; ③ EBSP Полезная нагрузка расширенной последовательности байтов —- > существоватьRBSPПо сути, добавляется ложный проверочный байт.(0X03)это причинада:существоватьNALUдобавить вAnnexbВовремя,Перед каждой группой NALU необходимо добавлять стартовый код StartCodePrefix.,Если срез, соответствующий NALU, является началом кадра, 4-битная байтовая поверхность используется для обозначения 0x00000001.,В противном случае 3-битная байтовая поверхность используется для представления 0x000001 (который является частью кадра). кроме того,Чтобы предотвратить включение в тело NALU стартового кода, конфликтующего с,во время кодирования,Каждый раз, когда встречаются два байта, они равны 0.,Просто вставьте байт 0x03. Удалите 0x03 при декодировании. Также называется операцией обстрела.
Кодовый поток H.264 разделен на два формата: Приложение-B и AVCC.
Формат AVCC:также называетсяAVC1Формат,формат MPEG-4,Выравнивание байтов,поэтомутакже называетсяByte-Stream Формат. для mp4/flv/mkv, VideoToolbox。 Формат Приложения-B:также называетсяMPEG-2 transport stream формат формата (формат ts), Формат ElementaryStream.
Есть два различия: одно — организационный формат наборов параметров (SPS, PPS), другое — разделение;
(1)Annex B
(2)extradata
1> H.264/AVC extradata грамматика
Ссылка: «Структурированное видео модуля NAL ISO/IEC 14496-15». Структура AVCDecoderConfigurationRecord: (минимальная длина 7 байтов).
MPEG-4 Part 15 “Advanced Video Coding (AVC) file format” section 5.2.4.1 Положения заключаются в следующем:
aligned(8) class AVCDecoderConfigurationRecord {
unsigned int(8) configurationVersion = 1;
unsigned int(8) AVCProfileIndication;
unsigned int(8) profile_compatibility;
unsigned int(8) AVCLevelIndication;
bit(6) reserved = ‘111111’b;
unsigned int(2) lengthSizeMinusOne;
bit(3) reserved = ‘111’b;
unsigned int(5) numOfSequenceParameterSets;
for (i=0; i< numOfSequenceParameterSets; i++) {
unsigned int(16) sequenceParameterSetLength ;
bit(8*sequenceParameterSetLength) sequenceParameterSetNALUnit;
}
unsigned int(8) numOfPictureParameterSets;
for (i=0; i< numOfPictureParameterSets; i++) {
unsigned int(16) pictureParameterSetLength;
bit(8*pictureParameterSetLength) pictureParameterSetNALUnit;
}
}
Примечание. В FFmpeg анализ дополнительных данных см. в ff_h264_decode_extradata().
Уведомление: Последние 2 бита 5-го байта поверхности представляют собой NAL. Количество байт размера. В формате AVCC каждому NAL будет предшествовать NAL. поле размера. НАЛ размер может быть 1 байт, 2 байта или 4 байта (чаще встречается 4 байта). Важной целью анализа дополнительных данных является подтверждение этого значения. (А формат Приложения-B требует разделения NAL, просто определите 0x000001)
2> H.264 extradata Пример (формат AVCC)
extradata Как указано выше
extrasize 47
05| FF NAL size: 4 байта
06| E1 SPS num: 1
07| 00 1F SPS size: 31 байт
09| 67 NAL type: SPS
40| 01 PPS num: 1
41| 00 05 PPS size: 5 байт
42| 68 NAL type: PPS
H.264 разделен на два уровня с иерархической точки зрения: уровень кодирования видео (VCL, Video Coding уровень) и уровень сетевого извлечения (NAL, Network Abstraction Слой). VCL выводит исходный битовый поток данных (SODB, String of data бит), поверхность показывает фактический исходный поток двоичного кода после завершения кодирования элемента грамматики H.264. SODB обычно не может гарантировать выравнивание байтов, поэтому его необходимо дополнить исходной загрузкой последовательности байтов (RBSP, Raw Byte Sequence Полезная нагрузка). Уровень NAL фактически представляет собой конечный выходной поток кода H.264. Он состоит из NALU. Каждый NALU включает в себя набор информации заголовка NAL, соответствующей данным кодирования видео, и исходную загрузку последовательности байтов (RBSP, Raw). Byte Sequence Полезная нагрузка). Связь между вышеуказанными существительными следующая:
RBSP = SODB + RBSP trailing bits
NALU = NAL header(1 byte) + RBSP
H.264 = Start Code Prefix(3 bytes) + NALU + Start Code Prefix(3 bytes) + NALU +…
Таким образом, структура потока кода H.264 выглядит следующим образом:
Иерархия потоков кода h.264:
Кодер помещает каждый NALU в группу независимо и полностью. Поскольку группы имеют заголовки, декодер может легко обнаружить границы NALU и по очереди извлечь NALU для декодирования. Каждый NALU разделен стартовым кодом (Start Code префикс) разделены, стартовый код делится на два типа: 0x000001 (3 bytes)or 0x00000001(4 байт), декодер обнаруживает каждый стартовый код как начальный идентификатор NALU. Когда обнаруживается следующий стартовый код, текущий NALU завершается. если НАЛУ Соответствующий фрагмент это начало кадра, используйте 4 Байтовое отображение поверхности, то есть 0x00000001, в противном случае используйте 3; Байт поверхности, 0x000001. NALU разработал механизм предотвращения конфликтов для начального кода. Если кодировщик обнаруживает, что данные NALU содержат 0x000000, 0x000001, 0x000002 или 0x000003, кодер вставит новый байт 0x03 перед последним байтом следующим образом: 0x00 00 00 -> 0x00 00 03 00 0x00 00 01 -> 0x00 00 03 01 0x00 00 02 -> 0x00 00 03 02 0x00 00 03 -> 0x00 00 03 03 Когда декодер обнаруживает 0x000003, он отбрасывает 03 и восстанавливает исходные данные (операция распаковки). При декодировании декодер сначала считывает данные NALU побайтно, подсчитывает длину NALU, а затем начинает декодирование.
NALU — это кадр закодированных данных. Каждая единица NAL представляет собой байтовую строку переменной длины, состоящую из определенных элементов грамматики.,Включает один байт информации заголовка (используется для указания типа данных).,и несколько целочисленных байтов данных загрузки。одинNALединица Может携带одинкусок кода、A/B/Cформаразделение данные или последовательность или Набор параметров изображение. Заголовок NALU используется для определения типа данных следующего RBSP, будут ли на него ссылаться другие кадры и есть ли ошибки при передаче по сети. Процесс работы блока декодирования NAL выглядит следующим образом:
(1)NAL заголовок представляет собой байт (длина = 1byte):
forbidden_bit(1bit) + nal_reference_bit(2bit) + nal_unit_type(5bit)
① запрещенный_бит: Запрещенный бит, первоначально 0. Когда сеть обнаруживает, что в блоке NAL имеется битовая ошибка, она может установить этот бит в 1, чтобы получатель мог исправить ошибку или отбросить блок.
② nal_reference_bit: индикатор важности nal, обозначающий важность блока NAL. Диапазон значений: чем больше значение, тем оно важнее. Когда декодер не может его декодировать, он может отбросить NALU с важностью 0. . H.264 предусматривает, что если текущий NALU представляет собой набор параметров последовательности, параметр изображения и т. д., значение должно быть больше 0. Например, когда nal_unit_type равен 5, nal_reference_bit больше 0; когда nal_unit_type равен 6, 9, 10, 11 или 12, nal_reference_bit равен 0.
Важность различных типов NALU указана ниже на поверхности.
Nal_unit_type | Тип НАЛ | Nal_reference_bit |
---|---|---|
0 | Не используется | 0 |
1 | Фильмы без IDR | Если этот фильм принадлежит кадру отсчета, он не равен 0. Если он не принадлежит кадру отсчета, он равен 0. |
2 | Раздел фрагментных данных A | То же, что и выше |
3 | Раздел данных среза B | То же, что и выше |
4 | Срез данных раздела C | То же, что и выше |
5 | часть изображения РДЭ | 5 |
6 | Дополнительный информационный блок по усовершенствованию (SEI) | 0 |
7 | набор параметров последовательности | не-0 |
8 | Набор параметров изображения | не-0 |
9 | разделитель | 0 |
10 | конец последовательности | 0 |
11 | Конец потока кода | 0 |
12 | наполнение | 0 |
13…23 | бронировать | 0 |
24…31 | Нетбронировать | 0 |
Так называемый опорный кадр — это кадр, на который необходимо ссылаться при декодировании других кадров. Например, на I-кадр может ссылаться один или несколько B-кадров, а на B-кадр может ссылаться P-кадр. Из этой поверхности мы также можем видеть, что I-кадр DIR очень важен. Если он потерян, все кадры в этой последовательности не могут быть декодированы; параметров последовательностии Набор параметров изображение тоже важно, никакого набора параметров по последовательности кадры этой последовательности не могут быть решены без Набора; параметров изображения, затем используйте этот Набор параметров Даже рамки изображения не могут быть решены. ③ nal_unit_type: значение типа NALU следующее:
Nal_unit_type | Тип НАЛ | C |
---|---|---|
0 | Не используется | |
1 | Фрагменты в образах без IDR, в которых не используется секционирование данных. | 2,3,4 |
2 | Сегментация данных класса A в изображениях, отличных от IDR | 2 |
3 | Сегментация данных класса B в изображениях без IDR | 3 |
4 | Сегментация данных класса C в изображениях без IDR | 4 |
5 | часть изображения РДЭ | 2,3 |
6 | Дополнительный информационный блок по усовершенствованию (SEI) | 5 |
7 | набор параметров последовательности | 0 |
8 | Набор параметров изображения | 1 |
9 | разделитель | 6 |
10 | конец последовательности | 7 |
11 | Конец потока кода | 8 |
12 | наполнение | 9 |
13…23 | бронировать | |
24…31 | Без бронирования (будет использоваться при RTP-упаковке) |
Тип расширения при упаковке RTP
24 | STAP-A | Single-time aggregation packet |
---|---|---|
25 | STAP-B | Single-time aggregation packet |
26 | MTAP16 | Multi-time aggregation packet |
27 | MTAP24 | Multi-time aggregation packet |
28 | FU-A | Fragmentation unit |
29 | FU-B | Fragmentation unit |
30-31 | undefined |
Требования к заказу НАЛУ: Стандарт H.264/AVC предъявляет строгие требования к порядку блоков NAL, отправляемых в декодер. Если порядок блоков NAL сбивает с толку, их необходимо реорганизовать в соответствии со спецификацией и отправить в декодер, иначе декодер не сможет декодировать. правильно. 1)набор параметров последовательностиNALединица Все это необходимо отправить заранее Параметры передаются до обращения к другим блокам NAL, но допускается дублирование набора среди этих блоков NAL. параметров последовательностиNALединица。 Подробное объяснение так называемого повторения: набор параметров по последовательностиNAL блоки имеют свою специализированную идентификацию, если два набора параметров по последовательностиNAL единицы имеют одинаковую идентичность, поэтому можно считать, что последний является просто копией предыдущего, а не новым набором параметров последовательности。 2)Набор параметров изображенияNAL-блок Это нужно использовать всегда Параметры передаются перед упоминанием других блоков NAL, но между этими блоками NAL допускается дублирование набора. параметров изображенияNAL-блок,Это согласуется с вышеизложеннымнабор параметров Блок последовательностиNAL тот же. 3) Единицы срезов и подразделения данных в различных базовых кодированных изображениях. Единицы раздела не могут пересекаться друг с другом последовательно, то есть не допускается серия блоков слайса и блоков раздела данных, принадлежащих определенному базовому кодированному изображению. Единица раздела внезапно появляется еще один сегмент единицы среза базового кодированного изображения и сегмент единицы раздела данных (данные раздел) единица. 4) Влияние эталонного изображения: если изображение использует другое изображение в качестве эталона, все единицы среза и подразделения данных, принадлежащие первому, раздел) единица должна находиться после фрагментов и фрагментов разделения данных, принадлежащих последнему, будь то базовое кодированное изображение или избыточное кодированное изображение, это правило должно соблюдаться. 5) Все блоки срезов и блоки разделения данных базового кодированного изображения (данные Блок раздела должен находиться между блоком среза и блоком раздела данных, принадлежащим соответствующему избыточному кодированному изображению. раздел) единица раньше. 6) Если в потоке данных имеются последовательные неэталонные изображения с базовым кодированием, изображение с наименьшим порядковым номером будет находиться впереди. 7) Если для произвольного_slice_order_allowed_flag установлено значение 1, то единица среза (среза) и сегмент разделения данных (данные) в базовом кодированном изображении Порядок блоков раздела является произвольным. Если параметр произвольного_slice_order_allowed_flag установлен в ноль, порядок срезов будет определяться в соответствии с положением первого макроблока в срезе. Если используется секционирование данных, фрагменты раздела данных класса A находятся внутри. Фрагменты раздела данных класса B. Ранее фрагменты разделения данных типа B предшествовали фрагментам разделения данных типа C, а фрагменты разделения данных, соответствующие разным фрагментам, не могли пересекаться друг с другом, а также не могли пересекаться с фрагментами без разделения данных. 8) Если имеется блок SEI (дополнительная информация расширения), он должен быть разделен на блоки слайса и данные в соответствующем базовом кодированном изображении. раздел) и ему должны непосредственно предшествовать все блоки слайсов и блоки разделов данных предыдущего базового кодированного изображения. раздел) блок позади. Если SEI принадлежит нескольким базовым кодовым изображениям, порядок основывается только на первом базовом кодовом изображении. 9) Если существует разделитель изображений, он должен быть во всех SEI. блок, все фрагменты базового блока кодированного изображения (срезов) и сегмент разделения данных (данные раздела) и сразу после этих блоков NAL предыдущего базового закодированного изображения. 10) Если существует конец последовательностисимвол,иконец Если после символа последовательности есть изображение, оно должно быть изображением IDR (мгновенного обновления декодера). конец Позиция символа последовательности должна находиться в разделителе SEI, принадлежащем этому изображению IDR. единица перед данными и сразу после единиц NAL предыдущих изображений. Если конец После символа последовательности изображения нет, то есть после всех данных изображения в битовом потоке. 11) Терминатор потока находится в конце битового потока. (2)RBSP Данные RBSP представляют собой одну из следующих поверхностей:
Тип РБСП | аббревиатура | описывать |
---|---|---|
набор параметров | PS | Глобальная информация о последовательности, такая как размер изображения, формат видео и т. д. |
Расширение информации | SEI | видеопоследовательность декодирована Расширение информации |
разделитель изображений | PD | границы видеоизображения |
кусок кода | SLICE | кусок Информация заголовка и данные кода |
разделение данных | Данные среза DP, называемые декодированием с восстановлением ошибок. | |
конец последовательностисимвол | поверхность указывает на конец последовательности,Следующее изображение — изображение IDR. | |
Терминатор потока | поверхность указывает, что в потоке больше нет изображений | |
наполнениеданные | субметаданные,для наполнения байт |
Из предыдущего анализа мы знаем,Из уровня VCL выходят закодированные данные видеокадра.,Этими кадрами могут быть кадры I, B, P.,И эти кадры могут принадлежать разным последовательностям,Более того, тот же самыйодин Существует также соответствующий набор последовательностейнабор параметров последовательностиикартинанабор параметры и так далее, поэтому для завершения декодирования видео необходимо передать не только данные видеокадра, закодированные на уровне VCL, но и набор параметров последовательности、Набор параметров изображенияждатьданные。 набор параметров:включатьнабор параметров последовательности SPSи Набор параметров изображения ППС. SPS содержит параметры непрерывно кодируемой видеопоследовательности, например идентификаторы. seq_parameter_set_id, номер кадра и POC Ограничения, количество опорных кадров, размер декодированного изображения, флаг выбора режима кодирования поля кадра и т. д. PPS соответствует определенному изображению или нескольким изображениям в последовательности и его параметрам, таким как идентификаторы. pic_parameter_set_id, необязательно seq_parameter_set_id, флаг выбора режима энтропийного кодирования, количество групп слайсов, начальные параметры квантования и флаг настройки коэффициента фильтра деблокирования и т. д. разделение данные: закодированные данные, составляющие часть, хранятся в 3 независимых DP (разделение данных, A, B, C), каждый содержит кусок Подмножество кода. Раздел A содержит заголовок слайса и данные заголовка для каждого макроблока в слайсе. Раздел B содержит внутрикадровые и SI Остаточные данные кодирования макроблока слайса. сегментация C содержит остаточные данные кодирования для промежуточных макроблоков. Каждый раздел можно разместить в отдельном NAL единицу и передаются независимо.
VC-1 — это Video Codec One (первое решение для декодирования видео). Он произошел от Microsoft Windows Media Video 9. VC-1 — последний признанный формат стандарта кодирования высокой четкости после MPEG-2 TS и H.264. Хотя VC-1 является последним признанным форматом кодирования высокой четкости, благодаря серверной части Microsoft этот формат кодирования нельзя игнорировать. По сравнению с MPEG2, VC-1 имеет более высокую степень сжатия, но по сравнению с H.264 вычисления при кодировании и декодировании немного меньше. В целом, с точки зрения степени сжатия, степень сжатия H.264 выше, то есть то же видео, емкость видео, сжатая алгоритмом кодирования H.264, меньше, чем у VC-1, но VC- Видео формата 1 1 требует меньше усилий по декодированию. Как правило, видео высокой четкости можно просматривать без проблем благодаря высокопроизводительному процессору. В настоящее время VC-1 может стать лучшим балансом. При поддержке Microsoft это должна быть сила, которую нельзя игнорировать. Вообще говоря, VC-1 в основном имеет суффикс «.wmv», но это не является абсолютным. Конкретный формат кодирования все равно необходимо запрашивать с помощью программного обеспечения.
WMV (Windows Media Video) — собирательное название серии видеокодеков и связанных с ними форматов кодирования видео, разработанных Microsoft. Это часть Microsoft Windows Media Framework. WMV содержит три различных кодека: оригинальная технология сжатия видео WMV, изначально разработанная для приложений потоковой передачи в Интернете в качестве конкурента RealVideo; второй — сжатие экрана WMV и изображения WMV для удовлетворения конкретных потребностей в контенте после стандартизации SMPTE (Society); инженеров кино и телевидения), WMV версии 9 был принят в качестве формата распространения для физических носителей, таких как DVD высокой четкости и Blu-ray Disc, так называемый VC-1. Microsoft также разработала формат цифрового контейнера под названием ASF (Advanced Systems Format) для сохранения кодировки видео WMV. При том же качестве видео файлы формата WMV могут воспроизводиться во время загрузки, поэтому они очень подходят для онлайн-воспроизведения и передачи.
Мы также часто можем видеть Divx и Xvid, и их легко спутать. На самом деле, эти двое имеют много корней. DivX — это формат сжатия цифрового мультимедиа, который сжимает звук видео с помощью технологии MP3, а видео — с помощью технологии MPEG-4. DivX — это формат MPEG-4 от Microsoft. Самая известная технология кодирования видео, основанная на технологии кодирования v3 и широко используемая DVDRipper. Видеофайлы, закодированные с его помощью, не только в максимальной степени восстанавливают исходное качество изображения DVD, но также позволяют выбирать аудио практически во всех форматах. Его видеочасть использует для сжатия технологию Microsoft MPEG-4, а аудиочасть использует MP3. или WMA для сжатия, а затем идеально объедините видео и аудио части в обновленный файл AVI, который представляет собой видео DivX. DivX был впервые создан иностранным компьютерным геймером и хакером. Они активировали и успешно обучили алгоритм сжатия видео MPEG-4 компании Microsoft, а затем переписали его и переименовали в DivX. XviDдатекущий мирначальствонаиболее часто используемыйвидеокодек(codec),И это первый действительно открытый исходный код,Выпущено под лицензией GPL. Во многих сравнениях кодеков,Поверхность XviD на удивление хороша,Вообще говоря, это на данный момент самый лучший и универсальный кодек. Можно сказать, что XviD находится в том же духе, что и Divx, но был улучшен.
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета.,Мнения, выраженные в данной статье, принадлежат исключительно автору. Этот сайт предоставляет только услуги по хранению информации.,нет собственности,Никакая соответствующая юридическая ответственность не предполагается. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент,, Пожалуйста, отправьте электронное письмо на Сообщите, после проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/192817.html Исходная ссылка: https://javaforall.cn