Maintenant que l'Image principale a été sur iOS pendant un certain temps, on peut parler de certaines données de performance. J'ai créé un test d'application dans le cadre de l'essai pour mon GPUImage cadre, et dressé le portrait de la performance brute du PROCESSEUR à base de filtres, de Base de filtres d'Image, et GPUImage filtres avec des flux vidéo en direct. Les points suivants ont été les temps (en millisecondes) ont, appliquer un filtre gamma sur une 640x480 image de la vidéo de la la caméra de l'iPhone (pour les deux différents modèles de matériel de course de deux différentes versions de système d'exploitation):
iPhone 4 (iOS 5) | iPhone 4S (iOS 6)
------------------------------------------------
CPU 458 ms (2.2 FPS) 183 ms (5.5 FPS)
Core Image 106 ms (6.7 FPS) 8.2 ms (122 FPS)
GPUImage 2.5 ms (400 FPS) 1.8 ms (555 FPS)
De Base de l'Image, cela se traduit par un maximum de 9,4 FPS pour un simple filtre gamma sur l'iPhone 4, mais bien plus de 60 FPS pour la même sur un iPhone 4S. C'est le plus simple de l'Image principale du filtre, vous pouvez mettre en place, de sorte que les performances vont certainement varier avec des opérations plus complexes. Cela semble indiquer que l'Image principale ne peut pas faire vivre de traitement assez rapide pour correspondre à la la caméra de l'iPhone de taux sur l'iPhone 4 sous iOS 5, mais à partir de iOS 6, il traite des vidéos de plus de suffisamment rapide pour faire vivre le filtrage sur l'iPhone 4S et au-dessus.
La source de ces critères peut être trouvé dans mon dépôt GitHub), si vous souhaitez voir où j'ai obtenu ces chiffres de.
J'ai mis à jour cette réponse de mon original, qui a été trop critique de Base de l'Image de la performance. Le sépia filtre, j'ai été en utilisant comme base de comparaison n'était pas d'effectuer la même opération que la mienne, donc c'était une mauvaise référence. La performance de Base des filtres d'Image a également amélioré de façon significative dans iOS 6, qui a contribué à rendre plus que assez rapide pour traiter de la vidéo en direct sur l'iPhone 4S et jusqu'. Aussi, depuis, j'ai trouvé plusieurs cas, comme à grand rayon de flou, où l'Image de manière significative surpasse mon GPUImage cadre.
La réponse précédente, pour la postérité:
Comme avec n'importe quel de performance liés à la question, la réponse dépendra de la complexité de vos filtres, la taille de l'image filtrée, et les caractéristiques de performance de l'appareil que vous utilisez.
Parce que l'Image a été disponible pendant un certain temps sur le Mac, je peux vous au Cœur de l'Image Guide de Programmation comme une ressource pour l'apprentissage de la cadre. Je ne peux pas commenter sur l'iOS éléments spécifiques, compte tenu de la LDN, mais je vous recommande fortement de regarder la vidéo pour la WWDC 2011 Session 422 - Utilisation de Core Image sur iOS et Mac OS X.
Core Image (pour la plupart) utilise le GPU pour le traitement de l'image, de sorte que vous pourriez regarder à quelle vitesse OpenGL ES 2.0 shaders poignée de traitement de l'image sur les dispositifs existants. J'ai fait quelques travaux dans ce domaine récemment, et a constaté que l'iPhone 4 pourrait faire 60 FPS traitement à l'aide d'un simple shader sur la vidéo en temps réel sont nourris en à une résolution de 480 x 320. Vous pouvez télécharger mon exemple d'application et essayez de personnaliser le shader et / ou de l'entrée vidéo de taille pour déterminer si votre périphérique particulier peut gérer cette transformation à un framerate décent. Core Image peut ajouter un peu de surcharge, mais il a aussi quelques petits malins optimisation de la façon dont il organise des chaînes de filtres.
Le plus lent des appareils compatibles là serait l'iPhone 3G S et la 3ème génération de l'iPod touch, mais ils ne sont pas beaucoup plus lente que celle de l'iPhone 4. L'iPad 2 coups tout loin avec son énorme fragment de la puissance de traitement.