Por que a codificação do VP8 / 9 é tão lenta em comparação com o H.264?

8

Recentemente eu quis experimentar os codecs Webm VP8 e VP9, mas quando executei ffmpeg para codificar um arquivo MP4 H.264 em um dos outros dois codecs, percebi que a codificação é (por quase uma ordem de magnitude) mais lento.

Um vídeo 1080p30 de H.264 para VP9 a 3 MBit / s está sendo codificado em torno de 6-7 fps enquanto o mesmo vídeo codifica em torno de 40 fps para H.264. Eu usei o codec libvpx-vp9 em ffmpeg para o formato VP9. Estou obtendo os mesmos resultados para o VP8 e o Theora também.

Alguém pode me explicar por que o VP9 é muito mais lento? Eu tentei uma máquina diferente que me deu resullts semelhantes usando o Handbrake.

    
por comfreak 22.05.2017 / 22:47

2 respostas

9

libvpx-vp9 é um codificador muito mais lento que libx264 , mas as configurações padrão de threads no ffmpeg (0 = auto) não são efetivas para libvpx. A configuração manual dá uma lombada. por exemplo,

ffmpeg -i in.mp4 -c:v libvpx-vp9 -threads 4 out.mp4

Em uma máquina de quatro núcleos, ao codificar um fluxo H.264 de 1080 a 30p, recebo um aumento de 3.8 fps para 10 fps .

    
por 23.05.2017 / 08:42
3

O VP9 é um codec mais complexo, oferecendo melhor compactação. A taxa de compactação / desempenho de vídeo tende a ser exponencial. Você deve esperar que o substituto do VP9 (AV1) seja ainda mais lento.

    
por 23.05.2017 / 02:42