[Processamento de áudio e vídeo] Explicação detalhada do H264/H265, por que o H264 é mais comumente usado?

Olá a todos, sejam bem-vindos ao canal Stop Refactoring.

Nesta edição, apresentamos o formato de codificação de vídeo H264 .

H264 é o formato de codificação mais comumente usado para imagens de vídeo. Quase todos os reprodutores suportam esse formato de codificação e os navegadores não são exceção.

Discutimos o H264 nesta ordem:

1. O papel do formato de codificação 

2. Quadro I, quadro P, quadro B, GOP 

3. Pontos a serem observados em diferentes cenários de uso 

4. Seleção de H264 e H265

O papel do formato de codificação

Conforme apresentado na edição anterior de "Princípios de trabalho da transcodificação de áudio e vídeo", um arquivo de vídeo é, na verdade, dividido em três camadas : encapsulamento, codificação e dados básicos .

Para a função de encapsulamento, consulte a edição anterior de "Formato de encapsulamento".

O papel da codificação é compactar os dados e limitar o tamanho do arquivo final.

Tomemos o vídeo como exemplo. O vídeo é composto de imagens quadro a quadro. O tamanho de um quadro de imagem é determinado pelo formato básico de dados. O formato básico de dados de vídeo é geralmente um modelo de espaço de cores.

Se a resolução for 1920*1080 e o modelo de espaço de cores for YUV420, o tamanho de um quadro de imagem é de cerca de 3 MB.

Se a duração do vídeo for de 1 minuto e 25 quadros por segundo, o tamanho teórico do arquivo de vídeo é de cerca de 4 GB.

Mas o arquivo de vídeo geral não é tão grande. Como o vídeo compactará os dados durante o estágio de codificação , o vídeo de alta definição de alguns minutos geralmente tem centenas de megabytes.

O processo de codificação é determinado pelo formato de codificação . Cada formato de codificação corresponde a um algoritmo de compressão/descompressão diferente, e cada formato de codificação também corresponde a um codificador/decodificador diferente. Se o player não for compatível com um determinado formato de codificação, ele não reproduzirá .de.

A propósito, geralmente apenas os parâmetros básicos que afetam o tamanho do arquivo de vídeo serão usados ​​no estágio de codificação , como taxa de bits, taxa de bits máxima, etc. O estágio de codificação limitará o tamanho do arquivo de acordo com esses parâmetros, mas ao mesmo tempo também pode produzir compactação com perdas, afetando a qualidade da imagem.

Outros parâmetros básicos, como resolução , taxa de quadros, etc., não são processados ​​no estágio de codificação , o que exige que o programa de transcodificação opere nos dados básicos do quadro original.

Para modificações como diminuir a taxa de quadros, o programa de transcodificação precisa recalcular o carimbo de data/hora do quadro de vídeo e descartar alguns dados de quadro redundantes.É claro que estruturas como o FFmpeg fornecem essas interfaces de processamento.

Quadro I, quadro P, quadro B, GOP

H264 é o formato de codificação de vídeo mais usado, e o vídeo aqui se refere a imagens . H264 não lida com dados de áudio.

O princípio de funcionamento da compressão do H264 é relativamente típico e seu algoritmo de compressão adicionou conceitos como compensação de movimento e suplemento de movimento.

Ou seja, para uma seção com alta similaridade, não é necessário registrar todos os dados, mas calcular a imagem atual com base na imagem anterior ou nas imagens anteriores e posteriores, para que os dados de todo o arquivo sejam ser reduzido.

O algoritmo de compressão específico não precisa ser esclarecido, mas é necessário ser claro sobre o conceito especial H264 correspondente, quadro I, quadro P, quadro B, GOP .

Um quadro I é um quadro de imagem que pode ser reproduzido independentemente e a quantidade de dados é a maior.

O quadro P precisa ser calculado com base no quadro I ou quadro P anterior, os dados estão incompletos e a quantidade de dados é menor que a do quadro I e a maior parte do vídeo é um quadro P.

O quadro B precisa ser calculado com base no anterior e no próximo quadro I ou quadro P, os dados são os mais incompletos e a quantidade de dados é a menor.

GOP refere-se a um conjunto completo de quadros de vídeo.Se gop for definido como 25, o codificador fará com que o primeiro quadro de cada 25 quadros seja um quadro I. Se a taxa de quadros também for de 25 quadros, o primeiro quadro por segundo deverá ser um quadro I.

Pontos a ter em atenção em diferentes cenários de utilização

De que adianta conhecer esses conceitos do H264? Em alguns cenários, esses conceitos desempenham um papel fundamental.

Em primeiro lugar, não importa qual seja a cena, você precisa prestar atenção à configuração da taxa de bits e da taxa de bits máxima .

Como a taxa de código é o parâmetro mais intuitivo que afeta a quantidade de dados, ela limitará o tamanho da quantidade de dados final, afinal, o espaço de armazenamento e a largura de banda da rede precisam ser considerados em muitos casos.

Para obter explicações e sugestões específicas de parâmetros relevantes, como taxa de bits, resolução, taxa de quadros, etc., consulte a edição anterior de "Parâmetros de vídeo", que não será expandida aqui.

A seguir vem a cena da reprodução online Geralmente, quadros I, quadros B, quadros P e GOPs não precisam de atenção especial. 

No entanto, se houver problemas, como o salto de vídeo descarregado, não é suave, pode ser que alguns dois quadros I do vídeo estejam muito distantes. Para evitar esse problema, você pode definir o GOP para 4-5 vezes o quadro taxa para garantir Deve haver um quadro I a cada 4-5 segundos.

No cenário de transmissão ao vivo , esses conceitos precisam de atenção especial. O quadro I é um quadro independente e a reprodução do quadro B e do quadro P depende essencialmente do quadro I, portanto, o servidor de streaming precisa definir o quadro I do cache , para que o problema do primeiro desfoque da tela possa ser aliviado para Até certo ponto.

Mas ainda haverá um problema de tela parcialmente desfocada. Também precisamos definir o GOP . O GOP geralmente é definido como 1-2 vezes a taxa de quadros para garantir que deve haver um quadro I a cada 1-2 segundos. Nesse caso , teoricamente, é apenas 1-2 segundos.O problema da tela embaçada só aparecerá quando o fluxo começar a fluir na lacuna.

No entanto, os quadros de 1-2 segundos são em sua maioria semelhantes e, se o buffer de quadros estiver definido, mesmo que haja uma tela parcialmente desfocada, muitas vezes não é sentida.

A transmissão ao vivo geralmente precisa proibir a geração de quadros B. Embora o volume de dados dos quadros B seja o menor, ele precisa que os dados do próximo quadro sejam calculados, portanto, a proibição de quadros B favorece a suavidade da transmissão ao vivo.

Seleção de H264 e H265

Nos últimos anos, o H265 também ganhou popularidade. Para o mesmo vídeo, o arquivo codificado em H265 será muito menor que o arquivo codificado em H264 , às vezes até perto de 50%.

Portanto, em teoria, sob a premissa da mesma largura de banda, o vídeo online e a transmissão ao vivo do H265 terão maior qualidade de imagem e, com a mesma qualidade de imagem, o H265 também pode economizar largura de banda/tráfego.

Mas isso é baseado no custo dos cálculos de codificação e decodificação, ou seja, a reprodução de vídeo H265 consumirá mais desempenho do que o vídeo H264 .

Esta é a maior diferença entre o H264 e o H265. O H265 tem um algoritmo de compressão mais alto que o H264. Mas, ao mesmo tempo, também consome mais desempenho.A escolha de H264 e H265 é mais baseada na consideração do que é mais importante, capacidade e largura de banda em comparação com o desempenho do usuário e do servidor em cenários reais.

Porém, mais importante, a popularidade do H265 não é tão alta quanto o esperado e nem todos os navegadores suportam o H265 .

Portanto, mesmo que o H265 seja selecionado com base em várias considerações, se o cliente não o suportar, ele não funcionará. Portanto, o H264 ainda é comumente usado no momento. Afinal, os vídeos codificados com H264 podem ser reproduzidos em qualquer lugar, mas o H265 não é necessariamente.

Resumir

Este problema apresenta o formato de codificação de vídeo mais comumente usado H264. Claro, existem formatos de codificação com compressão sem perdas mais alta que H264, ou formatos de codificação mais funcionais que H264, mas a popularidade determina que H264 é mais comumente usado.

Acho que você gosta

Origin blog.csdn.net/Daniel_Leung/article/details/130925725
Recomendado
Clasificación