UMA ETAPA DE UMA CADEIA — O QUE ENTRA, O QUE SAI E O QUE QUEBRA DEPOIS
Onde isto fica no pipeline de codificação
Um codificador de vídeo não é um algoritmo, mas oito etapas numa ordem fixa, e a ordem não é arbitrária: cada etapa existe porque a anterior tornou o seu trabalho possível. Esta ferramenta modela uma delas. A cadeia abaixo liga às outras sete.
Simulador de controle de taxa — escolhe o quantizador de cada quadro para atingir uma meta de taxa de bits ou de qualidade
O controle de taxa é um laço, não um passo: envolve a quantização da etapa 05 e vai ajustando-a, em vez de rodar uma vez entre duas vizinhas.
- O que entra
- O custo em bits medido dos quadros já codificados, mais uma meta a atingir.
- O que sai
- Um ajuste de quantizador para o próximo quadro, devolvido à etapa 05.
- O que a etapa seguinte pressupõe
- Pressupõe que tem permissão para alterar a quantização, e é por isso que envolve essa etapa em vez de segui-la.
- O que dá errado aqui
- Qualidade e taxa de bits não podem ser mantidas constantes ao mesmo tempo. O CRF fixa a qualidade e deixa a taxa subir em cenas complexas; o CBR fixa a taxa e deixa a qualidade cair nelas. Escolher um é escolher qual dos dois tem permissão para se mover.
Problemas resolvidos na íntegra
-
Derivação da pontuação de 60 para o pior quadro do CBR a partir de um buffer de 4 quadros 6 passos
Cena de ação, CRF 23, um buffer de 4 fotogramas. O pior fotograma do CBR pontua 60 em 85 permitidos por este modelo, e as regras estão todas na página: o CRF atribui a cada fotograma uma quota de bits proporcional à sua complexidade, o CBR paga um valor fixo de 2000 bits e complementa esse valor a partir de um buffer com capacidade para 4 fotogramas, e a qualidade do CBR é 85 vezes a raiz quadrada da oferta sobre a procura. Deduza o 60.
-
A alocação do CRF é definida em relação à complexidade média da cena, pelo que ao fazer a média se obtém diretamente de volta essa mesma média. Seja qual for a cena e seja qual for o CRF, a média resulta no alvo de 2000 bits — essa indicação é uma definição, não uma medição.
-
O pico é a informação relevante. 4078 contra 2000 indica que o fotograma com maior atividade carrega 2,039 vezes a complexidade média, e o gerador limita a complexidade a 0,95, pelo que a complexidade média desta cena tem de ser 0,466.
-
O CBR enfrenta a mesma curva. A sua procura por fotograma é a mesma expressão que a alocação do CRF, pelo que o fotograma pelo qual o CRF paga 4078 bits é o fotograma para o qual são pedidos 4078 bits ao CBR, entregando este apenas 2000.
-
Cobrir essa diferença é a função do buffer. Quando cheio, comporta 8000 bits e eleva a oferta para 5040, confortavelmente acima dos 4078 exigidos pelo fotograma mais difícil — um buffer cheio ocultaria o pico por completo e a qualidade nunca deixaria os 85.
-
A qualidade deixa efetivamente os 85, logo o buffer não pode estar cheio. Considere-o vazio: a oferta é de apenas 2000, a razão é 0,4904, a sua raiz quadrada é 0,7003, e 85 vezes esse valor dá 59,5, que o painel arredonda para 60. O mínimo apresentado é exatamente o limite inferior do buffer vazio.
-
O buffer esvazia à taxa em que a procura excede o orçamento, ou seja, 2078 bits no fotograma de pico. 8000 bits de buffer correspondem a 3,85 fotogramas dessa diferença. O trecho de maior atividade desta cena dura 40.
Resposta
60 não se deve a um buffer com tamanho errado. Deve-se a um buffer que se esgotou. O tamanho do buffer converte-se em tempo, não em qualidade: divida o preenchimento pelo défice por fotograma e obtém o número de fotogramas de cobertura de que dispõe, razão pela qual um pico de consumo é medido em relação ao buffer em fotogramas e não em bits. Ocultar um pico com a duração de 40 fotogramas exige cerca de 1,04 fotogramas de buffer por fotograma de pico — aproximadamente 40 fotogramas, e o cursor para nos 10. Esta é a justificação para a taxa de bits variável numa única linha: o CRF nunca precisa de ocultar o pico, apenas paga por ele.
-
-
A diferença de 10,8 pontos entre CRF e CBR a 2000 bits por quadro 5 passos
Ambos os modos consomem os mesmos 2000 bits por fotograma nesta cena. A linha de qualidade do CRF situa-se em 89,8, enquanto o CBR regista uma média de 79. Determine o que se obtém em troca dessa diferença de 10,8 pontos e quanto custaria em passos de CRF.
-
A pontuação do CRF provém exclusivamente do cursor: 45 pontos distribuídos ao longo dos 22 passos de CRF 18 a CRF 40. O CRF 23 fica 5 passos abaixo, resultando em 89,8.
-
Um passo equivale, portanto, a 2,045 pontos em qualquer ponto da escala — este modelo torna a qualidade do CRF linear, o que permite quantificar posteriormente a diferença em passos.
-
As taxas de bits não são meramente próximas, são idênticas. Por construção, o CRF atinge em média o valor-alvo, e o CBR paga o valor-alvo em cada fotograma individual, pelo que ambos produzem 240 000 bits ao longo dos 120 fotogramas.
-
Nada nos 10,8 pontos entre 89,8 e 79 resulta, portanto, de uma diferença na taxa de bits. Mesmos bits, mesmo tamanho de ficheiro, separados por 10,8 pontos.
-
A diferença divide-se em duas partes. O CBR está limitado a 85 mesmo em fotogramas que superaria facilmente, o que custa 4,8 pontos face aos 89,8 do CRF, e os 6,0 pontos restantes perdem-se nos fotogramas em que o buffer já não tinha reserva.
Resposta
Uma taxa de bits constante custa aqui 10,8 pontos de qualidade, e 5,28 passos de CRF permitiriam recuperá-los. O que o CBR obtém em troca é um limite de pico: o seu maior fotograma tem 2000 bits, exatamente a sua média, enquanto o maior do CRF tem 4078. Numa ligação que transporta 2000 bits por fotograma e nem mais um, o fotograma de pico do CRF chega com atraso e os seus 89,8 não valem nada — essa é toda a razão para aceitar os 10,8. Note o que o passo 3 também exclui: a alocação não contém qualquer termo de CRF, pelo que aumentar o CRF para 28 baixaria a pontuação e manteria a taxa de bits em 2000. Esta página mostra onde os bits são aplicados, não quanto custa obter determinado nível de qualidade.
-
Referências (1)
- The framework every encoder’s rate control is an approximation of: G. J. Sullivan & T. Wiegand, "Rate-distortion optimization for video compression." IEEE Signal Processing Magazine 15(6), 74–90, 1998.