CN117834841A - 空间视频生成方法、装置及电子设备 - Google Patents

空间视频生成方法、装置及电子设备 Download PDF

Info

Publication number
CN117834841A
CN117834841A CN202311842709.1A CN202311842709A CN117834841A CN 117834841 A CN117834841 A CN 117834841A CN 202311842709 A CN202311842709 A CN 202311842709A CN 117834841 A CN117834841 A CN 117834841A
Authority
CN
China
Prior art keywords
video
data
spatial
layer
cameras
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
Application number
CN202311842709.1A
Other languages
English (en)
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.)
Hangzhou Xiaoying Innovation Technology Co ltd
Original Assignee
Hangzhou Xiaoying Innovation Technology Co ltd
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 Hangzhou Xiaoying Innovation Technology Co ltd filed Critical Hangzhou Xiaoying Innovation Technology Co ltd
Priority to CN202311842709.1A priority Critical patent/CN117834841A/zh
Publication of CN117834841A publication Critical patent/CN117834841A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

本申请提供一种空间视频生成方法、装置及电子设备,涉及计算机技术领域。该方法包括:获取多个摄像头分别采集的多路视频数据,多个摄像头分别为不同焦距的摄像头;对多路视频数据进行多图层视频编码,得到多图层编码数据;对多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件;向终端设备连接的预设空间设备发送预设格式的视频文件,以使得预设空间设备基于预设空间视频标识对多图层编码数据进行解码后生成空间视频。本申请可以使得不具有空间视频拍摄功能的终端设备生成支持在控件设备中显示为空间视频的数据。

Description

空间视频生成方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种空间视频生成方法、装置及电子设备。
背景技术
近年来,立体显示技术的发展取得了很大的进步,这些进步包括使用自动立体显示器(支持独立3D查看的显示器)和多视图自动立体显示器。
虽然显示技术有了很大的进步,但是内容生成的问题仍然存在。具体的,终端厂商在推出终端设备及具有自动立体显示功能的空间设备时,通常会保证最新款的终端设备可以直接生成支持在空间设备中显示的内容。
但是,对于旧版本的终端设备,由于其不支持生成在空间设备中显示的内容,导致用户无法体验空间视频。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种空间视频生成方法、装置及电子设备,以便使得不具有空间视频拍摄功能的终端设备生成支持在控件设备中显示为空间视频的数据。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种空间视频生成方法,应用于不具有空间视频拍摄功能的终端设备,所述方法包括:
获取多个摄像头分别采集的多路视频数据,所述多个摄像头分别为不同焦距的摄像头;
对所述多路视频数据进行多图层视频编码,得到多图层编码数据;
对所述多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件;
向所述终端设备连接的预设空间设备发送所述预设格式的视频文件,以使得所述预设空间设备基于所述预设空间视频标识对所述多图层编码数据进行解码后生成空间视频。
可选的,所述获取多个摄像头分别采集的多路视频数据之后,所述方法还包括:
若所述多个摄像头属于不同的设备,对所述多路视频数据的视觉比例进行修改,得到视觉比例相同的多路视频数据。
可选的,所述对所述多路视频数据进行多图层视频编码,得到多图层编码数据,包括:
根据所述多个摄像头的空间距离,确定所述多路视频数据的视差信息;
根据所述视差信息对所述多路视频数据进行多图层视频编码,得到所述多图层编码数据,所述预设格式的视频文件还包括:所述视差信息。
可选的,所述对所述多路视频数据进行多图层视频编码,得到多图层编码数据,包括:
确定所述多路视频数据中的主视角视频数据和辅视角视频数据;
确定所述主视角视频数据和所述辅视角视频数据中各帧图像的编号;
根据所述主视角视频数据的关键帧图像,对所述主视角视频数据中的各帧图像进行编码,得到主图层编码数据;
根据所述主图层编码数据,对具有相同编号的辅视角视频数据中的各帧图像进行编码,得到辅图层编码数据;
所述对所述多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件,包括:
对所述多图层编码数据、图层标识和所述预设空间视频标识进行封装,得到所述预设格式的视频文件。
可选的,所述根据所述多个摄像头的空间距离,确定所述多路视频数据的视差信息,包括:
根据所述多个摄像头的空间距离,确定基线值;
根据预先设置所述空间视频的深度和基线值,确定所述视差信息。
第二方面,本申请实施例还提供一种空间视频生成方法,应用于空间设备,所述方法包括:
接收终端设备发送的预设格式的视频文件,所述预设格式的视频文件为所述终端设备对多个摄像头分别采集的多路视频数据进行多图层视频编码,并对多图层编码数据和预设空间视频标识进行封装得到的,所述终端设备为不具有空间视频拍摄功能的终端设备,所述多个摄像头分别为不同焦距的摄像头;
根据所述预设空间视频标识,对所述多图层编码数据进行解码,生成空间视频。
可选的,所述预设格式的视频文件还包括:视差信息,所述根据所述预设空间视频标识,对所述多图层编码数据进行解码,生成空间视频,包括:
根据所述空间视频标识,对所述多图层编码数据进行解码,得到解码视频数据;
根据所述视差信息,调整所述解码视频数据的深度值,得到所述空间视频。
第三方面,本申请实施例还提供一种空间视频生成装置,应用于不具有空间视频拍摄功能的终端设备,所述装置包括:
视频获取模块,用于获取多个摄像头分别采集的多路视频数据,所述多个摄像头分别为不同焦距的摄像头;
视频编码模块,用于对所述多路视频数据进行多图层视频编码,得到多图层编码数据;
文件封装模块,用于对所述多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件;
文件发送模块,用于向所述终端设备连接的预设空间设备发送所述预设格式的视频文件,以使得所述预设空间设备基于所述预设空间视频标识对所述多图层编码数据进行解码后生成空间视频。
可选的,所述视频获取模块之后,所述装置还包括:
视觉比例修改模块,用于若所述多个摄像头属于不同的设备,对所述多路视频数据的视觉比例进行修改,得到视觉比例相同的多路视频数据。
可选的,所述视频编码模块,具体用于根据所述多个摄像头的空间距离,确定所述多路视频数据的视差信息;根据所述视差信息对所述多路视频数据进行多图层视频编码,得到所述多图层编码数据,所述预设格式的视频文件还包括:所述视差信息。
可选的,所述视频编码模块,还用于确定所述多路视频数据中的主视角视频数据和辅视角视频数据;确定所述主视角视频数据和所述辅视角视频数据中各帧图像的编号;根据所述主视角视频数据的关键帧图像,对所述主视角视频数据中的各帧图像进行编码,得到主图层编码数据;根据所述主图层编码数据,对具有相同编号的辅视角视频数据中的各帧图像进行编码,得到辅图层编码数据;
所述文件封装模块,具体用于对所述多图层编码数据、图层标识和所述预设空间视频标识进行封装,得到所述预设格式的视频文件。
可选的,所述视频编码模块,还用于根据所述多个摄像头的空间距离,确定基线值;根据预先设置所述空间视频的深度和基线值,确定所述视差信息。
第四方面,本申请实施例还提供一种空间视频生成装置,应用于空间设备,所述装置包括:
文件接收模块,用于接收终端设备发送的预设格式的视频文件,所述预设格式的视频文件为所述终端设备对多个摄像头分别采集的多路视频数据进行多图层视频编码,并对多图层编码数据和预设空间视频标识进行封装得到的,所述终端设备为不具有空间视频拍摄功能的终端设备,所述多个摄像头分别为不同焦距的摄像头;
视频解码模块,用于根据所述预设空间视频标识,对所述多图层编码数据进行解码,生成空间视频。
可选的,所述预设格式的视频文件还包括:视差信息,所述视频解码模块,具体用于根据所述空间视频标识,对所述多图层编码数据进行解码,得到解码视频数据;根据所述视差信息,调整所述解码视频数据的深度值,得到所述空间视频。
第五方面,本申请实施例还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如第一方面任一项所述的空间视频生成方法的步骤,或者,如第二方面任一项所述的空间视频生成方法的步骤。
第六方面,本申请实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一项所述的空间视频生成方法的步骤,或者,如第二方面任一项所述的空间视频生成方法的步骤。
本申请的有益效果是:
本申请提供的空间视频生成方法、装置及电子设备,针对不具有空间视频拍摄功能的终端设备,对多个摄像头分别采集的多路视频数据进行多图层视频编码,得到多图层编码数据,将多图层编码数据和预设空间视频标识封装为预设格式的视频文件发送给预设空间设备,以使得预设空间设备基于预设空间视频标识对多图层编码数据进行解码后生成空间视频,以实现不具有空间视频拍摄功能的终端设备所拍摄的视频数据也可以生成空间视频,使得用户利用已有的终端设备提供空间视频功能,而无需购买新的终端设备,提高空间设备的推广度,降低用户的拍摄成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的空间视频生成系统的架构图;
图2为本申请实施例提供的空间视频生成方法的流程示意图一;
图3为本申请实施例提供的空间视频生成方法的流程示意图二;
图4为本申请实施例提供的空间视频生成方法的流程示意图三;
图5为本申请实施例提供的空间视频生成方法的流程示意图四;
图6为本申请实施例提供的空间视频生成方法的流程示意图五;
图7为本申请实施例提供的空间视频生成方法的流程示意图六;
图8为本申请实施例提供的空间视频生成装置的结构示意图一;
图9为本申请实施例提供的空间视频生成装置的结构示意图二;
图10为本申请实施例提供的电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参考图1,为本申请实施例提供的空间视频生成系统的架构图,如图1所示,该空间视频生成系统包括:多个摄像头10、终端设备20和空间设备30。多个摄像头10至少包括两个。
其中,多个摄像头10可以为独立于终端设备20之外的摄像头,也可以为部分集成在终端设备20上,部分独立于终端设备20之外的摄像头,还可以为全部集成在终端设备20上的摄像头,终端设备20为不具有空间视频拍摄功能的终端设备,即通过终端设备20所拍摄得到的视频仅为常规视频,不能以空间视频的形式为用户展示。终端设备20与空间设备30建立通信连接,用于将所生成的预设格式的视频文件发送给空间设备30,以使得在空间设备30中显示为空间视频,空间设备30为可穿戴设备,用户佩戴空间设备30,以查看具有空间效果的视频文件。空间设备30例如可以为Vision Pro。
基于上述空间视频生成系统,以下结合实施例对应用于终端设备的空间视频生成方法的具体实现方式进行说明。
请参考图2,为本申请实施例提供的空间视频生成方法的流程示意图一,如图2所示,该方法可以包括:
S101:获取多个摄像头分别采集的多路视频数据,多个摄像头分别为不同焦距的摄像头。
在本实施例中,多路视频数据是多个摄像头针对同一场景进行拍摄得到的视频数据,多个摄像头为不同焦距的摄像头,因此,所拍摄得到的多路视频数据针对同一场景中的物体的深度值存在区别。
其中,多个摄像头可以为全部独立于终端设备之外的摄像头,也可以为部分集成在终端设备上,部分独立于终端设备之外的摄像头,还可以为全部集成在终端设备上的摄像头,多个摄像头可以为标准摄像头、广角摄像头、超广角摄像头和长焦摄像头中的至少两个。
当摄像头独立于终端设备之外时,摄像头可以通过蓝牙连接或者其他连接方式与终端设备进行通信,以使得终端设备控制多个摄像头进行视频数据的采集并获取多个摄像头采集到的视频数据。
在一些实施例中,若只获取到单路视频数据,也可以通过数据复制并裁剪人为地制造有视差效果的多路视频数据。
S102:对多路视频数据进行多图层视频编码,得到多图层编码数据。
在本实施例中,以多路视频数据作为多图层视频数据,采用视频编码器定义的编码方式和编码格式对多图层视频数据分别进行编码,得到多图层编码数据。
其中,编码方式用于指示将多路视频数据转换为数字信号或数字数据流的过程,该过程可以包括数据压缩、数据转换和编码算法。针对不同的编码方式,需要设置不同的编码器参数,以调整视频编码的压缩率、图像质量、编码速度等。
编码格式是编码方式的具体实现或者规范,定义了如何对多路视频数据进行编码和解码,以及如何将数据打包成数据信号或者数字数据流,编码格式通常由编码器和解码器组成,编码器位于终端设备中,解码器位于空间设备中。
在一些实施例中,在对多路视频数据进行编码的过程中,为了提高视频编码性能和效率,可以使用缓冲池在终端设备中分配、重用和管理内存缓冲器。
缓冲池在视频编码程序启动时分配一组内存缓冲区,在视频编码过程中,多路视频数据需要按照顺序传递给编码器进行编码压缩,编码队列负责管理多路视频数据中视频帧的顺序,将视频帧按照顺序存放在内存缓冲区内,使得编码器从内存缓冲器依次获取并对每一个视频帧进行编码。
设置内存缓冲区可以避免在对视频数据进行编码的过程中频繁地分配和释放内存,提高内存管理的效率,从而提高视频编码性能,同时对之前处理过的视频帧的缓冲区进行重用,而不是为每一帧图像分配新的内存,可以减小内存分配开销,降低内存碎片的产生,降低内存分配和释放过程中收集垃圾的工作量。
其中,采用异步编码将多路视频数据对应的视频帧的生成和编码分开,将生成的视频帧添加至编码队列,而编码器从编码队列中获取视频帧进行压缩,可以提高编码效率和性能。
S103:对多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件。
在本实施例中,对于编码得到的多图层编码数据,将多图层编码数据和预设空间视频标识一起进行封装,得到预设格式的视频文件,其中,视频文件的格式为终端设备和空间设备所约定的格式,或者为空间设备预先定义的可以识别为视频的格式,预设空间视频标识用于指示该多图层编码数据可以合成为空间视频。
其中,若预设格式的视频文件中没有预设空间视频标识,则空间设备会对多图层编码数据进行解码后以2D格式显示为两路独立的视频数据。
S104:向终端设备连接的预设空间设备发送预设格式的视频文件,以使得预设空间设备基于预设空间视频标识对多图层编码数据进行解码后生成空间视频。
在本实施例中,终端设备将预设格式的视频文件发送给通信连接的空间设备,空间设备采用与终端设备的编码器对应的解码器对视频文件进行解码,得到两路视频数据,并基于预设空间视频标识,将两路视频数据在空间层面进行合成,得到空间视频,以使得佩戴空间设备的用户可以查看到具有空间立体效果的场景视频图像。
上述实施例提供的空间视频生成方法,针对不具有空间视频拍摄功能的终端设备,对多个摄像头分别采集的多路视频数据进行多图层视频编码,得到多图层编码数据,将多图层编码数据和预设空间视频标识封装为预设格式的视频文件发送给预设空间设备,以使得预设空间设备基于预设空间视频标识对多图层编码数据进行解码后生成空间视频,以实现不具有空间视频拍摄功能的终端设备所拍摄的视频数据也可以生成空间视频,使得用户利用已有的终端设备提供空间视频功能,而无需购买新的终端设备,提高空间设备的推广度,降低用户的拍摄成本。
在一种可能的实现方式中,在上述S101获取多个摄像头分别采集的多路视频数据之后,该方法还可以包括:
若多个摄像头属于不同的设备,对多路视频数据的视觉比例进行修改,得到视觉比例相同的多路视频数据。
在本实施例中,同一台终端设备上集成的摄像头所拍摄的视频数据的视觉比例是统一的,若多个摄像头为不同终端设备的摄像头,或者部分摄像头为终端设备上的摄像头,其他摄像头为终端设备所连接的外接摄像头,可能会导致所拍摄的视频数据的视觉比例不一致,若多个摄像头不是全部集成于终端设备上的摄像头,需要对多个摄像头所拍摄的视频数据的视觉比例进行修改,使得多路视频数据的视觉比例保持一致,避免在空间设备上生成的空间视频因视觉比例不一致而导致立体空间效果变差。
在一些实施例,对于属于不同设备的多个摄像头所拍摄的多路视频数据,除了调整视觉比例之外,还需要对多路视频数据的分辨率、颜色空间、数据格式均进行统一。
示例的,终端设备可以获取多路视频数据的媒体数据CMSampleBuffer,确定多路视频数据的格式描述CMFormatDescriptionRef是否一致。
上述实施例提供的空间视频生成方法,对属于不同设备的摄像头获取的多路视频数据的视觉比例进行修改,得到视觉比例相同的多路视频数据,避免在空间设备上生成的空间视频因视觉比例不一致而导致立体空间效果变差,提高空间视频的显示效果。
在一种可能的实现方式中,请参考图3,为本申请实施例提供的空间视频生成方法的流程示意图二,如图3所示,上述S102对多路视频数据进行多图层视频编码,得到多图层编码数据的过程,可以包括:
S201:根据多个摄像头的空间距离,确定多路视频数据的视差信息。
S202:根据视差信息对多路视频数据进行多图层视频编码,得到多图层编码数据,预设格式的视频文件还包括:视差信息。
在本实施例中,多个摄像头的空间距离为多个摄像头的物理距离,如果多个摄像头为同一终端设备的摄像头,则多个摄像头的空间距离可以从终端设备的出厂硬件信息中确定;若多个摄像头属于不同的终端设备,或者部分摄像头为终端设备的外接摄像头,可以通过多路视频数据中的深度信息和摄像头的内参计算确定多个摄像头的空间距离。
根据多个摄像头的空间距离,确定多路视频数据的视差信息,视差信息用于指示多路视频数据之间的差异,对多路视频数据中的一路视频数据进行编码,根据差异对其他路视频数据进行编码,得到多图层编码数据。
对多图层编码数据、视差信息和预设空间视频标识进行封装,得到预设格式的视频文件,以使得预设空间设备基于预设空间视频标识和视差信息,对多图层编码数据进行解码并合成空间视频。
在一种可能的实现方式中,请参考图4,为本申请实施例提供的空间视频生成方法的流程示意图三,如图4所示,上述S201根据多个摄像头的空间距离,确定多路视频数据的视差信息的过程,可以包括:
S301:根据多个摄像头的空间距离,确定基线值。
S302:根据预先设置空间视频的深度和基线值,确定视差信息。
在本实施例中,以多个摄像头的空间距离作为基线值stereoCameraBaseline,基线值影响了多路视频数据之间内容的重叠程度,较小的基线值表示多路视频数据之间具有更多的共同内容,从而在编码时可以实现更高的数据复用和压缩效率,另外基线值的大小还会影响空间视频的质量和观看体验,过大或者过小的基线值都可能导致不舒服的观看体验或者较差的空间效果。
对于已经拍摄得到的多路视频数据,由于多个摄像头的空间距离已经无法修改,因此,可以通过修改基线值来调整编码内容和空间视频的空间效果。
具体的,可以根据空间视频期望达到的深度,调整基线值,以得到视差信息,具体的,以水平视差值HorizontalDisparityAdjustment对基线值进行调整,控制多路视频数据中物体的位置和深度感。
上述实施例提供的空间视频生成方法,根据多个摄像头的空间距离,确定多路视频数据的视差信息,根据视差信息对多路视频数据进行多图层视频编码,一方面可以提高视频编码效率,另一方面在预设空间设备对多图层编码数据进行解码时,可以保证所合成的空间视频的空间立体效果。
在一种可能的实现方式中,请参考图5,为本申请实施例提供的空间视频生成方法的流程示意图四,如图5所示,上述S102对多路视频数据进行多图层视频编码,得到多图层编码数据的过程,可以包括:
S401:确定多路视频数据中的主视角视频数据和辅视角视频数据。
在本实施例中,在对多路视频数据进行编码的过程中,可以根据用户更关注的视角,确定主要视角(HeroEye),将多路视频数据分为主视角视频数据和辅视角视频数据,其中,多个视频数据中的一路视频数据为主视角视频数据(Primary View Data),其他路视频数据均为辅视角视频数据。
S402:确定主视角视频数据和辅视角视频数据中各帧图像的编号。
在本实施例中,按照主视角视频数据中各个视频帧的显示顺序,编码器为主视角视频数据的各个视频帧分配图片编码顺序值(Picture Order Count,POC),并将该POC值嵌入到主视角视频数据中。
同样地,按照辅视角视频数据中各个视频帧的显示顺序,编码器为辅视角视频数据的各个视频帧分配POC值,并将该POC值嵌入到辅视角视频数据中。
S403:根据主视角视频数据的关键帧图像,对主视角视频数据中的各帧图像进行编码,得到主图层编码数据。
在本实施例中,可以设置多个图层,每个图层对应一个视角,为每个图层设置图层标识(ID),以便空间设备对图层编码数据进行解码时可以确定编码数据对应的图层。
对于主视角视频数据,确定主视角视频数据中的关键帧图像,关键帧图像是主视角视频数据中的独立帧,包含了完整的图像信息,不依赖其他帧的信息进行解码,可以对关键帧进行单独解码和显示。关键帧图像可以用于确定时间点参考,以便解码器和播放器可以正确地定位和显示视频数据中的特定位置,播放器可以根据关键帧的时间戳准确跳转到视频数据的指定位置,关键帧的间隔决定了编码器将关键帧插入到视频流中的时间。
编码器通过对关键帧图像进行独立编码,然后,根据关键帧的编码数据,以及其他帧与关键帧的信息差异,对其他帧进行编码,得到其他帧的编码数据,将关键帧的编码数据和其他帧的编码数据按照POC值插入到主图层上,得到主图层编码数据。
S404:根据主图层编码数据,对具有相同编号的辅视角视频数据中的各帧图像进行编码,得到辅图层编码数据。
在本实施例中,根据多路视频数据的视差信息,对具有相同POC值的辅视角视频数据中各帧图像按照对应的主图层编码数据进行差异化编码,得到辅图层编码数据。
上述S103对多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件的过程,可以包括:
S405:对多图层编码数据、图层标识和预设空间视频标识进行封装,得到预设格式的视频文件。
在本实施例中,对主图层编码数据、主图层ID、辅图层编码数据、辅图层ID和预设空间视频标识进行封装,得到预设格式的视频文件,以便预设空间设备可以根据主图层ID对主图层编码数据进行解码,将解码得到的视频数据作为主图层视频数据,根据辅图层ID对辅图层编码数据进行解码,将解码得到的视频数据作为辅图层视频数据,根据主图层视频数据和辅图层视频数据,合成用户可以看到的空间视频。
在一些实施例中,还可以设置多图层编码数据之间的相对偏移值(RelativeOffset of Multi-Layer Images),用于指示不同图层之间的位置差异,对多图层编码数据、图层标识、多图层编码数据之间的相对偏移值和预设空间视频标识进行封装,得到预设格式的视频文件,使得空间设备可以根据多图层编码数据之间的相对偏移值,对主图层视频数据和辅图层视频数据进行叠加,得到空间视频。
在一些实施例中,通过确定主视角和辅视角,可以采用MV-HEVC(Multi-View HighEfficiency Video Coding,基于高效视频编码的多视角视频编码标准)分别进行编码。
上述实施例提供的空间视频生成方法,通过设置主视角和辅视角,对主视角按照关键帧和非关键帧进行编码,对辅视角按照与主视角具有相同编码的图像进行编码,提高编码效率。
在一些实施例中,预设格式的视频文件中还封装有其他多媒体数据,例如,视频帧的展示时间presentationTimeStamp和帧时长frameDuration。
presentationTimeStamp是一个时间戳,用于指示视频帧应该在视频播放或渲染中展示的时间点,表示视频帧的呈现时间,通常以时钟周期(例如秒或毫秒)表示。在视频播放中,解码后的视频帧会根据其presentationTimeStamp来决定何时显示在屏幕上。PTS对于保持视频帧的正确顺序和时序关系非常重要。它确保视频帧按正确的顺序显示,以避免播放中的撕裂、跳跃或不同步的问题。
frameDuration是指每个视频帧在播放时的持续时间,通常以时钟周期(例如,秒或毫秒)表示,表示连续两个视频帧之间的时间间隔,也被称为帧速率的倒数。帧速率是指每秒播放的视频帧数量,而frameDuration则是帧速率的倒数。frameDuration决定了视频播放的流畅度和持续时间。通常,视频播放器会根据frameDuration来控制每秒显示多少帧,以维持指定的帧速率。
在一些实施例中,对于每一图层的编码数据对应的图层标识(videoLayerID)、视角(eyes)、编码方式(pack)、投影方式(proj)、多媒体数据类型(mdia),采用CMTagCollection进行统一管理,将所有的多媒体数据以CMTaggedBufferGroupRef进行统一管理。
在一些实施例中,还可以包括每一路视频数据的视图数据CVPixelBufferRef,视图数据CVPixelBufferRef包括了视频数据的像素、图像宽度高度以及其他图像特征信息,可以用于滤镜应用、图像旋转、缩放等。
需要说明的是,本申请提供的空间视频生成方法虽然针对的是不具有空间视频拍摄功能的终端设备,但是对终端设备的硬件版本和软件版本仍然有一定的要求,因此,在对多路视频数据进行编码前,需要对编码的前提条件即终端设备的硬件版本和软件版本进行检查,确定终端设备的硬件版本和软件版本是否符合要求。
示例的,可以采用VideoToolbox工具库中提供的检测方法VTIsStereoMVHEVCEncodeSupported对终端设备的硬件版本和软件版本进行检测。
在一些实施例中,本实施例提供的空间视频生成方法也可以应用于空间图像生成,通过对多路图像数据进行多图层编码,在空间设备中对多图层编码进行解码,以合成具有立体空间效果的空间图像。
在一种可能的实现方式中,本实施例提供的空间视频生成方法的步骤可以包括:
步骤1:检测编码前提条件是否满足,具体包括终端设备的硬件版本和软件版本是否满足。
在本实施例中,终端设备为支持iOS系统的终端设备,采用Apple平台提供的VideoToolbox工具库中的VTIsStereoMVHEVCEncodeSupported检测方法检测终端设备的硬件版本,以确定终端设备是否支持MVHEVC编码,检测终端设备的软件版本,以确定终端设备是否支持MVHEVC编码器。
步骤2:若编码前提条件满足,则获取多个摄像头采集的多路视频数据,对多路视频数据进行整理,统一多路视频数据的分辨率、颜色空间、格式。
对于iOS系统的终端设备,多路视频数据可以采用自带多个摄像头的终端设备的AVCaptureDevice采集,也可以通过链接其他摄像头进行采集。
步骤3:采集摄像头的世界坐标系、多个摄像头之间的物理距离、多路视频数据的元数据metada,完善视频扩展使用(VEXU)信令。
其中,元数据metadata是附加到视频文件中的信息,用于描述视频内容或提供关于视频的额外信息,例如可以包括拍摄日期、位置、设备信息、摄像头的设置参数、视频内容描述文字或关键词标签等,视频内容描述文字或关键词标签有助于索引和搜索视频。
VEXU包括:HeroEye,用于配置多路视频数据编码过程中使用的主视角,选择一路视频数据作为主视角视频数据,以供编码和处理。
StereoCameraBaseline,用于配置多路摄像头的基线值,基线值为多个摄像机之间的物理距离,在立体视觉中,基线值决定了深度感的呈现和立体效果的质量。
HorizontalDisparityAdjustment,用于调整水平视差(horizontal disparity)的值,视差是指多个视角之间物体在水平方向上的位移,可以影响立体效果和深度感。通过调整视差,可以控制立体图像中物体的位置和深度感。
步骤4:对编码器的相关配置进行初始化,构建编码队列。
具体的,初始化包括:定义编码方式、编码格式、分辨率、码率、关键帧、颜色空间、MVHEVC编码参数要求。MVHEVC编码参数要求包括:图层数据、图层ID、主视角数据、多图层图像的相对偏移值和缓冲池。
其中,在多视角视频编码中,设置多个图层,每个图层数据对应一路视频数据,图层ID是标识不同图层的唯一标识,每个图层有唯一的图层ID,用于将其与其他图层区分开,有助于解码器识别和处理每个图层的数据。
主视角数据为预先确定的多路视频数据中定义为主视角的视频数据,主视角数据是主图层的数据,包含了主视角的视频图像信息。
步骤5:将每路视频数据对应的图层ID、视角、元数据、tag标识与图像信息CVPixelBufferRef进行绑定,得到每路视频数据的CMTagCollection。
tag标识包括:图层标识(videoLayerID)、视角(eyes)、编码方式(pack)、投影方式(proj)、多媒体数据类型(mdia)。
步骤6:采用MVHEVC编码器对多路视频数据分别进行编码,将presentationTimeStamp、frameDuration分别与编码后的多图层编码数据进行绑定。
步骤7:将编码后的Buffer数据写入预设格式的视频文件,检测视频特征是否包括多路、立体等数据特征,若存在,确定确定视频文件符合预设空间设备的空间视频生成要求。
步骤8:将预设格式的视频文件发送给预设空间设备。
基于上述空间视频生成系统,以下结合实施例对应用于空间设备的空间视频生成方法的具体实现方式进行说明。
请参考图6,为本申请实施例提供的空间视频生成方法的流程示意图五,如图6所示,该方法可以包括:
S501:接收终端设备发送的预设格式的视频文件,预设格式的视频文件为终端设备对多个摄像头分别采集的多路视频数据进行多图层视频编码,并对多图层编码数据和预设空间视频标识进行封装得到的,终端设备为不具有空间视频拍摄功能的终端设备,多个摄像头分别为不同焦距的摄像头。
S502:根据预设空间视频标识,对多图层编码数据进行解码,生成空间视频。
在本实施例中,空间设备为可穿戴设备,用户可以穿戴空间设备,空间设备接收终端设备发送的预设格式的视频文件,基于预设格式的视频文件中的空间视频标识,确定多图层编码数据可以用于生成空间视频,空间设备采用与终端设备的编码器对应的解码器对视频文件进行解码,得到两路视频数据,并基于预设空间视频标识,将两路视频数据在空间层面进行合成,得到空间视频,以使得佩戴空间设备的用户可以查看到具有空间立体效果的场景视频图像。
在一种可能的实现方式中,预设格式的视频文件还包括:视差信息请参考图7,为本申请实施例提供的空间视频生成方法的流程示意图六,如图7所示,上述S502根据预设空间视频标识,对多图层编码数据进行解码,生成空间视频的过程,可以包括:
S601:根据空间视频标识,对多图层编码数据进行解码,得到解码视频数据。
S602:根据视差信息,调整解码视频数据的深度值,得到空间视频。
在本实施例中,空间设备对多图层编码数据进行解码得到多图层视频数据后,根据视差信息,确定多图层视频数据之间的深度差,以合成具有对应深度差的空间视频。
上述实施例提供的空间视频生成方法,针对预设空间设备基于预设空间视频标识对不具有空间视频拍摄功能的终端设备生成的多图层编码数据进行解码后生成空间视频,以实现不具有空间视频拍摄功能的终端设备所拍摄的视频数据也可以生成空间视频,使得用户利用已有的终端设备提供空间视频功能,而无需购买新的终端设备,提高空间设备的推广度,降低用户的拍摄成本。
在上述方法实施例的基础上,本申请实施例还提供一种空间视频生成装置,应用于不具有空间视频拍摄功能的终端设备。请参考图8,为本申请实施例提供的空间视频生成装置的结构示意图一,如图8所示,该装置可以包括:
视频获取模块101,用于获取多个摄像头分别采集的多路视频数据,多个摄像头分别为不同焦距的摄像头;
视频编码模块102,用于对多路视频数据进行多图层视频编码,得到多图层编码数据;
文件封装模块103,用于对多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件;
文件发送模块104,用于向终端设备连接的预设空间设备发送预设格式的视频文件,以使得预设空间设备基于预设空间视频标识对多图层编码数据进行解码后生成空间视频。
可选的,视频获取模块101之后,装置还包括:
视觉比例修改模块,用于若多个摄像头属于不同的设备,对多路视频数据的视觉比例进行修改,得到视觉比例相同的多路视频数据。
可选的,视频编码模块102,具体用于根据多个摄像头的空间距离,确定多路视频数据的视差信息;根据视差信息对多路视频数据进行多图层视频编码,得到多图层编码数据,预设格式的视频文件还包括:视差信息。
可选的,视频编码模块102,还用于确定多路视频数据中的主视角视频数据和辅视角视频数据;确定主视角视频数据和辅视角视频数据中各帧图像的编号;根据主视角视频数据的关键帧图像,对主视角视频数据中的各帧图像进行编码,得到主图层编码数据;根据主图层编码数据,对具有相同编号的辅视角视频数据中的各帧图像进行编码,得到辅图层编码数据;
文件封装模块103,具体用于对多图层编码数据、图层标识和预设空间视频标识进行封装,得到预设格式的视频文件。
可选的,视频编码模块102,还用于根据多个摄像头的空间距离,确定基线值;根据预先设置空间视频的深度和基线值,确定视差信息。
在上述方法实施例的基础上,本申请实施例还提供一种空间视频生成装置,应用于空间设备。请参考图9,为本申请实施例提供的空间视频生成装置的结构示意图二,如图9所示,该装置可以包括:
文件接收模块201,用于接收终端设备发送的预设格式的视频文件,预设格式的视频文件为终端设备对多个摄像头分别采集的多路视频数据进行多图层视频编码,并对多图层编码数据和预设空间视频标识进行封装得到的,终端设备为不具有空间视频拍摄功能的终端设备,多个摄像头分别为不同焦距的摄像头;
视频解码模块202,用于根据预设空间视频标识,对多图层编码数据进行解码,生成空间视频。
可选的,预设格式的视频文件还包括:视差信息,视频解码模块202,具体用于根据空间视频标识,对多图层编码数据进行解码,得到解码视频数据;根据视差信息,调整解码视频数据的深度值,得到空间视频。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
请参考图10,为本申请实施例提供的电子设备的示意图,如图10所示,该电子设备300可以包括:处理器301、存储介质302和总线,存储介质302存储有处理器301可执行的程序指令,当电子设备300运行时,处理器301与存储介质302之间通过总线通信,处理器301执行程序指令,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种计算机可读存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种空间视频生成方法,其特征在于,应用于不具有空间视频拍摄功能的终端设备,所述方法包括:
获取多个摄像头分别采集的多路视频数据,所述多个摄像头分别为不同焦距的摄像头;
对所述多路视频数据进行多图层视频编码,得到多图层编码数据;
对所述多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件;
向所述终端设备连接的预设空间设备发送所述预设格式的视频文件,以使得所述预设空间设备基于所述预设空间视频标识对所述多图层编码数据进行解码后生成空间视频。
2.如权利要求1所述的方法,其特征在于,所述获取多个摄像头分别采集的多路视频数据之后,所述方法还包括:
若所述多个摄像头属于不同的设备,对所述多路视频数据的视觉比例进行修改,得到视觉比例相同的多路视频数据。
3.如权利要求1所述的方法,其特征在于,所述对所述多路视频数据进行多图层视频编码,得到多图层编码数据,包括:
根据所述多个摄像头的空间距离,确定所述多路视频数据的视差信息;
根据所述视差信息对所述多路视频数据进行多图层视频编码,得到所述多图层编码数据,所述预设格式的视频文件还包括:所述视差信息。
4.如权利要求1所述的方法,其特征在于,所述对所述多路视频数据进行多图层视频编码,得到多图层编码数据,包括:
确定所述多路视频数据中的主视角视频数据和辅视角视频数据;
确定所述主视角视频数据和所述辅视角视频数据中各帧图像的编号;
根据所述主视角视频数据的关键帧图像,对所述主视角视频数据中的各帧图像进行编码,得到主图层编码数据;
根据所述主图层编码数据,对具有相同编号的辅视角视频数据中的各帧图像进行编码,得到辅图层编码数据;
所述对所述多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件,包括:
对所述多图层编码数据、图层标识和所述预设空间视频标识进行封装,得到所述预设格式的视频文件。
5.如权利要求3所述的方法,其特征在于,所述根据所述多个摄像头的空间距离,确定所述多路视频数据的视差信息,包括:
根据所述多个摄像头的空间距离,确定基线值;
根据预先设置所述空间视频的深度和基线值,确定所述视差信息。
6.一种空间视频生成方法,其特征在于,应用于空间设备,所述方法包括:
接收终端设备发送的预设格式的视频文件,所述预设格式的视频文件为所述终端设备对多个摄像头分别采集的多路视频数据进行多图层视频编码,并对多图层编码数据和预设空间视频标识进行封装得到的,所述终端设备为不具有空间视频拍摄功能的终端设备,所述多个摄像头分别为不同焦距的摄像头;
根据所述预设空间视频标识,对所述多图层编码数据进行解码,生成空间视频。
7.如权利要求6所述的方法,其特征在于,所述预设格式的视频文件还包括:视差信息,所述根据所述预设空间视频标识,对所述多图层编码数据进行解码,生成空间视频,包括:
根据所述空间视频标识,对所述多图层编码数据进行解码,得到解码视频数据;
根据所述视差信息,调整所述解码视频数据的深度值,得到所述空间视频。
8.一种空间视频生成装置,其特征在于,应用于不具有空间视频拍摄功能的终端设备,所述装置包括:
视频获取模块,用于获取多个摄像头分别采集的多路视频数据,所述多个摄像头分别为不同焦距的摄像头;
视频编码模块,用于对所述多路视频数据进行多图层视频编码,得到多图层编码数据;
文件封装模块,用于对所述多图层编码数据和预设空间视频标识进行封装,得到预设格式的视频文件;
文件发送模块,用于向所述终端设备连接的预设空间设备发送所述预设格式的视频文件,以使得所述预设空间设备基于所述预设空间视频标识对所述多图层编码数据进行解码后生成空间视频。
9.一种空间视频生成装置,其特征在于,应用于空间设备,所述装置包括:
文件接收模块,用于接收终端设备发送的预设格式的视频文件,所述预设格式的视频文件为所述终端设备对多个摄像头分别采集的多路视频数据进行多图层视频编码,并对多图层编码数据和预设空间视频标识进行封装得到的,所述终端设备为不具有空间视频拍摄功能的终端设备,所述多个摄像头分别为不同焦距的摄像头;
视频解码模块,用于根据所述预设空间视频标识,对所述多图层编码数据进行解码,生成空间视频。
10.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如权利要求1至5任一项所述的空间视频生成方法的步骤,或者,如权利要求6至7任一项所述的空间视频生成方法的步骤。
CN202311842709.1A 2023-12-28 2023-12-28 空间视频生成方法、装置及电子设备 Pending CN117834841A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311842709.1A CN117834841A (zh) 2023-12-28 2023-12-28 空间视频生成方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311842709.1A CN117834841A (zh) 2023-12-28 2023-12-28 空间视频生成方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN117834841A true CN117834841A (zh) 2024-04-05

Family

ID=90507300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311842709.1A Pending CN117834841A (zh) 2023-12-28 2023-12-28 空间视频生成方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN117834841A (zh)

Similar Documents

Publication Publication Date Title
US7136415B2 (en) Method and apparatus for multiplexing multi-view three-dimensional moving picture
JP6365635B2 (ja) 画像処理装置および画像処理方法
KR100742674B1 (ko) 화상데이터 전송시스템, 그의 화상데이터 송신장치, 및그의 화상데이터 수신장치
KR100970649B1 (ko) 수신 시스템 및 데이터 처리 방법
US8780173B2 (en) Method and apparatus for reducing fatigue resulting from viewing three-dimensional image display, and method and apparatus for generating data stream of low visual fatigue three-dimensional image
JP5553310B2 (ja) 立体的なレンダリングのための画像エンコード方法
JP4490074B2 (ja) 立体視画像処理装置、立体視画像表示装置、立体視画像提供方法、および立体視画像処理システム
KR101506219B1 (ko) 3차원 영상 컨텐츠 제공 방법, 재생 방법, 그 장치 및 그기록매체
CN104333746B (zh) 广播接收机及其3d字幕数据处理方法
CN110100435B (zh) 生成装置、识别信息生成方法、再现装置和图像再现方法
KR101578740B1 (ko) 입체영상 디스플레이가 가능한 디지털 방송 수신방법, 및 이를 이용한 디지털 방송 수신장치
CN102257824A (zh) 3d图像信号处理方法和用于实现该方法的图像显示器
US9654762B2 (en) Apparatus and method for stereoscopic video with motion sensors
CN101513077A (zh) 用于经编码的立体图像/视频数据的文件格式
EP2884744B1 (en) Method and apparatus for transceiving image component for 3d image
JPWO2007116549A1 (ja) 画像処理装置
WO2010107174A2 (en) Method for processing three dimensional (3d) video signal and digital broadcast receiver for performing the processing method
EP2523460A1 (en) Image processing device, information recording medium, image processing medium, and program
TWI651960B (zh) 編碼/解碼視訊資料信號之方法與編碼器/解碼器及相關之視訊資料信號、視訊資料載體及電腦程式產品
JP2012186781A (ja) 画像処理装置および画像処理方法
KR20140092910A (ko) 입체 영상 부호화 장치, 입체 영상 복호화 장치, 입체 영상 부호화 방법, 입체 영상 복호화 방법, 입체 영상 부호화 프로그램 및 입체 영상 복호화 프로그램
KR101750047B1 (ko) 3차원 영상 제공 및 처리 방법과 3차원 영상 제공 및 처리 장치
JP2004240469A (ja) 画像データ作成装置およびそのデータを再生する画像データ再生装置
US20130070052A1 (en) Video procesing device, system, video processing method, and video processing program capable of changing depth of stereoscopic video images
US20130108181A1 (en) Method and apparatus for encoding image and method and appartus for decoding image

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