Que codec de vídeo coloca a CPU / GPU sob a menor carga possível durante a decodificação?

4

Estou interessado em transcodificar um vídeo que possuo para uso como protetor de tela; o tamanho não é um problema, mas quero enfatizar o processador e a placa de vídeo o mínimo possível no que diz respeito à decodificação de vídeo.

Qual é / são minha melhor opção?

O sistema em questão roda o Windows em um dual core 2.4GHz i7 com 10GB de RAM e uma opção de Intel HD Graphics 4000 e NVIDIA GeForce 620M, embora eu estaria interessado em uma resposta genérica, já que tenho outro sistema operacional e hardware escolhas também. Eu tenho uma variedade de computadores antigos para escolher.

    
por oKtosiTe 08.01.2013 / 11:23

2 respostas

5

O principal componente da complexidade é o próprio padrão de codecs. Como Stefan Seidel já mencionou, o MPEG-1 é provavelmente o mais fácil de codificar e decodificar. O MPEG-2 também deve ser relativamente fácil de manusear. Mas o seu vídeo será enorme se você quiser uma qualidade decente.

O MPEG-4 e o H.264 adicionam um pouco de complexidade aqui. Um dos recursos mais importantes (e amplamente usados) aqui é B quadros . Aqui, o quadro do vídeo pode depender de vários quadros que foram mostrados antes ou podem ser exibidos posteriormente. Isso significa: Mais computação necessária, mais memória necessária, mais acesso ao disco.

Então, se você estiver codificando seu vídeo, desative as imagens B. No H.264, isso pode ser alcançado aderindo ao Perfil da linha de base (por exemplo, no FFmpeg com -profile:v baseline ). O perfil de linha de base foi incluído para oferecer suporte a dispositivos de codificação e reprodução mais rápidos com baixa capacidade de processamento (como telefones celulares).

Em qualquer caso, o resultado depende de como o sistema operacional delega as tarefas de decodificação. Se estiver apenas usando a CPU, atenha-se aos codecs "simples". Se estiver usando a GPU, você deve usar o H.264.

Certos jogadores como o VLC podem usar a GPU para decodificar vídeo, mas isso não é garantido e depende muito do seu sistema operacional e da placa gráfica. Eu recomendo simplesmente fazer alguns testes com codecs diferentes. O fato de você estar usando um protetor de tela e não um player dedicado pode muito bem mudar seus resultados também, então não confie em testes com, por exemplo. VLC.

    
por 08.01.2013 / 12:05
2

Do ponto de vista da carga da CPU, e sem fazer muita pesquisa sobre isso, eu diria que o MPEG1 é provavelmente uma boa escolha. Se o seu hardware é, no entanto, capaz de decodificar por hardware MPEG2, MPEG4, h264 ou codecs similares, é muito melhor usar isso, porque os chips gráficos são altamente otimizados para reproduzi-los e usar muito pouca energia, e a CPU pode permanecer ocioso durante esta tarefa.

    
por 08.01.2013 / 11:47