powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Еще одна библиотека для загрузки jpeg
21 сообщений из 21, страница 1 из 1
Еще одна библиотека для загрузки jpeg
    #40116608
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Subj здесь - https://github.com/DenisAnisimov/ThreadedJpeg

(Это побочный продукт, выложен для истории.)

Попытка распаралелить декодирование jpeg файла. По факту я уперся в производительность декодировки Хаффмана. IDCT и преобразования из цветовых пространств обрабатываться в потоках быстрее, чем декодировка Хаффмана. Будет свободное время, попробую оптимизировать.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116610
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aniskin,

Зачем? У тебя гигабайтные жпеги? Или у тебя 10мгц процессоры с 10к ядер?
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116618
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
Зачем?

У меня есть проект, который требует чтения jpeg своими силами. И декодирование jpeg вызывается очень часто и много. Под него и писалось. Выложенный код лишь небольшая часть того, что мною написано.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116629
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aniskin,

основные проблемы кода, которые выкладывают новички:
  • куча внешних зависимостей
  • запутанность алгоритма
понятнее и "гораздо переиспользуемее"
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116648
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aniskin
У меня есть проект, который требует чтения jpeg своими силами.

В n потоков зачем? Если много жпегов, раздай их пулу потоков, да не делай голову себе.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116978
Sapersky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, что поделился.
Но я подозреваю, что многим неактуально странное требование "чтение jpeg своими силами". И если сравнивать со сторонними библиотеками, то как ни многопоточь NativeJpg, в лучшем случае будет та же скорость, а то и медленнее.
Нашёл твою тему 15-го года:
https://www.sql.ru/forum/1155352/biblioteka-dlya-chteniya-jpeg
Если цель - читать из произвольного места TStream возможно битые файлы, то по-моему это реализуемо через стандартный jpeg API (не дельфийский модуль, а порт сишной libjpeg):
https://github.com/EricGrange/DWScript/blob/master/Libraries/GraphicsLib/libJPEG.pas
Там довольно гибкая система ввода-вывода, можно задать коллбэки на чтение очередной порции данных, пропуск данных и т.д. Через этот API работает и libjpeg-turbo, достаточно быстрая безо всяких потоков.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116986
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sapersky
Но я подозреваю, что многим неактуально странное требование "чтение jpeg своими силами"
Согласен. Я же написал, что "'это побочный продукт, выложен для истории."

Sapersky
И если сравнивать со сторонними библиотеками, то как ни многопоточь NativeJpg, в лучшем случае будет та же скорость, а то и медленнее.
Спорить не буду. Я сравнивал со обычным модулем Jpeg, прирост на моем тесте был в 1.5 раза. С другими библиотеками не сравнивал. Ну, и при сравнении еще важно учитывать полноту охвата формата jpeg. NativeJpg тоже не все поддерживает.

Sapersky
Если цель - читать из произвольного места TStream возможно битые файлы
Чуть по сложнее. Пилю программу для реставрации поврежденных jpeg файлов. При чтении jpeg файла мне нужно запоминать все DC/AC коэффициенты каждого MCU, запоминать, в каком месте файла начинается каждый конкретный MCU с точностью до бита. И при реставрации нужно уметь перечитывать файл начиная с выбранного MCU начиная с произвольного бита файла. Библиотек, поддерживающих подобные узкоспециализированные фичи, нет :) А после того, как файл был перечитан, мне нужно максимально быстро отобразить изменения на экране. А потом отреставрированный файл нужно lossless сохранить. Вот так это выглядит на практике:

YouTube Video
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116989
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А оно в итоге быстрее чем Intel JPEG Library?

P.S: https://github.com/libjpeg-turbo/libjpeg-turbo
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116991
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp
А оно в итоге быстрее чем Intel JPEG Library?
Не сравнивал.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116992
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дааа, прямо таки могучее извращение!

Что-то прямо так флоппи дискетами потянуло...

Но это я так, продукт отличный.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116997
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat
Дааа, прямо таки могучее извращение!
Я старался :)

rgreat
Что-то прямо так флоппи дискетами потянуло...
Современные SD-карты тоже хорошо ломаются.

rgreat
Но это я так, продукт отличный.
Спасибо. Ты еще учти, что продукт сделан "новичком". Даже сложно представить, каким будет продукт, когда через 20 лет я достигну уровня лучших разработчиков c sql.ru. :)
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40116999
Sapersky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aniskin
И при реставрации нужно уметь перечитывать файл начиная с выбранного MCU начиная с произвольного бита файла.
А, ну если такие тонкости, то наверное да, только вручную.
Хотя непонятно, откуда могут появиться дырки в середине файла. Бэдблоки на диске, что ли? Обычное повреждение jpeg - файл недокачан, в этом случае желательно показать ту часть, что есть, и стандартные библиотеки с этим как правило справляются.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117002
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sapersky
Хотя непонятно, откуда могут появиться дырки в середине файла. Бэдблоки на диске, что ли?
Вариантов повреждений файла сотни. Один неправильный бит на SD карте - и файл поврежден.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117035
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
А оно в итоге быстрее чем Intel JPEG Library?
P.S: https://github.com/libjpeg-turbo/libjpeg-turbo
Быстрее.
А еще быстрее, КМК, было бы сделать на GPU.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117046
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Соколинский Борис
Быстрее.
Правильно ли я понял, что моя библиотека показала более лучший результат?
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117049
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aniskin,
нет, я про libjpeg-turbo vs intel jpeg
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117184
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Aniskin,
нет, я про libjpeg-turbo vs intel jpeg

Я спрашивал про библиотеку ТС. Просто непонятен смысл делать ещё одну библиотеку, когда уже дофига быстрых библиотек есть. У них у всех фатальный недостаток? 😀
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117189
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,



Каждому свой велосипед!
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117190
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aniskin
Sapersky
Хотя непонятно, откуда могут появиться дырки в середине файла. Бэдблоки на диске, что ли?
Вариантов повреждений файла сотни. Один неправильный бит на SD карте - и файл поврежден.


Борец с мировой энтропией.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117193
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp
У них у всех фатальный недостаток? 😀
Как ни странно, но да, у них у всех фатальный недостаток. :) И я подробно описал какой именно.
...
Рейтинг: 0 / 0
Еще одна библиотека для загрузки jpeg
    #40117199
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
Борец с мировой энтропией.
Кто-то любит формочки клепать, кто-то любит бороться с мировой несправедливостью... Каждому свое.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Еще одна библиотека для загрузки jpeg
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]