Ultrasound Beamformer Development Framework for C++ and CUDA
To pull and work with this repository, ensure you have the following:
-
Git Large File Storage (LFS)
- This repository uses Git LFS to handle large files.
- Install Git LFS and initialize it in your environment:
git lfs install
-
MATLAB
- You will need MATLAB installed to access necessary mex headers.
- Ensure MATLAB is added to your system path:
- On Windows: Follow these instructions.
- On macOS/Linux: Typically, you can add MATLAB to your path by editing your shell profile (e.g.,
.bashrcor.zshrc) with:export PATH="/Applications/MATLAB_<version>.app/bin:$PATH" # Update version as necessary
├── 📂 include/ # Header files
│ ├── bfm.h # Main entry point of the API | Contains all necessary includes
│ ├── bfm_preproc.h # Stores all preprocessing algorithms
│ ├── bfm_midproc.h # Stores all beamforming algorithms
│ ├── bfm_postproc.h # Stores all postprocessing algorithms
│ ├── bfm_Thread.h # Contains helpful data-handling parallel methods to call
│ ├── bfm_noThread.h # Contains helpful data-handling non-parallel Methods to call
│ ├── namespace_funcs.h # Contains miscellaneous helper functions
│ └── object_store.h # Main datastore class to handle Matlab data translation and storage
├── 📂 src/ # API implementation files
│ ├── 📂 ifiles/ # Implementation files corresponding to the headers in include/
│ │ ├── bfm_preproc.cpp
│ │ ├── bfm_midproc.cpp
│ │ ├── bfm_postproc.cpp
│ │ ├── bfm_Thread.cpp
│ │ ├── bfm_noThread.cpp
│ │ └── object_store.cpp
│ └── main.cpp # Main datastore class to handle Matlab data translation and storage
├── 📂 testing/ # Development testing folder
├── 📂 unit_tests/ # Organized unit tests
├── 📄 CMakeLists.txt # Subdirectory CMake configuration file for mex generation
└── 📄 run_tests.sh # Shell script to be called by cmake for unit testing