Explicação da sintonia x264

40

Executando este comando:

ffmpeg -i xr.mp4 -tune ya zu.mp4

revela os possíveis valores de ajuste para x264 e, por sua vez, FFmpeg:

[libx264 @ 0000000002167100] Possíveis melodias: animação de filme granular imagem fixa psnr ssim
                                             zerolatência do fastdecode

No entanto, não consegui encontrar uma referência explicando o que esses valores realmente fazem.

Steven Penny
fonte

Respostas:

62

Isto é o que os modos fazem:

  • film - destinado a conteúdo de filmes com alta taxa de bits / alta qualidade. Desbloqueio mais baixo é usado aqui.
  • animation- destinado a desenhos animados etc., onde o desbloqueio é aumentado para compensar áreas maiores e planas. Mais quadros de referência são usados.
  • grain - isso deve ser usado para material que já está granulado. Aqui, o grão não será filtrado tanto.
  • stillimage - como o nome diz, ele otimiza a codificação de imagens estáticas abaixando o filtro de desbloqueio.
  • psnre ssim- esses são modos de depuração para otimizar somente os bons valores PSNR e SSIM. Porém, melhores métricas não significam necessariamente melhor qualidade.
  • fastdecode - desativa o CABAC e o filtro de desbloqueio em loop para permitir uma decodificação mais rápida em dispositivos com menor poder computacional.
  • zerolatency - otimização para codificação rápida e streaming de baixa latência

Você pode ver as opções detalhadas aplicadas a cada música com x264 --fullhelp:

--tune <string>         Tune the settings for a particular type of source
                          or situation
                              Overridden by user settings.
                              Multiple tunings are separated by commas.
                              Only one psy tuning can be used at a time.
                              - film (psy tuning):
                                --deblock -1:-1 --psy-rd <unset>:0.15
                              - animation (psy tuning):
                                --bframes {+2} --deblock 1:1
                                --psy-rd 0.4:<unset> --aq-strength 0.6
                                --ref {Double if >1 else 1}
                              - grain (psy tuning):
                                --aq-strength 0.5 --no-dct-decimate
                                --deadzone-inter 6 --deadzone-intra 6
                                --deblock -2:-2 --ipratio 1.1 
                                --pbratio 1.1 --psy-rd <unset>:0.25
                                --qcomp 0.8
                              - stillimage (psy tuning):
                                --aq-strength 1.2 --deblock -3:-3
                                --psy-rd 2.0:0.7
                              - psnr (psy tuning):
                                --aq-mode 0 --no-psy
                              - ssim (psy tuning):
                                --aq-mode 2 --no-psy
                              - fastdecode:
                                --no-cabac --no-deblock --no-weightb
                                --weightp 0
                              - zerolatency:
                                --bframes 0 --force-cfr --no-mbtree
                                --sync-lookahead 0 --sliced-threads
                                --rc-lookahead 0
llogan
fonte
1
Fiquei com a impressão de que o filme --tune é para material granulado, mas pelo que você está dizendo, é sinônimo de contribuição de alta qualidade; Basicamente, se minhas fontes são sempre de ótima qualidade, sempre devo usar essa música. E então --tune grain deve ser usado para coisas como material de filme muito antigo. Isso está correto?
Florin Andrei
6
@Florin Ambos são para fontes de alta qualidade, mas --tune filmfiltram parte do grão e --tune grainpreservam mais. AIUI o último só deve ser usado se a granulação for uma parte importante do visual que ainda pode ser percebida nas configurações de destino.
Tobu
6
--tune filmé para conteúdo de ação ao vivo: qualquer coisa gravada em uma câmera, em oposição a animação cel ou texto / gráficos gerados por computador. É até adequado para animação 3D de certa forma realista, portanto, não deixe o "filme" se separar. Ele funciona para fontes granuladas e não granuladas e equilibra a retenção de grãos com a qualidade geral por taxa de bits, enquanto --tune graintentará preservar os grãos a qualquer custo; útil se a manutenção do grão for obrigatória por algum motivo. --tune filmque não só ajudam em alta taxa de bits (na verdade, afinações tendem a ter mais de um efeito sobre as taxas de bits mais baixos em geral).
thomasrutter
7
Nota: "imagem estática" é para pessoas que escrevem ferramentas que usam x264 para codificar um único quadro estático, como uma alternativa ao JPEG ou JPEG2000. Ele poderia , contudo, ainda ser útil para pessoas fazendo um vídeo que é essencialmente uma apresentação de slides de imagens fixas, onde uma imagem estática é mostrado inalterada durante muitos quadros antes de mudar para a próxima imagem, contanto que ele é literalmente uma apresentação de slides estáticos sem transições. O objetivo da "imagem estática" é que ela aumenta certas otimizações psy que melhorariam quadros únicos à custa de prejudicar o movimento.
thomasrutter