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