![]() |
Stereo IVCL
1.0.0
Stereo Matching on GPGPU
|
Macros | |
| #define | HIER_ITER 4 |
| #define | DISP_RANGE 64 |
| #define | DISP_CAMERA 32 |
| #define | LOCAL_SIZE 8 |
Functions | |
| __kernel void | initializeHierCost (__global float *datacost, __global float *hierCost, int width, int height, int dispRange) |
| void | gpu_comp_msg (__global float *m1, __global float *m2, __global float *m3, __global float *data, __global float *dest, int MAX_DISP, float DISCONT_COST, float CONT_COST) |
| void | gpu_comp_msg_local (__local float *m1, __local float *m2, __local float *m3, float *data, float *dest, int MAX_DISP, float DISCONT_COST, float CONT_COST) |
| __kernel void | hierBP (__global float *temp_m_u, __global float *temp_m_d, __global float *temp_m_l, __global float *temp_m_r, __global float *datacost, __global float *m_u, __global float *m_d, __global float *m_l, __global float *m_r, __global float *gpu_zero, int width, int height, int dispRange, int dist, float DISCONT_COST, float CONT_COST) |
| __kernel void | hierBP_local (__global float *temp_m_u, __global float *temp_m_d, __global float *temp_m_l, __global float *temp_m_r, __global float *datacost, __global float *m_u, __global float *m_d, __global float *m_l, __global float *m_r, __global float *gpu_zero, int width, int height, int dispRange, int dist, float DISCONT_COST, float CONT_COST) |
| __kernel void | updateCostLayer (__global float *m_u, __global float *m_d, __global float *m_l, __global float *m_r, int width, int height, int dispRange, int dist) |
| __kernel void | finalBP (__global float *m_u, __global float *m_d, __global float *m_l, __global float *m_r, __global float *datacost, __global float *gpu_zero, int width, int height, int dispRange) |
| #define DISP_CAMERA 32 |
| #define DISP_RANGE 64 |
| #define HIER_ITER 4 |
| #define LOCAL_SIZE 8 |
| __kernel void finalBP | ( | __global float * | m_u, |
| __global float * | m_d, | ||
| __global float * | m_l, | ||
| __global float * | m_r, | ||
| __global float * | datacost, | ||
| __global float * | gpu_zero, | ||
| int | width, | ||
| int | height, | ||
| int | dispRange | ||
| ) |
The final belief propagation in the base layer
| m_u | The array storage for node in up direction |
| m_d | The array storage for node in down direction |
| m_l | The array storage for node in left direction |
| m_r | The array storage for node in right direction |
| datacost | The 3D datacost |
| gpu_zero | Array containing zero to be used in GPU |
| width | The image width |
| height | The image height |
| dispRange | The disparity search range |
| void gpu_comp_msg | ( | __global float * | m1, |
| __global float * | m2, | ||
| __global float * | m3, | ||
| __global float * | data, | ||
| __global float * | dest, | ||
| int | MAX_DISP, | ||
| float | DISCONT_COST, | ||
| float | CONT_COST | ||
| ) |
Belief message propagation computation. This uses only global memory
| m1 | The 1st neighbor node |
| m2 | The 2nd neighbor node |
| m3 | The 3rd neighbor node |
| data | The current node value |
| dest | The node to store the compute belief message |
| MAX_DISP | The disparity search range |
| DISCONT_COST | The edge hyperparameter |
| CONT_COST | The smoothing hyperparameter |
| void gpu_comp_msg_local | ( | __local float * | m1, |
| __local float * | m2, | ||
| __local float * | m3, | ||
| float * | data, | ||
| float * | dest, | ||
| int | MAX_DISP, | ||
| float | DISCONT_COST, | ||
| float | CONT_COST | ||
| ) |
Belief message propagation computation. This uses local memory (faster) if the GPU supports
| m1 | The 1st neighbor node |
| m2 | The 2nd neighbor node |
| m3 | The 3rd neighbor node |
| data | The current node value |
| dest | The node to store the compute belief message |
| MAX_DISP | The disparity search range |
| DISCONT_COST | The edge hyperparameter |
| CONT_COST | The smoothing hyperparameter |
| __kernel void hierBP | ( | __global float * | temp_m_u, |
| __global float * | temp_m_d, | ||
| __global float * | temp_m_l, | ||
| __global float * | temp_m_r, | ||
| __global float * | datacost, | ||
| __global float * | m_u, | ||
| __global float * | m_d, | ||
| __global float * | m_l, | ||
| __global float * | m_r, | ||
| __global float * | gpu_zero, | ||
| int | width, | ||
| int | height, | ||
| int | dispRange, | ||
| int | dist, | ||
| float | DISCONT_COST, | ||
| float | CONT_COST | ||
| ) |
The interface for hierarchal belief propagation using only global memory
| temp_m_u | The temporary array storage for node in up direction |
| temp_m_d | The temporary array storage for node in down direction |
| temp_m_l | The temporary array storage for node in left direction |
| temp_m_r | The temporary array storage for node in right direction |
| datacost | The 3D datacost |
| m_u | The array storage for node in up direction |
| m_d | The array storage for node in down direction |
| m_l | The array storage for node in left direction |
| m_r | The array storage for node in right direction |
| gpu_zero | Array containing zero to be used in GPU |
| width | The image width |
| height | The image height |
| dispRange | The disparity search range |
| dist | The distance value used for indexing |
| DISCONT_COST | The edge hyperparameter |
| CONT_COST | The smoothing hyperparameter |
| __kernel void hierBP_local | ( | __global float * | temp_m_u, |
| __global float * | temp_m_d, | ||
| __global float * | temp_m_l, | ||
| __global float * | temp_m_r, | ||
| __global float * | datacost, | ||
| __global float * | m_u, | ||
| __global float * | m_d, | ||
| __global float * | m_l, | ||
| __global float * | m_r, | ||
| __global float * | gpu_zero, | ||
| int | width, | ||
| int | height, | ||
| int | dispRange, | ||
| int | dist, | ||
| float | DISCONT_COST, | ||
| float | CONT_COST | ||
| ) |
The interface for hierarchal belief propagation using local memory
| temp_m_u | The temporary array storage for node in up direction |
| temp_m_d | The temporary array storage for node in down direction |
| temp_m_l | The temporary array storage for node in left direction |
| temp_m_r | The temporary array storage for node in right direction |
| datacost | The 3D datacost |
| m_u | The array storage for node in up direction |
| m_d | The array storage for node in down direction |
| m_l | The array storage for node in left direction |
| m_r | The array storage for node in right direction |
| gpu_zero | Array containing zero to be used in GPU |
| width | The image width |
| height | The image height |
| dispRange | The disparity search range |
| dist | The distance value used for indexing |
| DISCONT_COST | The edge hyperparameter |
| CONT_COST | The smoothing hyperparameter |
| __kernel void initializeHierCost | ( | __global float * | datacost, |
| __global float * | hierCost, | ||
| int | width, | ||
| int | height, | ||
| int | dispRange | ||
| ) |
Interpolate the initial cost (base) into a hierachal structure datacost
| datacost | The initial 3D cost |
| hierCost | Hierarchal 3D cost |
| width | The image width |
| height | The image height |
| dispRange | The stereo disparity search range |
| __kernel void updateCostLayer | ( | __global float * | m_u, |
| __global float * | m_d, | ||
| __global float * | m_l, | ||
| __global float * | m_r, | ||
| int | width, | ||
| int | height, | ||
| int | dispRange, | ||
| int | dist | ||
| ) |
Update the computed cost into the next hierarchal layer
| m_u | The array storage for node in up direction |
| m_d | The array storage for node in down direction |
| m_l | The array storage for node in left direction |
| m_r | The array storage for node in right direction |
| width | The image width |
| height | The image height |
| dispRange | The disparity search range |
| dist | The distance value used for indexing |
1.8.16