У меня есть приложение, в котором я получаю потоковые данные через Bluetooth и хочу отображать потоковые данные в виде изображения. Данные представляют собой просто значения RGB (0–255 для RGB). Он отлично работает на C #, но у меня проблемы с тем, чтобы сделать то же самое на iphone. В C # это реализовано в виде очереди. Когда поступает новая строка данных, я удаляю из очереди пиксели на одну строку, а затем помещаю в очередь новую строку пикселей. Затем я записываю очередь в массив пикселей изображения. Казалось, что это будет быстрее, чем читать все изображение, сдвигать его, добавлять новые данные и затем записывать массив пикселей. В C # есть метод, который позволяет мне преобразовывать очередь в массив, поскольку очередь не имеет непрерывной памяти. У меня вопрос: есть ли более быстрый способ сделать это, чем вручную заполнить массив из очереди? Или есть более быстрый способ, чем использование очереди? Изображение нужно только сместить вниз на X пикселей, а затем записать X новых пикселей в пустое место на изображении. В любом случае я не могу понять, как преобразовать очередь в массив, поскольку единственный способ получить доступ к чему-либо, кроме первого значения, - это снять значения из очереди. Какие-либо предложения?
Сдвиг пикселей изображения в объекте-c / объекте-с ++
comment
вы просите оптимизированную версию C # описанного вами шаблона или реализуете Objective C ++?
- person Till   schedule 13.04.2011
comment
Реализация target-c или objective-c ++.
- person Davido   schedule 13.04.2011
Ответы (1)
Узкое место на устройствах iOS будет заключаться не в преобразовании очереди в массив, а в передаче массива растровых изображений в память дисплея устройства (изображения или текстуры). Этот путь можно оптимизировать, используя мозаичный слой и обновляя только пиксели в конце конечных плиток. Затем вы можете прокрутить мозаичный слой внутри прокрутки, чтобы выровнять последние потоковые данные.
person
hotpaw2
schedule
12.04.2011
Я никогда раньше не использовал плиточные слои. У вас есть ссылки, которые показывают, как им пользоваться? На веб-сайте разработчика Apple есть два примера, но всегда полезно иметь больше.
- person Davido; 13.04.2011
Если вы хотите использовать OpenGL: на последнем WWDC в докладе GL обсуждались новые функции, доступные для совместного использования памяти с графическим процессором ... могут помочь, если вы хотите еще большей производительности.
- person nielsbot; 31.10.2012