ChangeLog

Version 0.14.1

Fixes:

  • Let meson build all the tasks that CMake could before

  • Check if Python is actually available in order to generate lamino kernels

  • Fix install documentation

  • Fix compilation with MacOS compilation and Python 3

  • memory-in: cast pointer to target type

  • write: fix problem with generated filenames that are not incremented

Version 0.14.0

Enhancements:

  • Support meson build system alongside CMake

  • Suppress tiff writing warnings

  • dummy-data: add random-metadata flag

  • interpolate: use GPU instead of OpenMP which is an order of magnitude faster

  • lamino: allow setting addressing mode

  • monitor: output metadata values as well

  • raw-read: split offset in pre and post offsets

  • write: add counter-start and counter-step

  • write: add minimum/maximum to control conversion

  • null: allow printing durations from timestamps

Fixes:

  • lamino: prevent volume shifting in center kernel

  • Fix #133: allow crop position with specifying dims

Breaks:

  • Replaced stdout filter with standard write module

  • write: rename quality property to jpeg-quality

New filters:

  • Add rotate filter

  • Add stitch task

  • Add interpolate-stream task

  • Add correlate-stacks task

  • Add cut task

  • Add stamp filter to print current iteration into output buffer

Version 0.13.0

Enhancements:

  • Added infrastructure to “stage” filter contributions by third parties. To enable building it the WITH_CONTRIB option must be set explicitly to ON.

Fixes:

  • write: call conversion only once

  • read: fix segfault with start too large

  • read: fix dumping to JSON

  • Fix compilation and installation on MacOS

  • Fix #128: prevent segfault with start parameter

  • Do not compile ufo-priv.c for each task thus saving compile and link time

  • Add documentation for undocumented tasks

New contributed filters by Serge X. Cohen (Synchrotron SOLEIL):

  • Add MedMadReject median value rejection in 3D

  • Add MedMadReject2D median value rejection in 2D

  • Add Ocl1Liner to compute basic OpenCL arithmetics

  • Add StatMonitor to output stream statistics

Version 0.12.0

Enhancements:

  • Fortify source and enable large file support

  • Re-arrange filter documentation

Fixes:

  • Fix #127: use enums where possible

  • Document the filter task

  • Fix potential errors found with static analysis

  • stdin: use gsize to avoid LFS problems

  • dfi-sinc: do not call exit()

  • raw/read: fix type translation for raw-offset

Breaks:

  • metaballs: create filled balls rather than circles

  • metaballs: remove run-infinitely and fps props

  • filter: use enum instead of type-unsafe string

  • loop: rename ::count to ::number

New filters:

  • Add binarization filter

  • Add basic segmentation filter

Version 0.11.1

Fixes:

  • Fix #124: build and install oclfft optionally

  • Use OLD behaviour for CMP0046

  • Use G_MAXSIZE instead of ULLONG_MAX

  • Include oclfft deps dir only if enabled

  • filter: link FFT libs

  • ifft: remove unused/wrong imports

  • raw: do not ignore return value of fread

  • transpose: fix warning if SSE is not possible

  • Add license statements where missing

  • Link against m unconditionally

Version 0.11.0

Enhancements:

  • Add option to build Sphinx manual

  • Improved filter documentation

  • Increase robustness of OpenCL kernels by using correct type everywhere

  • Make AMD clFFT optional

  • backproject: improve performance on GTX Titan

  • rescale: allow setting absolute width and height

  • camera: allow passing properties to camera

  • camera: simplify readout mechanism

  • dummy-data: opt-in for initialization using init

Fixes:

  • Link only to required dependencies

  • Do not link oclfft unconditionally

  • zeropad: fix for centers < half width

  • Fix #121: use correct exit condition

  • Set std=c99 only on C source files

  • oclfft: link against UFO

  • rescale: remove debug output

  • lamino-backproject: fix for small max workgroups

Breaks:

  • dummy-data: remove bitdepth property

New filters:

  • Add GEMM matrix multiplication using CLBlast

  • Add bin filter to bin pixel values

Version 0.10.0

Enhancements:

  • Restructured FFT-based filters to use a common code base

  • filter: Use real space ramp by default

  • crop: add from-center property

  • hdf5: whitelist .hdf5 and .nxs extensions

Fixes:

  • camera: do not convert 32 bit float data

  • EDF: fix problem parsing Frelon EDF data

  • Fix #117: fail gracefully if file can’t be written

  • edf reader: Allow 512-multiple header size

  • Fix reading 32 bit float raws as unsigned int

Breaks:

  • read: renamed enable-conversion → convert

  • null: renamed force-download → download

New filters:

  • Add MemoryIn generator

  • Add MemoryOut sink

  • Add stdin generator

  • Add stdout sink

  • Add laminographic backprojection

  • Add 1D stripe filter

  • Add sleep task for debugging purposes

Version 0.9.0

Enhancements:

  • backproject: reconstruct region-of-interest

  • backproject: loop unroll on GTX Titan Black

  • filter: generalize filter types

  • read: allow overriding type detection

  • read: read as many bytes as expected in raw mode

  • map-slice arbitrary number of input data

  • monitor: add print property to show data

Fixes:

  • Fix ramp filter computation and mirroring

  • Fix two dimensional batch processing of FFT and IFFT

  • Fix segfault caused by double-freeing kernel

  • opencl: fix copying dimension property

  • read: fix segfault reading big-endian .edf

  • fbp: Use number of projs to compute angle step

  • dfi: add angle-step property

  • blur: free allocated OpenCL buffers

  • slice: slice correct number of input items

  • stack: stack every [number] inputs

New filters:

  • Add flip task

  • Add clip task

  • Add loop task

  • Add refeed task

  • Add merge task

  • Add basic raw reader

Version 0.8.0

Major changes:

  • Read changed “end” property back to “number”

  • Renamed downsample filter to rescale

  • Renamed cut-roi filter to crop

  • null: added “finish” property to call clFinish()

  • filter: added Faris-Byer type filter coefficients

  • ifft: added crop-height property

  • Removed possibility to disable building plugins

New filters:

  • Add calculate task

  • Add new monitor task

  • Add edge detection filter

  • Added HDF5 reader and writer

  • Added raw writer

  • Added JPEG writer

Version 0.7.0

This release breaks badly with all previous version because we renamed several filters and properties to clean up inconsistencies.

Major changes include:

  • Integration tests have been moved to core

  • writer: allow 8 and 16 bit uint output

  • reader: support Multi EDF files

  • reader: add y-step parameter

  • reader: from:to:step selection of files

  • flatfieldcorrection: add “dark-scale” property

New filters:

  • Import uPIV related filters by Alexandre Lewkowicz

  • Add pad to add zero padding

  • Add slice mapper to arrange input as a single grid

  • Add inplace flatten task for sum, min and max

  • Add interpolation task to interpolate between two streams

  • Add flatten task based on median sort

  • Add stack task to create a volume from 2D series

  • Add transpose task to rotate data

  • Add measure task to measure image metrics

  • Add PolarCoordinates task

  • Integration of UfoIR algebraic reconstruction tasks

  • Add median noise filter

  • Add slice task to cut volumes into 2D data stream

  • Add stripe removal task

  • Add phase retrieval filter

Version 0.6.0

Changes

  • Added angle offset parameter to backproject filter.

  • Fix backprojection for NaN in input

  • Fix LUT computation resulting in wrong reconstructions.

  • Install kernel files into ${datadir}/ufo as required by ufo-core 0.6.

New filters

  • “generate”: takes width, height and depth parameters as well as a number that is produces with the specified dimensions.

  • “downsample”: reduce the size of an image by an integer