Streaming - Codificação de Vídeo HD - Codec H.264/AVC

Go to content

Main menu

Streaming

Armazenamento, Broadcasting & Streaming

Para a análise do codec H.264/AVC na transmissão em tempo real de vídeo é preciso compreender a importância dum codec escalável. A escalabilidade é a capacidade de dado um stream com várias layers, e se o stream completo for um vídeo em HD, poder ser retirado apenas a primeira layer (por exemplo) e ainda assim se conseguir visualizar o vídeo, claro com uma resolução inferior. Desta forma é possível seleccionar as layers pretendidas conforme o ritmo binário da ligação, a qualidade desejada, o processamento da máquina em questão (mais layers implica mais processamento). E para tudo isto foi apenas necessário uma codificação de um único stream. Caso não houvesse escalabilidade, teriam de haver tantas codificações quantas as qualidades (layers) que se pretendessem enviar e teriam de ser enviadas todas essas qualidades. Este aspecto é particularmente importante em streams em tempo real. Tomando a aplicação Skype como exemplo: numa vídeo chamada é possível adaptar a qualidade da imagem dependendo da qualidade da ligação numa dada altura, isto é possível recorrendo à escalabilidade do stream. Naturalmente esta característica paga-se com mais débito no stream escalável em comparação com o que não é. Esta desvantagem é o que se chama de Scalability Overhead que corresponde à diferença do débito necessário, para uma dada qualidade, no caso em que o stream não é escalável para o stream que é. A Internet beneficia fortemente desta característica visto os seus débitos binários estarem em constante oscilação.
Uma alternativa à escalabilidade é o que se chama de Stream Switch. Consiste em ter um stream para cada qualidade a ser enviada, ou seja, exige tantas codificações quantas as qualidades pretendidas. Isto é exequível quando o stream não é em tempo real, pois caso seja o processamento necessário aumenta consideravelmente.
Para comprimir um ficheiro, seja de vídeo seja de apenas áudio, um codec não basta. É também necessário o que é designado de container. Estes não se encarregam da codificação nem da descodificação, encarregam-se apenas de guardar os bytes gerados pelos codecs duma forma que as aplicações compatíveis com esses containers as saibam interpretar. Para a alta definição os containers mais usados são: Matroska (.mkv), MPEG-4 (.mp4) e QuickTime (.mov).
O codec em estudo é usado em muitas aplicações de streaming pela Internet, a sua escalabilidade é altamente útil num meio tão variável. As seguintes aplicações usam o codec H.264/AVC: Skype, Youtube.
Os perfis do H.264/AVC mais usados para streaming são os seguintes:

  • Baseline Profile (BP) – perfil para baixos ritmos binários e com robustez a erros

  • Extended profile (XP) – especialmente para streaming, tem uma alta taxa de compressão e algumas ferramentas extra para a robustez a erros e servidores stream switch

  • Scalable High Profile – para difusões e streamings, completa a camada base.


Back to content | Back to main menu