raspistill
raspistillyuv
raspivid
关键词:
1 mmal API:
https://picamera.readthedocs.io/en/latest/fov.html#mmal
貌似是一个专业的摄像头的网站:以下是部分内容;
捕获图像的时候,一次去获取一行(it reads out pixels from the sensor a row at a time rather than capturing all pixel values at once.)
用的是卷帘快门(use a rolling shutter to capture images)还有一种是全局快门(global shutter)
这里只需要知道pi用的是前者
提了一个误区:当我们想要照相的时候,一般上会延迟2s,相机在这段时间内会完成初始化,启动很多脚本,去采集一大堆的参数,比如白平衡,自定增益。。。然后去捕捉一个完整的帧
MMAl
摄像头给pi的GPU提供一个简单的接口,为摄像机提供了三个端口:
1) still port
still被翻译为静止端口,有两种静止模式,每当捕获图像时,它会被设为其中的一种。这还意味着会使用sensor的全部捕获区域。这样会提升画面品质
而且use_video_port 这个参数为false,still port is used by the various capture() method
2)vedio port
视频端口稍微简单一点,因为它永远不会改变相机的模式。 视频端口由start_recording()方法(用于录制视频)使用,也可以在其use_video_port参数为True时由各种capture()方法使用。 从视频端口捕获的图像倾向于具有“颗粒状”外观,更类似于视频帧而不是静止端口捕获的图像。 这是因为静止端口使用比视频端口更强的降噪算法
3) preview port
预览端口或多或少与视频端口相同。 预览端口始终连接到某种形式的输出,以确保自动增益算法可以运行。 构造PiCamera的实例时,预览端口最初连接到PiNullSink的实例。 调用start_preview()时,将销毁此 null sink,并将预览端口连接到PiPreviewRenderer的实例。 调用stop_preview()时会发生相反的情况。
4) pipelines
本节提供了有关MMAL 流水线(pipelines) picamera构造的一些细节,以响应各种方法调用。
固件提供各种编码器,它们可以连接到静止和视频端口,以产生输出(例如JPEG图像或H.264编码视频)。 端口可以在任何给定时间连接一个编码器(如果端口未使用,则没有任何东西)。
编码器直接连接到静止端口。 例如,当使用静止端口捕获图片时,摄像机的状态在概念上会移动通过以下状态:
2 VideoCore
首先它是个芯片(或者叫做处理器)
因为市场需求高速 并且低功耗,之前arm针对是手机的市场 ,所以IPS太高了,