Начнем с теории. Как реализуется Для удобства кодирования видеоданных весь видеопоток разбивается на группы, называемые GOP (Group of Pictures- группой изображений). Такая группа строится следующим образом: где: I - Intra кадры, которые обычно называются опорными и содержат всю информацию об изображении. MPEG последовательности без этих кадров быть не может в принципе. При компрессии I кадров происходит удаление только пространственной избыточности. Именно с этого кадра начинается декодирование изображения в последовательности. P- Predictive кадры. "Предсказанные" кадры, при формировании которых используется метод предсказания изображения на следующем кадре с учетом компенсации движения от последнего I или P кадра перед формируемым. P кадр также служит для дальнейшего предсказания изображения. P кадр создается с помощью межкадровой компрессии, уменьшающей как пространственную, так и временную избыточность. Изображение P кадра вычитается из следующего изображения и эта разница кодируется и вместе с вектором движения добавляется к сжатым данным. B - Bi-directional, "двунаправленные" кадры. Они названы так потому, что хранят наиболее существенную информацию с окружающих их I и P кадров. B кадры имеют наивысшую степень компрессии, но требуют предыдущего и последующего изображения для компенсации движения объектов на изображении. Такую структуру MPEG потока обычно описывают в виде дроби M/N, для которой M сообщает общее число кадров в GOP, а N - каким по счету будет очередной P кадр после предыдущего. Таким образом, GOP последовательность, изображенная на рисунке выше, может быть записана как 12/3. Собственно поток данных MPEG состоит из 6-ти иерархических уровней Блок - данные по яркости и цветности для блоков 8х8 изображения. Блоки анализируются по значениям Y (яркость), CB и CR (цветоразностные сигналы) Макроблок - как следует из названия, состоит из 4 простых блоков в окне 16х16 пикселей соответственно. В формате 4:2:0 макроблок содержит 4 блока яркостных данных Y и по одному CB и CR. Слой - содержит несколько смежных макроблоков Кадр - состоит из группы слоев, содержащих изображение, которое, в свою очередь, может быть как I, так P или B. Группа изображений (она же GOP) - содержит последовательность кадров. Может включать до 15 кадров и должна обязательно начинаться с I кадра. Видеопоследовательность - должна содержать минимум одну GOP, а также заголовок в начале последовательности и код конца последовательности. Итак,теперь мы уяснили что такое обычная(закрытая) GOP. В нашем же случае мы имеем Open GOP-каждая группа заканчивается на B-Frame. Что же происходит при обычном просмотре фильма? Никаких проблем не наблюдается,потому как последний B-Frame всегда находит недостающую информацию в следующей группе в I-Frame. Если же в проект включен Chapter Play-list с эпизодами не по порядку, происходит следующее. Глава как известно всегда начинается с I-Frame. И вот дойдя до следующей Chapter Point плеер естественно перескакивает с последнего B-Frame этой группы на 1-й I-Frame указанной в листе главы и соответственно при просмотре это выражается как появление кубиков и прочего в момент перехода,потому как для полного восстановления B-Frame нет необходимой информации из пропущенного 1-го I-Frame принадлежащего пропущенной главе. Отсюда вывод: Если хотите использовать Chapter Play-list, кодируйте выставив в кодере Closed GOP(я кодирую так всегда).
Более подробно о mpeg и его применении. Преимущества и недостатки формата.
Автор: Сергей Блохнин, www.spline.ru |
Просмотров: 34701 |
|
Версия для печати |
|
Послать по e-mail |
|
Сделать стартовой |
|
Добавить в Избранное |
Концепция
Как реализуется
Уровни и профили MPEG
Практическое использование
Концепция
Видеоданные по своей природе занимают чрезвычайно большой объем. Над задачей возможно более эффективного сжатия видео уже много лет бьются специалисты в этой области. В начале третьего тысячелетия в связи с острой необходимостью передавать большие объемы видео по различным сетям, задача оптимального по соотношению качество/объем способа кодирования видео стала еще более актуальной. Концепция сжатия видео в MPEG очень проста - определить, какая именно информация в потоке повторяется хотя бы в течении какого-то отрезка времени и принять меры к избежанию дублирования этой информации. Наиболее ценное достоинство MPEG кодирования, особенно удобное для передачи по различным сетям - возможность гибкой настройки качества изображения в зависимости от пропускной способности сети. Это и сделало MPEG-2 фактическим стандартом для приема/передачи цифрового телевидения по различным сетям. К сожалению, не существует возможности однозначно оценить качество кодирования некими приборами и измерениями. Единственный критерий здесь - человек и как он воспримет сжатую информацию. Поэтому правила сжатия видеоданных при MPEG кодировании вырабатывались на основе модели восприятия человеком видеоизображений (HVS - Human Visual Sense). Избыточность изображения согласно HVS определяется по трем основным критериям:
Невидимые человеческим глазом детали изображения - места гашения по вертикали и горизонтали. Удаление этой информации вообще никак не сказывается на изображении
Статистическая избыточность. Подразделяется на пространственную и временную. Под пространственной избыточностью понимаются участки изображения, на которых смежные пиксели практически одинаковы. Под временной - не изменяемые во времени фрагменты изображения.
Избыточность по цвету и яркости - рассчитывается исходя из ограниченной чувствительности человека к небольшим изменениям цветов и яркости деталей изображения.
Как реализуется
Для удобства кодирования видеоданных весь видеопоток разбивается на группы, называемые GOP (Group of Pictures- группой изображений). Такая группа строится следующим образом:
где:
I - Intra кадры, которые обычно называются опорными и содержат всю информацию об изображении. MPEG последовательности без этих кадров быть не может в принципе. При компрессии I кадров происходит удаление только пространственной избыточности. Именно с этого кадра начинается декодирование изображения в последовательности.
P- Predictive кадры. "Предсказанные" кадры, при формировании которых используется метод предсказания изображения на следующем кадре с учетом компенсации движения от последнего I или P кадра перед формируемым. P кадр также служит для дальнейшего предсказания изображения. P кадр создается с помощью межкадровой компрессии, уменьшающей как пространственную, так и временную избыточность. Изображение P кадра вычитается из следующего изображения и эта разница кодируется и вместе с вектором движения добавляется к сжатым данным.
B - Bi-directional, "двунаправленные" кадры. Они названы так потому, что хранят наиболее существенную информацию с окружающих их I и P кадров. B кадры имеют наивысшую степень компрессии, но требуют предыдущего и последующего изображения для компенсации движения объектов на изображении.
Такую структуру MPEG потока обычно описывают в виде дроби M/N, для которой M сообщает общее число кадров в GOP, а N - каким по счету будет очередной P кадр после предыдущего. Таким образом, GOP последовательность, изображенная на рисунке выше, может быть записана как 12/3. Собственно поток данных MPEG состоит из 6-ти иерархических уровней
Блок - данные по яркости и цветности для блоков 8х8 изображения. Блоки анализируются по значениям Y (яркость), CB и CR (цветоразностные сигналы)
Макроблок - как следует из названия, состоит из 4 простых блоков в окне 16х16 пикселей соответственно. В формате 4:2:0 макроблок содержит 4 блока яркостных данных Y и по одному CB и CR.
Слой - содержит несколько смежных макроблоков
Кадр - состоит из группы слоев, содержащих изображение, которое, в свою очередь, может быть как I, так P или B.
Группа изображений (она же GOP) - содержит последовательность кадров. Может включать до 15 кадров и должна обязательно начинаться с I кадра.
Видеопоследовательность - должна содержать минимум одну GOP, а также заголовок в начале последовательности и код конца последовательности.