本文整理汇总了Java中org.jcodec.common.model.Picture.getPlaneWidth方法的典型用法代码示例。如果您正苦于以下问题:Java Picture.getPlaneWidth方法的具体用法?Java Picture.getPlaneWidth怎么用?Java Picture.getPlaneWidth使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.jcodec.common.model.Picture
的用法示例。
在下文中一共展示了Picture.getPlaneWidth方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: put
import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public void put(Picture tgt, Picture decoded, int mbX, int mbY) {
int[] luma = tgt.getPlaneData(0);
int stride = tgt.getPlaneWidth(0);
int[] cb = tgt.getPlaneData(1);
int[] cr = tgt.getPlaneData(2);
int strideChroma = tgt.getPlaneWidth(1);
int dOff = 0;
for (int i = 0; i < 16; i++) {
System.arraycopy(decoded.getPlaneData(0), dOff, luma, (mbY * 16 + i) * stride + mbX * 16, 16);
dOff += 16;
}
for (int i = 0; i < 8; i++) {
System.arraycopy(decoded.getPlaneData(1), i * 8, cb, (mbY * 8 + i) * strideChroma + mbX * 8, 8);
}
for (int i = 0; i < 8; i++) {
System.arraycopy(decoded.getPlaneData(2), i * 8, cr, (mbY * 8 + i) * strideChroma + mbX * 8, 8);
}
}
示例2: filterBlockEdgeVert
import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
private void filterBlockEdgeVert(Picture pic, int comp, int x, int y, int indexAlpha, int indexBeta, int bs,
int blkH) {
int stride = pic.getPlaneWidth(comp);
for (int i = 0; i < blkH; i++) {
int offsetQ = (y + i) * stride + x;
int p2Idx = offsetQ - 3;
int p1Idx = offsetQ - 2;
int p0Idx = offsetQ - 1;
int q0Idx = offsetQ;
int q1Idx = offsetQ + 1;
int q2Idx = offsetQ + 2;
if (bs == 4) {
int p3Idx = offsetQ - 4;
int q3Idx = offsetQ + 3;
filterBs4(indexAlpha, indexBeta, pic.getPlaneData(comp), p3Idx, p2Idx, p1Idx, p0Idx, q0Idx, q1Idx,
q2Idx, q3Idx, comp != 0);
} else if (bs > 0) {
filterBs(bs, indexAlpha, indexBeta, pic.getPlaneData(comp), p2Idx, p1Idx, p0Idx, q0Idx, q1Idx, q2Idx,
comp != 0);
}
}
}
示例3: transform
import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
@Override
public void transform(Picture src, Picture 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;
}
示例4: filterBlockEdgeHoris
import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
private void filterBlockEdgeHoris(Picture pic, int comp, int x, int y, int indexAlpha, int indexBeta, int bs,
int blkW) {
int stride = pic.getPlaneWidth(comp);
int offset = y * stride + x;
for (int pixOff = 0; pixOff < blkW; pixOff++) {
int p2Idx = offset - 3 * stride + pixOff;
int p1Idx = offset - 2 * stride + pixOff;
int p0Idx = offset - stride + pixOff;
int q0Idx = offset + pixOff;
int q1Idx = offset + stride + pixOff;
int q2Idx = offset + 2 * stride + pixOff;
if (bs == 4) {
int p3Idx = offset - 4 * stride + pixOff;
int q3Idx = offset + 3 * stride + pixOff;
filterBs4(indexAlpha, indexBeta, pic.getPlaneData(comp), p3Idx, p2Idx, p1Idx, p0Idx, q0Idx, q1Idx,
q2Idx, q3Idx, comp != 0);
} else if (bs > 0) {
filterBs(bs, indexAlpha, indexBeta, pic.getPlaneData(comp), p2Idx, p1Idx, p0Idx, q0Idx, q1Idx, q2Idx,
comp != 0);
}
}
}
示例5: encodeFrame
import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public ByteBuffer encodeFrame(ByteBuffer _out, Picture frame) throws IOException {
ByteBuffer out = _out.duplicate();
out.order(ByteOrder.LITTLE_ENDIAN);
int tgtStride = ((frame.getPlaneWidth(0) + 47) / 48) * 48;
int[][] data = frame.getData();
int[] tmpY = new int[tgtStride];
int[] tmpCb = new int[tgtStride >> 1];
int[] tmpCr = new int[tgtStride >> 1];
int yOff = 0, cbOff = 0, crOff = 0;
for (int yy = 0; yy < frame.getHeight(); yy++) {
arraycopy(data[0], yOff, tmpY, 0, frame.getPlaneWidth(0));
arraycopy(data[1], cbOff, tmpCb, 0, frame.getPlaneWidth(1));
arraycopy(data[2], crOff, tmpCr, 0, frame.getPlaneWidth(2));
for (int yi = 0, cbi = 0, cri = 0; yi < tgtStride;) {
int i = 0;
i |= clip(tmpCr[cri++]) << 20;
i |= clip(tmpY[yi++]) << 10;
i |= clip(tmpCb[cbi++]);
out.putInt(i);
i = 0;
i |= clip(tmpY[yi++]);
i |= clip(tmpY[yi++]) << 20;
i |= clip(tmpCb[cbi++]) << 10;
out.putInt(i);
i = 0;
i |= clip(tmpCb[cbi++]) << 20;
i |= clip(tmpY[yi++]) << 10;
i |= clip(tmpCr[cri++]);
out.putInt(i);
i = 0;
i |= clip(tmpY[yi++]);
i |= clip(tmpY[yi++]) << 20;
i |= clip(tmpCr[cri++]) << 10;
out.putInt(i);
}
yOff += frame.getPlaneWidth(0);
cbOff += frame.getPlaneWidth(1);
crOff += frame.getPlaneWidth(2);
}
out.flip();
return out;
}
示例6: transform
import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public void transform(Picture src, Picture 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));
}
示例7: transform
import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public void transform(Picture src, Picture 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));
}