EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: RE: EPICS areaDetector plugin & phoebus
From: "Pearson, Matthew via Tech-talk" <tech-talk at aps.anl.gov>
To: Mark Rivers <rivers at cars.uchicago.edu>, Jörn Dreyer <j.dreyer at hzdr.de>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 11 Apr 2022 15:07:28 +0000

 

(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

 


From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Jörn Dreyer via Tech-talk <tech-talk at aps.anl.gov>
Sent: Monday, April 11, 2022 7:39 AM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: EPICS areaDetector plugin & phoebus

 

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


Replies:
Re: EPICS areaDetector plugin & phoebus Kasemir, Kay via Tech-talk
References:
EPICS areaDetector plugin & phoebus Jörn Dreyer via Tech-talk
Re: EPICS areaDetector plugin & phoebus Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: phoebus: write waveform PV William Kirstaedter via Tech-talk
Next: Re: ADAravis PoolUsedBuffers Steve Kinder - STFC UKRI via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
Navigate by Thread:
Prev: Re: EPICS areaDetector plugin & phoebus Mark Rivers via Tech-talk
Next: Re: EPICS areaDetector plugin & phoebus Kasemir, Kay via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·