一种超大序列图像传输方法、装置以及计算机与流程

文档序号:29809321发布日期:2022-04-27 02:28阅读:90来源:国知局
一种超大序列图像传输方法、装置以及计算机与流程

1.本发明涉及图像传输技术领域,具体涉及一种超大序列图像传输方法、装置以及计算机。


背景技术:

2.传统的超大序列图像传输方法是将文件数据读入内存,然后再进行图像输出。这种情况下,设备的内存限制了文件的大小。同时图像初始输出需等到文件全部读入内存后才开始,延迟较大,同时在输出的过程中,设备的内存使用情况可能影响到输出稳定性。


技术实现要素:

3.为了解决传统的超大序列图像传输方法中,设备的内存限制了传输文件的大小的技术问题,本发明提供一种超大序列图像传输方法、装置以及计算机。
4.本发明解决上述技术问题的技术方案如下:一种超大序列图像传输方法,包括如下步骤,
5.步骤一、选择图像序列文件;
6.步骤二、计算所述图像序列文件中的每一单帧图像数据大小;
7.步骤三、在内存中建立多个固定大小的存储空间,每个所述存储空间容量均等于所述图像序列文件中的单帧图像数据的大小;
8.步骤四、将所述图像序列文件中的连续多个单帧图像数据分别读入多个所述存储空间;
9.步骤五、将多个所述存储空间内的单帧图像数据依次显示输出;
10.步骤六、释放显示输出之后的所述单帧图像数据所在的所述存储空间;并等待新的单帧图像数据读入;
11.步骤七、重复所述步骤四至所述步骤六,直至所述图像序列文件中的所有单帧图像数据全部显示输出。
12.本发明的有益效果是:本发明通过建立多个存储空间,将需要占据极大空间的超大图像序列文件的单帧图像数据读入多个存储空间内,并将多个存储空间内的单帧图像数据显示输出之后,释放其存储空间,继续进行新的单帧图像数据读入,采用固定的循环读取方式,使得图像序列文件大小不再受限制,同时对内存的要求不再随着图像序列文件的变大而增加。其存储空间为固定大小的存储空间,图像序列文件未显示完之前,每次读取无需进行存储空间的创建,降低cpu计算工作量。
13.在上述技术方案的基础上,本发明还可以做如下改进。
14.进一步,所述步骤四具体为,采用多线程循环读取法,直接将所述图像序列文件中的连续多个单帧图像数据读入内存中的所述存储空间。
15.采用上述进一步方案的有益效果是,通过采用多线程读取以及循环读取使得读取稳定性提高。
16.进一步,所述多线程循环读取法具体为,采用多条线程分别对连续多个单帧图像数据进行读取;每条线程完成对一单帧图像数据的读取之后,直接读取下一个待读取的单帧图像数据。
17.进一步,所述步骤二具体为,根据所述单帧图像数据的长、宽以及图像格式计算出所述单帧图像数据的大小。
18.基于上述一种超大序列图像传输方法,本发明还提供一种超大序列图像传输装置。
19.一种超大序列图像传输装置,包括,
20.文件存储模块,用于存储图像序列文件;
21.文件读取模块,用于计算所述图像序列文件中每一单帧图像数据大小,并在内存中建立多个固定大小的存储空间,每个所述存储空间容量均等于所述图像序列文件中的单帧图像数据的大小,将所述图像序列文件中的连续多个单帧图像数据分别读入多个所述存储空间;
22.序列显示模块,将多个所述存储空间内的单帧图像数据依次显示输出;
23.所述文件读取模块还用于释放显示输出之后的所述单帧图像数据占据的所述存储空间,并读入下一轮连续多个单帧图像数据。
24.进一步,所述文件读取模块具体用于,用于计算所述图像序列文件中每一单帧图像数据大小,并在内存中建立多个固定大小的存储空间,每个所述存储空间容量均等于所述图像序列文件中的单帧图像数据的大小;采用多线程循环读取法,跳过读入缓存操作,直接将所述图像序列文件中的连续多个单帧图像数据读入内存中的所述存储空间;并在释放显示输出之后的所述单帧图像数据所在的所述存储空间之后,读入下一轮连续多个单帧图像数据。
25.基于上述一种超大序列图像传输方法,本发明还提供一种计算机。
26.一种计算机,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述超大序列图像传输方法。
附图说明
27.图1为本发明的流程框图;
28.图2为本发明的结构示意图;
29.图3为图像读取方法示意图;
30.图4为序列图像显示与内存释放方法示意图。
具体实施方式
31.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
32.实施例一
33.如图1所示,本实施例提供一种超大序列图像传输方法,具体步骤如下:
34.步骤一、选择图像序列文件;
35.步骤二、根据所述单帧图像数据的长、宽以及图像格式计算所述图像序列文件中
的每一单帧图像数据大小;
36.步骤三、根据所述单帧图像数据大小,在内存中建立100个固定大小的存储空间;每个所述存储空间容量均等于所述图像序列文件中的单帧图像数据的大小;
37.步骤四、将所述图像序列文件中的多个单帧图像数据分别读入100个所述存储空间;具体地,采用多线程循环读取法,跳过读入缓存操作,直接将所述图像序列文件中的连续多个单帧图像数据读入内存中的所述存储空间;所述多线程循环读取法具体为,采用多条线程分别对连续多个单帧图像数据进行读取;每条线程完成对一单帧图像数据的读取之后,直接读取下一个待读取的单帧图像数据;
38.步骤五、将100个所述存储空间内的单帧图像数据依次显示输出;
39.步骤六、释放显示输出之后的所述单帧图像数据占据的所述存储空间;并等待新的单帧图像数据读入;
40.步骤七、重复所述步骤四至步骤七,直至所述图像序列文件中的所有单帧图像数据全部显示输出。
41.本发明通过建立多个存储空间,将需要占据极大空间的超大图像序列文件的单帧图像数据读入多个存储空间内,并将多个存储空间内的单帧图像数据显示输出之后,释放其存储空间,继续进行新的单帧图像数据读入,采用固定的循环读取使得图像序列文件大小不再受限制,同时对内存的要求不再随着图像序列文件的变大而增加。
42.实施例二
43.如图2所示,本实施例提供一种超大序列图像传输装置,其具体方案如下,该传输方法涉及如下几个模块:文件存储模块、文件读取模块、文件输出模块。
44.具体地,文件存储模块用于存储超大序列图像文件;
45.文件读取模块包含文件分块模块和多线程循环读取模块。主要步骤如下:
46.步骤1:从文件存储模块选择要输出的超大序列图像文件,获取超大序列图像文件中单帧图像文件的长、宽,以及超大序列图像文件的数据格式,根据超大序列图像文件的长、宽以及数据格式,计算出单帧图像在存储中占据的空间大小即datasize。
47.步骤2:在内存中开辟100个固定大小的存储空间。分块模块将图像序列文件按帧大小分块,即分成多个单帧图像文件;多线程循环读取模块将单帧图像文件进行快速读取。其快速读取方法是将图像序列文件的帧数据包跳过读入缓存,直接将帧数据包读入内存,减少了程序执行过程中的数据拷贝过程,提高了cpu的运行效率,这里的帧数据包为图像序列文件分成多块之后形成的多个单帧图像文件中的一个。
48.步骤3:为保证读取的稳定性,采用多线程方法,对图像序列进行循环读取;具体方法如图3所示,第1帧数据采用线程1,进行读取,第2帧数据采用线程2进行读取:第1帧数据读取完成之后,线程1继续读取第3帧数据,第2帧数据读取完成之后,线程2继续读取第4帧数据。
49.步骤4:帧数据包读入内存后,序列显示模块直接从内存中获取每一帧数据,并显示输出。当显示输出后,内存中该帧数据所占空间将释放,等待下一帧数据填充。
50.如图4所示,序列显示模块从开辟的内存空间中获取填充的帧数据,并显示输出,同时通知文件读取模块,文件读取模块将已经显示输出的该帧数据所在的存储空间清空,已经清空的存储空间继续读入下一帧数据。
51.具体地,在内存中开辟100个固定大小的存储空间,每个存储空间至少能够存储一帧图像数据,文件读取1为当前状态下的内存存储情况,文件读取2为当前帧释放后的情况,计算机程序执行时,序列显示模块显示第88帧数据,第88帧数据所在的存储空间定义为存储空间a;第88帧数据显示输出之后,第88帧数据所在的存储空间被清空;第88帧数据所在的存储空间被清空之后,将后续的第188帧数据读入存储空间a中,以此循环读取,直至该超大序列图像文件完全显示输出。
52.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1