CN113923432B - 视频读取方法、装置、电子设备及存储介质 - Google Patents
视频读取方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113923432B CN113923432B CN202111474863.9A CN202111474863A CN113923432B CN 113923432 B CN113923432 B CN 113923432B CN 202111474863 A CN202111474863 A CN 202111474863A CN 113923432 B CN113923432 B CN 113923432B
- Authority
- CN
- China
- Prior art keywords
- cache block
- video
- cache
- eye
- video frame
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/167—Synchronising or controlling image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/398—Synchronisation thereof; Control thereof
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Controls And Circuits For Display Device (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供视频读取方法、装置、电子设备及存储介质,应用于三维显示技术领域。方法包括:在至少两路视频流同时播放时,获取待播放视频的缓存块编号,其中,至少两路视频流分别对应至少两个缓冲区,至少两个缓冲区中缓存块一一对应,且至少两个缓冲区中相互对应的缓存块有相同缓存块编号;在缓存块地址列表中查询与缓存块编号相对应的每路视频流的缓存块地址;在每路视频流对应的缓冲区中,从每个缓存块地址所指示缓存块中读取视频帧并输出,与单个缓存块编号对应的各缓存块中存储的视频帧的时序相同。这样在对至少两路视频流进行同步处理时,可避免进行大量计算,减少处理复杂度,简化同步处理过程,提高视频同步的实时性和对齐精度。
Description
技术领域
本发明应用于三维显示技术领域,特别是涉及一种视频读取方法、装置、电子设备及存储介质。
背景技术
随着3D(Three Dimensions,三维立体显示)显示技术的日渐成熟,3D显示技术被应用到医疗影像领域,相关的观看3D医疗影像的方式是用户通过佩戴3D内窥镜来实现的。
3D内窥镜的观看原理,是由人的左右眼分别接收按照帧顺序播放的左右眼视频图像,再经过大脑将左右眼视频图像予以合成,产生立体效果。观影时,左右眼需通过3D内窥镜来接收视频图像,以使左眼图像组成的左眼视频流的左眼视频帧只能被左眼接收,右眼图像组成的右眼视频流的右眼视频帧只能被右眼接收。
这样,需要采集左右眼两路上视频图像组成的两路视频流,并完成两路视频流的同步处理后发送给显示器。目前,往往是通过计算视频进度差值或视频片段同步补偿值进行同步处理,由于这两种方法都需要大量的计算,实现起来比较复杂,因此无法满足3D内窥镜影像视频处理实时性上的要求。
发明内容
有鉴于此,本发明实施例提出一种视频读取方法、装置、电子设备及存储介质,用于解决相关技术无法满足3D内窥镜影像视频处理实时性上的要求的技术问题。
本发明第一方面提供一种视频读取方法,所述方法包括:
在至少两路视频流同时播放时,获取待播放视频的缓存块编号,其中,所述至少两路视频流分别对应至少两个缓冲区,所述至少两个缓冲区中的缓存块一一对应,并且所述至少两个缓冲区中相互对应的缓存块具有相同的缓存块编号;
在缓存块地址列表中查询与所述待播放视频帧的缓存块编号相对应的每路所述视频流的缓存块地址;
针对每路视频流,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中读取视频帧并输出,其中,与单个所述缓存块编号相对应的各缓存块中存储的视频帧的时序相同。
依据本发明第二方面,提供一种视频读取装置,所述装置包括:
第一获取模块,用于在至少两路视频流同时播放时,获取待播放视频的缓存块编号,其中,所述至少两路视频流分别对应至少两个缓冲区,所述至少两个缓冲区中的缓存块一一对应,并且所述至少两个缓冲区中相互对应的缓存块具有相同的缓存块编号;
查询模块,用于在缓存块地址列表中查询与所述待播放视频帧的缓存块编号相对应的每路所述视频流的缓存块地址;
读取模块,用于针对每路视频流,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中读取视频帧并输出,其中,与单个所述缓存块编号相对应的各缓存块中存储的视频帧的时序相同。
依据本发明第三方面,提供一种可读存储介质,所述可读存储介质上存储有程序或指令,所述有程序或指令被处理器执行时实现上述第一方面所述的视频读取方法。
依据本发明第四方面,提供一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现上述第一方面所述的视频读取方法。
针对相关技术,本发明具备如下优点:
本发明提供的一种视频读取方法、装置、电子设备及存储介质,在至少两路视频流同时播放时,获取待播放视频的缓存块编号,其中,至少两路视频流分别对应至少两个缓冲区,至少两个缓冲区中的缓存块一一对应,并且至少两个缓冲区中相互对应的缓存块具有相同的缓存块编号。由于与单个缓存块编号相对应的各缓存块中存储的视频帧的时序相同,这样通过获取缓存块编号,就可以直接在缓存块地址列表中查询与该待播放视频帧的缓存块编号相对应的每路视频流的缓存块地址;然后在每个缓存块地址所指示的缓存块中分别进行读取,以完成至少两路视频流的同步处理,得到每路视频流的时序相同的视频帧并输出,因此在对至少两路视频流进行同步处理时,可以避免进行大量的计算,减少了处理复杂度,简化了同步处理过程,提高了视频同步的实时性和对齐精度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技的术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种视频读取方法的步骤流程图;
图2是本发明实施例提供的一种视频读取结构示意图;
图3是本发明实施例提供的一种缓存块地址列表示意图;
图4是本发明实施例提供的另一种视频读取结构示意图;
图5是本发明实施例提供的另一种视频读取方法的步骤流程图;
图6是本发明实施例提供的一种缓存块划分意图;
图7是本发明实施例提供的再一种视频读取方法的步骤流程图;
图8是本发明实施例提供的一种缓存块地址边界示意图;
图9是本发明实施例提供的又一种视频读取方法的步骤流程图;
图10是本发明实施例提供的一种视频读取装置的结构框图;
图11是本发明实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本发明实施例提供的视频读取方法、装置、电子设备及存储介质进行详细地说明。
3D显示技术,是一种新型显示技术,与普通2D画面显示相比,3D技术可以使画面变得立体逼真,图像不再局限于屏幕的平面上,仿佛能够走出屏幕外面,让观众有身临其境的感觉,在眼镜式3D技术中,可以细分出三种主要的类型:色差式、偏光式和主动快门式,其中偏光式3D技术以其较好的图像效果和较低的使用成本,应用最为广泛。
随着新技术的发展,3D显示技术被应用到医疗影像领域,通过医用3D内窥镜采集病人体内图像画面,在监视器、显示屏等显示设备上呈现3D影像,相对于2D影像画面更加逼真,病灶部位观察更加清晰,更有层次感,在提供诊断效率及准确性方面取得显著效果。
偏光式3D是利用光线有“振动方向”的原理来分解原始图像的,先通过把图像分为垂直向偏振光和水平向偏振光两组画面,然后3D眼镜左右分别采用不同偏振方向的偏光镜片,这样人的左右眼就能接收两组画面,再经过大脑合成立体影像。
根据偏光式3D显示技术,需要采集两路视频流,完成视频处理后发送给显示器。由于两路视频采集与处理过程相对独立,相互之间存在一定时间偏差,发送到显示器之前,需要对两路视频完成同步处理,保证时间偏差在要求范围内。
目前常用的视频同步方法有以下两种,一种是比较视频进度差值,通过时间戳来纠正同步偏差;另一种方法是根据视频片段计算同步补偿值,根据同步补偿值,实现两路视频同步。两种方法都需要大量的计算,根据计算结果调整视频同步的偏差,实现起来比较复杂,不适合3D内窥镜影像视频处理实时性上的要求。而且通过上述两种方案,得到视频数据同步结果精度不高,完全依赖于处理的性能,同步效果与视频参数的计算处理时间相关。
为了解决上述问题,本发明提出一种视频读取方法、装置、电子设备及存储介质,解决了相关方案通过周期性计算视频进度差值需要进行大量的计算的问题,可以提高视频同步的实时性,减少处理复杂度,提升视频同步精度。
如图1所示,本发明实施例提供的一种视频读取方法,该方法包括:
步骤S101,获取至少两路视频流。
在本发明实施例中,至少两路视频流可以包括一路主路视频流和至少一路从路视频流,主路视频流可以是从至少两路视频流中随机选取的一路的视频流,而从路视频流可以是除主路视频流之外的其他路的视频流;主路视频流也可以是固定的一路的视频流,而从路视频流可以是除主路视频流之外的其他路的视频流,具体可以根据实际需求确定,此处不做限定。
在本发明实施例中,控制器可以通过采集设备获取至少两路视频流。
示例性地,参见图2所示,通过3D内窥镜的摄像头或镜片等采集设备获取至少两路视频流,控制器通过视频检测模块检测该至少两路视频流的视频帧。
在本发明实施例中,控制器通过视频检测模块检测到的主路视频流的视频帧是主路视频帧,控制器通过视频检测模块检测到的从路视频流的视频帧是从路视频帧。
步骤S102,将至少两路视频流中时序相同的视频帧分别存储在与同一缓存块编号相对应的至少两个缓存块中。
在本发明实施例中,至少两路视频流中时序相同的视频帧是指至少两路视频流中时间戳相同的各路视频流的视频帧,或者指至少两路视频流中接收次序相同的各路视频流的视频帧;即时序相同是指时间戳相同或者指接收次序相同,具体可以根据实际需求确定,此处不做限定。
在本发明实施例中,缓存块是容量、地址区间均已确定的存储区域,容量大小根据采集视频图像的分辨率、色深等来确定,每个缓存块可以存放至少一个视频帧,地址区间是由应用软件开发者划分后,通过应用处理器(Application Processor Unit,APU)将各个缓存块的起始地址和结束地址,下发到缓存块地址列表中,建立缓存块编号与缓存块地址一一对应关系,将缓存块首尾的起始地址和结束地址放入缓存块地址列表,实现缓存块编号与缓存地址的快速转换。每个缓存块设定一个编号,即缓存块编号,缓存块划分如图3所示,可以为缓存块0、缓存块1…缓存块n、缓存块n+1。
值得说明的是,本发明实施例中,所述至少两路视频流可以分别对应至少两个缓冲区,至少两个缓冲区中的缓存块一一对应,其中,至少两个缓冲区中相互对应的缓存块具有相同的缓存块编号。
在本发明实施例中,通过3D内窥镜的摄像头或镜片等采集设备获取至少两路视频流后,控制器通过视频检测模块检测该至少两路视频流的视频帧后,然后将至少两路视频流中时间戳相同或接收次序相同的各路视频流的视频帧分别存储在与同一缓存块编号相对应的至少两个缓存块中。
示例性地,参见图4所示,***上电后,配置文件加载成功,应用处理器(APU)开始正常工作,对缓存管理(主)端和缓存管理(从)端进行初始化配置,将存储器空间划分为至少两个视频数据缓冲区,分别用于至少两路视频数据流的存储,其中至少两路视频流中的主路视频流可以是视频流1,至少两路视频流中的从路视频流可以是视频流2,将视频流1对应的缓存管理模块作为缓存管理(主)端,视频流2对应的缓存管理模块作为缓存管理(从)端;通过3D内窥镜的摄像头或镜片等采集设备获取视频流1和视频流2后,控制器通过视频检测模块检测视频流1和视频流2的视频帧,然后将时间戳相同或接收次序相同的视频帧中的主路视频帧,通过缓存管理(主)端存入到视频流1数据缓冲区,再获取视频流1数据缓冲区中该主路视频帧所存储的缓存块的缓存块编号,将缓存管理(主)端的缓存块编号实时的同步到缓存管理(从)端,保证两个缓存管理模块写操作的缓存块编号相同,使得该缓存管理(从)端将与该主路视频帧时间戳相同或接收次序相同的视频帧中的从路视频帧,存储在视频流2数据缓冲区中的该缓存块编号对应的缓存块中。
步骤S103,在至少两路视频流同时播放时,获取待播放视频的缓存块编号。
在本发明实施例中,待播放视频可以指3D内窥镜影像视频进行同步处理得到的视频,例如:如图4所示的同步视频流1和同步视频流2,具体可以根据实际需求确定,此处不做限定。
在本发明实施例中,在3D内窥镜的显示设备同时播放至少两路视频流时,控制器可以获取待播放视频的缓存块编号。
示例性地,参见图4所示,3D内窥镜影像视频进行同步处理得到的视频包括:同步视频流1和同步视频流2,在3D内窥镜的显示设备同时播放同步视频流1和同步视频流2时,获取存储同步视频流1和同步视频流2的缓存块编号。
步骤S104,在缓存块地址列表中查询与待播放视频帧的缓存块编号相对应的每路视频流的缓存块地址。
在本发明实施例中,为了实现对不同的缓存块的读写操作,应用处理器(APU )需要把每个缓存块的缓存块地址作为初始化参数,配置到缓存块地址列表中,同时建立缓存块编号与缓存块地址包括的起始地址和结束地址的一一映射关系,从而在获取待播放视频的缓存块编号后,控制器可以根据缓存块编号提取该缓存块编号对应的起始地址和结束地址,从而得到与该缓存块编号相对应的每路视频流所存储的缓存块地址。
示例性地,参见图5所示,在获取待播放视频的缓存块编号后,控制器通过地址提取模块,从缓存块地址列表中,提取该待播放视频帧的缓存块编号对应的起始地址和结束地址,以得到与该待播放视频帧的缓存块编号相对应的每路视频流所存储的缓存块地址。
步骤S105,针对每路视频流,在该路视频流对应的缓冲区中,从每个缓存块地址所指示的缓存块中读取视频帧并输出,其中,与单个缓存块编号相对应的各缓存块中存储的视频帧的时序相同。
其中,针对至少两路视频流中的每一者执行S105是同步进行的。
在本发明实施例中,缓存块地址包括起始地址和结束地址。
在本发明实施例中,控制器根据每个缓存块地址所包括的起始地址和结束地址所指示的位置,分别从单个缓存块的起始地址读取到缓存块的结束地址,得到每路视频流的视频帧并输出。
示例性地,参见图2所示,缓存块编号被送入缓存块地址管理的缓存块地址列表中后,控制器提取该缓存块编号对应的起始地址和结束地址;读操作总线时序控制子模块通过仲裁获取接口总线的使用权限,在获取到使用权限后根据该起始地址和结束地址的地址信息,读取该缓存块编号对应的缓存块中存储的视频帧数据并输出。
本发明提供的一种视频读取方法,在至少两路视频流同时播放时,获取待播放视频的缓存块编号;由于与单个缓存块编号相对应的各缓存块中存储的视频帧的时序相同,这样通过获取缓存块编号,就可以直接在缓存块地址列表中查询与该缓存块编号相对应的每路视频流的缓存块地址;然后在每个缓存块地址所指示的缓存块中分别进行读取,以完成至少两路视频流的同步处理,得到每路视频流的时序相同的视频帧并输出,方法采用缓存块编号作为至少两路视频流的同步信号,不需要分析视频流数据的同步偏差,将两路视频流数据视频帧同步转化为缓存读写操作的同步,计算量少;因此在对至少两路视频流进行同步处理时,可以避免进行大量的计算,减少了处理复杂度,简化了同步处理过程,每次读写操作采用同一个缓存块编号控制,不需要进行额外的计算,把处理延迟降到最低,实时性好,从而在同步处理3D内窥镜的两路视频流时,可以提高视频同步的实时性,从而确保可以满足3D内窥镜影像视频处理实时性上的要求,提升了视频同步精度,效果好。
在本发明实施例中,将至少两路视频流同步处理,转换成对缓存块的同步读写操作,去掉了已有方案中复杂的计算,提高了处理的实时性,非常适合在现场可编程门阵列(Field-Programmable Gate Array,FPGA)平台中实现。
如图6所示,本发明实施例提供的一种视频读取方法,该方法包括:
步骤S201,获取至少两路视频流。
该步骤可参照步骤S101的详细描述,此处不再赘述。
步骤S202,至少两路视频流包括主路视频流和从路视频流,将主路视频流的主路视频帧存储在第一缓存块中。
在本发明实施例中,第一缓存块用于存储主路视频流的主路视频帧,第一缓存块位于第一缓冲区中,第一缓冲区与所述缓存管理(主)端相对应,第一缓冲区可以位于第一存储器中。
在本发明实施例中,控制器通过视频检测模块检测到主路视频流的主路视频帧后,将该主路视频帧存储在第一存储器的第一缓存块中。
示例性地,参见图2所示,至少两路视频流中的主路视频流可以是视频流1,第一缓冲区可以是视频流1数据缓冲区。控制器通过视频检测模块检测视频流1的主路视频帧后,将该主路视频帧存储在视频流1数据缓冲区中。
可选地,如图7所示,步骤S202,可以包括:
子步骤S2021,获取当前的可用缓存块编号。
在本发明实施例中,可用缓存块编号是存储器中可以写入数据的缓存块的编号。存储器可以包括第一存储器和第二存储器,在第一存储器中设置第一缓冲区,在第二存储器中设置第二缓冲区,即两路视频流数据的缓冲区采用两个独立的存储器;也可以直接在存储器中设置第一缓冲区和第二缓冲区,即两路视频流数据的缓冲区共用一个存储器,每个缓冲区划分成若干个缓存块,每个缓存块具有一个固定的编号,用于存储至少一个视频帧图像数据。当采用两个独立的存储器时,缓存管理(主)端和缓存管理(从)端视频帧同步读取与两路物理硬件接口的带宽相关,采用相同的芯片及物理硬件接口设计可以最大限度减少缓存管理(主)端和缓存管理(从)端同步偏差;当共用一个存储器时,缓存管理(主)端和缓存管理(从)端两端视频帧读取需要共用一个物理硬件接口(存储器接口),存储器接口物理带宽远高于视频流读取带宽,可以采用时分复用的机制,控制每次读取固定长度数据,切换主从通道,实现存储器接口共用;两种方式均可保证至少两路视频流读取的同步。
在本发明实施例中,控制器依据缓存块编号顺序进行查询,将缓存块编号最靠前且未被占用的空闲缓存块的编号确定为可用缓存块编号,以供本次写入操作进行使用。相应地,所确定的可用缓存块的编号即为本实施例中描述的可用缓存块编号。
示例性地,参见图3所示,每个缓冲区被应用软件开发者划分成若干个缓存块,每个缓存块具有一个固定的缓存块编号,例如:缓存块0、缓存块1…缓存块n、缓存块n+1。参见图2所示,控制器获取可以执行写操作的缓存块的编号作为可用缓存块编号,以便控制器通知写操作总线时序控制子模块提取该可用缓存块编号。
子步骤S2022,在缓存块地址列表中,查找可用缓存块编号对应的写入起始地址。
在本发明实施例中,写入起始地址是指可用缓存块的起始地址,控制器可以根据可用缓存块编号,在缓存块地址列表中,查找该可用缓存块编号对应的起始地址作为写入起始地址。
示例性地,每个缓存块都有一个起始地址和结束地址,这两个地址是缓存块的两个边界,可以是存储芯片的物理地址,也可以是相对地址。缓存管理模块根据起始地址和结束地址可以对某个缓存块进行数据读写操作,缓存块地址边界划分如图8所示。参见图5所示,控制器将每个缓存块的起始地址和结束地址的地址信息配置到缓存块地址列表中,在获取可用缓存块编号后,可以根据该可用缓存块编号,在缓存块地址列表中,查找该可用缓存块编号对应的起始地址作为写入起始地址。
子步骤S2023,将主路视频流的主路视频帧数据从写入起始地址,写入可用缓存块编号对应的缓存块中,其中,可用缓存块编号对应的缓存块为第一缓存块。
在本发明实施例中,在控制器通过视频检测模块检测到主路视频流的主路视频帧后,将主路视频流的主路视频帧数据从写入起始地址,写入可用缓存块编号对应的缓存块中,其中,可用缓存块编号对应的缓存块即为第一缓存块。
示例性地,缓存管理模块主端接收到一个主路视频帧数据,根据可用缓存块编号,在缓存块地址列表中,提取该可用缓存块编号对应的第一缓冲区中缓存块(即,第一缓存块)的起始地址信息,通过接口总线将一个主路视频帧数据写入该第一缓存块中。
本发明通过获取可用缓存块编号,可以确定存储器中当前可以写入数据的缓存块,从而可以根据该可用缓存块编号,在缓存块地址列表中,查找该可用缓存块编号对应的写入起始地址,进而将主路视频流的一个主路视频帧数据,从写入起始地址写入该可用缓存块编号对应的缓存块(即,第一缓存块)中,以免在将主路视频流的一个主路视频帧数据写入存储器时,覆盖写入已经写入数据的缓存块,造成主路视频流数据的损坏和丢失。
子步骤S2024,检测主路视频帧的帧尾标志。
在本发明实施例中,一个视频帧包括帧头和帧尾,帧尾标志是指标识视频帧的帧尾的标志。
在本发明实施例中,控制器通过检测主路视频帧的帧尾标志,在检测到帧尾标志时,可以确定完整存储了该主路视频帧。
示例性地,控制器检测一个主路视频帧的帧头标志和帧尾标志,当检测到有效的帧尾标志时,可以确定完整存储了该主路视频帧。
子步骤S2025,在检测到帧尾标志时,给可用缓存块编号加一。
在本发明实施例中,控制器通过检测主路视频帧的帧尾标志,在检测到帧尾标志时,可以确定在当前的可用缓存块中完整存储了该主路视频帧,此时当前的可用缓存块就变为占用缓存块,给可用缓存块编号加一可以得到存储下一个主路视频帧的缓存块的缓存块编号。
示例性地,控制器检测一个主路视频帧的帧头标志和帧尾标志,当检测到有效的帧尾标志时,可以确定当前的可用缓存块中完整存储了该主路视频帧,将可用缓存块编号加1得到存储下一个主路视频帧的缓存块的缓存块编号。
本发明通过检测主路视频帧数据的帧尾标志;可以在检测到帧尾标志时,将可用缓存块编号加1,从而得到更新后的可用缓存块编号,具有该可用缓存块编号的缓存块可以存储下一个主路视频帧数据。
步骤S203,获取第一缓存块的目标缓存块编号。
在本发明实施例中,目标缓存块编号是指与主路视频帧接收时间戳或接收次序同步的从路视频帧所要存储的缓存块的缓存块编号。
在本发明实施例中,控制器获取第一缓存块的缓存块编号,将该缓存块编号作为目标缓存块编号。
示例性地,参见图4所示,缓存管理(从)端的缓存块编号由缓存管理(主)端提供,则控制器获取第一缓存块的目标缓存块编号,并将该目标缓存块编号实时同步给缓存管理(从)端,以保证接收时间戳或接收次序同步的主路视频帧和从路视频帧,写入缓存块编号相同的两个缓存块中。
步骤S204,将从路视频流的从路视频帧存储在与目标缓存块编号相对应的第二缓存块中,至少两个缓存块包括第一缓存块和第二缓存块。
在本发明实施例中,第二缓存块用于存储从路视频流的从路视频帧,第二缓存块位于第二缓冲区中,第二缓冲区与缓存管理(从)端相对应。
在本发明实施例中,控制器根据目标缓存块编号,在缓存块地址列表中,查找该目标缓存块编号对应的起始地址作为目标写入起始地址,将从路视频流的从路视频帧从该目标写入起始地址,写入目标缓存块编号对应的第二缓存块中。
示例性地,参见图4所示,控制器根据目标缓存块编号,在缓存块地址列表中,查找该目标缓存块编号对应的起始地址作为目标写入起始地址,然后通过接口总线将一个从路视频帧从该目标写入起始地址,写入目标缓存块编号对应的第二缓存块中。
本发明通过将主路视频流的主路视频帧存储在第一缓存块中,再获取第一缓存块的目标缓存块编号,可以使得能够将缓存管理(主)端的目标缓存块编号提供给缓存管理(从)端,以便将从路视频流的从路视频帧存储在与目标缓存块编号相对应的第二缓存块中,从而保证接收时间戳或接收次序同步的主路视频帧和从路视频帧,写入两个缓存块编号相同的缓存块中。
步骤S205,至少两路视频流包括多个从路视频流,至少两个缓存块包括多个第二缓存块;分别将多个从路视频流的从路视频帧存储在与目标缓存块编号相对应的不同第二缓存块中,单个从路视频流的从路视频帧存储在单个第二缓存块中。
在本发明实施例中,多个第二缓存块可以均设置在同一存储器中,也可以分别设置在不同的存储器中,具体可以根据实际需求确定,此处不做限定。
在本发明实施例中,在至少两路视频流中包括多个从路视频流时,控制器分别将多个从路视频流中的各个从路视频流的从路视频帧,存储在与目标缓存块编号相对应的不同第二缓存块中,单个从路视频流的从路视频帧存储在单个第二缓存块中。
示例性地,参见图4所示,在至少两路视频流中包括多个从路视频流时,存在与各个从路视频流对应的多个缓存管理(从)端,在控制器控制缓存管理(主)端将目标缓存块编号提供给各个缓存管理(从)端后,各个缓存管理(从)端将各个从路视频流的各个从路视频帧,从目标缓存块编号对应的起始地址处开始,写入目标缓存块编号对应的各个第二缓存块中。
本发明通过在至少两路视频流中包括多个从路视频流时,控制器分别将多个从路视频流的从路视频帧,存储在与目标缓存块编号相对应的不同第二缓存块中,可以使得接收时间戳或接收次序同步的各个从路视频帧,写入缓存块编号相同的缓存块中。
步骤S206,在至少两路视频流同时播放时,获取待播放视频的缓存块编号。
该步骤可参照步骤S103的详细描述,此处不再赘述。
步骤S207,在缓存块地址列表中查询与缓存块编号相对应的每路视频流的缓存块地址。
该步骤可参照步骤S104的详细描述,此处不再赘述。
步骤S208,检测至少两路视频流各自对应的输出接口的状态信号。
在本发明实施例中,单个输出接口用于输出单路视频流的视频帧,任意一路视频流对应的输出接口可以用于输出该路视频流的视频帧;状态信号是指输出接口是否处于空闲状态。
在本发明实施例中,控制器检测所述至少两路视频流各自对应的输出接口是否处于空闲状态,以确定是否得从缓存块地址所指示的缓存块中读取待播放视频的视频帧。
示例性地,输出接口可以包括第一输出接口和第二输出接口,参见图2所示,视频帧回读操作同样在缓存管理模块实现,第一输出接口与缓存管理模块的缓存管理(主)端连接,第二输出接口与缓存管理模块的缓存管理(从)端连接,缓存管理(主)端和缓存管理(从)端分别监测各输出接口是否处于空闲状态的状态信号。
步骤S209,在至少两路视频流各自对应的输出接口的状态信号均为空闲状态信号时,在每路视频流对应的缓冲区中,从每个缓存块地址所指示的缓存块中分别进行读取,得到该路视频流的视频帧,并将得到的视频帧通过单个输出接口输出单路视频流的视频帧。
在本发明实施例中,在状态信号均为空闲状态信号时,控制器根据每个缓存块地址所包括的起始地址和结束地址所指示的位置,分别从单个缓存块的起始地址读取到缓存块的结束地址,得到每路视频流的视频帧,并通过单个输出接口输出单路视频流的视频帧。
示例性地,输出接口可以包括第一输出接口和第二输出接口,参见图2所示,当与缓存管理(主)端连接的第一输出接口和与缓存管理(从)端连接的第二输出接口均处于空闲状态(例如Ready)时,根据当前的缓存块编号,缓存管理(主)端从缓存块地址列表查找缓存块编号对应的起始地址,通过接口总线读取视频流1数据缓冲区中的一个视频帧数据,得到同步视频流1的一个视频帧,将该视频帧通过第一输出接口输出,缓存管理(主)端将缓存块编号实时同步到缓存管理(从)端,缓存管理(主)端和缓存管理(从)端两端同步启动一个视频帧读操作,先根据缓存块编号从缓存块地址列表中提取该存储块起始地址,再读取视频流2数据缓冲区中对应的一个视频帧数据,得到同步视频流2的一个视频帧,将该视频帧通过第二输出接口输出。
本发明通过检测每个输出接口的状态信号,在状态信号均为空闲状态信号时,才在每个缓存块地址所指示的缓存块中分别进行读取,得到每路视频流的视频帧,并通过输出接口输出该视频帧,可以保证读取的主路视频帧数据和从路视频帧数据的有效性,避免在第一缓存块或第二缓存块被占用时进行读取主路视频帧数据和从路视频帧数据,造成视频帧数据的丢失,导致所得到的同步处理结果错误。
可选地,步骤S209,可以包括:
子步骤S2091,依次从每个缓存块地址所指示的缓存块中读取目标长度的数据,直至完整读取视频帧,并通过单个输出接口输出单路视频流的视频帧。
在本发明实施例中,目标长度可以是用户基于实际经验进行设置,也可以是3D内窥默认的数值,具体可以根据实际需求确定,此处不做限定。
在本发明实施例中,在至少两个缓冲区位于同一存储器时,所述至少两个缓冲区通过同一接口总线传输每路视频流的视频帧数据,此时采用分时复用的机制,控制每次读取固定的目标长度视频帧数据,直至完整读取视频帧,并通过单个输出接口输出单路视频流的视频帧。
示例性地,参见图4所示,在至少两个缓冲区均位于同一存储器时,所述至少两个缓冲区通过同一接口总线分别与缓存管理(主)端和缓存管理(从)端连接,缓存管理(主)端和缓存管理(从)端读取一个视频帧需要共用一个物理的存储器接口,存储器接口物理带宽远高于视频流读取带宽,可以采用时分复用的机制,控制每次读取固定长度数据,切换主从通道,实现存储器接口共用,然后再通过与缓存管理(主)端连接的第一输出接口输出主路视频帧,通过与缓存管理(从)端连接的第二输出接口输出从路视频帧。
本发明实施例中,依次从每个缓存块地址所指示的缓存块中读取目标长度的数据,直至完整读取视频帧,并通过单个输出接口输出单路视频流的视频帧,可以使得在传输主路视频帧数据和从路视频帧数据的整个时间中分时复用在接口总线,提高了接口总线的利用率。
可选地,子步骤S2091,可以包括:
子步骤A、依次从每个缓存块地址所指示的缓存块中读取目标长度的视频帧;
在本发明实施例中,控制器采用分时复用的机制,控制每次从每个缓存块地址所指示的缓存块中,读取固定的目标长度视频帧数据。
示例性地,参见图4所示,读操作总线时序控制子模块通过仲裁获取接口总线使用权限,获取到权限后每次从每个缓存块地址所指示的缓存块中,读取固定的目标长度视频帧数据。
子步骤B、检测视频帧的帧尾标志;
在本发明实施例中,控制器通过检测每个缓存块地址所指示的缓存块中的视频帧的帧尾标志,以确定完整读取了该视频帧数据。
示例性地,控制器检测每个缓存块地址所指示的缓存块中的视频帧的帧头标志和帧尾标志,当检测到有效的帧尾标志时,可以确定完整读取了该视频帧数据。
子步骤C、在检测到与视频帧的数目相同的帧尾标志时,通过单个输出接口输出单路视频流的视频帧,并更新缓存块编号。
在本发明实施例中,控制器通过检测每个缓存块地址所指示的缓存块中的视频帧的帧尾标志,在检测到与视频帧的数目相同的帧尾标志时,通过单个输出接口输出单路视频流的视频帧,并给缓存块编号加一,更新缓存块编号。
示例性地,控制器检测每个缓存块地址所指示的缓存块中的视频帧的帧头标志和帧尾标志,当检测到有效的帧尾标志时,可以确定当前的缓存块中视频帧数据已被完整读取,通过单个输出接口输出单路视频流的视频帧,并将缓存块编号加1,可以得到存储下一个视频帧的缓存块编号。
在本发明实施例中,缓存管理模块(主)端和缓存管理模块(从)端每完成一个视频帧读取,会提取新的缓存块编号,读取下一个视频帧数据;在极端情况下,由于缓存管理模块(主)端和缓存管理模块(从)端的输出接口空闲状态可能不同,视频读取速率可能不同,会出现其中一端先读取完一帧的情况,当其中一端完成一帧读取,另一端读取进度较慢时,缓存管理模块(主)端和缓存管理模块(从)端视频同步偏差会接近一个视频帧的时间,同步偏差相对于已有方案大幅降低。
本发明通过依次从每个缓存块地址所指示的缓存块中读取目标长度的视频帧,可以分时复用在接口总线,提高了接口总线的利用率;接着检测视频帧的帧尾标志;在检测到与视频帧的数目相同的帧尾标志时,通过单个输出接口输出单路视频流的视频帧,并更新缓存块编号,可以使得控制器可以继续读取后续视频帧数据。
本发明提供的另一种视频读取方法,在获取至少两路视频流后,通过将主路视频流的主路视频帧存储在第一缓存块中,再获取第一缓存块的目标缓存块编号,可以使得能够将缓存管理(主)端的目标缓存块编号提供给缓存管理(从)端,以便将从路视频流的从路视频帧存储在与目标缓存块编号相对应的第二缓存块中,从而保证接收时间戳或接收次序同步的主路视频帧和从路视频帧,写入两个缓存块编号相同的缓存块中;然后在至少两路视频流同时播放时,获取待播放视频的缓存块编号;就可以直接在缓存块地址列表中查询与该缓存块编号相对应的每路视频流的缓存块地址;然后在每个缓存块地址所指示的缓存块中分别进行读取,以完成至少两路视频流的同步处理,得到每路视频流的时序相同的视频帧,因此可以避免对至少两路视频流进行时同步处理时,进行大量的计算,减少了处理复杂度,简化了至少两路视频流的同步处理过程,从而在同步处理3D内窥镜的两路视频流时,提高视频同步的实时性,从而确保可以满足3D内窥镜影像视频处理实时性上的要求,提升了视频同步精度。
如图9所示,本发明实施例提供的另一种视频读取方法,该方法包括:
步骤S301,获取至少两路视频流。
该步骤可参照步骤S101的详细描述,此处不再赘述。
步骤S302,将左眼视频帧数据存储在左眼缓存块中,并将右眼视频帧数据存储在右眼缓存块中。
在本发明实施例中,左眼缓存块和右眼缓存块的缓存块编号相同。
在本发明实施例中,3D内窥镜的两个镜片获取两路视频流后,控制器通过视频检测模块检测该两路视频流的视频帧后,然后将该两路视频流中时间戳相同或接收次序相同的左眼视频帧数据存储在左眼缓存块中,并将右眼视频帧数据存储在右眼缓存块中。
示例性地,参见图4所示,两路视频流中的主路视频流可以是视频流1,两路视频流中的从路视频流可以是视频流2,通过3D内窥镜的左右两个镜片采集的两路视频流1和视频流2进入缓存管理(主)端的视频检测模块,检测到主路视频帧后通知写操作总线时序控制子模块提取当前可用缓存块的缓存块编号,送入缓存块地址管理子模块,从缓存块地址列表中获取缓存块编号对应的缓存块的起始地址。写操作总线时序控制子模块根据该起始地址,把当前的主路视频帧写入对应的缓存块中;同时,检测主路视频帧的帧头标志、帧尾标志,当检测到有效的帧尾标志时,将缓存块编号加1。
步骤S303,在至少两路视频流同时播放时,获取待播放视频的缓存块编号。
该步骤可参照步骤S103的详细描述,此处不再赘述。
步骤S304,在缓存块地址列表中查询与缓存块编号相对应的每路视频流的缓存块地址。
该步骤可参照步骤S104的详细描述,此处不再赘述。
步骤S305,在每个缓存块地址所指示的左眼缓存块中读取左眼视频帧,得到左眼视频流的视频帧并输出,并在每个缓存块地址所指示的右眼缓存块中读取右眼视频帧,得到右眼视频流的视频帧并输出。
在本发明实施例中,控制器根据每个缓存块地址所包括的起始地址和结束地址所指示的位置,在每个缓存块地址所指示的左眼缓存块中读取左眼视频帧,得到左眼视频流的视频帧并输出,并在每个缓存块地址所指示的右眼缓存块中读取右眼视频帧,得到右眼视频流的视频帧并输出。
示例性地,参见图2所示,读操作总线时序控制子模块完成上一个视频帧读后,获取加1更新后的缓存块编号,送入缓存块地址列表中,提取该缓存块编号对应的缓存块的起始地址和结束地址;读操作总线时序控制子模块通过仲裁获取接口总线使用权限,根据缓存块的起始地址和结束地址的地址信息,读取对应的视频帧数据并输出。
本发明提供的另一种视频读取方法,通过获取3D内窥镜采集的两路视频流,将左眼视频帧数据存储在左眼缓存块中,并将右眼视频帧数据存储在右眼缓存块中,其中,左眼缓存块和右眼缓存块的缓存块编号相同,在3D内窥镜同时播放该两路视频流时,获取待播放视频的缓存块编号;由于与单个缓存块编号相对应的各缓存块中存储的视频帧的时序相同,这样通过获取缓存块编号,就可以直接在缓存块地址列表中查询与该缓存块编号相对应的每路视频流的缓存块地址;然后在每个缓存块地址所指示的左眼缓存块中读取左眼视频帧,得到左眼视频流的视频帧,并在每个缓存块地址所指示的右眼缓存块中读取右眼视频帧,得到右眼视频流的视频帧,因此可以避免对3D内窥镜采集的两路视频流进行时同步处理时,进行大量的计算,减少了处理复杂度,简化了同步处理过程,从而提高视频同步的实时性,从而确保可以满足3D内窥镜影像视频处理实时性上的要求,提升了视频同步精度。
如图10所示,本发明实施例还提供一种视频读取装置400包括:
第一获取模块401,用于在至少两路视频流同时播放时,获取待播放视频的缓存块编号;
查询模块402,用于在缓存块地址列表中查询与缓存块编号相对应的每路视频流的缓存块地址;
读取模块403,用于在每个缓存块地址所指示的缓存块中分别进行读取,得到每路视频流的视频帧并输出,与单个缓存块编号相对应的各缓存块中存储的视频帧的时序相同。
可选地,读取模块403,还用于:
检测每个输出接口的状态信号;单个输出接口用于输出单路视频流的视频帧;在状态信号均为空闲状态信号时,在每个缓存块地址所指示的缓存块中分别进行读取,得到每路视频流的视频帧,并通过单个输出接口输出单路视频流的视频帧。
可选地,在缓存块均位于同一存储器时,读取模块403,还用于:
依次从每个缓存块地址所指示的缓存块中读取目标长度的数据,直至完整读取视频帧,并通过单个输出接口输出单路视频流的视频帧。
可选地,读取模块403,还用于:
依次从每个缓存块地址所指示的缓存块中读取目标长度的视频帧;检测视频帧的帧尾标志;在检测到与视频帧的数目相同的帧尾标志时,通过单个输出接口输出单路视频流的视频帧,并更新缓存块编号。
可选地,缓存块地址包括起始地址和结束地址;读取模块403,还用于:
分别从单个缓存块的起始地址读取到缓存块的结束地址,得到每路视频流的视频帧,并通过单个输出接口输出单路视频流的视频帧。
可选地,视频读取装置400还包括:
第二获取模块404,用于获取至少两路视频流;
存储模块405,用于将至少两路视频流中时序相同的视频帧分别存储在与同一缓存块编号相对应的至少两个缓存块中。
可选地,至少两路视频流包括:主路视频流和从路视频流;存储模块405,还用于:
将主路视频流的主路视频帧存储在第一缓存块中;获取第一缓存块的目标缓存块编号;将从路视频流的从路视频帧存储在与目标缓存块编号相对应的第二缓存块中,至少两个缓存块包括第一缓存块和第二缓存块。
可选地,至少两路视频流包括多个从路视频流,至少两个缓存块包括多个第二缓存块;存储模块405,还用于:
分别将多个从路视频流的从路视频帧存储在与目标缓存块编号相对应的不同第二缓存块中,单个从路视频流的从路视频帧存储在单个第二缓存块中。
可选地,存储模块405,还用于:
获取当前的可用缓存块编号;可用缓存块编码是存储器中可以写入数据的缓存块的编号;在缓存块地址列表中,查找可用缓存块编号对应的写入起始地址;将主路视频流的主路视频帧数据从写入起始地址,写入可用缓存块编号对应的缓存块中,其中,可用缓存块编号对应的缓存块为第一缓存块。
可选地,存储模块405,还用于:
检测主路视频帧的帧尾标志;在检测到帧尾标志时,给缓存块编号加一。
可选地,至少两路视频流包括三维立体显示内窥镜采集的左眼视频流和右眼视频流,视频帧包括:左眼视频流的左眼视频帧和右眼视频流的右眼视频帧,缓存块包括:左眼缓存块和右眼缓存块,左眼缓存块中存储有左眼视频帧,右眼缓存块中存储有右眼视频帧;
存储模块405,还用于:将左眼视频帧数据存储在左眼缓存块中,并将右眼视频帧数据存储在右眼缓存块中,其中,左眼缓存块和右眼缓存块的缓存块编号相同。
可选地,读取模块403,还用于:在每个缓存块地址所指示的左眼缓存块中读取左眼视频帧,得到左眼视频流的视频帧并输出,并在每个缓存块地址所指示的右眼缓存块中读取右眼视频帧,得到右眼视频流的视频帧并输出。
本发明提供的一种视频读取装置,在至少两路视频流同时播放时,获取待播放视频的缓存块编号;由于与单个缓存块编号相对应的各缓存块中存储的视频帧的时序相同,这样通过获取缓存块编号,就可以直接在缓存块地址列表中查询与该缓存块编号相对应的每路视频流的缓存块地址;然后在每个缓存块地址所指示的缓存块中分别进行读取,以完成至少两路视频流的同步处理,得到每路视频流的时序相同的视频帧并输出,因此在对至少两路视频流进行时同步处理时,可以避免进行大量的计算,减少了处理复杂度,简化了同步处理过程,从而在同步处理3D内窥镜的两路视频流时,提高视频同步的实时性,从而确保可以满足3D内窥镜影像视频处理实时性上的要求,提升了视频同步精度。
如图11所示,本发明实施例还提供一种电子设备500,包括处理器501,存储器502,存储在存储器502上并可在处理器501上运行的程序或指令,该程序或指令被处理器501执行时实现上述视频读取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述视频读取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory, RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本发明实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,网络设备,嵌入式设备,或手术机器人等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (20)
1.一种视频读取方法,其特征在于,所述方法包括:
在至少两路视频流同时播放时,获取待播放视频的缓存块编号,其中,所述至少两路视频流分别对应至少两个缓冲区,所述至少两个缓冲区中的缓存块一一对应,并且所述至少两个缓冲区中相互对应的缓存块具有相同的缓存块编号;
在缓存块地址列表中查询与所述待播放视频帧的缓存块编号相对应的每路所述视频流的缓存块地址;
针对每路视频流,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中读取视频帧并输出,其中,与单个所述缓存块编号相对应的各缓存块中存储的视频帧的时序相同。
2.根据权利要求1所述的方法,其特征在于,所述在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中读取视频帧并输出,包括:
检测所述至少两路视频流各自对应的输出接口的状态信号,其中,任意一路视频流对应的输出接口用于输出所述任意一路视频流的视频帧;
在所述至少两路视频流各自对应的输出接口的状态信号均为空闲状态信号时,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中分别进行读取,得到所述每路视频流的视频帧,并将得到的视频帧通过所述输出接口输出。
3.根据权利要求2所述的方法,其特征在于,所述在所述至少两路视频流各自对应的输出接口的状态信号均为空闲状态信号时,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中分别进行读取,得到所述每路视频流的视频帧,并将得到的视频帧通过所述输出接口输出,包括:
依次从每个所述缓存块地址所指示的缓存块中读取目标长度的数据,直至完整读取所述视频帧,并通过所述输出接口输出所述视频帧。
4.根据权利要求3所述的方法,其特征在于,所述依次从每个所述缓存块地址所指示的缓存块中读取目标长度的数据,直至完整读取所述视频帧,并通过所述输出接口输出所述视频帧,包括:
依次从每个所述缓存块地址所指示的缓存块中读取目标长度的所述视频帧;
检测所述视频帧的帧尾标志;
在检测到与所述视频帧的数目相同的所述帧尾标志时,通过所述输出接口输出所述视频帧,并更新所述待播放视频帧的缓存块编号。
5.根据权利要求2所述的方法,其特征在于,所述缓存块地址包括起始地址和结束地址;所述在所述至少两路视频流各自对应的输出接口的状态信号均为空闲状态信号时,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中分别进行读取,得到所述每路视频流的视频帧,并将得到的视频帧通过所述输出接口输出,包括:
分别从单个所述缓存块的起始地址读取到所述缓存块的结束地址,得到每路所述视频流的视频帧,并通过所述输出接口输出所述视频帧。
6.根据权利要求1所述的方法,其特征在于,在所述在至少两路视频流同时播放时,获取待播放视频的缓存块编号之前,所述方法还包括:
获取至少两路视频流;
将所述至少两路视频流中时序相同的视频帧分别存储在与同一缓存块编号相对应的至少两个缓存块中。
7.根据权利要求6所述的方法,其特征在于,所述至少两路视频流包括:主路视频流和从路视频流;所述将所述至少两路视频流中时序相同的视频帧分别存储在与同一缓存块编号相对应的至少两个缓存块中,包括:
将所述主路视频流的主路视频帧存储在第一缓存块中;
获取所述第一缓存块的目标缓存块编号;
将所述从路视频流的从路视频帧存储在与所述目标缓存块编号相对应的第二缓存块中,所述至少两个缓存块包括所述第一缓存块和所述第二缓存块。
8.根据权利要求7所述的方法,其特征在于,所述至少两路视频流包括多个所述从路视频流,所述至少两个缓存块包括多个所述第二缓存块;所述将所述从路视频流的从路视频帧存储在与所述目标缓存块编号相对应的第二缓存块中,包括:
分别将多个所述从路视频流的从路视频帧存储在与所述目标缓存块编号相对应的不同第二缓存块中,单个从路视频流的从路视频帧存储在单个第二缓存块中。
9.根据权利要求7所述的方法,其特征在于,所述将所述主路视频流的主路视频帧存储在第一缓存块中,包括:
获取当前的可用缓存块编号,所述可用缓存块编号是存储器中当前可以写入数据的缓存块的编号;
在缓存块地址列表中,查找所述可用缓存块编号对应的写入起始地址;
将所述主路视频流的主路视频帧数据从所述写入起始地址,写入所述可用缓存块编号对应的缓存块中,其中,所述可用缓存块编号对应的缓存块为所述第一缓存块。
10.根据权利要求9所述的方法,其特征在于,在所述将所述主路视频流的主路视频帧数据从所述写入起始地址,写入所述可用缓存块编号对应的缓存块中之后,所述方法还包括:
检测所述主路视频帧的帧尾标志;
在检测到所述帧尾标志时,给所述可用缓存块编号加一。
11.根据权利要求6所述的方法,其特征在于,所述至少两路视频流包括三维立体显示内窥镜采集的左眼视频流和右眼视频流,所述视频帧包括:所述左眼视频流的左眼视频帧和所述右眼视频流的右眼视频帧,所述缓存块包括:左眼缓存块和右眼缓存块,所述左眼缓存块中存储有所述左眼视频帧,所述右眼缓存块中存储有所述右眼视频帧;
所述将所述至少两路视频流中时序相同的视频帧分别存储在同一缓存块编号相对应的不同缓存块中,包括:
将所述左眼视频帧数据存储在所述左眼缓存块中,并将所述右眼视频帧数据存储在所述右眼缓存块中,其中,所述左眼缓存块和所述右眼缓存块的缓存块编号相同。
12.根据权利要求11所述的方法,其特征在于,所述针对每路视频流,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中读取视频帧并输出,包括:
在每个所述缓存块地址所指示的所述左眼缓存块中读取所述左眼视频帧,得到所述左眼视频流的视频帧并输出,并在每个所述缓存块地址所指示的所述右眼缓存块中读取所述右眼视频帧,得到所述右眼视频流的视频帧并输出。
13.一种视频读取装置,其特征在于,所述装置包括:
第一获取模块,用于在至少两路视频流同时播放时,获取待播放视频的缓存块编号,其中,所述至少两路视频流分别对应至少两个缓冲区,所述至少两个缓冲区中的缓存块一一对应,并且所述至少两个缓冲区中相互对应的缓存块具有相同的缓存块编号;
查询模块,用于在缓存块地址列表中查询与所述待播放视频帧的缓存块编号相对应的每路所述视频流的缓存块地址;
读取模块,用于针对每路视频流,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中读取视频帧并输出,其中,与单个所述缓存块编号相对应的各缓存块中存储的视频帧的时序相同。
14.根据权利要求13所述的装置,其特征在于,所述读取模块,还用于:
检测所述至少两路视频流各自对应的输出接口的状态信号,其中任意一路视频流对应的输出接口用于输出所述任意一路视频流的视频帧;
在所述至少两路视频流各自对应的输出接口的状态信号均为空闲状态信号时,在所述每路视频流对应的缓冲区中,从每个所述缓存块地址所指示的缓存块中分别进行读取,得到所述每路视频流的视频帧,并将得到的视频帧通过所述输出接口输出。
15.根据权利要求14所述的装置,其特征在于,在所述缓存块均位于同一存储器时,所述读取模块,还用于:
依次从每个所述缓存块地址所指示的缓存块中读取目标长度的数据,直至完整读取所述视频帧,并通过所述输出接口输出所述视频帧。
16.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取至少两路视频流;
存储模块,用于将所述至少两路视频流中时序相同的视频帧分别存储在与同一缓存块编号相对应的至少两个缓存块中。
17.根据权利要求16所述的装置,其特征在于,所述至少两路视频流包括三维立体显示内窥镜采集的左眼视频流和右眼视频流,所述视频帧包括:所述左眼视频流的左眼视频帧和所述右眼视频流的右眼视频帧,所述缓存块包括:左眼缓存块和右眼缓存块,所述左眼缓存块中存储有所述左眼视频帧,所述右眼缓存块中存储有所述右眼视频帧;
所述存储模块,还用于:
将所述左眼视频帧数据存储在所述左眼缓存块中,并将所述右眼视频帧数据存储在所述右眼缓存块中,其中,所述左眼缓存块和所述右眼缓存块的缓存块编号相同。
18.根据权利要求17所述的装置,其特征在于,所述读取模块,还用于:
在每个所述缓存块地址所指示的所述左眼缓存块中读取所述左眼视频帧,得到所述左眼视频流的视频帧并输出,并在每个所述缓存块地址所指示的所述右眼缓存块中读取所述右眼视频帧,得到所述右眼视频流的视频帧并输出。
19.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序或指令,所述有程序或指令被处理器执行时实现权利要求1至12中任一所述的视频读取方法。
20.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至12中任一所述的视频读取方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111474863.9A CN113923432B (zh) | 2021-12-06 | 2021-12-06 | 视频读取方法、装置、电子设备及存储介质 |
PCT/CN2022/136545 WO2023103954A1 (zh) | 2021-12-06 | 2022-12-05 | 视频读取方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111474863.9A CN113923432B (zh) | 2021-12-06 | 2021-12-06 | 视频读取方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923432A CN113923432A (zh) | 2022-01-11 |
CN113923432B true CN113923432B (zh) | 2022-02-11 |
Family
ID=79248762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111474863.9A Active CN113923432B (zh) | 2021-12-06 | 2021-12-06 | 视频读取方法、装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113923432B (zh) |
WO (1) | WO2023103954A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923432B (zh) * | 2021-12-06 | 2022-02-11 | 极限人工智能有限公司 | 视频读取方法、装置、电子设备及存储介质 |
CN116668764B (zh) * | 2022-11-10 | 2024-04-19 | 荣耀终端有限公司 | 处理视频的方法及装置 |
CN116647713B (zh) * | 2023-07-27 | 2023-09-26 | 北京睿芯高通量科技有限公司 | 一种多路视频写读优化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1997160A (zh) * | 2006-01-06 | 2007-07-11 | 腾讯科技(深圳)有限公司 | 一种多路节目接收显示***和方法 |
CN107277595A (zh) * | 2017-07-28 | 2017-10-20 | 京东方科技集团股份有限公司 | 一种多路视频同步方法及装置 |
CN108694034A (zh) * | 2017-04-07 | 2018-10-23 | 英特尔公司 | 用于在虚拟化图形处理环境中的远程显示和内容保护的设备及方法 |
US10672098B1 (en) * | 2018-04-05 | 2020-06-02 | Xilinx, Inc. | Synchronizing access to buffered data in a shared buffer |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5172874B2 (ja) * | 2010-02-12 | 2013-03-27 | 日本電信電話株式会社 | 映像同期装置、映像表示装置、映像同期方法及びプログラム |
CN102789804B (zh) * | 2011-05-17 | 2016-03-02 | 华为软件技术有限公司 | 视频播放方法、播放器、监控平台及视频播放*** |
CN105549933B (zh) * | 2015-12-16 | 2019-01-29 | 广东威创视讯科技股份有限公司 | 显卡信号同步方法和*** |
CN113923432B (zh) * | 2021-12-06 | 2022-02-11 | 极限人工智能有限公司 | 视频读取方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-06 CN CN202111474863.9A patent/CN113923432B/zh active Active
-
2022
- 2022-12-05 WO PCT/CN2022/136545 patent/WO2023103954A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1997160A (zh) * | 2006-01-06 | 2007-07-11 | 腾讯科技(深圳)有限公司 | 一种多路节目接收显示***和方法 |
CN108694034A (zh) * | 2017-04-07 | 2018-10-23 | 英特尔公司 | 用于在虚拟化图形处理环境中的远程显示和内容保护的设备及方法 |
CN107277595A (zh) * | 2017-07-28 | 2017-10-20 | 京东方科技集团股份有限公司 | 一种多路视频同步方法及装置 |
US10672098B1 (en) * | 2018-04-05 | 2020-06-02 | Xilinx, Inc. | Synchronizing access to buffered data in a shared buffer |
Also Published As
Publication number | Publication date |
---|---|
WO2023103954A1 (zh) | 2023-06-15 |
CN113923432A (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113923432B (zh) | 视频读取方法、装置、电子设备及存储介质 | |
US8310538B2 (en) | Imaging apparatus, method, program, and recording medium used in the program | |
JP4995092B2 (ja) | ステレオカメラの画像の歪み補正装置、及びその方法 | |
CN108605148A (zh) | 视频显示*** | |
KR101750047B1 (ko) | 3차원 영상 제공 및 처리 방법과 3차원 영상 제공 및 처리 장치 | |
JP5299111B2 (ja) | 画像処理装置、および画像処理方法、並びにプログラム | |
JP2019050451A (ja) | 画像処理装置及びその制御方法及びプログラム及び画像処理システム | |
CN110192391B (zh) | 一种处理的方法及设备 | |
JP2005124138A (ja) | 動画生成装置、方法及びプログラム | |
CN102257829A (zh) | 立体影像显示装置及运动矢量导出方法 | |
TWI524735B (zh) | 三維影像產生方法及裝置 | |
JP2006101224A (ja) | 画像生成装置、画像生成方法および画像生成プログラム | |
CN108156442A (zh) | 一种立体成像处理方法、装置和电子设备 | |
KR20080006902A (ko) | 비동기 양안 카메라에서 생성되는 출력 데이터의 동기화를수행하는 시스템, 방법 및 기록 매체 | |
JP5915158B2 (ja) | タイムコード表示装置及びタイムコード表示方法 | |
CN113219668B (zh) | 用于刷新头戴式显示设备的屏幕的方法、装置及电子设备 | |
KR101222101B1 (ko) | 스테레오스코픽 영상의 생성 장치 | |
JP2011223260A (ja) | 映像信号処理装置、表示装置、表示方法及びプログラム | |
JP2003244726A (ja) | 画像合成処理装置 | |
JP4423416B2 (ja) | 映像合成処理システム | |
KR100868244B1 (ko) | 이동 기기를 이용한 입체 영상 생성 방법 및 이동 기기용 입체 영상 생성 칩 | |
RU2691884C1 (ru) | Телевизионное устройство для формирования стереоскопического изображения | |
CN206946095U (zh) | 一种3d望远镜 | |
US20230326431A1 (en) | Method and apparatus for implementing target object positioning and display device | |
KR101830768B1 (ko) | 스테레오 영상 촬영 방법, 스테레오 영상 출력 방법, 스테레오 영상 촬영 장치 및 스테레오 영상 출력 장치 |
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 |