Sobre Produtos Suporte Blog

Comparação de codecs HEVC da Universidade Estadual de Moscou. Como melhorar os resultados

image

 

  By Olga Krovyakova - modified October 6, 2023, created April 3, 2019.

 

EXPERIMENTE ZOND 265 GRATUITAMENTE

 

Em outubro de 2015, o Graphics & Media Lab Video Group do Departamento de Ciência da Computação da Universidade Estadual de Moscou (CS MSU Graphics & Media Lab) publicou outra revisão comparativa do codec , desta vez incluindo vários codecs de formato HEVC.

 

O ponto de partida para esta pesquisa foi percebermos a diferença nas predefinições dos testes AVC e HEVC. Para AVC, foi utilizado um perfil rápido não modificado com um único GOP, enquanto um perfil modificado com vários GOP foi empregado para testes HEVC. Além disso, o codificador x264 apresentou melhores resultados que o x265 na transcodificação rápida em diagramas de correlação SSIM/taxa de bits, independentemente da velocidade de codificação – para “Apple Tree”, o único arquivo descrito no relatório aberto. Uma questão surgiu imediatamente: e se estas ou algumas outras opções evidentes pudessem mudar o quadro?

O relatório compara predefinições, mas’não recomenda nenhuma melhoria relacionada. Neste artigo, conduzimos uma revisão semelhante e desenvolvemos recomendações para modificar as predefinições do codificador x265. Para a sequência de vídeo idêntica à analisada na versão gratuita do relatório, nossas alterações sugeridas nos parâmetros de codificação ajudam a aumentar a eficiência da compactação e a reabilitar o codificador x265 na construção do diagrama do relatório.

As predefinições modificadas não têm qualquer pretensão de universalidade, uma vez que o teste em múltiplas sequências de vídeo está além do escopo desta pesquisa. No entanto, eles podem ser recomendados como ponto de partida para buscar oportunidades para melhorar a eficiência da codificação x265.

 

Sobre o projeto

A tarefa de codificação de vídeo no processo de processamento multimídia, seja transmissão, corte, edição ou armazenamento, é onipresente no desenvolvimento e configuração de aplicações/serviços no decorrer da operação. Devido à grande quantidade de codecs de vídeo populares disponíveis, muitas vezes do mesmo tipo,’não é fácil escolher o melhor e depois aplicar as configurações corretas. É mais provável que’essas considerações tenham encorajado o projeto de comparação de vídeo em andamento iniciado e operado pelo Laboratório de Computação Gráfica e Multimídia do CMC MSU nos anos 2000. Em outubro de 2015, eles emitiram um relatório comparativo de codecs que registrou vários formatos HEVC codecs e outros codecs em desenvolvimento ativo. x264 foi escolhido como modelo de compressor em seu relatório. Um dos outros compressores interessantes mencionados foi o x265. É este formato que constituirá o tema principal do nosso estudo.

A ferramenta para análise é o SolveigMM Zond 265, um analisador HEVC/H.265 e AVC/H.264.

image

A metodologia de comparação de codecs e seleção de parâmetros


Deixe’descrever a metodologia. A comparação é realizada com base nestes critérios: qualidade da taxa de bits – (SSIM, PSNR) – desempenho. A metodologia para comparar a correlação taxa de bits/qualidade métrica (ver ponto C4) é a seguinte.
Selecionamos vários valores de taxa de bits (por exemplo, 7 valores: 1, 2, 4, 6, 8, 10 e 12 Mbps) e calculamos todas as métricas de qualidade necessárias para cada codec.

Colocamos os valores de saída no diagrama: métrica de qualidade (eixo horizontal) – taxa de bits (eixo vertical).

  1. Fazemos uma interpolação linear.
  2. Selecionamos um intervalo máximo onde todos os diagramas são definidos e detectamos áreas sob todos os diagramas nele contidos.
  3. Como uma medida de qualidadede um codec específico (ou predefinido), tomamos a relação de sua área com a área do codec modelo. Quanto menor for o valor recebido, mais eficaz será o codec.

Como modelo selecionamos x265 com o preset escolhido no relatório (tabela 1). O relatório usa uma versão anterior do compressor que pode ser encontrada aqui: x265 1.5+460-ac85c775620f. No entanto, a versão mais recente’não traz quaisquer alterações radicais.
Os presets de compressores utilizados estão indicados na tabela 1 (para a plataforma desktop).

Tabela 1. Configurações do compressor x265 no relatório MSU HEVC Video Codec Comparison.
 
Rasgando x265 -p muito lento --taxa de bits %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS%
Codificação universal x265 -p médio --taxa de bits %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS%
Transcodificação rápida x265 -p ultra-rápido --ref 3 --taxa de bits %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS%
 

Para sugerir recomendações de modificação de predefinições, realizamos um teste de todas as configurações de formação de predefinições para avaliar seu impacto individual na qualidade e no desempenho. Aqui está o plano de ação:

  1. Codificamos o arquivo alterando todos os parâmetros predefinidos: da transcodificação rápida ao universal, do universal à extração, economizando tempo de codificação.
  2. Calculamos a medida de qualidade (da mesma forma que a área acima) e tempo de codificação referencial (o valor mínimo de codificação FPS para o arquivo "parâmetro modificado predefinido" em relação a todos os valores de taxa de bits selecionados).
  3. A partir da tabela composta por parâmetro alterável, medida de qualidade e FPS mínimo, escolhemos os parâmetros que podem ser utilizados para melhorar os presets.


Limitamo-nos às predefinições para codificação e extração universal (tabela 2), desbloqueando os parâmetros "-p médio" e "-p ultrarrápido". Também adicionamos mais dois que foram omitidos no relatório: "--keyint -1 --tune ssim". Complementamos as predefinições com os parâmetros mencionados para transcodificação rápida e universal, respectivamente.

Tabela 2. Parâmetros – candidatos à modificação das predefinições do relatório de comparação de codec de vídeo MSU HEVC.

 
Codificação universal --rc-lookahead 20 --scenecut 40 --ctu 64 --min-cu-size 8 --bframes 4 --b-adapt 2 --subme 1 --me hex --early-skip --sao -- assinarhide --weightp --rd 3 --aq-strength 1.0 --aq-mode 1 --cutree --no-fast-intra
"Rasgando" --weightb --amp --rect --rc-lookahead 40 --bframes 8 --tu-inter-profundidade 3 --tu-intra-profundidade 3 --rd 6 --rdoq 2 --psy-rdoq 1.0 - -subme 4 --max-merge 4 --me estrela --ref 5 --b-intra --lookahead-slices 0

 

Teste


Não há link para download da sequência de testes “Macieira” (foto 1) utilizada na versão gratuita do relatório. Nós’escolheremos um semelhante usando sua característica principal – close-up, uma grande quantidade de pequenos detalhes. Por exemplo "big_buck_bunny_1080p_h264.mov", o intervalo de 338 quadros do segundo 24:

ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frames:v 338 -c:v rawvideo -pix_fmt yuv420p sample.yuv

image

Foto. 1. Características da sequência “Macieira”"

Para realizar três etapas do plano acima e economizar tempo copiando os números necessários da interface do Zond 265, é conveniente’usar o recurso de operação de linha de comando (tabela 3):


zond265_x64%COMPRESSED_FILE% -iref%REFERENCE_420P_FILE% -nowait -report t=qualidade,statstream qm=SSIM o=%TARGET_CSV_FILE%


Você pode ver a lista de todos os parâmetros e sua descrição completa em na página do Zond 265.

Tabela 3. Parâmetros da linha de comando do Zond 265 necessários para compilação do script.

Parâmetro Descrição
-iref Configurando o arquivo YUV de referência
-relatório Indicando o modo de operação do Zond 265 na linha de comando
t=qualidade,statstream Geração de dois relatórios selecionados: estatísticas de qualidade e fluxo de vídeo.
qm=SSIM Métrica de qualidade para cálculo
ó Caminho para o arquivo de relatório em formato CSV
-não espere Sem pausa. O Zond 265 navega automaticamente de um arquivo para outro sem demora.
 

Aqui estão dois scripts para Python 2.7: um para codificação  266 arquivos (20 configurações para o primeiro, 18 configurações para a segunda predefinição, para 7 valores de taxa de bits: 1, 2, 4, 6, 8 , 10, 12 Mbps), outro para compilar um relatório em formato CSV (o arquivo – a relação da codificação FPS com a configuração do modelo – a relação da métrica SSIM com a configuração do modelo). 

Como você pode ver nas tabelas de relatório do fragmento do arquivo "big_buck_bunny_1080p_h264.mov" (tabelas 5 e 6), as configurações podem ser modificadas, por exemplo, conforme’está indicado na tabela 4. Basta um lembrete, para melhores resultados o valor da "Medida de Qualidade" deve ser menor que a unidade, e o valor do "Tempo Relativo de Codificação" – maior que a unidade.

O teste foi realizado usando a seguinte configuração de hardware: Intel Core i7-2600@3,4 GHz, 16 GB de RAM. A maior melhoria de qualidade para configurar a codificação rápida é renderizada pelo parâmetro "--min-cu-size 8", no caso de codificação universal’é o parâmetro "--rdoq-level 2" (no entanto, ele fica mais lento codificação mais).

Tabela 4. Modificando as predefinições do relatório MSU HEVC Video Codec Comparison para melhorar a eficiência da codificação com a mesma velocidade de codificação.

Transcodificação rápida x265 -p ultrarrápido --ref 3 --rc-lookahead 20 --min-cu-size 8 --bframes 4 --early-skip --cutree --tune ssim --taxa de bits %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS%
Codificação universal x265 -p médio --weightb --bframes 8 --tu-intra-profundidade 3 --psy-rdoq 1.0 --b-intra --lookahead-slices 0 --tune ssim --taxa de bits% BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS%
 
 
Tabela 5. O relatório sobre a modificação da predefinição de transcodificação rápida
image

Tabela 6. O relatório sobre a modificação da predefinição de codificação universal.

image
Você pode verificar facilmente se as opções foram selecionadas corretamente iniciando o script de codificação com predefinições modificadas (tabela 7).
 
Tabela 7. Eficiência de codificação usando predefinições modificadas em relação às predefinições do relatório MSU HEVC Video Codec Comparison.
 
Configuração Medida de qualidade Tempo de codificação relativo
Transcodificação rápida (modelo) 1 1
Transcodificação rápida (modificada)  0,69  0,97
Transcodificação universal (modelo)  1  1
Transcodificação universal (modificada)  0,85  0,94
 

Deixe’avaliar o impacto da modificação das opções  – no Zond 265 abrimos o arquivo codificado com o preset modificado no modo de transcodificação rápida para a taxa de bits de 8 Mbps e comparamos com o arquivo codificado com a predefinição não modificada. O tamanho da maior unidade de codificação permanece inalterado e é igual a 32x32 (campo "--ctu 32"). No entanto, o tamanho da unidade mínima diminui de 16 para 8 (campo "-min-cu-size 8"). É este parâmetro que proporcionou a maior melhoria de qualidade. O número de quadros B aumentou de 3 para 4 (campo "—bframes"), porém o número máximo de quadros de referência (campo "--ref 4") também aumentou. O campo “SSIM” marca dois valores máximos para os diagramas SSIM/PSNR para três componentes: brilho (Luma) e dois componentes de cor (Cb, Cr). Seus valores aumentaram de 0,9623-0,9966 para 0,9771-0,9991. Os parâmetros adicionais restantes (--rc-lookahead 20 --early-skip --cutree) influenciam o algoritmo de codificação, mas não o tipo de vídeo de saída, isso se reflete principalmente na velocidade de codificação (consulte a tabela 5). Vale ressaltar’que a imagem do quadro decodificado mudou visualmente. – os artefatos de codificação não são mais exibidos.

 
image

Foto. 2. Captura de tela de um arquivo Zond 265 codificado usando a configuração de codificação rápida modificada

Você também pode verificar os parâmetros do arquivo codificado com uma predefinição de codificação universal modificada e não modificada (figura 3). O tamanho das partições TU mínimas’t mudou e permanece igual a 4x4 (campo "--tu-intra-profundidade 3"), o número de quadros B também permaneceu inalterado e é igual a 3 (campo "--bframes 3"). SSIM aumentou de 0,9789-0,9994 para 0,9811-0,9992. Comparado à configuração de transcodificação rápida, o tamanho da unidade máxima aumentou e agora é igual a 64x64 (campo "--ctu 64"), o filtro SAO foi adicionado (campo "--sao").

image

Foto. 3. Captura de tela do arquivo Zond 265 codificado usando configuração de codificação universal modificada

Como resultado dos testes realizados, sugerimos uma lista de opções para melhorar a eficiência da codificação (melhoria do valor da métrica SSIM com a mesma taxa de bits e velocidade de codificação) para as configurações de codificação rápida e universal. Usando as alterações sugeridas para o arquivo com uma grande quantidade de pequenos detalhes, o valor da "medida de qualidade" integral do relatório MSU HEVC Video Codec Comparison melhorou em 31% na transcodificação rápida e em 15% na transcodificação universal, com um valor insignificante. mudança de velocidade de codificação. Como o teste foi feito separadamente para cada opção, na prática só faz sentido escolher várias opções convenientes em vez de toda a lista sugerida.

Referências

  1. Comparação de codecs de vídeo HEVC
  2. Fundação Blender | www.blender.org
  3. Página inicial do Zond 265

 

EXPERIMENTE ZOND 265 GRATUITAMENTE

 

 

 About the author

imageOlga Krovyakova is the Technical Support Manager in Solveig Multimedia since 2010.

She is the author of many text and video guidelines of company's products: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ and TriMP4.

She works with programs every day and therefore knows very well how they work. Сontact Olga via support@solveigmm.com if you have any questions. She will gladly assist you!