CN104166618A - 一种算法硬件实现方法和系统 - Google Patents
一种算法硬件实现方法和系统 Download PDFInfo
- Publication number
- CN104166618A CN104166618A CN201310182417.XA CN201310182417A CN104166618A CN 104166618 A CN104166618 A CN 104166618A CN 201310182417 A CN201310182417 A CN 201310182417A CN 104166618 A CN104166618 A CN 104166618A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- hardware
- video
- performance index
- assessment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种算法硬件实现方法,包括:进行算法开发;进行所述算法的硬件实现评估;根据所述硬件实现评估结果对所述算法进行修改和/或优化;对所述修改和/或优化后的算法进行硬件实现。本申请还公开了一种算法硬件实现系统。本申请将算法开发和硬件实现分成两条主线同步进行,在算法开发过程中,对视频算法的客观和主观视觉性能进行评估,同时对算法进行硬件架构设计,检查算法是否满足硬件约束,即检查算法是否满足硬件规模和数据带宽以及硬件可实现性等硬件约束,一旦发现硬件架构超出了硬件资源的可实现性范围,则同时进行算法层面和硬件架构层面的联合优化,实现了算法和硬件实现的联合开发和优化。
Description
技术领域
本申请涉及芯片设计技术领域,尤其涉及一种算法硬件实现方法和系统。
背景技术
在目前中国的数字高清电视领域,大部分电子企业采用两种研发模式,一种模式直接购买诸如MTK、Pixelworks和Trident等台湾或外国企业的芯片,进行整机系统集成,另一种模式是进行芯片设计,但由于缺乏在视频处理核心算法的知识产权和竞争力,只能用高昂的价格购买IP芯片进行嵌入式系统芯片(SoC)系统集成。这两种模式没有培育自己在视频处理领域的核心竞争力,只能处于产业链的较下端,受制于上游的IP提供商和芯片提供商。
大部分具有ASIC或SOC芯片设计能力的企业缺乏设计视频核心算法的能力,而具有视频处理算法设计能力的人员多分布在研究机构和软件公司,不具备芯片设计的能力,只能提供基于软件的视频处理解决方案,其实时性无法得到保证。在数字高清电视领域,同时具有自主算法设计和芯片设计能力的仅有Pixelworks、Trident、三星、飞利浦和索尼等企业。越来越多的电子企业意识到同时具备视频算法设计能力和芯片设计能力的重要性,配备了算法开发团队和芯片设计团队,试图设计从视频算法到ASIC架构和SOC架构完全自主知识产权的芯片。
常规的算法和芯片联合设计流程将两者独立开来,先进行算法开发,然后进行芯片硬件实现。这种流程有两个缺点,从算法开发来看,很可能导致开发出的算法不具备硬件可实行性,或产生的硬件规模巨大,超出了芯片的数据带宽或规模的约束;从芯片设计上来看,如果算法交付之后不做改动,仅仅从硬件结构上进行优化,带来的优化效果是有限的,所以需要制定更高效的开发流程来进行视频算法和硬件实现的联合开发。
发明内容
本申请要解决的技术问题是针对现有技术的不足,提供一种能将算法和硬件实现同步优化的方法。
本申请要解决的另一技术问题是提供一种基于上述方法的系统。
本申请要解决的技术问题通过以下技术方案加以解决:
一种算法硬件实现方法,包括:
进行算法开发;
进行所述算法的硬件实现评估;
根据所述硬件实现评估结果对所述算法进行修改和/或优化;
对所述修改和/或优化后的算法进行硬件实现。
上述算法硬件实现方法,其中所述算法开发包括:
对算法进行功能定义和性能指标定义;
依据所述功能定义和性能指标定义对算法进行开发和编码。
上述算法硬件实现方法,其中所述根据所述硬件实现评估结果对所述算法进行修改和/或优化包括:
根据硬件实现评估结果,若所述结果为不满足硬件可实现性,则修改和/或优化算法;若满足硬件可实现性,则:
对算法进行性能评估,若满足所述性能指标,则确定算法代码;若不能满足性能指标,则修改算法代码,直至满足。
上述算法硬件实现方法,其中所述算法包括视频算法,所述对算法进行性能评估包括:
视频算法从测试视频序列库中读取视频,得到处理后的视频;
经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元;
客观性能指标评估单元计算出待评估的算法处理结果的客观性能指标;
主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上;
同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示;
人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
上述算法硬件实现方法,所述对所述修改和/或优化后的算法进行硬件实现包括:
进行系统定义,对系统资源进行描述,制定硬件性能指标数据带宽、频率、硬件规模和功耗;
接收算法代码,基于算法代码进行硬件架构设计;
对数据带宽和硬件规模进行预估;
在算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型Golden Model;
进行详细的分模块架构设计和编码;
基于该Golden Model对RTL硬件设计进行硬件功能仿真验证;
对RTL硬件设计进行FPGA验证。
一种算法硬件实现系统,包括算法开发模块、实现评估模块和硬件实现模块,
所述算法开发模块用于进行算法开发;
所述实现评估模块用于进行所述算法的硬件实现评估;
所述算法开发模块还用于根据所述硬件实现评估结果对所述算法进行修改和/或优化;
所述硬件实现模块用于对所述修改和/或优化后的算法进行硬件实现。
上述算法硬件实现系统,其中所述算法开发模块还用于对算法进行功能定义和性能指标定义;依据所述功能定义和性能指标定义对算法进行开发和编码。
上述算法硬件实现系统,其中所述算法开发模块还用于根据硬件实现评估结果,若所述结果为不满足硬件可实现性,则修改和/或优化算法;若满足硬件可实现性,则对算法进行性能评估,若满足所述性能指标,则确定算法代码;若不能满足性能指标,则修改算法代码,直至满足。
上述算法硬件实现系统,其中所述算法包括视频算法,所述算法开发模块还用于:
视频算法从测试视频序列库中读取视频,得到处理后的视频;经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元;客观性能指标评估单元计算出待评估的算法处理结果的客观性能指标;主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上;同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示;人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
上述算法硬件实现系统,所述硬件实现模块包括:进行系统定义,对系统资源进行描述,制定硬件性能指标数据带宽、频率、硬件规模和功耗;接收算法代码,基于算法代码进行硬件架构设计;对数据带宽和硬件规模进行预估;在算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型Golden Model;进行详细的分模块架构设计和编码;基于该Golden Model对RTL硬件设计进行硬件功能仿真验证;对RTL硬件设计进行FPGA验证。
由于采用了以上技术方案,使本发明具备的有益效果在于:
⑴在本申请的具体实施方式中,将算法开发和硬件实现分成两条主线同步进行,在算法开发过程中,对视频算法的客观和主观视觉性能进行评估,同时对算法进行硬件架构设计,检查算法是否满足硬件约束,即检查算法是否满足硬件规模和数据带宽以及硬件可实现性等硬件约束,一旦发现硬件架构超出了硬件资源的可实现性范围,则同时进行算法层面和硬件架构层面的联合优化,实现了算法和硬件实现的联合开发和优化。
⑵在本申请的具体实施方式中,给出了相应的优化策略,提出了与开发流程配合的开发平台,在开发流程的每一个环节,均有开发平台中的资源给与高效准确的支持,确保视频处理芯片开发能正确快速地完成。本申请可以用于视频处理芯片从算法开发到芯片前端设计的快速开发。
附图说明
图1是根据本申请实施例的视频算法和硬件实现联合开发的方法流程图;
图2是根据本申请实施例的视频算法和硬件实现联合开发平台的示意图;
图3是图2中视频算法性能评估子系统的示意图;
图4是图2中RTL硬件验证子系统的示意图;
图5是图2中FPGA验证子系统的示意图;
图6是根据本申请实施例的算法硬件实现系统的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本申请的算法硬件实现方法,其一种实施方式,包括以下步骤:
步骤A:进行算法开发。
算法开发包括:对算法进行功能定义和性能指标定义;依据所述功能定义和性能指标定义对算法进行开发和编码。
步骤B:进行算法的硬件实现评估。
所述算法包括视频算法,对算法进行性能评估包括:视频算法从测试视频序列库中读取视频,得到处理后的视频;经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元;客观性能指标评估单元计算出待评估的算法处理结果的客观性能指标;主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上;同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示;人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
步骤C:根据硬件实现评估结果对所述算法进行修改和/或优化。
根据所述硬件实现评估结果对算法进行修改和/或优化包括:根据硬件实现评估结果,若结果为不满足硬件可实现性,则修改和/或优化算法;若满足硬件可实现性,则:对算法进行性能评估,若满足所述性能指标,则确定算法代码;若不能满足性能指标,则修改算法代码,直至满足。
步骤D:对所述修改和/或优化后的算法进行硬件实现。
对所述修改和/或优化后的算法进行硬件实现包括:进行系统定义,对系统资源进行描述,制定硬件性能指标数据带宽、频率、硬件规模和功耗;接收算法代码,基于算法代码进行硬件架构设计;对数据带宽和硬件规模进行预估;在算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型Golden Model;进行详细的分模块架构设计和编码;基于该Golden Model对RTL硬件设计进行硬件功能仿真验证;对RTL硬件设计进行FPGA验证。
图1是依照本发明实施例的视频算法和硬件实现联合开发的方法流程图。下面针对视频算法和硬件实现分别进行详细说明。
视频算法开发的具体步骤如下:
步骤101:进行功能定义,即对要实现的算法功能和需要满足的算法性能指标进行定义。算法性能指标包括客观性能指标和主观视觉性能指标。客观性能指标包括信噪比、压缩比等可以量化的指标。主观视觉性能指标的确定方法是确定在人眼主观视觉上要达到或超过的对比方;
步骤102:视频算法开发和编码;
步骤103:接收硬件设计人员进行硬件可实现性检查的反馈结果,如不满足硬件可实现性,则修改算法代码,如满足硬件可实现性,则执行步骤104;
视频算法的硬件可实现性检查是硬件实现的步骤之一,其具体实现方法见硬件实现的步骤。
步骤104:利用如图3所示的视频算法性能评估子系统对视频算法进行算法性能评估;其实现方法是:
对待测试的视频运行视频算法代码,得到视频处理的结果,对该结果进行评估。评估即检查客观性能指标和主观视觉性能指标是否达到步骤101中制定的性能指标。客观性能指标包括信噪比、压缩比等可以量化的指标。主观视觉性能指标的评估方法是:比较待评估的处理结果和对比方的处理结果,用人眼的主观视觉来判断待评估方和对比方的优劣。
视频算法性能评估子系统如图3所示,包括测试视频序列库、待评估的视频算法、对比方的视频处理单元算法、主观视觉评估单元、以及客观性能评估单元。其中测试视频序列库由对视频算法进行性能评估的视频序列组成,具体由各个分辨率的通用视频库和特定算法评估的视频库组成。特定算法评估的视频库,针对开发的不同算法种类,有不同的视频序列库,通常为业界公认视频测试库。算法主观视觉评估单元由硬盘录放机和两台高清电视组成。如果对比方不止一个,则可以扩展为多个对比方处理单元及多台数字高清电视。
视频算法从测试视频序列库中读取视频,得到处理后的视频。经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元。客观性能指标评估单元计算出待评估的算法处理结果的信噪比、压缩比等客观性能指标。主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上。同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示。人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
如果算法性能指标得到满足,则视频算法代码编码结束。代码确定。如果不满足,则修改算法代码,直至满足。
硬件实现的具体步骤如下:
步骤201:进行系统定义,对系统资源进行描述,制定数据带宽,频率,硬件规模,功耗等硬件性能指标。
步骤202:接收视频算法代码,对视频算法代码进行硬件可实现性代码风格检查,如果算法代码风格满足基本设计规范,则执行步骤203,如果不满足,则将修改意见反馈给算法设计人员;
需要检查的基本设计规范为:
1)数据类型为整型;
2)常数除法修改为乘和移位;
3)尽量少的使用除法器;
4)滤波窗口尽量小,这样能尽量少的使用片内缓存;
5)尽量少地使用迭代算法或减少迭代次数,因为迭代算法产生的硬件规模巨大;
在视频算法和硬件实现联合开发过程中,一个好的算法开发工程师应该让自己的代码风格满足上述算法代码风格要求,这样,能设计出具备良好的硬件可实现性的算法,可以减少硬件约束检查→修改→硬件约束检查的迭代次数。
步骤203:基于算法代码进行硬件架构设计。硬件架构设计指从算法代码中提炼出算法的关键模块和关键路径,进行结构设计。关键模块为需要相对较多运算资源的模块,关键路径为连接外部存储,内部存储和关键模块之间的数据通路;
步骤204:对数据带宽和硬件规模进行预估;
因为步骤203的硬件架构设计中包含了系统关键模块和关键路径的设计,基于该设计可以预估出:
1)硬件对外部存储数据带宽的访问要求;
2)片内缓存的使用大小;
3)大运算量模块的规模。
如果该预估值超出了步骤201中制定的硬件资源可实现范围,则要同时进行视频算法层面和硬件架构层面的优化。即将修改意见反馈给算法设计人员,算法设计人员修改算法代码进行算法层面的优化,同时要返回步骤203,优化硬件架构设计。如果该预估值满足步骤201制定的硬件可实现范围,则本次接收的算法代码的硬件架构设计结束。
视频算法层面的优化策略有:
1)减少数据位宽;
2)减少滤波器窗口垂直高度;
3)删除对算法性能贡献微小的模块;
4)减少算法的迭代次数;
5)减少搜索范围,或搜索范围不变但增加步长。
硬件层面的优化策略有:
1)用分段扫描的方法减少片内缓存的大小;
2)分时复用;
3)使用片内缓存来减少对外部存储的访问,从而减少对数据带宽的需求。
进行算法和硬件联合优化的优点是:在算法上的优化,相对于硬件结构优化,在整体上能有更大的增益。但是在算法的优化时,又必须考虑硬件结构对算法设计的约束。
步骤205:如果本次接收的视频算法代码为最终版,即该算法代码同时满足硬件可实现性和算法性能指标时,则执行步骤206。如果不是最终版,则返回步骤202;
步骤206:在视频算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型(Golden Model);
步骤207:详细的分模块架构设计和编码;
步骤208:利用如图4所示的RTL硬件验证子系统,对比Golden Model,对RTL硬件设计进行硬件功能仿真验证;
RTL验证系统如图4所示,包括测试图象库、测试向量生成器、Golden CModel、待验证的RTL硬件模型、以及文件比较器。测试视频序列库,用于存储对视频算法的RTL硬件设计进行验证所需要的测试序列。在在视频算法代码最终版中添加文件输入输出代码,可以生成测试向量生成器。测试向量生成器,用于从测试视频序列库中读取测试序列,并生成测试向量,再将该测试向量输出给黄金C语言模型和待验证的RTL硬件模型;黄金C语言模型和待验证的RTL硬件模型,用于在接收到测试向量后分别产生输出,并将各自的输出均输出给文件比较器;文件比较器,用于比较黄金C语言模型的输出与待验证的RTL硬件模型的输出是否一致,如果一致,则验证通过,如果不一致,则验证失败。
步骤209:在顶层功能验证通过后,利用如图5所示的FPGA验证子系统,对RTL硬件设计进行FPGA验证;
FPGA验证子系统如图5所示,包括高清播放机、FPGA开发板、PC机上的RTL硬件代码和交互软件、以及高清电视。视频算法的RTL硬件代码通过JTAG接口下载到FPGA开发板,高清视频播放器通过HDMI接口传输视频到FPGA开发板,该视频经过下载到FPGA板的硬件逻辑进行处理,将处理结果通过LVDS接口传到高清数字电视。PC端的交互软件通过以太网配置SOC系统参数。
开发流程是否能够准确高效地贯彻,取决于两个要素,一个是开发者,一个开发平台。开发者在好的开发平台上进行开发,能够快速地完成设计目标。本发明还提出了能贯彻上述开发流程的开发平台。
本发明所提出的开发平台,除了集成了视频算法开发和芯片前端设计所需要的EDA工具和其他辅助工具以及各种必要的脚本和环境配置文件等软件工具资源,并且包括三个子系统,及视频性能评估系统、RTL硬件验证子系统和FPGA验证子系统,使本发明提出的开发流程得以准确高效地执行。
如图2所示的视频算法和硬件实现联合开发的开发平台由视频算法性能评估子系统、RTL硬件验证子系统、FPGA验证子系统和联合开发过程中所需要的软件资源组成。
其中,视频算法性能评估子系统如图3所示,由测试视频序列库、待评估的视频算法、对比方的视频处理单元算法、以及主观视觉评估单元、客观性能评估单元组成。其中测试视频序列库由对视频算法进行性能评估的视频序列组成。具体由各个分辨率的通用视频库和特定算法评估的视频库组成。特定算法评估的视频库,针对开发的不同算法种类,有不同的视频序列库,通常为业界公认视频测试库。算法主观视觉评估单元由硬盘录放机和两台高清电视组成。如果对比方不止一个,则可以扩展为多个对比方处理单元及多台数字高清电视。
视频算法从测试视频序列库中读取视频,得到处理后的视频。经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元。客观性能指标评估单元计算出待评估的算法处理结果的信噪比、压缩比等客观性能指标。主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上。同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示。人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
RTL验证系统如图4所示,由测试图象库、测试向量生成器、Golden CModel、待验证的RTL硬件模型、以及文件比较器组成。测试视频序列库,用于存储对视频算法的RTL硬件设计进行验证所需要的测试序列。在在视频算法代码最终版中添加文件输入输出代码,可以生成测试向量生成器。测试向量生成器,用于从测试视频序列库中读取测试序列,并生成测试向量,再将该测试向量输出给黄金C语言模型和待验证的RTL硬件模型;黄金C语言模型和待验证的RTL硬件模型,用于在接收到测试向量后分别产生输出,并将各自的输出均输出给文件比较器;文件比较器,用于比较黄金C语言模型的输出与待验证的RTL硬件模型的输出是否一致,如果一致,则验证通过,如果不一致,则验证失败。
FPGA验证子系统如图5所示,由高清播放机、FPGA开发板、PC机上的RTL硬件代码和交互软件、以及高清电视组成。视频算法的RTL硬件代码通过JTAG接口下载到FPGA开发板,高清视频播放器通过HDMI接口传输视频到FPGA开发板,该视频经过下载到FPGA板的硬件逻辑进行处理,将处理结果通过LVDS接口传到高清数字电视。PC端的交互软件通过以太网配置SOC系统参数。
下面的表1是图2所示联合开发平台所需的软件资源列表。
表1图2所示联合开发平台所需的软件资源列表
下面以视频处理中的运动估计为例,描述本发明提供的视频算法和硬件实现联合开发的方法。下表2左栏为视频算法开发的步骤,右栏位RTL硬件设计的步骤。
表2
图6示出根据本申请算法硬件实现系统的一个实施例的结构示意图,其包括算法开发模块、实现评估模块和硬件实现模块,算法开发模块用于进行算法开发;实现评估模块用于进行所述算法的硬件实现评估;算法开发模块还用于根据所述硬件实现评估结果对所述算法进行修改和/或优化;硬件实现模块用于对所述修改和/或优化后的算法进行硬件实现。
一种实施方式,算法开发模块还用于对算法进行功能定义和性能指标定义;依据功能定义和性能指标定义对算法进行开发和编码。
一种实施方式,算法开发模块还用于根据硬件实现评估结果,若所述结果为不满足硬件可实现性,则修改和/或优化算法;若满足硬件可实现性,则对算法进行性能评估,若满足性能指标,则确定算法代码;若不能满足性能指标,则修改算法代码,直至满足。
一种实施方式,算法包括视频算法,算法开发模块还用于:视频算法从测试视频序列库中读取视频,得到处理后的视频;经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元;客观性能指标评估单元计算出待评估的算法处理结果的客观性能指标;主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上;同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示;人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
一种实施方式,硬件实现模块包括:进行系统定义,对系统资源进行描述,制定硬件性能指标数据带宽、频率、硬件规模和功耗;接收算法代码,基于算法代码进行硬件架构设计;对数据带宽和硬件规模进行预估;在算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型Golden Model;进行详细的分模块架构设计和编码;基于该Golden Model对RTL硬件设计进行硬件功能仿真验证;对RTL硬件设计进行FPGA验证。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换。
Claims (10)
1.一种算法硬件实现方法,其特征在于,包括:
进行算法开发;
进行所述算法的硬件实现评估;
根据所述硬件实现评估结果对所述算法进行修改和/或优化;
对所述修改和/或优化后的算法进行硬件实现。
2.如权利要求1所述的方法,其特征在于,其中所述算法开发包括:
对算法进行功能定义和性能指标定义;
依据所述功能定义和性能指标定义对算法进行开发和编码。
3.如权利要求2所述的方法,其特征在于,其中所述根据所述硬件实现评估结果对所述算法进行修改和/或优化包括:
根据硬件实现评估结果,若所述结果为不满足硬件可实现性,则修改和/或优化算法;若满足硬件可实现性,则:
对算法进行性能评估,若满足所述性能指标,则确定算法代码;若不能满足性能指标,则修改算法代码,直至满足。
4.如权利要求3所述的方法,其特征在于,其中所述算法包括视频算法,所述对算法进行性能评估包括:
视频算法从测试视频序列库中读取视频,得到处理后的视频;
经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元;
客观性能指标评估单元计算出待评估的算法处理结果的客观性能指标;
主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上;
同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示;
人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述对所述修改和/或优化后的算法进行硬件实现包括:
进行系统定义,对系统资源进行描述,制定硬件性能指标数据带宽、频率、硬件规模和功耗;
接收算法代码,基于算法代码进行硬件架构设计;
对数据带宽和硬件规模进行预估;
在算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型Golden Model;
进行详细的分模块架构设计和编码;
基于该Golden Model对RTL硬件设计进行硬件功能仿真验证;
对RTL硬件设计进行FPGA验证。
6.一种算法硬件实现系统,其特征在于,包括算法开发模块、实现评估模块和硬件实现模块;
所述算法开发模块用于进行算法开发;
所述实现评估模块用于进行所述算法的硬件实现评估;
所述算法开发模块还用于根据所述硬件实现评估结果对所述算法进行修改和/或优化;
所述硬件实现模块用于对所述修改和/或优化后的算法进行硬件实现。
7.如权利要求6所述的系统,其特征在于,其中所述算法开发模块还用于对算法进行功能定义和性能指标定义;依据所述功能定义和性能指标定义对算法进行开发和编码。
8.如权利要求7所述的系统,其特征在于,其中所述算法开发模块还用于根据硬件实现评估结果,若所述结果为不满足硬件可实现性,则修改和/或优化算法;若满足硬件可实现性,则对算法进行性能评估,若满足所述性能指标,则确定算法代码;若不能满足性能指标,则修改算法代码,直至满足。
9.如权利要求8所述的系统,其特征在于,其中所述算法包括视频算法,所述算法开发模块还用于:
视频算法从测试视频序列库中读取视频,得到处理后的视频;经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元;客观性能指标评估单元计算出待评估的算法处理结果的客观性能指标;主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上;同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示;人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
10.如权利要求6至9中任一项所述的系统,其特征在于,所述硬件实现模块包括:进行系统定义,对系统资源进行描述,制定硬件性能指标数据带宽、频率、硬件规模和功耗;接收算法代码,基于算法代码进行硬件架构设计;对数据带宽和硬件规模进行预估;在算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型Golden Model;进行详细的分模块架构设计和编码;基于该Golden Model对RTL硬件设计进行硬件功能仿真验证;对RTL硬件设计进行FPGA验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310182417.XA CN104166618A (zh) | 2013-05-16 | 2013-05-16 | 一种算法硬件实现方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310182417.XA CN104166618A (zh) | 2013-05-16 | 2013-05-16 | 一种算法硬件实现方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104166618A true CN104166618A (zh) | 2014-11-26 |
Family
ID=51910444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310182417.XA Pending CN104166618A (zh) | 2013-05-16 | 2013-05-16 | 一种算法硬件实现方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104166618A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105114189A (zh) * | 2015-06-09 | 2015-12-02 | 吉林大学 | 基于fpga实现的电子节气门模型预测控制系统 |
CN108768345A (zh) * | 2018-05-04 | 2018-11-06 | 中国科学院电工研究所 | 一种用于自适应滤波器硬件设计的字长选择方法 |
CN109978160A (zh) * | 2019-03-25 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 人工智能处理器的配置装置、方法及相关产品 |
CN115240593A (zh) * | 2022-09-21 | 2022-10-25 | 苏州珂晶达电子有限公司 | 一种Micro-LED驱动IC的原型验证系统 |
-
2013
- 2013-05-16 CN CN201310182417.XA patent/CN104166618A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105114189A (zh) * | 2015-06-09 | 2015-12-02 | 吉林大学 | 基于fpga实现的电子节气门模型预测控制系统 |
CN108768345A (zh) * | 2018-05-04 | 2018-11-06 | 中国科学院电工研究所 | 一种用于自适应滤波器硬件设计的字长选择方法 |
CN108768345B (zh) * | 2018-05-04 | 2021-09-28 | 中国科学院电工研究所 | 一种用于自适应滤波器硬件设计的字长选择方法 |
CN109978160A (zh) * | 2019-03-25 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 人工智能处理器的配置装置、方法及相关产品 |
CN109978160B (zh) * | 2019-03-25 | 2021-03-02 | 中科寒武纪科技股份有限公司 | 人工智能处理器的配置装置、方法及相关产品 |
CN115240593A (zh) * | 2022-09-21 | 2022-10-25 | 苏州珂晶达电子有限公司 | 一种Micro-LED驱动IC的原型验证系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190228126A1 (en) | Machine-learning circuit optimization using quantized prediction functions | |
US10521700B2 (en) | Methods and systems for converting a line drawing to a rendered image | |
CN109543212B (zh) | 可编程逻辑器件的功能测试方法、装置及计算机存储介质 | |
Bollaert | Catapult synthesis: a practical introduction to interactive C synthesis | |
CN104166618A (zh) | 一种算法硬件实现方法和系统 | |
CN102176213A (zh) | 基于fpga的avs解码芯片验证平台装置及方法 | |
US8589837B1 (en) | Constructing inductive counterexamples in a multi-algorithm verification framework | |
US10203371B2 (en) | Methods and systems for generating functional test patterns for manufacture test | |
Amara et al. | Sobel edge detection system design and integration on an FPGA based HD video streaming architecture | |
CN104935936A (zh) | 基于uvm的熵解码器验证方法及装置 | |
CN105591779A (zh) | 网元巡检方法及装置 | |
CN105957044B (zh) | 具有asip核心的图像融合红外热像仪 | |
CN102567583A (zh) | 一种视频算法和硬件实现联合开发的方法 | |
CN106202162B (zh) | 一种用于测试推荐房间数据列表的测试系统及方法 | |
CN114299573A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
Matai et al. | Enabling fpgas for the masses | |
TW201734843A (zh) | 資料分析方法及裝置 | |
US20140282321A1 (en) | System and method for a hybrid clock domain crossing verification | |
CN109656801A (zh) | 一种基于路径自适应技术的业务流测试用例自动生成系统 | |
Kim et al. | Design of H. 264 video encoder with C to RTL design tool | |
US10339615B2 (en) | Automatic IP core generation system | |
Wipliez et al. | Design ip faster: Introducing the c high-level language | |
Rana et al. | Efficient hardware design of iterative stencil loops | |
US20220237141A1 (en) | Fpga implementation of low latency architecture of xgboost for inference and method therefor | |
Barrera et al. | Test bed for real-time image acquisition and processing systems based on FlexRIO, CameraLink, and EPICS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141126 |