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.
Laboratório de subamostragem de crominância — descarta quase toda a resolução de cor deixando o brilho intacto
- O que entra
- Luma e croma em resolução plena — uma amostra de cor por pixel, escrito 4:4:4.
- O que sai
- Luma em resolução plena e croma com um quarto das amostras em 4:2:0.
- O que a etapa seguinte pressupõe
- Tudo a jusante lida com quatro vezes menos dados de croma, e o decodificador interpolará de volta as amostras descartadas.
- O que dá errado aqui
- Uma borda saturada — texto vermelho sobre preto é o caso clássico — tem a cor espalhada pelo bloco, porque essa borda vive no canal de croma de onde as amostras foram retiradas. A luma sobrevive intacta, então a imagem parece nítida e a cor parece errada.
Problema resolvido na íntegra
-
Bytes por pixel para 4:4:4, 4:2:2 e 4:2:0 a partir das contagens de amostras 6 passos
Deduza os bytes por píxel para 4:4:4, 4:2:2 e 4:2:0 a partir das contagens de amostras e, em seguida, descubra quanta largura de banda o 4:2:0 está realmente a poupar.
-
Conte as amostras num bloco de 2×2. A notação indica quantas amostras de croma acompanham quatro de luma nas linhas superior e inferior, pelo que o rácio é uma contagem e não uma fração.
-
Os outros dois modos descartam croma horizontalmente e, depois, também verticalmente. Cada redução para metade remove duas das doze amostras no bloco.
-
Multiplique pela contagem de píxeis para o tamanho do fotograma e determine o rácio da poupança. O 4:2:0 é exatamente metade do 4:4:4 por construção, e não por medição.
-
Observe para onde foram as amostras. A luma permanece intacta em todos os modos — os canais de diferença de cor são os únicos a ser reduzidos, e o olho humano resolve-os com cerca de metade da acuidade.
-
Escale os mesmos 1,5 bytes por píxel para um fotograma real a uma taxa real.
-
É por isso que o modo de falha é específico e não geral: a perda ocorre inteiramente nos dois canais que não transportam detalhe de luminância.
Resposta
Metade, e ainda assim são 746 Mbit/s para 1080p30 sem compressão. Esse número é o objetivo do exercício. A subamostragem de croma é a compressão mais barata que existe — sem transformada, sem codificador entrópico, sem decisão a tomar — e, após reduzir os dados para metade, o fluxo ainda é demasiado grande para qualquer rede doméstica, razão pela qual todos os codecs disponibilizados começam depois deste passo em vez de o substituírem. A razão para custar tão pouco visualmente reside na equação de Y: a luma é amostrada em cada píxel e apenas Cb e Cr são reduzidos, pelo que as arestas, a textura e o detalhe permanecem intactos. O que falha é tudo aquilo cuja informação reside apenas na cor — texto vermelho num fundo cinzento, um logótipo saturado, uma aresta de chroma-key — razão pela qual o 4:2:0 é invisível na folhagem e desastroso numa apresentação de diapositivos.
-
Referências (1)
- Insight block 1 says codecs discard colour before anything else. This is the measurement that licenses it: K. T. Mullen, "The contrast sensitivity of human colour vision to red–green and blue–yellow chromatic gratings." The Journal of Physiology 359, 381–400, 1985 — chromatic acuity falls away at far coarser detail than luminance acuity.