Métodos de codificación (Microsoft Media Foundation)
La mayoría de los códecs de audio y vídeo de Windows Media admiten varios métodos de codificación. Saber cómo y cuándo usar cada método pueden ayudarle a crear contenido comprimido de alta calidad.
Todos los métodos de codificación se centran en el búfer usado por el descodificador para administrar los datos de entrada comprimidos. Este búfer se define mediante la velocidad de bits de la secuencia, en bits por segundo y la ventana del búfer, en milisegundos. Al codificar, el códec se rige por las restricciones del búfer. Para obtener más información sobre el búfer, vea El modelo de búfer de cubos con fugas.
Codificación de velocidad de bits constante
La velocidad de bits de cualquier secuencia codificada por uno de los códecs de audio y vídeo de Windows Media no es constante. La codificación de velocidad de bits constante (CBR) es, por lo tanto, un término algo engañoso. La característica distintiva de una secuencia codificada en CBR es una ventana de búfer pequeña, que limita la variación de los tamaños de muestra. La codificación CBR se usa principalmente para el contenido que se transmite a través de una red a su destino. En este escenario, es importante poder confiar en el uso coherente del ancho de banda.
Desde un punto de vista de configuración, la codificación CBR difiere de los demás modos en que antes de empezar a codificar, establece la velocidad de bits media del contenido de salida y la ventana de búfer que se aplica a esa velocidad de bits. En otros modos, uno o ambos valores se desconocen al configurar el codificador y se calcula mediante el códec mientras codifica. CBR es el modo de codificación estándar que usan las DPO del codificador de Windows Media.
codificación de velocidad de bits constante Two-Pass
CBR estándar solo usa un solo paso de codificación. Proporcione el contenido como muestras de entrada y el códec comprime el contenido y devuelve ejemplos de salida. También es posible procesar muestras de entrada dos veces. En el primer paso, el códec realiza cálculos para optimizar la codificación del contenido. En el segundo paso, el códec usa los datos recopilados durante el primer paso para codificar el contenido.
La codificación CBR de dos pasos tiene muchas ventajas. A menudo produce importantes mejoras de calidad sobre la codificación CBR estándar sin cambiar ninguno de los requisitos de almacenamiento en búfer. Esto hace que este modo de codificación sea ideal para el contenido que se transmite a través de una red. La única situación en la que CBR de dos pasos no es factible es cuando codifica contenido de un origen activo y no puede usar un segundo pase.
El tipo de medio de salida de una secuencia CBR de dos pasos es idéntico al de una secuencia CBR estándar; Todavía se especifica la velocidad de bits y la ventana de búfer que se va a usar. Al configurar DMO, debe establecerlo para realizar dos pasos. Y debe notificar al DMO cuando haya terminado de enviar muestras para el primer paso.
codificación de velocidad de bits variable Quality-Based
Dado que la codificación CBR no mantiene realmente una velocidad de bits constante, la distinción entre ella y la codificación de velocidad de bits variable (VBR) puede parecer un poco aturdida. La diferencia principal entre CBR y VBR es el tamaño de la ventana de búfer utilizada. Las secuencias codificadas en VBR suelen tener ventanas de búfer grandes en comparación con las secuencias codificadas en CBR. VBR basado en calidad no es ninguna excepción, en que no se define ni velocidad de bits ni ventana de búfer para ella. En su lugar, se establece un valor de calidad. A continuación, el códec intenta comprimir los datos para que la calidad del medio codificado sea coherente a lo largo de su duración, independientemente de los requisitos de búfer de la secuencia resultante.
VBR basado en calidad usa un solo paso de codificación y tiende a crear flujos comprimidos grandes. Cuando se completa la codificación, el códec establece los requisitos del búfer para que el descodificador pueda descomprimir los datos. La secuencia VBR codificada no es adecuada para el streaming a través de una red, por lo que VBR basado en calidad solo se debe usar para escenarios de reproducción local (o descargar y reproducir).
Codificación de velocidad de bits variable sin restricciones
A diferencia de VBR basado en calidad, VBR sin restricciones no codifica en un nivel de calidad específico. En su lugar, codifica el contenido a la máxima calidad posible mientras mantiene una velocidad de bits especificada. VBR sin restricciones usa dos pasos de codificación y es similar a CBR de dos pasos, salvo que no se especifica una configuración de ventana de búfer para la secuencia. Esto significa que no hay ningún límite en el tamaño de las muestras individuales de la secuencia, siempre y cuando la velocidad de bits promedio sea menor o igual que el valor establecido.
VBR sin restricciones es de uso limitado, ya que hay pocos escenarios de reproducción que tienen requisitos para cumplir con sus requisitos de búfer. El códec puede establecer la ventana del búfer en cualquier valor necesario después de la codificación, lo que le da ningún control sobre el tamaño del búfer. En la mayoría de los casos, si no le preocupa el tamaño del búfer o la coherencia del uso del ancho de banda, debe usar VBR basado en calidad.
codificación de velocidad de bits variable Peak-Constrained
El modo de codificación final es VBR con restricción máxima. Al igual que VBR sin restricciones, este modo usa dos pasos de codificación y codificaciones en una velocidad de bits especificada. Sin embargo, con VBR restringido máximo, también se configura el valor máximo para la codificación. Los valores máximos son similares a los valores de configuración normales del búfer: hay una velocidad de bits máxima y una ventana de búfer máxima. El archivo se codifica para que se ajuste a un búfer descrito por los valores máximos, con la condición de que la velocidad de bits media global de la secuencia sea igual o menor que el valor de velocidad de bits promedio que especifique.
VBR restringido puede ser difícil de conceptualizar. Esta es la manera más fácil de pensar en el modelo de almacenamiento en búfer usado. Supongamos que la secuencia es una secuencia CBR con la velocidad de bits máxima y la ventana de búfer máxima usada para definir el búfer. Normalmente, la velocidad de bits máxima es bastante alta. El codificador garantiza que el valor de velocidad de bits promedio esperado que indique se mantiene durante la duración de la secuencia. En cualquier punto concreto de la secuencia, se garantiza que la velocidad de bits promedio sea mayor que el tamaño total de la secuencia en bits divididos por la duración de la secuencia en segundos).
Considere el ejemplo siguiente: configure una secuencia con una velocidad de bits media de 16 000 bits por segundo, una velocidad de bits máxima de 48 000 bits por segundo y una ventana de búfer máxima de 3000 (3 segundos). El tamaño del búfer usado para la secuencia es de 144 000 bits (48 000 bits por segundo x 3 segundos), según lo determinado por los valores máximos. El codificador comprime los datos para que se ajusten a ese búfer. Además, la velocidad media de bits de la secuencia debe ser de 16 000 o menos. Si el codificador necesita realizar algunas muestras muy grandes para controlar un segmento complejo de contenido, puede aprovechar el tamaño de búfer grande. Sin embargo, otras partes de la secuencia deben codificarse a una velocidad de bits inferior para reducir el promedio al nivel especificado.
La codificación VBR restringida máxima es útil para los dispositivos de reproducción con una capacidad de búfer finito y algunas restricciones de velocidad de datos. Un ejemplo común de esto es la codificación usada para DVDs.
Temas relacionados