> Although this does not help with your problem, perhaps it is worth looking into as possible alternative approach for serving images:
>>> import time
>>> import pvaccess as pva
>>> attr = pva.NtAttribute('x', pva.PvInt(3))
>>> attr['timeStamp'] = pva.PvTimeStamp(time.time())
>>> nda = pva.NtNdArray()
...
Combine this with the PyDevice,
https://github.com/klemenv/PyDevice (for more see also recent EPICS meeting), you can have an IOC where some record calls python code, and in there you then assemble & publish
the PVA data.
The result could either be a very elegant solution that offers the best of IOC record processing and python for assembling the complex data, or a Franken-IOC. It's certainly worth exploring as an alternative to growing the "info(group..." syntax.