CN114567773B - 视频处理算法仿真方法、系统、装置及存储介质 - Google Patents

视频处理算法仿真方法、系统、装置及存储介质 Download PDF

Info

Publication number
CN114567773B
CN114567773B CN202210168564.0A CN202210168564A CN114567773B CN 114567773 B CN114567773 B CN 114567773B CN 202210168564 A CN202210168564 A CN 202210168564A CN 114567773 B CN114567773 B CN 114567773B
Authority
CN
China
Prior art keywords
file
image
image frame
video
module
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.)
Active
Application number
CN202210168564.0A
Other languages
English (en)
Other versions
CN114567773A (zh
Inventor
李大琳
黄岚
高俊晗
王康平
王岩
卢佳栋
吕威
朱勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Institute Of Science And Technology
Original Assignee
Zhuhai Institute Of Science And Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Institute Of Science And Technology filed Critical Zhuhai Institute Of Science And Technology
Priority to CN202210168564.0A priority Critical patent/CN114567773B/zh
Publication of CN114567773A publication Critical patent/CN114567773A/zh
Application granted granted Critical
Publication of CN114567773B publication Critical patent/CN114567773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种视频处理算法仿真方法、系统、装置及存储介质,其中所述方法包括:首先是第一模块以图像帧为单位,通过摄像头获取视频流;然后将图像帧转换为第一文本文件,并将第一文本文件写入通信通道中的原始图像文件;当第一文本文件被写入原始图像文件,第一模块更新通信通道中的视频状态通信文件,并在完成对视频状态通信文件的更新后,定时访问视频状态通信文件。当第一模块发现视频状态通信文件被第二模块更新,则根据更新后的视频状态通信文件在处理后图像文件中读取第二文本文件;然后将第二文本文件转换为第二仿真图像帧,完成当前图像帧的仿真。本申请提出的视频处理算法仿真方法开发难度低,并且能够实现准实时的视频流仿真。

Description

视频处理算法仿真方法、系统、装置及存储介质
技术领域
本申请涉及FPGA技术领域,尤其涉及一种视频处理算法仿真方法、系统、装置及存储介质。
背景技术
随着工业上传感器、工业总线等技术不断进步,使得产品自动视觉检测所需处理的数据量越来越大,对视频处理算法的处理速度要求也越来越高。FPGA(FieldProgrammable Gate Array,现场可编程逻辑门阵列)在计算速度、延时和功耗等方面优于通用处理器,但是由于硬件体系架构和开发工具的限制,使得基于FPGA的算法设计周期相比传统通用处理器长很多,很难适应快速变化的产品制造场景。
基于FPGA进行视频处理算法开发的过程中,需要进行仿真验证,仿真验证的环节能够充分验证算法的正确性、运行速度,因而,仿真的效率对整体算法开发的效率影响很大。目前,为了实现视觉算法在FPGA上的高效仿真,都需要开发者自行定制仿真工具,但定制工具实现复杂,使用门槛较高,开发效率较低。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请提出一种视频处理算法仿真方法、系统、装置及存储介质。
第一方面,本申请实施例提供了一种视频处理算法仿真方法,所述方法应用于基于Python语言编写的第一模块,所述方法包括:以图像帧为单位,通过摄像头获取视频流;将所述图像帧转换为第一文本文件,并将所述第一文本文件写入通信通道中的原始图像文件;当所述第一文本文件被写入所述原始图像文件,更新所述通信通道中的视频状态通信文件;完成对所述视频状态通信文件的更新后,定时访问所述视频状态通信文件;当所述视频状态通信文件被第二模块更新,根据更新后的所述视频状态通信文件在处理后图像文件中读取第二文本文件;将所述第二文本文件转换为第二仿真图像帧,完成当前所述图像帧的仿真。
可选地,所述方法还包括:对所述图像帧进行第一图像处理,获得第一仿真图像帧;根据所述第一仿真图像帧和所述第二仿真图像帧,确定性能评估参数。
可选地,所述性能评估参数包括处理加速比和处理准确率,所述根据所述第一仿真图像帧和所述第二仿真图像帧,确定性能评估参数,包括:根据所述第一图像处理的时间和所述第二图像处理的时间,确定所述处理加速比;根据所述图像帧的像素数、所述第一仿真图像帧的像素数以及所述第二仿真图像的像素数,确定所述处理准确率。
可选地,所述当所述视频状态通信文件被第二模块更新,根据更新后的所述视频状态通信文件在处理后图像文件中查询第二文本文件,包括:当查询确定所述视频状态通信文件中出现新增的图像序号,确定所述视频状态通信文件已被所述第二模块更新;根据新增的所述图像序号,在所述处理后图像文件中读取所述第二文本文件。
可选地,所述方法还包括:获取缓冲管理值;当所述缓冲管理值超出预设的缓冲管理阈值,将当前的忙碌缓冲池管理切换到空闲缓冲池管理,并将所述忙碌缓冲池中的内容持久化到大容量低速介质中;其中,所述缓冲管理值包括内存文件的系统占用率和当前图像帧的读写时长中的至少一项。
第二方面,本申请实施例提供了另一种视频处理算法仿真方法,所述方法应用于基于Vivado的第二模块,所述方法包括:定时访问通信通道中的视频状态通信文件;当所述视频状态通信文件被第一模块更新,根据所述视频状态通信文件,在通信通道中的原始图像文件内读取所述第一文本文件;将所述第一文本文件转换为所述图像帧;对所述图像帧进行第二图像处理;将完成图像处理的所述图像帧转换为第二文本文件;将所述第二文本文件写入所述通信通道中的处理后图像文件,并更新所述视频状态通信文件;返回定时访问视频状态通信文件这一步骤。
可选地,在将所述第一文本文件转换为所述图像帧这一步骤之后,所述方法还包括:对所述图像帧进行图像时钟域转换;对完成所述图像时钟域转换后的所述图像帧进行图像格式转换;将所述图像帧缓存到BRAM中。
第三方面,本申请实施例提供了一种视频处理算法仿真系统,所述系统包括基于Python语言编写的第一模块、通信通道和基于Vivado的第二模块;所述第一模块用于以图像帧为单位,通过摄像头获取视频流;将所述图像帧转换为第一文本文件,并将所述第一文本文件写入通信通道中的原始图像文件;当所述第一文本文件被写入所述原始图像文件,更新所述通信通道中的视频状态通信文件;完成对所述视频状态通信文件的更新后,定时访问所述视频状态通信文件;当所述视频状态通信文件被第二模块更新,根据更新后的所述视频状态通信文件在处理后图像文件中读取第二文本文件;将所述第二文本文件转换为第二仿真图像帧,完成当前所述图像帧的仿真;所述通信通道用于将所述第一模块的内容传输到所述第二模块,并用于将所述第二模块的内容传输到所述第一模块;所述第二模块用于定时访问通信通道中的视频状态通信文件;当所述视频状态通信文件被第一模块更新,根据所述视频状态通信文件在原始图像文件中读取所述第一文本文件;将所述第一文本文件转换为所述图像帧;对所述图像帧进行第二图像处理;将完成图像处理的所述图像帧转换为第二文本文件,并将所述第二文本文件写入处理后图像文件;在所述第二文本文件写入所述处理后图像文件后,返回定时访问视频状态通信文件这一步骤。
第四方面,本申请实施例提供了一种视频处理算法仿真装置,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述的视频处理算法仿真方法。
第五方面,本申请实施例提供了一种计算机存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由所述处理器执行时用于实现上述的视频处理算法仿真方法。
本申请实施例的有益效果如下:首先是第一模块以图像帧为单位,通过摄像头获取视频流;然后将图像帧转换为第一文本文件,并将第一文本文件写入通信通道中的原始图像文件;当第一文本文件被写入原始图像文件,第一模块更新通信通道中的视频状态通信文件,并在完成对视频状态通信文件的更新后,定时访问视频状态通信文件。当第一模块发现视频状态通信文件被第二模块更新,则根据更新后的视频状态通信文件在处理后图像文件中读取第二文本文件;然后将第二文本文件转换为第二仿真图像帧,完成当前图像帧的仿真。本申请提出的视频处理算法仿真方法开发难度低,开发周期较短,并且能够实现准实时的视频流仿真,有助于提高基于FPGA视频处理算法的开发效率。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是本申请实施例提供的视频处理算法仿真系统的第一示意图;
图2为本申请实施例提供的视频处理算法仿真的第一步骤流程图;
图3为本申请实施例提供的视频处理算法仿真的第二步骤流程图;
图4是本申请实施例提供的视频处理算法仿真系统的第二示意图;
图5为本申请实施例提供的视频处理算法仿真装置的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
下面结合附图,对本申请实施例作进一步阐述。
参考图1,图1是本申请实施例提供的视频处理算法仿真系统的第一示意图,该系统100包括基于Python语言编写的第一模块110、通信通道120和基于Vivado的第二模块130。
第一模块主要用于通过摄像头捕获视频流,并将视频流以图像帧的形式通过通信通道发送到第二模块进行图像处理,并且从通信通道中读取第二模块处理完成的图像帧,通过快速获取图像帧实现准实时的视频流仿真。由于本申请实施例中的第一模块是基于Python语言进行编写,相比起相关技术中的其他编程语言,本申请实施例提出的视频处理算法仿真系统对于开发者的要求更低,开发难度更小,因而能够有效地缩短基于FPGA的视频处理算法的开发设计周期,提高开发效率,令系统能够快速适应变化的产品制造场景。
为了解决相关技术中难以实现视频流的高效仿真的问题,本申请实施例中的系统提出用于仿真系统的准实时异步通信协议,基于该通信协议,通信通道能够实现准实时视频处理仿真。为了实现准实时的视频处理,通信协议需要时刻关注图像帧的处理情况,因此本申请实施例中的准实时异步通信协议的核心在于视频状态通信文件,该视频状态通信文件用于记录图像帧的处理数量、处理顺序(可以以图像序号来体现处理顺序)、存储位置和文件名等等基本信息,也用于记录图像帧处理过程中的相关参数,如图像读取时长、图像处理时长和图像处理状态等等。参照下表1,表1为本申请实施例提出视频状态通信文件的示意表格。如表1所示,由第一模块处理的图像帧一般存储在系统内存中,由第二模块处理的图像帧则存储在BRAM中。
图像序号 文件名 文件存储位置 图像处理状态
1 图像帧A 系统内存 已完成
2 图像帧B BRAM 已完成
... 图像帧C 系统内存 已完成
N 图像帧D BRAM 正在处理
因此,通过定时查询视频状态通信文件,第一模块和第二模块都能够迅速获取对方的图像帧处理进度。当图像处理状态显示“已完成”,则马上对处理完成的图像帧进行读取,从而实现准实时的视频处理。
另外,由于Python语言和Vivado工具不能直接通信,同时为了降低第一模块和第二模块的耦合度,保证系统在仿真需求变更时的灵活性,本申请中的通信通道使用文件读写的方式进行数据通信。文件读写的通信方式会造成一定的延时,但是与相关技术中利用Vivado进行仿真的延时相比,可以忽略不计。并且,使用文件读写的通信方式更有利于中间调试,进一步降低了视频处理算法的开发难度。第一模块和第二模块通过通信通道通信的具体过程将在下文中展开阐述。
对应于第一模块,第二模块则主要用于通过通信通道接收第一模块发送的图像帧,并基于Vivado这一FPGA开发环境,快速完成图像帧的图像处理工作,并将处理完成的图像帧通过通信通道返回第一模块,由第一模块进行图像帧的读取、性能评估等等工作。关于第一模块和第二模块更进一步的模块功能实现,将在下文中结合本申请实施例提出的视频处理算法仿真方法展开阐述。
参照图2,图2为本申请实施例提供的视频处理算法仿真的第一步骤流程图,该方法应用于图1所示的第一模块110,该方法包括但不限于步骤S200-S250:
S200、以图像帧为单位,通过摄像头获取视频流;
具体地,第一模块根据Python编写的算法,驱动摄像头以图像帧为单位捕获当前视频流。
S210、将图像帧转换为第一文本文件,并将第一文本文件写入通信通道中的原始图像文件;
具体地,上述内容提到,本申请中的通信通道根据文件读写的方式进行通信,因此第一模块在获取到图像帧后,需要通过图1中的文件接口模块将图像帧数据转换为文本,得到第一文本文件。每一个第一文本文件对应存储一帧图像帧,以供第二模块进行读取和处理。
当生成第一文本文件后,该第一文本文件会被第一模块写入到通行通道中的原始图像文件中,该原始图像文件相当于一个文件夹,用于存放未经处理的原始图像帧对应的文本文件。S220、当第一文本文件被写入原始图像文件,更新通信通道中的视频状态通信文件;
具体地,为了实现准实时的视流处理,当第一文本文件被写入原始图像文件,第一模块需要对视频状态通信文件进行更新,具体是在如表1所示的视频状态通信文件的表格末尾新增一行,用于记录当前的第一文本文件的具体信息。
S230、完成对视频状态通信文件的更新后,定时访问视频状态通信文件;
具体地,当第一模块将第一文本文件写入原始图像文件,且完成对视频状态通信文件的更新后,则第一模块再次启动定时器,定时查询视频状态通信文件的更新状态。
S240、当视频状态通信文件被第二模块更新,根据更新后的视频状态通信文件在处理后图像文件中读取第二文本文件;
具体地,当视频状态通信文件被第二模块更新,说明当前图像帧已经在第二模块中处理完毕,并以文本文件的方式写入了处理后图像文件中。类似原始图像文件,处理后图像文件也可以视作一个存放经过第二模块处理后的图像帧所对应的文本文件,处理后图像文件中的文本文件称为第二文本文件。因此,当视频状态通信文件被第二模块更新,第一模块可以根据更新的视频状态通信文件,由文件接口模块在处理后图像文件中查询并读取对应的第二文本文件。例如,当第一模块查询确定视频状态通信文件中出现新增的图像序号,则可以确定视频状态通信文件已被第二模块更新,然后第一模块根据新增的图像序号,在处理后图像文件中读取对应的第二文本文件。
可以理解的是,当用户的需求不同,第一模块和第二模块中处理图像帧的数据格式可能会有所不同,在第一模块读取到第二文本文件后,可以通过文件接口模块对图像帧进行文本位宽的更改,例如更改为8位、24位、32位等等。
S250、将第二文本文件转换为第二仿真图像帧,完成当前图像帧的仿真;
具体地,读取到第二文本文件之后,第一模块将其转换得到仿真图像帧,该仿真图像帧称为第二仿真图像帧。获得仿真图像帧后,第一模块可以根据视频显示模块对第二仿真图像帧进行显示,也可以对该第二仿真图像帧作其他处理,至此,当前的图像帧对应的仿真流程完成。
可以理解的是,于此同时,第一模块还可以通过摄像头不断获取新的图像帧,并传输到第二模块进行进一步的图像处理。
在一些实施例中,为了对第二模块的图像处理算法的性能进行评估,用户可以通过本申请实施例提出的视频处理算法仿真系统提供的接口,对需要进行评估的性能评估参数以及对应的评估方法进行定义。例如,本申请提出的系统可以对同一图像处理算法在FPGA侧(即第二模块一侧)实现和在CPU侧(即第一模块一侧)上实现的加速比和图像处理准确度进行评价,也就是说性能评估参数可以包括处理加速比和处理准确率。当图像处理算法在第一模块实现,也就是在第一模块对图像帧进行第一图像处理,可以获得CPU处理的第一方阵图像帧,通过第一仿真图像帧和第二仿真图像帧的对比,可以确定性能评估参数。
例如,处理加速比的评价公式如下:
Figure BDA0003517601440000061
其中,P为加速比,TCPU为图像处理算法在CPU上运行的时间,TFPGA为FPGA上同一图像处理算法的运行的时间。
又例如,在设计基于FPGA的图像处理算法时,算法的运行速度和FPGA芯片的资源占用率是算法设计的重要性能指标,通常通过近似计算等方法来提升这些指标。但是,这些方法的代价是算法的计算精度会降低,而降低计算精度会影响图像处理质量。因此,需要对FPGA一侧图像处理算法的处理准确率进行评价。处理准确率的评价公式如下:
Figure BDA0003517601440000071
其中,R为图像处理准确率,M为图像总的像素数量,为FPGA上算法处理的图像像素点数据值,为CPU上算法处理的图像像素点数据值。用户可以根据自己的实际需要制定R的阈值,从而判断是否达到了图像处理的质量要求。
当性能评估参数计算完毕,则可以在第一模块一侧对这些参数进行存储,又或者是通过表格、图形等方式进行展示,使用户能够获得更加直观的算法性能评价结果。
通过步骤S200-S250,本申请实施例从基于Python语言编写的第一模块的角度出发,阐述了一种基于FPGA的视频处理算法仿真方法,首先是第一模块以图像帧为单位,通过摄像头获取视频流;然后将图像帧转换为第一文本文件,并将第一文本文件写入通信通道中的原始图像文件;当第一文本文件被写入原始图像文件,第一模块更新通信通道中的视频状态通信文件,并在完成对视频状态通信文件的更新后,定时访问视频状态通信文件。当第一模块发现视频状态通信文件被第二模块更新,则根据更新后的视频状态通信文件在处理后图像文件中读取第二文本文件;然后将第二文本文件转换为第二仿真图像帧,完成当前图像帧的仿真。
上述内容从第一模块的角度阐述了本申请实施例提出的视频处理算法仿真方法,下面从基于Vivado的第二模块的角度对该视频处理算法仿真方法展开阐述。
参照图3,图3为本申请实施例提供的视频处理算法仿真的第二步骤流程图,该方法应用于图1所示的第二模块130,该方法包括但不限于步骤S300-S360:
S300、定时访问通信通道中的视频状态通信文件;
具体地,为了实现准实时的视频流处理,在通信开始时,第二模块即启动定时器,定时访问视频状态通信文件,以便及时接收第一模块发送的文本文件。
S310、当视频状态通信文件被第一模块更新,根据视频状态通信文件在原始图像文件中读取第一文本文件;
具体地,当视频状态通信文件被第一模块更新,则第二模块则根据视频状态通信文件中对应当前图像帧的文件名、文件位置等等信息,通过文件接口模块从原始图像文件中读取当前图像帧对应的第一文本文件。
S320、将第一文本文件转换为图像帧;
具体地,将读取到的第一文本文件转换为当前图像处理流程中所需要的图像帧。
在本申请实施例中,由第二模块中的视频捕获模拟模块来获取图像帧,该模块的功能主要包括对图像帧进行图像时钟域转换、对完成图像时钟域转换后的图像帧进行图像格式转换,以及将图像帧缓存到BRAM中。
首先是图像时钟域转换,由于在实际算法运行过程中,FPGA的时钟频率与图像处理系统中其他部分的不同,因此需要对图像数据流进行跨时钟域转换,本申请一般通过双时钟FIFO实现次功能。
再者,为了匹配FPGA一侧的处理能力和带宽,可以根据需要转换图像格式,图像格式涉及图像位宽(8位、16位、24位、32位等)和色彩通道(灰度图像为单通道、彩色图像为3通道、红外图像为4通道等)等内容。
另外,文件接口模块读出来的数据需要现在FPGA芯片本地缓存,基于Xilinx FPGA芯片的架构特点,视频捕获模拟模块通过BRAM实现图像缓存,通过参数化设计,可以根据实际处理图像分辨率缓存不同尺寸的图像帧。
S330、对图像帧进行第二图像处理;
具体地,在本申请实施例中,第二模块中的图像处理算法模块属于一个空的打包器,负责不同图像处理算法模块的接口匹配。用户可以直接在其中放置自己所设计的源代码,也可以将所设计代码生成IP之后,使用图像处理算法模块打包。因此,除了支持Verilog、VHDL等集成在Vivado环境的硬件描述语言外,本申请实施例提出的系统也支持使用Xilinx HLS工具基于C/C++等语言设计的图像处理算法仿真,只要通过HLS工具将C/C++源代码打包成IP再集成进本形同进行仿真就可以。
因此,根据用户预设的图像处理算法,对图像帧进行第二图像处理,并得到完成图像处理后的图像帧。
S340、将完成图像处理的图像帧转换为第二文本文件,并将第二文本文件写入处理后图像文件;
具体地,当图像帧在第二模块中完成图像处理,则需要将处理好的图像帧传输回到第一模块中进行读取、展示。因此,将完成图像处理的图像帧转换为第二文本文件,以便通过通信通道进行传输。
S350、将第二文本文件写入处理后图像文件,并更新视频状态通信文件;
具体地,第二模块将当前处理完成的图像帧所对应的第二文本文件写入通信通道中的处理后图像文件中,并且对应更新视频状态通信文件,以便第一模块在下一次查询时能够将当前的第二文本文件读出。
S360、返回定时访问视频状态通信文件这一步骤。
具体地,完成一帧图像帧的读取、处理、传输过程后,第二模块再次启动定时器,定时访问视频状态通信文件,以确定及时读取到存在原始图像文件中的最新的第一文本文件。
通过步骤S300-S360,本申请实施例从基于Vivado的第二模块的角度对该视频处理算法仿真方法展开阐述,首先是第二模块定时访问通信通道中的视频状态通信文件;当视频状态通信文件被第一模块更新,根据视频状态通信文件,在通信通道中的原始图像文件内读取第一文本文件;然后第二模块将第一文本文件转换为图像帧,并对图像帧进行第二图像处理;处理完成后,第二模块将完成图像处理的图像帧转换为第二文本文件;并将第二文本文件写入通信通道中的处理后图像文件,更新视频状态通信文件,然后第二模块返回定时访问视频状态通信文件这一步骤,等待进行下一个图像帧的处理。
通过视频处理算法仿真方法以及系统,本申请实施例能够实现准实时的视频流仿真处理。当单帧图像帧的仿真时长较长时,处于通信信道中的缓冲区可能会因存储空间不足而溢出,又或者是缓冲区占用率较高,导致文件仿真速度降低,从而影响仿真速度。
因此,在本申请实施例中,位于第一模块和第二模块中的文件接口模块还具有通信信道缓冲区管理的功能。在一些实施例中,由于视频属于流媒体,系统可以定期将时间较早的文件进行删除,从而为新的文件腾出空间,减少缓冲区的占用率对文件仿真速度的影响。在另一些实施例中,可以使用乒乓缓冲池配合大容量磁盘介质来对缓冲池进行管理。乒乓缓冲池是指若当前缓冲池的负担过重,则将当前工作的缓冲池替换为另一个较为空闲的缓冲池继续工作,由此分担通信信道中缓冲区的内存压力。以第一模块中的文件接口模块为例,首先文件接口模块获取缓冲池的缓冲管理值,该预设的缓冲管理值包括但不限于内存文件的系统占用率和当前图像帧的读写时长中的至少一项。当缓冲管理值超出预设的缓冲管理阈值,例如当系统占用率超出预设的占有率阈值,或者是当前图像帧的读写时长超过了预设的时长阈值,则将当前的忙碌缓冲池管理切换到空闲缓冲池管理,并将忙碌缓冲池中的内容持久化到大容量低速介质中。
参考图4,图4是本申请实施例提供的视频处理算法仿真系统的第二示意图,下面结合图4,综述本申请实施例所提出的视频处理算法仿真方法。
如图4所示,首先,通信开始后,Vivado侧(也就是第二模块一侧)的通信控制模块首先启动查询定时器,定时查询该视频状态通信文件,等待该文件状态更新。Python侧(也就是第一模块一侧)的通信控制模块在准备好数据后,发起通信:首先,Python侧摄像头获取到视频帧,通过视频流控制模块转换为第一文本文件,并将该第一文本文件写入原始图像文件,并更新视频状态通信文件。然后Python侧启动查询定时器,定时查询该视频状态通信文件,等待状态更新。Vivado侧查询到视频状态通信文件更新后,获取更新内容,由通信控制模块通知文件接口模块获取第一文本文件,并将第一文本文件交由视频捕获模拟、视频处理算法模块和视频时序模拟等模块进行处理。处理完成之后,通过文件接口将第二文本文件传入处理后图像,通信控制模块更新视频状态通信文件中正在处理的文件记录状态,同时启动查询定时器。Python侧获取状态更新后,通知数文件接口接收数据,完成本次通信。由Vivado侧处理得到的第二仿真图像帧和由Python侧处理得到的第一仿真图像帧可以通过经由图像对比模块和性能评价算法模块进行处理,得到性能评估参数,并将性能评估结果在Python侧进行展示。
参考图5,图5为本申请实施例提供的视频处理算法仿真装置的示意图,该装置500包括至少一个处理器510,还包括至少一个存储器520,用于存储至少一个程序;图5中以一个处理器及一个存储器为例。
处理器和存储器可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本申请实施例还公开了一种计算机存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于实现本申请提出的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.一种视频处理算法仿真方法,其特征在于,所述方法应用于基于Python语言编写的第一模块,所述方法包括:
以图像帧为单位,通过摄像头获取视频流;
将所述图像帧转换为第一文本文件,并将所述第一文本文件写入通信通道中的原始图像文件;
当所述第一文本文件被写入所述原始图像文件,更新所述通信通道中的视频状态通信文件;
完成对所述视频状态通信文件的更新后,定时访问所述视频状态通信文件;
当所述视频状态通信文件被第二模块更新,根据更新后的所述视频状态通信文件在处理后图像文件中读取第二文本文件;
将所述第二文本文件转换为第二仿真图像帧,完成当前所述图像帧的仿真;
其中,所述第一模块在将所述第一文本文件写入原始图像文件并更新通道中的视频状态通信文件后,由第二模块定时访问所述视频状态通信文件,由所述第二模块读取第一文本文件,并在将所述第一文本文件转换为图像帧后对图像帧进行第二图像处理,最后将处理完的图像帧转换为第二文本文件后由第二模块将所述第二文本文件写入通信通道中的处理后图像文件,并更新视频状态通信文件。
2.根据权利要求1所述的视频处理算法仿真方法,其特征在于,所述方法还包括:
对所述图像帧进行第一图像处理,获得第一仿真图像帧;
根据所述第一仿真图像帧和所述第二仿真图像帧,确定性能评估参数。
3.根据权利要求2所述的视频处理算法仿真方法,其特征在于,所述性能评估参数包括处理加速比和处理准确率,所述根据所述第一仿真图像帧和所述第二仿真图像帧,确定性能评估参数,包括:
根据所述第一图像处理的时间和所述第二图像处理的时间,确定所述处理加速比;
根据所述图像帧的像素数、所述第一仿真图像帧的像素数以及所述第二仿真图像的像素数,确定所述处理准确率。
4.根据权利要求1所述的视频处理算法仿真方法,其特征在于,所述当所述视频状态通信文件被第二模块更新,根据更新后的所述视频状态通信文件在处理后图像文件中查询第二文本文件,包括:
当查询确定所述视频状态通信文件中出现新增的图像序号,确定所述视频状态通信文件已被所述第二模块更新;
根据新增的所述图像序号,在所述处理后图像文件中读取所述第二文本文件。
5.根据权利要求1所述的视频处理算法仿真方法,其特征在于,所述方法还包括:
获取缓冲管理值;
当所述缓冲管理值超出预设的缓冲管理阈值,将当前的忙碌缓冲池管理切换到空闲缓冲池管理,并将所述忙碌缓冲池中的内容持久化到大容量低速介质中;
其中,所述缓冲管理值包括内存文件的系统占用率和当前图像帧的读写时长中的至少一项。
6.一种视频处理算法仿真方法,其特征在于,所述方法应用于基于Vivado的第二模块,所述方法包括:
定时访问通信通道中的视频状态通信文件;
当所述视频状态通信文件被第一模块更新,根据所述视频状态通信文件,在通信通道中的原始图像文件内读取第一文本文件;
将所述第一文本文件转换为所述图像帧;
对所述图像帧进行第二图像处理;
将完成图像处理的所述图像帧转换为第二文本文件;
将所述第二文本文件写入所述通信通道中的处理后图像文件,并更新所述视频状态通信文件;
返回定时访问视频状态通信文件这一步骤;
其中,所述第一模块是基于Python语言编写的,用于以图像帧为单元,通过摄像头获取视频流,将所述图像帧转换为第一文本文件,并将所述第一文本文件写入通信通道的原始图像文件中,以更新通信信道中的视频状态通信文件。
7.根据权利要求6所述的视频处理算法仿真方法,其特征在于,在将所述第一文本文件转换为所述图像帧这一步骤之后,所述方法还包括:
对所述图像帧进行图像时钟域转换;
对完成所述图像时钟域转换后的所述图像帧进行图像格式转换;
将所述图像帧缓存到BRAM中。
8.一种视频处理算法仿真系统,其特征在于,所述系统包括基于Python语言编写的第一模块、通信通道和基于Vivado的第二模块;
所述第一模块用于以图像帧为单位,通过摄像头获取视频流;将所述图像帧转换为第一文本文件,并将所述第一文本文件写入通信通道中的原始图像文件;当所述第一文本文件被写入所述原始图像文件,更新所述通信通道中的视频状态通信文件;完成对所述视频状态通信文件的更新后,定时访问所述视频状态通信文件;当所述视频状态通信文件被第二模块更新,根据更新后的所述视频状态通信文件在处理后图像文件中读取第二文本文件;将所述第二文本文件转换为第二仿真图像帧,完成当前所述图像帧的仿真;
所述通信通道用于将所述第一模块的内容传输到所述第二模块,并用于将所述第二模块的内容传输到所述第一模块;
所述第二模块用于定时访问通信通道中的视频状态通信文件;当所述视频状态通信文件被第一模块更新,根据所述视频状态通信文件在原始图像文件中读取所述第一文本文件;将所述第一文本文件转换为所述图像帧;对所述图像帧进行第二图像处理;将完成图像处理的所述图像帧转换为第二文本文件,并将所述第二文本文件写入处理后图像文件;在所述第二文本文件写入所述处理后图像文件后,返回定时访问视频状态通信文件这一步骤。
9.一种视频处理算法仿真装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-7中任一项所述的视频处理算法仿真方法。
10.一种计算机存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由所述处理器执行时用于实现如权利要求1-7任一项所述的视频处理算法仿真方法。
CN202210168564.0A 2022-02-23 2022-02-23 视频处理算法仿真方法、系统、装置及存储介质 Active CN114567773B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210168564.0A CN114567773B (zh) 2022-02-23 2022-02-23 视频处理算法仿真方法、系统、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210168564.0A CN114567773B (zh) 2022-02-23 2022-02-23 视频处理算法仿真方法、系统、装置及存储介质

Publications (2)

Publication Number Publication Date
CN114567773A CN114567773A (zh) 2022-05-31
CN114567773B true CN114567773B (zh) 2023-03-24

Family

ID=81714680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210168564.0A Active CN114567773B (zh) 2022-02-23 2022-02-23 视频处理算法仿真方法、系统、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114567773B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112449139A (zh) * 2020-11-12 2021-03-05 北京环境特性研究所 一种视频处理和视频信号模拟仿真输出系统及方法
WO2022027931A1 (zh) * 2020-08-07 2022-02-10 东南大学 基于视频图像的运动车辆前景检测方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760034B2 (en) * 2001-10-30 2004-07-06 Emagin Corporation Three dimensional display emulation method and system
US8094234B2 (en) * 2008-10-14 2012-01-10 Texas Instruments Incorporated System and method for multistage frame rate conversion
JP5678743B2 (ja) * 2011-03-14 2015-03-04 富士通株式会社 情報処理装置、画像送信プログラム、画像送信方法および画像表示方法
JP2014176004A (ja) * 2013-03-12 2014-09-22 Canon Inc 撮像装置及び画像処理方法
US10884772B1 (en) * 2019-05-31 2021-01-05 Cadence Design Systems, Inc. Method and system for emulating an image processing system
CN113835360A (zh) * 2021-09-15 2021-12-24 中国人民解放军96901部队23分队 一种基于误差分析的复合引信定高精度仿真评估方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022027931A1 (zh) * 2020-08-07 2022-02-10 东南大学 基于视频图像的运动车辆前景检测方法
CN112449139A (zh) * 2020-11-12 2021-03-05 北京环境特性研究所 一种视频处理和视频信号模拟仿真输出系统及方法

Also Published As

Publication number Publication date
CN114567773A (zh) 2022-05-31

Similar Documents

Publication Publication Date Title
CN109871510B (zh) 二维卷积运算处理方法、系统、设备及计算机存储介质
WO2019227724A1 (zh) 数据读写方法、装置以及环形队列
CN108174276B (zh) 一种弹幕显示方法及显示装置
JP4991816B2 (ja) 画像処理装置
CN107155093B (zh) 一种视频预览方法、装置及设备
CN108377394B (zh) 视频编码器的图像数据读取方法、计算机装置及计算机可读存储介质
CN111314640B (zh) 一种视频压缩方法、设备以及介质
CN110073653A (zh) 视频图像数据传输方法、系统、存储介质及程序产品
WO2019076344A1 (zh) 编码单元的参考块选择方法、装置、电子设备及存储介质
CN111970518B (zh) 一种图像丢帧处理方法、系统、设备及计算机存储介质
CN114567773B (zh) 视频处理算法仿真方法、系统、装置及存储介质
CN112235598B (zh) 一种视频结构化处理方法、装置及终端设备
CN117149777B (zh) 一种数据查询方法、装置、设备及存储介质
CN114466196A (zh) 视频数据处理方法、系统、装置及计算机可读存储介质
CN114356243A (zh) 数据处理方法、装置及服务器
CN111857868A (zh) 证券数据的读写方法、装置、设备及计算机可读存储介质
CN115238659A (zh) 一种报表数据处理方法和装置
CN112637602B (zh) 一种jpeg接口及数字图像处理系统
CN115600024A (zh) 一种数据播放方法、装置、存储介质及电子设备
CN103414938A (zh) 数字电视一体机内部通讯的控制方法及数字电视一体机
CN105684423A (zh) 一种监控系统中的图像管理方法及系统
CN106603730B (zh) 一种用于云平台的实时监控方法及其装置
CN113473084A (zh) 数据发送方法、数据接收方法及相关终端和存储介质
KR102585604B1 (ko) 이미지 동기화 방법 및 장치, 기기, 컴퓨터 저장 매체
US20210182656A1 (en) Arithmetic processing device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant