[Procesamiento de audio y video] Explicación detallada de H264/H265, ¿por qué se usa más comúnmente H264?

Hola a todos y bienvenidos al canal Stop Refactoring.

En este número, presentamos el formato de codificación de video H264 .

H264 es el formato de codificación más utilizado para imágenes de video. Casi todos los reproductores admiten este formato de codificación y los navegadores no son una excepción.

Discutimos H264 en este orden:

1. El papel del formato de codificación 

2. Marco I, marco P, marco B, GOP 

3. Puntos a los que prestar atención en diferentes escenarios de uso 

4. Selección de H264 y H265

El papel del formato de codificación

Como se presentó en la edición anterior de "Principios de trabajo de la transcodificación de audio y video", un archivo de video se divide en realidad en tres capas : encapsulación, codificación y datos básicos .

Para la función de encapsulación, consulte la edición anterior de "Formato de encapsulación".

El papel de la codificación es comprimir los datos y limitar el tamaño del archivo final.

Tome un video como ejemplo. El video se compone de imágenes cuadro por cuadro. El tamaño de un cuadro de imagen está determinado por el formato de datos básico. El formato de datos básico del video es generalmente un modelo de espacio de color.

Si la resolución es 1920*1080 y el modelo de espacio de color es YUV420, entonces el tamaño de un cuadro de imagen es de aproximadamente 3 MB.

Si la duración del video es de 1 minuto y 25 cuadros por segundo, el tamaño teórico del archivo de video es de aproximadamente 4 GB.

Pero el archivo de video general no es tan grande. Debido a que el video comprimirá los datos durante la etapa de codificación , el video de alta definición de unos pocos minutos suele ser de cientos de megabytes.

El proceso de codificación está determinado por el formato de codificación . Cada formato de codificación corresponde a un algoritmo de compresión/descompresión diferente, y cada formato de codificación también corresponde a un codificador/descodificador diferente. Si el reproductor no admite un determinado formato de codificación, no se reproducirá. .desde

Por cierto, generalmente solo los parámetros básicos que afectan el tamaño del archivo de video se utilizarán en la etapa de codificación , como la tasa de bits, la tasa de bits máxima, etc. La etapa de codificación limitará el tamaño del archivo de acuerdo con estos parámetros, pero al mismo tiempo también puede producir una compresión con pérdida, lo que afecta la calidad de la imagen.

Otros parámetros básicos, como la resolución , la velocidad de cuadros, etc., no se procesan en la etapa de codificación , que requiere que el programa de transcodificación opere con los datos básicos del cuadro original.

Para modificaciones como la reducción de la velocidad de fotogramas, el programa de transcodificación debe volver a calcular la marca de tiempo del fotograma de vídeo y descartar algunos datos de fotogramas redundantes. Por supuesto, los marcos como FFmpeg proporcionan estas interfaces de procesamiento.

Marco I, marco P, marco B, GOP

H264 es el formato de codificación de video más utilizado, y el video aquí se refiere a imágenes . H264 no maneja datos de audio.

El principio de funcionamiento de la compresión de H264 es relativamente típico y su algoritmo de compresión ha agregado conceptos como compensación de movimiento y suplemento de movimiento.

Es decir, para una sección con mucha similitud, no es necesario registrar todos los datos, sino calcular la imagen actual a partir de la imagen anterior o de las imágenes anteriores y posteriores, de forma que se tendrán los datos de todo el archivo. ser reducido.

No es necesario aclarar el algoritmo de compresión específico, pero es necesario tener claro el concepto especial H264 correspondiente, marco I, marco P, marco B, GOP .

Un cuadro I es un cuadro de imagen que se puede reproducir de forma independiente, y la cantidad de datos es la más grande.

El cuadro P debe calcularse en función del cuadro I o cuadro P anterior, los datos están incompletos y la cantidad de datos es menor que la del cuadro I, y la mayor parte del video es un cuadro P.

El cuadro B debe calcularse en función del cuadro I o cuadro P anterior y siguiente, los datos son los más incompletos y la cantidad de datos es la menor.

GOP se refiere a un conjunto completo de fotogramas de video. Si gop se establece en 25, el codificador hará que el primer fotograma de cada 25 fotogramas sea un fotograma I. Si la velocidad de fotogramas también es de 25 fotogramas, entonces el primer fotograma por segundo debe ser un fotograma I.

Puntos a los que prestar atención en diferentes escenarios de uso

¿De qué sirve conocer estos conceptos del H264? En algunos escenarios, estos conceptos juegan un papel clave.

En primer lugar, no importa cuál sea la escena, debe prestar atención a la configuración de la tasa de bits y la tasa de bits máxima .

Debido a que la tasa de código es el parámetro más intuitivo que afecta la cantidad de datos, limitará el tamaño de la cantidad final de datos.Después de todo, el espacio de almacenamiento y el ancho de banda de la red deben tenerse en cuenta en muchos casos.

Para obtener una explicación y sugerencias específicas de parámetros relevantes como la velocidad de bits, la resolución, la velocidad de fotogramas, etc., consulte la edición anterior de "Parámetros de video", que no se ampliará aquí.

La siguiente es la escena de reproducción en línea Generalmente, los cuadros I, cuadros B, cuadros P y GOP no necesitan atención especial. 

Sin embargo, si hay problemas como que el salto de video descargado no es fluido, puede ser que algunos dos cuadros I del video estén muy separados. Para evitar este problema, puede configurar el GOP a 4-5 veces el cuadro tasa para asegurar Debe haber un cuadro I cada 4-5 segundos.

En el escenario de la transmisión en vivo , estos conceptos necesitan una atención especial. El cuadro I es un cuadro independiente, y la reproducción del cuadro B y el cuadro P depende esencialmente del cuadro I, por lo que el servidor de transmisión debe configurar el cuadro I de caché , de modo que el problema del primer desenfoque de pantalla pueda aliviarse. en cierta medida.

Pero aún habrá un problema parcial de pantalla borrosa. También necesitamos configurar el GOP . El GOP generalmente se configura en 1-2 veces la velocidad de fotogramas para garantizar que debe haber un fotograma I cada 1-2 segundos. En este caso , en teoría, son solo 1-2 segundos. El problema de la pantalla borrosa solo aparecerá cuando el flujo comience a fluir en el espacio.

Sin embargo, los fotogramas de 1-2 segundos son en su mayoría similares, y si se configura el búfer de fotogramas, incluso si hay una pantalla parcialmente borrosa, a menudo no se siente.

La transmisión en vivo generalmente necesita prohibir la generación de cuadros B. Aunque el volumen de datos de los cuadros B es el más pequeño, necesita que se calculen los datos del siguiente cuadro, por lo que prohibir los cuadros B favorece la fluidez de la transmisión en vivo.

Selección de H264 y H265

En los últimos años, H265 también ha ganado cierta popularidad.Para el mismo video, el archivo codificado H265 será mucho más pequeño que el archivo codificado H264 , a veces incluso cerca del 50%.

Entonces, en teoría, bajo la premisa del mismo ancho de banda, el video en línea y la transmisión en vivo de H265 tendrán una calidad de imagen más alta, y bajo la misma calidad de imagen, H265 también puede ahorrar ancho de banda/tráfico.

Pero esto se basa en el costo de los cálculos de codificación y decodificación, es decir, reproducir video H265 consumirá más rendimiento que video H264 .

Esta es la mayor diferencia entre H264 y H265. H265 tiene un algoritmo de compresión más alto que H264. Pero al mismo tiempo, también consume más rendimiento.La elección de H264 y H265 se basa más en la consideración de cuál es más importante, la capacidad y el ancho de banda en comparación con el rendimiento del usuario y del servidor en escenarios reales.

Pero lo que es más importante, la popularidad de H265 no es tan alta como se esperaba y no todos los navegadores son compatibles con H265 .

Entonces, incluso si se selecciona H265 en función de varias consideraciones, si el cliente no lo admite, no funcionará. Por lo tanto, H264 todavía se usa comúnmente en la actualidad.Después de todo, los videos codificados en H264 se pueden reproducir en todas partes, pero H265 no es necesariamente.

Resumir

Este problema presenta el formato de codificación de video más utilizado, H264. Por supuesto, existen formatos de codificación con mayor compresión sin pérdidas que H264, o formatos de codificación más funcionales que H264, pero la popularidad determina que H264 se use con más frecuencia.

Supongo que te gusta

Origin blog.csdn.net/Daniel_Leung/article/details/130925725
Recomendado
Clasificación