ChangeLog

Version 0.16.0

Enhancements:

  • filter: Enable scaling in ramp_fromreal
  • opencl: add options property to set build opts
  • opencl: allow overriding PATCH_ and SEARCH_RADIUS
  • opencl: add diff kernel
  • nlm: use sigma if passed as an option
  • nlm: don’t scale sigma arbitrarily
  • backproject: lift angle-step and -offset limits
  • read: support single plane RGB data
  • write: support RGB TIFFs and JPEGs
  • write: do not require fmt specifier for jpeg
  • bin: support 3D binning as well
  • fft: add debug message showing underlying FFT lib
  • Do transpose on GPU

Fixes:

  • Fix #153: handle 64 bit TIFFs gracefully
  • Fix #159: add boolean rescale option
  • Fix #161: add test to prove things work
  • Fix #162: make use of new buffer layout API
  • Fix #163: return raw-height correctly
  • Fix #165: use current get_kernel API
  • Fix #166: propagate OpenCL errors if possible

Breaks:

  • detect-edge: rename “type” to “filter”

New filters:

  • Add cone beam reconstructor
  • Add tile task
  • Add unsplit task
  • Add map-color task
  • Add gradient filter
  • Add zmq-pub and zmq-sub tasks

Version 0.15.1

Fixes:

  • #153: do not crash with 64 bit floating point TIFFs
  • Use specific OpenCV 2 header file in an OpenCV 3 environment

Version 0.15.0

Enhancements:

  • Added a manual section showing basic image processing examples
  • Added a manual section to list default kernels usable with opencl and opencl-reduce
  • backproject: unroll loop for P100, Quadro M6000, GTX 1080 TI and Tesla K20XM
  • cv-show: use unique window name to allow multiple viewers
  • dfi: clean up and simplify reflection code
  • read: avoid file open check if successful
  • read: add lazy timeout-based reading
  • retrieve-phase: remove unused normalize parameter
  • retrieve-phase: untangle macro and ?: mess
  • stat-monitor: clean up and remove dead code
  • stitch: minor cleanups and correct kernel release
  • swap-quadrants: simplified code
  • write: warn if no format spec is given for jpeg
  • Fix #144: document swap-quadrants

Fixes:

  • camera: fix linking with libuca
  • cv-show: fix compilation with older g++ compilers
  • dfi: fix wrong warning about even sample number
  • dummy-data: lift number limit
  • opencl: kernel name cannot be NULL
  • Fix #149: image2d_t is always global
  • Fix #146: use gnu99 instead of c99
  • Fix #133: off-by-one cropping is bad

Breaks:

  • Moved nlm kernel from nlm.cl to opencl.cl
  • Remove unused default.cl

New filters:

  • Added cv-show viewer
  • Added circular mask filter
  • Added opencl-reduce
  • Added projection filter bh3
  • Added filter to remove outliers

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