请问如何获取camera的raw数据

板子是vim3,系统ubuntu-4.9,标配摄像头os08a10。
目前用程序 numbqq/arm_isp_amlogic/blob/master/v4l2_testapp/v4l2_test.c 可以获取rbg24格式的图像数据。
请问我如何才能获取camera输出的12-/10-bit raw rgb,程序代码中有输出raw格式的配置,我已经改过,并且配置程序输入参数-F为2:
1599029187(1)


问题1:我不清楚获取的raw16数据是怎么分布的,如何才能拿到对应的rgb通道值。
问题2:是根据os08a10手册,camera能输出12-/10-bit raw rgb数据,这里是如何转换成16bit的,在哪里转换的,如何才能不进行转换。
问题3:系统能不能支持raw8格式的输入数据?

你这套东西我没用过,但是一般来说raw和rgb是互斥的概念:raw是没有debayer的原始数据(看起来是有网格样子的灰度图),你要自己做debayer运算才能得到rgb。

谢谢回复,我了解到的信息是,camera从mipicsi传输过来的数据就是raw的,使用isp_module可以转换为不同的格式,v4l2_test代码中给出了能够输出的三种格式:


我希望能拿到没有debayer的raw格式数据,也就是camera通过mipicsi传输后没有做转换的数据。

I need help, any advice :flushed: @numbqq @Frank

Hello @aspire

我没有这样做过,你这样做的目的是什么呢?

感谢回复 @numbqq
我们想通过csi接口传输数据,数据来源端是fpga,因此希望能够获取到没有经过处理的原始数据,最好是raw8的数据,这样的数据对fpga端的数据组织是友好的。
我今天查看了A311D的手册,发现ISP的data path能够直接获取原始数据:


请问您了解如何使数据不通过isp的处理直接输出么?

请问有人了解程序 numbqq/arm_isp_amlogic/blob/master/v4l2_testapp/v4l2_test.c 中选择-F选项选择raw16后数据是怎么转换的么,我用的是os08a10的摄像头。

我看到在isp_module的代码中,有对应的v4l2_test选择raw16的执行情况,根据A311D手册的说法,数据bypass isp的所有过程,直接输出,但是手册写的是输出数据的[19:4]位,这是怎么做到的呢?os08A10设置的输出是10bit的raw数据。如何变成[19:4]位的?为什么会有这中输出方式?


A311D的手册到哪儿下载?我买了VIM3,但是找不到A311D的手册

Hello @Ningbo,
手册时在网上搜到的。

这里可以下载:

太感谢你了,太感谢你了,太感谢你了,太感谢你了

现在在调试HDMI转MIPI CSI到A311D 转化芯片直接出的YUV或者RGB 就需要bypass ISP处理这块 你的问题给了我思路