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.
Visualizador de estrutura do GOP — decide quais quadros são codificados sozinhos e quais como diferenças
- O que entra
- Uma sequência de quadros amostrados, nenhum codificado ainda.
- O que sai
- Uma atribuição: quadros I codificados sozinhos, quadros P e B contra quadros de referência.
- O que a etapa seguinte pressupõe
- A estimação de movimento roda apenas em quadros P e B. Um quadro I a salta por completo.
- O que dá errado aqui
- Esta etapa decide se a seguinte roda sequer para um dado quadro, portanto comanda a etapa 04 em vez de apenas precedê-la. Intervalos longos entre quadros I comprimem muito melhor e pioram a busca, porque o player precisa decodificar para frente desde o último quadro I para chegar a qualquer ponto.
Problema resolvido na íntegra
-
Mistura de frames e tamanho médio de frame para 48 frames a 24 fps 6 passos
Um grupo de imagens ao estilo Blu-ray: 48 fotogramas, 3 fotogramas B consecutivos entre referências, reproduzido a 24 fps. Considere que um fotograma I custa 100 unidades relativas, um fotograma P 12 e um fotograma B 6. Determine a mistura de fotogramas e o tamanho médio dos fotogramas, e depois calcule quanta compressão um GOP mais longo ainda poderia proporcionar.
-
Um fotograma I abre o grupo, o que deixa 47 posições. Essas posições repetem uma unidade de 4 fotogramas — 3 fotogramas B e o fotograma P que os ancora — e 47 não é múltiplo de 4. 47 = 11 × 4 + 3, logo 11 unidades completas e uma ponta de 3 fotogramas B pendentes.
-
Isso dá 11 fotogramas P e 33 + 3 = 36 fotogramas B. Verifique: 1 + 11 + 36 = 48.
-
Pondere cada tipo pelo seu custo. 100 + 132 + 216 = 448 unidades para todo o grupo, e 448 / 48 = 9,3 por fotograma. Um fluxo totalmente intra paga 100 por cada fotograma, pelo que esta estrutura é 10,7 vezes menor para as mesmas 48 imagens.
-
A fatura disso chega sob a forma de latência. Não se pode iniciar a descodificação no meio de um grupo — cada fotograma P e B é definido em relação a outra coisa — por isso a procura vai dar ao fotograma I e descodifica-se para a frente a partir daí. O pior caso é a totalidade dos 48 fotogramas, o que a 24 fps corresponde a 2 s.
-
Agora encontre o limite inferior. Cada unidade de repetição custa 3 × 6 + 12 = 30 unidades para 4 fotogramas, ou 7,5 por fotograma, e aumentar o GOP apenas adiciona mais destas unidades. Subtraia essa taxa ao grupo e sobram 448 - 7,5 × 48 = 88 unidades.
-
Essas 88 são um único número: 100 - 12, o acréscimo do fotograma I em relação ao fotograma P que ele substitui. O acréscimo não cresce com o grupo, pelo que é 88 seja qual for o comprimento, e a média é S̄ = 7,5 + 88/N. Teste com o dobro do comprimento: N = 96 dá 7,5 + 88/96 = 8,4 unidades por fotograma.
Resposta
9,3 unidades por fotograma, contra um limite inferior de 7,5 do qual nenhum comprimento de GOP pode baixar. As duas partes do compromisso variam em direções opostas e nenhuma é linear da forma como parece: o que ainda há a ganhar diminui como 88/N, enquanto a latência de procura aumenta como N/24. Com 48 fotogramas, está 1,8 unidades acima do limite inferior. Duplicar para 96 recupera 0,9 disso — menos de 10% do tamanho do fotograma — e custa mais 2 s de procura no pior caso. Duplicar novamente recupera 0,46 e custa mais 4 s. Por isso, o comprimento de GOP que vale a pena escolher é fixado pela latência que se está disposto a aceitar, e não pela compressão que ainda se tenta obter: para lá de algumas dezenas de fotogramas, um fotograma I amortizado um pouco mais é tudo o que resta.
-
Referências (1)
- Where I, P and B pictures and the GOP structure are specified: ITU-T Recommendation H.264, Advanced video coding for generic audiovisual services.