code: @Override
  	public void process() {
  		locations.reset();
  		descriptions.reset();
  
  		int stepBlockPixelsX = pixelsPerCell *stepBlock;
  		int stepBlockPixelsY = pixelsPerCell *stepBlock;
  
  		int maxY = derivX.height - pixelsPerCell * cellsPerBlockY + 1;
  		int maxX = derivX.width - pixelsPerCell * cellsPerBlockX + 1;
  
  		for (int y = 0; y < maxY; y += stepBlockPixelsY ) {
  			for (int x = 0; x < maxX; x += stepBlockPixelsX ) {
  				TupleDesc_F64 d = descriptions.grow();
  				Arrays.fill(d.value,0);
  				histogram = d.value;
  
  				for (int cellRow = 0; cellRow < cellsPerBlockY; cellRow++) {
  					int blockPixelRow = cellRow* pixelsPerCell;
  					for (int cellCol = 0; cellCol < cellsPerBlockX; cellCol++) {
  						int blockPixelCol = cellCol* pixelsPerCell;
  
  						computeCellHistogram(x+blockPixelCol, y+blockPixelRow, cellCol, cellRow);
  					}
  				}
  
  				DescribeSiftCommon.normalizeDescriptor(d,0.2);
  				locations.grow().set(x,y);
  			}
  		}
  	}
docs: Computes the descriptor across the input image