2 pontos por GN⁺ 2024-06-15 | 1 comentários | Compartilhar no WhatsApp

H.264 é mágico

O que é H.264?

  • H.264 é um padrão de codec de compressão de vídeo.
  • É usado em praticamente todo lugar: vídeo na internet, Blu-ray, celulares, câmeras de segurança, drones etc.
  • É resultado de mais de 30 anos de pesquisa, com o objetivo de reduzir a largura de banda necessária para transmitir vídeo com movimento completo.

Por que a compressão é necessária?

  • Arquivos de vídeo sem compressão contêm uma quantidade enorme de dados.
  • Por exemplo, um vídeo 1080p @ 60Hz gera cerca de 370MB de dados por segundo.
  • Um disco Blu-ray de 50GB só consegue armazenar cerca de 2 minutos de vídeo.
  • Por isso, a compressão é necessária.

Por que a compressão H.264?

  • H.264 é muito eficiente.
  • Por exemplo, uma captura de tela em PNG da página inicial da Apple tem 1015KB, enquanto um vídeo H.264 de 5 segundos da mesma tela tem 175KB.
  • O vídeo H.264 é 1500 vezes mais eficiente que o PNG.

Principais técnicas do H.264

Redução de peso (Lossy Compression)

  • H.264 usa compressão com perdas, descartando os bits menos importantes e preservando apenas os importantes.
  • PNG usa compressão sem perdas, mantendo todos os bits.

Entropia da informação

  • Entropia da informação significa o número mínimo de bits necessários para representar dados.
  • É uma forma de comprimir dados reduzindo a redundância.

Domínio da frequência (Frequency Domain)

  • Os dados são convertidos para o domínio da frequência para remover componentes de alta frequência (detalhes).
  • Isso reduz os detalhes da imagem, mas economiza espaço.

Subamostragem de crominância (Chroma Subsampling)

  • O olho humano detecta melhor mudanças de brilho do que de cor.
  • Usa-se o modelo de cor YCbCr para reduzir a informação de cor e manter a informação de luminância.
  • Com isso, é possível reduzir a largura de banda pela metade.

Compensação de movimento (Motion Compensation)

  • A maior parte de um vídeo é estática, e apenas algumas partes se movem.
  • O H.264 armazena a imagem estática e salva separadamente apenas as partes em movimento.
  • Isso economiza espaço.

Codificador de entropia (Entropy Coder)

  • Remove a informação redundante que resta após a compressão com perdas.
  • Com um codificador sem perdas comum, é possível recuperar todos os dados.

Opinião do GN⁺

  • Eficiência do H.264: o H.264 é extremamente eficiente na compressão de vídeo e pode economizar muita largura de banda e espaço de armazenamento.
  • Complexidade da tecnologia: os diversos elementos técnicos do H.264 podem ser difíceis de entender, mas compreender os princípios básicos ajuda bastante.
  • Comparação com outros codecs: codecs mais novos, como o H.265, oferecem eficiência de compressão maior que o H.264. Mesmo assim, o H.264 continua sendo amplamente usado.
  • Aplicação prática: o uso de H.264 em streaming, armazenamento e transmissão de vídeo é muito comum, trazendo grande economia de custos.
  • Perspectivas futuras: a tecnologia de compressão de vídeo continua evoluindo, e há grande chance de surgirem codecs ainda mais eficientes. Entender os princípios do H.264 ajuda a aprender novas tecnologias.

1 comentários

 
GN⁺ 2024-06-15
Comentários do Hacker News
  • Vantagens do AV1: o AV1 oferece um desempenho quase mágico, além de um licenciamento melhor.
  • Caso de uso da Meta: a Meta está introduzindo gradualmente streams em VP9 e AV1 para streaming de vídeo.
  • Microsoft Teams: a Microsoft começou a usar AV1 no Teams, oferecendo ferramentas de codificação de vídeo especialmente úteis para compartilhamento de tela.
  • Vídeos do YouTube: hoje em dia, a maioria dos vídeos que você vê no YouTube é codificada em VP9 ou AV1. Ocasionalmente, ainda há vídeos em H.264.
  • Futuro do H.264: o H.264 ainda deve continuar em uso por muito tempo, mas é provável que o AV1 se torne o novo padrão para vídeo na internet.
  • Expiração das patentes do H.264: muitas patentes do H.264 devem expirar em breve. A primeira versão foi lançada em 2003, e patentes normalmente valem por 20 anos.
  • Pergunta sobre H.265: o H.265 oferece maior eficiência, mas ainda continua sendo comparado ao H.264.
  • Experiência inicial com H.264: quando o H.264 apareceu pela primeira vez, tentaram reproduzir arquivos com mplayer, mas as versões iniciais não tinham suporte. Depois, o desempenho melhorou bastante.
  • Exemplo de compressão de dados: o conceito de compressão de dados é explicado por meio do exemplo de lançar uma moeda.
  • Essência dos codecs: o núcleo da compressão com perdas é a combinação de transformada discreta do cosseno, quantização, varredura em zigue-zague e codificação por entropia.
  • Eficiência do VVC: o VVC é 20–30% mais eficiente que o AV1 e já está em uso no MXPlayer, da Índia.
  • História sobre compressão de vídeo: é compartilhada uma experiência de entrevista, em 1999, com uma empresa que desenvolvia um novo algoritmo de compressão de vídeo. A empresa acabou fracassando, mas a abordagem deles era interessante.
  • Termo entropia da informação: o uso do termo "entropia da informação" parece um pouco estranho.