CN114189697B - 一种视频数据处理方法、装置以及可读存储介质 - Google Patents
一种视频数据处理方法、装置以及可读存储介质 Download PDFInfo
- Publication number
- CN114189697B CN114189697B CN202111470639.2A CN202111470639A CN114189697B CN 114189697 B CN114189697 B CN 114189697B CN 202111470639 A CN202111470639 A CN 202111470639A CN 114189697 B CN114189697 B CN 114189697B
- Authority
- CN
- China
- Prior art keywords
- camera
- boundary
- video
- information
- field
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 118
- 238000009877 rendering Methods 0.000 claims abstract description 102
- 238000005538 encapsulation Methods 0.000 claims abstract description 50
- 238000004806 packaging method and process Methods 0.000 claims abstract description 7
- 238000010276 construction Methods 0.000 claims description 115
- 238000012545 processing Methods 0.000 claims description 112
- 230000006399 behavior Effects 0.000 claims description 58
- 230000004048 modification Effects 0.000 claims description 34
- 238000012986 modification Methods 0.000 claims description 34
- 238000009795 derivation Methods 0.000 claims description 30
- 230000000007 visual effect Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 18
- 230000003287 optical effect Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 46
- 238000010586 diagram Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 239000002131 composite material Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- PUAQLLVFLMYYJJ-UHFFFAOYSA-N 2-aminopropiophenone Chemical compound CC(N)C(=O)C1=CC=CC=C1 PUAQLLVFLMYYJJ-UHFFFAOYSA-N 0.000 description 3
- 238000007654 immersion Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012858 packaging process Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- 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/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
-
- 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/161—Encoding, multiplexing or demultiplexing different image signal components
-
- 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/172—Processing image signals image signals comprising non-image signal components, e.g. headers or format information
- H04N13/178—Metadata, e.g. disparity information
-
- 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/194—Transmission of 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/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/243—Image signal generators using stereoscopic image cameras using three or more 2D image sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/282—Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种视频数据处理方法、装置以及可读存储介质,该方法包括:基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流;获取用于指示自由视角视频的场景边界的边界元数据信息,将边界元数据信息添加至文件封装数据盒,得到扩展数据盒;基于扩展数据盒对编码视频位流进行封装处理,得到视频媒体文件;将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到扩展数据盒时,得到与第i个相机相关联的拼接的纹理图和深度图,在确定第i个相机为边界相机时,在视频客户端上渲染得到场景边界内的视频内容。采用本申请,可以在场景边界内提升视频渲染的质量。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种视频数据处理方法、装置以及可读存储介质。
背景技术
在对自由视角视频进行视频处理的过程中,通常会对相机阵列所采集到的内容(例如,纹理图和深度图)进行编码处理,以得到编码后的视频位流(也可称为编码视频位流),进而可以对编码后的视频位流进行封装处理,以得到相应的视频媒体文件。然而,发明人在实践中发现:现有的文件封装技术中,仅指示了一些与自由视角视频的呈现有关的基础的元数据信息,例如,相机阵列包含的相机的数量、每个相机的标识符、所在的位置、所采集到的纹理图和深度图相关的信息等,因此,在涉及到更复杂的边界问题时,如果视频客户端仅考虑这些基础的元数据信息,会导致其在场景边界内的视频渲染的质量降低。
发明内容
本申请实施例提供了一种视频数据处理方法、装置以及可读存储介质,可以在场景边界内提升视频渲染的质量。
本申请实施例一方面提供了一种视频数据处理方法,该方法由服务器执行,包括:
基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流;拼接的纹理图和深度图是通过相机阵列中的第i个相机采集到的多个图像而得到,相机阵列包含N个相机;i为小于或者等于N的正整数;
获取用于指示自由视角视频的场景边界的边界元数据信息,将边界元数据信息添加至自由视角视频对应的文件封装数据盒,得到文件封装数据盒对应的扩展数据盒;
基于扩展数据盒对编码视频位流进行封装处理,得到自由视角视频的视频媒体文件;
将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到扩展数据盒时,得到与第i个相机相关联的拼接的纹理图和深度图,且在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。
本申请实施例一方面提供了一种视频数据处理方法,该方法由视频客户端执行,包括:
在获取到服务器下发的自由视角视频的视频媒体文件时,基于视频媒体文件获取扩展数据盒,得到与相机阵列中的第i个相机相关联的拼接的纹理图和深度图;其中,视频媒体文件是由服务器基于扩展数据盒对编码视频位流进行封装处理所得到的;扩展数据盒是由服务器将获取到的用于指示自由视角视频的场景边界的边界元数据信息添加至自由视角视频对应的文件封装数据盒所得到的;编码视频位流是指由服务器基于拼接的纹理图和深度图所确定的用于构建自由视角视频的位流;拼接的纹理图和深度图是通过第i个相机采集到的多个图像而得到;相机阵列包含N个相机;i为小于或者等于N的正整数;
在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。
本申请实施例一方面提供了一种视频数据处理装置,包括:
位流确定模块,用于基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流;拼接的纹理图和深度图是通过相机阵列中的第i个相机采集到的多个图像而得到,相机阵列包含N个相机;i为小于或者等于N的正整数;
数据盒扩展模块,用于获取用于指示自由视角视频的场景边界的边界元数据信息,将边界元数据信息添加至自由视角视频对应的文件封装数据盒,得到文件封装数据盒对应的扩展数据盒;
文件封装模块,用于基于扩展数据盒对编码视频位流进行封装处理,得到自由视角视频的视频媒体文件;
文件下发模块,用于将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到扩展数据盒时,得到与第i个相机相关联的拼接的纹理图和深度图,且在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。
其中,相机阵列包含M个边界相机;M为与边界相机相关联的边界相机数量字段的字段值;边界相机数量字段用于指示构成自由视角视频的场景边界的边界相机的数量;M为小于或者等于N的正整数;
其中,数据盒扩展模块包括:
标识获取单元,用于在M个边界相机中获取第j个边界相机的相机标识;j为小于或者等于M的正整数;第j个边界相机的相机标识用于指示为与自由视角视频相关联的业务对象渲染第j个边界相机所拍摄的内容区域范围;
信息构建单元,用于构建第j个边界相机的相机参数字段信息、越界处理字段信息以及场景边界的边界范围字段信息;
数据盒生成单元,用于基于构建的相机参数字段信息、越界处理字段信息以及边界范围字段信息,得到场景边界对应的边界信息数据盒;越界处理字段信息用于指示在业务对象的对象行为超越场景边界时的处理方式;边界范围字段信息用于表征在渲染场景边界时的渲染区域范围;
边界确定单元,用于在边界范围字段信息的字段值为第一范围字段值时,基于第j个边界相机所拍摄的内容区域范围,确定渲染区域范围对应的第一场景边界,且将边界信息数据盒所携带的与第一场景边界相关联的信息作为用于指示自由视角视频的第一场景边界的边界元数据信息。
其中,第j个边界相机的相机参数字段信息包括第j个边界相机的边界相机外参以及边界相机内参;边界相机外参包括第j个边界相机在全局参考坐标系中的位置信息和朝向信息;边界相机内参包括第j个边界相机对应的相机标识、相机类型字段、拍摄范围字段信息以及相机深度字段信息;相机类型字段用于表征第j个边界相机的属性类型;拍摄范围字段信息用于表征第j个边界相机所拍摄的内容区域范围,第j个边界相机所拍摄的内容区域范围与第j个边界相机的属性类型相关联;相机深度字段信息用于表征与第j个边界相机相关联的视锥体所指示的深度信息。
其中,边界相机内参是由第j个边界相机的参数推导字段所指示的第一内参构建策略所确定的;第一内参构建策略包括在参数推导字段的字段值为第一推导字段值时的第一内参修改策略、以及在参数推导字段的字段值为第二推导字段值时的第二内参修改策略;第一内参修改策略用于指示第j个边界相机与剩余边界相机具有不同的相机内参;剩余边界相机是指M个边界相机中除第j个边界相机外的边界相机;第二内参修改策略用于指示第j个边界相机与剩余边界相机具有除了相机标识之外均相同的相机内参。
其中,边界相机内参是由第j个边界相机的相机类型字段所指示的第二内参构建策略所确定的;第j个边界相机的相机类型字段所表征的属性类型包括第j个边界相机对应的投影类型和模型类型;在相机类型字段的字段值为第一属性类型字段值时,具有第一属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为等距柱状投影类型;在相机类型字段的字段值为第二属性类型字段值时,具有第二属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为透视投影类型;在相机类型字段的字段值为第三属性类型字段值时,具有第三属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为正交投影类型;在相机类型字段的字段值为第四属性类型字段值时,具有第四属性类型字段值的相机类型字段用于表征第j个边界相机对应的模型类型为针孔相机模型类型;在相机类型字段的字段值为第五属性类型字段值时,具有第五属性类型字段值的相机类型字段用于表征第j个边界相机对应的模型类型为鱼眼相机模型类型。
其中,在第j个边界相机对应的模型类型为针孔相机模型类型时,具有针孔相机模型类型的第j个边界相机对应的拍摄范围字段信息包括第j个边界相机的相机焦距以及第j个边界相机的主光轴在图像坐标系中的偏移量;相机焦距包括第一焦距分量值和第二焦距分量值;偏移量包括第一偏移分量值和第二偏移分量值。
其中,在第j个边界相机对应的模型类型为鱼眼相机模型类型时,具有鱼眼相机模型类型的第j个边界相机对应的拍摄范围字段信息包括第j个边界相机的主光轴在图像坐标系中的偏移量。
其中,装置还包括:
边界构建模块,用于在边界范围字段信息的字段值为第二范围字段值时,构建得到渲染区域范围对应的第二场景边界,且将边界信息数据盒所携带的与第二场景边界的边界类型相关联的信息作为用于指示自由视角视频的第二场景边界的边界元数据信息。
其中,边界构建模块包括:
信息删除单元,用于在边界范围字段信息的字段值为第二范围字段值时,基于边界构建策略,将初始边界字段信息中的初始尺寸信息进行删除处理;
添加构建单元,用于在删除初始尺寸信息后的初始边界字段信息中,添加边界类型字段、场景原点字段以及用于指示渲染区域范围的构建字段信息,得到初始边界字段信息对应的更新边界字段信息,基于更新边界字段信息构建得到渲染区域范围对应的第二场景边界;边界类型字段用于表征第二场景边界的边界类型;边界类型包括六面体类型、球体类型、圆柱体类型以及半球体类型;场景原点字段用于指示第二场景边界的场景原点。
其中,若场景原点字段的字段值为第一原点字段值,则将三维笛卡尔坐标系下与第二场景边界的边界类型相关联的关键位置点作为第二场景边界的场景原点;若场景原点字段的字段值为第二原点字段值,则将三维笛卡尔坐标系中的默认位置点作为第二场景边界的场景原点。
其中,若边界类型字段的字段值为第一边界类型字段值,则具有第一边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为六面体类型,且确定第二场景边界为六面体;六面体对应的构建字段信息包括六面体的尺寸信息;六面体对应的关键位置点为六面体的底面上的目标顶点。
其中,若边界类型字段的字段值为第二边界类型字段值,则具有第二边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为球体类型,且确定第二场景边界为球体;球体对应的构建字段信息包括对球体的初始球心信息进行删除处理后所得到的球体的半径信息;球体对应的关键位置点为球体的球心。
其中,若边界类型字段的字段值为第三边界类型字段值,则具有第三边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为圆柱体类型,且确定第二场景边界为圆柱体;圆柱体对应的构建字段信息包括圆柱体的尺寸信息;圆柱体的尺寸信息包括圆柱体在第一坐标维度上的半径、圆柱体在第二坐标维度上的半径以及圆柱体在第三坐标维度上的高度信息;圆柱体对应的关键位置点为圆柱体的底面的圆心。
其中,若边界类型字段的字段值为第四边界类型字段值,则具有第四边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为半球体类型,且确定第二场景边界为半球体;半球体对应的构建字段信息包括半球体对应的平面法向量以及与半球体的尺寸信息;半球体对应的关键位置点为半球体的底面的圆心。
其中,第j个边界相机的越界处理字段信息包括越界属性字段;在越界属性字段的字段值为第一属性字段值时,具有第一属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,在视频客户端上为业务对象展示第一虚拟视窗区域内的视频内容;第一虚拟视窗区域为第一虚拟相机对应的视窗区域,第一虚拟相机位于场景边界的场景原点,且第一虚拟相机的朝向为默认朝向。
其中,在越界属性字段的字段值为第二属性字段值时,具有第二属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,在视频客户端上为业务对象展示目标相机标识所指示的目标相机对应的内容区域范围内的视频内容;目标相机属于相机阵列。
其中,在越界属性字段的字段值为第三属性字段值时,具有第三属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,在视频客户端上为业务对象展示第二虚拟视窗区域内的视频内容;第二虚拟视窗区域为第二虚拟相机对应的视窗区域,第二虚拟相机的位置信息和朝向信息通过虚拟相机指定策略所指定。
其中,第j个边界相机的越界处理字段信息是由越界构建策略所确定的;越界构建策略包括第一越界构建策略和第二越界构建策略;第一越界构建策略用于指示第j个边界相机与剩余边界相机具有不同的越界处理字段信息;剩余边界相机是指M个边界相机中除第j个边界相机外的边界相机;第二越界构建策略用于指示第j个边界相机与剩余边界相机具有相同的越界处理字段信息。
其中,扩展数据盒还包括自由视角视频对应的更新自由视角信息数据盒;装置还包括:
数据盒更新模块,用于对自由视角视频对应的初始自由视角信息数据盒所携带的模型类型字段、以及相机阵列中的每个相机分别对应的相机位置信息和相机焦距信息进行删除处理;在删除处理后的初始自由视角信息数据盒中分别为每个相机添加相机外参和相机内参,得到更新自由视角信息数据盒,且将更新自由视角信息数据盒所携带的信息作为用于指示自由视角视频的轨道所包含的视角的自由视角元数据信息。
其中,更新自由视角信息数据盒是由相机参数重复字段所指示的第一数据盒构建策略所确定的;
数据盒更新模块包括:
字段添加单元,用于在删除处理后的初始自由视角信息数据盒中添加相机参数重复字段;
第一外参添加单元,用于为相机阵列中的第i个相机添加第一相机外参,且为相机阵列中的第k个相机添加第二相机外参;k为小于或者等于N的正整数;
第一内参添加单元,用于若相机参数重复字段的字段值为第一重复字段值,则确定第一数据盒构建策略包含第一数据盒修改策略,基于第一数据盒修改策略,为第i个相机添加第一相机内参,且为第k个相机添加第二相机内参;第一相机内参和第二相机内参包含有除了相机标识之外均相同的参数信息;第一相机内参和第二相机内参均是由第二内参构建策略所确定的;
第一数据盒确定单元,用于基于添加的第一相机外参、第二相机外参、第一相机内参以及第二相机内参,得到更新自由视角信息数据盒。
其中,数据盒更新模块还包括:
第二内参添加单元,用于若相机参数重复字段的字段值为第二重复字段值,则确定第一数据盒构建策略包含第二数据盒修改策略,基于第二数据盒修改策略,为第i个相机添加第三相机内参,且为第k个相机添加第四相机内参;第三相机内参和第四相机内参包含有不相同的参数信息;第三相机内参和第四相机内参均是由第二内参构建策略所确定的;
第二数据盒确定单元,用于基于添加的第一相机外参、第二相机外参、第三相机内参以及第四相机内参,得到更新自由视角信息数据盒。
其中,更新自由视角信息数据盒是由第二数据盒构建策略所确定的;
数据盒更新模块包括:
第二外参添加单元,用于基于第二数据盒构建策略,在删除处理后的初始自由视角信息数据盒中为相机阵列中的第i个相机添加第三相机外参,且为相机阵列中的第k个相机添加第四相机外参;k为小于或者等于N的正整数;
第三内参添加单元,用于为第i个相机添加第五相机内参,且为第k个相机添加第六相机内参;第五相机内参和第六相机内参均是由第一内参构建策略所确定的;
第三数据盒确定单元,用于基于添加的第三相机外参、第四相机外参、第五相机内参以及第六相机内参,得到更新自由视角信息数据盒。
本申请实施例一方面提供了一种视频数据处理装置,包括:
图像获取模块,用于在获取到服务器下发的自由视角视频的视频媒体文件时,基于视频媒体文件获取扩展数据盒,得到与相机阵列中的第i个相机相关联的拼接的纹理图和深度图;其中,视频媒体文件是由服务器基于扩展数据盒对编码视频位流进行封装处理所得到的;扩展数据盒是由服务器将获取到的用于指示自由视角视频的场景边界的边界元数据信息添加至自由视角视频对应的文件封装数据盒所得到的;编码视频位流是指由服务器基于拼接的纹理图和深度图所确定的用于构建自由视角视频的位流;拼接的纹理图和深度图是通过第i个相机采集到的多个图像而得到;相机阵列包含N个相机;i为小于或者等于N的正整数;
视频渲染模块,用于在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。
其中,场景边界包括第一场景边界和第二场景边界;第一场景边界是基于相机阵列中的每个边界相机所拍摄的内容区域范围所确定的;第二场景边界是基于边界构建策略所确定的;第二场景边界对应的区域范围大于第一场景边界对应的区域范围;第二场景边界对应的区域范围是指在渲染第二场景边界时的渲染区域范围;
其中,视频渲染模块包括:
行为获取单元,用于在确定第i个相机为边界相机时,获取与自由视角视频相关联的业务对象的对象行为;
第一渲染单元,用于若对象行为相关联的视频内容超出第i个相机所拍摄的内容区域范围,且未超出渲染区域范围,则基于拼接的纹理图和深度图,在视频客户端上渲染得到第i个相机所拍摄的内容区域范围内的视频内容;
第二渲染单元,用于若对象行为相关联的视频内容超出渲染区域范围,则从边界元数据信息中获取第i个相机的越界处理字段信息,在视频客户端上渲染得到与越界处理字段信息相关联的视频内容。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,服务器(即编码端)在通过相机阵列中的第i个相机采集到的多个图像得到用于进行拼接的纹理图和深度图时,可以基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流,其中,相机阵列包含N个相机,这里的i为小于或等于N的正整数。应当理解,对于相机阵列中的每个相机均可以获取到相应的纹理图和深度图,这里以第i个相机为例进行说明。这样,服务器可以进一步获取用于指示自由视角视频的场景边界的边界元数据信息,并将该边界元数据信息添加至自由视角视频对应的文件封装数据盒,从而得到文件封装数据盒对应的扩展数据盒。进一步,服务器可以基于得到的扩展数据盒对上述编码视频位流进行封装处理,从而得到用于下发给视频客户端(即解码端)的视频媒体文件。这样,当视频客户端在基于该视频媒体文件获取到扩展数据盒时,可以得到与第i个相机相关联的拼接的纹理图和深度图,且在确定第i个相机为边界相机时,可以在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。由此可知,在文件封装过程中,本申请实施例可以提供边界元数据信息,且可以将该边界元数据信息添加至相应的视频媒体文件,这样,视频客户端就可以根据该边界元数据信息确定可以渲染的自由视角视频的场景边界,进而可以在该场景边界内渲染呈现相应的视频内容,从而可以在场景边界内提升视频渲染的质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种视频处理的流程示意图;
图2是本申请实施例提供的一种自由视角视频***的架构示意图;
图3是本申请实施例提供的6DoF的示意图;
图4是本申请实施例提供的3DoF+的示意图;
图5是本申请实施例提供的3DoF的示意图;
图6是本申请实施例提供的一种自由视角视频数据的表达示意图;
图7是本申请实施例提供的一种视频数据处理方法的流程示意图;
图8是本申请实施例提供的一种视频数据处理方法的流程示意图;
图9是本申请实施例提供的一种视频数据处理方法的流程示意图;
图10是本申请实施例提供的一种视频数据处理装置的结构示意图;
图11是本申请实施例提供的一种视频数据处理装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图;
图13是本申请实施例提供的一种视频数据处理***的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
沉浸媒体(也可称为沉浸式媒体)是指能够提供沉浸式的媒体内容,使沉浸于该媒体内容中的业务对象能够获得现实世界中视觉、听觉等感官体验的媒体文件。沉浸媒体按照业务对象在消费媒体内容时的自由度(Degree of Freedom,简称DoF),可以分为3DoF媒体、3DoF+媒体以及6DoF媒体。其中,自由视角视频即为一种常见的3DoF+媒体和6DoF媒体,也可称之为多视角视频、多视点视频或自由视点视频。这里的自由视角视频是指采用多个相机组成的相机阵列从多个角度对同一个三维场景进行拍摄所采集到的带有纹理信息(例如,色彩信息)和深度信息(例如,空间距离信息),且包含不同视角的视频。在本申请实施例中,可以将进行沉浸式媒体(例如自由视角视频)消费的用户统称为业务对象。
本申请实施例涉及自由视角视频的处理技术,其处理过程可参见图1,图1是本申请实施例提供的一种视频处理的流程示意图。如图1所示,针对自由视角视频的完整处理过程具体可以包括:视频采集,视频编码,视频文件封装,视频文件传输,视频文件解封装,视频解码和最终的视频呈现。
其中,视频采集用于将模拟视频转换为数字视频,并按数字视频文件的格式进行保存,也就是说,视频采集可将多个相机从不同角度采集到的视频信号转换为二进制数字信息,其中,由视频信号转换为的二进制数字信息是一种二进制数据流,该二进制数字信息也可称为该视频信号的码流或者位流(Bitstream)。视频编码则是值通过压缩技术,将原始视频格式的文件转换为另一种视频格式文件。从视频信号的获取方式看,视频信号可以分为相机拍摄到的以及计算机生成的两种方式,由于统计特性的不同,其对应的压缩编码方式也可能有所区别,常用的压缩编码方式具体可以包括HEVC(High Efficiency VideoCoding,国际视频编码标准HEVC/H.265),VVC(versatile video coding,国际视频编码标准VVC/H.266),AVS(Audio Video Coding Standard,中国国家视频编码标准AVS),AVS3(由AVS标准组推出的第三代视频编码标准)等。
在视频编码后,则需要对编码后的数据流(即编码视频位流)进行封装并传输给业务对象,视频文件封装是指按照封装格式(或容器,或文件容器),将已经编码压缩好的视频码流和音频码流按照一定的格式存放在一个文件中,常见的封装格式包括AVI格式(AudioVideo Interleaved,音频视频交错格式)或者ISOBMFF(ISO Based Media File Format,基于ISO(International Standard Organization,国际标准化组织)标准的媒体文件格式),其中,ISOBMFF是媒体文件的封装标准,最典型的ISOBMFF文件即MP4(Moving PictureExperts Group 4,动态图像专家组4)文件。在一个实施例中,将音频码流和视频码流按照如ISOBMFF的文件格式封装在文件容器中形成封装文件(也可称为视频媒体文件),在该封装文件中,以轨道(Track)为文件封装过程中的媒体数据集合,一个封装文件可由多个轨道组成,比如一个封装文件可以包含一个视频轨道、一个音频轨道以及一个字幕轨道。其中,以样本(Sample)为文件封装过程中的封装单位,一个轨道可由多个样本组成,比如视频轨道中的一个样本通常为一个视频帧。
封装文件将通过视频传输到用户终端上的视频客户端,视频客户端则可在进行解封装,解码等逆操作后,在视频客户端中进行最终视频内容的呈现。其中,封装文件可通过传输协议发送到视频客户端,该传输协议例如可以是DASH(dynamic adaptive streamingover HTTP,基于HTTP的动态自适应流是一种自适应比特率流技术),采用DASH进行传输可以使高质量流媒体可以通过传统的HTTP网络服务器以互联网传递。在DASH中,用MPD(mediapresentation description,DASH中的媒体演示描述信令)描述媒体片段信息,且DASH中,一个或多个媒体成分的组合,比如某种分辨率的视频文件可以看做一个Representation(代表),而包含的多个Representation可看做是一个Adaptation Set(一个视频流的集合),一个DASH可包含一个或多个Adaptation Set。
可以理解,视频客户端的文件解封装的过程与上述的文件封装过程是相逆的,视频客户端可按照封装时的文件格式要求对封装文件进行解封装,得到音频码流和视频码流。视频客户端的解码过程也与编码过程是相逆的,例如,该视频客户端可对视频码流解码,还原出视频内容,且可对音频码流解码,还原出音频内容。
为便于理解,请一并参见图2,图2是本申请实施例提供的一种自由视角视频***的架构示意图。如图2所示,该自由视角视频***可以包括编码设备(例如,编码设备200A)和解码设备(例如,解码设备200B),编码设备可以是指自由视角视频的提供者所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)等)或服务器。解码设备可以是指自由视角视频的使用者所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)、VR设备(如VR头盔、VR眼镜等)),该计算机设备集成有视频客户端。自由视角视频的数据处理过程包括在编码设备侧的数据处理过程及在解码设备侧的数据处理过程。
在编码设备侧的数据处理过程主要包括:(1)自由视角视频的媒体内容的获取与制作过程;(2)自由视角视频的编码及文件封装的过程。在解码设备侧的数据处理过程主要包括:(1)自由视角视频的文件解封装及解码的过程;(2)自由视角视频的渲染过程。另外,编码设备与解码设备之间涉及自由视角视频的传输过程,该传输过程可以基于各种传输协议来进行,此处的传输协议可包括但不限于:DASH协议、HLS(HTTP Live Streaming,动态码率自适应传输)协议、SMTP(Smart Media Transport Protocol,智能媒体传输协议)、TCP(Transmission Control Protocol,传输控制协议)等。
下面将结合图2,分别对自由视角视频的数据处理过程中涉及的各个过程进行详细介绍。
一、在编码设备侧的数据处理过程:
(1)自由视角视频的媒体内容的获取与制作过程。
1)自由视角视频的媒体内容的获取过程。
自由视角视频的媒体内容是通过捕获设备采集现实世界的声音-视觉场景获得的。在一种实现中,捕获设备可以是指设于编码设备中的硬件组件,例如捕获设备是指终端的麦克风、摄像头、传感器等。另一种实现中,该捕获设备也可以是与编码设备相连接的硬件装置,例如与服务器相连接的摄像头,用于为编码设备提供自由视角视频的媒体内容的获取服务。该捕获设备可以包括但不限于:音频设备、摄像设备及传感设备。其中,音频设备可以包括音频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。捕获设备的数量可以为多个,这些捕获设备被部署在现实空间中的一些特定位置以同时捕获该空间内不同角度的音频内容和视频内容,捕获的音频内容和视频内容在时间和空间上均保持同步。本申请实施例可以将由部署在特定位置的捕获设备所采集到的用于提供多自由度(如3DoF+、6DoF)观看体验的3维空间的媒体内容称作自由视角视频。
例如,以获取自由视角视频的视频内容为例进行说明,如图2所示,视觉场景20A(可以为真实世界的视觉场景或合成的视觉场景)可以由编码设备200A相连接的一组相机阵列捕获,或者,可以由与编码设备200A相连接的具有多个摄像头和传感器的摄像设备捕获,或者,还可以由多个虚拟相机捕获。采集结果可以为源自由视角数据20B(例如,视觉场景20A对应的纹理图和深度图)。
2)自由视角视频的媒体内容的制作过程。
应当理解,本申请实施例所涉及的自由视角视频的媒体内容的制作过程可以理解为自由视角视频的内容制作的过程,且这里的自由视角视频的内容制作主要由部署在多个位置的相机或相机阵列拍摄得到的多视点视频等形式的内容制作而成,比如,编码设备可以将自由视角视频从三维的表示转换成二维的表示。这里的自由视角视频可以包含几何信息、属性信息、占位图信息以及图集数据等。
具体的,①将采集输入的自由视角视频的三维表示数据投影到二维平面,通常采用正交投影、透视投影、ERP投影(Equi-Rectangular Projection,等距柱状投影)方式,投影到二维平面的自由视角视频通过几何组件、占位组件和属性组件的数据表示,其中,几何组件的数据提供自由视角视频每个点在三维空间中的位置信息,属性组件的数据提供自由视角视频每个点的额外属性(如纹理或材质信息),占位组件的数据指示其他组件中的数据是否与自由视角视频关联;
②对自由视角视频的二维表示的组件数据进行处理生成图块,根据几何组件数据中表示的自由视角视频的位置,将自由视角视频的二维表示所在的二维平面区域分割成多个不同大小的矩形区域,一个矩形区域为一个图块,图块包含将该矩形区域反投影到三维空间的必要信息;
③打包图块生成图集,将图块放入一个二维网格中,并保证各个图块中的有效部分是没有重叠的。一个自由视角视频生成的图块可以打包成一个或多个图集;
④基于图集数据生成对应的几何数据、属性数据和占位数据,将图集数据、几何数据、属性数据、占位数据组合形成自由视角视频在二维平面的最终表示。
此外,需要说明的是,由于采用捕获设备可以捕获到全景视频,这样的视频经编码设备处理并传输至解码设备进行相应的数据处理后,解码设备侧的业务对象需要通过执行一些特定动作(如头部旋转)来观看360度的视频信息,而执行非特定动作(如移动头部)并不能获得相应的视频变化,VR体验不佳,因此需要额外提供与全景视频相匹配的深度信息,来使业务对象获得更优的沉浸度和更佳的VR体验,这就涉及6DoF制作技术。当业务对象可以在模拟的场景中较自由地移动时,称为6DoF。采用6DoF制作技术进行自由视角视频的视频内容的制作时,捕获设备一般会选用光场摄像头、激光设备、雷达设备等,捕获空间中的点云数据或光场数据。为便于理解,请一并参见图3,图3是本申请实施例提供的6DoF的示意图。如图3所示,6DoF分为窗口6DoF、全方向6DoF和6DoF,其中,窗口6DoF是指业务对象在X轴、Y轴的旋转移动受限,以及在Z轴的平移受限,例如,业务对象不能够看到窗户框架外的景象,以及业务对象无法穿过窗户。全方向6DoF是指业务对象在X轴、Y轴和Z轴的旋转移动受限,例如,业务对象在受限的移动区域中不能自由地穿过三维的360度VR内容。6DoF是指业务对象在3DoF的基础上,可以沿着X轴、Y轴、Z轴自由平移,例如,业务对象可以在三维的360度VR内容中自由地走动。与6DoF相类似的,还有3DoF和3DoF+制作技术。请一并参见图4,图4是本申请实施例提供的3DoF+的示意图。如图4所示,3DoF+是指当沉浸媒体提供的虚拟场景具有一定的深度信息,业务对象头部可以基于3DoF在一个有限的空间内移动来观看媒体内容提供的画面。请一并参见图5,图5是本申请实施例提供的3DoF的示意图。如图5所示,3DoF是指业务对象在一个三维空间的中心点固定,业务对象头部沿着X轴、Y轴和Z轴旋转来观看媒体内容提供的画面。
(2)自由视角视频的编码及文件封装的过程。
捕获到的音频内容可直接进行音频编码形成自由视角视频的音频码流。捕获到的视频内容可进行视频编码,得到自由视角视频的视频码流。在本申请实施例中,可以将自由视角视频的视频码流称之为编码视频位流。此处需要说明的是,如果采用6DoF制作技术,在视频编码过程中需要采用特定的编码方式(如基于传统视频编码的点云压缩方式)进行编码。以自由视角视频的视频编码为例,编码设备可以对相机阵列所采集到的携带纹理信息的纹理图和携带深度信息的深度图进行图像拼接,得到拼接的纹理图和深度图,进而可以对拼接的纹理图和深度图进行编码,从而得到用于构建自由视角视频的编码视频位流。
将音频码流和视频码流按照自由视角视频的文件格式(如ISOBMFF)封装在文件容器中形成自由视角视频的媒体文件资源,该媒体文件资源可以是媒体文件或媒体片段形成的自由视角视频的媒体文件;并按照自由视角视频的文件格式要求采用媒体呈现描述信息(即MPD)记录该自由视角视频的媒体文件资源的元数据,此处的元数据是对与自由视角视频的呈现有关的信息的总称,该元数据可包括对媒体内容的描述信息、对自由视角视频的轨道所包含的一个或多个视角进行描述的自由视角元数据信息、对自由视角视频的场景边界进行描述的边界元数据信息、对视窗的描述信息以及对媒体内容呈现相关的信令信息等等。编码设备会存储经过数据处理过程之后形成的媒体呈现描述信息和媒体文件资源。这里的媒体呈现描述信息和媒体文件资源可以根据一个特定的媒体文件格式,封装成一个用于下发给解码设备的视频媒体文件。
具体的,采集的音频会被编码成相应的音频码流,自由视角视频的几何信息、属性信息以及占位图信息可以采用传统的视频编码方式,而自由视角视频的图集数据可以采用熵编码方式。然后,按一定格式(如ISOBMFF、HNSS)将编码的媒体封装在文件容器中并结合描述媒体内容属性的元数据和视窗元数据,根据一个特定的媒体文件格式组成一个媒体文件或者组成一个初始化片段和媒体片段,这里可以将其组成的一个媒体文件或者组成一个初始化片段和媒体片段统称为视频媒体文件,进而可以将得到的视频媒体文件下发给相应的解码设备。
例如,如图2所示,编码设备200A对源自由视角数据20B中的一个或多个自由视角视频帧(例如,对纹理图和深度图进行图像拼接后得到的图像帧)进行编码,得到编码后的码流20Ev(如编码视频位流),包括一个图集码流(即对图集数据进行编码后得到的码流),至多一个占用码流(即对占位图信息进行编码后得到的码流),一个几何码流(即对几何信息进行编码后得到的码流),以及零个或更多个属性码流(即对属性信息进行编码后得到的码流)。随后,编码设备200A可以根据特定的媒体文件格式(如ISOBMFF),将一个或多个编码后的码流封装成一个用于本地回放的媒体文件20F或者封装成一个用于流式传输的包含一个初始化片段和多个媒体片段的片段序列20Fs。此外,编码设备200A中的文件封装器也可以将相关的元数据添加到媒体文件20F或片段序列20Fs中。进一步,编码设备200A可以采用某种传输机制(如DASH、SMTP)将片段序列20Fs传输到解码设备200B,同时将媒体文件20F也传输到解码设备200B。其中,可选的,这里的解码设备200B可以为一个播放器。
二、在解码设备侧的数据处理过程:
(3)自由视角视频的文件解封装及解码的过程。
解码设备可以通过编码设备的推荐或按照解码设备侧的业务对象需求自适应动态从编码设备获得自由视角视频的媒体文件资源和相应的媒体呈现描述信息,例如解码设备可根据业务对象的头部/眼睛的跟踪信息确定业务对象的朝向和位置,再基于确定的朝向和位置动态向编码设备请求获得相应的媒体文件资源。媒体文件资源和媒体呈现描述信息通过传输机制(如DASH、SMT)由编码设备传输给解码设备。解码设备侧的文件解封装的过程与编码设备侧的文件封装过程是相逆的,解码设备按照自由视角视频的文件格式(例如,ISOBMFF)要求对媒体文件资源进行解封装,得到音频码流和视频码流。解码设备侧的解码过程与编码设备侧的编码过程是相逆的,解码设备对音频码流进行音频解码,还原出音频内容;解码设备对视频码流进行视频解码,还原出视频内容。
例如,如图2所示,编码设备200A中的文件封装器输出的媒体文件20F与解码设备200B中输入文件解封装器的媒体文件20F'是相同的。文件解封装器对媒体文件20F'或接收到的片段序列20F's进行文件解封装处理,并提取出编码后的码流20E'v,同时解析相应的元数据,随后可以对码流20E'v进行解码,得到解码后的视频信号20D'(即还原出的视频内容)。
(4)自由视角视频的渲染过程。
解码设备根据媒体文件资源对应的媒体呈现描述信息中与渲染相关的元数据,对音频解码得到的音频内容及视频解码得到的视频内容进行渲染,渲染完成即实现了对该图像的播放输出。
例如,如图2所示,解码设备200B可以基于当前的观看方向或视窗,对解码后的视频信号20D'进行重构,得到重构后的自由视角视频数据20B',进而可以对重构后的自由视角视频数据20B'进行渲染,并显示在头戴式显示器或任何其他显示设备的屏幕上。其中,当前的观看方向由头部跟踪,可能还有眼睛跟踪来确定。在视窗相关的传输中,当前的观看方向也会被传递给解码设备200B中的策略模块,该策略模块可以根据当前的观看方向确定要接收的轨道。
自由视角视频***支持数据盒(Box),数据盒是指包括元数据的数据块或对象,即数据盒中包含了相应媒体内容的元数据。自由视角视频可以包括多个数据盒,例如包括文件封装数据盒(ISO Base Media File Format Box,简称为ISOBMFF Box),其包含用于描述文件封装时的相应信息的元数据,例如,具体可以包含构建得到的边界元数据信息或者构建得到的自由视角元数据信息。其中,对ISOBMFF数据盒进行扩展,可以得到扩展数据盒,这里的扩展数据盒可以包括边界信息数据盒和更新自由视角信息数据盒,其中,边界信息数据盒所提供的元数据信息(例如,边界元数据信息)用于描述自由视角视频的场景边界,这里的场景边界可以理解为可呈现给业务对象的空间边界。其中,更新自由视角信息数据盒是对现有的初始自由视角信息数据盒进行扩展和更新所得到的,更新自由视角信息数据盒所提供的元数据信息(例如,自由视角元数据信息)用于描述自由视角视频轨道中的视角信息。
请一并参见图6,图6是本申请实施例提供的一种自由视角视频数据的表达示意图。如图6所示,在本申请实施例中,为了便于自由视角视频的表达、存储、压缩和处理,可以将自由视角视频数据表达为以下信息的组合:相机阵列中的多个相机采集的纹理图,多个相机纹理图对应的深度图,以及相应的自由视角视频内容描述元数据(即上述采用媒体呈现描述信息记录的元数据),该自由视角视频内容描述元数据可以包含多个相机的参数,以及自由视角视频的拼接布局和边缘保护等描述信息。
基于此,本申请实施例提供了一种基于上述扩展数据盒所提供的元数据信息实现自由视角视频的文件封装和信令指示方法。对于自由视角视频的媒体内容的制作过程,具体来说,编码设备可以先通过多个(例如,N个)相机组成的相机阵列采集得到多个相机的纹理图和深度图,进而可以将多个相机的纹理图和对应的深度图进行图像拼接,得到每个相机对应的拼接图像(即拼接的纹理图和深度图所组成的图像帧),此外,如后续需要背景信息,还可将背景信息也拼接进对应的图像帧。进一步,可以对得到的拼接图像进行编码,从而得到用于构建自由视角视频的编码视频位流。为便于理解,这里以相机阵列中的第i个相机为例进行说明,其中,i为小于或者等于N的正整数。例如,编码设备可以通过第i个相机采集得到多个图像,基于这多个图像可以得到第i个相机相关联的、用于进行图像拼接的纹理图和深度图,进而可以采用特定的压缩编码方式(例如,平面视频压缩方式)对拼接的纹理图和深度图进行编码,应当理解,对相机阵列中的其他相机所采集得到的纹理图和深度图也可以进行类似的处理,这里不再进行赘述,最终可以得到相应的编码视频位流。
进一步,编码设备可以获取上述扩展的元数据信息(例如,边界元数据信息),并可将扩展的元数据信息添加至文件封装数据盒(例如,ISOBMFF数据盒),从而可以得到该文件封装数据盒对应的扩展数据盒,随后,编码设备可以基于该扩展数据盒对上述生成的编码视频位流进行封装处理,得到自由视角视频的视频媒体文件,可以理解,在文件封装过程中,编码设备会将扩展数据盒所提供的元数据信息一并封装入视频媒体文件。
需要说明的是,本申请实施例提出了一种自由视角视频场景边界指示方法,根据自由视角视频拍摄时的相机参数等信息,在自由视角视频的视频媒体文件中添加场景边界相关的元数据信息(即边界元数据信息),例如可以包括:
(a)标识构成场景边界的边界相机以及边界相机的位置、朝向等信息;
(b)指示边界相机所拍摄的内容区域范围;
(c)指示场景边界的区域范围以及超越该场景边界时的处理方式。
进一步地,编码设备可以将得到的视频媒体文件传输至解码设备,以使解码设备将自由视角视频重构到三维空间,例如,解码设备在基于该视频媒体文件获取到上述扩展数据盒时,可以基于该扩展数据盒所提供的元数据信息,从该视频媒体文件中获取得到每个相机(例如,第i个相机)相关联的拼接的纹理图和深度图,进而可以根据自由视角视频应用自身的算法,获取解码设备侧的业务对象的位置信息和朝向信息,并结合来源于不同相机的纹理信息和深度信息(即由图像拼接后的纹理图和深度图所提供的的信息),合成业务对象所请求的自由视角虚拟视点,从而可以在解码设备所安装的视频客户端上渲染呈现该自由视角虚拟视点所对应的视频内容。
应当理解,本申请实施例可以进一步考虑自由视角视频的场景边界所带来的影响,其中,解码设备可以在上述多个相机相关联的拼接的纹理图和深度图中确定用于合成渲染的拼接的纹理图和深度图,为便于说明,本申请实施例可以将用于合成渲染的拼接的纹理图和深度图统称为目标拼接图像,进而可以判断目标拼接图像所对应的相机是否为边界相机,以确定自由视角视频的场景边界。为便于理解,这里仍以第i个相机为例进行说明,假设目标拼接图像所对应的相机包括第i个相机,则解码设备会进一步判断第i个相机是否为边界相机,在确定第i个相机为边界相机时,可以基于扩展数据盒中携带的边界元数据信息确定自由视角视频的场景边界,进而可以根据业务对象的对象行为(也可称之为交互行为),在视频客户端上渲染得到该场景边界内相应的视频内容。
在本申请实施例中,业务对象的对象行为是指业务对象与当前所消费的自由视角视频之间的任意交互行为,包括但不限于缩放行为、切换行为、位置交互行为。其中,缩放行为是指业务对象对自由视角视频的视频内容进行画面尺寸的缩小或放大的操作,例如,可以通过双击视频内容A1,实现对视频内容A1的画面放大;又例如,可以通过双指向不同方向同时滑动拉伸视频内容A1,实现对视频内容A1的画面缩小或画面放大。上述切换行为可以包括对自由视角视频的视频内容执行的播放速率切换操作、画质切换操作(即清晰度切换操作)、翻转操作、内容切换操作以及允许在应用层进行预先定义的其他基于事件的触发操作,例如针对画面中的目标位置的点击操作,业务对象面向目标方向时的触发操作等等。上述位置交互行为是指业务对象在观看自由视角视频的视频内容时所产生的针对其对象位置信息(即用户位置信息)的操作,例如实时位置的变动、观看方向的变动、视角方向的变动等。例如,在业务对象B的位置发生变化时,将会在视频客户端上渲染呈现场景边界内与变化后的位置相关联的视频内容。需要说明的是,本申请实施例对上述举例的缩放行为、切换行为以及位置交互行为的具体触发方式不进行限定。
应当理解,本申请实施例提供的方法可以应用于自由视角视频的存储、传输、封装、解封装过程中。
其中,编码设备构建边界元数据信息或者自由视角元数据信息的具体过程,可以参见下述图7所对应实施例的描述。解码设备基于扩展数据盒所提供的元数据信息渲染得到相应视频内容的具体过程,可以参见下述图8所对应实施例的描述。
进一步地,请参见图7,图7是本申请实施例提供的一种视频数据处理方法的流程示意图。该方法可以由自由视角视频***中的编码设备(例如,上述图2所对应实施例中的编码设备200A)来执行,比如,该编码设备可以为服务器。
该方法至少可以包括以下步骤S101-步骤S104:
步骤S101,基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流;
具体的,服务器可以通过包含多个(例如,N个)相机的相机阵列从多个角度对一个三维场景进行拍摄,以得到该三维场景的纹理信息(色彩信息等)和深度信息(空间距离信息等),本申请实施例将不对相机阵列所包含的相机的数量进行限定,且不对相机的类型进行限定。为便于理解,本申请实施例以相机阵列中的第i个相机为例进行说明,对于该相机阵列中的其他相机的处理过程,均可以参见第i个相机,其中,i为小于或者等于N的正整数。服务器可以先获取通过第i个相机对三维场景进行拍摄所得的多个图像,即原始图像,进而可以对这多个原始图像进行图像处理,以得到相应的纹理图和深度图。或者,可选的,第i个相机可以直接输出相应的纹理图和深度图,进而可以将得到的纹理图和深度图传输至服务器,其中,可选的,第i个相机(例如,深度相机)可以在相机内部主动处理采集得到的多个原始图像,从而得到相应的纹理图和深度图,并发送至服务器。进一步,服务器可以对得到的纹理图和深度图进行图像拼接,以得到第i个相机相关联的拼接的纹理图和深度图。在本申请实施例中,可以将拼接的纹理图和深度图统称为拼接图像。其中,对于相机阵列中的其他相机相关联的纹理图和深度图,服务器也会对其进行类似的图像拼接处理,以得到每个相机所对应的拼接图像,这里不再进行赘述。进一步,服务器可以基于第i个相机所对应的拼接图像,确定用于构建自由视角视频的编码视频位流,应当理解,服务器可以分别对每个相机所对应的拼接图像(例如,第i个相机所对应的拼接图像)进行编码,最终可以得到用于构建自由视角视频的编码视频位流。其中,可以采用特定的视频压缩算法进行编码,例如,AVS3编码技术、HEVC编码技术等,本申请实施例对此不做限定。
步骤S102,获取用于指示自由视角视频的场景边界的边界元数据信息,将边界元数据信息添加至自由视角视频对应的文件封装数据盒,得到文件封装数据盒对应的扩展数据盒;
可以理解的是,相机阵列可以包含一个或多个(例如,M个)边界相机,本申请实施例将不对边界相机的数量进行限定。假设相机阵列包含M个边界相机,则M可以为与边界相机相关联的边界相机数量字段的字段值,这里的边界相机数量字段可用于指示构成自由视角视频的场景边界的边界相机的数量。其中,M为小于或者等于N的正整数。
可以理解的是,本申请实施例可以通过自由视角视频的边界信息数据盒(例如,AvsFreeViewBoundaryBox)提供边界元数据信息。其中,该边界信息数据盒中可以包含每个边界相机对应的子边界元数据信息,为便于理解,本申请实施例以为一个边界相机构建对应的子边界元数据信息为例进行说明,比如,以上述M个边界相机中的第j个边界相机为例,服务器可以在M个边界相机中获取第j个边界相机的相机标识,其中,j为小于或者等于M的正整数,第j个边界相机的相机标识可用于指示为业务对象渲染第j个边界相机所拍摄的内容区域范围,这里的业务对象与自由视角视频相关联,可以指任意进行自由视角视频内容消费的用户,例如,观看自由视角视频的用户。进一步,服务器可以构建第j个边界相机的相机参数字段信息、越界处理字段信息以及场景边界的边界范围字段信息,进而可以基于构建的相机参数字段信息、越界处理字段信息以及边界范围字段信息,得到场景边界对应的边界信息数据盒。应当理解,上述第j个边界相机的相机标识、相机参数字段信息、越界处理字段信息以及边界范围字段信息即可构成第j个边界相机对应的子边界元数据信息。其中,越界处理字段信息用于指示在业务对象的对象行为超越场景边界时的处理方式,边界范围字段信息用于表征在渲染场景边界时的渲染区域范围,因此,本申请实施例可以边界范围字段信息指示不同的场景边界。
可选的,在边界范围字段信息的字段值为第一范围字段值时,服务器可以基于第j个边界相机所拍摄的内容区域范围,确定渲染区域范围对应的第一场景边界,且可将边界信息数据盒所携带的与第一场景边界相关联的信息作为用于指示自由视角视频的第一场景边界的边界元数据信息。
可选的,在边界范围字段信息的字段值为第二范围字段值时,服务器可以构建得到渲染区域范围对应的第二场景边界,且可将边界信息数据盒所携带的与第二场景边界的边界类型相关联的信息作为用于指示自由视角视频的第二场景边界的边界元数据信息。
其中,可以理解的是,通过将边界范围字段信息的字段值设置为第一范围字段值,即可由每个边界相机所拍摄的内容区域范围构成第一场景边界,相当于采用了隐式的边界指示策略,通常得到的第一场景边界可能是形状不规则的边界;同理,通过将边界范围字段信息的字段值设置为第二范围字段值,即可构建得到指定边界类型的第二场景边界,相当于采用了显式的边界指示策略,通常得到的第二场景边界是形状规则的边界,例如六面体、球体、圆柱体等等。
其中,可以理解的是,可选的,在一种实施方式中,第一场景边界可以作为自由视角视频的场景边界;可选的,在另一种实施方式中,第二场景边界可以作为自由视角视频的场景边界,此时可以同时存在第一场景边界,第二场景边界对应的区域范围可以大于/等于/小于第一场景边界对应的区域范围,本申请实施例对此不进行限定。
其中,可以理解的是,第j个边界相机的相机参数字段信息可以包括第j个边界相机的边界相机外参以及边界相机内参。这里的边界相机外参可以包括第j个边界相机在全局参考坐标系中的位置信息和朝向信息。
为支持上述步骤,本申请实施例在***层添加了若干描述性字段,以扩展现有ISOBMFF数据盒的形式举例,定义了相关的字段以支持自由视角视频场景边界的指示,下面结合相关的语法,对在ISOBMFF数据盒中扩展的相关字段进行详细说明。
其中,可以理解的是,本申请实施例可以通过自由视角视频的相机外参结构(例如,ExtCameraInfoStruct)提供相机的相机外参(例如,边界相机的边界相机外参)。为便于理解,请参见表1,该表1用于指示本申请实施例提供的一种自由视角视频的相机外参结构的语法:
表1
上述表1所示语法的语义如下:camera_pos_present(即位置参数标识字段)指示相机位置参数是否表述。camera_pos_present的字段值为1(即第一有效值)时,表示存在相机位置参数;反之,camera_pos_present的字段值为0(即第一无效值)时,表示不存在相机位置参数。camera_ori_present(即方向参数标识字段)指示相机方向参数是否表述。camera_ori_present的字段值为1(即第二有效值)时,表示存在相机方向参数;反之,camera_ori_present的字段值为0(即第二无效值)时,表示不存在相机方向参数。camera_pos_x、camera_pos_y、camera_pos_z共同指示相机在全局参考坐标系中的位置信息,分别表示全局参考坐标系中以米为单位的相机位置的x、y和z坐标,这些值可以2-16米为单位。camera_quat_x,camera_quat_y和camera_quat_z共同指示相机的朝向信息,分别指示相机旋转四元数中的x,y,z分量,这些值可以是[-1,1]范围内的浮点值。可选的,当旋转信息各分量缺失时,各分量默认取值为0。其中,各分量的计算规则如下:
qX=camera_quat_x÷230,qY=camera_quat_y÷230,qZ=camera_quat_z÷230
第4个分量qW可按照四元数的数学特性推导得到:
qW=Sqrt(1–(qX2+qY2+qZ2))
其中,四元数(w,x,y,z)代表围绕向量(x,y,z)以角度2*cos^{-1}(w)=2*sin^{-1}(sqrt(x^{2}+y^{2}+z^{2}))进行旋转。
应当理解,对于相机阵列中的非边界相机,同样可以通过上述表1所示的相机外参结构提供相应的相机外参,这里不再展开描述。
其中,上述第j个边界相机的边界相机内参可以包括第j个边界相机对应的相机标识、相机类型字段、拍摄范围字段信息以及相机深度字段信息。其中,相机类型字段用于表征第j个边界相机的属性类型;拍摄范围字段信息用于表征第j个边界相机所拍摄的内容区域范围,且第j个边界相机所拍摄的内容区域范围与第j个边界相机的属性类型相关联;而相机深度字段信息用于表征与第j个边界相机相关联的视锥体所指示的深度信息,具体可以包括该视锥体的***面所指示的近深度信息和该视锥体的远平面所指示的远深度信息。
其中,可以理解的是,本申请实施例提供了多种内参构建策略用以构建边界相机内参。例如,可选的,边界相机内参可以由第j个边界相机的参数推导字段所指示的第一内参构建策略所确定。这里的第一内参构建策略具体可以包括在参数推导字段的字段值为第一推导字段值时的第一内参修改策略、以及在参数推导字段的字段值为第二推导字段值时的第二内参修改策略。其中,第一内参修改策略用于指示第j个边界相机与剩余边界相机具有不同的相机内参;而第二内参修改策略用于指示第j个边界相机与剩余边界相机具有除了相机标识之外均相同的相机内参。这里的剩余边界相机是指M个边界相机中除第j个边界相机外的边界相机。
可以理解,通过设置参数推导字段的字段值,就可以方便快捷地在第一内参修改策略和第二内参修改策略进行切换,以便快速构建所需的相机内参。例如,假设上述M个边界相机中的第j个边界相机为相机C1,第m个边界相机(m为小于或者等于M的正整数)为相机C2,在构建相机C1的边界相机内参时,若将相机C1对应的参数推导字段的字段值设置为第一推导字段值(例如,0),则表示相机C1的边界相机内参不可以由边界信息数据盒内的其他边界相机(例如,相机C2)的边界相机内参推导得到,也就是说,相机C1的边界相机内参(包括相机标识、相机类型字段、拍摄范围字段信息以及相机深度字段信息)可以单独指定,且相机C1的边界相机内参与相机C2的边界相机内参不相同(或者,可以存在部分相同的参数)。反之,若将相机C1对应的参数推导字段的字段值设置为第二推导字段值(例如,1),则表示相机C1的边界相机内参可以由边界信息数据盒内的其他边界相机(例如,相机C2)的边界相机内参推导得到,例如,相机C1和相机C2可以共享一套相机内参(除相机标识外),即可以将相机C2的相机类型字段、拍摄范围字段信息以及相机深度字段信息作为相机C1的边界相机内参。其中,本申请实施例对第一推导字段值和第二推导字段值的具体取值不进行限定。
可选的,边界相机内参也可以由第j个边界相机的相机类型字段所指示的第二内参构建策略所确定。可以理解,通过设置相机类型字段的字段值,可以快速指定该字段值所表征的属性类型相关联的内容区域范围。
应当理解,对于相机阵列中的非边界相机,同样可以通过上述第一内参构建策略或者第二内参构建策略提供相应的相机内参,这里不再展开描述。
其中,第j个边界相机的相机类型字段所表征的属性类型可以包括第j个边界相机对应的投影类型和模型类型,具体可以包括以下属性类型:
(1)在相机类型字段的字段值为第一属性类型字段值(例如,0)时,具有第一属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为等距柱状投影(即ERP投影)类型;
(2)在相机类型字段的字段值为第二属性类型字段值(例如,1)时,具有第二属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为透视投影类型;
(3)在相机类型字段的字段值为第三属性类型字段值(例如,2)时,具有第三属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为正交投影类型;
(4)在相机类型字段的字段值为第四属性类型字段值(例如,3)时,具有第四属性类型字段值的相机类型字段用于表征第j个边界相机对应的模型类型为针孔相机模型类型;
(5)在相机类型字段的字段值为第五属性类型字段值(例如,4)时,具有第五属性类型字段值的相机类型字段用于表征第j个边界相机对应的模型类型为鱼眼相机模型类型。
可以理解,相机类型字段的剩余字段值还可以用来表征其它属性类型,本本申请实施例将不对相机类型字段的取值进行限定。
其中,在第j个边界相机对应的模型类型上述针孔相机模型类型时,具有针孔相机模型类型的第j个边界相机对应的拍摄范围字段信息可以包括第j个边界相机的相机焦距以及第j个边界相机的主光轴在图像坐标系中的偏移量。这里的相机焦距可以包括第一焦距分量值和第二焦距分量值,这里的偏移量可以包括第一偏移分量值和第二偏移分量值。
其中,在第j个边界相机对应的模型类型为上述鱼眼相机模型类型时,具有鱼眼相机模型类型的第j个边界相机对应的拍摄范围字段信息可以包括第j个边界相机的主光轴在图像坐标系中的偏移量,这里的偏移量同样可以包括第一偏移分量值和第二偏移分量值。
其中,可以理解的是,本申请实施例可以通过自由视角视频的相机内参结构(例如,IntCameraInfoStruct)提供相机的相机内参(例如,边界相机的边界相机内参)。为便于理解,请参见表2,该表2用于指示本申请实施例提供的一种自由视角视频的相机内参结构的语法:
表2
其中,上述表2所示的相机内参结构是基于上述第一内参构建策略所构建的,其改变了现有的初始相机内参结构对应的数据结构。上述表2所示语法的语义如下:camera_id指示对应视窗的相机标识。inferred_camera_params(即参数推导字段)的字段值为0(即第一推导字段值)时,指示camera_id对应的相机与其他相机具有不同的相机内参;inferred_camera_params(即参数推导字段)的字段值为1(即第二推导字段值)时,指示camera_id对应的相机与其他相机具有除了相机标识之外均相同的相机内参。camera_depth_present(即深度参数标识字段)指示相机深度参数是否表述。camera_depth_present的字段值为1(即第三有效值)时,表示存在相机深度参数;反之,camera_depth_present的字段值为0(即第三无效值)时,表示不存在相机深度参数。camera_type(即相机类型字段)指示视窗相机的投影算法类型(即投影类型)和模型类型,其中,camera_type的字段值为0(即第一属性类型字段值)表示ERP投影(即等距柱状投影);camera_type的字段值为1(即第二属性类型字段值)表示透视投影;camera_type的字段值为2(即第三属性类型字段值)表示正交投影;camera_type的字段值为3(即第四属性类型字段值)表示针孔相机模型;camera_type的字段值为4(即第五属性类型字段值)表示鱼眼相机模型;其余取值保留。erp_horizontal_fov指示ERP投影时,视窗区域水平方向的经度范围,以弧度为单位,该字段取值范围为(0,2π)。erp_vertical_fov指示ERP投影时,视窗区域垂直方向的维度范围,以弧度为单位,该字段取值范围为(0,π)。perspective_horizontal_fov指示透视投影时,视窗区域的水平范围,以弧度为单位,该字段取值范围为(0,π)。perspective_aspect_ratio指示透视投影时,视窗的纵横比例(水平/垂直),该字段取值为32位浮点数,解析过程遵循IEEE 754标准。ortho_aspect_ratio指示正交投影时,视窗的纵横比例(水平/垂直),该字段取值为32位浮点数,解析过程遵循IEEE 754标准。ortho_horizontal_size指示正交投影时,视窗水平方向的尺寸,以米为单位,该字段取值为32位浮点数,解析过程遵循IEEE 754标准。camera_focal_length_x,camera_focal_length_y分别指示相机焦距的x分量(即第一焦距分量值)和y分量(即第二焦距分量值)。camera_principle_point_x,camera_principle_point_y分别指示相机主光轴在图像坐标系中偏移的x分量(即第一偏移分量值)与y分量(即第二偏移分量值)。camera_near_depth、camera_far_depth分别指示与相机相关联的视锥体的***面所指示的近深度信息(或距离)和远平面所指示的远深度信息(或距离),该字段取值应以2-16米为单位。
可选的,请一并参见表3,该表3用于指示本申请实施例提供的一种自由视角视频的相机内参结构的语法:
表3
其中,上述表3所示的相机内参结构是基于上述第二内参构建策略所构建的。上述表3所示语法的语义可以参见上述表2所示相同部分语法的语义,这里不再进行赘述。与上述表2所示的相机内参结构不同的是,表3所示的相机内参结构虽然不存在参数推导字段inferred_camera_params,但是仍然对相机的属性类型(即投影类型和模型类型)进行了重新整合。
上述可知,与现有的自由视角视频的初始相机内参结构相比,本申请实施例将相机的投影类型和模型类型重新整合到了相机内参结构中。此外,本申请实施例还可以提供多种内参构建策略用以构建相机内参,可以根据实际需要选择合适的内参构建策略,从而可以提升构建相机内参的灵活性和效率。
基于前述内容,在边界范围字段信息的字段值为第二范围字段值时,服务器可以构建得到渲染区域范围对应的第二场景边界,其具体过程可以为:在边界范围字段信息的字段值为第二范围字段值时,服务器可以基于边界构建策略,将初始边界字段信息中的初始尺寸信息进行删除处理。进一步,可以在删除初始尺寸信息后的初始边界字段信息中,添加边界类型字段、场景原点字段以及用于指示渲染区域范围的构建字段信息,从而得到初始边界字段信息对应的更新边界字段信息,进而可以基于更新边界字段信息构建得到渲染区域范围对应的第二场景边界。其中,边界类型字段用于表征第二场景边界的边界类型,这里的边界类型具体可以包括六面体类型、球体类型、圆柱体类型以及半球体类型。场景原点字段用于指示第二场景边界的场景原点。可以理解,还可以通过其它的边界构建策略构建得到第二场景边界,本申请实施例对此不进行限定。
其中,可以理解,若上述场景原点字段的字段值为第一原点字段值(例如,0),则可以将三维笛卡尔坐标系下与第二场景边界的边界类型相关联的关键位置点作为第二场景边界的场景原点;可选的,若场景原点字段的字段值为第二原点字段值(例如,1),则可以将三维笛卡尔坐标系中的默认位置点(例如,三维笛卡尔坐标系中的坐标原点(0,0,0))作为第二场景边界的场景原点。可选的,还可以指定三维笛卡尔坐标系下的任意一个点作为第二场景边界的场景原点。
可选的,若边界类型字段的字段值为第一边界类型字段值(例如,0),则具有第一边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为六面体类型,且确定第二场景边界为六面体,该六面体对应的构建字段信息可以包括六面体的尺寸信息。此时,该六面体对应的关键位置点可以为该六面体的底面上的目标顶点(例如,底面的左下角顶点)或者该六面体上的其它点。
可选的,若边界类型字段的字段值为第二边界类型字段值(例如,1),则具有第二边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为球体类型,且确定第二场景边界为球体(或椭球体),该球体(或椭球体)对应的构建字段信息包括对球体(或椭球体)的初始球心信息进行删除处理后所得到的球体(或椭球体)的半径信息。此时,该球体(或椭球体)对应的关键位置点可以为球体(或椭球体)的球心或者该球体上的其它点。
可选的,若边界类型字段的字段值为第三边界类型字段值(例如,2),则具有第三边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为圆柱体类型,且确定第二场景边界为圆柱体(或椭圆柱体),该圆柱体(或椭圆柱体)对应的构建字段信息包括圆柱体(或椭圆柱体)的尺寸信息。其中,圆柱体(或椭圆柱体)的尺寸信息可以包括圆柱体(或椭圆柱体)在第一坐标维度上的半径、圆柱体(或椭圆柱体)在第二坐标维度上的半径以及圆柱体(或椭圆柱体)在第三坐标维度上的高度信息。此时,该圆柱体(或椭圆柱体)对应的关键位置点可以为圆柱体(或椭圆柱体)的底面的圆心或者该圆柱体(或椭圆柱体)上的其它点。
可选的,若边界类型字段的字段值为第四边界类型字段值(例如,3),则具有第四边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为半球体类型,且确定第二场景边界为半球体,该半球体对应的构建字段信息包括半球体对应的平面法向量以及与半球体的尺寸信息。此时,该半球体对应的关键位置点可以为半球体的底面的圆心或者该半球体上的其它点。
上述可知,与现有的边界类型相比,本申请实施例新增了圆柱体类型,从而丰富了场景边界的边界类型。
其中,可以理解的是,本申请实施例可以通过自由视角视频的三维边界结构(例如,3DBoundingBoxStruct)构建第二场景边界。为便于理解,请参见表4,该表4用于指示本申请实施例提供的一种自由视角视频的三维边界结构的语法:
表4
需要说明的是,该三维边界结构删除了初始尺寸信息(即bb_dx、bb_dy、bb_dz所指示的尺寸信息,未写在上述表4中)。上述表4所示语法的语义如下:bounding_space_type(即边界类型字段)指示场景边界的边界类型,其取值含义可参见表5,该表5用于指示本申请实施例提供的边界类型字段的取值含义:
表5
请再次参见上述表4,default_origin_point(即场景原点字段)的字段值为0(即第一原点字段值)时,表示场景边界使用指定的点(例如,与边界类型相关联的关键位置点)作为场景原点。default_origin_point的字段值为1(即第二原点字段值)时,表示场景边界使用坐标原点(0,0,0)(即三维笛卡尔坐标系中的默认位置点)作为场景原点。origin_point指示关键位置点在三维笛卡尔坐标系中的坐标。其中,本申请实施例可以通过自由视角视频的三维位置结构(例如,3DPoint)指定关键位置点,为便于理解,请一并参见表6,该表6用于指示本申请实施例提供的一种自由视角视频的三维位置结构的语法:
表6
上述表6所示语法的语义如下:x、y、z分别指示三维笛卡尔坐标系下3D点(例如,关键位置点)的x,z,y坐标值。
请再次参见上述表4,cubic_region(即六面体对应的构建字段信息)指示第二场景边界为六面体时的尺寸信息,其中,本申请实施例可以通过自由视角视频的六面体结构(例如,CuboidRegionStruct)指示六面体的尺寸信息,为便于理解,请一并参见表7,该表7用于指示本申请实施例提供的一种自由视角视频的六面体结构的语法:
表7
上述表7所示语法的语义如下:cuboid_dx,cuboid_dy,cuboid_dz分别表示三维笛卡尔坐标系下的长方体子区域相对于锚点(例如,长方体底面的左下角顶点)的沿x,y,z轴的尺寸。
请再次参见上述表4,sphere_region(即球体对应的构建字段信息)指示第二场景边界为球体时的半径信息,其中,本申请实施例可以通过自由视角视频的球体结构(例如,SpheroidStruct)指示球体的半径信息,为便于理解,请一并参见表8,该表8用于指示本申请实施例提供的一种自由视角视频的球体结构的语法:
表8
上述表8所示语法的语义如下:radius_x,radius_y,radius_z分别指示球体在x,y,z维度上的半径。其中,该球体结构删除了初始球心信息,即camera_inferred_flag的字段值为0时通过point所指示的球心位置(未写在上述表8中)。
请再次参见上述表4,cylinder_region(即圆柱体对应的构建字段信息)指示第二场景边界为圆柱体时的尺寸信息,其中,本申请实施例可以通过自由视角视频的圆柱体结构(例如,CylinderStruct)指示圆柱体的尺寸信息,为便于理解,请一并参见表9,该表9用于指示本申请实施例提供的一种自由视角视频的圆柱体结构的语法:
表9
上述表9所示语法的语义如下:radius_x,radius_y,height分别指示圆柱体在x维度(即第一坐标维度)上的半径、y维度(即第二坐标维度)上的半径以及z维度(即第三坐标维度)上的高。
请再次参见上述表4,halfspace_region(即半球体对应的构建字段信息)指示第二场景边界为半球体时的平面法向量和尺寸信息,其中,本申请实施例可以通过自由视角视频的半球体结构(例如,HalfspaceStruct)指示半球体的平面法向量和尺寸信息,为便于理解,请一并参见表10,该表10用于指示本申请实施例提供的一种自由视角视频的半球体结构的语法:
表10
上述表10所示语法的语义如下:normal_x,normal_y,normal_z共同指示半球体的平面法向量。distance指示从原点沿着法向量到半球体平面方向的距离(即半球体的尺寸信息)。
其中,可以理解的是,上述第j个边界相机的越界处理字段信息可以包括越界属性字段。
可选的,在越界属性字段的字段值为第一属性字段值(例如,0)时,具有第一属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,可以在视频客户端上为业务对象展示第一虚拟视窗区域内的视频内容。其中,第一虚拟视窗区域为第一虚拟相机对应的视窗区域,第一虚拟相机可以位于场景边界的场景原点,且第一虚拟相机的朝向为默认朝向,该第一虚拟相机不属于相机阵列。
可选的,在越界属性字段的字段值为第二属性字段值(例如,1)时,具有第二属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,可以在视频客户端上为业务对象展示目标相机标识所指示的目标相机对应的内容区域范围内的视频内容,这里的目标相机属于相机阵列。
可选的,在越界属性字段的字段值为第三属性字段值(例如,2)时,具有第三属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,可以在视频客户端上为业务对象展示第二虚拟视窗区域内的视频内容。这里的第二虚拟视窗区域为第二虚拟相机对应的视窗区域,第二虚拟相机的位置信息和朝向信息可以通过虚拟相机指定策略(例如,通过上述表1所示的相机外参结构)所指定,该第二虚拟相机不属于相机阵列。
需要说明的是,上述第j个边界相机的越界处理字段信息是由越界构建策略所确定的。在本申请实施例中,越界构建策略可以包括第一越界构建策略和第二越界构建策略,第一越界构建策略用于指示第j个边界相机与剩余边界相机具有不同的越界处理字段信息,而第二越界构建策略用于指示第j个边界相机与剩余边界相机具有相同的越界处理字段信息。这里的剩余边界相机是指M个边界相机中除第j个边界相机外的边界相机。由此可知,通过采用不同的越界构建策略,可以为多个边界相机快速构建相应的越界处理字段信息,实际应用中可以根据实际情况选择采用何种越界构建策略,本申请实施例对此不进行限定。
其中,可以理解的是,本申请实施例可以通过自由视角视频的边界信息数据盒(例如,AvsFreeViewBoundaryBox)提供自由视角视频的边界元数据信息。为便于理解,请参见表11,该表11用于指示本申请实施例提供的一种自由视角视频的边界信息数据盒的语法:
表11
上述表11所示语法的语义如下:boundary_camera_count(即边界相机数量字段)指示构成自由视角视频的场景边界的边界相机的数量。camera_id指示边界相机的相机标识。可以理解,当边界相机的位置、朝向、视窗区域等信息已经在后续描述的更新自由视角信息数据盒(例如,AvsFreeViewInfoBox)中给出时,仅需通过相机标识即可确定边界相机的相机参数字段信息;否则,通过boundary_camera_position(边界相机外参,包括边界相机的位置信息和朝向信息,可通过上述表1所示的相机外参结构来指定)和boundary_camera_region(边界相机内参,包括边界相机的相机标识和对应的视窗区域信息,可通过上述表2或表3所示的相机内参结构来指定)指示边界相机的位置、朝向和对应的视窗区域信息。reserved为保留字节。boundary_space_present(即边界范围字段信息)的字段值为0(即第一范围字段值)时,指示场景边界由边界相机的参数决定,即边界相机所拍摄的内容区域范围构成了场景边界;boundary_space_present的字段值为1(即第二范围字段值)时,指示场景边界由boundary_space决定。boundary_space指示与边界类型相关联的渲染区域范围(即第二场景边界的区域范围),可选的,若boundary_space对应的区域范围大于边界相机构成的区域范围,则超出边界相机所拍摄的内容区域范围的区域可以由视频客户端根据边界相机拍摄的内容进行渲染。boundary_exceeded_switch(即越界属性字段)指示当业务对象的对象行为超越场景边界时的处理方法(即越界处理字段信息):boundary_exceeded_switch的字段值为0(即第一属性字段值,在上述表11中未写出)时,指示为业务对象渲染基于原点、朝向为(0,0,0)(即默认朝向)的虚拟视窗区域(即第一虚拟视窗区域);boundary_exceeded_switch的字段值为1(即第二属性字段值)时,指示为业务对象渲染dest_camera_id(即目标相机标识)对应的相机(即目标相机)所拍摄的内容区域;boundary_exceeded_switch的字段值为2(即第三属性字段值)时,指示为业务对象渲染基于dest_virtual_camera指定的位置和朝向的虚拟视窗区域(即第二虚拟视窗区域)。
由上述表11可知,在采用第一越界构建策略确定越界处理字段信息时,可以将上述表11所示的for循环语句中的注释代码恢复出来(即去除注释符),且删除for循环语句外的相同代码,也就是说,可以通过for循环语句依次为每个边界相机指示不同的越界处理字段信息,以为每个边界相机设置相应的超出场景边界时的切换行为。可选的,在采用第二越界构建策略确定越界处理字段信息时,可以直接使用上述表11所示的语法(即采用for循环语句外的代码),从而可以为每个边界相机指示相同的越界处理字段信息。
除了上述边界信息数据盒,本申请实施例还提供了扩展后的更新自由视角信息数据盒,也就是说,上述扩展数据盒还包括自由视角视频对应的更新自由视角信息数据盒。具体来说,服务器可以对自由视角视频对应的初始自由视角信息数据盒所携带的模型类型字段(即初始自由视角信息数据盒中的camera_model)、以及相机阵列中的每个相机分别对应的相机位置信息(即初始自由视角信息数据盒中的camera_pos_x,camera_pos_y,camera_pos_z)和相机焦距信息(即初始自由视角信息数据盒中的camera_focal_length_x、camera_focal_length_y)进行删除处理。进一步,可以在删除处理后的初始自由视角信息数据盒中分别为每个相机添加相机外参和相机内参,从而得到更新自由视角信息数据盒,且可以将更新自由视角信息数据盒所携带的信息作为用于指示自由视角视频的轨道所包含的视角的自由视角元数据信息。为便于理解,后续将以相机阵列中的第i个相机和第k个相机为例进行说明,其中,k为小于或者等于N的正整数,且i不等于k。
可选的,上述更新自由视角信息数据盒是由相机参数重复字段所指示的第一数据盒构建策略所确定的,则服务器可以在删除处理后的初始自由视角信息数据盒中添加相机参数重复字段,同时可以为相机阵列中的第i个相机添加第一相机外参,且为相机阵列中的第k个相机添加第二相机外参。若相机参数重复字段的字段值为第一重复字段值(例如,1),则可确定第一数据盒构建策略包含第一数据盒修改策略,进而可以基于第一数据盒修改策略,为第i个相机添加第一相机内参,且为第k个相机添加第二相机内参。进一步,可以基于添加的第一相机外参、第二相机外参、第一相机内参以及第二相机内参,得到更新自由视角信息数据盒。其中,第一相机内参和第二相机内参包含有除了相机标识之外均相同的参数信息,且第一相机内参和第二相机内参均是由上述第二内参构建策略所确定的,例如可以通过上述表3所示的相机内参结构进行构建。
可选的,若相机参数重复字段的字段值为第二重复字段值(例如,0),则可确定第一数据盒构建策略包含第二数据盒修改策略,进而可以基于第二数据盒修改策略,为第i个相机添加第三相机内参,且为第k个相机添加第四相机内参。进一步,可以基于添加的第一相机外参、第二相机外参、第三相机内参以及第四相机内参,得到更新自由视角信息数据盒。其中,第三相机内参和第四相机内参包含有不相同的参数信息,且第三相机内参和第四相机内参均是由上述第二内参构建策略所确定的,例如可以通过上述表3所示的相机内参结构进行构建。
可选的,上述更新自由视角信息数据盒是由第二数据盒构建策略所确定的。则服务器可以基于第二数据盒构建策略,在删除处理后的初始自由视角信息数据盒中为相机阵列中的第i个相机添加第三相机外参,且为相机阵列中的第k个相机添加第四相机外参。同时,可以为第i个相机添加第五相机内参,且为第k个相机添加第六相机内参。进一步,可以基于添加的第三相机外参、第四相机外参、第五相机内参以及第六相机内参,得到更新自由视角信息数据盒。其中,第五相机内参和第六相机内参均是由上述第一内参构建策略所确定的,例如可以通过上述表2所示的相机内参结构进行构建。
其中,可以理解的是,本申请实施例可以通过自由视角视频的更新自由视角信息数据盒(例如,AvsFreeViewInfoBox)提供自由视角视频的自由视角元数据信息。为便于理解,请参见表12,该表12用于指示本申请实施例提供的一种自由视角视频的更新自由视角信息数据盒的语法:
表12
上述表12所示语法的语义如下:codec_independency(即编解码独立标识字段)指示轨道内各个相机对应的纹理图及深度图之间的编解码独立性。codec_independency的字段值为0(即第一独立标识字段值)时,指示单个相机对应的纹理图或深度图在编解码时依赖其他相机对应的纹理图和深度图;codec_independency的字段值为1(即第二独立标识字段值)时,指示单个相机对应的纹理图在编解码时依赖其他相机对应的纹理图,且单个相机对应的深度图在编解码时依赖其他相机对应的深度图;其余取值保留。texture_padding_size指示纹理图的保护带宽度。depth_padding_size指示深度图的保护带宽度。camera_count(即相机数量字段)指示采集视频的所有相机的数量。duplicated_camera_params(即相机参数重复字段)的字段值为1(即第一重复字段值)时表示AvsFreeViewInfoBox中指示的所有相机的相机内参除camera_id之外均相同;duplicated_camera_params的字段值为0(即第二重复字段值)表示AvsFreeViewInfoBox中指示的相机具备不同的相机内参。ExtCameraInfoStruct指示相机外参。IntCameraInfoStruct指示相机内参,此时,这里的相机内参是由上述第二内参构建策略所确定的。camera_id指示每个视角对应的相机标识。camera_resolution_x,camera_resolution_y分别指示相机采集的纹理图、深度图的分辨率宽度与高度。depth_downsample_factor指示深度图降采样的倍数因子,深度图的实际分辨率宽高为相机采集分辨率宽高的1/2depth_downsample_factor。texture_vetex_x,texture_vetex_y分别指示纹理图左上顶点相对于平面帧原点(平面帧的左上顶点)偏移的x,y分量值。depth_vetex_x,depth_vetex_y分别指示深度图左上顶点相对于平面帧原点(平面帧的左上顶点)偏移的x,y分量值。
可选的,请一并参见表13,该表13用于指示本申请实施例提供的一种自由视角视频的更新自由视角信息数据盒的语法:
表13
该表13所示语法的语义与上述表12所示语法的语义不相同的是,该表13中的相机内参IntCameraInfoStruct是由上述第一内参构建策略所确定的。除此之外,其它字段的语义可以参见上述表12所示相同部分语法的语义。
步骤S103,基于扩展数据盒对编码视频位流进行封装处理,得到自由视角视频的视频媒体文件;
具体的,服务器可以基于扩展数据盒对编码视频位流进行封装处理,从而可以得到自由视角视频的视频媒体文件。本申请实施例可以采用特定的封装格式(例如,ISOBMFF)在文件容器中进行封装处理,以将扩展数据盒携带的元数据信息和编码视频位流按照该封装格式在文件容器中形成视频媒体文件,本申请实施例对采用的封装格式不进行限定。
步骤S104,将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到扩展数据盒时,得到与第i个相机相关联的拼接的纹理图和深度图,且在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。
具体的,服务器可以通过传输协议(例如DASH)将封装得到的视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到扩展数据盒时,得到与第i个相机相关联的拼接的纹理图和深度图,且在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。其中,视频客户端的处理过程可以参见后续图8所对应的实施例。
上述可知,在文件封装过程中,本申请实施例可以提供边界元数据信息,且可以将该边界元数据信息添加至相应的视频媒体文件,这样,视频客户端就可以根据该边界元数据信息确定可以渲染的自由视角视频的场景边界,进而可以在该场景边界内渲染呈现相应的视频内容,从而可以在场景边界内提升视频渲染的质量。此外,本申请实施例还优化了现有的初始自由视角信息数据盒,得到更新自由视角信息数据盒,该更新自由视角信息数据盒所提供的自由视角元数据信息更便于指示自由视角视频的轨道所对应的视角信息,从而可以提升元数据指示效率。
进一步地,请参见图8,图8是本申请实施例提供的一种视频数据处理方法的流程示意图。该方法可以由自由视角视频***中的解码设备(例如,上述图2所对应实施例中的解码设备200B)来执行,该解码设备可以为集成有上述视频客户端的用户终端,该方法至少可以包括以下步骤:
步骤S201,在获取到服务器下发的自由视角视频的视频媒体文件时,基于视频媒体文件获取扩展数据盒,得到与相机阵列中的第i个相机相关联的拼接的纹理图和深度图;
具体的,视频客户端可以接收服务器下发的自由视角视频的视频媒体文件,进而可以对该视频媒体文件进行解封装处理,从而得到扩展数据盒以及相应的编码视频位流,进而可以基于扩展数据盒所提供的元数据信息,对该编码视频位流进行解码处理,从而得到与相机阵列中的第i个相机相关联的拼接的纹理图和深度图。其中,该扩展数据盒包含有边界元数据信息。服务器生成视频媒体文件的具体过程可以参见上述图7所对应的实施例,这里不再进行赘述。
步骤S202,在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。
具体的,视频客户端可以在多个相机相关联的拼接的纹理图和深度图中确定用于合成渲染的拼接的纹理图和深度图(即目标拼接图像),可选的,可以基于业务对象的对象位置信息和每个相机的相机位置信息进行选择,例如,可以选取距离业务对象最近的相机相关联的拼接的纹理图和深度图作为目标拼接图像。假设确定的目标拼接图像所对应的相机包含第i个相机,则可以进一步判断第i个相机是否为边界相机,若第i个相机为边界相机,则可以在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。
其中,在一种实施方式中,场景边界可以包括第一场景边界和第二场景边界,这里的第一场景边界是基于相机阵列中的每个边界相机所拍摄的内容区域范围所确定的,第二场景边界是基于边界构建策略所确定的,假设第二场景边界对应的区域范围大于第一场景边界对应的区域范围,则第二场景边界对应的区域范围是指在渲染第二场景边界时的渲染区域范围。
基于此,视频客户端在确定第i个相机为边界相机时,可以获取与自由视角视频相关联的业务对象的对象行为。其中,对象行为可以包含业务对象与自由视角视频之间的任意交互行为,包括但不限于缩放行为(例如,放大/缩小画面尺寸)、切换行为(例如,切换视频内容)、位置交互行为(例如,调整观看方向)。
可选的,若该对象行为相关联的视频内容超出第i个相机所拍摄的内容区域范围,且未超出渲染区域范围,则可以基于第i个相机相关联的拼接的纹理图和深度图,在视频客户端上渲染得到第i个相机所拍摄的内容区域范围内的视频内容。
可选的,若该对象行为相关联的视频内容超出渲染区域范围,则可以从边界元数据信息中获取第i个相机的越界处理字段信息,在视频客户端上渲染得到与越界处理字段信息相关联的视频内容。其中,越界处理字段信息的具体含义可以参见上述图7所对应的实施例,这里不再进行赘述。
例如,在一个可选的实施方式中,服务器生成了自由视角视频的编码视频位流A1,并将该编码视频位流A1封装为视频媒体文件A2,根据自由视角视频拍摄时的相机参数等信息,可以在视频媒体文件A2中添加场景边界相关的元数据信息,例如可以包括:
a)标识构成场景边界的边界相机(例如Camera1、Camera2、Camera3)以及边界相机的位置、朝向等信息;
{Camera1:ID=1;Pos=(100,0,100);orientation=(0,0,0)}
{Camera2:ID=2;Pos=(100,100,100);orientation=(0.5,0.5,0)}
{Camera3:ID=3;Pos=(0,0,100);orientation=(0.5,0.5,-0.5)}
其中,ID指示相机标识,Pos指示相机的位置,orientation指示相机的朝向。
b)指示边界相机所拍摄的内容区域范围;
Camera1、Camera2、Camera3:camera_type==1;perspective_horizontal_fov=180;perspective_aspect_ratio=1。
其中,camera_type指示相机的属性类型,取值为1时表示相机采用透视投影。perspective_horizontal_fov指示透视投影时,视窗区域的水平范围,perspective_aspect_ratio指示透视投影时,视窗的纵横比例(水平/垂直)。
c)指示场景边界的区域范围以及超越场景边界时的处理方式。
boundary_space_present=0;boundary_exceeded_switch=2;
dest_virtual_camera:{Pos=(0,100,100);orientation=(0,0,0)}.
其中,boundary_space_present即边界范围字段信息,取值为0时指示边界相机所拍摄的内容区域范围构成了场景边界。boundary_exceeded_switch即越界属性字段,取值为2时指示为业务对象渲染基于dest_virtual_camera指定的位置(例如,Pos=(0,100,100))和朝向(例如,orientation=(0,0,0))的虚拟视窗区域(即第二虚拟视窗区域)。
进一步,服务器可以将视频媒体文件A2传输至视频客户端,视频客户端可以确定用于合成渲染的目标拼接图像,假设为Camera1和Camera10对应的拼接图像,则进一步可以判断Camera1和Camera10是否为边界相机。上述可知,Camera1为边界相机,且此时边界相机所拍摄的内容区域范围构成了可以渲染的场景边界(boundary_space_present=0),因此,视频客户端可以根据业务对象的对象行为,判断业务对象观看的视频内容是否超出了Camera1所拍摄的内容区域范围,若超出,则可以将业务对象的视角调整为位置和朝向为{Pos=(0,100,100);orientation=(0,0,0)}的虚拟相机位置(即第二虚拟相机),并以此位置作为下一步渲染的依据。
又例如,在一个可选的实施方式中,服务器生成了自由视角视频的编码视频位流B1,并将该编码视频位流B1封装为视频媒体文件B2,根据自由视角视频拍摄时的相机参数等信息,可以在视频媒体文件B2中添加场景边界相关的元数据信息,例如可以包括:
a)标识构成场景边界的边界相机(例如Camera1、Camera2、Camera3)以及边界相机的位置、朝向等信息;
{Camera1:ID=1;Pos=(100,0,100);orientation=(0,0,0)}
{Camera2:ID=2;Pos=(100,100,100);orientation=(0.5,0.5,0)}
{Camera3:ID=3;Pos=(0,0,100);orientation=(0.5,0.5,-0.5)}
b)指示边界相机所拍摄的内容区域范围;
Camera1、Camera2、Camera3:camera_type==1;perspective_horizontal_fov=180;perspective_aspect_ratio=1。
c)指示场景边界的区域范围以及超越场景边界时的处理方式。
boundary_space_present=1;bounding_space_type=0;
cubic_region:{point=(0,0,-1000)dx=dy=dz=1000};boundary_exceeded_switch=2;dest_virtual_camera:{Pos=(0,100,100);orientation=(0,0,0)}.
其中,boundary_space_present取值为1时指示场景边界为构建的第二场景边界。bounding_space_type即为即边界类型字段,取值为0时指示构建的第二场景边界为六面体,cubic_region指示第二场景边界为六面体时的尺寸信息。
进一步,服务器可以将视频媒体文件B2传输至视频客户端,视频客户端可以确定用于合成渲染的目标拼接图像,假设为Camera1和Camera10对应的拼接图像,则进一步可以判断Camera1和Camera10是否为边界相机。上述可知,Camera1为边界相机,且此时场景边界为六面体构成的区域(boundary_space_present=1;bounding_space_type=0),且该场景边界为底面左下顶点为(0,0,-1000),长、宽、高均为1000的六面体。因此,视频客户端可以根据业务对象的对象行为,判断业务对象观看的视频内容是否超出了Camera1所拍摄的内容区域范围以及场景边界的范围(即上述六面体构成的区域)。若超出Camera1所拍摄的内容区域范围,但未超出场景边界的范围,则视频客户端可以根据边界相机拍摄的内容渲染对应的画面区域。可选的,若超出场景边界的范围,则可以将业务对象的视角调整为位置和朝向为{Pos=(0,100,100);orientation=(0,0,0)}的虚拟相机位置,并以此位置作为下一步渲染的依据。
上述可知,视频客户端在确定用于合成渲染的目标拼接图像后,会进一步基于边界元数据信息判断对应的相机是否为边界相机,由于现有的自由视角视频处理流程包含了确定目标拼接图像以及对应相机的步骤,因此本申请实施例可以将边界元数据信息的使用与现有的自由视角视频处理流程进行自然融合,以使本申请实施例提供的视频数据处理方法更贴合现有的自由视角视频处理流程。此外,视频客户端可以根据该边界元数据信息确定可渲染的自由视角视频的场景边界,进而可以在该场景边界内渲染呈现相应的视频内容,从而可以在场景边界内提升视频渲染的质量。
进一步地,请参见图9,图9是本申请实施例提供的一种视频数据处理方法的流程示意图。该方法可以由自由视角视频***中的编码设备(例如,上述图2所对应实施例中的解码设备200A)和解码设备(例如,上述图2所对应实施例中的解码设备200B)共同执行,例如,该编码设备可以为服务器,该解码设备可以为集成有视频客户端的用户终端,该方法至少可以包括以下步骤:
步骤S301,服务器通过相机阵列中的第i个相机采集得到的多个图像,确定用于进行图像拼接的纹理图和深度图;
步骤S302,服务器对上述步骤S301中得到的纹理图和深度图进行图像拼接,得到拼接的纹理图和深度图;
步骤S303,服务器基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流;
步骤S304,服务器获取用于指示自由视角视频的场景边界的边界元数据信息;
步骤S305,服务器将边界元数据信息添加至自由视角视频对应的文件封装数据盒,得到文件封装数据盒对应的扩展数据盒;
步骤S306,服务器基于扩展数据盒对编码视频位流进行封装处理,得到自由视角视频的视频媒体文件;
步骤S307,服务器将视频媒体文件下发至视频客户端;
步骤S308,视频客户端在基于视频媒体文件获取到扩展数据盒时,得到与第i个相机相关联的拼接的纹理图和深度图;
步骤S309,视频客户端在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容。
其中,上述步骤S301-步骤S307的具体实现过程可以参见上述图7所对应的实施例中的描述,上述步骤S308-步骤S309的具体实现过程可以参见上述图8所对应的实施例中的描述,这里不再进行赘述。另外,对于相同的有益效果,也不再进行赘述。
请参见图10,是本申请实施例提供的一种视频数据处理装置的结构示意图。该视频数据处理装置可以是运行于编码设备的一个计算机程序(包括程序代码),例如该视频数据处理装置为编码设备中的一个应用软件。该视频数据处理装置可以用于执行图7所对应实施例中的视频数据处理方法的步骤。如图10所示,该视频数据处理装置1可以包括:位流确定模块11、数据盒扩展模块12、文件封装模块13、文件下发模块14、边界构建模块15、数据盒更新模块16;
位流确定模块11,用于基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流;拼接的纹理图和深度图是通过相机阵列中的第i个相机采集到的多个图像而得到,相机阵列包含N个相机;i为小于或者等于N的正整数;
数据盒扩展模块12,用于获取用于指示自由视角视频的场景边界的边界元数据信息,将边界元数据信息添加至自由视角视频对应的文件封装数据盒,得到文件封装数据盒对应的扩展数据盒;
其中,相机阵列包含M个边界相机;M为与边界相机相关联的边界相机数量字段的字段值;边界相机数量字段用于指示构成自由视角视频的场景边界的边界相机的数量;M为小于或者等于N的正整数;
该数据盒扩展模块12可以包括:标识获取单元121、信息构建单元122、数据盒生成单元123、边界确定单元124;
标识获取单元121,用于在M个边界相机中获取第j个边界相机的相机标识;j为小于或者等于M的正整数;第j个边界相机的相机标识用于指示为与自由视角视频相关联的业务对象渲染第j个边界相机所拍摄的内容区域范围;
信息构建单元122,用于构建第j个边界相机的相机参数字段信息、越界处理字段信息以及场景边界的边界范围字段信息;
数据盒生成单元123,用于基于构建的相机参数字段信息、越界处理字段信息以及边界范围字段信息,得到场景边界对应的边界信息数据盒;越界处理字段信息用于指示在业务对象的对象行为超越场景边界时的处理方式;边界范围字段信息用于表征在渲染场景边界时的渲染区域范围;
边界确定单元124,用于在边界范围字段信息的字段值为第一范围字段值时,基于第j个边界相机所拍摄的内容区域范围,确定渲染区域范围对应的第一场景边界,且将边界信息数据盒所携带的与第一场景边界相关联的信息作为用于指示自由视角视频的第一场景边界的边界元数据信息。
其中,第j个边界相机的相机参数字段信息包括第j个边界相机的边界相机外参以及边界相机内参;边界相机外参包括第j个边界相机在全局参考坐标系中的位置信息和朝向信息;边界相机内参包括第j个边界相机对应的相机标识、相机类型字段、拍摄范围字段信息以及相机深度字段信息;相机类型字段用于表征第j个边界相机的属性类型;拍摄范围字段信息用于表征第j个边界相机所拍摄的内容区域范围,第j个边界相机所拍摄的内容区域范围与第j个边界相机的属性类型相关联;相机深度字段信息用于表征与第j个边界相机相关联的视锥体所指示的深度信息。
其中,边界相机内参是由第j个边界相机的参数推导字段所指示的第一内参构建策略所确定的;第一内参构建策略包括在参数推导字段的字段值为第一推导字段值时的第一内参修改策略、以及在参数推导字段的字段值为第二推导字段值时的第二内参修改策略;第一内参修改策略用于指示第j个边界相机与剩余边界相机具有不同的相机内参;剩余边界相机是指M个边界相机中除第j个边界相机外的边界相机;第二内参修改策略用于指示第j个边界相机与剩余边界相机具有除了相机标识之外均相同的相机内参。
其中,边界相机内参是由第j个边界相机的相机类型字段所指示的第二内参构建策略所确定的;第j个边界相机的相机类型字段所表征的属性类型包括第j个边界相机对应的投影类型和模型类型;在相机类型字段的字段值为第一属性类型字段值时,具有第一属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为等距柱状投影类型;在相机类型字段的字段值为第二属性类型字段值时,具有第二属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为透视投影类型;在相机类型字段的字段值为第三属性类型字段值时,具有第三属性类型字段值的相机类型字段用于表征第j个边界相机对应的投影类型为正交投影类型;在相机类型字段的字段值为第四属性类型字段值时,具有第四属性类型字段值的相机类型字段用于表征第j个边界相机对应的模型类型为针孔相机模型类型;在相机类型字段的字段值为第五属性类型字段值时,具有第五属性类型字段值的相机类型字段用于表征第j个边界相机对应的模型类型为鱼眼相机模型类型。
其中,在第j个边界相机对应的模型类型为针孔相机模型类型时,具有针孔相机模型类型的第j个边界相机对应的拍摄范围字段信息包括第j个边界相机的相机焦距以及第j个边界相机的主光轴在图像坐标系中的偏移量;相机焦距包括第一焦距分量值和第二焦距分量值;偏移量包括第一偏移分量值和第二偏移分量值。
其中,在第j个边界相机对应的模型类型为鱼眼相机模型类型时,具有鱼眼相机模型类型的第j个边界相机对应的拍摄范围字段信息包括第j个边界相机的主光轴在图像坐标系中的偏移量。
其中,标识获取单元121、信息构建单元122、数据盒生成单元123、边界确定单元124的具体实现方式可以参见上述图7所对应实施例中的步骤S102,这里不再进行赘述。
文件封装模块13,用于基于扩展数据盒对编码视频位流进行封装处理,得到自由视角视频的视频媒体文件;
文件下发模块14,用于将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到扩展数据盒时,得到与第i个相机相关联的拼接的纹理图和深度图,且在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容;
边界构建模块15,用于在边界范围字段信息的字段值为第二范围字段值时,构建得到渲染区域范围对应的第二场景边界,且将边界信息数据盒所携带的与第二场景边界的边界类型相关联的信息作为用于指示自由视角视频的第二场景边界的边界元数据信息。
其中,该边界构建模块15可以包括:信息删除单元151、添加构建单元152;
信息删除单元151,用于在边界范围字段信息的字段值为第二范围字段值时,基于边界构建策略,将初始边界字段信息中的初始尺寸信息进行删除处理;
添加构建单元152,用于在删除初始尺寸信息后的初始边界字段信息中,添加边界类型字段、场景原点字段以及用于指示渲染区域范围的构建字段信息,得到初始边界字段信息对应的更新边界字段信息,基于更新边界字段信息构建得到渲染区域范围对应的第二场景边界;边界类型字段用于表征第二场景边界的边界类型;边界类型包括六面体类型、球体类型、圆柱体类型以及半球体类型;场景原点字段用于指示第二场景边界的场景原点。
其中,信息删除单元151、添加构建单元152的具体实现方式可以参见上述图7所对应实施例中的步骤S102,这里不再进行赘述。
其中,若场景原点字段的字段值为第一原点字段值,则将三维笛卡尔坐标系下与第二场景边界的边界类型相关联的关键位置点作为第二场景边界的场景原点;若场景原点字段的字段值为第二原点字段值,则将三维笛卡尔坐标系中的默认位置点作为第二场景边界的场景原点。
其中,若边界类型字段的字段值为第一边界类型字段值,则具有第一边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为六面体类型,且确定第二场景边界为六面体;六面体对应的构建字段信息包括六面体的尺寸信息;六面体对应的关键位置点为六面体的底面上的目标顶点。
其中,若边界类型字段的字段值为第二边界类型字段值,则具有第二边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为球体类型,且确定第二场景边界为球体;球体对应的构建字段信息包括对球体的初始球心信息进行删除处理后所得到的球体的半径信息;球体对应的关键位置点为球体的球心。
其中,若边界类型字段的字段值为第三边界类型字段值,则具有第三边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为圆柱体类型,且确定第二场景边界为圆柱体;圆柱体对应的构建字段信息包括圆柱体的尺寸信息;圆柱体的尺寸信息包括圆柱体在第一坐标维度上的半径、圆柱体在第二坐标维度上的半径以及圆柱体在第三坐标维度上的高度信息;圆柱体对应的关键位置点为圆柱体的底面的圆心。
其中,若边界类型字段的字段值为第四边界类型字段值,则具有第四边界类型字段值的边界类型字段用于表征第二场景边界的边界类型为半球体类型,且确定第二场景边界为半球体;半球体对应的构建字段信息包括半球体对应的平面法向量以及与半球体的尺寸信息;半球体对应的关键位置点为半球体的底面的圆心。
其中,第j个边界相机的越界处理字段信息包括越界属性字段;在越界属性字段的字段值为第一属性字段值时,具有第一属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,在视频客户端上为业务对象展示第一虚拟视窗区域内的视频内容;第一虚拟视窗区域为第一虚拟相机对应的视窗区域,第一虚拟相机位于场景边界的场景原点,且第一虚拟相机的朝向为默认朝向。
其中,在越界属性字段的字段值为第二属性字段值时,具有第二属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,在视频客户端上为业务对象展示目标相机标识所指示的目标相机对应的内容区域范围内的视频内容;目标相机属于相机阵列。
其中,在越界属性字段的字段值为第三属性字段值时,具有第三属性字段值的越界属性字段用于指示在业务对象的对象行为相关联的视频内容超出渲染区域范围时,在视频客户端上为业务对象展示第二虚拟视窗区域内的视频内容;第二虚拟视窗区域为第二虚拟相机对应的视窗区域,第二虚拟相机的位置信息和朝向信息通过虚拟相机指定策略所指定。
其中,第j个边界相机的越界处理字段信息是由越界构建策略所确定的;越界构建策略包括第一越界构建策略和第二越界构建策略;第一越界构建策略用于指示第j个边界相机与剩余边界相机具有不同的越界处理字段信息;剩余边界相机是指M个边界相机中除第j个边界相机外的边界相机;第二越界构建策略用于指示第j个边界相机与剩余边界相机具有相同的越界处理字段信息。
其中,扩展数据盒还包括自由视角视频对应的更新自由视角信息数据盒;
数据盒更新模块16,用于对自由视角视频对应的初始自由视角信息数据盒所携带的模型类型字段、以及相机阵列中的每个相机分别对应的相机位置信息和相机焦距信息进行删除处理;在删除处理后的初始自由视角信息数据盒中分别为每个相机添加相机外参和相机内参,得到更新自由视角信息数据盒,且将更新自由视角信息数据盒所携带的信息作为用于指示自由视角视频的轨道所包含的视角的自由视角元数据信息。
其中,更新自由视角信息数据盒是由相机参数重复字段所指示的第一数据盒构建策略所确定的;
该数据盒更新模块16可以包括:字段添加单元161、第一外参添加单元162、第一内参添加单元163、第一数据盒确定单元164、第二内参添加单元165、第二数据盒确定单元166;
字段添加单元161,用于在删除处理后的初始自由视角信息数据盒中添加相机参数重复字段;
第一外参添加单元162,用于为相机阵列中的第i个相机添加第一相机外参,且为相机阵列中的第k个相机添加第二相机外参;k为小于或者等于N的正整数;
第一内参添加单元163,用于若相机参数重复字段的字段值为第一重复字段值,则确定第一数据盒构建策略包含第一数据盒修改策略,基于第一数据盒修改策略,为第i个相机添加第一相机内参,且为第k个相机添加第二相机内参;第一相机内参和第二相机内参包含有除了相机标识之外均相同的参数信息;第一相机内参和第二相机内参均是由第二内参构建策略所确定的;
第一数据盒确定单元164,用于基于添加的第一相机外参、第二相机外参、第一相机内参以及第二相机内参,得到更新自由视角信息数据盒;
第二内参添加单元165,用于若相机参数重复字段的字段值为第二重复字段值,则确定第一数据盒构建策略包含第二数据盒修改策略,基于第二数据盒修改策略,为第i个相机添加第三相机内参,且为第k个相机添加第四相机内参;第三相机内参和第四相机内参包含有不相同的参数信息;第三相机内参和第四相机内参均是由第二内参构建策略所确定的;
第二数据盒确定单元166,用于基于添加的第一相机外参、第二相机外参、第三相机内参以及第四相机内参,得到更新自由视角信息数据盒;
其中,更新自由视角信息数据盒是由第二数据盒构建策略所确定的;
该数据盒更新模块16可以包括:第二外参添加单元167、第三内参添加单元168、第三数据盒确定单元169;
第二外参添加单元167,用于基于第二数据盒构建策略,在删除处理后的初始自由视角信息数据盒中为相机阵列中的第i个相机添加第三相机外参,且为相机阵列中的第k个相机添加第四相机外参;k为小于或者等于N的正整数;
第三内参添加单元168,用于为第i个相机添加第五相机内参,且为第k个相机添加第六相机内参;第五相机内参和第六相机内参均是由第一内参构建策略所确定的;
第三数据盒确定单元169,用于基于添加的第三相机外参、第四相机外参、第五相机内参以及第六相机内参,得到更新自由视角信息数据盒。
其中,字段添加单元161、第一外参添加单元162、第一内参添加单元163、第一数据盒确定单元164、第二内参添加单元165、第二数据盒确定单元166、第二外参添加单元167、第三内参添加单元168、第三数据盒确定单元169的具体实现方式可以参见上述图7所对应实施例中的步骤S102,这里不再进行赘述。
其中,位流确定模块11、数据盒扩展模块12、文件封装模块13、文件下发模块14、边界构建模块15、数据盒更新模块16的具体实现方式可以参见上述图7所对应实施例中的步骤S101-步骤S104,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图11,是本申请实施例提供的一种视频数据处理装置的结构示意图。该视频数据处理装置可以是运行于解码设备的一个计算机程序(包括程序代码),例如该视频数据处理装置为解码设备中的一个应用软件。该视频数据处理装置可以用于执行图8所对应实施例中的视频数据处理方法的步骤。如图11所示,该视频数据处理装置2可以包括:图像获取模块21、视频渲染模块22;
图像获取模块21,用于在获取到服务器下发的自由视角视频的视频媒体文件时,基于视频媒体文件获取扩展数据盒,得到与相机阵列中的第i个相机相关联的拼接的纹理图和深度图;其中,视频媒体文件是由服务器基于扩展数据盒对编码视频位流进行封装处理所得到的;扩展数据盒是由服务器将获取到的用于指示自由视角视频的场景边界的边界元数据信息添加至自由视角视频对应的文件封装数据盒所得到的;编码视频位流是指由服务器基于图像拼接后的纹理图和深度图所确定的用于构建自由视角视频的位流;拼接的纹理图和深度图是通过第i个相机采集到的多个图像而得到,相机阵列包含N个相机;i为小于或者等于N的正整数;
视频渲染模块22,用于在确定第i个相机为边界相机时,在视频客户端上渲染得到边界元数据信息所指示的场景边界内的视频内容;
其中,场景边界包括第一场景边界和第二场景边界;第一场景边界是基于相机阵列中的每个边界相机所拍摄的内容区域范围所确定的;第二场景边界是基于边界构建策略所确定的;第二场景边界对应的区域范围大于第一场景边界对应的区域范围;第二场景边界对应的区域范围是指在渲染第二场景边界时的渲染区域范围;
该视频渲染模块22可以包括:行为获取单元221、第一渲染单元222、第二渲染单元223;
行为获取单元221,用于在确定第i个相机为边界相机时,获取与自由视角视频相关联的业务对象的对象行为;
第一渲染单元222,用于若对象行为相关联的视频内容超出第i个相机所拍摄的内容区域范围,且未超出渲染区域范围,则基于拼接的纹理图和深度图,在视频客户端上渲染得到第i个相机所拍摄的内容区域范围内的视频内容;
第二渲染单元223,用于若对象行为相关联的视频内容超出渲染区域范围,则从边界元数据信息中获取第i个相机的越界处理字段信息,在视频客户端上渲染得到与越界处理字段信息相关联的视频内容。
其中,行为获取单元221、第一渲染单元222、第二渲染单元223的具体实现方式可以参见上述图8所对应实施例中的步骤S202,这里不再进行赘述。
其中,图像获取模块21、视频渲染模块22的具体实现方式可以参见上述图8所对应实施例中的步骤S201-步骤S202,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图12,是本申请实施例提供的一种计算机设备的结构示意图。如图12所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在如图12所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图7、图8、图9任一个所对应实施例中对该视频数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的视频数据处理装置1和视频数据处理装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图7、图8、图9任一个所对应实施例中对视频数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的视频数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图7、图8、图9任一个所对应实施例提供的方法。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图13,图13是本申请实施例提供的一种视频数据处理***的结构示意图。该视频数据处理***3可以包含视频数据处理装置1a和视频数据处理装置2a。其中,视频数据处理装置1a可以为上述图10所对应实施例中的视频数据处理装置1,可以理解的是,该视频数据处理装置1a可以集成在上述图2所对应实施例中的编码设备200A,因此,这里将不再进行赘述。其中,视频数据处理装置2a可以为上述图11所对应实施例中的视频数据处理装置2,可以理解的是,该视频数据处理装置2a可以集成在上述图2对应实施例中的解码设备200B,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的视频数据处理***实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (28)
1.一种视频数据处理方法,其特征在于,所述方法由服务器执行,包括:
基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流;所述拼接的纹理图和深度图是通过相机阵列中的第i个相机采集到的多个图像而得到,所述相机阵列包含N个相机;i为小于或者等于N的正整数;
基于所述自由视角视频的边界信息数据盒获取用于指示所述自由视角视频的场景边界的边界元数据信息,将所述边界元数据信息添加至所述自由视角视频对应的文件封装数据盒,得到所述文件封装数据盒对应的扩展数据盒;
基于所述扩展数据盒对所述编码视频位流进行封装处理,得到所述自由视角视频的视频媒体文件;
将所述视频媒体文件下发至视频客户端,以使所述视频客户端在基于所述视频媒体文件获取到所述扩展数据盒时,得到与所述第i个相机相关联的所述拼接的纹理图和深度图,且在确定所述第i个相机为边界相机时,在所述视频客户端上渲染得到所述边界元数据信息所指示的所述场景边界内的视频内容。
2.根据权利要求1所述的方法,其特征在于,所述相机阵列包含M个边界相机;M为与所述边界相机相关联的边界相机数量字段的字段值;所述边界相机数量字段用于指示构成所述自由视角视频的场景边界的边界相机的数量;M为小于或者等于N的正整数;
所述基于所述自由视角视频的边界信息数据盒获取用于指示所述自由视角视频的场景边界的边界元数据信息,包括:
在所述M个边界相机中获取第j个边界相机的相机标识;j为小于或者等于M的正整数;所述第j个边界相机的相机标识用于指示为与所述自由视角视频相关联的业务对象渲染所述第j个边界相机所拍摄的内容区域范围;
构建所述第j个边界相机的相机参数字段信息、越界处理字段信息以及所述场景边界的边界范围字段信息;
基于构建的所述相机参数字段信息、所述越界处理字段信息以及所述边界范围字段信息,得到所述场景边界对应的边界信息数据盒;所述越界处理字段信息用于指示在所述业务对象的对象行为超越所述场景边界时的处理方式;所述边界范围字段信息用于表征在渲染所述场景边界时的渲染区域范围;
在所述边界范围字段信息的字段值为第一范围字段值时,基于所述第j个边界相机所拍摄的内容区域范围,确定所述渲染区域范围对应的第一场景边界,且将所述边界信息数据盒所携带的与所述第一场景边界相关联的信息作为用于指示所述自由视角视频的第一场景边界的边界元数据信息。
3.根据权利要求2所述的方法,其特征在于,所述第j个边界相机的相机参数字段信息包括所述第j个边界相机的边界相机外参以及边界相机内参;所述边界相机外参包括所述第j个边界相机在全局参考坐标系中的位置信息和朝向信息;所述边界相机内参包括所述第j个边界相机对应的相机标识、相机类型字段、拍摄范围字段信息以及相机深度字段信息;所述相机类型字段用于表征所述第j个边界相机的属性类型;所述拍摄范围字段信息用于表征所述第j个边界相机所拍摄的内容区域范围,所述第j个边界相机所拍摄的内容区域范围与所述第j个边界相机的属性类型相关联;所述相机深度字段信息用于表征与所述第j个边界相机相关联的视锥体所指示的深度信息。
4.根据权利要求3所述的方法,其特征在于,所述边界相机内参是由所述第j个边界相机的参数推导字段所指示的第一内参构建策略所确定的;所述第一内参构建策略包括在所述参数推导字段的字段值为第一推导字段值时的第一内参修改策略、以及在所述参数推导字段的字段值为第二推导字段值时的第二内参修改策略;所述第一内参修改策略用于指示所述第j个边界相机与剩余边界相机具有不同的相机内参;所述剩余边界相机是指所述M个边界相机中除所述第j个边界相机外的边界相机;所述第二内参修改策略用于指示所述第j个边界相机与所述剩余边界相机具有除了相机标识之外均相同的相机内参。
5.根据权利要求3所述的方法,其特征在于,所述边界相机内参是由所述第j个边界相机的相机类型字段所指示的第二内参构建策略所确定的;所述第j个边界相机的相机类型字段所表征的属性类型包括所述第j个边界相机对应的投影类型和模型类型;在所述相机类型字段的字段值为第一属性类型字段值时,具有所述第一属性类型字段值的相机类型字段用于表征所述第j个边界相机对应的投影类型为等距柱状投影类型;在所述相机类型字段的字段值为第二属性类型字段值时,具有所述第二属性类型字段值的相机类型字段用于表征所述第j个边界相机对应的投影类型为透视投影类型;在所述相机类型字段的字段值为第三属性类型字段值时,具有所述第三属性类型字段值的相机类型字段用于表征所述第j个边界相机对应的投影类型为正交投影类型;在所述相机类型字段的字段值为第四属性类型字段值时,具有所述第四属性类型字段值的相机类型字段用于表征所述第j个边界相机对应的模型类型为针孔相机模型类型;在所述相机类型字段的字段值为第五属性类型字段值时,具有所述第五属性类型字段值的相机类型字段用于表征所述第j个边界相机对应的模型类型为鱼眼相机模型类型。
6.根据权利要求5所述的方法,其特征在于,在所述第j个边界相机对应的模型类型为所述针孔相机模型类型时,具有所述针孔相机模型类型的第j个边界相机对应的拍摄范围字段信息包括所述第j个边界相机的相机焦距以及所述第j个边界相机的主光轴在图像坐标系中的偏移量;所述相机焦距包括第一焦距分量值和第二焦距分量值;所述偏移量包括第一偏移分量值和第二偏移分量值。
7.根据权利要求5所述的方法,其特征在于,在所述第j个边界相机对应的模型类型为所述鱼眼相机模型类型时,具有所述鱼眼相机模型类型的第j个边界相机对应的拍摄范围字段信息包括所述第j个边界相机的主光轴在图像坐标系中的偏移量。
8.根据权利要求2所述的方法,其特征在于,还包括:
在所述边界范围字段信息的字段值为第二范围字段值时,构建得到所述渲染区域范围对应的第二场景边界,且将所述边界信息数据盒所携带的与所述第二场景边界的边界类型相关联的信息作为用于指示所述自由视角视频的第二场景边界的边界元数据信息。
9.根据权利要求8所述的方法,其特征在于,所述在所述边界范围字段信息的字段值为第二范围字段值时,构建得到所述渲染区域范围对应的第二场景边界,包括:
在所述边界范围字段信息的字段值为第二范围字段值时,基于边界构建策略,将初始边界字段信息中的初始尺寸信息进行删除处理;
在删除所述初始尺寸信息后的初始边界字段信息中,添加边界类型字段、场景原点字段以及用于指示所述渲染区域范围的构建字段信息,得到所述初始边界字段信息对应的更新边界字段信息,基于所述更新边界字段信息构建得到所述渲染区域范围对应的第二场景边界;所述边界类型字段用于表征所述第二场景边界的边界类型;所述边界类型包括六面体类型、球体类型、圆柱体类型以及半球体类型;所述场景原点字段用于指示所述第二场景边界的场景原点。
10.根据权利要求9所述的方法,其特征在于,若所述场景原点字段的字段值为第一原点字段值,则将三维笛卡尔坐标系下与所述第二场景边界的边界类型相关联的关键位置点作为所述第二场景边界的场景原点;若所述场景原点字段的字段值为第二原点字段值,则将所述三维笛卡尔坐标系中的默认位置点作为所述第二场景边界的场景原点。
11.根据权利要求10所述的方法,其特征在于,若所述边界类型字段的字段值为第一边界类型字段值,则具有所述第一边界类型字段值的边界类型字段用于表征所述第二场景边界的边界类型为六面体类型,且确定所述第二场景边界为六面体;所述六面体对应的构建字段信息包括所述六面体的尺寸信息;所述六面体对应的关键位置点为所述六面体的底面上的目标顶点。
12.根据权利要求10所述的方法,其特征在于,若所述边界类型字段的字段值为第二边界类型字段值,则具有所述第二边界类型字段值的边界类型字段用于表征所述第二场景边界的边界类型为球体类型,且确定所述第二场景边界为球体;所述球体对应的构建字段信息包括对所述球体的初始球心信息进行删除处理后所得到的所述球体的半径信息;所述球体对应的关键位置点为所述球体的球心。
13.根据权利要求10所述的方法,其特征在于,若所述边界类型字段的字段值为第三边界类型字段值,则具有所述第三边界类型字段值的边界类型字段用于表征所述第二场景边界的边界类型为圆柱体类型,且确定所述第二场景边界为圆柱体;所述圆柱体对应的构建字段信息包括所述圆柱体的尺寸信息;所述圆柱体的尺寸信息包括所述圆柱体在第一坐标维度上的半径、所述圆柱体在第二坐标维度上的半径以及所述圆柱体在第三坐标维度上的高度信息;所述圆柱体对应的关键位置点为所述圆柱体的底面的圆心。
14.根据权利要求10所述的方法,其特征在于,若所述边界类型字段的字段值为第四边界类型字段值,则具有所述第四边界类型字段值的边界类型字段用于表征所述第二场景边界的边界类型为半球体类型,且确定所述第二场景边界为半球体;所述半球体对应的构建字段信息包括所述半球体对应的平面法向量以及与所述半球体的尺寸信息;所述半球体对应的关键位置点为所述半球体的底面的圆心。
15.根据权利要求2所述的方法,其特征在于,所述第j个边界相机的越界处理字段信息包括越界属性字段;在所述越界属性字段的字段值为第一属性字段值时,具有所述第一属性字段值的越界属性字段用于指示在所述业务对象的对象行为相关联的视频内容超出所述渲染区域范围时,在所述视频客户端上为所述业务对象展示第一虚拟视窗区域内的视频内容;所述第一虚拟视窗区域为第一虚拟相机对应的视窗区域,所述第一虚拟相机位于所述场景边界的场景原点,且所述第一虚拟相机的朝向为默认朝向。
16.根据权利要求15所述的方法,其特征在于,在所述越界属性字段的字段值为第二属性字段值时,具有所述第二属性字段值的越界属性字段用于指示在所述业务对象的对象行为相关联的视频内容超出所述渲染区域范围时,在所述视频客户端上为所述业务对象展示目标相机标识所指示的目标相机对应的内容区域范围内的视频内容;所述目标相机属于所述相机阵列。
17.根据权利要求15所述的方法,其特征在于,在所述越界属性字段的字段值为第三属性字段值时,具有所述第三属性字段值的越界属性字段用于指示在所述业务对象的对象行为相关联的视频内容超出所述渲染区域范围时,在所述视频客户端上为所述业务对象展示第二虚拟视窗区域内的视频内容;所述第二虚拟视窗区域为第二虚拟相机对应的视窗区域,所述第二虚拟相机的位置信息和朝向信息通过虚拟相机指定策略所指定。
18.根据权利要求15-17任一项所述的方法,其特征在于,所述第j个边界相机的越界处理字段信息是由越界构建策略所确定的;所述越界构建策略包括第一越界构建策略和第二越界构建策略;所述第一越界构建策略用于指示所述第j个边界相机与剩余边界相机具有不同的越界处理字段信息;所述剩余边界相机是指所述M个边界相机中除所述第j个边界相机外的边界相机;所述第二越界构建策略用于指示所述第j个边界相机与所述剩余边界相机具有相同的越界处理字段信息。
19.根据权利要求1所述的方法,其特征在于,所述扩展数据盒还包括所述自由视角视频对应的更新自由视角信息数据盒;所述方法还包括:
对所述自由视角视频对应的初始自由视角信息数据盒所携带的模型类型字段、以及所述相机阵列中的每个相机分别对应的相机位置信息和相机焦距信息进行删除处理;
在删除处理后的初始自由视角信息数据盒中分别为所述每个相机添加相机外参和相机内参,得到所述更新自由视角信息数据盒,且将所述更新自由视角信息数据盒所携带的信息作为用于指示所述自由视角视频的轨道所包含的视角的自由视角元数据信息。
20.根据权利要求19所述的方法,其特征在于,所述更新自由视角信息数据盒是由相机参数重复字段所指示的第一数据盒构建策略所确定的;
所述在删除处理后的初始自由视角信息数据盒中分别为所述每个相机添加相机外参和相机内参,得到所述更新自由视角信息数据盒,包括:
在删除处理后的初始自由视角信息数据盒中添加所述相机参数重复字段;
为所述相机阵列中的所述第i个相机添加第一相机外参,且为所述相机阵列中的第k个相机添加第二相机外参;k为小于或者等于N的正整数;
若所述相机参数重复字段的字段值为第一重复字段值,则确定所述第一数据盒构建策略包含第一数据盒修改策略,基于所述第一数据盒修改策略,为所述第i个相机添加第一相机内参,且为所述第k个相机添加第二相机内参;所述第一相机内参和所述第二相机内参包含有除了相机标识之外均相同的参数信息;所述第一相机内参和所述第二相机内参均是由第二内参构建策略所确定的;
基于添加的所述第一相机外参、所述第二相机外参、所述第一相机内参以及所述第二相机内参,得到所述更新自由视角信息数据盒。
21.根据权利要求20所述的方法,其特征在于,还包括:
若所述相机参数重复字段的字段值为第二重复字段值,则确定所述第一数据盒构建策略包含第二数据盒修改策略,基于所述第二数据盒修改策略,为所述第i个相机添加第三相机内参,且为所述第k个相机添加第四相机内参;所述第三相机内参和所述第四相机内参包含有不相同的参数信息;所述第三相机内参和所述第四相机内参均是由第二内参构建策略所确定的;
基于添加的所述第一相机外参、所述第二相机外参、所述第三相机内参以及所述第四相机内参,得到所述更新自由视角信息数据盒。
22.根据权利要求19所述的方法,其特征在于,所述更新自由视角信息数据盒是由第二数据盒构建策略所确定的;
所述在删除处理后的初始自由视角信息数据盒中分别为所述每个相机添加相机外参和相机内参,得到所述更新自由视角信息数据盒,包括:
基于所述第二数据盒构建策略,在删除处理后的初始自由视角信息数据盒中为所述相机阵列中的所述第i个相机添加第三相机外参,且为所述相机阵列中的第k个相机添加第四相机外参;k为小于或者等于N的正整数;
为所述第i个相机添加第五相机内参,且为所述第k个相机添加第六相机内参;所述第五相机内参和所述第六相机内参均是由第一内参构建策略所确定的;
基于添加的所述第三相机外参、所述第四相机外参、所述第五相机内参以及所述第六相机内参,得到所述更新自由视角信息数据盒。
23.一种视频数据处理方法,其特征在于,所述方法由视频客户端执行,包括:
在获取到服务器下发的自由视角视频的视频媒体文件时,基于所述视频媒体文件获取扩展数据盒,得到与相机阵列中的第i个相机相关联的拼接的纹理图和深度图;其中,所述视频媒体文件是由所述服务器基于所述扩展数据盒对编码视频位流进行封装处理所得到的;所述扩展数据盒是由所述服务器将获取到的用于指示所述自由视角视频的场景边界的边界元数据信息添加至所述自由视角视频对应的文件封装数据盒所得到的;所述编码视频位流是指由所述服务器基于所述拼接的纹理图和深度图所确定的用于构建所述自由视角视频的位流;所述拼接的纹理图和深度图是通过所述第i个相机采集到的多个图像而得到;所述相机阵列包含N个相机;i为小于或者等于N的正整数;
在确定所述第i个相机为边界相机时,获取与所述自由视角视频相关联的业务对象的对象行为;
若所述对象行为相关联的视频内容超出所述第i个相机所拍摄的内容区域范围,且未超出渲染区域范围,则基于所述拼接的纹理图和深度图,在所述视频客户端上渲染得到所述第i个相机所拍摄的内容区域范围内的视频内容;
若所述对象行为相关联的视频内容超出所述渲染区域范围,则从所述边界元数据信息中获取所述第i个相机的越界处理字段信息,在所述视频客户端上渲染得到与所述越界处理字段信息相关联的视频内容。
24.根据权利要求23所述的方法,其特征在于,所述场景边界包括第一场景边界和第二场景边界;所述第一场景边界是基于所述相机阵列中的每个边界相机所拍摄的内容区域范围所确定的;所述第二场景边界是基于边界构建策略所确定的;所述第二场景边界对应的区域范围大于所述第一场景边界对应的区域范围;所述第二场景边界对应的区域范围是指在渲染所述第二场景边界时的渲染区域范围。
25.一种视频数据处理装置,其特征在于,包括:
位流确定模块,用于基于拼接的纹理图和深度图,确定用于构建自由视角视频的编码视频位流;所述拼接的纹理图和深度图是通过相机阵列中的第i个相机采集到的多个图像而得到,所述相机阵列包含N个相机;i为小于或者等于N的正整数;
数据盒扩展模块,用于基于所述自由视角视频的边界信息数据盒获取用于指示所述自由视角视频的场景边界的边界元数据信息,将所述边界元数据信息添加至所述自由视角视频对应的文件封装数据盒,得到所述文件封装数据盒对应的扩展数据盒;
文件封装模块,用于基于所述扩展数据盒对所述编码视频位流进行封装处理,得到所述自由视角视频的视频媒体文件;
文件下发模块,用于将所述视频媒体文件下发至视频客户端,以使所述视频客户端在基于所述视频媒体文件获取到所述扩展数据盒时,得到与所述第i个相机相关联的所述拼接的纹理图和深度图,且在确定所述第i个相机为边界相机时,在所述视频客户端上渲染得到所述边界元数据信息所指示的所述场景边界内的视频内容。
26.一种视频数据处理装置,其特征在于,包括:
图像获取模块,用于在获取到服务器下发的自由视角视频的视频媒体文件时,基于所述视频媒体文件获取扩展数据盒,得到与相机阵列中的第i个相机相关联的拼接的纹理图和深度图;其中,所述视频媒体文件是由所述服务器基于所述扩展数据盒对编码视频位流进行封装处理所得到的;所述扩展数据盒是由所述服务器将获取到的用于指示所述自由视角视频的场景边界的边界元数据信息添加至所述自由视角视频对应的文件封装数据盒所得到的;所述编码视频位流是指由所述服务器基于所述拼接的纹理图和深度图所确定的用于构建所述自由视角视频的位流;所述拼接的纹理图和深度图是通过所述第i个相机采集到的多个图像而得到;所述相机阵列包含N个相机;i为小于或者等于N的正整数;
视频渲染模块,用于在确定所述第i个相机为边界相机时,在所述视频客户端上渲染得到所述边界元数据信息所指示的所述场景边界内的视频内容;
其中,所述视频渲染模块包括:
行为获取单元,用于在确定所述第i个相机为边界相机时,获取与所述自由视角视频相关联的业务对象的对象行为;
第一渲染单元,用于若所述对象行为相关联的视频内容超出所述第i个相机所拍摄的内容区域范围,且未超出渲染区域范围,则基于所述拼接的纹理图和深度图,在所述视频客户端上渲染得到所述第i个相机所拍摄的内容区域范围内的视频内容;
第二渲染单元,用于若所述对象行为相关联的视频内容超出所述渲染区域范围,则从所述边界元数据信息中获取所述第i个相机的越界处理字段信息,在所述视频客户端上渲染得到与所述越界处理字段信息相关联的视频内容。
27.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使所述计算机设备执行权利要求1-24任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使具有所述处理器的计算机设备执行权利要求1-24任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111470639.2A CN114189697B (zh) | 2021-12-03 | 2021-12-03 | 一种视频数据处理方法、装置以及可读存储介质 |
PCT/CN2022/123829 WO2023098279A1 (zh) | 2021-12-03 | 2022-10-08 | 视频数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 |
US18/389,462 US20240080429A1 (en) | 2021-12-03 | 2023-11-14 | Video data processing method and apparatus, computer device, computer readable storage medium, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111470639.2A CN114189697B (zh) | 2021-12-03 | 2021-12-03 | 一种视频数据处理方法、装置以及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114189697A CN114189697A (zh) | 2022-03-15 |
CN114189697B true CN114189697B (zh) | 2022-10-14 |
Family
ID=80542211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111470639.2A Active CN114189697B (zh) | 2021-12-03 | 2021-12-03 | 一种视频数据处理方法、装置以及可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240080429A1 (zh) |
CN (1) | CN114189697B (zh) |
WO (1) | WO2023098279A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114189697B (zh) * | 2021-12-03 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置以及可读存储介质 |
WO2024011386A1 (zh) * | 2022-07-11 | 2024-01-18 | 浙江大学 | 一种编解码方法、装置、编码器、解码器及存储介质 |
CN118200611A (zh) * | 2022-12-13 | 2024-06-14 | 上海交通大学 | 视频文件发送和接收方法、装置、计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017165417A1 (en) * | 2016-03-21 | 2017-09-28 | Hulu, LLC | Conversion and pre-processing of spherical video for streaming and rendering |
WO2019182293A1 (ko) * | 2018-03-19 | 2019-09-26 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6788333B1 (en) * | 2000-07-07 | 2004-09-07 | Microsoft Corporation | Panoramic video |
JP4600993B2 (ja) * | 2005-08-18 | 2010-12-22 | Kddi株式会社 | 自由視点映像生成システム |
US8184112B2 (en) * | 2008-09-24 | 2012-05-22 | Global Oled Technology Llc | Increasing dynamic range of display output |
CA2940664C (en) * | 2014-02-26 | 2022-08-30 | Searidge Technologies Inc. | Image stitching and automatic-color correction |
US9877016B2 (en) * | 2015-05-27 | 2018-01-23 | Google Llc | Omnistereo capture and render of panoramic virtual reality content |
DE202017104934U1 (de) * | 2016-08-17 | 2017-11-20 | Google Inc. | Mehrstufiges Kameraträgersystem für die stereoskope Bildaufnahme |
KR20190033456A (ko) * | 2017-09-21 | 2019-03-29 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
KR102322508B1 (ko) * | 2017-09-28 | 2021-11-05 | 엘지전자 주식회사 | 스티칭 및 리프로젝션 관련 메타데이터를 이용한 6dof 비디오를 송수신하는 방법 및 그 장치 |
US10504274B2 (en) * | 2018-01-05 | 2019-12-10 | Microsoft Technology Licensing, Llc | Fusing, texturing, and rendering views of dynamic three-dimensional models |
WO2019151798A1 (ko) * | 2018-01-31 | 2019-08-08 | 엘지전자 주식회사 | 무선 통신 시스템에서 이미지에 대한 메타데이터를 송수신하는 방법 및 장치 |
US10764494B2 (en) * | 2018-05-25 | 2020-09-01 | Microsoft Technology Licensing, Llc | Adaptive panoramic video streaming using composite pictures |
CN109087250B (zh) * | 2018-08-29 | 2022-05-24 | 浙江传媒学院 | 基于规则边界约束的图像拼接方法 |
CN111667438B (zh) * | 2019-03-07 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 视频重建方法、***、设备及计算机可读存储介质 |
US11158056B2 (en) * | 2019-06-26 | 2021-10-26 | Intel Corporation | Surround camera system with seamless stitching for arbitrary viewpoint selection |
US11467265B2 (en) * | 2019-08-20 | 2022-10-11 | Luminar, Llc | Coherent pulsed lidar system |
US11164361B2 (en) * | 2019-10-28 | 2021-11-02 | Zillow, Inc. | Generating floor maps for buildings from automated analysis of visual data of the buildings' interiors |
CN114189697B (zh) * | 2021-12-03 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置以及可读存储介质 |
-
2021
- 2021-12-03 CN CN202111470639.2A patent/CN114189697B/zh active Active
-
2022
- 2022-10-08 WO PCT/CN2022/123829 patent/WO2023098279A1/zh unknown
-
2023
- 2023-11-14 US US18/389,462 patent/US20240080429A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017165417A1 (en) * | 2016-03-21 | 2017-09-28 | Hulu, LLC | Conversion and pre-processing of spherical video for streaming and rendering |
WO2019182293A1 (ko) * | 2018-03-19 | 2019-09-26 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
WO2023098279A1 (zh) | 2023-06-08 |
US20240080429A1 (en) | 2024-03-07 |
CN114189697A (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792378B2 (en) | Suggested viewport indication for panoramic video | |
US11699211B2 (en) | Spherical rotation for encoding wide view video | |
CN114189697B (zh) | 一种视频数据处理方法、装置以及可读存储介质 | |
JP7177034B2 (ja) | レガシー及び没入型レンダリングデバイスのために没入型ビデオをフォーマットする方法、装置、及びストリーム | |
CN113891117B (zh) | 沉浸媒体的数据处理方法、装置、设备及可读存储介质 | |
TWI796989B (zh) | 沉浸媒體的數據處理方法、裝置、相關設備及儲存媒介 | |
CN113497928B (zh) | 一种沉浸媒体的数据处理方法及相关设备 | |
WO2023016293A1 (zh) | 自由视角视频的文件封装方法、装置、设备及存储介质 | |
CN116643644A (zh) | 一种沉浸媒体的数据处理方法、装置、设备及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40065980 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |