Преобразование растрового изображения с использованием графического процессора - PullRequest
1 голос
/ 14 октября 2010

Я не знаю, правильный ли это форум. В любом случае, вот в чем вопрос. В одном из наших приложений мы отображаем медицинские изображения, а поверх них генерируется некоторый алгоритм сгенерированного растрового изображения. Настоящее растровое изображение - это 16-битное растровое изображение с серой шкалой. Исходя из этого, мы генерируем цветное растровое изображение на основе справочной таблицы, например,

(0-100)->green 
(100-200)->blue
(200>above)->red

Дисплей работает хорошо и хорошо с маленькими изображениями 256x256. Но когда область отображения становится большой, скажем, 1024x1024, преобразование растрового изображения из серой шкалы в цвет занимает некоторое время, и взаимодействия перестают быть плавными. В последнее время я много слышал о программировании GPU общего назначения. В нашем развертывании мы имеем высокопроизводительную (Nvidia QuadroFX) видеокарту.

Наше приложение построено с использованием .Net / C #, если требуется, я тоже могу добавить немного C ++ / CLI. Теперь мой вопрос: может ли это преобразование растрового изображения быть выгружено в графический процессор? Где искать дальнейшее чтение?

1 Ответ

1 голос
/ 14 октября 2010

Да - и так как вы (по-видимому) отображаете растровое изображение, вам не нужно идти по маршруту GPGPU (например, OpenCL или CUDA).Вы можете использовать программируемый шейдер для него - и если я пойму, что вы говорите, это будет довольно просто.

Что касается написания шейдера, это будет зависеть (в основном) о том, как вы делаете остальную часть вашего рисунка.Просто для наглядного примера, если вы уже используете WPF для рисования, вы, вероятно, захотите использовать шейдер HLSL (WPF довольно напрямую поддерживает пиксельные шейдеры).

Вероятно, стоит также отметить, что если выПришлось поддерживать старое аппаратное обеспечение, например, поиск таблиц - это то, с чем вы могли бы справиться довольно легко на GPU, даже без программируемых шейдеров.Пока вам требуется только поддержка новейшего оборудования, шейдер, вероятно, будет проще.

...