(forgot to cc tech-talk)
Hi,
One possibility is to use an areaDetector plugin chain dedicated for the live display of images, separate from the plugin chain that is binning and saving images for the purposes of data analysis. That way you can
implement more binning and/or compression for the visualization. For example, a CSS widget to view the images might only be 1024 x 1024 or smaller, and so you can bin down to that same size, and in addition use compression or scale down to UInt8 data.
If you attempt to display an image in the intensity widget in CSS that is bigger than the size of the widget, then CSS will cut the image down to size by removing some of the columns and rows to make it fit. This
means you can lose fine detail in the image. A better approach, if you can’t increase the widget size, is to do the binning in the ROI plugin in areaDetector, which will preserve fine detail (although, it would be averaged out by the larger bins).
> If we would implement all the necesarry analysis code as plugins for areaDetector, what would be the maximum frame rate that can be
reliably displayed in e.g. phoebus?
I don't know the answer for Phoebus. But I just tested with ADSimDetector on Windows. I configured it to generate 4096x4096 UInt16 images at 10 Hz. I displayed those locally in ImageJ
using the PVA plugin. It could only display about 2 frames/s. I then used the ROI plugin to bin 2x2, and configured NDPluginPva to get its data from the ROI plugin. The images being displayed were thus 2048x2048. ImageJ was able to display those at the
full 10 Hz. Unless you have a very large monitor you won't see any difference between 4Kx4K and 2Kx2K images in the display. You can do this same test with Phoebus using ADSimDetector.
At those image sizes I think CSS/Phoebus would struggle to display at 10Hz. 2048x2048 UInt16 are 8.4MB images, so at 10Hz that’s 84MB/s, which is a lot for the purposes of visualization.
> And is there a difference between CA and pva protocol?
I have found that PVA puts significantly less CPU load on the areaDetector IOC than CA. I have also found that the ImageJ client is
somewhat faster with PVA than CA. If your data is compressible you can using NDPluginCodec to compress it. The ImageJ plugin can display compressed images. That can greatly reduce the network load.
I’ve forgotten if CSS/Phoebus supports compressed PVA NTNDArray objects, but that would help a lot when visualizing large arrays.
Cheers,
Matt
Hi ,
for a project we want to use openPMD (openpmd.org) as storage format. Has
anybody been working on a areaDetector plugin using openPMD?
In the end we want to use ADIOS2 (adios2.readthedocs.io/en/latest.html) to
transport the data with high speed to a remote server for storage and
processing. Remote server will be used because then the offline analysis can
start immediately without waiting for the data to be copied from the iOC
server to the compute node.
The task is to handle 64Mpx images from a CCD@16bit at 10Hz. As the camera has
USB3.0 as interface for readout, it's clear that we have to use binning of 4
or even 6 to get this frames per second.
If we would implement all the necesarry analysis code as plugins for
areaDetector, what would be the maximum frame rate that can be reliably
displayed in e.g. phoebus? And is there a difference between CA and pva
protocol?
Regards,
Jörn Dreyer