Trabalho na pesquisa de qualidade de vídeo e é difícil dar uma resposta simples para sua pergunta. O que você deseja é um programa que ofereça uma Pontuação Média de Opinião (MOS) de um vídeo, ou seja, um número entre 1 e 5, ou entre 0 e 100, que corresponda à qualidade percebida pelo ser humano.
Por que você não pode simplesmente comparar taxa de bits / resolução / etc.
Apenas comparar a resolução de vídeo não diz nada sobre a qualidade. De fato, pode ser completamente enganador. Um rasgo de filme de 1080p com tamanho de 700 MB pode parecer pior que um rasgo de 720p com 700 MB, porque, no primeiro, a taxa de bits é muito baixa, o que introduz todos os tipos de artefatos de compactação.
O mesmo vale para comparar a taxa de bits em tamanhos de quadro semelhantes, pois diferentes codificadores podem realmente oferecer melhor qualidade com menos taxa de bits ou vice-versa. Por exemplo, um rasgo de 720p de 700 MB produzido com o XviD parecerá pior do que um rasgo de 700 MB produzido com o x264, porque o último é muito mais eficiente.
Você também teria que definir como uma "pontuação integral" final (o MOS) é composta pelos fatores de qualidade individuais. Isso depende muito de várias coisas, incluindo, entre outras:
- o tipo de vídeo que você está comparando (desenhos animados, filmes, notícias etc.)
- seu comprimento
- o público deles
- seu tamanho de quadro original
- sua "qualidade" original antes de serem codificadas
Nós nem estamos falando sobre como os humanos perceberiam os vídeos. Vamos supor que você tenha um amigo que esteja assistindo filmes porque ele ou ela desfruta de detalhes nítidos e alta resolução de movimento. Eles seriam muito mais críticos ao ver um vídeo de baixa qualidade do que um amigo que está apenas assistindo a filmes por seu conteúdo . Eles provavelmente não se importariam tanto com a qualidade, desde que o filme seja engraçado ou divertido.
Existem diferentes tipos de métricas de qualidade de vídeo!
Deixe-me dar uma lista do que eu acho que é mais comumente usado na avaliação básica da qualidade do vídeo hoje. Existem várias métricas de qualidade de vídeo, que podem ser classificadas de acordo com o tipo de informação usada para determinar a qualidade. Em princípio e de maneira muito simples, você distingue entre o seguinte:
Métricas sem referência - elas têm apenas um vídeo como entrada e produzem um índice de qualidade. No seu caso, você está procurando uma métrica sem referência , porque geralmente nem tem o vídeo original. Essa métrica captura um vídeo e gera um índice de qualidade. Aqui estão alguns exemplos de problemas que uma métrica de NR detectará (por exemplo, desfocagem).
Métricas de referência completa - Eles têm duas entradas, uma sendo a entrada original e a outra codificada. Por exemplo, você pode gravar um filme em DVD, criar dois rasgos e usar uma métrica de referência completa para estimar a perda de qualidade entre o filme em DVD original (ou seja, o vídeo MPEG-2 no disco) e os rasgos. Isso levará muito tempo para calcular, mas é mais preciso.
As métricas acima examinam a qualidade da codificação de vídeo, mas também existem métricas que incorporam problemas como tempos iniciais de carregamento e eventos de paralisação ao transmitir vídeo (por exemplo, ITU-T P.1203 ).
Que software posso usar?
Aqui está uma lista de ferramentas prontas para uso que você pode usar para testar algumas métricas (algumas são apenas para Windows):
Agora, quais métricas existem?
PSNR, PSNR-HVS e PSNR-HVS-M
Para iniciantes, o PSNR (Pico entre sinal e ruído) é um método muito simples de usar, mas um tanto ruim para avaliar a qualidade do vídeo. Porém, funciona relativamente bem na maioria das aplicações, mas não fornece uma boa estimativa de como os humanos perceberiam a qualidade.
O PSNR pode ser calculado quadro a quadro e, por exemplo, você faria a média do PSNR de uma sequência de vídeo inteira para obter a pontuação final. PSNR maior é melhor.
PSNR-HVS e PSNR-HVS-M são extensões do PSNR que tentam emular a percepção visual humana, portanto devem ser mais precisos. VQMT e MSU podem calcular PSNR, PSNR-HVS e PSNR-HVS-M entre dois vídeos.
SSIM, MS-SSIM
A similaridade estrutural (SSIM) é tão fácil de calcular quanto o PSNR e fornece resultados mais precisos, mas ainda assim, quadro a quadro. Você encontrará algumas implementações no link da Wikipedia ou pode usar o VQMT ou MSU . Essas ferramentas também incluem o MS-SSIM, que fornece resultados melhores (ou seja, mais representativos) do que o SSIM, além de alguns outros derivados.
Os resultados devem ser semelhantes ao PSNR. Novamente, você precisa comparar uma referência a um vídeo processado para que isso funcione, e os dois vídeos devem ter o mesmo tamanho.
VMAF
Avaliação de vários métodos de vídeo O Fusion da Netflix é um conjunto de ferramentas para calcular a qualidade do vídeo com base em algumas métricas existentes, que são fundidas pelos métodos de aprendizado de máquina em uma pontuação final entre 0 e 100. A Netflix explicou tudo aqui :
[VMAF] prevê qualidade subjetiva, combinando várias métricas de qualidade elementar. A lógica básica é que cada métrica elementar pode ter seus próprios pontos fortes e fracos em relação às características do conteúdo de origem, tipo de artefato e grau de distorção. Ao 'fundir' métricas elementares em uma métrica final usando um algoritmo de aprendizado de máquina - no nosso caso, um regressor SVM (Support Vector Machine) - que atribui pesos a cada métrica elementar, a métrica final pode preservar todos os pontos fortes das métricas individuais e forneça uma pontuação final mais precisa.
Você também pode usar ffmpeg
para calcular as pontuações do VMAF .
VQM
A Métrica da qualidade do vídeo foi validada no VQEG ( Video Quality Experts Group ) e é um algoritmo de referência completa muito bom. Você pode baixar o VQM gratuitamente ou usar a implementação do MSU.
Ao se registrar e fazer o download, você deseja usar o Modelo Geral da NTIA ou o Modelo de Qualidade de Vídeo com Atraso de Quadro Variável .
Outras métricas
- O PEVQ é uma métrica de referência completa padronizada sob ITU-T J.246. Destina-se a sinais multimídia, mas não a vídeos em HD.
- O VQuad-HD é outra métrica de referência completa padronizada como ITU-T J.341. Como é mais recente, é mais adequado para vídeo HD.
Ambas são soluções comerciais e você não encontrará um software para fazer o download delas.
Existem também alguns padrões ITU em métricas sem referência, como ITU-T P.1201 e ITU-T P.1202 , que funcionam com parâmetros do fluxo de bits para fluxo de IPTV. O ITU-T P.1203 pode ser usado para casos de streaming adaptáveis.
Sumário
Se você apenas procura comparar critérios simples e objetivamente mensuráveis, como:
- Tamanho do quadro
- Taxa de bits
- Quadros por segundo
- Resolução de vídeo
… Uma simples chamada para ffmpeg -i
deve fornecer todos os detalhes necessários no início. Também dê uma olhada na -vstats
opção. Você pode resumir isso em uma planilha. Observe que, quando você codifica vídeos, x264
por exemplo, registra coisas como PSNR diretamente em um arquivo, se necessário, para que você possa usar esses valores posteriormente.
Quanto à forma de ponderar esses critérios, você provavelmente deve enfatizar a taxa de bits - mas apenas se souber que o codec é o mesmo. Você poderia dizer que, quando os dois vídeos usam x264, aquele com taxa de bits mais alta é melhor. Ainda mais geralmente, você deve escolher uma resolução mais baixa quando tiver dois vídeos com a mesma taxa de bits, pois a degradação causada pelo aumento de escala não é tão ruim quanto a degradação causada pela baixa taxa de bits.
Não é possível comparar codecs diferentes de acordo com a taxa de bits, a menos que você saiba mais sobre o conteúdo e as configurações de codificação individuais. A taxa de quadros também é uma coisa muito subjetiva e deve ser contabilizada em suas medições se estiver bem abaixo de 25 Hz.
Para resumir, enfatize fortemente a taxa de bits se é a única coisa que você tem. Não se esqueça de usar seus olhos também :)