Optimized Belief Propagation (CPU and GPU)
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 CBpFileHandlingClass to retrieve path of stereo set files for reading and for output
 CBpImage< T >Class to define images that are used in bp processing
 CDisparityMap< float >
 CDisparityMap< T >Child class of BpImage to define disparity map image that is output from bp processing
 CBpLevel< T >Class to store and retrieve properties of a bp processing level including a data type specified as a class template parameter
 Cbeliefprop::BpLevelPropertiesPOD struct to store bp level data. Struct can be passed to global CUDAs kernel so needs to take restrictions of what's allowed for passing data from the host to a CUDA kernel into account
 Cbeliefprop::BpOnDevice< T, DISP_VALS, ACCELERATION >Structure with pointers to objects containing functions for smoothing images, processing bp, and memory management on target device using specified acceleration
 Cbeliefprop::BpRunOutputStructure with output disparity map, runtime, and other evaluation data
 Cbeliefprop::BpSettingsStructure to store the belief propagation settings including the number of levels and iterations
 Cbeliefprop::BpStereoSetStructure with stereo set name, disparity count, and scale factor for output disparity map
 Cbp_single_thread_imp::Convolve
 CCPUThreadsPinnedToSocketClass to adjust and retrieve settings corresponding to CPU threads pinned to socket
 CDetailedTimings< T >Class to store timings of one or more segments taken during the run(s) of an implementation or across multiple implementations.
Index for timing segments must be enum type
 CDisparityMapEvaluationClass to store disparity map evaluation results. Specifically comparison between two disparity maps such as output disparity map from bp processing and ground truth disparity map
 Cbeliefprop::DisparityMapEvaluationParamsStruct to store parameters for evaluation of disparity map from stereo processing
 CEvalAcrossRunsDataStructure to store data with mappings for evaluating results across runs as well as speedup headers in order
 CEvaluateAcrossRunsClass with operator function to evaluate implementation runs across multiple architectures. Outputs a file with speedup data on every run with the runs ordered from fastest to slowest
 CEvaluateImpResultsClass with operator function to evaluate implementations of the same algorithm across different data types and acceleration methods
 CEvaluateImpResultsBpChild class of EvaluateImpResults that defines member functions for belief propagation evaluation which override pure virtual functions in parent class
 Cbp_single_thread_imp::FilterImage
 Cbp_single_thread_imp::image< T >
 CInputSignatureClass defines input signature for evaluation run that contains evaluation set number, data type, and whether or not to use templated loop iteration count
 CMemoryManagement< T >Class for memory management with functions defined for standard memory allocation using CPU.
Class functions can be overridden to support other computation devices such as GPU
 CMemoryManagementCUDA< T >Child class of MemoryManagement with overriden member functions to manage memory on CUDA device including transferring data between host and CUDA device
 Crun_eval::OutFileInfo
 CParallelParamsAbstract class for holding and processing parallelization parameters.
Child class(es) specific to implementation(s) must be defined
 CParallelParamsBpChild class of ParallelParams to store and process parallelization parameters to use in each BP kernel at each level
 Cbp_single_thread_imp::pnm_error
 CProcessBp< T, DISP_VALS, ACCELERATION >Abstract class to run belief propagation on target device. Some of the class functions need to be overridden for processing on target device
 CProcessBpCUDA< T, DISP_VALS, ACCELERATION >Child class of ProcessBp that define functions used in processing bp in the CUDA implementation
 CProcessBpOptimizedCPU< T, DISP_VALS, ACCELERATION >Child class of ProcessBp that defines functions used in processing bp in the optimized CPU implementation
 Cbp_single_thread_imp::rgb
 CRunBpOnStereoSet< T, DISP_VALS, ACCELERATION >Abstract class to set up and run belief propagation on target device using specified acceleration
 CRunBpOnStereoSetCUDA< T, DISP_VALS, ACCELERATION >Child class of RunBpOnStereoSet to run CUDA implementation of belief propagation on a given stereo set as defined by reference and test image file paths
 CRunBpOnStereoSetOptimizedCPU< T, DISP_VALS, ACCELERATION >Child class of RunBpOnStereoSet to run optimized CPU implementation of belief propagation on a given stereo set as defined by reference and test image file paths
 CRunBpOnStereoSetSingleThreadCPU< T, DISP_VALS, ACCELERATION >Child class of RunBpOnStereoSet to run single-threaded CPU implementation of belief propagation on a given stereo set as defined by reference and test image file paths
 CRunDataClass to store headers with data corresponding to current program run and evaluation
 CRunImpMultInputsBase class for running and evaluating multiple runs of an implementation that may be optimized on CPU or GPU
 CRunImpMultInputsBpChild class of RunImpMultInputs to run specified belief propagation implementation on a number of inputs
 CRunImpMultTypesAccelsClass to run and evaluate implementation(s) of an algorithm using multiple settings including different datatype, inputs, and acceleration methods
 CRunImpOnInput< T, OPT_IMP_ACCEL, NUM_INPUT >Virtual class to run and evaluate implementation on a input specified by index number
 CRunImpOnInputBp< T, OPT_IMP_ACCEL, NUM_INPUT >Child class of RunImpOnInput to run and evaluate belief propagation implementation on a specified input
 Crun_environment::RunImpSettingsStructure that stores settings for current implementation run
 CRunResultsSpeedupsClass to load and store run results data including speedups from evaluation
 CSmoothImageClass for smoothing the images before running BP. Smoothing image always uses float data type
 CSmoothImageCPUChild class of SmoothImage for smoothing images in the optimized CPU implementation
 CSmoothImageCUDAChild class of SmoothImage for smoothing images in the CUDA implementation