Su plataforma de video es ffmpeg y calidad de codificaci贸n de video. Parte 2


A Lenna le encanta verse bien, una modelo despu茅s de todo. Hay leyendas que agregarlo al t铆tulo de un art铆culo relacionado con el procesamiento de datos visuales le da a +5 una posibilidad de ventajas.

Sigo divulgando las caracter铆sticas de los servicios de video. Hoy toma nota sobre las opciones de codificaci贸n y su selecci贸n.

Primera parte

La mayor铆a de los c贸decs ofrecen valores predeterminados bastante equilibrados, lo que le permite obtener un resultado normal sin una larga selecci贸n de par谩metros. Sin embargo, cuando se trata de un gran archivo de material de video, limitaciones en la tasa de bits, consideraciones de compatibilidad con el equipo del cliente y un deseo razonable de mantener la calidad del original, todo se vuelve m谩s interesante.

Desafortunadamente, el bot贸n m谩gico "codificar muy bien" no se proporciona. Como el caniuse anal贸gico para codificar par谩metros. Tiene que entender las caracter铆sticas de los c贸decs.

Introducci贸n: perfiles


Hay tantas configuraciones y par谩metros para H264 que los propios desarrolladores, para no confundirse, decidieron hacer una lista de perfiles: configuraciones "buenas" para diferentes prop贸sitos. Los perfiles est谩ndar identificaron mucho; Adem谩s, al configurar sus propios par谩metros de codificaci贸n, usted, de hecho, crea su propio perfil, confundiendo completamente a todos. Entonces, desafortunadamente, result贸 como siempre.



Inicialmente, se crearon perfiles para determinar si el video final se reproducir谩 en el tipo de dispositivo deseado, pero ahora no existe una separaci贸n inequ铆voca de los jugadores por tipo de dispositivo y perfil.

En la pr谩ctica, destacar铆a, por el nivel de intensidad de los recursos de decodificaci贸n, tres grupos de par谩metros:

  • con CABAC deshabilitado; condicionalmente perfiles principales y de l铆nea de base. Todav铆a se pueden usar para la transmisi贸n sensible a retrasos;
  • con CABAC habilitado; Perfil relativamente alto. Por todo La mayor铆a de los equipos modernos (y no tan) pueden jugar tal cosa. El aumento de la eficiencia en comparaci贸n con el principal - 20% +;
  • con soporte para muestreo de diez bits y otros par谩metros avanzados. Condicionalmente Hi10P. El problema con tales perfiles es la falta casi completa de soporte de hardware y los mayores requisitos para decodificar equipos; Los tel茅fonos, incluso los de gama alta, no pueden hacer frente a dichos archivos. Se puede utilizar para una biblioteca personal si tiene confianza en su equipo. Otro aumento del 10-20% en la eficiencia.

El concepto de perfiles para otros c贸decs no est谩 tan desarrollado como en H264. Para ellos, podemos suponer que si el c贸dec es compatible, entonces es totalmente compatible, y la restricci贸n durante la reproducci贸n solo puede ser una tasa de bits excesivamente alta u otro par谩metro que est茅 claramente exagerado. Sin embargo, con la proliferaci贸n de decodificadores de hardware VP8 y VP9, 鈥嬧媗a situaci贸n puede cambiar.

Ahora a los par谩metros individuales.

Espacio de color


La elecci贸n del espacio de color pr谩cticamente no tiene efecto en la eficiencia de la codificaci贸n; este par谩metro podr铆a dejarse a la elecci贸n del c贸dec (es importante cuando se procesan datos sin codificar) si no fuera por una caracter铆stica: muchos reproductores procesan la informaci贸n del espacio de color de manera muy espec铆fica, de modo que para la mayor铆a de los usuarios el video puede mostrarse con distorsiones de color (en mayormente verde).

Para preservar los colores para la mayor铆a de los jugadores, se deben codificar diferentes videos H264 en diferentes espacios:

  • para SD (ancho <1280) - BT.601
  • para HD (ancho> = 1280) - BT.709

Hay un excelente estudio de 2012. sobre este tema Desafortunadamente, la situaci贸n con tales errores est谩 cambiando muy lentamente, y aunque algunos de los resultados de las pruebas de ese art铆culo ya no son relevantes, tales caracter铆sticas a煤n deben tenerse en cuenta. Existe la posibilidad de que haya visto el video con los colores incorrectos todo este tiempo, y resulta que no fue una decisi贸n del director.
El problema es conocido para los decodificadores H264; otros formatos pueden no tener este problema.

Velocidad de fotogramas


Si su fuente no son transmisiones de juegos o videos de acci贸n, entonces tiene sentido limitar la velocidad de fotogramas superior a 25-30 fotogramas: cuantos menos haya, m谩s datos quedan para describir un solo fotograma. Es mejor disminuir este valor por un factor, para que el salto de fotograma sea uniforme, de lo contrario, el video puede experimentar una ralentizaci贸n.

Existe una velocidad de fotogramas variable. Trabajar con VFR es inconveniente por dos razones: en primer lugar, proporciona picos de velocidad de bits en 谩reas de alta frecuencia que vac铆an instant谩neamente el b煤fer; segundo, VFR complica la preparaci贸n del plan de conversi贸n, forzando el uso de par谩metros Q (escrib铆 sobre ellos en el primer art铆culo).

Tama帽o de Gop


Los grupos de im谩genes son bloques dentro de los cuales algunas im谩genes pueden hacer referencia a los datos de otras. Un aumento en el tama帽o de GOP mejora el rendimiento del c贸dec a cambio de mayores requisitos de memoria. Los valores grandes son especialmente efectivos para archivos con el mismo tipo de movimientos c铆clicos (ya sabes a lo que me refiero). Adem谩s, con valores grandes, puede haber problemas al rebobinar el video, porque Ser谩 necesario restaurar m谩s datos.
El nombre del par谩metro, as铆 como las unidades de medida, pueden diferir de c贸dec a c贸dec; consulte la documentaci贸n.

Rebanadas


Para acelerar la decodificaci贸n (y la codificaci贸n), el video se puede dividir en partes de menor resoluci贸n. La idea es que procesar cuatro videos con una resoluci贸n de, por ejemplo, 1280x720 es m谩s f谩cil que uno, pero 2560x1440. Tiene sentido en resoluciones superiores a FHD. Cuantas m谩s partes, menor es la eficiencia del c贸dec. Adem谩s, el uso de esta separaci贸n simplifica el procesamiento de subprocesos m煤ltiples.

P铆xeles anam贸rficos


Los p铆xeles rectangulares aparecen cuando la relaci贸n de aspecto y la relaci贸n entre el ancho y la altura de los p铆xeles difieren: DVD de pantalla ancha, donde el video 16: 9 tiene una resoluci贸n de 704 脳 480 (3: 2 con IVA an谩logo y corregido por el viento). Reproducir tales videos no causar谩 problemas, sin embargo, al codificar, debe tener en cuenta tanto la resoluci贸n como la relaci贸n de aspecto, de lo contrario es f谩cil convertir anam贸rficos a p铆xeles cuadrados est谩ndar con p茅rdida de eficiencia (隆hasta ~ 35%!), O incluso obtener algo aplanado horizontalmente.

Control de bitrate


Hay tres modos principales de c贸decs asociados con la tasa de bits:

  • bitrate constante, CBR, cuando la calidad cae en proporci贸n a la complejidad de la escena;
  • calidad constante, const Q VBR, cuando la tasa de bits aumenta en proporci贸n a la complejidad de la escena;
  • Velocidad de bits y calidad limitadas: VBR cl谩sico.

Vale la pena se帽alar que la mayor铆a de los codificadores (incluido ffmpeg) no configuran los c贸decs en modo CBR cuando configuran una tasa de bits: los archivos son creados por VBR, con restricciones que no siempre se definen en la documentaci贸n (el modo CBR est谩 habilitado, generalmente configurando la misma tasa m铆nima y m谩xima).

Para la reproducci贸n en l铆nea (y para la transmisi贸n), VBR restringido es muy adecuado. Ofrece una mejor calidad que CBR y le permite ajustar la transmisi贸n al canal de Internet.

La elecci贸n de maxrate / minrate depende del canal del cliente, una extensi贸n de m谩s del 20% es mejor no hacerlo.

Codificaci贸n multipaso


Es dif铆cil predecir la distribuci贸n de datos en un archivo en modo VBR, los c贸decs tienen que adivinar lo que sucede no siempre. En el modo de pasadas m煤ltiples, el c贸dec primero asigna la velocidad de bits requerida y luego codifica. De esta manera, se mejora la calidad del video en escenas complejas y din谩micas ( ejemplo . Preste atenci贸n a la cantidad de elementos "muar茅" y la cantidad de transiciones entre escenas). Como en el primer paso, el c贸dec solo analiza el archivo fuente, contrario a la creencia popular, el procesamiento en este modo requiere no m谩s del doble de tiempo, sino solo 10-15%.

-tune


Para varios tipos de material de origen, se han preparado varios ajustes preestablecidos que ajustan algunos par谩metros b谩sicos de codificaci贸n, como los niveles de filtro de desbloqueo, los par谩metros de optimizaci贸n psico-visual. El uso de estos preajustes mejora la percepci贸n del video y funciona bien si conoce el tipo de fuente de antemano, o si tiene un conjunto estructurado de videos (en caso de procesamiento en masa).

Presets:

  • pel铆cula: para pel铆culas y todo con una estructura de marco compleja. Esta es definitivamente una pel铆cula;
  • animaci贸n: para videos con grandes 谩reas s贸lidas. Es decir, es mejor codificar con el preajuste de animaci贸n, y esto es pel铆cula, a pesar del hecho de que la animaci贸n;
  • imagen fija: para videos donde casi no hay movimiento; buena optimizaci贸n para esas canciones en formato mp4, donde la portada del 谩lbum es todo el fondo del video (alguien, diles que incluso flac no puede pesar 300 MB por 10 minutos);
  • grano: para codificar fuentes "ruidosas", como c谩maras de vigilancia;
  • psnr / ssim: para evaluar la efectividad de otros par谩metros del c贸dec;
  • fastdecode: perfil principal forzado para dispositivos d茅biles;
  • latencia cero: como su nombre lo indica, para transmisi贸n de baja latencia.

Formato de p铆xeles


El formato y el bitness afectan fuertemente c贸mo se comprimen y descomprimen los archivos, en qu茅 forma se pierde la calidad. Los principales par谩metros que describe el formato de p铆xeles son:

  • una forma de descomponer el color en componentes: YUV, RGB;
  • par谩metros de submuestreo de color (隆oh, c贸mo! el submuestreo de croma es m谩s familiar) cuando algunos componentes de color se guardan con una resoluci贸n m谩s baja;
  • Profundidad de componentes de color en bits.

Una elecci贸n consciente del formato de p铆xel requiere un an谩lisis, una recopilaci贸n de material por separado y depende en gran medida del tipo de material de origen.

Brevemente:

  • no todos los c贸decs (y, lo m谩s importante, los decodificadores) admiten formatos posibles;
  • trabajar con algunos formatos requiere m谩s recursos: Hi10P difiere de solo un perfil alto en esto;
  • trabajar con formatos submuestreados puede dar un aumento notable en la eficiencia de compresi贸n, pero es m谩s dif铆cil controlar la p茅rdida de calidad.

Entrelazado


El entrelazado se invent贸 para duplicar la velocidad de fotogramas percibida a un costo m铆nimo: la velocidad de bits y la resoluci贸n son las mismas, pero la frecuencia es mayor. Sin embargo, con un movimiento r谩pido, los dientes se vuelven visibles: las l铆neas del marco anterior. Puede deshacerse del efecto sin soltar cuadros y sin reducir la resoluci贸n vertical con filtros, pero reducir谩n la claridad. Si el video se reproducir谩 en el navegador, es mejor filtrar el entrelazado durante la codificaci贸n, ya que El filtrado en tiempo real en el cliente no dar谩 los mejores resultados visuales.

Poniendo todo junto


Ejemplo para x264:

ffmpeg -i [] -c:v libx264 -b:v [bitrate] #  -maxrate [bitrate] #   -r [framerate] -g [size] #GOP   -aspect [,  16:9] #   -profile high #    CABAC -color_primaries bt709 #   ,     -color_trc bt709 -colorspace bt709 -slices 4 #     -threads 4 -tune [value] -map_metadata:g -1 # ,      -map_metadata:s:v -1 -map_metadata:s:a -1 -map_chapters -1 -pass [1|2] #   -passlogfile [file] #    #-map ... -a:c ... -ac ... -a:b ..., ,  -   [] 

Por supuesto, en un art铆culo no fue posible cubrir todo, pero estoy seguro de que este material ser谩 suficiente para mejorar la calidad de muchos videos.

Lea la documentaci贸n y experimente.

Materiales:

ffmpeg.org/ffmpeg-all.html
en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles
en.wikipedia.org/wiki/Chroma_subsampling
en.wikipedia.org/wiki/Color_space
en.wikipedia.org/wiki/YUV

Adem谩s del ejemplo del 煤ltimo art铆culo, aprend铆 sobre otra instalaci贸n de mi c贸digo: haga clic . Trat茅 de tomar ejemplos en el art铆culo de estos sitios, pero a pesar de esto:
* No tengo una relaci贸n directa con los autores de los sitios mencionados y no puedo compartir sus puntos de vista y opiniones. No puedo comentar sobre las decisiones sobre qui茅n y c贸mo se otorga el acceso al c贸digo.

Listo para responder preguntas.

Source: https://habr.com/ru/post/437936/


All Articles