专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
DSP
VPORTCAP_Params参数含义详解
2019-07-13 12:52
发布
生成海报
站内文章
/
DSP
16630
0
1719
VPORTCAP_Params参数含义详解
以下是关于DSP中RF5结构中视频捕获VPORTCAP_Params结构体数据成员的说明,希望能提供给刚入门的朋友一些帮助:
typedef struct {
Int cmode; //捕获模式设置
Int fldOp; //帧和场的操作模式
Int scale; //水平视频数据是否放缩(只对八位的BT656和Y/C有用)
Int resmpl; //水平 {MOD}度数据滤波(只对八位的BT656和Y/C有用)
Int bpk10Bit; //10bit数据打包成64bit数据包的方式(10位数据有效)
Int hCtRst; //水平计数(HCOUNT)复位位置定义
Int vCtRst; //垂直计数(VCOUNT)复位位置定义
Int fldDect; //场检测使能定义
Int extCtl; //使能外部时钟控制
Int fldInv; //场标志
Uint16 fldXStrt1; //奇场列开始位置
Uint16 fldYStrt1; //奇场行开始位置
Uint16 fldXStrt2; //偶场列开始位置
Uint16 fldYStrt2; //偶场行开始位置
Uint16 fldXStop1; //奇场列结束位置
Uint16 fldYStop1; //奇场行结束位置
Uint16 fldXStop2; //偶场列结束位置
Uint16 fldYStop2; //偶场行结束位置
Uint16 thrld; //指示FIFO的门限值,数据达到门限则出发DMA操作
Int numFrmBufs; //给driver分配的buffer个数
Int alignment; // Buffer对齐字节数
Int mergeFlds; //指定场1和场2 buffer是否在存储器中分开存放
Int segId; //指定driver将buffer分配到的位置
Int edmaPri; // edma传输的优先级
Int irqId; // edma 中断号
} VPORTCAP_Params;
参数具体说明:
Int cmode:
为vport数据输入格式的选择,定义如下:
#define VPORT_MODE_BT656_8BIT 0x0 //8位ITU-RBT.656视频捕获端口
#define VPORT_MODE_BT656_10BIT 0x1 //10位ITU-RBT.656视频捕获端口
#define VPORT_MODE_RAW_8BIT 0x2 //8位原始数据捕获端口
#define VPORT_MODE_RAW_10BIT 0x3 //10位原始数据捕获端口
#define VPORT_MODE_YCBCR_8BIT 0x4 //8位Y/C视频数据捕获端口
#define VPORT_MODE_YCBCR_10BIT 0x5 //10位Y/C视频数据捕获端口
#define VPORT_MODE_RAW_16BIT 0x6 //16位原始数据捕获端口
#define VPORT_MODE_RAW_20BIT 0x7 //20位原始数据捕获端口
Int fldOp :
帧和场的操作模式,参考选择如下:
VPORT_FLDOP_FLD1 //只捕获/显示第一场(奇场)
VPORT_FLDOP_FLD2 //只捕获/显示第二场(偶场)
VPORT_FLDOP_FRAME //两场都捕获/显示
VPORT_FLDOP_PROGRESSIVE //还不清楚具体含义请指教?
Int scale:
水平视频数据是否放缩(只对八位的BT656和Y/C有用,竖直方向需软件处理)
#define VPORT_SCALING_DISABLE 0x0 //没影响
#define VPORT_SCALING_ENABLE 0x1 //水平数据1/2放缩,数据处理如下图:
Int resmpl:
水平 {MOD}度数据滤波(只对八位的
BT656和Y/C有用)如下图:
#define VPORT_RESMPL_DISABLE 0x0 //没影响
#define VPORT_RESMPL_ENABLE 0x1 // {MOD}度信号滤波,数据处理如下图:
注:由于篇幅限制,如想了解更详细的情况请参见TI文档spru629 66页。
Int bpk10Bit:
10bit数据打包成64bit数据包的方式,包括:
VPORTCAP_BPK_10BIT_ZERO_EXTENDED //16位为一个单元剩余单元插入0
VPORTCAP_BPK_10BIT_SIGN_EXTENDED //16位为一个单元剩余单元插入额外信号?
VPORTCAP_BPK_10BIT_DENSE //密集型存储,存储形式如下图:
extCtl和vCtRst 、hCtRst:
定义了垂直和水平采样计数器的复位点,含义如下:
当extCtl = 0,vCtRst =0:VCOUNT在场消隐开始时复位
当extCtl = 0,vCtRst =1:VCOUNT在有效行开始时复位
当extCtl = 0,hCtRst =0:HCOUNT在EAV代码结束时复位
当extCtl = 0,hCtRst =1:HCOUNT在SAV代码结束时复位
当extCtl = 1,vCtRst =0,hCtRst =0:VCOUNT、HCOUNT都在VCTL0控制信号的上升沿复位;
当extCtl = 1,vCtRst =1,hCtRst =1:VCOUNT、HCOUNT都在VCTL0控制信号的下降沿复位;
Int fldDect:
场检测使能定义;
Int fldInv:
fldInv = 0,指示场1的开始;fldInv = 1指示场2的开始;使用fldInv输入判断场的方法适合Y/C图像数据流;
fldXStrtn, fldYStrtn, fldXStopn, fldYStopn:
决定了捕获的图像帧的窗口中的位置
奇场捕获位置:CRect(Xstart1, Ystart1, Xstop1, Ystop1)
偶场捕获位置:CRect(Xstart2, Ystart2, Xstop2, Ystop2)
注意:奇偶的Hcount都是从0开始索引(Xstart1,Ystart2 的最小值为0),Ycount都是从1开始索引(Ystart1,Ystart2 的最小值为1)如下图:
Uint16 thrld:
指示FIFO的门限值,当捕获的数据达到门限值则出发DMA操作
Int numFrmBufs:
给driver分配的buffer个数
Int alignment:
Buffer对齐方式
Int mergeFlds:
指定场1和场2 buffer是否在存储器中分开存放,定义如下宏:
#define VPORT_FLDS_SEPARATED 0 //分开放
#define VPORT_FLDS_MERGED 1 //不分开
Int segId:
指定driver将buffer分配到的位置
Int edmaPri:
edma传输的优先级
Int irqId:
edma 中断号
以上是本人对VPORTCAP_Params结构体的一些拙见,可能有很多理解错误之处,欢迎指正与交流,谢谢!
Ta的文章
更多
>>
基于TMS320DM642的网络摄像机设计
0 个评论
VPORTCAP_Params参数含义详解
0 个评论
linux下/dev/dsp:No such file or directory解决方法
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮