CCD_Capture
Apr. 7th, 2023 02:29 pmИсправил кое-какие баги в CCD_Capture, но таки часть еще осталась: иногда подвисает передача по сети (особенно когда окно двигаешь — видимо, потоки между собой начинают "драться"); в standalone режиме сегфолтится при отключении камеры (т.е. где-то я что-то прошляпил); возможно, еще какие-то невыявленные пока баги есть (а пока баг не выявлен, обозвать его "фичей" не выйдет).
Почему-то получилось, что использование openmp только тормозило: при openmp выполнение эквализации изоображения в 1Мпиксель занимало 20мс, а без нее — 1мс. Ну, понятно, там требуется синхронизация потоков. Однако, элементарные операции преобразования в псевдоцвета тоже ускорились (!!!), когда я выкинул openmp (а там-то вообще независимо каждый пиксель обрабатывается — ничего синхронизировать не нужно). Еще косяк — с отображением (почему-то без эквализации гистограммы вообще сплошной синий фон, надо будет изменить "линеаризацию": вычислять на масштабе 0..максимальная яркость кадра, а не 0..65536 — в 8-битном режиме вообще черт знает что выходит).
Провел тесты по скорости. Экспозиция — 1мс, сначала проверил на "dummy" — эмуляторе светоприемника: кадр 1050×1050: 34..62 в режиме standalone, 35..42 — по сети; кадр 100×100: 83..103 — standalone, 36..48 — network.
И на Basler: кадр 1928×1208: 18..19 — standalone, 18..19 — network; 100×100: 30..35 — standalone, 28..31 — network.
Ну, по крайней мере, не 2 кадра в секунду, как было у меня с использованием "куска автогида" от предыдущего спектрографа. Будем запускать напрямую ccd_capture и смотреть хоть локально, хоть по сети (с туннелированием портов посредством ssh). Жаль, что биннинг вообще никак не отражается на скорости считывания (хотя, казалось бы: если биннинг выполняется средствами DSP самой камеры, то даже 2×2 уже должен в 4 раза скорость считывания повысить). Ну, все равно нужно будет включать биннинг 4×4, т.к. уж слишком огромная звезда получается.
Пока забью на некоторые баги и вернусь к improclib — таки надо быстрей сделать автогид для ESPriF.
Почему-то получилось, что использование openmp только тормозило: при openmp выполнение эквализации изоображения в 1Мпиксель занимало 20мс, а без нее — 1мс. Ну, понятно, там требуется синхронизация потоков. Однако, элементарные операции преобразования в псевдоцвета тоже ускорились (!!!), когда я выкинул openmp (а там-то вообще независимо каждый пиксель обрабатывается — ничего синхронизировать не нужно). Еще косяк — с отображением (почему-то без эквализации гистограммы вообще сплошной синий фон, надо будет изменить "линеаризацию": вычислять на масштабе 0..максимальная яркость кадра, а не 0..65536 — в 8-битном режиме вообще черт знает что выходит).
Провел тесты по скорости. Экспозиция — 1мс, сначала проверил на "dummy" — эмуляторе светоприемника: кадр 1050×1050: 34..62 в режиме standalone, 35..42 — по сети; кадр 100×100: 83..103 — standalone, 36..48 — network.
И на Basler: кадр 1928×1208: 18..19 — standalone, 18..19 — network; 100×100: 30..35 — standalone, 28..31 — network.
Ну, по крайней мере, не 2 кадра в секунду, как было у меня с использованием "куска автогида" от предыдущего спектрографа. Будем запускать напрямую ccd_capture и смотреть хоть локально, хоть по сети (с туннелированием портов посредством ssh). Жаль, что биннинг вообще никак не отражается на скорости считывания (хотя, казалось бы: если биннинг выполняется средствами DSP самой камеры, то даже 2×2 уже должен в 4 раза скорость считывания повысить). Ну, все равно нужно будет включать биннинг 4×4, т.к. уж слишком огромная звезда получается.
Пока забью на некоторые баги и вернусь к improclib — таки надо быстрей сделать автогид для ESPriF.