Search This Blog

Tuesday, August 2, 2016

Performed optimization of BiCal algorithm and code. Almost 100% parallelization is achieved.



On the reference Brain-7T volumes execution time was reduced from 202 sec down to 49 sec.

Monday, August 1, 2016

BiCal profiling result (see diagram below):

1.  Starts with Edge detection - virtually 100% parallel.
2.  Then processing start and separate peaks corresponds to iterations
with the increasing degree of Legendre polynomials.
3.  As degree grows, the SVD (= fully parallel) portion grows so the total
core load grows too.

I will be addressing the non-parallelized part discovered with VC++ Profiler.
FireVoxel Build 222 is released.

Sunday, July 31, 2016

Support the "Scale Factor" field in the MIDAS file format.
Fixed Object selection defect:  Staring from empty selection in certain situations a VROI was clicked to select but the "Selection Tracker" failed to show up leaving the User confused.
CT-real (rat) dataset - fixed the defect when it was not possible to place a 2nd landmark anywhere.

Saturday, July 30, 2016

IM file format:  fixed the legacy file load with 8-bit voxels and non-trivial   "minimal value"\"maximum value" fields.

Wednesday, July 27, 2016

Major improvements to BiCal using new SVD-Parallel Jacobi:
a)  Was able to process much higher degrees of the polynomial - 25 from previous max 15.  New
image looks great and better.  Not able to do it in previous versions due to numerical instability of the
20000x20000 matrix solution using old SVD-NumericalRecipes (QR-decomposition).  Jacobi algorithm is simpler but more stable.
b)  At Degree=10 SVD takes 1% of calculation time, at 25 degree it takes 99% of calculation  time.
But now SVD is 100% parallel and scalable with 10x faster than  previous version.
c) On BPD datasets,  results for      WM/GM/CSM improved from  0.14/0.14/0.064  down to 0.10/0.11/0.49 for degree 25.
d) But calculation times become prohibitive at the higher degress ~40 min.

Tuesday, July 26, 2016

Completely re-engineered the CPU Capabilities Info function.  Newest processor and more reliable processing is available now.
Incorporated, debugged and improved the code for SVD: Jacobi One-sided block method.
Speed increase of about x5 times on  1000x1000 matrix comparing to serial version.
Nun-Uniformity Menu:  the Class Separation Measure function now displays the Optimal Threshold too.

Thursday, July 21, 2016

Fully implemented  PET-CT-Atlas\Rodent workflow. Tested on the Rat dataset with 30-region Atlas.
New Layer Control dialog:  implemented
a) Enable All, Disable All buttons
b) ROI operations "Combine" button with a dialog option to remove the Source Operands layers.

Monday, July 18, 2016

Build 219 is released.
New Layer Control dialog:   Enabled "Open DICOM" and "Open RAW" items.
New Layer Control dialog:  enabled the "New ROI 3D" and "New ROI 4D" buttons.
New Layer Control dialog:  Enabled the ViewFilter button and functionality.
New Layer Control dialog:  added Left Doubleclick processing (name change edit\Ctrl ROI midslice jump)

Sunday, July 17, 2016

New Layer control dialog: Added the "Info" button handler.
"Hover over ROI atlas" functionality was added. When there is an Atlas-like combination of ROIs is present, mouse cursor position is analyzed and the name of the single ROI layer is displayed that present at the mouse coordinate.