Search This Blog

Sunday, September 29, 2013

FireVoxel Build 125 is released for testing.

1.  Changed implementation of the Realloc function (->alloc+free) to fix long-standing problem.

 2.  Changed implementation of FVXDCM_GetImage from  "DCMTK-Render" API to accessing the internal representation of the image data.

 3.  Removed execessive memory allocation during the histogram calculaiton for Parametric Map entities.

 4.  Integrated simple, fast but an efficient compression for Si Volume,Parametric Maps and ROIs. For non-ROIs volumes are compressed only if # of voxels exceeds certain threshold (10M now). Otherwise, simply stored using the MinBits.

 5.  Change internal design to exclude the concept of "Padded" and "Compressed" images. This removed dozens of unneccesary conversions (ImageLinesToOptimized and OptimizedToImageLines).

 6.  Combined the  VA_VolMaxVal,VA_VolSIrangeVA_VolIntervalSI, VolIntervalSI_AllTimes into a single function (VA_VolSIrange)

 7.  Implemented highly efficcient compession for Parametric maps that also works very well for other data.  This is base on a 32-bit input Huffman compressor which is called in highly parallel fashion.

 8.  As the result of the compession, the size of the fvx files is greatly reduced/

 8.  Corrected the procedure for Automatic Display Window\Center detection to correctly process volumes containing large areas of "0" artifical background.

 9. Fixed the error of the unitialized bounding rectange in the Histogram visualization

 10.  Implemented the frame-timiming logic for PET dyanamic volumes using the FrameReferenceTime DICOM tag.

 11.  Fixed the parametric map calculation defect (reported on K-trans) that affected all the time-axis models.  FVX is internally storing time in absolute format while some models require relative times with the t0=0

 12. Corrected the T2/T2* mapping problem when  minTE was 36 ms, that caused the Global Optimization to fail, as the T2 range was set unsuitable to [1,250] ms.

 13.  Corrected defect: VoxelInfo on Mouse move is disable now, when the Active volume is Invisible.

 14.  Fixedd the VTF save extension problem.

 15.  Fixed defects saving to FVX format.

  16. When 3 point projection View is initiated, the other 2 orthogonal projections start in a Single, middle-slice view.

 17.  "FastCode"  Huffman compression construcct for fast deccompression. Merged residual prediction decoding scheme with Huffman decoding to avoid writing to intermediate buffer.

 18.  Switched BW (1 bit ROI) compression to 16-bit base to gain extra compression and speed while drawing.

 19.  Fixed the hourglass cursor problem in:  DEMP dialog, Time-Scroll, mouse-wheel scroll,

 20.  When f4 (RoiStats4D dialog)  is  pressed on 4D volume the wait cursor is not shown.

 21. Enabled  ViewTAC dialog (real time viewing of TACs as the cursor moving over) for 4D Parametric Maps and Real-valued volumes (that includes PET).

 22.  "Process ROI only" with the 4D ROI, would not work and output the message "3D Volume Required"

 23.  Enabled parametric model calculation over the Real-valued volumes such as PET.


Saturday, September 28, 2013

Fixing a crash in Huffman decompresion, when there is a single leaf to decode

Friday, September 27, 2013

DCMTK bug:  official method for disabling the Logger did not work. So have to eliminate all the calls to Logger.  Presently, working on several headers for Jpeg Error Messages, that internally call logger.
Experienced that intermittent DICOM crash inside the DCMTK library.
Traced it down to DCMTK logging certain events routinely, even without error encountered, so
I am trying to disable the DCMTK::logger right now...

Apparently, a common problem, see:
 http://forum.dcmtk.org/viewtopic.php?p=12206&sid=ed45aa727c4ec83992bed097b713920f

working on disabling logger completely.

Recompiling the whole DCMTK by redefining

#define OFLOG_TRACE(logger, msg)
#define OFLOG_DEBUG(logger, msg)
#define OFLOG_INFO(logger, msg) 
#define OFLOG_WARN(logger, msg) 
#define OFLOG_ERROR(logger, msg)
#define OFLOG_FATAL(logger, msg) 

Finished the Automatic Build Test for Build 125. 

Thursday, September 26, 2013

Fixing defect:  On some volumes, when drawing on the single slice ROI, and the mouse cursor croses the right edge of the slice, the ROI voxels apper to be drawn at the top edge.

In parametric map calculation framework, switched the code from TBB:tasks constructs into parallel_for construct substantially reducing the size and complexity of the code.

Wednesday, September 25, 2013

Added new functionality: Presenly Parametric Model calculation would NOT initialize on the PET volumes.
Update: Such logic is simply not present for Real-valued volumes (=PET).  Requires a separate implementation. But this is critical for the implementation of MRTM, SMRTM models.
Enabled  ViewTAC dialog (real time viewing of TACs as the cursor moving over) for 4D Parametric Maps and Real-valued volumes (that includes PET).
Fixed defect when Wait Cursor is not display while obtaining TAC from a 4D volume.  For large volumes such as PET this causes a problem as it is unclear if operation is being performed or app just froze.
Working on several defects related to display "hourglass" cursor in some registration scenarios, timee scrolling etc.

Switched BW (1 bit ROI) compression to 16-bit base to gain extra compression and speed while drawing the ROI.

Tuesday, September 24, 2013

Meeting with Yu-Shin. Installed and ran the FireVoxel on her MacWin configuration on the acquired PET dataset. Discussed priorities for the next week:  PET-to-MPRAGE registration, PET averaging function for specified frames, further TAC support for Excel import, parametric models without Input funciton SRTM, SRTM2, MRTM.
The need for the MNI-Altlas registration was raised again.