Доброго времени суток ! Подскажите может ли кто ни будь тыкнуть носом куда копат
От: Alitrix  
Дата: 10.03.20 03:45
Оценка:
Доброго времени суток !

Подскажите может ли кто ни будь тыкнуть носом куда копать по такой теме:
после копирования любого изображения в память GPU каким либо образом можно ли
выполнить например понижение качества, размера, цветности используя средства GPU ?
Re: Доброго времени суток ! Подскажите может ли кто ни будь тыкнуть носом куда к
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.03.20 06:47
Оценка:
Здравствуйте, Alitrix, Вы писали:

A>после копирования любого изображения в память GPU каким либо образом можно ли

A>выполнить например понижение качества, размера, цветности используя средства GPU ?

Если мы говорим об абстрактном GPU в вакууме, то лучше на OpenGL шейдерах. Если GPU на десктопе, то лучше взять OpenCL. Если исключительно Nvidia, то CUDA. Если MacOS, то там, вроде, предпочтительнее Metal.
Если известно больше конкретики о задачах, то можно найти готовую библиотеку.
Re: Доброго времени суток ! Подскажите может ли кто ни будь тыкнуть носом куда к
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 10.03.20 14:16
Оценка:
Здравствуйте, Alitrix, Вы писали:

A>выполнить например понижение качества, размера, цветности используя средства GPU ?

Для цветнсти пикселя надо писать пиксельный шейдер. Самое лучшее упражнение это конвертация изображниея из одного колорспейса в другой испотзуя шейдер.
Sic luceat lux!
Re[2]: Доброго времени суток ! Подскажите может ли кто ни бу
От: Alitrix  
Дата: 11.03.20 05:47
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, Alitrix, Вы писали:


A>>после копирования любого изображения в память GPU каким либо образом можно ли

A>>выполнить например понижение качества, размера, цветности используя средства GPU ?

N>Если мы говорим об абстрактном GPU в вакууме, то лучше на OpenGL шейдерах. Если GPU на десктопе, то лучше взять OpenCL. Если исключительно Nvidia, то CUDA. Если MacOS, то там, вроде, предпочтительнее Metal.

N>Если известно больше конкретики о задачах, то можно найти готовую библиотеку.

Нет это не совсем абстракция, скажем так направление использование intel процессоров, с уже встроенными GPU,
использую SharpDX, загружаю массив скажем например 100 изображений, нужно понижение качества изображения например с 32 бит на 24 или ниже,
+ если прогонять данные изображение через обертку Image, то там есть возможность в % соотношение внесения ухудшений в изображения с использованием
EncoderParameter(System.Drawing.Imaging.Encoder.Quality, BitmapQty) что бы снизить вес изображения. Или аналог квантизации для изображения. Такой функционал нужен.

Нужно очень быстрое понижение качества изображений средствами GPU intel, возможно поняв механику буду пробовать реализовать
NVidia,AMD. Если такое будет возможно. Если есть пример или где то есть описание как делать данные операции средствами шейдеров,
тыкните. Хотя уже сам начну искать направление.

И большое спасибо за Направление ))) и за ответ !

P.S. ни чего готового не хочу искать...и всё что использовал готовое...что использовал в решении которое пишу, в итоге все было переписано
и как ни странно убрало из решение и утечки памяти и зажер CPU во многих случаях.
Так что я теперь в основном смотрю реализации только как схематичность и последовательность действий, но не взять даже открытый код
и внести в программу и успокоиться.
Отредактировано 11.03.2020 5:54 Alitrix . Предыдущая версия . Еще …
Отредактировано 11.03.2020 5:52 Alitrix . Предыдущая версия .
Re[3]: Доброго времени суток ! Подскажите может ли кто ни бу
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.03.20 06:45
Оценка:
Здравствуйте, Alitrix, Вы писали:

A>использую SharpDX, загружаю массив скажем например 100 изображений, нужно понижение качества изображения например с 32 бит на 24 или ниже,

A>+ если прогонять данные изображение через обертку Image, то там есть возможность в % соотношение внесения ухудшений в изображения с использованием
A>EncoderParameter(System.Drawing.Imaging.Encoder.Quality, BitmapQty) что бы снизить вес изображения. Или аналог квантизации для изображения. Такой функционал нужен.

Понятней не стало. Что за изображения, какое качество? Варианты ответа: на диске лежит 100 jpeg, я хочу их загрузить, поставить степень качестве сжатия поменьше, чтобы они занимали меньше места на диске, а потом сохранить обратно на диск.
Когда ты говоришь про 32 и 24 бита, то кажется, что ты хочешь убрать альфа-канал у картинок. Если они не сжатые и RGB, то конвертируй в YUV420.
Re[4]: Доброго времени суток ! Подскажите может ли кто ни бу
От: Alitrix  
Дата: 15.03.20 23:34
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, Alitrix, Вы писали:


A>>использую SharpDX, загружаю массив скажем например 100 изображений, нужно понижение качества изображения например с 32 бит на 24 или ниже,

A>>+ если прогонять данные изображение через обертку Image, то там есть возможность в % соотношение внесения ухудшений в изображения с использованием
A>>EncoderParameter(System.Drawing.Imaging.Encoder.Quality, BitmapQty) что бы снизить вес изображения. Или аналог квантизации для изображения. Такой функционал нужен.

N>Понятней не стало. Что за изображения, какое качество? Варианты ответа: на диске лежит 100 jpeg, я хочу их загрузить, поставить степень качестве сжатия поменьше, чтобы они занимали меньше места на диске, а потом сохранить обратно на диск.

N>Когда ты говоришь про 32 и 24 бита, то кажется, что ты хочешь убрать альфа-канал у картинок. Если они не сжатые и RGB, то конвертируй в YUV420.

Именно так, имеется 1000+ изображений 32, хочу понизить размер и качество за счет GPU аналога квантизации, или чего то подобного.
Как я понял из предыдущих сообщений нужно описать пиксельный шейдер который поможет загрузив в GPU снизить качество и соответственно
размер изображения ?
Re[5]: Доброго времени суток ! Подскажите может ли кто ни бу
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 16.03.20 09:23
Оценка:
Здравствуйте, Alitrix, Вы писали:

A>Именно так, имеется 1000+ изображений 32, хочу понизить размер и качество за счет GPU аналога квантизации, или чего то подобного.

A>Как я понял из предыдущих сообщений нужно описать пиксельный шейдер который поможет загрузив в GPU снизить качество и соответственно
A>размер изображения ?

Ничего не понял: что за изображения, в каком цветовом пространстве, в каком формате... "Изображение 32" — это что означает? Можно в общеизвестной терминологии или хотя бы откуда получены изображения? Я в принципе не понимаю, к чему планируется применять шейдеры. Реально, хоть в каком формате они на диске лежат?!!
Re: Доброго времени суток ! Подскажите может ли кто ни будь
От: alexander_r  
Дата: 16.03.20 10:22
Оценка:
Здравствуйте, Alitrix, Вы писали:

A>Доброго времени суток !


A>Подскажите может ли кто ни будь тыкнуть носом куда копать по такой теме:

A>после копирования любого изображения в память GPU каким либо образом можно ли
A>выполнить например понижение качества, размера, цветности используя средства GPU ?
На win10 можно использовать Video Processor MFT
он работает на GPU но не со всеми форматами

А как вы получаете битмапы на GPU?
Просто если загружать изображения на GPU с диска, конвертировать, а потом их выгружать обратно, то не факт, что это будет быстрее, чем просто обработать на CPU
Отредактировано 16.03.2020 11:22 alexander_r . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.