2013/08/03

SnappyCam tira Fotos de 8MP a 20fps no iPhone


A app SnappyCam poderá já ser conhecida de muitos utilizadores de iPhone, por ser uma das apps que é capaz de tirar fotografias mais rapidamente que a app nativa (até 20fps). Só que para conseguir isso, a resolução era reduzida para uns modestos 3MP, que limitava um pouco a sua utilidade. Agora, o seu criador diz ter conseguido resolver o problema, e que usando a potência do CPU do iPhone 5, a nova versão pode agora tirar até 20fps à resolução total de 8MP.

Segundo John Papandriopoulos, o milagre foi conseguido à custa de "reinventar todo o processo de captura, buffering e compressão"... mas desculpem-me que vos diga, a mim parece-me ser da mais pura "banha da cobra". A questão é que tenho sérias dúvidas que o hardware da câmara do iPhone tenha sequer a capacidade de captar imagens de 8MP a 20fps, coisa que o colocaria bem perto das necessidades de poder gravar vídeo UltraHD 4K!

Ora vamos a contas: 3264x2448 pixeis x 20 fps = 154MB/s (e estou a assumir transferência de apenas 1 byte por pixel, dando-lhe o benefício da dúvida de que os dados da câmara viessem em raw, com o debayering a ser feito posteriormente - mas sendo algo que, mais tarde ou mais cedo, triplicaria os requisitos de memória para os 462MB/s.

Para comparação, a gravação de vídeo FullHD a 30fps pode ser conseguida apenas com 59MB/s de transferência do sensor - mas tem direito à ajuda do processamento especial por hardware dedicado para acelerar o codec de compressão


Se o tal Papandriopoulos tivesse conseguido arranjar forma de transferir tal quantidade de dados do sensor, então conseguiria facilmente fazer com que o iPhone 5 gravasse vídeo Full HD a 60fps (e ainda sobrava para tirar umas fotos em resolução total enquanto gravava vídeo). Voltando à realidade, bastará olhar para as fotos que ele disponibiliza como exemplo no seu site para ver que aquilo não tem - nem de perto nem de longe - a nitidez que se obtém nas fotos a 8MP do iPhone 5.

Por muito que fosse bom imaginar que uma app tivesse conseguido a proeza de tirar fotos de 8MP a 20fps, o mais certo é que a "inovação revolucionária" que ele inventou não passa de um sistema de upsampling/redimensionamento das fotos, que as faz aumentar de tamanho mas sem melhoria da qualidade efectiva. (Melhor seria que tivesse investido o seu tempo a implementar um processamento de super-resolution, que à custa de várias fotos de resolução inferior sempre consegue ir buscar um pouco mais de detalhe e criar efectivamente uma imagem de resolução superior às originais). Mas, até prova em contrário, a minha posição é altamente céptica e de total desconfiança quanto a esta app - e todas as outras que fizerem promessas idênticas.

Mas, caso acreditem que senhor Papandriopoulos é realmente um visionário que vai revolucionar toda a indústria da captação de imagem e vídeo, podem comprar a sua SnappyCam na App Store por 0,89€ - e depois digam-me que tal foram os resultados: ou melhor ainda, publiquem uma das fotos tiradas a 20fps com o SnappyCam, e outra tirada com a app nativa... para compararmos os "8MP".

2 comentários:

  1. Estás errado logo no inicio porque não é um byte por pixel de cor.

    ResponderEliminar
  2. Um sensor CMOS (dos mais habituais) nao tem 3 sensores por pixel. Usa um filtro bayer onde cada pixel recebe uma determinada cor (RGB) sendo depois a imagem final processada com as cores interpoladas.

    Dai que, se por algum motivo se estivesse a aceder directamente aos dados raw vindos do sensor, seria apenas 1byte/pixel.

    ResponderEliminar