Loading src/main/java/EyesisDCT.java +0 −11 Original line number Diff line number Diff line Loading @@ -792,23 +792,12 @@ public class EyesisDCT { for (int i = 0; i< norm_sym_weights.length; i++){ scale_sym += norm_sym_weights[i]*kernels[chn].st_kernels[nc][tileY][tileX][i]; } /* for (int i = 0; i< dct_size; i++){ for (int j = 0; j< dct_size; j++){ double d = kernels[chn].st_kernels[nc][tileY][tileX][i*dct_size+j]; if (i > 0) d*=2; if (j > 0) d*=2; scale_sym +=d; } } */ for (int i=0; i < kernels[chn].st_kernels[nc][tileY][tileX].length;i++) { kernels[chn].st_kernels[nc][tileY][tileX][i] /= scale_sym; } if ((debugLevel > 0) && (tileY== dct_parameters.tileY) && (tileX==dct_parameters.tileX)) { System.out.println("chn="+chn+" tileY="+tileY+", tileX"+tileY+" scale_sym="+scale_sym); } } // Make a copy of direct kernels (debug feature, may be removed later) for (int i = 0; i < dct_size;i++){ Loading src/main/java/ImageDtt.java +18 −3 Original line number Diff line number Diff line Loading @@ -661,7 +661,18 @@ public class ImageDtt { final double [][] filters_proto = new double[3][]; System.out.println("dct_color_convert(): kr="+kr+" kg="+kg+" kb="+kb); final double [] sigmas = {sigma_rb,sigma_y,sigma_color}; double [] norm_sym_weights = new double [dct_size*dct_size]; for (int i = 0; i < dct_size; i++){ for (int j = 0; j < dct_size; j++){ double d = Math.cos(Math.PI*i/(2*dct_size))*Math.cos(Math.PI*j/(2*dct_size)); if (i > 0) d*= 2.0; if (j > 0) d*= 2.0; norm_sym_weights[i*dct_size+j] = d; } } for (int n = 0; n<3; n++) { double s = 0.0; for (int i = 0; i < dct_size; i++){ for (int j = 0; j < dct_size; j++){ Loading @@ -669,12 +680,16 @@ public class ImageDtt { if (sigmas[n] == 0.0) d = ((i == 0) && (j==0))? 1.0:0.0; else d = Math.exp(-(i*i+j*j)/(2*sigmas[n])); filters_proto_direct[n][i*dct_size+j] = d; if (i > 0) d*=2; if (j > 0) d*=2; s += d; // if (i > 0) d*=2; // if (j > 0) d*=2; // s += d; } } for (int i = 0; i< dct_len; i++){ s += norm_sym_weights[i]*filters_proto_direct[n][i]; } System.out.println("dct_color_convert(): sigmas["+n+"]="+sigmas[n]+", sum="+s); for (int i = 0; i < dct_len; i++){ filters_proto_direct[n][i] /=s; Loading Loading
src/main/java/EyesisDCT.java +0 −11 Original line number Diff line number Diff line Loading @@ -792,23 +792,12 @@ public class EyesisDCT { for (int i = 0; i< norm_sym_weights.length; i++){ scale_sym += norm_sym_weights[i]*kernels[chn].st_kernels[nc][tileY][tileX][i]; } /* for (int i = 0; i< dct_size; i++){ for (int j = 0; j< dct_size; j++){ double d = kernels[chn].st_kernels[nc][tileY][tileX][i*dct_size+j]; if (i > 0) d*=2; if (j > 0) d*=2; scale_sym +=d; } } */ for (int i=0; i < kernels[chn].st_kernels[nc][tileY][tileX].length;i++) { kernels[chn].st_kernels[nc][tileY][tileX][i] /= scale_sym; } if ((debugLevel > 0) && (tileY== dct_parameters.tileY) && (tileX==dct_parameters.tileX)) { System.out.println("chn="+chn+" tileY="+tileY+", tileX"+tileY+" scale_sym="+scale_sym); } } // Make a copy of direct kernels (debug feature, may be removed later) for (int i = 0; i < dct_size;i++){ Loading
src/main/java/ImageDtt.java +18 −3 Original line number Diff line number Diff line Loading @@ -661,7 +661,18 @@ public class ImageDtt { final double [][] filters_proto = new double[3][]; System.out.println("dct_color_convert(): kr="+kr+" kg="+kg+" kb="+kb); final double [] sigmas = {sigma_rb,sigma_y,sigma_color}; double [] norm_sym_weights = new double [dct_size*dct_size]; for (int i = 0; i < dct_size; i++){ for (int j = 0; j < dct_size; j++){ double d = Math.cos(Math.PI*i/(2*dct_size))*Math.cos(Math.PI*j/(2*dct_size)); if (i > 0) d*= 2.0; if (j > 0) d*= 2.0; norm_sym_weights[i*dct_size+j] = d; } } for (int n = 0; n<3; n++) { double s = 0.0; for (int i = 0; i < dct_size; i++){ for (int j = 0; j < dct_size; j++){ Loading @@ -669,12 +680,16 @@ public class ImageDtt { if (sigmas[n] == 0.0) d = ((i == 0) && (j==0))? 1.0:0.0; else d = Math.exp(-(i*i+j*j)/(2*sigmas[n])); filters_proto_direct[n][i*dct_size+j] = d; if (i > 0) d*=2; if (j > 0) d*=2; s += d; // if (i > 0) d*=2; // if (j > 0) d*=2; // s += d; } } for (int i = 0; i< dct_len; i++){ s += norm_sym_weights[i]*filters_proto_direct[n][i]; } System.out.println("dct_color_convert(): sigmas["+n+"]="+sigmas[n]+", sum="+s); for (int i = 0; i < dct_len; i++){ filters_proto_direct[n][i] /=s; Loading