Jun 04, 2023
AV1 vs. h265 (HEVC) vs. VP9: Qual é a diferença entre esses padrões de compressão?
Codecs de vídeo diferentes fornecem taxas de compactação e qualidade de vídeo diferentes.
Codecs de vídeo diferentes fornecem taxas de compactação e qualidade de vídeo diferentes. Mas qual você deveria usar?
A transmissão em 4K é a nova norma, mas com informações de mais de 8,2 milhões de pixels sendo transmitidas a cada 16 milissegundos, armazenar e transmitir vídeo 4K na Internet não é uma tarefa fácil.
Um filme de duas horas ocuparia mais de 1,7 Terabytes de armazenamento quando não compactado. Então, como gigantes do streaming como YouTube e Netflix conseguem armazenar e transmitir vídeos que ocupam tanto espaço?
Bem, eles não usam codecs de vídeo para reduzir o tamanho dos filmes, mas o que é um codec de vídeo e qual é o melhor?
Antes de mergulhar fundo nas complexidades dos codecs de vídeo, é vital entender como um vídeo é criado. Simplificando, o vídeo nada mais é do que um conjunto de imagens estáticas que se substituem rapidamente.
Devido a essa alta velocidade de mudança, o cérebro humano pensa que as imagens estão se movendo, criando a ilusão de assistir a um vídeo. Portanto, ao assistir a um vídeo em 4K, você está apenas olhando para um conjunto de imagens com resolução de 2160x3840. Essa alta resolução de imagens permite que um vídeo gravado em 4K proporcione uma ótima experiência de vídeo. Dito isso, essa alta resolução de imagens aumenta o tamanho do vídeo, impossibilitando a transmissão em canais com largura de banda limitada, como a internet.
Para resolver este problema, temos codecs de vídeo. Abreviação de codificador/decodificador ou compressão/descompressão, um codec de vídeo comprime o fluxo de imagens em bits de dados. Essa compactação pode reduzir a qualidade do vídeo ou não afetá-lo com base nos algoritmos de compactação usados.
Como o nome sugere, o bit de compressão em um codec reduz o tamanho de cada imagem. Para fazer o mesmo, o algoritmo de compactação explora as nuances do olho humano, evitando que as pessoas saibam que os vídeos que assistem são compactados.
A descompactação, ao contrário, funciona de maneira oposta e renderiza o vídeo usando as informações compactadas.
Embora os codecs façam um ótimo trabalho quando se trata de compactar informações, fazer o mesmo pode ser desgastante para sua CPU. Devido a isso, é normal ver flutuações no desempenho do sistema ao executar algoritmos de compactação de vídeo em seu sistema.
Para resolver esse problema, CPUs e GPUs vêm com hardware especial que pode executar esses algoritmos de compressão. Permitindo que a CPU execute as tarefas enquanto o hardware dedicado processa os codecs de vídeo, melhorando a eficiência.
Agora que temos uma compreensão básica do que um codec de vídeo faz, podemos ver como um codec funciona.
Conforme explicado anteriormente, os vídeos são compostos de imagens e a subamostragem de croma reduz as informações em cada imagem. Para isso, reduz as informações de cores contidas em cada imagem, mas como essa redução nas informações de cores é detectada pelo olho humano?
Bem, veja bem, os olhos humanos são ótimos para detectar mudanças no brilho, mas o mesmo não pode ser dito sobre as cores. Isso porque o olho humano possui mais bastonetes (células fotorreceptoras responsáveis por detectar mudanças no brilho) quando comparado aos cones (células fotorreceptoras responsáveis por diferenciar as cores). A diferença entre bastonetes e cones impede que os olhos detectem mudanças de cor ao comparar imagens compactadas e não compactadas.
Para executar a subamostragem de croma, o algoritmo de compactação de vídeo converte as informações de pixel em RGB em dados de brilho e cor. Depois disso, o algoritmo reduz a quantidade de cor na imagem com base nos níveis de compactação.
Os vídeos são compostos por vários quadros de imagens e, na maioria dos casos, todos esses quadros contêm as mesmas informações. Por exemplo, imagine um vídeo com uma pessoa falando em um fundo fixo. Nesse caso, todos os quadros do vídeo têm uma composição semelhante. Portanto, todas as imagens não são necessárias para renderizar o vídeo. Tudo o que precisamos é de uma imagem base que contenha todas as informações e dados relacionados à mudança ao passar de um quadro para o outro.