Wiki

Clone wiki

UFF / other_formats / The MUSIC format

With respect to the UFF initiative, here is some info on what we at the medical ultrasound imaging center (MUSIC) in Nijmegen use to standardized our data. This is after beamforming and with the purpose of multiple iterations of motion estimation. Therefore, I am not sure if it useful to upload it at the Wikipage. Nevertheless, it might have some interesting features for element data storage which you might consider when setting up the proposal for the UFF. Element data we at MUSIC currently store without modifications in the format provided by the vendors.

for the coordinate system we defined the following:

image003.jpg

Note that z increases with depth as on most commercial systems and that we have a right-handed coordinate system (makes geometrical transformations more standardized).

Next to that we have the following files to save our beamformed data: * data files : containing the beamformed ultrasound data of the tissue. Each file contains data for one (compound) 2D or 3D ultrasound frame. * header file : for all data-files in the same study (all frames), one header file is used that describes the data * ROI-file (optional) A file that contains the region-of-interest (ROI) for which motion estimates should be calculated. If the file doesn’t exist, the motion estimation framework assumes the whole frame should be used * GRID-file (optional): this file contains the x-, y-, and z-coordinate of the beamformed US data and indices that specify the position in the beamformed grid for which motion/velocity estimation should be performed.

a) data-files

Ultrasound data storage is done for each (compound) frame in a separate file. The filename convention is

US_<name data set>_<framenr> .mat (US_flowsims.00010.mat)

For <framenr> 5 digits should be used. A single file contains the variable

  • USDATA{angle}(:,:,:) which is a cell-array containing the data for each beam of a (compound) ultrasound frame grouped per beamsteering angle. First dimension is axial, 2nd dimension lateral and if exists 3rd dimension elevational

To save memory, only one signaltype (RF) should be stored. In the case of signaltype = RF, envelope data are derived in the software. (Hilbert-transform). Also all variables are singles instead of doubles

b) header-files

For each set of frames in a study a header file should exist. This file has the following name convention

            USHEADER_<name_of_data_set>.mat (USHEADER_flowsims.mat>

This file contains a variable USHEADER that consists of the following fields

#!Matlab
.c : speed of sound in m/s (double)
.fs  sampling frequency in Hz (double)
.fc : central frequency of transducer in Hz (double)
.nFrames : the number of frames of the original data set (double)
.system : a string defining the system that is used to record the data. For simulation use the package name, for instance Field II pro
.transducer : string that represents the name of the probe, e.g. L12-5
.xmitangles : vector describing the steering angles that are used in transmition,  angles are in degrees [20 0 -20]
.acquisitionDimension : the number of dimensions used in the acquisition in string format, for instance 2D or 3D
pitch : double vector containing the pitch in lateral and elevational direction (for 3D). For 2D mode only a number is given, format [lateral elevational]
.rcvFnum : the fnumber that is used for beamforming in receive (double)
.signaltype : string representing the signal type. For instance RF for RF data, ENV for envelope data DICOM  for dicom data and so on

NOTE : the header field is far from complete and not all fields are used in the framework. Also not all fields can be defined for each transducer type and acquisition mode. All possible header description fields should be stored in a separate document.

c) ROI-files

An ROI-file contains the region-of-interest for which the displacement estimates should be calculated. An ROI can be defined for each (compound) frame. The file name conventions is the same as for the data-file

ROI_<name_of_dataset>_<framenr>.mat (ROI_flowsims_00010.mat)

The dataset contains the following variables

  • ROI{angle}(:,:,:) : cell-array of logicals. Same size/dimension as in the data file. True means the image point is positioned within the ROI and displacement will be estimated for that point, a false is outside ROI, so no displacements will be estimated

d) GRID-file

This file contains a description of the USGRID, containing, the X, Y and Z coordinates (in m) of the ultrasound data samples. Also it holds the displacement estimation grid (DISPGRID), containing the coordinates of the data samples for which a displacement should be estimated. These coordinates are stored as indices into the file, (see Matlab functions <ind2sub> and <sub2ind> for a conversion between indices and position in the data-matrix)

The file name convention is

GRID_<user_defined_name>.mat (GRID_smallarea.mat>

The file contains the following variables

  • USGRID{angle}
#!Matlab
.x : single vector containing the x-coordinates of the US pixels (m)
.y : single vector containing the y-coordinates of the US pixels (m)
.z : single vector containing the z-coordinates of the US pixels (m)
.size : contains the size in x, y and z direction ([x y z])
  • DISPGRID : cell array of size (iter,angle) containing a field <indices>. This field is an unsigned int32 row-vector with indices that are used in displacement estimation. These indices can also be used in the USGRID.x/y/z vector to get the coordinates/

All vectors are row-vectors ([1 2 … n])

Updated