2015-02-24 1079 views
1

a)我想知道YUV和YUV420有什么区别? b)我想使用Camera的原始帧,并将它们实时转换为YUV420。什么是最快的方法来做到这一点?我使用位图工厂从yuv转换为jpg,并使用onDraw()方法绘制位图。但是,这需要一些时间来处理。如果我想从YUV转换到YUV420,什么是转换的最佳选择?将YUV转换为YUV420 Android onPreview

+1

http://en.wikipedia.org/wiki/YUV解释YUV和一些不同的颜色格式。它还具有用于在一些颜色格式之间转换的代码。如果您想要实时操作30fps的相机输入,您应该让GLES为您完成工作,例如, https://www.youtube.com/watch?v=kH9kCP2T5Gg – fadden 2015-02-24 23:40:09

+0

我想知道YUV420是否与NV21相同?如果不是,你知道在哪里可以找到从NV21转换到YUV420的算法? – 2015-02-25 21:49:41

+0

http://www.fourcc.org/yuv.php描述了各种不同的色彩格式,特别是YV12和NV21(由相机支持)以及NV12和I420(由MediaCodec支持)。所有格式都是YUV(与RGB,XYZ等相对) – fadden 2015-02-26 00:51:46

回答

0

我发现从NV12转换为YV12一个非常直接的方式/ YUV 420两行代码做的工作对我来说:

公共无效surfaceCreated(SurfaceHolder持有者){

 try { 
      // set view of surface in cameraview 
      Camera.Parameters p = mCamera.getParameters(); 

      p.setPreviewFormat(ImageFormat.YV12); 

      mCamera.setParameters(p); 
      mCamera.setPreviewDisplay(holder); 
      mCamera.startPreview(); 
      } 

}