YUV到JPEG会导致大量的fps丢失

时间:2015-12-03 23:19:47

标签: java android jpeg yuv

我有一个相机向SurfaceView发送帧。我想从表面视图中获取这些帧并将它们发送到其他地方。在最终形式中,图像必须是JPEG格式。为了实现这一点,我将从byte []创建一个YUV图像,然后调用compressToJpeg。但是,当我在每一帧上调用compressToJpeg而不是只显示它时,我的FPS从~30变为~4。我评论了其他行,这个功能似乎是罪魁祸首。

public void onNewRawImage(byte[] data, Size size) {
    // Convert to JPG
    YuvImage yuvimage=new YuvImage(data, 
        ImageFormat.NV21, size.width, size.height, null);

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    yuvimage.compressToJpeg(new Rect(0, 0, yuvimage.getWidth(), 
        yuvimage.getHeight()), 80, baos);

    byte[] jdata = baos.toByteArray();

    // Convert to Bitmap
    Bitmap bitmap = BitmapFactory.decodeByteArray(jdata, 0, jdata.length); 
}

是否可以以JPEG格式开始而不必转换为它?我希望我在某个地方犯了错误。非常感谢任何帮助,谢谢。

0 个答案:

没有答案