linux v4l2系统详解,v4l2驱动2-linux3.0.8中V4L2_CAP_*详解

这部分涉及不少专业支持,有些可能写的不好,请大家原谅!

/* Values for ‘capabilities‘ field */

#define V4L2_CAP_VIDEO_CAPTURE0x00000001 /* Is a video capture device */

#define V4L2_CAP_VIDEO_OUTPUT0x00000002 /* Is a video output device */

#define V4L2_CAP_VIDEO_OVERLAY0x00000004 /* Can do video overlay */

#define V4L2_CAP_VBI_CAPTURE0x00000010 /* Is a raw VBI capture device */

#define V4L2_CAP_VBI_OUTPUT0x00000020 /* Is a raw VBI output device */

#define V4L2_CAP_SLICED_VBI_CAPTURE0x00000040 /* Is a sliced VBI capture device */

#define V4L2_CAP_SLICED_VBI_OUTPUT0x00000080 /* Is a sliced VBI output device */

#define V4L2_CAP_RDS_CAPTURE0x00000100 /* RDS data capture */

#define V4L2_CAP_VIDEO_OUTPUT_OVERLAY0x00000200 /* Can do video output overlay */

#define V4L2_CAP_HW_FREQ_SEEK0x00000400 /* Can do hardware frequency seek */

#define V4L2_CAP_RDS_OUTPUT0x00000800 /* Is an RDS encoder */

/* Is a video capture device that supports multiplanar formats */

#define V4L2_CAP_VIDEO_CAPTURE_MPLANE0x00001000

/* Is a video output device that supports multiplanar formats */

#define V4L2_CAP_VIDEO_OUTPUT_MPLANE0x00002000

#define V4L2_CAP_TUNER0x00010000 /* has a tuner */

#define V4L2_CAP_AUDIO0x00020000 /* has audio support */

#define V4L2_CAP_RADIO0x00040000 /* is a radio device */

#define V4L2_CAP_MODULATOR0x00080000 /* has a modulator */

#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */

#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */

#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */下面是解释:

1.       videocapture 、video overlay、video output、video output overlay

上面说了一个是采集一个是直接传送视频

vieo overlay不同于video capture,是指不需要对video信号的帧进行copy,直接将视频信号转化成显卡的VGA信号或者将捕获到的视频帧直接存放在显卡的内存中。Video overlay需要硬件的支持。这个直接的通道主要是DMA去实现。

Viedo overlay只用来preview,又被称为framebuffer overlay或previwing。 实际上video capture interface也能实现preview,只是没有overlay有效率。

如果是同时进行overlay和capture,应该尽量不使用同一个文件 描述符,比如说如果此时在overlay,要拍照的话应该再打开设备,使用一个分开的文件描述符来进行capture。如果driver支持同时进行overlay和capture的话,必须支持使用分开的文件描述符来分别进行overlay和capture 。为了多文件描述符的操作linux操作系统加入v4l2_fh和v4l2_prio的机制。以后再说。

video output设备是把静态图片编码为模拟video信号,这就意味着output设备的输出是模拟video信号。

Video Output Overlay又称on-screen display,把framebuffer中的内容叠加到输出的video信号中。

2.      vbi

VBI= Vertical Blanking Interval(场消隐区)。在模拟显示设备上(例如:CRT显示器),一场的显

示是从屏幕上方到下方一行一行绘制而成。一旦一场数据绘制完毕,电子束会由下方转移到上方,以备

开始下一场数据的显示。在这个电极复位的时间间隙内,CRT和信号间是没有数据传输的,因此称作场

消隐区。

在场消隐区时间内,不需要传输任何有用的视频数据,所以显示器不接受和处理任何的输入视频

信号。在这个间隔内,设备间可以利用空闲的基带进行额外的数据通讯。为了让这个问题简单化,水

平扫描线在场消隐区时继续传输,但是扫描线上不附带任何可供显示的视频数据。此时,每一个VBI

扫描线,或者一组VBI数据扫描线可能包含有按照某种标准进行编码后的信息。最常用的VBI应用就是

在闭路电视上,用于显示字幕。图文电视(Teletext)就是VBI数据广播的一种.

Raw VBI和SlicedVBI

接收到VBI数据的硬件设备,只需要去完完整整的接纳数据,并且对接收到的数据不做任何的数据处理,

这个称之为原始数据。这些原始数据可能直接提交给软件解析其内容。另外一种方式是用VBI硬件按照

某种标准或者类型去解析VBI数据,在这种方式下,信号的输出就被分离成为闭路电视字幕,或者其他

类型的数据包。典型的VBI数据分离电路支持都支持这两种模式。自从VBI硬件处理电路中添加了数据分

离,错误处理等功能后,Sliced模式变得更加有用。Raw VBI Data(原始VBI数据)主要用于没有任何

数据标准,且信号直接送递显示设备的场合。

3 .RDS

无线电数据系统,简称RDS,是欧洲广播联盟的通信协议标准,该标准的建立是为了使用传统的FM无线电广播发送少量的数字化信息。RDS系统标准化了好几个类型的信息传输,包括时间,信息跟踪和电台识别。在九十年代早期,RDS在欧洲和拉丁美洲已经标准化,但在北美标准化较少。

这是百度文库找的,其实RDS发明是针对汽车使用的。和FM和AM比较主要有两点:

a.信息

在调频广播发射信号中利用副载波把电台名称、节目类型、节目内容及其它信息以数字形式发送出去。

b. 电台识别

通过RDS可知道接收到的是那个电台,它的发射频率,并给出该电台其余的频率。一个电台有几个频率,你在不同地域要使用不同的频率,才能有好的效果。如果你在开车从这个地点到另一个地点。RDS会自动搜索当前电台的其他的发射频率,当找到另一个信号比原来的好、稳定的频率时,就会自动跳转过去。

3.     multi-planar

有的设备支持多种的像素格式,把每种格式放在不同的空间。Multi-planer API可以操作single-planner;但反之不行。

4.     输入/输出

使用read和write方法,每一帧都要通过I/O 操作,在用户和内核空间之间拷贝数据。设备cap要或上V4L2_CAP_READWRITE

在设备cap上要或上V4L2_CAP_STREAMING,让用户与内核空间之间交换缓冲区指针,这些缓冲区将被映射到用户地址空间,使帧的零 拷贝成为可能。

“用户与内核空间之间交换缓冲区指针”我们要理解的是缓冲区是在用户空间还是内核空间。对于内核空间(内核申请的缓冲区可以是大而连续 DMA 缓冲区、通过 vmalloc()创建的虚拟缓冲区,或者直接在设备的 I/O 内存中开辟的缓冲区,如果硬件支持) 。我们通过mmap()方法映射。 对于用户空间就不需要mmap(),此方法比较难用。

5、TUNER和MODULATOR

调谐器和调制器,一个算是输入一个是输出。

调谐器:是某些车载主机所具有的FM/AM调谐器或TV调谐器,具有这些调谐器的车载主机也就具有了FM/AM收音或电视接收功能。又是叫高频头。

调制器:把信号源(可以是数字电视机顶盒、卫星数字电视接收机、DVD机、电脑、摄像机、电视解调器等AV信号源)所提供的视频信号(VIDEO)和音频信号(AUDIO)调制成稳定的高频射频振荡信号,视频为调幅调制方式,音频为调频调制方式。

原文:http://blog.csdn.net/xxxxxlllllxl/article/details/21724437

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
adas智能辅驾-v3.0.8_20180330_092714.apk是一款车载安全辅助应用程序。它的名字的ADAS代表高级驾驶辅助系统(Advanced Driver Assistance Systems)。随着科技的不断进步,ADAS成为了现代汽车领域的一个重要发展方向。 这个apk文件的版本号为v3.0.8,时间戳为20180330_092714,意味着它是在2018年3月30日上午9点27分14秒发布的最新版本。这表明该应用程序经过了一定的开发和改进工作。 ADAS智能辅驾通过使用不同的传感器和摄像头,采集车辆周围的实时数据,以帮助驾驶员更安全地驾驶。它可以提供许多功能,包括车道偏离警示、碰撞警报、行人识别、交通标志识别和自适应巡航控制等。 车道偏离警示功能可以通过识别车辆是否偏离车道,并向驾驶员发出提示或警告,帮助驾驶员保持车辆在正确的车道上行驶。碰撞警报功能可以检测前方的障碍物,并在可能发生碰撞的情况下向驾驶员发出警示,以避免事故的发生。 行人识别功能可以通过识别行人的存在,并在必要时向驾驶员发出警告,以避免撞人事故的发生。交通标志识别功能可以识别道路上的交通标志,并在驾驶员靠近或超过相关标志时提醒驾驶员了解相关的交通规则和限制。 自适应巡航控制功能可以根据前方车辆的速度和跟车距离自动调节车辆的速度,以维持安全的跟车距离,减少驾驶员的操作压力。 ADAS智能辅驾-v3.0.8_20180330_092714.apk是一款非常有用的车载应用程序,它可以提高驾驶安全性,减少事故发生的可能性,为驾驶员提供更好的驾驶体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值