Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

TFastDIB 64bit   Найти похожие ветки 

 
Андрей Парамонов   (2012-10-19 09:50) [0]

FastDIB - это набор модулей Delphi для работы с растровой графикой под Windows. Библиотека представляет класс TFastDIB (альтернатива TBitmap) и набор процедур для работы с ним: загрузка из файлов и памяти, отрисовка на экране, изменение размеров (ресэмплинг) и глубины цвета, графические эффекты, рисование графических примитивов:

http://sourceforge.net/projects/tfastdib/

Господа из солнечной Бразилии используют FastDIB в своей программе и желают компилировать код для 64-х битной архитектуры. Есть ли желающие портировать FastDIB для 64 бит? Работа оплачивается.

С уважением,
Андрей Парамонов (cmr.pent@gmail.com)


 
QAZ5   (2012-10-19 12:27) [1]

Удалено модератором


 
brother ©   (2012-10-19 13:46) [2]

после порта библиотека будет в общем доступе?


 
QAZ5   (2012-10-19 15:54) [3]

ага, за деньги :)


 
Jeer ©   (2012-10-19 19:13) [4]

Только ради шутки и для Гондураса - бесплатно. :)


 
dmk ©   (2012-10-19 21:15) [5]

Они хотят добиться успеха Адобе? Пускай сами парятся. Могу помочь, только в рамках Российской Федерации и для своих. Занимался этим породуктивно, но во время тормознул, когда проект "уплывать" стал в чужие руки.


 
Jeer ©   (2012-10-19 21:54) [6]


> но во время тормознул


Нами продолжают пытаться пользоваться за гроши, так, что - правильное решение.


 
dmk ©   (2012-10-19 21:58) [7]

>Нами продолжают пытаться пользоваться за гроши
Согласен. К сожалению :(


 
DVM ©   (2012-10-19 22:11) [8]

там портировать то на полчаса делов


 
DVM ©   (2012-10-19 22:15) [9]

Там нет ассемблера, все портирование заключается в поиске мест Ptr(Integer( и подобных и замена на правильные варианты


 
dmk ©   (2012-10-19 22:18) [10]

>там портировать то на полчаса делов
Вот так работа и обесценивается :(


 
DVM ©   (2012-10-19 22:20) [11]


> dmk ©   (19.10.12 22:18) [10]

хотя нет вру, в FastBlend есть asm и много, в остальных вроде нет.
можно делать быстро но дорого :)


 
Jeer ©   (2012-10-19 22:21) [12]

И хто мешает Feitosa (бойцу из К1) это сделать ?
Вперед.


 
Pavia ©   (2012-10-19 22:27) [13]


> там портировать то на полчаса делов

1. Там ассемблера много. Процентов 5-10.
2. Надо проверить указатели.
3. Надо проверить битовые хаки.

Возни на день может больше.


 
Pavia ©   (2012-10-19 22:28) [14]

Ещё работу с jpeg переделовать.


 
DVM ©   (2012-10-19 22:43) [15]


> Pavia ©   (19.10.12 22:28) [14]


> Ещё работу с jpeg переделовать.

IJL есть 64 битная, но уже небесплатная


 
Sapersky   (2012-10-20 01:23) [16]

У меня есть частично портированная версия, всё кроме ассемблера и jpeg (на основе 389i). Протестировано... тоже частично, в одном проекте заработало. В таком виде могу отдать бесплатно.

Платно доработать - ну в принципе тоже можно, будет повод "причесать" библиотеку, чтобы самому потом пользоваться. Хотя некоторые вещи, вроде 15-битного блендинга из FastBlend, сейчас "чесать" уже мало смысла, проще сразу выкинуть.

Jpeg в 64 битах можно грузить через GDI+.
Ещё недавно видел какую-то libjpeg-turbo, последняя версия IrfanView её использует. Если верить "секундомеру" IrfanView (в Image Information пишет время загрузки) - грузит быстрее IJL1.5. Библиотека, конечно, сишная, к Дельфям пока не пробовал прикручивать. 64-битная версия на сайте упоминалась.


 
Андрей Парамонов   (2012-10-20 10:12) [17]


> У меня есть частично портированная версия, всё кроме ассемблера
> и jpeg (на основе 389i). Протестировано... тоже частично,
>  в одном проекте заработало. В таком виде могу отдать бесплатно.


Я готов интегрировать эти патчи. Пришли мне на почту.


> Платно доработать - ну в принципе тоже можно, будет повод
> "причесать" библиотеку, чтобы самому потом пользоваться.
>  Хотя некоторые вещи, вроде 15-битного блендинга из FastBlend,
>  сейчас "чесать" уже мало смысла, проще сразу выкинуть.


Я думаю что {$IFDEF} поможет съэкономить усилия, т.к. сильно подозреваю, что каким-нибудь 15-битным блэндингом ну совсем никто не пользуется. А в 32-битном режиме -- пусть его будет.

Главное при причёсывании в точности сохранить интерфейс. Всё-таки FastDIB -- это типичное legacy, новые фичи проще добавлять в тот же Graphics32/AGG или как там оно сейчас называется.


> Jpeg в 64 битах можно грузить через GDI+.
> Ещё недавно видел какую-то libjpeg-turbo, последняя версия
> IrfanView её использует. Если верить "секундомеру" IrfanView
> (в Image Information пишет время загрузки) - грузит быстрее
> IJL1.5. Библиотека, конечно, сишная, к Дельфям пока не пробовал
> прикручивать. 64-битная версия на сайте упоминалась.


С этой IJL, помнится, всегда был геморрой. libjpeg-turbo -- она сводобная?


 
Sapersky   (2012-10-20 16:55) [18]

Всё-таки FastDIB -- это типичное legacy, новые фичи проще добавлять в тот же Graphics32/AGG или как там оно сейчас называется.

А мужики-то и не знали...
Зачем тогда ты этим занимаешься?
Если тебе это не надо - дай почту бразильцев, буду с ними общаться.

libjpeg-turbo -- она сводобная?

Вроде да:
http://creativecommons.org/licenses/by/3.0/
Адаптация для Дельфи (только что нашёл, не проверял):
http://code.google.com/p/delphi-libjpeg-turbo/


 
DVM ©   (2012-10-20 17:15) [19]


> Sapersky   (20.10.12 16:55) [18]


> Адаптация для Дельфи (только что нашёл, не проверял):
> http://code.google.com/p/delphi-libjpeg-turbo/

надо посмотреть будет, а то я уж хотел перевести хидеры сам.


 
Pavia ©   (2012-10-20 19:44) [20]


> а то я уж хотел перевести хидеры сам.

Всё хотел спросить а вы ручками их переводите или прогой какой?


 
DVM ©   (2012-10-20 19:47) [21]


> http://code.google.com/p/delphi-libjpeg-turbo/

Не очень код у этой обертки. Неаккуратный. Какая то чудная попытка непонятно чего добиться - читает разные jpeg из разных потоков, ну понятно оно быстрее будет, но реализация автора такая как будто он потоки вчера увидел. Хидер есть и оригинальный (http://www.dev-center.de/header) и он содержит явные ошибки (PChar и Char вместо PAnsiChar и AnsiChar), как и в данной обертке. За каким то лешим автор данной обертки исправил оригинальный хидер напихал туда ссылок на ненужные модули (Vcl.Dialogs например) тем самым убил кроссплатформенность и поддержку Delphi < xe2.


 
DVM ©   (2012-10-20 19:55) [22]


> Pavia ©   (20.10.12 19:44) [20]

Если немного то руками проще. Если много и ручками муторно, особенно всякие константы,структуры в большом количестве и т.д. Сначала программой потом просматриваю исправляю руками где не нравится.

В гугле поискать по словам c2pas, cpp2pas у меня их несколько разных, вот последний конвертер который недавно использовал
http://cc.embarcadero.com/item/26951


 
MBo ©   (2012-10-20 21:38) [23]

Про h2pas упоминание недавно видел (сам не пробовал)


 
DVM ©   (2012-10-20 21:41) [24]


> libjpeg-turbo

в 10 раз примерно у меня получилось она быстрее чем стандартный модуль Jpeg на Core i3


 
Андрей Парамонов   (2012-10-21 23:21) [25]


> А мужики-то и не знали...
> Зачем тогда ты этим занимаешься?

Ты спрашиваешь вообще, зачем я занимаюсь программированием? ;-)
Надеюсь, что вопрос таки про FastDIB. В своё время я был огорчён тем, что в интернете нет официального сайта этой библиотеки. Чтобы решить эту проблему, я связался с автором и стал майнтейнером. Как я понимаю, задачей майнтейнера является как раз координация разработчиков с целью наиболее эффективного решения задач пользователя.
К бразильской компании я никакого отношения не имею.


> Если тебе это не надо - дай почту бразильцев, буду с ними
> общаться.

Отправь мне сообщение на почту, я тебе перешлю оригинальное письмо.


 
Eraser ©   (2012-10-22 00:54) [26]


> Андрей Парамонов   (21.10.12 23:21) [25]

я код библиотеки не смотрел, точнее смотрел лет 6 назад - уже не помню. подозреваю, что там много ассемблера и математики, соответственно фактически заново надо все переписывать. поэтому желающих не много.


 
Германн ©   (2012-10-22 02:39) [27]


> Андрей Парамонов   (21.10.12 23:21) [25]
>
>
> > А мужики-то и не знали...
> > Зачем тогда ты этим занимаешься?
>
> Ты спрашиваешь вообще, зачем я занимаюсь программированием?
>  ;-)
> Надеюсь, что вопрос таки про FastDIB. В своё время я был
> огорчён тем, что в интернете нет официального сайта этой
> библиотеки. Чтобы решить эту проблему, я связался с автором
> и стал майнтейнером. Как я понимаю, задачей майнтейнера
> является как раз координация разработчиков с целью наиболее
> эффективного решения задач пользователя.

А ещё и "стрижкой шерсти" со всех участников проекта! При чём это самое главное! :)


 
Sapersky   (2012-10-22 21:17) [28]

> libjpeg-turbo

в 10 раз примерно у меня получилось она быстрее чем стандартный модуль Jpeg на Core i3


У меня всё не так радужно - загрузка картинок где-то на уровне IJL или чуть медленнее, т.е. в 2.5 раза быстрее стандартного модуля.
Возможно, из-за того что 32 бита - на сайте было упоминание о том, что в 32 битах производительность хуже. До 64 ещё руки не дошли.
Irfanview, в принципе, тот же результат показывает - насчёт "быстрее" в прошлый раз я ошибся, там у IJL качественный режим стоял.

Или 10 раз - это с многопоточностью? Я даже не стал разбираться с delphi-libjpeg-turbo, раз уж там всё плохо, взял стандартный хидер с http://www.dev-center.de/header.

Ещё странная деталь: производительность стандартного модуля в старших версиях ухудшается. D5 - 34 мс, D2010 - 50 мс (IJL/libjpeg-turbo - 14 мс).


 
DVM ©   (2012-10-22 23:26) [29]


> Или 10 раз - это с многопоточностью?

Не, это в одном потоке. Там не всегда 10 скачет иногда 7 иногда 8 раз, но не менее 7 раз быстрее. 32 бит и 64 бит одинаково. Сравнивал со стандартным модулем Jpeg. Сравнить с IJL руки не дошли. Картинка была 1600 на 1200 точек из комплекта delphi-libjpeg-turbo оттуда же взял и скомпилированные библиотеки.


>  загрузка картинок где-то на уровне IJL или чуть медленнее,
>  т.е. в 2.5 раза быстрее стандартного модуля.

dll то какие взял? а в стандартном хидере загрузка правильной dll  производится?


 
Sapersky   (2012-10-23 00:52) [30]

DLL правильная. Возможно, от картинки зависит, попробую потом те, что в комплекте.


 
Sapersky   (2012-10-23 17:50) [31]

Нет, со всеми картинками одно и то же. И у IrfanView тот же результат.
Процессор не сильно старый, CoreDuo 2.7 Ггц.
Тест: http://sapersky.narod.ru/files/JpegLoadTest.rar


 
DVM ©   (2012-10-23 23:56) [32]


> Sapersky   (23.10.12 17:50) [31]


> И у IrfanView тот же результат.

У меня картина такая, что у моего кода что у InfranView загрузка картинки 1600 на 1200 точек - 30-40 мс с помощью libjpeg-turbo и около 300 стандартным модулем Jpeg. Delphi XE2, Core i3, Win 7-64


 
DVM ©   (2012-10-24 00:21) [33]


> Тест: http://sapersky.narod.ru/files/JpegLoadTest.rar

Попробовал на весьма слабом нетбуке с процессором Intel 1.2 Ггц, картинка 2048 x 1536:

Standart - 403
Ole - 341
GDI+ - 123
IJL - 87
LibJpeg turbo - 83


 
Sapersky   (2012-10-25 00:02) [34]

Похоже, дело в версии Дельфи - в XE2 я тоже получил 7-8 раз (стандартный модуль совсем испортился). Ну и в картинке - тестовая даёт бОльшую разницу, чем скриншот десктопа в моём примере.

А так в 32 битах на уровне IJL. Если брать качественный режим, то быстрее.


 
DVM ©   (2012-10-25 00:20) [35]


> Sapersky   (25.10.12 00:02) [34]


> А так в 32 битах на уровне IJL.

но зато бесплатная и 64 бит есть. Ее еще проверить надо на одновременное использование из нескольких потоков, у IJL 1.5 проблемы с этим были, какие то внутрениие глобальные переменные там по всей видимости были.



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 1.089 c
15-1337667020
AV
2012-05-22 10:10
2013.03.22
Oracle/ Надо прибить сессии, использующие пакет


2-1337023197
Влад
2012-05-14 23:19
2013.03.22
Создать класс по имени


15-1346963402
Юрий
2012-09-07 00:30
2013.03.22
С днем рождения ! 7 сентября 2012 пятница


15-1342451691
brother
2012-07-16 19:14
2013.03.22
Посоветуйте телефон


8-1227640604
Vetal
2008-11-25 22:16
2013.03.22
Вывод изображения в GDI+