¿Qué es un perfil?
Un perfil H.264 define más o menos qué “campanas y silbatos” puede utilizar el codificador al comprimir el vídeo, y hay muchas características H.264 que el codificador puede activar. El perfil define cuáles puede activar. Los perfiles garantizan la compatibilidad entre dispositivos con diferentes capacidades de descodificación. Con los perfiles, el codificador y el descodificador se ponen de acuerdo en un conjunto de características que ambos pueden manejar.
¿Qué hacen los diferentes perfiles?
Para una lista detallada, véase H.264 Profiles en Wikipedia.
Generalmente, el perfil Baseline restringe el codificador a ciertas características básicas solamente. Los vídeos codificados con el perfil baseline pueden reproducirse fácilmente, incluso en dispositivos con menor potencia de cálculo, como los smartphones más antiguos. Los teléfonos Android e iOS, por ejemplo, sólo reproducen oficialmente los vídeos codificados con el perfil básico, pero no con los perfiles High o Main. Esto ha cambiado un poco en los últimos años, en los que cada vez más teléfonos pueden reproducir vídeo de perfil principal o alto, pero todavía las recomendaciones oficiales no mencionan que .
Principalmente para aplicaciones de bajo coste, este perfil es el más utilizado en videoconferencias y aplicaciones móviles. Corresponde al subconjunto de características que son comunes entre los perfiles Baseline, Main y High
Main y High sólo añaden características a eso. Especialmente el perfil alto se utiliza a menudo en la radiodifusión:
El perfil principal para aplicaciones de radiodifusión y almacenamiento de discos, especialmente para aplicaciones de televisión de alta definición (por ejemplo, es el perfil adoptado por el formato de almacenamiento Blu-ray Disc y el servicio de radiodifusión DVB HDTV). Los
B slices sólo se permiten, por ejemplo, en el perfil Main y superiores. Pueden utilizarse para ahorrar ancho de banda, pero son más difíciles de descodificar, por lo que algunos dispositivos podrían no admitirlos.
¿Qué tiene que ver eso con la calidad?
El perfil sólo influye indirectamente en la calidad. Algunas características de los perfiles más altos pueden permitirle obtener la misma calidad con tamaños de archivo más bajos en comparación con los perfiles más bajos.
Por ejemplo, la codificación de entropía CABAC (Main y High) es más eficiente que CAVLC (Baseline). También es computacionalmente más intensiva. Por lo tanto, si le das al codificador una determinada tasa de bits para gastar, será capaz de crear un vídeo de mejor calidad con CABAC que con CAVLC porque consigue una compresión mucho mejor.
Esto también explica por qué has conseguido un tamaño de archivo menor con el perfil High - obviamente, de alguna manera has establecido un nivel de calidad constante y el codificador ha podido utilizar técnicas de compresión más avanzadas para crear un archivo de vídeo que tiene la misma calidad que el perfil Baseline, pero con un tamaño menor.
Así que… ¿cuál deberías usar?
Algunas reglas básicas:
- Perfil Baseline si te diriges a dispositivos móviles antiguos
- Perfil Main o High si te diriges a la transmisión por Internet, al almacenamiento a largo plazo, a PC o Mac, a la creación de Blu-ray, etc.