stringtranslate.com

Задержка I-кадра

I-Frame Delay (IFD) — это метод планирования адаптивной потоковой передачи видео MPEG . Идея заключается в том, что планировщик потоковой передачи отбрасывает видеокадры, когда буфер передачи заполнен из-за недостаточной пропускной способности, чтобы снизить скорость передачи данных. Характеристики алгоритма.: [1]

  1. количество кадров, находящихся в данный момент в буфере (а не количество байтов), указывает на заполненность буфера,
  2. менее важные кадры ( B-кадр ) из буфера отбрасываются раньше более важных кадров ( I-кадр и P-кадр ),
  3. передача I-кадров задерживается при плохих условиях, даже если они устарели относительно времени отображения (их все равно можно использовать для декодирования последующих интерпрогнозированных кадров).

Алгоритм задержки I-кадра

Механизм IFD разделен на две части: [1]

  1. поскольку поток анализируется и пакетируется в сетевые пакеты, он также анализируется, и пакеты помечаются номером приоритета, отражающим тип кадра (I-кадр, P-кадр или B-кадр). Пакетам, не относящимся к видео, присваивается наивысший приоритет, поэтому звук никогда не будет отбрасываться.
  2. во время передачи пакеты отбрасываются планировщиком IFD, когда пропускная способность недостаточна.

Размер буфера IFD должен быть достаточно большим, чтобы вместить несколько кадров, но минимум требуется два кадра: один для хранения кадра, отправляемого в данный момент (обозначен ниже как ScheduledFrame), и один, ожидающий отправки в данный момент (обозначенный как WaitingFrame). . Увеличение размера буфера IFD потенциально может позволить более тщательно расставить приоритеты, однако это может привести к увеличению задержки и использования памяти. [1] На рисунке ниже показан пример заполнения буфера. Числа обозначают приоритет пакета.

Здесь номера приоритета видеокадров составляют 10 и выше. Пакеты с номером приоритета 12 относятся к кадру, запланированному к отправке, а пакеты с номером 11 относятся к кадру ожидания. На рисунке пакет, принадлежащий следующему кадру, вот-вот попадет в буфер.

Как можно видеть, можно чередовать видеопакеты с невидеопакетами (аудио или системные с номерами приоритета 2 и 0 соответственно). Когда пакет, принадлежащий следующему кадру, должен быть записан в буфер IFD и буфер заполнен, планировщик IFD отбросит кадр на основе ранее назначенного приоритета. Когда пропускная способность сети настолько мала, что необходимо отбросить и P-кадры, тогда GOP ( группа изображений ) устанавливается как «нарушенная», а остальная часть GOP (которая зависит от P-кадра) также отбрасывается. .

Если отбрасываются только B-кадры, то в изображении кадра не должно быть никаких искажений, поскольку от них не зависят последующие кадры. [1] Пропуск кадров по IFD приводит к эффекту временной остановки воспроизведения видео, продолжительность которой зависит от количества пропущенных кадров, после чего воспроизведение возобновляется со следующего прошедшего кадра. [1] Для реализации IFD с буфером размером в два кадра алгоритм показан на рисунке ниже.

процедура Enqueue(NextFrame) если DisturbedGOP == True, тогда если NextFrame имеет тип I, то # обнаружена новая GOP DisturbedGOP = False # Сброс флага нарушенной GOP конец конец если DisturbedGOP == True, тогда Drop NextFrame # Отбросить остальную часть нарушенной GOP возвращаться конец если WaitingFrame пуст, то Ожидающий кадр = Следующий кадр еще если NextFrame имеет тип I, то Ожидающий кадр = Следующий кадр еще если NextFrame имеет тип B, то Отбросить следующий кадр еще если WaitingFrame имеет тип I или P, тогда Отбросить следующий кадр если NextFrame имеет тип P, то # Отброшенный кадр является P-кадром DisturbedGOP = True # Установить флаг нарушенной GOP конец еще Ожидающий кадр = Следующий кадр конец конец конец конецконец

Рекомендации

  1. ^ abcde Марек Бурза, Джеффри Канг, Питер ван дер Сток; Адаптивная потоковая передача аудио/видео контента в формате MPEG по беспроводным сетям; Журнал мультимедиа, том. 2, нет. 2 апреля 2007 г.; ISSN  1796-2048