XR872摄像头图片传输(一)

一、简介

 

       xr872自带硬件jpeg编码,这无疑对网络传输图片比较友好,不过xr872只对YUV格式进行编码,比较单一,不过并不影响,一般摄像头都可以直接选择输出YUV还是RGB格式。

 

二、摄像头例程分析

 

        官方自带例程:./example/jpeg

        2.1 JPEG介绍

            online:每16行编码依次 ,不会再输出原始CSI数据

            offline :一帧图像接收完后再编码

            XR872JPEG 模块是一款高性能、低功耗、较少资源依赖的编码器,其具备的属性如下。
        支持 online 模式 640*480@60fps, offline 模式 640*480@30fps
        支持 online 模式 1280*720@40fps, offline 模式 1280*720@20fps
        支持最大分辨率为 1920*1088online/offline 编码
        支持 1/2 缩小(scaler)后编码,支持抠图(cropwin)后编码
        online 模式支持分块输出功能,可减小 sram 开销,并提高带宽利用率
        支持非常规分辨率的 online/offline(如:192*192,304*224)编码
        支持常规分辨率图像的 online/offline 编码

        2.2  例程介绍          

 

          static CAMERA_Cfg camera_cfg = {

          .jpeg_cfg.jpeg_en = 1,    

          .jpeg_cfg.quality = 64,//JPEG 图像的质量等级(0~99) 

          .jpeg_cfg.jpeg_clk = 0, //no use

           #if JPEG_MEMPART_EN

          .jpeg_cfg.memPartEn = 1,//JPEG分块模式的使能 

          .jpeg_cfg.memPartNum = JPEG_MEM_BLOCK2, //0->2 part,1->4 part,2->8 part  JPEG分块模式的块数量 

          #else

          .jpeg_cfg.memPartEn = 0,

          .jpeg_cfg.memPartNum = 0,

           #endif

          .jpeg_cfg.jpeg_mode = JPEG_ONLINE_EN ? JPEG_MOD_ONLINE : JPEG_MOD_OFFLINE,  //编码工作模式选择

          .csi_cfg.csi_clk = 24000000, // no use

        /* sensor config */

       .sensor_cfg.i2c_id = IMAGE_SENSOR_I2CID,   //CSI接口IIC

       .sensor_cfg.pwcfg.Pwdn_Port = SENSOR_POWERDOWN_PORT,  //断电端口号

       .sensor_cfg.pwcfg.Reset_Port = SENSOR_RESET_PORT, //复位端口号

       .sensor_cfg.pwcfg.Pwdn_Pin = SENSOR_POWERDOWN_PIN, //断电引脚

       .sensor_cfg.pwcfg.Reset_Pin = SENSOR_RESET_PIN, //复位引脚

       .sensor_cfg.pixel_size.width = IMAGE_WIDTH,//640,

       .sensor_cfg.pixel_size.height = IMAGE_HEIGHT,//480,

       .sensor_cfg.pixel_outfmt = YUV422_YUYV, / /csi输出格式

       .sensor_func.init = SENSOR_FUNC_INIT,   //csi初始化函数

       .sensor_func.deinit = SENSOR_FUNC_DEINIT, //csi反初始化函数

       .sensor_func.ioctl = SENSOR_FUNC_IOCTL, //csi控制

    };

 

   static int camera_mem_create(CAMERA_JpegCfg *jpeg_cfg, CAMERA_Mgmt *mgmt)   //根据上述结构体的配置进行内存分配

   static int camera_init()  //csi与jpeg的初始化

   void main()

   {

     //挂载TF卡、初始化摄像头以及jpeg

     //获取一帧图片

     //保存图片到TF卡  如果是online则只保存jpeg图,反之保存一张YUV以及JPG图

     //结束   

  }

注释:.jpeg_cfg.memPartEn = 1,//JPEG分块模式的使能 

Online 分块模式与整帧模式的区别在于,分块模式可以在 JPEG 编码输出数据量达到设定值(例如 2KB/4KB) 后产生中断,并且可以在一帧编码过程中循环使用编码输出空间,例如只分配 8KB 的编码输出空间,而一 帧图像编码数据有 20KB,则在第一次写满 8KB 后, JPEG 将会从这 8KB 的首地址开始存储,循环使用, 故需要软件配合将之前的数据读走,否则之前的数据会被覆盖

三、图传

       xr872自带wifi,故可以将图片进行在线上传,可以上传自己的服务器,亦可以上传到各大公共云平台进行图像识别等应用。具体待实践......

 

 

 

  

       

你可能感兴趣的:(XR872摄像头图片传输(一))