_p_i_t_e_r_ писал(а) 20.06.2019 :: 02:31:35:Очень не хватает одной фичи, на операции выделения полезного контента (в принципе и на операции исправления угла наклона), периметр прямоугольника выделения тёмно-синий а хочется чтоб был кислотно-зелёный т.к. хочу оставлять тёмный фон по краю листа. А так периметр выделения сливается с фоном (очень напрягает).
Ещё протестировал на RAMDisk-е, разницы по времени обработки вообще нет по сравнению с HDD, Phenom x4 3.8 GHz загружатся на 25%-30%. Подскажите, как можно ускорить обработку? (слышал про Open CL, может можно как-то добавить?)
Изменить цвет прямоугольника выделения контента, конечно, не сложно - он задается в одном месте.
Тут. Там можно 00,00,0xff поменять, скажем, на 00,0xff,00 и будет зеленый. Но нужно, конечно, вынести это в настройки.
Но я не понял, цвет чего нужно настраивать на этапе операции исправления угла наклона? Можно скриншот.
По поводу скорости - от I/O операций она не сильно зависит, все в CPU упирается, поэтому разницы не видно. 25-30% она потребляет, т.к. у вас 4 ядра в процессоре. А в ST 2 потока - один проводит вычисления, а второй слушает GUI, чтобы останавливать/запускать первый. Больше одного ядра поток использовать не может, вот и получается занятым одно ядро целиком, тем потоком, что серьезно считает, и чуть второго ядра тем, что GUI слушает. Итого 25-30% от всего CPU. Было бы 8 ядер - потреблял бы 12.5-15% CPU.
Можно сделать 2 и более считающих потока и натравить на разные страницы параллельно. Тогда потребление CPU увеличится. И это уже сделано в Scan Tailor Advanced. Но это имеет смысл только при Batch обработке. Т.е. когда нажали кнопку пересчета страниц и ушли чай пить. Но меня этот этап не особо волнует, т.к. все равно сколько чай пить 10мин или 15мин. Важнее, сколько пользователь реально своего время за монитором тратит, расставляя настройки на страницах.
И вот тут потоки не помогут, нужно ускорять сам алгоритм вычисления одной страницы, чтобы не ждать секунду при переключения из экрана корректировки слоя изображений в обычный режим после каждого внесения изменений. И с этим может помочь опыт Scan Tailor Experemental, где Tulon лично прикрутил библиотеку линейной алгебры Eigen3, у которой под капотом есть железо-зависимые оптимизации и возможно даже OpenCL. Я её попробовал для ускорения minidjvu и, действительно, 10-15% прироста скорости при операции с 2-я достаточно длинными векторами она дает на одних SSE инструкциях (вроде).
В общем, с производительностью все в принципе понятно, но заняться этим лень.
P.S. Сознаюсь, в оригинальном ST была опция включения Open
GL, но я её вообще викинул. Она всего-лишь включала стандартное ускорение вывода графики в одном из компонентов Qt, используемом для её отображения. Это имело бы смысл, если бы вместо 2d страницы книги я крутил кино или 3d модельки.. А так, никакого эффекта на производительность не оказывало.