O que é um perfil?
Um perfil H.264 define mais ou menos o que “sinos e apitos” o codificador pode utilizar ao comprimir o seu vídeo - e há muitas características H.264 que o codificador pode activar. Quais as que é permitido activar é definido pelo perfil. Os perfis asseguram a compatibilidade entre dispositivos que têm diferentes capacidades de descodificação. Com os perfis, o codificador e o descodificador concordam com um conjunto de características que ambos podem tratar.
O que fazem os diferentes perfis?
Para uma lista detalhada, ver H.264 Perfis na Wikipedia.
Geralmente, o perfil Baseline restringe o codificador apenas a certas características básicas. Os vídeos codificados com perfil de base podem ser facilmente reproduzidos, mesmo em dispositivos com menor potência computacional, tais como smartphones mais antigos. Os telefones Android e iOS, por exemplo, oficialmente só reproduzem vídeo codificado com o perfil de base, mas não Alto ou Principal. Isto mudou um pouco nos últimos anos, onde cada vez mais telefones podem de facto reproduzir vídeo principal ou de alto perfil, mas ainda assim as recomendações oficiais não mencione que .
Principalmente para aplicações de baixo custo, este perfil é mais tipicamente utilizado em videoconferência e aplicações móveis. Corresponde ao subconjunto de características que são comuns entre a Baseline, Main, e High Profiles
Main e High basta adicionar características a isso. Especialmente o perfil elevado é frequentemente utilizado na radiodifusão:
O perfil principal para aplicações de radiodifusão e armazenamento de discos, particularmente para aplicações de televisão de alta definição (por exemplo, este é o perfil adoptado pelo formato de armazenamento de discos Blu-ray e pelo serviço de radiodifusão DVB HDTV).
fatias B só são permitidos, por exemplo, no perfil Main e acima. Podem ser utilizados para poupar na largura de banda, mas são mais difíceis de descodificar, razão pela qual alguns dispositivos podem não os suportar.
O que é que isso tem a ver com qualidade?
O perfil apenas influencia indirectamente a qualidade. Algumas características de perfis superiores podem permitir-lhe obter a mesma qualidade com ficheiros de menor tamanho em comparação com perfis inferiores.
Por exemplo, CABAC a codificação entropia (Main e High) é mais eficiente do que CAVLC (Baseline). É também computacionalmente mais intensiva. Assim, se der ao codificador uma certa taxa de bits para gastar, ele será capaz de criar um vídeo de melhor qualidade com CABAC do que com CAVLC porque consegue uma compressão muito melhor.
Isto também explica porque conseguiu um ficheiro de tamanho mais pequeno com o perfil High - obviamente, de alguma forma estabelece um nível de qualidade constante e o codificador poderia usar técnicas de compressão mais avançadas para criar um ficheiro de vídeo com a mesma qualidade que o perfil Baseline, mas com um tamanho mais pequeno.
Então… qual deles deve usar?
Algumas regras básicas:
- Baseline profile se tiver como alvo dispositivos móveis antigos
- Main ou High profile se tiver como alvo o web streaming, armazenamento a longo prazo, PCs ou Macs, autoria de Blu-ray, etc.