Я работаю над приложением для обработки изображений для iOS, и один из различных этапов моего приложения - это вставка/распознавание цвета на основе вектора.iOS CGImageRef Pixel Shader
Теперь я написал код, который может на пиксель определять постерилизованный цвет, но, по-моему, через каждый пиксель в изображении будет очень сложно процессор, если iOS. Поэтому мне было интересно, можно ли вместо этого использовать графический процессор;
Я хотел бы создать своего рода «пиксельный шейдер», который использует OpenGL-ES или какую-либо другую технологию рендеринга для обработки и постеризации изображения быстро. Я не знаю, с чего начать (я написал простые шейдеры для Unity3D, но никогда не делал базового программирования для них).
Может ли кто-нибудь указать мне правильное направление?
В какой-то момент мне нужно проверить, где кроссовер времени обработки находится на этом как функция входных данных, особенно если вы учитываете Ускорение как средство распараллеливания некоторых операций с ЦП. Я думаю, что я вижу общую победу на iOS 4.0 при обработке кадров 640x480, исходящих из CGImage или UIImage на графическом процессоре, а также оптимизированных функций, связанных с процессором, но для этого мне нужно создать некоторые жесткие цифры. Преобразование в и из основных типов графических карт намного медленнее, чем загрузка текстур, так что это скорее узкое место для меня. –
Мои подпрограммы процессора никогда не доходили до Core Graphics; они были для входа в живую камеру, поэтому работали непосредственно на 'CVPixelBuffer', как было возвращено камерой. У меня были быстрые вопросы и ответы с Аланом Шаффером на последнем WWDC на Tour, и он, похоже, признал, что, несмотря на то, что распознавание лица iOS 5 требует взаимодействия с GPU, никакой публичный API не будет подходящим для переоценки его из-за дополнительных затрат. В то время я не знал о новом механизме, связанном с Core Video, который эффективно дает вам прямой доступ к текстурной памяти, поэтому он не обсуждался. – Tommy
Да, работа с рамками камеры в OpenGL ES может быть намного быстрее, чем что-либо связанное с процессором. Для простой регулировки тона сепии на изображении 640x480 я мог бы запустить это от захвата до отображения через 6 мс на iPhone 4 (2,5 мс с кешами текстур iOS 5.0), где ничто на CPU не может приблизиться. Что касается распознавания лиц, то эта реализация полностью на GPU OpenGL ES 2.0 очень интересна: http://fileadmin.cs.lth.se/graphics/theses/projects/facerecognition/. В какой-то момент я хотел бы попробовать. –