Comparação de codecs HEVC da MSU. Como melhorar os resultados
Em outubro de 2015, outro relatório de comparação de codec foi lançado no VMiK da Universidade Estadual de Moscou, desta vez incluindo vários codecs HEVC.O ponto de partida do estudo foi que notamos uma diferença nas predefinições nos testes para AVC e HEVC - para AVC, foi utilizado um perfil rápido não modificado com um GOP, e para HEVC, um modificado com vários GOPs. Ao mesmo tempo, para o único arquivo “Apple Tree” descrito no relatório aberto, o codificador x264 mostrou-se melhor que x265 quando foi rapidamente transcodificado nos gráficos da dependência do SSIM na taxa de bits, sem levar em consideração a velocidade de codificação. A questão surgiu imediatamente: talvez essas opções ou outras óbvias possam mudar esse quadro.O relatório compara predefinições, mas não fornece recomendações para corrigi-las. Neste artigo, fizemos uma comparação semelhante e fizemos recomendações para modificar as predefinições do codificador x265. Para uma sequência de vídeo semelhante à estudada na versão gratuita do relatório, as alterações propostas nos parâmetros de codificação podem melhorar a eficiência da compactação, enquanto reabilitam o codificador x265 ao plotar o relatório.As predefinições modificadas não reivindicam universalidade, o teste em um grande número de sequências de vídeo está além do escopo deste estudo. No entanto, eles podem ser recomendados como ponto de partida ao procurar oportunidades para aumentar a eficiência da codificação do x265.Sobre o projeto
A tarefa de codificação de vídeo no processamento multimídia, seja de transmissão, edição ou edição, armazenamento, surge constantemente tanto no desenvolvimento de aplicativos e serviços quanto na configuração no momento do uso. Devido ao grande número de codecs de vídeo populares, mesmo frequentemente do mesmo tipo, não é fácil escolher o melhor deles e definir as configurações corretas. Provavelmente, guiado por essas considerações, no laboratório de computação gráfica e multimídia da faculdade de matemática e cibernética computacional (VMiK) da Universidade Estadual de Moscou desde os anos 2000, o trabalho está em andamento em um projeto para comparar codecs de vídeo.Em outubro de 2015, foi publicado um relatório de comparação de codecs que incluía alguns codecs no formato HEVC, além de vários outros que estão atualmente em desenvolvimento ativo. Como "referência" adotou o compressor x264. Um dos interessantes no relatório é o compressor x265, e vamos estudá-lo.Como ferramenta de análise, usaremos o SolveigMM Zond 265, o analisador de arquivos HEVC / H.265 e AVC / H.264.
Métodos para comparar codecs e selecionar parâmetros
Nós descrevemos a técnica. A comparação no relatório é realizada de acordo com a velocidade de qualidade de taxa de bits do critério (SSIM, PSNR) O procedimento descrito no relatório para comparar a taxa de taxa de bits / métrica de qualidade (parágrafo C.4) é o seguinte.Selecionamos vários valores de taxa de bits (por exemplo, 7 valores: 1, 2, 4, 6, 8, 10 e 12 Mbps); para eles, consideramos as métricas de qualidade necessárias para cada codec.Marcamos os valores obtidos no gráfico: métrica da qualidade (eixo da abcissa) - taxa de bits (eixo das ordenadas).- Interpolar linearmente.
- Selecionamos o intervalo mais amplo no qual todos os gráficos são definidos e encontramos a área em todos os gráficos.
- Como medida da qualidade de um codec (ou predefinição) específico, levamos a proporção de sua área para a área do codec de referência. Quanto menor o número, mais eficiente o codec.
Para a referência, selecione x265 com a predefinição selecionada no relatório (tabela 1). O relatório não usa a versão mais recente do compressor, pode ser encontrado aqui: x265 1.5 + 460-ac85c775620f . No entanto, ao usar a versão mais recente, nada muda fundamentalmente.As predefinições de compressor usadas são mostradas na tabela 1 (para a plataforma de desktop).Rasgando
| x265 -p veryslow --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
|
Codificação universal
| x265 -p medium --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --put-res% WIDTH% x% HEIGHT% --fps% FPS%
|
Recodificação rápida
| x265 -p ultrafast --ref 3 --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
|
Tabela 1. Configurações do compressor x265 do relatório "Comparação de codec de vídeo HEUC HEVC"Para obter recomendações para modificar predefinições, testamos todas as configurações em que elas consistem - qual a contribuição de cada componente para a qualidade e velocidade. O plano aqui é o seguinte.- Codificamos o arquivo, alterando cada parâmetro da predefinição: de transcodificação rápida para universal, de universal para "rasgar". Ao mesmo tempo, economizamos o tempo de codificação.
- Calculamos a medida de qualidade (como a área indicada acima) e o tempo de codificação relativo (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).
- Na tabela que consiste em um parâmetro variável, medida de qualidade, FPS mínimo, selecionamos os parâmetros que podem ser usados para melhorar as predefinições.
Nós nos restringimos aos parâmetros de predefinições para codificação universal e para "ripar" (Tabela 2), revelando os parâmetros "-p médio" e "-p ultra-rápido". Adicione a eles mais dois ausentes no relatório: “--keyint -1 --tune ssim”. Nós suplementaremos os parâmetros listados com predefinições para transcodificação rápida e universal, respectivamente.Codificação universal
| --rc-lookahead 20 --scenecut 40 --ctu 64 --min-cu-size 8 --bframes 4 --b-adap 2 --subme 1 --me hex --early-skip --sao - signhide --weightp --rd 3 --aq-force 1.0 --aq-mode 1 --cutree --no-fast-intra
|
Rasgando
| --weightb --amp --rect --rc-lookahead 40 --frames 8 --tu-inter-depth 3 --tu-intra-depth 3 --rd 6 --rdoq 2 --psy-rdoq 1.0 - -subme 4 --max-merge 4 --me star --ref 5 --b-intra --lookahead-slice 0
|
Tabela 2. Parâmetros candidatos para modificar as predefinições do relatório MSU HEVC Video Codec ComparisonTeste
O link de download para a sequência de teste da Apple Tree (Fig. 1), usado na versão gratuita do relatório, não está especificado. Escolheremos um similar, usando seu recurso principal - um close-up, um grande número de pequenos detalhes. Por exemplo, “ big_buck_bunny_1080p_h264.mov ”, um intervalo de 338 quadros a partir de 24 segundos:ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frames: v 338 -c: v rawvideo -pix_fmt yuv420p sample.yuv
Figura 1. Características da sequência Apple Tree ”Para não gastar muito tempo escrevendo os números necessários da interface do Zond 265 ao implementar as três etapas do plano indicado acima, é conveniente usar sua capacidade de trabalhar na linha de comando (tabela 3):zond265_x64% COMPRESSED_FILE% -iref% REFERENCE_420P_FILE% -nowait -report t = qualidade, statstream qm = SSIM o =% TARGET_CSV_FILE%Uma lista de todos os parâmetros e sua descrição detalhada podem ser encontrados na página de documentação do Zond 265 .Parâmetro
| Descrição do produto
|
-iref
| Definindo o arquivo YUV de referência
|
-relatório
| Especificando o modo de operação do Zond 265 na linha de comando
|
t = qualidade, statstream
| Aqui, a geração de dois relatórios é selecionada: qualidade e estatísticas no fluxo de vídeo
|
qm = SSIM
| Métrica de qualidade para cálculo
|
o
| Caminho para o arquivo de relatório CSV
|
-nowait
| Sem pausas, o próprio Zond 265 deve ir de um arquivo para outro sem demora
|
Tabela 3. Parâmetros de linha de comando do Zond 265 necessários para compilar um scriptAqui estão dois scripts para o Python 2.7: um para codificar 266 arquivos (20 configurações para o primeiro, 18 configurações para o segundo preset, com 7 taxas de bits: 1, 2, 4, 6, 8, 10, 12 Mbps), o segundo para relatórios em formato CSV (arquivo - a proporção da codificação FPS para a configuração de referência - a proporção da métrica SSIM para a configuração de referência).Como pode ser visto nas tabelas de relatório do fragmento do arquivo " big_buck_bunny_1080p_h264.mov " (tabelas 5 e 6), é possível modificar a configuração, por exemplo, conforme mostrado na tabela 4. Lembre-se de melhorar a eficiênciao valor da medida de qualidade deve ser menor que um e o valor do tempo de codificação relativo deve ser mais de um.O teste foi realizado em um computador com a seguinte configuração: Intel Core i7-2600@3,4 GHz, 16 GB de RAM. A maior melhoria na qualidade é fornecida pelo parâmetro "--min-cu-size 8" para a configuração da codificação rápida, para codificação universal o parâmetro "--rdoq-level 2" (mas também retarda a codificação acima de tudo).Recodificação rápida
| x265 -p ultrafast --ref 3 --rc-lookahead 20 --min-cu-size 8 --bframes 4 - skip anterior --cutree --tune ssim --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --put-res% WIDTH% x% HEIGHT% --fps% FPS%
|
Codificação universal
| x265 -p medium --weightb --bframes 8 --tu-intra-depth 3 - psy-rdoq 1.0 --b-intra --lookahead-slice 0 --tune ssim --bitrate% BITRATE_KBPS %% SOURCE_FILE% - o% TARGET_FILE% - rendimento% WIDTH% x% HEIGHT% --fps% FPS%
|
Tabela 4. Modificação das predefinições do relatório MSU HEVC Video Codec Comparison para aumentar a eficiência da codificação na mesma taxa de codificaçãoTabela 5. Relatório sobre modificação da predefinição de recodificação rápida
5.
Tabela 6. Relatório sobre modificação da predefinição de codificação universal
6.
É fácil verificar a escolha correta das opções, executando o script de codificação com as predefinições modificadas (tabela 7).Configuração
| Medida de qualidade
| Tempo relativo de codificação
|
Transcodificação rápida (referência)
| 1 1
| 1 1
|
Transcodificação rápida, modificada
| 0,69
| 0,97
|
Transcodificação Universal (referência)
| 1 1
| 1 1
|
Transcodificação Universal Modificada
| 0,85
| 0,94
|
Tabela 7. Eficiência de codificação usando predefinições modificadas em relação às predefinições do relatório "Comparação de codec de vídeo HEUC HEVC da MSU"Vamos tentar ver o que as alterações nas opções influenciaram - abriremos no Zond 265 um arquivo codificado pela predefinição alterada ao transcodificar rapidamente a taxa de bits de 8 Mbps e compará-la com o arquivo, predefinição inalterada codificada. O tamanho da unidade máxima de codificação permanece o mesmo e é 32x32 (área “--ctu 32”). Mas o tamanho do bloco mínimo diminuiu de 16 para 8 (a área “--min-cu-size 8”), foi esse parâmetro que deu o maior aumento na qualidade. O número de quadros B aumentou de 3 para 4 (área “- quadros 4”), mas o número máximo de quadros “de referência” aumentou (área “- ref 4”). A área SSIM mostra os gráficos máximos de SSIM / PSNR para três componentes: brilho (Luma) e dois componentes de cores (Cb, Cr). Eles aumentaram de 0.9623-0.9966 para 0.9771-0.9991. Os parâmetros adicionais restantes (--rc-lookahead 20 --early-skip --cutree) afetam o algoritmo de codificação, e não o tipo do vídeo resultante, isso é refletido principalmente na velocidade de codificação (consulte a Tabela 5). Deve-se notarvisualmente, a imagem do quadro decodificado mudou - os artefatos de codificação agora não são visíveis.
Figura 2. Captura de tela do arquivo Zond 265 codificado usando a configuração corrigida da codificação rápida.Da mesma forma, você pode verificar os parâmetros do arquivo codificado com a predefinição de codificação universal modificada e inalterada (Figura 3). O tamanho das partições mínimas de TU não mudou e permaneceu igual a 4x4 (área “- intra-profundidade 3”), o número de quadros B permaneceu inalterado e igual a 3 (área “- quadros 3”). O SSIM aumentou de 0.9789-0.9994 para 0.9811-0.9992. Comparado à configuração rápida de transcodificação, o tamanho máximo do bloco aumentado tornou-se igual a 64x64 (área “--ctu 64”), um filtro SAO (área “--sao”) foi adicionado.
Figura 3. Captura de tela do arquivo Zond 265 codificado usando a configuração de codificação universal corrigida.Assim, com base nos testes, é proposta uma lista de opções para melhorar a eficiência da codificação (aprimorando a métrica SSIM com a mesma velocidade de taxa de bits e de codificação) para configurações de codificação rápida e universal. Usando as alterações propostas para um arquivo com um grande número de pequenos detalhes, o valor da "medida de qualidade" integral do relatório "Comparação de codec de vídeo HEUC MSU" melhorou em 31% para conversão rápida e em 15% com conversão universal, e a velocidade de codificação não mudou significativamente. Porque Como o teste foi realizado para cada opção separadamente, na prática, você pode selecionar e usar apenas algumas opções convenientes, e não toda a lista proposta.Referências
- HEVC Video Codecs Comparison
- Blender Foundation | www.blender.org
- Zond 265 home page
Source: https://habr.com/ru/post/pt388423/
All Articles