Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.068 c
15-1349295678
ProgRAMmer Dimonych
2012-10-04 00:21
2013.03.22
Подсчёт ссылок на строку таблицы в MySQL


15-1328614093
Denissoft
2012-02-07 15:28
2013.03.22
Вопрос Насчет сайта!


2-1330953400
dimokis
2012-03-05 17:16
2013.03.22
процедура для обработки нажатия любой кнопки на форме


15-1343248203
Юрий
2012-07-26 00:30
2013.03.22
С днем рождения ! 26 июля 2012 четверг


15-1337676209
ClawClaw
2012-05-22 12:43
2013.03.22
Чемпионат Европы 2012





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский