Перейти к содержимому


Перед регистрацией ознакомьтесь с темой про сертификат безопасности:
Фотография
- - - - -

Open GOP и Chapter Play-list


  • Закрытая тема Тема закрыта
Нет ответов в этой теме

#1 Valery

Valery

    зверею потихоньку...

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6898 Сообщений:

Отправлено 01 Aug 2008 - 08:45

Начнем с теории.

Как реализуется

Для удобства кодирования видеоданных весь видеопоток разбивается на группы, называемые 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.


0 человек читают эту тему

0 пользователей, 0 гостей, 0 скрытых пользователей



Рейтинг@Mail.ru