CN110226316B - 用于对虚拟现实视频执行转换及流传输的系统及方法 - Google Patents
用于对虚拟现实视频执行转换及流传输的系统及方法 Download PDFInfo
- Publication number
- CN110226316B CN110226316B CN201780071089.2A CN201780071089A CN110226316B CN 110226316 B CN110226316 B CN 110226316B CN 201780071089 A CN201780071089 A CN 201780071089A CN 110226316 B CN110226316 B CN 110226316B
- Authority
- CN
- China
- Prior art keywords
- region
- area
- scaled
- equidistant
- server
- 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
- 238000000034 method Methods 0.000 title claims description 92
- 238000006243 chemical reaction Methods 0.000 title description 12
- 238000004891 communication Methods 0.000 claims description 57
- 238000012545 processing Methods 0.000 claims description 52
- 230000002123 temporal effect Effects 0.000 claims description 36
- 230000009471 action Effects 0.000 claims description 29
- 230000008707 rearrangement Effects 0.000 claims description 18
- 239000003086 colorant Substances 0.000 claims description 17
- 238000003672 processing method Methods 0.000 claims description 13
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000009877 rendering Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 29
- 239000000872 buffer Substances 0.000 description 23
- 238000013507 mapping Methods 0.000 description 23
- 230000004044 response Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 14
- 230000009467 reduction Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 239000000203 mixture Substances 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 238000002156 mixing Methods 0.000 description 6
- 238000012805 post-processing Methods 0.000 description 5
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 4
- 101100476639 Caenorhabditis elegans gop-3 gene Proteins 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 101100122750 Caenorhabditis elegans gop-2 gene Proteins 0.000 description 1
- 101000946275 Homo sapiens Protein CLEC16A Proteins 0.000 description 1
- 102100034718 Protein CLEC16A Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000012791 sliding layer Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/391—Resolution modifying circuits, e.g. variable screen formats
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- 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
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2310/00—Command of the display device
- G09G2310/04—Partial updating of the display screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/045—Zooming at least part of an image, i.e. enlarging it or shrinking it
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2350/00—Solving problems of bandwidth in display systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
视频服务器采用将球面图像帧数据转换成与从客户端设备接收到的视听角度对应的第1区域被配置到中间区域的等距柱状图像帧数据的构成。上述视频服务器采用将第1区域缩放至第1分辨率、将与上述第1区域相邻的上述等距柱状图像的第2区域缩放至低于第1分辨率的第2分辨率、将与上述第1区域相邻但不与上述第2区域相邻的上述等距柱状图像的第3区域缩放至低于上述第1分辨率的第3分辨率并以上述缩放后的第2区域与上述缩放后的第3区域相互相邻的方式对上述缩放后的第1区域、上述缩放后的第2区域以及上述缩放后的第3区域进行重排的构成。其结果,能够生成重排后的等距柱状图像帧数据。
Description
技术领域
本发明涉及一种用于对虚拟现实视频执行转换及流传输的系统及方法。具体来讲,本发明涉及一种用于对虚拟现实(vitrual reality; VR)视频数据执行缩减(downscaling)、重排(reformatting)、编码(encoding)以及流传输(streaming)的系统及方法。
背景技术
为了提供360度的视频数据,虚拟现实(vitrual reality;VR) 视频内容通常具有极高的分辨率。例如,360度视频数据中能够包括每秒帧数(frame per second;FPS)为30~60且具有2K(2560× 1440)或4K(3840×1920)以上的高分辨率的UHD(ultra highdefinition,超高清晰度)视频数据。
虚拟现实(VR)视频的流传输能够通过将整体帧数据(例如 H.264/AAC等压缩媒体格式数据)传送到客户端设备(例如智能手机或头戴式显示器(head mount display))并在客户端设备中对球面图像帧(spherical image frame)进行渲染(rendering)的方式实现。如上所述的高分辨率数据传送及渲染方法仍然需要进行改良。
专利内容
本发明要解决的技术课题在于提供一种能够提升虚拟现实视频处理及流传输性能的虚拟现实视频转换及流传输方法和用于执行上述方法的系统。
本发明的技术课题并不限定于在上述内容中提及的技术课题,一般技术人员将能够通过下述记载进一步明确理解未被提及的其他技术课题。
为了解决如上所述的技术课题,适用本发明之一实施例的虚拟现实视频处理系统,能够包括:通信服务器,从客户端设备接收与第1 视野(FOV,field of view)相关的第1信息;视频服务器,执行利用上述第1信息生成编码后(encoding)的第1等距柱状(equirectangular)图像的一系列动作;以及,流传输服务器,将上述编码后的第1球面图像流传输到上述客户端设备。此时,上述通信服务器、上述视频服务器以及上述流传输服务器能够分别利用处理器实现,上述视频服务器,能够执行通过对第1球面图像进行转换而生成第1等距柱状图像(与上述第1视野(FOV)对应的图像被配置到指示上述第1等距柱状图像的中间区域的第1区域中)的第1动作、将上述第1等距柱状图像的上述第1区域缩放(scaling)至第1分辨率的第2-1动作、将与上述第1区域相邻的第2区域缩放至低于第1分辨率的第2分辨率的第2-2动作、将与上述第1区域相邻但不与上述第2区域相邻的第3区域缩放至低于上述第1分辨率的第3分辨率的第2-3动作、通过将上述缩放后的第1区域和上述缩放后的第2区域以及上述缩放后的第3区域重新配置成相邻的状态而生成重排后 (reformatting)的第1等距柱状图像的第3动作以及通过对上述重排后的第1等距柱状图像执行编码而生成上述编码后的第1等距柱状图像的第4动作。
为了解决如上所述的技术课题,适用本发明之一实施例的虚拟现实视频处理方法,在通过包括通信服务器、视频服务器以及流传输服务器的虚拟现实视频处理系统执行的虚拟现实视频处理方法中,能够包括:第1步骤,由上述通信服务器从客户端设备接收与第1视野(FOV) 相关的第1信息;第2步骤,由上述视频服务器将第1球面图像转换成第1等距柱状图像,此时与上述第1视野(FOV)对应的图像被配置到指示上述第1等距柱状图像的中间区域的第1区域中;第3-1步骤,由上述视频服务器将上述第1等距柱状图像的第1区域缩放至第1分辨率;第3-2步骤,由上述视频服务器将与上述第1区域相邻的第2 区域缩放至低于上述第1分辨率的第2分辨率;第3-3步骤,由上述视频服务器将与上述第1区域相邻但不与上述第2区域相邻的第3区域缩放至低于上述第1分辨率的第3分辨率;第4步骤,由上述视频服务器对上述缩放后的第1区域、上述缩放后的第2区域以及上述缩放后的第3区域执行重新配置,从而生成重排后的第1等距柱状图像,此时使上述缩放后的第2区域与上述缩放后的第3区域相邻配置;第 5步骤,由上述视频服务器对上述重排后的第1等距柱状图像执行编码,从而生成编码后的第1等距柱状图像;以及,第6步骤,由上述流传输服务器将上述编码后的第1等距柱状图像流传输到上述客户端设备。
为了解决如上所述的技术课题,适用本发明之一实施例的虚拟现实视频流传输系统,能够包括:存储器;视频服务器,生成与多个视听角度(view angle)对应的多个文件并将上述多个文件存储到上述存储器中,此时上述多个文件分别包括用于从相同视听角度生成具有相同视野(FOV,field of view)的视频流的多个图像组(GOP,group of picture);通信服务器,从客户端设备接收与视听角度相关的信息;以及,流传输服务器,将视频流流传输到上述客户端设备。此时,上述流传输服务器能够作为在通过上述通信服务器接收到与第1视听角度相关的第1信息时的应答,从上述多个文件中选定包含与最接近上述第1视听角度的视听角度对应的第1视频流的第1文件,并利用上述第1文件将上述第1视频流流传输到上述客户端设备,在对上述第1视频流进行流传输的期间内,作为在通过上述通信服务器接收到与第2视听角度相关的第2信息时的应答,从上述多个文件中选定包含与最接近上述第2视听角度的视听角度对应的第2视频流的第2文件,且将流传输源从上述第1文件转换成第2文件,并利用上述第2 文件将上述第2视频流流传输到上述客户端设备。
通过如上所述的适用本发明的实施例,能够对视听者不关注的区域执行缩减。借此,能够大幅减少在虚拟现实视频的流传输过程中需要的数据传送成本以及带宽需求量。
此外,能够通过减少流传输的数据而降低客户端设备(例如智能手机)的电力消耗以及发热量。
此外,能够播放利用现有的流传输方式无法进行播放的高分辨率的影像,从而提升欣赏虚拟现实视频的使用者的沉浸感以及满意度。
此外,能够利用更少数量的云服务器提供流传输服务,从而大幅节省服务成本。
此外,能够以所请求的视听角度为基础使帧的内容移动到图像的中间位置。通过如上所述的方式,能够在减少数据传送大小的同时对虚拟现实(VR)视频格式进行优化。
此外,在执行缩减之后,重排后的等距柱状帧数据能够维持等距柱状格式并以等距柱状格式传送到客户端设备。借此,能够简化在客户端设备中的解码以及渲染处理。
此外,能够在不对重排后的图像进行重建的情况下形成球面图像。借此,能够节省重建所需的图形处理器(GPU)处理成本。
此外,能够仅对与当前的视野(Field of View;FOV)对应的视频部分进行传送,从而大幅降低网络带宽需求量。
此外,能够仅对反映出视野(FOV)的视频部分进行传送,从而以较低的数据传送速度提供流传输服务。借此,能够去除数据缓冲并降低客户端设备的电池消耗。
本发明的效果并不限定于在上述内容中提及的效果,一般技术人员将能够通过下述记载进一步明确理解未被提及的其他效果。
附图说明
如上所述的本发明或与如上所述的本发明相关的目的、特征和/ 或优点,能够通过参考结合附图进行详细说明的后续内容得到进一步明确。
图1是包括适用本发明之一部分实施例的客户端设备以及虚拟现实(VR)视频流传输系统的网络环境的块图。
图2是示例性的计算机系统的块图。
图3是示例性的虚拟现实(VR)视频流传输系统的块图。
图4是对等距柱状图像帧与球面图像帧之间的示例性的映射关系进行图示的示意图。
图5是等距柱状图像帧以及与其对应的球面图像帧的示例图。
图6、图7以及图8是对按照适用本发明的一部分实施例在示例性的虚拟现实(VR)视频处理系统中执行的示例性的缩减以及重排方法的动作进行图示的流程图。
图9、图10、图11以及图12是按照适用本发明的一部分实施例在示例性的虚拟现实(VR)视频处理系统中对图像帧执行缩减以及重排的方法的示例图。
图13、图14以及图15是用于对按照适用本发明的一部分实施例在示例性的虚拟现实(VR)视频处理系统中执行的确定缩减后的区域的宽度以及高度的示例性方法进行说明的示意图。
图16、图17、图18、图19以及图20是用于对按照适用本发明的一部分实施例在示例性的虚拟现实(VR)视频处理系统中减少重新配置后的(或重排后的)区域之间的边界上的伪影的示例性方法进行说明的示意图。
图21、图22以及图23是对按照适用本发明的一部分实施例在示例性的虚拟现实(VR)客户端设备中执行的示例性的视频处理以及渲染方法的动作进行图示的流程图。
图24、图25以及图26是对按照适用本发明的一部分实施例在示例性的虚拟现实(VR)客户端设备中执行的视频处理以及渲染方法进行说明的示意图。
图27、图28以及图29是对按照适用本发明的一部分实施例在示例性的虚拟现实(VR)视频处理系统中执行的示例性的流传输方法的动作进行图示的流程图。
图30以及图31是对按照适用本发明的一部分实施例在示例性的虚拟现实(VR)视频处理系统中执行的示例性的视频处理方法进行说明的示意图。
具体实施方式
接下来,将结合附图对适用本发明的较佳实施例进行详细的说明。本发明的优点、特征及其达成方法,能够通过参考结合附图进行详细说明的后续实施例得到进一步明确。但是本发明并不限定于接下来公开的实施例,而是能够以多种不同的形态实现,下述实施例只是为了更加完整地公开本发明并向具有本发明所属技术领域之一般知识的人员更加完整地公开本发明的范畴,本发明应基于权利要求书的范畴做出定义。在整个说明书中,相同的参考符号表示相同的构成要素。
除非另有定义,否则在本说明书中使用的所有术语(包括技术以及科学性术语)的含义与具有本发明所属技术领域之一般知识的人员普遍理解的含义相同。此外,除非另有明确的定义,否则不应对通常使用的已在词典中做出定义的术语进行过于理想化或夸张的解释。在本说明书中使用的术语只是为了对实施例进行说明,并不是对本发明做出的限定。在本说明书中,除非另有明确的记载,否则单数型语句还包含复数型含义。
在说明书中使用的“包含(comprises)”和/或“包括(comprising)”并不排除所提及的构成要素、步骤和/或动作中有一个以上的其他构成要素、步骤和/或动作存在或附加的可能性。
接下来,将结合附图对适用本发明的几个实施例进行说明。
“通信服务器(communication server)”、“视频服务器(video server)”以及“流传输服务器(streaming server)”能够利用不同的物理服务器实现或利用相同物理服务器中不同功能的功能要素实现。
本发明涉及一种用于对虚拟现实(virtual reality;VR)视频执行转换及流传输的系统及方法,尤其涉及一种用于对虚拟现实(VR) 视频数据执行缩减(downscaling)、重排(reformatting)以及编码 (encoding)的系统及方法。高品质的虚拟现实(VR)视频/音频内容 (例如360度景观视频数据)是高分辨率(例如2K(2560×1440)、 4K(3840×2160或3840×1920)等),因此其数据容量非常庞大。虚拟现实(VR)视频的流传输能够通过将视频数据(例如H.264/AAC等压缩媒体格式)传送到客户端设备(例如智能手机或头戴式显示器)并在客户端设备中对球面图像(spherical image)进行渲染 (rendering)的方式实现。例如,参阅图4,虚拟现实(VR)视频的流传输能够通过将等距柱状图像帧(equirectangularimage frame) 410的整体数据传送到客户端设备(client device)的方式实现。此时,客户端设备能够通过将等距柱状图像帧410的上端区域421、中间区域422以及下端区域423分别映射到球面图像帧430的上端部分 431、中间部分432以及下端部分433而对与等距柱状图像帧410对应的球面图像帧430进行渲染。在上述情况下,360虚拟现实(VR)视频以仅将渲染的球面图像帧中的较小圆形部分显示在画面上并使等距柱状图像帧的上端区域以及下端区域占据整体区域中的相当大部分 (例如50%)的方式构成(参阅球面图像帧430的上端部分431以及下端部分433)。图5中对等距柱状图像帧以及与其对应的球面图像帧的实例进行图示。如图5所示,在仅将渲染的球面图像帧(例如图 5的右侧图像的部分406)中的较小圆形上端部分显示在画面上的期间内,等距柱状图像帧的上端区域(例如图5的左侧图像的部分405) 将占据整体区域中的相当大部分。而且,虚拟现实(VR)视频的视听者通常更集中于中间区域(例如对应于垂直高度的-45度~+45度的部分)。因此,在如上所述的360虚拟现实(VR)视频数据的传送及渲染方法中,降低等距柱状图像帧的上端区域以及下端区域的分辨率为宜。
在一部分实施例中,在对帧中的非主要区域(例如上端以及下端区域)进行缩减(downscaling)的期间内,对应帧的主要区域(例如中间区域)的分辨率将维持与源(例如4K(3840×2160)源)1:1的品质。在一部分实施例中,服务器从客户端设备接收与第1视野(FOV;field of view)或视听者(viewer)的视听角度(view angle)相关的第1信息。例如,如图9所示,视听角度能够被定义为从指示视听者视线(LOS;line of sight)方向的基准矢量或方向(例如图9中的0度方向)的方位角(例如图9中的α度)。在一部分实施例中,视野(FOV)能够被定义为视听者可以通过客户端设备查看的2个方位角之间的范围(例如图9中的3α度与(n-1)α度之间的范围)。非视野(off-FOV,off-field-of-view)能够被定义为视听者无法通过客户端设备查看的方位角范围(例如除图9中的视野(FOV)范围之外的方位角范围)。在一部分实施例中,视野(FOV)能够被定义为视听者可以通过客户端设备查看的2个垂直或高度角度之间的范围(例如高度为-45度与+45度之间的范围)。类似地,非视野(off-FOV)能够被定义为视听者无法通过客户端设备查看的垂直或高度角度之间的范围(例如除与视野(FOV)对应的垂直或高度角度之间的范围之外的其他范围)。在一部分实施例中,服务器将第1球面图像的帧数据转换成第1等距柱状图像的帧数据。此时,第1等距柱状图像的中间区域能够成为与第1视野(FOV)对应的第1区域。在一部分实施例中,服务器将第1等距柱状图像的第1区域(例如中间区域)缩放(scaling) 至第1分辨率(例如与源视频相同的分辨率)。在一部分实施例中,服务器将与第1区域相邻的第1等距柱状图像的第2区域(例如上端区域)缩放(或缩减)至低于第1分辨率的第2分辨率。在一部分实施例中,服务器还将与第1区域(例如中间区域)相邻但不与第2区域相邻的第1等距柱状图像的第3区域(例如下端区域)缩放(或缩减)至低于第1分辨率的第3分辨率。在一部分实施例中,服务器将非视野(off-FOV)区域(例如包含于图9所示的非视野(off-FOV) 区域的区域)缩减至低于第1分辨率的第4分辨率。在一部分实施例中,非视野(off-FOV)区域能够是以第1等距柱状图像的中间视野 (FOV)区域为基准的左侧区域或右侧区域。通过如上所述的缩减方法,能够降低等距柱状图像的上端部分或下端区域、左侧或右侧区域的分辨率。借此,能够大幅减少在对虚拟现实(VR)视频相关数据进行传送时的数据传送量。
在一部分实施例中,将生成以缩放后的第1区域(例如中间或视野(FOV)区域)、缩放后的第2区域(例如缩减后的上端区域)以及缩放后的第3区域(例如缩减后的下端区域)中的缩放后的第2区域和缩放后的第3区域相互相邻的状态重排(reformating)的第1等距柱状图像帧数据。在一部分实施例中,服务器通过对重排后的第1等距柱状图像帧数据进行编码而生成编码后的第1等距柱状图像帧数据。在一部分实施例中,服务器将编码后的第1等距柱状图像帧数据流传输到客户端设备。通过如上所述的重排方法,在执行缩减之后,重排后的等距柱状帧数据能够维持等距柱状格式并以等距柱状格式传送到客户端设备。借此,能够简化在客户端设备中的解码(decoding) 以及渲染处理。
图1是由虚拟现实(VR)视频流传输系统100以及客户端设备 200A、200B以及虚拟现实(VR)内容服务器750构成的示例性的网络环境1000的块图。简单来讲,所图示的网络环境能够包括用于对网络节点(例如客户端设备、虚拟现实(VR)视频流传输系统)进行相互连接的网络650以及用于对网络节点(例如虚拟现实(VR)流传输系统、虚拟现实(VR)内容服务器)进行相互连接的网络650’。在一部分实施例中,网络650与网络650’能够利用相同的网络实现。具体来讲,如图1所示,网络650或650’是一种能够使所参与的设备之间的交互(interaction)变得更加容易的网络。示例性的网络650 或650’为互联网(internet)。但是在其他实施例中,网络也能够是数据中心内的本地网络(local network)、网络架构(network fabric)或任意的其他如局域网络或广域网络等其他网络。网络650 或650’能够由多个相互连接的子网络或独立网络构成。网络650或 650’能够是如企业的内联网等LAN(local area network,局域网)、 MAN(metropolitan area network,城域网)、互联网等网际网络或如无线自组网(ad hoc)、WiFi P2P(点对点)网络等点对点(P2P) 网络。在网络650或650’中能够使用任意类型和/或形态的数据网络和/或通信网络。此外,网络650或650’也能够是公共网络(public network)、私有网络(private network)或公共以及私有网络的组合。通常,网络650或650’用于在如客户端设备200A、200B和虚拟现实(VR)视频流传输系统100以及虚拟现实(VR)内容服务器750 等计算装置之间传递数据。
参阅图1,虚拟现实(VR)视频流传输系统100包括视频服务器 120以及流传输器180。在一部分实施例中,视频服务器120将虚拟现实(VR)视频数据存储到本地(例如存储为视频文件)或从虚拟现实 (VR)内容服务器750接收流传输视频数据。在一部分实施例中,流传输器180包括通信服务器130以及流传输服务器140。在一部分实施例中,通信服务器130与各个客户端设备200A、200B进行通信,从而对流传输系统100的服务相关信息(例如与用户登录、虚拟现实(VR) 视频内容选择、低延迟视频流传输以及视野(FOV)相关的信息等)进行传送。在一部分实施例中,流传输服务器140将虚拟现实(VR)视频帧数据流传输到哥哥客户端设备200A、200B。在一部分实施例中,虚拟现实(VR)视频流传输系统100采用与图2所示的计算机系统300 类似的构成。关于计算机系统300,将在后续的内容中结合图2进行说明。但是,并不要求图2所示的计算机系统300中的所有构成要素必须配备于图1所示的虚拟现实(VR)视频流传输系统100的一部分实施例中。在一部分实施例中,视频服务器120以及流传输器180(和流传输服务器140)分别采用与图2所示的计算机系统300类似的构成。借此,视频服务器120、流传输器180以及客户端设备200A、200B 之间能够通过与网络650类似的网络相互进行通信。通过如上所述的构成,利用视频服务器120的视频处理以及利用流传输器180提供的流传输服务能够独立(例如在独立的物理服务器中)执行。在一部分实施例中,为了使客户端设备能够通过与视频服务器120进行通信而提供自己的视频流,能够在客户端设备200A以及200B中包括流传输器180。
重新参阅图1,各个客户端设备200A、200B能够从虚拟现实(VR) 视频流传输系统100接收视频流传输数据。具体来讲,客户端设备 200A、200B能够从流传输器180的流传输服务器140接收视频流传输数据。在一部分实施例中,各个客户端设备200A、200B能够是配备如显示屏(例如HMD(head mounted display,头戴式显示器)、光学 HMD(头戴式显示器))、输入装置(例如摄像头、头戴式耳机)以及传感器(例如运动传感器、位置/方向传感器、运动模拟器、手势跟踪系统等)的装置。在一部分实施例中,各个客户端设备200A、200B能够通过与通信服务器130进行通信而对与虚拟现实(VR)视频流传输系统100的服务相关信息进行交换。例如,各个客户端设备200A、 200B能够以指示方位角以及俯仰角的视听角度数据形态向通信服务器130提供使用者的当前视野(FOV)。在一部分实施例中,客户端设备200A、200B采用与图2所示的计算机系统300类似的构成。关于计算机系统300,将结合图2进行详细的说明。但是,并不要求图2所示的计算机系统300中的所有构成要素必须配备于图2所示的客户端设备200A、200B的一部分实施例中。
图2是示例性的计算机系统300的块图。示例性的计算机系统300 适合于按照示例性的实施例实现本说明书中所记载的计算机构成要素。简单来讲,计算机系统300包括用于根据指令(instruction)执行对应操作的至少一个处理器310以及用于对指令以及数据进行存储的一个以上的存储器设备360或320。计算机系统300还包括如后所述的至少一个GPU(graphic processing unit,图形处理器)370以及视频存储器380。
参阅图2,示例性的计算机系统300能够包括通过通信系统340 (例如总线)与存储器360进行通信的一个以上的处理器310、配备有用于连接到网络(未图示)的网络接口端口的至少一个网络接口控制器330以及如I/O(input/output,输入/输出)组件350等其他组件。通常,处理器310执行从存储器接收到的指令(或计算机程序)。所图示的处理器310包含高速缓冲存储器320或与高速缓冲存储器 320直接连接。在一部分实例中,指令是从存储器360读取并加载到高速缓冲存储器320中,然后从高速缓冲存储器320读取并利用处理器310执行。
具体来讲,处理器310能够是用于执行如从存储器360或高速缓冲存储器320读取的指令等指令的任意的逻辑回路。在很多实施例中,处理器能够是微处理器单元(microprocessor unit)或特殊用途的处理器。计算机装置300能够基于可按照本说明书中的说明进行工作的任意的处理器或处理器集合实现。处理器310能够是单核心 (single-core)或多核心(multi-core)处理器。处理器310能够是多个独立的处理器。
存储器360能够是适合于对计算机可读取数据进行存储的任意装置。存储器360能够是固定式存储装置或对可拆装式存储介质进行读取的装置。存储器360能够是如所有类型的非易失性存储器 (non-volatile memory)、介质以及存储器装置、半导体存储器装置(例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、(同步动态随机存储器(SDRAM)以及闪速存储器等)、磁盘、光磁盘或光盘(例如只读光盘(CD ROM)、高密度只读光盘 (DVD-ROM)或蓝光(Blu-)光盘)。计算机系统300能够配备任意数量的存储器装置360。
高速缓冲存储器320是一种为了实现快速读取而配置在临近处理器310的位置上的计算机存储器类型。在一部分实施例中,高速缓冲存储器320能够是处理器310的一部分或配备于相同的芯片(chip) 上。在一部分实施例中,能够配备如L2以及L3高速缓冲存储器层等多个级别的高速缓冲存储器320。
网络接口控制器330通过网络接口(能够与网络接口端口混用) 对数据交换进行控制。网络接口控制器330对用于执行网络通信的开放式系统互联(OSI)模型的物理以及数据链路层进行处理。在一部分实施例中,网络接口控制器330的处理器310作业中的一部分是通过一个以上的处理器310进行处理。在一部分实施例中,网络接口控制器330能够是处理器310的一部分。在一部分实施例中,计算机系统 300包括利用单一网络接口控制器330进行控制的多个网络接口。在一部分实施例中,包括多个网络接口控制器330。在一部分实施例中,各个网络接口是物理网络链路(例如cat-5以太网链路)的连接点 (connectionpoint)。在一部分实施例中,网络接口控制器330支持无线网络连接且网络接口端口是无线(例如无线广播)接收器/发送器(例如IEEE 802.11协议、NFC(near field communication,近场通信)、蓝牙(blue tooth)、ANT或其他无线协议)。在一部分实施例中,网络接口控制器330实现如以太网等一个以上的网络协议。通常,计算机系统300使用网络接口并通过物理或无线链路与其他计算机装置执行数据交换。网络接口能够与其他装置直接连接,例如,计算机系统300能够通过用于连接到如互联网等数据网络的集线器、桥接器、开关或路由器等中继装置与其他装置连接。
计算机系统300能够包括一个以上的输入装置或输出装置,或提供与其相关的接口。输入装置能够包括键盘、话筒、触摸屏、踏板、传感器、音乐设备数字接口(MIDI)装置以及鼠标或如轨迹球等定位装置,但并不限定于此。输出装置能够包括视频显示屏、扬声器、盲文终端、照明、音乐设备数字接口(MIDI)装置以及2-D或3-D打印机,但并不限定于此。
计算机系统300的其他构成要素能够包括I/O(输入/输出)接口、外部串联装置以及任意的附加协同处理器(co-processor)。例如,计算机系统300能够包括用于连接到输入装置、输出装置或追加的存储器装置(例如便携式闪速存储驱动器或外部介质驱动器)的接口(例如USB(universal serial bus,通用串行总线)接口)。在一部分实施例中,计算机系统300包括如协同处理器等附加装置。例如,核心处理器包括如数学协同处理器等通过执行高精密度或复杂计算而辅助处理器310的装置。
图形处理器(GPU)370能够是图形加速芯片、处理器、ASIC (applicationspecific integrated circuit,特定用途集成电路)、模拟回路、数字回路、加速卡或上述之组合。在一部分实施例中,图形处理器(GPU)370能够是由nVidia、ATI或Matrox制造的个人计算机图形加速卡或组件。图形处理器(GPU)370提供用于对立体渲染 (volumerendering)进程进行加速的硬件装置,例如使用API (Application ProgrammingInterface,应用程序接口)执行3维纹理映射(3D texture mapping)等。例如,这些应用程序接口(API) 包括OpenGL以及DirectX,但也能够独立于图形处理器(GPU)370 或与图形处理器(GPU)370一起使用其他应用程序接口(API)。关于nVidia图形处理器(GPU)的示例性的应用程序接口(API),在 http://docs.nvidia.com/cuda/#axzz40TIGVdNL中标题为“CUDAToolkit Documentation v.7.5”的网络文档中做出了相关说明,在上述网络文档所公开的内容中,与为了执行在本专利申请中进行说明的功能而构成图形处理器(GPU)的方法相关的详细内容将作为参考包含于本说明书中。在一部分实施例中,图形处理器(GPU)370能够以应用程序接口(API)或对应用程序接口(API)进行控制的应用程序 (application)为基础执行对计算机图形的变形(transformation)、投影(projection)以及映射(例如球面投影(spherical projection) 以及坐标系转换)动作。
视频存储器380包括如VRAM(video random access memory,视频随机存取存储器)、RAM(random access memory,随机存取存储器)、随机存取存储(RAM)驱动器或随机存取存储(RAM)盘、或用于对数据或视频信息进行存储的其他存储器装置。在一部分实施例中,视频存储器380是图形处理器(GPU)370的视频随机存取存储器(VRAM)。图形处理器(GPU)370用驱动程序或存储驱动程序对视频存储器380 的数据存储进行控制。视频存储器380作为对驱动程序的应答,对数据进行存储、传送以及导出。视频存储器380能够执行对数据的子集(subset)或块的存储动作。
图3是对虚拟现实(VR)视频流传输系统进行示例性图示的块图。参阅图3,在一部分实施例中,虚拟现实(VR)视频流传输系统100 包括第1处理器101、第1存储器110、图形处理器(GPU)102以及第2存储器150。此外,第2存储器150包括如解码后帧缓冲区160、后处理后帧缓冲区165、编码后帧缓冲区166、重排后帧缓冲区167 等多个帧缓冲区。在一部分实施例中,第1处理器101采用与图2所示的处理器310类似的构成。在一部分实施例中,图形处理器(GPU) 102采用与图2所示的图形处理器(GPU)370类似的构成。在一部分实施例中,第1存储器110采用与图2所示的存储器360类似的构成。在一部分实施例中,第2存储器150采用与图2所示的视频存储器380 类似的构成。在一部分实施例中,虚拟现实(VR)视频流传输系统100 包括能够常驻于第1存储器110或第2存储器150中的源视频存储器 (source videomemory)115。
参阅图3,在一部分实施例中,视频服务器120能够利用第1处理器101或图形处理器(GPU)102执行或实现。例如,视频服务器120 能够采用通过第1处理器101读取原视频数据(例如存储在视频服务器120本地上的视频文件或从虚拟现实(VR)内容服务器750流传输过来的视频数据)的构成。在一部分实施例中,源视频数据包括多个球面图像帧数据(例如360度4K超高清晰度(UHD)帧数据)。在一部分实施例中,视频服务器120能够将源视频数据存储到源视频存储器115中。
在一部分实施例中,视频服务器120能够包括可通过图形处理器 (GPU)102执行或实现的分析器(parser)121、解码器(decoder) 122、后处理器(post-processor)123、编码器(encoder)125以及重排器(reformatter)126。在一部分实施例中,分析器121通过图形处理器(GPU)102对存储在视频存储器115中的源视频数据进行分析,并从上述源视频数据识别出不同的球面图像帧。在一部分实施例中,解码器122通过图形处理器102对分析后的球面图像帧进行解码,并将解码后的球面图像帧存储到解码后帧缓冲区160中。在一部分实施例中,解码器122以及编码器125能够使用如H.264、H.265/HEVC (High Efficiency VideoCoding,高效率视频编码)等产业标准 (industrial standard)压缩/解压缩技术。在一部分实施例中,解码器122对第1球面图像帧数据进行解码并将解码后的数据存储到解码后帧缓冲区160中。关于示例性的解码器,在2015年11月发表的标题为“NVIDIA VIDEO DECODER(NVCUVID)INTERFACE Programming Guide”的文档中做出了相关说明,在上述网络文档所公开的内容中,与为了达成在本专利申请中进行说明的解码功能而构成解码器的方法相关的详细内容将作为参考包含于本说明书中。在一部分实施例中,后处理器123执行颜色格式转换(color format conversion)。例如,后处理器123能够将存储在解码后帧缓冲区160中的帧数据从亮度 (luminance)/色差(chrominance)格式转换成ARGB(Alpha Red GreenBlue)颜色格式。在一部分实施例中,后处理器123将颜色格式转换后的数据存储到后处理后帧缓冲区162中。在一部分实施例中,后处理器123通过图形处理器(GPU)102执行球面-等距柱状转换(例如使用球面/等距柱状投影或映射方法)。关于示例性的球面/等距柱状投影,在Paul Bourke发表的标题为“Transformations and projections”的文档中做出了相关说明,在上述网络文档所公开的内容中,为了达成在本专利申请中进行说明的功能而执行投影、转换以及映射的方法相关的详细内容将作为参考包含于本说明书中。在一部分实施例中,作为在第1球面图像帧数据被存储到解码后帧缓冲区160 中时的应答,后处理器123通过图形处理器(GPU)102将第1球面图像帧数据转换成第1等距柱状图像帧数据。例如,后处理器123通过图形处理器(GPU)102将4K超高清晰度(UHD)图像帧数据转换成没有被修正(corrected)或歪曲(undistorted)的等距柱状图像帧数据。在一部分实施例中,后处理器123通过图形处理器(GPU)102将第1球面图像帧数据(例如360度4K超高清晰度(UHD)图像帧数据) 转换成与通过第1球面图像帧数据显示的球面图像中的一部分对应的第1等距柱状图像帧数据(例如与客户端设备中的使用者的当前视野 (FOV)对应的360度4K超高清晰度(UHD)图像帧数据中的一部分)。在一部分实施例中,后处理器123通过图形处理器(GPU)102将第1 球面图像帧数据(例如360度4K超高清晰度(UHD)图像帧数据)转换成与通过第1球面图像帧数据(例如360度4K超高清晰度(UHD) 图像帧数据的全部部分)显示的球面图像中的全部对应的第1等距柱状图像帧数据。
在一部分实施例中,后处理器123还通过图形处理器(GPU)执行增强现实(Augmented Reality;AR)所需的图像处理。例如,后处理器123能够对转换后的第1等距柱状图像帧与图形内容(例如对道路图像与车辆图像进行混合)或文本/图形信息(例如对街道图像与商店图像进行混合)进行混合(blending)。在一部分实施例中,作为在完成后处理动作(例如球面-等距柱状转换)时的应答,后处理器123 将后处理后的帧数据存储到后处理后帧缓冲区162中。
在一部分实施例中,重排器126通过图形处理器(GPU)102或处理器101对等距柱状图像帧执行缩减以及重新配置(或重排)。在一部分实施例中,重排器126通过图形处理器(GPU)102或处理器101 以复杂度分析为基础确定等距柱状图像帧中的缩减后的区域的宽度以及高度。例如,参阅图13,为了执行复杂度分析,重排器126能够包括空间复杂度分析器702、空间复杂度累加器704、时间复杂度分析器 703、时间复杂度累加器705以及宽度/高度计算器710。关于复杂度分析的详细内容,将在后续的内容中结合图13至图15进行说明。在一部分实施例中,重排器126通过图形处理器(GPU)102或处理器101 执行伪影(artifacts)处理。关于伪影处理的详细内容,将在后续的内容中结合图16至图20进行说明。在一部分实施例中,重排器126 将重排后的帧数据存储到重排后帧缓冲区167中。
在一部分实施例中,编码器125通过图形处理器102对存储在后处理后帧缓冲区162中的后处理后的帧数据进行编码,并将编码后的帧数据存储到编码后帧缓冲区166中。在一部分实施例中,编码器125 通过图形处理器102对存储在重排后帧缓冲区167中的重排后的帧进行编码,并将编码后的帧数据存储到编码后帧缓冲区166中。关于示例性的编码器,在标题为“NVIDIA VIDEO ENCODER(NVENC)INTERFACE Programming Guide”的文档中做出了相关说明,在上述网络文档所公开的内容中,与为了达成在本专利申请中进行说明的编码功能而构成编码器的方法相关的详细内容将作为参考包含于本说明书中。在一部分实施例中,分析器121、解码器122、后处理器123、重排器126以及编码器125是通过虚拟现实(VR)视频流传输系统100的图形处理器(GPU)102执行。在一部分实施例中,分析器121、解码器122、后处理器123、重排器126以及编码器125的一部分动作是通过第1 处理器101执行而剩余的动作是通过图形处理器(GPU)102执行。
参阅图3,在一部分实施例中,虚拟现实(VR)视频流传输系统 100包括通过第1处理器101或图形处理器(GPU)102中的至少一个执行或实现的通信服务器130。在一部分实施例中,通信服务器130 通过第1处理器101设定与客户端设备(例如客户端设备200A)的连接(connection)。在一部分实施例中,所设定的连接使用如WebSocket 协议等全双工信道协议(full-duplex channel protocol)。借此,不需要对大量的协议报头(例如http报头)进行通信,而是只需要利用少量的帧(例如WebSocket帧)即可进行连接设定,因此能够降低延迟时间。在一部分实施例中,通信服务器130能够将与利用后处理器123进行转换和/或利用重排器125进行重排的第1等距柱状图像帧数据对应的第1视野(FOV)相关的第1信息传送到客户端设备。在一部分实施例中,通信服务器130能够从客户端设备接收与第2视野(例如客户端设备的使用者的当前视野(FOV))相关的第2信息。在一部分实施例中,客户端设备200A以及虚拟现实(VR)视频流传输系统 100两者都能够将初始视野(FOV)的默认值设定为从使用者当前正在查看的图像帧的中心沿直线偏向右侧的角度。在一部分实施例中,与视野(FOV)相关的信息包括指示俯仰角以及方位角的视听角度。在一部分实施例中,与视野(FOV)相关的信息包括表示视听者视线 (line-of-sight)的基于方位角的视听角度(azimuth view angle,参阅图9)以及表示视听者可观察到的方位角范围的基于方位角的视野(FOV)(azimuth FOV,参阅图9)。在一部分实施例中,与视野 (FOV)相关的信息包括表示视听者视线的基于垂直或高度的视听角度以及表示视听者可观察到的垂直或高度角度范围的基于垂直或高度的视野(FOV)(例如高度为-45度与+45度之间的范围)。在一部分实施例中,在图形处理器(GPU)102对视频服务器120的动作(例如利用分析器121、解码器122、后处理器123、重排器126以及编码器125 执行的动作)进行处理的期间内,通信服务器130能够根据客户端设备的请求(例如通过WebSocket协议)通过第1处理器101对客户端设备使用者的当前视野(FOV)进行更新。在一部分实施例中,客户端设备能够通过与通信服务器130的稳定的连接方法(例如基于Jetty 的WebSocket协议)将客户端设备使用者的当前视听角度信息更新到通信服务器130中。借此,能够提供稳定的连接状态并降低安全开销以及延迟时间。
在一部分实施例中,客户端设备能够向通信服务器130请求特定的虚拟现实(VR)图像/视频数据。例如,客户端设备能够通过 WebScoket协议向通信服务器130请求虚拟现实(VR)图像。在一部分实施例中,根据如上所述的客户端设备的请求,通信服务器130能够通过第1处理器101导出与请求对应的源视频数据(例如存储在本地文件或通过虚拟现实(VR)内容服务器750流传输的源视频数据) 并将所导出的源视频数据提供给图形处理器(GPU)102。图形处理器 (GPU)102能够对所导出的源视频数据执行如上所述的解码/后处理/ 重排/编码动作。在一部分实施例中,通信服务器130能够提供用于对虚拟现实(VR)视频流传输系统100的服务进行管理的网络服务(例如服务的使用者登录及证书(credential)检查管理、使用者账户/ 配置文件管理以及可供使用者选择需要查看的视频内容的虚拟现实 (VR)视频内容列表)。
参阅图3,虚拟现实(VR)视频流传输系统100能够包括流传输服务器140。此外,流传输服务器140能够利用第1处理器101或图形处理器(GPU)102中的至少一个执行或实现。在一部分实施例中,流传输服务器140通过第1处理器101设定与客户端设备(例如客户端设备200A)的第1连接。在一部分实施例中,为了实时地向客户端设备的使用者传递视频数据,流传输服务器140使用RTSP(Real Time Streaming Protocol,实时流传输协议)。在一部分实施例中,流传输服务器140从编码后帧缓冲区166读取编码后的第1等距柱状图像帧数据,并通过第1连接将编码后的第1等距柱状图像帧数据流传输到客户端设备200A。在一部分实施例中,视频服务器120与流传输服务器140利用不同的进程执行。在一部分实施例中,能够采用通信服务器130与流传输服务器140利用单一进程执行的构成。在一部分实施例中,通信服务器130通过WebSocket协议与客户端设备直接进行交互并在与视频服务器120相同的物理服务器上执行。借此,能够降低反馈以及通信延迟时间。在一部分实施例中,流传输服务器140与通信服务器130(统称为“流传输器”180)利用相同的单一进程执行,而与此相反,视频服务器120利用能够由流传输器180启动并管理的单独的进程执行。通过如上所述的双进程的构成,能够提升网络应答性(通过降低延迟)以及系统稳定性。在一部分实施例中,流传输服务器40与视频服务器120能够通过随机存取存储(RAM)驱动器或随机存取存储(RAM)盘共享(最终被提供到客户端设备的)视频流数据。上述随机存取存储(RAM)驱动器或随机存取存储(RAM)盘能够在实际数据驻留在系统随机存取存储器(RAM)的期间内以文件形式进行访问(access),因此能够消除硬件输入/输出(I/O)开销以及延迟时间。
图6是对按照一部分实施例在虚拟现实(VR)视频处理系统中执行的示例性的缩减以及重排方法的动作进行图示的流程图。简单来讲,在方法500的最初的步骤510中,能够从客户端设备接收与第1视野 (FOV)相关的信息。在步骤520中,能够以所接收到的第1视野(FOV) 信息为基础将第1球面图像帧数据转换成第1等距柱状图像帧数据。在步骤530中,能够确定第1等距柱状图像帧数据的缩减后的上端区域、下端区域、左侧区域或右侧区域的宽度以及高度。在步骤540中,能够根据所确定的宽度以及高度对第1等距柱状图像帧数据的上端区域、下端区域、左侧区域或右侧区域进行缩减。在步骤550中,能够对第1等距柱状图像帧数据的缩减后的中间区域、下端区域、左侧区域或右侧区域进行重新配置(或重排)。在步骤560中,能够在区域(例如中间区域、下端区域、左侧区域或右侧区域)之间的边界上对伪影进行处理。在步骤570中,能够对重排后的第1等距柱状图像帧数据进行编码。在步骤580中,能够将编码后的帧数据流传输到客户端设备。图6所示的流程图,将在后续的内容中结合图9至图13进行更为详细的说明。
图9、图10、图11以及图12是按照一部分实施例在示例性的虚拟现实(VR)视频处理系统中对图像帧执行缩减以及重排的方法的示例图。具体来讲,图9对能够被定义为以指示视听者601视线方向的基准矢量或方向(例如图9所示的0度方向)为基准的方位角的示例性的(基于方位角的)视线角度602(例如图9中的α度)进行了图示。图9对能够被定义为视听者601通过客户端设备查看的2个方位角之间的范围(例如图9中的3α度与(n-1)α度之间的范围)的示例性的(基于方位角的)视野(FOV)进行了图示。非视野(off-FOV) 604能够被定义为视听者无法通过客户端设备查看的方位角范围(例如除图9中的视野(FOV)范围之外的方位角范围)。
图10对原始等距柱状图像帧数据610(执行缩减以及重排之前) 和利用重排器126(参阅图3)执行缩减以及重排之后的示例性的重排后的等距柱状图像帧数据620进行了图示。原始等距柱状图像帧数据 610包括中间部分611、左侧部分612、右侧部分613、上端部分614 以及下端部分615。在一部分实施例中,中间部分611同时与基于方位角的视野(FOV)(例如图9中的3α度与(n-1)α度之间的范围) 以及基于垂直或高度的视野(FOV)(例如高度为-45度~+45度之间的范围)对应。在一部分实施例中,服务器(例如图3所示的通信服务器130)从客户端设备(例如图3所示的客户端设备200A)接收基于方位角的视野(FOV)和基于垂直或高度的视野(FOV)中的至少一个。在一部分实施例中,重排器126能够以基于方位角的视野(FOV) 以及基于垂直或高度的视野(FOV)中的至少一个为基础确定中间部分 611的宽度以及高度。在一部分实施例中,重排器126能够以可通过所接收到的基于方位角的视野(FOV)以及基于高度的视野(FOV)计算出的非视野(off-FOV)(参阅图9所示的非视野(off-FOV)604) 为基础分别确定左侧部分614以及右侧部分615的宽度以及高度。在一部分实施例中,重排器126能够以所确定的中间部分611的高度为基础分别确定上端部分612以及下端部分613的高度。
在一部分实施例中,重排器126能够通过将中间部分611中间部分611缩放至第1分辨率(例如与中间部分611的原始分辨率几乎相同的分辨率)而形成(缩放后的)中间区域621。在一部分实施例中,能够在执行缩减之前确定缩减后的区域(例如缩减后的上端部分/下端 /左侧/右侧区域)的宽度以及高度。在一部分实施例中,能够以复杂度分析为基础确定缩减后的区域的宽度以及高度。关于缩减后的区域的复杂度分析和确定其宽度以及高度的详细内容,将在后续的内容中结合图13至图15进行说明。在一部分实施例中,能够在确定各个缩减后的区域(例如图10中的左侧区域622、右侧区域623、上端区域 624、下端区域625)的宽度以及高度之后以第2分辨率、第3分辨率、第4分辨率以及第5风险率对左侧部分612、右侧部分613、上端部分 614、下端部分615进行缩减。在一部分实施例中,第2至第5风险率是低于第1分辨率的分辨率。
在一部分实施例中,在形成缩减后的中间区域621、左侧区域622、右侧区域623、上端区域624以及下端区域625之后,重排器126能够通过对区域621至625进行重新配置而形成重排后的等距柱状图像帧数据620。例如,如图10所示,在重排后的等距柱状图像帧数据620 中,能够以上端区域624以及下端区域625相互相邻并与中间区域621 的上侧部分相邻的方式重新配置。在一部分实施例中,如图11所示,在重排后的等距柱状图像帧数据630中,能够以上端区域624以及下端区域625相互相邻并与中间区域621的下侧部分相邻的方式重新配置。
图12对以不同的视野(FOV)执行重排的实例进行了图示。在一部分实施例中,等距柱状图像帧数据610(等距柱状格式)在方位角 (或y轴)上沿着水平方向涵盖(cover)360度。图12对不同的视听角度(α度、2α度、3α度、...、(n-1)α度(例如α=30))进行了图示。在一部分实施例中,重排器126计算出与给定的视听角度对应的视野(FOV)并以所计算出的视野(FOV)为基础确定中间部分611 (以及左侧部分612和右侧部分613)的宽度以及高度,再以中间部分611的高度为基础分别确定上端部分614以及下端部分615的高度并确定各个缩减后的区域的宽度以及高度,接下来根据所确定的宽度以及高度对图像进行缩减,然后对缩减后的区域进行重新配置(或重排)。图12对分别以视听角度α度、2α度、3α度、4α度以及5α度为基础对图像进行缩减以及重排时生成的重排后的图像641至645 进行了图示。
在一部分实施例中,在按照如图像格式620(参阅图10)或图像格式630(参阅图11)等图像格式构成帧之前,帧的内容将以所请求的视听角度为基础移动到图像的中间位置。通过如上所述的方式,能够在减少数据传送大小的同时对虚拟现实(VR)视频格式进行优化。在一部分实施例中,以大多数头戴式显示器(HMD)提供(基于方位角的)75度至95度视野(FOV)的观察结果为基础,(基于方位角的) 视野(FOV)的宽度被设定(例如预先设定)为75度至95度。在一部分实施例中,与所给定的视听角度对应的视野(FOV)能够以预先设定的基于方位角的视野(FOV)宽度确定。例如,当给定的视听角度为0 度以及基于方位角的视野(FOV)宽度为90度时,与其对应的基于方位角的视野(FOV)为-45度至+45度之间。在一部分实施例中,因为非视野(off-FOV)能够以视野(FOV)为基础进行计算,因此能够对非视野(off-FOV)区域(例如左侧以及右侧区域)进行缩减并借此大幅减少数据传送量。在一部分实施例中,非视野(off-FOV)区域在垂直的-90~-50度、50~90度范围以及水平的-180~-50度、50~180 度范围之内。在一部分实施例中,上端部分和下端部分在水平以及垂直方向上均被缩减,缩减后的上端区域以及下端区域能够并排配置在中间区域的上侧部分(参阅图10)或中间区域的下侧部分(参阅图11)。视听者通常无法查看到非视野(off-FOV)区域或不会聚焦于非视野 (off-FOV)区域,因此原始分辨率的非视野(off-FOV)区域能够被视为放大的区域。因此,即使是已经在服务器中对非视野(off-FOV) 区域进行缩减的情况下,当在客户端设备中对缩减后的非视野 (off-FOV)区域进行重建时也不会导致视听者所认知的非视野 (off-FOV)区域的视频品质的下降。因为视听者通常都是查看图像的中间部分(例如图10中的中间部分611),因此在一部分实施例中,服务器(例如图3所示的通信服务器130或流传输服务器140)能够周期性地对视听者的视野(FOV)数据进行实时采集并在不进行缩减的情况下使用中间部分。在一部分实施例中,客户端设备的非视野 (off-FOV)区域的左侧以及右侧部分是在视听者不转换变更自己的视野(FOV)的情况下无法查看到的部分。在一部分实施例中,这些隐藏部分将被(例如以2:1~4:1的比例)缩减并编码。在一部分实施例中,客户端设备只有在视听者旋转时才会对隐藏部分进行显示,且客户端设备的图形处理器(GPU)会在视听者停止旋转之后将渲染时被隐藏的部分重新放大到原始的分辨率。在一部分实施例中,在视听者停止旋转之后,新的视频帧(包括更新的视野(FOV))将在较短的时间之内以较高的画质进行显示。例如视频帧的新视野(FOV)更新延迟时间在内部网络中约为200~300ms而在公共网络中约为300ms~1sec。在一部分实施例中,能够通过如下所述的方法缩短新视野(FOV)的更新延迟时间。例如,能够利用如(1)使用能够通过WebSocket对视野 (FOV)值进行传递的快速安全的反馈信道的方法,(2)使用能够在视频文件之间进行转换的尽可能小的GOP(group of picture,图像组)的方法(例如在一部分实施例中,即使是在任意瞬间发生视野(FOV) 变更的情况下,转换时间也不大于500ms),(3)通过在客户端设备中对流缓冲区的缓冲水平进行控制而将其大小减至最小的同时防止因为较低的缓冲水平而导致的反复暂停播放的现象的方法减少更新延迟时间。在一部分实施例中,因为在将大小减至最小以及防止反复暂停播放的现象之间存在权衡(trade off)关系,因此能够以当时的网络状态为基础进行权衡。
接下来,将结合图6至图12对图6所示的流程图进行详细的说明。在步骤510中,能够从客户端设备(例如图3所示的客户端设备200A) 接收与第1视野(FOV)相关的第1信息。在一部分实施例中,与第1 视野(FOV)相关的第1信息能够包括视听者的视听角度(例如图9所示的视听角度602)、基于方位角的视野(FOV)(例如图9所示的视野(FOV)603)、基于垂直或高度的视野(FOV)或俯仰角中的至少一个。在一部分实施例中,利用第1处理器(例如图3所示的处理器 101)实现的通信服务器(例如图3所示的通信服务器130)采用使第 1处理器从客户端设备接收与第1视野(FOV)相关的第1信息的构成。在一部分实施例中,通信服务器通过利用WebSocket协议设定的第1 连接从客户端设备接收视野(FOV)信息。
在步骤520中,第1球面图像帧数据能够以所接收到的与第1视野(FOV)相关的第1信息为基础转换成第1等距柱状图像帧数据。在一部分实施例中,利用第1处理器(例如图3所示的处理器101)或图形处理器(GPU)(例如图3所示的图形处理器(GPU)102)实现的视频服务器(例如图3所示的视频服务器120)能够采用使第1处理器或图形处理器(GPU)将第1球面图像帧数据转换成第1等距柱状图像帧数据的构成。此时,第1等距柱状图像帧数据(例如图10以及图 11所示的图像610)的中间区域(例如图10以及图11所示的中间部分611)能够是与第1视野(FOV)(例如图9所示的视野(FOV)603) 对应的第1区域。在一部分实施例中,能够以与第1视野(FOV)相关的第1信息为基础确定其他区域(例如左侧部分612以及右侧部分613)的宽度以及高度。在一部分实施例中,能够以中间部分611的高度为基础确定其他区域(例如上端部分614以及下端部分615)的高度。在一部分实施例中,向上述等距柱状图像帧的转换是通过视频服务器120的后处理器123(参阅图3)执行。
在步骤530中,能够确定缩放后的第1等距柱状图像数据620的缩减后的区域(例如图10的上端区域624、下端区域625、左侧区域 622以及右侧区域623)的宽度以及高度。关于确定各个缩减后的区域的宽度以及高度的详细内容,将在后续的内容中结合图13至图15进行说明。
在步骤540中,如图10所示,第1等距柱状帧数据610的上端部分614、下端部分615、左侧部分612或右侧部分613都将被缩减。此时,缩减后的上端区域624、下端区域625、左侧区域622或右侧区域 623分别成为在步骤530中确定的宽度以及高度。视频服务器能够将与第1视野(FOV)对应的第1等距柱状图像的第1或中间区域(例如中间区域611)缩放至第1分辨率(例如与第1等距柱状图像帧数据 610的原始分辨率大致相同的分辨率)。视频服务器能够将与中间区域相邻的第1等距柱状图像的第2或上端区域(例如上端部分614) 缩放至低于第1分辨率的第2分辨率(例如2:1~4:1的缩减比例)。其结果,缩减后的上端区域能够成为在步骤530中规定的宽度以及高度。视频服务器能够将与第1或中间区域相邻但不与第2或上端区域相邻的第1等距柱状图像的第3或下端区域(例如下端部分615)缩放至低于第1分辨率的第3分辨率(例如2:1~4:1的缩减比例)。其结果,缩减后的下端区域能够成为在步骤530中规定的宽度以及高度。在一部分实施例中,视频服务器能够采用使第1处理器将与中间区域的左侧相邻的第1等距柱状图像的左侧区域(例如左侧部分612) 缩放至低于第1分辨率的第4分辨率(例如2:1~4:1的缩减比例) 并将与中间区域的右侧相邻的第1等距柱状图像的右侧区域(例如右侧部分613)缩放至低于第1分辨率的第5分辨率(例如2:1~4:1的缩减比例)的构成。其结果,缩减后的左侧区域和右侧区域分别成为在步骤530中确定的宽度以及高度。
在步骤550中,如图10所示,能够对第1等距柱状图像帧数据的缩放后的中间区域(例如中间区域621)、缩减后的上端区域(例如上端区域624)、缩减后的下端区域(例如下端区域625)、缩减后的左侧区域(例如左侧区域622)或缩减后的右侧区域(例如右侧区域623)进行重新配置(或重排)。通过重新配置,能够形成重新配置后的等距柱状图像帧数据620。在一部分实施例中,视频服务器能够对缩放后的中间区域、缩减后的上端区域以及缩减后的下端区域进行重新配置。其结果,能够生成以缩减后的上端区域与缩减后的下端区域相互并排相邻的方式重排的第1等距柱状图像帧数据610。在一部分实施例中,重新配置之后的缩减后的上端区域以及缩减后的下端区域将与缩放后的中间区域的上侧部分相邻(参阅图10)。在一部分实施例中,重新配置之后的缩减后的上端区域以及缩减后的下端区域将与缩放后的中间区域的下侧部分相邻(参阅图11)。
在步骤560中,如图10所示,能够在缩放后的区域(例如中间区域621、上端区域624、下端区域625、左侧区域622或右侧区域625) 之间的边界上对伪影进行处理。当使用如MPEG-4AVC(H.264)编码解码器等标准形式的编码器通过帧内预测模式(intra frameprediction)以及帧间预测模式(inter frame prediction)对区块内的颜色进行优化时,可能会在缩放后的区域的边界上发生伪影。通过如上所述的优化处理,与特定区块相邻的区块的颜色会对特定区块的颜色造成影响,因此会在缩放后的区域的边界(例如上端区域624 与下端区域625之间的边界、上端区域624与中间区域621之间的边界或下端区域625与中间区域621之间的边界)上发生伪影。关于伪影处理的详细内容,将在后续的内容中结合图16至图20进行说明。
在步骤570中,能够对重排后的第1等距柱状图像帧数据进行编码。在一部分实施例中,也能够在步骤560中对伪影进行处理之后再执行编码。在一部分实施例中,如图10所示,视频服务器能够对包括缩放后的中间区域、缩放后的上端区域、缩放后的下端区域、缩放后的左侧区域以及缩放后的右侧区域的重排后的第1等距柱状图像帧数据(例如被存储到图3所示的重排后帧缓冲区167中的图像帧数据 620)进行编码。其结果,能够生成编码后的第1等距柱状图像帧数据。在一部分实施例中,编码后的第1等距柱状图像帧数据被存储到编码后帧缓冲区166(参阅图3)中。
在步骤580中,能够将编码后的帧数据流传输到客户端设备。利用第1处理器(例如处理器101)或图形处理器(GPU)(例如图形处理器(GPU)102)实现的流传输服务器(例如图3所示的流传输服务器140)采用使第1处理器将编码后的第1等距柱状图像帧数据传送到客户端设备的构成。在一部分实施例中,流传输服务器利用实时流传输协议(RTSP)将编码后的第1等距柱状图像帧数据流传输到客户端设备。
*图7是对按照一部分实施例确定第1等距柱状图像帧数据中的各个缩放后的区域(例如缩放后的上端/下端/左侧/右侧区域)的宽度以及高度的动作进行图示的流程图。简单来讲,在方法530的最初的步骤531中,能够生成第1等距柱状图像帧数据的时间复杂度地图 (time complexity map)。在步骤532中,能够生成第1等距柱状图像帧数据的空间复杂度地图。在步骤533中,能够通过对时间复杂度地图以及空间复杂度地图进行结合而生成结合后的复合度地图。在步骤534中,能够以结合后的复杂度地图为基础分别确定第1等距柱状图像帧数据的缩减后的上端区域、缩减后的下端区域、缩减后的左侧区域或缩减后的右侧区域的宽度以及高度。图7所示的流程图,将在后续的内容中结合图13至图15进行更为详细的说明。
图13、图14以及图15是用于对按照一部分实施例在示例性的虚拟现实(VR)视频处理系统中执行的确定缩减后的区域的宽度以及高度的示例性方法进行说明的示意图。具体来讲,图13对利用处理器或图形处理器(GPU)实现的用于确定缩减后的区域的宽度以及高度的示例性模块(module)或装置进行了图示。在一部分实施例中,重排器 126(参阅图3)是宽度以及高度确定模块或装置,包括空间复杂度分析器(spatial complexity analyzer)702、时间复杂度分析器 (temporal complexity analyzer)703、空间复杂度累加器(spatial complexity accumulator)704、时间复杂度累加器(temporal complexityanalyzer)705以及宽度及高度计算器(width and height calculator)710。在一部分实施例中,视频解码器122(参阅图3) 为了生成等距柱状图像帧数据而对视频流701(例如球面图像帧数据或360度超高清晰度(UHD)4K帧数据)进行解码。在一部分实施例中,宽度及高度计算器710以预先定义的宽度以及高度值为基础确定缩放后的上端区域(例如图10中的上端区域624)或缩放后的下端区域(例如下端区域625)的宽度以及高度。在一部分实施例中,宽度及高度计算器710以空间复杂度分析结果(例如利用空间复杂度分析器702执行分析的结果)或时间复杂度分析结果(例如利用时间复杂度分析器703执行分析的结果)为基础确定缩放后的上端区域或缩放后的下端区域的宽度以及高度。在一部分实施例中,空间复杂度分析器702以及时间复杂度分析器703,(1)确定从视频解码器122提供的等距柱状图像帧中的空间或时间复杂区域,(2)为更复杂的区域分配更大的宽度和/或高度。
在一部分实施例中,空间复杂度分析器702通过从图像帧去除杂讯(noise)而执行空间复杂度分析。在一部分实施例中,空间复杂度分析器702通过适用调色板(palette)(例如颜色组-例如24位 RGB颜色由1600万个颜色构成)而去除杂讯。其结果,各个原始颜色大致会被重新指定为调色板上的特定颜色。例如,能够利用8(R)×8(G) ×8(B)颜色的调色板将各个原始颜色重新指定为8(R)×8(G)×8(B)中的某一个颜色。在一部分实施例中,空间复杂度分析器702将一个图像帧分割成n×n个区块并在各个区块中对不同颜色的数量进行计数 (count)。在一部分实施例中,空间复杂度累加器704通过对各个区块的计数(例如从多个图像帧)进行合算或累加而生成显示出各个区块的累加计数的空间复杂度地图706。图14对从如屏幕截图721所示的图像帧组中生成的示例性的空间复杂度地图723进行了图示。图15 对从如屏幕截图731所示的图像帧组中生成的又一示例性的空间复杂度地图733进行了图示。在一部分实施例中,宽度及高度计算器710 能够根据上述空间复杂度地图将包含更多颜色的对象(object)/区域确定为包含更多视觉信息(visual information)的复杂的对象/区域。此外,宽度及高度计算器710为(空间上)更复杂的对象/区域分配更大的宽度和/或高度值。在一部分实施例中,空间复杂分析器702使用如OpenGL或DirectX等图形API(Application Programming Interface,应用程序接口)或利用图形处理器(GPU)上的如CUDA 或OpenCL等gpgpu API执行空间复杂度分析。
在一部分实施例中,时间复杂度分析器703通过对区域内的一个影像帧的像素值(例如像素的亮度值或RGB值)相对于前一个图像帧的相同像素值发生临界值以上的变化(例如2个像素亮度值或2个RGB 之间的差异)的像素数量进行计数而执行时间复杂度分析。例如,能够在两个帧之间对像素值变化量大于临界值的上端区域的像素数量与像素值变化量大于临界值的下端区域的像素数量进行比较。在一部分实施例中,时间复杂度累加器705从多个时间上连续的帧图像生成维持各个像素的计数(例如各个像素值发生临界值以上变化的次数)并显示各个像素的累加计数的时间复杂度地图707。图14对从如屏幕截图721所示的图像帧组中生成的示例性的时间复杂度地图722进行了图示。图15对从如屏幕截图731所示的图像帧组中生成的又一示例性的时间复杂度地图732进行了图示。在一部分实施例中,宽度及高度计算器710根据上述时间复杂度地图确定将包含更频繁变更的像素的对象/区域确定为包含更复杂的视觉信息的对象/区域,并为(时间上) 更复杂的对象/区域分配更大的宽度和/或高度。例如,能够在多个时间上连续的帧图像中,对上端区域的各个像素的平均计数(例如各个像素的值的变化量大于临界值的平均次数)与下端区域的各个像素的平均计数进行比较。在一部分实施例中,时间复杂分析器使用如 OpenGL或DirectX等图形应用程序接口(API)或图形处理器(GPU) 上的如CUDA或OpenCL等gpgpu API执行时间复杂度分析。
在一部分实施例中,在图13所示的结合步骤709,宽度及高度计算器710通过对从空间复杂度地图706计算出的空间复杂度以及从时间复杂度地图707计算出的时间复杂度进行结合而计算出缩减后的区域的宽度以及高度。在一部分实施例中,用于表示上端区域和下端区域的整体宽度与给定区域(area)之间的宽度比例(width ratio)的 W(ara)是通过下述公式1以及公式2进行定义。
【公式1】
【公式2】
Coefftemporal+Coeffspatial=1.0
在上述公式1以及上述公式2中,W(area)表示给定区域(area) 的宽度比例,Ct(area)表示给定区域(area)的时间复杂度。Cs(area) 表示给定区域(area)的空间复杂度,Coefftemporal表示用于调节时间复杂度的比例的系数因子(或加权值)(默认值为0.5),Coeffspatial表示用于调节空间复杂度的比例的系数因子(或加权值)(默认值为 0.5)。例如,上端区域的宽度比例能够通过下述公式3进行计算。
【公式3】
下端区域的宽度比例能够通过将Ct(p)以及Cs(top)替换成 Ct(bottom)以及Cs(bottom)而以类似的方式计算得出。在一部分实施例中,能够按照与利用上述公式1以及上述公式2确定给定区域(area) 的宽度比例的上述方法类似的方式,分别根据缩放后的中间区域的宽度确定缩减后的左侧区域以及右侧区域的宽度。
在一部分实施例中,当给定区域的宽度比例大于预先定义的临界值(例如0.7)时,宽度及高度计算器710能够将整体宽度(例如上端区域以及下端区域的原始宽度)分配到上端区域以及下端区域。这是因为,(当为一个区域分配过大的宽度时)其他区域的宽度将变得很小。例如,当上端区域的宽度大于预先定义的临界值时,能够为上端区域和下端区域分别分配原始宽度(宽度不发生变更)或为两者分配与中间区域的宽度相同的宽度。
在一部分实施例中,能够从图14所示的时间复杂度地图722以及空间复杂度地图723计算出如下所示的Ct(Top)、Ct(Bottom)、Cs(Top) 以及Cs(Bottom)。
Ct(Top)=156.81,Ct(Middle)=293.68,Ct(Bottom)=711.44
Cs(Top)=23.01,Cs(Middle)=44.15,Cs(Bottom)=49.34
当将默认系数值(Coefftemporal=Coeffspatial=0.5)适用到公式 1以及公式2时,能够计算出W(Top)为0.25且W(Bottom)为0.75。即,宽度及高度计算器710能够为下端区域分配上端区域的3倍以上的宽度。
在一部分实施例中,宽度及高度计算器710能够利用上述公式2 以及下述公式4确定表示给定区域(area)以及中间区域的整体高度与给定区域之间的高度比例(heightarea)的H(area)。
【公式4】
在上述公式4中,H(area)表示给定区域(area)和中间区域的整体高度与区域(area)之间的高度比例。Ct(area)表示给定区域(area) 的时间复杂度,Cs(area)表示给定区域(area)的空间复杂度。 Coefftemporal表示用于调节时间复杂度的比重的系数因子(或加权值) (默认值为0.5),Coeffspatial表示用于调节空间复杂度的比重的系数因子(或加权值)(默认值为0.5)。在一部分实施例中,宽度及高度计算器710能够为上端区域以及下端区域分别分配重排后的图像 (整体)高度的预先设定的百分比(例如25%)。但是,当利用上述公式2以及上述公式4计算出的上端部分区域或下端部分区域的高度比例大于预先定义的临界值时,也能够为各个区域分配更大的高度。
在一部分实施例中,如图13所示,在对缩放后的区域的宽度以及高度进行计算时能够适用使用者统计708(例如指示在客户端设备中的使用者行动的数据)。例如,客户端设备能够在视听角度的值每次发生变更时对包含使用者的视听角度的视野(FOV)信息进行传送,因此能够在各个帧收集到与使用者正在查看的内容相关的信息(例如从服务器)。具体来讲,例如当客户端设备的偏离(yaw)(或x-轴) 角度(或头戴装置的偏离角度)大于45度或小于-45度时,宽度以及高度计算器710能够在接收到包含客户端的偏离角度的视野(FOV)信息时分别确定(客户端设备的)使用者正在查看当前帧的上端或下端。在充分收集到如上所述的使用者的行动数据之后,宽度及高度计算器 710能够通过使用在公式1以及公式2的基础上添加项(term)的下述公式5以及公式6,以使用者统计数据为基础计算出更新的宽度以及高度并利用更新的宽度以及高度重新生成不同视野(FOV)的视频文件。
【公式5】
【公式6】
Coefftemporal+Coeffspatial+Coeffstat=1.0
在上述公式5以及上述公式6中,F(area)表示使用者(或多个使用者)查看给定区域(area)的帧的数量,Coeffstat表示用于对使用者统计的比重进行调节的系数因子(或加权值)。
接下来,将结合图13至图15对图7所示的流程图进行更为详细的说明。参阅图7,在步骤531中,能够生成第1等距柱状图像帧数据的时间复杂度地图(例如时间复杂度地图707)。在一部分实施例中,视频服务器能够采用使第1处理器以时间复杂度为基础生成第1等距柱状图像的复杂度地图的构成。具体来讲,通过对相同像素的值在某一个帧与下一个之间发生临界值以上的变化的像素变化进行计数而生成时间复杂度地图。参阅图13,时间复杂度分析器703能够通过对一个影像帧的像素值在前一个影像帧的相同像素值的基础上发生临界值以上的变化的像素变化进行计数而执行时间复杂度分析。在一部分实施例中,时间复杂度累加器705从多个时间上连续的帧图像生成维持各个像素的计数并显示各个像素的累加计数的时间复杂度地图 707。
在步骤532中,能够生成第1等距柱状图像帧数据的空间复杂度地图(例如空间复杂度地图706)。在一部分实施例中,视频服务器能够采用使第1处理器以空间复杂度为基础生成第1等距柱状图像的复杂度地图的构成。在一部分实施例中,视频服务器采用通过对包含于第1等距柱状图像中的多个区块中分别对不同颜色的数量进行计数而使第1处理器生成以空间复杂度为基础的第1等距柱状图像的复杂度地图的构成。例如,如图13所示,空间复杂度分析器702通过适用调色板(例如颜色组-例如24位RGB颜色由1600万个颜色构成)而去除杂讯。其结果,各个原始颜色能够大致被重新指定为调色板中的一个颜色。例如,能够利用8(R)×8(G)×8(B)颜色的调色板将各个原始颜色重新指定为8(R)×8(G)×8(B)颜色中的某一个颜色。在一部分实施例中,空间复杂度分析器702将一个图像帧分割成n×n个区块并在各个区块中对不同颜色的数量进行计数。在一部分实施例中,空间复杂度累加器704通过对各个区块的计数进行合算或累加(例如从多个图像帧)而生成显示出各个区块的累加计数的空间复杂度地图 706。
在步骤533中,能够通过对时间复杂度地图以及空间复杂度地图进行结合而生成结合后的复杂度地图。在一部分实施例中,结合后的复杂度地图能够通过时间复杂度地图以及空间复杂度地图的加权和 (weighted sum)进行计算。例如,特定区块(block)的结合的复杂度地图能够利用第1公式(Coefftemporal×Ct(block)+Coeffspatial× Cs(block))以及第2公式(Coefftemporal+Coeffspatial=1.0)进行计算,在上述第1公式以及第2公式中,Coefftemporal以及Coeffspatial分别表示用于对时间复杂度地图以及空间复杂度地图的比重进行调节的系数因子(或加权值),Cs(block)表示区块(block)内的不同颜色的累加合计值,Ct(block)表示一个帧与下一个帧之间的区块(block)内像素的像素值变化计数的累加合计值。
在步骤534中,能够以结合后的复杂度地图为基础分别确定第1 等距柱状图像帧数据的缩减后的上端区域、下端区域、左侧区域或右侧区域的宽度以及高度。视频服务器在对第2区域以及第3区域进行缩放之前以所生成的复杂度地图为基础分别确定缩放后的第2区域以及缩放后的第3区域的宽度以及高度,并分别形成所确定的宽度以及高度的缩放后的第2区域以及缩放后的第3区域。例如,在一部分实施例中,能够利用上述公式1以及上述公式2分别计算出缩减后的上端区域以及下端区域的宽度。在一部分实施例中,能够利用上述公式 4分别计算出缩减后的上端区域以及下端区域的高度。
图8是对按照一部分实施例在重排后的第1等距柱状图像的区域之间的边界上对伪影进行处理的动作进行图示的流程图。简单来讲,在方法560的最初的步骤561中,向重新配置后的(重排后的)上端区域与重新配置后的下端区域之间的边界添加冗余像素(redundant pixel)。在步骤562中,能够向重新配置后的中间区域与重新配置后的上端区域之间的边界添加冗余像素。图8所示的流程图,将在后续的内容中结合图16至图20进行更为详细的说明。
图16、图17、图18、图19以及图20是用于对按照一部分实施例在示例性的虚拟现实(VR)视频处理系统中减少重新配置后的(或重排后的)区域之间的边界上的伪影的示例性方法进行说明的示意图。当使用如MPEG-4AVC(H.264)编码解码器等标准形式的编码器通过帧内预测模式(intra frame prediction)以及帧间预测模式(inter frame prediction)对区块内的颜色进行优化时,可能会在缩放后的区域的边界上发生伪影。通过如上所述的优化处理,如图10所示,与特定区块相邻的区块的颜色会对特定区块的颜色造成影响,因此会在缩放后的区域的边界(例如上端区域624与下端区域625之间的边界、上端区域624与中间区域621之间的边界或下端区域625与中间区域 621之间的边界)上发生伪影。为了减少如上所述的伪影,在一部分实施例中,将在边界的附近添加(例如4至8个像素)冗余像素(例如重复像素、反复像素)。如上所述的冗余像素不会用于图像的重建,且不会对与相应像素相邻的像素的颜色造成影响。在一部分实施例中,添加到最后一个像素(例如最左侧像素)中的冗余像素将反复第一个像素(例如最右侧像素)。其结果,因为球面视频的本质,最后一个像素将连续连接到第一个像素。在如上所述的情况下,在“预测”模式工作时所连接像素的颜色将完美混合。例如,添加到上端区域的最右侧部分的冗余像素将被复制到上端区域的最左侧部分。这是因为,位于上端区域的最右侧部分的像素将与位于上端区域的最左侧部分的像素连接。同理,添加到上端区域的下端部分的冗余像素将被复制到中间区域的上端部分。这是因为,位于上端区域的下端部分的像素将与位于中间区域的上端部分的像素连接。上端区域的下端部分的像素将与中间区域的上端部分的像素连接。同理,在一部分实施例中,添加到下端区域的上端部分的冗余像素将被复制到中间区域的下端部分。这是因为,位于下端区域的上端部分的像素将与位于中间区域的下端部分的像素连接。
在一部分实施例中,“预测”模块是如H.264等编码器的一部分。在一部分实施例中,能够通过对边界附近区块的“预测模块”的预测行动进行控制而去除伪影。为此,能够添加用于对帧内预测或帧间预测进行处理的控制器逻辑。关于预测模块的预测行动的示例性的控制,在http://slideplayer.com/slide/3819249/中标题为“H.264视频标准相关介绍”的网络文档中做出了相关说明,在上述网络文档所公开的内容中,与为了执行在本专利申请中进行说明的功能而在预测模块中对预测行动进行控制的方法相关的详细内容将作为参考包含于本说明书中。在一部分实施例中,为了在区域之间的边界上避免或减少伪影,能够通过添加控制器逻辑(logic)而对编码器内的预测模块进行修正。借助于所添加的控制器逻辑,能够使包含在编码器中的预测模块跳过(skip)边界附近的特定区块。
图16对示例性的等距柱状图像帧数据420’(左侧)以及与其对应的重排后的图像帧数据629’(右侧)进行了图示。图像帧数据420’的分辨率为(m×n)像素,包括分辨率为(m×tb_n)的上端部分421、分辨率为(m×mid_n)的中间部分422以及分辨率为(m×tb_n)的下端部分423。重排后的图像帧数据620’的分辨率为(2m’×(tb_n’ +mid_n))像素,包括上端区域624(从上端部分421缩减而得)、下端区域625(从下端部分423缩减而得)以及位于其下方的中间区域621(从中间部分422缩放而得)。上端区域624以及下端区域625 相互并排相邻,而中间区域621位于上端区域624以及下端区域625 的下方。上端区域624以及下端区域625的分辨率分别为(m’×tb_n’),中间区域621的分辨率为(2m’×mid_n)。为了说明的便利,图16 至图20所示的重排后的图像帧数据中不包括左侧区域或右侧区域。但是,需要注意的是,在后续内容中结合图16至图20进行说明的在区域边界内的伪影减少方法,同样能够适用于重排后的图像帧数据包括左侧区域或右侧区域的情况。参阅图16,(m×tb_n)像素的上端部分421被缩减至(m’×tb_n’)像素的上端区域624,(m×tb_n) 像素的下端部分423被缩减至(m’×tb_n’)像素的下端区域625, (m×mid_n)像素的中间部分422被缩减至(2m’×mid_n)像素的中间区域621。
图17是用于对按照一部分实施例在重新配置后的(或重排后)上端区域与重新配置后的下端区域之间的边界上减少伪影的示例性方法进行说明的示意图。在一部分实施例中,为了避免在重排后的区域之间的边界附近出现伪影,重排后的图像帧数据使用包括边界(margin,例如水平边界h_margin以及垂直边界v_margin)的布局。例如,如图17所示,(m×tb_n)像素的上端部分421被缩减至((m’-h_margin) ×tb_n’)像素的上端区域624,(m×tb_n)像素的下端部分423被缩减至((m’-h_margin)×tb_n’)像素的下端区域625,(m×mid_n)像素的中间部分422被缩减至(2m’×mid_n)像素的中间区域621。在一部分实施例中,上端区域624的h_margin部分804是从由原始的上端部分421的最左侧部分801缩减而得的上端区域624的最左侧部分803复制。在一部分实施例中,下端区域625的h_margin 部分805是从由原始的下端部分423的最右侧部分802缩减而得的下端区域625的最右侧部分806复制。图18对上端区域624与下端区域 625的详细布局(layout)进行了图示。例如,上端区域624的h_margin 部分804是从位于上端区域624的最左侧部分803的4个像素列(T0,j、T1,j、T2,j、T3,j)复制。同理,下端区域625的h_margin部分805 是从位于下端区域625的最右侧部分806的4个像素列(BN-1,j、 BN-2,j、BN-3,j、BN-4,j)复制。
图19是用于对按照一部分实施例在重新配置后的(或重排后)上端区域与重新配置后的中间区域之间的边界上减少伪影的示例性方法进行说明的示意图。例如,如图19所示,(m×tb_n)像素的上端部分421被缩减至(m’×(tb_n’-v_margin))像素的上端区域624, (m×mid_n)像素的中间部分422被缩减至((m’-h_margin)×tb_n’) 像素的下端区域625,(m×mid_n)像素的中间部分422被缩放或缩减至(2m’×(mid_n-v_margin))像素的中间区域621。在一部分实施例中,上端区域624的v_margin部分814是从由原始的中间部分422的最上侧部分812缩减而得的中间区域621的最上侧部分816复制。在一部分实施例中,中间区域621的v_margin部分815是从由原始的上端部分421的最下侧部分811缩减而得的上端区域624的最下侧部分813复制。
在一部分实施例中,能够对包括如图17至图19所示的边界的布局进行结合。即,通过使用包括边界的布局的结合,能够同时在(1) 重新配置后的(或重排后的)上端区域与重新配置后的下端区域之间的边界和(2)重新配置后的上端区域与重新配置后的中间区域之间的边界上减少伪影。例如,(m×tb_n)像素的上端部分被缩减至((m’-h_margin)×(tb_n’-v_margin))像素的上端区域,(m×tb_n) 像素的下端部分被缩减至((m’-h_margin)×(tb_n’-v_margin)) 像素的下端区域,(m×mid_n)像素的中间部分422被缩减或缩放至(2m’×(mid_n-v_margin))像素的中间区域621。在一部分实施例中,通过如上所述的布局,上端区域的最右侧h_margin部分是从上端区域的最左侧部分复制,下端区域的最左侧h_margin部分是从下端区域的最右侧部分复制。在一部分实施例中,上端区域的最下侧 v_margin部分是从中间区域的最上侧部分复制,中间区域的最上侧 v_margin是从上端区域的最下侧部分复制。在一部分实施例中,因为任何区域都不会与上端区域的上侧部分连续连接(而且因为上端区域的上侧部分为北极区域),因此v_margin部分不会被添加到上端区域的上侧部分。或者,在一部分实施例中,位于上端区域的上侧部分的 v_margin部分将被“无关(DON'T CARE)”内容填充。在一部分实施例中,因为任何区域都不会与下端区域的下侧部分连续连接(而且因为下端区域的下侧部分为南极区域),因此v_margin部分不会被添加到下端区域的下侧部分。或者,在一部分实施例中,位于下端区域的下侧部分的v_margin部分将被“无关(DON'T CARE)”内容填充。
图20是用于对按照一部分实施例利用包括重叠垂直边界 (overlapped verticalmargin)的布局在重新配置后的(或重排后) 下端区域与重新配置后的中间区域之间的边界上减少伪影的示例性方法进行说明的示意图。在一部分实施例中,如图20所示,在(被缩放并重排成重排后的图像帧620”的)原始的图像帧数据420”中,上端部分421以及中间部分422将共享重叠边界部分832。此外,下端部分423以及中间部分422将共享重叠边界部分833。如图20所示,在包括如上所述的重叠垂直边界的布局中,在重新配置后的上端区域624与重新配置后的中间区域621的边界附近以及重新配置后的中间区域621与重新配置后的下端区域625之间的边界附近,(颜色)品质的急剧变化将减少。在一部分实施例中,在包括如上所述的重叠垂直边界的布局下,(m×tb_n)像素的上端部分421被缩减至((m’-h_margin)×tb_n’)像素的上端区域624,(m×tb_n)像素的下端部分423被缩减至((m’-h_margin)×tb_n’)像素的下端区域 625,(m×mid_n)像素的中间部分422被缩减或缩放至(2m’×mid_n) 像素的中间区域621。在一部分实施例中,在如上所述的布局下,共享的v_margin区域832被缩减至上端区域624的对应部分837,并被缩减或缩放至中间区域621的对应部分841。同理,共享的v_margin 区域833被缩减至下端区域625的对应部分838,并被缩减或缩放至中间区域621的对应部分842。在一部分实施例中,上端区域624的 h_margin部分836是从由原始的上端部分421的最左侧部分831缩减而得的上端区域624的最左侧部分835复制。在一部分实施例中,下端区域625的h_margin部分839是从由原始的下端部分423的最右侧部分834缩减而得的下端区域625的最右侧部分840复制。图16至图 20所示的布局以及方法,是以图11所示的重排后的布局为基础。在图11中,重排后的上端区域以及下端区域位于与重排后的中间区域相邻的位置。在一部分实施例中,类似的布局以及方法能够同样适用于图12所示的重排后的布局中。在图12中,重排后的上端区域以及下端区域位于与重排后的中间区域相邻的位置,且重排后的中间区域位于与重排后的上端区域以及下端区域的下侧位置。
接下来,将结合图16至图20对图8所示的流程图进行更为详细的说明。如图8所示,在步骤561中,能够按照一部分实施例将冗余像素(例如图17以及图18所示的h_margin部分804、805的像素) 添加到缩减后的上端区域(例如图17中的上端区域624)以及缩减后的下端区域(例如图17中的下端区域625)。在一部分实施例中,在编码(例如图6所示的步骤570)之前以及重新配置(例如图6所示的步骤550)之后,视频服务器采用使第1处理器在缩放后的上端区域(例如图17中的上端区域624)以及缩放后的下端区域(例如图17 中的下端区域625)之间的边界上添加冗余像素(例如h_margin部分 (图17以及图18中的804、805)的像素)的构成。在一部分实施例中,上端区域624的h_margin部分804是从由原始的上端部分421 的最左侧部分801缩减而得的上端区域624的最左侧部分803复制。在一部分实施例中,下端区域625的h_margin部分805是从由原始的下端部分423的最右侧部分802缩减而得的下端区域625的最右侧部分806复制。
如图19所示,在步骤562中,能够按照一部分实施例将冗余像素 (例如v_magin部分814以及815的像素)添加到缩放后的中间区域 (例如中间区域621)以及缩减后的上端区域(例如上端区域624)之间的边界上。如图19所示,在一部分实施例中,视频服务器采用在编码(例如图6的步骤570)之前以及重新配置(例如图6的步骤550) 之后使第1处理器将冗余像素添加到缩放后的中间区域的第1部分(例如v_margin部分815)以及缩放后的上端区域的第2部分(例如 v_margin部分814)的构成。此时,第1部分以及第2部分相互相邻 (例如v_margin部分815以及v_margin部分814相互相邻)。如图 19所示,在一部分实施例中,上端区域624的v_margin部分814是从由原始的中间部分422的最上侧部分812缩减或缩放而得的中间区域621的最上侧部分816复制。如图19所示,在一部分实施例中,中间区域621的v_margin部分815是从由原始的上端部分421的最下侧部分811缩减而得的上端区域624的最下侧部分813复制。
图21是对按照一部分实施例在示例性的虚拟现实(VR)客户端设备中执行的示例性的视频处理以及渲染方法的动作进行图示的流程图。简单来讲,在方法900的最初的步骤910中,客户端设备能够将与当前视野(FOV)相关的信息传送到服务器。在步骤920中,客户端设备能够从服务器接收帧以及与帧相关的更新的视野(FOV)相关信息。在步骤930中,客户端设备能够接收利用服务器确定的缩减后的区域的宽度以及高度和重排信息。在步骤940中,能够将所接收到的帧缓存到客户端设备的存储器。在步骤950中,能够以视野(FOV)、缩减后的区域的宽度/高度以及重排信息为基础对所接收到的帧进行解码。在步骤960中,能够通过将帧与所对应的视野(FOV)以及时间戳进行映射而对上述帧进行同步。在步骤970中,能够对帧的球面图像进行重建。在步骤980中,能够对帧的球面图像进行渲染。
接下来,将结合图24至图26对图21所示的流程图进行更为详细的说明。图24、图25以及图26是对按照一部分实施例在示例性的虚拟现实(VR)客户端设备中执行的视频处理以及渲染方法进行说明的示意图。具体来讲,图24对示例性的虚拟现实(VR)客户端设备200A 与示例性的虚拟现实(VR)视频流传输系统100之间的示例性的数据通信方法进行了图示。在一部分实施例中,客户端设备200A能够将当前的视听角度(例如图9所示的视听角度602)传送到服务器(或图3 所示的服务器100的通信服务器130)。在一部分实施例中,如图24 所示,客户端设备200A能够将与当前的视野(FOV)(例如基于方位角的视野(FOV)、基于垂直角度的视野(FOV)或俯仰角)相关的信息传送到服务器100(步骤1001)。在一部分实施例中,作为客户端设备200A传送当前视听角度时的应答,服务器100(或图3所示的流传输服务器140)将与从客户端设备200A所传送过来的当前视听角度对应的新的视频帧或图像组(GOP)图像GOP(GOP)传送到客户端设备200A(步骤1002)。在一部分实施例中,服务器100还能够将与新的视频帧或图像组(GOP)对应的帧编号(rame sequence number, frame#)传送到客户端设备200A。在一部分实施例中,服务器100(或图3所示的通信服务器130)能够对视听角度或视野(FOV)进行更新并将更新后的视听角度或更新后的视野(FOV)重新传回到客户端设备 200(参阅步骤1003)。在一部分实施例中,服务器100能够通过 WebSocket协议将视听角度与帧编号一起进行传送,从而实时地将视听角度传回到客户端设备。在一部分实施例中,服务器100能够通过利用如视频流的子标题(subtitle)将视听角度作为视频流的元数据 (metadata)进行传送的方式传回视听角度。在一部分实施例中,所有视频帧都分别通过(1)WebSocket(2)元数据(例如子标题)以方位角值的形态对帧的视听角度进行传递。无论哪一种情况,通过服务器传送的视听角度能够在当前视听者的视野(FOV)中进行计算和适用。在一部分实施例中,各个帧或图像组(GOP)的帧具有能够在客户端设备200A中进行适当渲染的对应的视听角度或视野(FOV)。在一部分实施例中,服务器100能够将重排信息(例如利用图13至图15所示的方法计算出的上端/下端/左侧/右侧区域的宽度以及高度、图10以及图11的4所示的重排后的帧数据内的上端/下端/左侧/右侧区域的相对位置以及图16至图20所示的包括边界或重叠边界的布局相关信息)传送到客户端设备200A。在一部分实施例中,作为接收到视频帧、对应的视听角度或视野(FOV)以及其他重排信息时的应答,客户端设备200A对视频帧进行缓存以及解码,并将解码后的视频帧与用于准确地对球面帧进行渲染的时间戳进行同步。
图25是对按照一部分实施例在示例性的虚拟现实(VR)客户端设备中执行的示例性的帧同步方法进行说明的示意图。在一部分实施例中,为了确保帧与视听角度之间的匹配,服务器100(或图3所示的通信服务器130)将由(键、值)对构成的数据传送到客户端设备200A。其中,键被设定为帧编号而相应值被设定为对应的视听角度。例如,如图25所示,客户端设备200A接收包括帧#1 1011、帧#2 1012、帧 #3 1013、……、帧#N 1014的N个帧。在一部分实施例中,客户端设备200A还从服务器100接收包括(帧#1,VA_1)、(帧#2,VA_2)、(帧#3,VA_3)、……、(帧#N,VA_N)的N个(键、值)对。在一部分实施例中,在对N个帧进行缓存之后,客户端设备200A对帧进行解码并获得与各个帧对应的显示时间戳(display timestamp)。在一部分实施例中,为了能够以准确地对球面帧进行渲染(或显示)为目的对视频帧进行同步,客户端设备200A将显示时间戳作为新的帧编号 (ID)使用并将(键=帧编号、值=视听角度)对与(键=新的帧编号(ID)(或显示时间戳)、值=视听角度)对进行映射。图25对(键=帧编号、值=视听角度)对与包含(TS_1(时间戳)、VA_1)1021、 (TS_2、VA_2)1022、(TS_3、VA_3)1023、……、(TS_N、VA_N) 1024的(键=新的帧编号(ID)(或显示时间戳)、值=视听角度) 对之间的映射关系进行了图示。
在一部分实施例中,在将帧与显示时间戳(以及对应的视听角度) 进行同步之后,客户端设备200A通过处理器(例如图2所示的处理器310)或图形处理器(GPU)(例如图2所示的图形处理器(GPU) 370)对球面帧进行渲染。此时,使用从服务器100接收到的时间戳以及其他重排信息或渲染信息(例如利用图13至图15所示的方法计算出的上端/下端/中间/左侧/右侧区域的宽度以及高度、图10以及图 11所示的重排后的帧数据中的上端/下端/左侧/右侧区域的相对位置以及图16至图20所示的包括边界或重叠边界的布局相关信息)。
在一部分实施例中,客户端设备200A能够从重排后的图像帧(例如图26所示的重排后的图像帧620)重建原始的球面图像帧数据(例如图26所示的球面图像帧数据430)并以重建后的图像帧数据为基础对球面图像帧进行渲染。换言之,在一部分实施例中,360虚拟现实 (VR)视频能够通过将重建的图像帧映射或纹理映射(texture mapping)到球面(sphere)上的方式进行渲染。关于示例性的纹理映射,在 http://cse.csusb.edu/tongyu/courses/cs520/notes/texture.php 中标题为“Texture Mapping”的网络文档中做出了相关说明,在上述网络文档所公开的内容中,为了达成在本专利申请中进行说明的功能而对重建后的帧执行纹理映射的方法相关的详细内容将作为参考包含于本说明书中。
在一部分实施例中,如图26所示,客户端设备能够在不对球面图像帧数据进行重建的情况下以重排后的图像帧620为基础对球面图像帧430进行渲染。在一部分实施例中,在不对原始的球面图像进行重建或存储的情况下,客户端设备能够为了将重排后的图像帧映射到球面上而对纹理坐标重新进行计算。在一部分实施例中,在获得新的纹理坐标之后,客户端设备能够通过适用新的纹理坐标而对球面图像进行渲染。在一部分实施例中,客户端设备能够以从服务器100接收到的重排信息或渲染信息为基础对纹理坐标重新进行计算。接下来,客户端设备对球面图像帧430进行渲染并将重排后的图像帧620的各个重排后的区域映射到球面上。例如,客户端设备200A能够通过将重排后的中间区域621映射到球面的中间区域432上而对球面的中间区域 432进行渲染(步骤1050)。同理,客户端设备200A能够以重排后的下端区域625为基础对球面的下端区域431进行渲染(步骤1052),以重排后的上端区域624为基础对球面的上端区域431进行渲染(步骤1054),以重排后的左侧区域622位基础对球面的中间区域432的一部分进行渲染(步骤1056),以重排后的右侧区域623为基础对球面的中间区域432的一部分进行渲染(步骤1058)。渲染顺序能够按照所说明的顺序执行或按照任意的其他顺序执行。在基于重建的渲染方法中,原始球面帧将被视为相同的m×n四边形(quad),各个四边形将被变形为球面的一小块。借此,能够直接计算出纹理坐标。例如,计算出第(i,j)个四边形的纹理坐标为(i/m,j/n)。此外,在基于重排后的图像的渲染方法中,客户端设备能够识别出重排后的图像的各个区域被映射的部分。例如,对于球面的上端区域(例如45度~90 度),客户端设备能够使用0至0.5的“u”纹理坐标以及0至0.2 的“v”纹理坐标。这是因为新的纹理坐标是常数(constant),因此能够事先通过离线(offline)方式进行计算。借此,与基于重建的方法相比,基于重排后的图像的方法能够节省重建以及追加使用图形处理器(GPU)内存所需的图形处理器(GPU)时间。在另一方面,当形成球面对象的方法是应用程序(application)所依赖的软体开发套件(SDK)的一部分时,实现基于重排后的图像的方法可能会变得更加复杂。
接下来,将结合图24、图25以及图26对图21所示的流程图进行更为详细的说明。参阅图21,在步骤910中,客户端设备能够将当前的视野(FOV)传送到服务器。例如,如图24所示,客户端设备200A 能够将当前的视听角度(例如图9所示的视听角度602)传送到服务器100(或如图3所示的服务器100的通信服务器130)。在一部分实施例中,如图24所示,客户端设备200A能够将与当前的视野(FOV) 相关的信息(例如基于方位角的视野(FOV)、基于垂直角度的视野(FOV) 或俯仰角)传送到服务器100(图24所示的步骤1001)。
在步骤920中,客户端设备能够从服务器接收帧以及与帧相关的更新的视野(FOV)。例如,如图24所示,作为客户端设备200A传送当前视听角度时的应答,服务器100(或图3所示的流传输服务器140) 能够向客户端设备200A传送新的视频帧或新的图像组(GOP)。此时,所传送的新的视频帧或新的图像组(GOP)与从客户端设备200A传送过来的当前视听角度对应(图24所示的步骤1002)。在一部分实施例中,服务器100还能够向客户端设备200A传送与新的视频帧或图像组(GOP)对应的帧编号。在一部分实施例中,服务器100(或图3所示的通信服务器130)能够对视听角度或视野(FOV)进行更新并将更新后的视听角度或更新后的视野(FOV)重新传回到客户端设备200A (参阅图24所示的步骤1003)。
在步骤930中,客户端设备能够接收利用服务器确定的缩减后的区域的宽度以及高度和重排信息。例如,在一部分实施例中,服务器能够将重排信息(例如利用图13至图15所示的方法计算出的上端/ 下端/左侧/右侧区域的宽度以及高度、图10以及图11所示的重排后的帧数据中的上端/下端/中间/左侧/右侧区域的相对位置以及图16 至图20所示的包括边界或重叠边界的布局相关信息)传回到客户端设备200A。
在步骤940中,客户端设备能够将从服务器(例如图3所示的流传输服务器140)接收到的帧缓存到客户端设备(例如图3所示的客户端设备200A)的存储器(例如图2所示的存储器360)中。
在步骤950中,客户端设备能够对在步骤920从服务器接收到的帧进行解码。在一部分实施例中,客户端设备的解码器对缓存后的帧进行解码并将解码后的帧(以如图26所示的重排后的图像620格式) 存储到客户端设备的存储器中。
在步骤960中,能够通过将帧与所对应的视野(FOV)以及时间戳进行映射而对帧进行同步。图22是对按照一部分实施例通过将帧与所对应的视野(FOV)以及时间戳进行映射而对帧进行同步的详细动作进行图示的流程图。
参阅图22,在步骤961中,在对帧进行缓存之后,客户端设备能够获得各个帧的显示时间戳。例如,在对帧进行缓存之后,客户端设备200对帧进行解码并获得与各个帧对应的显示时间戳。
在步骤962中,客户端设备能够以所获得的显示时间戳为基础生成新的帧编号(ID)。例如,如图25所示,客户端设备能够以所获得的与n个帧(例如帧编号为#1、#1、……、#N的帧)对应的显示时间戳为基础生成新的帧编号(ID)(例如T1、T2、……、Tn)。
在步骤963中,客户端设备能够将新的帧编号(ID)与所对应的视野(FOV)进行匹配。例如,为了确保帧与视听角度之间的匹配,服务器100(或图3所示的通信服务器130)将由(键、值)对构成的数据传送到客户端设备200A。其中,键被设定为帧编号而相应值被设定为对应的视听角度。参阅图25,客户端设备200A接收包括帧#1 1011、帧#2 1012、帧#31013、……、帧#N 1014的N个帧。在一部分实施例中,客户端设备200A还从服务器100接收包括(帧#1,VA_1)、(帧 #2,VA_2)、(帧#3,VA_3)、……、(帧#N,VA_N)的N个(键、值)对。在一部分实施例中,在对N个帧进行解码之后,为了能够以准确地对球面帧进行渲染(或显示)为目的对视频帧进行同步,客户端设备200A将显示时间戳作为新的帧编号(ID)使用并将(键=帧编号、值=视听角度)对与(键=新的帧编号(ID)(或显示时间戳)、值=视听角度)对进行映射。图25对(键=帧编号、值=视听角度) 对与包含(TS_1(时间戳)、VA_1)1021、(TS_2、VA_2)1022、(TS_3、VA_3)1023、……、(TS_N、VA_N)1024的(键=新的帧编号(ID) (或显示时间戳)、值=视听角度)对之间的映射关系进行了图示。
重新参阅图21,在步骤970中,客户端设备能够以在步骤930中接收到的视野(FOV)、缩减后的区域的宽度/高度以及重排信息为基础对帧的球面图像进行重建。例如,如图26所示,客户端设备200A 能够从重排后的图像帧(例如重排后的图像帧620)重建出原始的球面图像帧数据(例如球面图像帧430的数据)。在一部分实施例中,重建能够包括将重排后的图像(例如重排后的图像帧620)中的缩减后的区域重新放大到相应区域的原始分辨率的过程。在一部分实施例中,重建能够包括将重排后的区域(例如重排后的图像帧620的上端/ 下端/中间/左侧/右侧区域)重新配置成原始配置(例如图10dop所示的原始图像帧610的上端/下端/中间区域)状态的过程。在一部分实施例中,步骤970中的重建过程能够被省略。
在步骤980中,客户端设备能够对帧的球面图像进行渲染。图23 是对帧的球面图像进行渲染的详细动作进行图示的流程图。接下来,将结合图23对渲染方法进行详细的说明。
参阅图23,在步骤981中,客户端设备能够确定在服务器中对帧进行编码时是否有添加了冗余像素的边界区域存在。在一部分实施例中,客户端设备能够以在步骤930中从服务器接收到的重排信息(例如利用图13至图15所示的方法计算出的上端/下端/左侧/右侧区域的宽度以及高度、图10以及图11所示的重排后的帧数据中的上端/下端 /中间/左侧/右侧区域的相对位置以及图16至图20所示的包括边界或重叠边界的布局相关信息)为基础确定是否有添加了冗余像素的边界区域存在。
在步骤982中,当已确定在对帧进行编码时有添加了冗余像素的边界区域存在时,客户端设备将跳过(或省略)冗余像素并对帧进行渲染。
在步骤983中,当已确定没有如上所述的边界区域存在时,客户端设备能够确定在边界区域中是否有重叠垂直边界存在。在一部分实施例中,客户端设备能够以在步骤930中从服务器接收到的重排信息为基础确定边界区域中是否有重叠垂直边界存在。
在步骤984中,当已确定边界区域中有重叠垂直边界存在时,能够对重叠垂直边界(或重叠垂直区域)适用阿尔法混合(alpha blending)。在一部分实施例中,能够在重建之后对重叠区域适用阿尔法混合。例如,客户端设备能够在重建的帧中将上端区域的下侧部分与中间区域的上侧部分进行混合。同理,客户端设备能够在重建的帧中将下端区域的上侧部分与中间区域的下侧部分进行混合。在一部分实施例中,在不执行重建的情况下,客户端设备在从重排后的图像帧(例如图26所示的帧620)提取出重叠区域之后对所提取出的重叠区域适用阿尔法混合。例如,客户端设备能够将上端区域的下侧部分(例如图20所示的部分837)与中间区域的上侧部分(例如图20所示的部分841)进行混合。同理,客户端设备能够将下端区域的上侧部分(例如图20所示的部分838)与中间区域的下侧部分(例如图20 所示的部分842)进行混合。
在步骤985中,客户端设备能够从帧的非边界区域开始对帧的球面图像进行渲染。在一部分实施例中,360虚拟现实(VR)视频(例如图26所示的球面图像帧430)能够通过将在步骤970中重建的图像帧映射或纹理映射到球面上的方式进行渲染。作为替代性方案,如图26所示,客户端设备能够在不对球面图像帧数据进行重建的情况下以重排后的图像帧620为基础对球面图像帧430进行渲染。例如,在不对原始的球面图像进行重建或存储的情况下,客户端设备能够为了将重排后的图像帧映射到球面上而对纹理坐标重新进行计算。在一部分实施例中,在获得新的纹理坐标之后,客户端设备能够通过适用新的纹理坐标而对球面图像进行渲染。在一部分实施例中,客户端设备能够以从服务器100接收到的重排信息或渲染信息为基础对纹理坐标重新进行计算。接下来,客户端设备对球面图像帧430进行渲染并将重排后的图像帧620的各个重排后的区域映射到球面上。例如,如图26 所示,客户端设备200A能够通过将重排后的中间区域621映射到球面的中间区域432上而对球面的中间区域432进行渲染(步骤1050)。同理,客户端设备200A能够以重排后的下端区域625为基础对球面的下端区域431进行渲染(步骤1052),以重排后的上端区域624为基础对球面的上端区域431进行渲染(步骤1054),以重排后的左侧区域622位基础对球面的中间区域432的一部分进行渲染(步骤1056),以重排后的右侧区域623为基础对球面的中间区域432的一部分进行渲染(步骤1058)。渲染顺序能够按照所说明的顺序执行或按照任意的其他顺序执行。在一部分实施例中,渲染能够包括在重排后的图像 (例如重排后的图像帧620)中将缩减后的区域重新放大到相应区域的原始分辨率的过程。
图27是对按照一部分实施例在示例性的虚拟现实(VR)视频处理系统中执行的示例性的流传输方法的动作进行图示的流程图。简单来讲,在方法1100的最初的步骤1110中,视频服务器能够生成与不同的视听角度对应的多个文件。在步骤1120中,能够从客户端设备接收视听角度。在步骤1130中,流传输服务器能够选择视听角度与从客户端设备接收到的视听角度最为接近的文件,并利用所选择的文件将视频流流传输到客户端设备。
接下来,将结合图30以及图31对图27所示的流程图进行更为详细的说明。具体来讲,图30对在示例性的虚拟现实(VR)视频处理系统中执行的示例性的视频处理方法进行了图示。在一部分实施例中,虚拟现实(VR)视频处理系统(例如图3所示的系统服务器100)利用离线生成且预先编码的视频文件执行流传输。在一部分实施例中,视频处理系统的编码器(例如编码器125)不对视频帧执行现场 (live)、实时(real-time)编码。在一部分实施例中,如图30所示,视频处理系统能够生成不同视听角度1202(例如0度、α度、2 α度、……、(n-1)α度)的多个文件1205(例如File_0、File_α、 File_2α、……、File_(n-1)α)。重新参阅图30,在一部分实施例中,多个文件1205与分别对应于不同视听角度1202(例如0度、α度、2α度、……、(n-1)α度)的不同视野(FOV)1203(例如视野(FOV) (0度)、视野(FOV)(α度)、视野(FOV)(2α度)、……、视野(FOV)((n-1)α度))关联。在一部分实施例中,如图30所示,视听角度1202(例如α度)能够被定义为以从指示视听者1201的视线(LOS)方向的基准矢量或方向(例如0度方向)为基准的方位角。在一部分实施例中,视野(FOV)能够被定义为视听者通过客户端设备查看的2个方位角之间的范围(例如图30所示的3α度与(n-1)α度之间的范围)。非视野(off-FOV)能够被定义为视听者无法通过客户端设备查看的方位角范围(例如视野(FOV)范围之外的方位角范围;参阅图30)。在一部分实施例中,能够生成与不同的视听角度(例如图12所示的α度、2α度、3α度、4α度、5α度)对应且采用重排后的图像格式的视频帧(例如图12所示的帧641、642、643、644、645) 或文件。在一部分实施例中,视频帧或文件的格式能够是如图10以及图11所示的重排后的格式或仅显示视野(FOV)区域的格式。在一部分实施例中,文件的数量取决于可在单一文件中涵盖的单位视听角度 (例如在图30所示的实例中为30度)。例如,当单位视听角度为30 度时,能够生成12个视频文件(360/30=12)。
图31是对在示例性的虚拟现实(VR)视频处理系统中执行的示例性的视频流传输方法进行说明的示意图。在一部分实施例中,随着视听者的视听角度的持续更新,视频处理系统的流传输服务器(例如图 3所示的流传输服务器140)选择视听角度与视听者的当前视听角度 (例如α度)最为接近的视频文件(例如File_α)并将相应文件流传输到客户端设备。在一部分实施例中,如图30以及图31所示,当视听者的视听角度从α度变更为3α度时,流传输服务器将流传输源从File_α转换成File_3α。在一部分实施例中,当客户端设备向虚拟现实(VR)视频系统(例如图3所示的通信服务器130)传送新的视听角度3α度(从之前的视听角度α更新后的视听角度)时,流传输服务器将流传输源从File_α转换成File_3α,并将File_3α流传输到客户端设备。
如图31所示,在一部分实施例中,根据视频压缩的性质,从第1 视听角度的一个文件转换成第2视听角度的另一个文件的过程能够在下一个图像组(GOP)(例如编码后的视频流内的连续图像(picture) 的下一个组)的开始部分执行。在一部分实施例中,在各个图像组(GOP) 的前端部分包括关键帧(key frame)。例如,如图31所示,当视听者的视听角度为α度时(或当客户端设备向虚拟现实(VR)视频系统传送视野角度α度时),流传输服务器将读取File_α(或视听角度与α度最为接近的文件)并在t0时间点上开始对包含于File_α中的第1图像组(GOP)(例如图像组1(GOP1))进行流传输。在一部分实施例中,将对各个图像组(GOP)进行流传输的持续时间设定为T(例如在图31所示的实例中为500ms)。其结果,例如当流传输服务器在时间t0=0的时间点上开始对第1图像组(GOP)进行流传输之后,分别在T以及2T时间点上开始对第2图像组(GOP)以及第3图像组(GOP) 进行流传输。例如,如图31所示,当视听者的视听角度在t1(T<t1 <2T)时间从α度变更为3α度时(或在客户端设备向虚拟现实(VR) 视频系统传送新的视听角度3α度(从之前的视听角度α更新后的视听角度)时),流传输服务器在t1时间在File_α中对第2图像组(GOP) (例如图像组2(GOP2))进行流传输。在一部分实施例中,作为在视听角度发生变化时的应答,流传输服务器判定当前(时间t1)正在进行流传输的帧是否为当前图像组(GOP)(例如图像组2(GOP2)) 中的最后一帧。在一部分实施例中,作为在判定当前正在进行流传输的视频帧不是(例如来自File_α的)当前视频流的当前图像组(GOP) (例如图像组2(GOP2))中的最后一帧时的应答,流传输服务器将在时间t2(=2T)上完成对当前图像组(GOP)(例如图像组2(GOP2)) 的流传输之前继续对当前图像组(GOP)(例如图像组2(GOP2))的视频帧进行流传输(而且不将流传输源从File_α变更为File_3α)。在一部分实施例中,如图31所示,在判定当前正在进行流传输的帧是当前图像组(GOP)(例如图像组2(GOP2))中的最后一帧时,流传输服务器将选择File_3α(或视听角度与3α度最为接近的文件)并将流传输源从File_α变更为File_3α。在一部分实施例中,如图31 所示,作为在流传输服务器判定已完成对当前图像组(GOP)的流传输时的应答,例如在时间t2,流传输服务器将从File_3α读取数据(从 File_3α)并将第2视频流的第1图像组(GOP)(例如图像组3(GOP3)) 流传输到客户端设备。在一部分实施例中,在开始从File_3α读取数据之前,在时间t2,流传输服务器能够确定视听角度是否仍然维持在 3α度,并在确定视听角度仍然维持在3α度时对图像组3(GOP3)进行流传输。
接下来,将结合图30以及图31对图27所示的流程图进行更为详细的说明。参阅图27,在步骤1110中,视频服务器能够生成与不同的视听角度对应的多个文件。在一部分实施例中,视频服务器利用处理器实现,采用使处理器生成与多个视听角度对应的多个文件并将多个文件存储到存储器中的构成。例如,如图30所示,在一部分实施例中,视频处理系统能够生成不同视听角度1202(例如0度、α度、2 α度、……、(n-1)α度)的多个文件1205(例如File_0、File_α、 File_2α、……、File_(n-1)α)。重新参阅图30,多个文件1205 能够与分别对应于不同视听角度1202(例如0度、α度、2α度、……、 (n-1)α度)的不同视野(FOV)1203(例如视野(FOV)(0度)、视野(FOV)(α度)、视野(FOV)(2α度)、……、视野(FOV)((n-1) α度))关联。在一部分实施例中,多个文件能够分别包括多个图像组(GOP),多个图像组(GOP)能够形成在相同的视听角度具有相同视野(FOV)的视频流。
在步骤1120中,能够从客户端设备接收视听角度。例如,通信服务器(例如图3所示的140)利用处理器实现,采用使处理器通过第1 连接从客户端设备接收与第1视听角度(例如α度)相关的第1信息的构成。
在步骤1130中,流传输服务器能够选择视听角度与从客户端设备接收到的视听角度最为接近的文件,并利用所选择的文件将视频流流传输到客户端设备。作为通信服务器接收到第1视听角度时的应答,流传输服务器采用使处理器从多个文件中读取包含与所接收到的第1 视听角度最为接近的视听角度对应的第1视频流的第1文件并从第1 文件将第1视频流通过第2连接流传输到客户端设备的构成。例如,如图31所示,流传输服务器140(参阅图3)选择视听角度与视听者的当前视听角度(例如α度)最为接近的视频文件(例如File_α) 并利用所选定的文件流传输到客户端设备。通信服务器采用使处理器在流传输服务器对第1视频流进行流传输的期间内从客户端设备接收与第2视听角度相关的第2信息的构成。例如,如图31所示,通信服务器130(参阅图3)从客户端设备接收与第2视野角度(例如3α度) 相关的第2信息。作为通信服务器接收到第2信息时的应答,流传输服务器采用使处理器将流传输源从第1文件转换成包含与第2视听角度最为接近的视野角对应的第2视频流的第2文件并在读取第2文件之后从第2文件通过第2连接将第2视频流流传输到客户端设备的构成。例如,如图30以及图31所示,当视听者的视听角度从α度变更为3α度时,流传输服务器将流传输源从File_α转换成File_3α。在一部分实施例中,当客户端设备向虚拟现实(VR)视频系统(例如图3所示的通信服务器130)传送新的视听角度3α度(从之前的视听角度α更新后的视听角度)时,流传输服务器将流传输源从File_α转换成File_3α,并利用File_3α流传输到客户端设备。
图28是对利用视听角度与从客户端设备接收到的视听角度最为接近的文件对视频流进行流传输的详细动作进行图示的流程图。参阅图28,在步骤1131中,服务器判定当前(第2)视听角度是否从当前正在进行流传输的帧的之前的第1视听角度发生变更。例如,如图31 所示,在时间t1,服务器判定当前视听角度(3α度)是否从之前的视听角度(α度)发生变更。
在步骤1132中,当判定当前(第2)视听角度从当前正在进行流传输的帧的第1视听角度发生变更时,服务器判定当前正在进行流传输的帧是否为当前图像组(GOP)中的最后一帧。例如,如图31所示,在时间t1,服务器判定当前视听角度(3α度)从之前的视听角度(α度)发生变更,并在(时间t1)判定当前正在进行流传输的帧是否为当前图像组(GOP)(例如图像组2(GOP2))中的最后一帧。
在步骤1133中,当判定当前视听角度没有从当前正在进行流传输的帧的第1视听角度发生变更时,服务器继续对(第1视听角度)当前图像组(GOP)进行流传输。
在步骤1134中,当判定当前正在进行流传输的帧是当前图像组 (GOP)中的最后一帧时,服务器将当前视频文件转换成视听角度与从客户端设备接收到的视听角度最为接近的新的文件。例如,流传输服务器能够采用作为确定当前正在进行流传输的视频帧是第1视频流的第1图像组(GOP)中的最后一帧时的应答,将流传输源从第1文件转换成第2文件的构成。例如,如图31所示,在判定当前正在进行流传输的帧是当前图像组(GOP)(例如图像组2(GOP2))中的最后一帧时,流传输服务器将选择File_3α(或视听角度与3α度最为接近的文件)并将流传输源从File_α变更为File_3α。在判定当前正在进行流传输的帧不是当前图像组(GOP)中的最后一帧时,服务器执行例如对第1视听角度的当前图像组(GOP)继续进行流传输的步骤1133。例如,如图31所示,作为在判定当前正在进行流传输的视频帧不是(例如来自File_α的)当前视频流的当前图像组(GOP)(例如图像组2 (GOP2))中的最后一帧时的应答,流传输服务器将在时间t2(=2T) 上完成对当前图像组(GOP)的流传输之前继续对当前视频流的当前图像组(GOP)(例如图像组2(GOP2))的视频流进行流传输(而且不从File_α变更为File_3α)。
在步骤1135中,服务器确定是否已经完成了对当前图像组(GOP) 的流传输,并作为确定已完成时的应答,将新的视频文件的图像组 (GOP)流传输到客户端设备。在一部分实施例中,流传输服务器能够在确定已经完成了对第1视频流的第1图像组(GOP)的流传输之后,将第2视频流的图像组(GOP)通过第2连接流传输到客户端设备。例如,如图31所示,作为确定已完成当前图像组(GOP)的流传输时的应答,在时间t2,流传输服务器将从File_3α读取数据(从File_3 α)并将第2视频流的第1图像组(GOP)(例如图像组3(GOP3)) 流传输到客户端设备。在一部分实施例中,在开始从File_3α读取数据之前,在时间t2,流传输服务器能够确定视听角度是否仍然维持在 3α度,并在确定视听角度仍然维持在3α度时对图像组3(GOP3)进行流传输。
图29是对按照一部分实施例在示例性的虚拟现实(VR)客户端设备中执行的示例性的流传输方法的动作进行图示的流程图。参阅图 29,在步骤1155中,客户端设备能够获得视听者的视听角度(或视野 (FOV))。例如,如图30所示,客户端设备能够获得被定义为以从指示视听者的视线(LOS)方向的基准矢量或方向(例如0度方向)为基准的方位角的视听角度1202(例如α度)。在一部分实施例中,客户端设备能够获得被定义为视听者通过客户端设备查看的2个方位角之间的范围(例如图30中的3α度与(n-1)α度之间的范围)的视野(FOV)。在步骤1160中,客户端设备能够将所获得的视听角度(或视野(FOV))传送到服务器(例如图3所示的通信服务器130)。如图30所示,客户端设备将所获得的视听角度(例如α度)传送到服务器,服务器在时间t0或其之前接收视听角度α度。在步骤1165中,客户端设备能够接收与传送到服务器中的视听角度最为接近的视听角度所对应的视频流。在步骤1170中,客户端设备能够对所接收到的视频流的视频帧进行渲染。例如,如图31所示,在流传输服务器140(参阅图3)对视听角度与视听者的当前视听角度(例如α度)最为接近的视频文件(例如File_α)进行流传输时,客户端设备将接收视频流并对从视频文件(例如File_αα)流传输的视频流的视频帧进行渲染。
需要注意的是,为了对不同的实施例进行说明而在本说明书中使用的术语“示例”或“示例性”只是表示这些实施例的可能的实例、表现和/或示例(而且这些术语并不表示这些实施例的必然的最重要、最佳或最优的实例)。
在本说明书中使用的“结合”、“连接”等术语是表示两个部件或成分相互直接或间接结合。上述结合能够是静止(例如永久性)或可移动(例如可移除、可解除等)的结合。上述结合能够是由两个部件或两个部件以及任意的附加中间部件形成单体,或由两个部件或两个部件以及任意的追加中间部件相互粘接而形成为一体。
本发明为了达成不同的动作而能够使用任意的设备可读取介质上的方法、系统以及应用程序产品。适用本发明的实施例能够利用现有的计算机处理器实现。或者,也能够利用为了本发明的目的或其他目的而进行整合的适当系统的专用计算机处理器或硬连线系统 (hardwired system)执行。本公开之范围内的实施例包括用于对设备可执行的指令集或数据结构进行传递的设备可读取介质的应用程序产品。上述设备可读取介质能够是可由一般或特殊用途的计算机或配备处理器的其他设备进行访问的任意的可使用介质。例如,上述设备可读取介质能够是如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器 (EEPROM)、只读光盘(CD-ROM)或其他光盘存储装置、磁盘存储装置或其他次存储装置或任意的其他非易失性介质。上述设备可读取介质能够用于以设备可执行的指令集或数据结构的形态对计算机代码进行存储或传递。此外,上述设备可读取介质能够由一般或特殊用途的计算机或配备处理器的其他设备进行访问。当信息通过网络或其他通信连接(有限、无线或有线和无线的组合)传送或提供到任意设备时,上述设备将相应的连接视为计算机可读取的介质。因此,上述连接随之被称之为设备可读取介质。上述之组合也被包含在设备可读取介质的范围之内。设备可执行的指令集包括能够使如一般计算机、特殊用途的计算机或特殊用途的处理设备执行特定功能或功能组的指令以及数据。
需要注意的是,在示例性的实施例中图示的方法以及系统的构成和上述方法以及系统的构成要素的排列仅为示例性内容。虽然对适用本发明的几个实施例进行了详细的说明,但是浏览本公开的相关技术领域的一般技术人员应能够理解,在不脱离本说明书中所列举的发明主旨的提示以及优点的前提下能够对本发明进行各种修改。例如,以形成为一体的方式图示的构成要素也能够由多个部分或构成要素构成。因此,这些修改均应理解为包含在本发明的范围之内。在不脱离本发明的范围或所附的权利要求书之思想的前提下,能够对较佳实施例或其他代表性实施例的设计、工作条件以及排列进行其他置换、修改、变更以及省略。
Claims (16)
1.一种虚拟现实视频处理系统,其特征在于,包括:
通信服务器,从客户端设备接收与第1视野相关的第1信息;
视频服务器,执行利用上述第1信息生成编码后的第1等距柱状图像的一系列动作;以及,
流传输服务器,将上述编码后的第1等距柱状图像传输到上述客户端设备;
其中,上述通信服务器、上述视频服务器以及上述流传输服务器分别利用处理器实现,
上述视频服务器,执行:
通过对第1球面图像进行转换而生成第1等距柱状图像的第1动作,其中,与上述第1视野对应的图像被配置到指示上述第1等距柱状图像的中间区域的第1区域中;
将上述第1等距柱状图像的上述第1区域缩放至第1分辨率的第2-1动作;
将与上述第1区域相邻的第2区域缩放至低于第1分辨率的第2分辨率的第2-2动作;
将与上述第1区域相邻但不与上述第2区域相邻的第3区域缩放至低于上述第1分辨率的第3分辨率的第2-3动作;
通过将上述缩放后的第1区域和上述缩放后的第2区域以及上述缩放后的第3区域重新配置成相邻的状态而生成重排后的第1等距柱状图像的第3动作;以及,
通过对上述重排后的第1等距柱状图像执行编码而生成上述编码后的第1等距柱状图像的第4动作,以及
其中,上述视频服务器,还执行:
以时间复杂度或空间复杂度为基础生成上述第1等距柱状图像的复杂度地图的动作;以及,
以上述所生成的复杂度地图为基础,分别确定上述缩放后的第2区域以及上述缩放后的第3区域的宽度以及高度的动作。
2.根据权利要求1所述的虚拟现实视频处理系统,其特征在于:
上述时间复杂度,
是以第1帧与上述第1帧的下一个帧之间的像素值的差异达到临界值以上的像素数量为基础确定。
3.根据权利要求1所述的虚拟现实视频处理系统,其特征在于:
上述空间复杂度,
是以包含于上述第1等距柱状图像中的多个区块中分别出现的不同颜色的数量为基础确定。
4.根据权利要求1所述的虚拟现实视频处理系统,其特征在于:
上述第2区域为上述第1等距柱状图像的上端区域,
上述第3区域为上述第1等距柱状图像的下端区域,
上述重排的结果,上述缩放后的第2区域以及上述缩放后的第3区域与上述缩放后的第1区域相邻。
5.根据权利要求4所述的虚拟现实视频处理系统,其特征在于:
上述视频服务器,还执行:
在上述缩放后的第2区域与上述缩放后的第3区域的边界添加冗余像素的第5动作;
其中,上述第5动作是在上述第4动作之前以及上述第3动作之后执行。
6.根据权利要求4所述的虚拟现实视频处理系统,其特征在于:
上述视频服务器,还执行:
在上述第4动作之前以及上述第3动作之后,在上述缩放后的第1区域与上述缩放后的第2区域的边界添加冗余像素的第5动作;
其中,上述第5动作是在上述第4动作之前以及上述第3动作之后执行。
7.根据权利要求4所述的虚拟现实视频处理系统,其特征在于:
上述视频服务器,还执行:
在指示上述缩放后的第1区域之一部分的第1部分以及指示上述缩放后的第2区域之一部分的第2部分添加冗余像素的第5动作;
其中,上述第1部分与上述第2部分互不相邻,
上述第5动作是在上述第4动作之前以及上述第3动作之后执行。
8.根据权利要求4所述的虚拟现实视频处理系统,其特征在于:
上述视频服务器,还执行:
将与上述第1区域的左侧相邻上述第1等距柱状图像的第4区域缩放至低于上述第1分辨率的第4分辨率的第2-4动作;
将与上述第1区域的右侧相邻上述第1等距柱状图像的第5区域缩放至低于上述第1分辨率的第5分辨率的第2-5动作;
其中,上述第4动作,包括:
通过对上述缩放后的第1区域至上述缩放后的第5区域执行编码而生成上述编码后的第1等距柱状图像的动作。
9.一种虚拟现实视频处理方法,其特征在于:
在通过包括通信服务器、视频服务器以及流传输服务器的虚拟现实视频处理系统执行的虚拟现实视频处理方法中,包括:
第1步骤,由上述通信服务器从客户端设备接收与第1视野相关的第1信息;
第2步骤,由上述视频服务器将第1球面图像转换成第1等距柱状图像,此时与上述第1视野对应的图像被配置到指示上述第1等距柱状图像的中间区域的第1区域中;
第3-1步骤,由上述视频服务器将上述第1等距柱状图像的第1区域缩放至第1分辨率;
第3-2步骤,由上述视频服务器将与上述第1区域相邻的第2区域缩放至低于上述第1分辨率的第2分辨率;
第3-3步骤,由上述视频服务器将与上述第1区域相邻但不与上述第2区域相邻的第3区域缩放至低于上述第1分辨率的第3分辨率;
第4步骤,由上述视频服务器对上述缩放后的第1区域、上述缩放后的第2区域以及上述缩放后的第3区域执行重新配置,从而生成重排后的第1等距柱状图像,此时使上述缩放后的第2区域与上述缩放后的第3区域相邻配置;
第5步骤,由上述视频服务器对上述重排后的第1等距柱状图像执行编码,从而生成编码后的第1等距柱状图像;以及,
第6步骤,由上述流传输服务器将上述编码后的第1等距柱状图像流传输到上述客户端设备,
其中,所述方法还包括:
上述视频服务器以时间复杂度或空间复杂度为基础生成上述第1等距柱状图像的复杂度地图;以及
上述视频服务器以上述所生成的复杂度地图为基础,分别确定上述缩放后的第2区域以及上述缩放后的第3区域的宽度以及高度。
10.根据权利要求9所述的虚拟现实视频处理方法,其特征在于:
上述时间复杂度,
是以第1帧与上述第1帧的下一个帧之间的像素值的差异达到临界值以上的像素数量为基础确定。
11.根据权利要求9所述的虚拟现实视频处理方法,其特征在于:
上述空间复杂度,
是以包含于上述第1等距柱状图像中的多个区块中分别出现的不同颜色的数量为基础确定。
12.根据权利要求9所述的虚拟现实视频处理方法,其特征在于:
上述第2区域为上述第1等距柱状图像的上端区域,
上述第3区域为上述第1等距柱状图像的下端区域,
上述重排的结果,上述缩放后的第2区域以及上述缩放后的第3区域与上述缩放后的第1区域相邻。
13.根据权利要求12所述的虚拟现实视频处理方法,其特征在于:
在上述第5步骤之前以及上述第4步骤之后,还包括:
上述视频服务器向上述缩放后的第2区域与上述缩放后的第3区域之间的边界上添加冗余像素的步骤。
14.根据权利要求12所述的虚拟现实视频处理方法,其特征在于:
在上述第5步骤之前以及上述第4步骤之后,还包括:
上述视频服务器向上述缩放后的第1区域与上述缩放后的第2区域之间的边界上添加冗余像素的步骤。
15.根据权利要求12所述的虚拟现实视频处理方法,其特征在于:
在上述第5步骤之前以及上述第4步骤之后,还包括:
上述视频服务器在指示上述缩放后的第1区域之一部分的第1部分以及指示上述缩放后的第2区域之一部分的第2部分添加冗余像素的步骤;
其中,上述第1部分与上述第2部分互不相邻。
16.根据权利要求12所述的虚拟现实视频处理方法,其特征在于,还包括:
视频服务器将与上述第1区域的左侧相邻上述第1等距柱状图像的第4区域缩放至低于上述第1分辨率的第4分辨率的第3-4步骤;
视频服务器将与上述第1区域的右侧相邻上述第1等距柱状图像的第5区域缩放至低于上述第1分辨率的第5分辨率的第3-5步骤;
其中,上述第5步骤,包括:
通过对上述缩放后的第1区域至上述缩放后的第5区域执行编码而生成上述编码后的第1等距柱状图像的动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210587265.0A CN115225882A (zh) | 2016-02-19 | 2017-09-18 | 用于对虚拟现实视频执行转换及流传输的系统及方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662297394P | 2016-02-19 | 2016-02-19 | |
US15/268,111 | 2016-09-16 | ||
US15/268,111 US9912717B2 (en) | 2016-02-19 | 2016-09-16 | Systems and method for virtual reality video conversion and streaming |
PCT/KR2017/010197 WO2018052259A1 (ko) | 2016-02-19 | 2017-09-18 | 가상 현실 비디오 변환 및 스트리밍을 위한 시스템 및 방법 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210587265.0A Division CN115225882A (zh) | 2016-02-19 | 2017-09-18 | 用于对虚拟现实视频执行转换及流传输的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110226316A CN110226316A (zh) | 2019-09-10 |
CN110226316B true CN110226316B (zh) | 2022-06-10 |
Family
ID=59625327
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110538794.7A Active CN113286168B (zh) | 2016-02-19 | 2017-02-17 | 用于处理视频的方法、系统以及存储介质 |
CN201780013448.9A Active CN108702522B (zh) | 2016-02-19 | 2017-02-17 | 用于基于gpu的虚拟现实视频流式传输服务器的方法及系统 |
CN202110538787.7A Active CN113286167B (zh) | 2016-02-19 | 2017-02-17 | 用于基于gpu的虚拟现实视频流式传输服务器的方法及系统 |
CN201780071089.2A Active CN110226316B (zh) | 2016-02-19 | 2017-09-18 | 用于对虚拟现实视频执行转换及流传输的系统及方法 |
CN202210587265.0A Pending CN115225882A (zh) | 2016-02-19 | 2017-09-18 | 用于对虚拟现实视频执行转换及流传输的系统及方法 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110538794.7A Active CN113286168B (zh) | 2016-02-19 | 2017-02-17 | 用于处理视频的方法、系统以及存储介质 |
CN201780013448.9A Active CN108702522B (zh) | 2016-02-19 | 2017-02-17 | 用于基于gpu的虚拟现实视频流式传输服务器的方法及系统 |
CN202110538787.7A Active CN113286167B (zh) | 2016-02-19 | 2017-02-17 | 用于基于gpu的虚拟现实视频流式传输服务器的方法及系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210587265.0A Pending CN115225882A (zh) | 2016-02-19 | 2017-09-18 | 用于对虚拟现实视频执行转换及流传输的系统及方法 |
Country Status (6)
Country | Link |
---|---|
US (10) | US10334224B2 (zh) |
EP (1) | EP3419293B1 (zh) |
JP (3) | JP6663043B2 (zh) |
KR (7) | KR102272859B1 (zh) |
CN (5) | CN113286168B (zh) |
WO (2) | WO2017142354A1 (zh) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170026659A1 (en) * | 2015-10-13 | 2017-01-26 | Mediatek Inc. | Partial Decoding For Arbitrary View Angle And Line Buffer Reduction For Virtual Reality Video |
WO2017068926A1 (ja) * | 2015-10-21 | 2017-04-27 | ソニー株式会社 | 情報処理装置及びその制御方法、並びにコンピュータ・プログラム |
US10334224B2 (en) | 2016-02-19 | 2019-06-25 | Alcacruz Inc. | Systems and method for GPU based virtual reality video streaming server |
EP3249928A1 (en) * | 2016-05-23 | 2017-11-29 | Thomson Licensing | Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices |
CN105915990B (zh) * | 2016-05-25 | 2022-11-15 | 歌尔光学科技有限公司 | 一种虚拟现实头盔及其使用方法 |
DE102016213494A1 (de) * | 2016-07-22 | 2018-01-25 | Conti Temic Microelectronic Gmbh | Kameravorrichtung sowie Verfahren zur Erfassung eines Umgebungsbereichs eines eigenen Fahrzeugs |
DE102016213493A1 (de) * | 2016-07-22 | 2018-01-25 | Conti Temic Microelectronic Gmbh | Kameravorrichtung zur Aufnahme eines Umgebungsbereichs eines eigenen Fahrzeugs sowie Verfahren zur Bereitstellung einer Fahrerassistenzfunktion |
US10410320B2 (en) | 2016-09-30 | 2019-09-10 | Sony Interactive Entertainment Inc. | Course profiling and sharing |
US10679511B2 (en) | 2016-09-30 | 2020-06-09 | Sony Interactive Entertainment Inc. | Collision detection and avoidance |
US11125561B2 (en) | 2016-09-30 | 2021-09-21 | Sony Interactive Entertainment Inc. | Steering assist |
US10850838B2 (en) | 2016-09-30 | 2020-12-01 | Sony Interactive Entertainment Inc. | UAV battery form factor and insertion/ejection methodologies |
CN109362242B (zh) | 2016-10-10 | 2021-05-14 | 华为技术有限公司 | 一种视频数据的处理方法及装置 |
KR102498598B1 (ko) * | 2016-10-18 | 2023-02-14 | 삼성전자주식회사 | 영상 처리 장치 및 그 영상 처리 방법 |
US10306180B2 (en) * | 2016-10-21 | 2019-05-28 | Liquidsky Software, Inc. | Predictive virtual reality content streaming techniques |
KR102598082B1 (ko) * | 2016-10-28 | 2023-11-03 | 삼성전자주식회사 | 영상 표시 장치, 모바일 장치 및 그 동작방법 |
US10631012B2 (en) * | 2016-12-02 | 2020-04-21 | Centurylink Intellectual Property Llc | Method and system for implementing detection and visual enhancement of video encoding artifacts |
US10999602B2 (en) | 2016-12-23 | 2021-05-04 | Apple Inc. | Sphere projected motion estimation/compensation and mode decision |
CN108282449B (zh) * | 2017-01-06 | 2020-10-09 | 华为技术有限公司 | 一种应用于虚拟现实技术的流媒体的传输方法和客户端 |
WO2018131813A1 (en) * | 2017-01-10 | 2018-07-19 | Samsung Electronics Co., Ltd. | Method and apparatus for generating metadata for 3d images |
WO2018151977A1 (en) * | 2017-02-14 | 2018-08-23 | Axon Enterprise, Inc. | Systems and methods for determining a field of view |
US11259046B2 (en) | 2017-02-15 | 2022-02-22 | Apple Inc. | Processing of equirectangular object data to compensate for distortion by spherical projections |
US10924747B2 (en) | 2017-02-27 | 2021-02-16 | Apple Inc. | Video coding techniques for multi-view video |
CN108513119A (zh) * | 2017-02-27 | 2018-09-07 | 阿里巴巴集团控股有限公司 | 图像的映射、处理方法、装置和机器可读介质 |
US10467775B1 (en) * | 2017-05-03 | 2019-11-05 | Amazon Technologies, Inc. | Identifying pixel locations using a transformation function |
US11093752B2 (en) | 2017-06-02 | 2021-08-17 | Apple Inc. | Object tracking in multi-view video |
MX2019014416A (es) | 2017-06-02 | 2020-02-05 | Vid Scale Inc | Suministro de video en 360 grados a través de la red de próxima generación. |
US11107177B1 (en) * | 2017-06-16 | 2021-08-31 | Amazon Technologies, Inc. | Data/metadata synchronization using metadata queue statistics |
US10754242B2 (en) * | 2017-06-30 | 2020-08-25 | Apple Inc. | Adaptive resolution and projection format in multi-direction video |
US11521349B2 (en) | 2017-09-21 | 2022-12-06 | Faro Technologies, Inc. | Virtual reality system for viewing point cloud volumes while maintaining a high point cloud graphical resolution |
US10623791B2 (en) | 2018-06-01 | 2020-04-14 | At&T Intellectual Property I, L.P. | Field of view prediction in live panoramic video streaming |
US10812774B2 (en) | 2018-06-06 | 2020-10-20 | At&T Intellectual Property I, L.P. | Methods and devices for adapting the rate of video content streaming |
US10636118B2 (en) * | 2018-06-25 | 2020-04-28 | Microsoft Technology Licensing, Llc | Input scaling to keep controller inside field of view |
US10616621B2 (en) | 2018-06-29 | 2020-04-07 | At&T Intellectual Property I, L.P. | Methods and devices for determining multipath routing for panoramic video content |
US20210183127A1 (en) * | 2018-06-29 | 2021-06-17 | Eifeninteractive Co., Ltd | System for performing real-time parallel rendering of motion capture image by using gpu |
US20200022632A1 (en) * | 2018-07-17 | 2020-01-23 | Limbix Health, Inc. | Digital content processing and generation for a virtual environment |
US10360713B1 (en) * | 2018-07-17 | 2019-07-23 | Disney Enterprises, Inc. | Event enhancement using augmented reality effects |
US11019361B2 (en) | 2018-08-13 | 2021-05-25 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic view of a camera for capturing video content |
US10708494B2 (en) | 2018-08-13 | 2020-07-07 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic video content |
US10735778B2 (en) | 2018-08-23 | 2020-08-04 | At&T Intellectual Property I, L.P. | Proxy assisted panoramic video streaming at mobile edge |
CN110876082B (zh) * | 2018-08-31 | 2020-12-29 | 网宿科技股份有限公司 | 一种视频帧的复杂度的确定方法及装置 |
US10560759B1 (en) | 2018-10-23 | 2020-02-11 | At&T Intellectual Property I, L.P. | Active network support on adaptive virtual reality video transmission |
US10536666B1 (en) * | 2019-01-22 | 2020-01-14 | Facebook Technologies, Llc | Systems and methods for transmitting aggregated video data |
US10742882B1 (en) * | 2019-05-17 | 2020-08-11 | Gopro, Inc. | Systems and methods for framing videos |
US11076158B2 (en) * | 2019-09-09 | 2021-07-27 | Facebook Technologies, Llc | Systems and methods for reducing WiFi latency using transmit opportunity and duration |
WO2021162446A1 (en) * | 2020-02-14 | 2021-08-19 | Samsung Electronics Co., Ltd. | Method and apparatus for streaming vr image |
KR20210107409A (ko) | 2020-02-24 | 2021-09-01 | 삼성전자주식회사 | 엣지 컴퓨팅 서비스를 이용한 영상 컨텐츠 전송 방법 및 장치 |
WO2021194483A1 (en) * | 2020-03-25 | 2021-09-30 | Alcacruz Inc. | Generating a representation of a spherical image |
US20210349308A1 (en) * | 2020-05-05 | 2021-11-11 | Szu Wen FAN | System and method for video processing using a virtual reality device |
US11188902B1 (en) * | 2020-05-20 | 2021-11-30 | Louise Dorothy Saulog Sano | Live time connection application method and devices |
CN113766272B (zh) * | 2020-06-04 | 2023-02-10 | 腾讯科技(深圳)有限公司 | 一种沉浸媒体的数据处理方法 |
JP7470387B2 (ja) * | 2020-06-08 | 2024-04-18 | 株式会社大一商会 | 遊技機 |
CN113839908B (zh) * | 2020-06-23 | 2023-07-11 | 华为技术有限公司 | 视频传输方法、装置、系统及计算机可读存储介质 |
US11494951B2 (en) | 2020-07-24 | 2022-11-08 | At&T Intellectual Property I, L.P. | Policy definition and enforcement for extended reality media sessions |
CN114071150B (zh) | 2020-07-31 | 2023-06-16 | 京东方科技集团股份有限公司 | 图像压缩方法及装置、图像显示方法及装置和介质 |
KR20220037617A (ko) * | 2020-09-18 | 2022-03-25 | 삼성전자주식회사 | 엣지 컴퓨팅 서비스를 이용한 동영상 처리 방법 및 장치 |
US11908364B2 (en) * | 2020-09-23 | 2024-02-20 | Samsung Electronics Co., Ltd. | Low-power display driving circuit performing internal encoding and decoding and operating method thereof |
CN112774193A (zh) * | 2021-01-14 | 2021-05-11 | 江苏卫健信息科技有限公司 | 一种云游戏的图像渲染方法 |
US11924393B2 (en) * | 2021-01-22 | 2024-03-05 | Valeo Comfort And Driving Assistance | Shared viewing of video among multiple users |
CN112954442B (zh) * | 2021-03-18 | 2023-07-18 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、设备和存储介质 |
CN113094019A (zh) * | 2021-04-30 | 2021-07-09 | 咪咕文化科技有限公司 | 交互方法、装置、电子设备及存储介质 |
GB2609013A (en) * | 2021-07-16 | 2023-01-25 | Sony Interactive Entertainment Inc | Video recording and playback systems and methods |
EP4120238A1 (en) * | 2021-07-16 | 2023-01-18 | Sony Interactive Entertainment Inc. | Video processing and playback systems and methods |
CN113676753B (zh) * | 2021-10-21 | 2022-02-15 | 北京拾音科技文化有限公司 | Vr场景中展示视频的方法、装置、电子设备和存储介质 |
US12112687B2 (en) * | 2021-12-07 | 2024-10-08 | Kyndryl, Inc. | Dynamic display for image-enabled clothing |
KR20230094587A (ko) | 2021-12-21 | 2023-06-28 | 서강대학교산학협력단 | 마이크로 배치 스트리밍 처리 시스템 및 상기 시스템에서의 동적 데이터 배치 및 쿼리 계획 방법 |
CN114938456A (zh) * | 2022-01-20 | 2022-08-23 | 上海瞳观智能科技有限公司 | Vr直播系统及方法 |
WO2023141313A2 (en) * | 2022-01-21 | 2023-07-27 | Arizona Board Of Regents On Behalf Of The University Of Arizona | Wavelength and diffractive multiplexed expansion of field of view for display devices |
US11983822B2 (en) | 2022-09-02 | 2024-05-14 | Valeo Comfort And Driving Assistance | Shared viewing of video with prevention of cyclical following among users |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5185667A (en) * | 1991-05-13 | 1993-02-09 | Telerobotics International, Inc. | Omniview motionless camera orientation system |
US5880734A (en) * | 1996-10-03 | 1999-03-09 | Intel Corporation | Peripheral vision simulator for immersive 3D virtual environments |
CN1732690A (zh) * | 2002-12-31 | 2006-02-08 | 英国电讯有限公司 | 视频流传输 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62168102A (ja) | 1986-12-30 | 1987-07-24 | Furukawa Electric Co Ltd:The | 光フアイバ融着接続用スリツプホルダ |
JPH10191355A (ja) * | 1996-12-26 | 1998-07-21 | Sony Corp | 映像信号切換装置およびその方法 |
US6043837A (en) * | 1997-05-08 | 2000-03-28 | Be Here Corporation | Method and apparatus for electronically distributing images from a panoptic camera system |
US6466254B1 (en) * | 1997-05-08 | 2002-10-15 | Be Here Corporation | Method and apparatus for electronically distributing motion panoramic images |
US6778211B1 (en) * | 1999-04-08 | 2004-08-17 | Ipix Corp. | Method and apparatus for providing virtual processing effects for wide-angle video images |
WO2000060857A1 (en) * | 1999-04-08 | 2000-10-12 | Internet Pictures Corporation | Virtual theater |
JP2003101989A (ja) * | 2001-09-25 | 2003-04-04 | Matsushita Electric Ind Co Ltd | 仮想鑑賞方法、鑑賞サーバ装置、端末、プログラム |
KR100613752B1 (ko) | 2004-03-11 | 2006-08-22 | 경북대학교 산학협력단 | 파노라마 영상의 스트리밍 방법 |
JP2005341093A (ja) | 2004-05-26 | 2005-12-08 | Mitsubishi Electric Corp | コンテンツ適応化装置、コンテンツ適応化システム、コンテンツ適応化方法 |
KR100677142B1 (ko) * | 2004-08-13 | 2007-02-02 | 경희대학교 산학협력단 | 파노라마 영상의 움직임 추정 및 보상 |
US20060055807A1 (en) * | 2004-09-14 | 2006-03-16 | Pemer Frederick A | Imaging methods, image sensors, imaging systems, and articles of manufacture |
CN101000461B (zh) * | 2006-12-14 | 2010-09-08 | 上海杰图软件技术有限公司 | 一种鱼眼图像生成立方体全景的方法 |
JP5115150B2 (ja) * | 2007-11-02 | 2013-01-09 | ソニー株式会社 | 情報提示装置及び情報提示方法 |
US8747116B2 (en) | 2008-08-21 | 2014-06-10 | Lincoln Global, Inc. | System and method providing arc welding training in a real-time simulated virtual reality environment using real-time weld puddle feedback |
US8851896B2 (en) | 2008-08-21 | 2014-10-07 | Lincoln Global, Inc. | Virtual reality GTAW and pipe welding simulator and setup |
TW201044185A (en) | 2009-06-09 | 2010-12-16 | Zillians Inc | Virtual world simulation systems and methods utilizing parallel coprocessors, and computer program products thereof |
US8270473B2 (en) * | 2009-06-12 | 2012-09-18 | Microsoft Corporation | Motion based dynamic resolution multiple bit rate video encoding |
JP2012014676A (ja) | 2010-05-31 | 2012-01-19 | Sony Computer Entertainment Inc | 仮想現実空間提供システム、仮想現実空間提供方法およびそのプログラム |
US8619005B2 (en) | 2010-09-09 | 2013-12-31 | Eastman Kodak Company | Switchable head-mounted display transition |
US20120092348A1 (en) | 2010-10-14 | 2012-04-19 | Immersive Media Company | Semi-automatic navigation with an immersive image |
US20120212491A1 (en) | 2011-02-22 | 2012-08-23 | Sony Computer Entertainment Inc. | Indirect lighting process for virtual environments |
WO2013038679A1 (ja) * | 2011-09-13 | 2013-03-21 | パナソニック株式会社 | 符号化装置、復号装置、再生装置、符号化方法、及び復号方法 |
CN202257030U (zh) * | 2011-10-19 | 2012-05-30 | 广东工业大学 | 大视场直接投影式激光光刻光学系统 |
EP2777273B1 (en) * | 2011-11-11 | 2019-09-04 | GE Video Compression, LLC | Efficient multi-view coding using depth-map estimate for a dependent view |
US9516225B2 (en) * | 2011-12-02 | 2016-12-06 | Amazon Technologies, Inc. | Apparatus and method for panoramic video hosting |
JP5861499B2 (ja) * | 2012-03-01 | 2016-02-16 | 大日本印刷株式会社 | 動画提示装置 |
EP2645713A1 (en) * | 2012-03-30 | 2013-10-02 | Alcatel Lucent | Method and apparatus for encoding a selected spatial portion of a video stream |
US10514541B2 (en) | 2012-12-27 | 2019-12-24 | Microsoft Technology Licensing, Llc | Display update time reduction for a near-eye display |
US20160205341A1 (en) * | 2013-08-20 | 2016-07-14 | Smarter Tv Ltd. | System and method for real-time processing of ultra-high resolution digital video |
US9774881B2 (en) * | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
JP6075889B2 (ja) * | 2014-06-10 | 2017-02-08 | 日本電信電話株式会社 | 映像配信装置及び映像再生装置 |
KR101953679B1 (ko) * | 2014-06-27 | 2019-03-04 | 코닌클리즈케 케이피엔 엔.브이. | Hevc-타일드 비디오 스트림을 기초로 한 관심영역 결정 |
US10204658B2 (en) | 2014-07-14 | 2019-02-12 | Sony Interactive Entertainment Inc. | System and method for use in playing back panorama video content |
US9917877B2 (en) * | 2014-10-20 | 2018-03-13 | Google Llc | Streaming the visible parts of a spherical video |
US10104361B2 (en) | 2014-11-14 | 2018-10-16 | Samsung Electronics Co., Ltd. | Coding of 360 degree videos using region adaptive smoothing |
GB2536025B (en) * | 2015-03-05 | 2021-03-03 | Nokia Technologies Oy | Video streaming method |
US9848212B2 (en) * | 2015-07-10 | 2017-12-19 | Futurewei Technologies, Inc. | Multi-view video streaming with fast and smooth view switch |
US10674205B2 (en) * | 2015-11-17 | 2020-06-02 | Rovi Guides, Inc. | Methods and systems for selecting a preferred viewpoint for media assets |
US20170147830A1 (en) * | 2015-11-24 | 2017-05-25 | Comcast Cable Communications, Llc | Adaptive Rights Management System |
US10334224B2 (en) | 2016-02-19 | 2019-06-25 | Alcacruz Inc. | Systems and method for GPU based virtual reality video streaming server |
-
2016
- 2016-04-08 US US15/094,336 patent/US10334224B2/en active Active
- 2016-09-16 US US15/268,111 patent/US9912717B2/en active Active
-
2017
- 2017-02-17 KR KR1020207027413A patent/KR102272859B1/ko active IP Right Grant
- 2017-02-17 WO PCT/KR2017/001790 patent/WO2017142354A1/ko active Application Filing
- 2017-02-17 JP JP2018562485A patent/JP6663043B2/ja active Active
- 2017-02-17 CN CN202110538794.7A patent/CN113286168B/zh active Active
- 2017-02-17 KR KR1020187023908A patent/KR102160992B1/ko active IP Right Grant
- 2017-02-17 CN CN201780013448.9A patent/CN108702522B/zh active Active
- 2017-02-17 KR KR1020217013537A patent/KR102358205B1/ko active IP Right Grant
- 2017-02-17 CN CN202110538787.7A patent/CN113286167B/zh active Active
- 2017-02-17 EP EP17753515.0A patent/EP3419293B1/en active Active
- 2017-02-17 KR KR1020227003157A patent/KR102502546B1/ko active IP Right Grant
- 2017-09-18 WO PCT/KR2017/010197 patent/WO2018052259A1/ko active Application Filing
- 2017-09-18 KR KR1020197013504A patent/KR102155681B1/ko active IP Right Grant
- 2017-09-18 KR KR1020217038744A patent/KR102506000B1/ko active IP Right Grant
- 2017-09-18 KR KR1020207025921A patent/KR102333398B1/ko active IP Right Grant
- 2017-09-18 CN CN201780071089.2A patent/CN110226316B/zh active Active
- 2017-09-18 CN CN202210587265.0A patent/CN115225882A/zh active Pending
-
2018
- 2018-01-23 US US15/877,799 patent/US20180152690A1/en not_active Abandoned
-
2019
- 2019-04-23 US US16/391,486 patent/US10904511B2/en active Active
- 2019-11-20 US US16/689,520 patent/US10939087B2/en active Active
-
2020
- 2020-02-13 JP JP2020022170A patent/JP7041440B2/ja active Active
- 2020-05-07 US US16/868,974 patent/US11050996B2/en active Active
-
2021
- 2021-01-26 US US17/158,654 patent/US11470301B2/en active Active
- 2021-05-10 US US17/315,995 patent/US11375172B2/en active Active
-
2022
- 2022-03-03 JP JP2022032850A patent/JP2022091767A/ja active Pending
- 2022-04-26 US US17/729,225 patent/US20220264069A1/en not_active Abandoned
- 2022-08-31 US US17/899,756 patent/US11843759B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5185667A (en) * | 1991-05-13 | 1993-02-09 | Telerobotics International, Inc. | Omniview motionless camera orientation system |
US5880734A (en) * | 1996-10-03 | 1999-03-09 | Intel Corporation | Peripheral vision simulator for immersive 3D virtual environments |
CN1732690A (zh) * | 2002-12-31 | 2006-02-08 | 英国电讯有限公司 | 视频流传输 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110226316B (zh) | 用于对虚拟现实视频执行转换及流传输的系统及方法 | |
CN101002471B (zh) | 对图像编码的方法和设备及对图像数据解码的方法和设备 | |
CN108780584B (zh) | 用于流传输和渲染的球形视频的转换和预处理 | |
CN109716759A (zh) | 提升质量递送及合成处理 | |
CN112703737A (zh) | 多向视频流的可扩展性 | |
US11006184B2 (en) | Enhanced distribution image system | |
US20230388542A1 (en) | A method and apparatus for adapting a volumetric video to client devices | |
KR20230153468A (ko) | 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램 | |
CN114930812B (zh) | 用于解码3d视频的方法和装置 | |
Champel et al. | The special challenges of offering high quality experience for VR video | |
Kimball et al. | Low bandwidth desktop and video streaming for collaborative tiled display environments | |
KR102499900B1 (ko) | 고해상도 영상의 스트리밍을 위한 영상 전송 장치와 영상 재생 장치 및 그 동작 방법 | |
CN104350748A (zh) | 使用低分辨率深度图的视图合成 | |
WO2024003577A1 (en) | Applications of layered encoding in split computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |