O que você calculou é a taxa de bits de um vídeo bruto e não compactado. Você normalmente não os encontrará, exceto em pesquisas ou outros aplicativos especializados. Até as emissoras usam vídeo compactado, embora com uma taxa de bits muito maior que o seu vídeo típico do YouTube.
Portanto, a qualidade do vídeo tem muito a ver com a forma como o vídeo foi compactado. Quanto mais você o comprime, menos bits são necessários por quadro. Além disso, quanto mais você comprime, pior é a qualidade. Agora, alguns vídeos são muito mais fáceis de compactar do que outros - em essência, é por isso que eles têm uma taxa de bits mais baixa, embora tenham a mesma resolução e taxa de quadros.
Para entender por que isso ocorre, você precisa estar ciente dos dois princípios principais usados na compactação de vídeo. Estes são chamados de "espacial" e "redundância temporal".
Redundância espacial
Existe redundância espacial em imagens que mostram conteúdo natural. Essa é a razão pela qual o JPEG funciona tão bem - compacta os dados da imagem porque os blocos de pixels podem ser codificados juntos. Estes são 8 × 8 pixels, por exemplo. Estes são chamados "macroblocos".
Os codecs de vídeo modernos fazem o mesmo: eles basicamente usam algoritmos semelhantes ao JPEG para compactar um quadro, bloco por bloco. Portanto, você não armazena mais bits por pixel, mas bits por macrobloco, porque "resume" os pixels em grupos maiores. Ao resumi-los, o algoritmo também descartará informações que não são visíveis ao olho humano - é aqui que você pode reduzir a maior parte da taxa de bits. Ele funciona quantizando os dados. Isso reterá frequências que são mais perceptíveis e "jogará fora" aquelas que não podemos ver. O fator de quantificação é expresso como "QP" na maioria dos codecs e é o principal botão de controle da qualidade.
Agora você pode avançar e prever macroblocos a partir de macroblocos que foram codificados anteriormente na mesma imagem. Isso é chamado de previsão interna . Por exemplo, uma parte de uma parede cinza já estava codificada no canto superior esquerdo do quadro, para que possamos usar esse macrobloco no mesmo quadro novamente, por exemplo, para o macrobloco ao lado dele. Vamos apenas armazenar a diferença que tinha na anterior e salvar os dados. Dessa forma, não precisamos codificar dois macroblocos muito parecidos entre si.
Por que a taxa de bits muda para o mesmo tamanho de imagem? Bem, algumas imagens são mais fáceis de codificar do que outras. Quanto maior a atividade espacial, mais você precisará codificar. Texturas suaves ocupam menos bits do que as detalhadas. O mesmo vale para a previsão intra: uma moldura de uma parede cinza permitirá que você use um macrobloco para prever todas as outras, enquanto uma moldura de água corrente pode não funcionar tão bem.
Redundância temporal
Isso existe porque um quadro após outro quadro é provavelmente muito semelhante ao seu antecessor. Principalmente, apenas um pouquinho muda, e não faria sentido codificá-lo completamente. O que os codificadores de vídeo fazem é apenas codificar a diferença entre dois quadros subsequentes, assim como eles podem fazer com macroblocos.
Tomando um exemplo do artigo da Wikipedia sobre compensação de movimento , digamos que este seja o seu quadro original:
Então a diferença para o próximo quadro é exatamente isso:
O codificador agora armazena apenas as diferenças reais , não os valores pixel por pixel. É por isso que os bits usados para cada quadro não são os mesmos todas as vezes. Esses quadros de "diferença" dependem de um quadro totalmente codificado e é por isso que existem pelo menos dois tipos de quadros para codecs modernos:
- Quadros I (também conhecidos como quadros-chave) - esses são os totalmente codificados
- Quadros P - estes são os que armazenam a diferença
Ocasionalmente, é necessário inserir quadros I em um vídeo. A taxa de bits real depende também do número de quadros I utilizados. Além disso, quanto maior a diferença de movimento entre dois quadros subsequentes, mais o codificador precisa armazenar. Um vídeo em movimento "nada" será mais fácil de codificar do que um vídeo esportivo e usará menos bits por quadro.