模块架构(精选5篇)
模块架构 篇1
1 发展背景
随着时代的发展, 以客户为中心, 服务与业务共同领先是电信运营商的经营服务理念, 合理利用资源, 提升服务效率, 缩短服务时间, 主动服务无疑会使经营服务理念得以提升。标准化、人性化、智能化、自动化的支撑服务系统通过自动的支撑服务, 主动地与客户联络等服务方式, 一方面可以提高服务, 加深客户感情, 树立公司形象, 减轻营业厅压力, 另一方面凭借自身的强大优势提高回款率, 增加公司收益。在追求主动服务的今天, 该系统的建设无疑成为电信运营商客户服务工作中的重要环节。
2 发展目标
支撑自动化系统的服务是多元化的, 除通常的语音催费、自动停复、自动开通任务外, 还可加入宽带业务的服务内容, 除对传统的网元设备的处理还支持对新兴光网络设备的自动停复开通等服务, 从而提高铁通相关部门的工作效率, 工作质量, 最终提高生产效率从而提高铁通的服务质量。此外催缴服务多种通知方式并存又是该系统另一特色, 如语音通知、短信通知、EMAIL通知等。同时, 对系统业务的配置又具有灵活性, 系统具有灵活的通知方式、个性化的管理, 可根据不同的客户群、不同品牌、不同消费水平等因素进行个性的催缴管理, 亦可加入广告业务宣传等服务内容。
3 系统总体架构
支撑自动化系统涵盖的业务范围:
3.1 电子工单及自动停复模块
系统处理的业务包括:CRM系统中申请“新装”, “拆机”, “移机”, “换号”, “增减新业务” (缩位拨号、热线服务、呼叫等待、转移呼叫、缺席服务、遇忙回叫、遇忙记存、免扰服务、闹钟服务、会议电话、三方通话、追查呼叫、遇忙转移、无应答转移、来电显示、呼出限制 (呼限密码) ) , 长权修改, 电话功能修改 (双向、单入、单出) , 分析子呼叫源。计费系统中的欠费停复机。
3.2 催缴模块
系统处理的业务包括:语音业务后付费、预付费催缴, 宽带业务催缴。催缴方式包括语音以及短信方式。
支撑自动化系统对应服务配置与激活, 客户保持与忠诚度以及服务质量管理。数据的来源有两种:一是从CRM系统提交的服务开通类定单;二是计费系统信用控制模块提交的欠缴费记录和停复机数据。
电子工单及自动停复模块将定单转换为程控工单, 并实现开通程控工单控制管理, 与具体交换机交互, 执行相应的服务开通及停复服务实例操作。
催缴模块则根据客户相关信息, 催缴费信息, 账单数据, 陈欠数据等, 自动以语音或短息方式进行缴费提醒, 欠费通知, 停机通知等相关操作。
3.3 业务架构及功能视图
支撑自动化系统作为OSS系统的主要部分在铁通整体运营中业务架构如下图:
3.4 支撑自动化系统的电子工单及自动停复模块
利用综合营业系统的工作流引擎技术, 在定单调度中增加自动施工结点, 利用成熟的数据接口, 获取定单相关业务数据, 转为自动工单信息, 采用各个支撑平台预定义的接口方式, 与相关支撑平台进行工单命令交互, 实现客户业务的自动开通及自动停复等操作。
3.5 支撑自动化系统的自动催缴模块
通过获取的客户信息、帐单信息、欠缴费信息, 根据预定义的催缴规则, 生成催缴数据, 通过预定义的催缴方式, 对相应客户进行催缴通知操作。为了保证通知方式的灵活性, 系统提供至少三种通知方式:
(1) 语音催缴:可以按照事先录制的语音内容, 向客户播放通知音, 可以根据需要随时调整和定制通知的内容。
(2) 短信催缴:可以按照约定的短信内容和要求, 生成需要的短信内容, 提供短信连接以及文件传输方式, 以便于根据短信网关的连接情况来灵活使用。本项功能可选。
(3) 信函或电子邮件:主要用于对本欠、陈欠客户的催缴。本项功能可选。
三种方式可以按照参数设置交叉使用, 可以根据通知完成的情况, 分不同情况选择通知方式。
4 前景展望
支撑自动化系统配置灵活, 可拓展的空间较大。满足将来电信运营商不断推出各种品牌所对应的用户群体的催费、交换自动施工等需求, 通过不断加强与营业、计费系统的融合, 实现优势互补, 相信该系统一定会在不远将来成为电信运营商增加收益、提高服务质量的利器, 定会达到提高广大用户对电信运营商的信任, 拉近与客户的距离, 达到稳定客户群的目标。
模块架构 篇2
关键词:J2EE架构 工作流引擎 概述 设计实现
中图分类号:TP3文献标识码:A 文章编号:1674-098X(2012)12(c)-00-02
通常说来,工作流技术是企业进行业务管理和效益分析的过程,主要是通过建模的方式,对企业的运作情况进行仿真的优化设计,制定出最为合理的管理程序,以便实现企业的发展。其中主要包括三个方面的内容,一是定制的模块,二是具体流程的管理方式,三是工作流引擎,这三个方面是有机统一在整体中的。
基于J2EE架构的工作流引擎的概述
工作流引擎在整个工作流程的管理系统中处于核心的位置上,类似于一个动力机构,它不仅为工作流程的实施提供良好的运行环境,还为系统资源的优化配置提供必要的理论支持。工作引擎的运行内容主要有对流程图的科学解释、企业运营资源的分配和逻辑方面的控制等。工作流引擎在系统的整个运转过程中起着重要的作用,主要包括以下两个
方面:
第一点它是工作流程的状态转换机,对工作流程的状态进行实时的调整与监督,利用数据信息的驱动可以达到控制与管理的目的。在工作流程中,分布着很多的逻辑单元,且每一个单元通常都表示着一个具体流程的逻辑控制能力。在这一过程中工作流引擎的最基本的工作内容就是按照既定的规则控制好实例状态信息之间的转换。
第二点它通常是整个工作流程的路由控制器,每一个具体的流程在实际的应用中都对应着一条现实中进行顺利流转的业务程序,信息传输的过程中,实例的数据会对流程的传输路线带来一定的影响力,传输的方向会受到制约,因为在工作流程最初使用的时候,就已经规定好了流程的运转顺序,通常情况下,这些必要的规定都是在根据流程数据所制定的公式,而工作流程引擎的作用就是要对这些公式和相关的规则实施分析与设计,进而预测出工作流程下一步的运转方向。一般来说,工作流引擎的模型主要有三种形式,一是机构模型,二是信息模型,三是控制模型,这三种模型在应用的过程中有着各自的特色,要根据具体的情况来进行选择与
判断。
1 基于J2EE架构的工作流引擎的具体设计和实现
一般意义上的工作流就是对通常业务的处理,本质上就是将相关的数据信息进行分类处理,主要依据的就是上述的三种模型,在实际操作中,对数据的分析与划分也主要是三类,第一类是控制数据,第二类是相关数据,第三类是业务数据。通常情况下,控制数据一般指通过工作流管理系统进行控制的数据,有时还包括基于工作流引擎的控制数据。该种数据在实际的操作中具有不可更改的特征,控制数据也代表了在工作流程中的过程实例与节点实例的特征,并能够反映出工作项的具体状态信息,对工作流程的进行有着促进作用。业务数据与控制数据有所不同,它是专门用在工作应用系统中的,与工作流系统的关系不大,也不受工作流系统的支配,在使用中可以引用工作流流程的定义。工作流管理系统将各种数据进行必要的整理后有效传递到最终的应用环节,从功能上可以分成兩种情况,一种是系统保留的相关数据,另一种是用户自定义的相关数据。
在工作流程的管理系统中,相关数据有着非常重要的作用,一是可以确定工作流程的运作方向,二是可以设计流程中各个节点的属性,将特殊的数据进行标注,应用实例的属性也是由它来确定的,三是可以为下一步的工作流程的设计提供有力的依据,四是可以设置下一步的办理人,五是可以为下一步的转换提供有力的参考,如图所示。
在应用方面,相关数据可以为上下节点的沟通提供必要的渠道,例如可以传递文档号等,在进行定义的时候属于过程,在过程创建之后,相关的数据就被实例化了,应用则能够对相关的数据进行初始化的操作。在过程创建节点之时相关数据的副本将会被节点进行存留,待过程处理之后会传递给下一个办理步骤,这样进行着不间断的循环,其原本的功能与效用也在不断地提高。在工作流的整个组成结构中,实施动态设置流程的实例属性的方法有两种,一种是利用管理的工具对实例属性进行必要的修改,另外一种是在系统中设置相关数据对已经定义的属性进行再次的检查与修正。
工作流引擎可以为工作流管理系统提供业务流程的实例,以及相应的软件服务工具,在整个工作流的系统中处于核心的位置上,在具体的应用过程中起到的作用包括为工作流定制模型的实现进行特性的分析与运行实现期的预测,保证流程定制模块的的合理分配。另外还可以对工作流的概念做出比较合理的解释,所以这样有利于控制工作流程的实例的创建与实现,并增强流程引擎的激活和挂起行为,控制有效的终止运作。同时还可以对实例生存期的驱动流程进行必要的跟踪和监控以及督办等,并对行为的过程进行动态的督办和查询等。此外还能够确定工作项,并及时为用户反映相关的信息,维护各种数据的安全性,为工作流程的实例与节点的实例和工作项三者之间的相互转化提供有力的依据。工作流引擎同时还可以支持各种分布式的工作流引擎,优势还支持多引擎的合作工作程序,可以利用消息分发器的特点对多种引擎实施负载均匀的分配措施,还可以为整个工作流系统提供比较完善的安全保障机制,系统可以利用在运作过程中使用的数据包来进行密码的设置,从而可以为系统数据的安全性提供有力的保证。
工作流引擎的模块设计首先体现在层次上的划分,其次是逻辑功能上的划分。从层次划分角度来说,包括逻辑层和持久化层。持久化层主要的任务就是负责工作实体的持久化工作,内容有科学合理创建、存取、删除与更新对象实体的工作,这样还可以有效防止逻辑层对基本数据信息的影响。从逻辑功能角度上来说,主要的任务有过程定义、实例、日志、消息以及其他辅助功能的分析与判断,从而实现了工作流程的顺利进行,如图所示:
工作流程的服务对象的设计主要包括的内容有对过程的设计、节点的设计、工作项的设计以及其他辅助对象的设计等,对工作流引擎的逻辑分析与具体实现主要依靠的是就是对象的设计。在工作流程的设计与创建过程中,从静止的状态转变为动态的过程需要经过逻辑单元的定义以及过程节点的设计等环节,最后流程可以成为流转的形式的时候,则其流转的具体路径就在一定程度上决定着节点是否可以成为实例的状态。
2 结语
综上所述,工作流引擎的具体模块设计与对象设计的过程中不仅要遵从具体的模块的特点,还要从整个系统的角度去考虑每一环节的设计,以便达到最高效的工作效益。同时还要对工作流引擎中的经常出现的问题进行有效的处理,通常是要对异常现象进行有效的捕获,所以一般会使用Java的编写方式来进行工作流程的编写,同时还要对异常情况采用WEException来进行具体的描述。
参考文献
[1] 范延平,曾建鹰.基于J2EE架构的工作流引擎的分析与设计[J].武汉大学学报(信息科学版),2005(12)。
模块架构 篇3
1 相关技术介绍
1.1 ASP.NET MVC框架
ASP.NETMVC是微软公司提供的以MVC模式为基础的ASP.NETWeb应用程序框架, 通过把项目分成Model、View和Controller, 使得复杂项目更加容易维护, 可以方便的控制应用程序的行为, 适合大型团队项目开发。
1.2 ASP.NET MVC的模型绑定技术
ASP.NET MVC模型绑定通过引入自动填充控制器操作参数的抽象层、处理通常与使用ASP.NET请求数据有关的普通属性映射和类型转换代码来简化控制器操作。模型绑定的过程包括2个步骤:从请求收集值并使用这些值填充模型。这2个步骤分别由值提供程序和模型绑定程序来完成, 这部分的实现可以参考ASP.NETMVC的相关资料, 这里就不做阐述了。
2 实现方案
ASP.NET MVC的项目包括Model、View和Controller, 下面我们通过一个简单的表单逐一介绍这些模块的实现。
2.1 Model和数据层
在我们进行到填报模块的开发的时候, 数据库结构通常都已经确定了, 我们需要实现各个表单对应的实体和其数据访问层, 这部分的代码和数据库表相对应, 而且基本相似, 可以通过代码生成器来生成。我们使用代码生成器生成对应的数据实体类主要代码如下:
每个数据库字段对应一个实体类的属性, 并用一个自定义的元数据指明这个字段映射的数据库表名, 字段名称, 以及其数据类型。
同时, 我们使用代码生成器生成了该实体的数据库操作类, 实现了对该表单的基本数据库操作实现。
2.2 View和页面逻辑实现
报表通常都有自己固定的样式, 所以, 在实现用户界面之前, 我们可以通过word, excel或者其他工具先把这个报表的样子按照需要做出来, 并在其对应的数据部分标明为数据库字段, 然后通过另存为、导出之类的方式得到包含数据库字段标签的HTML文档, 再通过正则表达式进行查找替换, 将标签替换为实体变量, 这样就得到了View的基本代码, 这个过程的代码示例如下:
替换前的Html源码:
替换后的View代码:
这部分Html代码的样式都由设计工具生成, 我们只替换了数据部分的代码, 为每个字段提供了一个呈现和一个文本框输入。
由于报表的特殊性, 字段之间的值可能使用公式来计算获得, 基于JavaScript引擎, 我们实现了一个简单的公式添加方法, 只要在视图上定义一个公式数组即可, 如:
当用户修改对应文本框的值的时候, 页面会自动进行公示计算。
2.3 控制器和模型绑定
当用户访问这个报表的时候, 有2种情况, 新建一个报表进行填写或者修改这个报表的数据, 对于这种情况, 我们需要提供一个针对HttpGET请求的访问控制器, 主要代码如下:
同时我们需要提供一个处理HttpPost的访问控制器以处理用户新建或者修改报表后的回发, 主要代码如下:
这个控制器仅用一行代码就完成了数据库操作, 实现这个神奇过程的关键正是ASP.NETMVC的模型绑定技术。
3 结语
通过上面的示例, 我们实现了一个简单报表填报页面的搭建, 整个过程需要书写的关键代码大概有10来行, 在报表的字段非常多的时候, 使用本方案可以大幅的减少开发时间, 提高效率。
摘要:报表在企业信息系统中具有极其重要的作用, 随着互联网技术的发展, 传统C/S模式的企业信息系统都在向B/S模式迁移, 报表填报作为信息系统中的一个重要模块, 在开发过程中占据了相当大的比重。本文介绍了一种基于ASP.NET MVC框架的快速开发报表填报的模块的方案。
关键词:报表填报,ASP.NET,MVC,模型绑定
参考文献
[1]李金方.Web报表系统的研究与实现[D].北京交通大学, 2009.
[2]宋建松.基于ole技术调用EXCEL实现复杂报表生成[J].内蒙古电大学刊, 2006 (10) .
模块架构 篇4
一旦校园网络系统建成, 后继将不可避免的面临硬件维护、网站更新、网络安全防范管理以及日常信息维护等诸多问题。以浙江农林大学工程学院网站更新建站和日常安全维护为例, 我们针对如何实现内网的高效、集约、安全防范等, 提出了模块化的架构措施, 收到了较好的效果。
1 二级学院的网站建设
1.1 二级学院网站模块化架构的必要性
由于不同时期高校改革发展的主题不同, 或因二级学院 (或同级的二级管理部门) 主要负责领导的调整, 二级网站大都会面临调整或更新的局面。以浙江农林大学为例, 在其跨越式发展的几个关键年头, 特别是2011年5月全校岗位竞聘中, 全校16个二级学院、40个党政机关部门全员调整, 中层干部几乎全部换岗。在学校确立创建“生态性创业型”大学、全面调整人才培养方案的新理念指导下, 各二级学院 (部门) 的发展规划、管理理念也进行了全面调整, 由此导致校内二级网站的改版更新高潮。全校二级网站共计55个, 按照单个网站改版费3千元至1万元不等, 预计全校二级网站的改版费将高达28万元, 这对于学校财政将是一笔不小的“意外开支”!如何建设集约型信息化校园, 尽可能降低不必要的支出?通过对工程学院网站以及工程学院学生工作网站的统一规划建设, 我们引入了模块化建设的理念, 以模块架构的方式节约了经济成本。
1.2 二级网站的的前期建设规划
高校二级学院网站的建设是一项系统工程。前期需要对所建网站进行整体规划, 即决定其功能、栏目设置、版面布局、颜色基调等基本内容。一般以word文档或画图形式, 将所需栏目 (包括其二级栏目) 按表格层次排序, 再将其页面布局以文本框形式调制版面布局, 之后调色制定基调等。
1.3 模块化构建二级网站的趋势
纵观当今的主流商业C2C (个人对个人) 、B2C (商家对个人) 网站 (如淘宝网、天猫网、拍拍网) , 以及信息交互类的新浪、微博等四大主要门户网站的博客、腾讯空间等, 大多采取的是模块化构建个人主页, 即将网页的大致轮廓按照分割比例划设功能区域, 用户采取上传图片、文字或以搭积木的方式直接选取删除功能模块, 实现构建个人主页之目的。从网页背景的选择、网页结构功能的舍取, 直至网页的版面布局, 都可以根据所获权限进行“装修”。充分体现了集约化、经济化的优越性。
我们以此为参考, 对浙江农林大学工程学院网站及其学生工作网尝试开展了模块化构建的探索。首先按照黄金分割划出模板网站的各条基线, 使之具有坐标定位特性。单独定义出不同的功能模块, 如logo校标、导航条、首页大图、图片新闻、通知公告、新闻动态等学校二级网页必备的基本元素。以代码形式单独保存在专设的文件夹内, 待需要时调用生成页面构成。以html语言和ccs为例, 如同现行的很多建站网站里那样, 预置了模版供免费下载。我们还按照高校二级教学和管理部门的类别, 分别使用DIV+CSS制作出了系列风格的二级网站html开放式网页元素模板集, 实现了网页页面“内容与表现”的分离。当某个二级学院 (部门) 需要某种风格或版面布局时, 可由专职网络管理员通过后台登陆网页元素库, 无需借助专门设计软件如Dreamweaver等的帮助, 就可以方便的通过拖拉定位、设置显示尺寸、重命名的方式修改二级网站页面。而网站独具特色的图片及logo, 也可由二级学院 (部门) 自行制作并上传至模板库中, 或直接添加到网页中, 从而显示个体的独特性。
其次, 通过在HTML文档中加入CSS (Cascading Style Sheets) 层叠样式表来调用某个模块, 即可实现网页功能性。通过这种设计理念, 工程学院的网站首页、学生工作网站 (及所附招生宣传子网站) 同在一套模版下, 通过不同模块的布局达到了各自功能的实现。在实际应用中, 还可开发如自适应 (弹性) 宽度CSS版式布局、固定宽度CSS版式布局的页面布局样板等, 极大地方便了二级单位的按需选用。
1.4 模块化设计的优势
如上的模块化设计具有以下特点: (1) 可扩展性----网络可模块化增长而不会遇到问题; (2) 简单性----通过将网页元素分成许多小单元, 降低了网页的整体复杂性, 使二级学院建立网站更加容易。且由于每个模块均为优化过的结果, 能有效避免Bug、设计不合理等问题; (3) 灵活性----使网页改版优化更加方便:只要打开模块库, 选择所需加载调整尺寸、位置就可构成新的页面; (4) 集约性----模块化管理使得每个二级网站的复杂性大大降低, 管理操作简单方便。这不仅使得统一管理成为可能, 也大大节约了成本。
2 二级网络信息的安全管理
2.1 校园网络的整体安全防护
已达到万兆校院网的学校, 一般设有专门的网络技术部门, 负责学校的门户网站及整个校园网络系统的维护、技术支持及安全运行。我校教育技术中心所属的网络技术部, 其主要职责即此。
2.2 二级网络信息安全管理
2.2.1 专人管理做好数据备份
若二级网络管理不善, 或导致数据丢失或被篡改, 重则危害到整个学校网络安全。二级网站需专人管理, 每日关注网站信息, 整理优化数据并定期备份。
2.2.2 设置身份认证, 保障内网办公和应用系统安全运行
二级学院内网办公及应用系统的身份认证, 需要与信息化校园系统对接, 即与学校的统一身份认证系统接口。在此基础上, 对原应用程序的认证模块进行修改, 实现统一身份认证, 授予不同用户以不同权限, 保证各种内网办公及应用系统的安全运行。
统一身份认证包括单点登录和获取用户的基本认证信息。实现此功能需要调用认证接口函数, 实现与统一身份认证平台的交互, 并可以获取统一身份认证平台上的用户身份信息。基于认证接口的集成方式, 其实施步骤如下:
(1) 接口部署, 包括Java.PHP以及com组件认证接口。
(2) 应用的认证模块。首先, 从所有的Cookies中获得i Planet-Directory Pro值, 在Cookiei Plan2et Directory Pro中保存了SSOToken值。如果SSO Token值为空或者无效, 则需要重新登录获得SSO Token值。另外, 获取了SSOToken后, 就可以登录到应用系统中, 并根据Token值得到当前登录用户, 同时在应用系统中根据需要获得用户的身份信息。
实践证明, 这样的措施对维护二级网站的安全, 起到了较好的作用。
3 结束语
高校二级学院网站的建设与日常信息安全管理, 在校园网络的系统建设过程中具有重要意义。二级学院网站建设的模块化建构, 既提高了学校的集约化管理水平, 也节约了办学成本。因此, 其开发应用具有良好的发展前景。
摘要:就目前我国高校校园网络建设中普遍存在的二级学院 (部门) 网站的更新维护开展探讨。以浙江农林大学工程学院学院网、学生工作网、招生宣传网为例, 对如何实现二级网站的集约式、模块化建构进行了有益尝试。
关键词:二级学院网站,集约化,模块化架构,信息安全
参考文献
[1]张新民, 郑力, 等.网站建设中的信息组织与构建.中华医学图书情报杂志, 2003, (3) .
[2]张强华, 吕新平.网站建设方法学初探.宁波职业技术学院学报.2001, (3) .
模块架构 篇5
关键词:BM3D,块匹配
1 Block-Matching简介
BM3D(块匹配和3D去噪)算法[1]是目前降噪性能最高的通用图像/视频降噪算法,这种算法利用的视频的空间相关性和时间相关性进行有效的降噪。BM3D算法的步骤包括三个步骤:第一步是块匹配,第二步是三维降噪,第三步是集合。对于块匹配而言,已经有很过关于视频编码协议(如H.264)的文章[2,3]介绍过各种方法, 但是BM3D的块匹配和视频编码算法最大的区别就是可以完全并行完成,因此可以更有效地完成块匹配。
Block-Matching又称块匹配。块匹配模块在当前场以及参考场中搜索与当前块类似的块,并将其集合为组。计算相似的时候,为了简化,不需要把每个块转换到时间域来比较相似,只需要计算当前块和匹配块的SSD(差的平方和),SSD小于阈值τht的最相似的Sxr个块组成一个集合,τht和噪声成正比。根据BM3D算法,每个块需要在当前场的Ns范围,参考帧的Npr范围内查找(Npr<=Ns)。由于搜索出来的块越匹配,最后的去噪效果越好,通常在Ns,Npr的范围内采用全搜索比较合适。由于前后场还依靠运动矢量,如果不加约束,匹配块和当前块有可能相距太远。
通常在搜索的时候还限定了每场的最大搜索范围Nmax。Nmax的限制可以在几乎不降低质量的情况下降低了搜索范围,节约了时间和带宽,但是搜索引擎的性能和带宽都要求还是比较高。比如720*576的PAL场格式BT656的视频,每场大小是720*288,50场/s,当 N1=8,Nstep=6的时候,一场的block总数是Nb=5760块。如果搜索范围是当前场和前2后2总共Nf=5场,最大搜索半径Ns=Npr=15,那么搜索的带宽至少是Nb*N1*N1*(2Ns)* Nf*50(场)=2636MB/s,另外测试了BM3D的Matlab算法(http://www.cs.tut.fi/~foi/GCF-BM3D),在2.4G的PC完成QCIF的视频10帧就运行了30分钟,可见该算法的计算量相当大,而块匹配的计算量就占据了相当大的比例。对于实时的应用而言,必须要使用硬件进行加速。本文提出了一个BM3D 块匹配的架构,该架构只需要系统频率为98MHz,带宽为177MB/s的硬件就可以实现720*576的PAL场格式BT656的视频的实时块匹配。
2 并行的块匹配的ASIC架构
根据文献[4],块匹配是一种广泛应用于视频压缩中的运动估计中的匹配算法,如MPEG-1,MPEG-2,MPEG-4,H.26x[5]。BM3D的块匹配的块和块之间没有相关性,可以完全并行处理,本文提出的结构就是利用这个特点来优化架构设计的。
固定一些参数来说明这个架构,当前块是按照Nstep从左往右,从上往下,再从右往左,再往下的顺序搜索匹配块。这样的结构有助于减少重复的视频数据的读入。搜索范围是前后两场,在当前场内,块匹配以当前块的位置为中心,搜索Ns范围内的所有块,找出最匹配的2块(当前块本身除外),然后以这两个运动矢量为中心,在前1场,后1场中以Npr为半径各搜索出最匹配的两个块,又得到两个运动矢量,再把这两个运动矢量传递给前2场和后2场,在前2场和后2场中各自再搜索出最匹配的两个块,这样总共搜索出11个块。
从时间上来看,这5个部分搜索的不是同一个块的匹配块,其流水线结构如图1所示。根据这个流水线结构,最慢的一帧的搜索决定了系统的性能,比如对于D1,Ns一般为15,Npr=10,这样当前帧就需要搜索大约(2*15)2=900个块,参考帧有两个运动矢量,总共需要搜索大约2×(2×10)2=800个块,当前场的搜索是瓶颈。
在对每场Ns,Npr范围内搜索时候,不需要一个像素一个像素的移动,可以参考文献[6]中计算SAD的结构,同时进行m个块的比较,该结构如图2所示。m个SSD并行计算,在搜索范围内从上往下,再从左往右,在从下往上,再从左往右移动。这样有m个SSD就可以把系统频率降低m倍,代价是增加一个SSD会带来面积的增加。最后一级流水线出两个最好的比较结果。等搜索结束后存储的就是搜索范围内的最好结果。
把Ncol*Nstep个相邻的块组合在一起,构成一个大的宏块,每个宏块在进行搜索时所需要的参考像素需要保存在片内SRAM里。这个SRAM称为滑窗。每个宏块都对应一个滑窗,当一个宏块做完以后,需要更新滑窗的数据以进行下一个宏块的搜索。滑窗结构可以按照(2Nmax+(N1-Nstep)+Ncol*Nstep)*8 比特宽度, (2Nmax+(N1-Nstep)+Nrow*Nstep)比特深度,存储在SRAM中。这样就能保证并行的m个SSD运算单元都能在同一个clock读取到计算需要的数据。
如果Ncol=4,Nmax=30,其他参数参照前面给出的,这个SRAM的宽度就需要(2*30+(8-6)+4*6)*8=688比特, 通常SRAM的深度可以比较大,宽度是有限制的。 虽然可以用多块SRAM并行排列来增加宽度。这样会导致很多块SRAM, SRAM块太多既会增加面积,又影响芯片的布局布线。因此考虑到每次读取的数据是N1+m比特,可以把整个滑窗分成A,B两块,每块的宽度>(N1+m)*8比特就可以了。
图3是N1=8,m=4的情况。这样SRAM的宽度只要12*8=96比特就够了,这样的滑窗结构的宽度可以不随搜索范围Nmax的提高而提高,大部分的memory compiler都能够满足该宽度的需要,深度需要相应的增加。根据这个结构每次m个SSD运算单元需要的N1+m个点的数据都可以通过读取A的一个地址和B的一个地址得到。
3 系统频率和带宽分析
以D1为例,N1=8,Nmax=30,Nstep=5,Ns=15,Npr=10, 搜索当前场的范围是2Ns×2Ns=900。滑窗在完成Nrow*Ncol=4*4个块的匹配后再从外部存储器更新数据。搜索前后场是两个MV,范围是2×2Npr×2Npr=800。当前场的范围大于前后场,当前场的搜索是瓶颈。当4个搜索引擎同时工作的时候,当前场中找相似块的运行时间是(2Ns+8)*(2Ns/4)=38*8=304个clock。前后场中找相似块的运行时间是:2*(2Npr+8)*(2Npr/4)=2×28×5=280个clock。切换当前块的时候,当前块需要8个clock读入,那么4×4相似块需要128个clock,每次4×4相似块匹配都查找完毕后滑窗,滑窗的数据可以先读入到内部buffer,滑窗更新的时候,再写入到滑窗中,一次读,一次写,AB同时进行,地址深度是96*4,滑窗的数据更新时间为96*4=384个clock。这样完成一个4×4相似块匹配总 的时间 是304*16+128+384=5376个clock。一个场有360个4×4相似块,一场的时间需要5376*360=1.94M clock,PAL是50场,这样系统频率要达到96.77M。
对于带宽,计算公式是:
50*Nf* [Nb/(Ncol*Nrow)]*(Nstep*Ncol)*[Nstep*Nrow+(N1-Nstep)+2*Nmax]=
50*5*[5760/(4*4)]*(6*4)*[6*4+(8-6)+2*30]=177MB/s
4 结束语
文中提出的结构,实现了BM3D的块匹配的实时处理,本设计是根据项目Science and Technology Commission of Shanghai Municipality. project No:10706201300来设计的,该项目的目标是在sigma=25的情况下,实现PSNR提高10的D1的实时去噪。降低带宽和系统频率是设计的关键。可以通过提高并行搜索的引擎数目来提高性能,还可以同时进行n场的同时搜索,场切换导致的重复数据的读写就降低n倍。这样实现高清HD的实时BM3D去噪设计是可以实现的。
参考文献
[1] Kostadin Dabov, Alessandro Foi, Karen Egiazarian .Video Denoi-sing by Sparse 3D Transform-domain Collaborative Filtering[C]. 15th European signal processing conference(eusipco) ,September 3-7,2007.
[2] Shiping Zhu, Yangshuan Hou, Zaikuo Wang, et al. A novel fractal video coding algorithm using fast block-matching motion estimation technology[C]. International Conference on Computer Application and System Modeling. 8, 2010:360-364.
[3] Shiping Zhu, Yangshuan Hou, Zaikuo Wang, et al. A novel fractal video coding algorithm using fast block-matching motion estimation technology[C]. International Conference on Computer Application and System Modeling. 8, 2010:360-364.
[4] Kostadin Dabov, Alessandro Foi, Vladimir Katkovnik, et al. Image denoising by sparse 3D transform-domain collaborative filtering[J]. IEEE Trans. Image Process., 2007, 16(8): 2080-2095.
[5]Tung-Chien Chen,Chung-Jr Lian,Liang-Gee Chen.Hardware Ar-chitecture Design of an H.264/AVC Video Codec[C].Desin Auto-matic Asia and South Pacific Conference on 24-27 Jan 2006.