2015-02-24 386 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(); 
      } 

}