public void transform(PictureHiBD src, PictureHiBD dst) { int[] y = src.getPlaneData(0); int[] u = src.getPlaneData(1); int[] v = src.getPlaneData(2); int[] data = dst.getPlaneData(0); for (int i = 0, srcOff = 0, dstOff = 0; i < dst.getHeight(); i++) { for (int j = 0; j < dst.getWidth(); j++, srcOff++, dstOff += 3) { YUVJtoRGB(y[srcOff], u[srcOff], v[srcOff], data, dstOff); } } } }
public void transform(PictureHiBD src, PictureHiBD dst) { int[] y = src.getPlaneData(0); int[] u = src.getPlaneData(1); int[] v = src.getPlaneData(2); int[] data = dst.getPlaneData(0); for (int i = 0, srcOff = 0, dstOff = 0; i < dst.getHeight(); i++) { for (int j = 0; j < dst.getWidth(); j++, srcOff++, dstOff += 3) { YUV444toRGB888((y[srcOff] << upShift) >> downShift, (u[srcOff] << upShift) >> downShift, (v[srcOff] << upShift) >> downShift, data, dstOff); } } }
public void transform(PictureHiBD src, PictureHiBD dst) { int[] sy = src.getPlaneData(0); int[] dy = dst.getPlaneData(0); for (int i = 0; i < src.getPlaneWidth(0) * src.getPlaneHeight(0); i++) dy[i] = (sy[i] * Y_COEFF >> 13) + 16; copyAvg(src.getPlaneData(1), dst.getPlaneData(1), src.getPlaneWidth(1), src.getPlaneHeight(1)); copyAvg(src.getPlaneData(2), dst.getPlaneData(2), src.getPlaneWidth(2), src.getPlaneHeight(2)); }
public void transform(PictureHiBD src, PictureHiBD dst) { int[] y = src.getPlaneData(0); int[] u = src.getPlaneData(1); int[] v = src.getPlaneData(2); int[] data = dst.getPlaneData(0); int offLuma = 0, offChroma = 0; for (int i = 0; i < dst.getHeight(); i++) { for (int j = 0; j < dst.getWidth(); j += 2) { YUVJtoRGB(y[offLuma], u[offChroma], v[offChroma], data, offLuma * 3); YUVJtoRGB(y[offLuma + 1], u[offChroma], v[offChroma], data, (offLuma + 1) * 3); offLuma += 2; ++offChroma; } } } }
public void transform(PictureHiBD src, PictureHiBD dst) { int lumaSize = src.getWidth() * src.getHeight(); arraycopy(src.getPlaneData(0), 0, dst.getPlaneData(0), 0, lumaSize); copyAvg(src.getPlaneData(1), dst.getPlaneData(1), src.getPlaneWidth(1), src.getPlaneHeight(1)); copyAvg(src.getPlaneData(2), dst.getPlaneData(2), src.getPlaneWidth(2), src.getPlaneHeight(2)); if (shiftUp > shiftDown) { up(dst.getPlaneData(0), shiftUp - shiftDown); up(dst.getPlaneData(1), shiftUp - shiftDown); up(dst.getPlaneData(2), shiftUp - shiftDown); } else if (shiftDown > shiftUp) { down(dst.getPlaneData(0), shiftDown - shiftUp); down(dst.getPlaneData(1), shiftDown - shiftUp); down(dst.getPlaneData(2), shiftDown - shiftUp); } }
@Override public void transform(PictureHiBD src, PictureHiBD dst) { int[] sy = src.getPlaneData(0); int[] dy = dst.getPlaneData(0); for (int i = 0; i < src.getPlaneWidth(0) * src.getPlaneHeight(0); i++) dy[i] = (sy[i] * Y_COEFF >> 13) + 16; int[] su = src.getPlaneData(1); int[] du = dst.getPlaneData(1); for (int i = 0; i < src.getPlaneWidth(1) * src.getPlaneHeight(1); i++) du[i] = ((su[i] - 128) * Y_COEFF >> 13) + 128; int[] sv = src.getPlaneData(2); int[] dv = dst.getPlaneData(2); for (int i = 0; i < src.getPlaneWidth(2) * src.getPlaneHeight(2); i++) dv[i] = ((sv[i] - 128) * Y_COEFF >> 13) + 128; } }
public void transform(PictureHiBD src, PictureHiBD dst) { int[] sy = src.getPlaneData(0); int[] dy = dst.getPlaneData(0); for (int i = 0; i < src.getPlaneWidth(0) * src.getPlaneHeight(0); i++) dy[i] = (sy[i] * Y_COEFF >> 13) + 16; copyAvg(src.getPlaneData(1), dst.getPlaneData(1), src.getPlaneWidth(1), src.getPlaneHeight(1)); copyAvg(src.getPlaneData(2), dst.getPlaneData(2), src.getPlaneWidth(2), src.getPlaneHeight(2)); }
public void transform(PictureHiBD src, PictureHiBD dst) { int[] sy = src.getPlaneData(0); int[] dy = dst.getPlaneData(0); for (int i = 0; i < src.getPlaneWidth(0) * src.getPlaneHeight(0); i++) dy[i] = (sy[i] - 16) * COEFF >> shift; copyAvg(src.getPlaneData(1), dst.getPlaneData(1), src.getPlaneWidth(1), src.getPlaneHeight(1)); copyAvg(src.getPlaneData(2), dst.getPlaneData(2), src.getPlaneWidth(2), src.getPlaneHeight(2)); }
public void transform(PictureHiBD src, PictureHiBD dst) { int[] y = src.getPlaneData(0); int[] u = src.getPlaneData(1); int[] v = src.getPlaneData(2); int[] data = dst.getPlaneData(0); int offLuma = 0, offChroma = 0; for (int i = 0; i < dst.getHeight(); i++) { for (int j = 0; j < dst.getWidth(); j += 2) { YUV444toRGB888((y[offLuma] << upShift) >> downShift, (u[offChroma] << upShift) >> downShift, (v[offChroma] << upShift) >> downShift, data, offLuma * 3); YUV444toRGB888((y[offLuma + 1] << upShift) >> downShift, (u[offChroma] << upShift) >> downShift, (v[offChroma] << upShift) >> downShift, data, (offLuma + 1) * 3); offLuma += 2; ++offChroma; } } }
public void transform(PictureHiBD src, PictureHiBD dst) { int lumaSize = src.getWidth() * src.getHeight(); arraycopy(src.getPlaneData(0), 0, dst.getPlaneData(0), 0, lumaSize); copyAvg(src.getPlaneData(1), dst.getPlaneData(1), src.getPlaneWidth(1), src.getPlaneHeight(1)); copyAvg(src.getPlaneData(2), dst.getPlaneData(2), src.getPlaneWidth(2), src.getPlaneHeight(2)); if (shiftUp > shiftDown) { up(dst.getPlaneData(0), shiftUp - shiftDown); up(dst.getPlaneData(1), shiftUp - shiftDown); up(dst.getPlaneData(2), shiftUp - shiftDown); } else if (shiftDown > shiftUp) { down(dst.getPlaneData(0), shiftDown - shiftUp); down(dst.getPlaneData(1), shiftDown - shiftUp); down(dst.getPlaneData(2), shiftDown - shiftUp); } }
@Override public void transform(PictureHiBD src, PictureHiBD dst) { for (int i = 0; i < 3; i++) arraycopy(src.getPlaneData(i), 0, dst.getPlaneData(i), 0, Math.min( src.getPlaneWidth(i) * src.getPlaneHeight(i), dst.getPlaneWidth(i) * dst.getPlaneHeight(i))); } }
public void transform(PictureHiBD src, PictureHiBD dst) { copy(src.getPlaneData(0), dst.getPlaneData(0), src.getWidth(), dst.getWidth(), dst.getHeight(), shiftUp, shiftDown); _copy(src.getPlaneData(1), dst.getPlaneData(1), 0, 0, 1, 2, src.getWidth() >> 1, dst.getWidth() >> 1, src.getHeight() >> 1, dst.getHeight(), shiftUp, shiftDown); _copy(src.getPlaneData(1), dst.getPlaneData(1), 0, 1, 1, 2, src.getWidth() >> 1, dst.getWidth() >> 1, src.getHeight() >> 1, dst.getHeight(), shiftUp, shiftDown); _copy(src.getPlaneData(2), dst.getPlaneData(2), 0, 0, 1, 2, src.getWidth() >> 1, dst.getWidth() >> 1, src.getHeight() >> 1, dst.getHeight(), shiftUp, shiftDown); _copy(src.getPlaneData(2), dst.getPlaneData(2), 0, 1, 1, 2, src.getWidth() >> 1, dst.getWidth() >> 1, src.getHeight() >> 1, dst.getHeight(), shiftUp, shiftDown); }
@Override public void transform(PictureHiBD src, PictureHiBD dst) { if (src.getColor() != ColorSpace.RGB && src.getColor() != ColorSpace.BGR || dst.getColor() != ColorSpace.RGB && dst.getColor() != ColorSpace.BGR) { throw new IllegalArgumentException( "Expected RGB or BGR inputs, was: " + src.getColor() + ", " + dst.getColor()); } if (src.getCrop() != null || dst.getCrop() != null) throw new NotSupportedException("Cropped images not supported"); int[] dataSrc = src.getPlaneData(0); int[] dataDst = dst.getPlaneData(0); for (int i = 0; i < dataSrc.length; i += 3) { // src and dst can actually be the same array int tmp = dataSrc[i + 2]; dataDst[i + 2] = dataSrc[i]; dataDst[i] = tmp; } }
public final void transform(PictureHiBD src, PictureHiBD dst) { int[] y = src.getPlaneData(0); int[] u = src.getPlaneData(1); int[] v = src.getPlaneData(2); int[] data = dst.getPlaneData(0);
public final void transform(PictureHiBD src, PictureHiBD dst) { int[] y = src.getPlaneData(0); int[] u = src.getPlaneData(1); int[] v = src.getPlaneData(2); int[] data = dst.getPlaneData(0);
private boolean planeEquals(PictureHiBD other, int plane) { int cw = color.compWidth[plane]; int ch = color.compHeight[plane]; int offA = other.getCrop() == null ? 0 : ((other.getCrop().getX() >> cw) + (other.getCrop().getY() >> ch) * (other.getWidth() >> cw)); int offB = crop == null ? 0 : ((crop.getX() >> cw) + (crop.getY() >> ch) * (width >> cw)); int[] planeData = other.getPlaneData(plane); for (int i = 0; i < getCroppedHeight() >> ch; i++, offA += (other.getWidth() >> cw), offB += (width >> cw)) { for (int j = 0; j < getCroppedWidth() >> cw; j++) { if (planeData[offA + j] != data[plane][offB + j]) return false; } } return true; } }