Tecnologia para não tecnologistas — parte 5

Olá!

Finalizando essa série sobre conceitos introdutórios sobre computação, hoje iremos falar de audiovisual como um todo.

Se você chegou agora, os temas anteriores foram sobre fundamentos, engenharia vs arquitetura, sinais digitais e cloud computing, caso tenha curiosidade em saber.

Começando do básico: o que é uma imagem do ponto de vista de um computador?

A resposta para isso está na matemática. Mas calma que não é nada de outro mundo não.

Só revisando rapidamente o conceito principal: matrizes. Que nada mais são um conjunto de linhas e colunas que contém números em cada uma das posições. Ou, se ficar melhor, pense em uma tabela ou uma planilha de excel.

exemplo de matriz em notação matemática
tabelas são matrizes no final das contas

Agora, pense que em cada célula/elemento da matriz, eu consigo colocar um número usando a representação de cores RGB (Red, Green, Blue), no qual cada número de 0 a 255 identifica a intensidade de cada cor (vermelho, verde e azul) de forma posicional. Há também o RGBA (que o canal extra chamado de Alfa adiciona transparência), mas vamos nos ater ao RGB comum para fins de simplificação.

Ou seja, para branco, temos RGB(255, 255, 255), pois branco é a soma de todas as cores. Para preto, temos RGB(0,0,0), pois é a ausência de cores. Para vermelho, temos o máximo em vermelho e o restante sem cor, ou seja RGB(255,0,0). E por ai vai, totalizando 16.581.375 cores possíveis (255 x 255 x 255) de serem representadas por esse método.

Caso você queira brincar um pouco mais com isso para fixar melhor, pode usar um gerador de RGB, como esse.

Agora, só troque o RGB por uma representação em preto e branco no qual 0 é ausência de cor e 1 é branco, temos uma imagem em preto e branco como essa:

Exemplo de imagem feita a partir de uma matriz 35x35 com zeros e uns

Para representar imagens coloridas nessa matriz, é a mesma coisa, só troque o 0 e 1 na matriz por RGB(0,0,0) e RGB(255,255,255), que obtemos o mesmo efeito usando uma representação que permite cores.

Pronto, agora você entendeu como todos os softwares que lidam com imagens funcionam!

No final, cada pequeno ponto dentro da matriz é a menor unidade possível de se trabalhar com imagens em contexto computacionais, na qual é chamado de pixel.

Para entendermos o audio, vamos começar com uma definição básica:

Som é a propagação de uma frente de compressão mecânica ou onda mecânica; é uma onda longitudinal, que se propaga de forma circuncêntrica, apenas em meios materiais, como os sólidos, líquidos ou gasosos. (Wikipedia)

Vamos tentar entender melhor começando com o processo de captação de áudio.

Para facilitar, vamos imaginar o som como variações rápidas na pressão do ar. Um microfone nada mais é que um sensor que reage a essas variações. Com materiais específicos usados no sensor, é possível obter uma leitura baseada no quanto bem a condução elétrica ocorre nesses materiais. very fancy stuff.

A parte relacionado a eletrônica está fora do escopo desse artigo, por ser algo que foge da minha área de expertise.

Se eu tenho uma forma de captar essa condução elétrica em forma de números, eu tenho algum tipo de sinal analógico que o computador consegue trabalhar (consulte a parte 3 dessa série de artigos para entender melhor sinais digitais).

Agora basta converter para sinais digitais. Ou seja, se temos sinais digitais, temos como armazenar ou processar usando um computador.

Para representar o som, basta ter uma sequência de números, o que em uma representação gráfica ficaria algo assim:

O som representado em ondas (waveforms)

Cada pontinho preto é um número. Olhando de perto, os primeiros 7 pontos dessa onda seriam algo como: 0.51, 0.89, 0.89, 0.52, 0.3, -0.3, -0,5 e assim por diante.

Para fazer o computador tocar o som, basta fazer o processo inverso da captação. Ou seja, transformar esses números digitais em sinais analógicos e mandar essas sinais para uma dispositivo capaz de usar esses sinais de uma forma que consiga gerar as variações rápidas na pressão do ar em diferentes frequências. Como… um alto falante.

Apesar da física envolvida, no final, é tudo matemática mesmo.

E o que filmes e games tem em comum?

Em se tratando de computadores, não existe o movimento em si, apenas a ilusão de movimento.

No contexto de vídeo, chamamos de quadro — ou frame, em inglês, as imagens geradas por um computador.

Ao gerar um frame com pequenas variações durante intervalos pequenos de tempo (como um segundo, por exemplo), você tem a ilusão de uma imagem contínua pelo olho humano.

Você já deve ter ouvido falar na expressão frames per second, certo? É daqui que veio.

60fps vs 24 fps

A maioria das pessoas quase não percebe a diferença entre 60 e 30 fps, por exemplo. Se você ficou curioso, dá uma olhada nesse vídeo aqui.

Um filme, para um computador, nada mais é que um conjunto de matrizes geradas rapidamente uma após a outra sincronizadas com um conjunto de números que irão virar algo audível e visível para um ser humano.

Tudo é feito para enganar seus olhos e ouvidos de uma forma que faça sentido para você.

Para um jogo, a ideia é a mesma, porém, durante o processamento dessas sincronizações entre imagem e som, ocorre a interpretação dos comandos do jogador por parte do computador, o que, obviamente consome mais recursos computacionais no processo. Além disso, ocorre o processamento dos efeitos gráficos e demais cálculos de geometria que consomem bastante poder de processamento.

É por isso que existe hardware dedicado (placas de vídeo, popularmente conhecidas como GPU) para que você consiga obter uma boa experiência. De certa forma, no fim das contas, qualquer computador consegue gerar uma imagem em 3D do seu jogo favorito, porém, a diferença entre um filme adequado para assistir e um game jogável é a quantidade de fps que esse computador consegue gerar. É horrível jogar ou assistir algo rodando a 1 fps, veja por si mesmo. Aqui cabe uma curiosidade: há quem diga que acima de 60 fps a diferença se torna imperceptível.

Essas particularidades nos jogos explicam porque alguns computadores até rodam vídeos em alta definição mas não rodam jogos adequadamente. Tudo se resume a capacidade de alguns computadores de executar uma quantidade de cálculos especializados para jogos em um tempo razoável no final das contas.

Com isso dito, finalizamos essa série de conceitos básicos para não tecnologistas. Espero que tenham aprendido algo no processo =)

Até!

--

--

Escritor-Desenvolvedor

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store