¿Qué es un búfer?
Un búfer almacena temporalmente datos multimedia antes de su reproducción o procesamiento para absorber diferencias breves entre las tasas de llegada y consumo. Su capacidad afecta al retraso, al uso de memoria y a la tolerancia a las interrupciones.
Cómo funcionan los búferes
Un pipeline multimedia usa colas entre productores y consumidores cuyos tiempos no están perfectamente sincronizados. La reproducción normalmente comienza cuando se alcanza un umbral inicial de datos disponibles y luego consume las muestras en cola según sus marcas de tiempo mientras las descargas continúan en paralelo. Por tanto, la política del búfer relaciona las variaciones del retardo de la red, la demultiplexación, la decodificación y el renderizado: una mayor duración en cola mejora la tolerancia a las interrupciones, pero retrasa más la visualización en vivo respecto de la línea de tiempo de recepción.
Datos clave
- Los búferes de reproducción suelen analizarse como duración con marcas de tiempo en lugar de bytes sin procesar, porque una misma cantidad de bytes puede representar tiempos de visualización muy distintos a diferentes tasas de bits.
- Se produce un vaciado del búfer cuando el consumidor alcanza datos que aún no han llegado; se produce un desbordamiento cuando los datos entrantes superan el almacenamiento limitado o llegan más rápido de lo que el procesamiento posterior puede liberar espacio.
- Los reproductores adaptativos pueden usar la duración almacenada en el búfer junto con estimaciones de la velocidad de transferencia, pero un búfer grande puede ocultar el deterioro de las condiciones de la red hasta un cambio posterior de variante o una interrupción prolongada.
Cuándo son relevantes los búferes
Aumenta el búfer para resistir las variaciones del retardo de la red o las caídas breves de la velocidad de transferencia, a costa de aumentar la latencia de inicio y de reproducción en vivo. Un búfer que se vacía provoca interrupciones de la reproducción, mientras que uno demasiado grande consume memoria innecesaria.