моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Примечание. Мы ссылаемся на метод обучения золотого круга (Что такое правило золотого круга? -> Модель правила золотого круга, в этой статье используется: почему-что) для изучения кодирования аудио-видео H264. Эта серия статей посвящена пониманию системы знаний и практических методов кодирования видео. Теоретический аспект расскажет больше о происхождении концепций аудио и видео и связях между различными концепциями. Знайте, как это бывает, знайте, почему это так. В то же время больше внимания уделяется созданию систем знаний.
В этой статье мы в основном говорим о процессе сжатия данных H.264 и связанных с ним концепциях. Сжатие данных H.264 имеет только одну цель: сжимать, сжимать и затем сжимать, чтобы уменьшить размер видеоданных, обеспечивая при этом максимально возможное качество изображения. Поэтому, прежде чем изучать сжатие данных H.264, мы должны сначала понять: хотя в этом процессе задействовано множество концепций и методов, все методы и процессы предназначены для этой цели: сжатия.
Процесс сжатия данных H.264 в основном сводится к следующим ключевым этапам: деление макроблоков и деление на подблоки -> группировка кадров -> прогнозирование кадров -> целочисленное дискретное косинусное преобразование (DCT) -> сжатие CABAC. Конкретные инструкции по расширению следующие.
Макроблок: можно понять, что когда видеокадр отправляется в буфер кодера H264, кодер делит макроблоки на каждое изображение. По умолчанию кодирование H264 использует в качестве макроблока область 16X16 пикселей (H265 использует область 64X64 пикселей. Эффект от разделения кадра видео на макроблоки следующий:
При этом на картинке выше мы фактически можем разделить макроблок размером 16х16 пикселей на более мелкие подблоки. Размер субблока может составлять 8X16、16X8、8X8、4X8、8X4、4X4. Это очень гибкий вариант. Целью повторного разделения на подблоки является запись этих данных очень небольшими данными. После разделения макроблоков все изображения в кэше кодера H264 можно сгруппировать.
Разделение макроблоков и субблоков позволяет при кодировании видео более точно анализировать и обрабатывать видеоконтент и достигать более эффективного сжатия данных. Видеокадры делятся на макроблоки размером 16x16 пикселей, которые можно дополнительно разделить на более мелкие блоки, такие как 8x8, 8x4, 4x8 и т. д., чтобы учесть сложность содержимого изображения.
Группировка кадров (структура GOP) определяется перед внутренним предсказанием и внешним предсказанием. В процессе кодирования видео настройка группировки кадров является одним из начальных шагов, который определяет организацию и порядок кодирования видеокадров. Основная цель группировки кадров — уменьшить избыточность данных. Избыточность видеоданных в основном делится на две категории:
Этапы выполнения группировки кадров H264:
Когда группировка завершена, проблема сжатия предсказания кадров начинает решаться.
Эта часть в основном включает в себя внутрикадровое предсказание и межкадровое предсказание. Внутрикадровое предсказание заключается в сжатии статических кадров изображения, прогнозировании значения пикселя каждого макроблока с помощью 9 различных режимов, а затем вычислении остаточного значения с исходным изображением. Межкадровое прогнозирование (оценка движения и компенсация движения): для кадров P и B найдите вектор движения между предыдущим кадром или двумя кадрами с помощью оценки движения, затем выполните прогнозирование компенсации движения, сгенерируйте предсказанное изображение и вычислите невязку из текущий кадр.
Примечание. Порядок внутреннего и внешнего предсказания зависит от типа кодированного кадра и стратегии кодирования. В реальной реализации видеокодера эти шаги являются частью процесса кодирования и обрабатываются кодером автоматически. Не обязательно, кто справится с этим первым.
Сжатие внутрикадрового прогнозирования: решает проблему избыточности пространственных данных. К избыточным данным воздушного пространства относятся цвет, яркость и т. д., которые в основном предназначены для информации, нечувствительной для человеческого глаза. Кодировка сжимается путем ее удаления.Принцип, используемый при внутрикадровом прогнозировании, заключается в том, что человеческий глаз в определенной степени распознает изображения. Он очень чувствителен к низкочастотной яркости и менее чувствителен к высокочастотной яркости.(Это можно понимать как размер макроблока 16X16. В H264 другие данные прогнозируются через верхние 16 пикселей и самые левые 16 пикселей, так что информация о представлении пикселей, которая изначально требует 16*16=256, может быть преобразована в 16+ 16-1 =31 пиксель для представления информации)。
Сжатие межкадрового прогнозирования (оценка и компенсация движения): решает проблему избыточности данных во временной области. В видео есть несколько кадров, расположенных линейно в хронологическом порядке. Корреляция между кадрами очень сильная, поэтому между кадрами можно удалить много данных.После сжатия он будет разделен на три типа: кадр I, кадр P и кадр B.(Пояснение: Принцип оценки и компенсации движения: Кодер H264 сначала последовательно извлекает два кадра видеоданных из заголовка буфера, а затем выполняет сканирование макроблоков. Когда обнаруживается, что на одном из изображений есть объект, он Выполнит поиск ближайшей позиции (в окне поиска). Если в это время объект найден на другом изображении, можно вычислить вектор движения объекта. На рисунке ниже показано положение бильярдного шара после поиска.。
Для кадров P и B оценка движения используется для нахождения вектора движения между предыдущим кадром или двумя кадрами, а затем выполняется прогнозирование компенсации движения для создания прогнозируемого изображения и вычисляется остаток с текущим кадром.
На этом этапе в основном выполняется DCT-преобразование остатка прогноза, преобразует пространственную корреляцию в нерелевантные данные в частотной области, а затем квантует их. DCT в основном используется для сжатия данных или изображений, преобразования пространственной корреляции в нерелевантные данные в частотной области и последующего их квантования.(Пояснение: преобразование DCT может собрать вместе более важную информацию об изображении, а неважные области частотной области и коэффициенты могут быть напрямую обрезаны)。
Краткое описание: Последовательность сжатия данных кадра заключается в том, чтобы сначала выполнить межкадровое и внутрикадровое сжатие, а затем выполнить преобразование DCT остаточных данных, чтобы удалить корреляцию данных и дополнительно сжать данные. Следующее:
CABAC-сжатие — это технология сжатия без потерь и метод энтропийного кодирования. Когда CABAC сжимается и кодируется, высокочастотные данные определяются как короткие коды, а низкочастотные данные определяются как длинные коды. Этот метод более эффективен, чем метод VLC. Метод энтропийного кодирования CABAC (контекстно-адаптивное двоичное арифметическое кодирование) используется для дальнейшего сжатия квантованных коэффициентов для повышения эффективности сжатия. Здесь данные, обработанные на предыдущих четырех шагах, кодируются в окончательный поток кода с использованием алгоритма кодирования. Окончательно сжатые кадры делятся на I-кадры, P-кадры и B-кадры. После выполнения метода сжатия без потерь CABAC получается поток видеокода.
Пространственная избыточность данных и временная избыточность данных являются двумя основными концепциями сжатия видео. Они описывают повторяющуюся информацию внутри и между видеокадрами соответственно.
Интерпретация пространственной избыточности:
Интерпретация временной избыточности:
При сжатии видео H.264 остаточные данные относятся к разнице между исходным видеокадром и прогнозируемым кадром. В то же время, если вы хотите иметь более глубокое понимание остаточных данных, вам необходимо понимать следующие концепции, как показано ниже:
предсказанный кадр : Во время процесса кодирования видео для генерации прогнозируемых кадров будет использоваться внутреннее предсказание (Intra Prediction) или внешнее предсказание (Inter Prediction). Внутреннее предсказание основано на информации о пикселях текущего кадра, тогда как внешнее предсказание основано на информации о компенсации движения предыдущих или последующих кадров.
оригинальная рамка: относится к исходным кадрам изображения, фактически захваченным в видеопоследовательности.
Остаточный расчет : Остаточные данные рассчитываются путем вычитания прогнозируемого кадра из исходного кадра. Остаточные данные представляют собой разницу между прогнозируемым кадром и исходным кадром.
Опираясь на вышеизложенные концепции, мы можем лучше понять характеристики остаточных данных:
Остаточные данные обычно имеют высокую пространственную случайность, поскольку кадр прогнозирования удалил большую часть избыточной информации. Эта случайность делает остаточные данные пригодными для дальнейшего сжатия посредством преобразования и квантования.
После обработки остаточных данных с помощью целочисленного дискретного косинусного преобразования (IDCT) и квантования объем данных может быть значительно уменьшен. Преобразование преобразует двумерную пространственную информацию остатка в частотную информацию, тогда как квантование снижает точность этих коэффициентов и удаляет детали, незаметные для человеческого глаза.
Целью кодирования остаточных данных является дальнейшее снижение битрейта видеоданных при максимально возможном сохранении качества изображения. В то же время эффективное сжатие остаточных данных имеет решающее значение для эффективности кодирования H.264, поскольку оно напрямую влияет на качество кодируемого видео и требуемую полосу пропускания для хранения или передачи.
Энтропийное кодирование — это метод сжатия данных без потерь, основанный на концепции энтропии информации и направленный на представление данных с как можно меньшим количеством битов. Основная идея энтропийного кодирования состоит в том, чтобы выделить меньше битов для символов, которые встречаются с большей вероятностью, и выделить больше битов для символов, которые появляются реже. Таким образом, желаемое пространство для хранения или полоса пропускания передачи уменьшается, поскольку снижается средний битрейт всего набора данных.
Энтропийное кодирование часто используется для сжатия текста и некоторых конкретных типов данных и может значительно повысить эффективность сжатия, особенно когда данные имеют существенно неравномерное распределение вероятностей. При кодировании сжатия видео методы энтропийного кодирования, наиболее тесно связанные со сжатием видео, в основном включают следующее:
При сжатии видео энтропийное кодирование — это последний этап кодирования, используемый для кодирования остаточных данных после внутреннего и взаимного прогнозирования. Остаточные данные представляют собой разницу между исходными данными и прогнозируемыми данными и обычно имеют меньшую энергию и более неравномерное распределение вероятностей. Посредством энтропийного кодирования битовая скорость этих остаточных данных может быть дополнительно уменьшена, тем самым достигая цели сжатия видеоданных.