3 votes

vImage vs. vDSP d'Accelerate

J'essaie d'utiliser le framework Accelerate sur iOS pour contourner le fait que Core Image sur iOS ne supporte pas les filtres/kernels personnalisés. Je suis en train de développer un filtre de détection des bords utilisant deux convolutions avec un module Noyau de Sobel mais je commence par un simple flou gaussien pour m'habituer. Je sais que vImage est orienté vers la manipulation d'images en tant que matrices et que vDSP se concentre sur le traitement des signaux numériques en utilisant les transformées de Fourier. Mais bien que j'aie commencé à utiliser les fonctions de vImage (vImageConvolve_XXXX, etc.), j'entends beaucoup de gens parler de l'utilisation des fonctions de vDSP (vDSP_conv, vDSP_imgfir, etc.) pour faire des choses comme des convolutions. Cela m'amène à la question suivante : quand dois-je utiliser l'une plutôt que l'autre ? Quelles sont les différences entre eux en ce qui concerne les opérations de convolution ? J'ai cherché partout mais je n'ai pas trouvé de réponse claire. Quelqu'un peut-il m'éclairer ou m'orienter dans la bonne direction ?

Merci !

2voto

Stephen Canon Points 58003

Si vImage fournit l'opération dont vous avez besoin, il est généralement plus simple de l'utiliser. vImage fait du blocage de cache et du threading pour vous, vDSP ne le fait pas. vImage fournit des opérations sur les formats entrelacés et entiers, qui sont souvent utiles pour le traitement d'images.

2voto

La dernière fois que j'ai expérimenté, aucun de ces cadres n'a tiré parti de la séparabilité des noyaux, qui offre une solution de rechange à la séparation des noyaux. énorme un gain de performance lors de la convolution dans le domaine spatial - un gain de performance bien plus important que les instructions vectorielles ne pourront jamais vous apporter. Le noyau de Sobel, en particulier, est séparable. vDSP ou vImage (au lieu de dire OpenCV ), veillez à séparer vous-même le noyau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X