Terei algum benefício visual se usar valores de CRF (fator de taxa constante) abaixo de 17/18 em x264 (FFmpeg)? Haverá alguma diferença além do tamanho?
CRF 17/18 são visualmente sem perdas.
CRF 0 significa que cada pixel do quadro será determinado por seus próprios dados. CRF 17/18 significa que cada pixel do quadro será determinado por seus próprios dados ou determinado a partir do quadro anterior, se forem idênticos.
Então, visualmente, ambos serão iguais. Então, para que serve a codificação CRF (0-16) de valor mais baixo?
Eu testei a maioria dos valores de CRF utilizáveis (incluindo CRF 0). Eu codifiquei um filme Blu-Ray 1080P usando "CRF 0". A saída ficou 2,5 vezes maior (110 GB) do que a fonte Blu-Ray.
Pelo que aprendi, não vejo motivo para usar valores de CRF abaixo de CRF17/18. E não consigo encontrar um motivo em nenhum lugar que justifique o uso de valores CRF mais baixos. Então, para que servem os valores mais baixos de CRF?
Haverá mais perda de geração em CRF 17/18 e menos perda de geração em codificações de valor CRF mais baixo?
A resposta curta é: não, provavelmente você não obterá benefícios visuais ou, pelo menos, nenhum que a maioria das pessoas perceba.
Para simplificar, digamos que usar um CRF de 17 é igual a usar um QP constante de 17. Quanto menor o QP, maior a taxa de bits e vice-versa. QP 0 significa nenhuma perda de quantização; QP 51 é o máximo possível (para H.264 de 8 bits). Essa técnica de redução de informações por meio de quantização existe há décadas e é a base da maioria dos algoritmos de compressão de vídeo com perdas. A questão é: onde está o ponto subjetivo em que os benefícios da compressão superam a perda de qualidade?
Testes subjetivos, nos quais os usuários visualizam um clipe compactado após o outro e avaliam sua qualidade, sugerem que, para vídeo UHD compactado com
libx264
, as pontuações médias de opinião saturam em torno de ~30–40 Mbit/s (com codificação de 2 passagens, predefinição média). Isso significa que os sujeitos humanos não podem dizer a diferença (ou não darão uma classificação mais alta) para clipes codificados em taxas de bits mais altas. Com um CRF menor que 17, você normalmente atingirá 50 Mbit/s ou mais, dependendo do conteúdo. Assim, geralmente é um desperdício de bits usar um CRF mais baixo, e os humanos não perceberão isso.*Portanto, há um limite de percepção após o qual o uso de um QP mais baixo não fornecerá melhor qualidade - apenas significará que você desperdiçará mais bits do que o necessário. Esse limite depende das características espaciais do conteúdo: algumas coisas são mais fáceis de compactar do que outras. Definitivamente, não existe um limite rígido, mas a maioria das recomendações gira em torno de QP/CRF 17–18 para H.264.
É importante esclarecer que você tem a opção de especificar esses parâmetros específicos de QP/CRF, pois são tecnicamente possíveis, não porque haja uma utilidade intrínseca para eles. Assim como você pode dirigir um carro com alta RPM e desperdiçar gasolina fazendo isso, você pode codificar vídeo em uma taxa de bits excessivamente alta e isso fará o trabalho.
Quais seriam as possíveis razões para escolher um valor de QP/CRF maior que o limiar perceptivo?
Você pretende descobrir o limite perceptivo em relação ao QP para um determinado conteúdo. ( Exemplo aqui .)
Você deseja arquivar o vídeo com a melhor qualidade possível e não se importa com o tamanho do arquivo, mas também não deseja ter arquivos extremamente grandes (isto é, muito mais do que o tamanho do vídeo original).
Você sabe que seu vídeo sofrerá compressão com perdas novamente em algum estágio, caso em que ajuda a preservar o máximo de detalhes possível no primeiro estágio para não incorrer em mais perda de geração .
Já que você perguntou sobre o último ponto: quanta perda de geração haverá depende da quantidade de detalhes espaciais no vídeo original, bem como da quantidade de quantização aplicada em qualquer estágio de codificação futuro. Portanto, quanto menos você jogar fora na primeira etapa, maiores serão as chances de preservar a qualidade nas próximas etapas.
Então, para que servem os valores mais baixos de QP/CRF? Não muito, pelo menos para um usuário médio.
* Isso, é claro, depende da metodologia do teste . Existem paradigmas de teste que são mais críticos do que o que descrevi. Por exemplo, se você mostrar comparações explícitas entre um clipe não compactado e a versão compactada, os usuários poderão detectar diferenças mais refinadas. O mesmo vale para testes baseados em JND .
Vale a pena, se você não quiser perder tantos detalhes. Se você não se importa com isso, então por que se preocupar. Depende da fonte que você está usando. Por exemplo, se houver um programa que você está codificando que exija altas taxas de bits para cenas de ação, você terá que fornecer o crf para compensar isso. Em geral, se você codificar alguma coisa e quiser uma perda mínima de detalhes (supondo que você não se importe com o tamanho), crf-14 ou crf-15 é decente.
Sim, apenas CRF 12 e inferior é "transparente". Se você converter de fontes sem perdas ou converter (UHD Blu-Ray para HD Blu-Ray), use isso. O tamanho será comparável a um remux Blu-Ray real. Se você usar qualquer CRF acima de 12, obviamente se preocupa com o espaço de armazenamento e deve aceitar a perda de detalhes.