docs: protected void performShrinkage( I transform , int numLevels ) {
  
  		// step through each layer in the pyramid.
  		for( int i = 0; i < numLevels; i++ ) {
  			int w = transform.width;
  			int h = transform.height;
  			int ww = w/2;
  			int hh = h/2;
  			Number threshold;
  			I subband;
  
  			// HL
  			subband = transform.subimage(ww,0,w,hh, null);
  			threshold = computeThreshold(subband);
  			rule.process(subband,threshold);
  
  //			System.out.print("HL = "+threshold);
  
  			// LH
  			subband = transform.subimage(0,hh,ww,h, null);
  			threshold = computeThreshold(subband);
  			rule.process(subband,threshold);
  
  //			System.out.print("  LH = "+threshold);
  
  			// HH
  			subband = transform.subimage(ww,hh,w,h, null);
  			threshold = computeThreshold(subband);
  			rule.process(subband,threshold);
  
  //			System.out.println("  HH = "+threshold);
  
  			transform = transform.subimage(0,0,ww,hh, null);
  		}
  
  	}