static long getBufferSizeCSM(ComponentSampleModel csm) { int[] bandOffsets = csm.getBandOffsets(); int maxBandOff = bandOffsets[0]; for (int i = 1; i < bandOffsets.length; i++) maxBandOff = Math.max(maxBandOff, bandOffsets[i]); long size = 0; if (maxBandOff >= 0) size += maxBandOff + 1; int pixelStride = csm.getPixelStride(); if (pixelStride > 0) size += pixelStride * (csm.getWidth() - 1); int scanlineStride = csm.getScanlineStride(); if (scanlineStride > 0) size += scanlineStride * (csm.getHeight() - 1); return size; }
private static long getBufferSizeCSM(ComponentSampleModel csm) { int[] bandOffsets = csm.getBandOffsets(); int maxBandOff = bandOffsets[0]; for (int i = 1; i < bandOffsets.length; i++) maxBandOff = Math.max(maxBandOff, bandOffsets[i]); long size = 0; if (maxBandOff >= 0) size += maxBandOff + 1; int pixelStride = csm.getPixelStride(); if (pixelStride > 0) size += pixelStride * (csm.getWidth() - 1); int scanlineStride = csm.getScanlineStride(); if (scanlineStride > 0) size += scanlineStride * (csm.getHeight() - 1); return size; }
private int maxDiff(ComponentSampleModel csm, short[] data, ComponentSampleModel csm2, short[] data2) { int w = csm.getWidth() * csm.getPixelStride(); int h = csm.getHeight(); int stride = csm.getScanlineStride(); int stride2 = csm2.getScanlineStride(); int diff, maxDiff = 0; for (int y = 0; y < h; y++) { for (int j = w, i = y * stride, i2 = y * stride2; j-- > 0; i++, i2++) { if (maxDiff < (diff = Math.abs(data[i] - data2[i2]))) maxDiff = diff; } } return maxDiff; }
private int[] calcMinMax(StoredValue storedValue, ComponentSampleModel sm, byte[] data) { int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); for (int y = 0; y < h; y++) for (int i = y * stride, end = i + w; i < end;) { int val = storedValue.valueOf(data[i++]); if (val < min) min = val; if (val > max) max = val; } return new int[] { min, max }; }
private int[] calcMinMax(StoredValue storedValue, ComponentSampleModel sm, short[] data) { int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); for (int y = 0; y < h; y++) for (int i = y * stride, end = i + w; i < end;) { int val = storedValue.valueOf(data[i++]); if (val < min) min = val; if (val > max) max = val; } return new int[] { min, max }; }
private int[] calcMinMax(StoredValue storedValue, ComponentSampleModel sm, byte[] data) { int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); for (int y = 0; y < h; y++) for (int i = y * stride, end = i + w; i < end;) { int val = storedValue.valueOf(data[i++]); if (val < min) min = val; if (val > max) max = val; } return new int[] { min, max }; }
private int[] calcMinMax(StoredValue storedValue, ComponentSampleModel sm, short[] data) { int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); for (int y = 0; y < h; y++) for (int i = y * stride, end = i + w; i < end;) { int val = storedValue.valueOf(data[i++]); if (val < min) min = val; if (val > max) max = val; } return new int[] { min, max }; }
private int maxDiff(ComponentSampleModel csm, short[] data, ComponentSampleModel csm2, short[] data2) { int w = csm.getWidth() * csm.getPixelStride(); int h = csm.getHeight(); int stride = csm.getScanlineStride(); int stride2 = csm2.getScanlineStride(); int diff, maxDiff = 0; for (int y = 0; y < h; y++) { for (int j = w, i = y * stride, i2 = y * stride2; j-- > 0; i++, i2++) { if (maxDiff < (diff = Math.abs(data[i] - data2[i2]))) maxDiff = diff; } } return maxDiff; }
private static long getBufferSizeCSM(ComponentSampleModel csm) { int[] bandOffsets = csm.getBandOffsets(); int maxBandOff = bandOffsets[0]; for (int i = 1; i < bandOffsets.length; i++) maxBandOff = Math.max(maxBandOff, bandOffsets[i]); long size = 0; if (maxBandOff >= 0) size += maxBandOff + 1; int pixelStride = csm.getPixelStride(); if (pixelStride > 0) size += pixelStride * (csm.getWidth() - 1); int scanlineStride = csm.getScanlineStride(); if (scanlineStride > 0) size += scanlineStride * (csm.getHeight() - 1); return size; }
private static long getBufferSizeCSM(ComponentSampleModel csm) { int[] bandOffsets = csm.getBandOffsets(); int maxBandOff = bandOffsets[0]; for (int i = 1; i < bandOffsets.length; i++) maxBandOff = Math.max(maxBandOff, bandOffsets[i]); long size = 0; if (maxBandOff >= 0) size += maxBandOff + 1; int pixelStride = csm.getPixelStride(); if (pixelStride > 0) size += pixelStride * (csm.getWidth() - 1); int scanlineStride = csm.getScanlineStride(); if (scanlineStride > 0) size += scanlineStride * (csm.getHeight() - 1); return size; }
private void lookup(ComponentSampleModel sm, byte[] src, ComponentSampleModel destsm, short[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, byte[] src, ComponentSampleModel destsm, byte[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, short[] src, ComponentSampleModel destsm, byte[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, short[] src, ComponentSampleModel destsm, byte[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, byte[] src, ComponentSampleModel destsm, short[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, byte[] src, ComponentSampleModel destsm, byte[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
public abstract void lookup(byte[] src, int srcPost, byte[] dest, int destPos, int length);
public abstract void lookup(byte[] src, int srcPost, byte[] dest, int destPos, int length);
private int maxDiff(ComponentSampleModel csm, byte[][] banks, ComponentSampleModel csm2, byte[][] banks2) { int w = csm.getWidth(); int h = csm.getHeight(); int bands = csm.getNumBands(); int stride = csm.getScanlineStride(); int pixelStride = csm.getPixelStride(); int[] bankIndices = csm.getBankIndices(); int[] bandOffsets = csm.getBandOffsets(); int stride2 = csm2.getScanlineStride(); int pixelStride2 = csm2.getPixelStride(); int[] bankIndices2 = csm2.getBankIndices(); int[] bandOffsets2 = csm2.getBandOffsets(); int diff, maxDiff = 0; for (int b = 0; b < bands; b++) { byte[] bank = banks[bankIndices[b]]; byte[] bank2 = banks2[bankIndices2[b]]; int off = bandOffsets[b]; int off2 = bandOffsets2[b]; for (int y = 0; y < h; y++) { for (int x = w, i = y * stride + off, i2 = y * stride2 + off2; x-- > 0; i += pixelStride, i2 += pixelStride2) { if (maxDiff < (diff = Math.abs(bank[i] - bank2[i2]))) maxDiff = diff; } } } return maxDiff; }
private int maxDiff(ComponentSampleModel csm, byte[][] banks, ComponentSampleModel csm2, byte[][] banks2) { int w = csm.getWidth(); int h = csm.getHeight(); int bands = csm.getNumBands(); int stride = csm.getScanlineStride(); int pixelStride = csm.getPixelStride(); int[] bankIndices = csm.getBankIndices(); int[] bandOffsets = csm.getBandOffsets(); int stride2 = csm2.getScanlineStride(); int pixelStride2 = csm2.getPixelStride(); int[] bankIndices2 = csm2.getBankIndices(); int[] bandOffsets2 = csm2.getBandOffsets(); int diff, maxDiff = 0; for (int b = 0; b < bands; b++) { byte[] bank = banks[bankIndices[b]]; byte[] bank2 = banks2[bankIndices2[b]]; int off = bandOffsets[b]; int off2 = bandOffsets2[b]; for (int y = 0; y < h; y++) { for (int x = w, i = y * stride + off, i2 = y * stride2 + off2; x-- > 0; i += pixelStride, i2 += pixelStride2) { if (maxDiff < (diff = Math.abs(bank[i] - bank2[i2]))) maxDiff = diff; } } } return maxDiff; } }