code: private void horizontallyFromSrcToWorkGray(BufferedImage srcImg, byte[][] workPixels, int start, int delta) {
      final
      int[]
        tempPixels =
        new int[srcWidth];   // Used if we work on int based bitmaps, later used to keep channel values
      final byte[] srcPixels = new byte[srcWidth]; // create reusable row to minimize memory overhead
  
      for (int k = start; k < srcHeight; k = k + delta) {
        ImageUtils.getPixelsBGR(srcImg, k, srcWidth, srcPixels, tempPixels);
  
        for (int i = dstWidth - 1; i >= 0; i--) {
          final int max = horizontalSubsamplingData.arrN[i];
  
          float sample0 = 0.0f;
          int index = i * horizontalSubsamplingData.numContributors;
          for (int j = max - 1; j >= 0; j--) {
            float arrWeight = horizontalSubsamplingData.arrWeight[index];
            int pixelIndex = horizontalSubsamplingData.arrPixel[index];
  
            sample0 += (srcPixels[pixelIndex] & 0xff) * arrWeight;
            index++;
          }
  
          workPixels[k][i] = toByte(sample0);
        }
      }
    }
docs: Apply filter to sample horizontally from Src to Work