Chinaunix首页 | 论坛 | 博客
  • 博客访问: 430090
  • 博文数量: 127
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 810
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-02 20:51
文章分类

全部博文(127)

文章存档

2018年(6)

2015年(18)

2014年(33)

2013年(70)

分类: LINUX

2013-07-06 17:10:33

Av_server分析总结

1、  HDVICP MJCP 模块是实现编解码功能,像H.264Mjepg等都是在这里实现,当然是encode线程控制HDVICP MJCP其寄存器实现。

2、  整个硬件架构可以分为三部分:arm主控部分、编码部分、图像处理部分。

3、  VPSS提供一个输入接口Video Processing Front End or VPFE和一个输出接口Video Processing Back End or VPBEVPFE用于外部图像设备,如图像传感器、视频编码器等。VPBE用于显示设备,如模拟SDTV显示器、数字LCD显示屏、HDTV视频编码器等等。

4、  cmos出来的数据时raw格式的数据(raw数据时16位的,但是cmos采集到的图像精度却是12位的),该数据经过IPIPEIF中的两个选择开关来和ISIFIPIPE进行交互,其流程是16位的raw数据经过INPSRC1开关(该开关状态的具体含义参考代码,一般为0)到达ISIFISIF接收到数据并进行处理(具体处理的作用是将数据转化为IPIPEH3A可以使用的数据)后分两路传输,其中一路经过INPSRC2开关将数据传输到了IPIPE,另外一路传给了H3A做统计只用。

5、  IPIPE一个主要的功能就是RESIZE功能,从上图可以看出IPIPE有两路RZARZB,因此可以有两路不同分辨率的帧输出,如果想要更多不同分辨率的帧,那么就要调用程序中的resize功能,不过我们程序中没有使用resize功能。

6、  Capture线程是从buffer logic中获取数据的,该数据是从IPIPE而来。

7、  图像的白平衡等图像调整是通过设置IPIPE中的相应寄存器实现的,其中H3A的输出作为2A线程的输入,2A线程通过控制H3A中的寄存器进而控制IPIPE中的相应寄存器,从而达到改变2A的功能。

8、  DVSDK中实现了cmem驱动,可以查看cmem驱动源码,cmem的目的是实现大块数据的读写,其中各个线程分配的buffer都是在cmem上面分配的。

9、  硬件中有OSD功能,但是我们没有使用,OSD功能是我们在代码中自己实现的。

阅读(2300) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~