Como implementar filtros de imagem rápidos na plataforma iOS

Estou trabalhando no aplicativo iOS em que o usuário pode aplicar um determinado conjunto de filtros de fotos. Cada filtro é basicamente um conjunto de ações do Photoshop com parâmetros específicos. Essas ações são:

Ajuste de níveisBrilho contrastHue / Saturation Sobreposição única e múltipla

Repeti todas essas ações no meu código usando expressões aritméticas percorrendo todos os pixels da imagem. Mas quando executo meu aplicativo no iPhone 4, cada filtro leva de 3 a 4 segundos para ser aplicado, o que leva um tempo para o usuário aguardar. O tamanho da imagem é 640 x 640 px, que é @ 2x do meu tamanho de exibição, porque é exibido na tela Retina. Descobri que meu principal problema são as modificações de níveis que estão chamando a função pow () C cada vez que preciso ajustar a gama. Estou usando flutuadores não duplos, é claro, porque ARMv6 e ARMv7 são lentos com duplos. Tentou ativar e desativar o Thumb e obteve o mesmo resultad

Exemplo do filtro mais simples do meu aplicativo, que é executado muito rápido (2 segundos). Os outros filtros incluem mais expressões e chamadas pow (), tornando-os lento

https: //gist.github.com/115676

Vi algumas soluções que estão usando transformações de matriz do Accelerate Framework vDSP para rápidas modificações de imagem. Eu também vi soluções OpenGL ES. Não tenho certeza de que eles sejam capazes das minhas necessidades. Mas provavelmente é apenas uma questão de traduzir meu conjunto de alterações em uma boa matriz de convolução?

Qualquer conselho seria úti

Obrigado
Andrey.

questionAnswers(6)

yourAnswerToTheQuestion