Встроенное программное обеспечение для нового рентгеновского детектора МТЛ
Встроенное программное обеспечение для нового рентгеновского детектора МТЛ с быстрой обработкой изображений на CUDA и высокоэффективным стримингом
Заказчик:
МТЛ Медицинские Технологии (Россия)

Links and publications:
Применение GPU для обработки рентгеновских снимков и томографической реконструкции, страница 40 (VIII Всероссийская конференция производителей рентгеновской техники)
Операционные системы:
Linux

Платформы:
Arm64

Стек:
C++ 14–17, CUDA

Локализация:
Русский, английский

Firmware description

Integrated firmware controls detector hardware, acquires image parts from separate X-Ray sensors, compose them into a single output image, process and send it to a host machine.

Built-in CUDA based image processing pipeline allows realtime image adjustments like dark frame subtraction, gain, defects and sensor gap corrections, levels and gamma tuning, HDR image construction. Pipeline allows usage of external processing modules which can be combined into a processing chain without need of firmware modification.

Acquired images can be stored locally on device, directly viewed by HDMI connection, send to host machine via GigE Vision protocol or streamed to built-in Web interface.
Key features

  • Integrated flexible CUDA based image processing pipeline
  • Ability to use custom processing modules
  • High processing performance up to 60 fps on large 3624x4560 (16 bit) images
  • HDR image acquisition mode support
  • Fast in-house GigE Vision protocol implementation with no intermediate memory copying and up to 10 Gb link support
  • On-the-fly GeniCam features generation depending on device configuration and settings
  • Web interface with realtime video streaming
  • Direct HDMI output with zooming/padding capability
Процесс разработки

Image acquisition, processing and further sending to a host machine can be quite challenging because of large image sizes (up to 3624x4560, 16 bit) and limited compute capability of integrated equipment. Therefore the main efforts were done to optimize image processing pipeline, reduce intermediate copying of large data and optimally parallelize all internal processes.

Most of the image processing steps are done by CUDA in a single pass leading to high performance up to 60 fps. At the same time processing pipeline support external custom processing modules which can be configured and used realtime.

A single image buffer pool is used at all steps, from acquisition of image parts to processing and streaming. Such approach ensures no intermediate image copying leading to high performance.

Fast in-house GigE Vision protocol implementation optimizes network usage and allows to use up to 10 Gb link speed without frame loss.

Implementation of a central GeniCam feature storage gives full control on all device features. The .xml file with feature list is generated on runtime allowing its automatic adjustment according to device configuration and settings.