|
只介绍 S3C2440A 中的 CAMIF (摄像头接口) p通路
– ITU-R BT.601/656 8 位模式外部接口支持
选择601格式
– 最大 640×480像素输出支持给预览通路
选择640*480
– PIP和编码输入图像产生(RGB 16/24 位格式和YCbCr 4:2:0/4:2:2格式)
选择P通道产生RGB16
先介绍输入,601标准
假如有一幅640×480的图片,用yuv422来表示,那么,采样方式就是每个像素采样Y信号,U,V信号隔一个采样,这样算下来,就有640×480个Y,640×240个U,640×240个V,一幅640×480大小的YUV图片占的总字节数为640×480×2个字节,每像素2个字节,也就是16位。
在内存种这样排列:Y0U0Y1V0 Y2U1Y3V1...
第一个像素的YUV值为:Y0 U0 V0
第二个像素的YUV值为: Y1 U0 V0
第三个像素的YUV值为: Y2 U1 V1
.....其他以此推类,也就是说每两个像素是共用了UV的;在一行上来看,每个像素的YUV值种Y值被采样,UV值采样0后,跳到3,然后5,所以每行上Y有640个,U,V各320个。
再理一理coms摄像头产生row格式数据到FPGA的处理。
要做到的是30帧的输入,一秒三十个帧头,480个行场,一个行场里640*2个clock,每个clock一个八位数据,至于一行的数据怎么排列,上面的YUV422的排列码流就是了,数据总共为640*2*480.
上面是输入,下面将驱动,将OV9650驱动里,与9650一切相关的配置都屏蔽,原输入改为640*480,目标大小为640*480,窗口一样,进来接口采样到的是YUV,走P通道后,DMA会把数据重组,实现RGB转换,从/dev/camif 读出来得数据位RGB16的格式,打开/dev/fb ,将数据写道上面,就会实现摄像头到LCD的实时显示了。
本文只属于学习使用,请不要转载!
|
|