안드로이드 G1의 1.0 RC29 버전에서 카메라 프리뷰를 테스트한 결과. 다음과 같은 결과를 얻었습니다.

  • Parameter에 setPreviewSize와 setFrameRate는 실제 Preview에 아무런 영향을 주지 않는다.
  • getPreviewFormat에 반환되는 값은 YCbCr_422_SP 이지만, 실제 PreviewCallback의 onPreviewFrame으로 넘어오는 데이터는 항상 480 * 320 사이즈의 YUV420 Semi Planar 포맷으로 넘어온다.
  • onPreviewFrame으로 넘어오는 데이터의 FrameRate는 일정하지 않으며 초당 5~15 프레임 사이로 넘어온다.

위의 YUV420 Semi Planar형식이란?

  •  크게 Y(밝기)와 UV(CbCr)의 두 부분으로 나누어져 있다.  Y 부분은 한 픽셀당 1바이트를 차지하고 전체 데이터의 앞의 반 부분 즉 480 * 320 바이트 만큼을 차지한다. 그리고 UV부분은 U와 V가 번갈아서 하나씩 위치하는 형태로 뒤의 480 * 320 바이트 만큼을 차지하고 있다.

위 결과는 카메라 드라이버의 구현에 따라서 바뀔 수 있는 부분이므로, 단말마다 틀려지고 G1의 경우도 버전에 따라 틀려질 수 있습니다. 하드웨어와 연관된 부분은 이렇게 SDK에서 정의된대로 동작하지 않는 경우가 있으니 실제 테스트가 필요합니다.