当前位置: 首页>>代码示例>>Java>>正文


Java Picture.getPlaneWidth方法代码示例

本文整理汇总了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);
        }
    }
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:22,代码来源:SliceDecoder.java

示例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);
        }
    }
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:25,代码来源:DeblockingFilter.java

示例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;
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:18,代码来源:Yuv420jToYuv420.java

示例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);
        }
    }
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:28,代码来源:DeblockingFilter.java

示例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;
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:50,代码来源:V210Encoder.java

示例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));
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:10,代码来源:Yuv422pToYuv420j.java

示例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));
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:10,代码来源:Yuv422jToYuv420p.java


注:本文中的org.jcodec.common.model.Picture.getPlaneWidth方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。