Você provavelmente já sabe que o YouTube anunciou, no final de junho, suporte
para vídeos a 48 e até 60 fps (aparentemente disponíveis somente nas resoluções
de 720 e 1080p), o que significa o dobro da taxa de frames (frame
rate) com a qual estamos acostumados. Esta notícia é boa principalmente
para os vídeos de gameplay,
que poderão finalmente oferecer ao espectador uma experiência
visual mais próxima à do jogador.
A demanda surgiu com esta geração de consoles, que terão games rodando a 60 fps, e shooters intensos como Titanfall serão
melhor aproveitados nos vídeos já que os movimentos ficarão mais fluidos. “Ok,
entendi, então se oYouTube vai ter vídeos a 60 fps por causa da
nova geração de consoles, porque no título você falou que ele é uma porcaria
pra retrogaming?” Bom,
simplesmente pelo fato de que mesmo os consoles e PCs mais antigos já
rodavam os jogos a 60 fps! E os vídeos do YouTube,
desde 2005 (ano de lançamento), no entanto, só rodavam a 30 fps.
Vou tentar explicar um pouco
Antes de mais nada, embora os consoles mais modernos prometam 60 fps, qualquer
valor que fique entre 30 e 60 fps é tido como aceitável (abaixo de 30 fps o jogo parece meio
travado, já que o limite mínimo pro nosso cérebro reconhecer movimento é 24
fps). Mas isto é assunto pra outro post.
Como eu já comentei, os consoles e PCs mais antigos (leia-se Atari, NES,Commodore
64, ZX
Spectrum etc.) rodavam games a [50 ou] 60 fps. Quando os consoles
começaram a rodar jogos em 3D, em meados da década de 1990, a demanda por hardware deu um salto enorme em relação aos
aparelhos das gerações 8 bit e 16 bit que rodavam jogos em 2D, e por isso se
tornou difícil manter uma alta taxa de frames – então nos acostumamos a jogar com 30
fps.
O YouTube foi
criado com frame
rate de 30 fps (lembre-se que o
ano de 2005 estava no meio de uma overdose de câmeras digitais e primeiros
celulares com filmadora, não havia uma preocupação real com especificações
técnicas, além das velocidades reduzidas de internet). Só que como os consoles e
PCs antigos rodam os jogos a 60 fps, quando você assiste um vídeo com a metade
do frame
rate, a coisa fica ruim e sem fluidez.
Para entender melhor o frame
rate e resoluções dos consoles e
computadores antigos
Todo console antigo que foi lançado antes do Mega
Drive e Super
Nintendo, quase sem exceções, dava saída de vídeo a 60 fps para sistemas
NTSC (padrão aqui no Brasil) ou 50 fps para PAL (padrão na Europa). As
resoluções eram parecidas: o Atari
2600 tinha resolução de 160×192,
o Master
System de 256×192 e o NES de 256×240. As taxas de frame dos
computadores eram variáveis não por país, mas por cadência de monitor, e iam de
60, 70, 72, 75 a 85 Hz entrelaçados.
O Mega
Drive e o SNES até
ofereciam suporte pra alta resolução (480p) no modo entrelaçado* (significa que
a TV intercala as linhas da tela mostrando primeiro as ímpares e depois as
pares), mas a maioria dos jogos optava pela resolução comum (240p) porque assim
era possível rodar com taxa de framesmaior
(sem necessidade de entrelaçamento). Até os portáteis como Gameboy, Game
Gear,Nomad e Gameboy
Advance rodavam os jogos a 60
fps.
Foi só nos consoles mais modernos como PlayStation, Nintendo
64 e Saturn que
os modos entrelaçados começaram a ter seu uso significativo, e se tornaram
populares de verdade com o PlayStation
2 – isto significa que estes consoles, por mais que rodassem com taxa de frame mais alta, por ser entrelaçado, a
percepção dos frames é reduzida pela metade. A maioria dos
jogos deDreamcast, GameCube e Xbox,
no entanto, podiam rodar numa resolução de 480p no modo progressive
scan (em que cada frame é mostrado por inteiro, ou seja, sem
entrelaçamento) com o uso de cabos de vídeo componente. Poucos jogos de PS2 tinham essa opção.
E por que no YouTube os vídeos de retrogaming ficam ruins?
Os personagens Billy e Tommy Lee desaparecem diversas vezes… este é o sprite
flickering.
Além da taxa de frames, comentei que os consoles e computadores antigos
entregavam uma variedade grande de resoluções (em pixels)
e o YouTube não
era – e ainda não é – capaz de suprir a necessidade para tantas resoluções
diferentes. Hoje os games rodam a 720p e 1080p e o YouTube também, então facilita muito. Pode
parecer bobagem, já que osgames antigos tinham resoluções muito baixas
mesmo para os padrões de uma década atrás, mas na hora de assistir a um vídeo de gameplay que ofereça uma boa experiência
visual, com boa resolução e movimentos fluidos, tudo que eu falei até agora faz
diferença.
Além disso, se você posta um vídeo no YouTube,
não importa a maneira que ele foi capturado, o site irá convertê-lo para 30 fps,
excluindo os frames extras (caso o vídeo original rode a
mais do que 30 fps) ou interpolando dois ou maisframes para criar um único frame (caso rode a menos do que 30 fps).
Isso destrói ainda mais a fluidez dos movimentos nas gravações dos games.
Os frames excluídos podem, consequentemente,
gerar sprite
flickering, que é quando a imagem do personagem e/ou cenário fica
“piscando”, literalmente aparecendo e sumindo, coisa que é obviamente
imperceptível quando se está jogando.
Embora o YouTube possua
agora suporte a 60 fps e, eu tenho certeza de que isso não vale para vídeos em
baixa resolução, então ainda temos problemas de fluidez e flicker. “Ué,
mas então porque você não vê os vídeos de retrogamingnas
resoluções mais altas?” Bom,
eis o motivo:
Resolução original (esq.) e vídeo do YouTube depois da conversão (dir.). Perceba
que a imagem perde definição depois de sofrer escalonamento.
O problema é o algoritmo de dimensionamento. Mesmo que um vídeo tenha sido
capturado sem compressão (lossless),
o YouTube não tem a capacidade de apresentar
vídeos sem compressão, não importa quão pequenos eles sejam (e compressão
estraga a imagem em favor do tamanho em bytes).
O YouTube também não oferece configurações de
“tamanho exato” na janela do vídeo, além de ela ter um tamanho mínimo de
640×350, que é maior do que o maior dos exemplos que eu dei acima, o NES com 256×240. Os vídeos menores do que
640×350 (e isso inclui literalmente qualquer gameplay de console antigo) são esticados. O
escalonamento do vídeo utiliza bilinear
sampling ou bicubic
sampling, então a imagem que estava bem definida fica difusa.
Considerando jogos 8 bit, por exemplo, que nossos olhos conseguem reconhecer
cada pixel isoladamente, uma imagem difusa
estraga toda a experiência pois falta nitidez.
No método Bilinear (esq.) o pixel reconhece a cor do
vizinho e cria um terceiro pixel com a média das duas cores; no método Bicubic (dir.) o pixel reconhece não só a cor
do vizinho, mas a do pixel seguinte, determinando qual a melhor cor a ser usada.
Quando um vídeo é capturado perfeitamente – o que significa que ele é pixel
perfect, sem interpolações, sem compressão e na resolução nativa – ele
oferece a mesma
experiência visual do que
quando o game é jogado (você assiste o que o jogador
assiste). Para vídeos de gameplay perfeitos ainda é necessário buscar em
sites específicos. Existem modos de captura – seja viahardware ou via emulador – que permitem a
melhor qualidade possível no vídeo de retrogaming,
como por exemplo usando o DOSBox,
que não possui filtros, escalonamento, anti-aliasing e etc., e é altamente preciso.
Mas o YouTube é o maior site de vídeos da internet e
janela para uma imensidão de vídeos e canais relacionados a games que, inclusive, são fonte de renda
para alguns youtubers,
então ainda torço para que a demanda por qualidade de vídeos de retrogaming seja grande o suficiente para que oYouTube trabalhe para atender.
*O modo entrelaçado não é difícil de entender se você considerar o seguinte:
imagine 60 frames por segundo. Quando você tem o modo
normal e oprogressive
scan você tem de fato 60 imagens piscando
na tela a cada segundo. No modo entrelaçado, você também tem 60 frames por segundo, mas a diferença é que,
pelo fato de a TV mostrar primeiro as linhas ímpares e depois as linhas pares (e
consequentemente só metade da imagem), somente
30 imagens completas são
construídos naquele mesmo segundo.