clt_parameters.img_dtt,// final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others
clt_parameters.img_dtt,// final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others
scene_pXpYD,// final double [][] pXpYD, // per-tile array of pX,pY,disparity triplets (or nulls)
scene_pXpYD,// final double [][] pXpYD, // per-tile array of pX,pY,disparity triplets (or nulls)
...
@@ -3472,11 +3504,92 @@ public class OpticalFlow {
...
@@ -3472,11 +3504,92 @@ public class OpticalFlow {
clt_parameters.gpu_sigma_g,// 0.6, 0.7
clt_parameters.gpu_sigma_g,// 0.6, 0.7
clt_parameters.gpu_sigma_m,// = 0.4; // 0.7;
clt_parameters.gpu_sigma_m,// = 0.4; // 0.7;
gpu_sigma_rb_corr,// final double gpu_sigma_rb_corr, // = 0.5; // apply LPF after accumulating R and B correlation before G, monochrome ? 1.0 : gpu_sigma_rb_corr;
gpu_sigma_rb_corr,// final double gpu_sigma_rb_corr, // = 0.5; // apply LPF after accumulating R and B correlation before G, monochrome ? 1.0 : gpu_sigma_rb_corr;
if((vis_corr_pd!=null)||(fclt_corrs!=null)){// calculate and extract correlation
image_dtt.clt_process_tl_correlations_GPU(// convert to pixel domain and process correlations already prepared in fcorr_td and/or fcorr_combo_td
clt_parameters.img_dtt,// final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others
// both arrays should have same non-null tiles
fcorrs_td[i],// final float [][][][] corr_td, // [tilesY][tilesX][pair][4*64] transform domain representation of 6 corr pairs
fcorrs_combo_td[i],// final float [][][][] corr_combo_td, // [4][tilesY][tilesX][pair][4*64] TD of combo corrs: qud, cross, hor,vert
// each of the top elements may be null to skip particular combo type
null,// final double [][][][] corr_tiles, // [tilesY][tilesX][pair][] ([(2*gpu_corr_rad+1)*(2*gpu_corr_rad+1)]) or null
null,//clt_corr_partial, // final double [][][][][] clt_corr_partial,// [tilesY][tilesX][quad]color][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
// [tilesY][tilesX] should be set by caller
fclt_corr,// [tile][index][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
// When clt_mismatch is non-zero, no far objects extraction will be attempted
null,// final double [][] clt_mismatch, // [12][tilesY * tilesX] // ***** transpose unapplied ***** ?. null - do not calculate
// values in the "main" directions have disparity (*_CM) subtracted, in the perpendicular - as is
disparity_map,// final double [][] disparity_map, // [8][tilesY][tilesX], only [6][] is needed on input or null - do not calculate
// last 2 - contrast, avg/ "geometric average)
disparity_modes,// final int disparity_modes, // bit mask of disparity_map slices to calculate/return
image_dtt.clt_process_tl_correlations_GPU(// convert to pixel domain and process correlations already prepared in fcorr_td and/or fcorr_combo_td
image_dtt.clt_process_tl_correlations_GPU(// convert to pixel domain and process correlations already prepared in fcorr_td and/or fcorr_combo_td
clt_parameters.img_dtt,// final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others
clt_parameters.img_dtt,// final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others
// both arrays should have same non-null tiles
// both arrays should have same non-null tiles
...
@@ -3634,8 +3733,9 @@ public class OpticalFlow {
...
@@ -3634,8 +3733,9 @@ public class OpticalFlow {
fcorr_combo_td,// final float [][][][] corr_combo_td, // [4][tilesY][tilesX][pair][4*64] TD of combo corrs: qud, cross, hor,vert
fcorr_combo_td,// final float [][][][] corr_combo_td, // [4][tilesY][tilesX][pair][4*64] TD of combo corrs: qud, cross, hor,vert
// each of the top elements may be null to skip particular combo type
// each of the top elements may be null to skip particular combo type
null,// final double [][][][] corr_tiles, // [tilesY][tilesX][pair][] ([(2*gpu_corr_rad+1)*(2*gpu_corr_rad+1)]) or null
null,// final double [][][][] corr_tiles, // [tilesY][tilesX][pair][] ([(2*gpu_corr_rad+1)*(2*gpu_corr_rad+1)]) or null
clt_corr_partial,// final double [][][][][] clt_corr_partial,// [tilesY][tilesX][quad]color][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
null,// clt_corr_partial, // final double [][][][][] clt_corr_partial,// [tilesY][tilesX][quad]color][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
// [tilesY][tilesX] should be set by caller
// [tilesY][tilesX] should be set by caller
fclt_corr,// [tile][index][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
// When clt_mismatch is non-zero, no far objects extraction will be attempted
// When clt_mismatch is non-zero, no far objects extraction will be attempted
null,// final double [][] clt_mismatch, // [12][tilesY * tilesX] // ***** transpose unapplied ***** ?. null - do not calculate
null,// final double [][] clt_mismatch, // [12][tilesY * tilesX] // ***** transpose unapplied ***** ?. null - do not calculate
// values in the "main" directions have disparity (*_CM) subtracted, in the perpendicular - as is
// values in the "main" directions have disparity (*_CM) subtracted, in the perpendicular - as is
...
@@ -3662,15 +3762,40 @@ public class OpticalFlow {
...
@@ -3662,15 +3762,40 @@ public class OpticalFlow {
// ,dbg_titles
// ,dbg_titles
);
);
*/
*/
if(vis_corr_pd!=null){// add combined data as the last slice
vis_corr_pd[num_scenes]=ImageDtt.corr_partial_wnd(// not used in lwir
fclt_corr,// clt_corr_partial, // final double [][][][][] corr_data,
tilesX,//
2*image_dtt.transform_size-1,// final int corr_size,
@@ -3326,6 +3326,7 @@ public class QuadCLT extends QuadCLTCPU {
...
@@ -3326,6 +3326,7 @@ public class QuadCLT extends QuadCLTCPU {
null,// final double [][][][] corr_tiles, // [tilesY][tilesX][pair][] ([(2*gpu_corr_rad+1)*(2*gpu_corr_rad+1)]) or null
null,// final double [][][][] corr_tiles, // [tilesY][tilesX][pair][] ([(2*gpu_corr_rad+1)*(2*gpu_corr_rad+1)]) or null
clt_corr_partial1,// final double [][][][][] clt_corr_partial,// [tilesY][tilesX][quad]color][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
clt_corr_partial1,// final double [][][][][] clt_corr_partial,// [tilesY][tilesX][quad]color][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
// [tilesY][tilesX] should be set by caller
// [tilesY][tilesX] should be set by caller
null,// [tile][index][(2*transform_size-1)*(2*transform_size-1)] // if null - will not calculate
// When clt_mismatch is non-zero, no far objects extraction will be attempted
// When clt_mismatch is non-zero, no far objects extraction will be attempted
null,// final double [][] clt_mismatch, // [12][tilesY * tilesX] // ***** transpose unapplied ***** ?. null - do not calculate
null,// final double [][] clt_mismatch, // [12][tilesY * tilesX] // ***** transpose unapplied ***** ?. null - do not calculate
// values in the "main" directions have disparity (*_CM) subtracted, in the perpendicular - as is
// values in the "main" directions have disparity (*_CM) subtracted, in the perpendicular - as is