2011/09/07

O que é o Rolling Shutter?

Com a proliferação das câmaras nos dispositivos móveis, e a passagem dos sensores CCD para CMOS, surgem também uns curiosos fenómenos de que hoje vos venho falar.


Para quem não sabe, um sensor de imagem CMOS funciona - genericamente falando - de forma inversa à de um vulgar LCD. Existe um pequeno chip, cheio de pixeis, que capturam e medem a quantidade de luz recebida durante um certo período de tempo (chamado o tempo de exposição).


Esses dados são depois lidos, sequencialmente, por um processador que se encarrega de os transformar numa imagem (depois de aplicadas coisas como a correcção de cor, etc.)


Ora, acontece que estas coisas não são feitas de forma instantânea. Varrer milhões de pixeis demora tempo!
Para terem uma ideia, se uma imagem Full HD 1080p representa 2 milhões de pixeis, que têm que ser lidos a cada 33ms, se estivermos a falar de uma gravação a 30fps - num total de quase 60MB/s de transferência entre o sensor CMOS e o respectivo sistema de processamento. (Isto assumindo que se usa um único sensor FullHD com um padrão Bayer para as cores - algo que vos poderei explicar noutro dia - porque se for uma câmara profissional com 3 sensores... temos que triplicar estes valores).

E se em vez de uma câmara FullHD falarmos de câmaras com sensores de 10 ou 20 Megapixeis, já começam a ver a necessidade de sistemas bem avançados para conseguir transferir e processar tal quantidade de dados em tempo "útil."


Comecemos então pelo sistema que me parece mais fácil de explicar e de entenderem. Um sistema que infelizmente não é usado na maiora das câmaras que utilizamos e se encontra normalmente reservado a câmaras para uso profissional: o global shutter.

O Global Shutter


Como se torna fácil entender, para captarmos uma imagem. O processo  lógico será activar o sensor, esperar que este capture uma quantidade suficiente de luz (a exposição), parar aí, e transferir o resultado final, linha após linha, para o "computador". De seguida repete-se o processo para capturar a imagem seguinte, e assim sucessivamente.

Este sistema garante que todos os pixeis captam a mesma imagem precisamente ao mesmo tempo, garantindo imagens tal e qual elas aparecem na realidade - desde que não se mexam durante período de exposição, senão ficarão "tremidas".

Infelizmente, este sistema limita também o framerate máximo possível, que passa a estar limitado pela velocidade com que a imagem pode ser transferida para fora do sensor; e pior ainda, obriga a que o próprio CMOS tenha que ter um buffer temporário para cada pixel, que mantenha o estado da leitura (o que aumenta a complexidade e custo do chip.)

Foi por isso mesmo que outra técnica se tornou popular, permitindo criar chips mais baratos - mesmo que à custa dos tais "fenómenos curiosos".


O Rolling Shutter


Para permitir a criação de chips mais baratos, que dispensassem o tal buffer temporário para toda a imagem e que pudessem funcionar em situações de menor luminosidade, a solução encontrada foi um método que permite que os chips recebam luz durante mais tempo. E assim nasceu o rolling shutter, um sistema no qual cada linha pode ser exposta à luz de forma sequencial assim que acaba de ser lida.

Isto faz com que, enquanto uma linha está a ser lida e transferida, as restantes continuam a poder captar luz, funcionando de forma desfasada mas progressivamente.

Poderá parecer a solução ideal, mas... apesar de permitir aumentar a sensibilidade e o tempo de exposição à luz, este sistema faz com que a imagem captada não seja um "momento parado" no tempo, mas sim um momento onde o topo da imagem representa um instante diferente daquele que foi captado na última linha.

Se isto se torna imperceptível em situações normais... as coisas mudam de figura assim que se aponta a câmara para objectos em rápido movimento:


Este fenómeno revela-se não só em imagens, como também em vídeo, já que o processo de captura de cada frame é exactamente o mesmo.


Certamente já terão dado por ele caso tirem fotos em que deslocam a câmara com alguma velocidade, fazendo com que coisas verticais pareçam inclinadas, objectos pareçam distorcidos, ou até que a imagem pareça "cortada ao meio", devido a flashes (ou relâmpagos) que afectem apenas parte da imagem.


Há sistemas de pós-processamento que podem ajudar a minimizar o efeito de rolling shutter, mas... o ideal seria que os fabricantes passassem a usar sensores CMOS com global shutter, que garantissem imagens livres de distorções em todos os casos (em vez de se meterem em corridas pelo número máximo de megapixeis, que de pouco ou nada servem quando se tornam inutilizáveis sempre que a luz escasseia.)


Espero que este artigo vos tenha elucidade, e se quiserem ficar a saber porque motivo, no coração da vossa câmara está afinal um sensor monocromático, não percam: o que é um filtro Bayer?

[Artigo originalmente publicado no Aberto até de Madrugada]

1 comentário:

[pub]