海思3520Dv300使用NVP6124B采集摄像头自适应_第1页
海思3520Dv300使用NVP6124B采集摄像头自适应_第2页
海思3520Dv300使用NVP6124B采集摄像头自适应_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、海思3520Dv300使用NVP6124B采集摄像头自适应前言:对于HIS视频采集、输出和编解码,直接使用海思SDK中的sample代码+NVP6124就 可以实现,对于海思sample程序只能实现单个分辨率采集,本文主要讲解怎么实现对摄像 头采集的自适应,通俗的说就是无论你插入960H、720P、1080P分辨率的摄像头,都能输 出和编码。一、单分辨率视频采集在sample程序中,需要采集那种分辨率的摄像头,只要对下面两个寄存器的值进行配置;typedef struct _nvp6124_chn_modeunsigned char ch;unsigned char vformat;unsig

2、ned char chmode;nvp6124_chn_mode;typedef struct _nvp6124_opt_modeunsigned char chipsel;unsigned char portsel;unsigned char portmode;unsigned char chid;nvp6124_opt_mode;其中两个主要的参数;vformat,portsel确定采集的分辨率,960H: vformat = NVP6124_VI_SD;portsel = NVP6124_OUTMODE_4MUX_SD;720P:vformat = NVP6124_VI_720P_253

3、0;portsel = NVP6124_OUTMODE_2MUX_HD;1080P: vformat = NVP6124_VI_720P_2530;portsel = NVP6124_OUTMODE_2MUX_FHD;当你需要不同通道接不一样的摄像头的时候,就可以通过ch、vformat和portsel来确定接入 摄像头的分辨率;二、自适应视频采集1、摄像头分辨率检测通过nvp6124对摄像头分辨率进行检测,这里获取IOC_VDEC_GET_INPUT_VIDEO_FMT的值得到接入摄像头的分辨率;nvp6124_input_videofmt vfmt;ioctl(fd, IOC_VDEC_G

4、ET_INPUT_VIDEO_FMT, &vi_fmt);res = vi_fmt.getvideofmtch;res = 2 , 960H分辨率摄像头res = 8 , 720P分辨率摄像头res = 128,1080P分辨率摄像头2、自适应参数配置海思3520Dv300 sample程序,是不支持自适应采集的,需要对vformat, portsel的枚举进 行添加,nvp6124驱动中是有支持的,只需要sample程序更新下面两个枚举就行;enum/960 x576i(480)/1280 x72025p(30)/1280 x72050p(60)/1920 x108025p(30)/1920

5、 x576i(480)/720 x576i(480)/1280 x576i(480)/1440 x576i(480)/3840 x576i(480)/2560 x72025p(30)NVP6124_VI_SD = 0,NVP6124_VI_720P_2530,NVP6124_VI_720P_5060,NVP6124_VI_1080P_2530,NVP6124_VI_1920H,NVP6124_VI_720H,NVP6124_VI_1280H,NVP6124_VI_1440H,NVP6124_VI_960H2EX,NVP6124_VI_HDEX,NVP6124_VI_BUTT ;_mux_ety

6、pedef enum sample_vi_6124 NVP6124_OUTMODE_1MUX_SD = 0,NVP6124_OUTMODE_1MUX_HD,NVP6124_OUTMODE_1MUX_HD5060,NVP6124_OUTMODE_1MUX_FHD,NVP6124_OUTMODE_2MUX_SD,NVP6124_OUTMODE_2MUX_HD_X,NVP6124_OUTMODE_2MUX_HD,NVP6124_OUTMODE_2MUX_FHD_X,NVP6124_OUTMODE_4MUX_SD,NVP6124_OUTMODE_4MUX_HD_X,NVP6124_OUTMODE_4M

7、UX_HD,NVP6124_OUTMODE_2MUX_FHD,NVP6124_OUTMODE_1MUX_HD_X,NVP6124_OUTMODE_1MUX_FHD_X,NVP6124_OUTMODE_4MUX_FHD_X,NVP6124_OUTMODE_4MUX_MIX,NVP6124_OUTMODE_2MUX_MIX,NVP6124_OUTMODE_BUTTSAMPLE_VI_6124_MUX_E;如果需要自适应,需要设置 vformat = NVP6124_OUTMODE_4MUX_MIX;960H: portsel = NVP6124_VI_960H2EX;720P: portsel =

8、 NVP6124_VI_HDEX;1080P: portsel = NVP6124_VI_1080P_2530;通过不同分辨率,设置对应portsel的值,这里是SAMPLE_VI_MODE_8_1080P模式下portsel 的值,但是HIS3520Dv300有个比较恶心的点,一个AD只支持2路1080P所以如果需要使 用2个AD接8路720P,在SAMPLE_VI_MODE_8_720P模式下,portsel的值应该按照下 面的值设置:960H: portsel = NVP6124_VI_1920H;720P: portsel = NVP6124_VI_720P_2530;1080P: p

9、ortsel = NVP6124_VI_1080P_2530;3、实时检测上面两步可以实现对接入摄像头的检测和采集,但是如果所有参数都设置完成,中间需 要插拔摄像头换成不同分辨率的摄像头时,摄像头数据就不能采集了,这时需要实时检测摄 像头分辨率,如果分辨率改变了,需要重新初始化和配置参数;这里vformat,portsel的值 需要重新配置,还有需要重新设置 VI通道属性HI_MPI_VI_SetChnAttr,启用VI通道 HI_MPI_VI_EnableChn,当然,由于之前已经启用过 VI通道,需要先禁用 HI_MPI_VI_DisableChn,再启用。4、内存VB配置当设置MPP视频

10、缓存池属性HI_MPI_VB_SetConf时,需要通过分辨率配置MPP视频缓 存池的大小,一般的做法按照最大分辨率分配就行,如果在自适应情况下,需要接1080P 摄像头,那么按照1920 x1080去分配VB缓存大小就行,因为接其他分辨率分配VB缓存大 小肯定小于1920 x1080,所以按照最大分配肯定是可以的,但是如果你的内存比较小,直接 使用1920 x1080会浪费内存,那么可以给不同分辨率分配不同的VB块,VB缓冲池在使用 过程中,是从小往大使用的;这里特别注意的一点,自适应1080P模式下960H的采集分辨 率 NVP6124_VI_960H2EX(3840*576)大于 1080P 采集的分辨率 NVP6124_VI_1080P_2530 (1920 * 1080),所以分配VB最大的缓冲块应该是3840*576;这里多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论