package org.jcodec.scale; import org.jcodec.common.model.Picture8Bit; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed * under FreeBSD License * * @author The JCodec project * */ public class RgbToYuv422p8Bit implements Transform8Bit { @Override public void transform(Picture8Bit img, Picture8Bit dst) { byte[] y = img.getData()[0]; byte[] out1 = new byte[3]; byte[] out2 = new byte[3]; byte[][] dstData = dst.getData(); int off = 0, offSrc = 0; for (int i = 0; i < img.getHeight(); i++) { for (int j = 0; j < img.getWidth() >> 1; j++) { int offY = off << 1; RgbToYuv420p8Bit.rgb2yuv(y[offSrc++], y[offSrc++], y[offSrc++], out1); dstData[0][offY] = out1[0]; RgbToYuv420p8Bit.rgb2yuv(y[offSrc++], y[offSrc++], y[offSrc++], out2); dstData[0][offY + 1] = out2[0]; dstData[1][off] = (byte) ((out1[1] + out2[1] + 1) >> 1); dstData[2][off] = (byte) ((out1[2] + out2[2] + 1) >> 1); ++off; } } } }