int dst_y; //输出的目标图像高度

int dst_fmt; //输出的目标图像数据格式

int pre_x; //预览通道(P端口模式)输出的图像宽

int pre_y; //预览通道(P端口模式)输出的图像高

int pre_fmt; //使用通道(P端口模式)时设为1

__u16 bypass; //为1时表示不启用按比例的图像放大/缩小

__u16 ycbcr; //输入图像的YcbCr顺序

struct s3c2440_camif *dev; //设备的系统信息

};

上述这些配置信息最终是与一系列的寄存器相关联的。这个结构为读/写寄存器提供了一个清晰的、集中的存储缓冲。

打开、关闭和控制摄像机的接口函数。这3个接口函数是按V4L规范编写的,其原型如下:

① 打开摄像机接口函数:

static int v4l_cam_open(struct video_device *v,int mode);

② 控制摄像机接口函数:

static int v4l_cam_ioctl(struct video_device *v,unsigned int cmd,void *arg);

③ 关闭摄像机接口函数:

static void v4l_cam_close(struct video_device *v);

中断处理接口函数。该中断处理函数在使用C端口模式完成1帧图像采集后被调用。函数原型定义如下:

static void s3c2440_camif_isr_c(int irq,void *dev_id,struct pt_regs *regs);

读取图像数据的实现函数。该函数通过dev→rdy的值判断1帧图像有无采集转换结束。如果该值置1,则表示采样结束,这时就可以从图像数据的缓冲中拷贝数据到用户的存储空间;如果为0,则函数进入阻塞或返回EAGAIN标志。顺便提一下,dev→rdy的值是在中断处理函数中设置的。(实现代码略—— 编者注)

1.3 图像数据的压缩

S3C2440的CAMIF接口处理得到的1帧图像数据比较大,还要经过进一步的压缩才能适合进行网络数据传输。S3C2440处理器内部没有提供硬件的图像压缩编码器,但因为它的主频较高,可以使用软件来进行图像压缩。考虑到CPU的处理能力和对单帧采样图像的清晰度有较高的要求,采用基于离散余弦变换算法(DCT)的JPEG/MJPEG方式对图像数据进行压缩编码。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查