El retardo de fotograma I (IFD) es una técnica de programación para la transmisión adaptativa de vídeo MPEG . La idea subyacente es que el programador de transmisión descarta fotogramas de vídeo cuando el búfer de transmisión está lleno debido a un ancho de banda insuficiente, para reducir la tasa de bits transmitida. Las características del algoritmo: [ 1 ]
- El número de fotogramas que se encuentran actualmente en el búfer (no el número de bytes) indica si el búfer está lleno.
- Los fotogramas menos importantes ( fotograma B ) del búfer se descartan antes que los fotogramas más importantes ( fotograma I y fotograma P ).
- La transmisión de fotogramas I se retrasa cuando las condiciones son desfavorables, incluso si están desactualizados con respecto al tiempo de visualización (aún pueden utilizarse para decodificar fotogramas posteriores predichos por interpretación).
Algoritmo de retardo de fotograma I
El mecanismo IFD se divide en dos partes: [ 1 ]
- A medida que la señal se procesa y se divide en paquetes de red, también se analiza y se etiqueta con un número de prioridad que refleja el tipo de trama (fotograma I, fotograma P o fotograma B). Los paquetes que no son de vídeo reciben la máxima prioridad, lo que garantiza que el audio nunca se pierda.
- Durante la transmisión, el planificador IFD descarta los paquetes cuando el ancho de banda es insuficiente.
El tamaño del búfer IFD debe ser lo suficientemente grande como para contener varias tramas, pero se requiere un mínimo de dos: una para la trama que se está enviando (indicada a continuación como ScheduledFrame) y otra que está en espera de ser enviada (indicada como WaitingFrame). Aumentar el tamaño del búfer IFD podría permitir una priorización más elaborada, pero puede aumentar la latencia y el uso de memoria. [ 1 ] La siguiente figura muestra un ejemplo del llenado del búfer. Los números representan la prioridad de un paquete.
![]()
Aquí, los fotogramas de vídeo tienen números de prioridad de 10 o superiores. Los paquetes con prioridad 12 pertenecen al fotograma programado para su envío, y los paquetes con prioridad 11 pertenecen al fotograma en espera. En la figura, un paquete perteneciente al siguiente fotograma está a punto de entrar en el búfer.
Como se puede observar, es posible intercalar paquetes de vídeo con paquetes que no son de vídeo (audio o sistema con prioridades 2 y 0 respectivamente). Cuando un paquete perteneciente al siguiente fotograma está a punto de escribirse en el búfer IFD y este se encuentra lleno, el planificador IFD descarta un fotograma según la prioridad asignada previamente. Si el ancho de banda de la red es tan bajo que también se deben descartar los fotogramas P, el GOP ( Grupo de Imágenes ) se configura como "perturbado" y el resto del GOP (que depende del fotograma P) también se descarta.
Si solo se descartan los fotogramas B, no debería haber distorsiones en la imagen del fotograma porque no hay fotogramas subsiguientes que dependan de ellos. [ 1 ] El descarte de fotogramas por IFD provoca que la reproducción del vídeo se congele temporalmente, cuya duración depende del número de fotogramas descartados, tras lo cual la reproducción se reanuda desde el siguiente fotograma que se ha procesado. [ 1 ] Para una implementación de IFD con un búfer del tamaño de dos fotogramas, el algoritmo se muestra en la figura siguiente.
procedimiento Enqueue(NextFrame) Si DisturbedGOP == Verdadero entonces Si NextFrame es de tipo I, entonces # se encuentra un nuevo GOP. DisturbedGOP = Falso # Restablecer la bandera de disturbios del GOP fin fin Si DisturbedGOP == Verdadero entonces Descartar NextFrame # Descartar el resto del Partido Republicano perturbado devolver fin Si WaitingFrame está vacío, entonces Marco de espera = Siguiente marco demás Si NextFrame es de tipo I, entonces Marco de espera = Siguiente marco demás Si NextFrame es de tipo B, entonces Eliminar siguiente fotograma demás Si WaitingFrame es de tipo I o P, entonces Eliminar siguiente fotograma Si NextFrame es de tipo P, entonces # El fotograma descartado es un fotograma P. DisturbedGOP = Verdadero # Establecer la bandera de GOP perturbado fin demás Marco de espera = Siguiente marco fin fin fin fin fin
Referencias
- MPEG