V4l2 v4l2_field理解

http://blog.csdn.net/kickxxx/article/details/6336346

我们要区分video为 顺序式和交错式: 数序式video顺序的传输video image所有的行,而交错式video则把一个video划分成两个fields,分别保存video image的奇数行和偶数行,被称作奇数field和偶数field.  阴极射线电视机需要交替的显示行来组成一个完整的帧,交替的时延需要我们交替的传输奇数field和偶数field. 这个奇怪的技术的引用是因为:在刷新率接近电影时,图片会消退的过快。使用field可以避免使用double buffer以及额外的带宽需求。

 

首先要明确camera并不是在同一时间曝光一帧,camera通过许多fields来传输这些帧的,这些field是在不同瞬间拍照。屏幕上的一个对象因此会在两个field之间产生动画效果。这种情况下需要识别哪一帧更老一点,也称作“瞬间序”

 

当驱动通过fields 提供或者接收images,应用应该知道如何通过这些fields组合成帧,通过划分为top bottom field, “空间序”: top field的第一行是帧的第一行, bottom field的第一行是帧的第二行。

 

然而因为field是一个跟着一个拍的,争论帧是由top还是bottom开始的是没意义的,任何两个相邻的top bottom field, 或者 bottom top field都可以组成一个有效的帧。

 

与直觉相反top field不一定是older field, older filed是否包含top 或者bottom lines是由video标准决定的. 因此要区分瞬间序和空间序。下面的图会给出清晰的解释。

 

所有的video capture和out devices必须汇报当前的field顺序。 一些驱动可能允许选择不同的序,end应用可以在调用VIDIOC_S_FMT前初始化struct v4l2_pix_format的 field成员。否则可以使用V4L2_FIELD_ANY

 

下面列出了可能的field类型

V4L2_FIELD_ANY0Application 可以请求使用这个参数,如果V4L2_FIELD_NONE, V4L2_FIELD_TOP, V4L2_FIELD_BOTTOM V4L2_FIELD_INTERLACE 中任何一个格式都支持.驱动选择使用哪一个格式依赖于硬件能力,以及请求的image尺寸,驱动选择一个然后返回这个格式。struct_buffer的field成员不可以为V4L2_FIELD_ANY.
V4L2_FIELD_NONE1Images是顺序式格式,驱动可以指定这种order,当驱动无法区分V4L2_FIELD_TOP和V4L2_FIELD_BOTTOM
V4L2_FIELD_TOP2Images仅仅包含top field
V4L2_FIELD_BOTTOM3Images仅仅包含bottom field. 应用可能希望防止设备捕获interlaced的图片,因为这种图片会在运动物体周围产生毛状特效
V4L2_FIELD_INTERLACED4Images包含top和bottom field, 隔行交替,fields的瞬间序依赖于当前video的标准。M/NTSC首先传输bottom field, 其他的则先传输top field
V4L2_FIELD_SEQ_TB5Images包含top和bottom field, top field的行首先存放在memory中,然后紧跟着bottom field的行。 Fields一直以瞬间序存储,较老的放在内存前面。Images的尺寸和帧相关,而不是field
V4L2_FIELD_SEQ_BT6Images包含top和bottom field, bottom field的行首先存放在memory中,然后紧跟着top field的行。 Fields一直以瞬间序存储,较老的放在内存前面。Images的尺寸和帧相关,而不是field
V4L2_FIELD_ALTERATE7 一个帧的两个field分别放在不同的buffer, 按照瞬间序,也就是说老的一个是第一个。driver或者应用指明field的奇偶性(奇偶性:当前的field是top 还是bottom field). 任何两个连续的field构成一个frame,是否两个field是连续的,不需要drop掉他们,可以通过v4l2_buffer中的sequence 成员判定。Images的尺寸和frame而不是fields相关
V4L2_FIELD_INTERLACED_TB8Images 包含top和bottom field, 每行交替, top field在前面。top field首先传送
V4L2_FIELD_INTERLACED_BT9Images 包含top和bottom field, 每行交替, bottom field在前面。bottom field首先传送

 

 

Field Order, Top Field First Transmitted

 

Field Order, Top Field First Transmitted

 

Field Order, Bottom Field First Transmitted

 

Field Order, Bottom Field First Transmitted


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值