90 likes | 104 Views
(Experimental) Image Server. Yuri Malitsky Brown University, RI Nikolay Malitsky BNL, NY. EPICS Collaboration Meeting Oct. 7–14, 2010, BNL, NY, USA. Outline. areaDetector-based Application Image Models PvImage PvImage Plugin (server side) Java Clients News from PCaPAC’10
E N D
(Experimental) Image Server Yuri Malitsky Brown University, RI Nikolay Malitsky BNL, NY EPICS Collaboration Meeting Oct. 7–14, 2010, BNL, NY, USA
Outline • areaDetector-based Application • Image Models • PvImage • PvImage Plugin (server side) • Java Clients • News from PCaPAC’10 • Compression
areaDetector-based Application • PvImage structure • 30 fps, 1024x768, RGB Task: ImageJ ImagePlus Java Buffered Image SWT Image Data Viewers Qt QVideoFrame PvImage CA3 + PvData IOC areaDetector-based IOC Sources simDetector Prosilica
Image Models • Server side • Programming Interface for Prosilica’s GigE and Firewire cameras (PvAPI) • EPICS areaDetector NDArray • TINE Image Format • Client side • Java BufferedImage, etc • SWT ImageData • QT QVideoFrame
PvRGBAImage data PvRGBAImage PvByteArray id timeStamp width: int height: int x: int // start of readout region (left) y: int // start of readout region (top) pixelSize: int // bits per pixel nmasks: int // number of pixel components masks[nmasks] // rgba isDirect: boolean values: byte[]
PvImagePlugin (server side) asyn asynPortDriver areaDetector implements the asynGenericPointer functions for NDArray objects asynNDArrayDriver NDPluginDriver ADDriver application PvImagePlugin simDetector simDetector PvImagePlugin asynInt8ArrayWfIn simTask computeImage processCallbacks(NDArray *pArray) createPvImageData interruptCallbackInput (…, epicsInt8* pData, int size) copy
Java Clients • BufferedImage: introduced as part of Java 2D API with JDK 1.2 • used in theTINE Video System • VolatileImage: introduced in JDK 1.4 for supporting hardware-accelerated offscreen images • thoroughly discussed in www.javagaming.org, etc. • must be compatible with the hardware • drawn in the application thread • Both approaches require ~ 4 ms for drawing one frame 1024x768, RGB • The client-server application was comfortable with 20 fps.
News From PCaPAC 2010Oct. 5-8, Saskatoon, Canada First, thanks to Elder Matias for a wonderful workshop!!! • S. Weisse, D. Melkumyan, P. Duval (DESY) Status, Applications and Perspective of • TINE-powered Video System, Release 3 • J. Bobnar, I.Kriznar, T.Kusterie (Cosylab), D.Melkumyan, S.Weisse, P. Duval, G.Kube, • J.Wilgen (DESY) TINE/ACOP state-of-the-art Video Controls at Petra III • …
Next Step: Compression Common Approach: M-JPEG lossy intraframe compression EPICS areaDetector plug-ins • Tom Cobb, Diamond • mjpgServer (depricated) based on the jpeglib library • ffmpegServerbased on the ffmpeg libraries TINE Video System S. Weisse, DESY JPEG compression based on the jpeglib library