CN102567583A - 一种视频算法和硬件实现联合开发的方法 - Google Patents
一种视频算法和硬件实现联合开发的方法 Download PDFInfo
- Publication number
- CN102567583A CN102567583A CN2011104557400A CN201110455740A CN102567583A CN 102567583 A CN102567583 A CN 102567583A CN 2011104557400 A CN2011104557400 A CN 2011104557400A CN 201110455740 A CN201110455740 A CN 201110455740A CN 102567583 A CN102567583 A CN 102567583A
- Authority
- CN
- China
- Prior art keywords
- video
- hardware
- algorithm
- video algorithm
- code
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 210
- 238000011161 development Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013461 design Methods 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000005457 optimization Methods 0.000 claims abstract description 15
- 238000012360 testing method Methods 0.000 claims description 49
- 238000011156 evaluation Methods 0.000 claims description 16
- 238000007689 inspection Methods 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 8
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 claims description 6
- 239000010931 gold Substances 0.000 claims description 6
- 229910052737 gold Inorganic materials 0.000 claims description 6
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 5
- 230000006835 compression Effects 0.000 claims description 5
- 230000008901 benefit Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 235000013599 spices Nutrition 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000009897 systematic effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 239000000284 extract Substances 0.000 claims description 2
- 238000001914 filtration Methods 0.000 claims description 2
- 238000009472 formulation Methods 0.000 claims description 2
- 239000000203 mixture Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频算法和硬件实现联合开发的方法,该方法将视频算法开发和硬件实现分成两条主线同步进行,在视频算法开发过程中,对视频算法的客观和主观视觉性能进行评估,同时对视频算法进行硬件架构设计,检查视频算法是否满足硬件约束,一旦发现硬件架构超出了硬件资源的可实现性范围,则同时进行视频算法层面和硬件架构层面的联合优化。本发明还给出了相应的优化策略,提出了与开发流程配合的开发平台,在开发流程的每一个环节,均有开发平台中的资源给与高效准确的支持,确保视频处理芯片开发能正确快速地完成。本发明可以用于视频处理芯片从算法开发到芯片前端设计的快速开发。
Description
技术领域
本发明涉及数字视频处理的芯片设计技术领域,尤其涉及一种视频算法和硬件实现联合开发的方法,应用于数字高清电视、机顶盒以及视频监控等进行视频处理的高性能处理芯片设计。
背景技术
数字图像和视频处理技术在诸多领域应用广泛,如数字电视、视频监控、医疗成像、工业检测和消费电子产品等。目前处理算法通常是由软件来完成,随着深亚微米工艺和大规模集成电路技术的发展,多媒体实时硬件处理成为一个新的发展趋势。
在目前中国的数字高清电视领域,大部分电子企业采用两种研发模式,一种模式直接购买诸如MTK、Pixelworks和Trident等台湾或外国企业的芯片,进行整机系统集成,另一种模式是进行芯片设计,但由于缺乏在视频处理核心算法的知识产权和竞争力,只能用高昂的价格购买IP芯片进行嵌入式系统芯片(SoC)系统集成。这两种模式没有培育自己在视频处理领域的核心竞争力,只能处于产业链的较下端,受制于上游的IP提供商和芯片提供商。
大部分具有ASIC或SOC芯片设计能力的企业缺乏设计视频核心算法的能力,而具有视频处理算法设计能力的人员多分布在研究机构和软件公司,不具备芯片设计的能力,只能提供基于软件的视频处理解决方案,其实时性无法得到保证。在数字高清电视领域,同时具有自主算法设计和芯片设计能力的仅有Pixelworks、Trident、三星、飞利浦和索尼等企业。越来越多的电子企业意识到同时具备视频算法设计能力和芯片设计能力的重要性,配备了算法开发团队和芯片设计团队,试图设计从视频算法到ASIC架构和SOC架构完全自主知识产权的芯片。
随着视频分辨率的不断提高和功能的不断增加,芯片的规模越来越庞大。常常达到上千万逻辑门,如此规模巨大的电路需要众多设计人员的参与。对于任何芯片设计项目来说,控制产品研发成本与进度是取得成功的重要保证。如果设计流程不规范,不能很快实现设计效果,产品开发要走很多弯路,影响开发进程,致使很多设计不能按时完成。
US 6526562 B1专利描述了高效的芯片设计流程,但这个流程只规范了芯片设计环节,没有将算法设计纳入整个流程加以规范。
常规的算法和芯片联合设计流程将两者独立开来,先进行算法开发,然后进行芯片硬件实现。这种流程有两个缺点,从算法开发来看,很可能导致开发出的算法不具备硬件可实行性,或产生的硬件规模巨大,超出了芯片的数据带宽或规模的约束;从芯片设计上来看,如果算法交付之后不做改动,仅仅从硬件结构上进行优化,带来的优化效果是有限的,所以需要制定更高效的开发流程来进行视频算法和硬件实现的联合开发。
发明内容
(一)要解决的技术问题
有鉴于此,本发明提出了一种视频算法和硬件实现联合开发的方法,以实现视频算法和硬件实现的联合开发。
(二)技术方案
为达到上述目的,本发明提供了一种视频算法和硬件实现联合开发的方法,该方法将视频算法开发和硬件实现分成两条主线同步进行,在视频算法开发过程中,对视频算法的客观和主观视觉性能进行评估,同时对视频算法进行硬件架构设计,检查视频算法是否满足硬件约束,一旦发现硬件架构超出了硬件资源的可实现性范围,则同时进行视频算法层面和硬件架构层面的联合优化。
上述方案中,所述视频算法开发的具体步骤如下:
步骤101:进行功能定义,对要实现的算法功能和需要满足的算法性能指标进行定义;
步骤102:视频算法开发和编码;
步骤103:接收硬件设计人员进行硬件可实现性检查的反馈结果,如不满足硬件可实现性,则修改算法代码,如满足硬件可实现性,则执行步骤104;
步骤104:对视频算法进行算法性能评估,如果能够满足算法性能指标要求,则视频算法代码编码结束,代码确定;如果不能够满足算法性能指标要求,则修改算法代码,直至满足。
上述方案中,所述硬件实现的具体步骤如下:
步骤201:进行系统定义,对系统资源进行描述,制定硬件性能指标数据带宽、频率、硬件规模和功耗;
步骤202:接收视频算法代码,对视频算法代码进行硬件可实现性代码风格检查,如果算法代码风格满足基本设计规范,则执行步骤203,如果不满足,则将修改意见反馈给算法设计人员;
步骤203:基于算法代码进行硬件架构设计;
步骤204:对数据带宽和硬件规模进行预估;
步骤205:如果本次接收的视频算法代码同时满足硬件可实现性和算法性能指标,则执行步骤206;否则,返回步骤202;
步骤206:在视频算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型Golden Model;
步骤207:进行详细的分模块架构设计和编码;
步骤208:基于该Golden Model对RTL硬件设计进行硬件功能仿真验证;
步骤209:对RTL硬件设计进行FPGA验证。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的视频算法和硬件实现联合开发的方法,将视频算法开发和硬件实现分成两条主线同步进行,在视频算法开发过程中,对视频算法的客观和主观视觉性能进行评估,同时对视频算法进行硬件架构设计,检查视频算法是否满足硬件约束(即检查视频算法是否满足硬件规模和数据带宽以及硬件可实现性等硬件约束),一旦发现硬件架构超出了硬件资源的可实现性范围,则同时进行视频算法层面和硬件架构层面的联合优化,实现了视频算法和硬件实现的联合开发。
2、本发明提供的视频算法和硬件实现联合开发的方法,还给出了相应的优化策略,提出了与开发流程配合的开发平台,在开发流程的每一个环节,均有开发平台中的资源给与高效准确的支持,确保视频处理芯片开发能正确快速地完成。本发明可以用于视频处理芯片从算法开发到芯片前端设计的快速开发。
附图说明
图1是依照本发明实施例的视频算法和硬件实现联合开发的方法流程图;
图2是依照本发明实施例的视频算法和硬件实现联合开发平台的示意图;
图3是图2中视频算法性能评估子系统的示意图;
图4是图2中RTL硬件验证子系统的示意图;
图5是图2中FPGA验证子系统的示意图。
表1是图2所示联合开发平台所需的软件资源列表。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提供的视频算法和硬件实现联合开发的方法,将视频算法开发和硬件实现分成两条主线同步进行,在视频算法开发过程中,对视频算法的客观和主观视觉性能进行评估,同时对视频算法进行硬件架构设计,检查视频算法是否满足硬件约束(即检查视频算法是否满足硬件规模和数据带宽以及硬件可实现性等硬件约束),一旦发现硬件架构超出了硬件资源的可实现性范围,则同时进行视频算法层面和硬件架构层面的联合优化。
只有当硬件约束和视觉性能指标同时满足要求时,视频算法代码才能确定。在视频算法代码确定后,要在视频算法代码中添加测试向量生成代码,生成寄存器传输级(Register Transfer Level,简称RTL)实现所用到的黄金模型(Golden Model)。
本发明还给出了相应的优化策略,提出了与开发流程配合的开发平台,在开发流程的每一个环节,均有开发平台中的资源给与高效准确的支持,确保视频处理芯片开发能正确快速地完成。
如图1所示,图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硬件验证子系统,对比GoldenModel,对RTL硬件设计进行硬件功能仿真验证;
RTL验证系统如图4所示,包括测试图象库、测试向量生成器、GoldenC Model、待验证的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所示,由测试图象库、测试向量生成器、GoldenC Model、待验证的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左栏为视频算法开发的步骤,右栏位RTL硬件设计的步骤。
表2
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种视频算法和硬件实现联合开发的方法,其特征在于,该方法将视频算法开发和硬件实现分成两条主线同步进行,在视频算法开发过程中,对视频算法的客观和主观视觉性能进行评估,同时对视频算法进行硬件架构设计,检查视频算法是否满足硬件约束,一旦发现硬件架构超出了硬件资源的可实现性范围,则同时进行视频算法层面和硬件架构层面的联合优化。
2.根据权利要求1所述的视频算法和硬件实现联合开发的方法,其特征在于,所述视频算法开发的具体步骤如下:
步骤101:进行功能定义,对要实现的算法功能和需要满足的算法性能指标进行定义;
步骤102:视频算法开发和编码;
步骤103:接收硬件设计人员进行硬件可实现性检查的反馈结果,如不满足硬件可实现性,则修改算法代码,如满足硬件可实现性,则执行步骤104;
步骤104:对视频算法进行算法性能评估,如果能够满足算法性能指标要求,则视频算法代码编码结束,代码确定;如果不能够满足算法性能指标要求,则修改算法代码,直至满足。
3.根据权利要求2所述的视频算法和硬件实现联合开发的方法,其特征在于,步骤101中所述算法性能指标包括客观性能指标和主观视觉性能指标,客观性能指标包括可以量化的信噪比和压缩比,主观视觉性能指标是确定在人眼主观视觉上要达到或超过的对比方。
4.根据权利要求2所述的视频算法和硬件实现联合开发的方法,其特征在于,步骤104中所述对视频算法进行算法性能评估,是利用视频算法性能评估子系统对视频算法进行算法性能评估,具体评估方法包括:对待测试的视频运行视频算法代码,得到视频处理的结果,对该结果进行评估,检查客观性能指标和主观视觉性能指标是否达到步骤101中制定的性能指标。
5.根据权利要求4所述的视频算法和硬件实现联合开发的方法,其特征在于,所述主观视觉性能指标的评估方法是:比较待评估的处理结果和对比方的处理结果,用人眼的主观视觉来判断待评估方和对比方的优劣。
6.根据权利要求4所述的视频算法和硬件实现联合开发的方法,其特征在于,所述视频算法性能评估子系统包括测试视频序列库、待评估的视频算法、对比方的视频处理单元算法、主观视觉评估单元、以及客观性能评估单元;其中,测试视频序列库由对视频算法进行性能评估的视频序列组成,具体由各个分辨率的通用视频库和特定算法评估的视频库组成;主观视觉评估单元由多个对比方处理单元及多台数字高清电视组成。
7.根据权利要求6所述的视频算法和硬件实现联合开发的方法,其特征在于,所述检查客观性能指标和主观视觉性能指标是否达到步骤101中制定的性能指标,包括:
视频算法从测试视频序列库中读取视频,得到处理后的视频;经视频算法处理后的视频分别输入到主观视觉评估单元和客观性能指标评估单元;客观性能指标评估单元计算出待评估的算法处理结果的客观性能指标;主观视觉评估单元接收到处理后的视频后,下载到硬盘录放机,硬盘录放机控制将下载的视频结果通过LVDS接口显示到高清电视上;同时,未经视频算法处理的测试视频经过对比方的视频处理单元,输出到另一台高清电视上显示;人眼对两台高清电视的结果进行主观视觉的评估,并输出评估性能指标。
8.根据权利要求1所述的视频算法和硬件实现联合开发的方法,其特征在于,所述硬件实现的具体步骤如下:
步骤201:进行系统定义,对系统资源进行描述,制定硬件性能指标数据带宽、频率、硬件规模和功耗;
步骤202:接收视频算法代码,对视频算法代码进行硬件可实现性代码风格检查,如果算法代码风格满足基本设计规范,则执行步骤203,如果不满足,则将修改意见反馈给算法设计人员;
步骤203:基于算法代码进行硬件架构设计;
步骤204:对数据带宽和硬件规模进行预估;
步骤205:如果本次接收的视频算法代码同时满足硬件可实现性和算法性能指标,则执行步骤206;否则,返回步骤202;
步骤206:在视频算法代码最终版中添加测试向量生成代码,生成硬件实现所用到的黄金模型Golden Model;
步骤207:进行详细的分模块架构设计和编码;
步骤208:基于该Golden Model对RTL硬件设计进行硬件功能仿真验证;
步骤209:对RTL硬件设计进行FPGA验证。
9.根据权利要求8所述的视频算法和硬件实现联合开发的方法,其特征在于,步骤202中所述基本设计规范包括:
1)数据类型为整型;
2)常数除法修改为乘和移位;
3)尽量少的使用除法器;
4)滤波窗口尽量小,这样能尽量少的使用片内缓存;以及
5)尽量少地使用迭代算法或减少迭代次数,因为迭代算法产生的硬件规模巨大。
10.根据权利要求8所述的视频算法和硬件实现联合开发的方法,其特征在于,步骤203中所述基于算法代码进行硬件架构设计,是从算法代码中提炼出算法的关键模块和关键路径进行结构设计,关键模块为需要相对较多运算资源的模块,关键路径为连接外部存储,内部存储和关键模块之间的数据通路。
11.根据权利要求8所述的视频算法和硬件实现联合开发的方法,其特征在于,步骤204中所述对数据带宽和硬件规模进行预估,以预估出:
1)硬件对外部存储数据带宽的访问要求;
2)片内缓存的使用大小;以及
3)大运算量模块的规模。
12.根据权利要求11所述的视频算法和硬件实现联合开发的方法,其特征在于,步骤204中所述对数据带宽和硬件规模进行预估之后,还包括:
如果该预估值超出了步骤201中制定的硬件资源可实现范围,则要同时进行视频算法层面和硬件架构层面的优化,即将修改意见反馈给算法设计人员,算法设计人员修改算法代码进行算法层面的优化,同时要返回步骤203,优化硬件架构设计;如果该预估值满足步骤201制定的硬件可实现范围,则本次接收的算法代码的硬件架构设计结束。
13.根据权利要求12所述的视频算法和硬件实现联合开发的方法,其特征在于,所述视频算法层面的优化策略有:
1)减少数据位宽;
2)减少滤波器窗口垂直高度;
3)删除对算法性能贡献微小的模块;
4)减少算法的迭代次数;以及
5)减少搜索范围,或搜索范围不变但增加步长。
14.根据权利要求12所述的视频算法和硬件实现联合开发的方法,其特征在于,所述硬件层面的优化策略有:
1)用分段扫描的方法减少片内缓存的大小;
2)分时复用;以及
3)使用片内缓存来减少对外部存储的访问,从而减少对数据带宽的需求。
15.根据权利要求8所述的视频算法和硬件实现联合开发的方法,其特征在于,步骤208中所述基于该Golden Model对RTL硬件设计进行硬件功能仿真验证,是利用RTL硬件验证子系统实现的,该RTL硬件验证子系统包括测试图象库、测试向量生成器、Golden C Model、待验证的RTL硬件模型、以及文件比较器,其中:
测试视频序列库,用于存储对视频算法的RTL硬件设计进行验证所需要的测试序列;在在视频算法代码最终版中添加文件输入输出代码,则生成测试向量生成器;
测试向量生成器,用于从测试视频序列库中读取测试序列,并生成测试向量,再将该测试向量输出给黄金C语言模型和待验证的RTL硬件模型;
黄金C语言模型和待验证的RTL硬件模型,用于在接收到测试向量后分别产生输出,并将各自的输出均输出给文件比较器;
文件比较器,用于比较黄金C语言模型的输出与待验证的RTL硬件模型的输出是否一致,如果一致,则验证通过,如果不一致,则验证失败。
16.根据权利要求8所述的视频算法和硬件实现联合开发的方法,其特征在于,步骤209中所述对RTL硬件设计进行FPGA验证,是利用FPGA验证子系统实现的,该FPGA验证子系统包括高清播放机、FPGA开发板、PC机上的RTL硬件代码和交互软件、以及高清电视;其中,视频算法的RTL硬件代码通过JTAG接口下载到FPGA开发板,高清视频播放器通过HDMI接口传输视频到FPGA开发板,该视频经过下载到FPGA板的硬件逻辑进行处理,将处理结果通过LVDS接口传到高清数字电视;PC端的交互软件通过以太网配置SOC系统参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104557400A CN102567583A (zh) | 2011-12-30 | 2011-12-30 | 一种视频算法和硬件实现联合开发的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104557400A CN102567583A (zh) | 2011-12-30 | 2011-12-30 | 一种视频算法和硬件实现联合开发的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102567583A true CN102567583A (zh) | 2012-07-11 |
Family
ID=46412975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104557400A Pending CN102567583A (zh) | 2011-12-30 | 2011-12-30 | 一种视频算法和硬件实现联合开发的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567583A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077104A (zh) * | 2013-01-28 | 2013-05-01 | 北京君正集成电路股份有限公司 | 一种片上系统的验证方法、装置和系统 |
CN111026443A (zh) * | 2019-11-18 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于算法特征的simt系统 |
CN112148600A (zh) * | 2020-09-16 | 2020-12-29 | 上海中通吉网络技术有限公司 | 一种软件性能的测试方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310785B2 (en) * | 2004-12-10 | 2007-12-18 | Micronas Usa, Inc. | Video processing architecture definition by function graph methodology |
CN101227616A (zh) * | 2007-01-15 | 2008-07-23 | 上海赛唯伦科技有限公司 | H.263/avc整象素向量搜索算法 |
CN102054087A (zh) * | 2010-04-21 | 2011-05-11 | 华东理工大学 | 一种基于本体论可重构的嵌入式系统设计方法及系统 |
-
2011
- 2011-12-30 CN CN2011104557400A patent/CN102567583A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310785B2 (en) * | 2004-12-10 | 2007-12-18 | Micronas Usa, Inc. | Video processing architecture definition by function graph methodology |
CN101227616A (zh) * | 2007-01-15 | 2008-07-23 | 上海赛唯伦科技有限公司 | H.263/avc整象素向量搜索算法 |
CN102054087A (zh) * | 2010-04-21 | 2011-05-11 | 华东理工大学 | 一种基于本体论可重构的嵌入式系统设计方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077104A (zh) * | 2013-01-28 | 2013-05-01 | 北京君正集成电路股份有限公司 | 一种片上系统的验证方法、装置和系统 |
CN103077104B (zh) * | 2013-01-28 | 2015-04-15 | 北京君正集成电路股份有限公司 | 一种片上系统的验证方法、装置和系统 |
CN111026443A (zh) * | 2019-11-18 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于算法特征的simt系统 |
CN111026443B (zh) * | 2019-11-18 | 2023-05-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于算法特征的simt系统 |
CN112148600A (zh) * | 2020-09-16 | 2020-12-29 | 上海中通吉网络技术有限公司 | 一种软件性能的测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Stanley-Marbell et al. | Exploiting errors for efficiency: A survey from circuits to applications | |
Candès et al. | Robust principal component analysis? | |
Deng et al. | Low-rank structure learning via nonconvex heuristic recovery | |
Zhou et al. | Unsupervised domain adaptation for 3d keypoint estimation via view consistency | |
US10521700B2 (en) | Methods and systems for converting a line drawing to a rendered image | |
CN111553282A (zh) | 用于检测车辆的方法和装置 | |
Indyk et al. | K-median clustering, model-based compressive sensing, and sparse recovery for earth mover distance | |
CN104025118A (zh) | 使用扩展surf特征的对象检测 | |
CN109324864B (zh) | 一种人机交互操作信息的获取方法及装置 | |
US20130290918A1 (en) | Constructing inductive counterexamples in a multi-algorithm verification framework | |
CN104166618A (zh) | 一种算法硬件实现方法和系统 | |
CN102567583A (zh) | 一种视频算法和硬件实现联合开发的方法 | |
KR20160078032A (ko) | 전자 설계 자동화를 위한 장치 및 방법 | |
Ainala et al. | An improved enhancement layer for octree based point cloud compression with plane projection approximation | |
Wang | A Comparison Study of Five 3D Modeling Systems Based on the SfM Principles | |
Chen et al. | Efficient and differentiable low-rank matrix completion with back propagation | |
He et al. | Transfer learning in high‐dimensional semiparametric graphical models with application to brain connectivity analysis | |
CN106202162B (zh) | 一种用于测试推荐房间数据列表的测试系统及方法 | |
Li et al. | Lingo: linearized grassmannian optimization for nuclear norm minimization | |
Ben-David et al. | CSSL: a logic for specifying conditional scenarios | |
US20140282299A1 (en) | Method and apparatus for performing optical proximity and photomask correction | |
Mayer | RPBA--Robust Parallel Bundle Adjustment Based on Covariance Information | |
US7308665B2 (en) | Method and apparatus for analyzing clock-delay, and computer product | |
US20110205903A1 (en) | Monitoring apparatus, method, and computer product | |
Smith et al. | Adapting Robotics Vision Algorithms for Space Rated FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120711 |