新手上路
- 积分
- 35
- 金钱
- 35
- 注册时间
- 2013-3-7
- 在线时间
- 0 小时
|
最近一直在做用OV7670输出640*480分辨率的图像,用战舰开发板。将OV7670的寄存器设置为{0x12,0x04},则输出VGA,RGB的格式。仅作这样修改,输出是这样的:
左边是QVGA,右边是VGA。显然右边是1,2,5,6和9,a,d,e的重影。这是由于LCD是320*240的,扫描方式是从上到下,从左到右。分辨率提高到640*480后,LCD将1,2,5,6显示到奇数行,9,a,d,e显示到了偶数行。
如果再将窗口设置改变,OV7670_Window_Set(10,176,240,160),窗口由原来的240*320改为240*160,摄像头应该不会扫描到下半部分的9,a,d,e.得到图像:
纵向分辨率提高了,但是横向没有改变,图像发生畸变。按理说,如果分辨率从240*320变为480*640,LCD上只显示1,2,5,6,才对。如果窗口设置为OV7670_Window_Set(10,176,120,160),得到下图
应该是1,2,5,6充满LCD才对。
问题:为什么横向分辨率没有提高?好像摄像头有逐行扫描和隔行扫描之分,OV7670应该是逐行扫描,如果是隔行扫描,那偶数行的数据为什么没有送到fifo?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
为了排除LCD扫描的影响,将fifo的数据直接编码BMP,存到SD卡,不经过LCD。(战舰开发板的照相机实验是从LCD的GRAM中读取像素存到SD卡)
但是SRAM太小,不能等一帧数据都存到内存,然后编码存到SD卡,只能来一行存一行。拍到下图:
因为BMP编码扫描顺序是从左到右,从下到上,而OV7670输处的扫描顺序是从上到下,从左到右,所以编码乱了。
问题:1.BMP的编码扫描顺序好像不能变,OV7670的扫描顺序能不能修改?
原子大哥在这个帖子 http://www.openedv.com/posts/list/7161.htm#36173 提到可以,但是一直搜多不到。
2.帖子里有很多问VGA输出640*480的问题,一直没有找到有明确答复的,不知道大家都是怎么实现的?
|
|