Пиксельная версия картины Винсента Ван Гога «Пшеничное поле и Жнец».
(Основная логика этой статьи: Какова теоретическая основа кодирования видео → Основные концепции, инструменты кодирования, процесс кодирования и структура кодового потока видеокодирования H.264 → Инструменты кодирования H.265 и улучшения → Инструменты кодирования H.266 и улучшения )
То же, что аудиокодирование,видеокодированиесамое важноеизглазизтакжедадля Для выполнения сжатия данных для снижения затрат на передачу и хранение данных。
с одной резолюцией 720х1280 (часто говорят 720P), частота кадров 30 fps Например, если видео не кодируется и не сжимается, исходное видео передается или сохраняется напрямую. RGB данные,верноотвечатьиз Скорость кодада:720 * 1280 * 3 * 8 * 30 = 632.8125 Mbps (Ширина * высокий * Количество пикселей в байтах * Байт количество битов * рамкачисло)
。одна минутаизчаснеобходимое времяизданные量да:632.8125 Mbps * 60s = 4.63 GB
。
Эти индивидуальные данные огромны,Требует больших затрат на хранение и передачу.,Поэтому необходимо использовать технологию сжатия кодирования для снижения битрейта.
Обычно при сжатии информации можно исходить из следующих аспектов:
При кодировании видео основная задача — изучить избыточную информацию в видеоданных и сжать ее. Видеоинформация в основном включает в себя избыточность в следующих аспектах:
В настоящее время существует три основные серии распространенных форматов кодирования видео, каждый из которых разработан разными организациями:
1)Серия ISO-MPEG/ITU-T:Зависит Группа экспертов по движущимся изображениям (MPEG), дочерняя компания Международной организации по стандартизации (ISO), и Организация по стандартизации телекоммуникаций Международного телеграфного союза (ITU-T) разработали стандарт излучодирования.
2)Серия АОМ:предшественникда Зависит от Google доминирующий VPx Стандарт кодирования для серии. Впоследствии ряд компаний образовали Альянс открытых медиа (Alliance for Open Media). for Open Media, AOM) продолжает разрабатывать новые стандарты кодирования.
3)Серия АВС:AVS(Audio Video coding Standard) — серия стандартов кодирования с независимыми правами интеллектуальной собственности в Китае.
Здесь мы представляем только H.264, H.265 и H.266.
В H.264 элементы синтаксиса можно разделить на пять уровней: «последовательность», «изображение», «срез», «макроблок» и «субмакроблок».
существовать H.264 середина,По сравнению с предыдущей иерархической структурой самое большое отличие состоит в том, что уровень последовательности и уровень изображения отменены.,иБольшинство синтаксических элементов, изначально принадлежавших последовательности и заголовку изображения, освобождаются для формирования двухуровневого набора параметров последовательности и изображения.,Остальные части укладывают ломтиками. существуют в рамках этого механизма,Зависит Поскольку набор параметров независим и может передаваться многократно, для его защиты используется специальная технология. Набор параметров находится в другом канале, чем внешний набор параметров из синтаксического элемента середина, который да H.264 В качестве предложения мы могли бы использовать более безопасный, но более дорогой канал для передачи набора параметров.
кодекдляМягкое программирование мягкого решения и жесткое программирование жесткого решения:
Мягкое программирование использует CPU иметь дело с,Преимущества: Сильная возможность регулировки.,Сравнимо с упорным трудом,Программный редактор может настроить параметры для создания видео более высокого разрешения с той же скоростью передачи данных.,Кроме того, программное редактирование может иметь лучшую совместимость.,Адаптируется ко всем устройствам,Но недостатком является то, что производительность может быть плохой.,Это не так быстро, как жесткое программирование, и имеет низкое энергопотребление.
По сравнению с жесткими решениями, программные решения могут иметь более низкую производительность и меньшее энергопотребление, чем жесткие решения, но они обладают лучшей совместимостью и лучшей адаптируемостью.
В настоящее время в большинстве бизнес-сценариев мобильных приложений используется стратегия изкодирования: на стороне мобильного телефона используется жестко закодированное кодирование для создания максимально четкого видео.,Отправить высокое четкое видео на сервер,Зависит Затем сервер мягко кодирует и транскодирует скорость многоканального кода из видео, а затем передает CDN Распространено до конца просмотра. Кроме того, некоторые бюджетные телефоны Android могут из-за аппаратных проблем поддержка жесткого программирования неудовлетворительна. В этом случае вы можете использовать мягкое программирование. Если жесткое программирование не удается, вы можете переключиться на мягкое программирование, чтобы избежать проблемы. Конечно, иногда для некоторых моделей терминалов с превосходной производительностью или краткосрочными бизнес-сценариями вы также можете отдать приоритет программному редактированию, например записи. 15 Секундная короткая видеосцена, во-первых, время относительно короткое, а производительность машины неплохая. CPU Потребление, так что та же скорость передачи данных может снова улучшить четкость.
Для большинства сценариев применения стратегия декодирования в основном использует жесткое декодирование и мягкое декодирование в качестве резервной копии. Кроме того, для некоторых типов кодирования, которые не поддерживаются жестким декодированием, можно использовать мягкое декодирование. Например, некоторые модели не поддерживают декодирование H.265, поэтому можно использовать только мягкое декодирование.
Режим кодирования H.264 можно понимать так: существует видео середина,абзацчас Рядом в номерахиз Изображение из Пиксель、Яркость и цветовая температураиз Разница обычно небольшая。Так что не надо идтиверноабзацчасв комнатеиз Каждое изображениенад Сейичирамкаизкодирование,А можно выбрать первое изображение кадра этого часового интервала и выполнить над кодированием,И следующее изображение записывает только то же изображение, что и первое.рамканадвсекодирование Изображение из Пиксель、Яркость и цветовая температура等особенностьиз Просто разница,Цикл продолжается таким образом.
Что такое последовательность??вышеизэтот абзацчасв комнатеизображение变化Не большойизизображение集就可к称Издляодининдивидуальныйпоследовательность。Последовательности можно понимать как имеющие одинаковые характеристики фрагмента данных изображения.нодаеслиопределенныйиндивидуальныйизображениеи Из前изизображениетрансформироватьочень большой,Трудно обратиться к предыдущей израмке для создания новой.,Затем завершите предыдущую индивидуальную последовательность,Начните следующую индивидуальную последовательность. Повторите вышеизложенное,Создайте новую последовательность.
H.264 В структуре закодированные данные видеоизображения называются кадром. Кадр состоит из одного слайса (слайса) или нескольких слайсов. Слайс состоит из одного или нескольких макроблоков (МБ). 16x16
из YUV Состав данных. Макроблок это H.264 кодированиеиз базового блока.
существовать H.264 В протоколе определены три типа кадров, а именно: I Рама, Б рамка с P рамка.
1) Я боксирую
I рамка,Прямо сейчасрамка Внутрикодированиеизображениерамка,Никаких ссылок на другие изображения,Используйте эту информацию о рамке только для кодирования.
Я делаюиз Особенности:
Процесс кодирования кадра:
2) Р-кадр
P рамка, т.е. прогнозируемое кодирование изображения кадра, используя перед этим I рама или P кадр, используя метод прогнозирования движения для кодирования между кадрами.
P рамкаиз Прогнозирование и реконструкция: P В основе кадра I рамкадляссылкарамка,существовать I найти в рамке P В кадре «некоторой точки» из значения предсказания вектора движения берут значение разности предсказания и вектор движения и передают их вместе. существуют Приемная сторона основана на векторе движенияот I найти в рамке P сформулируйте『некоторый момент』из прогнозируемой стоимости и добавьте ее к разнице, чтобы получить возможность приезжать P рамка『некоторая точка』стоимость образца, от можно приехатьнад целым из P рамка.
Особенности рамки P:
Основной процесс П кадркодированияиз:
3) Рамка Б
B рамка, то есть двунаправленное кодирование изображения кадра, обеспечивает максимально высокую степень сжатия, что требует как предыдущих изображений кадра (I рама или P рамка), также понадобится позже из рамки изображения (P кадр), используя метод прогнозирования движения для выполнения двунаправленного прогнозирования между кадрированием.
B рамкаиз Прогнозирование и реконструкция: Б рамкаперед из I или P рамки и спинкаиз P кадр – это система отсчета, узнайте B создайте «некоторую точку» из предсказанного значения и двух отдельных векторов движения, возьмите разность предсказаний и вектор движения и передайте их. Приемная сторона основана на векторе движения, существуют два индивидуальных источника. в рамке Прогнозируемое значение объединяется с разницей, чтобы получить возможность приезжать B рамка『некоторая точка』стоимость образца, от можно приехатьнад целым из B рамка.
Особенности B-рамы:
Б. Рамкакодированиеиз основного процесса:
Введение в функцию преобразования скорости из: Алгоритм сжатия с потерями, производительность откодирование вывода по битрейтуиискажениесовместное решение。 кодированиеизглазиз:то есть существование обеспечивает определенное качество видео и минимизирует скорость кодирования, или «существует» минимизирует кодированиеискажение при определенном пределе скорости кодирования. кодированиеустройствоиз Работа:根据к上Ставкаискажение Критерии поискаприезжатьоптимальныйкодированиепараметр. Теория информации, концепция середина скорости восстановления:существовать允许один定程степеньискажениеизв условиях,До какой степени можно сжать исходную информацию?,Прямо сейчас最少需要多少Битычисло才能描述信源。Зависит от Это полученоприезжать Ставкаискажение函число:
R(D) = min I(X, Y)
,Он дает нижнюю границу сжатия информации, допустимого при ограниченных условиях. Но его кодирование видеосуществованиясередина трудно применить.,Потому что для различных вероятностей и условных вероятностей неизвестны,могу только сделатьдля Теоретическая ценность。 видеокодированиесерединаиз Ставкаискажениеизгиб:для了研究видео Скорость кодаивидео质量избаланс。Зависит от Ввиду систематического характера он не может достичь теоретического уровня проживания. R(D) Ценность, только Зависит от различных параметров изкодирования (таких как QP и «Выбрать из режима»), чтобы ограничить доступность (R, D) Рабочие точки образуют выпуклую оболочку. видеокодированиесерединаиз Ставкаискажениеоптимизация(RDO):Пройти всеиз参число候选модельверновидеоруководитькодирование,Соблюдайте ограничение минимальной скорости кодирования из набора параметров, чтобы обеспечить оптимальное параметры кодирования видео. Узнайте на каждом уровне.,В конечном итоге оптимизируется общая производительность системы. Здесь предполагается отсутствие корреляции и независимая оптимизация.,Если корреляция сильная, они будут оптимизированы вместе.
Понятия DTS и PTS заключаются в следующем:
Нужно обратить внимание на изда: хотя DTS、PTS да используется для направления стороны игрока из ряда для, но они дасуществоватькодированиеизчас подождите Зависит откодированиеустройство生成из。
Когда нет видеопотока B время кадра, обычно DTS и PTS из порядка да последовательный из. Но есть B кадрчас, пора приезжать. Ранее мы упоминали о проблеме: порядок декодирования и порядок воспроизведения несовместимы.
Например, индивидуальное видео середина, порядок показа в кадре да: I B B П, теперь существуем, нам нужно существовать, чтобы расшифровать B время кадра P информация о кадресередина, поэтому эти несколько кадров могутсуществовать потоковое видео серединаиз последовательности может да: I P B B, в это время отображается, что каждый кадр имеет DTS и PTS из работал. ДТС Подскажите, в каком порядке нам следует декодировать эти кадры, ПТС Расскажите, в каком порядке нам следует отображать эти кадры. Порядок примерно следующий:
Stream: I P B B
DTS: 1 2 3 4
PTS: 1 4 2 3
GOP(Group Of Картинки) в группе изображений из концепции, которая относится к изда последовательности видеокодирования серединадва человека I Расстояние между рамкой.в обычном смыслеиз GOP Зависит от I начало кадра, следующий I рамка до окончания израмки. Строго говоря, это индивидуальный I рама – это IDR рамка.
H.264 закрыто с издой GOP(Closed GOP),Прямо сейчассуществоватьодининдивидуальный GOP декодирование середина всех рамок от этого не зависит GOP из другой рамки, за исключением того, что первая рамка должна быть да I рамка, другие рамки могут быть P рама или B рамка.
Картинка выше представляет собой GOP для 15 примеры кадриз, если видео израмка оцените да 15 фпс, тогда это GOP то есть 1s продолжительность.
Ключевая рамкаизмежду隔调节会影响 GOP продолжительность, что, в свою очередь, влияет на возможность чтения GOP изскорость, для предотвращения изменений в движении, индивидуальный GOP Количество рамок в группе не должно быть слишком большим. если клавиша кадраиз Установлен слишком большой интервализ(GOP Длина слишком велика), необходимо использовать существующую рамку для проживания в ситуациях, которые могут быть вынуждены использовать B/P кадров, что снизит качество изображения.
IDR Полное имя кадра Instantaneous Decoder Обновить, да I Своеобразная рамкаиз. РДЭ рамкаизэффектда立刻刷новый,Пересчитать индивидуальное новое из последовательности начинается кодирование,Не допускайте распространения ошибок.I Рамка была перекрестной ссылкой, но это возможно, но IDR Рамок нет.
например:
IDR1 P2 B3 B4 P5 B6 B7 I8 B9 B10 P11 B12 B13 P14 B15 B16
здесьот B8 может пересекать I8. Перейдите к ссылке P7.
IDR1 P2 B3 B4 P5 B6 B7 IDR8 B9 B10 P11 B12 B13 P14 B15 B16
здесьиз B9 Вы не можете ссылаться на это IDR8 Переднийизрамка.
H.264 представлять IDR рамкадля декодирования из-за ресинхронизации, когда декодирование декодера приезжает IDR кадрчас, немедленно очистите очередь опорных кадров, отмените весь вывод декодированных данных, снова выполните поиск набора параметров и запустите новую последовательность. Таким образом, если в предыдущей индивидуальной последовательности произошла ошибка, существование может получить возможность ресинхронизироваться, и ошибка не будет передана дальше. РДЭ израмка никогда не используется после рамки IDR рамка перед израмкой для декодирования.
Подводя итог, кадры IDR имеют следующие характеристики:
H.264 Используя базовый алгоритм да『внутрисжатия рамки』и『взаимного сжатия рамки』, генерируется внутрикадровое сжатие да. I алгоритм кадризации, взаимное сжатие кадра и генерация B рамкаи P Алгоритм кадриз.
внутреннее сжатие рамки также называют пространственным сжатием。когдасжатиеодинрамкаизображениечас,Учитывайте только данные этой кадризации, не принимая во внимание избыточную информацию между соседними кадрами.,На самом деле это похоже на сжатие неподвижных изображений. Алгоритм сжатия с потерями обычно используется в кадрах.,Зависит от сжимает все изображение дакодирование в рамку, поэтому его можно декодировать и отображать независимо. Внутреннее сжатие кадра обычно не достигает очень высокой степени сжатия по сравнению с кодированием. JPEG почти.
Принцип взаимного сжатия: соседние данные имеют высокую корреляцию.,Автор сказал, что изменения в информации между двумя до и после очень малы. То есть между соседними кадрами в непрерывном видео имеется избыточная информация.,По этой характеристике,Сжатие избыточности между соседними кадрами может еще больше улучшить степень сжатия.,减小сжатие比。взаимное сжатие кадра также называют взаимосжатием для часа,он сравниваетчасмежду轴上Нет同рамка Измеждуизданныеруководитьсжатие。рамкамеждусжатиеодин般дабез потерьиз。рамка Разностный алгоритмда вродетипичныйизчасмеждусжатие法,он сравнивает本рамка с Разница между соседними кадрами, записывайте только этот кадр с Разница между соседними кадрами, что позволяет значительно сократить объем данных.
Шаги для сжатия кодирования следующие:
H.264 Основная цель — обеспечить хорошую степень сжатия видео и хорошую привязку к сети. Для достижения этих двух целей H.264 Решение разделяет структуру системы на два отдельных уровня: «Уровень кодирования видео (VCL)» и «Уровень сетевой абстракции (NAL)».
С точки зрения уровня кодирования видео (VCL) H.264 изструктура:
С точки зрения уровня сетевой адаптации (NAL) H.264 изструктура:
Изображение нижедляодининдивидуальныйтипичныйизвидеокодированиеустройство。существоватьруководитькогдапередний сигналкодированиечас,Устройство кодирования сначала сгенерирует предварительный сигнал «вернокогда», чтобы предсказать исходный сигнал.,называетсясигнал прогнозирования(Predicted Сигнал), метод прогнозирования может предсказать между дачас и израмкой (Интер Прогнозирование), то есть использование сигнала предыдущей кадризации для прогнозирования, или Прогнозирование), то есть использование сигналов соседних пикселей одного и того же кадра для прогнозирования. Получить сигнал прибытия прогнозированияназад,кодированиеустройство会将когдапередний сигналисигнал прогнозирования Вычестьприезжатьостаточный сигнал(Residual Signal),и Тольковерноостаточный сигнал осуществляет кодирование, таким образом может быть удалена часть избыточной информации в часовом пространстве или в пространстве из. Далее устройство кодирования не выполняет непосредственно веростаточный сигналруководитькодирование,ида Первый генералостаточный сигналпройтитрансформировать(в целомдля Дискретное изменение косинуса Изменять)然назадКоличественная оценкак进один步去除нулевоймежду上иперцептивноизизбыточная информация。Количественная оценканазад得приезжатьиз Количественная оценка系число会Снова透过энтропиякодирование,Удалите статистически избыточную информацию.
Процесс кодирования и декодирования H.264 выглядит следующим образом:
Вообще говоря,да, в одной рамке,Значения яркости и цветности двух соседних пикселей обычно относительно близки друг к другу.,такжето есть цвет, который постепенно меняется и не может внезапно измениться на совершенно другой цвет. И сделайте кодирование видео, изто есть использует это индивидуальное соотношение для выполнения сжатия. оформить внутреннее предсказанието есть На основании этогоиндивидуальныйпринцип。
Предположим, что теперь нам нужны отдельные пиксели. X Прежде чем производить кодирование,существоватькодирование этого отдельного пикселя, мы ищем возможность сделать его соседний из пикселей, чтобы сделать пиксель эталонным. Х', согласно X’ Мы используем алгоритм прогнозирования, чтобы получить пиксель X из Прогнозированное значение Xp, а затем мы используем X минус Xp Получите остаток как от проживания, так и от D, и использовать этот остаток D заменять X Выполните кодирование, которое играет роль экономии кода и удобства проживания. Наконец, мы также используем прогнозируемое значение Xp Остаток D Добавьте, чтобы получить X’ Используется для следующего индивидуального пикселя прогноза. Это индивидуальното есть Мы используем внутрикадровое предсказание для сжатия кодирования из Общая идея.
существоватьдействительныйкодированиесередина,Конечно, мы можем делать прогнозы в единицах пикселей.,Но это менее эффективно,Местоксуществовать H.264 Стандартная середина предлагает расчеты в блочных единицах.одининдивидуальный макроблок 16x16 пикселей, которые можно разделить на подблоки, минимум составляет 4x4 из (данный индивидуальный размер даверно с точки зрения кодирования яркости, кодирования цветности, Формат выборки 4:2:0 из макроблока Chroma и длины и половины ширины до макроблока яркости и половины),Это может значительно повысить скорость вычислений.
существоватьрамка Внутри预测модельсередина,Прогнозируемый блок да основан на реконструированном блоке, когда сформировался предыдущий блок. верно Яркость в пикселях,Блоки прогнозирования используются для 4×4 подблок или человек 16×16 Операции, связанные с макроблоками. 4×4 Субблоки яркости имеют 9 дополнительные режимы прогнозирования, независимо прогнозирующие каждый 4×4 Подблок яркости, подходящий для изображений с большим количеством деталей, кодированием 16×16; Блок яркости имеет 4 модель прогнозирования, которая предсказывает всю 16×16 Также доступны блоки яркости, подходящие для кодирования плоских изображений; 4 модель прогнозирования, подобная 16×16 Режим прогнозирования блока яркости. Кодирование обычно выбирает режим прогнозирования, который минимизирует разницу между блоками прогнозирования икодирование.
рамкаинтерпрогнозированието естьчас предсказания домена, цель существования состоит в том, чтобы исключить время от времени избыточную информацию о домене, проще говоря есть, использует предыдущее кодирование изображений для прогнозирования кодирования изображения. Он включает в себя две важные концепции: оценку движения и компенсацию движения.
Оценка движения ищет наилучший верно соответствующий блок до того, как блок кодирования будет кодирован из изображения (опорный кадр), и вычисляет верно соответствующий блок из смещения (вектора движения).
Компенсация движения да основана на методе взаимного прогнозирования вектора движения ирамка, который представляет собой процесс получения расчетного значения момента перед кадризацией. Фактически, есть возможность вставить параметры вектора движения для получения эталонного кадра, чтобы получить кадр «когда раньше». Кроме того, компенсация движения выполняется индивидуально.
H.264 Взаимное предсказание кадра уже использует кодирование видеокадра/поля и основано на блоковой компенсации движения из режима предсказания. Отличие прогноза от предыдущего стандарта «рамкасуществовать» заключается в более широком диапазоне размеров блоков (от 16×16 приезжать 4×4), используется субпиксельный вектор движения (используется яркость 1/4 Пиксельная точность МВ) и ещё отсылки к применению кадриз и тд.
Каждый макроблок (16×16 пикселей) может 4 способы разделения: один 16×16, два 16×8, два 8×16, четыре 8×8. Существует четыре типа компенсации движения. и 8×8 Режим для каждого субмакросблока также может иметь четыре режима. разделения: один 8×8, два 4×8 илидваиндивидуальный 8×4 и 4 индивидуальный 4×4。Эти подразделенияи Хироюки Кодзи Большое упоминаниевысокий Всемакроблок Измеждуизактуальность。При таком разделенииизкомпенсация движениядля树状структуракомпенсация движения。
Каждыйиндивидуальныйразделениеили Хироюки Кодзи都有одининдивидуальныйнезависимыйизкомпенсация движения。Каждыйиндивидуальный MV Должно быть кодирование, передача, разделение, опция также требует кодированияприезжать сжатый битовый поток середина. действительно большой с точки зрения размера сегментов, MV Для выбора типа сегментации требуется всего несколько бит, но остаточная энергия компенсации движения в областях детализации будет очень высокой. Остаточная энергия компенсации движения при сегментации небольшого размера невелика, но для представления требуется больше битов. MV иразделениевыбирать。разделениеразмеризвыбирать影响了Производительность сжатия。все体и言,Большой разделенный размер подходит для плоских участков.,А небольшой размер подходит для областей с большим количеством деталей.
макроблокиз Компонент цветности(Cr и Вб) Тогда для соответствует половине яркости и з (половине по горизонтали и половине по вертикали). Блок цветности использует тот же режим сегментации, что и блок яркости, за исключением того, что размер уменьшается вдвое (по горизонтали и вертикали). Например, 8×16 блок яркости, соответствующий размеру блока цветности 4×8,8×4 Блок яркости, соответствующий размеру блока цветности для 4×2 и т. д. Цветовой блок из MV Также через соответствующую яркость MV Горизонтальная и вертикальная составляющие уменьшаются вдвое.
绝大多числоизображение都有одининдивидуальныйобщийизособенность:ровная площадкаи Внутри容缓慢变化区域占据один幅Изображение большая часть,Область детализации и область изменения контента составляют небольшую часть. Можно также сказать,Изображение середина постоянного тока и область низких частот составляют большую часть,Область высоких частот занимает незначительную часть. так,пространственная область изображения трансформироватьприезжать в частотной области или так называемая изтрансформировать область,Произведет некоторые трансформирующие коэффициенты с небольшой корреляцией.,И может быть сжато кодированием,Это так называемое изтрансформироватькодирование.
также,для уменьшения динамического диапазона изображения кодированиеиз,Также обычно выполняется Количественная оценка.
существоватьизображениекодированиесередина,трансформироватькодированиеи Количественная оценкаотпринцип上讲дадваиндивидуальныйнезависимыйизпроцесс。носуществовать H.264 середина,Объедините две отдельные процедуры серединаиз в две для,и далее использует целочисленную арифметику,Уменьшите количество операций кодирования и декодирования.,Улучшите производительность сжатия изображений.
H.264 верное изображение или остаток предсказания с использованием 4×4 всечисло Дискретное изменение Технология косинуса (DCT) позволяет избежать использования предыдущего стандарта середина из универсального. 8×8 Дискретное изменение косинуса Проблемы несоответствия часто возникают при переходе к обратному преобразованию. Количественная Процесс оценки определяет Количественную ценность изображения на основе размера динамического диапазона. оценка参число,Сохраняет необходимые детали изображения,И сократить поток кода.
Размер энтропии тесно связан с вероятностной моделью источника информации.,Каждый отдельный символ имеет разную вероятность появления.,Источник изэнтропии также различен. когда Источник середина Каждое событие имеет равное распределение вероятностейчас,Энтропия имеет максимальное значение. Разница между энтропией источника и ее возможным максимальным значением отражает избыточность, содержащуюся в источнике. Чем меньше избыточность источника из,То есть, тем больший объем информации несет каждый отдельный символ независимо.,Тогда чем короче длина последовательности, необходимая для передачи того же объема информации,,Чем меньше знаковых битов. поэтому,Основной метод сжатия данных заключается в устранении корреляции между исходными символами.,Сделайте последовательность как можно более не запоминающейся,То есть появление предыдущего символа не влияет на вероятность появления любого последующего отдельного символа.
Использование статистических характеристик источника для сжатия скорости кода называется энтропийным кодированием.,Также называется статистическим кодированием. Метод энтропийного кодирования со сжатием без потерь,Он генерирует поток кода, который можно без проблем декодировать для восстановления исходных данных. Энтропийное кодирование существует, строит случайный процесс, основанный на статистических свойствах.
Для кодирования видео обычно используются два метода: кодирование переменной длины (кодирование Хаффмана) и арифметическое кодирование.
H.264 наконец выполняет энтропию результата кодирования.,точкадляКонтекстно-ориентированное адаптивное кодирование переменной длины (CAVLC)
иКонтекстно-ориентированное адаптивное двоичное арифметическое кодирование (CABAC)
。
существовать H.264 из CAVLC (контекстно-адаптивное кодирование переменной длины) середина достигает чрезвычайно высоких коэффициентов сжатия за счет динамической настройки кодовой таблицы кодирования середина в зависимости от ситуации с уже кодированными синтаксическими элементами. КАВЛК Используется для изкодирования остаточных данных яркости и цветности. Остатки после трансформировать Количественную Задние данные показывают следующие характеристики: 4×4. Данные блока прогнозируются, трансформируются, Количественная После оценки ненулевые коэффициенты в основном сосредоточены в серединасуществовать низкочастотной части, тогда как высокочастотные коэффициенты преимущественно да нулевые; оценканазадизданные пройдены zig-zag Сканирование, округ Колумбия Ненулевые значения коэффициента вблизи коэффициента большие, а ненулевые значения коэффициента в частотном положении в основном да +1 и -1 соседний из 4×4 Блок из ненулевого коэффициента из числа и корреляции из. КАВЛК В полной мере используйте остатки после преобразования целых чисел, Количественная Данные о характеристиках ChartPost сжимаются для дальнейшего сокращения объема данных, образуя избыточную информацию, для H.264 Совершенство, эффективность изкодирования закладывает основу.
арифметическое кодированиедумал использовать 0 приезжать 1 из интервала для отдельного числа для выражения потока ввода отдельных символов это важно для целых чисел Уальному входному потоку присваивается индивидуальное кодовое слово, тогда как да присваивается отдельное кодовое слово каждому индивидуальному символу во входном потоке серединаиз. Арифметическое кодирование использует метод интервальной прогрессии для входного потока, чтобы найти это индивидуальное кодовое слово, которое по первому индивидуальному символу определяет начальный интервал (0 приезжать 1) Начните с чтения входного потока посимвольно. После появления каждого нового индивидуального символа рекурсивно разделите предыдущий интервал когда и разделите корень. В соответствии с вероятностью каждого отдельного символа из в да, интервал до когда делится на несколько подинтервалов в соответствии с вероятностью каждого отдельного символа из, а символ верно перед когда должен быть разделен на подинтервалы. 2 Интервал удаляется и используется для обработки интервала перед следующим индивидуальным символом часизкогда. После того, как приезжать обрабатывает последний индивидуальный символ над, получается окончательный интервал приезжать, а последний интервал существования середина случайным образом выбирает индивидуальное число для вывода. Декодер работает по одному и тому же методу и шагам, причем обратный процесс выполняется для разных изд каждый раз, когда декодер разделяет один инди. Сознательный поддиапазон имеет входной поток, состоящий из отдельных символов. В реальном процессе существования середина характер входного потока середина из распределения вероятностей динамически изменяется, что требует ведения индивидуальной таблицы вероятностей для записи изменения вероятности информации. существования выполняет прогрессивный расчет "час" и оценивает вероятность появления символа до "когда" с помощью истинного серединаиз таблицы вероятностей. После обработки символа "до "когда" таблицу вероятностей необходимо обновить. Этот индивидуальный процесс выполняет новаторскую адаптацию символов входного потока. Декодер кодирования оценивается и обновляется таким же образом. Таблица вероятностей гарантирует, что последующий кодовый поток может быть декодирован плавно.
При кодировании Хаффмана необходимо использовать всю возможную длину N из Проектирование последовательностейи Кодовая книга хранилища, при этом из Сложность варьируется N 呈обратитесь кчисло增长。用арифметикакодированиенет необходимости заранеедля Каждыйиндивидуальныйвозможныйиз信源последовательностьобратитесь к定码书。ида Каждыйкогда Место确定区междуизнижний предели Верхний предел имеет наибольшее значение для публики.высокий Допустимые битычас,Вы можете постоянно получать биты прибытия. Длина последовательности кодирования может быть такой же, как длина источника. поэтому,на самом деле,Арифметическое кодирование может приблизиться к уровню энтропии.
Арифметическое кодирование. Еще одно индивидуальное преимущество может быть достигнуто путем адаптации статистических характеристик источника путем простого обновления таблицы вероятностей символов. Условное кодирование также можно легко реализовать, используя разные таблицы вероятностей в разных контекстах. верною Хаффманкодирование,Затем кодовую книгу необходимо перепроектировать на основе обновленной таблицы вероятностей.,или верно Разработайте несколько индивидуальных кодовых таблиц для разных контекстов.
Зависит от более эффективен, чем высокоеизкодирование, и его легко адаптировать.,Если сумма расчета приемлема,无疑арифметикакодирование比Хаффманкодированиеда вроделучшеизвыбирать。
H.264 Исходный поток кода (также известный как голый поток), да Зависит отодининдивидуальный接одининдивидуальныйиз NAL единица состоит из (NAL Header плюс RBSP Группа成одининдивидуальный NAL единица), структура показана на рисунке ниже:
существует сетевая передача из окружающей среды, кодирование будет осуществляться каждым индивидуально NAL Каждый самостоятельно, над тем, чтобы объединить их в группу, Зависит. от Поскольку каждый пакет имеет заголовок, декодер может легко его обнаружить. NAL из разграничения, вынимать по очереди NAL декодировать. для сохранения потока кода, H.264 Никакого другого существования NAL Из головы устанавливает выражение, начиная с синтаксического элемента. Но даесликодирование данных существует на носителях данных (таких как DVD CD), Зависит от В NAL да расположены близко друг к другу, декодер не сможет различить каждого человека в потоке данных середина NAL начинается и заканчивается, поэтому должен быть другой механизм для решения этой индивидуальной проблемы.
Иголкаверноэтотиндивидуальныйвопрос,H.264 Проект приложения B середина указывает на простое и эффективное решение. когда поток данных для хранения существует в течение среднего времени, существует на одного человека NAL добавить передСтартовый код:0x000001
。этотто есть Мы часто говорим из Формат потока кода Приложения-b。
существуют на определенных типах средств массовой информации,для делает адресацию удобной,Требуется, чтобы длина потока данных существовала одинаковая,или должна быть определенная индивидуальная константа из нескольких. Рассмотрим ситуацию,H.264 предположениесуществовать Стартовый Добавьте несколько байтов перед кодом 0 Чтобы заполнить, прямо приезжать NAL Длина соответствует требованиям. В соответствии с этим механизмом существует декодер, кодовый поток середина обнаруживает Стартовый код,делатьдляодининдивидуальный NAL начальный идентификатор,когда Обнаружениеприезжать下одининдивидуальный Стартовый кодчаскогда前 NAL Заканчивать. H.264 规定когда Обнаружениеприезжать 0x00000001
час также может обозначать предыдущего человека NAL из Заканчивать,下одининдивидуальный NAL Во-первых, это да в для связано с индивидуальным байтом из 0 серединаиз任何одининдивидуальныйбайтиз 0 Либо принадлежат Стартовому кодорда Стартовый Добавить из перед кодом 0。
добавить в Стартовый Кодаодининдивидуальный — хороший способ решить проблему, но вышеописанное про Стартовый Введение кодиз не завершено, поскольку игнорируется важный вопрос: если существует NAL Появился внутри 0x000001
илида 0x00000001
Что делать с последовательностью из? Нет сомнений в том, что эта ситуация фатальна, и декодер преобразует их во что-то, что в противном случае было бы невозможно. кодизбайтпоследовательностькогдаделать Стартовый код, ошибочно распознавая здесь и обратно даодининдивидуальныйновыйиз NAL запускается, в результате чего декодированные данные теряются! И мы провели много экспериментов, чтобы доказать, что NAL Эта последовательность байтов часто появляется внутри. Потому что для 0x000001
покрытие изказеда 0x00000001
из ситуации, поэтому следующее значение описывает, как с ней справиться 0x000001
Вот и все.
затем H.264 предлагает другой механизм,叫Делатьпредотвращать конкуренцию,существоватькодированиеустройствокодированиенадодининдивидуальный NAL час, должен определить, появляется ли да в левой части следующей таблицы серединаиз индивидуальной последовательности байтов, чтобы предотвратить их появление и Стартовый кодконкурировать。если Обнаружениеприезжатьэтот些последовательность存существовать,кодированиеустройство将существовать最назадодининдивидуальныйбайт前插入одининдивидуальныйновыйизбайт:0x03
,оти使它们变成下表右侧изпоявление。когдадекодированиеустройствосуществовать NAL Внутреннее тестирование приезжать имеет 0x000003
из последовательностичас, поставлю 0x03
Отмените и восстановите исходные данные.
0x000000 → 0x00000300
0x000001 → 0x00000301
0x000002 → 0x00000302
0x000003 → 0x00000303
В приведенной выше таблице мы упомянули первые две индивидуальные последовательности из предыдущей статьи середина и третью индивидуальную. 0x000002
да зарезервировано, а четвертый индивидуальный 0x000003
дадля了保证декодированиеустройство能正常Работа,Потому что для того, чтобы мы только что упомянули, приехать,декодированиеустройство恢复原始данныеизметодда Обнаружениеприезжать 0x000003
Просто оставь это 0x03
,этот样когда出现原始данныедля 0x000003
час уничтожит данные, поэтому эта индивидуальная последовательность должна и должна быть вставлена 0x03
。
декодированиеустройствосуществоватьгнатьсяиндивидуальныйбайт地读одининдивидуальный NAL час не то же самое, что часверно, он расшифровывается, а да расшифровывается Стартовым код机制将всеиндивидуальный NAL Прочитайте, вычислите длину и затем начните декодирование.
приезжать Итак, мы знаем, как разделить исходный поток кода NAL единица. Далее давайте узнаем о каждом человеке NAL Единтаиз структуры.
NAL единица Зависит от NAL Header и RBSP составляют.
Структура заголовка NAL следующая:
forbidden_zero_bit
,Нет. 0 Бит, выражать запрещенный бит, общий для значения для 0,ценитьдля 1 Указывает на синтаксическую ошибку.nal_ref_idc
,Нет. 1-2 бит, указывающий текущий NAL из Приоритет. Диапазон значенийдля 0-3,ценить越высокий,Указывает текущий NAL Чем важнее оно, тем приоритетнее его защита при посещении. H.264 Указывает, что если текущий NAL да принадлежит ссылочному срезу кадра, или набору параметров последовательности, или набору параметров изображения, эти важные единицы данных в час, этот синтаксический элемент должен быть больше,чем 0。носуществоватьбольше, чем 0 Никаких дальнейших указаний о том, какой должна быть конкретная ценность, не существует, и обе общающиеся стороны могут гибко формулировать стратегии.nal_unit_type
,Нет. 3-7 бит, указывающий текущий NAL тип единицы. Конкретные типы определены в следующей таблице:nal_unit_type=5
когда, указывая текущий NAL да IDR Изображение индивидуального фото, в данном случае существует IDR изображениесерединаиз Каждыйиндивидуальныйкусокиз nal_unit_type
все должно быть равно 5. Уведомление IDR Изображения не могут использовать разделы фрагментов.
Как упоминалось ранее, РБСП Относится к необработанным байтам полезной нагрузки, которые NAL Единица части данных из формата инкапсуляции, инкапсуляция данных происходит из SODB (битовый поток необработанных данных). СОДБ дакодирование — необработанные данные, SODB Инкапсулированныйдля RBSP затем вставь NAL часть данных.
из SODB получить RBSP из процесса генерации:
rbsp_trailing_bits()
。rbsp_trailing_bits()
из Нет.одининдивидуальный Битыда 1. Далее заполняем 0,прямойприезжатьбайтверновместе。cabac_zero_word
,Чтоценитьравный 0x0000
。Как упоминалось выше, существует множество типов проживания NAL-квартиры. Здесь мы объясним важные типы середина:
набор параметров последовательности、Наборы параметров изображения и изображения、Связь между фильмами:
1) Набор параметров последовательности SPS
SPS середина сохраняет набор апостериорного кодирования последовательностей изображений из зависимостей из глобальных параметров.
SPS Информация серединаиз имеет решающее значение: если ее данные серединаиз будут утеряны, процесс декодирования может завершиться неудачно. СПС и PPS Обычно для декодера из параметра инициализации. В общем, SPS. и PPS Местосуществоватьиз NAL единица位Ввсеиндивидуальный Поток кодаизисходное положение,Но дасуществовать в некоторых сценариях,Эти две структуры могут также возникать между существующими скоростями передачи данных середина:
К основным параметрам СПС относятся:
profile_idc
: Указывает текущий H.264 Поток кодаизкодированиеоценка。Чтосередина部точкаоценка:profile_idc
ценитьдля 66)profile_idc
ценитьдля 77)profile_idc
ценитьдля 88)level_idc
,Указывает текущий уровень изкодирования потока кода. Уровень кодирования определяет максимальное разрешение видео, максимальную скорость видео и т.д. параметры при определенных условиях.seq_parameter_set_id
,Указывает текущийиз набора параметров последовательностииз идентификатор. через это id значение, набор параметров изображения PPS Его ассоциацию можно назвать SPS серединаизпараметр.log2_max_frame_num_minus4
,用В计算 MaxFrameNum
из стоимости. Формула расчета для MaxFrameNum = 2 ^ (log2_max_frame_num_minus4 + 4)
。переменная MaxFrameNum
выражать frame_num
из最大ценить,frame_num
Определяет последовательность декодирования изображения, которому оно принадлежит, процесс декодирования существует и является также очень важной переменной. Примечательное изда frame_num
да циклический отсчет, то есть когда он приезжает вверх MaxFrameNum
позже 0 重новый开始новыйодин轮из计число。декодированиеустройство必须要有机制Обнаружениеэтот种循环,В противном случае это вызовет проблемы, подобные «ошибке тысячелетия».,существовать Изображение извызывая путаницу в порядке。pic_order_cnt_type
,Указывает метод изкодирования POC (Picture Order Count).,POC Определяет изображение в порядке воспроизведения. Зависит от В H.264 использовал B рамкапрогноз,делать Изображение изпорядок декодированияи Нетодин定равный Порядок воспроизведения,но它们Измежду存существоватьодин定из Отображение отношений。POC 可к Зависит от frame-num Его можно вычислить через сопоставление отношений или просто Зависит откодирование передачи явно. H.264 Всего три вида POC изкодированиеметод,этотиндивидуальныйсинтаксические элементыто есть используется для информирования декодера, какой метод использовать для расчета POC。log2_max_pic_order_cnt_lsb_minus4
,用В计算 MaxPicOrderCntLsb
из стоимости. Формула расчета для MaxPicOrderCntLsb = 2 ^ (log2_max_pic_order_cnt_lsb_minus4 + 4)
。MaxPicOrderCntLsb
выражать POC из Максимальное значение переменной существует pic_order_cnt_type = 0
при использовании.num_ref_frames
,Очередь указанной эталонной рамки может достигать максимальной длины прибытия.,Декодер открывает область хранения в соответствии со значением этого индивидуального синтаксического элемента.,Эта отдельная область хранения используется для хранения декодированных эталонных кадров.,H.264 Указывает, что максимально доступный 16 индивидуальный относится к рамке, этот синтаксический элемент из имеет максимальное значение для 16。ценить得注意издаэтотиндивидуальный长степенькрамкадляединица,еслисуществовать в полевом режиме,Соответственно, его следует увеличить вдвое.gaps_in_frame_num_value_allowed_flag
,этотиндивидуальныйсинтаксические элементыравный 1 час, выражать разрешенные синтаксические элементы frame_num
Может быть прерывистым. Канал передачи серьезно заблокирован, и сервер кодирования не может отправить все последующие изображения, что позволяет отбросить несколько кадров изображений. существуют В норме каждое изображение кадра имеет последовательность последовательных из frame_num
значение, декодер проверяет приезжатьесли frame_num
Если оно не является непрерывным, можно определить, что изображение было удалено браузером. Это означает, что декодер должен активировать механизм маскировки ошибок, чтобы приблизительно восстановить эти изображения, поскольку эти изображения могут использоваться в качестве ссылок для последующих изображений. 0 Когда стол не позволяет frame_num
Прерывистое, то есть устройство кодирования существует не может сбрасывать изображения ни при каких обстоятельствах. На этот раз H.264 Позволяет декодеру не проверять frame_num
из Непрерывность для уменьшения объема вычислений. В данном случае это все равно происходит frame_num
прерывистый,выражатьсуществоватьпередача инфекциисередина Происходит потеря пакетов,Декодер обнаружит потерю пакетов с помощью других механизмов.,Затем запустите Error Hide и восстановите изображения.pic_width_in_mbs_minus1
,Этот элемент синтаксиса увеличивается на 1, чтобы указать ширину изображения.,кмакроблокдляединица:frame_width = 16 * (pic_width_in_mbs_minus1 + 1)
,макроблокразмерда 16x16。通过этотиндивидуальныйсинтаксические элементыдекодированиеустройство可к计算得приезжатьяркостьточка量к Пиксельдляединицаизизображение Ширинастепень:PicWidthInSamplesL = PicWidthInMbs * 16
,отитакже可к得приезжать色степеньточка量к Пиксельдляединицаизизображение Ширинастепень:PicWidthInSamplesC = PicWidthInMbs * 8
。к上переменная PicWidthInSamplesL
、PicWidthInSamplesC
точка别выражать Изображение из Яркость、色степеньточка量к Пиксельдляединицаиз Ширина。H.264 Измените размер изображения на существующее SPS определение середина, означает, что может существовать процесс связи середина с SPS Динамическое изменение изображения изразмер,Вы даже можете обрезать передаваемое изображение и вывести его.pic_height_in_map_units_minus1
,本синтаксические элементыдобавлять 1 назадобратитесь к明изображениевысокийстепень:PicHeightInMapUnits = pic_height_in_map_units_minus1 + 1
,PicSizeInMapUnits = PicWidthInMbs * PicHeightInMapUnits
。Изображение извысокийстепеньиз计算要比Ширинастепеньиз Расчет сложный,Потому что индивидуальное изображение может быть дарамкой или полем.,отэтотиндивидуальныйсинтаксические элементы可к
Режим существованиярамка и режим поля соответственно рассчитывают яркость и цветность извысокий. Примечательно, что изда здесь начинается с map_unit
для единицы.frame_mbs_only_flag
,本синтаксические элементыравный 0 часвыражать Все изображения этой последовательности середина и шаблоны кодирования являются дарамками, никакие другие шаблоны кодирования не сохраняются в существовании этого элемента синтаксиса; 1 час , выразить Эта последовательность середина изображения и режима зкодирования может быть дарамкой, а может быть дарамкой или рамкой поля адаптивной, определенным индивидуальным изображением, конкретно да, которое зависит от других синтаксических элементов определяют. объединить map_unit
по сути, здесь приведен предыдущий элемент индивидуального синтаксиса pic_height_in_map_units_minus1
из进один步解析步骤:frame_mbs_only_flag
равный 1,pic_height_in_map_units_minus1
обратитесь киздаодининдивидуальный picture серединарамкаизвысокийстепень;frame_mbs_only_flag
равный 0,pic_height_in_map_units_minus1
обратитесь киздаодининдивидуальный picture серединаполеизвысокийстепень。FrameHeightInMbs = ( 2 – frame_mbs_only_flag ) * PicHeightInMapUnits
。PictureHeightInMbs= ( 2 – frame_mbs_only_flag ) * PicHeightInMapUnits
。2) Набор параметров изображения PPS
PPS середина сохраняет каждое кадркодирование поста из изображения, от которого оно зависит.
К основным параметрам ППС относятся:
pic_parameter_set_id
,Указывает текущий PPS из идентификатор, связанный с каждым произведением через этого человека id Цитировать верно следует из PPS параметр.seq_parameter_set_id
,Указывает текущий PPS Цитата из SPS из id。entropy_coding_mode_flag
,выражатьэнтропиякодированиеизвыбирать,Это предложение Юридический элемент для 0 час,выражатьэнтропиякодированиеиспользовать CAVLC
,Это предложение
Юридический элемент для 1 часвыражатьэнтропиякодированиеиспользовать CABAC
。pic_order_present_flag
,POC Из трех методов расчета существуют срезы, также необходимо использовать некоторые синтаксические элементы, такие как параметры. Этот синтаксический элемент необходим. 1 В заголовке часавыражатьсуществовать будут синтаксические элементы выражениеть и эти параметры; этот синтаксический элемент равен 0 час,выразить В заголовке не указаны эти параметры,Используйте для этих параметров значения по умолчанию.num_slice_groups_minus1
,本синтаксические элементыдобавлять 1 назадвыражатьизображениесерединакусок Группаизиндивидуальныйчисло。H.264 нет специализированного элемента посередине синтаксиса используются длявыражатьда Использовать ли шаблон группы, когда этот синтаксический элемент равен 0 (Прямо сейчас Только有одининдивидуальныйкусок Группа),выражатьне использует установленный режим,За ним не будут следовать элементы синтаксиса, используемые для вычисления карты среза.slice_group_map_type
,когда num_slice_group_minus1
больше, чем 0,То есть используйте режим группы фильмовчас,Этот синтаксический элемент встречается в потоке кода, существующем середина.,用квыражатькусок Группаразделение类型。map_units
изопределение:map_units
обратитесь киздамакроблокверно;map_units
обратитесь киздамакроблок;map_units
обратитесь киздаимакроблоквернопохожийиз,上下дваиндивидуальныйнепрерывныймакроблокиз Группа合体。frame_mbs_only_flag
равный 1 час,map_units
обратитесь кисто естьмакроблок;frame_mbs_only_falg
равный 0 час:num_ref_idx_l0_active_minus1
,добавлять 1 После выразить очередь текущей эталонной рамки по длине, то есть сколько отдельных эталонных кадров (включая короткие и длинные). Стоит отметить, что при декодировании изображения в режиме поля длина очереди опорных кадров должна быть умножена на этот элемент синтаксиса. 2. Потому что в режиме для поля каждый кадр должен быть разложен и сохранен в виде поля, действительно существующего. (Упомянутый здесь полевой режим включает в себя адаптивный полевой режим поля изображения и макроблок в полевом режиме) 本синтаксические элементыизценить有возможныйсуществоватькусок头被重载。существоватьнабор параметров последовательностисередина有синтаксические элементы num_ref_frames
Также да связано с очередью эталонных кадров, они отличаются от да num_ref_frames
выражать относится к максимальному значению очереди кадров, и декодер использует его значение для выделения пространства памяти;num_ref_idx_l0_active_minus1
выразить количество систем отсчета, в которых мы уже существуем, и нашу фамилию active Это также можно увидеть в .этотиндивидуальныйсинтаксические элементыда H.264 Один из наиболее важных синтаксических элементов середина, устройство кодирования сообщает декодеру, какой индивидуальный вектор движения указывает на какого индивидуума. уальный относится к изображению в час, а да непосредственно передает изображение по номеру, тогда как да передает изображение, существующее в очереди кадров, с серединаиз порядкового номера. Этот индивидуальный порядковый номер не передается потоком кода дасуществовать середина, а декодер дакодирования синхронизирует и помещает опорное изображение в очередь, используя тот же метод, и получает индивидуальный порядковый номер. Эта индивидуальная очередь будет динамически обновляться после каждого отдельного изображения и даже отдельного клипа. Поддержание очереди опорных кадров для кодека очень важно в работе, и этот элемент синтаксиса, поддерживающий очередь опорных кадров, является важной основой. Очередь эталонной рамки из комплекса механизма обслуживания да H.264 Это также важная и отличительная часть.num_ref_idx_l1_active_minus1
Он соответствует семантике предыдущего индивидуального синтаксического элемента, только вот этот Элементы синтаксиса используются для list1, а предыдущий
Элементы синтаксиса используются для list0。constrained_intra_pred_flag
,существовать P и B Срезы середина, рамки внутри кодирования макроблоков из соседних макроблоков могут использовать израмку между кодированием. когда Этот синтаксический элемент равен 1 время, выражениерамка внутри макроблока кодирования не может быть предсказано с помощью макроблока кодирования рамки из пикселей внутри кодирования, т.е. Макроблок кодирования в рамке может прогнозировать только свои собственные пиксели из соседнего макроблока кодирования в рамке, и этот синтаксический элемент равен; 0 час,выражать не имеет таких ограничений, как существование.3) Дополнительная расширенная информация SEI
SEI То есть дополнительная информация (Supplemental Enhancement Информация), который относится к категории потока кода. Он предоставляет метод добавления дополнительной информации в поток видеокода. H.264 Одна из стандартных функций.
Основные характеристики SEIиз следующие:
такжето есть сказано, что кодирование видео существует, выходной видеопоток из часа времени не может быть обеспечен SEI информация. Хотя процесс передачи видео, декапсуляция и декодирование могут быть по каким-то причинам отброшены. SEI Контент, но существующий видеоконтент с конца генерации и процесса передачи, может быть вставлен SEI Информация из. Эта вставленная информация и другой видеоконтент достигают конечного потребителя через канал передачи «приехать».
SEI да вроде NAL тип единицы. Его структура примерно следующая:
// H.264
0x06,n индивидуальный FF байт + 1 индивидуальный Нет FF байт,16 байт UUID,userData,0x80 или 0x0080
n * 255 + XY
,такжето есть изменить длину данных минус 255,сколькоиндивидуальный Просто пишите столько, сколько хотитеиндивидуальный ФФ, ухожу изесли не для 0,Снова写одининдивидуальныйбайт。4) Нарезка
одинрамкаизображение可кодирование成одининдивидуальныйили ВОЗ多индивидуальныйкусок,Каждый срез содержит целые отдельные макроблоки.,Фрагментация ограничивает распространение и передачу кода ошибки.,Держите части кодирования независимыми друг от друга.
Состав детали:
Ключевые параметры Slice серединаиз включают в себя:
slice_type
,Указывает тип текущего изображения. Конкретные типы следующие. Это середина,IDR imageчас,slice_type
равный 2、4、7、9。pic_parameter_set_id
,выражать Цитата из PPS из id。frame_num
,выражатьпорядок декодирования。Каждыйиндивидуальныйссылкарамка都有одининдивидуальный依次непрерывныйиз frame_num
Они отмечены значком для, который определяет порядок декодирования каждого изображения. Но на самом деле появятся и нереференсные заголовки в рамках frame_num
。Толькодакогда Должениндивидуальныйизображениедассылкарамкачас,它Место携带изэтотиндивидуальныйсинтаксические элементысуществоватьдекодированиечас Это имеет смысл。H.264 верно frame_num
из значений указываются следующим образом: при наборе параметров серединаиз синтаксического элемента gaps_in_frame_num_value_allowed_flag
Нетдля 1 час,Каждыйиндивидуальный Изображение из frame_num
Стоимость да предыдущая индивидуальная Справочная рамкаиз frame_num
увеличение стоимости 1。field_pic_flag
,Этот фрагмент дасуществовать идентифицирует шаблон кодирования изображения из одного уникального отдельного синтаксического элемента. Так называемый режим изкодирования относится к израмкакодированию, кодированию полей, адаптивному кодированию кадровых полей.idr_pic_id
,IDR Изображение из логотипа. другой IDR Изображения различаются idr_pic_id
ценить. Примечательно изда, IDR Изображение не эквивалентно I изображение,Только有существоватьделатьдля IDR Изображение из I рамка имеет только этот индивидуальный синтаксический элемент, существует режим поля, IDR рамкаиз Два индивидуальных поля имеют одинаковые idr_pic_id
ценить。idr_pic_id
из Диапазон значенийда [0,65535]
,и frame_num
похожий,когда значение выходит за рамки этого индивидуального диапазоначас,Он возобновит подсчет в цикле.pic_order_cnt_lsb
,существовать POC из Первый алгоритм серединаэтот элемент синтаксиса для вычисления POC ценить,существовать POC из Первый алгоритм серединада передается явно POC из значения, в то время как два других алгоритма проходят frame_num
нанести на карту POC изценить。(Представлено выше,Мы узнали о теоретических основах кодирования видеоиз,Обсуждено H.264 Основные понятия кодирования видео, инструменты кодирования, процесс кодирования и структура кодового потока. верносуществовать H.264 На основе итерации H.265 и H.266 изкодированиеинструментиулучшать,Мы продолжим обсуждать это позже,Следите за обновлениями)