基于GIO
2024上消化道肿瘤高危人群放大内镜检查中西部专家意见

2024上消化道肿瘤高危人群放大内镜检查中西部专家意见摘要:食管癌和胃癌是我国中西部地区常见的恶性肿瘤之一,严重威胁中西部地区居民生命健康。
近年来,放大内镜技术在早期食管癌和早期胃癌筛杳和诊断中已受到广泛使用,国内尤其是中西部众多专家通过多次讨论, 并结合上消化道早期癌放大内镜诊治的最新研究进展,制定了更适合我国的上消化道肿瘤高危人群放大内镜检查中西部专家意见,以期进一步提高中西部地区上消化道早期癌的检出率,并推动放大内镜的规范应用。
一、前言近年来随着人均寿命的延长,我国肿瘤的发病率和死亡率都显著上升。
全球范围内我国消化道肿瘤的年新发病例远多于其他任何国家,已经成为严重危害国民健康的疾病,消化道肿瘤防治是我国医疗领域重中之重的任务。
尽管我国早在20世纪50年代就开始了与癌症的抗争史,例如河南林县及周边地区在世界上首创了拉网试验的方法检查食管癌,但是与邻国如日本和韩国相比,我国消化道早期肿瘤检出率仍有差距,发现时多为进展期,死亡率高、社会危害强。
因此如何提高早期癌的检出率,从而提高消化道肿瘤的存活率,是所有消化科医师责无旁贷的使命。
消化内镜是诊断上消化道癌的金标准。
内镜技术已广泛应用于消化道癌等疾病的诊断与治疗。
然而普通白光内镜对上消化道早期癌的细微病变不易察觉,易造成漏诊,且无法精确估计病变边界,不利于早期癌患者进一步诊断治疗。
为了能够更准确地识别消化道早期癌,新型内镜成像技术——放大内镜联合窄带光成像(magnifying endoscopy with narrow band imaging , ME-NBI)应运而生,该技术可以通过增强黏膜表面形态学的改变而清楚观察到黏膜表面腺管开口和微血管结构。
目前ME-NBI在全世界都得到了推广。
国内外数篇文献通过比较发现,在早期食管癌和癌前病变的诊断中,ME-NBl应用效果好,可以为后期治疗提供重要参考依据。
研究表明ME-NBl在上消化道早期癌的检出、范围判断、组织类型辨识方面有着传统内镜无法比拟的优势,已经成为消化道早期癌诊断的首选工具。
一种基于GIoay互补序列的MIMO-OFDM系统同步方案

偏
整数倍频偏
精 同步
去。接收端 : 根接收天线将接收到的时域信号先通过帧 /符号
一
引 言
同步和载 波频率 同步 ,得到正确的帧起始位置和 FT窗 I位置 , F Z l 再估计 并补偿 载波频率偏 差 ,消除 子载波间干扰 ,最后经过 OD F M解调 信道估计 空时解码、解映射 、解交织 以及信 道解 码得 到输 出数 据流 。
摘 要 :提出利 用 Goy l 互补序列构造一种特殊的训练序 a
列进行MIO O D M - F M系统同步 的方案 , 详细介绍了同步算法 。 并 给 出瑞利衰落条件下单径和多径的仿真结果 。结果 表明 。这种 同步方案算法复杂度低 ,具有较高 的精度和较大的实用价值 。 关键词 :MI - F M Goy MO O D l 互补序列 粗同步 小数倍频 a
删 ( P () c) 彳
() 1 、
判决变量构造成如下形式 :
其中:
㈨= ∑ ∑
() 2
(m I 一 ) :+ ) ) ㈣ (
() 6
Q( t) ∑ t十 ), 2 , ∑ ” )’ 十 + ) (
I I :
其 中
号 :1 0 - 9 0 2 0 ) 0 - 0 4 0 9 0 4 《07 - 4 0 2- 4 0
一
种基于 G 互补序列的 l oy a
MI - F MO O DM系统 同步方案
韩重阳 王向阳 东南大 学信息科 学与工程 学院 南京 20 9 106
随着第三代 (G)移动通信系统在 世界范围内逐渐走 向商 3 用, 很多国家已经将研发重点转入对第四代 (G 移动通信技术 4) 的探讨和研究。O D F M系统 的频谱效率很高 ,并且能将频率选择 性衰落信道在频域 内转换为平坦信道 ,减小 了多径衰落的影响 ; MI MO技术可 以通过各个发送天线 间的联合编码获得分集增益 ,
基于微服务架构的时空数据处理服务封装技术

第1期2021年1月Vol. 16 No. 1Jan. 2021Journal of C A E I T doi : 10.3969/j. issn. 1673-5692.2021.01.002基于微服务架构的时空数据处理服务封装技术仇林遥1,王晓峰2,郑作亚1,柳圼1,王琼洁3 *(1.中国电子科学研究院,北京100041 ;2.中国人民解放军驻天津地区军事代表室,天津30024〇;3.中国电子信息产业发展研究院,北京100846)摘要:对地观测技术的快速发展使得卫星遥感数据的行业应用越来越普遍,随着国家遥感时空数 据共享开放的政策落地与实施,利用对地观测技术对国土、农业、交通、减灾、海洋等行业的技术应 用将进一步深入和普及。
但是遥感数据在行业应用仍存在专业技术门槛高、数据处理流程复杂、业 务灵活定制难度大等问题。
文中基于微服务架构,利用容器技术将算法资源封装为可灵活管理调 度的微服务节点,屏蔽不同算法模型在编译语言、运行环境和接口形式方面的差异问题,通过对服 务节点输入输出的标准化设计,将遥感数据的处理、分发、提取、专题产品制作等微服务进行业务进 行流编排,实现了整个业务算法的无缝封装和串联,通过服务的资源调度与管理实现对遥感数据应 用服务定制化,为遥感数据资源在行业的快速开发与应用深化提供技术支撑。
关键词:微服务架构;遥感数据处理;定制化服务中图分类号:T N 79文献标志码:A文章编号:1673-5692(2021)014)054)9A spatio-temporal data processing service packaging technologybased on microservice architectureQ I U Lin-yao1 , W A N G Xiao-feng', Z H E N G Z u o -y a 1 , L I U G a n g 1 , W A N G Qiong-jie3Abstract : T h e rapid d e v e l o p m e n t of Earth observation technology m a k e s the application of satellite re-m o t e sensing data in the industry m o r e a n d m o r e c o m m o n 。
《基于机器学习的旅游景区日客流量预测方法研究国内外文献综述》4500字

基于机器学习的旅游景区日客流量预测方法研究国内外文献综述目录基于机器学习的旅游景区日客流量预测方法研究国内外文献综述 (1)1 国内研究现状 (1)1.1 旅游客流量预测问题研究现状 (1)1.2 深层神经网络在时间序列预测方面的研究现状 (3)2 国外研究现状 (4)2.1 旅游客流量预测问题研究现状 (4)2.2 深层神经网络在时间序列预测方面的研究现状 (4)参考文献 (5)1 国内研究现状1.1 旅游客流量预测问题研究现状早期对于旅游需求预测的研究主要集中在长期和中期预测,如年度、季度、以及月度客流的预测。
韩兆洲等人构建了以消费者预期指数、城镇居民人均可支配收入、接待过夜游客数量三个指标滞后值为输入变量的GA-LSSVR 模型和季节调整的ARIMA 模型以及基于GIOWHA 算子的组合模型,对广东省接待的过夜游客流量进行预测[1]。
此外,灰色预测方法在旅游需求的预测方面也得到了大量的研究和应用,其主要思想是通过分析和挖掘时间序列之间的内在关联性,建立微分方程组来进行预测。
相比于传统的Box-Jenkins 方法,灰色预测方法的限制条件少,计算较快,且不需要进行平稳性检验和白噪声检验。
在对旅游需求的预测和计算方面,周廷慰利用数列灰预测方法和经过改进的灰色马尔科夫模型预测了安徽入境的旅游人数及其外汇收入,并对结果进行了详细的分析和对比[2];李丹建立了基于灰色系统组合模型优化后的平常日客流量预测模型,以安徽黄山景区的平常日客流量数据为例进行预测,取得了较好的预测效果[3];赵欢采用分形自回归滑动平均(ARFIMA)模型,结合灰色预测FGM(1,1)模型,对2001 年到2018 年的广东省游客人数数据集进行了分析和预测,发现该预测方法的应用能显著提高长期预测结果的可靠性和准确度[4]。
不过,这些比较经典的时间序列预测方法主要集中在数据内在变化规律的回归分析以及对时间序列变化趋势的预测和外推上,没有充分考虑可能影响游客量的各种相关因素,并且对非线性系统的数据处理和分析能力也比较差。
PADS 原理图_PCB常见错误及DRC报告网络问题 _1

:自动布线及交互式布线,在自动布快速漂亮有趣的记录下载APP>网易帐号登录《娱乐至死》同。
5、布线中网络系统的作用在许多CAD系统中,布线是依据网络系统决定的。
网格过密,通路虽然有所增加,但步进太小,图场的数据量过大,这必然对设备的存贮空间有更高的要求,同时也对象计算机类电子产品的运算速度有极大的影响。
而有些通路是无效的,如被元件腿的焊盘占用的或被安装孔、定们孔所占用的等。
网格过疏,通路太少对布通率的影响极大。
所以要有一个疏密合理的网格系统来支持布线的进行。
标准元器件两腿之间的距离为0.1英寸(2.54mm),所以网格系统的基础一般就定为0.1英寸(2.54 mm)或小于0.1英寸的整倍数,如:0.05英寸、0.025英寸、0.02英寸等。
6、设计规则检查(DRC)布线设计完成后,需认真检查布线设计是否符合设计者所制定的规则,同时也需确认所制定的规则是否符合印制板生产工艺的需求,一般检查有如下几个方面:线与线,线与元件焊盘,线与贯通孔,元件焊盘与贯通孔,贯通孔与贯通孔之间的距离是否合理,是否满足生产要求。
电源线和地线的宽度是否合适,电源与地线之间是否紧耦合(低的波阻抗)?在PCB中是否还有能让地线加宽的地方。
对于关键的信号线是否采取了最佳措施,如长度最短,加保护线,输入线及输出线被明显地分开。
模拟电路和数字电路部分,是否有各自独立的地线。
后加在PCB中的图形(如图标、注标)是否会造成信号短路。
对一些不理想的线形进行修改。
在PCB上是否加有工艺线?阻焊是否符合生产工艺的要求,阻焊尺寸是否合适,字符标志是否压在器件焊盘上,以免影响电装质量。
多层板中的电源地层的外框边缘是否缩小,如电源地层的铜箔露出板外容易造成短路。
概述本文档的目的在于说明使用PADS的印制板设计软件PowerPCB进行印制板设计的流程和一些注意事项,为一个工作组的设计人员提供设计规范,方便设计人员之间进行交流和相互检查。
2、设计流程PCB的设计流程分为网表输入、规则设置、元器件布局、布线、检查、复查、输出六个步骤.2.1 网表输入网表输入有两种方法,一种是使用PowerLogic的OLE PowerPCB Connection功能,选择Send Netlist,应用OLE功能,可以随时保持原理图和PCB图的一致,尽量减少出错的可能。
【REDDSMC操作指南】高级菜单

【REDDSMC操作指南】⾼级菜单DSMC ⾼级菜单⾼级菜单包括:访问⾼级菜单►按 DSMC 侧⼿把或 REDMOTE 上的“ 菜单” (Menu) 按钮。
►按触摸屏上的“ 菜单”(Menu) 图标。
►从上⽅状态⾏中的任何菜单中(REDCODE 菜单除外)选择“ ⾼级...”(Advanced...)按钮。
2设置菜单“设置”(Settings) 菜单包括:显⽰、视觉效果、项⽬、⾳频、录制、设置和维护。
“ 设置 ”(Settings) 菜单显⽰“显⽰”(Display) 菜单包括:⼯具、斑纹、监视器控制、模式、参考线、测试信号和 4K ⼴播(仅当安装了 RED 4K ⼴播模块时,才能访问“ 4K⼴播”(4K Broadcast) 菜单。
⼯具通过“⼯具”(Tools) 菜单可访问假彩⾊和显⽰模式。
假⾊模式假⾊模式包括:关闭、曝光、视频、对焦、边缘和 Gio Scope。
注意:只有在“监视器控制”(Monitor Control) 菜单中已选中“⼯具”(Tools) 复选框的监视器将显⽰假彩。
注意:如果在“监视器控制 (Monitor Control)”菜单中选中了“⼯具 (Tools)”复选框,则假彩模式会影响通过 HDMI 或 HD-SDI。
录制到外部录像机的视频。
通过 HDMI 或 HD-SDI 录制时,仅使⽤假⾊模式以帮助配置项⽬设置,然后在录制之前禁⽤此模式。
关闭关闭所有假⾊模式。
曝光在去饱和图像顶部显⽰颜⾊叠加以检查适当的曝光。
启⽤时,“E√”指⽰器显⽰在下⽅状态⾏中。
曝光计颜⾊指⽰以下信息:►紫⾊:曝光不⾜;表⽰如果在后期制作中提⾼增益,则传感器曝光⽔平很可能会有噪⾳。
►绿⾊:IRE 41–48;基于视频输出信号的 RGB 级别,⽽不是 RAW 数据。
►红⾊:曝光过度;表⽰正在削波的传感器曝光⽔平。
紫⾊和红⾊基于 RAW 数据并且表明会削波或接近削波的区域。
RGB 设置(“视觉效果”(Look)菜单中的设置)不会影响曝光指⽰器。
基于GIS的毕节地区旅游地理信息系统设计与开发
系统 升级和信息 的更新 只需 对信息 系统数 据库进 行
补 充即可 , 这也使 用户 的操作 更为 简单 , 入成本 更 投 低, 也利于系统 的推广应 用 。
4 )地 图输 出 根据需要 , 能够制 作 生 成 普 通 的旅 游地 图和各
种专题 地 图。
贵 州 科 学 2 ( ) 8 - 2,0 1 9 3 :9- 2 1 9
Gio uz u&in e h e c
基 于 GI 毕 节 地 区旅 游 地 理 信 息 系统 设 计 与 开 发 S的
陈 群 利 张 鹏 飞
( 毕节学 院环境与生命科学系 , 毕节
摘
5 10 ) 5 70
a d fncin ft e s se n u t so y tm. o h
Ke od : tu s ega hci o ao ytm, I , iepeetr y w rs or m g orp i n r t nss i fm i e G S Bj rf ue士 , 副教授 , 主要从事区域经济和旅游 地理研究 。
20 ) 08 。通 过完整 的地 理信 息 系统 二次 开 发来 实 现 系统完 全脱离 地理 信息 系统 软件 平 台而独 立 使 用 ,
昔 埘 科 学
2 9卷
( eate tfE v o m n a dL eSi c , ieC lg , ie G i o 5 7 0, hn ) D p r n ni n e t n i c ne B o e Bj , u hu5 1 0 C ia m o r f e s f i  ̄ i z
A src : A crigt ten e so ui ee p n ie h uh u ei n ee p t r m go bta t codn o h ed ft r m dvl metBj ,teato sd s n a dd vl o i e— o s o i g o us gahci om t nss m i iepe c r b sdo I adV . hs ae t d c s da me o , t c r rp i n r ai yt Bj rf t e ae nG S n B T i pp rnr u e e , t d s u t e f o e n i eu i o i h r u
基于嵌入式WinCE的GPIO驱动开发
接口名称
功 能描述
XXX _D e in it XXX _In it XXX _O pen
XXX _IOContro l XXX _Pow erU p XXX _Pow erDown
XXX _R ead XXX _Seek XXX _W r ite
XXX _C lose
卸载 一个设备 初始化一个设备
0, NULL, O PEN _EX IST ING, 0, NULL );
对于每个按钮的响应内容基本上是类似的, 绘 制一个圆来表示灯的亮和灭, 下面仅列出 LED1亮 这个按钮的内容:
CDC * pDC = new CC lientDC( this) ; CB rush brush; Dev ice IoContro l( gp iodr iver, IO _CTL _G P IO _1_ON, NU LL, 0, NULL, 0, NU LL, NU LL ); brush. CreateSo lidBrush( RGB( 255, 0, 0) ); CB rush* pO ldBrush = pDC - > Se lectO b jec t(& brush); pDC- > E llipse( 105, 10, 117, 22); pDC- > SelectO bject( pO ldBrush);
GP IO 口的控制首先需要设 GPXCON 寄存器为 输出功能, 然后再通过设 GPXDAT 寄存器的值为 0 或 1来实现控制 GP IO 口的低或高电平。
S3C2440开发板中提供了 4个 LED 灯, 它们分 别由 GPB5 到 GPB8 这 4 个 GP IO 口来 控制, 当要 LED灯亮时, 需要将对应的 GPBn脚拉低 ( 即设置为 0) ; 当要 LED 灯灭时, 需要拉 (即设置为 1)。
基于二维Gabor小波特征的三维人脸识别算法
变化 ,会严重影 响识别结果 。光照和姿态 的变化是人脸识别 面 临的主要 问题 ,同一个人在不 同光照和姿态下 的人脸 图像 差别通常大于不 同人在相 同光照和姿态下 的差别 。 三 维人 脸识别直 接提 取人 脸在 三维 空间 的真 实特 征信 息 ,不 同于二维人脸识别 中人脸在某个 方向上 的平面投影 ,
维普资讯
第 3 卷 第 1 4 7期
L 34
・
计
算
机
工
程
20 0 8年 9月
S pt m be 0 e e r20 8
No. 17
Co put rEng ne r ng m e i ei
人工智 能 及识 别技 术 ・
文章编号: Io.48 08 7 2 _ 2 文献标识码: 10- 2( 0) —0I _ ) 3 2 1 l0 0 A
f a u e hi l o t m e D bo v l t f au e t e c b e t r s o u e t r .T s ag r h us s 2 Ga r wa e e e t r O d s r e f au e n h ma a e a c r t l n t b y i i n f c c u ae y a d sa l Th D a e r c g ii n i e 3 f c e o n to s p ro me y t r e se s D a e m o e e o tuci , a t r t h ng ofr c n tu t d 3 f c e f r d b h e t p :3 f c d l r c nsr t on p t n ma c i e o sr c e D a e mod la d Li e r Di c mi a e a y i f e e n n a sr i n t s An l ss o ma c d 3 f c o e the D a em d l Thee p rme t l e u t a e n ORL n x e i n a s l s d o r b a d UM I a a a e h ws a h sm e o se c l n e f r n e . ST d t b s s s o t i t d ha x e l t ro ma c s h t t h e p
开发DSP硬件驱动程序的一种方法
开发DSP硬件驱动程序的一种方法目前,TI公司的应用很广泛,随着DSP的功能越来越强大,片上外设种类及应用日趋复杂。
传统的DSP程序开发包含两方面程序:即配置、控制、中断等管理DSP片内外设、接口的硬件相关程序和基于应用的算法程序。
这样的系统结构,应用程序与硬件相关程序紧密的结合一起,限制了程序的可移植性和通用性,软件开发总要从零开头,存在诸多重复工作。
一旦硬件平台有变幻,往往与硬件程序捆绑一起的应用程序也需改动,代码的维护性和可移植性均不高。
通过建立硬件驱动程序的开发模式,可使上述现象得到充实。
因此,本文介绍一种开发TI公司DSP片内及片外硬件外设驱动程序的办法,并以C5000 DSP的McBSP/DMA及TMS320C5509的驱动程序开发为详细对象,介绍这种办法的应用。
基于DSP/BIOS的IOM硬件驱动在CCS应用环境中集成的实时操作系统DSP/BI-OS[1]中,硬件驱动程序终于以函数库的形式被封装起来,应用程序可不关怀底层硬件外设的详细操作,通过调用DSP/BIOS相关的标准API与不同外设接口。
接口按统一标准定义,即在DSP/BIOS中创建并配置硬件设备驱动模块为IOM(I/O Mini-driver)模式。
IOM[2]是DSP/BIOS的设备驱动模块的一种接口方式,配置硬件设备驱动模块为IOM模式可在DSP/BIOS的图形化界面(GUI)中便利完成。
IOM 模式将设备驱动程序分为两个层次:上一层是"类"驱动程序(class driv-er),这部分程序负责对存储缓冲区管理、由DSP/BIOS各类标准的API函数与应用程序接口,与设备硬件无关。
下一层是"迷你"驱动程序 (mini-driver),这部分程序集成了实际硬件相关的代码。
IOM 接口将"迷你"驱动程序与"类"驱动程序联系一起,包括定义I/O数据包 (IOM_Packet)以提交"迷你"驱动程序读写,定义功能函数包(IOM Fxns)完成相关初始化,打开或关闭通道,提交I/O数据传输与控制等任务,确保"迷你"驱动程序与"类"驱动程序运行协调全都。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于GIO/FVID的DSP视频处理驱动程序着时代的发展,DSP 技术在远程监控、可视电话、工业检测等视频处理领域得到了广泛的应用,对于不同的视频处理系统,会使用不同的视频设备,所以有必要为视频设备设计驱动程序,为高层应用程序提供统一的接口来操作底层硬件。
只要是遵行此驱动程序接口标准开发的高层应用程序,都可以在具有相同接口的不同硬件平台上运行,具有很好的通用性和可移植性,同时高层应用程序设计人员只要会使用设备驱动程序提供的API接口,就不必了解底层硬件的具体实现,可以大大地提高整体视频系统的开发效率。
对于视频设备,TI公司提出了对应的视频设备驱动程序模型,但这些模型主要是针对6000系列高端DSP,甚至是DM64X这样的视频处理专用DSP设计的,而TMS320F2812(简称F2812)DSP这样的低端处理器,内部存储空间较小,且没有DM64X那样专用的视频接口,本文针对这类问题,提出了对TI视频驱动模型进行简化和改造的方法,使视频设备驱动程序占用尽量少的系统资源,来完成对视频硬件设备的操作,这种视频驱动模型的裁减方法,对于使用低端处理器的视频处理系统具有可借鉴性。
1 基于DSP/BIOS的外设驱动开发模型TI公司为开发DSP的外设驱动程序,推出了DSP/BIOS Device Drive kit[1],定义了标准的设备驱动模型,并提供了一系列的API接口,如图1所示,外设驱动程序分为两层:①类驱动(class driver),类驱动程序用来为应用程序提供接口,这部分程序与设备无关,主要功能包括维护设备数据缓冲区,向上提供API接口供应用层程序调用,并协调应用程序对外设操作的同步和阻塞,向下提供适配层与迷你驱动层相连,实现API接口函数到迷你驱动程序的映射,类驱动程序与硬件无关,只要外设驱动模型选定了,类驱动程序就定下来了,不需要作多少修改。
②迷你驱动(mini driver),迷你驱动程序与设备相关,所以设计迷你驱动程序是外设驱动开发中的重点,迷你驱动程序与类驱动层的接口格式是统一的,但迷你驱动程序对底层硬件的操作是根据硬件平台的不同而变化的,迷你驱动接收类驱动层发出的IOM_Packet命令包,决定对底层硬件进行什么样的操作。
外设驱动程序模型又可以分为以下3类[2]:1)PIP/PIO模型。
基于数据管道的I/O模型,每个管道都在维护自己的一个缓冲区。
当数据写入缓冲区,或从缓冲区取出数据时,便会激发notifyReader和notifyWriter函数实现数据的同步。
2)SIO/DIO模型,基于数据的I/O模型,一个数据流是单向的,要么是输入,要么是输出,而且SIO/DIO模型使用异步方式来操作I/O,对于数据的读写、处理可以同时进行[3]。
3)GIO模型,通用的I/O模型,灵活性很强,且没有适配层、直接操作迷你驱动程序,主要用来设计新型的设备驱动模型。
2 视频处理系统硬件平台硬件平台如图2所示,系统以TI公司的F2812 DSP作为中心处理器,以模拟摄像机进行视频信号采集,再使用SAA7111视频解码芯片将其转换为BT601格式的数字视频信号,DSP将数字视频信号处理后,再写入输出帧缓存AL422中,并控制视频编码芯片ADV7177,将其转换为模拟电视信号输出。
整个系统以1片CPLD——IspMach LC4128来协调各个芯片之间的时序关系。
3 视频设备驱动程序开发3.1 设备驱动程序模型的选择如上文介绍,常用的驱动程序模型包括3类:PIO、SIO和GIO。
比较这3种模型可以知道:PIO支持更底层的通信,适合设计比较简单的外设驱动程序,例如在TI公司的6X11DSK板上实现的音频采集和回放,一般都是基于PIO模型的[4],而SIO模型具有很好的缓冲器分配回收机制,比较适合描述视频设备,但是SIO的很多功能在本系统中使用不到,而且GIO模型设计的目的解决针对特殊硬件的新型设备,所以最终考虑使用GIO的设备驱动模型。
TI公司最初设计的GIO模型[3]其实是有缺陷的,主要在数据缓冲区管理的问题上,应用程序在取得缓冲区进行数据处理之后,却无法将缓冲区返回设备驱动程序,于是TI公司在推出DM642这一款主要用于视频处理的DSP芯片的同时,对GIO模型进行了改进,提出了专门针对视频设备的FVID模型[5],FVID模型是建立在GIO模型之上的,以FVID_Alloc、FVID_exchange、FVID_free函数对GIO 模型中的GIO_submit函数进行封装,解决了GIO模型中驱动程序不能回收缓冲区的问题。
此外,FVID模型还专门设计了FVID_frame结构,此结构中包含了常用的视频信号的信息,如行数、列数、YUV结构、场频等,很适合描述视频数据帧,但FVID主要是针对DM64X系统设计的,DM64X的很多功能在F2812 DSP上都不具备。
所以本设计针对F2812 DSP射频处理系统,对FVID模型进行了一定的简化,保留类驱动程序,而重写了迷你驱动层程序。
3.2 视频处理程序运行流程在设计完成的视频驱动程序基础上,开发一个典型的视频处理应用程序,其运行流程如图3所示,首先使用FVID_create函数建立GIO_capture 和GIO_play 两个视频通道,再以GIO_capture通道的FVID_control函数发出cmd_start,采集到1帧视频数据,应用程序以GIO_capture通道的FVID_alloc函数向驱动程序申请采集到的数据帧,进行处理后再以FVID_exchange函数将修改后的数据帧返回驱动程序,最后再调用GIO_play通道的FVID_control函数发出cmd_display命令将数据帧输出,由图3可以看到,应用程序调用的这些FVID_xxx接口函数会自动由类驱动程序层层向下映射,到达迷你驱动层程序,而迷你层程序可以直接操纵底层硬件设备,来完成整个视频的采集、处理和显示的过程。
3.3 迷你驱动程序的设计迷你层驱动程序是整个设计的重点所在,下面详细介绍其实现方法,迷你层驱动程序主要由表1所列的几个函数组成。
对各个函数的具体实现如下:1)mdBinDev函数。
在应用程序建立设备接口(如FVID_create函数)时被调用,完成对外部设备的初始化,而与其对应的是mdUBindDev函数,使用mdUBindDev 函数会使设备处于无效状态,不能再使用。
2) mdCreateChan函数,使用此函数为应用程序和驱动程序建立通信通道,同时为每个通道申请缓冲区,在TI公司发布的FVID模型中,为每个通道都分配了3个缓冲区,轮流与外部设备交换数据,每个缓冲区对应1帧视频数据,这样的设计在DM642这样可以外扩大容量SDRAM的系统中是完全可行的,但是对于本系统,F2812 DSP外部只扩展了512K×16位的SRAM,既要做视频输入的帧缓存,又要存放一部分程序,这样存储空间就不够了,所以本设计中进行了简化,对视频输入设备采用两缓冲区轮转的机制,如图4(a)所示,而对于视频输出设备,以AL422 FIFO作为硬件帧缓存,而不在SRAM中再为其分配缓冲区,与mdCreateChan对应的是mdDeleteChan函数,用于删除设备通道,释放缓冲区资源。
3)mdSubmitChan函数。
负责管理缓冲区,分别接受应用程序发出的FVID_ALLOC、FVID_EXCHANGE、 FVID_FREE三个命令并进行处理,其中FVID_ALLOC命令对应图4中(a)到(b)的过程,应用程序从两个缓冲区中取出最新的一帧视频数据,对其中的数据做处理,而只剩下一个缓冲区用来接收外部设备输入的数据,FVID_EXCHANGE对应图4中(b)到(c)的过程,应用程序处理完1帧数据,将这1帧数据返回驱动程序,准备用来显示,同时再读入新的1帧数据进行处理,FVID_FREE对应图4中(c)到(a)的过程,应用程序将处理完的数据帧返回驱动程序,而不再向驱动程序申请新的数据帧。
以上3个命令是针对视频输入接口GIO_capture而言的,而对于输出设备接口 GIO_play,在SRAM中没有分配缓冲区,所以其mdsubmitChan函数内部设为空函 ?br>4)mdControlChan函数,用来操作外部视频设备,完成对视频数据的采集和输出,对于GIO_capture和GIO_play这两个设备接口的mdControlChan函数接受的命令是不同的;视频输入GIO_capture接口的mdControlchan函数只接受cmd_start命令,完成1帧视频数据的采集,而视频输出GIO_play接口的mdControlchan函数只接受cmd_display命令,完成视频信号的输出。
3.4 视频驱动模型裁剪的一般方法TI公司设计的GIO/FVID视频设备驱动原型相对复杂,且占用较多的系统资源,要使其可以应用于更通用的低端处理器系统,就必须进行改造和裁减,在改造中要注意以下几个方面:1)阻塞的I/O操作,TI公司的6000系列的DSP具有EDMA功能,传输数据不需要CPU的干预,而DM64X还具有专用的射频接口,传输数据不会占用外部扩展总线,所以视频数据的处理和输入输出是可以并行的,而低端处理器是不具备这样功能的,视频设备一般都是通过外部扩展总线连接的,所以对视频设备的操作必须设计为阻塞型的I/O操作,视频数据输入/输出的过程是由CPU来完成的,且要保证对视频设备的操作不会被其他操作中断。
2)对视频数据缓冲区的管理,GIO/FVID视频设备驱动原型中使用的3缓冲区模型,虽然功能很完善,却占用了太多的存储空间,所以对于实际的视频处理系统就要进行调整,该为两缓冲区甚至是单缓冲区模型,对象具有独立硬件缓存的输出设备,可以考虑不再为其分配动态缓冲区。
3)对视频设备的操作,mdControlChan函数主要用来操作外部视频设备,只要保留对实际系统有用的操作就足够了,而GIO/FVID视频设备驱动原型中定义的很多操作都可以省略。
4 小结本文介绍了基于DSP/BIOS的外设驱动程序模型,并针对基于F2812 DSP的视频处理系统这一具体的硬件平台,重点介绍了开发GIO/FVID设备驱动的流程和针对低端处理器系统的视频驱动模型裁减方法,本视频驱动程序为开发各种视频处理应用程序(如JPEG图像)压缩、MPEG视频压缩、视频监控程序等)提供了有力的支持,本文介绍的设备驱动程序的开发方法,对于同类视频处理系统,特别是对于使用TI2000系列DSP这样系统资源比较有限的视频处理系统,具有很好的可借鉴性。