# 摄像头应用
[English]
------------------------------------------------------------------------
## 1. ESP32 系列芯片支持哪种类型的摄像头?
* 请参考 [ESP32系列支持的摄像头型号](https://github.com/espressif/esp32-camera#supported-sensor)。
更新时间:2022.4.22
------------------------------------------------------------------------
## 2. 摄像头输出图像都有什么格式?
* 图像格式:主要由摄像头决定,如果某个摄像头支持多个图像格式,如 RGB565、RGB888、YUV422、JPEG 等,需要通过配置摄像头的寄存器来选择输出格式。
更新时间:2022.4.22
------------------------------------------------------------------------
## 3. 摄像头支持哪些参数调整?
* 图像数据传输速度 (PCLK)、摄像头输出格式、分辨率、输出图像大小、白平衡、GAMMA 校正等摄像头自带的图像模式参数调整。
更新时间:2022.4.22
------------------------------------------------------------------------
## 4. 摄像头中 MCLK 和 PCLK 区别及关系?
* MCLK 是摄像头输入的主时钟,带动整个摄像头的主频。
* PCLK 是摄像头输出的时钟,主要为输出数据提供 CLK。
* MCLK 在摄像头内经过倍频/分频(根据摄像头配置决定)后得到 PCLK。
更新时间:2022.4.22
------------------------------------------------------------------------
## 5. 摄像头的 PCLK 是不是越高越好?
* 理论上 PCLK 速度越高数据传输越快,但实际使用中,PCLK 越高也意味着对芯片的处理速度要求越高。
* 当前 ESP32 和 ESP32S2 芯片并口通信是通过 I2S 接口实现的,过高的 PCLK 会导致并口数据无法同步,出现图像抖动甚至花屏的现象。
* ESP32S3 使用独立的 LCD---CAM 接口,可以支持更高的 PCLK 频率。
- ESP32 的 PCLK 上限为 8 MHz。
- ESP32S2 的 PCLK 上限为 32 MHz。
- ESP32S3 的 PCLK 上限为 40 MHz。
更新时间:2022.4.22
------------------------------------------------------------------------
## 6. ESP32 系列芯片支持 MIPI 接口吗?
* ESP32、ESP32S2 和 ESP32S3 均不支持,后续的芯片会支持。
* 当前 ESP32 系列的芯片支持的摄像头接口有 DVP、SPI、USB。
更新时间:2022.4.22
------------------------------------------------------------------------
## 7. ESP32 系列芯片支持 USB2.0 接口吗?
* ESP32 和 ESP32S2 均不支持,后续的芯片会支持。
更新时间:2022.4.22
------------------------------------------------------------------------
## 8. 摄像头中 YUV/RGB 的传输速度为何会比 JPEG 慢?
* 因为 YUV/RGB 数据量比 JPEG 的数据量大。
* 例如:320 × 240 的屏幕, YUV422 输出要 153.6K, 而 JPEG 压缩后大约 10 K。
更新时间:2022.4.22
------------------------------------------------------------------------
## 9. 摄像头应用中影响帧率的因素?
* 帧率是指两张图片间刷新的速度,其影响因素主要为:
- 摄像头性能及参数配置而产生的图像大小(输出图像分辨率大小、输出图像格式)。
- CPU 处理速度(接收图像处理、图像转码速度、图传到网络或显示屏的速度)。
更新时间:2022.4.22
------------------------------------------------------------------------
## 10. 摄像头运行失败如何排查?
* 无法识别摄像头型号:
- 检查管脚是否对应正确,重点关注 XCLK、SIOC、SIOD。
- XCLK 输入的时钟频率太低或摄像头供电不正常,导致摄像头无法正常运行。
- SIOC 和 SIOD 上挂载太多设备,导致轮询读到率先返回的地址 ID 不是摄像头而是其他设备。此情况建议固定摄像头 ID,以去除轮询步骤。
* 摄像头识别到了型号,没有图像显示:
- 检查摄像头数据管脚是否有信号,MCLK 是否正常输入。
- 摄像头寄存器参数配置正确。
* 摄像头图像显示不正常:
- 检查代码,查看输出格式是 RGB、YUV 还是 JPEG,是否符合接收端需要的格式。
- 尝试降低 PCLK 频率。
更新时间:2022.4.22
------------------------------------------------------------------------
## 11. ESP32 支持传输视频流吗?
* 视频流的传输操作分为二进制传输和视频流编解码。
- 二进制传输:ESP32 可以做二进制传输,此处只取决于传输的网络带宽,目前 ESP32 TCP 的带宽为 20 MB/s,请参考 [WiFI 测试数据](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-guides/wifi.html#esp32-wi-fi-throughput)。
- 视频流编解码:目前视频流主要格式有 H264、H265、MJPEG 等,ESP32 暂无视频流编解码操作的能力。
更新时间:2022.4.22
------------------------------------------------------------------------
## 12. ESP-EYE 的出厂固件在哪里?
* 请参考 [ESP-EYE 的出厂固件](https://github.com/espressif/esp-who/tree/master/default_bin)。
更新时间:2022.4.22
------------------------------------------------------------------------
## 13. Camera 方案相关的示例在哪里?
* 请参考 [ESP-WHO](https://github.com/espressif/esp-who)。
* 请参考 [esp-dev-kits](https://github.com/espressif/esp-dev-kits)。
更新时间:2022.4.22